IP Library Granted Patent US 10,048,962
Granted Patent B2
US 10,048,962 · App. 15/426,886 · Granted Aug 14, 2018

Apparatus, system, and method for non-volatile data storage and retrieval

Inventors: Mike Hossein Amidi (Lake Forest, CA); Hossein Hashemi (Lagunal Niguel, CA); Douglas Lane Finke (Orange, CA)
Assignee: XITORE, INC.
G06F9/30G06F3/061G06F3/0605G06F3/0619G06F3/0635G06F3/0655G06F3/0659G06F3/0661G06F3/0673G06F3/0679G06F3/0685G06F3/0688G06F11/10G06F11/1004G06F12/0223G06F12/06G06F12/0638G06F12/0802G06F12/0888G06F12/10G11C29/52G06F2206/1014G06F2212/152G06F2212/261G06F2212/401G06F2212/403G11C8/06G11C2029/0411
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,048,962
App. No.
15/426,886
Granted
Aug 14, 2018
Kind
B2
Abstract

A computer memory device and a method of storing data are provided. The computer memory device includes a parallel memory interface configured to be operatively coupled to a system memory controller, to receive data and commands including logical addresses from the system memory controller, and to transmit data to the system memory controller. The parallel memory interface is configured to respond to the commands from the storage device driver of a computer processing unit. The computer memory device further includes an address translation circuit configured to receive the logical addresses from the parallel memory interface and to translate the received logical addresses to corresponding physical addresses. The computer memory device further includes a non-volatile memory operatively coupled to the parallel memory interface and the address translation circuit. The non-volatile memory is configured to receive the physical addresses and the data and to store the data at memory locations of the non-volatile memory corresponding to the physical addresses.

Claims (40)

1. A method of processing commands, comprising:

receiving a first command from a system memory controller of a computer system, the first command comprising a first read/write identifier, a first logical address, and a first set of data;

recognizing that the first read/write identifier comprises a write command;

translating at least one of the first logical address and a first portion of the first set of data into a first memory selection command to select a first selected memory from at least one of a first memory of a first type and a second memory of a second type;

translating a second portion of the first set of data into a first logical memory address and a first sub-set of data to be written;

translating the first logical memory address into a first physical memory address of the first selected memory; and

storing the first sub-set of data at the first physical memory address of the first selected memory.

2. The method of claim 1 , wherein the first type comprises a volatile memory and the second type comprises a non-volatile memory.

3. The method of claim 1 , wherein the memory selection command selects the selected memory from at least one of the first memory of the first type, the second memory of the second type, and a third memory of a third type.

4. The method of claim 3 , wherein the first type and the second type comprise two different types of non-volatile memory, and the third type comprises a volatile memory.

5. The method of claim 4 , wherein the two different types of non-volatile memory are selected from the group consisting of NAND Flash, PCM, MRAM, ReRAM, Memristor, and 3D Xpoint.

6. The method of claim 3 , wherein the first type and the second type comprise two different types of volatile memory, and the third type comprises a non-volatile memory.

7. The method of claim 6 , wherein the two different types of volatile memory are selected from the group consisting of RAM, SRAM, DRAM, DDR and MRAM.

8. The method of claim 1 , further comprising:

receiving a second command from the system memory controller of the computer system, the second command comprising a second read/write identifier, a second logical address, and a second set of data;

recognizing that the read/write identifier comprises a read command;

translating the second logical address into a second memory selection command to select a second selected memory from at least one of the first memory of the first type and the second memory of the second type;

translating the second set of data into a second logical memory address;

translating the second logical memory address into a second physical memory address of the second selected memory;

reading a set of read data from the second physical memory address of the second selected memory; and

transmitting the set of read data to the system memory controller of the computer system.

9. The method of claim 1 , further comprising:

receiving a second command from the system memory controller of the computer system, the second command comprising a second read/write identifier, a second logical address, and a second set of data;

translating at least one of the second logical address and the second set of data into a command to read a status of a computer memory device;

reading a status of a plurality of states of the computer memory device; and

transmitting the status of the plurality of states of the computer memory device.

10. The method of claim 9 , wherein the plurality of states comprises a plurality of queue states of the computer memory device.

11. The method of claim 10 , wherein the plurality of queue states comprises 128 queues of the computer memory device.

12. The method of claim 1 , further comprising:

receiving a second command from the system memory controller of the computer system, the second command comprising a second read/write identifier, a second logical address, and a second set of data;

translating the second logical address into a command to copy a second set of data from the first memory to the second memory;

translating the first set of data into a second physical memory address of the first memory and a third physical memory address of the second memory; and

copying the second set of data from the second physical memory address of the first memory to the third physical memory address of the second memory.

13. The method of claim 12 , wherein the first memory comprises a data cache and the second memory comprises a storage space.

14. The method of claim 1 , further comprising:

receiving a second command from the system memory controller of the computer system, the second command comprising a second read/write identifier, a second logical address, and a second set of data;

translating the second logical address into a command to copy a second set of data from a first portion of the first memory to a second portion of the first memory;

translating the first set of data into a second physical memory address of the first memory and a third physical memory address of the first memory; and

copying the second set of data from the second physical memory address of the first memory to the third physical memory address of the first memory.

15. The method of claim 14 , wherein the first memory comprises a data cache and the second memory comprises a storage space.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2022
From: XITORE, INC.
To: EXECUTIVE ADVISORY FIRM LLC
Reel/Frame 061165/0609 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2017
From: AMIDI, MIKE HOSSEIN; HASHEMI, HOSSEIN; FINKE, DOUGLAS LANE
To: XITORE, INC.
Reel/Frame 041202/0876 →
Continuity (4)
Continuation In Part 15144653 · May 2, 2016
Division 14559776 · Dec 3, 2014
Provisional Application 61983944 · Apr 24, 2014
Related Publication 20170147213A1 · May 25, 2017
Cited By (1)
US 12,562,225