| Patent application number | Description | Published |
| 20090006787 | Storage device with write barrier sensitive write commands and write barrier insensitive commands - The invention is a storage device which implements a write barrier command and provides means for a host to designate other write commands as being sensitive or insensitive to the existence of write barrier commands. The device can optimize the execution of commands by changing the order of execution of write commands that are insensitive to write barrier command. In an embodiment of the invention a flag associated with the write command indicates whether the command is sensitive or insensitive to the existence of write barrier commands. In an embodiment of the invention the write barrier command can be implemented as a write command with a flag that indicates whether the command is a write barrier command. In one embodiment of the invention the queue of commands and data to be written to the media is stored in a non-volatile cache. | 01-01-2009 |
| 20090019208 | Techniques For Implementing Virtual Storage Devices - Some embodiments include a storage device with a storage medium having a memory capacity. The storage device also includes virtual storage device firmware that is configured to directly respond to commands from a guest operating system in a virtual machine for accesses to a subset of the memory capacity of the storage medium when a virtual storage device is enabled. | 01-15-2009 |
| 20090110191 | Techniques For Encrypting Data On Storage Devices Using An Intermediate Key - A data storage device encrypts data stored in non-volatile memory using a bulk encryption key. The data storage device uses a key derivation function to generate an initial encryption key. The data storage device then wraps an intermediate encryption key with the initial encryption key and stores the wrapped intermediate key in the non-volatile memory. The data storage device wraps the bulk encryption key with the intermediate encryption key and stores the wrapped bulk encryption key in the non-volatile memory. The data storage device can unwrap the wrapped intermediate key to generate the intermediate encryption key using the initial encryption key. The data storage device can unwrap the wrapped bulk encryption key to generate the bulk encryption key using the intermediate encryption key. The data storage device decrypts data stored in the non-volatile memory using the bulk encryption key. | 04-30-2009 |
| 20090157942 | Techniques For Data Storage Device Virtualization - A data storage device comprises virtual storage devices that are each assigned to a subset of data sectors in a non-volatile memory of the data storage device. The data storage device receives configuration metadata for configuring each of the virtual storage devices from a host operating system. The configuration metadata is received in a standard format that is file system independent. The configuration metadata comprises a range of logical block addresses and a virtual storage device number assigned to each of the virtual storage devices. Each of the virtual storage device numbers is a unique identifier used by the data storage device to differentiate between the virtual storage devices. The data storage device uses the virtual storage device numbers and logical block addresses to identify data sectors in the virtual storage devices that are accessible by virtual machine operating systems. | 06-18-2009 |
| 20090161246 | Random Number Generation Using Hard Disk Drive Information - A hard disk drive enhances random number generation. In particular embodiments, the hard disk drive includes a controller, a hard disk, and a head. The head includes a read sensor for reading patterns on the hard disk. The controller generates a random number based on information associated with the position of the head relative to at least one track of the hard disk. | 06-25-2009 |
| 20090172324 | Storage system and method for opportunistic write-verify - A storage system that stores verify commands for all the write commands requiring verification in a verify-list that will be processed as a background task is described. The verify-list can include coded data fields that flexibly designate selected alternative states or possibilities for how and where the user data is actually stored. Alternatives for the verify-list include storing the actual raw data, no data, the data in compressed form, a CRC type signature of the data and/or a pointer to a backup copy of the data that is stored either in non-volatile memory such as flash memory or on the disk media in a temporary area. In case of a verification error in various alternative embodiments the user data can be recovered using the backup copy in the verify-list in the write cache, the backup copy in flash memory or on the disk, or from the host. | 07-02-2009 |
| 20090172335 | FLASH DEVICES WITH RAID - Methods and apparatus of the present invention include multiple flash storage devices that are configured to form a single storage device that is flexible and scalable. Reliability and performance are improved while keeping the power consumption benefits compared to conventional hard disk drives. | 07-02-2009 |
| 20100030958 | Random Number Generation For a Host System Using a Hard Disk Drive - A hard disk drive is provided for enhancing random number generation. In particular embodiments, the hard disk drive includes a storage subsystem and a controller. The controller generates a random number based on information associated with the storage subsystem. The controller transmits the random number to a host system. | 02-04-2010 |
| 20100232057 | Techniques For Storing Shingle Blocks in a Cache Memory Using a Data Storage Device - A data storage apparatus includes a data storage medium, a write element, a non-volatile cache memory circuit, and a controller circuit. The controller circuit is configured to record data on the data storage medium in groups of overlapping tracks using the write element. The controller circuit is configured to store a shingle block of data from a subset of the overlapping tracks in the non-volatile cache memory circuit, while at least a portion of the data in the shingle block of data is updated. | 09-16-2010 |