Search

EP-4736003-A1 - PROCESSOR WITH VIRTUALIZABLE SIGNAL MONITORS

EP4736003A1EP 4736003 A1EP4736003 A1EP 4736003A1EP-4736003-A1

Abstract

A processing unit (e.g., a CPU) [102] executes multiple processes, such as multiple virtual machines [103, 104], wherein each process employs virtual signals [106, 108] and virtual signal monitors [107, 109] to support signaling between the process and one or more accelerators. A hardware signal manager (HSM) [110] assigns each virtual signal to a physical signal [115, 118] of the system and assigns each virtual signal monitor to a physical signal monitor [114, 117]. Based on a process' interactions (e.g., signal operations) with a virtual signal monitor, the HSM executes corresponding interactions at the assigned physical signal monitor. The HSM thus virtualizes the physical signal monitors for the executing processes.

Inventors

  • WYSE, MARK UNRUH
  • GUTIERREZ, ANTHONY THOMAS
  • ZEKANY, STEPHEN ALEXANDER
  • BLINZER, PAUL

Assignees

  • Advanced Micro Devices, Inc.

Dates

Publication Date
20260506
Application Date
20240418

Claims (20)

  1. 1 . A method comprising: receiving, at a system, a first virtual signal monitor request from a first virtual signal monitor associated with a first virtual signal; and in response to the first virtual signal monitor request, executing a first signal operation at hardware signal monitor circuitry (HSM) of the system.
  2. 2. The method of claim 1 , wherein the first signal operation comprises one of a load operation, a store operation, an atomic memory operation, and a signal wait operation.
  3. 3. The method of claim 1 or claim 2, further comprising: mapping, at the HSM, a first physical signal of the system to the first virtual signal.
  4. 4. The method of any of claims 1-3, further comprising: in response to receiving a second virtual signal monitor request associated with a second virtual signal, forwarding, at the HSM, the second virtual signal monitor request to a memory for execution.
  5. 5. The method of claim 4, wherein forwarding comprises forwarding the second virtual signal monitor request in response to determining at the HSM that the second virtual signal is a non-monitored signal.
  6. 6. The method of any of claims 1-5, further comprising: in response to receiving a second virtual signal monitor request associated with a second virtual signal, forgoing execution of the second virtual signal monitor request based on an identified implication of the execution.
  7. 7. The method of any of claims 1-6, wherein the HSM includes a plurality of physical signal monitors and further comprising: assigning, at the HSM, a first physical signal monitor of the plurality of physical signal monitors, to the first virtual signal monitor.
  8. 8. The method of claim 7, further comprising: reassigning, at the HSM, the first physical signal monitor to a second virtual signal monitor.
  9. 9. A system, comprising: a processor to execute a first virtual signal monitor associated with a first virtual signal; and hardware signal monitor circuitry (HSM) to execute a first signal operation in response to a first virtual signal monitor request from the first virtual signal monitor.
  10. 10. The system of claim 9, wherein the first signal operation comprises one of a load operation, a store operation, an atomic memory operation, and a signal wait operation.
  11. 11 . The system of claim 9 or claim 10, wherein the HSM is to: map a first physical signal of the system to the first virtual signal.
  12. 12. The system of any of claims 9-11 , wherein the HSM is to: in response to receiving a second virtual signal monitor request associated with a second virtual signal, forward the second virtual signal monitor request to a memory for execution.
  13. 13. The system of claim 12, wherein the HSM is to forward the second virtual signal monitor request in response to determining that the second virtual signal is a non-monitored signal.
  14. 14. The system of any of claims 9-13, wherein the HSM is to: in response to receiving a second virtual signal monitor request associated with a second virtual signal, forgo execution of the second virtual signal monitor request based on an identified implication of the execution.
  15. 15. The system of any of claims 9-14, wherein the HSM includes a plurality of physical signal monitors and wherein the HSM is to: assign a first physical signal monitor of the plurality of physical signal monitors to the first virtual signal monitor.
  16. 16. The system of claim 15, wherein the HSM is to: reassign the first physical signal monitor to a second virtual signal monitor.
  17. 17. A method comprising: instantiating, at a system, a plurality of virtual signals; and at a first time assigning, at hardware signal monitor circuitry (HSM) of the system, a plurality of physical signals to a first subset of the plurality of virtual signals.
  18. 18. The method of claim 17, further comprising: at a second time, assigning the plurality of physical signals to a second subset of the plurality of virtual signals, the second subset different from the first subset.
  19. 19. The method of claim 17 or claim 18, further comprising: monitoring the plurality of physical signals at the HSM.
  20. 20. The method of any of claims 17-19, further comprising: executing, at the HSM, signal operations for the plurality of physical signals in response to signal operation requests associated with the plurality of virtual signals.

Description

PROCESSOR WITH VIRTUALIZABLE SIGNAL MONITORS BACKGROUND [0001] To improve processing efficiency and conserve power, some processing systems employ one or more accelerators to perform designated operations on behalf of a central processing unit (CPU). For example, some processing systems employ a graphics processing unit (GPU) to perform graphics operations, an artificial intelligence (Al) accelerator to perform Al operations, a digital signal processor (DSP) to perform signal processing operations, and the like. To facilitate communication between the accelerators and the CPU, some processing systems employ signals, wherein each signal is a shared memory object that can be accessed by the CPU and one or more accelerators to share information. Examples of signals include doorbell signals that notify agents (e.g., one or more accelerators) that work is available, and completion signals that notify agents (e.g., a CPU or accelerator) when assigned work is available. However, existing signal implementations are not well- suited for efficient signal handling, including for systems that execute a relatively high number of processes, resulting in a large number of signals to manage. BRIEF DESCRIPTION OF THE DRAWINGS [0002] The present disclosure may be better understood, and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items. [0003] FIG. 1 is a block diagram of a system that employs virtualizable physical signal monitors to monitor signals and execute signal operations in accordance with some embodiments. [0004] FIG. 2 is a block diagram of a hardware signal manager (HSM) of FIG. 1 in accordance with some embodiments. [0005] FIG. 3 is a diagram illustrating an example of the HSM of FIG. 2 assigning, at different times, different subsets of virtual signal monitors to a set of physical signal monitors in accordance with some embodiments. [0006] FIG. 4 is a flow diagram of a method of virtualizing physical signal monitors at a system in accordance with some embodiments. DETAILED DESCRIPTION [0007] FIGs. 1-4 illustrate circuitry and techniques for virtualizing a set of physical signal monitors at a system. A processing unit (e.g., a CPU) executes multiple processes, such as multiple virtual machines, wherein each process employs virtual signals and virtual signal monitors to support signaling between the process and one or more accelerators. A hardware signal manager (HSM) assigns each virtual signal to a physical signal of the system and assigns each virtual signal monitor to a physical signal monitor. Based on a process’ interactions (e.g., signal operations) with a virtual signal monitor, the HSM executes corresponding interactions at the assigned physical signal monitor. The HSM thus virtualizes the physical signal monitors for the executing processes, thus providing a relatively simple way for the different processes to employ physical signal monitors, thereby enhancing processing efficiency. Further, the HSM allows the system to manage a relatively high number of signals for different executing processes while employing a relatively small set of physical signal monitors. [0008] To illustrate, in some embodiments a system includes a number of agents, including at least one CPU and an accelerator. To communicate, the agents employ a set of signals, wherein each signal is a shared memory-backed object assigned a corresponding memory address. Each signal includes both a signal value and a signal condition. A signal is typically waited on by one or more agents, wherein each agent takes action when the signal condition is met by the corresponding signal value (e.g., the signal condition is met when the signal value is less than one). A signal is sent by an agent when the agent performs a write using an atomic memory operation to the corresponding address. An example of a signal is a doorbell signal, wherein the signal is used by one agent (e.g., a CPU) to indicate to another agent (e.g., an accelerator) that work (e.g., one or more commands) is available to be executed. Another example of a signal is a completion signal, wherein the signal is used by one agent to indicate to another agent that assigned work has been completed. [0009] To reduce the overhead associated with signal management by software, the system employs multiple physical monitors (PMs), where each PM is circuitry configured to monitor a corresponding physical signal, and execute operations with respect to, a corresponding signal. Furthermore, the system employs an HSM to virtualize the PMs, allowing executing software processes to interact with the PMs via a set of virtual signals. For example, in some embodiments the system executes multiple virtual machines. Each virtual machine is configured to employ one or more virtual signals, and virtual signal monitors (VSMs), for signaling,