Python Algorithms C Linux Verilog Vhdl C++ Embedded Systems Software Development Programming Device Drivers Debugging Fpga Linux Kernel Pcb Design Firmware Embedded Software Perl Asic Unix Computer Architecture Information Theory Digital Design Xilinx Rtl Design Altera Rtl Coding Programmable Logic Electrical Engineering Simulation Digital Electronics Pcie Mercurial Assembly Matlab Dsp Microcontrollers Hardware Design Schematic Capture Shell Scripting Microprocessors Atmel Embedded C Usb Signal Processing Start Ups Simulations Hardware Architecture
John Strasser - Syracuse UT, US Jonathan Thatcher - Liberty Lake WA, US Jeremy Fillingim - Salt Lake City UT, US David Flynn - Sandy UT, US Lance Smith - San Jose CA, US Robert Wood - Nwot CO, US James Peterson - San Jose CA, US
Assignee:
Fusion-io, Inc. - Salt Lake City UT
International Classification:
G11C 5/14
US Classification:
36518909, 36518911
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.
Apparatus, System, And Method For Detecting And Replacing Failed Data Storage
David Flynn - Sandy UT, US Jonathan Thatcher - Lehi UT, US Joshua Aune - South Jordan UT, US Jeremy Fillingim - Salt Lake City UT, US Bill Inskeep - West Valley City UT, US John Strasser - Syracuse UT, US Kevin Vigor - Salt Lake City UT, US
Assignee:
Fusion-IO. Inc. - Salt Lake City UT
International Classification:
G06F 11/00
US Classification:
714 61
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.
Apparatus, System, And Method To Increase Data Integrity In A Redundant Storage System
Jonathan Thatcher - Lehi UT, US David Flynn - Sandy UT, US Joshua Aune - South Jordan UT, US Jeremy Fillingim - Salt Lake City UT, US Bill Inskeep - West Valley City UT, US John Strasser - Syracuse UT, US Kevin Vigor - Salt Lake City UT, US
Assignee:
Fusion-10, Inc. - Salt Lake City UT
International Classification:
G11C 29/00
US Classification:
714770
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.
Apparatus, System, And Method For Power Reduction Management In A Storage Device
Lance L. Smith - San Jose CA, US Jeremy Fillingim - Salt Lake City UT, US David Flynn - Sandy UT, US Bill Inskeep - West Valley City UT, US John Strasser - Syracuse UT, US Jonathan Thatcher - Liberty Lake UT, US
Assignee:
Fusion-IO, Inc. - Salt Lake City UT
International Classification:
G11C 5/14
US Classification:
365228, 365229
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.
Apparatus, System, And Method For Reconfiguring An Array To Operate With Less Storage Elements
David Flynn - Sandy UT, US Jonathan Thatcher - Lehi UT, US Joshua Aune - South Jordan UT, US Jeremy Fillingim - Salt Lake City UT, US Bill Inskeep - West Valley City UT, US John Strasser - Syracuse UT, US Kevin Vigor - Salt Lake City UT, US
Assignee:
Fusion-10, Inc - Salt Lake City UT
International Classification:
G11C 29/00
US Classification:
714763, 714 6, 36518509, 365201
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.
Apparatus, System, And Method For Determining A Read Voltage Threshold For Solid-State Storage Media
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.
Apparatus, System, And Method For Managing Data Storage
David Flynn - Sandy UT, US Jonathan Thatcher - Liberty Lake WA, US Joshua Aune - South Jordan UT, US Jeremy Fillingim - Salt Lake City UT, US Bill Inskeep - West Valley City UT, US John Strasser - Syracuse UT, US Kevin Vigor - Salt Lake City UT, US
Assignee:
Fusion-io, Inc. - Salt Lake City UT
International Classification:
G06F 11/00
US Classification:
714 61
Abstract:
An apparatus, system, and method are disclosed for managing data storage. The method includes determining that an error correcting code (ECC) block comprises uncorrectable errors. The ECC block is stored across a plurality of memory devices. The method includes iteratively substituting replacement data, within data of the ECC block, for individual memory devices of the plurality of memory devices to form substitute ECC blocks until one of the substitute ECC blocks is correctable using the error correcting code for the ECC block. The method includes providing corrected data from the correctable one of the substitute ECC blocks.
Apparatus, System, And Method For Power Reduction In A Storage Device
Jeremy Fillingim - Salt Lake City UT, US John Strasser - Syracuse UT, US Jonathan Thatcher - Liberty Lake UT, US
Assignee:
Fusion-io, Inc. - Salt Lake City UT
International Classification:
G06F 1/26 G06F 9/28
US Classification:
713320, 713300, 713324, 711100, 711105, 711154
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.