US2016335208A1PendingUtilityA1

Presentation of direct accessed storage under a logical drive model

Assignee: INTEL CORPPriority: Sep 30, 2011Filed: Jul 29, 2016Published: Nov 17, 2016
Est. expirySep 30, 2031(~5.2 yrs left)· nominal 20-yr term from priority
G06F 3/0607G06F 2213/0026G06F 3/0661G06F 2212/262G06F 3/0689G06F 13/1668G06F 11/1068G06F 2213/0032G06F 3/0659G06F 12/0866G06F 3/064G06F 13/4282G06F 3/0646G06F 13/28G06F 3/0673G06F 3/0613G06F 13/102G06F 3/0619G06F 3/0626G06F 3/065G06F 13/4068G06F 3/061G06F 3/0688
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In accordance with embodiments disclosed herein, there are provided methods, systems, mechanisms, techniques, and apparatuses for presentation of direct accessed storage under a logical drive model; for implementing a distributed architecture for cooperative NVM Data protection; data mirroring for consistent SSD latency; for boosting a controller's performance and RAS with DIF support via concurrent RAID processing; for implementing arbitration and resource schemes of a doorbell mechanism, including doorbell arbitration for fairness and prevention of attack congestion; and for implementing multiple interrupt generation using a messaging unit and NTB in a controller through use of an interrupt coalescing scheme. For instance, there is disclosed a storage apparatus having therein a plurality of NAND (Negated AND) based flash memory components arranged into a plurality of NAND arrays; a NAND controller communicatively interfaced with the plurality of NAND arrays; and block mirroring logic to establish a mirrored copy for each data block written to the storage apparatus, each mirrored copy to be stored within one of plurality of NAND arrays. Other related embodiments are disclosed.

Claims

