IP Library Granted Patent US 7,631,163
Granted Patent B2
US 7,631,163 · App. 11/356,897 · Granted Dec 8, 2009

Fast virtual to physical memory mapping

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 7,631,163
App. No.
11/356,897
Granted
Dec 8, 2009
Kind
B2
Abstract

A system and method for managing memory is disclosed. The system includes a computer memory array and a memory management unit accessible to the memory array. The memory management unit includes a plurality of parallel comparators. The comparators receive a virtual memory address and perform a comparison of the virtual memory address to a plurality of predetermined addresses. The memory management unit also includes logic responsive to outputs of each of the comparators to determine a physical memory address of an element within the memory array.

Claims (44)

1. A memory device comprising:

a memory array; and

a memory management unit accessible to the memory array, the memory management unit including:

a plurality of parallel comparators to receive a portion of a virtual memory address, each comparator to perform a comparison of the portion of the virtual memory address to a portion of a predetermined address of a plurality of predetermined addresses, wherein the predetermined address for each comparator is stored in hardware in a plurality of logic gates with fixed inputs; and

logic responsive to outputs of each of the plurality of parallel comparators to determine a physical memory address of the memory array associated with the virtual memory address;

wherein the portion of the virtual memory address includes a middle portion and an upper portion, wherein a bus truncates the upper portion of the virtual address and each of the plurality of parallel comparators receive the middle portion and the truncated upper portion of the virtual address.

2. The memory device of claim 1 , wherein the responsive logic includes a multiplexer, and wherein at least two of the plurality of parallel comparators receive a common physical predetermined address.

3. The memory device of claim 1 , wherein an address space of virtual memory addresses comparable by the plurality of comparators is greater than a physical address space of the memory array.

4. The memory device of claim 3 , wherein the address space of the virtual memory addresses comparable by the plurality of comparators is more than ten times greater than the physical address space of the memory array.

5. The memory device of claim 1 , wherein the responsive logic sends a fault indication when the portion of the virtual memory address does not correspond to any one of the plurality of predetermined addresses.

6. The method of claim 1 , wherein the predetermined address is a physical address.

7. The method of claim 1 , wherein the memory array stores a frequently-used function of a software program.

8. The method claim 7 , wherein the frequently-used function is a music playback function.

9. A memory management unit, comprising:

a plurality of parallel comparators to receive a portion of a virtual memory address, each comparator to perform a comparison of the portion of the virtual memory address to a portion of a predetermined physical address of a plurality of predetermined physical addresses of a memory, wherein the predetermined physical address for each comparator is stored in a plurality of logic gates with fixed inputs; and

logic responsive to outputs of each of the plurality of parallel comparators to determine a physical memory address associated with the virtual memory address;

wherein the portion of the virtual memory address includes a middle portion and an upper portion, wherein a bus truncates the upper portion of the virtual memory address and each of the plurality of parallel comparators receive the middle portion and the truncated upper portion of the virtual address.

10. The memory management unit of claim 9 , further comprising:

a fault output responsive to the responsive logic, wherein the responsive logic asserts a signal at the fault output when the portion of the virtual memory address does not correspond to any of the predetermined physical addresses.

11. The memory management unit of claim 9 , wherein the portion of the virtual memory address is received from a direct memory access (DMA) device.

12. The memory management unit of claim 9 , wherein the memory management unit and a memory array are located together on an integrated circuit.

13. The memory management unit of claim 9 , wherein the logic includes a multiplexer.

14. The memory management unit of claim 9 , wherein the portion of the virtual memory address is received from a central processing unit (CPU).

15. A memory, comprising:

a plurality of addressable memory locations, wherein each memory location corresponds to a physical address;

an input to receive a physical address request corresponding to one of a physical address of one of the plurality of addressable memory locations; and

an output to provide data to a memory bus;

wherein the physical address request is received from a memory management unit that includes:

a bus configured to receive a portion of a virtual memory address;

a plurality of parallel comparators to receive the portion of the virtual memory address, each comparator to concurrently perform a comparison of the portion of the virtual memory address to a predetermined physical address associated with the comparator; and

logic responsive to outputs of each of the plurality of parallel comparators to determine a physical memory address of an element within a memory array; and

wherein the portion of the virtual memory address includes a middle portion and an upper portion, and wherein the bus is configured to receive the middle portion and to truncate the upper portion of the virtual address.

16. The method of claim 15 , wherein a lower portion of the virtual memory address is identical to a lower portion of an associated physical address.

17. The method of claim 16 , further comprising: providing the lower portion of the virtual memory address to the computer memory array.

18. A method of managing a memory device, the method comprising:

receiving a virtual address from a computer device at a memory management unit coupled to the memory device;

concurrently comparing a portion of the virtual address using a plurality of different comparators, each of the plurality of different comparators associated with a physical address of the memory device, wherein the virtual address includes a middle portion and an upper portion, and wherein the upper portion of the virtual memory address is truncated by a bus at the memory management unit;

determining a physical address to access the memory device after performing the concurrent comparison; and

wherein at least two of the different comparators are associated with a common physical address.

19. The method of claim 18 , wherein the memory management unit is coupled to the memory device.

20. The method of claim 19 , wherein the memory management unit is embedded within the memory device.

21. The method of claim 18 , wherein concurrently comparing at least a portion of the virtual address includes comparing a the middle portion of the virtual address.

22. The method of claim 18 , wherein the computer device is a direct memory access (DMA) device.

23. The method of claim 18 , wherein a lower portion of the virtual memory address is identical to a lower portion of a predetermined physical address associated with the virtual memory address.

Assignments (21)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CHANGE OF NAME Recorded Aug 31, 2017
From: SIGMATEL, INC.
To: SIGMATEL, LLC
Reel/Frame 043735/0306 →
MERGER Recorded Jul 26, 2017
From: SIGMATEL, LLC
To: NXP USA, INC.
Reel/Frame 043328/0351 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 037354 FRAME: 0773. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT RELEASE. Recorded Aug 15, 2016
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, LLC
Reel/Frame 039723/0777 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037354/0773 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037354/0734 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: SIGMATEL, INC.
Reel/Frame 037355/0838 →
SECURITY AGREEMENT Recorded Nov 12, 2013
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031626/0218 →
SECURITY AGREEMENT Recorded Jun 17, 2013
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030628/0636 →
SECURITY AGREEMENT Recorded May 10, 2010
From: SIGMATEL, LLC
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 024358/0439 →
SECURITY AGREEMENT Recorded Mar 16, 2010
From: SIGMATEL, LLC
To: CITIBANK, N.A.
Reel/Frame 024079/0406 →
SECURITY AGREEMENT Recorded Jul 9, 2008
From: SIGMATEL, INC.
To: CITIBANK, N.A.
Reel/Frame 021212/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2006
From: SCHULTZ, RUSSELL ALVIN
To: SIGMATEL, INC.
Reel/Frame 017581/0179 →