IP Library Granted Patent US 8,392,798
Granted Patent B2
US 8,392,798 · App. 13/442,638 · Granted Mar 5, 2013

Apparatus, system, and method for validating that correct data is read from a storage device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,392,798
App. No.
13/442,638
Granted
Mar 5, 2013
Kind
B2
Abstract

An apparatus, system, and method are disclosed for validating that correct data is read from a storage device. A hash generation module generates a hash value from a logical address of a read request for a data storage device. A read data module reads, from the data storage device, data identified by the read request and a stored hash value stored with the data. The stored hash value was generated from a logical address for data written to the data storage device. A hash check module verifies that the generated hash value matches the stored hash value read from the data storage device.

Claims (51)

1. A method to validate that correct data is read from a storage device, the method comprising:

generating a hash value from a logical address of a read request for a data storage device;

reading, from the data storage device, data identified by the read request and a stored hash value stored with the data, the stored hash value generated from a logical address for data written to the data storage device; and

verifying that the generated hash value matches the stored hash value read from the data storage device.

2. The method of claim 1 , further comprising:

receiving a write storage request to write data of the write storage request to the data storage device, the write storage request comprising a logical address for the data of the write storage request; and

storing the data of the write storage request in the data storage device with a hash value generated from the logical address of the data of the write request.

3. The method of claim 2 , wherein the hash value stored with the data of the write storage request comprises the logical address for the data of the write request.

4. The method of claim 2 , wherein the hash value stored with the data of the write storage request comprises a hash value derived from the logical address of the data of the write request.

5. The method of claim 1 , further comprising re-reading the data of the read request from the data storage device in response to the generated hash value failing to match the stored hash value.

6. The method of claim 1 , further comprising rebuilding a logical-to-physical map for the data storage device in response to the generated hash value failing to match the stored hash value, the logical-to-physical map mapping the logical address of the read request to a physical location on the data storage device.

7. The method of claim 6 , further comprising re-reading the data of the read request and the stored hash value from the data storage device based on the rebuilt logical-to-physical map and verifying that the generated hash value matches the stored hash value re-read from the data storage device, each in response to rebuilding the logical-to-physical map.

8. The method of claim 1 , further comprising mapping, using a logical-to-physical map, the logical address of the read request to a physical location in the data storage device to determine a location in the data storage device from which to read the data of the read request and the stored hash value.

9. The method of claim 1 , wherein verifying that the generated hash value matches the stored hash value detects an error in retrieval of the data identified by the read request, the error comprising one or more of an error in a logical-to-physical map for the non-volatile memory and an error occurring in a control line for the non-volatile memory.

10. The method of claim 1 , wherein the generated hash value comprises the logical address of the read request and the stored hash value comprises the logical address of the data written to the data storage device.

11. The method of claim 1 , wherein the generated hash value is generated from the logical address of the read request and the stored hash value is generated from the logical address for data written to the data storage device.

12. The method of claim 1 , wherein the stored hash value is stored in a packet header, the packet header stored with the data of the read request.

13. An apparatus to validate that correct data is read from a storage device, the apparatus comprising:

means for generating a hash value from a logical address of a read request for a data storage device;

means for reading, from the data storage device, data identified by the read request and a stored hash value stored with the data, the stored hash value generated from a logical address for data written to the data storage device; and

means for verifying that the generated hash value matches the stored hash value read from the data storage device.

14. The apparatus of claim 13 , further comprising:

means for receiving a write storage request to write data of the write storage request to the data storage device, the write storage request comprising a logical address for the data of the write storage request; and

means for storing the data of the write storage request in the data storage device with a hash value generated from the logical address of the data of the write request.

15. The apparatus of claim 13 , further comprising means for rebuilding a logical-to-physical map for the data storage device in response to the generated hash value failing to match the stored hash value, the logical-to-physical map mapping the logical address of the read request to a physical location on the data storage device.

16. A system to validate that a correct data segment is read from a storage device, the system comprising:

a data storage device;

a storage controller comprising one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable storage medium, the storage controller configured to control data storage on the data storage device and to,

generate a hash value from a logical address of a read request for the data storage device;

read, from the data storage device, data identified by the read request and a stored hash value stored with the data, the stored hash value generated from a logical address for data written to the data storage device; and

verify that the generated hash value matches the stored hash value read from the data storage device.

17. The system of claim 16 , further comprising a computer device, wherein at least one of the data storage device and the storage controller is in communication with the computer device over a system bus.

18. The system of claim 16 , wherein the data storage device comprises a solid-state storage device.

19. The system of claim 16 , wherein the data storage device comprises a sequential storage device.

20. A computer program product comprising a non-transitory computer readable storage medium having computer usable program code executable to perform operations for validating that a correct data segment is read from a storage device, the operations of the computer program product comprising:

