WO2024009747A1 - Information processing device, information processing method, and program - Google Patents

Information processing device, information processing method, and program Download PDF

Info

Publication number
WO2024009747A1
WO2024009747A1 PCT/JP2023/022684 JP2023022684W WO2024009747A1 WO 2024009747 A1 WO2024009747 A1 WO 2024009747A1 JP 2023022684 W JP2023022684 W JP 2023022684W WO 2024009747 A1 WO2024009747 A1 WO 2024009747A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
temperature
cores
task
physical
Prior art date
Application number
PCT/JP2023/022684
Other languages
French (fr)
Japanese (ja)
Inventor
学 杉本
昌一 粟井
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2024009747A1 publication Critical patent/WO2024009747A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • This technology relates to information processing devices, information processing methods, and programs.
  • this technology is designed to prevent CPU cores from reaching high temperatures while suppressing performance deterioration, without relying on the unique thermal characteristics of each type of processor.
  • the present invention relates to an information processing device, an information processing method, and a program that provide general-purpose protection through control.
  • Patent Document 1 uses parameters such as the thermal gradient (thermal conductivity) for each core of the CPU, the position of the CPU core on the die, the maximum clock frequency for each core, and the voltage regulator efficiency for each core, and A technique has been disclosed for scheduling the data to the optimal core.
  • Patent Document 1 it is necessary to understand the unique thermal characteristics of each type of processor and reflect them in the thermal control of the CPU, which lacks versatility.
  • This technology was created in view of this situation, and uses software control to universally control high temperatures in the CPU core while suppressing performance degradation, without relying on the unique thermal characteristics of each type of processor. Try to prevent it from happening.
  • the information processing device or program of the present technology determines, among the plurality of cores of the processor, based on the thermal distance between the cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores of the processor.
  • This is an information processing device that has a control unit that moves to a different core, or a program that causes a computer to function as such an information processing device.
  • the control unit of an information processing device having a control unit calculates a thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores included in the processor.
  • a task is running in a high-temperature core whose temperature is higher than a threshold value, or a task is running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core.
  • This is an information processing method for moving at least a task to another core different from the high-temperature core.
  • the A task running in the high-temperature core or a task running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core is moved to at least another core different from the high-temperature core.
  • FIG. 1 is a diagram illustrating an example of an IoT system.
  • 1 is a block diagram showing a configuration example of an information processing system to which the present technology is applied.
  • FIG. 3 is a diagram used to explain a physical core and a logical core. It is a figure explaining the outline of thermal distance estimation processing.
  • 12 is a flowchart illustrating a generalized procedure example of a thermal distance estimation process performed by a thermal distance estimation module.
  • FIG. 2 is a diagram illustrating a first form of task movement control performed by a CPU control module in the case of a single processor.
  • FIG. 7 is a diagram illustrating a second form of task movement control performed by a CPU control module in the case of a multiprocessor.
  • FIG. 7 is a diagram illustrating a third form of task movement control performed by a CPU control module in the case of a single processor or multiprocessor.
  • 9 is a flowchart showing an example of a procedure using the first to third forms of task movement control shown in FIGS. 6 to 8;
  • FIG. 1 is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is applied.
  • edge computing which processes and analyzes data using devices such as IoT terminals and servers installed near them, is becoming popular. Edge computing performs calculations on the edge side without sending data to the cloud, so it is characterized by high real-time performance and by dispersing the load, communication delays are less likely to occur. Additionally, with the advent of lightweight, compact, and high-performance single-board computers, edge computing has become applicable to a variety of use cases.
  • Autonomous robotics is a typical example of edge computing.
  • Autonomous robotics in which robots make their own decisions and act, requires sensing the surrounding situation and processing data in real time.
  • edge computing By applying edge computing to autonomous robotics, it becomes possible for devices within the robot to process tasks that require real-time performance without delay.
  • CPUfreq Governors is a typical software-based heat reduction method.
  • CPUfreq Governors is a method that dynamically changes the CPU operating frequency according to the CPU temperature, reducing system power consumption and heat generation.
  • lowering the operating frequency can temporarily reduce power consumption, there is a risk that the performance of all tasks running on that CPU core will deteriorate. This performance deterioration can be a fatal failure in systems that execute tasks that require real-time performance.
  • This technology proposes a method to suppress CPU heat generation while suppressing system performance deterioration.
  • the task (process or thread) running on that CPU core is moved from the high temperature CPU core to a CPU core with a large thermal distance and low temperature. Controls the temperature of the high-temperature CPU core so that it does not rise any further.
  • thermal distance refers to the degree of influence of heat propagation between cores of a CPU. The larger the thermal distance is, the harder it is for heat to propagate, and conversely, the smaller the thermal distance is, the easier it is for heat to propagate.
  • FIG. 2 is a block diagram showing a configuration example of an information processing system 1 to which the present technology is applied.
  • the information processing system 1 is any type of edge device used in edge computing, and includes CPUs 11-1 and 11-2 as hardware and an operating system including programs executed as software. 12 (referred to as OS 12), a physical core thermal distance estimation module 13 (hereinafter referred to as thermal distance estimation module 13), a CPU control module 14, and a temperature monitoring module 15.
  • OS 12 referred to as OS 12
  • thermal distance estimation module 13 hereinafter referred to as thermal distance estimation module 13
  • CPU control module 14 includes a temperature monitoring module 15.
  • the CPU In the case of a single processor or when not limited to a specific CPU, the CPU is referred to as CPU11, and in the case of a multiprocessor to distinguish between multiple CPUs, the letters of the CPU are referred to as CPU1, CPU2, etc. It will be expressed by adding the CPU number afterwards. Note that the information processing system 1 is not limited to an edge device.
  • the CPU 11 executes necessary processing as an edge device by loading a program stored in a storage unit (not shown) as hardware into a RAM (not shown) and executing it.
  • the CPU 11 is a multi-core having a plurality of individual processing units (CPU cores or simply referred to as cores) within one CPU package. When distinguishing between the plurality of cores that one CPU 11 has, they are expressed by adding a core number after the letter of the core, such as core 1, core 2, . . . .
  • the OS 12 manages hardware resources such as task management, file management, storage management, and input/output management, and provides a user interface.
  • the thermal distance estimation module 13, CPU control module 14, and temperature monitoring module 15 are, for example, programs that extend the functionality of the OS 12 kernel, run as user processes on the OS 12, and are independent of the OS 12 scheduler. It works.
  • the thermal distance estimating module 13 estimates the thermal distance of a plurality of cores included in the CPU 11 . The thermal distance of the core will be described later.
  • the CPU control module 14 allocates cores for processing tasks and performs task boost processing.
  • the temperature monitoring module 15 monitors the temperature of each core of the CPU 11 in real time.
  • the information processing system 1 moves a task running on a high-temperature core or a core adjacent to the high-temperature core to a core that is less influenced by heat propagation (temperature influence) with the high-temperature core. This reduces the temperature of the high-temperature core before the clock frequency control of CPUfreq Governors is activated, thereby preventing performance deterioration due to heat (such as a decrease in processing speed).
  • the degree of influence of heat propagation between each core of the CPU 11 is referred to as the thermal distance. That is, it is assumed that the thermal distance from each of the plurality of cores of one CPU 11 is smaller (closer) to other cores that are more easily affected by temperature (cores that are affected by temperature). For example, when focusing on one core as a reference core, it can be said that a core that is physically close to the reference core is generally close in thermal distance to the reference core.
  • the thermal distance does not take into account only the physical distance; the temperature of the peripheral circuits of the CPU 11 rises due to the operation of the reference core, and the temperature of the core may rise due to this effect. be considered.
  • the second core is the core whose thermal distance is the closest to the first core.
  • the first core does not necessarily have the closest thermal distance to the second core.
  • the term "thermal distance is close or far” means that the thermal distance is closer (smaller) or farther (larger) than a predetermined threshold value, and the threshold value is the physical quantity (temperature, etc.) used when estimating the thermal distance.
  • the CPU core recognized by the OS12 is not a physically existing CPU core (called a physical core), but an abstracted logical core (logical core) that is associated with a physical core. ).
  • one CPU 11 has six physical cores 1 to 6 with physical core numbers 1 to 6, and the OS 12 divides these physical cores 1 to 6 into 12 logical cores with logical core numbers 1 to 12.
  • a hyper-threading configuration is illustrated in which the cores are recognized as cores 1 to 12 and task assignment etc. are controlled.
  • the CPU control module 14 moves tasks between cores in consideration of thermal distance, it is necessary to know in advance the thermal distance of each of the plurality of logical cores to other logical cores.
  • the thermal distance between two logical cores is the thermal distance between two physical cores to which these two logical cores are associated. Note that a plurality of logical cores may be associated with the same physical core, and in that case, the thermal distance between those logical cores corresponds to 0.
  • the thermal distance between physical cores and the thermal distance between logical cores are to be distinguished, they will be referred to as the thermal distance between physical cores and the thermal distance between logical cores, respectively.
  • the overall procedure for heat management processing of the CPU 11 in the information processing system 1 can be broadly divided into the following processes.
  • the thermal distance estimation module 13 performs thermal estimation processing between CPU cores, which will be described later, at the time of starting the information processing system 1, etc., to estimate the heat between each logical core.
  • the target distance is estimated, and logical core thermal distance estimation information, etc., which will be described later, is created.
  • ⁇ Processing 2 In task movement control process 2, after the information processing system 1 is started, the CPU control module 14 performs task movement control based on the temperature information of each physical core from the temperature monitoring module 15 and the logical core thermal distance estimation information. I do. In the task movement control of the CPU control module 14, a physical core whose temperature has risen to a high temperature equal to or higher than a predetermined threshold is detected based on the temperature information of each physical core from the temperature monitoring module 15.
  • a task running on a logical core associated with that physical core may
  • the logical core is moved to a logical core with a long (large) thermal distance between logical cores and a low temperature (for example, the lowest temperature logical core).
  • Moving a task means changing the logical core (or physical core) that executes the task.
  • the temperature of the physical core is the temperature of the logical core associated with the physical core.
  • the logical core thermal distance estimation information created in advance by the thermal distance estimation module 13 is used.
  • Such task movement control prevents performance deterioration (decreased processing speed, etc.) due to heat in the CPU core.
  • task boosting or the like is performed to suppress performance deterioration due to overhead caused by task movement.
  • FIG. 4 is a diagram illustrating an overview of the thermal distance estimation process. Note that FIG. 4 illustrates the hyper-threading configuration of FIG. 3, and a thermal distance estimation process in that configuration will be described.
  • the thermal distance estimation module 13 operates a high-load task on the logic core 1 for a certain period of time. At this time, the temperature monitoring module 15 monitors (detects) the temperature of each of the physical cores 1 to 6, and supplies the detected temperature to the thermal distance estimation module 13.
  • the thermal distance estimation module 13 monitors the rise in temperature of each of the physical cores 1 to 6 based on the temperature of each physical core 1 to 6 from the temperature monitoring module 15.
  • the process related to monitoring the temperature rise of the physical cores 1 to 6 may be performed by the temperature monitoring module 15.
  • the thermal distance estimation module 13 can obtain information that the logical core 1 is mapped (corresponding) to the physical core 4 (referred to as logical core-physical core correspondence relationship information).
  • the thermal distance estimation module 13 detects which of the physical cores 1 to 6 (excluding physical core 4) the heat is propagating to as the temperature of the physical core 4 increases. That is, a physical core whose temperature has increased less than that of physical core 4 but whose temperature has increased by a threshold value or more is detected.
  • the thermal distance estimating module 13 estimates that the thermal distances of physical cores 1 and 5 are close to physical core 4, using physical core 4 as a reference core.
  • the thermal distance estimation module 13 stores the estimation result as physical core thermal distance estimation information that estimates the thermal distance between physical cores. Note that physical cores other than physical cores whose thermal distance between physical cores is close to the reference core are estimated to have long thermal distances. However, the evaluation of the thermal distance between physical cores is not limited to cases where the thermal distance is close (small) or far (large).
  • the thermal distance estimation module 13 classifies the magnitude of the temperature rise of the physical core into a plurality of classes using a plurality of different threshold values, and to which class the detected magnitude of the temperature rise belongs. Detect. For example, it is assumed that the higher the temperature rise, the higher the class (class 1, 2, 3, etc.). Then, the thermal distance estimating module 13 assumes that the physical core belonging to a class with a larger temperature increase has a closer physical core-to-physical core thermal distance to the physical core of the largest class, and determines that class as the physical core-to-physical core thermal distance.
  • the class represents the proximity of For example, assume that the closer the thermal distance, the larger the class. In this way, the size of the thermal distance between physical cores may be evaluated using a desired number of classes. Further, the thermal distance estimating module 13 may evaluate whether the thermal distance between physical cores is the closest, the farthest, or something else.
  • the thermal distance estimation module 13 sequentially operates high-load tasks on all logical cores 1 to 12 for a certain period of time, detects the temperature rise of each physical core 1 to 6, and uses the detection results as Based on the logical core-physical core correspondence relationship information indicating the physical core to which each of the logical cores 1 to 12 is associated, and the relationship between the physical cores 1 to 6 relative to the reference core, with each of the physical cores 1 to 6 as a reference core. Physical core thermal distance estimation information that estimates the thermal distance between each physical core is acquired.
  • the thermal distance estimation module 13 sets each of the logical cores 1 to 12 as reference cores, and calculates the logical core 1 relative to the reference core.
  • the thermal distance between each of the 12 logical cores is estimated.
  • the thermal distance estimation module 13 uses the estimation result as logical core thermal distance estimation information to create a mapping (distance map) representing the logical core thermal distance estimation information.
  • the physical core numbers of the physical cores associated with each of the logical cores 1 to 12 can be obtained from the logical core-physical core correspondence information.
  • the thermal distances between each of logical cores 1 to 12 with respect to the logical core serving as a reference core are such that each of logical cores 1 to 12 is associated with a physical core to which the logical core serving as a reference core is associated. This is the thermal distance between physical cores, and is obtained from the physical core thermal distance estimation information. Therefore, when each of the logical cores 1 to 12 is used as a reference core, the inter-logical core thermal distance of each of the logical cores 1 to 12 with respect to the reference core can be obtained from the physical core thermal distance estimation information.
  • the thermal distance estimation module 13 creates the information, that is, a distance map representing the thermal distance between each of the logical cores 1 to 12 for each of the logical cores 1 to 12 as logical core thermal distance estimation information. do. Note that in the following, the created distance map will also be referred to as logical core thermal distance estimation information.
  • physical core 1 is associated with logical cores 3 and 7, and physical core 2 is associated with logical cores 5 and 6.
  • Physical core 3 is associated with logical cores 4 and 9
  • physical core 4 is associated with logical cores 1 and 2
  • physical core 5 is associated with logical cores 8 and 9.
  • a case is shown in which it is found that physical core 6 is associated with logical cores 11 and 12.
  • logical core thermal distance estimation information indicating that the thermal distances between logical cores of logical cores 3, 7, 8, and 10, which are respectively associated with physical cores 1 and 5, are close (small).
  • the logical core thermal distance estimation information is for logical cores 1 and 2, and for logical cores 4, 5, 6, 9, 11, and other than logical cores 1, 2, 3, 7, 8, and 10.
  • information indicating that the thermal distance between the 12 logical cores is long (large) is included.
  • each of logical cores 3 to 12 other than logical cores 1 and 2 is used as a reference core, it indicates whether the thermal distance between each of logical cores 1 to 12 is close or far from the reference core.
  • Logical core thermal distance estimation information is created.
  • the thermal distance estimation module 13 is not limited to the case where logical core thermal distance estimation information is finally created from the logical core-physical core correspondence relationship information and the physical core thermal distance estimation information; The core correspondence information and the physical core thermal distance estimation information may be finally created, and the temperature distance between logical cores may be calculated as appropriate from these pieces of information. That is, the thermal distance estimation module 13 creates either one of the physical core thermal distance estimation information and the logical core thermal distance estimation information, and the logical core-physical core correspondence relationship information. It's okay.
  • FIG. 5 is a flowchart illustrating a generalized procedure example of the thermal distance estimation process performed by the thermal distance estimation module 13.
  • the thermal distance estimation module 13 operates the high-load task on the logical core i of the logical core number i. Note that the initial value of the logical core number i is 1.
  • the process proceeds from step S11 to step S12.
  • the thermal distance estimation module 13 acquires temperature information of the physical core from the temperature monitoring module 15, and monitors the temperature of all physical cores.
  • the process proceeds from step S12 to step S13.
  • step S13 the thermal distance estimation module 13 associates the physical core number of the physical core whose temperature has increased the most with the logical core number i.
  • the thermal distance estimation module 13 detects that the logical core i is associated with the physical core whose temperature has increased the most. The process proceeds from step S13 to step S14.
  • the thermal distance estimation module 13 calculates the physical core numbers of the physical cores whose temperature has increased accordingly (physical cores whose increased temperature is equal to or higher than a predetermined threshold (first threshold)), and the physical core numbers of the physical cores whose temperature has increased concomitantly (physical cores whose increased temperature is equal to or higher than a predetermined threshold (first threshold)), and the physical core numbers of the physical cores whose temperature has increased accordingly.
  • a physical core number of a physical core (a physical core whose temperature increase is equal to or less than a predetermined threshold (second threshold)) is stored.
  • the process proceeds from step S14 to step S15.
  • the thermal distance estimation module 13 determines whether the logical core number i is the number of logical cores, which is the total number of logical cores.
  • step S15 the logical core number i is incremented by 1 and the process returns to step S11, and the process repeats steps S11 to S15. If the answer is yes in step S15, the process proceeds from step S15 to step S16.
  • step S16 the thermal distance estimation module 13 uses logical core-physical core correspondence relationship information obtained from the information detected in step S13 and physical core thermal distance estimation information obtained from the information stored in step S14. Based on this, the inter-logical core thermal distances of all logical cores (logical core numbers) are estimated for each of all logical cores (logical core numbers), and logical core thermal distance estimation information is created.
  • the thermal distance estimation module 13 executes this process when the information processing system 1 is started, etc., so that whether the hardware is a single processor or a multiprocessor is determined. Even if there is, logical core thermal distance estimation information (and physical core thermal distance estimation information) for any CPU 11 can be acquired. Furthermore, even if the hardware configuration around the CPU changes and the degree of influence of heat propagation by the surrounding circuits changes, the thermal distance estimation module 13 performs this process when the information processing system 1 is started, so that the system The thermal distance of the physical core can be estimated using appropriate logical core thermal distance estimation information (and physical core thermal distance estimation information) without depending on the configuration.
  • Task movement control The detailed methods of task movement control that can be adopted differ depending on whether the hardware configuration (CPU architecture) of the information processing system 1 is a single processor (and multi-core) or multi-processor (and multi-core).
  • a multiprocessor it is possible to adopt the task movement control method that can be adopted in the case of a single processor; method cannot be adopted. Therefore, in the following explanation of task movement control, a method of task movement control that can be adopted in both a single processor and a multiprocessor will be explained as the first form of task movement control shown in FIG. 6 in the case of a single processor, and A method of task movement control that can only be adopted will be described as a second form of task movement control shown in FIG. 7 in the case of a multiprocessor.
  • the CPU control module 14 also determines whether each task executed by each CPU core is a high-load task that requires a high load on the CPU core, or a low-load task that requires a low load that is lower than the high-load task. Task information on whether it is a load task can be obtained from the OS 12 or the like. Further, the CPU control module 14 can also obtain task information from the OS 12 or the like as to whether each task requires real-time performance.
  • the first and second forms of task movement control shown in FIGS. 6 and 7 can be performed independently of these task information, but the logical cores ( The following description assumes that when the temperature of the physical core (physical core) rises to a high temperature, the third form of task control shown in FIG. 8 is implemented.
  • FIG. 6 is a diagram illustrating a first form of task movement control performed by the CPU control module 14 in the case of a single processor.
  • the CPU 11 has physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6. It is also assumed that the logical cores associated with physical cores 1 to 6 are the same as in the example described in FIG. 4.
  • a task labeled "RT/HL Task” represents a high-load task that requires real-time performance.
  • a task labeled "HL Task” represents a high-load task that does not require real-time performance.
  • “Normal Task” represents a low load task.
  • the CPU control module 14 acquires temperature information of each physical core 1 to 6 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 1 has increased to a high temperature higher than a threshold value, and that a high temperature (simply referred to as high temperature) that is a condition for task movement is detected in the physical core 1.
  • a high temperature that is a condition for task movement is detected in the physical core 1.
  • the conditions for task migration are not limited to the case where the temperature of the physical core is above a threshold value, but also when the temperature is predicted to be high, such as when the time rate of change of the rising temperature is above a predetermined threshold value. This may be the case.
  • the CPU control module 14 determines the temperature of the physical cores 1 to 6 based on the logical core-physical core correspondence relationship information created by the thermal distance estimation process of process 1 and the logical core thermal distance estimation information. is treated as the temperature of logical cores 1 to 12 corresponding to physical cores 1 to 6, respectively, and task movement control is processed as the movement of tasks between logical cores 1 to 12 without being aware of physical cores 1 to 6. be able to.
  • the logical core-physical core correspondence relationship information and the physical core thermal distance estimation information may be created by the thermal distance estimation process of process 1.
  • the CPU control module 14 processes the task movement control as movement of tasks between physical cores 1 to 6, and appropriately controls the movement source logical core where the task to be moved is executed and the movement destination. It is easier to specify the logical core based on the logical core-physical core correspondence information. Also, the latter is easier to understand intuitively, so in the following explanation of task movement control, we will mainly explain it as movement of tasks between physical cores 1 to 6, and the physical cores will be , can be read as a logical core associated with a physical core. Additionally, when multiple (two in the example in Figure 4) logical cores are associated with one physical core, multiple tasks can be executed in parallel on each physical core, but We do not mention whether it is executed on logical cores.
  • the CPU control module 14 controls the high temperature physical core 1 based on the physical core thermal distance estimation information created by the thermal distance estimation process in process 1. to detect physical cores with a long (large) thermal distance between physical cores.
  • physical cores having a longer thermal distance between physical cores than physical core 1, which has a high temperature are physical cores 5 and 6, for example.
  • the CPU control module 14 identifies a physical core whose temperature is lower than a predetermined threshold value among physical cores 5 and 6, which have a long thermal distance between the physical cores with respect to the physical core 1 which has a high temperature, and transfers the task. Select as destination.
  • any physical core may be selected as the task destination, or the physical core with the lower temperature may be selected as the task destination. It may be selected.
  • the thermal distance between physical cores is evaluated in more than two classes, ie close and far, one of the physical cores with the farthest thermal distance between physical cores is selected as the destination of the task. This may be the case.
  • the CPU control module 14 identifies a physical core with a long thermal distance between physical cores and a low temperature with respect to the high-temperature physical core 1, and selects physical core 6 as the task transfer destination.
  • the CPU control module 14 moves the task running on physical core 1 to physical core 6.
  • both of them may be moved to physical core 6, or one of them (for example, a task with a higher load) may be moved to physical core 6. It may be moved to 6.
  • a plurality of physical cores may be selected as the destination of the task, and the plurality of tasks of the physical core 1 may be moved to different physical cores.
  • At least one of the other physical cores different from high-temperature physical core 1 is selected, or at least another physical core different from high-temperature physical core 1 is selected.
  • a physical core with a lower temperature among the cores may be selected.
  • the CPU control module 14 After moving the task of physical core 1 to physical core 6, the CPU control module 14 temporarily increases the CPU resources of physical core 6 that can be used by the moved task in order to alleviate the overhead associated with moving the task. This will boost the moved task.
  • the CPU control module 14 limits the assignment of tasks so that no tasks are assigned to the physical core 1 for a certain period of time in order to cool down the temperature of the physical core 1. This leaves physical core 1 in an idle state, and if CPUfreq Governors is running, its function reduces the clock frequency, which reduces power consumption and lowers the temperature of physical core 1. If the temperature rise occurs again in the physical core 6 after the task is moved and the CPU control module 14 detects that the temperature of the physical core 6 has become high, it detects that the temperature of the physical core 1 is high. Repeat the same process as in the previous case. For example, if the CPU control module 14 selects physical core 5 as the task migration destination as a result of identifying a physical core with a long inter-physical core thermal distance and low temperature compared to physical core 6, Move tasks running on core 6 to physical core 5.
  • FIG. 7 is a diagram illustrating a second form of task movement control performed by the CPU control module 14 in the case of a multiprocessor.
  • CPUs 11-1 and 11-2 are two CPUs included in the information processing system 1, and are hereinafter referred to as CPU1 and CPU2 using the CPU numbers. It is assumed that the CPU1 and the CPU2 both have physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6.
  • the logical cores associated with physical cores 1 to 6 of CPU1 and CPU2 are the same as the example explained in Figure 4, and two logical cores are assigned to each of physical cores 1 to 6. is assigned. It is assumed that the tasks labeled "RT/HL Task", "HL Task", and "Normal Task” are the same as in FIG. 6.
  • the CPU control module 14 is divided into a CPU for high-load tasks and a CPU for low-load tasks as an initial setup.
  • CPU1 is a CPU for high-load tasks
  • CPU2 is a CPU for low-load tasks. Note that if there are three or more CPUs, any number of these CPUs may be divided into two, one of which may be used as a CPU for high-load tasks, and the other may be used as a CPU for low-load tasks.
  • the CPU control module 14 acquires temperature information of each physical core 1 to 6 of each of the CPUs 1 and 2 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 4 of the CPU 1 has risen to a high temperature equal to or higher than a threshold value, and that a high temperature that is a condition for task movement is detected in the physical core 4 of the CPU 1. Note that the conditions for task movement can be changed as appropriate, as in the case of the first form of task movement control shown in FIG.
  • the CPU control module 14 When detecting that the physical core 4 of the CPU 1 has a high temperature, the CPU control module 14 detects the physical core with the lowest temperature among the physical cores 1 to 6 of the CPU 2 for low-load tasks. Here, assuming that the physical core 1 of the CPU 2 is the physical core with the lowest temperature, the CPU control module 14 selects the physical core 1 of the CPU 2 as the destination of the task. In this case, the CPU control module 14 moves the task running on the physical core 4 of the CPU 1 to the physical core 1 of the CPU 2. Note that if multiple tasks are running on physical core 4 of CPU1, both of them may be moved to physical core 1 of CPU2, or one of them (for example, a task with a higher load) may be moved to physical core 1 of CPU2. ) may be moved to physical core 1 of CPU2.
  • a plurality of physical cores of the CPU 2 may be selected as task migration destinations, and a plurality of tasks of the physical core 4 of the CPU 1 may be moved to different physical cores of the CPU 2, respectively.
  • at least one of the physical cores of the CPU 2 may be selected as the destination for moving the task of the high-temperature physical core 4.
  • the CPU control module 14 moves the CPU of physical core 1 of CPU 2 that can use the moved task to reduce the overhead associated with the movement of the task. Boost the moved task by temporarily increasing resources.
  • the CPU control module 14 limits the assignment of tasks so that the task is not assigned to the physical core 4 of the CPU 1 for a certain period of time in order to cool down the temperature of the physical core 4 of the CPU 1. .
  • the CPU control module 14 detects that the temperature of the physical core 4 of the CPU 1 after the task has been moved has decreased below a predetermined threshold, the CPU control module 14 transfers the task that was moved to the physical core 1 of the CPU 2 to the original physical core 4 of the CPU 1.
  • the task running on physical core 4 of CPU1 is a high-load task that requires real-time performance, and the case is illustrated in which the task is moved to physical core 1 of CPU2. If the task operating on the physical core whose high temperature has been detected is a high-load task that requires real-time performance, the following third form of task movement control may be applied.
  • FIG. 8 is a diagram illustrating a third form of task movement control performed by the CPU control module 14 in the case of a single processor or multiprocessor.
  • CPU 11 represents one CPU included in the information processing system 1 when the information processing system 1 is a single processor, and represents multiple CPUs included in the information processing system 1 when the information processing system 1 is a multiprocessor. represents any one of the CPUs in .
  • the CPU 11 has physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6.
  • the logical cores associated with physical cores 1 to 6 are the same as in the example described in FIG. 4. It is assumed that the tasks labeled "RT/HL Task", "HL Task", and “Normal Task” are the same as in FIG. 6.
  • the CPU control module 14 acquires temperature information of each physical core 1 to 6 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 1 has increased to a high temperature equal to or higher than a threshold value, and a high temperature that is a condition for task migration is detected in the physical core 1. Note that the conditions for task movement can be changed as appropriate, as in the case of the first form of task movement control shown in FIG. When detecting that the physical core 1 is at a high temperature, the CPU control module 14 controls the high temperature physical core 1 based on the physical core thermal distance estimation information created by the thermal distance estimation process in process 1.
  • a physical core having a short thermal distance between physical cores (this is a thermal distance between physical cores that has a temperature effect on physical core 1) and a high temperature is detected.
  • this detection is limited to physical cores running tasks that do not require real-time performance.
  • the CPU control module 14 detects a low-temperature physical core that is a physical core with a long inter-physical core thermal distance relative to the high-temperature physical core 1. , select where to move the task. Assume that as a result, physical core 6 is selected as the task migration destination.
  • the CPU control module 14 moves the task of the physical core 2, which has a close thermal distance between the physical cores to the physical core 1, which has a high temperature, to the physical core 6, in order to alleviate the overhead associated with the movement of the task, Boosts the moved task by temporarily increasing the CPU resources of physical core 6 that the moved task can use.
  • the CPU control module 14 limits task assignment so that no task is assigned to the physical core 2 for a certain period of time in order to cool down the temperature of the physical core 1. This leaves physical core 2 in an idle state, and if CPUfreq Governors is running, its function reduces the clock frequency, which reduces power consumption and lowers the temperature of physical core 2. As the temperature of physical core 2 decreases, heat propagation from physical core 2 to physical core 1 is reduced, and the temperature of physical core 1 decreases.
  • the third form of task movement control can be employed even when a physical core on which a task that does not require real-time performance is operating rises to a high temperature. For example, regardless of whether the task requires real-time performance or not, it is possible to move a task of a physical core with a close thermal distance between the physical cores and a high temperature to a physical core with a high temperature. good.
  • the task of a physical core (peripheral core) with a close thermal distance between the physical cores can be transferred to at least another physical core that is different from the high-temperature physical core and is not the migration source. It may be moved to another physical core that is not a peripheral core or to a physical core with a lower temperature.
  • the second form and the third form may be combined.
  • a task running on a high-temperature physical core may be The core may be moved to a physical core of a CPU different from the CPU to which the core belongs.
  • FIG. 9 is a flowchart showing an example of a procedure using the first to third forms of task movement control shown in FIGS. 6 to 8.
  • step S31 the CPU control module 14 acquires temperature information of the physical cores from the temperature monitoring module 15, and monitors the temperatures of all physical cores. The process proceeds from step S31 to step S32.
  • step S32 the CPU control module 14 determines whether the temperature of any physical core exceeds a threshold (or is greater than or equal to a threshold). If the answer is NO in step S32, the process returns to step S31. If the answer is yes in step S32, the process proceeds from step S32 to step S33.
  • step S33 the CPU control module 14 determines whether the task operated by the high-temperature physical core determined to have exceeded the threshold in step S32 (detected in step S32) is a task requiring real-time performance. Determine whether If the result in step S33 is affirmative, the process proceeds to step S34, where the third form of task movement control shown in FIG. 8 is started. If the result in step S33 is negative, the process proceeds to step S39, where it is determined which of the first form and the second form of task movement control shown in FIGS. 6 and 7 is to be performed (described later).
  • step S34 the CPU control module 14 detects a physical core that is close in thermal distance between physical cores and has a high temperature with respect to the high-temperature physical core detected in step S32. The process proceeds from step S34 to step S35. In step S35, the CPU control module 14 detects a physical core that has a longer inter-physical core thermal distance and has a lower temperature than the high-temperature physical core detected in step S32. The process proceeds from step S35 to step S36. In step S36, the CPU control module 14 moves the task running on the physical core detected in step S34 to the physical core detected in step S35. The process proceeds from step S36 to step S37.
  • step S37 the CPU control module 14 boosts the task by temporarily increasing the CPU resources of the physical core detected in step S35, that is, the destination physical core to which the task was moved in step S36.
  • step S38 the CPU control module 14 temporarily prevents a new task from being assigned to the physical core detected in step S34, that is, the source physical core to which the task was moved.
  • step S31 the CPU control module 14 boosts the task by temporarily increasing the CPU resources of the physical core detected in step S35, that is, the destination physical core to which the task was moved in step S36.
  • step S38 the CPU control module 14 temporarily prevents a new task from being assigned to the physical core detected in step S34, that is, the source physical core to which the task was moved.
  • step S31 the process returns from step S38 to step S31.
  • step S39 when step S33 is negative, the process branches depending on whether the CPU architecture (hardware configuration of the information processing system 1) is a single processor and multi-core configuration or a multiprocessor and multi-core configuration.
  • the process proceeds to step S40, and the task movement control of the first form shown in FIG. 6 is started.
  • the process proceeds to step S44, and the second form of task movement control shown in FIG. 7 is started.
  • the CPU control module 14 detects a physical core that has a longer inter-physical core thermal distance and a lower temperature than the high-temperature physical core detected in step S32. The process proceeds from step S40 to step S41.
  • step S41 the CPU control module 14 moves the task operating on the high-temperature physical core detected in step S32 to the physical core detected in step S40.
  • step S42 the CPU control module 14 boosts the task by temporarily increasing the CPU resources of the physical core detected in step S40, that is, the destination physical core to which the task was moved in step S41.
  • step S43 the CPU control module 14 temporarily prevents a new task from being assigned to the high-temperature physical core detected in step S32, that is, the source physical core from which the task was moved. .
  • step S43 the CPU control module 14 temporarily prevents a new task from being assigned to the high-temperature physical core detected in step S32, that is, the source physical core from which the task was moved.
  • step S43 the process proceeds from step S43 to step S45.
  • step S44 branched from step S39, the CPU control module 14 detects a physical core with a low temperature in a CPU different from the CPU to which the high-temperature physical core detected in step S32 belongs.
  • the process proceeds from step S44 to step S41, and performs steps S41 to S43.
  • the physical core detected in step S40 is replaced with the physical core detected in step S44.
  • step S45 the process branches depending on whether the CPU architecture (hardware configuration of the information processing system 1) is a single processor and multi-core configuration or a multiprocessor and multi-core configuration. In the former case, the process returns to step S31.
  • step S46 the CPU control module 14 determines whether the temperature of the high-temperature physical core detected in step S32, that is, the physical core from which the task was moved is If the value falls below the predetermined threshold, the physical core detected in step S44, that is, the destination physical core to which the task was moved in step S41, is returned to the physical core detected in step S32.
  • the process returns from step S45 to step S31.
  • the process of returning a task from the movement destination to the movement source physical core as in step S46 is not limited to the case of the second form of task movement control that goes through the process of step S44, but also applies to tasks that do not go through the process of step S44.
  • the movement control may be performed in the same manner in both the first form and the third form.
  • CPUs which are semiconductor devices, are sensitive to temperature, so increases in CPU temperature can lead to reduced operating efficiency, malfunctions, and failures.
  • Cooling devices such as heat sinks and fans are used to suppress the heat generated by CPUs, but as devices have become smaller in recent years, it may not be possible to secure enough space to install a cooling device.
  • This technology uses software control to solve the CPU heat generation problem while suppressing performance degradation. The following existing technologies are known to solve the CPU heat generation problem through software control.
  • CPUfreq Governors is a method that dynamically changes the operating frequency according to the CPU temperature to reduce system power consumption and heat generation. By using this mechanism, when the CPU temperature exceeds a certain level, it is possible to reduce the CPU's operating frequency and reduce heat generation.
  • the problem with CPUfreq Governors is that they can reduce power consumption and temporarily stop temperature rise by lowering the operating frequency, but there is a risk that the performance of all applications running on that CPU core will deteriorate. Note that by using CPUfreq Governors in conjunction with this technology, the temperature of high-temperature cores can be lowered more quickly.
  • Linux (registered trademark) Thermal Pressure is a function that allows the task scheduler to allocate tasks to the optimal CPU cores according to the temperature status of the cores when the operating system (OS) schedules tasks.
  • a scheduler that can use Thermal Pressure places tasks on the optimal CPU core after considering the operating frequency changed by CPUfreq Governors. This improves the overall system performance.
  • the problem with Linux (registered trademark) Thermal Pressure is that when the core overheats, it is possible to run the system with minimal performance degradation, but when the CPU overheats, the CPUfreq Governor reduces the CPU operating frequency. Therefore, it is not possible to prevent performance degradation of tasks running on that CPU core.
  • Android (registered trademark) Thermal Service Android (registered trademark) Thermal Service constantly monitors CPU thermal information using various thermal mitigation signals from Android (registered trademark) Thermal HAL and feeds back status to applications depending on the severity of throttling. This allows running applications to take flexible heat mitigation measures depending on the severity of throttling. For example, when the CPU heats up, it is possible to temporarily suppress the heat generation by stopping tasks that do not require real-time performance.
  • the problem with Android (registered trademark) Thermal Service is that in order to use its functions, it is necessary to change the application and take heat reduction measures according to each status situation. Therefore, it is difficult to apply it to third-party applications. Further, even if it is possible to change applications, it is extremely difficult to change all running applications and implement heat reduction measures.
  • Patent Document 1 Multi-core dynamic workload management is performed in U.S. Pat. Schedule tasks to the optimal core using parameters such as efficiency. Scheduling is also performed based on whether each task is an idle use case or a low power use case.
  • the problem with Patent Document 1 is that the scheduler basically schedules high-load tasks that cause temperature rise to be moved to another CPU core, so it is difficult to handle real-time, high-load tasks that are difficult to move CPU cores. I can't.
  • performance degradation occurs due to the overhead of core movement, the scheduler does not take this overhead into account.
  • the scheduler knows the location of the CPU core in advance, it does not specify how to know the location of the physical core. Therefore, if the processor provided by the vendor does not specify the location of the physical core, it will be difficult to build a scheduler.
  • the thermal distance estimation module 13 Pre-execution of the thermal distance estimation module 13
  • the thermal distance between physical cores or the thermal distance between logical cores estimated by the thermal distance estimation module 13 is basically the same value on the same device.
  • the thermal distance estimation module 13 can be executed to estimate the thermal distance, and this information can be saved in the OS image. Thereby, it is not necessary to operate the thermal distance estimation module 13 when starting up the information processing system 1, so that the overhead due to module execution can be reduced.
  • Containerization of the CPU control module 14 By containerizing each module 13 to 15 (container-type virtualization) and linking with existing ecosystems such as Kubernetes (registered trademark) and Docker (registered trademark), the module load distribution and more flexible thermal management.
  • the CPU control module 14 must cooperate with the temperature monitoring module 15 to control tasks while constantly monitoring the CPU status, so the CPU control module 14 itself may become a high-load task and become a bottleneck for performance deterioration. be.
  • this problem can be solved to some extent by preparing a module for each CPU and distributing the load. Furthermore, by using containers to link modules, it is possible to more easily control modules according to the system load.
  • CPU control module with built-in OS scheduler 14 Instead of operating the CPU control module 14 as a user process, it may be integrated into the OS scheduler as one of the load balancing functions of the OS 12 scheduler. This allows a new thermally aware scheduler to be constructed.
  • in-vehicle systems Unlike general systems that operate at a constant indoor temperature, in-vehicle systems must operate even under the hot summer sun. As a result, the heat of the CPU rises more easily than that of a typical system, making the CPU more likely to malfunction. Therefore, by applying this technology, it is possible to suppress the heat increase in the CPU caused by high-load tasks, increase the MTBF (mean time between failures), and lower the failure rate.
  • MTBF mean time between failures
  • Autonomous Robotics needs to process real-time and CPU-intensive tasks such as sensing data processing, object recognition, and AI processing. When these processes are processed on the edge device side, the temperature of the CPU increases, which may trigger system thermal throttling and lower the CPU operating frequency. In this case, the performance of tasks running on that CPU core deteriorates, making it impossible to complete the requested processing within the expected time. Therefore, by applying this technology, it is possible to keep the system running while suppressing the temperature rise of the CPU and avoiding performance deterioration. Furthermore, small robots may not have enough space to install cooling equipment. Even in such cases, by applying this technology, efficient thermal management can be achieved through software control without relying on cooling devices.
  • processors can be applied to any processor that processes data and instructions.
  • processors to which this technology can be applied include GPUs (Graphics Processing Units) and LPGAs (Laser Programmable Gate Arrays).
  • the series of processes described above can be executed by hardware or software.
  • the programs that make up the software are installed on the computer.
  • the computer includes a computer built into dedicated hardware and, for example, a general-purpose personal computer that can execute various functions by installing various programs.
  • FIG. 10 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processes using a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 205 is further connected to the bus 204.
  • An input section 206 , an output section 207 , a storage section 208 , a communication section 209 , and a drive 210 are connected to the input/output interface 205 .
  • the input unit 206 consists of a keyboard, mouse, microphone, etc.
  • the output unit 207 includes a display, a speaker, and the like.
  • the storage unit 208 includes a hard disk, nonvolatile memory, and the like.
  • the communication unit 209 includes a network interface and the like.
  • the drive 210 drives a removable medium 211 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 201 executes the above-described series by, for example, loading a program stored in the storage unit 208 into the RAM 203 and executing it via the input/output interface 205 and the bus 204. processing is performed.
  • a program executed by the computer (CPU 201) can be provided by being recorded on a removable medium 211 such as a package medium, for example. Additionally, programs may be provided via wired or wireless transmission media, such as local area networks, the Internet, and digital satellite broadcasts.
  • the program can be installed in the storage unit 208 via the input/output interface 205 by installing the removable medium 211 into the drive 210. Further, the program can be received by the communication unit 209 via a wired or wireless transmission medium and installed in the storage unit 208. Other programs can be installed in the ROM 202 or the storage unit 208 in advance.
  • the program executed by the computer may be a program in which processing is performed chronologically in accordance with the order described in this specification, in parallel, or at necessary timing such as when a call is made. It may also be a program that performs processing.
  • the processing that a computer performs according to a program does not necessarily have to be performed chronologically in the order described as a flowchart. That is, the processing that a computer performs according to a program includes processing that is performed in parallel or individually (for example, parallel processing or processing using objects).
  • program may be processed by one computer (processor) or may be processed in a distributed manner by multiple computers. Furthermore, the program may be transferred to a remote computer and executed.
  • a system refers to a collection of multiple components (devices, modules (components), etc.), regardless of whether all the components are located in the same casing. Therefore, multiple devices housed in separate casings and connected via a network, and a single device with multiple modules housed in one casing are both systems. .
  • the configuration described as one device (or processing section) may be divided and configured as a plurality of devices (or processing sections).
  • the configurations described above as a plurality of devices (or processing units) may be configured as one device (or processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) as long as the configuration and operation of the entire system are substantially the same. .
  • the present technology can take a cloud computing configuration in which one function is shared and jointly processed by multiple devices via a network.
  • the above-mentioned program can be executed on any device. In that case, it is only necessary that the device has the necessary functions (functional blocks, etc.) and can obtain the necessary information.
  • each step described in the above flowchart can be executed by one device or can be shared and executed by multiple devices.
  • the multiple processes included in that one step can be executed by one device or can be shared and executed by multiple devices.
  • multiple processes included in one step can be executed as multiple steps.
  • processes described as multiple steps can also be executed together as one step.
  • the processing of the steps described in the program may be executed in chronological order according to the order described in this specification, in parallel, or in a manner in which calls are made. It may also be configured to be executed individually at necessary timings such as at certain times. In other words, the processing of each step may be executed in a different order from the order described above, unless a contradiction occurs. Furthermore, the processing of the step of writing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
  • the present technology can also have the following configuration.
  • (1) Based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores that the processor has, among the plurality of cores, a high temperature core whose temperature is higher than a threshold value is operating. or a control unit that moves a task running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core to at least another core different from the high-temperature core. Processing equipment.
  • (2) The information processing device according to (1), wherein the control unit selects, among the plurality of cores, a core whose thermal distance is farther than a threshold value from the high-temperature core as the other core.
  • thermal distance estimation unit that estimates the thermal distance based on the temperature of each of the plurality of cores when a task is executed on each of the plurality of cores.
  • the plurality of cores are a plurality of logical cores
  • the thermal distance estimating unit acquires, based on the temperature, correspondence relationship information indicating the physical core to which each of the plurality of logical cores is associated, among the plurality of physical cores that the processor has.
  • the control unit moves the task to the source high-temperature core or the peripheral core.
  • the information processing device according to any one of (1) to (8) above.
  • the control unit moves the task using a core of the same processor as the processor having the high-temperature core as the other core.
  • (11) The information processing device according to any one of (1) to (9), wherein the control unit moves the task by using a core of a processor different from the processor having the high-temperature core as the other core.
  • the control unit of the information processing device has a control unit that determines which of the plurality of cores is selected based on the thermal distance between the cores corresponding to the degree of influence of temperature on other cores on each of the plurality of cores of the processor. , a task running in a high-temperature core whose temperature is higher than a threshold value, or a task running in a peripheral core existing in the thermal distance that exerts a temperature influence on the high-temperature core, at least the high-temperature core. An information processing method that moves the information to another core that is different from the core.
  • a high temperature core whose temperature is above a threshold value is selected.
  • a control unit that moves an operating task, or a task that is operating in a peripheral core existing at a thermal distance that exerts a temperature influence on the high-temperature core, to at least another core different from the high-temperature core.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

The present technology relates to an information processing device, an information processing method, and a program that make it possible to generally prevent, by means of software control, an increase in CPU core temperature, while suppressing a performance degradation, independent of specific heat characteristics for each type of processor. On the basis of an inter-core thermal distance corresponding to the degree of impact of temperature on another core for each of a plurality of cores included in a processor, an in-process task in a high-temperature core, i.e. a core that is at a temperature of a threshold value or greater, among the plurality of cores, or an in-process task in a peripheral core present at a thermal distance which would impact the temperature of the high-temperature core is moved to another core that is at least different from the high-temperature core.

Description

情報処理装置、情報処理方法、及び、プログラムInformation processing device, information processing method, and program
 本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、プロセッサの種類ごとの固有の熱特性に依存することなく、性能劣化を抑えつつCPUコアが高温度になることをソフトウエア制御により汎用的に防ぐようにした情報処理装置、情報処理方法、及び、プログラムに関する。 This technology relates to information processing devices, information processing methods, and programs.In particular, this technology is designed to prevent CPU cores from reaching high temperatures while suppressing performance deterioration, without relying on the unique thermal characteristics of each type of processor. The present invention relates to an information processing device, an information processing method, and a program that provide general-purpose protection through control.
 特許文献1には、CPUの各コアに関する熱勾配(熱伝導率)、ダイ上におけるCPUコアの位置、各コアに関する最大クロック周波数、及び、各コアについて電圧レギュレータ効率等のパラメータを使用し、タスクを最適なコアへスケジューリングする技術が開示されている。 Patent Document 1 uses parameters such as the thermal gradient (thermal conductivity) for each core of the CPU, the position of the CPU core on the die, the maximum clock frequency for each core, and the voltage regulator efficiency for each core, and A technique has been disclosed for scheduling the data to the optimal core.
