US2021272629A1PendingUtilityA1

Solid state drive architectures

Assignee: THSTYME BERMUDA LTDPriority: Nov 20, 2012Filed: Apr 28, 2021Published: Sep 2, 2021
Est. expiryNov 20, 2032(~6.3 yrs left)· nominal 20-yr term from priority
Y02D10/00G11C 16/10G06F 12/08G06F 12/0246G06F 12/0868G06F 2212/225G06F 2212/284G06F 2212/7203G06F 2212/7201G06F 2212/1032G06F 13/28G06F 2212/312G06F 3/0688G11C 11/4063G11C 2207/2245G06F 2212/313G06F 2212/1036G06F 2212/7208G11C 16/0408G11C 14/0018G06F 2212/283G06F 2212/262
59
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A solid state drive (SSD) includes dynamic random access memory (DRAM), flash memory, and a solid state drive (SSD) controller. The solid state drive (SSD) also includes a peripheral component interconnect express (PCIe) bus to connect the SSD to a computing device such that a central processing unit (CPU) of the computing device exclusively reads data from, and writes data to, the DRAM. The SSD controller writes data to the flash memory from the DRAM independently of received commands from the computing device.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A solid state drive (SSD) comprising:
 dynamic random access memory (DRAM);   flash memory;   a solid state drive (SSD) controller; and   a peripheral component interconnect express (PCIe) bus to connect the SSD to a computing device such that a central processing unit (CPU) of the computing device exclusively reads data from, and writes data to, the DRAM,   wherein the SSD controller writes data to the flash memory from the DRAM independently of received commands from the computing device.   
     
     
         2 . The SSD of  claim 1 , wherein the SSD controller comprises:
 a non-volatile memory express (NVMe) controller to receive commands from the computing device to access the SSD;   a command block to receive and store the commands, wherein a command includes a logical block address and a command word;   a memory manager to manage data transfer into and out of the DRAM based on a mapping between the logical block address of the command and a pointer to a location in the DRAM;   a logical flash controller to manage data transfer between the SSD and the computing device;   at least one flash interface controller to buffer data to be written to multiple flash die from the DRAM; and   a flash controller per flash interface controller paired with a flash die to manage data access into and out of the flash die.   
     
     
         3 . The SSD of  claim 2 , wherein the at least one flash interface controller comprises multiple flash interface controllers. 
     
     
         4 . The SSD of  claim 3 , wherein multiple flash die are written to in parallel. 
     
     
         5 . The SSD of  claim 2 , wherein the SSD controller further comprises a DRAM controller to manage data access to the DRAM. 
     
     
         6 . The SSD of  claim 2 , wherein the flash interface controller maps the logical block address to locations on corresponding flash die. 
     
     
         7 . The SSD of  claim 1 , in which data access to the DRAM is implemented at full interface speed. 
     
     
         8 . A method, comprising:
 receiving from a computing device, a command to access a solid state drive (SSD), wherein the command includes a logical block address and a command word;   storing the command in a command block of an SSD controller;   determining, from a logical record (LR) table stored in a memory manager of the SSD controller, whether the logical block address maps to a pointer to a location on dynamic random access memory (DRAM); and   when the logical block address maps to a pointer in the DRAM, executing the command in the DRAM based on the mapping, while preventing access of the computing device to flash memory of the SSD.   
     
     
         9 . The method of  claim 8 , wherein:
 the command is a read command; and   the method further comprises:
 determining from the LR table, with the memory manager, if data associated with the command word is stored in DRAM; 
 when the data associated with the command word is stored in DRAM, transferring the data from the DRAM to the computing device; and 
 when the data associated with the command word is not stored in DRAM:
 sending the command word to a flash interface controller; 
 determining at the flash interface controller a location on the flash memory where the data is stored; and 
 transferring the data from the flash memory to the computing device. 
 
   
     
     
         10 . The method of  claim 9 , wherein data is stored on the DRAM in 32k packets. 
     
     
         11 . The method of  claim 8 , wherein:
 the command is a write command; and   the method further comprises:
 when the logical block address maps to a location on the DRAM, storing data associated with the command word in DRAM; and 
 when the logical block address does not map to a location on the DRAM:
 generating a mapping between the logical block address of the command and a new unused location on the DRAM; and 
 storing the data associated with the command on the DRAM in the new unused location; and 
 
 reporting to the computing device that the write command is complete. 
   
     
     
         12 . The method of  claim 8 , further comprising:
 holding data associated with the command in DRAM;   determining when the DRAM has a threshold amount of full blocks; and   when the DRAM has the threshold amount of full blocks, transferring the full blocks to the flash memory, wherein the full blocks are transferred to the flash memory independent of any received command.   
     
     
         13 . The method of  claim 12 , wherein transferring the full blocks to the flash memory comprises:
 dividing the data in the full blocks into various portions;   buffering the various portions in different flash interface controllers; and   for each flash interface controller:
 sequentially initiating writes to each corresponding flash die via a flash controller coupled to a flash die. 
   
     
     
         14 . The method of  claim 13 , wherein:
 after a write has been initialized on a first flash die, initiating a write on a second flash die before the write to the first flash die is complete; and   when data remains in the buffer and the write on the first flash die has terminated, initiating another sequential write on the first flash die.   
     
     
         15 . The method of  claim 14 , wherein writes to each flash die are at three or four page increments. 
     
     
         16 . A solid state drive (SSD) comprising:
 dynamic random access memory (DRAM);   flash memory comprising:
 multiple flash die; 
 at least one flash interface controller to buffer data to be written to a subset of the multiple flash die from the DRAM; and 
 a flash controller per flash interface controller and paired with a flash die to manage data access into and out of the flash die, 
   a peripheral component interconnect express (PCIe) bus coupling the SSD to a computing device; and   a solid state drive (SSD) controller comprising:
 a non-volatile memory express (NVMe) controller to receive commands to access the SSD; 
 a command block to receive and store the commands, wherein a command includes a logical block address and a command word; 
 a memory manager to manage data transfer into and out of the DRAM based on a mapping between the logical block address of the command and a pointer to a location in the DRAM; 
 a logical flash controller to manage data transfer between the SSD and the computing device; 
 wherein less than all writes to the SSD are written to the flash memory. 
   
     
     
         17 . The SSD of  claim 16 , wherein the DRAM is the only memory accessible by the computing device. 
     
     
         18 . The SSD of  claim 16 , wherein the NVMe controller receives multiple commands and stores the multiple commands in a command buffer of the command block. 
     
     
         19 . The SSD of  claim 16 , wherein the command block sends a record of execution of the command. 
     
     
         20 . The SSD of  claim 16 , wherein pages of the flash die are identified as having errors and eliminated from a block while other pages in the block remain in use to increase the lifetime of the flash memory by at least  10  times that of flash memory that eliminates an entire sector when an error is detected in a page within the sector.

Join the waitlist — get patent alerts

Track US2021272629A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.