IP Library › Granted Patent US 11,126,431
Granted Patent B1
US 11,126,431 · App. 16/888,493 · Granted Sep 21, 2021

Dynamic memory scheduling routine with enhanced bank-group batching

Inventors: Jean-Jacques Lecler (Antibes, FR); Alain Artieri (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F9/30043G06F12/0238G11C11/4096G06F2212/202
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 11,126,431
App. No.
16/888,493
Granted
Sep 21, 2021
Kind
B1
Abstract

A method for dynamic memory scheduling with enhanced bank-group batching is described. The method includes determining a read-bank group-spread of each rank, as a number of bank-groups of each respective rank targeted by at least one read instruction. The method further includes determining a write-bank group-spread of each rank, as a number of bank-groups of each rank targeted by at least one write instruction. The method also includes stalling a current batch of read instructions in a rank when the read-bank group-spread of the rank is less than a predetermined value. The method further includes stalling a current batch of write instructions in a rank when the write-bank group-spread of the rank is less than the predetermined value.

Claims (39)

1. A method for dynamic memory scheduling with enhanced bank-group batching, the method comprising:

determining a read-bank group-spread of each rank, as a number of bank-groups of each respective rank targeted by at least one read instruction;

determining a write-bank group-spread of each rank, as a number of bank-groups of each rank targeted by at least one write instruction;

stalling a current batch of read instructions in a rank when the read-bank group-spread of the rank is less than a predetermined value; or

stalling a current batch of write instructions in a rank when the write-bank group-spread of the rank is less than the predetermined value.

2. The method of claim 1 , in which the predetermined value comprises a maximum read-bank group-spread in all ranks of a dynamic memory.

3. The method of claim 1 , further comprising issuing a read instruction of a next selected batch of read instructions after the stalling of the current batch of write instructions when the read-bank group-spread of the next selected batch of read instructions is greater than the write-bank group-spread of the current batch of write instructions.

4. The method of claim 1 , further comprising issuing a read instruction of a next selected batch of read instructions after the stalling of the current batch of read instructions, in which the next selected batch of read instructions belongs to a different rank than the current batch of read instructions.

5. The method of claim 1 , further comprising delaying the stalling of the current batch of read instructions until a temporal gap is detected.

6. The method of claim 1 , further comprising issuing read candidates in another rank when a read-bank group spread of the other rank is a maximum read-bank group-spread in all ranks of a dynamic memory.

7. The method of claim 1 , further comprising issuing a write instruction of a next selected batch of write instructions after the stalling of the current batch of read instructions when the write-bank group-spread of the next selected batch of write instructions is greater than the read-bank group-spread of the current batch of read instructions.

8. The method of claim 1 , further comprising issuing a write instruction of a next selected batch of write instructions after the stalling of the current batch of write instructions, in which the next selected batch of write instructions belongs to a different rank than the current batch of write instructions.

9. The method of claim 1 , further comprising delaying the stalling of the current batch of write instructions until a temporal gap is detected.

10. The method of claim 1 , further comprising issuing write candidates in another rank when a write bank group spread of the other rank is a maximum write-bank group-spread in all ranks of a dynamic memory.

11. A non-transitory computer-readable medium having program code recorded thereon for dynamic memory scheduling with enhanced bank-group batching, the program code executed by a processor and comprising:

program code to determine a read-bank group-spread of each rank, as a number of bank-groups of each respective rank targeted by at least one read instruction;

program code to determine a write-bank group-spread of each rank, as a number of bank-groups of each rank targeted by at least one write instruction;

program code to stall a current batch of read instructions in a rank when the read-bank group-spread of the rank is less than a predetermined value; and

program code to stall a current batch of write instructions in a rank when the write-bank group-spread of the rank is less than the predetermined value.

12. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to issue a read instruction of a next selected batch of read instructions after the stalling of the current batch of write instructions when the read-bank group spread of the next selected batch of read instructions is greater than the write-bank group-spread of the current batch of write instructions.

13. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to delay the stalling of the current batch of read instructions until a temporal gap is detected.

14. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to issue read candidates in another rank when a read-bank group spread of the other rank is a maximum read-bank group-spread in all ranks of the dynamic memory.

15. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to issue a write instruction of a next selected batch of write instructions after the stalling of the current batch of read instructions when the write-bank group-spread of the next selected batch of write instructions is greater than the read-bank group-spread of the current batch of read instructions.

16. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to delay the stalling of the current batch of write instructions until a temporal gap is detected.

17. The non-transitory computer-readable medium of claim 11 , further comprising:

program code to issue write candidates in another rank when a write bank group spread of the other rank is a maximum write-bank group-spread in all ranks of the dynamic memory.

18. A memory subsystem, comprising:

a first memory rank comprising a plurality of first bank groups;

a second memory rank comprising a plurality of second bank groups;

an IO controller coupled to the first memory rank and the second memory rank;

dynamic arbitration logic configured to determine a read-bank group-spread of the first memory rank and the second memory rank, as a number of bank-groups of each respective memory rank targeted by at least one read instruction, and configured to determine a write-bank group-spread of the first memory rank and the second memory rank, as a number of bank-groups of each memory rank targeted by at least one write instruction; and

a dynamic memory scheduler configured to stall a current batch of read instructions in a memory rank when the read-bank group-spread of the memory rank is less than a predetermined value, or configured to stall a current batch of write instructions in a memory rank when the write-bank group-spread of the memory rank is less than the predetermined value.

19. The memory subsystem of claim 18 , in which the dynamic memory scheduler is further configured to delay the stall of the current batch of read instructions until a temporal gap is detected.

20. The memory subsystem of claim 18 , in which the dynamic memory scheduler is further configured to delay the stall of the current batch of write instructions until a temporal gap is detected.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2020
From: LECLER, JEAN-JACQUES; ARTIERI, ALAIN
To: QUALCOMM INCORPORATED
Reel/Frame 054432/0637 →
Cited By (1)
US 12,449,995