特許第6337121号公報Patent No. 6337121
 特許文献1では、プロセッサの種類ごとに固有の熱特性を把握してCPUの熱制御に反映させる必要があり、汎用性に欠ける。 In Patent Document 1, it is necessary to understand the unique thermal characteristics of each type of processor and reflect them in the thermal control of the CPU, which lacks versatility.
 本技術はこのような状況に鑑みてなされたものであり、プロセッサの種類ごとの固有の熱特性に依存することなく、性能劣化を抑えつつCPUコアが高温度になることをソフトウエア制御により汎用的に防ぐようにする。 This technology was created in view of this situation, and uses software control to universally control high temperatures in the CPU core while suppressing performance degradation, without relying on the unique thermal characteristics of each type of processor. Try to prevent it from happening.
 本技術の情報処理装置、又は、プログラムは、プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる制御部を有する情報処理装置、又は、そのような情報処理装置として、コンピュータを機能させるためのプログラムである。 The information processing device or program of the present technology determines, among the plurality of cores of the processor, based on the thermal distance between the cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores of the processor. A task running in a high-temperature core whose temperature is higher than a threshold value, or a task running in a peripheral core existing in the thermal distance that exerts a temperature influence on the high-temperature core, is at least connected to the high-temperature core. This is an information processing device that has a control unit that moves to a different core, or a program that causes a computer to function as such an information processing device.
 本技術の情報処理方法は、制御部を有する情報処理装置の前記制御部が、プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる情報処理方法である。 In the information processing method of the present technology, the control unit of an information processing device having a control unit calculates a thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores included in the processor. Among the plurality of cores, a task is running in a high-temperature core whose temperature is higher than a threshold value, or a task is running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core. This is an information processing method for moving at least a task to another core different from the high-temperature core.
 本技術においては、プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクが少なくとも前記高温度コアと異なる他のコアへ移動される。 In this technology, based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores of the processor, among the plurality of cores, the A task running in the high-temperature core or a task running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core is moved to at least another core different from the high-temperature core. Ru.
IoTシステムの例示した図である。1 is a diagram illustrating an example of an IoT system. 本技術が適用された情報処理システムの構成例を示したブロック図である。1 is a block diagram showing a configuration example of an information processing system to which the present technology is applied. 物理コアと論理コアとの説明に使用した図である。FIG. 3 is a diagram used to explain a physical core and a logical core. 熱的距離推定処理の概要を説明する図である。It is a figure explaining the outline of thermal distance estimation processing. 熱的距離推定モジュールが行う熱的距離推定処理の手順例を一般化して示したフローチャートである。12 is a flowchart illustrating a generalized procedure example of a thermal distance estimation process performed by a thermal distance estimation module. シングルプロセッサの場合のCPU制御モジュールが行うタスク移動制御の第1形態を説明する図である。FIG. 2 is a diagram illustrating a first form of task movement control performed by a CPU control module in the case of a single processor. マルチプロセッサの場合のCPU制御モジュールが行うタスク移動制御の第2形態を説明する図である。FIG. 7 is a diagram illustrating a second form of task movement control performed by a CPU control module in the case of a multiprocessor. シングルプロセッサ又はマルチプロセッサの場合のCPU制御モジュールが行うタスク移動制御の第3形態を説明する図である。FIG. 7 is a diagram illustrating a third form of task movement control performed by a CPU control module in the case of a single processor or multiprocessor. 図6乃至図8のタスク移動制御の第1形態乃至第3形態を用いた手順例を示したフローチャートである。9 is a flowchart showing an example of a procedure using the first to third forms of task movement control shown in FIGS. 6 to 8; FIG. 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。1 is a block diagram showing a configuration example of an embodiment of a computer to which the present technology is applied.
 以下、図面を参照しながら本技術の実施の形態について説明する。 Hereinafter, embodiments of the present technology will be described with reference to the drawings.
<本技術の背景>
 図1のように、パーソナルコンピュータ、スマートフォン、センサ、自動車、カメラ、ロボット等のインターネットに接続可能な様々なIoT(Internet of Things)端末(エッジデバイス)で収集されたデータをクラウドに送信し、クラウドで分析等のデータ処理を行うIoTシステムが知られている。このようなIoTシステムに対して、IoT端末などのデバイスやその近くに設置されたサーバでデータ処理・分析を行うエッジコンピューティングが普及している。エッジコンピューティングでは、クラウドにデータを送らずにエッジ側で計算処理を行うため、リアルタイム性が高く、負荷が分散されることで通信の遅延が起こりにくいという特徴がある。また、軽量・小型・高性能なシングルボードコンピュータの登場により、エッジコンピューティングは様々なユースケースに適用可能となっている。エッジコンピューティングの代表的な事例として、自律型ロボティクスがある。ロボット自身が判断して行動する自律型ロボティクスでは、周囲の状況をセンシングし、リアルタイムでデータ処理を行う必要がある。この自律型ロボティクスにエッジコンピューティングを適用することで、リアルタイム性が要求されるタスクをロボット内のデバイスで遅延なく処理することが可能となる。
<Background of this technology>
As shown in Figure 1, data collected by various IoT (Internet of Things) terminals (edge devices) that can be connected to the Internet, such as personal computers, smartphones, sensors, cars, cameras, and robots, is sent to the cloud. IoT systems that perform data processing such as analysis are known. For such IoT systems, edge computing, which processes and analyzes data using devices such as IoT terminals and servers installed near them, is becoming popular. Edge computing performs calculations on the edge side without sending data to the cloud, so it is characterized by high real-time performance and by dispersing the load, communication delays are less likely to occur. Additionally, with the advent of lightweight, compact, and high-performance single-board computers, edge computing has become applicable to a variety of use cases. Autonomous robotics is a typical example of edge computing. Autonomous robotics, in which robots make their own decisions and act, requires sensing the surrounding situation and processing data in real time. By applying edge computing to autonomous robotics, it becomes possible for devices within the robot to process tasks that require real-time performance without delay.
 エッジコンピューティングの普及に伴い、デバイスの熱管理の重要性が増している。物体認識・行動学習・データ暗号化等の計算量の多い処理では、CPUに負荷がかかるためCPUの温度が上昇し発熱する。半導体デバイスであるCPUは温度に敏感であるため、CPUの温度上昇は動作効率の低下・誤作動・故障へとつながる。CPUの発熱を抑える機器としてヒートシンクやファン等の冷却装置があるが、近年のデバイスの小型化に伴い、十分な冷却装置を設置するスペースを確保できない場合がある。また、十分な冷却装置を備えた汎用サーバでも、高負荷の処理が断続的に続き発熱が頻繁に発生する場合は、CPUの故障率は大きくなる。そのため、冷却装置による熱対策だけでなく、ソフトウエア制御と併用して発熱を抑えることが重要である。 With the spread of edge computing, the importance of device thermal management is increasing. Processing that requires a large amount of calculation, such as object recognition, behavioral learning, and data encryption, places a load on the CPU, causing the CPU's temperature to rise and generate heat. CPUs, which are semiconductor devices, are sensitive to temperature, so increases in CPU temperature can lead to reduced operating efficiency, malfunctions, and failures. Cooling devices such as heat sinks and fans are used to suppress the heat generated by CPUs, but as devices have become smaller in recent years, it may not be possible to secure enough space to install a cooling device. Furthermore, even if a general-purpose server is equipped with a sufficient cooling system, the CPU failure rate will be high if high-load processing continues intermittently and heat generation occurs frequently. Therefore, it is important to suppress heat generation not only by using a cooling device but also by using software control.
 ソフトウエアによる代表的な熱軽減手法として、CPUfreq Governorsがある。CPUfreq GovernorsはCPUの温度に応じてCPUの動作周波数を動的に変更し、システムの電力消費と発熱を低減する手法である。しかし、動作周波数を落とすことで電力消費を一時的に抑えられる一方、そのCPUコアで動作している全てのタスクの性能が劣化する危険性がある。この性能劣化は、リアルタイム性が要求されるタスクを実行するシステムでは致命的な障害となり得る。 CPUfreq Governors is a typical software-based heat reduction method. CPUfreq Governors is a method that dynamically changes the CPU operating frequency according to the CPU temperature, reducing system power consumption and heat generation. However, while lowering the operating frequency can temporarily reduce power consumption, there is a risk that the performance of all tasks running on that CPU core will deteriorate. This performance deterioration can be a fatal failure in systems that execute tasks that require real-time performance.
 本技術では、システムの性能劣化を抑えつつCPUの発熱を抑える手法を提案する。あるCPUコアが高温度状態になった場合、そのCPUコアで動作しているタスク(プロセス又はスレッド)を、高温度状態のCPUコアから熱的距離が大きくかつ温度が低いCPUコアに移動させ、高温度状態のCPUコアがそれ以上温度上昇しないよう制御する。本明細書で使用する熱的距離という用語は、CPUのコア間の熱伝播の影響度を示すものである。この熱的距離が大きいほど熱は伝播しにくく、反対に熱的距離が小さいほど熱は伝播しやすい。 This technology proposes a method to suppress CPU heat generation while suppressing system performance deterioration. When a certain CPU core becomes high temperature, the task (process or thread) running on that CPU core is moved from the high temperature CPU core to a CPU core with a large thermal distance and low temperature. Controls the temperature of the high-temperature CPU core so that it does not rise any further. The term thermal distance as used herein refers to the degree of influence of heat propagation between cores of a CPU. The larger the thermal distance is, the harder it is for heat to propagate, and conversely, the smaller the thermal distance is, the easier it is for heat to propagate.
<<本実施の形態に係る情報処理システム>>
 図2は、本技術が適用された情報処理システム1の構成例を示したブロック図である。図2において、情報処理システム1は、エッジコンピューティングで使用される任意の種類のエッジデバイスであり、ハードウエアとしてのCPU11-1及び11-2と、ソフトウエアとして実行されるプログラムを含むオペレーティングシステム12(OS12という)、物理コア熱的距離推定モジュール13(以下、熱的距離推定モジュール13という)、CPU制御モジュール14、及び、温度監視モジュール15とを有する。CPU11-1及び11-2は、2個(マルチプロセッサ)の場合を例示しているが、1個(シングルプロセッサ)であってもよいし、3個以上であってもよい。シングルプロセッサの場合や特定のCPUに限定しない場合には、CPUをCPU11と称し、マルチプロセッサの場合の複数のCPUを区別する場合にはCPU1、CPU2、・・・のように、CPUの文字の後にCPU番号を付して表すこととする。なお、情報処理システム1はエッジデバイスに限定されない。
<<Information processing system according to this embodiment>>
FIG. 2 is a block diagram showing a configuration example of an information processing system 1 to which the present technology is applied. In FIG. 2, the information processing system 1 is any type of edge device used in edge computing, and includes CPUs 11-1 and 11-2 as hardware and an operating system including programs executed as software. 12 (referred to as OS 12), a physical core thermal distance estimation module 13 (hereinafter referred to as thermal distance estimation module 13), a CPU control module 14, and a temperature monitoring module 15. Although the case where there are two CPUs 11-1 and 11-2 (multiprocessor) is illustrated, there may be one (single processor) or three or more CPUs. In the case of a single processor or when not limited to a specific CPU, the CPU is referred to as CPU11, and in the case of a multiprocessor to distinguish between multiple CPUs, the letters of the CPU are referred to as CPU1, CPU2, etc. It will be expressed by adding the CPU number afterwards. Note that the information processing system 1 is not limited to an edge device.
 CPU11は、ハードウエアとして不図示の記憶部に記憶されているプログラムを、不図示のRAMにロードして実行することにより、エッジデバイスとして必要な処理を実行する。CPU11は、1つのCPUパッケージ内に複数の個別の処理ユニット(CPUコア、又は、単にコアという)を有するマルチコアである。1つのCPU11が有する複数のコアを区別する場合には、コア1、コア2、・・・のようにコアの文字の後にコア番号を付して表すこととする。 The CPU 11 executes necessary processing as an edge device by loading a program stored in a storage unit (not shown) as hardware into a RAM (not shown) and executing it. The CPU 11 is a multi-core having a plurality of individual processing units (CPU cores or simply referred to as cores) within one CPU package. When distinguishing between the plurality of cores that one CPU 11 has, they are expressed by adding a core number after the letter of the core, such as core 1, core 2, . . . .
 OS12は、タスク管理、ファイル管理、記憶管理、入出力管理等のハードウエア資源の管理や、ユーザインタフェースの提供などを行う。熱的距離推定モジュール13、CPU制御モジュール14、及び、温度監視モジュール15は、例えば、OS12のカーネルの機能を拡張するプログラムであり、OS12上でユーザプロセスとして動作し、OS12のスケジューラとは独立して動作する。熱的距離推定モジュール13は、CPU11が有する複数のコアの熱的距離の推定を行う。コアの熱的距離については後述する。CPU制御モジュール14は、タスクを処理するコアの割当て、及び、タスクのブースト処理を行う。温度監視モジュール15は、CPU11の各コアの温度をリアルタイムで監視する。 The OS 12 manages hardware resources such as task management, file management, storage management, and input/output management, and provides a user interface. The thermal distance estimation module 13, CPU control module 14, and temperature monitoring module 15 are, for example, programs that extend the functionality of the OS 12 kernel, run as user processes on the OS 12, and are independent of the OS 12 scheduler. It works. The thermal distance estimating module 13 estimates the thermal distance of a plurality of cores included in the CPU 11 . The thermal distance of the core will be described later. The CPU control module 14 allocates cores for processing tasks and performs task boost processing. The temperature monitoring module 15 monitors the temperature of each core of the CPU 11 in real time.
