US20030196026A1

Programmable microprocessor cache index hashing function

Claim Score by NHIP

Abstract

An embodiment of the invention provides a circuit and method for optimizing an index hashing function in a cache memory on a microprocessor. A programmable index hashing function is designed that allows the index hashing function to be programmed after the microprocessor has been fabricated. The index hashing function may be "tuned" by running an application on the microprocessor and observing the performance of the cache memory based on the type of index hashing function used. The index hashing function may be programmed by several methods.

US20030196026A1, drawing sheet 1
Sheet 1 of 3

Term

Term ended

Projected expiry passed 15 February 2023, 3.6 years ago.

  1. Priority and filed
  2. Published
  3. Projected expiry
  4. Today

14 claims: 2 independent, 12 dependent

  1. 1
    1 ) A method for optimizing an index hashing function comprising:a) designing a programmable index hashing function;b) running an application several times on a CPU containing said programmable index hashing function;c) calculating an optimal hashing function based on actual performance of said application in cache memory of said CPU. d) programming said programmable index hashing function to approximate the optimal hashing function calculated in step c.
  2. 7
    7 ) A circuit for programming a hashing function comprising:a set of N AND gates, wherein each AND gate in said set of N AND gates has two inputs and one output, a set of N XOR gates, wherein each XOR gate in said set of N XOR gates has two inputs and one output;a N-bit hashing mask, wherein each bit in said hashing mask is programmable;all a 2N+X bit memory address;wherein each bit from a first set of N bits from said 2N+X bit memory address is individually electrically connected to a first input of each AND gate respectively from said set of N AND gates;wherein each bit of said N-bit hashing mask is individually electrically connected to a second input of each AND gate respectively from said set of N AND gates;wherein each output of each AND gate from said set of N AND gates is individually electrically connected to a first input of each XOR gate respectively from said set of N XOR gates;wherein each bit from a second set of N bits from said 2N+X memory address is individually electrically connected to a second input of each XOR gate respectively from said set of N XOR gates.