JPH04506878A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH04506878A JPH04506878A JP3507600A JP50760091A JPH04506878A JP H04506878 A JPH04506878 A JP H04506878A JP 3507600 A JP3507600 A JP 3507600A JP 50760091 A JP50760091 A JP 50760091A JP H04506878 A JPH04506878 A JP H04506878A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- compound
- instructions
- execution
- branch
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
命令並列プロセッサ用の命令を準備するシステム及び複合命令の途中で分岐する
ための機構を有するシステム関連特許出願の相互参照
本出願は、優先権を請求し、1990年5月4日出願の米国特許出願第0715
19384号、1000年6月26日出願の米国特許出願第071543458
号、1991年1月15日出願の米国特許出願第07/642011号及び19
90年5月4日出願の米国特許出願第071519382号に対する米国一部継
続出願に当たる。
本米国特許出願は、下記の同時係属の米国特許出願に関連している。
(1)1990年5月4日出願の発明の名称がrscalableC:ompo
und In5truction Set Machine Architec
ture」で、発明者がスタマティス・バシリアデイス(Stamatis V
assiliadis)他の米国特許出願第071519384号(IBMドケ
ット番号EN9−90−020)
(2)1990年5月4日出願の発明の名称がrGeneralPurpose
Compounding Technique For In5tructi
on−LevelParallel ProcessorsJで、発明者がリチ
ャードーJ−アイケマイヤ−(Richard J、 Eickemeyer)
他の米国特許出願第071519382号(IBMドケット番号EN9−90−
01(3)1990年4月4日出願の発明の名称がrDataDependen
cy CCo11apsin Hardware ApparatusJで、発
明者がスタマティス・バシリアディス他の米国特許出願第071504910号
(IBMドケット番fEN9−90−014)(4)1990年5月10日出願
の発明の名称がrcompounding Preprocessor For
CacheJで、発明者がパーソロミュー拳プラナ−(Bartholome
w Blaner)他の米国特許出願第071522219号(I BMドケッ
ト番号EN9−(5)1990年6月265i出願の発明の名称がrAn In
−Memory Preprocessor for a 5calable
CompoundInstruction Set Machine Proc
essorJで、発明者がリチャード・アイケマイヤー他の米国特許出願第07
1543464号(IBMドケット番号EN9−90−018)(6)1990
年6月26日出願の発明の名称がr MemoryManagement fo
r 5calable Compound In5truction SetM
achines With In−Memory CompoundingJで
、発明者がリチャード・J・アイケマイヤー他の米国特許出願第0715434
58号(IBMドケット番号EN9−90−042)(7)1990年11月2
8日出願の発明の名称がroverflow Determination f
or Three−Operand ALUS in aScalable C
ompound In5truction Set MachineJで、発明
者がスタマティス・バシリアディス他の米国特許出願第07/619868号(
I BMドケット番号EN9−90−033)(8)1991年1月15日出願
の発明の名称がrcompounding Preprocessor for
CacheJで、発明者がツク−ソロミュー・ブレーナ(Bartholom
ew Blaner)他の米国特許出願第07/642011号(I BMドケ
ット番号EN9−これらの同時係属の特許出願及び本出願は、同一の譲受人、す
なわち米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシー
ンズ・コーポレーション(International Business M
achines Corporation)力(所有する。
これら同時係属の特許出願に記述された記載を、引用により本明細書に合体する
。
これら関連ケースを再検討すると、第1図及び第2図は1990年5月4日出願
の米国特許出願第071519384号に図示され、第3図は、1990年6月
26日出願の米国特許出願第071543458号に記載され、第4B図は、1
991年1月15日出願の米国特許出願第07/642011号に一般的に記載
され、第5図〜第7図は、1990年5月4日出願の米国特許出願第07151
9382号に図示されていることがわかる。
[技術分野]
本発明は、デジタル・コンピュータ及びデジタル・データ・プロセッサに関する
ものであり、特に、2つ以上の命令を並列に実行することができるデジタル・コ
ンピュータ及びデジタル・データ・プロセッサに関し、複合命令の途中で分岐す
るための機構を提供するものである。また、特に、このようにして提供されるシ
ステムは、組み合わせて複合命令にすることのできる命令セットを静的に決定し
、複合命令の途中での分岐を含む実行されるプログラムの命令に制御情報を付加
することができる。
[背景技術]
命令のシーケンスを受け取り、1回に1命令ずつそのシーケンスを実行する従来
型コンピュータは公知であり、「スカラ一式」コンピュータと称される。計算機
の新しい世代ごとに、従来型のスカラ一式計算機用の新しい加速機構を発見しな
ければならない。計算速度を加速するための最近の機構は、限られた非常に単純
な命令セットを使用して高速で実行される縮小命令セット(RISC)アーキテ
クチャに見られる。
またもう1つの加速機構は、このアーキテクチャにより複雑な命令を追加して、
1命令当たりの計算機能を増加させ、プログラムの命令数を減少させるものであ
ろう。これらのどちらかの手法を既存のスカラ一式コンピュータに適用するには
、計算機の命令セットとアーキテクチャを根本的に変更する必要がある。このよ
うな広範囲に及ぶ変更は、出費と停止時間を伴い、当初は計算機の信頼性と可用
性が低下する恐れがある。
最近、計算速度をさらに加速する「スーパースカラー」コンピュータが開発され
た。これらの計算機は、基本的にはスカラ一式計算機であるが、単一スカラー命
令のシーケンスを含む命令ストリームから複数の命令を同時に実行するよう適合
させることによって、その性能を向上させたものである。
通常、これらの計算機は、スカラー命令のシーケンス中の2つ以上の命令を並列
に実行できるか否かを、命令実行時に判断する。この判断は、その命令の命令コ
ードと、命令間に存在するデータ依存性に基づいて行われる。命令コードは、あ
る命令に必要な計算ハードウェアを示唆する。一般に、同一のハードウェア(ハ
ードウェア依存性)または同一のオペランド(データ依存性)を使用する2つ以
上の命令を同時に実行することはできない。このハードウェア依存性とデータ依
存性のため、ある種の命令の組合せの並列実行が妨げられる。
この場合、影響を受ける命令は、逐次実行される。そのため、もちろん、スーパ
ースカラー計算機の性能は低下する。
スーパースカラー計算機にはいくつかの短所があり、それらを最小限に抑えるこ
とが望ましい。どの命令が並列に実行できるかを命令実行時に判断する際に、一
定量の時間が消費される。この時間は、他の計算機動作とオーバーラツプさせる
ことによって容易に解消できない。この欠点は、命令セット・アーキテクチャの
複雑さが増加するにつれて顕著になる。
また、同一の命令を実行しようとするたびに並列実行の判断を繰り返さなければ
ならない。
既存のスカラ一式計算機の耐用寿命を伸ばすには、実行を加速するためのあらゆ
る手段が重要である。しかし、縮小命令セット・アーキテクチャ、複合命令セッ
ト・アーキテクチャ、またはスーパースカラー技法による加速は、既存のスカラ
ー計算機用としては、潜在的にコストが高すぎるか、不利益が多すぎる。
このような計算機の実行速度は、命令セットの変更や、計算機アーキテクチャの
変更や、命令実行に必要な時間の延長を必要とせず、既存の命令セット中の命令
を並列にまたは同時に実行することによって加速することが好ましい。
[発明の概要]
本明細書に記載の諸発明は、元のプログラムを、命令レベルの並列処理が可能な
計算機によって実行できるように実施された元のプログラム機能に適合する並列
の単一命令群として処理できるシステムによってこの目的を達成する。本発明者
等は、既存の高水準言語で記述された既存のプログラムまたは既存のアセンブリ
言語プログラムを、ブリプロセッサによって処理する方法を提供した。このブリ
プロセッサは、複合命令を実行できるように設計されたコンピュータ内で、単一
の複合命令として実行できる命令シーケンスを識別することができる。
この命令プロセッサ・システムは、スカラー計算機の一連の基本命令に対する複
合化復号を実行し、一連の複合命令を生成し、複合命令の取出しと、取り出され
た複合命令及び必要な単一命令の復号を実行し、複合命令を含むプログラムがシ
ステム上で実行される時にスカラー計算機の基本命令のスカラー実行を元のまま
に保つ複合命令プログラムを提供する。
このシステムは、複合命令の途中で分岐するための機構も提供する。複合命令の
途中で分岐する場合、制御ビットが付加されているかどうか複合命令を検査する
。この制御ビットに応答して、分岐先または後続の複合命令の実行が正しくない
プログラム挙動を引き起こす場合に、それらの複合命令のメンバ単位の実行を無
効にする無効化機構が提供される。
本明細書に記載する諸発明の命令プロセッサ・システムは、スカラー計算機の一
連の基本命令から生成された複合命令の復号を行い、前記命令プロセッサは、シ
ステム内に設けられた複合化ファシリティを用いた、前記命令プロセッサ内での
複合命令の実行を可能にする、制御ビットが命令テキストに付加された、一連の
複合命令を生成する。このシステムは、命令プロセッサの機能的命令ユニットに
よって複合命令及び単一命令として実行できる複合命令を取り出して復号し、元
々記憶装置内にあったスカラー計算機の基本命令のスカラー実行は、元のままに
保持する。その結果得られる一連の複合化された命令は、実行される複合化され
た命令ストリームが並列の性質をもつため、通常は元のフォーマットよりも高速
に実行される。
上記及びその他の改良は、以下の詳細な説明に詳述されている。本発明及びその
利点と特徴とをよりよ(理解するため、詳細な背景について、関連特許を参照さ
れたい。さらに、特に本明細書に記載の改良については、以下の説明及び添付の
図面を参照されたい。
C図面の簡単な説明コ
第1図は、同時実行のためスカラー命令のシーケンス内の命令を複合化すること
のできる高水準計算機システムの概略図である。
第2図は、複合命令ストリーム内で選択的にグループ化された命令群の並列実行
を示す単一プロセッサの動作タイミング図である。
第3図は、動作環境の好ましい他の実施例として示されたインメモリ処理を有す
るスケーラプル複合命令セット計算機の階層的メモリ機構のブロック図である。
第4A図は、複合命令を実行するように設計されたコンピュータ内で単一の複合
命令として実行されることができる命令のシーケンスを識別するために既存プロ
グラムを処理する手段を提供する高水準処理の概略図である。
第4B図は、本発明の好ましい動作環境と、その環境内での本発明の位置を示す
図である。
第5図は、元のプログラム・コードから実際の実行までにプログラムが取る経路
を示す図である。
第6図は、アセンブリ言語プログラムからの複合命令セット・プログラムの生成
を示す流れ図である。
第7図は、複合命令セットの実行を示す流れ図である。
第8図は、分岐先が複合命令の先頭または途中にある状況を示す図である。
[好ましい実施例の詳細な説明]
背景
同時係属の米国特許出願第071519382号(IBMドケット番号EN9−
90−020)では、スケーラプル複合命令セット計算機(SCISM)アーキ
テクチャ方法が提案されている。この方法では、命令実行の前にスカラー命令の
シーケンスを静的に解析して、隣接する命令をグループ化して並列に実行できる
シーケンスにすることによって形成される複合命令を生成することにより、命令
レベルの並列性が達成される。このシステムも、本明細書で開示する。ある複合
命令がどこで始まるか及びある複合命令に組み込まれた命令数を示す関連制御情
報は、複合化タグの形で命令ストリームに加えられる。これに関連して、本明細
書では、「複合化」という用語は、グループ化された命令を同時または並列に実
行することを目的として、命令の1シーケンスに含まれる命令群をグループ化す
ることを指す。複合化は、最低限、同時に実行すべき2つの命令を「対にする」
ことによって満足される。複合化された命令は、スカラー実行のために提示され
る時の形から変更されていないことが好ましい。
複数の命令を並列に実行する手段を含むデジタル・コンピュータ・システムでは
、本発明の特に有利な実施例は、命令を発行し実行する前にその複合化を行うメ
モリ・アーキテクチャに基づくものである。このメモリ構造が、コンピュータの
CPU (中央演算処理装置)に命令を供給する。通常、階層的メモリ構造は、
現在アクセスされている命令を格納する高速のキャッシュ記憶装置、キャッシュ
に接続された中速の主記憶装置、及び低速大容量の補助記憶装置を含んでいる。
通常、キャッシュと主記憶装置(これらをまとめて「実記憶装置」と称する)は
、命令を格納しており、これらは実行のために直接参照することができる。補助
記憶装置内の命令に対するアクセスは、主記憶装置と補助記憶装置間に接続され
た入出力アダプタを介して行われる。
同時係属の米国特許出願筒071543464号(IBMドケット番号EN9−
90−018)では、実記憶装置内の命令複合化機構がスカラー命令のシーケン
スに対する複合化タグ情報を生成するSCl5Mアーキテクチャ用のインメモリ
・プリプロセッサが提案されている。この複合化タグ情報は、並列に実行される
シーケンスの命令を示す。命令ページが予め取出しされ、主記憶装置に記憶され
る時、命令複合化ユニットは複合化タグ情報を生成する。上記特許出願の具体的
な実施例は、2つまでの命令の複合化を教示しているが、スカラー・コンピュー
タでの同時実行のために最大N個までの命令を複合化できることが企図されてい
る。
米国特許出願第071522219号(IBMドケット番号EN9−90−01
2)では、命令複合化ユニットが階層記憶機構の主記憶装置とキャッシュ間にあ
る階層メモリ内のキャッシュ用の複合化プリプロセッサが開示されている。命令
複合化ユニットは、主記憶装置からキャッシュに取り出されつつある命令性の命
令に関する複合化タグ情報を生成する。
これらの特許出願では、キャッシュ内の命令が複合化タグを伴っており、この複
合化タグに応答して、複数の並列実行ユニットは、最大N個までの命令グループ
中の1つまたは複数の命令を並列に実行する。1990年6月26日出願の発明
の名称がrMemory Management for 5calable
CompoundInstruction Set Machines Wit
h In−Memory CompoundingJで、発明者がリチャード・
J・アイケマイヤー他の米国特許出願第071543458号を含むこれら関連
システムでは、スカラー命令のシーケンス中の最大N個までの命令を同時に実行
できるコンピュータ・システムの環境中で、順序通り並べられたスカラー命令セ
ットに付随し、活動化されると、同時に実行される命令を示す複合化タグを含む
シーケンスが提案されている。コンピュータ・システムの実記憶装置内に記憶さ
れたスカラー命令の複合化タグを管理するための機構があり、この機構は、実記
憶装置からの修正済み命令を実記憶装置内の未修正の命令と組み合わせるための
、実記憶装置に接続された組合せユニットを含んでいる。組合せユニットと実記
憶装置に接続されたタグ短縮ユニットが、修正済み命令、及び修正済み命令と複
合化することのできる実記憶装置内のN−1個の命令の複合化タグを非活動化す
る。
しかしながら、これらの開発のすべてには満たされていない要件がある。それは
、コンビ二一タによって実行される命令セットまたはプログラムを処理する際に
、どの命令が組み合わせて複合命令にすることができるか、及びどのようにして
実行されるプログラム内の命令に制御情報を付加するかを正確に決定することで
ある。米国特許出願第071522219号(I BMドケット番号EN9−9
0−012)と第07/642011号(IBMドケット番号EN9−90−0
49)の開示は、この要件を対象としている。
概要
第1図を参照すると、本発明に従って構成されたデジタル・データ処理システム
用のデジタル・コンピュータ・システムの一部分の代表的な実施例が示されてい
る。このコンピュータ・システムは、2個以上の命令を並列に実行することがで
きる。2個以上の命令からなるグループの同時実行をサポートするため、このコ
ンピュータ・システムは、同時に並列に動作し、それぞれが独自に1つまたは複
数のタイプの機械レベル命令を処理することができる複数の機能ユニットを含む
。このシステムは、並列または同時に実行するために命令を複合化する能力を備
えている。これに関連して、「複合化」とは、スカラー命令のシーケンス中の複
数の命令をグループ化することを指し、このグループ化のサイズは、1からNま
でスケーラプルである。例えば、このスカラー命令のシーケンスは、IBMシス
テム/370製品で使用されるものなどの既存の1組のスカラー命令から引き出
すことができる。(。
かじながら、複合化は、サイクルごとに複数の命令を処理できるように適合させ
ることのできるすべてのコンピュータ・アーキテクチャで、命令の並列の発行及
び実行を容易にするように意図されていることを理解されたい。
命令ストリームが複合化される時、隣接するスカラー命令は、同時または並列に
実行できるように選択的にグループ化される。互換性のある命令のシーケンスが
見つかった時、複合命令が生成される。
複合化技法は、他の特許出願で論じられている。複合化を一般的に理解するには
、1990年5月4日出願の米国特許出願第071519384号(I BMド
ケット番号EN9−90−020)及び1990年5月4日出願の発明の名称が
rGENERAL PURPO5E COMPOUNDTNG TECHN丁Q
UE FORINSTRUCTION−LEVEL PARALLEL PRO
CESSORSJである米国特許出願第071519382号(IBMドケット
番号EN9−90−019)を参照されたい。1対ずつの複合化用の命令複合化
ユニットの例は、1990年6月26日出願の米国特許出願第07154346
4号(I BMドケット番号EN9−90−018)に示されている。
命令の複合化と実行
一般に第1図に示すように、命令複合化ユニット20は、2進スカラー命令のス
トリーム21を受け取り、隣接するスカラー命令の一部を選択的にグループ化し
て、コード化された複合命令を形成する。したがって、その結果得られる複合化
された命令ストリーム22は、単独で実行されるスカラー命令、または並列に実
行されるスカラー命令のグループによって形成される複合命令を供給する。スカ
ラー命令が命令処理ユニット24に提示される時、それが複数の実行ユニットの
うちの適当な1つに経路指定されて、逐次実行される。複合命令が命令処理ユニ
ット24に提示される時は、そのスカラー構成要素が、それぞれ適当な実行ユニ
ットに経路指定されて、同時に並列に実行される。典型的な機能ユニットには、
演算論理装置(ALU)26及び28、浮動小数点演算装置(FP)30、及び
メモリ・アドレス生成装置(AU)32が含まれるが、それだけに限られるもの
ではない。
第2図を参照すると、複合化は、各機能ユニットがスカラー命令(S)または複
合命令(C3)を実行する単一プロセッサ環境で実施することができる。図に示
すように、スカラー命令と複合化スカラー命令のシーケンスを含む命令ストリー
ム33は、各複合命令に関連する制御ビットまたはタグ(T)を有する。したが
って、第1のスカラー命令34は、サイクル1で機能ユニットAによって単独に
実行でき、タグT3で識別される3つ組の複合命令36は、サイクル2で機能ユ
ニットA、C及びDによってその3つの複合化スカラー命令が並列に実行でき、
タグT2で識別されるもう1つの複合命令38は、サイクル3で機能ユニットA
及びBによってその2つの複合化スカラー命令が並列に実行でき、第2のスカラ
ー命令40は、サイクル4で機能ユニットCによって単独に実行でき、大きなグ
ループの複合命令42は、サイクル5で機能ユニットAないしDによってその4
つの複合化スカラー命令が並列に実行でき、第3のスカラー命令44は、サイク
ル6で機能ユニットAによって単独に実行できる。
複合命令を処理するために適合させることのできるコンピュータ・アーキテクチ
ャの1例は、IBM システム/370命令レベル・アーキテクチャである。こ
のアーキテクチャでは、図2に従って、各マシン・サイクル内で複数のスカラー
命令を発行して、実行させることができる。これに関連して、マシン・サイクル
とは、1スカラー命令を実行するのに必要な単一のパイプライン段を指す。
一般に、命令発行前のある時点で複合化を行って、何回も実行される1つまたは
複数の命令に対してこの処理が1回で済むようにすることが有用である。コンパ
イルの後、命令発行の前にハードウェアでの複合化を実施するために、コンピュ
ータ・システムの実記憶域内に命令複合化機能を置くことが提案されている。こ
のような複合化は、本明細書に記載の他の代替案よりも対する好ましい代替案と
考えられ、これを「インメモリ複合化」と称する。これは、1990年5月10
日出願の米国特許出願第071522219号(I BMドケット番号EN9−
90−012) と、1990年6月26日出願の米国特許出願第071543
464号(IBMドケット番号EN9−90−018)及びその第3図に示され
ている。また、背景どして本明細書に記載するメモリ管理は、1990年6月2
6日出願の発明の名称がrMEMORYMANAGEMENT FOR,5CA
LABLE COMPOUND lN5TRUCTION SETMACHrN
ES WITHIN MEMORY COMPOUNDINGJである米国特許
出願筒071543458号(IBMド’7ツト番号EN9−90−042)に
も記載されている。
インメモリ複合化は、第3図に全体的に示されている。第3図で、階層的メモリ
機構は、補助記憶装置及びコンピュータの実メモリとインターフェースする入出
力アダプタ40を含んでいる。この機構の実メモリには、中速で比較的大容量の
主記憶装置46と、高速で比較的小容量の命令キャッシュ48が含まれる。(本
明細書では、主記憶装置とキャッシュを総称して、「実メモリ」、「実記憶域」
または単に「メモリ」と称する。)命令のストリームは、補助記憶装置から入出
力アダプタ40によって取り込まれ、主記憶装置46内の「ページ」と称するブ
ロックに記憶される。「行」と称する隣接した1組の命令が、主記憶装置46か
ら命令キャッシュ48に移動され、そこで命令取出し/発行ユニット50による
処理のため高速参照に使用できる。キャッシュから取り出された命令は、発行さ
れ、52で復号された後に、実行のため機能ユニット56.581601.60
に渡される。
実行中、プログラム内にある命令に対する参照が行われる時、その命令のアドレ
スがキャッシュ管理ユニット62に供給される。キャッシュ管理ユニット62は
、このアドレスを使って、アドレスされた命令を含む1つまたは複数の命令を命
令キャッシュ48から取り出してユニット5o内の待ち行列に入れる。アドレス
された命令がキャッシュ内にある場合は、キャッシュ「ヒツト」が発生する。そ
うでない場合は、キャッシュ「ミス」が発生する。キャッシュ・ミスの場合、キ
ャッシュ管理ユニット62は、要求された命令の行アドレスを記憶管理機能群6
4に送る。この記憶管理機能群64には、例えば、キャッシュ管理ユニット62
の供給する行アドレスを使って、アドレスされた行を含むページが主記憶装置4
6内にあるか否かを判定する、実記憶管理機能を含めることができる。そのペー
ジが実メモリ内にある場合、実記憶管理機能は、その行アドレスを使って、キャ
ッシュ・ミスになっている命令を含む行を、主記憶装置46から命令キャッシュ
48に転送する。要求された命令を含む行が主記憶装置内にない場合は、オペレ
ーティング・システムが別の記憶管理機能を活動化し、必要な行を含むページの
識別をそれに供給する。上記の記憶管理機能は、その行を含むページを識別する
アドレスを入出力アダプタ40に送る。入出力アダプタ40は、補助記憶装置か
らそのページを取り込み、それを主記憶装置46に供給する。取り出されたペー
ジ用の場所をあけるだめに、記憶管理機能は、取り出されたページで置換すべき
主記憶装置46内のページを選択する。8018Mアーキテクチャでは、置換さ
れたページは、タグ情報を複合化せずに入出力アダプタを介して補助記憶装置に
返すことが企図されている。このようにして、ある命令シーケンスの実行中に即
座に必要になる可能性の最も高い命令群が、命令キャッシュ48内の機能ユニッ
トに隣接する位置にくる。この階層的メモリ機構は、必要とされるがキャッシュ
内にない命令を高速に検索する能力を提供する。
SCl5Mアーキテクチャの環境では、インメモリ命令複合化は、命令複合化ユ
ニット7oによって提供されることができる。この命令複合化ユニット7oは、
機能的に入出力アダプタ40と主記憶装置46間にあり、従って、スカラー命令
ストリームの複合化を、主記憶装置46への入力または主記憶装置46内で行う
ことができる。この記憶位置では、ページ取出し進行中に命令は複合化されるこ
とができる。
代りに、命令複合化ユニットは、主記憶装置46と命令キャッシュ48間の位置
72を占有することができ、複合命令は、命令キャッシュ48から取り出される
際に、行ごとに形成される。これは、好ましい実施例と見なせる。
複合化の例
どんな複合化の技法を使用するかは、設計上の選択の問題である。しかし、例示
のため、隣接するスカラー命令から形成される複合命令を生成する1つの技法に
ついて説明する。
これは、前記の米国特許出願第071543458号に示されたものである。例
えば、命令は、テキストの6バイト(3ハーフワード)、4バイト(2ハーフワ
ード)または2バイト(1ハーフワード)を占めることができる。この例では、
可変長命令を含む命令セットを複合化するための規則が、長さ2バイトまたは4
バイトのすべての命令が、互いに複合化可能であると規定している。すなわち、
2バイト命令は、この特定の例では、別の2バイト命令または別の4バイト命令
と並列に実行することができ、4バイト命令は、別の2バイト命令または別の4
バイト命令と並列に実行することができる。この規則はさらに、6バイト長の命
令は、すべて複合化できないと規定している。したがって、6バイト命令は、単
独でしか実行できない。もちろん、複合化は、この規則の例に制限されるもので
はなく、所定のコンピュータ・アーキテクチャ用の特定の構成内に存在する命令
を並列に実行するための判定基準を規定する複数の規則を含むことができる。
この例で使用する命令セットは、システム/37oアーキテクチヤから採ったも
のである。各命令の命令コードを検査することによって、その命令コード内の命
令長コード(ILC)から、各命令の長さを決定することができる。さらに、命
令のタイプは、他の命令コード・ビット内に規定されている。命令のタイプと長
さが決定されると、特定の命令が並列実行のために他の1つまたは複数の命令と
複合化されるか、それとも単独で実行されるかを示すためにその特定の命令用の
タグ・ビットを含む複合化タグが生成される。
この例(限定されていない)のタグ・フォーマットでは、2つの隣接する命令が
複合化できる場合、メモリ内で生成されるタグ・ビットは、複合化された最初の
命令では++1#、複合化された第2の命令ではUOUとなる。しかし、、第1
及び第2の命令が複合化できない場合は、この第1のタグ・フォーマットでは、
最初の命令のタグ・ビットがUOUになり、その後に第2及び第3の命令が、複
合化できるかどうか検討される。選択された複合化技法に従って命令バイト・ス
トリームが処理され、様々なスカラー命令に対する複合化ビットがコード化され
た後、命令のより大きなグループを見るためのより大きなウィンドウを使用し、
複合化に最善のN個の命令の組合せを取り上げることによって、並列実行を達成
するためにより最適な結果を得ることができる。
プログラムの複合化
しかしながら、本明細書で解決される問題の例として上記の例を取り上げると、
一般に、第4A図に全体的に示したシステム及び処理を提供する必要があると考
えられる。第5図に関して述べる既存の高水準言語で記述された既存のプログラ
ム、または第6図に関して説明されたように処理すべき既存のアセンブリ言語プ
ログラムを処理する必要がある。そこで本発明者等は、複合命令を実行できるよ
うに設計されたコンピュータ内で単一の複合命令として実行できる命令のシーケ
ンスを識別する能力を有するシステムを提供した。
第4A図に移ると、システムとハードウェア・アーキテクチャの両方に反映する
1組の規則に基づいて複合命令プログラムを作成する複合化ファシリティに、プ
r−]/fラムが入力として供給されるシーケンスが図示されている。好ましい
複合化ファシリティは、1991年1月15日出願の米国特許出願第07/64
2011号(IBMドケット番号EN9−90−〇49)に示されている。これ
らの規則を、以下では複合化規則と称する。複合化ファシリティによって作成さ
れたプログラムは、その後、第7図に全体的に示す複合命令実行エンジンによっ
て直接実行されることができる。
しかしながら、第5図は、あるプログラムがたどる高水準ソース・コードから実
際の実行までの典型的な経路を示しており、第4図で示唆される可能な機構の1
つと見なすことができる。アセンブリ水準プログラムに関する他の例については
、第6図に関して説明する。
第5図を参照すると、コンピュータ・システム内には、ソフトウェアとハードウ
ェアの両方で、複合化が発生できる位置が多数あり得ることが理解されよう。そ
のそれぞれに独自の長所と短所がある。第5図に示すように、プログラムがソー
ス・コードから実際の実行までに典型的にたどる様々な段階がある。コンパイル
段階の間に、ソース・プログラムが機械コードに変換され、ディスク46に記憶
される。実行段階の間に、そのプログラムがディスク46から読み出され、特定
のコンピュータ・システム構成50の主記憶装置48にコードされる。コンピュ
ータ・システム構成50内では、適当な命令処理ユニット52.54.56によ
って命令が実行される。複合化は、この経路上のどこでも行うことができる。
一般に、複合化ファシリティの位置が命令処理ユニット(IP’U)に近ければ
近いほど、時間の制約が厳しくなる。複合化ファシリティの位置がIPUから遠
ければ、それだけ多くの命令を大きなサイズの命令ストリーム・ウィンドウ内で
検査して、複合化のための最善のグループ化を決定し、実行性能を向上させるこ
とができる。
アセンブリ言語プログラムの複合化
第6図の流れ図は、システムとハードウェア・アーキテクチャの両方に反映する
1組のカストマイズされた複合化規則58に従ってアセンブリ言語プログラムか
ら複合命令セット・プログラムの生成を示す図である。このアセンブリ言語プロ
グラムは、ソフトウェア複合化ファシリティ59への入力として供給される。複
合化ファシリティS9は、m工。
m2. +++rnTl命令ブロック(m= 1 、2 、 、、、)中のプロ
グラムを解析し、複合命令プログラムを作成する連続した命令ブロックが、複合
化ファシリティ59によって分析される。ブロックには、1からnまでの番号が
付けられる。ブロックnのメンバ命令は、■□で示される。ただし、mの範囲は
、1からそのブロック内の命令の数までである。複合化できるかどうか一緒に考
慮される命令群を含むバイト・ストリーム内の各ブロック60.62.64の命
令の数は、複合化ファシリティの設計に応じて変わり、ブロックごとに変わるこ
とがある。
第6図に示されるように、この特定の複合化ファシリティは、各ブロック内の“
m ”個の命令について2元複合化を考慮するように設計されている。第1ステ
ツプは、第1及び第2の命令が複合化可能な対をなすか否かを検討し、次に第2
及び第3の命令が複合化可能な対をなすか否かを検討し、次に第3及び第4の命
令が複合化可能な対をなすか否かを検討し、そのブロックの終りまでこれを繰り
返すことである。様々な可能な複合化可能対C1〜C5が識別された後、複合化
ファシリティは、複合化された命令の好ましいグループ化を選択し、フラグまた
は識別子ビットを使って、複合命令の最適のグループ化を識別することができる
。
最適のグループ化が存在しない場合は、複合化可能な隣接するスカラー命令のす
べてを識別して、様々な複合命令の間に位置する目標への分岐で、遭遇する複合
化されたどの対をも活用できるようにすることができる。複数の複合化ユニット
が利用できる場合、命令ストリーム内の複数の連続したブロックを同時に複合化
することができる。
複合化されたプログラムの実行
第7図の流れ図は、ハードウェア・プリプロセッサ66またはソフトウェア・プ
リプロセッサ67によって生成された複合命令セット・プログラムの実行を示す
図である。複合命令を有するバイト・ストリームは、複合命令(CI)キャッシ
ュ68に流れ込む。このキャッシュ68は、記憶バッファとして役立つ複合命令
に対する高速アクセスを実現するCI発行論理回路69が、CIキャッシュから
複合命令を取り出し、個々の複合化された命令を適当な機能ユニットに発行して
、並列に実行させる。
複合命令コンピュータ・システム内のALU群などの命令実行ユニット(CI
EU)71は、スカラー命令を単独で1回に1つ実行するか、または複合化され
たスカラー命令を他の複合化されたスカラー命令と並列に実行する能力を有する
ことを強調する必要がある。また、上記の並列実行は、コンピュータのアーキテ
クチャ及び特定のコンピュータ・システム構成に応じて、ALU、浮動小数点(
、FP)ユニット73、記憶アドレス生成ユニット(AU)75などの異なるタ
イプの実行ユニット内で、または複数の同一タイプのユニット(FPI、FP2
など)内で行うことができる。
複合化における制御情報
前記の例で説明された第1のタグ・フォーマットでは、複合化情報が、テキスト
の2バイト(命令とデータ)ごとに1ビツトとして、命令ストリームに付加され
る。
一般に、制御情報を含むタグは、複合化されたバイト・ストリーム内の各命令に
、すなわち複合化されないスカラー命令、ならびに対、3つ組、またはそれより
大きな複合化されたグループとして含まれる複合化された各スカラー命令に付加
されることができる。本明細書では、識別子ビットとは。
複合化されたグループを形成する複合化されたスカラー命令を識別し、複合化命
令プログラム内に残っており、取り出されると単独で実行される、複合化されて
いないスカラー命令からそれを区別するのに特に使用されるタグの部分を指す。
3個以上のスカラー命令をグループ化して複合命令を形成できる場合、追加の識
別子ビットが有利となることがある。
実際に複合化された特定のスカラー命令数を示すのに必要な識別子ビットの最小
数は、グループ化して複合命令を形成することのできるスカラー命令の最大数の
2を底とする対数(を最も近い整数に切り上げた値)である。例えば、最大値が
2であれば、各複合命令ごとに1つの識別子ビットが必要である。最大値が3ま
たは4であれば、各複合命令ごとに2つの識別子ビットが必要である。最大値が
5.6.7または8であれば、各複合命令ごとに3つの識別子ビットが必要であ
る。
このコード化方式を実施した第2のタグ・フォーマットを、下記の表1に示す。
表1
識別子 複合化され
ビット コード化された意味 る命令の数OOこの命令は次の命令と複合化さ
なしれない
01 この命令は次の1つの命令と複 2合化される
10 この命令は次の2つの命令と複 3合化される
11 この命令は次の3つの命令と複 4合化される
テキストの各ハーフワードごとにタグが必要になるような命令の整列を仮定する
と、命令ストリームが実行するために取り出される時に、IPUが最初の命令の
タグ以外のすべてのタグを無視することが理解できる。言い換えると、取り出さ
れたテキストのうちの1ハーフワードを検査し、その識別子ビットのチェックに
よってそれが複合命令の先頭であるか否かを判定する。表1に従って、それが複
合命令の先頭でない場合、その識別子ビットはOである。そのハーフワードが2
つのスカラー命令を含む複合命令の先頭である場合、第1の命令の識別子ビット
は”I ITであり、第2の命令の識別子ビットはIT O”である。そのハー
フワードが3つのスカラー命令を含む複合命令の先頭である場合、第1の命令の
識別子ビットはn2″であり、第2の命令の識別子ビットはN1+jであり、第
3の命令の識別子ビットは”OItである。
言いかえれば、各ハーフワードの識別子ビットは、この特定のハーフワードが複
合命令の先頭であるか否かを識別すると同時に、その複合化されたグループを構
成する命令数を示す。
この複合命令をコード化する方法は、3つの命令を複合化して3つ組のグループ
を形成する場合、第2及び第3の命令も複合化されて対のグループを形成するこ
とを前提としている。言いかえると、3つ組のグループの第2の命令への分岐が
発生する場合、第2の命令の識別子ビット”1”は、その3つ組のグループの第
1の命令が実行されなかった場合でも、第2及び第3の命令が複合化された対と
して並列に実行されることを示している。
本発明では、特定のコンピュータ・システム構成について1回だけ命令ストリー
ムを複合化すればよく、その後、複合化された命令が取り出されると、それに関
連する識別子ビットも取り出されることは、当業者にとって明白であろう。これ
によって、いわゆるスーパースカラー計算機で実行のために同一のまたは異なる
命令が取り出されるごとに、並列実行のために最後の瞬間に特定のスカラー命令
の非効率な判定と選択を繰り返し行うことが不要になる。
命令間に参照点がない場合の複合化
命令ストリームからの複合命令の生成は、命令がどこで始まるかを示すe照点が
わかっている場合には簡単である。本明細書では、参照点とは、命令またはデー
タあるいはその両方を含むテキストのどのバイトが命令の第1バイトであるかに
ついての知識を意味する。この知識は、命令境界の位置に関する情報を提供する
何らかのマーキング・フィールドまたは他の標識によって得ることができる。多
くのコンピュータ・システムでは、このような参照点は、コンパイル時にコンパ
イラによって、また命令の取出し時にCPUによってだけ明示的に知られる。コ
ンパイルの後に複合化が完了した時に、コンパイラは、タグを用いて、どのバイ
トが命令の第1バイトを含み、どの命令がデータを含んでいるかを示すことがで
きる。正確な命令位置が既知であるので、この余分の情報により複合化ファシリ
ティはより効率的になる。もちろん、コンパイラは、命令境界を示す特定の情報
を複合化ファシリティに提供するために、他の方法で命令とデータを区別する。
4バイト命令がすべてバイト境界上で整列されるシステムでは、テキストの4バ
イトごとに1つのタグが関連付けられる。同様に、命令が任意に整列されること
ができる場合には、テキストの1バイトごとにタグが必要である。ただし、一部
のコンピュータ・アーキテクチャでは、可変長命令が可能であり、さらにデータ
と命令が混在することが許されることもあり、したがって、複合化処理が複雑に
なる。もちろん、実行時には、適切な実行を可能にするために命令境界がわかっ
ていなければならない。しかし、複合化は、命令実行よりも十分に前の時点で行
うことが好ましいので、命令がどこから始まるかの知識もどのバイトがデータで
あるかの知識もない状態で命令を複合化する技法が必要である。この技法は、命
令が通常は固定長でありデータと混在しないRISC(縮小命令セット・コンピ
ュータ)アーキテクチャを含めて、広く受け入れられているタイプのすべてのア
ーキテクチャに適用できることが必要である。本発明に関連して、第4A図に関
して全般的に述べる諸タスクの実行は、1990年5月4日出願の米国特許出願
第071519382号に全般的に記載されている種類の複合命令実行エンジン
の助けを得て、他の環境で実施される。
複合化ファシリティを備えた好ましいシステムの編成一般に、好ましい動作環境
は、第4B図に示した動作環境で代表される。複合化ファシリティは、ソフトウ
ェア・エンティティでもよいが、1991年1月16日出願の米国特許出願第0
7/642011号に詳細に記載された命令複合化ユニットによって複合化ファ
シリティのこの実施例を実施することもできる。第4B図を参照すると、本発明
に従って構成された、キャッシュ管理ユニット144を有するデジタル°コンピ
ュータ・システムまたはデジタル・データ処理システムの一部分の代表的な実施
例が示されている。このコンピュータ・システムは、2つまたはそれ以上の命令
を並列に処理する能力を有する。このコンピュータ・システムは、処理すべきで
ある命令及びデータを、スカラー計算機用の1連の基本命令の形で記憶するため
の第1の記憶機構を含んでいる。
この記憶機構は、高水準記憶装置136として識別される。
この記憶装置(r主記憶装置」でもある)は、大容量で低速の記憶機構であり、
例えば、大容量システム記憶装置、または包括的な階層的記憶システムの下位部
分とすることができる。
第4B図のコンピュータ・システムはまた、高水準記憶装置136から命令を受
け取り、かつこれらの命令に、これらの命令のうちのどれが互いに並列に実行で
きるかを示すタグの形の複合情報を関連づける命令複合化ファシリティまたは機
構も含んでいる。適当な命令複合化ユニットは、命令複合化ユニット137によ
って表される。この命令複合化ユニット137は、入ってくる命令を解析して、
そのどれが並列に処理できるかを判定する。さらに、命令複合化ユニット137
は、これらの解析された命令に対して、どの命令が互いに並列に処理でき、どの
命令が互いに並列に処理できず単独で処理しなければならないかを示す、タグ・
ビットを生成する。
第4B図のシステムはさらに、命令複合化ユニツト137に結合され、解析され
た命令とそれらに関連するタグ・フィールドを受け取り、かつこれらの記憶され
た複合化された命令が取り出せるようにそれらのタグ・フィールドを記憶するた
めの第2の記憶機構を含んでいる。この第2または第3以降の記憶機構は、複合
命令キャッシュ138で代表される。
複合命令キャッシュ138は、低速の記憶機構136にアクセスする頻度を低下
させてコンピュータ・システムの性能を改良するのに一般的に使用される種類の
小容量で、高速の記憶機構である。゛
第4B図のシステムはさらに、互いに並列に動作する複数の命令処理機能ユニッ
ト139.140.141などを含んでいる。これらの命令処理機能ユニット1
39ないし141は、互いに並列に同時に動作し、それぞれが、それ自体で1つ
または複数のタイプの機械レベル命令を処理する能力を有する。使用される機能
ユニットの例には、汎用演算論理装置(ALU) 、アドレス生成型ALU、デ
ータ依存性縮小式%式%
日出願の同時継続の米国特許出願第071504910号に開示されている好ま
しいタイプのもの)、分岐命令処理ユニット、データ・シフタ・ユニット、浮動
小数点処理ユニットなどがある。所定のコンピュータ・システムは、可能な機能
ユニットのいくつかを含むことができる。例えば、所定のコンピュータ・システ
ムは、汎用ALUを2個以上含むことができる。また、所定のコンピュータ・シ
ステムは、これら異なるタイプの機能ユニットのすべてを含む必要はない。どん
な構成をとるかは、検討中の特定のコンピュータ・システムの性質によって決ま
る。
第4B図のコンピュータ・システムはまた、複合命令キャッシュ138に結合さ
れ、そこに記憶された隣接する命令が並列に処理できることを命令タグ・ビット
が指示する時、命令処理機能ユニット139〜141のうちの異なるユニットに
それらの命令を供給する命令取出し/発行機構も含んでいる。この機構はまた、
並列実行が不可能であり、命令を単独で処理しなければならないことをタグ・ビ
ットが指示する時は、単一の命令を個々の機能ユニットに供給する。この機構は
、命令取出し/発行ユニット142で代表される。命令取出し/発行ユニット1
42は、複合命令キャッシュ138から命令を取り出し、タグ・ビットと命令コ
ード・フィールドを検査すると同時に復号機能を実行し、このような検査ならび
に関連する他のパイプライン制御信号に基づいて、検討中の命令を機能ユニット
139〜141のうちの適当なユニットに送る。
SCl5Mアーキテクチャの環境では、命令複合化ユニット137によってイン
キャッシュ命令複合化を行い、その結果、各キャッシュ行の複合化が、複合命令
キャッシュ138の入力部で行えるようになる。すなわち、各キャッシュ行が主
記憶装置136から取り出されてキャッシュ138に入れられる時、その行は、
ユニット137内で複合化できるかどうか解析され、複合化情報タグ・ビットと
共に渡されて、複合命令キャッシュ138に記憶される。
キャッシュ化の前に、行は、命令複合化ユニット137内で複合化される。この
ユニット】37はタグ・ビット・セットを生成する。これらのタグ・ビットは、
それらと関連する命令に直接付加できる。また、それらの今全自遠と並列にタグ
・ビットを供給することもできる。いずれの場合でも、これらのビットは、その
命令の行と共にキャッシュ138に記憶するために供給される。必要に応じて、
キャッシュ138の複合化された命令は、命令取出し/発行ユニット142によ
って、そのタグ・ビット情報と共に取り出される。命令取出し/発行ユニット1
42及び複合命令キャッシュ138は、最大の長さの複合命令(システムの定義
による)が、複合命令キャッシュ138から取り出され、機能ユニット139.
140.141などに発行されるように設計されている。命令取出し/発行ユニ
ット142は、命令を受け取ると、それらのタグ・ビットを検査して、復号検査
によってそれらが並列に処理できるか否かを判定し、命令コード・フィールドを
検査して、使用可能な機能ユニットのうちのどれがそれらの処理に最も適してい
るかを決定する。2つ以上の命令が並列処理に適しているとタグ・ビットが示す
場合には、それらの命令は、その命令コード・フィールドのニード化に応じて、
機能ユニットのうちの適当なユニットに送られる。その後、これらの命令は、そ
れぞれの機能ユニットによって互いに並列に処理される。
並列処理に適さない命令に遭遇した時には、その命令コードによって決定される
適当な機能ユニットにその命令を送り、その後、この命令は、選択された機能ユ
ニット内で単独に処理される。
複数の命令が常に並列に処理される理想的なケースでは、このコンピュータ・シ
ステムの命令実行率が、1回に1命令が実行される場合のN倍になるはずである
。ただし、Nは、並列に処理されるグループの命令数である。
複合化におけるさらに別の制御情報(タグ)前述したように、制御フィールドま
たはタグは、複合命令の境界を定める情報を含むが、特定の実施態様に有効と考
えられるだけの追加情報を含むことができる。
例えば、第3のタグ・フォーマットでは、制御フィールド(タグ)を、8ビツト
・フィールドとして、次のように規定される。
1011 ℃2 ℃3 t4 t5 ℃6 t7ビツト 機能
to 1ならば、この命令は、複合命令の先頭にマークを付ける。
tl 1ならば、2つの複合命令を並列に実行する。
t2 1ならば、この複合命令は、複数の実行サイクルを有する。
し、 1ならば、パイプライン化を中断する。
t4 命令が分岐でこのビットが1ならば、分岐を取ると予測される。
し5 1ならば、この命令は、前の複合命令からの記憶インターロックを有する
。
t6 1ならば、動的命令発行をイネーブルする。
t7 1ならば、この命令はALUを使用する。
複合化のための命令の分類
一般に、複合化ファシリティは、並列に実行される命令のクラスを捜し、ハード
ウェアによって処理されることができない複合命令のメンバ間のインターロック
が存在しないことを確認する。互換性のある命令のシーケンスが見つかった時、
複合命令が生成される。例えば、システム/370アーキテクチヤは、下記のク
ラスに分割できる。
1、RR−フォーマット ロード、論理演算、算術演算、比較
・L CR−−Load Complement (補数ロード)−L P R
−−Load Po5itive (正数ロード)・L N R−−Load
Negative (負数ロード)−L R−−Load Register
(レジスタ・ロード)・LTR−−Load and Te5t (ロード及び
テスト)・NR−−AND(論理積)
・OR=−QR(論理和)
・XR−−ExシLu5iveOR(排他的論理和)・AR−−Add(加算)
・SR−−5ubtract (減算)・A L R−−Add Logica
l (論理加算)・S L R−−5ubtract Logical (論理
減算)・CLR−−Compare Logical (論理比較)−CR−−
Compare(比較)
2、R3−フォーマット シフト(記憶アクセスなし)・S RL −−5hi
ft Right Logical (論理右シフト)・S L L −−5h
ift Left Logical (論理左シフト)−S RA −−5hi
ft Right Arithmetic(算術右シフト)
・S L A −−5hift Left Arithmetic(算術左シフ
ト)
・S RD L −−5hift Right Logical (論理右シフ
ト)・S L D L −−5hift Left Logical (論理左
シフト)・S RD A −−5hift Right Arithmetic
(算術右シフト)
・5LDA −−ShiftLeftArithmetic(算術左シフト)
3、分岐 −一 カウント及びインデックスによる分岐0B CT −−Bra
nch on Count(カウント分岐、RXフォーマット)
−BCTR−−Branch on Count(カウント分岐、RRフォーマ
ヅト)
・B X H−−Branch on Index High(高位インデック
ス分岐、RSフォーマット)・B X L E −−Branch on In
dex Low(低位インデックス分岐、RSフォーマット)4、分岐 −一
条件分岐
・B C−−Branch on Condition(条件分岐、RXフォー
マット)
・B CR−−Branch on Condition(条件分岐、RRフォ
ーマット)
5、分岐−分岐及びリンク
・B A L −−Branch and Link(分岐及びリンク、RXフ
ォーマット)・B A L R−−Branch and Link(分岐及び
リンク、RRフォーマット)°B A S −−Branch and 5av
e(分岐及びセーブ、RXフォーマット)°B A S R−−Branch
and 5ave(分岐及びセーブ、RRフォーマット)6、記憶
@S T CM −−5tore Characters Under Mas
k(マスク下文字記憶、O−4バイト記憶、RSフォーマット)
・MVI −−MoveImmediate(即値移動、1バイト、
SIフォーマット)
・ST −−5tore(記憶、4バイト)−S T C−−5tore Ch
aracter(文字記憶、1バイト)
・STH−−5tore Half
(ハーフ記憶、2バイト)
7、ロード
−LH−−Load Half (ハーフ・ロード、2バイト)”L −Loa
d(ロード、4バイト)8 、LA −−Load Address (アドレ
ス・ロード)9、RXフォーマット 算術演算、論理演算、挿入、比較・A −
−Add(加算)
・AH−−AddHalf(半加算)
−AL −−AddLogical(論理加算)・N−−AND(論理積)
−O−−OR(論理和)
・S −−5ubtract (減算)−S H−−5ubtract Hal
f (半減界)・S L −−5ubtract Logical (論理減算
)・X −−Exclusive OR(排他的論理和)−I C−−In5e
rt Character (文字挿入)−I CM −−In5ert Ch
aracter Under Mask(マスク下の文字挿入、
0−4バイト取出し)
−C,−−Compare (比較)
・CH−−Compare Half (半比較)・CL −−Compare
Logical (論理比較)−CL I −−Compare Logic
al Immediate(即値論理比較)
・CLM −−Compare Logical Character Und
er Mask(マスク下文字論理比較)
10、 TM −−Te5t Under Mask (マスク下のテスト)シ
ステム/370命令の残りの命令は、本発明では、実行のために複合化されるも
のとは見なされない。これによって、これらの命令が、将来の複合命令実行エン
ジン上で複合化されることが排除されるわけではない。
プログラムでの最も一般的なシーケンスの1つは、TMまたはRXフォーマット
の比較クラスの命令を実行することである。その結果は、その直後に続く条件分
岐型命令の実行を制御するのに使用される。COMPARE命令及びBRANC
H命令を並列に実行することによって性能が改善でき、これは、高性能命令プロ
セッサでは時として動的に行われる。典型的なアーキテクチャでは、COMPA
REクラスの命令の様々なメンバのすべてとBRANCHクラスの命令のメンバ
のすべてを命令復号処理中にすばやく識別することには、多少の困難が伴う。こ
の困難は、本発明によって回避される。というのは、諸クラスの全メンバの解析
が前もって行われ、動作することが保証された複合命令が生成されるためである
。
ハードウェアの設計に応じて、多くのクラスの命令を並列に実行することができ
る。上述のCOMPAREとBRANCHの複合命令に加えて、LOAD命令と
RRフォーマット命令、BRANCH命令とLOAD ADDRESS命令など
、他の複合命令が考えられる。プロセッサが必要な実行ユニットを有する場合に
は、複合命令に、例えばRRフォーマットの算術演算など、同一クラスの複数の
命令を含めることもできる。
命令複合化の最適化
実現可能な、どの命令プロセッサにも、複合命令を構成できる命令数に上限が存
在する。複合命令を生成することによって実行可能命令を生成しつつある複合化
ファシリティに対してこの上限mを指定して、複合化ファシリティの生成する複
合命令が、基礎となるハードウェアの最大能力を超えないようにしなければなら
ない。厳密にいえば、mは、ハードウェア実施態様の結果であることに留意され
たい。これは、ソフトウェアによって所定のコード・シーケンス中で複合化する
ために解析される命令の範囲を制限するものではない。一般に、解析の範囲が広
いほど、複合化ファシリティによってより有利な複合化が認識されるので、それ
だけ大きな並列性が得られる。例として、以下のシーケンスを検討する。
Xに何らかの複合化可卯な命令
X2;何らかの複合化可能な命令
LOAD R1,(X) ;R1をメモリ位置XからロードするADD R3,
R1;R3= R3+ RISUB RL、R2、R1=R1−R2COMP
R1,R3、R1とR3とを比較するX3;何らかの複合化可能な命令
X4 、何らかの複合化可能な命令
ハードウェアによって課される複合化の上限がm=2である場合、複合化ファシ
リティの有効範囲に応じて、この命令のシーケンスを複合化する方法がいくつか
存在する。この有効範囲が4に等しい場合、複合化ファシリティは、<−Xl〉
<X2 LOAD> <ADD SUB> <COMP X3> <X4−>
トイう対を作成して、LOADとADDの間及びSUBとCOMPの間の障害を
完全に取り除く。一方、m=2のスーパースカラー計算機は、その命令発行論理
回路内で、厳密に先入れ先出し方式で命令を対にするので、<Xi X2> <
LOAD ADD> <SUB COMP> <X3 X4>という対を作成す
るはずであり、インターロックを発生させる命令の不利益を完全にこうむる。残
念ながらADDにはLOADの結果が必要なので、このLOADとADDを並列
に実行することはできない。同様に、SUBとGOMPを並列に実行することも
できない。したがって、性能向上が得られない。
分岐と複合命令
前述のシステムは、複合命令プログラムを生成する方法を提供し、さらに、複合
化情報(タグ)と命令テキストの関連を、比較的永久的な形で維持するための様
々な方法を提案する。しかし、複合命令の途中への分岐が存在しな(\とし\う
保証はあり得ないので、どのようにすればこの複合化情報が維持できるか、さら
に、より重要なことであるが、任意の位置への分岐が存在する状態で、どのよう
にすれば正しいプログラムの挙動を維持することができるかは、これまでに明ら
力1になっていない。この問題は、後述するように、実際(二(よ第4B図の命
令取出し/発行ユニット142によって解決される。まず、複合化タグTの第4
の定義を仮定する。関連する命令が、複合化命令の先頭であるか、あるし1は単
独(二実行される命令である場合には、T=1である。さらに、複合命令の先頭
以外のメンバ命令では、T=Oである。次に、命令取出し/発行ユニット142
が、(上述のような)最大長の複合命令を取り出すことができると仮定すると、
命令取出し/発行ユニット142は、分岐を取ったことに応答して命令を取り出
す時、必ず正確に分岐目標アドレスから始まる最大長の複合命令に等しいテキス
トのブロックを取り出し、その後、取り出されたテキストで、次の複合命令の先
頭を示すT=1の命令に出会うまで、取り出されたT=○の全ての命令を複合命
令として実行する。分岐目標のTビットが1である場合には、これは複合命令の
先頭であり、直接実行できる。第8図はこの状況を示す図である。第8図に使用
した表記法は、■n、、lである。ただし、nは複合命令の番号、mは複合命令
n中のその命令の番号である。mの許容範囲は、1から複合命令の最大長までで
あり、この例では、複合命令の最大長は3と仮定されている。複合命令1の命令
2は、分岐命令であり、この例では、2つの可能な目標経路uaI+及びl1b
l’lを有する。経路” a”は、複合命令jの途中(工、)に分岐し、経路7
7b71は、複合命令jの先頭の命令に分岐する。この分岐が経路”a”に従う
場合、ハードウェアは、最大長の複合命令、すなわち3個の命令を取り出し、そ
の後、工j2と工j3を複合命令として実行する。取出しの残りすなわち工に1
は、(T=1であることから)次の複合命令の先頭または単一の命令であると認
められ、続いて実行するためにテキストの次のブロックが取り出される間、保持
される。この分岐命令がTT b″経路取って複合命令jの先頭の命令に達した
場合、ハードウェアは、やはり最大長の複合命令に等しいテキストのブロックを
取り出す。このブロックは、この場合は完全な複合命令、すなわち、Ijl、工
1□及びIJ3をもたらす。この複合命令の実行は直接に進行する。
、この技法は、上述の第2のタグ・フォーマットなど、他のタグ・フォーマット
にも同様に適用可能である。
第8図では、分岐命令B1□が、その次の命令と複合化されているが、分岐が取
られるので、この分岐命令の次の予め取出された命令は、それがその分岐を含む
複合命令のメンバ単位から構成されようが、次の単一命令または複合命令であろ
うが、(データと命令が混在できるシステムでは)実際にはデータであろうが、
いずれの場合でも、正しいプログラムの挙動を維持しようとするならば、次の命
令によって機械状態が更新されてはならない。さらに、分岐命令の目標が取り出
された結果、第2の分岐を含む複合命令が取り出されることがあり、この第2の
分岐の後にもテキストが続くことがあるが、第2の分岐を取る場合には、このテ
キストによって機械状態が更新されてはならない。この分岐命令への分岐のシー
ケンスは、無限に繰り返す可能性がある。いずれの場合でも、正しいプログラム
挙動を維持するための解決策は、実行済みになってはならない命令が機械状態を
更新しないようにすることである。すなわち、取られた分岐の後に逐次的に続く
予め取出されたテキストの実行の結果を、無効にしなければならない。これは、
アルゴリズムでは次のように記述できる。
1、複合命令のすべての分岐を含む複合命令の実行を開始する。
2、複合命令が実際に分岐命令を含む場合には、その分岐命令と同一の複合命令
であろうと、後続の複合命令または単一命令にあろうと、その分岐の後に続くど
の命令もマシン・ステートを更新しないようにする。
3、分岐が取られる場合、その分岐の後に逐次的に続く全ての命令の実行の結果
を無効にする。しかしながら、分岐目標の実行は無効にしてはならない。
本発明を好ましい実施例及び他の実施例に関して説明してきたが、ここに開示し
た発明を理解すれば当業者に理解されるように、現在及び将来に様々な変更を行
うことができる。
上記の修正及び将来の改良は、本発明を最初に発明した本発明者等の権利を保護
するものと解釈すべき特許請求の範囲に含まれるものであることを理解されたい
。
FIG、4A
9 「−一一一一−−一−−−−コ
FIG、7
記憶
FIG、8
命令並列プロセッサのための命令を準備するシステム及び複合命令の途中で分岐
するための機構を有するシステム開示の要約
スカラー計算機の一連の基本命令から生成された複合命令を復号するための命令
プロセッサ・システムが開示される。
このプロセッサは、複合化ファシリティにより、前記命令プロセッサで複合化命
令フォーマットの実行を可能にする制御ビットが複合命令フォーマット・テキス
トに付加された、命令フォーマット・テキストを有する一連の複合命令を生成す
る。このシステムは、命令プロセッサの演算論理装置によって複合命令または単
一命令として実行できる命令を取り出して復号し、元々記憶装置にあったスカラ
ー計算機の基本命令のスカラー実行は、元のままに保持する。分岐など、複合命
令のメンバ単位と他の命令との相互関係に基づいたメンバ命令単位部分の実行の
記録結果の正しさに影響を及ぼす可能性のある状態が発生すると、このシステム
は、複合命令のメンバ命令単位の実行をすべて無効にする。その結果得られる一
連の複合化された命令は、通常は、実行される複合化された命令ストリームが並
列の性質をもつために、保持された元のフォーマットよりも高速で実行される。
国際調査報告
に+env+、、+^、。、軸s、 PCT/US91.102037PCT/
US911020:17
PC’r/US911020:lフ
Claims (20)
- 1.スカラー計算機の一連の基本命令を復号し、命令プロセッサで複合命令フォ ーマット・テキストの実行を可能にする命令フォーマット・テキストに付加され た制御ビットを有する命令フォーマット・テキストで一連の複合命令を生成する ための複合化復号手段と、 前記複合命令を取り出すための取出し手段と、取り出された複合命令及び単一命 令を復号するための復号手段と、 複合化命令及び単一命令を実行するための実行手段とを備え、 スカラー計算機の前記基本命令のスカラー実行を元のままに保持する複合命令プ ログラムを前記実行手段に提供することを特徴とする命令プロセッサで命令を処 理するためのシステム。
- 2.前記基本命令は、前記命令プロセッサとは異なるが、前記複合命令プログラ ムをコンパイルまたはアセンプルすることによって、前記命令プロセッサで実行 されるスカラー計算機のために元来構成されたプログラム命令であることを特徴 とする請求項1記載の命令プロセッサで命令を処理するためのシステム。
- 3.元の基本命令は可変長であり、メンバ命令単位の長さがnの複合命令を前記 命令プロセッサで実行可能にする複数のn個の複合可能ユニットを有する複合化 ファシリティが設けられ、各複合命令に、前記複合命令の実行に関する制御フィ ールドがあることを特徴とする請求項1記載の命令プロセッサで命令を処理する ためのシステム。
- 4.前記制御フィールドは、複合命令の先頭またはスカラー命令の先頭を示す機 能ビット情報を有する機能情報を含むことを特徴とする請求項3記載の命令プロ セッサで命令を処理するためのシステム。
- 5.複合命令は、一方の状態にセットされたとき複合命令を区切る区切りビット 情報を含み、かつ複合命令の最初のメンバ単位とそれ以外のメンバ単位をリンク するフィールド情報を含むことを特徴とする請求項3記載の命令プロセッサで命 令を処理するためのシステム。
- 6.前記複合命令プログラムに複合命令とスカラー命令が混在し、前記区切りビ ット情報は、複合化されたフォーマット・テキストのメンバ命令単位が前に開始 された複合命令に属するのか、それとも複合化された命令プログラムの実行で、 複合化された命令またはスカラー命令である複合化されたフォーマット・テキス トの他の命令の先頭の開始メンバ単位であるのかを示すことを特徴とする請求項 5記載の命令プロセッサで命令を処理するためのシステム。
- 7.プログラムは、次にくる複合化された命令プログラムの他の命令メンバ単位 に関連する結果を生じる比較クラスまたは分岐クラスの命令を含み、比較クラス の様々なメンバ及び分岐クラスのすべてのメンバの実行前解析は、前記複合化復 号手段によって実行前の命令復号中に識別されることを特徴とする実行前複合化 ファシリティを含む請求項1記載の命令プロセッサで命令を処理するためのシス テム。
- 8.前記システムは、前記複合命令プログラムの実行のために識別される命令プ ロセッサのアーキテクチャ情報に基づくアーキテクチャ複合化規則手段を備え、 前記複合化規則手段は、複合命令のメンバ命令単位の間に、命令プロセッサで処 理できないインターロックが存在しないことを保証するチェックを与えることを 特徴とする請求項1記載の命令プロセッサで命令を処理するためのシステム。
- 9.前記複合命令フォーマット・テキストは、複合命令のための制御フィールド 情報を含み、前記制御フィールド情報は、a)複合命令の先頭をマークする機能 と、b)2つの複合命令を並列に実行させる機能と、c)複合命令が複数の実行 サイクルを有することを示す機能と、 d)パイプライン処理を中断する機能と、e)命令が分岐命令であり、そのフィ ールドが分岐を取るようにセットされている場合に、予測された分岐を取らせる 機能と、 f)その命令が、前の複合命令からの記憶インターロックを有するか否かを示す 機能と、 g)動的命令発行を可能にする機能と、h)命令が演算論理機構(ALU)を使 用するか否かを示す機能 を有するフィールド情報からなるグループから選択されることを特徴とする請求 項1記載の命令プロセッサで命令を処理するためのシステム。
- 10.複合命令の先頭をマークする制御フィールドは、実行のために複合化され ずスカラーのままである命令を含めて、命令の区切り文字として機能することを 特徴とする請求項9記載の命令プロセッサで命令を処理するためのシステム。
- 11.前記複合命令プログラムは、基本命令を予め複合化することによって許容 される最大限までの複合命令の取出しを含み、分岐目標アドレスで実行を開始し 、前記命令が複合命令のメンバであることを先頭の制御フィールドが指示するす べての命令を実行することを含む処理よって実行されることを特徴とする請求項 1記載の命令プロセッサで命令を処理するためのシステム。
- 12.さらに、命令フォーマット・テキストを複合命令プログラムとして実行す るため、命令プロセッサのアーキテクチャ情報に基づいて命令プロセッサ用の複 合化規則をチェックして、1複合命令のメンバ命令単位間に、その複合命令プロ グラムを実行すべき命令プロセッサによって実行できないインターロックが存在 しないことを保証する手段を含むことを特徴とする請求項1記載の命令プロセッ サで命令を処理するためのシステム。
- 13.前記複合化命令プログラムは、元来は、前記複合命令プログラムを実行し ようとする前記命令プロセッサと異なる計算機に適用されるソース言語またはア センブリ言語による一連の基本命令から生じ、前記命令プロセッサによって実行 される時、複合化命令プログラムの性能が向上するように、前記複合命令プログ ラムが、機械コードに静的な最適化を適用されて前記命令プロセッサ用に再コン パイルまたは複合化されることを特徴とする請求項1記載の命令プロセッサで命 令を処理するためのシステム。
- 14.取り出されたテキストに含まれ、メンバ単位から構成される複合命令を復 号して、前記複合命令の実行に関連する前記複合命令の命令フォーマットに付加 された制御ビットを検査するための復号手段と、 復号手段に少なくとも一部応答して、目標アドレスから前記複合命令の末尾まで のメンバ単位を発行し、前記複合命令の実行が開始された後の可能な実行のため にテキストの残りの部分を保持する発行手段とを備えたことを特徴とする複合命 令の途中に分岐を含む命令を計算機で処理するためのシステム機構。
- 15.メンバ単位から構成される複合命令を復号して、前記複合命令の実行に関 連する前記複合命令の命令フォーマットに付加された制御ビットを検査するため の復号手段と、前記複合命令の前記メンバ単位の実行の結果の正しさ、または前 記複合命令のメンバ単位と複合命令プログラムとして結合された一連の複合命令 中の他の命令との関連する相互関係に基づく、前記の一連の複合命令の正しさに 影響を及ぼす可能性のある状態が発生した時に、前記複合命令のメンバ単位の実 行をすべて無効にするための無効化手段と、無効にされた実行が行われなかった かのように一連の命令の実行を継続する手段とを備えたことを特徴とする複合命 令の途中に分岐を含む命令を計算機内で処理するためのシステム機構。
- 16.前記複合命令は、複数メンバの複合命令であり、前記複合命令の前記メン バ単位のうちの1つが、その後に少なくとも第2のメンバ単位が続く分岐であり 、実行中に分岐が取られた場合、第2のメンバ単位の結果が無効にされることを 特徴とする請求項15記載の複合命令の途中に分岐を含む命令を処理するための システム機構。
- 17.前記複合命令は、前記複合命令の他のメンバ単位と並列に実行できる分岐 命令であるメンバ単位を含み、分岐が取られた場合、その分岐に続くメンバ単位 を無効にして、後続の命令の影響を、前記の無効にされたメンバ単位が実行され なかったかのようにするための無効化手段が設けられることを特徴とする請求項 14記載の複合命令の途中に分岐を含む命令を処理するためのシステム機構。
- 18.分岐の後の複合命令の第2のメンバ単位が命令であるのが明らかで、かつ 前記第2メンバ単位が、命令であるかのようにその実行が開始できる場合に、無 効化手段は前記第2メンバ単位の実行を無効にすることを特徴とする請求項15 記載の複合命令の途中に分岐を含む命令を処理するためのシステム機構。
- 19.最大限の複合命令を取り出すために取出し手段が設けられ、前記復号手段 は、複合命令の複合メンバ単位の実行を、前記複合命令の任意の位置で開始し、 前記複合命令の終りまで実行させるようにすることを特徴とする請求項14記載 の複合命令の途中に分岐を含む命令を処理するためのシステム機構。
- 20.前記復号手段は、複合命令の終りを検出し、後で実行するために、発行手 段を命令テキストの残りの部分を維持させるようにすることを特徴とする請求項 14記載の複合命令の途中に分岐を含む命令を処理するためのシステム機構。
Applications Claiming Priority (9)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US51938290A | 1990-05-04 | 1990-05-04 | |
| US51938490A | 1990-05-04 | 1990-05-04 | |
| US519,384 | 1990-05-04 | ||
| US519,382 | 1990-05-04 | ||
| US543,458 | 1990-06-26 | ||
| US07/543,458 US5197135A (en) | 1990-06-26 | 1990-06-26 | Memory management for scalable compound instruction set machines with in-memory compounding |
| US07/642,011 US5295249A (en) | 1990-05-04 | 1991-01-15 | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
| US642,011 | 1991-01-15 | ||
| PCT/US1991/002037 WO1991017496A1 (en) | 1990-05-04 | 1991-03-29 | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04506878A true JPH04506878A (ja) | 1992-11-26 |
| JPH0679273B2 JPH0679273B2 (ja) | 1994-10-05 |
Family
ID=46201961
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3507600A Expired - Fee Related JPH0679273B2 (ja) | 1990-05-04 | 1991-03-29 | データ処理装置 |
| JP3507370A Expired - Lifetime JPH0680489B2 (ja) | 1990-05-04 | 1991-03-29 | データ処理装置 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3507370A Expired - Lifetime JPH0680489B2 (ja) | 1990-05-04 | 1991-03-29 | データ処理装置 |
Country Status (7)
| Country | Link |
|---|---|
| EP (2) | EP0481031A4 (ja) |
| JP (2) | JPH0679273B2 (ja) |
| AT (1) | ATE194236T1 (ja) |
| DE (1) | DE69132271T2 (ja) |
| HU (1) | HU216990B (ja) |
| PL (1) | PL166513B1 (ja) |
| WO (2) | WO1991017495A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728639A (ja) * | 1993-07-13 | 1995-01-31 | Nec Corp | マイクロプロセッサ |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
| US7840717B2 (en) * | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing a variable length device command word at a control unit in an I/O processing system |
| US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
| US11334491B1 (en) * | 2020-11-18 | 2022-05-17 | Centaur Technology, Inc. | Side cache array for greater fetch bandwidth |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
| 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 |
| 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 |
| US4574348A (en) * | 1983-06-01 | 1986-03-04 | The Boeing Company | High speed digital signal processor architecture |
| US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
| JPS60101644A (ja) * | 1983-11-07 | 1985-06-05 | Masahiro Sowa | ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ |
| JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
| US4755966A (en) * | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
| 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 |
| DE3751503T2 (de) * | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
| JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
-
1991
- 1991-03-29 EP EP19910907170 patent/EP0481031A4/en not_active Withdrawn
- 1991-03-29 JP JP3507600A patent/JPH0679273B2/ja not_active Expired - Fee Related
- 1991-03-29 HU HU9200024A patent/HU216990B/hu unknown
- 1991-03-29 PL PL91293182A patent/PL166513B1/pl not_active IP Right Cessation
- 1991-03-29 WO PCT/US1991/002040 patent/WO1991017495A1/en not_active Ceased
- 1991-03-29 AT AT91908085T patent/ATE194236T1/de not_active IP Right Cessation
- 1991-03-29 EP EP91908085A patent/EP0545927B1/en not_active Expired - Lifetime
- 1991-03-29 JP JP3507370A patent/JPH0680489B2/ja not_active Expired - Lifetime
- 1991-03-29 DE DE69132271T patent/DE69132271T2/de not_active Expired - Fee Related
- 1991-03-29 WO PCT/US1991/002037 patent/WO1991017496A1/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728639A (ja) * | 1993-07-13 | 1995-01-31 | Nec Corp | マイクロプロセッサ |
Also Published As
| Publication number | Publication date |
|---|---|
| PL166513B1 (pl) | 1995-05-31 |
| EP0481031A1 (en) | 1992-04-22 |
| DE69132271T2 (de) | 2000-12-21 |
| PL293182A1 (en) | 1992-10-19 |
| HUT60048A (en) | 1992-07-28 |
| WO1991017496A1 (en) | 1991-11-14 |
| EP0545927A1 (en) | 1993-06-16 |
| JPH04505823A (ja) | 1992-10-08 |
| EP0545927B1 (en) | 2000-06-28 |
| HU9200024D0 (en) | 1992-03-30 |
| DE69132271D1 (de) | 2000-08-03 |
| HU216990B (hu) | 1999-10-28 |
| JPH0680489B2 (ja) | 1994-10-12 |
| JPH0679273B2 (ja) | 1994-10-05 |
| EP0481031A4 (en) | 1993-01-27 |
| EP0545927A4 (en) | 1993-04-26 |
| ATE194236T1 (de) | 2000-07-15 |
| WO1991017495A1 (en) | 1991-11-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5303356A (en) | System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag | |
| US5504932A (en) | System for executing scalar instructions in parallel based on control bits appended by compounding decoder | |
| US7458069B2 (en) | System and method for fusing instructions | |
| US5448746A (en) | System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution | |
| US5710902A (en) | Instruction dependency chain indentifier | |
| US5974538A (en) | Method and apparatus for annotating operands in a computer system with source instruction identifiers | |
| JP2931890B2 (ja) | データ処理装置 | |
| CN100392596C (zh) | 编译装置及编译方法 | |
| US6799315B2 (en) | High speed virtual machine and compiler | |
| JP3151444B2 (ja) | ロード命令を処理する方法及びスーパースカラ・プロセッサ | |
| US20040215940A1 (en) | Processor, compiling apparatus, and compile program recorded on a recording medium | |
| JPH0429093B2 (ja) | ||
| JPH0773036A (ja) | 命令シーケンスを識別してタグを付加する方法 | |
| JPH04229326A (ja) | スカラ命令の並列実行を得る方法およびシステム | |
| JP2001195250A (ja) | 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置 | |
| US6324639B1 (en) | Instruction converting apparatus using parallel execution code | |
| Shoushtary et al. | Control Flow Management in Modern GPUs | |
| JP2001519954A (ja) | 一時的にターゲット・プロセッサの状態を保持する装置を備えたホスト・マイクロプロセッサ | |
| US6295601B1 (en) | System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline | |
| JP2874351B2 (ja) | 並列パイプライン命令処理装置 | |
| EP0545927B1 (en) | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction | |
| EP0825529A2 (en) | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction | |
| CA2053941A1 (en) | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction | |
| JP3705367B2 (ja) | 命令処理方法 | |
| US20020124163A1 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |