IP Library Granted Patent US 7,870,314
Granted Patent B2
US 7,870,314 · App. 12/031,897 · Granted Jan 11, 2011

Method and system for implementing store buffer allocation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,870,314
App. No.
12/031,897
Granted
Jan 11, 2011
Kind
B2
Abstract

A method and system for implementing store buffer allocation for variable length store data operations are provided. The method includes receiving a store address request and at least one store data request and stepping through data operations for each of the store data requests and an address range for the store data requests to determine alignment and data steering information used to select a storage buffer destination for the data in the store data requests. The method further includes determining availability of the storage buffer by maintaining a reservation list for each storage buffer, maintaining a count of the number of available entries for each storage buffer, updating the reservation list to reflect a reservation acceptance for designated available entries, and clearing entries upon completion of the processing of store data operations. The method also includes reserving the selected storage buffer when the number of available entries meets or exceeds the number of entries required for the data.

Claims (43)

1. A method for implementing store buffer allocation for variable length store data operations, comprising:

receiving a store address request and at least one store data request in response to an instruction to perform a store operation;

saving an address range for the store address request;

stepping through data operations for each of the store data requests and the address range for the store address request to determine alignment and data steering information used to select a storage buffer destination for the data in each of the store data requests;

determining availability of the storage buffer by:

maintaining a reservation list for each storage buffer;

maintaining a count of the number of available storage buffer entries for each storage buffer;

updating the reservation list to reflect a reservation acceptance for designated available storage buffer entries, the updating resulting in a decrease in the count of available storage buffer entries; and

clearing storage buffer entries upon completion of the processing of store data operations; and

reserving the selected storage buffer when the number of available storage buffer entries meets or exceeds the number of storage buffer entries required for the data.

2. The method of claim 1 , further comprising:

rejecting the store data request when the number of available storage buffer entries is less than the number of storage buffer entries required for the data.

3. The method of claim 2 , further comprising:

re-issuing the store data request until the store data request is accepted in response to determining that the number of available storage buffer entries meets or exceeds the number of storage buffer entries required for the data.

4. The method of claim 1 , wherein determining a storage buffer location further comprises:

maintaining a status bit for each entry of each of the storage buffers, the status indicating the availability of the entry for storing data.

5. The method of claim 1 , wherein the storage buffer location is determined by the address range, wherein:

a first data buffer is aligned to even cache line and even double-word data;

a second data buffer is aligned to odd cache line and even double-word data;

a third data buffer is aligned to even cache line and odd double-word data; and

a fourth data buffer is aligned to odd cache line and odd double-word data.

6. A system for implementing store buffer allocation for variable length store data operations, comprising:

a store execution unit implemented by a processor, the store execution unit performing a method, comprising:

receiving a store address request and at least one store data request in response to an instruction to perform a store operation;

saving an address range for the store address request;

stepping through data operations for each of the store data requests and the address range for the store address request to determine alignment and data steering information used to select a storage buffer destination for the data in each of the store data requests;

determining availability of the storage buffer by:

maintaining a reservation list for each storage buffer;

maintaining a count of the number of available storage buffer entries for each storage buffer;

updating the reservation list to reflect a reservation acceptance for designated available storage buffer entries, the updating resulting in a decrease in the count of available storage buffer entries; and

clearing storage buffer entries upon completion of the processing of store data operations; and

reserving the selected storage buffer when the number of available storage buffer entries meets or exceeds the number of storage buffer entries required for the data.

7. The system of claim 6 , wherein the store execution unit further performs:

rejecting the store data request when the number of available storage buffer entries is less than the number of storage buffer entries required for the data.

8. The system of claim 7 , wherein the store execution unit further performs:

re-issuing the store data request until the store data request is accepted in response to determining that the number of available storage buffer entries meets or exceeds the number of storage buffer entries required for the data.

9. The system of claim 6 , wherein determining a storage buffer location further comprises:

maintaining a status bit for each entry of each of the storage buffers, the status indicating the availability of the entry for storing data.

10. The system of claim 6 , wherein the storage buffer location is determined by the address range, wherein:

a first data buffer is aligned to even cache line and even double-word data;

a second data buffer is aligned to odd cache line and even double-word data;

a third data buffer is aligned to even cache line and odd double-word data; and

a fourth data buffer is aligned to odd cache line and odd double-word data.

Assignments (1)
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2025
From: JPMORGAN CHASE BANK, N.A.
To: GRAFTECH INTERNATIONAL HOLDINGS INC. (F/K/A AS UCAR CARBON COMPANY INC.)
Reel/Frame 070291/0686 →