Optimized tag lookup in a way halting cache
A method of performing an address lookup process in a way halting cache includes receiving a tag portion and index bits of an address for a lookup; obtaining a first set of bits from the tag portion for a preamble, wherein a second set of bits from the tag portion form a prologue; performing a first matching operation using the preamble to identify a hit in a row of a memory of the way halting cache, the row being selected by the index bits; and for any identified hit from the first matching operation, performing a second matching operation using the prologue and the index bits to finalize the hit and checking a valid bit when performing the second matching operation.
1 . A system comprising:
a preamble tag memory comprising a preamble memory control circuit, a preamble memory array a preamble memory wordline driver, a preamble memory input/output circuitry, a preamble memory hit circuitry, and a preamble memory address bit selection circuitry, wherein the preamble memory hit circuitry is coupled to obtain a first set of bits from a tag portion of an address for a lookup in accordance with the preamble memory address bit selection circuitry; and
a prologue tag memory comprising a prologue memory control circuit, a prologue memory array, a prologue memory wordline driver, a prologue memory input/output circuitry, a prologue memory hit circuitry, a valid bit check logic, and a prologue memory address bit selection circuitry, wherein the prologue memory hit circuitry is coupled to obtain a second set of bits from the tag portion of the address for the lookup in accordance with the prologue memory address bit selection circuitry and the valid bit check logic is coupled to receive a valid bit of a stored address, wherein the valid bit for the stored address is stored in the prologue tag memory and checked only during access of the prologue tag memory.
2 . The system of claim 1 , wherein the preamble memory address bit selection circuitry comprises registers structured to store bits of the address, wherein particular registers structured to store bits of the address corresponding to the first set of bits from the tag portion are coupled to the preamble memory hit circuitry.
3 . The system of claim 1 , wherein the preamble memory address bit selection circuitry comprises:
registers structured to store bits of the tag portion of the address; and
XOR hash circuitry coupled to at least a plurality of the registers, wherein output of the XOR hash circuitry is coupled to the preamble memory hit circuitry, the XOR hash circuitry outputting the first set of bits from the tag portion.
4 . The system of claim 1 , wherein the prologue memory address bit selection circuitry comprises registers structured to store bits of the address, wherein particular registers structured to store bits of the address corresponding to the second set of bits from the tag portion are coupled to the prologue memory hit circuitry.
5 . The system of claim 1 , wherein the first set of bits from the tag portion includes a portion of the least significant bits of the tag portion.
6 . The system of claim 1 , wherein the first set of bits from the tag portion contains between 3-7 bits.
7 . The system of claim 1 , wherein the first set of bits from the tag portion comprises a hash of the tag portion of the address.
8 . The system of claim 1 , wherein the first set of bits from the tag portion comprises non-contiguous bits of the tag portion.
9 . The system of claim 1 , wherein the first set of bits from the tag portion comprises a combination of contiguous bits and non-contiguous bits of the tag portion.
10 . The system of claim 1 , wherein the first set of bits from the tag portion comprises contiguous bits of the tag portion.
11 . The system of claim 1 , wherein the preamble tag memory stores preamble bits of tags of a plurality of ways and one or more state bits.
12 . A method of performing an address lookup process in a way halting cache, the method comprising:
receiving a tag portion and index bits of an address for a lookup;
obtaining a first set of bits from the tag portion for a preamble, wherein a second set of bits from the tag portion form a prologue;
performing a first matching operation using the preamble to identify a hit in a row of a memory of the way halting cache, the row being selected by the index bits; and
for any identified hit from the first matching operation, performing a second matching operation using the prologue and the index bits to finalize the hit and checking a valid bit when performing the second matching operation, wherein the valid bit is only checked when finalizing the hit.
13 . The method of claim 12 , wherein obtaining the first set of bits from the tag portion comprises performing a hash operation on the tag portion of the address for lookup.
14 . The method of claim 13 , wherein obtaining the second set of bits from the tag portion comprises selecting the second set of bits from the tag portion of the address, wherein the number of bits of the preamble and the number of bits of the prologue totals to the number of bits of the tag portion of the address.
15 . The method of claim 12 , wherein the preamble contains between 3-7 bits.
16 . The method of claim 12 , wherein the preamble comprises non-contiguous bits of the tag portion.
17 . The method of claim 12 , wherein the preamble comprises a combination of contiguous and non-contiguous bits of the tag portion.
18 . The method of claim 12 , wherein the method is performed in a system comprising:
a preamble tag memory that performs the first matching operation, the preamble tag memory comprising a preamble memory control circuit, a preamble memory array, a preamble memory wordline driver, a preamble memory input/output circuitry, a preamble memory hit circuitry, and a preamble memory address bit selection circuitry, wherein the preamble memory hit circuitry is coupled to obtain the first set of bits from the tag portion in accordance with the preamble memory address bit selection circuitry; and
a prologue tag memory that performs the second matching operation and checks the valid bit, the prologue tag memory comprising a prologue memory control circuit, a prologue memory array, a prologue memory wordline driver, a prologue memory input/output circuitry, a prologue memory hit circuitry, a valid bit check logic, and a prologue memory address bit selection circuitry, wherein the prologue memory hit circuitry is coupled to obtain the second set of bits from the tag portion of the address for the lookup in accordance with the prologue memory address bit selection circuitry and the valid bit check logic is coupled to receive a valid bit of a stored address.