IP Library Patent Application 15000044
Patent Application
App. No. 15/000,044

USAGE OF SSD NVDRAM BY UPPER SOFTWARE LAYERS

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.
15/000,044
Abstract

An apparatus includes a storage device and a processor. The storage device includes a non-volatile storage including non-volatile memory media, and a Non-Volatile Dynamic Random Access Memory (NVDRAM). The processor is configured to run a software application that supports at least a first command for storing first information in the non-volatile storage of the storage device, and a second command for storing second information in the NVDRAM of the storage device.

Claims (37)

1 . Apparatus, comprising:

a storage device, comprising:

non-volatile storage, comprising non-volatile memory media; and

a Non-Volatile Dynamic Random Access Memory (NVDRAM); and

a processor, which is configured to run a software application that supports at least a first command for storing first information in the non-volatile storage of the storage device, and a second command for storing second information in the NVDRAM of the storage device.

2 . The apparatus according to claim 1 , wherein the NVDRAM comprises a volatile Dynamic Random Access Memory (DRAM) and circuitry for protecting content of the DRAM from power interruption.

3 . The apparatus according to claim 1 , wherein the processor further supports a third command for committing at least part of the second information from the NVDRAM to the non-volatile storage.

4 . The apparatus according to claim 1 , wherein the storage device comprises a controller, which is configured to communicate with the processor and which recognizes and supports the first and second commands.

5 . The apparatus according to claim 1 , wherein the storage device comprises a Solid State Drive (SSD), wherein the non-volatile memory media comprises Flash memory.

6 . The apparatus according to claim 1 , wherein the software application comprises a File System (FS).

7 . The apparatus according to claim 1 , wherein the processor, using the software application, is configured to format data for storage in memory blocks having a fixed size, to store the memory blocks in the non-volatile storage using the first command, and to accumulate remainders of the data that exceed an integer number of the memory blocks in the NVDRAM using the second command.

8 . The apparatus according to claim 7 , wherein the processor, using the software application, is configured to commit the accumulated remainders of the data to the non-volatile storage when a size of the accumulated remainders exceeds the fixed size of the memory blocks.

9 . The apparatus according to claim 1 , wherein the processor, using the software application, is configured to store data in the non-volatile storage using the first command, and to accumulate metadata relating to the data in the NVDRAM using the second command.

10 . The apparatus according to claim 9 , wherein the processor, using the software application, is configured to commit the accumulated metadata to the non-volatile storage when a size of the accumulated metadata exceeds a predefined size.

11 . The apparatus according to claim 9 , wherein the metadata accumulated in the NVDRAM comprises journaling information.

12 . The apparatus according to claim 9 , wherein the data stored in the non-volatile storage comprises a file, and wherein the metadata accumulated in the NVDRAM comprises at least one of a first indication of a most-recent time the file was accessed and a second indication of the most-recent time the file was modified.

13 . The apparatus according to claim 1 , wherein the processor, using the software application, is configured to initially store a data item in the NVDRAM using the second command, to check whether at least a predefined number of copies of the data item already exists in the non-volatile storage, and, if the predefined number of copies does not exist, to commit the data item from the NVDRAM to the non-volatile storage.

14 . The apparatus according to claim 13 , wherein the processor, using the software application, is configured to discard the data item from the NVDRAM if the predefined number of copies exists in the non-volatile storage.

15 . A method, comprising:

running a software application on a processor, which communicates with a storage device, comprising:

non-volatile storage, comprising non-volatile memory media; and

a Non-Volatile Dynamic Random Access Memory (NVDRAM);

using a first command supported by the software application, storing first information in the non-volatile storage of the storage device;

using a second command supported by the software application, storing second information in the NVDRAM of the storage device; and

committing at least part of the second information from the NVDRAM to the non-volatile storage.

16 . The method according to claim 15 , wherein the NVDRAM comprises a volatile Dynamic Random Access Memory (DRAM) and circuitry for protecting content of the DRAM from power interruption.

17 . The method according to claim 15 , wherein running the software application comprises communicating with a controller of the storage device that recognizes and supports the first and second commands.

18 . The method according to claim 15 , wherein the storage device comprises a Solid State Drive (SSD), wherein the non-volatile memory media comprises Flash memory.

19 . The method according to claim 15 , wherein the software application comprises a File System (FS).

20 . The method according to claim 15 , wherein running the software application comprises formatting data for storage in memory blocks having a fixed size, wherein storing the first information comprises storing the memory blocks in the non-volatile storage using the first command, and wherein storing the second information comprises accumulating remainders of the data that exceed an integer number of the memory blocks in the NVDRAM using the second command.

21 . The method according to claim 20 , wherein committing the second information comprises committing the accumulated remainders of the data to the non-volatile storage when a size of the accumulated remainders exceeds the fixed size of the memory blocks.

22 . The method according to claim 15 , wherein storing the first information comprises storing data in the non-volatile storage using the first command, and wherein storing the second information comprises accumulating metadata relating to the data in the NVDRAM using the second command.

23 . The method according to claim 22 , wherein committing the second information comprises committing the accumulated metadata to the non-volatile storage when a size of the accumulated metadata exceeds a predefined size.

24 . The method according to claim 22 , wherein the metadata accumulated in the NVDRAM comprises journaling information.

25 . The method according to claim 22 , wherein the data stored in the non-volatile storage comprises a file, and wherein the metadata accumulated in the NVDRAM comprises at least one of a first indication of a most-recent time the file was accessed and a second indication of the most-recent time the file was modified.

26 . The method according to claim 15 , wherein storing the second information comprises initially storing a data item in the NVDRAM using the second command, and wherein committing the second information comprises checking whether at least a predefined number of copies of the data item already exists in the non-volatile storage, and, if the predefined number of copies does not exist, committing the data item from the NVDRAM to the non-volatile storage.

27 . The method according to claim 26 , and comprising discarding the data item from the NVDRAM if the predefined number of copies exists in the non-volatile storage.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Oct 8, 2019
From: SILICON VALLEY BANK
To: ELASTIFILE LTD
Reel/Frame 050652/0955 →
SECURITY INTEREST Recorded Jun 8, 2017
From: ELASTIFILE LTD
To: SILICON VALLEY BANK
Reel/Frame 042653/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2016
From: YAFFE, EREZ; FRIM, RENANA; MEIR, AVRAHAM; HOCH, EZRA; COHEN, ALLON; LOTEM, EYAL; FRANK, SHAHAR
To: ELASTIFILE LTD.
Reel/Frame 037527/0673 →