IP Library Granted Patent US 7,321,950
Granted Patent B2
US 7,321,950 · App. 11/050,021 · Granted Jan 22, 2008

Method and apparatus for managing write-to-read turnarounds in an early read after write memory system

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,321,950
App. No.
11/050,021
Granted
Jan 22, 2008
Kind
B2
Abstract

A method and apparatus for managing write-to-read turnarounds in an early read after write memory system are presented. Memory controller logic identifies a write operation's bank set, allows a different bank set read operation to issue prior to the write operation's completion, and allows a same bank set read operation to issue once the write operation completes. The memory controller includes operation counter logic, operation selection logic, operation acceptance logic, command formatting logic, and memory interface logic. The operation counter logic receives new-operation-related signals from the operation acceptance logic and, in turn, provides signals to the operation selection logic and the operation acceptance logic as to when to issue a read operation that corresponds to either an even DRAM bank or an odd DRAM bank.

Claims (71)

1. A system comprising:

a memory controller with logic effective to:

provide a write operation that corresponds to a first memory bank set that is included in a memory;

identify a command cycle to allow a read operation that corresponds to a second memory bank set, the first memory bank set different than the second memory bank set;

issue the read operation based upon the identifying; and

wherein the logic includes one or more in-use counters, the logic further effective to:

load an in-use counter value into one of the in-use counters;

adjust the in-use counter value;

determine whether the in-use counter value has reached a predetermined number in response to the adjusting;

allow a same bank set read operation based upon determining that the in-use counter value has reached the predetermined number; and

reset an unavailable counter in response to determining that the in-use counter value has reached the predetermined number.

2. The system of claim 1 wherein the logic includes operation selection logic that is further effective to:

receive one or more read preferred signals;

determine whether the read operation exists in a read queue that corresponds to the read preferred signals; and

offer the read operation based upon the determination.

3. The system of claim 1 wherein the logic includes one or more unavailable counters, the logic further effective to:

load an unavailable counter value into one of the unavailable counters;

adjust the unavailable counter value;

determine whether the unavailable counter value has reached zero in response to the adjusting; and

allow the read operation based upon the determination.

4. The system of claim 3 wherein the logic is further effective to:

adjust the unavailable counter value into negative territory, resulting in a negative unavailable counter value;

determine whether the negative unavailable counter value is evenly divisible by two; and

allow the read operation based upon determining that the negative unavailable counter value is evenly divisible by two.

5. The system of claim 1 wherein the memory controller is included in a processing element architecture.

6. A computer-implemented method comprising:

providing a write operation that corresponds to a first memory bank set that is included in a memory;

identifying a command cycle to allow a read operation that corresponds to a second memory bank set, the first memory bank set different than the second memory bank set;

issuing the read operation based upon the identifying;

loading an in-use counter value into an in-use counter;

adjusting the in-use counter value;

determining whether the in-use counter value has reached a predetermined number in response to the adjusting;

allowing a same bank set read operation based upon determining that the in-use counter value has reached the predetermined number; and

resetting an unavailable counter in response to determining that the in-use counter value has reached the predetermined number.

7. The method of claim 6 further comprising:

receiving one or more read preferred signals;

determining whether the read operation exists in a read queue that corresponds to the read preferred signals; and

offering the read operation based upon the determination.

8. The method of claim 6 further comprising:

loading an unavailable counter value into an unavailable counter;

adjusting the unavailable counter value;

determining whether the unavailable counter value has reached zero in response to the adjusting; and

allowing the read operation based upon the determination.

9. The method of claim 8 further comprising:

adjusting the unavailable counter value into negative territory, resulting in a negative unavailable counter value;

determining whether the negative unavailable counter value is evenly divisible by two; and

allowing the read operation based upon determining that the negative unavailable counter value is evenly divisible by two.

10. The method of claim 6 wherein the method is executed in a processing element architecture.

11. A program product comprising:

computer operable medium having computer readable code, the computer readable code being effective to:

provide a write operation that corresponds to a first memory bank set that is included in a memory;

identify a command cycle to allow a read operation that corresponds to a second memory bank set, the first memory bank set different than the second memory bank set;

issue the read operation based upon the identifying;

load an in-use counter value into an in-use counter;

adjust the in-use counter value;

determine whether the in-use counter value has reached a predetermined number in response to the adjusting;

allow a same bank set read operation based upon determining that the in-use counter value has reached the predetermined number; and

reset an unavailable counter in response to determining that the in-use counter value has reached the predetermined number.

12. The program product of claim 11 wherein the computer readable code is further effective to:

receive one or more read preferred signals;

determine whether the read operation exists in a read queue that corresponds to the read preferred signals; and

offer the read operation based upon the determination.

13. The program product of claim 11 wherein the computer readable code is further effective to:

load an unavailable counter value into an unavailable counter;

adjust the unavailable counter value;

determine whether the unavailable counter value has reached zero in response to the adjusting; and

allow the read operation based upon the determination.

14. The program product of claim 13 wherein the computer readable code is further effective to:

adjust the unavailable counter value into negative territory, resulting in a negative unavailable counter value;

determine whether the negative unavailable counter value is evenly divisible by two; and

allow the read operation based upon determining that the negative unavailable counter value is evenly divisible by two.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →