JP2013041366A - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
JP2013041366A
JP2013041366A JP2011176792A JP2011176792A JP2013041366A JP 2013041366 A JP2013041366 A JP 2013041366A JP 2011176792 A JP2011176792 A JP 2011176792A JP 2011176792 A JP2011176792 A JP 2011176792A JP 2013041366 A JP2013041366 A JP 2013041366A
Authority
JP
Japan
Prior art keywords
processing unit
control
task
instruction
interrupt
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.)
Withdrawn
Application number
JP2011176792A
Other languages
Japanese (ja)
Inventor
Futoshi Okazaki
太 岡崎
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011176792A priority Critical patent/JP2013041366A/en
Publication of JP2013041366A publication Critical patent/JP2013041366A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a data processor capable of promptly restoring a processing unit from an idle state.SOLUTION: A data processor including plural processing units restores a processing unit put into an idle state by execution of a specific command, using an interrupt, restoration processing for responding to rewrite of a control bit rewritable by the processing units to a predetermined value, and restoration processing for responding to task scheduling of the processing unit in the idle state. Therefore, another processing unit can perform rewrite of the control bit or task scheduling, except when restoration from the idle state needs required processing by interrupt processing. When rewrite of the control bit or task scheduling can be performed, interrupt processing accompanying null processing is not required.

Description

本発明は、プロセッシングユニットを複数持つデータ処理装置の低消費電力制御に関し、例えば対象型マルチプロセッシング(SMP:Symmetric Multiprocessing)によるデータ処理を行うマイクロコンピュータに適用して有効な技術に関する。   The present invention relates to low power consumption control of a data processing apparatus having a plurality of processing units, and relates to a technique that is effective when applied to, for example, a microcomputer that performs data processing by object type multiprocessing (SMP).

マイクロコンピュータにはスリープモードなどの低消費電力モードを持つものがある。例えば中央処理装置(CPU)がスリープ命令を実行することによって当該CPUへの同期クロック信号の供給を止めて新たな命令実行を休止させるような休止状態に遷移する。特許文献1,2にはそのような低消費電力モードについて記載があり、この低消費電力モードから抜けて新たな命令を実行可能な状態に復帰するにはCPUに対する割り込みが利用される。例えば外部から割り込み要求があると、割り込みコントローラが割り込み信号をCPUに与えるとき、クロック制御回路にCPUへの同期クロックの供給を再開させ、それによってCPUは割り込み要求に応答する処理が可能になる。   Some microcomputers have a low power consumption mode such as a sleep mode. For example, when the central processing unit (CPU) executes a sleep command, the CPU shifts to a sleep state in which the supply of the synchronous clock signal to the CPU is stopped and the execution of a new command is paused. Patent Documents 1 and 2 describe such a low power consumption mode, and an interrupt to the CPU is used to return from the low power consumption mode to a state where a new instruction can be executed. For example, when there is an interrupt request from the outside, when the interrupt controller gives an interrupt signal to the CPU, the clock control circuit restarts the supply of the synchronous clock to the CPU, thereby enabling the CPU to process the interrupt request.

特願平4−87043号公報Japanese Patent Application No. 4-87043 特開2002−163032号公報JP 2002-163032 A

本発明者は複数のプロセッシングユニットに処理を分散させるマルチプロセッシングにおける低消費電力モードについて検討した。プロセッシングユニットは少なくとも命令を実行する中央処理装置(CPU)を含む回路モジュールである。   The present inventor has studied a low power consumption mode in multiprocessing in which processing is distributed to a plurality of processing units. A processing unit is a circuit module that includes at least a central processing unit (CPU) that executes instructions.

プロセッシングユニットを休止状態から動作可能な状態に復帰するには何らかの復帰処理が必要である。プロセッシングユニットを1個しか持たないマイクロコンピュータ(以下単にシングルコアマイコンとも記す)の場合、プロセッシングユニットを休止するとシステム動作を行うことはできないから、外部割込みやシステムリセットなどを用いてプロセッシングユニットを休止状態から復帰させなければならない。   In order to return the processing unit from the hibernation state to the operable state, some return processing is required. In the case of a microcomputer having only one processing unit (hereinafter also referred to as a single-core microcomputer), the system cannot be operated if the processing unit is paused. Therefore, the processing unit is paused by using an external interrupt or system reset. Must be restored from.

これに対してプロセッシングユニットを複数持つマイクロコンピュータ(以下単にマルチコアマイコンとも記す)の場合、全てのプロセッシングユニットが休止状態にならない限りマルチコアシステムとしての動作を続けることができるから、外部割り込みのほかに、動作中の他のプロセッシングユニットからの割り込み要求によって復帰させることも可能である。例えば、省電力を目的に一部のプロセッシングユニットを一時的に休止させておき、実行可能なタスクが一定数以上になるなど処理負荷が増加したら休止状態のプロセッシングユニットを復帰させる。このようなシステム動作が維持されたままの状態で一部のプロセッシングユニットが休止されるマルチコアマイコンでは、プロセッシングユニットの休止及び休止からの復帰に高速な処理が要望される。特に、復帰の手法としてシングルコアマイコンと同様に外部割り込みやリセットによる復帰しか使えない場合には、高速な復帰動作を実現することができない。割り込みによる復帰動作では、プロセッシングユニットは割り込み信号に応答して割り込み処理を行うことになり、単にプロセッシングユニットへの同期クロック信号の供給再開を行うだけでよい場合にも、空処理の割り込み処理を実行しなければならず、実質的に意味のない処理に時間を費やすことになり、復帰に無駄な時間が掛かってしまう。特許文献1,2ではそのようなマルチコアマイコンにおける休止からの復帰の事情について着眼されていない。   On the other hand, in the case of a microcomputer having a plurality of processing units (hereinafter also simply referred to as a multi-core microcomputer), the operation as a multi-core system can be continued as long as all the processing units are not in a dormant state. It is also possible to restore by an interrupt request from another processing unit in operation. For example, some processing units are temporarily suspended for the purpose of power saving, and when the processing load increases, such as when the number of executable tasks exceeds a certain number, the suspended processing units are restored. In a multi-core microcomputer in which some processing units are suspended while such a system operation is maintained, high-speed processing is required for halting the processing units and returning from the suspension. In particular, in the case where only a return by an external interrupt or a reset can be used as a recovery method, similarly to a single core microcomputer, a high-speed recovery operation cannot be realized. In the return operation by interrupt, the processing unit performs interrupt processing in response to the interrupt signal, and even if it is only necessary to restart the supply of the synchronous clock signal to the processing unit, the empty processing interrupt processing is executed. In other words, time is spent on processing that is substantially meaningless, and it takes time to recover. Patent Documents 1 and 2 do not focus on the circumstances of return from sleep in such a multi-core microcomputer.

本発明の目的は、プロセッシングユニットを休止状態から高速に復帰させることができるデータ処理装置を提供することにある。   An object of the present invention is to provide a data processing apparatus capable of returning a processing unit from a hibernation state at high speed.

本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。   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.

本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。   The following is a brief description of an outline of typical inventions disclosed in the present application.

すなわち、複数のプロセッシングユニットを有するデータ処理装置において、特定の命令を実行して休止されたプロセッシングユニットを動作可能な状態に復帰させるのに、割り込みを用いるほかに、プロセッシングユニットが書き換え可能な制御ビットに対する所定値への書き換えに応答する復帰処理、さらには、休止状態のプロセッシングユニットを対象とするタスクスケジューリングのための所定アドレスへのメモリアクセスに応答する復帰処理を用いるようにする。   In other words, in a data processing apparatus having a plurality of processing units, in addition to using an interrupt to return a suspended processing unit to an operable state by executing a specific instruction, a control bit that can be rewritten by the processing unit A return process in response to rewriting to a predetermined value is used, and a return process in response to a memory access to a predetermined address for task scheduling for a processing unit in a dormant state is used.

これにより、休止状態からの復帰に割り込み処理により所要の処理を必要とする場合以外は、他のプロセッシングユニットによる制御ビットの書き換え又はタスクスケジューリングのためのメモリアクセスを行えばよい。制御ビットの書き換え又はタスクスケジューリングのためのメモリアクセスを行えば、空処理を伴う割り込み処理を行うことを要しない。   As a result, except for the case where required processing is required by interruption processing to return from the hibernation state, rewriting of control bits by another processing unit or memory access for task scheduling may be performed. If memory access is performed for rewriting control bits or task scheduling, it is not necessary to perform interrupt processing with empty processing.

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

すなわち、プロセッシングユニットを休止状態から高速に復帰させることができる。   That is, the processing unit can be returned from the hibernation state at high speed.

図1は本発明の第1の実施の形態にかかるマルチコアマイコンを例示するブロック図である。FIG. 1 is a block diagram illustrating a multi-core microcomputer according to the first embodiment of the invention. 図2は制御レジスタにおける一つの制御レジスタ領域のレジスタフォーマットを例示するフォーマット図である。FIG. 2 is a format diagram illustrating a register format of one control register area in the control register. 図3は図1のマルチコアマイコンにおけるアクティブ状態と休止状態との間の遷移制御形態を例示する説明図である。FIG. 3 is an explanatory diagram illustrating a transition control mode between the active state and the hibernate state in the multi-core microcomputer of FIG. 図4はタスク処理を管理するためのタスク変数とタスクコントロールフィールドとの関係を例示する説明図である。FIG. 4 is an explanatory diagram illustrating the relationship between task variables and task control fields for managing task processing. 図5はタスクスケジューリングとタスクディスパッチの処理例を示すフローチャートである。FIG. 5 is a flowchart showing an example of task scheduling and task dispatch processing. 図6はOSの管理の下でタスクによる処理の流れを振り分け管理するディスパッチャー処理の概略を例示するフローチャートである。FIG. 6 is a flowchart exemplifying an outline of a dispatcher process for distributing and managing a process flow by a task under the management of the OS. 図7は省電力処理の一例を示すフローチャートである。FIG. 7 is a flowchart showing an example of the power saving process. 図8はプロセッシングユニットの休止状態を割り込みを介して解除する動作を例示するフローチャートである。FIG. 8 is a flowchart illustrating an operation of canceling the hibernation state of the processing unit through an interrupt. 図9はプロセッシングユニットの休止状態をウェイクアップビットWUPxの操作によって解除する動作を例示するフローチャートである。FIG. 9 is a flowchart exemplifying an operation for canceling the sleep state of the processing unit by operating the wakeup bit WUPx. 図10は本発明の第2の実施の形態にかかるマルチコアマイコンを例示するブロック図である。FIG. 10 is a block diagram illustrating a multi-core microcomputer according to the second embodiment of the invention. 図11は図10のマルチコアマイコンにおけるアクティブ状態と休止状態との間の遷移制御形態を例示する説明図である。FIG. 11 is an explanatory diagram illustrating a transition control mode between the active state and the hibernation state in the multi-core microcomputer of FIG. 図12はプロセッシングユニットの休止状態を所定のスケジュールタスク変数に対する書込み操作によって解除する動作を例示すフローチャートである。FIG. 12 is a flowchart illustrating an example of an operation for canceling the sleep state of the processing unit by a write operation on a predetermined schedule task variable. 図13は4個のプロセッシングユニットを備えたマルチコアマイコンの利用形態を例示する説明図である。FIG. 13 is an explanatory diagram illustrating a usage form of a multi-core microcomputer provided with four processing units. 図14は図13のシステムにおいて負荷が低下した状態を例示する説明図である。FIG. 14 is an explanatory diagram illustrating a state in which the load is reduced in the system of FIG.

1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
1. First, an outline of a typical embodiment of the invention disclosed in the present application will be described. Reference numerals in the drawings referred to in parentheses in the outline description of the representative embodiments merely exemplify what are included in the concept of the components to which the reference numerals are attached.

〔1〕<制御ビットの書き換えに応答して命令の実行休止を解除>
本発明の代表的な実施の形態に係るデータ処理装置(1)は、命令を実行する複数個のプロセッシングユニット(11、12)と、前記プロセッシングユニットによる特定の命令(スリープ命令)の実行に応答して当該プロセッシングユニットによる新たな命令実行を休止させる制御を行うと共に、プロセッシングユニットに対応して設けられた制御ビット(WPUx)の所定値への書き換え又は当該プロセッシングユニットへの割り込み発生(INT1,INTn)に応答して命令の実行休止を解除する制御を行う制御回路(22)とを有する。前記プロセッシングユニットによって書き換え可能な制御レジスタ(30)が前記制御ビットを有する。
[1] <Release instruction execution in response to control bit rewriting>
A data processing apparatus (1) according to a representative embodiment of the present invention responds to execution of a plurality of processing units (11, 12) for executing instructions and specific instructions (sleep instructions) by the processing units. Then, control for halting execution of a new instruction by the processing unit is performed, and a control bit (WPUx) provided corresponding to the processing unit is rewritten to a predetermined value or an interrupt is generated for the processing unit (INT1, INTn). And a control circuit (22) for performing control to cancel the instruction execution suspension in response to (). A control register (30) rewritable by the processing unit has the control bit.

これにより、休止状態からの復帰に、割り込み処理による所要の処理を要する場合以外は、他のプロセッシングユニットによる制御ビットの書き換えを行えばよい。制御ビットの書き換えを行えば、空処理を伴う割り込み処理を行うことを要しない。したがって、プロセッシングユニットを休止状態から高速に復帰させることができる。更に、簡単且つ頻繁にプロセッシングユニットの休止を使用できるようになり、省電力への貢献度を増すことが容易になる。   As a result, the control bit may be rewritten by another processing unit, except for the case where required processing by interrupt processing is required to return from the sleep state. If the control bit is rewritten, it is not necessary to perform an interrupt process involving an empty process. Therefore, the processing unit can be returned from the hibernation state at high speed. Furthermore, it becomes possible to use the pause of the processing unit simply and frequently, and it becomes easy to increase the contribution to power saving.

〔2〕<スリープ命令の実行に応答する新たな命令実行の停止>
項1のデータ処理装置において、前記命令実行を休止させる制御は、プロセッシングユニットが有する中央処理装置への同期クロック信号(CLK1,CLKn)の供給を停止させる制御である。前記命令の実行休止を解除する制御は、前記中央処理装置への同期クロック信号の供給を再開させる制御である。
[2] <Stop of new instruction execution in response to execution of sleep instruction>
In the data processing device according to item 1, the control for stopping the instruction execution is control for stopping the supply of the synchronous clock signals (CLK1, CLKn) to the central processing unit included in the processing unit. The control for canceling the execution suspension of the instruction is control for restarting the supply of the synchronous clock signal to the central processing unit.

これにより、同期クロック信号の供給と停止で命令実行の停止と再開を制御するから、プロセッシングユニットの内部状態を維持して休止と再開の制御を容易に実現することができる。   As a result, the stop and restart of instruction execution are controlled by supplying and stopping the synchronous clock signal, so that the internal state of the processing unit can be maintained and the control of pause and restart can be easily realized.

〔3〕<ライトスリープモード>
項2のデータ処理装置において、前記命令実行を休止させる制御は、前記制御レジスタが保有するモードビット(LTSLPx)が第1の値のとき対応するプロセッシングユニットの内部メモリへの同期クロック信号の供給を維持させながら前記中央処理装置への同期クロック信号の供給を停止させ、前記モードビットが第2の値のとき前記中央処理装置及び前記内部メモリに対する同期クロック信号の供給を停止させる制御である。前記命令の実行休止を解除する制御は、前記モードビットが第1の値のとき前記制御ビットの所定値への書き換えに応答して対応する中央処理装置への同期クロック信号の供給を再開させ、前記モードビットが第2の値のとき前記制御ビットの所定値への書き換えに応答して対応する中央処理装置及び前記内部メモリへの同期クロック信号の供給を再開させる制御である。
[3] <Light sleep mode>
In the data processing device according to item 2, the control to pause the instruction execution is to supply a synchronous clock signal to the internal memory of the corresponding processing unit when the mode bit (LTSLPx) held by the control register is the first value. In this control, the supply of the synchronous clock signal to the central processing unit is stopped while maintaining, and the supply of the synchronous clock signal to the central processing unit and the internal memory is stopped when the mode bit is a second value. The control for canceling the suspension of execution of the instruction restarts the supply of the synchronous clock signal to the corresponding central processing unit in response to the rewriting of the control bit to the predetermined value when the mode bit is the first value, When the mode bit is a second value, the control bit is resumed in response to the rewriting of the control bit to a predetermined value to resume the supply of the synchronous clock signal to the corresponding central processing unit and the internal memory.

これによれば、モードビットの状態に応じて、休止状態におけるプロセッシングユニットの省電力の大小とプロセッシングユニットの完全復帰までに要する時間の長短とを選択可能になる。   According to this, it is possible to select the power saving level of the processing unit in the hibernation state and the length of time required until the processing unit is completely restored according to the state of the mode bit.

〔4〕<タスクディスパッチ処理>
項1乃至3の何れかのデータ処理装置において、前記プロセッシングユニットは、自らが処理するタスクのスケジューリングが行われているか否かを判別し、スケジューリングされているときはそのタスクの実行に遷移させ、スケジューリングされていないときは前記特定の命令を実行する処理(S2)を行う。
[4] <Task dispatch processing>
In the data processing device according to any one of Items 1 to 3, the processing unit determines whether or not scheduling of a task to be processed is performed, and when it is scheduled, transitions to execution of the task, When it is not scheduled, a process (S2) for executing the specific instruction is performed.

これによれば、実行すべきタスクがないときプロセッシングユニットは必ず休止状態になり、省電力を促進することができる。   According to this, when there is no task to be executed, the processing unit is always in a dormant state, and power saving can be promoted.

〔5〕<タスク起動処理>
項4のデータ処理装置において、前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから前記制御レジスタの制御ビットを所定値に書き換える第1のタスク起動処理(S43)を行う。
[5] <Task activation process>
In the data processing device according to item 4, the processing unit performs a task scheduling for another processing unit in which instruction execution is suspended, and then rewrites a control bit of the control register to a predetermined value (first task activation process) S43) is performed.

これによれば、制御ビットの書き換えによって休止状態から復帰するとき、復帰して実行すべきタスクが必ず存在する状態を保証することができ、プロセッシングユニットが無駄に復帰する事態の発生を未然に防止することができる。   According to this, when returning from the hibernation state by rewriting the control bit, it is possible to guarantee a state in which there is always a task to be returned and executed, and it is possible to prevent the occurrence of a situation where the processing unit is returned to waste. can do.

〔6〕<割り込みによる命令実行休止の解除とタスク起動>
項4のデータ処理装置は、割り込み要求に応答して前記プロセッシングユニットに割り込み信号を出力する割り込みコントローラ(21)を有する。前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから当該他のプロセッシングユニットに対する割り込み要求を前記割り込みコントローラに出力する第2のタスク起動処理を行う。前記割り込みコントローラは前記第2のタスク起動処理(S41)による割り込み要求に応答して割り込み信号を他のプロセッシングユニットに出力する。
[6] <Release instruction execution suspension by interrupt and task activation>
The data processing apparatus according to item 4 includes an interrupt controller (21) that outputs an interrupt signal to the processing unit in response to an interrupt request. The processing unit performs a second task activation process for outputting an interrupt request for the other processing unit to the interrupt controller after scheduling a task for the other processing unit in which instruction execution is suspended. The interrupt controller outputs an interrupt signal to another processing unit in response to the interrupt request by the second task activation process (S41).

これによれば、割り込みによって休止状態から復帰するとき、復帰して実行すべきタスクが必ず存在する状態を保証することができ、プロセッシングユニットが無駄に復帰する事態の発生を未然に防止することができる。   According to this, when returning from the hibernation state by an interrupt, it is possible to guarantee a state in which there is always a task to be returned and executed, and it is possible to prevent the occurrence of a situation where the processing unit returns to waste. it can.

〔7〕<タスクスケジューリングに応答して命令の実行休止を解除>
本発明の別の実施の形態に係るデータ処理装置(1A)は、命令を実行する複数個のプロセッシングユニット(11,12)と、前記プロセッシングユニットが処理するタスクのスケジューリングを行うための制御データが格納されるメモリ(2)と、前記プロセッシングユニットによる特定の命令(拡張スリープ命令)の実行に応答して当該プロセッシングユニットによる新たな命令実行を休止させる制御を行うと共に、当該プロセッシングユニットが処理するタスクのタスク制御データが前記メモリの所定アドレスに格納されること又は当該プロセッシングユニットへの割り込みが発行されることに応答して命令の実行休止を解除する制御を行う制御回路(22A)と、を有する。
[7] <Release instruction execution in response to task scheduling>
A data processing apparatus (1A) according to another embodiment of the present invention includes a plurality of processing units (11, 12) that execute instructions and control data for scheduling tasks processed by the processing units. In response to execution of a specific instruction (extended sleep instruction) by the memory (2) to be stored and execution of the processing unit, a task to be processed by the processing unit is performed while performing control to pause execution of a new instruction by the processing unit And a control circuit (22A) for controlling to cancel the execution suspension of the instruction in response to the task control data of the memory being stored at a predetermined address of the memory or an interrupt to the processing unit is issued .

これにより、休止状態からの復帰に割り込み処理による所要の処理を要する場合以外は、他のプロセッシングユニットによるタスクスケジューリングを行えばよい。タスクスケジューリングのための制御データのメモリ格納動作を行えば、空処理を伴う割り込み処理を行うことを要しない。したがって、プロセッシングユニットを休止状態から高速に復帰させることができる。更に、簡単且つ頻繁にプロセッシングユニットの休止を使用できるようになり、省電力への貢献度を増すことが容易になる。   Thus, task scheduling by another processing unit may be performed except for the case where required processing by interrupt processing is required to return from the sleep state. If the memory storing operation of control data for task scheduling is performed, it is not necessary to perform an interrupt process accompanied by an empty process. Therefore, the processing unit can be returned from the hibernation state at high speed. Furthermore, it becomes possible to use the pause of the processing unit simply and frequently, and it becomes easy to increase the contribution to power saving.

〔8〕<特定の命令が所定アドレスを指定>
項7のデータ処理装置において、前記特定の命令が前記所定アドレスを指定する。
[8] <Specific instruction specifies a predetermined address>
In the data processing device according to item 7, the specific instruction specifies the predetermined address.

これによれば、休止状態を解除する条件の一つである所定アドレスについても前記特定の命令で指定することができ、特定の命令実行で設定した休止状態からの復帰に対しても命令記述によって柔軟に対応することが可能になる。   According to this, a predetermined address which is one of the conditions for canceling the hibernation state can also be specified by the specific instruction, and the return from the hibernation state set by the specific instruction execution can also be specified by the instruction description. It becomes possible to respond flexibly.

〔9〕<拡張スリープ命令の実行に応答する新たな命令実行の停止>
項7のデータ処理装置において、前記命令実行を休止させる制御は、プロセッシングユニットが有する中央処理装置への同期クロック信号(CLK1,CLKn)の供給を停止させる制御である。前記命令の実行休止を解除する制御は、前記中央処理装置への同期クロック信号の供給を再開させる制御である。
[9] <Stop of new instruction execution in response to execution of extended sleep instruction>
In the data processing device according to item 7, the control for stopping the instruction execution is control for stopping the supply of the synchronous clock signals (CLK1, CLKn) to the central processing unit included in the processing unit. The control for canceling the execution suspension of the instruction is control for restarting the supply of the synchronous clock signal to the central processing unit.

これにより、同期クロック信号の供給と停止で命令実行の停止と再開を制御するから、プロセッシングユニットの内部状態を維持して休止と再開の制御を容易に実現することができる。   As a result, the stop and restart of instruction execution are controlled by supplying and stopping the synchronous clock signal, so that the internal state of the processing unit can be maintained and the control of pause and restart can be easily realized.

〔10〕<ライトスリープモード>
項9のデータ処理装置において、前記命令実行を休止させる制御は、制御レジスタ(30A)が保有するモードビット(LTSLPx)が第1の値のとき対応するプロセッシングユニットの内部メモリへの同期クロック信号の供給を維持させながら前記中央処理装置への同期クロック信号の供給を停止させ、前記モードビットが第2の値のとき前記中央処理装置及び前記内部メモリに対する同期クロック信号の供給を停止させる制御である。前記命令の実行休止を解除する制御は、前記モードビットが第1の値のとき前記タスク制御データの格納に応答して対応する中央処理装置への同期クロック信号の供給を再開させ、前記モードビットが第2の値のとき前記タスク制御データの格納に応答して対応する中央処理装置及び前記内部メモリへの同期クロック信号の供給を再開させる制御である。
[10] <Light sleep mode>
In the data processing device according to item 9, the control for halting the execution of the instruction is performed when the mode bit (LTSLPx) held in the control register (30A) is a first value when the synchronous clock signal to the internal memory of the corresponding processing unit is set. The control is to stop the supply of the synchronous clock signal to the central processing unit while maintaining the supply, and to stop the supply of the synchronous clock signal to the central processing unit and the internal memory when the mode bit is a second value. . When the mode bit is a first value, the control for releasing the execution suspension of the instruction restarts the supply of the synchronous clock signal to the corresponding central processing unit in response to the storage of the task control data, and the mode bit Is a control for resuming the supply of the synchronous clock signal to the corresponding central processing unit and the internal memory in response to the storage of the task control data when is a second value.

これによれば、モードビットの状態に応じて、休止状態におけるプロセッシングユニットの省電力に大小とプロセッシングユニットの完全復帰までに要する時間の長短とを選択可能になる。   According to this, depending on the state of the mode bit, the power saving of the processing unit in the hibernation state and the length of time required until the processing unit is completely restored can be selected.

〔11〕<タスクディスパッチ処理>
項7乃至10の何れかのデータ処理装置において、前記プロセッシングユニットは、自らが処理するタスクのスケジューリングが行われているか否かを判別し、スケジューリングされているときはそのタスクの実行に遷移させ、スケジューリングされていないときは前記特定の命令を実行する処理(S2)を行う。
[11] <Task dispatch processing>
In the data processing device according to any one of Items 7 to 10, the processing unit determines whether or not scheduling of a task to be processed by itself is performed, and when it is scheduled, transitions to execution of the task, When it is not scheduled, a process (S2) for executing the specific instruction is performed.

これによれば、実行すべきタスクがないときプロセッシングユニットは必ず休止状態になり、省電力を促進することができる。   According to this, when there is no task to be executed, the processing unit is always in a dormant state, and power saving can be promoted.

〔12〕<タスク起動処理>
項11のデータ処理装置において、前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから前記タスク制御データを前記メモリに書き込む第1のタスク起動処理(S46)を行う。
[12] <Task activation process>
In the data processing device according to item 11, the processing unit performs a task scheduling for another processing unit in which instruction execution is suspended, and then writes the task control data in the memory. First task activation processing (S46) I do.

これによれば、制御ビットの書き換えによって休止状態から復帰するとき、復帰して実行すべきタスクが必ず存在する状態を保証することができ、プロセッシングユニットが無駄に復帰する事態の発生を未然に防止することができる。   According to this, when returning from the hibernation state by rewriting the control bit, it is possible to guarantee a state in which there is always a task to be returned and executed, and it is possible to prevent the occurrence of a situation where the processing unit is returned to waste. can do.

〔13〕<割り込みによる命令実行休止の解除とタスク起動>
項11のデータ処理装置は、割り込み要求に応答して前記プロセッシングユニットに割り込み信号を出力する割り込みコントローラ(21A)をさらに有する。前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから当該他のプロセッシングユニットに対する割り込み要求を前記割り込みコントローラに出力する第2のタスク起動処理を行う。前記割り込みコントローラは前記第2のタスク起動処理による割り込み要求に応答して割り込み信号を他のプロセッシングユニットに出力する。
[13] <Release instruction execution suspension by interrupt and task activation>
The data processing device according to item 11 further includes an interrupt controller (21A) that outputs an interrupt signal to the processing unit in response to an interrupt request. The processing unit performs a second task activation process for outputting an interrupt request for the other processing unit to the interrupt controller after scheduling a task for the other processing unit in which instruction execution is suspended. The interrupt controller outputs an interrupt signal to another processing unit in response to an interrupt request by the second task activation process.

これによれば、割り込みによって休止状態から復帰するとき、復帰して実行すべきタスクが必ず存在する状態を保証することができ、プロセッシングユニットが無駄に復帰する事態の発生を未然に防止することができる。   According to this, when returning from the hibernation state by an interrupt, it is possible to guarantee a state in which there is always a task to be returned and executed, and it is possible to prevent the occurrence of a situation where the processing unit returns to waste. it can.

〔14〕<制御ビットの書き換えに応答して命令の実行休止を解除>
本発明の更に別の実施の形態に係るデータ処理装置(1)は、命令を実行する複数個のプロセッシングユニット(11,12)と、前記プロセッシングユニットに同期クロック信号を供給するクロック制御回路(22)と、前記プロセッシングユニットによって書き換え可能な制御レジスタ(30)と、を有する。前記クロック制御回路は、前記プロセッシングユニットによる特定の命令の実行に応答して当該プロセッシングユニットへの同期クロック信号の供給を停止し、前記制御レジスタに対する所定値の書き込み又は同期クロック信号の供給を停止しているプロセッシングユニットへの割り込み発生に応答して前記同期クロック信号の供給停止を解除する。
[14] <Release instruction execution in response to control bit rewriting>
A data processing device (1) according to yet another embodiment of the present invention comprises a plurality of processing units (11, 12) for executing instructions and a clock control circuit (22) for supplying a synchronous clock signal to the processing units. And a control register (30) rewritable by the processing unit. The clock control circuit stops supplying a synchronous clock signal to the processing unit in response to execution of a specific instruction by the processing unit, and stops writing a predetermined value or supplying a synchronous clock signal to the control register. The supply stop of the synchronous clock signal is released in response to the occurrence of an interrupt to the processing unit.

これにより、休止状態からの復帰に割り込み処理による所要の処理を要する場合以外は、他のプロセッシングユニットによる制御ビットの書き換えを行えばよい。制御ビットの書き換えを行えば、空処理を伴う割り込み処理を行うことを要しない。したがって、プロセッシングユニットを休止状態から高速に復帰させることができる。更に、簡単且つ頻繁にプロセッシングユニットの休止を使用できるようになり、省電力への貢献度を増すことが容易になる。   As a result, the control bit may be rewritten by another processing unit, except for the case where a required process by an interrupt process is required to return from the sleep state. If the control bit is rewritten, it is not necessary to perform an interrupt process involving an empty process. Therefore, the processing unit can be returned from the hibernation state at high speed. Furthermore, it becomes possible to use the pause of the processing unit simply and frequently, and it becomes easy to increase the contribution to power saving.

〔15〕<タスクスケジューリングに応答して命令の実行休止を解除>
本発明の更に別の実施の形態に係るデータ処理装置(1A)は、命令を実行する複数個のプロセッシングユニット(11,12)と、前記プロセッシングユニットが処理するタスクのスケジューリングを行うための制御データが格納されるメモリ(2)と、前記プロセッシングユニットに同期クロック信号を供給するクロック制御回路(22A)と、を有する。前記プロセッシングユニットの命令セットは低消費電力制御命令(拡張スリープ命令)を含む。前記低消費電力制御命令は、この命令を実行したプロセッシングユニットへの同期クロック信号の供給を停止させ、当該プロセッシングユニットが処理する新たなタスクを別のプロセッシングユニットが前記メモリにスケジューリングすること又は当該プロセッシングユニットへ割り込みが発行されることを待って前記クロック制御回路に前記同期クロック信号の供給停止を解除させる命令である。
[15] <Release instruction execution in response to task scheduling>
A data processing apparatus (1A) according to still another embodiment of the present invention includes a plurality of processing units (11, 12) for executing instructions and control data for scheduling tasks processed by the processing units. And a clock control circuit (22A) for supplying a synchronous clock signal to the processing unit. The instruction set of the processing unit includes a low power consumption control instruction (extended sleep instruction). The low power consumption control instruction stops the supply of a synchronous clock signal to the processing unit that executed the instruction, and another processing unit schedules the new task to be processed by the processing unit in the memory, or the processing This is an instruction for causing the clock control circuit to release the supply stop of the synchronous clock signal after waiting for an interrupt to be issued to the unit.

これにより、休止状態からの復帰に割り込み処理による所要の処理を要する場合以外は、他のプロセッシングユニットによるタスクスケジューリングを行えばよい。タスクスケジューリングのための制御データのメモリ格納動作を行えば、空処理を伴う割り込み処理を行うことを要しない。したがって、プロセッシングユニットを休止状態から高速に復帰させることができる。更に、簡単且つ頻繁にプロセッシングユニットの休止を使用できるようになり、省電力への貢献度を増すことが容易になる。   Thus, task scheduling by another processing unit may be performed except for the case where required processing by interrupt processing is required to return from the sleep state. If the memory storing operation of control data for task scheduling is performed, it is not necessary to perform an interrupt process accompanied by an empty process. Therefore, the processing unit can be returned from the hibernation state at high speed. Furthermore, it becomes possible to use the pause of the processing unit simply and frequently, and it becomes easy to increase the contribution to power saving.

2.実施の形態の詳細
実施の形態について更に詳述する。
2. Details of Embodiments Embodiments will be further described in detail.

《実施の形態1》
図1には本発明の第1の実施の形態にかかるマルチコアマイコンが例示される。同図に示されるマルチコアマイコン1は、特に制限されないが、相補型MOS集積回路製造技術によって単結晶シリコンなどの1個の半導体基板に形成される。
Embodiment 1
FIG. 1 illustrates a multi-core microcomputer according to the first embodiment of the present invention. The multi-core microcomputer 1 shown in FIG. 1 is not particularly limited, but is formed on a single semiconductor substrate such as single crystal silicon by a complementary MOS integrated circuit manufacturing technique.

