JP3709040B2 - 非同期データ処理装置 - Google Patents

非同期データ処理装置 Download PDF

Info

Publication number
JP3709040B2
JP3709040B2 JP05470497A JP5470497A JP3709040B2 JP 3709040 B2 JP3709040 B2 JP 3709040B2 JP 05470497 A JP05470497 A JP 05470497A JP 5470497 A JP5470497 A JP 5470497A JP 3709040 B2 JP3709040 B2 JP 3709040B2
Authority
JP
Japan
Prior art keywords
circuit
control
asynchronous
request
asynchronous control
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.)
Expired - Fee Related
Application number
JP05470497A
Other languages
English (en)
Other versions
JPH10124456A (ja
Inventor
デイ ポール
チャールズ ペイバー ナイジェル
Original Assignee
エイアールエム リミテッド
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 エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JPH10124456A publication Critical patent/JPH10124456A/ja
Application granted granted Critical
Publication of JP3709040B2 publication Critical patent/JP3709040B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/30083Power or thermal control instructions
    • 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
    • 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
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、非同期データ処理装置に関し、より詳細には、非同期データ処理装置を高電力効率の態様で動作できるようにする技術に関する。
【0002】
【従来の技術】
マイクロプロセッサのようなデータ処理装置は、典型的には、同期アーキテクチャを用いて構成される。これは、一般的に、非同期アーキテクチャよりも複雑ではないと考えられているからである。同期マイクロプロセッサは外部から供給されるクロック信号の制御の下で動作するのに対して、非同期マイクロプロセッサは自己タイミングを行うようにされなければならず、また外部から供給されるクロックを何等使用せずに動作する必要がある。外部から供給されるクロックを用いない場合はマイクロプロセッサを設計する上での複雑さが増大する。例えば、設計者は、基準クロックを用いないでどのようにしてデータの流れを制御するかを考慮しなければならず、また処理素子の遅延がクロック周期によって簡単にモデル化されるのではなく、回路それ自体によって測定されなければならない。
【0003】
しかしながら、同期構成の設計に基づいたマイクロプロセッサは特に高電力効率ではない。同期回路のクロックは常時走っており回路内の遷移を生じさせ、それが電力を消費する。プロセッサがピーク作業負荷に対処することができるようにクロック周波数が設定されなければならず、クロック速度はソフトウェアの制御の下で変化する需要に調節され得るが、これは荒い粒度で比較的に雑に行われるに過ぎない。従って、殆どの場合、クロックは現在の作業負荷のために必要なクロックよりも高速で走ることになり、この結果電力が無駄となってしまう。
【0004】
【発明が解決しようとする課題】
従って、本発明の目的は電力効率を改良したマイクロプロセッサを与えることである。
【0005】
【課題を解決するための手段】
本発明は、(イ)複数の非同期制御回路と、(ロ)上記非同期制御回路のそれぞれによって使用され、上記それぞれの非同期制御回路内でのデータの流れを制御し、かつ上記複数の非同期制御回路の少なくとも他の1つとデータ信号を交換するように構成された要求−確認制御ループと、(ハ)上記非同期制御回路の第1のものの中に含まれ、この第1の非同期制御回路の制御ループの制御信号を阻止し、それによって上記複数の非同期制御回路の制御ループが阻止されるようになるように上記複数の非同期制御回路の上記少なくとも他の1つとのデータ信号の交換を防止する停止回路と、を具備したデータを処理する装置を与える。
【0006】
本発明は、非同期構成の設計に基づいた装置を与える。非同期設計は有用な仕事を行うための要求に応じて回路の遷移を生じさせるだけである。それは0の電力消費と最大性能との間を要求次第で瞬時に切り替えることができる。多くの可能な応用は急速に変化する作業負荷を有するために、非同期プロセッサは顕著な電力の節約の可能性を与えることが見い出されている。
【0007】
殆どのマイクロプロセッサはCMOS回路として構成され、CMOS回路は、通常、全ての活動が停止すれば、電力消費は無視できる程のものとなる。殆どの従来技術のマイクロプロセッサは同期構成のものであり、そのため自走クロックを用いているため、それらはそれらの活動を容易には制御し得ず、プログラムが行うべき有用な仕事を終えた時に共通のソフトウェアの動作は入力が到来するまで何もしないかあるいは周辺装置をポーリングする連続ループに入ることである。これら技法の両方共、回路内で連続する活動を行い、割込みが生じるかあるいは周辺装置が入力を受けるまで有用な仕事を全然行わないかあるいは極めて小さな仕事を行うのにかなりの電力を消費する。同じプログラムを実行する非同期プロセッサも極めて小さな仕事を行うのに同様な電力を浪費してしまう。
【0008】
本発明は、この問題を、割込みが生じるまで全てのプロセッサの活動を停止させる「停止」回路を導入することによって解決する。この回路は処理装置の非同期制御回路において制御信号を遮り、単一の要求−確認制御ループを効果的に割込みすることによって働く。制御回路は相関しているために、1つのループの制御信号を急速に(しかし、瞬間的ではなく)阻止することは装置の他の全ての制御ループを停止させ、従ってこの停止は最終的には全体の装置にわたって伝わり、全ての活動を停止させる。好ましくは、元の制御ループの停止状態を開放するために割込み信号が使用され、次いで活動はこの点からシステム全体にわたって伝わる。
【0009】
このようにして、本発明は、制御回路の1つの制御ループの単一の制御点での停止状態をシステム全体にわたって伝播させるようにデータ処理装置内の非同期制御回路の遅延非感応性の特質を利用する。
【0010】
好ましくは、停止回路は要求−確認制御ループによって作られた要求信号を阻止するように構成されるが、当業者にとって明かなように、停止回路は要求信号の代りに確認信号を阻止するように構成されることができる。
【0011】
好適実施例において、第1の非同期制御回路は命令を実行するように構成されており、データ処理装置は、更に、実行されるべき命令を、第1の非同期制御回路の制御ループが阻止されるべきであることを指示する所定の命令と比較する比較回路を具備している。好ましくは、この比較回路はデータ処理装置の命令デコーダ内に含まれるが、この装置の他の位置に配置されることができる。好適実施例において、上記所定の命令は現在の命令に分岐するブランチ命令である。しかしながら、当業者にとって明らかなように、非同期制御回路の制御ループを阻止および阻止解除する他の技法が使用でき、このようなブランチ命令の使用は必須の要件ではない。
【0012】
好ましくは、上記停止回路は、1つあるいはそれ以上の割込み信号と上記比較回路によって発生されかつ実行されるべき命令が上記所定の命令と合致することを指示する停止信号とを受ける入力を有する第1の論理回路を具備している。更に、この第1の論理回路は、第1の非同期制御回路の制御ループの制御信号が阻止されるべきであることを確認するために使用される実行信号を受ける入力を有してもよい。この実行信号は、例えば制御ループの停止が実行された前の命令の結果で条件付けられてもよいために好適実施例において使用される。この場合に、実行信号は、制御ループが停止されるべきことを前の命令の結果が指示したならば発生されることになる。更に、前の命令はブランチ命令であってもよく、この場合停止命令は実行されてはならず、従って実行信号は不活性状態に設定されることになる。
【0013】
第1の論理回路は任意の好ましい態様で構成されることができるが、好適実施例において、この第1の論理回路は、全ての入力が論理1値を有する時に論理0値を出力するように構成されたNANDゲートであり、上記1つあるいはそれ以上の割込み信号は不活性状態の時に論理1値を有し、残りの入力信号は活性状態の時に論理1値を有する。
【0014】
好ましくは、停止回路は、更に、要求−確認制御ループの要求信号と第1の論理回路の出力とを受ける入力を有する第2の論理回路を具備しており、上記第2の論理回路の出力は上記要求信号に対する意図された受け側に結合されている。好適実施例において、この第2の論理回路はANDゲートであり、従って第1の論理回路の出力が論理0値を有するならば上記要求信号を出力しないように構成されている。当業者にとって明らかなように、論理ゲートの他の好ましい構成が停止回路の論理回路を構成するために使用され得る。
【0015】
本発明の好ましい実施例において、割込み信号が上記停止回路によって阻止された制御信号を開放するように使用され、それによってデータ信号が制御回路間で交換されることができるようにし、そのようにして上記制御ループが阻止解除されるようになっている。
【0016】
更に、好適実施例において、要求−確認制御ループはレベル信号化通信プロトコルを用いる。
【0017】
好適実施例によれば、複数の非同期制御回路は1組の相互作用する非同期パイプライン回路を含んでいる。
【0018】
本発明に従ったデータを処理する装置は、任意の適切な形態を取ることができるが、好適実施例においては、この装置はマイクロプロセッサである。
【0019】
本発明の第2の側面から見て、本発明は、(イ)データを処理する複数の非同期制御回路を設けるようにし、各非同期制御回路がその非同期制御回路内でデータの流れを制御する要求−確認制御ループを用いるようにしかつ上記複数の非同期制御回路の少なくとも他の1つとデータ信号を交換するように構成されるようにしたこと、(ロ)合致する所定の状態に応じて、上記非同期制御回路の第1のものの制御ループの制御信号を阻止するようにし、それによって上記複数の非同期制御回路の上記制御ループが阻止されるようになるように上記複数の非同期制御回路の上記少なくとも他の1つとのデータ信号の交換を防止するようにすること、を含んだデータ処理装置でデータを処理する方法を与える。
【0020】
【発明の実施の形態】
本発明の実施例が、同様な参照番号が同様な対象に対して使用される添付図面に関連して、以下に単なる例として記載される。
【0021】
好適実施例によるマイクロプロセッサの構造を詳細に記載する前に、非同期設計についてのある背景情報を以下に記載する。
【0022】
非同期設計は、多くの異った様相および多くの異った技法を有する複雑な分野である。基準クロックが何等存在しない場合にデータの流れを制御する技術を設ける必要がある。本発明の好適実施例によるプロセッサはデータの流れを制御するために「要求−確認」ハンドシェイクの形態を利用する。「送り手」から「受け手」へのデータの通信からなる動作のシーケンスは次の通りである。
1)送り手はバスに有効データ値を置く。
2)次いで、送り手は「要求」事象を発生する。
3)受け手は、そうする準備がなされた時にデータを受け入れる。
4)受け手は送り手に「確認」事象を発生する。
5)次いで、送り手はバスからデータを除去し、そうする準備がなされた時に次の通信を始めることができる。
【0023】
データは通常の2進符号化装置を用いてバスを通して送られるが、要求および確認事象を信号化する態様は多数存在する。1つの技法は、レベルの変化(高レベルから低レベルへ、あるいは低レベルから高レベルへ)が1つの事象を信号化するような「転移信号化」を用いることである。図1Aはこの転移信号化通信プロトコルを示す。図1Aに示されるように、送り手が有効データ値をバスに置いた(転移10で示されたように)後に、送り手は低対高転移20で示される要求事象を発生する。次いで、受け手はデータをバスから読出し、送り手に確認事象を発生する。これは図1Aにおいて転移30によって表される。一旦、送り手が確認事象を受ければ、転移40によって表されるように、バスからデータを除去することができる。図1Aの右手側に示されるように、次いでステップのこのシーケンスは次のデータ値に対して繰り返される。図1Aから明らかなように、高から低へのレベルの変化25、35も要求および確認事象の発生を表す。
【0024】
要求および確認事象を信号化するための別態様の技法は、図1Bに示されるように、レベル信号化通信プロトコルを使用することであり、ここで1つの立上りエッジは1つの事象を信号化し、0への戻り相は次の事象が信号化され得る前に生じなければならない。図1Bに示されているように、有効データ値がバスに置かれる(転移10)と、転移20で送り手によって要求事象が発生され、そのデータ値を受けると、転移30で受け手により確認事象が発生される。転移信号化通信プロトコルでの場合と同様に、次いで送り手は転移40でデータ値をバスから除去することができる。しかしながら、更に、確認事象の受信時に、受け手は高対低転移50で示されるように要求事象を除去し、次いで受け手は高対低転移60で示されるように確認事象を除去する。事象のこのシーケンスはバスに置かれる次のデータ値に対してその後繰り返される。
【0025】
図1Aおよび1Bから明らかなように、転移信号化は、どの転移も役目を持っており、従ってそのタイミングは回路の機能によって決定されるため、概念的にはより明確である。また、それは最小数の転移しか用いないため、高電力効率のものとなるはずである。しかしながら、転移制御を構成化するために使用されるCMOS回路は比較的低速で、低効率であり、そのため本発明の好適実施例では、プロセッサは、2倍の数のトランジスタを使用し、プロトコルで回復(0への戻り)相のタイミングについて幾分勝手な決定を取るようにさせてしまうが、より高速でより高電力効率である回路を使用するレベル信号化通信プロトコルを採用する。
【0026】
上記の自己タイミング技術を用いれば、各段で処理遅延を見込んで非同期パイプライン処理ユニットを構成しかつ次の段に結果を送るように上述したプロトコルの1つを構成することが可能である。適切な設計で、可変の処理遅延と任意の外部遅延が受入可能となり、勿論長い遅延は性能の低下に結び付くことになろうが、その全てが事象の局部シーケンスとなる。
【0027】
同期プロセッサで使用されるクロッキングパイプライン(そこでは、全体のパイプラインは最悪環境(電圧および温度)条件下の最も遅い段、及び最悪の場合を想定したデータによって決定される速度で常にクロッキングされなければならない)と異なり、非同期パイプラインは現在の状態によって決定される可変の速度で動作する。めったにない最悪の場合の条件も処理ユニットが僅かに長く処理することにより許される。これら条件が生じても、これらの場合に、ある性能のロスはあろうが、それらが充分まれである限り、全体の性能に対する影響は少ない。
【0028】
非同期パイプライン処理ユニットを扱うために使用される自己タイミング技術を論議したが、次に本発明の好適実施例によるプロセッサのコア(コアとは一般的な処理機能を行うために使用されるプロセッサの部分である)が、プロセッサのコアの設計を示すブロック図である図2に関連して詳細に論議される。この設計は1組の相互作用する非同期パイプラインに基づいており、全てのパイプラインはそれらの自己の速度でそれらの自己の時間で動作する。これらのパイプラインはプロセッサに受入不可能な長い待ち時間を導入してしまうと思われるが、同期パイプラインと異って、非同期パイプラインはこれがクロックサイクルに依存せずそのためその自己の速度で動作できるため極めて小さな待ち時間を持つに過ぎない。
【0029】
プロセッサの動作は、路205を介してメモリ210に命令フェッチ要求を出すアドレスインターフェース200で始まる。アドレスインターフェース200は自律アドレス歩進器を有しており、これは種々のパイプラインバッファの容量が許す程度に先立ってアドレスインターフェース200が命令を予めフェッチすることができるようにする。次のアドレスを決定するためのこの歩進器論理はループ路215によって表される。一旦メモリパイプラインが命令を検索したら、この命令は路220を介して命令パイプライン225に送られる。ここで、命令は命令デコード論理230に与えるためパイプラインの態様で記憶される。命令がデコーダ230で復号化されると、それらは路235を介して制御パイプライン240に与えられる。
【0030】
命令フェッチ要求を発生することに加えて、アドレスインターフェースは、また、メモリ210へデータ要求を発生する。データを検索すると、データ値が路245を介してレジスタファイル250に読み込まれる。次いで、実行パイプライン回路260は制御パイプライン240から命令を読み出し、レジスタファイル250から読み出されたデータ値に対してこれらの命令を実行する。実行の結果は路265を介してアドレスインターフェース200に与えられ、また、路270を介してレジスタファイル250に戻されてもよい。実行パイプラインから結果を受けると、アドレスインターフェース200は結果をメモリに記憶するため路275を介してメモリパイプライン210に与える。
【0031】
アドレスインターフェース200がメモリ210に対して命令フェッチ要求を発生すると、命令要求のプログラムカウンタ(PC)値を路285を介してPCパイプライン280に与える。ここから、PC値はレジスタファイル250に保持された1つのPCレジスタに読み出されることができ、ここでそれらはそれらが実行する際に命令によるオペランドとして使用されてもよい。PCパイプラインはメモリパイプラインの値に対応するPC値を記憶するように要求され、そのため各命令は命令設定アーキテクチャによって定められるような正しいPC値と関連するようにされる。
【0032】
アドレスインターフェース200は現在のPC値から命令を逐次的に予めフェッチするように構成されることができ、次いで、逐次的な実行からの全ての偏差が実行パイプラインからアドレスパイプラインに訂正値として発生され得る。
【0033】
本発明の好適実施例において、プロセッサのコアは、キャッシュとしてあるいは固定のRAM区域として構成されることができるメモリの一部(例えばメモリの4Kバイト)、およびDRAMから作られたメモリを含んだ8、16あるいは32ビットの外部装置を直接接続させるようにするフレキシブルメモリインターフェース(「ファンネル」)と組み合わされてもよい。本発明の好適実施例によるプロセッサのコアを含んだチップの内部組織とメモリの4Kバイトとが図3に示されている。
【0034】
非同期処理システムには基準クロックがないため、メモリがアクセスを発生するタイミングについて注意深い配慮を必要とする。好適実施例に従ったプロセッサチップに組み込まれる解決策はチップに直接接続された単一の外部基準遅延器400と始動時にロードされかつ各メモリ領域の組織およびタイミング特性を特定するコンフィギュレーションレジスタとを使用することである。基準遅延は通常外部SRAMアクセス時間を反映し、そのためRAMは1つの基準遅延を取るように構成化されるようになる。典型的に極めて低速であるROMが幾つかの基準遅延を取るように構成化されてもよい。基準遅延はオフチップタイミングのためだけに使用され、全てのオンチップ遅延は自己タイミング決めのために使用される。
【0035】
メモリの4Kバイトは、好ましくは、4つの1Kバイトのブロックからなるキャッシュとして構成化され、それぞれのブロックはカッド(quad)語ラインおよびブロックサイズを有する全結合ランダム置換記憶装置である。CAM420およびRAM430部分間のパイプラインレジスタ410は、前のアクセスがRAM内で完了する間に次のアクセスがそのCAMルックアップを始めることができるようにする。これは、データが初めから戻される前に多数のメモリ要求を発生するようにプロセッサのコアの能力を広げる。逐次的アクセスが検出され、CAMルックアップをバイパスし、それによって電力を節約し、性能を向上する。
【0036】
本発明の好適実施例に従った非同期マイクロプロセッサの一般的な構造を記載したが、非同期制御回路の1つの制御ループ内で応答を阻止しかつ阻止状態を解除するために使用する回路を次に述べる。
【0037】
上記で論議したように、マイクロプロセッサは多数の相関した非同期制御回路からなり、それぞれはデータの流れを制御するため要求−確認制御ループを用いる。これら制御ループの1つの応答を阻止することによって、この阻止状態は最終的には全体のマイクロプロセッサにわたって伝えられ、全ての活動を停止する。
【0038】
本発明の好適実施例において、実行パイプライン260の最終段内の要求−確認ループが阻止されることができるようにし、引続いて阻止解除されることができるようにする回路が設けられる。当業者に明白なように、非同期制御回路の全てが相関されているためこの阻止回路の実際の位置は問題ではなく、従って要求−確認制御ループのいずれかを阻止することは究極的に同一の効果を生じさせる。
【0039】
好適実施例で実行パイプライン260の最終段の要求−確認制御ループを阻止および阻止解除するために使用される回路が次に図4に関連して述べられる。図4は必要な論理回路要素を示す回路図である。命令が命令パイプライン225から命令デコーダ230に与えられる各時間に、その命令は’B’命令と命令デコーダ230内で比較される。’B’命令はブランチ命令であり、’B’命令は現在の命令(すなわち、それ自体)に分岐するブランチ命令である。従って、プログラムはこの点で反復的にループし、割込みがこのループを抜けさせるまで、有効な機能を行わない。’B’命令は、行うべき一層の有効な仕事があることを指示する割込みが受けられる時間まで、マイクロプロセッサをアイドリング動作状態に保持するために典型的に使用される。本発明の好適実施例において、この’B’命令はプロセッサ内で全ての活動を終了するために使用される。
【0040】
’B’命令が命令デコーダ230によって検出されると、それは「停止」信号を発生し、この停止信号は路235に沿って制御パイプライン240に与えられ、そこから多くの他の制御信号と共に、実行パイプライン260に与えられる。これら制御信号は実行パイプラインの機能の他の面を制御するために使用され、例えば実行パイプライン内の算術論理ユニット(ALU)に情報を与えるために使用される(ALUはその動作を行わなければならない)。
【0041】
実行パイプライン260の最終段は入力レジスタ500と出力レジスタ520を有し、これらレジスタはそれぞれ入力および出力データオペランドを保持する。制御ループは、この段内でのデータ処理機能のための時間を許容するために遅延511を受けなければならない要求信号510と確認信号530とで形成され、これらは完全な制御ループを形成するようにレジスタ500および520内で結合されている。この制御ループはANDゲート560によって割込みされてもよく、このANDゲートはNANDゲート550の出力が論理0であれば、要求信号が与えられないようにする。
【0042】
NANDゲート550は4つの入力信号、すなわち命令デコーダ230で発生される「停止」信号と割込み要求(irq)信号552と急速割込み要求(fiq)信号553と実行パイプラインによって発生される実行信号554とを受け、’B’命令が当然実行されなければならないかを確認する。また、実行信号は、好適実施例で、例えば’B’命令の実行が前の命令の結果について条件付きであってもよいために使用される。この場合に、’B’命令が処理されなければならないことを前の命令の結果が指示したならば、実行信号が実行パイプラインによって発生されることになろう。別態様として、前の命令はブランチ命令であってもよく、この場合停止命令は実行されてはならず、従って実行信号が「不活性」に設定されることになろう。
【0043】
NANDゲート550は、2つの割込みソース、すなわち’irq’552および’fiq’が不活性状態(それらが「活性低」信号であるため論理1にある)、停止信号551が活性状態(論理1にある)かつ実行信号554が活性状態(論理1にある)時のみ論理1の出力を持つようになる。実行信号554は、好ましくは、実行パイプライン260の最終段内で発生され、従ってこの段は本発明の好適実施例の停止回路を構成するための好ましい位置である。
【0044】
当業者にとって明らかなように、NANDゲート550への入力551、552、553および554のタイミングは回路の訂正機能にとって重要である。実行信号554は、それが局部的に発生されかつその訂正タイミングが遅延511によって保証されるために信頼性がある。遅延511は、実行信号が活性状態であるべきかどうかを前の命令の結果から決定させかつ適切な実行信号を発生させるためのタイミングを可能にするように要求ラインの信号を遅延する。停止信号551は命令デコーダ230で発生され、その訂正タイミングは、値を安全に実行パイプライン260に与える既知の同期技術を用いる制御パイプライン240によりそれが伝送されることによって保証される。しかしながら、割込み入力552および553は同じ態様では取り扱われ得ない。’B’命令の実行に続いてシステムの制御回路の全てが阻止された時でさえそれらが制御回路を阻止解除させることができなければならないためである。従って、割込みソースはライン552および553に直接結合されなければならない。これは、停止信号551が活性状態である間に割込み信号が活性状態(論理0値)から不活性状態(論理1値)に決して転移を行ってはならない(回路の誤ったふるまいを回避させなければならない場合に)ことを要求する。しかしながら、割込み信号を発生する装置は、一般的に、プロセッサによって指示されるまで割込みを撤回しないようになっており、このように割込み信号を取り除くことはソフトウェアの制御の下でなされる。従って、このような制約には適切なプログラミング技術によって容易に応じることができる。
【0045】
上述の技法によって、実行パイプライン260は停止される。従って、これ以上の命令は実行パイプラインによっては実行されず、このようにして制御パイプラインが補充を行うようにする。一旦、制御パイプライン240が全利用状態になったら、命令デコーダ230は、それがもはや復号化命令を制御パイプラインに与え得ないため停止し、従って命令パイプライン225はメモリ210から受ける命令で補充される。
【0046】
他方、アドレスインターフェース200は、命令パイプライン225あるいはPCパイプライン280が全利用状態になる時まで命令を単に検索することができる。上述したように、命令パイプライン225は、命令デコーダ230がもはやパイプライン225から命令を読み出していないため全利用状態になる。従って、実行パイプライン260の停止により全体のマイクロプロセッサは最終的に全ての活動を終了するようにされることが明かとなる。
【0047】
殆どのマイクロプロセッサ命令セットに既に存在している’B’命令を用いることによって、新たな命令のための必要性が回避され、多くの存在するコードとのソフトウェアの互換性が維持され得る。しかしながら、当業者にとって明らかなように、非同期制御回路の制御ループを阻止あるいは阻止解除する他の技法が使用可能であり、’B’命令の使用は必須の要件ではない。
【0048】
ここにある特定の実施例を記載したが、本発明はそれには限定されず、多くの変更およびそれに対する付加が本発明の範囲内でなされてもよいことを認められたい。
【0049】
以上詳述したように、本発明はデータを処理する装置および方法を与え、この装置は、複数の非同期制御回路を具備しており、それぞれの非同期制御回路はその非同期制御回路内でのデータの流れを制御するために要求−確認制御ループを用い、かつ上記複数の非同期制御回路の少なくとも1つの他方のものとデータ信号を交換するように構成されている。更に、上記非同期制御回路の第1のものは、この第1の非同期制御回路の制御ループの制御信号を阻止し、それによって上記複数の非同期制御回路の制御ループが阻止されるようになるように上記少なくとも1つの他のものとのデータ信号の交換を防止する停止回路を含んでいる。
本発明は非同期設計に基づいており、これは有用な仕事を行うように要求に応じて回路の変化を生じさせるに過ぎない。それは0電力消費と最大性能との間で要求次第で瞬間的に切り替えできる。本発明によれば、停止回路が設けられ、これは割込みが生じるまで全てのプロセッサの活動を停止させる。好ましくは、この回路は処理装置の非同期制御回路の制御信号を遮り、単一の要求−確認制御ループを効果的に割込みすることによって働く。制御回路は相関しているために、1つのループの応答を急速に(しかしながら、瞬間的ではない)阻止することは装置の他の全ての制御ループを停止し、従ってこの停止は究極的に全体の装置にわたって伝播し、全ての活動を停止する。好ましくは、割込み信号が元の制御ループの停止状態を開放するために使用され、次いで活動はこの点からシステム全体にわたって伝播される。
【図面の簡単な説明】
【図1】Aは非同期マイクロプロセッサにおいてデータの流れを制御するために使用されてもよい1つの通信プロトコルを示す図である。Bは非同期マイクロプロセッサにおいてデータの流れを制御するために使用されてもよい他の異った通信プロトコルを示す図である。
【図2】本発明の好適実施例によるマイクロプロセッサのコアの設計を示すブロック図である。
【図3】メモリの一部に加えて、好適実施例のマイクロプロセッサのコアを組み込んでいるチップの内部組織を示す図である。
【図4】本発明の好適実施例による非同期制御回路の要求−確認ループを阻止および阻止解除するために使用される論理回路要素を示す回路図である。
【符号の説明】
210 メモリパイプライン
230 命令デコーダ
240 制御パイプライン
260 実行パイプライン
511 遅延
550 NANDゲート
560 ANDゲート

Claims (15)

  1. データを処理する装置において、
    (イ)複数の非同期制御回路と、
    (ロ)前記非同期制御回路のそれぞれによって使用され、前記それぞれの非同期制御回路内でのデータの流れを制御し、かつ前記複数の非同期制御回路の少なくとも1つの他の非同期制御回路とデータ信号を交換するように構成された要求−確認制御ループと、
    (ハ)前記非同期制御回路の第1の非同期制御回路の中に含まれ、この第1の非同期制御回路の要求−確認制御ループの制御信号を阻止し、それによって前記複数の非同期制御回路の要求−確認制御ループが阻止されるように前記複数の非同期制御回路の少なくとも1つの他の非同期制御回路とのデータ信号の交換を防止する停止回路と、
    を具備し
    第1の非同期制御回路の要求−確認制御ループの阻止が他のすべての要求−確認制御ループに伝搬し、前記データ処理装置のすべての活動を終了させるように、前記複数の非同期制御回路が相互に関係していることを特徴とする装置。
  2. 特許請求の範囲第1項記載の装置において、前記停止回路は前記要求−確認ループによって作られる要求信号を阻止するように構成されたことを特徴とする装置。
  3. 特許請求の範囲第1項記載の装置において、前記第1の非同期制御回路は命令を実行するように構成されており、前記装置は、更に、実行されるべき命令を、前記第1の非同期制御回路の前記制御ループが阻止されるべきであることを指示する所定の命令と比較する比較回路を具備したことを特徴とする装置。
  4. 特許請求の範囲第3項記載の装置において、命令デコーダを更に具備しており、前記比較回路は前記命令デコーダ内に含まれたことを特徴とする装置。
  5. 特許請求の範囲第3項記載の装置において、前記所定の命令は現在の命令に分岐するブランチ命令であることを特徴とする装置。
  6. 特許請求の範囲第3項記載の装置において、前記停止回路は、1つあるいはそれ以上の割込み信号と前記比較回路によって発生されかつ実行されるべき命令が前記所定の命令と合致することを指示する停止信号とを受ける入力を有する第1の論理回路を具備したことを特徴とする装置。
  7. 特許請求の範囲第6項記載の装置において、前記第1の論理回路は、更に、前記第1の非同期制御回路の前記制御ループの制御信号が阻止されるべきであることを確認するために使用される実行信号を受ける入力を有することを特徴とする装置。
  8. 特許請求の範囲第6項記載の装置において、前記第1の論理回路は、全ての入力が論理1値を有する時に論理0値を出力するように構成されたNANDゲートであり、前記1つあるいはそれ以上の割込み信号は不活性状態の時に論理1値を有し、残りの入力信号は活性状態の時に論理1値を有することを特徴とする装置。
  9. 特許請求の範囲第6項記載の装置において、前記停止回路は、更に、前記要求−確認制御ループの要求信号と前記第1の論理回路の出力とを受ける入力を有する第2の論理回路を具備しており、前記第2の論理回路の出力は前記要求信号に対する意図された受け側に結合されていることを特徴とする装置。
  10. 特許請求の範囲第9項記載の装置において、前記第2の論理回路はANDゲートであり、従って前記第1の論理回路の出力が論理0値を有するならば前記要求信号を出力しないように構成されたことを特徴とする装置。
  11. 特許請求の範囲第1項記載の装置において、割込み信号が前記停止回路によって阻止された制御信号を開放するように使用され、それによってデータ信号が制御回路間で交換されることができるようにし、そのようにして制御ループが阻止解除されるようになることを特徴とする装置。
  12. 特許請求の範囲第1項記載の装置において、前記要求−確認制御ループはレベル信号化通信プロトコルを用いることを特徴とする装置。
  13. 特許請求の範囲第1項記載の装置において、前記複数の非同期制御回路は1組の相互に作用する非同期パイプライン回路を含んだことを特徴とする装置。
  14. 特許請求の範囲第1項記載の装置を含むマイクロプロセッサ。
  15. データ処理装置でデータを処理する方法において、
    (イ)データを処理する複数の非同期制御回路を設、各非同期制御回路がその非同期制御回路内でデータの流れを制御する要求−確認制御ループを用かつ前記複数の非同期制御回路の少なくとも1つの他の非同期制御回路とデータ信号を交換するように構成するステップと
    (ロ)合致する所定の状態に応じて、前記非同期制御回路の第1の非同期制御回路要求−確認制御ループの制御信号を阻止、それによって前記複数の非同期制御回路の前記要求−確認制御ループが阻止されるように前記複数の非同期制御回路の前記少なくとも1つの他の非同期制御回路とのデータ信号の交換を防止するステップとを含み、
    第1の非同期制御回路の要求−確認制御ループの阻止が他のすべての要求−確認制御ループに伝搬し、前記データ処理装置のすべての活動を終了させるように、前記複数の非同期制御回路が相互に関係していることを特徴とする方法。
JP05470497A 1996-10-08 1997-03-10 非同期データ処理装置 Expired - Fee Related JP3709040B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB96209739 1996-10-08
GB9620973A GB2318194B (en) 1996-10-08 1996-10-08 Asynchronous data processing apparatus

Publications (2)

Publication Number Publication Date
JPH10124456A JPH10124456A (ja) 1998-05-15
JP3709040B2 true JP3709040B2 (ja) 2005-10-19

Family

ID=10801114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05470497A Expired - Fee Related JP3709040B2 (ja) 1996-10-08 1997-03-10 非同期データ処理装置

Country Status (11)

Country Link
US (1) US5887129A (ja)
EP (1) EP0931287B1 (ja)
JP (1) JP3709040B2 (ja)
KR (1) KR100505798B1 (ja)
CN (1) CN1214320C (ja)
DE (1) DE69705961T2 (ja)
GB (1) GB2318194B (ja)
IL (1) IL127355A (ja)
MY (1) MY129430A (ja)
RU (1) RU2182353C2 (ja)
WO (1) WO1998015893A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5964866A (en) * 1996-10-24 1999-10-12 International Business Machines Corporation Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline
WO1999004334A1 (en) * 1997-07-16 1999-01-28 California Institute Of Technology Improved devices and methods for asynchronous processing
KR100345009B1 (ko) * 2000-08-14 2002-07-20 주식회사 에이디칩스 비동기식 제어부의 생성 방법
TWI282918B (en) * 2000-11-13 2007-06-21 Intel Corp Method, device, and system for placing a processor in an idle state
WO2002077799A1 (en) * 2001-03-22 2002-10-03 Infineon Technologies Ag Program-controlled unit employing a stop instruction
US20040128597A1 (en) * 2002-12-17 2004-07-01 Swoboda Gary L. Apparatus and method for selecting program halts in an unprotected pipeline at non-interruptible points in code execution
KR20070012351A (ko) * 2004-02-27 2007-01-25 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 전자 회로 장치 및 이 전자 회로 장치를 사전결정된 상태에이르게 하는 방법
EP1600845A1 (en) * 2004-05-28 2005-11-30 STMicroelectronics Limited Processor with power saving circuitry
DE102006048379B4 (de) * 2006-10-12 2008-11-06 Infineon Technologies Ag Verfahren zur Durchsatzsteuerung einer elektronischen Schaltung sowie entsprechende Durchsatzsteuerung und zugehörige Halbleiterschaltung
KR100934215B1 (ko) 2007-10-29 2009-12-29 한국전자통신연구원 이벤트 처리 명령어 세트 기반의 마이크로프로세서 및 이를이용한 이벤트 처리 방법
CN101452398B (zh) * 2007-12-05 2012-03-21 英业达股份有限公司 异步请求应答的通信方法
EP2366144B1 (en) 2008-10-15 2015-09-30 Hyperion Core, Inc. Sequential processor comprising an alu array
US9423866B2 (en) 2014-07-16 2016-08-23 Eta Compute, Inc. Asynchronous processor that adjusts a respective operating voltage for causing a task to consume substantially all of a respective allocated time interval for the task
US8418187B2 (en) * 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
JP2012190251A (ja) * 2011-03-10 2012-10-04 Renesas Electronics Corp 非同期式回路
US9020648B2 (en) * 2011-04-19 2015-04-28 Cooper Technologies Company Zero power appliance control, systems and methods
US20140351563A1 (en) * 2011-12-16 2014-11-27 Hyperion Core Inc. Advanced processor architecture
CN105049173B (zh) * 2015-08-27 2017-12-22 南京南瑞继保电气有限公司 异步装置的同步方法
CN109800054B (zh) * 2018-12-24 2023-05-26 四川知周科技有限责任公司 一种分布式并行实时仿真调度实现方法
CN111190659B (zh) * 2019-12-09 2023-05-30 航天信息股份有限公司 上位机与传动机构的通信方法、装置、电子设备及介质
RU2738963C1 (ru) * 2019-12-25 2020-12-21 Федеральное государственное унитарное предприятие "Научно-производственный центр автоматики и приборостроения имени академика Н.А. Пилюгина" (ФГУП "НПЦАП") Асинхронное входное устройство

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3821709A (en) * 1972-10-05 1974-06-28 Honeywell Inf Systems Memory storage sequencer
US4433391A (en) * 1981-08-17 1984-02-21 Burroughs Corporation Buffered handshake bus with transmission and response counters for avoiding receiver overflow
US4646300A (en) * 1983-11-14 1987-02-24 Tandem Computers Incorporated Communications method
JPH0758458B2 (ja) * 1988-07-21 1995-06-21 三菱電機株式会社 データ転送装置及びそれを使用したパイプライン処理装置
US5313621A (en) * 1990-05-18 1994-05-17 Zilog, Inc. Programmable wait states generator for a microprocessor and computer system utilizing it
JP2636695B2 (ja) * 1993-08-03 1997-07-30 日本電気株式会社 パイプライン処理回路

