WO2005096634A1 - マルチタスク処理システム、及び、マルチタスク処理方法 - Google Patents

マルチタスク処理システム、及び、マルチタスク処理方法 Download PDF

Info

Publication number
WO2005096634A1
WO2005096634A1 PCT/JP2005/006192 JP2005006192W WO2005096634A1 WO 2005096634 A1 WO2005096634 A1 WO 2005096634A1 JP 2005006192 W JP2005006192 W JP 2005006192W WO 2005096634 A1 WO2005096634 A1 WO 2005096634A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
processing
operation amount
operating frequency
processor
Prior art date
Application number
PCT/JP2005/006192
Other languages
English (en)
French (fr)
Inventor
Kentaro Kawakami
Miwako Kanamori
Yasuhiro Morita
Hideo Ohira
Masahiko Yoshimoto
Original Assignee
Kanazawa University Technolgy Licensing Organization Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kanazawa University Technolgy Licensing Organization Ltd. filed Critical Kanazawa University Technolgy Licensing Organization Ltd.
Publication of WO2005096634A1 publication Critical patent/WO2005096634A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a multi-task processing system and a multi-task processing method for processing a plurality of tasks in a time-division manner, and is particularly suitable for a case where a task of a moving image encoding process and a Z or moving image decoding process is included.
  • the present invention relates to a multitask processing system and a multitask processing method.
  • Picture Experts Group and H.26X. These perform encoding or decoding of a plurality of temporally consecutive frames constituting a moving image, and reduce redundancy using temporal correlation and spatial correlation of the moving image. In this technique, the amount of information of a moving image is reduced and encoded, and the encoded moving image is decoded again into the original moving image.
  • Powerful encoding / decoding technology is applied to information terminal devices such as mobile phones having a built-in personal computer or microcomputer, and is based on a program that describes encoding / decoding means.
  • the system functions as a moving image encoding system when transmitting a moving image, and as a moving image decoding system when receiving a moving image.
  • the power consumption tends to increase due to the relatively large amount of computation in the moving image encoding or decoding processing, and software that is more versatile than hardware is used.
  • reducing power consumption in the encoding and decoding processes has become a major issue.
  • Non-Patent Document 1 A conventional means for reducing power consumption is disclosed in, for example, the following Non-Patent Document 1.
  • Non-Patent Document 1 Proceedings of IEEE International Symposium on Circuits and System 2001 (May, 2001) pp918—921 "AnLSI for Vdd—Hopping and MPEG4 System Based on the Chip, (H. Kawaguchi, G. Zhang, S .Lee, and T. Sakurai)
  • FIG. 13 is a diagram showing a conventional technique for reducing power consumption of a moving image (moving image) encoding processing system shown in Non-Patent Document 1.
  • the means for reducing power consumption is the same in a moving picture decoding processing system.
  • Non-Patent Document 1 discloses an operating power supply for reducing power consumption when processing moving image coding (especially MPEG) on a processor capable of dynamically changing an operating power supply voltage and an operating frequency. Show how to control voltage and operating frequency! That is, as disclosed in Non-Patent Document 1, as shown in FIG. 14, when performing moving image encoding, the operation of moving image encoding or decoding is performed in frame units depending on the intensity of motion in the moving image. The power consumption is controlled by controlling the operating frequency and operating power supply voltage of the processor, noting that the amount differs.
  • the processing time of one frame is restricted by the time Tf due to the regulations of the encoding system (such as MPEG), and the encoding process of one frame is completed within the processing time Tf. That power S is needed.
  • Tf seconds
  • Tslot TfZN
  • TRi Tf Tslot Xi.
  • the number of video blocks processed in one time slot Tslot (video coding is processed in block units) is R (ie, RXN is the number of blocks of one frame), and (RX i)
  • TaccG + l) be the time spent in block processing (that is, the time actually taken to process a group of blocks to be processed from time slot Tslotl to time slot Tslot).
  • Trd The time it takes for the operating power supply voltage and operating frequency to stabilize when the voltage is changed.
  • the actual time slot RTsloti indicates the processing time actually required for the processing to be completed in the time slot Tsloti. In FIG. 13, first, processing of the block group assigned to the time slot Tsloti and the time slot Tslot2 is performed.
  • Tacc 3 Tacc3 (Tf-TR2), that is, if the allocated block group completes processing in time slots Tslotl and Tslot2, it is assigned to the next time slot Tslot3.
  • the minimum operation frequency among the operation frequencies capable of processing a predetermined number of block groups within the control time is selected, so that the overall operation frequency is changed.
  • the processor at a constant operating frequency FfC, power consumption can be further reduced as compared with a case where the operating frequency Fl is changed many times within the processing time Tf.
  • Non-Patent Document 1 the operating power supply voltage and operating frequency are changed up to N times in one frame, even though the unit of synchronization of the processing time Tf is one frame. And low power consumption was not achieved enough.
  • the low power consumption of the moving picture coding or decoding processing in a processor capable of controlling the operating power supply voltage and operating frequency in multiple stages as in the conventional example is achieved by reducing the operating power supply many times during the processing of one frame.
  • the control since the unit of the constraint on the processing time is a frame, it is preferable that the control is performed at a minimum constant frequency that allows processing during the processing of one frame. For this reason, the power supply voltage and the operating frequency are changed up to N times during the processing of one frame. In this conventional example, the power consumption has not been sufficiently reduced.
  • Patent Document 1 The inventors of the present application have completed the invention of Patent Document 1 below.
  • the present invention is intended to reduce power consumption by performing encoding / decoding processing while operating the processor 1 at a constant operating power supply voltage / operating frequency.
  • Patent Document 1 Japanese Patent Application No. 2003—48535
  • One of the other factors that hinder the low power consumption of the processor is a subthreshold leakage current of a MOS transistor included in the processor.
  • the subthreshold leakage current is a small current that flows when the gate voltage of a MOS transistor formed on a semiconductor substrate is equal to or lower than a threshold voltage.
  • the power consumption due to the sub-threshold leakage current tends to be dominant as the size of the MOS transistor increases, and using a processor in which the MOS transistor is integrated on a semiconductor substrate, the power consumption of the moving image is reduced. Is one of the factors that hinder low power consumption in a moving picture coding or decoding system that performs decoding.
  • This sub-threshold leakage current is larger at a constant operating frequency Ff throughout the processing time Tf ⁇ than when the operating frequency Fl ⁇ of the processor is varied many times within the processing time Tf of one frame.
  • the operation reduces the power consumption, and the power consumption of the processor can be reduced.
  • the unit of processing time Tf is synchronized with one frame, the operating frequency is changed up to N times in one frame.
  • the viewpoint power of the sub-threshold leakage current was also favorable.
  • MOS transistors it is known that the subthreshold leakage current can be controlled by controlling the substrate bias voltage in the semiconductor region where the MOS transistor is formed.
  • the leakage current flowing in the processor includes a charge / discharge current, a sub-threshold leakage current t>, (jIDL (Gate-Induced Drain Leakage) ⁇ DIBL (Drain-Induced Barrier Lowering), and gate leakage. And other currents, and these currents tend to increase as the size of MOS transistors increases, which is a factor that hinders the reduction in power consumption of processors.
  • GIDL Gate-Induced Drain Leakage
  • DIBL drain-induced barrier lowering
  • the inventors of the present application have completed the invention of Patent Document 2 below.
  • the present invention calculates the amount of calculation necessary for encoding or decoding for each frame, and processes the computation at a constant substrate bias voltage-operating frequency or a constant substrate bias voltage 'operating power supply voltage' operating frequency.
  • the power consumption is reduced by performing the encoding and decoding processes while operating the computer.
  • Patent Document 2 Japanese Patent Application 2003--409641
  • an object of the present invention is to provide a multitask processing system and a multitask processing method capable of reducing power consumption, and particularly to reduce power consumption when a task of moving image encoding processing and decoding processing is included.
  • An object of the present invention is to propose a multitask processing system and a multitask processing method that can be implemented. Means for solving the problem
  • the inventors have confirmed that low power consumption can be achieved by controlling the processor at a constant operating frequency and operating power supply voltage, and have completed the present invention.
  • Figure 15 shows an example of the relationship between the substrate bias voltage Vbn and the threshold voltage Vtn of an n-channel MOS transistor, and an example of the relationship between the substrate bias voltage Vbp and the threshold voltage Vtp of a p-channel MOS transistor. To represent.
  • the threshold voltage Vtn decreases when the substrate bias voltage Vbn of the n-channel MOS transistor increases, and the threshold voltage Vtp increases when the substrate bias voltage Vbp of the p-channel MOS transistor increases, and the substrate bias voltages Vbn, Vbp
  • the threshold voltage Vtn, —Vtp can be controlled.
  • the operating frequency of the processor generally increases, and the operating frequency f of the processor 1 changes by controlling the threshold voltage.
  • Vtn, —Vtp is 0 [V]
  • (2) is when Vtn, — Vtp is 0.1 [V]
  • (3) is Vtn, — V
  • An example of the relationship between the threshold voltage Vtn, —Vtp and the subthreshold leakage current 1st when tp is 0.2 [V] is shown.
  • the threshold voltage Vtn, —Vtp increases, the subthreshold leak current 1st decreases, and the subthreshold leak current 1st can be controlled by controlling the threshold voltage Vtn, —Vtp. Therefore, the subthreshold leak current 1st can be controlled by the substrate bias voltages Vbn and Vbp.
  • the operating frequency f suitable for the calculation amount is calculated, and the substrate bias voltages Vbn and Vbp are controlled so that the operating frequency f can be realized and the subthreshold leakage current 1st can be suppressed.
  • the sub-threshold leak current 1st can be suppressed by performing the encoding or decoding of one frame while keeping the processor operating at a constant level. For example, when the operating frequency can be set low, the threshold voltage can be raised by lowering the substrate bias voltage, and the subthreshold leakage current can be suppressed. Therefore, the total current can be suppressed, and low power consumption can be realized.
  • the inventors control not only the substrate bias voltage but also the operating power supply voltage, so that the sub-threshold leakage current, the charging / discharging current, and other leakage currents are appropriately controlled.
  • the present invention has been completed in which the power consumption can be suppressed and the power consumption can be more effectively reduced.
  • Icd aXCXfXVDD
  • VDD Operating power supply voltage
  • Vgs gate-source voltage
  • Vt threshold! /, Value voltage (Vtn or-Vtp), S: sub-threshold swing
  • the threshold voltage is determined by using the substrate bias voltage.
  • Vt VtO + ⁇ ( ⁇ —VBB)
  • VtO, ⁇ , ⁇ constant
  • VBB substrate bias voltage (Vbn or-Vbp)
  • the operating frequency uses the operating power supply voltage and the threshold voltage
  • FIG. 16 is a diagram illustrating the relationship between the power consumption P and the operating power supply voltage VDD when the operating frequency f of the processor is fixed. For example, if the operating power supply voltage VDD of processor 1 is reduced, the charging / discharging current led will decrease. It is necessary to increase the substrate bias voltage Vbn and / or Vbp and decrease the value voltage Vt, and accordingly, the subthreshold leakage current 1st increases exponentially.
  • the power consumption P there is a minimum value for the power consumption P, and there is a combination of the operating power supply voltage VDD, the substrate bias voltage Vbn, and / or -Vbp that minimizes the power consumption.
  • a processor which is a semiconductor device in which MOS transistors are integrated, controls GIDL (Gate-Induced Drain Leakage) besides charge / discharge current and sub-threshold leakage current by controlling substrate bias voltage and operating power supply voltage.
  • GIDL Drain-induced barrier lowering
  • DIBL drain-induced barrier lowering
  • GIDL is a current flowing toward a drain substrate due to a tunneling phenomenon when a high electric field is generated in an overlapping portion between a gate region and a drain region of a MOS transistor.
  • DIBL is a current that flows when a drain voltage of a MOS transistor is high, a source barrier is lowered, and a source force is injected into a channel surface by carriers.
  • Gate leak is a current flowing from the gate to the channel due to the tunneling phenomenon in the gate oxide film of a MOS transistor.
  • DIBL is a function of operating supply voltage only; GIDL, gate leakage, and other currents are functions of operating supply voltage and substrate bias voltage. Taking these leakage currents into account, the power consumption P in the processor is
  • Pcd Charge / discharge power
  • Pst Power due to sub-threshold leak
  • PGIDL Power consumption by GIDL
  • PDIBL Power consumption by DIBL
  • Pgl Power consumption due to gate leakage
  • Pother Other power consumption
  • the power consumption P is a function of the operating power supply voltage and the substrate bias voltage.
  • the processor can be operated with an operating power supply voltage and a substrate bias voltage that minimize the total power consumption for a predetermined operating frequency, thereby further effectively reducing the power consumption. Strengthening can be achieved.
  • the multitask processing system and the multitask processing method of the present invention are applied to a multitask processing system and a multitask processing method that process a plurality of tasks in a time-division manner. Then, the total operation amount H required for the task processing to be completed within the control time T is calculated, and the operating frequency at which the total operation amount H can be processed within the remaining time T-t is determined. And performing task processing while operating the processor with an operating power supply voltage and Z or a substrate bias voltage suitable for the operating frequency.
  • the present invention it is possible to calculate the total operation amount H required for the task processing to be completed within the control time T, and process the operating frequency of the processor within the remaining time T1 t Since the operating frequency is set to a low value, task processing can be performed with an operating frequency low enough to process the total amount of computation H, and an operating power supply voltage and Z or a substrate bias voltage suitable for the operating frequency.
  • the period during which the processor is constantly operated at the operating frequency or the like may be, for example, until the timing of switching the task processing or until all the tasks are completed.
  • a total operation amount required for completing unprocessed task processing at a predetermined timing is calculated, and the total operation amount is defined as the total operation amount H.
  • the operation frequency is re-determined.
  • the total operation amount required for completing the unprocessed task processing is calculated as the total operation amount H, and the total operation amount H and the remaining Since the relationship between time T and t also determines the operating frequency again, the operating frequency is corrected at each timing, such as when task processing is switched, to increase the possibility that all task processing will be completed within the control time T. it can.
  • the multitask processing system and the multitask processing method according to the present invention provide the multitask processing system H is characterized by being the sum of the calculation amount of each task and the calculation amount required for switching task processing.
  • the operation amount of each task a predicted operation amount Hp to be described later may be used, or the maximum operation amount Hw may be used.
  • the total operation amount H is the sum of the operation amount of each task and the operation amount required for switching the task processing. Therefore, the operating frequency is determined in consideration of the operation amount of the switching process. Is done. Even if time is consumed for task switching, it is possible to increase the possibility that all task processing will be completed within the control time T.
  • the multitask processing system and the multitask processing method of the present invention include at least one failure avoiding means Z step for avoiding a failure phenomenon that occurs when the total operation amount H is smaller than the actually required total operation amount. It is characterized by having. If the calculated total operation amount H is smaller than the actually required operation amount, the task processing is not completed within the control time T and a failure phenomenon occurs.However, the present invention provides one or more methods for avoiding the failure phenomenon. The provision of the failure avoidance means Z step prevents the failure phenomenon from occurring.
  • the multitask processing system and the multitask processing method of the present invention are characterized in that the failure avoiding means includes a first failure avoiding means Z step for giving a margin to the total computation amount H.
  • the failure avoiding means Z step increases the total amount of calculation H by a predetermined value, the possibility that the calculated total amount of calculation H satisfies the actually required amount of calculation increases, and the failure phenomenon Can be increased.
  • the first failure avoiding means Z step calculates the value by adjusting the values of m and n in order to multiply the total operation amount H by m and add Z to the total operation amount H or n.
  • the calculated total calculation amount H can be set to a value larger than the actually required calculation amount and close to the actually required calculation amount, and the failure phenomenon can be efficiently avoided.
  • the multitask processing system and the multitask processing method of the present invention are characterized by comprising a second failure avoiding means Z step for interrupting at a predetermined timing and simplifying the task processing.
  • a part of the task processing is replaced with the alternative Since the amount of calculation is reduced by simplifying the task processing, for example, by changing the logic or by omitting a part of the task, the possibility that the failure phenomenon can be avoided can be increased.
  • an interrupt is performed at a predetermined timing, and when a task of a moving image encoding process exists among tasks processed within the control time T.
  • Blocks include macroblocks.
  • the invalid blocking processing can greatly reduce the amount of calculation as compared with the ordinary code processing. Therefore, by using the invalid blocking processing to reduce the amount of calculation in the moving picture coding processing, it is possible to allocate the shortened time to other task processing.
  • the task processing is completed by the invalid blocking processing, and a sufficient time is allocated to the other task processing, so that the possibility of avoiding the breakdown phenomenon can be increased.
  • the task process is interrupted at a timing that leaves a processing time for invalidating all blocks included in one frame constituting a moving image, and the invalid blocking process is performed.
  • the tasks processed within the control time T include a video encoding task and a Z or a video decoding task. It is characterized by being included.
  • the moving picture encoding processing and the moving picture decoding processing require a large amount of computation for the processing as compared with other processing, and thus the power consumption required for the processing tends to increase.
  • applications to mobile terminals such as mobile phones have been active, and demands for lower power consumption have been increasing.
  • a task of a moving image encoding process and a task of Z or a moving image decoding process are combined with other tasks, such as a multimedia processing device built in a mobile phone, for example, Even in a multitask processing system that is divided and processed, power consumption can be effectively reduced.
  • the multitask processing system and the multitask processing method of the present invention are characterized in that the task of the moving picture decoding processing is executed with a higher priority than the task of the moving picture coding processing. To do. Since the moving picture decoding processing cannot be switched to another processing such as the invalid blocking processing as in the moving picture coding processing to reduce the amount of calculation, a breakdown phenomenon is likely to occur. According to the present invention, the task of the video decoding process is executed with a higher priority than the task of the video encoding process. Therefore, the task of the video decoding process may be completed within the control time T. Will be higher. The failure phenomenon of the moving picture coding processing may be dealt with by the above-mentioned invalid blocking processing.
  • the total operation amount for task processing is calculated, and the operating frequency capable of processing the total operation amount,
  • the processor since the task processing is performed with the operating power supply voltage and Z or substrate bias voltage suitable for the operating frequency, the processor operates at a constant operating frequency and operating power supply voltage low enough to handle the total amount of computation H and consumes it.
  • the power is reduced, or the sub-threshold leakage current is suppressed by controlling the operating frequency and the substrate bias voltage, or the sub-threshold leakage current and the charging and discharging are controlled by controlling the operating frequency, the substrate bias voltage and the operating power supply voltage. Current and other leakage currents are moderately suppressed, and low power consumption is achieved even in multitask processing. This is particularly effective when a plurality of tasks to be multitasked include a moving image encoding process and a moving image decoding process.
  • the multitask processing system 100 is realized by a computer that is an information terminal device such as a mobile phone or a personal computer having a built-in microcomputer, and particularly functions as a part of a multimedia signal processing unit and the like in the computer. This is a system for moving image encoding and Z decoding.
  • the multi-task processing system 100 includes a task Al of encoding processing for sequentially encoding a moving image composed of a predetermined number of continuous frames in frame units, and a plurality of tasks A2, ,, An are multitasked in a time-sharing manner.
  • FIG. 1 is a schematic block diagram of a multitask processing system 100 of the present invention using dynamic control of a processor in a multitask environment.
  • the multitask processing system 100 includes the processor 1.
  • the processor 1 includes a task processing unit 11, a task schedule processing unit 12, and a task table memory 13, and the operating frequency, the operation power supply voltage, and the substrate bias voltage can be controlled stepwise by the dynamic processor control unit 2.
  • the task processing means 11 and the task schedule processing means 12 are realized by causing the processor 1 to function as each of the means 11 and 12 by a program.
  • Processor 1 is composed of a semiconductor element having a triple-well structure as shown in FIG. By making the processor 1 a triple-well structure, the substrate bias voltage Vbn can be applied to the n-channel MOS transistor, the substrate bias voltage Vbp can be applied to the P-channel MOS transistor, and the substrate bias voltage can be controlled. .
  • the task processing means 11 has a function of processing a plurality of tasks Al,,, An in a time-division manner, and processes the tasks Al,,, An corresponding to the tasks Al,,, An.
  • each task A1 processing means,... Task An processing means is required to complete its own processing within the designated control time T in response to a request from the task schedule processing means 12.
  • the processing routine that calculates the predicted value (predicted calculation amount) Hp and the maximum value (maximum calculation amount) Hw of the complex calculation amount and notifies the task schedule processing means 12, and the self-processing routine within the specified control time T It has a function to call and execute a processing routine that calculates a predicted value (predicted number of times of execution) Cp and a maximum value (maximum number of times of execution) Cw and notifies the task schedule processing means 12 of the execution.
  • the task table memory 13 is a storage area that holds a task table indicating the status of each task (see FIG. 5).
  • the task table contains the tasks Al,,, An, the task numbers A1,,, An, the predicted computation amount Hp, the maximum computation amount Hw, the predicted execution count Cp, the maximum execution count Cw, and the priority P Column is provided.
  • the task schedule processing means 12 has a function of scheduling the operation time of the task A1 processing means,,, and the task An processing means.
  • the task schedule processing means 12a, the control time transmission means 12b, and the control time The receiving means 12c, the operating frequency instruction receiving means 12d, the number-of-executions receiving means 12e, the calculation amount receiving means 12f, and the processor control signal transmitting means 12g Prepare.
  • the control remaining time transmitting means 12a has a function of transmitting a signal si to the task A1 processing means,,, and task An processing means to notify the remaining time that can be spent on the processing of each of the tasks Al,,, An. .
  • the control time transmitting means 12b has a function of notifying the task processing means 11 (each task A1 processing means,..., Task An processing means) of the control time T.
  • the control time receiving means 12c has a function of receiving the control time signal s3 of each task transmitted from the task A1 processing means, and the task An processing means.
  • the operating frequency instruction receiving means 12d has a function of receiving an operating frequency instruction signal s4 transmitted from the task A1 processing means,,, and the task An processing means to directly indicate the operating frequency of the processor 1.
  • the number-of-executions receiving means 12e calculates the predicted number of executions Cp and the maximum number of executions as the number of executions of each of the tasks Al,,, An in the control time T of the processor 1 transmitted from the task A1 processing means,, and the task An processing means. A function to receive the number of times Cw is provided.
  • the computational amount receiving unit 12f calculates the predicted value (predicted computational amount) Hp of the computational amount of each of the tasks Al,,, An within the control time T of the processor to be transmitted by the task A1 processing unit,, and the task An processing unit power.
  • a function to receive the value (maximum computation amount) Hw is provided.
  • the processor control signal transmitting means 12g has a function of generating a signal s7 indicating the operating frequency of the processor 1 and transmitting the signal s7 to the dynamic processor control means 2.
  • Each of the above means 12a, 12b, 12c, 12d, 12e, 12f, 12g is a function implemented in the task scheduling means 12, and is implemented as a system call or API (application programming interface) of the multitasking operating system. Ultimately be.
  • the dynamic processor control means 2 is a circuit that controls the operation of the processor 1.
  • An operating frequency table memory 21, operating frequency generating means 22, operating power supply voltage generating means 23, and substrate bias voltage generating means 24 are provided.
  • the operating frequency generating means 22 includes a PLL or the like, generates an operating frequency supply signal s8 to the processor 1, and controls the operating frequency of the processor 1.
  • the substrate bias voltage generating means 24 generates a substrate bias voltage supply signal slO for the processor 1 and controls the substrate bias voltage of the processor 1.
  • the operating power supply voltage generating means 23 has a function of generating an operating power supply voltage supply signal s9 to the processor 1 and controlling the operating power supply voltage of the processor 1.
  • the operating power supply voltage generating means 23 and the substrate bias voltage generating means 24 are preferably realized by a DC-DC converter or the like, but may be realized by using other means.
  • Operating frequency table memory 21 Holds the operating frequency F at which the processor 1 can operate and the values of the operating power supply voltage Vdd and the substrate bias voltages Vbn and Vbp suitable for the operating frequency F, as shown in FIG.
  • the combination of the operating frequency F, the substrate bias voltages Vbn and Vbp, and the operating power supply voltage Vdd is a combination that can realize the operating frequency F with the minimum power consumption.
  • the operating power supply voltage Vdd and the substrate bias voltages Vbn, Vbp that minimize the power consumption are obtained from experiments, calculations, etc., based on the relationship between the sub-threshold leakage current, charge / discharge current, and other leakage currents. It is desirable to use a combination of the power supply voltage Vdd and the substrate bias voltages Vbn and Vbp.
  • the dynamic processor control means 2 when receiving the operating frequency instruction signal s7 from the processor 1, the dynamic processor control means 2 refers to the operating frequency table memory 21 and controls the operating frequency generating means 22.
  • the operating frequency supply signal s8 is set to the specified operating frequency F, and the operating power supply voltage generating means 23 and the substrate bias voltage generating means 24 are controlled to specify the operating power supply voltage supply signal s9 and the substrate bias voltage supply signal slO.
  • the signals sl to s6 are described only between the task A1 processing means and the respective means 12a to 12f of the task schedule processing means 12, but are not actually provided. There is also a gap between the means and the task An processing means.
  • the multitask processing system 100 includes a task A1 which is a moving picture coding process and a task executed simultaneously with the task A1 processing means (task A2, task A3, ⁇ , task An (n is an integer of 2 or more)). Is registered in the task table of the task table memory 13.
  • Tasks A2,,, An executed simultaneously with task A1 include video decoding, audio encoding, audio decoding, baseband signal processing, media demultiplexing, 2D graphics, and 3D graphics Processing, EncriptionZDecription processing, camera video capture processing, facial feature point extraction processing, YUVRGB conversion processing, high-quality filtering processing, etc. available.
  • the number and types of tasks called at the same time vary depending on the use of the video coding function of the terminal.
  • a terminal when a terminal is used as a video recording device such as a video camera instead of a real-time communication device such as a videophone, the baseband signal processing required for real-time communication of encoded and decoded data is not called, If the audio is not encoded at the same time as the encoding of, the audio encoding process will not be called.
  • the task A1 processing means notifies the control time receiving means 12c of the time (frame rate) Frme of one frame of the moving picture coding in the task A1. For example, when the moving image encoding process is performed in 10 (frame Z seconds), the time Frme of one frame is 100 (milliseconds). If the moving picture decoding processing is called in step 1, the task Ai (i is an integer of 2 or more) processing means for performing the task processing of the moving picture decoding processing is performed by the task schedule processing means 12. , The time Frmd of one frame of video decoding is notified. The time Fr me and the time Frmd may or may not be equal.
  • the task schedule processing means 12 determines the control time T of the processor 1 when the control time receiving means 12c receives the time Frme or the time Frmd of one frame.
  • a method of determining the control time T either the time Frme or the time Frmd is used as the control time T, or an arbitrary time interval is used as the control time T. From the ease of control of the frame memory used for the moving picture coding processing and the moving picture decoding processing, the time Frmd at which it is desirable to adopt the time Frme or Frmd as the control time T is notified. In this case, it is desirable to adopt the time Frme as the control time T.
  • the task schedule processing means 12 notifies the control time T of the processor 1 determined in step 3 to the task processing means 11 (task A1 processing means, ..., task An processing means) by the control time transmitting means 12b.
  • the task processing unit 11 (the task A1 processing unit,, The task An processing means) predicts the amount of computation (predicted computation) Hp and the maximum value (maximum computation) Hw required for the completion of its task during the control time T.
  • the task schedule processing means 12 is notified of the predicted value (predicted execution number) Cp and the maximum value (maximum execution number) Cw of the number of transfers and the priority P of its own task.
  • the task schedule processing means 12 calculates, for each of the tasks Al,, and An, the predicted operation amount Hp and the maximum operation amount Hw received by the operation amount receiving means 12f, and the predicted execution number Cp received by the execution number receiving means 12e.
  • the maximum number of executions Cw and the priority P are stored in the task table of the task table memory 13.
  • the priority P is determined by the same method as in a normal multitask processing system.
  • the priority P of the tasks A2,,, An other than the video coding is It is desirable to set priority P higher than task A1. Even if the task A1 of the moving picture coding processing cannot be performed within the control time T, the failure phenomenon can be avoided by simplifying the processing by invalid blocking processing or the like. In particular, it is preferable that the task A1 of the moving image encoding process has a lower priority than the task of the moving image decoding process. In the moving picture decoding processing, a breakdown phenomenon is more likely to occur than in the moving picture coding processing in which a failure can be avoided by invalid block processing or the like.
  • Fig. 5 (a) shows an example of the saved contents of the task table after step 5 is executed.
  • n represents an integer of 2 or more.
  • the prediction calculation amount Hp and the prediction execution number Cp may be equal to the maximum calculation amount Hw and the maximum execution number Cw.
  • the predicted calculation amount Hp and the maximum calculation amount Hw, and the number of predicted executions Cp and the maximum number of executions Cw are necessarily equal.
  • the maximum calculation amount Hw and the maximum execution number Cw are notified as the prediction calculation amount Hp and the prediction execution number Cw.
  • the maximum operation amount Hw and the maximum number of executions Cw are obtained by experimentally calculating the operation amount Hw and the number of executions Cw when the task is executed under the condition that the operation amount and the number of executions are maximized. These values Hw and Cw are built in the task processing means 11, and are called and used as appropriate.
  • Predicted calculation amount Hp As the predicted number of executions Cp, the amount of calculation and the number of executions that were actually required to execute the task itself in the previous control time are used, or the average value of the amount of calculation and the number of executions determined experimentally in advance May be built in each task processing means, and its value may be called and used. In the case of a video encoding or decoding task, it is desirable to derive the prediction operation amount Hp using a method described later, but the method of deriving the prediction operation amount Hp is not limited to this. ,.
  • the task schedule processing means 12 determines the tasks Al,,, An that should be completed within the control time T based on the predicted operation amount Hp of each task A1,,, An stored in the task table and the predicted execution count. A calculation is performed to predict the total amount of computation H required for processing and the required operating frequency Fp of the processor.
  • the formulas 1 and 2 below are the possible formulas for calculating the total amount of computation H and the required operating frequency Fp, respectively.
  • Hp (i) is the predicted operation amount of the task processing of the task number i
  • Cp (i) is the predicted execution number of the task processing of the task number i
  • S is the operation amount required to switch the task in the execution state
  • t is the elapsed time from the start time of the control time T
  • i is an integer from 1 to n.
  • S the average value or the maximum value of the values obtained by experimentally measuring the amount of computation required when switching the task in the execution state is used.
  • the total operation amount H may be derived from the following expression 3 using the maximum operation amount Hw and the maximum number of executions Cw, instead of the number 1 using the predicted operation amount Hp and the number of executions Cp.
  • Equation 1 When using Equation 1, there is an advantage that the value of the total operation amount H can be prevented from becoming redundant and power consumption can be effectively reduced, and when Equation 3 is used, the total There is the advantage that the generation of the breakdown phenomenon can be suppressed by providing a margin for the calculation amount H. (Step 7) Determination of Operating Frequency F
  • the operating frequency of the processor 1 is stepwise variable from the operating frequencies F (1) to F (r).
  • the task schedule means 12 uses the required operating frequency Fp determined in step 6 and Equation 4 to determine an appropriate operating frequency F from the operating frequencies F (1) to F (r) at which the processor 1 can operate.
  • F may have a plurality of options. It is desirable to select a value closest to Fp above Fp as the operating frequency F, but any value above Fp may be selected.
  • the task schedule processing means 12 shifts the processor control program for setting the processor 1 to the operating frequency F to the execution state. That is, the processor control signal transmitting means 12g instructs the operating frequency F to the dynamic processor control means 2 (s7).
  • the dynamic processor control means 2 Upon receiving the operating frequency F from the task schedule processing means 12, the dynamic processor control means 2 refers to the operating frequency table in the operating frequency table memory 21 and refers to the operating frequency generating means 22, the operating power supply voltage generating means 23 and the board.
  • the bias voltage generating means 24 generates the specified operating frequency F, the operating power supply voltage Vdd and the substrate bias voltages Vbn and Vbp suitable for the operating frequency F (s8, s9, slO), and sets the processor 1 to the specified command. And the operating power supply voltage Vdd and the substrate bias voltages Vbn and Vbp.
  • the task schedule processing means 12 shifts the task having the highest priority P among the tasks Al,, and An registered in the task table memory 13 to the execution state.
  • the task shifted to the execution state is executed on the processor 1 by the corresponding task processing means 11.
  • the task in the execution state can transmit the operating frequency instruction signal s4 to the operating frequency instruction receiving means 12d to directly indicate the operating frequency F of the processor 1.
  • the task schedule processing means 12 which has received the operating frequency instruction signal s4 interrupts the task processing (Al,,, An) being executed, and executes the processor control program to change the operating frequency of the processor 1 to the specified value. Move to the execution state. After the operating frequency of the processor is changed, the task schedule processing unit 12 shifts the suspended task processing (Al,,, An) to the execution state again.
  • the task in the execution state includes a processing routine for operating frequency correction in consideration of occurrence of an error between the calculated total operation amount H and the actual operation amount.
  • This processing routine may be called only once during the execution of the task, or may be called multiple times at an arbitrary time interval (for example, at regular time intervals). By executing the following processing routine, the operating frequency is appropriately modified so that the processing of all tasks Al to An is completed within the control time T.
  • the task processing unit in the execution state receives the remaining time Tt of the control time T in which the task schedule processing unit power is also notified using the control remaining time transmission unit 12a.
  • the operating frequency Fr is calculated from the total value Ha of the remaining operation time T—t and the predicted operation amount Hp of the task waiting to be registered registered in the task table by the following equation (5).
  • the processing of the corresponding task is completed by r% of the processing amount that must be completed in the control time T.
  • each of Hp ′, Hw ′, Cp ′, and Cw ′ is calculated using, for example, Equation 6, Equation 7, Equation 8, and Equation 9. (Equation 6)
  • Hp, Hp X (100—r)
  • Hw ' Hw X (100—r)
  • FIG. 10 (a) shows the saved contents of the task table before execution of step 10, and if the number of the task executed in step 9 was A2, an example of the saved contents of the task table after completion of step 10 Are shown in Figs. 5 (b) and 5 (c).
  • FIG. 5B shows an example in which the maximum number of executions Cw ′ calculated in step 10 is 1 or more.
  • the task A2 processing means 11 recalculates the unprocessed predicted operation amount Hp ', the maximum operation amount Hw', the predicted execution number Cp ', the maximum execution number Cw', and the priority P 'at the end of step 10, and Are replaced with the calculated Hp ', Hw', Cp ', Cw', P '.
  • FIG. 5C shows an example in which the maximum number of executions Cw 'is zero. If the maximum number of executions Cw 'is 0, it is considered that the processing of task A2 has been completed, and task A2 is deleted from the task table.
  • the processor 1 shifts to the idle state or the standby state and waits until the start time of the next control time T. If there is a task waiting to be executed in the task table, go to branch 2.
  • step 11 If the task table has a task of moving image encoding processing (task A1 in the present embodiment), the process proceeds to step 11. If there is no moving image encoding task in the task table, the process proceeds to step 14.
  • Step 11 Total calculation amount ⁇ ⁇ Determine required operating frequency Fp Perform the same processing as step 6. Since the task table memory 13 has been rewritten to the unprocessed predicted operation amount H P ', the maximum operation amount Hw', the predicted execution number Cp ', the maximum execution number Cw', and the priority P ', The required total operation amount H is the total operation amount required for processing the unprocessed task at that time. Here, it is preferable that the total operation amount H is derived by Expression 1. This is because, in the case where the moving image encoding process is included, the breakdown phenomenon can be avoided by the invalid blocking process or the like even if the total operation amount H cannot be given a margin according to Equation 3. Even if the task of the video encoding process is a task table, if there is a task that can avoid the failure phenomenon, the process proceeds to step 11.
  • step 9 the highest priority task at that time is processed.
  • the process of step 14 is performed.
  • the task schedule processing means 12 calculates the total operation amount H and the required operating frequency Fp using Equations 1 and 2 or Equations 3 and 2.
  • the total amount of calculation H may be calculated by Equation 1, but is preferably calculated by Equation 3. If the task A1 of the moving picture coding process is not included, it is not possible to avoid the breakdown phenomenon due to the invalid blocking process or the like. Therefore, it is desirable that the total computation amount H be given a margin by using Equation 3 to suppress the occurrence of the failure phenomenon. However, when the avoidance of the bankruptcy phenomenon is not taken into account, the calculation may be performed using Equation 1.
  • step 9 the highest priority task at that time is shifted to the execution state.
  • the control of the processor 1 executed when the task being executed in Steps 8, 13, 16 or 10 directly instructs the operating frequency will be described in detail.
  • the control of the processor 1 is executed based on a processor control program.
  • a processor control program an example of the operation of the multitask processing system 100 in controlling the processor 1 based on the processor control program will be described.
  • the operating frequency instruction is given to dynamic processor control means 2. Outputs signal s7.
  • the dynamic processor control means 2 Upon receiving the operating frequency instruction signal s7, the dynamic processor control means 2 controls the operating frequency generating means 22 and outputs the operating frequency F to the processor 1 (s8).
  • the dynamic processor control means 2 controls the substrate bias voltage generation means 24 and supplies the processor 1 with the substrate bias voltages Vbn and Vbp corresponding to the operating frequency F stored in the operating frequency table memory 21. (SlO).
  • the dynamic processor control means 2 controls the operating power supply voltage generating means 23 to supply the operating power supply voltage Vdd corresponding to the operating frequency F stored in the operating frequency table memory 21 to the processor 1 (s9 ).
  • the order of steps 1, 4, 3, and 2 is used to increase the operating frequency, and the order of steps 1, 2, 4, and 3 is set to decrease the operating frequency. It is desirable to perform the operations in steps 2, 3, and 4 at the same time, or may be performed in an arbitrary order and in chronological order.
  • the operating frequency and the substrate bias voltage may be controlled simultaneously, the operating frequency may be controlled to control the substrate bias voltage, or the substrate noise voltage may be controlled to control the operating frequency. May be.
  • Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) may be appropriately omitted.
  • Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) are executed.
  • Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) are executed.
  • Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) are executed.
  • Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) By omitting Step 11 (Step 14), Step 12 (Step 15), and Step 13 (Step 16) appropriately, the time that can be spent processing tasks in Step 10 can be increased. It is possible to reduce the probability of failure.
  • FIG. 6 is a diagram showing a timing chart when the multitask processing system 100 is operated according to the flowchart of FIG.
  • steps 1, 2, and 3 are performed in the initialization period 11.
  • steps 4 and 5 are performed in the initialization period 1-2.
  • Steps 6, 7, and 8 are executed in the control period 11.
  • Steps 9, 10, Branch 1 and Branch 2 are executed during the operation period 1—i (i is an integer from 1 to n).
  • Steps 11, 12, and 13 or steps 14, 15, and 16 are executed in the control period l—i (i is an integer of 2 or more and n or less).
  • the same processing as that of the first control time T is performed according to the flowchart of FIG. Thereafter, the same processing is performed at the i-th control time (i is an integer of 3 or more).
  • the multitask processing system 100 of the present invention includes failure avoidance means.
  • failure avoidance means if the total value of the amount of computation required for actual processing is larger than the total amount of computation H of each task registered in the task table, one or more of the tasks registered in the task table A phenomenon in which a task cannot complete processing within the control time T is called a failure phenomenon. If the predicted operation amount Hp or the predicted number of executions Cp of each task for which processing is executed in the multitask processing system 100 of the present invention is not accurate, a failure phenomenon may occur. It is desirable to provide a failure avoiding means in the multitask processing system 100 of the present invention in order to avoid the occurrence of the failure phenomenon.
  • the means for avoiding bankruptcy for example, the following means for avoiding bankruptcy 1, 2, 3 can be considered. Note that each of the following bankruptcy avoidance means executes the corresponding bankruptcy avoidance step. [0077] (Failure Avoidance Measures 1)
  • the failure avoiding means 1 is provided inside the task schedule processing means 12, and in steps 6 and 11, when calculating the total amount of computation H, which must be realized with the current control time of the processor, The following Equation 10 is used instead of Equation 1.
  • Equation 10 m represents a real number of 1 or more, and n represents a real number of 0 or more.
  • the failure avoidance means 2 has a function of simplifying task processing. Specifically, the task processing is interrupted at predetermined intervals, and the amount of computation that can be processed in the remaining time (Tt) of the control time T and the amount of computation that must be executed in the remaining time (Tt) are Compare big and small. If the remaining amount of computation is larger than the amount of computation that can be processed, task processing is simplified. As a method of simplification, the normal task processing may be switched to an alternative processing with a small amount of calculation, or a part of the normal task processing may be omitted. As a result, the amount of calculation can be reduced as compared with the normal task processing, and the failure phenomenon can be avoided.
  • Tasks that can be simplified include a moving image encoding process, a 3D graphics process, and a high-quality filtering process.
  • the amount of computation can be reduced by processing unprocessed macroblocks or blocks as strong IJ-like invalid macroblocks or invalid blocks, and in the case of 3D graphics processing,
  • the amount of calculation can be reduced by performing the process of omitting the rendering of the background polygon object, and in the case of the high-quality filtering processing, the amount of calculation can be reduced by performing the process of omitting the unprocessed filtering operation.
  • This failure avoiding means 3 is a moving picture coding method. At the time of processing, it has a function of invalidating macroblocks and blocks. According to video coding standards (MPEG2, MPEG4, H.264, etc.), one frame is composed of a plurality of macroblocks or blocks. Moving picture coding is performed on a macroblock or block basis.
  • the failure avoidance unit 3 significantly reduces the amount of computation required for encoding by forcibly performing invalid macroblocks and invalid blocks instead of the normal encoding of each macroblock or block. .
  • the failure avoiding means 3 uses this property of the moving picture coding process to reduce the amount of calculation of the moving picture coding process, and reduces the processing time of the moving picture coding process which is reduced as a result.
  • Each task process is completed within the control time T by assigning it to the task process.
  • the video coding processing program forcibly processes unprocessed macroblocks as invalid macroblocks.
  • Tr (MBiX Hs + ( ⁇ Hw (i)) + S X ( ⁇ Cw (i))) / Fpl
  • T is the control time of the processor
  • MBi is the number of unprocessed macroblocks when the video coding processing program enters the execution state
  • Hs is one macroblock that is forcibly treated as an invalid macroblock.
  • Hw is the value of the maximum operation amount of task number i in the task table
  • Cw is the value of the maximum number of executions of task number i in the task table
  • S is necessary to switch the task in the execution state.
  • Fpl is the operating frequency of the processor
  • ⁇ Hw (i) is Hw (2) + Hw (3) H hHw (n)
  • ⁇ Cw (i) is ⁇ Cw (l) +
  • any one of the frames to be encoded is the current frame (that is, the frame to be encoded next with reference to the time when a certain frame is encoded).
  • the mark is still A frame that has not been subjected to the encoding process and will be subjected to the encoding process in the future), and one frame encoded before the current frame (a frame encoded in the past) is the previous frame.
  • Ability to explain processing of current frame Similar processing is performed for any frame.
  • Task 1 processing means accesses the input frame memory to obtain input image data of the current frame, and calculates a prediction operation amount Hp required for encoding processing of the current frame.
  • the distortion value calculated by the sum of absolute differences as the amount of motion between the current frame and the previous frame the value calculated by the sum of absolute differences between adjacent pixels as the activity amount of each frame, the macro The number of block matchings, the number of effective blocks, the number of effective coefficients, the encoding bit rate, the number of generated bits, the amount of computation actually required for encoding the previous frame, and the calculated prediction of the previous frame Hp.
  • the value of one element is large!
  • the prediction calculation amount Hp is set to be relatively large as compared with the case, and when the value of one element is small, the prediction calculation amount Hp is set to be relatively small as compared with the case where the value is large.
  • the prediction calculation amount Hp is relatively small compared to the inter-frame encoding, and when the current frame is an inter-frame encoding, the intra-frame encoding is performed.
  • the prediction calculation amount Hp is set to be relatively large as compared with a certain case. That is, since these multiple elements are elements that affect the amount of prediction operation Hp required for the encoding process of the current frame, the task A1 processing means determines the amount of prediction operation Hp according to these elements. By performing calculation so as to increase or decrease (cycle), the predicted operation amount Hp becomes closer to the operation amount when the encoding process is actually performed.
  • the input image data of the current frame calculated by using the function G and stored in the input frame memory and the decoded image stored in the local decoded frame memory are stored. Compare the magnitude of the motion of the input image with the locally decoded data of the frame. Prediction (calculation).
  • the local decoded data of the previous frame is obtained by encoding the previous frame, which is formed by encoding the previous frame, in the encoding process of the previous frame in which encoding is performed before the current frame.
  • prediction (calculation) of the magnitude of the motion for example, a sum of absolute differences is used.
  • the following describes how to calculate the sum of absolute differences Z and the amount of prediction operation Hp.
  • image data of the previous frame local decoded data decoded by the local decoder after encoding may be used, or the input image data of the input previous frame may be used as it is. ,.
  • the input image data of the current frame stored in the input frame memory is stored in X (i, j) (where i is the horizontal coordinate of the image and j is the vertical coordinate) and stored in a local decoding frame memory described later.
  • the motion amount between the current frame and the previous frame is the sum of the absolute differences.
  • z ⁇ I x (i, j) -YG, j) Compute I for all (or sampled) pixels. Let Z be the value of this sum of absolute differences.
  • Z is the sum of absolute differences
  • Wa is the activity amount of the current frame
  • Wb is the activity amount of the previous frame (past frame)
  • W is the average quantization step size of the previous frame (the average value of the quantization step size).
  • Qprev M is the number of macroblock matching in the previous frame
  • B is the number of effective blocks in the previous frame
  • C is the number of effective coefficients in the previous frame
  • S is the amount of processing actually required to encode the previous frame
  • the current frame is the sum of absolute differences
  • Wa is the activity amount of the current frame
  • Wb is the activity amount of the previous frame (past frame)
  • W is the average quantization step size of the previous frame (the average value of the quantization step size).
  • Qprev M is the number of macroblock matching in the previous frame
  • B is the number of effective blocks in the previous frame
  • C is the number of effective coefficients in the previous frame
  • S is the amount of processing actually required to encode the previous frame
  • the current frame is the amount of processing actually required
  • the bit rate of the coding frame is BR
  • the difference between the average value of the quantization step size of the previous frame and the average value of the quantization step size of the immediately preceding frame is A Qprev
  • the actual number of bits generated in the previous frame is D
  • the required computation amount of the calculated previous frame is assumed to be Hp ′
  • the predicted computation amount Hp is calculated using one or more of these elements.
  • Hp G (Z, Wa, Wb, Qprev, M, B, C, S, BR, ⁇ Qprev, D, Hp ') Is calculated by
  • G is a function derived from one or more elements among Z, Wa, Wb, Qprev, M, B, C, S, BR, ⁇ Qprev, D, and HP ′.
  • G is a function derived from one or more elements among Z, Wa, Wb, Qprev, M, B, C, S, BR, ⁇ Qprev, D, and HP ′.
  • Hp j + a M + j8 B + y C + ⁇ Z + ⁇ AQprev
  • the present invention is not limited to this.
  • a type I of whether the current frame is an intra-frame encoding or an inter-frame encoding is used as an element used in the calculation of the prediction operation amount Hp.
  • the effective block of the effective block generated in the encoding processing of the current frame is The number and the number of effective coefficients increase (decrease), and the amount of computation required for IDCT processing of the current frame (depending on the number of effective blocks that occur) and the amount of computation required for IQ processing (the number of effective coefficients that occur ), The amount of computation required for VLC processing (depending on the number of effective coefficients to be generated) is large (small). Therefore, the function G is configured to set Hp large (small) when parameters such as Z and Wa are large (small).
  • the function G is configured to set Hp large (small) when parameters such as M, B, C, S, Wb, and Hp 'are large (small).
  • the function G is such that when the coding bit rate BR of the current frame is large (small), the actual number of generated bits D of the previous frame is large compared to BR so that Hp is set large (small).
  • Hp (If it is small, set Hp to be small and large). Furthermore, by taking into account the average quantization step size Qprev of the previous frame and the difference ⁇ Qp rev between the average value of the quantization step size of the previous frame and the average value of the quantization step size of the immediately preceding frame, The value of Hp calculated by the function G can be set to a value close to the amount of calculation required to actually encode the current frame.
  • the predicted operation amount Hp of the previous frame is stored in advance in an element memory, which is a storage area for storing elements, and is read and used by the task A1 processing means when calculating the predicted operation amount Hp.
  • Average value of the quantization step size of the previous frame is fed back when the coding process of the previous frame is performed.
  • H p When calculating the prediction operation amount H p, only one of these elements may be used, or a plurality of elements may be used in combination.
  • the task processing means calculates the amount of information (the number of bits) FB generated for one frame of the encoded data (that is, the encoded data 301 of the current frame), and calculates the predicted operation amount Hp.
  • the prediction operation amount Hp is
  • Hp G (FB, MVa, MVv, B, C, BR, Q, A Q, I, E, P)
  • FB is the number of bits of the encoded data of the current frame or the previous frame
  • MVa is the average value of the motion vector size of the current frame or the previous frame
  • MVv is the size of the motion vector size of the current frame or the previous frame.
  • B is the number of effective blocks in the current or previous frame
  • C is the number of effective coefficients in the current or previous frame
  • BR is the bit rate of the current or previous frame
  • Q is the quantization of the current or previous frame
  • ⁇ Q is the difference between the average values of the quantization step sizes of the current frame and the previous frame or the average value of the quantization step sizes of the previous frame and the frame immediately before the previous frame
  • I is the current frame power picture A certain power A power that is a P picture Type of whether it is a B picture
  • E is the operation amount actually required to decode the previous frame
  • P is the required operation amount It represents the required amount of calculation for the previous frame calculated by the calculation means.
  • the amount of computation required to decode the current frame depends on the number of times the IDCT, IQ, and VLD processes are executed in decoding the current frame.
  • the number of executions of the IDCT processing depends on the number of effective blocks included in the current frame
  • the number of executions of the IQ processing and the VLD processing depends on the number of effective coefficients included in the current frame. That is, when the number of valid blocks and the number of valid coefficients included in the current frame are large (small), the amount of calculation necessary for the decoding process is large (small). Therefore, the function G is configured to set Hp large (small) when B and C are large (small).
  • the function G is configured to set Hp large (small) when MVa or MV V is large (small).
  • the function G is configured to set Hp small when the current frame is an I picture.
  • the function G is configured to set Hp large (small) when FB or BR is large (small).
  • the value of the quantization step size is changed when controlling the bit rate, for example, when Q or ⁇ Q is large (small)
  • the Hp is set small (large).
  • MVa, MVv, B, C, BR, FB, and Q have close values between the current frame and the previous frame. Therefore, when these parameters are used in the above function G, the values in the current frame or the values in the previous frame may be used.
  • the prediction operation amount Hp can be set to a value closer to the operation amount necessary for the actual decoding process by using the value of the current frame.
  • the prediction operation amount Hp can be calculated before receiving the input code data of the current frame.
  • the decryption processing can be performed simultaneously for the minutes.
  • the amount of computation required for decoding the current frame is close to the amount of computation E actually required for decoding the previous frame. Value.
  • P ⁇ E is obtained. Therefore, the required computation amount of the current frame is set to a value obtained by increasing or decreasing E or P according to the magnitude of parameters such as FB, MVa, MVv, B, C, BR, Q, and ⁇ Q.
  • the task processing unit determines the amount of prediction operation Hp (cycle ) Is calculated so as to increase or decrease, the predicted operation amount Hp calculated by the task processing means becomes a value closer to the operation amount when the decoding process is actually performed.
  • the operating frequency F and the case where the operating power supply voltage Vdd and the substrate bias voltages Vbn and Vbp suitable for the operating frequency F are controlled have been described. Only the operating power supply voltage Vdd may be controlled, or only the operating frequency F and the substrate bias voltages Vbn and Vbp may be controlled.
  • the substrate bias voltage to be controlled may be only the pMOS substrate bias voltage Vbp! / Or may be only the nMOS substrate bias voltage Vbn.
  • the dynamic processor control means 2 stores a table of a combination of the operating frequency and the operating power supply voltage in the operating frequency table memory 21 and operates with the operating frequency generating means 22.
  • the power supply voltage generating means 23 may be provided to control only the operating frequency and the operating power supply voltage, or a table of combinations of the operating frequency and the substrate bias voltage may be held as shown in FIG.
  • the operating frequency generating means 22 and the substrate bias voltage generating means 24 may be provided to control only the operating frequency and the substrate bias voltage.
  • the substrate bias voltage generating means 24 is unnecessary in FIG.
  • the processor does not have to be configured by the MOS having the triple-level structure.
  • the operating power supply voltage generating means 23 is unnecessary.
  • Step 1 Task Al, which is a task of the video encoding process, and another task A2 are registered in the task table, and the saved contents of the task table are as shown in FIG. 8 (a).
  • Step 5 Upon receiving the notification of the control time T of the processor 1, the task A1 processing means and the task A2 processing means respectively perform the prediction operation amount Hp, the maximum operation amount Hw, the prediction execution number Cp, the maximum execution number Cw, and the priority.
  • the task schedule processing means 12 is notified of the degree P.
  • the task schedule processing unit 12 stores the predicted operation amount Hp, the maximum operation amount Hw, the predicted execution number Cp, the maximum execution number Cw, and the priority P received by the operation amount receiving unit 12f and the execution number receiving unit 12e in a task table. To save.
  • the contents stored in the task table are as shown in Fig. 8 (b).
  • the task schedule processing means 12 calculates the total operation amount H and the required operating frequency Fp by using Equations 1 and 2.
  • the total operation amount H and the required operating frequency Fp are as follows.
  • Step 7) In the processor 1, the operating frequency F is variable in three stages F (l), F (2), and F (3) (see FIG. 9).
  • the task schedule processing means 12 executes the processing of the processor 1 based on Equation 4. Determine the operating frequency F as F (3).
  • FIG. 9 is an operating frequency table.
  • the operating frequency table holds a combination of the operating frequency F and the appropriate substrate bias voltage Vbn, Vbp, and is a combination that minimizes power consumption.
  • the task schedule processing means 12 shifts the processor control program to an execution state.
  • the dynamic processor control means 2 refers to the operating frequency table based on the processor control program, and sets the operating frequency of the processor 1 to F (3) and the nMOS substrate bias voltage to the operating frequency F (3). Control the pMOS substrate bias voltage to Vbn (3) to Vbp (3) corresponding to the operating frequency F (3).
  • the task schedule processing means 12 shifts the task A2 processing means having the higher priority P to the execution state.
  • the task A2 processing means executes the processing of task A2.
  • the task A2 processing means calculates the unprocessed predicted operation amount Hp ', the maximum operation amount Hw', the predicted execution number Cp ', the maximum execution number Cw', and the priority P '. Since the maximum number of unprocessed executions Cw 'is 1 or more, the task A2 processing means rewrites the task table to the unprocessed values Hp, Hw', Cp, Cw, P, and P.
  • Figure 8 (c) shows the task table after rewriting.
  • the task schedule processing means 12 calculates the total operation amount H and the required operating frequency Fp by using Expressions 1 and 2.
  • the total operation amount H and the required operating frequency Fp are as follows.
  • the task schedule processing means 12 calculates the three-stage operating frequency using Equation 4. From the number (see Fig. 9), determine the operating frequency of processor 1 as F (2). (Step 13) The task schedule processing means 12 shifts the processor control program to the execution state. Based on the processor control program, the dynamic processor control means 2 sets the operating frequency of the processor 1 to F (2), sets the nMOS substrate bias voltage to Vbn (2) corresponding to F (2), and sets the pMOS substrate bias Control the voltage to Vbp (2) corresponding to F (2).
  • Step 9) The task schedule processing means 12 shifts the task A1 processing means having a high priority P in FIG. 8C to the execution state.
  • Step 10) The task A1 processing means executes the processing of task A1.
  • the task A1 processing means calculates the unprocessed predicted operation amount Hp 'and the like, and rewrites each column of the task A1 in the task table as shown in FIG. 8 (d).
  • (Branch 1) Task table As shown in Figure 8 (d), there are tasks A1 and A2 waiting to be executed, so the process proceeds to branch 2.
  • the task schedule processing means 12 calculates the total operation amount H and the necessary operation amount Fp by using Expressions 1 and 2.
  • the total operation amount H and the required operating frequency Fp are as follows.
  • the task schedule processing means 12 determines the operating frequency of the processor 1 as F (2) from the three-stage operating frequency (see FIG. 9) by using Equation 4.
  • the task schedule processing means 12 shifts the processor control program to the execution state. Based on the processor control program, the dynamic processor control means 2 sets the operating frequency of processor 1 to F (2), the nMOS substrate bias voltage to Vbn (2) corresponding to F (2), and the pMO Control the S substrate bias voltage to Vbp (2) corresponding to F (2).
  • Step 9) The task schedule processing means 12 shifts the task A2 processing means having the higher priority P in FIG. 5D to the execution state.
  • Step 10) The task A2 processing means executes the task A2.
  • Branch 1 As shown in FIG. 8 (e), since there is a task A1 waiting to be executed in the task table, the process proceeds to branch 2.
  • (Branch 2) Since there is a task A1 which is a moving picture coding process in the task table, the process proceeds to step 11.
  • the task schedule processing means 12 calculates the total calculation amount H and the required frequency Fp by using Equations 1 and 2.
  • the total operation amount H and the required operating frequency Fp are as follows.
  • the operating frequency of the processor 1 is determined as F (2) from the three stages of operating frequencies F (1) to F (3) prepared in the processor 1.
  • the task schedule processing means 12 shifts the processor control program to the execution state. Based on the processor control program, the dynamic processor control means 2 sets the operating frequency of the processor 1 to F (2), sets the nMOS substrate bias voltage to Vbn (2) corresponding to F (2), and sets the pMOS-based Control the plate bias voltage to Vbp (2) corresponding to F (2).
  • the task schedule processing means 12 shifts the last remaining task A1 to the execution state.
  • the task A1 processing means executes the processing of task A1.
  • the control time T is set to 0.1 (seconds), and in the flowchart of FIG. 4, steps 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, branch 1, branch 2, step 11, 12, 13, 9, 10, branch 1, branch 2, step 11, 12, 13, 9, 10, ..., branch 1, branch 2, step 11, 12, 13, 9, 1
  • (Branch 1) As shown in FIG. 10 (a), the process proceeds to branch 2 because there are tasks A1 and A2 waiting to be executed in the task table.
  • (Branch 2) Proceed to step 11 because task A1 of the moving picture coding process exists.
  • the task schedule processing means 12 calculates the total operation amount H and the required operating frequency Fp by using Equations 1 and 2.
  • the total operation amount H and the required operating frequency Fp are as follows.
  • Step 12 The task schedule processing means 12 determines the operating frequency of the processor 1 to be F (3) from the three-stage operating frequency (see FIG. 9) using Equation 4.
  • the task schedule processing means 12 shifts the processor control program to an execution state.
  • the dynamic processor control means 2 sets the operating frequency of processor 1 to F (3), the nMOS substrate bias voltage to Vbn (3) corresponding to F (3), and the pMOS substrate bias voltage based on the processor control program. Control to Vbp (3) corresponding to F (3). [0114] (Step 9)
  • the task schedule processing means 12 shifts the task Al processing means having the higher priority P to the execution state.
  • the task A1 processing means that has shifted to the execution state uses the formulas (11) and (12) to invalidate the contents of the video encoding process by forcing unprocessed macroblocks into invalid macroblocks. Calculate the time Ti for switching to the blocking process.
  • the time Ti is calculated as follows using Expressions 12 and 11.
  • Tr (30 X 2000 + 2000000 + 1000 X 1) / 200000000
  • the task schedule processing means 12 calculates the total operation amount H and the required operating frequency Fp using Equations 3 and 2, which calculate the total operation amount using the maximum operation amount Hw and the maximum number of executions Cw.
  • the total operation amount H and the required operating frequency Fp are calculated as follows.
  • Step 15 The task schedule processing means 12 determines the operating frequency F as F (3) among the three stages of operating frequencies prepared in the processor 1 (see FIG. 9) by using Expression 4.
  • Step 16 The task schedule processing means 12 shifts the processor control program to the execution state. Based on the processor control program 1, the dynamic processor control means 2 sets the operating frequency of the processor 1 to F (3), sets the nMOS substrate bias voltage to Vbn (3) corresponding to F (3), and sets the pMOS substrate bias Control the voltage to Vbp (3) corresponding to F (3).
  • Step 9 The task schedule processing means 12 shifts the task A2 to the execution state by the task A2 processing means.
  • Step 10 The task A2 processing means executes the task A2. At this time, the amount of computation realized at the operating frequency Fp2 before the end time of the control time T is larger than the maximum amount of computation required for completing the processing of the task A2. The process ends before the time arrives. Modify the task table as shown in Fig. 10 (c) and end the process.
  • the present invention can further reduce the power consumption due to the subthreshold leakage current as compared with the related art in which one frame is encoded while changing the operating frequency of the processor a plurality of times.
  • the substrate bias voltage and the operating frequency of the processor 1 are made variable in P stages, the required calculation amount of any one frame is Kt, and the time allocated to the processing of that frame is Tt.
  • the operating frequency is set to Ft
  • the substrate bias voltage when operating the processor 1 at the operating frequency Ft is set to Vb
  • the value voltage is set to Vt as appropriate for the substrate bias voltage Vb.
  • Case 1 The case where the processing of the required amount of computation Kt ends at time Tt is referred to as Case 1, and as shown in FIG. Ft and set the substrate bias voltage when operating the processor at the operating frequency h * Ft.
  • the threshold voltage suitable for the substrate bias voltage Vbl is Vtl
  • the operating frequency of the processor is changed to h * FtZ2, and the processor 1 is operated at the operating frequency h * Ft / 2.
  • the substrate bias voltage at this time is Vb2
  • the threshold voltage is Vt2
  • the value voltage is Vt2.
  • VDD operating power supply voltage
  • Vgs gate-source voltage
  • Vt threshold! / ⁇ value voltage
  • S sub-threshold swing
  • Pstl 10 " 2 : (10 _ 3 + 10" 1 X 2/3)
  • the present invention can achieve lower power consumption as compared with the conventional technique in which one frame is encoded while changing the operating power supply voltage and the operating frequency of the processor a plurality of times. For example, when performing a specific operation amount Kt at a specific time Tt, control is performed at the same frequency during the specific time, and the frequency Ft is changed.
  • the operating power supply voltage and operating frequency of the processor 1 are variable in P stages, the required amount of operation for any one frame is Kt, and the time allocated to the processing of that frame is Tt.
  • the operating frequency is set to Ft
  • the operating power supply voltage for operating the processor 1 at the operating frequency Ft is set to V DD
  • the processing of the required amount of computation Kt ends at time Tt.
  • Case i.e., when the operating frequency is constant
  • the initial operating frequency is set as h * Ft, and when the processor operates at the operating frequency h * Ft.
  • the operating power supply voltage is set to VDD1
  • the operating frequency of the processor is changed to h * FtZ2 when the time T1 has elapsed
  • the operating power supply voltage for operating the processor 1 at the operating frequency h * FtZ2 is set to VDD2.
  • Pa a XCXFtXVDD 2 XTt
  • Pb a XCX (hXFt) XVDD1 2 XT1 + a XCX (hXFt / 2) XVDD2 2 XT2
  • Pb VDD 2 XTt: (hX VDD1 2 XT1 + (h / 2) XVDD2 2 XT2).
  • h l.5
  • Tl lZ3XTt
  • Tb 2Z3XTt
  • VDD2 0.75
  • the operating power supply voltage and operating frequency are determined for each block, so that It is clear that the power consumption can be reduced as compared with the related art in which the operation power supply voltage and the operation frequency are changed many times during the encoding of the frame.
  • the multitask processing system and the multitask processing method suitable for the case where the tasks of the video encoding process and the Z or video decoding process are included have been described as examples.
  • the task processing system and the multitask processing method can be applied to a case where other tasks are processed in a time-division manner.
  • FIG. 1 is a block diagram showing a configuration of a multitask processing system of the present invention.
  • FIG. 2 is a diagram showing a configuration of a processor according to the present invention.
  • FIG. 3 is a diagram showing contents stored in an operating frequency table memory in a table format.
  • FIG. 4 is a flowchart illustrating the operation of the multitask processing system of the present invention.
  • FIG. 5 is a diagram showing the contents stored in a task table memory in a table format.
  • FIG. 6 is a timing chart when a multitask processing system is operated.
  • FIG. 7 is a timing chart illustrating an example of a multitask processing system.
  • FIG. 8 is a diagram showing an example of saved contents of a task table in a table format.
  • FIG. 9 is a diagram showing an example of stored contents of an operating frequency table in a table format.
  • FIG. 10 A diagram showing an example of saved contents of a task table in a table format.
  • FIG. 11 is an explanatory diagram explaining that subthreshold leakage current can be reduced by keeping the operating frequency constant.
  • FIG. 12 is an explanatory diagram explaining that low power consumption can be achieved by keeping the operating power supply voltage and the operating frequency constant.
  • FIG. 13 is a diagram showing a conventional technique for reducing the power consumption of the moving picture coding processing system.
  • FIG. 14 is a conceptual diagram showing a state in which the amount of calculation for moving image encoding or decoding is different for each frame.
  • FIG. 15 is a diagram showing an example of a relationship between a threshold voltage and a substrate bias voltage in an n-channel MOS transistor and a p-channel MOS transistor.
  • FIG. 16 is a diagram showing an example of a relationship between an operating frequency and a threshold voltage in a processor.
  • FIG. 17 is a diagram showing an example of a relationship between a sub-threshold leak current, a gate voltage, and a threshold voltage
  • FIG. 18 is a diagram showing the relationship between current and operating power supply voltage when the operating frequency of the processor is fixed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

