Patents Assigned to Fusion-IO, Inc.
  • Publication number: 20140237147
    Abstract: A storage module may be configured to service I/O requests according to different persistence levels. The persistence level of an I/O request may relate to the storage resource(s) used to service the I/O request, the configuration of the storage resource(s), the storage mode of the resources, and so on. In some embodiments, a persistence level may relate to a cache mode of an I/O request. I/O requests pertaining to temporary or disposable data may be serviced using an ephemeral cache mode. An ephemeral cache mode may comprise storing I/O request data in cache storage without writing the data through (or back) to primary storage. Ephemeral cache data may be transferred between hosts in response to virtual machine migration.
    Type: Application
    Filed: April 25, 2014
    Publication date: August 21, 2014
    Applicant: FUSION-IO, INC.
    Inventors: VIKRAM JOSHI, Yang Luan, Michael F. Brown, David Flynn, Brent Lim Tze Hao, Jerene Zhe Yang, Prashanth Radhakrishnan
  • Patent number: 8804415
    Abstract: A method for adaptive voltage range management in non-volatile memory is described. The method includes establishing an adaptive voltage range for a memory element of an electronic memory device. The memory element includes at least two states. The adaptive voltage range comprises a lower state and an upper state. The method also includes establishing an adjustment process to implement a first adjustment of an abode characteristic of a first state and to implement a second adjustment of an abode characteristic of a second state in the adaptive voltage range in response to a trigger event, wherein the first adjustment of an abode characteristic of the first state is different from the second adjustment of an abode characteristic of the second state.
    Type: Grant
    Filed: June 19, 2012
    Date of Patent: August 12, 2014
    Assignee: Fusion-io, Inc.
    Inventors: Robert B. Wood, Jea Woong Hyun, Hairong Sun, Warner Losh, David Flynn
  • Patent number: 8806111
    Abstract: Methods, storage controllers, and systems for backing data of a non-volatile storage device using a backing store are described. One method includes satisfying storage operations using a non-volatile storage device, determining an age for data stored on the non-volatile storage device, and copying data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store. One storage controller includes an operations module that satisfies storage operations using a non-volatile storage device, an age module that determines an age for data stored on the non-volatile storage device, and a backup module that copies data of the non-volatile storage device having an age that satisfies a data retention time threshold to a dedicated backing store.
    Type: Grant
    Filed: December 20, 2011
    Date of Patent: August 12, 2014
    Assignee: Fusion-io, Inc.
    Inventor: Nathan M. Whitney
  • Publication number: 20140207997
    Abstract: Techniques are disclosed relating to arranging data on storage media. In one embodiment, a computer system is configured to access a storage array that includes a plurality of storage blocks. The computer system executes a first set of processes and a second set of processes, where the first set of processes operates on selected ones of the plurality of storage blocks to increase a likelihood that the selected storage blocks are operated on by the second set of processes. In some embodiments, the second set of processes determines whether to operate on a storage block based on an amount of invalid data within the storage block. In such an embodiment, the first set of processes increases a likelihood that the storage block is operated on by increasing the amount of invalid data within the storage block.
    Type: Application
    Filed: January 21, 2013
    Publication date: July 24, 2014
    Applicant: FUSION-IO, INC.
    Inventors: James Peterson, Ned Plasson
  • Patent number: 8782344
    Abstract: A cache layer leverages a logical address space and storage metadata of a storage layer (e.g., storage layer) to cache data of a backing store. The cache layer maintains access metadata to track data characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not in the cache. The access metadata may be separate and distinct from the storage metadata maintained by the storage layer. The cache layer determines whether to admit data into the cache using the access metadata. Data may be admitted into the cache when the data satisfies cache admission criteria, which may include an access threshold and/or a sequentiality metric. Time-ordered history of the access metadata is used to identify important/useful blocks in the logical address space of the backing store that would be beneficial to cache.
    Type: Grant
    Filed: January 12, 2012
    Date of Patent: July 15, 2014
    Assignee: Fusion-io, Inc.
    Inventors: Nisha Talagala, Swaminathan Sundararaman, Amar Mudrankit
  • Publication number: 20140195564
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for a persistent data structure. A method includes associating a logical identifier with a data structure. A method includes writing data of a data structure to a first region of a volatile memory module. A volatile memory module may be configured to ensure that data is preserved in response to a trigger. A method includes copying data of a data structure from a volatile memory module to a non-volatile storage medium such that the data of the data structure remains associated with a logical identifier.
    Type: Application
    Filed: March 12, 2014
    Publication date: July 10, 2014
    Applicant: Fusion-io, Inc.
    Inventors: Nisha Talagala, Swaminathan Sundararaman, David Flynn
  • Publication number: 20140195480
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for persistent memory management. Persistent memory management may include providing a persistent data structure stored at least partially in volatile memory configured to ensure persistence of the data structure in a non-volatile memory medium. Persistent memory management may include replicating a persistent data structure in volatile memory buffers of at least two non-volatile storage devices. Persistent memory management may include preserving a snapshot copy of data in association with completion of a barrier operation for the data. Persistent memory management may include determining which interface of a plurality of supported interfaces is to be used to flush data from a processor complex.
    Type: Application
    Filed: March 12, 2014
    Publication date: July 10, 2014
    Applicant: Fusion-io, Inc.
    Inventors: Nisha Talagala, Swaminathan Sundararaman, David Flynn
  • Publication number: 20140189216
    Abstract: An apparatus, system, and method are disclosed for implementing conditional storage operations. Storage clients access and allocate portions of an address space of a non-volatile storage device. A conditional storage request is provided, which causes data to be stored to the non-volatile storage device on the condition that the address space of the device can satisfy the entire request. If only a portion of the request can be satisfied, the conditional storage request may be deferred or fail. An atomic storage request is provided, which may comprise one or more storage operations. The atomic storage request succeeds if all of the one or more storage operations are complete successfully. If one or more of the storage operations fails, the atomic storage request is invalidated, which may comprise deallocating logical identifiers of the request and/or invalidating data on the non-volatile storage device pertaining to the request.
    Type: Application
    Filed: November 22, 2013
    Publication date: July 3, 2014
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, David Nellans, Xiangyong Ouyang
  • Patent number: 8762658
    Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the storage device. The apparatus, system, and method for managing data include a write request receiver module and a data segment token storage module. The write request receiver module receives a storage request from a requesting device. The storage request includes a request to store a data segment in a storage device. The data segment includes a series of repeated, identical characters or a series of repeated, identical character strings. The data segment token storage module stores a data segment token in the storage device. The data segment token includes at least a data segment identifier and a data segment length. The data segment token is substantially free of data from the data segment.
    Type: Grant
    Filed: August 3, 2012
    Date of Patent: June 24, 2014
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 8756375
    Abstract: Apparatuses, systems, and methods are disclosed for caching data. A method includes directly mapping a logical address of a backing store to a logical address of a non-volatile cache. A method includes mapping, in a logical-to-physical mapping structure, the logical address of the non-volatile cache to a physical location in the non-volatile cache. The physical location may store data associated with the logical address of the backing store. A method includes removing the mapping from the logical-to-physical mapping structure in response to evicting the data from the non-volatile cache so that membership in the logical-to-physical mapping structure denotes storage in the non-volatile cache.
    Type: Grant
    Filed: June 29, 2013
    Date of Patent: June 17, 2014
    Assignee: Fusion-io, Inc.
    Inventor: David Flynn
  • Publication number: 20140156965
    Abstract: Techniques are disclosed relating to reclaiming data on recording media. In one embodiment, an apparatus has a solid-state memory array including a plurality of blocks. The solid-state memory array may implement a cache for one or more storage devices. Respective operational effects are determined relating to reclaiming ones of the plurality of blocks. One of the plurality of blocks is selected as a candidate for reclamation based on the determined operational effects, and the selected block is reclaimed. In some embodiments, the determined operational effects for a given block indicate a number of write operations to be performed to reclaim the given block. In some embodiments, operational effects are determined based on criteria relating to assigned quality-of-service levels. In some embodiments, operational effects are determined based on information relating virtual storage units.
    Type: Application
    Filed: February 4, 2013
    Publication date: June 5, 2014
    Applicant: FUSION-IO, INC.
    Inventors: Jingpei Yang, Ned D. Plasson, Nisha Talagala, Dhananjoy Das, Swaminathan Sundararaman
  • Patent number: 8738991
    Abstract: Apparatuses, systems, and methods are disclosed for reconfiguring an array of storage elements. A storage element error module is configured to determine that one or more storage elements in an array of storage elements are in error. An array of storage elements stores a first ECC block and first parity data generated from the first ECC block. A data reconfiguration module is configured to generate a second ECC block comprising at least a portion of data of a first ECC block. A new configuration storage module is configured to store a second ECC block and associated second parity data on fewer storage elements than a number of storage elements in an array.
    Type: Grant
    Filed: May 31, 2013
    Date of Patent: May 27, 2014
    Assignee: Fusion-Io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: 8732349
    Abstract: An Input/Output (IO) Virtualization (IOV) system provides a mechanism for sharing computer peripheral devices or resources between multiple host computers by presenting a single resource multiple times to numerous host systems. The IOV system provides IO virtualization and host-to-host communication services to the host computers. The system comprises device interfaces coupled to the IO devices. Each IO device comprises at least one endpoint function (EPF). Host interfaces are each coupled to one of a number of host computers. Each host interface includes a proxy, and each proxy comprises configuration data.
    Type: Grant
    Filed: May 31, 2010
    Date of Patent: May 20, 2014
    Assignee: Fusion-Io, Inc.
    Inventors: Karagada R. Kishore, Kiron Malwankar, Peter E. Kirkpatrick
  • Patent number: 8725938
    Abstract: An apparatus, system, and method are disclosed for testing physical regions in a solid-state storage device. The method includes defining a physical storage region on solid-state storage media of a solid-state storage device. The physical storage region includes a subset of storage capacity of the solid-state storage media. The method includes implementing the physical storage region definition on a storage controller such that memory operations are bounded to the physical storage region. The method includes testing wear of solid-state storage media associated with the physical storage region using memory operations bounded to the physical storage region.
    Type: Grant
    Filed: September 24, 2012
    Date of Patent: May 13, 2014
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Robert Barry Wood
  • Patent number: 8725934
    Abstract: A method and apparatus for storing data packets in two different logical erase blocks pursuant to an atomic storage request is disclosed. Each data packet stored in response to the atomic storage request comprises persistent metadata indicating that the data packet pertains to an atomic storage request. In addition, a method and apparatus for restart recovery is disclosed. A data packet preceding an append point is identified as satisfying a failed atomic write criteria, indicating that the data packet pertains to a failed atomic storage request. One or more data packets associated with the failed atomic storage request are identified and excluded from an index of a non-volatile storage media.
    Type: Grant
    Filed: December 22, 2011
    Date of Patent: May 13, 2014
    Assignee: Fusion-io, Inc.
    Inventors: Ashish Batwara, James G. Peterson, Nisha Talagala, Michael Zappe
  • Patent number: 8706968
    Abstract: An apparatus, system, and method are disclosed for redundant write caching. The apparatus, system, and method are provided with a plurality of modules including a write request module, a first cache write module, a second cache write module, and a trim module. The write request module detects a write request to store data on a storage device. The first cache write module writes data of the write request to a first cache. The second cache write module writes the data to a second cache. The trim module trims the data from one of the first cache and the second cache in response to an indicator that the storage device stores the data. The data remains available in the other of the first cache and the second cache to service read requests.
    Type: Grant
    Filed: July 30, 2010
    Date of Patent: April 22, 2014
    Assignee: Fusion-io, Inc.
    Inventor: David Flynn
  • Publication number: 20140108891
    Abstract: Apparatuses, systems, and methods are disclosed to manage non-volatile media. A method includes determining a configuration parameter for a set of storage cells of a non-volatile recording medium. A method includes reading data from a set of storage cells using a determined configuration parameter. A method includes adjusting a configuration parameter based on read data.
    Type: Application
    Filed: December 13, 2013
    Publication date: April 17, 2014
    Applicant: Fusion-io, Inc.
    Inventors: John Strasser, David Flynn, Jeremy Fillingim, Robert Wood, Jea Hyun, Hairong Sun
  • Publication number: 20140101375
    Abstract: An apparatus, system, and method are disclosed for allocating non-volatile storage. The storage device may present a logical address, which may exceed a physical storage capacity of the device. The storage device may allocate logical capacity in the logical address space. An allocation request may be allowed when there is sufficient unassigned and/or unallocated logical capacity to satisfy the request. Data may be stored on the non-volatile storage device by requesting physical storage capacity. A physical storage request, such as a storage request or physical storage reservation, when there is sufficient available physical storage capacity to satisfy the request. The device may maintain an index to associate logical identifiers (LIDs) in the logical address space with storage locations on the storage device. This index may be used to make logical capacity allocations and/or to manage physical storage space.
    Type: Application
    Filed: November 5, 2013
    Publication date: April 10, 2014
    Applicant: FUSION-IO, INC.
    Inventors: Jonathan Thatcher, David Flynn
  • Publication number: 20140101376
    Abstract: An apparatus, system, and method are disclosed for implementing conditional storage operations. Storage clients access and allocate portions of an address space of a non-volatile storage device. A conditional storage request is provided, which causes data to be stored to the non-volatile storage device on the condition that the address space of the device can satisfy the entire request. If only a portion of the request can be satisfied, the conditional storage request may be deferred or fail. An atomic storage request is provided, which may comprise one or more storage operations. The atomic storage request succeeds if all of the one or more storage operations are complete successfully. If one or more of the storage operations fails, the atomic storage request is invalidated, which may comprise deallocating logical identifiers of the request and/or invalidating data on the non-volatile storage device pertaining to the request.
    Type: Application
    Filed: December 2, 2013
    Publication date: April 10, 2014
    Applicant: Fusion-io, Inc.
    Inventors: David Flynn, David Nellans, Xiangyong Ouyang
  • Patent number: 8688899
    Abstract: Apparatuses, systems, and methods are presented for a direct interface between a memory controller and a non-volatile memory controller using a command protocol. A method includes receiving a command from a memory controller to a non-volatile memory controller over a wire interface by way of a command protocol. The memory controller is coupled to one or more processors and the non-volatile memory controller, in one embodiment, is coupled to non-volatile memory media. The command protocol includes a control path that enables the memory controller to distinguish among different memory modules. A method includes executing the command within the non-volatile memory controller in response to determining that the non-volatile memory controller is capable of satisfying the command.
    Type: Grant
    Filed: September 28, 2011
    Date of Patent: April 1, 2014
    Assignee: Fusion-io, Inc.
    Inventors: David Nellans, Robert Wipfel