IP Library › Granted Patent US 11,829,643
Granted Patent B2
US 11,829,643 · App. 17/562,071 · Granted Nov 28, 2023

Memory controller system and a method of pre-scheduling memory transaction for a storage device

Inventors: Chee Hak Teh (Pulau Pinang, MY); Yu Ying Ong (Pulau Pinang, MY); Weng Li Leow (Pulau Pinang, MY); Muhamad Aidil Bin Jazmi (Pulau Pinang, MY)
Assignee: SKYECHIP SDN BHD
G06F3/0659G06F3/0604G06F3/0656G06F3/0673
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,829,643
App. No.
17/562,071
Granted
Nov 28, 2023
Kind
B2
Abstract

A memory controller system (and method of pre-scheduling memory transaction) for a storage device comprising a linked-list controller; a plurality of command buffers to store read commands or write commands, and an arbiter to issue command. Each command buffer containing variables set by the linked-list controller. The linked-list controller is configured to execute commands in sequence independent of logical command buffer sequence. The command buffer is configured to support read commands with maximum number of write commands. The linked-list controller is configured to merge multiple write commands that are going to the same address and snarfs read commands from write commands if both commands are going to the same address and the read commands that are snarfed are loaded into a separate command buffer. The variables contained in each of the command buffer indicates status and dependency of the command buffer to create a link forming a command sequence.

Claims (42)

1. A memory controller system for a storage device comprising:

a linked-list controller;

a plurality of command buffers to store read commands or write commands, wherein each command buffer containing variables set by the linked-list controller;

an arbiter configured to issue a command;

wherein the linked-list controller is configured to execute commands in sequence independent of logical command buffer sequence;

wherein

said each command buffer is configured to support said read commands with a maximum number of said write commands;

wherein the linked-list controller is configured to merge multiple write commands that are going to the same address;

wherein the linked-list controller snarfs said read commands from said write commands if both commands are going to the same address and the read commands that are snarfed are loaded into a separate command buffer;

wherein the variables contained in said each command buffer indicates status and dependency of the command buffer to create a link forming a command sequence, and

wherein the quantity of the plurality of command buffers is configurable for multiple entries with different implementations.

2. The system as claimed in claim 1 , wherein the variables comprise head and tail representing order of the command buffer in the link.

3. The system as claimed in claim 2 , wherein an independent command buffer is placed at the head in the link as first command and a forthcoming command is dependent on tail of the independent command buffer.

4. The system as claimed in claim 2 , wherein the commands of the system access to the same address in sequence and access to different banks in parallel.

5. The system as claimed in claim 1 , wherein the arbiter determines maximum number of the write or read commands.

6. A method of scheduling memory transaction, in advance, for a storage device, said method comprising the steps of:

setting variables of a command buffer comprising read commands and write commands by a linked-list controller;

creating a link based on the variables of a plurality of command buffers to form a command sequence;

placing an independent command at a head in the link followed by forthcoming command based on tail of the former command buffer;

transacting the command according to the link; and

loading a new command into an empty command buffer to continue the memory transaction,

wherein transacting the command according to the link by arbiter when head of the list of both page and bank is set to 1.

7. The method as claimed in claim 6 , wherein the arbiter issues the command based on the arbitration policies implemented when there are more than one commands going to a different bank available.

8. The method as claimed in claim 6 , wherein the method further comprising the step of snarfing the read commands from write commands if both commands are going to the same address and loading the reads command into a separate command buffer.

9. The method as claimed in claim 6 , wherein the method further comprising the step of transacting the write commands and read commands of the same address in sequence, and transacting the write commands and read commands of different banks in any order or in parallel.

10. The method as claimed in claim 6 , wherein the method further comprising override autoprecharge command asserted when the linked-list controller has future command being linked with the current command.

11. The method as claimed in claim 10 , wherein the linked-list controller set autoprecharge low for a continuous row access.

12. The method as claimed in claim 10 , wherein the linked-list controller set autoprecharge high for a row switch.

13. The method as claimed in claim 10 , wherein the linked-list controller preserves the autoprecharge instruction when row continuity information is absent.

14. A method of scheduling memory transaction, in advance, for a storage device, said method comprising the steps of:

selling variables of a command buffer comprising read commands and write commands by a linked-list controller;

creating a link based on the variables of a plurality of command buffers to form a command sequence;

placing an independent command at a head in the link followed by forthcoming command based on tail of the former command buffer;

transacting the command according to the link;

loading a new command into an empty command buffer to continue the memory transaction, and

merging multiple write commands that are going to the same address by the linked-list controller before transacting the command.

15. The method as claimed in claim 14 , wherein the steps of write merging comprising:

indicating the identity of the command being merged and identity of the command being merged into to a write data buffer;

merging the write commands going to the same address into one command buffer;

replacing the old data with the new data or combining the data by write data buffer if all bytes are not enabled;

loading the commands that going other address into another command buffer; and

repeating the preceding steps of merging the write commands and loading new command until the command buffer are fully occupied.

Assignments (3)
CHANGE OF NAME Recorded May 28, 2026
From: SKYECHIP SDN. BHD.
To: SKYECHIP BERHAD
Reel/Frame 075794/0806 →
CHANGE OF NAME Recorded Jan 3, 2026
From: SKYECHIP SDN. BHD.
To: SKYECHIP SDN. BHD.
Reel/Frame 074746/0464 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2021
From: TEH, CHEE HAK; ONG, YU YING; LEOW, WENG LI; JAZMI, MUHAMAD AIDIL BIN
To: SKYECHIP SDN BHD
Reel/Frame 058478/0910 →
Priority Claims (1)
MY 2021006393 · Oct 25, 2021 · national
Continuity (1)
Related Publication 20230129791A1 · Apr 27, 2023