(57)【特許請求の範囲】
【請求項１】
逐次的データ処理命令を実行するデータ処理装置であって、該データ処理装置が、
可能なオペレーション状態の所定の集合から選択された現在のオペレーション状態を有する処理コアであって、該コアへ供給される制御状態信号によって該現オペレーション状態が定められる該処理コアと、
クロック信号の現在のクロックサイクルの所定の位相に応答して、該コアの暫定的に有効な次のオペレーション状態を表示する出力状態信号を発生する同期状態マシン回路であって、該出力状態信号が、前記コアの前記現オペレーション状態と、前記コアにより実行されるべき次のデータ処理命令を表示する前記現クロックサイクルの前記所定の位相以前に前記コアが発生した制御信号とに依存する前記同期状態マシン回路と、
前記出力状態信号と、前記現クロックサイクルの前記所定位相の後に受けた遅れ制御信号とに応答して、前記制御状態信号を発生する非同期論理回路と、
を含む逐次的データ処理命令を実行するデータ処理装置。
【請求項２】
前記コアとデータメモリとの間のデータ転送を可能ならしめる相互接続バスであって、該コアが、データ転送を行うための該相互接続バスの制御を要求する手段を含む、該相互接続バスと、
該相互接続バスの制御が前記コアに対して認可されているか否かを表示する遅れ制御信号を発生する手段と、
を含む請求項１記載の装置。
【請求項３】
データメモリと、
前記コアと、該データメモリの少なくとも部分集合との間のデータ転送をバッファリングするデータバッファと、
現在のデータ転送が該データバッファにおいてバッファリングされうるか否かを検出し、かつ該現データ転送が前記データメモリにおいてバッファリングされうるか否かを表示する遅れ制御信号を発生するメモリ管理手段と、
を含む請求項１記載の装置。
【請求項４】
オペレーション状態の前記所定の集合が、
前記コアが、該コアにとって内部的であるデータ処理オペレーションを行う動作をなしうる第１オペレーション状態と、
前記コアが、該コアと前記データメモリとの間の、前記データバッファを経てのバッファリングされたデータ転送を開始する動作をなしうる第２オペレーション状態と、
前記コアが、該コアと前記データメモリとの間の、前記データバッファを経ないバッファリングされないデータ転送を開始する動作をなしうる第３オペレーション状態と、
を含む請求項３記載の装置。
【請求項５】
前記所定の位相が前記クロック信号のクロックエッジである請求項１記載の装置。
【請求項６】
前記クロックエッジが前記クロック信号の立上りエッジである請求項５記載の装置。
【請求項７】
逐次的データ処理命令を実行するデータ処理装置のオペレーション方法において、該装置が、可能なオペレーション状態の所定の集合から選択された現在のオペレーション状態を有する処理コアであって該コアへ供給される制御状態信号によって、該現オペレーション状態が定められる該処理コアを含み、前記方法が、
クロック信号の現在のクロックサイクルの所定の位相に応答して、前記コアの暫定的に有効な次のオペレーション状態を表示する出力状態信号を発生するステップであって、該出力状態信号が、前記コアの現在のオペレーション状態と、前記コアにより実行されるべき次のデータ処理命令を表示する前記現在のクロックサイクルの前記所定の位相以前に前記コアが発生した制御信号とに依存する前記出力状態信号を発生するステップと、
前記出力状態信号と、前記現クロックサイクルの前記所定の位相の後に受けた遅れ制御信号とに応答して、前記制御状態信号を発生するステップとを含む前記逐次的データ処理命令を実行するデータ処理装置のオペレーション方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、データ処理に関する。
【０００２】
【従来の技術】
ある電子データ処理装置は、いくつかの可能なオペレーションモードまたは状態に従って動作可能な処理コアを用いている。簡単な例においては、処理コアは、任意の時刻に行われなくてはならない特定の処理タスクに依存して、「内部オペレーション」モードまたは「メモリアクセス」モードによって動作できる。
【０００３】
そのような処理コアのさまざまなオペレーション状態間の遷移を制御するために、同期状態マシンを使用することが提案された。同期状態マシンは、クロックパルスに応答して発生した信号が、次のクロックパルスにおける使用のために回路の一部に対する入力として送り返されるよう、ある程度の帰還を有する、一般に組合せ論理およびクロック動作形レジスタの両者を含む論理回路である。これらの回路は、１つまたはそれ以上の出力信号の論理レベルによって表される、いくつかの許された出力「状態」と、該出力状態間のさまざまな許された遷移とを有する。帰還の使用により、この回路は、入力信号の特定の集合に応答して１つの状態からもう１つの状態への許された遷移に入る。状態間の遷移は全てクロック信号に応答して起こる。この理由により、このような回路は、同期状態マシンと呼ばれる。
【０００４】
上述の簡単な例においては、状態マシンは、処理コアの２つの可能なオペレーション状態間の同期遷移を制御できる。これは、該コアによって行われるべき現在および次のタスクと、データ処理装置の他の現在の動作特徴とを表すさまざまな入力を状態マシンへ供給することによって実現できる。状態マシンの出力は、その場合処理コアへ制御入力として接続される。
【０００５】
例えば、メモリアクセスが必要なときは、状態マシンは、「メモリアクセス」モードをとるようにコアを制御する出力状態を発生する。必要なメモリアドレスがアクセスされ終わった時は、状態マシンの出力は、「内部オペレーション」モードをとるようにコアを制御する出力へ復帰する。
【０００６】
【発明が解決しようとする課題】
本発明の目的は、データ処理装置内の処理コアのオペレーション状態の制御を改良することである。
【０００７】
【課題を解決するための手段】
本発明は、逐次的データ処理命令を実行するデータ処理装置を提供し、該データ処理装置は、
可能なオペレーション状態の所定の集合（セット）から選択された現在のオペレーション状態を有する処理コアであって、該コアへ供給される制御状態信号によって該現オペレーション状態が定められる該処理コアと、
クロック信号の現在のクロックサイクルの所定の位相に応答して、該コアの暫定的に有効な次のオペレーション状態を表示する出力状態信号を発生する同期状態マシン回路であって、該出力状態信号が、前記コアの現在のオペレーション状態と、前記コアにより実行されるべき次のデータ処理命令を表示する前記現クロックサイクルの前記所定の位相以前に前記コアが発生した制御信号とに依存する前記同期状態マシン回路と、
前記出力状態信号と、前記現クロックサイクルの前記所定位相の後に受けた遅れ制御信号とに応答して、前記制御状態信号を発生する非同期論理回路とを含む。
【０００８】
本発明においては、同期状態マシンはデータ処理コアのオペレーションの制御に有用でありうるが、それらの回路がオペレーションにおいて同期的であるという正にその事実が（クロック信号の受信以前に、それらの入力の全てがセットされることを要求し）、ある場合においてそれらの有用性を制限しうることが認識されている。
【０００９】
例えば、処理コアの次のオペレーション状態は、現在の命令が満足に実行され終わっているか否かに依存すべきである。しかし、もし状態マシンが、現在の命令が満足に実行され終わったことの確認信号（この信号は、現在の処理サイクル内で遅く発生せしめられうる）を待つために遅延せしめられる必要があれば、全体的なデータ処理の性能が劣化しうる。
【００１０】
本発明は、処理コアの暫定的に有効な次のオペレーション状態を発生するが、その後その状態が、（もし必要ならば）非同期論理回路により非同期的に変更されることを許容する、同期状態マシンを用いることにより、この問題に取組む。これは、現在の命令の満足な実行、バッファリングされたメモリアクセスの成功、または前記コアの次のオペレーション状態に影響する相互接続バスの制御の満足な獲得、のような諸要素を可能ならしめる。
【００１１】
１つの好適実施例においては、コアが相互接続バスの制御を認可されているか否かの検出が行われる。もし否であれば、処理を再び一時的に停止させなくてはならない。従って、本装置は、前記コアとデータメモリとの間のデータ転送を可能ならしめる相互接続バスであって、データ転送を行うための該相互接続バスの制御を要求する手段を前記コアが含む該相互接続バスと、該相互接続バスの制御が前記コアに対して認可されているか否かを表示する遅れ制御信号を発生する手段とを含むことが望ましい。
【００１２】
もう１つの好適実施例においては、現在のメモリアクセスがバッファリングされうるか否かの検出を行ってもよい。もし現メモリアクセスがバッファリングされえなければ、前記コアのデータ処理オペレーションは、該メモリアクセスが直接的に行われうるまで停止させなくてはならない。従って、本装置は、データメモリと、前記コアと該データメモリの少なくとも部分集合との間のデータ転送をバッファリングするデータバッファと、現在のデータ転送が該データバッファにおいてバッファリングされうるか否かを検出し、かつ該現データ転送が前記データメモリにおいてバッファリングされうるか否かを表示する遅れ制御信号を発生するメモリ管理手段と、を含むことが望ましい。
【００１３】
好ましくは、オペレーション状態の前記所定集合は、
前記コアが、該コアにとって内部的であるデータ処理オペレーションを行う動作をなしうる第１オペレーション状態と、前記コアが、該コアと前記データメモリとの間の、前記データバッファを経てのバッファリングされたデータ転送を開始する動作をなしうる第２オペレーション状態と、前記コアが、該コアと前記データメモリとの間の、前記データバッファを経ないバッファリングされないデータ転送を開始する動作をなしうる第３オペレーション状態とを含む。
【００１４】
好ましくは、前記所定の位相は、前記クロック信号のクロックエッジである。この場合、該クロックエッジは、該クロック信号の立上りエッジであることが望ましい。
【００１５】
第２の特徴から見るとき、本発明は、逐次的データ処理命令を実行するデータ処理装置のオペレーション方法において、該装置が、可能なオペレーション状態の所定の集合から選択された現在のオペレーション状態を有する処理コアであって、該現オペレーション状態が該コアへ供給される制御状態信号によって定められる該処理コアを含み、前記方法がクロック信号の現在のクロックサイクルの所定の位相に応答して、前記コアの暫定的に有効な次のオペレーション状態を表示する出力状態信号を発生するステップであって、該出力状態信号が、前記コアの現在のオペレーション状態と、前記コアにより実行されるべき次のデータ処理命令を表示する前記現在のクロックサイクルの前記所定の位相以前に前記コアが発生した制御信号と、に依存する、前記出力状態信号を発生するステップと、
前記出力状態信号と、前記現在のクロックサイクルの前記所定の位相の後に受けた遅れた制御信号と、に応答して、前記制御状態信号を発生するステップと、を含む、前記逐次的データ処理命令を実行するデータ処理装置のオペレーション方法を提供する。
【００１６】
本発明の以上の、およびその他の、諸目的、諸特徴、および諸利点は、添付図面に関連して行われる実施例に関する以下の詳細な説明において明らかにされる。
【００１７】
【実施例】
図１は、データ処理装置の概略ブロック図である。この装置は、中央処理装置（ＣＰＵ）１００と、メモリ管理装置（ＭＭＵ）１１０と、ランダムアクセスメモリ（ＲＡＭ）１２０とを含む。ＣＰＵ１００とＭＭＵ１１０とは、ＣＰＵ１００からＭＭＵ１１０へメモリアドレスを転送するための仮想アドレスバスによりリンクされ、ＭＭＵ１１０とＲＡＭ１２０とは、物理アドレスバスによりリンクされる。データバス１４０は、ＣＰＵ１００と、ＭＭＵ１１０と、ＲＡＭ１２０とを、データ交換のためにリンクする。ＣＰＵとＭＭＵとは、メモリアクセス中に制御情報がＭＭＵとＣＰＵとの間で転送可能にするためのハンドシェイキング制御線１５０により接続されている。
【００１８】
図２は、中央処理装置１００の概略図である。ＣＰＵ１００は、プログラム可能論理アレイ（ＰＬＡ）として具体化される同期状態マシン２００と、非同期論理回路２１０と、処理コア２２０とを含む。処理コア２２０は、ＣＰＵ１００によって行われるべき算術演算を主として行う。
【００１９】
同期状態マシン２００は、ＣＰＵ１００のオペレーションの全体的制御を維持する。特に、同期状態マシン２００は、キャッシュメモリ、メモリ管理装置１１０、およびコアの間のデータ転送を制御し、またコア２２０のクロッキングを制御する。このコアクロッキングの制御は、その時、コア２２０によって行われている現在のオペレーションの性質に依存して、クロック速度が相次ぐクロックサイクル間において変化せしめられうるので、重要である。
【００２０】
特に、状態マシン２００は（非同期論理回路２１０を経て）クロックセレクタ２２５を制御する。このクロックセレクタは、高速（「ｆ」）および低速（「ｓ」）のクロック信号を受け、状態マシン２００へ供給されるべき高速または低速クロック信号のいずれかを選択する。高速クロック信号は、高速の逐次メモリアクセス（後述参照）を制御するのに用いられ、低速クロック信号は、低速の外部メモリアクセス（これも後述参照）を制御するのに用いられる。
【００２１】
従って、同期状態マシン２００は、クロックセレクタ２２５から供給されるクロック信号２３０の制御のもとに動作する。状態マシン２００は、その入力がクロック信号２３０の単一アクティブエッジ以前にセットされる必要があり、且つその出力がクロック信号２３０の該アクティブエッジの短い処理遅延後に発生するようにされる点において、通常のように動作する。
【００２２】
本実施例においては、状態マシン２００は、コア２２０から、また非同期論理回路２１０の出力から、同期入力を受ける。状態マシン２００は、非同期論理回路２１０へ供給される同期出力を発生する。その時、非同期論理回路２１０は、該同期出力を変更した後に、コア２２０へ変更された出力を送りうる可能性を有する。非同期論理回路２１０によって行われるこの変更は、該非同期論理回路が、例えばＭＭＵ１１０から受けるいわゆる「遅れ」入力に基づいて行われる。
【００２３】
図３は、同期状態マシン２００および非同期論理回路２１０の動作を示す概略タイミング図である。
図３の頂部の波形は、クロック信号２３０を示す。同期状態マシン２００の状態を変えるアクティブエッジは、立上りクロックエッジ３００である。従って、状態マシン２００への同期入力は、クロックエッジ３００により有効（ｖａｌｉｄ）になることが要求される。これは、図３の第２行に示されている。
状態マシン２００は、クロックエッジ３００の短い処理遅延後に有効な出力状態を発生する。これは、図３の第３行に有効状態３１０として示されている。
【００２４】
非同期論理回路２１０へ供給される遅れ入力は、クロックエッジ３００により有効にならなくてはならない状態マシン２００への同期入力とは対照的に、クロックエッジ３００の後に有効になりうる。これらの（図３の第４行に示されている）遅れ入力に応答して、非同期論理回路２１０は（図３の第５行に示されている）出力信号３２０を発生する。出力信号３２０は、状態マシン２００に対する同期入力になるように、次の立上りクロックエッジ以前に少なくとも部分的に該状態マシン２００へ帰還される。
状態マシン２００の出力状態を変更する非同期論理回路２１０の動作の例は、失敗したバッファリングされない書込み操作中に起こる。
【００２５】
状態マシン２００は、ＣＰＵ１００からの全ての書込み操作がバッファリングされることを仮定して構成されている。バッファリングされる書込み操作は、ＣＰＵ１００がデータを書込みバッファ（図示されていない）内に書込み、その後、該データが書込みバッファから宛て先アドレスへ転送されている間実行を続ける書込み操作である。しかし、バッファリングされる書込みが、特定のメモリアドレスに対して行われうるか否かは、そのアドレスの関数である。ＭＭＵ１１０は、現書込みアドレスに対してバッファリングされる書込みが可能であるか否かを決定するために参照する必要があるルックアップテーブルを保持する。ＭＭＵ１１０はＣＰＵ１００へ、現アドレスに対してバッファリングされる書込みが可能であるか否かを表示するハンドシェイク信号を返す。しかし、ハンドシェイク信号の状態は、ＣＰＵ１００の最大動作周波数を制限しなければ、状態マシンの状態変化が起こるクロックエッジ３００により保証されえない。
【００２６】
従って、もしＭＭＵが、現書込み操作がバッファリングできないことを表示するハンドシェイク信号をＣＰＵ１００へ返せば、このハンドシェイク信号は、非同期論理回路２１０へ遅れ入力として供給される。この場合、状態マシン２００が発生した出力状態は、バッファリングされる書込みが起こりうるものと仮定されるが、この出力状態は、非同期論理回路２１０からコア２２０へ供給される該出力状態がバッファリングされる書込みが起こりえないことを表示するものになるように、非同期論理回路２１０により変更される。バッファリングされる書込みが不可能な時は、ＣＰＵは、「低速外部」と呼ばれるオペレーションモードをとらなければならず、そのモードにおいてはメモリアクセスは、バッファを経てではなく、外部メモリに対して直接行われる（低速プロセス）。
【００２７】
同期状態マシンによって行われる仮定は、それらが一般的に真であり、時折にのみ非同期論理回路２１０による変更を必要とするものになるように、選択できる。
図４は、状態マシン２００の可能な状態と、非同期論理回路２１０によるそれらの状態の可能な変更とを示す概略状態図である。
【００２８】
状態マシン２００の（および非同期論理回路２１０の出力の）５つの可能な状態が、以下にリストされる。これらは、コア２２０の可能なオペレーション状態またはモードを表す。コア２２０のオペレーションモードは、非同期論理回路２１０の出力によってセットされ、該出力はそれ自体が、状態マシン２００の出力状態に等しいか、または（もし遅れ入力が、状態マシン２００の出力状態がいま不適当であることを表示すれば）以下のリストから選択された異なる状態でありうる。
【００２９】
「アイドル」状態においては、ＣＰＵは、（マルチサイクル算術演算のような）内部タスクを行うので、メモリまたはメモリバッファに対するアクセスを試みつつあることはない。
【００３０】
「ルック」状態においては、ＣＰＵ１００は、メモリアクセスのための新しいアドレスを出し終わって、そのアドレスがキャッシュメモリ内に保持されているか否かを検出するために、キャッシュメモリを検査しつつある。
【００３１】
「低速外部」状態は、ＣＰＵ１００がアドレスバス上へ適切なアドレスを配置することにより、外部メモリに直接アクセスする時の、バッファリングされないメモリアクセスに関する。
【００３２】
「外部データ」状態は、外部メモリアクセスに際して用いられ、ＣＰＵ１００が、該ＣＰＵからデータバス上へ、またはデータバス上から該ＣＰＵへ、データが転送されることを予期している状態に関する。
【００３３】
最後に、「高速逐次」状態は、高速の、逐次的メモリアクセス、すなわち、データがキャッシュメモリから読取られるアクセス、またはデータが書込みバッファを経て逐次書込まれるアクセスに関する。
【００３４】
上述の失敗したバッファリングされない書込みの例においては、状態マシン２００は、「ルック」状態において始動し、逐次的なバッファリングされる書込みを行うために「高速逐次」状態へ移行するか、または「ルック」状態に留まる。もしＭＭＵが、現メモリ位置がバッファリング不可能であるのがわかったことを検出すれば、非同期論理回路２１０は状態マシン出力を、「ルック」または「高速逐次」状態から「低速外部」状態へ変化させる。これは、コア１００の状態を補正する。さらに、非同期論理回路２１０は、キャッシュおよびＭＭＵが制御される方法を変更する。変更された状態は、状態マシン２００へ帰還されるので、次の遷移はその変更された状態から起こる。
【００３５】
これらの遷移は図４に、「ルック」状態から「ルック」状態へ復帰する可能な同期遷移を表示する実線４００と、「ルック」状態から「高速逐次」状態への可能な同期遷移を表示する実線４１０とにより示されている。非同期論理回路２１０によって行われる、「高速逐次」状態から「低速外部」状態への変更は破線４２０によって表示され、「ルック」状態から「低速外部」状態への変更は破線４２５によって表示されている。
【００３６】
上述のように、外部メモリアクセスに際しては、状態マシン２００は、「低速外部」状態から「外部データ」状態への同期遷移４３０を行う。しかし、もし外部バスを制御する回路（これは、それ自体が状態マシンでありうる）が、次のクロックサイクルによるバス通信に必要な状態をとる応答をしなければ、非同期論理回路２１０は、コアのオペレーション状態を、非同期遷移４４０によって強制的に「外部データ」から「低速外部」へ復帰させる。しかし、もし外部データアクセスが満足に行われれば、状態は「ルック」状態へ同期的復帰４５０を行う。
【００３７】
同様の機構はまた、状態マシンを強制的に「アイドル」状態に（すなわち「ルック」状態から「アイドル」状態に）するのにも用いることができる。これは、入力の遅れ変化によって必ずしも用いられる必要はないが、主状態マシンが必要とする入力の数を減少させるので、状態マシンの製造コストを節減する。従って、図４は、「アイドル」状態から「ルック」状態への同期遷移４６０と、その後の、「ルック」状態から「アイドル」状態へ復帰する可能な非同期遷移４７０とを示す。
【００３８】
ここでは、添付図面を参照しつつ、本発明の例示的な実施例を詳細に説明してきたが、本発明はそれらの説明通りの実施例に制限されるものではないこと、および本技術分野に習熟した者ならば、添付の特許請求の範囲により定められる本発明の範囲および精神から逸脱することなく、それらに対してさまざまな変更および改変を行いうること、を理解すべきである。
【図面の簡単な説明】
【図１】データ処理装置の概略ブロック図。
【図２】中央処理装置の概略図。
【図３】図２の中央処理装置の動作を示す概略タイミング図。
【図４】処理コアの可能なオペレーション状態を示す概略状態図。
【符号の説明】
１００    中央処理装置
１１０    メモリ管理装置
１２０    ランダムアクセスメモリ
１４０    データバス
２００    同期状態マシン
２１０    非同期論理回路
２２０    処理コア
【図１】
0003601872.tif 000002
【図２】
0003601872.tif 000003
【図３】
0003601872.tif 000004
【図４】
0003601872.tif 000005