exact text as granted — not AI-modified
1 . A storage apparatus comprising:
 a plurality of NAND (Negated AND) based flash memory components arranged into a plurality of NAND arrays;   a NAND controller communicatively interfaced with the plurality of NAND arrays; and   block mirroring logic to establish a mirrored copy for each data block written to the storage apparatus, each mirrored copy to be stored within one of the plurality of NAND arrays.   
     
     
         2 . The storage apparatus of  claim 1 , wherein the block mirroring logic to establish the mirrored copy for each data block written to the storage apparatus comprises the block mirroring logic to store each mirrored copy for each data block within one of plurality of NAND arrays which is distinct from a NAND array among the plurality of NAND arrays upon which a corresponding data block for each mirrored copy is stored. 
     
     
         3 . The storage apparatus of  claim 1 :
 wherein the block mirroring logic designates one of the plurality of NAND based flash memory components as a first NAND location to store a data block; and   wherein the block mirroring logic designates a second one of the plurality of NAND based flash memory components as a second NAND location (NAND location prime) to store the mirrored copy of the data block stored within the first NAND location.   
     
     
         4 . The storage apparatus of  claim 3 , wherein the block mirroring logic further maintains exclusivity among the plurality of NAND arrays for each first NAND location and second NAND location prime which corresponds to any data block and a mirrored copy for the data block. 
     
     
         5 . The storage apparatus of  claim 1 :
 wherein the NAND controller further is communicatively linked to an external device;   wherein the NAND controller is to receive an I/O transaction from the external device; and   wherein the storage apparatus fulfils the I/O transaction from the external device via the NAND controller in conjunction with the block mirroring logic via the plurality of NAND arrays.   
     
     
         6 . The storage apparatus of  claim 5 :
 wherein the I/O transaction from the external device comprises a write I/O transaction specifying a data block to be stored upon the storage apparatus;   wherein the block mirroring logic to write the specified data block to a first one of the plurality of NAND arrays; and   wherein the block mirroring logic to write a mirrored copy for the specified data block to a second one of the plurality of NAND arrays, wherein the first one of the plurality of NAND arrays and the second one of the plurality of NAND arrays are distinct.   
     
     
         7 . The storage apparatus of  claim 5 :
 wherein the I/O transaction from the external device comprises a read I/O transaction specifying a data block to be retrieved from the storage apparatus;   wherein the block mirroring logic to determine a first one of the plurality of NAND arrays upon which the specified data block is stored;   wherein the block mirroring logic to determine the first one of the plurality of NAND arrays upon which the specified data block is stored and which is presently processing an active erase operation and is therefore not available for retrieval from the specified data block;   wherein the block mirroring logic to determine a second one of the plurality of NAND arrays upon which the mirrored copy for the specified data block is stored; and   wherein the block mirroring logic to retrieve the mirrored copy for the specified data block from the second one of the plurality of NAND arrays in fulfillment of the read I/O transaction.   
     
     
         8 . The storage apparatus of  claim 7 , wherein the block mirroring logic prevents an active erase operation to be issued to both the first one of the plurality of NAND arrays upon which the specified data block is stored and to the second one of the plurality of NAND arrays upon which the mirrored copy for the specified data block is stored at the same time to guarantee availability of either the specified data block or the mirrored copy for the specified data block at all times. 
     
     
         9 . The storage apparatus of  claim 1 :
 wherein the storage device is a SSD (Solid-State Drive) having the plurality of NAND based flash memory components arranged into the plurality of NAND arrays integrated therein and further having the NAND controller integrated therein; and   wherein the NAND controller of the SSD to implement the block mirroring logic for the SSD and   wherein the SSD is to operate as one of:
 (i) a direct access storage device which operates independently of a host, a host operating system, and/or a host managed file system and is not managed or controlled by the host, the host operating system, and/or the host managed file system, the direct access storage device being directly accessible via applications hosted by and executing upon the host or the host operating system, wherein the direct access storage device is communicatively interfaced with an external controller operating as the external device in communication with the NAND controller of the SSD; or 
 (ii) an endpoint storage device which operates under the control of the host, the host operating system, and/or the host managed file system and is managed and controlled by the host, the host operating system, and/or the host managed file system, wherein the endpoint storage device is communicatively interfaced with the host, the host operating as the external device in communication with the NAND controller of the SSD. 
   
     
     
         10 . The storage apparatus of  claim 1 :
 wherein the storage device is a SSD (Solid-State Drive); and   wherein the external device comprises a controller, the controller having comprised therein:   a local controller Central Processor Unit (CPU);   local controller memory;   a PCIe (Peripheral Component Interconnect Express) interface to communicatively link the controller with a host machine; and   a controller interface module to communicate I/O operations and instructions with the host machine via the PCIe interface, the communicated I/O operations to be relayed to the SSD.   
     
     
         11 . A system comprising:
 a processor;   a memory;   a controller; and   a Solid-State Drive (SSD) storage device, wherein the SSD storage device comprises:
 (i) a plurality of NAND (Negated AND) based flash memory components arranged into a plurality of NAND arrays; 
 (ii) a NAND controller communicatively interfaced with the plurality of NAND arrays; and 
 (iii) block mirroring logic to establish a mirrored copy for each data block written to the SSD storage device by the system, each mirrored copy to be stored within one of the plurality of NAND arrays. 
   
     
     
         12 . The system of  claim 11 , wherein the block mirroring logic of the SSD storage device to establish the mirrored copy for each data block written to the SSD storage device by the system comprises the block mirroring logic to store each mirrored copy for each data block within one of plurality of NAND arrays which is distinct from a NAND array among the plurality of NAND arrays upon which a corresponding data block for each mirrored copy is stored. 
     
     
         13 . The system of  claim 11 :
 wherein the block mirroring logic of the SSD storage device designates one of the plurality of NAND based flash memory components as a first NAND location to store a data block; and   wherein the block mirroring logic of the SSD storage device designates a second one of the plurality of NAND based flash memory components as a second NAND location (NAND location prime) to store the mirrored copy of the data block stored within the first NAND location.   
     
     
         14 . The system of  claim 13 , wherein the block mirroring logic of the SSD storage device further is to maintain exclusivity among the plurality of NAND arrays for each first NAND location and second NAND location prime which corresponds to any data block and a mirrored copy for the data block. 
     
     
         15 . The system of  claim 11 :
 wherein the NAND controller of the SSD storage device further is communicatively linked to the controller of the system;   wherein the NAND controller of the SSD storage device is to receive an I/O transaction from the controller of the system; and   wherein the SSD storage device of the system fulfils the I/O transaction from the controller of the system via the NAND controller in conjunction with the block mirroring logic via the plurality of NAND arrays.   
     
     
         16 . The system of  claim 15 :
 wherein the I/O transaction from the controller of the system comprises a write I/O transaction by the system specifying a data block to be stored upon the SSD storage device of the system;   wherein the block mirroring logic of the SSD storage device is to write the specified data block to a first one of the plurality of NAND arrays; and   wherein the block mirroring logic of the SSD storage device is to write a mirrored copy for the specified data block to a second one of the plurality of NAND arrays, wherein the first one of the plurality of NAND arrays and the second one of the plurality of NAND arrays are distinct.   
     
     
         17 . The system of  claim 15 :
 wherein the I/O transaction from the controller of the system comprises a read I/O transaction specifying a data block to be retrieved from the SSD storage device;   wherein the block mirroring logic of the SSD storage device is to determine a first one of the plurality of NAND arrays upon which the specified data block is stored;   wherein the block mirroring logic of the SSD storage device is to determine the first one of the plurality of NAND arrays upon which the specified data block is stored and which is presently processing an active erase operation and is therefore not available for retrieval from the specified data block;   wherein the block mirroring logic of the SSD storage device is to determine a second one of the plurality of NAND arrays upon which the mirrored copy for the specified data block is stored; and   wherein the block mirroring logic of the SSD storage device is to retrieve the mirrored copy for the specified data block from the second one of the plurality of NAND arrays in fulfillment of the read I/O transaction from the controller of the system.   
     
     
         18 . The system of  claim 17 , wherein the block mirroring logic of the SSD storage device is to prevent an active erase operation to be issued to both the first one of the plurality of NAND arrays upon which the specified data block is stored and to the second one of the plurality of NAND arrays upon which the mirrored copy for the specified data block is stored at the same time to guarantee availability of either the specified data block or the mirrored copy for the specified data block at all times. 
     
     
         19 . The system of  claim 11 :
 wherein the SSD storage device having the plurality of NAND based flash memory components arranged into the plurality of NAND arrays integrated therein and further having the NAND controller integrated therein is to implement the block mirroring logic for the SSD storage device via the NAND controller; and   wherein the SSD storage device of the system is to operate as one of:
 (i) a direct access storage device which operates independently of a host Operating System (OS) of the system and/or a host managed File System (FS) of the system, wherein the SSD storage device of the system is not managed or controlled by the host OS and/or the host managed FS, the direct access storage device being directly accessible via applications hosted by and executing upon the system or the host OS, wherein the direct access storage device is communicatively interfaced with the controller of the system, the controller of the system being in communication with the NAND controller of the SSD storage device; or alternatively wherein the SSD storage device of the system is to operate as: 
 (ii) an endpoint storage device which operates under the control of the system, the host OS, and/or the host managed FS and is managed and controlled by the system, the host OS, and/or the host managed FS, wherein the endpoint storage device is communicatively interfaced with the controller of the system, the controller of the system being in communication with the NAND controller of the SSD storage device. 
   
     
     
         20 . Non-transitory computer readable storage media having instructions stored thereupon that, when executed by a local controller Central Processor Unit (CPU) of a storage apparatus, the instructions cause the storage apparatus to perform operations comprising:
 receiving Input/Output (TO) communications from an external controller specifying a plurality of data blocks;   wherein the storage apparatus comprises a plurality of NAND (Negated AND) based flash memory components arranged into a plurality of NAND arrays;   wherein the storage apparatus further comprises a NAND controller communicatively interfaced with the plurality of NAND arrays; and   wherein the NAND controller of the storage apparatus embodies the local controller CPU; and   wherein the instructions, when executed by the local controller CPU further cause the storage apparatus to perform operations including:   establishing, via block mirroring logic of the storage apparatus, a mirrored copy for each data block written to the storage apparatus pursuant to the plurality of received data blocks, each mirrored copy to be stored within one of the plurality of NAND arrays.

Join the waitlist — get patent alerts

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

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