Providing media power telemetry for virtual machines (VMs) in processor-based devices

CN122514743APending Publication Date: 2026-08-04MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
MICROSOFT TECHNOLOGY LICENSING LLC
Filing Date
2025-01-03
Publication Date
2026-08-04

AI Technical Summary

Technical Problem

然而,该方法没有考虑到由每个操作消耗的功率量可以基于控制器电路的工作负载而变化的事实

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122514743A_ABST
    Figure CN122514743A_ABST
Patent Text Reader

Abstract

This document discloses providing media power telemetry for virtual machines (VMs) in a processor-based device. In one embodiment, the processor-based device provides controller circuitry including power telemetry circuitry and a power management processor. The power telemetry circuitry is configured to determine whether a media access request corresponding to a power telemetry event and sent to a media device is detected, and to determine whether the media access request matches an event selection filter specified by an event selection control and status register (CSR) corresponding to the power telemetry event. If so, the power telemetry circuitry increments a power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type of the media access request. The power management processor determines a power management operation based on the power telemetry counter corresponding to the power telemetry event and applies the power management operation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The technology disclosed herein relates to the use of virtual machines (VMs) in processor-based devices, and more specifically, to optimizing the power and thermal management of processor-based devices that execute VMs. Background Technology

[0002] Virtualization is a technology that allows conventional processor-based devices to create and execute software-based computer system emulations known as "virtual machines" or "VMs." A VM consists of a computer image file that behaves like a physical computer system when executed by one or more host-based processor-based devices. The execution of a VM is controlled and managed by a "hypervisor" or "virtual machine manager (VMM)" running on the host-based processor-based devices. The hypervisor allocates the processor resources, memory, and storage space of the host-based processor-based devices to each running VM and ensures that each VM is isolated from the resources allocated to other running VMs and the hypervisor itself. This isolation gives VMs the advantage of complete independence from each other and from the host-based processor-based devices, enabling increased flexibility and portability relative to physical computer systems.

[0003] Virtual machines (VMs) are typically capable of executing any workload that can be executed by the corresponding physical computer system. Such workloads can vary in their short-term and long-term usage of the underlying physical resources, such as processor capacity, memory space and bandwidth, and persistent storage space and bandwidth. Therefore, workloads executed by a VM can affect the power and / or thermal levels of the underlying host-based processor-based device(s). To avoid exceeding the power and thermal limits of the host-based processor-based device, the power management processor and / or software on the host-based processor-based device can perform power management operations, such as clock throttling, when necessary. However, such power management operations can negatively impact workload performance.

[0004] One approach to minimizing the potential requirements of power management operations involves taking into account the media power consumption of VMs when assigning them to specific physical computing resources (e.g., a particular system-on-a-chip (SoC), platform, or rack, as a non-limiting example). In this way, multiple VMs can be distributed more efficiently across physical computing resources, making it more likely that each host-based processor-based device remains within its power and thermal constraint envelope. A conventional implementation of this method tracks discrete counts of different operations performed by the controller circuitry, such as encrypted memory reads, encrypted memory writes, unencrypted memory reads, and unencrypted memory writes. These discrete counts are then read at specific intervals and mathematically combined to generate a value representing the power consumed during that interval. However, this method does not account for the fact that the amount of power consumed by each operation can vary based on the workload of the controller circuitry. Furthermore, this method is inefficient in terms of processor area because measuring the media power consumption of multiple VMs requires a separate set of multiple counters for each VM. Summary of the Invention

[0005] The exemplary embodiments disclosed herein provide media power telemetry for virtual machines (VMs) in a processor-based device. In this regard, in one exemplary embodiment, the processor-based device provides controller circuitry including power telemetry circuitry configured to collect power telemetry by indirectly measuring the media power consumption of the VM. The processor-based device also provides a power management processor configured to use the power telemetry in determining and performing power management operations. In exemplary operation, the power telemetry circuitry determines whether a media access request corresponding to a power telemetry event and sent to a media device (e.g., a memory device) of the processor-based device is detected. The power telemetry event may include, for example, an event indicating that the media access request is received from a specific VM or from a specific group of VMs. In response to detecting a media access request, the power telemetry circuitry determines whether the media access request matches an event selection filter specified by an event selection control and status register (CSR) corresponding to the power telemetry event. In some embodiments, determining whether a media access request matches an event selection filter may include: determining whether the result of an AND operation between a request mask value specified by the event selection CSR and an identifier of the media access request matches a corresponding request matching value specified by the event selection CSR. Some embodiments may provide that determining whether a media access request matches an event selection filter includes: determining whether the result of an AND operation between a request mask value specified by the event selection CSR and an identifier of the media access request does not match a corresponding request matching value specified by the event selection CSR.

[0006] In response to determining a media access request matching event selection filter, the power telemetry circuitry increments the power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type. The relative power value used to increment the power telemetry counter represents the power consumed for that media access request type, such as one or more of the following (as non-limiting examples): controller circuitry, physical interface, and media device. Subsequently, the processor-based device's power management processor determines a power management operation based on the power telemetry counter corresponding to the power telemetry event. The power management processor then applies the power management operation. In this way, the media power consumption of multiple VMs and / or VM groups can be efficiently and simultaneously tracked using a single aggregated power telemetry counter for each VM or VM group, based on multiple underlying operations.

[0007] In some embodiments, the relative power value is determined by a power telemetry circuit using a relative power CSR that includes multiple relative power fields. Each relative power field in the relative power CSR is associated with a different media access request type and stores the relative power value for that media access request type. In such embodiments, as part of incrementing a power telemetry counter, the power telemetry circuit identifies the relative power field corresponding to the media access request type among the multiple relative power fields of the relative power CSR and retrieves the relative power value from the relative power field.

[0008] Some embodiments also provide that the relative power CSR is one of a plurality of relative power CSRs, each of the plurality of relative power CSRs being associated with a different media utilization state representing the workload level of the controller circuitry. Such embodiments may provide that the power telemetry circuitry selects a relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuitry. In some such embodiments, the relative power CSR may be selected by comparing the current media utilization state of the controller circuitry with one or more utilization thresholds stored in a utilization threshold field of a media utilization threshold CSR.

[0009] According to some embodiments, a media access vector comprising multiple bits can be used to track the current media utilization state of a controller circuit. Upon detecting a media access request, a power telemetry circuit can increment the bit among the multiple bits corresponding to the current time interval (e.g., the most recent execution cycle of the controller circuit, as a non-limiting example). If no media access request is detected during the current time interval, the power telemetry circuit can clear the bit among the multiple bits corresponding to the current time interval. The current media utilization state of the controller circuit can then be determined by counting the number of bits set among the multiple bits of the media access vector. In some embodiments, a media access counter updated based on the previous value of the bit among the multiple bits corresponding to the current time interval can be used to track the number of bits set. For example, if the value of a bit is updated from a previous value of zero (0) to one (1), the media access counter can be incremented, or if the value of a bit is changed from a previous value of one (1) to zero (0), the media access counter can be decremented. The number of bits set can then be determined based on the value of the media access counter. The power telemetry circuit can then determine the current media utilization state based on the value of the media access counter.

[0010] In another exemplary embodiment, the processor-based device includes controller circuitry comprising power telemetry circuitry and a power management processor. The power telemetry circuitry is configured to determine whether a media access request corresponding to a power telemetry event and sent to a media device is detected. The power telemetry circuitry is further configured to, in response to determining that a media access request corresponding to a power telemetry event and sent to a media device is detected, determine whether the media access request matches an event selection filter specified by an event selection CSR corresponding to the power telemetry event. The power telemetry circuitry is further configured to, in response to determining that the media access request matches the event selection filter, increment a power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type of the media access request. The power management processor is configured to determine a power management operation based on the power telemetry counter corresponding to the power telemetry event. The power management processor is also configured to apply the power management operation.

[0011] In another exemplary embodiment, a method is provided for providing media power telemetry for a VM in a processor-based device. The method includes: determining, by a power telemetry circuit of a controller circuit of the processor-based device, that a media access request corresponding to a power telemetry event and sent to a media device in the processor-based device has been detected. The method further includes: in response to determining that a media access request corresponding to a power telemetry event and sent to a media device in the processor-based device has been detected, the power telemetry circuit determines that the media access request matches an event selection filter specified by an event selection CSR corresponding to the power telemetry event. The method further includes: in response to determining that the media access request matches the event selection filter, the power telemetry circuit increments a power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type of the media access request. The method additionally includes: a power management processor of the processor-based device determining a power management operation based on the power telemetry counter corresponding to the power telemetry event. The method further includes: the power management processor applying the power management operation.

[0012] In another exemplary embodiment, a non-transitory computer-readable medium is provided, having stored thereon computer-executable instructions that, when executed by a processor device of a processor-based device, cause the processor device to determine whether a media access request corresponding to a power telemetry event and sent to a media device of the processor-based device has been detected. The computer-executable instructions further cause the processor device to: determine, in response to determining that a media access request corresponding to a power telemetry event and sent to a media device has been detected, whether the media access request matches an event selection filter specified by an event selection CSR corresponding to the power telemetry event. The computer-executable instructions further cause the processor device to: in response to determining that the media access request matches the event selection filter, increment a power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type of the media access request. The computer-executable instructions additionally cause the processor device to determine a power management operation based on the power telemetry counter corresponding to the power telemetry event. The computer-executable instructions further cause the processor device to apply the power management operation.

[0013] Those skilled in the art will understand the scope of this disclosure and recognize its additional embodiments after reading the following detailed description of preferred embodiments in conjunction with the accompanying drawings. Attached Figure Description

[0014] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate several embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0015] Figure 1This is a schematic diagram of an exemplary processor-based device, which includes power telemetry circuitry configured to provide media power telemetry for a virtual machine (VM);

[0016] Figure 2 The illustration shows some embodiments. Figure 1 A block diagram showing exemplary fields and contents of the Event Selection Control and Status Register (CSR);

[0017] Figure 3 The illustration shows some embodiments. Figure 1 A diagram showing exemplary fields and contents of the relative power CSR;

[0018] Figure 4 The illustration shows some embodiments. Figure 1 The media utilizes an exemplary field and content diagram of CSR thresholds;

[0019] Figures 5A-5C It is a flowchart illustrating exemplary operations for providing media power telemetry for a VM according to some embodiments; and

[0020] Figure 6 It is an exemplary processor-based device (such as) configured to provide media power telemetry for VMs. Figure 1 A block diagram of a processor-based device. Detailed Implementation

[0021] The exemplary embodiments disclosed herein provide media power telemetry for virtual machines (VMs) in a processor-based device. In this regard, in one exemplary embodiment, the processor-based device provides controller circuitry including power telemetry circuitry configured to collect power telemetry by indirectly measuring the media power consumption of the VM. The processor-based device also provides a power management processor configured to use the power telemetry in determining and performing power management operations. In exemplary operation, the power telemetry circuitry determines whether a media access request corresponding to a power telemetry event and sent to a media device (e.g., a memory device) of the processor-based device has been detected. The power telemetry event may include, for example, an event indicating that the media access request is received from a specific VM or a specific group of VMs. In response to detecting a media access request, the power telemetry circuitry determines whether the media access request matches an event selection filter specified by an event selection control and status register (CSR) corresponding to the power telemetry event. In some embodiments, determining whether the media access request matches the event selection filter may include: determining whether the result of an AND operation between a request mask value specified by the event selection CSR and an identifier of the media access request matches a corresponding request match value specified by the event selection CSR. Some embodiments may provide that determining whether a media access request matches an event selection filter includes: determining whether the result of an AND operation between a request mask value specified by the event selection CSR and the identifier of the media access request does not match a corresponding request matching value specified by the event selection CSR.

[0022] In response to determining a media access request matching event selection filter, the power telemetry circuitry increments a power telemetry counter corresponding to the power telemetry event by a relative power value associated with the media access request type. The relative power value used to increment the power telemetry counter represents the power consumed for that media access request type, such as controller circuitry, physical interface, or media device (as a non-limiting example). Subsequently, based on the power telemetry counter corresponding to the power telemetry event, a processor-based device power management processor determines a power management operation. The power management processor then applies the power management operation. In this way, the media power consumption of multiple VMs and / or VM groups can be efficiently and simultaneously tracked using a single aggregated power telemetry counter for each VM or VM group, based on multiple underlying operations.

[0023] In some embodiments, the relative power value is determined by a power telemetry circuit using a relative power CSR that includes multiple relative power fields. Each relative power field in the relative power CSR is associated with a different media access request type and stores a relative power value for that media access request type. In such embodiments, as part of incrementing a power telemetry counter, the power telemetry circuit identifies the relative power field corresponding to the media access request type among the multiple relative power fields of the relative power CSR and retrieves the relative power value from the relative power field.

[0024] Some embodiments also provide that the relative power CSR is one of a plurality of relative power CSRs, each relative power CSR being associated with a different media utilization state representing the workload level of the controller circuitry. Such embodiments may provide that the power telemetry circuitry selects a relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuitry. In some such embodiments, the relative power CSR may be selected by comparing the current media utilization state of the controller circuitry with one or more utilization thresholds stored in a utilization threshold field of a media utilization threshold CSR.

[0025] According to some embodiments, the current media utilization state of the controller circuit can be tracked using a media access vector comprising multiple bits. Upon detecting a media access request, the power telemetry circuit may increment the bit among the multiple bits corresponding to the current time interval (e.g., the most recent execution cycle of the controller circuit, as a non-limiting example). If no media access request is detected during the current time interval, the power telemetry circuit may clear the bit among the multiple bits corresponding to the current time interval. The current media utilization state of the controller circuit can then be determined by counting the number of bits set among the multiple bits of the media access vector. In some embodiments, the number of bits set can be tracked using a media access counter that is updated based on the previous value of the bit among the multiple bits corresponding to the current time interval. For example, if the value of the bit is updated from a previous value of zero (0) to one (1), the media access counter may be incremented, or if the value of the bit is changed from a previous value of one (1) to zero (0), the media access counter may be decremented. The number of bits set can then be determined based on the value of the media access counter. The power telemetry circuit can then determine the current media utilization state based on the value of the media access counter.

[0026] in this regard, Figure 1An exemplary processor-based device 100 including a processor device 102 is illustrated. The processor device 102 may include one or more processor cores (not shown), each of the one or more processor cores may include instruction processing circuitry (not shown), which includes an execution pipeline (not shown) for executing computer instructions. It should be understood that some embodiments of the processor-based device 100 may include multiple processor devices 102, rather than... Figure 1 The example shows a single processor device 102, and further, the processor-based device 100 may be one of a plurality of processor-based devices 100 organized as a cluster. In some embodiments, as a non-limiting example, the processor-based device 100 may include a system-on-a-chip (SoC).

[0027] like Figure 1 As shown, processor device 102 is communicatively coupled to media device 104 via controller circuitry 106. In some embodiments, media device 104 may include a memory device, such as double data rate synchronous dynamic random access memory (DDR SDRAM). Although media device 104 in Figure 1 While shown as an integrated element of processor-based device 100, some embodiments may provide that media device 104 includes an external memory device as a non-limiting example. Controller circuitry 106 may include memory controller circuitry configured to manage access to data stored by media device 104.

