JP2001147821A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JP2001147821A
JP2001147821A JP2000268939A JP2000268939A JP2001147821A JP 2001147821 A JP2001147821 A JP 2001147821A JP 2000268939 A JP2000268939 A JP 2000268939A JP 2000268939 A JP2000268939 A JP 2000268939A JP 2001147821 A JP2001147821 A JP 2001147821A
Authority
JP
Japan
Prior art keywords
processor core
clock
instruction
exception processing
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000268939A
Other languages
English (en)
Inventor
Masashi Takahashi
真史 高橋
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000268939A priority Critical patent/JP2001147821A/ja
Priority to US09/657,906 priority patent/US6757810B1/en
Publication of JP2001147821A publication Critical patent/JP2001147821A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】 例外処理後に任意の動作モードへ復帰できな
いという課題があった。 【解決手段】クロック停止命令の実行時、クロック停止
制御部12はF/F13に1を設定しクロックCLKの
プロセッサコア11への供給を停止する。例外検出処理
部16が例外処理発生を検出するとクロック停止制御部
12はF/F13の1をF/F14へコピーし、F/F
13に0を設定しクロックCLKをプロセッサコア11
へ供給する。プロセッサコア11はF/F14の値をチ
ェックし、1であった場合、例外処理要求発生時ではク
ロック停止状態であると判定し、例外処理の終了後にク
ロック停止命令を実行しクロック停止状態に復帰する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、クロック停止モー
ドを持つプロセッサ(microprocessor)に係り、特に、R
ISCプロセッサ等の消費電力を削減可能なのプロセッ
サに関する。
【0002】
【従来の技術】従来より、プロセッサ、特に、RISC
プロセッサは低消費電力化が進み、携帯情報端末にも用
いられて来ている。このような低消費電力プロセッサ
は、SLEEPモード或いは、スタンバイモード等のク
ロック停止モードに移行して、内部のクロックを停止す
るための命令を備えている。
【0003】図7は、クロック停止モードを持つ従来の
プロセッサの構成を示したブロック図である。
【0004】図7に示す構成の従来のプロセッサにおい
て、プロセッサコア1は、クロック停止命令を実行し、
クロック停止指示をクロック停止制御部2に与える。こ
れを受けたクロック停止制御部2は、フリップフロップ
(F/F)3に値“1”をセットする。これにより、O
R回路4の出力が値“1”に固定され、クロックCLK
がプロセッサコア1に供給されなくなる。これにより、
プロセッサコア1はクロック停止モードに移行して、消
費電力を低減する。
【0005】次に、プロセッサコア1によるクロック停
止命令Zの実行中に例外処理要求が発生した場合につい
て説明する。
【0006】図8は、図7に示した従来のプロセッサコ
アの例外処理発生時における動作を示すフローチャート
である。
【0007】先ず、外部から割り込みで例外処理要求が
出力され、例外処理検出部5が例外処理要求を検出する
と(S801)、例外処理検出部5はクロック停止モー
ド解除指示をクロック停止制御部2に与える。これを受
けたクロック停止制御部2はフリップフロップ3をリセ
ットして、即ち、値“0”を保持させる。これにより、
OR回路4を通じて、クロックCLKがプロセッサコア
1へ供給される。そして、プロセッサコア1、あるいは
他の制御回路(図示せず)が、例外処理ルーチンの実行
の終了後に復帰する戻り番地として、例外処理発生時に
プロセッサコア1が実行していたクロック停止命令Zの
次の命令のアドレスをプログラムカウンタ(以下、PC
と略称する)に設定する(S802)。
【0008】そして、上記したように、OR回路4を通
して、クロックCLKのプロセッサコア1への供給が再
開されたので、プロセッサコア1は、動作モードに移行
して例外処理ルーチンを実行する(S803)。
【0009】プロセッサコア1は、例外処理ルーチンの
実行が終了すると復帰し、ステップS802の処理でP
Cに設定されたクロック停止命令Zの次の命令を実行す
るように復帰する。
【0010】図9は、図8のフローチャートで示した例
外処理発生時に、従来のプロセッサコアが実行する命令
列を示した説明図である。図9の(a)および(b)
は、例外処理の発生時から、例外処理ルーチンの終了後
に復帰して、プロセッサコア1により実行される命令C
を時系列に示した説明図である。
【0011】図9の(a)、(b)に示すように、クロ
ック停止命令Zを実行中に例外処理要求が発生した場
合、例外処理ルーチンの終了後に復帰し、プロセッサコ
ア1が実行を開始する命令は命令Cとなる。
【0012】
【発明が解決しようとする課題】しかしながら、従来の
クロック停止モードを持つプロセッサの実際の処理にお
いては、通常はクロック停止モードで待機し、割り込み
による例外処理のイベント発生によって例外処理ルーチ
ンを実行し、その後、再びクロック停止モードに戻るこ
とも多い。
【0013】この場合、従来のプロセッサの構成では、
割り込みにより発生した例外処理ルーチンの終了後に、
プロセッサコア1は、再びクロック停止モードに移行す
るクロック停止命令Zを実行するようにしなければなら
ない。
【0014】なぜなら、従来のプロセッサの多くの構成
では、例外処理ルーチンから復帰した場合に実行される
命令は、例外処理要求の発生時に実行していた命令の次
の番地の命令(図9の(a)では命令C)となるからで
ある。
【0015】これを解決するために、クロック停止命令
Zの実行中に割り込みが発生した場合にのみ、例外処理
ルーチンからの復帰番地として、例外処理発生時に実行
中の命令、即ち、クロック停止命令Zに強制的に設定す
る構成も考えられる。
【0016】しかしながら、現実には複数の割り込みが
あり、割り込みの種類によっては、例えば、タイマー割
り込みのように、割り込みの発生時にはクロック停止モ
ードの状態であり、割り込みの発生により例外処理ルー
チンを実行後に復帰して実行される命令として、命令ク
ロック停止モードではなく、他の命令を実行して処理を
継続することが要求される場合もある。
【0017】上記のように、従来のクロック停止モード
を持つプロセッサの場合、クロック停止モードで待機中
に割り込みにより発生した例外処理ルーチンを終了後に
復帰して実行するモードには、複数のモードがあるにも
拘らず、従来の構成では、ひとつの固定したモードにし
か復帰できないため、実際に則した適切なモードに必ず
しも復帰できないという課題があった。
【0018】本発明は、上記したような従来のプロセッ
サが有する課題を解決するためになされたもので、その
目的は、割り込み等で例外処理要求の発生時に、プロセ
ッサコアがクロック停止命令を実行していたか否かの情
報を元に、必要とされる最適のモードに復帰することが
可能で、かつ、消費電力を削減可能なプロセッサを提供
することである。
【0019】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係るプロセッサは、各種処理や命令を実行
するプロセッサコアへのクロックの供給を停止するクロ
ック停止命令を備え、前記プロセッサコアが前記クロッ
ク停止命令を実行して前記プロセッサコアを待機状態に
設定する機能を持つプロセッサであり、特に、割り込み
で例外処理要求が発生した際に、当該例外処理要求の発
生時における前記プロセッサコアの状態を記憶する記憶
回路を備え、前記プロセッサコアは、前記記憶回路内の
値に従って、前記例外処理の実行の終了後に復帰し実行
すべき命令を選択して実行することを特徴とするもので
ある。
【0020】また、この発明のプロセッサでは、前記記
憶回路が、前記例外処理の発生時における前記プロセッ
サコアの状態がクロック供給停止の待機状態であったの
か、或いはこれ以外の通常処理状態であったのかを判定
するための値を保持することを特徴とする。
【0021】また、この発明のプロセッサでは、前記記
憶回路内に格納された値が、前記例外処理要求の発生時
における前記プロセッサコアの状態がクロック供給停止
の待機状態であった場合を示す時、前記プロセッサコア
は、前記例外処理の終了後に復帰して実行する命令とし
て前記クロック停止命令を選択することを特徴とする。
【0022】また、この発明のプロセッサでは、前記記
憶回路内に格納された値が、前記例外処理要求の発生時
における前記プロセッサコアの状態がクロック供給停止
の待機状態であった場合を示す時、前記プロセッサコア
は、前記例外処理の終了後に復帰して実行する命令とし
て前記クロック停止命令の次の番地で指令される命令を
選択することを特徴とする。
【0023】また、この発明のプロセッサでは、前記記
憶回路内に格納された値が、前記例外処理要求の発生時
における前記プロセッサコアの状態がクロック供給停止
の待機状態以外の通常処理状態であった場合を示す時、
前記プロセッサコアは、前記例外処理の終了後に復帰し
て実行する命令として、前記例外処理要求の発生時に実
行していた命令の次の番地の命令を選択することを特徴
とする。
【0024】また、この発明のプロセッサでは、前記記
憶回路は、前記プロセッサコアへの前記クロックの供給
停止か否かを示した値を保持するフリップフロップであ
り、前記例外処理が終了するまでの間に、前記プロセッ
サコアは、前記フリップフロップ内に保持された値をチ
ェックし、前記例外処理要求の発生時における前記プロ
セッサコアの状態が、前記クロック供給が停止されてい
る待機状態であったのか、或いは、それ以外の通常処理
状態であったのかを判定することを特徴とする。
【0025】また、この発明のプロセッサでは、前記プ
ロセッサコアが、前記例外処理の終了後に復帰して実行
する命令を任意に変更することを特徴とする。
【0026】この発明のプロセッサは、各種処理や命令
を実行するプロセッサコアへのクロックの供給を停止す
るクロック停止命令を備え、前記プロセッサコアが前記
クロック停止命令を実行して前記プロセッサコアを待機
状態に設定する機能を持つプロセッサであり、特に、前
記プロセッサコアへのクロックの供給および停止を行う
論理回路と、前記論理回路から前記プロセッサコアへの
前記クロックの供給を制御するための設定値を保持する
第1の記憶回路と、前記第1の記憶回路内の設定値を格納
する第2の記憶回路と、例外処理要求の発生を検出した
場合、前記例外処理要求の発生時における前記第1の記
憶回路内の設定値を、前記第2の記憶回路内に設定した
後、前記第1の記憶回路を所定値にリセットさせ、前記
論理回路から前記プロセッサコアへの前記クロックの供
給を制御させ、前記プロセッサコアに例外処理を実行さ
せる判定制御部とを備えるものである。そして、プロセ
ッサコアは、前記第2の記憶回路内の値に基づいて、前
記例外処理の終了後に復帰して実行する命令を設定する
ことを特徴とするものである。
【0027】また、この発明のプロセッサでは、前記判
定制御部が、例外処理検出部とクロック停止制御部とか
ら構成される。前記例外処理検出部は、前記例外処理の
発生を検出し、検出結果を前記クロック停止制御部およ
び前記プロセッサコアへ出力し、前記クロック停止制御
部は、前記例外処理検出部からの検出結果に基づいて、
前記第1の記憶回路内の設定値を第2の記憶回路内に設
定した後、前記第1の記憶回路を所定値に設定する。そ
して、前記プロセッサコアは、前記例外処理検出部から
の検出結果に基づいて前記例外処理を実行し、前記例外
処理終了後に、前記第2の記憶回路内の設定値を基に、
前記クロック停止制御部による前記第1の記憶回路への
設定動作を制御させ、かつ、前記例外処理終了後に実行
すべき命令を選択して実行することを特徴とする。
【0028】また、この発明のプロセッサでは、前記第
1の記憶回路および第2の記憶回路が、フリップフロッ
プであることを特徴とする。
【0029】また、この発明のプロセッサでは、前記論
理回路が、一方の入力として前記クロックを入力し、他
方の入力として前記第1の記憶回路からの設定値を入力
するORゲートであることを特徴とする。
【0030】また、この発明のプロセッサでは、前記論
理回路が、一方の入力として前記クロックを入力し、他
方の入力として前記第1の記憶回路からの設定値を入力
するANDゲートであることを特徴とする。
【0031】
【発明の実施の形態】以下、本発明の実施の一形態を説
明する。
【0032】実施の形態1.図1は、本発明の実施の形
態1に係るプロセッサの構成を示したブロック図であ
る。
【0033】図1に示す構成の実施の形態1のプロセッ
サは、各種処理を実行するプロセッサコア11、プロセ
ッサコア11へのクロックCLKの供給/停止を制御す
るクロック停止制御部12、クロックCLKの供給/停
止信号(値)を保持するフリップフロップ(F/F)1
3、フリップフロップ13の保持内容と同一の値を保持
させるためのフリップフロップ(F/F)14、クロッ
ク停止制御部12の制御に従って設定されたフリップフ
ロップ13からの出力に応じて、クロックCLKのプロ
セッサコア1への供給停止を行うOR回路15、割り込
みによる例外処理要求の発生を検出する例外処理検出部
16を有している。
【0034】尚、フリップフロップ13、14、クロッ
ク停止制御部12、例外処理検出部13は、OR回路1
5によってゲートされるクロックCLKではなく、他の
クロック(図示せず)で駆動されるものとする。
【0035】次に、この発明の実施の形態1に係るプロ
セッサの動作について説明する。
【0036】図2は、図1に示した実施の形態1のプロ
セッサ内のプロセッサコア11が、例外処理発生時に実
行する命令列を示した説明図であり、図3は、プロセッ
サコア11の処理手順例を示した説明図であり、図4
は、プロセッサコア11の例外処理発生時における動作
を示したフローチャートである。
【0037】尚、プロセッサコア11がクロック停止命
令以外の通常処理を実行している時、フリップフロップ
13、14はリセットされていて値“0”を保持してい
るものとする。
【0038】先ず、プロセッサコア11は、例えば、図
2の(a)に示したような命令列における命令A、Bの
処理を実行し、命令Bの処理中に例外処理要求(割り込
み)が発生したとする。この命令Bの処理は通常の処理
で、クロック停止モードを示すクロック停止命令Zによ
る待機処理ではないとする。
【0039】即ち、プロセッサコア11が、当初、命令
Aを実行し、次に命令Bを処理している時に、例外処理
検出部16が例外処理要求の発生を検出すると、これを
クロック停止制御部12に通知した後、プロセッサコア
11に通知する。
【0040】クロック停止制御部12は例外処理要求の
発生を知ると、フリップフロップ13の保持内容“0”
をフリップフロップ14にコピーした後、フリップフロ
ップ13をリセットし、その保持内容を引き続き値
“0”に設定する。
【0041】そして、プロセッサコア11、あるいは他
の制御回路(図示せず)が、例外処理ルーチンの終了後
に復帰する戻り番地として、例外処理発生時にプロセッ
サコア11が実行していた命令Bの次の命令Cのアドレ
スをプログラムカウンタ(以下、PCと略称する)に設
定する(S402)。
【0042】そして、図4のフローチャートにおけるス
テップS403において、プロセッサコア11は、フリ
ップフロップ14の保持内容をチェックし、値“1”で
ない(即ち、値“0”)と判定した場合、次のステップ
S405に進み、例外処理ルーチンを実行する。尚、プ
ロセッサコア11は、ステップS403でフリップフロ
ップ14の保持内容をチェックすると、フリップフロッ
プ14をリセットする。
【0043】プロセッサコア11は、ステップS405
において、例外処理ルーチンの実行が終了すると、例外
処理ルーチンから復帰し、図2の(a)および図3の
(a)に示すように、ステップS402でPCへ設定し
た番地、即ち、例外処理の発生時に実行していた命令B
の次の番地である命令Cの処理を実行する。
【0044】次に、例外処理要求が発生した時に、プロ
セッサコア11がクロック停止モードの待機処理である
クロック停止命令Zを実行していた場合について説明す
る。
【0045】図2の(b)および図3(b)に示すよう
に、プロセッサコア11は、当初、命令Aを実行し、次
にクロック停止命令Zを実行する。これにより、プロセ
ッサコア11は、クロック停止制御部12にクロック停
止の指示を与えるため、クロック停止制御部12はフリ
ップフロップ13に値“1”を設定し保持させて、OR
回路15の出力を値“1”に固定する。これにより、ク
ロックCLKのプロセッサコア11への供給が停止され
る。
【0046】この状態で、例外処理検出部16が例外処
理要求の発生を検出し(S401)、クロック停止制御
部12に例外処理要求の発生を通知する。これにより、
クロック停止制御部12は、フリップフロップ13の保
持内容である値“1”をフリップフロップ14にコピー
した後、フリップフロップ13をリセットして、値
“0”を保持させる。
【0047】そして、プロセッサコア11、あるいは他
の制御回路(図示せず)が、例外処理ルーチンの実行の
終了後に復帰する戻り番地として、例外処理発生時にプ
ロセッサコア11が実行していたクロック停止命令Zの
次の命令CのアドレスをPCへ設定する(S402)。
【0048】次の、プロセッサコア11はステップS4
03にてフリップフロップ14の保持内容をチェック
し、保持内容が値“1”である場合、ステップS404
に進む。ステップS404では、例外処理ルーチンから
の復帰先である戻り番地を示すPCの設定値から1を減
算して、処理の流れはステップS405へ進む。
【0049】尚、プロセッサコア11は、フリップフロ
ップ14の保持内容をチェックすると、フリップフロッ
プ14をリセットする。即ち、値“0”を設定し保持さ
せる。
【0050】上記したように、フリップフロップ13へ
値“0”が設定されると、OR回路15を通して、プロ
セッサコア11へのクロックCLKの供給が再開される
ので、プロセッサコア11は例外処理ルーチンを実行す
る(S405)。
【0051】プロセッサコア11は、ステップS405
における例外処理ルーチンの終了後に復帰して、即ち、
図3の(b)に示すように、PCの番地で示されるクロ
ック停止命令Zを再び実行するため、ステップS405
における例外処理ルーチンの終了後、クロック停止制御
部12にクロック停止の指示を与える。これにより、ク
ロック停止制御部12は、フリップフロップ13を値
“1”に設定するので、OR回路15の出力が値“1”
に固定され、プロセッサコア11へのクロックCLKの
供給が停止され、プロセッサコア11は待機状態に入る
ことになる。
【0052】次に、例外処理要求が発生した時にプロセ
ッサコア11がクロック停止モードの待機処理であるク
ロック停止命令Zを実行している場合で、かつ、例外処
理ルーチンの復帰後にクロック停止命令Zの次の番地の
命令Cを実行したい場合について説明する。これは、図
7,図8,図9に示した従来のプロセッサの動作と同じ
であるが、図1に示した実施の形態1のプロセッサにお
いても、同様の動作を実行することが可能である。
【0053】即ち、図1に示したプロセッサ内の例外処
理検出部16が、例外処理要求の発生を検出し、かつ、
例外処理ルーチンの終了後に復帰して、プロセッサコア
11が実行する命令を、クロック停止命令Zの次の番地
の命令Cとしたい場合、例外処理検出部16は、検出し
た例外処理要求の種類に従って、クロック停止制御部1
2にフリップフロップ13の値をフリップフロップ14
へコピーさせず、値“0”をフリップフロップ14へ設
定するように、クロック停止制御部12を制御する。こ
れにより、図4のフローチャートにおけるステップS4
03での判断で、フリップフロップ14の値は“0”と
なっているので、ステップS404は実行されず、ステ
ップS405における例外処理ルーチンの終了後に復帰
し、プロセッサコア11が実行する命令は、図2の
(c)および図3の(c)に示されるように命令Cとな
る。
【0054】尚、図2の(c)および図3の(c)の処
理を実行する上記の例では、外部から例外処理検出部1
6へ供給される例外処理要求の種類に応じて、例外処理
検出部16がクロック停止制御部12へ指示を送り、ク
ロック停止制御部12は、フリップフロップ14に所定
値“0”を設定するように制御する場合について説明し
たが、本発明はこれに限定されるものではない。
【0055】例えば、クロック停止命令を複数種類準備
し、プロセッサコア11が実行する命令列内に所望のク
ロック停止命令を挿入し、プロセッサコア11が、クロ
ック停止命令の種類に応じて強制的にフリップフロップ
14に値“0”を設定するように制御する。これによ
り、クロック停止命令Zの実行中に、例外処理要求が発
生し、その後、例外処理ルーチンの終了後に復帰して、
プロセッサコア11が実行する命令を、図2の(c)お
よび図3の(c)に示した命令Cとなるように設定する
こともできる。
【0056】以上説明したように、実施の形態1のプロ
セッサによれば、プロセッサコア11へのクロックCL
Kの停止/供給を制御する値を保持するフリップフロッ
プ13の保持内容を、例外処理要求が発生した時にコピ
ーして保持するフリップフロップ14を設け、そして、
プロセッサコア11は、例外処理要求の発生で実行した
例外処理ルーチンの終了時に、フリップフロップ14の
保持内容をチェックして、例外処理要求の発生時のプロ
セッサコア11の状態がクロック停止状態であるかどう
かを判定する。判定の結果、クロック停止状態である場
合は、例外処理ルーチンの終了後に、再度、クロック停
止状態に戻り、一方、例外処理要求の発生時のプロセッ
サコア11の状態がクロック停止状態でない場合は、例
外処理の終了後に、次の命令の実行を行う通常状態に戻
ることができる。また、例外処理要求の発生時におい
て、クロック停止命令の実行の有無に関係なく、従来の
プロセッサのように、例外処理の終了後には図2の
(c)および図3の(c)に示す次の番地の命令Cに必
ず復帰するように設定することもできる。
【0057】従って、例外処理要求の発生の時に、プロ
セッサコアによりクロック停止命令が実行されていたか
否かによって、例外処理ルーチンの終了後に適切なモー
ドに復帰することができる。従って、スタンバイモード
等の機能で省電力化を図りながら、プロセッサのフレキ
シビリティーを向上させることができる。
【0058】実施の形態2 図5は、本発明の実施の形態2に係るプロセッサの構成
を示したブロック図である。但し、図1に示した実施の
形態1に係るプロセッサと同様の構成要素には同一符号
を付し、それらの説明を省略する。
【0059】実施の形態2のプロセッサの構成は、実施
の形態1のプロセッサの構成とほぼ同様であるが、異な
る点は、クロックCLKの供給/停止を行うゲート回路
としてAND回路17を用い、また、フリップフロップ
13および14への保持内容の設定方法にある。
【0060】次に、本発明の実施の形態2に係るプロセ
ッサの動作について説明する。
【0061】図6は、図5に示す実施の形態2のプロセ
ッサにおけるプロセッサコア11の例外処理発生時にお
ける動作を示したフローチャートである。尚、以下の説
明において、実施の形態1の説明で使用した図2および
図3の説明図を用いる。
【0062】先ず、図5に示す実施の形態2のプロセッ
サにおけるプロセッサコア11が、例えば、図2の
(a)に示したような命令列の命令A、Bの処理を実行
しており、命令Bの処理中に例外処理要求(割り込み)
が発生したとする。この命令Bの処理は通常の処理で、
クロック停止モードを示すクロック停止命令Zによる待
機処理ではないとする。
【0063】即ち、プロセッサコア11が、当初、命令
Aを実行し、次に命令Bを処理している時に、例外処理
検出部16が例外処理要求の発生を検出する場合を考え
る。この場合、フリップフロップ13には値“1”が設
定され、AND回路17からクロックCLKがプロセッ
サコア11へ供給されている。
【0064】例外処理検出部16が、例外処理要求の発
生を検出すると、例外処理要求の発生をクロック停止制
御部12に通知し、さらに、プロセッサコア11にも通
知する。
【0065】クロック停止制御部12は、例外処理検出
部16から例外処理要求の発生の通知受けとると、フリ
ップフロップ13の保持内容である値“1”をフリップ
フロップ14にコピーした後、フリップフロップ13の
値“1”を引き続き保持する。
【0066】これと並行して、プロセッサコア11、あ
るいは他の制御回路(図示せず)が、例外処理ルーチン
の実行の終了後に復帰する戻り番地として、例外処理発
生時にプロセッサコア11が実行していた命令Bの次の
命令CのアドレスをPCに設定する(S602)。
【0067】次に、ステップS603において、プロセ
ッサコア11は、フリップフロップ14の保持内容をチ
ェックし(ステップS603)、値“0”以外の値、即
ち、値“1”であると判定した場合、次のステップS6
05に進む。そして、プロセッサコア11は、フリップ
フロップ14の保持内容をチェックすると、フリップフ
ロップ14をリセットする。この場合、値“1”をセッ
トするので、フリップフロップ14の設定値は変化しな
いことになる。
【0068】次に、プロセッサコア11は、ステップS
605にて例外処理ルーチンを実行し終了すると、例外
処理ルーチンから復帰し、図2の(a)および図3の
(a)に示すように、ステップS602で設定された
(例外処理の発生時に実行していた命令Bの次の番地で
ある)命令Cの処理を実行する。
【0069】このように、例外処理要求の発生を例外処
理検出部16が検出した時点において、プロセッサコア
11が実行していた命令がクロック停止命令Zでなかっ
た場合は、フリップフロップ14は値“1”を保持して
いるので、例外処理ルーチンの終了後に復帰した場合の
プロセッサコア11が実行する命令は、図2の(a)お
よび図3の(a)に示したように命令Cとなる。
【0070】次に、例外処理要求の発生時に、プロセッ
サコア11がクロック停止モードの待機処理であるクロ
ック停止命令Zを実行していた場合について説明する。
【0071】プロセッサコア11がクロック停止命令Z
を実行する場合、即ち、プロセッサコア11から送信さ
れたクロック停止指示をクロック停止制御部12が受信
すると、クロック停止制御部12は、フリップフロップ
13およびフリップフロップ14をリセットして値
“0”をそれぞれ保持させる。
【0072】フリップフロップ13がリセットされ値
“0”が保持されると、AND回路17の一方の入力は
値“0”となり、AND回路17の出力はローレベルに
固定される。よって、プロセッサコア11へのクロック
CLKの供給が停止される。これにより、プロセッサコ
ア11の動作は停止して待機状態に入る。
【0073】この状態で、例外処理検出部16が例外処
理要求を検出すると(ステップS601)、クロック停
止制御部12へ例外処理の発生を通知する。そして、ク
ロック停止制御部12は、フリップフロップ13に値
“1”を設定するが、この時、フリップフロップ14は
そのままリセット状態(値“0”)を維持させる。
【0074】これにより、フリップフロップ13は値
“1”が設定されるため、AND回路17を通してクロ
ックCLKがプロセッサコア11へ供給される。これに
より、プロセッサコア11が動作を再開する。
【0075】そして、プロセッサコア11、あるいは他
の制御回路(図示せず)が、例外処理ルーチンの実行の
終了後に復帰する戻り番地として、例外処理発生時にプ
ロセッサコア11が実行していたクロック停止命令Zの
次の命令CのアドレスをPCに設定する(S602)。
【0076】次に、プロセッサコア11はステップS6
03にて、フリップフロップ14の保持内容をチェック
し、保持内容が値“0”である場合、ステップS604
に進み、例外処理ルーチンからの復帰先である戻り番地
を示すPCの設定値から1を減算し、ステップS605
へ進む。尚、プロセッサコア11は、フリップフロップ
14の保持内容をチェックすると(ステップS60
3)、フリップフロップ14をリセットし値“1”を設
定する。
【0077】そして、AND回路17を通して、クロッ
クCLKがプロセッサコア11へ供給されるので、プロ
セッサコア11が例外処理ルーチンを実行する(S60
5)。その後、例外処理ルーチンの終了後に復帰する
と、プロセッサコア11は、PCの設定値に従って、図
2の(b)および図3の(b)に示す命令Zを実行す
る。
【0078】このように、例外処理要求の発生を例外処
理検出部16が検出した時点において、プロセッサコア
11が実行していた命令がクロック停止命令Zであった
場合、クロック停止制御部12の制御により、フリップ
フロップ14の保持内容は値“0”となるので、例外処
理ルーチンの終了後に復帰した場合のプロセッサコア1
1が実行する命令を、図2の(b)および図3の(b)
に示したようにクロック停止命令Zとすることができ
る。
【0079】ところで、例外処理検出部16が外部から
供給されてくる例外処理要求を検出し、プロセッサコア
11がクロック停止モードの待機処理であるクロック停
止命令Zを実行している場合で、かつ、例外処理ルーチ
ンからの復帰後に、クロック停止命令Zの次の番地の命
令Cを実行したい場合は、以下の処理を行う。
【0080】即ち、実施の形態1の場合と同様に、例外
処理検出部16は、例外処理要求を検出した場合、例外
処理要求の種類に応じて、フリップフロップ13の値
“0”をフリップフロップ14へコピーさせず、値
“1”をフリップフロップ14へ設定するようにクロッ
ク停止制御部12を制御する。これにより、図6のフロ
ーチャートにおけるステップS603での判断で、フリ
ップフロップ14は値“1”を保持しているので、処理
の流れはステップS603からステップS605へ進行
する。
【0081】そして、ステップS605における例外処
理ルーチンの終了後に復帰して、プロセッサコア11が
実行する命令は、実施の形態1の場合と同様に、図2の
(c)および図3の(c)に示されるように命令Cとな
る。
【0082】さらに、実施の形態1と同様に、図2の
(c)および図3の(c)の処理を実行する上記の例で
は、外部から例外処理検出部16へ供給される例外処理
要求の種類に応じて、例外処理検出部12がクロック停
止制御部12へ指示を送り、クロック停止制御部12
は、フリップフロップ14に値“1”を設定するように
制御する場合について説明したが、本発明はこれに限定
されるものではない。
【0083】例えば、クロック停止命令を複数種類準備
し、プロセッサコア11が実行する命令列内に所望のク
ロック停止命令を挿入し、プロセッサ11が、クロック
停止命令の種類に応じて強制的にフリップフロップ14
に値“1”を設定するように制御する。これにより、ク
ロック停止命令Zの実行中に、例外処理要求が発生し、
例外処理ルーチンの終了後に復帰して、プロセッサコア
11が実行する命令を、図2の(c)および図3の
(c)に示した命令Cとなるように設定することもでき
る。
【0084】以上説明したように、この実施の形態2の
プロセッサにおいても、上記した実施の形態1のプロセ
ッサの場合と同様に、例外処理要求の発生時にプロセッ
サコア11が実行していた命令の状態を、つまり、例外
処理要求が発生した時点でクロック停止命令Zが実行さ
れていたか否かをフリップフロップ14の値をチェック
することによって認識し、例外処理ルーチンの終了後に
所望のモードに復帰することができ、省電力化を図りな
がら、プロセッサ11のフレキシビリティーを向上させ
ることができる。
【0085】
【発明の効果】以上のように、本発明のプロセッサによ
れば、例外処理発生時にクロック停止命令が実行されて
いたか否かを判断することで、例外処理ルーチンの終了
後に、所望のモードに復帰することができ、プロセッサ
のフレキシビリティーを向上させることができるという
効果がある。
【図面の簡単な説明】
【図1】 本発明の実施の形態1によるプロセッサの構
成を示したブロック図である。
【図2】 図1のプロセッサにおけるプロセッサコアが
例外処理発生時に実行する命令列を示した図である。
【図3】 図1のプロセッサにおけるプロセッサコアの
処理手順例を示した図である。
【図4】 図1のプロセッサにおけるプロセッサコアの
例外処理発生時における動作を示したフローチャートで
ある。
【図5】 本発明の実施の形態2によるプロセッサの構
成を示したブロック図である。
【図6】 図5に示したプロセッサにおけるプロセッサ
コアの例外処理発生時における動作を示したフローチャ
ートである。
【図7】 クロック停止モードを持つ従来のプロセッサ
の構成例を示したブロック図である。
【図8】 図7に示した従来のプロセッサコアにおける
プロセッサコアの例外処理発生時における動作を示すフ
ローチャートである。
【図9】 図8のフローチャートで示した例外処理発生
時に図7に示したプロセッサにおけるプロセッサコアが
実行する命令列を示した説明図である。
【符号の説明】
11 プロセッサコア 12 クロック停止制御部 13,14 F/F 15 OR回路 16 例外処理検出部 17 AND回路

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 各種処理や命令を実行するプロセッサコ
    アへのクロックの供給を停止するクロック停止命令を備
    え、前記プロセッサコアが前記クロック停止命令を実行
    して前記プロセッサコアを待機状態に設定する機能を持
    つプロセッサにおいて、 割り込みで例外処理要求が発生した際に、当該例外処理
    要求の発生時における前記プロセッサコアの状態を記憶
    する記憶回路を備え、 前記プロセッサコアは、前記記憶回路内の値に従って、
    前記例外処理の実行の終了後に復帰し実行すべき命令を
    選択して実行することを特徴とするプロセッサ。
  2. 【請求項2】 前記記憶回路は、前記例外処理の発生時
    における前記プロセッサコアの状態がクロック供給停止
    の待機状態であったのか、或いはこれ以外の通常処理状
    態であったのかを判定するための値を保持することを特
    徴とする請求項1記載のプロセッサ。
  3. 【請求項3】 前記記憶回路内に格納された値が、前記
    例外処理要求の発生時における前記プロセッサコアの状
    態がクロック供給停止の待機状態であった場合を示す
    時、前記プロセッサコアは、前記例外処理の終了後に復
    帰して実行する命令として前記クロック停止命令を選択
    することを特徴とする請求項2記載のプロセッサ。
  4. 【請求項4】 前記記憶回路内に格納された値が、前記
    例外処理要求の発生時における前記プロセッサコアの状
    態がクロック供給停止の待機状態であった場合を示す
    時、前記プロセッサコアは、前記例外処理の終了後に復
    帰して実行する命令として前記クロック停止命令の次の
    番地で指令される命令を選択することを特徴とする請求
    項2記載のプロセッサ。
  5. 【請求項5】 前記記憶回路内に格納された値が、前記
    例外処理要求の発生時における前記プロセッサコアの状
    態がクロック供給停止の待機状態以外の通常処理状態で
    あった場合を示す時、前記プロセッサコアは、前記例外
    処理の終了後に復帰して実行する命令として、前記例外
    処理要求の発生時に実行していた命令の次の番地の命令
    を選択することを特徴とする請求項2記載のプロセッ
    サ。
  6. 【請求項6】 前記記憶回路は、前記プロセッサコアへ
    の前記クロックの供給停止か否かを示した値を保持する
    フリップフロップであり、前記例外処理が終了するまで
    の間に、前記プロセッサコアは、前記フリップフロップ
    内に保持された値をチェックし、前記例外処理要求の発
    生時における前記プロセッサコアの状態が、前記クロッ
    ク供給が停止されている待機状態であったのか、或い
    は、それ以外の通常処理状態であったのかを判定するこ
    とを特徴とする請求項2から請求項5のうちいずれか1
    項記載のプロセッサ。
  7. 【請求項7】 前記プロセッサコアは、前記例外処理の
    終了後に復帰して実行する命令を任意に変更することを
    特徴とする請求項1記載のプロセッサ。
  8. 【請求項8】 各種処理や命令を実行するプロセッサコ
    アへのクロックの供給を停止するクロック停止命令を備
    え、前記プロセッサコアが前記クロック停止命令を実行
    して前記プロセッサコアを待機状態に設定する機能を持
    つプロセッサにおいて、 前記プロセッサコアへのクロックの供給および停止を行
    う論理回路と、 前記論理回路から前記プロセッサコアへの前記クロック
    の供給を制御するための設定値を保持する第1の記憶回
    路と、 前記第1の記憶回路内の設定値を格納する第2の記憶回
    路と、 例外処理要求の発生を検出した場合、前記例外処理要求
    の発生時における前記第1の記憶回路内の設定値を、前
    記第2の記憶回路内に設定した後、前記第1の記憶回路
    を所定値にリセットさせ、前記論理回路から前記プロセ
    ッサコアへの前記クロックの供給を制御させ、前記プロ
    セッサコアに例外処理を実行させる判定制御部とを備
    え、 前記プロセッサコアは、前記第2の記憶回路内の値に基
    づいて、前記例外処理の終了後に復帰して実行する命令
    を設定することを特徴とするプロセッサ。
  9. 【請求項9】 前記判定制御部は、例外処理検出部とク
    ロック停止制御部とから構成され、前記例外処理検出部
    は、前記例外処理の発生を検出し、検出結果を前記クロ
    ック停止制御部および前記プロセッサコアへ出力し、 前記クロック停止制御部は、前記例外処理検出部からの
    検出結果に基づいて、前記第1の記憶回路内の設定値を
    第2の記憶回路内に設定した後、前記第1の記憶回路を
    所定値に設定し、 前記プロセッサコアは、前記例外処理検出部からの検出
    結果に基づいて前記例外処理を実行し、前記例外処理終
    了後に、前記第2の記憶回路内の設定値を基に、前記ク
    ロック停止制御部による前記第1の記憶回路への設定動
    作を制御させ、かつ、前記例外処理終了後に実行すべき
    命令を選択して実行することを特徴とする請求項8記載
    のプロセッサ。
  10. 【請求項10】 前記第1の記憶回路および第2の記憶
    回路は、フリップフロップであることを特徴とする請求
    項8または請求項9記載のプロセッサ。
  11. 【請求項11】 前記論理回路は、一方の入力として前
    記クロックを入力し、他方の入力として前記第1の記憶
    回路からの設定値を入力するORゲートであることを特
    徴とする請求項8から請求項10のうちいずれか1項記
    載のプロセッサ。
  12. 【請求項12】 前記論理回路は、一方の入力として前
    記クロックを入力し、他方の入力として前記第1の記憶
    回路からの設定値を入力するANDゲートであることを
    特徴とする請求項8から請求項10のうちいずれか1項
    記載のプロセッサ。
JP2000268939A 1999-09-10 2000-09-05 プロセッサ Pending JP2001147821A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000268939A JP2001147821A (ja) 1999-09-10 2000-09-05 プロセッサ
US09/657,906 US6757810B1 (en) 1999-09-10 2000-09-08 Microprocessor including memory for storing set value used to select and executive instruction after completing exception handling caused by exception request

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP25800999 1999-09-10
JP11-258009 1999-09-10
JP2000268939A JP2001147821A (ja) 1999-09-10 2000-09-05 プロセッサ

Publications (1)

Publication Number Publication Date
JP2001147821A true JP2001147821A (ja) 2001-05-29

Family

ID=26543501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000268939A Pending JP2001147821A (ja) 1999-09-10 2000-09-05 プロセッサ

Country Status (2)

Country Link
US (1) US6757810B1 (ja)
JP (1) JP2001147821A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2395302A (en) * 2002-11-13 2004-05-19 Advanced Risc Mach Ltd State saving and restoring in data processing system using scan chain cells
JP2011086298A (ja) * 2009-10-19 2011-04-28 Arm Ltd プログラム・フロー制御
KR20150117584A (ko) * 2014-04-09 2015-10-20 삼성전자주식회사 시스템 온 칩 및 그것의 검증 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4131937B2 (ja) * 2003-03-26 2008-08-13 株式会社東芝 テスト機能を有する論理回路
JP4383494B1 (ja) * 2008-09-11 2009-12-16 Necエレクトロニクス株式会社 データ処理システム及びデバッグ方法
US10447461B2 (en) * 2015-12-01 2019-10-15 Infineon Technologies Austria Ag Accessing data via different clocks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355503A (en) * 1990-05-31 1994-10-11 National Semiconductor Corporation Event driven scanning of data input equipment using multi-input wake-up techniques
US5652890A (en) * 1991-05-17 1997-07-29 Vantus Technologies, Inc. Interrupt for a protected mode microprocessor which facilitates transparent entry to and exit from suspend mode
US5632037A (en) * 1992-03-27 1997-05-20 Cyrix Corporation Microprocessor having power management circuitry with coprocessor support
JP3742839B2 (ja) * 1992-07-21 2006-02-08 レジェリティ・インコーポレイテッド シャットダウンモードにおかれることが可能なクロック発生器
US5623677A (en) * 1994-05-13 1997-04-22 Apple Computer, Inc. Apparatus and method for reducing power consumption in a computer system
US5479648A (en) * 1994-08-30 1995-12-26 Stratus Computer, Inc. Method and apparatus for switching clock signals in a fault-tolerant computer system
JP3505018B2 (ja) * 1994-11-22 2004-03-08 株式会社ルネサステクノロジ 半導体集積回路
CN1279449C (zh) 1994-12-28 2006-10-11 株式会社东芝 微处理器
US5553236A (en) * 1995-03-03 1996-09-03 Motorola, Inc. Method and apparatus for testing a clock stopping/starting function of a low power mode in a data processor
US5805923A (en) * 1995-05-26 1998-09-08 Sony Corporation Configurable power management system having a clock stabilization filter that can be enabled or bypassed depending upon whether a crystal or can oscillator is used
US5726921A (en) * 1995-12-22 1998-03-10 Intel Corporation Floating point power conservation
US6546496B1 (en) * 2000-02-16 2003-04-08 3Com Corporation Network interface with power conservation using dynamic clock control

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2395302A (en) * 2002-11-13 2004-05-19 Advanced Risc Mach Ltd State saving and restoring in data processing system using scan chain cells
GB2395302B (en) * 2002-11-13 2005-12-28 Advanced Risc Mach Ltd Hardware driven state save/restore in a data processing system
JP2011086298A (ja) * 2009-10-19 2011-04-28 Arm Ltd プログラム・フロー制御
KR20150117584A (ko) * 2014-04-09 2015-10-20 삼성전자주식회사 시스템 온 칩 및 그것의 검증 방법
KR102147172B1 (ko) 2014-04-09 2020-08-31 삼성전자주식회사 시스템 온 칩 및 그것의 검증 방법