マルチコアマイコン(MCU)1は、内部バス13に接続された複数個のプロセッシングユニット(PRCS(#1)、PRCS(#n))11,12を有する。夫々のプロセッシングユニット11,12は少なくとも命令を実行するCPUを有し、ここでは更に浮動小数点演算ユニット、メモリマネージメントユニット、及びキャッシュメモリを備える。特に制限されないが、複数個のプロセッシングユニット11,12は、SMPを実現するOS(オペレーティングシステム)の管理の下でアプリケーションプログラムを実行する。   The multi-core microcomputer (MCU) 1 includes a plurality of processing units (PRCS (# 1), PRCS (#n)) 11 and 12 connected to an internal bus 13. Each of the processing units 11 and 12 has at least a CPU for executing instructions, and further includes a floating point arithmetic unit, a memory management unit, and a cache memory. Although not particularly limited, the plurality of processing units 11 and 12 execute application programs under the management of an OS (operating system) that implements SMP.

内部バス13はバスブリッジ(BBRDG)14を介して周辺バス16にインタフェースされる。周辺バス26には、割り込みコントローラ(INTC)21、クロック制御回路(CPCNT)22、バスステートコントローラ(LBCNT)23、SDRAMコントローラ(SDRAMCNT)25、入出力ポート(IOP)24などが接続される。   The internal bus 13 is interfaced to the peripheral bus 16 via a bus bridge (BBRDG) 14. An interrupt controller (INTC) 21, a clock control circuit (CPCNT) 22, a bus state controller (LBCNT) 23, an SDRAM controller (SDRAMCNT) 25, an input / output port (IOP) 24, and the like are connected to the peripheral bus 26.

割り込みコントローラ21はマルチコアマイコン1の内外から与えられる割込み要求に対する割り込み優先レベルや割り込みマスク制御を行って、割り込み要求の受付を制御する。割り込み要求を受け付けると、割り込みコントローラ21はその割り込み要求に応ずる割り込み信号をプロセッシングユニット11,12の内のひとつに与える。割り込み信号INT1,INTnはプロセッシングユニット(PRCS(#1),PRCS(#n))11,12ごとに割り当てられている。割り込み信号が与えられたプロセッシングユニットは例えば実行途中の命令実行を完了してから、退避などの必要な処理を行った後、その割り込み要因に応ずる処理ルーチンに分岐する。   The interrupt controller 21 performs interrupt priority level and interrupt mask control for interrupt requests given from inside and outside the multi-core microcomputer 1 to control acceptance of interrupt requests. When receiving an interrupt request, the interrupt controller 21 provides an interrupt signal corresponding to the interrupt request to one of the processing units 11 and 12. Interrupt signals INT1 and INTn are assigned to the processing units (PRCS (# 1), PRCS (#n)) 11 and 12, respectively. The processing unit to which the interrupt signal is given, for example, completes the execution of an instruction in the middle of execution, performs necessary processing such as saving, and then branches to a processing routine corresponding to the interrupt factor.

クロック制御回路22は図示を省略する発振子又は外部から供給されるシステムクロック信号に基づいてマルチコアマイコン1の内部で使用される同期クロック信号を生成する。例えばプロセッシングユニット11には同期クロック信号CLK1が供給され、プロセッシングユニット12には同期クロック信号CLKnが供給される。クロック制御回路22は、特に制限されないが、低消費電力制御のための制御レジスタ(STBCR)30を有する。   The clock control circuit 22 generates a synchronous clock signal used inside the multi-core microcomputer 1 based on an oscillator (not shown) or a system clock signal supplied from outside. For example, the processing unit 11 is supplied with a synchronous clock signal CLK1, and the processing unit 12 is supplied with a synchronous clock signal CLKn. The clock control circuit 22 has a control register (STBCR) 30 for low power consumption control, although not particularly limited.

バスステートコントローラ23には例えば外部バス4を経由してROM3及びSRAM2が接続される。ROM3はプログラムやパラメータデータなどを保有する。SRAM2はプロセッシングユニット11,12のワーク領域などとして用いられる。SDRAMコントローラ25にはDDR3などのSDRAM5が接続される。SDRAM5は大容量のデータ一次記憶領域などに用いられる。   For example, the ROM 3 and the SRAM 2 are connected to the bus state controller 23 via the external bus 4. The ROM 3 holds programs and parameter data. The SRAM 2 is used as a work area for the processing units 11 and 12. An SDRAM 5 such as DDR3 is connected to the SDRAM controller 25. The SDRAM 5 is used for a large capacity data primary storage area.

マルチコアマイコン1はプロセッシングユニットの低消費電力モードを持つ。例えばCPUがスリープ命令を実行することによって当該CPUへの同期クロック信号の供給を止めて新たな命令実行を休止させるような休止状態に遷移される。この休止状態が低消費電力モードである。低消費電力モードの解除方法として、リセット、割り込み要求、又は制御レジスタ30の書き換えの3種類が用意されている。   The multi-core microcomputer 1 has a low power consumption mode of the processing unit. For example, when the CPU executes a sleep command, the CPU enters the sleep state in which the supply of the synchronous clock signal to the CPU is stopped and the execution of a new command is paused. This hibernation state is the low power consumption mode. There are three types of methods for canceling the low power consumption mode: reset, interrupt request, or rewriting of the control register 30.

図2には制御レジスタ30における一つの制御レジスタ領域のレジスタフォーマットが例示される。   FIG. 2 illustrates a register format of one control register area in the control register 30.

制御レジスタ30はプロセッシングユニット11,12毎に対応する記憶領域(制御レジスタ領域)を有する。夫々の制御レジスタ領域は、特に制限されないが、図2に例示されるように、ライトスリープビットLTSLPx、スリープ表示ビットSLEEPx、ウェイクアップビットWUPxなどを有する。xは対応するプロセッシングユニットを意味するサフィックスである。例えば、x=1はプロセッシングユニット(PRCS(#1))11に対応し、x=nはプロセッシングユニット(PRCS(#n))12に対応する。   The control register 30 has a storage area (control register area) corresponding to each of the processing units 11 and 12. Each control register area has a write sleep bit LTSLPx, a sleep indication bit SLEEPx, a wakeup bit WUPx, and the like, as illustrated in FIG. x is a suffix meaning the corresponding processing unit. For example, x = 1 corresponds to the processing unit (PRCS (# 1)) 11 and x = n corresponds to the processing unit (PRCS (#n)) 12.

ライトスリープビットLTSLPxはスリープ命令を実行したときスリープモードへ遷移するかライトスリープモードへ遷移するかを示すモードビットであり、値”0”は対応するプロセッシングユニットがスリープモードへ遷移すること、値”1”は対応するプロセッシングユニットがライトスリープモードへ遷移することを指示する。スリープモードとは、対応するプロセッシングユニットの全体、即ち、CPU、浮動小数点演算ユニット、メモリマネージメントユニット、及びキャッシュメモリなどへの動作クロック信号の供給が停止されることによって当該プロセッシングユニットが休止される動作モードである。ライトスリープモードとは、対応するプロセッシングユニットのCPUへの動作クロック信号の供給が停止され、その他の浮動小数点演算ユニット、メモリマネージメントユニット、及びキャッシュメモリへの動作クロック信号の供給が維持されることによって当該プロセッシングユニットが休止される動作モードである。ライトスリープビットLTSLPxはプロセッシングユニット11,12がユーザモード即ちアプリケーションプログラムに従ってリード及びライト可能な制御ビットとされる。   The light sleep bit LTSLPx is a mode bit indicating whether the sleep mode or the light sleep mode is changed when the sleep command is executed, and the value “0” indicates that the corresponding processing unit changes to the sleep mode. 1 ″ indicates that the corresponding processing unit shifts to the light sleep mode. The sleep mode is an operation in which the processing unit is suspended by stopping the supply of the operation clock signal to the entire corresponding processing unit, that is, the CPU, the floating point arithmetic unit, the memory management unit, and the cache memory. Mode. In the light sleep mode, the supply of the operation clock signal to the CPU of the corresponding processing unit is stopped, and the supply of the operation clock signal to the other floating point arithmetic units, the memory management unit, and the cache memory is maintained. This is an operation mode in which the processing unit is suspended. The write sleep bit LTSLPx is a control bit that can be read and written by the processing units 11 and 12 according to a user mode, that is, an application program.

スリープ表示ビットSLEEPxは、対応するプロセッシングユニットにスリープモード若しくはライトスリープモードが設定されて休止状態になっているか、又は休止状態が解除されて動作可能な状態(アクティブ状態)になっているかを示す。値”0”はアクティブ状態、値”1”は休止状態を示す。スリープ表示ビットSLEEPxはユーザモードではリード動作だけが任意に可能にされ、ライト動作については所定のハードウェアロジックを介して、スリープ命令の実行に応答して対応するビットが”1”にセットされ、休止状態の解除に応答して値”0”にクリアされる。   The sleep display bit SLEEPx indicates whether the corresponding processing unit is set in the sleep mode or the light sleep mode and is in a dormant state, or is released from the dormant state and is in an operable state (active state). A value “0” indicates an active state, and a value “1” indicates a dormant state. In the user mode, only the read operation is arbitrarily enabled for the sleep indication bit SLEEPx. For the write operation, the corresponding bit is set to “1” in response to the execution of the sleep instruction via a predetermined hardware logic, It is cleared to the value “0” in response to the release of the hibernation state.

ウェイクアップビットWUPxは、対応するプロセッシングユニットの休止状態を解除してアクティブ状態に戻すための制御ビットであり、値”1”によって対応するプロセッシングユニットを休止状態からアクティブ状態に戻すことを指示する。値”0”の書き込みは無視される。特に制限されないが、スリープ命令の実行に応答して対応するスリープ表示ビットSLEEPxが値”1”にセットされるのに連動してウェイクアップビットWUPxが値”0”にクリアされる。   The wake-up bit WUPx is a control bit for canceling the corresponding processing unit from the hibernation state and returning it to the active state. The value “1” instructs to return the corresponding processing unit from the hibernation state to the active state. Writing the value “0” is ignored. Although not particularly limited, the wakeup bit WUPx is cleared to the value “0” in conjunction with the corresponding sleep indication bit SLEEPx being set to the value “1” in response to the execution of the sleep command.

図3にはマルチコアマイコン1におけるアクティブ状態と休止状態との間の遷移制御形態が示される。ここではプロセッシングユニット(PRCS(#n))12を休止状態にする場合が例示される。プロセッシングユニット12がスリープ命令を実行することによってクロック制御回路22に同期クロック信号CLKnの停止が要求され、これによってプロセッシングユニット12に対するクロック信号CLKnの供給が停止される。プロセッシングユニット12における同期クロック信号CLKnの停止範囲は前記ライトスリープビットLTSLPx(x=n)の値によって決まる。   FIG. 3 shows a transition control mode between the active state and the hibernation state in the multi-core microcomputer 1. Here, a case where the processing unit (PRCS (#n)) 12 is put into a dormant state is exemplified. When the processing unit 12 executes the sleep command, the clock control circuit 22 is requested to stop the synchronous clock signal CLKn, whereby the supply of the clock signal CLKn to the processing unit 12 is stopped. The stop range of the synchronous clock signal CLKn in the processing unit 12 is determined by the value of the write sleep bit LTSLPx (x = n).

休止状態のプロセッシングユニット12にタスク処理を再開させるには、プロセッシングユニット12に対する外部割込み要求の発生、アクティブ状態のプロセッシングユニット11によるプロセッシングユニット12に対する内部割込み要求の発生、又はプロセッシングユニット11によりプロセッシングユニット12に対応するウェイクアップビットWUPx(x=n)が値”1”に書き換えられるのを待つ。これによってクロック制御回路22は同期クロック信号CLKnの供給を再開する。プロセッシングユニット12のウェイクアップビットWUPxを値”1”に書き換えるときは、先ず、プロセッシングユニット11は、休止状態を解除したときプロセッシングユニット12に処理させるタスクをSRAM2にスケジューリングする。同様に、休止状態のプロセッシングユニット12に割り込みを要求するときも、先ず、プロセッシングユニット11は休止状態を解除したときプロセッシングユニット12に処理させるタスクをSRAM2にスケジューリングする。   In order for the processing unit 12 in the dormant state to resume task processing, an external interrupt request to the processing unit 12 is generated, an internal interrupt request to the processing unit 12 is generated by the processing unit 11 in the active state, or the processing unit 12 causes the processing unit 12 to It waits for the wakeup bit WUPx (x = n) corresponding to to be rewritten to the value “1”. As a result, the clock control circuit 22 resumes the supply of the synchronous clock signal CLKn. When rewriting the wakeup bit WUPx of the processing unit 12 to the value “1”, first, the processing unit 11 schedules a task to be processed by the processing unit 12 in the SRAM 2 when the sleep state is canceled. Similarly, when requesting an interrupt to the processing unit 12 in the dormant state, first, the processing unit 11 schedules a task to be processed by the processing unit 12 in the SRAM 2 when the dormant state is canceled.

図4にはタスク処理を管理するためのタスク変数とタスクコントロールフィールドとの関係が例示される。タスクコントロールフィールドにはTCFLDにはタスク毎にその処理に用いるタスク制御データなどの格納に利用されるタスクコントロールブロックTCBLKmが割り当てられる。図ではタスクTSK1、TSK2、TSK3に対応してタスクコントロールブロックTCBLK1、TCBLK2、TCBLK3が割り当てられている。タスク変数として実行中のタスクを表す実行変数(ctxtsk)と、スケジュールされたタスクを表すスケジュールタスク変数(schedtsk)がある。それぞれの変数には対応するタスクのコントロールブロックTCBLKmの先頭アドレスが書き込まれることになる。通常、実行変数(ctxtsk)とスケジュールタスク変数(schedtsk)の値は一致されることになる。タスクのスケジューリングは、例えば所要のプロセッシングユニットに対応するスケジュールタスク変数(schedtsk)に新たなタスクに関するコントロールブロックの先頭アドレスを書き込むことによって行われる。現在実行中のタスクよりも高優先度のタスクが実行可能状態になったときなどに、スケジュールタスク変数(schedtsk)の書き換えが行われる。OSは実行変数(ctxtsk)とスケジュールタスク変数(schedtsk)が一致しないとき、それが一致するように実行変数(ctxtsk)にスケジュールタスク変数(schedtsk)の値を書き込むことによって、タスクのディスパッチ(タスクの切り替え)を行う。   FIG. 4 illustrates the relationship between task variables and task control fields for managing task processing. In the task control field, a task control block TCBLKm used for storing task control data used for processing of each task is assigned to TCFLD. In the figure, task control blocks TCBLK1, TCBLK2, and TCBLK3 are assigned to tasks TSK1, TSK2, and TSK3. There are an execution variable (ctxtsk) representing a task being executed as a task variable and a schedule task variable (schedtsk) representing a scheduled task. In each variable, the head address of the control block TCBLKm of the corresponding task is written. Normally, the values of the execution variable (ctxtsk) and the scheduled task variable (schedtsk) are matched. Task scheduling is performed, for example, by writing the start address of a control block related to a new task in a schedule task variable (schedtsk) corresponding to a required processing unit. The scheduled task variable (schedtsk) is rewritten when, for example, a task having a higher priority than the currently executing task becomes executable. When the OS does not match the execution variable (ctxtsk) and the scheduled task variable (schedtsk), it writes the scheduled task variable (schedtsk) value to the execution variable (ctxtsk) so that it matches. Switch).

図5にはタスクスケジューリングとタスクディスパッチの処理例が示される。実行すべきタスクが無いとき、実行変数(ctxtsk変数)とスケジュールタスク変数(schedtsk変数)は共に値”0”になる。プロセッシングユニット11,12の休止状態においても同様に値”0”になる。この状態から、新たに実行可能状態のタスクTSKiが発生すると、スケジュールタスク変数(schedtsk変数)にそのタスクTSKiに応ずるタスクコントロールブロックの先頭アドレ、例えば”0x80001080”が書き込まれる。それによって相互に対応する実行変数(ctxtsk変数)の値とスケジュールタスク変数(schedtsk変数)の値が不一致となるので、対応する実行変数(ctxtsk変数)にその値”0x80001080”が書き込まれることによって、ディスパッチが発生し、タスクTSKiが実行中になる。   FIG. 5 shows a processing example of task scheduling and task dispatch. When there is no task to be executed, both the execution variable (ctxtsk variable) and the scheduled task variable (schedtsk variable) have the value “0”. The value “0” is similarly obtained when the processing units 11 and 12 are in a rest state. When a task TSKi in a new executable state is generated from this state, the start address of the task control block corresponding to the task TSKi, for example, “0x80001080” is written in the schedule task variable (schedtsk variable). As a result, the value of the corresponding execution variable (ctxtsk variable) and the value of the scheduled task variable (schedtsk variable) do not match, so that the value "0x80001080" is written to the corresponding execution variable (ctxtsk variable) Dispatch occurs and task TSKi is being executed.

図6にはOSの管理の下でタスクによる処理の流れを振り分け管理するディスパッチャー処理の概略的なフローチャートが例示される。ディスパッチャー処理では、タスク処理の終了に合わせて、タスクコンテキストの退避(S1)、カーネルアイドルループ処理(S2)、及びタスクコンテキストの復帰処理(S3)を行って、タスク処理への復帰を制御する。カーネルアイドルループ処理(S2)では、次に処理するタスクがスケジューリングされているか否かを判定し(S21)、スケジューリングされていなければ省電力処理が(S22)が行われ、スケジューリングされていればタスクコンテキストの復帰処理(S3)に進む。   FIG. 6 illustrates a schematic flowchart of a dispatcher process that distributes and manages a process flow by a task under the management of the OS. In the dispatcher process, task context evacuation (S1), kernel idle loop process (S2), and task context return process (S3) are performed in accordance with the end of the task process to control the return to the task process. In the kernel idle loop process (S2), it is determined whether or not a task to be processed next is scheduled (S21). If it is not scheduled, a power saving process is performed (S22). The process proceeds to context return processing (S3).

省電力処理(S22)では対応するCPUがスリープ命令を実行し、前述のようにしてそのプロセッシングユニットは休止状態にされる。   In the power saving process (S22), the corresponding CPU executes a sleep command, and the processing unit is put into a sleep state as described above.

図7には省電力処理の一例が示される。ここでは対応するライトスリープビットLTSLPxに値”1”をセットする場合(S30)を一例とする。その後に割り込みを解除し(S31)、スリープ(S32)から復帰後に割り込みを禁止して(S33)処理を終了する。休止状態として前記ライトスリープモードを使用する場合には、キャッシュメモリなどの同期クロック信号は維持されているので、キャッシュコヒーレンシが維持される。即ち、ライトスリープモードでは、休止前にキャッシュの書き戻しなどの処理が不要であり、休止状態からの復帰後もキャッシュミスが少なくて済む。これにより、プロセッシングユニットの休止状態への遷移、及び休止状態からアクティブ状態への遷移を、共に高速化することができる。   FIG. 7 shows an example of the power saving process. Here, a case where the value “1” is set in the corresponding write sleep bit LTSLPx (S30) is taken as an example. Thereafter, the interrupt is canceled (S31), the interrupt is prohibited after returning from the sleep (S32) (S33), and the process is terminated. When the light sleep mode is used as a dormant state, the synchronous clock signal of the cache memory or the like is maintained, so that cache coherency is maintained. That is, in the light sleep mode, processing such as cache write-back before the suspension is unnecessary, and cache misses can be reduced even after returning from the suspension state. Thereby, it is possible to speed up both the transition of the processing unit to the hibernation state and the transition from the hibernation state to the active state.

図8にはプロセッシングユニットの休止状態を割り込みを介して解除する動作が例示される。図6のカーネルアイドルループ処理S2でスリープ命令を実行することによって休止状態に遷移したプロセッシングユニットをアクティブ状態に復帰させるための一つの方法として、他のプロセッシングユニットが当該休止状態のプロセッシングユニットに対して割り込みを要求する方法がある。ここでは、プロセッシングユニット(PRCS(#n))12が前記ディスパッチャー処理でタスクコンテキストの退避を行ってカーネルアイドルループ(S2)上で休止状態にされているものとする。このとき、マルチコアマイコン1のデータ処理の負荷が増してプロセッシングユニット12の休止状態を解除しようとするとき、他のプロセッシングユニット11はそのためのタスク起動処理(S40)を行う。タスク起動処理では、最初に、復帰後にプロセッシングユニット12に処理させたいタスクのスケジューリングをSRAM2に対して行い(S41)、次いで、プロセッシングユニット11は休止状態のプロセッシングユニット12に対する割り込み要求を割り込みコントローラ21に発行する(S42)。   FIG. 8 illustrates an operation for canceling the sleep state of the processing unit via an interrupt. As one method for returning the processing unit that has transitioned to the hibernation state by executing the sleep instruction in the kernel idle loop process S2 of FIG. 6 to another processing unit, There is a way to request an interrupt. Here, it is assumed that the processing unit (PRCS (#n)) 12 is in a dormant state on the kernel idle loop (S2) by saving the task context in the dispatcher process. At this time, when the data processing load of the multi-core microcomputer 1 increases and it is intended to cancel the hibernation state of the processing unit 12, the other processing units 11 perform task activation processing (S40) for that purpose. In the task activation process, first, scheduling of a task to be processed by the processing unit 12 after returning is performed to the SRAM 2 (S41), and then the processing unit 11 sends an interrupt request to the interrupt processing unit 12 to the interrupt controller 21. Issue (S42).

割り込みコントローラ12は休止中のプロセッシングユニット12に対する割り込み要求に応答して、プロセッシングユニット12に割り込み信号INTnを出力すると供に、クロック制御回路22にプロセッシングユニット12に対する同期クロック信号CLKnの供給を再開する。これによってアクティブ状態に遷移されたプロセッシングユニット12は、割り込み信号INTnに応答して割り込み処理を実行する(S50)。割り込み処理(S50)では、退避や割り込みハンドラのアドレスフェッチなどの割り込み入り口処理(S51)、割り込みハンドラの記述プログラムに従った割り込みハンドラによる処理(S52)、及び当該割り込みハンドラからの復帰などの割り込み出口処理(S53)を行う。ここではプロセッシングユニット12の休止状態が解除されれば良いから、割り込みハンドラによる処理は実質的な処理無し(空処理)であれば、その割り込みの目的は充分達せられる。割り込み出口処理(S53)の後、タスクコンテキストの復帰が行われ(S3)、タスク処理に復帰されて、ステップS41でスケジューリングされたタスクの処理が行われる。   In response to an interrupt request to the processing unit 12 that has been paused, the interrupt controller 12 outputs the interrupt signal INTn to the processing unit 12 and restarts the supply of the synchronous clock signal CLKn to the processing unit 12 to the clock control circuit 22. As a result, the processing unit 12 that has transitioned to the active state executes interrupt processing in response to the interrupt signal INTn (S50). In interrupt processing (S50), interrupt entry processing (S51) such as saving and interrupt handler address fetching, interrupt handler processing according to the interrupt handler description program (S52), and exit from the interrupt handler such as return Processing (S53) is performed. Here, it is sufficient that the processing unit 12 is released from the hibernation state. Therefore, if the processing by the interrupt handler has no substantial processing (empty processing), the purpose of the interrupt is sufficiently achieved. After the interrupt exit process (S53), the task context is restored (S3), the task process is restored, and the task scheduled in step S41 is performed.

図8の処理手順から明らかなように、プロセッシングユニットの休止状態を割り込みを用いて解除する場合、割り込みハンドラが空処理の場合にはそれを一度呼び出してからもとのルーチンに復帰する一連の処理が実質的に無駄な処理となり、プロセッシングユニットの休止状態を解除するまでに無駄時間が費やされ、データ処理の効率化に反する結果となる。尚、タスク処理の開始までに予め割り込みハンドラによって実行すべき処理がある場合には、その処理は無駄時間とはならず、データ処理上許容される。   As is clear from the processing procedure of FIG. 8, when the processing unit is released from the sleep state using an interrupt, if the interrupt handler is an empty process, a series of processes that call it once and then return to the original routine. However, the processing becomes substantially wasteful, and wasteful time is consumed until the processing unit is released from the hibernation state, which is contrary to the efficiency of data processing. If there is a process to be executed by the interrupt handler in advance by the start of the task process, the process is not wasted time and is allowed for data processing.

図9にはプロセッシングユニットの休止状態をウェイクアップビットWUPxの操作によって解除する動作が例示される。図6のカーネルアイドルループ処理S2でスリープ命令を実行することによって休止状態に遷移したプロセッシングユニットをアクティブ状態に復帰させるためのもう一つの方法は、他のプロセッシングユニットが当該休止状態のプロセッシングユニットに対応する制御レジスタ30のウェイクアップビットWUPxを値”1”に書き換える方法である。図8同様に、プロセッシングユニット(PRCS(#n))12が前記ディスパッチャー処理でタスクコンテキストの退避を行ってカーネルアイドルループ(S2)上で休止状態にされているものとする。このとき、マルチコアマイコン1のデータ処理の負荷が増してプロセッシングユニット12の休止状態を解除しようとするとき、他のプロセッシングユニット11はそのためのタスク起動処理(S43)を行う。タスク起動処理では、最初に、復帰後にプロセッシングユニット12に処理させたいタスクのスケジューリングをSRAM2に対して行い(S44)、次いで、プロセッシングユニット11は休止状態のプロセッシングユニット12に対する制御レジスタ30のウェイクアップビットWUPxを値”1”に書き換える(S45)。   FIG. 9 illustrates an operation of canceling the sleep state of the processing unit by operating the wakeup bit WUPx. Another method for returning the processing unit that has transitioned to the sleep state by executing the sleep instruction in the kernel idle loop process S2 of FIG. 6 is that the other processing units correspond to the processing unit in the sleep state. This is a method of rewriting the wakeup bit WUPx of the control register 30 to the value “1”. As in FIG. 8, it is assumed that the processing unit (PRCS (#n)) 12 is in a dormant state on the kernel idle loop (S2) by saving the task context in the dispatcher process. At this time, when the data processing load of the multi-core microcomputer 1 increases and it is going to cancel the hibernation state of the processing unit 12, the other processing units 11 perform task activation processing (S43) for that purpose. In the task activation process, first, scheduling of a task to be processed by the processing unit 12 after returning is performed to the SRAM 2 (S44), and then the processing unit 11 wakes up the control register 30 for the processing unit 12 in the dormant state. WUPx is rewritten to the value “1” (S45).

この書き換えに応答してクロック制御回路22はプロセッシングユニット12に対する同期クロック信号CLKnの供給を再開する。これによってアクティブ状態に遷移されたプロセッシングユニット12は、直ちにタスクコンテキストの復帰を行って(S3)、タスク処理に復帰し、ステップS44でスケジューリングされたタスクの処理を開始する。   In response to this rewriting, the clock control circuit 22 resumes the supply of the synchronous clock signal CLKn to the processing unit 12. As a result, the processing unit 12 transitioned to the active state immediately returns the task context (S3), returns to the task processing, and starts the processing of the task scheduled in step S44.

ウェイクアップビットWUPxの書き換えによってプロセッシングユニットの休止状態を解除する場合には割り込み処理を一切要さず、図8で説明した空処理で実質的に無駄な時間を一切費やすことはない。したがって、タスク処理の再開までに割り込み処理によって予め実行すべき処理がない場合には、ウェイクアップビットWUPxの書き換えによる休止状態の解除手法を採用することによって、データ処理効率の向上に資することができる。   When the processing unit is released from the sleep state by rewriting the wakeup bit WUPx, no interrupt processing is required, and no wasteful time is spent in the empty processing described with reference to FIG. Therefore, when there is no processing to be executed in advance by the interrupt processing before the task processing is resumed, the hibernation state cancellation method by rewriting the wakeup bit WUPx can be used to contribute to improvement of data processing efficiency. .

更に、タスクへの復帰時間が高速なので、頻繁にプロセッシングユニットを休止させて低消費電力を測ってもシステムパフォーマンスへの影響が少なくて済む。   Furthermore, since the return time to the task is fast, even if the processing unit is frequently paused and the low power consumption is measured, the influence on the system performance can be reduced.

また、スリープ解除用にカーネルで使用していたCPU間割り込み要求信号を1本空ける事ができ、これを他の割り込み要因に振り分けて利用することが可能になる。   In addition, one interrupt request signal between CPUs used in the kernel for canceling sleep can be made available, and this can be distributed to other interrupt factors and used.

《実施の形態2》
図10には本発明の第2の実施の形態にかかるマルチコアマイコンが例示される。同図に示されるマルチコアマイコン1Aは、特に制限されないが、相補型MOS集積回路製造技術によって単結晶シリコンなどの1個の半導体基板に形成される。
<< Embodiment 2 >>
FIG. 10 illustrates a multi-core microcomputer according to the second embodiment of the present invention. The multi-core microcomputer 1A shown in the figure is not particularly limited, but is formed on one semiconductor substrate such as single crystal silicon by a complementary MOS integrated circuit manufacturing technique.

マルチコアマイコン(MCU)1Aは、内部バス13に接続された複数個のプロセッシングユニット(PRCS(#1)、PRCS(#n))11,12を有する。夫々のプロセッシングユニット11,12は少なくとも命令を実行するCPUを有し、ここでは更に浮動小数点演算ユニット、メモリマネージメントユニット、及びキャッシュメモリを備える。特に制限されないが、複数個のプロセッシングユニット11,12は、SMPを実現するOS(オペレーティングシステム)の管理の下でアプリケーションプログラムを実行する。   The multi-core microcomputer (MCU) 1 </ b> A has a plurality of processing units (PRCS (# 1), PRCS (#n)) 11, 12 connected to the internal bus 13. Each of the processing units 11 and 12 has at least a CPU for executing instructions, and further includes a floating point arithmetic unit, a memory management unit, and a cache memory. Although not particularly limited, the plurality of processing units 11 and 12 execute application programs under the management of an OS (operating system) that implements SMP.

内部バス13はバスブリッジ(BBRDG)14を介して周辺バス16にインタフェースされる。周辺バス26には、割り込みコントローラ(INTC)21、クロック制御回路(CPCNT)22A、バスステートコントローラ(LBCNT)23A、SDRAMコントローラ(SDRAMCNT)25、入出力ポート(IOP)24などが接続される。   The internal bus 13 is interfaced to the peripheral bus 16 via a bus bridge (BBRDG) 14. An interrupt controller (INTC) 21, a clock control circuit (CPCNT) 22A, a bus state controller (LBCNT) 23A, an SDRAM controller (SDRAMCNT) 25, an input / output port (IOP) 24, and the like are connected to the peripheral bus 26.

割り込みコントローラ21Aはマルチコアマイコンの内外から与えられる割込み要求に対する割り込み優先レベルや割り込みマスク制御を行って、割り込み要求の受付を制御する。割り込み要求を受け付けると、割り込みコントローラはその割り込み要求に応ずる割り込み信号をプロセッシングユニット11,12の内の少なくともひとつに与える。割り込み信号INT1,INTnはプロセッシングユニット(PRCS(#1),PRCS(#n))11,12ごとに割り当てられている。割り込み信号が与えられたプロセッシングユニットは例えば実行途中の命令実行を完了してから、退避などの必要な処理を行った後、その割り込み要因に応ずる処理ルーチンに分岐する。尚、割り込みコントローラには、固定分配モードと自動分配モードの2つのモードがあり、固定分配モードは、プロセッシングユニット毎に割り込みマスクレジスタを設定することで、対応する割り込み要求をマスクし、処理するCPUを固定的に選択して使用する。このモードは、1要因を1このCPUで処理場合等に適用され、たとえば、AMP方式などCPUに固定の役割を持たせたシステムにおいて利用される。一方、自動分配モードは、分配対象のCPUに同時に割り込み要求を分配し、いずれかのCPUが受け付けた時点で、各CPUの割り込み要求をマスクするもので、たとえば、SMP方式などで利用される。固定分配モードのように処理するCPUが固定されている場合、そのCPUが割り込み禁止状態となっていると、割り込み禁止が解除されるまで割り込みが待たされることになるが、自動分配モードでは、分配するいずれかのCPUで割り込みが受け付け可能であれば、待たせることなく割り込みを処理することが可能となる。   The interrupt controller 21A performs interrupt priority level and interrupt mask control for interrupt requests given from inside and outside the multi-core microcomputer, and controls acceptance of interrupt requests. When receiving an interrupt request, the interrupt controller provides an interrupt signal corresponding to the interrupt request to at least one of the processing units 11 and 12. Interrupt signals INT1 and INTn are assigned to the processing units (PRCS (# 1), PRCS (#n)) 11 and 12, respectively. The processing unit to which the interrupt signal is given, for example, completes the execution of an instruction in the middle of execution, performs necessary processing such as saving, and then branches to a processing routine corresponding to the interrupt factor. The interrupt controller has two modes, a fixed distribution mode and an automatic distribution mode. In the fixed distribution mode, a CPU that masks and processes a corresponding interrupt request by setting an interrupt mask register for each processing unit. Is fixedly used. This mode is applied to a case where one factor is processed by one CPU, and is used, for example, in a system in which the CPU has a fixed role such as an AMP method. On the other hand, the automatic distribution mode distributes an interrupt request to the CPUs to be distributed at the same time, and masks the interrupt request of each CPU when one of the CPUs accepts the interrupt request. When the CPU to be processed is fixed as in the fixed distribution mode, if the CPU is in the interrupt disabled state, an interrupt is waited until the interrupt prohibition is canceled. If an interrupt can be accepted by any one of the CPUs, the interrupt can be processed without waiting.

クロック制御回路22Aは図示を省略する発振子又は外部から供給されるシステムクロック信号に基づいてマルチコアマイコン内部で使用される同期クロック信号を生成する。例えばプロセッシングユニット11には同期クロック信号CLK1が供給され、プロセッシングユニット12には同期クロック信号CLKnが供給される。クロック制御回路22は、特に制限されないが、低消費電力制御のための制御レジスタ(STBCR)30Aを有する。制御レジスタ30AはウェイクアップビットWUPxを有していない点が図1の制御レジスタと相違する。   The clock control circuit 22A generates a synchronous clock signal used inside the multi-core microcomputer based on an oscillator (not shown) or a system clock signal supplied from outside. For example, the processing unit 11 is supplied with a synchronous clock signal CLK1, and the processing unit 12 is supplied with a synchronous clock signal CLKn. Although not particularly limited, the clock control circuit 22 includes a control register (STBCR) 30A for low power consumption control. The control register 30A is different from the control register of FIG. 1 in that it does not have the wake-up bit WUPx.

バスステートコントローラ23Aには例えば外部バス4を経由してROM3及びSRAM2が接続される。ROM3はプログラムやパラメータデータなどを保有する。SRAM2はプロセッシングユニット11,12のワーク領域などとして用いられる。SDRAMコントローラ25にはDDR3などのSDRAM5が接続される。SDRAM5は大容量のデータ一次記憶領域などに用いられる。   For example, the ROM 3 and the SRAM 2 are connected to the bus state controller 23A via the external bus 4, for example. The ROM 3 holds programs and parameter data. The SRAM 2 is used as a work area for the processing units 11 and 12. An SDRAM 5 such as DDR3 is connected to the SDRAM controller 25. The SDRAM 5 is used for a large capacity data primary storage area.

マルチコアマイコン1Aはプロセッシングユニットの低消費電力モードを持つ。例えばCPUがスリープ命令を実行することによって当該CPUへの同期クロック信号の供給を止めて新たな命令実行を休止させるような休止状態に遷移される。この休止状態が低消費電力モードである。低消費電力モードの解除方法として、リセット、割り込み要求、又は所定のスケジュールタスク変数の書き換えの3種類が用意されている。   The multi-core microcomputer 1A has a low power consumption mode of the processing unit. For example, when the CPU executes a sleep command, the CPU enters the sleep state in which the supply of the synchronous clock signal to the CPU is stopped and the execution of a new command is paused. This hibernation state is the low power consumption mode. There are three types of methods for canceling the low power consumption mode: reset, interrupt request, or rewriting a predetermined scheduled task variable.

スケジュールタスク変数の書き換えによる休止状態の解除について説明する。バスステートコントローラ23Aは、休止状態のプロセッシングユニットがアクティブ状態になって処理すべき新たなタスクがスケジューリングされたか否かをSRAMに対するアクセスアドレスに基づいて判別し、その判別結果をクロック制御回路22Aに通知する。   The cancellation of the dormant state by rewriting the scheduled task variable will be described. The bus state controller 23A determines based on the access address to the SRAM whether or not a new task to be processed is scheduled because the processing unit in the dormant state becomes active, and notifies the clock control circuit 22A of the determination result. To do.

例えば、バスステートコントローラ23Aには、プロセッシングユニット11,12毎にスケジュールタスク変数(schedtsk)がマッピングされたSRAM2のアドレスマッピング情報が与えられると共に、制御レジスタ30のスリープ表示ビットSLEEPxを参照し、休止状態のプロセッシングユニットに対応するスケジュールタスク変数にタスクコントロールフィールドの先頭アドレスが新たに書き込まれたか否かを判別する。クロック制御回路22Aは、その判別結果DSTを受け取ることによって、新たなタスクがスケジューリングがされたことを検出したとき、休止中のプロセッシングユニットに対する同期クロック信号の供給を再開する制御を行う。この場合には休止状態の解除を制御するプロセッシングユニットはスケジュールタスク変数の書き換えを行うストア命令などを別に実行することが必用である。   For example, the address mapping information of the SRAM 2 in which the schedule task variable (schedtsk) is mapped for each of the processing units 11 and 12 is given to the bus state controller 23A, and the sleep state bit SLEEPx of the control register 30 is referred to, and the sleep state is It is determined whether or not the start address of the task control field is newly written in the schedule task variable corresponding to the processing unit. When the clock control circuit 22A receives the determination result DST and detects that a new task has been scheduled, the clock control circuit 22A performs control to resume the supply of the synchronous clock signal to the inactive processing unit. In this case, it is necessary for the processing unit that controls the cancellation of the hibernation state to separately execute a store instruction for rewriting the schedule task variable.

更に休止状態を効率的に解除する手法として、書き込みを検出すべきスケジュールタスク変数(schedtsk)のマッピングアドレスをスリープ命令上で指定するようにしてもよい。そのようなスリープ命令を単に拡張スリープ命令とも称する。拡張スリープ命令を用いれば、バスステートコントローラ23Aは上記マッピング情報を保持したり、制御レジスタ30のスリープ表示ビットSLEEPxを参照したりすることを要しない。バスステートコントローラ23Aは拡張スリープ命令で指定されたアドレス情報を保持し、保持したアドレスに対する書き込みを監視し、当該書き込みを検出したとき、これをその判別結果DSTとして出力すればよい。   Furthermore, as a method for efficiently canceling the hibernation state, the mapping address of the schedule task variable (schedtsk) for which writing should be detected may be specified on the sleep instruction. Such a sleep command is also simply referred to as an extended sleep command. If the extended sleep instruction is used, the bus state controller 23A does not need to hold the mapping information or refer to the sleep display bit SLEEPx of the control register 30. The bus state controller 23A holds the address information specified by the extended sleep instruction, monitors writing to the held address, and outputs this as the determination result DST when the writing is detected.

図11にはマルチコアマイコン1Aにおけるアクティブ状態と休止状態との間の遷移制御形態が示される。ここではプロセッシングユニット(#n)12を休止状態にする場合が例示される。プロセッシングユニット12がスリープ命令を実行することによってクロック制御回路22Aに同期クロック信号CLKnの停止が要求され、これによってプロセッシングユニット12に対するクロック信号CLKnの供給が停止される。プロセッシングユニット12における同期クロック信号CLKnの停止範囲は前記ライトスリープビットLTSLPxの値によって決まる。   FIG. 11 shows a transition control mode between the active state and the hibernate state in the multi-core microcomputer 1A. Here, a case where the processing unit (#n) 12 is put into a dormant state is exemplified. When the processing unit 12 executes the sleep command, the clock control circuit 22A is requested to stop the synchronous clock signal CLKn, and thereby the supply of the clock signal CLKn to the processing unit 12 is stopped. The stop range of the synchronous clock signal CLKn in the processing unit 12 is determined by the value of the write sleep bit LTSLPx.

休止状態のプロセッシングユニット12をアクティブ状態に遷移させるには、プロセッシングユニット12に対する外部割込み要求の発生、アクティブ状態のプロセッシングユニット11によるプロセッシングユニット12に対する内部割込み要求の発生、又はプロセッシングユニット11によりプロセッシングユニット12の新たなタスクがスケジューリングされるのを待てばよい。これによってクロック制御回路22Aは同期クロック信号CLKnの供給を再開する。   In order to transition the processing unit 12 in the dormant state to the active state, an external interrupt request for the processing unit 12 is generated, an internal interrupt request for the processing unit 12 is generated by the processing unit 11 in the active state, or the processing unit 12 is processed by the processing unit 11. Wait for the new task to be scheduled. As a result, the clock control circuit 22A resumes the supply of the synchronous clock signal CLKn.

例えばプロセッシングユニット12の命令セットに前記拡張スリープ命令が含まれるものとする。このとき、プロセッシングユニット12が休止状態に遷移するために前記拡張スリープ命令を実行すれば、当該命令で指定されたアドレス情報がバススステートコントローラ23Aにセットされ、バスステートコントローラ23Aはその命令で指定されたアドレスへの書き込みを監視する。当該アドレス情報は、プロセッシングユニット12のスケジュールタスク変数(schedtsk)の先頭のマッピングアドレスとされる。休止中のプロセッシングユニット12によるタスク処理を再開しようとするときアクティブ状態のプロセッシングユニット11が当該スケジュールタスク変数(schedtsk)に書き込みを行ってタスクにスケジューリングを行うと、バスステートコントローラ23Aはこれを検出してクロック制御回路22Aにクロック信号CLKnの出力を再開させる。   For example, it is assumed that the extended sleep instruction is included in the instruction set of the processing unit 12. At this time, if the processing unit 12 executes the extended sleep instruction to shift to the sleep state, the address information specified by the instruction is set in the bus state controller 23A, and the bus state controller 23A specifies the instruction. Monitor writes to specified addresses. The address information is the first mapping address of the schedule task variable (schedtsk) of the processing unit 12. When the processing unit 11 in the active state writes to the scheduled task variable (schedtsk) and schedules the task when attempting to resume the task processing by the processing unit 12 that has been suspended, the bus state controller 23A detects this. Thus, the clock control circuit 22A restarts the output of the clock signal CLKn.

前記拡張スリープ命令を実行したとき、スケジュールタスク変数(schedtsk)への書き込みが発生する前に、休止中のプロセッシングユニット12に対する割り込み要求が発生すると、割り込みコントローラ21Aはクロック制御回路22Aにクロック信号CLKnの出力を再開させ、これによってプロセッシングユニット12はアクティブ状態になり、その割り込み要求に対応する割り込みハンドラで規定される割り込み処理が行われる。   When the extended sleep instruction is executed, if an interrupt request is issued to the inactive processing unit 12 before writing to the scheduled task variable (schedtsk) occurs, the interrupt controller 21A sends the clock signal CLKn to the clock control circuit 22A. The output is resumed, whereby the processing unit 12 becomes active, and interrupt processing defined by the interrupt handler corresponding to the interrupt request is performed.

特に制限されないが、タスク処理を管理するためのタスク変数とタスクコントロールフィールドとの関係は図4で説明したこと同じである。   Although not particularly limited, the relationship between the task variable for managing task processing and the task control field is the same as described with reference to FIG.

図12にはプロセッシングユニットの休止状態を所定のスケジュールタスク変数に対する書込み操作によって解除する動作が例示される。図6で説明したと同様にカーネルアイドルループ処理(S2)でスリープウェイクアップ命令を実行することによって休止状態に遷移したプロセッシングユニット12をアクティブ状態に復帰させるための一つの方法は、他のプロセッシングユニット11が当該休止状態のプロセッシングユニット12に対してタスクスケジューリングを行うという方法である。プロセッシングユニットPRCS(#n)12が前記ディスパッチャー処理でタスクコンテキストの退避を行ってカーネルアイドルループ(S2)上で休止状態にされているものとする。このとき、マルチコアマイコン1Aのデータ処理の負荷が増してプロセッシングユニット12の休止状態を解除しようとするとき、他のプロセッシングユニット11はそのためのタスク起動処理(S46)を行う。タスク起動処理では、復帰後にプロセッシングユニット12に処理させたいタスクのスケジューリングをSRAM2に対して行う(S47)。即ち、プロセッシングユニット12のスケジュールタスク変数(schedtsk)の先頭のマッピングアドレスに対する書き込みを行う。前記拡張スリープ命令の実行によって休止状態にされているときは前記書き込みアドレスは当該拡張スリープ命令で指定されているアドレスであり、このアクセスをバスステートコントローラ23Aが検出することによって、クロック制御回路22Aは同期クロック信号CLKnの出力を再開する。これによってアクティブ状態に遷移されたプロセッシングユニット12は、直ちにタスクコンテキストの復帰を行って(S3)、タスク処理に復帰し、ステップS47でスケジューリングされたタスクの処理を開始する。   FIG. 12 illustrates an operation of canceling the sleep state of the processing unit by a write operation with respect to a predetermined schedule task variable. As described with reference to FIG. 6, by executing the sleep wakeup instruction in the kernel idle loop process (S2), one method for returning the processing unit 12 that has transitioned to the sleep state to the active state is the other processing unit. 11 is a method of performing task scheduling for the processing unit 12 in the dormant state. It is assumed that the processing unit PRCS (#n) 12 has saved the task context in the dispatcher process and has been put into a sleep state on the kernel idle loop (S2). At this time, when the data processing load of the multi-core microcomputer 1A increases and the processing unit 12 is to be released from the hibernation state, the other processing units 11 perform task activation processing (S46). In the task activation process, scheduling of a task to be processed by the processing unit 12 after returning is performed on the SRAM 2 (S47). That is, the writing to the first mapping address of the schedule task variable (schedtsk) of the processing unit 12 is performed. When the sleep state is set by execution of the extended sleep instruction, the write address is an address specified by the extended sleep instruction. When the bus state controller 23A detects this access, the clock control circuit 22A The output of the synchronous clock signal CLKn is resumed. As a result, the processing unit 12 transitioned to the active state immediately returns the task context (S3), returns to the task processing, and starts the processing of the task scheduled in step S47.

割り込み要求によって休止状態を解除するには図8で説明したのと同様の処理を行えばよい。   In order to cancel the hibernation state by the interrupt request, the same process as described in FIG. 8 may be performed.

拡張スリープ命令で指定したアドレスに代表されるように所定アドレスに対する書き込みによって休止状態のプロセッシングユニットに対する新たなタスクスケジューリングが行われることに起因して、自動的に休止状態のプロセッシングユニットをアクティブ状態に遷移させるから、休止状態を解除するために割り込み処理を一切要さず、前述の空処理で実質的に無駄な時間を一切費やすことはない。したがって、タスク処理の再開までに割り込み処理によって予め実行すべき処理がない場合には、拡張スリープ命令などで指定した所定のアドレスへの書き込みによるタスクスケジューリングに連動した休止状態の解除手法を採用することによって、実施の形態1と同様にデータ処理効率の向上などに資することができる。特に、拡張スリープ命令を用いて休止状態に遷移させたときは、他のプロセッシングユニットによって所定のスケジュールタスク変数にタスクスケジューリングを行えば、その後に何ら操作を追加することなく即座に休止状態を解除することができる。   As indicated by the address specified by the extended sleep instruction, the dormant processing unit automatically transitions to the active state due to the new task scheduling performed for the dormant processing unit by writing to the predetermined address. Therefore, no interrupt processing is required to release the hibernation state, and no wasteful time is consumed in the above-described empty processing. Therefore, if there is no processing to be executed in advance by interrupt processing before resuming task processing, a hibernation release method linked to task scheduling by writing to a predetermined address specified by an extended sleep instruction or the like should be adopted. Therefore, it is possible to contribute to improvement of data processing efficiency as in the first embodiment. In particular, when transitioning to the hibernation state using the extended sleep instruction, if the task scheduling is performed on a predetermined schedule task variable by another processing unit, the hibernation state is immediately released without adding any operation thereafter. be able to.

《実施の形態3》
上記マルチコアマイコン1(1A)の利用例について説明する。
<< Embodiment 3 >>
A usage example of the multi-core microcomputer 1 (1A) will be described.

図13には4個のプロセッシングユニットを備えたマルチコアマイコンの利用形態が例示される。ここではプロセッシングユニット以外の図示を省略しているが、実際には図1及び図10で説明したその他の構成についても設けられている。図13のマルチコアマイコンは4個のプロセッシングユニットPRCS(#1)、PRCS(#2)、PRCS(#3)、PRCS(#4)を有し、例えば携帯電話システムに適用される。ここでは、着信監視、バッテリ監視の常時起動しているタスクと、ゲームアプリ、動画再生アプリ、動画デコーダ、ブラウザ、メールアプリの各タスクが動作している。夫々のプロセッシングユニットの処理性能をLD=100とする。各タスクの()内のLD=yの数字yの値は対応するプロセッシングユニットへの負荷とし、その数字だけ処理性能を必要とすることを意味する。   FIG. 13 illustrates a usage form of a multi-core microcomputer having four processing units. Here, illustrations other than the processing unit are omitted, but actually, other configurations described with reference to FIGS. 1 and 10 are also provided. The multi-core microcomputer of FIG. 13 has four processing units PRCS (# 1), PRCS (# 2), PRCS (# 3), and PRCS (# 4), and is applied to, for example, a mobile phone system. Here, tasks that are constantly activated for incoming call monitoring and battery monitoring, and tasks for a game application, a moving image reproduction application, a moving image decoder, a browser, and a mail application are operating. The processing performance of each processing unit is set to LD = 100. The value of the number y of LD = y in () of each task means that the load is applied to the corresponding processing unit, and processing performance is required by that number.

図14には図13のシステムにける負荷が低下した状態を例示する。図13の状態から、例えばメールと動画再生アプリ及び動画再生デコーダが終了すると、負荷の合計はLD=180となる。この場合には2個分のプロセッシングユニットの処理性能で足りるので、動作中のタスクを2個のプロセッシングユニットに集約することにより、残りの2個のプロセッシングユニットを休止状態にする事ができる。   FIG. 14 illustrates a state where the load in the system of FIG. 13 is reduced. For example, when the mail, the video playback application, and the video playback decoder are terminated from the state shown in FIG. In this case, since the processing performance of the two processing units is sufficient, the remaining two processing units can be put into a dormant state by consolidating the tasks in operation into the two processing units.

このようにシステム全体の負荷に応じて、動作させるプロセッシングユニットの数を動的に減らすことによって省電力を実現することができる。再び負荷が増大したときは、休止状態のプロセッシングユニットをアクティブ状態に戻せばよい。システム全体の負荷の状態に応じてプロセッシングユニットを休止させたりアクティブ状態に戻す処理を頻繁に行っても、図1で説明したウェイクアップビットWUPxを用い、或いは図10で説明した所定アドレスに対するタスクスケジューリングに連動した復帰の技術を採用することにより、データ処理のパフォーマンスを低下させることなく省電力を実現することができる。   As described above, power saving can be realized by dynamically reducing the number of processing units to be operated according to the load of the entire system. When the load increases again, the dormant processing unit may be returned to the active state. Even if the processing unit is frequently suspended or returned to the active state according to the load state of the entire system, the wakeup bit WUPx described with reference to FIG. 1 or the task scheduling for the predetermined address described with reference to FIG. By adopting the recovery technology linked to the system, power saving can be realized without degrading the data processing performance.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.

例えば、本発明は、複数のプロセッシングユニットに処理を分散させるマルチプロセッシングのひとつでSMP、即ち、複数のプロセッシングユニットで同じメモリ空間を利用し、それぞれ情報を共有できるようにすることによって、複数のプロセッシングユニットが互いに他と同じ処理を行うことを可能にして処理能力などを向上させようとするマルチプロセッサに限定されない。各プロセッシングユニットに予め所定の機能が割り当てられた非対称型マルチプロセッシング(AMP:Asymmetric Multiprocessing)を行うマルチプロセッサにも適用可能である。   For example, the present invention is one of multi-processing that distributes processing to a plurality of processing units, that is, SMP, that is, a plurality of processing units use the same memory space, and can share information respectively. The present invention is not limited to multiprocessors that allow units to perform the same processing as others to improve processing capability. The present invention can also be applied to a multiprocessor that performs asymmetric multiprocessing (AMP) in which a predetermined function is assigned to each processing unit in advance.

プロセッシングユニットの休止制御はCPGによる同期クロック信号の出力制御に限定されず、クロックパスに配置されたクロックゲートのスイッチ制御によっておこなってもよい。   The suspension control of the processing unit is not limited to the output control of the synchronous clock signal by the CPG, but may be performed by the switch control of the clock gate arranged in the clock path.

また、以上に説明ではプロセッシングユニットの休止状態は同期クロック信号の停止によって行われるものと、休止状態において回路の電源は維持され、休止状態においてプロセッシングユニットの内部状態は休止直前の状態に維持されているものとし、同期クロック信号の供給を再開すれば直前の状態から処理を再開できるものとした。本発明は、それに限定されず、再開に必要な内部状態を維持するために何らかの退避処理を必用とする場合にも同じく適用することができる。その場合には、休止状態から処理を再開するには退避した情報の復帰が必用になる。   Further, in the above description, the processing unit is in a sleep state when the synchronization clock signal is stopped, and the circuit power supply is maintained in the sleep state, and the internal state of the processing unit is maintained in the state immediately before the sleep in the sleep state. It is assumed that if the supply of the synchronous clock signal is resumed, the processing can be resumed from the previous state. The present invention is not limited to this, and can also be applied to a case where some kind of save processing is required to maintain the internal state necessary for resumption. In that case, it is necessary to restore the saved information in order to resume the processing from the hibernation state.

プロセッシングユニットの数、CPU以外にプロセッシングユニットが備える回路、マルチコアマイコンが備える回路モジュールの種類などについても適宜変更可能である。   The number of processing units, the circuits provided in the processing units other than the CPU, the types of circuit modules provided in the multi-core microcomputer, and the like can be changed as appropriate.

1、1A マルチコアマイコン(MCU)
2 SRAM
3 ROM
11,12 プロセッシングユニット(PRCS#1、PRCS#n)
21,21A 割り込みコントローラ(INTC)
22,22A クロック制御回路(CPCNT)
CLK1、CLKn 同期クロック信号
23,23A バスステートコントローラ(LBCNT)
25 SDRAMコントローラ(SDRAMCNT)
INT1,INTn 割り込み信号
30、30A 制御レジスタ(STBCR)
LTSLPx ライトスリープビット
SLEEPx スリープ表示ビット
WUPx ウェイクアップビット
TCFLD タスクコントロールフィールド
TSK1、TSK2、TSK3 タスク
TCBLK1、TCBLK2、TCBLK3 タスクコントロールブロック
PRCS#1、PRCS#2、PRCS#3、PRCS#4 プロセッシングユニット
1, 1A Multi-core microcomputer (MCU)
2 SRAM
3 ROM
11,12 processing units (PRCS # 1, PRCS # n)
21,21A Interrupt controller (INTC)
22,22A Clock control circuit (CPCNT)
CLK1, CLKn Synchronous clock signal 23, 23A Bus state controller (LBCNT)
25 SDRAM controller (SDRAMCNT)
INT1, INTn Interrupt signal 30, 30A Control register (STBCR)
LTSLPx Write sleep bit SLEEPx Sleep indication bit WUPx Wakeup bit TCFLD Task control field TSK1, TSK2, TSK3 Task TCBLK1, TCBLK2, TCBLK3 Task control block PRCS # 1, PRCS # 2, PRCS # 3, PRCS # 4 Processing unit

Claims (15)

命令を実行する複数個のプロセッシングユニットと、
前記プロセッシングユニットによる特定の命令の実行に応答して当該プロセッシングユニットによる新たな命令実行を休止させる制御を行うと共に、プロセッシングユニットに対応して設けられた制御ビットの所定値への書き換え又は当該プロセッシングユニットへの割り込み発生に応答して命令の実行休止を解除する制御を行う制御回路と、を有し、
前記プロセッシングユニットによって書き換え可能な制御レジスタが前記制御ビットを有する、データ処理装置。
A plurality of processing units for executing instructions;
In response to execution of a specific instruction by the processing unit, the control unit performs control to pause execution of a new instruction by the processing unit, and rewrites a control bit provided corresponding to the processing unit to a predetermined value or the processing unit. A control circuit that performs control to cancel execution suspension of an instruction in response to occurrence of an interrupt to
A data processing device, wherein a control register rewritable by the processing unit has the control bit.
前記命令実行を休止させる制御は、プロセッシングユニットが有する中央処理装置への同期クロック信号の供給を停止させる制御であり、
前記命令の実行休止を解除する制御は、前記中央処理装置への同期クロック信号の供給を再開させる制御である、請求項1記載のデータ処理装置。
The control for pausing the instruction execution is a control for stopping the supply of the synchronous clock signal to the central processing unit of the processing unit,
The data processing apparatus according to claim 1, wherein the control for canceling execution of the instruction is control for restarting supply of a synchronous clock signal to the central processing unit.
前記命令実行を休止させる制御は、前記制御レジスタが保有するモードビットが第1の値のとき対応するプロセッシングユニットの内部メモリへの同期クロック信号の供給を維持させながら前記中央処理装置への同期クロック信号の供給を停止させ、前記モードビットが第2の値のとき前記中央処理装置及び前記内部メモリに対する同期クロック信号の供給を停止させる制御であり、
前記命令の実行休止を解除する制御は、前記モードビットが第1の値のとき前記制御ビットの所定値への書き換えに応答して対応する中央処理装置への同期クロック信号の供給を再開させ、前記モードビットが第2の値のとき前記制御ビットの所定値への書き換えに応答して対応する中央処理装置及び前記内部メモリへの同期クロック信号の供給を再開させる制御である、請求項2記載のデータ処理装置。
When the mode bit held by the control register is a first value, the control for halting the execution of the instruction is performed by maintaining the supply of the synchronous clock signal to the internal memory of the corresponding processing unit while maintaining the synchronous clock to the central processing unit. Control to stop the supply of a signal and stop the supply of a synchronous clock signal to the central processing unit and the internal memory when the mode bit is a second value,
The control for canceling the suspension of execution of the instruction restarts the supply of the synchronous clock signal to the corresponding central processing unit in response to the rewriting of the control bit to the predetermined value when the mode bit is the first value, The control for resuming the supply of a synchronous clock signal to the corresponding central processing unit and the internal memory in response to rewriting of the control bit to a predetermined value when the mode bit is a second value. Data processing equipment.
前記プロセッシングユニットは、自らが処理するタスクのスケジューリングが行われているか否かを判別し、スケジューリングされているときはそのタスクの実行に遷移させ、スケジューリングされていないときは前記特定の命令を実行する、アイドルループ処理を行う、請求項1記載のデータ処理システム。   The processing unit determines whether or not a task to be processed is scheduled, transitions to execution of the task when it is scheduled, and executes the specific instruction when it is not scheduled The data processing system according to claim 1, wherein idle loop processing is performed. 前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから前記制御レジスタの制御ビットを所定値に書き換える第1のタスク起動処理を行う、請求項4記載のデータ処理システム。   5. The data according to claim 4, wherein the processing unit performs a first task activation process for rewriting a control bit of the control register to a predetermined value after scheduling a task for another processing unit in which instruction execution is suspended. Processing system. 割り込み要求に応答して前記プロセッシングユニットに割り込み信号を出力する割り込みコントローラを有し、
前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから当該他のプロセッシングユニットに対する割り込み要求を前記割り込みコントローラに出力する第2のタスク起動処理を行い、
前記割り込みコントローラは前記第2のタスク起動処理による割り込み要求に応答して割り込み信号を他のプロセッシングユニットに出力する、請求項4記載のデータ処理システム。
An interrupt controller that outputs an interrupt signal to the processing unit in response to an interrupt request;
The processing unit performs a second task activation process of outputting an interrupt request for the other processing unit to the interrupt controller after scheduling a task for the other processing unit in which instruction execution is suspended,
5. The data processing system according to claim 4, wherein the interrupt controller outputs an interrupt signal to another processing unit in response to an interrupt request by the second task activation process.
命令を実行する複数個のプロセッシングユニットと、
前記プロセッシングユニットが処理するタスクのスケジューリングを行うための制御データが格納されるメモリと、
前記プロセッシングユニットによる特定の命令の実行に応答して当該プロセッシングユニットによる新たな命令実行を休止させる制御を行うと共に、当該プロセッシングユニットが処理するタスクのタスク制御データが前記メモリの所定アドレスに格納されること又は当該プロセッシングユニットへの割り込みが発行されることに応答して命令の実行休止を解除する制御を行う制御回路と、を有するデータ処理装置。
A plurality of processing units for executing instructions;
A memory for storing control data for scheduling tasks to be processed by the processing unit;
In response to execution of a specific instruction by the processing unit, control is performed to pause execution of a new instruction by the processing unit, and task control data of a task processed by the processing unit is stored at a predetermined address in the memory. Or a control circuit that performs control to release the execution suspension of the instruction in response to the interrupt being issued to the processing unit.
前記特定の命令が前記所定アドレスを指定する、請求項7記載のデータ処理装置。   The data processing apparatus according to claim 7, wherein the specific instruction specifies the predetermined address. 前記命令実行を休止させる制御は、プロセッシングユニットが有する中央処理装置への同期クロック信号の供給を停止させる制御であり、
前記命令の実行休止を解除する制御は、前記中央処理装置への同期クロック信号の供給を再開させる制御である、請求項7記載のデータ処理装置。
The control for pausing the instruction execution is a control for stopping the supply of the synchronous clock signal to the central processing unit of the processing unit,
The data processing apparatus according to claim 7, wherein the control for canceling execution of the instruction is control for restarting supply of a synchronous clock signal to the central processing unit.
前記命令実行を休止させる制御は、制御レジスタが保有するモードビットが第1の値のとき対応するプロセッシングユニットの内部メモリへの同期クロック信号の供給を維持させながら前記中央処理装置への同期クロック信号の供給を停止させ、前記モードビットが第2の値のとき前記中央処理装置及び前記内部メモリに対する同期クロック信号の供給を停止させる制御であり、
前記命令の実行休止を解除する制御は、前記モードビットが第1の値のとき前記タスク制御データの格納に応答して対応する中央処理装置への同期クロック信号の供給を再開させ、前記モードビットが第2の値のとき前記タスク制御データの格納に応答して対応する中央処理装置及び前記内部メモリへの同期クロック信号の供給を再開させる制御である、請求項9記載のデータ処理装置。
When the mode bit held by the control register is the first value, the control for pausing the instruction execution is performed by maintaining the supply of the synchronous clock signal to the internal memory of the corresponding processing unit while maintaining the synchronous clock signal to the central processing unit. The supply of the synchronous clock signal to the central processing unit and the internal memory when the mode bit is a second value,
When the mode bit is a first value, the control for releasing the execution suspension of the instruction restarts the supply of the synchronous clock signal to the corresponding central processing unit in response to the storage of the task control data, and the mode bit 10. The data processing device according to claim 9, wherein when the second value is a control, the supply of the synchronous clock signal to the corresponding central processing unit and the internal memory is resumed in response to the storage of the task control data.
前記プロセッシングユニットは、自らが処理するタスクのスケジューリングが行われているか否かを判別し、スケジューリングされているときはそのタスクの実行に遷移させ、スケジューリングされていないときは前記特定の命令を実行する、アイドルループ処理を行う、請求項7記載のデータ処理システム。   The processing unit determines whether or not a task to be processed is scheduled, transitions to execution of the task when it is scheduled, and executes the specific instruction when it is not scheduled The data processing system according to claim 7, wherein idle loop processing is performed. 前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから前記タスク制御データを前記メモリに書き込む第1のタスク起動処理を行う、請求項11記載のデータ処理システム。   12. The data processing system according to claim 11, wherein the processing unit performs a first task activation process for writing the task control data to the memory after scheduling a task for another processing unit in which instruction execution is suspended. . 割り込み要求に応答して前記プロセッシングユニットに割り込み信号を出力する割り込みコントローラを有し、
前記プロセッシングユニットは、命令実行が休止されている他のプロセッシングユニットに対するタスクのスケジューリングを行ってから当該他のプロセッシングユニットに対する割り込み要求を前記割り込みコントローラに出力する第2のタスク起動処理を行い、
前記割り込みコントローラは前記第2のタスク起動処理による割り込み要求に応答して割り込み信号を他のプロセッシングユニットに出力する、請求項11記載のデータ処理システム。
An interrupt controller that outputs an interrupt signal to the processing unit in response to an interrupt request;
The processing unit performs a second task activation process of outputting an interrupt request for the other processing unit to the interrupt controller after scheduling a task for the other processing unit in which instruction execution is suspended,
12. The data processing system according to claim 11, wherein the interrupt controller outputs an interrupt signal to another processing unit in response to an interrupt request by the second task activation process.
命令を実行する複数個のプロセッシングユニットと、
前記プロセッシングユニットに同期クロック信号を供給するクロック制御回路と、
前記プロセッシングユニットによって書き換え可能な制御レジスタと、を有し、
前記クロック制御回路は、前記プロセッシングユニットによる特定の命令の実行に応答して当該プロセッシングユニットへの同期クロック信号の供給を停止し、前記制御レジスタに対する所定値の書き込み又は同期クロック信号の供給を停止しているプロセッシングユニットへの割り込み発生に応答して前記同期クロック信号の供給停止を解除する、データ処理装置。
A plurality of processing units for executing instructions;
A clock control circuit for supplying a synchronous clock signal to the processing unit;
A control register rewritable by the processing unit,
The clock control circuit stops supplying a synchronous clock signal to the processing unit in response to execution of a specific instruction by the processing unit, and stops writing a predetermined value or supplying a synchronous clock signal to the control register. A data processing device that cancels the supply stop of the synchronous clock signal in response to the occurrence of an interrupt to the processing unit.
命令を実行する複数個のプロセッシングユニットと、
前記プロセッシングユニットが処理するタスクのスケジューリングを行うための制御データが格納されるメモリと、
前記プロセッシングユニットに同期クロック信号を供給するクロック制御回路と、を有し、
前記プロセッシングユニットの命令セットは低消費電力制御命令を含み、
前記低消費電力制御命令は、この命令を実行したプロセッシングユニットへの同期クロック信号の供給を停止させ、当該プロセッシングユニットが処理する新たなタスクを別のプロセッシングユニットが前記メモリにスケジューリングすること又は当該プロセッシングユニットへ割り込みが発行されることを待って前記クロック制御回路に前記同期クロック信号の供給停止を解除させる命令である、データ処理装置。
A plurality of processing units for executing instructions;
A memory for storing control data for scheduling tasks to be processed by the processing unit;
A clock control circuit for supplying a synchronous clock signal to the processing unit,
The instruction set of the processing unit includes a low power consumption control instruction,
The low power consumption control instruction stops the supply of the synchronous clock signal to the processing unit that executed the instruction, and another processing unit schedules a new task to be processed by the processing unit in the memory or the processing. A data processing apparatus, which is an instruction that waits for an interrupt to be issued to a unit and causes the clock control circuit to cancel the supply of the synchronous clock signal
JP2011176792A 2011-08-12 2011-08-12 Data processor Withdrawn JP2013041366A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011176792A JP2013041366A (en) 2011-08-12 2011-08-12 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011176792A JP2013041366A (en) 2011-08-12 2011-08-12 Data processor

Publications (1)

Publication Number Publication Date
JP2013041366A true JP2013041366A (en) 2013-02-28

Family

ID=47889722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011176792A Withdrawn JP2013041366A (en) 2011-08-12 2011-08-12 Data processor

Country Status (1)

Country Link
JP (1) JP2013041366A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108244B2 (en) 2015-06-29 2018-10-23 Kyocera Document Solutions Inc. Electronic apparatus and non-transitory computer readable medium for power consumption control of processors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108244B2 (en) 2015-06-29 2018-10-23 Kyocera Document Solutions Inc. Electronic apparatus and non-transitory computer readable medium for power consumption control of processors

Similar Documents

Publication Publication Date Title
US11366511B2 (en) Distribution of tasks among asymmetric processing elements
US10664039B2 (en) Power efficient processor architecture
US7007180B2 (en) System and method for switching a computer system to a first or second power saving mode based on whether or not there exists a timer-expiration-waiting event in an event queue
US8112648B2 (en) Enhanced control of CPU parking and thread rescheduling for maximizing the benefits of low-power state
JP5932044B2 (en) Application event control (PAEC) based on priority to reduce power consumption
KR101529018B1 (en) Dynamic sleep for multicore computing devices
US8156362B2 (en) Hardware monitoring and decision making for transitioning in and out of low-power state
JP4938080B2 (en) Multiprocessor control device, multiprocessor control method, and multiprocessor control circuit
CN105183128B (en) Forcing a processor into a low power state
JP5312478B2 (en) Data processor performance prediction
JP4175838B2 (en) Information processing apparatus with standby mode, standby mode start method and standby mode cancel method
US7853817B2 (en) Power management independent of CPU hardware support
US20040107369A1 (en) Apparatus and method for multi-threaded processors performance control
JP2015064676A (en) Information processing device, semiconductor device, information processing method, and program
TWI454905B (en) Constrained boot techniques in multi-core platforms
WO2015171498A1 (en) Thread waiting in a multithreaded processor architecture
JP2013041366A (en) Data processor
CN114041100A (en) Non-volatile memory circuit accessible as main memory for processing circuit
JP2008243049A (en) Information processor and memory control method therefor
JP2011013836A (en) Memory arrangement management device and microprocessor
JP2010140319A (en) Semiconductor device
JP2013196112A (en) Memory system and method for controlling power saving of the same
JP2011107799A (en) Interrupt control method for asymmetric multiprocessor and asymmetric multiprocessor
JP2007179103A (en) Information processor and method for controlling information processor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141104