Patents Assigned to Fusion-IO, Inc.
-
Patent number: 8296337Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the requesting device. The apparatus, system, and method include a token directive generation module and a token directive transmission module. The token directive generation module generates a storage request with a token directive. The token directive includes a request to store on the storage device a data segment token. The token directive substitutes for a series of repeated, identical characters or a series of repeated, identical character strings to be stored as a data segment. The token directive includes at least a data segment identifier and a data segment length. The data segment token and the token directive are substantially free from data of the data segment. The token directive transmission module transmits the token directive to the storage device.Type: GrantFiled: December 6, 2007Date of Patent: October 23, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8289801Abstract: 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: GrantFiled: September 9, 2010Date of Patent: October 16, 2012Assignee: Fusion-IO, Inc.Inventors: Lance L. Smith, Jeremy Fillingim, David Flynn, Bill Inskeep, John Strasser, Jonathan Thatcher
-
Patent number: 8285927Abstract: An apparatus, system, and method are disclosed for solid-state storage as cache for high-capacity, non-volatile storage. The apparatus, system, and method are provided with a plurality of modules including a cache front-end module and a cache back-end module. The cache front-end module manages data transfers associated with a storage request. The data transfers between a requesting device and solid-state storage function as cache for one or more HCNV storage devices, and the data transfers may include one or more of data, metadata, and metadata indexes. The solid-state storage may include an array of non-volatile, solid-state data storage elements. The cache back-end module manages data transfers between the solid-state storage and the one or more HCNV storage devices.Type: GrantFiled: August 5, 2011Date of Patent: October 9, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, John Strasser, Jonathan Thatcher, Michael Zappe
-
Publication number: 20120239860Abstract: Data is stored on a non-volatile storage media in a sequential, log-based format. The formatted data defines an ordered sequence of storage operations performed on the non-volatile storage media. A virtual storage layer maintains volatile metadata, which may include a forward index associating logical identifiers with respective physical storage units on the non-volatile storage media. The volatile metadata may be reconstructed from the ordered sequence of storage operations. Persistent notes may be used to maintain consistency between the volatile metadata and the contents of the non-volatile storage media. Persistent notes may identify data that does not need to be retained on the non-volatile storage media and/or is no longer valid.Type: ApplicationFiled: December 19, 2011Publication date: September 20, 2012Applicant: FUSION-IO, INC.Inventors: David Atkisson, David Flynn, Michael Zappe, Stephan Uphoff, David Nellans
-
Patent number: 8270830Abstract: Leaf switches and spine switches in a Clos network are interconnected by optical fibers. The network enables large numbers of servers or other apparatus to communicate with each other with minimal delay and minimal power consumption.Type: GrantFiled: April 1, 2009Date of Patent: September 18, 2012Assignee: Fusion-IO, Inc.Inventors: Peter E Kirkpatrick, Jean-Marc Verdiell, Marc Epitaux
-
Publication number: 20120233396Abstract: An apparatus, system, and method are disclosed for efficiently mapping virtual and physical addresses. A forward mapping module uses a forward map to identify physical addresses of data of a data segment from a virtual address. The data segment is identified in a storage request. The virtual addresses include discrete addresses within a virtual address space where the virtual addresses sparsely populate the virtual address space. A reverse mapping module uses a reverse map to determine a virtual address of a data segment from a physical address. The reverse map maps the data storage device into erase regions such that a portion of the reverse map spans an erase region of the data storage device erased together during a storage space recovery operation. A storage space recovery module uses the reverse map to identify valid data in an erase region prior to an operation to recover the erase region.Type: ApplicationFiled: May 25, 2012Publication date: September 13, 2012Applicant: Fusion-io, Inc.Inventors: David Flynn, Michael Zappe, John Strasser, David Atkisson, Jonathan Thatcher
-
Patent number: 8261005Abstract: 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: GrantFiled: December 6, 2007Date of Patent: September 4, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
-
Patent number: 8261158Abstract: An apparatus, system, and method are disclosed for storing information in a storage device that includes multi-level memory cells. The method involves storing data that is written to the storage device in the LSBs of the multi-level memory cells, and storing audit data in the MSBs of the multi-level memory cells. The audit data can be read separately from the data and used to determine whether or not there has been any unintended drift between states in the multi-level cells. The audit data may be used to correct data when the errors in the data are too numerous to be corrected using error correction code (ECC). The audit data may also be used to monitor the general health of the storage device. The monitoring process may run as a background process on the storage device. The storage device may transition the multi-level memory cells to operate as single-level memory cells.Type: GrantFiled: March 15, 2010Date of Patent: September 4, 2012Assignee: Fusion-io, Inc.Inventors: Jonathan Thatcher, David Flynn, Ethan Barnes, John Strasser, Robert Wood, Michael Zappe
-
Publication number: 20120221924Abstract: 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: ApplicationFiled: May 8, 2012Publication date: August 30, 2012Applicant: FUSION-IO, INC.Inventors: David Flynn, Jonathan Thatcher, Joshua Aune, Jeremy Fillingim, Bill Inskeep, John Strasser, Kevin Vigor
-
Publication number: 20120221774Abstract: An apparatus, system, and method are disclosed for managing contents of a cache. A storage request module monitors storage requests received by a cache. The storage requests include read requests and write requests. A read pool module adjusts a size of a read pool of the cache to maximize a read hit rate of the storage requests. A dirty write pool module adjusts a size of a dirty write pool of the cache to maximize a dirty write hit rate of the storage requests.Type: ApplicationFiled: February 27, 2012Publication date: August 30, 2012Applicant: FUSION-IO, INC.Inventors: David Atkisson, David Flynn
-
Publication number: 20120215961Abstract: 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: ApplicationFiled: May 1, 2012Publication date: August 23, 2012Applicant: FUSION-IO, INC.Inventors: John Strasser, Jonathan Thatcher, Jeremy Fillingim, David Flynn, Lance Smith, Robert Wood, James Peterson
-
Publication number: 20120210095Abstract: An apparatus, system, and method for application direct virtual memory management. The method includes detecting a system memory access to a virtual memory address within a monitored page of data not loaded in main memory of a computing system. The method includes determining a first swap address for a loaded page of data in the main memory. The first swap address is defined in a sparse virtual address space exposed by a persistent storage device. The first swap address is associated in an index with a first deterministic storage location. The index is managed by the persistent storage device. The method includes storing the loaded page on a persistent storage device at the first deterministic storage location. The method includes moving the monitored page from a second deterministic storage location to the main memory. The second deterministic storage location is associated with a second swap address in the index.Type: ApplicationFiled: February 13, 2012Publication date: August 16, 2012Applicant: FUSION-IO, INC.Inventors: David Nellans, Robert Wipfel
-
Publication number: 20120210021Abstract: An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.Type: ApplicationFiled: April 25, 2012Publication date: August 16, 2012Applicant: FUSION-IO, INC.Inventors: David Flynn, Michael Zappe, Jonathan Thatcher
-
Publication number: 20120210066Abstract: A multi-level cache comprises a plurality of cache levels, each configured to cache I/O request data pertaining to I/O requests of a different respective type and/or granularity. The multi-level cache may comprise a file-level cache that is configured to cache I/O request data at a file-level of granularity. A file-level cache policy may comprise file selection criteria to distinguish cacheable files from non-cacheable files. The file-level cache may monitor I/O requests within a storage stage, and may service I/O requests from a cache device.Type: ApplicationFiled: November 2, 2011Publication date: August 16, 2012Applicant: FUSION-IO, INC.Inventors: Vikram Joshi, Yang Luan, Michael F. Brown, Hrishikesh A. Vidwans
-
Publication number: 20120210041Abstract: 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: ApplicationFiled: August 12, 2011Publication date: August 16, 2012Applicant: FUSION-IO, INC.Inventors: David Flynn, David Atkisson, Joshua Aune
-
Publication number: 20120210068Abstract: A multi-level cache comprises a plurality of cache levels, each configured to cache I/O request data pertaining to I/O requests of a different respective type and/or granularity. A cache device manager may allocate cache storage space to each of the cache levels. Each cache level maintains respective cache metadata that associates I/O request data with respective cache address. The cache levels monitor I/O requests within a storage stack, apply selection criteria to identify cacheable I/O requests, and service cacheable I/O requests using the cache storage device.Type: ApplicationFiled: November 2, 2011Publication date: August 16, 2012Applicant: FUSION-IO, INC.Inventors: Vikram Joshi, Yang Luan, Michael F. Brown, Hrishikesh A. Vidwans
-
Publication number: 20120203951Abstract: An apparatus, system, and method are disclosed to improve the utility of solid-state storage media by determining one or more configuration parameters for the solid-state storage media. A media characteristic module references one or more storage media characteristics for a set of storage cells of solid-state storage media. A configuration parameter module determines a configuration parameter for the set of storage cells based on the one or more storage media characteristics. A storage cell configuration module configures the set of storage cells to use the determined configuration parameter.Type: ApplicationFiled: July 22, 2011Publication date: August 9, 2012Applicant: FUSION-IO, INC.Inventors: Robert Wood, Jea Hyun, Hairong Sun
-
Publication number: 20120203980Abstract: An apparatus, system, and method are disclosed for validating that correct data is read from a storage device. A read request receiver module receives a read storage request to read a data segment of a file or object stored on a data storage device. The storage request includes one or more source parameters for the data segment. The source parameters include one or more virtual addresses that identify the data segment. A hash generation module generates one or more hash values from the virtual addresses. A read data module reads the requested data segment and returns one or more data packets and corresponding stored hash values stored with the data packets. The stored hash values were generated from a data segment written to the data storage device that contains data of the data packets. A hash check module verifies that the generated hash values match the respective stored hash values.Type: ApplicationFiled: April 9, 2012Publication date: August 9, 2012Applicant: FUSION-IO, INC.Inventors: David Flynn, Jonathan Thatcher, John Strasser
-
Patent number: 8239714Abstract: An apparatus, system, and method are disclosed for bad block remapping. A bad block identifier module identifies one or more data blocks on a solid-state storage element as bad blocks. A log update module writes at least a location of each bad block identified by the bad block identifier module into each of two or more redundant bad block logs. A bad block mapping module accesses at least one bad block log during a start-up operation to create in memory a bad block map. The bad block map includes a mapping between the bad block locations in the bad block log and a corresponding location of a replacement block for each bad block location. Data is stored in each replacement block instead of the corresponding bad block. The bad block mapping module creates the bad block map using one of a replacement block location and a bad block mapping algorithm.Type: GrantFiled: November 15, 2011Date of Patent: August 7, 2012Assignee: Fusion-io, Inc.Inventors: David Flynn, John Strasser, John Thatcher, David Atkisson, Michael Zappe, Joshua Aune, Kevin Vigor
-
Publication number: 20120198175Abstract: An apparatus, system, and method are disclosed for managing eviction of data. A grooming cost module determines a grooming cost for a selected region of a nonvolatile solid-state cache. The grooming cost includes a cost of evicting the selected region of the nonvolatile solid-state cache relative to other regions. A grooming candidate set module adds the selected region to a grooming candidate set in response to the grooming cost satisfying a grooming cost threshold. A low cost module selects a low cost region within the grooming candidate set. A groomer module recovers storage capacity of the low cost region.Type: ApplicationFiled: January 31, 2012Publication date: August 2, 2012Applicant: FUSION-IO, INC.Inventor: David Atkisson