Patents by Inventor Douglas A. Prins

Douglas A. Prins has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • 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: 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: 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: 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
  • Publication number: 20120072654
    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: Application
    Filed: November 29, 2011
    Publication date: March 22, 2012
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 7978516
    Abstract: Disclosed is a flash memory controller connected to a flash memory module. The pin-out of the flash memory controller combines ready-busy and chip-select signals. In one embodiment, the flash memory module is made up of a set of banks, each consisting of a plurality of devices, with each bank sharing a single chip-select/ready-busy connection to the controller.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: July 12, 2011
    Assignee: Pliant Technology, Inc.
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 7934052
    Abstract: Disclosed is a mass storage system and method for breaking a host command into a hierarchy of data structures. Different types of data structures are designed to handle different phases of tasks required by the host command, and multiple data structures may be used to handle portions of the host command in parallel, thereby allowing increased performance. The disclosed embodiments include a flash memory controller designed to allow a high degree of pipelining and parallelism.
    Type: Grant
    Filed: April 8, 2008
    Date of Patent: April 26, 2011
    Assignee: Pliant Technology, Inc.
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Publication number: 20090172262
    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: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20090172259
    Abstract: A volatile memory associated with a mass storage controller and a flash memory module. The volatile memory includes a number of tables containing information related to the flash memory storage, including a table storing physical flash memory addresses and a plurality of tables containing metadata.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Publication number: 20090172260
    Abstract: A storage controller connected to a flash memory storage module, the controller and module including multiple sets of buffers. The buffers are part of one or more pipelines through which data is moved between the storage module and one or more hosts.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A Prins
  • Publication number: 20090168525
    Abstract: Disclosed is a flash memory controller connected to a flash memory module. The pin-out of the flash memory controller combines ready-busy and chip-select signals. In one embodiment, the flash memory module is made up of a set of banks, each consisting of a plurality of devices, with each bank sharing a single chip-select/ready-busy connection to the controller.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20090172261
    Abstract: A storage controller containing multiple processors. The processors are divided into groups, each of which handles a different stage of a pipelined process of performing host reads and writes. In one embodiment, the storage controller operates with a flash memory module, and includes multiple parallel pipelines that allow plural host commands to be handled simultaneously.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Publication number: 20090172257
    Abstract: Disclosed is a mass storage system and method for breaking a host command into a hierarchy of data structures. Different types of data structures are designed to handle different phases of tasks required by the host command, and multiple data structures may be used to handle portions of the host command in parallel, thereby allowing increased performance. The disclosed embodiments include a flash memory controller designed to allow a high degree of pipelining and parallelism.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Publication number: 20090172258
    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: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20090172308
    Abstract: A controller designed for use with a flash memory storage module, including a crossbar switch designed to connect a plurality of internal processors with various internal resources, including a plurality of internal memories. The memories contain work lists for the processors. In one embodiment, the processors communicate by using the crossbar switch to place tasks on the work lists of other processors.
    Type: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Douglas A. Prins, Aaron K. Olbrich
  • Publication number: 20090172263
    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: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Publication number: 20090172499
    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: Application
    Filed: April 8, 2008
    Publication date: July 2, 2009
    Inventors: Aaron K. Olbrich, Douglas A. Prins
  • Patent number: 6944717
    Abstract: Methods for controlling and storing data in a cache buffer in a storage apparatus having a nonvolatile memory medium are disclosed. Memory cells are logically divided into a plurality of pages. An open status is registered in a counter for each page that has at least some (and usually all) memory cells available to store new data. A full status is registered in the counter for each page that does not have memory cells that are available to store new data. New data is stored in pages having the open status in the counter. The pages can be weighted according to the read command rate and prioritized for reading and writing purposes.
    Type: Grant
    Filed: July 11, 2002
    Date of Patent: September 13, 2005
    Assignee: Fujitsu Limited
    Inventors: Koji Yoneyama, Yuichi Hirao, Shigeru Hatakeyama, Aaron Olbrich, Douglas Prins