Memory manager for multi-media apparatus and method therefor
First Claim
1. A memory manager for use in a multi-media system including a host processor, a system semiconductor memory. a plurality of multimedia data processing units, and a local semiconductor memory, said memory manager comprising:
- a memory mapping controller coupled to the plurality of multimedia data processing units, the system semiconductor memory, and the local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory;
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and a local semiconductor memory; and
means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory, wherein said memory map storage means further includes means for indicating whether data stored in a portion of said system semiconductor memory and the local semiconductor memory is in compressed or decompressed form, wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be stored in an accessed portion of said system semiconductor memory and the local semiconductor memory is to be compressed and compresses data written to the portion of said system semiconductor memory and the local semiconductor memory, and wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be retrieved from an accessed portion of said system semiconductor memory and the local semiconductor memory is compressed and decompresses data read from the portion of said system semiconductor memory and the local semiconductor memory.
4 Assignments
0 Petitions
Accused Products
Abstract
A virtual memory manager for a multi-media engine allows individual media units to operate in their own virtual space in much the same way as a software program operating in virtual mode. The virtual memory controller performs address translation or mapping to the correct physical memory location (in local memory or system memory) and will also convert the data stream to or from a compressed format. In addition, the virtual memory controller provides a unified TLB (translation lookaside buffer) available to all media units. The TLB has four types of pointer entries which are controlled by two bits. The first bit controls whether the TLB entry is a direct map or a pointer to another translation table. the second bit controls whether the TLB entry is stored in a compressed format. The overall concept may allow dynamic load balancing between local media memory and system memory.
-
Citations
21 Claims
-
1. A memory manager for use in a multi-media system including a host processor, a system semiconductor memory. a plurality of multimedia data processing units, and a local semiconductor memory, said memory manager comprising:
-
a memory mapping controller coupled to the plurality of multimedia data processing units, the system semiconductor memory, and the local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory;
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and a local semiconductor memory; and
means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory, wherein said memory map storage means further includes means for indicating whether data stored in a portion of said system semiconductor memory and the local semiconductor memory is in compressed or decompressed form, wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be stored in an accessed portion of said system semiconductor memory and the local semiconductor memory is to be compressed and compresses data written to the portion of said system semiconductor memory and the local semiconductor memory, and wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be retrieved from an accessed portion of said system semiconductor memory and the local semiconductor memory is compressed and decompresses data read from the portion of said system semiconductor memory and the local semiconductor memory. - View Dependent Claims (2, 3, 4)
a data cache, coupled to the memory controller, for caching data frequently accessed by one or more of the plurality of multimedia data processing units.
-
-
5. A memory manager for use in a multi-media system including a host processor, a system semiconductor memory, a plurality of multimedia data processing units, and a local semiconductor memory, said memory manager comprising:
-
a memory mapping controller coupled to the plurality of multimedia data processing units, the system semiconductor memory, and the local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory;
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and a local semiconductor memory, wherein said memory mapping controller mass memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors frequency of access of data in said portions of system semiconductor memory and said portions of local semiconductor memory and dynamically transfers frequently accessed data from system semiconductor memory to local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
6. A memory manager for use in a multi-media system including a host processor, a system semiconductor memory, a plurality of multimedia data processing units, and a local semiconductor memory, said memory manager comprising:
-
a memory mapping controller coupled to the plurality of multimedia data processing units, the system semiconductor memory, and the local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory;
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and a local semiconductor memory, wherein said memory mapping controller mass memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors data transfer bandwidth of the system semiconductor memory and the local semiconductor memory and dynamically transfers frequently accessed data between system semiconductor memory and local semiconductor memory to reduce data transfer bandwidth of the system semiconductor memory and the local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
7. A memory manager for use in a multi-media system including a host processor, a system semiconductor memory, a plurality of multimedia data processing units, and a local semiconductor memory, said memory manager comprising:
-
a memory mapping controller coupled to the plurality of multimedia data processing units, the system semiconductor memory, and the local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory;
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and a local semiconductor memory, wherein said memory mapping controller mass memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors available memory capacity of the system semiconductor memory and the local semiconductor memory and dynamically transfers data between system semiconductor memory and local semiconductor memory to increase available memory capacity of one of the system semiconductor memory and the local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
8. A multi-media apparatus for processing multi-media data, comprising:
-
a plurality of multimedia data processing units, each for processing multi-media data and reading and storing data in memory;
a memory mapping controller coupled to the plurality of multimedia data processing units and to a system semiconductor memory and a local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory; and
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and the local semiconductor memory, wherein said memory manager further comprises;
means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory, wherein said memory map storage means further includes means for indicating whether data stored in a portion of the system semiconductor memory and the local semiconductor memory is in compressed or decompressed form, wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be stored in an accessed portion of the system semiconductor memory and the local semiconductor memory is to be compressed and compresses data written to the portion of the system semiconductor memory and the local semiconductor memory, and wherein said means for compressing and decompressing data stored in the system semiconductor memory and the local semiconductor memory accesses said memory map storage means to determine whether data to be retrieved from an accessed portion of the system semiconductor memory and the local semiconductor memory is compressed and decompresses data read from the portion of the system semiconductor memory and the local semiconductor memory. - View Dependent Claims (9, 10, 11)
a data cache, coupled to the memory controller, for caching data frequently accessed by one or more of the plurality of multimedia data processing units.
-
-
12. A multi-media apparatus for processing multi-media data, comprising:
-
a plurality of multimedia data processing units, each for processing multi-media data and reading and storing data in memory;
a memory mapping controller coupled to the plurality of multimedia data processing units and to a system semiconductor memory and a local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory; and
a memory map storage means, coupled to the memory mapping controller, for storing a memory may translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and the local semiconductor memory, wherein said memory mapping controller maps memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors frequency of access of data in said portions of system semiconductor memory and said portions of local semiconductor memory and dynamically transfers frequently accessed data from system semiconductor memory to local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
13. A multi-media apparatus for processing multi-media data, comprising:
-
a plurality of multimedia data processing units, each for processing multi-media data and reading and storing data in memory;
a memory mapping controller coupled to the plurality of multimedia data processing units and to a system semiconductor memory and a local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and manning memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory; and
a memory map storage means, coupled to the memory mapping controller, for storing a memory may translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and the local semiconductor memory, wherein said memory mapping controller maps memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors data transfer bandwidth of the system semiconductor memory and the local semiconductor memory and dynamically transfers frequently accessed data between system semiconductor memory and local semiconductor memory to reduce data transfer bandwidth of the system semiconductor memory and the local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
14. A multi-media apparatus for processing multi-media data, comprising:
-
a plurality of multimedia data processing units, each for processing multi-media data and reading and storing data in memory;
a memory mapping controller coupled to the plurality of multimedia data processing units and to a system semiconductor memory and a local semiconductor memory, the memory mapping controller receiving memory access requests from the plurality of multimedia data processing units and mapping memory access requests from the plurality of multimedia data processing units to corresponding portions of the system semiconductor memory and the local semiconductor memory; and
a memory map storage means, coupled to the memory mapping controller, for storing a memory map translating memory addresses for memory space for the plurality of multimedia data processing units to physical memory addresses in the system semiconductor memory and the local semiconductor memory, wherein said memory mapping controller maps memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in said memory map storage means, and wherein said memory controller monitors available memory capacity of the system semiconductor memory and the local semiconductor memory and dynamically transfers data between system semiconductor memory and local semiconductor memory to increase available memory capacity of one of the system semiconductor memory and the local semiconductor memory and updates the memory map to indicate new locations for transferred data.
-
-
15. A method for managing memory for a plurality of data processing multimedia data processing units coupled to the system semiconductor memory and the local semiconductor memory, said method comprising the steps of:
-
receiving, in a memory mapping controller coupled to the plurality of multimedia data processing units and to the system semiconductor memory and the local semiconductor memory, memory access requests from the plurality of multimedia data processing units, translating memory addresses for memory space for the plurality of multimedia data processing units to corresponding physical memory addresses in the system semiconductor memory and the local semiconductor memory according to a memory map, and mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory, reading, from the memory map, data indicating whether data stored in a portion of the system semiconductor memory and the local semiconductor memory is in compressed or decompressed form, determining, from the memory map whether data to be stored in an accessed portion of the system semiconductor memory and the local semiconductor memory is to be compressed, and compressing data written to the portion of the system semiconductor memory and the local semiconductor memory if the data is determined to be compresses. - View Dependent Claims (16, 17, 18)
mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in the memory map storage means.
-
-
17. The method of claim 16, wherein the plurality of multimedia data processing units comprise video, audio, and data processing units for processing types of multimedia data.
-
18. The method of claim 15, further comprising the step of:
caching data frequently accessed by one or more of the plurality of multimedia data processing units in a data cache coupled to the memory controller.
-
19. A method for managing memory for a plurality of data processing multimedia data processing units coupled to the system semiconductor memory and the local semiconductor memory, said method comprising the steps of:
-
receiving, in a memory mapping controller coupled to the plurality of multimedia data processing units and to the system semiconductor memory and the local semiconductor memory, memory access requests from the plurality of multimedia data processing units, translating memory addresses for memory space for the plurality of multimedia data processing units to corresponding physical memory addresses in the system semiconductor memory and the local semiconductor memory according to a memory map, mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory, monitoring, in the memory controller, frequency of access of data in the portions of system semiconductor memory and the portions of local semiconductor memory, dynamically transferring frequently accessed data from system semiconductor memory to local semiconductor memory, and updating the memory map to indicate new locations for transferred data, wherein the step of mapping memory access requests comprises the step of;
mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory may stored in the memory map storage means.
-
-
20. A method for managing memory for a plurality of data processing multimedia data processing units coupled to the system semiconductor memory and the local semiconductor memory, said method comprising the steps of:
-
receiving, in a memory mapping controller coupled to the plurality of multimedia data processing units and to the system semiconductor memory and the local semiconductor memory, memory access requests from the plurality of multimedia data processing units, translating memory addresses for memory space for the plurality of multimedia data processing units to corresponding physical memory addresses in the system semiconductor memory and the local semiconductor memory according to a memory map, mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory, monitoring, in the memory controller, data transfer bandwidth of the system semiconductor memory and the local semiconductor memory, dynamically transferring frequently accessed data between system semiconductor memory and local semiconductor memory to reduce data transfer bandwidth of the system semiconductor memory and the local semiconductor memory, and updating the memory map to indicate new locations for transferred data, wherein the step of mapping memory access requests comprises the step of;
mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory map stored in the memory map storage means.
-
-
21. A method for managing memory for a plurality of data processing multimedia data processing units coupled to the system semiconductor memory and the local semiconductor memory, said method comprising the steps of:
-
receiving, in a memory mapping controller coupled to the plurality of multimedia data processing units and to the system semiconductor memory and the local semiconductor memory, memory access requests from the plurality of multimedia data processing units, translating memory addresses for memory space for the plurality of multimedia data processing units to corresponding physical memory addresses in the system semiconductor memory and the local semiconductor memory according to a memory map, mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory, monitoring, in the memory controller, available memory capacity of the system semiconductor memory and the local semiconductor memory, dynamically transferring data between system semiconductor memory and local semiconductor memory to increase available memory capacity of one of the system semiconductor memory and the local semiconductor memory, and updating the memory map to indicate new locations for transferred data, wherein the step of mapping memory access requests comprises the step of;
mapping memory access requests from the plurality of multimedia data processing units to portions of the system semiconductor memory and the local semiconductor memory according to the memory may stored in the memory map storage means.
-
Specification