Managing performance during power supply voltage droop
Patent Information
- Application Number
- JP2024526593
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-11-08
- Filing Date
- 2022-10-27
- Publication Date
- 2025-02-14
- Estimated Expiration
- 2042-10-27
Smart Images

Figure 0007630048000001 
Figure 0007630048000002 
Figure 0007630048000003
Abstract
Description
[Background technology]
[0001] Modern data processors are designed to optimize power consumption by operating in several available performance states, or "P-states." Each P-state is defined by both an operating frequency and an operating voltage. For example, a higher supply voltage is generally required to function properly at a higher operating frequency during periods of relatively high processing load. Conversely, to conserve power during periods of relatively low processing load, the supply voltage can be reduced while still ensuring proper operation at that operating frequency. The dynamic power consumption of a complementary metal-oxide-semiconductor (CMOS) integrated circuit is related to the supply voltage and clock frequency by the following equation: P=C'V 2 'f[1] where P is the power dissipation, C is the dynamic capacitance of the data processor, V is the supply voltage, and f is the operating frequency. C is fixed for a given design, while V and f are determined by the selected P state.
[0002] A data processor typically selects an appropriate P-state by measuring or estimating processor utilization, such as by monitoring a performance counter. For example, firmware may measure processor utilization as the relative amount of time the data processor operates versus the amount of time the data processor is idle, and may be expressed as a percentage. When changing P-states, the voltage regulator, which sets the value of V, and the clock generator, which sets the value of f, take time to stabilize at their new operating points. Because of these time requirements, the P-state mechanism may operate several orders of magnitude slower than the processor operating frequency, such as on the microsecond or millisecond time scale when the processor operating frequency is in the gigahertz (GHz) range.
[0003] However, sometimes the data processor's power supply voltage may experience a condition known as "droop". Voltage droop refers to a drop in voltage from the desired voltage level when the power supply drives a variable load. In a regulated system, a sudden increase in load can cause the output voltage to drop. For example, a transient load condition can occur that causes a voltage droop. If the droop is too great, circuit failure occurs. On the other hand, if the P states define a nominal voltage level that is high enough for a given operating frequency to accommodate the expected droop, a lot of power is wasted on average. [Brief description of the drawings]
[0004] [Figure 1] 1 is a block diagram of an accelerated processing unit (APU) and memory system known in the prior art. [Diagram 2] 1 is a block diagram of a data processor according to some embodiments. [Diagram 3] 3 is a block diagram of a portion of a controller suitable for use in the controller of FIG. 2, according to some embodiments. [Figure 4] FIG. 4 is a timing diagram illustrating an example of the operation of the controller of FIG. [Diagram 5] FIG. 4 is a timing diagram illustrating the reaction time of the data fabric throttling system of FIG. 3 for various throttle amounts. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0005] In the following description, the use of the same reference numbers in different figures indicates similar or identical items. Unless otherwise noted, the word "coupled" and its related verb forms include both direct and indirect electrical connections by means well known in the art, and unless otherwise noted, any description of a direct connection also refers to alternative embodiments using a suitable form of indirect electrical connection.
[0006] A method for controlling a data processing system includes detecting a droop in a power supply voltage of functional circuitry of the data processing system greater than a programmable droop threshold, and operation of the data processing system is throttled in response to detecting the droop according to a programmable step size, a programmable assertion time, and a programmable deassertion time.
[0007] The data processing system includes a plurality of memory access agents, a plurality of memory access responders, a data fabric, and a droop detector. The data fabric couples memory access requests and memory access responses between the plurality of memory access agents and the plurality of memory access responders. The droop detector activates a droop signal in response to a droop in a power supply voltage of the data processing system below a droop threshold. The data fabric throttles a flow of memory access requests between the plurality of memory access agents and the plurality of memory access responders in response to the droop signal.
[0008] The data processing system includes a plurality of memory access agents, a memory controller, a data fabric, and a droop detector. The memory controller is adapted to be coupled to an external memory and controls access to the external memory using a corresponding memory access protocol. The data fabric couples the plurality of memory access agents to the memory controller. The droop detector is coupled to the memory controller and detects a droop in a power supply voltage of the data processing system below a droop threshold and provides a droop signal in response. The memory controller throttles a rate of memory access instructions to the external memory in response to the droop signal.
[0009] 1 is a block diagram of an accelerated processing unit (APU) 100 and memory system 130 known in the prior art. APU 100 is an integrated circuit suitable for use as a processor in a host data processing system and generally includes a central processing unit (CPU) core complex 110, a graphics core 120, a set of display engines 122, a memory management hub 124, a data fabric 125, a set of peripheral controllers 160, a set of peripheral bus controllers 170, and a system management unit (SMU) 180.
[0010] CPU core complex 110 includes CPU core 112 and CPU core 114. In this example, CPU core complex 110 includes two CPU cores, but in other embodiments, CPU core complex 110 can include any number of CPU cores. Each of CPU cores 112 and 114 is bidirectionally connected to a system management network (SMN) forming a control fabric and to data fabric 125, and can provide memory access requests to data fabric 125. Each of CPU cores 112 and 114 can be a single core or a core complex having two or more single cores that share certain resources, such as caches.
[0011] Graphics core 120 is a high-performance graphics processing unit (GPU) capable of performing graphics operations such as vertex processing, fragment processing, shading, texture blending, etc., in a highly integrated and parallel manner. Graphics core 120 is bidirectionally connected to the SMN and data fabric 125 and can provide memory access requests to data fabric 125. In this regard, APU 100 can support either a unified memory architecture in which CPU core complex 110 and graphics core 120 share the same memory space, or a memory architecture in which CPU core complex 110 and graphics core 120 share a portion of the memory space, but graphics core 120 also uses private graphics memory that is not accessible by CPU core complex 110.
[0012] Display engine 122 renders and rasterizes objects generated by graphics core 120 for display on a monitor. Graphics core 120 and display engine 122 are bidirectionally connected to memory management hub 124 for uniform translation to appropriate addresses in memory system 130, and memory management hub 140 is bidirectionally connected to data fabric 125 for generating such memory accesses and receiving read data returned from the memory system.
[0013] Data fabric 125 includes a crossbar switch for routing memory access requests and responses between any memory accessing agent and memory management hub 140. The data fabric also includes a system memory map defined by the basic input / output system (BIOS) and buffers for each virtual connection to determine where to send memory accesses based on the system configuration.
[0014] Peripheral controllers 160 include a universal serial bus (USB) controller 162 and a Serial Advanced Technology Attachment (SATA) interface controller 164, each of which is bidirectionally connected to a system hub 166 and the SMN bus. These two controllers are merely exemplary of peripheral controllers that may be used with APU 100.
[0015] Peripheral bus controllers 170 include a system controller or "Southbridge" (SB) 172 and a Peripheral Component Interconnect Express (PCIe) controller 174, each of which is bidirectionally connected to an input / output (I / O) hub 176 and the SMN bus. I / O hub 176 is also bidirectionally connected to system hub 166 and data fabric 125. Thus, for example, a CPU core can program registers in USB controller 162, SATA interface controller 164, SB 172, or PCIe controller 174, with accesses routed by data fabric 125 through I / O hub 176. Software and firmware for APU 100 is stored in a system data drive or system BIOS memory (not shown), which may be any of a variety of non-volatile memory types, such as read-only memory (ROM), flash, electrically erasable programmable ROM (EEPROM), etc. Typically, the BIOS memory is accessed via a PCIe bus, and the system data drives are accessed via a SATA interface.
[0016] SMU 180 is a local controller that controls the operation of resources on APU 100 and synchronizes communication between them. SMU 180 manages the power-up sequencing of the various processors on APU 100 and controls multiple off-chip devices via reset, enable, and other signals. SMU 180 includes one or more clock sources (not shown), such as a phase locked loop (PLL), to provide clock signals to each of the components of APU 100. SMU 180 also manages power for the various processors and other functional blocks and can receive measured power consumption values from CPU cores 112 and 114 and graphics core 120 to determine appropriate power states.
[0017] Memory management hub 140 and its associated physical interfaces (PHY) 151 and 152 are integrated with APU 100 in this embodiment. Memory management hub 140 includes memory channels 141 and 142 and power engine 149. Memory channel 141 includes host interface 145, memory channel controller 143, and physical interface 147. Host interface 145 bidirectionally connects memory channel controller 143 to data fabric 125 via a serial presence detect link (SDP). Physical interface 147 bidirectionally connects memory channel controller 143 to PHY 151 and conforms to the DDR PHY Interface (DFI) specification. Memory channel 142 includes host interface 146, memory channel controller 144, and physical interface 148. Host interface 146 bidirectionally connects memory channel controller 144 to data fabric 125 via another SDP. Physical interface 148 bidirectionally connects memory channel controller 144 to PHY 152 and conforms to the DFI specification. Power engine 149 is bidirectionally connected to SMU 180 via the SMN bus, to PHYs 151 and 152 via the APB, and to memory channel controllers 143 and 144. PHY 151 has a bidirectional connection to memory channel 131. PHY 152 has a bidirectional connection to memory channel 133.
[0018] Memory management hub 140 is an instantiation of a memory controller with two memory channel controllers and uses a shared power engine 149 to control the operation of both memory channel controller 143 and memory channel controller 144 in a manner described further below. Each of memory channels 141 and 142 can be connected to state-of-the-art DDR memories such as DDR version five (DDR5), low power DDR4 (LPDDR4), graphics DDR version six (gDDR6), and high bandwidth memory (HBM), and can be adapted for future memory technologies. These memories provide high bus bandwidth and high speed operation. At the same time, they provide low power modes to conserve power for battery-powered applications such as laptop computers, as well as built-in thermal monitoring.
[0019] Memory system 130 includes memory channel 131 and memory channel 133. Memory channel 131 includes a set of dual inline memory modules (DIMMs) connected to a double data rate (DDRx) bus 132, including representative DIMMs 134, 136, and 138, which in this example correspond to different ranks. Similarly, memory channel 133 includes a set of DIMMs connected to a DDRx bus 129, including representative DIMMs 135, 137, and 139.
[0020] The APU 100 acts as the central processing unit (CPU) of the host data processing system and provides a variety of buses and interfaces useful in modern computer systems, including two DDRx memory channels, a PCIe root complex for connection to a PCIe link, a USB controller for connection to a USB network, and an interface to a SATA mass storage device.
[0021] The APU 100 also implements various system monitoring and power saving functions. One system monitoring function in particular is thermal monitoring. For example, if the APU 100 gets too hot, the SMU 180 can reduce the frequency and voltage of the CPU cores 112 and 114 and / or the graphics core 120. If the APU 100 gets too hot, the SMU can be shut down completely. Thermal events can also be received from external sensors by the SMU 180 via the SMN bus, and the SMU 180 can reduce the clock frequency and / or power supply voltage accordingly.
[0022] 2 is a block diagram of a data processing system 200 according to some embodiments. The data processing system 200 generally includes a set of memory access agents 210, a data fabric 220, a set of memory access responders 230, and a set of external memory resources 240.
[0023] In the embodiment of FIG. 2, memory access agent 210 includes CPU core complex 211, CPU core complex 212, and graphics processing unit (GPU) 213. CPU core complexes 211 and 212 each include multiple CPU cores, each with its own dedicated upper level cache, and a last level cache (LLC) shared by all CPU cores in the CPU core complex. GPU 213 is a high-performance graphics processing unit that performs functions such as shading, rendering, and rasterization. A typical embodiment of GPU 213 is a data processor that responds to high-level graphics primitive commands such as OpenGL commands that are executed using a massively parallel single-instruction, multiple-data (SIMD) processor. Due to its computational intensity, GPU 213 performs many memory references and includes its own internal cache hierarchy.
[0024] Data fabric 220 includes a set of coherent master ports 221, each labeled "CM," and a set of coherent slave ports 222, each labeled "CS," interconnected by fabric transport layer 223, and controller 224. As used herein, a coherent port is considered to be a master port because it may be connected to a memory access agent that can initiate a memory access request, regardless of whether the memory access request is a read access or a write access. Similarly, a coherent slave port is considered to be a slave port because it connects to a memory access responder that can respond to a memory access request, regardless of whether the memory access request is a read access or a write access.
[0025] The data fabric 220 is configured to have a coherent master port for each memory access agent 210. Each coherent master port 221 has a bidirectional upstream port, a bidirectional downstream port, a control input, and its own internal buffering for both accesses received from coherent masters and responses received from coherent slaves via the fabric transport layer 223. Each coherent master port 221 also has a control interface connected to its upstream port and provides backpressure signaling to the corresponding memory access agent to avoid overrunning its limited buffer space. The data fabric 220 is similarly configured to have a coherent slave port for each memory access responder 230. Each coherent slave port 222 has buffering that allows memory access requests to be stored before and after being processed via the fabric transport layer 223, depending on the direction. Controller 224 has an input for receiving a signal labeled "DROOP" and an output connected to the control inputs of each coherent master port 221 and each coherent slave port 222 for providing a signal labeled "THROTTLE" thereto.
[0026] Data fabric 220 also includes a power supply monitor 225 that has an associated fast droop detector (FDD). DDINT 2, has an input, labeled "INPUT" for receiving a power supply voltage associated with data fabric 220 and memory access agent 210, and an output for providing a DROOP signal to an input of controller 224. Power supply monitor 225 may be designed integrally with data fabric 220 or may be a separate element and may be designed integrally with other power supply monitoring circuits, but in either case, monitors the power supply voltage associated with and operating data fabric 220 and memory access agent 210, i.e., V DDINT Monitor.
[0027] Memory access responder 230 includes unified memory controller 231, labeled "UMC," unified memory controller 232, and cache coherent interconnect for accelerator (CCIX) controller 233, labeled "CCIX CONT." Each of unified memory controllers 231 and 232 has an upstream port connected to data fabric 220 via a corresponding coherent slave port 222, a downstream port connected to a corresponding memory device, and a control input. CCIX controller 223 has an upstream port connected to a corresponding coherent slave port 222, and a downstream port connected to a corresponding memory device.
[0028] The integrated memory controllers 231 and 232 also have power supply monitors 234 with fast droop detectors associated with them. DDUMC " for receiving a power supply voltage associated with integrated memory controllers 231 and 232, and an output for providing a different DROOP signal to the control inputs of integrated memory controllers 231 and 232. Power supply monitor 234 may be designed integrally with integrated memory controllers 231 and 232 or may be a separate element and may be designed integrally with other power supply monitoring circuits, but in either case, monitors the power supply voltage, i.e., V, associated with and operating integrated memory controllers 231 and 232. DDUMC Monitor.
[0029] External memory resources 240 include high bandwidth memory 241, labeled "HBM," high bandwidth memory 242, labeled "HBM," and storage class memory 243, labeled "SCM." High bandwidth memories 241 and 242 are bidirectionally connected to downstream ports of unified memory controllers 231 and 232, respectively. Storage class memory 243 is bidirectionally connected to a downstream port of CCIX controller 233.
[0030] Data processing system 200 is a highly integrated, high performance digital data processor that performs many of the functions associated with personal computers, workstations, file servers, and the like. It implements a unified memory space in which all memories in the system are potentially visible to each memory access agent 210. Data fabric 220 is the medium through which accesses initiated by memory access agents are provided to memory access responders and responses from memory access responders are returned to the initiating memory access agent. Data fabric 220 multiplexes accesses and responses between corresponding master and slave ports based on a system address map using a central fabric transport layer 223. The operation of memory access agent 210 is conventional and well known in the art and will not be described further. Similarly, the operation of memory access responder 230 is well known and typically specified by a published standard, such as one or more of the double data rate (DDR) synchronous dynamic random-access memory (SDRAM) standard and the HBM standard published by the Joint Electron Devices Engineering Council (JEDEC), and will not be described further.
[0031] According to various embodiments described herein, the data fabric 220, associated with itself and with the memory access agent 210, has at least a threshold amount of V DDINTThe controller 224 then provides a THROTTLE signal to the coherent master port 221 and the coherent slave port 222 to slow down the rate of accesses accepted for the associated memory access agent or memory access responder, as the case may be. Thus, in response to a DROOP signal that may cause malfunction at the current rate of operation, the controller 224 causes the data fabric 220 to throttle (i.e., force a reduction) the amount of data traffic moving therethrough. In some embodiments, the droop throttling works in conjunction with existing throttling mechanisms of the memory access agents and the coherent master ports to reduce data flow, causing stalls in the memory access agents, reducing their workload, and quickly mitigating the power droop.
[0032] Similarly, the integrated memory controllers 231 and 232 may each maintain at least a threshold amount of V DDUMCEach of the power supplies includes an associated power supply monitor 234 that provides its DROOP signal in response to power droop of the power supply. The power supply monitor 234 captures the transient power droop and provides the DROOP signal when the droop exceeds a threshold amount. The DROOP signal reduces the rate of accesses accepted from the associated memory accessing agent via the data fabric 220. Thus, in response to a DROOP signal that may cause malfunction at the current rate of operation, the integrated memory controllers 231 and 232 throttle the number of memory access requests sent to the high bandwidth memory 241 and the high bandwidth memory 242. In this example, the droop throttling works in conjunction with the existing backpressure mechanisms of the integrated memory controllers 231 and 232, the data fabric 220, and the memory accessing agent 210 to reduce the data flow. The reduced data flow ultimately causes stalls in the memory accessing agents, reducing their workload, thereby mitigating the power droop.
[0033] Using either or both of these two mechanisms, data processing system 200 prevents or reduces the risk of malfunction during periods of sudden high processing activity that would dangerously reduce the power supply below the level required for the corresponding clock frequency. Additionally, it allows throttling to be removed as soon as the workload reaches a lower level that does not cause power supply droop. In this regard, the fast droop detectors in power supply monitors 225 and 234 implement hysteresis such that the threshold below which the power supply voltage must fall before asserting the DROOP signal is lower than the threshold above which the power supply voltage must rise to deassert the DROOP signal.
[0034] In some embodiments, described in more detail below, the fast droop detectors of the power monitors 225 and 234 implement a more extensive control mechanism in which the amount of throttling is stepped according to the current amount of throttling. For this type of throttling, the THROTTLE signal includes not only a command to throttle the activity of each coherent master port and coherent slave port, but also the amount of throttling. In this way, longer term excessive workload is throttled back to a sustainable level until the workload is reduced without leaving the current P state.
[0035] Figure 3 is a block diagram of a portion of a controller 300 suitable for use in the controller 224 of Figure 2, in accordance with some embodiments. The controller 300 generally includes a first state machine 310, a first throttle register set 320, a second state machine 330, a second throttle register set 340, and a throttle logic circuit 360.
[0036] The first state machine 310 has a first input for receiving a first throttle input labeled "THROTTLE SOURCE1", a second input, and an output. In the controller 300, the state machine 310 is responsive to a DROOP signal from the power supply monitor 225 as a throttle source. A second input of the state machine 310 receives an output of a throttle register set 320 that specifies parameters of throttle operation associated with a power supply droop condition. In some embodiments, the parameters include an initial step size, an entry timer value, and an exit timer value. The manner in which the state machine 310 uses these parameters in response to a power supply droop condition is described further below. The state machine 310 has an output for providing a control signal that specifies the throttle operation.
[0037] The second throttle state machine 330 is a nThe state machine 330 has a first input for receiving a first throttle input labeled "DROOP", a second input, and an output. In the controller 300, the state machine 310 is responsive to another DROOP signal as a throttle source, such as the output of a temperature sensor in the form of a temperature signal labeled "T". A second input of the state machine 330 receives the output of one or more throttle registers 340 that specify parameters of the throttle operation associated with a power supply droop condition. In some embodiments, these parameters may include an initial step size, an entry timer, and an exit timer, while in other embodiments, these parameters may include different parameters specific to temperature throttling, which may be different from those used for droop throttling. The state machine 330 has an output for providing a control signal that specifies the throttle operation.
[0038] Throttle logic 360 has inputs connected to the outputs of each state machine, such as state machines 310 and 330, and an output for providing a THROTTLE signal to the appropriate functional circuitry.
[0039] Controller 300 is one example of how the droop-based performance throttling mechanism described herein can be integrated with and leverage the presence of one or more throttling mechanisms, such as the temperature-based throttling shown in Figure 3. The throttle logic 360 can be implemented in a variety of ways to implement a variety of throttling policies. According to some embodiments, controller 300 can select the deepest amount of throttling indicated by a throttling state machine, such as state machine 310 responsive to power supply droop and state machine 330 responsive to over-temperature.
[0040] Figure 4 is a timing diagram 400 illustrating an example of the operation of the controller 300 of Figure 3 when responding to power supply droop. In timing diagram 400, the horizontal axis represents time in nanoseconds (ns) and the vertical axis represents the DROOP signal in volts and the throttle amount in percentage. Specifically, timing diagram 400 shows a waveform 410 representing the DROOP signal in volts and a waveform 420 showing the throttle amount as a percentage of available bandwidth.
[0041] As shown in waveform 410, the DROOP signal has an inactive state at a relatively low voltage and an active state at a relatively high voltage, representing the state of the DROOP signal over time. Thus, when the DROOP signal is at a logic low voltage, the DROOP signal represents that the power supply voltage has risen above the high threshold, and when the DROOP signal is at a logic high voltage, the DROOP signal represents that the power supply voltage has fallen below the low threshold.
[0042] Also, the timing diagram 400 is a timing chart from "t0" to "t 12 3 illustrates various time points of interest, successively labeled "Step 0." Prior to time t0, state machine 310 receives the DROOP signal in a logic low (deasserted) state and does not throttle the operation of the associated circuitry (a state known as "Step 0"). At time t0, the fast droop detector detects that the associated power supply voltage has fallen below a low threshold and asserts the DROOP signal. When the DROOP signal is asserted, controller 300 implements a throttling action that reduces the performance of data fabric 220 by a percentage by an initial step amount. A timer within state machine 310 counts to determine the amount of time the DROOP signal is active, and when it times out at time t1, state machine 310 increases the throttle amount by an additional initial step amount such that the throttle amount is increased to "Step 2." When the timer times out again at time t2, state machine 310 further increases the throttle amount by an additional initial step amount such that the throttle amount is increased to "Step 3."
[0043] After time t1, throttling begins at VDDINT V rises momentarily above the high threshold, causing the timer to reset. DDINT This is sufficient to reduce device activity on the domain. The DROOP signal is reasserted at time t4 before the expiration of the exit timer amount, so the throttle remains in step 3 until the timer reaches the entry timer value just after t4, at which point the throttle amount is increased by another initial step amount to reach "step 4".
[0044] However, at t5, the performance throttling mechanism has begun to mitigate the droop sufficiently so that the DROOP is removed for a more sustained period of time. At time t6, the EXIT timer times out, reducing the throttle amount to step 3. Shortly thereafter, the EXIT timer times out again, further reducing the throttle amount to step 2. However, this reduction in throttling causes the fast droop detector to reassert the DROOP signal, so that at time "t7," state machine 310 again increases the throttle percentage to step 3. After the ENTY TIMER times out again, state machine 310 again increases the throttle percentage back to step 4. If the workload initiated by a particular software program remains relatively high and constant, these periodic changes in throttle amount may reach a steady state where they vary between two or more adjacent step amounts.
[0045] After time t8, the processor workload decreases and the THROTTLE signal is then deasserted. Finally, at time t 12 At time t9, t 10 , t 11 , t 12 At step 3, the exit timer value repeatedly elapses as the state machine 310 successively decreases the throttle amount through steps 3, 2, and 1.
[0046] By including performance throttling triggered by power supply voltage droop in various embodiments described herein, the data processing system quickly reduces performance, but only by the amount necessary to alleviate the droop. Thus, as shown in Figure 4, the responsiveness is on the nanosecond time scale, in contrast to the relatively slow P-state mechanism. The voltage component of the P-state voltage-frequency pair requires a smaller margin to be built in, so the processor consumes less power during the non-droop state.
[0047] The throttling parameters and droop thresholds used by state machine 310 are set according to the characteristics of the circuit blocks affected by throttling and must be responsive enough to avoid program disturb due to power supply droop. In one aspect, the throttling further includes throttling a flow of memory access requests from the memory accessing agents to the external memory at the memory controller and the data processing system setting a programmable droop threshold in response to a type of memory accessed by the memory controller. In another aspect, the memory controller sets a first throttle amount to a programmable step size in response to a droop signal becoming active, increases the first throttle amount when the droop signal remains active for a programmable assertion time, and decreases the first throttle amount when the droop signal is inactive for a programmable deassertion time, and the data processing system sets the droop threshold in accordance with the type of external memory. An example of these considerations is now described with respect to a memory controller throttling mechanism.
[0048] 5 is a timing diagram 500 illustrating the reaction time of the data fabric throttling system of FIG. 3 to total data processor current consumption for various throttle amounts. In timing diagram 500, the horizontal axis represents time in ns and the vertical axis represents data processing system current in amperes (A). Timing diagram 500 shows three points of interest, labeled "t0," "t1," and "t2." Timing diagram 500 begins at t0, when the memory controller consumes no current, and ends at t2, when the memory controller consumes "I MAX t1, where the current saturates at the current labeled "t1" and DROOP reaches its maximum value. DDINTThe initial reaction time of all its connected components on the domain, i.e., the amount of time before the system starts to react to the throttle and lower activity and power consumption, is between t1 and t2, and DROOP needs to be detected that amount of time before the saturation point at t2. Thus, the power supply monitor 225 needs to detect the droop and assert the DROOP signal at a threshold corresponding to time t1. As shown in FIG. 5, the throttling mechanism starts to reduce the power supply voltage droop and the current at approximately the same time that the current reaches its saturation value. However, the existing backpressure mechanism takes longer to reduce the current in the data processor by the step size because it must propagate all the way back through the data fabric 220 to the memory accessing agent. At a 25% throttle amount, the throttle starts to reduce until it converges at a 25% current reduction. Similarly, at 50%, 75% and 100% throttle amounts, the total current converges after approximately the same amount of time. Thus, by throttling the memory controller traffic, the total workload of the chip is also reduced through the existing backpressure mechanism.
[0049] Specific values for saturation currents, reaction times, pipeline depths, etc. will vary from embodiment to embodiment, but the analysis techniques described with respect to Figure 5 for the particular data processing system shown and described herein can be applied accordingly to these different embodiments of data processing system components.
[0050] An integrated circuit including the throttle mechanism described herein or any portion thereof may be described or represented by a computer accessible data structure in the form of a database or other data structure that may be read and used by a program to directly or indirectly manufacture the integrated circuit. For example, the data structure may be a behavioral level description or a register transfer level (RTL) description of the hardware functionality in a high level design language (HDL) such as Verilog or VHDL. The description may be read by a synthesis tool that may synthesize the description to generate a netlist that includes a list of gates from a synthesis library. The netlist includes a set of gates that represent the functionality of the hardware that comprises the integrated circuit. The netlist may then be placed and routed to generate a data set that describes the geometric shapes to be applied to a mask. The mask may then be used in various semiconductor manufacturing processes to manufacture the integrated circuit. Alternatively, the database on the computer accessible storage medium may be a netlist (with or without a synthesis library) or a data set, or Graphic Data System (GDS) II data, if desired.
[0051] Although specific embodiments have been described, various modifications to these embodiments will be apparent to those skilled in the art. For example, while this application describes functional throttling in the data fabric and memory controller, in other embodiments, throttling may be applied elsewhere in the architecture of the data processor, such as directly to the memory accessing agents themselves, their caches, etc. The amount of time to enter and exit at each throttling step and the throttling step size may be fixed or programmable. Each power supply monitor with fast droop detector may be designed to be throttled circuitry or may be separate.
[0052] Therefore, the appended claims are intended to cover all modifications of the disclosed embodiments that fall within the scope of the disclosed embodiments.
Claims
1. 1. A method for controlling a data processing system, comprising: detecting a droop in a power supply voltage of functional circuitry of said data processing system greater than a programmable droop threshold; throttling operation of the data processing system in response to detecting the droop in accordance with a programmable step size, a programmable assertion time, and a programmable deassertion time specified by outputs of one or more throttle registers. method.
2. The throttling comprises: throttling a flow of memory access requests between a memory access agent and a memory access responder through the data fabric.
2. The method of claim 1.
3. The throttling comprises: throttling the flow of memory access requests using a coherent master port coupled to the memory access agent and a coherent slave port coupled to the memory access responder via a fabric transport layer. The method of claim 2.
4. The throttling comprises: throttling, at the memory controller, a flow of memory access requests from the memory access agent to the external memory; 2. The method of claim 1.
5. and wherein the data processing system sets the programmable droop threshold in response to a type of memory being accessed by the memory controller. The method of claim 4.
6. The throttling comprises: responsive to detecting the droop, setting a throttle amount according to the programmable step size; increasing the throttle amount by the programmable step size if the power supply voltage remains below the programmable droop threshold for the programmable assertion time; and decreasing the throttle amount by the programmable step size when the power supply voltage is above the programmable droop threshold for the programmable deassertion time.
2. The method of claim 1.
7. operating at least one processor core of the data processing system in a respective operating power state defined by a nominal clock frequency and a nominal voltage; and maintaining a nominal clock frequency and a nominal voltage of each of the at least one processor core during the throttling.
2. The method of claim 1.
8. 1. A data processing system comprising: A plurality of memory access agents; A plurality of memory access responders; a data fabric for coupling memory access requests and memory access responses between the plurality of memory access agents and the plurality of memory access responders; a droop detector activating a droop signal in response to droop in a power supply voltage of the data processing system falling below a droop threshold; the data fabric responsive to the droop signal uses backpressure to throttle a flow of memory access requests between the plurality of memory access agents and the plurality of memory access responders. Data processing system.
9. the data fabric throttles the flow of memory access requests according to a programmable step size, a programmable assertion time, and a programmable deassertion time.
9. The data processing system of claim 8.
10. The data fabric comprises: a plurality of coherent master ports coupled to respective ones of the plurality of memory access agents; a plurality of coherent slave ports coupled to respective ones of the plurality of memory access responders; a fabric transport layer for routing memory access requests and memory access responses between the plurality of coherent master ports and the plurality of coherent slave ports; a controller for providing a total throttle amount to the plurality of coherent master ports and the plurality of coherent slave ports in response to the droop signal.
9. The data processing system of claim 8.
11. The controller: at least one register for storing a programmable step size, a programmable assert time, and a programmable deassert time; a first throttle state machine coupled to the at least one register and configured to provide a first throttle amount as a function of the programmable step size, the programmable assert time, and the programmable deassert time.
11. The data processing system of claim 10.
12. The first throttle state machine includes: responsive to said droop signal becoming active, setting a first throttle amount to said programmable step size; increasing the first throttle amount if the droop signal remains active for the programmable assertion time; decreasing the first throttle amount when the droop signal is inactive during the programmable deassertion time.
12. The data processing system of claim 11.
13. 1. A data processing system comprising: A plurality of memory access agents; a memory controller adapted to be coupled to an external memory and for controlling access to said external memory using a corresponding memory access protocol; a data fabric for coupling the plurality of memory access agents to the memory controller; a droop detector coupled to the memory controller to detect a droop below a droop threshold in a power supply voltage of the data processing system and to provide a droop signal in response to detecting the droop; the data processing system throttles operation of the data processing system in response to the droop signal according to a programmable step size, a programmable assertion time, and a programmable deassertion time specified by outputs of one or more throttle registers. Data processing system.
14. The memory controller includes: set a first throttle amount to the programmable step size in response to the droop signal becoming active; increasing the first throttle amount if the droop signal remains active for the programmable assertion time; decreasing the first throttle amount when the droop signal is inactive during the programmable deassertion time.
14. The data processing system of claim 13.
15. the data processing system sets the droop threshold according to a type of the external memory.
15. The data processing system of claim 14.
Citation Information
Patent Citations
Storage Device With Power Management Throttling
US20170212579A1
Input Voltage Protection
US20190377405A1
Temperature Control Loop for Integrated Circuit
US20230031415A1
Power-aware memory controller circuitry
US9477586B1