Multiprocessor storage controller
First Claim
Patent Images
1. A storage system comprising:
- a first and a second flash memory groups, each group comprising a plurality of flash memory devices;
a storage controller including a plurality of groups of processors, each processor group comprising one or more processors for handling a different stage of a pipelined execution of host storage commands, the processor groups including;
a host interface circuit coupled to receive a first host command from a first host through a host interface and a second host command from a second host through the host interface, the host interface circuit including;
a first processor of the host interface circuit operably connected to one or more buffers that hold information received through the host interface, the first processor of the host interface circuit including software or hardware control disposed to format such information for use by downstream elements of the storage system; and
a second processor of the host interface circuit operably connected to one or more buffers that hold information received from other storage system elements, the second processor of the host interface circuit including software or hardware control disposed to format such information for transmission through the host interface;
a first processor group of the plurality of groups of processors including a first processor of the first processor group and a second processor of the first processor group, the first processor of the first processor group associated with the first flash memory group and the second processor of the first processor group associated with the second flash memory group, each such processor configured for controlling at least some operations of the flash memory group associated therewith; and
a command processing circuit configured to provide the first host command to the first processor of the first processor group and the second host command to the second processor of the first processor group, the first flash memory group being configured to carry out, under control of the first processor of the first processor group, flash read or write operations relating to the first host command and the second flash memory group being configured to carry out, under control of the second processor of the first processor group, flash read or write operations relating to the second host command, the storage controller configured to cause the first and second host commands to be carried out substantially simultaneously.
11 Assignments
0 Petitions
Accused Products
Abstract
A storage controller containing multiple processors. The processors are divided into groups, each of which handles a different stage of a pipelined process of performing host reads and writes. In one embodiment, the storage controller operates with a flash memory module, and includes multiple parallel pipelines that allow plural host commands to be handled simultaneously.
-
Citations
23 Claims
-
1. A storage system comprising:
-
a first and a second flash memory groups, each group comprising a plurality of flash memory devices; a storage controller including a plurality of groups of processors, each processor group comprising one or more processors for handling a different stage of a pipelined execution of host storage commands, the processor groups including; a host interface circuit coupled to receive a first host command from a first host through a host interface and a second host command from a second host through the host interface, the host interface circuit including; a first processor of the host interface circuit operably connected to one or more buffers that hold information received through the host interface, the first processor of the host interface circuit including software or hardware control disposed to format such information for use by downstream elements of the storage system; and a second processor of the host interface circuit operably connected to one or more buffers that hold information received from other storage system elements, the second processor of the host interface circuit including software or hardware control disposed to format such information for transmission through the host interface; a first processor group of the plurality of groups of processors including a first processor of the first processor group and a second processor of the first processor group, the first processor of the first processor group associated with the first flash memory group and the second processor of the first processor group associated with the second flash memory group, each such processor configured for controlling at least some operations of the flash memory group associated therewith; and a command processing circuit configured to provide the first host command to the first processor of the first processor group and the second host command to the second processor of the first processor group, the first flash memory group being configured to carry out, under control of the first processor of the first processor group, flash read or write operations relating to the first host command and the second flash memory group being configured to carry out, under control of the second processor of the first processor group, flash read or write operations relating to the second host command, the storage controller configured to cause the first and second host commands to be carried out substantially simultaneously. - View Dependent Claims (2, 3, 4)
-
-
5. A method of operating a system including a storage controller disposed on a single integrated circuit device, and a plurality of groups of flash memory devices, the storage controller including a first processor group, a second processor group and a third processor group, each processor group comprising one or more processors for handling a different stage of a pipelined execution of host storage commands, the method comprising the following steps:
-
(a) receiving a first host command in a first processor of the first processor group, the first host command including a first logical address or range, wherein the first host is one of at least two hosts coupled to the storage controller through a host interface, wherein the first processor is operably connected to one or more buffers that hold information relating to the first host command, the first processor including software or hardware control disposed to format such information for use by downstream elements of the storage system; (b) the first processor performing a task related to the first host command; (c) the first processor directly or indirectly passing information related to the first host command to a second processor, the second processor being part of the second processor group; (d) the second processor evaluating the first logical address or range; (e) based at least in part on the first logical address or range, the second processor directly or indirectly passing information related to the first host command to a third processor, the third processor being part of the third processor group; (f) the third processor initiating a flash memory read in a first flash group, based at least in part on information directly or indirectly received from the second processor; (g) receiving a second host command through the host interface from a second host at a fourth processor, the fourth processor being part of the first processor group, the second host command including a second logical address or range, wherein the fourth processor is operably connected to one or more buffers that hold information relating to the second host command, the fourth processor including software or hardware control disposed to format such information for use by downstream elements of the storage system; and (h) the fourth processor performing a task related to the second host command, this step (h) overlapping step (b) in time. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of operating a storage system comprising the following steps:
-
(a) at a first host port, receiving a first communication including a first host command, wherein the first host port is one of at least two host ports coupled to a storage controller, the storage controller including a plurality of groups of processors including a first processor group, each processor group comprising one or more processors for handling a different stage of a pipelined execution of host storage commands; (b) a first processor of the first processor group performing an action relating to the first host command, wherein the first processor is operably connected to one or more buffers that hold information relating to the first host command, the first processor including software or hardware control disposed to format such information for use by downstream elements of the storage system; (c) transmitting information relating to the first host command to a second processor; (d) the second processor evaluating the first host command; (e) the second processor routing information relating to a second processor portion of the first host command based at least in part on the evaluation; (f) receiving information related to a third processor portion of the first host command at a third processor; (g) at the third processor, evaluating a first logical address associated with the first host command; (h) based at least in part on the first logical address, routing information relating to a fourth processor portion of the first host command to a fourth processor; (i) at the fourth processor, evaluating the received information relating to the fourth processor portion of the first host command; (j) at the fourth processor, generating a first flash read command based on the first host command; (k) communicating the first flash read command to a first flash group; (l) the first flash group executing the first flash read command; (m) communicating information relating to the status of the first flash read command to the fourth processor; (n) following completion of the first flash read command, communicating information relating to the first flash read command to a fifth processor; (o) the fifth processor taking an action relating to formatting the information read in the first flash read command for transmission to a first host; (p) transmitting the information read in the first flash read command to the first host through the first host port; (q) at a second host port, receiving a second communication from a second host including a second host command; (r) a sixth processor of the first processor group performing an action relating to the second host command;
the action being performed prior to completion of step (p), wherein the sixth processor is operably connected to one or more buffers that hold information relating to the second host command, the sixth processor including software or hardware control disposed to format such information for use by downstream elements of the storage system. - View Dependent Claims (16, 17, 18)
-
-
19. A method of operating a storage system including the following steps:
-
(a) a first processor receiving first information relating to a first host command from a first host which is one of at least two hosts coupled to a storage controller, the storage controller including a plurality of groups of processors, each processor group comprising one or more processors for handling a different stage of a pipelined execution of host storage commands; (b) based at least in part on such information, the first processor generating a first flash command and a second flash command; (c) the first processor transmitting the first flash command to a first flash memory group comprising a plurality of flash memory devices; (d) the first flash memory group carrying out a first flash operation based on the first flash command; (e) the first processor transmitting the second flash command to the first flash memory group, the second command being transmitted to the first flash memory group prior to completion of the first flash operation; (f) the first flash memory group carrying out a second flash operation based on the second flash command; (g) a second processor receiving second information relating to a second host command; (h) based at least in part on such information, the second processor generating a third flash command and a fourth flash command; (i) the second processor transmitting the third flash command to a second flash memory group comprising a plurality of flash memory devices; (j) the second flash memory group carrying out a third flash operation based on the third flash command; (k) the second processor transmitting the fourth flash command to the second flash memory group, the fourth command being transmitted to the second flash memory group prior to completion of the third flash operation; (l) the second flash memory group carrying out a fourth flash operation based on the fourth flash command; the storage system adapted to execute multiple flash commands relating to multiple host commands in an overlapped manner and the first host command and the second host command are provided by a command processing circuit. - View Dependent Claims (20, 21, 22, 23)
-
Specification