IP Library Granted Patent US 10,338,998
Granted Patent B2
US 10,338,998 · App. 15/626,334 · Granted Jul 2, 2019

Methods for priority writes in an SSD (solid state disk) system and apparatuses using the same

Inventors: Ningzhong Miao (Shanghai, CN); Zhen Zhou (Shanghai, CN)
Assignee: SHANNON SYSTEMS LTD.
G06F11/1044G06F3/061G06F3/065G06F3/0619G06F3/0659G06F3/0665G06F3/0679G06F3/0689G06F11/108
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 10,338,998
App. No.
15/626,334
Granted
Jul 2, 2019
Kind
B2
Abstract

The invention introduces a method for priority writes in an SSD (Solid State Disk) system, performed by a processing unit, including at least the following steps. After a priority write command instructing the processing unit to write first data whose length is less than a page length in a storage unit is received, a buffer controller is directed to store the first data from the next available sub-region of a buffer, which is associated with a priority write, in a first direction. After a non-priority write command instructing to write second data whose length is less than page length in the storage unit is received, the buffer controller is directed to store the second data from the next available sub-region of the buffer, which is associated with a non-priority write, in a second direction.

Claims (30)

1. A method for priority writes in an SSD (Solid State Disk) system, performed by a processing unit, comprising:

receiving a priority write command instructing the processing unit to write first data whose length is less than a page length in a storage unit;

directing a buffer controller to store the first data from the next available sub-region of a buffer, which is associated with a priority write, in a first direction;

receiving a non-priority write command instructing to write second data whose length is less than page length in the storage unit; and

directing the buffer controller to store the second data from the next available sub-region of the buffer, which is associated with a non-priority write, in a second direction.

2. The method of claim 1 , wherein the first direction is opposite to the second direction.

3. The method of claim 1 , comprising:

after storing the first data in the buffer, modifying a first tail pointer to point to an available sub-region next to the last sub-region, which stores the first data; and

after storing the second data in the buffer, modifying a second tail pointer to point to an available sub-region next to the last sub-region, which stores the second data.

4. The method of claim 1 , comprising:

before directing the buffer controller to store the first data in the buffer, directing the data dispatcher to couple a first access interface to the buffer controller for sending the first data to the buffer controller; and

before directing the buffer controller to store the second data in the buffer, directing the data dispatcher to couple the first access interface to the buffer controller for sending the second data to the buffer controller.

5. The method of claim 4 , wherein the data dispatcher is a de-multiplexer for coupling the first access interface to the buffer controller or a second access interface according to a control signal.

6. The method of claim 1 , wherein the buffer controller periodically determines whether the buffer has stored at least one page of the first data; and, when the buffer has stored at least one page of the first data, the buffer controller programs one or more complete pages of the first data into the storage unit.

7. The method of claim 6 , wherein, when the buffer has stored at least one page of the first data, the buffer controller outputs the complete page or pages of the first data to a first RAID (Redundant Array of Independent Disks) engine; and directs an access interface to receive the complete page or pages of the first data and a first ECC (Error Check and Correction) code from the first RAID engine and program the complete page or pages of the first data and the first ECC code into the storage unit.

8. The method of claim 7 , wherein, after successfully programming the complete page or pages of the first data and the first ECC code into the storage unit, the buffer controller modifies a first tail pointer to point to an available sub-region next to the last sub-region, which stores the first data.

9. The method of claim 6 , wherein, after successfully programming the complete page or pages of the first data and the first ECC code into the storage unit, the buffer controller determines whether the buffer has stored at least one page of the second data; and, when the buffer has stored at least one page of the second data, the buffer controller programs one or more complete pages of the second data into the storage unit.

10. The method of claim 9 , wherein, when the buffer has stored at least one page of the second data, the buffer controller outputs the complete page or pages of the second data to a second RAID engine; and directs the access interface to receive the complete page or pages of the second data and a second ECC code from the second RAID engine and program the complete page or pages of the second data and the second ECC code into the storage unit.

11. An apparatus for priority writes in an SSD (Solid State Disk) system, comprising:

a buffer controller; and

a processing unit, coupled to the buffer controller, receiving a priority write command instructing the processing unit to write first data whose length is less than a page length in a storage unit from a host device; directing the buffer controller to store the first data from the next available sub-region of a buffer, which is associated with a priority write, in a first direction; receiving a non-priority write command instructing to write second data whose length is less than page length in the storage unit from the host device; and directing the buffer controller to store the second data from the next available sub-region of the buffer, which is associated with a non-priority write, in a second direction.

12. The apparatus of claim 11 , wherein the first direction is opposite to the second direction.

13. The apparatus of claim 11 , wherein buffer controller, after storing the first data in the buffer, modifies a first tail pointer to point to an available sub-region next to the last sub-region, which stores the first data; and, after storing the second data in the buffer, modifies a second tail pointer to point to an available sub-region next to the last sub-region, which stores the second data.

14. The apparatus of claim 11 , wherein the processing unit, before directing the buffer controller to store the first data in the buffer, directs a data dispatcher to couple a first access interface to the buffer controller for sending the first data to the buffer controller; and, before directing the buffer controller to store the second data in the buffer, directs the data dispatcher to couple the first access interface to the buffer controller for sending the second data to the buffer controller.

15. The apparatus of claim 14 , wherein the data dispatcher is a de-multiplexer for coupling the first access interface to the buffer controller or a second access interface according to a control signal.

16. The apparatus of claim 11 , wherein the buffer controller periodically determines whether the buffer has stored at least one page of the first data; and, when the buffer has stored at least one page of the first data, programs one or more complete pages of the first data into the storage unit.

17. The apparatus of claim 16 , wherein, when the buffer has stored at least one page of the first data, the buffer controller outputs the complete page or pages of the first data to a first RAID (Redundant Array of Independent Disks) engine; and directs an access interface to receive the complete page or pages of the first data and a first ECC (Error Check and Correction) code from the first RAID engine and program the complete page or pages of the first data and the first ECC code into the storage unit.

18. The apparatus of claim 17 , wherein, after successfully programing the complete page or pages of the first data and the first ECC code into the storage unit, the buffer controller modifies a first tail pointer to point to an available sub-region next to the last sub-region, which stores the first data.

19. The apparatus of claim 16 , wherein, after successfully programming the complete page or pages of the first data and the first ECC code into the storage unit, the buffer controller determines whether the buffer has stored at least one page of the second data; and, when the buffer has stored at least one page of the second data, the buffer controller programs one or more complete pages of the second data into the storage unit.

20. The apparatus of claim 19 , when the buffer has stored at least one page of the second data, the buffer controller outputs the complete page or pages of the second data to a second RAID engine; and directs the access interface to receive the complete page or pages of the second data and a second ECC code from the second RAID engine and program the complete page or pages of the second data and the second ECC code into the storage unit.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2017
From: MIAO, NINGZHONG; ZHOU, ZHEN
To: SHANNON SYSTEMS LTD.
Reel/Frame 042744/0944 →
Priority Claims (1)
CN 2016 1 0802224 · Sep 5, 2016 · national
Continuity (1)
Related Publication 20180067797A1 · Mar 8, 2018