【課題】 従来技術と比較して低消費電力化を図ることができるマルチタスク処理システム、及び、マルチタスク処理方法を提案する。 【解決手段】 複数のタスクを時分割に処理するマルチタスク処理システム100であり、制御時間T内に完了すべきタスク処理に必要な総演算量Hを算出し、当該総演算量Hを残時間T―t内に処理可能な動作周波数を決定し、当該動作周波数、及び、当該動作周波数に適する動作電源電圧及び/又は基板バイアス電圧でプロセッサを動作させながらタスク処理を行う。

Description

マルチタスク処理システム、及び、マルチタスク処理方法
技術分野
[0001] 本発明は、複数のタスクを時分割で処理するマルチタスク処理システム及びマルチ タスク処理方法に関し、特に、動画像符号化処理及び Z又は動画像復号化処理の タスクが含まれる場合に適するマルチタスク処理システム及びマルチタスク処理方法 に関する。
背景技術
[0002] 近年、伝送路を通じて動画像の送受信を行うことや、動画像を蓄積メディアに蓄積 することが可能となっている。一般に、動画像は情報量が大きいため、伝送ビットレー トの限られた伝送路を用い動画像を伝送する場合、あるいは蓄積容量の限られた蓄 積メディアに動画像を蓄積する場合には、動画像を符号化'復号ィ匕する技術が必要 不可欠である。動画像の符号化'復号ィ匕方式として、 ISO/IECが標準化を進めている MPEG(Moving
Picture Experts Group)や H.26Xがある。これらは動画像を構成する経時的に連続し た複数のフレームの符号ィ匕又は復号ィ匕を行うものであり、動画像の時間的相関、空 間的相関を利用した冗長性の削減を行うことにより動画像の情報量を減らして符号 化し、符号化された動画像を再度元の動画像に復号化する技術である。
[0003] 力かる符号化'復号ィ匕技術はパーソナルコンピュータやマイクロコンピュータを内蔵 する携帯電話等の情報端末機器等に適用されており、符号化'復号化の手段を記述 したプログラムに基づいてコンピュータのプロセッサ等を動作させることにより、動画 像を送信等する場合は動画像符号化処理システムとして、動画像を受信等する場合 は動画像復号ィ匕処理システムとして機能させている。しカゝしながら、カゝかる動画像符 号ィ匕又は復号ィ匕処理は比較的に演算量が多いため消費電力が大きくなる傾向にあ り、ハードウェアよりも汎用性の高いソフトウェアを使用して、符号化'復号化処理に おける低消費電力化を図ることが大きな課題となっている。
[0004] 以下に、ソフトウェアを使用した動画像符号ィ匕又は復号ィ匕システムにおける従来の 低消費電力化の手段を説明する。従来の低消費電力化の手段としては、例えば下 記の非特許文献 1に開示されて 、る。
[0005] 非特許文献 1: IEEEInternational Symposium on Circuits and System 2001(May,2001) の予稿集 pp918—921" AnLSI for Vdd— Hopping and MPEG4 System Based on the Chip,(H. Kawaguchi, G. Zhang, S.Lee, and T. Sakurai)
[0006] 図 13は、非特許文献 1で示された、動画像 (動画像)符号ィ匕処理システムについて 従来の低消費電力化を行う手法を示した図である。なお、低消費電力化の手段は、 動画像復号化処理システムにお ヽても同様である。
[0007] 非特許文献 1では、動的に動作電源電圧及び動作周波数を変更可能なプロセッサ 上で、動画像符号化 (特に MPEG)を処理する場合の低消費電力化を行うための動 作電源電圧及び動作周波数の制御方法を示して!/ヽる。すなわち非特許文献 1の発 明は、図 14に示すように、動画像符号化を行う場合に、動画像内の動きの激しさなど によりフレーム単位に動画像符号ィ匕又は復号ィ匕の演算量が異なることに注目し、プ 口セッサの動作周波数及び動作電源電圧を制御して低消費電力化を図るものである
[0008] 符号化処理は、 1フレームの処理時間が符号ィ匕方式 (MPEGなど)の規定などにより 時間 Tfに制約されており、その処理時間 Tf内に 1フレームの符号ィ匕処理が完了する こと力 S必要とされる。 1フレームの処理時間 Tf (秒)に対して、それを一定間隔に N個 に分割し、一つ一つの間隔(時間)をタイムスロット Tslot (Tslot=TfZN)と定義し、ま た、タイムスロット Tslotl力もタイムスロット Tslotiが終了した時点の残時間 TRiを TRi =Tf Tslot X iと定義する。一つのタイムスロット Tslotで処理する動画像のブロック 数(動画像の符号化はブロック単位に処理が行われる)を R (すなわち R X Nが 1フレ ームのブロック数となる)とし、(R X i)ブロック処理に力かった時間(すなわちタイムス ロット Tslotlからタイムスロット Tslotほでに処理すべきブロック群に対して実際に処理 にかかった時間)を TaccG+l)とする。電圧変更した場合に動作電源電圧及び動作周 波数が安定するまでの時間を Trdとする。なお、実タイムスロット RTslotiはタイムスロッ ト Tsloti内に完了されるべき処理に対して実際に要した処理時間を示す。図 13では 、まずタイムスロット Tsloti及びタイムスロット Tslot2に割り当てられたブロック群の処 理に対しては、負荷が最大の場合でもそのタイムスロット Tslotl, Tslot2内に十分に 処理が完了可能なクロック周波数 Fmaxで動作させる。その処理に力かった時間 Tacc 3が Tacc3く(Tf— TR2)である場合、すなわち、割り当てられたブロック群がタイムス ロット Tslotl,Tslot2内で処理が完了した場合、次のタイムスロット Tslot3に割り当てら れたブロック群の処理に使用可能な処理時間 Ttar3は Ttar3 =Tf— Tacc3— TR3 - Trdであり、この処理時間 Ttar3内に Tslot3に割り当てられたブロック群の処理が完 結すればよいので、このブロック群に対しては動作周波数を下げて動作させる。図 1 3の処理時間 Tfl, T12, Τβは、タイムスロット Tslot3において負荷が最大の場合に、 各動作周波数 Fl, F2, F3で動作させたときの処理時間を示す。動作周波数として は、図 13において F2=FmaxZ2の動作周波数を選択すれば、負荷が最大の場合 でもタイムスロット Tslotlからタイムスロット Tslot3までに完了されるべき処理時間が( Tf TR3)以内である、次のタイムスロット Tslot4に処理が入り込むことはない。一方 、動作周波数 F3 = FmaxZ3を選択した場合は、処理時間 Tf3が処理時間 Ttar3を超 えてしまう。したがって、このタイムスロット Tslot3で処理すべきブロック群に対しては F 2=FmaxZ2の動作周波数及びその動作周波数に適する動作電源電圧で動作させ る。同様にして、タイムスロット Tslot毎にこの処理を行う。
[0009] これにより、動的に動作クロック周波数及び動作電源電圧を変更するに際し、制御 時間内に所定数のブロック群を処理可能な動作周波数のうち最小の動作周波数を 選択することにより、総合的に動作周波数及び動作電源電圧を下げて動作させ、必 要処理に応じて電圧を制御することにより、低消費電力化が図られている。
[0010] ところで、ある一定の処理時間(例えば、ここでは 1フレームの処理時間 Tf)に完了 すべき処理(例えば、ここでは 1フレームの処理)に対しては、 1フレームの処理時間 を通してプロセッサを一定の動作電源電圧及び動作周波数で動作させて処理するこ とが好ましい。すなわち、 1フレームの処理時間を Tf (秒)とし、演算量 Kf (サイクル)と し、動作周波数 Ffとすると、動作周波数 Ff=KfZTf (サイクル Z秒)に設定し、 1フレ ームの処理時間 Τί¾®してプロセッサを一定の動作周波数 FfC動作させることにより 、その処理時間 Tf内で動作周波数 Fl^何回も変動させる場合と比較して、より低消 費電力化が可能となる。 [0011] し力しながら、非特許文献 1では、処理時間 Tfの同期する単位が 1フレームである にもかかわらず、 1フレーム内で最大 N回の動作電源電圧及び動作周波数の変更が 行われており、低消費電力が十分に図られていな力つた。すなわち、本従来例のよう に多段階に動作電源電圧及び動作周波数を制御可能なプロセッサでの動画像符号 化又は復号化処理の低消費電力化は、 1フレームの処理中に何回も動作電源電圧 及び動作周波数を変更する必要があった。一方、上述のように、処理時間の制約の 単位がフレームであるため、 1フレームの処理中は処理を可能にする最低限の一定 の周波数で制御するのが好ましい。そのため、 1フレームの処理中に最大 N回動作 電源電圧及び動作周波数が変更される本従来例では十分な低消費電力化ができて いなかった。
[0012] そこで、本願発明者等は下記特許文献 1の発明を完成させた。この発明は、一定の 動作電源電圧 ·動作周波数でプロセッサ 1を動作させながら符号ィ匕又は復号ィ匕処理 を行うことにより低消費電力化を図るものである。
特許文献 1:特願 2003— 48535
[0013] また、プロセッサの低消費電力化を妨げる他の要因の一つとして、プロセッサを構 成する MOSトランジスタのサブスレツショルドリーク電流が挙げられる。サブスレツショ ルドリーク電流は、半導体基板に形成される MOSトランジスタのゲート電圧がしき ヽ 値電圧以下のとき流れる微少電流である。このサブスレツショルドリーク電流による消 費電力は、 MOSトランジスタの微細化が高まるにつれて支配的となる傾向にあり、半 導体基板に MOSトランジスタが集積されたプロセッサを使用して動画像の符号ィ匕又 は復号ィ匕を行う動画像符号ィ匕又は復号ィ匕システムにおいて、低消費電力化を妨げ る要因の一つとなって 、る。
[0014] このサブスレツショルドリーク電流は、 1フレームの処理時間 Tf内でプロセッサの動 作周波数 Fl^何回も変動させる場合と比較して、処理時間 Tf^通して一定の動作周 波数 Ffで動作させることにより低減され、プロセッサの低消費電力化が可能となる。 上記非特許文献 1の発明は、処理時間 Tfの同期する単位が 1フレームであるにもか かわらず、 1フレーム内で最大 N回の動作周波数の変更が行われており、動作電源 電圧のみならずサブスレツショルドリーク電流の観点力もも好ましくな力つた。一方、 MOSトランジスタに関しては、 MOSトランジスタが形成される半導体領域の基板バイ ァス電圧を制御することにより、サブスレツショルドリーク電流を制御できることが知ら れている。
[0015] また、プロセッサで流れるリーク電流には、充放電電流、サブスレツショルドリーク電 流 外 tこ t>、(jIDL(Gate— Induced Drain Leakage) ^ DIBL(Drain— Induced Barrier Lowering),ゲートリークやその他の電流が存在し、これらの電流は MOSトランジスタの 微細化が高まるにつれて大きくなる傾向にあり、プロセッサの低消費電力化を妨げる 一因となっている。発明者等は、 MOSトランジスタを集積した半導体素子であるプロ セッサに関して、基板バイアス電圧と動作電源電圧の制御により充放電電流、サブス レツショルドリーク電流以外にも、 GIDL(Gate- Induced Drain Leakage),
DIBL(Drain- Induced Barrier Lowering),ゲートリークやその他の電流を抑制し、プロ セッサの低消費電力化が実現可能であることを確認した。
[0016] そこで、本願発明者等は下記特許文献 2の発明を完成させた。この発明は、フレー ムごとに符号ィ匕又は復号ィ匕に必要な演算量を計算し、一定の基板バイアス電圧-動 作周波数、又は、一定の基板バイアス電圧'動作電源電圧'動作周波数でプロセッ サを動作させながら符号ィ匕又は復号ィ匕処理を行うことにより低消費電力化を図るもの である。
特許文献 2 :特願 2003— 409641
発明の開示
発明が解決しょうとする課題
[0017] ところで、近年は時分割で処理プログラムを切り替えてプログラム 'タスクに実行時 間を割り当てるマルチタスク方式が広く採用されている。たとえば、上記動画像符号 化処理や復号化処理についても他の処理 (音声符号化処理、音声復号化処理、ベ ースバンド信号処理等)と合わせて時分割でマルチタスク処理されることが多 、。
[0018] そこで本発明の目的は、低消費電力化を図ることが可能なマルチタスク処理システ ム及びマルチタスク処理方法、特に動画像符号化処理や復号化処理のタスクを含む 場合において低消費電力化を図ることが可能なマルチタスク処理システム及びマル チタスク処理方法を提案することにある。 課題を解決するための手段
[0019] 上記のように、発明者等は、一定の動作周波数及び動作電源電圧でプロセッサを 制御することにより、低消費電力が図られることを確認し、本発明を完成させた。
[0020] さらに、発明者等は、基板バイアス電圧を制御することにより、サブスレツショルドリ ーク電流を抑制し、低消費電力を実現する本発明を完成させた。図 15は、 n—チヤ ネル MOSトランジスタの基板バイアス電圧 Vbnとしき!/、値電圧 Vtnの関係の例、なら びに p—チャネル MOSトランジスタの基板バイアス電圧 Vbpとしきい値電圧 Vtpの関 係の例を表して 、る。 n—チャネル MOSトランジスタの基板バイアス電圧 Vbnが上が るとしきい値電圧 Vtnが下がり、 p—チャネル MOSトランジスタの基板バイアス電圧 V bpが上がるとしきい値電圧— Vtpが上がり、基板バイアス電圧 Vbn, Vbpを変化させ ることで、しきい値電圧 Vtn,— Vtpを制御できる。図 16の例に示すように、しきい値 電圧 Vtn,— Vtpが下がると一般にプロセッサの動作周波数が上がり、しきい値電圧 の制御によりプロセッサ 1の動作周波数 fが変化する。図 15の (1)は Vtn, —Vtpがそ れぞれ 0[V]の場合、(2)は Vtn, — Vtpがそれぞれ 0. 1 [V]の場合、(3)は Vtn, — V tpがそれぞれ 0. 2 [V]の場合のしきい値電圧 Vtn, —Vtpとサブスレツショルドリーク 電流 1stの関係の例を表す。図 15に示すように、しきい値電圧 Vtn,— Vtpが上がる とサブスレツショルドリーク電流 1stが下がり、しきい値電圧 Vtn,— Vtpを制御すること によりサブスレツショルドリーク電流 1stを制御できる。したがって、基板バイアス電圧 V bn, Vbpによりサブスレツショルドリーク電流 1stを制御できる。そこで、演算量に適す る動作周波数 fを算出し、動作周波数 fを実現することができ、かつ、サブスレツショル ドリーク電流 1stを抑制できるように基板バイアス電圧 Vbn, Vbpを制御し、その動作 周波数 fでプロセッサを一定に動作させながら、 1フレームの符号化又は復号化処理 を行うことにより、サブスレツショルドリーク電流 1stを抑制することができる。たとえば、 動作周波数を低く設定できるとき、基板バイアス電圧を下げることによりしきい値電圧 を上げることができ、サブスレツショルドリーク電流を抑制することができる。よって、全 電流を抑制することができ、低消費電力化を実現できる。
[0021] さらに、発明者等は基板バイアス電圧のみならず動作電源電圧をも制御すること〖こ より、サブスレツショルドリーク電流及び充放電電流及びそれ以外のリーク電流を適 度に抑制し、さらに効果的に低消費電力化を実現できる本発明を完成させた。
サブスレツショルドリーク電流の過剰な抑制は、かえって低消費電力化を阻害する 場合がある。そこで、さらに効果的に低消費電力化を図るためには、基板バイアス電 圧に加えて動作電源電圧を制御することが好ましい。以下に、動作周波数と動作電 源電圧'基板バイアス電圧の関係について詳述する。たとえば、プロセッサ 1および ( 又は)局部復号メモリ等を含めた周辺装置で消費される電流が、
I = Icd + Ist
で表されるとする。ここで、 ledは充放電電流であり、
Icd = aXCXfXVDD
a:係数、 C:プロセッサのトランジスタ数
f:動作周波数、 VDD:動作電源電圧
である。一方、 1stはサブスレツショルドリーク電流であり、
Ist = I X10"((Vgs-Vt)/S)
o
I:定数、 Vgs:ゲート ソース間電圧、
0
Vt:しき!/、値電圧(Vtn又は— Vtp)、 S:サブスレツショルド swing
である。また、しきい値電圧は基板バイアス電圧を用いて
Vt=VtO+ γ ( δ— VBB)
VtO、 γ、 δ:定数、 VBB:基板バイアス電圧(Vbn又は— Vbp)
と表される。一方、動作周波数は動作電源電圧としきい値電圧を用いて、
f=KX (VDD-Vt)" a/VDD
:、 α:係数
と表される。回路で消費される消費電力 Pは、
P = Pcd+Pst
Pcd=VDD X led:充放電電流によるダイナミック電力
Pst = VDD X 1st:サブスレツショルドリーク電流によるスタティックリーク電力 と表される。図 16は、プロセッサの動作周波数 fを一定とした場合の消費電力 Pと動 作電源電圧 VDDの関係を表した図である。たとえば、プロセッサ 1の動作電源電圧 VDDを下げる場合、充放電電流 ledは減少する力 動作周波数 fを維持するために 基板バイアス電圧 Vbn及び (又は) Vbpを上げてしき 、値電圧 Vtを下げる必要が あり、それに伴ってサブスレツショルドリーク電流 1stが指数関数的に増加する。よって 、消費電力 Pには最小値が存在し、消費電力が最小値となるような動作電源電圧 VD Dと基板バイアス電圧 Vbn及び (又は)—Vbpの組合せが存在する。動作電源電圧 V DDと基板バイアス電圧 Vbn及び (又は) Vbpを制御し、特定の動作周波数 fに対 し消費電力 Pを最小にするような動作電源電圧 VDDおよび基板バイアス電圧 Vbn及 び (又は) Vbpでプロセッサ 1を動作させることにより、さらに効果的に低消費電力 ィ匕を図ることができる。
さらに、発明者等は、 MOSトランジスタを集積した半導体素子であるプロセッサに 関して、基板バイアス電圧と動作電源電圧の制御により充放電電流、サブスレツショ ルドリーク電流以外にも、 GIDL(Gate- Induced Drain Leakage), DIBL(Drain- Induced Barrier Lowering),ゲートリークやその他の電流を抑制し、プロセッサの低消費電力 化が実現可能であることを確認した。 GIDLは、 MOSトランジスタのゲート領域とドレイ ン領域のオーバーラップ部分に高電界が生じる場合、トンネリング現象によりドレイン 力 基板に向かって流れる電流である。また、 DIBLは、 MOSトランジスタのドレイン電 圧が高い場合、ソースの障壁が低くなりソース力もチャネル表面にキャリアが注入さ れること〖こよって流れる電流である。また、ゲートリークは、 MOSトランジスタのゲート酸 化膜におけるトンネリング現象によってゲートからチャネルに向かって流れる電流で ある。 DIBLは動作電源電圧のみの関数であり、 GIDL、ゲートリーク、その他の電流は 動作電源電圧と基板バイアス電圧の関数である。それらのリーク電流を考慮に入れる と、プロセッサにおける消費電力 Pは、
P=Pcd + Pst + PGIDL + PDIBL +Pgl+ Pother
Pcd:充放電電力, Pst:サブスレツショルドリークによる電力
PGIDL: GIDLによる消費電力, PDIBL: DIBLによる消費電力
Pgl:ゲートリークによる消費電力, Pother:その他の消費電力
で表され、消費電力 Pは動作電源電圧及び基板バイアス電圧の関数となる。この場 合でも、所定の動作周波数に対し全消費電力を最小にするような動作電源電圧およ び基板バイアス電圧でプロセッサを動作させることにより、さらに効果的に低消費電 力化を図ることができる。
[0024] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、複数のタスクを 時分割に処理するマルチタスク処理システムやマルチタスク処理方法にお!、て、制 御時間 T内に完了すべきタスク処理に必要な総演算量 Hを算出し、当該総演算量 H を残時間 T一 t内に処理可能な動作周波数を決定し、当該動作周波数、及び、当該 動作周波数に適する動作電源電圧及び Z又は基板バイアス電圧でプロセッサを動 作させながらタスク処理を行うことを特徴とする。
[0025] この発明によれば、制御時間 T内に完了すべきタスク処理に必要な総演算量 Hを 算出し、プロセッサの動作周波数をその総演算量 Hを残時間 T一 t内に処理可能な 動作周波数とするため、総演算量 Hを処理可能な程度に低い動作周波数、及び、当 該動作周波数に適する動作電源電圧及び Z又は基板バイアス電圧でタスク処理を 行うことが可能となる。総演算量 Hを処理可能な程度に低い動作周波数と動作電源 電圧でプロセッサを一定に動作させて消費電力を低減し、或いは、動作周波数と基 板バイアス電圧の制御によりサブスレツショルドリーク電流を抑制し、或いは、動作周 波数と基板バイアス電圧と動作電源電圧の制御によりサブスレツショルドリーク電流 及び充放電電流及びそれ以外のリーク電流を適度に抑制し、低消費電力化を図るこ とができる。プロセッサを当該動作周波数等で一定に動作させる期間としては、例え ばタスク処理の切り替えタイミングまででも良ぐまた、すべてのタスクが完了するまで でも良い。
[0026] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、所定のタイミン グにおいて未処理のタスク処理の完了に必要な総演算量を算出し、当該総演算量を 前記総演算量 Hとして動作周波数を再決定することを特徴とする。
[0027] この発明によれば、タスク処理の切り替え等のタイミングごとに、未処理のタスク処 理の完了に必要な総演算量を算出して総演算量 Hとし、この総演算量 Hと残り時間 T —tとの関係力も動作周波数を再決定するため、タスク処理の切り替え等のタイミング ごとに動作周波数が修正され、制御時間 T内に総てのタスク処理が完了する可能性 を高めることができる。
[0028] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、前記総演算量 Hは、各タスクの演算量とタスク処理の切り替えに必要な演算量との和であることを特 徴とする。各タスクの演算量としては、後述する予測演算量 Hpを使用しても良いし、 最大演算量 Hwを使用しても良 ヽ。
[0029] この発明によれば、総演算量 Hは、各タスクの演算量とタスク処理の切り替えに必 要な演算量との和であるため、切り替え処理の演算量を考慮した動作周波数が決定 される。タスクの切り替えのために時間が消費されても、制御時間 T内に総てのタスク 処理が完了する可能性を高めることができる。
[0030] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、前記総演算量 Hが実際に必要な総演算量よりも小さい場合に起きる破綻現象を回避する少なくとも 一つの破綻回避手段 Zステップを備えることを特徴とする。算出された総演算量 Hが 実際に必要な演算量よりも小さい場合は、制御時間 T内にタスク処理が完了せず破 綻現象が起こるが、本発明は破綻現象を回避する一つ以上の破綻回避手段 Zステ ップを備えるため破綻現象の発生が回避される。
[0031] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、前記破綻回避 手段として、前記総演算量 Hに余裕を持たせる第 1の破綻回避手段 Zステップを備 えることを特徴とする。この発明によれば、破綻回避手段 Zステップが総演算量 Hを 所定値だけ増カロさせるため、算出された総演算量 Hが実際に必要な演算量を満た す可能性が高くなり、破綻現象を回避する可能性を高めることができる。
[0032] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、前記第 1の破綻 回避手段 Zステップとして、前記総演算量 Hを m倍 (mは 1以上の実数)、及び Z又 は、総演算量 Hに 0より大きい実数 nを加算することを特徴とする。この発明によれば 、第 1の破綻回避手段 Zステップは総演算量 Hを m倍、及び Z又は、総演算量 Hに n を加算するため、 mや nの値を調節することで、算出された総演算量 Hを、実際に必 要な演算量よりも大きぐ且つ、実際に必要な演算量に近い値とすることができ、破綻 現象を効率良く回避することができる。
[0033] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、所定のタイミン グで割り込みを行 ヽ、タスク処理を簡略ィ匕する第 2の破綻回避手段 Zステップを備え ることを特徴とする。この発明によれば、タスク処理の一部を演算量が少ない代替処 理に変更したり、一部を省略したりするなど、タスク処理を簡略ィ匕することにより演算 量を削減させるため、破綻現象を回避できる可能性を高めることができる。
[0034] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、所定のタイミン グで割り込みを行 、、制御時間 T内に処理されるタスクの中に動画像符号化処理の タスクが存在する場合は、当該ブロックに対して無効ブロック化処理を行う第 3の破綻 回避手段 Zステップを備えることを特徴とする。ブロック〖こはマクロブロックも含まれる 。無効ブロック化処理は、通常の符号ィヒ処理と比較して演算量を大幅に削減すること ができる。そこで、無効ブロック化処理を用いて、動画像符号化処理の演算量の削減 を図ることによって、この結果短縮された時間を他のタスク処理に割り当てることが可 能となる。動画像符号化処理は無効ブロック化処理によりタスク処理が完了し、他の タスク処理は充分な時間が割り当てられるため、破綻現象を回避できる可能性を高 めることができる。さらに、無効ブロック化処理により破綻現象を回避するため、その 他の破綻回避手段 Zステップによる影響を抑えることができる。割り込みを行うタイミ ングとして、たとえば、動画像を構成する 1フレームに含まれる総てのブロックを無効 ブロック化する処理時間を残したタイミングなどでタスク処理に割り込み、無効ブロック 化処理を行う。
[0035] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、前記制御時間 T 内に処理されるタスクには動画像符号化処理のタスク、及び Z又は、動画像復号ィ匕 処理のタスクが含まれていることを特徴とする。とくに、動画像符号化処理や動画像 復号化処理は、他の処理と比較して処理に必要な演算量が大きぐしたがって、処理 に必要な消費電力が大きくなる傾向にある。また、近年は携帯電話等のモパイル型 端末への応用が盛んであり、低消費電力化の要求が高まっている。この発明によれ ば、例えば携帯電話に内蔵されるマルチメディア処理装置等のように、動画像符号 化処理のタスク、及び Z又は、動画像復号ィ匕処理のタスクが他のタスクと合わせて時 分割に処理されるようなマルチタスク処理システムにおいても、効果的に低消費電力 ィ匕を図ることができる。
[0036] 本発明のマルチタスク処理システム及びマルチタスク処理方法は、動画像復号ィ匕 処理のタスクを、動画像符号ィ匕処理のタスクよりも高優先度で実行することを特徴と する。動画像復号化処理は、動画像符号化処理のように無効ブロック化処理等の別 の処理に切り替えて演算量を削減することができないため、破綻現象が生じやすい。 本発明によれば、動画像復号化処理のタスクを動画像符号化処理のタスクよりも高 優先度で実行するため、動画像復号化処理のタスクは、制御時間 T内に完了する可 能性が高くなる。動画像符号化処理の破綻現象については、上記無効ブロック化処 理等により対処すれば良い。
発明の効果
[0037] 以上説明したように、本発明のマルチタスク処理システム及びマルチタスク処理方 法によれば、タスク処理のための総演算量を計算し、その総演算量を処理可能な動 作周波数、及び、その動作周波数に適する動作電源電圧及び Z又は基板バイアス 電圧でタスク処理を行うため、総演算量 Hを処理可能な程度に低い動作周波数と動 作電源電圧でプロセッサが一定に動作して消費電力が低減され、或いは、動作周波 数と基板バイアス電圧の制御によりサブスレツショルドリーク電流が抑制され、或いは 、動作周波数と基板バイアス電圧と動作電源電圧の制御によりサブスレツショルドリー ク電流及び充放電電流及びそれ以外のリーク電流が適度に抑制され、マルチタスク 処理においても低消費電力化が図られる。とくに、マルチタスク処理される複数のタ スクの中に動画像符号化処理や動画像復号化処理のタスクを含む場合に効果的で ある。
発明を実施するための最良の形態
[0038] 以下、本発明のマルチタスク処理システム及びマルチタスク処理方法につ!、て、処 理すべきタスクの中に動画像符号化又は復号化処理のタスク A1が含まれる場合を 例に説明する。マルチタスク処理システム 100は、例えばマイクロコンピュータが内蔵 された携帯電話やパーソナルコンピュータ等の情報端末機器であるコンピュータによ り実現され、特に、そのコンピュータ内においてマルチメディア信号処理部などの一 部として機能する動画像符号ィ匕 Z復号ィ匕用のシステムである。このマルチタスク処理 システム 100は、連続する所定数のフレームカゝら構成される動画像をフレーム単位で 順次符号化を行う符号化処理のタスク Al、及び、他のタスクを含む複数のタスク A2 , , , Anを時分割にマルチタスク処理を行う。 [0039] 図 1はマルチタスク環境下での、プロセッサの動的制御を用いた本発明のマルチタ スク処理システム 100の概略ブロック図である。マルチタスク処理システム 100はプロ セッサ 1を備える。
[0040] プロセッサ 1は、タスク処理手段 11と、タスクスケジュール処理手段 12と、タスクテー ブルメモリ 13とを備え、動的プロセッサ制御手段 2により動作周波数と動作電源電圧 と基板バイアス電圧が段階的に制御可能となって 、る。タスク処理手段 11とタスクス ケジュール処理手段 12は、プログラムによりプロセッサ 1を各手段 11, 12として機能 させることで実現されている。プロセッサ 1は、図 2に示すようにトリプルゥエル構造をと る半導体素子で構成される。プロセッサ 1をトリプルゥエル構造とすることで、基板バイ ァス電圧 Vbnを n—チャネル MOSトランジスタに印加でき、基板バイアス電圧 Vbpを P—チャネル MOSトランジスタに印加でき、基板バイアス電圧が制御可能となる。
[0041] タスク処理手段 11は、複数のタスク Al, , , Anを時分割に処理する機能を備え、 各タスク Al, , , Anに対応して、各タスク Al, , , Anを処理するタスク A1処理手段, , ,タスク An処理手段として機能する。さら〖こ、各タスク A1処理手段,,,タスク An処 理手段は、タスクスケジュール処理手段 12からの要請に応じて、指定された制御時 間 T内にお 、て自身の処理の完了に必要な演算量の予測値 (予測演算量) Hpと最 大値 (最大演算量) Hwを計算してタスクスケジュール処理手段 12に通知する処理ル 一チンや、指定された制御時間 T内の自身の処理がプロセッサ上で実行される予測 値 (予測実行回数) Cpと最大値 (最大実行回数) Cwを計算してタスクスケジュール処 理手段 12に通知する処理ルーチンを呼び出して実行する機能を備える。
[0042] タスクテーブルメモリ 13は、各タスクの状態を示すタスクテーブルが保持される記憶 領域である(図 5参照)。タスクテーブルは、タスク Al, , , Anごと〖こ、タスク番号 A1, , , Anと、予測演算量 Hpと、最大演算量 Hwと、予測実行回数 Cpと、最大実行回数 Cwと、優先度 Pの欄を備える。
[0043] タスクスケジュール処理手段 12は、タスク A1処理手段, , ,タスク An処理手段の動 作時間のスケジューリングを行う機能を備え、制御残時間発信手段 12aと、制御時間 発信手段 12bと、制御時間受信手段 12cと、動作周波数指示受信手段 12dと、実行 回数受信手段 12eと、演算量受信手段 12fと、プロセッサ制御信号発信手段 12gとを 備える。制御残時間発信手段 12aは、タスク A1処理手段, , ,タスク An処理手段に 対して、各タスク Al, , , Anの処理に費やすことのできる残時間を通知する信号 siを 発信する機能を備える。制御時間発信手段 12bは、制御時間 Tをタスク処理手段 11 (各タスク A1処理手段,,,タスク An処理手段)に通知する機能を備える。制御時間 受信手段 12cは、タスク A1処理手段,,,タスク An処理手段から発信される各タスク の制御時間信号 s3を受信する機能を備える。動作周波数指示受信手段 12dは、タス ク A1処理手段, , ,タスク An処理手段から直接プロセッサ 1の動作周波数を指示す るために発信される動作周波数指示信号 s4を受信する機能を備える。実行回数受 信手段 12eは、タスク A1処理手段, , ,タスク An処理手段から発信されるプロセッサ 1の制御時間 T内の各タスク Al, , , Anの実行回数として予測実行回数 Cpと最大実 行回数 Cwを受信する機能を備える。演算量受信手段 12fは、タスク A1処理手段, , ,タスク An処理手段力 発信されるプロセッサの制御時間 T内の各タスク Al, , , An の演算量の予測値 (予測演算量) Hpと最大値 (最大演算量) Hwを受信する機能を 備える。プロセッサ制御信号発信手段 12gは、プロセッサ 1の動作周波数を指示する 信号 s7を生成して動的プロセッサ制御手段 2に発信する機能を備える。上記各手段 12a, 12b, 12c, 12d, 12e, 12f, 12gは、タスクスケジユーノレ手段 12に実装された 機能であり、マルチタスクオペレーティングシステムのシステムコールや API (アプリケ ーシヨンプログラミングインターフェース)として実装されることが望まし 、。
動的プロセッサ制御手段 2は、プロセッサ 1の動作を制御する回路である。動作周 波数テーブルメモリ 21と、動作周波数発生手段 22と、動作電源電圧発生手段 23と、 基板バイアス電圧発生手段 24とを備える。動作周波数発生手段 22は、 PLLなどを 備え、プロセッサ 1に対して動作周波数供給信号 s8を発生して、プロセッサ 1の動作 周波数を制御する。基板バイアス電圧発生手段 24は、プロセッサ 1に対して基板バ ィァス電圧供給信号 slOを発生し、プロセッサ 1の基板バイアス電圧を制御する。また 、動作電源電圧発生手段 23は、プロセッサ 1に対して動作電源電圧供給信号 s9を 発生し、プロセッサ 1の動作電源電圧を制御する機能を備える。動作電源電圧発生 手段 23と基板バイアス電圧発生手段 24は DC— DCコンバータなどで実現されるの が望ましいが、他の手段を用いて実現されても良い。動作周波数テーブルメモリ 21 は、図 3 (a)に示すように、プロセッサ 1が動作可能な動作周波数 Fと動作周波数 Fに 適する動作電源電圧 Vddの値と基板バイアス電圧 Vbn, Vbpの値を保持する。動作 周波数 Fと基板バイアス電圧 Vbn, Vbpと動作電源電圧 Vddとの組み合わせは、そ の動作周波数 Fを最小の消費電力で実現することが可能な組み合わせとなっている 。たとえば、サブスレツショルドリーク電流と充放電電流とそれ以外のリーク電流との関 係から、消費電力が最小となる動作電源電圧 Vddと基板バイアス電圧 Vbn, Vbpを 実験や計算等により求め、この動作電源電圧 Vddと基板バイアス電圧 Vbn, Vbpの 組み合わせとすることが望ましい。たとえば、本発明のマルチタスク処理システム 100 においては、動的プロセッサ制御手段 2は、プロセッサ 1から動作周波数指示信号 s7 を受け取ると、動作周波数テーブルメモリ 21を参照し、動作周波数発生手段 22を制 御して動作周波数供給信号 s8を指示された動作周波数 Fとし、且つ、動作電源電圧 発生手段 23と基板バイアス電圧発生手段 24を制御して動作電源電圧供給信号 s9 と基板バイアス電圧供給信号 slOを指示された動作周波数 Fに適する動作電源電圧 Vddと基板バイアス電圧 Vbn, Vbpとする。
[0045] なお、図 1中において、信号 sl〜s6は、タスク A1処理手段とタスクスケジュール処 理手段 12の各手段 12a〜 12fの間にしか記載されて 、ないが、実際にはタスク A2 処理手段〜タスク An処理手段の 、ずれの間にも存在する。
[0046] つぎに、上記本発明のマルチタスク処理システム 100の動作を、図 4の本発明のマ ルチタスク処理方法を説明するフローチャートに基づきながら説明する。本実施の形 態では、タスク A1が動画像符号化処理である場合を例に説明する。
[0047] (ステップ 1) タスクの登録
マルチタスク処理システム 100は、動画像符号化処理であるタスク A1と、タスク A1 処理手段と同時に実行されるタスク(タスク A2,タスク A3, · · · ,タスク An (nは 2以上 の整数))をタスクテーブルメモリ 13のタスクテーブルに登録する。タスク A1と同時に 実行されるタスク A2, , , Anとして、動画像復号化処理、音声符号化処理、音声復 号化処理、ベースバンド信号処理、メディア多重分離処理、 2Dグラフィックス処理、 3 Dグラフィックス処理、 EncriptionZDecription処理、カメラ映像キヤプチャ処理、 顔の特徴点抽出処理、 YUVRGB変換処理、高画質化フィルタリング処理などが考 えられる。端末の動画像符号化機能の用途によって、同時に呼び出されるタスクの数 や種類は様々である。例えば、端末をテレビ電話のようなリアルタイム通信装置では なぐビデオカメラのような映像記録装置として使用する場合、符号化復号化データ のリアルタイム通信に必要なベースバンド信号処理は呼び出されず、また、動画像の 符号化時と同時に音声を符号化しない場合、音声符号化処理は呼び出されない等 である。
[0048] (ステップ 2) フレームレートの通知
タスク A1処理手段は、制御時間受信手段 12cに対し、タスク A1における動画像符 号化の 1フレームの時間(フレームレート) Frmeを通知する。例えば、動画像符号ィ匕 処理が 10 (フレーム Z秒)で行われる場合、 1フレームの時間 Frmeは 100 (ミリ秒)で ある。また、ステップ 1で動画像復号ィ匕処理が呼び出されている場合は、動画像復号 化処理のタスク処理を行うタスク Ai (iは 2以上の整数)処理手段は、タスクスケジユー ル処理手段 12に対し、動画像復号化の 1フレームの時間 Frmdを通知する。時間 Fr meと時間 Frmdは等 、場合もあるし、等しくな 、場合もある。
[0049] (ステップ 3) 制御時間 Tの決定
タスクスケジュール処理手段 12は制御時間受信手段 12cに 1フレームの時間 Frme や時間 Frmdを受信すると、プロセッサ 1の制御時間 Tを決定する。制御時間 Tの決 定の方法として、時間 Frme又は時間 Frmdのいずれかを制御時間 Tとしたり、任意 の時間間隔を制御時間 Tとして採用したりする。動画像符号化処理や動画像復号ィ匕 処理に使用されるフレームメモリの制御の容易さから、時間 Frmeや Frmdを制御時 間 Tとして採用するのが望ましぐ時間 Frmdが通知されて 、な 、場合は時間 Frme を制御時間 Tとして採用するのが望ましい。
[0050] (ステップ 4) 制御時間 Tの通知
タスクスケジュール処理手段 12は、ステップ 3で決定したプロセッサ 1の制御時間 T を制御時間発信手段 12bによりタスク処理手段 11 (タスク A1処理手段,, ,タスク An 処理手段)に対し通知する。
[0051] (ステップ 5) 演算量と実行回数の通知
プロセッサ 1の制御時間 Tを受け取ったタスク処理手段 11 (タスク A1処理手段,,, タスク An処理手段)は、制御時間 Tの間に自身のタスクの完了に必要な演算量の予 測値 (予測演算量) Hpと最大値 (最大演算量) Hw、 自身のタスクが実行状態に移さ れる回数の予測値 (予測実行回数) Cpと最大値 (最大実行回数) Cw、及び、自身の タスクの優先度 Pをタスクスケジュール処理手段 12に対し通知する。タスクスケジユー ル処理手段 12は、タスク Al, , , Anごとに、演算量受信手段 12fに受信した予測演 算量 Hpと最大演算量 Hw、実行回数受信手段 12eに受信した予測実行回数 Cpと最 大実行回数 Cw、及び、優先度 Pをタスクテーブルメモリ 13のタスクテーブルに保存 する。このとき、優先度 Pは通常のマルチタスク処理システムと同様な方法で決定され る力 動画像符号化処理以外のタスク A2, , , Anの優先度 Pは、可能な限り動画像 符号ィ匕処理のタスク A1より高い優先度 Pに設定することが望ましい。動画像符号ィ匕 処理のタスク A1は、制御時間 T内に処理不可能な場合でも、無効ブロック化処理な どにより処理を簡略化すれば、破綻現象を回避することができる。とくに、動画像符号 化処理のタスク A1は、動画像復号化処理のタスクよりも優先度を低くすることが好ま しい。動画像復号化処理は、無効ブロック化処理等により破綻回避可能な動画像符 号化処理と比較して、破綻現象が生じやすい。そこで、動画像復号化処理のタスクに ついては、優先度を高くし、制御時間 T内にタスクが完了する可能性を高めておく。 図 5 (a)にステップ 5実行後におけるタスクテーブルの保存内容の例を示す。ただし、 図 5 (a)において、 nは 2以上の整数を表す。
このとき、予測演算量 Hpと予測実行回数 Cpは、最大演算量 Hwと最大実行回数 C wと等しくても良い。必ず一定の演算量や実行回数となるタスクの場合は、予測演算 量 Hpと最大演算量 Hw、予測実行回数 Cpと最大実行回数 Cwは必然的に等しくな る。また、精度の高い予測演算量 Hpや予測実行回数 Cpの導出が困難なタスクの場 合は、予測演算量 Hpや予測実行回数 Cwとして最大演算量 Hwや最大実行回数 C wを通知しておくことで、動作周波数の決定 (ステップ 11)において破綻現象の発生 確率が小さくなるように動作周波数を決定することができる。最大演算量 Hwと最大 実行回数 Cwは、演算量と実行回数が最大となるような条件下でそのタスクを実行し た場合の演算量 Hwと実行回数 Cwを実験的に求めたものであり、これらの値 Hw, C wはタスク処理手段 11に内蔵され、適宜呼び出されて使用される。予測演算量 Hpや 予測実行回数 Cpとしては、前回の制御時間で実際に自身のタスクの実行に必要で あった演算量や実行回数を用いたり、あらかじめ実験的に求めておいた演算量や実 行回数の平均値を各タスク処理手段に内蔵しておき、その値を呼び出して用いたりし てもよい。動画像符号化処理や復号化処理のタスクの場合は、後述する方法を用い て予測演算量 Hpを導出するのが望ましいが、予測演算量 Hpの導出方法としてはこ れに限られるわけではな 、。
(ステップ 6) 総演算量 Η·必要動作周波数 Fpの決定
タスクスケジュール処理手段 12は、タスクテーブルに保存されている各タスク A1, , , Anの予測演算量 Hpと予測実行回数じ から、制御時間 T内で処理を完了すべき タスク Al, , , Anの処理に必要な総演算量 H、及び、プロセッサの必要動作周波数 Fpを予測する計算を行う。総演算量 H、必要動作周波数 Fpの計算式として、それぞ れ下記の数 1と数 2が考えられる力 これらに限られるわけではない。
(数 1)
H= (∑Hp (i) ) +S X (∑Cp (i) )
(数 2)
Fp=H/ (T-t)
ここで、 Hp (i)はタスク番号 iのタスク処理の予測演算量、 Cp (i)はタスク番号 iのタスク 処理の予測実行回数、 Sは実行状態のタスクを切り替えるために必要な演算量、 tは 制御時間 Tの開始時刻からの経過時間、 iは 1から nまでの整数を表す。 Sの値として は、実行状態のタスクの切り替え時に必要な演算量を実験的に測定して得られた値 の平均値や、最大値を用いる。なお、総演算量 Hは予測演算量 Hpと予測実行回数 Cpを使用した数 1に代えて、最大演算量 Hwと最大実行回数 Cwを使用した下記数 3 により導出しても良い。
(数 3)
H= (∑Hw(i) ) +S X (∑Cw(i) )
数 1を使用する場合は、総演算量 Hの値が冗長となるのを回避して効果的に低消費 電力化を図ることができる利点があり、また、数 3を使用する場合は、総演算量 Hに余 裕を持たせて破綻現象の発生を抑制できる利点がある。 [0054] (ステップ 7) 動作周波数 Fの決定
プロセッサ 1は、動作周波数が動作周波数 F (1)〜F (r)まで段階的に可変となって いる。タスクスケジュール手段 12は、ステップ 6で決定した必要動作周波数 Fpと数 4 を用いて、プロセッサ 1が動作可能な動作周波数 F (1)〜F (r)から適する動作周波 数 Fを決定する。
(数 4)
F≥Fp
プロセッサ 1が動作可能な動作周波数のテーブルの値や必要動作周波数 Fpの値に よって Fは複数の選択肢があり得る。動作周波数 Fとして Fp以上で最も Fpに近い値 を選択するのが望まし 、が Fp以上の任意の値を選択してもよ 、。
[0055] (ステップ 8) プロセッサの制御
タスクスケジュール処理手段 12は、プロセッサ 1を動作周波数 Fにするプロセッサ制 御プログラムを実行状態に移行する。すなわち、プロセッサ制御信号発信手段 12g は、動作周波数 Fを動的プロセッサ制御手段 2に指示する(s7)。動的プロセッサ制 御手段 2は、タスクスケジュール処理手段 12から動作周波数 Fを受信すると、動作周 波数テーブルメモリ 21の動作周波数テーブルを参照し、動作周波数発生手段 22と 動作電源電圧発生手段 23と基板バイアス電圧発生手段 24により、指示された動作 周波数 Fと、この動作周波数 Fに適する動作電源電圧 Vddと基板バイアス電圧 Vbn, Vbpを発生し(s8, s9, slO)、プロセッサ 1を指示された一定の動作周波数 F、及び、 動作電源電圧 Vddと基板バイアス電圧 Vbn, Vbpに制御する。
[0056] (ステップ 9) タスクの実行状態への移行
タスクスケジュール処理手段 12は、タスクテーブルメモリ 13に登録されているタスク Al, , , Anのうち、もっとも優先度 Pの高いタスクを実行状態に移行させる。
[0057] (ステップ 10) タスク処理手段の実行
実行状態に移行されたタスクは、対応するタスク処理手段 11によりプロセッサ 1上で 実行される。このとき、実行状態のタスクは直接プロセッサ 1の動作周波数 Fを指示す るために、動作周波数指示受信手段 12dに対し動作周波数指示信号 s4を発信する ことができる。例えば、 3Dグラフィックス処理タスクが実行されている場合において、 描画すべき 3Dオブジェクトの数が一時的に増加した場合、すべてのオブジェクトの 処理に必要な演算量を確保するためにプロセッサの動作周波数 Fを一時的に大きく するように指示を出す。動作周波数指示信号 s4を受信したタスクスケジュール処理 手段 12は、実行中のタスク処理 (Al, , , An)を中断し、プロセッサ 1の動作周波数 を指示された値に変更するためにプロセッサ制御プログラムを実行状態に移行する。 プロセッサの動作周波数が変更された後、タスクスケジュール処理手段 12は中断さ れていたタスク処理 (Al, , , An)を再び実行状態に移行する。
[0058] また、実行状態のタスクは、算出した総演算量 Hと実際の演算量との誤差発生を考 慮して、動作周波数修正用の処理ルーチンを備えていることが望ましい。この処理ル 一チンはタスク実行中に 1回だけ呼び出されても良 、し、任意の時間間隔 (例えば一 定時間毎)で複数回呼び出されても良い。下記の処理ルーチンを実行することにより 、総てのタスク Al〜Anの処理が制御時間 T内に完了するように動作周波数が適宜 修正される。
[0059] 動作周波数修正用の処理ルーチンの動作内容
(1)実行状態のタスク処理手段は制御残時間発信手段 12aを用いてタスクスケジュ ール処理手段力も通知される制御時間 Tのうち残り時間 T tの通知を受け取る。
(2)残りの時間 T—tとタスクテーブルに登録されている実行待ちのタスクの予測演算 量 Hpの合計値 Haから下記の数 5により動作周波数 Frを計算する。
(数 5)
Fr = Ha/ (T— t)
(3)プロセッサ 1の動作周波数 Fを動作周波数 Frに変更するためにプロセッサ制御 プログラムを実行する。
[0060] 実行状態のタスク処理手段 11は、自身のタスク処理終了時に、制御時間 Tの残時 間内に処理すべき未処理の予測演算量 Hp'、最大演算量 Hw'、予測実行回数 Cp' 、最大実行回数 Cw'、優先度 P'を計算する。例えば、予測演算量 Hp' ,最大演算 量 Hw' ,予測実行回数 Cp' ,最大実行回数 Cw,の計算時に、該当タスクの処理が 制御時間 Tで完了しなければならない処理量の r%だけ完了していた場合、各 Hp' , Hw' , Cp' , Cw'は、例えば数 6,数 7,数 8,数 9を用いて計算する。 (数 6)
Hp,=Hp X (100— r)
(数 7)
Hw' =Hw X (100— r)
(数 8)
Cp,=Cp X (100-r)
(数 9)
Cw' =CwX (100-r)
最大実行回数 Cw'力 Si以上の場合はタスクテーブルの値を修正し、最大実行回数 C w'が 0の場合はタスクテーブルの自身のタスクに関する行を削除し処理を終了する。 ステップ 10実行前のタスクテーブルの保存内容が図 5 (a)であり、ステップ 9で実行さ れたタスクの番号が A2であった場合において、ステップ 10終了後におけるタスクテ 一ブルの保存内容の例を図 5 (b) (c)に示す。図 5 (b)はステップ 10で計算された最 大実行回数 Cw'が 1以上の場合の例である。タスク A2処理手段 11は、ステップ 10 終了時点において未処理の予測演算量 Hp'と最大演算量 Hw'と予測実行回数 Cp 'と最大実行回数 Cw'と優先度 P'を再計算し、タスクテーブルの各欄を算出された H p'、 Hw'、 Cp'、 Cw'、 P'に書き換える。図 5 (c)は最大実行回数 Cw'が 0の場合の 例である。最大実行回数 Cw'が 0の場合は、タスク A2の処理が完了したとみなし、タ スク A2をタスクテーブルから削除する。
[0061] (分岐 1)
タスクテーブルに実行待ちのタスクがな ヽ場合は、次の制御時間 Tの開始時刻まで プロセッサ 1をアイドル状態やスタンバイ状態に移行して待つ。タスクテーブルに実行 待ちのタスクがある場合は分岐 2に進む。
[0062] (分岐 2)
タスクテーブルに動画像符号ィ匕処理のタスク (本実施の形態ではタスク A1)がある 場合はステップ 11に進む。タスクテーブルに動画像符号ィ匕処理のタスクがな 、場合 はステップ 14に進む。
[0063] (ステップ 11) 総演算量 Η·必要動作周波数 Fpの決定 ステップ 6と同一の処理を行う。タスクテーブルメモリ 13は、未処理の予測演算量 H P'、最大演算量 Hw'、予測実行回数 Cp'、最大実行回数 Cw'、優先度 P'に書き換 えられているため、数 1で求められる総演算量 Hは、その時点において未処理のタス クの処理に必要な総演算量となる。ここで、総演算量 Hは数 1により導出されることが 好ましい。動画像符号化処理が含まれる場合は、数 3により総演算量 Hに余裕を持 たせなくとも、無効ブロック化処理等によって破綻現象を回避可能なためである。動 画像符号ィ匕処理のタスクがタスクテーブルにな ヽ場合でも、破綻現象を回避すること が可能なタスクがある場合は、ステップ 11に進むことになる。
[0064] (ステップ 12) 動作周波数 Fの決定
ステップ 7と同一の処理を行う。
[0065] (ステップ 13) プロセッサの制御
ステップ 8と同一の処理を行う。その後、ステップ 9に進む。上記ステップ 10におい て優先度 Pが書き換えられているため、ステップ 9においては、その時点での最優先 のタスクが処理される。
[0066] (ステップ 14) 総演算量 Η·必要動作周波数 Fpの決定
分岐 2にお 、て、タスクテーブルに動画像符号ィ匕処理のタスク A1含まれな 、場合 はステップ 14の処理を行う。タスクスケジュール処理手段 12は、数 1と数 2、又は、数 3と数 2を用いて、総演算量 Hと必要動作周波数 Fpを計算する。総演算量 Hは、数 1 によって算出しても良いが、数 3によって算出するのが好ましい。動画像符号化処理 のタスク A1が含まれない場合は、無効ブロック化処理等による破綻現象回避を行うこ とができない。そこで、数 3を用いることにより総演算量 Hに余裕を持たせて破綻現象 の発生を抑制することが望ましい。ただし、破綻現象の回避を考慮しない場合は数 1 により算出しても良い。
[0067] (ステップ 15) 動作周波数 Fの決定
ステップ 7と同一の処理を行う。
[0068] (ステップ 16) プロセッサの制御
ステップ 8と同一の処理を行う。続くステップ 9では、その時点での最優先のタスクが 実行状態に移行される。 [0069] ここで、ステップ 8, 13, 16やステップ 10において実行中のタスクが直接動作周波 数の指示を行った場合に実行されるプロセッサ 1の制御について詳述する。プロセッ サ 1の制御は、プロセッサ制御プログラムに基づいて実行される。下記に、プロセッサ 制御プログラムに基づくプロセッサ 1の制御におけるマルチタスク処理システム 100の 動作の一例を説明する。
[0070] (手順 1)
プロセッサ 1の動作周波数を、ステップ 7, 12, 16で算出された動作周波数 Fゃステ ップ 10で指示された動作周波数 Fに変更するために、動的プロセッサ制御手段 2に 対して動作周波数指示信号 s7を出力する。
(手順 2)
動的プロセッサ制御手段 2は、動作周波数指示信号 s7を受信すると、動作周波数 発生手段 22を制御し、プロセッサ 1に対して動作周波数 Fを出力する(s8)。
(手順 3)
動的プロセッサ制御手段 2は、基板バイアス電圧発生手段 24を制御して、動作周 波数テーブルメモリ 21に保持されて ヽる上記動作周波数 Fに対応する基板バイアス 電圧 Vbn, Vbpをプロセッサ 1に供給する(slO)。
(手順 4)
動的プロセッサ制御手段 2は、動作電源電圧発生手段 23を制御して、動作周波数 テーブルメモリ 21に保持されて ヽる上記動作周波数 Fに対応する動作電源電圧 Vd dをプロセッサ 1に供給する(s9)。
[0071] ここで、プロセッサ 1の動作周波数を変更するに際し、動作周波数を挙げる場合は 手順 1, 4, 3, 2の順序で、動作周波数を下げる場合は手順 1, 2, 4, 3の順序で動 作することが望ましいが、手順 2, 3, 4を同時に実行しても良いし、任意の順序で時 系列的に実行しても良い。たとえば、動作周波数と基板バイアス電圧を同時に制御し ても良いし、動作周波数を制御してカゝら基板バイアス電圧を制御しても良いし、基板 ノィァス電圧を制御して力も動作周波数を制御しても良い。
[0072] また、図 4のフローチャートにおいて、ステップ 11 (ステップ 14)、ステップ 12 (ステツ プ 15)、ステップ 13 (ステップ 16)の処理を適度に省略してもよい。例えば、ステップ 1 0を n回(nは 1以上の整数)実行するごとにステップ 11 (ステップ 14)、ステップ 12 (ス テツプ 15)、ステップ 13 (ステップ 16)を実行するなどである。ステップ 11 (ステップ 14 )、ステップ 12 (ステップ 15)、ステップ 13 (ステップ 16)の処理を適度に省略すること によって、ステップ 10でタスクの処理に費やすことのできる時間を増加させることがで き、破綻現象の発生確率を抑えることができる.
[0073] 図 6は、図 4のフローチャートに従ってマルチタスク処理システム 100を動作させたと きのタイミングチャートを示す図である。
[0074] 1回目の制御時間 Tの開始時刻になると、初期化期間 1 1においてステップ 1, 2, 3が実行される。初期化期間 1—2においてステップ 4, 5が実行される。制御期間 1 1においてステップ 6, 7, 8が実行される。動作期間 1— i(iは 1以上 n以下の整数)に おいてステップ 9, 10,分岐 1,分岐 2が実行される。制御期間 l—i (iは 2以上 n以下 の整数)においてステップ 11, 12, 13もしくはステップ 14, 15, 16が実行される。動 作期間 l—nにてタスクテーブルに残っている最後のタスクの処理を終了すると、分 岐 1の処理で「No」が選択され処理を終了し、プロセッサはアイドル期間 1となる。
[0075] 2回目の制御時間 Tの開始時刻になると、図 4のフローチャートに従って上記 1回目 の制御時間 Tと同様の処理が行われる。以後、 i回目の制御時間(iは 3以上の整数) にお 、ても同様の処理が行われる。
[0076] (破綻回避処理)
本発明のマルチタスク処理システム 100は、破綻回避手段を備えることが好ましい。 ここでは、タスクテーブルに登録された各タスクの総演算量 Hより、実際の処理に必 要な演算量の合計値の方が大きい場合、タスクテーブルに登録されたタスクの内、 1 つ以上のタスクが制御時間 Tのうちに処理を完了できなくなる現象を破綻現象と呼ぶ 。本発明のマルチタスク処理システム 100で処理が実行される各タスクの予測演算量 Hpや予測実行回数 Cpが正確でない場合、破綻現象が発生する可能性がある。破 綻現象の発生を回避するために本発明のマルチタスク処理システム 100に破綻回避 手段を設けることが望ましい。破綻回避手段としては、例えば下記の破綻回避手段 1 , 2, 3が考えられる。なお、以下の各破綻回避手段により、それに対応する各破綻回 避ステップが実行される。 [0077] (破綻回避手段 1)
破綻回避手段 1はタスクスケジュール処理手段 12内部に備えられ、ステップ 6, 11 にお 、て、現在のプロセッサの制御時間で実現しなければならな 、総演算量 Hの計 算を行う際に、数 1の代わりに下記数 10を用いる。
(数 10)
H= ( (∑Hp (i) ) +S X (∑Cp (i) ) ) X m+n
ただし、数 10において、 mは 1以上の実数、 nは 0以上の実数を表す。総演算量 H を m倍 (mは 1以上の実数)したり、総演算量 Hに 0より大きい実数 nを加算したりして、 総演算量 Hを増加させて余裕を持たせることにより、破綻現象を回避することができ る。
[0078] (破綻回避手段 2)
破綻回避手段 2は、タスク処理を簡略ィ匕する機能を備える。具体的には、所定間隔 でタスク処理に割り込み、制御時間 Tの残りの時間 (T t)で処理可能な演算量と、 残りの時間 (T t)で実行しなければならない残りの演算量の大小を比較する。処理 可能な演算量よりも残りの演算量の方が大きい場合には、タスク処理の簡略化を行う 。簡略化の方法としては、通常のタスク処理に代えて演算量の小さい代替処理に切り 替えても良いし、通常のタスク処理の一部を省略しても良い。これにより、通常のタス ク処理と比較して演算量を削減することができ、破綻現象を回避することが可能とな る。
[0079] 簡略ィ匕可能なタスクとしては、動画像符号化処理、 3Dグラフィックス処理、高画質 化フィルタリング処理などが考えられる。例えば、動画像符号化処理の場合は、未処 理のマクロブロックやブロックを強帘 IJ的〖こ無効マクロブロックや無効ブロックとして処理 することで演算量を削減でき、 3Dグラフィックス処理の場合は、背景のポリゴンォブジ ェクトに対するレンダリングを省略する処理を行うことで演算量を削減でき、高画質ィ匕 フィルタリング処理の場合は、未処理のフィルタリング演算を省略する処理を行うこと で演算量を削減できる。
[0080] (破綻回避手段 3)
以下に、破綻回避手段 3の例を記載する。この破綻回避手段 3は、動画像符号ィ匕 処理に際して、マクロブロックやブロックを無効ブロック化処理する機能を備える。動 画像符号化の規格(MPEG2, MPEG4, H. 264など)では、 1つのフレームは複数 のマクロブロックやブロックで構成されて 、る。動画像符号化はこのマクロブロックや ブロック単位で処理が行われる。破綻回避手段 3は、各マクロブロックやブロックの通 常の符号化処理に替え、強制的に無効マクロブロックや無効ブロックの処理を行うこ とにより、符号化に必要な演算量を大幅に削減する。破綻回避手段 3は、動画像符 号ィ匕処理のこの性質を利用して動画像符号ィ匕処理の演算量の削減を図り、この結果 短縮される動画像符号化処理の処理時間を他のタスク処理に割り当てることによって 制御時間 T内に各タスク処理を完了させる。
[0081] 以下に、破綻回避手段 3の動作を説明する。動画像符号化処理プログラムは数 11 および数 12で決定される時刻 Tiになると、未処理のマクロブロックを強制的に無効マ クロブロックとして処理を行う。
(数 11)
Ti=T-Tr
(数 12)
Tr= (MBiX Hs+ (∑Hw(i) ) +S X (∑ Cw(i) ) ) /Fpl
ここで、 Tはプロセッサの制御時間、 MBiは動画像符号化処理プログラムが実行状 態に移行したときの未処理のマクロブロックの数、 Hsは 1つのマクロブロックを強制的 に無効マクロブロックとして処理するために必要な演算量、 Hwはタスクテーブルのタ スク番号 iの最大演算量の値、 Cwはタスクテーブルのタスク番号 iの最大実行回数の 値、 Sは実行状態のタスクを切り替えるために必要な演算量、 Fplはプロセッサの動 作周波数、∑Hw(i)は Hw(2) +Hw(3) H hHw(n)、∑Cw(i)は∑Cw(l) +
∑Cw(2) H h∑ Cw (n)を表す。
[0082] (動画像符号ィ匕における予測演算量 Hpの算出方法)
以下に、動画像符号ィヒ処理のタスク A1における予測演算量 Hpの算出方法の一例 を詳細に説明する。以下、順次符号化されるフレームのうちこれから符号化される任 意の一のフレームを現フレーム(すなわち、あるフレームが符号ィ匕された時点を基準 とすると次に符号ィ匕されるフレームであり、換言すると、その時点において未だに符 号化処理されておらず未来に符号化処理が行われる予定であるフレーム)、現フレ ームより前に符号ィ匕された一のフレーム (過去に符号ィ匕されたフレーム)を前フレーム とし、現フレームの処理について説明する力 いずれのフレームについても同様の処 理が行われる。タスク 1処理手段は、入力フレームメモリにアクセスして現フレームの 入力画像データを取得し、現フレームの符号化処理に必要な予測演算量 Hpを計算 する。予測演算量 Hpの計算方法は様々な方法が考えられるが、たとえば、現フレー ムの符号ィ匕処理の演算量に影響を与える要素を一つ以上使用して計算することが 望ましい。要素としては、例えば、動画像符号ィ匕処理において、処理内容が動き補 償である場合は、動きの激しい映像では演算量が多ぐ一方、動きの少ない映像で は演算量が少な 、ことに注目して、現フレームと前フレームとの動き量として差分絶 対値和で計算される歪み値や、また、各々のフレームのアクティビティ量として隣接 画素差分絶対値和で計算される値や、マクロブロックマッチング回数や、有効ブロッ ク数や、有効係数の数や、符号化ビットレートや、発生ビット数や、前フレームの符号 化に実際に要した演算量や、算出された前フレームの予測演算量 Hpが挙げられる。 ここで、各要素それぞれについて、一つの要素の値のみ変化し、他の要素の値が変 化しな 、と仮定したときに、その一つの要素の値が大き!/、場合は小さ!/、場合に比較 して予測演算量 Hpが相対的に大きくなるようにし、その一つの要素の値が小さい場 合は大きい場合と比較して予測演算量 Hpが相対的に小さくなるようにする。また、現 フレームがフレーム内符号ィ匕である場合はフレーム間符号ィ匕である場合と比較して 予測演算量 Hpが相対的に小さぐフレーム間符号ィ匕である場合はフレーム内符号 化である場合と比較して予測演算量 Hpが相対的に大きくなるようにする。すなわち、 これらの複数の要素は現フレームの符号ィ匕処理のために必要な予測演算量 Hpに影 響を与える要素であるため、タスク A1処理手段が、これらの要素に応じて予測演算 量 Hp (サイクル)を増減するように計算を行うことにより、予測演算量 Hpが現実に符 号ィ匕処理を行ったときの演算量により近 、値となる。
たとえば、本実施の形態では、関数 Gを使用して計算し、入力フレームメモリに記憶 されて 、る現フレームの入力画像データと、局部復号フレームメモリに蓄積されて ヽ る復号ィ匕された前フレームの局部復号データとを比較して、入力画像の動きの大きさ の予測(計算)を行う。この前フレームの局部復号データは、現フレームよりも前に符 号ィ匕が行われる前フレームの符号ィ匕処理にぉ 、て、前フレームを符号化して形成し た前フレームの符号化データを、ローカルデコーダで復号化することにより形成され 、局部復号フレームメモリに記憶されている。動きの大きさの予測(計算)の一例とし て、例えば差分絶対値和を用いる。以下に、差分絶対値和 Zと予測演算量 Hpの求 め方を説明する。なお、前フレームの画像データとしては、符号ィ匕後にローカルデコ ーダにより復号化された局部復号データを使用しても良いが、入力された前フレーム の入力画像データをそのまま使用しても良 、。
[0084] 入力フレームメモリに蓄積された現フレームの入力画像データを X(i,j) (iは画像の水 平方向の座標、 jは垂直方向の座標)、後述する局部復号フレームメモリに蓄積され た前フレームの局部復号データを Y(i,j) (iは画像の水平方向の座標、 jは垂直方向の 座標)とすると、現フレームと前フレームとの動き量は、差分絶対値和 z=∑ I x(i,j) -YG,j) Iをすベての (またはサンプルした)画素に対して計算する。この差分絶対値 和の値を Zとする。一方、フレームのアクティビティ量においては、 X(i,j)において隣接 画素差分絶対値和 W、つまり、水平方向 Wh=∑ I X(i,j)-X(i-l,j) I、垂直方向 Wv
=∑ I x(i,j)-x(i,j-i) Iを計算することにより求められ、全ての(又はサンプルした) 入力画像に対して計算する。この隣接画素差分絶対値和の値 (すなわち各フレーム のアクティビティ量)を Wとする。
[0085] 差分絶対値和を Z、現フレームのアクティビティ量を Wa、前フレーム(過去のフレー ム)のアクティビティ量を Wb、前フレームの平均量子化ステップサイズ(量子化ステツ プサイズの平均値)を Qprev、前フレームのマクロブロックマッチング回数を M、前フレ ームの有効ブロック数を B、前フレームの有効係数の数を C、前フレームの符号化に 実際に要した処理量を S、現フレームの符号ィ匕ビットレートを BR、前フレームの量子 ィ匕ステップサイズの平均値とその一つ前のフレームの量子化ステップサイズの平均 値の差を A Qprev、前フレームの実際の発生ビット数を D,算出された前フレームの 必要演算量を Hp 'とおくと、これらの要素のうち一つ以上の要素を使用して、予測演 算量 Hpは、
Hp = G (Z, Wa, Wb, Qprev, M, B, C, S, BR, Δ Qprev, D, Hp' ) で計算される。ただし、 Gは Z, Wa, Wb, Qprev, M, B, C, S, BR, Δ Qprev, D, H P'のうち、一以上の要素から導き出される関数である。その一例としては、
Hp=j + a M+ j8 B+ y C+ δ Z+ ε AQprev
が挙げられるが、これに限られるわけではない。また、予測演算量 Hpの計算に使用 される要素として、現フレームがフレーム内符号ィ匕である力フレーム間符号ィ匕である かの種類 Iが使用される。現フレームがフレーム内符号ィ匕である場合の予測演算量 H pは小さい値と、フレーム間符号ィ匕である場合の予測演算量 Hpは大きい値となる。す なわち、タスク A1処理手段は、差分絶対値和 Zを使用するときは差分絶対値和 Z= ∑ I Xij-Yij Iを計算した後に、予測演算量 Hp = G (Z, Wa, Wb, Qprev, M, B, C, S, BR, Δ Qprev, D, Hp,)を計算する。
[0086] 以下、上記関数 Gについて説明する。前フレームと現フレームの間で画像の変化が 大きい (小さい)場合、すなわち差分絶対値和 Zが大きい (小さい)場合、現フレーム で実行されるマクロブロックマッチングの回数は大きく(小さく)なり、現フレームの動き 検出処理に必要な演算量 (実行されるマクロブロックマッチング回数に依存する)が 大きく(小さく)なる。また、現フレームのアクティビティ量 Waが大きい(小さい)場合、 現フレームは画像の高周波成分を多く(少なく)含むことを意味し、この場合、現フレ ームの符号化処理で発生する有効ブロックの数、有効係数の数は大きく(小さく)なり 、現フレームの IDCT処理に必要な演算量 (発生する有効ブロックの数に依存する) 、 IQ処理に必要な演算量 (発生する有効係数の数に依存する)、 VLC処理に必要な 演算量 (発生する有効係数の数に依存する)は大きく(小さく)なる。したがって,上記 関数 Gは Z, Waなどのパラメータが大きい (小さい)場合、 Hpを大きく(小さく)設定す るように構成する。
[0087] 動画像は連続するフレーム間での相関が大きいため、符号化処理で実行されるマ クロブロックマッチング回数、符号化処理で発生する有効ブロック数、有効係数の数 、符号化処理で必要となる演算量、アクティビティ量は、時間的に連続するフレーム 間で非常に近い値となる。したがって、 M, B, C, S, Wbが大きい(小さい)場合、現 フレームにおいてもマクロブロックマッチング回数、有効ブロック数、有効係数の数、 符号ィ匕処理に必要となる演算量、アクティビティ量が大きく(小さく)なる確率が高い。 さらに、必要演算量計算手段で算出される予測演算量が実際の符号化処理に要し た演算量に近い値となる場合、 S^Hp,となる。したがって、上記関数 Gは M, B, C, S, Wb, Hp'などのパラメータが大きい (小さい)場合、 Hpを大きく(小さく)設定する ように構成する。
[0088] ターゲットビットレートが大き ヽ(小さ 、)場合、量子化ステップサイズの値は小さく( 大きく)設定され、その結果、符号化処理で発生する有効ブロックの数、有効係数の 数は大きく(小さく)なる。また、前フレームの発生ビット数力ターゲットビットレートと比 較して大き 、(小さ 、)場合、現フレームの量子化ステップサイズの値は小さく(大きく )設定され、符号化処理で発生する有効ブロックの数,有効係数の数は小さく(大きく )なる。したがって、上記関数 Gは現フレームの符号ィ匕ビットレート BRが大きい(小さ い)場合、 Hpを大きく(小さく)設定するように、前フレームの実際の発生ビット数 Dが BRと比較して大きい (小さい)場合、 Hpを小さ 大きく)設定するように構成する。さ らに、前フレームの平均量子化ステップサイズ Qprevや前フレームの量子化ステップ サイズの平均値とその一つ前のフレームの量子化ステップサイズの平均値の差 Δ Qp revを考慮することで、上記関数 Gが算出する Hpが実際に現フレームを符号ィ匕する ために必要となる演算量に近い値とすることができる。
[0089] なお、動画像の符号化ビットレートや、現フレーム及び前フレームについてフレーム 内符号ィ匕であるかフレーム間符号ィ匕であるかの種類や、前フレームのアクティビティ の量や、算出された前フレームの予測演算量 Hpは要素が記憶される記憶領域であ る要素メモリに予め記憶されており、予測演算量 Hpの計算時にタスク A1処理手段に 読み込まれて使用される。前フレームの量子ィ匕ステップサイズの平均値、前フレーム のマクロブロックマッチング回数、前フレームの有効ブロック数、前フレームの有効係 数の数、前フレームの量子化ステップサイズの平均値とその一つ前のフレームの量 子化ステップサイズの平均値との差、及び前フレームの符号ィヒに実際に要した処理 量は前フレームの符号ィ匕処理が行われたときにフィードバックされる。予測演算量 H pの算出に際しては、これらの要素のうち一つの要素のみを使用しても良いし、複数 の要素を組み合わせて使用しても良 、。
[0090] (動画像復号ィ匕における予測演算量 Hpの算出方法) つぎに、動画像復号ィヒのタスクにおける予測演算量 Hpの算出方法を詳細に説明 する。タスク処理手段は、符号ィ匕データの一フレーム分 (すなわち、現フレームの符 号ィ匕データ 301)の発生情報量 (ビット数) FBを計算し、予測演算量 Hpを計算する。 予測演算量 Hpは、
Hp = G (FB, MVa, MVv, B, C, BR, Q, A Q, I, E, P)
で表される。ここで、 FBは現フレームもしくは前フレームの符号化データのビット数、 MVaは現フレームもしくは前フレームの動きベクトルの大きさの平均値、 MVvは現フ レームもしくは前フレームの動きベクトルの大きさの分散、 Bは現フレームもしくは前フ レームの有効ブロック数、 Cは現フレームもしくは前フレームの有効係数の数、 BRは 現フレームもしくは前フレームのビットレート、 Qは現フレームもしくは前フレームの量 子化ステップサイズの平均値、 Δ Qは現フレームと前フレームの量子化ステップサイ ズの平均値の差もしくは前フレームと前々フレームの量子化ステップサイズの平均値 の差、 Iは現フレーム力 ピクチャである力 Pピクチャである力 Bピクチャであるかの種類 、 Eは前フレームの復号化に実際に要した演算量、 Pは必要演算量計算手段により 算出された前フレームの必要演算量を表す。
[0091] 以下、上記関数 Gについて説明する。現フレームの復号化に必要な演算量は、現 フレームの復号化で実行される IDCT処理、 IQ処理、 VLD処理の実行回数に依存 する。また、 IDCT処理の実行回数は現フレームに含まれる有効ブロックの数に、 IQ 処理および VLD処理の実行回数は現フレームに含まれる有効係数の数に依存する 。すなわち、現フレームに含まれる有効ブロックの数や有効係数の数が大きい (小さ い)場合は、復号化処理に必要な演算量は大きく(小さく)なる。したがって、上記関 数 Gは、 B, Cが大きい (小さい)場合、 Hpを大きく(小さく)設定するように構成する。
[0092] 前フレームと現フレームの間で画像の変化が大き 、(小さ 、)場合、動きベクトルの 大きさの平均値 MVaや動きベクトルの大きさの分散 MVvが大きく(小さく)なる力 こ のとき現フレームの有効ブロックの数や有効係数の数は大きく(小さく)なり、符号ィ匕 処理に必要な演算量は大きく(小さく)なる。したがって、上記関数 Gは、 MVaや MV Vが大き ヽ (小さく)場合、 Hpを大きく(小さく)設定するように構成する。
[0093] 現フレームが Iピクチャの場合、復号化データを生成するときに予測画像と差分画 像の加算を行わなくてよいので、復号ィ匕処理に必要な演算量は小さくなる。したがつ て、上記関数 Gは、現フレームが Iピクチャの場合、 Hpを小さく設定するように構成す る。
[0094] 符号化データのビット数 FBやフレームレート BRが大き!/ヽ(小さ!/、)場合、有効ブロッ クの数や有効係数の数は大きく(小さく)なる。したがって、上記関数 Gは、 FBや BR が大きい (小さい)場合、 Hpを大きく(小さく)設定するように構成する。また、量子化 ステップサイズはビットレートの制御に際して値が変更されるため、例えば Qや Δ Qが 大きい (小さい)場合、 Hpを小さく(大きく)設定するなどのように、量子化ステップサイ ズの平均値 Qや量子化ステップサイズの平均値の差 Δ Qを考慮することで、上記関 数 Gが算出する Hpが実際に現フレームを復号ィ匕するために必要な演算量に近い値 とすることができる。
[0095] 動画像は連続するフレーム間での相関が大きいため、 MVa, MVv, B, C, BR, F B, Qは現フレームと前フレームとで近い値となる。したがって、これらのパラメータを 上記関数 Gで使用する場合は、現フレームでの値を用いても良いし、前フレームでの 値を用いても良い。現フレームでの値を用いる場合は、入力符号化データを受信し た後、このデータの一部を復号ィ匕し、値を取り出して用いる。このとき、現フレームで の値を用いることで予測演算量 Hpを実際の復号ィ匕処理に必要な演算量により近い 値にすることができるメリットがある。前フレームでの値を用いる場合、現フレームの入 力符号ィ匕データを受信する前に予測演算量 Hpを算出することができるため、入力符 号ィ匕データを受信しながら、受信済みのデータ分について復号ィ匕処理を同時に行う ことができるメリットがある。
[0096] また、動画像は連続するフレーム間での相関が大きいため、現フレームの復号化処 理に必要な演算量は前フレームの復号化処理で実際に必要であった演算量 Eと近 い値となる。さらに、必要演算量計算手段で算出される予測演算量が実際の復号ィ匕 処理に要した演算量に近い値となる場合、 P^Eとなる。したがって、現フレームの必 要演算量を Eや Pを FB, MVa, MVv, B, C, BR, Q, Δ Qなどのパラメータの大小 に応じて増減させた値とする等のように、 Eや Pを考慮することで、上記関数 Gが算出 する Hpが実際に現フレームを復号ィ匕するために必要な演算量に近!、値とすることが できる。
[0097] これらの要素のうち一つの要素のみを使用しても良いし、複数組み合わせて使用し ても良い。すなわち、これらの複数の要素は現フレームの復号ィ匕処理のために必要 な予測演算量 Hpに影響を与える要素であるため、タスク処理手段が、これらの要素 に応じて予測演算量 Hp (サイクル)を増減させるように計算を行うことにより、タスク処 理手段により計算される予測演算量 Hpが現実に復号化処理を行ったときの演算量 により近い値となる。
[0098] 以上、上記実施の形態では、動作周波数 F、及び、この動作周波数 Fに適する動作 電源電圧 Vddと基板バイアス電圧 Vbn, Vbpを制御する場合にっ 、て説明したが、 動作周波数 Fと動作電源電圧 Vddのみを制御したり、動作周波数 Fと基板バイアス電 圧 Vbn, Vbpのみを制御しても良い。また、基板バイアス電圧を制御する場合、制御 する基板バイアス電圧は pMOSの基板バイアス電圧 Vbpのみであってもよ!/、し、 nM OSの基板バイアス電圧 Vbnのみであってもよい。たとえば、動的プロセッサ制御手 段 2は、図 3 (b)に示すように、動作周波数テーブルメモリ 21に動作周波数と動作電 源電圧との組み合わせのテーブルを保持し、動作周波数発生手段 22と動作電源電 圧発生手段 23とを備えて動作周波数と動作電源電圧のみを制御しても良いし、また 、図 3 (c)に示すように動作周波数と基板バイアス電圧との組み合わせのテーブルを 保持し、動作周波数発生手段 22と基板バイアス電圧発生手段 24とを備えて動作周 波数と基板バイアス電圧のみを制御しても良 ヽ。動作周波数 Fにあわせて動作電源 電圧 Vddのみを制御するシステムの場合、図 1にお 、て基板バイアス電圧発生手段 24は不要である。このとき、プロセッサはトリプルゥエル構造の MOSで構成されてい なくても良い。同様に、動作周波数 Fにあわせて基板バイアス電圧のみを制御するシ ステムの場合、動作電源電圧発生手段 23は不要である。
[0099] (実施例 1)
第 1の実施の形態のマルチタスク処理システム 100についての実施例を図 7を用い て説明する。本実施例は、動画像符号化処理のタスク A1と、他のタスク A2とについ てマルチタスク処理を行う場合を例に説明する。
[0100] 〔初期化期間 1 1の処理〕 (ステップ 1)動画像符号化処理のタスクであるタスク Alと、他のタスク A2がタスクテ 一ブルに登録され、タスクテーブルの保存内容が図 8 (a)のようになる。(ステップ 2) タスク A1処理手段は制御時間受信手段 12cに対し、動画像符号ィ匕の 1フレームの 時間 Frme = 0. 1 (秒)を通知する。(ステップ 3)タスクスケジュール処理手段 12は、 プロセッサ 1の制御時間を 1フレームの時間 Frmeを採用して T=0. 1 (秒)と決定す る。
[0101] 〔初期化期間 1 2の処理〕
(ステップ 4)タスクスケジュール処理手段 12は、プロセッサの制御時間 Τ=0. 1 (秒 )を制御時間発信手段 12bを用いて、タスク A1処理手段とタスク A2処理手段に対し て通知する。(ステップ 5)プロセッサ 1の制御時間 Tの通知を受け取ったタスク A1処 理手段と、タスク A2処理手段は、それぞれ予測演算量 Hp,最大演算量 Hw,予測 実行回数 Cp,最大実行回数 Cw,優先度 Pをタスクスケジュール処理手段 12に対し 通知する。タスクスケジュール処理手段 12は、演算量受信手段 12fや実行回数受信 手段 12eにより受け取った予測演算量 Hp,最大演算量 Hw,予測実行回数 Cp,最 大実行回数 Cw、及び、優先度 Pをタスクテーブルに保存する。タスクテーブルの保 存内容は、図 8 (b)のようになる。
[0102] 〔制御期間 1 1の処理〕
(ステップ 6)タスクスケジュール処理手段 12は、数 1と数 2を用いて総演算量 Hと必 要動作周波数 Fpを計算する。ここで、動画像符号化処理システム 100は、実行状態 のタスクを切り替えるために必要な演算量 S = 1000であり、制御時間の開始から 0. 001 (秒)が経過しており t=0. 001であるとする。総演算量 Hと必要動作周波数 Fp は下記の通りとなる。
H = (15000000 + 5000000) + 1000 X (5 + 3)
= 20008000 (サイクル)
Fp = 20008000 (サイクル) Z(0. 1— 0. 001) (秒)
= 20282828 (サイクル Z秒)
(ステップ 7)プロセッサ 1は、動作周波数 Fが三段階 F (l) , F (2) , F (3)に可変となつ ている(図 9参照)。タスクスケジュール処理手段 12は、数 4に基づいてプロセッサ 1の 動作周波数 Fを F (3)と決定する。(ステップ 8)図 9は、動作周波数テーブルである。 動作周波数テーブルは、動作周波数 Fとそれに適する基板バイアス電圧 Vbn, Vbp の組み合わせが保持されており、消費電力が最小となる組み合わせとなっている。タ スクスケジュール処理手段 12はプロセッサ制御プログラムを実行状態に移行する。 動的プロセッサ制御手段 2は、プロセッサ制御プログラムに基づいて、動作周波数テ 一ブルを参照し、プロセッサ 1の動作周波数を F (3)に、 nMOS基板バイアス電圧を 動作周波数 F (3)に対応する Vbn (3)に、 pMOS基板バイアス電圧を動作周波数 F ( 3)に対応する Vbp (3)に制御する。
[0103] 〔動作期間 1 1の処理〕
(ステップ 9)タスクスケジュール処理手段 12は、優先度 Pの高いタスク A2処理手段 を実行状態に移行する。 (ステップ 10)タスク A2処理手段は、タスク A2の処理を実行 する。タスク A2処理手段は、処理終了時に、未処理の予測演算量 Hp'、最大演算 量 Hw'、予測実行回数 Cp'、最大実行回数 Cw'、優先度 P'を計算する。未処理の 最大実行回数 Cw'は 1以上であるため、タスク A2処理手段は、タスクテーブルを未 処理の各値 Hp,、 Hw'、 Cp,、 Cw,、 P,に書き換える。図 8 (c)に書き換え後のタスク テーブルを示す。(分岐 1)書き換え後のタスクテーブル(図 8 (c) )に、実行待ちのタ スク A1およびタスク A2が存在するため、分岐 2に進む。(分岐 2)タスクテーブル(図 8 (c) )に動画像符号化処理のタスク A1が存在するため、ステップ 11に進む。
[0104] 〔制御期間 1 2の処理〕
(ステップ 11)タスクスケジュール処理手段 12は、数 1と数 2を用いて、総演算量 Hと 必要動作周波数 Fpを計算する。ここで動画像符号ィ匕処理システム S1は S = 1000と 設定されており、制御時間の開始から 0. 01 (秒)が経過しており t=0. 01であるとす る。総演算量 Hと必要動作周波数 Fpは下記の通りとなる。
H = (15000000 + 2000000) + 1000 X (2+ 1)
= 17003000 (サイクル)
Fp = 17003000 (サイクル) Z(0. 1— 0. 01) (秒)
= 188922222 (サイクル Z秒)
(ステップ 12)タスクスケジュール処理手段 12は、数 4を用いて、三段階の動作周波 数(図 9参照)からプロセッサ 1の動作周波数を F (2)と決定する。(ステップ 13)タスク スケジュール処理手段 12は、プロセッサ制御プログラムを実行状態に移行する。動 的プロセッサ制御手段 2は、プロセッサ制御プログラムに基づいて、プロセッサ 1の動 作周波数を F (2)に、 nMOS基板バイアス電圧を F (2)に対応する Vbn(2)に、 pMO S基板バイアス電圧を F (2)に対応する Vbp (2)に制御する。
[0105] 〔動作期間 1 2の処理〕
(ステップ 9)タスクスケジュール処理手段 12は、図 8 (c)において優先度 Pの高いタ スク A1処理手段を実行状態に移行する。(ステップ 10)タスク A1処理手段は、タスク A1の処理を実行する。タスク A1処理手段は、タスク A1処理手段の処理終了時に、 未処理の予測演算量 Hp'などを計算し、タスクテーブルのタスク A1の各欄を図 8 (d) のように書き換える。(分岐 1)タスクテーブル図 8 (d)に実行待ちのタスク A1およびタ スク A2が存在するため、分岐 2に進む。(分岐 2)タスクテーブル図 8 (d)に動画像符 号化処理であるタスク A1が存在するため、ステップ 11に進む。
[0106] 〔制御期間 1 3の処理〕
(ステップ 11)タスクスケジュール処理手段 12は、数 1と数 2を用いて、総演算量 Hと 必要演算量 Fpとを計算する。ここでマルチタスク処理システム 100は、実行状態のタ スクを切り替えるために必要な演算量 S = 1000と設定されており、制御時間の開始 力 0. 06 (秒)が経過しており t=0. 06であるとする。総演算量 Hと必要動作周波数 Fpは、下記の通りである。
H = (5000000 + 2000000) + 1000 X (1 + 1)
= 7002000 (サイクル)
Fp = 7002000 (サイクル) Z(0. 1 -0. 06) (秒)
= 175050000 (サイクル Z秒)
(ステップ 12)タスクスケジュール処理手段 12は、数 4を用いて、三段階の動作周波 数(図 9参照)からプロセッサ 1の動作周波数を F (2)と決定する。(ステップ 13)タスク スケジュール処理手段 12は、プロセッサ制御プログラムを実行状態に移行する。動 的プロセッサ制御手段 2は、プロセッサ制御プログラムに基づいて、プロセッサ 1の動 作周波数を F (2)に、 nMOS基板バイアス電圧を F (2)に対応する Vbn(2)に、 pMO S基板バイアス電圧を F (2)に対応する Vbp (2)に制御する。
[0107] 〔動作期間 1 3の処理〕
(ステップ 9)タスクスケジュール処理手段 12は、図 5 (d)において優先度 Pの高いタ スク A2処理手段を実行状態に移行する。(ステップ 10)タスク A2処理手段は、タスク A2を実行する。タスク A2処理手段は、処理終了時に未処理の予測演算量 Hp 'など を再計算する。最大実行回数 Cw' =0となるため、図 8 (e)に示すように、タスクテー ブルのタスク番号 A2の各欄を削除する。(分岐 1)図 8 (e)に示すように、タスクテープ ルに実行待ちのタスク A1が存在するため、分岐 2に進む。(分岐 2)タスクテーブルに 動画像符号ィ匕処理であるタスク A1が存在するため、ステップ 11に進む。
[0108] 〔制御期間 1 4の処理〕
(ステップ 11)タスクスケジュール処理手段 12は、数 1と数 2を用いて、総演算量 Hと 必要周波数 Fpを計算する。ここで動画像符号ィ匕処理システム S1は S = 1000と設定 されており、制御時間の開始から 0. 065 (秒)が経過しており t=0. 065であるとする 。総演算量 Hと必要動作周波数 Fpは下記の通りとなる。
H = 5000000+ 1000 X 1
= 5001000 (サイクル)
Fp = 5001000 (サイクル) Z(0. 1 -0. 065) (秒)
= 142885714 (サイクル Z秒)
(ステップ 12)数 4を用いて、プロセッサ 1に用意されて 、る三段階の動作周波数 F ( 1)〜F (3)から、プロセッサ 1の動作周波数を F (2)と決定する。(ステップ 13)タスクス ケジュール処理手段 12はプロセッサ制御プログラムを実行状態に移行する。動的プ 口セッサ制御手段 2は、プロセッサ制御プログラムに基づいて、プロセッサ 1の動作周 波数を F (2)に、 nMOS基板バイアス電圧を F (2)に対応する Vbn(2)に、 pMOS基 板バイアス電圧を F (2)に対応する Vbp (2)に制御する。
[0109] 〔動作期間 1 4の処理〕
(ステップ 9)タスクスケジュール処理手段 12は、最後に残ったタスク A1を実行状態 に移行する。(ステップ 10)タスク A1処理手段は、タスク A1の処理を実行する。タスク A1処理手段は、処理終了時に未処理の予測演算量 Hp'などを再計算する。最大実 行回数 Cw, =0となるため、図 8 (f)に示すように、タスクテーブルのタスク番号 A1の 欄を削除する。(分岐 1)図 8 (f)に示すように、タスクテーブルに実行待ちのタスクが 存在しないため、タスクスケジュール処理手段 12は、制御時間 Tの内の残り時間に ついて、プロセッサをアイドル状態に設定する。
[0110] (実施例 2)
制御時間 T=0. 1 (秒)と設定され、図 4のフローチャートにおいて,ステップ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,分岐 1,分岐 2,ステップ 11, 12, 13, 9, 10,分岐 1,分 岐 2,ステップ 11, 12, 13, 9, 10, · · · ,分岐 1,分岐 2,ステップ 11, 12, 13, 9, 1
0と処理が進み、このときタスクテーブルが図 10 (a)に示される状態にあつたとする。 このとき、マルチタスク処理システム 100が破綻回避手段 2を備える場合は、以下のよ うに処理が実行される。
[0111] (分岐 1)図 10 (a)に示すように、タスクテーブルに実行待ちのタスク A1およびタスク A2が存在するため分岐 2に進む。 (分岐 2)動画像符号化処理のタスク A1が存在す るのでステップ 11に進む。 (ステップ 11)タスクスケジュール処理手段 12は数 1と数 2 を用いて、総演算量 Hと必要動作周波数 Fpを計算する。ここで、動画像符号化処理 システム S1は S = 1000と設定されており、制御時間の開始から 0. 07 (秒)が経過し ており t=0. 07であるとする。総演算量 Hと必要動作周波数 Fpは下記の通りとなる。
H = (5000000+ 1000000) + 1000 X (1 + 1)
= 6002000 (サイクル)
Fp = 6002000 (サイクル) Z(0. 1 -0. 07) (秒)
= 200066667 (サイクル Z秒)
[0112] (ステップ 12)タスクスケジュール処理手段 12は、数 4を用いて、三段階の動作周波 数(図 9参照)からプロセッサ 1の動作周波数を F (3)と決定する。
[0113] (ステップ 13)
タスクスケジュール処理手段 12はプロセッサ制御プログラムを実行状態に移行する 。動的プロセッサ制御手段 2は、プロセッサ制御プログラムに基づいてプロセッサ 1の 動作周波数を F (3)に、 nMOS基板バイアス電圧を F (3)に対応する Vbn(3)に、 p MOS基板バイアス電圧を F (3)に対応する Vbp (3)に制御する。 [0114] (ステップ 9)
タスクスケジュール処理手段 12は、優先度 Pの高いタスク Al処理手段を実行状態 に移行する。実行状態に移行されたタスク A1処理手段は、数 11,数 12を用いて、動 画像符号化処理の内容を、未処理のマクロブロックを強制的に無効マクロブロックと して処理を行う無効マクロブロック化処理に切り替える時刻 Tiを計算する。ステップ 9 にお 、て動画像符号ィ匕処理の実行が開始された時点で、未処理のマクロブロックの 個数が 30個であり(MBi= 30)、 1個のマクロブロックを無効マクロブロックとして処理 するために必要な演算量が 2000であり(Hs = 2000)、 S = 1000であるとする。時刻 Tiは、数 12,数 11を用いて下記の通り算出される。
Tr= (30 X 2000 + 2000000 + 1000 X 1) /200000000
=0. 01
Ti=0. 1 -0. 01
=0. 09
制御期間 Tの開始時刻からの経過時間が Tiとなった時点で、未処理のマクロブロッ クの個数が 10個であったとする。タスク A1処理手段は、経過時間が Tiとなった時点 で処理内容を無効ブロック化処理に切り替えるため、 10個のマクロブロックに対して 無効ブロック化処理が行われる。タスク A1処理手段は、最大実行回数 Cw' =0とな るため、タスクテーブルのタスク番号 A1の欄を削除して処理を終了する。
[0115] (分岐 1)図 10 (b)に示すように、タスクテーブルに実行待ちのタスク A2が存在する ため、分岐 2に進む。(分岐 2)タスクテーブルにタスク A1が含まれていないので、ス テツプ 14へ進む。
[0116] (ステップ 14)
タスクスケジュール処理手段 12は、最大演算量 Hwや最大実行回数 Cwを使用して 総演算量を算出する数 3、及び、数 2を用いて、総演算量 Hと必要動作周波数 Fpを 計算する。ここでマルチタスク処理システム 100は、 S = 1000と設定されており、制御 時間の開始から 0. 09 (秒)が経過しており t=0. 09であるとする。総演算量 Hと必要 動作周波数 Fpは、下記の通り算出される。
H = 2000000+ 1000 X 2 = 2002000 (サイクル)
Fp = 2002000 (サイクル) Z(0. 1 -0. 09) (秒)
= 200200000 (サイクル Z秒)
となる。 (ステップ 15)タスクスケジュール処理手段 12は、数 4を用いて、プロセッサ 1 に用意されている三段階の動作周波数 (図 9参照)のうち、動作周波数 Fを F (3)と決 定する。
[0117] (ステップ 16)タスクスケジュール処理手段 12は、プロセッサ制御プログラムを実行 状態に移行する。動的プロセッサ制御手段 2は、プロセッサ制御プログラム 1に基づ いて、プロセッサ 1の動作周波数を F (3)に、 nMOS基板バイアス電圧を F (3)に対応 する Vbn (3)に、 pMOS基板バイアス電圧を F (3)に対応する Vbp (3)に制御する。
[0118] (ステップ 9)タスクスケジュール処理手段 12は、タスク A2処理手段によりタスク A2 を実行状態に移行する。 (ステップ 10)タスク A2処理手段はタスク A2を実行する。こ のとき、制御時間 Tの終了時刻までに動作周波数 Fp2で実現される演算量は、タスク A2の処理完了に必要な最大演算量より大きいため、タスク A2処理手段は、制御時 間 Tの終了時刻に到達する前に処理を終了する。タスクテーブルを図 10 (c)のように 修正し、処理を終了する。
[0119] (分岐 1)図 10 (c)に示すように、タスクテーブルに実行待ちのタスクが存在しないた め、タスクスケジュール処理手段は制御時間 Tの内、残った時間、プロセッサをアイド ル状態に設定する。
[0120] (証明 1)
以下に、プロセッサの動作周波数を複数回変更しながら一のフレームを符号ィ匕する 従来技術と比較して、本願発明がよりサブスレツショルドリーク電流による消費電力を 低減できることを証明する。たとえば、プロセッサ 1の基板バイアス電圧及び動作周波 数は P段階に可変とし、任意の一のフレームの必要演算量を Ktとし、そのフレームの 処理に割り当てられる時間を Ttとする。図 11 (a)に示すように、動作周波数を Ftと設 定し、プロセッサ 1を動作周波数 Ftで動作させるときの基板バイアス電圧を Vbとし、 基板バイアス電圧 Vbに適するしき 、値電圧を Vtとし、時間 Ttで必要演算量 Ktの処 理が終了する場合を Caselとし、図 11 (b)に示すように、初期値の動作周波数を h * Ftと設定し、プロセッサを動作周波数 h* Ftで動作させるときの基板バイアス電圧を
Vblとし、基板バイアス電圧 Vblに適するしきい値電圧を Vtlとし、時間 T1が経過し た時点でプロセッサの動作周波数を h * FtZ2に変更し、プロセッサ 1を動作周波数 h * Ft/2で動作させるときの基板バイアス電圧を Vb2とし、基板バイアス電圧 Vb2 に適するしき 、値電圧を Vt2とし、時間 Tl +T2で必要演算量 Ktの処理が終了する 場合を Case2とし、各 Casel,Case2について前記任意の一のフレームを符号化する場 合を考えてみる。ただし、しきい値電圧について Vtl>Vt>Vt2であり、サブスレツシ ョルドリーク電流による消費電力は、
Pst=VDDXI X10"(-Vt/S)
o
I:定数、 VDD:動作電源電圧、 Vgs:ゲート一ソース間電圧、
0
Vt:しき!/ヽ値電圧、 S:サブスレツショルド swing
と表される。これを用いて Caselのサブスレツショルドリーク電流による消費電力 Pstl と Case2のサブスレツショルドリーク電流による消費電力 Pst2を計算すると、
Pstl=VDDXI X10"(-Vt/S) XTt
o
Pst2=VDDXI X10"(-Vtl/S) XT1+I X10"(-Vt2/S) XT2
o o
となり、
Pstl:Pst2=10"(-Vt/S) XTt: (10"(-Vtl/S) XTl + 10" (-Vtl/S) XT2)
となる。ここで、たとえば h= 1.5、 Ta= 1/3 XTt, Tb = 2/3XTt, Vtl = 3 X S, Vt2 = S, Vt=2XSとすると、
Pstl: Pst2=10"2: (10_ソ3 + 10"1 X 2/3)
=0.01:0.07
となり、 Pstl <Pst2となる。すなわち、決められた演算量を一定時間で処理する場 合、同一演算量 Ktにもかかわらず、 Caselの場合のように、その時間内で処理が終 了可能な最小の動作周波数により、その処理時間を通してプロセッサの基板バイァ ス電圧を一定に動作させるほうが、従来のように処理時間中に動作周波数を変更す る Case2の場合よりも低消費電力であることがわかる。したがって、一定の基板バイァ ス電圧及び動作周波数でプロセッサ 1を動作させながら一のフレームの符号ィ匕処理 を行う本発明によれば、ブロックごとに基板バイアス電圧及び動作周波数が決定され るため一のフレームの符号ィヒ中に何度も動作周波数が変更される従来技術と比較し て、低消費電力化が図られることがわかる。
(証明 2)
以下に、プロセッサの動作電源電圧及び動作周波数を複数回変更しながら一のフ レームを符号ィ匕する従来技術と比較して、本願発明がより低消費電力化を図ることが できることを証明する。たとえば、ある特定の時間 Ttにある特定の演算量 Ktを行う場 合、その特定の時間の間は、同一周波数で制御を行い、周波数 Ftを
Ft=Kt/Tt
に設定すると低消費電力を実現できる。たとえば、プロセッサ 1の動作電源電圧及び 動作周波数は P段階に可変とし、任意の一のフレームの必要演算量を Ktとし、その フレームの処理に割り当てられる時間を Ttとする。図 12(a)に示すように、動作周波 数を Ftと設定し、プロセッサ 1を動作周波数 Ftで動作させるときの動作電源電圧を V DDとし、時間 Ttで必要演算量 Ktの処理が終了する場合 (すなわち、動作周波数が 一定の場合)を Caselとし、図 12(b)に示すように、初期値の動作周波数を h* Ftと 設定し、プロセッサを動作周波数 h* Ftで動作させるときの動作電源電圧を VDD1と し、時間 T1が経過した時点でプロセッサの動作周波数を h*FtZ2に変更し、プロセ ッサ 1を動作周波数 h*FtZ2で動作させるときの動作電源電圧を VDD2とし、時間 Tl +T2で必要演算量 Ktの処理が終了する場合 (すなわち、動作周波数の切り替え が 1回行われる場合)を Case2とし、各 Casel ,Case2につ!/、て前記任意の一のフレー ムを符号化する場合を考えてみる。どちらも同一の演算量、すなわち Kt (サイクル)と なる。一方、消費電力は、
P= a XCXfXVDD2Xt
a:係数、 C:プロセッサのトランジスタ数
f:動作周波数、 VDD:動作電源電圧、 t:動作時間
で表される。これを用いて Caselの消費電力 Paと Case2の消費電力 Pbを計算する と、
Pa= a XCXFtXVDD2XTt Pb= a XCX (hXFt) XVDD12XT1+ a XCX (hXFt/2) XVDD22XT2 となり、
Pa:Pb=VDD2XTt: (hX VDD12XT1+ (h/2) XVDD22XT2) となる。ここでたとえば h=l. 5、Tl = lZ3XTt、Tb = 2Z3XTt、 VDD=1, VD Dl = l. 5, VDD2 = 0. 75とすると、
Pa:Pb = l2: (1. 5X1. 5ソ3+(1. 5/2) XO. 752X (2/3)
= 1:1.41
となり、 Pa<Pbとなる。すなわち、決められた演算量を一定時間で処理する場合、同 一演算量 Ktにもかかわらず、 Caselの場合のように、その時間内で処理が終了可能 な最小の動作周波数により、その処理時間を通してプロセッサを一定に動作させるほ うが、従来のように処理時間中に動作周波数を変更する CaSe2の場合よりも低消費電 力であることがわかる。したがって、一定の動作電源電圧及び動作周波数でプロセッ サ 1を動作させながら一のフレームの符号ィ匕処理を行う本発明によれば、ブロックごと に動作電源電圧及び動作周波数が決定されるため一のフレームの符号ィ匕中に何度 も動作電源電圧及び動作周波数が変更される従来技術と比較して、低消費電力化 が図られることがわ力る。
産業上の利用可能性
[0122] 上記実施の形態では、動画像符号化処理及び Z又は動画像復号化処理のタスク が含まれる場合に適するマルチタスク処理システム及びマルチタスク処理方法を例 に説明したが、本発明のマルチタスク処理システム及びマルチタスク処理方法は、そ の他のタスクを時分割で処理する場合にも適用可能である。
図面の簡単な説明
[0123] [図 1]本発明のマルチタスク処理システムの構成を示したブロック図。
[図 2]本発明のプロセッサの構成を示す図。
[図 3]動作周波数テーブルメモリの保存内容を表形式で表した図。
[図 4]本発明のマルチタスク処理システムの動作を説明するフローチャート。
[図 5]タスクテーブルメモリの保存内容を表形式で表した図。
[図 6]マルチタスク処理システムを動作させたときのタイミングチャート。 [図 7]マルチタスク処理システムについての実施例を説明するタイミングチャート。
[図 8]タスクテーブルの保存内容の一例を表形式で表した図。
[図 9]動作周波数テーブルの保存内容の一例を表形式で表した図。
[図 10]タスクテーブルの保存内容の一例を表形式で表した図。
[図 11]動作周波数を一定とすることによりサブスレツショルドリーク電流を低減できるこ とを説明する説明図。
[図 12]動作電源電圧及び動作周波数を一定とすることにより低消費電力化を図ること ができることを説明する説明図。
[図 13]動画像符号ィ匕処理システムについて従来の低消費電力化を行う手法を示した 図。
[図 14]フレーム単位に動画像符号ィ匕又は復号ィ匕の演算量が異なる状態を示す概念 図。
[図 15]n—チャネル MOSトランジスタ、 p—チャネル MOSトランジスタにおけるしきい 値電圧と基板バイアス電圧の関係の例を示す図。
[図 16]プロセッサにおける動作周波数としきい値電圧の関係の例を示す図。
[図 17]サブスレツショルドリーク電流とゲート電圧、しきい値電圧の関係の例を示す図
[図 18]プロセッサの動作周波数を一定とした場合の電流と動作電源電圧の関係を示 す図。
符号の説明
100 マルチタスク処理システム、 1 プロセッサ、 11 タスク処理手段、 12 タスクス ケジュール処理手段、 12a 制御残時間発信手段、 12b 制御時間発信手段、 12c 制御時間受信手段、 12d 動作周波数指示受信手段、 12e 実行回数受信手段、 1 2f 演算量受信手段、 12g プロセッサ制御信号発信手段、 13 タスクテーブルメモ リ、 2 動的プロセッサ制御手段、 21 動作周波数テーブルメモリ、 22 動作周波数 発生手段、 23 動作電源電圧発生手段、 24 基板バイアス電圧発生手段

Claims

請求の範囲
[1] 複数のタスクを時分割に処理するマルチタスク処理システムにお 、て、
制御時間 T内に完了すべきタスク処理に必要な総演算量 Hを算出し、当該総演算 量 Hを残時間 T一 t内に処理可能な動作周波数を決定し、当該動作周波数、及び、 当該動作周波数に適する動作電源電圧及び Z又は基板バイアス電圧でプロセッサ を動作させながらタスク処理を行うことを特徴とするマルチタスク処理システム。
[2] 所定のタイミングにおいて未処理のタスク処理の完了に必要な総演算量を算出し、 当該総演算量を前記総演算量 Hとして動作周波数を再決定することを特徴とする請 求項 1記載のマルチタスク処理システム。
[3] 前記総演算量 Hは、各タスクの演算量とタスク処理の切り替えに必要な演算量との 和であることを特徴とする請求項 1又は請求項 2に記載のマルチタスク処理システム。
[4] 前記総演算量 Hが実際に必要な総演算量よりも小さい場合に起きる破綻現象を回 避する少なくとも一つの破綻回避手段を備えることを特徴とする請求項 1乃至請求項
3のいずれ力 1項に記載のマルチタスク処理システム。
[5] 前記破綻回避手段として、前記総演算量 Hに余裕を持たせる第 1の破綻回避手段 を備えることを特徴とする請求項 4に記載のマルチタスク処理システム。
[6] 前記第 1の破綻回避手段は、前記総演算量 Hを m倍 (mは 1以上の実数)、及び Z 又は、総演算量 Hに 0より大きい実数 nを加算することを特徴とする請求項 5に記載の マルチタスク処理システム。
[7] 前記破綻回避手段として、所定のタイミングで割り込みを行 ヽ、タスク処理を簡略化 する第 2の破綻回避手段を備えることを特徴とする請求項 4記載のマルチタスク処理 システム。
[8] 前記破綻回避手段として、所定のタイミングで割り込みを行い、制御時間 T内に処 理されるタスクの中に動画像符号化処理のタスクが存在する場合は、当該ブロックに 対して無効ブロック化処理を行う第 3の破綻回避手段を備えることを特徴とする請求 項 4に記載のマルチタスク処理システム。
[9] 前記制御時間 T内に処理されるタスクには動画像符号ィ匕処理のタスク、及び Z又 は、動画像復号ィ匕処理のタスクが含まれていることを特徴とする請求項 1乃至請求項 8のいずれ力 1項に記載のマルチタスク処理システム。
[10] 動画像復号化処理のタスクを、動画像符号化処理のタスクよりも高優先度で処理す ることを特徴とする請求項 9記載のマルチタスク処理システム。
[11] 複数のタスクを時分割で処理するマルチタスク処理方法にお!、て、
制御時間 T内に完了すべきタスク処理に必要な総演算量 Hを算出し、当該総演算 量 Hを残時間 T一 t内に処理可能な動作周波数を決定し、当該動作周波数、及び、 当該動作周波数に適する動作電源電圧及び Z又は基板バイアス電圧でプロセッサ を動作させながらタスク処理を行うことを特徴とするマルチタスク処理方法。
[12] 所定のタイミングにおいて未処理のタスク処理の完了に必要な総演算量を算出し、 当該総演算量を前記総演算量 Hとして動作周波数を再決定することを特徴とする請 求項 11記載のマルチタスク処理方法。
[13] 前記総演算量 Hは、各タスクの演算量とタスク処理の切り替えに必要な演算量との 和であることを特徴とする請求項 1又は請求項 2に記載のマルチタスク処理方法。
[14] 前記総演算量 Hが実際に必要な総演算量よりも小さい場合に起きる破綻現象を回 避する少なくとも一つの破綻回避ステップを備えることを特徴とする請求項 11乃至請 求項 13のいずれ力 1項に記載のマルチタスク処理方法。
[15] 前記破綻回避ステップとして、前記総演算量 Hに余裕を持たせる第 1の破綻回避ス テツプを備えることを特徴とする請求項 14に記載のマルチタスク処理方法。
[16] 前記第 1の破綻回避ステップは、前記総演算量 Hを m倍 (mは 1以上の実数)、及び
Z又は、総演算量 Hに 0より大きい実数 nを加算することを特徴とする請求項 15に記 載のマルチタスク処理方法。
[17] 前記破綻回避ステップとして、所定のタイミングで割り込みを行 ヽ、タスク処理を簡 略ィ匕する第 2の破綻回避ステップを備えることを特徴とする請求項 14記載のマルチ タスク処理方法。
[18] 前記破綻回避ステップとして、所定のタイミングで割り込みを行 、、制御時間 T内に 処理されるタスクの中に動画像符号化処理のタスクが存在する場合は、当該ブロック に対して無効ブロック化処理を行う第 3の破綻回避ステップを備えることを特徴とする 請求項 14に記載のマルチタスク処理方法。
[19] 前記制御時間 T内に処理されるタスクには動画像符号ィ匕処理のタスク、及び Ζ又 は、動画像復号ィ匕処理のタスクが含まれていることを特徴とする請求項 11乃至請求 項 18のいずれか 1項に記載のマルチタスク処理方法。
[20] 動画像復号化処理のタスクを、動画像符号化処理のタスクよりも高優先度で処理す ることを特徴とする請求項 19記載のマルチタスク処理方法。
PCT/JP2005/006192 2004-03-30 2005-03-30 マルチタスク処理システム、及び、マルチタスク処理方法 WO2005096634A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004101363 2004-03-30
JP2004-101363 2004-03-30

Publications (1)

Publication Number Publication Date
WO2005096634A1 true WO2005096634A1 (ja) 2005-10-13

Family

ID=35064156

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/006192 WO2005096634A1 (ja) 2004-03-30 2005-03-30 マルチタスク処理システム、及び、マルチタスク処理方法

Country Status (1)

Country Link
WO (1) WO2005096634A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009159478A (ja) * 2007-12-27 2009-07-16 Toshiba Corp 動画像処理回路
CN101667110A (zh) * 2008-09-04 2010-03-10 三星Techwin株式会社 图像处理设备
CN103123579A (zh) * 2011-09-08 2013-05-29 英飞凌科技股份有限公司 具有附加微控制器的备用工作
CN103201702A (zh) * 2010-11-09 2013-07-10 国际商业机器公司 通过改变计算工作负载进行的随时间变化的能量源的能量捕捉
JP2014096158A (ja) * 2010-01-11 2014-05-22 Qualcomm Inc 中央処理ユニットをリアルタイムで監視するシステムおよび方法
WO2022244331A1 (ja) * 2021-05-20 2022-11-24 日立Astemo株式会社 演算装置、認識装置および制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324735A (ja) * 2002-02-26 2003-11-14 Kanazawa Univ Tlo Inc 動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003324735A (ja) * 2002-02-26 2003-11-14 Kanazawa Univ Tlo Inc 動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理プログラム

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
KAO J.T. ET AL: "A 175-mV Multiply-Accumulate Unit Using an Adaptive Supply Voltage and Body Bias Architecture.", IEEE., vol. 37, no. 11, November 2002 (2002-11-01), pages 1545 - 1554, XP001222652 *
KAWAGUCHI H. ET AL: "An LSI for Vdd-Hopping and MPEG4 System Based on the Chip.", IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS., May 2001 (2001-05-01), pages 918 - 921, XP010542007 *
KAWAKAMI K. ET AL: "Dogazo Fugoka Shori ni okeru Denryoku Saishoka no tameno Feedforward-gata Dosa Shuhasu/Den'atsu Kyocho Seogyo Algorithm. (A Low Power Video Compression Algorithm using Dynamic Voltage Control based on Feed Forward Analysis)", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS ICD2002-57, August 2002 (2002-08-01), pages 67 - 72, XP002991853 *
KAWAKAMI K. ET AL: "Feedforward-gata doteki Den'atsu Seigyo ni yoru MPEG4 Tei Shohi denryokuka Algorithm. (A Low Power/High Quality Video Compression Algorithm using Dynamic Voltage based on Feed-Forward Analysis.", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS. ICD 2003-30, May 2003 (2003-05-01), pages 25 - 30, XP002991854 *
LEE S. ET AL: "Run-time Voltage Hopping for Low-power Real-time Systems.", PROC DESIGN AUTOMATION CONFERENCE., June 2000 (2000-06-01), pages 806 - 809, XP002991852 *
MORITA Y. ET AL: "D-23 Feedforward Seigyo o Mochiita MPEG4 Tei Shohi Denryokuka Algorithm (2)-2 Denkai Dosa Den'atsu/Shuhasu Seigyoteki Yoji no Shohi Denryoku Sakugen Koka no Mitsumori.", INSTITUTE OF ELECTRICAL AND INFORMATION ENGINEERS., 22 September 2003 (2003-09-22), pages 192, XP002991855 *
NOSE K. ET AL: "VTH-Hopping Scheme to Reduce Subthreshold Leakage for Low-Power Processors.", IEEE JOURNAL OF SOLID STATE CIRCUITS., vol. 37, no. 3, March 2002 (2002-03-01), pages 413 - 419, XP001222672 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009159478A (ja) * 2007-12-27 2009-07-16 Toshiba Corp 動画像処理回路
CN101667110A (zh) * 2008-09-04 2010-03-10 三星Techwin株式会社 图像处理设备
JP2010063102A (ja) * 2008-09-04 2010-03-18 Samsung Techwin Co Ltd 映像処理装置
US8717373B2 (en) 2008-09-04 2014-05-06 Samsung Techwin Co., Ltd. Image processing apparatus
JP2014096158A (ja) * 2010-01-11 2014-05-22 Qualcomm Inc 中央処理ユニットをリアルタイムで監視するシステムおよび方法
CN103201702A (zh) * 2010-11-09 2013-07-10 国际商业机器公司 通过改变计算工作负载进行的随时间变化的能量源的能量捕捉
JP2014502389A (ja) * 2010-11-09 2014-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 計算作業負荷を変更することによる時間変動エネルギー源のエネルギー捕獲
CN103201702B (zh) * 2010-11-09 2016-04-20 国际商业机器公司 对计算工作负载进行管理的方法和系统
CN103123579A (zh) * 2011-09-08 2013-05-29 英飞凌科技股份有限公司 具有附加微控制器的备用工作
WO2022244331A1 (ja) * 2021-05-20 2022-11-24 日立Astemo株式会社 演算装置、認識装置および制御装置

Similar Documents

Publication Publication Date Title
US5949484A (en) Portable terminal apparatus for multimedia communication
US6028631A (en) Portable terminal apparatus for multimedia communication
WO2005096634A1 (ja) マルチタスク処理システム、及び、マルチタスク処理方法
US20200396450A1 (en) Intra/inter mode decision for predictive frame encoding
US20020101257A1 (en) Semiconductor device
JP4521508B2 (ja) デジタルvlsi回路およびそれを組み込んだ画像処理システム
CN102763136A (zh) 用于提供多线程视频解码的方法和设备
JP3772183B2 (ja) 動画像符号化処理システム、動画像復号化処理システム、動画像符号化処理プログラム、及び、動画像復号化処理プログラム
JPWO2007032123A1 (ja) マルチストリーム復号装置
US20030184271A1 (en) Eletronic circuit of low power consumption, and power consumption reducing method
US20060192698A1 (en) Encoding dynamic graphic content views
JP2005080123A (ja) 映像符号化装置、映像符号化制御方法及び映像符号化制御プログラム
JPWO2004093458A1 (ja) 動画像符号化又は復号化処理システム及び動画像符号化又は復号化処理方法
WO2006004065A1 (ja) 動画像符号化処理システム、動画像符号化又は復号化処理システム、動画像符号化処理方法、及び、動画像符号化又は復号化処理方法
EP1584069B1 (en) Video frame correlation for motion estimation
KR20050009956A (ko) 신호처리장치와 그 제어방법, 프로그램 및 기록매체
US7016414B2 (en) Method and system for skipping decoding of overlaid areas of video
WO2005062621A1 (ja) 動画像符号化又は復号化処理システム、及び、動画像符号化又は復号化処理方法
JP2003116136A (ja) 動画像復号装置
JP3772184B2 (ja) 動画像符号化処理システム、動画像復号化処理システム、動画像符号化処理方法、及び、動画像復号化処理方法
JPH1155668A (ja) 画像符号化装置
US8750381B2 (en) Motion estimation method and apparatus thereof
JPH09130807A (ja) 動画像符号化装置および動画像復号化装置
JP2008301212A (ja) 符号化装置並びに符号化方法
JP2001045493A (ja) 動画像符号化装置、動画像出力装置、及び記憶媒体

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP