|Publication number||US7596643 B2|
|Application number||US 11/672,435|
|Publication date||Sep 29, 2009|
|Filing date||Feb 7, 2007|
|Priority date||Feb 7, 2007|
|Also published as||EP2165262A1, EP2165262A4, US8151020, US20080189452, US20100017542, WO2008097764A1|
|Publication number||11672435, 672435, US 7596643 B2, US 7596643B2, US-B2-7596643, US7596643 B2, US7596643B2|
|Inventors||David E. Merry, Jr., Mark S. Diggs|
|Original Assignee||Siliconsystems, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (42), Non-Patent Citations (10), Referenced by (164), Classifications (15), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
1. Field of the Invention
The present invention relates to storage subsystems. More specifically, the present invention relates to buffers used to transfer data between a host computer system and a storage subsystem.
2. Description of the Related Art
With increasing memory capacity, a mixture of information (e.g., program files, setup files, user data, etc.) can be conveniently stored on a single storage subsystem such as an advanced technology attachment (ATA) flash disk or a removable flash memory card. Data is commonly transferred to the storage subsystem from a host system through the use of a buffer, which temporarily stores the data while it is being written to non-volatile storage. The buffer uses volatile memory that is faster than the non-volatile storage of the subsystem, enabling the subsystem to receive write data at a transfer rate that exceeds the write speed of the non-volatile storage. If power is lost after the host finishes writing to the subsystem but before the data is fully written to non-volatile storage, the host may treat the write operation as successful, even though it is not.
The mixture of information written to a storage subsystem through the buffer may include critical data, such as financial data or executable files. Reliability of the transfer in these situations is typically more important than the speed of the transfer. On the other hand, when the storage subsystem is used to transfer and store non-critical data such as video and audio data, performance is typically critical. Unfortunately, existing storage subsystems do not provide an efficient and effective mechanism for managing the tradeoff between performance and the risk of data loss.
A storage subsystem is disclosed that includes a variable-size write buffer that temporarily stores write data received from a host system as such data written to the subsystem's non-volatile storage. The storage subsystem is capable of adjusting the size of the write buffer so as to vary both the performance (e.g., sustained write speed) of the storage subsystem and the risk of data loss. In one embodiment, the storage subsystem implements a command set that enables the host system to directly control the size of the write buffer. Thus, for example, the host system may set the write buffer to a relatively large size (to optimize performance) when transferring non-critical data, and to a relatively small size (to reduce the risk of data loss) when transferring mission critical data. The storage subsystem may additionally or alternatively be capable of adjusting the size of the write buffer based on monitored operating conditions, such as the temperature, the stability/consistency of a power signal received from the host system, and/or the elapsed time since the storage subsystem was last powered up. The storage subsystem may be implemented as a memory card or drive that plugs into a slot, or attaches to an external or internal port, of the host system.
Neither this summary nor the following detailed description purports to define the invention. The invention is defined by the claims.
Systems and methods which embody the various features of the invention will now be described with reference to the following drawings, in which:
The following description is intended to illustrate specific embodiments of the invention, and not to limit the invention. Thus, nothing in this detailed description is intended to imply that any particular feature, characteristic or component is essential to the invention. The invention is defined only by the claims.
The storage subsystem 112 comprises a controller 114, a buffer memory 126, and non-volatile storage 116. Although shown as separate blocks in
As is conventional, the controller 114 is configured to write data to, and read data from, the non-volatile storage 116 in response to commands from the host 110. In one embodiment, the controller 114 is an ATA flash disk controller that executes a firmware program which embodies the various buffer configuration features described herein. Some or all of the functions of the controller 114 may alternatively be fully automated in application-specific circuitry such that no firmware is needed. The controller 114 is typically implemented as a single integrated circuit device, but may alternatively comprise multiple distinct devices.
The non-volatile storage 116 is subdivided into a user data area 117 and a restricted area 119. The user data area 117 is read/write accessible via standard (e.g. ATA) access commands, and is used by the controller 114 to implement a conventional file system (e.g., FAT16 or FAT32). Thus, the user data area 117 is available to host applications and the host operating system to store files 142. The restricted memory area 119 is preferably accessible only via one or more non-standard or “vendor-specific” commands, and thus is not exposed to the host's operating system and applications. Stated differently, the standard memory access command codes used to access the subsystem's user data memory area 117 do not provide access to the restricted area 119. As described below, the restricted area 119 is used to store configuration and control information, including information regarding the current configuration of the buffer memory 126. In other embodiments of the invention, the restricted memory area 119 may be omitted; for example, the restricted memory area may be replaced by an internal magnetic disk drive.
In the illustrated embodiment, the buffer memory 126 has two read/write ports 136 and 138 to efficiently move data between the host system 116 and the non-volatile storage 116. The ports 136 and 138 provide data channels between the buffer memory 126 and data management portions 128 and 130 of the subsystem's controller 114. Additional read/write ports may be included; for example, a quad port SRAM may be used. In the embodiment shown, the controller 114 includes a host data manager 128 responsible for moving data to and from the host 110. The host data manager 128 accesses the buffer memory 126 via one of the read/write ports 136. The controller 114 also includes a storage data manager 130 responsible for moving data to and from the non-volatile storage 116 via the other read/write port 138. The storage data manager 130 may also be configured for striping data across the non-volatile storage 116 or sending the data across multiple storage read/write ports. The host data manager 128 and storage data manager 130 may be implemented in state machine logic.
In some embodiments, the controller 114 may also use the buffer memory 126 to implement a read buffer during read operations from the host. Alternatively, a separate, dedicated read buffer may be provided.
During a write operation, the controller 114 initially writes the data received from the host 110 to the buffer memory 126, and then moves this data from the buffer memory 126 to the non-volatile storage 116. Because the buffer memory 126 has at least two ports, the controller 114 can write to one block of the buffer memory 126 while moving data from another block of the buffer memory 126 to the non-volatile storage 116. If no buffer memory is currently available, the controller 114 asserts a BUSY signal to the host 110 to prevent the host from sending additional write data. Thus, the controller 114 uses the BUSY signal to regulate the rate at which write data is received from the host 110.
In accordance with the invention, the controller 114 is capable of adjusting the amount of buffer memory 126 that is available to buffer write data. This is preferably accomplished by adjusting the size of a write buffer 135 implemented in the buffer memory 126. For example, to maximize the sustained rate at which data is written to the storage subsystem 112, the controller 114 can set the write buffer 135 to its maximum size, so that most or all of the buffer memory 126 is available for buffering write data. This setting optimizes performance, but increases the risk of data loss by increasing the amount of uncommitted data that can be stored in the volatile buffer memory 126 at a time. (“Uncommitted data” refers to write data that has not yet been written from the buffer memory to the subsystem's non-volatile storage 116; such data is ordinarily lost from the storage subsystem if power is lost.) Thus, to reduce the risk of data loss (at the expense of a reduced sustained data transfer rate), the controller 114 can set the buffer size to be less than its maximum size.
In the preferred embodiment, the controller 114 adjusts the buffer size in response to special (non-standard) commands received from the host system 110. Specifically, the storage subsystem 112 implements a vendor-specific command that enables the host 110 to specify the buffer size in terms of the number of 512-byte sectors it includes. For instance, if the buffer memory 126 has sixteen sectors that can be used for buffering write data, there will be sixteen possible settings (1, 2, 3 . . . 16 sectors) for the buffer size. In other embodiments, the size of the write buffer may be specified in terms of a number of bytes, an address range, a set of address ranges, or some other measure. Further, as mentioned above, sectors of a different size may be used.
Thus, for example, when writing relatively important data to the storage subsystem 112, the host 110 may set the buffer size to a relatively small value. By doing so, the host can place an upper limit on the amount of uncommitted write data stored in the write buffer 135 at a time, and can thus limit the amount of data that will be lost if a power loss or other failure occurs. For other types of data, such as video or audio streams, the host may make the write buffer relatively large to maximize throughput.
As discussed below, in some embodiments, the controller 114 may additionally or alternatively adjust the buffer size based on monitored operating conditions, such as the temperature of the storage subsystem 112, the stability of the power signal received from the host 110, and/or the frequency with which ECC errors are detected. Thus, in some embodiments, the storage subsystem 112 may not enable the host 110 to control the size of the buffer.
In the preferred embodiment, the storage subsystem's command set also enables the host 110 to effectively subdivide the write buffer 135 into multiple equal-size blocks 137. Each block preferably consists of a whole number of 512-byte sectors. For example, if the buffer size is set to eight and the block size is set to two, the write buffer will be subdivided into four blocks, each of which consists of two sectors. In the example configuration shown in
When or shortly after a block 137 becomes full during a write operation, the controller 114 begins moving its contents to non-volatile storage 116. If the write buffer 135 consists of a single block (i.e., the block size is equal to the buffer size), the controller asserts the BUSY signal during this move operation so that no additional write data is received from the host until the move is complete. On the other hand, if the write buffer 135 contains multiple blocks 137, the storage subsystem/controller can receive write data into one block while moving write data from another block to non-volatile storage 116.
The controller 114 preferably writes data to the blocks 137, and moves data from the blocks, in a circular fashion. The allocation of write data to particular blocks 137 occurs transparently to the host. Setting the block size to a relatively small value (e.g., one sector) generally reduces the delay between the receipt of data into the write buffer 135 and the movement of such data to non-volatile storage 116. Setting the block size to a relatively large value generally reduces the data transfer delay between the host system 110 and the receipt of data into the write buffer 135.
The storage subsystem 112 may alternatively be implemented without subdividing the write buffer 135 into multiple blocks. In addition, the storage subsystem can be implemented such that the number of blocks, and/or the size of each block, is fixed.
The controller 114 preferably implements multiple modes of operation that define how the buffer size, or the buffer size and block size, can be varied. These modes may, for example, include Automatic Mode, Host Set Mode, and Monitor Mode, as discussed below, although these particular modes are not required. The host system 110 can place the storage subsystem into a desired mode using a vendor-specific command.
As illustrated, the restricted memory area 119 of the storage subsystem 112 preferably stores buffer control parameters 140 that indicate the current configuration of the write buffer, including, e.g., the buffer size and block size settings and/or the current mode setting. This enables the controller 114 to restore these settings when the subsystem 112 is powered up. The controller 114 may also effectively cache the buffer control parameters in its register storage. In one embodiment, the control parameters 140 are stored in a restricted 512-byte block of the non-volatile storage 116 in a preconfigured location and format known to the controller 114. The host system 110 may execute software, such as the driver 113, that is configured to use the appropriate vendor-specific command or commands to control the configuration of the write buffer 135 and the associated mode of operation.
The restricted memory area 119 may also be used by the controller 114 to store other types of control information. For example the restricted memory area 119 may store firmware executed by the controller 114, security information for controlling access to the user data area 117, and/or wear level data reflective of the wear level of each sector of the non-volatile storage 116.
This section describes one example of a set of modes that may be implemented by the storage subsystem 112 to flexibly control how the buffer memory 126 is configured and used. As will be recognized, the subsystem 112 can be implemented without these modes.
When in Automatic Mode, the controller 114 automatically adjusts the block size (transparently to the host) based on the transfer command received from the host system 110. The storage subsystem 112 may thus advantageously internally adjust the block size to increase the speed of the data transfer between the host system 110 and the storage subsystem 112, and to optimize the data transfer rate/data integrity tradeoff accordingly.
More specifically, if the host uses a conventional Sector Count Register value to specify the transfer size, the controller 114 may use this value to select the appropriate block size for the transfer. For instance, if the Sector Count Register field is set to “02h” in the command, the controller 114 would use a block size of two. If, however, the host write command indicates a transfer of six sectors (e.g. the Sector Count Register field is “06h”), the controller 114 would set the block size to six sectors. The controller may also appropriately adjust the buffer size to accommodate the changes in block size.
Using the Host Set Mode, the host system 110 can set or change the buffer size and block size. The host system 110 may, for example, adjust these parameters based on the conditions surrounding the host system 110, such as the criticality of the data being stored and/or the susceptibility of the subsystem 112 to power loss or other failure. As one example of how susceptibility to failure can be used, the host 110 may maintain a log of events in which the subsystem 112 is connected and disconnected. The host may then use this log to calculate a probability that the subsystem will be disconnected from the host during a write operation, and may use this probability value to configure the buffer so as to stay within a pre-specified risk level.
The storage subsystem 112 may be placed in the Host Set Mode using a vendor-specific command that includes a first field to designate the buffer mode, and which includes two additional fields that specify the buffer size and block size, respectfully, when the Host Set Mode is specified by the first field. These settings are recorded persistently via the buffer control parameters 140, and are used until changed via another vendor-specific command.
By way of example, suppose that the host issues a write command with the Sector Count Register field set to “04h,” and the storage subsystem 112 is operating in the Host Set Mode. If the block size is set to two and the buffer size is set to four or more, the subsystem will use two 2-sector blocks to handle the transfer. If, on the other hand, both the block size and the buffer size are set to two, the subsystem will use a 2-sector block to handle the first half of the transfer, and will then use the same 2-sector block to handle the second half of the transfer.
The Host Set Mode may be used to manage the risk of data loss. For example, in a heart monitoring log application, the subsystem 112 may store heart monitoring data from a heart monitoring host system 110, and that data may be read and analyzed by a separate personal computer system (not shown). With the surrounding conditions of battery operation, possibility of power loss, and the transfer of critical data, the host system 110 may set the buffer size to one sector so that the amount of uncommitted heart monitoring data in the write buffer at any give time will be relatively small. When heart monitor logging is completed, the storage subsystem 112 may then be connected to the personal computer system for data analysis. The new conditions surrounding the personal computer system are typically a low probability of data loss, mostly read operations with very few write operations, and large amounts of data being read. Consequently, the host may increase the size of the write buffer to enable writes to occur at higher speeds.
When in the Monitor Mode, the subsystem's controller 114 can automatically adjust the buffer parameters based on data reflective of whether a power loss or other failure will likely occur. For example, the controller 114 may select the appropriate buffer size (and optionally block size) based on any one or more of the following: (a) the temperature of the storage subsystem, (b) the length of time that the subsystem 112 has been powered up, (c) the average length of time that the subsystem 112 remains powered up; (d) the length of time since the last power signal anomaly was detected, (e) the percentage of time in which the power signal has been anomalous since the last power-up; (f) the percentage of time spent executing write operations since the last power-up; (g) the percentage of sectors in which ECC errors have been detected on read operations, (h) the output of an internal shock or vibration sensor, (i) usage statistics reflective of the wear state, and thus the expected remaining life, of the non-volatile memory array, as generated, e.g., as described in U.S. patent application Ser. No. 11/429,936, filed May 8, 2006, the disclosure of which is hereby incorporated by reference. The controller 114 may maintain these and other types of data in the restricted memory area 119, and may analyze the collected data to predict likelihoods of failure. When the risk of a failure is relatively high, a relatively small buffer size may be used. When the risk of a failure is relatively low, a relatively large buffer size may be used.
For example, as depicted in
As another example, the controller 114 may monitor power conditions, and may adjust the buffer size based on power supply noise or level thresholds indicative of potential power loss. For example, the controller 114 may decrease the buffer size when the power supply noise measurements exceed 100 mV, or when the power signal drops below some threshold.
As another example, in some embodiments the storage subsystem 112 may include a battery that is used as a backup power source such that write operations can be completed if power from the host is lost. In these embodiments, the controller 114 may adjust the buffer size based on the charge status of the battery. For example, the controller 114 may decrease the buffer size when the battery's charge level falls below a selected threshold.
As yet another example, the storage subsystem 112 may adjust the buffer size to match the cluster size (the minimum size block of data that a file system can write) of the host system data partition for optimized synchronization with the host system's 110 file system. Specifically, the controller 114 may read the formatted partition information of the host system to determine the cluster size value, and then set the buffer size of the subsystem accordingly. For example, the if the cluster size of a host system 110 drive is 4096 bytes, then the controller 114 may set the buffer size to eight sectors, or 4096(=8×512) bytes.
In other embodiments, the controller 114 may adjust the buffer size based on a combination of environmental and system variables. For example, the controller 114 may decrease the buffer size when the temperature increases beyond a given threshold, the power supply noise exceeds a given threshold, or both the temperature and power supply noise exceed some lower thresholds. Further, the controller 114 may use a number of different factors (such as those enumerated above) to calculate a probability of power loss, and may then use this probability value to select an appropriate buffer size.
III. Physical Construction and Configuration
Some additional details of specific embodiments of the storage subsystem 112 will now be described with reference to
In one embodiment, the controller 114 comprises an ATA flash disk controller that executes firmware. The firmware executed by the controller 114 embodies functionality for implementing the features described herein, including providing access to the restricted memory area 119 via vendor-specific commands. The controller 114 may alternatively be implemented in-whole or in-part as an ASIC, FPGA, or other device, which may but need not execute firmware.
The non-volatile storage 116 may, but need not, be implemented using NAND memory components. The non-volatile storage 116 may comprise a plurality of solid-state storage devices coupled to the controller 114. The non-volatile storage 116 may comprise, for example, flash integrated circuits, Chalcogenide RAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), Programmable Metallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM), Resistance RAM (RRAM), NAND memory, NOR memory, EEPROM, Ferroelectric Memory (FeRAM), or other discrete NVM chips. The solid-state storage devices may be physically divided into blocks, pages and sectors, as is known in the art. As mentioned above, other forms of non-volatile storage (e.g., battery backed-up volatile DRAM or SRAM devices, magnetic disk drives, etc.) may additionally or alternatively be used.
All possible combinations of the various features and characteristics described herein are contemplated, and are intended to fall within the scope of this disclosure.
The foregoing embodiments have been presented by way of example only, and are not intended to be limiting. Indeed, the novel features described herein may be embodied in a variety of other forms, including forms that do not provide all of the benefits described herein. Furthermore, various omissions, substitutions and changes in the form of the disclosed features may be made without departing from the invention, which is defined by the accompanying claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5442768||Nov 5, 1992||Aug 15, 1995||Sharp Kabushiki Kaisha||Recording and reproducing data using batch erasable nonvolatile semiconductor memories capable of selectively erasing one of a plurality of data groups stored in one of the memories|
|US5737563||Jun 7, 1995||Apr 7, 1998||Texas Instruments Incorporated||Determination of memory bank sizes in a computer system|
|US5784698||Dec 5, 1995||Jul 21, 1998||International Business Machines Corporation||Dynamic memory allocation that enalbes efficient use of buffer pool memory segments|
|US5890219||Nov 27, 1996||Mar 30, 1999||Emc Corporation||Redundant writing of data to cached storage system|
|US6000006||Aug 25, 1997||Dec 7, 1999||Bit Microsystems, Inc.||Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage|
|US6014727 *||Dec 23, 1996||Jan 11, 2000||Apple Computer, Inc.||Method and system for buffering messages in an efficient but largely undivided manner|
|US6081878 *||Feb 25, 1998||Jun 27, 2000||Lexar Media, Inc.||Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices|
|US6088765||Jun 8, 1998||Jul 11, 2000||Fujitsu Limited||Removable medium data storage apparatus, optical disk apparatus and data transfer control method|
|US6269434||Nov 5, 1999||Jul 31, 2001||Matsushita Electric Industrial Co., Ltd.||Recording and reproducing apparatus including a nonvolatile memory which includes a first area for file management tables and a second area for data and a control unit|
|US6272589 *||Jan 27, 1999||Aug 7, 2001||Kabushiki Kaisha Toshiba||Method and apparatus for controlling write buffering operation in a disk drive|
|US6434648||Dec 10, 1998||Aug 13, 2002||Smart Modular Technologies, Inc.||PCMCIA compatible memory card with serial communication interface|
|US6546456 *||Sep 8, 2000||Apr 8, 2003||International Business Machines Corporation||Method and apparatus for operating vehicle mounted disk drive storage device|
|US6675281||Jan 22, 2002||Jan 6, 2004||Icreate Technologies Corporation||Distributed mapping scheme for mass storage system|
|US6704012||Apr 27, 1999||Mar 9, 2004||International Business Machines Corporation||Multi-variable graphical interface and method|
|US6732221||Jun 1, 2001||May 4, 2004||M-Systems Flash Disk Pioneers Ltd||Wear leveling of static areas in flash memory|
|US6754765||May 14, 2001||Jun 22, 2004||Integrated Memory Logic, Inc.||Flash memory controller with updateable microcode|
|US6871272||Sep 4, 2001||Mar 22, 2005||International Business Machines Corporation||Data sorting in information storage systems|
|US6944063||Jan 28, 2003||Sep 13, 2005||Sandisk Corporation||Non-volatile semiconductor memory with large erase blocks storing cycle counts|
|US6944717||Jul 11, 2002||Sep 13, 2005||Fujitsu Limited||Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom|
|US7054986||Mar 30, 2001||May 30, 2006||Nokia Corporation||Programmable CPU/interface buffer structure using dual port RAM|
|US7079395||Jun 14, 2002||Jul 18, 2006||Sun Microsystems, Inc.||Extended computing system|
|US7277978||Sep 16, 2003||Oct 2, 2007||Micron Technology, Inc.||Runtime flash device detection and configuration for flash data management software|
|US20020138602||Oct 17, 2001||Sep 26, 2002||Anders Vinberg||Method and apparatus for displaying 3-D state indicators|
|US20030188007 *||Mar 28, 2002||Oct 2, 2003||Unger Robert Allan||Method and system for providing and controlling sub-burst data transfers|
|US20040128414||Dec 30, 2002||Jul 1, 2004||Rudelic John C.||Using system memory as a write buffer for a non-volatile memory|
|US20040228197||Nov 19, 2003||Nov 18, 2004||Nima Mokhlesi||Compressed event counting technique and application to a flash memory system|
|US20040246841 *||Jun 9, 2004||Dec 9, 2004||Canon Kabushiki Kaisha||Data recording apparatus and data recording method|
|US20050036387||Sep 24, 2004||Feb 17, 2005||Seal Brian K.||Method of using flash memory for storing metering data|
|US20050281112||Jun 15, 2005||Dec 22, 2005||Elpida Memory, Inc.||Semiconductor memory device and refresh period controlling method|
|US20060085670||Oct 18, 2004||Apr 20, 2006||Carver Brian L||Method and system for reducing memory faults while running an operating system|
|US20060085836||Oct 14, 2004||Apr 20, 2006||International Business Machines Corporation||System and method for visually rendering resource policy usage information|
|US20060095647||Nov 23, 2004||May 4, 2006||Smartdisk Corporation||Self-labeling digital storage unit|
|US20060248387 *||Apr 15, 2005||Nov 2, 2006||Microsoft Corporation||In-line non volatile memory disk read cache and write buffer|
|US20060282709||Dec 8, 2005||Dec 14, 2006||Microsoft Corporation||Hard disk drive condition reporting and error correction|
|US20070008186||Jun 20, 2005||Jan 11, 2007||Brunswick Corporation||Indicator motion trail for an instrumentation interface display|
|US20070053513||Aug 29, 2006||Mar 8, 2007||Hoffberg Steven M||Intelligent electronic appliance system and method|
|US20070073944||Sep 23, 2005||Mar 29, 2007||Joseph Gormley||Systems and methods for implementing a vehicle control and interconnection system|
|US20070180328||Jan 27, 2006||Aug 2, 2007||Cornwell Michael J||Monitoring health of non-volatile memory|
|US20070201814 *||Jan 17, 2005||Aug 30, 2007||Kenichiro Yamauchi||High speed dubbing apparatus|
|US20070260811||May 8, 2006||Nov 8, 2007||Merry David E Jr||Systems and methods for measuring the useful life of solid-state storage devices|
|US20070268791||May 5, 2006||Nov 22, 2007||Sun Microsystems, Inc.||Remote monitoring device|
|EP0589597A2||Sep 9, 1993||Mar 30, 1994||International Business Machines Corporation||Flash non-volatile memory|
|1||Document explaining prior sale.|
|2||International Search Report and Written Opinion for International Application No. PCT/US09/32984, mailed on Mar. 17, 2009, in 10 pages.|
|3||International Search Report and Written Opinion for International Application No. PCT/US09/33262, mailed on Mar. 25, 2009, in 11 pages.|
|4||International Search Report and Written Opinion in PCT Application No. PCT/US2007/68490; Dated Sep. 29, 2008 in 11 pages.|
|5||International Search Report and Written Opinion in PCT Application No. PCT/US2008/052358; Dated May 5, 2008 in 11 pages.|
|6||Office Action dated Jan. 28, 2009 received in related U.S. Appl. No. 11/429,936 in 23 pages.|
|7||Silicondrive User's Guide, SiSMART Function, Preliminary Version 2.2 Revision A, Feb. 2005.|
|8||Webpage printed out from <http://www.m-systems.com/site/en-US/Support/DeveloperZone/Software/LifespanCalc.htm> on Jun. 13, 2006.|
|9||Webpage printed out from <http://www.m-systems.com/site/en-US/Technologies/Technology/TrueFFS-Technology.htm> on Jun. 13, 2006.|
|10||Webpage printed out from <http://www.techworld.com/storage/features/index.cfm?FeatureID=498> on Jun. 13, 2006.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8127103 *||Oct 9, 2008||Feb 28, 2012||Hitachi, Ltd.||Storage apparatus, memory area managing method thereof, and flash memory package|
|US8245101||Aug 14, 2012||Sandisk Enterprise Ip Llc||Patrol function used in flash storage controller to detect data errors|
|US8312207||Feb 17, 2012||Nov 13, 2012||Siliconsystems, Inc.||Systems and methods for measuring the useful life of solid-state storage devices|
|US8365041||Mar 17, 2010||Jan 29, 2013||Sandisk Enterprise Ip Llc||MLC self-raid flash data protection scheme|
|US8386700||Nov 29, 2011||Feb 26, 2013||Sandisk Enterprise Ip Llc||Flash memory controller garbage collection operations performed independently in multiple flash memory groups|
|US8473814||Jun 27, 2012||Jun 25, 2013||Sandisk Enterprise Ip Llc||MLC self-RAID flash data protection scheme|
|US8484533||Jun 27, 2012||Jul 9, 2013||Sandisk Enterprise Ip Llc||MLC self-RAID flash data protection scheme|
|US8484534||Jun 27, 2012||Jul 9, 2013||Sandisk Enterprise IP LLC.||MLC self-RAID flash data protection scheme|
|US8495757||Apr 22, 2010||Jul 23, 2013||Hewlett-Packard Development Company, L.P.||System and method for placing an electronic apparatus into a protected state in response to environmental data|
|US8533384||Apr 8, 2008||Sep 10, 2013||Sandisk Enterprise Ip Llc||Flash memory controller garbage collection operations performed independently in multiple flash memory groups|
|US8549236||Dec 15, 2006||Oct 1, 2013||Siliconsystems, Inc.||Storage subsystem with multiple non-volatile memory arrays to protect against data losses|
|US8595392 *||Jul 6, 2012||Nov 26, 2013||Renesas Electronics Corporation||USB device controller and power control method thereof|
|US8621137||Apr 8, 2008||Dec 31, 2013||Sandisk Enterprise Ip Llc||Metadata rebuild in a flash memory controller following a loss of power|
|US8621138||Apr 8, 2008||Dec 31, 2013||Sandisk Enterprise Ip Llc||Flash storage controller execute loop|
|US8701064 *||Aug 22, 2013||Apr 15, 2014||Fujitsu Limited||Timing error removing method and design support apparatus|
|US8707096 *||Oct 12, 2011||Apr 22, 2014||Hitachi, Ltd.||Storage system, data backup method, and system restarting method of a storage system incorporating volatile and nonvolatile memory devices|
|US8738841 *||Apr 8, 2008||May 27, 2014||Sandisk Enterprise IP LLC.||Flash memory controller and system including data pipelines incorporating multiple buffers|
|US8751755||Apr 8, 2008||Jun 10, 2014||Sandisk Enterprise Ip Llc||Mass storage controller volatile memory containing metadata related to flash memory storage|
|US8762620||Apr 8, 2008||Jun 24, 2014||Sandisk Enterprise Ip Llc||Multiprocessor storage controller|
|US8775717||Apr 8, 2008||Jul 8, 2014||Sandisk Enterprise Ip Llc||Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories|
|US8775847 *||Dec 14, 2010||Jul 8, 2014||Memory Technologies Llc||Method and apparatus to boost mass memory performance given power supply availability|
|US8793543||Aug 31, 2012||Jul 29, 2014||Sandisk Enterprise Ip Llc||Adaptive read comparison signal generation for memory systems|
|US8891303||Jun 6, 2014||Nov 18, 2014||Sandisk Technologies Inc.||Method and system for dynamic word line based configuration of a three-dimensional memory device|
|US8898373||Jun 29, 2011||Nov 25, 2014||Western Digital Technologies, Inc.||System and method for improving wear-leveling performance in solid-state memory|
|US8909982||Oct 31, 2011||Dec 9, 2014||Sandisk Enterprise Ip Llc||System and method for detecting copyback programming problems|
|US8910020||Oct 31, 2011||Dec 9, 2014||Sandisk Enterprise Ip Llc||Intelligent bit recovery for flash memory|
|US8917471||Dec 13, 2013||Dec 23, 2014||Western Digital Technologies, Inc.||Power management for data storage device|
|US8924815||Nov 16, 2012||Dec 30, 2014||Sandisk Enterprise Ip Llc||Systems, methods and devices for decoding codewords having multiple parity segments|
|US8938658||Aug 31, 2012||Jan 20, 2015||Sandisk Enterprise Ip Llc||Statistical read comparison signal generation for memory systems|
|US8954653||Jun 26, 2012||Feb 10, 2015||Western Digital Technologies, Inc.||Mechanisms for efficient management of system data in data storage systems|
|US8954655||Jan 14, 2013||Feb 10, 2015||Western Digital Technologies, Inc.||Systems and methods of configuring a mode of operation in a solid-state memory|
|US8954694||Nov 15, 2012||Feb 10, 2015||Western Digital Technologies, Inc.||Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive|
|US8954822||Nov 16, 2012||Feb 10, 2015||Sandisk Enterprise Ip Llc||Data encoder and decoder using memory-specific parity-check matrix|
|US8959282||May 10, 2013||Feb 17, 2015||Sandisk Enterprise Ip Llc||Flash storage controller execute loop|
|US8959283||Dec 20, 2013||Feb 17, 2015||Sandisk Enterprise Ip Llc||Flash storage controller execute loop|
|US8959284||Jun 28, 2010||Feb 17, 2015||Western Digital Technologies, Inc.||Disk drive steering write data to write cache based on workload|
|US8959416||Dec 16, 2011||Feb 17, 2015||Western Digital Technologies, Inc.||Memory defect management using signature identification|
|US8966205||May 10, 2012||Feb 24, 2015||Western Digital Technologies, Inc.||System data management using garbage collection and hybrid self mapping|
|US8966339||Jan 15, 2013||Feb 24, 2015||Western Digital Technologies, Inc.||Decoder supporting multiple code rates and code lengths for data storage systems|
|US8966343||Aug 21, 2012||Feb 24, 2015||Western Digital Technologies, Inc.||Solid-state drive retention monitor using reference blocks|
|US8972655||Jan 30, 2013||Mar 3, 2015||Western Digital Technolgies, Inc.||Initialization of a storage device|
|US8972826||Oct 24, 2012||Mar 3, 2015||Western Digital Technologies, Inc.||Adaptive error correction codes for data storage systems|
|US8977804||Nov 21, 2011||Mar 10, 2015||Western Digital Technologies, Inc.||Varying data redundancy in storage systems|
|US8984247||May 10, 2012||Mar 17, 2015||Western Digital Technologies, Inc.||Storing and reconstructing mapping table data in a data storage system|
|US8990668||Mar 14, 2013||Mar 24, 2015||Western Digital Technologies, Inc.||Decoding data stored in solid-state memory|
|US9003264||Mar 15, 2013||Apr 7, 2015||Sandisk Enterprise Ip Llc||Systems, methods, and devices for multi-dimensional flash RAID data protection|
|US9007841||Dec 10, 2013||Apr 14, 2015||Western Digital Technologies, Inc.||Programming scheme for improved voltage distribution in solid-state memory|
|US9007854||Dec 9, 2013||Apr 14, 2015||Western Digital Technologies, Inc.||Method and system for optimized soft decoding in a data storage device|
|US9009566 *||Sep 12, 2012||Apr 14, 2015||Macronix International Co., Ltd.||Outputting information of ECC corrected bits|
|US9009576||Mar 15, 2013||Apr 14, 2015||Sandisk Enterprise Ip Llc||Adaptive LLR based on syndrome weight|
|US9013920||Jul 5, 2013||Apr 21, 2015||Western Digital Technologies, Inc.||Systems and methods of write precompensation to extend life of a solid-state memory|
|US9021168||Feb 20, 2014||Apr 28, 2015||Western Digital Technologies, Inc.||Systems and methods for an enhanced controller architecture in data storage systems|
|US9021192||Jun 17, 2011||Apr 28, 2015||Western Digital Technologies, Inc.||System and method for enhancing processing of memory access requests|
|US9021339||Nov 29, 2012||Apr 28, 2015||Western Digital Technologies, Inc.||Data reliability schemes for data storage systems|
|US9026716||May 12, 2010||May 5, 2015||Western Digital Technologies, Inc.||System and method for managing garbage collection in solid-state memory|
|US9032271||Dec 7, 2012||May 12, 2015||Western Digital Technologies, Inc.||System and method for lower page data recovery in a solid state drive|
|US9036283||Mar 27, 2014||May 19, 2015||Western Digital Technologies, Inc.||Data storage device with selective write to a first storage media or a second storage media|
|US9042197||Sep 6, 2013||May 26, 2015||Western Digital Technologies, Inc.||Power fail protection and recovery using low power states in a data storage device/system|
|US9043517||Sep 24, 2013||May 26, 2015||Sandisk Enterprise Ip Llc||Multipass programming in buffers implemented in non-volatile data storage systems|
|US9048876||Nov 16, 2012||Jun 2, 2015||Sandisk Enterprise Ip Llc||Systems, methods and devices for multi-tiered error correction|
|US9053008||Mar 26, 2012||Jun 9, 2015||Western Digital Technologies, Inc.||Systems and methods for providing inline parameter service in data storage devices|
|US9058261||Feb 20, 2014||Jun 16, 2015||Western Digital Technologies, Inc.||Systems and methods for detailed error reporting in data storage systems|
|US9058280||May 11, 2011||Jun 16, 2015||Western Digital Technologies, Inc.||Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time|
|US9058289||Aug 31, 2012||Jun 16, 2015||Sandisk Enterprise Ip Llc||Soft information generation for memory systems|
|US9059736||Jan 31, 2013||Jun 16, 2015||Western Digital Technologies, Inc.||Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme|
|US9059742||Mar 15, 2013||Jun 16, 2015||Western Digital Technologies, Inc.||System and method for dynamic scaling of LDPC decoder in a solid state drive|
|US9069475||Oct 26, 2010||Jun 30, 2015||Western Digital Technologies, Inc.||Hybrid drive selectively spinning up disk when powered on|
|US9070379||Nov 21, 2013||Jun 30, 2015||Western Digital Technologies, Inc.||Data migration for data storage device|
|US9070481||Jun 6, 2014||Jun 30, 2015||Sandisk Technologies Inc.||Internal current measurement for age measurements|
|US9081700||May 16, 2013||Jul 14, 2015||Western Digital Technologies, Inc.||High performance read-modify-write system providing line-rate merging of dataframe segments in hardware|
|US9092350||Sep 11, 2013||Jul 28, 2015||Sandisk Enterprise Ip Llc||Detection and handling of unbalanced errors in interleaved codewords|
|US9092370||Dec 19, 2013||Jul 28, 2015||Sandisk Enterprise Ip Llc||Power failure tolerant cryptographic erase|
|US9093160||Jun 6, 2014||Jul 28, 2015||Sandisk Technologies Inc.||Methods and systems for staggered memory operations|
|US9110835||Mar 17, 2014||Aug 18, 2015||Western Digital Technologies, Inc.||System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata|
|US9122625||Dec 18, 2012||Sep 1, 2015||Western Digital Technologies, Inc.||Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems|
|US9122636||Dec 19, 2013||Sep 1, 2015||Sandisk Enterprise Ip Llc||Hard power fail architecture|
|US9123686||May 29, 2013||Sep 1, 2015||Western Digital Technologies, Inc.||Thermal management for solid-state drive|
|US9129665||Dec 19, 2013||Sep 8, 2015||Sandisk Enterprise Ip Llc||Dynamic brownout adjustment in a storage device|
|US9136877||Aug 20, 2013||Sep 15, 2015||Sandisk Enterprise Ip Llc||Syndrome layered decoding for LDPC codes|
|US9141176||Sep 11, 2013||Sep 22, 2015||Western Digital Technologies, Inc.||Power management for data storage device|
|US9152555||Nov 15, 2013||Oct 6, 2015||Sandisk Enterprise IP LLC.||Data management with modular erase in a data storage system|
|US9152556||Dec 11, 2013||Oct 6, 2015||Sandisk Enterprise Ip Llc||Metadata rebuild in a flash memory controller following a loss of power|
|US9158349||Dec 19, 2013||Oct 13, 2015||Sandisk Enterprise Ip Llc||System and method for heat dissipation|
|US9158677||May 3, 2013||Oct 13, 2015||Sandisk Enterprise Ip Llc||Flash storage controller execute loop|
|US9159437||Jun 21, 2013||Oct 13, 2015||Sandisk Enterprise IP LLC.||Device and method for resolving an LM flag issue|
|US9164886||Jun 23, 2011||Oct 20, 2015||Western Digital Technologies, Inc.||System and method for multistage processing in a memory storage subsystem|
|US9170932||May 22, 2012||Oct 27, 2015||Western Digital Technologies, Inc.||System data storage mechanism providing coherency and segmented data loading|
|US9170938||Oct 22, 2013||Oct 27, 2015||Western Digital Technologies, Inc.||Method and system for atomically writing scattered information in a solid state storage device|
|US9170941||Nov 15, 2013||Oct 27, 2015||Sandisk Enterprises IP LLC||Data hardening in a storage system|
|US9176859||Jan 7, 2009||Nov 3, 2015||Siliconsystems, Inc.||Systems and methods for improving the performance of non-volatile memory operations|
|US9177638||Nov 13, 2012||Nov 3, 2015||Western Digital Technologies, Inc.||Methods and devices for avoiding lower page corruption in data storage devices|
|US9182916||Jun 16, 2014||Nov 10, 2015||Western Digital Technologies, Inc.||Non-volatile storage subsystem with energy-based performance throttling|
|US9195293||Aug 7, 2013||Nov 24, 2015||Western Digital Technologies, Inc.||User controlled data storage device power and performance settings|
|US9195530||Sep 6, 2011||Nov 24, 2015||Western Digital Technologies, Inc.||Systems and methods for improved data management in data storage systems|
|US9208020||Dec 23, 2014||Dec 8, 2015||Western Digital Technologies, Inc.||Efficient error handling mechanisms in data storage systems|
|US9208101||Jun 26, 2013||Dec 8, 2015||Western Digital Technologies, Inc.||Virtual NAND capacity extension in a hybrid drive|
|US9214963||Dec 21, 2012||Dec 15, 2015||Western Digital Technologies, Inc.||Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system|
|US9214965||Nov 8, 2013||Dec 15, 2015||Sandisk Enterprise Ip Llc||Method and system for improving data integrity in non-volatile storage|
|US9218279||May 15, 2013||Dec 22, 2015||Western Digital Technologies, Inc.||Atomic write command support in a solid state drive|
|US9235245||Dec 19, 2013||Jan 12, 2016||Sandisk Enterprise Ip Llc||Startup performance and power isolation|
|US9235509||Sep 17, 2013||Jan 12, 2016||Sandisk Enterprise Ip Llc||Write amplification reduction by delaying read access to data written during garbage collection|
|US9236886||Sep 17, 2013||Jan 12, 2016||Sandisk Enterprise Ip Llc||Universal and reconfigurable QC-LDPC encoder|
|US9239751||Mar 15, 2013||Jan 19, 2016||Sandisk Enterprise Ip Llc||Compressing data from multiple reads for error control management in memory systems|
|US9239783||May 14, 2013||Jan 19, 2016||Sandisk Enterprise Ip Llc||Multiprocessor storage controller|
|US9244763||Sep 17, 2013||Jan 26, 2016||Sandisk Enterprise Ip Llc||System and method for updating a reading threshold voltage based on symbol transition information|
|US9244785||Dec 19, 2013||Jan 26, 2016||Sandisk Enterprise Ip Llc||Simulated power failure and data hardening|
|US9250676||Dec 19, 2013||Feb 2, 2016||Sandisk Enterprise Ip Llc||Power failure architecture and verification|
|US9250994||Mar 31, 2014||Feb 2, 2016||Western Digital Technologies, Inc.||Non-binary low-density parity check (LDPC) decoding using trellis maximization|
|US9263136||Nov 26, 2013||Feb 16, 2016||Western Digital Technologies, Inc.||Data retention flags in solid-state drives|
|US9263156||Dec 19, 2013||Feb 16, 2016||Sandisk Enterprise Ip Llc||System and method for adjusting trip points within a storage device|
|US9268487||May 12, 2014||Feb 23, 2016||Western Digital Technologies, Inc.||Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached|
|US9268657||Feb 18, 2015||Feb 23, 2016||Western Digital Technologies, Inc.||Varying data redundancy in storage systems|
|US9268701||Nov 21, 2011||Feb 23, 2016||Western Digital Technologies, Inc.||Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability|
|US9270296||Dec 9, 2013||Feb 23, 2016||Western Digital Technologies, Inc.||Method and system for soft decoding through single read|
|US9274966||Feb 20, 2013||Mar 1, 2016||Western Digital Technologies, Inc.||Dynamically throttling host commands to disk drives|
|US9274978||Aug 26, 2013||Mar 1, 2016||Western Digital Technologies, Inc.||Migration of encrypted data for data storage systems|
|US9275741||Sep 10, 2014||Mar 1, 2016||Western Digital Technologies, Inc.||Temperature compensation management in solid-state memory|
|US9280200||May 20, 2013||Mar 8, 2016||Western Digital Technologies, Inc.||Automatic peak current throttle of tiered storage elements|
|US9280429||Dec 19, 2013||Mar 8, 2016||Sandisk Enterprise Ip Llc||Power fail latching based on monitoring multiple power supply voltages in a storage device|
|US9280472||Mar 13, 2013||Mar 8, 2016||Western Digital Technologies, Inc.||Caching data in a high performance zone of a data storage system|
|US9286176 *||Jan 15, 2014||Mar 15, 2016||Western Digital Technologies, Inc.||Selective skipping of blocks in an SSD|
|US9298608||Dec 20, 2013||Mar 29, 2016||Sandisk Enterprise Ip Llc||Biasing for wear leveling in storage systems|
|US9304560||Aug 2, 2013||Apr 5, 2016||Western Digital Technologies, Inc.||Backup power for reducing host current transients|
|US9304709||Sep 6, 2013||Apr 5, 2016||Western Digital Technologies, Inc.||High performance system providing selective merging of dataframe segments in hardware|
|US9304938 *||Nov 25, 2013||Apr 5, 2016||Samsung Electronics Co., Ltd.||Storage device and data transferring method thereof|
|US9323467||Dec 13, 2013||Apr 26, 2016||Western Digital Technologies, Inc.||Data storage device startup|
|US9323637||Dec 19, 2013||Apr 26, 2016||Sandisk Enterprise Ip Llc||Power sequencing and data hardening architecture|
|US9329928||Nov 8, 2013||May 3, 2016||Sandisk Enterprise IP LLC.||Bandwidth optimization in a non-volatile memory system|
|US9330143||Dec 18, 2013||May 3, 2016||Western Digital Technologies, Inc.||Data storage device supporting accelerated database operations|
|US9335950||May 24, 2013||May 10, 2016||Western Digital Technologies, Inc.||Multiple stream compression and formatting of data for data storage systems|
|US9337864||Mar 31, 2014||May 10, 2016||Western Digital Technologies, Inc.||Non-binary LDPC decoder using binary subgroup processing|
|US9338927||Jun 7, 2013||May 10, 2016||Western Digital Technologies, Inc.||Thermal interface material pad and method of forming the same|
|US9348377||Apr 3, 2014||May 24, 2016||Sandisk Enterprise Ip Llc||Thermal isolation techniques|
|US9348520||Apr 30, 2014||May 24, 2016||Western Digital Technologies, Inc.||Lifetime extension of non-volatile semiconductor memory for data storage device|
|US9348741||Dec 19, 2011||May 24, 2016||Western Digital Technologies, Inc.||Systems and methods for handling write data access requests in data storage devices|
|US9350391||May 27, 2015||May 24, 2016||Western Digital Technologies, Inc.||System and method for dynamic scaling of LDPC decoder in a solid state drive|
|US9354955||Apr 10, 2014||May 31, 2016||Western Digital Technologies, Inc.||Partial garbage collection for fast error handling and optimized garbage collection for the invisible band|
|US9361044||Mar 28, 2011||Jun 7, 2016||Western Digital Technologies, Inc.||Power-safe data management system|
|US9361221||Sep 17, 2013||Jun 7, 2016||Sandisk Technologies Inc.||Write amplification reduction through reliable writes during garbage collection|
|US9367246||Aug 9, 2013||Jun 14, 2016||Sandisk Technologies Inc.||Performance optimization of data transfer for soft information generation|
|US9384088||Apr 10, 2014||Jul 5, 2016||Western Digital Technologies, Inc.||Double writing map table entries in a data storage system to guard against silent corruption|
|US9384126||Sep 24, 2013||Jul 5, 2016||Sandisk Technologies Inc.||Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems|
|US9390021||Jul 21, 2014||Jul 12, 2016||Sandisk Technologies Llc||Efficient cache utilization in a tiered data structure|
|US9390814||Aug 7, 2014||Jul 12, 2016||Sandisk Technologies Llc||Fault detection and prediction for data storage elements|
|US9405356||Oct 21, 2014||Aug 2, 2016||Western Digital Technologies, Inc.||Temperature compensation in data storage device|
|US9405617||Mar 17, 2014||Aug 2, 2016||Western Digital Technologies, Inc.||System and method for data error recovery in a solid state subsystem|
|US9405675||Jun 12, 2014||Aug 2, 2016||Western Digital Technologies, Inc.||System and method for managing execution of internal commands and host commands in a solid-state memory|
|US9418699||Apr 21, 2015||Aug 16, 2016||Western Digital Technologies, Inc.||Management of sequentially written data|
|US9436630||Sep 13, 2013||Sep 6, 2016||Western Digital Technologies, Inc.||Using dual phys to support multiple PCIe link widths|
|US9436831||Dec 19, 2013||Sep 6, 2016||Sandisk Technologies Llc||Secure erase in a memory device|
|US9442662||Dec 20, 2013||Sep 13, 2016||Sandisk Technologies Llc||Device and method for managing die groups|
|US9442668||Nov 26, 2013||Sep 13, 2016||Western Digital Technologies, Inc.||Adaptive power management control with performance feedback|
|US9442670||Aug 27, 2014||Sep 13, 2016||Sandisk Technologies Llc||Method and system for rebalancing data stored in flash memory devices|
|US9443601||Sep 8, 2014||Sep 13, 2016||Sandisk Technologies Llc||Holdup capacitor energy harvesting|
|US20090172258 *||Apr 8, 2008||Jul 2, 2009||Pliant Technology, Inc||Flash memory controller garbage collection operations performed independently in multiple flash memory groups|
|US20090172499 *||Apr 8, 2008||Jul 2, 2009||Pliant Technology, Inc.||Patrol function used in flash storage controller to detect data errors|
|US20100030946 *||Oct 9, 2008||Feb 4, 2010||Hitachi, Ltd.||Storage apparatus, memory area managing method thereof, and flash memory package|
|US20100250793 *||Sep 30, 2010||Western Digital Technologies, Inc.||Adjusting access of non-volatile semiconductor memory based on access time|
|US20120151241 *||Dec 14, 2010||Jun 14, 2012||Nokia Corporation||Method and apparatus to boost mass memory performance given power supply availability|
|US20130013825 *||Jan 10, 2013||Renesas Electronics Corporation||Usb device controller and power control method thereof|
|US20130097458 *||Oct 12, 2011||Apr 18, 2013||Hitachi, Ltd.||Storage system, and data backup method and system restarting method of storage system|
|US20130346931 *||Aug 22, 2013||Dec 26, 2013||Fujitsu Limited||Timing error removing method and design support apparatus|
|US20140075265 *||Sep 12, 2012||Mar 13, 2014||Macronix International Co., Ltd.||Outputting Information of ECC Corrected Bits|
|US20140149706 *||Nov 25, 2013||May 29, 2014||Samsung Electronics Co., Ltd.||Storage device and data transfering method thereof|
|U.S. Classification||710/56, 710/57, 710/55, 710/52, 710/53, 710/54|
|Cooperative Classification||G06F3/0679, G06F3/061, G11B19/044, G06F3/0656|
|European Classification||G11B19/04B6, G06F3/06A2P, G06F3/06A4T2, G06F3/06A6L2F|
|Feb 8, 2007||AS||Assignment|
Owner name: SILICONSYSTEMS, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MERRY, DAVID E., JR.;DIGGS, MARK S.;REEL/FRAME:018868/0706
Effective date: 20070207
|Mar 1, 2013||FPAY||Fee payment|
Year of fee payment: 4
|Oct 23, 2015||AS||Assignment|
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICONSYSTEMS, INC.;REEL/FRAME:036872/0017
Effective date: 20151015
|Mar 9, 2016||AS||Assignment|
Owner name: WESTERN DIGITAL TECHNOLOGIES, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SILICONSYSTEMS, INC.;REEL/FRAME:037936/0204
Effective date: 20151015
|May 17, 2016||AS||Assignment|
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL
Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038722/0229
Effective date: 20160512
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL
Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0481
Effective date: 20160512
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN
Free format text: SECURITY AGREEMENT;ASSIGNOR:WESTERN DIGITAL TECHNOLOGIES, INC.;REEL/FRAME:038744/0281
Effective date: 20160512