Patents Assigned to Sandisk Enterprise IP LLC
  • Patent number: 8677055
    Abstract: Approaches for performing a write operation on a solid state device (SSD). One or more containers are maintained on the solid state device. Each container is a logical grouping of objects independent from where the logical grouping of objects are physically stored on the solid state device. When a write operation is received at the SSD, the manner is which changes requested by the write operation should be stored are determined based on which container is being written. Containers provide a flexible approach for specifying attributes of how data should be stored and accessed which is independent from where the data is physically stored. Containers also have particular utility in performing load balancing and ensuring high availability and recovery.
    Type: Grant
    Filed: January 3, 2011
    Date of Patent: March 18, 2014
    Assignee: Sandisk Enterprises IP LLC
    Inventors: Darryl Ouye, Darpan Dinker, John Busch
  • Patent number: 8667212
    Abstract: A data processing system includes one or more nodes, each node including a memory sub-system. The sub-system includes a fine-grained, memory, and a less-fine-grained (e.g., page-based) memory. The fine-grained memory optionally serves as a cache and/or as a write buffer for the page-based memory. Software executing on the system uses a node address space which enables access to the page-based memories of all nodes. Each node optionally provides ACID memory properties for at least a portion of the space. In at least a portion of the space, memory elements are mapped to locations in the page-based memory. In various embodiments, some of the elements are compressed, the compressed elements are packed into pages, the pages are written into available locations in the page-based memory, and a map maintains an association between the some of the elements and the locations.
    Type: Grant
    Filed: August 13, 2012
    Date of Patent: March 4, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Thomas M. McWilliams, Earl T. Cohen, James M. Bodwin, Ulrich Bruening
  • Patent number: 8667001
    Abstract: A distributed database system has multiple compute nodes each running an instance of a database management system (DBMS) program that accesses database records in a local buffer cache. Records are persistently stored in distributed flash memory on multiple storage nodes. A Sharing Data Fabric (SDF) is a middleware layer between the DBMS programs and the storage nodes and has API functions called by the DBMS programs when a requested record is not present in the local buffer cache. The SDF fetches the requested record from flash memory and loads a copy into the local buffer cache. The SDF has threads on a home storage node that locate database records using a node map. A global cache directory locks and pins records to local buffer caches for updating by a node's DBMS program. DBMS operations are grouped into transactions that are committed or aborted together as a unit.
    Type: Grant
    Filed: June 20, 2012
    Date of Patent: March 4, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Darpan Dinker, Andrew David Eckhardt, Darryl Manabu Ouye, Brian Walter O'Krafka, Earl T. Cohen, Thomas M. McWilliams
  • Patent number: 8666939
    Abstract: Approaches for replicating data in a distributed transactional system. At a first node of a cluster, a per-transaction write set that comprises a plurality of write operations that are performed against a first data store maintained by the first node is committed. The per-transaction write set is replicated from the first node to a second node of the cluster. At the second node, the plurality of write operations, specified by the per-transaction write set, may be performed in parallel against a second data store maintained by the second node. At the second node, two or more threads may perform a portion of the plurality of write operations against data blocks stored within an in-memory buffer.
    Type: Grant
    Filed: June 28, 2011
    Date of Patent: March 4, 2014
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Brian W. O'Krafka, Darpan Dinker, Manavalan Krishnan, Johann George
  • Patent number: 8621137
    Abstract: A method of rebuilding metadata in a flash memory controller following a loss of power. The method includes reading logical address information associated with an area of flash memory, and using time stamp information to determine if data stored in the flash memory area is valid.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: December 31, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 8621155
    Abstract: Approaches for an object store implemented, at least in part, on one or more solid state devices. The object store may store objects on a plurality of solid state devices. The object store may include a transaction model means for ensuring that the object store performs transactions in compliance with atomicity, concurrency, isolation, and durability (ACID) properties. The object store may include means for providing parallel flushing in a write cache maintained on each of the solid state devices. The object store may include means for maintaining one or more double-write buffers, for the object store, at a location other than the solid state devices. The object store may optionally comprise means for maintaining one or more circular transaction logs, for the object store, at a location other than the solid state devices. The object store may operate to minimize write operations performed on the solid state devices.
    Type: Grant
    Filed: January 3, 2011
    Date of Patent: December 31, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: John Busch, Darpan Dinker, Darryl Ouye
  • Patent number: 8621138
    Abstract: In a storage controller connected to a flash memory module, an execute loop used to carry out tasks related to reading or writing data from the module. The loop includes reading a data structure from a queue and carrying out a task specified by the data structure, unless resources required by the task are not available, in which event the loop moves on to another data structure stored in another queue. Data structures bypassed by the loop are periodically revisited, until all tasks required are completed. Data structures store state information that is updated when tasks are completed.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: December 31, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20130339581
    Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.
    Type: Application
    Filed: May 3, 2013
    Publication date: December 19, 2013
    Applicant: SanDisk Enterprise IP LLC
    Inventor: SanDisk Enterprise IP LLC
  • Publication number: 20130339582
    Abstract: A storage controller is provided that contains multiple processors. In some embodiments, the storage controller is coupled to a flash memory module having multiple flash memory groups, each flash memory group corresponding to a distinct flash port in the storage controller, each flash port comprising an associated processor. Each processor handles a portion of one or more host commands, including reads and writes, allowing multiple parallel pipelines to handle one or more host commands simultaneously.
    Type: Application
    Filed: May 10, 2013
    Publication date: December 19, 2013
    Applicant: SanDisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20130262753
    Abstract: A storage controller has multiple processors, divided into groups, each of which handles a different stage of a pipelined process of performing host reads and writes. In some embodiments, the storage controller operates with a flash memory module, and includes a first processor group, a second processor group and a third processor group, each having one or more processors for handling a different stage of a pipelined execution of host storage commands. With respect to a first host command, a first processor of the first processor group, a first processor of the second processor group, and a first processor of the third processor group comprise a first pipeline, and with respect to a second host command, a second processor of the first processor group, a second processor of the second processor group, and a second processor of the third processor group comprise a second pipeline.
    Type: Application
    Filed: May 14, 2013
    Publication date: October 3, 2013
    Applicant: SanDisk Enterprise IP LLC
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Patent number: 8533384
    Abstract: A flash memory controller connected to multiple flash memory groups performs independent garbage collection operations in each group. For each group, the controller independently determines the amount of free space and performs garbage collection operations if the amount falls below a threshold.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: September 10, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 8484534
    Abstract: In a multiple level cell flash memory data storage device, a flash memory array has a plurality of blocks, where each block is an erase unit and has a plurality of pages, and a respective block includes a plurality of groups of pages. Each group of pages in the respective block includes an assigned parity page, and each page of the respective block has a plurality of sectors, including an assigned parity sector. The storage device is operable to program and erase data on a page at a predetermined speed, and detect an error rate for each page of a block and identify a group of high error pages based on the error rates. Further, the storage device is configured to apply a speed slower than the predetermined speed in programming and erasing data on the identified high error pages.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: July 9, 2013
    Assignee: Sandisk Enterprise IP LLC.
    Inventors: Aaron K. Olbrich, Doug Prins
  • Patent number: 8484533
    Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: July 9, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Doug Prins
  • Patent number: 8473814
    Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: June 25, 2013
    Assignee: SanDisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Doug Prins
  • Patent number: 8386700
    Abstract: A flash memory controller connected to multiple flash memory groups performs independent garbage collection operations in each group. For each group, the controller independently determines the amount of free space and performs garbage collection operations if the amount falls below a threshold.
    Type: Grant
    Filed: November 29, 2011
    Date of Patent: February 26, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 8365041
    Abstract: A two-dimensional self-RAID method of protecting page-based storage data in a MLC multiple-level-cell flash memory device. The protection scheme includes reserving one parity sector across each data page, reserving one parity page as the column parity, selecting a specific number of pages to form a parity group, writing into the parity page a group parity value for data stored in the pages of the parity group. The parity sector represents applying a RAID technique in a first dimension. The group parity represents applying a RAID technique in a second dimension. Data protection is achieved because a corrupted data sector can likely be recovered by the two dimensional RAID data.
    Type: Grant
    Filed: March 17, 2010
    Date of Patent: January 29, 2013
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Doug Prins
  • Patent number: 8245101
    Abstract: A patrol function performed in a storage controller connected to a flash memory storage module. The function causes selected areas of the flash storage to be read for purposes of detecting and correcting errors.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: August 14, 2012
    Assignee: Sandisk Enterprise IP LLC
    Inventors: Aaron K. Olbrich, Douglas A. Prins