Patents by Inventor Aaron K. Olbrich

Aaron K. Olbrich 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).

  • 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: 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: 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: 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: 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: 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
  • 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
  • Patent number: 5664143
    Abstract: A method and apparatus for sorting a rotational position queue without sensing the rotational position of a recording media in a disk drive. Commands are accepted into a rotational position queue. A first command is selected and assigned the physical address of the last requested block of the first command. Each of the remaining commands are assigned the physical addresses of their first requested block. The difference between the physical address associated with the first command and each of the other commands is computed. The address differences are converted into a corresponding time difference. A seek time is subtracted from each time difference and, for the unselected commands having a time difference less than zero, a modified time difference is calculated by adding a full revolution latency time. The time differences are sorted according to their magnitude to identify the command associated with the smallest time difference.
    Type: Grant
    Filed: November 23, 1994
    Date of Patent: September 2, 1997
    Assignee: International Business Machines Corporation
    Inventor: Aaron K. Olbrich