[0028] Figure 1 The processor device 102 is also communicatively coupled to the power management processor 108 of the processor-based device 100. The power management processor 108 is configured to perform power management operations to control all power consumption and thermal levels of the processor-based device 100. The power management operations performed by the power management processor 108 may include, for example, clock throttling of the processor device 102. In some embodiments, as a non-limiting example, the power management processor 108 may include any combination of circuitry, processor-based software, artificial intelligence (AI) models, etc., for implementing and executing algorithms for performing power management operations.

[0029] exist Figure 1In the example, processor device 102 is executing hypervisor 110 to provide virtualization capabilities. Executing within hypervisor 110 are VMs 112(0)-112(V), each of which includes a computer image file (not shown) that behaves like a physical computer system when executed by processor device 102. Hypervisor 110 is configured to allocate physical resources of processor-based device 100 (such as processor resources of processor device 102 and / or storage resources of media device 104) to VMs 112(0)-112(V) and ensure that each VM in VMs 112(0)-112(V) is isolated from the physical resources allocated to other VMs and hypervisor 110 itself. Figure 1 The example hypervisor 110 supports organizing VMs (such as VMs 112(1)-112(V)) into VM groups 114. VMs 112(0)-112(V) and VM group 114 may each be associated with identifiers such as Memory Partition and Performance Monitoring (MPAM) performance monitoring group identifier, MPAM partition identifier, and / or MPAM namespace selector identifier.

[0030] VMs 112(0)-112(V) can seek access to media device 104 of processor-based device 100 by transmitting media access requests (such as media access request 116). Media access request 116 corresponds to a media access request type, such as an encrypted read request, an encrypted write request, an unencrypted read request, or an unencrypted write request (as a non-limiting example). Media access request 116 also includes an identifier 118 that associates media access request 116 with a specific VM or a group of VMs. Thus, for example, identifier 118 of media access request 116 may specify the MPAM performance monitoring group identifier, MPAM partition identifier, and / or MPAM namespace selector identifier of the initiating VM or group of VMs.

[0031] Figure 1 The processor-based device 100 and its constituent elements may encompass any of known digital logic elements, semiconductor circuits, processing cores, and / or memory structures, as well as other elements or combinations thereof. The embodiments described herein are not limited to any particular arrangement of elements, and the disclosed techniques can be readily extended to various structures and layouts on semiconductor sockets or packages. It should be understood that some embodiments of the processor-based device 100 may include, in addition to… Figure 1 Components other than those illustrated in the figure. For example, processor device 102 may also include one or more instruction caches, unified caches, controller circuitry, interconnect buses, and / or additional memory devices, caches, and / or controller circuitry.

[0032] As described above, power management operations performed by the power management processor 108 of the processor-based device 100 can be used to prevent the power and thermal limits of the processor-based device 100 from being exceeded. However, such power management operations may negatively impact the performance of workloads performed by VMs 112(0)-112(V). One approach to mitigate these negative impacts involves assigning each VM in the VMs 112(0)-112(V) to a specific physical computing resource (e.g., a specific performance processor, platform, or rack on a SoC, as a non-limiting example). This approach allows the VMs 112(0)-112(V) to be distributed more efficiently among physical computing resources, making it more likely that the physical computing resources will remain within their power and thermal limit envelopes. However, this method may require separate sets of multiple counters for each VM in VMs 112(0)-112(V) and may not take into account that the amount of power consumed by a media access request varies depending on the type of media access request and the current media utilization of the controller circuit 106.