(情報処理システム1の全体処理の流れ)
 図2の情報処理システム1におけるCPU11の熱管理処理の全体の流れについて説明する。情報処理システム1は、高温度のコア又はその近隣のコアで動作しているタスクを、高温度のコアとの熱伝播の影響度(温度の影響度)が小さいコアに移動させる。これによって、CPUfreq Governorsのクロック周波数制御が作動する前に、高温度のコアの温度を低下させて熱による性能劣化(処理速度の低下等)を防止する。
(Flow of overall processing of information processing system 1)
The overall flow of heat management processing of the CPU 11 in the information processing system 1 of FIG. 2 will be described. The information processing system 1 moves a task running on a high-temperature core or a core adjacent to the high-temperature core to a core that is less influenced by heat propagation (temperature influence) with the high-temperature core. This reduces the temperature of the high-temperature core before the clock frequency control of CPUfreq Governors is activated, thereby preventing performance deterioration due to heat (such as a decrease in processing speed).
 ここで、CPU11の各コア間での熱伝搬の影響度の大きさを熱的距離ということとする。即ち、1つのCPU11が有する複数のコアのそれぞれに対して、温度の影響を受けやすい他のコア(温度の影響を及ぼすコア)ほど、熱的距離が小さい(近い)とする。例えば、ある1つのコアを基準コアとして着目すると、基準コアに対して物理的な距離が近いコアは一般的に基準コアに対して熱的距離が近いと言える。ただし、熱的距離は、物理的な距離のみが考慮されたものではなく、基準コアの動作に伴ってCPU11の周辺回路等の温度が上昇し、その影響によりコアの温度の上昇する場合等も考慮される。したがって、任意の2個のコアを第1コア及び第2コアとすると、第1コアを基準コアとした場合に、第2コアが第1コアに対して熱的距離が最も近いコアであるときでも、第2コアを基準コアとした場合に、第1コアが第2コアに対して熱的距離が最も近いコアになるとは限らない。なお、熱的距離が近い又は遠いとは熱的距離が所定の閾値より近い(小さい)又は遠い(大きい)ことを表し、その閾値とは、熱的距離を推定する際における物理量(温度等)により設定された閾値を熱的距離に変換した場合の距離を表すこととする。 Here, the degree of influence of heat propagation between each core of the CPU 11 is referred to as the thermal distance. That is, it is assumed that the thermal distance from each of the plurality of cores of one CPU 11 is smaller (closer) to other cores that are more easily affected by temperature (cores that are affected by temperature). For example, when focusing on one core as a reference core, it can be said that a core that is physically close to the reference core is generally close in thermal distance to the reference core. However, the thermal distance does not take into account only the physical distance; the temperature of the peripheral circuits of the CPU 11 rises due to the operation of the reference core, and the temperature of the core may rise due to this effect. be considered. Therefore, if two arbitrary cores are the first core and the second core, and the first core is the reference core, the second core is the core whose thermal distance is the closest to the first core. However, when the second core is used as the reference core, the first core does not necessarily have the closest thermal distance to the second core. Note that the term "thermal distance is close or far" means that the thermal distance is closer (smaller) or farther (larger) than a predetermined threshold value, and the threshold value is the physical quantity (temperature, etc.) used when estimating the thermal distance. Let us express the distance when the threshold value set by is converted into a thermal distance.
 また、OS12が認識するCPUコアは、図3に示すように物理的に実在しているCPUコア(物理コアという)ではなく、物理コアに対応付けられる抽象化された論理的なコア(論理コアという)である。図3では、1個のCPU11が物理コア番号1乃至6の6個の物理コア1乃至6を有し、OS12が、それらの物理コア1乃至6を論理コア番号1乃至12の12個の論理コア1乃至12として認識してタスクの割当て等を制御するハイパースレッディング構成が例示されている。CPU制御モジュール14が熱的距離を考慮してタスクをコア間で移動させる際には、複数の論理コアのそれぞれに対する他の論理コアの熱的距離を事前に把握しておく必要がある。2つの論理コアの間の熱的距離は、それら2個の論理コアが対応付けられた2個の物理コアの間の熱的距離である。なお、複数の論理コアが、同一の物理コアに対して対応付けられることもあり、その場合にはそれらの論理コアの間の熱的距離は0に相当する。以下、物理コア間の熱的距離と論理コア間の熱的距離とを区別して言う場合には、それぞれ物理コア間熱的距離、論理コア間熱的距離ということとする。 In addition, as shown in Figure 3, the CPU core recognized by the OS12 is not a physically existing CPU core (called a physical core), but an abstracted logical core (logical core) that is associated with a physical core. ). In FIG. 3, one CPU 11 has six physical cores 1 to 6 with physical core numbers 1 to 6, and the OS 12 divides these physical cores 1 to 6 into 12 logical cores with logical core numbers 1 to 12. A hyper-threading configuration is illustrated in which the cores are recognized as cores 1 to 12 and task assignment etc. are controlled. When the CPU control module 14 moves tasks between cores in consideration of thermal distance, it is necessary to know in advance the thermal distance of each of the plurality of logical cores to other logical cores. The thermal distance between two logical cores is the thermal distance between two physical cores to which these two logical cores are associated. Note that a plurality of logical cores may be associated with the same physical core, and in that case, the thermal distance between those logical cores corresponds to 0. Hereinafter, when the thermal distance between physical cores and the thermal distance between logical cores are to be distinguished, they will be referred to as the thermal distance between physical cores and the thermal distance between logical cores, respectively.
 情報処理システム1におけるCPU11の熱管理処理の全体の手順としては、大きく分けて以下の処理が含まれる。 The overall procedure for heat management processing of the CPU 11 in the information processing system 1 can be broadly divided into the following processes.
・処理1.熱的距離推定処理
 処理1では、情報処理システム1の起動時等において熱的距離推定モジュール13が後述のCPUコア間の熱的推定処理を実施することで、各論理コア間の論理コア間熱的距離を推定し、後述の論理コア熱的距離推定情報等を作成する。
Processing 1. Thermal Distance Estimation Process In Process 1, the thermal distance estimation module 13 performs thermal estimation processing between CPU cores, which will be described later, at the time of starting the information processing system 1, etc., to estimate the heat between each logical core. The target distance is estimated, and logical core thermal distance estimation information, etc., which will be described later, is created.
・処理2.タスク移動制御
 処理2では、情報処理システム1の起動後において、CPU制御モジュール14が、温度監視モジュール15からの各物理コアの温度情報と論理コア熱的距離推定情報とに基づいて、タスク移動制御を行う。CPU制御モジュール14のタスク移動制御では、温度監視モジュール15からの各物理コアの温度情報に基づいて所定の閾値以上の高温度に上昇した物理コアが検出される。高温度に上昇した物理コアが検出された場合、一例として、その物理コアに対応付けられた論理コア(高温度の論理コアという)で動作しているタスクが、その高温度の論理コアに対して論理コア間熱的距離が遠く(大きく)、かつ、低温度の論理コア(例えば最も低温度の論理コア)へ移動される。タスクの移動(タスク移動)とは、タスクを実行する論理コア(又は物理コア)の変更を意味する。また、物理コアの温度は、物理コアに対応付けられた論理コアの温度であるとする。また、高温度の論理コアに対して論理コア間熱的距離が遠い論理コアを特定する際に、熱的距離推定モジュール13により予め作成された論理コア熱的距離推定情報が用いられる。このようなタスク移動制御により、CPUコアの熱による性能劣化(処理速度の低下等)が防止される。また、タスク移動制御では、タスク移動により生じるオーバヘッドによる性能劣化を抑止するためタスクのブースト等が実施される。
・Processing 2. In task movement control process 2, after the information processing system 1 is started, the CPU control module 14 performs task movement control based on the temperature information of each physical core from the temperature monitoring module 15 and the logical core thermal distance estimation information. I do. In the task movement control of the CPU control module 14, a physical core whose temperature has risen to a high temperature equal to or higher than a predetermined threshold is detected based on the temperature information of each physical core from the temperature monitoring module 15. For example, if a physical core that has reached a high temperature is detected, a task running on a logical core associated with that physical core (referred to as a high-temperature logical core) may The logical core is moved to a logical core with a long (large) thermal distance between logical cores and a low temperature (for example, the lowest temperature logical core). Moving a task (task move) means changing the logical core (or physical core) that executes the task. Further, it is assumed that the temperature of the physical core is the temperature of the logical core associated with the physical core. Further, when specifying a logical core having a long inter-logical core thermal distance with respect to a high-temperature logical core, the logical core thermal distance estimation information created in advance by the thermal distance estimation module 13 is used. Such task movement control prevents performance deterioration (decreased processing speed, etc.) due to heat in the CPU core. Furthermore, in task movement control, task boosting or the like is performed to suppress performance deterioration due to overhead caused by task movement.
<処理1.熱的距離推定処理>
 図4は、熱的距離推定処理の概要を説明する図である。なお、図4には、図3のハイパースレッディング構成が例示されており、その構成における熱的距離推定処理について説明する。まず、熱的距離推定モジュール13は、高負荷タスクを一定時間論理コア1で動作させる。このとき、温度監視モジュール15は、物理コア1乃至6のそれぞれの温度を監視(検出)し、検出した温度を熱的距離推定モジュール13に供給する。熱的距離推定モジュール13は、温度監視モジュール15からの各物理コア1乃至6の温度に基づいて、物理コア1乃至6のそれぞれの温度の上昇を監視する。なお、物理コア1乃至6の温度上昇の監視に関する処理は、温度監視モジュール15が行うようにしてもよい。監視の結果、例えば、物理コア4が最も温度上昇していることが検出されたとする。この結果から、熱的距離推定モジュール13は論理コア1が物理コア4にマッピング(対応付け)されているという情報(論理コア-物理コア対応関係情報という)を取得することができる。続いて、熱的距離推定モジュール13は、物理コア4の温度上昇に伴い、物理コア1乃至6(物理コア4を除く)うちのいずれに熱伝播しているかを検出する。即ち、物理コア4よりも上昇温度が小さいが、閾値以上の温度上昇が発生した物理コアを検出する。その結果、物理コア1と物理コア5で閾値以上の温度上昇が発生していることが検出されたとする。熱的距離推定モジュール13は、その検出結果から物理コア4を基準コアとして、物理コア4に対して、物理コア1及び5の熱的距離が近いと推定する。熱的距離推定モジュール13は、その推定結果を、物理コア間熱的距離を推定した物理コア熱的距離推定情報として記憶する。なお、基準コアに対して物理コア間熱的距離が近い物理コア以外は熱的距離が遠いと推定する。ただし、物理コア間熱的距離の評価は、近い(小さい)、又は、遠い(大きい)の場合に限らない。例えば、熱的距離推定モジュール13は、上述の物理コアの上昇温度の大きさを、複数の異なる閾値を用いて複数の階級に区分し、検出された上昇温度の大きさがいずれの階級に属するかを検出する。例えば、上昇温度が大きい程、階級(階級1、2、3、・・・)が大きいこととする。そして、熱的距離推定モジュール13は、上昇温度が大きい階級に属する物理コアほど、最大の階級の物理コアに対して物理コア間熱的距離が近いこととし、その階級を物理コア間熱的距離の近さを表す階級とする。例えば、熱的距離が近い程、階級が大きくなることとする。このように、物理コア間熱的距離の大きさが所望の数の階級等で評価される場合であってもよい。また、熱的距離推定モジュール13は、物理コア間熱的距離が最も近い、最も遠い、又は、それら以外かを評価する場合であってもよい。
<Processing 1. Thermal distance estimation process>
FIG. 4 is a diagram illustrating an overview of the thermal distance estimation process. Note that FIG. 4 illustrates the hyper-threading configuration of FIG. 3, and a thermal distance estimation process in that configuration will be described. First, the thermal distance estimation module 13 operates a high-load task on the logic core 1 for a certain period of time. At this time, the temperature monitoring module 15 monitors (detects) the temperature of each of the physical cores 1 to 6, and supplies the detected temperature to the thermal distance estimation module 13. The thermal distance estimation module 13 monitors the rise in temperature of each of the physical cores 1 to 6 based on the temperature of each physical core 1 to 6 from the temperature monitoring module 15. Note that the process related to monitoring the temperature rise of the physical cores 1 to 6 may be performed by the temperature monitoring module 15. As a result of monitoring, it is assumed that, for example, it is detected that the temperature of the physical core 4 is increasing the most. From this result, the thermal distance estimation module 13 can obtain information that the logical core 1 is mapped (corresponding) to the physical core 4 (referred to as logical core-physical core correspondence relationship information). Subsequently, the thermal distance estimation module 13 detects which of the physical cores 1 to 6 (excluding physical core 4) the heat is propagating to as the temperature of the physical core 4 increases. That is, a physical core whose temperature has increased less than that of physical core 4 but whose temperature has increased by a threshold value or more is detected. As a result, it is assumed that it is detected that a temperature increase exceeding a threshold value has occurred in physical core 1 and physical core 5. Based on the detection result, the thermal distance estimating module 13 estimates that the thermal distances of physical cores 1 and 5 are close to physical core 4, using physical core 4 as a reference core. The thermal distance estimation module 13 stores the estimation result as physical core thermal distance estimation information that estimates the thermal distance between physical cores. Note that physical cores other than physical cores whose thermal distance between physical cores is close to the reference core are estimated to have long thermal distances. However, the evaluation of the thermal distance between physical cores is not limited to cases where the thermal distance is close (small) or far (large). For example, the thermal distance estimation module 13 classifies the magnitude of the temperature rise of the physical core into a plurality of classes using a plurality of different threshold values, and to which class the detected magnitude of the temperature rise belongs. Detect. For example, it is assumed that the higher the temperature rise, the higher the class (class 1, 2, 3, etc.). Then, the thermal distance estimating module 13 assumes that the physical core belonging to a class with a larger temperature increase has a closer physical core-to-physical core thermal distance to the physical core of the largest class, and determines that class as the physical core-to-physical core thermal distance. The class represents the proximity of For example, assume that the closer the thermal distance, the larger the class. In this way, the size of the thermal distance between physical cores may be evaluated using a desired number of classes. Further, the thermal distance estimating module 13 may evaluate whether the thermal distance between physical cores is the closest, the farthest, or something else.
 このようにして熱的距離推定モジュール13は、全ての論理コア1乃至12に対して順に高負荷タスクを一定時間動作させて、各物理コア1乃至6の上昇温度を検出し、その検出結果に基づいて、論理コア1乃至12のそれぞれが対応付けられた物理コアを示す論理コア-物理コア対応関係情報と、物理コア1乃至6のそれぞれを基準コアとして、基準コアに対する物理コア1乃至6のそれぞれの物理コア間熱的距離を推定した物理コア熱的距離推定情報とを取得する。そして、熱的距離推定モジュール13は、取得した論理コア-物理コア対応関係情報と物理コア熱的距離情報とに基づいて、論理コア1乃至12のそれぞれを基準コアとして、基準コアに対する論理コア1乃至12のそれぞれの論理コア間熱的距離を推定する。熱的距離推定モジュール13は、その推定結果を、論理コア熱的距離推定情報として、論理コア熱的距離推定情報を表したマッピング(距離マップ)を作成する。具体的には、論理コア1乃至12のそれぞれに対応付けられた物理コアの物理コア番号は論理コア-物理コア対応関係情報から取得することができる。基準コアとする論理コアに対する論理コア1乃至12のそれぞれの論理コア間熱的距離は、基準コアとする論理コアが対応付けられた物理コアに対する、論理コア1乃至12のそれぞれが対応付けられた物理コアの物理コア間熱的距離であり、物理コア熱的距離推定情報から得られる。従って、論理コア1乃至12のそれぞれを基準コアとしたときの基準コアに対する論理コア1乃至12のそれぞれの論理コア間熱的距離は、物理コア熱的距離推定情報から得ることができる。熱的距離推定モジュール13は、その情報、即ち、論理コア1乃至12のそれぞれに対する論理コア1乃至12のそれぞれの論理コア間熱的距離を表した距離マップを論理コア熱的距離推定情報として作成する。なお、以下において、作成された距離マップを論理コア熱的距離推定情報ともいうこととする。 In this way, the thermal distance estimation module 13 sequentially operates high-load tasks on all logical cores 1 to 12 for a certain period of time, detects the temperature rise of each physical core 1 to 6, and uses the detection results as Based on the logical core-physical core correspondence relationship information indicating the physical core to which each of the logical cores 1 to 12 is associated, and the relationship between the physical cores 1 to 6 relative to the reference core, with each of the physical cores 1 to 6 as a reference core. Physical core thermal distance estimation information that estimates the thermal distance between each physical core is acquired. Then, based on the acquired logical core-physical core correspondence relationship information and physical core thermal distance information, the thermal distance estimation module 13 sets each of the logical cores 1 to 12 as reference cores, and calculates the logical core 1 relative to the reference core. The thermal distance between each of the 12 logical cores is estimated. The thermal distance estimation module 13 uses the estimation result as logical core thermal distance estimation information to create a mapping (distance map) representing the logical core thermal distance estimation information. Specifically, the physical core numbers of the physical cores associated with each of the logical cores 1 to 12 can be obtained from the logical core-physical core correspondence information. The thermal distances between each of logical cores 1 to 12 with respect to the logical core serving as a reference core are such that each of logical cores 1 to 12 is associated with a physical core to which the logical core serving as a reference core is associated. This is the thermal distance between physical cores, and is obtained from the physical core thermal distance estimation information. Therefore, when each of the logical cores 1 to 12 is used as a reference core, the inter-logical core thermal distance of each of the logical cores 1 to 12 with respect to the reference core can be obtained from the physical core thermal distance estimation information. The thermal distance estimation module 13 creates the information, that is, a distance map representing the thermal distance between each of the logical cores 1 to 12 for each of the logical cores 1 to 12 as logical core thermal distance estimation information. do. Note that in the following, the created distance map will also be referred to as logical core thermal distance estimation information.
 図4の例では,論理コア-物理コア対応関係情報として、物理コア1に対しては、論理コア3及び7が対応付けられ、物理コア2に対しては、論理コア5及び6が対応付けられ、物理コア3に対しては、論理コア4及び9が対応付けられ、物理コア4に対しては、論理コア1及び2が対応付けられ、物理コア5に対しては、論理コア8及び10が対応付けられ、物理コア6に対しては、論理コア11及び12が対応付けられていることが得られた場合が示されている。このとき、物理コア4に対して物理コア1及び5の物理コア間熱的距離が近いという物理コア熱的距離推定情報からは、物理コア4に対して対応付けられている論理コア1及び2に対して、物理コア1及び5にそれぞれ対応付けられている論理コア3、7、8、及び、10の論理コア間熱的距離が近い(小さい)ことを表した論理コア熱的距離推定情報が作成される。また、論理コア熱的距離推定情報は、論理コア1及び2に対して、論理コア1,2、3、7、8、及び、10以外の論理コア4、5、6、9、11、及び、12の論理コア間熱的距離が遠い(大きい)ことを示す情報が含まれる。同様に、論理コア1及び2以外の論理コア3乃至12のそれぞれを基準コアとした場合の基準コアに対する論理コア1乃至12のそれぞれの論理コア間熱的距離が近いか遠いか等を表した論理コア熱的距離推定情報が作成される。なお、論理コア間熱的距離の評価について物理コア間熱的距離の評価と同様に、近い(小さい)、遠い(大きい)、又は、0(同一の物理コア)の場合に限らない。また、熱的距離推定モジュール13は、論理コア-物理コア対応関係情報と物理コア熱的距離推定情報とから論理コア熱的距離推定情報を最終的に作成する場合に限らず、論理コア-物理コア対応関係情報と物理コア熱的距離推定情報とを最終的に作成し、それらの情報から適宜、論理コア間温度距離が算出される場合であってもよい。即ち、熱的距離推定モジュール13は、物理コア熱的距離推定情報及び論理コア熱的距離推定情報のうちのいずれか一方の情報と、論理コア-物理コア対応関係情報とを作成する場合であってよい。 In the example in Figure 4, as the logical core-physical core correspondence relationship information, physical core 1 is associated with logical cores 3 and 7, and physical core 2 is associated with logical cores 5 and 6. Physical core 3 is associated with logical cores 4 and 9, physical core 4 is associated with logical cores 1 and 2, and physical core 5 is associated with logical cores 8 and 9. A case is shown in which it is found that physical core 6 is associated with logical cores 11 and 12. At this time, based on the physical core thermal distance estimation information that the thermal distance between physical cores 1 and 5 is close to physical core 4, it is determined that logical cores 1 and 5 are associated with physical core 4. , logical core thermal distance estimation information indicating that the thermal distances between logical cores of logical cores 3, 7, 8, and 10, which are respectively associated with physical cores 1 and 5, are close (small). is created. In addition, the logical core thermal distance estimation information is for logical cores 1 and 2, and for logical cores 4, 5, 6, 9, 11, and other than logical cores 1, 2, 3, 7, 8, and 10. , information indicating that the thermal distance between the 12 logical cores is long (large) is included. Similarly, when each of logical cores 3 to 12 other than logical cores 1 and 2 is used as a reference core, it indicates whether the thermal distance between each of logical cores 1 to 12 is close or far from the reference core. Logical core thermal distance estimation information is created. Note that, similarly to the evaluation of the thermal distance between physical cores, the evaluation of the thermal distance between logical cores is not limited to cases where it is close (small), far (large), or 0 (same physical core). Further, the thermal distance estimation module 13 is not limited to the case where logical core thermal distance estimation information is finally created from the logical core-physical core correspondence relationship information and the physical core thermal distance estimation information; The core correspondence information and the physical core thermal distance estimation information may be finally created, and the temperature distance between logical cores may be calculated as appropriate from these pieces of information. That is, the thermal distance estimation module 13 creates either one of the physical core thermal distance estimation information and the logical core thermal distance estimation information, and the logical core-physical core correspondence relationship information. It's okay.
