IP Library Granted Patent US 8,171,242
Granted Patent B2
US 8,171,242 · App. 12/432,299 · Granted May 1, 2012

Systems and methods for scheduling a memory command for execution based on a history of previously executed memory commands

Assignee: Samsung Electronics Co., Ltd.
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 8,171,242
App. No.
12/432,299
Granted
May 1, 2012
Kind
B2
Abstract

A memory system is operated by maintaining a queue of memory commands to be executed, maintaining a list of previously executed memory commands, comparing local information associated with the commands to be executed with local information associated with the list of previously executed commands, and selecting one of the commands for execution from the queue of memory commands to be executed based on a result of the comparison.

Claims (45)

1. A method of operating a memory system, comprising:

maintaining a queue of memory commands to be executed;

maintaining a list of previously executed memory commands;

comparing local information associated with the commands to be executed with local information associated with the list of previously executed commands; and

selecting one of the commands for execution from the queue of memory commands to be executed based on a result of the comparison.

2. The method of claim 1 , wherein the local information comprises channel, way, Direct Memory Access (DMA) time, address translation time, or hardware timing information.

3. The method of claim 1 , wherein selecting one of the commands for execution comprises selecting the one of the commands for execution from the queue of memory commands to be executed that has a shortest expected blocking time.

4. The method of claim 1 , wherein selecting one of the commands for execution comprises:

beginning with the one of the previously executed memory commands that was most recently executed and proceeding until the command for execution is selected, performing the following:

discarding candidate commands for execution that are associated with a same channel as the previously executed command when the remaining candidate commands are not all associated with the same channel; then

discarding candidate commands that are associated with the same channel and way as the previously executed command when the remaining candidate commands are all associated with the same channel, but are not all associated with the same channel and way; then

discarding candidate commands that have longest Direct Memory Access (DMA) times when the remaining candidate commands are all associated with the same channel and way.

5. The method of claim 4 , wherein selecting one of the commands for execution comprises selecting one of the commands for execution from the queue of memory commands to be executed that is associated with the same channel and way as a more recent previously executed command when each of the remaining candidate commands are associated with the same channel and way as at least one of the previously executed commands.

6. The method of claim 4 , wherein DMA times are calculated based on memory sector size or sector count.

7. The method of claim 4 , wherein the channel and way are derived from Logical Block Address (LBA) information.

8. The method of claim 1 , further comprising:

removing one of the previously executed commands from the list of previously executed memory commands when all operations associated with the one of the previously executed commands have completed.

9. The method of claim 1 , wherein command execution comprises address translation.

10. The method of claim 1 , wherein the list of previously executed memory commands is a circular list.

11. The method of claim 1 , wherein the method is performed by a Flash Translation Layer (FTL).

12. The method of claim 1 , wherein the memory comprises a flash memory.

13. The method of claim 12 , wherein the flash memory comprises a NAND, NOR, or a One_NAND type flash memory.

14. A method of operating a memory system comprising a host, a memory controller, and a memory, the method comprising:

sending memory commands from the host to the memory controller;

determining an execution order for the memory commands based on a history of previously executed memory commands;

sending write data from the host to the memory controller while determining the execution order;

writing the write data from the memory controller to the memory;

reading read data from the memory into the memory controller; and

sending the read data from the memory controller to the host.

15. The method of claim 14 , wherein determining the execution order comprises:

maintaining a queue of the memory commands to be executed;

maintaining a list of the previously executed memory commands;

comparing local information associated with the memory commands to be executed with local information associated with the list of previously executed memory commands; and

selecting one of the memory commands for execution from the queue of memory commands to be executed based on a result of the comparison.

16. The method of claim 15 , wherein the local information comprises channel, way, Direct Memory Access (DMA) time, address translation time, or hardware timing information.

17. The method of claim 14 , wherein the memory comprises a flash memory.

18. The method of claim 17 , wherein the flash memory comprises a NAND, NOR, or a One_NAND type flash memory.

19. A memory system, comprising:

a memory; and

a memory controller that is configured to maintain a queue of commands for the memory to be executed, maintain a list of previously executed memory commands; compare local information associated with the commands to be executed with local information associated with the list of previously executed commands; and select one of the commands for execution from the queue of memory commands to be executed based on a result of the comparison.

20. The system of claim 19 , wherein the local information comprises channel, way, Direct Memory Access (DMA) time, address translation time, or hardware timing information.

21. The system of claim 19 , wherein the memory comprises a flash memory.

22. The system of claim 21 , wherein the flash memory comprises a NAND, NOR, or a One_NAND type flash memory.

23. The memory system of claim 19 , wherein the memory system is embodied in a memory card device, Solid State Drive (SSD) device, ATA bus device, Serial ATA (SATA) bus device, Small Computer System Interface (SCSI)device, Serial Attached SCSI (SAS) device, Multi-Media Card (MMC) device, Secure Digital (SD) device, memory stick device, Hard Disk Drive (HDD) device, Hybrid Hard Drive (HHD) device, or a Universal Serial Bus (USB) flash drive device.

24. The memory system of claim 19 , wherein the memory system is embodied in a graphics card, a computer, a mobile terminal, a Personal Digital Assistant (PDA), a camera, a game console, an MP3 player, a television, a DVD player, a router, or a GPS system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2009
From: HONG, DU-WON
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 022614/0826 →
Priority Claims (1)
KR 10-2008-0047244 · May 21, 2008 · national
Continuity (1)
Related Publication 20090292865A1 · Nov 26, 2009