Search

US-12619369-B2 - Memory transaction parameter settings

US12619369B2US 12619369 B2US12619369 B2US 12619369B2US-12619369-B2

Abstract

An apparatus includes processing circuitry that performs data processing in response to instructions of a software execution environment. Configuration storage circuitry stores a set of memory transaction parameters in association with a partition identifier, and configuration application circuitry applies the set of memory transaction parameters with respect to memory transactions issued by the software execution environment that identifies the partition identifier. The memory transaction parameters comprise a minimum target allocation and a maximum target allocation of a storage capacity of at least part of a memory system in handling the memory transaction that identifies the partition identifier.

Inventors

  • Seow Chuan Lim
  • Steven Douglas KRUEGER

Assignees

  • ARM LIMITED

Dates

Publication Date
20260505
Application Date
20240515

Claims (15)

  1. 1 . An apparatus comprising: processing circuitry configured to perform data processing in response to instructions of a software execution environment; configuration storage circuitry configured to store a set of memory transaction parameters in association with a partition identifier; and configuration application circuitry configured to apply the set of memory transaction parameters in respect of memory transactions issued by the software execution environment that identifies the partition identifier, wherein the set of memory transaction parameters comprise a minimum target allocation and a maximum target allocation of a storage capacity of at least part of a memory system in handling the memory transaction that identifies the partition identifier; and the configuration application circuitry is configured to allocate to the partition identifier, whose usage of a resource is less than its associated minimum target allocation, parts of the resource that are already allocated to another partition identifier when additional parts of the resource are required for handling the memory transaction that identifies the partition identifier and there is no unused resource available.
  2. 2 . The apparatus according to claim 1 , wherein the memory system comprises a cache; and the storage capacity is a storage capacity of the cache.
  3. 3 . The apparatus according to claim 2 , wherein the storage capacity of the cache is a number of ways of the cache that are assigned to be used.
  4. 4 . The apparatus according to claim 2 , wherein the storage capacity of the cache is a number of lines of the cache that are assigned to be used.
  5. 5 . The apparatus according to claim 1 , wherein the configuration application circuitry is configured to reserve the minimum target allocation of the resource of each set of memory transaction parameters in the configuration storage circuitry when every minimum target allocation of the resource of each set of memory transaction parameters in the configuration storage circuitry can be met.
  6. 6 . The apparatus according to claim 1 , wherein the configuration application circuitry is configured to allocate, as a first preference, parts of the resource that are unused when additional parts of the resource are required for handling the memory transaction that identifies the partition identifier.
  7. 7 . The apparatus according to claim 6 , wherein the set of memory transaction parameters comprise an enable setting; and parts of the resource that are allocated to another partition identifier whose enable setting indicates that the another partition identifier is disabled are unused.
  8. 8 . The apparatus according to claim 6 , wherein the configuration application circuitry is configured to allocate, as a second preference lower than the first preference, parts of the resource that are allocated to a further partition identifier whose usage of the resource exceeds its associated maximum target allocation.
  9. 9 . The apparatus according to claim 8 , wherein the configuration application circuitry is configured to allocate, as a third preference lower than the second preference, parts of the resource that are allocated to a still further partition identifier whose usage of the resource exceeds its associated minimum target allocation and is less than its associated maximum target allocation.
  10. 10 . The apparatus according to claim 9 , wherein the configuration application circuitry is configured to allocate based on the first preference and the second preference when resource usage by the partition identifier exceeds its associated maximum target allocation; and the configuration application circuitry is configured to allocate based on the first preference, the second preference, and the third preference when resource usage by the partition identifier is below its associated maximum target allocation.
  11. 11 . The apparatus according to claim 6 , wherein the configuration application circuitry is configured to allocate, as a final preference, parts of the resource that are already allocated to the partition identifier when additional parts of the resource are required for handling the memory transaction that identifies the partition identifier.
  12. 12 . The apparatus according to claim 9 , wherein the configuration application circuitry is configured to allocate, as a final preference, parts of the resource that are already allocated to the partition identifier when additional parts of the resource are required for handling the memory transaction that identifies the partition identifier the configuration application circuitry is configured to allocate based on the first preference, the second preference, and the final preference when resource usage by the partition identifier exceeds its associated maximum target allocation; and the configuration application circuitry is configured to allocate based on the first preference, the second preference, the third preference, and the final preference when resource usage by the partition identifier is below its associated maximum target allocation.
  13. 13 . The apparatus according to claim 1 , wherein the set of memory transaction parameters comprise an enable setting; and the configuration application circuitry is configured to inhibit the resource allocations based on the enable setting.
  14. 14 . The apparatus according to claim 13 , wherein the configuration application circuitry is configured to disregard the minimum target allocation of the resource used by the memory system in handling the memory transaction that identifies the partition identifier, in response to the enable setting associated with the partition identifier indicating that the partition identifier is disabled.
  15. 15 . A method comprising: performing data processing in response to instructions of a software execution environment; storing a set of memory transaction parameters in association with a partition identifier; and applying the set of memory transaction parameters in respect of memory transactions issued by the software execution environment that identifies the partition identifier, wherein the set of memory transaction parameters comprise a minimum target allocation and a maximum target allocation of a storage capacity of at least part of a memory system in handling the memory transaction that identifies the partition identifier; and allocating to the partition identifier, whose usage of a resource is less than its associated minimum target allocation, parts of the resource that are already allocated to another partition identifier when additional parts of the resource are required for handling the memory transaction that identifies the partition identifier and there is no unused resource available.

