Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. An apparatus comprising a memory management unit (MMU) for providing partitioned translation caches, comprising: a translation cache configured to provide a plurality of translation cache entries each defining an address translation mapping; a partition descriptor table configured to provide a plurality of partition descriptors defining a corresponding plurality of partitions of the translation cache, each partition of the plurality of partitions comprising one or more translation cache entries of the plurality of translation cache entries; and a partition translation circuit configured to: receive a memory access request from a requestor; determine a translation cache partition identifier (TCPID) of the memory access request; identify one or more partitions of the plurality of partitions based on the TCPID; and perform a cache operation on a translation cache entry of the one or more translation cache entries of the one or more partitions.
A memory management unit (MMU) uses a partitioned translation cache to translate virtual addresses to physical addresses. The MMU contains a translation cache storing address mappings. These mappings are divided into multiple partitions. A partition descriptor table defines these partitions, specifying which translation cache entries belong to each. When a memory access request is received, a partition translation circuit determines a translation cache partition identifier (TCPID) associated with the request, uses the TCPID to identify relevant partition(s), and then performs the memory access using entries within the identified partition(s). This allows for segregation and management of translation lookaside buffer (TLB) entries.
2. The apparatus of claim 1 , wherein the partition descriptor table is configured to provide the plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and an end pointer to an ending translation cache entry of the corresponding partition.
The MMU with partitioned translation caches uses a partition descriptor table where each partition descriptor includes a start pointer to the first translation cache entry in the partition and an end pointer to the last translation cache entry in that partition. This method provides a clear definition of the boundaries for each partition within the translation cache, making partition identification straightforward.
3. The apparatus of claim 1 , wherein the partition descriptor table is configured to provide the plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and a count indicator indicative of a count of the one or more translation cache entries of the corresponding partition.
The MMU with partitioned translation caches uses a partition descriptor table where each partition descriptor includes a start pointer to the first translation cache entry in the partition and a count indicator specifying the number of translation cache entries that belong to that partition. This allows for dynamic allocation and sizing of partitions within the translation cache based on memory access needs.
4. The apparatus of claim 1 , wherein the partition translation circuit is configured to determine the TCPID by deriving the TCPID based on an attribute of the memory access request.
In the MMU with partitioned translation caches, the translation cache partition identifier (TCPID) is determined by the partition translation circuit based on attributes associated with the incoming memory access request. For instance, the TCPID may be derived from the memory address range, access permissions, or security flags associated with the request.
5. The apparatus of claim 1 , wherein the partition translation circuit is configured to determine the TCPID by retrieving a requestor-supplied TCPID provided by the memory access request.
In the MMU with partitioned translation caches, the translation cache partition identifier (TCPID) is retrieved directly from the memory access request. The requestor provides the TCPID as part of the request, allowing the requestor to directly specify the desired partition for the translation.
6. The apparatus of claim 1 , further comprising a partition remapping table configured to provide a plurality of remapping entries each defining a remapping of an input TCPID to an output TCPID; wherein the partition translation circuit is configured to: determine the TCPID by identifying a remapping entry of the plurality of remapping entries, in which the input TCPID of the remapping entry corresponds to the TCPID of the memory access request; and identify the one or more partitions of the plurality of partitions based on the output TCPID of the remapping entry.
The MMU with partitioned translation caches includes a partition remapping table. This table maps an input TCPID to an output TCPID. When a memory access request arrives, the MMU uses the input TCPID from the request to look up the corresponding output TCPID in the remapping table. The MMU then identifies the translation cache partitions based on the output TCPID. This enables flexible routing and management of memory access requests across different partitions.
7. The apparatus of claim 1 , wherein: the memory access request comprises a source indicator indicating a source type of the requestor; and the partition translation circuit is configured to determine the TCPID by deriving the TCPID based on the source indicator.
The MMU with partitioned translation caches processes memory access requests that include a source indicator, which specifies the type of requestor (e.g., CPU, GPU, DMA controller). The translation cache partition identifier (TCPID) is derived based on this source indicator. This allows the MMU to partition the translation cache based on the source of the memory request.
8. The apparatus of claim 1 , further comprising a partition selection table comprising a plurality of partition selection entries, each defining at least one of a search control indicator and an eviction control indicator, and each corresponding to one or more partitions of the plurality of partitions; and wherein the partition translation circuit is configured to identify the one or more partitions of the plurality of partitions based on a partition selection entry of the plurality of partition selection entries.
The MMU with partitioned translation caches has a partition selection table, where each entry corresponds to one or more partitions and defines search and/or eviction control indicators. The partition translation circuit identifies appropriate partitions based on entries in this table. This configuration enables fine-grained control over the search and eviction policies for each partition of the translation cache.
9. The apparatus of claim 8 , wherein the partition translation circuit is configured to perform the cache operation by determining that the one or more translation cache entries of the one or more partitions are eligible for searching based on the search control indicator of the partition selection entry for the one or more partitions.
In the MMU with a partition selection table, the search control indicator within the table determines whether the translation cache entries in a partition are eligible for searching. The partition translation circuit uses this indicator to restrict searches to only certain partitions, improving performance and security.
10. The apparatus of claim 8 , wherein the partition translation circuit is configured to perform the cache operation by determining that the one or more translation cache entries of the one or more partitions are eligible for eviction based on the eviction control indicator of the partition selection entry for the one or more partitions.
In the MMU with a partition selection table, the eviction control indicator within the table determines whether the translation cache entries in a partition are eligible for eviction. The partition translation circuit uses this indicator to prioritize or prevent eviction of entries within specific partitions.
11. The apparatus of claim 1 integrated into an integrated circuit (IC).
The MMU with partitioned translation caches, as previously described, is implemented within an integrated circuit (IC).
12. The apparatus of claim 1 integrated into a device selected from a group consisting of a set top box, an entertainment unit, a navigation device, a communications device, a fixed location data unit, a mobile location data unit, a mobile phone, a cellular phone, a computer, a personal digital assistant (PDA), a monitor, a computer monitor, a television, a tuner, a radio, a music player, and a video player.
The MMU with partitioned translation caches, as previously described, is integrated into a device such as a set-top box, entertainment unit, navigation device, communications device, mobile phone, computer, personal digital assistant (PDA), monitor, television, radio, or media player.
13. A memory management unit (MMU) comprising: a means for providing a plurality of translation cache entries each defining an address translation mapping; a means for providing a plurality of partition descriptors defining a corresponding plurality of partitions of a translation cache of the MMU, each partition of the plurality of partitions comprising one or more translation cache entries of the plurality of translation cache entries; a means for receiving a memory access request from a requestor; a means for determining a translation cache partition identifier (TCPID) of the memory access request; a means for identifying one or more partitions of the plurality of partitions based on the TCPID; and a means for performing a cache operation on a translation cache entry of the one or more translation cache entries of the one or more partitions.
A memory management unit (MMU) provides partitioned translation caches. It includes a means for storing translation cache entries defining address mappings, a means for organizing these entries into partitions using partition descriptors, a means for receiving memory access requests, a means for determining a translation cache partition identifier (TCPID) for each request, a means for identifying one or more partitions based on the TCPID, and a means for performing a cache operation on entries within the identified partitions.
14. A method for providing partitioned translation caches, comprising: receiving, by a memory management unit (MMU), a memory access request from a requestor; determining a translation cache partition identifier (TCPID) of the memory access request; identifying, based on the TCPID, one or more partitions of a plurality of partitions of a translation cache of the MMU; and performing a cache operation on a translation cache entry of one or more translation cache entries of the one or more partitions.
A method for providing partitioned translation caches involves receiving a memory access request by a memory management unit (MMU), determining a translation cache partition identifier (TCPID) for the request, identifying one or more partitions of the translation cache based on the TCPID, and performing a cache operation on a translation cache entry within the identified partition(s).
15. The method of claim 14 , wherein identifying the one or more partitions of the plurality of partitions is further based on a corresponding plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and an end pointer to an ending translation cache entry of the corresponding partition.
The method of using partitioned translation caches includes identifying one or more partitions based on partition descriptors, where each descriptor includes a start pointer to the beginning of the partition and an end pointer to the end of the partition. This defines the range of translation cache entries belonging to each partition, allowing for easy identification and management.
16. The method of claim 14 , wherein identifying the one or more partitions of the plurality of partitions is further based on a corresponding plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and a count indicator indicative of a count of the one or more translation cache entries of the corresponding partition.
The method of using partitioned translation caches includes identifying one or more partitions based on partition descriptors, where each descriptor includes a start pointer to the beginning of the partition and a count indicator that specifies the number of translation cache entries within that partition.
17. The method of claim 14 , wherein determining the TCPID comprises deriving the TCPID based on an attribute of the memory access request.
The method of using partitioned translation caches includes determining the translation cache partition identifier (TCPID) by deriving it from attributes of the memory access request itself. The TCPID may be extracted from address ranges, access flags, or other parameters of the request.
18. The method of claim 14 , wherein determining the TCPID comprises retrieving a requestor-supplied TCPID provided by the memory access request.
The method of using partitioned translation caches includes determining the translation cache partition identifier (TCPID) by retrieving it directly from the memory access request, as supplied by the requesting entity.
19. The method of claim 14 , comprising: determining the TCPID by identifying a remapping entry among a plurality of remapping entries each defining a remapping of an input TCPID to an output TCPID, in which the input TCPID of the remapping entry corresponds to the TCPID of the memory access request; and identifying the one or more partitions of the plurality of partitions based on the output TCPID of the remapping entry.
The method of using partitioned translation caches involves remapping TCPIDs. An input TCPID from a memory access request is used to look up an output TCPID in a remapping table. Partitions are then identified based on this remapped output TCPID. This allows for dynamic and configurable partitioning of the translation cache.
20. The method of claim 14 , wherein: the memory access request comprises a source indicator indicating a source type of the requestor; and determining the TCPID comprises deriving the TCPID based on the source indicator.
The method of using partitioned translation caches includes receiving a memory access request with a source indicator that identifies the type of the requestor (e.g., CPU, GPU). The translation cache partition identifier (TCPID) is derived based on this source indicator.
21. The method of claim 14 , further comprising identifying the one or more partitions of the plurality of partitions based on a partition selection entry of a plurality of partition selection entries, each defining at least one of a search control indicator and an eviction control indicator and corresponding to one or more partitions of the plurality of partitions.
The method of using partitioned translation caches involves identifying partitions based on a partition selection table. Each entry in this table corresponds to one or more partitions and contains search and/or eviction control indicators. These indicators influence how the translation cache is accessed and managed for each partition.
22. The method of claim 21 , wherein performing the cache operation based on the partition selection entry for the one or more partitions comprises determining that the one or more translation cache entries of the one or more partitions are eligible for searching based on the search control indicator of the partition selection entry for the one or more partitions.
When performing cache operations, the search control indicator from the partition selection table determines if translation cache entries within a specific partition are eligible for searching. This allows the memory management unit (MMU) to restrict searches to only relevant partitions, improving performance.
23. The method of claim 21 , wherein performing the cache operation based on the partition selection entry for the one or more partitions comprises determining that the one or more translation cache entries of the one or more partitions are eligible for eviction based on the eviction control indicator of the partition selection entry for the one or more partitions.
When performing cache operations, the eviction control indicator from the partition selection table determines if translation cache entries within a specific partition are eligible for eviction. This enables the MMU to prioritize or prevent eviction of entries from certain partitions, ensuring important mappings remain in the cache.
24. A non-transitory computer-readable medium having stored thereon computer-executable instructions which, when executed by a processor, cause the processor to: receive a memory access request from a requestor; determine a translation cache partition identifier (TCPID) of the memory access request; identify, based on the TCPID, one or more partitions of a plurality of partitions of a translation cache of a memory management unit (MMU); and perform a cache operation on a translation cache entry of one or more translation cache entries of the one or more partitions.
A non-transitory computer-readable medium stores instructions that, when executed, cause a processor to receive a memory access request, determine a translation cache partition identifier (TCPID), identify partitions of a translation cache based on the TCPID, and perform a cache operation on translation cache entries within those partitions.
25. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to identify the one or more partitions of the plurality of partitions based a corresponding plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and an end pointer to an ending translation cache entry of the corresponding partition.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to identify one or more partitions based on partition descriptors. Each partition descriptor contains a start pointer to the beginning of the partition and an end pointer to the end of the partition.
26. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to identify the one or more partitions of the plurality of partitions based a corresponding plurality of partition descriptors each comprising: a start pointer to a starting translation cache entry of a corresponding partition defined by the partition descriptor; and a count indicator indicative of a count of the one or more translation cache entries of the corresponding partition.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to identify one or more partitions based on partition descriptors. Each partition descriptor contains a start pointer to the beginning of the partition and a count indicator that specifies the number of translation cache entries within that partition.
27. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to determine the TCPID by deriving the TCPID based on an attribute of the memory access request.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to determine the TCPID by deriving it from attributes of the memory access request itself.
28. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to determine the TCPID by retrieving a requestor-supplied TCPID provided by the memory access request.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to determine the TCPID by retrieving it directly from the memory access request, as supplied by the requesting entity.
29. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to: determine the TCPID by identifying a remapping entry among a plurality of remapping entries each defining a remapping of an input TCPID to an output TCPID, in which the input TCPID of the remapping entry corresponds to the TCPID of the memory access request; and identify the one or more partitions of the plurality of partitions based on the output TCPID of the remapping entry.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to remap TCPIDs using a remapping table. The input TCPID from a memory access request is used to look up an output TCPID in the table. Partitions are then identified based on this remapped output TCPID.
30. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to determine the TCPID by deriving the TCPID based on a source indicator of the memory access request indicating a source type of the requestor.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to determine the TCPID by deriving it from a source indicator in the memory access request, which specifies the type of the requesting entity.
31. The non-transitory computer-readable medium of claim 24 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to identify the one or more partitions of the plurality of partitions based on a partition selection entry of a plurality of partition selection entries, each defining at least one of a search control indicator and an eviction control indicator and corresponding to one or more partitions of the plurality of partitions.
The computer-readable medium, which provides instructions for partitioned translation caches, further includes instructions to identify partitions based on a partition selection table. Entries in the table correspond to partitions and contain search and/or eviction control indicators.
32. The non-transitory computer-readable medium of claim 31 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to perform the cache operation based on the partition selection entry for the one or more partitions by determining that the one or more translation cache entries of the one or more partitions are eligible for searching based on the search control indicator of the partition selection entry for the one or more partitions.
The computer-readable medium includes instructions to determine if translation cache entries within a specific partition are eligible for searching, based on the search control indicator from the partition selection table.
33. The non-transitory computer-readable medium of claim 31 having stored thereon computer-executable instructions which, when executed by the processor, further cause the processor to perform the cache operation based on the partition selection entry for the one or more partitions by determining that the one or more translation cache entries of the one or more partitions are eligible for eviction based on the eviction control indicator of the partition selection entry for the one or more partitions.
The computer-readable medium includes instructions to determine if translation cache entries within a specific partition are eligible for eviction, based on the eviction control indicator from the partition selection table.
Unknown
November 21, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.