<熱的距離推定処理の手順例>
 図5は、熱的距離推定モジュール13が行う熱的距離推定処理の手順例を一般化して示したフローチャートである。ステップS11では、熱的距離推定モジュール13は、高負荷タスクを論理コア番号iの論理コアiで動作させる。なお、論理コア番号iの初期値は1であるとする。処理はステップS11からステップS12に進む。ステップS12では、熱的距離推定モジュール13は、温度監視モジュール15から物理コアの温度情報を取得し、全ての物理コアの温度を監視する。処理はステップS12からステップS13に進む。ステップS13では、熱的距離推定モジュール13は、最も温度上昇した物理コアの物理コア番号と、論理コア番号iとを対応付ける。即ち、熱的距離推定モジュール13は、最も温度上昇した物理コアに対して論理コアiが対応付けられていることを検出する。処理はステップS13からステップS14に進む。ステップS14では、熱的距離推定モジュール13は、付随して温度上昇した物理コア(上昇温度が所定の閾値(第1閾値)以上の物理コア)の物理コア番号と、温度上昇が見られなかった物理コア(上昇温度が所定の閾値(第2閾値)以下の物理コア)の物理コア番号とを記憶する。処理はステップS14からステップS15に進む。ステップS15では、熱的距離推定モジュール13は、論理コア番号iが論理コアの総数である論理コア数である否かを判定する。
<Example of procedure for thermal distance estimation process>
FIG. 5 is a flowchart illustrating a generalized procedure example of the thermal distance estimation process performed by the thermal distance estimation module 13. In step S11, the thermal distance estimation module 13 operates the high-load task on the logical core i of the logical core number i. Note that the initial value of the logical core number i is 1. The process proceeds from step S11 to step S12. In step S12, the thermal distance estimation module 13 acquires temperature information of the physical core from the temperature monitoring module 15, and monitors the temperature of all physical cores. The process proceeds from step S12 to step S13. In step S13, the thermal distance estimation module 13 associates the physical core number of the physical core whose temperature has increased the most with the logical core number i. That is, the thermal distance estimation module 13 detects that the logical core i is associated with the physical core whose temperature has increased the most. The process proceeds from step S13 to step S14. In step S14, the thermal distance estimation module 13 calculates the physical core numbers of the physical cores whose temperature has increased accordingly (physical cores whose increased temperature is equal to or higher than a predetermined threshold (first threshold)), and the physical core numbers of the physical cores whose temperature has increased concomitantly (physical cores whose increased temperature is equal to or higher than a predetermined threshold (first threshold)), and the physical core numbers of the physical cores whose temperature has increased accordingly. A physical core number of a physical core (a physical core whose temperature increase is equal to or less than a predetermined threshold (second threshold)) is stored. The process proceeds from step S14 to step S15. In step S15, the thermal distance estimation module 13 determines whether the logical core number i is the number of logical cores, which is the total number of logical cores.
 ステップS15において、否定された場合には、論理コア番号iを1加えた値にインクリメントしてステップS11に戻り、処理はステップS11乃至ステップS15を繰り返す。ステップS15において、肯定された場合には、処理はステップS15からステップS16に進む。ステップS16では、熱的距離推定モジュール13は、ステップS13で検出された情報から得られる論理コア-物理コア対応関係情報と、ステップS14で記憶された情報から取得される物理コア熱的距離推定情報とに基づいて、全ての論理コア(論理コア番号)のそれぞれに対する全ての論理コア(論理コア番号)のそれぞれの論理コア間熱的距離を推定し、論理コア熱的距離推定情報を作成する。 If the answer is NO in step S15, the logical core number i is incremented by 1 and the process returns to step S11, and the process repeats steps S11 to S15. If the answer is yes in step S15, the process proceeds from step S15 to step S16. In step S16, the thermal distance estimation module 13 uses logical core-physical core correspondence relationship information obtained from the information detected in step S13 and physical core thermal distance estimation information obtained from the information stored in step S14. Based on this, the inter-logical core thermal distances of all logical cores (logical core numbers) are estimated for each of all logical cores (logical core numbers), and logical core thermal distance estimation information is created.
 以上のCPUコア間の熱的距離推定処理によれば、情報処理システム1の起動時等に熱的距離推定モジュール13が本処理を実施することで、ハードウエアがシングルプロセッサとマルチプロセッサのいずれであっても任意のCPU11における論理コア熱的距離推定情報(及び物理コア熱的距離推定情報)を取得することができる。また、CPUの周辺のハードウエア構成が変わり、周囲の回路による熱伝播の影響度が変化したとしても、情報処理システム1の起動時に熱的距離推定モジュール13が本処理を実施することで、システム構成に依存することなく、適正な論理コア熱的距離推定情報(及び物理コア熱的距離推定情報)物理コアの熱的距離を推定することができる。 According to the above thermal distance estimation process between CPU cores, the thermal distance estimation module 13 executes this process when the information processing system 1 is started, etc., so that whether the hardware is a single processor or a multiprocessor is determined. Even if there is, logical core thermal distance estimation information (and physical core thermal distance estimation information) for any CPU 11 can be acquired. Furthermore, even if the hardware configuration around the CPU changes and the degree of influence of heat propagation by the surrounding circuits changes, the thermal distance estimation module 13 performs this process when the information processing system 1 is started, so that the system The thermal distance of the physical core can be estimated using appropriate logical core thermal distance estimation information (and physical core thermal distance estimation information) without depending on the configuration.
<処理2.タスク移動制御>
 タスク移動制御の詳細な手法は、情報処理システム1のハードウエア構成(CPUアーキテクチャ)がシングルプロセッサ(及びマルチコア)の場合とマルチプロセッサ(及びマルチコア)の場合とで採用し得る手法が異なる。マルチプロセッサの場合には、シングルプロセッサの場合に採用し得るタスク移動制御の手法を採用することが可能であるが、シングルプロセッサの場合には、必ずしもマルチプロセッサの場合に採用し得るタスク移動制御の手法を採用することができない。したがって、以下のタスク移動制御の説明では、シングルプロセッサとマルチプロセッサのいずれでも採用し得るタスク移動制御の手法をシングルプロセッサの場合における図6のタスク移動制御の第1形態として説明し、マルチプロセッサでのみ採用し得るタスク移動制御の手法をマルチプロセッサの場合における図7のタスク移動制御の第2形態として説明する。
<Processing 2. Task movement control>
The detailed methods of task movement control that can be adopted differ depending on whether the hardware configuration (CPU architecture) of the information processing system 1 is a single processor (and multi-core) or multi-processor (and multi-core). In the case of a multiprocessor, it is possible to adopt the task movement control method that can be adopted in the case of a single processor; method cannot be adopted. Therefore, in the following explanation of task movement control, a method of task movement control that can be adopted in both a single processor and a multiprocessor will be explained as the first form of task movement control shown in FIG. 6 in the case of a single processor, and A method of task movement control that can only be adopted will be described as a second form of task movement control shown in FIG. 7 in the case of a multiprocessor.
 また、CPU制御モジュール14は、各CPUコアにより実行される各タスクが、CPUコアに対して高い負荷が要求される高負荷タスクであるか、高負荷タスクよりも低い低負荷が要求される低負荷タスクであるかのタスク情報をOS12等から取得することができる。また、CPU制御モジュール14は、各タスクがリアルタイム性が要求されるタスクか否かのタスク情報もOS12等から取得することができる。図6及び図7のタスク移動制御の第1形態及び第2形態は、これらのタスク情報と関係なく実施することができるが、リアルタイム性が要求される高負荷タスクを実行している論理コア(物理コア)が高温度に上昇した場合には、図8のタスク制御の第3形態が実施されることとして説明する。 The CPU control module 14 also determines whether each task executed by each CPU core is a high-load task that requires a high load on the CPU core, or a low-load task that requires a low load that is lower than the high-load task. Task information on whether it is a load task can be obtained from the OS 12 or the like. Further, the CPU control module 14 can also obtain task information from the OS 12 or the like as to whether each task requires real-time performance. The first and second forms of task movement control shown in FIGS. 6 and 7 can be performed independently of these task information, but the logical cores ( The following description assumes that when the temperature of the physical core (physical core) rises to a high temperature, the third form of task control shown in FIG. 8 is implemented.
<タスク移動制御の第1形態>
 図6は、シングルプロセッサの場合のCPU制御モジュール14が行うタスク移動制御の第1形態を説明する図である。図6において、CPU11は、物理コア1乃至6を有し、物理コア1乃至6では、それぞれのブロック内に示されたタスクが実行されていることとする。また、物理コア1乃至6に対応付けられる論理コアは、図4で説明した例と同じであるとする。「RT/HL Task」と表記されたタスクは、リアルタイム性が要求される高負荷タスクを表す。「HL Task」と表記されたタスクは、リアルタイム性が要求されない高負荷タスクを表す。「Normal Task」は、低負荷タスクを表す。
<First form of task movement control>
FIG. 6 is a diagram illustrating a first form of task movement control performed by the CPU control module 14 in the case of a single processor. In FIG. 6, it is assumed that the CPU 11 has physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6. It is also assumed that the logical cores associated with physical cores 1 to 6 are the same as in the example described in FIG. 4. A task labeled "RT/HL Task" represents a high-load task that requires real-time performance. A task labeled "HL Task" represents a high-load task that does not require real-time performance. "Normal Task" represents a low load task.
 タスク移動制御の第1形態では、CPU制御モジュール14は、温度監視モジュール15から各物理コア1乃至6の温度情報を取得し、各物理コア1乃至6の温度を監視する。監視の結果、物理コア1の温度が閾値以上の高温度に上昇したことが検出され、タスク移動の条件となる高温度(単に高温度という)が物理コア1で検出されたとする。なお、タスク移動の条件は、物理コアの温度の高さが閾値以上である場合に限らず、上昇する温度の時間変化率が所定の閾値以上である場合等、高温度となることが予測される場合であってよい。 In the first form of task movement control, the CPU control module 14 acquires temperature information of each physical core 1 to 6 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 1 has increased to a high temperature higher than a threshold value, and that a high temperature (simply referred to as high temperature) that is a condition for task movement is detected in the physical core 1. Note that the conditions for task migration are not limited to the case where the temperature of the physical core is above a threshold value, but also when the temperature is predicted to be high, such as when the time rate of change of the rising temperature is above a predetermined threshold value. This may be the case.
 ここで、CPU制御モジュール14は、処理1の熱的距離推定処理により作成された論理コア-物理コア対応関係情報と、論理コア熱的距離推定情報とに基づいて、物理コア1乃至6の温度を物理コア1乃至6のそれぞれに対応する論理コア1乃至12の温度として扱い、タスク移動制御を論理コア1乃至12の間でのタスクの移動として物理コア1乃至6を意識することなく処理することができる。ただし、上述のように処理1の熱的距離推定処理により論理コア-物理コア対応関係情報と、物理コア熱的距離推定情報とが作成される場合であってもよい。その場合には、特に、CPU制御モジュール14は、タスク移動制御を物理コア1乃至6の間でのタスクの移動として処理し、適宜、移動させるタスクが実行される移動元の論理コアと移動先の論理コアとを論理コア-物理コア対応関係情報に基づいて特定した方が容易である。また、説明上も後者の方が直感的に把握しやすいので、タスク移動制御についての以下の説明では、主に物理コア1乃至6の間でのタスクの移動として説明し、物理コアは、適宜、物理コアに対応付けられた論理コアと読み替えられることとする。また、1つの物理コアに対して複数(図4の例では2つ)の論理コアが対応付けられる場合には、各物理コアで複数のタスクが並行して実行可能であるが、それらがどの論理コアで実行されるかは言及しないこととする。 Here, the CPU control module 14 determines the temperature of the physical cores 1 to 6 based on the logical core-physical core correspondence relationship information created by the thermal distance estimation process of process 1 and the logical core thermal distance estimation information. is treated as the temperature of logical cores 1 to 12 corresponding to physical cores 1 to 6, respectively, and task movement control is processed as the movement of tasks between logical cores 1 to 12 without being aware of physical cores 1 to 6. be able to. However, as described above, the logical core-physical core correspondence relationship information and the physical core thermal distance estimation information may be created by the thermal distance estimation process of process 1. In that case, in particular, the CPU control module 14 processes the task movement control as movement of tasks between physical cores 1 to 6, and appropriately controls the movement source logical core where the task to be moved is executed and the movement destination. It is easier to specify the logical core based on the logical core-physical core correspondence information. Also, the latter is easier to understand intuitively, so in the following explanation of task movement control, we will mainly explain it as movement of tasks between physical cores 1 to 6, and the physical cores will be , can be read as a logical core associated with a physical core. Additionally, when multiple (two in the example in Figure 4) logical cores are associated with one physical core, multiple tasks can be executed in parallel on each physical core, but We do not mention whether it is executed on logical cores.
 物理コア1が高温度であることを検出すると、CPU制御モジュール14は、処理1の熱的距離推定処理により作成された物理コア熱的距離推定情報に基づいて、高温度の物理コア1に対して物理コア間熱的距離が遠い(大きい)物理コアを検出する。ここでは、高温度の物理コア1に対して物理コア間熱的距離が遠い物理コアが例えば物理コア5及び6であるとする。また、CPU制御モジュール14は、高温度の物理コア1に対して物理コア間熱的距離が遠い物理コア5及び6のうち、所定の閾値以下の低温度の物理コアを特定し、タスクの移動先として選択する。両方の物理コアが低温度である場合には、いずれか任意の物理コアがタスクの移動先として選択される場合であってもよいし、温度がより低い方の物理コアがタスクの移動先として選択される場合であってよい。また、物理コア間熱的距離が、近いと遠いとの2つより多い階級で評価される場合には、物理コア間熱的距離が最も遠い物理コアのいずれかがタスクの移動先として選択される場合であってもよい。 When detecting that the physical core 1 is at a high temperature, the CPU control module 14 controls the high temperature physical core 1 based on the physical core thermal distance estimation information created by the thermal distance estimation process in process 1. to detect physical cores with a long (large) thermal distance between physical cores. Here, it is assumed that physical cores having a longer thermal distance between physical cores than physical core 1, which has a high temperature, are physical cores 5 and 6, for example. Further, the CPU control module 14 identifies a physical core whose temperature is lower than a predetermined threshold value among physical cores 5 and 6, which have a long thermal distance between the physical cores with respect to the physical core 1 which has a high temperature, and transfers the task. Select as destination. If both physical cores have a low temperature, any physical core may be selected as the task destination, or the physical core with the lower temperature may be selected as the task destination. It may be selected. In addition, if the thermal distance between physical cores is evaluated in more than two classes, ie close and far, one of the physical cores with the farthest thermal distance between physical cores is selected as the destination of the task. This may be the case.
 このようにしてCPU制御モジュール14は、高温度の物理コア1に対して物理コア間熱的距離が遠く、かつ、低温度の物理コアを特定した結果、タスクの移動先として物理コア6を選択したとする。この場合、CPU制御モジュール14は、物理コア1で動作しているタスクを物理コア6に移動させる。なお、物理コア1で複数のタスクが動作している場合に、その両方が物理コア6に移動される場合であってもよいし、いずれか一方(例えば、より高負荷のタスク)が物理コア6に移動される場合であってもよい。また、タスクの移動先として複数の物理コアが選択され、物理コア1の複数のタスクがそれぞれ異なる物理コアに移動される場合であってもよい。また、高温度の物理コア1のタスクの移動先として、少なくとも高温度の物理コア1と異なる他の物理コアのいずれかが選択される場合や、少なくとも高温度の物理コア1と異なる他の物理コアのうちの低温度の物理コアが選択される場合であってもよい。 In this way, the CPU control module 14 identifies a physical core with a long thermal distance between physical cores and a low temperature with respect to the high-temperature physical core 1, and selects physical core 6 as the task transfer destination. Suppose we did. In this case, the CPU control module 14 moves the task running on physical core 1 to physical core 6. Note that if multiple tasks are running on physical core 1, both of them may be moved to physical core 6, or one of them (for example, a task with a higher load) may be moved to physical core 6. It may be moved to 6. Alternatively, a plurality of physical cores may be selected as the destination of the task, and the plurality of tasks of the physical core 1 may be moved to different physical cores. In addition, as the destination of the task of high-temperature physical core 1, at least one of the other physical cores different from high-temperature physical core 1 is selected, or at least another physical core different from high-temperature physical core 1 is selected. A physical core with a lower temperature among the cores may be selected.
 CPU制御モジュール14は、物理コア1のタスクを物理コア6に移動させた後、そのタスクの移動に伴うオーバヘッドを緩和させるため、移動させたタスクが使える物理コア6のCPUリソースを一時的に増やすことで、移動させたタスクをブーストさせる。 After moving the task of physical core 1 to physical core 6, the CPU control module 14 temporarily increases the CPU resources of physical core 6 that can be used by the moved task in order to alleviate the overhead associated with moving the task. This will boost the moved task.
 また、CPU制御モジュール14は、タスクを移動させた後、物理コア1の温度を冷ますため、物理コア1に対してタスクが一定期間割り当てられないようにタスクの割当てを制限する。これにより、物理コア1はアイドル状態となり、CPUfreq Governorsが動作している場合には、その機能によってクロック周波数が低減されるため、消費電力が低減され、物理コア1の温度が低下する。CPU制御モジュール14は、タスクの移動後の物理コア6で再度温度上昇が発生し、物理コア6が高温度になったことを検出した場合には、物理コア1が高温度であることを検出した場合と同様の処理を繰り返す。例えば、CPU制御モジュール14は、物理コア6に対して物理コア間熱的距離が遠く、かつ、低温度の物理コアを特定した結果、タスクの移動先として物理コア5を選択したとすると、物理コア6で動作しているタスクを物理コア5に移動させる。 Furthermore, after moving the task, the CPU control module 14 limits the assignment of tasks so that no tasks are assigned to the physical core 1 for a certain period of time in order to cool down the temperature of the physical core 1. This leaves physical core 1 in an idle state, and if CPUfreq Governors is running, its function reduces the clock frequency, which reduces power consumption and lowers the temperature of physical core 1. If the temperature rise occurs again in the physical core 6 after the task is moved and the CPU control module 14 detects that the temperature of the physical core 6 has become high, it detects that the temperature of the physical core 1 is high. Repeat the same process as in the previous case. For example, if the CPU control module 14 selects physical core 5 as the task migration destination as a result of identifying a physical core with a long inter-physical core thermal distance and low temperature compared to physical core 6, Move tasks running on core 6 to physical core 5.
<タスク移動制御の第2形態>
 図7は、マルチプロセッサの場合のCPU制御モジュール14が行うタスク移動制御の第2形態を説明する図である。図7において、CPU11-1及び11-2は、情報処理システム1が有する2つのCPUであり、以下、CPU番号を用いてCPU1及びCPU2と称する。CPU1及びCPU2は、いずれも物理コア1乃至6を有し、物理コア1乃至6では、それぞれのブロック内に示されたタスクが実行されていることとする。また、CPU1及びCPU2のそれぞれの物理コア1乃至6に対応付けられる論理コアは、図4で説明した例と同じであるとし、各物理コア1乃至6のそれぞれに対して2つずつの論理コアが割り当てられていることとする。「RT/HL Task」、「HL Task」、及び、「Normal Task」と表記された各タスクは、図6と同じであるとする。
<Second form of task movement control>
FIG. 7 is a diagram illustrating a second form of task movement control performed by the CPU control module 14 in the case of a multiprocessor. In FIG. 7, CPUs 11-1 and 11-2 are two CPUs included in the information processing system 1, and are hereinafter referred to as CPU1 and CPU2 using the CPU numbers. It is assumed that the CPU1 and the CPU2 both have physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6. In addition, the logical cores associated with physical cores 1 to 6 of CPU1 and CPU2 are the same as the example explained in Figure 4, and two logical cores are assigned to each of physical cores 1 to 6. is assigned. It is assumed that the tasks labeled "RT/HL Task", "HL Task", and "Normal Task" are the same as in FIG. 6.
 タスク移動制御の第2形態では、CPU制御モジュール14は、初期セットアップとして、高負荷タスク用のCPUと低負荷タスク用のCPUに分ける。図7では、CPU1が高負荷タスク用のCPUであり、CPU2が低負荷タスク用のCPUであるとする。なお、3以上のCPUが存在する場合には、それらのCPUを任意の数で2つに分けて、一方を高負荷タスク用のCPUとし、他方を低負荷タスク用のCPUとしてよい。 In the second form of task movement control, the CPU control module 14 is divided into a CPU for high-load tasks and a CPU for low-load tasks as an initial setup. In FIG. 7, it is assumed that CPU1 is a CPU for high-load tasks, and CPU2 is a CPU for low-load tasks. Note that if there are three or more CPUs, any number of these CPUs may be divided into two, one of which may be used as a CPU for high-load tasks, and the other may be used as a CPU for low-load tasks.
 このように高負荷タスク用のCPUと低負荷タスク用のCPUに分けた結果、高負荷タスク用のCPU1の各物理コア1乃至6では、温度を上昇させる可能性が高い高負荷タスクが動作していることとする。低負荷タスク用のCPU2の各物理コア1乃至6では、温度を上昇させる可能性が低い低負荷タスクが動作していることとする。 As a result of dividing the CPU into high-load task CPUs and low-load task CPUs, high-load tasks that are likely to increase the temperature are not run on each physical core 1 to 6 of CPU1, which is used for high-load tasks. It is assumed that It is assumed that each of the physical cores 1 to 6 of the CPU 2 for low-load tasks is operating a low-load task that is unlikely to cause a rise in temperature.
 CPU制御モジュール14は、温度監視モジュール15からCPU1及び2のそれぞれの各物理コア1乃至6の温度情報を取得し、各物理コア1乃至6の温度を監視する。監視の結果、CPU1の物理コア4の温度が閾値以上の高温度に上昇したことが検出され、タスク移動の条件となる高温度がCPU1の物理コア4で検出されたとする。なお、タスク移動の条件に関しては図6のタスク移動制御の第1形態の場合と同様に適宜変更し得る。 The CPU control module 14 acquires temperature information of each physical core 1 to 6 of each of the CPUs 1 and 2 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 4 of the CPU 1 has risen to a high temperature equal to or higher than a threshold value, and that a high temperature that is a condition for task movement is detected in the physical core 4 of the CPU 1. Note that the conditions for task movement can be changed as appropriate, as in the case of the first form of task movement control shown in FIG.
 CPU1の物理コア4が高温度であることを検出すると、CPU制御モジュール14は、低負荷タスク用のCPU2の各物理コア1乃至6のうち、最も温度が低い物理コアを検出する。ここでは、CPU2の物理コア1の温度が最も低い物理コアであるとすると、CPU制御モジュール14はCPU2の物理コア1をタスクの移動先として選択する。この場合に、CPU制御モジュール14は、CPU1の物理コア4で動作しているタスクをCPU2の物理コア1に移動させる。なお、CPU1の物理コア4で複数のタスクが動作している場合に、その両方がCPU2の物理コア1に移動される場合であってもよいし、いずれか一方(例えば、より高負荷のタスク)がCPU2の物理コア1に移動される場合であってもよい。また、タスクの移動先としてCPU2の複数の物理コアが選択され、CPU1の物理コア4の複数のタスクがそれぞれCPU2の異なる物理コアに移動される場合であってもよい。また、高温度の物理コア4のタスクの移動先として、少なくともCPU2のいずれかの物理コアが選択される場合であってもよい。 When detecting that the physical core 4 of the CPU 1 has a high temperature, the CPU control module 14 detects the physical core with the lowest temperature among the physical cores 1 to 6 of the CPU 2 for low-load tasks. Here, assuming that the physical core 1 of the CPU 2 is the physical core with the lowest temperature, the CPU control module 14 selects the physical core 1 of the CPU 2 as the destination of the task. In this case, the CPU control module 14 moves the task running on the physical core 4 of the CPU 1 to the physical core 1 of the CPU 2. Note that if multiple tasks are running on physical core 4 of CPU1, both of them may be moved to physical core 1 of CPU2, or one of them (for example, a task with a higher load) may be moved to physical core 1 of CPU2. ) may be moved to physical core 1 of CPU2. Alternatively, a plurality of physical cores of the CPU 2 may be selected as task migration destinations, and a plurality of tasks of the physical core 4 of the CPU 1 may be moved to different physical cores of the CPU 2, respectively. Alternatively, at least one of the physical cores of the CPU 2 may be selected as the destination for moving the task of the high-temperature physical core 4.
 CPU制御モジュール14は、CPU1の物理コア4のタスクをCPU2の物理コア1に移動させた後、そのタスクの移動に伴うオーバヘッドを緩和させるため、移動させたタスクが使えるCPU2の物理コア1のCPUリソースを一時的に増やすことで、移動させたタスクをブーストさせる。 After moving the task of physical core 4 of CPU 1 to physical core 1 of CPU 2, the CPU control module 14 moves the CPU of physical core 1 of CPU 2 that can use the moved task to reduce the overhead associated with the movement of the task. Boost the moved task by temporarily increasing resources.
 また、CPU制御モジュール14は、タスクを移動させた後、CPU1の物理コア4の温度を冷ますため、CPU1の物理コア4に対してタスクが一定期間割り当てられないようにタスクの割当てを制限する。これにより、物理コア1はアイドル状態となり、CPUfreq Governorsが動作している場合には、その機能によってクロック周波数が低減されるため、消費電力が低減され、CPU1の物理コア4の温度が低下する。CPU制御モジュール14は、タスクの移動後のCPU1の物理コア4の温度が所定の閾値以下に低下したことを検出すると、CPU2の物理コア1に移動させたタスクを、元のCPU1の物理コア4に戻す。なお、図7において、CPU1の物理コア4で動作しているタスクはリアルタイム性が要求される高負荷タスクであり、そのタスクがCPU2の物理コア1に移動される場合が例示されているが、高温度が検出された物理コアで動作しているタスクが、リアルタイム性が要求される高負荷タスクである場合には、次のタスク移動制御の第3形態が適用されるようにしてもよい。 In addition, after moving the task, the CPU control module 14 limits the assignment of tasks so that the task is not assigned to the physical core 4 of the CPU 1 for a certain period of time in order to cool down the temperature of the physical core 4 of the CPU 1. . This leaves physical core 1 in an idle state, and if CPUfreq Governors is running, its function reduces the clock frequency, which reduces power consumption and lowers the temperature of physical core 4 of CPU1. When the CPU control module 14 detects that the temperature of the physical core 4 of the CPU 1 after the task has been moved has decreased below a predetermined threshold, the CPU control module 14 transfers the task that was moved to the physical core 1 of the CPU 2 to the original physical core 4 of the CPU 1. Return to In addition, in FIG. 7, the task running on physical core 4 of CPU1 is a high-load task that requires real-time performance, and the case is illustrated in which the task is moved to physical core 1 of CPU2. If the task operating on the physical core whose high temperature has been detected is a high-load task that requires real-time performance, the following third form of task movement control may be applied.
