COMMAND PACKETS FOR THE DIRECT CONTROL OF NON-VOLATILE MEMORY CHANNELS WITHIN A SOLID STATE DRIVE
First Claim
1. An apparatus, comprising:
- a plurality of flash memories configured into a plurality of channels, wherein each of the plurality of channels includes one or more of the plurality of flash memories; and
a controller coupled to the plurality of flash memories and configured to receive a plurality of packets and interpret each packet of the plurality of packets based on a first protocol, wherein the controller is further configured to;
determine whether any packets of the plurality of packets are linked based on a link identifier included in a block of each packet, wherein a subset of packets of the plurality of packets are linked if they have the same link identifier;
arrange the subset of packets based on an index included in the block of each packet of the subset of packets, wherein the subset of packets are arranged in order based on the respective indexes;
determine a target flash memory and a target channel based on flash memory and channel identifiers included in the block of each of the packet of the subset of packets, wherein each packet of the subset of packets identifies the same target flash memory and the same target channel; and
provide data, address and control signals to the target flash memory based on interpreting the block of each packet of the plurality of packets based on a second protocol.
1 Assignment
0 Petitions
Accused Products
Abstract
Apparatuses and methods for providing and intetpreting command packets for direct control of memory channels are disclosed herein. An example apparatus includes flash memories configured into channels and a controller coupled to the flash memories. The controller receives packets and interpret the packets based at least on a first protocol, and determines whether any packets are linked based on a link identifier included in a block of each packet. The controller arranges the subset of packets based on an index included in the block of each packet of the subset of packets, and the subset of packets are arranged in order based on the respective indexes. A target flash memory and a target channel are determined by the controller based on flash memory and channel identifiers included in the block of each of the packet of the subset of packets.
17 Citations
20 Claims
-
1. An apparatus, comprising:
-
a plurality of flash memories configured into a plurality of channels, wherein each of the plurality of channels includes one or more of the plurality of flash memories; and a controller coupled to the plurality of flash memories and configured to receive a plurality of packets and interpret each packet of the plurality of packets based on a first protocol, wherein the controller is further configured to; determine whether any packets of the plurality of packets are linked based on a link identifier included in a block of each packet, wherein a subset of packets of the plurality of packets are linked if they have the same link identifier; arrange the subset of packets based on an index included in the block of each packet of the subset of packets, wherein the subset of packets are arranged in order based on the respective indexes; determine a target flash memory and a target channel based on flash memory and channel identifiers included in the block of each of the packet of the subset of packets, wherein each packet of the subset of packets identifies the same target flash memory and the same target channel; and provide data, address and control signals to the target flash memory based on interpreting the block of each packet of the plurality of packets based on a second protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus, comprising:
-
a plurality of flash memories configured into a plurality of channels, wherein each of the plurality of channels includes one or more of the plurality of flash memories; and a controller, coupled to the plurality of flash memories, the controller comprising; a frontend interface configured to receive a plurality of packets and interpret each of the plurality of packets based on a first protocol, and wherein the frontend interface is configured to link a subset of packets of the plurality of packets based on a link identifier included in a block of each packet of the subset of packets being the same, and order the subset of packets into an order based on an index identifier included in the block of each packet of the subset of packets, and determine a flash memory of the plurality of flash memories and a channel of the plurality of channels the subset of packets is directed toward, and further configured to provide at least the block of each of the subset of packets; and a backend interface coupled to the frontend interface and the plurality of flash memories, the backend interface configured to receive at least the block of each of the subset of packets and interpret each block of the subset of packets based on a second protocol, and provide control signals, and operands to the flash memory of the plurality of flash memories over the channel of the plurality of channels. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A method, comprising:
-
receiving a plurality of packets, wherein each packet includes at least two blocks; interpreting a first block and at least a portion of a second block of each of the plurality of packets based on a first protocol; based on the interpreting the at least a first portion of the second block of each of the plurality of packets, determining whether a subset of packets of the plurality of packets are linked based on a link identifier included in the first portion of the second block of each packet of the subset of packets; based on determining that there is a subset of packets of the plurality of packets that are linked, ordering the subset of packets based on an index included in the first portion of the second block of each packet of the subset of packets; interpreting a second portion of the second block of each packet of the subset of packets based on a second protocol; providing control signals to a target flash memory of a plurality of flash memories of a target channel of a plurality of channels, wherein the target flash memory and the target channel is identified in the first portion of the second block of each packet of the subset of packets; and providing operands to the target flash memory of the target, wherein the operands and a type of each operand are identified in the second portion of the second block of each packet of the subset of packets. - View Dependent Claims (17, 18, 19, 20)
-
Specification