Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
First Claim
Patent Images
1. A flash memory controller comprising:
- a plurality of processors, each processor including a register, an ALU and an internal memory;
a plurality of memories, at least some of the memories containing data structures, the data structures including metadata related to memory commands, at least some of the memories containing work queues for the plurality of processors;
a crossbar switch connecting the processors with the memories, the crossbar switch including a set of processor ports including one port for each processor and a set of memory ports including one port for each memory, and an internal switching mechanism allowing connection of any processor port with any memory port, but not allowing connection of a processor port with another processor port or a memory port with another memory port;
whereby a processor communicates with another processor by using the crossbar switch to place tasks on a work queue associated with the other processor.
11 Assignments
0 Petitions
Accused Products
Abstract
A controller designed for use with a flash memory storage module, including a crossbar switch designed to connect a plurality of internal processors with various internal resources, including a plurality of internal memories. The memories contain work lists for the processors. In one embodiment, the processors communicate by using the crossbar switch to place tasks on the work lists of other processors.
295 Citations
25 Claims
-
1. A flash memory controller comprising:
-
a plurality of processors, each processor including a register, an ALU and an internal memory; a plurality of memories, at least some of the memories containing data structures, the data structures including metadata related to memory commands, at least some of the memories containing work queues for the plurality of processors; a crossbar switch connecting the processors with the memories, the crossbar switch including a set of processor ports including one port for each processor and a set of memory ports including one port for each memory, and an internal switching mechanism allowing connection of any processor port with any memory port, but not allowing connection of a processor port with another processor port or a memory port with another memory port; whereby a processor communicates with another processor by using the crossbar switch to place tasks on a work queue associated with the other processor. - View Dependent Claims (2, 3, 4, 5)
-
-
6. The method of operating a flash memory controller, comprising the following steps:
-
(a) receiving a host command specifying a read or write and a logical address; (b) creating a metadata structure related to the host command, the structure specifying the host command and the logical address or an address related to the logical address; (c) storing the metadata structure in a first memory or memory region; (d) a first processor accessing a second memory or memory region, the second memory containing an ordered worklist associated with a second processor; (e) the first processor writing a pointer to the metadata structure onto the worklist; and (f) in response, the second processor performing a task relating to the metadata structure. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A flash memory controller comprising:
-
a crossbar switch connecting a plurality of processors with a plurality of memories, including an arbitrator that assigns control of a memory port on the crossbar switch based on results of an arbitration; the plurality of memories storing; a plurality of populated metadata structures related to host commands; lists of pointers to free metadata structures; and a first and second worklist each containing pointers to populated metadata structures, each worklist being associated with a separate processor. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A method of operating a flash storage controller, the flash storage controller including a first and second processor, a crossbar switch and first and second controller memories, the method comprising the following steps:
-
(a) the first processor storing a first metadata structure in a processor memory internal to the first processor; (b) the first processor accessing a first crossbar switch port associated with the first controller memory; (c) the first processor copying the first metadata structure to the first controller memory; (d) the first processor accessing a second crossbar switch port associated with the second controller memory; (e) the first processor placing a pointer to the first metadata structure in a worklist stored in the second controller memory, the worklist being associated with the second processor; (f) the second processor accessing the first crossbar switch port; (g) the second processor copying the first metadata structure from the first controller memory to a processor memory internal to the second processor; and (h) the second processor modifying the first metadata structure. - View Dependent Claims (17, 18, 19, 20)
-
-
21. A flash memory controller comprising:
-
a first processor and a second processor, each processor including a register, an ALU and an internal processor memory; a first volatile memory containing a first worklist, the first worklist being associated with the first processor; a second volatile memory containing a second worklist, the second worklist being associated with the second processor, a third volatile memory containing a first metadata structure relating to a first host command; a fourth volatile memory containing a second metadata structure relating to a second host command; a crossbar switch including; a set of processor ports, each connected to a processor, including a first processor port connected to the first processor and a second processor port connected to the second processor; a set of memory ports, each connected to a volatile memory, including a first memory port connected to the first volatile memory, a second memory port connected to the second volatile memory and a third memory port connected to the third volatile memory and a fourth memory port connected to the fourth volatile memory; the crossbar switch including internal circuitry selectively connecting one of the processor ports to one of the memory ports. - View Dependent Claims (22, 23, 24, 25)
-
Specification