(57)【特許請求の範囲】
【請求項１】
データを処理する装置において、
（イ）複数の非同期制御回路と、
（ロ）前記非同期制御回路のそれぞれによって使用され、前記それぞれの非同期制御回路内でのデータの流れを制御し、かつ前記複数の非同期制御回路の少なくとも１つの他の非同期制御回路とデータ信号を交換するように構成された要求−確認制御ループと、
（ハ）前記非同期制御回路の第１の非同期制御回路の中に含まれ、この第１の非同期制御回路の要求−確認制御ループの制御信号を阻止し、それによって前記複数の非同期制御回路の要求−確認制御ループが阻止されるように前記複数の非同期制御回路の少なくとも１つの他の非同期制御回路とのデータ信号の交換を防止する停止回路と、
を具備し、
第１の非同期制御回路の要求−確認制御ループの阻止が他のすべての要求−確認制御ループに伝搬し、前記データ処理装置のすべての活動を終了させるように、前記複数の非同期制御回路が相互に関係していることを特徴とする装置。
【請求項２】
特許請求の範囲第１項記載の装置において、前記停止回路は前記要求−確認ループによって作られる要求信号を阻止するように構成されたことを特徴とする装置。
【請求項３】
特許請求の範囲第１項記載の装置において、前記第１の非同期制御回路は命令を実行するように構成されており、前記装置は、更に、実行されるべき命令を、前記第１の非同期制御回路の前記制御ループが阻止されるべきであることを指示する所定の命令と比較する比較回路を具備したことを特徴とする装置。
【請求項４】
特許請求の範囲第３項記載の装置において、命令デコーダを更に具備しており、前記比較回路は前記命令デコーダ内に含まれたことを特徴とする装置。
【請求項５】
特許請求の範囲第３項記載の装置において、前記所定の命令は現在の命令に分岐するブランチ命令であることを特徴とする装置。
【請求項６】
特許請求の範囲第３項記載の装置において、前記停止回路は、１つあるいはそれ以上の割込み信号と前記比較回路によって発生されかつ実行されるべき命令が前記所定の命令と合致することを指示する停止信号とを受ける入力を有する第１の論理回路を具備したことを特徴とする装置。
【請求項７】
特許請求の範囲第６項記載の装置において、前記第１の論理回路は、更に、前記第１の非同期制御回路の前記制御ループの制御信号が阻止されるべきであることを確認するために使用される実行信号を受ける入力を有することを特徴とする装置。
【請求項８】
特許請求の範囲第６項記載の装置において、前記第１の論理回路は、全ての入力が論理１値を有する時に論理０値を出力するように構成されたＮＡＮＤゲートであり、前記１つあるいはそれ以上の割込み信号は不活性状態の時に論理１値を有し、残りの入力信号は活性状態の時に論理１値を有することを特徴とする装置。
【請求項９】
特許請求の範囲第６項記載の装置において、前記停止回路は、更に、前記要求−確認制御ループの要求信号と前記第１の論理回路の出力とを受ける入力を有する第２の論理回路を具備しており、前記第２の論理回路の出力は前記要求信号に対する意図された受け側に結合されていることを特徴とする装置。
【請求項１０】
特許請求の範囲第９項記載の装置において、前記第２の論理回路はＡＮＤゲートであり、従って前記第１の論理回路の出力が論理０値を有するならば前記要求信号を出力しないように構成されたことを特徴とする装置。
【請求項１１】
特許請求の範囲第１項記載の装置において、割込み信号が前記停止回路によって阻止された制御信号を開放するように使用され、それによってデータ信号が制御回路間で交換されることができるようにし、そのようにして制御ループが阻止解除されるようになることを特徴とする装置。
【請求項１２】
特許請求の範囲第１項記載の装置において、前記要求−確認制御ループはレベル信号化通信プロトコルを用いることを特徴とする装置。
【請求項１３】
特許請求の範囲第１項記載の装置において、前記複数の非同期制御回路は１組の相互に作用する非同期パイプライン回路を含んだことを特徴とする装置。
【請求項１４】
特許請求の範囲第１項記載の装置を含むマイクロプロセッサ。
【請求項１５】
データ処理装置でデータを処理する方法において、
（イ）データを処理する複数の非同期制御回路を設け、各非同期制御回路がその非同期制御回路内でデータの流れを制御する要求−確認制御ループを用いかつ前記複数の非同期制御回路の少なくとも１つの他の非同期制御回路とデータ信号を交換するように構成するステップと、
（ロ）合致する所定の状態に応じて、前記非同期制御回路の第１の非同期制御回路の要求−確認制御ループの制御信号を阻止し、それによって前記複数の非同期制御回路の前記要求−確認制御ループが阻止されるように前記複数の非同期制御回路の前記少なくとも１つの他の非同期制御回路とのデータ信号の交換を防止するステップとを含み、
第１の非同期制御回路の要求−確認制御ループの阻止が他のすべての要求−確認制御ループに伝搬し、前記データ処理装置のすべての活動を終了させるように、前記複数の非同期制御回路が相互に関係していることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非同期データ処理装置に関し、より詳細には、非同期データ処理装置を高電力効率の態様で動作できるようにする技術に関する。
【０００２】
【従来の技術】
マイクロプロセッサのようなデータ処理装置は、典型的には、同期アーキテクチャを用いて構成される。これは、一般的に、非同期アーキテクチャよりも複雑ではないと考えられているからである。同期マイクロプロセッサは外部から供給されるクロック信号の制御の下で動作するのに対して、非同期マイクロプロセッサは自己タイミングを行うようにされなければならず、また外部から供給されるクロックを何等使用せずに動作する必要がある。外部から供給されるクロックを用いない場合はマイクロプロセッサを設計する上での複雑さが増大する。例えば、設計者は、基準クロックを用いないでどのようにしてデータの流れを制御するかを考慮しなければならず、また処理素子の遅延がクロック周期によって簡単にモデル化されるのではなく、回路それ自体によって測定されなければならない。
【０００３】
しかしながら、同期構成の設計に基づいたマイクロプロセッサは特に高電力効率ではない。同期回路のクロックは常時走っており回路内の遷移を生じさせ、それが電力を消費する。プロセッサがピーク作業負荷に対処することができるようにクロック周波数が設定されなければならず、クロック速度はソフトウェアの制御の下で変化する需要に調節され得るが、これは荒い粒度で比較的に雑に行われるに過ぎない。従って、殆どの場合、クロックは現在の作業負荷のために必要なクロックよりも高速で走ることになり、この結果電力が無駄となってしまう。
【０００４】
【発明が解決しようとする課題】
従って、本発明の目的は電力効率を改良したマイクロプロセッサを与えることである。
【０００５】
【課題を解決するための手段】
本発明は、（イ）複数の非同期制御回路と、（ロ）上記非同期制御回路のそれぞれによって使用され、上記それぞれの非同期制御回路内でのデータの流れを制御し、かつ上記複数の非同期制御回路の少なくとも他の１つとデータ信号を交換するように構成された要求−確認制御ループと、（ハ）上記非同期制御回路の第１のものの中に含まれ、この第１の非同期制御回路の制御ループの制御信号を阻止し、それによって上記複数の非同期制御回路の制御ループが阻止されるようになるように上記複数の非同期制御回路の上記少なくとも他の１つとのデータ信号の交換を防止する停止回路と、を具備したデータを処理する装置を与える。
【０００６】
本発明は、非同期構成の設計に基づいた装置を与える。非同期設計は有用な仕事を行うための要求に応じて回路の遷移を生じさせるだけである。それは０の電力消費と最大性能との間を要求次第で瞬時に切り替えることができる。多くの可能な応用は急速に変化する作業負荷を有するために、非同期プロセッサは顕著な電力の節約の可能性を与えることが見い出されている。
【０００７】
殆どのマイクロプロセッサはＣＭＯＳ回路として構成され、ＣＭＯＳ回路は、通常、全ての活動が停止すれば、電力消費は無視できる程のものとなる。殆どの従来技術のマイクロプロセッサは同期構成のものであり、そのため自走クロックを用いているため、それらはそれらの活動を容易には制御し得ず、プログラムが行うべき有用な仕事を終えた時に共通のソフトウェアの動作は入力が到来するまで何もしないかあるいは周辺装置をポーリングする連続ループに入ることである。これら技法の両方共、回路内で連続する活動を行い、割込みが生じるかあるいは周辺装置が入力を受けるまで有用な仕事を全然行わないかあるいは極めて小さな仕事を行うのにかなりの電力を消費する。同じプログラムを実行する非同期プロセッサも極めて小さな仕事を行うのに同様な電力を浪費してしまう。
【０００８】
本発明は、この問題を、割込みが生じるまで全てのプロセッサの活動を停止させる「停止」回路を導入することによって解決する。この回路は処理装置の非同期制御回路において制御信号を遮り、単一の要求−確認制御ループを効果的に割込みすることによって働く。制御回路は相関しているために、１つのループの制御信号を急速に（しかし、瞬間的ではなく）阻止することは装置の他の全ての制御ループを停止させ、従ってこの停止は最終的には全体の装置にわたって伝わり、全ての活動を停止させる。好ましくは、元の制御ループの停止状態を開放するために割込み信号が使用され、次いで活動はこの点からシステム全体にわたって伝わる。
【０００９】
このようにして、本発明は、制御回路の１つの制御ループの単一の制御点での停止状態をシステム全体にわたって伝播させるようにデータ処理装置内の非同期制御回路の遅延非感応性の特質を利用する。
【００１０】
好ましくは、停止回路は要求−確認制御ループによって作られた要求信号を阻止するように構成されるが、当業者にとって明かなように、停止回路は要求信号の代りに確認信号を阻止するように構成されることができる。
【００１１】
好適実施例において、第１の非同期制御回路は命令を実行するように構成されており、データ処理装置は、更に、実行されるべき命令を、第１の非同期制御回路の制御ループが阻止されるべきであることを指示する所定の命令と比較する比較回路を具備している。好ましくは、この比較回路はデータ処理装置の命令デコーダ内に含まれるが、この装置の他の位置に配置されることができる。好適実施例において、上記所定の命令は現在の命令に分岐するブランチ命令である。しかしながら、当業者にとって明らかなように、非同期制御回路の制御ループを阻止および阻止解除する他の技法が使用でき、このようなブランチ命令の使用は必須の要件ではない。
【００１２】
好ましくは、上記停止回路は、１つあるいはそれ以上の割込み信号と上記比較回路によって発生されかつ実行されるべき命令が上記所定の命令と合致することを指示する停止信号とを受ける入力を有する第１の論理回路を具備している。更に、この第１の論理回路は、第１の非同期制御回路の制御ループの制御信号が阻止されるべきであることを確認するために使用される実行信号を受ける入力を有してもよい。この実行信号は、例えば制御ループの停止が実行された前の命令の結果で条件付けられてもよいために好適実施例において使用される。この場合に、実行信号は、制御ループが停止されるべきことを前の命令の結果が指示したならば発生されることになる。更に、前の命令はブランチ命令であってもよく、この場合停止命令は実行されてはならず、従って実行信号は不活性状態に設定されることになる。
【００１３】
第１の論理回路は任意の好ましい態様で構成されることができるが、好適実施例において、この第１の論理回路は、全ての入力が論理１値を有する時に論理０値を出力するように構成されたＮＡＮＤゲートであり、上記１つあるいはそれ以上の割込み信号は不活性状態の時に論理１値を有し、残りの入力信号は活性状態の時に論理１値を有する。
【００１４】
好ましくは、停止回路は、更に、要求−確認制御ループの要求信号と第１の論理回路の出力とを受ける入力を有する第２の論理回路を具備しており、上記第２の論理回路の出力は上記要求信号に対する意図された受け側に結合されている。好適実施例において、この第２の論理回路はＡＮＤゲートであり、従って第１の論理回路の出力が論理０値を有するならば上記要求信号を出力しないように構成されている。当業者にとって明らかなように、論理ゲートの他の好ましい構成が停止回路の論理回路を構成するために使用され得る。
【００１５】
本発明の好ましい実施例において、割込み信号が上記停止回路によって阻止された制御信号を開放するように使用され、それによってデータ信号が制御回路間で交換されることができるようにし、そのようにして上記制御ループが阻止解除されるようになっている。
【００１６】
更に、好適実施例において、要求−確認制御ループはレベル信号化通信プロトコルを用いる。
【００１７】
好適実施例によれば、複数の非同期制御回路は１組の相互作用する非同期パイプライン回路を含んでいる。
【００１８】
本発明に従ったデータを処理する装置は、任意の適切な形態を取ることができるが、好適実施例においては、この装置はマイクロプロセッサである。
【００１９】
本発明の第２の側面から見て、本発明は、（イ）データを処理する複数の非同期制御回路を設けるようにし、各非同期制御回路がその非同期制御回路内でデータの流れを制御する要求−確認制御ループを用いるようにしかつ上記複数の非同期制御回路の少なくとも他の１つとデータ信号を交換するように構成されるようにしたこと、（ロ）合致する所定の状態に応じて、上記非同期制御回路の第１のものの制御ループの制御信号を阻止するようにし、それによって上記複数の非同期制御回路の上記制御ループが阻止されるようになるように上記複数の非同期制御回路の上記少なくとも他の１つとのデータ信号の交換を防止するようにすること、を含んだデータ処理装置でデータを処理する方法を与える。
【００２０】
【発明の実施の形態】
本発明の実施例が、同様な参照番号が同様な対象に対して使用される添付図面に関連して、以下に単なる例として記載される。
【００２１】
好適実施例によるマイクロプロセッサの構造を詳細に記載する前に、非同期設計についてのある背景情報を以下に記載する。
【００２２】
非同期設計は、多くの異った様相および多くの異った技法を有する複雑な分野である。基準クロックが何等存在しない場合にデータの流れを制御する技術を設ける必要がある。本発明の好適実施例によるプロセッサはデータの流れを制御するために「要求−確認」ハンドシェイクの形態を利用する。「送り手」から「受け手」へのデータの通信からなる動作のシーケンスは次の通りである。
１）送り手はバスに有効データ値を置く。
２）次いで、送り手は「要求」事象を発生する。
３）受け手は、そうする準備がなされた時にデータを受け入れる。
４）受け手は送り手に「確認」事象を発生する。
５）次いで、送り手はバスからデータを除去し、そうする準備がなされた時に次の通信を始めることができる。
【００２３】
データは通常の２進符号化装置を用いてバスを通して送られるが、要求および確認事象を信号化する態様は多数存在する。１つの技法は、レベルの変化（高レベルから低レベルへ、あるいは低レベルから高レベルへ）が１つの事象を信号化するような「転移信号化」を用いることである。図１Ａはこの転移信号化通信プロトコルを示す。図１Ａに示されるように、送り手が有効データ値をバスに置いた（転移１０で示されたように）後に、送り手は低対高転移２０で示される要求事象を発生する。次いで、受け手はデータをバスから読出し、送り手に確認事象を発生する。これは図１Ａにおいて転移３０によって表される。一旦、送り手が確認事象を受ければ、転移４０によって表されるように、バスからデータを除去することができる。図１Ａの右手側に示されるように、次いでステップのこのシーケンスは次のデータ値に対して繰り返される。図１Ａから明らかなように、高から低へのレベルの変化２５、３５も要求および確認事象の発生を表す。
【００２４】
要求および確認事象を信号化するための別態様の技法は、図１Ｂに示されるように、レベル信号化通信プロトコルを使用することであり、ここで１つの立上りエッジは１つの事象を信号化し、０への戻り相は次の事象が信号化され得る前に生じなければならない。図１Ｂに示されているように、有効データ値がバスに置かれる（転移１０）と、転移２０で送り手によって要求事象が発生され、そのデータ値を受けると、転移３０で受け手により確認事象が発生される。転移信号化通信プロトコルでの場合と同様に、次いで送り手は転移４０でデータ値をバスから除去することができる。しかしながら、更に、確認事象の受信時に、受け手は高対低転移５０で示されるように要求事象を除去し、次いで受け手は高対低転移６０で示されるように確認事象を除去する。事象のこのシーケンスはバスに置かれる次のデータ値に対してその後繰り返される。
【００２５】
図１Ａおよび１Ｂから明らかなように、転移信号化は、どの転移も役目を持っており、従ってそのタイミングは回路の機能によって決定されるため、概念的にはより明確である。また、それは最小数の転移しか用いないため、高電力効率のものとなるはずである。しかしながら、転移制御を構成化するために使用されるＣＭＯＳ回路は比較的低速で、低効率であり、そのため本発明の好適実施例では、プロセッサは、２倍の数のトランジスタを使用し、プロトコルで回復（０への戻り）相のタイミングについて幾分勝手な決定を取るようにさせてしまうが、より高速でより高電力効率である回路を使用するレベル信号化通信プロトコルを採用する。
【００２６】
上記の自己タイミング技術を用いれば、各段で処理遅延を見込んで非同期パイプライン処理ユニットを構成しかつ次の段に結果を送るように上述したプロトコルの１つを構成することが可能である。適切な設計で、可変の処理遅延と任意の外部遅延が受入可能となり、勿論長い遅延は性能の低下に結び付くことになろうが、その全てが事象の局部シーケンスとなる。
【００２７】
同期プロセッサで使用されるクロッキングパイプライン（そこでは、全体のパイプラインは最悪環境（電圧および温度）条件下の最も遅い段、及び最悪の場合を想定したデータによって決定される速度で常にクロッキングされなければならない）と異なり、非同期パイプラインは現在の状態によって決定される可変の速度で動作する。めったにない最悪の場合の条件も処理ユニットが僅かに長く処理することにより許される。これら条件が生じても、これらの場合に、ある性能のロスはあろうが、それらが充分まれである限り、全体の性能に対する影響は少ない。
【００２８】
非同期パイプライン処理ユニットを扱うために使用される自己タイミング技術を論議したが、次に本発明の好適実施例によるプロセッサのコア（コアとは一般的な処理機能を行うために使用されるプロセッサの部分である）が、プロセッサのコアの設計を示すブロック図である図２に関連して詳細に論議される。この設計は１組の相互作用する非同期パイプラインに基づいており、全てのパイプラインはそれらの自己の速度でそれらの自己の時間で動作する。これらのパイプラインはプロセッサに受入不可能な長い待ち時間を導入してしまうと思われるが、同期パイプラインと異って、非同期パイプラインはこれがクロックサイクルに依存せずそのためその自己の速度で動作できるため極めて小さな待ち時間を持つに過ぎない。
【００２９】
プロセッサの動作は、路２０５を介してメモリ２１０に命令フェッチ要求を出すアドレスインターフェース２００で始まる。アドレスインターフェース２００は自律アドレス歩進器を有しており、これは種々のパイプラインバッファの容量が許す程度に先立ってアドレスインターフェース２００が命令を予めフェッチすることができるようにする。次のアドレスを決定するためのこの歩進器論理はループ路２１５によって表される。一旦メモリパイプラインが命令を検索したら、この命令は路２２０を介して命令パイプライン２２５に送られる。ここで、命令は命令デコード論理２３０に与えるためパイプラインの態様で記憶される。命令がデコーダ２３０で復号化されると、それらは路２３５を介して制御パイプライン２４０に与えられる。
【００３０】
命令フェッチ要求を発生することに加えて、アドレスインターフェースは、また、メモリ２１０へデータ要求を発生する。データを検索すると、データ値が路２４５を介してレジスタファイル２５０に読み込まれる。次いで、実行パイプライン回路２６０は制御パイプライン２４０から命令を読み出し、レジスタファイル２５０から読み出されたデータ値に対してこれらの命令を実行する。実行の結果は路２６５を介してアドレスインターフェース２００に与えられ、また、路２７０を介してレジスタファイル２５０に戻されてもよい。実行パイプラインから結果を受けると、アドレスインターフェース２００は結果をメモリに記憶するため路２７５を介してメモリパイプライン２１０に与える。
【００３１】
アドレスインターフェース２００がメモリ２１０に対して命令フェッチ要求を発生すると、命令要求のプログラムカウンタ（ＰＣ）値を路２８５を介してＰＣパイプライン２８０に与える。ここから、ＰＣ値はレジスタファイル２５０に保持された１つのＰＣレジスタに読み出されることができ、ここでそれらはそれらが実行する際に命令によるオペランドとして使用されてもよい。ＰＣパイプラインはメモリパイプラインの値に対応するＰＣ値を記憶するように要求され、そのため各命令は命令設定アーキテクチャによって定められるような正しいＰＣ値と関連するようにされる。
【００３２】
アドレスインターフェース２００は現在のＰＣ値から命令を逐次的に予めフェッチするように構成されることができ、次いで、逐次的な実行からの全ての偏差が実行パイプラインからアドレスパイプラインに訂正値として発生され得る。
【００３３】
本発明の好適実施例において、プロセッサのコアは、キャッシュとしてあるいは固定のＲＡＭ区域として構成されることができるメモリの一部（例えばメモリの４Ｋバイト）、およびＤＲＡＭから作られたメモリを含んだ８、１６あるいは３２ビットの外部装置を直接接続させるようにするフレキシブルメモリインターフェース（「ファンネル」）と組み合わされてもよい。本発明の好適実施例によるプロセッサのコアを含んだチップの内部組織とメモリの４Ｋバイトとが図３に示されている。
【００３４】
非同期処理システムには基準クロックがないため、メモリがアクセスを発生するタイミングについて注意深い配慮を必要とする。好適実施例に従ったプロセッサチップに組み込まれる解決策はチップに直接接続された単一の外部基準遅延器４００と始動時にロードされかつ各メモリ領域の組織およびタイミング特性を特定するコンフィギュレーションレジスタとを使用することである。基準遅延は通常外部ＳＲＡＭアクセス時間を反映し、そのためＲＡＭは１つの基準遅延を取るように構成化されるようになる。典型的に極めて低速であるＲＯＭが幾つかの基準遅延を取るように構成化されてもよい。基準遅延はオフチップタイミングのためだけに使用され、全てのオンチップ遅延は自己タイミング決めのために使用される。
【００３５】
メモリの４Ｋバイトは、好ましくは、４つの１Ｋバイトのブロックからなるキャッシュとして構成化され、それぞれのブロックはカッド（ｑｕａｄ）語ラインおよびブロックサイズを有する全結合ランダム置換記憶装置である。ＣＡＭ４２０およびＲＡＭ４３０部分間のパイプラインレジスタ４１０は、前のアクセスがＲＡＭ内で完了する間に次のアクセスがそのＣＡＭルックアップを始めることができるようにする。これは、データが初めから戻される前に多数のメモリ要求を発生するようにプロセッサのコアの能力を広げる。逐次的アクセスが検出され、ＣＡＭルックアップをバイパスし、それによって電力を節約し、性能を向上する。
【００３６】
本発明の好適実施例に従った非同期マイクロプロセッサの一般的な構造を記載したが、非同期制御回路の１つの制御ループ内で応答を阻止しかつ阻止状態を解除するために使用する回路を次に述べる。
【００３７】
上記で論議したように、マイクロプロセッサは多数の相関した非同期制御回路からなり、それぞれはデータの流れを制御するため要求−確認制御ループを用いる。これら制御ループの１つの応答を阻止することによって、この阻止状態は最終的には全体のマイクロプロセッサにわたって伝えられ、全ての活動を停止する。
【００３８】
本発明の好適実施例において、実行パイプライン２６０の最終段内の要求−確認ループが阻止されることができるようにし、引続いて阻止解除されることができるようにする回路が設けられる。当業者に明白なように、非同期制御回路の全てが相関されているためこの阻止回路の実際の位置は問題ではなく、従って要求−確認制御ループのいずれかを阻止することは究極的に同一の効果を生じさせる。
【００３９】
好適実施例で実行パイプライン２６０の最終段の要求−確認制御ループを阻止および阻止解除するために使用される回路が次に図４に関連して述べられる。図４は必要な論理回路要素を示す回路図である。命令が命令パイプライン２２５から命令デコーダ２３０に与えられる各時間に、その命令は’Ｂ’命令と命令デコーダ２３０内で比較される。’Ｂ’命令はブランチ命令であり、’Ｂ’命令は現在の命令（すなわち、それ自体）に分岐するブランチ命令である。従って、プログラムはこの点で反復的にループし、割込みがこのループを抜けさせるまで、有効な機能を行わない。’Ｂ’命令は、行うべき一層の有効な仕事があることを指示する割込みが受けられる時間まで、マイクロプロセッサをアイドリング動作状態に保持するために典型的に使用される。本発明の好適実施例において、この’Ｂ’命令はプロセッサ内で全ての活動を終了するために使用される。
【００４０】
’Ｂ’命令が命令デコーダ２３０によって検出されると、それは「停止」信号を発生し、この停止信号は路２３５に沿って制御パイプライン２４０に与えられ、そこから多くの他の制御信号と共に、実行パイプライン２６０に与えられる。これら制御信号は実行パイプラインの機能の他の面を制御するために使用され、例えば実行パイプライン内の算術論理ユニット（ＡＬＵ）に情報を与えるために使用される（ＡＬＵはその動作を行わなければならない）。
【００４１】
実行パイプライン２６０の最終段は入力レジスタ５００と出力レジスタ５２０を有し、これらレジスタはそれぞれ入力および出力データオペランドを保持する。制御ループは、この段内でのデータ処理機能のための時間を許容するために遅延５１１を受けなければならない要求信号５１０と確認信号５３０とで形成され、これらは完全な制御ループを形成するようにレジスタ５００および５２０内で結合されている。この制御ループはＡＮＤゲート５６０によって割込みされてもよく、このＡＮＤゲートはＮＡＮＤゲート５５０の出力が論理０であれば、要求信号が与えられないようにする。
【００４２】
ＮＡＮＤゲート５５０は４つの入力信号、すなわち命令デコーダ２３０で発生される「停止」信号と割込み要求（ｉｒｑ）信号５５２と急速割込み要求（ｆｉｑ）信号５５３と実行パイプラインによって発生される実行信号５５４とを受け、’Ｂ’命令が当然実行されなければならないかを確認する。また、実行信号は、好適実施例で、例えば’Ｂ’命令の実行が前の命令の結果について条件付きであってもよいために使用される。この場合に、’Ｂ’命令が処理されなければならないことを前の命令の結果が指示したならば、実行信号が実行パイプラインによって発生されることになろう。別態様として、前の命令はブランチ命令であってもよく、この場合停止命令は実行されてはならず、従って実行信号が「不活性」に設定されることになろう。
【００４３】
ＮＡＮＤゲート５５０は、２つの割込みソース、すなわち’ｉｒｑ’５５２および’ｆｉｑ’が不活性状態（それらが「活性低」信号であるため論理１にある）、停止信号５５１が活性状態（論理１にある）かつ実行信号５５４が活性状態（論理１にある）時のみ論理１の出力を持つようになる。実行信号５５４は、好ましくは、実行パイプライン２６０の最終段内で発生され、従ってこの段は本発明の好適実施例の停止回路を構成するための好ましい位置である。
【００４４】
当業者にとって明らかなように、ＮＡＮＤゲート５５０への入力５５１、５５２、５５３および５５４のタイミングは回路の訂正機能にとって重要である。実行信号５５４は、それが局部的に発生されかつその訂正タイミングが遅延５１１によって保証されるために信頼性がある。遅延５１１は、実行信号が活性状態であるべきかどうかを前の命令の結果から決定させかつ適切な実行信号を発生させるためのタイミングを可能にするように要求ラインの信号を遅延する。停止信号５５１は命令デコーダ２３０で発生され、その訂正タイミングは、値を安全に実行パイプライン２６０に与える既知の同期技術を用いる制御パイプライン２４０によりそれが伝送されることによって保証される。しかしながら、割込み入力５５２および５５３は同じ態様では取り扱われ得ない。’Ｂ’命令の実行に続いてシステムの制御回路の全てが阻止された時でさえそれらが制御回路を阻止解除させることができなければならないためである。従って、割込みソースはライン５５２および５５３に直接結合されなければならない。これは、停止信号５５１が活性状態である間に割込み信号が活性状態（論理０値）から不活性状態（論理１値）に決して転移を行ってはならない（回路の誤ったふるまいを回避させなければならない場合に）ことを要求する。しかしながら、割込み信号を発生する装置は、一般的に、プロセッサによって指示されるまで割込みを撤回しないようになっており、このように割込み信号を取り除くことはソフトウェアの制御の下でなされる。従って、このような制約には適切なプログラミング技術によって容易に応じることができる。
【００４５】
上述の技法によって、実行パイプライン２６０は停止される。従って、これ以上の命令は実行パイプラインによっては実行されず、このようにして制御パイプラインが補充を行うようにする。一旦、制御パイプライン２４０が全利用状態になったら、命令デコーダ２３０は、それがもはや復号化命令を制御パイプラインに与え得ないため停止し、従って命令パイプライン２２５はメモリ２１０から受ける命令で補充される。
【００４６】
他方、アドレスインターフェース２００は、命令パイプライン２２５あるいはＰＣパイプライン２８０が全利用状態になる時まで命令を単に検索することができる。上述したように、命令パイプライン２２５は、命令デコーダ２３０がもはやパイプライン２２５から命令を読み出していないため全利用状態になる。従って、実行パイプライン２６０の停止により全体のマイクロプロセッサは最終的に全ての活動を終了するようにされることが明かとなる。
【００４７】
殆どのマイクロプロセッサ命令セットに既に存在している’Ｂ’命令を用いることによって、新たな命令のための必要性が回避され、多くの存在するコードとのソフトウェアの互換性が維持され得る。しかしながら、当業者にとって明らかなように、非同期制御回路の制御ループを阻止あるいは阻止解除する他の技法が使用可能であり、’Ｂ’命令の使用は必須の要件ではない。
【００４８】
ここにある特定の実施例を記載したが、本発明はそれには限定されず、多くの変更およびそれに対する付加が本発明の範囲内でなされてもよいことを認められたい。
【００４９】
以上詳述したように、本発明はデータを処理する装置および方法を与え、この装置は、複数の非同期制御回路を具備しており、それぞれの非同期制御回路はその非同期制御回路内でのデータの流れを制御するために要求−確認制御ループを用い、かつ上記複数の非同期制御回路の少なくとも１つの他方のものとデータ信号を交換するように構成されている。更に、上記非同期制御回路の第１のものは、この第１の非同期制御回路の制御ループの制御信号を阻止し、それによって上記複数の非同期制御回路の制御ループが阻止されるようになるように上記少なくとも１つの他のものとのデータ信号の交換を防止する停止回路を含んでいる。
本発明は非同期設計に基づいており、これは有用な仕事を行うように要求に応じて回路の変化を生じさせるに過ぎない。それは０電力消費と最大性能との間で要求次第で瞬間的に切り替えできる。本発明によれば、停止回路が設けられ、これは割込みが生じるまで全てのプロセッサの活動を停止させる。好ましくは、この回路は処理装置の非同期制御回路の制御信号を遮り、単一の要求−確認制御ループを効果的に割込みすることによって働く。制御回路は相関しているために、１つのループの応答を急速に（しかしながら、瞬間的ではない）阻止することは装置の他の全ての制御ループを停止し、従ってこの停止は究極的に全体の装置にわたって伝播し、全ての活動を停止する。好ましくは、割込み信号が元の制御ループの停止状態を開放するために使用され、次いで活動はこの点からシステム全体にわたって伝播される。
【図面の簡単な説明】
【図１】Ａは非同期マイクロプロセッサにおいてデータの流れを制御するために使用されてもよい１つの通信プロトコルを示す図である。Ｂは非同期マイクロプロセッサにおいてデータの流れを制御するために使用されてもよい他の異った通信プロトコルを示す図である。
【図２】本発明の好適実施例によるマイクロプロセッサのコアの設計を示すブロック図である。
【図３】メモリの一部に加えて、好適実施例のマイクロプロセッサのコアを組み込んでいるチップの内部組織を示す図である。
【図４】本発明の好適実施例による非同期制御回路の要求−確認ループを阻止および阻止解除するために使用される論理回路要素を示す回路図である。
【符号の説明】
２１０  メモリパイプライン
２３０  命令デコーダ
２４０  制御パイプライン
２６０  実行パイプライン
５１１  遅延
５５０  ＮＡＮＤゲート
５６０  ＡＮＤゲート
【図１】
0003709040.tif 000002
【図２】
0003709040.tif 000003
【図３】
0003709040.tif 000004
【図４】
0003709040.tif 000005