IP Library › Granted Patent US 10,168,951
Granted Patent B2
US 10,168,951 · App. 15/082,163 · Granted Jan 1, 2019

Methods for accessing data in a circular block mode and apparatuses using the same

Inventor: Chao-Kuei Hsieh (New Taipei, TW)
Assignee: SILICON MOTION, INC.
G06F3/0659G06F3/0604G06F3/0653G06F3/0685G06F12/0246G06F12/1009G06F2212/1044G06F2212/2022
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,168,951
App. No.
15/082,163
Granted
Jan 1, 2019
Kind
B2
Abstract

A method for accessing data in a circular block mode, executed by a processing unit, is introduced to contain the following steps. A read command and an LBA (Logical Block Address) are obtained from a host device through a first access interface. Logical block and page numbers are calculated according to the LBA, and a record associated with the logical block number is read from a storage mapping table, where the record contains a physical block number and a circular index. A physical page number is calculated according to the logical page number and the circular index. A read command is issued to a storage unit through a second access interface for reading data of the LBA from a region associated with the physical block number and the physical page number, and the data is replied to the host device through the first access interface.

Claims (45)

1. A method for accessing data in a circular block mode, performed by a processing unit, comprising:

obtaining a write command, an LBA (Logical Block Address) and first data through a first access interface;

calculating a logical block number and a logical page number according to the LBA;

reading a record associated with the logical block number from a storage mapping table, wherein the record comprises a first physical block number and a circular index;

calculating an actual page number according to the logical page number and the circular index;

determining whether the first data can be stored in a first region associated with the first physical block number and the actual page number;

when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, obtaining a second physical block number through a second access interface; and

when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, issuing a program instruction to a storage unit through the second access interface to program the first data into a second region from page 0 of a block associated with the second physical block number;

when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, issuing a move instruction to the storage unit through the second access interface to move second data associated with the first physical block number to a third region associated with the second physical block number, wherein the third region follows the second region.

2. The method of claim 1 , further comprising:

when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, updating the circular index of the record with the actual page number.

3. The method of claim 1 , wherein the calculation of the logical block number and the logical page number uses an equation as follows:

L/n=a with remainder b,

where L indicates the LBA, n indicates a total amount of pages within one block, a indicates the logical block number and b indicates the logical page number.

4. The method of claim 1 , wherein the calculation of the actual page number uses an equation as follows:

( b+i )/ n=c with remainder d,

where b indicates the logical page number, i indicates the circular index, n indicates a total amount of pages within one block, c indicates the calculated quotient, and d indicates the actual page number.

5. The method of claim 1 , wherein the record further comprises a next-empty-page number, and the step for determining whether the first data can be stored in a first region associated with the first physical block number and the actual page number, further comprises determining whether the next-empty-page number equals the actual page number.

6. The method of claim 5 , wherein, when the next-empty-page number does not equal the actual page number, the first data cannot be stored in the first region associated with the first physical block number and the actual page number.

7. An apparatus for accessing data in a circular block mode, comprising:

a first access interface, coupled to a host device;

a second access interface, coupled to a storage unit; and

a processing unit, coupled to the first access interface and the second access interface, obtaining a write command, an LBA (Logical Block Address) and first data through the first access interface; calculating a logical block number and a logical page number according to the LBA; reading a record associated with the logical block number from a storage mapping table, wherein the record comprises a first physical block number and a circular index; calculating an actual page number according to the logical page number and the circular index; determining whether the first data can be stored in a first region associated with the first physical block number and the actual page number; and when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, obtaining a second physical block number through the second access interface and issuing a program instruction to the storage unit through the second access interface to program the first data into a second region from page 0 of a block associated with the second physical block number, and issuing a move instruction to the storage unit through the second access interface to move second data associated with the first physical block number to a third region associated with the second physical block number, wherein the third region follows the second region.

8. The apparatus of claim 7 , wherein, when the first data cannot be stored in the first region associated with the first physical block number and the actual page number, the processing unit updates the circular index of the record with the actual page number.

9. The apparatus of claim 7 , wherein the calculation of the logical block number and the logical page number uses an equation as follows:

L/n=a with remainder b,

where L indicates the LBA, n indicates a total amount of pages within one block, a indicates the logical block number and b indicates the logical page number.

10. The apparatus of claim 7 , wherein the calculation of the actual page number uses an equation as follows:

( b+i )/ n=c with remainder d,

where b indicates the logical page number, i indicates the circular index, n indicates a total amount of pages within one block, c indicates the calculated quotient, and d indicates the actual page number.

11. The apparatus of claim 7 , wherein the record further comprises a next-empty-page number, and the processing unit determines whether the first data can be stored in the first region associated with the first physical block number and the actual page number by determining whether the next-empty-page number equals the actual page number.

12. The apparatus of claim 11 , wherein, when the next-empty-page number does not equal the actual page number, the first data cannot be stored in the first region associated with the first physical block number and the actual page number.

13. A method for accessing data in a circular block mode, performed by a processing unit, comprising:

obtaining a read command and an LBA (Logical Block Address) from a host device through a first access interface;

calculating a logical block number and a logical page number according to the LBA;

reading a record associated with the logical block number from a storage mapping table, wherein the record comprises a physical block number and a circular index;

calculating an actual page number according to the logical page number and the circular index;

issuing a read instruction to a storage unit through a second access interface to read data of the LBA from a region associated with the physical block number and the actual page number; and

replying to the host device through the first access interface with the data, wherein the calculation of the actual page number uses an equation as follows:

( b+i )/ n=c with remainder d,

where b indicates the logical page number, i indicates the circular index, n indicates a total amount of pages within one block, c indicates the calculated quotient, and d indicates the actual page number.

14. The method of claim 13 , wherein the calculation of the logical block number and the logical page number uses an equation as follows:

L/n=a with remainder b,

where L indicates the LBA, n indicates a total amount of pages within one block, a indicates the logical block number and b indicates the logical page number.

15. The method of claim 13 , wherein the storage mapping table is stored in a DRAM (Dynamic Random Access Memory).

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2016
From: HSIEH, CHAO-KUEI
To: SILICON MOTION, INC.
Reel/Frame 038111/0299 →
Priority Claims (1)
TW 104114540 A · May 7, 2015 · national
Continuity (1)
Related Publication 20160328183A1 · Nov 10, 2016