Also Published As

Publication number Publication date
DE69705961D1 (de) 2001-09-06
MY129430A (en) 2007-03-30
CN1230264A (zh) 1999-09-29
CN1214320C (zh) 2005-08-10
GB2318194B (en) 2000-12-27
KR20000048931A (ko) 2000-07-25
DE69705961T2 (de) 2002-04-04
EP0931287B1 (en) 2001-08-01
US5887129A (en) 1999-03-23
IL127355A0 (en) 1999-10-28
EP0931287A1 (en) 1999-07-28
RU2182353C2 (ru) 2002-05-10
KR100505798B1 (ko) 2005-08-04
GB2318194A (en) 1998-04-15
GB9620973D0 (en) 1996-11-27
WO1998015893A1 (en) 1998-04-16
IL127355A (en) 2003-01-12
JPH10124456A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
JP3709040B2 (ja) 非同期データ処理装置
US5987620A (en) Method and apparatus for a self-timed and self-enabled distributed clock
US7836291B2 (en) Method, medium, and apparatus with interrupt handling in a reconfigurable array
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
JP2006503385A (ja) マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置
JP2008542949A (ja) パイプライン型マイクロプロセッサの節電システムおよび節電方法
JPH10260944A (ja) 割込みシステム
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
KR20090016645A (ko) 컴퓨터의 입력을 모니터링하는 방법과 장치
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
US20040128484A1 (en) Method and apparatus for transparent delayed write-back
US6473864B1 (en) Method and system for providing power management to a processing system
US20160283233A1 (en) Computer systems and methods for context switching
US20050027974A1 (en) Method and system for conserving resources in an instruction pipeline
JPS6226487B2 (ja)
JP2636074B2 (ja) マイクロプロセッサ
JPH0876876A (ja) マイクロプロセッサのクロック供給制御回路
KR100284288B1 (ko) 프로세서의 전력 절감 장치 및 방법
JP2004048228A (ja) プログラマブル論理回路及びコンピュータシステム並びに回路の初期化方法
KR100261175B1 (ko) 인터럽트 회로
JP2001014214A (ja) メモリ共有方法、およびこの方法を使用したマルチプロセッサ設備
JP2002351658A (ja) 演算処理装置
EP2057554A1 (en) Processor having multiple instruction sources and execution modes
JPS61118840A (ja) 電子計算機の制御方式
JPH04148236A (ja) 中央処理装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040907

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050412

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050729

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050805

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130812

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees