IP Library Patent Application 13835109
Patent Application
App. No. 13/835,109

OBJECT-BASED MEMORY STORAGE

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 None
App. No.
13/835,109
Abstract

The method includes receiving an object operation from an application at a hardware device manager. The object operation includes an object identifier. The method includes performing the object operation directly on a storage device. A physical address for the object corresponding to the object identifier is mapped directly to the object identifier in an index managed by the hardware device manager.

Claims (44)

1 . A method, comprising:

receiving an object operation from an application at a hardware storage device manager, wherein the object operation comprises an object identifier; and

performing the object operation directly on a storage device, wherein a physical address for the object corresponding to the object identifier is mapped directly to the object identifier in an index managed by the hardware storage device manager.

2 . The method of claim 1 , wherein the physical address is mapped directly to the object identifier in an absence of a block-based translation layer for the storage device.

3 . The method of claim 1 , wherein the object operation is a write operation comprising:

writing object data to the storage device at a new physical address; and

mapping an address for the object identifier in the index to the new physical address.

4 . The method of claim 1 , wherein the object operation is a read operation comprising identifying, via the index, the physical address corresponding to the object stored on the storage device.

5 . The method of claim 1 , wherein the object operation is a delete operation comprising:

invalidating data corresponding to a deleted object on the storage device; and

removing, from the index, the object identifier corresponding to the deleted object.

6 . The method of claim 1 , wherein the storage device stores data in a log structure, wherein the physical address corresponds to an append point of the log structure.

7 . The method of claim 1 , wherein the index comprises a table configured to track a location and a size of object data on the storage device, wherein the object data corresponds to the object identifier.

8 . The method of claim 1 , wherein the physical address comprises an arbitrary granularity associated with the object corresponding to the object identifier.

9 . The method of claim 1 , further comprising performing garbage collection according to a log structure of the storage device by:

reading data from a group of physical addresses on the storage device, wherein the data corresponds to live objects comprising valid data stored on the storage device;

grouping the data for the live objects together; and

writing the grouped data back to the storage device.

10 . The method of claim 1 , further comprising performing garbage collection by remapping data stored at a first physical address on the storage device to a second physical address on the storage device.

11 . The method of claim 10 , wherein the storage device is configured to create objects, destroy objects, read objects, and write objects on the storage device.

12 . The method of claim 1 , wherein the object identifier comprises a virtual storage address.

13 . A non-volatile memory device, comprising:

a plurality of memory elements configured to store data, wherein the memory elements comprise corresponding physical addresses;

a hardware device manager configured to:

receive an object operation comprising an identifier corresponding to an object stored on the non-volatile memory device; and

performing the object operation directly on the non-volatile memory device by:

writing object data to one or more physical addresses on the non-volatile memory device; and

mapping, in an index, an address for the identifier corresponding to the object directly to the one or more physical addresses on the non-volatile memory device.

14 . The device of claim 13 , wherein the one or more physical addresses correlate directly to the identifier in an absence of a block-based translation layer for the non-volatile memory device.

15 . The device of claim 13 , wherein the index comprises a table configured to track a location and a size of object data on the non-volatile memory device, wherein the object data corresponds to the identifier.

16 . The device of claim 13 , wherein the one or more physical addresses comprise an arbitrary granularity associated with the object.

17 . The device of claim 13 , wherein the hardware device manager is further configured to perform garbage collection according to a log structure of the non-volatile memory device by:

reading data from a group of physical addresses on the non-volatile memory device, wherein the data corresponds to live objects comprising valid data stored on the non-volatile memory device;

compacting the data for the live objects together; and

writing the compacted data back to the non-volatile memory device.

18 . The device of claim 13 , wherein the hardware device manager is further configured to perform garbage collection by remapping data stored at a first physical address on the non-volatile memory device to a second physical address on the non-volatile memory device.

19 . The device of claim 13 , wherein the hardware device manager is further configured to provide native support for object storage, wherein the hardware device manager is configured to create objects, destroy objects, read objects, and write objects stored on the non-volatile memory device.

20 . The device of claim 19 , wherein the object operation for object data stored at a location on the non-volatile memory device comprises a place holder argument for a pointer to at least one physical address of the location, wherein the pointer is output based on a size of the object data.

21 . A system, comprising:

a driver interface configured to communicate with a recording device interface of a non-volatile recording device, wherein the driver interface is configured to:

submit an object operation associated with an application, wherein the object operation is associated with an object identifier;

performing a read operation directly on the non-volatile recording device by identifying an address for the object identifier from an index, wherein the address is mapped directly to one or more physical addresses on the non-volatile recording device, wherein the one or more physical addresses correspond to object data for the object identifier.

22 . The system of claim 21 , wherein the one or more physical addresses are mapped directly to the object identifier in an absence of a block-based translation layer for the storage device.

23 . The system of claim 21 , wherein the index comprises a table configured to store a size and the one or more physical addresses of the object data on the storage device.

Assignments (7)
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038809/0672 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2016
From: LONGITUDE ENTERPRISE FLASH SARL
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 038324/0628 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 034838 FRAME: 0091. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Apr 30, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 035603/0748 →
CORRECTIVE ASSIGNMENT TO REMOVE APPL. NO'S 13/925,410 AND 61/663,464 PREVIOUSLY RECORDED AT REEL: 035168 FRAME: 0366. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 30, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035603/0582 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2015
From: FUSION-IO, LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 035168/0366 →
CHANGE OF NAME Recorded Jan 28, 2015
From: FUSION-IO, INC
To: FUSION-IO, LLC
Reel/Frame 034838/0091 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2013
From: BADAM, ANIRUDH; NELLANS, DAVID; WIPFEL, ROBERT
To: FUSION-IO, INC.
Reel/Frame 030968/0484 →