Also Published As

Publication number Publication date
US6757810B1 (en) 2004-06-29

Similar Documents

Publication Publication Date Title
US7836291B2 (en) Method, medium, and apparatus with interrupt handling in a reconfigurable array
KR950005217B1 (ko) 프로세서 클럭 신호 제어 방법 및 정보 처리 시스템
JP3507822B2 (ja) コンピュータ装置およびその省電力制御方法
US20020095609A1 (en) Multiprocessor apparatus
US7398403B2 (en) Multiprocessor control apparatus, control method thereof, and integrated circuit
JP2009151789A (ja) 低電力モードに入る前にハードウェアで駆動されるプロセッサのステートを記憶する装置
JP2004046324A (ja) 待機モード付情報処理装置およびその待機モード開始方法と待機モード解除方法
JPH1115675A (ja) 割込みコントローラ及び制御システム
US7480812B2 (en) Microprocessor
JP2001147821A (ja) プロセッサ
US7966481B2 (en) Computer system and method for executing port communications without interrupting the receiving computer
JP2006004339A (ja) 半導体集積回路
US20050149771A1 (en) Processor control circuit, information processing apparatus, and central processing unit
JP2010102567A (ja) 周期駆動タスク実行装置、周期駆動タスク実行方法及びプログラム
US11226828B2 (en) Wakeup interrupt controller
JP2008299740A (ja) 非同期マイクロプロセッサ、電子情報装置
JP4535663B2 (ja) ステートマシン制御方式およびステートマシン
JPH0876876A (ja) マイクロプロセッサのクロック供給制御回路
JP3910422B2 (ja) 管理装置及び管理方法
JPH06342376A (ja) 情報処理装置
JP2755205B2 (ja) データ処理装置の低消費電力化方式
JP2003005984A (ja) 要因処理実行装置及び実行方法
JPH10302460A (ja) マイクロコントローラ
JPH04195316A (ja) 省電力回路
JPH02120938A (ja) データ処理方法