IP Library Granted Patent US 10,019,353
Granted Patent B2
US 10,019,353 · App. 13/925,410 · Granted Jul 10, 2018

Systems and methods for referencing data on a storage medium

Inventors: Evan Orme (Lindon, UT); James G. Peterson (San Jose, CA); Kevin Vigor (Salt Lake City, UT); David Flynn (Sandy, UT)
Assignee: Longitude Enterprise Flash S.a.r.l.
G06F12/0238G06F3/064G06F3/0608G06F3/0679G06F11/108G06F12/0246H04L12/4625H04L12/6418H04L12/66H05K7/1444G06F2003/0694G06F2211/109G06F2212/401G06F2212/7201G06F2212/7208H04L67/1097
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 10,019,353
App. No.
13/925,410
Granted
Jul 10, 2018
Kind
B2
Abstract

A storage layer is configured to store data at respective offsets within storage units of a storage device. Physical addresses of the data may be segmented into a first portion identifying the storage unit in which the data is stored, and a second portion that indicates the offset of the data within the identified storage unit. An index of the data offsets (e.g., second portions of the physical addresses) may be persisted on the storage device. The first portion of the address may be associated with logical addresses of the data in a forward index. The forward index may omit the second portion of the physical addresses, which may reduce the memory overhead of the index and/or allow the forward index to reference larger storage devices. Data of a particular logical address may be accessed using the first portion of the physical address maintained in the forward index, and the second portion of the media address stored on the storage device.

Claims (27)

1. A method, comprising:

arranging a plurality of data segments for storage at respective offsets within a storage unit of a solid-state storage medium;

mapping front-end addresses of the data segments to a physical address of the storage unit in a first index;

generating a second index for storage on the solid-state storage medium, wherein the second index is configured to associate front-end addresses of each of the plurality of data segments with respective offsets within the storage unit and wherein an entry of the second index includes a front-end address of a data segment of the plurality of data segments and indicates an offset of the data segment within the storage unit; and

accessing a requested data segment of the plurality of data segments, where accessing the requested data segment comprises:

performing a first translation comprising mapping a front-end address of the requested data segment to a physical address of the storage unit in the first index; and

performing a second translation comprising reading the second index stored at the physical address, and mapping the front-end address of the requested data segment to an offset of the requested data segment in the second index.

2. The method of claim 1 , further comprising compressing one or more of the plurality of data segments for storage within the storage unit such that a compressed size of the compressed data segments differs from an uncompressed size of the data segments, wherein the offset of the data segment within the storage unit is based on the compressed size of the data segments.

3. The method of claim 1 , further comprising storing the second index on the solid-state storage medium.

4. The method of claim 3 , further comprising storing the second index on the storage unit comprising the plurality of data segments.

5. The method of claim 3 , further comprising omitting the offset of the data segment from the first index.

6. The method of claim 1 , wherein the data segment is associated with a particular front-end address, the method further comprising:

determining a storage address of the data segment by use of a storage unit address mapped to the particular front-end address in the first index and a data segment offset associated with the particular front-end address in the second index stored on the storage unit.

7. A non-transitory computer-readable storage medium comprising program instructions stored thereon, wherein the program instructions are executable by a computing system to cause the computing system to perform a method, comprising:

arranging a plurality of data segments for storage at respective offsets within a storage unit of a solid-state storage medium;

mapping front-end addresses of the data segments to a physical address of the storage unit in a first index;

generating a second index for storage on the solid-state storage medium, wherein the second index is configured to associate each of the plurality of data segments with a corresponding offset within the storage unit and wherein the second index is configured to associate the front-end address of the data segments with respective offsets of the data segments within the storage unit; and

accessing a requested data segment of the plurality of data segments by:

accessing a physical address of a storage unit mapped to the particular front-end address in the first index, and

reading the second index stored at the determined physical address to determine an offset of the requested data segment within the storage unit.

8. The non-transitory computer-readable storage medium of claim 7 , wherein the method further comprises compressing one or more of the plurality of data segments for storage within the storage unit such that a compressed size of the compressed data segments differs from an uncompressed size of the data segments, wherein the offset of the data segment within the storage unit is based on the compressed size of the data segments.

9. The non-transitory computer-readable storage medium of claim 7 , wherein the method further comprises storing the second index on the solid-state storage medium.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises storing the second index on the storage unit comprising the plurality of data segments.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the method further comprises omitting the offset of the data segment from the first index.

12. The non-transitory computer-readable storage medium of claim 7 , wherein the data segment is associated with a particular front-end address, and wherein the method further comprises determining a storage address of a data segment by:

mapping the particular front-end address to a storage unit address in the first index; and

determining the offset of the data segment by mapping the particular front-end address to an entry of the second index stored at the storage unit address.

Assignments (12)
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 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2016
From: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
To: PS12 LUXCO S.A.R.L.
Reel/Frame 038348/0708 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 22, 2016
From: PS12 LUXCO S.A.R.L.
To: LONGITUDE ENTERPRISE FLASH S.A.R.L.
Reel/Frame 038348/0719 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2015
From: FUSION-IO, INC.
To: INTELLIGENT INTELLECTUAL PROPERTY HOLDINGS 2 LLC
Reel/Frame 035583/0850 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2015
From: ORME, EVAN; PETERSON, JAMES G; VIGOR, KEVIN; FLYNN, DAVID
To: FUSION-IO, INC.
Reel/Frame 034733/0290 →
Continuity (5)
Continuation In Part 13784705 · Mar 4, 2013
Provisional Application 61663464 · Jun 22, 2012
Provisional Application 61606755 · Mar 5, 2012
Provisional Application 61606253 · Mar 2, 2012
Related Publication 20130282953A1 · Oct 24, 2013