JP2010140151A - Multi-processor and state control method of the same - Google Patents

Multi-processor and state control method of the same Download PDF

Info

Publication number
JP2010140151A
JP2010140151A JP2008314306A JP2008314306A JP2010140151A JP 2010140151 A JP2010140151 A JP 2010140151A JP 2008314306 A JP2008314306 A JP 2008314306A JP 2008314306 A JP2008314306 A JP 2008314306A JP 2010140151 A JP2010140151 A JP 2010140151A
Authority
JP
Japan
Prior art keywords
processor element
task
resource control
control unit
state
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2008314306A
Other languages
Japanese (ja)
Inventor
Tetsuro Motomura
哲朗 本村
Keisuke Toyama
圭介 十山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008314306A priority Critical patent/JP2010140151A/en
Publication of JP2010140151A publication Critical patent/JP2010140151A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

  • Power Sources (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a technology of reducing electric power while properly performing processing across a plurality of processors. <P>SOLUTION: The multi-processor has: local resource control sections 506, 509 on processor elements 401, 402; and a global resource control section 512. If a task on the processor element 402 ends ahead of schedule, the global resource control section 512 determines whether to stop it in response to a stop request from the local resource control section 509. As a result, the local resource control section 509 stops the processor element 402. If the task (MODL2) on the processor element 402 is required by the task (MODL1) on the other processor element 401, the local resource control section 506 issues a boot request, and the global resource control section 512 starts the processor element 402 and the task (MODL2) through the local resource control section 509. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、マルチプロセッサにおいて、タスクの進捗状況に応じて、クロック周波数や電圧値を動的に変更する制御方法に関する。特に、低電力化のために、クロックの周波数や電圧値を変更するだけでなく、あるプロセッサをスリープ状態、即ちクロックの停止状態、または電源遮断状態に変化させたときに、この状態変化によって全体のアプリケーションの動作を矛盾なく動作させるプロセッサ状態やタスクの制御方法に適用して有効な技術に関する。   The present invention relates to a control method for dynamically changing a clock frequency and a voltage value in accordance with task progress in a multiprocessor. In particular, in order to reduce power consumption, not only the clock frequency or voltage value is changed, but also when a certain processor is changed to the sleep state, that is, the clock stopped state or the power-off state, this state change The present invention relates to a technique that is effective when applied to a processor state and task control method that allows the operation of the application to operate without contradiction.

近年、組込みシステムでは、一つのプロセッサによる高速化は、微細化による周波数向上の限界と、周波数向上が引き起こす電力の向上により、限界を迎えつつある。この状況に対して、マルチプロセッサによる処理の並列化で高速化する手法が、各社で検討されている。   In recent years, in an embedded system, speeding up by a single processor has reached the limit due to the limit of frequency improvement by miniaturization and the improvement of power caused by the frequency improvement. In response to this situation, various companies are investigating a technique for speeding up the processing by parallel processing using a multiprocessor.

マルチプロセッサは、大型計算機やパソコン用に開発されてきているが、そのマルチプロセッサは、ソフトウェア処理(以降、タスクと呼ぶことにする)やメモリに対するプロセッサの役割が等価な対称型マルチプロセッサに関する技術である。これに対して、本発明で扱うマルチプロセッサは、組込みシステムを対象にして、適材適所にタスクを振り分ける非対称型マルチプロセッサに関する。メモリ空間も個別になるケースが多い。   Multiprocessors have been developed for large computers and personal computers, but the multiprocessor is a technology related to symmetric multiprocessors in which the role of the processor for software processing (hereinafter referred to as tasks) and memory is equivalent. is there. On the other hand, the multiprocessor handled in the present invention relates to an asymmetric multiprocessor that distributes tasks to the right place for an embedded system. In many cases, the memory space is also individual.

非対称型マルチプロセッサは、処理効率の良さが利点であるため、その利点をさらに強化するため、タスクの進捗状況に応じて周波数や電圧値を制御する手法が有効となる。例えば特許文献1は、マルチプロセッサ上ではないがこのような制御手法の一例である。   Since the asymmetric multiprocessor has an advantage of good processing efficiency, a method of controlling the frequency and voltage value according to the progress of the task is effective in order to further enhance the advantage. For example, Patent Document 1 is an example of such a control method although not on a multiprocessor.

ところで、低電力化に最も有効な制御は、プロセッサのクロックを停止したり電圧を遮断することである。   By the way, the most effective control for reducing the power consumption is to stop the processor clock or cut off the voltage.

このようなスリープ状態や停止状態は、プロセッサの異常状態の一つの状態であり、この異常状態をマルチプロセッサ全体の制御に通知する手法は、例えば特許文献2にも提示されている。この従来技術では、通知したあと、そのまま継続するか停止するかを判断するにすぎない。   Such a sleep state or stop state is one of the abnormal states of the processor, and a technique for notifying this abnormal state to the control of the entire multiprocessor is also disclosed in, for example, Patent Document 2. In this prior art, after notification, it is only determined whether to continue or stop.

また、特許文献3では、タスクのプロセッサの割付を動的に変更する方法に関するが、この従来技術では、プロセッサの状態を変更することは考慮していない。   Further, Patent Document 3 relates to a method for dynamically changing task processor assignment, but this conventional technique does not consider changing the processor state.

本発明で扱うプロセッサ状態の制御は、スリープか電源停止したあと、しばらく後にアプリケーションの進捗に応じて、そのプロセッサ上のタスクを実行する必要があるときには、再び起動をかける必要がある。本発明では、このようなプロセッサ状態の制御方法を提供するのが目的である。
特開2002−202893号公報 特開2005−346328号公報 特開2007−133723号公報
The control of the processor state handled in the present invention needs to be started again when it is necessary to execute a task on the processor according to the progress of the application after a while after sleep or power is stopped. An object of the present invention is to provide such a processor state control method.
JP 2002-202893 A JP 2005-346328 A JP 2007-133723 A

ところで、上記の従来技術では、プロセッサをスリープか電源停止したあと、しばらく後にアプリケーションの進捗に応じて、そのプロセッサに起動をかけるという制御は実施できない。この課題を本願では解決する。即ち、プロセッサがスリープ状態か停止状態となるため、他のプロセッサ上のタスクがこの事実を知らされないと、次の実行すべきタスクがスリープ状態のプロセッサにあるとき、プロセッサを起動せずにタスクを起動しようとするため、正しく実行されない。タスク起動の前にプロセッサの再起動が必要である。   By the way, in the above-described conventional technology, after the processor is put into sleep or powered off, it is impossible to perform control for starting the processor according to the progress of the application after a while. This problem is solved in the present application. That is, if a processor is in a sleep state or a stop state, and the task on the other processor is not informed of this fact, when the next task to be executed is in the sleep processor, the task is started without starting the processor. Because it tries to start, it does not execute correctly. It is necessary to restart the processor before starting the task.

また、プロセッサがスリープ状態に遷移してよいかどうかは、次にこのプロセッサがいつ必要となるかを常に把握しておく必要があり、この判断ができないと遷移はできない。   In addition, it is necessary to always know when the processor is required next to determine whether or not the processor can enter the sleep state. If this determination is not possible, the transition cannot be made.

上記のプロセッサ起動やスリープ状態の可否を判断するには、タスクが搭載されている全てのプロセッサの進捗を常に把握して、当初の時間の予定が狂っても、タスク同士の順序関係を保持するように、プロセッサ状態の変更可否の判断と変更を行う必要がある。   To determine whether or not the processor is activated or in sleep mode, keep track of the progress of all the processors on which the task is mounted, and maintain the order relationship between tasks even if the initial schedule is incorrect. Thus, it is necessary to determine and change whether or not the processor state can be changed.

そこで、本発明は、このような制御を提供するのが課題であり、その目的は、複数のプロセッサに渡る処理を正常に行いつつ低電力化を実現する技術を提供することにある。   Therefore, the present invention has an object to provide such control, and an object of the present invention is to provide a technique for realizing low power while normally performing processing over a plurality of processors.

本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。   Of the inventions disclosed in the present application, the outline of typical ones will be briefly described as follows.

すなわち、代表的なものの概要は、個々のプロセッサ(プロセッサエレメント)上で、当該プロセッサ上のタスクの進捗を把握し、タスクの進捗状況に応じて、当該プロセッサのSleep/電源停止の要求を起こすローカルリソース制御部と、全体管理用プロセッサ(タスク制御プロセッサエレメント)上で、他のマルチプロセッサ上の全てのタスクの進捗を把握し、個々のプロセッサからの要求に基づきプロセッサの状態制御を行うグローバルリソース制御部とを有する。   In other words, the outline of a representative one is that a local state that grasps the progress of a task on the processor on each processor (processor element) and issues a sleep / power stop request of the processor according to the progress of the task. Global resource control that monitors the progress of all tasks on other multiprocessors on the resource control unit and the overall management processor (task control processor element) and controls the processor state based on requests from individual processors Part.

この構成において、ローカルリソース制御部は、当該プロセッサ上の第1のタスクからの別の第2のタスクの起動要求に基づき、第2のタスクが別のプロセッサ上に搭載されているときに、グローバルリソース制御部に対して、第2のタスクの起動要求を起こす。そして、グローバルリソース制御部は、個々のプロセッサのローカルリソース制御部からのSleepまたは電源停止の要求と、ある第1のプロセッサのローカルリソース制御部からの別の第2のプロセッサ上の第2のタスクの起動要求を受付ける。さらに、前者の要求についてはSleep/電源停止の可否判断を行い、当該プロセッサに判断結果を返し、後者の要求については、第2のプロセッサがSleep/電源停止のときには、第2のプロセッサのローカルリソース制御部に再起動の要求と引き続き第2のタスクの起動要求を行う。   In this configuration, when the second task is mounted on another processor based on a request for starting another second task from the first task on the processor, the local resource control unit A request to start the second task is issued to the resource control unit. Then, the global resource control unit sends a sleep or power stop request from the local resource control unit of each processor, and a second task on another second processor from the local resource control unit of a certain first processor. An activation request is accepted. Further, for the former request, the sleep / power supply stoppage determination is performed and the determination result is returned to the processor. When the second processor is in the sleep / power supply stop state, the local resource of the second processor is returned. A request for restart and a request for starting the second task are sent to the control unit.

例えば、第1のタスクが割付けられた第1のプロセッサエレメント上の第1のローカルリソース制御部と、第2のタスクが割付けられた第2のプロセッサエレメント上の第2のローカルリソース制御部と、グローバルリソース制御部を有するマルチプロセッサにおいて、第2のプロセッサエレメント上のタスクが予定より早く終了したら、第2のプロセッサエレメントの停止要求を第2のローカルリソース制御部から受けて、グローバルリソース制御部は停止の可否を判断する。その結果を受け、第2のローカルリソース制御部は第2のプロセッサエレメントを停止する。第2のプロセッサエレメント上の第2のタスクを別の第1のプロセッサエレメント上のタスクが必要ならば、第1のプロセッサエレメントの第1のローカルリソース制御部が第2のタスクの起動要求をグローバルリソース制御部に発行し、グローバルリソース制御部は第2のプロセッサエレメントと第2のタスクの起動を第2のローカルリソース制御部を経由して行う。   For example, a first local resource control unit on a first processor element to which a first task is assigned; a second local resource control unit on a second processor element to which a second task is assigned; In a multiprocessor having a global resource control unit, when a task on the second processor element is completed earlier than scheduled, the global resource control unit receives a request to stop the second processor element from the second local resource control unit. Determine whether or not to stop. In response to the result, the second local resource control unit stops the second processor element. If the second task on the second processor element requires a task on another first processor element, the first local resource control unit of the first processor element globally issues the second task activation request. Issued to the resource control unit, the global resource control unit activates the second processor element and the second task via the second local resource control unit.

本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。   Among the inventions disclosed in the present application, effects obtained by typical ones will be briefly described as follows.

すなわち、代表的なものによって得られる効果は、複数のプロセッサに渡る処理を正常に行いつつ低電力化を実現する技術を提供することができる。   In other words, the effect obtained by the representative one can provide a technique for realizing low power while normally performing processing across a plurality of processors.

以下、本発明による代表的な実施の形態を図面に従って詳細に説明する。なお、実施の形態を説明するための全図において、同じ参照番号、記号は同じものもしくは類似のものを表わすものとし、その繰り返しの説明は省略する。   Hereinafter, representative embodiments according to the present invention will be described in detail with reference to the drawings. Note that in all the drawings for describing the embodiments, the same reference numerals and symbols represent the same or similar elements, and repeated description thereof is omitted.

以下において、実施の形態は二つ述べるが、ハードウェア構成やソフトウェア構成は両者で共通であるため、まず共通な部分を述べる。その後、第1の実施の形態としてLSI外部からの割込みがないケースでタスクフローとプロセッサをスリープ状態に移行する制御を述べ、その後、第2の実施の形態としてLSI外部からの割込みがあるケースのフローを述べる。   In the following, two embodiments will be described, but since the hardware configuration and the software configuration are common to both, the common portions will be described first. After that, the control of shifting the task flow and the processor to the sleep state when there is no interrupt from outside the LSI is described as the first embodiment, and then the case where there is an interrupt from outside the LSI as the second embodiment. State the flow.

<1 実施の形態に共通な部分>
実施の形態に共通な部分として、マルチプロセッサを利用するシステム構成、例題アプリケーション、およびシステムLSI構成とソフトウェアの搭載場所を、図2から図5に従い述べる。
<Parts common to 1 embodiment>
As a part common to the embodiments, a system configuration using a multiprocessor, an example application, a system LSI configuration, and a software installation location will be described with reference to FIGS.

図2は、マルチプロセッサを利用するシステムの構成図を示す。本システムは、ハードディスク(HDD)205から圧縮された音声データを、コネクタ204を通してシステムボード201上に入力し、その後、マルチプロセッサチップ(MPCHIP)200を通してデコードし、その後、オーディオコントローラ(AUDC)207でオーディオのディジタルデータを音声データに変換して、コネクタ208を通してヘッドフォン209などで音声を再生する。   FIG. 2 shows a configuration diagram of a system using a multiprocessor. In this system, audio data compressed from the hard disk (HDD) 205 is input to the system board 201 through the connector 204, then decoded through the multiprocessor chip (MPCHIP) 200, and then the audio controller (AUDC) 207. Audio digital data is converted into audio data, and the audio is reproduced by the headphones 209 through the connector 208.

システムボード201上には、他に、クロックを発信する水晶発信器(OSC)202、プログラムを格納するフラッシュメモリ(FLSH)203、および処理を実行するための中間データなどを格納するダイナミックランダムアクセスメモリ(DRAM)206が搭載する。   On the system board 201, in addition, a crystal oscillator (OSC) 202 for transmitting a clock, a flash memory (FLSH) 203 for storing a program, and a dynamic random access memory for storing intermediate data for executing processing, etc. (DRAM) 206 is mounted.

マルチプロセッサチップ(MPCHIP)200の端子を述べる。210はクロック入力端子(CL)、211は複数ビットのデータ端子(B1)、214は複数ビットのデータ端子(B2)、212はHDDとのHDDインタフェース端子(HIF)、213はDRAMとのDRAMインタフェース端子(DR)である。   The terminals of the multiprocessor chip (MPCHIP) 200 will be described. 210 is a clock input terminal (CL), 211 is a multi-bit data terminal (B1), 214 is a multi-bit data terminal (B2), 212 is an HDD interface terminal (HIF) with the HDD, and 213 is a DRAM interface with the DRAM. Terminal (DR).

図3は、実施の形態で例とするアプリケーション、オーディオデコーダのデータ処理フローを示す。   FIG. 3 shows a data processing flow of an application and an audio decoder as examples in the embodiment.

ハードディスク(HDD)205からフレームデータ(FD−In)310を入力し、ソフトモジュール(MODL1)308は、データのエラーチェックを行った後、フレームデータを周波数帯域ごとの複数のサブバンドというデータに分解する。その後、サブバンドごとに、サイドインフォメーションという情報を取得し、この情報を元に逆量子化を行う。その後、ソフトモジュール(MODL2)306で、サブバンドごとのデコード結果を合成し、フィルタバンクという処理を行う。最後に、フレームごとの処理結果(FD−Ou)309としてヘッドフォン209へ出力する。   The frame data (FD-In) 310 is input from the hard disk (HDD) 205, and the software module (MODL1) 308 performs an error check on the data, and then decomposes the frame data into data of a plurality of subbands for each frequency band. To do. Thereafter, information called side information is acquired for each subband, and inverse quantization is performed based on this information. Thereafter, the software module (MODL2) 306 synthesizes the decoding results for each subband and performs a process called a filter bank. Finally, the processing result (FD-Ou) 309 for each frame is output to the headphones 209.

図4は、アプリケーションを搭載するマルチプロセッサチップ(MPCHIP)200のブロック図を示す。   FIG. 4 shows a block diagram of a multiprocessor chip (MPCHIP) 200 on which an application is mounted.

マルチプロセッサチップ(MPCHIP)200において、アプリケーションの処理を司るプロセッサエレメントは、第1のプロセッサエレメント(CPU1)401と第2のプロセッサエレメント(CPU2)402である。全体リソース制御を司るためにタスク制御プロセッサエレメント(SCPU)404がある。その他、共有メモリ(CM)406、割込みコントローラ(IntC)408、タイマ(Tim)409、および、クロック入力端子(CL)210に接続されたクロックジェネレータ(CKGEN)403が必要となる。これらをつなぐ信号の入出力制御を行う内部処理用のバスアービタ(BUS_ARB)405があり、さらに、周辺入出力を司るための周辺バス414があり、周辺バス414からの入出力経路で、かつ周辺バス制御を行う周辺バスコントローラ(PBC)407がある。   In the multiprocessor chip (MPCHIP) 200, the processor elements that manage application processing are a first processor element (CPU 1) 401 and a second processor element (CPU 2) 402. There is a task control processor element (SCPU) 404 to manage overall resource control. In addition, a shared memory (CM) 406, an interrupt controller (IntC) 408, a timer (Tim) 409, and a clock generator (CKGEN) 403 connected to a clock input terminal (CL) 210 are required. There is a bus arbiter (BUS_ARB) 405 for internal processing that performs input / output control of signals that connect them, and there is a peripheral bus 414 for managing peripheral input / output, an input / output path from the peripheral bus 414, and a peripheral bus There is a peripheral bus controller (PBC) 407 that performs control.

周辺バス414に接続するモジュールとして、インタフェース端子(HIF)212を通じてHDDインタフェースを制御するHDDインタフェースコントローラ(HIFC)410、DRAMインタフェース端子(DR)213を通じてDRAMを制御するDRAMコントローラ(DRC)411、データ端子(B1)211を通じてデータ信号を制御するデータコントローラ(B1C)412とデータ端子(B2)214を通じてデータ信号を制御するデータコントローラ(B2C)413がある。   As modules connected to the peripheral bus 414, an HDD interface controller (HIFC) 410 that controls an HDD interface through an interface terminal (HIF) 212, a DRAM controller (DRC) 411 that controls a DRAM through a DRAM interface terminal (DR) 213, and a data terminal There are a data controller (B1C) 412 that controls data signals through (B1) 211 and a data controller (B2C) 413 that controls data signals through data terminals (B2) 214.

図4では、クロック周波数を変更したり、停止するための構成要素としてクロックジェネレータ(CKGEN)403は示したが、電力を制御するために電位供給を停止する回路は記載していないが、本発明で述べる制御方法は、スリープへの状態遷移でも電位供給停止への遷移でも本質的に変わらないために割愛した。   In FIG. 4, the clock generator (CKGEN) 403 is shown as a component for changing or stopping the clock frequency, but a circuit for stopping the potential supply for controlling the power is not shown, but the present invention is not described. The control method described in the above section is omitted because it is essentially the same regardless of the state transition to sleep or the transition to potential supply stop.

図5は、図3で示すアプリケーションと制御ソフトを、図4のマルチプロセッサに搭載する一例のブロック図を示す。図5では、入出力経路となる周辺バスコントローラ(PBC)407より以下は省略している。   FIG. 5 shows a block diagram of an example in which the application and control software shown in FIG. 3 are installed in the multiprocessor of FIG. In FIG. 5, the following is omitted from the peripheral bus controller (PBC) 407 serving as an input / output path.

図3のオーディオデコーダで、ソフトモジュール(MODL1)308は第1のプロセッサエレメント(CPU1)401に搭載し、ソフトモジュール(MODL2)306は第2のプロセッサエレメント(CPU2)402に搭載する。各々のプロセッサエレメントでは、それぞれに搭載されているタスクの進捗状況を観測し、進捗状況に応じてプロセッサエレメントのクロック周波数を変更したり、クロックを止めてsleep状態への変更と復帰を行うローカルリソース制御部として、第1のプロセッサエレメント401に対応のローカルリソース制御部(LRCL)506と、第2のプロセッサエレメント402に対応のローカルリソース制御部(LRCL)509がある。Sleep状態とは、具体的にはクロックの供給が停止された状態であり、クロックの制御を行うのがクロックジェネレータ(CKGEN)403である。   In the audio decoder of FIG. 3, the soft module (MODL1) 308 is mounted on the first processor element (CPU1) 401, and the soft module (MODL2) 306 is mounted on the second processor element (CPU2) 402. Each processor element observes the progress status of the task mounted on each processor element, and changes the clock frequency of the processor element according to the progress status, or stops the clock to change to and return to the sleep state. As the control unit, there is a local resource control unit (LRCL) 506 corresponding to the first processor element 401 and a local resource control unit (LRCL) 509 corresponding to the second processor element 402. Specifically, the sleep state is a state in which the supply of the clock is stopped, and the clock generator (CKGEN) 403 controls the clock.

Sleep状態に遷移するための他の構成要素として、プロセッサ状態レジスタ(PReg)501、タスク制御プロセッサエレメント(SCPU)404上で、ローカルリソース制御部(LRCL)506と509からのSleep状態への遷移要求を受付け、遷移可否を判断するグローバルリソース制御部(CRCL)512がある。また、ローカルリソース制御部やオーディオデコーダのために、直接ハードリソースの管理を行うリアルタイムOS(RTOS)507,510および513も構成要素である。その他、図3で示していない構成要素として、ローカルメモリ(LM)502などがある。   As other components for transitioning to the sleep state, on the processor state register (PReg) 501 and the task control processor element (SCPU) 404, the transition request to the sleep state from the local resource control units (LRCL) 506 and 509 And a global resource control unit (CRCL) 512 that determines whether or not transition is possible. Real-time OSs (RTOS) 507, 510 and 513 that directly manage hard resources for the local resource control unit and the audio decoder are also constituent elements. Other constituent elements not shown in FIG. 3 include a local memory (LM) 502 and the like.

<2 第1の実施の形態:プロセッサをスリープ状態にする制御>
第1の実施の形態では、プロセッサをスリープ状態にする制御を述べるが、まず準備として第2.1節で、複数のプロセッサによるタスク処理のフローを図6に従い述べ、第2.2節でSleep状態が必要となる例としてタスクが予算時間より早く終了したときのフローを図7に従い述べる。最後に第2.3節で、プロセッサをスリープ状態に遷移し元の状態に復帰するフローを図1と図8に従い述べる。
<2 First Embodiment: Control for Setting Processor to Sleep>
In the first embodiment, the control to put the processor in the sleep state will be described. First, as preparation, the flow of task processing by a plurality of processors will be described according to FIG. 6 in Section 2.1, and the sleep in Section 2.2. As an example in which the state is required, a flow when the task is completed earlier than the budget time will be described with reference to FIG. Finally, in Section 2.3, the flow for changing the processor to the sleep state and returning to the original state will be described with reference to FIGS.

<<2.1 ソフトウェアパイプラインによるタスク処理フロー:図6>>
図6では、図3のオーディオデコーダを、タスクを処理単位としてソフトウェアパイプラインにより実行する処理をガントチャートで示している。縦方向にはリソースを列挙し、横方向は時間軸を示す。
<< 2.1 Task Processing Flow by Software Pipeline: Fig. 6 >>
In FIG. 6, a process for executing the audio decoder of FIG. 3 by a software pipeline with a task as a processing unit is shown in a Gantt chart. Resources are listed in the vertical direction, and the time axis is shown in the horizontal direction.

図6では、図3に示したフローに従い、ハードディスク(HDD)205からフレームデータ(FD−In)310を入力し、第1のタスクであるソフトモジュール(MODL1)308を第1のプロセッサエレメント(CPU1)401で処理し、第2のタスクであるソフトモジュール(MODL2)306を第2のプロセッサエレメント(CPU2)402で処理し、最後にフレームごとの処理結果(FD−Ou)309をヘッドフォン(HP)209へ出力する。   In FIG. 6, in accordance with the flow shown in FIG. 3, frame data (FD-In) 310 is input from the hard disk (HDD) 205, and the software module (MODL1) 308 as the first task is transferred to the first processor element (CPU1). ) 401, the second module soft module (MODL2) 306 is processed by the second processor element (CPU2) 402, and finally the processing result (FD-Ou) 309 for each frame is supplied to the headphones (HP). To 209.

これらのフローをパイプライン的に実行する。即ち、一つ目のフレームデータ(FD−In1)3101について、ソフトモジュール(MODL1)3081の処理がプロセッサエレメント(CPU1)401で終了すると、601で示すように、その結果をソフトモジュール(MODL2)3061としてプロセッサエレメント(CPU2)402で処理するのと並行して、二つ目のフレームデータ(FD−In2)3102について、ソフトモジュール(MODL1)3082の処理をプロセッサエレメント(CPU1)401で処理する。即ち、マルチプロセッサによる並行動作を行う。   These flows are executed in a pipeline manner. That is, for the first frame data (FD-In1) 3101, when the processing of the software module (MODL 1) 3081 ends in the processor element (CPU 1) 401, the result is displayed as the software module (MODL 2) 3061 as indicated by 601. In parallel with the processing by the processor element (CPU2) 402, the processing of the soft module (MODL1) 3082 is processed by the processor element (CPU1) 401 for the second frame data (FD-In2) 3102. That is, a parallel operation by a multiprocessor is performed.

同様にして、一つ目のフレームデータについて、ソフトモジュール(MODL2)3061の処理がプロセッサエレメント(CPU2)402で終了して、その処理結果(FD−Ou1)3091として出力するのと並行して、二つ目のフレームデータについてソフトモジュール(MODL2)3062の処理をプロセッサエレメント(CPU2)402で実行する。これも並行動作である。   Similarly, for the first frame data, the processing of the software module (MODL2) 3061 ends in the processor element (CPU2) 402 and is output as the processing result (FD-Ou1) 3091. The processor element (CPU2) 402 executes the processing of the software module (MODL2) 3062 for the second frame data. This is also a parallel operation.

最後に、二つ目のフレームデータについて、プロセッサエレメント(CPU2)402上でソフトモジュール(MODL2)3062の処理が終了して、その処理結果(FD−Ou2)3092として出力する。   Finally, the processing of the software module (MODL2) 3062 is completed on the processor element (CPU2) 402 for the second frame data, and the result is output as the processing result (FD-Ou2) 3092.

<<2.2 タスクが予定より早く終了したときの処理フロー:図7>>
図7は、図6の並行動作している601において、ソフトモジュール(MODL2)3061が予定時間より早く終了したときの一例を示す。このとき、時間(IntT)701の時間分だけ、プロセッサエレメント(CPU2)402は、702で示す区間は何もすることがなく、次の処理を待っている状態となる。
<< 2.2 Processing flow when task finishes earlier than scheduled: Fig. 7 >>
FIG. 7 shows an example when the soft module (MODL2) 3061 ends earlier than the scheduled time in the parallel operation 601 of FIG. At this time, the processor element (CPU 2) 402 does not do anything in the section indicated by 702 for the time (IntT) 701 and waits for the next processing.

この区間702に対して、プロセッサエレメント(CPU2)402をSleep状態にして電力を低減する。Sleep状態にした後、また再び通常状態に戻すため、その制御に工夫が必要となる。この制御を以下に述べる。   For this section 702, the processor element (CPU2) 402 is set in the sleep state to reduce power. In order to return to the normal state again after entering the Sleep state, it is necessary to devise the control. This control will be described below.

<<2.3 プロセッサをスリープ状態に遷移するフロー:図1と図8>>
図1と図8に従い、Sleep状態に遷移し、その後、Sleep状態から通常状態へ復帰するフローを述べる。
<< 2.3 Flow of Transitioning Processor to Sleep State: FIGS. 1 and 8 >>
A flow for transitioning to the sleep state and then returning to the normal state from the sleep state will be described with reference to FIGS.

まず、図1に従い、図7のソフトモジュール(MODL2)3061で予定より早くタスクが終了したときからの処理の流れを以下で述べる。   First, according to FIG. 1, the flow of processing after the task is completed earlier than planned by the software module (MODL2) 3061 in FIG. 7 will be described below.

ソフトモジュール(MODL2)3061は、タスクが終了する間際のチェックポイント(CP1)4020を通過したことを、ローカルリソース制御部(LRCL)509に通知する。この通知を受けて、ローカルリソース制御部(LRCL)509では、進捗把握の処理4021で、予定より早い時間でタスクが終了しつつあることを認識する。そこで、低電力化のためにプロセッサエレメント(CPU2)402をSleep状態に遷移することを処理4022にてタスク制御プロセッサエレメント(SCPU)404に要求する。   The software module (MODL2) 3061 notifies the local resource control unit (LRCL) 509 that it has passed the checkpoint (CP1) 4020 just before the task is finished. In response to this notification, the local resource control unit (LRCL) 509 recognizes that the task is being completed at a time earlier than scheduled in the progress grasping process 4021. Therefore, in step 4022, the task control processor element (SCPU) 404 is requested to shift the processor element (CPU2) 402 to the sleep state in order to reduce power consumption.