[0033] In this respect, controller circuitry 106 includes power telemetry circuitry 120 configured to provide power telemetry for VM 112(0)-112(V). Media power telemetry can be used by power management processor 108 to obtain a more accurate VM power estimate by combining per-VM processor power and media power, thereby more intelligently determining appropriate power management operations to manage the power and thermal state of processor-based device 100. Power telemetry circuitry 120 is configured to monitor multiple power telemetry events (in Figure 1 The power telemetry events 122(0)-122(P) are labeled as “Power Telemetry Events” (“PWR TEL EVENT”). Each of the power telemetry events 122(0)-122(P) corresponds to an individual VM (such as VM 112(0)) or a group of VMs (such as VM group 114). Each of the power telemetry events 122(0)-122(P) may include, for example, an event indicating that a media access request (such as media access request 116) is received from an individual VM (such as VM 112(0)); or an event indicating that media access request 116 is received from a group of VMs (such as VM group 114).

[0034] For each power telemetry event in power telemetry events 122(0)-122(P), the power telemetry circuit 120 maintains the corresponding event selection CSR (in Figure 1The event selection filter ("EVENT SEL CSR") 124(0)-124(P) is marked as "Event Selection CSR" and defines an event selection filter (in... Figure 1 The event selection filter ("EVENTSEL FILTER") 126 is used to compare media access requests corresponding to power telemetry events 122(0)-122(P). The power telemetry circuit 120 also maintains multiple power telemetry counters (in... Figure 1 The power telemetry counters 128(0)-128(P) are labeled as “counters”, where multiple power telemetry counters correspond to power telemetry events 122(0)-122(P) and are used to aggregate relative power values ​​indicating the power consumed by media access requests corresponding to power telemetry events 122(0)-122(P). Power telemetry counters 128(0)-128(P) may include, for example, performance monitoring unit (PMU) counters. It should be understood that although event selection CSRs 124(0)-124(P) and power telemetry counters 128(0)-128(P) are... Figure 1 The event selectors CSR 124(0)-124(P) and the power telemetry counters 128(0)-128(P) are shown as integrated elements of the power telemetry circuit 120, but some embodiments may provide that the event selectors CSR 124(0)-124(P) and the power telemetry counters 128(0)-128(P) are located outside the power telemetry circuit 120.

[0035] In exemplary operation, power telemetry circuitry 120 determines whether a media access request (such as media access request 116) corresponding to one of the power telemetry events 122(0)-122(P) (e.g., power telemetry event 122(0) as a non-limiting example) and sent to media device 104 of processor-based device 100 is detected. If so, power telemetry circuitry 120 determines whether media access request 116 matches event selection filter 126 corresponding to power telemetry event 122(0). Event selection filter 126 is defined by a field (not shown) of an event selection CSR (e.g., event selection CSR 124(0)) corresponding to power telemetry event 122(0). For example, in some embodiments, event selection CSR 124(0) may specify one or more request matching values ​​(not shown) and one or more corresponding request mask values ​​(not shown). Determining whether media access request 116 matches event selection filter 126 may include: power telemetry circuitry 120 determining whether the result of an AND operation between the request mask value specified by event selection CSR 124(0) and the identifier 118 of media access request 116 matches the corresponding request match value specified by event selection CSR 124(0), or determining whether the result of the AND operation does not match the corresponding request match value. Exemplary fields of event selection CSRs (such as event selection CSR 124(0)) are described below in conjunction with... Figure 2 It was discussed in more detail.

[0036] In response to determining that media access request 116 matches the event selection filter 126 specified by event selection CSR 124(0), power telemetry circuit 120 increments the power telemetry counter 128(0) corresponding to power telemetry event 122(0) by a relative power value associated with the media access request type of media access request 116 (in Figure 1 The value is labeled as “Relative Power Value” (“REL PWR VALUE”). The relative power value 130 represents the amount of power consumed by the controller circuitry 106 (and in some embodiments, the physical interface and / or media device 104) when implementing a media access request of the associated media access request type. The relative power value 130 is “relative” in that it does not necessarily indicate the actual amount of power consumed, but rather indicates that the actual amount of power is scaled to the range of the relative power value 130. For example, if the relative power value 130 is a value represented by eight (8) bits, the actual maximum power consumption of the controller circuitry 106 may be represented by the relative power value 255, while the minimum power consumption of the controller circuitry 106 may be represented by the relative power value zero (0).

[0037] As discussed in more detail below, in some embodiments, the relative power value 130 may vary depending on the media access request type of the media access request 116 (e.g., as a non-limiting example, whether the media access request is an encrypted read access, an encrypted write access, an unencrypted read access, or an unencrypted write access). Some embodiments may also provide that the relative power value 130 for a given media access request type also varies depending on the current media utilization state of the controller circuitry 106. For example, the relative power value 130 may be higher when the controller circuitry 106 is in a lower media utilization state (i.e., experiencing lower workload conditions), and conversely, the relative power value 130 may be lower when the controller circuitry 106 is in a higher media utilization state (i.e., experiencing higher workload conditions).

[0038] The value of power telemetry counter 128(0) represents a measurement of total power consumption caused by, for example, the controller circuitry 106, media device 104, and / or the physical interface between the two. This value can then be used by power management processor 108 to determine and apply power management operations (in... Figure 1 The term is labeled "Power Management Operation" ("PWR MAN OP") 132. For example, the power management processor 108 can determine, based on the value of the power telemetry circuit 120, that the VM 112(0) corresponding to the power telemetry event 122(0) should be assigned to a different processor core, a different processor device 102 (in an embodiment where multiple processor devices 102 exist), or a different processor-based device 100 (in an embodiment where a cluster of multiple processor-based devices 100 exists). In this way, power telemetry counters 128(0)-128(P) can be used to aggregate the relative media power values ​​of each VM and / or VM group 114 in VMs 112(0)-112(V) to efficiently and simultaneously track the media power consumption of VMs 112(0)-112(V) based on multiple underlying operations.

[0039] As described above, the relative power value 130 can vary depending on the media access request type of the media access request 116. For example, the controller circuitry 106 may consume more power when performing an encrypted read or write access than when performing an unencrypted read or write access. Therefore, to provide a relative power value for each different media access request type, in some embodiments, the power telemetry circuitry 120 may include a relative power CSR 134(0). The relative power CSR 134(0) includes a plurality of relative power fields (not shown), each of which corresponds to a different media access request type, and each of the plurality of relative power fields stores a relative power value for that media access request type. When the power telemetry counter 128(0) corresponding to the power telemetry event 122(0) is incremented, the power telemetry circuitry 120 identifies the relative power field in the relative power CSR 134(0) corresponding to the media access request type of the media access request 116, and then retrieves the relative power value 130 from the relative power field.

[0040] To account for different relative power values ​​when the controller circuit 106 is in different media utilization states, in some embodiments, the power telemetry circuit 120 can provide multiple relative power CSRs 134(0)-134(R), each corresponding to a different media utilization state of the controller circuit 106. In such embodiments, the power telemetry circuit 120 tracks the current media utilization state representing the current workload experienced by the controller circuit 106 (in... Figure 1 The current media utilization state 136 is marked as “CURR MEDIA UTIL”, and based on the current media utilization state 136 of the controller circuit 106, a relative power CSR 134(0)-134(R) is selected from a plurality of relative power CSRs 134(0)-134(R).

[0041] In some embodiments, the current media utilization state 136 can be determined by the power telemetry circuit 120 using a media access vector (in... Figure 1The media access vector (“MEDIA ACC VECTOR”) 138 is defined as comprising a plurality of bits 140(0)-140(B). Each bit in bits 140(0)-140(B) of the media access vector 138 corresponds to a specified time interval (e.g., a specified number of execution cycles of the controller circuit 106, as a non-limiting example). Upon detecting a media access request 116, the power telemetry circuit 120 sets a bit (e.g., bit 140(0)) corresponding to the current time interval (e.g., the most recent execution cycle of the controller circuit 106, as a non-limiting example). If the power telemetry circuit 120 does not detect any media access request during the current time interval, the power telemetry circuit 120 clears bit 140(0). The power telemetry circuit 120 can then subsequently determine the current media utilization state 136 of the controller circuit 106 based on the count of the set bits.

[0042] In some embodiments, the media access vector 138 may include a circular buffer comprising a large number of bits 140(0)-140(B), such that determining the number of set bits among the plurality of bits 140(0)-140(B) by checking the value of each bit in the plurality of bits 140(0)-140(B) one by one is extremely inefficient. In such an embodiment, the counting of the set bits among the plurality of bits 140(0)-140(B) can be performed by the power telemetry circuit 120 using a media access counter (in Figure 1 The media access counter ("MEDIA ACC COUNTER") 142 is used for tracking. When the power telemetry circuit 120 sets or clears a bit corresponding to the current time interval, the power telemetry circuit 120 updates the media access counter 142 based on the previous value of the bit corresponding to the current time interval. For example, if the previous value of the bit is zero (0) and the power telemetry circuit 120 sets the value of that bit to one (1), the power telemetry circuit 120 increments the media access counter 142. Conversely, if the previous value of the bit is one (1) and the power telemetry circuit 120 clears the value of that bit to zero (0), the power telemetry circuit 120 decrements the media access counter 142. If the value of the bit is not changed, the power telemetry circuit 120 does not modify the media access counter 142. The power telemetry circuit 120 can then determine the count of the set bit among a plurality of bits 140(0)-140(B) based on the value of the media access counter 142.

[0043] To select a relative power CSR (such as relative power CSR 134(0)) from a plurality of relative power CSRs 134(0)-134(R), in some embodiments, the power telemetry circuit 120 may compare the current media utilization state 136 of the controller circuit 106 with one or more utilization thresholds. The utilization thresholds may be stored in the media utilization threshold CSR (in Figure 1 The corresponding utilization threshold field (not shown) is in the section labeled "Media Utilization Threshold CSR" ("MEDIA UTIL THRESHOLD CSR") 144. The following section combines... Figure 3 and Figure 4 Exemplary content of relative power CSR 134(0)-134(R) and media utilization threshold CSR 144 are discussed in more detail, as well as their use when selecting relative power CSR 134(0) based on media access request type and current media utilization state 136.

[0044] As described above, the power telemetry circuit 120 is configured to determine whether to increment the power telemetry counter 128(0) corresponding to the power telemetry event 122(0) by determining whether the media access request 116 matches the event selection filter 126 specified by the event selection CSR 124(0) corresponding to the power telemetry event 122(0). In this respect, Figure 2 Exemplary fields of event selection CSR 124(0) are illustrated, which together define event selection filter 126 in some embodiments. It should be understood that event selection CSR 124(0) in other embodiments may include more than Figure 2 The fields shown in the diagram may have more or fewer fields, and / or may include fields with... Figure 2 The fields shown in the diagram are different from the fields in the diagram. It should also be understood that, although not in... Figure 1 or Figure 2 The image is shown in the middle, but Figure 1 The event selection CSR 124(1)-124(P) includes [related to] Figure 2 For each event, select the corresponding fields shown in CSR 124(0).

[0045] like Figure 2 As shown, the event selection CSR 124(0) includes a mask / match enable indicator field (in Figure 2 The field marked "MASK / MATCH ENABLE" (200) has no event enable indicator (in the field). Figure 2 The field marked as "NO EVENT ENABLE" (202) and the inverted enable indicator field (in) Figure 2The event selection CSR 124(0) is marked as "INVERT ENABLE" (204). It also includes a performance monitoring group matching field (in...). Figure 2 The field labeled "Performance Monitoring Group Match" ("PERF MON GRP MATCH") 206(0) and the partition identifier (ID) match field (in Figure 2 The fields marked as "Partition ID Match" ("PARTITION ID MATCH") 206(1) and the namespace selector match field (in) Figure 2 The fields marked as “Namespace Selector Match” (“NAMESPACE SEL MATCH”) 206(2) are collectively referred to herein as “Request Match Field 206”. Additionally, Event Selection CSR 124(0) includes the Performance Monitoring Group Mask field (in... Figure 2 The field labeled "Performance Monitoring Group Mask" ("PERF MON GRP MASK") 208(0) and the partition identifier mask field (in) Figure 2 The part is labeled as “Partition ID Mask” (208(1)) and the namespace selector mask field (in Figure 2 The fields labeled “NAMESPACE SEL MASK” (208) are collectively referred to herein as “Request Mask Fields 208”. The purpose and function of each illustrated field are described in Table 1 below: Table 1

[0046] The values ​​stored in the request match field 206 and the request mask field 208 are collectively referred to as "request match value 210" and "request mask value 212" in this document, respectively.

[0047] The mask / match enable indicator field 200 of the event selection CSR 124(0) makes Figure 1 The power telemetry circuit 120 is able to use masking and matched comparison techniques (instead of explicit matching techniques) to determine whether a measurement is being made by a media access request (such as... Figure 1 The power consumed by the media access request 116. This allows the power telemetry circuit 120 to select VM groups for which the corresponding partition identifier portions are the same, and / or the VM groups share the same performance monitoring group value.

[0048] In this regard, as described above, when the mask / match enable indicator field 200 is set to a value of one (1) and the inversion enable indicator field 204 is set to a value of zero (0), if the MPAM performance monitoring group identifier, its MPAM partition identifier, and its MPAM partition namespace selector identifier of the media access request 116 are ANDed with the values ​​of the performance monitoring group mask value 212 (0), the partition ID mask value 212 (1), and the namespace selector mask value 212 (2) respectively, and then matched with the values ​​of the performance monitoring group match value 210 (0), the partition ID match value 210 (1), and the namespace selector match value 210 (2) respectively, the power telemetry circuit 120 will measure the power consumed by the media access request 116. Conversely, when both the mask / match enable indicator field 200 and the inverted enable indicator field 204 are set to a value of one (1), the power telemetry circuit 120 will measure the power consumed by the media access request 116 if the cumulative result of the above matching operation is false. In this way, the inverted enable indicator field 204 enables the power telemetry circuit 120 to measure the power of all media access requests except those media access requests of power telemetry events 122(0)-122(P) corresponding to event selection CSRs 124(0)-124(P).

[0049] The no-event enable indicator field 202 of the event selection CSR 124(0) provides additional flexibility to the power telemetry circuit 120 in determining whether to measure the power consumed by the media access request 116. If the no-event enable indicator field 202 is set to a value of one (1) and the inverted enable indicator field 204 is set to a value of zero (0), the power telemetry circuit 120 will only measure the power consumed by the media access request 116 if the media access request 116 does not match any power telemetry event in which the mask / match enable indicator field 200 of the corresponding event selection CSR 124(0) in the power telemetry events 122(0)-122(P) is set to a value of one (1). In this way, the power telemetry circuit 120 can measure the power of all media access requests except those that correspond to and are being measured by other power telemetry events 122(0)-122(P). If both the No Event Enable Indicator field 202 and the Inverted Enable Indicator field 204 are set to a value of one (1), the matched media access requests will be an aggregation of those media access requests selected by all power telemetry events 122(0)-122(P), for which the mask / match enable indicator field 200 corresponding to the event selection CSR 124(0) is set to a value of one (1).

[0050] Figure 3The illustrations depict some embodiments. Figure 1 An example field for the relative power CSR 134(0)-134(R), where different relative power values ​​can be associated with different media access request types. For example... Figure 3 As shown, each relative power CSR in the relative power CSRs 134(0)-134(R) includes fields corresponding to different media access request types. Therefore, in this example, relative power CSR 134(0) includes: a relative power encrypted write field (in... Figure 3 The value labeled "REL PWR ENC WRITE" (300(0)) stores a relative power value representing the power consumed by the encrypted write operation. Figure 3 The value is labeled as “Relative Power Value” (“REL PWR VAL”) 302(0); and the relative power unencrypted write field (in Figure 3 The data is labeled “REL PWR UNENC WRITE” (300(1)), whose storage represents the relative power value of the power consumed by the unencrypted write operation (in [the context of the data]). Figure 3 The value is labeled as “relative power value” in 302(1). Similarly, relative power CSR 134(0) also includes: relative power encrypted read field (in Figure 3 The data is labeled “REL PWR ENC READ” (300(2)) and its storage represents the relative power value of the power consumed by the encrypted read operation (in Figure 3 The data is labeled as “relative power value” in 302(2); and the relative power unencrypted read field (in Figure 3 The data is labeled "REL PWR UNENC READ" (300(T)), whose storage represents the relative power value of the power consumed by the unencrypted read operation (in...). Figure 3 The value is labeled as "relative power value" (302(T)).

[0051] As mentioned above, the relative power consumed by each media access request type can be determined according to... Figure 1The power required for the controller circuit 106 to perform encrypted media access varies depending on the current media utilization state. For example, during a higher media utilization state (i.e., when the controller circuit is operating under a higher workload), the power required for the controller circuit 106 to perform encrypted media access may differ from the power required to perform encrypted media access during a lower media utilization state. Therefore, some embodiments may provide that each of the plurality of relative power CSRs 134(0)-134(R) corresponds to a different media utilization state. In such an embodiment, for example, relative power CSR 134(0) may correspond to a lower media utilization state, and relative power encrypted write field 300(0), relative power unencrypted write field 300(1), relative power encrypted read field 300(2), and relative power unencrypted read field 300(T) may respectively store relative power values ​​302(0)-302(T), which represent the media power consumption for each media access request type in the lower media utilization state. Accordingly, the relative power CSR 134(R) can correspond to a higher media utilization state. In Figure 3 In the example, the relative power CSR134(R) includes a relative power encrypted write field (in Figure 3 The field marked as "Relative Power Encrypted Write" returned a 304 (0) error, while the field marked as "Relative Power Unencrypted Write" returned a 304 error. Figure 3 The field marked as "Relative power unencrypted write" is 304(1), and the relative power encrypted read field is (in Figure 3 The field marked as "Relative Power Encrypted Read" is 304(2), and the field marked as "Relative Power Unencrypted Read" is in... Figure 3 The data is marked as "Relative Power Unencrypted Read" (304(T)). These fields store relative power values ​​(each relative power value is in...). Figure 3 The values ​​are labeled as “relative power values” (306(0)-306(T)), which represent the media power consumption per media access request type under higher media utilization conditions.

[0052] It should be understood that, although Figure 3 Only two relative power CSRs 134(0) and 134(R) corresponding to two media utilization states are shown, but some embodiments may include more relative power CSRs corresponding to more media utilization states. Additionally, it should be understood that the relative power CSRs 134(0)-134(R) may include more than... Figure 3 The fields shown correspond to more or fewer media access request types.

[0053] As mentioned above Figure 1In some embodiments, the current media utilization state 136 of the controller circuit 106 can be tracked by the power telemetry circuit 120 using, for example, a media access vector 138 or a media access counter 142. The current media utilization state 136 can then be used by the power telemetry circuit 120 to determine an index between zero (0) and the maximum index R of the relative power CSRs 134(0)-134(R), and this index is used to select a corresponding relative power CSR from the relative power CSRs 134(0)-134(R) to retrieve the relative power value of the media access request 116. For example, the power telemetry circuit 120 can compare the current media utilization state 136 with one or more utilization thresholds stored in the media utilization threshold CSRs 144.

[0054] in this regard, Figure 4 The illustration shows exemplary fields that can be provided by the media utilization threshold CSR 144 to store utilization thresholds according to some embodiments. For example... Figure 4 As shown, the media utilization threshold CSR 144 includes multiple utilization threshold fields (in Figure 4 The values ​​labeled "Usage Threshold" ("UTILIZATION THRESHOLD") are 400(0)-400(U), and the corresponding usage thresholds are stored in the data. Figure 4 The values ​​are labeled as “Using threshold values” (“UTIL THR VAL”) 402(0)-402(U). Figure 4 The utilization thresholds 402(0)-402(U) are stored in ascending order of value, wherein the utilization threshold field 400(0) stores the lowest utilization threshold 402(0) in the rightmost bit of the media utilization threshold CSR 144, and the utilization threshold field 400(U) stores the highest utilization threshold 402(U) in the leftmost bit of the media utilization threshold CSR 144.

[0055] To determine the index of one of the relative power CSRs 134(0)-134(R) for selecting relative power CSRs to retrieve the relative power value of media access request 116, the current media utilization state 136 can be compared with one or more utilization thresholds 402(0)-402(U). For example, if the current media utilization state 136 is greater than or equal to zero (0) and less than the minimum utilization threshold 402(0), the power telemetry circuit 120 can determine the index as zero (0); if the current media utilization state 136 is greater than or equal to the utilization threshold 402(0) and less than the utilization threshold 402(1), the index can be determined as one (1); and so on.

[0056] Figures 5A-5CProvide a flowchart illustrating the process of... Figure 1 The power telemetry circuitry 120 and power management processor 108 provide exemplary operation 500 for the VM to provide and use media power telemetry. For clarity, in the description Figures 5A-5C Reference Figures 1-4 The components. It should be understood that, in some embodiments, Figures 5A-5C Some of the operations shown in the diagram can be performed in different ways. Figures 5A-5C The sequence shown in the illustrations occurs, and / or may be omitted in some embodiments.

[0057] Example operation 500 in Figure 5A The power telemetry circuitry (e.g., starting from the controller circuitry of a processor-based device) begins in the controller circuitry of the device. Figure 1 The power telemetry circuit 120 of the controller circuit 106 of the processor-based device 100 determines the power telemetry event (e.g., Figure 1 The power telemetry event 122(0) corresponds to and is sent to the media device (such as) of the processor-based device 100. Figure 1 Media access requests (such as media access requests from media devices 104) Figure 1 Whether a media access request (116) is detected (box 502). In some embodiments, if a media access request is not detected, the power telemetry circuit 120 may clear multiple bits of the media access vector (e.g., Figure 1 The bit in bits 140(0)-140(B) of the media access vector 138 that corresponds to the current time interval (box 504). Some such embodiments may also provide that the power telemetry circuit 120 updates the media access counter (such as...) based on the previous value of that bit in the plurality of bits 140(0)-140(B). Figure 1 Media access counter 142 (e.g., by decrementing media access counter 142) (box 506).

[0058] According to some embodiments, if a media access request 116 is detected, the power telemetry circuit 120 may set a bit in a plurality of bits 140(0)-140(B) of the media access vector 138 corresponding to the current time interval (box 508). In some such embodiments, the power telemetry circuit 120 may also update the media access counter 142 based on the previous value of that bit in the plurality of bits 140(0)-140(B) (e.g., by incrementing the media access counter 142) (box 510).

[0059] In response to the detection of media access request 116, power telemetry circuit 120 determines whether media access request 116 matches an event selection CSR (such as...) corresponding to power telemetry event 122(0). Figure 1The event selection filter specified by CSR 124(0) is the event selection filter (e.g., Figure 1 Event selection filter 126 (box 512). According to some embodiments, the operation of determining whether media access request 116 matches the event selection filter 126 at box 512 may include: power telemetry circuitry 120 determining a request mask value (such as...) specified by event selection CSR 124(0). Figure 2 The request mask value 212) and the identifier of media access request 116 (e.g., Figure 1 Whether the identifier 118) matches the result of the operation is determined by the corresponding request matching value specified by the event selection CSR 124(0) (such as...). Figure 2 The request matching value 210 (box 514). In some embodiments, the operation for determining whether media access request 116 matches the event selection filter 126 at box 512 may include: the power telemetry circuit 120 determining whether the result of the operation of the request mask value 212 specified by the event selection CSR 124(0) and the identifier 118 of media access request 116 does not match the corresponding request matching value 210 specified by the event selection CSR 124(0) (box 516). Then, exemplary operation 500 in Figure 5B Continue at frame 518.

[0060] Now go to Figure 5B In response to determining that media access request 116 matches the event selection filter 126, power telemetry circuitry 120 performs a series of operations (block 518). Some embodiments may provide that power telemetry circuitry 120 can determine the current media utilization state of controller circuitry 106 based on a count of set bits among multiple bits 140(0)-140(B) of media access vector 138 (e.g., Figure 1 The current media utilization state 136 (box 520). According to some embodiments, the power telemetry circuit 120 may determine the current media utilization state 136 (box 522) based on the value of the media access counter 142.

[0061] Next, the power telemetry circuit 120 can select a relative power CSR (such as...) from a plurality of relative power CSRs based on the current media utilization state 136 of the controller circuit 106. Figure 1 The relative power CSR 134(0) among a plurality of relative power CSRs 134(0)-134(R) (box 524). In some embodiments, the operation of box 524 for selecting relative power CSR 134(0) may include: the power telemetry circuit 120 comparing the current media utilization state 136 of the controller circuit 106 with one or more utilization thresholds (e.g., Figure 4The utilization thresholds 402(0)-402(U) (box 526). Then, the power telemetry circuit 120 uses multiple relative power fields (such as relative power CSR 134(0)) in the relative power CSR 134(0). Figure 3 The relative power field (300(0)) among the multiple relative power fields 300(0)-300(T) is identified as the relative power field corresponding to the media access request type (box 528). The power telemetry circuit 120 retrieves the relative power value from the relative power field 300(0) (e.g., Figure 1 The relative power value is 130 (box 530). Then, exemplary operation 500 in Figure 5C Continue at frame 532.

[0062] Now for reference Figure 5C The operation performed by the power telemetry circuit 120 in response to determining the media access request 116 to match the event selection filter 126 continues (box 518). The power telemetry circuit 120 will use a power telemetry counter (such as...) corresponding to the power telemetry event 122(0) to... Figure 1 The power telemetry counter 128(0) increments by a relative power value 130 (box 532) associated with the media access request type of the media access request 116. Subsequently, the power management processor of the processor-based device 100 (e.g., Figure 1 The power management processor 108 determines power management operations (such as...) based on the power telemetry counter 128(0) corresponding to the power telemetry event 122(0). Figure 1 The power management operation 132 is then applied (box 534). The power management processor 108 then applies the power management operation 132 (box 536).

[0063] Figure 6 This is a block diagram of an exemplary processor-based device 600 including a processor 602 (e.g., a microprocessor) and instruction processing circuitry 604. As an example, the processor-based device 600 could be... Figure 1 The processor-based device 100. The processor-based device 600 may be one or more circuits included in an electronic board (such as a printed circuit board (PCB)), a server, a personal computer, a desktop computer, a laptop computer, a personal digital assistant (PDA), a computing tablet, a mobile device, or any other device, and may represent, for example, a server or a user's computer.

[0064] In this example, processor 602 represents one or more general-purpose processing circuits, such as a microprocessor, central processing unit, etc. Processor 602 is configured to execute processing logic in instructions for performing the operations and steps discussed herein. In this example, processor 602 includes instruction cache 606 for temporary, fast-access memory storage of instructions accessible to instruction processing circuitry 604. Instructions fetched or prefetched from memory (such as system memory 608 via system bus 610) are stored in instruction cache 606. Instruction processing circuitry 604 is configured to process the instructions fetched into instruction cache 606 and process the instructions for execution.

[0065] Processor 602 and system memory 608 are coupled to system bus 610 and can enable peripheral devices included in processor-based device 600 to couple with each other. It is well known that processor 602 communicates with these other devices by exchanging address, control, and data information via system bus 610. For example, as an example of a slave device, processor 602 can transmit bus transaction requests to controller circuitry 612 in system memory 608. Although not explicitly stated... Figure 6 The diagram shows that multiple system buses 610 can be provided, each with a different architecture. In this example, controller circuitry 612 is configured to provide memory access requests to memory array 614 in system memory 608, and includes functionally corresponding to... Figure 1 The power telemetry circuit 120 (in) Figure 6 The circuit is labeled "Power Telemetry Circuit" ("PWR TELCIR") 616. The memory array 614 consists of an array of storage bit cells for storing data. As a non-limiting example, the system memory 608 may be a read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (such as synchronous DRAM (SDRAM)), and static memory (e.g., flash memory, static random access memory (SRAM)).

[0066] Other devices can be connected to system bus 610. For example... Figure 6As illustrated, these devices may include system memory 608, one or more input devices 618, one or more output devices 620, modem 622, and one or more display controllers 624, as examples. The input devices 618 may include any type of input device, including but not limited to input keys, switches, voice processors, etc. The output devices 620 may include any type of output device, including but not limited to audio, video, other visual indicators, etc. Modem 622 may be any device configured to allow data exchange with network 626. Network 626 may be any type of network, including but not limited to wired or wireless networks, private or public networks, local area networks (LANs), wireless local area networks (WLANs), wide area networks (WANs), Bluetooth™ networks, and the Internet. Modem 622 may be configured to support any type of desired communication protocol. Processor 602 may also be configured to access display controllers 624 via system bus 610 to control information sent to one or more displays 628. The (multiple) displays 628 may include any type of display, including but not limited to cathode ray tube (CRT), liquid crystal display (LCD), plasma display, etc.

[0067] Figure 6 The processor-based device 600 may include a set of instructions 630 to be executed by processor 602 for any desired application according to the instructions. As an example of a non-transitory computer-readable medium, the instructions 630 may be stored in system memory 608, processor 602, and / or instruction cache 606. The instructions 630 may also reside wholly or at least partially in system memory 608 and / or processor 602 during their execution. The instructions 630 may also be transmitted or received via network 626 via modem 622.

[0068] Although a computer-readable medium is described as a single medium in the exemplary embodiments herein, the term "computer-readable medium" should be understood to include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store one or more sets of instructions. The term "computer-readable medium" should also be understood to include any medium capable of storing, encoding, or carrying a set of instructions for execution by a processing device and causing the processing device to perform any or more methods of the embodiments disclosed herein. Therefore, the term "computer-readable medium" should be understood to include, but is not limited to, solid-state storage, optical media, and magnetic media.

[0069] The embodiments disclosed herein include various steps. These steps may be formed by hardware components or may be embodied in machine-executable instructions that can be used to cause a general-purpose or special-purpose processor programmed with those instructions to perform these steps. Alternatively, these steps may be performed by a combination of hardware and software processes.

[0070] The embodiments disclosed herein can be provided as a computer program product or software process, which may include a machine-readable medium (or computer-readable medium) having instructions stored thereon that can be used to program a computer system (or other electronic device) to perform the processes according to the embodiments disclosed herein. A machine-readable medium includes any mechanism for storing or transmitting information in a machine-readable (e.g., computer-readable) form. For example, machine-readable media include machine-readable storage media (e.g., ROM, random access memory (“RAM”), disk storage media, optical storage media, flash memory devices, etc.).

[0071] Unless otherwise specifically stated and apparent from the foregoing discussion, it should be understood that throughout this specification, the use of terms such as “processing,” “calculating,” “determining,” and “displaying” refers to the actions and processes of a computer system or similar electronic computing device that manipulates and converts data represented as physical (electronic) quantities in the registers of the computer system and memory into other data similarly represented as physical quantities in the computer system’s memory or registers or other such information storage, transmission, or display devices.

[0072] The algorithms and displays presented herein are not inherently related to any particular computer or other device. Various systems can be used with the procedures taught herein, or it can be demonstrated that it is convenient to construct more specialized devices to perform the required method steps. The desired architecture of various such systems will be apparent from the above description. Furthermore, the embodiments described herein are not described with reference to any particular programming language. It should be understood that various programming languages ​​can be used to implement the teachings of the embodiments described herein.

[0073] Those skilled in the art will further understand that the various illustrative logic blocks, modules, circuits, and algorithms described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, stored in memory or another computer-readable medium and executed by a processor or other processing device, or a combination of both. As an example, components of the processor-based device described herein can be embodied in any circuit, hardware component, integrated circuit (IC), or IC chip. The memory disclosed herein can be of any type and size and can be configured to store any type of desired information. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above in general terms of their functionality. How such functionality is implemented depends on the specific application, design choices, and / or design constraints imposed on the overall system. Those skilled in the art can implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as causing a departure from the scope of this embodiment.

[0074] The various illustrative logic blocks, modules, and circuits described in conjunction with the embodiments disclosed herein can be implemented or performed using a processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination of the foregoing items designed to perform the functions described herein. Furthermore, the controller can be a processor. The processor can be a microprocessor, but alternatively, the processor can be any conventional processor, controller, microcontroller, or state machine. The processor can also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors incorporating a DSP core, or any other such configuration).

[0075] The embodiments disclosed herein can be embodied in hardware and instructions stored in the hardware, and can reside in, for example, RAM, flash memory, ROM, electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), registers, hard disks, removable disks, CD-ROMs, or any other form of computer-readable medium known in the art. An exemplary storage medium is coupled to a processor such that the processor can read information from the storage medium and write information to the storage medium. Alternatively, the storage medium can be integrated into the processor. The processor and storage medium can reside in an ASIC. The ASIC can reside in a remote station. Alternatively, the processor and storage medium can reside as discrete components in a remote station, base station, or server.

[0076] It should also be noted that the operational steps described in any exemplary embodiment of the exemplary embodiments herein are described to provide examples and discussion. The described operations may be performed in many different orders than those illustrated. Furthermore, the operations described in a single operational step may actually be performed in multiple different steps. Additionally, one or more operational steps discussed in the exemplary embodiments may be combined. Those skilled in the art will also understand that information and signals can be represented using any of a variety of technologies and processes. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced in the above description may be represented by voltage, current, electromagnetic waves, magnetic fields or particles, light fields or particles, or any combination of the foregoing.

[0077] Unless otherwise expressly stated, any method described herein is not intended to be construed as requiring its steps to be performed in a particular order. Therefore, no particular order is intended to be inferred where the method claims do not actually describe the order in which the steps are to be followed, or where the claims or description do not otherwise specifically state that the steps are restricted to a particular order.

[0078] It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the spirit or scope of the invention. Since modifications, combinations, sub-combinations, and variations of the disclosed embodiments that embody the spirit and essence of the invention can be conceived by those skilled in the art, the invention should be construed as encompassing all contents within the scope of the appended claims and their equivalents.

Claims

1. A processor-based device (100), comprising: The controller circuit (106) includes a power telemetry circuit (120). as well as Power management processor (108); The power telemetry circuit (120) is configured as follows: Determine whether a media access request (116) corresponding to a power telemetry event (122(0)) and sent to a media device (104) has been detected; In response to the detection of a media access request (116) corresponding to the power telemetry event (122(0)) and sent to the media device (104), it is determined whether the media access request (116) matches the event selection filter (126), which is specified by the event selection control and status register (CSR) (124(0)) corresponding to the power telemetry event (122(0)); as well as In response to determining that the media access request (116) matches the event selection filter (126), the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)) is incremented by a relative power value (130) associated with the media access request type of the media access request (116); and The power management processor (108) is configured to: The power management operation (132) is determined based on the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)); and Apply the power management operation (132).

2. The processor-based device of claim 1, wherein the power telemetry event includes one of the following: an event indicating that the media access request is received from a virtual machine (VM), and an event indicating that the media access request is received from a group of VMs comprising a plurality of VMs.

3. The processor-based device according to any one of claims 1 to 2, wherein the power telemetry circuit is configured to determine whether the media access request matches the event selection filter by: being configured to determine whether the result of an AND operation between a request mask value specified by the event selection CSR and an identifier of the media access request matches a corresponding request matching value specified by the event selection CSR.

4. The processor-based device according to any one of claims 1 to 2, wherein the power telemetry circuit is configured to determine whether the media access request matches the event selection filter by: being configured to determine whether the result of an AND operation between the request mask value specified by the event selection CSR and the identifier of the media access request does not match the corresponding request matching value specified by the event selection CSR.

5. The processor-based device according to any one of claims 1 to 4, wherein the power telemetry circuitry is further configured to: also respond to determining that the media access request matches the event selection filter: The relative power field that corresponds to the media access request type among the multiple relative power fields that identify the relative power CSR; and Retrieve the relative power value from the relative power field.

6. The processor-based device according to claim 5, wherein: The relative power CSR is one of a plurality of relative power CSRs, each relative power CSR corresponding to the media utilization state of the controller circuit; and The power telemetry circuit is also configured to select the relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuit.

7. The processor-based device according to claim 6, wherein: The processor-based device further includes a media access vector, which comprises multiple bits, each of which corresponds to a specified time interval. The power telemetry circuit is configured to determine whether a media access request corresponding to the power telemetry event and sent to the media device has been detected by: being configured to determine whether the media access request has been detected within the current time interval; and The power telemetry circuit is also configured to: In response to determining that the media access request is detected within the current time interval, a bit of the plurality of bits of the media access vector corresponding to the current time interval is set; In response to determining that no media access request is detected during the current time interval, the bits in the plurality of bits of the media access vector corresponding to the current time interval are cleared; as well as The current media utilization state is determined based on the count of the set bits among the plurality of bits of the media access vector.

8. The processor-based device according to claim 7, wherein: The processor-based device also includes a media access counter; The power telemetry circuit is further configured to update the media access counter based on the previous value of the bit corresponding to the current time interval among the plurality of bits of the media access vector; and The power telemetry circuit is configured to determine the current media utilization state based on a count of a set bit among the plurality of bits of the media access vector by being configured to determine the count of the set bit based on the value of the media access counter.

9. The processor-based device according to any one of claims 6 to 8, wherein the power telemetry circuit is configured to select the relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuit by comparing the current media utilization state of the controller circuit with one or more utilization thresholds.

10. The processor-based device of claim 9, wherein each of the one or more utilization thresholds corresponds to a utilization threshold field among a plurality of utilization threshold fields of a media utilization threshold CSR.

11. A method comprising: The power telemetry circuit (120) of the controller circuit (106) of the processor-based device (100) determines that a media access request (116) corresponding to a power telemetry event (122(0)) and sent to the media device (104) of the processor-based device (100) is detected; In response to the detection of a media access request (116) of the media device (104) corresponding to the power telemetry event (122(0)) and sent to the processor-based device (100), the power telemetry circuit (120) determines that the media access request (116) matches the event selection filter (126), which is specified by the event selection control and status register (CSR) (124(0)) corresponding to the power telemetry event (122(0)); In response to determining that the media access request (116) matches the event selection filter (126), the power telemetry circuit (120) increments the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)) by a relative power value (130) associated with the media access request type of the media access request (116). The power management processor (108) of the processor-based device (100) determines the power management operation (132) based on the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)); and The power management operation (132) is applied by the power management processor (108).

12. The method of claim 11, wherein determining that the media access request matches the event selection filter comprises: Determine the result of the AND operation between the request mask value specified by the event selection CSR and the identifier of the media access request, and determine the corresponding request matching value specified by the event selection CSR.

13. The method of claim 11, wherein determining that the media access request matches the event selection filter comprises: The result of the AND operation between the request mask value specified by the event selection CSR and the identifier of the media access request is determined to be a corresponding request matching value specified by the event selection CSR that does not match.

14. The method according to any one of claims 11 to 13, further comprising: Also in response to determining that the media access request matches the event selection filter: The relative power field that corresponds to the media access request type among the multiple relative power fields that identify the relative power CSR; and Retrieve the relative power value from the relative power field.

15. The method of claim 14, wherein: The relative power CSR is one of a plurality of relative power CSRs, each of which corresponds to the media utilization state of the controller circuit. and The method further includes: selecting the relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuit.

16. The method of claim 15, wherein: The processor-based device also includes a media access vector, which comprises multiple bits. Determining that a media access request from the media device corresponding to the power telemetry event and sent to the processor-based device has been detected includes: determining that the media access request was detected within the current time interval; and The method further includes: In response to determining that the media access request was detected within the current time interval, a bit of the plurality of bits in the media access vector corresponding to the current time interval is set; and The current media utilization state is determined based on the count of the set bits among the plurality of bits of the media access vector.

17. The method of claim 16, wherein: The processor-based device also includes a media access counter; and The method further includes updating the media access counter based on the previous value of the bit corresponding to the current time interval among the plurality of bits of the media access vector; Determining the current media utilization state based on the count of the set bits among the plurality of bits of the media access vector includes: determining the count of the set bits based on the value of the media access counter.

18. The method according to any one of claims 15 to 17, wherein selecting the relative power CSR from the plurality of relative power CSRs based on the current media utilization state of the controller circuit comprises: The current media utilization state of the controller circuit is compared with one or more utilization thresholds.

19. The method of claim 18, wherein each of the one or more utilization thresholds corresponds to a utilization threshold field among a plurality of utilization threshold fields of a media utilization threshold CSR.

20. A non-transitory computer-readable medium (608, 602, 606) storing computer-executable instructions (630) thereon, the computer-executable instructions (630) causing the processor device (102, 106, 108) (of a processor-based device (100)) to: Determine whether a media access request (116) for a media device (104) corresponding to a power telemetry event (122(0)) and sent to the processor-based device (100) has been detected; In response to the detection of a media access request (116) corresponding to the power telemetry event (122(0)) and sent to the media device (104), it is determined whether the media access request (116) matches the event selection filter (126) specified by the event selection control and status register (CSR) (124(0)) corresponding to the power telemetry event (122(0)); In response to determining that the media access request (116) matches the event selection filter (126), the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)) is incremented by a relative power value (130) associated with the media access request type of the media access request (116). The power management operation (132) is determined based on the power telemetry counter (128(0)) corresponding to the power telemetry event (122(0)); and Apply the power management operation (132).