JPH11167791A - 高速非同期パイプライン制御回路及び高速非同期向流パイプライン制御回路並びに、これに用いられるコンピュータメモリ - Google Patents

高速非同期パイプライン制御回路及び高速非同期向流パイプライン制御回路並びに、これに用いられるコンピュータメモリ

Info

Publication number
JPH11167791A
JPH11167791A JP9284373A JP28437397A JPH11167791A JP H11167791 A JPH11167791 A JP H11167791A JP 9284373 A JP9284373 A JP 9284373A JP 28437397 A JP28437397 A JP 28437397A JP H11167791 A JPH11167791 A JP H11167791A
Authority
JP
Japan
Prior art keywords
control circuit
pipeline
output
circuit
terminal
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
JP9284373A
Other languages
English (en)
Inventor
Charles E Molnar
チャールズ イー モルナー
Scott M Fairbanks
スコット エム フェアバンクス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH11167791A publication Critical patent/JPH11167791A/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/08Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)
  • Dram (AREA)
  • Shift Register Type Memory (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】向流パイプライン処理等に必要な緊密結合した
制御信号を発生する非同期制御回路を備え、高度なパイ
プライン処理を正確に制御できる高速非同期パイプライ
ン制御回路及び高速非同期向流パイプライン制御回路並
びにこれに用いられるコンピュータメモリを提供するこ
とにある。 【解決手段】制御部410は、交互に並べた第1制御回
路411、第1検出回路414、第2制御回路412、
第2検出回路415を含む。回路411は、レジスタ4
02,404のゲート入力を制御し、回路412は、レ
ジスタ403のゲート入力を制御する。それぞれの検出
回路414,415は、隣接した2つの制御回路の状態
をモニタし、フルを示す制御回路がエンプティを示す制
御回路に先立つときに、これらの回路に移送信号を供給
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータのパ
イプライン制御に関し、更に詳しくは、パイプライン処
理により非同期でデータを転送するための回路構造に関
するものである。
【0002】
【従来の技術】パイプライン処理装置は、コンピュータ
の高速機構として一般的である。パイプライン処理装置
あるいはパイプラインは、データがパイプラインを通る
ときに、そのデータを処理する。最も基本的なパイプラ
インのインプリメンテーションとしては、先入れ先出し
(以下「FIFO」とする)メモリが挙げられ、それに
よれば、ある段の未変換データが次段へ次々にコピーさ
れる。
【0003】パイプライン化されたFIFOメモリ内で
は、フルあるいは占有された段がエンプティあるいは未
占有の段に先立って処理を行うとき、(1)フルステー
ジからエンプティステージへのデータ転送、(2)エン
プティ制御状態をフルに設定、及び、(3)フル制御状
態をエンプティに設定するという重要な機能を行うため
の論理が要求される。望ましくは、データ要素は、でき
るだけ速やかにフルステージからエンプティステージへ
移動すべきである。パイプライン処理スピードは、3つ
の機能がすべて同時になされたときに最大になる。FI
FOメモリのようなパイプラインを通るデータ流れは、
同期したものでも、非同期のものでもよい。同期FIF
Oメモリのデータ要素は、それぞれの段で所定のクロッ
ク周期(一般的には1つか2つ)をとりながら、決まっ
たステップで連続した段を進む。同期FIFOメモリ
は、そのクロックにより決定される所定の時間間隔でデ
ータ要素を受け取り、そしてそれらを同じ所定の速さで
出力する。
【0004】非同期FIFOメモリは、それぞれの段が
隣接した段間での通信のみを要求しながら、決まった速
さで処理を行うという点で、同期FIFOメモリより
も、設計上の重要な利点を有している。全体へのクロッ
ク分配のオーバーヘッドを避けることにより、非同期F
IFOメモリは、同期FIFOメモリに比べてより高い
スピードで処理でき、しかもその消費電力が少ない。
【0005】図1は、従来の非同期FIFOメモリ50
の一般構成のブロック構成を示したものである。FIF
Oメモリ50は、入力部100と出力部102とを備え
ている。入力部100と出力部102との間には、その
FIFOメモリを介してデータ要素を記憶し移動させる
データレジスタ104,105,106,107が配置
されている。それぞれの制御回路110〜113は、そ
れぞれ、対応するデータレジスタ104〜107に関連
づけられている。
【0006】入力部100がデータレジスタ104内に
データ要素が配置される準備ができているデータ要素を
有しているときは、入力部100は、制御回路110の
状態をチェックする。制御回路110がレジスタ104
がエンプティであることを示すと、入力部100は、そ
のデータ要素をレジスタ104に転送するとともに、制
御回路110は、レジスタ104がフルであることを示
すために状態を変更する。制御回路110がフルである
ことを示すとともに、制御回路111がエンプティであ
ることを示すと、データ要素は、その後、次のレジスタ
105へ転送される。それと同時、あるいは、ほぼ同時
に、制御回路110,111は、制御回路110がその
時エンプティであり、制御回路111がその時フルであ
ることを示すように、状態を変更する。このようにし
て、データ要素は、FIFOメモリ50がその先にフル
ステージを見つけるまで、このFIFOメモリ50を介
して伝達される。これが起こると、データ要素は止ま
り、次のステージがエンプティになるまで待機する。
【0007】FIFOメモリ50内のデータ要素は、エ
ンプティステージからフルステージにより止まるまで、
自動的に移動するため、データ移動のスピードは、個々
のレジスタや、フル/エンプティ状態を検知してデータ
を移動させる制御要素により要求された時間に依存す
る。データ要素の移動には、(1)FIFOメモリ内の
後段においてデータ要素をラッチし、(2)前段におけ
るデータ要素のラッチを解除することが含まれる。従っ
て、データ移動のスピードの増加には、ラッチ及びラッ
チ解除操作をできる限りしっかりと結び付けることが要
求される。ラッチしてからあまりに時間が経過したとき
にラッチ解除が起こると、スピードに影響が出る一方、
ラッチが完了する前にラッチ解除が起こると、システム
強度に影響が出る。
【0008】図2は、従来の図1のFIFOメモリ50
の一部である従来の回路200の回路構成を示したもの
である。レジスタ202,204は、それぞれ、レジス
タ104〜107のいずれか一つに対応しており、制御
部206は、制御回路110〜113に漠然と対応して
いる。制御部206は、シリアル接続されたミューラー
C要素208,210,212及びエクスクラッシブオ
アゲート214,216から構成されている。
【0009】ミューラーC要素は、よく知られた順序回
路要素であり、入力ノードが論理的に同じときにその出
力ノードでその入力ノードの値を再生させるものであ
る。例えば、C要素の入力が(ロウ,ロウ)のとき、そ
の出力はロウになる。入力ノードが(ハイ,ロウ)に切
り換わると、その出力は、ロウを維持する。その入力ノ
ードが(ハイ,ハイ)切り換わったときにのみ、その出
力がハイになる。C要素208,210,212は、そ
れぞれ、その上側に反転入力端子(小円で表されてい
る)を有している。従って、C要素208,210,2
12は、2つの入力が異なるときに、下側の入力を出力
ノードへ出す。
【0010】C要素208,210,212は、それぞ
れのC要素が、その1つの入力として1つ前(下側)の
C要素の出力を充て、もう一つの入力として次(上側)
のC要素の反転出力を充てている。従って、C要素は、
その出力が前段のC要素の状態と異なっているときにの
みその出力を切り換える。後段のC要素についても同様
である。
【0011】エクスクラッシブゲートオア216は、ミ
ューラーC要素208,210の出力を受け、レジスタ
204のゲート入力をその出力とともに駆動する。同様
にエクスクラッシブオアゲート214は、ミューラーC
要素212,212の出力を受け、レジスタ202のゲ
ート入力をその出力とともに駆動する。図2には、2つ
のレジスタのみが示されているが、FIFOの段数がい
くらであっても、その数に応じて、C要素とエクスクラ
ッシブオアゲートを加えて制御部を拡張し、データ回路
に必要な数のレジスタを加えればよい。
【0012】表1は、図2に示したA,B,C,D,
E,F,Gの各ポイントでの論理状態の典型的なタイミ
ング関係を示したものである。
【0013】
【表1】
【0014】時間間隔0においては、ポイントFがハイ
であり、その下側のデータレジスタがフルであることを
示すとともに、それを含む値がポイントHで現れる。ポ
イントE,Dは、ロウであり、レジスタ202,204
がエンプティであることを示している。時間間隔1にお
いては、C要素208は、ポイントAでの値がポイント
Fでの値になるように状態を変化させる。次に、C要素
208の出力がC要素210に伝達すると、エクスクラ
ッシブオアゲート216の出力Dはハイになり、レジス
タ204がその入力データ(時間間隔2)をラッチすべ
きことを示す。また、時間間隔2においては、C要素2
10の出力Bがハイになる。出力Bは、C要素208,
212への入力の他、エクスクラッシブオアゲート21
4,216への入力としても機能するため、出力Bでの
この変化は、時間間隔3で複数の結果を含むものであ
る。
【0015】時間間隔3では、C要素212は、ポイン
トGからの反転入力がロウであるため、ポイントBでの
ハイ値に応じてポイントCでハイを出力する。また、ポ
イントBでのハイに応じて、エクスクラッシブオアゲー
ト216の出力Dはロウに変化し、レジスタ214が、
その時にエンプティであることを示す。更に、ポイント
Bでのハイに応じてエクスクラッシブオアゲート214
の出力Eは、ハイに変化し、そのレジスタ202がその
時にフルであることを示す。最終的には、ポイントBの
ハイ値は、C要素208の反転入力に適応し、入力Fに
おけるハイからロウへのその後の変化に応じることがで
き、これにより、データレジスタ204へのデータ入力
での二番目のデータ値が有効であることを伝える。
【0016】時間間隔4では、ポイントCでのハイ値に
続いて、エクスクラッシブオアゲート214の出力Eが
その本来のロウ値に戻る。ポイントEのロウ値は、その
データレジスタ202がエンプティであることを示し、
図示していないが、最初のデータ値がパイプラインの後
段に向かって通過したことを示している。パイプライン
の後段で示されたポイントGでの初期のロウ値は、ポイ
ントCがハイ値に変化したときに、レジスタ202の値
を受け取る準備ができていたことを示している。従っ
て、時間間隔4では、ポイントD,Eが最初のロウ値に
戻り、エンプティであることを示している。ポイントA
が時間間隔1で、ロウからハイへ変化した後はいつで
も、回路は、二番目のデータ値を受け取ることができ、
そのデータは、ポイントFでのハイからロウへの変化に
より信号化されている。二番目及び次のデータ値は、上
述したこの種のパイプラインの限定されない段数を介し
て、選択的、規則的に伝達することができる。
【0017】
【発明が解決しようとする課題】図2に示したレジスタ
204からレジスタ202へのデータ要素の正確で能率
的な移送は、ポイントD,Eでのレジスタゲート信号中
の変化の正確なタイミングに依存しているため、ポイン
トDはレジスタ204がエンプティになるように、ポイ
ントEはレジスタ202がフルになるように、データ要
素を壊さず、かつ、できるだけ速く駆動する。しかしな
がら、ポイントBが状態を変化させるとき、ポイント
E,Dでの状態変化の相対的なタイミングは、エクスク
ラッシブオア回路214,216における遅延差によっ
て決まる。エクスクラッシブオアゲートは、相対的に複
雑な回路であり、図2に示したFIFOメモリ中にタイ
ミングを不安定にする信号を導くため、その信号は、回
路の最大安全処理速度を下げる。
【0018】従って、FIFOメモリのような非同期パ
イプライン中でタイミング不定信号を取り除いたり、そ
のようなパイプラインの処理速度を上げるために制御信
号をより緊密に結合させることが要求される。
【0019】その要求は、パイプラインの向流のよう
な、外部的な抑制によってデータ移送のタイミングが決
まるときに決定的である。図3は、向流パイプラインの
部分を説明するためのブロック構成を示したものであ
る。向流パイプライン300は、第1パイプライン32
0(「命令パイプライン」と称される)と、第2パイプ
ライン340(「結果パイプライン」と称される)とを
有しており、それらは、データ要素を反対の方向へ移送
する。図3によれば、命令パイプライン320は、デー
タ要素を右へ移送し、結果パイプライン340は、デー
タ要素を左へ移送する。パイプライン320の段は、直
列接続されたコントロール部328〜330及びそれら
の対応するデータ要素の記憶部の他、処理部322〜3
24を含んでなるものである。それぞれの処理部322
〜324は、命令及びそれに関連した命令を実行するた
めに必要な情報フィールドを記憶するためのメモリを含
む。データ要素の記憶・処理部322〜324は、例え
ば、整数系データの命令を実行することができる論理演
算装置(ALU)を含む。
【0020】パイプライン340の段は、直列接続され
たコントロール部348〜350と、対応する結果記憶
要素342〜344を含む。結果記憶要素は、記憶・処
理部322〜324の命令による結果、あるいは、その
命令に必要なデータ値を記憶するとともに転送する。
【0021】処理においては、パイプライン320のそ
れぞれの段における命令は、パイプライン340の対応
する段における結果と相互に影響し合う。命令部322
〜324におけるそれぞれの段情報は、それぞれ、結果
部342〜344に対応する情報と較べることができ
る。例えば、セクション322がオペランドとして、セ
クション342における結果を要求したとするならば、
その結果は、セクション322にコピーされる。一方、
情報は、同様にして命令パイプラインから結果パイプラ
インへと、反対の方向にコピーされ、あるいは、転送さ
れ、そしてそこでは、情報が移動し、命令パイプライン
中の次に続く命令と相互に作用しあうことになる。多く
のアプリケーションの向流パイプライン300の正確な
処理のためには、パイプライン340を下るそれぞれの
結果がパイプライン320を上るそれぞれの命令と相互
に作用し合うことが必要である。たとえ、事前にこの相
互作用が起こる段が判明しなくても、ある段でそのよう
な相互作用が起こることは必須であり、さもなければ、
何等かのエラーが起こる。
【0022】本発明は、このような事情に鑑みてなされ
たものであり、その目的とするところは、向流パイプラ
イン処理等に必要な緊密結合した制御信号を発生する非
同期制御回路を備え、高度なパイプライン処理を正確に
制御できる高速非同期パイプライン制御回路及び高速非
同期向流パイプライン制御回路並びにこれに用いられる
コンピュータメモリを提供することにある。
【0023】
【課題を解決するための手段】本発明に係る高速非同期
パイプライン制御回路は、複数段のうち第1段目の転送
状態を制御する第1制御回路と、前記第1段目に直列接
続され、前記複数段のうち第2段目の転送状態を制御す
る第2制御回路と、前記第1及び第2制御回路の出力端
子に接続され、該第1及び第2制御回路の出力値に基づ
いて、該第1及び第2制御回路により受け取られている
移送信号を生成する検出回路と、前記第1制御回路と検
出回路との間に接続された第1インバータと、前記第2
制御回路と検出回路との間に接続された第2インバータ
とからなることを要旨とするものである。
【0024】上記構成を有する高速非同期パイプライン
制御回路によれば、第1制御回路は、複数段のうち第1
段目の転送状態を制御し、前記第1段目に直列接続され
た第2制御回路は、該複数段のうち第2段目の転送状態
を制御する。前記第1及び第2制御回路の出力端子に第
1インバータ及び第2インバータをそれぞれ介して接続
された検出回路は、該第1及び第2制御回路の出力値に
基づいて、該第1及び第2制御回路により受け取られて
いる移送信号を生成する。これにより、高度なパイプラ
イン処理が正確に制御されることになる。
【0025】更に、本発明に係るコンピュータメモリ
は、高速非同期パイプライン制御回路に用いられて好適
なものであって、先入れ先出しメモリと、先入れ先出し
メモリを制御する第1入力端子、第2入力端子及び出力
端子を有する第1制御回路と、第1及び第2トランジス
タを含み、先入れ先出しメモリを制御する第1入力端
子、第2入力端子及び出力端子を有する第2制御回路
と、第1制御回路の出力と第2制御回路の出力を受け取
るとともに、該第1及び第2制御回路の出力に応じて移
送信号を生成する検出回路とを備え、生成された移送信
号は、前記第1及び第2制御回路のそれぞれの第1及び
第2トランジスタのうちの1つのゲート入力端子をオン
することにより、該第1及び第2制御回路の出力を変化
させることを要旨とするものである。
【0026】上記構成を有するコンピュータメモリによ
れば、検出回路は、第1制御回路の出力と第2制御回路
の出力を受け取るとともに、該第1及び第2制御回路の
出力に応じて移送信号を生成する。生成された移送信号
により、前記第1及び第2制御回路のそれぞれの第1及
び第2トランジスタのうちの1つのゲート入力端子がオ
ンされると、該第1及び第2制御回路の出力が変化す
る。これにより、高度なパイプライン処理が正確に制御
されることになる。
【0027】本発明に係る高速非同期向流パイプライン
制御回路は、第1パイプラインの第1段目の転送状態を
制御する第1制御回路と、第2パイプラインの前記第1
段目に互いに隣接した第2段目の転送状態を制御する第
2制御回路と、前記第1及び第2制御回路の出力端子と
第2パイプラインからの第2検出回路の出力端子とに接
続された第1検出回路とを備え、該第1検出回路は、該
第1及び第2の制御回路と該第2検出回路との出力に基
づいて移送信号を生成するとともに、該移送信号を該第
1及び第2制御回路と該第2パイプラインとへ伝送する
ことを要旨とするものである。
【0028】上記構成を有する高速非同期向流パイプラ
イン制御回路によれば、第1制御回路は、第1パイプラ
インの第1段目の転送状態を制御し、第2制御回路は、
第2パイプラインの前記第1段目に互いに隣接した第2
段目の転送状態を制御する。前記第1及び第2制御回路
の出力端子と第2パイプラインからの第2検出回路の出
力端子とに接続された第1検出回路は、該第1及び第2
の制御回路と該第2検出回路との出力に基づいて移送信
号を生成するとともに、該移送信号を該第1及び第2制
御回路と該第2パイプラインとへ伝送する。これによ
り、高度なパイプライン処理が正確に制御されることに
なる。
【0029】
【発明の実施の形態】以下、本発明の好適な実施の形態
を図面を参照して説明する。以下の説明においては、同
一の各種構成要素や各種部材には、同一の符号を付して
いる。
【0030】本発明は、FIFOパイプラインとして構
成された直列接続されたパイプラインを非同期に制御す
る装置を含んだものである。以下に説明する初めの3つ
の実施例による装置は、高速で簡潔なFIFOパイプラ
イン制御回路であり、記憶装置及び転送要素の相対的な
到着信号を予測的かつ精密に制御する。このように、デ
ータ記憶と転送要素の相対タイミングの緊密結合は、デ
ータ落ちなくFIFOメモリの処理速度を増加させる。
本発明による第4〜第6の実施例は、第3実施例の変形
例を応用したものである。
【0031】すべての実施例に用いた制御回路は、制御
回路と検出回路とを交互に連結したものを含んでなる。
フル状態の制御回路がエンプティ状態の制御回路に先立
つとき、フル制御回路に対応したデータ記憶要素がその
データをエンプティ制御回路に対応した次の記憶要素へ
転送すべきであることを示しながら、検出回路が移送信
号を生成する。移送信号は、前の制御回路の状態をエン
プティに、後続の制御回路の状態をフルに設定し、これ
により、前段から後段へデータ要素の移送を可能にして
いる。制御回路は、相対的に簡潔であり、その信号伝達
時間は、予測可能であるため、一般的な移送信号に対す
る隣接した制御回路の相対的な応答時間は、緊密制御さ
れ得る。
【0032】図4〜図7は、本発明による非同期FIF
Oパイプライン制御回路の第1実施例を示したものであ
り、回路容量に応じてフル/エンプティ状態情報を記憶
する制御回路を用いている。この実施例のシミュレーシ
ョンによれば、データ伝達の速さは、0.6ミクロンの
シーモス(CMOS)ファブリケーションプロセスを用
いて1ギガヘルツ以上である。
【0033】図4は、非同期FIFOパイプラインの第
1実施例であるハイレベル時のブロック図を示したもの
である。FIFOパイプラインは、より多くの段数から
なるものであってよいが、説明のため図には、FIFO
パイプラインの3つの段数を示している。
【0034】直列接続されたレジスタ402〜404
は、ゲート入力Gの信号がアクティブのとき入力Dで受
信したデータを出力Qへ転送し、そのレジスタがエンプ
ティであることを示す。ゲート信号がインアクティブの
とき、各レジスタは、それらがフルであるため、出力Q
のデータを維持する。制御回路で完全に処理するため、
レジスタ402〜404は、アクティブなハイのゲート
信号とアクティブなロウのゲート信号とが切り換わるよ
うに配置されている。レジスタ402,404は、ロウ
電圧信号によりフルに駆動され、レジスタ403は、ハ
イ電圧信号によりフルに駆動される。
【0035】制御部410は、交互に並べた第1制御回
路411、第1検出回路414、第2制御回路412、
第2検出回路415を含む。回路411は、レジスタ4
02,404のゲート入力を制御し、回路412は、レ
ジスタ403のゲート入力を制御する。それぞれの検出
回路414,415は、隣接した2つの制御回路の状態
をモニタし、フルを示す制御回路がエンプティを示す制
御回路に先立つときに、これらの回路に移送信号を供給
する。
【0036】図5A及び図5Bは、第1実施例において
用いた制御回路411,412を説明するための回路図
である。1種類の制御回路を1種類の検出回路と交互に
用いた制御回路を構成することは可能であるが、以下に
説明するように図4に示した回路400は、より高速に
処理を行うとともに、スタティック処理の可能な付加的
保持回路を単純化したインバータ516,526を備え
ている。制御回路411は、Nチャネルモス(NMO
S)トランジスタ514に直列接続されたPチャネルモ
ス(PMOS)トランジスタ512を備えている。エン
プティ/フル状態情報は、周囲の回路容量に応じてノー
ド515で記憶される。
【0037】Pチャネルモス(PMOS)トランジスタ
512は、そのゲートSet_E(”_”は、ロウアク
ティブであることを示す)をロウ状態にすることにより
ターンオンされ、Nチャネルモス(NMOS)トランジ
スタは、そのゲート入力SetFをハイ状態にすること
によりターンオンされる。トランジスタ514がオフで
ある間にトランジスタ512をターンオンすることは、
ノード515を電源電圧(ハイ)にセットし、トランジ
スタ512がオフである間にトランジスタ514をター
ンオンすることは、ノード515をグランド電圧(ロ
ウ)にセットする。
【0038】インバータ516,517は、ノード51
5と回路411のフル出力端子との間に円環状に接続さ
れている。インバータ517は、トランジスタ512,
514の両方がターンオフされたときにノード515か
らの漏れ電荷を置き換える保持インバータとして機能す
る。保持インバータ517がないと、ノード515は漏
れ電流に起因してその電荷を失い、トランジスタ51
2,514のうちいずれかを周期的に再充電する必要が
ある。従って、長時間にわたってパイプラインがインア
クティブであっても、保持インバータ517は、ノード
515の状態を保持し、このような回路は、”スタティ
ック形”と称される。保持インバータ517は、パイプ
ラインが常に十分に短い時間間隔で処理されるものであ
るならば、省略することも可能であり、このような回路
は、”ダイナミック形”と称される。
【0039】保持インバータ517は、Pチャネルモス
トランジスタ512とNチャネルモストランジスタ51
4に対して少ない量の出力電流を供給する弱インバータ
である。一般的には、保持インバータ517のトランジ
スタの幅は、インバータ516のトランジスタの幅より
も約1/10〜1/20倍程度に小さい。例えば、保持
インバータ517は、P及びNチャネルモストランジス
タの両方について約1.2ミクロンの幅を有しており、
その一方で、インバータ516は、そのPチャネルトラ
ンジスタについて約24ミクロンの幅を有し、Nチャネ
ルトランジスタについて約12ミクロンの幅を有してい
る。トランジスタ512,514は、それぞれ、約36
ミクロン、約18ミクロンの幅を有している。
【0040】図5Bに示した制御回路412は、Pチャ
ネルモストランジスタ522、Nチャネルモストランジ
スタ524、インバータ526及び保持インバータ52
7を備えている。回路412は、構造上、回路411と
同一であるが、その鏡像イメージになっている。しかし
ながら、回路412においては、Pチャネルモス及びN
チャネルモストランジスタにおけるゲート入力と出力と
が回路411の構造によるものとは異なった意味に割り
当てられている。特に、回路412においては、トラン
ジスタ522のゲートは、Set_Fに割り当てられ、
トランジスタ524のゲートは、SetEに割り当てら
れている。加えて、左側のインバータ526の出力端子
528でのハイ電圧は、エンプティを示し、右側の出力
端子でのハイ電圧は、フルを示す。
【0041】図6Aは、回路411のフルデータ出力5
18と回路412のエンプティデータ出力528とを入
力信号とするナンドゲート600で示されるような検出
回路414の本実施例の回路図である。検出回路414
の出力(Move_信号)は、回路411の入力Set
_Eと回路412の入力Set_Fに入力される。検出
回路414は、回路411のフル状態(ノード518で
ハイレベル値により表される)と回路412のエンプテ
ィ状態(ノード528でハイレベル値により表される)
とを検出するために処理を行う。
【0042】図6Bは、回路412のフルデータ出力5
25と回路411のエンプティデータ出力515とを入
力信号とするナンドゲート602と、ナンドゲート60
2の出力端子に接続されたインバータ604とで示され
るような検出回路415の本実施例の回路図である。イ
ンバータ604の出力(Move信号)は、回路412
の入力SetEと回路411の入力SetFに入力され
る。検出回路415は、回路412のフル状態(ノード
525のハイレベル値により表される)と回路411の
エンプティ状態(ノード515のハイレベル値により表
される)とを検出する。
【0043】図7は、図4〜図6Bを一つにまとめて示
した制御部410の一部を説明した回路図である。回路
の処理を単純にし、かつ、簡単に理解できるように、イ
ンバータ516,526及び検出回路414は、論理的
に等しいオアゲート707として示され、検出回路41
5は論理的に等しいアンドゲート708として示されて
いる。トランジスタ704,705,706は、Pチャ
ネルモストランジスタであり、トランジスタ701,7
02,703は、Nチャネルモストランジスである。
【0044】回路処理を論証するために、ノードA,
B,Cが、それぞれ、ロウレベル,ハイレベル,ハイレ
ベルの値をとるものと仮定する。これらは、それぞれ、
フル状態,フル状態,エンプティ状態に対応している。
ノードB,Cでの値が両方共、ハイレベルであるので、
アンドゲート708は、ハイレベル値を2つの対向する
Nチャネルモストランジスタ702,703のゲートに
割り当てる。これにより、トランジスタ702,703
がターンオンし、ノードB,Cがロウレベルにセットさ
れる。この中間段階におけるノードA,B,Cの回路状
態は、そのとき、それぞれ、フル状態、エンプティ状
態、フル状態を示している。従って、ノードBにより表
されるフル状態は、ノードCに移行し、ノードCにより
表されるエンプティ状態は、ノードBに移行する。B,
Cにおける回路状態のこれらの変化は、連結したデータ
レジスタのゲート入力で一緒にされ、これに対応して、
ノードBに連結したデータレジスタに保持されたデータ
値のノードCに連結したデータレジスタへの移送を生成
する。
【0045】ノードBでの新たなロウレベルがオアゲー
ト707に伝達されると、次のステップが起こるが、こ
のステップは、ノードAからロウ入力を受け続けるもの
である。オアゲート707の出力は、Pチャネルモスト
ランジスタ705,706のゲートにロウレベルを割り
当て、これにより、ノードA,Bがハイレベルに設定さ
れる。このステップの後、ノードA,B,Cは、それぞ
れ、その値が、エンプティ,フル,フルであることを示
す。ノードA,Bにより表されるフル値は、両方とも、
右側のノードB,Cへ移送され、これにより、ノードA
に連結したデータレジスタに保持されるデータ値は、ノ
ードBに連結したデータレジスタに保持され、ノードB
のデータ値は、ノードCに連結したデータレジスタに移
送される。
【0046】同様にして、ノードCに連結したデータ値
は、右側のパイプラインの後段へ移送され得ることにな
り、新たなデータ値がA段の左側にある段からノードA
に連結した段へ流れ込む。このような処理サイクルの繰
り返しにおいては、各サイクルが隣接した段間のみの相
互作用を含むものであるが、データ要素を保持可能なエ
ンプティセルが存在する限り、データ要素をパイプライ
ンを介して右側へ移送する。
【0047】データ記憶及び転送要素としてのレジスタ
を用いて本実施例を説明したが、多くの変形例が実現さ
れる。1つあるいはそれ以上のバッファを介した図4に
示した制御信号G,G_の増幅は、複数のデータレジス
タが複数ビットからなるデータの移送を許容するように
駆動されるときに必要とされる。更に、ゲート極性を交
互に変えながらレジスタを用いるのに代えて、バッファ
をゲート極性を反転するように配置してもよい。
【0048】図8及び図9は、本発明による非同期FI
FOメモリの制御構造である第2実施例を示した図であ
る。この実施例は、非同期FIFOメモリ800は、直
列接続されたデータレジスタ802,803,804に
データ要素を記憶する構成を示した図4〜図7の実施例
に似たものである。しかし、図8及び図9によれば、そ
れぞれの段が同一の制御回路(セット/リセットラッチ
806)と検出回路(論理ゲート810)を有してい
る。
【0049】レジスタ802〜804は、入力端子Dで
データを受け取り、そして、受け取ったデータをゲート
入力Gの信号に応じて出力端子Qへ転送する。それぞれ
のフリップフロップ802〜804のゲート入力Gは、
セット/リセットラッチ806のフル(F)の出力端子
に接続している。論理ゲート810は、セット/リセッ
トラッチ806の1つのフル出力とそれに続くセット/
リセットラッチ806のエンプティ出力とを入力として
受け取る。
【0050】通常の処理においては、ラッチ806のフ
ル及びエンプティ出力は、互いにスタティックな補数に
なっている。データレジスタ803を駆動するセット/
リセットラッチのフル出力端子でのハイ論理状態は、デ
ータレジスタ803に、次のデータレジスタ804のデ
ータ入力端子Dに接続された出力端子Qの現在のデータ
値を保持させる。セットリセットラッチのフル出力端子
でのロウ論理状態は、データレジスタ803に、出力端
子Qの現在のデータ値をラッチさせないようにし、これ
により、データレジスタ803が前段のデータレジスタ
802から新たなデータ値を受け取るとともに、この新
たなデータ値を後段のデータレジスタ804の入力端子
Dに渡す。
【0051】論理ゲート810は、ナンドゲートである
ことが望ましいが、特定のセット/リセットラッチのイ
ンプリメントに依存した他の論理回路であってもよい。
処理においては、論理ゲート810は、前段のセット/
リセットラッチのフルの出力信号とその後段のセット/
リセットラッチのエンプティ出力信号とを受け取るもの
であり、両方のデータがあるときに、ナンドゲートの出
力がロウになる。それは、前段のセット/リセットラッ
チをフル状態からエンプティ状態にさせるとともに、そ
の後段のセット/リセットラッチをエンプティ状態から
フル状態にさせ、これにより、前段のデータレジスタの
アンラッチと後段のデータレジスタのラッチとが初期化
される。これらの応答は、前段のデータレジスタに保持
されたデータ値を後段のデータレジスタに移送させると
ともに、後段のレジスタに次のデータ値を受け入れる準
備をさせる。
【0052】1つ前のセット/リセットラッチがエンプ
ティ状態になるか、あるいは、後段のセット/リセット
ラッチがフル状態になると、論理ゲート810は、もは
やアクティブではなくなり、ナンドゲートの出力がハイ
になり、これにより、前段あるいは後段のセット/リセ
ットラッチをエンプティあるいはフル状態にそれぞれ駆
動することができなくなる。必要であれば、これらのス
テップが完全に調整されるように、付加回路遅延要素を
セット/リセットラッチ及び論理ゲート810に挿入し
てもよい。
【0053】図9は、本実施例において好適なセット/
リセットラッチ806の回路を示したものである。ナン
ドゲート902とナンドゲート904は、クロス接続さ
れているため、ナンドゲート902は、Set_F信号
を1つめの入力端子で受け取り、ナンドゲート904の
出力を2つめの入力端子で受け取る。ナンドゲート90
4は、Set_E信号を2つめの入力端子で受け取り、
ナンドゲート902の出力を1つめの入力端子で受け取
る。
【0054】セット/リセットラッチ及び論理ゲート9
10は、ナンドゲートに代えてノアゲートによりインプ
リメントしてもよいが、ナンドゲートの方が周知の製造
技術による半導体により適している。
【0055】表2は、2つの隣接したセット/リセット
ラッチ806と論理ゲート810の典型的なタイミング
関係を示したものである。表2のA欄〜E欄は、図8に
符号を付けたA〜Eに対応している。
【0056】
【表2】
【0057】時間間隔0、すなわち、初期状態において
は、ポイントA,Dがハイであり、ポイントB,Cがロ
ウである。これは、フル状態を示す1番目のラッチ(A
がハイ)とエンプティ状態を示す2番目のラッチ(Cが
ロウ)に対応している。表2は、1番目のラッチがエン
プティ(Aがロウ)になり、2番目のラッチがフル(C
がハイ)になるまで回路を介して信号が非同期で伝達す
る様子を示している。
【0058】図10は、第3実施例による非同期FIF
Oメモリの制御構成を説明するためのブロック構成を示
したものである。第2実施例のように、FIFOメモリ
1000は、そのデータ要素を、直列接続されたレジス
タ802〜804内のデータ要素に記憶するものであ
り、これらのレジスタは、制御回路806(セット/リ
セットラッチ)及び検出回路810(論理ナンドゲー
ト)により制御されている。しかしながら、FIFOメ
モリ800とは異なり、FIFOメモリ1000は、2
つの追加インバータ1002,1004をそれぞれの段
毎に含む。また、前段のフル出力端子と後段のエンプテ
ィ出力端子を論理ゲート810の入力端子に接続するの
に代えて、FIFOメモリ1000では、前段のエンプ
ティ出力端子と後段のフル出力端子とがそれぞれインバ
ータ1002,1004を介して論理ゲート810の入
力端子に接続されている。
【0059】FIFOメモリ1000は、FIFOメモ
リ800と同様に処理を行う。セット/リセットラッチ
806の入力及び出力端子は、FIFOメモリ1000
で用いられるものとして、論理ゲート810に対して互
いにスタティック状態の要素として処理を行うため、F
IFOメモリ800の論理ゲート810への未反転入力
と論理的に等しい。
【0060】セット/リセットラッチ806のスタティ
ック状態分析は、出力E,Fが論理素子であることを示
している。これは、ラッチの状態が変化状態にある間に
おいては、必ずしも正しくない。FIFOメモリ800
の長いパイプライン(64あるいはそれ以上の段数)の
シミュレーションによれば、情報の損失は、データが多
段を介して伝達した後に起こる。このような損失は、セ
ット/リセットラッチ806とナンドゲート810が異
常な制御状態に達した結果として現れる。
【0061】FIFOメモリ1000で用いた制御回路
は、FIFOメモリ800とは異なるものであるが、通
常の処理で発生する制御状態以外の制御状態を有するも
のではない。ナンドゲート810の入力端子でのハイ信
号を生成するインバータ1002,1004から違いが
発生する。インバータ1002は、セット/リセットラ
ッチ806の出力Eを入力として受け取り、インバータ
1004は、後段のセット/リセットラッチ806の出
力Fを入力として受け取る。FIFOメモリ800の制
御回路では、ナンドゲート810への入力は、セット/
リセットラッチ806の出力Fと後段のセット/リセッ
トラッチ806の出力Eから直接とったものである。
【0062】一般的な論理分析によれば、2つの回路が
スタティック状態で論理的に等しいことを示している
が、制御回路1000を用いた長いFIFOメモリ鎖で
のシミュレーションは、信頼性ある処理を示す。これら
のシミュレーションは、0.6ミクロンのCチャネルモ
スプロセスを用いて製造した試作回路での試験により確
認されている。試作チップによれば、データ損失がない
状態で、上限が約1ギガヘルツの速度で処理される。
【0063】上述した実施例は、より複雑な非同期回路
を制御するために用いて好適なものである。
【0064】本発明による向流パイプラインを制御する
ことができる非同期パイプライン制御回路について、図
11及び図12を参照して説明する。この制御回路の基
本的な構成は、第3実施例とほぼ同様である。向流パイ
プラインは、反対方向に流れる2つのパイプラインを備
えているため、それぞれに対して1つずつの2つの制御
回路が必要である。一般的には、それぞれの制御回路
は、他の制御回路から独立しており、ある段がフルでそ
の後段がエンプティであるときに、対応したデータ要素
を移送する。しかしながら、本実施例によれば、それぞ
れのパイプラインに対応した制御回路は、2つのパイプ
ライン中でデータ要素が同時に通過することを抑制して
いる。
【0065】図11は、本発明の第4実施例による向流
パイプラインを制御することができる非同期パイプライ
ン制御回路の回路構成を示したものである。制御回路1
110は、第1パイプライン(命令パイプライン)を介
してデータ要素の移送を制御するものであり、論理ゲー
ト1112、セット/リセットラッチ1114,111
6及びインバータ1118,1119を含む。論理ゲー
ト1112は、セット/リセットラッチ1116の反転
フル出力とセット/リセットラッチ1114の反転エン
プティ出力を受け取る。論理ゲート1112の出力は、
それぞれ、ラッチ1114,1116の入力端子Set
_E,Set_Fに入力される。加えて、本実施例にお
いては、第3実施例と異なり、対向して設けられる論理
ゲート1122の出力(出力Bとしている)が、論理ゲ
ート1112、セット/リセットラッチ1114のSe
tE入力端子及びセット/リセットラッチ1116のS
etF端子により受け取られる。
【0066】制御回路1120は、第2パイプライン
(結果パイプライン)を介するデータ要素の移送を制御
するものであり、論理ゲート1122、セット/リセッ
トラッチ1124,1126及びインバータ1128,
1129を含む。論理ゲート1122、セット/リセッ
トラッチ1124及びセット/リセットラッチ1126
は、制御回路1110と同様に配置されている。特に、
対向するセット/リセットラッチ1112の出力(出力
Aとしている)が論理ゲート1122、セット/リセッ
トラッチ1120のSetE入力及びセット/リセット
ラッチ1124のSetF入力により受け取られる。
【0067】制御回路1110,1120の処理は、2
つのモードに概念付けられる。処理の第1モードは、フ
ル値がセット/リセットラッチ1114,1126のい
ずれか片方(両方ではない)を介して次の(エンプテ
ィ)セット/リセットラッチ1116,1124へ伝達
される状態になっているときに起こる。例えば、セット
/リセットラッチ1114の出力Eがロウであるとき、
そのラッチはフルであることを示し、セット/リセット
ラッチの出力Fがロウであるとき、そのラッチはエンプ
ティであることを示し、ポイントBでの信号がハイであ
るとき、制御回路1120がデータ要素を伝達できる状
態にないことを示し、ナンドゲート1112がポイント
Aでの出力をロウに変えると、セット/リセットラッチ
1114,1116がそれぞれその状態を変える。ポイ
ントAでのロウ値は、ナンドゲート1122をハイ値に
ロックすることにより、セット/リセットラッチ112
4,1126がその状態を変えることを不可能にする。
従って、セット/リセットラッチ1124,1126
が、それぞれ、フル,エンプティになるようにその後に
状態を変えたとしても、ナンドゲート1112がナンド
ゲート1122をアンロックするまで、ラッチ1126
のフル状態は、ラッチ1124のエンプティ状態へ伝達
しない。
【0068】第2モードは、セット/リセットラッチの
両方が同時にデータを転送できる状態になったときに起
こる。この状態では、両方のナンドゲート1112,1
122が同時、あるいは、ほぼ同時に、3つの入力端子
でハイ値を受け取り、これにより、それらは不安定状態
になる。この不安定状態では、ナンドゲート1112,
1122の出力は、ハイ論理値とロウ論理値との間で不
安定になっている。結果的に、この不安定状態は、ナン
ドゲートのうちの1つがロウになると、他のゲートがハ
イになるため、これにより解決される。ナンドゲートが
ロウ信号になると、そのセット/リセットラッチは状態
を変え、データ値を失っているナンドゲートをハイに固
定する。完全な回路処理のためには、セット/リセット
ラッチ1114,1116,1124,1126は、不
安定状態にあるポイントA,Bでの中間値のまま応答す
べきではない。改良したセット/リセットラッチ回路に
より、この点は、改善されている。
【0069】図12は、改良したセット/リセットラッ
チ1114,1116,1124,1126に用いて好
適な回路図1200を示したものである。セット/リセ
ットラッチ1200は、2つの改良したクロス接続ナン
ドゲート1202,1204を備えている。従来のナン
ドゲートは、改良したナンドゲート1202のSetF
入力とナンドゲート1204のSetE入力が電源に接
続されていることを除き、改良したナンドゲート120
2,1204と同一である。Pチャネルモストランジス
タ1206のソース端子をSetFに接続し、Pチャネ
ルモストランジスタ1210のソース端子をSetEに
接続することにより、改良したナンドゲート1202,
1204は、図11に示したポイントA,Bでの電圧値
がPチャネルモストランジスタ1206,1210のス
レショルドレベルを超えるまで応答しない。回路111
2,1122の不安定状態においては、ポイントA,B
での電圧はほぼ同じであり、不安定状態が解決するまで
その状態を維持する。従って、セット/リセットラッチ
1124,1126,1114,1116は、ナンドゲ
ート1122,1112での不安定状態がなくなり、ポ
イントA,Bでの電圧値が状態が変わる前の電圧値と十
分異なるまで待機する。ポイントA,Bからセット/リ
セットラッチ1114−1116及びセット/リセット
ラッチ1126−1124の接続が反転されているた
め、移送応答は、ただ1つのパイプラインのみで起こ
る。そのパイプラインに対する移送信号が除去されたと
きにのみ他のパイプラインがその移送を実行することが
できる。
【0070】改良したナンドゲート1202は、Pチャ
ネルモストランジスタ1206,1213及びNチャネ
ルモストランジスタ1207,1208を備えている。
ナンドゲート1202の出力端子は、セット/リセット
ラッチ1200のフル状態を示すものであり、それが共
通端子からトランジスタ1206,1207,1213
へ出力される。トランジスタ1206,1207で受け
取られるナンドゲートへの2つのゲート制御入力は、S
et_Fであり、ナンドゲート1204の出力は、トラ
ンジスタ1213,1208のゲート端子で受け取られ
る。
【0071】改良したナンドゲート1204は、ナンド
ゲート1202の鏡像イメージと同一のものである。ナ
ンドゲート1204は、Pチャネルモストランジスタ1
209,1210及びNチャネルモストランジスタ12
11,1212とを備えている。ナンドゲート1204
の出力は、セット/リセットラッチ1200のエンプテ
ィ状態を表すものであり、ナンドゲートへの2つのゲー
ト制御入力はSet_Eとナンドゲート1202の出力
である。
【0072】向流パイプライン処理に加えて、上記した
初めの3つの実施例は、分岐パイプラインや組合せパイ
プラインに用いてもよいものである。
【0073】分岐パイプライン及び組合せパイプライン
を制御することが可能な非同期パイプライン制御回路
は、図13〜図16を参照して以下に説明する。図13
A及び図13Bは、それぞれ、2段の分岐パイプライン
及び2段の組合せパイプラインを説明するための概念的
に示したものである。両図において、データは、左側か
ら右側へ流れている。分岐パイプライン1300中の各
段間のデータ移送を決定する制御論理は、次の通りであ
る。すなわち、段1306がフルになり両段1302,
1304がエンプティになったときに、段1306中の
データを段1302,1304へ移送する。反対に、組
合せパイプライン1310中のデータ移送を決定する制
御論理は、次の通りである。すなわち、両段1312,
1314がフルになり段1316がエンプティになった
ときに、段1312,1314から段1316へデータ
を移送する。
【0074】図14は、第5実施例である分岐非同期パ
イプラインに用いるパイプライン制御回路を説明するた
めのブロック構成を示した図である。分岐前の段140
1は、図13Aに示した段1306に対応している。分
岐後の段1403,1405は、それぞれ、段130
2,1304に対応している。それぞれの段1401,
1403,1405は、セット/リセットラッチ140
2、レジスタ1404〜1406のうちのいずれか1つ
のレジスタ及びインバータ1408,1410を含む。
この構成は、第3実施例で用いたセット/リセットラッ
チ806,レジスタ802〜804及びインバータ10
02,1004と同一である。しかしながら、検出回路
1412は、3入力のナンドゲートであるが、第3実施
例は、2入力のナンドゲート810を有している。ナン
ドゲート1406の出力は、分岐前のセット/リセット
ラッチのSet_E入力と、分岐後のセット/リセット
ラッチのSet_F入力に入力されている。
【0075】第3実施例と同様に、この実施例は、ナン
ドゲート1412により生成された共通の移送信号が分
岐後のセット/リセットラッチをエンプティに、分岐後
のセット/リセットラッチをフルにする。ラッチ140
2が状態を変えるのと同時にレジスタ1404のデータ
は、レジスタ1405,1406へ移動する。
【0076】図15は、第6実施例である組合せ非同期
パイプラインに用いるパイプライン制御回路を説明する
ためのブロック構成を示した図である。組合せパイプラ
インの制御論理は、実質的には、分岐パイプラインの制
御論理の鏡像イメージである。段1501,1503は
組合せ前の段であり、図13Bに示した段1312,1
314に対応し、段1505は組合せ後の段であり、段
1316に対応している。
【0077】第3実施例と同様に、ナンドゲート141
2により生成された共通の移送信号は、組合せ前のセッ
ト/リセットラッチをエンプティに、組合せ後のセット
/リセットラッチをフルにする。ラッチ1402が状態
を変えるのと同時にレジスタ1404,1405のデー
タは、レジスタ1505へ移動する。この例によれば、
レジスタ1404,1405は、4ビットのレジスタで
あり、レジスタ1505は、8ビットのレジスタであ
る。
【0078】3入力ナンドゲートを用いた二股の分岐/
組合せパイプラインについて説明したが、4入力あるい
はそれより多入力のナンドゲート及び付加したパイプラ
イン段で三股あるいはそれより多股の分岐/組合せパイ
プラインをインプリメントすることが可能である。加え
て、2つの4ビットデータ要素を組み合わせて8ビット
データ要素へ入力する第6実施例によれば、2つの4ビ
ットストリーム上で処理するとともに単一の4ビットス
トリームを出力するか、あるいは、2つの組合せパイプ
ラインからの2つの4ビットのデータ要素を加え合わせ
るといった他の機能を行う。
【0079】以上詳細に説明したように、非同期パイプ
ライン制御の相対的なタイミングと転送要素を緊密結合
させることによりパイプライン処理の速度を高速にする
ことができる。3つの基本的な実施例は、このような結
合を行うために開示されている。更に、本発明の応用例
として、向流パイプライン、分岐パイプライン及び組合
せパイプラインについて説明した。また、パイプライン
データの機能を見当づけるためのデータレジスタ間への
回路の挿入についても説明したが、これは、多くの形態
で適用され得るものである。
【0080】尚、本発明は、上記した実施の形態に何等
限定されるものではない。例えば、本実施例によれば、
データレジスタからデータレジスタへデータが通過する
ときのデータ要素を処理するための論理に欠けたFIF
O回路であっても、パイプライン化されたデータプロセ
ッサを生成するために、FIFOメモリ段の間に処理論
理回路を挿入することができる。
【0081】本実施例によれば、制御要素は、パイプラ
インの状態をデータ記憶要素に直ちに書き込み、同時
に、単一の検出回路は隣接した制御要素の状態を変え
る。図2に示した従来の回路206によれば、データレ
ジスタ204の制御情報は、2つのC要素208,21
0に記憶され、そのフルあるいはエンプティ状態がエク
スクラッシブオアゲート206により決定される。本実
施例は、エクスクラッシブオア回路を制御要素から取り
除いて、前後の制御段に共通な単一信号路に検出回路を
インプリメントしたものであるから、これにより、従来
の回路で発生していたタイミングの不安定さが除去され
る。従って、本実施例は、多くの異なったアプリケーシ
ョン、例えば、非同期向流パイプライン処理、分岐パイ
プライン処理、あるいは、組合せパイプライン処理に用
いて好適なものである。
【0082】
【発明の効果】本発明の高速非同期パイプライン制御回
路は、複数段のうち第1段目の転送状態を制御する第1
制御回路と、前記第1段目に直列接続され、前記複数段
のうち第2段目の転送状態を制御する第2制御回路と、
前記第1及び第2制御回路の出力端子に接続され、該第
1及び第2制御回路の出力値に基づいて、該第1及び第
2制御回路により受け取られている移送信号を生成する
検出回路と、前記第1制御回路と検出回路との間に接続
された第1インバータと、前記第2制御回路と検出回路
との間に接続された第2インバータとを備えたので、緊
密結合した制御信号を発生することができ、高度なパイ
プライン処理を正確に制御できる。このような高速非同
期パイプライン制御回路は、各種のコンピュータに適用
できるため、産業上きわめて有益である。
【図面の簡単な説明】
【図1】従来の非同期FIFOメモリの一般構成を示し
たブロック図である。
【図2】従来のパイプライン制御回路を示した図であ
る。
【図3】従来の向流パイプライン処理の一部を説明する
ためのブロック図である。
【図4】本発明の第1の実施の形態に係る非同期FIF
Oパイプラインの構成を示したハイレベル時のブロック
図である。
【図5A】本発明の第1の実施の形態に用いられる制御
回路を示した図である。
【図5B】同じく本発明の第1の実施の形態に用いられ
る制御回路を示した図である。
【図6A】本発明の第1の実施の形態において用いられ
る検出回路を示した図である。
【図6B】同じく本発明の第1の実施の形態において用
いられる検出回路を示した図である。
【図7】本発明の第1の実施の形態において用いられる
非同期パイプライン処理の制御回路を簡略化した概念図
である。
【図8】本発明の第2の実施の形態に係る非同期FIF
Oパイプライン処理の構成を示した回路図である。
【図9】本発明の第2の実施の形態において用いられる
好適なセット−リセットラッチの回路図である。
【図10】本発明の第3の実施の形態に係る非同期FI
FOメモリの制御構成を説明するためのブロック図であ
る。
【図11】本発明の第4の実施の形態に係る向流パイプ
ライン処理を制御可能な非同期パイプライン制御回路の
回路図である。
【図12】図11に示したパイプラインで用いられるセ
ット−リセットラッチの回路図である。
【図13A】分岐パイプライン処理を説明するための図
である。
【図13B】組合せパイプライン処理の2つの段を説明
するための図である。
【図14】本発明の第5実施例に係る分岐非同期パイプ
ラインに用いられるパイプライン制御回路のブロック図
である。
【図15】本発明の第6実施例に係る組合せ非同期パイ
プラインに用いられるパイプライン制御回路のブロック
図である。
【符号の説明】
400 回路 402,403,404 レジスタ 410 制御部 411,412 制御回路 414,415 検出回路 512,514 トランジスタ 522 Pチャネルモストランジスタ 524 Nチャネルモストランジスタ 516,526 インバータ 517,527 保持インバータ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フェアバンクス スコット エム アメリカ合衆国、94041 カリフォルニア 州、マウンテンビュー、エイピーティー、 エス・ショアーライン716

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 複数段を含む非同期パイプラインを制御
    する高速非同期パイプライン制御回路において、 複数段のうち第1段目の転送状態を制御する第1制御回
    路と、 前記第1段目に直列接続され、前記複数段のうち第2段
    目の転送状態を制御する第2制御回路と、 前記第1及び第2制御回路の出力端子に接続され、該第
    1及び第2制御回路の出力値に基づいて、該第1及び第
    2制御回路により受け取られている移送信号を生成する
    検出回路と、 前記第1制御回路と検出回路との間に接続された第1イ
    ンバータと、 前記第2制御回路と検出回路との間に接続された第2イ
    ンバータとからなることを特徴とする高速非同期パイプ
    ライン制御回路。
  2. 【請求項2】 前記第1及び第2制御回路は、それぞ
    れ、クロス接続された1組のナンドゲートを備えること
    を特徴とする請求項1に記載される高速非同期パイプラ
    イン制御回路。
  3. 【請求項3】 前記検出回路は、ナンドゲートを備える
    ことを特徴とする請求項1に記載される高速非同期パイ
    プライン制御回路。
  4. 【請求項4】 前記第1段目に直列接続され、前記複数
    段のうち第3段目の転送状態を制御する第3制御回路を
    有し、 前記検出回路は、更に、該第3制御回路の出力端子に接
    続された入力端子を含むとともに、前記検出回路により
    生成された移送信号は、該第3制御回路により受け取ら
    れることを特徴とする請求項1に記載される高速非同期
    パイプライン制御回路。
  5. 【請求項5】 複数段を含む非同期パイプラインを制御
    する高速非同期パイプライン制御回路において、 複数段のうち第1段目の転送状態を制御する第1制御回
    路と、 前記第1段目に直列接続され、前記複数段のうち第2段
    目の転送状態を制御する第2制御回路と、 前記第1及び第2制御回路の出力端子に接続され、該第
    1及び第2制御回路の出力値に基づいて、該第1及び第
    2制御回路により受け取られている移送信号を生成する
    検出回路とからなることを特徴とし、 前記第1及び第2制御回路は、それぞれ、電源端子に接
    続されたソース端子と共通ノードに接続されたドレイン
    端子とを備えたPチャネルモストランジスタと、共通ノ
    ードに接続されたソース端子とグランド端子に接続され
    たドレイン端子とを備えたNチャネルモストランジスタ
    とを備えたことを特徴とする高速非同期パイプライン制
    御回路。
  6. 【請求項6】 前記第1及び第2制御回路は、更に、 共通ノードに接続された入力端子を有するインバータ
    と、 該インバータの出力端子に接続された入力端子と該共通
    ノードに接続された出力端子とを備えた保持インバータ
    とを備えたことを特徴とする請求項5に記載される高速
    非同期パイプライン制御回路。
  7. 【請求項7】 先入れ先出しメモリと、 先入れ先出しメモリを制御する第1入力端子、第2入力
    端子及び出力端子を有する第1制御回路と、 第1及び第2トランジスタを含み、先入れ先出しメモリ
    を制御する第1入力端子、第2入力端子及び出力端子を
    有する第2制御回路と、 第1制御回路の出力と第2制御回路の出力を受け取ると
    ともに、該第1及び第2制御回路の出力に応じて移送信
    号を生成する検出回路とを備え、 生成された移送信号は、前記第1及び第2制御回路のそ
    れぞれの第1及び第2トランジスタのうちの1つのゲー
    ト入力端子をオンすることにより、該第1及び第2制御
    回路の出力を変化させることを特徴とするコンピュータ
    メモリ。
  8. 【請求項8】 前記先入れ先出しメモリは、更に、直列
    接続された複数のレジスタと、前記第1制御回路の出力
    端子に接続された前記レジスタうちのいずれか1つのゲ
    ート入力端子と、前記第2制御回路の出力端子に接続さ
    れた前記レジスタのうちのいずれか1つのゲート入力端
    子とを備えたことを特徴とする請求項7に記載されるコ
    ンピュータメモリ。
  9. 【請求項9】 前記第1及び第2制御回路は、更に、 前記第1及び第2トランジスタに共通なノードに接続さ
    れ、前記第1及び第2制御回路のそれぞれの出力端子の
    出力信号を出力値として伝送する第1インバータと、該
    第1インバータの出力に接続された入力端子と、該共通
    ノードに接続された出力端子を有する第2インバータと
    を備えたことを特徴とする請求項8に記載されるコンピ
    ュータメモリ。
  10. 【請求項10】 前記検出回路がナンドゲートであるこ
    とを特徴とする請求項9に記載されるコンピュータメモ
    リ。
  11. 【請求項11】 前記検出回路がインバータに接続され
    たナンドゲートであることを特徴とする請求項10に記
    載されるコンピュータメモリ。
  12. 【請求項12】 反対方向の第1パイプラインと第2パ
    イプラインとを含む高速非同期向流パイプライン制御回
    路において、 第1パイプラインの第1段目の転送状態を制御する第1
    制御回路と、 第2パイプラインの前記第1段目に互いに隣接した第2
    段目の転送状態を制御する第2制御回路と、 前記第1及び第2制御回路の出力端子と第2パイプライ
    ンからの第2検出回路の出力端子とに接続された第1検
    出回路とを備え、該第1検出回路は、該第1及び第2の
    制御回路と該第2検出回路との出力に基づいて移送信号
    を生成するとともに、該移送信号を該第1及び第2制御
    回路と該第2パイプラインとへ伝送することを特徴とす
    る高速非同期向流パイプライン制御回路。
  13. 【請求項13】 前記第1及び第2制御回路は、2つの
    向流パイプラインのうち1つを移送するときにのみゲー
    トが開く相互に排他的なものとして構成されたクロス接
    続された1組のナンドゲートからなることを特徴とする
    請求項12に記載される高速非同期向流パイプライン制
    御回路。
  14. 【請求項14】 前記クロス接続された1組のナンドゲ
    ートのそれぞれのナンドゲートは、更に、 ソース端子が第1入力信号に接続され、ゲート端子が第
    2入力信号に接続され、ドレイン端子がナンドゲートの
    出力端子に接続された第1トランジスタと、 ソース端子が電源に接続され、ゲート端子が第3入力信
    号に接続され、ドレイン端子がナンドゲートの出力端子
    に接続された第2トランジスタと、 ゲート端子が第2入力信号に接続され、ソース端子がナ
    ンドゲートの出力端子に接続された第3トランジスタ
    と、 ソース端子が第3トランジスタのドレイン端子に接続さ
    れ、ゲート端子が第3入力信号に接続され、ドレイン端
    子がグランドに接続された第4トランジスタとを備えた
    ことを特徴とする請求項13に記載される高速非同期向
    流パイプライン制御回路。
  15. 【請求項15】 前記第1及び第2トランジスタがPチ
    ャネルモストランジスタであって、第3及び第4トラン
    ジスタがNチャネルモストランジスタであることを特徴
    とする請求項14に記載される高速非同期向流パイプラ
    イン制御回路。
JP9284373A 1996-10-01 1997-09-30 高速非同期パイプライン制御回路及び高速非同期向流パイプライン制御回路並びに、これに用いられるコンピュータメモリ Pending JPH11167791A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/720,755 US5937177A (en) 1996-10-01 1996-10-01 Control structure for a high-speed asynchronous pipeline
US08/720,755 1996-10-01

Publications (1)

Publication Number Publication Date
JPH11167791A true JPH11167791A (ja) 1999-06-22

Family

ID=24895160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9284373A Pending JPH11167791A (ja) 1996-10-01 1997-09-30 高速非同期パイプライン制御回路及び高速非同期向流パイプライン制御回路並びに、これに用いられるコンピュータメモリ

Country Status (6)

Country Link
US (1) US5937177A (ja)
EP (2) EP0834802A3 (ja)
JP (1) JPH11167791A (ja)
KR (1) KR19980032458A (ja)
SG (1) SG79221A1 (ja)
TW (1) TW345638B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005530237A (ja) * 2002-06-14 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Fifoレジスタおよびfifoレジスタを備えるデジタル信号プロセッサ
JP4859330B2 (ja) * 2000-09-29 2012-01-25 オラクル・アメリカ・インコーポレイテッド 回路内の状態情報を非同期的に制御する方法および装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6502180B1 (en) * 1997-09-12 2002-12-31 California Institute Of Technology Asynchronous circuits with pipelined completion process
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6477637B1 (en) * 1999-09-30 2002-11-05 International Business Machines Corporation Method and apparatus for transporting store requests between functional units within a processor
US6574690B1 (en) 1999-12-29 2003-06-03 Sun Microsystems, Inc. Asynchronous pulse bifurcator circuit with a bifurcation path coupled to control fifo and first and second subordinate fifo
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US20020078328A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation Pulse-controlled micropipeline architecture
US6925549B2 (en) * 2000-12-21 2005-08-02 International Business Machines Corporation Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages
US6859873B2 (en) * 2001-06-08 2005-02-22 Infineon Technologies Ag Variable length instruction pipeline
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7423696B2 (en) * 2005-01-07 2008-09-09 Hewlett-Packard Development Company, L.P. Concurrent luminance-saturation adjustment of digital images
WO2007029168A2 (en) * 2005-09-05 2007-03-15 Nxp B.V. Asynchronous ripple pipeline
US7890826B2 (en) * 2006-12-11 2011-02-15 Oracle America, Inc. Method and apparatus for test of asynchronous pipelines
US7971043B2 (en) * 2007-11-22 2011-06-28 Andes Technology Corporation Electronic system and method for changing number of operation stages of a pipeline
US20150074353A1 (en) * 2013-09-06 2015-03-12 Futurewei Technologies, Inc. System and Method for an Asynchronous Processor with Multiple Threading
US9385717B1 (en) * 2014-05-30 2016-07-05 Altera Corporation Level-sensitive two-phase single-wire latch controllers without contention
CN112667292B (zh) * 2021-01-26 2024-04-05 北京中科芯蕊科技有限公司 一种异步微流水线控制器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3510680A (en) * 1967-06-28 1970-05-05 Mohawk Data Sciences Corp Asynchronous shift register with data control gating therefor
US4151609A (en) * 1977-10-11 1979-04-24 Monolithic Memories, Inc. First in first out (FIFO) memory
US4225920A (en) * 1978-09-11 1980-09-30 Burroughs Corporation Operator independent template control architecture
FR2552916B1 (fr) * 1983-09-29 1988-06-10 Thomas Alain File d'attente asynchrone a empilement de registres
US5187800A (en) * 1985-01-04 1993-02-16 Sun Microsystems, Inc. Asynchronous pipelined data processing system
US4791551A (en) * 1985-02-11 1988-12-13 Analog Devices, Inc. Microprogrammable devices using transparent latch
US4805139A (en) * 1987-10-22 1989-02-14 Advanced Micro Devices, Inc. Propagating FIFO storage device
GB9114513D0 (en) * 1991-07-04 1991-08-21 Univ Manchester Condition detection in asynchronous pipelines
US5572691A (en) * 1993-04-21 1996-11-05 Gi Corporation Apparatus and method for providing multiple data streams from stored data using dual memory buffers
US5513224A (en) * 1993-09-16 1996-04-30 Codex, Corp. Fill level indicator for self-timed fifo
DE69430352T2 (de) * 1993-10-21 2003-01-30 Sun Microsystems Inc Gegenflusspipeline
US5638009A (en) * 1993-10-21 1997-06-10 Sun Microsystems, Inc. Three conductor asynchronous signaling

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4859330B2 (ja) * 2000-09-29 2012-01-25 オラクル・アメリカ・インコーポレイテッド 回路内の状態情報を非同期的に制御する方法および装置
JP2005530237A (ja) * 2002-06-14 2005-10-06 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Fifoレジスタおよびfifoレジスタを備えるデジタル信号プロセッサ

Also Published As

Publication number Publication date
SG79221A1 (en) 2001-03-20
EP0834802A2 (en) 1998-04-08
US5937177A (en) 1999-08-10
EP1296221A1 (en) 2003-03-26
KR19980032458A (ko) 1998-07-25
TW345638B (en) 1998-11-21
EP0834802A3 (en) 1999-05-19

Similar Documents

Publication Publication Date Title
JPH11167791A (ja) 高速非同期パイプライン制御回路及び高速非同期向流パイプライン制御回路並びに、これに用いられるコンピュータメモリ
US6043674A (en) Null convention logic gates with flash, set and reset capability
EP0822663B1 (en) Separate set/reset paths for time critical signals
EP0128194B1 (en) Programmed logic array
US6052770A (en) Asynchronous register
US7971038B2 (en) Asynchronous ripple pipeline
US20020039033A1 (en) Distributing data to multiple destinations within an asynchronous circuit
US20020175730A1 (en) Programmable differential delay circuit with fine delay adjustment
US5732233A (en) High speed pipeline method and apparatus
EP0325180A2 (en) Self precharging static programmable logic array
US6700410B2 (en) Method and apparatus for asynchronously controlling a high-capacity domino pipeline
US6262593B1 (en) Semi-dynamic and dynamic threshold gates with modified pull-up structures
JP2004512712A (ja) 回路内のデータ転送非同期制御
JPH0473808B2 (ja)
US6420905B1 (en) Vented CMOS dynamic logic system
US5964866A (en) Elastic self-timed interface for data flow elements embodied as selective bypass of stages in an asynchronous microprocessor pipeline
JP2001217707A (ja) 論理セル及びそれを用いた論理回路
US4387294A (en) Shift register-latch circuit driven by clocks with half cycle phase deviation and usable with a serial alu
JP3841578B2 (ja) セルフリセットダイナミックスロジック回路及びそのリセット方法
US20050007170A1 (en) Asynchronous control circuit and semiconductor integrated circuit device
US6707317B2 (en) Method and apparatus for asynchronously controlling domino logic gates
US4985905A (en) Two phase CMOS shift register bit for optimum power dissipation
US5724562A (en) Clock-synchronized C-element group for controlling data transfer
JP4386523B2 (ja) ダイナミック論理回路
US5912859A (en) Method for the resetting of a shift register and associated register