IP Library Granted Patent US 10,235,103
Granted Patent B2
US 10,235,103 · App. 15/717,762 · Granted Mar 19, 2019

Apparatus, system, and method of byte addressable and block addressable storage and retrival of data to and from non-volatile storage memory

Inventors: Mike Hossein Amidi (Lake Forest, CA); Fariborz Frankie Roohparvar (Monte Sereno, CA)
Assignee: XITORE, INC.
G06F3/068G06F3/0604G06F3/0605G06F3/0619G06F3/0635G06F3/0655G06F3/0659G06F3/0661G06F3/0673G06F3/0679G06F9/30G06F11/10G06F11/1004G06F11/1068G06F12/0223G06F12/0246G06F12/06G06F12/0638G06F12/0802G06F12/0888G06F12/10G06F13/00G11C16/26G11C29/52G06F2206/1014G06F2212/152G06F2212/205G06F2212/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,235,103
App. No.
15/717,762
Granted
Mar 19, 2019
Kind
B2
Abstract

A hybrid memory system provides rapid, persistent byte-addressable and block-addressable memory access to a host computer system by providing direct access to a both a volatile byte-addressable memory and a volatile block-addressable memory via the same parallel memory interface. The hybrid memory system also has at least a non-volatile block-addressable memory that allows the system to persist data even through a power-loss state. The hybrid memory system can copy and move data between any of the memories using local memory controllers to free up host system resources for other tasks.

Claims (50)

1. A hybrid memory apparatus, comprising:

a volatile memory logically divided into a volatile byte-addressable memory and a volatile block-addressable memory;

a non-volatile block-addressable memory;

a host parallel memory interface that receives commands from a host system bus to exchange data between each of:

(a) the host system bus and the volatile byte-addressable memory,

(b) the host system bus and the volatile block-addressable memory,

(c) the volatile byte-addressable memory and the volatile block-addressable memory, and

(d) the volatile block-addressable memory and the non-volatile block-addressable memory; and

a traffic controller that manages data traffic as a function of a host address received by the host parallel memory interface.

2. The hybrid memory apparatus of claim 1 , wherein the host parallel memory interface routes the host address to the traffic controller when the host address refers to a byte-addressable address and routes the host address to an address translation circuit when the host address refers to a block-addressable address.

3. The hybrid memory apparatus of claim 2 , wherein the traffic controller routes the host address to the volatile byte-addressable memory as a physical byte-addressable address when the host address refers to a byte-addressable address.

4. The hybrid memory apparatus of claim 2 , wherein the address translation circuit routes a translated host address to a local memory controller when the host address refers to a block-addressable address, and wherein the local memory controller routes the translated host address to the volatile block-addressable memory as a physical block-addressable address when the host address refers to a block-addressable address.

5. The hybrid memory apparatus of claim 1 , wherein the traffic controller manages incoming commands and controls forwarded from the host parallel memory interface.

6. The hybrid memory apparatus of claim 5 , wherein the incoming commands identify a read access or a write access command.

7. The hybrid memory apparatus of claim 5 , wherein the controls identify the memory location that the host logical access refers to.

8. The hybrid memory apparatus of claim 1 , wherein the traffic controller routes data between the volatile byte-addressable memory and the block-addressable memory without traveling through the host system interface.

9. The hybrid memory apparatus of claim 8 , further comprising a volatile memory controller that controls data traffic with the volatile block-addressable memory.

10. The hybrid memory apparatus of claim 1 , wherein the traffic controller routes data between the volatile block-addressable memory and the non-volatile block addressable memory without traveling through the host system interface.

11. The hybrid memory apparatus of claim 10 , further comprising a volatile memory controller that controls data traffic with the volatile block-addressable.

12. The hybrid memory apparatus of claim 11 , further comprising a non-volatile memory controller that controls data traffic with the non-volatile block-addressable memory.

13. The hybrid memory apparatus of claim 1 , wherein the traffic controller is programmed to simultaneously write a first set of data to the volatile byte-addressable memory and read a second set of data from the block-addressable memory array.

14. The hybrid memory apparatus of claim 1 , wherein the host system interface presents the volatile byte-addressable memory as a host accessible volatile memory block to the host system bus and presents the volatile block-addressable memory as a non-volatile storage memory to the host system bus.

15. The hybrid memory apparatus of claim 14 , wherein the traffic controller persists all data saved to the volatile block-addressable memory to the non-volatile block-addressable memory.

16. A method of providing a hybrid byte-addressable/block-addressable memory, comprising:

providing a volatile memory logically divided into a volatile byte-addressable memory and a volatile block-addressable memory;

providing a non-volatile block-addressable memory;

receiving commands from a host system bus via a host parallel memory interface to exchange data between each of:

(e) the host system bus and the volatile byte-addressable memory,

(f) the host system bus and the volatile block-addressable memory,

(g) the volatile byte-addressable memory and the volatile block-addressable memory, and

(a) the volatile block-addressable memory and the non-volatile block-addressable memory; and

locally managing both incoming and outgoing host data traffic as a function of a host address received through the host parallel memory interface.

17. The method of claim 16 , further comprising:

presenting the volatile byte-addressable memory to a host operating system as at least one of a DRAM array and an MRAM array;

presenting the volatile block-addressable memory to the host operating system as at least one of an SSD cache and an SSD buffer; and

presenting the non-volatile block-addressable memory to the host operating system as at least one of an SSD array and a Storage Class Memory array.

18. A memory system, comprising;

a volatile memory logically divided into a volatile byte-addressable memory and a volatile block-addressable memory;

a non-volatile block-addressable memory;

a host parallel memory interface that receives commands from a host system bus to exchange data between each of:

(a) the host system bus and the volatile byte-addressable memory,

(b) the host system bus and the volatile block-addressable memory,

(c) the volatile byte-addressable memory and the volatile block-addressable memory, and

(d) the volatile block-addressable memory and the non-volatile block-addressable memory; and

a traffic controller that manages data traffic as a function of a host address received by the host parallel memory interface; and

a host computer system comprising a storage device driver programmed to communicate commands to the host parallel memory interface, wherein the hybrid memory apparatus is directly coupled to a motherboard of the host computer system.

19. The memory system of claim 18 , wherein the storage device driver is further programmed to:

present the volatile byte-addressable memory to applications of the host computer system as at least one of a DRAM array and a MRAM array;

present the volatile block-addressable memory to applications of the host computer system as at least one of an SSD cache and an SSD buffer; and

present the non-volatile block-addressable memory to applications of the host computer system as at least one of an SSD array and a Storage Class Memory.

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 Oct 3, 2017
From: AMIDI, MIKE HOSSEIN; ROOHPARVAR, FARIBORZ FRANKIE
To: XITORE, INC.
Reel/Frame 043770/0409 →
Continuity (6)
Continuation In Part 15426886 · Feb 7, 2017
Continuation In Part 15144653 · May 2, 2016
Division 14559776 · Dec 3, 2014
Provisional Application 62400559 · Sep 27, 2016
Provisional Application 61983944 · Apr 24, 2014
Related Publication 20180018171A1 · Jan 18, 2018