このSleep要求を受けて、タスク制御プロセッサエレメント(SCPU)404上のグローバルリソース制御部(CRCL)512は、処理102にてSleep可否の判断を行い、Sleep可能ならば可能である旨を処理4028で返す。それを受けて、ローカルリソース制御部(LRCL)509は、処理4024でプロセッサエレメント(CPU2)402をSleep状態4025に遷移し、共有メモリ(CM)406上の各プロセッサエレメントの状態変数(CPU_S)101について、プロセッサエレメント(CPU2)402の状態変数(CPU2_S)1010の値をSleep状態を示す値に書き換える。   In response to the sleep request, the global resource control unit (CRCL) 512 on the task control processor element (SCPU) 404 determines whether or not the sleep is possible in the process 102. return. In response to this, the local resource control unit (LRCL) 509 changes the processor element (CPU 2) 402 to the sleep state 4025 in a process 4024, and the state variable (CPU_S) 101 of each processor element on the shared memory (CM) 406. , The value of the state variable (CPU2_S) 1010 of the processor element (CPU2) 402 is rewritten to a value indicating the sleep state.

その後、図7で2番目のフレームに対してプロセッサエレメント(CPU1)401上のソフトモジュール(MODL1)3082が終了に近づくと、プロセッサエレメント(CPU2)402は通常状態に復帰して、ソフトモジュール(MODL2)3062を実行する必要がある。   After that, when the software module (MODL1) 3082 on the processor element (CPU1) 401 approaches the end for the second frame in FIG. 7, the processor element (CPU2) 402 returns to the normal state, and the software module (MODL2) ) 3062 needs to be executed.

このため、図1において、プロセッサエレメント(CPU1)401上のソフトモジュール(MODL1)3082がチェックポイント(CPa)4010を通過したことを、ローカルリソース制御部(LRCL)506に通知すると、ローカルリソース制御部506は処理4011にて進捗の把握を行い、ソフトモジュール(MODL1)3082の残り時間から判断して次の処理であるソフトモジュール(MODL2)3062を起動する必要があると判断すると、処理103により起動要求をタスク制御プロセッサエレメント(SCPU)404に対して行う。   Therefore, in FIG. 1, when the local resource control unit (LRCL) 506 is notified that the software module (MODL1) 3082 on the processor element (CPU1) 401 has passed the checkpoint (CPa) 4010, the local resource control unit In step 4011, the progress is grasped in step 4011, and if it is determined from the remaining time of the software module (MODL1) 3082 that it is necessary to start the next process, the software module (MODL2) 3062, the step 103 starts. A request is made to the task control processor element (SCPU) 404.

この起動要求に対して、タスク制御プロセッサエレメント(SCPU)404上のグローバルリソース制御部(CRCL)512は、ソフトモジュール(MODL2)3062を実行するプロセッサエレメント(CPU2)402の状態変数(CPU2_S)1010の値から、プロセッサエレメント(CPU2)402を起動する必要があるかどうかを処理104にて判断する。この場合、Sleep状態であるため起動が必要であり、処理4029にて起動を要求する。   In response to this activation request, the global resource control unit (CRCL) 512 on the task control processor element (SCPU) 404 receives the state variable (CPU2_S) 1010 of the processor element (CPU2) 402 that executes the software module (MODL2) 3062. Whether or not it is necessary to start up the processor element (CPU 2) 402 is determined in process 104 based on the value. In this case, since it is in the sleep state, activation is necessary, and activation is requested in processing 4029.

このプロセッサエレメント(CPU2)402の起動要求を受けて、処理4026でプロセッサエレメント(CPU2)402が通常状態に復帰し、ローカルリソース制御部(LRCL)509が起動して、処理4027にてソフトモジュール(MODL2)3062を起動してRunning状態となり、ソフトモジュール(MODL1)3082からのデータを待ち受ける。   In response to the activation request of the processor element (CPU2) 402, the processor element (CPU2) 402 returns to the normal state in processing 4026, and the local resource control unit (LRCL) 509 is activated. (MODL2) 3062 is activated to enter the Running state, and waits for data from the software module (MODL1) 3082.

次に、図1におけるSleep可否の判断の処理102のフローを、図8に従い以下に述べる。   Next, the flow of the processing 102 for determining whether or not the sleep is possible in FIG. 1 will be described with reference to FIG.

ステップ802において、Sleep対象プロセッサ(図1ではプロセッサエレメント(CPU2)402)が、外部割込みを受付けないか、または当面受付け不可に設定できるかを判断し、ここでは外部割込みを当面受付け不可に設定する。なお、外部割込みを受付ける(第2の実施の形態で後述)には、タスクのスケジューリングへの影響やタスクのデッドラインを考慮する必要があり、この判断はグローバルリソース制御部(CRCL)512で行う。これがOK(Y)ならばステップ803へ、NG(N)ならばSleepは不可となる(ステップ805)。   In step 802, it is determined whether the sleep target processor (processor element (CPU2) 402 in FIG. 1) does not accept an external interrupt or can be set to be unacceptable for the time being. Here, the external interrupt is set to be unacceptable for the time being. . In order to accept an external interrupt (described later in the second embodiment), it is necessary to consider the influence on task scheduling and the task deadline, and this determination is made by the global resource control unit (CRCL) 512. . If this is OK (Y), go to Step 803, and if it is NG (N), Sleep is not possible (Step 805).

ステップ803において、Sleep対象プロセッサが次に必要となるまでの時間IntTを、ステップ807のタスクのガントチャート(この例では図7)から判断して、IntTがSleepと復帰の処置時間R_IntT以上かどうかを判断する。即ち、Sleepを実現するのに十分な時間があるかどうかの判断である。これがOK(Y)ならばSleepは可能(ステップ804)となり、NG(N)ならばSleepは不可となる(ステップ805)。   In step 803, the time until the sleep target processor is next required is determined from the task Gantt chart of this task in step 807 (in this example, FIG. 7), and whether IntT is equal to or longer than the sleep and return treatment time R_IntT. Judging. That is, it is a determination as to whether or not there is sufficient time to realize Sleep. If this is OK (Y), Sleep is possible (step 804), and if NG (N), Sleep is not possible (step 805).

ステップ806において、ステップ805までで決定されたSleep可否の判断結果を、図1の処理4028にて対象プロセッサに返信する。   In step 806, the sleep determination result determined in steps up to step 805 is returned to the target processor in process 4028 of FIG.

<<第1の実施の形態の効果>>
第1の実施の形態によれば、ローカルリソース制御部(LRCL)506,509、グローバルリソース制御部(CRCL)512などを有し、グローバルリソース制御部512は、ローカルリソース制御部506と509からのプロセッサエレメントの停止状態への変更の要求を受け、この停止状態への変更の可否を判断して、要求のあったローカルリソース制御部へ状態変更の可否を指示して、プロセッサエレメントの状態を制御することができる。
<< Effects of First Embodiment >>
According to the first embodiment, the local resource control units (LRCL) 506 and 509, the global resource control unit (CRCL) 512, and the like are provided. The global resource control unit 512 includes the local resource control units 506 and 509. Receives a request to change the processor element to the stopped state, determines whether the change to the stopped state is possible, instructs the local resource control unit that requested the state to change, and controls the state of the processor element can do.

例えば、ローカルリソース制御部(LRCL)506が第1のタスクを実行する第1のプロセッサエレメント(CPU1)401を制御し、ローカルリソース制御部(LRCL)509が第2のタスクを実行する第2のプロセッサエレメント(CPU2)402を制御する場合に、第2のタスクを実行するプロセッサエレメント(CPU2)402を停止状態にした後、第1のタスクの次に実行する第2のタスクを再度起動する必要性があることをローカルリソース制御部506の要求に基づき判断して、この判断に基づきプロセッサエレメント(CPU2)402に対して再起動要求を出して再起動し、その後、第2のタスクをランニング状態に復帰することができる。また、第1のタスクを実行する第1のプロセッサエレメント(CPU1)401を停止状態から再起動する場合も同様に、第1のタスクをランニング状態に復帰することができる。   For example, the local resource control unit (LRCL) 506 controls the first processor element (CPU1) 401 that executes the first task, and the local resource control unit (LRCL) 509 executes the second task. When controlling the processor element (CPU2) 402, it is necessary to restart the second task to be executed next to the first task after the processor element (CPU2) 402 that executes the second task is stopped. Is determined based on a request from the local resource control unit 506, a restart request is issued to the processor element (CPU 2) 402 based on this determination, and then the second task is set to the running state. Can return to. Similarly, when the first processor element (CPU1) 401 that executes the first task is restarted from the stopped state, the first task can be returned to the running state.

従って、低電力化のために、あるプロセッサエレメントをSleepまたは電源停止させても、他のプロセッサエレメント上のタスクと連携して動作させ、マルチプロセッサ全体でアプリケーションを矛盾なく動作させることができる。即ち、アプリケーションを複数のプロセッサエレメントで処理する状況で、あるタスクが予定より早く終了したとき、アプリケーションの正常動作を阻害せずに動作させることができる。この結果、複数のプロセッサに渡る処理を正常に行いつつ低電力化を実現することが可能となる。   Therefore, in order to reduce power consumption, even if a certain processor element is sleeped or the power is stopped, it can be operated in cooperation with a task on another processor element, and an application can be operated without any contradiction in the entire multiprocessor. That is, in a situation where an application is processed by a plurality of processor elements, when a certain task is completed earlier than scheduled, the application can be operated without hindering normal operation. As a result, it is possible to realize low power consumption while normally performing processing across a plurality of processors.

また、外部割込みを受付けず、当面受付け不可に設定する場合には、プロセッサエレメント上のタスクが次に実行する必要がある時刻までの時間間隔が、プロセッサエレメントを停止状態にしてその後復帰するのに要するトータル時間よりも長いときに停止状態への変更を可能と判断することで、タスクの連携とアプリケーション全体の動作は矛盾なく実行することが可能となる。   In addition, when the external interrupt is not accepted and it is set to be unacceptable for the time being, the time interval until the time when the task on the processor element needs to be executed next is the time when the processor element is stopped and then returned. By determining that it is possible to change to the stopped state when the total time required is longer, it is possible to execute task cooperation and overall operation of the application without contradiction.

<3 第2の実施の形態:外部割込みが入ったときのタスクスケジューリング>
外部割込みはSleep要求と同じく、当初のタスクスケジューリングに変更を要求する実行前には予測のできないダイナミックな要求である。
<3 Second Embodiment: Task Scheduling when an External Interrupt is Entered>
An external interrupt is a dynamic request that cannot be predicted before execution that requests a change in the initial task scheduling, like a sleep request.

この場合には、Sleep要求と同じく全体の管理はグローバルリソース制御部(CRCL)512で行う。但し、Sleep要求と異なり、割込みが終了するまでの時間は、全てのタスクをウェイト状態に遷移して、割込みに必要な時間、図7に示すタスクのガントチャートがシフトするスケジューリングを実施する。   In this case, the overall management is performed by the global resource control unit (CRCL) 512 as in the case of the Sleep request. However, unlike the Sleep request, during the time until the interruption is completed, all tasks are shifted to the wait state, and scheduling is performed so that the Gantt chart of the task shown in FIG.

第2の実施の形態によれば、前記第1の実施の形態の効果に加えて、外部割込みを受付ける場合でも、常に進捗を把握しながら制御を行うために、外部からの割込みが入り当初の予定時刻より全体の進捗が狂うようなことがあっても、タスクの連携とアプリケーション全体の動作は矛盾なく実行することが可能となる。   According to the second embodiment, in addition to the effects of the first embodiment, even when an external interrupt is received, an external interrupt is entered in order to perform control while always grasping the progress. Even if the overall progress may be out of sync with the scheduled time, the task linkage and the overall operation of the application can be executed without contradiction.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiment. However, the present invention is not limited to the embodiment, and various modifications can be made without departing from the scope of the invention. Needless to say.

本発明は、マルチプロセッサにおいて、タスクの進捗状況に応じて、クロック周波数や電圧値を動的に変更する制御方法に関する。特に、低電力化のために、クロックの周波数や電圧値を変更するだけでなく、あるプロセッサをスリープ状態に変化させたときに、この状態変化によって全体のアプリケーションの動作を矛盾なく動作させるプロセッサ状態やタスクの制御方法に利用可能である。   The present invention relates to a control method for dynamically changing a clock frequency and a voltage value in accordance with task progress in a multiprocessor. In particular, not only the clock frequency and voltage value are changed to reduce power consumption, but also when a certain processor is changed to the sleep state, this state change causes the entire application to operate consistently. And can be used as a method for controlling tasks.

本発明の一実施の形態であるSleep状態への遷移と復帰の実行手順を表すガントチャートである。It is a Gantt chart showing the execution procedure of the transition to a Sleep state which is one embodiment of the present invention, and a return. 本発明の一実施の形態であるマルチプロセッサを利用するシステムを示す構成図である。It is a block diagram which shows the system using the multiprocessor which is one embodiment of this invention. 本発明の一実施の形態であるマルチプロセッサ上で実行するアプリケーション、オーディオデコーダのデータ処理フローを示す図である。It is a figure which shows the data processing flow of the application and audio decoder which are performed on the multiprocessor which is one embodiment of this invention. 本発明の一実施の形態であるマルチプロセッサチップを示すブロック図である。It is a block diagram which shows the multiprocessor chip | tip which is one embodiment of this invention. 本発明の一実施の形態である、図3のアプリケーションと制御ソフトを、図4のマルチプロセッサに搭載する一例を示すブロック図である。FIG. 5 is a block diagram illustrating an example in which the application and control software of FIG. 3 according to an embodiment of the present invention are mounted on the multiprocessor of FIG. 4. 本発明の一実施の形態である、図3のオーディオデコーダを、タスクを処理単位としてソフトウェアパイプラインにより実行する処理を示すガントチャートである。FIG. 4 is a Gantt chart showing a process of executing the audio decoder of FIG. 3 according to an embodiment of the present invention by a software pipeline with a task as a processing unit. 本発明の一実施の形態である、図6においてタスクが予定より早く終了したときの一例の処理を示すガントチャートである。FIG. 7 is a Gantt chart showing an example of processing when a task is completed earlier than scheduled in FIG. 6 according to an embodiment of the present invention. 本発明の一実施の形態である、図1のSleep可否の判断の処理を示すフロー図である。It is a flowchart which shows the process of judgment of the sleep availability of FIG. 1 which is one embodiment of this invention.

符号の説明Explanation of symbols

200…マルチプロセッサチップ
201…システムボード
202…水晶発信器
203…フラッシュメモリ
204…コネクタ
205…ハードディスク
206…ダイナミックランダムアクセスメモリ
207…オーディオコントローラ
208…コネクタ
209…ヘッドフォン
210…クロック入力端子
211…データ端子
212…HDDインタフェース端子
213…DRAMインタフェース端子
214…データ端子
306…ソフトモジュール
308…ソフトモジュール
309…処理結果
310…フレームデータ
401…プロセッサエレメント
402…プロセッサエレメント
403…クロックジェネレータ
404…タスク制御プロセッサエレメント
405…バスアービタ
406…共有メモリ
407…周辺バス制御部
408…割込みコントローラ
409…タイマ
410…HDDインタフェースコントローラ
411…DRAMコントローラ
412…データコントローラ
413…データコントローラ
414…周辺バス
501…プロセッサ状態レジスタ
502…ローカルメモリ
506…ローカルリソース制御部
507…リアルタイムOS
509…ローカルリソース制御部
510…リアルタイムOS
512…グローバルリソース制御部
513…リアルタイムOS
DESCRIPTION OF SYMBOLS 200 ... Multiprocessor chip 201 ... System board 202 ... Crystal oscillator 203 ... Flash memory 204 ... Connector 205 ... Hard disk 206 ... Dynamic random access memory 207 ... Audio controller 208 ... Connector 209 ... Headphone 210 ... Clock input terminal 211 ... Data terminal 212 ... HDD interface terminal 213 ... DRAM interface terminal 214 ... Data terminal 306 ... Soft module 308 ... Soft module 309 ... Processing result 310 ... Frame data 401 ... Processor element 402 ... Processor element 403 ... Clock generator 404 ... Task control processor element 405 ... Bus arbiter 406 ... Shared memory 407 ... Peripheral bus control unit 408 ... Interrupt Controller 409 ... timer 410 ... HDD interface controller 411 ... DRAM controller 412 ... data controller 413 ... data controller 414 ... peripheral bus 501 ... processor status register 502 ... local memory 506 ... local resource control unit 507 ... Real-Time OS
509 ... Local resource control unit 510 ... Real-time OS
512 ... Global resource control unit 513 ... Real-time OS

Claims (6)

第1のプロセッサエレメントと、第2のプロセッサエレメントと、前記第1のプロセッサエレメントと前記第2のプロセッサエレメントの実行制御を行うタスク制御プロセッサエレメントとを含むマルチプロセッサであって、
第1のタスクの次に第2のタスクを実行することを繰り返し行うソフトウェア処理において、前記第1のプロセッサエレメントへ前記第1のタスクを割付け、前記第2のプロセッサエレメントへ前記第2のタスクを割付けて実行する場合、
前記第1のプロセッサエレメント上で、前記第1のタスクの進捗状況を判断して前記第1のプロセッサエレメントの状態を制御する第1のローカルリソース制御部と、
前記第2のプロセッサエレメント上で、前記第2のタスクの進捗状況を判断して前記第2のプロセッサエレメントの状態を制御する第2のローカルリソース制御部と、
前記タスク制御プロセッサエレメント上で、前記第1のローカルリソース制御部と前記第2のローカルリソース制御部からのプロセッサエレメントの停止状態への変更の要求を受け、この停止状態への変更の可否を判断して、この要求のあったローカルリソース制御部へ状態変更の可否を指示するグローバルリソース制御部とを有し、
前記第1のローカルリソース制御部と前記第2のローカルリソース制御部は、前記グローバルリソース制御部からの前記指示に基づき、前記第1のプロセッサエレメントまたは前記第2のプロセッサエレメントの状態を制御することを特徴とするマルチプロセッサ。
A multiprocessor including a first processor element, a second processor element, and a task control processor element that controls execution of the first processor element and the second processor element;
In a software process that repeatedly executes a second task next to a first task, the first task is assigned to the first processor element, and the second task is assigned to the second processor element. When allocating and executing,
A first local resource control unit that determines a progress status of the first task and controls a state of the first processor element on the first processor element;
A second local resource control unit that controls a state of the second processor element by determining a progress status of the second task on the second processor element;
On the task control processor element, a request to change the processor element to the stop state is received from the first local resource control unit and the second local resource control unit, and it is determined whether or not the change to the stop state is possible. And a global resource control unit that instructs the local resource control unit that has made the request whether or not to change the state,
The first local resource control unit and the second local resource control unit control the state of the first processor element or the second processor element based on the instruction from the global resource control unit. Multiprocessor characterized by.
請求項1記載のマルチプロセッサにおいて、
前記第2のタスクを実行する前記第2のプロセッサエレメントを停止状態にした後の処理は、
前記第1のタスクの次に実行する前記第2のタスクを再度起動する必要性があることを前記第1のローカルリソース制御部の要求に基づき前記グローバルリソース制御部が判断して、この判断に基づき前記グローバルリソース制御部は前記第2のプロセッサエレメントに対して再起動要求を出し、この再起動要求に基づき前記第2のプロセッサエレメントを再起動し、その後、前記第2のタスクをランニング状態に復帰することを特徴とするマルチプロセッサ。
The multiprocessor according to claim 1, wherein
After the second processor element that executes the second task is stopped,
Based on a request from the first local resource control unit, the global resource control unit determines that the second task to be executed next to the first task needs to be started again. The global resource control unit issues a restart request to the second processor element based on the restart request, restarts the second processor element based on the restart request, and then sets the second task to a running state. Multiprocessor characterized by returning.
請求項1記載のマルチプロセッサにおいて、
前記グローバルリソース制御部が前記停止状態への変更の要求を受け、この停止状態への変更の可否を判断する処理は、
外部割込みの受付けが不可か、または要求時は受付け不可として、前記第1または第2のプロセッサエレメント上の前記第1または第2のタスクが次に実行する必要がある時刻までの時間間隔が、前記第1または第2のプロセッサエレメントを停止状態にしてその後復帰するのに要するトータル時間よりも長いときに、停止状態への変更を可能と判断することを特徴とするマルチプロセッサ。
The multiprocessor according to claim 1, wherein
The global resource control unit receives a request to change to the stopped state, and determines whether to change to the stopped state.
The time interval until the time at which the first or second task on the first or second processor element needs to be executed next is determined as being unacceptable for external interrupts or not when requested. A multiprocessor according to claim 1, wherein when the first or second processor element is in a stopped state and is longer than a total time required for returning, the multiprocessor determines that the change to the stopped state is possible.
第1のプロセッサエレメントと、第2のプロセッサエレメントと、前記第1のプロセッサエレメントと前記第2のプロセッサエレメントの実行制御を行うタスク制御プロセッサエレメントとを含むマルチプロセッサの状態制御方法であって、
第1のタスクの次に第2のタスクを実行することを繰り返し行うソフトウェア処理において、前記第1のプロセッサエレメントへ前記第1のタスクを割付け、前記第2のプロセッサエレメントへ前記第2のタスクを割付けて実行する場合、
第1のローカルリソース制御部は、前記第1のプロセッサエレメント上で、前記第1のタスクの進捗状況を判断して前記第1のプロセッサエレメントの状態を制御し、
第2のローカルリソース制御部は、前記第2のプロセッサエレメント上で、前記第2のタスクの進捗状況を判断して前記第2のプロセッサエレメントの状態を制御し、
グローバルリソース制御部は、前記タスク制御プロセッサエレメント上で、前記第1のローカルリソース制御部と前記第2のローカルリソース制御部からのプロセッサエレメントの停止状態への変更の要求を受け、この停止状態への変更の可否を判断して、この要求のあったローカルリソース制御部へ状態変更の可否を指示し、
前記第1のローカルリソース制御部と前記第2のローカルリソース制御部は、前記グローバルリソース制御部からの前記指示に基づき、前記第1のプロセッサエレメントまたは前記第2のプロセッサエレメントの状態を制御することを特徴とするマルチプロセッサの状態制御方法。
A multiprocessor state control method including a first processor element, a second processor element, and a task control processor element that controls execution of the first processor element and the second processor element,
In a software process that repeatedly executes a second task next to a first task, the first task is assigned to the first processor element, and the second task is assigned to the second processor element. When allocating and executing,
A first local resource control unit that determines a progress status of the first task on the first processor element and controls a state of the first processor element;
A second local resource control unit that determines a progress status of the second task on the second processor element to control a state of the second processor element;
The global resource control unit receives a request to change the processor element from the first local resource control unit and the second local resource control unit to the stopped state on the task control processor element, and enters the stopped state. To determine whether or not to change the state, instruct the local resource control unit that made this request whether to change the state,
The first local resource control unit and the second local resource control unit control the state of the first processor element or the second processor element based on the instruction from the global resource control unit. A multiprocessor state control method.
請求項4記載のマルチプロセッサの状態制御方法において、
前記第2のタスクを実行する前記第2のプロセッサエレメントを停止状態にした後の処理は、
前記第1のタスクの次に実行する前記第2のタスクを再度起動する必要性があることを前記第1のローカルリソース制御部の要求に基づき前記グローバルリソース制御部が判断して、この判断に基づき前記グローバルリソース制御部は前記第2のプロセッサエレメントに対して再起動要求を出し、この再起動要求に基づき前記第2のプロセッサエレメントを再起動し、その後、前記第2のタスクをランニング状態に復帰することを特徴とするマルチプロセッサの状態制御方法。
The multiprocessor state control method according to claim 4.
After the second processor element that executes the second task is stopped,
Based on a request from the first local resource control unit, the global resource control unit determines that the second task to be executed next to the first task needs to be started again. The global resource control unit issues a restart request to the second processor element based on the restart request, restarts the second processor element based on the restart request, and then sets the second task to a running state. A multiprocessor state control method characterized by returning.
請求項4記載のマルチプロセッサの状態制御方法において、
前記グローバルリソース制御部が前記停止状態への変更の要求を受け、この停止状態への変更の可否を判断する処理は、
外部割込みの受付けが不可か、または要求時は受付け不可として、前記第1または第2のプロセッサエレメント上の前記第1または第2のタスクが次に実行する必要がある時刻までの時間間隔が、前記第1または第2のプロセッサエレメントを停止状態にしてその後復帰するのに要するトータル時間よりも長いときに、停止状態への変更を可能と判断することを特徴とするマルチプロセッサの状態制御方法。
The multiprocessor state control method according to claim 4.
The global resource control unit receives a request to change to the stopped state, and determines whether to change to the stopped state.
The time interval until the time at which the first or second task on the first or second processor element needs to be executed next is determined as being unacceptable for external interrupts or not when requested. A multiprocessor state control method, comprising: determining that a change to a stop state is possible when the total time required for the first or second processor element to stop and return thereafter is longer.
JP2008314306A 2008-12-10 2008-12-10 Multi-processor and state control method of the same Pending JP2010140151A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008314306A JP2010140151A (en) 2008-12-10 2008-12-10 Multi-processor and state control method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008314306A JP2010140151A (en) 2008-12-10 2008-12-10 Multi-processor and state control method of the same

