Leakage resource management
By using a leakage temperature meter to calculate dynamic and static resource pools, the problem of inefficient resource allocation caused by current leakage in the prior art is solved, and more accurate resource management and system performance improvement is achieved.
Patent Information
- Application Number
- CN202411630756.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-11-21
- Filing Date
- 2024-11-15
- Publication Date
- 2025-05-23
AI Technical Summary
The prior art is difficult to accurately calculate and manage current leakage due to system properties such as temperature and voltage, resulting in inefficient resource allocation.
By using a leakage temperature meter, dynamic resource pools and static resource pools are calculated based on the system's temperature and voltage, thereby accurately assigning resources to the device.
More accurate resource management is achieved, and the overall performance and resource utilization efficiency of the system are improved.
Smart Images

Figure CN120029756A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate generally to leak resource management, and more particularly, to managing resources by compensating for leaks. Background Art
[0002] Various types of electronic devices, such as digital logic circuits and memory systems, can store and process data. A digital logic circuit is an electronic circuit that processes digital signals or binary information, which can take on two possible values (usually represented as 0 and 1). A digital logic circuit can use logic gates to manipulate and transform digital signals or binary information. For example, digital logic circuits can be used in various electronic devices, including computers, calculators, digital clocks, and many other electronic devices that employ digital processing. Digital logic circuits can be designed to perform specific logic operations on digital inputs to produce digital outputs, and in some examples, can be combined to form more complex circuits to perform more complex operations. A memory device can include one or more memory devices that store data. For example, a memory device can be a non-volatile memory device and a volatile memory device. In general, a host system can utilize a memory system to store data at a memory device and retrieve data from a memory device. Summary of the invention
[0003] On the one hand, the present disclosure provides a method, which includes: accessing a leakage temperature table at a resource manager of a system; determining a dynamic resource pool and a static resource pool of the system based on the leakage temperature table at the resource manager; receiving a resource request from a device of the system at the resource manager; and assigning resources from the dynamic resource pool and the static resource pool to the device by the resource manager.
[0004] On the other hand, the present disclosure further provides a device, which includes: a temperature sensor, which is configured to measure the temperature of the device; and a resource manager, which is coupled to the temperature sensor and is configured to: receive the temperature from the temperature sensor; access a leak table; determine a dynamic resource pool and a static resource pool of the device based on the leak table and the temperature; and assign dynamic resources from the dynamic resource pool and static resources from the static resource pool to multiple devices.
[0005] On the other hand, the present disclosure further provides a system, comprising: a device, which is configured to: access a leakage temperature table; determine dynamic resources and static resources based on the leakage temperature table; and provide requests for the dynamic resources and the static resources; and a resource manager, which is coupled to the device and configured to: receive the requests for the dynamic resources and the static resources; and assign resources to the device based on the requests for the dynamic resources and the static resources without determining the static resources. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The present disclosure will be more fully understood from the detailed description given below and from the accompanying drawings of various embodiments of the present disclosure.
[0007] Figure 1 An example computing system including a memory subsystem according to some embodiments of the present disclosure is described.
[0008] Figure 2 An example of resource manager circuitry according to some embodiments of the present disclosure is described.
[0009] Figure 3 is a flow chart corresponding to a method for leak resource management according to some embodiments of the present disclosure.
[0010] Figure 4 is a block diagram of an example computer system in which embodiments of the present disclosure may operate. DETAILED DESCRIPTION
[0011] Aspects of the present disclosure relate to leak resource management. A resource manager of a system may access a leak temperature table. The resource manager may determine a dynamic resource pool and a static resource pool of the system based on the leak temperature table. A device of the system may request resources from the system. The resource manager may assign resources from the dynamic resource pool and the static resource pool to the device. The dynamic resource pool and the static resource pool may be combined to form a total resource pool of the system. The dynamic resource pool may be composed of dynamic resources, while the static resource pool may be composed of static resources. The system may be a memory subsystem. The memory subsystem may be a storage system, a storage device, a memory module, or a combination thereof. An example of a memory subsystem is a storage system, such as a solid state drive (SSD). Figure 1 and others to describe examples of storage devices and memory modules. In general, a host system may utilize a memory subsystem that includes one or more components, such as a memory device that stores data. The host system may provide data stored at the memory subsystem and may request data retrieved from the memory subsystem.
[0012] Although some non-limiting examples herein are generally described in terms of being applicable to memory subsystems and / or memory devices, the embodiments are not limited thereto, and aspects of the disclosure may also be applied to systems such as computer systems. The described embodiments may be applicable to systems on a chip, computing subsystems, data collection and processing, storage, networking, communications, power, artificial intelligence, control, telemetry, sensing and monitoring, digital entertainment, and other types of systems / subsystems and / or devices.
[0013] A system, such as a memory subsystem, may provide system resources to devices of the system or devices external to the system. As used herein, resources, such as system resources, may include power resources as well as other types of resources, such as processing resources, for example. A device may request power from a system to perform an operation. A device may utilize power to, for example, write data, read data, transfer data via an input / output (I / O) bus, and / or transfer data via an interface that couples a system, such as a memory subsystem, to a different system, such as a host.
[0014] Many properties of the system may vary and may result in insufficient resources provided to a device to perform an operation (e.g., read data, write data, perform logical operations, matrix operations, etc.). Thus, at least in some instances, the system may not have enough resources to meet the resource (e.g., power) requirements of all devices. As a result, some devices utilize more resources than the amount of resources assigned to the device.
[0015] For example, a device may request power resources from a system. The system may assign power resources to a device and may not understand that all power resources assigned to a device may not be available to the device for performing operations in all instances due to leakage. Leakage may depend on the properties of the system. The properties of the system may be the temperature and / or voltage of the system and / or the device, but may include other properties of the system. The temperature and / or voltage of the system may cause the current leakage and / or leakage amount of the system to change. As used herein, leakage describes the unavailability of resources for performing operations. Resources assigned to a device that can be used by the device to perform operations are called dynamic resources. Resources assigned to a device that cannot be used by the device to perform operations are called static resources. Current leakage may be called static resources. A device consumes target resources (e.g., the number of resources requested by the device) even if the assigned resources (e.g., the number of resources assigned to the device) are less than the consumed resources, because the system may not take into account the leakage changes caused by temperature and / or voltage. Without using temperature and / or voltage dependencies, the system cannot accurately calculate leakage. In various embodiments, the dynamic resource pool and the static resource pool may be calculated based on the temperature and / or voltage of the system, which may cause a device to consume more resources than assigned. Since the device consumes more resources than assigned to it, power is not available to other devices.
[0016] The system also provides more resources to the device than requested by the device to compensate for the static resources. Without calculating the static resource pool, the system provides more resources than consumed by the device. The system may assume the worst case (e.g., not calculating the static resource pool) and assign more resources than required to compensate for the leak. Providing more resources than consumed by the device may result in resources not being used, which may limit the efficiency of the device and / or system.
[0017] To address these and other deficiencies of current approaches, embodiments of the present disclosure allow for calculation of dynamic resources (e.g., dynamic resource pools) and static resources (e.g., static resource pools) based on temperature and / or voltage. Calculating dynamic resource pools and static resource pools may allow a system to assign appropriate dynamic resources and static resources to a device. Assigning appropriate dynamic resources to a device may allow the device to utilize the assigned dynamic resources and not utilize more resources than assigned or less resources than assigned. Devices that do not utilize more resources than assigned or less resources than assigned may contribute to efficiency of the device and / or system.
[0018] The static resource pool may be calculated using a leakage temperature table. The dynamic resource pool may be calculated by subtracting the static resource pool from the total resource pool. The leakage temperature table may correlate temperature, voltage, and / or process variations with leakage current. The leakage temperature table may also be referred to as a leakage table to reference that leakage may not only depend on temperature. The leakage current may be subtracted from the total resources of the system to calculate the dynamic resources of the system.
[0019] Figure 1 An example computing system 100 is illustrated that includes a memory subsystem 103 according to some embodiments of the present disclosure. Memory subsystem 103 may include media such as one or more volatile memory devices (such as memory device 110), one or more non-volatile memory devices (such as memory device 109), or a combination thereof.
[0020] The memory subsystem 103 may be a storage device, a memory module, or a mixture of a storage device and a memory module. Examples of storage devices include solid state drives (SSDs), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash storage (UFS) drives, secure digital (SD) cards, and hard disk drives (HDDs). Examples of memory modules include dual in-line memory modules (DIMMs), small outline DIMMs (SO-DIMMs), and various types of non-volatile dual in-line memory modules (NVDIMMs).
[0021] The computing system 100 may be a computing device such as a desktop computer, a laptop computer, a server, a network server, a mobile device, a vehicle (such as an airplane, drone, train, car, or other transportation), an Internet of Things (IoT) enabled device, an embedded computer (such as an embedded computer included in a vehicle, industrial equipment, or a networked business device), or such a computing device that includes a memory and a processing device.
[0022] In other embodiments, the computing system 100 may be deployed on or otherwise included in a computing device, such as a desktop computer, a laptop computer, a server, a network server, a mobile computing device, a vehicle (such as an airplane, drone, train, car, or other transportation), an Internet of Things (IoT) enabled device, an embedded computer (such as an embedded computer included in a vehicle, industrial equipment, or a networked business device), or such computing devices that include a memory and a processing device. As used herein, the term "mobile computing device" generally refers to a handheld computing device having a tablet or tablet phone form factor. In general, a tablet form factor may include a display screen between about 3 inches and 5.2 inches (measured diagonally), while a tablet phone form factor may include a display screen between about 5.2 inches and 7 inches (measured diagonally). However, examples of a "mobile computing device" are not limited thereto, and in some embodiments, a "mobile computing device" may refer to an IoT device as well as other types of edge computing devices.
[0023] The computing system 100 may include a host system 102 coupled to one or more memory subsystems 103. In some embodiments, the host system 102 is coupled to memory subsystems 103 of different types. Figure 1 An example of a host system 102 coupled to a memory subsystem 103 is illustrated. As used herein, "coupled to" or "coupled with" generally refers to a connection between components, which can be an indirect communication connection or a direct communication connection (e.g., without intervening components), whether wired or wireless, including connections such as electrical, optical, magnetic, etc.
[0024] The host system 102 may include a processor chipset and a software stack executed by the processor chipset. The processor chipset may include one or more cores, one or more caches, a memory controller (e.g., an SSD controller), and a storage protocol controller (e.g., a PCIe controller, a SATA controller). The host system 102 uses, for example, the memory subsystem 103 to write data to the memory subsystem 103 and read data from the memory subsystem 103.
[0025] Host system 102 includes a processing unit 104. Processing unit 104 may be a central processing unit (CPU) configured to execute an operating system. In some embodiments, processing unit 104 includes a complex instruction set computer architecture, such as x86 or other architecture suitable for use as the CPU of host system 102.
[0026] The host system 102 may be coupled to the memory subsystem 103 via a physical host interface. Examples of the physical host interface include, but are not limited to, a Serial Advanced Technology Attachment (SATA) interface, a Peripheral Component Interconnect Express (PCIe) interface, a Universal Serial Bus (USB) interface, Fibre Channel, Serial Attached SCSI (SAS), a Small Computer System Interface (SCSI), a Double Data Rate (DDR) memory bus, a Dual In-line Memory Module (DIMM) interface (e.g., a DIMM slot interface supporting Double Data Rate (DDR)), an Open NAND Flash Interface (ONFI), Double Data Rate (DDR), Low Power Double Data Rate (LPDDR), or any other interface. The physical host interface may be used to transfer data between the host system 102 and the memory subsystem 103. The host system 102 may further utilize an NVM Express (NVMe) interface to access components (e.g., memory device 109) when the memory subsystem 103 is coupled to the host system 102 through a PCIe interface. The physical host interface may provide an interface for passing control, address, data, and other signals between the memory subsystem 103 and the host system 102 . Figure 1 One memory subsystem 103 is illustrated as an example. In general, the host system 102 can access multiple memory subsystems via the same communication connection, multiple separate communication connections, and / or a combination of communication connections.
[0027] The memory devices 109, 110 may include any combination of different types of non-volatile memory devices and / or volatile memory devices. Volatile memory devices such as memory device 110 may be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).
[0028] Some examples of non-volatile memory devices (e.g., memory device 109) include non-and (NAND) type flash memory and write-in-place memory, such as a three-dimensional cross-point ("3D cross-point") memory device, which is a cross-point array of non-volatile memory cells. The cross-point array of non-volatile memory can perform bit storage based on body resistance changes in combination with a stackable cross-grid data access array. In addition, compared to many flash-based memories, cross-point non-volatile memory can perform write-in-place operations, where non-volatile memory cells can be programmed without first erasing the non-volatile memory cells. NAND-type flash memory includes, for example, two-dimensional NAND (2D NAND) and three-dimensional NAND (3D NAND).
[0029] Each of the memory devices 109, 110 may include one or more memory cell arrays. One type of memory cell, such as a single-level cell (SLC), may store one bit per cell. Other types of memory cells, such as multi-level cells (MLC), triple-level cells (TLC), quad-level cells (QLC), and penta-level cells (PLC), may store multiple bits per cell. In some embodiments, each of the memory devices 109 may include one or more memory cell arrays, such as SLC, MLC, TLC, QLC, or any combination thereof. In some embodiments, a particular memory device may include an SLC portion and an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells. The memory cells of the memory device 109 may be grouped into pages, which may refer to a logical unit of a memory device for storing data. For some types of memory, such as NAND, pages may be grouped to form blocks.
[0030] Although nonvolatile memory components such as a three-dimensional cross-point array of nonvolatile memory cells and NAND-type memory (e.g., 2D NAND, 3D NAND) are described, the memory device 109 may be based on any other type of nonvolatile memory or storage device, such as, for example, read-only memory (ROM), phase-change memory (PCM), self-select memory, other chalcogenide-based memories, ferroelectric transistor random access memory (FeTRAM), ferroelectric random access memory (FeRAM), magnetic random access memory (MRAM), spin transfer torque (STT)-MRAM, conductive bridging RAM (CBRAM), resistive random access memory (RRAM), oxide-based RRAM (OxRAM), non-OR (NOR) flash memory, and electrically erasable programmable read-only memory (EEPROM).
[0031] The memory subsystem controller 105 (or simply controller 105) can communicate with the memory device 109 to perform operations such as reading data, writing data, or erasing data at the memory device 109, and other such operations. The memory subsystem controller 105 may include hardware such as one or more integrated circuits and / or discrete components, buffer memory, or a combination thereof. The hardware may include digital circuitry with dedicated (i.e., hard-coded) logic to perform the operations described herein. The memory subsystem controller 105 may be a microcontroller, dedicated logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.
[0032] The memory subsystem controller 105 may include a processor 106 (e.g., a processing device) configured to execute instructions stored in a local memory 107. In the illustrated example, the local memory 107 of the memory subsystem controller 105 includes an embedded memory configured to store instructions for executing various processes, operations, logic flows, and routines that control the operation of the memory subsystem 103, including handling communications between the memory subsystem 103 and the host system 102.
[0033] In some embodiments, local memory 107 may include memory registers for storing memory pointers, fetch data, etc. Local memory 107 may also include read-only memory (ROM) for storing microcode. Figure 1 The example memory subsystem 103 in FIG. 1 has been described as including a memory subsystem controller 105, but in another embodiment of the present disclosure, the memory subsystem 103 does not include a memory subsystem controller 105, but may rely on external control (e.g., provided by an external host or by a processor or controller separate from the memory subsystem).
[0034] In general, the memory subsystem controller 105 may receive commands or operations from the host system 102 and may convert the commands or operations into instructions or appropriate commands to achieve the desired access to the memory device 109 and / or the memory device 110. The memory subsystem controller 105 may be responsible for other operations such as wear leveling operations, garbage collection operations, error detection and error correction code (ECC) operations, encryption operations, cache operations, and address translation between logical addresses (e.g., logical block addresses (LBA), namespaces) and physical addresses (e.g., physical block addresses, physical media addresses, etc.) associated with the memory device 109. The memory subsystem controller 105 may further include a host interface circuit system to communicate with the host system 102 via a physical host interface. The host interface circuit system may convert commands received from the host system into command instructions to access the memory device 109 and / or the memory device 110 and convert responses associated with the memory device 109 and / or the memory device 110 into information for the host system 102.
[0035] The memory subsystem 103 may also include additional circuitry or components not illustrated. In some embodiments, the memory subsystem 103 may include a cache or buffer (e.g., DRAM) and address circuitry (e.g., row decoders and column decoders) that may receive addresses from the memory subsystem controller 105 and decode addresses to access the memory device 109 and / or the memory device 110.
[0036] In some embodiments, the memory device 109 includes a local media controller 111 that operates in conjunction with the memory subsystem controller 105 to perform operations on one or more memory cells of the memory device 109. An external controller (e.g., the memory subsystem controller 105) can manage the memory device 109 externally (e.g., perform media management operations on the memory device 109). In some embodiments, the memory device 109 is a managed memory device, which is a raw memory device combined with a local controller (e.g., the local controller 111) for media management within the same memory device package. An example of a managed memory device is a managed NAND (MNAND) device.
[0037] Memory subsystem 103 may include resource manager circuitry 108. Although Figure 1 Although not shown in order to avoid obscuring the drawings, resource manager circuitry 108 may include various circuitry to facilitate the present invention. Figure 2 In some embodiments, in accordance with the present disclosure, resource manager circuitry 108 may include specialized circuitry in the form of an ASIC, FPGA, state machine, hardware processing device, and / or other logic circuitry that may allow resource manager circuitry 108 to orchestrate and / or perform calculations for dynamic and static resource pools based on the temperature of memory subsystem 103 and / or devices, particularly with respect to a system on a chip. In various examples, resource manager circuitry 108 may be external to memory subsystem controller 105. Memory subsystem controller 105 may determine the temperature of memory subsystem 103 and may provide the temperature to external resource manager circuitry 108.
[0038] The resource manager circuit system 108 can calculate the dynamic resource pool and the static resource pool and can provide the power resource and the static resource to the device requesting the power resource and the static resource. As used herein, the dynamic resource pool and the static resource pool are the total resource pool of the system. In other words, the sum of the dynamic resource pool and the static resource pool is equal to the total resource pool. The total resource pool includes the total resources that can be assigned to the device. As detailed herein, a portion of the dynamic resources of the dynamic resource pool (e.g., assigning dynamic resources) and / or a portion of the static resources of the static resource pool (e.g., assigning static resources) can be calculated and assigned to the device to satisfy the request for resources.
[0039] For example, a resource request from a device may be interpreted as a request for a dynamic resource (e.g., requesting a dynamic resource). The resource manager circuitry 108 may assign resources from a dynamic resource pool and / or a static resource pool to satisfy the request for the dynamic resource. The resource manager circuitry 108 may calculate the static resources from the static resource pool required to assign the dynamic resource from the dynamic resource pool to the device based on the requesting the dynamic resource. For example, the assigned dynamic resource may be equal to the requested dynamic resource. The assigned static resource may be calculated from the assigned dynamic resource. The assigned dynamic resource may be subtracted from the dynamic resource pool while the assigned static resource is subtracted from the static resource pool.
[0040] In some embodiments, the memory subsystem controller 105 includes at least a portion of the resource manager circuitry 108. For example, the memory subsystem controller 105 may include a processor 106 (processing device) configured to execute instructions stored in the local memory 107 for performing the operations described herein. In some embodiments, the resource manager circuitry 108 is part of the host system 102, an application, or an operating system. The resource manager circuitry 108 may reside on the memory subsystem 103 and / or the memory subsystem controller 105. As used herein, the term "resides on" refers to something being physically located on a particular component. For example, the resource manager circuitry 108 "resides on the memory subsystem 103" refers to a condition in which the hardware circuitry, including the resource manager circuitry 108, is physically located on the memory subsystem 103. The term "resides on" may be used interchangeably with other terms herein such as "deployed on" or "located on".
[0041] Figure 2 An example of resource manager circuitry 208 according to some embodiments of the present disclosure is illustrated. Resource manager circuitry 208 may be coupled to memory 221, temperature sensor 222, and memory (not shown) storing a leakage temperature table 223. Memory 221 may be one or more fuses such as electronic fuses (e-fuses) and other types of memory including one-time programmable (OTP) memory, ROM, and / or flash memory. Temperature sensor 222 may include hardware and / or firmware configured to measure temperature and provide the temperature to resource manager circuitry 208. Although temperature sensor 222 is described as a single temperature sensor, the temperature sensor may include multiple sensors. Temperature sensor 222 may be a memory subsystem (e.g., Figure 1 103), a memory subsystem controller (eg Figure 1 storage subsystem controller 105) or a memory device (e.g. Figure 1 For example, the temperature sensor 222 may also be part of the host system (e.g., Figure 1portion of the host system 102).
[0042] Resource manager circuitry 208 may receive leak temperature table 223 , which may be stored in local memory (eg, Figure 1 local storage 107) and / or a storage device (e.g. Figure 1 In various examples, the memory device storing the leakage temperature table 223 may be separate from the local memory and / or the memory device, but may be implemented in the memory subsystem. The memory storing the leakage temperature table 223 may also be implemented outside the memory subsystem, such as in a host system (e.g., Figure 1 in the host system 102).
[0043] The leakage temperature table 223 may include a number of temperatures 224 and associated currents 225. In various examples, the leakage temperature table 223 may be based on the temperature 224, voltage, process variation, and / or other factors. The current may be divided by process variation. As used herein, process variation may describe a change in a manufacturing parameter. The process variation may affect the current 225 leaked at a particular temperature 224. The process variations shown include slow-slow (SS), typical-typical (TT), and fast-fast (FF) process variations corresponding to process inflection points. However, the process variations shown are exemplary and other process variations may be utilized, such as fast-slow and slow-fast, etc.
[0044] Leakage temperature table 223 describes: For a temperature of 25°C, the SS current leakage is 24 milliamps (mA), the TT current leakage is 27mA, and the FF current leakage is 35mA. Leakage temperature table 223 describes: For a temperature of 60°C, the SS current leakage is 40mA, the TT current leakage is 48mA, and the FF current leakage is 65mA. Leakage temperature table 223 describes: For a temperature of 85°C, the SS current leakage is 63mA, the TT current leakage is 79mA, and the FF current leakage is 105mA. Leakage temperature table 223 describes: For a temperature of 110°C, the SS current leakage is 115mA, the TT current leakage is 143mA, and the FF current leakage is 180mA. Leakage temperature table 223 describes: For a temperature of 125°C, the SS current leakage is 180mA, the TT current leakage is 225mA, and the FF current leakage is 295mA. The depicted leakage temperature table 223 is exemplary and other leakage temperature tables incorporating different temperatures, currents, and / or process variations may be utilized.
[0045] The temperature scale used to create leakage temperature table 223 may be non-linear to simulate leakage temperature dependency. For example, a system may have a 5°C temperature step between 110°C to 125°C junction temperature, a 7°C temperature step between 89°C to 110°C junction temperature, a 10°C temperature step between 39°C to 89°C, a 14°C temperature step between 25°C to 39°C, and another step for all temperatures below 25°C.
[0046] The information included in the leakage temperature table 223 may be divided into multiple tables. Although the leakage temperature table 223 shown includes multiple currents 225 for different process variations, the leakage temperature table may include a single temperature 224 and multiple currents 225 for different process variations (e.g., a leakage temperature table for a single temperature). The leakage temperature table may also include multiple temperatures 224 and currents 225 for a single process variation (e.g., a leakage temperature table for process variations). One or more leakage temperature tables 223 may be provided to the resource manager circuitry 208.
[0047] Leakage temperature table 223 shows that as temperature increases in a memory subsystem, memory device, and / or computing system, leakage current becomes non-linear. The non-linear nature of current leakage can cause inefficient resource management of the memory subsystem if non-linear current leakage is not calculated and accounted for.
[0048] The resource manager circuitry 208 may also receive a temperature from a temperature sensor 222 or a plurality of temperature sensors including the temperature sensor 222. The temperature sensor 222 may measure the temperature of a memory subsystem (e.g., a system) or a portion of a memory subsystem. For example, the temperature sensor 222 may measure the temperature of a memory array and / or a bank of a memory array, etc. Before providing one or more temperatures to the resource manager circuitry 208, the temperature sensor 222 may perform a number of operations on the measured temperatures. For example, the temperature sensor 222 may measure the temperature several times and average the temperature before providing the temperature to the resource manager circuitry 208. In various examples, the resource manager circuitry 208 may track historical data from the temperatures provided by the temperature sensor 222 and may predict future temperatures.
[0049] Resource manager circuitry 208 may also receive process variations from memory 221. Memory (e.g., electronic fuses) may be programmed to store values corresponding to process variations. Supply current static (IDDQ) testing may be used to determine leakage values. The IDDQ test may be performed at 110°C and other possible temperatures for performing the IDDQ test. Leakage values at a particular temperature may be used to determine process variations. For example, a particular leakage at 110°C may be translated into a process variation that may be TT, while a lower leakage at the same temperature may be translated into a process variation that will include SS and a higher leakage may be translated into a process variation that will include FF. Other leakage values measured at the same temperature 110°C may be translated into corresponding process variations that will continuously hover between SS and FF. Memory 221 may store process variations.
[0050] Resource manager circuitry 208 may access process variations from memory 221. In various examples, memory 221 may be programmed with process variations once over the life of the device. The process variations may not change over the life of the device.
[0051] After receiving the temperature from the temperature sensor 222, the resource manager circuitry 208 may select a current from the leakage temperature table 223. For example, the resource manager circuitry 208 may select a temperature 224 using the temperature received from the temperature sensor 222. The resource manager circuitry 208 may select a 125°C temperature 224. The resource manager circuitry 208 may select a process variation using the process variation provided by the memory 221. The resource manager circuitry 208 may select a FF process variation 225. The resource manager circuitry 208 may select a 295mA current using the 125°C temperature 224 and the FF process variation 225.
[0052] Although the examples described herein utilize temperature 224 and process variation 225 to select current, process variation can be used to select a leakage temperature table that relates current to temperature. For example, process variation can be utilized to select a table. Using temperature and voltage, an expected leakage can be selected from a table. If the process variation falls between other process tables, other process tables can be used. For example, a sensor and / or memory 221 can be used to determine that the process variation falls between TT and SS. The table selected using TT and SS can be used to interpolate current. For example, a first leakage current can be selected from a first table corresponding to a TT process variation. A second leakage current can be selected from a second table corresponding to a SS process variation. The first leakage current and the second leakage current can be used to generate an expected leakage current.
[0053] If the process falls between other process tables, then other process tables may be used. For example, if sensor / memory 221 indicates that the device process variation is between TT and SS, then both TT and SS tables may be used to interpolate the leakage current.
[0054] In various examples, the leakage temperature table may be selected using voltage, temperature 224, and process variation 225. For example, there may be several tables for each of the possible voltages for the system. If the possible voltages include 0.8V, 0.77V, 0.74V, a different table may be selected using each of the voltages. The leakage temperature table may be selected based on the actual voltage of the system. A regulator of the system and / or a voltage control circuitry of the system may provide the voltage of a device or group of devices to resource manager circuitry 208. The voltage may be used to select leakage temperature table 223. For example, leakage temperature table 223 may correspond to 0.8V for a device.
[0055] Alternatively, there may be three tables each associated with one of the process variations 225. Each of the three tables may have voltage and temperature 224 as entries that can be used to access leakage. The process variation may be utilized to select a table. The voltage and temperature may be utilized to select leakage from the selected table. In various examples, each of the temperatures may be associated with a different table. Each of the tables may be used to access leakage. For example, the temperature may be utilized to select a table and the voltage and process variation may be utilized to access leakage from the selected table.
[0056] In various examples, a single table (eg, leakage temperature table 223) may be stored. The single table may be 3-dimensional. For example, process variation, voltage, and temperature may be used to select leakage.
[0057] Once the leakage current 225 is selected, the resource manager circuitry 208 may use it for the static resource pool to calculate the dynamic resource pool. The dynamic resource pool may be measured in tokens or a scale representing power. For example, the dynamic resource pool may be a power token (e.g., a dynamic power token). The memory subsystem may have total power tokens available. The static resource pool may be subtracted from the total power token (e.g., the total resource pool) to produce a dynamic token (e.g., a dynamic resource pool) that may be assigned to a device requesting a resource.
[0058] The examples provided herein are given under the assumption that the device requesting the resource is powered (e.g., not gated). If the system contains different power domains, then a separate leakage thermometer may be stored for each of the domains. As used herein, for example, a domain (e.g., a power domain) may include gated devices and / or devices having different voltages. The resource manager circuitry 208 may assign static tokens and dynamic tokens separately for different types of domains. The resource manager circuitry 208 may know the minimum number of power tokens that it can assign to a device having different power domains. For example, a gated device that is being powered on may request a total resource that includes static and dynamic resources. The resource manager circuitry 208 may not assign less than a certain number of static resources to the requesting device. To ungate the device, some static power tokens may be utilized. The resource manager circuitry 208 may access the leakage thermometer based on the voltage of the device, the temperature of the device, the process variation of the device, and whether the device is gated (e.g., the power domain of the device).
[0059] The device requesting the resource may provide a request for the resource to the resource manager circuitry 208. For example, the resource manager circuitry 208 may receive a request for 30 power tokens. The resource manager circuitry 208 may verify that the device can be assigned 30 tokens. In response to determining that the device can be assigned 30 tokens, the resource manager circuitry 208 may determine the number of tokens (e.g., the dynamic resource pool and the static resource pool) that can satisfy the requested 30 power tokens. Given the leakage, the resource manager circuitry 208 may determine that 35 power tokens (including dynamic resources from the dynamic resource pool and static resources from the static resource pool) can satisfy the request for 30 power tokens (e.g., 30 dynamic power tokens). The leakage may be determined to be 5 power tokens. The leakage may be determined using the leakage thermometer 223.
[0060] In an example where the device is a gated device (e.g., a power domain), the device may request to be ungated (e.g., powered on) and operate. The device may request 30 tokens for dynamic resources and request 5 tokens for static resources. The resource manager circuitry 208 may assign less than the requested 30 dynamic tokens but may not assign less than the required 5 static tokens. The resource manager circuitry 208 may assign between 5 and 35 power tokens.
[0061] If the system does not have a power domain, then the devices of the system are powered and will not be power gated. The system does not have to grant static tokens to each device. It is sufficient for the devices of the system to have a combined static pool. If the system reduces the available resources (e.g., total resources) by the total static resources (e.g., combined static pool), the remaining resources take into account the 5 static tokens including the leakage of the device. If there is no power domain, then the system cannot manage the static tokens of the device. The system can manage dynamic tokens per device instead of static tokens because the static tokens remain at the system level. If the devices of the system can be gated, then the system can manage both static resources and dynamic resources.
[0062] If a device of the system can be gated and if the system does not have enough tokens to grant to the device, the system does not de-gate the device until a power token can be acquired to de-gate the device. The system can decide whether to obtain some tokens (such as dynamic tokens or static tokens) from different devices to allow the device to work or allow the device to remain gated. If a device of the system can not be gated, the system may not gate the device. The leakage of the device occupies static resources. The system cannot reduce the static resources utilized by the device. The system can adjust the dynamic tokens of the remaining power that are not dedicated to static resources.
[0063] The leakage temperature table 223 may be used to determine the leakage current (e.g., quiescent current). The leakage current may be converted into a power token. For example, Convert leakage current to power. Wattage (e.g., W) can be calculated using W=Amp*Volt. The voltage of the memory subsystem can be used together with the current to determine the wattage. The wattage can be used together with the time when the resource is assigned to the device to determine the power (e.g., leakage power). The leakage power can be converted to a power token. The examples provided herein for calculating power tokens are exemplary and are intended to cover a variety of ways to calculate power tokens. In various examples, the resource manager circuit system 208 can assign fewer resources than the device requested. Given that the device is assigned fewer resources than the device requested, the device can run at a slower speed than the speed at which the device runs when it is assigned the resources it requested.
[0064] The resource manager circuitry 208 may assign 35 power tokens including 30 dynamic power tokens and 5 static power tokens to the device. Calculating the static resources and dynamic resources used to satisfy the resource request may allow for more efficient utilization of resources than assigning fewer dynamic resources than requested or assigning more dynamic resources than requested. Calculating the static resources and dynamic resources may include calculating a static resource pool and a dynamic resource pool. The static resource pool and the dynamic resource pool may be calculated before determining whether there are sufficient static resources and dynamic resources for assignment to the device.
[0065] The dynamic resource pool, the static resource pool, the assigning dynamic resources, and the assigning static resources may be calculated at the resource manager circuitry 208. In various examples, the dynamic resource pool and the static resource pool may be calculated at the resource manager circuitry 208, while the requesting dynamic resources and the requesting static resources are calculated at the device. The assigning dynamic resources and the assigning static resources are not calculated by the device or the resource management circuitry 208. Instead, the resource management circuitry 208 may assign resources to the device without calculating the assigning dynamic resources and the assigning static resources. For example, a device (e.g., a memory device) may receive a temperature (e.g., a temperature measurement) from a temperature sensor 222. The temperature sensor 222 may be implemented at the device level or may be implemented external to the device, but may provide one or more temperatures to the device instead of providing the temperature to the resource manager circuitry 208.
[0066] The device may access the memory 221 to access the process variation. The memory 221 may be implemented at the device level or may be implemented at the memory subsystem level (e.g., the system level). The process variation may be unique to the device and / or may be a process variation assigned to the memory subsystem. For example, each of the devices receiving resources from the resource manager circuitry 208 may have a process variation assigned to it. For example, a first device may have a SS process variation, while a second device has a TT process variation, and a third device has a FF process variation.
[0067] The device may access the leakage temperature table 223. The leakage temperature table 223 may be unique to the device. For example, each of the devices receiving resources from the resource manager circuit system 208 may store a different leakage temperature table. In various examples, the leakage temperature table may be stored by the device and / or by the resource manager 208. In some examples, each of the devices receiving resources from the resource manager circuit system 208 may access multiple leakage temperature tables. The device may select a leakage temperature table from multiple leakage temperature tables based on the voltage of the device. For example, the device may be subject to voltage changes. If the device implements, for example, adaptive voltage and frequency scaling (AVFS) or dynamic voltage and frequency scaling (DVFS), the device may be subject to voltage changes. In various examples, the resource manager circuit system 208 may also select the leakage temperature table 223 from multiple leakage temperature tables based on the voltage of the memory subsystem and / or the voltage of the device. The memory subsystem may also be subject to voltage changes.
[0068] The device may utilize temperature and process variations to select a leakage current. The leakage current may be used to generate a static power token. The device may know a target dynamic power token for performing multiple operations (e.g., requesting a dynamic power token). The device may utilize the target dynamic power token and the static power token to generate a power token request. The device may provide the power token request to the resource manager circuitry 208 to indicate that a static power token (e.g., a static resource) and a dynamic power token (e.g., a dynamic resource) are included in the power token request. A device that calculates a static power token and / or requests a dynamic power token and a static power token may be referred to as an intelligent device.
[0069] The resource manager circuitry 208 may receive a request from a device. In response to receiving an indication from the smart device that a static power token is included in the request power token, the resource manager circuitry 208 may not calculate a static power token, but may provide the requested power token if it is available. Calculating the static power token and the dynamic power token to request resources from the resource manager circuitry 208 may remove computation and / or power requirements from the memory subsystem (e.g., the resource manager circuitry 208) and may shift computation and / or power requirements to the device requesting the resources. The resource manager circuitry 208 may provide the request power token to the device.
[0070] In various examples, the resource manager circuitry 208 may determine whether the device is a smart device upon receiving a resource request. The resource manager circuitry 208 may make this determination in a variety of ways. For example, the request may include an indication that a static power token is included in the power token request. In many instances, a first command may be utilized to request a static power token and a dynamic power token, while a second command may be utilized to request a dynamic power token. The first command may be utilized by a non-intelligent device, while the second command may be utilized by an intelligent device. An intelligent device is not limited to providing the second command, but may provide the first command and / or the second command. A non-intelligent device may provide the first command, but may not provide the second command.
[0071] In response to determining that the device requesting the resource is a smart device, the resource manager circuitry 208 may verify whether the requested power token is available. In response to identifying that the requested power token is available, the resource manager circuitry 208 may provide the power token to the requesting device. In response to determining that the requesting device is a non-smart device, the resource manager circuitry 208 accesses process variations from the memory 221, accesses temperature from the temperature sensor 222, and accesses the leakage temperature table 223. The resource manager circuitry 208 may identify the leakage current corresponding to the process variations and temperature. The resource manager circuitry 208 may also access the voltage of the requesting device or the memory subsystem. The resource manager circuitry 208 may access the leakage temperature table 223 using the process variations, temperature, and / or voltage.
[0072] The resource manager circuitry 208 may determine a dynamic power token from a dynamic resource pool and a static power token from a static resource pool. The resource manager circuitry 208 may determine whether a dynamic power token and a static power token are available for allocation from the power tokens available to the resource manager circuitry 208 (e.g., a total resource pool). The resource manager circuitry 208 may assign power tokens including the dynamic power token and the static power token to the requesting device.
[0073] In many examples, leakage temperature table 223 may become outdated over time. For example, leakage current 225 corresponding to temperature 224 in leakage temperature table 223 may become outdated such that leakage current 225 is no longer accurate. Leakage temperature table 223 may be updated to account for aging physical effects as well as other physical effects, such as voltage and / or frequency fluctuations and / or drifts.
[0074] Because the accurate quiescent (e.g., leakage) current (e.g., current bias) at temperature 224 and voltage is known, resource manager circuitry 208 can allocate power tokens more accurately than if the quiescent current were not calculated. Allocating dynamic power tokens with greater accuracy can improve overall performance of a system (e.g., a memory subsystem) compared to allocating dynamic power tokens without accurately calculating the quiescent current bias.
[0075] Although the non-limiting examples herein are generally described in terms of being applicable to memory subsystems and / or memory devices, the embodiments are not limited thereto, and aspects of the present disclosure may also be applied to systems on a chip, computing systems / subsystems, data collection and processing, storage, networking, communications, power, artificial intelligence, control, telemetry, sensing and monitoring, digital entertainment, and other types of systems / subsystems and / or devices in which resources are allocated. Thus, aspects of the present disclosure may be applied to these components in order to allocate resources, wherein the allocation of resources includes the calculation of static resources and dynamic resources, as described herein.
[0076] The examples described herein are applicable to various types of memories and / or storage devices. For example, power resources may be calculated by a first circuit system and may be provided to a second circuit system using a leakage temperature table 223 that relates temperature to current. The leakage temperature table 223 and / or leakage current corresponding to temperature and process variations may be stored in any type of memory, register, array, storage device, and / or file and may be copied to a different memory, register, array, storage device, and / or file at any time.
[0077] Although the examples described herein are given in the context of hardware circuitry, computer readable instructions may be utilized to calculate dynamic and static resources. In various examples, calculating dynamic and static resources using leakage temperature table 223 may be performed by computer readable instructions that may be used to assign resources.
[0078] Figure 3 is a flow chart corresponding to a method 380 for leak resource management according to some embodiments of the present disclosure. The method 380 may be performed by processing logic, which may include hardware (e.g., a processing device, a circuit system, dedicated logic, programmable logic, microcode, hardware of a device, an integrated circuit, etc.), software (e.g., instructions running or executed on a processing device), or a combination thereof. In some embodiments, the method 380 is performed by Figure 1 The resource manager circuit system 108 of the embodiment of the present invention is executed. Although shown in a specific sequence or order, unless otherwise specified, the order of the processes may be modified. Therefore, the illustrated embodiments should be understood as examples only, and the illustrated processes may be performed in a different order, and some processes may be performed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are possible.
[0079] Method 380 includes managing resources. As described above, Figure 2 The leakage temperature table 223 of the system is used to manage resources. At operation 381, the system Figure 2 The resource manager circuitry 208 can access Figure 2 Leakage temperature table 223. Figure 2 The leakage temperature table 223 can associate temperature with current so that the temperature can be used to select the current. At operation 382, Figure 2 The resource manager circuit system 208 may be based on Figure 2 The leakage temperature table 223 of the system is used to determine the dynamic resource pool and the static resource pool of the system. The current can be used to determine the static resource pool. The static resource pool can be a resource that is unavailable due to leakage. Leakage is a static current that occurs even if the device is not actively operating. The leaked resources may include resources that become unavailable for performing operations in the process of performing operations. The static resource pool can be used to determine the dynamic resource pool that can be used to perform operations. Resources occupied by leakage (e.g., static) cannot be assigned to the dynamic pool. The static resource pool can be a separate static pool or a total static number calculated from a table and / or a device (e.g., a device with the ability to request resources that take leakage into account). The total static resource pool can be deducted from the total resource pool. The remaining resource pool can be assigned to the dynamic resource pool. In various examples, more static resources can be assigned than consumed by the device. If the temperature and / or voltage of the device and / or system changes or another intelligent device is powered on after a power outage, the resource manager circuit system cannot reassign the granted dynamic resources as static resources. By retaining static resources and not allowing them to be assigned as dynamic resources, the resource manager circuit system can prevent dependence on consumed dynamic resources.
[0080] In various examples, static resources can be reclassified as dynamic resources and / or dynamic resources can be reclassified as static resources. For example, as the temperature and / or voltage of the system changes, static resources can be reclassified as dynamic resources and / or dynamic resources can be reclassified as static resources.
[0081] At operation 383, Figure 2 The resource manager circuitry 208 of the system may receive a resource request from a device of the system. For example, the device may be a device within the system or coupled to the system via a bus or communication channel. The resource request may include a request for a power resource represented as a power token. At operation 384, Figure 2 The resource manager circuitry 208 may assign resources from the dynamic resource pool and the static resource pool to the device. Assigning dynamic resources and static resources allows the device to fully utilize the assigned dynamic resources while taking into account leakage of power resources.
[0082] The resource manager may receive the temperature of the system. The temperature may be received from one or more temperature sensors. The one or more temperature sensors may be part of the system and may be coupled to the resource manager. The one or more temperature sensors may measure the temperature of the system or a part of the system. The one or more temperature sensors may provide the temperature of the system or a part of the system to the resource manager. For example, a part of the system may include a memory device, a memory subsystem, or a component of the memory subsystem. In various examples, the system may be a memory subsystem or a computing system. In various examples, the system may be a network system and the device is a network device. The network device may be coupled to the system using a hardware connection or a wireless connection.
[0083] The leakage temperature table can relate temperature to the current leaked by the system. For example, for a given voltage of the system, the leakage temperature table can relate temperature to current. The temperature provided by one or more temperature sensors can be used to retrieve the leakage current.
[0084] The dynamic resource pool and the static resource pool may be determined based on the leakage temperature table and the temperature of the system. For example, the leakage current may be used to calculate the static resource pool and the static resource pool may be used to calculate the dynamic resource pool. The dynamic resource pool and the static resource pool may be expressed as power tokens. For example, the dynamic resource pool may be a dynamic power token and the static resource pool may be a static power token.
[0085] In many examples, the static resource pool is the current leaked by the system. The leaked current (e.g., static resources) is not available for the device to perform an operation or may become unavailable to the device in the process of performing an operation. The dynamic resource pool may be expressed as a power token (e.g., a dynamic power token) representing the power available for the device to utilize. For example, the dynamic resource pool represents the power available for the device to perform an operation (e.g., read / write operations, logical operations, network operations, matrix operations, machine learning operations, etc.). In various examples, the static resource pool may be expressed as a static power token representing the power that becomes unavailable for the device to perform an operation.
[0086] The leakage temperature table may include one or more temperatures and a corresponding current for each of the one or more temperatures. For example, multiple currents may be associated with a single temperature. Multiple currents may correspond to process variations (e.g., SS, TT, FF, etc.). A first current corresponding to a SS process variation may be associated with a temperature. A second current corresponding to a TT process variation may be associated with a temperature. A third current corresponding to a FF process variation may be associated with the same temperature. The leakage temperature table may correspond to a voltage of a system and / or device. For example, if a device utilizes a first voltage at a first time, a leakage temperature table corresponding to the first voltage may be selected. If a device utilizes a second voltage at a second time, a leakage temperature table corresponding to the second voltage may be selected.
[0087] The leakage temperature table may be selected before utilizing temperature and / or process variations to select leakage current. In various examples, voltage may be provided by the device and / or by one or more sensors of the system. Measurements of voltage utilized by the system and / or the device may be stored in a memory of the system of the device. The resource manager circuitry may access the voltage measurements from the memory or may receive the voltage measurements. The voltage measurements may be accessed before accessing the measured temperature and / or process variations or after accessing the measured temperature and / or process variations.
[0088] In various examples, each device may be associated with a leak temperature table. For example, a leak temperature table may be unique to a device. As used herein, a leak temperature table may be unique to a device if the device is the only device associated with the leak temperature table. In various instances, a device may be associated with multiple leak temperature tables. For example, a first leak temperature table may be used for a device utilizing a first voltage, a second leak temperature table may be used for a device utilizing a second voltage, and a third leak temperature table may be used for a device utilizing a third voltage.
[0089] In some examples, multiple devices may be associated with a leak temperature table. If the leak temperature table 223 is stored at the system level rather than the device level, the resource manager may associate multiple devices with the leak temperature table. Storing the leak temperature table at a central location allows the leak temperature table to be updated uniformly rather than relying on the device to update the leak temperature table.
[0090] In various examples, a device may include one or more temperature sensors that measure the temperature of the device. The device may also include a resource manager coupled to the temperature sensor. The one or more temperature sensors may be directly coupled to the device or may be coupled to the device via a bus. The resource manager may receive temperatures from the one or more temperature sensors and may access a leakage temperature table. For example, the resource manager may access the leakage temperature table using the temperature provided by the temperature sensor. The resource manager may determine a dynamic resource pool and a static resource pool of the device based on the leakage temperature table and the temperature. For example, the resource manager may access current from the leakage temperature table using the temperature. The resource manager may calculate a static resource pool using the current. The resource manager may calculate a dynamic resource pool using the static resource pool. The device may assign resources from the dynamic resource pool and the static resource pool to multiple devices.
[0091] The resource manager may access multiple leakage temperature tables including a leakage temperature table. For example, the resource manager may access a leakage temperature table corresponding to a device from the multiple leakage temperature tables. In various examples, the multiple leakage temperature tables correspond to a single device. The leakage temperature table may be selected from the multiple leakage temperature tables for the device based on one or more properties of the device. For example, the leakage temperature table may be selected for the device based on the voltage of the device and / or the process variation of the device. Taking into account that the device may be subjected to voltage variations, the leakage temperature table may be selected using the voltage of the device. In some examples, each leakage temperature table from the multiple leakage temperature tables may correspond to a different one of the multiple devices.
[0092] A dynamic resource pool and a static resource pool may be calculated based on a device selected from a plurality of devices. The dynamic resource pool and the static resource pool may be calculated for a device and may be different for different devices. For example, a dynamic resource pool and a static resource pool may be calculated for a device having a first voltage but may be different when calculated for a different device having a second voltage. Resources may be assigned to the selected device from the dynamic resource pool and the static resource pool. For example, dynamic resources may be assigned from the dynamic resource pool and static resources may be assigned from the static resource pool. The dynamic resources and the static resources may include resources assigned to the selected device.
[0093] The leakage temperature table may include a nonlinear temperature scale. For example, a step between a first temperature and a second temperature may have a first distance (e.g., 5°C), and a step between a second temperature and a third temperature may have a second distance (e.g., 7°C). The leakage temperature table may model the leakage temperature dependency of a device. As used herein, leakage temperature dependency is the relationship between temperature and current leakage. For example, current leakage may depend on temperature. The temperature scale may be based on leakage temperature dependency. For example, as current leakage increases with temperature, the distance between temperatures (e.g., 5°C vs. 10°C) may decrease.
[0094] The electronic fuse may provide the process variation to the resource manager. The resource manager may access the leakage temperature table based on the process variation read from the electronic fuse. For example, if the device has an SS process variation, then a first leakage temperature table may be accessed, and if the device has a TT process variation, then a second leakage temperature table may be accessed.
[0095] In various examples, a system may include a device and a resource manager. The device may access a leak temperature table. The leak temperature table may be stored inside the device. The device may determine dynamic resources and static resources based on the leak temperature table. The device may determine the dynamic resources and static resources in comparison to the resource manager determining the dynamic resources and static resources. The dynamic resources and static resources may be determined such that the dynamic resources are equal to or greater than target resources for performing multiple operations. The device may provide a request for the dynamic resources and static resources to the resource manager.
[0096] A resource manager may be coupled to the device. The resource manager may receive requests for dynamic resources and static resources. The resource manager may assign resources to the device based on the requests for dynamic resources and static resources without determining static resources.
[0097] In many examples, the resource manager can assign resources to devices based on requests for dynamic resources and static resources without determining the dynamic resources or the static resources. The resource manager can provide requests without determining the dynamic resources and the static resources.
[0098] The device may access the temperature of the device. The device may determine dynamic resources and static resources based on the target dynamic resources, the leakage temperature table, and the temperature of the device. The target dynamic resources may be resources used to perform operations by the device. The target dynamic resources may not take leakage into account.
[0099] Figure 4 is a block diagram of an example computer system in which embodiments of the present disclosure may operate. For example, Figure 4 An example machine illustrating a computer system 490 within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein may be executed. In some embodiments, the computer system 490 may correspond to a host system (e.g., Figure 1 ) that includes, is coupled to, or utilizes a memory subsystem (e.g., Figure 1 The memory subsystem 103 of the controller may be used to execute the operation of the controller (for example, execute the operating system to execute the corresponding Figure 1In some embodiments, the machine may be connected (e.g., using a network) to other machines in a LAN, an intranet, an extranet, and / or the Internet. The computer may operate in the capacity of a server or a client user machine in a client-server network environment, as a peer machine in a peer-to-peer (or distributed) network environment, or as a server or a client user machine in a cloud computing infrastructure or environment.
[0100] The machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a network appliance, a server, a network router, a switch or a bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by the machine. Further, while a single machine is described, the term "machine" shall also be taken to include any collection of machines that individually or collectively execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
[0101] The example computer system 490 includes a processing device 491, a main memory 493 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) (e.g., synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM)), etc.), a static memory 497 (e.g., flash memory, static random access memory (SRAM), etc.) and a data storage system 498, which communicate with each other via a bus 496.
[0102] The processing device 491 represents one or more general-purpose processing devices, such as a microprocessor, a central processing unit, or the like. More specifically, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or multiple processors implementing a combination of instruction sets. The processing device 491 may also be one or more special-purpose processing devices, such as an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or the like. The processing device 491 is configured to execute instructions 492 for performing the operations and steps discussed herein. The computer system 490 may further include a network interface device 494 for communicating over a network 495.
[0103] The data storage system 498 may include a machine-readable storage medium 499 (also referred to as a computer-readable medium) on which is stored one or more sets of instructions 492 or software embodying any one or more of the methodologies or functions described herein. The instructions 492 may also reside, completely or at least partially, within the main memory 493 and / or within the processing device 491 during execution thereof by the computer system 490, the main memory 493 and the processing device 491 also constituting machine-readable storage media. The machine-readable storage medium 499, the data storage system 498, and / or the main memory 493 may correspond to Figure 1 Memory subsystem 103.
[0104] In one embodiment, instructions 492 may include instructions to implement a method corresponding to resource manager circuitry (eg, Figure 1 The term "machine-readable storage medium" should be taken to include a single medium or multiple media storing one or more sets of instructions. The term "machine-readable storage medium" should also be taken to include any medium capable of storing or encoding a set of instructions for execution by a machine and causing the machine to perform any one or more of the methods of the present disclosure. Therefore, the term "machine-readable storage medium" should be taken to include (but not limited to) solid-state memory, optical media, and magnetic media.
[0105] Some portions of the foregoing detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is generally conceived here to be a self-consistent sequence of operations leading to a desired result. Operations are those requiring physical manipulation of physical quantities. Typically, but not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, primarily for common usage reasons, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
[0106] It should be borne in mind, however, that all of these and similar terms should be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The present disclosure may involve actions and processes of computer systems or similar electronic computing devices that manipulate and transform data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system's memories or registers or other such information storage systems.
[0107] The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the intended purpose, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. This computer program may be stored in a computer-readable storage medium, such as (but not limited to) any type of disk (including floppy disks, optical disks, CD-ROMs, and magneto-optical disks), read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical cards, or any type of medium suitable for storing electronic instructions, each coupled to a computer system bus.
[0108] The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs according to the teachings herein, or it may prove convenient to construct more specialized equipment to perform the methods. The structure of various such systems will appear as set forth in the claims. In addition, the present disclosure is not described with reference to any particular programming language. It should be appreciated that various programming languages may be used to implement the teachings of the present disclosure described herein.
[0109] The present disclosure may be provided as a computer program product or software, which may include a machine-readable medium having instructions stored thereon, which can be used to program a computer system (or other electronic device) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form that can be read by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., computer) readable storage medium, such as a read-only memory ("ROM"), a random access memory ("RAM"), a magnetic disk storage medium, an optical storage medium, a flash memory device, etc.
[0110] In the foregoing description, embodiments of the present disclosure have been described with reference to specific example embodiments of the present disclosure. It will be apparent that various modifications may be made to the present disclosure without departing from the broader spirit and scope of the embodiments of the present disclosure as set forth in the appended claims. Therefore, the description and drawings should be regarded as intended to be illustrative rather than restrictive.
Claims
1. A method comprising: Accessing a leak temperature table (223) at a resource manager (108, 208) of the system (100); Determining, at the resource manager, a dynamic resource pool and a static resource pool of the system based on the leakage temperature table; receiving, at the resource manager, a resource request from a device (109) of the system; and Resources are assigned to the device by the resource manager from the dynamic resource pool and the static resource pool. 2 . The method according to claim 1 , wherein the dynamic resource pool and the static resource pool comprise a total resource pool of the system.
3. The method of claim 1, further comprising receiving a temperature of the system (224), and wherein: The leakage temperature table relates the temperature to the current (225) leaked by the system; and The dynamic resource pool and the static resource pool are determined based on the leakage temperature table and the temperature of the system.
4. The method according to any one of claims 1 to 3, wherein the static resource pool is at least the current (225) leaked by the system.
5. The method of any one of claims 1 to 3, wherein the dynamic resource pool is a power token representing power available for operation.
6. The method of any one of claims 1 to 3, wherein the leakage temperature table includes a plurality of temperatures (224) and a corresponding current (225) for each of the plurality of temperatures, and wherein the leakage temperature table is process and voltage dependent.
7. A device comprising: a temperature sensor (222) configured to measure a temperature (224) of the device; and A resource manager (108, 208) coupled to the temperature sensor and configured to: receiving the temperature from the temperature sensor; Access leak table (223); Determine a dynamic resource pool and a static resource pool of the device based on the leakage table and the temperature; Dynamic resources from the dynamic resource pool and static resources from the static resource pool are assigned to a plurality of devices (109).
8. The apparatus of claim 7, wherein the resource manager is further configured to access a plurality of leak tables (223).
9. The apparatus of claim 8, wherein each leak table from the plurality of leak tables corresponds to a different one of the plurality of devices.
10. The apparatus of claim 9, wherein each of the plurality of devices is subject to a voltage variation.
11. The apparatus of claim 9, wherein the resource manager is further configured to: determining the dynamic resource pool and the static resource pool based on a device (109) selected from the plurality of devices; and Resources are assigned to the selected device from the dynamic resource pool and the static resource pool.
12. The apparatus of any one of claims 7 to 11, wherein the leakage table comprises a non-linear temperature scale, and wherein the leakage table models leakage temperature dependence of the apparatus.
13. The apparatus of any one of claims 7 to 11, further comprising an electronic fuse configured to store process variations, and wherein the resource manager is further configured to access the leak table based on the process variations read from the electronic fuse.
14. A system comprising: A device (109) configured to: Accessing the leak temperature table (223); Determining dynamic resources and static resources based on the leakage temperature table; and providing a request for the dynamic resource and the static resource; and A resource manager (108, 208) coupled to the device and configured to: Receiving the request for the dynamic resource and the static resource; and Resources are assigned to the device based on the request for the dynamic resources and the static resources without determining the static resources.
15. The system of claim 14, wherein the resource manager configured to assign the resources is further configured to assign the resources to the devices from a dynamic resource pool and a static resource pool.
16. The system of any one of claims 14-15, wherein the device is configured to: accessing the temperature of the device (224); and Determining the dynamic resource is further configured to determine the dynamic resource and the static resource based on a target dynamic resource, the leak temperature table, and the temperature of the device.