Memory record update filtering
First Claim
1. A method of filtering data record updates in a memory having a data side and a filter side on a microprocessor, the method comprising:
- receiving a data value in the memory;
comparing filter table accessing information to data contents of the filter side, said filter table accessing information based on the data value and associated data table accessing information; and
if the filter table accessing information comparison indicates a match;
updating the data side based on the data value, and updating the filter side based on the filter table accessing information.
0 Assignments
0 Petitions
Accused Products
Abstract
Apparatus and methods to filter memory record updates. A microprocessor can include a memory record update filter. The memory record update filter can include a table memory populated by a plurality of data entries. Each data entry can include a data tag field to store a data tag, a data field to store a data value, and a filter field to store a filter value. A first comparator can be in communication with the data tag field of the table memory and a data accessing information input to perform a data tag comparison. A second comparator can be in communication with the filter field of the table memory and a data value input. A control circuit can be in communication with the table memory, the first comparator, and the second comparator.
-
Citations
34 Claims
-
1. A method of filtering data record updates in a memory having a data side and a filter side on a microprocessor, the method comprising:
-
receiving a data value in the memory;
comparing filter table accessing information to data contents of the filter side, said filter table accessing information based on the data value and associated data table accessing information; and
if the filter table accessing information comparison indicates a match;
updating the data side based on the data value, and updating the filter side based on the filter table accessing information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
updating at least one of said filter tag field and a counter associated with said filter tag field based on the filter table accessing information.
-
-
3. The method of claim 1, further comprising:
-
if the filter table accessing information comparison indicates no match;
updating the filter side based on the filter table accessing information; and
comparing the associated data table accessing information to data contents of the data side; and
if the associated data table accessing information comparison indicates a match;
updating the data side based on the data value.
-
-
4. The method of claim 1, wherein comparing filter table accessing information to data contents of the filter side comprises:
-
determining the filter table accessing information from the data value and the associated data table accessing information; and
comparing the filter table accessing information to a data field on the filter side.
-
-
5. The method of claim 1, wherein updating the data side based on the data value comprises:
if a counter on the filter side that is associated with the matched data contents of the filter side is at least equal to a predetermined value, updating the filter side based on the filter table accessing information.
-
6. The method of claim 5, further comprising:
-
if the filter table accessing information comparison indicates no match;
updating the filter side based on the filter table accessing information; and
if comparing the associated data table accessing information to data contents on the data side indicates a match, updating the data side based on the data value.
-
-
7. The method of claim 6, wherein updating the data side based on the data value comprises:
updating said data field based on the data value.
-
8. The method of claim 6, wherein updating the data side based on the data value comprises:
updating a data tag field based on the data value.
-
9. The method of claim 6, wherein updating the filter side based on the filter table accessing information comprises:
updating said filter tag field based on the filter table accessing information.
-
10. A filtered memory comprising:
-
a pair of memories;
a first comparator to perform a data tag comparison, said first comparator being coupled to a data tag field of a first memory of said pair of memories and a data record accessing information input;
a second comparator being coupled to a filter tag field of a second memory of said pair of memories and a data value input; and
a control circuit being coupled to said first comparator and said second comparator. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
a selection circuit coupled to the data value input and the data accessing information input, said selection circuit including an output in communication with said second memory and said second comparator.
-
-
12. The filtered memory of claim 10, wherein each filter tag field has an associated relevance counter field to store a relevance counter value.
-
13. The filtered memory of claim 12, further comprising a third comparator in communication with said relevance counter field and a relevance threshold value input.
-
14. The filtered memory of claim 13, wherein an output of said third comparator is in communication with said control circuit.
-
15. The filtered memory of claim 10, wherein said control circuit comprises:
-
an AND gate coupled to said second comparator and said third comparator; and
an OR gate coupled to said AND gate and said first comparator; and
said control circuit to control the output of a data record update enable signal.
-
-
16. The filtered memory of claim 10, wherein said pair of memories is populated with a plurality of data entries.
-
17. The filtered memory of claim 16, wherein each data entry is to store a predicted value.
-
18. The filtered memory of claim 16, wherein each data entry is to store a branch target address;
- and
the data accessing information input is to receive at least a portion of a branch instruction address.
- and
-
19. The filtered memory of claim 16, wherein each data entry is to store a memory operation address;
- and
the data accessing information input is to receive at least a portion of an instruction address.
- and
-
20. The filtered memory of claim 16, wherein each said data entry further including said relevance counter field.
-
21. A machine-readable medium having stored therein a set of executable instructions to perform a method comprising:
-
receiving a data value in a memory;
comparing filter table accessing information to data contents of a filter side, said filter table accessing information based on the data value and associated data table accessing information; and
if the filter table accessing information comparison indicates a match;
updating a data side based on the data value, and updating the filter side based on the filter table accessing information. - View Dependent Claims (22, 23, 24, 25)
update at least one of said filter tag field and a counter associated with said filter tag field based on the filter table accessing information.
-
-
23. The machine-readable medium of claim 21, further comprising instructions to:
-
if the filter table accessing information comparison indicates no match;
update the filter side based on the filter table accessing information; and
compare the associated data table accessing information to data contents of the data side; and
if the associated data table accessing information comparison indicates a match;
update the data side based on the data value.
-
-
24. The machine-readable medium of claim 21, wherein the comparing filter table accessing information to data contents of the filter side instruction comprises instructions to:
-
determine the filter table accessing information from the data value and the associated data table accessing information; and
compare the filter table accessing information to a data field on the filter side.
-
-
25. The machine-readable medium of claim 21, wherein the update the data side based on the data value instruction comprises:
if a counter on the filter side that is associated with the matched data contents of the filter side is at least equal to a predetermined value, update the filter side based on the filter table accessing information.
-
26. A filtered memory comprising:
-
a plurality of first entries, each of said plurality of first entries having at least a tag field;
a comparator coupled to said tag fields of the plurality of first entries and having an input for address data;
a plurality of second entries, each of said plurality of second entries having a field to store data; and
each of said plurality of second entries field to store data being configured to store data upon a hit in the plurality of first entries. - View Dependent Claims (27, 28)
a selection circuit coupled to said tag fields of said plurality of first entries and a data accessing information input, said selection circuit including an output in communication with said plurality of second entries and a second comparator.
-
-
28. The filtered memory of claim 26, wherein each of said plurality of first entries tag fields has an associated relevance counter field to store a relevance counter value.
-
29. A memory management method comprising, during an attempt to store a data item in the memory:
-
determining whether there has been a prior attempt to store the data item in the memory, and storing the data item in the memory only if there have been a threshold number of prior attempts to store the data item in the memory. - View Dependent Claims (30, 31, 32, 33, 34)
in response to the hit, the data item is stored in a second memory section.
-
-
32. The method of claim 29, wherein the determining comprises:
-
reading from a first memory section a count value of prior attempts to store the data item; and
the storing includes storing the data item in a second memory section.
-
-
33. The method of claim 32, further comprising:
if there is no count value stored in the first memory section, allocating an entry in the first memory section for the data item.
-
34. The method of claim 32, wherein the first and second memories each have tag fields.
Specification