×

Command packets for the direct control of non-volatile memory channels within a solid state drive

  • US 10,467,155 B2
  • Filed: 10/26/2015
  • Issued: 11/05/2019
  • Est. Priority Date: 10/26/2015
  • Status: Active Grant
First Claim
Patent Images

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 operate using first and second protocols, receive a plurality of packets and use the first protocol to interpret each packet of the plurality of packets, wherein the controller is further configured to;

    use the second protocol 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, and the link identifier is included in the block of each packet interpreted by using the second protocol;

    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 in each packet of the plurality of packets, 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 the second protocol different than the first protocol,wherein the first protocol is a Non-Volatile Memory Express (NVMe) protocol, and the second protocol is an Open NAND Flash Interface (ONFI) protocol,wherein the same controller is configured to use the NVMe protocol to interpret each packet of the plurality of packets, and use the ONFI protocol to interpret the block of each packet of the plurality of packets and provide, in each packet of the plurality of packets, the data, address and control signals to the target flash memory,wherein the controller is further configured to use an index identifier to order a linked subset of packets of the subset of packets,wherein the index identifier is included, in a higher byte than the link identifier, in a block of each of the linked subset of packets, the flash memo and channel identifiers are included, in higher bytes than both the index and link identifiers, in the block of each of the linked subset of packets, and the flash memory identifier is included in a higher byte than the channel identifier in the block, such that the block includes, in order, the flash memory identifier, the channel identifier, the index identifier, and the link identifier, andwherein the ONFI protocol includes user-defined commands.

View all claims
  • 8 Assignments
Timeline View
Assignment View
    ×
    ×