Publications (1)

Publication Number Publication Date
JP2010140151A true JP2010140151A (en) 2010-06-24

Family

ID=42350258

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008314306A Pending JP2010140151A (en) 2008-12-10 2008-12-10 Multi-processor and state control method of the same

Country Status (1)

Country Link
JP (1) JP2010140151A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118821A (en) * 2010-12-01 2012-06-21 Canon Inc Data transfer apparatus, printer and control method
JP2012190283A (en) * 2011-03-10 2012-10-04 Canon Inc Information processor, method for controlling the same, and program
US9025194B2 (en) 2010-12-01 2015-05-05 Canon Kabushiki Kaisha Data transmission apparatus for transferring data to an output device for outputting data, printer, information processing apparatus, and control method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118821A (en) * 2010-12-01 2012-06-21 Canon Inc Data transfer apparatus, printer and control method
US9025194B2 (en) 2010-12-01 2015-05-05 Canon Kabushiki Kaisha Data transmission apparatus for transferring data to an output device for outputting data, printer, information processing apparatus, and control method thereof
JP2012190283A (en) * 2011-03-10 2012-10-04 Canon Inc Information processor, method for controlling the same, and program

Similar Documents

Publication Publication Date Title
US10649935B2 (en) Deferred inter-processor interrupts
US8181047B2 (en) Apparatus and method for controlling power management by comparing tick idle time data to power management state resume time data
CN105183128B (en) Forcing a processor into a low power state
TWI233545B (en) Mechanism for processor power state aware distribution of lowest priority interrupts
US7152169B2 (en) Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state
US9619282B2 (en) Task scheduling in big and little cores
JP5932044B2 (en) Application event control (PAEC) based on priority to reduce power consumption
CN108139946B (en) Method for efficient task scheduling in the presence of conflicts
JP2007133723A (en) Multiprocessor, task scheduling method and compiler
US8984200B2 (en) Task scheduling in big and little cores
US20130198540A1 (en) Dynamic Power Management in Real Time Systems
JP2007234017A (en) Priority-based computation processing device and method for nonvolatile memory
CN103842933B (en) Constrained boot techniques in multi-core platforms
US8589938B2 (en) Composite contention aware task scheduling
RU2648943C2 (en) Task time allocation method allowing deterministic error recovery in real time
WO2007141849A1 (en) Semiconductor integrated circuit
US10496149B2 (en) Method of operating CPU and method of operating system having the CPU
KR20140127341A (en) Method and system for scheduling requests in a portable computing device
Roy et al. Energy-aware primary/backup scheduling of periodic real-time tasks on heterogeneous multicore systems
JP6464982B2 (en) Parallelization method, parallelization tool, in-vehicle device
US20160335127A1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (pcd)
WO2016085680A1 (en) System and method for adaptive thread control in a portable computing device (pcd)
JP2010160565A (en) Task scheduling apparatus, control method for task scheduling, and control program for task scheduling
JP2010140151A (en) Multi-processor and state control method of the same
US20140007135A1 (en) Multi-core system, scheduling method, and computer product