Combining Write Buffer with Dynamically Adjustable Flush Metrics
First Claim
1. An apparatus comprising:
- a cache;
a write buffer coupled to the cache and configured to buffer write operations that access the cache, wherein the write buffer comprises a plurality of entries, each entry configured to combine write operations on a cache block granularity; and
a control circuit coupled to the write buffer, wherein the control circuit is configured to cause the write buffer to transmit one or more combined write operations from one or more entries of the plurality of entries to a next level of memory below the cache responsive to one or more flush metrics applied by the control circuit and responsive to a fullness of the write buffer, and wherein the control circuit is configured to dynamically modify the one or more flush metrics responsive to activity in the write buffer, wherein dynamically modifying the one or more flush metrics changes a frequency of transmission of combined write operations from the write buffer to the next level of memory.
1 Assignment
0 Petitions
Accused Products
Abstract
In an embodiment, a combining write buffer is configured to maintain one or more flush metrics to determine when to transmit write operations from buffer entries. The combining write buffer may be configured to dynamically modify the flush metrics in response to activity in the write buffer, modifying the conditions under which write operations are transmitted from the write buffer to the next lower level of memory. For example, in one implementation, the flush metrics may include categorizing write buffer entries as “collapsed.” A collapsed write buffer entry, and the collapsed write operations therein, may include at least one write operation that has overwritten data that was written by a previous write operation in the buffer entry. In another implementation, the combining write buffer may maintain the threshold of buffer fullness as a flush metric and may adjust it over time based on the actual buffer fullness.
42 Citations
24 Claims
-
1. An apparatus comprising:
-
a cache; a write buffer coupled to the cache and configured to buffer write operations that access the cache, wherein the write buffer comprises a plurality of entries, each entry configured to combine write operations on a cache block granularity; and a control circuit coupled to the write buffer, wherein the control circuit is configured to cause the write buffer to transmit one or more combined write operations from one or more entries of the plurality of entries to a next level of memory below the cache responsive to one or more flush metrics applied by the control circuit and responsive to a fullness of the write buffer, and wherein the control circuit is configured to dynamically modify the one or more flush metrics responsive to activity in the write buffer, wherein dynamically modifying the one or more flush metrics changes a frequency of transmission of combined write operations from the write buffer to the next level of memory. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method comprising:
-
a control circuit monitoring activity in a write buffer; responsive to the activity, the control circuit modifying one or more flush metrics maintained by the control circuit; and the control circuit causing one or more write operations from at least one buffer entry in the write buffer responsive to the one or more flush metrics and a fullness of the write buffer. - View Dependent Claims (8, 9, 10, 11)
-
-
12. An apparatus comprising:
-
a cache; a write buffer coupled to the cache and configured to buffer write operations that update the cache subsequent to the write operations updating the cache, wherein the write buffer is configured to merge a plurality of write operations that update data in a same cache block; and a control circuit coupled to the write buffer, wherein the write buffer control circuit is configured to cause the write buffer to transmit one or more merged write operations from the write buffer to a next level of memory responsive to the write buffer approaching a full state, and wherein the control circuit is configured to detect a first write operation received from the cache that hits in a first write buffer entry of the write buffer and that updates at least one byte updated by a previous write operation represented in the first write buffer entry, wherein the control circuit is configured to remove the first write buffer entry from consideration in determining if the write buffer is approaching a full state. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. An apparatus comprising:
-
a write buffer configured to accumulate writes to a plurality of cache blocks prior to writing a cache; a circuit configured to monitor the write buffer and to adjust a threshold value that determines when an accumulated write is selected from the store buffer and written to the cache, wherein the circuit is configured to adjust the threshold value dependent on a frequency at which the write buffer becomes full and dependent on a number of writes that occur without the write buffer becoming full. - View Dependent Claims (19, 20, 21)
-
-
22. An apparatus comprising:
-
a processor core configured to execute a store operation and to generate a write operation responsive to the store operation; a write-through cache coupled to receive the write operation and configured to update a cache block in the cache with write data corresponding to the write data responsive to detecting hit in the write through cache for the write operation; a combining write buffer configured to accumulate write operations from the write through cache, wherein the combining write buffer is configured to combine write operations within a cache block into one entry in the combining write buffer, and wherein the combining write buffer is configured to dynamically modify one or more flush metrics responsive to activity in the combining write buffer, wherein the combining write buffer is configured to determine when to transmit one or more combined write operations in response to the one or more flush metrics; and a second level cache coupled to receive the combined write operations from the combining write buffer and configured to update cache blocks stored therein with the combined write operations. - View Dependent Claims (23, 24)
-
Specification