JPH0776924B2 - ディジタルコンピュータシステム - Google Patents

ディジタルコンピュータシステム

Info

Publication number
JPH0776924B2
JPH0776924B2 JP3096094A JP9609491A JPH0776924B2 JP H0776924 B2 JPH0776924 B2 JP H0776924B2 JP 3096094 A JP3096094 A JP 3096094A JP 9609491 A JP9609491 A JP 9609491A JP H0776924 B2 JPH0776924 B2 JP H0776924B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
parallel
tag
unit
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
JP3096094A
Other languages
English (en)
Other versions
JPH04230528A (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 JPH04230528A publication Critical patent/JPH04230528A/ja
Publication of JPH0776924B2 publication Critical patent/JPH0776924B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタルコンピュータ
およびディジタルデータプロセッサに係り、特に2つ以
上の命令を並列処理可能なディジタルコンピュータおよ
びデータプロセッサに関する。
【0002】
【従来の技術】命令を一度に1つずつ逐次実行する従来
のコンピュータの性能は、これまでに主として回路技術
の改良により、大きく改善されてきている。このような
ワン・アット・ア・タイム命令実行コンピュータは“ス
カラ”コンピュータまたはプロセッサと呼ばれることが
多い。回路技術がその限界に達するにつれ、コンピュー
タ設計者は性能を大きく改良する他の手段を検討しなけ
ればならない。
【0003】最近、単一の命令ストリームから1つ以上
の命令を一度に実行することにより性能の改良を試みる
いわゆる“スーパースカラ”コンピュータが提案されて
いる。このようなスーパースカラコンピュータでは、所
定数の命令が並列に実行されてよいか否かを命令実行時
間に判定するのが普通である。このような判定は、命令
のオペレーションコードに、また隣接する命令間に存在
するデータ依存性に基づいてなされる。オペレーション
コードは、命令の各々が利用する特定のハードウェア要
素を決定し、一般には2つ以上の命令が同時に同じハー
ドウェア要素を利用することはできず、また前回の命令
の結果に依存する命令(データ依存性)を実行すること
はできない。このようなハードウェアおよびデータの依
存性は、幾つかの命令の組合わせの並列的な実施を不可
能にするものである。この場合、命令は非並列的にそれ
ら自身により実行される。したがって、当然のことなが
ら、スーパースカラコンピュータの性能は低下する。
【0004】
【発明が解決しようとする課題】上記の提案されたスー
パースカラコンピュータの性能はある程度改良されてい
るが、また小形化が望まれるという欠点も有している。
ある場合には、どの命令が並列に実行できるかを命令実
行時間に判定するには、わずかではあるが認め得る時間
量を必要とし、この時間量は、これを他の正常なマシン
演算に重ねて簡単にマスクできないものである。このよ
うな欠点は、命令セットのアーキテクチュアが複雑にな
るにつれさらに顕著になる。また、上記の判定は、同じ
命令が第2のまたは他の時点で実行されるごとに再度全
体にわたって繰り返されなければならないという他の問
題点もある。
【0005】したがって、本発明の目的は上記従来の問
題点を解消し、2つ以上の命令を並列処理可能なディジ
タルコンピュータおよびデータプロセッサを提供するこ
とにある。
【0006】
【課題を解決するための手段】本発明に係るスカラブル
複合命令セットマシン(Scalable Compo
und Instruction Set Machi
ne(SCISM))の寄与の1つは、並列実行判定を
実行時間に行わないことにある。判定は、全命令処理プ
ロセスの初期の時点で行う。例えば、命令バッファまた
は命令スタックを有するマシンの命令バッファの前方で
行う。他の例では、キャッシュ・ユニットを通して命令
を流すマシンの命令キャッシュの前方で行う。
【0007】SCISMマシンの他の寄与は、並列実行
判定の結果を記録し、このような結果が、同じ命令が第
2または他の時刻に使用される場合に使用できるように
することにある。
【0008】本発明の一実施例においては、並列実行判
定の記録には、命令ストリームの個々の命令に付加また
は挿入されるタグを生成することにより実現される。こ
れらのタグは、命令が並列に実行できるか否か、または
これらの命令が一度に1つ実行される必要があるか否か
を示すものである。この命令タグ付加プロセスは、ここ
では「複合化(compounding)」と呼ばれ
る。このプロセスは、実際には、並列処理のために、2
つ以上の個々の命令を単一の複合命令に結合するために
用いられる。
【0009】本発明の特に好適な実施例においては、コ
ンピュータは、その上位記憶ユニットからその命令実行
ユニットへの途中でマシン命令を一時記憶するキャッシ
ュ記憶機構を備えるものであり、複合化すなわち命令タ
グ付加プロセスは、命令および複合化タグの両者がキャ
ッシュ記憶機構に記憶されるように、上位記憶ユニット
とキャッシュ記憶機構との途中で実施される。既知のよ
うに、適切に設計されたキャッシュ記憶機構の、それ自
身での、およびそれ自身の使用により、コンピュータの
全体にわたる性能が改良される。さらに、複合化タグの
キャッシュ記憶機構への記憶により、関係する命令がキ
ャッシュ記憶機構に残っている限りはタグを再び反復使
用できるようになる。既知のように、命令は一度以上使
用されるのに十分な長い時間にわたってキャッシュに記
憶されることが多い。
【0010】本発明を、その他の利点と特徴と共に十分
理解するために、添付図面によりなされる以下の説明が
与えられ、本発明の範囲は添付した特許請求の範囲に示
される。
【0011】
【実施例】図1の実施例の説明 図1は、本発明により構成されたディジタルコンピュー
タシステムまたはディジタルデータ処理システムの要部
の代表的な実施例を示すブロック図である。このコンピ
ュータシステムは、2つ以上の命令を並列に処理するこ
とができる。また、このコンピュータシステムは、処理
されるべき命令とデータを記憶する第1記憶機構を備え
ている。この記憶機構は上位記憶装置10として示して
ある。この記憶装置10は大容量低速度記憶機構であ
り、例えば大容量システムの記憶ユニットまたは包括的
・階層構造記憶システムの下位部分などが用いられる。
【0012】図1のコンピュータシステムは、さらに上
位記憶装置10から命令を受けると共に、これらの命令
のどれが互いに並列に処理されてよいかを示すタグフィ
ールドをこれらの命令に関係させる命令複合化機構を備
えている。この命令複合化機構は、命令複合化ユニット
11により代表される。この命令複合化ユニット11
は、入力命令を解析し、どの命令が並列に処理されてよ
いかを決定するものである。さらに、命令複合化ユニッ
ト11は、これらの解析された命令に対して、どの命令
が互いに並列に処理されてよいか、またどの命令が互い
に並列に処理されてはいけないかを示すタグ情報または
タグフィールドを発生する。
【0013】図1のシステムは、さらに、命令複合化機
構11に結合されて上記解析された命令およびそれらに
係るタグフィールドを受けると共に記憶する第2記憶機
構を備えている。この第2のまたは他の記憶機構は、複
合命令キャッシュ12により代表される。このキャッシ
ュ12は、低速記憶機構10をアクセスしなければなら
ない頻度を減らすことによりコンピュータシステムの性
能率を改良するために一般に使用される種類の小容量高
速度記憶機構である。
【0014】図1のシステムは、さらに、互いに並列動
作する複数の機能命令処理ユニットを備えている。これ
らの機能命令処理ユニットは、機能ユニット13,1
4,15・・・により代表される。これらの機能ユニッ
ト13〜15は、同時的に互いに並列に動作し、またそ
れぞれのユニットは、それ自身で1種類以上のマシンレ
ベル命令を処理することができる。使用できる機能ユニ
ットとしては、例えば、汎用算術論理ユニット(ari
thmetic and logicunit:AL
U),アドレス発生形ALU,データ依存性解消AL
U,分岐命令処理ユニット,データシフトユニット,浮
動小数点処理ユニットなどがある。或るコンピュータシ
ステムは、これらの種類の機能ユニットを2台以上備え
ることができる。例えば、或るコンピュータシステム
は、2台以上の汎用ALUを備えることができる。さら
に、或るコンピュータシステムは、これらの異なる種類
の機能ユニットの各々および全てを備える必要はない。
機能ユニットの特定の構成は、考慮される特定のコンピ
ュータシステムの特性に依存する。
【0015】図1のコンピュータシステムは、複合命令
キャッシュ12に結合されて、それに記憶された隣接命
令を、機能命令処理ユニット13〜15の異なるものに
上記命令が並列処理されてよいことを命令タグフィール
ドが示したとき供給する、命令フェッチ・イシュ(fe
tch/issue)機構を備えている。この機構は、
フェッチ・イシュ・ユニット16により代表される。こ
の命令フェッチ・イシュ・ユニット16は、キャッシュ
12から命令を取り出し、それらのタグフィールドおよ
びオペレーションコードフィールドを検討し、さらにこ
のような検討に基づいて上記命令を機能ユニット13〜
15の適当なものに送出する。
【0016】所望の命令が複合命令キャッシュ12にあ
るときは、適切なアドレスがキャッシュ12に送出さ
れ、それから所望の命令を取り出す。これは「キャッシ
ュ・ヒット」と呼ばれる。要求された命令がキャッシュ
12にないときは、この命令は上位記憶装置10から取
り出され、キャッシュ12に与えられなければならな
い。これは「キャッシュ・ミス]と呼ばれる。このミス
が生じると、要求された命令のアドレスは上位記憶装置
10に送出される。これに応じて上位記憶装置10は、
要求された命令を含む一連の命令の転送または読出しを
開始する。これらの命令は、命令複合化ユニット11の
入力に転送され、そこでこれらの命令は解析され、各々
の命令に対する適切なタグフィールドが生成される。そ
の後、タグ付き命令は複合命令キャッシュ12に供給,
記憶され、必要に応じて機能ユニット13,14,15
によるその後の使用に供される。
【0017】命令複合化ユニット11で行われる命令解
析には、ある比較的少量の時間が要求される。しかし、
この命令複合化解析は、命令キャッシュ・ミスが生じた
ときにのみ行われ、したがって比較的まれに行われる。
【0018】図2は、複合化されたまたはタグ付き命令
が図1の命令複合化ユニット11の出力に現れたときの
それらの命令の流れの一部を示す図である。図からわか
るように、各々の命令(INSTR)は、命令複合化ユ
ニット11によりそれに付加されたタグフィールド(T
AG)を有している。図2に示したようなタグ付き命令
は、複合命令キャッシュ12に記憶される。キャッシュ
12に記憶されたタグ付き命令は、必要に応じて、命令
フェッチ・イシュ・ユニット16により取り出される。
タグ付き命令がフェッチ・イシュ・ユニット16により
受け取られると、それらのタグフィールドは、それらが
並列に処理されてよいか否かを決定するために検討さ
れ、またそれらのオペレーションコードフィールドは利
用できる機能ユニットのどれがそれらの処理に最も適し
ているかを決定するために検討される。タグフィールド
が2つ以上の命令が並列処理に適していることを示した
ときは、それらの命令はそれらのオペレーションコード
フィールドのコーディングに従って機能ユニットの適切
なものに送出される。次に、このような命令はそれぞれ
の機能ユニットにより互いに同時に処理される。
【0019】並列処理に適していない命令が生じたとき
は、その命令はそのオペレーションコードにより決定さ
れる適切な機能ユニットに送られ、選択された機能ユニ
ットにより単独でそれ自身により処理される。
【0020】複数の命令が常に並列に処理されている最
も完全な場合には、コンピュータシステムの命令実行速
度は、命令が一度に1つ実行される場合のN倍になる。
ただし、Nは並列に処理されているグループの命令数で
ある。
【0021】図3の命令複合化ユニットの説明 図3は、本発明に従って構成された命令複合化ユニット
の代表的な実施例の内部構成をさらに詳細に示すブロッ
ク図である。この命令複合化ユニットは、図1の命令複
合化ユニット11として使用するのに適したものであ
る。図3の命令複合化ユニット20は一度に最大2つの
命令が並列に処理され得るように設計されている。この
場合は、1ビット・タグフィールドが使用される。タグ
ビット値の“1”は、命令が“第1”の命令であること
を意味する。タグビット値“0”は、命令が“第2”の
命令であり、先行する第1命令と並列に実行されること
を意味する。1のタグビット値を有する命令は、次の命
令のタグビット値に依存して、それ自身により実行され
るかまたは次の命令と同時にかつ並列に実行される。
【0022】1のタグビット値を有する命令と、0のタ
グビット値を有する次の命令との各々の対は、並列実行
のために複合命令を形成し、即ち、このような対の命令
は互いに並列に処理される。連続する2つの命令に対す
るタグビットがそれぞれ1の値を持つときは、これらの
命令の第1のものはそれ自身により非並列的に実行され
る。最悪の場合には、シーケンスの全ての命令は1のタ
グビット値を有することになる。このような最悪の場合
には、命令の全ては一度に1つずつ非並列的に実行され
る。
【0023】図3の命令複合化ユニット20は、上位記
憶ユニット10から複数の逐次命令を受けるための複数
命令レジスタ21を備えている。命令複合化ユニット2
0はさらに、複数の規則に基づく命令解析機構を備えて
いる。各々のこのような命令解析機構は、命令レジスタ
21の異なる対の並列命令を解析し、さらにその対の2
つの命令が並列に処理されてよいか否かを示す複合可能
信号を発生する。図3には、複数の複合解析ユニット2
2〜25が示してある。これらの複合解析ユニット22
〜25の各々は、上述した命令解析機構を2つ備えてい
る。従って、これらの解析ユニット22〜25の各々
は、2つの複合可能信号を発生する。例えば、第1の複
合解析ユニット22は、命令0および1が並列に処理さ
れてよいか否かを示す第1の複合可能信号M01を発生
する。この複合解析ユニットはさらに、命令1および2
が並列に処理されてよいか否かを示す第2の複合可能信
号M12を発生する。
【0024】同様にして、第2の複合解析ユニット23
は、命令2および3が並列に処理されてよいか否かを示
す第1の複合可能信号M23と、命令3および4が並列
に処理されてよいか否かを示す第2の複合可能信号M3
4とを発生する。第3の複合解析ユニット24は、命令
4および5が並列に処理されてよいか否かを示す第1の
複合可能信号M45と、命令5および6が並列に処理さ
れてよいか否かを示す第2の複合可能信号M56とを発
生する。第4の複合解析ユニット25は、命令6および
7が並列に処理されてよいか否かを示す第1の複合可能
信号M67と、命令7および8が並列に処理されてよい
か否かを示す第2の複合可能信号M78とを発生する。
【0025】命令複合化ユニット20はさらに、解析ユ
ニット22〜25の出力に現れる複合可能信号に応じて
命令レジスタ21の異なる命令に対して個別のタグフィ
ールドを発生するタグ発生機構26を備えている。これ
らのタグフィールドT0,T1,T2などは命令自身と
同様にタグ付き命令レジスタ27に供給され、命令は入
力命令レジスタ21から得られる。このようにして、複
合化ユニット出力レジスタ27には、命令0に対するタ
グフィールドT0および命令1に対するタグフィールド
T1などが与えられる。
【0026】本実施例においては、各々のタグフィール
ドT0,T1,T2・・・は、単一2進ビットからな
る。“1”のタグビット値は、これが付加される直ぐ次
の命令が“第1”命令であることを示す。“0”のタグ
ビット値は、直ぐ次の命令が“第2”命令であることを
示す。0のタグビット値を有する命令が続く、1のタグ
ビット値を有する命令は、これらの2つの命令が互いに
並列に実行されることを示している。複合化ユニット出
力レジスタ27のタグ付き命令は、図1の複合命令キャ
ッシュ12の入力に供給され、またこのような複合命令
キャッシュ12に記憶される。
【0027】図3に示したレジスタハードウェアの量
は、複合命令キャッシュに直接複合命令を記憶すること
により低減させることができることに注目するべきであ
る。
【0028】図4には、図3の複合解析ユニット22の
内部構成がさらに詳細に示してある。その他の複合解析
ユニット23〜25も同様に構成されている。図4に示
すように、複合解析ユニット22は、命令0のオペレー
ションコードおよび命令1のオペレーションコードを検
討し、さらにこれらの2つのオペレーションコードが並
列実行のためにコンパティブルか否かを決定する命令コ
ンパティビリティ論理30を備えている。この論理30
は、オペレーションコードのどの対が並列実行のために
コンパティブルかを選択する所定の規則に従って構成さ
れる。特に、この論理30は、問題のコンピュータシス
テムに使用される特定のハードウェア構成において、ど
の形の命令が並列実行のためにコンパティブルかを定め
る規則を実施する論理回路を備えている。命令0および
1に対するオペレーションコードがコンパティブルのと
きは、論理30は2進1レベル信号を発生する。コンパ
ティブルでないときは、論理30はその出力ラインに2
進0値を発生する。
【0029】複合解析ユニット22はさらに、命令1お
よび2の命令コードを検討し、これらの命令が並列実行
に対してコンパティブルか否かを決定する第2の命令コ
ンパティビリティ論理31を備えている。論理31は、
命令1および2の場合に対して、オペレーションコード
のどの対が並列実行のためにコンパティブルかを選択す
る、論理30に対して使用されたものと同じ、所定の規
則に従って論理30と同様に構成される。従って、論理
31は、どの形の命令が並列実行に対してコンパティブ
ルかを定める規則を実施する論理回路を備えており、こ
の規則は論理30に使用されるものと同じである。命令
1および2に対するオペレーションコードがコンパティ
ブルのときは、論理31は2進1レベル出力が発生す
る。そうでないときは、論理31は2進0レベル出力を
発生する。
【0030】複合解析ユニット22は、命令0および1
のR1およびR2フィールドにより示された汎用レジス
タの使用時の対立を検出する第1のレジスタ依存性論理
32を備えている。これらの汎用レジスタについては、
後に詳細に説明する。特に、依存性論理32は、第2命
令(命令1)が処理命令(命令0)の特性により得られ
る結果を使用するのに必要なデータ依存性状態の発生を
検出するように構成されるとよい。この場合、第2命令
は依存性解消ハードウェアにより実行され、従って第1
命令と並列に実行され得るか、または第2命令の実行は
先行する命令の実行の完了を待機しなければならず、従
って先行する命令と並列に実行され得ないのいずれかで
ある。(この種の幾つかのデータ依存性を解消する方法
については後に説明する。)命令0および1の並列実行
を阻止するレジスタ依存性が存在しないときは、論理3
2の出力ラインは1の2進値が与えられる。
【0031】複合解析ユニット22は更に、命令1およ
び2のR1およびR2フィールドにより示される汎用レ
ジスタの使用時の対立を検出する第2のレジスタ依存性
論理33を備えている。この論理33は既に説明した論
理32と同じ構成であり、レジスタ依存性が存在しない
かまたはデータ依存性解消ハードウェアによりレジスタ
依存性が解消され得るときは2進1レベル出力を発生
し、さもなければ2進0レベル出力を発生する。
【0032】命令コンパティビリティ論理30およびレ
ジスタ依存性論理32からの出力ラインはAND回路3
4の2つの入力に接続される。AND回路34の出力ラ
インは、問題の2つのオペレーションコードがコンパテ
ィブルであり、レジスタ依存性が存在しないときは2進
1の値を有する。このAND回路34の出力ライン上の
2進1値は、問題の2つの命令がコンパティブルであ
り、即ち並列に実行可能であることを示している。一
方、AND回路34の出力ラインが0の2進値を持つと
きは、2つの命令は複合可能ではない。このようにし
て、AND回路34の出力ライン上には、命令0と1が
並列処理されてよいか否かを示す第1複合可能信号M0
1が発生される。このM01信号は、タグ発生器26に
供給される。
【0033】第2のコンパティビリティ論理31および
第2の依存性論理33からの出力ラインは、AND回路
35の2つの入力に接続される。AND回路35は、問
題の2つのオペレーションコード(命令1および2に対
するオペレーションコード)がコンパティブルであり、
また命令1および2に対するレジスタ依存性あるいはデ
ータ依存性解消ハードウェアにより実行できるレジスタ
依存性が存在しないときは、その出力ライン上に1の2
進値を有する第2複合可能信号M12を発生する。さも
なければ、AND回路35の出力ラインは、0の2進値
を有する。AND回路35の出力ラインは、タグ発生器
26の第2入力に接続されている。
【0034】図3に示したその他の複合解析ユニット2
3〜25も同様に、第1複合解析ユニット22に対して
図4に示したものと同様の内部構成をなしている。
【0035】ここで図5を参照すると、複合解析ユニッ
ト22および最初の3つのタグTAG0,TAG1,T
AG2の発生に使用されるタグ発生器26の要部の実施
に使用できる論理回路例が示してある。この図5の例に
対しては、カテゴリAおよびカテゴリBの2つのカテゴ
リが存在すると仮定される。これらの命令カテゴリを複
合化する規則は次のように仮定される。
【0036】(1)Aは常にAと複合できる。 (2)Aは決してBと複合できない。 (3)Bは決してBと複合できない。 (4)Bは常にAと複合できる。 (5)規則(4)は規則(1)に対して優先する。 ただし、これらの規則は命令の発生順序に関係する。
【0037】さらに、これらの規則は、それらが観測さ
れるときレジスタ依存性の問題は存在しないということ
が仮定される。その理由は、これらの規則が、何らかの
インタロックがある場合にこのようなインタロックは常
にデータ依存性解消ハードウェアにより実行可能である
ことを暗に示していることによる。即ち、図5の例に対
しては図4のレジスタ依存性論理32,33は必要とさ
れないことが仮定される。このような場合は、AND回
路34,35も必要とされず、論理30の出力はM01
信号になり、論理31の出力はM12信号になる。
【0038】これらの仮定に対して、図5は図4の命令
コンパティビリティ論理30および命令コンパティビリ
ティ論理31に使用できる内部論理回路を示した図であ
る。図5に示したように、命令コンパティビリティ論理
30は、デコーダ40,41、AND回路42,43、
およびOR回路44を備えている。第2命令コンパティ
ビリティ論理31は、デコーダ41,45、AND回路
46,47、およびOR回路48を備えている。中間の
デコーダ41は、両論理30および31により共有され
る。
【0039】第1論理30は、命令0と1のオペレーシ
ョンコードOP0およびOP1を検討して、それらの並
列実行動作に対するコンパティビリティを決定する。こ
れは上記の規則(1)〜(4)に従ってなされる。デコ
ーダ40は第1命令のオペレーションコードを参照し、
それがカテゴリAのオペレーションコードのときは、デ
コーダ40のA出力ラインは1レベルにセットされる。
もしOP0がカテゴリBのオペレーションコードのとき
は、デコーダ40のB出力ラインは1レベルにセットさ
れる。もしOP0がカテゴリAにもカテゴリBにも属さ
ないときは、デコーダ40の両出力は2進0レベルにあ
る。第2デコーダ41は、第2オペレーションコードO
P1に対して同様の種類のデコードを行う。
【0040】AND回路42は、規則(1)を実行す
る。OP0がカテゴリAオペレーションコードであり、
またOP1もカテゴリAオペレーションコードのとき
は、AND回路42は1レベル出力を発生する。さもな
ければ、AND回路42の出力は2進0レベルである。
AND回路43は、規則(4)を実行する。第1オペレ
ーションコードがカテゴリBオペレーションコードであ
り、第2オペレーションコードがカテゴリAオペレーシ
ョンコードであるときは、AND回路43は1レベル出
力を発生する。さもなければ、AND回路43は0レベ
ル出力を発生する。AND回路42,AND回路43の
いずれかが1レベル出力を発生するときは、これはOR
回路44の出力を1レベルに駆動し、その場合は複合可
能信号M01は1の値を有することになる。この1の値
は、第1および第2命令(命令0と1)が並列実行動作
に対してコンパティブルであることを示している。
【0041】オペレーションコード・カテゴリの他の組
合わせがデコーダ40および41により検出されたとき
は、AND回路42およびAND回路43の出力は0レ
ベルのままであり、複合可能信号M01は0の非複合可
能表示値を有する。従って、規則(2)および(3)に
より示された組合わせの発生は、AND回路42および
43を満足せず、複合可能信号M01は0レベルのまま
である。カテゴリAおよびBの他に、オペレーションコ
ードの他のカテゴリが存在するときは、命令ストリーム
内でのそれらの発生はデコーダ40および41を活性化
することはない。従って、それらは同様に0のM01複
合可能信号をもたらす。
【0042】第2命令コンパティビリティ論理31は、
第2および第3命令(命令1と2)に対して同じ種類の
オペレーションコード解析を実施する。第2オペレーシ
ョンコードOP1がカテゴリAのオペレーションコード
であり、第3オペレーションコードOP2がカテゴリA
オペレーションコードのときは、規則(1)によりAN
D回路46は1レベル出力を発生し、第2複合可能信号
M12は複合可能表示2進1レベルに駆動される。一
方、OP1がカテゴリBオペレーションコードであり、
OP2がカテゴリAオペレーションコードのときは、規
則(4)によりAND回路47が活性化されて第2複合
可能信号M12に対して2進1レベルを発生する。規則
(1)および(4)に示されたもの以外のオペレーショ
ンコードの組合わせに対しては、M12信号は0の値を
有する。
【0043】M01およびM02複合可能信号は、タグ
発生器26に供給される。図5は、タグ発生器26で使
用されてM01およびM02複合可能信号に応答し、T
AG0,1および2に対して所望のタグビット値を発生
する論理回路を示したものである。図6の表は、TAG
0,1および2に対してタグ発生器26により実施され
る論理を示している。1のタグビット値は、関連する命
令が並列実行動作に対して“第1”命令であることを示
している。0のタグビット値は、関連する命令が並列実
行動作に対して“第2”命令であることを示している。
複合され、並列に実行される唯一の命令対は、対の第1
命令が1のタグビット値を持ち、対の第2命令が0のタ
グビット値を持つものである。1のタグビット値を持つ
他の命令を伴う1のタグビット値を持つ命令は、それ自
身により単独で次の命令と並列ではなく実行される。
【0044】図6の第1行の場合、全ての3つのタグビ
ットは1の値を有している。これは、命令0と1の各々
が単独で非並列に実行されることを意味する。図6の第
2行に対しては、TAG0が要求された値1を持ち、T
AG1が要求された値0を持つので、命令0と1は並列
に実行される。図6の第3行の場合、命令0は単独で実
行されるが、命令1と2は互いに並列に実行される。第
4行の場合は、命令0と1は互いに並列に実行される。
【0045】1の2進値をTAG2が持つ場合は、その
関連する命令2の状態はTAG3の2進値に依存するこ
とになる。TAG3が0の2進値を持つときは、命令2
と3は並列に実行することができる。一方、TAG3が
1の2進値を持つときは、命令2は単独,非並列的に実
行される。タグ発生器26に対して実施される論理は、
0の2進値を持つ2つの連続するタグビットの発生を許
さない。
【0046】図6を検討することにより、図5に示した
タグ発生器26の要部により実施される必要のある論理
が明らかになる。図6に示したように、TAG0は常に
1の2進値を有している。これは、TAG0の出力ライ
ンを構成するタグ発生器出力ライン50に1の一定2進
値を与えることにより実現される。図6を検討すること
により、さらに、TAG1のビット値は、常にM01複
合可能信号のビット値の逆であることが明らかになる。
この結果は、入力をM01信号ラインに接続したNOT
回路52の出力にTAG1に対する出力ライン51を接
続することにより実現される。
【0047】TAG2の出力ライン53の2進レベル
は、OR回路54およびNOT回路55により決定され
る。複合可能信号M01が1の値を持つときは、TAG
2は1の値を持つ。これは図6の第2および第4行のT
AG2の値を与える。OR回路54の他の入力は、NO
T回路55によりM12信号ラインに接続される。M1
2が0の2進値を持つときは、この値はNOT回路55
により反転されてOR回路54の第2入力に2進1値を
供給する。これにより、TAG2出力ライン53は2進
1値を持つことになる。これは図6の列1に対するTA
G2の値を与えることになる。行3に対しては、TAG
2は0の値を持たなくてはならない。これは、この場合
はM01が0の値を持ち、M12がNOT回路55によ
り反転されてOR回路54の第2入力に0を発生する1
の値を持つようになることにより生じる。
【0048】図6の論理で暗に含まれているのは、M0
1およびM12の各々が1の2進値を有する行4の場合
に対する順位付けである。この行4の場合はBAAの命
令カテゴリシーケンスにより発生させることができる。
これは図6に示したように101のタグシーケンスによ
り、またはこれに代って110のタグシーケンスにより
実施することができる。本実施例においては、規則
(5)が用いられ、図6に示した101シーケンスが選
択される。即ち、BA対がAA対に対して優先される。
【0049】M01およびM12に対する1,1パター
ンもオペレーションコードシーケンスAAAにより発生
させることができる。この場合、図6の101タグシー
ケンスが再び選択される。これは、この101タグシー
ケンスがTAG2に対して1の値を与え、従って命令2
が命令3とコンパティブルであるとき命令2が命令3と
複合されることを潜在的に可能にするためにより好適で
ある。
【0050】図7の実施例の説明 図7を参照すると、本発明の複合化タグを用いてマシン
レベルコンピュータ命令の並列処理を与えるために、如
何にコンピュータシステムを構成することができるかの
詳細な例が示してある。図7で使用される命令複合化ユ
ニット20は図3に示された種類のものであると仮定さ
れ、従ってこのユニットは1ビットタグフィールドを各
々の命令に付加するものである。これらのタグフィール
ドが用いられて、どの命令対が並列に処理されてよいか
を識別する。これらのタグ付き命令は複合命令キャッシ
ュ12に供給,記憶される。フェッチ・イシュ制御ユニ
ット60は、必要に応じて、キャッシュ12からタグ付
き命令を取り出すと共に、複数の機能命令処理ユニット
61,62,63および64の適切な1つ以上のものに
よりそれらの処理に対して配置する。フェッチ・イシュ
・ユニット60は取り出された命令のタグフィールドお
よびオペレーションコードフィールドを検討する。タグ
フィールドが、2つの連続する命令が並列に処理されて
よいことを示すときは、フェッチ・イシュ・ユニット6
0はそれらのオペレーションコードにより決定されるよ
うに機能ユニット61〜64の適切なものにそれらを割
り当て、またそれらの命令は選択された機能ユニットに
より並列に処理される。タグフィールドが、特定の命令
が単独,非並列的に処理されるべきことを示すときは、
フェッチ・イシュ・ユニット60はそのオペレーション
コードにより決定されるように特定の機能ユニットに命
令を割り当て、また命令はそれ自身により処理または実
行される。
【0051】第1機能ユニット61は、分岐形命令を処
理する分岐命令処理ユニットである。第2機能ユニット
62は、3入力アドレス発生算術論理ユニット(AL
U)であり、これはオペランドを記憶装置にまたは記憶
装置から転送する命令に対する記憶アドレスを計算する
ために使用される。第3機能ユニット63は、算術論理
形演算を行うために使用される汎用算術論理ユニット
(ALU)である。本例における第4機能ユニット64
は、データ依存性解消ALUである。この依存性解消A
LU64は、単一マシンサイクルで2つの算術論理演算
を行うことができる3入力ALUである。
【0052】図7のコンピュータシステムの実施例はさ
らに、マシンレベル命令の幾つかを実行する際に使用さ
れる1組の汎用レジスタ65を備えている。通常はこれ
らの汎用レジスタ65は、データオペランドおよびアド
レスオペランドを一時記憶するために使用され、または
カウンタとして、またはその他のデータ処理のために使
用される。通常のコンピュータシステムにおいては、1
6個のこのような汎用レジスタが設けられている。本実
施例においては、汎用レジスタ65は、2つ以上のレジ
スタが同時にアクセスされるマルチポート形のものであ
るとする。
【0053】図7のコンピュータシステムはさらに、上
位記憶ユニット10から得られるデータオペランドを記
憶する高速データキャッシュ記憶機構66を備えてい
る。キャッシュ66のデータはまた、上位記憶ユニット
10に逆転送できる。データキャッシュ66は既知のも
のであり、また上位記憶装置10に対するその動作は既
知の方法で行われる。
【0054】図8は、図7のコンピュータシステムによ
り処理される複合化またはタグ付き命令シーケンスの一
例を示した図である。この図8の例は、次のようなシー
ケンスの次のような命令から構成される。即ち、Loa
d,Add,Compare,Branch on C
ondition,およびStoreである。これら
は、それぞれ、命令I1〜I5として識別される。図7
に示したマシンの構成のために、Load命令はそれ自
身により単独で処理される。AddおよびCompar
e命令は複合命令として扱われ、互いに並列に処理され
る。BranchおよびStore命令も複合命令とし
て扱われ、また互いに並列に処理される。
【0055】図9の表は、これらの図8の命令の各々に
対して他の情報を与えるものである。図9のR/M列
は、第1オペランドを収容する汎用レジスタ65の特定
のものを識別するために通常使用される各々の命令の第
1フィールドの内容を示している。例外は、R/Mフィ
ールドが条件コードマスクを含むBranch onC
ondition命令の場合である。図9のR/X列
は、通常は汎用レジスタ65の第2のものを識別するた
めに使用される各々の命令の第2フィールドの内容を示
している。このようなレジスタは第2オペランドを収容
することができ、あるいはアドレスインデックス値
(X)を収容することができる。図9のB列は、基本ア
ドレス値を収容する汎用レジスタ65の特定のものを識
別する各々の命令の第3の可能なフィールドの内容を示
したものである。このB列の0は、Bフィールドの欠如
またはBフィールドでの対応するアドレス要求の欠如を
示している。図9のDフィールドは、アドレス発生動作
のために使用されるときアドレス変位値を含む各々の命
令における他のフィールドの内容を示している。D列の
0はまた、問題の特定の命令における対応するフィール
ドの欠如を、あるいはまた0のアドレス変位値を示して
いる。
【0056】ここで図8のLoad命令の処理を考える
と、フェッチ・イシュ制御ユニット60は、このLoa
d命令および次のAdd命令に対するタグビットから、
Load命令がそれ自身により単独で処理されるべきこ
とを決定する。このLoad命令により行われる動作は
記憶装置、この場合はデータキャッシュ66からオペラ
ンドを取り出すことにより、またこのようなオペランド
をR2汎用レジスタに配置することにある。このオペラ
ンドが取り出される記憶アドレスは、レジスタXのイン
デックス値,レジスタBのベース値,および変位値Dを
加算することにより決定される。フェッチ・イシュ制御
ユニット60は、このアドレス発生動作をアドレス発生
ALU62に割り当てる。この場合、ALU62はレジ
スタXのアドレスインデックス値(本例では0値),汎
用レジスタR7に含まれるベースアドレス値,および命
令自身に含まれる変位アドレス値(本例では0の値)を
加算する。ALU62の出力に現れる得られた記憶アド
レスの計算値は、データキャッシュ66のアドレス入力
に供給されて所望のオペランドにアクセスする。このア
クセスされたオペランドは、レジスタセット65のR2
汎用レジスタにロードされる。
【0057】ここでAdd命令およびCompare命
令の処理について考えると、これらの命令はフェッチ・
イシュ制御ユニット60により取り出される。制御ユニ
ット60は、これらの2つの命令に対する複合化タグを
検討し、それらが並列に実行され得ることに注目する。
図9からわかるように、Compare命令は、R3汎
用レジスタが比較可能になる前にAdd命令が完了しな
ければならないので、Add命令に対して明瞭なデータ
依存性を有している。しかしながら、この依存性はデー
タ依存性解消ALU64により処理することができる。
従って、これらの2つの命令は、図7の構成においては
並列に処理可能である。特に、制御ユニット60は、A
dd命令の処理をALU63に割り当てると共に、依存
性解消ALU64にCompare命令の処理を割り当
てる。
【0058】ALU63は、R3汎用レジスタの内容に
R2汎用レジスタの内容を加算すると共に、R3汎用レ
ジスタに加算の結果を戻す。同時に、依存性解消ALU
64は、次の算術演算を実行する。
【0059】R3+R2−R4 この演算の結果に対する条件コードは、分岐ユニット6
1内に配置された条件コードレジスタに送出される。こ
のデータ依存性は、ALU64が実際にR3+R2の和
を計算し、次にこの和をR4と比較して条件コードを決
定することから、解消することになる。このようにし
て、ALU64はAdd命令を行っているALU63か
らの結果を待機する必要はなくなる。この特定の場合に
は、ALU64により計算されると共にALU64の出
力に現れる数値結果は、汎用レジスタ65に送出される
ことはない。この場合、ALU64は単に条件コードを
セットするだけである。
【0060】ここで、図8に示したBranch命令お
よびStore命令の処理について考えると、これらの
命令はフェッチ・イシュ制御ユニット60より複合命令
キャッシュ12から取り出される。制御ユニット60
は、これらの命令が互いに並列に処理されてよいこと
を、それらの命令に対するタグビットから決定する。さ
らに、制御ユニット60は、2つの命令のオペレーショ
ンコードから、Branch命令が分岐ユニット61に
より処理されるべきであり、Store命令がアドレス
発生ALU62により処理されるべきことを決定する。
この決定によれば、Branch命令のマスクフィール
ドMおよび変位フィールドDは、分岐ユニット61に供
給される。同様に、このBranch命令に対するレジ
スタXのアドレスインデックス値およびレジスタBのア
ドレスベース値は、汎用レジスタ65から得られ、分岐
ユニット61に供給される。本例においては、X値は0
であり、またベース値はR7汎用レジスタから得られ
る。変位値Dは12の16進値を有するが、マスクフィ
ールドMは8のマスク位置値を有する。
【0061】分岐ユニット61は潜在的な分岐アドレス
(0+R7+20)の計算を開始し、同時に前のCom
pare命令から得られた条件コードを条件コードマス
クMと比較する。もし条件コード値がマスクコード値と
同じのときは、必要な分岐条件が満足され、また分岐ユ
ニット61により計算された分岐アドレスは、その際、
制御ユニット60の命令カウンタにロードされる。この
命令カウンタは、複合命令キャッシュ12からの命令の
取り出しを制御する。一方、条件が満足されない(即
ち、前回の命令によりセットされた条件コードが8の値
を持たない)ときは、如何なる分岐も取られず、また如
何なる分岐アドレスも制御ユニット60の命令カウンタ
に供給されることはない。
【0062】分岐ユニット61がBranch命令に対
するその処理動作を実行してビジーであると同時に、ア
ドレス発生ALU62はStore命令に対するアドレ
ス計算(0+R7+0)を行ってビジーである。ALU
62により計算されたアドレスはデータキャッシュ66
に供給される。もし、分岐ユニット61による如何なる
分岐も取られないときは、Store命令が動作してR
3汎用レジスタのオペランドをデータキャッシュ66の
ALU62により計算されたアドレスに記憶する。一
方、分岐条件が満足され、分岐が取られるときは、R3
汎用レジスタの内容はデータキャッシュ66に記憶され
ることはない。
【0063】図8の命令シーケンスは単なる例示として
与えたものである。図7のコンピュータシステムの実施
例は、同様に各種の多くの命令シーケンスを処理するこ
とができる。しかし、図8の例は明らかに、どの対の命
令が互いに並列に処理されてよいかの決定に際しての複
合命令の有用性を示している。
【図面の簡単な説明】
【図1】本発明に従って構成されたディジタルコンピュ
ータシステムの要部の代表的な実施例を示すブロック図
である。
【図2】関係する複合化タグまたはタグフィールドを有
する長さの命令ストリームを示す説明図である。
【図3】図1のコンピュータシステムで使用できる命令
複合化ユニットの代表的な実施例の内部構成をさらに詳
細に説明するブロック図である。
【図4】図3の複合解析ユニットの各々に対する代表的
な内部構成を更に詳細に説明するブロック図である。
【図5】命令ストリームの始めの3つの命令に対して複
合化タグを発生する図3の複合解析ユニットおよびタグ
発生器要部の論理回路例の構成図である。
【図6】図5の論理回路例の動作を説明する際に使用さ
れる表である。
【図7】ディジタルコンピュータシステムの要部であ
り、複合命令が多重機能命令処理ユニットにより並列に
処理される方法を説明するために使用される代表的な実
施例を示すブロック図である。
【図8】図7のコンピュータシステムにより処理される
特定の命令シーケンスの例を示す説明図である。
【図9】図7のコンピュータシステムによる図8の命令
シーケンスの処理を説明するに際して使用される表であ
る。
【符号の説明】
10 上位記憶装置 11 命令複合化ユニット 12 複合命令キャッシュ 13,14,15 機能ユニット 16 命令フェッチ・イシュ・ユニット 22〜25 複合解析ユニット 26 タグ発生器 60 フェッチ・イシュ制御ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スタマティス・バシリアディス アメリカ合衆国 ニューヨーク州 ベスタ ル ベスタルロード 717 (56)参考文献 特開 平2−130635(JP,A) 特開 昭61−245239(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】2つ以上の命令を並列処理可能なディジタ
    ルコンピュータシステムにおいて、 処理されるべき命令を記憶するための大容量且つ低速度
    の記憶機構と、 関連するタグ情報を有する命令を記憶するための小容量
    且つ高速度のキャッシュ記憶機構と、 互いに並列に動作する複数の機能命令処理ユニットと、 前記大容量低速記憶機構と前記キャッシュ記憶機構の間
    に結合される命令複合化機構であって、 複数の連続する命令を前記大容量低速記憶機構から受信
    する複数命令レジスタと、 複数の規則ベース命令解析機構であって、各々が前記命
    令レジスタ内の個々の対の隣接命令を解析すると共に、
    前記機能命令処理ユニットにおいてどの種類の命令が並
    列実行に対してコンパティブルであるかを定める規則を
    実施し当該解析機構に対して前記対内の2つの命令が並
    列に処理されてよいか否かを示す複合可能信号を発生す
    る論理回路を有する複数の規則ベース命令解析機構と、 前記複合可能信号に応じて前記命令レジスタ内の個々の
    命令が互いに並列に処理されてよいかを示す前記命令の
    各々と関係づけられる複数の個別タグフィールドを発生
    するタグ情報発生機構と、 さらにこれらの命令および関係するタグ情報を前記キャ
    ッシュ記憶機構に供給してそれに記憶させる機構と を備えた命令複合化機構と、 前記キャッシュ記憶機構と前記機能命令処理ユニットの
    間に結合されて、前記タグフィールドが前記機能命令処
    理ユニットで前記命令が並列に処理されてよいことを示
    すとき、前記キャッシュ記憶機構に記憶された隣接する
    命令を個々の前記機能命令処理ユニットに供給する命令
    発生機構と、 を備えたディジタルコンピュータシステム。
JP3096094A 1990-05-10 1991-04-03 ディジタルコンピュータシステム Expired - Lifetime JPH0776924B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/522,291 US5214763A (en) 1990-05-10 1990-05-10 Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US522291 1990-05-10

Publications (2)

Publication Number Publication Date
JPH04230528A JPH04230528A (ja) 1992-08-19
JPH0776924B2 true JPH0776924B2 (ja) 1995-08-16

Family

ID=24080285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3096094A Expired - Lifetime JPH0776924B2 (ja) 1990-05-10 1991-04-03 ディジタルコンピュータシステム

Country Status (11)

Country Link
US (2) US5214763A (ja)
EP (1) EP0455966B1 (ja)
JP (1) JPH0776924B2 (ja)
AT (1) ATE131637T1 (ja)
BR (1) BR9101913A (ja)
CA (1) CA2040304C (ja)
CZ (1) CZ279899B6 (ja)
DE (1) DE69115344T2 (ja)
HU (1) HU214423B (ja)
PL (1) PL165491B1 (ja)
RU (1) RU2111531C1 (ja)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2810068B2 (ja) 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
DE69130138T2 (de) * 1990-06-29 1999-05-06 Digital Equipment Corp., Maynard, Mass. Sprungvorhersageeinheit für hochleistungsfähigen Prozessor
JP2535252B2 (ja) * 1990-10-17 1996-09-18 三菱電機株式会社 並列処理装置
JP2532300B2 (ja) * 1990-10-17 1996-09-11 三菱電機株式会社 並列処理装置における命令供給装置
DE69130757T2 (de) * 1990-11-30 1999-07-29 Kabushiki Kaisha Toshiba, Kawasaki, Kanagawa Ausführungsvorrichtung für bedingte Verzweigungsbefehle
GB9027853D0 (en) * 1990-12-21 1991-02-13 Inmos Ltd Multiple instruction issue
US5446850A (en) * 1991-01-15 1995-08-29 International Business Machines Corporation Cross-cache-line compounding algorithm for scism processors
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
JPH04367936A (ja) 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
US5787303A (en) * 1991-10-31 1998-07-28 Kabushiki Kaisha Toshiba Digital computer system capable of processing a plurality of instructions in parallel based on a VLIW architecture
DE69311330T2 (de) * 1992-03-31 1997-09-25 Seiko Epson Corp., Tokio/Tokyo Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (en) * 1992-05-01 1997-03-05 Seiko Epson Corporation A system and method for retiring instructions in a superscalar microprocessor
US5590348A (en) * 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5337415A (en) * 1992-12-04 1994-08-09 Hewlett-Packard Company Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency
US5651121A (en) * 1992-12-18 1997-07-22 Xerox Corporation Using mask operand obtained from composite operand to perform logic operation in parallel with composite operand
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
WO1994016384A1 (en) * 1992-12-31 1994-07-21 Seiko Epson Corporation System and method for register renaming
US5673409A (en) * 1993-03-31 1997-09-30 Vlsi Technology, Inc. Self-defining instruction size
US5752013A (en) * 1993-06-30 1998-05-12 Intel Corporation Method and apparatus for providing precise fault tracing in a superscalar microprocessor
DE69430018T2 (de) * 1993-11-05 2002-11-21 Intergraph Corp., Huntsville Befehlscachespeicher mit assoziativem Kreuzschienenschalter
EP0652510B1 (en) * 1993-11-05 2000-01-26 Intergraph Corporation Software scheduled superscalar computer architecture
US6360313B1 (en) 1993-11-05 2002-03-19 Intergraph Corporation Instruction cache associative crossbar switch
US5974534A (en) * 1994-02-14 1999-10-26 Hewlett-Packard Company Predecoding and steering mechanism for instructions in a superscalar processor
US5546599A (en) * 1994-03-31 1996-08-13 International Business Machines Corporation Processing system and method of operation for processing dispatched instructions with detected exceptions
TW353732B (en) * 1994-03-31 1999-03-01 Ibm Processing system and method of operation
TW260765B (ja) * 1994-03-31 1995-10-21 Ibm
US5559976A (en) * 1994-03-31 1996-09-24 International Business Machines Corporation System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions
US5644779A (en) * 1994-04-15 1997-07-01 International Business Machines Corporation Processing system and method of operation for concurrent processing of branch instructions with cancelling of processing of a branch instruction
JPH07281893A (ja) * 1994-04-15 1995-10-27 Internatl Business Mach Corp <Ibm> 処理システム及び演算方法
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5748950A (en) * 1994-09-20 1998-05-05 Intel Corporation Method and apparatus for providing an optimized compare-and-branch instruction
US5530932A (en) * 1994-12-23 1996-06-25 Intel Corporation Cache coherent multiprocessing computer system with reduced power operating features
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5742784A (en) * 1995-01-25 1998-04-21 International Business Machines Corporation System for reordering of instructions before placement into cache to reduce dispatch latency
US5758114A (en) * 1995-04-12 1998-05-26 Advanced Micro Devices, Inc. High speed instruction alignment unit for aligning variable byte-length instructions according to predecode information in a superscalar microprocessor
US5991869A (en) * 1995-04-12 1999-11-23 Advanced Micro Devices, Inc. Superscalar microprocessor including a high speed instruction alignment unit
US5828895A (en) * 1995-09-20 1998-10-27 International Business Machines Corporation Methods and system for predecoding instructions in a superscalar data processing system
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US5812812A (en) * 1996-11-04 1998-09-22 International Business Machines Corporation Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue
EP0855648A3 (en) * 1997-01-24 1999-12-22 Texas Instruments Inc. Data processing with parallel or sequential execution of program instructions
EP0924603A3 (en) * 1997-12-16 2001-02-07 Lucent Technologies Inc. Compiler controlled dynamic scheduling of program instructions
US6014513A (en) * 1997-12-23 2000-01-11 University Of Washington Discovering code and data in a binary executable program
US6314493B1 (en) 1998-02-03 2001-11-06 International Business Machines Corporation Branch history cache
US6237086B1 (en) * 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6345355B1 (en) 1998-05-29 2002-02-05 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for distributing commands to a plurality of circuit blocks
US6230260B1 (en) 1998-09-01 2001-05-08 International Business Machines Corporation Circuit arrangement and method of speculative instruction execution utilizing instruction history caching
US6418527B1 (en) * 1998-10-13 2002-07-09 Motorola, Inc. Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
US6862635B1 (en) 1998-11-13 2005-03-01 Cray Inc. Synchronization techniques in a multithreaded environment
US6480818B1 (en) 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6314471B1 (en) 1998-11-13 2001-11-06 Cray Inc. Techniques for an interrupt free operating system
US6952827B1 (en) 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US6430676B1 (en) * 1998-12-23 2002-08-06 Cray Inc. Method and system for calculating instruction lookahead
US6321379B1 (en) 1998-12-23 2001-11-20 Cray Inc. Method and system for target register allocation
US6230313B1 (en) 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US6353829B1 (en) 1998-12-23 2002-03-05 Cray Inc. Method and system for memory allocation in a multiprocessing environment
US6415433B1 (en) 1998-12-23 2002-07-02 Cray Inc. Method and system for identifying locations to move portions of the computer program
JP2001034474A (ja) * 1999-07-16 2001-02-09 Nec Corp データ処理装置及びデータ処理方法
JP3730455B2 (ja) * 1999-10-01 2006-01-05 富士通株式会社 情報処理装置及び情報処理方法
US6571265B1 (en) * 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
US6697939B1 (en) * 2000-01-06 2004-02-24 International Business Machines Corporation Basic block cache microprocessor with instruction history information
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6738794B2 (en) 2001-04-10 2004-05-18 Analog Devices, Inc. Parallel bit correlator
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US7177891B2 (en) * 2002-10-09 2007-02-13 Analog Devices, Inc. Compact Galois field multiplier engine
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US6766345B2 (en) 2001-11-30 2004-07-20 Analog Devices, Inc. Galois field multiplier system
US7269615B2 (en) * 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7895253B2 (en) 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US7082452B2 (en) * 2001-11-30 2006-07-25 Analog Devices, Inc. Galois field multiply/multiply-add/multiply accumulate
WO2003048947A1 (en) * 2001-11-30 2003-06-12 Analog Devices, Inc. Reconfigurable input galois field linear transformer system
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US20030126414A1 (en) * 2002-01-02 2003-07-03 Grochowski Edward T. Processing partial register writes in an out-of order processor
US6941446B2 (en) * 2002-01-21 2005-09-06 Analog Devices, Inc. Single instruction multiple data array cell
US6865661B2 (en) * 2002-01-21 2005-03-08 Analog Devices, Inc. Reconfigurable single instruction multiple data array
US7000090B2 (en) * 2002-01-21 2006-02-14 Analog Devices, Inc. Center focused single instruction multiple data (SIMD) array system
US20040128483A1 (en) * 2002-12-31 2004-07-01 Intel Corporation Fuser renamer apparatus, systems, and methods
US7421076B2 (en) * 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
US7512647B2 (en) * 2004-11-22 2009-03-31 Analog Devices, Inc. Condensed Galois field computing system
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US9436468B2 (en) * 2005-11-22 2016-09-06 Intel Corporation Technique for setting a vector mask
US7669039B2 (en) * 2007-01-24 2010-02-23 Qualcomm Incorporated Use of register renaming system for forwarding intermediate results between constituent instructions of an expanded instruction
TW200910195A (en) * 2007-08-20 2009-03-01 Sunplus Technology Co Ltd A device of using serial bits to determine instruction length at a multi-mode processor and the method thereof
US8898433B2 (en) * 2012-04-26 2014-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Efficient extraction of execution sets from fetch sets

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3293616A (en) * 1963-07-03 1966-12-20 Ibm Computer instruction sequencing and control system
US3470540A (en) * 1967-04-24 1969-09-30 Rca Corp Multiprocessing computer system with special instruction sequencing
US3611306A (en) * 1969-02-05 1971-10-05 Burroughs Corp Mechanism to control the sequencing of partially ordered instructions in a parallel data processing system
US3781814A (en) * 1971-10-07 1973-12-25 Raytheon Co Method and apparatus for applying source language statements to a digital computer
US4197589A (en) * 1977-12-05 1980-04-08 Texas Instruments Incorporated Operation sequencing mechanism
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
US4591972A (en) * 1982-11-15 1986-05-27 Data General Corp. Data processing system with unique microcode control
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
SU1241250A1 (ru) * 1984-01-04 1986-06-30 Предприятие П/Я А-3756 Адаптивна система обработки данных
US4873629A (en) * 1984-06-20 1989-10-10 Convex Computer Corporation Instruction processing unit for computer
JPS61245239A (ja) * 1985-04-23 1986-10-31 Toshiba Corp 論理回路方式
SU1295410A1 (ru) * 1985-07-08 1987-03-07 Институт кибернетики им.В.М.Глушкова Процессор дл мультипроцессорной системы
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4722050A (en) * 1986-03-27 1988-01-26 Hewlett-Packard Company Method and apparatus for facilitating instruction processing of a digital computer
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US4829422A (en) * 1987-04-02 1989-05-09 Stellar Computer, Inc. Control of multiple processors executing in parallel regions
US5050068A (en) * 1988-10-03 1991-09-17 Duke University Method and apparatus for using extracted program flow information to prepare for execution multiple instruction streams
JPH0769824B2 (ja) * 1988-11-11 1995-07-31 株式会社日立製作所 複数命令同時処理方式
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
CA2037708C (en) * 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
ATE146611T1 (de) * 1990-05-04 1997-01-15 Ibm Maschinenarchitektur für skalaren verbundbefehlssatz

Also Published As

Publication number Publication date
US5214763A (en) 1993-05-25
CS93391A3 (en) 1992-05-13
US5475853A (en) 1995-12-12
HU214423B (hu) 1998-03-30
DE69115344D1 (de) 1996-01-25
BR9101913A (pt) 1991-12-17
HUT57454A (en) 1991-11-28
EP0455966A3 (en) 1993-11-10
DE69115344T2 (de) 1996-06-20
JPH04230528A (ja) 1992-08-19
EP0455966B1 (en) 1995-12-13
EP0455966A2 (en) 1991-11-13
RU2111531C1 (ru) 1998-05-20
CA2040304C (en) 1995-04-11
CZ279899B6 (cs) 1995-08-16
HU911099D0 (en) 1991-10-28
ATE131637T1 (de) 1995-12-15
PL165491B1 (pl) 1994-12-30

Similar Documents

Publication Publication Date Title
JPH0776924B2 (ja) ディジタルコンピュータシステム
CA2038264C (en) In-memory preprocessor for a scalable compound instruction set machine processor
EP0496928B1 (en) Compounding preprocessor for cache
US6721874B1 (en) Method and system for dynamically shared completion table supporting multiple threads in a processing system
US6295600B1 (en) Thread switch on blocked load or store using instruction thread field
JP3182740B2 (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
CN1153139C (zh) 多线程处理器中性能监视的方法和系统
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US6178498B1 (en) Storing predicted branch target address in different storage according to importance hint in branch prediction instruction
US6718403B2 (en) Hierarchical selection of direct and indirect counting events in a performance monitor unit
KR100747128B1 (ko) 발행 후에 명령의 비투기적 성질을 발견하고 상기 명령을 재발행하는 스케줄러
EP0394624B1 (en) Multiple sequence processor system
US8108859B2 (en) Processor for controlling tread switching
KR100864890B1 (ko) 데이터 처리장치에서의 소스 레지스터 록킹
US6851033B2 (en) Memory access prediction in a data processing apparatus
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
JPH07253887A (ja) スーパースカラ・プロセッサにおける命令の前復号および操向機構
US20020116599A1 (en) Data processing apparatus
US6442675B1 (en) Compressed string and multiple generation engine
US6178497B1 (en) System and method for determining the relative age of instructions in a processor
WO2000008551A1 (en) Software directed target address cache and target address register
US20030088758A1 (en) Methods and systems for determining valid microprocessor instructions
CA2040637C (en) Compounding preprocessor for cache
Richardson The Fred VHDL Model
JPH05108348A (ja) 並列演算処理装置