JP2500036B2 - ハイブリッドパイプライン接続プロセッサおよびその処理方法 - Google Patents

ハイブリッドパイプライン接続プロセッサおよびその処理方法

Info

Publication number
JP2500036B2
JP2500036B2 JP4277539A JP27753992A JP2500036B2 JP 2500036 B2 JP2500036 B2 JP 2500036B2 JP 4277539 A JP4277539 A JP 4277539A JP 27753992 A JP27753992 A JP 27753992A JP 2500036 B2 JP2500036 B2 JP 2500036B2
Authority
JP
Japan
Prior art keywords
instruction
thread
threads
instructions
program
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 - Lifetime
Application number
JP4277539A
Other languages
English (en)
Other versions
JPH05224923A (ja
Inventor
ティ. デイヴィス ゴードン
ティ. ヴェントロン セバスチャン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05224923A publication Critical patent/JPH05224923A/ja
Application granted granted Critical
Publication of JP2500036B2 publication Critical patent/JP2500036B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、一般的にはパイプラ
イン接続プロセッサおよびパイプライン処理方法に関
し、およびより詳しくは、複数のプログラム命令スレッ
ド(thread)を受付けるように構成した、単一の
ハイブリッドパイプライン接続プロセッサおよびその処
理方法に関する。
【0002】
【従来の技術】パイプラインデータ処理システムは、従
来技術においてよく知られており、たとえば、米国特許
4,594,655号および4,646,236号およ
びそれらの中で議論されている参照文献を見て頂きた
い。パイプライン接続の技法はデジタル信号プロセッサ
(DSP)技術においてよく知られている。典型的に
は、パイプラインプロセッサは、命令実行機能を3つの
パイプラインフェーズ(pipeline phas
e)に分離することにより実行速度を増大させる。この
フェーズ分割により、前の命令をデコードし(D)、お
よびそれより前の命令を実行する(E)間にある命令を
フェッチする(F)。図1に示すように、単一の命令を
処理する(すなわち、フェッチし、デコードしおよび実
行する)ための経過時間は3マシンサイクルである。し
かしながら、3つのパイプライン接続フェーズが重複し
て演算を行うので、平均のスループットはマシンサイク
ルあたり1命令である。
【0003】
【発明が解決しようとする課題】この処理速度の改良
は、パイプライン接続アーキテクチャを使用することの
動機づけとなっているが、この利益と共に多数の制限が
生じることになる。
【0004】特に、パイプライン接続プロセッサは、ハ
ードウエアにより強いられる制約に起因してプログラム
することが一層難しい。その例としては、以下の制約が
典型的である。
【0005】(1) 標準の逐次シーケンスプログラム
中の、分岐命令の後に配置された命令は、いつも実行さ
れる。その理由は、分岐命令が分岐とデコードされる前
に(図1参照、そこでは、は分岐命令であるとデコー
ドするものと仮定する。)、その命令がフェッチされる
からである。フェーズ分割の故に、F* で示される命令
は分岐命令のデコードと同時にパイプライン接続プロ
セッサに持ち込まれる。次の2つのマシンサイクルで、
この命令F* は、無効にされてオーバーライドされない
限りは、デコードされ(D* )、次いで実行される(E
* )。時々、有効な命令を分岐命令以降に置くことはで
きるが、そのような命令を見付け出すことは困難かもし
れないし、および、プログラムの読取能力を損ねるかも
しれない。しばしばこの位置にはノーオペレーション
(NOP)命令が単に埋め込まれる。
【0006】(2) 分岐命令に関連して以上に説明し
たのと同様の理由で、割込みは、割込みベクトルの処理
後にNOP命令を強制するのが代表的である。
【0007】(3) もし、命令によりインデックスレ
ジスタを変更(インクリメントまたはロード)する場
合、その命令を用いて次の命令に対するアドレスを発生
することはできない。これは、パイプラインのフェーズ
3の処理の間、対応するレジスタが更新されるためであ
り、そして、それ故に同じマシンサイクルで(すなわ
ち、そのフェーズ2の開始時点で)アドレスを発生する
ことはできない。ここでもまた、正しいインデックスが
確実に用いられるようにするためには、NOP命令が必
要になる。
【0008】(4) 条件は典型的にはフェーズ3のA
LUプロセッサの演算の結果であるので、条件付きの分
岐の演算は、上述と類似の問題および同じ制約を有す
る。
【0009】ここに論じてきた各例において、先の命令
の結果を次の命令により使用する前に、当該先の命令の
結果を安定化させるためには、1マシンサイクルの時間
遅延を必要とすることから処理の問題が生じる。本発明
によれば、時分割の形態で、実質的に同時に複数の命令
経路長を交互に取扱うようにパイプライン接続プロセッ
サを構築することにより上述した制約のすべてが有効に
除去される。
【0010】
【課題を解決するための手段】簡単に述べると、この発
明は、第1の基本的な形態において、実質的に同時に複
数n個のプログラム命令スレッドを処理するハイブリッ
ドパイプライン接続プロセッサを具える。命令スレッド
の各々は、たとえば、パイプライン接続プロセッサに結
合された命令メモリに記憶された一連の命令により定義
される。このプロセッサは命令メモリから命令をフェッ
チするひとつの命令フェッチユニットおよびフェッチさ
れた命令をデコードするひとつの命令デコードユニット
を含む。第1のパイプラインは、フェッチされた命令を
受取り、ラッチして命令デコードユニットにより次に読
取りがなされるように結合される。実行ユニットは命令
デコードユニットによりデコードされた命令を実行す
る。実行ユニットはnセットのレジスタファイルを含
み、その各々は、複数n個の命令スレッドの中の対応す
るひとつの命令スレッドに対する作業内容を含む。第2
のパイプラインにより命令デコードユニットおよび実行
ユニットの間を結合して、デコードされた命令をラッチ
し、実行ユニットによる次の読取りがなされるようにす
る。タイミングおよび制御回路は、命令フェッチユニッ
ト、命令デコードユニットおよび実行ユニットの各々に
結合されて、複数n個の命令スレッドの命令についての
動作のタイミングおよびシーケンスを制御して、複数の
命令スレッドは、複数n個の命令スレッドの命令間をハ
イブリッドパイプライン接続プロセッサで切替えて、実
質的に同時に時分割の形態で、別個に取扱う。ハイブリ
ッドアーキテクチャの多数の特定の特徴および改良され
た特徴についても記述され、かつ特許請求を行う。
【0011】他の形態では、本発明は、ハイブリッドア
ーキテクチャに関連するある新規な処理方法を具える。
たとえば、第1の方法は、パイプライン接続プロセッサ
内で複数n個のプログラム命令スレッドの実質的に同時
の処理を提供する。ここでもまた、命令スレッドの各々
は、パイプライン接続プロセッサに関連する命令メモリ
に含まれる一連の命令により定義される。パイプライン
接続プロセッサはnレジスタファイルセットを含み、n
レジスタファイルセットの各々は、複数n個の命令スレ
ッドの対応するひとつに対する作業内容を含む。上記方
法は、プログラム命令スレッドの中のひとつから命令を
フェッチするステップと、プログラム命令スレッドの中
の異なるひとつから別の命令をフェッチしている間、そ
れと同時に、フェッチされた命令をデコードするステッ
プと、プログラム命令スレッドの中の異なるひとつから
フェッチした別の命令をデコードし、およびプログラム
命令スレッドのひとつから新たな命令をフェッチしてい
る間に、それと同時に、プログラム命令スレッドのひと
つからフェッチされてデコードされた命令を実行するス
テップであって、該実行ステップは、実行された命令の
作業結果を、n個のレジスタファイルセットの中のひと
つに記憶するステップを含むステップと、新たにフェッ
チされた命令をデコードし、および複数のプログラム命
令スレッドの中のひとつから別の新しい命令をフェッチ
している間に、それと同時に、複数n個のプログラム命
令スレッドの異なるひとつからフェッチされてデコード
された命令を実行するステップであって、該実行ステッ
プは実行された別の命令の作業結果を、n個のレジスタ
ファイルセットの中のひとつに記憶するステップを含む
ステップと、プログラム命令スレッド内の複数の命令に
対して上述した2つの実行ステップを繰り返して、単一
のパイプライン接続プロセッサ内で時分割の形態で実質
的に同時に複数のプログラム命令スレッドを別個に取扱
うステップとを具える。
【0012】さらに、単一パイプライン接続プロセッサ
内で2重(dual)命令スレッドを実質的に同時に処
理する方法が提供される。この方法では、第1の命令ス
レッドは、パイプライン接続プロセッサに関連する命令
メモリ内に含まれる命令の第1の系列により定義され、
および第2の命令スレッドは、その命令メモリ内に含ま
れる命令の第2の系列により定義される。この方法は、
第1の命令スレッドから命令をフェッチするステップ
と、第2の命令スレッドから命令をフェッチしている間
に、それと同時に、第1の命令スレッドからフェッチさ
れた命令をデコードするステップと、第2の命令スレッ
ドからフェッチされた命令をデコードし、および第1の
命令スレッドから別の命令をフェッチしている間に、そ
れと同時に、第1の命令スレッドからフェッチされて、
デコードされた命令を実行するステップと、第1の命令
ステッドからフェッチされた別の命令をデコードし、お
よび第2の命令スレッドから別の命令をフェッチしてい
る間に、それと同時に、第2の命令スレッドからフェッ
チされてデコードされた命令を実行するステップと、第
1の命令スレッドおよび第2の命令スレッドにおける複
数の命令に対して上述した2つの実行ステップを繰り返
して、単一のパイプライン接続プロセッサ内で時分割の
形態で実質的に同時に2つの命令スレッドを別個に処理
するステップとを具える。
【0013】
【作用】要約すると、本発明は、複数のプログラム命令
スレッドを受付けるように構成した新規なハイブリッド
パイプライン接続プロセッサおよびそれに関連するある
新規な処理方法を具える。複数の命令スレッドを同時に
処理できることにより、ハイブリッドアーキテクチャお
よびそれに関連する方法は、パイプライン接続プロセッ
サの従来の欠点を効果的になくす。複数の命令スレッド
は実質的に同時に時分割の形態で別個に取扱われるの
で、パイプライン接続プロセッサはプログラム命令スレ
ッド間で効果的に切替えを行う。このようにして分岐、
割込みおよびある条件付のデコードなどの命令に関連し
たパイプラインの切断はマスクされる。その結果、ハイ
ブリッドパイプライン接続プロセッサは、従来のパイプ
ライン接続プロセッサによって得られるよりも優れた性
能特性を有する、単一の高速集積回路チップとして実施
することが可能になる。
【0014】本発明のこれら、および他の目的、利益お
よび形態は、添付図面を参照して説明する本発明の好適
実施例についての以下の詳細な記述からさらに容易に理
解される。
【0015】
【実施例】図面を参照するが、ここで、種々の図面にお
いて同一の参照番号を用いて同一または類似の構成要素
を表わすものとする。
【0016】図2は2つの命令スレッドのインターリー
ブ処理の一実施例を示すシーケンスダイアグラム図であ
る。第1のプログラムスレッドを“A”命令スレッドと
称し、一方、第2のプログラムスレッドを“B”命令ス
レッドと称する。この順序付けの実施例では、本発明の
パイプライン接続プロセッサは、“A”命令スレッドか
らの命令(FA )を命令メモリからフェッチすること
と、“B”命令スレッドからの命令(FB )を命令メモ
リからフェッチすることとの間で、交互に切換えて、ス
レッド“A”およびスレッド“B”の命令が交互にデコ
ードされ(DA ,DB )、および実行される(EA ,E
B )ようにする。このようにして、ジャンプ、割込み等
の命令のデコードを行っても、パイプライン処理は破壊
されないままである。たとえば、デコード( B )での
命令が分岐命令としてデコードされる場合、次のデコー
ド(D* A)は、その直後の実行E* Aのステップと同様
に、有効のままである。これは、分岐命令のデコード
B )と同時のマシンサイクルでフェッチ(すなわち
* A)された命令が、プログラムの命令スレッド“A”
に属し、それは、スレッドBに対するデコードされた分
岐命令の影響を受けないからである。
【0017】本発明に従って単一のパイプライン接続プ
ロセッサにより処理を行うためには、望ましくは、プロ
グラム命令を3つ以上の命令スレッドにコンパイルする
とよい(現在は、プログラム命令を複数スレッドにコン
パイルすることはマニュアル処理だけが可能であるが、
この仕事を行うのに自動コンパイラがまもなく利用可能
になるであろう)。ハイブリッドパイプライン接続プロ
セッサでは、スレッドの数にかかわりなく、各命令スレ
ッドの文脈は、他の命令スレッドとは別個のまま維持さ
れなければならない。さらに、当業者であれば種々の順
序付け(シーケンシング)の構成を実行可能であること
を理解し得よう。たとえば、2重(dual)命令スレ
ッドフォーマットでは、2つの“A”スレッド命令が順
次に選択され、ひとつの“B”スレッド命令がそれに続
き、さらに2つの“A”スレッド命令が続き、ひとつの
“B”スレッド命令が続く等々となる。唯一の好適な制
限は、命令プログラムをコンパイルし、およびフェッ
チ、デコードおよび実行の順序付けを実行して、もしも
このようにしなければパイプライン処理を破壊するなん
らかの命令(たとえば分岐や割込み命令)に、異なる命
令スレッドからの命令処理が引き続くようにする。
【0018】本発明のハイブリッドアーキテクチャの一
実施例を図3に示す。この実施例は2重(dual)命
令スレッドプロセッサとして構成されているが、上述し
たように、3つ以上の命令スレッドもまた、以下に述べ
るようなわずかな修正で適応させることができる。符号
10で総称して示すハイブリッドパイプライン接続プロ
セッサは、命令フェッチユニット12,第1のパイプラ
イン14,命令デコード/アドレス発生ユニット16,
第2のパイプライン18および実行ユニット20を含
む。プロセッサ10の種々の構成要素間の動作のタイミ
ングおよびシーケンスはタイミングおよび制御ユニット
22により制御される。
【0019】パイプライン接続プロセッサ10はデータ
フェッチ処理から命令フェッチ処理を分離し、その対応
する情報を2つの別個のメモリバンクに格納する。パイ
プライン接続プロセッサ10は3つのフェーズ、すなわ
ち、命令フェッチフェーズ、命令デコード/アドレス発
生フェーズおよび実行フェーズに分割されている。命令
フェッチフェーズにおいて、命令フェッチユニット12
は、命令アドレスバス24を介して、命令メモリ(図示
せず)に保持された2重命令スレッドの内のひとつに格
納された命令のアドレスを転送する。フェッチされた命
令は、命令データバス26を介してプロセッサ10に戻
るが、これらフェッチされた命令は第1のパイプライン
14内に含まれるレジスタ(図示せず)に初期的にラッ
チされる。ここでもまた、命令フェッチユニット12は
命令デコード/アドレス発生ユニット16とある双方向
性のライン28を介して直接に交信する。
【0020】次のフェーズにおいて、命令デコード/ア
ドレス発生ユニット16は(バス30を介して)第1の
パイプライン14のレジスタ内にラッチされている命令
を読出す。もしも命令デコード/アドレス発生ユニット
16が、フェッチされた命令が分岐命令であるとデコー
ドした場合は、所望の命令の分岐に対応するアドレスが
発生される。分岐アドレスは、(ライン28を介して)
命令フェッチユニット12にフィードバックされ、次い
で、バス24上の出力を命令メモリに供給する。再び、
タイミングおよび制御ユニット22は、命令デコード/
アドレス発生ユニット16,パイプライン14および命
令フェッチユニット12の間の動作シーケンスを制御す
る。デコードされた命令はライン32に出力され、そし
て第2のパイプライン18内の2つのレジスタ(図示せ
ず)にラッチされるが、これらデコードされた命令は、
次いで(ライン34を介して)実行ユニット20により
次のマシンサイクルの間に読出される。
【0021】実行ユニット20は従来のパイプライン接
続プロセッサの実行回路と比較して著しく変更されてい
る。たとえば、ALU36および乗算器38のような慣
例の実行ロジックに加えて、実行ユニット20は複数の
レジスタセット40に分離されたレジスタファイルを含
む(ここで述べている例では、2つのレジスタセットだ
けが示されている)。レジスタファイルの各セットに
は、命令をつなげた(threaded)プログラムの
2重スレッドAおよびBのひとつを割当てる。レジスタ
ファイルの各セットは関連する命令スレッドの命令の作
業内容を収容するのに適切なサイズとする。これらのワ
ーキングレジスタに加えて、現在ステータスレジスタ、
アドレスポインタおよびインデックスレジスタのような
ステータスレジスタをプロセッサのステータスを保存す
るために必要な他の情報と共に用いる。ここでもまた、
各命令スレッドには命令レジスタの別個のセットが割当
てられる。
【0022】タイミングおよび制御回路22は共通デー
タバス(CDB)42および共通アドレスバス(CA
B)44上の出力(CDB(A),CDB(B),CA
B(A),CAB(B))を各マシンサイクル毎に1度
切替える(すなわち、プロセッサ10は図2に示すよう
にスレッド“A”および“B”のインタリーブされた命
令処理を行うようにプログラムされているものと仮定す
る)。タイミングおよび制御回路22からの切替えられ
た制御信号は、レジスタファイルに対する高位の選択ラ
インとして実行ユニット20により用いられて、偶数マ
シンサイクルでレジスタファイルの第1のセットがアク
チブと定められ、および奇数マシンサイクルでレジスタ
ファイルの第2のセットが使用される。もし、RAMマ
クロをレジスタファイル40を定義するのに用いる場合
は、複数の読出しおよび書込みポートは、データアドレ
ス発生用のインデックスレジスタのアクセス処理のみな
らず、複数のソースおよび種々の命令(特に、デジタル
信号プロセッサにおいて使用される並行命令)の宛先を
収容するのに必要とされる。命令のフェッチおよびアド
レスの発生を専用的に取扱う別個の機能に、そのような
RAMアレイを分割することが望まれることもある。し
かしながら、マシンコンタクトを単一ファイルまたはR
AMに統合するか、あるいはいくつかのファイルまたは
RAMに分配するにしても、基本的な考え方は同じであ
る。
【0023】図4および図5は図3のハイブリッドパイ
プライン接続プロセッサ10の主要構成要素をさらに詳
細に示す。特に、命令フェッチユニット12,第1のパ
イプライン14,命令デコード/アドレス発生ユニット
16,第2のパイプライン18および実行ユニット20
が多少詳しく示されている。タイミングおよび制御の相
互接続は、わかりやすくするという理由からこれらの図
面から省略している。当業者であればここで与えられた
記述から所望のタイミングおよび制御機能を実現するこ
とができる。
【0024】最初に図4を参照するに、命令フェッチユ
ニット12がシーケンサ50,命令アドレスレジスタ
(IAR)52および2つの命令リンクレジスタILR
(A)54aおよびILR(B)54bを有することが
示されている。動作にあっては、シーケンサ50はIA
R52にラッチすべき次の命令アドレスを識別し、およ
びこのIAR52から命令アドレスバス24を介して命
令メモリに出力する。レジスタ54aおよび54bは、
また、IAR52の出力を受け取るようにも結合されて
いる。これらレジスタ54aおよび54bは、命令スレ
ッドAおよび命令スレッドBからそれぞれフェッチされ
た最終命令の識別を行うのに供される。これらレジスタ
内に含まれている情報もまた、シーケンサ50にフィー
ドバックされ、シーケンサ50は、次に選択されるアド
レスに対する信号をインクリメントする。動作にあたっ
て、シーケンサ50は加算器として機能して、各プログ
ラムスレッドを決定づける命令が交互に順次にフェッチ
されるようにする。タイミングおよび制御回路22(図
3)はILR(A)またはILR(B)にラッチされた
アドレスについてのシーケンサ50の選択を監視する。
【0025】命令メモリから取出された命令は、命令デ
ータバス26によりシステム10(図3)の第1のパイ
プライン14内の命令データレジスタ(IDR)56に
供給される。次のマシンサイクルで命令デコード/アド
レス発生ユニット16はレジスタ56にラッチされた命
令情報を読出し、デコードする。ここでもまた、タイミ
ングおよび制御回路22(図3)は、レジスタ56から
読出された命令が命令スレッドAの部分か命令スレッド
Bの部分かを追跡調査する。命令デコード/アドレス発
生ユニット16により取出された命令は命令デコード論
理ブロック58に供給され、それにより命令をデコード
し、実行ユニットに対してそれに結合された信号線59
を介して適切な制御信号を出力するするように動作す
る。わかりやすくするために制御ライン59の結合は図
4および図5から省略されている。
【0026】レジスタ56から読出された命令は、第1
のパイプライン14、特にレジスタ57を通じて命令フ
ェッチユニット12のシーケンス50に結合されたイン
デックス選択および加算回路60にも渡される。もし、
妥当であれば、インデックス選択および加算回路60は
シーケンサ50による次の読出しのためにレジスタ57
に置かれている命令アドレスに対してジャンプを発生す
る。たとえば、もし、命令デコード論理ブロック58が
分岐命令をデコードする場合、インデックス選択および
加算回路60は分岐命令に対して適当なアドレスを発生
する。命令デコード/アドレス発生ユニット16のイン
デックス選択および加算回路60は、また、第2のパイ
プライン18のパイプラインレジスタに対して、たとえ
ば、ライン62(図5参照)を介して結合される。加え
て、インデックス選択および加算回路60は実行ユニッ
ト20内のレジスタファイル40の2つのセットから
(ライン64を介して)データを受け取ることができ
る。
【0027】今、図5を参照すると、デコードされた命
令は、次のマシンサイクルでの実行のために第2のパイ
プライン18内の別々のスレッドAおよびスレッドBの
レジスタに置かれている。実行ユニット20の中心は、
複数(この例では2つ)のレジスタファイルセット、す
なわち、レジスタファイル(A)およびレジスタファイ
ル(B)66を設けることである。これらファイルセッ
トは命令スレッドAおよび命令スレッドBの両方に対す
る作業レジスタを含む。タイミングおよび制御回路22
(図3)は与えられた実行対象のある命令がスレッド
(A)かまたはスレッド(B)に属するかを追跡調査す
る。
【0028】レジスタファイル66に加えて、実行ユニ
ット20は、ステータスレジスタ、例えば、メモリ制御
レジスタMCR(A)とMCR(B)、およびパイプラ
インステータスレジスタPSR(A)とPSR(B)等
のステータスレジスタの複数のスタック68を含んでい
る。これらステータスレジスタスタックの各々はパイプ
ライン18のレジスタから読出された命令に対してアク
セスする。レジスタ68の出力は、2セットのレジスタ
ファイル66に直接接続されたマルチプレクサ70に供
給される。マルチプレクサ70の出力は、実行ロジック
72たとえば慣例の乗算器、ALUおよび追加のマルチ
プレクサを含むことのできる実行ロジック72に結合さ
れる。実行ロジック72は、また2セットのレジスタフ
ァイル66に直接に接続されている。実行ユニット20
からの出力は、共通アドレスバス44上に命令スレッド
Aまたは命令スレッドBに対するデータアドレス信号を
出力する第1のマルチプレクサCAB MUX76を介
して取り出される。加えて、共通データバスマルチプレ
クサCDB MUX74は、命令スレッド(A)または
命令スレッド(B)からの実行された命令により指示さ
れるデータを、共通データバス42を介して出力/受信
する。
【0029】要約すると、2つの独立の命令スレッドを
使用することにより、NOP命令のための余分な処理フ
ェーズを省略し、およびパイプラインは実質的に透過的
になる。特に、プロセッサスレッドの各々は、あたか
も、本来の非パイプライン接続構造内での実行のように
見える。その概念を拡張してパイプライン構造に対して
付加的な命令スレッドおよび/または付加的なフェーズ
を用いることもできる。nフェーズのパイプラインは処
理速度の遅い回路をパイプライン接続することで作成さ
れるので、2つの異なる命令の部分(たとえば、第1の
サイクルでのひとつの命令および第2のサイクルでの別
の命令)はそれらを通じて流れる。ここで述べられたフ
ェッチ、デコードおよび実行の各フェーズに対するこの
概念を用いると、本来の3つのフェーズに対する置換え
として実質的に6つのフェーズのパイプラインになる。
【0030】さらに他の例として4つの命令スレッドに
コンパイルされたプログラムを、4つの完全なレジスタ
ファイルセットを保持するRAMおよびRAMアドレス
を駆動する2ビットカウンタと共に用いることができ
る。そのような場合、6フェーズのパイプラインは透過
的になる。一般に、パイプラインフェーズの数は、命令
スレッドの数を倍増させることによりコードの実行に影
響を及ぼすことなく倍増することができる。開示された
アーキテクチャの付加の特徴を高性能のアプリケーショ
ンに活用することができる。特に、共通プロセッサ内の
複数のレジスタファイルを用いることにより文脈(co
ntext)の高速切替えを実現できる。そのような環
境では、プロセッサは複数の命令スレッドモードから単
一の命令スレッドを有するモードに切替えることが可能
になる。
【0031】命令をつなげた(threaded)複数
プログラムは、どのスレッドによりどのタスクを実行中
であるのかを決定するプロセスに複雑さを加える。しか
しながら、この複雑さは、パイプライン接続およびNO
Pを回避することで実現される改良性能および透過のパ
イプラインで可能な簡素なプログラムの流れに比べる
と、些細であると考えられる。さらに、複数の命令スレ
ッドは、複数の非同期リアルタイム事象を取扱う上で有
益であることが証明された。もし、複数の事象を単一の
プロセッサスレッドで取扱うとすると、プロセッサは一
度にはひとつのスレッドだけしか注目せず、および余り
長い期間プロセッサの制御を続ける場合には、タイミン
グの問題を生じやすい。しかしながら、複数スレッドの
環境においては、複数のスレッドの処理は同時に取扱わ
れる。長期間にわたっての平均の処理のスループットは
同様であるが、応答時間を著しく改善することができ
る。これは、本質的には、プロセッサの内部へおよび外
部にタスクを移動させることを要求されたゼロ処理オー
バヘッドを用いて、利用可能な処理能力を複数の命令ス
レッドの間で均等に分割するハードウエアキューイング
メカニズムである。
【0032】現在、認められたアプリケーションでは、
固定タスクは各命令スレッドに割振られ、従って、特別
のアセンブラやコンパイラは必要ない。初期時、プログ
ラムコードは、単にIDワードを読取りどの命令スレッ
ドを実行しているのかを識別し、そして適切なタスクへ
分岐する。もし複数の命令スレッドが同じ割込みレベル
に応答するとすると、割込みハンドラーもまた、このI
Dワードを検査して所要の動作を決定する。ひとつの命
令スレッドが割込みに応答するとき、パイプラインを再
び満たすのに1マシンサイクルを要するが、そのマシン
サイクルは他の命令スレッドに対するものであるから、
明らかに目につくような遅延はない。将来、命令スレッ
ドの各々に対するタスクの動的な割振りを処理の負荷に
基づいて行うことが可能であるかもしれない。これに
は、特別のコンパイラおよび現在は要求されていない他
の技術が必要となると思われる。
【0033】当業者は、複数のプログラム命令スレッド
を受け入れるように構成された新規なパイプライン接続
プロセッサおよびそれに伴う処理方法がここで述べられ
ていることを認識するだろう。提案された技術を用いる
ことにより、複数の命令スレッドは、実質的に同時に、
時分割の形態で個別に取扱われるので、パイプライン接
続プロセッサは、プログラム命令スレッド間を効率的に
切替える。このようにして、分岐、割込みおよびある種
の条件のデコード等の命令に関連したパイプラインの切
断を阻止(マスク)する。その結果、ハイブリッドパイ
プライン接続プロセッサは、性能特性に優れた単一の高
速集積回路チップとして実施可能である。デジタル信号
プロセッサに加えて、ここで述べられた本発明の概念
を、高性能マイクロプロセッサおよび大規模のメインフ
レームプロセッサに拡張することも可能である。
【0034】本発明は、その好適実施例に従ってここで
詳細に述べられてきたが、当業者は、その中に多くの変
更および変形をすることができる。したがって、本発明
の真の精神および範囲内で生じるような変更および変形
の全てを包含することを添付の特許請求の範囲は意図し
ている。
【0035】
【発明の効果】本発明によれば、複数の命令スレッドは
実質的に同時に時分割の形態で別個に取扱われるので、
パイプライン接続プロセッサはプログラム命令スレッド
を効率的に切替える。このようにして分岐、割込みおよ
びある条件のデコードに関連したパイプラインの切断,
破壊は消去(マスク)される。その結果、ハイブリッド
パイプライン接続プロセッサは、従来のパイプライン接
続プロセッサに比べて優れた性能特性を有し、単一の高
速集積回路チップとして実現することが可能になる。
【図面の簡単な説明】
【図1】慣例のパイプライン接続プロセッサのフェッ
チ、デコードおよび実行の処理フェーズに対する逐次シ
ーケンスダイアグラム図である。
【図2】本発明に従った、複数命令スレッドパイプライ
ン接続プロセッサのインタリーブされたフェッチ、デコ
ードおよび実行の処理フェーズの一実施例に対する交互
シーケンスダイアグラム図である。
【図3】本発明に従った複数命令スレッドパイプライン
接続プロセッサの一実施例のブロック図である。
【図4】図3の複数命令スレッドパイプライン接続プロ
セッサの基本的な構成要素のより詳細なブロック図であ
る。
【図5】図3の複数命令スレッドパイプライン接続プロ
セッサの基本的な構成要素のより詳細なブロック図であ
る。
【符号の説明】
10 (ハイブリッド)パイプライン接続プロセッサ 12 命令フェッチユニット 14 第1のパイプライン 16 命令デコード/アドレス発生ユニット 18 第2のパイプライン 20 実行ユニット 22 タイミングおよび制御ユニット 40,66 レジスタファイル 50 シーケンサ 52 命令アドレスレジスタ 54a,54b 命令リンクレジスタ 56 命令データレジスタ 58 命令デコードロジックブロック 60 インデックス選択および加算回路 68 複数スタック 70,74 マルチプレクサ 72 実行ロジック
フロントページの続き (72)発明者 セバスチャン ティ. ヴェントロン アメリカ合衆国 05465 ヴァーモント 州 ジェリコ アップルツリー レーン 1 (56)参考文献 特開 平3−188530(JP,A) 特公 昭53−17023(JP,B2)

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数n個のプログラム命令スレッドの実
    質的に同時の処理を行い、前記プログラム命令スレッド
    の各々は一連の命令により定義されるハイブリッドパイ
    プライン接続プロセッサにおいて、 前記複数n個のプログラム命令スレッドから命令をフェ
    ッチする命令フェッチユニットと、 前記命令フェッチユニットによりフェッチされた命令を
    デコードする命令デコードユニットと、 前記フェッチされた命令を、前記命令デコードユニット
    により読出すためにラッチするように結合された第1の
    パイプライン手段と、 前記命令デコードユニットによりデコードされた命令を
    実行する実行ユニットであって、該実行ユニットはnセ
    ットのレジスタファイルを含み、該レジスタファイルセ
    ットの各々は前記複数n個のプログラム命令スレッドの
    中の対応するひとつのための作業内容を含む実行ユニッ
    トと、 前記命令デコードユニットおよび前記実行ユニットを結
    合し、前記命令デコードユニットからのデコードされた
    命令をラッチし、および前記デコードされた命令を前記
    実行ユニットにより読出す第2のパイプライン手段と、 前記命令フェッチユニット、前記命令デコードユニット
    および前記実行ユニットの各々に結合され、前記複数n
    個のプログラム命令スレッドを実質的に同時に時分割の
    形態で別個に取扱うように前記複数n個のプログラム命
    令スレッドの命令についての動作のタイミングおよびシ
    ーケンスを制御するタイミングおよび制御手段とを具え
    たことを特徴とするハイブリッドパイプライン接続プロ
    セッサ。
  2. 【請求項2】 前記命令フェッチユニットは前記複数n
    個のプログラム命令スレッドの各々からの命令を実質的
    に予め定められたシーケンスでフェッチすることを特徴
    とする請求項1に記載のハイブリッドパイプライン接続
    プロセッサ。
  3. 【請求項3】 前記複数n個のプログラム命令スレッド
    は第1の命令スレッドおよび第2の命令スレッドを含
    み、前記命令フェッチユニットは、パイプライン処理の
    ために前記第1の命令スレッドおよび前記第2の命令ス
    レッドの各々からの命令を交互にフェッチすることを特
    徴とする請求項2に記載のハイブリッドパイプライン接
    続プロセッサ。
  4. 【請求項4】 前記命令実行ユニットは、さらに、複数
    n個のステータスレジスタを含み、該ステータスレジス
    タの各々は、前記複数n個のプログラム命令スレッドの
    中の対応するひとつに対するプロセッサのステータスに
    関連するデータを記憶することを特徴とする請求項2に
    記載のハイブリッドパイプライン接続プロセッサ。
  5. 【請求項5】 前記命令デコードユニットは、分岐命令
    を前記命令デコードユニットによりデコードした時に、
    前記命令フェッチユニットにフィードバックする分岐命
    令アドレスを発生する命令アドレス発生ユニットを含む
    ことを特徴とする請求項1に記載のハイブリッドパイプ
    ライン接続プロセッサ。
  6. 【請求項6】 単一のパイプライン接続プロセッサ内で
    複数n個のプログラム命令スレッドを、実質的に同時に
    処理し、前記複数n個のプログラム命令の各々が、前記
    パイプライン接続プロセッサに関連した命令メモリに含
    まれる一連の命令により定義され、前記パイプライン接
    続プロセッサは、n個のレジスタファイルセットを含
    み、該n個のレジスタファイルセットの各々は、前記複
    数n個のプログラム命令スレッドの中の対応するひとつ
    に対する作業内容を含む、実質的に同時に処理を行う処
    理方法において、 (a) 前記命令メモリ内に含まれる前記複数n個のプ
    ログラム命令スレッドの中のひとつから命令をフェッチ
    するステップと、 (b) 前記複数n個のプログラム命令スレッドの中の
    異なるひとつから別の命令をフェッチしている間、それ
    と同時に前記命令メモリからフェッチされた前記命令を
    デコードするステップと、 (c) 前記複数n個のプログラム命令スレッドの中の
    異なるひとつからフェッチした前記別の命令をデコード
    し、および前記複数n個のプログラム命令スレッドのひ
    とつから新しい命令をフェッチしている間に、それと同
    時に、前記複数n個のプログラム命令スレッドのひとつ
    から、フェッチされた前記デコードされた命令を実行す
    るステップであって、該実行のステップは、前記実行さ
    れた命令の作業結果を、前記nのレジスタファイルセッ
    トの中の対応するひとつに記憶するステップを含むステ
    ップと、 (d) 前記新たにフェッチされた命令をデコードし、
    および前記複数n個のプログラム命令スレッドの中のひ
    とつから別の新しい命令をフェッチしている間に、それ
    と同時に、前記複数n個のプログラム命令スレッドの異
    なるひとつからフェッチされた、前記デコードされた命
    令を実行するステップであって、該実行のステップは前
    記実行された別の命令の作業結果を、前記複数n個のレ
    ジスタファイルセットの中の対応するひとつに記憶する
    ステップを含むステップと、 (e) 前記単一のパイプライン接続プロセッサ内で時
    分割の形態で実質的に同時に複数のプログラム命令スレ
    ッドを別個に取扱うように前記複数n個のプログラム命
    令スレッドからの複数の命令に対して前記ステップ
    (c)および前記ステップ(d)を繰り返すステップと
    を具えたことを特徴とする処理方法。
  7. 【請求項7】 単一のパイプライン接続プロセッサ内で
    2つの命令スレッドを実質的に同時に処理し、第1の命
    令スレッドは命令の第1の系列で定義され、および第2
    の命令スレッドは命令の第2の系列で定義された、実質
    的に同時に処理を行う方法において、 (a) 前記第1の命令スレッドからの命令を処理する
    ステップと、 (b) 前記第2の命令スレッドからの命令をフェッチ
    している間に、それと同時に、前記第1の命令スレッド
    からフェッチされた前記命令をデコードするステップ
    と、 (c) 前記第2の命令スレッドからフェッチされた前
    記命令をデコードし、および前記第1の命令スレッドか
    ら別の命令をフェッチしている間に、それと同時に、前
    記第1の命令スレッドからフェッチされた、前記デコー
    ドされた命令を実行するステップと、 (d) 前記第1の命令ステッドからフェッチされた前
    記別の命令をデコードし、および前記第2の命令スレッ
    ドから別の命令をフェッチしている間に、それと同時
    に、前記第2の命令スレッドからフェッチされた、前記
    デコードされた命令を実行するステップと、 (e) 前記単一のパイプライン接続プロセッサ内で時
    分割の形態で実質的に同時に前記2つの命令スレッドを
    別個に処理するように前記第1の命令スレッドおよび前
    記第2の命令スレッドにおける複数の命令に対して前記
    ステップ(c)および前記ステップ(d)を繰り返すス
    テップとを具えたことを特徴とする処理方法。
JP4277539A 1991-11-22 1992-10-15 ハイブリッドパイプライン接続プロセッサおよびその処理方法 Expired - Lifetime JP2500036B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/796,194 US5357617A (en) 1991-11-22 1991-11-22 Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US796194 1991-11-22

Publications (2)

Publication Number Publication Date
JPH05224923A JPH05224923A (ja) 1993-09-03
JP2500036B2 true JP2500036B2 (ja) 1996-05-29

Family

ID=25167576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4277539A Expired - Lifetime JP2500036B2 (ja) 1991-11-22 1992-10-15 ハイブリッドパイプライン接続プロセッサおよびその処理方法

Country Status (2)

Country Link
US (1) US5357617A (ja)
JP (1) JP2500036B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7252532B2 (en) 2005-08-25 2007-08-07 Japan Aviation Electronics Industry, Limited Board mount connector suitable for automatic mounting

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994027216A1 (en) * 1993-05-14 1994-11-24 Massachusetts Institute Of Technology Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6128721A (en) * 1993-11-17 2000-10-03 Sun Microsystems, Inc. Temporary pipeline register file for a superpipelined superscalar processor
JPH07200289A (ja) * 1993-12-28 1995-08-04 Fujitsu Ltd 情報処理装置
US5613114A (en) * 1994-04-15 1997-03-18 Apple Computer, Inc System and method for custom context switching
US5655132A (en) * 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
GB2296352A (en) * 1994-12-22 1996-06-26 Motorola Gmbh Microprocessor for executing multiplexed streams of instructions
JPH096633A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> データ処理システムに於ける高性能多重論理経路の動作用の方法とシステム
US5713039A (en) * 1995-12-05 1998-01-27 Advanced Micro Devices, Inc. Register file having multiple register storages for storing data from multiple data streams
US5974455A (en) * 1995-12-13 1999-10-26 Digital Equipment Corporation System for adding new entry to web page table upon receiving web page including link to another web page not having corresponding entry in web page table
JPH09171462A (ja) * 1995-12-20 1997-06-30 Matsushita Electric Ind Co Ltd 演算装置
IL116885A0 (en) 1996-01-24 1996-05-14 Scitex Corp Ltd An imaging apparatus for exposing a printing member
KR100500002B1 (ko) * 1996-08-27 2005-09-08 마츠시타 덴끼 산교 가부시키가이샤 복수의명령흐름을독립적으로처리하고,명령흐름단위로처리성능을유연하게제어하는멀티스레드프로세서
US5835788A (en) * 1996-09-18 1998-11-10 Electronics For Imaging System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory
US6209020B1 (en) * 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
US5928322A (en) * 1996-11-20 1999-07-27 Silicon Graphics, Inc. Low-latency real-time dispatching in general purpose multiprocessor systems
US6000011A (en) * 1996-12-09 1999-12-07 International Business Machines Corporation Multi-entry fully associative transition cache
US6035424A (en) * 1996-12-09 2000-03-07 International Business Machines Corporation Method and apparatus for tracking processing of a command
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US5907702A (en) * 1997-03-28 1999-05-25 International Business Machines Corporation Method and apparatus for decreasing thread switch latency in a multithread processor
FR2765361B1 (fr) * 1997-06-26 2001-09-21 Bull Cp8 Microprocesseur ou microcalculateur imprevisible
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
US6223208B1 (en) * 1997-10-03 2001-04-24 International Business Machines Corporation Moving data in and out of processor units using idle register/storage functional units
WO1999019799A1 (en) * 1997-10-14 1999-04-22 Analog Devices, Inc. Signal processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
US6697935B1 (en) 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6061710A (en) * 1997-10-29 2000-05-09 International Business Machines Corporation Multithreaded processor incorporating a thread latch register for interrupt service new pending threads
US6256775B1 (en) 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6018759A (en) * 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US7055151B1 (en) 1998-04-03 2006-05-30 Applied Micro Circuits Corporation Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6330584B1 (en) * 1998-04-03 2001-12-11 Mmc Networks, Inc. Systems and methods for multi-tasking, resource sharing and execution of computer instructions
US6307860B1 (en) 1998-04-03 2001-10-23 Mmc Networks, Inc. Systems and methods for data transformation and transfer in networks
US6115056A (en) * 1998-04-06 2000-09-05 Creoscitex Corporation Ltd. Focusing adjustment apparatus
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US6188411B1 (en) * 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
SE9803632D0 (sv) * 1998-10-22 1998-10-22 Ericsson Telefon Ab L M A processor
JP3526773B2 (ja) * 1999-02-26 2004-05-17 松下電器産業株式会社 マルチプロセッサ装置およびその制御方法
US6535905B1 (en) * 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6351808B1 (en) * 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
US6507862B1 (en) * 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6542921B1 (en) * 1999-07-08 2003-04-01 Intel Corporation Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
WO2001016702A1 (en) * 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
EP1236092A4 (en) 1999-09-01 2006-07-26 Intel Corp BRANCH COMMAND FOR A PROCESSOR
US6357016B1 (en) 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6889319B1 (en) * 1999-12-09 2005-05-03 Intel Corporation Method and apparatus for entering and exiting multiple threads within a multithreaded processor
US6496925B1 (en) 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US7051329B1 (en) 1999-12-28 2006-05-23 Intel Corporation Method and apparatus for managing resources in a multithreaded processor
US6609193B1 (en) * 1999-12-30 2003-08-19 Intel Corporation Method and apparatus for multi-thread pipelined instruction decoder
US6671795B1 (en) * 2000-01-21 2003-12-30 Intel Corporation Method and apparatus for pausing execution in a processor or the like
US7856633B1 (en) 2000-03-24 2010-12-21 Intel Corporation LRU cache replacement for a partitioned set associative cache
US7093109B1 (en) 2000-04-04 2006-08-15 International Business Machines Corporation Network processor which makes thread execution control decisions based on latency event lengths
US6931641B1 (en) 2000-04-04 2005-08-16 International Business Machines Corporation Controller for multiple instruction thread processors
US6675285B1 (en) * 2000-04-21 2004-01-06 Ati International, Srl Geometric engine including a computational module without memory contention
AU2001273873A1 (en) * 2000-06-13 2001-12-24 Synergestic Computing Systems Aps Synergetic computing system
US7847803B1 (en) * 2000-07-26 2010-12-07 Ati Technologies Ulc Method and apparatus for interleaved graphics processing
WO2002014500A2 (en) * 2000-08-16 2002-02-21 Chiron Corporation Human genes and gene expression products
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
US20020053017A1 (en) * 2000-09-01 2002-05-02 Adiletta Matthew J. Register instructions for a multithreaded processor
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US8762581B2 (en) * 2000-12-22 2014-06-24 Avaya Inc. Multi-thread packet processor
US20020144101A1 (en) * 2001-03-30 2002-10-03 Hong Wang Caching DAG traces
US7320065B2 (en) 2001-04-26 2008-01-15 Eleven Engineering Incorporated Multithread embedded processor with input/output capability
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US6874080B2 (en) * 2001-11-19 2005-03-29 Intel Corporation Context processing by substantially simultaneously selecting address and instruction of different contexts
US20030126379A1 (en) * 2001-12-31 2003-07-03 Shiv Kaushik Instruction sequences for suspending execution of a thread until a specified memory access occurs
US7127561B2 (en) 2001-12-31 2006-10-24 Intel Corporation Coherency techniques for suspending execution of a thread until a specified memory access occurs
US20030126416A1 (en) * 2001-12-31 2003-07-03 Marr Deborah T. Suspending execution of a thread in a multi-threaded processor
US7363474B2 (en) * 2001-12-31 2008-04-22 Intel Corporation Method and apparatus for suspending execution of a thread until a specified memory access occurs
US7610451B2 (en) 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7437724B2 (en) * 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US8024735B2 (en) 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution
US7337275B2 (en) 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7124284B2 (en) * 2003-01-06 2006-10-17 Sun Microsystems, Inc. Method and apparatus for processing a complex instruction for execution and retirement
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
US7493615B2 (en) * 2003-05-01 2009-02-17 Sun Microsystems, Inc. Apparatus and method for synchronizing multiple threads in an out-of-order microprocessor
US20050060517A1 (en) * 2003-09-12 2005-03-17 Morrow Michael W. Switching processor threads during long latencies
US20050066149A1 (en) * 2003-09-22 2005-03-24 Codito Technologies Private Limited Method and system for multithreaded processing using errands
US7684563B1 (en) * 2003-12-12 2010-03-23 Sun Microsystems, Inc. Apparatus and method for implementing a unified hash algorithm pipeline
US7000048B2 (en) * 2003-12-18 2006-02-14 Intel Corporation Apparatus and method for parallel processing of network data on a single processing thread
US7310722B2 (en) * 2003-12-18 2007-12-18 Nvidia Corporation Across-thread out of order instruction dispatch in a multithreaded graphics processor
US7720219B1 (en) * 2004-10-19 2010-05-18 Oracle America, Inc. Apparatus and method for implementing a hash algorithm word buffer
US8195922B2 (en) 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US8230423B2 (en) * 2005-04-07 2012-07-24 International Business Machines Corporation Multithreaded processor architecture with operational latency hiding
US7873961B2 (en) * 2005-07-29 2011-01-18 International Business Machines Corporation Supervisory operating system for running multiple child operating systems simultaneously and optimizing resource usage
US20080126754A1 (en) * 2006-07-28 2008-05-29 Padauk Technologies Corporation, R.O.C. Multiple-microcontroller pipeline instruction execution method
CN102023844B (zh) * 2009-09-18 2014-04-09 深圳中微电科技有限公司 并行处理器及其线程处理方法
US20110276784A1 (en) * 2010-05-10 2011-11-10 Telefonaktiebolaget L M Ericsson (Publ) Hierarchical multithreaded processing
US9632782B2 (en) * 2012-03-30 2017-04-25 Intel Corporation Method and apparatus to process SHA-2 secure hashing algorithm
US10146544B2 (en) 2012-03-30 2018-12-04 Intel Corporation Method and apparatus to process SHA-2 secure hashing algorithm
CN107038125B (zh) * 2017-04-25 2020-11-24 上海兆芯集成电路有限公司 具有加速预取请求的独立流水线的处理器高速缓存
CN113946540B (zh) * 2021-10-09 2024-03-22 深圳市创成微电子有限公司 一种dsp处理器及其判断跳转指令的处理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5317023A (en) * 1976-07-30 1978-02-16 Hitachi Ltd Color picture tube
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
US4320453A (en) * 1978-11-02 1982-03-16 Digital House, Ltd. Dual sequencer microprocessor
US4244028A (en) * 1979-03-08 1981-01-06 National Semiconductor Corporation Digital microprocessor having a time-shared adder
US4646236A (en) * 1981-04-17 1987-02-24 International Business Machines Corp. Pipelined control apparatus with multi-process address storage
US4546431A (en) * 1982-11-03 1985-10-08 Burroughs Corporation Multiple control stores in a pipelined microcontroller for handling jump and return subroutines
US4551798A (en) * 1982-11-03 1985-11-05 Burroughs Corporation Multiple control stores in a pipelined microcontroller for handling nester subroutines
US4586127A (en) * 1982-11-03 1986-04-29 Burroughs Corp. Multiple control stores for a pipelined microcontroller
US4594655A (en) * 1983-03-14 1986-06-10 International Business Machines Corporation (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US5117387A (en) * 1988-08-18 1992-05-26 Delco Electronics Corporation Microprogrammed timer processor
JP2591200B2 (ja) * 1989-12-18 1997-03-19 松下電器産業株式会社 プログラム先取り装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7252532B2 (en) 2005-08-25 2007-08-07 Japan Aviation Electronics Industry, Limited Board mount connector suitable for automatic mounting

Also Published As

Publication number Publication date
JPH05224923A (ja) 1993-09-03
US5357617A (en) 1994-10-18

Similar Documents

Publication Publication Date Title
JP2500036B2 (ja) ハイブリッドパイプライン接続プロセッサおよびその処理方法
JP2550213B2 (ja) 並列処理装置および並列処理方法
US5163139A (en) Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
JP2918631B2 (ja) デコーダ
JP2647315B2 (ja) 動的に複数モードで並列処理するアレイ
US5193157A (en) Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter
EP0427245B1 (en) Data processor capable of simultaneously executing two instructions
US5459843A (en) RISC-type pipeline processor having N slower execution units operating in parallel interleaved and phase offset manner with a faster fetch unit and a faster decoder
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
WO1999054813A9 (en) Risc processor with context switch register sets accessible by external coprocessor
WO1990014629A2 (en) Parallel multithreaded data processing system
US5974537A (en) Guard bits in a VLIW instruction control routing of operations to functional units allowing two issue slots to specify the same functional unit
US5099421A (en) Variable length pipe operations sequencing
JP2003525476A (ja) プログラムの命令を実行するための装置及び方法
KR100334174B1 (ko) 데이타처리장치
US5835746A (en) Method and apparatus for fetching and issuing dual-word or multiple instructions in a data processing system
KR100417482B1 (ko) 데이터 처리 장치
JPH09237184A (ja) 命令実行方法および命令実行装置
WO1982004148A1 (en) Digital computer for executing instructions in three time-multiplexed portions
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
JP2916605B2 (ja) コンピュータ用プロセツサ
US5828861A (en) System and method for reducing the critical path in memory control unit and input/output control unit operations
JP2861234B2 (ja) 命令処理装置
Robbins et al. The control section
JPH02161525A (ja) 演算処理装置