IP Library Granted Patent US 7,555,591
Granted Patent B2
US 7,555,591 · App. 11/118,587 · Granted Jun 30, 2009

Method and system of memory management

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,555,591
App. No.
11/118,587
Granted
Jun 30, 2009
Kind
B2
Abstract

The disclosure is directed to a computational system including a processor, cache memory accessible to the processor, and a memory management unit accessible to the processor. The processor is configured to access a virtual memory space to perform a first task and is configured to access the virtual memory space to perform a second task. The virtual memory space references first and second sets of task instructions associated with the first and second tasks, respectively. The virtual memory space references non-instruction data associated with the first task. The cache memory is configured to store the first set of task instructions and the non-instruction data. The memory management unit is configured to determine the physical memory location of the second set of task instructions. The computational system is configured to not write the first set of task instructions and the non-instruction data to a physical location beyond the cache memory.

Claims (29)

1. A computational system comprising:

a processor configured to access a virtual memory space to perform a first task of a plurality of tasks and configured to access the virtual memory space to perform a second task of the plurality of tasks, the virtual memory space referencing a first set of task instructions associated with the first task and referencing a second set of task instructions associated with the second task, the virtual memory space referencing non-instruction data associated with the first task;

cache memory accessible to the processor, the cache memory configured to store the first set of task instructions and the non-instruction data; and

a memory management unit accessible to the processor, the memory management unit configured to determine a physical memory location of the second set of task instructions, wherein the second set of task instructions is copied to volatile storage or to the cache memory directly from non-volatile storage when the second set of task instructions is accessed such that at least a portion of the first set of task instructions in the cache memory or in the volatile storage are overwritten by the second set of task instructions.

2. The computational system of claim 1 , wherein the cache memory and the processor are located on a common substrate.

3. The computational system of claim 1 , wherein the non-volatile storage is accessible to the processor.

4. The computational system of claim 1 , wherein the non-volatile storage comprises NAND flash memory.

5. The computational system of claim 1 , wherein when the second set of task instructions is copied to the cache memory, a portion of the first set of task instructions stored in the cache memory is overwritten by at least a portion of the second set of task instructions.

6. The computational. system of claim 1 , wherein the first task is selected from the group consisting of a compressed file decoding task, a graphic generation task, and a user interface interaction task.

7. The computational system of claim 1 , wherein the first task comprises a compressed file decoding task associated with execution of an algorithm selected from the group consisting of Movie Picture Experts Group (MPEG), Joint Photographic Experts Group (JPEG), Windows Media Audio (WMA), MPEG1 audio layer 3 (MP3), and Advanced Audio Coding (AAC).

8. The computational system of claim 1 , wherein when the second set of task instructions is copied to the cache memory and a portion of non-instruction data stored in the cache memory is overwritten by a portion of the second set of task instructions.

9. The computational system of claim 1 , wherein the processor is further configured to access the virtual memory space to perform the second task when executing the first set of task instructions.

10. A method of managing memory, the method comprising:

storing a first set of task instructions and first non-instruction data in cache memory, wherein the first set of task instructions and the first non-instruction data are associated with a first task;

accessing a second set of task instructions associated with a second task via a virtual address space, the virtual address space referencing the first set of task instructions, the second set of task instructions, and the first non-instruction data; and

storing the second set of task instructions in the cache memory when the second set of task instructions is accessed, wherein storing the second set of task instructions comprises overwriting a portion of the first set of task instructions stored in the cache memory or a portion of the first non-instruction data stored in the cache memory by copying the second set of task instructions directly from non-volatile storage accessible to the processor to the cache memory.

11. The method of claim 10 , wherein storing the second set of task instructions in the cache memory further comprises overwriting a portion of the first non-instruction data stored in the cache memory with a portion of the second set of task instructions.

12. The method of claim 10 , further comprising storing second. non-instruction data in the cache memory, wherein the second non-instruction data is associated with the second task.

13. The method of claim 12 wherein storing the second non-instruction data in the cache memory further comprises overwriting a portion of the first non-instruction data.

14. The method of claim 10 , further comprising:

storing the first set of task instructions in the cache memory, and overwriting the second set of task instructions stored in the cache memory; and

accessing the first set of task instructions after having accessed the second set of task instructions via the virtual address space.

15. The method of claim 10 further comprising accessing the second set of task instructions when executing the first set of task instructions.

16. A computational system comprising computer implemented instructions executable by a processor to perform a method comprising:

storing a first set of task instructions and first non-instruction data in a cache memory, wherein the first set of task instructions and the first non-instruction data are associated with a first task;

accessing a second set of task instructions associated with a second task via a virtual address space, the virtual address space referencing the first set of task instructions, the second set of task instructions, and the non-instruction data; and

storing the second set of task instructions in the cache memory when the second set of task instructions is accessed, wherein storing comprises writing a read-only version of the second set of task instructions directly from non-volatile storage to the cache memory such that at least a portion of the first set of task instructions in the cache memory are overwritten by the second set of task instructions.

17. The computational system of claim 16 wherein the computational system comprises a portable audio player or a portable video player.

18. The computational system of claim 16 , wherein the first task is selected from the group consisting of a compressed file decoding task, a graphic generation task, and a user interface interaction task.

Assignments (23)
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 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 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: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0823 →
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 037354/0773 →
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 Sep 23, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 023273/0099 →
SECURITY AGREEMENT Recorded Jul 9, 2008
From: SIGMATEL, INC.
To: CITIBANK, N.A.
Reel/Frame 021212/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2005
From: SCHULTZ, RUSSELL ALVIN; MOORE, DAVID A.; HENSON, MATTHEW
To: SIGMATEL, INC.
Reel/Frame 016527/0457 →