Unified object interface for memory and storage system

US2016170649A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016170649-A1
Application numberUS-201514733895-A
CountryUS
Kind codeA1
Filing dateJun 8, 2015
Priority dateDec 16, 2014
Publication dateJun 16, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A data structure and a mechanism to manage storage of objects is disclosed. The data structure can be used to manage storage of objects on any storage device, whether in memory or some other storage device. Given an object ID (OID) for an object, the system can identify a tuple that includes a device ID and an address. The device ID specifies the device storing the object, and the address specifies the address on the device where the object is stored. The application can then access the object using the device ID and the address.

First claim

Opening claim text (preview).

What is claimed is: 1 . A memory management device, comprising: a memory ( 330 ); and a data structure ( 105 , 410 ) stored in the memory ( 330 ), the data structure ( 105 , 410 ) including: an identifier ( 110 , 115 , 120 ) of an object; and a tuple ( 125 , 130 , 135 ) including a device identifier and a location on the device. 2 . A memory management device according to claim 1 , wherein the tuple ( 125 , 130 , 135 ) further includes metadata ( 205 ). 3 . A memory management device according to claim 1 , wherein: the identifier ( 110 , 115 , 120 ) of the object includes a hash ( 425 , 435 , 440 ); and the memory management device further comprises a second data structure ( 405 ), the second data structure ( 405 ) including: a second identifier ( 110 , 115 , 120 ) of the object; and the hash ( 425 , 435 , 440 ). 4 . A system, comprising: a computer ( 305 ); a first storage device ( 330 , 335 , 340 ) coupled to the computer ( 305 ); a second storage device ( 330 , 335 , 340 ) coupled to the computer ( 305 ); and a data structure ( 105 , 410 ) stored in a storage coupled to the computer ( 305 ), the data structure ( 105 , 410 ) including: an identifier ( 110 , 115 , 120 ) of an object; and a tuple ( 125 , 130 , 135 ) including a device identifier for one of the first storage device ( 330 , 335 , 340 ) and the second storage device ( 330 , 335 , 340 ) and a location on the device. 5 . A system according to claim 4 , wherein the tuple ( 125 , 130 , 135 ) further includes metadata ( 205 ). 6 . A system according to claim 4 , wherein: the identifier ( 110 , 115 , 120 ) of the object includes a hash ( 425 , 435 , 440 ); and the system further comprises a second data structure ( 405 ) stored in the storage coupled to the computer ( 305 ), the second data structure ( 405 ) including: a second identifier ( 110 , 115 , 120 ) of the object; and the hash ( 425 , 435 , 440 ). 7 . A system according to claim 4 , wherein: the computer ( 305 ) includes a processor that can execute a kernel; and the kernel is operative to allocate memory ( 330 ) for an object from the first storage and the second storage. 8 . A system according to claim 7 , wherein: the tuple ( 125 , 130 , 135 ) further includes an access counter ( 230 ); and the kernel is further operative to migrate the object from the first storage to the second storage if the access counter ( 230 ) crosses a threshold. 9 . A system according to claim 7 , wherein: the first storage includes a secure area; and the kernel is operative to allocate storage from the first storage in the secure area if the object is considered secure. 10 . A method, comprising: receiving ( 530 ) at a processor a request to access data for an object, the request including an identifier ( 110 , 115 , 120 ) of the object; using an object table, translating ( 535 ) the identifier ( 110 , 115 , 120 ) of the object to a tuple ( 125 , 130 , 135 ), the tuple ( 125 , 130 , 135 ) including an identifier ( 110 , 115 , 120 ) of a device and a location on the device; and accessing ( 540 ) the data using the identifier ( 110 , 115 , 120 ) of the device and the location on the device. 11 . A method according to claim 10 , the method further comprising: receiving ( 505 ) a second request to allocate memory ( 330 ) for the object; requesting ( 515 ) a kernel to allocate the memory ( 330 ) for the object; receiving ( 520 ) from the kernel the identifier ( 110 , 115 , 120 ) of the object; and adding ( 605 ) an entry to the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ). 12 . A method according to claim 11 , wherein: the method further comprises: hashing ( 610 ) the data to generate a hash ( 425 , 435 , 440 ); and adding ( 615 ) an entry to a hash table ( 405 ) associating the identifier ( 420 , 445 , 450 ) of the object with the hash ( 425 , 435 , 440 ); and adding ( 605 ) an entry to the object table includes adding ( 620 ) the entry to the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ), the tuple ( 125 , 130 , 135 ) further including the hash ( 425 , 435 , 440 ). 13 . A method according to claim 12 , further comprising: checking ( 510 ) the object table to see if the object table already includes the hash ( 425 , 435 , 440 ); and if the object table already includes the hash ( 425 , 435 , 440 ), not requesting ( 575 ) the kernel to allocate the memory ( 330 ) for the object. 14 . A method according to claim 11 , wherein: receiving ( 505 ) a second request to allocate memory ( 330 ) for the object includes receiving ( 705 ) the second request to allocate the memory ( 330 ) for the object, the second request including metadata ( 205 ) pertinent to the object; and requesting ( 515 ) a kernel to allocate the memory ( 330 ) for the object includes requesting ( 710 ) the kernel to allocate the memory ( 330 ) for the object according to the metadata ( 205 ). 15 . A method according to claim 14 , wherein adding ( 605 ) an entry to the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ) includes adding ( 605 ) the entry to the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ), the tuple ( 125 , 130 , 135 ) including the metadata ( 205 ). 16 . A method according to claim 11 , wherein: receiving ( 505 ) a second request to allocate memory ( 330 ) for the object includes receiving ( 505 ) the second request to allocate the memory ( 330 ) for the object, the second request specifying that the object is secure ( 220 ); requesting ( 515 ) a kernel to allocate the memory ( 330 ) for the object includes requesting ( 515 ) the kernel to allocate the memory ( 330 ) for the object in a secure location on the device; and adding ( 605 ) an entry to the object table includes adding ( 605 ) the entry to the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ), the tuple ( 125 , 130 , 135 ) further including an indicator that the object is secure. 17 . A method according to claim 16 , wherein: receiving ( 505 ) the second request to allocate memory ( 330 ) for the object includes receiving ( 505 ) the second request to allocate the memory ( 330 ) for the object, the second request specifying that the object is secure and an indicator of a security process ( 220 ); and requesting ( 515 ) a kernel to allocate the memory ( 330 ) for the object includes requesting ( 515 ) the kernel to allocate the memory ( 330 ) for the object in a secure location on the device using the security process ( 220 ). 18 . A method according to claim 10 , the method further comprising: receiving ( 560 ) a third request to de-allocate memory ( 330 ) for the object; requesting ( 565 ) a kernel to de-allocate the memory ( 330 ) for the object; and removing ( 570 ) an entry from the object table associating the identifier ( 110 , 115 , 120 ) of the object with the tuple ( 125 , 130 , 135 ). 19 . A method according to claim 10 , wherein: translating ( 535 ) the identifier ( 110 , 115 , 120 ) of the object to a tuple ( 125 , 130 , 135 ) includes translating ( 535 ) the identifier ( 110 , 115 , 120 ) of the object to the tuple ( 125 , 130 , 135 ), the tuple ( 125 , 130 , 135 ) i

Assignees

Inventors

Classifications

  • Saving storage space on storage systems · CPC title

  • in an object-oriented system · CPC title

  • Non-volatile semiconductor memory arrays · CPC title

  • De-duplication techniques · CPC title

  • G06F3/0679Primary

    Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016170649A1 cover?
A data structure and a mechanism to manage storage of objects is disclosed. The data structure can be used to manage storage of objects on any storage device, whether in memory or some other storage device. Given an object ID (OID) for an object, the system can identify a tuple that includes a device ID and an address. The device ID specifies the device storing the object, and the address speci…
Who is the assignee on this patent?
Samsung Electronics Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F11/0718. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jun 16 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).