<タスク移動制御の第3形態>
 図8は、シングルプロセッサ又はマルチプロセッサの場合のCPU制御モジュール14が行うタスク移動制御の第3形態を説明する図である。図8において、CPU11は、情報処理システム1がシングルプロセッサの場合には、情報処理システム1が有する1つのCPUを表し、情報処理システム1がマルチプロセッサの場合には、情報処理システム1が有する複数のCPUのうちの任意の1つのCPUを表す。CPU11は、物理コア1乃至6を有し、物理コア1乃至6では、それぞれのブロック内に示されたタスクが実行されていることとする。また、物理コア1乃至6に対応付けられる論理コアは、図4で説明した例と同じであるとする。「RT/HL Task」、「HL Task」、及び、「Normal Task」と表記された各タスクは、図6と同じであるとする。
<Third form of task movement control>
FIG. 8 is a diagram illustrating a third form of task movement control performed by the CPU control module 14 in the case of a single processor or multiprocessor. In FIG. 8, CPU 11 represents one CPU included in the information processing system 1 when the information processing system 1 is a single processor, and represents multiple CPUs included in the information processing system 1 when the information processing system 1 is a multiprocessor. represents any one of the CPUs in . It is assumed that the CPU 11 has physical cores 1 to 6, and the tasks shown in the respective blocks are executed in the physical cores 1 to 6. It is also assumed that the logical cores associated with physical cores 1 to 6 are the same as in the example described in FIG. 4. It is assumed that the tasks labeled "RT/HL Task", "HL Task", and "Normal Task" are the same as in FIG. 6.
 リアルタイム性が要求されるタスクを図6及び図7で説明した第1形態及び第2形態と同様に他の物理コアに移動させる場合、タスクの移動に伴うオーバヘッド(マイグレーションオーバヘッド)が避けられないため、タスクの移動が困難な場合がある。タスク移動制御の第3形態では、リアルタイム性が要求される高負荷タスクを実行している物理コアが高温度に上昇した場合に、その物理コアに対して物理コア間熱的距離が小さい物理コアで動作しているタスクを、高温度の物理コアに対して物理コア間熱的距離の大きい物理コアへ移動させる。これにより、高温度の物理コアに対する外部からの熱伝播が最小限に抑えられるので、高温度の物理コアに対する温度上昇が緩和され、かつ、リアルタイム性が要求されるタスクの移動によるオーバヘッドも生じないようにすることができる。 When a task that requires real-time performance is moved to another physical core as in the first and second embodiments explained in FIGS. 6 and 7, overhead associated with task movement (migration overhead) is unavoidable. , it may be difficult to move tasks. In the third form of task movement control, when a physical core executing a high-load task that requires real-time performance rises to a high temperature, a physical core with a small thermal distance between physical cores is A task running on a physical core with a high temperature is moved to a physical core with a large thermal distance between physical cores. This minimizes heat propagation from the outside to the high-temperature physical core, which alleviates the temperature rise to the high-temperature physical core and eliminates the overhead caused by moving tasks that require real-time performance. You can do it like this.
 タスク移動制御の第3形態では、CPU制御モジュール14は、温度監視モジュール15から各物理コア1乃至6の温度情報を取得し、各物理コア1乃至6の温度を監視する。監視の結果、物理コア1の温度が閾値以上の高温度に上昇したことが検出され、タスク移動の条件となる高温度が物理コア1で検出されたとする。なお、タスク移動の条件に関しては図6のタスク移動制御の第1形態の場合と同様に適宜変更し得る。物理コア1が高温度であることを検出すると、CPU制御モジュール14は、処理1の熱的距離推定処理により作成された物理コア熱的距離推定情報に基づいて、高温度の物理コア1に対して物理コア間熱的距離が近く(物理コア1に対して温度の影響を及ぼす物理コア間熱的距離であり)、かつ、温度が高い物理コアを検出する。ただし、本検出は、リアルタイム性が要求されないタスクを動作させている物理コアに限定して行われる。ここでは、物理コア2が検出されたこととする。 In the third form of task movement control, the CPU control module 14 acquires temperature information of each physical core 1 to 6 from the temperature monitoring module 15, and monitors the temperature of each physical core 1 to 6. Assume that as a result of monitoring, it is detected that the temperature of the physical core 1 has increased to a high temperature equal to or higher than a threshold value, and a high temperature that is a condition for task migration is detected in the physical core 1. Note that the conditions for task movement can be changed as appropriate, as in the case of the first form of task movement control shown in FIG. When detecting that the physical core 1 is at a high temperature, the CPU control module 14 controls the high temperature physical core 1 based on the physical core thermal distance estimation information created by the thermal distance estimation process in process 1. A physical core having a short thermal distance between physical cores (this is a thermal distance between physical cores that has a temperature effect on physical core 1) and a high temperature is detected. However, this detection is limited to physical cores running tasks that do not require real-time performance. Here, it is assumed that physical core 2 has been detected.
 また、CPU制御モジュール14は、図6との第1形態と同様に、高温度の物理コア1に対して物理コア間熱的距離が遠い物理コアで、かつ、低温度の物理コアを検出し、タスクの移動先を選択する。その結果、タスクの移動先として物理コア6が選択されたとする。 Further, as in the first embodiment shown in FIG. 6, the CPU control module 14 detects a low-temperature physical core that is a physical core with a long inter-physical core thermal distance relative to the high-temperature physical core 1. , select where to move the task. Assume that as a result, physical core 6 is selected as the task migration destination.
 CPU制御モジュール14は、高温度の物理コア1に対して物理コア間熱的距離が近い物理コア2のタスクを物理コア6に移動させた後、そのタスクの移動に伴うオーバヘッドを緩和させるため、移動させたタスクが使える物理コア6のCPUリソースを一時的に増やすことで、移動させたタスクをブーストさせる。 After the CPU control module 14 moves the task of the physical core 2, which has a close thermal distance between the physical cores to the physical core 1, which has a high temperature, to the physical core 6, in order to alleviate the overhead associated with the movement of the task, Boosts the moved task by temporarily increasing the CPU resources of physical core 6 that the moved task can use.
 また、CPU制御モジュール14は、タスクを移動させた後、物理コア1の温度を冷ますため、物理コア2に対してタスクが一定期間割り当てられないようにタスクの割当てを制限する。これにより、物理コア2はアイドル状態となり、CPUfreq Governorsが動作している場合には、その機能によってクロック周波数が低減されるため、消費電力が低減され、物理コア2の温度が低下する。物理コア2の温度が低下することで、物理コア2から物理コア1への熱伝播が低減され、物理コア1の温度が低下する。 Furthermore, after moving the task, the CPU control module 14 limits task assignment so that no task is assigned to the physical core 2 for a certain period of time in order to cool down the temperature of the physical core 1. This leaves physical core 2 in an idle state, and if CPUfreq Governors is running, its function reduces the clock frequency, which reduces power consumption and lowers the temperature of physical core 2. As the temperature of physical core 2 decreases, heat propagation from physical core 2 to physical core 1 is reduced, and the temperature of physical core 1 decreases.
 なお、タスク移動制御の第3形態は、リアルタイム性が要求されないタスクが動作している物理コアが高温度に上昇した場合であっても採用することができる。例えば、リアルタイム性が要求されるタスクか否かに関わらず、高温度の物理コアに対して、物理コア間熱的距離が近く、かつ、温度が高い物理コアのタスクを移動させるようにしてもよい。また、高温度の物理コアに対して、物理コア間熱的距離が近い物理コア(周辺コア)のタスクを、少なくともその高温度の物理コアと異なり、かつ、移動元ではない他の物理コア、周辺コアでない他の物理コア、又は、低温度の物理コアのいずれかに移動させる場合であってもよい。また、情報処理システム1がマルチプロセッサの構成である場合には、第2形態と第3形態とを組み合わせた形態としてもよく、例えば、高温度の物理コアで動作しているタスクを、その物理コアが属するCPUとは異なるCPUの物理コアに移動させるようにしてもよい。 Note that the third form of task movement control can be employed even when a physical core on which a task that does not require real-time performance is operating rises to a high temperature. For example, regardless of whether the task requires real-time performance or not, it is possible to move a task of a physical core with a close thermal distance between the physical cores and a high temperature to a physical core with a high temperature. good. In addition, for a high-temperature physical core, the task of a physical core (peripheral core) with a close thermal distance between the physical cores can be transferred to at least another physical core that is different from the high-temperature physical core and is not the migration source. It may be moved to another physical core that is not a peripheral core or to a physical core with a lower temperature. Furthermore, when the information processing system 1 has a multiprocessor configuration, the second form and the third form may be combined. For example, a task running on a high-temperature physical core may be The core may be moved to a physical core of a CPU different from the CPU to which the core belongs.
<タスク移動制御の手順例>
 図9は、図6乃至図8のタスク移動制御の第1形態乃至第3形態を用いた手順例を示したフローチャートである。ステップS31では、CPU制御モジュール14は、温度監視モジュール15から物理コアの温度情報を取得し、全ての物理コアの温度を監視する。処理はステップS31からステップS32に進む。ステップS32では、CPU制御モジュール14は、いずれかの物理コアの温度が閾値を超えた(又は閾値以上)が否かを判定する。ステップS32において否定された場合には、処理はステップS31に戻る。ステップS32において肯定された場合には、処理はステップS32からステップS33に進む。ステップS33では、CPU制御モジュール14は、ステップS32で閾値を超えたと判定された(ステップS32で検出された)高温度の物理コアが動作させているタスクが、リアルタイム性が要求されるタスクか否かを判定する。ステップS33で肯定された場合には処理はステップS34に進み、図8のタスク移動制御の第3形態の処理を開始する。ステップS33で否定された場合には処理はステップS39に進み、図6及び図7のタスク移動制御の第1形態及び第2形態のうちのいずれの制御を行うかの判定を行う(後述)。
