WO2010137233A1 - マルチプロセッサシステムにおける省電力制御装置およびモバイル端末 - Google Patents
マルチプロセッサシステムにおける省電力制御装置およびモバイル端末 Download PDFInfo
- Publication number
- WO2010137233A1 WO2010137233A1 PCT/JP2010/002884 JP2010002884W WO2010137233A1 WO 2010137233 A1 WO2010137233 A1 WO 2010137233A1 JP 2010002884 W JP2010002884 W JP 2010002884W WO 2010137233 A1 WO2010137233 A1 WO 2010137233A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- processor
- task
- performance
- multiprocessor system
- power saving
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to a power saving control apparatus in a multiprocessor system including a plurality of processors that perform distributed processing of a plurality of tasks, and that includes a performance guarantee task and a performance non-guaranteed task, and particularly guarantees real-time performance.
- the present invention relates to a technique for effectively reducing power consumption.
- the present invention also relates to a mobile terminal such as a digital still camera having the same function as described above.
- Real-time property refers to the ability to complete a predetermined task within a predetermined time.
- the technique of the present invention is preferably applied particularly to an information processing apparatus adopting a multiprocessor system.
- a multiprocessor system Since a multiprocessor system is composed of a plurality of processors, it consumes more power than a single processor system composed of a single processor. In a multiprocessor system, distributed processing is performed by a plurality of processors, so that the processing efficiency of the entire system is high, but it is not necessary to perform distributed processing using all the processors in a low load state. Operating all processors in a low load state consumes more power than necessary for the system. Based on these reasons, techniques for reducing power consumption in a low load state have been proposed.
- a power saving control system described in Patent Document 1 is a multiprocessor system including two or more processors (CPUs), and a state monitor that constantly detects an operating state of the system, A state controller is provided that performs state transition control on a designated processor when the operating state of the system detected by the state monitor changes beyond a predetermined boundary condition (threshold).
- state transition control refers to mutual switching between power saving control that changes the processor operating state from the normal operating state to the standby state and return control that changes the processor operating state from the standby state to the normal operating state. Is to do.
- the system operation state includes a normal operation state and an operation standby state in the processor operation state, and further includes a keyboard input wait state and a low load state.
- the value representing the current load state exceeds a predetermined threshold value.
- the value representing the current load state of application execution in the entire system exceeds a predetermined threshold value
- a value representing a scheduling state for distributing the task for realizing the function of the application to each processor exceeds a predetermined threshold value, A state that satisfies at least one of the above.
- the conventional example includes a system state monitoring unit as a state monitor and a system state control unit as a state controller.
- the system operation state that is, the time-varying element value (bus load state, application execution load state, scheduling state) exceeds a predetermined threshold value.
- the processor operation state is changed from the normal operation state to the operation standby state.
- the operation state of the processor is changed from the operation standby state to the normal operation state.
- the operating state of each processor is monitored, and if the load on a specific processor continues to be low due to waiting for key input, etc., the optimal consumption is achieved by switching the clock supplied to the processor to a lower frequency. Maintain power operation.
- the feature of the conventional example is (A) Based on “element values that change over time in the system” such as a bus load state, an application execution load state, and a scheduling state, (B) Control of the operating state of the processor to be controlled (switching between power saving control for switching from the normal operating state to the standby state for operation and return control for switching from the standby state to the normal operating state) is also performed over time. Transition, That's what it means. In other words, it is important that both the monitoring target and the control target are accompanied by temporal changes.
- time-dependent element values such as a bus load state, an application execution load state, and a scheduling state, which are system operation states, are used as judgment criteria. Therefore, it is necessary to constantly monitor the element value. Further, the operation state of the processor is controlled to be switched between the power saving control and the return control according to the determination result, and this control itself also changes with time. That is, a temporal circulation occurs in which a temporal change in the monitoring target appears as a temporal change in the control target, and further, a temporal change in the control target induces a temporal change in the monitoring target. Such constant monitoring and control with temporal circulation results in a decrease in processing speed of the multiprocessor system.
- the control for reducing the frequency of the supply clock to the processor is based on the condition that the processor load is in a low load state, the frequency of the supply clock cannot be reduced unless the processor load is in a low load state. This is an obstacle to effectively reducing power consumption.
- the present invention was created in view of such circumstances, and in a multiprocessor system in which performance assurance tasks and performance non-guaranteed tasks are mixed, a predetermined task must be completed within a predetermined time. It is an object of the present invention to provide a power saving control device capable of effectively reducing power consumption while guaranteeing that the above-mentioned constraint is satisfied.
- the power saving control device in the multiprocessor system is: A multiprocessor system including a plurality of processors that perform distributed processing of a plurality of tasks in which performance guarantee tasks and non-performance guarantee tasks are mixed, Based on the correlation between each processing performance value indicating the number of processing cycles (the number of execution instructions) of the performance guarantee task and each processing capability value indicating the task processing capability of the processor, the processing of the plurality of tasks is performed.
- An allocation controller for allocating the performance guarantee tasks to the processors so that the required number of processors is minimized;
- An operation state controller that puts the first processor, to which the assignment of the performance guarantee task is released by the assignment controller, into a power saving state; Is provided.
- the processing capability value Wj is the total processing amount of tasks that the processor Pj can process within the real-time performance time ⁇ i.
- the allocation controller allocates the performance guarantee task ⁇ i to the processor Pj so that the number of processors used is minimized based on the correlation between the processing performance value ⁇ i of the performance guarantee task ⁇ i and the processing capability value Wj of the processor. Take control. Details will be described below.
- the surplus power here refers to a state in which a performance guarantee task that has been assigned to another processor can be assigned and changed (moved) to that processor. Such a task change is a reallocation of a performance guarantee task.
- a processor (hereinafter referred to as a first processor) in which assignment of the performance guarantee task is canceled appears, and the number of appearances increases. .
- the operation state controller puts the first processor into a power saving state. Even if a performance non-guaranteed task is assigned to the first processor to which the power saving state is applied, it is a performance non-guaranteed, and therefore there is no problem in performance guarantee even in the power saving state.
- the performance assurance tasks for the processors are made possible so that tasks can be executed with the minimum number of processors while maintaining real-time performance. Allocation control can be performed.
- the power saving state is applied to the operating state of the first processor in which the performance guarantee task assignment has been eliminated, it is assumed that the processor load becomes a low load state over time.
- power consumption can be effectively reduced while guaranteeing real-time performance.
- FIG. 1 It is a block diagram which shows the structure of the power saving control apparatus in the multiprocessor system of Embodiment 1 of this invention. It is function explanatory drawing showing the function of the principal part of the power saving control apparatus in Embodiment 1 of this invention. It is a figure which shows the structure of the task management information of the power saving control apparatus in Embodiment 1 of this invention. It is a figure which shows the specific content of the task management information before reallocation of the power saving control apparatus in Embodiment 1 of this invention. It is a figure which shows an example of the MIPS value of the processor of the power saving control apparatus in Embodiment 1 of this invention. It is explanatory drawing of the surplus performance of the processor of the power saving control apparatus in Embodiment 1 of this invention.
- the present invention includes (1) Whether the allocation controller can perform a reassignment process of reassigning the performance guarantee task after the assignment process from the second processor to which the performance guarantee task is assigned to the third processor. And determining that reassignment is possible, the second processor is configured to reassign the performance guarantee task after the assignment processing to the third processor. There is a mode.
- the allocation controller compares the processing performance value of the performance assurance task after the allocation process with a surplus performance indicating a processing capacity of the third processor, and then performs the process of the performance assurance task after the allocation process. It is configured to determine that the reallocation process is possible when a performance value is equal to or less than the remaining capacity of the third processor. There is a mode.
- the third guarantee is made when it is determined whether or not the performance guarantee task ⁇ i can be reassigned to the third processor.
- the remaining capacity Mj of the processor is examined. That is, when the processing performance value ⁇ i of the performance guarantee task ⁇ i after the allocation process is smaller than or equal to the remaining capacity Mj of the third processor, it is determined that the reallocation is possible, and the performance assurance task ⁇ i is determined as the third performance guarantee task ⁇ i. Reassign to processor.
- the allocation controller is configured to set the processing capability value by a function having a real-time performance time required by the performance assurance task as a variable; There is a mode.
- the processing capability value is set with reference to the real-time performance time required by the performance assurance task, the setting accuracy of the processing capability value is further improved.
- the processing capability value Wj of the processor Pj can be collated with the real-time performance time ⁇ i required by the performance guarantee task ⁇ i.
- the allocation controller allocates each performance assurance task to the processor so that movement of the performance assurance task between processors is minimized. There is a mode.
- the reallocation itself can be made more efficient.
- the allocation controller is configured to give priority to minimizing contention between processors of resources used in the performance assurance task to be reassigned in the reassignment process. There is a mode.
- the allocation controller is configured to pre-assign the group of performance assurance tasks that need to be processed simultaneously in a sequence to the same third processor. There is a mode.
- Dispatch refers to assigning processors to a plurality of tasks processed by an operating system (OS) according to priority (also called scheduling).
- OS operating system
- priority also called scheduling
- the allocation controller performs reallocation processing of the performance non-guaranteed task after performing reallocation processing of the performance assurance task, and at that time, the reallocation processing of the performance non-guaranteed task to the third processor Configured to ban, There is a mode.
- the performance assurance task reassignment for the task reassignment for minimizing the number of processors used, priority is given to the performance assurance task reassignment, and when it is completed, the performance non-guaranteed task is reassigned. At that time, it is possible to reassign non-performance-guaranteed tasks while keeping the efficiency of the total task distribution processing of the multiprocessor system as high as possible.
- the operation state controller is configured to dynamically change the allocation of the memory to each of the processors when allocating a memory that exchanges data with the processor to the processor.
- the operation state controller is configured to dynamically change the allocation of the memory to each of the processors when allocating a memory that exchanges data with the processor to the processor.
- (11) Further, in the configuration of (10) above, Dynamically changing the memory allocation is to reallocate the memory allocated to the first processor to the second processor. There is a mode.
- the processor includes a cache having a snooping function
- the operational state controller is configured to change a snoop mode of the cache; There is a mode.
- the snooping function here refers to a function that monitors whether the memory contents do not match the cache contents by DMA (Direct Memory Access) from a peripheral device, and discards the cache contents if necessary. It is.
- DMA Direct Memory Access
- Changing the snoop mode means stopping the snoop mode of the cache in the first processor. There is a mode.
- the operation state controller changes an operation state of a peripheral device connected to the first processor instead of putting the first processor in a power saving state, or saves the first processor in a power saving state. And is configured to change the operating state of the peripheral device, There is a mode.
- a mobile terminal provides: The multiprocessor system; A power saving control device in the multiprocessor system of the present invention; Is provided.
- the multiprocessor system operates in a normal operation mode operated in a normal operation state and a low power consumption operation mode operated in a low power consumption state, respectively.
- the allocation controller and the operation state controller are configured to be activated only in the low power consumption mode state. There is a mode.
- the multiprocessor system is configured to be switchable between the normal operation mode and the low power consumption mode by a user. There is a mode.
- the multiprocessor system is configured such that an operation mode is switched from the normal operation mode to the low power consumption mode when a remaining power amount of a battery that supplies power to the multiprocessor system is a predetermined amount or less. There is a mode.
- FIG. 1 is a block diagram showing the configuration of a power saving control device in a multiprocessor system in which performance guarantee tasks and non-performance guarantee tasks are mixed according to the first embodiment of the present invention.
- the power saving control device includes a CPU (Central Processing Unit) 1, a ROM (Read Only Memory) 2, a RAM (Random Access Memory) 3, a clock control unit 4, a peripheral device 5, and processors P1 to P4. Is provided. These components 1 to 5 and P1 to P4 are connected to each other via a bus 6.
- the peripheral device 5 includes a plurality of tasks, and here includes first to eighth tasks T1 to T8.
- Reference numeral 10 denotes an operating system (OS) configured by a functional combination of the CPU 1, the ROM 2, and the RAM 3.
- the operating system 10 includes at least an allocation controller E1 and an operation state controller E2.
- the allocation controller E1 is configured to control allocation so that the number of processors used is minimized when a plurality of tasks are allocated to a plurality of processors Pj (details will be described later).
- the power saving state is applied.
- the operation state controller E2 performs the application through the control of the clock frequency in the clock control unit 4.
- the processing capability qi is often represented by a MIPS value.
- the allocation control to each processor Pj is performed so as to minimize the number of processors used.
- the operation state controller E2 is configured to apply the power saving state to the operation state of the processor (first processor) in which the assignment of the performance guarantee task ⁇ i is canceled as a result of the assignment processing by the assignment controller E1. Is done.
- the operation state controller E2 is configured to apply the power saving state by changing the clock frequency in the clock control unit 4, for example.
- FIG. 2 is a function explanatory diagram showing functions of main parts of the power saving control device according to the first embodiment.
- the operating system 10 operates on the processors P1 to P4, and controls the assignment of the first to eighth tasks T1 to T8 to the processors P1 to P4 and the operating states of the processors P1 to P4.
- the assignment controller E1 assigns the first to eighth tasks T1 to T8 to the processors P1 to P4 according to a predetermined algorithm as the previous stage assignment process. Now, as shown in FIG. 2, it is assumed that the following assignments are performed. The following assignment is based on the premise that the first to fifth tasks T1 to T5 are performance guarantee tasks ⁇ and the sixth to eighth tasks T6 to T8 are performance non-guaranteed tasks ⁇ . Assign the first task T1 and the fifth task T5 to the processor P1. Assign the second task T2 and the sixth task T6 to the processor P2. Assign the third task T3 and the seventh task T7 to the processor P3. Assign the fourth task T4 and the eighth task T8 to the processor P4.
- the first to fifth tasks T1 to T5 (performance guarantee task ⁇ ) are allocated and allocated to the four processors P1 to P4.
- the allocation controller E1 Whether there is a task that can be reassigned from the currently assigned processor to another processor (hereinafter referred to as a reassignable task) among the first to fifth tasks T1 to T5, Whether there is a processor (hereinafter referred to as a third processor) capable of reassignment of the reassignable task, Respectively.
- the allocation controller E1 performs the above determination based on the correlation between each of the processing performance values ⁇ 1 to ⁇ 5 and each of the processing capacity values W1 to W4 of the processor. Details thereof will be described later.
- the processing performance values ⁇ 1 to ⁇ 5 are the processing performance values of the performance guarantee tasks ⁇ (first to fifth tasks T1 to T5) assigned to the processors P1 to P4.
- the values W1 to W4 are processing capability values that take into account the real-time performance times ⁇ 1 to ⁇ 5 required by the performance guarantee tasks ⁇ (first to fifth tasks T1 to T5) assigned to the processors P1 to P4. That is.
- FIG. 3 shows the structure of the task management information 20 held by the first to eighth tasks T1 to T8, respectively.
- the task management information 20 includes real-time flag information a1 indicating whether or not the processing requires real-time performance, real-time performance information a2 indicating performance necessary for guaranteeing real-time performance, and actual processing performance. Processing performance information a3.
- the operating system 10 determines whether the task Ti is a performance guarantee task ⁇ (task that requires real-time performance). , It is determined whether the task is a non-guaranteed task ⁇ (a task for which real-time performance is not required).
- a determination process is simply referred to as a determination process.
- the operating system 10 selects an allocation combination that minimizes the number of processors used from among a plurality of allocation combinations that exist in the task Ti that is determined to be the performance guarantee task ⁇ in the determination process.
- a selection process is simply referred to as a selection process.
- the operating system 10 performs the selection process based on the real-time performance information a2 and the processing performance information a3 of the task Ti.
- the operating system 10 assigns the performance guarantee task ⁇ to the processor based on the selected assignment combination.
- the allocation combination includes a combination for reassigning processors (hereinafter referred to as a reassignment combination). The determination process and the selection process described above are performed by the allocation controller E1 in the operating system 10.
- the first task T1 is a performance guarantee task ⁇
- the real time flag information a1 is “1”.
- Real-time performance information a2 real-time performance time ⁇ 1) is 10 ms.
- the fifth task T5 is the performance guarantee task ⁇ .
- the real time flag information a1 is “1”.
- Real-time performance information a2 real-time performance time ⁇ 5) is 10 ms.
- the second task T2 is a performance guarantee task ⁇ ,
- the real time flag information a1 is “1”.
- Real-time performance information a2 (real-time performance time ⁇ 2) is 12 ms.
- the sixth task T6 is a performance non-guaranteed task ⁇ .
- Real-time flag information a1 is “0”.
- Real-time performance information a2 (real-time performance time ⁇ 6) is 0 ms.
- the third task T3 assigned to the processor P3 is This task T3 corresponds to the performance guarantee task ⁇ ,
- the real time flag information a1 is “1”.
- Real time performance time ⁇ 3 is 12 ms,
- the seventh task T7 also assigned to the processor P3 is This task T7 corresponds to the performance non-guaranteed task ⁇ , Real-time flag information a1 is “0”.
- Real time performance time ⁇ 7 is 0 ms
- the fourth task T4 assigned to the processor P4 is This task T4 corresponds to the performance guarantee task ⁇ ,
- the real time flag information a1 is “1”.
- Real time performance time ⁇ 4 is 10 ms
- the eighth task T8 assigned to the processor P4 is This task T8 corresponds to the performance non-guaranteed task ⁇ , Real-time flag information a1 is “0”.
- Real time performance time ⁇ 8 is 0 ms
- the MIPS value of the processing capability q1 per unit time of the processor P1 is 10 MIPS
- the MIPS values of the processing capabilities q2, q3, and q4 of the processors P2, P3, and P4 are all 10 MIPS.
- MIPS Million Instructions Per Per Second
- 1 MIPS is a processing capacity for executing 1 million instructions per second.
- the allocation controller E1 refers to the real-time performance information a2 and the processing performance information a3.
- the first task T1 it is necessary to execute 50 KI processing within 10 ms.
- the second task T2 it is necessary to execute 60 KI processing within 12 ms.
- the third task T3 it is necessary to execute 50 KI processing within 12 ms.
- the fourth task T4 it is necessary to execute 40 KI processing within 10 ms.
- the fifth task T5 it is necessary to execute 10 KI processing within 10 ms. Are determined respectively.
- the processing capability value Wj of the processor Pj taking into account the real-time performance time ⁇ i of the task Ti (Ta, Tb) is obtained by multiplying the processing capability qj per unit time of the processor Pj by the real-time performance time ⁇ i.
- Wj qj ⁇ ⁇ i It is.
- This processing capability value Wj corresponds to the rectangular area (the entire area) surrounded by a thick line in FIG.
- the horizontal width of the rectangle represents the processing capability qj of the processor Pj per unit time, and the vertical axis direction is the time axis direction.
- the processing capacity per unit time of the processor P4 is q4 and the real-time performance time of the fourth task T4, which is the performance guarantee task ⁇ assigned to the processor P4, is ⁇ 4, the processing corresponding to the real-time performance time ⁇ 4 of the processor P4
- the performance assurance tasks assigned to the processor Pj are ⁇ a and ⁇ b, the processing performance value of the performance assurance task ⁇ a is ⁇ a, and the processing performance value of the performance assurance task ⁇ b is ⁇ b, the performance assurance task ⁇ a is currently assigned to the processor Pj.
- the total processing performance value ⁇ i of the performance assurance tasks ⁇ a and ⁇ b ⁇ i ⁇ a + ⁇ b It becomes.
- the surplus performance Mj is the performance guarantee task assigned to the processor Pj from the multiplication result of the processing capability qj (MIPS value) per unit time of the processor Pj and the value of the real-time performance time ⁇ i in the determination target task.
- the surplus performance Mj calculated in this way corresponds to the white portion inside the thick rectangle in FIG.
- Mj the minimum remaining capacity
- FIG. 7 is an operation explanatory diagram of the power saving control device according to the first embodiment.
- the vertical axis width of the processor P1 and the vertical axis width of the processor P4 are equal to each other, and the vertical axis width of the processor P2 and the vertical axis width of the processor P3 are equal to each other.
- the allocation controller E1 extracts the processors P1 to P4 having the minimum value of the remaining capacity Mj by searching. Among the remaining performances M1 to M4 (40KI, 60KI, 70KI, 60KI) of the processors P1 to P4, the minimum remaining performance is the remaining performance M1 (40KI) of the processor P1. Therefore, the allocation controller E1 determines that the processor having the minimum surplus performance is the processor P1.
- the processor (processor P1) having the minimum surplus performance is the third processor.
- the third processor means a processor that can be a task reassignment destination (including candidates).
- the allocation controller E1 determines whether reassignment is possible. That is, the assignment controller E1 recognizes the performance guarantee task ⁇ assigned to the processors P2 to P4 other than the processor P1 (third processor). In the present embodiment, the second task T2, the third task T3, and the fourth task T4 are recognized as the performance guarantee task ⁇ . The allocation controller E1 determines whether or not there is a performance guarantee task ⁇ that can be reassigned to the processor P1 (third processor) among these three performance guarantee tasks ⁇ (T2, T3, T4). .
- the reassignable performance guarantee task ⁇ is referred to as a reassignable task
- the processor to which the reassignable task is assigned is referred to as a second processor.
- the second processor means a processor that can be a task reassignment source (including candidates).
- the above determination is made based on the remaining performance M1 (40 KI) of the third processor (processor P1).
- the processing performance value ⁇ 2 (60 KI) of the second task T2 is larger than the surplus performance M1 (40 KI) of the processor P1
- the processing performance value ⁇ 3 (50 KI) of the third task T3 is larger than the remaining performance M1 (40 KI) of the third processor (processor P1)
- the third task T3 is transferred to the third processor (processor P1). It is impossible to reassign.
- the processing performance value ⁇ 4 (40 KI) of the fourth task T4 falls within the range of the remaining performance M1 (40 KI) of the third processor (processor P1)
- the fourth task T4 is reassigned to the processor P1. It is possible.
- the allocation controller E1 as shown by the arrows from (a) to (b) in FIG. -The processor P4 as the second processor is determined as the task reassignment source, -The processor P1, which is the third processor, is determined as the task reassignment destination, Confirm the fourth task T4 assigned to the processor P4 as a reassignable task, On top of that, Reassign (move) the fourth task T4 from the processor P4 to the processor P1.
- the remaining performance of each of the processors P1 to P4 changes as follows.
- the allocation of the performance guarantee task ⁇ in the processor P1 is 100%, and the remaining performance M1 is 0 KI.
- the remaining capacity M2 remains 60KI.
- the remaining performance M3 remains at 70 KI. All allocation of the performance guarantee task ⁇ in the processor P4 is canceled, and the remaining performance M4 becomes 100 KI.
- the assignment controller E1 is configured such that the third processor (task reassignment destination candidate: the value of the surplus performance Mj is the smallest) at this time is the processor having the surplus performance M2 (60 KI). It is determined that it has been replaced with P2. Further, as shown in FIG. 7B, the allocation controller E1 sets the processor P3 that has not performed the reallocation of the performance guarantee task ⁇ to the second processor except for the third processor (processor P2).
- the performance guarantee task ⁇ (third task T3) assigned to the processor P3 (second processor) is certified as a reassignable task.
- the allocation controller E1 determines whether or not the third task T3 (reassignable task) can be reassigned to the processor P2 (third processor). Judgment is based on M2 (60 KI). In this case, since the processing performance value ⁇ 3 of the third task T3 is 50 KI and the value falls within the range of the remaining capacity M2 (60 KI) of the processor P2, the allocation controller E1 executes the third task T3. Based on this certification, the processor P3 (second processor) is certified as a task reassignment source, and the processor P2 (third processor) is recognized as reassignable to the processor P2 (third processor). Processor) as a task reassignee.
- the assignment controller E1 performs the third task T3 (reassignable task) assigned to the processor P3 as shown by the arrow from (b) in FIG. 7 to (c) in FIG. ) Is reassigned (moved) to the processor P2.
- the remaining capacity M2 of the processor P2 becomes 10 KI, and the processor P3 cancels the assignment of all performance guarantee tasks.
- the remaining performance of each processor changes as follows.
- the allocation of the performance guarantee task ⁇ in the processor P1 is 100%, and the remaining performance M1 is 0 KI.
- the allocation of the performance guarantee task ⁇ in the processor P2 decreases, and the surplus performance M2 becomes 10 KI, -All task assignments in the processor P3 are canceled, and the remaining capacity M3 is 120 KI. All task assignments in the processor P4 are canceled, and the remaining capacity M4 is 100 KI.
- a first task T1, a fifth task T5, and a fourth task T4 are assigned to the processor P1
- a second task T2, a sixth task T6, and a third task T3 are assigned to the processor P2
- a seventh task T7 is assigned to the processor P3
- the eighth task T8 is assigned to the processor P4; It becomes a state.
- a first task T1, a fifth task T5, and a fourth task T4 are assigned to the processor P1
- a second task T2 and a third task T3 are assigned to the processor P2
- the processor P3 and the processor P4 have no performance guarantee task ⁇ assigned, As a result, there are no more performance assurance tasks ⁇ that can be reassigned.
- the operation state controller E2 When the task assignment processing and the performance assurance task ⁇ reassignment processing by the assignment controller E1 are completed, the operation state controller E2 is started next, and the assignment of the first processor (performance assurance task ⁇ is canceled). The power saving mode is applied to the operating states of the processor P3 and the processor P4.
- the operation state controller E2 controls the clock control unit 4 to stop the supply of clocks to the processors P3 and P4. Since the performance guarantee task ⁇ is not assigned to the processors P3 and P4, no problem occurs even if the supply of the clock is stopped.
- FIG. 8 shows the result of task reassignment (movement) starting from the state shown in FIG. 4 as described above.
- the first to fifth tasks T1 to T5 in which the real-time flag information a1 is “1” are aggregated into the processor P1 and the processor P2, and the allocation that minimizes the number of processors used is realized.
- FIG. 9 is a flowchart showing the operation of the power saving control apparatus according to the first embodiment. The operation will be described below according to this flowchart.
- the allocation controller E1 extracts a third processor (candidate for task reassignment destination) having a minimum value of the remaining capacity Mj by searching.
- the calculation method of the reserve capacity performance Mj is as follows.
- the assignment controller E1 includes a task that can be reassigned to the third processor in a state where performance guarantee is possible, in the group of performance guarantee tasks ⁇ assigned to processors other than the third processor. It is determined whether or not (reassignable task) exists. In the above operation example, it is determined that the fourth task T4 assigned to the processor P4 corresponds to a reassignable task.
- Step S3 is a process of branching based on the detection result of the reassignable task in step S2.
- the third processor extracted in step S1 is certified as a task reassignment destination, and the reassignable task whose existence is confirmed in step S3 is assigned.
- the process branches to step S4.
- the process branches to step S5 without the third processor extracted in step S1 being recognized as a task reassignment destination.
- step S4 the reassignable task is moved (reassigned) from the second processor determined as the task reassignment source to the third processor determined as the task reassignment destination, and then the process proceeds to step S2 again. To do.
- step S2 When the loop processing of steps S2, S3, and S4 is repeated to complete the reassignable task collation processing and reassignment processing for the third processor extracted in step S1, the process proceeds from step S3 to step S5.
- step S5 it is determined whether or not a processor in which task reassignment is incomplete or a reassignable task remains. If it is determined in step S5 that these processors and tasks remain, steps S1 to S1 to S5 are repeated for the remaining processors and tasks.
- step S5 If it is determined in step S5 that there are no remaining processors or tasks that can be reassigned, the process proceeds to step S6.
- step S ⁇ b> 6 the operation state controller E ⁇ b> 2 stops the clock supply to the processor (first processor) from which all the assignments of the performance guarantee task ⁇ have been canceled via the clock control unit 4. This reduces power consumption.
- ... element values (specifically, the processing capability value Wj of the processor Pj) in consideration of n) are used as control factors.
- the processing performance value ⁇ i of the performance assurance task ⁇ to be determined (hereinafter referred to as the determination target task ⁇ ′) is compared with the remaining performance Mj of a processor other than the second processor to which the determination target task ⁇ ′ is assigned. To do.
- the third processor whose remaining performance Mj is equal to or greater than the processing performance value ⁇ i (Pj ⁇ Mj) determines that there is room for executing the determination target task ⁇ ′. Reassign (move) the determination target task ⁇ ′ to the third processor.
- the operation state controller E2 applies the power saving state to the first processor in which the assignment of the performance guarantee task ⁇ is all canceled by performing the task reassignment process by the assignment controller E1.
- the power-saving control device of the first embodiment constantly changes element values that change over time in a multiprocessor system in which the performance guarantee task ⁇ and the performance non-guarantement task ⁇ coexist. Real-time performance without monitoring or keeping the processor operating state under constant control, and without assuming that the processor load becomes low over time as in the prior art. As a result, power consumption can be effectively reduced.
- the change of the cache mode is specifically the following control. That is, in a cache having a snooping function, there may be a discrepancy between memory contents and cache contents due to DMA (Direct Memory Access) from a peripheral device during normal operation. For this reason, conventionally, when such a mismatch occurs, control is performed to discard the cache contents. Hereinafter, such control is referred to as snooping control. In changing the cache mode, the snooping control of the first processor in which the assignment of the performance guarantee task ⁇ is canceled is stopped. This makes it possible to increase the efficiency of the total task distribution processing of the multiprocessor system.
- DMA Direct Memory Access
- the performance non-guaranteed task ⁇ is determined based on the real-time flag information a1, but for example, a task whose value of the real-time performance information a2 or the processing performance information a3 is “0” is not It may be determined as guaranteed task ⁇ (* 3).
- the processor having the maximum surplus performance Mj may be preferentially designated as the third processor (task reassignment destination candidate), or simply the third processor (task reassignment) in ascending or descending order of the processor numbers. You may search for (destination candidate) (* 4).
- the processing time of this loop may be long. is there. Therefore, it may be configured to separately perform a process of determining whether to execute the steps of the flowchart shown in FIG. 9 (that is, determining whether to shift the process to “start” in FIG. 9). (* 5).
- the allocation controller E1 and the operation state controller E2 are composed of the operating system 10 in which the CPU 1, the ROM 2, and the RAM 3 are functionally combined.
- the assignment controller E1 and the operation state controller E2 may be configured from a dedicated DSP (Digital Signal Processor) (* 6).
- the second embodiment of the present invention is configured so that the performance assurance task ⁇ is reassigned to the processor on the condition that there is no contention for the resources used by the performance assurance task ⁇ .
- FIG. 1 in the case of the first embodiment is used.
- FIG. 10 shows the structure of the task management information 20 held by the first to eighth tasks T1 to T8 in the case of the second embodiment.
- the task management information 20 holds used resource information a4 indicating resources used by each task. is doing.
- FIG. 11 shows specific contents of the task management information 20 for the first to eighth tasks T1 to T8 in the case of the second embodiment.
- FIG. 11 shows specific contents of the task management information 20 for the first to eighth tasks T1 to T8 in the case of the second embodiment.
- FIG. 11 what is different from the first embodiment (FIG. 4) is a real-time performance time ⁇ i.
- the real-time performance times ⁇ 1, ⁇ 4 of the processors P1, P4 are equally 10 ms
- the real-time performance times ⁇ 2, ⁇ 3 of the processors P2, P3 are equally 12 ms.
- the real-time performance times ⁇ 1, ⁇ 4 and the real-time performance times ⁇ 2, ⁇ 3 are different.
- the real-time performance times ⁇ 1 to ⁇ 5 of all the performance guarantee tasks ⁇ (first to fifth tasks T1 to T5) are equal to each other and are all 10 ms.
- FIG. 12 corresponds to FIG.
- the configuration of the second embodiment (FIG. 11) is compared with the configuration of the first embodiment (FIG. 4).
- the allocation controller E1 refers to the used resource information a4,
- the first task T1 uses resource A and resource B;
- the second task T2 uses resource C and resource D;
- the third task T3 uses resource A and resource C;
- the fourth task T4 uses resource B and resource D;
- the fifth task T5 uses resource E, Recognize each.
- the assignment controller E1 determines whether or not task reassignment is possible. That is, the allocation controller E1 first allocates resources used by the task (first task T1) allocated to the third processor (processor P1) and other processors (processors P2, P3, P4). After recognizing the resources used by the assigned tasks (second task T2, third task T3, and fourth task T4), it is determined whether the resources match between the recognized tasks. to decide. The resource can be recognized by referring to the used resource information a4 held by each task.
- the resources used by the processor P1 are resources A, B, and E.
- the resources used by the process P2 are resources C and D
- the resources used by the processor P3 are resources A and C.
- the resources used by the processor P4 are resources B and D. Therefore, the processor that does not cause resource contention with the processor P1 (third processor) is the processor P2. Therefore, the allocation controller E1 recognizes the processor P2 that is not subject to resource competition for the third processor (processor P1) as the second processor (task reassignment source), and further, the third processor (processor P1). Is authorized as the task reassignee.
- the second task T2 assigned to the second processor (processor P2) is returned to the third processor (processor P1). Assign (move).
- the remaining performance M1 of the third processor (processor P1) becomes 0 KI, and all performance guarantee task assignments in the second processor (processor P2) are canceled.
- the remaining performance of each of the processors P1 to P4 changes as follows.
- the allocation of the performance guarantee task ⁇ in the processor P1 is 100%, and the remaining performance M1 is 0 KI. All allocation of the performance guarantee task ⁇ in the processor P2 is canceled, and the remaining performance M2 becomes 100 KI.
- the remaining performance M3 remains at 70 KI.
- the remaining performance M4 remains 60 KI.
- the assignment controller E1 is configured such that the third processor (task reassignment destination candidate: the value of the surplus performance Mj is the smallest) at this time is the processor having the surplus performance M6 (60 KI). It is determined that it has been replaced with P4. Further, as shown in FIG. 12B, the allocation controller E1 sets the processor P3 that has not performed the reallocation of the performance guarantee task ⁇ to the second processor except for the third processor (processor P4).
- the performance guarantee task ⁇ (third task T3) assigned to the processor P3 (second processor) is certified as a reassignable task.
- the assignment controller E1 determines whether or not the third task T3 (reassignable task) can be reassigned to the processor P4 (third processor). Judgment is based on M4 (60 KI). In this case, the processing performance value ⁇ 3 of the third task T3 is 30 KI, and the value falls within the range of the remaining capacity M2 (60 KI) of the processor P4. Furthermore, the resources used by the fourth task T4 assigned to the processor P4 are the resource B and the resource D, and the resource A and the resource C used by the third task T3 do not compete. From the above, the assignment controller E1 determines that the reassignable task (third task T3) can be reassigned to the third processor (processor P4). Based on this authorization, the processor P3 (second processor) is authorized as a task reassignment source, and the processor P4 (third processor) is authorized as a task reassignment destination.
- the assignment controller E1 performs the third task T3 (reassignable task) assigned to the processor P3 as shown by the arrow from (b) in FIG. 12 to (c) in FIG. ) Is reassigned (moved) to the processor P4.
- the remaining capacity M2 of the processor P4 becomes 30 KI, and the assignment of all performance guarantee tasks to the processor P3 is canceled.
- the remaining performance of each processor changes as follows.
- the allocation of the performance guarantee task ⁇ in the processor P1 is 100%, and the remaining performance M1 is 0 KI.
- the allocation of the performance guarantee task ⁇ in the processor P2 is 100%, and the remaining performance M2 is 100 KI. All task assignments in the processor P3 are canceled, and the remaining performance M3 is 100 KI.
- the allocation of the performance guarantee task ⁇ in the processor P4 decreases, and the remaining performance M4 becomes 30 KI.
- a first task T1, a fifth task T5, and a second task T2 are assigned to the processor P1
- a fourth task T4 and a third task T3 are assigned to the processor P4,
- the processor P2 and the processor P3 are not assigned the performance guarantee task ⁇ , As a result, there are no more performance assurance tasks ⁇ that can be reassigned.
- the operation state controller E2 When the task assignment processing and the performance assurance task ⁇ reassignment processing by the assignment controller E1 are completed, the operation state controller E2 is started next, and the assignment of the first processor (performance assurance task ⁇ is canceled). The power saving mode is applied to the operating states of the processor P2 and the processor P3.
- the operation state controller E2 controls the clock controller 4 to stop the supply of clocks to the processors P2 and P3. Since the performance guarantee task ⁇ is not assigned to the processors P2 and P3, no problem occurs even if the supply of the clock is stopped.
- FIG. 13 shows the result of task reassignment (movement) starting from the state shown in FIG. 11 as described above.
- the first to fifth tasks T1 to T5 in which the real-time flag information a1 is “1” are aggregated into the processor P1 and the processor P4, and the allocation that minimizes the number of processors used is realized.
- FIG. 14 is a flowchart showing the operation of the power saving control apparatus according to the second embodiment. The operation will be described below according to this flowchart.
- step S12 is different from step S2, and the other steps are the same.
- the assignment controller E1 includes the group of performance assurance tasks ⁇ assigned to processors other than the third processor, Reassignable to a third processor with performance guarantee possible No resource contention with the third processor, Whether or not a task that can be reassigned to the third processor (reassignable task) exists in a state where the above condition is satisfied is determined.
- the second task T2 assigned to the processor P2 corresponds to a reassignable task.
- Step S13 is a process of branching based on the detection result of the reassignable task in step S12.
- the third processor extracted in step S11 is recognized as a task reassignment destination, and the reassignable task whose existence is confirmed in step S3 is assigned.
- the process branches to step S14.
- the process branches to step S15 without the third processor extracted in step S11 being recognized as a task reassignment destination.
- step S14 the reassignable task is moved (reassigned) from the second processor authorized as the task reassignment destination to the third processor authorized as the task reassignment destination, and the process proceeds to step S12 again. To do.
- step S11 the reassignable task collation processing and reassignment processing for the third processor extracted in step S11 is completed, and the process proceeds from step S13 to step S15.
- step S15 it is determined whether or not a processor in which task reassignment is incomplete or a reassignable task remains. If it is determined in step S15 that these processors and tasks remain, steps S11 to S15 are repeated for the remaining processors and tasks.
- step S15 If it is determined in step S15 that there is no remaining processor or reassignable task in which task reassignment has not been completed, the process proceeds to step S16.
- step S ⁇ b> 16 the operation state controller E ⁇ b> 2 stops the clock supply to the processor (first processor) from which all the assignments of the performance guarantee task ⁇ have been canceled via the clock control unit 4. This reduces power consumption.
- the reallocation is performed so as to minimize the contention between the processors of the resources used by the performance assurance task.
- the number of dispatches is minimized by reassigning the performance guarantee task group that needs to be processed in the same sequence to the same processor as much as possible.
- ⁇ By not assigning the performance non-guaranteed task ⁇ to the processor to which the performance assurance task ⁇ has been reassigned, the movement of the performance non-guaranteed task ⁇ between the processors is minimized. It is to be noted that the configurations described in (* 1) to (* 6) in the case of the first embodiment can also be applied to the second embodiment.
- the third embodiment of the present invention exemplifies a mode in which the power saving control device according to the first and second embodiments is used for a digital still camera (mobile terminal).
- FIG. 15 is a block diagram showing a functional configuration of a digital still camera according to Embodiment 3 of the present invention
- FIG. 16 is a functional explanatory diagram showing functions of a main part of the digital still camera.
- the digital still camera 30 includes a CPU 40, a key operation unit 51, a timer unit 52, a camera unit 53, an audio unit 54, and a USB (Universal Serial Bus) interface unit 55.
- the key operation unit 51 includes a key determination task T1 and a key execution task T5 that control the key operation unit 51
- the timer unit 52 includes a timer task T2 that controls the task
- the camera unit 53 includes a camera task T3 that controls the task.
- the audio unit 54 includes an audio task T4 that controls the audio task 54
- the USB interface unit 55 includes USB tasks T6 to T8 that control the audio task T4.
- Tasks T1 to T5 correspond to the performance guarantee task ⁇
- tasks T6 to T8 correspond to the performance non-guaranteed task ⁇ .
- the CPU 40 includes a multiprocessor system.
- the multiprocessor system includes a plurality of (here, four) processors, that is, processors P1 to P4.
- the CPU 40 controls the entire digital still camera 30 while processing a plurality of tasks in parallel. Specifically, the CPU 40 reads and executes an operating system program (OS) and various application programs in response to various instruction signals input from the key operation unit 51, and performs a timer unit 52, a camera unit 53, and an audio unit. 54 and the USB interface unit 55 are controlled.
- OS operating system program
- the operation sequence in the CPU 40 of the digital still camera configured as described above is essentially the same as the operation of the power saving control device according to the first or second embodiment, and thus the description thereof is omitted.
- Digital still cameras include cameras that can switch between a normal power consumption mode that operates without particularly reducing power consumption and a low power consumption mode that operates with less power consumption. Such a digital still camera may be configured to perform reallocation as in the third embodiment when the low power consumption mode is set.
- transition to the low power consumption mode may be a function that can be set by the user, or the transition to the low power consumption mode may be automatically performed when specific conditions are met.
- the configurations (* 1) to (* 6) in the case of the first embodiment can also be implemented in the third embodiment.
- Other mobile terminals to which this embodiment is applied are battery-powered portable devices that can be carried around. Specifically, cellular phones, PHS (Personal Handy-phone System), PDA (Personal Digital) Assistant), portable game consoles, and other notebook computers. For tasks that run on mobile terminals, call functions, mail functions, Internet functions, game functions, TV phone functions, TV viewing functions, TV recording functions, photo shooting functions, video shooting functions, music playback functions, and various other functions Application.
- the present invention is implemented in a configuration in which the present invention is applied to a CPU of a multiprocessor system and a digital still camera, but the present invention is not limited to these embodiments.
- the present invention can be similarly implemented in an integrated circuit including a multiprocessor system and a program that causes a computer to function as a multiprocessor.
- the program in this case may be distributed via a recording medium such as a CD-ROM or a communication medium such as the Internet.
- the power saving control device in a multiprocessor system in which performance guarantee tasks and performance non-guaranteed tasks are mixed according to the present invention is useful as a technique for effectively reducing power consumption while guaranteeing real-time performance. It is also excellent as a mobile terminal such as a digital still camera.
- Bus 10 Operating system (OS) 20
- Task management information 30
- Digital still camera 40 CPU 51 Key operation section 52 Timer section 53 Camera section 54 Audio section 55 USB interface section
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
割り当て制御器が、性能保証タスクの処理サイクル数(実行命令数)を示す処理性能値のそれぞれと、プロセッサのタスク処理能力を示す処理能力値のそれぞれとの相関関係に基づいて、複数のタスクの処理に要するプロセッサ数が最小限となるように各性能保証タスクをプロセッサに割り当てたうえで、動作状態制御器が、性能保証タスクの割り当てが解除された第1のプロセッサを省電力状態にする。
Description
本発明は、複数のタスクを分散処理する複数のプロセッサを備えるとともに、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置にかかわり、特には、リアルタイムへ性を保証しながら消費電力を効果的に削減するための技術に関する。また、上記と同様の機能を有するデジタルスチルカメラなどのモバイル端末に関する。リアルタイム性とは、所定時間内に所定のタスクを完了する能力のことである。本発明の技術は、特にマルチプロセッサ方式を採用している情報処理装置に好適に適用される。
マルチプロセッサシステムは、複数のプロセッサから構成されるため、単一のプロセッサで構成されるシングルプロセッサシステムに比べて消費電力が大きい。マルチプロセッサシステムは、複数のプロセッサによって分散処理を行うのでシステム全体の処理効率は高いものの、低負荷状態ではすべてのプロセッサを用いて分散処理を行う必要はない。低負荷状態ですべてのプロセッサを動作させることは、システムとして必要以上の電力を消費することとなる。このような理由に基づき、従来から低負荷状態のときに消費電力の低減を図る技術が提案されている。
例えば、特許文献1に記載された省電力制御システム(以下、単に従来例という)は、2以上のプロセッサ(CPU)を備えるマルチプロセッサシステムにおいて、システムの動作状態を常に検知する状態監視器と、状態監視器に検知されるシステムの動作状態が所定の境界条件(しきい値)を超えて変化したとき、指定されたプロセッサについて状態遷移制御を行う状態制御器を備える。
ここで状態遷移制御とは、プロセッサの動作状態を通常動作状態から動作待機状態に遷移させる省電力制御と、プロセッサの動作状態を動作待機状態から通常動作状態に遷移させる復帰制御との相互切り替えを行うことである。またシステムの動作状態は、プロセッサの動作状態における通常動作状態と動作待機状態とを含み、さらには、キーボードからの入力待ち状態と低負荷状態とを含む。
また、システムの動作状態が所定の境界条件を超えるとは、
・システムの構成要素の間で授受される信号を中継するバスにおいて、現時点での負荷状態を表す値が所定のしきい値を超える、
・システム全体におけるアプリケーション実行の現時点における負荷状態を表す値が所定のしきい値を超える、
・アプリケーションの機能を実現させるタスクを各々のプロセッサに分配するためのスケジューリング状態を表す値が所定のしきい値を超える、
のうちの少なくとも一つを満足する状態のことをいう。
・システムの構成要素の間で授受される信号を中継するバスにおいて、現時点での負荷状態を表す値が所定のしきい値を超える、
・システム全体におけるアプリケーション実行の現時点における負荷状態を表す値が所定のしきい値を超える、
・アプリケーションの機能を実現させるタスクを各々のプロセッサに分配するためのスケジューリング状態を表す値が所定のしきい値を超える、
のうちの少なくとも一つを満足する状態のことをいう。
従来例は、状態監視器としてシステム状態監視部を備え、状態制御器としてシステム状態制御部を備える。このような構成を備える従来例においては、システムの動作状態すなわち時間的に変化する要素値(バス負荷状態、アプリケーション実行負荷状態、スケジューリング状態)が所定のしきい値を超えるか否かを常時監視し、上記要素値がしきい値を下回ると、プロセッサの動作状態を通常動作状態から動作待機状態に遷移させる。一方、上記要素値がしきい値を上回ると、プロセッサの動作状態を動作待機状態から通常動作状態に遷移させる。具体的には、個々のプロセッサの動作状態を監視し、キー入力待ちなどのために特定のプロセッサに対する負荷が少ない状態が続くと、当該プロセッサへ供給するクロックを低い周波数に切り替えることにより最適な消費電力での運用を維持する。
従来例の特徴は、
(a)バス負荷状態、アプリケーション実行負荷状態、スケジューリング状態などの「システムにおいて時間的に変化する要素値」を判断基準にしている、
(b)制御対象であるプロセッサの動作状態の制御(通常動作状態から動作待機状態に遷移させる省電力制御と動作待機状態から通常動作状態に遷移させる復帰制御との切り替え)も時間経過に伴って遷移する、
ということである。つまり、監視対象も制御対象もともに時間的変化を伴うということが重点になっている。
(a)バス負荷状態、アプリケーション実行負荷状態、スケジューリング状態などの「システムにおいて時間的に変化する要素値」を判断基準にしている、
(b)制御対象であるプロセッサの動作状態の制御(通常動作状態から動作待機状態に遷移させる省電力制御と動作待機状態から通常動作状態に遷移させる復帰制御との切り替え)も時間経過に伴って遷移する、
ということである。つまり、監視対象も制御対象もともに時間的変化を伴うということが重点になっている。
従来例においては、システムの動作状態であるバス負荷状態、アプリケーション実行負荷状態、スケジューリング状態などの時間的に変化する要素値を判断基準としている。そのため、上記要素値を常時的に監視する必要がある。さらに、その判断結果に応じてプロセッサの動作状態を省電力制御と復帰制御との間で切り替え制御するが、この制御自体も時間的に遷移することになる。つまり、監視対象における時間的変化が制御対象の時間的変化として現れ、さらに制御対象の時間的変化が監視対象の時間的変化を誘起する、という時間的循環が発生することになる。このような時間的循環を伴う常時的な監視および制御は、結果として、マルチプロセッサシステムの処理速度の低下を招くことになる。
加えて、プロセッサへの供給クロックの周波数低減の制御はプロセッサ負荷が低負荷状態になることを条件にしているため、プロセッサ負荷が低負荷状態にならない限り供給クロックの周波数を低減することができず、これでは消費電力削減を有効に進めるうえで障害となる。
本発明は、このような事情に鑑みて創作したものであり、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、リアルタイム性(所定時間内に所定のタスクを完了しなければならないという制約を満たすこと)を保証しながら消費電力を効果的に削減することが可能な省電力制御装置を提供することを目的としている。
本発明によるマルチプロセッサシステムにおける省電力制御装置は、
性能保証タスクと性能非保証タスクとが混在する複数のタスクを分散処理する複数のプロセッサを備えるマルチプロセッサシステムであって、
前記性能保証タスクの処理サイクル数(実行命令数)を示す処理性能値のそれぞれと、前記プロセッサのタスク処理能力を示す処理能力値のそれぞれとの相関関係に基づいて、前記複数のタスクの処理に要するプロセッサ数が最小限となるように前記各性能保証タスクを前記プロセッサに割り当てる割り当て制御器と、
前記割り当て制御器により前記性能保証タスクの割り当てが解除された第1のプロセッサを省電力状態にする動作状態制御器と、
を備える。
性能保証タスクと性能非保証タスクとが混在する複数のタスクを分散処理する複数のプロセッサを備えるマルチプロセッサシステムであって、
前記性能保証タスクの処理サイクル数(実行命令数)を示す処理性能値のそれぞれと、前記プロセッサのタスク処理能力を示す処理能力値のそれぞれとの相関関係に基づいて、前記複数のタスクの処理に要するプロセッサ数が最小限となるように前記各性能保証タスクを前記プロセッサに割り当てる割り当て制御器と、
前記割り当て制御器により前記性能保証タスクの割り当てが解除された第1のプロセッサを省電力状態にする動作状態制御器と、
を備える。
個々の性能保証タスクαi(i=1,2…n)は、その属性として、その処理サイクル数(実行命令数)を表す処理性能値Φi(i=1,2…n)と、性能保証タスクαiの実行完了に要する時間であるリアルタイム性能時間τi(i=1,2…n)とを備える。一方、個々のプロセッサPj(j=1,2…m)は、その属性として、処理能力値Wj(j=1,2…m)を備える。処理能力値Wjは、そのプロセッサPjがリアルタイム性能時間τi内に処理することができるタスクの総処理量である。
割り当て制御器は、性能保証タスクΑiの処理性能値Φiと、プロセッサの処理能力値Wjとの相関関係に基づいて、使用プロセッサ数が最小限となるように、性能保証タスクΑiをプロセッサPjに割り当てる制御を行う。以下、詳細に説明する。任意のタスク割り当て状態において、あるプロセッサに余力(処理能力の余裕)があれば、その性能保証タスクの割り当て変更を行う。ここでいう余力(処理能力の余裕)とは、他のプロセッサに割り当て済みの性能保証タスクを、当該プロセッサに割り当て変更(移動)することが可能であるという状態をいう。このようなタスクの変更が性能保証タスクの再割り当てである。このような性能保証タスクの再割り当てを可能な限り実施すれば、性能保証タスクの割り当てが解消されたプロセッサ(以下、第1のプロセッサという)が出現し、さらにはその出現数が増えるようになる。動作状態制御器は、第1のプロセッサを省電力状態にする。省電力状態が適用された第1のプロセッサに性能非保証タスクが割り当てられているとしても、それは性能非保証であるので、省電力状態にしても性能保証上の問題は生じない。
ここでは、従来技術の場合のように、時間的に変化する要素値(プロセッサ負荷)を常時的に監視する必要もなければ、その要素値としきい値との比較結果が時間的に変動することに伴う動作状態の常時的な制御の必要もない。
このようにして、本発明によれば、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、プロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することが可能となる。
本発明によれば、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、リアルタイム性を保持しつつ最小限のプロセッサ数でタスクの実行が可能となるようにプロセッサへの性能保証タスクの割り当て制御を行うことが可能となる。これにより、性能保証タスクの割り当てが解消された第1のプロセッサの動作状態に対して省電力状態を適用するので、プロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することができる。
本発明の実施の形態を説明する前に、本発明の態様の概要を説明する。すなわち、本発明には、
(1)前記割り当て制御器は、割り当て処理後の前記性能保証タスクを、当該性能保証タスクが割り当てられた第2のプロセッサから第3のプロセッサに再割り当てする再割り当て処理が可能であるか否かを判断したうえで、再割り当て可能と判断すると、前記第2のプロセッサから前記第3のプロセッサに前記割り当て処理後の性能保証タスクを再割り当てするように構成されている、
という態様がある。
(1)前記割り当て制御器は、割り当て処理後の前記性能保証タスクを、当該性能保証タスクが割り当てられた第2のプロセッサから第3のプロセッサに再割り当てする再割り当て処理が可能であるか否かを判断したうえで、再割り当て可能と判断すると、前記第2のプロセッサから前記第3のプロセッサに前記割り当て処理後の性能保証タスクを再割り当てするように構成されている、
という態様がある。
この態様によれば、再割り当て可能な性能保証タスクについては、これを漏れなく再割り当てすることにより、タスク処理に使用するプロセッサの数を確実に最小限にすることが可能となる。
(2)上記(1)の構成において、
前記割り当て制御器は、前記割り当て処理後の性能保証タスクの前記処理性能値を、前記第3のプロセッサの処理余力を示す余力性能と比較したうえで、前記割り当て処理後の性能保証タスクの前記処理性能値が前記第3のプロセッサの前記余力性能以下のときに、前記再割り当て処理が可能であると判断するように構成されている、
という態様がある。
前記割り当て制御器は、前記割り当て処理後の性能保証タスクの前記処理性能値を、前記第3のプロセッサの処理余力を示す余力性能と比較したうえで、前記割り当て処理後の性能保証タスクの前記処理性能値が前記第3のプロセッサの前記余力性能以下のときに、前記再割り当て処理が可能であると判断するように構成されている、
という態様がある。
この態様によれば、ある性能保証タスクαiがすでに第2のプロセッサに割り当てられている状態で、その性能保証タスクαiを第3のプロセッサに再割り当て可能か否かを判断する際に、第3のプロセッサの余力性能Mjを検討する。すなわち、第3のプロセッサの余力性能Mjに比べて割り当て処理後の性能保証タスクαiの処理性能値Φiが小さいか等しい場合には、再割り当て可能と判断し、その性能保証タスクαiを第3のプロセッサに再割り当てする。
(3)本発明には、
前記割り当て制御器は、前記性能保証タスクが必要とするリアルタイム性能時間を変数とする関数により前記処理能力値を設定するように構成されている、
という態様がある。
前記割り当て制御器は、前記性能保証タスクが必要とするリアルタイム性能時間を変数とする関数により前記処理能力値を設定するように構成されている、
という態様がある。
この態様によれば、性能保証タスクが必要とするリアルタイム性能時間を参照して処理能力値を設定するため、処理能力値の設定精度がさらに向上する。
(4)上記(3)の構成において、
前記プロセッサPjの処理能力値Wjは、前記プロセッサPjの単位時間当たりの処理能力qjに、前記リアルタイム性能時間τiを乗算したものである、
という態様がある。すなわち、Wj=qj×τiである。
前記プロセッサPjの処理能力値Wjは、前記プロセッサPjの単位時間当たりの処理能力qjに、前記リアルタイム性能時間τiを乗算したものである、
という態様がある。すなわち、Wj=qj×τiである。
この態様によれば、プロセッサPjの処理能力値Wjについて、これを、性能保証タスクαiが必要とするリアルタイム性能時間τiを照合したものにすることが可能となる。
(5)上記(2)の構成において、
前記プロセッサPjの余力性能Mjは、前記プロセッサPjの処理能力値Wjから、当該プロセッサPjにすでに割り当て済みの性能保証タスクαiの処理性能値Φiの総和ΣΦiを減算したものである、
という態様がある。すなわち、Mj=Wj-ΣΦiである。
前記プロセッサPjの余力性能Mjは、前記プロセッサPjの処理能力値Wjから、当該プロセッサPjにすでに割り当て済みの性能保証タスクαiの処理性能値Φiの総和ΣΦiを減算したものである、
という態様がある。すなわち、Mj=Wj-ΣΦiである。
この態様によれば、リアルタイム性を保証した上での消費電力の削減の効果を良好に達成することが可能となる。
(6)本発明には、
前記割り当て制御器は、前記性能保証タスクのプロセッサ間移動が最小限となるように、前記各性能保証タスクを前記プロセッサに割り当てる、
という態様がある。
前記割り当て制御器は、前記性能保証タスクのプロセッサ間移動が最小限となるように、前記各性能保証タスクを前記プロセッサに割り当てる、
という態様がある。
この態様によれば、再割り当て自体を効率化することが可能となる。
(7)また上記(1)の構成において、
前記割り当て制御器は、前記再割り当て処理において、再割り当て対象とする前記性能保証タスクで使用する資源のプロセッサ間競合が最小限となることを優先するように構成されている、
という態様がある。
前記割り当て制御器は、前記再割り当て処理において、再割り当て対象とする前記性能保証タスクで使用する資源のプロセッサ間競合が最小限となることを優先するように構成されている、
という態様がある。
この態様によれば、資源のプロセッサ間競合を最小限とするので、マルチプロセッサシステムのトータルなタスク分散処理を効率良く進めることが可能となる。
(8)また上記(1)の構成において、
前記割り当て制御器は、シーケンスのうえで同時処理する必要がある前記性能保証タスクのグループを優先して同一の前記第3のプロセッサに再割り当てするように構成されている、
という態様がある。
前記割り当て制御器は、シーケンスのうえで同時処理する必要がある前記性能保証タスクのグループを優先して同一の前記第3のプロセッサに再割り当てするように構成されている、
という態様がある。
この態様によれば、性能保証タスクのディスパッチ回数が最小限となり、マルチプロセッサシステムのトータルなタスク分散処理を効率良く進めることが可能となる。ディスパッチ(dispatch)とは、オペレーティングシステム(OS)が処理する複数のタスクに対し、優先順位に従ってプロセッサの割り当てを行うことである(スケジューリングともいう)。
(9)また上記(1)の構成において、
前記割り当て制御器は、前記性能保証タスクの再割り当て処理を行ったのち、前記性能非保証タスクの再割り当て処理を行い、その際、前記第3のプロセッサに対する前記性能非保証タスクの前記再割り当て処理を禁止するように構成されている、
という態様がある。
前記割り当て制御器は、前記性能保証タスクの再割り当て処理を行ったのち、前記性能非保証タスクの再割り当て処理を行い、その際、前記第3のプロセッサに対する前記性能非保証タスクの前記再割り当て処理を禁止するように構成されている、
という態様がある。
この態様によれば、使用プロセッサ数を最小限にするためのタスクの再割り当てについては、性能保証タスクの再割り当てを優先し、それが完了すれば、性能非保証タスクの再割り当てを行うが、その際、マルチプロセッサシステムのトータルなタスク分散処理の効率を可能な限り高く保持した状態で、性能非保証タスクの再割り当てを行うことが可能となる。
(10)本発明には、
前記動作状態制御器は、前記プロセッサとの間でデータの授受を行うメモリを前記プロセッサに割り当てる際において、前記プロセッサそれぞれに対する前記メモリの割り当てを動的に変更するように構成されている、
という態様があり、
(11)さらに上記(10)の構成において、
前記メモリの割り当てを動的に変更するとは、前記第1のプロセッサに割り当てられていた前記メモリを、前記第2のプロセッサへ再割り当てすることである、
という態様がある。
前記動作状態制御器は、前記プロセッサとの間でデータの授受を行うメモリを前記プロセッサに割り当てる際において、前記プロセッサそれぞれに対する前記メモリの割り当てを動的に変更するように構成されている、
という態様があり、
(11)さらに上記(10)の構成において、
前記メモリの割り当てを動的に変更するとは、前記第1のプロセッサに割り当てられていた前記メモリを、前記第2のプロセッサへ再割り当てすることである、
という態様がある。
これらの態様によれば、マルチプロセッサシステムのトータルなタスク分散処理をさらに効率良く進めることが可能となる。
(12)本発明には、
前記プロセッサは、スヌーピング機能を有するキャッシュを備えており、
前記動作状態制御器は、前記キャッシュのスヌープモードを変更するように構成されている、
という態様がある。ここでいうスヌーピング(snooping)機能とは、周辺機器からのDMA(Direct Memory Access)などによって、メモリ内容がキャッシュ内容と不一致にならないかを監視し、必要に応じてキャッシュ内容を破棄する機能のことである。
前記プロセッサは、スヌーピング機能を有するキャッシュを備えており、
前記動作状態制御器は、前記キャッシュのスヌープモードを変更するように構成されている、
という態様がある。ここでいうスヌーピング(snooping)機能とは、周辺機器からのDMA(Direct Memory Access)などによって、メモリ内容がキャッシュ内容と不一致にならないかを監視し、必要に応じてキャッシュ内容を破棄する機能のことである。
(13)さらに上記(12)の構成において、
前記スヌープモードを変更するとは、前記第1のプロセッサにおける前記キャッシュのスヌープモードを停止させることである、
という態様がある。
前記スヌープモードを変更するとは、前記第1のプロセッサにおける前記キャッシュのスヌープモードを停止させることである、
という態様がある。
この態様によれば、第1のプロセッサのキャッシュのスヌープモードを停止させることにより、マルチプロセッサシステムのトータルなタスク分散処理の効率を高くすることが可能となる。
(14)また本発明には、
前記動作状態制御器は、前記第1のプロセッサを省電力状態にすることに代えて前記第1のプロセッサに接続された周辺デバイスの動作状態の変更を行う、または前記第1のプロセッサを省電力状態にするとともに、前記周辺デバイスの動作状態の変更を行うように構成されている、
という態様がある。
前記動作状態制御器は、前記第1のプロセッサを省電力状態にすることに代えて前記第1のプロセッサに接続された周辺デバイスの動作状態の変更を行う、または前記第1のプロセッサを省電力状態にするとともに、前記周辺デバイスの動作状態の変更を行うように構成されている、
という態様がある。
この態様によれば、マルチプロセッサシステムのトータルなタスク分散処理の効率をさらに高くすることが可能となる。
(15)本発明によるモバイル端末は、
前記マルチプロセッサシステムと、
本発明のマルチプロセッサシステムにおける省電力制御装置と、
を備える。
前記マルチプロセッサシステムと、
本発明のマルチプロセッサシステムにおける省電力制御装置と、
を備える。
この場合、前記マルチプロセッサシステムは、通常動作状態で動作させる通常動作モードと低消費電力状態で動作させる低消費電力動作モードとでそれぞれ動作し、
前記割り当て制御器と前記動作状態制御器とは、前記低消費電力モード状態においてのみ起動されるように構成されている、
という態様がある。
前記割り当て制御器と前記動作状態制御器とは、前記低消費電力モード状態においてのみ起動されるように構成されている、
という態様がある。
(16)また上記(15)の構成において、
前記マルチプロセッサシステムは、前記通常動作モードと前記低消費電力モードとをユーザにより切り替え可能に構成されている、
という態様がある。
前記マルチプロセッサシステムは、前記通常動作モードと前記低消費電力モードとをユーザにより切り替え可能に構成されている、
という態様がある。
この態様によれば、使用状況に応じた使い分けができ、使用勝手がよくなる。
(17)また上記(16)の構成において、
前記マルチプロセッサシステムは、当該マルチプロセッサシステムに電力を供給するバッテリの残電力量が一定量以下となると、動作モードが前記通常動作モードから前記低消費電力モードに切り替わるように構成されている、
という態様がある。
前記マルチプロセッサシステムは、当該マルチプロセッサシステムに電力を供給するバッテリの残電力量が一定量以下となると、動作モードが前記通常動作モードから前記低消費電力モードに切り替わるように構成されている、
という態様がある。
この態様によれば、バッテリの残電力量が多い状況下では能力フル状態で高速処理動作を保ち、バッテリの残電力量が少なくなったときに限って、低消費電力モードで動作させることが可能となる。
以下、本発明にかかわるマルチプロセッサシステムにおける省電力制御装置の実施の形態を図面を参照して詳細に説明する。以下では、すべての図を通じて同一または相当する要素には同じ参照符号を付してその重複する説明を省略する。
(実施の形態1)
図1は本発明の実施の形態1の性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置の構成を示すブロック図である。この省電力制御装置は、CPU(Central Processing Unit)1と、ROM(Read Only Memory)2と、RAM(Random Access Memory)3と、クロック制御部4と、周辺デバイス5と、プロセッサP1~P4とを備える。これらの各構成要素1~5、P1~P4はバス6を介して互いに接続される。周辺デバイス5は複数のタスクを伴うもので、ここでは第1~第8のタスクT1~T8を伴う。αは性能保証を行うタスクである性能保証タスクを示し、βは性能保証を行わないタスクである性能非保証タスクを示す。ここでの一例では、第1~第5のタスクT1~T5が性能保証タスクαに該当し、第6~第8のタスクT6~T8が性能非保証タスクβに該当する。マルチプロセッサシステムは、一般に複数のタスクTi(i=1,2…n)を複数のプロセッサPj(j=1,2…m)で分散処理するものである。ここでの一例では、整数nは、n=8であり、整数mは、m=4である。10はCPU1とROM2とRAM3の機能的結合によって構成されるオペレーティングシステム(OS)であり、このオペレーティングシステム10には、少なくとも割り当て制御器E1と動作状態制御器E2とが含まれる。
図1は本発明の実施の形態1の性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置の構成を示すブロック図である。この省電力制御装置は、CPU(Central Processing Unit)1と、ROM(Read Only Memory)2と、RAM(Random Access Memory)3と、クロック制御部4と、周辺デバイス5と、プロセッサP1~P4とを備える。これらの各構成要素1~5、P1~P4はバス6を介して互いに接続される。周辺デバイス5は複数のタスクを伴うもので、ここでは第1~第8のタスクT1~T8を伴う。αは性能保証を行うタスクである性能保証タスクを示し、βは性能保証を行わないタスクである性能非保証タスクを示す。ここでの一例では、第1~第5のタスクT1~T5が性能保証タスクαに該当し、第6~第8のタスクT6~T8が性能非保証タスクβに該当する。マルチプロセッサシステムは、一般に複数のタスクTi(i=1,2…n)を複数のプロセッサPj(j=1,2…m)で分散処理するものである。ここでの一例では、整数nは、n=8であり、整数mは、m=4である。10はCPU1とROM2とRAM3の機能的結合によって構成されるオペレーティングシステム(OS)であり、このオペレーティングシステム10には、少なくとも割り当て制御器E1と動作状態制御器E2とが含まれる。
割り当て制御器E1は、複数のタスクを複数のプロセッサPjに割り当てるに際して、使用プロセッサ数が最小限となるように割り当ての制御を行うものとして構成される(詳しくは後述する)。
動作状態制御器E2は、割り当て制御器E1による割り当て処理の結果、性能保証タスクαi(i=1,2…n)の割り当てが解消されたプロセッサ(以下、第1のプロセッサという)の動作状態に対して省電力状態を適用するものとして構成される。省電力状態の適用に際して動作状態制御器E2は、クロック制御部4でのクロック周波数の制御を介して当該適用を行う。
個々の性能保証タスクαiの属性として、その処理サイクル数(実行命令数)を表す処理性能値Φi(i=1,2…n)がある(図3、図4、図6参照)。各性能保証タスクαiが、それぞれ任意の時間長である時間長τi(i=1,2…n)内に実行完了することが望まれているとする。その時間長τiがリアルタイム性能時間τiである。一方、個々のプロセッサPj(j=1,2…m)には、単位時間当たりに実行が可能な処理量を表す処理能力qj(j=1,2…m)がある(図5、図6参照)。処理能力qiは、MIPS値で表されることが多い。
リアルタイム性能時間τi内に単位時間当たりの処理能力qjのプロセッサPjが実行可能な処理量である処理能力値Wjは、
Wj=qj×τi
となる。なお、その具体例については後述する。
Wj=qj×τi
となる。なお、その具体例については後述する。
割り当て制御器E1は、各性能保証タスクαiの各プロセッサPjへの割り当ての制御を行う際に、各性能保証タスクαiの処理性能値Φi(i=1,2…n)のそれぞれと、リアルタイム性能時間τi(i=1,2…n)を加味したプロセッサPjの処理能力値Wj(より具体的には、余力性能Mj)(j=1,2…m)のそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように各プロセッサPjへの割り当て制御を行うものとして構成される。
動作状態制御器E2は、割り当て制御器E1による割り当て処理の結果、性能保証タスクαiの割り当てが解消されたプロセッサ(第1のプロセッサ)の動作状態に対して、省電力状態を適用するものとして構成される。動作状態制御器E2は、例えば、クロック制御部4におけるクロック周波数を変更することで省電力状態の適用を行うように構成される。
図2は本実施の形態1における省電力制御装置の主要部の機能を表す機能説明図である。オペレーティングシステム10は、プロセッサP1~P4上で動作するものであり、第1~第8のタスクT1~T8のプロセッサP1~P4への割り当てと、プロセッサP1~P4の動作状態とを制御する。
割り当て制御器E1は、前段階の割り当て処理として、所定のアルゴリズムに従って、第1~第8のタスクT1~T8をプロセッサP1~P4に割り当てる。いま、図2に示すように、以下の割り当てが実施されているとする。なお、以下の割り当ては、第1~第5のタスクT1~T5は性能保証タスクαであり、第6~第8のタスクT6~T8は性能非保証タスクβであることを前提としている。
・第1のタスクT1と第5のタスクT5とをプロセッサP1に割り当てる。
・第2のタスクT2と第6のタスクT6とをプロセッサP2に割り当てる。
・第3のタスクT3と第7のタスクT7とをプロセッサP3に割り当てる。
・第4のタスクT4と第8のタスクT8とをプロセッサP4に割り当てる。
・第1のタスクT1と第5のタスクT5とをプロセッサP1に割り当てる。
・第2のタスクT2と第6のタスクT6とをプロセッサP2に割り当てる。
・第3のタスクT3と第7のタスクT7とをプロセッサP3に割り当てる。
・第4のタスクT4と第8のタスクT8とをプロセッサP4に割り当てる。
以上の割り当てによれば、第1~第5のタスクT1~T5(性能保証タスクα)は4つのプロセッサP1~P4に振り分けて割り当てられることになる。この割り当て状態において、割り当て制御器E1は、
・第1~第5のタスクT1~T5の中で、現在の割り当てプロセッサから他のプロセッサへ再割り当てが可能なタスク(以下、再割り当て可能タスクという)が存在するか否か、
・上記再割り当て可能タスクの再割り当てが可能なプロセッサ(以下、第3のプロセッサという)が存在するか否か、
をそれぞれ判断する。
・第1~第5のタスクT1~T5の中で、現在の割り当てプロセッサから他のプロセッサへ再割り当てが可能なタスク(以下、再割り当て可能タスクという)が存在するか否か、
・上記再割り当て可能タスクの再割り当てが可能なプロセッサ(以下、第3のプロセッサという)が存在するか否か、
をそれぞれ判断する。
割り当て制御器E1は、処理性能値Φ1~Φ5のそれぞれとプロセッサの処理能力値W1~W4のそれぞれとの相関関係に基づいて、上記判断を実施する。その詳細は後述する。なお、処理性能値Φ1~Φ5とは、各プロセッサP1~P4に割り当てられている性能保証タスクα(第1~第5のタスクT1~T5)の処理性能値のことであり、プロセッサの処理能力値W1~W4とは、各プロセッサP1~P4において割り当てられている性能保証タスクα(第1~第5のタスクT1~T5)が必要とするリアルタイム性能時間τ1~τ5を加味した処理能力値のことである。
図3は第1~第8のタスクT1~T8がそれぞれ保持しているタスク管理情報20の構造を示す。このタスク管理情報20は、リアルタイム性能が要求される処理であるか否かを示すリアルタイムフラグ情報a1と、リアルタイム性能を保証するために必要な性能を示すリアルタイム性能情報a2と、実際の処理性能を示す処理性能情報a3とから構成される。
リアルタイムフラグ情報a1では、リアルタイム性能が要求される処理であることを示すときは“1”が設定され、リアルタイム性能が要求されない処理であることを示すときは“0”が設定される。
リアルタイム性能情報a2は、一定時間内に実行完了しなければならないタスクTi(i=1,2…n)における処理所要時間を表す。具体的にはリアルタイム性能情報a2は、リアルタイム性能時間τi(i=1,2…n)に対応しており、本実施の形態では、その単位はms(ミリ秒)である。
処理性能情報a3とは、タスクTiが有する負荷量(処理量)のことであって、処理性能値Φi(i=1,2…n)に対応し、KI(Kilo Instructions:1000命令)を単位とする命令数に相当する。
オペレーティングシステム10は、タスクTi(i=1,2…n)それぞれが保持しているリアルタイムフラグ情報a1に基づいて、当該タスクTiが性能保証タスクα(リアルタイム性能が要求されるタスク)であるのか、性能非保証タスクβ(リアルタイム性能が要求されないタスク)であるのかを判定する。以下、このような判定処理を単に判定処理という。性能保証タスクαでは、そのリアルタイム性能を保証しながらプロセッサPj(j=1,2…m)に割り当てる組み合わせ(以下、割り当て組み合わせという)は複数存在する。オペレーティングシステム10は、判定処理において性能保証タスクαであると判定したタスクTiにおいて複数存在する割り当て組み合わせの中から使用プロセッサ数が最小限となる割り当て組み合わせを選択する。以下、このような選択処理を、単に選択処理という。オペレーティングシステム10は選択処理を、タスクTiのリアルタイム性能情報a2と処理性能情報a3とに基づいて実施する。
そのうえでオペレーティングシステム10は、選択した割り当て組み合わせに基づいて性能保証タスクαをプロセッサに割り当てる。なお、割り当て組み合わせには、プロセッサを再度割り当てする組み合わせ(以下、再割り当て組み合わせという)も含まれる。以上、説明した判定処理と選択処理とはオペレーティングシステム10における割り当て制御器E1により実施される。
上述した再割り当て法についてさらに説明する。図4は第1~第8のタスクT1~T8についてのタスク管理情報20の具体的な内容を示し、図5はプロセッサP1~P4の単位時間当たりの処理能力qj(j=1,2…4)であるMIPS値の一例を示す。以下の情報は第1のタスクT1のタスク管理情報20や図1を参照することで得られる。
プロセッサP1に割り当てられている第1のタスクT1では、
・第1のタスクT1は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ1)は10msである、
・処理性能情報a3(処理性能値Φ1)は50KI(τ1=10ms、Φ1=50KI)である、
となっている。
・第1のタスクT1は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ1)は10msである、
・処理性能情報a3(処理性能値Φ1)は50KI(τ1=10ms、Φ1=50KI)である、
となっている。
同じくプロセッサP1に割り当てられている第5のタスクT5では、
・第5のタスクT5は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ5)は10msである、
・処理性能情報a3(処理性能値Φ5)は10KI(τ5=10ms、Φ5=10KI)である、
となっている。
・第5のタスクT5は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ5)は10msである、
・処理性能情報a3(処理性能値Φ5)は10KI(τ5=10ms、Φ5=10KI)である、
となっている。
プロセッサP2に割り当てられている第2のタスクT2では、
・第2のタスクT2は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ2)は12msである、
・処理性能情報a3(処理性能値Φ2)は60KI(τ2=12ms、Φ2=60KI)である、
となっている。
・第2のタスクT2は性能保証タスクαである、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ2)は12msである、
・処理性能情報a3(処理性能値Φ2)は60KI(τ2=12ms、Φ2=60KI)である、
となっている。
プロセッサP2に割り当てられている第6のタスクT6では、
・第6のタスクT6は性能非保証タスクβである、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ6)は0msである、
・処理性能情報a3(処理性能値Φ6)は0KI(τ6=0ms、Φ6=0KI)である、
となっている。
・第6のタスクT6は性能非保証タスクβである、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能情報a2(リアルタイム性能時間τ6)は0msである、
・処理性能情報a3(処理性能値Φ6)は0KI(τ6=0ms、Φ6=0KI)である、
となっている。
プロセッサP3に割り当てられている第3のタスクT3は、
・このタスクT3は性能保証タスクαに相当する、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能時間τ3は12msである、
・処理性能値Φ3は50KIである(τ3=12ms、Φ3=50KI)、
となっている。
・このタスクT3は性能保証タスクαに相当する、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能時間τ3は12msである、
・処理性能値Φ3は50KIである(τ3=12ms、Φ3=50KI)、
となっている。
同じくプロセッサP3に割り当てられている第7のタスクT7は、
・このタスクT7は性能非保証タスクβに相当する、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能時間τ7は0msである、
・処理性能値Φ7は0KIである(τ7=0ms、Φ7=0KI)、
となっている。
・このタスクT7は性能非保証タスクβに相当する、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能時間τ7は0msである、
・処理性能値Φ7は0KIである(τ7=0ms、Φ7=0KI)、
となっている。
プロセッサP4に割り当てられている第4のタスクT4は、
・このタスクT4は性能保証タスクαに相当する、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能時間τ4は10msである、
・処理性能値Φ4は40KIである(τ4=10ms、Φ4=40KI)、
となっている。
・このタスクT4は性能保証タスクαに相当する、
・リアルタイムフラグ情報a1は“1”である、
・リアルタイム性能時間τ4は10msである、
・処理性能値Φ4は40KIである(τ4=10ms、Φ4=40KI)、
となっている。
同じくプロセッサP4に割り当てられている第8のタスクT8は、
・このタスクT8は性能非保証タスクβに相当する、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能時間τ8は0msである、
・処理性能値Φ8は0KIである(τ8=0ms、Φ8=0KI)、
となっている。
・このタスクT8は性能非保証タスクβに相当する、
・リアルタイムフラグ情報a1は“0”である、
・リアルタイム性能時間τ8は0msである、
・処理性能値Φ8は0KIである(τ8=0ms、Φ8=0KI)、
となっている。
図5に示すように、プロセッサP1の単位時間当たりの処理能力q1のMIPS値は10MIPSであり、プロセッサP2,P3,P4の単位時間当たりの処理能力q2,q3,q4のMIPS値はいずれも10MIPSである(q1=q2=q3=q4=10MIPS)。なお、MIPS(Million Instructions Per Second)はコンピュータの処理能力を表す単位であり、1MIPSは1秒間に100万命令を実行する処理能力のことである。
割り当て制御器E1は、リアルタイム性能情報a2と処理性能情報a3とを参照することで、
・第1のタスクT1では、10ms以内に50KIの処理を実行する必要がある、
・第2のタスクT2では、12ms以内に60KIの処理を実行する必要がある、
・第3のタスクT3では、12ms以内に50KIの処理を実行する必要がある、
・第4のタスクT4では、10ms以内に40KIの処理を実行する必要がある、
・第5のタスクT5では、10ms以内に10KIの処理を実行する必要がある、
とそれぞれ判定する。
・第1のタスクT1では、10ms以内に50KIの処理を実行する必要がある、
・第2のタスクT2では、12ms以内に60KIの処理を実行する必要がある、
・第3のタスクT3では、12ms以内に50KIの処理を実行する必要がある、
・第4のタスクT4では、10ms以内に40KIの処理を実行する必要がある、
・第5のタスクT5では、10ms以内に10KIの処理を実行する必要がある、
とそれぞれ判定する。
さらに、割り当て制御器E1は、リアルタイムフラグ情報a1が“1”となっている第1~第5のタスクT1~T5それぞれにおけるプロセッサP1~P4への割り当てを再割り当てすべきである、と判定する。この再割り当ては、第1~第5のタスクT1~T5の処理性能値Φ1~Φ5のそれぞれと、個々のプロセッサPj(j=1,2…4)の余力性能Mj(j=1,2…4)との比較対照に基づいて実施される。
ここで、図6を参照してプロセッサPjの余力性能Mj(j=1,2…m)について説明する。タスクTi(Ta,Tb)のリアルタイム性能時間τiを加味したプロセッサPjの処理能力値Wjは、プロセッサPjの単位時間当たりの処理能力qjにリアルタイム性能時間τiを乗算したもので、前述した通り、
Wj=qj×τi
である。この処理能力値Wjは、図6で太線で囲った矩形の面積(全体面積)に相当する。矩形の横幅はプロセッサPjの単位時間当たりの処理能力qjを表し、縦軸方向は時間軸方向である。このように時間軸方向の要素が加味されているところが、従来技術との比較上のポイントとなっている。なお、ここでいう加味するとは、性能保証タスクが必要とするリアルタイム性能時間を変数とする関数に基づいて、処理能力値を算出することである。
Wj=qj×τi
である。この処理能力値Wjは、図6で太線で囲った矩形の面積(全体面積)に相当する。矩形の横幅はプロセッサPjの単位時間当たりの処理能力qjを表し、縦軸方向は時間軸方向である。このように時間軸方向の要素が加味されているところが、従来技術との比較上のポイントとなっている。なお、ここでいう加味するとは、性能保証タスクが必要とするリアルタイム性能時間を変数とする関数に基づいて、処理能力値を算出することである。
具体的には、プロセッサP1の単位時間当たりの処理能力をq1とし、プロセッサP1に割り当てられた性能保証タスクαである第1のタスクT1のリアルタイム性能時間をτ1とすると、プロセッサP1のリアルタイム性能時間τ1に相当する処理能力値W1は、
W1=q1×τ1
となる。
W1=q1×τ1
となる。
プロセッサP2の単位時間当たりの処理能力をq2とし、プロセッサP2に割り当てられた性能保証タスクαである第2のタスクT2のリアルタイム性能時間をτ2とすると、プロセッサP2のリアルタイム性能時間τ2に相当する処理能力値W2は、
W2=q2×τ2
となる。
W2=q2×τ2
となる。
プロセッサP3の単位時間当たりの処理能力をq3とし、プロセッサP3に割り当てられた性能保証タスクαである第3のタスクT3のリアルタイム性能時間をτ3とすると、プロセッサP3のリアルタイム性能時間τ3に相当する処理能力値W3は、
W3=q3×τ3
となる。
W3=q3×τ3
となる。
プロセッサP4の単位時間当たりの処理能力をq4とし、プロセッサP4に割り当てられた性能保証タスクαである第4のタスクT4のリアルタイム性能時間をτ4とすると、プロセッサP4のリアルタイム性能時間τ4に相当する処理能力値W4は、
W4=q4×τ4
となる。なお、マルチプロセッサシステムにおける4つのプロセッサP1~P4において、それぞれの単位時間当たりの処理能力q1~q4は互いに等しいのが一般的である(q1=q2=q3=q4)。
W4=q4×τ4
となる。なお、マルチプロセッサシステムにおける4つのプロセッサP1~P4において、それぞれの単位時間当たりの処理能力q1~q4は互いに等しいのが一般的である(q1=q2=q3=q4)。
このように、実行完了することが望まれている任意の時間長をリアルタイム性能時間τi(i=1,2,…n)とし、単位時間当たりの処理能能力qjを有するプロセッサPjがリアルタイム性能時間τiで実行可能な処理量を処理能力値Wjとした場合、
Wj=qj×τi
となる。上述した性能保証タスクが必要とするリアルタイム性能時間を変数とする関数に基づいて処理能力値が算出される状態の一例としては、このような関係が維持された状態を挙げることができる。
Wj=qj×τi
となる。上述した性能保証タスクが必要とするリアルタイム性能時間を変数とする関数に基づいて処理能力値が算出される状態の一例としては、このような関係が維持された状態を挙げることができる。
図4の例であれば、プロセッサP1の処理能力値W1は、単位時間当たりの処理能力q1=10MIPSと、リアルタイム性能時間τ1=10msとを乗算したものであって、
W1=10MIPS×10ms=100KI
となる(図7の(a)の左端にあるブロック参照)。
W1=10MIPS×10ms=100KI
となる(図7の(a)の左端にあるブロック参照)。
図6において、プロセッサPjに割り当てられた性能保証タスクをαa,αbとし、性能保証タスクαaの処理性能値をΦaとし、性能保証タスクαbの処理性能値をΦbとすると、プロセッサPjに現在割り当てられている性能保証タスクαa,αbの処理性能値総和ΣΦiは、
ΣΦi=Φa+Φb
となる。プロセッサPjの処理性能値総和ΣΦiは、図6において太線の矩形の内部における塗りつぶし部分に対応する。図4の例では、
ΣΦi=Φ1+Φ5=50KI+10KI=60KI
となる(図7の(a)の左端にあるブロック参照)。
ΣΦi=Φa+Φb
となる。プロセッサPjの処理性能値総和ΣΦiは、図6において太線の矩形の内部における塗りつぶし部分に対応する。図4の例では、
ΣΦi=Φ1+Φ5=50KI+10KI=60KI
となる(図7の(a)の左端にあるブロック参照)。
図6において、プロセッサPjの余力性能Mjは、性能保証タスクαi(αa,αb)のリアルタイム性能時間τiを加味したプロセッサPjの処理能力値Wj(=qj×τi)から、現在プロセッサPjに割り当てられている性能保証タスクαの処理性能値総和ΣΦiを減算したものであり、
Mj=Wj-ΣΦi
=qj×τi-ΣΦi
=qj×τi-(Φa+Φb)
となる。すなわち、余力性能Mjは、プロセッサPjの単位時間当たりの処理能力qj(MIPS値)と、判断対象タスクにおけるリアルタイム性能時間τiの値との乗算結果から、当該プロセッサPjに割り当てられている性能保証タスクαにおける加算結果(処理性能値総和ΣΦi)を減算したものである(余力性能Mj=qj×τi-ΣΦi)。このようにして算出される余力性能Mjは、図6において太線の矩形の内部における白色部分に対応する。
Mj=Wj-ΣΦi
=qj×τi-ΣΦi
=qj×τi-(Φa+Φb)
となる。すなわち、余力性能Mjは、プロセッサPjの単位時間当たりの処理能力qj(MIPS値)と、判断対象タスクにおけるリアルタイム性能時間τiの値との乗算結果から、当該プロセッサPjに割り当てられている性能保証タスクαにおける加算結果(処理性能値総和ΣΦi)を減算したものである(余力性能Mj=qj×τi-ΣΦi)。このようにして算出される余力性能Mjは、図6において太線の矩形の内部における白色部分に対応する。
割り当て制御器E1は、まず、余力性能Mj(=qj×τi-ΣΦi)が最小となるプロセッサを検索する。ここで、図4、図5の例について、プロセッサP1~P4それぞれの余力性能M1~M4を算出しておく。その計算式は、
M1=W1-(Φ1+Φ5)=q1×τ1-(Φ1+Φ5)
M2=W2-(Φ2+Φ6)=q2×τ2-Φ2
M3=W3-(Φ3+Φ7)=q3×τ3-Φ3
M4=W4-(Φ4+Φ8)=q4×τ4-Φ4
となる。
M1=W1-(Φ1+Φ5)=q1×τ1-(Φ1+Φ5)
M2=W2-(Φ2+Φ6)=q2×τ2-Φ2
M3=W3-(Φ3+Φ7)=q3×τ3-Φ3
M4=W4-(Φ4+Φ8)=q4×τ4-Φ4
となる。
以下では、具体的な動作例を図7を参照しながら説明する。図7は実施の形態1における省電力制御装置の動作説明図である。図7では、プロセッサP1の縦軸方向幅とプロセッサP4の縦軸方向幅とが互いに等しく、またプロセッサP2の縦軸方向幅とプロセッサP3の縦軸方向幅とが互いに等しいが、前者(リアルタイム性能時間=10ms)と後者(リアルタイム性能時間=12ms)では縦軸方向幅が互いに相違している。上記の余力性能Mjについての一連の式に具体的数値を代入すると、プロセッサP1の余力性能M1は、
M1=q1×τ1-(Φ1+Φ5)
=[(10MIPS×10ms)-(50KI+10KI)]
=100KI-60KI=40KI
となり(図4の最下段と図7(a)左端のブロック参照)、
プロセッサP2の余力性能M2は、
M2=[(10MIPS×12ms)-(60KI+0KI)]=60KI
となり、
プロセッサP3の余力性能M3は、
M3=[(10MIPS×12ms)-(50KI+0KI)]=70KI
となり、
プロセッサP4の余力性能M4は、
M4=[(10MIPS×10ms)-(40KI+0KI)]=60KI
となる。
M1=q1×τ1-(Φ1+Φ5)
=[(10MIPS×10ms)-(50KI+10KI)]
=100KI-60KI=40KI
となり(図4の最下段と図7(a)左端のブロック参照)、
プロセッサP2の余力性能M2は、
M2=[(10MIPS×12ms)-(60KI+0KI)]=60KI
となり、
プロセッサP3の余力性能M3は、
M3=[(10MIPS×12ms)-(50KI+0KI)]=70KI
となり、
プロセッサP4の余力性能M4は、
M4=[(10MIPS×10ms)-(40KI+0KI)]=60KI
となる。
ここで、割り当て制御器E1は、余力性能Mjの値が最小となるプロセッサP1~P4を検索により抽出する。プロセッサP1~P4の余力性能M1~M4(40KI,60KI,70KI,60KI)のうち最小の余力性能は、プロセッサP1の余力性能M1(40KI)である。そのため割り当て制御器E1は、余力性能が最小であるプロセッサはプロセッサP1であると判断する。余力性能が最小であるプロセッサ(プロセッサP1)が第3のプロセッサである。第3のプロセッサは、前述したように、タスク再割り当て先(その候補も含む)となりうるプロセッサを意味する。
次に、割り当て制御器E1は、再割り当ての可否を判断する。すなわち、割り当て制御器E1は、プロセッサP1(第3のプロセッサ)以外のプロセッサP2~P4に割り当てられている性能保証タスクαを認識する。本実施の形態では、第2のタスクT2、第3のタスクT3および第4のタスクT4が上記性能保証タスクαであると認識される。割り当て制御器E1は、これら3つの性能保証タスクα(T2,T3,T4)の中に、プロセッサP1(第3のプロセッサ)に再割り当て可能な性能保証タスクαが存在するか否かを判断する。以下、再割り当て可能な性能保証タスクαを、再割り当て可能タスクといい、再割り当て可能タスクが割り付けられているプロセッサを第2のプロセッサという。第2のプロセッサはタスク再割り当て元(その候補を含む)となりうるプロセッサを意味する。
上記判断は、第3のプロセッサ(プロセッサP1)の余力性能M1(40KI)を基準にして行われる。具体的には、
・第2のタスクT2の処理性能値Φ2(60KI)は、プロセッサP1の余力性能M1(40KI)より大きいので、第2のタスクT2を第3のプロセッサ(プロセッサP1)に再割り当てすることは不可能である。
・第3のタスクT3の処理性能値Φ3(50KI)は、第3のプロセッサ(プロセッサP1)の余力性能M1(40KI)より大きいので、第3のタスクT3を第3のプロセッサ(プロセッサP1)に再割り当てすることは不可能である。
・第4のタスクT4の処理性能値Φ4(40KI)は、第3のプロセッサ(プロセッサP1)の余力性能M1(40KI)の範囲内に収まるので、第4のタスクT4をプロセッサP1に再割り当てすることは可能である。
・第2のタスクT2の処理性能値Φ2(60KI)は、プロセッサP1の余力性能M1(40KI)より大きいので、第2のタスクT2を第3のプロセッサ(プロセッサP1)に再割り当てすることは不可能である。
・第3のタスクT3の処理性能値Φ3(50KI)は、第3のプロセッサ(プロセッサP1)の余力性能M1(40KI)より大きいので、第3のタスクT3を第3のプロセッサ(プロセッサP1)に再割り当てすることは不可能である。
・第4のタスクT4の処理性能値Φ4(40KI)は、第3のプロセッサ(プロセッサP1)の余力性能M1(40KI)の範囲内に収まるので、第4のタスクT4をプロセッサP1に再割り当てすることは可能である。
以上の判定結果に基づいて、割り当て制御器E1は、図7における(a)から(b)に至る矢印に示すように、
・第2のプロセッサであるプロセッサP4をタスク再割り当て元として確定し、
・第3のプロセッサであるプロセッサP1をタスク再割り当て先として確定し、
・プロセッサP4に割り当てられていた第4のタスクT4を再割り当て可能タスクとして確定し、
そのうえで、
・第4のタスクT4を、プロセッサP4からプロセッサP1に再割り当て(移動)する。
・第2のプロセッサであるプロセッサP4をタスク再割り当て元として確定し、
・第3のプロセッサであるプロセッサP1をタスク再割り当て先として確定し、
・プロセッサP4に割り当てられていた第4のタスクT4を再割り当て可能タスクとして確定し、
そのうえで、
・第4のタスクT4を、プロセッサP4からプロセッサP1に再割り当て(移動)する。
このようなタスク再割り当てを行った結果、プロセッサP1の余力性能M1は0KIとなり、プロセッサP4における性能保証タスクの割り当ては全て解消される。
以上の再割り当てを実施することにより、各プロセッサP1~P4の余力性能は次にように変化する。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は0KIとなる。
・プロセッサP2における性能保証タスクαの割り当てに変化はなく、その余力性能M2は60KIのままとなる。
・プロセッサP3における性能保証タスクαの割り当てに変化はなく、その余力性能M3は70KIのままとなる。
・プロセッサP4における性能保証タスクαの割り当ては全て解消されて、その余力性能M4は100KIとなる。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は0KIとなる。
・プロセッサP2における性能保証タスクαの割り当てに変化はなく、その余力性能M2は60KIのままとなる。
・プロセッサP3における性能保証タスクαの割り当てに変化はなく、その余力性能M3は70KIのままとなる。
・プロセッサP4における性能保証タスクαの割り当ては全て解消されて、その余力性能M4は100KIとなる。
上記タスク再割り当てを実施することで、割り当て制御器E1は、この時点における第3のプロセッサ(タスク再割り当て先の候補:余力性能Mjの値が最小)は、余力性能M2(60KI)を有するプロセッサP2に替わった、と判断する。さらに、割り当て制御器E1は、図7の(b)に示すように、第3のプロセッサ(プロセッサP2)を除いて、性能保証タスクαの再割り当てを実施していないプロセッサP3を第2のプロセッサ(タスク再割り当て元の候補)に認定し、プロセッサP3(第2のプロセッサ)に割り当てられている性能保証タスクα(第3のタスクT3)を再割り当て可能タスクに認定する。この認定に基づいて割り当て制御器E1は、第3のタスクT3(再割り当て可能タスク)をプロセッサP2(第3のプロセッサ)に再割り当てすることが可能であるか否かを、プロセッサP2の余力性能M2(60KI)を基準にして判断する。この場合、第3のタスクT3の処理性能値Φ3は50KIであってその値はプロセッサP2の余力性能M2(60KI)の範囲内に収まることから、割り当て制御器E1は、第3のタスクT3をプロセッサP2(第3のプロセッサ)に再割り当てすることが可能であると認定し、この認定に基づいて、プロセッサP3(第2のプロセッサ)をタスク再割り当て元に認定し、プロセッサP2(第3のプロセッサ)をタスク再割り当て先に認定する。
以上の認定に基づき、割り当て制御器E1は、図7の(b)から図7の(c)に至る矢印に示すように、プロセッサP3に割り当てられていた第3のタスクT3(再割り当て可能タスク)をプロセッサP2に再割り当て(移動)する。この再割り当ての結果、プロセッサP2の余力性能M2は10KIとなり、プロセッサP3は全ての性能保証タスクの割り当てが解消される。
以上のタスク再割り当てを実施することにより、各プロセッサの余力性能は次にように変化する。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は、0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては減少して、その余力性能M2は、10KIとなり、
・プロセッサP3におけるタスク割り当てはすべて解消して、その余力性能M3は、120KIとなり、
・プロセッサP4におけるタスク割り当てはすべて解消して、その余力性能M4は、100KIとなる。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は、0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては減少して、その余力性能M2は、10KIとなり、
・プロセッサP3におけるタスク割り当てはすべて解消して、その余力性能M3は、120KIとなり、
・プロセッサP4におけるタスク割り当てはすべて解消して、その余力性能M4は、100KIとなる。
以上のタスク再割り当てを実施することで、
・プロセッサP1に第1のタスクT1と第5のタスクT5と第4のタスクT4とが割り当てられ、
・プロセッサP2に第2のタスクT2と第6のタスクT6と第3のタスクT3とが割り当てられ、
・プロセッサP3に第7のタスクT7が割り当てられ、
・プロセッサP4に第8のタスクT8が割り当てられた、
状態となる。
・プロセッサP1に第1のタスクT1と第5のタスクT5と第4のタスクT4とが割り当てられ、
・プロセッサP2に第2のタスクT2と第6のタスクT6と第3のタスクT3とが割り当てられ、
・プロセッサP3に第7のタスクT7が割り当てられ、
・プロセッサP4に第8のタスクT8が割り当てられた、
状態となる。
性能保証タスクα(第1~第5のタスクT1~T5)だけに注目し、性能非保証タスクβ(第6~第8のタスクT6~T8)は無視すると、
・プロセッサP1には第1のタスクT1と第5のタスクT5と第4のタスクT4が割り当てられ、
・プロセッサP2には第2のタスクT2と第3のタスクT3が割り当てられ、
・プロセッサP3とプロセッサP4には性能保証タスクαの割り当てがない状態となり、
結果として、これ以上の再割り当て可能な性能保証タスクαはなくなる。
・プロセッサP1には第1のタスクT1と第5のタスクT5と第4のタスクT4が割り当てられ、
・プロセッサP2には第2のタスクT2と第3のタスクT3が割り当てられ、
・プロセッサP3とプロセッサP4には性能保証タスクαの割り当てがない状態となり、
結果として、これ以上の再割り当て可能な性能保証タスクαはなくなる。
以上の割り当て制御器E1によるタスクの割り当て処理および性能保証タスクαの再割り当て処理が完了すると、次に動作状態制御器E2が起動し、第1のプロセッサ(性能保証タスクαの割り当てが解消されたプロセッサ)であるプロセッサP3とプロセッサP4との動作状態に省電力モードを適用する。ここでは、動作状態制御器E2がクロック制御部4を制御して、プロセッサP3とプロセッサP4とに対するクロックの供給を停止する。プロセッサP3とプロセッサP4には、性能保証タスクαは割り当てられていないから、クロックの供給を停止しても問題は生じない。
以上のようにして、図4の状態から始めてタスクの再割り当て(移動)を実行した結果を図8に示す。リアルタイムフラグ情報a1が“1”となっている第1~第5のタスクT1~T5は、プロセッサP1とプロセッサP2とに集約され、使用プロセッサ数が最小限となる割り当てが実現されている。
図9は本実施の形態1の省電力制御装置の動作を示すフローチャートである。以下、このフローチャートに従って動作を説明する。まずステップS1において、割り当て制御器E1は、余力性能Mjの値が最小となる第3のプロセッサ(タスク再割り当て先の候補)を検索により抽出する。余力性能Mjの算出方法は、次のとおりである。
余力性能Mjが、処理能力値Wjと処理性能値総和ΣΦiの差分として算出される(Mj=Wj-ΣΦi)。処理能力値Wjは、プロセッサPjの単位時間当たりの処理能力qjにリアルタイム性能時間τiを乗算したものとして算出される(Wj=qj×τi)。すなわち、余力性能Mjは、
Mj=qj×τi-ΣΦi
に従って算出される。
Mj=qj×τi-ΣΦi
に従って算出される。
次いでステップS2において、割り当て制御器E1は、第3のプロセッサ以外のプロセッサに割り当てられている性能保証タスクαのグループの中に、性能保証が可能な状態で第3のプロセッサに再割り当て可能なタスク(再割り当て可能タスク)が存在するか否かを判断する。上記の動作例では、プロセッサP4に割り当てられていた第4のタスクT4が再割り当て可能タスクに該当すると判断される。
ステップS3は、ステップS2における再割り当て可能タスクの検出結果に基づいて分岐を行う処理である。ステップS3において再割り当て可能タスクが存在すると判断されたときは、ステップS1で抽出された第3のプロセッサがタスク再割当先に認定され、ステップS3で存在が確認された再割り当て可能タスクが割り当てられている第2のプロセッサ(タスク再割り当て元の候補)がタスク再割り当て元に認定されたうえで処理がステップS4に分岐する。一方、ステップS3において再割り当て可能タスクが存在しないと判断されたときは、ステップS1で抽出された第3のプロセッサがタスク再割り当て先に認定されることなく処理がステップS5に分岐する。
ステップS4では、再割り当て可能タスクを、タスク再割り当て元に確定した第2のプロセッサから、タスク再割当先に確定した第3のプロセッサに移動(再割り当て)させたうえで、再度ステップS2に移行する。
ステップS2,S3,S4のループ処理を繰り返すことで、ステップS1で抽出した第3のプロセッサに対する再割り当て可能タスクの照合処理並びに再割り当て処理が終了すると、ステップS3からステップS5に移行する。
ステップS5において、タスク再割り当てが未完了状態のプロセッサや再割り当て可能タスクが残存するか否かが判定される。ステップS5においてこれらのプロセッサやタスクが残存すると判定される場合は、残存するプロセッサやタスクについて、再度ステップS1からステップS1~S5が繰り返される。
ステップS5において、タスク再割り当てが未完了状態のプロセッサや再割り当て可能タスクが残存しないと判定される場合は、ステップS6に移行する。ステップS6において、動作状態制御器E2は、性能保証タスクαの割り当てが全て解消されたプロセッサ(第1のプロセッサ)に対するクロック供給を、クロック制御部4を介して停止させる。これによって消費電力が削減される。
以上で説明したように実施の形態1の省電力制御装置では、各プロセッサPj(j=1,2…m)に割り当てられる性能保証タスクαで必要となるリアルタイム性能時間τi(i=1,2…n)を加味した要素値(具体的にはプロセッサPjの処理能力値Wj)を制御ファクタとして用いている。そのうえで割り当て制御器E1は、各プロセッサPjに割り当てられるべき各性能保証タスクαiの処理性能値Φi(i=1,2…n)のそれぞれと、プロセッサPjの処理能力値Wj(j=1,2…m)のそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように、各性能保証タスクαを各プロセッサPjに割り当てるように制御する。
より詳しくは、判断対象の性能保証タスクα(以下、判断対象タスクα’という)の処理性能値Φiを、判断対象タスクα’が割り当てられた第2のプロセッサ以外のプロセッサの余力性能Mjと比較する。その結果において、余力性能Mjが処理性能値Φi以上となった(Pj≧Mj)第3のプロセッサは、判断対象タスクα’を実行する余力がある、と判断したうえで、第2のプロセッサから第3のプロセッサに判断対象タスクα’を再割り当て(移動)する。
割り当て制御器E1によるこのようはタスク再割り当て処理を行うことで性能保証タスクαの割り当てが全て解消された第1のプロセッサには、動作状態制御器E2が省電力状態を適用する。このような制御を実施することで実施の形態1の省電力制御装置では、性能保証タスクαと性能非保証タスクβとが混在するマルチプロセッサシステムにおいて、時間的に変化する要素値を常時的に監視したり、プロセッサ動作状態を常時的に制御下に置いたりすることなく、また従来技術のようにプロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することができる。
なお、性能保証タスクαの割り当てが解消された第1のプロセッサへのクロック供給を停止する代わりに、
・第1のプロセッサの動作周波数を低くする(第1のプロセッサにおけるクロック供給モードを低クロック供給モードにする)、
・タスク再割り当て先に確定した第3のプロセッサにおけるクロック供給モードを低クロック供給モードから高クロック供給モードに変更する、
・タスク再割り当て先に確定した第3のプロセッサの動作モードを低消費電力動作モードから通常動作モードに変更する、
といった制御を実施してもよい(※1)。
・第1のプロセッサの動作周波数を低くする(第1のプロセッサにおけるクロック供給モードを低クロック供給モードにする)、
・タスク再割り当て先に確定した第3のプロセッサにおけるクロック供給モードを低クロック供給モードから高クロック供給モードに変更する、
・タスク再割り当て先に確定した第3のプロセッサの動作モードを低消費電力動作モードから通常動作モードに変更する、
といった制御を実施してもよい(※1)。
さらには、上述した動作変更に加えて、
・第1のプロセッサに割り当てられていたメモリを、第3のプロセッサに再割り当てする、
・第1のプロセッサのキャッシュモードを変更する、
といった制御を行ってもよい(※2)。
・第1のプロセッサに割り当てられていたメモリを、第3のプロセッサに再割り当てする、
・第1のプロセッサのキャッシュモードを変更する、
といった制御を行ってもよい(※2)。
キャッシュモードの変更とは、具体的には次のような制御である。すなわち、スヌーピング機能を備えたキャッシュでは、通常動作時において、周辺機器からのDMA(Direct Memory Access)などに起因して、メモリ内容とキャッシュ内容との間で不一致が生じることがある。そのため、従来からこのような不一致が発生すると、キャッシュ内容を破棄する、という制御が実施されている。以下、このような制御をスヌーピング制御という。キャッシュモードの変更においては、性能保証タスクαの割り当てが解消された第1のプロセッサのスヌーピング制御を停止させる。これにより、マルチプロセッサシステムのトータルなタスク分散処理の効率を高くすることが可能となる。
なお、実施の形態1では、リアルタイムフラグ情報a1に基づいて、性能非保証タスクβを判定しているが、例えば、リアルタイム性能情報a2あるいは処理性能情報a3の値が“0”のタスクを性能非保証タスクβと判定してもよい(※3)。
なお、実施の形態1ではステップS1において、余力性能Mj(=qj×τi-ΣΦi)の値が最小となるプロセッサを検索することで、第3のプロセッサ(タスク再割当先候補)を抽出しているが、余力性能Mjの値が最大となるプロセッサを優先的に第3のプロセッサ(タスク再割当先候補)としてもよいし、単純にプロセッサ番号の昇順や降順に従って第3のプロセッサ(タスク再割当先候補)を検索してもよい(※4)。
なお、図9に示すフローチャートのステップにおいては、ループ(S2→S3→S4→S2…、S1→S2→S3→S5→S1…)が含まれるため、このループの処理時間が長くなる可能性もある。そのため、図9に示すフローチャートのステップを実行するか否かを判定する(つまり、図9の「開始」へ処理を移行するか否かを判定する)処理を別途行うように構成してもよい(※5)。
なお、本実施の形態1では割り当て制御器E1と動作状態制御器E2とは、CPU1とROM2とRAM3が機能的結合されてなるオペレーティングシステム10で構成されているが、このオペレーティングシステム10に代えて専用のDSP(Digital Signal Processor)から割り当て制御器E1と動作状態制御器E2とを構成してもよい(※6)。
(実施の形態2)
本発明の実施の形態2は、性能保証タスクαが使用する資源について競合がないことを優先条件にして、性能保証タスクαのプロセッサへの再割り当てを行うように構成したものである。実施の形態2のマルチプロセッサシステムにおける省電力制御装置の構成については、実施の形態1の場合の図1が援用される。
本発明の実施の形態2は、性能保証タスクαが使用する資源について競合がないことを優先条件にして、性能保証タスクαのプロセッサへの再割り当てを行うように構成したものである。実施の形態2のマルチプロセッサシステムにおける省電力制御装置の構成については、実施の形態1の場合の図1が援用される。
図10は実施の形態2の場合において、第1~第8のタスクT1~T8がそれぞれ保持しているタスク管理情報20の構造を示す。タスク管理情報20は、実施の形態1の場合の図3でのリアルタイムフラグ情報a1、リアルタイム性能情報a2および処理性能情報a3に加えて、各タスクがそれぞれ使用する資源を示す使用資源情報a4を保持している。
図11は実施の形態2の場合において、第1~第8のタスクT1~T8についてのタスク管理情報20の具体的な内容を示す。プロセッサP1~P4の単位時間当たりの処理能力qj(j=1,2…4)を示すMIPS値については、実施の形態1の図5が援用される。
図11において、実施の形態1(図4)と相違するのは、リアルタイム性能時間τiである。実施の形態1(図4)では、プロセッサP1,P4のリアルタイム性能時間τ1,τ4は等しく10msであり、またプロセッサP2,P3のリアルタイム性能時間τ2,τ3は等しく12msである。リアルタイム性能時間τ1,τ4とリアルタイム性能時間τ2,τ3とは相違している。これに対して、実施の形態2では、すべての性能保証タスクα(第1~第5のタスクT1~T5)のリアルタイム性能時間τ1~τ5は互いに等しく、すべて10msとなっている。
図12の(a)は図11に対応している。実施の形態2の構成(図11)と実施の形態1の構成(図4)とを比較する。
(リアルタイムフラグ情報a1)
この情報では、両者同じである。
この情報では、両者同じである。
(リアルタイム性能時間τiと処理性能値Φi)
この情報において第1のタスクT1、第4のタスクT4および第5のタスクT5では、同じであるものの、第2のタスクT2と第3のタスクT3とでは、相違する。すなわち、実施の形態2の第2のタスクT2では、リアルタイム性能時間τ2は10msであり、処理性能値Φ2は40KIである(τ2=10ms、Φ2=40KI)。実施の形態2の第3のタスクT3では、リアルタイム性能時間τ3は10msであり、処理性能値Φ3は30KIである(τ3=10ms、Φ3=30KI)。これらの情報が実施の形態1(図4)と相違する。
この情報において第1のタスクT1、第4のタスクT4および第5のタスクT5では、同じであるものの、第2のタスクT2と第3のタスクT3とでは、相違する。すなわち、実施の形態2の第2のタスクT2では、リアルタイム性能時間τ2は10msであり、処理性能値Φ2は40KIである(τ2=10ms、Φ2=40KI)。実施の形態2の第3のタスクT3では、リアルタイム性能時間τ3は10msであり、処理性能値Φ3は30KIである(τ3=10ms、Φ3=30KI)。これらの情報が実施の形態1(図4)と相違する。
実施の形態2において、割り当て制御器E1は、使用資源情報a4を参照することで、
・第1のタスクT1は資源Aと資源Bとを使用する、
・第2のタスクT2は資源Cと資源Dとを使用する、
・第3のタスクT3は資源Aと資源Cとを使用する、
・第4のタスクT4は資源Bと資源Dとを使用する、
・第5のタスクT5は資源Eを使用する、
ことをそれぞれ認識する。
・第1のタスクT1は資源Aと資源Bとを使用する、
・第2のタスクT2は資源Cと資源Dとを使用する、
・第3のタスクT3は資源Aと資源Cとを使用する、
・第4のタスクT4は資源Bと資源Dとを使用する、
・第5のタスクT5は資源Eを使用する、
ことをそれぞれ認識する。
余力性能Mj(=qj×τi-ΣΦi)は、実施の形態1と同様である。すなわち、
・プロセッサP1の余力性能はM1=40KIであり、
・プロセッサP2の余力性能はM2=60KIであり、
・プロセッサP3の余力性能はM3=70KIであり、
・プロセッサP4の余力性能はM4=60KIである。
したがって、実施の形態2においても、余力性能が最小となる第3のプロセッサ(タスク再割り当て先候補)はプロセッサP1となる。
・プロセッサP1の余力性能はM1=40KIであり、
・プロセッサP2の余力性能はM2=60KIであり、
・プロセッサP3の余力性能はM3=70KIであり、
・プロセッサP4の余力性能はM4=60KIである。
したがって、実施の形態2においても、余力性能が最小となる第3のプロセッサ(タスク再割り当て先候補)はプロセッサP1となる。
割り当て制御器E1は、タスク再割り当てが可能であるか否かを判断する。すなわち、割り当て制御器E1は、まず、第3のプロセッサ(プロセッサP1)に割り当てられているタスク(第1のタスクT1)が使用する資源と、それ以外のプロセッサ(プロセッサP2,P3,P4)に割り当てられているタスク(第2のタスクT2、第3のタスクT3および第4のタスクT4)が使用する資源とを認識したうえで、認識した両タスクの間で資源が一致するか否かを判断する。資源の認識は各タスクが保持する使用資源情報a4を参照することで実施できる。
図11、図12に示す実施の形態2の構成では、
・プロセッサP1(第3のプロセッサ)が使用する資源は、資源A,B,Eであり、
・プロセスP2が使用する資源は、資源C,Dであり、
・プロセッサP3が使用する資源は資源A,Cであり、
・プロセッサP4が使用する資源は資源B,Dである。
したがって、プロセッサP1(第3のプロセッサ)との間で資源の競合が生じないプロセッサは、プロセッサP2となる。そこで、割り当て制御器E1は、第3のプロセッサ(プロセッサP1)に対して資源競合が乗じないプロセッサP2を第2のプロセッサ(タスク再割り当て元)に認定し、さらに第3のプロセッサ(プロセッサP1)をタスク再割当先に認定する。
・プロセッサP1(第3のプロセッサ)が使用する資源は、資源A,B,Eであり、
・プロセスP2が使用する資源は、資源C,Dであり、
・プロセッサP3が使用する資源は資源A,Cであり、
・プロセッサP4が使用する資源は資源B,Dである。
したがって、プロセッサP1(第3のプロセッサ)との間で資源の競合が生じないプロセッサは、プロセッサP2となる。そこで、割り当て制御器E1は、第3のプロセッサ(プロセッサP1)に対して資源競合が乗じないプロセッサP2を第2のプロセッサ(タスク再割り当て元)に認定し、さらに第3のプロセッサ(プロセッサP1)をタスク再割当先に認定する。
そこで、図12(a)から図12(b)に至る矢印で示すように、第2のプロセッサ(プロセッサP2)に割り当てられていた第2のタスクT2を第3のプロセッサ(プロセッサP1)に再割り当て(移動)する。この再割り当ての結果、第3のプロセッサ(プロセッサP1)の余力性能M1は0KIとなり、第2のプロセッサ(プロセッサP2)における性能保証タスク割り当てが全て解消される。
以上の再割り当てを実施することにより、各プロセッサP1~P4の余力性能は次にように変化する。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては全て解消されて、その余力性能M2は100KIとなる。
・プロセッサP3における性能保証タスクαの割り当てに変化はなく、その余力性能M3は70KIのままとなる。
・プロセッサP4における性能保証タスクαの割り当てに変化はなく、その余力性能M4は60KIのままとなる。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては全て解消されて、その余力性能M2は100KIとなる。
・プロセッサP3における性能保証タスクαの割り当てに変化はなく、その余力性能M3は70KIのままとなる。
・プロセッサP4における性能保証タスクαの割り当てに変化はなく、その余力性能M4は60KIのままとなる。
上記タスク再割り当てを実施することで、割り当て制御器E1は、この時点における第3のプロセッサ(タスク再割り当て先の候補:余力性能Mjの値が最小)は、余力性能M6(60KI)を有するプロセッサP4に替わった、と判断する。さらに、割り当て制御器E1は、図12の(b)に示すように、第3のプロセッサ(プロセッサP4)を除いて、性能保証タスクαの再割り当てを実施していないプロセッサP3を第2のプロセッサ(タスク再割り当て元の候補)に認定し、プロセッサP3(第2のプロセッサ)に割り当てられている性能保証タスクα(第3のタスクT3)を再割り当て可能タスクに認定する。この認定に基づいて割り当て制御器E1は、第3のタスクT3(再割り当て可能タスク)をプロセッサP4(第3のプロセッサ)に再割り当てすることが可能であるか否かを、プロセッサP4の余力性能M4(60KI)を基準にして判断する。この場合、第3のタスクT3の処理性能値Φ3は30KIであってその値はプロセッサP4の余力性能M2(60KI)の範囲内に収まる。さらには、プロセッサP4に割り当てられた第4のタスクT4が使用する資源は資源Bと資源Dとであって、第3のタスクT3が使用する資源Aと資源Cは競合しない。以上のことから、割り当て制御器E1は、再割り当て可能タスク(第3のタスクT3)は第3のプロセッサ(プロセッサP4)に再割り当てすることが可能であると認定する。この認定に基づいて、プロセッサP3(第2のプロセッサ)をタスク再割り当て元に認定し、プロセッサP4(第3のプロセッサ)をタスク再割り当て先に認定する。
以上の認定に基づき、割り当て制御器E1は、図12の(b)から図12の(c)に至る矢印に示すように、プロセッサP3に割り当てられていた第3のタスクT3(再割り当て可能タスク)をプロセッサP4に再割り当て(移動)する。この再割り当ての結果、プロセッサP4の余力性能M2は30KIとなり、プロセッサP3は全ての性能保証タスクの割り当てが解消される。
以上のタスク再割り当てを実施することにより、各プロセッサの余力性能は次にように変化する。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は、0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては100%となって、その余力性能M2は、100KIとる。
・プロセッサP3におけるタスク割り当てはすべて解消して、その余力性能M3は、100KIとなる。
・プロセッサP4における性能保証タスクαの割り当ては減少して、その余力性能M4は、30KIとなる。
・プロセッサP1における性能保証タスクαの割り当ては100%となって、その余力性能M1は、0KIとなる。
・プロセッサP2における性能保証タスクαの割り当ては100%となって、その余力性能M2は、100KIとる。
・プロセッサP3におけるタスク割り当てはすべて解消して、その余力性能M3は、100KIとなる。
・プロセッサP4における性能保証タスクαの割り当ては減少して、その余力性能M4は、30KIとなる。
以上のタスク再割り当てを行うことで、性能保証タスクα(第1~第5のタスクT1~T5)だけに注目すると、
・プロセッサP1に第1のタスクT1と第5のタスクT5と第2のタスクT2が割り当てられ、
・プロセッサP4に第4のタスクT4と第3のタスクT3が割り当てられ、
・プロセッサP2とプロセッサP3には性能保証タスクαの割り当てがない状態となり、
結果として、これ以上の再割り当て可能な性能保証タスクαはなくなる。
・プロセッサP1に第1のタスクT1と第5のタスクT5と第2のタスクT2が割り当てられ、
・プロセッサP4に第4のタスクT4と第3のタスクT3が割り当てられ、
・プロセッサP2とプロセッサP3には性能保証タスクαの割り当てがない状態となり、
結果として、これ以上の再割り当て可能な性能保証タスクαはなくなる。
以上の割り当て制御器E1によるタスクの割り当て処理および性能保証タスクαの再割り当て処理が完了すると、次に動作状態制御器E2が起動し、第1のプロセッサ(性能保証タスクαの割り当てが解消されたプロセッサ)であるプロセッサP2とプロセッサP3との動作状態に省電力モードを適用する。ここでは、動作状態制御器E2がクロック制御部4を制御して、プロセッサP2とプロセッサP3とに対するクロックの供給を停止する。プロセッサP2とプロセッサP3とには、性能保証タスクαは割り当てられていないから、クロックの供給を停止しても問題は生じない。
以上のようにして、図11の状態から始めてタスクの再割り当て(移動)を実行した結果を図13に示す。リアルタイムフラグ情報a1が“1”となっている第1~第5のタスクT1~T5は、プロセッサP1とプロセッサP4とに集約され、使用プロセッサ数が最小限となる割り当てが実現されている。
図14は本実施の形態2の省電力制御装置の動作を示すフローチャートである。以下、このフローチャートに従って動作を説明する。実施の形態1の場合の図9との対比では、ステップS12がステップS2と相違し、他のステップは同じである。
まずステップS11において、割り当て制御器E1は、余力性能Mj(=qj×τi-ΣΦi)の値が最小となる第3のプロセッサ(タスク再割り当て先の候補)を検索により抽出する。
次いでステップS12において、割り当て制御器E1は、第3のプロセッサ以外のプロセッサに割り当てられている性能保証タスクαのグループの中に、
・性能保証が可能な状態で第3のプロセッサに再割り当て可能である、
・第3のプロセッサとの間で資源の競合がない、
という条件を満たした状態で第3のプロセッサに再割り当て可能なタスク(再割り当て可能タスク)が存在するか否かを判断する。上記の動作例では、プロセッサP2に割り当てられていた第2のタスクT2が再割り当て可能タスクに該当すると判断される。
・性能保証が可能な状態で第3のプロセッサに再割り当て可能である、
・第3のプロセッサとの間で資源の競合がない、
という条件を満たした状態で第3のプロセッサに再割り当て可能なタスク(再割り当て可能タスク)が存在するか否かを判断する。上記の動作例では、プロセッサP2に割り当てられていた第2のタスクT2が再割り当て可能タスクに該当すると判断される。
ステップS13は、ステップS12における再割り当て可能タスクの検出結果に基づいて分岐を行う処理である。ステップS13において再割り当て可能タスクが存在すると判断されたときは、ステップS11で抽出された第3のプロセッサがタスク再割当先に認定され、ステップS3で存在が確認された再割り当て可能タスクが割り当てられている第2のプロセッサ(タスク再割り当て元の候補)がタスク再割り当て元に認定されたうえで処理がステップS14に分岐する。一方、ステップS13において再割り当て可能タスクが存在しないと判断されたときは、ステップS11で抽出された第3のプロセッサがタスク再割当先に認定されることなく処理がステップS15に分岐する。
ステップS14では、再割り当て可能タスクを、タスク再割り当て先に認定した第2のプロセッサから、タスク再割当先に認定した第3のプロセッサに移動(再割り当て)させたうえで、再度ステップS12に移行する。
ステップS12,S13,S14のループ処理を繰り返すことで、ステップS11で抽出した第3のプロセッサに対する再割り当て可能タスクの照合処理並びに再割り当て処理が終了すると、ステップS13からステップS15に移行する。
ステップS15において、タスク再割り当てが未完了状態のプロセッサや再割り当て可能タスクが残存するか否かが判定される。ステップS15においてこれらのプロセッサやタスクが残存すると判定される場合は、残存するプロセッサやタスクについて、再度ステップS11~S15が繰り返される。
ステップS15において、タスク再割り当てが未完了状態のプロセッサや再割り当て可能タスクが残存しないと判定される場合は、ステップS16に移行する。ステップS16において、動作状態制御器E2は、性能保証タスクαの割り当てが全て解消されたプロセッサ(第1のプロセッサ)に対するクロック供給を、クロック制御部4を介して停止させる。これによって消費電力が削減される。
以上説明したように実施の形態2の省電力制御装置によれば、資源のプロセッサ間競合を最小限とするので、効率の良いタスク処理が可能となる。
なお、実施の形態2では性能保証タスクが使用する資源のプロセッサ間競合を最小限とするように再割り当てを行っているが、これに代えて、
・性能保証タスクにおいて、同一シーケンスで処理する必要のある性能保証タスク群をなるべく同一のプロセッサへ再割り当てするようにすることで、ディスパッチ回数を最小限とする、
・性能保証タスクαが再割り当てされたプロセッサへは性能非保証タスクβを割り当てないようにすることで、性能非保証タスクβのプロセッサ間移動を最小限とする、
といった制御を実施してもよい
なお、実施の形態1の場合の尚書き(※1)~(※6)の構成は実施の形態2にも適用することができる。
・性能保証タスクにおいて、同一シーケンスで処理する必要のある性能保証タスク群をなるべく同一のプロセッサへ再割り当てするようにすることで、ディスパッチ回数を最小限とする、
・性能保証タスクαが再割り当てされたプロセッサへは性能非保証タスクβを割り当てないようにすることで、性能非保証タスクβのプロセッサ間移動を最小限とする、
といった制御を実施してもよい
なお、実施の形態1の場合の尚書き(※1)~(※6)の構成は実施の形態2にも適用することができる。
(実施の形態3)
本発明の実施の形態3は、実施の形態1および実施の形態2の省電力制御装置をデジタルスチルカメラ(モバイル端末)に用いた形態を例示するものである。
本発明の実施の形態3は、実施の形態1および実施の形態2の省電力制御装置をデジタルスチルカメラ(モバイル端末)に用いた形態を例示するものである。
図15は本発明の実施の形態3におけるデジタルスチルカメラの機能的構成を示すブロック図であり、図16はそのデジタルスチルカメラの主要部の機能を表す機能説明図である。
本実施の形態3のデジタルスチルカメラ30は、CPU40と、キー操作部51と、タイマ部52と、カメラ部53と、オーディオ部54と、USB(Universal Serial Bus)インターフェース部55とを備える。キー操作部51はこれを制御するキー判別タスクT1とキー実行タスクT5とを備え、タイマ部52はこれを制御するタイマタスクT2を備え、カメラ部53はこれを制御するカメラタスクT3を備え、オーディオ部54はこれを制御するオーディオタスクT4を備え、USBインターフェース部55はこれを制御するUSBタスクT6~T8を備える。タスクT1~T5は性能保証タスクαに該当し、タスクT6~T8は性能非保証タスクβに該当する。
CPU40は、マルチプロセッサシステムを備える。マルチプロセッサシステムは、複数(ここでは4つ)のプロセッサ、すなわちプロセッサP1~P4を備える。CPU40は、複数のタスクを並列的に処理しながらデジタルスチルカメラ30の全体を制御する。具体的には、CPU40は、キー操作部51から入力される各種の指示信号に応じて、オペレーティングシステムプログラム(OS)および各種アプリケーションプログラムを読み出して実行し、タイマ部52、カメラ部53、オーディオ部54およびUSBインターフェース部55を制御する。
このように構成されたデジタルスチルカメラのCPU40における動作シーケンスは、実施の形態1または実施の形態2の省電力制御装置の動作と本質的に同じであるので、説明を省略する。
実施の形態3のデジタルスチルカメラによれば、消費電力削減が可能となり、バッテリの持ち時間が長くなるという効果がある。なお、デジタルスチルカメラには、消費電力を特には抑えないで動作する通常消費電力モードと消費電力を抑えて動作する低消費電力モードとを切り替え可能なカメラがある。このようなデジタルスチルカメラにおいては、低消費電力モードが設定された場合に実施の形態3にあるような再割り当てを行うように構成してもよい。
また、低消費電力モードへの移行はユーザによって設定可能な機能としてもよいし、特定の条件が揃った場合に自動的に低消費電力モードへ移行するとしてもよい。なお、実施の形態1の場合の尚書き(※1)~(※6)の構成は実施の形態3にも実施可能である。
本実施の形態が適用される他のモバイル端末としては、バッテリ駆動され、携帯して持ち運び可能な携帯装置で、具体的には、携帯電話機、PHS(Personal Handy-phone System)、PDA(Personal Digital Assistant)、携帯ゲーム機、その他ノートパソコンなどがある。また、モバイル端末上で動作するタスクについては、通話機能、メール機能、インターネット機能、ゲーム機能、TV電話機能、TV視聴機能、TV録画機能、写真撮影機能、動画撮影機能、音楽再生機能、その他各種のアプリケーションが挙げられる。
上述した各実施の形態では、本発明をマルチプロセッサシステムおよびデジタルスチルカメラのCPUに適用する構成におい本発明を実施していたが、本発明はこれらの実施の形態に限定されるものではない。本発明は、マルチプロセッサシステムを含む集積回路や、コンピュータをマルチプロセッサとして機能させるプログラムにおいても同様に実施することができる。なお、この場合のプログラムは、CD-ROM等の記録媒体やインターネット等の通信媒体を介して配信してもよい。
本発明の、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置は、リアルタイム性を保証しながら消費電力を効果的に削減するための技術として有用である。また、デジタルスチルカメラなどのモバイル端末としても優れたものである。
E1 割り当て制御器
E2 動作状態制御器
P1~P4 プロセッサ
T1~T8 タスク
a1 リアルタイムフラグ情報
a2 リアルタイム性能情報
a3 処理性能情報
a4 使用資源情報
α 性能保証タスク
β 性能非保証タスク
1 CPU
2 ROM
3 RAM
4 クロック制御器
5 周辺デバイス
6 バス
10 オペレーティングシステム(OS)
20 タスク管理情報
30 デジタルスチルカメラ
40 CPU
51 キー操作部
52 タイマ部
53 カメラ部
54 オーディオ部
55 USBインターフェース部
E2 動作状態制御器
P1~P4 プロセッサ
T1~T8 タスク
a1 リアルタイムフラグ情報
a2 リアルタイム性能情報
a3 処理性能情報
a4 使用資源情報
α 性能保証タスク
β 性能非保証タスク
1 CPU
2 ROM
3 RAM
4 クロック制御器
5 周辺デバイス
6 バス
10 オペレーティングシステム(OS)
20 タスク管理情報
30 デジタルスチルカメラ
40 CPU
51 キー操作部
52 タイマ部
53 カメラ部
54 オーディオ部
55 USBインターフェース部
Claims (23)
- 性能保証タスクと性能非保証タスクとが混在する複数のタスクを分散処理する複数のプロセッサを備えるマルチプロセッサシステムであって、
前記性能保証タスクの処理サイクル数(実行命令数)を示す処理性能値のそれぞれと、前記プロセッサのタスク処理能力を示す処理能力値のそれぞれとの相関関係に基づいて、前記複数のタスクの処理に要するプロセッサ数が最小限となるように前記各性能保証タスクを前記プロセッサに割り当てる割り当て制御器と、
前記割り当て制御器により前記性能保証タスクの割り当てが解除された第1のプロセッサを省電力状態にする動作状態制御器と、
を備えるマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、割り当て処理後の前記性能保証タスクを、当該性能保証タスクが割り当てられた第2のプロセッサから第3のプロセッサに再割り当てする再割り当て処理が可能であるか否かを判断したうえで、再割り当て可能と判断すると、前記第2のプロセッサから前記第3のプロセッサに前記割り当て処理後の性能保証タスクを再割り当てするように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、前記割り当て処理後の性能保証タスクの前記処理性能値を、前記第3のプロセッサの処理余力を示す余力性能と比較したうえで、前記割り当て処理後の性能保証タスクの前記処理性能値が前記第3のプロセッサの前記余力性能以下のときに、前記再割り当て処理が可能であると判断するように構成されている、
請求項2のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、前記性能保証タスクが必要とするリアルタイム性能時間を変数とする関数により前記処理能力値を設定するように構成されている、
請求項1のマルチプロセッサシステムの省電力制御装置。 - 前記処理能力値は、前記プロセッサの単位時間当たりの処理能力に、前記リアルタイム性能時間を乗算したものである、
請求項4のマルチプロセッサシステムにおける省電力制御装置。 - 前記余力性能は、前記第3のプロセッサの前記処理能力値から、当該第3のプロセッサに割り当て済みの前記性能保証タスクの前記処理性能値の総和を減算したものである、
請求項3のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、前記性能保証タスクのプロセッサ間移動が最小限となるように、前記各性能保証タスクを前記プロセッサに割り当てる、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、前記再割り当て処理において、再割り当て対象とする前記性能保証タスクで使用する資源のプロセッサ間競合が最小限となることを優先するように構成されている、
請求項2のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、シーケンスのうえで同時処理する必要がある前記性能保証タスクのグループを優先して同一の前記第3のプロセッサに再割り当てするように構成されている、
請求項2のマルチプロセッサシステムにおける省電力制御装置。 - 前記割り当て制御器は、前記性能保証タスクの再割り当て処理を行ったのち、前記性能非保証タスクの再割り当て処理を行い、その際、前記第3のプロセッサに対する前記性能非保証タスクの前記再割り当て処理を禁止するように構成されている、
請求項2のマルチプロセッサシステムにおける省電力制御装置。 - 前記動作状態制御器は、前記第1のプロセッサの動作モードを変更することで、当該第1のプロセッサを省電力状態にするように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記第1のプロセッサの動作モードを変更するとは、当該第1のプロセッサへのクロック供給を停止することである、
請求項11のマルチプロセッサシステムにおける省電力制御装置。 - 前記動作状態制御器は、前記性能保証タスクが割り当てられた第2のプロセッサの動作モードを変更するように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記第2のプロセッサの動作モードを変更するとは、当該第2のプロセッサを電力低消費動作状態から通常動作状態へ変更すること、または、通常動作状態から高速動作状態へ変更することである、
請求項13のマルチプロセッサシステムにおける省電力制御装置。 - 前記動作状態制御器は、前記プロセッサとの間でデータの授受を行うメモリを前記プロセッサに割り当てる際において、前記プロセッサそれぞれに対する前記メモリの割り当てを動的に変更するように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記メモリの割り当てを動的に変更するとは、前記第1のプロセッサに割り当てられていた前記メモリを、前記第2のプロセッサへ再割り当てすることである、
請求項14のマルチプロセッサシステムにおける省電力制御装置。 - 前記プロセッサは、スヌーピング機能を有するキャッシュを備えており、
前記動作状態制御器は、前記キャッシュのスヌープモードを変更するように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記スヌープモードを変更するとは、前記第1のプロセッサにおける前記キャッシュのスヌープモードを停止させることである、
請求項17のマルチプロセッサシステムにおける省電力制御装置。 - 前記動作状態制御器は、前記第1のプロセッサを省電力状態にすることに代えて前記第1のプロセッサに接続された周辺デバイスの動作状態の変更を行う、または前記第1のプロセッサを省電力状態にするとともに、前記周辺デバイスの動作状態の変更を行うように構成されている、
請求項1のマルチプロセッサシステムにおける省電力制御装置。 - 前記マルチプロセッサシステムと、
請求項1のマルチプロセッサシステムにおける省電力制御装置と、
を備える、
モバイル端末。 - 前記マルチプロセッサシステムは、通常動作状態で動作させる通常動作モードと低消費電力状態で動作させる低消費電力動作モードとでそれぞれ動作し、
前記割り当て制御器と前記動作状態制御器とは、前記低消費電力モード状態においてのみ起動されるように構成されている、
請求項20のモバイル端末。 - 前記マルチプロセッサシステムは、前記通常動作モードと前記低消費電力モードとをユーザにより切り替え可能に構成されている、
請求項21のモバイル端末。 - 前記マルチプロセッサシステムは、当該マルチプロセッサシステムに電力を供給するバッテリの残電力量が一定量以下となると、動作モードが前記通常動作モードから前記低消費電力モードに切り替わるように構成されている、
請求項21のモバイル端末。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009128667A JP2010277300A (ja) | 2009-05-28 | 2009-05-28 | マルチプロセッサシステムにおける省電力制御装置およびモバイル端末 |
JP2009-128667 | 2009-05-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010137233A1 true WO2010137233A1 (ja) | 2010-12-02 |
Family
ID=43222365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/002884 WO2010137233A1 (ja) | 2009-05-28 | 2010-04-21 | マルチプロセッサシステムにおける省電力制御装置およびモバイル端末 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2010277300A (ja) |
WO (1) | WO2010137233A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013038566A1 (ja) * | 2011-09-16 | 2015-03-23 | 富士通株式会社 | コンピュータシステム |
CN107132903A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种节能管理实现方法、装置及网络设备 |
CN108121433A (zh) * | 2017-12-06 | 2018-06-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu多处理器系统的任务调度方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013018184A1 (ja) * | 2011-07-29 | 2013-02-07 | 富士通株式会社 | 割当方法、およびマルチコアプロセッサシステム |
KR101856750B1 (ko) | 2017-02-17 | 2018-05-10 | 성균관대학교산학협력단 | 터보 모드의 특징을 고려하여 로드 밸런싱을 수행하는 전자 장치, 그 제어방법 및 컴퓨터로 판독가능한 기록매체 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161985A (ja) * | 1996-11-28 | 1998-06-19 | Hitachi Ltd | プロセッサ割付方法およびマルチプロセッサ計算機システム |
JPH11202988A (ja) * | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JP2002099435A (ja) * | 2000-09-21 | 2002-04-05 | Toshiba Corp | マルチタスク制御方法および情報処理装置 |
JP2005267635A (ja) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | マルチプロセッサシステムの電力損失を低減する方法、装置およびプロセッサ |
JP2008511912A (ja) * | 2004-09-03 | 2008-04-17 | インテル コーポレイション | マルチコアプロセッサにおけるアイドル状態移行の調整 |
-
2009
- 2009-05-28 JP JP2009128667A patent/JP2010277300A/ja active Pending
-
2010
- 2010-04-21 WO PCT/JP2010/002884 patent/WO2010137233A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10161985A (ja) * | 1996-11-28 | 1998-06-19 | Hitachi Ltd | プロセッサ割付方法およびマルチプロセッサ計算機システム |
JPH11202988A (ja) * | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
JP2002099435A (ja) * | 2000-09-21 | 2002-04-05 | Toshiba Corp | マルチタスク制御方法および情報処理装置 |
JP2005267635A (ja) * | 2004-03-16 | 2005-09-29 | Sony Computer Entertainment Inc | マルチプロセッサシステムの電力損失を低減する方法、装置およびプロセッサ |
JP2008511912A (ja) * | 2004-09-03 | 2008-04-17 | インテル コーポレイション | マルチコアプロセッサにおけるアイドル状態移行の調整 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2013038566A1 (ja) * | 2011-09-16 | 2015-03-23 | 富士通株式会社 | コンピュータシステム |
CN107132903A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种节能管理实现方法、装置及网络设备 |
CN107132903B (zh) * | 2016-02-29 | 2020-11-13 | 中兴通讯股份有限公司 | 一种节能管理实现方法、装置及网络设备 |
CN108121433A (zh) * | 2017-12-06 | 2018-06-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu多处理器系统的任务调度方法 |
CN108121433B (zh) * | 2017-12-06 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种gpu多处理器系统的任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2010277300A (ja) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Geng et al. | Energy-efficient computation offloading for multicore-based mobile devices | |
US8032891B2 (en) | Energy-aware scheduling of application execution | |
US8296773B2 (en) | Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance | |
TWI233545B (en) | Mechanism for processor power state aware distribution of lowest priority interrupts | |
US7788670B2 (en) | Performance-based workload scheduling in multi-core architectures | |
KR101799253B1 (ko) | 다중 클러스터 이종 프로세서 아키텍처에서 동적 캐시 확장을 제공하기 위한 시스템 및 방법 | |
KR101522081B1 (ko) | 프로세서에서 스레드들을 실행하는 시스템 및 방법 | |
US20070204268A1 (en) | Methods and systems for scheduling processes in a multi-core processor environment | |
JP4697805B2 (ja) | データ処理装置 | |
WO2010137233A1 (ja) | マルチプロセッサシステムにおける省電力制御装置およびモバイル端末 | |
CN101310257A (zh) | 多处理器系统和用于使计算机执行多处理器系统的控制方法的程序 | |
JP2008090546A (ja) | マルチプロセッサシステム | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
Raghunathan et al. | Adaptive power-fidelity in energy-aware wireless embedded systems | |
Albers et al. | On multi-processor speed scaling with migration | |
US20160335127A1 (en) | System and method for dynamic granularity control of parallelized work in a portable computing device (pcd) | |
Tong et al. | Supporting soft real-time sporadic task systems on uniform heterogeneous multiprocessors with no utilization loss | |
Niu et al. | Reliability-aware scheduling for reducing system-wide energy consumption for weakly hard real-time systems | |
JP2009175850A (ja) | マルチ演算処理システム、マルチ演算処理方法、およびマルチ演算処理プログラム | |
JP2005092780A (ja) | リアルタイムプロセッサシステム及び制御方法 | |
Huang et al. | Leakage-aware reallocation for periodic real-time tasks on multicore processors | |
WO2014188642A1 (ja) | スケジュールシステム、スケジュール方法、及び、記録媒体 | |
JP2014078214A (ja) | スケジュールシステム、スケジュール方法、スケジュールプログラム、及び、オペレーティングシステム | |
Chen et al. | Adaptive dynamic power management for hard real-time pipelined multiprocessor systems | |
JP3830133B2 (ja) | 電力制御装置及び方法並びに電力制御プログラム |
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: 10780195 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10780195 Country of ref document: EP Kind code of ref document: A1 |