Patents Assigned to Fusion-IO, Inc.
  • Publication number: 20130275391
    Abstract: Apparatuses, systems, and methods are disclosed for data expiry. A method includes examining metadata associated with data in a non-volatile recording medium. A method includes expiring data from a non-volatile recording medium in response to metadata indicating that an expiration period for the data has been satisfied.
    Type: Application
    Filed: January 23, 2013
    Publication date: October 17, 2013
    Applicant: FUSION-IO, INC.
    Inventors: Ashish Batwara, Swaminathan Sundararaman, James Peterson, Nisha Talagala
  • Patent number: 8533569
    Abstract: An apparatus, system, and method are disclosed for managing data in a solid-state storage device. A solid-state storage and solid-state controller are included. The solid-state storage controller includes a write data pipeline and a read data pipeline The write data pipeline includes a packetizer and an ECC generator. The packetizer receives a data segment and creates one or more data packets sized for the solid-state storage. The ECC generator generates one or more error-correcting codes (“ECC”) for the data packets received from the packetizer. The read data pipeline includes an ECC correction module, a depacketizer, and an alignment module. The ECC correction module reads a data packet from solid-state storage, determines if a data error exists using corresponding ECC and corrects errors. The depacketizer checks and removes one or more packet headers. The alignment module removes unwanted data, and re-formats the data as data segments of an object.
    Type: Grant
    Filed: August 30, 2012
    Date of Patent: September 10, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Patent number: 8533406
    Abstract: An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
    Type: Grant
    Filed: September 7, 2012
    Date of Patent: September 10, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 8527693
    Abstract: An auto-commit memory is capable of implementing a pre-configured, triggered commit action in response to a failure condition, such as a loss of power, invalid shutdown, fault, or the like. A computing device may access the auto-commit memory using memory access semantics (using a memory mapping mechanism or the like), bypassing system calls typically required in virtual memory operations. Since the auto-commit memory is pre-configured to commit data stored thereon in the event of a failure, users of the auto-commit memory may view these memory semantic operations as being instantly committed. Operations to commit the data are taken out of the write-commit path.
    Type: Grant
    Filed: December 13, 2011
    Date of Patent: September 3, 2013
    Assignee: Fusion IO, Inc.
    Inventors: David Flynn, David Nellans, John Strasser, James G. Peterson, Robert Wipfel
  • Patent number: 8527841
    Abstract: A controller is used for an electronic memory device which has multi-level cell (MLC) memory elements. The individual MLC memory elements are capable of storing at least two bits. The controller includes a physical interface to couple the controller to the electronic memory device. The controller also includes a processing unit coupled to the physical interface. The processing unit operates the electronic memory device using a restricted number of programming states for a single data bit. The restricted number of programming states includes first and second states used to represent a most significant bit (MSB) of the at least two bits of data of the designated programming states.
    Type: Grant
    Filed: September 11, 2012
    Date of Patent: September 3, 2013
    Assignee: Fusion-Io, Inc.
    Inventors: Robert Wood, Jea Woong Hyun
  • Publication number: 20130227201
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed for providing access to auto-commit memory. An auto-commit memory module is configured to cause an auto-commit memory to commit stored data to a non-volatile memory medium in response to a failure condition. A mapping module is configured to determine whether to associate a range of data with the auto-commit memory. A bypass module is configured to service a request for the range of data directly from the auto-commit memory in response to the auto-commit mapping module determining to associate the range of data with the auto-commit memory.
    Type: Application
    Filed: March 15, 2013
    Publication date: August 29, 2013
    Applicant: FUSION-IO, INC.
    Inventor: Fusion-io, Inc.
  • Publication number: 20130227236
    Abstract: Resources of an address space are managed in dynamically sized ranges, extents, sets, and/or blocks. The address space may be divided into regions, each corresponding to a different, respective allocation granularity. Allocating a block within a first region of the address space may comprise allocating a particular number of logical addresses (e.g., a particular range, set, and/or block of addresses), and allocating a block within a different region may comprise allocating a different number of logical addresses. The regions may be configured to reduce the metadata overhead needed to identify free address blocks (and/or maintain address block allocations), while facilitating efficient use of the address space for differently sized data structures.
    Type: Application
    Filed: April 17, 2013
    Publication date: August 29, 2013
    Applicant: Fusion-io, Inc.
    Inventor: Fusion-io, Inc.
  • Patent number: 8521915
    Abstract: An Input/Output (IO) Virtualization (IOV) system provides for sharing of computer peripheral devices between multiple host computers by presenting a single device multiple times to numerous host systems. The IOV system, in coupling or connecting multiple host computers and multiple IO devices, provides IO virtualization and host-to-host communication services to the host computers. The system comprises device interfaces coupled to IO devices, and host interfaces coupled to each of a number of host computers. The IO devices are initialized in a first domain. Each host interface exposes functions of the independent IO devices to the host computer to which it is coupled. Each host computer accesses functions from a host domain that is an independent domain specific to the host computer performing the access. The first domain is different from the host domain.
    Type: Grant
    Filed: May 31, 2010
    Date of Patent: August 27, 2013
    Assignee: Fusion-io, Inc.
    Inventors: Karagada R. Kishore, Kiron Malwankar, Peter E. Kirkpatrick
  • Patent number: 8516343
    Abstract: Apparatuses, systems, and methods are disclosed for retiring storage regions. A determination module (a) determines that data stored in an Error Correcting Code (“ECC”) chunk contains ECC correctable errors, and (b) determines a bit error count for the ECC chunk. The ECC chunk is read from non-volatile solid-state storage media. A threshold module determines if the bit error count satisfies an ECC chunk error threshold. A storage region error module determines if a storage region that contains at least a portion of the ECC chunk satisfies region retirement criteria. The storage region may include a first portion on a first solid-state storage die and a second portion on a second solid-state storage die. A retirement module retires the storage region, including the first portion and the second portion in parallel, in response to the storage region containing at least a portion of the ECC chunk and satisfying the region retirement criteria.
    Type: Grant
    Filed: November 10, 2009
    Date of Patent: August 20, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Edward Shober
  • Publication number: 20130212321
    Abstract: Apparatuses, systems, methods, and computer program products are disclosed. A method includes receiving a request to copy data from a first location to a second location. The data may be associated with an identifier known to a client that initiated the request. One of the locations may include an auto-commit buffer of a non-volatile device. An auto-commit buffer may be configured to commit stored data from the auto-commit buffer to a non-volatile medium of a non-volatile device in response to a restart event. A method includes copying the data from the first location to the second location. A method includes preserving the identifier known to the client and an association between the identifier and a location of the data at the second location such that client can retrieve the data based on the identifier known to the client.
    Type: Application
    Filed: March 15, 2013
    Publication date: August 15, 2013
    Applicant: FUSION-IO, INC.
    Inventor: Fusion-io, Inc.
  • Patent number: 8503468
    Abstract: Embodiments provide load balancing in a virtual computing environment comprising a plurality of PCI-Express switches (the PCIe switching cloud) coupled to a plurality of network interface devices (NICs). An NIC cluster is added between the PCIe switching cloud and the NICs. The NIC cluster is configured to hide NICs from system images and allow the system images to access functions across multiple NICs. The NIC cluster of an embodiment dynamically load balances network resources by performing a hashing function on a header field of received packets. The NIC cluster of an embodiment performs load balancing and state management in association with driver software, which is embedded in the system image. The driver software adds a tag for flow identification to downstream data packets. The NIC cluster distributes data packets based on information in the tag.
    Type: Grant
    Filed: November 5, 2008
    Date of Patent: August 6, 2013
    Assignee: Fusion-io, Inc.
    Inventors: Bora Akyol, Daniel Talayco, Ali Ekici
  • Publication number: 20130198459
    Abstract: A de-duplication is configured to cache data for access by a plurality of different storage clients, such as virtual machines. A virtual machine may comprise a virtual machine de-duplication module configured to identify data for admission into the de-duplication cache. Data admitted into the de-duplication cache may be accessible by two or more storage clients. Metadata pertaining to the contents of the de-duplication cache may be persisted and/or transferred with respective storage clients such that the storage clients may access the contents of the de-duplication cache after rebooting, being power cycled, and/or being transferred between hosts.
    Type: Application
    Filed: January 25, 2013
    Publication date: August 1, 2013
    Applicant: Fusion-io, Inc.
    Inventor: Fusion-io, Inc.
  • Publication number: 20130191601
    Abstract: An apparatus, system, and method are disclosed for managing a cache. A cache interface module provides access to a plurality of virtual storage units of a solid-state storage device over a cache interface. At least one of the virtual storage units comprises a cache unit. A cache command module exchanges cache management information for the at least one cache unit with one or more cache clients over the cache interface. A cache management module manages the at least one cache unit based on the cache management information exchanged with the one or more cache clients.
    Type: Application
    Filed: January 24, 2012
    Publication date: July 25, 2013
    Applicant: FUSION-IO, INC.
    Inventors: Jim Peterson, Nisha Talagala, Robert Wipfel, David Atkisson, Jonathan Ludwig, Ann Martin
  • Patent number: 8495460
    Abstract: An apparatus, system, and method are disclosed for reconfiguring an array of solid-state storage elements. The method includes determining that one or more storage elements are unavailable to store data. The storage elements are configured in an array of N storage elements that each store a portion of a first ECC chunk and P storage elements that store first parity data corresponding to the first ECC chunk. The method includes generating a second ECC chunk comprising at least a portion of the data of the first ECC chunk. The method includes storing the second ECC chunk and associated second parity data across (N+P)?Z storage elements where 1?Z?P.
    Type: Grant
    Filed: October 4, 2012
    Date of Patent: July 23, 2013
    Assignee: Fusion-IO, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
  • Patent number: 8495292
    Abstract: An apparatus and system are disclosed for an in-server storage area network (“SAN”). A first storage controller is included within a first server. The first storage controller controls at least one storage device. The first server includes a network interface shared by the first server and the first storage controller. A storage communication module is included that facilitates communication between the first storage controller and at least one device external to the first server, where the communication between the first storage controller and the external device is independent from the first server. An in-server SAN module is included that services a storage request using at least one of a network protocol and a bus protocol. The in-server SAN module services the storage request independent from the first server, the service request received from a client.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: July 23, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, David Atkisson, Bert Lagerstedt, John Strasser, Jonathan Thatcher, Michael Zappe
  • Publication number: 20130185488
    Abstract: A cache module leverages storage metadata to cache data of a backing store on a non-volatile storage device. The cache module maintains access metadata pertaining to access characteristics of logical identifiers in the logical address space, including access characteristics of un-cached logical identifiers (e.g., logical identifiers associated with data that is not stored on the non-volatile storage device). The access metadata may be separate and/or distinct from the storage metadata. The cache module determines whether to admit data into the cache and/or evict data from the cache using the access metadata. A storage module may provide eviction candidates to the cache module. The cache module may select candidates for eviction. The storage module may leverage the eviction candidates to improve the performance of storage recovery and/or grooming operations.
    Type: Application
    Filed: February 22, 2013
    Publication date: July 18, 2013
    Applicant: Fusion-io, Inc.
    Inventors: Nisha Talagala, Swaminathan Sundararaman
  • Publication number: 20130185508
    Abstract: A cache layer leverages a logical address space and storage metadata of a storage layer (e.g., virtual 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: Application
    Filed: January 12, 2012
    Publication date: July 18, 2013
    Applicant: FUSION-IO, INC.
    Inventors: Nisha Talagala, Swaminathan Sundararaman
  • Publication number: 20130185475
    Abstract: A cache module leverages a logical address space and storage metadata of a storage module (e.g., virtual storage module) to cache data of a backing store. The cache module maintains access metadata to track access characteristics of logical identifiers in the logical address space, including accesses pertaining to data that is not currently in the cache. The access metadata may be separate from the storage metadata maintained by the storage module. The cache module may calculate a performance metric of the cache based on profiling metadata, which may include portions of the access metadata. The cache module may determine predictive performance metrics of different cache configurations. An optimal cache configuration may be identified based on the predictive performance metrics.
    Type: Application
    Filed: February 22, 2013
    Publication date: July 18, 2013
    Applicant: Fusion-io, Inc.
    Inventors: Nisha Talagala, Swaminathan Sundararaman
  • Publication number: 20130185532
    Abstract: A storage controller is configured to append data to a sequential log. The data may be appended sequentially within erase regions of the non-volatile storage medium. An order of the sequential log may be defined by, inter alia, the order in which the erase regions are filled and/or the sequential order of physical storage locations and/or addresses within the erase regions. The erase regions may comprise sequence information which may be applied in response to recovering the erase regions, appending data to the erase regions, or the like. Data appended to the sequential log may be associated with source parameters, which may include a virtual identifier of the data. The physical storage location of the data on the non-volatile storage medium may be independent of the source parameters. The sequential log may, therefore, comprise a set of mappings between virtual identifiers and physical storage locations.
    Type: Application
    Filed: December 4, 2012
    Publication date: July 18, 2013
    Applicant: Fusion-io, Inc.
    Inventor: Fusion-io, Inc.
  • Patent number: 8489817
    Abstract: An apparatus, system, and method are disclosed for caching data. A storage request module detects an input/output (“I/O”) request for a storage device cached by solid-state storage media of a cache. A direct mapping module references a single mapping structure to determine that the cache comprises data of the I/O request. The single mapping structure maps each logical block address of the storage device directly to a logical block address of the cache. The single mapping structure maintains a fully associative relationship between logical block addresses of the storage device and physical storage addresses on the solid-state storage media. A cache fulfillment module satisfies the I/O request using the cache in response to the direct mapping module determining that the cache comprises at least one data block of the I/O request.
    Type: Grant
    Filed: August 12, 2011
    Date of Patent: July 16, 2013
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, David Atkisson, Joshua Aune