IP Library › Granted Patent US 9,141,538
Granted Patent B2
US 9,141,538 · App. 14/132,810 · Granted Sep 22, 2015

Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive

Inventors: Chi Kong Lee (Fremont, CA); Siu-Hung Frederick Au (Fremont, CA); Jungil Park (San Jose, CA); Hyunsuk Shin (San Diego, CA); Wei Xu (Milipitas, CA); Jinjin He (San Jose, CA); Fei Sun (Irvine, CA)
Assignee: Marvell World Trade Ltd.
G06F12/0246G06F3/061G06F3/064G06F3/0659G06F3/0679G06F13/1668G11C16/32
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 9,141,538
App. No.
14/132,810
Filed
Dec 18, 2013
Granted
Sep 22, 2015
Kind
B2
Art Unit
2136
USPC
711/154
Abstract

A storage drive including first, second, third, fourth and fifth modules. The first module is configured to control transfer of blocks of data between a host device and the storage drive. The second module is configured to transfer the blocks of data to and from a non-volatile semiconductor memory in the storage drive. The third module is configured to generate a first descriptor, which describes a transfer of blocks of data between the second module and the non-volatile semiconductor memory. The fourth module is configured to, according to the first descriptor, generate second descriptors. Each of the second descriptors corresponds to a respective one of the blocks of data. The fifth module is configured to generate instruction signals based on the second descriptors. The second module is configured to, based on the instruction signals, transfer the blocks of data between the first module and the non-volatile semiconductor memory.

Claims (60)

1. A storage drive comprising:

a first module configured to control transfer of a plurality of blocks of data between a host device and the storage drive;

a second module configured to transfer the plurality of blocks of data to and from a non-volatile semiconductor memory in the storage drive;

a third module configured to generate a first descriptor, which describes a transfer of the plurality of blocks of data between the second module and the non-volatile semiconductor memory;

a fourth module configured to, according to the first descriptor, generate a plurality of second descriptors, wherein each of the plurality of second descriptors corresponds to a respective one of the plurality of blocks of data;

a fifth module configured to generate a parameter signal based on the plurality of second descriptors; and

a sixth module configured to generate instruction signals based on the parameter signal,

wherein the second module is configured to, based on the instruction signals, transfer the plurality of blocks of data between the first module and the non-volatile semiconductor memory.

2. The storage drive of claim 1 , wherein the fourth module is configured to:

access a template;

update fields in the template based on a plurality of parameters in the first descriptor; and

generate the plurality of second descriptors according to the template.

3. The storage drive of claim 2 , wherein the fourth module is configured to replace values of the fields of the template with the plurality of parameters.

4. The storage drive of claim 2 , wherein:

the plurality of parameters include control parameters to control the non-volatile semiconductor memory; and

the fourth module is configured to generate some of the plurality of second descriptors to include the control parameters and others of the plurality of second descriptors to not include the control parameters.

5. The storage drive of claim 2 , wherein:

the template includes redundant array of independent disk values for the plurality of second descriptors;

the fourth module is configured to generate the plurality of second descriptors to respectively include the redundant array of independent disk values; and

wherein the second module is configured to, based on the redundant array of independent disk values, transfer the plurality of blocks of data between the first module and the non-volatile semiconductor memory.

6. The storage drive of claim 2 , wherein:

the templates includes channel values and memory device values for each of the plurality of second descriptors; and

the second module is configured to transfer portions of the data on respective channels to and from the non-volatile semiconductor memory according to the channel values and the memory device values.

7. The storage drive of claim 1 , wherein the fourth module is configured to indicate to the third module when generation of the plurality of second descriptors is completed.

8. The storage drive of claim 7 , wherein the fourth module is configured to generate an interrupt to indicate to the third module that the generation of the plurality of second descriptors is completed.

9. The storage drive of claim 7 , wherein the third module is configured to poll the fourth module to determine whether the generation of the plurality of second descriptors is completed.

10. The storage drive of claim 7 , wherein:

the fourth module is configured to update fields of a status register, wherein the fields of the status register include a number of descriptors generated and an address of a location of the plurality of second descriptors; and

the third module is configured to access the status register to determine whether the generation of the plurality of second descriptors is competed.

11. The storage drive of claim 1 , further comprising a first-in-first-out register configured to store status information, wherein the status information includes a field indicating whether one of the plurality of second descriptors is larger than a size of the first-in-first-out memory.

12. The storage drive of claim 1 , wherein:

the first descriptor is a firmware descriptor; and

the plurality of second descriptors are hardware descriptors.

13. The storage drive of claim 1 , wherein:

the third module is configured to execute firmware to generate the first descriptor; and

the fourth module comprises an electronic circuit, wherein the electronic circuit is configured to generate the plurality of second descriptors according to the first descriptor.

14. A method comprising:

controlling transfer of a plurality of blocks of data between a host device and a storage drive;

generating a first descriptor to transfer the plurality of blocks of data to or from a non-volatile semiconductor memory in the storage drive;

according to the first descriptor, generating a plurality of second descriptors, wherein each of the plurality of second descriptors corresponds to a respective one of the plurality of blocks of data;

generating a parameter signal based on the plurality of second descriptors;

generating instruction signals based on the parameter signal; and

based on the instruction signals, transferring the plurality of blocks of data between the host device and the non-volatile semiconductor memory.

15. The method of claim 14 , further comprising:

accessing a template;

updating fields in the template based on a plurality of parameters in the first descriptor; and

generate the plurality of second descriptors according to the template.

16. The method of claim 15 , further comprising:

replacing values of the fields of the template with the plurality of parameters,

wherein the plurality of parameters include control parameters to control the non-volatile semiconductor memory;

generating some of the plurality of second descriptors to include the control parameters; and

generating others of the plurality of second descriptors to not include the control parameters.

17. The method of claim 14 , further comprising indicating when generation of the plurality of second descriptors is completed.

18. The method of claim 14 , further comprising storing status information in a first-in-first-out register, wherein the status information includes a field indicating whether one of the plurality of second descriptors is larger than a size of the first-in-first-out register.

19. The method of claim 14 , wherein:

the first descriptor is a firmware descriptor; and

the plurality of second descriptors are hardware descriptors.

20. The method of claim 14 , further comprising:

executing firmware to generate the first descriptor; and

generating, via an electronic circuit, the plurality of second descriptors according to the first descriptor.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053475/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2020
From: MARVELL INTERNATIONAL LTD.
To: CAVIUM INTERNATIONAL
Reel/Frame 052918/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2020
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051778/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: LEE, CHI KONG; AU, SUI-HUNG FREDERICK; PARK, JUNGIL; SHIN, HYUNSUK; XU, WEI; HE, JINJIN; SUN, FEI
To: MARVELL SEMICONDUCTOR, INC.
Reel/Frame 032204/0468 →
LICENSE Recorded Feb 12, 2014
From: MARVELL WORLD TRADE LTD.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 032204/0585 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: MARVELL SEMICONDUCTOR, INC.
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 032204/0512 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2014
From: MARVELL INTERNATIONAL LTD.
To: MARVELL WORLD TRADE LTD.
Reel/Frame 032204/0527 →
Continuity (5)
Continuation In Part 13166340 · Jun 22, 2011
Provisional Application 61900104 · Nov 5, 2013
Provisional Application 61739386 · Dec 19, 2012
Provisional Application 61362251 · Jul 7, 2010
Related Publication 20140108714A1 · Apr 17, 2014