IP Library Granted Patent US 9,880,747
Granted Patent B2
US 9,880,747 · App. 15/629,682 · Granted Jan 30, 2018

Apparatus, system, and method of logical address translation for non-volatile storage memory

Inventor: Mike Hossein Amidi (Lake Forest, CA)
Assignee: XITORE, INC.
G06F3/061G06F3/0608G06F3/0631G06F3/0688G06F12/00
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 9,880,747
App. No.
15/629,682
Granted
Jan 30, 2018
Kind
B2
Abstract

A fast and lean way of performing logical-to-physical address translation is presented. A logical address is divided into a most significant bits portion and a least significant bits portion. Instead of using the entire logical address to locate an entry in an address translation table, only the most significant bits portion of the logical address is used, which substantially reduces the size of the address translation table. The entry includes a most significant bits portion of a physical volatile memory address and a most significant bits portion of a physical non-volatile memory address. The actual physical volatile memory address and the actual physical non-volatile memory address can be derived by combining the most significant bits portions of the addresses stored in the address translation table entry with the least significant bits portion of the logical address.

Claims (43)

1. A method of translating a logical address to a physical address within a non-volatile storage system comprising an array of non-volatile memories and an internal volatile memory, the method comprising:

dividing the logical address into a most significant bits portion and a least significant bits portion;

transmitting the most significant bits portion to multiple address translation tables;

retrieving a set of entries comprising an entry from each of the multiple address translation tables, wherein each of the set of entries comprises:

(a) a set of most significant bits of a non-volatile physical address,

(b) a set of most significant bits of a volatile physical address,

(c) flags comprising a non-volatile memory flag and a volatile memory flag;

transmitting the flags from the set of entries to a select block to select at most one set of the most significant bits of the non-volatile physical address and at most one set of the most significant bits of the volatile physical address; and

merging the least significant bits portion with at least one of the at most one set of the most significant bits of the non-volatile physical address and at most one set of the most significant bits of the volatile physical address.

2. The method of claim 1 , further comprising receiving the logical address from a host system via a bridge.

3. The method of claim 1 , further comprising retrieving content from a location within a non-volatile memory according to a derived non-volatile physical address, wherein merging the least significant bits portion comprises deriving the derived non-volatile physical address.

4. The method of claim 1 , further comprising retrieving content from a location within a volatile memory according to a derived volatile physical address, wherein merging the least significant bits portion comprises deriving the derived volatile physical address.

5. The method of claim 1 further comprising:

writing content to a location within a volatile memory according to a derived volatile physical address, wherein merging the least significant bits portion comprises deriving the derived volatile physical address, and

updating a volatile memory flag of the set of entries.

6. The method of claim 1 , further comprising:

writing content to a location within a non-volatile memory according to a derived non-volatile physical address, wherein merging the least significant bits portion comprises deriving the derived non-volatile physical address, and

updating a non-volatile memory flag of the set of entries.

7. A storage system communicatively coupled with a host system, the storage system comprising:

an array of non-volatile memories;

an internal volatile memory;

multiple address translation tables each having multiple entries, wherein content in each entry comprises a non-volatile physical address portion, a volatile physical address portion, a valid flag, and a cache valid flag; and

an internal processing unit communicatively coupled with the host system, and configured to:

receive, from the host system, a command comprises a logical address,

divide the logical address into a most significant bits portion and a least significant bits portion,

transmit the most significant bits portion to multiple address translation tables;

retrieving a set of entries comprising an entry from each of the multiple address translation tables, wherein each of the set of entries comprises:

(a) a set of most significant bits of a non-volatile physical address,

(b) a set of most significant bits of a volatile physical address, and

(c) flags comprising a non-volatile memory flag and a volatile memory flag;

transmit the flags from the set of entries to a select block to select at most one set of the most significant bits of the non-volatile physical address and at most one set of the most significant bits of the volatile physical address; and

merge the least significant bits portion with at least one of the at most one set of the most significant bits of the non-volatile physical address and at most one set of the most significant bits of the volatile physical address.

8. The storage system of claim 7 , further comprising a host system north bridge that transmits the logical address to the internal processing unit.

9. The storage system of claim 8 , further comprising a host system south bridge that transmits the logical address to the internal processing unit.

10. The storage system of claim 7 , wherein the internal processing unit is further configured to retrieve content from a location within a non-volatile memory according to a derived non-volatile physical address, wherein merging the least significant bits portion comprises deriving the derived non-volatile physical address.

11. The storage system of claim 7 , wherein the internal processing unit is further configured to retrieve content from a location within a volatile memory according to a derived volatile physical address, wherein merging the least significant bits portion comprises deriving the derived volatile physical address.

12. The storage system of claim 7 wherein the internal processing unit is further configured to:

write content to a location within a volatile memory according to a derived volatile physical address, wherein merging the least significant bits portion comprises deriving the derived volatile physical address, and

update a volatile memory flag of the set of entries.

13. The storage system of claim 7 , wherein the internal processing unit is further configured to:

write content to a location within a non-volatile memory according to a derived non-volatile physical address, wherein merging the least significant bits portion comprises deriving the derived non-volatile physical address, and

update a non-volatile memory flag of the set of entries.

14. The storage system of claim 7 , wherein the internal processing unit is further configured to use a cache translator block and a merger block to merge the least significant bits portion.

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 Jul 31, 2017
From: AMIDI, MIKE HOSSEIN
To: XITORE, INC.
Reel/Frame 043147/0732 →
Continuity (3)
Continuation 15202408 · Jul 5, 2016
Provisional Application 62188602 · Jul 3, 2015
Related Publication 20170285947A1 · Oct 5, 2017