<Example of procedure for task movement control>
FIG. 9 is a flowchart showing an example of a procedure using the first to third forms of task movement control shown in FIGS. 6 to 8. In step S31, the CPU control module 14 acquires temperature information of the physical cores from the temperature monitoring module 15, and monitors the temperatures of all physical cores. The process proceeds from step S31 to step S32. In step S32, the CPU control module 14 determines whether the temperature of any physical core exceeds a threshold (or is greater than or equal to a threshold). If the answer is NO in step S32, the process returns to step S31. If the answer is yes in step S32, the process proceeds from step S32 to step S33. In step S33, the CPU control module 14 determines whether the task operated by the high-temperature physical core determined to have exceeded the threshold in step S32 (detected in step S32) is a task requiring real-time performance. Determine whether If the result in step S33 is affirmative, the process proceeds to step S34, where the third form of task movement control shown in FIG. 8 is started. If the result in step S33 is negative, the process proceeds to step S39, where it is determined which of the first form and the second form of task movement control shown in FIGS. 6 and 7 is to be performed (described later).
 ステップS34では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コアに対して、物理コア間熱的距離が近く、かつ、温度が高い物理コアを検出する。処理はステップS34からステップS35に進む。ステップS35では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コアに対して、物理コア間熱的距離が遠く、かつ、温度が低い物理コアを検出する。処理はステップS35からステップS36に進む。ステップS36では、CPU制御モジュール14は、ステップS34で検出された物理コアで動作しているタスクをステップS35で検出された物理コアに移動させる。処理はステップS36からステップS37に進む。ステップS37では、CPU制御モジュール14は、ステップS35で検出された物理コア、即ち、ステップS36でタスクを移動させた移動先の物理コアのCPUリソースを一時的に増やしてタスクをブーストする。処理はステップS37からステップS38に進む。ステップS38では、CPU制御モジュール14は、ステップS34で検出された物理コア、即ち、タスクを移動させた移動元の物理コアに対して新規のタスクが一時的に割り当てられないようにする。処理はステップS38からステップS31に戻る。 In step S34, the CPU control module 14 detects a physical core that is close in thermal distance between physical cores and has a high temperature with respect to the high-temperature physical core detected in step S32. The process proceeds from step S34 to step S35. In step S35, the CPU control module 14 detects a physical core that has a longer inter-physical core thermal distance and has a lower temperature than the high-temperature physical core detected in step S32. The process proceeds from step S35 to step S36. In step S36, the CPU control module 14 moves the task running on the physical core detected in step S34 to the physical core detected in step S35. The process proceeds from step S36 to step S37. In step S37, the CPU control module 14 boosts the task by temporarily increasing the CPU resources of the physical core detected in step S35, that is, the destination physical core to which the task was moved in step S36. The process proceeds from step S37 to step S38. In step S38, the CPU control module 14 temporarily prevents a new task from being assigned to the physical core detected in step S34, that is, the source physical core to which the task was moved. The process returns from step S38 to step S31.
 一方、ステップS33で否定された場合のステップS39では、CPUアーキテクチャ(情報処理システム1のハードウエア構成)がシングルプロセッサ及びマルチコアの構成か、マルチプロセッサ及びマルチコアの構成かで処理が分岐する。前者の場合には処理はステップS40に進み、図6の第1形態のタスク移動制御を開始する。後者の場合には処理はステップS44に進み、図7の第2形態のタスク移動制御を開始する。ステップS40では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コアに対して、物理コア間熱的距離が遠く、かつ、温度が低い物理コアを検出する。処理はステップS40からステップS41に進む。ステップS41では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コアで動作しているタスクをステップS40で検出された物理コアに移動させる。処理はステップS41からステップS42に進む。ステップS42では、CPU制御モジュール14は、ステップS40で検出された物理コア、即ち、ステップS41でタスクを移動させた移動先の物理コアのCPUリソースを一時的に増やしてタスクをブーストする。処理はステップS42からステップS43に進む。ステップS43では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コア、即ち、タスクを移動させた移動元の物理コアに対して新規のタスクが一時的に割り当てられないようにする。処理はステップS43からステップS45に進む。 On the other hand, in step S39 when step S33 is negative, the process branches depending on whether the CPU architecture (hardware configuration of the information processing system 1) is a single processor and multi-core configuration or a multiprocessor and multi-core configuration. In the former case, the process proceeds to step S40, and the task movement control of the first form shown in FIG. 6 is started. In the latter case, the process proceeds to step S44, and the second form of task movement control shown in FIG. 7 is started. In step S40, the CPU control module 14 detects a physical core that has a longer inter-physical core thermal distance and a lower temperature than the high-temperature physical core detected in step S32. The process proceeds from step S40 to step S41. In step S41, the CPU control module 14 moves the task operating on the high-temperature physical core detected in step S32 to the physical core detected in step S40. The process proceeds from step S41 to step S42. In step S42, the CPU control module 14 boosts the task by temporarily increasing the CPU resources of the physical core detected in step S40, that is, the destination physical core to which the task was moved in step S41. The process proceeds from step S42 to step S43. In step S43, the CPU control module 14 temporarily prevents a new task from being assigned to the high-temperature physical core detected in step S32, that is, the source physical core from which the task was moved. . The process proceeds from step S43 to step S45.
 一方、ステップS39で分岐したステップS44では、CPU制御モジュール14はステップS32で検出された高温度の物理コアが属するCPUとは別のCPUにおいて温度が低い物理コアを検出する。処理はステップS44からステップS41に進み、ステップS41乃至ステップS43を行う。ただし、ステップS44を経由した場合のステップS41乃至ステップS43の処理においては、ステップS40で検出された物理コアを、ステップS44で検出された物理コアと読み替える。ステップS45では、CPUアーキテクチャ(情報処理システム1のハードウエア構成)がシングルプロセッサ及びマルチコアの構成か、マルチプロセッサ及びマルチコアの構成かで処理が分岐する。前者の場合には、処理はステップS31に戻る。後者の場合には、処理はステップS46に進み、ステップS46では、CPU制御モジュール14は、ステップS32で検出された高温度の物理コア、即ち、タスクを移動させた移動元の物理コアの温度が所定の閾値以下に下がった場合には、ステップS44で検出された物理コア、即ち、ステップS41でタスクが移動された移動先の物理コアからステップS32で検出された物理コアに戻す。処理はステップS45からステップS31に戻る。なお、ステップS46のように移動先から移動元の物理コアにタスクを戻す処理は、ステップS44の処理を経由したタスク移動制御の第2形態の場合に限らず、ステップS44の処理を経由しないタスク移動制御の第1形態及び第3形態のいずれにおいても同様に行われるようにしてもよい。 On the other hand, in step S44 branched from step S39, the CPU control module 14 detects a physical core with a low temperature in a CPU different from the CPU to which the high-temperature physical core detected in step S32 belongs. The process proceeds from step S44 to step S41, and performs steps S41 to S43. However, in the processing of steps S41 to S43 when the process goes through step S44, the physical core detected in step S40 is replaced with the physical core detected in step S44. In step S45, the process branches depending on whether the CPU architecture (hardware configuration of the information processing system 1) is a single processor and multi-core configuration or a multiprocessor and multi-core configuration. In the former case, the process returns to step S31. In the latter case, the process proceeds to step S46, and in step S46, the CPU control module 14 determines whether the temperature of the high-temperature physical core detected in step S32, that is, the physical core from which the task was moved is If the value falls below the predetermined threshold, the physical core detected in step S44, that is, the destination physical core to which the task was moved in step S41, is returned to the physical core detected in step S32. The process returns from step S45 to step S31. Note that the process of returning a task from the movement destination to the movement source physical core as in step S46 is not limited to the case of the second form of task movement control that goes through the process of step S44, but also applies to tasks that do not go through the process of step S44. The movement control may be performed in the same manner in both the first form and the third form.
<CPUの発熱問題を解決するための既存技術>
 半導体デバイスであるCPUは温度に敏感であるため、CPUの温度上昇は動作効率の低下・誤作動・故障へとつながる。CPUの発熱を抑える機器としてヒートシンクやファン等の冷却装置があるが、近年のデバイスの小型化に伴い、十分な冷却装置を設置するスペースを確保できない場合がある。また、十分な冷却装置を備えた汎用サーバでも、高負荷の処理が続いた場合はCPUが高温度により、この温度上昇が頻繁に発生すればCPUの故障率は大きくなる。本技術では、ソフトウエア制御により、性能劣化を抑えつつCPUの発熱問題を解決する。ソフトウエアの制御によりCPUの発熱問題を解決している既存技術については次のような技術が知られている。
<Existing technology to solve the CPU heat generation problem>
CPUs, which are semiconductor devices, are sensitive to temperature, so increases in CPU temperature can lead to reduced operating efficiency, malfunctions, and failures. Cooling devices such as heat sinks and fans are used to suppress the heat generated by CPUs, but as devices have become smaller in recent years, it may not be possible to secure enough space to install a cooling device. Furthermore, even if a general-purpose server is equipped with a sufficient cooling system, if high-load processing continues, the CPU will become hot, and if this temperature rise occurs frequently, the failure rate of the CPU will increase. This technology uses software control to solve the CPU heat generation problem while suppressing performance degradation. The following existing technologies are known to solve the CPU heat generation problem through software control.
1.CPUfreq Governors
 CPUfreq Governorsは、CPUの温度に応じて動作周波数を動的に変更し、システムの電力消費と発熱を低減する手法である。この機構を使用することで、CPUが一定の温度を上回った場合、CPUの動作周波数を落とし発熱を抑えることが可能となる。CPUfreq Governorsの問題点としては、動作周波数を落とすことで電力消費を抑え温度上昇を一時的に止めることができるが、そのCPUコアで動作している全てのアプリケーションの性能が劣化するおそれがある。なお、CPUfreq Governorsを本技術と併用することで、高温度のコアの温度をより早く低下させることができる。
1. CPUfreq Governors
CPUfreq Governors is a method that dynamically changes the operating frequency according to the CPU temperature to reduce system power consumption and heat generation. By using this mechanism, when the CPU temperature exceeds a certain level, it is possible to reduce the CPU's operating frequency and reduce heat generation. The problem with CPUfreq Governors is that they can reduce power consumption and temporarily stop temperature rise by lowering the operating frequency, but there is a risk that the performance of all applications running on that CPU core will deteriorate. Note that by using CPUfreq Governors in conjunction with this technology, the temperature of high-temperature cores can be lowered more quickly.
2.Linux(登録商標) Thermal Pressure
 Linux(登録商標) Thermal Pressureは、オペレーティングシステム(OS)がタスクをスケジューリングする際、コアの温度状況に応じて、タスクスケジューラが最適なCPUコアにタスクを割り当てられるようにする機能である。Thermal Pressureを利用できるスケジューラは、CPUfreq Governorsによって変更された動作周波数を考慮した上で、最適なCPUコアにタスクを配置する。これにより、システム全体の性能が向上する。Linux(登録商標) Thermal Pressureの問題点としては、コアのオーバヒート時に、性能劣化を最小限にしつつシステムを稼働させることが可能であるが、CPUのオーバヒート時はCPUfreq GovernorがCPUの動作周波数を落とすため、そのCPUコア上で動作しているタスクの性能劣化を防ぐことはできない。
2. Linux (registered trademark) Thermal Pressure
Linux (registered trademark) Thermal Pressure is a function that allows the task scheduler to allocate tasks to the optimal CPU cores according to the temperature status of the cores when the operating system (OS) schedules tasks. A scheduler that can use Thermal Pressure places tasks on the optimal CPU core after considering the operating frequency changed by CPUfreq Governors. This improves the overall system performance. The problem with Linux (registered trademark) Thermal Pressure is that when the core overheats, it is possible to run the system with minimal performance degradation, but when the CPU overheats, the CPUfreq Governor reduces the CPU operating frequency. Therefore, it is not possible to prevent performance degradation of tasks running on that CPU core.
3.Android(登録商標) Thermal Service
 Android(登録商標) Thermal Serviceは、Android(登録商標) Thermal HALによるさまざまな熱軽減シグナルを使用してCPUの熱情報を常時監視し、スロットリングの重大度に応じたステータスをアプリケーションにフィードバックする。これにより、動作しているアプリケーションは、スロットリングの重大度に応じて柔軟な熱軽減対策を行うことができる。例えば、CPUの発熱時に、リアルタイム性が要求されないタスク群を止めて、一時的にCPUの発熱を抑える等の処理を行うことが可能となる。Android(登録商標) Thermal Serviceの問題点としては、その機能を使用するためには、アプリケーションを変更し、それぞれのステータス状況に応じて熱軽減対策処理を行う必要がある。そのため、サードパーティ製のアプリケーションに適用することは難しい。また、アプリケーションの変更が可能な場合であっても、動作する全てのアプリケーションを変更し、熱軽減対策を実施することは極めて困難な作業である。
3. Android (registered trademark) Thermal Service
Android (registered trademark) Thermal Service constantly monitors CPU thermal information using various thermal mitigation signals from Android (registered trademark) Thermal HAL and feeds back status to applications depending on the severity of throttling. This allows running applications to take flexible heat mitigation measures depending on the severity of throttling. For example, when the CPU heats up, it is possible to temporarily suppress the heat generation by stopping tasks that do not require real-time performance. The problem with Android (registered trademark) Thermal Service is that in order to use its functions, it is necessary to change the application and take heat reduction measures according to each status situation. Therefore, it is difficult to apply it to third-party applications. Further, even if it is possible to change applications, it is extremely difficult to change all running applications and implement heat reduction measures.
4.特許文献1(特許第6337121号公報参照)
 特許文献1でマルチコアの動的な作業負荷管理が行われ、各CPUコアに関する熱勾配(熱伝導率)、ダイ上におけるCPUコアの位置、各コアに関する最大クロック周波数、および各CPUコアについて電圧レギュレータ効率等のパラメータを使用し、タスクを最適なコアへスケジューリングする。また、各タスクがアイドルユースケースか、又は、低電力ユースケースであるかに基づき、スケジューリングを行う。特許文献1の問題点としては、スケジューラは、基本的に、温度上昇させる高負荷タスクを別CPUコアに移動するようスケジュールするため、CPUコア移動が困難なリアルタイム性かつ高負荷なタスクについては扱うことができない。また、コア移動のオーバヘッドにより性能劣化が発生するが、スケジューラはそのオーバヘッドを考慮していない。さらに、CPUコアのロケーションは事前にスケジューラが把握している前提であるが、物理コアのロケーションを知り得る方法については明記されてない。そのため、ベンダーから提供されるプロセッサが物理コアのロケーションを明記していない場合、スケジューラを構築することは困難となる。
4. Patent Document 1 (see Patent No. 6337121)
Multi-core dynamic workload management is performed in U.S. Pat. Schedule tasks to the optimal core using parameters such as efficiency. Scheduling is also performed based on whether each task is an idle use case or a low power use case. The problem with Patent Document 1 is that the scheduler basically schedules high-load tasks that cause temperature rise to be moved to another CPU core, so it is difficult to handle real-time, high-load tasks that are difficult to move CPU cores. I can't. Furthermore, although performance degradation occurs due to the overhead of core movement, the scheduler does not take this overhead into account. Furthermore, although it is assumed that the scheduler knows the location of the CPU core in advance, it does not specify how to know the location of the physical core. Therefore, if the processor provided by the vendor does not specify the location of the physical core, it will be difficult to build a scheduler.
<本技術の変形例>
1.熱的距離推定モジュール13の事前実行
 熱的距離推定モジュール13で推定される物理コア間熱的距離又は論理コア間熱的距離は、同一装置上では基本的に同じ値になるため、事前に熱的距離推定モジュール13を実行し熱的距離を推定しておき、それらの情報をOSのイメージに保存しておくことができる。これにより、情報処理システム1の起動時に熱的距離推定モジュール13を動作させる必要がないため、モジュール実行によるオーバヘッドを削減することができる。
<Modified example of this technology>
1. Pre-execution of the thermal distance estimation module 13 The thermal distance between physical cores or the thermal distance between logical cores estimated by the thermal distance estimation module 13 is basically the same value on the same device. The thermal distance estimation module 13 can be executed to estimate the thermal distance, and this information can be saved in the OS image. Thereby, it is not necessary to operate the thermal distance estimation module 13 when starting up the information processing system 1, so that the overhead due to module execution can be reduced.
2.CPU制御モジュール14のコンテナ化
 それぞれのモジュール13乃至15をコンテナ化(コンテナ型仮想化)し、Kubernetes(登録商標)やDocker(登録商標)といった既存のエコシステムと連携するようにすることで、モジュールの負荷分散を行いより柔軟な熱管理を行うができる。CPU制御モジュール14は温度監視モジュール15と連携し、CPUの状態を常に監視しながらタスクを制御する必要があるため、CPU制御モジュール14自体が高負荷タスクとなり性能劣化のボトルネックとなる可能性がある。これは、マルチプロセッサ及びマルチコア構成では、CPU毎にモジュールを用意し負荷分散を行うことである程度解決できることができる。また、モジュール間の連携をコンテナで行うことで、システム負荷に応じたモジュール制御をより簡単に実現することができる。
2. Containerization of the CPU control module 14 By containerizing each module 13 to 15 (container-type virtualization) and linking with existing ecosystems such as Kubernetes (registered trademark) and Docker (registered trademark), the module load distribution and more flexible thermal management. The CPU control module 14 must cooperate with the temperature monitoring module 15 to control tasks while constantly monitoring the CPU status, so the CPU control module 14 itself may become a high-load task and become a bottleneck for performance deterioration. be. In multiprocessor and multicore configurations, this problem can be solved to some extent by preparing a module for each CPU and distributing the load. Furthermore, by using containers to link modules, it is possible to more easily control modules according to the system load.
3.OSスケジューラ組み込み型のCPU制御モジュール14
 CPU制御モジュール14をユーザプロセスとして動作せるのではなく、OS12のスケジューラのロードバランシング機能の1つとしてOSスケジューラに統合してもよい。これにより、新しい熱アウエアスケジューラを構築することができる。
3. CPU control module with built-in OS scheduler 14
Instead of operating the CPU control module 14 as a user process, it may be integrated into the OS scheduler as one of the load balancing functions of the OS 12 scheduler. This allows a new thermally aware scheduler to be constructed.
4.潤沢なマルチプロセッサ及びマルチコア構成の制御
 CPUをより潤沢に利用できるマルチプロセッサ及びマルチコア構成では、リアルタイム性が要求される高負荷タスク、リアルタイム性が要求されない高負荷タスク、リアルタイム性が要求されない低負荷タスク、低負荷タスクのそれぞれ4つのCPUを用意し、図7の構成を拡張することができる。
4. Control of abundant multi-processor and multi-core configurations In multi-processor and multi-core configurations that can make more abundant use of the CPU, high-load tasks that require real-time performance, high-load tasks that do not require real-time performance, and low-load tasks that do not require real-time performance By preparing four CPUs for each of the , low-load tasks, and the low-load task, the configuration shown in FIG. 7 can be expanded.
<実施例>
 本技術を利用した実施例を以下に説明する。
<Example>
An example using this technology will be described below.
1.車載システム
 車載システムでは、室内の一定温度下で動作する一般システムとは違い、夏日の炎天下の中でも動作する必要がある。そのため、CPUの熱は一般システムのものより上昇しやすく、CPUが故障しやすくなる。そこで、本技術を適用することで、高負荷タスクによるCPUの熱上昇を抑え、MTBF(平均故障間隔)を大きくし、故障率を下げることが可能となる。
1. In-vehicle systems Unlike general systems that operate at a constant indoor temperature, in-vehicle systems must operate even under the hot summer sun. As a result, the heat of the CPU rises more easily than that of a typical system, making the CPU more likely to malfunction. Therefore, by applying this technology, it is possible to suppress the heat increase in the CPU caused by high-load tasks, increase the MTBF (mean time between failures), and lower the failure rate.
2.自律型ロボティクス
 自律型ロボティクスでは、センシングデータの処理、物体認識、AI処理等のリアルタイム性かつCPUへ負荷のかかるタスクを処理する必要がある。これらの処理をエッジデバイス側で処理する場合、CPUの温度上昇が発生するため、システムのサーマルスロットリングが発動し、CPUの動作周波数が低下する場合がある。その場合、そのCPUコアで動作しているタスクの性能が劣化し、期待する時間内で要求した処理を完了することができなくなる。そこで、本技術を適用することで、CPUの温度上昇を抑えつつ、性能劣化を回避しながらシステムを継続させることができる。また、小型のロボットでは十分な冷却機器を設置するスペースを確保できない場合がある。このような場合でも、本技術を適用することで、冷却デバイスに頼ることなく、ソフトウエア制御で効率的な熱管理を実現することができる。
2. Autonomous Robotics Autonomous robotics needs to process real-time and CPU-intensive tasks such as sensing data processing, object recognition, and AI processing. When these processes are processed on the edge device side, the temperature of the CPU increases, which may trigger system thermal throttling and lower the CPU operating frequency. In this case, the performance of tasks running on that CPU core deteriorates, making it impossible to complete the requested processing within the expected time. Therefore, by applying this technology, it is possible to keep the system running while suppressing the temperature rise of the CPU and avoiding performance deterioration. Furthermore, small robots may not have enough space to install cooling equipment. Even in such cases, by applying this technology, efficient thermal management can be achieved through software control without relying on cooling devices.
3.スマートフォン・タブレット等のモバイル端末
 スマートフォンやタブレットでは、ゲームなどの高負荷なアプリケーションの実行によってCPUの温度が上昇した際、サーマルスロットリングが作動する。これにより、スマートフォンの動作が重くなり、ユーザの操作に対する反応速度が低下する。そこで、本技術を適用することで、サーマルスロットリングが作動する前に、適切な熱管理を実施することが可能となるため、スマートフォンの性能を低下させることがなく、温度上昇を抑えることができる。結果、ユーザビリティの向上につながる。
3. Mobile terminals such as smartphones and tablets On smartphones and tablets, thermal throttling is activated when the CPU temperature rises due to the execution of high-load applications such as games. As a result, the operation of the smartphone becomes slow and the reaction speed to user operations decreases. Therefore, by applying this technology, it is possible to perform appropriate heat management before thermal throttling is activated, so it is possible to suppress temperature rises without degrading smartphone performance. . As a result, it leads to improved usability.
4.任意のプロセッサへの適用
 本技術はCPUに限らず、データや命令を処理する任意のプロセッサに適用することができる。本技術が適用され得るプロセッサの例としては、GPU(Graphics Processing Unit)やLPGA(Laser Programmable Gate Array)などが含まれる。