generating a hash value from a logical address of a read request for a data storage device, wherein a logical-to-physical map maps the logical address of the read request to a physical location in the data storage device;

reading, from the data storage device, data identified by the read request and a stored hash value stored with the data, the stored hash value generated from a logical address for data written to the data storage device; and

verifying that the generated hash value matches the stored hash value read from the data storage device to detect an error in retrieval of the data identified by the read request.

21. The computer program product of claim 20 , wherein the operations further comprise one or more of:

re-reading the data of the read request and the stored hash value from the data storage device in response to the generated hash value failing to match the stored hash value; and

rebuilding the logical-to-physical map in response to the generated hash value failing to match the stored hash value.

22. The computer program product of claim 20 , wherein the generated hash value comprises one or more of the logical address of the read request and a hash value derived from the logical address of the read request.

23. An apparatus to validate that correct data is read from a storage device, the apparatus comprising:

a hash generation module configured to generate a hash value from a logical address of a read request for a data storage device, wherein a logical-to-physical map maps the logical address of the read request to a physical location on the data storage device;

a read data module configured to read, from the physical location on the data storage device, data identified by the read request and a stored hash value stored with the data, the stored hash value generated from a logical address for data written to the data storage device; and

a hash check module configured to verify that the generated hash value matches the stored hash value to detect an error in retrieval of the data identified by the read request, wherein the hash generation module, the read data module, and the hash check module comprise one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable storage medium.

24. The apparatus of claim 23 , further comprising:

a write request receiver module configured to receive a write storage request to write data of the write storage request to the data storage device, the write storage request comprising a logical address for the data of the write storage request; and

a write data module configured to store the data of the write storage request in the data storage device with a hash value generated from the logical address of the data of the write request;

wherein the request receiver module and the write data module comprise one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable medium.

25. The apparatus of claim 23 , further comprising a rebuild module configured to rebuild the logical-to-physical map in response to the hash check module determining that the generated hash value fails to match the stored hash value, the rebuild module comprising one or more of logic hardware and executable code, the executable code stored on a non-transitory computer readable medium.

Assignments (14)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 052853 FRAME: 0153. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Nov 15, 2021
From: UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 058223/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 053654 FRAME: 0254. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 15, 2021
From: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 058134/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS Recorded Jul 8, 2020
From: STARBOARD VALUE INTERMEDIATE FUND LP
To: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
Reel/Frame 053654/0254 →
PATENT SECURITY AGREEMENT Recorded Jun 5, 2020
From: ACACIA RESEARCH GROUP LLC; AMERICAN VEHICULAR SCIENCES LLC; BONUTTI SKELETAL INNOVATIONS LLC; CELLULAR COMMUNICATIONS EQUIPMENT LLC; INNOVATIVE DISPLAY TECHNOLOGIES LLC; LIFEPORT SCIENCES LLC; LIMESTONE MEMORY SYSTEMS LLC; MERTON ACQUISITION HOLDCO LLC; MOBILE ENHANCEMENT SOLUTIONS LLC; MONARCH NETWORKING SOLUTIONS LLC; NEXUS DISPLAY TECHNOLOGIES LLC; PARTHENON UNIFIED MEMORY ARCHITECTURE LLC; R2 SOLUTIONS LLC; SAINT LAWRENCE COMMUNICATIONS LLC; STINGRAY IP SOLUTIONS LLC; SUPER INTERCONNECT TECHNOLOGIES LLC; TELECONFERENCE SYSTEMS LLC; UNIFICATION TECHNOLOGIES LLC
To: STARBOARD VALUE INTERMEDIATE FUND LP, AS COLLATERAL AGENT
Reel/Frame 052853/0153 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
To: ACACIA RESEARCH GROUP LLC
Reel/Frame 052095/0903 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 5, 2020
From: ACACIA RESEARCH GROUP LLC
To: UNIFICATION TECHNOLOGIES LLC
Reel/Frame 052096/0225 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT DOCUMENT FILED PREVIOUSLY RECORDED ON REEL 047702 FRAME 0413. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 16, 2019
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES, LLC
Reel/Frame 048918/0035 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2018
From: LONGITUDE ENTERPRISE FLASH S.A.R.I.
To: FIO SEMICONDUCTOR TECHNOLOGIES LIMITED
Reel/Frame 047702/0413 →
RELEASE OF SECURITY INTEREST Recorded May 4, 2016
From: FUSION-IO, INC.
To: SANDISK CORPORATION
Reel/Frame 038748/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038362/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038362/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 26, 2014
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033419/0748 →
SECURITY INTEREST Recorded Jul 24, 2014
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: FUSION-IO, INC.
Reel/Frame 033410/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2014
From: FUSION-IO, INC.
To: INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 033389/0511 →