Flexible sequencer design architecture for solid state memory controller
First Claim
1. A method for controlling access to solid state memory devices, wherein the solid state memory devices are coupled to a controller, and the controller is controlled using firmware, the method comprising:
- receiving, from a host, a first operation request and a second operation request;
programming, using the firmware, a first descriptor for the first operation request and a second descriptor for the second operation request;
sequencing the first descriptor and the second descriptor via a sequencer;
transferring first data, according to the first descriptor, from a first solid state memory device of the solid state memory devices to the controller;
determining whether the transferring of the first data according to the first descriptor has completed; and
if the transferring of the first data according to the first descriptor has completed, starting a transfer of second data, according to the second descriptor, (i) sequentially after the transferring of the first data, and (ii) from a second solid state memory device of the solid state memory devices to the controller, wherein the second data is transferred to the controller while the first data is being transferred from the controller to the host,wherein the sequencer comprises an auxiliary first-in-first-out buffer configured to receive, from a device executing the firmware, logical block address information about data to be transferred.
8 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for controlling access to solid state memory devices which may allow maximum parallelism on accessing solid state memory devices with minimal interventions from firmware. To reduce the waste of host time, multiple flash memory devices may be connected to each channel. A job/descriptor architecture may be used to increase parallelism by allowing each memory device to operate separately. A job may be used to represent a read, write or erase operation. When firmware wants to assign a job to a device, it may issue a descriptor, which may contain information about the target channel, the target device, the type of operation, etc. The firmware may provide descriptors without waiting for a response from a memory device, and several jobs may be issued continuously to form a job queue. After the firmware finishes programming descriptors, a sequencer may handle the remaining work so that the firmware may concentrate on other tasks.
24 Citations
34 Claims
-
1. A method for controlling access to solid state memory devices, wherein the solid state memory devices are coupled to a controller, and the controller is controlled using firmware, the method comprising:
-
receiving, from a host, a first operation request and a second operation request; programming, using the firmware, a first descriptor for the first operation request and a second descriptor for the second operation request; sequencing the first descriptor and the second descriptor via a sequencer; transferring first data, according to the first descriptor, from a first solid state memory device of the solid state memory devices to the controller; determining whether the transferring of the first data according to the first descriptor has completed; and if the transferring of the first data according to the first descriptor has completed, starting a transfer of second data, according to the second descriptor, (i) sequentially after the transferring of the first data, and (ii) from a second solid state memory device of the solid state memory devices to the controller, wherein the second data is transferred to the controller while the first data is being transferred from the controller to the host, wherein the sequencer comprises an auxiliary first-in-first-out buffer configured to receive, from a device executing the firmware, logical block address information about data to be transferred. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for controlling access to solid state memory devices, wherein the solid state memory devices are coupled to a controller, and the controller is controlled using firmware, the method comprising:
-
receiving at least a first operation request and a second operation request from a host, wherein the first operation request is a read request; programming, using the firmware, a first descriptor for the first operation request and a second descriptor for the second operation request; sequencing the first descriptor and the second descriptor; transferring first data according to the first descriptor from an internal buffer of a target device to the controller; determining whether the transferring of the first data according to the first descriptor has finished; starting to transfer second data according to the second descriptor if the transferring of the first data according to the first descriptor has completed; storing a logical block address of requested data; and comparing the stored logical block address and a logical block address of the first data obtained from the target device according to the first descriptor.
-
-
20. An apparatus for controlling access to solid state memory devices, the apparatus comprising:
-
firmware for programming i) a first descriptor for a first operation request and ii) a second descriptor for a second operation request; a sequencer for receiving the first descriptor and the second descriptor; and a flash controller coupled to the sequencer and to the solid state memory devices, wherein the flash controller is configured to (i) receive the first descriptor, the second descriptor, and instructions from the sequencer, and (ii) transfer first data according to the first descriptor from a first solid state memory device of the solid state memory devices to the flash controller, wherein the instructions include read requests for transferring the first data and second data, wherein the flash controller is configured to start to transfer the second data, according to the second descriptor, from a second solid state memory device of the solid state memory devices to the flash controller when the transferring of the first data according to the first descriptor has finished, wherein, prior to the transferring of the first data according to the first descriptor being completed, (i) the flash controller is configured to transmit one of the read requests for the second data to the second solid state memory device, and (ii) the second solid state memory device is configured to transfer the second data to an internal buffer of the second solid state memory device according to the one of the read requests, and wherein the sequencer further comprises an auxiliary first-in-first-out buffer configured to receive, from a device executing the firmware, logical block address information about data to be transferred. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification