Systems, apparatuses, and methods for energy harvesting in data centers
By adaptively managing workload and coolant properties in the data center, concentrating heat and using a thermoelectric generator to convert heat energy into electrical energy, the problem of low heat recovery efficiency in existing technologies is solved, achieving efficient utilization of heat energy and generation of electrical energy.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- INTEL CORP
- Filing Date
- 2025-10-27
- Publication Date
- 2026-06-23
AI Technical Summary
Existing technologies fail to efficiently recover heat generated by electronic components in data centers, resulting in low energy recovery efficiency and underutilization of thermal energy for other purposes such as power generation.
By employing adaptive and dynamic workload allocation algorithms in data centers, adjusting coolant properties and workload distribution, heat is concentrated in specific racks, and thermoelectric generators are used to convert heat energy into electrical energy. This optimizes workload scheduling to avoid hotspots and improves thermal gradient and power generation.
It increases the amount of recyclable heat in data centers, increases the amount of electricity generated, achieves efficient conversion and utilization of thermal energy, and improves energy recovery efficiency.
Smart Images

Figure CN122267945A_ABST
Abstract
Description
Technical Field
[0001] Heat generated during the operation of electronic components in a data center can be captured and reused for purposes such as heating the building. Attached Figure Description
[0002] Figure 1 The illustration shows one or more example environments in which the teachings of this disclosure can be implemented.
[0003] Figure 2 The illustration shows at least one example of a data center used to perform workloads with decomposed resources.
[0004] Figure 3 The diagram illustrates what can be included in Figure 2 At least one example of a server rack in a data center.
[0005] Figure 4 It can be included in Figure 3 A perspective view of at least one example of a rack in a cabinet.
[0006] Figure 5 yes Figure 4 Side elevation view of the frame.
[0007] Figure 6 It has a bracket installed inside. Figure 4 A perspective view of the rack.
[0008] Figure 7 yes Figure 6 A block diagram of at least one example of the top side of the bracket.
[0009] Figure 8 yes Figure 7 A block diagram of at least one example of the bottom side of the bracket.
[0010] Figure 9 This is a block diagram of an example environment where an example workload management circuit operates to control the distribution of workloads to (multiple) electronic components to facilitate energy harvesting.
[0011] Figure 10 Here is a block diagram of another example environment, in which, Figure 9 The example workload management circuit controls the distribution of workloads to (multiple) electronic components to facilitate energy harvesting, and in particular electrical energy harvesting.
[0012] Figure 11 yes Figure 9 and / or Figure 10 A block diagram illustrating an example implementation of a workload management circuit.
[0013] Figures 12A-12CA flowchart illustrating example machine-readable instructions and / or example operations is provided. These example machine-readable instructions and / or example operations can be implemented, instantiated, and / or executed by example programmable circuitry to achieve... Figure 11 The workload management circuit 902.
[0014] Figure 13 yes Figures 12A-12C The flowchart shows an example implementation of box 1202.
[0015] Figure 14 yes Figures 12A-12C The flowchart shows an example implementation of box 1244.
[0016] Figures 15A-15C Another flowchart illustrating example machine-readable instructions and / or example operations is provided, which can be implemented, instantiated, and / or executed by example programmable circuitry to achieve... Figure 11 The workload management circuit 902.
[0017] Figure 16 An example assembly comprising a heat source and a thermoelectric generator, in accordance with the teachings of this disclosure, is illustrated.
[0018] Figure 17 Another flowchart illustrating example machine-readable instructions and / or example operations is provided, which can be implemented, instantiated, and / or executed by example programmable circuitry to achieve... Figure 11 The workload management circuit 902.
[0019] Figure 18 yes Figure 17 The flowchart shows the example implementation of box 1706.
[0020] Figure 19 Another flowchart illustrating example machine-readable instructions and / or example operations is provided, which can be implemented, instantiated, and / or executed by example programmable circuitry to achieve... Figure 11 The workload management circuit 902.
[0021] Figure 20 This is a block diagram of an example processing platform including programmable circuitry configured to implement, instantiate, and / or execute example machine-readable instructions and / or perform... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 Example operations to implement Figure 11 The workload management circuit 902.
[0022] Figure 21 yes Figure 20 A block diagram illustrating an example implementation of a programmable circuit.
[0023] Figure 22 yes Figure 20 A block diagram of another example implementation of a programmable circuit.
[0024] Figure 23 This is a block diagram of an example software / firmware / instruction distribution platform (e.g., one or more servers) that distributes software, instructions, and / or firmware (e.g., with...) Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 (Corresponding to example machine-readable instructions) are distributed to client devices associated with end users and / or consumers (e.g., for licensing, sales and / or use), retailers (e.g., for sales, resale, licensing and / or re-licensing), and / or original equipment manufacturers (OEMs) (e.g., for inclusion in products to be distributed to, for example, retailers and / or other end users (such as those purchased directly by customers)).
[0025] Typically, the same reference figures will be used throughout the accompanying drawings and written description to refer to the same or similar parts. The drawings are not necessarily drawn to scale. Detailed Implementation
[0026] Electronic components such as servers operating in data centers generate significant amounts of heat. Efforts have been made to reuse the heat output through these electronic components. For example, heat generated at a data center can be used to heat water supplied to the building and / or heat the building itself. However, efforts to recover energy from data centers may not be efficient. For instance, electronic components such as servers are typically stored in racks within a data center. Known efforts to recover energy in data centers generally do not attempt to increase (e.g., maximize) the amount of energy captured and do not take into account factors such as the workload allocated to the electronic components in each rack, the thermal design power of the electronic components, the heat flux generated at each rack, and the cooling requirements for the electronic components. Furthermore, known workload scheduling efforts typically distribute workloads to avoid creating hotspots at the electronic components or within the racks. By avoiding the creation of hotspots, the amount of heat that can be recaptured for other purposes is limited. Due to inefficient and / or insufficient energy recovery, opportunities to reuse heat for purposes such as power generation have not yet been explored.
[0027] This document discloses example systems, apparatuses, and methods for harvesting energy at a data center via adaptive and dynamic management of workloads allocated to the respective racks of electronic components(s). Some of the examples disclosed herein use parameters such as the temperature of the electronic components at each rack in the data center, historical performance data of the electronic components, thermal design power, maintenance scheduling, workload type, etc., to execute algorithms (e.g., artificial intelligence (AI) algorithms). In the examples disclosed herein, the algorithm controls the allocation of workloads to the rack(s) of electronic components(s) to concentrate the generated heat at certain racks. Therefore, the examples disclosed herein increase the amount of heat that can be recovered compared to a case where workloads are distributed to electronic components between racks without considering the increased heat load for harvesting purposes. Some of the examples disclosed herein adjust the properties (e.g., temperature) of the coolant provided to the rack(s)(s) selected for energy harvesting to increase (e.g., maximize) the temperature difference between the inlet and outlet coolant, thereby increasing the heat recaptured via the coolant.
[0028] Some examples disclosed herein can be used to collect energy for heat-to-electric energy conversion via thermoelectric generators (TEGs) in data centers. A TEG can convert heat into electricity (e.g., current) via a temperature difference between opposite sides of a thermoelectric material (due to, for example, the difference between introduced and escaping heat). However, the amount of current generated can vary and / or be inconsistent over time based on, for example, the workload allocated to the electronic components(s) associated with the TEG and therefore based on the amount of heat output and the corresponding temperature gradient. Examples disclosed herein can be used to create a large thermal gradient or thermal difference at the TEG to generate electrical energy by managing the workload(s) allocated to the electronic components(s). Examples disclosed herein schedule workloads to increase (e.g., maximize) the heat generated by certain electronic components(s), such as servers(s), graphics processing units(s), while moving other electronic components(s) to a lower power state. Some examples disclosed herein convert electronic component temperature data provided to a workload scheduling algorithm to reverse the algorithm's preference for avoiding hot spots when allocating workloads, thereby using job scheduling to increase or concentrate the heat output through electronic components that have already generated heat. Due to the increased utilization of certain electronic components, the thermal gradient for power generation increases at the TEGs associated with the selected electronic components(s). The electricity generated via the TEGs(s) in the data center can be used, for example, for battery charging due to this increased thermal gradient.
[0029] Figure 1 The illustration shows one or more example environments in which the teachings of this disclosure can be implemented. Figure 1The (multiple) example environments can include one or more central data centers 102. The (multiple) central data centers 102 can store a large number of servers used by one or more organizations, for example, for data processing, storage, etc. Figure 1 As illustrated in the diagram, the (multiple) central data centers 102 include multiple immersion tanks 104 to facilitate cooling of servers and / or other electronic components stored at the (multiple) central data centers 102. The (multiple) immersion tanks 104 are capable of providing single-phase or two-phase cooling.
[0030] Figure 1 The example environment can be part of an edge computing system. For example, Figure 1 Example environments can include edge data centers or micro data centers 106. Multiple edge data centers 106 can include, for example, data centers located at the base of a cellular tower. In some examples, multiple edge data centers 106 are located at or near the top of a cellular tower and / or other multi-purpose pole. Multiple edge data centers 106 include respective housings storing multiple servers, wherein the multiple servers are capable of communicating with, for example, multiple servers, client devices, and / or other computing devices stored at a central data center 102. Example housings of multiple edge data centers 106 can include materials forming one or more outer surfaces that partially or completely protect the contents therein, wherein protection can include weather protection, hazardous environment protection (e.g., electromagnetic interference (EMI), vibration, extreme temperatures), and / or immersion capability. Example housings can include power circuitry for providing power for stationary and / or portable implementations, such as AC power input, DC power input, multiple AC / DC converters or DC / AC converters, power conditioners, transformers, charging circuitry, batteries, wired inputs, and / or wireless power inputs. Figure 1 As illustrated in the diagram, (multiple) edge data centers 106 may include (multiple) immersion tanks 108 to store (multiple) servers and / or (multiple) other electronic components located at (multiple) edge data centers 106.
[0031] Figure 1 The (multiple) example environments may include building 110 for commercial and / or industrial purposes, where information technology (IT) equipment is stored, for example, in one or more rooms of building 110. For example, such as... Figure 1As shown, the multiple servers 112 can be stored using multiple server racks 114 supporting the multiple servers 112 (e.g., stored in openings of slots in the racks 114). In some examples, the multiple servers 112 located at building 110 include multiple local servers of an edge computing network, wherein the multiple local servers communicate with multiple remote servers (e.g., multiple servers at multiple edge data centers 106) and / or multiple other computing devices within the edge network.
[0032] Figure 1 The example environment includes multiple content delivery network (CDN) data centers 116. These example CDN data centers 116 include multiple servers 118 that cache content such as images, web pages, and videos accessed via user devices. The multiple servers 118 of the CDN data center 116 can be arranged in multiple immersion cooling chambers, such as immersion chambers 104 and 108 shown in conjunction with data centers 102 and 106.
[0033] In some instances, Figure 1 Example data centers 102, 106, 116, and / or (multiple) buildings 110 include servers and / or other electronic components cooled independently of immersion tanks (e.g., immersion tanks 104, 108) and / or associated immersion cooling systems. That is, in some examples, some or all of the servers and / or other electronic components in data centers 102, 106, 116, and / or (multiple) buildings 110 can be cooled by air and / or liquid coolant without immersing the servers and / or other electronic components therein. Therefore, in some examples, [the following can be omitted]. Figure 1 Immersion tanks 104 and 108. In addition... Figure 1 Example data centers 102, 106, 116 and / or (multiple) buildings 110 can be combined with the following Figures 2-16 A further detailed description of the example data center 200 corresponds to the following combination Figures 2-16 A further detailed description of the example data center 200 implementation and / or the following combined Figures 2-16 A more detailed description of the adapted version of the sample data center 200.
[0034] Although a certain number of cooling boxes and other components are shown in the diagram, any number of such components can be present. Furthermore, the example cooling data centers and / or other structures or environments disclosed herein are not limited to... Figure 1 The arrangement of dimensions depicted herein. For example, a structure containing the example cooling system and / or its components disclosed herein can have dimensions including openings for accommodating service personnel (such as...). Figure 1Examples of data centers (106) can be included, but smaller ones (e.g., "doghouse" enclosures) are also possible. For example, the dimensions of a structure containing the example cooling systems and / or components disclosed herein can be designed such that the entrance to the interior of the structure (e.g., the only entrance) is the port through which service personnel can access the structure. In some examples, the dimensions of a structure containing the example cooling systems and / or components disclosed herein can be designed such that only tools can access the enclosure, as the structure may be supported by a multi-purpose pole or radio tower or a larger structure.
[0035] Figure 2 The illustration depicts an example data center 200 where the decomposed resources can collaboratively perform one or more workloads (e.g., applications representing clients). The illustrated data center 200 includes multiple platforms 210, 220, 230, and 240 (referred to herein as racks), each comprising one or more rows of racks. Although the data center 200 is shown as having multiple racks, in some examples, the data center 200 may be implemented as a single rack. As described in more detail herein, a rack may house multiple bays. Bays may be primarily equipped with specific types of resources (e.g., memory devices, data storage devices, accelerator devices, general-purpose programmable circuits) capable of logically coupling to form composite nodes. Some of these nodes may act as, for example, servers. In the illustrative example, the bays in racks 210, 220, 230, and 240 are connected to multiple rack switches (e.g., switches that route data communication to or from bays within a rack). The rack switch then connects to a spine switch 250 that switches communication between racks (e.g., racks 210, 220, 230, 240) in data center 200. In some examples, the rack may use Intel OmniPath. TM Technology and infrastructure connectivity. In other examples, the rack can be connected to other infrastructure, such as wireless bandwidth or Ethernet. As described in more detail herein, resources within a rack in data center 200 can be allocated to a group (referred to herein as a “managed node”) containing resources from one or more racks for shared use when performing workloads. Workloads can be performed as if the resources belonging to a managed node were located on the same rack. Resources in a managed node can belong to racks belonging to different racks, and even to different cabinets 210, 220, 230, 240. Thus, some resources from a single rack can be allocated to one managed node, while other resources from the same rack can be allocated to different managed nodes (e.g., a first programmable circuit assigned to one managed node and a second programmable circuit from the same rack assigned to different managed nodes).
[0036] Data centers with decomposed resources (such as Data Center 200) can be used in a variety of environments (such as enterprises, governments, cloud service providers and communications service providers (e.g., telecommunications providers, telephone companies (e.g., Telco))) and in a variety of sizes (from giant cloud service provider data centers consuming more than 200,000 square feet to single-rack or multi-rack installations for use in base stations).
[0037] In some examples, resource decomposition is accomplished by using separate racks that primarily comprise a single type of resource (e.g., a compute rack primarily comprising compute resources, a memory rack primarily comprising memory resources). This resource decomposition, along with the selective allocation and reallocation of the decomposed resources to form managed nodes assigned to perform workloads, improves the operation and resource utilization of data center 200 compared to a typical data center. Such a typical data center includes hyperconverged servers, which contain compute resources, memory resources, storage resources, and possibly additional resources in a single chassis. For example, because a given rack will primarily contain the same specific type of resource, it is possible to upgrade that type of resource independently of other resources. Additionally, because different resource types (programmable circuits, memory, accelerators, etc.) typically have different refresh rates, greater resource utilization and a lower total cost of ownership can be achieved. For example, a data center operator can upgrade programmable circuits throughout the facility by replacing only the compute rack. In this case, accelerator and storage resources may not be upgraded simultaneously and, instead, may be allowed to continue operating until these resources are scheduled for their own refresh. Resource utilization can also be increased. For example, if managed nodes are based on the required combination of workloads to be run on them, the resources within a node are more likely to be fully utilized. This utilization can allow more managed nodes to run in a data center with a given set of resources, or allow a data center to be built with fewer resources to run a given set of workloads.
[0038] Now for reference Figure 3In the illustrative example, rack 210 includes a set of rows 300, 310, 320, and 330 of racks 340. Each rack in the plurality of racks 340 can accommodate multiple bays (e.g., 16 bays) and provide power and data connectivity to the accommodated bays, as described in more detail herein. In the illustrative example, the racks are connected to multiple rack switches 350 and 360. Rack switch 350 includes: a set of ports 352 to which the bays of rack 210 are connected; and another set of ports 354 connecting rack 210 to spine switch 250 to provide connectivity to other racks in data center 200. Similarly, rack switch 360 includes: a set of ports 362 to which the bays of rack 210 are connected; and a set of ports 364 connecting rack 210 to spine switch 250. Thus, a pair of switches 350 and 360 provides redundancy for rack 210. For example, if any of switches 350 and 360 fails, the racks in cabinet 210 can still maintain data communication with the rest of data center 200 (e.g., racks in other cabinets) via another switch 350 or 360. Furthermore, in the illustrative example, switches 250, 350, and 360 can be implemented as dual-mode optical switches, capable of routing both Ethernet protocol communication carrying Internet Protocol (IP) packets and communication according to a second high-performance link layer protocol (e.g., Peripheral Component Interconnect (PCI) High Speed (PCIe)) via optical signaling media of an optical structure.
[0039] It should be recognized that any of the other racks 220, 230, 240 (and any additional racks in data center 200) can be structurally similar to those in... Figure 3 Shown and about Figure 3 The exposed rack 210 (e.g., a given rack may have rows of racks accommodating multiple bays, as described above) and may have a similar design to that in Figure 3 Shown and about Figure 3 The disclosed rack 210 (e.g., a given rack may have rows of racks accommodating multiple bays, as described above) comprises components. Additionally, although two rack switches 350, 360 are shown, it should be understood that in other examples, different numbers of rack switches may be present, thus providing even greater failover capacity. In other examples, the rack may differ from the one shown in the diagram. Figure 2 and Figure 3 The racks are arranged in rows as shown in the diagram. For example, a rack may include multiple sets of radially arranged racks (e.g., racks equidistant from a central switch).
[0040] Figures 4-6An example rack 340 of a data center 200 is illustrated. As shown in the illustrative example, rack 340 includes two vertically aligned elongated support columns 402, 404. For example, when deployed, the elongated support columns 402, 404 can extend upwards from the floor of the data center 200. Rack 340 also includes brackets configured to support the data center 200 (via dashed ellipse in...). Figure 4 One or more horizontal pairs 410 of the elongated support arms 412 (identified in the image) are as follows. One of the elongated support arms 412 extends outward from the elongated support post 402, and the other elongated support arm 412 extends outward from the elongated support post 404.
[0041] In the illustrative example, at least some of the racks in the data center 200 are chassis-less racks. That is, such racks have chassis-less circuit board substrates on which physical resources (e.g., programmable circuits, memory, accelerators, etc.) are mounted, as discussed in more detail below. Therefore, rack 340 is configured to receive chassis-less racks. For example, a given pair 410 of elongated support arms 412 defines a rack slot 420 of rack 340, which is configured to receive a corresponding chassis-less rack. Thus, the elongated support arm 412 includes a corresponding circuit board guide 430 configured to receive the chassis-less circuit board substrate of the rack. The circuit board guide 430 is fixed to or otherwise mounted to the top side 432 of the corresponding elongated support arm 412. For example, in the illustrative example, the circuit board guide 430 is mounted relative to the corresponding elongated support posts 402, 404 at the distal end of the corresponding elongated support arm 412. Figures 4-6 For clarity, not every circuit board guide 430 can be referenced in every drawing. In some examples, at least some of the brackets include a chassis, and the rack 340 is appropriately adjusted to accommodate the chassis.
[0042] The circuit board guide 430 includes an inner wall defining a circuit board slot 480, which is configured to receive a chassisless circuit board substrate of the bracket 500 when the bracket 500 is received in a corresponding bracket slot 420 of the rack 340. Thus, as in Figure 5 As shown, the user (or robot) aligns the chassisless circuit board substrate of the illustrative chassisless bracket 500 with the bracket slot 420. The user or robot can then slide the chassisless circuit board substrate forward into the bracket slot 420, such that each side edge 514 of the chassisless circuit board substrate is received in a corresponding circuit board slot 480 of the circuit board guide 430 of the pair 410 of elongated support arms 412, which defines the corresponding bracket slot 420, as shown in... Figure 5As shown in the diagram, by using racks with robot-accessible and robot-manipulated components that include decomposed resources, different types of resources can be upgraded independently of each other and at their own optimized refresh rates. Furthermore, the racks are configured to blindly match the power and data communication cables in rack 340, thereby enhancing their ability to be quickly removed, upgraded, reinstalled, and / or replaced. Therefore, in some examples, data center 200 can operate on the data center floor without human intervention (e.g., performing workloads, undergoing maintenance, and / or upgrades). In other examples, personnel can facilitate one or more maintenance or upgrade operations within data center 200.
[0043] It should be recognized that the circuit board guide 430 is bilateral. That is, the circuit board guide 430 includes an inner wall defining a circuit board groove 480 on each side of the circuit board guide 430. In this way, the circuit board guide 430 is capable of supporting a chassisless circuit board substrate on either side. Therefore, a single additional elongated support column can be added to the rack 340 to transform the rack 340 into two rack solutions that can maintain twice the size of the original rack. Figure 4The bracket slot 420 is shown in the diagram. The illustrative rack 340 includes seven pairs 410 of elongated support arms 412 defining seven corresponding bracket slots 420. The bracket slots 420 are configured to receive and support corresponding brackets 500 as discussed above. In other examples, the rack 340 may include additional or fewer pairs 410 of the elongated support arms 412 (e.g., additional or fewer bracket slots 420). It should be appreciated that because the brackets 500 are chassis-less, they can have a different overall height than a typical server. Thus, in some examples, the height of a given bracket slot 420 may be shorter than the height of a typical server (e.g., shorter than a single rack unit, referred to as "1U"). That is, the vertical distance between the pairs 410 of the elongated support arms 412 may be less than that of a standard rack unit "1U". Additionally, due to the relatively reduced height of the bracket slots 420, the overall height of the rack 340 may be shorter than the height of a conventional rack housing in some examples. For example, in some examples, the elongated support columns 402, 404 may have a length of six feet or less. However, in other examples, rack 340 may have different dimensions. For example, in some examples, the vertical distance between pairs 410 of the elongated support arms 412 may be greater than that of a standard rack unit "1U". In such examples, the increased vertical distance between the brackets allows for the attachment of larger heat sinks to the physical resources and allows for the use of larger fans (e.g., in the fan array 470 described below) to cool the brackets, which in turn allows the physical resources to operate at increased power levels. Furthermore, it should be recognized that rack 340 does not include any walls, enclosures, etc. Instead, rack 340 is an enclosure-less rack open to the local environment. In some cases, where rack 340 forms a row of end racks in data center 200, end plates may be attached to one of the elongated support columns 402, 404.
[0044] In some examples, various interconnects can be routed upwards or downwards via elongated support columns 402, 404. To facilitate this routing, the elongated support columns 402, 404 include inner walls that define internal chambers in which the interconnects can be located. Interconnects routed via the elongated support columns 402, 404 can be implemented as any type of interconnect, including but not limited to data or communication interconnects providing a communication connection to the bracket slot 420, power interconnects providing power to the bracket slot 420, and / or other types of interconnects.
[0045] In an illustrative example, rack 340 includes a support platform on which corresponding optical data connectors (not shown) are mounted. These optical data connectors are associated with corresponding bracket slots 420 and are configured to mate with the optical data connectors of the corresponding bracket 500 when the bracket 500 is received in the corresponding bracket slot 420. In some examples, optical connections between components (e.g., brackets, racks, and switches) in data center 200 are made using blind-match optical connections. For example, a door on a given cable can prevent dust from contaminating the fibers inside the cable. During connection to a blind-match optical connector mechanism, the door is pushed open as the end of the cable approaches or enters the connector mechanism. The optical fibers inside the cable can then enter the gel within the connector mechanism, and the optical fibers of one cable contact the optical fibers of another cable within the gel inside the connector mechanism.
[0046] The illustrative rack 340 also includes a fan array 470 coupled to the cross support arms of the rack 340. The fan array 470 includes one or more rows of cooling fans 472 aligned horizontally between elongated support columns 402, 404. In the illustrative example, the fan array 470 includes one row of cooling fans 472 for different bracket slots 420 of the rack 340. As discussed above, the bracket 500 does not include any onboard cooling system in the illustrative example, and therefore, the fan array 470 provides cooling for such bracket 500 housed in the rack 340. In other examples, some or all of the brackets 500 may include onboard cooling systems. Furthermore, in some examples, the bracket 500 and / or rack 340 may include and / or contain liquid and / or immersion cooling systems to facilitate cooling of the electronic components(s) on the bracket(s). In the illustrative example, the rack 340 also includes different power supplies associated with the different bracket slots of the plurality of bracket slots 420. A given power source is secured to one of a plurality of elongated support arms 412 in a pair 410 defining a corresponding bracket slot 420. For example, rack 340 may include a power source coupled to or secured to a corresponding elongated support arm among a plurality of elongated support arms 412 extending from elongated support posts 402. The given power source includes a power connector configured to mate with a power connector of bracket 500 when bracket 500 is received in the corresponding bracket slot 420. In the illustrative example, bracket 500 does not include any onboard power supply, and therefore, when mounted to rack 340, the power source provided in rack 340 supplies power to the corresponding bracket 500. The given power source is configured to meet the power requirements of its associated bracket, which can vary from bracket to bracket. Additionally, the power sources provided in rack 340 can operate independently of each other. That is, within a single rack, a first power source supplying power to the computing rack is capable of providing a power level different from that supplied by a second power source supplying power to the accelerator rack. The power source can be controllable at the rack level or at the rig level, and can be locally controlled by components on the relevant rack or remotely controlled (such as by another rack or orchestrator).
[0047] Now for reference Figure 7 In the illustrative example, bay 500 is configured to be installed in a corresponding rack 340 of a data center 200 as discussed above. In some examples, a given bay 500 may be optimized or otherwise configured to perform specific tasks, such as compute tasks, acceleration tasks, data storage tasks, etc. For example, bay 500 may be implemented as a compute bay, an accelerator, a storage bay, or a bay optimized or otherwise configured to perform other specialized tasks (such as a memory bay).
[0048] As discussed above, the illustrative bracket 500 includes a chassisless circuit board substrate 702 supporting various physical resources (e.g., electrical components) mounted thereon. It should be understood that the circuit board substrate 702 is "chassisless" because the bracket 500 does not include a housing or enclosure. Instead, the chassisless circuit board substrate 702 is open to the local environment. The chassisless circuit board substrate 702 can be formed of any material capable of supporting the various electrical components mounted thereon. For example, in the illustrative example, the chassisless circuit board substrate 702 is formed of FR-4 glass-reinforced epoxy laminate material. In other examples, other materials may be used to form the chassisless circuit board substrate 702.
[0049] As discussed in more detail below, the chassisless circuit board substrate 702 includes several features that improve the thermal cooling characteristics of various electrical components mounted on it. As discussed, the chassisless circuit board substrate 702 does not include a housing or enclosure, which can improve airflow over the electrical components of the bracket 500 by reducing those structures that could suppress airflow. For example, because the chassisless circuit board substrate 702 is not positioned in a separate housing or enclosure, there is no vertically aligned backplate (e.g., a chassis backplate) attached to the chassisless circuit board substrate 702, which could suppress airflow through the electrical components. Additionally, the chassisless circuit board substrate 702 has a geometry configured to reduce the length of the airflow path through the electrical components mounted on it. For example, the illustrative chassisless circuit board substrate 702 has a width 704 greater than the depth 706 of the chassisless circuit board substrate 702. In a specific example, the chassis-less circuit board substrate 702 has a width of approximately 21 inches and a depth of approximately 9 inches, compared to a typical server with a width of approximately 17 inches and a depth of approximately 39 inches. Therefore, the airflow path 708 extending from the front edge 710 to the rear edge 712 of the chassis-less circuit board substrate 702 has a shorter distance compared to a typical server, which can improve the thermal cooling characteristics of the bracket 500. Furthermore, although in Figure 7 Not illustrated, but in this example, the various physical resources mounted to the chassisless circuit board substrate 702 are positioned in appropriate orientations such that no two substantially heat-generating electrical components obstruct each other, as discussed in more detail below. That is, no two electrical components (generating perceptible heat during operation (e.g., greater than the nominal heat sufficient to adversely affect the cooling of another electrical component)) are linearly connected in series to the chassisless circuit board substrate 702 along the direction of the airflow path 708 (e.g., along the direction extending from the front edge 710 towards the rear edge 712 of the chassisless circuit board substrate 702). When the electrical components are cooled by liquid (e.g., single-phase or two-phase cooling), the arrangement and / or structure of the features can be appropriately adjusted.
[0050] As discussed above, the illustrative bracket 500 includes one or more physical resources 720 mounted to the top side 750 of the chassisless circuit board substrate 702. Although in Figure 7 Two physical resources 720 are shown, but it should be understood that in other examples, the carriage 500 may include one, two, or more physical resources 720. The physical resource 720 can be implemented as any type of programmable circuit, controller, or other computing circuit capable of performing various tasks such as computing functions and / or controlling the functions of the carriage 500, depending on, for example, the type or intended function of the carriage 500. For example, as discussed in more detail below, the physical resource 720 can be implemented as a high-performance processor circuit in an example where the carriage 500 is implemented as a computing carriage, as an accelerator coprocessor circuit or circuit system in an example where the carriage 500 is implemented as an accelerator carriage, as a memory controller in an example where the carriage 500 is implemented as a storage carriage, or as a collection of memory devices in an example where the carriage 500 is implemented as a memory carriage.
[0051] The bracket 500 also includes one or more additional physical resources 730 mounted to the top side 750 of the chassisless circuit board substrate 702. In the illustrative example, the additional physical resources include a network interface controller (NIC), as discussed in more detail below. Depending on the type and function of the bracket 500, in other examples, the physical resource 730 may include additional or other electrical components, circuitry, and / or devices.
[0052] Physical resource 720 is communicatively coupled to physical resource 730 via input / output (I / O) subsystem 722. I / O subsystem 722 may be implemented as circuitry and / or components to facilitate input / output operations using physical resources 720, 730, and / or other components of the carriage 500. For example, I / O subsystem 722 may be implemented as or otherwise include a memory controller hub, input / output control hub, integrated sensor hub, firmware device, communication link (e.g., point-to-point link, bus link, wire, cable, waveguide, optical guide, printed circuit board trace, etc.) and / or other components and subsystems to facilitate input / output operations. In the illustrative example, I / O subsystem 722 is implemented as or otherwise includes a double data rate (DDR) data bus, such as a DDR4 or DDR5 data bus.
[0053] In some examples, the bracket 500 may also include a resource-to-resource interconnect 724. The resource-to-resource interconnect 724 can be implemented as any type of communication interconnect capable of facilitating resource-to-resource communication. In illustrative examples, the resource-to-resource interconnect 724 is implemented as a high-speed point-to-point interconnect (e.g., faster than I / O subsystem 722). For example, the resource-to-resource interconnect 724 can be implemented as a Fast Path Interconnect (QPI), a Hyper Path Interconnect (UPI), or other high-speed point-to-point interconnect dedicated to resource-to-resource communication.
[0054] The bracket 500 also includes a power connector 740, which is configured to mate with a corresponding power connector of the rack 340 when the bracket 500 is mounted in the corresponding rack 340. The bracket 500 receives power from the power supply of the rack 340 via the power connector 740 to supply power to the various electrical components of the bracket 500. That is, the bracket 500 does not include any local power supply (e.g., onboard power) to supply power to the electrical components of the bracket 500. Excluding local or onboard power supplies contributes to a reduction in the overall footprint of the chassisless circuit board substrate 702, which can increase the thermal cooling characteristics of the various electrical components mounted on the chassisless circuit board substrate 702, as discussed above. In some examples, a voltage regulator is placed on the bottom side 850 of the chassisless circuit board substrate 702 opposite the programmable circuitry (see [link to relevant documentation]). Figure 8 On the circuit board substrate 7002, power is routed from the voltage regulator to the programmable circuitry via through-holes extending through the substrate. Compared to a typical printed circuit board where processor power is partially transferred from the voltage regulator via printed circuit traces, this configuration provides increased thermal budget, additional current and / or voltage, and better voltage control.
[0055] In some examples, the carriage 500 may also include a mounting feature 742 configured to mate with a robot's mounting arm or other structure to facilitate the placement of the carriage 500 into the rack 340 by the robot. The mounting feature 742 may be implemented to allow the robot to grasp the carriage 500 without damaging the chassisless circuit board substrate 702 or any type of physical structure to which electrical components are mounted. For example, in some examples, the mounting feature 742 may be implemented as a non-conductive pad attached to the chassisless circuit board substrate 702. In other examples, the mounting feature may be implemented as a bracket, support, or other similar structure attached to the chassisless circuit board substrate 702. The specific number, shape, size, and / or construction of the mounting features 742 may depend on the design of the robot configured to manage the carriage 500.
[0056] Now for reference Figure 8In addition to the physical resources 730 mounted on the top side 750 of the chassisless circuit board substrate 702, the bracket 500 also includes one or more memory devices 820 mounted to the bottom side 850 of the chassisless circuit board substrate 702. That is, the chassisless circuit board substrate 702 is implemented as a dual-sided circuit board. The physical resources 720 are communicatively coupled to the memory devices 820 via I / O subsystem 722. For example, the physical resources 720 and the memory devices 820 can be communicatively coupled by extending through one or more vias of the chassisless circuit board substrate 702. In some examples, different resources among the multiple physical resources 720 can be communicatively coupled to different sets of one or more memory devices 820. Alternatively, in other examples, different resources among the multiple physical resources 720 can be communicatively coupled to the same memory device among the multiple memory devices 820.
[0057] The memory device 820 can be implemented as any type of memory device capable of storing data for physical resource 720 during operation of the carriage 500, such as any type of volatile memory (e.g., dynamic random access memory (DRAM) or non-volatile memory). Volatile memory can be a storage medium that requires power to maintain the state of the data stored by the medium. Non-limiting examples of volatile memory can include various types of random access memory (RAM), such as dynamic random access memory (DRAM) or static random access memory (SRAM). One specific type of DRAM that can be used in a memory module is synchronous dynamic random access memory (SDRAM). In specific examples, the DRAM of a memory component may conform to standards published by the Joint Electronic Equipment Committee (JEDEC), known as JESD, such as JESD79F for DDR SDRAM, JESD79-2F for DDR2 SDRAM, JESD79-3F for DDR3 SDRAM, JESD79-4A for DDR4 SDRAM, JESD209 for Low Power DDR (LPDDR), JESD209-2 for LPDDR2, JESD109-3 for LPDDR3, and JESD209-4 for LPDDR4. Such standards (and similar standards) can be referred to as DDR-based standards, and the communication interfaces of memory devices implementing such standards can be referred to as DDR-based interfaces.
[0058] In one example, the memory device is a block-addressable memory device, such as those based on NAND or NOR technology. Memory devices can also include next-generation non-volatile devices, such as Intel 3D XPoint. TMMemory or other byte-addressable in-situ write-free non-volatile memory devices. In one example, a memory device may be or may include memory devices using chalcogenide glass, multi-threshold NAND flash memory, NOR flash memory, single-level or multi-level phase-change memory (PCM), resistive memory, nanowire memory, ferroelectric transistor random access memory (FeTRAM), antiferroelectric memory, magnetoresistive random access memory (MRAM) incorporating memristor technology, resistive memory including metal oxide substrate, oxygen vacancy substrate and conductive bridge random access memory (CB-RAM) or spin-transfer torque (STT)-MRAM, spintronic magnetic junction based memory devices, magnetic tunnel junction (MTJ) based devices, domain wall (DW) and spin-orbit transfer (SOT) based devices, thyristor based memory devices, or any combination of the above or other memory devices. Memory devices may refer to the die itself and / or the packaged memory product. In some examples, memory devices may include transistorless stackable cross-point architectures, where memory cells are located at the intersection of word lines and bit lines and are individually addressable, and where bit storage is based on variations in body resistance.
[0059] Figure 9 The illustration depicts an example environment 900, in which example workload management circuitry 902 operates to facilitate energy recovery from rack-borne electronic components(s). Environment 900, for example, is suitable for a data center. Figure 9 In the example, each of the multiple racks 904-1, 904-2, 904-n carries multiple electronic components, such as multiple servers, multiple graphics processing units (GPUs), multiple central processing units (CPUs), multiple neural processing units (NPUs), multiple memories, etc. For example, the first rack 904-1 carries electronic component 906-1 and is capable of carrying one or more other electronic components 906-n. Similarly, the second rack 904-2 carries electronic component 906-2 and is capable of carrying one or more other electrical components 906-n. Another rack 904-n carries one or more electronic components 906-n. For ease of reading, Figure 9 Racks 904-1, 904-2, and 904-n will henceforth be collectively and individually referred to as racks (multiples) 904. Additionally, for ease of reading, Figure 9 Electronic components 906-1, 906-2, and 906-n will henceforth be collectively and individually referred to as (a plurality of) electronic components 906.
[0060] exist Figure 9In the example, a cooling distribution unit (CDU) 908 supplies liquid coolant to its respective rack 904 via corresponding first flow paths 910, 912, and 914. The liquid coolant flows through the electronic components 906 within their respective racks 904 via the first flow paths 910, 912, and 914. As the liquid coolant flows through the electronic components 906, the heat output of the electronic components 906 during operation is transferred to the liquid coolant. The heated liquid coolant exits the rack 904 and flows back to the CDU 908 via a second flow path 916. At the CDU 908, heat is transferred from the heated coolant to a second fluid flowing through the CDU 908. After heat exchange at the CDU 908, the coolant is recirculated for cooling the electronic components 906 via the first flow paths 910, 912, and 914.
[0061] As in Figure 9 As indicated by arrow 920, in an environment including a data center, a second fluid, from which heat is transferred from the heated coolant at CDU 908, can be supplied to CDU 908 via fluid source 918. Fluid source 918 can be, for example, a facility water system, cooling tower, etc. The heated second fluid (i.e., the fluid that absorbs heat from the coolant after exposure to the electronic components 906) can return to fluid source 918, as shown in... Figure 9 As indicated by arrow 922. The heated second fluid can be used to heat buildings, such as those housing data centers.
[0062] exist Figure 9 In the example, multiple sensors 924 are capable of generating outputs representing conditions within the data center 900. For example, multiple sensors 924 are capable of generating outputs indicating the temperature of the inlet coolant flowing through the first flow paths 910, 912, 914 and the temperature of the outlet coolant flowing through the second flow path 916. Multiple sensors 924 are capable of generating outputs indicating multiple temperatures (e.g., heat generated by the electronic components) associated with the electronic components 906. Multiple sensors 924 are located near (e.g., inside or on) the electronic components 906, on the electronic components 906, on the racks 904, etc.
[0063] exist Figure 9In the example, workload management circuitry 902 assigns workloads and / or jobs to one or more electronic components 906 in racks 904 to increase and / or concentrate the heat generated at selected racks 904. The increased heat concentration at selected racks 904 (e.g., maximizing) the heat recovered via coolant from the selected electronic components 906 in those racks 904. Workload management circuitry 902 dynamically selects racks 904 where higher heat loads are generated by adjusting the allocation of workloads to the electronic components 906 at their respective racks 904. When assigning workloads, workload management circuitry 902 considers factors such as the age of the electronic components 906; maintenance scheduling for the electronic components 906; the thermal design power (TDP) of the electronic components 906; and the inlet and outlet temperatures of the coolant passing through the racks 904 via first flow paths 910, 912, 914 and a second flow path or return path 916.
[0064] Based on multiple workloads and multiple additional factors (e.g., age, multiple maintenance schedules), workload management circuitry 902 identifies one or more racks 904 to be used as collection racks (i.e., racks where heat generation is concentrated via workload allocation compared to other racks so that increased heat (e.g., maximum heat) can be recovered from them). For example, workload management circuitry 902 can allocate two workloads to be performed by multiple electronic components 906 of a first rack 904, instead of distributing the two workloads between a first electronic component 906 (e.g., electronic component 906-1) of a first rack (e.g., rack 904-1) and a second electronic component 906 (e.g., electronic component 906-2) of a second rack (e.g., rack 904-2). Therefore, because the workload performed by multiple electronic components 906 of the first rack 904 is increased compared to, for example, the second rack 904, workload management circuitry 902 causes heat generation to be concentrated at the first rack 904. Then, it is possible to collect the increased heat generated at the first rack 904 due to the concentration of workload at the first rack 904 and use it as energy.
[0065] As the coolant passes through a first rack 904 selected, for example, by the workload management circuit 902 for collection, increased heat is transferred to the coolant due to the increased heat generated by the electronic components 906 at the first rack 904 compared to other racks 904. Therefore, the heat exchange occurring at the CDU 908 provides the increased heat to be transferred to the second fluid, compared to a situation where the workload performance is not concentrated at the first rack 904. The heated second fluid, then returning to the fluid source 918, can be used for other purposes, such as heating buildings.
[0066] In some examples, the workload management circuit 902 controls the temperature of the coolant flowing to the first rack 904 selected for collection to increase the temperature difference between the inlet and outlet coolant. For example, the workload management circuit 902 can cause an adjustment (e.g., a reduction) in the temperature of the inlet coolant flowing to the first rack 904 to increase the capacity of the coolant to absorb the heat output of the electronic components 906 of the first rack 904, thereby increasing the heat recovered through heat exchange at the CDU 908. The workload management circuit 902 can also consider the temperature data of the electronic components 906 at the other racks 904 when determining the coolant temperature to maintain cooling at the other racks as well.
[0067] Figure 10 Another example environment 1000 is in which the workload management circuit 902 operates to facilitate energy harvesting via target heat generation through workload scheduling. Figure 10 The example environment 1000 is capable of serving as a data center. Figure 10 In the example, workload management circuitry 902 distributes workloads through centralized workload allocation to increase (e.g., maximize) the heat generated by certain electronic components among the multiple electronic components, rather than distributing workloads among the multiple electronic components in their respective racks within the data center to avoid, for example, creating hot spots or areas of increased temperature at the racks. Figure 10 In the example, the collected energy can be used to generate electricity via (multiple) thermoelectric generators.
[0068] Figure 10 The example environment includes multiple racks 1002-1, 1002-2, and 1002-n. Each of the racks 1002-1, 1002-2, and 1002-n carries multiple electronic components 1004-n (e.g., multiple servers, multiple GPUs, etc.). For ease of reading, Figure 10 Racks 1002-1, 1002-2, and 1002-n will henceforth be collectively and individually referred to as (a plurality of) racks 1002. Furthermore, for ease of reading, Figure 10 The electronic components 1004-n will henceforth be collectively and individually referred to as (a plurality of) electronic components 1004. Figure 10 In the example, (multiple) sensors 924 can generate an output indicating the temperature associated with (multiple) electronic components 1004 (e.g., heat generated by (multiple) electronic components 1003).
[0069] For example, workload management circuitry 902 receives temperature data associated with electronic component 1004. Typically, when assigning jobs to electronic component 1004, the workload scheduling algorithm avoids assigning jobs to electronic components 1004 associated with higher temperatures to prevent the creation of hotspots. Figure 10 In the example, workload management circuitry 902 transforms the temperature of electronic components 1004 provided to a workload scheduling algorithm (which may be provided by a third party). Based on the transformed temperature data, the workload scheduling algorithm assigns jobs to electronic components 1004 that might not otherwise receive such jobs, because untransformed temperature data indicates that assigning jobs to those electronic components 1004 could create hotspots. However, due to the temperature transformation, the workload scheduling algorithm assigns jobs (e.g., additional jobs) to those electronic components 1004 that already generate more heat than other electronic components 1004, thereby increasing (e.g., further increasing, maximizing) the heat generated by those electronic components 1004.
[0070] The additional heat generated by the assigned electronic components 1004 can increase the thermal gradient at the thermoelectric generator (TEG) associated with the electronic components 1004. By amplifying the temperature difference between the heat-generating electronic components 1004 and the cooling medium (e.g., air, liquid), the workload management circuitry 902 increases the energy harvested from the racks 1002. Figure 10 In the example, the collected thermal energy can be converted into electrical energy via energy conversion device 1006. The electrical energy can be used, for example, to provide power to a building and / or stored in the battery of uninterruptible power supply (UPS) 1008 for backup purposes.
[0071] When allocating workloads, the workload management circuit 902 can consider factors such as: whether the workload is portable and therefore can be transferred to electronic component 1004 to concentrate the workload(s) at that electronic component 1004; the amount of resources(s) the workload(s) will consume; and the capacity of electronic component 1004 to perform the workload(s) without introducing operational instability. In some examples, after the workload(s) have been transferred or allocated to specific electronic components 1004 for collection purposes, the workload management circuit 902 can cause other electronic components 1004 to enter a lower power state to save energy, for example, by transferring the workload(s), thereby reducing the cooling requirements at those electronic components 1004, etc.
[0072] Figure 11 yes Figure 9 and Figure 10A block diagram of an example implementation of a workload management circuit 902 to facilitate energy harvesting through the distribution of workloads to electronic components. Figure 11 The workload management circuitry 902 can be instantiated by a programmable circuit (such as a central processing unit (CPU) that executes the first instruction) (e.g., creating an instance, existing at any time, materializing, implementing, etc.). Additionally or alternatively, Figure 11 The workload management circuit 902 can be instantiated (e.g., instantiated, exist, materialized, implemented, etc.) by (i) an application-specific integrated circuit (ASIC) and / or (ii) a field-programmable gate array (FPGA) constructed and / or configured in response to the execution of the second instruction to perform the operation corresponding to the first instruction. It should be understood that... Figure 11 Some or all of the circuitry can therefore be instantiated at the same or different times. For example, Figure 11 Some or all of the circuitry can be instantiated in one or more threads that execute in parallel on hardware and / or serially on hardware. Furthermore, in some examples, Figure 11 Some or all of the circuitry can be implemented by microprocessor circuitry that executes instructions and / or FPGA circuitry that performs operations, to implement one or more virtual machines and / or virtual containers.
[0073] Figure 11 Example workload management circuitry 902 includes collection and analysis circuitry 1100, workload determination circuitry 1102, CDU control circuitry 1104, and monitoring circuitry 1106. In some examples, collection and analysis circuitry 1100 is instantiated by programmable circuitry that executes collection and analysis instructions and / or configured to perform actions such as those by... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The operations represented by the (multiple) flowcharts. In some examples, the workload determination circuit 1102 is instantiated by a programmable circuit that executes workload determination instructions and / or configured to perform operations such as those by... Figures 12A-12C , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The operations represented by the (multiple) flowcharts. In some examples, the CDU control circuit 1104 is instantiated by a programmable circuit that executes CDU control instructions and / or configured to perform operations such as those by... Figures 12A-12C , Figure 14 and Figures 15A-15CThe operations represented by the (multiple) flowcharts. In some examples, monitoring circuit 1106 is instantiated by a programmable circuit that executes monitoring instructions and / or configured to perform operations such as those by... Figures 12A-12C , Figures 15A-15C and Figure 19 The operations represented by (multiple) flowcharts.
[0074] exist Figure 11 In the example, the workload to be performed by the electronic components 906, 1004 of rack(s) 904, 1002 can be stored as workload data 1108 in database 1110. In some examples, such as in Figure 11 As shown, database 1110 is located outside of workload management circuitry 902, in a location accessible to workload management circuitry 902. In some examples, workload management circuitry 902 includes database 1110.
[0075] Workload data 1108 may include unassigned workload(s) and / or assigned workload(s) to be executed by (multiple) electronic components(s) 906, 1004. Workload data 1108 may include estimates of the amount of processing resources(s) the workload(s) will consume, and whether the workload(s) are transferable or portable between electronic components(s) 906, 1004 (e.g., transferable between different servers located in different racks). Workload data 1108 may indicate the priority of the workload(s) or job(s) to be executed.
[0076] exist Figure 11 In the example, database 1110 can store other inputs for use by workload management circuitry 902 when distributing workloads for collection purposes. Inputs can be provided by, for example, multiple sensors 924 in the environment 900, 1000, multiple user inputs, etc. For example, database 1110 can store temperature data 1112, indicating the temperature associated with multiple electronic components 906, 1004 and measured by, for example, multiple sensors 924. Temperature data 1112 can represent the heat generated by multiple electronic components 906, 1004 during operation. Additionally, information such as thermal design power (TDP) data 1114 for multiple electronic components 906, 1004 can be stored in database 1110 based on, for example, multiple user inputs.
[0077] Database 1110 is capable of storing component capacity data 1116, which indicates the available capacity of each of the respective components 906, 1004 of rack(s) 904, 1002 performing workloads at a given time. Component capacity data 1116 can be based on, for example, the total workload capacity of components 906, 1004 (e.g., server workload capacity) and previously allocated workloads that are being performed by components 906, 1004 and / or are expected (e.g., scheduled) to be performed within a time period (e.g., in the next hour, in the next six hours, in the next day). Component capacity data 1116 can also be updated in response to the allocation of workloads to and / or completion of workloads by components 906, 1004. The electronic component capacity data 1116 can also indicate whether (multiple) electronic components 906, 1004 are performing non-transferable tasks, are considered high priority, or are operationally critical tasks. Therefore, the electronic component capacity data 1116 provides an indication of the utilization of each electronic component 906, 1004.
[0078] Figure 11 Example database 1110 can store historical performance data 1118 for each of the multiple electronic components 906 and 1004 based on the workloads performed by those components. Historical performance data 1118 can include, for example, the amount of time taken for the electronic components 906 and 1004 to complete the task, the temperature of the electronic components 906 and 1004 during the execution of the workload, multiple other workloads performed simultaneously by the electronic components 906 and 1004 or within a threshold time period, and whether there are any operational problems related to the performance of the workloads of the electronic components 906 and 1004. In some examples, historical performance data 1118 includes the age of each of the electronic components 906 and 1004.
[0079] exist Figure 11 In the example, database 1110 can store maintenance scheduling data 1120, which identifies the electronic components(s) 906, 1004 to be maintained and the timing of performing such maintenance. Maintenance scheduling data 1120 can be based on, for example, multiple user inputs defining periodic maintenance schedules for the electronic components(s) 906, 1004. In some examples, maintenance scheduling data 1120 includes predictive maintenance data.
[0080] In which, such as combination Figure 9 In publicly disclosed examples of cooling electronic components via the circulation of a liquid coolant, Figure 11Database 1110 stores coolant temperature data 1122. Coolant temperature data 1122 can include temperature data of the liquid coolant flowing from the CDU through first flow paths 910, 912, 914 before being conveyed to rack 904 (i.e., coolant input temperature), and temperature data of the liquid coolant flowing through a second flow path 916 after the coolant absorbs heat output from electronic components 906, 1004 (i.e., coolant output temperature). Coolant temperature data 1122 can be based on the outputs of multiple sensors 924 located along flow paths 910, 912, 914, 916. In some examples, coolant temperature data 1122 includes a threshold (e.g., maximum) coolant outlet temperature, which, when met, serves as an indication of overheating of electronic components 906, 1004.
[0081] Example database 1110 can store other types of data 1124, such as energy demand data of the receivers of collected energy (e.g., building heating demand). In some examples, other data 1124 can include energy pricing data. In some examples, other data 1124 can include service level agreement (SLA) data related to workload performance.
[0082] Figure 11 The example workload management circuit 902's collection and analysis circuit 1100 uses workload data 1108 stored in database 1110 and one or more other inputs (e.g., temperature data 1112, TDP data 1114, electronic component capacity data 1116, historical performance data 118, maintenance scheduling data 1120, etc.) to allocate workload(s) to specific racks 904, 1002 and their corresponding electronic components 906, 1004, to concentrate heat generation at racks 904, 1002 for energy harvesting. For example, the collection and analysis circuit 1100 can execute one or more energy harvesting algorithms 1126 to select racks 904, 1002 with workload(s) and / or jobs(s) to which the electronic components(s)906, 1004 should be allocated, thereby increasing (e.g., maximizing) heat output at racks 904, 1002. The energy harvesting algorithms 1126 can be stored in database 1110.
[0083] The (multiple) energy harvesting algorithms 1126 may include one or more artificial intelligence (AI) algorithms that use, for example, machine learning to identify one or more racks 904, 1002 for energy harvesting by concentrating (multiple) workloads at (multiple) those racks 904. For example, the (multiple) energy harvesting algorithms 1126 may identify (multiple) specific racks 904, 1002 that will increase the heat output at (multiple) racks 904, 1002 by distributing (multiple) workloads and / or transferring (multiple) tasks to (multiple) electronic components 906, 1004. Multiple energy harvesting algorithms 1126 predict the energy harvesting potential of electronic components 906 and 1004 based on factors such as workload data 1108, temperature data 1112, thermal design power data 1114, electronic component capacity data 1116, historical performance data 1118, and / or maintenance scheduling data 1120, and thus predict the energy harvesting potential of racks 904 and 1002.
[0084] In some examples, the energy harvesting algorithm 1126 assesses whether the electronic components 906, 1004 of racks 904, 1002 can handle the additional workload without risking overheating and / or performance issues. For example, the energy harvesting algorithm 1126 can assess the risk of performance problems based on historical performance data 1118, and can evaluate how the electronic components 906, 1004 performed under similar conditions in the past. In some examples, the energy harvesting algorithm 1126 uses predictive analytics to predict potential failures at the electronic components 906, 1004 based on historical performance data 1118 and current stress levels. In some examples, the energy harvesting algorithm 1126 considers whether there is a deployed redundant system to take over should the selected electronic components 906, 1004 of racks 904, 1002 experience any problems due to increased workload. In some examples, the energy harvesting algorithm 1126 considers whether the racks 904, 1002 include other components (e.g., power supplies, cooling fans) that can help maintain the high thermal loads of the electronic components 906, 1004. In some examples, the energy harvesting algorithm 1126 weighs the potential energy harvested against the risk of overheating at the electronic components 906, 1004 and / or failure at the electronic components 906, 1004. Therefore, the energy harvesting algorithm 1126 balances energy efficiency and the reliability of data center operations when assessing harvesting potential.
[0085] In some examples, the (multiple) energy harvesting algorithm 1126, when evaluating the opportunity to increase the energy harvesting potential at (multiple) racks 904, 1002, considers the impact of dynamically adjusting the workload allocation among (multiple) electronic components 906, 1004 of the different racks 904, 1004. In some examples, the (multiple) energy harvesting algorithm 1126 considers the type of workload to be allocated based on workload data 1108. Because some workload types can generate heat more suitable for energy harvesting (e.g., consistent high temperatures rather than fluctuating temperatures), the (multiple) energy harvesting algorithm 1126 can prioritize the allocation of (multiple) workloads associated with more stable heat output. In some examples, the (multiple) energy harvesting algorithm 1126 analyzes historical performance data 1118 to predict which racks 904, 1002 are likely associated with the most consistent and available heat output.
[0086] In some examples, the energy harvesting algorithm 1126 attempts to avoid selecting racks 904, 1002 that include electronic components 906, 1004 scheduled for maintenance as indicated by maintenance scheduling data 1120. Because downtime for maintenance can interfere with the ability of electronic components 906, 1004 to maintain high workloads for energy harvesting, the energy harvesting algorithm 1126 can avoid selecting racks scheduled for maintenance. Additionally, the energy harvesting algorithm 1126 can determine, based on workload data 1108, whether any electronic component 906, 1004 is running a critical or high-priority application, and avoid selecting racks 904, 1002 with those electronic components 906, 1004 to minimize the risk of disruption.
[0087] In some examples, the energy harvesting algorithm 1126 can use coolant temperature data 1122 to estimate the temperature difference between the coolant flowing into and out of the racks 904, 1002, and thus indicate heat output. The coolant outlet temperature is the temperature of the coolant leaving the racks 904, 1002 after absorbing heat from the electronic components 906, 1004, and therefore indicates how much heat has been dissipated at the racks 904, 1002. Therefore, the greater the power consumed by the electronic components 906, 1004, the higher the coolant outlet temperature, because more heat is generated and transferred to the coolant. In some examples, the energy harvesting algorithm 1126 considers the cooling efficiency of each rack 904, 1002, which is a function of the coolant's heat capacity, flow rate, and the efficiency of heat exchange at the CDU 908. For example, racks 904 and 1002 with more efficient heat exchange processes can potentially generate more energy while harvesting their heat. Additionally, racks 904 and 1002 with higher coolant flow rates can provide better heat transfer and are therefore more efficient for energy harvesting. Thus, in some examples, energy harvesting algorithms 1126 consider racks 904 and 1002 with higher coolant flow rates to maximize the temperature difference between inlet flow paths 910, 912, and 914 and outlet flow path 916.
[0088] The (multiple) energy harvesting algorithms 1126 can take other factors into account when determining heat recovery potential and selecting (multiple) racks 904, 1002 for energy harvesting. For example, the (multiple) energy harvesting algorithms 1126 can prioritize racks 904, 1002 that are physically closer to the heat recovery system (e.g., heat exchanger) to reduce energy loss during the transfer process and improve the overall efficiency of energy harvesting.
[0089] In some examples, the (multiple) energy harvesting algorithms 1126 take into account the impact of the external environment of data centers 900, 1000 (e.g., ambient temperature, humidity, etc.) on cooling efficiency. For example, racks located in areas with lower ambient temperatures may be less efficient for heat recovery, but may be ideal for maintaining high workloads without overheating. The (multiple) energy harvesting algorithms 1126 are also able to consider temporal and seasonal variations in energy demand and cooling efficiency. For example, harvesting energy from (multiple) different racks 904, 1002 may be more efficient during cooler times of day than during warmer times of day. The (multiple) energy harvesting algorithms 1126 are able to weigh these factors when evaluating energy recovery potential.
[0090] In the example where the operation of data centers 900 and 1000 is based on sustainability goals, multiple energy harvesting algorithms 1126 can prioritize racks 904 and 1002 that contribute to a lower carbon footprint, even if those racks 904 and 1002 have lower energy harvesting potential. Multiple energy harvesting algorithms 1126 can also consider projected energy demand and select racks 904 and 1002 that can meet short-term energy harvesting needs while maintaining the long-term stability of electronic components 906 and 1004. When selecting harvesting racks 904 and 1002, multiple energy harvesting algorithms 1126 can consider whether any energy harvesting effort complies with local regulations regarding energy efficiency, waste heat recovery, and environmental impact.
[0091] Multiple energy harvesting algorithms 1126 output a ranking of multiple racks 904, 1002 based on predicted energy harvesting potential. Harvesting analysis circuitry 1100 uses this ranking to select multiple harvesting racks 904, 1002. In selecting multiple harvesting racks 904, 1002, harvesting analysis circuitry 1100 considers factors such as the maintenance scheduling data 1120 and the performance of, for example, critical and / or non-transferable tasks performed by multiple electronic components 906, 1004 at racks 904, 1002 in the data center. As a result of executing multiple energy harvesting algorithms 1126, harvesting analysis circuitry 1100 selects one or more racks 904, 1002 with electronic components 906, 1004 capable of sustaining increased thermal loads for energy harvesting purposes. As disclosed herein, based on the identification of multiple collection racks 904, 1002 by the collection analysis circuit 1100, the workload determination circuit 1102 is able to assign multiple new workloads and / or transfer previously assigned workloads to multiple electronic components 906, 1004 of the selected collection racks 904, 1002.
[0092] As a result of executing multiple energy harvesting algorithms 1126, the harvesting analysis circuit 1100 determines (e.g., predicts, estimates) the energy harvesting potential of each of the multiple electronic components 906, 1004 in racks 904, 1002. For example, the harvesting analysis circuit 1100 generates (e.g., estimates, predicts) power consumption values for the multiple electronic components 906, 1004 (e.g., each server, each GPU) in racks 904, 1002 by executing multiple energy harvesting algorithms 1126. The multiple energy harvesting algorithms 1126 can estimate power consumption values based on, for example, workload data 1108, temperature data 1112 of electronic components 906, 1004, and TDP data 1114 of electronic components 906, 1004. Additionally, in Figure 11In the example, (multiple) energy harvesting algorithms 1126 assign estimated remaining operating lifetimes to (multiple) electronic components 906, 1004, the estimated remaining operating lifetimes representing the estimated remaining service years of electronic components 906, 1004 based on, for example, thermal and power fatigue.
[0093] Multiple example energy harvesting algorithms 1126 use the power consumption values of multiple respective electronic components 906, 1004 and their estimated remaining lifetimes to rank racks 904, 1002 regarding their energy harvesting potential. For example, based on the power consumption values of multiple respective electronic components 906, 1004 at each rack 904, 1002, the multiple energy harvesting algorithms 1126 generate a total power consumption value for each rack 904, 1002. The multiple example energy harvesting algorithms 1126 generate a selection score for each rack 904, 1002 based on the total power consumption of the multiple electronic components 906, 1004 of the respective rack 904, 1002 (and therefore based on the thermal output of the multiple electronic components 906, 1004 of the respective rack 904, 1002) and the remaining operating lifetime. Based on the selection scores, the harvesting analysis circuit 1100 is able to identify the multiple racks 904, 1002 with the highest energy harvesting potential (e.g., the largest heat dissipation). For example, the harvesting analysis circuit 1100 can identify racks 904 and 1002 with the highest selection score for energy harvesting, where the score indicates that the (multiple) electronic components 906 and 1004 at racks 904 and 1002 provide the maximum combination of power consumption (and therefore thermal output) and durability.
[0094] After identifying racks 904 and 1002, which have the highest selection scores and therefore the highest potential for heat energy recovery, Figure 11Example harvesting analysis circuit 1100 executes multiple energy harvesting algorithms 1126 to perform a series of checks to determine whether racks 904, 1002 identified based on selection score ranking meet additional criteria regarding operation, adaptability, efficiency, and reliability. In other words, harvesting analysis circuit 1100 verifies that racks 904, 1002 can provide continuous energy harvesting without, for example, compromising the stability of multiple electronic components 906, 1004 at racks 904, 1002, or experiencing interruptions in harvesting efforts due to upcoming maintenance. For example, harvesting analysis circuit 1100 uses electronic component capacity data 1116 to assess whether the multiple electronic components 906, 1004 of the identified racks 904, 1002 have the capacity to perform multiple additional workloads. Harvesting analysis circuit 1100 uses maintenance scheduling data 1120 to determine whether the multiple electronic components 906, 1004 of the identified racks 904, 1002 are scheduled for maintenance. As another example, the data collection and analysis circuit 1100 can analyze historical performance data 1118 to evaluate the performance of the selected racks 904, 1002's (multiple) electronic components 906, 1004 under increased thermal loads. The data collection and analysis circuit 1100 can also consider other data 114, such as projected energy demands and sustainability targets. Therefore, in Figure 11 In the example, (multiple) energy harvesting algorithms 1126 consider factors other than heat flux capacity, such as equipment age and maintenance scheduling.
[0095] If racks 904 and 1002 with the highest selection score do not meet the additional criteria, the harvesting analysis circuit 1100 re-executes multiple energy harvesting algorithms 1126 to identify another rack 904 or 1002 based on thermal efficiency potential, and re-executes the criterion checks for that rack 904 or 1002. The harvesting analysis circuit 1100 continues to execute multiple energy harvesting algorithms 1126 to evaluate racks 904 and 1002 based on selection score ranking and additional criteria until racks 904 and 1002 that meet the criteria are identified. The racks 904 and 1002 with the highest selection score that also meet the additional criteria are selected by the harvesting analysis circuit 1100 as candidates (e.g., best candidates) for energy harvesting.
[0096] Factors considered by the energy harvesting algorithm(s) 1126 in generating selection scores indicative of energy harvesting potential and / or performing checks to verify that racks 904 and 1002 associated with the highest selection score meet other criteria can be assigned different weights or importance. For example, each criterion or factor (e.g., thermal load capacity, maintenance scheduling, thermal design power, historical performance, workload type, sustainability efforts) can be assigned a respective weight or priority score indicating how much that factor contributes to the decision of the energy harvesting algorithm(s) 1126. Factors, variables, or criteria assigned higher weights will have a greater impact on the output (e.g., predictions) generated by the energy harvesting algorithm(s) 1126 compared to factors assigned lower weights. For example, if a first factor considering whether electronic components 906 and 1004 are operating a high-priority application and is given a higher weight than a second factor considering maintenance scheduling, the first factor will have a greater impact on the energy harvesting decision than the second factor.
[0097] In some examples, the energy harvesting algorithm(s) 1126 includes multiple predictive models to anticipate workload fluctuations and proactively adjust rack selection and / or multiple cooling parameters (e.g., coolant temperature). The predictive models help maintain stable temperatures and prevent unexpected spikes that could damage the electronic components(s) 906, 1004 or impair energy harvesting efficiency under varying workload conditions.
[0098] In some examples, in addition to executing the energy harvesting algorithm(s)1126 or as an alternative to executing the energy harvesting algorithm(s)1126, the harvesting analysis circuitry 1100 also executes one or more workload allocation algorithms 1128 based on (e.g., primarily based on) temperature data 1112 associated with electronic components 906, 1004. In some such examples, the harvesting analysis circuitry 1100 performs a transformation on the temperature data 1112 associated with electronic components 906, 1004 used during the execution of the workload allocation algorithm(s)1128. Specifically, the harvesting analysis circuitry 1100 transforms the temperature data 1112 such that the workload allocation algorithm(s)1128 allocates or transfers workload to or shifts to electronic components 906, 1004 associated with increased temperature, rather than avoiding allocating workload to electronic components 906, 1004 that already have increased thermal load relative to other electronic components 906, 1004. In this way, the collection and analysis circuit 1100 facilitates the concentration of heat generation at certain electronic components 906, 1004, rather than avoiding hot spots or areas of concentrated heat when distributing workload.
[0099] In some examples, as a result of executing multiple energy harvesting algorithms 1126 and / or multiple workload allocation algorithms 1128, the harvesting analysis circuit 1100 determines that one or more electronic components 906, 1004 that have not been allocated workload or whose workload has been transferred should enter a low-power state. By entering a low-power state, energy can be saved at those electronic components 906, 1004, while efforts to recover energy are concentrated at other electronic components 906, 1004. In some examples, before finalizing the selection of racks for energy harvesting and / or instructions to move certain electronic components to a low-power state, the harvesting analysis circuit 1100 performs and outputs a cost-benefit analysis that takes into account proposed workload and / or other operational changes for the electronic components 906, 1004 used for energy harvesting purposes, indicating factors such as energy prices, equipment costs, and maintenance downtime costs.
[0100] Figure 11 The example workload management circuit 902's workload determination circuit 1102 outputs instructions based on analysis performed by the harvesting analysis circuit 1100 (e.g., execution of multiple energy harvesting algorithms 1126 and multiple workload allocation algorithms 1128) to control the performance of the workloads of multiple electronic components 906, 1004. For example, the workload determination circuit 1102 communicates with (e.g., transmits multiple instructions to) the multiple electronic components 906, 1004 at the selected racks 904, 1002 for energy harvesting, causing the multiple electronic components 906, 1004 to perform the allocated workloads and generate increased heat output. Therefore, the workload determination circuit 1102 directs the multiple workloads and / or multiple jobs to the racks 904, 1002 with higher heat load throughput capacity.
[0101] In some examples, the workload determination circuit 1102 generates a graphical interface for display via user devices (e.g., personal computing devices such as tablets or smartphones) that identifies the orientation of the racks 904, 1002 selected for energy harvesting within environments 900, 1000 (e.g., within a data center).
[0102] In an example where a liquid coolant is used to cool the electronic components(s) 906, 1004, the CDU control circuit 1104 of the example workload management circuit 902 is able to control the coolant temperature based on, for example, coolant temperature data 1122 and the output of the energy harvesting algorithm(s) 1126. As disclosed herein, as a result of executing the energy harvesting algorithm(s) 1126, the harvesting analysis circuit 1100 generates power consumption values for the electronic components(s) 906, 1004. Based on the estimated power consumption, the harvesting analysis circuit 1100 is able to determine (e.g., estimate, predict) the power dissipation or heat output of the electronic components(s) 906, 1004 at each rack 904, 1002. In some examples, the collection analysis circuit 1100 uses the estimated power dissipation for each selected collection rack 904, 1002 to determine (e.g., predict) the temperature difference between the coolant entering rack 904, 1002 via flow paths 910, 912, 914 and returning to CDU 908 via flow path 916 as part of predicting the energy collection potential of rack 904, 1002.
[0103] The CDU control circuit 1104 can adjust the coolant temperature and / or flow rate based on the power dissipation values of the rack(s) 904, 1002 selected for energy harvesting. For example, the CDU control circuit 1104 can adjust the coolant temperature to increase the coolant temperature for the selected rack(s) 904, 1002, thereby increasing the temperature at the rack(s) 904, 1002 and improving energy recovery at the rack(s). When adjusting the coolant temperature, the CDU control circuit 1104 also considers the cooling requirements of the electronic components 906, 1004 of the other rack(s) 904, 1002 in the data centers 900, 1000.
[0104] Example workload management circuitry 902's monitoring circuitry 1106 monitors one or more of the following: workload data 1108, temperature data 1112, TDP data 1114, electronic component capacity data 1116, historical performance data 1118, maintenance scheduling data 1120, coolant temperature data 1122, and any other data 1124. Based on this monitoring, monitoring circuitry 1106 identifies the impact of workload adjustments and temperature variations on energy harvesting efficiency. For example, monitoring circuitry 1106 determines whether racks 904, 1002 selected for energy harvesting should be adjusted via the migration or allocation of workload to electronic components(s)906, 1004. Monitoring circuitry 1106 communicates with harvesting analysis circuitry 1100 to facilitate a reassessment of racks and / or electronic components selected for harvesting.
[0105] In some examples, for instance, if the temperature data 1112 of one or more electronic components 906, 1004 to which the workload is transferred exceeds a threshold, monitoring circuitry 1106 determines that energy harvesting algorithm 1126 should be re-executed, thereby indicating a risk of damage to electronic components 906, 1004. In some examples, if coolant temperature data 1122 indicates that the coolant outlet temperature exceeds a threshold, monitoring circuitry 1106 determines that electronic components 906, 1004 are overheating and / or the cooling system is insufficient for the current thermal load. In some such examples, monitoring circuitry 1106 communicates with, for example, CDU control circuitry 1104 to adjust cooling and / or with workload determination circuitry 1102 to adjust or stop the workload, thereby avoiding damage to electronic components 906, 1004. In some examples, feedback generated by monitoring circuitry 1106, as part of machine learning, is used to improve energy harvesting algorithm 1126.
[0106] In some examples, Figure 11 The workload management circuit 902 can be implemented by a data center infrastructure management (DCIM) system that monitors and manages the infrastructure components (e.g., power distribution units) of data centers 900 and 1000. Additionally, while the disclosed examples are primarily discussed in conjunction with energy recovery and / or electrical energy generation via coolant at CDU 908, in some examples, the workload management circuit 902 can also consider other types of energy besides thermal energy. For example, kinetic energy harvesting from server fans or piezoelectric energy harvesting from vibration can provide additional energy sources.
[0107] Although Figure 11 The diagram illustrates the implementation. Figure 9 and Figure 10 An example of the workload management circuit 902, but in Figure 11 One or more of the elements, processes, and / or devices illustrated in the diagram may be combined, divided, rearranged, omitted, eliminated, and / or implemented in any other way. Furthermore, the example collection and analysis circuit 1100, the example workload determination circuit 1102, the example CDU control circuit 1104, and the example monitoring circuit 1106, and / or more generally, Figure 11The example workload management circuit 902 can be implemented by hardware alone or by a combination of hardware and software and / or firmware. Therefore, for example, any one of the example collection and analysis circuit 1100, the example workload determination circuit 1102, the example CDU control circuit 1104, and the example monitoring circuit 1106, and / or more generally, the example workload management circuit 902 can be implemented by a combination of programmable circuitry and machine-readable instructions (e.g., firmware or software), processor circuitry, (multiple) analog circuitry, (multiple) digital circuitry, (multiple) logic circuitry, (multiple) programmable processors, (multiple) programmable microcontrollers, (multiple) graphics processing units (GPUs), (multiple) digital signal processors (DSPs), ASICs, (multiple) programmable logic devices (PLDs), and / or (multiple) field-programmable logic devices (FPLDs) (such as FPGAs). Furthermore, in addition to... Figure 11 Those outside or alternatives shown in the diagram Figure 11 Those shown in the diagram, Figure 11 The example workload management circuit 902 may also include one or more elements, processes and / or devices, and / or may include more than one of any or all of the elements, processes or devices illustrated.
[0108] In some examples, the workload management circuitry 902 includes a device for analysis. For example, the device for analysis may be implemented by the collection and analysis circuitry 1100. In some examples, the collection and analysis circuitry 1100 may be a programmable circuit (such as...) Figure 20 Example programmable circuit 1100 (2012) instantiated. For example, the collection and analysis circuit 1100 can be instantiated by... Figure 21 Example microprocessor 2100 instantiation, Figure 21 The example microprocessor 2100 executes machine-executable instructions, such as at least those specified by... Figures 12A-12C Boxes 1202-1238; Figure 13 Boxes 1300-1306; Figures 15A-15C Boxes 1502-1538; Figure 17 Boxes 1702-1708 and 1712-1722; Figure 18 Block 1800 - Frame 1804; and Figure 19 The instructions implemented in boxes 1902-1910, 1912-1916, and 1920. In some examples, the collection and analysis circuit 1100 can be instantiated by hardware logic circuitry, which can be an ASIC, XPU, or... Figure 22The FPGA circuitry 2200 is configured and / or constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the collection and analysis circuitry 1100 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the collection and analysis circuitry 1100 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, XPU, comparator, operational amplifier, logic circuitry, etc.), but other configurations are equally applicable, wherein the at least one or more hardware circuits are configured and / or constructed to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions, without executing software or firmware.
[0109] In some examples, the workload management circuitry 902 includes a device for guidance. For example, the device for guidance may be implemented by the workload determination circuitry 1102. In some examples, the workload determination circuitry 1102 may be implemented by a programmable circuit (such as...) Figure 20 Example programmable circuit 1102 (2012) instantiated. For example, the workload determination circuit 1102 can be instantiated by... Figure 21 Example microprocessor 2100 instantiation, Figure 21 The example microprocessor 2100 executes machine-executable instructions, such as at least those specified by... Figures 12A-12C Boxes 1240 and 1242; Figures 15A-15C Boxes 1540 and 1542; Figure 17 Boxes 1710 and 1724; and Figure 19 The instructions implemented in box 1911. In some examples, the workload determination circuit 1102 can be instantiated by hardware logic circuitry, which can be an ASIC, XPU, or... Figure 22 The FPGA circuit 2200 is configured and / or constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the workload determination circuit 1102 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the workload determination circuit 1102 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, XPU, comparator, operational amplifier, logic circuitry, etc.), but other configurations are equally applicable, wherein the at least one or more hardware circuits are configured and / or constructed to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions, without executing software or firmware.
[0110] In some examples, the workload management circuitry 902 includes a device for control. For example, the device for control may be implemented by the CDU control circuitry 1104. In some examples, the CDU control circuitry 1104 may be a programmable circuit (such as...) Figure 20 Example programmable circuit 1104 (2012) instantiated. For example, CDU control circuit 1104 can be instantiated by... Figure 21 Example microprocessor 2100 instantiation, Figure 21 The example microprocessor 2100 executes machine-executable instructions, such as at least those specified by... Figures 12A-12C Boxes 1244-1248; Figure 14 Boxes 1402-1406; and Figures 15A-15C The instructions implemented in boxes 1544-1548. In some examples, the CDU control circuit 1104 can be instantiated by hardware logic circuitry, which can be an ASIC, XPU, or... Figure 22 The FPGA circuitry 2200 is configured and / or constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the CDU control circuitry 1104 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the CDU control circuitry 1104 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, XPU, comparator, operational amplifier, logic circuitry, etc.), but other configurations are equally applicable, wherein the at least one or more hardware circuits are configured and / or constructed to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions, without executing software or firmware.
[0111] In some examples, the workload management circuitry 902 includes a device for monitoring. For example, the monitoring device may be implemented by monitoring circuitry 1106. In some examples, monitoring circuitry 1106 may be implemented by programmable circuitry (such as...) Figure 20 Example programmable circuit 1106 (2012) instantiated. For example, monitoring circuit 1106 can be instantiated by... Figure 21 Example microprocessor 2100 instantiation, Figure 21 The example microprocessor 2100 executes machine-executable instructions, such as at least those specified by... Figures 12A-12C Boxes 1250-1254; Figures 15A-15C Boxes 1550-1554; and Figure 19 The instructions implemented in box 1922. In some examples, the monitoring circuit 1106 can be instantiated by hardware logic circuitry, which can be an ASIC, XPU, or... Figure 22The monitoring circuit 1106 is implemented by an FPGA circuit 2200 configured and / or constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the monitoring circuit 1106 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the monitoring circuit 1106 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, XPU, comparator, operational amplifier, logic circuitry, etc.), but other configurations are equally applicable, wherein the at least one or more hardware circuits are configured and / or constructed to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions, without executing software or firmware.
[0112] A flowchart representing example machine-readable instructions and / or example operations in Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 As shown, the example machine-readable instructions can be executed by programmable circuitry to implement and / or instantiate. Figure 11 The workload management circuit 902, this example operation can be implemented and / or instantiated by a programmable circuit. Figure 11 The workload management circuit 902. Machine-readable instructions can be used by programmable circuits (such as those combined below). Figure 20 The programmable circuitry (2012) shown in the example processor platform 2000 discussed in this discussion executes one or more executable programs or one or more portions of executable programs, and / or may be executed by the programmable circuitry (2012) shown in the following combination. Figure 21 and / or Figure 22 The examples discussed are programmable circuits (e.g., FPGAs) that perform one or more functions or parts of functions. In some examples, machine-readable instructions cause operations, tasks, etc., to be implemented and / or performed automatically in the real world. As used herein, “automation” means without human intervention.
[0113] The program may be embodied in instructions (e.g., software and / or firmware) stored on one or more non-transitory computer-readable and / or machine-readable storage media (such as cache memory, magnetic storage devices or disks (e.g., floppy disks, hard disk drives (HDDs)), optical storage devices or disks (e.g., Blu-ray discs, optical discs (CDs), digital versatile discs (DVDs)), redundant arrays of independent disks (RAID), registers, ROM, solid-state drives (SSDs), SSD memory, non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, etc.), volatile memory (e.g., random access memory (RAM) of any type), and / or any other storage device or disk). The instructions on the non-transitory computer-readable and / or machine-readable media may be programmed and / or executed by programmable circuitry located in one or more hardware devices, but the entire program and / or portions thereof may alternatively be executed and / or instantiated and / or embodied in dedicated hardware by one or more hardware devices other than programmable circuitry. Machine-readable instructions can be distributed across multiple hardware devices and / or executed by two or more hardware devices (e.g., server and client hardware devices). For example, client hardware devices can be implemented by endpoint client hardware devices (e.g., hardware devices associated with human and / or machine users) or intermediate client hardware device gateways (e.g., radio access networks (RAN)) that facilitate communication between the server and endpoint client hardware devices. Similarly, non-transitory computer-readable storage media can include one or more media. Furthermore, although references are made to... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19The flowchart(s) shown in the figure depict an example program, but many other methods can be used to implement the example workload management circuit 902. For example, the order of execution of the boxes in the flowchart(s) can be changed, and / or some of the described boxes can be changed, eliminated, or combined. Additionally or alternatively, any one or all of the boxes in the flowchart can be implemented by one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, FPGA, ASIC, comparator, operational amplifier, logic circuitry, etc.) configured to perform the corresponding operation without executing software or firmware. Programmable circuits can be distributed across different network locations and / or local to one or more hardware devices (e.g., a single-core processor, such as a single-core CPU, a multi-core processor, such as a multi-core CPU, an XPU, etc.). For example, programmable circuits can be CPUs and / or FPGAs located in the same package (e.g., in the same integrated circuit (IC) package or in two or more separate housings), one or more processors in a single machine, multiple processors distributed across multiple servers in a server rack, multiple processors distributed across one or more server racks, and / or any combination thereof.
[0114] Machine-readable instructions described herein may be stored in one or more of the following formats: compressed format, encrypted format, segmented format, compiled format, executable format, packaged format, etc. Machine-readable instructions as described herein may be stored as data (e.g., computer-readable data, machine-readable data, one or more bits (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), bit streams (e.g., computer-readable bit streams, machine-readable bit streams, etc.)) or data structures (e.g., as instructions, code(s), code representations, etc.). For example, machine-readable instructions may be segmented and stored on one or more storage devices, disks, and / or computing devices (e.g., servers) located in the same or different locations within a network or network set (e.g., in the cloud, at an edge device, etc.). Machine-readable instructions may require installation, modification, adaptation, updating, combination, supplementation, configuration, decryption, decompression, unpacking, distribution, redistribution, compilation, etc., to make them directly readable, interpretable, and / or executable by computing devices and / or other machines. For example, machine-readable instructions may be stored in multiple parts that are separately compressed, encrypted, and / or stored on separate computing devices, wherein the multiple parts, when decrypted, decompressed, and / or combined, form a set of computer-executable and / or machine-executable instructions that implement one or more functions and / or operations, which together may form a program such as the program described herein.
[0115] In another example, machine-readable instructions may be stored in a state in which they can be read by programmable circuitry, but require the addition of libraries (e.g., dynamic link libraries (DLLs)), software development kits (SDKs), application programming interfaces (APIs), etc., to execute the machine-readable instructions on a specific computing device or other device. In another example, the machine-readable instructions may need to be configured (e.g., storage settings, data input, recording network addresses, etc.) before they can be executed in whole or in part. Therefore, machine-readable, computer-readable, and / or machine-readable media, as used herein, may include instructions and / or ...
[0116] The machine-readable instructions described in this document can be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, machine-readable instructions can be represented using any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, Hypertext Markup Language (HTML), Structured Query Language (SQL), Swift, etc.
[0117] As mentioned above, Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19Example operations can be implemented using executable instructions (e.g., computer-readable and / or machine-readable instructions) stored on one or more non-transitory computer-readable and / or machine-readable media. As used herein, the terms non-transitory computer-readable medium, non-transitory computer-readable storage medium, non-transitory machine-readable medium, and / or non-transitory machine-readable storage medium are expressly defined to include any type of computer-readable storage device and / or storage disk, and exclude propagating signals and transmission media. Examples of such non-transitory computer-readable medium, non-transitory computer-readable storage medium, non-transitory machine-readable medium, and / or non-transitory machine-readable storage medium include optical storage devices, magnetic storage devices, HDDs, flash memory, read-only memory (ROM), CDs, DVDs, caches, any type of RAM, registers, and / or any other storage device or storage disk in which information is stored for any duration (e.g., over an extended period of time, permanently, for a brief moment, for temporary buffering, and / or for caching information). As used herein, the terms "non-transitory computer-readable storage device" and "non-transitory machine-readable storage device" are defined to include any physical (mechanical, magnetic, and / or electrical) hardware designed to retain information for a period of time, but exclude propagating signals and transmission media. Examples of non-transitory computer-readable storage devices and / or non-transitory machine-readable storage devices include any type of random access memory, any type of read-only memory, solid-state memory, flash memory, optical discs, magnetic disks, disk drives, and / or redundant arrays of independent disks (RAID) systems. As used herein, the term "device" refers to a physical structure, such as mechanical and / or electrical equipment, hardware, and / or circuitry that may or may not be configured and / or manufactured to execute computer-readable instructions, machine-readable instructions, etc.
[0118] Figures 12A-12C A flowchart illustrating example machine-readable instructions and / or example operations 1200 is provided. These example machine-readable instructions and / or example operations 1200 can be implemented, instantiated, and / or executed by programmable circuitry to select racks within a data center for energy harvesting based on workload management and selection criteria. In some examples, Figures 12A-12C Operation 1200 is used for data centers including, for example, 1000 racks or fewer.
[0119] Example machine-readable instructions and / or example operations 1200 begin at box 1202, at box 1202, Figure 11 The example workload management circuit 902's harvesting and analysis circuit 1100 executes multiple energy harvesting algorithms 1126 to rank multiple racks 904, 1002 based on their heat recovery potential, such as in combination with... Figure 13 Further disclosed, the harvesting and analysis circuit 1100 executes multiple energy harvesting algorithms 1126 based on multiple data inputs, including, for example, workload data 1108, temperature data 1112, thermal design power (TDP) data 1114, historical performance data 1118, maintenance scheduled at 1120, etc. As a result of executing the multiple energy harvesting algorithms 1126, the harvesting and analysis circuit 1100 generates a ranking of racks 904 and 1002 based on, for example, the predicted thermal output of electronic components 906 and 1004, indicating the thermal efficiency or energy harvesting potential of each rack 904 and 1002.
[0120] At block 1204, the collection and analysis circuit 1100 identifies the rack with the highest heat recovery potential based on a ranking. For example, the collection and analysis circuit 1100 can identify the rack with the highest predicted heat output based on the ranking generated at block 1202.
[0121] Starting at block 1206, the harvesting analysis circuit 1100 executes multiple energy harvesting algorithms 1126 to determine whether the racks identified at block 1204 based on ranking meet additional criteria, such that racks 904 and 1002 are candidates (e.g., best candidates) for energy harvesting. As a result of the additional criterion analysis, the harvesting analysis circuit 1100 verifies that racks 904 and 1002 identified at block 1204 should be harvesting racks, or determines that another rack 904 or 1002 should be selected. In some examples, in connection with example instruction 1200, one or more of the example criteria set forth in blocks 1206, 1210, 1214, 1218, 1222, 1226, 1230, and 1234 can be different, adjusted, removed, given higher weight, etc.
[0122] At block 1206, the energy harvesting analysis circuitry 1100 determines whether the selected racks 904 and 1002 are running any critical or high-priority applications or operations. Critical or high-priority applications can be identified based on user input provided to the energy harvesting algorithm(s)1126. If the selected racks 904 and 1002 are running critical or high-priority applications, the energy harvesting analysis circuitry 1100 determines that the rack should not be selected for energy harvesting to avoid interfering with the performance of the critical or high-priority applications or operations (e.g., by assigning additional workloads to the rack, by transferring processing resources, etc.). Therefore, at block 1208, the energy harvesting analysis circuitry 1100 re-executes the energy harvesting algorithm(s)1126 on racks 904 and 1002 in data centers 900 and 1000 (excluding the racks selected at block 1204 that are running critical or high-priority applications). Control returns to box 1204, where the collection analysis circuit 1100 selects another rack 904, 1002 based on the heat recovery potential determined by re-executing the energy harvesting algorithm(s) 1126.
[0123] If, at box 1206, the data collection and analysis circuitry 1100 determines that the selected racks 904 and 1002 are not running any critical or high-priority applications, then at box 1210, the data collection and analysis circuitry 1100 performs a maintenance scheduling check. Based on maintenance scheduling data 1120, the data collection and analysis circuitry 1100 checks whether any of the electronic components 906 and 1004 of the selected racks 904 and 1002 are scheduled for maintenance within a threshold time period (e.g., defined by user input). If the electronic components 906 and 1004 of the selected racks are scheduled for upcoming maintenance within the threshold time period, then at box 1212, the data collection and analysis circuitry 1100 re-executes multiple energy harvesting algorithms 1126 for racks 904 and 1002 in data centers 900 and 1000 (excluding the racks selected at box 1204 but associated with upcoming maintenance). Control returns to box 1204, where the collection analysis circuit 1100 selects another rack 904, 1002 based on the heat recovery potential determined by re-executing the energy harvesting algorithm(s) 1126.
[0124] If, at box 1210, the collection and analysis circuitry 1100 determines that the identified racks 904 and 1002 are not relevant to the upcoming maintenance, then at box 1214, the collection and analysis circuitry 1100 analyzes the historical performance data 1118 of the electronic components 906 and 1004 of the selected racks 904 and 1002 to evaluate how the electronic components 906 and 1004 performed as before under increased workload and therefore under increased thermal stress. If the historical performance data 1118 of the electronic components 906 and 1004 of the selected racks 904 and 1002 indicates that the electronic components 906 and 1004 have experienced performance or operational problems related to increased workload and / or operating temperature, then the collection and analysis circuitry 1100 determines that another rack 904 or 1002 may be more reliably used for energy harvesting purposes (e.g., for consistent energy recovery). Therefore, at box 1216, the energy harvesting analysis circuit 1100 re-executes multiple energy harvesting algorithms 1126 on racks 904 and 1002 in data centers 900 and 1000 (excluding racks selected at box 1204 but whose historical performance problems have been identified). Control returns to box 1204, where the energy harvesting analysis circuit 1100 selects another rack 904 or 1002 based on the heat recovery potential determined by re-executing multiple energy harvesting algorithms 1126.
[0125] If, at box 1214, the collection and analysis circuit 1100 determines that historical performance data 1118 indicates that the identified racks 904, 1002's (multiple) electronic components 906, 1004 can operate substantially consistently at increased temperatures, then at box 1218, the collection and analysis circuit 1100 evaluates the ability of the (multiple) electronic components 906, 1004 to adjust their workloads without affecting performance. Specifically, the collection and analysis circuit 1100 determines whether the workloads of the (multiple) electronic components 906, 1004 can be dynamically adjusted (e.g., in real-time or substantially real-time, such as within one second) to maintain energy harvesting conditions (e.g., increased heat output) without affecting the performance of the (multiple) electronic components 906, 1004. For example, over time, additional workloads may need to be transferred to the selected racks 904, 1002, to achieve continuous energy harvesting (e.g., continuous heat output) at the selected racks 904, 1002. At block 1218, the harvesting analysis circuit 1100 determines whether the workload can be dynamically adjusted without affecting the performance of the selected racks 906, 1004.
[0126] If, at box 1218, the data collection and analysis circuitry 1100 determines that dynamic changes in job allocation may affect performance at selected racks 904 and 1002, then at box 1220, the data collection and analysis circuitry 1100 re-executes multiple energy harvesting algorithms 1126 for racks 904 and 1002 in data centers 900 and 1000 (excluding racks selected at box 1204 but whose workload adjustment problems have been identified). Control returns to box 1204, where the data collection and analysis circuitry 1100 selects another rack 904 or 1002 based on the heat recovery potential determined by re-executing multiple energy harvesting algorithms 1126.
[0127] If, at block 1218, the collection analysis circuit 1100 determines that the electronic components 906, 1004 respond to dynamic adjustments to the workload to maintain the energy harvesting potential of the selected racks 904, 1002 without affecting performance, then at block 1222, the collection analysis circuit 1100 evaluates the potential of the selected racks 904, 1002 to provide substantially consistent energy harvesting (e.g., a continuously increasing heat output over time). For example, the collection analysis circuit 1100 assesses the workload to be performed by the electronic components 906, 1004 of the selected racks 904, 1002 to evaluate the type of heat that may be generated and whether such heat is suitable for energy harvesting. In particular, some types of workloads cause the electronic components 906, 1004 to operate at a temperature that increases consistently over time, while other types of workloads may cause the temperatures of the electronic components 906, 1004 to fluctuate over time. Because the operation of (multiple) electronic components 906, 1004 at consistently high temperatures results in more consistent heat output for energy harvesting purposes, the harvesting analysis circuit 1100 is able to evaluate the energy harvesting potential of the selected racks 904, 1002 based on the type of workload to be performed at the rack.
[0128] If, at box 1222, the harvesting analysis circuitry 1100 determines that the selected racks 904, 1002 may not provide consistent (e.g., non-fluctuating) energy harvesting conditions due to factors such as workload type, then at box 1224, the harvesting analysis circuitry 1100 re-executes multiple energy harvesting algorithms 1126 for racks 904, 1002 in data centers 900, 1000 (excluding the racks selected at box 1204 but whose consistent heat output problems have been identified). Control returns to box 1204, where the harvesting analysis circuitry 1100 selects another rack 904, 1002 based on the heat recovery potential determined by re-executing multiple energy harvesting algorithms 1126.
[0129] If, at block 1222, the collection analysis circuit 1100 determines that the selected racks 904, 1002 may provide consistent (e.g., non-fluctuating) energy harvesting conditions, then at block 1226, the collection analysis circuit 1100 determines whether the identified racks 904, 1002 include components that contribute to a continuously increasing heat load. For example, the collection analysis circuit 1100 can evaluate whether the selected racks 904, 1002 include cooling fans(s) to enable electronic components(s) ...
[0130] If, at box 1226, the energy harvesting analysis circuitry 1100 determines that a rack lacks components (e.g., cooling fans) to help mitigate the increasing heat load over time, then at box 1228, the energy harvesting analysis circuitry 1100 re-executes multiple energy harvesting algorithms 1126 for racks 904 and 1002 in data centers 900 and 1000 (excluding the racks selected at box 1204 but whose consistent heat output problems have been identified). Control returns to box 1204, where the energy harvesting analysis circuitry 1100 selects another rack 904 or 1002 based on the heat recovery potential determined by re-executing multiple energy harvesting algorithms 1126.
[0131] If, at box 1226, the harvesting analysis circuit 1100 determines that the selected racks 904, 1002 can provide consistent (e.g., non-fluctuating) energy harvesting conditions, then at box 1230, the harvesting analysis circuit 1100 determines whether the heat expected to be recovered from the selected racks 904, 1002 meets the predicted energy requirements while maintaining the operational stability of (multiple) electronic components 906, 1004. For example, the harvesting analysis circuit 1100 can facilitate racks that meet short-term energy harvesting requirements while maintaining the long-term stability of (multiple) electronic components 906, 1004.
[0132] If, at box 1230, the harvesting and analysis circuitry 1100 determines that the heat output at the selected racks 904, 1002 is unlikely to meet the predicted energy demand, and / or the long-term stability of the electronic components 906, 1004 of the selected racks 904, 1002 may be compromised in an attempt to meet the demand, then at box 1232, the harvesting and analysis circuitry 1100 re-executes the energy harvesting algorithm(s)1126 for racks 904, 1002 in data centers 900, 1000 (excluding the racks selected at box 1204 but identified as having problems with their ability to meet the predicted energy demand). Control returns to box 1204, where the harvesting and analysis circuitry 1100 selects another rack 904, 1002 based on the heat recovery potential determined by re-executing the energy harvesting algorithm(s)1126.
[0133] If, at box 1230, the collection and analysis circuit 1100 determines that the heat output at selected racks 904, 1002 may meet the predicted energy demand while maintaining the long-term stability of the electronic components 906, 1004(of) selected racks 904, 1002, then at box 1234, the collection and analysis circuit 1100 determines whether the energy collection efforts at selected racks 904, 1002 contribute to meeting or complying with local regulations regarding energy efficiency, waste heat recovery, and environmental impact. For example, the collection and analysis circuit 1100 can determine whether the energy collection efforts will contribute to heat reuse, thereby offsetting or reducing the carbon footprint.
[0134] If, at box 1234, the energy harvesting analysis circuitry 1100 determines that energy harvesting efforts using selected racks 904, 1002 may not contribute to compliance with local energy regulations and / or sustainability goals, then at box 1236, the energy harvesting analysis circuitry 1100 re-executes multiple energy harvesting algorithms 1126 for racks 904, 1002 in data centers 900, 1000 (excluding racks selected at box 1204 but identified as having issues contributing to or compliing with energy regulations and / or sustainability goals). Control returns to box 1204, where the energy harvesting analysis circuitry 1100 selects another rack 904, 1002 based on the heat recovery potential determined by re-executing multiple energy harvesting algorithms 1126.
[0135] If the selected racks 904 and 1002 meet the efficiency and reliability criteria set forth in boxes 1206, 1210, 1214, 1218, 1222, 1226, 1230, and 1234, then at box 1238, the collection analysis circuit 1100 confirms the identified racks 904 and 1004 as racks from which the heat output is to be concentrated for energy harvesting purposes. However, if none of the racks 904 and 1002 identified based on ranking (or re-ranking) meet all the criteria, in some examples, in addition to re-running (or re-running) the energy harvesting algorithm(s) 1126 at box 1236 or instead of re-running (or re-running) the energy harvesting algorithm(s) 1126 at box 1236, the harvesting analysis circuit 1100 may also adjust or remove some of the criteria checks set forth in boxes 1206, 1210, 1214, 1218, 1222, 1226, 1230, and 1234.
[0136] At box 1240, the workload determination circuit 1102 outputs the identifier of the selected rack via, for example, a user interface that displays the location of the selected rack in the data center.
[0137] At block 1242, the workload determination circuit 1102 causes the selected racks 904, 1002 to operate the electronic components 906, 1004 to facilitate energy harvesting conditions. For example, the workload determination circuit 1102 sends instructions to allocate workloads to the selected racks 904, 1002, to transfer workloads from other racks 904, 1002, etc., such that the number of workloads allocated to the selected harvesting racks 904, 1002, is increased relative to the non-harvesting racks 904, 1002, etc.
[0138] At box 1244, CDU control circuit 1104 analyzes the coolant temperature to determine whether the liquid coolant temperature supplied to selected racks 904, 1002 should be adjusted, such as in conjunction with... Figure 14 Further disclosed, for example, the CDU control circuit 1104 is capable of estimating a coolant temperature difference based on the current temperature of the liquid coolant supplied to the selected racks 904, 1002 and an estimated temperature of the coolant after it passes through the racks 904, 1002 when the electronic components(s) 906, 1004 operate under increased heat load as part of energy harvesting. Based on the estimated coolant temperature difference, the CDU control circuit 1104 determines whether the temperature of the input coolant supplied to the selected racks 904, 1002 should be adjusted (e.g., increased) to increase the efficiency of capturing and harvesting the heat output of the racks 904, 1002.
[0139] If, at box 1246, CDU control circuit 1104 determines that the coolant temperature should be adjusted, then CDU control circuit 1104 instructs CDU 908 to adjust the coolant temperature and / or flow rate (box 1248).
[0140] At block 1250, monitoring circuitry 1106 monitors, for example, workload data 1108, temperature data 1112, and electronic component capacity data 1116. Based on this monitoring, at block 1252, monitoring circuitry 1106 determines that conditions at the racks 904, 1002 selected for energy harvesting should be adjusted, for example, by migrating or allocating workloads to the selected racks 904, 1002, to maintain heat output for energy harvesting purposes. In some examples, at block 1254, monitoring circuitry 1106 determines whether another rack 904, 1002 should be selected for energy harvesting (e.g., if the initially selected rack can no longer sustain the increased heat load without performance issues with the electronic components 906, 1004). In this example, control returns to block 1202 to rank the racks based on their heat recovery potential. Example instruction 1200 ends at block 1256.
[0141] Figure 13 yes Figures 12A-12C The flowchart shows an example implementation of block 1202 of example operation 1200 (for ranking racks 904, 1002 based on heat recovery potential). At block 1300, the harvesting analysis circuitry 1100 executes multiple energy harvesting algorithms 1126 to generate estimated power consumption values for multiple electronic components 906, 1004 (e.g., multiple servers, multiple GPUs) in each rack 904, 1002. The estimated power consumption values can be generated based on, for example, workload data 1108, TDP data 114, and historical performance data 1118 for the multiple electronic components 906, 1004. In some examples, the harvesting analysis circuitry 1100 uses the workload data 1108 to estimate the power consumption values based on the current workload and the predicted workload. For example, the data collection and analysis circuit 1100 can estimate the power consumption of electronic components 906 and 1004 based on the range of power consumed by electronic components 906 and 1004 over time, combined with the performance of different workloads indicated in historical performance data 1118 of electronic components 906 and 1004.
[0142] In some examples, to assess power consumption, the collection and analysis circuit 1100 uses coolant temperature data 1122 to estimate the heat output of electronic components 906, 1004 based on the temperature difference between the coolant flowing into and out of racks 904, 1002. The more power consumed by electronic components(s) 906, 1004, the higher the coolant outlet temperature, because more heat is generated and transferred to the coolant. For example, the collection and analysis circuit 1100 can identify racks 904, 1002 associated with a larger temperature difference than other racks 904, 1002 as candidates for energy harvesting, and thus identify factors that generate energy recovery potential.
[0143] At box 1302, the collection and analysis circuit 1100 generates estimated remaining operational lifetime values for each of the electronic components(s) in each rack 904, 1002. The collection and analysis circuit 1100 is capable of estimating the remaining operational lifetime values of electronic components 906, 1004 based on the expected operational lifetime of the electronic components (e.g., manufacturer data, average operational lifetime of electronic components of the same or similar type, historical performance data 1118, maintenance scheduling data 1120, etc.) and factors such as thermal and power fatigue.
[0144] At block 1304, the collection and analysis circuit 1100 generates a selection score for each rack 904, 1002 based on multiple estimated power consumption values and multiple estimated remaining operating lifetime values assigned to the multiple electronic components 906, 1004. For example, the collection and analysis circuit 1100 can associate a combination of multiple estimated power consumption values and multiple estimated remaining operating lifetime values associated with each rack 904, 1002 with the selection score for that rack 904, 1002, wherein the selection score mapping can be limited based on multiple user inputs.
[0145] At box 1306, the collection and analysis circuit 1100 ranks the racks based on the selection scores assigned to racks 904 and 1002. Control proceeds to box 1204.
[0146] Figure 14 yes Figures 12A-12C The flowchart shows an example implementation of box 1244 of example operation 1200 (for analyzing coolant temperature during collection). Although Figure 14 Example instruction 1244 is discussed in conjunction with the analysis of coolant temperature during collection, but example instruction 1244 can be executed to analyze the coolant temperature of rack(s) 904, 1002 that were not selected for collection.
[0147] At block 1402, CDU control circuit 1104 estimates the total power dissipation of the selected collection racks 904, 1002 as a result of concentrating the workload at the electronic components 906, 1004 of collection racks 904, 1002. For example, CDU control circuit 1104 can estimate the total power dissipation at collection racks 904, 1002 based on estimated power consumption values related to the performance of the workload (e.g., newly assigned) determined by collection analysis circuit 1100. CDU control circuit 1104 can convert the estimated power consumption values(s) into power output(s) or heat generated during operation.
[0148] At block 1404, CDU control circuitry 1104 estimates the temperature of the coolant after exposure to the selected electronic components of racks 904, 1002 during collection. In some examples, CDU control circuitry 1104 determines or estimates the outlet coolant temperature during collection based on the outputs of sensors 924 along the second flow path 916. In some examples, CDU control circuitry 1104 estimates the outlet coolant temperature based on an estimated total power dissipation determined at block 1402. For example, CDU control circuitry 1104 is capable of estimating the increase in coolant temperature based on an estimated heat output at racks 904, 1002.
[0149] At block 1406, CDU control circuit 1104 estimates the coolant temperature difference during collection at selected racks 904, 1002 based on the temperature of the input coolant flowing from CDU 908 and the estimated output coolant temperature. Control proceeds to block 1246.
[0150] Figures 15A-15C This is another flowchart representing example machine-readable instructions and / or example operations 1500, which can be implemented, instantiated, and / or executed by programmable circuitry to select racks within a data center for energy harvesting based on workload management and selection criteria. Figures 12A-12C Compared to example instruction 1200, in some examples, Figures 15A-15C The example machine-readable commands and / or example operations 1500 provide filtering of multiple racks based on selection criteria, and thus enable increased efficiency in selecting racks for energy harvesting in data centers comprising, for example, more than 1000 racks. However, Figures 15A-15C Example Operation 1500 can be used to evaluate data centers with fewer racks.
[0151] Example instruction 1500 begins at block 1502, where the harvesting analysis circuit 1100 of example workload management circuit 902 executes multiple energy harvesting algorithms 1126 to rank racks 904 and 1002 used for energy harvesting, as combined with Figures 12A-12C and Figure 13 The frame 1202 is publicly available.
[0152] At box 1504, the collection and analysis circuitry 1100 generates a list including two or more racks 904, 1002 with the highest heat recovery potential. In this example, the collection and analysis circuitry 1100 selects two or more racks 904, 1002 based on ranking to increase the efficiency of racks 904, 1002 given, for example, the number of racks 904, 1002 in a data center.
[0153] At block 1506, the collection and analysis circuit 110 executes multiple energy harvesting algorithms 1126 to screen the racks identified at block 1504 based on operational criteria, including whether multiple electronic components 906, 1004 of racks 904, 1002 are performing critical or high-priority applications or operations (block 1508), whether multiple electronic components 906, 1004 of racks 904, 1002 are scheduled for maintenance within a threshold time period (block 1512), and whether multiple electronic components 906, 1004 of racks 904, 1002 are able to maintain high thermal loads as determined based on, for example, historical performance data 1118, maintenance scheduling data 1120, etc. (block 1516). If any of the racks 904, 1002 in the list generated at box 1504 meets the criteria indicating that rack(s) 904, 1002 could not be candidates for energy harvesting (e.g., the best candidate), then the harvesting analysis circuit 1100 removes (or removes) those racks 904, 1002 from the list generated at box 1504 (boxes 1510, 1514, 1518). The harvesting analysis circuit 1100 analyzes each of the racks 904, 1002 in the list generated at box 1504 until no further racks 904, 1002 are analyzed regarding the operating criteria.
[0154] When no further racks are analyzed in the list for operational criteria, control proceeds to block 1520, where the harvesting analysis circuit 1100 executes multiple energy harvesting algorithms 1126 to analyze the remaining racks 904, 1002 in the list (i.e., the racks remaining after screening for operational criteria) with respect to adaptability and / or efficiency criteria. For example, the harvesting analysis circuit 1100 assesses whether the workload of the multiple electronic components 906, 1004 of each rack 904, 1004 can be dynamically adjusted without negatively impacting the operation or performance of the multiple electronic components (block 1522). The collection and analysis circuit 1100 determines whether the selection of racks 904 and 1002 meets the predicted energy demand, while maintaining the operational stability of the (multiple) electronic components 906-1-906-n, 908-1-908-n, 910-1-910-n, and 1004-n of the racks 904 and 1002 (box 1526). The collection and analysis circuit 1100 determines whether the selection of racks 904 and 1002 and the resulting power dissipation contribute to compliance with local energy regulations and / or sustainability goals (box 1530). If any of the racks 904 and 1002 in the list does not meet the adaptability and efficiency criteria, the collection and analysis circuit 1100 removes (multiple) racks 904 and 1002 from the list of racks 904 and 1002 for potential energy harvesting (boxes 1524, 1528, and 1532). The collection analysis circuit 1100 analyzes each of the racks 904, 1002 in the list generated at block 1504 until there are no further racks 904, 1002 in the list to be analyzed for adaptability and / or efficiency criteria, at which point control proceeds to block 1534.
[0155] At box 1534, the collection analysis circuit 1100 determines whether there are any remaining racks(s) in the list of racks 904, 1002 for potential energy harvesting. If more than one rack 904, 1002 remains in the list, at box 1536, the collection analysis circuit 1100 selects the rack 904, 1002 with the highest selection score (in some cases, the rack 904, 1002 with the highest selection score may be the only rack remaining in the list). If no rack 904, 1002 remains in the list, at box 1538, the collection analysis circuit 1100 returns to box 1504 to select an additional number of racks 904, 1002 to include in the list of racks 904, 1002 with the highest heat recovery potential. In some examples, the harvesting analysis circuit 110 may adjust one or more of the screening factors, re-prioritize one or more of the screening factors, or assign smaller weights to one or more of the screening factors at one or more of blocks 1508, 1512, 1516, 1522, 1526, and 1530, such that at least one rack 904, 1002 is identified as a potential energy harvester. For example, the harvesting analysis circuit 1100 may prioritize criteria such as operational stability (block 1516) and adaptability (block 1522) and may not prioritize the weights given to other criteria.
[0156] After the energy harvesting analysis circuit 1100 selects a rack for energy harvesting at block 1536, the workload determination circuit 1102 outputs the identifier of the selected rack (block 1540) via a user interface, for example, displaying the location of the selected rack in the data center. Additionally, at block 1542, the workload determination circuit 1102 causes the selected racks 904, 1002, 904, 1002, 904, 1002, to operate in a manner that facilitates energy harvesting conditions by allocating and / or transferring workloads to the electronic components 906, 1004(of) selected racks.
[0157] At boxes 1544, 1546, and 1548, the CDU control circuit 1104 determines whether the following should be combined. Figures 12A-12C and Figure 14 Boxes 1244, 1246, and 1248 disclose methods for adjusting coolant temperature.
[0158] At box 1550, monitoring circuitry 1106 monitors data such as temperature 1112, workload 1108, electronic component capacity 1116, and coolant temperature 1122 to determine whether conditions at selected racks 904 and 1002 should be adjusted (box 1552), or whether another rack 904 or 1002 should be selected for energy harvesting (box 1554), in combination with... Figures 12A-12CBoxes 1250, 1252, and 1254 are exposed. Example instruction 1500 ends at box 1556.
[0159] Figure 16 An example assembly 1600 including a thermoelectric generator 1602 is illustrated in accordance with the teachings of this disclosure. The example assembly 1600 includes a plate 1604 for supporting a package substrate 1606. A heat source 1608 outputs heat during operation. The heat source 1608 can include electronic components such as a CPU, GPU, NPU, memory, etc.
[0160] Figure 16 The thermoelectric generator (TEG) 1602 includes a p-type semiconductor 1610 and an n-type semiconductor 1612 between a first conductor material 1614 and a second conductor material 1616 defining a circuit 1618. A heat sink 1620 is positioned opposite a heat source 1608 such that the thermoelectric generator 1602 is located between the heat source 1608 and the heat sink 1620. Figure 16 In the example, heat sink 1620 can be cooled by a cooling medium such as air or liquid. Thermoelectric generator 1602 converts the temperature gradient between the opposite ends of the respective semiconductors 1610, 1612 (i.e., the end near heat source 1608 and the end near heat sink 1620) into electricity. The magnitude of the current flowing in circuit 1618 is proportional to the temperature difference, such that a larger temperature difference results in a larger current flowing through circuit 1618.
[0161] Such as combination Figure 9 Disclosed, the example workload management circuit 902 is capable of controlling the scheduling or distribution of workloads to multiple electronic components (e.g., multiple heat sources 1608) including multiple TEGs 1602, to amplify the temperature difference between heat sources 1608 (e.g., the outer surface of light source 1608) and a cooling medium (e.g., air, liquid), thereby increasing (e.g., maximizing) energy output and facilitating energy harvesting at the rack including the multiple electronic components. By increasing the heat output of heat sources 1608 (e.g., through workload performance) to increase the temperature gradient at TEG 1602, increased power output can be provided via TEG 1602. Therefore, by concentrating workload performance at the rack rather than avoiding hotspots, the example workload management circuit 902 enables the heat output of heat sources 1608 during workload performance to be reused in the form of electricity, particularly in environments where other sources of renewable energy (e.g., solar, wind, hydroelectric power) may be unavailable, such as data centers located on the seabed.
[0162] Figure 17A flowchart illustrating example machine-readable instructions and / or example operations 1700 is provided. These example machine-readable instructions and / or example operations 1700 can be implemented, instantiated, and / or executed by programmable circuitry to control the allocation of workload for the performance of (multiple) electronic components, thereby increasing (e.g., amplifying, maximizing) the thermal difference at (multiple) TEGs associated with (multiple) electronic components and thus increasing the power output via (multiple) TEGs. Instead of allocating workload to avoid creating hotspots, the example machine-readable instructions and / or example operations 1700 promote the formation of hotspots for energy harvesting purposes by increasing the utilization of certain electronic components through workload allocation.
[0163] Figure 17 Example instruction 1700 begins at box 1702, at box 1702, Figure 11 Example workload management circuit 902 collection and analysis circuit 1100 identifies (multiple) workloads to be assigned to the performance of (multiple) electronic components 906, 1004 based on workload data 1108.
[0164] At block 1704, the collection analysis circuit 1100 determines whether (a) the workload allocation algorithm 1128 (e.g., a third-party provided workload allocation algorithm) that attempts to avoid hotspots is biased when allocating (multiple) workloads, such that the workload allocation algorithm 1128 reverses the method of avoiding hotspots, or (b) the workload allocation algorithm 1128 is executed in a way that facilitates the creation of hotspots for energy harvesting purposes.
[0165] In an example where a workload allocation algorithm 1128 is used to attempt to avoid hotspot creation (i.e., "A" at block 1704), control then proceeds to block 1706, where the collection and analysis circuit 1100 adjusts the temperature of the electronic components(s)906,1004 to bias the workload allocation algorithm 1128, causing the algorithm to allocate jobs to the electronic components(s) with higher temperatures, rather than avoiding hotspot creation as the algorithm is intended. For example, at block 1706, the collection and analysis circuit 110 performs a temperature transformation to combine... Figure 18The disclosed temperature data 1112 of multiple electronic components 906 and 1004 is transformed to influence the allocation of workloads to multiple electronic components 906 and 1004 via the workload allocation algorithm 1128. Specifically, the collection and analysis circuit 1100 adjusts the temperature data such that (a) lower-temperature electronic components 906 and 1004, which would normally be allocated workloads via the workload allocation algorithm 1128, are less likely to be allocated workloads via the workload allocation algorithm 1128, and (b) higher-temperature electronic components 906 and 1004, which would normally not be allocated workloads via the workload allocation algorithm 1128 to avoid hotspot changes, are more likely to be allocated workloads to concentrate heat output for energy harvesting. Therefore, the collection and analysis circuit 1100 biases the workload allocation algorithm 1128 by adjusting the temperature data 1112 used by the algorithm 1128.
[0166] At block 1708, the collection and analysis circuit 1100 uses the transformed temperature data to execute a workload allocation algorithm 1128 to select electronic components(s) 906, 104 to perform the workload(s). Due to the transformed temperature data, the workload allocation algorithm 1128 is more likely to select electronic components(s) 906, 1004 that have already generated increased heat, rather than those associated with lower temperatures, to receive the workload. Therefore, as a result of the transformed temperature data, the workload allocation algorithm 1128 causes the electronic components(s) 906, 1004 associated with higher temperatures to further increase their heat output for energy harvesting.
[0167] At box 1710, Figure 11 Example workload management circuit 902, workload determination circuit 1102 enables (multiple) electronic components 906, 1004 to perform (multiple) workloads by distributing and / or transferring (multiple) workloads to (multiple) electronic components 906, 1004.
[0168] In one example where the collection and analysis circuit 1100 executes the workload allocation algorithm 1128, the workload allocation algorithm 1128 prioritizes allocating workloads to the electronic components(s) associated with higher temperatures to concentrate heat output (i.e., "B" at block 1704), and then control proceeds from block 1704 to block 1712. At block 1712, the collection and analysis circuit 1100 ranks the electronic components(s) 906, 1004 by temperature using temperature data 1112. At block 1714, the collection and analysis circuit 1100 identifies the electronic components 906, 1004 associated with the highest temperature based on the ranking (e.g., the hottest electronic components 906, 1004, which generate the most heat). At block 1716, the collection and analysis circuit 1100 identifies the utilization or current performance data of the electronic components 906, 1004 associated with the highest temperature based on, for example, workload data 1108 and electronic component capacity data 1116.
[0169] At box 1718, the collection analysis circuit 1100 determines, based on, for example, the estimated resources that will be consumed by the execution of (multiple) workloads, the (multiple) current workloads allocated to electronic components 906, 1004, historical performance data 1118 of electronic components 906, 1004 (e.g., failure rate), whether electronic components 906, 1004 have the capacity to execute (multiple) workloads related to the highest temperature.
[0170] If the data collection and analysis circuit 1100 determines that the electronic components 906, 1004 associated with the highest temperature have the capacity to perform multiple workloads, control proceeds to block 1710, where the workload determination circuit 1102 enables the electronic components 906, 1004 to perform multiple workloads by distributing and / or transferring the multiple workloads to the electronic components 906, 1004.
[0171] If the data collection and analysis circuit 1100 determines that the electronic components 906, 1004 associated with the highest temperature do not have the capacity to perform (multiple) workloads, the data collection and analysis circuit 110 identifies the next electronic component 906, 1004 ranked by temperature and evaluates the utilization of that electronic component (blocks 1720, 1722). The data collection and analysis circuit 1100 continues to evaluate the electronic components 906, 1004 based on temperature ranking until it identifies an electronic component 906, 1004 with the capacity to perform a workload, wherein the selected electronic component 906, 1004 is preferably associated with increased heat output before allocating (additional) workloads to facilitate heat concentration. If the data collection and analysis circuit 1100 does not identify any electronic component 906, 1004 with the capacity to perform a workload, the workload determination circuit 1102 outputs an error (block 1724), and instruction 1700 terminates (block 1726).
[0172] Figure 18 yes Figure 17 The flowchart below shows an example implementation of block 1706 of example operation 1700 (for performing temperature transformation using temperature data 1112 of (multiple) electronic components 906, 1004). At block 1800, the collection and analysis circuit 1100 obtains the temperature data 1112 of (multiple) electronic components 906, 1004. At block 1802, the collection and analysis circuit 1100 applies a transformation function to the temperature data 1112. An example transformation function can be defined as f(x) = C – x, where x is the temperature of electronic components 906, 1004 in the temperature data 1112, and C is a constant. For example, if C = 50 and the temperature x of the first electronic component 906, 1004 in the temperature data 1112 is 20, then the transformed temperature f(x) of the first electronic component 906, 1004 is 30 (f(x) = C – x = 50 - 20 = 30). As another example, if C = 50 and the temperature x of the second electronic components 906 and 1004 in temperature data 1112 is 30, then the transformed temperature f(x) of the second electronic components 906 and 1004 is 20 (f(x) = C – x = 50 - 30 = 20). Therefore, the transformation function changes the temperature associated with electronic components 906 and 1004, making the second electronic components 906 and 1004 appear to have a lower temperature than the first electronic components 906 and 1004. Therefore, the workload allocation algorithm 1128 allocates the workload(s) to the second electronic components 906 and 1004 instead of the first electronic components 906 and 1004. Thus, the second electronic components 906 and 1004 output more heat for energy harvesting. At block 1804, the harvesting analysis circuit 1100 outputs the transformed or adjusted temperature and controls the process to proceed. Figure 17 Box 1708.
[0173] Figure 19 This is a flowchart illustrating example machine-readable instructions and / or example operations 1900, which can be implemented, instantiated, and / or executed by programmable circuitry to maintain energy harvesting conditions at one or more electronic components or more generally at rack(s). For example, when a workload has already been completed by electronic components(s) of rack(s) selected for energy harvesting, but no new work is introduced to replace the completed workload and / or the introduced workload will not generate as much heat, it is possible to use... Figure 19 Example machine-readable instructions and / or example operations 1900, to avoid reducing the heat output of electronic components (enabling reduced energy harvesting effort), Figure 19 Example instruction 1900 can be used to facilitate and / or maintain energy harvesting efforts by identifying electronic components with workloads that can migrate to electronic components that are (or have) generating significant heat.
[0174] Example instruction 1900 begins at box 1902, at box 1902, Figure 11 The example workload management circuit 902's collection and analysis circuit 1100 obtains workload data 1108 and temperature data 1112 (i.e., the current workload(s) being performed by the electronic components 906 and 1004 and the current temperature data associated with the electronic components 906 and 1004) of the electronic components(s). At block 1904, the collection and analysis circuit 1100 generates a first ranking of the electronic components 906 and 1004 based on utilization determined, for example, by the electronic component capacity data 1116, the workload data 1108, and / or by the heat output indicated in the temperature data 1112. Additionally, the collection and analysis circuit 1100 generates a second ranking of the electronic components 906 and 1004 by temperature (e.g., the generated heat) based on the temperature data 1112.
[0175] At block 1906, the collection and analysis circuit 1100 identifies the electronic components 906 and 1004 with the lowest utilization based on a first ranking. At block 1908, the collection and analysis circuit 1100 determines whether the lowest-utilized electronic components 906 and 1004 have one or more transferable workloads that can be transferred to (multiple) other electronic components 906 and 1004 (such as electronic components 906 and 1004 ranked by temperature with the highest temperature (and therefore the highest heat output)).
[0176] If the workload(s) are transferable in some examples, the harvesting analysis circuitry 1100 can consider other factors before migrating the workload(s) from the least utilized electronic components 906, 1004 to another electronic component 906, 1004 that performs the workload(s) and generates a larger heat output. For example, while transferring additional workload(s) to electronic components 906, 1004 associated with the highest temperature can increase the heat output of electronic components 906, 1004 for energy harvesting purposes, the additional workload(s) may cause electronic components 906, 1004 to operate slower, which may violate, for example, service level agreements, or introduce operational instability at electronic components 906, 1004. Therefore, in some examples, at block 1909, the collection and analysis circuit 1100 is able to assess, based on data such as electronic component capacity data 1116, historical performance data 1118, and / or other data 1124 such as SLA data, whether the workload(s) should be transferred to the electronic component(s) 906, 1004 that is associated with the highest temperature and has capacity, or whether another electronic component(s) 906, 1004 (e.g., the next hottest electronic component) should be considered to receive the workload(s) (block 1910).
[0177] If the data collection and analysis circuit 1100 determines that (multiple) workloads should be transferred, then at box 1911, Figure 11 The example workload management circuit 902's workload determination circuit 1102 transfers or migrates (a) workloads associated with the highest temperature and (b) has the capacity to perform (a) additional workloads. Thus, the electronic components 906, 1004, which have already generated increased heat, continue to provide increased heat output (e.g., by operating at an increased frequency to perform newly received workloads).
[0178] If the identified electronic components 906 and 1004 with the lowest utilization do not have any transferable workloads (blocks 1906 and 1908), control proceeds to block 1912, where the collection and analysis circuit 1100 determines whether there are other electronic components 906 and 1004 with low utilization and transferable workloads in the utilization ranking generated at block 1904. If there are other electronic components (multiple) with workloads that can be considered for transfer from them in the list, control proceeds to block 1914, where the collection and analysis circuit 1100 (e.g., based on workload data 1108, temperature data 1112, and / or electronic component capacity data 1116) identifies the electronic components 906 and 1004 with the next lowest utilization. Control returns to block 1908 to determine whether the electronic components 906 and 1004 identified at block 1914 have transferable workloads. If no further analysis of the transferable workload is performed on electronic components 906 and 1004 in the utilization ranking, the control returns to box 1902 to obtain additional workload and temperature data for electronic components 906 and 1004.
[0179] In an example where the workload determination circuit 1102 transfers workload(s) to an electronic component(s) associated with the highest temperature and having the capacity to perform the workload(s) (box 1911), then at box 1916, the collection and analysis circuit 1100 determines whether the electronic components(s) from which the workload(s) have been transferred can be placed in a lower power state (e.g., changing from a first power state to a second lower power state). For example, if the remaining workload(s) at electronic components(s) 906, 1004 can be performed in a lower state, or if no further workload is being performed by or scheduled to be performed by electronic components(s) 906, 1004 within a threshold time period, then the collection and analysis circuit 1100 can determine that the electronic components(s) from which the workload(s) have been transferred can be placed in a lower power state.
[0180] If the electronic components from which the workload is transferred can be placed in a lower power state, then at block 1918, the workload determination circuit 1102 generates and outputs a command to cause electronic components 906, 1004 to enter a lower power state. In this way, heat generation is concentrated at the electronic components 906, 1004 from which the workload has been transferred, in order to maintain or increase energy harvesting by increasing the utilization of those electronic components. Furthermore, the electronic components 906, 1004 with lower or no utilization can be placed in a lower power state to improve energy efficiency, save resources, and reduce operating costs within data centers 900, 1000.
[0181] If, at box 1920, the collection and analysis circuit 1100 receives an instruction that the introduced workload should be allocated to electronic components 906 and 1004, then control continues. Figure 17 Example instruction 1700 is used to assign new workload (e.g., to one of the electronic components 906, 1004 that is not yet in a low-power state).
[0182] If the collection and analysis circuit 1100 does not receive an instruction to allocate a new workload, the monitoring circuit 1106 of the example workload management circuit 902 can continue to monitor the workload data 1108 and temperature data 1112 of the electronic components 906 and 1004 when the workloads are completed. Based on the monitoring, the monitoring circuit 1106 determines whether adjustments should be made to the existing workload allocation to maintain energy harvesting conditions (blocks 1922, 1924).
[0183] Figure 20 This is a block diagram of an example programmable circuit platform (e.g., an example processor platform) 2000, which is configured to perform and / or instantiate... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 Example machine-readable instructions and / or example operations to implement Figure 11 The workload management circuit 902. The programmable circuit platform 2000 can be, for example, a server, personal computer, workstation, self-learning machine (e.g., neural network), or mobile device (e.g., mobile phone, smartphone, iPad). TM Tablet computers, personal digital assistants (PDAs), internet devices, or any other type of computing and / or electronic devices.
[0184] The illustrated example programmable circuit platform 2000 includes programmable circuit 2012. The illustrated example programmable circuit 2012 is hardware. For example, programmable circuit 2012 can be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired family or manufacturer. Programmable circuit 2012 can be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, programmable circuit 2012 implements example collection and analysis circuit 1100, example workload determination circuit 1102, example CDU control circuit 1104, and example monitoring circuit 1106.
[0185] The illustrated example programmable circuit 2012 includes local memory 2013 (e.g., cache, registers, etc.). The illustrated example programmable circuit 2012 communicates via bus 2018 with main memory 2014, 2016, which includes volatile memory 2014 and non-volatile memory 2016. Volatile memory 2014 may be synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), etc. Dynamic Random Access Memory And / or any other type of RAM device. The non-volatile memory 2016 can be implemented using flash memory and / or any other desired type of memory device. Access to the illustrated example main memory 2014, 2016 is controlled by the memory controller 2017. In some examples, the memory controller 2017 can be implemented using one or more integrated circuits, logic circuits, microcontrollers, or any other type of circuit from any desired series or manufacturer to manage the flow of data into and out of the main memory 2014, 2016.
[0186] The illustrated example programmable circuit platform 2000 also includes interface circuitry 2020. Interface circuitry 2020 can be implemented in hardware according to any type of interface standard, such as an Ethernet interface, a Universal Serial Bus (USB) interface, etc. Interfaces include Near Field Communication (NFC) interfaces, Peripheral Component Interconnect (PCI) interfaces, and / or Fast Peripheral Component Interconnect (PCIe) interfaces.
[0187] In the illustrated example, one or more input devices 2022 are connected to interface circuitry 2020. The input devices 2022 allow users (e.g., human users, machine users, etc.) to input data and / or commands into programmable circuitry 2012. The input devices 2022 can be implemented using, for example, audio sensors, microphones, cameras (still or video), keyboards, buttons, mice, touchscreens, trackpads, trackballs, pointing devices, and / or speech recognition systems.
[0188] One or more output devices 2024 are also connected to the interface circuitry 2020 of the illustrated example. The output devices 2024 can be implemented, for example, by display devices (e.g., light-emitting diode (LED), organic light-emitting diode (OLED), liquid crystal display (LCD), cathode ray tube (CRT) display, in-situ switching (IPS) display, touchscreen, etc.), haptic output devices, printers, and / or speakers. Therefore, the interface circuitry 2020 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or graphics processor circuitry such as a GPU.
[0189] The illustrated example interface circuit 2020 also includes communication devices, such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces, for facilitating the exchange of data with external machines (e.g., any kind of computing device) via network 2026. Communication can be achieved through, for example, Ethernet connections, digital subscriber line (DSL) connections, telephone line connections, coaxial cable systems, satellite systems, beyond-line-of-sight wireless systems, line-of-sight wireless systems, cellular telephone systems, optical connections, etc.
[0190] The illustrated example programmable circuit platform 2000 also includes one or more mass storage disks or devices 2028 for storing firmware, software, and / or data. Examples of such mass storage disks or devices 2028 include magnetic storage devices (e.g., floppy disks, drives, HDDs, etc.), optical storage devices (e.g., Blu-ray discs, CDs, DVDs, etc.), RAID systems, and / or solid-state storage disks or devices such as flash memory devices and / or SSDs.
[0191] Machine-readable instruction 2032 can be derived from Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The machine-readable instructions can be implemented and stored in mass storage device 2028, in volatile memory 2014, in non-volatile memory 2016 and / or on at least one non-transitory computer-readable storage medium (such as a removable CD or DVD).
[0192] Figure 21 yes Figure 20 A block diagram illustrating an example implementation of a programmable circuit 2012. In this example, Figure 20 The programmable circuit 2012 is implemented by the microprocessor 2100. For example, the microprocessor 2100 may be a general-purpose microprocessor (e.g., a general-purpose microprocessor circuit). The microprocessor 2100 executes... Figures 12A-12C , Figure 13, Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart contains some or all of the machine-readable instructions to effectively translate... Figure 11 The circuit is instantiated as a logic circuit to perform operations corresponding to those machine-readable instructions. In some such examples, Figure 11 The circuitry is instantiated by the hardware circuitry of microprocessor 2100 in conjunction with machine-readable instructions. For example, microprocessor 2100 may be implemented by multi-core hardware circuitry such as a CPU, DSP, GPU, XPU, etc. While any number of example cores 2102 may be included (e.g., one core), this example microprocessor 2100 is a multi-core semiconductor device comprising N cores. The cores 2102 of microprocessor 2100 may operate independently or may coordinate the execution of machine-readable instructions. For example, machine code corresponding to firmware, embedded software programs, or software programs may be executed by one of the cores 2102, or may be executed by multiple cores 2102 at the same or different times. In some examples, the machine code corresponding to firmware, embedded software programs, or software programs is split into multiple threads and executed in parallel by two or more cores 2102. The software program may be implemented with... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart represents part or all of the machine-readable instructions and / or operations.
[0193] Core 2102 can communicate via a first example bus 2104. In some examples, the first bus 2104 can be implemented as a communication bus to enable communication with one or more cores 2102. For example, the first bus 2104 can be implemented as at least one of an integrated circuit (I2C) bus, a serial peripheral interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 2104 can be implemented as any other type of computing or electrical bus. Core 2102 can obtain data, instructions, and / or signals from one or more external devices via example interface circuitry 2106. Core 2102 can output data, instructions, and / or signals to one or more external devices via interface circuitry 2106. While the core 2102 of this example includes example local memory 2120 (e.g., a Level 1 (L1) cache that may be divided into an L1 data cache and an L1 instruction cache), the microprocessor 2100 also includes example shared memory 2110 (e.g., a Level 2 (L2) cache) that can be shared by the cores for high-speed access to data and / or instructions. Data and / or instructions can be transferred (e.g., shared) by writing to and / or reading from shared memory 2110. The local memory 2120 and shared memory 2110 of each of the plurality of cores 2102 may be cache memory and main memory comprising multiple levels (e.g., Figure 20 The cache hierarchy (2014, 2016) is part of the main memory's storage device hierarchy. Generally, in terms of hierarchy, higher-level memories exhibit lower access times and have smaller storage capacities compared to lower-level memories. Changes to the various levels of the cache hierarchy are managed through cache coherence strategies (e.g., reconciliation).
[0194] Each core 2102 may be referred to as a CPU, DSP, GPU, or any other type of hardware circuitry. Each core 2102 includes control unit circuitry 2114, arithmetic and logic (AL) circuitry (sometimes called an ALU) 2116, multiple registers 2118, local memory 2120, and a second example bus 2122. Other structures may exist. For example, each core 2102 may include vector unit circuitry, single instruction multiple data (SIMD) unit circuitry, load / store unit (LSU) circuitry, branch / jump unit circuitry, floating-point unit (FPU) circuitry, etc. The control unit circuitry 2114 includes semiconductor-based circuitry configured to control (e.g., coordinate) the movement of data within the respective core 2102. The AL circuitry 2116 includes semiconductor-based circuitry configured to perform one or more mathematical and / or logical operations (or arithmetic operations) on data within the respective core 2102. Some examples of the AL circuitry 2116 perform integer-based operations. In other examples, the AL circuitry 2116 also performs floating-point operations. In other examples, AL circuit 2116 may include a first AL circuit that performs integer-based operations and a second AL circuit that performs floating-point operations. In some examples, AL circuit 2116 may be referred to as an arithmetic logic unit (ALU).
[0195] Register 2118 is a semiconductor-based structure used to store data and / or instructions, such as the results of one or more operations performed by the AL circuit 2116 of the corresponding core 2102. For example, register 2118 may include (multiple) vector registers, (multiple) SIMD registers, (multiple) general-purpose registers, (multiple) flag registers, (multiple) segment registers, (multiple) machine-specific registers, (multiple) instruction pointer registers, (multiple) control registers, (multiple) debug registers, (multiple) memory management registers, (multiple) machine check registers, etc. Register 2118 may be as follows: Figure 21 The array is shown in rows. Alternatively, registers 2118 can be organized in any other arrangement, format, or structure, such as by distributing them throughout core 2102 to reduce access time. The second bus 2122 can be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.
[0196] Each core 2102 and / or more generally, the microprocessor 2100 may include additional and / or alternative structures to those shown and described above. For example, one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHAs), one or more aggregation / common grid sites (CMS), one or more shifters (e.g., multiple barrel shifters), and / or other circuitry may be present. The microprocessor 2100 is fabricated as a semiconductor device comprising a plurality of transistors interconnected to implement the above-described structures in one or more integrated circuits (ICs) contained in one or more packages.
[0197] Microprocessor 2100 may include one or more accelerators (e.g., acceleration circuitry, hardware accelerators, etc.) and / or coordinate with such accelerators. In some examples, accelerators are implemented by logic circuitry to perform certain tasks (tasks that can be performed by a general-purpose processor) faster and / or more efficiently than a general-purpose processor. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. GPUs, DSPs, and / or other programmable devices can also be accelerators. Accelerators may be mounted on microprocessor 2100, in the same chip package as microprocessor 2100, and / or in one or more separate packages with microprocessor 2100.
[0198] Figure 22 yes Figure 20 A block diagram illustrating another example implementation of the programmable circuit 2012. In this example, the programmable circuit 2012 is implemented by an FPGA circuit 2200. For example, the FPGA circuit 2200 can be implemented by an FPGA. The FPGA circuit 2200 can be used, for example, to perform operations that can be performed by... Figure 21 The example microprocessor 2100 executes the corresponding machine-readable instructions. However, once configured, the FPGA circuitry 2200 instantiates the operations and / or functions corresponding to the machine-readable instructions in hardware, and is therefore generally able to execute the operations / functions faster than a general-purpose microprocessor that executes the corresponding software (operations / functions can be executed by a general-purpose microprocessor).
[0199] More specifically, with the above Figure 21 The microprocessor 2100 (which is a general-purpose device that can be programmed to execute commands) is a general-purpose device. Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 A flowchart (or multiple flowcharts) represents some or all of the machine-readable instructions, but once manufactured, the interconnections and logic circuitry of a general-purpose device are fixed. Figure 22 The example FPGA circuit 2200 includes interconnects and logic circuitry that can be configured, constructed, programmed, and / or interconnected in different ways after manufacturing to instantiate, for example, with... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart(s) represent some or all of the machine-readable instructions corresponding to the operations / functions. Specifically, the FPGA circuit 2200 can be considered as an array of logic gates, interconnects, and switches. Switches can be programmed to change how logic gates are interconnected, effectively forming one or more dedicated logic circuits (unless and until the FPGA circuit 2200 is reprogrammed). The configured logic circuits enable logic gates to coordinate in different ways, thereby performing different operations on data received from the input circuits. Those operations can be associated with... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart(s) represent some or all of the instructions (e.g., software and / or firmware). Therefore, the FPGA circuit 2200 can be configured and / or constructed to correspond with... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 Some or all of the machine-readable instructions corresponding to the (multiple) flowcharts are effectively instantiated as dedicated logic circuits to execute the operations / functions corresponding to those software instructions in a dedicated manner similar to that of an ASIC. Therefore, the FPGA circuit 2200 can execute operations / functions corresponding to those software instructions faster than a general-purpose microprocessor. Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 Some or all of the corresponding operations / functions in the machine-readable instructions (operations / functions that a general-purpose microprocessor can execute).
[0200] exist Figure 22In some examples, the FPGA circuit 2200 is configured and / or constructed in response to being programmed (and / or reprogrammed once or multiple times) based on a binary file. In some examples, the binary file can be compiled and / or generated based on instructions in a hardware description language (HDL) such as Lucid, VHSIC Hardware Description Language (VHDL), or Verilog. For example, a user (e.g., a human user, a machine user, etc.) can write code or programs in HDL corresponding to one or more operations / functions; the code / program can be translated into a low-level language as needed; and the code / program (e.g., code / program in a low-level language) can be converted into a binary file (e.g., by a compiler, software application, etc.). In some examples, Figure 22 The FPGA circuit 2200 can access and / or load binary files to enable Figure 22 The FPGA circuit 2200 is configured and / or constructed to perform one or more operations / functions. For example, a binary file can be generated by... Figure 22 The FPGA circuitry 2200 can access bit streams (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or machine-readable instructions to implement... Figure 22 Configure and / or construct the FPGA 2200 or its components.
[0201] In some examples, the binary file is compiled, generated, transformed, and / or otherwise output from a unified software platform used for programming the FPGA. For instance, the unified software platform can translate first instructions (e.g., code or program) in a high-level language (e.g., C, C++, Python, etc.) corresponding to one or more operations / functions into second instructions in HDL corresponding to one or more operations / functions. In some such examples, the binary file is compiled, generated, and / or otherwise output from the unified software platform based on the second instructions. In some examples, Figure 22 The FPGA circuit 2200 can access and / or load binary files to enable Figure 22 The FPGA circuit 2200 is configured and / or constructed to perform one or more operations / functions. For example, a binary file can be generated by... Figure 22 The FPGA circuitry 2200 can access bit streams (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or machine-readable instructions to implement... Figure 22 Configure and / or construct the FPGA circuit 2200 or its (multiple) portions.
[0202] Figure 22The FPGA circuit 2200 includes example input / output (I / O) circuitry 2202 that obtains data from and / or outputs data to the example configuration circuitry 2204 and / or external hardware 2206. For example, the configuration circuitry 2204 may be implemented by interface circuitry capable of obtaining a binary file to configure the FPGA circuitry 2200 or portions thereof, which may be implemented as a bitstream, data, and / or machine-readable instructions. In some such examples, the configuration circuitry 2204 may obtain the binary file from a user, a machine (e.g., hardware circuitry (e.g., programmable or dedicated circuitry) capable of implementing an artificial intelligence / machine learning (AI / ML) model to generate a binary file, and / or any combination thereof). In some examples, the external hardware 2206 may be implemented by external hardware circuitry. For example, the external hardware 2206 may be implemented by… Figure 21 The microprocessor 2100 is implemented.
[0203] The FPGA circuit 2200 also includes an array of example logic gates 2208, multiple example configurable interconnects 2210, and example memory circuitry 2212. The logic gates 2208 and the configurable interconnects 2210 are configurable to instantiate one or more operations / functions that may correspond to at least some of the machine-readable instructions in the flowchart, and / or other desired operations. Figure 22 The logic gate circuit 2208 shown is fabricated in blocks or groups. Each block includes a semiconductor-based electrical structure that can be configured as a logic circuit. In some examples, the electrical structure includes logic gates (e.g., AND gates, OR gates, NOR gates, etc.) that provide the basic building block for the logic circuit. Electrically controlled switches (e.g., transistors) are present within each of the logic gate circuits 2208 to implement the configuration of the electrical structure and / or logic gates, thereby forming a circuit that performs the desired operation / function. The logic gate circuit 2208 may include other electrical structures such as lookup tables (LUTs), registers (e.g., flip-flops or latches), multiplexers, etc.
[0204] The configurable interconnect 2210 illustrated in the figure may include conductive paths, traces, vias, etc., of electrically controlled switches (e.g., transistors), the states of which can be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more logic gates 2208, thereby programming the desired logic circuit.
[0205] The illustrated example storage circuit 2212 is configured to store one or more results of operations performed by corresponding logic gates. Storage circuit 2212 can be implemented using registers, etc. In the illustrated example, storage circuit 2212 is distributed within logic gate circuit 2208 to facilitate access and increase execution speed.
[0206] Figure 22 The example FPGA circuit 2200 also includes example dedicated operating circuitry 2214. In this example, dedicated operating circuitry 2214 includes dedicated (special purpose) circuitry 2216, which can be invoked to implement common functions, thus avoiding the need for on-site programming of those functions. Examples of such dedicated circuitry 2216 include memory (e.g., DRAM) controller circuitry, PCIe controller circuitry, clock circuitry, transceiver circuitry, memory, and multiplier-accumulator circuitry. Other types of special purpose circuitry may be present. In some examples, FPGA circuitry 2200 may also include example general-purpose programmable circuitry 2218, such as example CPU 2220 and / or example DSP 2222. Other general-purpose programmable circuitry 2218, such as GPUs, XPUs, etc., that can be programmed to perform other operations may additionally or alternatively be present.
[0207] Although Figure 21 and Figure 22 The diagram shows... Figure 20 The two example implementations of programmable circuits 2012 are presented, but many other approaches are considered. For example, FPGA circuits may include an onboard CPU, such as... Figure 21 One or more of the example CPUs 2220. Therefore, Figure 20 The programmable circuit 2012 can additionally be combined with at least Figure 21 Example microprocessor 2100 and Figure 22 The example FPGA circuit 2200 is used for implementation. In some such hybrid examples, Figure 21 One or more cores of the 2102 can execute commands by Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart(s) represent the first part of machine-readable instructions to perform the first operation(s) / function(s). Figure 22 The FPGA circuit 2200 can be configured and / or constructed to perform operations with... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart represents the second part of a machine-readable instruction corresponding to (multiple) second operations / (multiple) functions, and / or the ASIC can be configured and / or constructed to perform operations corresponding to those specified by the instruction. Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The flowchart represents the third part of a machine-readable instruction, corresponding to (multiple) third operations / (multiple) functions.
[0208] It should be understood that, therefore, Figure 11 Some or all of the circuits can be instantiated at the same or different times. For example, Figure 21 Multiple identical and / or different parts of the microprocessor 2100 can be programmed to execute multiple parts of machine-readable instructions at the same and / or different times. In some examples, Figure 22 Multiple identical and / or different portions of the FPGA circuit 2200 can be configured and / or constructed to perform operations / functions corresponding to multiple portions of machine-readable instructions at the same and / or different times.
[0209] In some examples, Figure 11 Some or all of the circuitry can be instantiated, for example, in one or more threads that execute simultaneously and / or serially. For example, Figure 21 The microprocessor 2100 can execute machine-readable instructions in one or more threads that execute simultaneously and / or serially. In some examples, Figure 22 The FPGA circuit 2200 can be configured and / or constructed to perform operations / functions simultaneously and / or in series. Furthermore, in some examples, Figure 11 Some or all of the circuits can be in Figure 21 Implemented within one or more virtual machines and / or virtual containers that execute on the microprocessor 2100.
[0210] In some examples, Figure 20 The programmable circuit 2012 can be housed in one or more packages. For example, Figure 21 Microprocessor 2100 and / or Figure 22 The FPGA circuitry 2200 can be housed in one or more packages. In some examples, the XPU can be... Figure 20 This is implemented using a programmable circuit 2012, which can be in one or more packages. For example, the XPU can include a CPU in one package (e.g., Figure 21 Microprocessor 2100, Figure 22 CPU 2220, etc.), and DSP in another package (e.g., Figure 22 DSP 2222), GPU in another package, and FPGA in yet another package (e.g., Figure 22 FPGA circuit 2200).
[0211] The illustration depicts the distribution of hardware devices, such as those owned and / or operated by third parties from the owner and / or operator of a software distribution platform, to other hardware devices. Figure 20 A block diagram of an example software distribution platform 2305 containing example machine-readable instructions 2032 is shown in the example software 2032. Figure 23 The illustration shows that the example software distribution platform 2305 can be implemented by any computer server, data facility, cloud service, etc., capable of storing software and transferring it to other computing devices. A third party can be a customer of the entity that owns and / or operates the software distribution platform 2305. For example, the entity owning and / or operating the software distribution platform 2305 can be the software (such as...) Figure 20 The example machine-readable instructions 2032 are provided by the developer, seller, and / or licensor. Third parties may be consumers, users, retailers, original equipment manufacturers, etc., who purchase and / or license the software for use and / or resell and / or sublicense. In the illustrated example, the software distribution platform 2305 includes one or more servers and one or more storage devices. The storage devices store the machine-readable instructions 2032, which can be used in conjunction with the machine-readable instructions as described above. Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 This corresponds to the example machine-readable instructions. One or more servers of the example software distribution platform 2305 communicate with the example network 2310, which may correspond to any one or more of the Internet and / or any of the example networks described above. In some examples, one or more servers respond to a request to transfer software as part of a commercial transaction to a requesting party. Payment for the delivery, sale, and / or licensing of the software may be processed by one or more servers of the software distribution platform and / or a third-party payment entity. The server enables the purchaser and / or licensor to download machine-readable instructions 2032 from the software distribution platform 2305. For example, instructions related to... Figures 12A-12C , Figure 13 , Figure 14 , Figures 15A-15C , Figure 17 , Figure 18 and Figure 19 The software corresponding to the example machine-readable instructions is downloaded to the example programmable circuit platform 2000, which will execute the machine-readable instructions 2032 to implement the workload management circuit 902. In some examples, one or more servers of the software distribution platform 2305 periodically provide, transmit, and / or force software updates (e.g., Figure 20Example machine-readable instructions (2032) are used to ensure that improvements, patches, updates, etc., are distributed and applied to the software at the end-user device. Although referred to as software above, distributed “software” can be alternatively referred to as firmware.
[0212] "Comprising" and "including" (and all their forms and tenses) are used herein as open-ended terms. Therefore, whenever a claim uses any form of "comprising" or "including" (e.g., including, containing, including, including, having, etc.) as a preamble or in any kind of claim reference, it is to be understood that additional elements, terms, etc., may be present that do not fall outside the scope of the corresponding claim or reference. As used herein, when the phrase "at least" is used as a transitional term, for example, in the preamble of a claim, the phrase "at least" is open-ended in the same way that the terms "comprising" and "including" are open-ended. For example, the term "and / or" when used in the form of A, B, and / or C refers to any combination or subset of A, B, and C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, or (7) A and B and C. As used herein, in the context of describing structures, components, projects, objects, and / or things, the phrase "at least one of A and B" is intended to refer to an implementation containing any one of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein, in the context of describing structures, components, projects, objects, and / or things, the phrase "at least one of A or B" is intended to refer to an implementation containing any one of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein, in the context of describing the performance or execution of processes, instructions, actions, activities, etc., the phrase "at least one of A and B" is intended to refer to an implementation containing any one of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein, in the context of describing the performance or execution of processes, instructions, actions, activities, etc., the phrase “at least one of A or B” is intended to refer to an implementation that includes (1) at least one A, (2) at least one B, or (3) any one of at least one A and at least one B.
[0213] As used herein, singular references (e.g., “a,” “an,” “first,” “second,” etc.) do not exclude plurals. As used herein, the term “a” or “an” refers to one or more of those objects. The terms “a” (or “an”), “one or more,” and “at least one” are used interchangeably herein. Furthermore, although listed individually, multiple devices, elements, or actions may be implemented by, for example, the same entity or object. Additionally, while individual features may be included in different examples or claims, these features may be combined, and their inclusion in different examples or claims does not imply that the combination of features is unfeasible and / or unadvantageous.
[0214] As used herein, unless otherwise stated, the term "above" describes the relationship of two parts relative to the Earth. If the second part has at least one portion between the Earth and the first part, then the first part is above the second part. Similarly, as used herein, the first part is "below" the second part when the first part is closer to the Earth than the second part. As stated above, the first part can be above or below the second part, and the first and second parts can have one or more of the following: there are other portions between them, there are no other portions between them, the first and second parts are in contact, or the first and third parts are not in direct contact with each other.
[0215] Unless otherwise specified, descriptors such as “first,” “second,” and “third” are used herein not to indicate any priority, physical order, arrangement in a list, and / or any sorting, but merely as labels and / or arbitrary names to distinguish elements for the purpose of understanding the disclosed examples. In some examples, the descriptor “first” may be used to refer to an element in the detailed description, while the same element may be referred to in the claims by different descriptors (such as “second” or “third”). In such cases, it should be understood that such descriptors are only used to clearly identify those elements within the context of the discussion (e.g., within the claims), where elements may otherwise share the same name.
[0216] As used herein, the phrase “in communication” includes variations thereof, including direct and / or indirect communication via one or more intermediate components, and does not require direct physical (e.g., wired) communication and / or continuous communication, but additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and / or one-off events.
[0217] As used herein, “programmable circuit” is defined to include (i) one or more special-purpose circuits (e.g., special-purpose circuits (ASICs)) configured to perform (multiple) specific operations and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and / or (ii) one or more general-purpose semiconductor-based circuits programmable with instructions to perform (multiple) specific functions and / or (multiple) operations and containing one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of programmable circuits include programmable microprocessors such as a central processing unit (CPU) capable of executing a first instruction to perform one or more operations and / or functions; field-programmable gate arrays (FPGAs) that can be programmed with second instructions to configure and / or construct an FPGA to instantiate one or more operations and / or functions corresponding to the first instruction; graphics processing units (GPUs) capable of executing a first instruction to perform one or more operations and / or functions; digital signal processors (DSPs), XPUs, network processing units (NPUs) capable of executing a first instruction to perform one or more operations and / or functions; one or more microprocessors and / or integrated circuits such as application-specific integrated circuits (ASICs) capable of executing a first instruction to perform one or more operations and / or functions. For example, an XPU can be implemented by a heterogeneous computing system that includes multiple types of programmable circuits (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more NPUs, one or more DSPs, etc. and / or any combination thereof), and an orchestration technique (e.g., multiple application programming interfaces (APIs)) that can assign multiple computing tasks to any one or more of the multiple types of programmable circuits, any one or more of the multiple types of programmable circuits being suitable for and usable to perform multiple computing tasks.
[0218] As used herein, an integrated circuit / circuit is defined as one or more semiconductor packages containing one or more circuit elements, such as transistors, capacitors, inductors, resistors, current paths, diodes, etc. For example, an integrated circuit can be implemented as one or more of an ASIC, FPGA, chip, microchip, programmable circuit, semiconductor substrate coupled with multiple circuit elements, system-on-a-chip (SoC), etc.
[0219] Based on the foregoing, it will be appreciated that example systems, apparatuses, articles, and methods for providing energy recovery from electronic components in a data center have been disclosed via the management of workloads allocated to electronic components. The examples disclosed herein provide efficient energy harvesting by concentrating heat generation at specific electronic components and / or racks housing those components through the performance of the workload. In some examples, AI-driven algorithms are used to select racks for energy harvesting based on various criteria or weighting factors seeking to select racks with electronic components that have the capacity to perform increased heat loads at a sustained rate without sacrificing the durability and reliability of the electronic components. In some examples, concentrating workloads at one or more electronic components can increase the temperature difference at a thermoelectric generator, thereby providing efficient electrical energy generation. Some examples disclosed herein provide increased utilization of electronic components for energy harvesting while balancing energy efficiency by placing non-harvesting electronic components in a lower power state.
[0220] Example systems, apparatuses, and methods for energy harvesting in data centers are disclosed. Further examples and combinations thereof include the following.
[0221] Example 1 includes an apparatus comprising interface circuitry; machine-readable instructions; and at least one processor circuitry for instantiating or executing at least one of the machine-readable instructions to: estimate a first power consumption value of an electronic component of a first rack; estimate a second power consumption value of an electronic component of a second rack; determine a first selection score of the first rack based on the first power consumption value, and determine a second selection score of the second rack based on the second power consumption value; select a first electronic component of the first rack or a second electronic component of the second rack to receive a workload based on the first selection score and the second selection score; and cause the selected one of the first electronic component or the second electronic component to execute the workload.
[0222] Example 2 includes the apparatus of Example 1, wherein one or more of at least one processor circuitry are configured to: generate a remaining operational lifetime value for the electronic components of the first rack; and determine a first selection score based on a first power consumption value and the remaining lifetime value.
[0223] Example 3 includes the apparatus of Example 1 or Example 2, wherein one or more of at least one processor circuitry are configured to: select a first electronic component of a first rack to perform a workload; and verify the selection based on maintenance scheduling for one or more of the electronic components of the first rack.
[0224] Example 4 includes an apparatus of any one of Examples 1-3, wherein one or more of at least one processor circuitry are used to: verify selection based on historical performance data of a first electronic component.
[0225] Example 5 includes an apparatus of any one of Examples 1-4, wherein, prior to selecting a first electronic component of a first rack or a second electronic component of a second rack to receive the workload, one or more of at least one processor circuitry are configured to: detect a coolant input temperature of coolant flowing to the first rack; detect a coolant output temperature of coolant after exposure to the electronic component of the first rack; and estimate a first power consumption value based on the difference between the coolant input temperature and the coolant output temperature.
[0226] Example 6 includes an apparatus of any one of Examples 1-5, wherein one or more of at least one processor circuitry are configured to: select a first electronic component of a first rack to perform a workload; and in response to selecting the first electronic component of the first rack to perform the workload, cause a cooling distribution unit to adjust the temperature of the coolant to be exposed to the first electronic component.
[0227] Example 7 includes an apparatus of any one of Examples 1-6, wherein one or more of at least one processor circuitry are configured to: select a first electronic component of a first rack to perform a workload; and change a second electronic component of a second rack from a first power state to a second power state, the second power state being a lower power state than the first power state.
[0228] Example 8 includes an apparatus comprising interface circuitry; machine-readable instructions; and at least one processor circuitry for instantiating or executing at least one of the machine-readable instructions to: select a first electronic component associated with a highest temperature based on respective temperatures associated with a plurality of electronic components, the plurality of electronic components including the first electronic component; determine a workload capacity of the first electronic component based on one or more first workloads assigned to the first electronic component; transfer a second workload assigned to a second electronic component to the first electronic component based on the workload capacity; and, in response to the transfer of the second workload to the first electronic component, change the second electronic component from a first power state to a second power state, the second power state being lower than the first power state.
[0229] Example 9 includes the apparatus of Example 8, wherein one or more of at least one processor circuitry are configured to: execute a transformation function to adjust a temperature associated with a plurality of temperatures, thereby generating adjusted temperature data, wherein the selection of a first electronic component is based on the adjusted temperature data.
[0230] Example 10 includes the apparatus of Example 8 or Example 9, wherein, in the adjusted temperature data, the first electronic component is assigned a lower temperature than the second electronic component.
[0231] Example 11 includes an apparatus of any one of Examples 8-10, wherein one or more of at least one processor circuitry are configured to: assign a second workload to the first electronic component based on the workload capacity and historical performance data of the first electronic component.
[0232] Example 12 includes an apparatus of any one of Examples 8-11, wherein one or more of at least one processor circuitry are configured to: identify the utilization of the second electronic component; and, based on the utilization of the second electronic component, select a second electronic component from which to transfer a second workload.
[0233] Example 13 includes an apparatus of any one of Examples 8-12, wherein a second electronic component is assigned a plurality of workloads, the plurality of workloads including a second workload, and one or more of at least one processor circuitry are configured to: identify the second workload as a transferable workload; and, based on the identification of the second workload as transferable, select a second workload to be transferred from the second electronic component.
[0234] Example 14 includes a non-transitory machine-readable storage medium comprising instructions to cause at least one processor circuitry to: generate a selection score for each of a plurality of racks, the plurality of racks including a first rack and a second rack, the first rack supporting a first electronic component and the second rack supporting a second electronic component; select the first rack of the plurality of racks as a collection rack based on the selection score; and in response to selecting the first rack as a collection rack, assign workloads to the first electronic component of the first rack to increase the number of workloads assigned to the first electronic component relative to the second electronic component of the second rack.
[0235] Example 15 includes the non-transitory machine-readable storage medium of Example 14, wherein instructions cause one or more of at least one processor circuitry to: cause a cooling distribution unit to adjust the temperature of the coolant supplied to the first rack.
[0236] Example 16 includes a non-transitory machine-readable storage medium of any one of Examples 14 or 15, wherein instructions cause one or more of at least one processor circuitry to: change a second electronic component from a first power state to a second power state, the second power state being lower than the first power state.
[0237] Example 17 includes a non-transitory machine-readable storage medium of any one of Examples 14-16, wherein the collection rack is a first collection rack, and instructions cause one or more of at least one processor circuitry to: select a third rack among a plurality of racks as another collection rack based on a selection score; identify one or more electronic components of the third rack as scheduled for maintenance during a threshold time period; and, in response to identifying one or more electronic components of the third rack as scheduled for maintenance, select the first rack instead of the third rack as the first collection rack.
[0238] Example 18 includes a non-transitory machine-readable storage medium of any of Examples 14-17, wherein instructions cause one or more of at least one processor circuitry to: verify the selection of a first rack as a collection rack based on historical performance data of a first electronic component.
[0239] Example 19 includes a non-transitory machine-readable storage medium of any one of Examples 14-18, wherein instructions cause one or more of at least one processor circuitry to: estimate power consumption values of electronic components in a respective rack of a plurality of racks; estimate remaining lifetime values of electronic components in a corresponding plurality of racks; and generate selection scores for a respective rack of a plurality of racks based on the power consumption values and remaining lifetime values of the corresponding electronic components in the respective rack of a plurality of racks.
[0240] Example 20 includes a non-transitory machine-readable storage medium of any of Examples 14-19, wherein instructions cause one or more of at least one processor circuitry to: estimate power consumption values based on thermal design power data of electronic components in respective racks of a plurality of racks.
[0241] Example 21 includes a system comprising a thermoelectric generator associated with a first electronic component; machine-readable instructions; and at least one processor circuitry for executing the instructions to at least: determine, based on a first ranking, that a first temperature associated with the first electronic component is higher than a second temperature associated with a second electronic component; determine, based on a second ranking, that the utilization rate of the second electronic component is less than a second utilization rate of the first electronic component; and, based on the first and second rankings, transfer workload allocated to the second electronic component to the first electronic component to increase the thermal gradient associated with the thermoelectric generator.
[0242] Example 22 includes the system of Example 21, wherein one or more of at least one processor circuitry are configured to: in response to a shift of workload from a second electronic component to a first electronic component, change the power state of the second electronic component from a first power state to a second power state, the second power state being lower than the first power state.
[0243] Example 23 includes the system of Example 21 or Example 22, wherein the workload is a first workload, and one or more of at least one processor circuitry are configured to: execute a transformation function to generate adjusted temperature data for a first electronic component and a second electronic component; and allocate a second workload to the first electronic component based on the adjusted temperature data.
[0244] Example 24 includes a system comprising any one of Examples 21-23, wherein the workload is a first workload, and one or more of at least one processor circuitry are configured to: in response to the completion of the first workload, transfer a second workload allocated to a second electronic component or a third electronic component to the first electronic component based on a first ranking and a second ranking.
[0245] Example 25 includes a system of any one of Examples 21-24, wherein a thermoelectric generator is operatively coupled to a battery.
[0246] The appended claims are incorporated herein by reference in this detailed description. While some example systems, apparatuses, articles of manufacture, and methods are disclosed herein, the scope of this patent is not limited thereto. Rather, this patent covers all systems, apparatuses, articles of manufacture, and methods that fairly fall within the scope of the claims of this patent.
Claims
1. An apparatus comprising: Interface circuit; Machine-readable instructions; as well as At least one processor circuit, the at least one processor circuit being configured to instantiate or execute at least one of the machine-readable instructions, to: Estimate the initial power consumption of the electronic components in the first rack; Estimate the second power consumption value of the electronic components in the second rack; Based on the first power consumption value, a first selection score for the first rack is determined, and based on the second power consumption value, a second selection score for the second rack is determined. Based on the first selection score and the second selection score, select either the first electronic component of the first rack or the second electronic component of the second rack to receive the workload; and The workload is performed by one of the first electronic components or the second electronic component.
2. The apparatus according to claim 1, wherein, One or more of the at least one processor circuit are used for: Generate the remaining operational lifetime value of the electronic components of the first rack; and The first selection score is determined based on the first power consumption value and the remaining lifetime value.
3. The apparatus according to claim 1 or 2, wherein, One or more of the at least one processor circuit are used for: Select the first electronic component of the first rack to perform the workload; and The selection is verified based on the maintenance schedule of one or more of the electronic components for the first rack.
4. The apparatus according to claim 3, wherein, One or more of the at least one processor circuit are used for: The selection is verified based on the historical performance data of the first electronic component.
5. The apparatus according to claim 1 or 2, wherein, Before selecting the first electronic component of the first rack or the second electronic component of the second rack to receive the workload, one or more of the at least one processor circuitry are used for: Detect the coolant input temperature of the coolant flowing to the first rack; The coolant output temperature is detected after the coolant is exposed to the electronic components of the first rack; as well as The first power consumption value is estimated based on the difference between the coolant input temperature and the coolant output temperature.
6. The apparatus according to claim 1 or 2, wherein, One or more of the at least one processor circuit are used for: Select the first electronic component of the first rack to perform the workload; and In response to selecting the first electronic component of the first rack to perform the workload, the cooling distribution unit adjusts the temperature of the coolant to be exposed to the first electronic component.
7. The apparatus according to claim 1 or 2, wherein, One or more of the at least one processor circuit are used for: Select the first electronic component of the first rack to perform the workload; and The second electronic component of the second rack is changed from a first power state to a second power state, which is a lower power state than the first power state.
8. An apparatus comprising: Interface circuit; Machine-readable instructions; as well as At least one processor circuit, the at least one processor circuit being configured to instantiate or execute at least one of the machine-readable instructions, to: Based on the respective temperatures associated with multiple electronic components, a first electronic component is selected that is associated with the highest temperature, the multiple electronic components including the first electronic component; The workload capacity of the first electronic component is determined based on one or more first workloads assigned to the first electronic component. Based on the said workload capacity, the second workload allocated to the second electronic component is transferred to the first electronic component; as well as In response to the transfer of the second workload to the first electronic component, the second electronic component is changed from a first power state to a second power state, the second power state being lower than the first power state.
9. The apparatus according to claim 8, wherein, One or more of the at least one processor circuit are used for: A transformation function is executed to adjust the temperatures associated with the plurality of temperatures to generate adjusted temperature data, wherein the selection of the first electronic component is based on the adjusted temperature data.
10. The apparatus according to claim 9, wherein, In the adjusted temperature data, the first electronic component is assigned a lower temperature than the second electronic component.
11. The apparatus according to claim 8 or 9, wherein, One or more of the at least one processor circuit are used for: Based on the workload capacity and historical performance data of the first electronic component, the second workload is allocated to the first electronic component.
12. The apparatus according to claim 8 or 9, wherein, One or more of the at least one processor circuit are used for: Identify the use of the second electronic component; and Based on the utilization of the second electronic component, the second electronic component is selected, and the second workload is to be transferred from the second electronic component.
13. The apparatus according to claim 12, wherein, The second electronic component is assigned multiple workloads, the multiple workloads including the second workload, and one or more of the at least one processor circuitry are used for: The second workload is identified as a portable workload; and Based on the identification of the second workload as transferable, the second workload to be transferred from the second electronic component is selected.
14. A machine-readable storage medium comprising instructions that cause at least one processor circuitry to be used for at least the following: For each of a plurality of racks, a selection score is generated, the plurality of racks including a first rack and a second rack, the first rack supporting a first electronic component and the second rack supporting a second electronic component; Based on the selection score, the first rack among the plurality of racks is selected as the collection rack; as well as In response to selecting the first rack as the collection rack, workload is allocated to the first electronic component of the first rack to increase the amount of workload allocated to the first electronic component relative to the second electronic component of the second rack.
15. The machine-readable storage medium of claim 14, wherein, The instruction causes one or more of the at least one processor circuitry to: The cooling distribution unit adjusts the temperature of the coolant supplied to the first rack.
16. The machine-readable storage medium according to claim 14 or 15, wherein, The instruction causes one or more of the at least one processor circuitry to: The second electronic component is changed from a first power state to a second power state, where the second power state is lower than the first power state.
17. The machine-readable storage medium according to claim 14 or 15, wherein, The collection rack is a first collection rack, and the instructions cause one or more of the at least one processor circuitry to: Based on the selection score, the third rack among the plurality of racks is selected as another collection rack; Within a threshold time period, one or more electronic components of the third rack are identified as being scheduled for maintenance; as well as In response to identifying one or more electronic components of the third rack as scheduled for maintenance, the first rack is selected instead of the third rack as the first collection rack.
18. The machine-readable storage medium according to claim 14 or 15, wherein, The instruction causes one or more of the at least one processor circuitry to: Based on the historical performance data of the first electronic component, the selection of the first rack as the collection rack is verified.
19. The machine-readable storage medium according to claim 14 or 15, wherein, The instruction causes one or more of the at least one processor circuitry to: Estimate the power consumption of the electronic components in each of the plurality of racks; Estimate the remaining lifetime value of the electronic components in each of the plurality of racks; as well as The selection score is generated for each of the plurality of racks based on the power consumption value and the remaining lifetime value of the corresponding electronic components of each of the plurality of racks.
20. The non-transitory machine-readable storage medium according to claim 19, wherein, The instruction causes one or more of the at least one processor circuitry to: The power consumption value is estimated based on the thermal design power data of the electronic components in the respective racks of the plurality of racks.
21. A system comprising: Thermoelectric generator associated with the first electronic component; Machine-readable instructions; as well as At least one processor circuit, the at least one processor circuit being configured to execute the instructions, to at least: Based on the first ranking, it is determined that the first temperature associated with the first electronic component is higher than the second temperature associated with the second electronic component; Based on the second ranking, it is determined that the utilization rate of the second electronic component is less than the second utilization rate of the first electronic component; as well as Based on the first ranking and the second ranking, the workload allocated to the second electronic component is transferred to the first electronic component to increase the thermal gradient associated with the thermoelectric generator.
22. The system according to claim 21, wherein, One or more of the at least one processor circuit are used for: In response to the workload being transferred from the second electronic component to the first electronic component, the power state of the second electronic component is changed from a first power state to a second power state, the second power state being lower than the first power state.
23. The system according to claim 21, wherein, The workload is a first workload, and one or more of the at least one processor circuitry are used for: Execute the transformation function to generate adjusted temperature data for the first and second electronic components; as well as Based on the adjusted temperature data, the second workload is allocated to the first electronic component.
24. The system according to claim 23, wherein, The workload is a first workload, and one or more of the at least one processor circuitry are used for: In response to the completion of the first workload, based on the first ranking and the second ranking, the second workload assigned to the second electronic component or the third electronic component is transferred to the first electronic component.
25. The system according to any one of claims 21-24, wherein, The thermoelectric generator is operatively coupled to the battery.