4. Application to any processor This technology is not limited to CPUs, but can be applied to any processor that processes data and instructions. Examples of processors to which this technology can be applied include GPUs (Graphics Processing Units) and LPGAs (Laser Programmable Gate Arrays).
 <コンピュータの構成例>
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
<Computer configuration example>
The series of processes described above can be executed by hardware or software. When a series of processes is executed by software, the programs that make up the software are installed on the computer. Here, the computer includes a computer built into dedicated hardware and, for example, a general-purpose personal computer that can execute various functions by installing various programs.
 図10は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。 FIG. 10 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processes using a program.
 コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。 In a computer, a CPU (Central Processing Unit) 201, a ROM (Read Only Memory) 202, and a RAM (Random Access Memory) 203 are interconnected by a bus 204.
 バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。 An input/output interface 205 is further connected to the bus 204. An input section 206 , an output section 207 , a storage section 208 , a communication section 209 , and a drive 210 are connected to the input/output interface 205 .
 入力部206は、キーボード、マウス、マイクロフォンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。 The input unit 206 consists of a keyboard, mouse, microphone, etc. The output unit 207 includes a display, a speaker, and the like. The storage unit 208 includes a hard disk, nonvolatile memory, and the like. The communication unit 209 includes a network interface and the like. The drive 210 drives a removable medium 211 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
 以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。 In the computer configured as described above, the CPU 201 executes the above-described series by, for example, loading a program stored in the storage unit 208 into the RAM 203 and executing it via the input/output interface 205 and the bus 204. processing is performed.
 コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。 A program executed by the computer (CPU 201) can be provided by being recorded on a removable medium 211 such as a package medium, for example. Additionally, programs may be provided via wired or wireless transmission media, such as local area networks, the Internet, and digital satellite broadcasts.
 コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。 In the computer, the program can be installed in the storage unit 208 via the input/output interface 205 by installing the removable medium 211 into the drive 210. Further, the program can be received by the communication unit 209 via a wired or wireless transmission medium and installed in the storage unit 208. Other programs can be installed in the ROM 202 or the storage unit 208 in advance.
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。 Note that the program executed by the computer may be a program in which processing is performed chronologically in accordance with the order described in this specification, in parallel, or at necessary timing such as when a call is made. It may also be a program that performs processing.
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。 Here, in this specification, the processing that a computer performs according to a program does not necessarily have to be performed chronologically in the order described as a flowchart. That is, the processing that a computer performs according to a program includes processing that is performed in parallel or individually (for example, parallel processing or processing using objects).
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。 Further, the program may be processed by one computer (processor) or may be processed in a distributed manner by multiple computers. Furthermore, the program may be transferred to a remote computer and executed.
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。 Furthermore, in this specification, a system refers to a collection of multiple components (devices, modules (components), etc.), regardless of whether all the components are located in the same casing. Therefore, multiple devices housed in separate casings and connected via a network, and a single device with multiple modules housed in one casing are both systems. .
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。 Furthermore, for example, the configuration described as one device (or processing section) may be divided and configured as a plurality of devices (or processing sections). Conversely, the configurations described above as a plurality of devices (or processing units) may be configured as one device (or processing unit). Furthermore, it is of course possible to add configurations other than those described above to the configuration of each device (or each processing section). Furthermore, part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) as long as the configuration and operation of the entire system are substantially the same. .
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。 Furthermore, for example, the present technology can take a cloud computing configuration in which one function is shared and jointly processed by multiple devices via a network.
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。 Also, for example, the above-mentioned program can be executed on any device. In that case, it is only necessary that the device has the necessary functions (functional blocks, etc.) and can obtain the necessary information.
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。 Furthermore, for example, each step described in the above flowchart can be executed by one device or can be shared and executed by multiple devices. Furthermore, when one step includes multiple processes, the multiple processes included in that one step can be executed by one device or can be shared and executed by multiple devices. In other words, multiple processes included in one step can be executed as multiple steps. Conversely, processes described as multiple steps can also be executed together as one step.
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。 Note that in a program executed by a computer, the processing of the steps described in the program may be executed in chronological order according to the order described in this specification, in parallel, or in a manner in which calls are made. It may also be configured to be executed individually at necessary timings such as at certain times. In other words, the processing of each step may be executed in a different order from the order described above, unless a contradiction occurs. Furthermore, the processing of the step of writing this program may be executed in parallel with the processing of other programs, or may be executed in combination with the processing of other programs.
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。 Note that the present technology described multiple times in this specification can be independently implemented as a single unit unless a contradiction occurs. Of course, it is also possible to implement any plurality of the present techniques in combination. For example, part or all of the present technology described in any embodiment can be implemented in combination with part or all of the present technology described in other embodiments. Furthermore, part or all of any of the present techniques described above can be implemented in combination with other techniques not described above.
 <構成の組み合わせ例>
 なお、本技術は以下のような構成も取ることができる。
(1)
 プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる制御部
 を有する情報処理装置。
(2)
 制御部は、前記複数のコアのうち、前記高温度コアに対して前記熱的距離が閾値より遠いコアを前記他のコアとする
 前記(1)に記載の情報処理装置。
(3)
 前記複数のコアのそれぞれに対してタスクを実行させた際の前記複数のコアのそれぞれの温度に基づいて、前記熱的距離を推定する熱的距離推定部
 を有する
 前記(1)又は(2)に記載の情報処理装置。
(4)
 前記複数のコアは、論理上の複数の論理コアであり、
 前記熱的距離推定部は、前記プロセッサが有する物理上の複数の物理コアのうち、前記複数の論理コアのそれぞれが対応付けられた前記物理コアを示す対応関係情報を前記温度に基づいて取得する
 前記(3)に記載の情報処理装置。
(5)
 前記熱的距離推定部は、前記複数の物理コアのそれぞれに対する前記複数の物理コアのそれぞれの前記熱的距離を推定する
 前記(4)に記載の情報処理装置。
(6)
 前記熱的距離推定部は、前記複数の論理コアのそれぞれに対する前記複数の論理コアのそれぞれの前記熱的距離を推定する
 前記(4)に記載の情報処理装置。
(7)
 前記制御部は、前記他のコアへ前記タスクを移動させた際に、前記タスクの移動元の前記高温度コア又は前記周辺コアに対して新規のタスクが一時的に割り当てられないようにする
 前記(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
 前記制御部は、前記他のコアへ前記タスクを移動させた際に、前記他のコアに移動させた前記タスクを一時的にブーストする
 前記(1)乃至(7)のいずれかに記載の情報処理装置。
(9)
 前記制御部は、前記他のコアへ前記タスクを移動させた後、前記高温度コアの温度が閾値以下に低下した場合には、前記タスクを移動元の前記高温度コア又は前記周辺コアに移動させる
 前記(1)乃至(8)のいずれかに記載の情報処理装置。
(10)
 前記制御部は、前記高温度コアを有する前記プロセッサと同一のプロセッサのコアを前記他のコアとして前記タスクを移動させる
 前記(1)乃至(9)のいずれかに記載の情報処理装置。
(11)
 前記制御部は、前記高温度コアを有する前記プロセッサとは異なるプロセッサのコアを前記他のコアとして前記タスクを移動させる
 前記(1)乃至(9)のいずれかに記載の情報処理装置。
(12)
 制御部
 を有する
 情報処理装置の
 前記制御部が、プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる
 情報処理方法。
(13)
 コンピュータを
 プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる制御部
 として機能させるためのプログラム。
<Example of configuration combinations>
Note that the present technology can also have the following configuration.
(1)
Based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores that the processor has, among the plurality of cores, a high temperature core whose temperature is higher than a threshold value is operating. or a control unit that moves a task running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core to at least another core different from the high-temperature core. Processing equipment.
(2)
The information processing device according to (1), wherein the control unit selects, among the plurality of cores, a core whose thermal distance is farther than a threshold value from the high-temperature core as the other core.
(3)
(1) or (2) above, comprising a thermal distance estimation unit that estimates the thermal distance based on the temperature of each of the plurality of cores when a task is executed on each of the plurality of cores. The information processing device described in .
(4)
The plurality of cores are a plurality of logical cores,
The thermal distance estimating unit acquires, based on the temperature, correspondence relationship information indicating the physical core to which each of the plurality of logical cores is associated, among the plurality of physical cores that the processor has. The information processing device according to (3) above.
(5)
The information processing device according to (4), wherein the thermal distance estimation unit estimates the thermal distance of each of the plurality of physical cores with respect to each of the plurality of physical cores.
(6)
The information processing device according to (4), wherein the thermal distance estimation unit estimates the thermal distance of each of the plurality of logical cores with respect to each of the plurality of logical cores.
(7)
When the task is moved to the other core, the control unit temporarily prevents a new task from being assigned to the high temperature core or the peripheral core from which the task is moved. The information processing device according to any one of (1) to (6).
(8)
The information according to any one of (1) to (7) above, wherein when the task is moved to the other core, the control unit temporarily boosts the task moved to the other core. Processing equipment.
(9)
After moving the task to the other core, if the temperature of the high-temperature core falls below a threshold, the control unit moves the task to the source high-temperature core or the peripheral core. The information processing device according to any one of (1) to (8) above.
(10)
The information processing device according to any one of (1) to (9), wherein the control unit moves the task using a core of the same processor as the processor having the high-temperature core as the other core.
(11)
The information processing device according to any one of (1) to (9), wherein the control unit moves the task by using a core of a processor different from the processor having the high-temperature core as the other core.
(12)
The control unit of the information processing device has a control unit that determines which of the plurality of cores is selected based on the thermal distance between the cores corresponding to the degree of influence of temperature on other cores on each of the plurality of cores of the processor. , a task running in a high-temperature core whose temperature is higher than a threshold value, or a task running in a peripheral core existing in the thermal distance that exerts a temperature influence on the high-temperature core, at least the high-temperature core. An information processing method that moves the information to another core that is different from the core.
(13)
Based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores that the processor has, among the plurality of cores, a high temperature core whose temperature is above a threshold value is selected. A control unit that moves an operating task, or a task that is operating in a peripheral core existing at a thermal distance that exerts a temperature influence on the high-temperature core, to at least another core different from the high-temperature core. A program to make it work.
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。 Note that this embodiment is not limited to the embodiment described above, and various changes can be made without departing from the gist of the present disclosure. Moreover, the effects described in this specification are merely examples and are not limited, and other effects may also be present.
 1 情報処理システム, 11 CPU, 12 OS(オペレーティングシステム),  13 物理コア熱的距離推定モジュール, 14 CPU制御モジュール, 15 温度監視モジュール 1 Information processing system, 11 CPU, 12 OS (operating system), 13 Physical core thermal distance estimation module, 14 CPU control module, 15 Temperature monitoring module

Claims (13)

  1.  プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる制御部
     を有する情報処理装置。
    Based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores that the processor has, a high temperature core whose temperature is higher than a threshold value is operating. or a control unit that moves a task running in a peripheral core existing at the thermal distance that exerts a temperature influence on the high-temperature core to at least another core different from the high-temperature core. Processing equipment.
  2.  制御部は、前記複数のコアのうち、前記高温度コアに対して前記熱的距離が閾値より遠いコアを前記他のコアとする
     請求項1に記載の情報処理装置。
    The information processing device according to claim 1 , wherein the control unit selects, among the plurality of cores, a core whose thermal distance is farther than a threshold value from the high-temperature core as the other core.
  3.  前記複数のコアのそれぞれに対してタスクを実行させた際の前記複数のコアのそれぞれの温度に基づいて、前記熱的距離を推定する熱的距離推定部
     を有する
     請求項1に記載の情報処理装置。
    The information processing according to claim 1, further comprising: a thermal distance estimation unit that estimates the thermal distance based on the temperature of each of the plurality of cores when each of the plurality of cores executes a task. Device.
  4.  前記複数のコアは、論理上の複数の論理コアであり、
     前記熱的距離推定部は、前記プロセッサが有する物理上の複数の物理コアのうち、前記複数の論理コアのそれぞれが対応付けられた前記物理コアを示す対応関係情報を前記温度に基づいて取得する
     請求項3に記載の情報処理装置。
    The plurality of cores are a plurality of logical cores,
    The thermal distance estimating unit acquires, based on the temperature, correspondence relationship information indicating the physical core to which each of the plurality of logical cores is associated, among the plurality of physical cores that the processor has. The information processing device according to claim 3.
  5.  前記熱的距離推定部は、前記複数の物理コアのそれぞれに対する前記複数の物理コアのそれぞれの前記熱的距離を推定する
     請求項4に記載の情報処理装置。
    The information processing apparatus according to claim 4, wherein the thermal distance estimation unit estimates the thermal distance of each of the plurality of physical cores with respect to each of the plurality of physical cores.
  6.  前記熱的距離推定部は、前記複数の論理コアのそれぞれに対する前記複数の論理コアのそれぞれの前記熱的距離を推定する
     請求項4に記載の情報処理装置。
    The information processing device according to claim 4, wherein the thermal distance estimation unit estimates the thermal distance of each of the plurality of logical cores with respect to each of the plurality of logical cores.
  7.  前記制御部は、前記他のコアへ前記タスクを移動させた際に、前記タスクの移動元の前記高温度コア又は前記周辺コアに対して新規のタスクが一時的に割り当てられないようにする
     請求項1に記載の情報処理装置。
    When the task is moved to the other core, the control unit temporarily prevents a new task from being assigned to the high temperature core or the peripheral core from which the task is moved. The information processing device according to item 1.
  8.  前記制御部は、前記他のコアへ前記タスクを移動させた際に、前記他のコアに移動させた前記タスクを一時的にブーストする
     請求項1に記載の情報処理装置。
    The information processing device according to claim 1, wherein the control unit temporarily boosts the task moved to the other core when the task is moved to the other core.
  9.  前記制御部は、前記他のコアへ前記タスクを移動させた後、前記高温度コアの温度が閾値以下に低下した場合には、前記タスクを移動元の前記高温度コア又は前記周辺コアに移動させる
     請求項1に記載の情報処理装置。
    After moving the task to the other core, if the temperature of the high-temperature core falls below a threshold, the control unit moves the task to the source high-temperature core or the peripheral core. The information processing device according to claim 1.
  10.  前記制御部は、前記高温度コアを有する前記プロセッサと同一のプロセッサのコアを前記他のコアとして前記タスクを移動させる
     請求項1に記載の情報処理装置。
    The information processing device according to claim 1, wherein the control unit moves the task using a core of the same processor as the processor having the high-temperature core as the other core.
  11.  前記制御部は、前記高温度コアを有する前記プロセッサとは異なるプロセッサのコアを前記他のコアとして前記タスクを移動させる
     請求項1に記載の情報処理装置。
    The information processing device according to claim 1, wherein the control unit moves the task by using a core of a processor different from the processor having the high-temperature core as the other core.
  12.  制御部
     を有する
     情報処理装置の
     前記制御部が、プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる
     情報処理方法。
    The control unit of the information processing device has a control unit that determines which of the plurality of cores is selected based on the thermal distance between the cores corresponding to the degree of influence of temperature on other cores on each of the plurality of cores of the processor. , a task running in a high-temperature core whose temperature is higher than a threshold value, or a task running in a peripheral core existing in the thermal distance that exerts a temperature influence on the high-temperature core, at least the high-temperature core. An information processing method that moves the information to another core that is different from the core.
  13.  コンピュータを
     プロセッサが有する複数のコアのそれぞれに対する他のコアへの温度の影響度に対応したコア間の熱的距離に基づいて、前記複数のコアのうち、閾値以上の温度である高温度コアにおいて動作中のタスク、又は、前記高温度コアに対して温度の影響を及ぼす前記熱的距離に存在する周辺コアにおいて動作中のタスクを少なくとも前記高温度コアと異なる他のコアへ移動させる制御部
     として機能させるためのプログラム。
    Based on the thermal distance between cores corresponding to the degree of influence of temperature on other cores for each of the plurality of cores that the processor has, among the plurality of cores, a high temperature core whose temperature is above a threshold value is selected. A control unit that moves an operating task, or a task that is operating in a peripheral core existing at a thermal distance that exerts a temperature influence on the high-temperature core, to at least another core different from the high-temperature core. A program to make it work.
PCT/JP2023/022684 2022-07-08 2023-06-20 Information processing device, information processing method, and program WO2024009747A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022110135 2022-07-08
JP2022-110135 2022-07-08

Publications (1)

Publication Number Publication Date
WO2024009747A1 true WO2024009747A1 (en) 2024-01-11

Family

ID=89453225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/022684 WO2024009747A1 (en) 2022-07-08 2023-06-20 Information processing device, information processing method, and program

Country Status (1)

Country Link
WO (1) WO2024009747A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108834A1 (en) * 2006-06-28 2014-04-17 Mark A. Trautman Method, system, and apparatus for dynamic thermal management
JP2014514660A (en) * 2011-04-14 2014-06-19 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Dynamic mapping of logical cores
US20140366030A1 (en) * 2013-06-06 2014-12-11 Empire Technology Development, Llc Shared cache data movement in thread migration
US20170277564A1 (en) * 2016-03-25 2017-09-28 International Business Machines Corporation Thermal-And Spatial-Aware Task Scheduling
US20180143862A1 (en) * 2016-11-18 2018-05-24 Qualcomm Incorporated Circuits and Methods Providing Thread Assignment for a Multi-Core Processor
CN109918195A (en) * 2019-01-18 2019-06-21 华南理工大学 Many-core system processor resource dispatching method based on thermal sensing dynamic task migrating
US20200073726A1 (en) * 2018-08-29 2020-03-05 International Business Machines Corporation Learning-based thermal estimation in multicore architecture

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108834A1 (en) * 2006-06-28 2014-04-17 Mark A. Trautman Method, system, and apparatus for dynamic thermal management
JP2014514660A (en) * 2011-04-14 2014-06-19 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド Dynamic mapping of logical cores
US20140366030A1 (en) * 2013-06-06 2014-12-11 Empire Technology Development, Llc Shared cache data movement in thread migration
US20170277564A1 (en) * 2016-03-25 2017-09-28 International Business Machines Corporation Thermal-And Spatial-Aware Task Scheduling
US20180143862A1 (en) * 2016-11-18 2018-05-24 Qualcomm Incorporated Circuits and Methods Providing Thread Assignment for a Multi-Core Processor
US20200073726A1 (en) * 2018-08-29 2020-03-05 International Business Machines Corporation Learning-based thermal estimation in multicore architecture
CN109918195A (en) * 2019-01-18 2019-06-21 华南理工大学 Many-core system processor resource dispatching method based on thermal sensing dynamic task migrating

Similar Documents

Publication Publication Date Title
US20240029488A1 (en) Power management based on frame slicing
Bateni et al. Co-optimizing performance and memory footprint via integrated cpu/gpu memory management, an implementation on autonomous driving platform
US9619378B2 (en) Dynamically optimizing memory allocation across virtual machines
US9946563B2 (en) Batch scheduler management of virtual machines
US8424007B1 (en) Prioritizing tasks from virtual machines
EP1715405A1 (en) Processing method, system and computer program product for dynamic allocation of processing tasks in a multiprocessor cluster platforms with power adjustment
US20180225155A1 (en) Workload optimization system
CN103593242A (en) Resource sharing control system based on Yarn frame
US20130167152A1 (en) Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method
KR20130061747A (en) Providing per core voltage and frequency control
US10768684B2 (en) Reducing power by vacating subsets of CPUs and memory
US11422858B2 (en) Linked workload-processor-resource-schedule/processing-system—operating-parameter workload performance system
KR20160081815A (en) Electronic system with data management mechanism and method of operation thereof
US11216052B2 (en) Modifying an operating state of a processing unit based on waiting statuses of blocks
Fan Job scheduling in high performance computing
Noor et al. Iotdoc: A docker-container based architecture of iot-enabled cloud system
US9934147B1 (en) Content-aware storage tiering techniques within a job scheduling system
US10540202B1 (en) Transient sharing of available SAN compute capability
US9417924B2 (en) Scheduling in job execution
JP2006277637A (en) Multiprocessor computer system for allocating job by temperature monitoring, and computer program
WO2024009747A1 (en) Information processing device, information processing method, and program
US20130346983A1 (en) Computer system, control system, control method and control program
US20230143270A1 (en) Apparatus and method with scheduling
Kim et al. Reducing memory interference latency of safety-critical applications via memory request throttling and Linux Cgroup
WO2022166679A1 (en) Computing core, computing core temperature adjustment method and device, medium, chip, and system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23835281

Country of ref document: EP

Kind code of ref document: A1