JP3593490B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP3593490B2 JP3593490B2 JP2000089508A JP2000089508A JP3593490B2 JP 3593490 B2 JP3593490 B2 JP 3593490B2 JP 2000089508 A JP2000089508 A JP 2000089508A JP 2000089508 A JP2000089508 A JP 2000089508A JP 3593490 B2 JP3593490 B2 JP 3593490B2
- Authority
- JP
- Japan
- Prior art keywords
- pipeline processing
- processing unit
- unit
- pipeline
- stage
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 264
- 238000010586 diagram Methods 0.000 description 26
- 238000000034 method Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Description
【発明の属する技術分野】
本発明は、複数のステージに分けてパイプライン処理を行うデータ処理装置に関し、例えば、プロセッサの内部に実装されるもの等を対象とする。
【0002】
【従来の技術】
マルチメディアや通信技術の発達により、プロセッサの処理性能の向上が強く望まれている。プロセッサの処理性能を向上させる手法として、動作クロック周波数の高速化と演算処理の並列化が挙げられる。
【0003】
しかしながら、プロセッサ内部に複数の演算器を設けて演算処理を並列実行させるようにすると、回路規模が大きくなり、配線遅延によりタイミング的に処理が間に合わなくなるおそれがある。
【0004】
一方、最近のプロセッサは、命令実行の高速化のため、各命令を複数のステージに分けてパイプライン処理することが多い。図12はプロセッサ内部のパイプライン処理部の概略構成を示すブロック図、図13は処理の流れを示す図である。
【0005】
図12に示すように、各命令は、5つのステージA〜Eに分けて順に実行される。各ステージには、図12に示すように、入力データを同期化するフリップフロップ11と、ロジック回路12と、マルチプレクサ13とが設けられ、マルチプレクサ13の出力は次段のステージのフリップフロップ11に入力される。
【0006】
図13のように、各命令をパイプライン処理することでプロセッサの処理性能の向上が図れるが、さらに処理性能を向上させるために、プロセッサ内部に複数のパイプライン処理部を設ける場合もある。
【0007】
図14はプロセッサ内部に複数のパイプライン処理部を設けた例を示すブロック図である。図14の命令キャッシュ(IC)21から読み出された命令は、命令レジスタ(IR)22を経て、レジスタファイル(RF)23にいったん格納された後、6つのパイプライン処理部(ALU)24のうち、空いているパイプライン処理部に供給されて命令が実行され、実行結果がレジスタファイル(RF)25に書き戻される。
【0008】
図15は図14のパイプライン処理部24の入力付近の詳細構成を示すブロック図である。図示のように、レジスタファイル23とパイプライン処理部24の間には、マルチプレクサ26と、フリップフロップ27とが設けられる。各パイプライン処理部23は並列的に処理を行うため、各マルチプレクサ26には、共通の制御線から制御信号Controlが供給され、この制御信号Controlに基づいて各パイプライン処理部24は演算処理を行う。
【0009】
【発明が解決しようとする課題】
しかしながら、1本の制御線で複数のパイプライン処理部を制御するようにすると、パイプライン処理部の数が多いほど、また制御線の配線長が長いほど、制御信号のファンアウト(Fanout)が大きくなる。最近のプロセッサは、動作クロック周波数が非常に高いため、制御信号の遅延により、各ステージでの処理が間に合わなくなるおそれがある。
【0010】
制御信号のファンアウトを小さくするには、制御線の配線長を短くするのが望ましいが、プロセッサの処理性能を高めるにはパイプライン処理部の数を増やさなければならないため、必然的に制御線の配線長は長くなってしまう。
【0011】
制御信号のファンアウトを小さくする他の手法として、制御信号をツリー上にバッファリングして各パイプライン処理部に供給したり、あるいは、制御信号を予め複数生成しておく等が考えられる。
【0012】
さらに、近年、プロセッサやASICの開発を行う場合に、予め用意された種々の機能ブロックを任意に組み合わせてLSIの設計を行う手法が一般化してきた。このような設計手法を採用する場合、どのような機能ブロックが組み合わされるのか一意に特定できないため、予め余裕をもって各信号のファンアウトを設定するのが望ましい。しかしながら、従来は、タイミング的にクリティカルな信号のファンアウトを誤動作しないような値に設定するのが困難であった。
【0013】
本発明は、このような点に鑑みてなされたものであり、その目的は、パイプラインを制御する制御信号のファンアウトを低減することができるデータ処理装置を提供することにある。
【0014】
【課題を解決するための手段】
上述した課題を解決するために、請求項1の発明は、複数のステージに分けてパイプライン処理を行うデータ処理装置において、各ステージに入力される制御信号に基づいて、各ステージでの処理を行う第1のパイプライン処理部と、各ステージに入力される前記制御信号を所定のクロックでラッチする第1のラッチ手段と、前記第1のパイプライン処理とは別個に、前記第1のラッチ手段でラッチした制御信号に基づいて各ステージでの処理を行う第2のパイプライン処理部と、を備える。
【0015】
請求項1の発明では、制御信号を第1および第2のパイプライン処理部に供給する際、第2のパイプライン処理部には制御信号を第1のラッチ手段でラッチした信号を供給するため、制御信号のファンアウトを小さくすることができる。
【0016】
請求項2の発明では、第1のパイプライン処理部の各ステージでの処理結果を第2のパイプライン処理部に伝送する場合には、この処理結果を第2のラッチ手段でラッチしてから第2のパイプライン処理部に伝送するため、第1および第2のパイプライン処理部の処理を並列的に実行することができる。
【0017】
請求項3の発明では、第2のパイプライン処理部の各ステージでの処理結果を第1のパイプライン処理部に伝送する場合には、この処理結果を第3のラッチ手段でラッチしておくため、第1のパイプライン処理部がストールしていても、ストール終了後に所望のデータを伝送できる。これにより、ストールの有無にかかわらず、第2のパイプライン処理部から第1のパイプライン処理部にデータを電送できる。
【0018】
請求項4の発明では、各ステージを区切るクロックで制御信号をラッチするため、各パイプライン処理部のステージでの処理に合わせて各ステージに制御信号を入力できる。
【0019】
請求項5の発明では、第2のパイプライン処理部の処理と、第1のパイプライン処理部の処理とを時間的にずらして、かつ同期化させて行うことができる。
【0020】
【発明の実施の形態】
以下、本発明に係るデータ処理装置について、図面を参照しながら具体的に説明する。以下では、プロセッサ内部に実装されるパイプライン処理部を例に取って説明する。
【0021】
図1は本発明に係るデータ処理装置の一実施形態のブロック図である。図1のデータ処理装置は、5つのステージA〜Eに分けて処理を実行する第1のパイプライン処理部1と、第1のパイプライン処理部1よりも1ステージ分遅れて処理を実行する第2のパイプライン処理部2と、各ステージに入力される制御信号をラッチする複数のフリップフロップ(第1のラッチ手段)3とを備えている。
【0022】
図1では、各ステージにそれぞれ別個の制御信号Control−A,Control−B,Control−C,Control−D,Control−Eが供給される例を示しているが、複数のステージに共通の制御信号を供給してもよい。
【0023】
第1および第2のパイプライン処理部1,2は、同様に構成されており、各ステージごとに、フリップフロップ11と、ロジック回路12と、マルチプレクサ13とを有する。
【0024】
フリップフロップ11は、各ステージを区切るクロックCLKにより、前段の処理結果をラッチする。なお、図1ではフリップフロップ11を一つだけ図示しているが、実際にはデータのビット数分のフリップフロップ11が設けられている。
【0025】
ロジック回路12は、各ステージに入力される制御信号に基づいて所定の論理演算を行う。なお、ロジック回路12は、制御信号を用いずに論理演算を行う場合もある。マルチプレクサ13は、各ステージに入力される制御信号に基づいて、ロジック回路12の出力か、あるいは次段のレジスタファイルの出力のいずれかを選択する。
【0026】
図1のフリップフロップ3は、各ステージに入力される制御信号Control−A〜Eを、各ステージを区切るクロックCLKでラッチする。これにより、第2のパイプライン処理部2でのステージの処理タイミングに合わせて各制御信号Control−A〜Eを遅延させることができる。以下では、遅延させた制御信号を遅延制御信号と呼ぶ。遅延制御信号は、第2のパイプライン処理部2での処理に用いられる。
【0027】
制御信号Control−A〜Eをフリップフロップ3でラッチする理由は、制御信号Control−A〜Eのファンアウトを減らすためである。図1の第1のパイプライン処理部1には、制御線からの制御信号Control−A〜Eが直接供給されるのに対し、第2のパイプライン処理部2には、いったんフリップフロップ3でラッチした遅延制御信号が供給される。このため、第2のパイプライン処理部2に供給される遅延制御信号は、制御線上の制御信号Control−A〜Eのファンアウトの影響を受けなくなる。
【0028】
図2は第1および第2のパイプライン処理部1,2の動作を説明する図であり、図2(a)はパイプライン処理がストールしていない場合の動作、図2(b)はストールした場合の動作を示している。
【0029】
図2に示すように、第1のパイプライン処理部1は、第2のパイプライン処理部2よりもクロックCLKの1周期分だけ早く処理を行う。また、第1のパイプライン処理部1が何らかの理由でストールした場合には、図2(b)の期間T3,T4に示すように処理が中断され、それに応じて、第2のパイプライン処理部2も処理が中断される(期間T4,T5)。
【0030】
図1のデータ処理装置は、第1および第2のパイプライン処理部1,2の間でデータの受け渡しを行うことを考慮に入れていないが、第1および第2のパイプライン処理部1,2での処理結果を、それぞれ他方のパイプライン処理部に伝送できるようにしてもよい。
【0031】
例えば、図3は第1のパイプライン処理部1での処理結果を第2のパイプライン処理部2に伝送できるようにしたデータ処理装置の一例を示すブロック図である。第1のパイプライン処理部1は第2のパイプライン処理部2よりもクロックCLKの1周期分早く処理を行うため、第1のパイプライン処理部1から第2のパイプライン処理部2にデータを伝送する場合には、伝送するデータを第2のパイプライン処理部2のタイミングに合わせる必要がある。
【0032】
このため、図3では、第1のパイプライン処理部1のステージC内のロジック回路12の出力をラッチするフリップフロップ(第2のラッチ手段)14を設けている。このフリップフロップ14は、ステージを区切るクロックCLKに同期してロジック回路12の出力をラッチし、ラッチしたデータを第2のパイプライン処理部2内のロジック回路12に供給する。第2のパイプライン処理部2は、第1のパイプライン処理部1よりも1クロック遅れて動作するため、第1のパイプライン処理部1のステージCでの処理結果を受け取って、ステージCでの処理を行うことができる。
【0033】
なお、図3では、第1のパイプライン処理部1のステージCの処理結果を第2のパイプライン処理部2に伝送する例を示したが、他のステージの処理結果を第2のパイプライン処理部2に伝送する場合には、伝送元のステージに図3と同様のフリップフロップ14を設ければよい。
【0034】
一方、図4は第2のパイプライン処理部2での処理結果を第1のパイプライン処理部1に伝送できるようにしたデータ処理装置の一例を示すブロック図である。
【0035】
第2のパイプライン処理部2は、第1のパイプライン処理部1よりも1クロック遅れて動作するため、第2のパイプライン処理部2のあるステージでの処理結果を第1のパイプライン処理部1に伝送する場合は、一つ先のステージに送ることになる。例えば図4は、第2のパイプライン処理部2のステージCでの処理結果を、第1のパイプライン処理部1のステージDに伝送する例を示している。
【0036】
第2のパイプライン処理部2から第1のパイプライン処理部1にデータを伝送する際、場合によっては、第1のパイプライン処理部1がストールしていることも考えられる。この場合、第1のパイプライン処理部1が処理を再開するまで、伝送すべきデータを保持しておかなければならない。
【0037】
そこで、図4では、第2のパイプライン処理部2から第1のパイプライン処理部1に伝送すべきデータをラッチするフリップフロップ(第3のラッチ手段)15と、このフリップフロップ15の出力と第2のパイプライン処理部2のステージCでの処理結果とのいずれかを選択するマルチプレクサ(選択手段)16とを有する。
【0038】
マルチプレクサ16は、第2のパイプライン処理部2のステージCでの処理結果が得られた時点で第1のパイプライン処理部1がストールしていなければ、この処理結果を選択して第1のパイプライン処理部1のステージDに伝送する。また、第2のパイプライン処理部2のステージCでの処理結果が得られた時点で第1のパイプライン処理部1がストールしていれば、ストールが終了するまでステージCでの処理結果をフリップフロップ15でラッチする。
【0039】
なお、図4では、第2のパイプライン処理部2のステージCでの処理結果をラッチするフリップフロップとマルチプレクサ16を設ける例を示したが、図4のフリップフロップとマルチプレクサ16を他のステージに設けてもよい。また、図3のフリップフロップ14と図4のフリップフロップ15およびマルチプレクサ16とを設けてもよい。
【0040】
このように、本実施形態では、複数のパイプライン処理部で並列的に処理を行う場合に、一部のパイプライン処理部については、各ステージに入力される制御信号Control−A〜Eをいったんフリップフロップ3でラッチした遅延制御信号Control−A〜Eに基づいて各ステージでの処理を行うため、制御信号Control−A〜Eのファンアウトが小さくなり、制御信号Control−A〜Eの信号遅延を低減することができる。また、制御信号Control−A〜Eを伝送する制御線の配線長が長くても、途中にフリップフロップ3を設けてクロックに同期化させることができるため、従来よりも制御線の配線長を長くすることができる。
【0041】
さらに、パイプライン処理部の数が多くても、その数に応じた数量のフリップフロップ3を設ければよいため、パイプライン処理部の数に関係なく動作を安定化させることができる。
【0042】
上述した実施形態では、データ処理装置内に2つのパイプライン処理部1,2を設ける例を説明したが、パイプライン処理部の数やパイプラインの段数には特に制限はない。
【0043】
また、図1では、ステージを区切るクロックCLKで制御信号Control−A〜Eをラッチする例を示したが、クロックCLKとは別個のタイミングで制御信号Control−A〜Eをラッチしてもよい。
【0044】
図3では、左側のパイプライン処理部内のステージCの論理回路LOGIC−C1とマルチプレクサMUX−C1に入力される制御信号Contorol−Cをフリップフロップでラッチした遅延制御信号を、右側のパイプライン処理部内のステージCに供給する例を説明しているが、この制御信号Control−Cと遅延制御信号は、各パイプライン処理部の複数箇所で利用される場合がある。
【0045】
図5は、バッファから出力される制御信号を第1のパイプライン処理部1で複数に分岐させ、そのうちの一つの分岐信号をフリップフロップでラッチして遅延制御信号を生成し、生成した遅延制御信号を第2のパイプライン処理部2でさらに複数に分岐させる例を示している。
【0046】
このように、制御信号の分岐先が多い場合には、分岐する途中にバッファとフリップフロップを間に介挿させることにより、制御信号のファンアウトが増大するのを防止できる。また、第1および第2のパイプライン処理部1,2がダイ上の互いに離れた位置に実装される場合でも、各パイプライン処理部の間にフリップフロップを設けて制御信号をラッチすることにより、クロックのエッジからのずれを低減できる。
【0047】
一方、図6はプロセッサ内の構成を示す図であり、命令キャッシュ31から命令レジスタ32を経由したデータは、第1のパイプライン処理部1には直接供給され、第2のパイプライン処理部2にはいったんフリップフロップ3でラッチされた後に供給される例を示している。
【0048】
第1のパイプライン処理部1は、第2のパイプライン処理部2よりも1ステージ分先に処理を実行する。したがって、第1のパイプライン処理部1から第2のパイプライン処理部2にデータを送る場合には、フリップフロップ3でいったんデータをラッチしてタイミング調整を行う。逆に、第2のパイプライン処理部2から第1のパイプライン処理部1にデータを送る場合には、フリップフロップは不要である。
【0049】
図6の第1のパイプライン処理部1は、整数ユニット・パイプライン、ロード/ストアユニット・パイプライン、および分岐ユニット・パイプラインを有し、各パイプラインはデータキャッシュとの間でデータのやり取りを行う。また、第2のパイプライン処理部2は、浮動小数点ユニット・パイプラインとマルチメディアユニット・パイプラインとを有する。
【0050】
なお、第1および第2のパイプライン処理部1,2の内部に設けられるパイプラインの種類には特に制限はなく、図6に示したものに限定されない。
【0051】
例えば、第2のパイプライン処理部2に整数ユニットパイプラインやロード/ストアユニットパイプラインを設けてもよく、あるいは、第1のパイプライン処理部1に浮動小数点パイプラインやマルチメディアユニット・パイプラインを設けてもよい。
【0052】
一方、図7は複数データストリーム(SIMD)命令型のプロセッサの内部構成を示すブロック図である。図示のように、第1および第2のパイプライン処理部1,2の内部にはそれぞれ複数の演算器(ALU)24が設けられている。命令キャッシュ31から命令レジスタ32を経由したデータは、第1のパイプライン処理部1にはそのまま供給され、第2のパイプライン処理部2にはいったんフリップフロップ3でラッチされた後に供給される。また、第1のパイプライン処理部1は、第2のパイプライン処理部2よりも1ステージ分先に処理を行うため、第1のパイプライン処理部1から第2のパイプライン処理部2にデータを送る際には、このデータをいったんフリップフロップ3でラッチする。逆に、第2のパイプライン処理部2から第1のパイプライン処理部1にデータを送る際には、フリップフロップは不要である。
【0053】
ところで、図1等では、第2のパイプライン処理部2が第1のパイプライン処理部1よりも1ステージ(1クロック)分遅れて処理を行う例を説明したが、1ステージ分以外の遅れ量で第2のパイプライン処理部2が処理を行ってもよい。
【0054】
例えば、図8は第2のパイプライン処理部2が第1のパイプライン処理部1よりも半クロック分遅れて処理を行う例を示している。図8は図1のフリップフロップ3の代わりにラッチ3aを備えており、各ラッチ3aは、ステージを区切るクロックCLKの立ち下がりエッジで制御信号Control−A〜Cをラッチし、ラッチした遅延制御信号を第2のパイプライン処理部2に供給する。
【0055】
図9はラッチ3aの詳細構成を示す図である。図示のように、ラッチ3aは、フリップフロップと異なり、端子Eがハイレベルであれば、入力端子Dに入力されたデータを端子Qから出力し、端子Eがローレベルになると、その直前の入力端子Dの論理を保持する。
【0056】
一方、図10は図3に対応するものであり、第1のパイプライン処理部1のステージCにおける論理回路LOGIC−C1の演算結果を、ラッチ3aにて、クロックCLKの立ち下がりエッジでラッチした結果を第2のパイプライン処理部2のステージCに供給する例を示している。
【0057】
一方、図11は図4に対応するものであり、第2のパイプライン処理部2から第1のパイプライン処理部1にデータを送る例を示している。第2のパイプライン処理部2の内部には、縦続接続された二段のラッチ3aと、マルチプレクサ13とが設けられている。一段目のラッチ3aはクロックCLKがハイレベルのときにマルチプレクサ13の出力をラッチし、二段目のラッチ3aはクロックCLKがローレベルのときに一段目のラッチ3aの出力をラッチする。一段目のラッチ3aの出力が第1のパイプライン処理部1に送られる。
【0058】
また、マルチプレクサ13は、クロックCLKの立ち下がりでラッチ動作を行うラッチの出力に応じて、二段目のラッチの出力とステージBからのデータとのいずれかを選択する。
【0059】
【発明の効果】
以上詳細に説明したように、本発明によれば、制御信号をすべてのパイプライン処理部に直接供給するのではなく、少なくとも一部のパイプライン処理部については、制御信号をいったん第1のラッチ手段でラッチしてから供給するため、制御信号のファンアウトを小さくすることができる。したがって、パイプライン処理部の数が多くても、制御信号の伝搬遅延を低減できる。また、制御信号を伝送する制御線の配線長が長くなっても、途中でクロックに同期化させることで、配線遅延の影響を受けなくなる。
【図面の簡単な説明】
【図1】本発明に係るデータ処理装置の一実施形態のブロック図。
【図2】(a),(b)は第1および第2のパイプライン処理部1,2の動作を説明する図。
【図3】第1のパイプライン処理部11での処理結果を第2のパイプライン処理部2に伝送できるようにしたデータ処理装置の一例を示すブロック図。
【図4】第2のパイプライン処理部22での処理結果を第1のパイプライン処理部1に伝送できるようにしたデータ処理装置の一例を示すブロック図。
【図5】制御信号を第1および第2のパイプライン処理部内で複数に分岐する例を示す図。
【図6】プロセッサ内の構成を示す図。
【図7】複数データストリーム(SIMD)命令型のプロセッサの内部構成を示すブロック図。
【図8】第2のパイプライン処理部が第1のパイプライン処理部よりも半クロック分遅れて処理を行う例を示す図。
【図9】ラッチの詳細構成を示す図。
【図10】図3に対応する図で、第2のパイプライン処理部が第1のパイプライン処理部より半クロック遅れて処理を行う図。
【図11】図4に対応する図で、第2のパイプライン処理部が第1のパイプライン処理部より半クロック遅れて処理を行う図。
【図12】プロセッサ内部のパイプライン処理部の概略構成を示すブロック図。
【図13】図12の処理の流れを示す図。
【図14】プロセッサ内部に複数のパイプライン処理部を設けた例を示すブロック図。
【図15】図14のパイプライン処理部の入力付近の詳細構成を示すブロック図。
【符号の説明】
1 第1のパイプライン処理部1
2 第2のパイプライン処理部2
3,11,14,15,26 フリップフロップ
12 ロジック回路
13,16,25 マルチプレクサ
21 命令キャッシュ31
22 命令レジスタ32
23 パイプライン処理部
24 レジスタファイル
Claims (6)
- 複数のステージに分けてパイプライン処理を行うデータ処理装置において、
各ステージに入力される制御信号に基づいて、各ステージでの処理を行う第1のパイプライン処理部と、
各ステージに入力される前記制御信号を所定のクロックでラッチする第1のラッチ手段と、
前記第1のパイプライン処理とは別個に、前記第1のラッチ手段でラッチした制御信号に基づいて各ステージでの処理を行う第2のパイプライン処理部と、を備えることを特徴とするデータ処理装置。 - 前記第1のパイプライン処理部における、少なくとも一部のステージでの処理結果を前記所定のクロックでラッチする第2のラッチ手段を備え、
前記第2のパイプライン処理部は、前記第2のラッチ手段でラッチしたデータに対応するステージの処理を行う際に、前記第2のラッチ手段でラッチしたデータを利用して処理を行うことを特徴とする請求項1に記載のデータ処理装置。 - 前記第2のパイプライン処理部における、少なくとも一部のステージでの処理結果を、前記所定のクロックでラッチする第3のラッチ手段と、
前記第3のラッチ手段でラッチする前のデータと、前記第3のラッチ手段でラッチしたデータとのいずれか一方を選択する選択手段と、を備え、
前記選択手段は、前記第2のパイプライン処理部での処理結果を前記第1のパイプライン処理部に伝送する際、前記第1のパイプライン処理部がストールしている場合には、ストール終了後に前記第3のラッチ手段のラッチ出力を選択して前記第1のパイプライン処理部に伝送し、前記第1のパイプライン処理部がストールしていない場合には、前記第2のパイプライン処理部での処理結果を選択して前記第1のパイプライン処理部に伝送することを特徴とする請求項1または2に記載のデータ処理装置。 - 前記ラッチ手段は、各ステージを区切るクロックで前記制御信号をラッチすることを特徴とする請求項1〜3のいずれかに記載のデータ処理装置。
- 前記第2のパイプライン処理部は、前記第1のパイプライン処理部のステージを区切るクロックの1周期分以上遅れてパイプライン処理を行うことを特徴とする請求項1〜4のいずれかに記載のデータ処理装置。
- 前記第1および第2のパイプライン処理部の一方は整数演算ユニットを含み、他方は整数ユニット以外の演算ユニットを含み、
前記第1および第2のパイプライン処理部の一方は、ロード/ストア演算ユニットおよび分岐演算ユニットの少なくとも一方を含むか、あるいは、ロード/ストア演算ユニットおよび分岐演算ユニットのいずれも含まないことを特徴とする請求項1〜5のいずれかに記載のデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000089508A JP3593490B2 (ja) | 2000-03-28 | 2000-03-28 | データ処理装置 |
US09/818,910 US7047392B2 (en) | 2000-03-28 | 2001-03-28 | Data processing apparatus and method for controlling staged multi-pipeline processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000089508A JP3593490B2 (ja) | 2000-03-28 | 2000-03-28 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001282531A JP2001282531A (ja) | 2001-10-12 |
JP3593490B2 true JP3593490B2 (ja) | 2004-11-24 |
Family
ID=18605259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000089508A Expired - Fee Related JP3593490B2 (ja) | 2000-03-28 | 2000-03-28 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7047392B2 (ja) |
JP (1) | JP3593490B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288725A1 (en) * | 2006-06-07 | 2007-12-13 | Luick David A | A Fast and Inexpensive Store-Load Conflict Scheduling and Forwarding Mechanism |
US7730288B2 (en) * | 2007-06-27 | 2010-06-01 | International Business Machines Corporation | Method and apparatus for multiple load instruction execution |
US7865769B2 (en) * | 2007-06-27 | 2011-01-04 | International Business Machines Corporation | In situ register state error recovery and restart mechanism |
US8855194B2 (en) * | 2011-05-09 | 2014-10-07 | Texas Instruments Incorporated | Updating non-shadow registers in video encoder |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5006980A (en) * | 1988-07-20 | 1991-04-09 | Digital Equipment Corporation | Pipelined digital CPU with deadlock resolution |
US5410670A (en) * | 1993-06-02 | 1995-04-25 | Microunity Systems Engineering, Inc. | Accessing system that reduces access times due to transmission delays and I/O access circuitry in a burst mode random access memory |
JP3159345B2 (ja) | 1993-07-02 | 2001-04-23 | 日本電気株式会社 | パイプライン演算処理装置 |
US6272616B1 (en) * | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
US6477638B1 (en) * | 1999-10-01 | 2002-11-05 | Hitachi, Ltd. | Synchronized instruction advancement through CPU and FPU pipelines |
US6529983B1 (en) * | 1999-11-03 | 2003-03-04 | Cisco Technology, Inc. | Group and virtual locking mechanism for inter processor synchronization |
-
2000
- 2000-03-28 JP JP2000089508A patent/JP3593490B2/ja not_active Expired - Fee Related
-
2001
- 2001-03-28 US US09/818,910 patent/US7047392B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20010027514A1 (en) | 2001-10-04 |
JP2001282531A (ja) | 2001-10-12 |
US7047392B2 (en) | 2006-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5386585A (en) | Self-timed data pipeline apparatus using asynchronous stages having toggle flip-flops | |
US7418574B2 (en) | Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction | |
JP2011170868A (ja) | 改善された計算アーキテクチャ用パイプライン加速器、関連システム、並びに、方法 | |
US5422914A (en) | System and method for synchronizing data communications between two devices operating at different clock frequencies | |
EP0730223B1 (en) | Pipeline data processing apparatus for executing a plurality of data processes having a data-dependent relationship | |
JP2007535060A (ja) | パイプライン式非同期命令プロセッサ回路 | |
US5627797A (en) | Full and empty flag generator for synchronous FIFOS | |
JP3000961B2 (ja) | 半導体集積回路 | |
JP3593490B2 (ja) | データ処理装置 | |
EP1205840A2 (en) | Stall control in a processor with multiple pipelines | |
US6122751A (en) | Pipelined data processing circuit | |
US20040003361A1 (en) | Dynamically reconfiguring clock domains on a chip | |
US7302657B2 (en) | Optimization of the design of a synchronous digital circuit | |
JP3321926B2 (ja) | 自己同期型半導体集積回路装置 | |
WO2022152032A1 (zh) | 测试电路、测试方法和包括测试电路的计算系统 | |
WO2022152051A1 (zh) | 处理器和计算系统 | |
CN114970848A (zh) | 用于并行处理器的数据搬运装置及相应处理器 | |
US9720880B2 (en) | System and method for an asynchronous processor with assisted token | |
US9658857B2 (en) | Method and apparatus for processor to operate at its natural clock frequency in the system | |
JP2000020309A (ja) | デジタルシグナルプロセッサ | |
EP1308862A1 (en) | Optimization of the design of a synchronous digital circuit | |
US6580303B1 (en) | Datapath control circuit with adjustable delay elements | |
JPH09160665A (ja) | プロセッサ装置 | |
JPH09319863A (ja) | 画像処理装置における設定データ変更装置 | |
JPS61174851A (ja) | バス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20040820 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040830 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070903 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |