Patents by Inventor Jeremy Fillingim

Jeremy Fillingim 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: 20120221924
    Abstract: An apparatus, system, and method are disclosed for detecting and replacing failed data storage. A read module reads data from an array of memory devices. The array includes two or more memory devices and one or more extra memory devices storing parity information from the memory devices. An ECC module determines, using an error correcting code (“ECC”), if one or more errors exist in tested data and if the errors are correctable using the ECC. The tested data includes data read by the read module. An isolation module selects a memory device in response to the ECC module determining that errors exists in the data read by the read module and that the errors are uncorrectable using the ECC. The isolation module also replaces data read from the selected memory device with replacement data and available data wherein the tested data includes the available data combined with the replacement data.
    Type: Application
    Filed: May 8, 2012
    Publication date: August 30, 2012
    Applicant: FUSION-IO, INC.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20120215961
    Abstract: An apparatus, system, and method are disclosed for improving performance in a non-volatile solid-state storage device. Non-volatile solid-state storage media includes a plurality of storage cells. The plurality of storage cells is configured such that storage cells in an empty state store initial binary values that satisfy a bias. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Bits of the source data have a source bias that is different from the bias of the plurality of storage cells. A bit biasing module biases the bits of the source data toward the bias of the plurality of storage cells. A write module writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.
    Type: Application
    Filed: May 1, 2012
    Publication date: August 23, 2012
    Applicant: FUSION-IO, INC.
    Inventors: John Strasser, Jonathan Thatcher, Jeremy Fillingim, David Flynn, Lance Smith, Robert Wood, James Peterson
  • Patent number: 8195978
    Abstract: An apparatus, system, and method are disclosed for detecting and replacing failed data storage. A read module reads data from an array of memory devices. The array includes two or more memory devices and one or more extra memory devices storing parity information from the memory devices. An ECC module determines, using an error correcting code (“ECC”), if one or more errors exist in tested data and if the errors are correctable using the ECC. The tested data includes data read by the read module. An isolation module selects a memory device in response to the ECC module determining that errors exists in the data read by the read module and that the errors are uncorrectable using the ECC. The isolation module also replaces data read from the selected memory device with replacement data and available data wherein the tested data includes the available data combined with the replacement data.
    Type: Grant
    Filed: May 18, 2009
    Date of Patent: June 5, 2012
    Assignee: Fusion-IO. Inc.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: 8189407
    Abstract: An apparatus, system, and method are disclosed for improving performance in a non-volatile solid-state storage device. Non-volatile solid-state storage media includes a plurality of storage cells. The plurality of storage cells is configured such that storage cells in an empty state store initial binary values that satisfy a bias. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Bits of the source data have a source bias that is different from the bias of the plurality of storage cells. A bit biasing module biases the bits of the source data toward the bias of the plurality of storage cells. A write module writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.
    Type: Grant
    Filed: December 29, 2010
    Date of Patent: May 29, 2012
    Assignee: Fusion-io, Inc.
    Inventors: John Strasser, Jonathan Thatcher, Jeremy Fillingim, David Flynn, Lance Smith, Robert Wood, James Peterson
  • Publication number: 20120131413
    Abstract: An apparatus, system, and method are disclosed to increase data integrity in a redundant storage system. The receive module receives a read request to read data from an ECC chunk spanning N storage elements of an array of N+P storage elements. The N storage elements each store a portion of the ECC chunk and the P storage elements store parity data. The data read module reads data from each of X number of storage elements of the N+P storage elements where (N+P)>X?N. The ECC correction module corrects the read data of the ECC chunk using Error Correcting Code (“ECC”) in response to the ECC chunk comprising a number of bit errors below a correctable bit error threshold. The substitution module may correct the read data with substitute data from a substitute storage element.
    Type: Application
    Filed: May 18, 2010
    Publication date: May 24, 2012
    Applicant: FUSION-IO, INC.
    Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20120066439
    Abstract: An apparatus, system, and method are disclosed for managing lifetime for a data storage device. A target module determines a write bandwidth target for a data storage device. An audit module monitors write bandwidth of the data storage device relative to the write bandwidth target. A throttle module adjusts execution of one or more write operations on the data storage device in response to the write bandwidth of the data storage device failing to satisfy the write bandwidth target.
    Type: Application
    Filed: October 13, 2011
    Publication date: March 15, 2012
    Applicant: FUSION-IO, INC.
    Inventor: Jeremy Fillingim
  • Publication number: 20110314354
    Abstract: An apparatus, system, and method are disclosed for providing error correction for a data storage device. A determination module determines an error-correcting code (“ECC”) characteristic of the data storage device. An ECC module validates requested data read from the data storage device using a hardware ECC decoder. In response to the requested data satisfying a correction threshold, a software ECC decoder module validates the data using a software ECC decoder. The software ECC decoder is configured according to the ECC characteristic of the data storage device.
    Type: Application
    Filed: June 15, 2011
    Publication date: December 22, 2011
    Applicant: Fusion-io, Inc.
    Inventor: Jeremy Fillingim
  • Publication number: 20110307758
    Abstract: An apparatus, system, and method are disclosed for providing error correction for a data storage device. A determination module determines a set of error-correcting code (“ECC”) characteristics for a data storage device. The set of ECC characteristics includes at least one attribute selected from a plurality of supported attributes. A decoder configuration module configures an ECC decoder to operate in compliance with the set of ECC characteristics. An ECC module validates requested data read from the data storage device using the ECC decoder.
    Type: Application
    Filed: June 15, 2011
    Publication date: December 15, 2011
    Applicant: FUSION-IO, INC.
    Inventor: Jeremy Fillingim
  • Publication number: 20110182119
    Abstract: An apparatus, system, and method are disclosed for determining a read voltage threshold for solid-state storage media. A data set read module reads a data set from storage cells of solid-state storage media. The data set is originally stored in the storage cells with a known bias. A deviation module determines that a read bias for the data set deviates from the known bias. A direction module determines a direction of deviation for the data set. The direction of deviation is based on a difference between the read bias of the data set and the known bias. An adjustment module adjusts a read voltage threshold for the storage cells of the solid-state storage media based on the direction of deviation.
    Type: Application
    Filed: January 27, 2011
    Publication date: July 28, 2011
    Applicant: FUSION-IO, INC.
    Inventors: John Strasser, David Flynn, Jeremy Fillingim, Robert Wood
  • Publication number: 20110157992
    Abstract: An apparatus, system, and method are disclosed for improving performance in a non-volatile solid-state storage device. Non-volatile solid-state storage media includes a plurality of storage cells. The plurality of storage cells is configured such that storage cells in an empty state store initial binary values that satisfy a bias. An input module receives source data for storage in the plurality of storage cells of the non-volatile solid-state storage media. Bits of the source data have a source bias that is different from the bias of the plurality of storage cells. A bit biasing module biases the bits of the source data toward the bias of the plurality of storage cells. A write module writes the biased source data to the plurality of storage cells of the non-volatile solid-state storage media.
    Type: Application
    Filed: December 29, 2010
    Publication date: June 30, 2011
    Applicant: FUSION-IO, INC.
    Inventors: John Strasser, Jonathan Thatcher, Jeremy Fillingim, David Flynn, Lance Smith, Robert Wood, James Peterson
  • Publication number: 20110058440
    Abstract: An apparatus, system, and method are disclosed for power loss management in a nonvolatile data storage device. A monitor module initiates a power loss mode in the nonvolatile data storage device in response to a primary power source failing to supply electric power above a predefined threshold to the nonvolatile data storage device. A secondary power source supplies electric power to the nonvolatile data storage device for at least a power hold-up time during the power loss mode. A power loss module adjusts execution of in-process operations on the nonvolatile data storage device during the power loss mode so that essential in-process operations execute within the power hold-up time.
    Type: Application
    Filed: September 9, 2010
    Publication date: March 10, 2011
    Applicant: FUSION-IO, INC.
    Inventors: Lance L. Smith, Jeremy Fillingim, David Flynn, Bill Inskeep, John Strasser, Jonathan Thatcher
  • Publication number: 20110060927
    Abstract: An apparatus, system, and method are disclosed for managing power consumption in a data storage device. An audit module monitors a power consumption rate of the data storage device relative to a power consumption target. A throttle module adjusts execution of one or more operations on the data storage device in response to the power consumption rate of the data storage device failing to satisfy the power consumption target. A verification module verifies whether the power consumption rate of the data storage device satisfies the power consumption target in response to adjusting the execution of the one or more operations.
    Type: Application
    Filed: September 9, 2010
    Publication date: March 10, 2011
    Applicant: FUSION-IO, INC.
    Inventors: Jeremy Fillingim, John Strasser, Jonathan Thatcher
  • Publication number: 20100293440
    Abstract: An apparatus, system, and method are disclosed to increase data integrity in a redundant storage system. The receive module receives a read request to read data from a logical page spanning an array of N+P number of storage elements. The array of storage elements includes N number of the storage elements each storing a portion of an ECC chunk and P number of the storage elements storing parity data. The data read module reads data from at least a portion of a physical page on each of X number of storage elements of the N+P number of storage elements where X equals N. The regeneration module regenerates missing data. The ECC module determines if the read data and any regenerated missing data includes an error. The read data combined with any regenerated missing data includes the ECC chunk.
    Type: Application
    Filed: May 18, 2009
    Publication date: November 18, 2010
    Inventors: Jonathan Thatcher, David Flynn, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20100293439
    Abstract: An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements protected using parity data. The storage element error module determines that one or more storage elements are unavailable to store data (“unavailable storage elements”). The storage element resides in an array with N number of storage elements storing a first ECC chunk and P number of storage elements storing first parity data. The reconfigure data read module reads data from storage elements other than the unavailable storage elements. The data regeneration module uses the first parity data to regenerate missing data from the first ECC chunk. The data reconfiguration module creates a second ECC chunk. The new configuration storage module stores a portion of the second ECC chunk and associated second parity data on (N+P)?Z number of storage elements, wherein 1?Z?P.
    Type: Application
    Filed: May 18, 2009
    Publication date: November 18, 2010
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Publication number: 20090287956
    Abstract: An apparatus, system, and method are disclosed for detecting and replacing failed data storage. A read module reads data from an array of memory devices. The array includes two or more memory devices and one or more extra memory devices storing parity information from the memory devices. An ECC module determines, using an error correcting code (“ECC”), if one or more errors exist in tested data and if the errors are correctable using the ECC. The tested data includes data read by the read module. An isolation module selects a memory device in response to the ECC module determining that errors exists in the data read by the read module and that the errors are uncorrectable using the ECC. The isolation module also replaces data read from the selected memory device with replacement data and available data wherein the tested data includes the available data combined with the replacement data.
    Type: Application
    Filed: May 18, 2009
    Publication date: November 19, 2009
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: 7240831
    Abstract: An exemplary method involves reading a first identification tag. The first identification tag includes an instruction to form a logical connection with a computing device. Address information associated with the computing device is used to form the logical connection with the computing device in accordance with the instruction. Data is obtained. The data is transmitted to the computing device via the logical connection.
    Type: Grant
    Filed: January 21, 2004
    Date of Patent: July 10, 2007
    Assignee: The Code Corporation
    Inventors: Paul Hepworth, George Powell, Jeremy Fillingim
  • Publication number: 20050156022
    Abstract: Systems and methods for using machine-readable identification tags to provide data to a computing device are disclosed. An exemplary method involves reading a first identification tag. The first identification tag includes an instruction to form a logical connection with a computing device. Address information associated with the computing device is used to form the logical connection with the computing device in accordance with the instruction. Data is obtained. The data is transmitted to the computing device via the logical connection.
    Type: Application
    Filed: January 21, 2004
    Publication date: July 21, 2005
    Inventors: Paul Hepworth, George Powell, Jeremy Fillingim