Description

CROSS-REFERENCE This application is a continuation of U.S. application Ser. No. 17/330,722, filed May 26, 2021, the entire contents of which are incorporated herein by reference in this application. TECHNICAL FIELD The present disclosure relates to memory systems as might be used in a data processing apparatus. DESCRIPTION In a data processing apparatus, a software execution environment may cause memory transactions to be issued to a memory system. Such memory transactions can indicate a particular partition to be used, which affects the resource usage of the memory system in handling those memory transactions. SUMMARY Viewed from a first example configuration, there is provided an apparatus comprising: processing circuitry configured to perform data processing in response to instructions of a software execution environment; configuration storage circuitry configured to store a set of memory transaction parameters in association with a partition identifier; and configuration application circuitry configured to apply the set of memory transaction parameters in respect of memory transactions issued by the software execution environment that identifies the partition identifier, wherein the memory transaction parameters comprise a minimum target allocation of a resource used by a memory system in handling the memory transaction that identifies the partition identifier. Viewed from a second example configuration, there is provided a method comprising: performing data processing in response to instructions of a software execution environment; storing a set of memory transaction parameters in association with a partition identifier; and applying the set of memory transaction parameters in respect of memory transactions issued by the software execution environment that identifies the partition identifier, wherein the memory transaction parameters comprise a minimum target allocation of a resource used by a memory system in handling the memory transaction that identifies the partition identifier. Viewed from a third example configuration, there is provided an apparatus comprising: processing circuitry configured to perform data processing in response to instructions of a software execution environment; configuration storage circuitry configured to store a set of memory transaction parameters and associated partition identifiers, wherein the memory transaction parameters comprise resource allocations for handling transactions that identify the associated partition identifier; configuration application circuitry to perform the resource allocations, wherein the memory transaction parameters comprise an enable setting; and the configuration application circuitry is configured to inhibit the resource allocations based on the enable setting. Viewed from a fourth example configuration, there is provided a method comprising: performing data processing in response to instructions of a software execution environment; storing a set of memory transaction parameters and associated partition identifiers, wherein the memory transaction parameters comprise resource allocations for handling transactions that identify the associated partition identifier; performing the resource allocations, wherein the memory transaction parameters comprise an enable setting; and the resource allocations are inhibited based on the enable setting. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be described further, by way of example only, with reference to embodiments thereof as illustrated in the accompanying drawings, in which: FIG. 1 schematically illustrates an example of a processing unit; FIG. 2 schematically illustrates an example of a data processing system comprising N processing clusters; FIG. 3 schematically illustrates an example of partitioning the control of allocation of memory system resources; FIG. 4 shows an example of different software execution environments which may be executed by the processor; FIG. 5 shows an example of virtual machines and applications; FIG. 6A shows an example of first stage partition identifier remapping circuitry and second stage partition identifier remapping circuitry; FIG. 6B shows an example of first stage partition identifier remapping circuitry and second stage partition identifier remapping circuitry; FIG. 7 shows an example of a page table entry; FIG. 8 shows a worked example for two processes; and FIG. 9 illustrates a flowchart that shows a process for determining the internal partition identifier; FIG. 10 illustrates an apparatus in accordance with some embodiments; FIG. 11 shows an example of configuration parameters that can be applied to partitions in the memory system; FIG. 12 presents an allocation decision table, that indicates how particular resources are allocated when a partition attempts to store data in the memory system (e.g. in a cache); and FIG. 13 illustrates the table of FIG. 12 in the form of a flowchart 600 that expresses the overall goals of an example system. DESC