JPH0429093B2 - - Google Patents
Info
- Publication number
- JPH0429093B2 JPH0429093B2 JP57112613A JP11261382A JPH0429093B2 JP H0429093 B2 JPH0429093 B2 JP H0429093B2 JP 57112613 A JP57112613 A JP 57112613A JP 11261382 A JP11261382 A JP 11261382A JP H0429093 B2 JPH0429093 B2 JP H0429093B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- code
- load
- replacement
- 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
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/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/3017—Runtime instruction translation, e.g. macros
-
- 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/30181—Instruction operation extension or modification
-
- 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
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)
Description
〔発明の分野〕
本発明はデータ処理システムに係り、さらに詳
細に説明すれば高性能データ処理システム中の命
令処理ユニツトに係る。 〔発明の背景〕 一般に、高性能デイジタル計算機の命令処理速
度は、命令の先取り、解読及び実行を高度にオー
バラツプさせるような設計手法によつて増強する
ことができる。多くの場合、最大処理速度は1サ
イクルあたり1命令に制限されるが、これは1サ
イクル中に高々1命令しか解読することができな
いという理由による。大形の汎用デイジタル計算
機の最大処理速度は、命令を先取りする能力によ
つて影響されうる。命令の先取りとは、これらの
命令が処理のために必要となる前に該命令を主記
憶から取出すことを意味する。これらの命令は、
一般に命令バツフアと呼ばれる高速のローカル記
憶に保持される。これらの命令は必要に応じて命
令バツフアから命令レジスタへ1つずつゲートさ
れ、そこで解読及び主記憶アドレスの発生のため
に使用される。解読及びアドレス発生の後、当該
命令は命令処理の間に実行ユニツトによつて利用
されるようにオペレーシヨン・レジスタへゲート
される。 1つの命令バツフアは4ダブルワードまでの容
量を有してもよい。もし高性能データ処理システ
ム種々の長さを有する命令、たとえば刊行物であ
る“IBM System/370 Principles of
Operations”、From No.GA22−7000、で定義さ
れている命令について動作するように設計されて
いるならば、4ダブルワードの容量を有する命令
バツフアはほぼ8個の命令を保持することができ
る。 任意のプログラム記憶式計算機は予め定義され
た予定数のプログラム命令について機能するよう
に設計されており、従つて予め指定された機能し
か遂行することができない。プログラムはかかる
命令セツトを利用して作成される。最終的に或る
機能が遂行されることをプログラマが望んだとし
ても、プログラマは利用可能な命令セツトを活用
してプログラム命令のシーケンスを作成しなけれ
ばならない。このようにしてプログラムが作成さ
れ、そして特定の機能が頻繁に生ずることが観察
される場合、新しいプログラム命令を定義するこ
とが望ましいであろう。というのは、このような
1つの命令を解読するだけで、所望の機能が全体
として遂行されることになるからである。しかし
ながら、既存のデータ処理システムは新しく定義
された命令を認識することができず、従つてその
性能を改善することができないのである。また仮
に新しい命令を認識するように新しいデータ処理
システムが設計されたとしても、以前に作成され
た多数のシステム制御用又は適用業務用プログラ
ムは増強された性能の効果を享受できず、従つて
新しく定義された命令を利用するように書直さな
ければならない。 前掲の“IBM System/370 Principles of
Operations”で定義された命令は8ビツトのオ
ペレーシヨン(OP)コード・フイールドを含み、
さらに16個の汎用レジスタを指定する他の幾つか
の4ビツト・フイールドを含む。これらの汎用レ
ジスタは、オペランド・データ、基底アドレス値
又は指標アドレス値を一時的に保持するようにプ
ログラムされうる。基底アドレス・レジスタ又は
指標アドレス・レジスタとして指定された汎用レ
ジスタは、主記憶アドレスを発生又は計算するた
めに命令解読段階の間に利用される。アドレス発
生段階は、汎用レジスタからの基底アドレス値
と、他の汎用レジスタからの指標アドレス値と、
命令に保持された12ビツトの変位アドレス値との
加算を含むことがある。 命令解読と命令実行をオーバラツプさせるよう
に設計されたデータ処理システムでは、或る命令
がその実行中に次の命令のアドレス情報として利
用される汎用レジスタ中のデータを変更するよう
な場合には性能が低下する(これは“アドレス発
生インタロツク”として知られている)。つまり、
最初の命令が実行されてしまうまで、次の命令は
解読及びアドレス発生段階に進むことができない
ので、性能が低下するのである。 〔発明の概要〕 本発明は命令解読及び命令実行をオーバラツプ
させたデータ処理システムの性能を改善するにあ
たつて、アーキテクチヤや命令セツト、オペレー
テイング・システム、コンパイラ又は多数の既存
プログラムを変更することを要しない。即ち、予
定の命令シーケンスが検出されると、該シーケン
スの第1命令に置き変わるべき置換命令が発生さ
れ、かくてデータ処理システムの実行ユニツトは
この1つの置換命令に応答して元の命令シーケン
スによつて要求されたすべての機能を遂行するよ
うにされる。 命令カウンタは命令バツフアから諸命令をアク
セスし、これらの命令を命令レジスタへ転送して
解読及びアドレス発生のために使用できるように
する。命令シーケンス検出器は、予定の命令シー
ケンスの存在を決定するために、命令バツフアに
置かれた隣接命令のOPコード・フイールド及び
種々の4ビツト・フイールドを検査する。このよ
うにして予定の命令シーケンスが検出されると、
置換命令発生器へ信号が与えられ、かくて該発生
器は命令バツフアに置かれた当該命令シーケンス
の第1命令を有効に修正する。置換命令は“擬似
命令”を定義する独特のOPコード・フイールド
によつて識別され、そのOPコードは命令セツト
のOPコードとは異なるようにされる。制御記憶
中のマイクロプログラムによつて制御されるよう
な実行ユニツトを有するデータ処理システムで
は、擬似命令の実行を可能にするために適当なマ
イクロコードをこの制御記憶に保持させ、これを
擬似命令のOPコードでアクセスすることにより、
元の命令シーケンスによつて要求されたすべての
機能を遂行するように実行ユニツトを制御するこ
とができる。 〔発明の詳細な説明〕 第1図は、代表的な高性能データ処理システム
の主要ユニツトをブロツク形式で示す。図示の如
く、主記憶はプログラム/データ記憶10を含
み、これはそこから以前に取出されたデータ又は
命令の高速アクセスを可能とするために高速バツ
フア11と協働する。命令取出/解読ユニツト1
2は解読すべき複数のプログラム命令を事前に取
出し且つこれらの命令をバツフアするとともに、
必要な主記憶アドレスを発生してこれを実行ユニ
ツト13へ供給する。実行ユニツト13は実行す
べき各命令を記憶するためのオペレーシヨン・レ
ジスタ14を含む。実行ユニツト13の一部であ
る制御部15はオペレーシヨン・レジスタ14に
置かれた命令のOPコード・フイールドに応答し、
該命令によつて要求された機能の実行を行なわし
める。システムのすべてのユニツトを制御するた
めに制御信号16が発生される。データ又はオペ
ランドは、実行ユニツト13と主記憶10の間で
バス17を介して転送される。米国特許第
4200927号は、第1図に略示されているような高
性能データ処理システムを一層詳細に記述してい
る。この特許で記述された実行ユニツト13はマ
イクロプログラム制御式の制御記憶を含み、該制
御記憶は実行すべき命令のOPコード・フイール
ドに応答して当該命令を実行するためのマイクロ
プログラムをアドレスする。本発明を実施するた
めには、米国特許第4200927号に記述された実行
ユニツトを変形する必要がある。たとえば、本発
明によつて発生されるシステム/370型のOPコー
ドに応答するためのマイクロ命令を保持するよう
に、その制御記憶を変形すればよい。 第2図ないし第4図は、命令の先取りが第1図
の命令取出/解読ユニツト12によつて行なわれ
る如き高性能データ処理システムで遭遇しうる3
種類の命令バツフアリング機構を表わす。 第2図には、米国特許第4200927号に記述され
ているものと同様の命令バツフアリング機構が図
示されている。図示の如く、命令バツフアは複数
のダブルワード・レジスタ18ないし20から成
り、該レジスタの各々はそれぞれ4つのハーフワ
ード・セクシヨン21を含む。IBMシステム/
370のために定義された命令は1ないし3ハーフ
ワードの長さを有し、また8ビツトのOPコー
ド・フイールドはハーフワードの境界に置かれて
いなければならない。命令カウンタ22は一連の
ゲート23を順次に付能化するが、これは次の命
令を命令レジスタ24へゲートしてその解読を行
なわしめるとともに、第1図の命令取出/解読ユ
ニツト12でアドレス発生を行なわしめるためで
ある。オペレーシヨン・レジスタ14は、第1図
の実行ユニツト13で諸命令が実行されている間
に命令レジスタ24からの命令を受取る。 命令の実行及び解読がオーバラツプされている
ために、オペレーシヨン・レジスタ14は実行中
の命令を記憶し、命令レジスタ24は命令解読及
びアドレス発生段階のための次の後読命令を記憶
し、命令カウンタ22は命令バツフア・レジスタ
18ないし20の適正なハーフワード・セクシヨ
ン21から次の命令をゲートする準備を行なうた
めに命令レジスタ24中の命令の長さに従つてイ
ンクレメントされるのである。命令バツフア・レ
ジスタ18ないし20のいずれかから諸命令が転
送されて該命令バツフア・レジスタが空になる
と、第1図の命令取出/解読ユニツト12は主記
憶10へのアクセスを開始させ、かくて諸ダブル
ワードの命令情報を記憶バス25を介して命令バ
ツフア・レジスタ18ないし20のいずれかへロ
ードさせる。 前述の命令バツフアリング機構は既存のもので
あるが、この機構に追加される本発明はシーケン
ス選択器26、命令シーケンス検出器27及び置
換命令発生器28によつて表わされる。 記憶バス25を介して命令バツフア・レジスタ
18ないし20のいずれかへ諸ダブルワードが転
送され、また命令カウンタ22の順序づけに従つ
て諸命令が命令レジスタ24へ転送される場合、
シーケンス選択器26は一連のゲート29を順次
に付能化することにより、2つの隣接する命令の
少くともOPコードを線30及び31を介して命
令シーケンス検出器27へ転送させる。置換命令
発生器28は所与の置換命令の少くともOPコー
ドを、線33及びシーケンス選択器26の制御下
にある一連のゲート34を介して、命令バツフ
ア・レジスタ18ないし20のいずれかの適正な
位置へ転送させる。この置換命令は、命令シーケ
ンス検出器27によつて検出された当該命令シー
ケンスの最初の命令に置き換わる。 諸命令がオペレーシヨン・レジスタ14から実
行され、そして命令レジスタ24で解読される場
合、命令カウンタ22はこの置換命令を命令バツ
フアから命令レジスタ24へ転送させ、さらにオ
ペレーシヨン・レジスタ14へと転送させる。オ
ペレーシヨン・レジスタ14に置かれたこの置換
命令を、第1図の実行ユニツト13の制御部15
からアクセスされた適正なマイクロプログラムで
実行することにより、命令シーケンス検出器27
によつて検出された当該命令シーケンスが要求す
る処のすべての機能を遂行することができる。 第3図には、他の形式の命令バツフアリング機
構が図示されている。この機構は記憶バス25を
含み、さらに第2図のものと同様に構成された命
令バツフア35を含む。第2図に図示された複雑
なゲート機構は、所与の命令シーケンスにおける
2つ以上の命令を命令シーケンス検出器27で検
査することを可能にする。これに対し、第3図の
ものは簡単ではあるが制限されたシーケンス検出
機構を備えていて、2段の命令レジスタ36及び
37中の命令について動作する。即ち、命令シー
ケンス検出器27及び置換命令発生器28は、命
令レジスタ36及び37の内容を検査することが
できるにすぎない。予定の2命令シーケンスが検
出される場合、経路38を介してオペレーシヨ
ン・レジスタ14へ置換命令が転送される。この
経路38は命令レジスタ36及び37の内容をク
リアするためにも使用される。予定の命令シーケ
ンスを検出しない場合には、オペレーシヨン・レ
ジスタ14は命令レジスタ36の内容を経路39
を介して受取る。 第3図に図示された2段の命令レジスタ36及
び37は“n”個の命令レジスタへ一般化するこ
とができるが、その場合にはスタツクとして扱う
ことができるので、命令バツフア35の代わりに
使用されることになろう。第4図にはこのような
構成が図示されており、その命令シーケンス検出
器27及び置換命令発生器28は命令レジスタ4
0及び41に応答し且つ該レジスタに作用するよ
うに図示されている。前記と同様に、置換命令を
命令レジスタ41へ転送すると、命令レジスタ4
0がクリアされる。この一般化された構成では、
3つ以上の命令を検査することができる。 次に、特定の例に基いて本発明の特性を説明す
る。1つの汎用レジスタを必要とするにすぎない
ようなIBMシステム/370の命令対、即ちRX形
式の「ロード(L)」命令及びRR形式の「ロー
ド・テスト(LTR)」命令の対が以下に示され
る。 L 5、値3 LTR 5,5 一般に、この命令対は所与のブランチ命令に先
行して置かれるが、これは所与のデータ項目の符
号をテストし且つその内容に応じてブランチを行
なわしめるためである。“値3”として表わされ
たアドレスで以て主記憶10をアドレスする前記
の「ロード(L)」命令は、条件コードをセツト
しない。また、RX形式の「ロード・テスト」命
令は存在しない。 説明の便宜上、所与の命令バツフアがこの命令
シーケンスを次のように保持するものと仮定す
る。 ・ ・ 〓1 L 4、値1 〓2 A 4、値2 〓3 ST 4、和 〓4 L 5、値3 〓5 LTR 5,5 〓6 BC 目標 ・ ・ これらの命令は参照を容易にするためのラベル
〓1ないし〓6を与えられており、またプログラ
マによつて書かれるような簡略OPコード(たと
えば、ST=記憶)及び記号による主記憶アドレ
ス(たとえば、和)で表わされている。主記憶1
0におけるこれらの命令のイメージは、OPコー
ド及びオペランドの位置を表わす処の16進デイジ
ツトから成る。16進表記法では、この命令シーケ
ンスは次のように表わされうる。 ・ ・ 〓1 5840A124 〓2 5A40A2D4 〓3 5040A138 〓4 5850A8CC 〓5 1255 〓6 4780A0F0 ・ ・ これらの命令は主記憶10中で次のように直線
的に現われる。 …
5840A1245A40A2D45040A1385850A8CC1255478
0A0F0… IBMシステム/370のアーキテクチヤによれ
ば、16進数00ないし3FのOPコードを有するすべ
ての命令は2バイト長であり、16進数40ないし
7FのOPコードを有するすべての命令は4バイト
長であり、16進数80ないしFFのOPコードを有す
るすべての命令は6バイト長である。命令〓1が
実行中である場合、その位置は知られている。ま
た当該命令バツフアの内容は個別的な命令イメー
ジへ分解することができる。これらの命令イメー
ジを示すために、以下では各OPコードの最初の
16進デイジツトに下線が付されている。 …5840A1245A40A2D45040A1385
850A8CC12554780A0F0… 第1図の実行ユニツト13が命令〓1を実行し
ている間、命令シーケンス検出器27は命令バツ
フアに保持されたすべての後続命令を検査する。
つまり、命令シーケンス検出器27は「ロード
(L)」命令及び「ロード・テスト(LTR)」命令
の如き予定の命令対のシーケンスが存在するか否
かを検査するのである。また、このような命令対
に遭遇した場合、「ロード(L)」命令のR1フイ
ールドで指定された汎用レジスタが「ロード・テ
スト(LTR)」命令のR1及びR2フイールドで指
定された汎用レジスタと同じであるか否かを決定
することが必要である。これらのテストは同時に
遂行されうる。両テストに合格した場合、擬似
OPコードを有する「ロード・テスト(LT)」置
換命令が、命令バツフア中の「ロード(L)」命
令及び「ロード・テスト(LTR)」命令の対に置
き換わる。 この置換は次のような幾つかの方法で行うこと
ができる。 第1方法:「ロード(L)」命令を4バイト長の擬
似OPコードLTで置きかえ、そして「ロー
ド・テスト(LTR)」命令をオール・ゼロの
フイールドを有する「条件ブランチ
(BCR)」命令の如き2バイトのノー・オペ
レーシヨン命令で置き換える。 第2方法:「ロード(L)」命令を6バイト長の擬
似OPコードLTで置き換える。 第3方法:「ロード(L)」命令を4バイト長の疑
似OPコードLTで置き換え、「ロード・テス
ト(LTR)」命令を削除するとともに、当該
ギヤツプの“間隔をつめる”ように命令バツ
フアの内容を操作する。 これらの方法のうちどれを選択するかは、ハー
ドウエアの詳細設計を行なう技術者に任される。
第2方法は簡単で、殆んどの状況を取扱うことが
できるばかりか、回路構成も安価である。このた
め、以下ではこの第2方法を説明する。 以下に示した命令ストリームの16進表記の下部
には、記号マスクが付されている。数字から成る
マスクの部分は、命令イメージとマスクの比較が
行なわれることを示す。符号(=)から成るマス
クの部分は、指示された16進デイジツトの値が重
要でないことを示す。このテストは、これらがす
べて同じデイジツトであるか否かを決定するため
のものである。図式的に説明すれば、このプロセ
スは次のように進行する。
細に説明すれば高性能データ処理システム中の命
令処理ユニツトに係る。 〔発明の背景〕 一般に、高性能デイジタル計算機の命令処理速
度は、命令の先取り、解読及び実行を高度にオー
バラツプさせるような設計手法によつて増強する
ことができる。多くの場合、最大処理速度は1サ
イクルあたり1命令に制限されるが、これは1サ
イクル中に高々1命令しか解読することができな
いという理由による。大形の汎用デイジタル計算
機の最大処理速度は、命令を先取りする能力によ
つて影響されうる。命令の先取りとは、これらの
命令が処理のために必要となる前に該命令を主記
憶から取出すことを意味する。これらの命令は、
一般に命令バツフアと呼ばれる高速のローカル記
憶に保持される。これらの命令は必要に応じて命
令バツフアから命令レジスタへ1つずつゲートさ
れ、そこで解読及び主記憶アドレスの発生のため
に使用される。解読及びアドレス発生の後、当該
命令は命令処理の間に実行ユニツトによつて利用
されるようにオペレーシヨン・レジスタへゲート
される。 1つの命令バツフアは4ダブルワードまでの容
量を有してもよい。もし高性能データ処理システ
ム種々の長さを有する命令、たとえば刊行物であ
る“IBM System/370 Principles of
Operations”、From No.GA22−7000、で定義さ
れている命令について動作するように設計されて
いるならば、4ダブルワードの容量を有する命令
バツフアはほぼ8個の命令を保持することができ
る。 任意のプログラム記憶式計算機は予め定義され
た予定数のプログラム命令について機能するよう
に設計されており、従つて予め指定された機能し
か遂行することができない。プログラムはかかる
命令セツトを利用して作成される。最終的に或る
機能が遂行されることをプログラマが望んだとし
ても、プログラマは利用可能な命令セツトを活用
してプログラム命令のシーケンスを作成しなけれ
ばならない。このようにしてプログラムが作成さ
れ、そして特定の機能が頻繁に生ずることが観察
される場合、新しいプログラム命令を定義するこ
とが望ましいであろう。というのは、このような
1つの命令を解読するだけで、所望の機能が全体
として遂行されることになるからである。しかし
ながら、既存のデータ処理システムは新しく定義
された命令を認識することができず、従つてその
性能を改善することができないのである。また仮
に新しい命令を認識するように新しいデータ処理
システムが設計されたとしても、以前に作成され
た多数のシステム制御用又は適用業務用プログラ
ムは増強された性能の効果を享受できず、従つて
新しく定義された命令を利用するように書直さな
ければならない。 前掲の“IBM System/370 Principles of
Operations”で定義された命令は8ビツトのオ
ペレーシヨン(OP)コード・フイールドを含み、
さらに16個の汎用レジスタを指定する他の幾つか
の4ビツト・フイールドを含む。これらの汎用レ
ジスタは、オペランド・データ、基底アドレス値
又は指標アドレス値を一時的に保持するようにプ
ログラムされうる。基底アドレス・レジスタ又は
指標アドレス・レジスタとして指定された汎用レ
ジスタは、主記憶アドレスを発生又は計算するた
めに命令解読段階の間に利用される。アドレス発
生段階は、汎用レジスタからの基底アドレス値
と、他の汎用レジスタからの指標アドレス値と、
命令に保持された12ビツトの変位アドレス値との
加算を含むことがある。 命令解読と命令実行をオーバラツプさせるよう
に設計されたデータ処理システムでは、或る命令
がその実行中に次の命令のアドレス情報として利
用される汎用レジスタ中のデータを変更するよう
な場合には性能が低下する(これは“アドレス発
生インタロツク”として知られている)。つまり、
最初の命令が実行されてしまうまで、次の命令は
解読及びアドレス発生段階に進むことができない
ので、性能が低下するのである。 〔発明の概要〕 本発明は命令解読及び命令実行をオーバラツプ
させたデータ処理システムの性能を改善するにあ
たつて、アーキテクチヤや命令セツト、オペレー
テイング・システム、コンパイラ又は多数の既存
プログラムを変更することを要しない。即ち、予
定の命令シーケンスが検出されると、該シーケン
スの第1命令に置き変わるべき置換命令が発生さ
れ、かくてデータ処理システムの実行ユニツトは
この1つの置換命令に応答して元の命令シーケン
スによつて要求されたすべての機能を遂行するよ
うにされる。 命令カウンタは命令バツフアから諸命令をアク
セスし、これらの命令を命令レジスタへ転送して
解読及びアドレス発生のために使用できるように
する。命令シーケンス検出器は、予定の命令シー
ケンスの存在を決定するために、命令バツフアに
置かれた隣接命令のOPコード・フイールド及び
種々の4ビツト・フイールドを検査する。このよ
うにして予定の命令シーケンスが検出されると、
置換命令発生器へ信号が与えられ、かくて該発生
器は命令バツフアに置かれた当該命令シーケンス
の第1命令を有効に修正する。置換命令は“擬似
命令”を定義する独特のOPコード・フイールド
によつて識別され、そのOPコードは命令セツト
のOPコードとは異なるようにされる。制御記憶
中のマイクロプログラムによつて制御されるよう
な実行ユニツトを有するデータ処理システムで
は、擬似命令の実行を可能にするために適当なマ
イクロコードをこの制御記憶に保持させ、これを
擬似命令のOPコードでアクセスすることにより、
元の命令シーケンスによつて要求されたすべての
機能を遂行するように実行ユニツトを制御するこ
とができる。 〔発明の詳細な説明〕 第1図は、代表的な高性能データ処理システム
の主要ユニツトをブロツク形式で示す。図示の如
く、主記憶はプログラム/データ記憶10を含
み、これはそこから以前に取出されたデータ又は
命令の高速アクセスを可能とするために高速バツ
フア11と協働する。命令取出/解読ユニツト1
2は解読すべき複数のプログラム命令を事前に取
出し且つこれらの命令をバツフアするとともに、
必要な主記憶アドレスを発生してこれを実行ユニ
ツト13へ供給する。実行ユニツト13は実行す
べき各命令を記憶するためのオペレーシヨン・レ
ジスタ14を含む。実行ユニツト13の一部であ
る制御部15はオペレーシヨン・レジスタ14に
置かれた命令のOPコード・フイールドに応答し、
該命令によつて要求された機能の実行を行なわし
める。システムのすべてのユニツトを制御するた
めに制御信号16が発生される。データ又はオペ
ランドは、実行ユニツト13と主記憶10の間で
バス17を介して転送される。米国特許第
4200927号は、第1図に略示されているような高
性能データ処理システムを一層詳細に記述してい
る。この特許で記述された実行ユニツト13はマ
イクロプログラム制御式の制御記憶を含み、該制
御記憶は実行すべき命令のOPコード・フイール
ドに応答して当該命令を実行するためのマイクロ
プログラムをアドレスする。本発明を実施するた
めには、米国特許第4200927号に記述された実行
ユニツトを変形する必要がある。たとえば、本発
明によつて発生されるシステム/370型のOPコー
ドに応答するためのマイクロ命令を保持するよう
に、その制御記憶を変形すればよい。 第2図ないし第4図は、命令の先取りが第1図
の命令取出/解読ユニツト12によつて行なわれ
る如き高性能データ処理システムで遭遇しうる3
種類の命令バツフアリング機構を表わす。 第2図には、米国特許第4200927号に記述され
ているものと同様の命令バツフアリング機構が図
示されている。図示の如く、命令バツフアは複数
のダブルワード・レジスタ18ないし20から成
り、該レジスタの各々はそれぞれ4つのハーフワ
ード・セクシヨン21を含む。IBMシステム/
370のために定義された命令は1ないし3ハーフ
ワードの長さを有し、また8ビツトのOPコー
ド・フイールドはハーフワードの境界に置かれて
いなければならない。命令カウンタ22は一連の
ゲート23を順次に付能化するが、これは次の命
令を命令レジスタ24へゲートしてその解読を行
なわしめるとともに、第1図の命令取出/解読ユ
ニツト12でアドレス発生を行なわしめるためで
ある。オペレーシヨン・レジスタ14は、第1図
の実行ユニツト13で諸命令が実行されている間
に命令レジスタ24からの命令を受取る。 命令の実行及び解読がオーバラツプされている
ために、オペレーシヨン・レジスタ14は実行中
の命令を記憶し、命令レジスタ24は命令解読及
びアドレス発生段階のための次の後読命令を記憶
し、命令カウンタ22は命令バツフア・レジスタ
18ないし20の適正なハーフワード・セクシヨ
ン21から次の命令をゲートする準備を行なうた
めに命令レジスタ24中の命令の長さに従つてイ
ンクレメントされるのである。命令バツフア・レ
ジスタ18ないし20のいずれかから諸命令が転
送されて該命令バツフア・レジスタが空になる
と、第1図の命令取出/解読ユニツト12は主記
憶10へのアクセスを開始させ、かくて諸ダブル
ワードの命令情報を記憶バス25を介して命令バ
ツフア・レジスタ18ないし20のいずれかへロ
ードさせる。 前述の命令バツフアリング機構は既存のもので
あるが、この機構に追加される本発明はシーケン
ス選択器26、命令シーケンス検出器27及び置
換命令発生器28によつて表わされる。 記憶バス25を介して命令バツフア・レジスタ
18ないし20のいずれかへ諸ダブルワードが転
送され、また命令カウンタ22の順序づけに従つ
て諸命令が命令レジスタ24へ転送される場合、
シーケンス選択器26は一連のゲート29を順次
に付能化することにより、2つの隣接する命令の
少くともOPコードを線30及び31を介して命
令シーケンス検出器27へ転送させる。置換命令
発生器28は所与の置換命令の少くともOPコー
ドを、線33及びシーケンス選択器26の制御下
にある一連のゲート34を介して、命令バツフ
ア・レジスタ18ないし20のいずれかの適正な
位置へ転送させる。この置換命令は、命令シーケ
ンス検出器27によつて検出された当該命令シー
ケンスの最初の命令に置き換わる。 諸命令がオペレーシヨン・レジスタ14から実
行され、そして命令レジスタ24で解読される場
合、命令カウンタ22はこの置換命令を命令バツ
フアから命令レジスタ24へ転送させ、さらにオ
ペレーシヨン・レジスタ14へと転送させる。オ
ペレーシヨン・レジスタ14に置かれたこの置換
命令を、第1図の実行ユニツト13の制御部15
からアクセスされた適正なマイクロプログラムで
実行することにより、命令シーケンス検出器27
によつて検出された当該命令シーケンスが要求す
る処のすべての機能を遂行することができる。 第3図には、他の形式の命令バツフアリング機
構が図示されている。この機構は記憶バス25を
含み、さらに第2図のものと同様に構成された命
令バツフア35を含む。第2図に図示された複雑
なゲート機構は、所与の命令シーケンスにおける
2つ以上の命令を命令シーケンス検出器27で検
査することを可能にする。これに対し、第3図の
ものは簡単ではあるが制限されたシーケンス検出
機構を備えていて、2段の命令レジスタ36及び
37中の命令について動作する。即ち、命令シー
ケンス検出器27及び置換命令発生器28は、命
令レジスタ36及び37の内容を検査することが
できるにすぎない。予定の2命令シーケンスが検
出される場合、経路38を介してオペレーシヨ
ン・レジスタ14へ置換命令が転送される。この
経路38は命令レジスタ36及び37の内容をク
リアするためにも使用される。予定の命令シーケ
ンスを検出しない場合には、オペレーシヨン・レ
ジスタ14は命令レジスタ36の内容を経路39
を介して受取る。 第3図に図示された2段の命令レジスタ36及
び37は“n”個の命令レジスタへ一般化するこ
とができるが、その場合にはスタツクとして扱う
ことができるので、命令バツフア35の代わりに
使用されることになろう。第4図にはこのような
構成が図示されており、その命令シーケンス検出
器27及び置換命令発生器28は命令レジスタ4
0及び41に応答し且つ該レジスタに作用するよ
うに図示されている。前記と同様に、置換命令を
命令レジスタ41へ転送すると、命令レジスタ4
0がクリアされる。この一般化された構成では、
3つ以上の命令を検査することができる。 次に、特定の例に基いて本発明の特性を説明す
る。1つの汎用レジスタを必要とするにすぎない
ようなIBMシステム/370の命令対、即ちRX形
式の「ロード(L)」命令及びRR形式の「ロー
ド・テスト(LTR)」命令の対が以下に示され
る。 L 5、値3 LTR 5,5 一般に、この命令対は所与のブランチ命令に先
行して置かれるが、これは所与のデータ項目の符
号をテストし且つその内容に応じてブランチを行
なわしめるためである。“値3”として表わされ
たアドレスで以て主記憶10をアドレスする前記
の「ロード(L)」命令は、条件コードをセツト
しない。また、RX形式の「ロード・テスト」命
令は存在しない。 説明の便宜上、所与の命令バツフアがこの命令
シーケンスを次のように保持するものと仮定す
る。 ・ ・ 〓1 L 4、値1 〓2 A 4、値2 〓3 ST 4、和 〓4 L 5、値3 〓5 LTR 5,5 〓6 BC 目標 ・ ・ これらの命令は参照を容易にするためのラベル
〓1ないし〓6を与えられており、またプログラ
マによつて書かれるような簡略OPコード(たと
えば、ST=記憶)及び記号による主記憶アドレ
ス(たとえば、和)で表わされている。主記憶1
0におけるこれらの命令のイメージは、OPコー
ド及びオペランドの位置を表わす処の16進デイジ
ツトから成る。16進表記法では、この命令シーケ
ンスは次のように表わされうる。 ・ ・ 〓1 5840A124 〓2 5A40A2D4 〓3 5040A138 〓4 5850A8CC 〓5 1255 〓6 4780A0F0 ・ ・ これらの命令は主記憶10中で次のように直線
的に現われる。 …
5840A1245A40A2D45040A1385850A8CC1255478
0A0F0… IBMシステム/370のアーキテクチヤによれ
ば、16進数00ないし3FのOPコードを有するすべ
ての命令は2バイト長であり、16進数40ないし
7FのOPコードを有するすべての命令は4バイト
長であり、16進数80ないしFFのOPコードを有す
るすべての命令は6バイト長である。命令〓1が
実行中である場合、その位置は知られている。ま
た当該命令バツフアの内容は個別的な命令イメー
ジへ分解することができる。これらの命令イメー
ジを示すために、以下では各OPコードの最初の
16進デイジツトに下線が付されている。 …5840A1245A40A2D45040A1385
850A8CC12554780A0F0… 第1図の実行ユニツト13が命令〓1を実行し
ている間、命令シーケンス検出器27は命令バツ
フアに保持されたすべての後続命令を検査する。
つまり、命令シーケンス検出器27は「ロード
(L)」命令及び「ロード・テスト(LTR)」命令
の如き予定の命令対のシーケンスが存在するか否
かを検査するのである。また、このような命令対
に遭遇した場合、「ロード(L)」命令のR1フイ
ールドで指定された汎用レジスタが「ロード・テ
スト(LTR)」命令のR1及びR2フイールドで指
定された汎用レジスタと同じであるか否かを決定
することが必要である。これらのテストは同時に
遂行されうる。両テストに合格した場合、擬似
OPコードを有する「ロード・テスト(LT)」置
換命令が、命令バツフア中の「ロード(L)」命
令及び「ロード・テスト(LTR)」命令の対に置
き換わる。 この置換は次のような幾つかの方法で行うこと
ができる。 第1方法:「ロード(L)」命令を4バイト長の擬
似OPコードLTで置きかえ、そして「ロー
ド・テスト(LTR)」命令をオール・ゼロの
フイールドを有する「条件ブランチ
(BCR)」命令の如き2バイトのノー・オペ
レーシヨン命令で置き換える。 第2方法:「ロード(L)」命令を6バイト長の擬
似OPコードLTで置き換える。 第3方法:「ロード(L)」命令を4バイト長の疑
似OPコードLTで置き換え、「ロード・テス
ト(LTR)」命令を削除するとともに、当該
ギヤツプの“間隔をつめる”ように命令バツ
フアの内容を操作する。 これらの方法のうちどれを選択するかは、ハー
ドウエアの詳細設計を行なう技術者に任される。
第2方法は簡単で、殆んどの状況を取扱うことが
できるばかりか、回路構成も安価である。このた
め、以下ではこの第2方法を説明する。 以下に示した命令ストリームの16進表記の下部
には、記号マスクが付されている。数字から成る
マスクの部分は、命令イメージとマスクの比較が
行なわれることを示す。符号(=)から成るマス
クの部分は、指示された16進デイジツトの値が重
要でないことを示す。このテストは、これらがす
べて同じデイジツトであるか否かを決定するため
のものである。図式的に説明すれば、このプロセ
スは次のように進行する。
【表】
【表】
第5図は、「ロード・テスト(LT)」置換命令
を作成するための諸条件を示す論理表示である。
命令シーケンス検出器27の検査論理はOPコー
ド・マスク42及び43を含み、前者は第1命令
のOPコード・フイールド45が16進値58(ロー
ド:L)を有するときAND回路44へ出力信号
を供給し、後者は第2命令のOPコード・フイー
ルド46が16進値12(ロード・テスト:LTR)を
有するときAND回路44へ出力信号を供給する。
この特定の状況では、一致論理47は、第1命令
のR1フイールド48と第2命令のR1フイールド
49及びR2フイールド50とがすべて等しいこ
とを決定する。この場合、AND回路44は出力
信号51を供給し、かくて予定の命令シーケンス
が検出されたことを指示する。この出力信号51
に応答して、“ロード・テスト”発生器52は擬
似OPコードC8を線53を介して第1命令のOP
コード・フイールド45へ転送する。この擬似
OPコードC8が実行のために解読される場合、
これは3ハーフワード長のものとして検出され
る。第1図の命令カウンタ22は3ハーフワード
分だけステツプされ、かくて命令バツフアに元々
保持されていた第2命令の「ロード・テスト
(LTR)」命令の位置をスキツプする。 第1図に図示された実行ユニツト13のマイク
ロプログラム式制御部15は適正にプログラムさ
れており、擬似OPコードC8はこのマイクロプロ
グラムをアクセスすることができる。このマイク
ロプログラムは元の「ロード(L)」命令によつ
てアドレスされるオペランドのために主記憶10
をアクセスし、これを汎用レジスタ〓5に記憶
し、符号をサンプルし、そして条件コードをセツ
トする。最後の2ステツプは「ロード・テスト
(LTR)」命令によつて元々遂行されていたもの
である。 本発明が有する処の重要な利点は、種々の命令
オーバラツプ方式によつては達成できない。かか
る命令オーバラツプ方式によつて得られる性能
は、“アドレス発生インタロツク”が生ずること
によつて低下することになるからである。この
“アドレス発生インタロツク”が生ずるのは、所
与の命令によつて変更されるような汎用レジスタ
が後続命令によつて指標又は基底レジスタとして
使用される場合である。本発明は、このような
“アドレス発生インタロツク”によつて妨害を受
けない。ここで注意すべきは、命令オーバラツプ
方式と本発明は相いれぬものではなく、両者は同
一のプロセツサで実施しうるということである。 “アドレス発生インタロツク”の問題は、以下
の代表的な命令対の例に見出される。 〓11 L 5,4(2,9)引数のアドレスをピツ
ク・アツプ 〓12 L 5,0(0,5)引数の値をピツク・ア
ツプ これらの2命令は“ロード使用”対と呼ばれ
る。というのは、命令〓11は汎用レジスタ〓5に
ロードし、そして命令〓12は有効アドレスを計算
するために汎用レジスタ〓5を使用するからであ
る。有効アドレスは、当該命令の変移D2フイー
ルドと、ゼロを除く指標X2フイールドによつて
指定された汎用レジスタの内容と、ゼロを除く基
底B2フイールドによつて指定された汎用レジス
タの内容との和である。これらの加算は、プロセ
ツサ中の3入力加算器によつて遂行される。オー
バラツプされた命令実行を行なうプロセツサで
は、命令〓11及び命令〓12の如き命令対は“アド
レス発生インタロツク”による遅延をこうむる。
汎用レジスタ〓5は、加算器が命令〓12のための
アドレス計算を遂行しうる前に、有効でなければ
ならない。命令〓11及び〓12のために示された前
記の値については、命令〓12の変位D2フイール
ド及び指標X2フイールドがともにゼロであると
いう理由で、有効アドレスは命令〓11によつて取
出されるワードと同じになる。第2の「ロード
(L)」命令における基底アドレスのために使用さ
れる汎用レジスタは、該アドレスが指標X2フイ
ールド又は変位D2フイールドによつて修正され
なければ、第1の「ロード(L)」命令によつて
ロードされる汎用レジスタと同じものである。命
令シーケンス検出器27はこのような状況を検出
し、これを有利に使用することができる。ともに
「ロード(L)」命令である命令〓11及び〓12の対
は、置換命令の擬似OPコード「間接ロード」に
よつて置換される。この擬似OPコードは実行ユ
ニツト13の制御部15からマイクロプログラム
をアクセスし、かくて第1図の高速バツフア11
に2重取出しを行なわしめる。即ち、第1の「ロ
ード(L)」命令によつてアドレスされた第1ワ
ードを取出し、そしてこのワードを第2の「ロー
ド(L)」命令によつて要求された第2取出しの
アドレスとして直ちに使用するのである。 第6図はかかる機能の論理を示し、これは「間
接ロード」を指示する処の擬似OPコードを有す
る置換命令を作成するためのものである。第1の
「ロード(L)」命令のOPコード・フイールド5
4は、該命令のR1フイールド55によつて指示
された汎用レジスタが主記憶アドレスからのオペ
ランドを受取ることを示す。この主記憶アドレス
は、B2フイールド56によつて指示された汎用
レジスタの内容と、X2フイールド57によつて
指定された汎用レジスタの内容と、D2フイール
ド58とを加算することによつて発生される。第
2の「ロード(L)」命令のOPコード・フイール
ド59は、R1フイールド60によつて指定され
た汎用レジスタが主記憶アドレスからのオペラン
ドを受取ることを示す。この主記憶アドレスは、
X2フイールド61によつて指定された汎用レジ
スタの内容と、B2フイールド62によつて指定
された汎用レジスタの内容と、D2フイールド6
3とを加算することによつて発生される。 命令シーケンス検出器27の検査論理は、シー
ケンスをなす第1及び第2の「ロード(L)」命
令を検出するためのOPコード・マスク64及び
65を含む。「間接ロード」シーケンスを検出す
るための他の条件はゼロ検出論理66によつて与
えられ、該論理は第2の「ロード(L)」命令に
対するアドレス発生段階がB2フイールド62に
よつて指定された汎用レジスタの内容(基底アド
レス)だけを必要とするということを決定する。
最後の条件は一致論理67によつて与えられ、該
論理はフイールド55,60及び62によつて指
定された汎用レジスタが同じであるということを
決定する。これらのすべての条件が満足された場
合、AND回路68は出力信号69を供給するこ
とにより、予定シーケンスの命令が検出されたこ
とを示す。この出力信号69に応答して、“間接
ロード”発生器70は擬似OPコードを線71を
介してOPコード・フイールド54へ転送し、か
くて置換命令である「間接ロード」命令を作成す
る。即ち、「間接ロード」命令の擬似OPコードが
第1の「ロード(L)」命令のOPコード・フイー
ルド54へ転送されるのである。 IBMシステム/370の命令形式は、4ハーフワ
ードの命令形式を指定するようなOPコードを含
んでいない。従つて、置換命令である「間接ロー
ド」命令の擬似OPコードは2ハーフワードの命
令を指示するように符号化されるので、命令カウ
ンタ22は第2の「ロード(L)」命令のOPコー
ド・フイールド59をアクセスすべく2ハーフワ
ード分だけインクレメントされる。また、第2の
「ロード(L)」命令の実行を防止するため、置換
命令発生器28は“条件ブランチ”発生器72を
含み、該手段は出力信号69に応答して第2のロ
ード命令に対する置換命令を線73を介して転送
する。望まれる結果は、実行ユニツト13によつ
ていかなる機能も遂行されないように“ノー・オ
ペレーシヨン”を指示することである。IBMシ
ステム/370の「条件ブランチ(BCR)」命令に
16進数00(オール・ゼロ)のマスクを与えると、
これはシステム/370のすべてのプロセツサによ
つてノー・オペレーシヨン命令として解釈され
る。かくて、第2の「ロード(L)」命令はこの
ような「条件ブランチ(BCR)」命令によつて置
換される。 ここで、次のような命令対につてい考えること
にする。 〓21 L 5,6(7,8) 目標のアドレス
をピツク・アツプ 〓22 BCR F、5 目標への無条件ブランチ この命令対は前記の命令対〓11及び〓12の対に
似ている。この命令対もまた“アドレス発生イン
タロツク”による遅延をこうむる。「条件ブラン
チ(BCR)」命令である命令〓22はアドレス計算
を行なわないけれども、該命令は汎用レジスタ〓
5が有効になるまで第1図の高速バツフア11へ
取出要求を送ることができない。また、この命令
のマスクは“F”(オール1)であるから、常に
ブランチが行なわれる。命令取出しは、条件コー
ドとは関係なく、「ロード(L)」命令である命令
〓21によつて取出されたアドレスについて行なわ
れる。これは前記した間接アドレツシングの変形
である。命令シーケンス検出器27はこの状況を
認識し、命令〓21及び〓22の対を擬似OPコード
「ロード・ブランチ」で置換する。つまり、第1
の「ロード(L)」命令によつてアクセスされた
データは直ちに新しい命令をアクセスするための
主記憶アドレスとして使用され、そして第1図の
命令カウンタ22に記憶されるのである。 第7図は命令シーケンス検出器27の論理を示
す。この論理は予定シーケンスの命令を検出し、
「ロード・ブランチ」置換命令を指示する擬似OP
コードを発生し、これを線74を介して該シーケ
ンス中にある第1の「ロード(L)」命令のOPコ
ード・フイールド75へ転送する。AND回路7
6は出力信号77を供給して“ロード・ブラン
チ”発生器78を付能化する。AND回路76は、
OPコード・マスク79及び80、「条件ブランチ
(BCR)」命令のマスク・フイールド82が16進
数F(オール1)であることを示すマスク論理8
1、汎用レジスタを指定するR1フイールド84
及びR2フイールド85が等しいことを示す一致
論理83からの出力をそれぞれ受取る。 前記した3種類の命令シーケンスは過去に書か
れたプログラムで出現する頻度が高いものであ
り、そして前述の論理はこれらの命令シーケンス
を命令バツフア機構内で検出するのに適してい
る。前記命令シーケンスのいずれかが出現したと
きに出力信号を発生し、これに応じて当該シーケ
ンスの第1命令に対する置換命令を発生してその
実行を開始することにより、以前には当該命令シ
ーケンスの全体で達成されていた機能を1つの命
令だけで行なうことができる。もちろん、出現頻
度の高い他の命令シーケンスもありうるが、これ
らの命令シーケンスを前記と同様の論理で検査し
て他の置換命令を作成しうることは当業者にとつ
ては明らかであろう。このことは3以上の命令か
ら成るシーケンスについても同様である。
を作成するための諸条件を示す論理表示である。
命令シーケンス検出器27の検査論理はOPコー
ド・マスク42及び43を含み、前者は第1命令
のOPコード・フイールド45が16進値58(ロー
ド:L)を有するときAND回路44へ出力信号
を供給し、後者は第2命令のOPコード・フイー
ルド46が16進値12(ロード・テスト:LTR)を
有するときAND回路44へ出力信号を供給する。
この特定の状況では、一致論理47は、第1命令
のR1フイールド48と第2命令のR1フイールド
49及びR2フイールド50とがすべて等しいこ
とを決定する。この場合、AND回路44は出力
信号51を供給し、かくて予定の命令シーケンス
が検出されたことを指示する。この出力信号51
に応答して、“ロード・テスト”発生器52は擬
似OPコードC8を線53を介して第1命令のOP
コード・フイールド45へ転送する。この擬似
OPコードC8が実行のために解読される場合、
これは3ハーフワード長のものとして検出され
る。第1図の命令カウンタ22は3ハーフワード
分だけステツプされ、かくて命令バツフアに元々
保持されていた第2命令の「ロード・テスト
(LTR)」命令の位置をスキツプする。 第1図に図示された実行ユニツト13のマイク
ロプログラム式制御部15は適正にプログラムさ
れており、擬似OPコードC8はこのマイクロプロ
グラムをアクセスすることができる。このマイク
ロプログラムは元の「ロード(L)」命令によつ
てアドレスされるオペランドのために主記憶10
をアクセスし、これを汎用レジスタ〓5に記憶
し、符号をサンプルし、そして条件コードをセツ
トする。最後の2ステツプは「ロード・テスト
(LTR)」命令によつて元々遂行されていたもの
である。 本発明が有する処の重要な利点は、種々の命令
オーバラツプ方式によつては達成できない。かか
る命令オーバラツプ方式によつて得られる性能
は、“アドレス発生インタロツク”が生ずること
によつて低下することになるからである。この
“アドレス発生インタロツク”が生ずるのは、所
与の命令によつて変更されるような汎用レジスタ
が後続命令によつて指標又は基底レジスタとして
使用される場合である。本発明は、このような
“アドレス発生インタロツク”によつて妨害を受
けない。ここで注意すべきは、命令オーバラツプ
方式と本発明は相いれぬものではなく、両者は同
一のプロセツサで実施しうるということである。 “アドレス発生インタロツク”の問題は、以下
の代表的な命令対の例に見出される。 〓11 L 5,4(2,9)引数のアドレスをピツ
ク・アツプ 〓12 L 5,0(0,5)引数の値をピツク・ア
ツプ これらの2命令は“ロード使用”対と呼ばれ
る。というのは、命令〓11は汎用レジスタ〓5に
ロードし、そして命令〓12は有効アドレスを計算
するために汎用レジスタ〓5を使用するからであ
る。有効アドレスは、当該命令の変移D2フイー
ルドと、ゼロを除く指標X2フイールドによつて
指定された汎用レジスタの内容と、ゼロを除く基
底B2フイールドによつて指定された汎用レジス
タの内容との和である。これらの加算は、プロセ
ツサ中の3入力加算器によつて遂行される。オー
バラツプされた命令実行を行なうプロセツサで
は、命令〓11及び命令〓12の如き命令対は“アド
レス発生インタロツク”による遅延をこうむる。
汎用レジスタ〓5は、加算器が命令〓12のための
アドレス計算を遂行しうる前に、有効でなければ
ならない。命令〓11及び〓12のために示された前
記の値については、命令〓12の変位D2フイール
ド及び指標X2フイールドがともにゼロであると
いう理由で、有効アドレスは命令〓11によつて取
出されるワードと同じになる。第2の「ロード
(L)」命令における基底アドレスのために使用さ
れる汎用レジスタは、該アドレスが指標X2フイ
ールド又は変位D2フイールドによつて修正され
なければ、第1の「ロード(L)」命令によつて
ロードされる汎用レジスタと同じものである。命
令シーケンス検出器27はこのような状況を検出
し、これを有利に使用することができる。ともに
「ロード(L)」命令である命令〓11及び〓12の対
は、置換命令の擬似OPコード「間接ロード」に
よつて置換される。この擬似OPコードは実行ユ
ニツト13の制御部15からマイクロプログラム
をアクセスし、かくて第1図の高速バツフア11
に2重取出しを行なわしめる。即ち、第1の「ロ
ード(L)」命令によつてアドレスされた第1ワ
ードを取出し、そしてこのワードを第2の「ロー
ド(L)」命令によつて要求された第2取出しの
アドレスとして直ちに使用するのである。 第6図はかかる機能の論理を示し、これは「間
接ロード」を指示する処の擬似OPコードを有す
る置換命令を作成するためのものである。第1の
「ロード(L)」命令のOPコード・フイールド5
4は、該命令のR1フイールド55によつて指示
された汎用レジスタが主記憶アドレスからのオペ
ランドを受取ることを示す。この主記憶アドレス
は、B2フイールド56によつて指示された汎用
レジスタの内容と、X2フイールド57によつて
指定された汎用レジスタの内容と、D2フイール
ド58とを加算することによつて発生される。第
2の「ロード(L)」命令のOPコード・フイール
ド59は、R1フイールド60によつて指定され
た汎用レジスタが主記憶アドレスからのオペラン
ドを受取ることを示す。この主記憶アドレスは、
X2フイールド61によつて指定された汎用レジ
スタの内容と、B2フイールド62によつて指定
された汎用レジスタの内容と、D2フイールド6
3とを加算することによつて発生される。 命令シーケンス検出器27の検査論理は、シー
ケンスをなす第1及び第2の「ロード(L)」命
令を検出するためのOPコード・マスク64及び
65を含む。「間接ロード」シーケンスを検出す
るための他の条件はゼロ検出論理66によつて与
えられ、該論理は第2の「ロード(L)」命令に
対するアドレス発生段階がB2フイールド62に
よつて指定された汎用レジスタの内容(基底アド
レス)だけを必要とするということを決定する。
最後の条件は一致論理67によつて与えられ、該
論理はフイールド55,60及び62によつて指
定された汎用レジスタが同じであるということを
決定する。これらのすべての条件が満足された場
合、AND回路68は出力信号69を供給するこ
とにより、予定シーケンスの命令が検出されたこ
とを示す。この出力信号69に応答して、“間接
ロード”発生器70は擬似OPコードを線71を
介してOPコード・フイールド54へ転送し、か
くて置換命令である「間接ロード」命令を作成す
る。即ち、「間接ロード」命令の擬似OPコードが
第1の「ロード(L)」命令のOPコード・フイー
ルド54へ転送されるのである。 IBMシステム/370の命令形式は、4ハーフワ
ードの命令形式を指定するようなOPコードを含
んでいない。従つて、置換命令である「間接ロー
ド」命令の擬似OPコードは2ハーフワードの命
令を指示するように符号化されるので、命令カウ
ンタ22は第2の「ロード(L)」命令のOPコー
ド・フイールド59をアクセスすべく2ハーフワ
ード分だけインクレメントされる。また、第2の
「ロード(L)」命令の実行を防止するため、置換
命令発生器28は“条件ブランチ”発生器72を
含み、該手段は出力信号69に応答して第2のロ
ード命令に対する置換命令を線73を介して転送
する。望まれる結果は、実行ユニツト13によつ
ていかなる機能も遂行されないように“ノー・オ
ペレーシヨン”を指示することである。IBMシ
ステム/370の「条件ブランチ(BCR)」命令に
16進数00(オール・ゼロ)のマスクを与えると、
これはシステム/370のすべてのプロセツサによ
つてノー・オペレーシヨン命令として解釈され
る。かくて、第2の「ロード(L)」命令はこの
ような「条件ブランチ(BCR)」命令によつて置
換される。 ここで、次のような命令対につてい考えること
にする。 〓21 L 5,6(7,8) 目標のアドレス
をピツク・アツプ 〓22 BCR F、5 目標への無条件ブランチ この命令対は前記の命令対〓11及び〓12の対に
似ている。この命令対もまた“アドレス発生イン
タロツク”による遅延をこうむる。「条件ブラン
チ(BCR)」命令である命令〓22はアドレス計算
を行なわないけれども、該命令は汎用レジスタ〓
5が有効になるまで第1図の高速バツフア11へ
取出要求を送ることができない。また、この命令
のマスクは“F”(オール1)であるから、常に
ブランチが行なわれる。命令取出しは、条件コー
ドとは関係なく、「ロード(L)」命令である命令
〓21によつて取出されたアドレスについて行なわ
れる。これは前記した間接アドレツシングの変形
である。命令シーケンス検出器27はこの状況を
認識し、命令〓21及び〓22の対を擬似OPコード
「ロード・ブランチ」で置換する。つまり、第1
の「ロード(L)」命令によつてアクセスされた
データは直ちに新しい命令をアクセスするための
主記憶アドレスとして使用され、そして第1図の
命令カウンタ22に記憶されるのである。 第7図は命令シーケンス検出器27の論理を示
す。この論理は予定シーケンスの命令を検出し、
「ロード・ブランチ」置換命令を指示する擬似OP
コードを発生し、これを線74を介して該シーケ
ンス中にある第1の「ロード(L)」命令のOPコ
ード・フイールド75へ転送する。AND回路7
6は出力信号77を供給して“ロード・ブラン
チ”発生器78を付能化する。AND回路76は、
OPコード・マスク79及び80、「条件ブランチ
(BCR)」命令のマスク・フイールド82が16進
数F(オール1)であることを示すマスク論理8
1、汎用レジスタを指定するR1フイールド84
及びR2フイールド85が等しいことを示す一致
論理83からの出力をそれぞれ受取る。 前記した3種類の命令シーケンスは過去に書か
れたプログラムで出現する頻度が高いものであ
り、そして前述の論理はこれらの命令シーケンス
を命令バツフア機構内で検出するのに適してい
る。前記命令シーケンスのいずれかが出現したと
きに出力信号を発生し、これに応じて当該シーケ
ンスの第1命令に対する置換命令を発生してその
実行を開始することにより、以前には当該命令シ
ーケンスの全体で達成されていた機能を1つの命
令だけで行なうことができる。もちろん、出現頻
度の高い他の命令シーケンスもありうるが、これ
らの命令シーケンスを前記と同様の論理で検査し
て他の置換命令を作成しうることは当業者にとつ
ては明らかであろう。このことは3以上の命令か
ら成るシーケンスについても同様である。
第1図はデータ処理システムの主要な機能ユニ
ツトを示すブロツク図、第2図は既存の命令バツ
フア機構に設けられた本発明の命令シーケンス検
出器及び置換命令発生器の接続様式を示すブロツ
ク図、第3図は他の形式の命令バツフア機構に設
けられた本発明の命令シーケンス検出器及び置換
命令発生器の接続様式を示すブロツク図、第4図
は他の形式の命令バツフア機構に設けられた本発
明の命令シーケンス検出器及び置換命令発生器の
接続様式を示すブロツク図、第5図は予定の命令
シーケンスを検出して「ロード・テスト」置換命
令を発生するような本発明の命令シーケンス検出
器の論理を示すブロツク図、第6図は他の予定の
命令シーケンスを検出して「間接ロード」置換命
令を発生するような本発明の命令シーケンス検出
器の論理を示すブロツク図、第7図は他の予定の
命令シーケンスを検出して「ロード・ブランチ」
置換命令を発生するような本発明の命令シーケン
ス検出器の論理を示すブロツク図である。 10……プログラム/データ記憶、11……高
速バツフア、12……命令取出/解読ユニツト、
13……実行ユニツト、14……オペレーシヨ
ン・レジスタ、15……制御部、18〜20……
命令バツフア・レジスタ、22……命令カウン
タ、24……命令レジスタ、25……記憶バス、
26……シーケンス選択器、27……命令シーケ
ンス検出器、28……置換命令発生器。
ツトを示すブロツク図、第2図は既存の命令バツ
フア機構に設けられた本発明の命令シーケンス検
出器及び置換命令発生器の接続様式を示すブロツ
ク図、第3図は他の形式の命令バツフア機構に設
けられた本発明の命令シーケンス検出器及び置換
命令発生器の接続様式を示すブロツク図、第4図
は他の形式の命令バツフア機構に設けられた本発
明の命令シーケンス検出器及び置換命令発生器の
接続様式を示すブロツク図、第5図は予定の命令
シーケンスを検出して「ロード・テスト」置換命
令を発生するような本発明の命令シーケンス検出
器の論理を示すブロツク図、第6図は他の予定の
命令シーケンスを検出して「間接ロード」置換命
令を発生するような本発明の命令シーケンス検出
器の論理を示すブロツク図、第7図は他の予定の
命令シーケンスを検出して「ロード・ブランチ」
置換命令を発生するような本発明の命令シーケン
ス検出器の論理を示すブロツク図である。 10……プログラム/データ記憶、11……高
速バツフア、12……命令取出/解読ユニツト、
13……実行ユニツト、14……オペレーシヨ
ン・レジスタ、15……制御部、18〜20……
命令バツフア・レジスタ、22……命令カウン
タ、24……命令レジスタ、25……記憶バス、
26……シーケンス選択器、27……命令シーケ
ンス検出器、28……置換命令発生器。
Claims (1)
- 【特許請求の範囲】 1 主記憶から取出された複数の命令を記憶する
命令バツフアを含み、実行ユニツトへ命令を順次
に転送してその実行を行わしめるデータ処理シス
テムにおける命令ユニツトであつて: 前記命令バツフアへ接続され、該命令バツフア
に記憶されたn個の順次命令のOPコード・フイ
ールドを所定のOPコードと比較する第1比較手
段及び該順次命令の汎用レジスタ指定フイールド
を互いに比較する第2比較手段を含む命令シーケ
ンス検出手段と、 前記第1比較手段及び前記第2比較手段で同時
に一致が検出された場合に前記n個の順次命令が
予定の命令シーケンスに該当することを示す出力
信号を供給するための信号手段と、 前記信号手段へ接続され、該信号手段からの前
記出力信号に応答して前記n個の順次命令におけ
る最初の命令を、該順次命令が要求するすべての
機能を遂行するための擬似OPコードを含む置換
命令に修正して前記実行ユニツトへ転送すると共
に前記順次命令の残りが前記実行ユニツトで実行
されないようにするための置換命令発生手段とを
備えてなる命令処理ユニツト。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US287342 | 1981-07-27 | ||
| US06/287,342 US4439828A (en) | 1981-07-27 | 1981-07-27 | Instruction substitution mechanism in an instruction handling unit of a data processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5818754A JPS5818754A (ja) | 1983-02-03 |
| JPH0429093B2 true JPH0429093B2 (ja) | 1992-05-18 |
Family
ID=23102483
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP57112613A Granted JPS5818754A (ja) | 1981-07-27 | 1982-07-01 | 命令処理ユニツト |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4439828A (ja) |
| EP (1) | EP0071028B1 (ja) |
| JP (1) | JPS5818754A (ja) |
| DE (1) | DE3270743D1 (ja) |
Families Citing this family (98)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5848146A (ja) * | 1981-09-18 | 1983-03-22 | Toshiba Corp | 命令先取り方式 |
| US4538223A (en) * | 1982-09-29 | 1985-08-27 | Microdata Corporation | Computer operand address computation |
| 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 |
| US4569048A (en) * | 1983-09-19 | 1986-02-04 | Genrad, Inc. | Method and apparatus for memory overlay |
| JPH0830971B2 (ja) * | 1984-03-26 | 1996-03-27 | 株式会社日立製作所 | プログラマブルコントローラ |
| US4868735A (en) * | 1984-05-08 | 1989-09-19 | Advanced Micro Devices, Inc. | Interruptible structured microprogrammed sixteen-bit address sequence controller |
| US4984151A (en) * | 1985-03-01 | 1991-01-08 | Advanced Micro Devices, Inc. | Flexible, next-address generation microprogram sequencer |
| JPS61283930A (ja) * | 1985-06-10 | 1986-12-13 | Nec Corp | 情報処理装置 |
| US4761731A (en) * | 1985-08-14 | 1988-08-02 | Control Data Corporation | Look-ahead instruction fetch control for a cache memory |
| JPS62288940A (ja) * | 1986-06-06 | 1987-12-15 | Nec Corp | 情報処理装置 |
| JPS63178333A (ja) * | 1987-01-20 | 1988-07-22 | Nec Corp | 命令処理方式 |
| JPS63178334A (ja) * | 1987-01-20 | 1988-07-22 | Nec Corp | 命令処理方式 |
| US4819165A (en) * | 1987-03-27 | 1989-04-04 | Tandem Computers Incorporated | System for performing group relative addressing |
| JPS6482131A (en) * | 1987-09-24 | 1989-03-28 | Mitsubishi Electric Corp | Data processor |
| GB2230119B (en) * | 1989-04-07 | 1993-04-21 | Intel Corp | Conditional execution speed-up on synchronizing instructions |
| US5226127A (en) * | 1989-04-07 | 1993-07-06 | Intel Corporation | Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions |
| CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
| JP2901081B2 (ja) * | 1989-12-19 | 1999-06-02 | 株式会社日立製作所 | Osiディレクトリの非葉エントリの名称変更方法 |
| US5185868A (en) * | 1990-01-16 | 1993-02-09 | Advanced Micro Devices, Inc. | Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy |
| US5301341A (en) * | 1990-11-28 | 1994-04-05 | International Business Machines Corporation | Overflow determination for three-operand alus in a scalable compound instruction set machine which compounds two arithmetic instructions |
| JPH07122846B2 (ja) * | 1990-04-04 | 1995-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 3―1alu装置 |
| US5303356A (en) * | 1990-05-04 | 1994-04-12 | International Business Machines Corporation | System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag |
| US5197135A (en) * | 1990-06-26 | 1993-03-23 | International Business Machines Corporation | Memory management for scalable compound instruction set machines with in-memory compounding |
| US5448746A (en) * | 1990-05-04 | 1995-09-05 | International Business Machines Corporation | System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution |
| EP0481031A4 (en) * | 1990-05-04 | 1993-01-27 | International Business Machines Corporation | System for compounding instructions for handling instruction and data stream for processor with different attributes |
| ATE146611T1 (de) * | 1990-05-04 | 1997-01-15 | Ibm | Maschinenarchitektur für skalaren verbundbefehlssatz |
| 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 |
| CA2037708C (en) * | 1990-05-04 | 1998-01-20 | Richard J. Eickemeyer | General purpose compound apparatus for instruction-level parallel processors |
| US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
| CA2038264C (en) * | 1990-06-26 | 1995-06-27 | Richard James Eickemeyer | In-memory preprocessor for a scalable compound instruction set machine processor |
| US5537552A (en) * | 1990-11-27 | 1996-07-16 | Canon Kabushiki Kaisha | Apparatus for selectively comparing pointers to detect full or empty status of a circular buffer area in an input/output (I/O) buffer |
| EP0498067A2 (en) * | 1991-02-08 | 1992-08-12 | International Business Machines Corporation | Microcode generation for a scalable compound instruction set machine |
| US5359718A (en) * | 1991-03-29 | 1994-10-25 | International Business Machines Corporation | Early scalable instruction set machine alu status prediction apparatus |
| JP2922723B2 (ja) * | 1992-06-29 | 1999-07-26 | キヤノン株式会社 | 情報処理装置 |
| US5337415A (en) * | 1992-12-04 | 1994-08-09 | Hewlett-Packard Company | Predecoding instructions for supercalar dependency indicating simultaneous execution for increased operating frequency |
| US5566324A (en) * | 1992-12-24 | 1996-10-15 | Ncr Corporation | Computer apparatus including a main memory prefetch cache and method of operation thereof |
| US5925125A (en) * | 1993-06-24 | 1999-07-20 | International Business Machines Corporation | Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions |
| WO1995006280A2 (en) * | 1993-08-26 | 1995-03-02 | Electronic Arts, Inc. | Data transfer accelerating apparatus and method |
| JP3408300B2 (ja) * | 1993-11-10 | 2003-05-19 | シチズン時計株式会社 | プリンタ |
| US5659722A (en) * | 1994-04-28 | 1997-08-19 | International Business Machines Corporation | Multiple condition code branching system in a multi-processor environment |
| DE69423206T2 (de) * | 1994-04-28 | 2000-09-07 | Hewlett-Packard Co., Palo Alto | Rechnervorrichtung mit Mitteln zum Erzwingen der Ausführung von Befehlen in regelmässiger Folge |
| JPH07302200A (ja) * | 1994-04-28 | 1995-11-14 | Hewlett Packard Co <Hp> | 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。 |
| US5860155A (en) * | 1995-11-16 | 1999-01-12 | Utek Semiconductor Corporation | Instruction decoding mechanism for reducing execution time by earlier detection and replacement of indirect addresses with direct addresses |
| US5930490A (en) * | 1996-01-02 | 1999-07-27 | Advanced Micro Devices, Inc. | Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions |
| WO1997027536A1 (en) * | 1996-01-24 | 1997-07-31 | Sun Microsystems, Inc. | Instruction folding for a stack-based machine |
| KR100584964B1 (ko) * | 1996-01-24 | 2006-05-29 | 선 마이크로시스템즈 인코퍼레이티드 | 스택 메모리 구조에서의 캐싱 장치 |
| US5829031A (en) * | 1996-02-23 | 1998-10-27 | Advanced Micro Devices, Inc. | Microprocessor configured to detect a group of instructions and to perform a specific function upon detection |
| US5754878A (en) * | 1996-03-18 | 1998-05-19 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having pattern recognition detector that uses table for translating instruction sequences intended to perform DSP function into DSP macros |
| US6032247A (en) * | 1996-03-18 | 2000-02-29 | Advanced Micro Devices, Incs. | Central processing unit including APX and DSP cores which receives and processes APX and DSP instructions |
| US5790824A (en) * | 1996-03-18 | 1998-08-04 | Advanced Micro Devices, Inc. | Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions |
| US5784640A (en) * | 1996-03-18 | 1998-07-21 | Advanced Micro Devices, Inc. | CPU with DSP function preprocessor having look-up table for translating instruction sequences intended to perform DSP function into DSP macros |
| US6085314A (en) * | 1996-03-18 | 2000-07-04 | Advnced Micro Devices, Inc. | Central processing unit including APX and DSP cores and including selectable APX and DSP execution modes |
| US5794068A (en) * | 1996-03-18 | 1998-08-11 | Advanced Micro Devices, Inc. | CPU with DSP having function preprocessor that converts instruction sequences intended to perform DSP function into DSP function identifier |
| US5781792A (en) * | 1996-03-18 | 1998-07-14 | Advanced Micro Devices, Inc. | CPU with DSP having decoder that detects and converts instruction sequences intended to perform DSP function into DSP function identifier |
| US6711667B1 (en) * | 1996-06-28 | 2004-03-23 | Legerity, Inc. | Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions |
| US5790843A (en) * | 1996-09-19 | 1998-08-04 | International Business Machines Corporation | System for modifying microprocessor operations independently of the execution unit upon detection of preselected opcodes |
| US6546479B1 (en) | 1998-02-10 | 2003-04-08 | Koninklijke Philips Electronics N.V. | Reduced instruction fetch latency in a system including a pipelined processor |
| US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
| US6681319B1 (en) * | 1998-10-06 | 2004-01-20 | Texas Instruments Incorporated | Dual access instruction and compound memory access instruction with compatible address fields |
| EP0992892B1 (en) * | 1998-10-06 | 2015-12-02 | Texas Instruments Inc. | Compound memory access instructions |
| DE19846676C1 (de) * | 1998-10-09 | 2000-03-02 | Siemens Ag | Verfahren zur Absicherung von Einsprungsadressen |
| GB2344907A (en) | 1998-12-19 | 2000-06-21 | Int Computers Ltd | Instruction translation and execution mechanism |
| JP3839835B2 (ja) * | 1999-04-30 | 2006-11-01 | 株式会社ルネサステクノロジ | データ処理装置及びマイクロコンピュータ |
| US6604188B1 (en) | 1999-10-20 | 2003-08-05 | Transmeta Corporation | Pipeline replay support for multi-cycle operations wherein all VLIW instructions are flushed upon detection of a multi-cycle atom operation in a VLIW instruction |
| US6728865B1 (en) | 1999-10-20 | 2004-04-27 | Transmeta Corporation | Pipeline replay support for unaligned memory operations |
| US7418580B1 (en) * | 1999-12-02 | 2008-08-26 | International Business Machines Corporation | Dynamic object-level code transaction for improved performance of a computer |
| US6513110B1 (en) * | 1999-12-15 | 2003-01-28 | Transmeta Corporation | Check instruction and method |
| US6766442B1 (en) | 2000-03-30 | 2004-07-20 | International Business Machines Corporation | Processor and method that predict condition register-dependent conditional branch instructions utilizing a potentially stale condition register value |
| US6678820B1 (en) * | 2000-03-30 | 2004-01-13 | International Business Machines Corporation | Processor and method for separately predicting conditional branches dependent on lock acquisition |
| US6658558B1 (en) | 2000-03-30 | 2003-12-02 | International Business Machines Corporation | Branch prediction circuit selector with instruction context related condition type determining |
| US7082516B1 (en) * | 2000-09-28 | 2006-07-25 | Intel Corporation | Aligning instructions using a variable width alignment engine having an intelligent buffer refill mechanism |
| US7873814B1 (en) * | 2000-12-22 | 2011-01-18 | Lsi Corporation | Microcode based hardware translator to support a multitude of processors |
| US6775892B2 (en) * | 2000-12-22 | 2004-08-17 | Diebolt International, Inc. | Retaining ring installation tool |
| US6990610B2 (en) * | 2002-05-15 | 2006-01-24 | Hewlett-Packard Development Company, L.P. | Combining commands to form a test command |
| US20060294443A1 (en) * | 2005-06-03 | 2006-12-28 | Khaled Fekih-Romdhane | On-chip address generation |
| US9436468B2 (en) * | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
| US7502029B2 (en) * | 2006-01-17 | 2009-03-10 | Silicon Integrated Systems Corp. | Instruction folding mechanism, method for performing the same and pixel processing system employing the same |
| US20080115217A1 (en) * | 2006-10-31 | 2008-05-15 | Hewlett-Packard Development Company, L.P. | Method and apparatus for protection of a computer system from malicious code attacks |
| US8296849B2 (en) * | 2006-10-31 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for removing homogeneity from execution environment of computing system |
| EP2203814A4 (en) * | 2007-09-19 | 2012-11-07 | Kpit Cummins Infosystems Ltd | MECHANISM FOR RELEASING PLUG AND PLAY HARDWARE COMPONENTS FOR SEMI-AUTOMATIC SOFTWARE MIGRATION |
| KR100892677B1 (ko) * | 2007-10-09 | 2009-04-15 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 프리 페치 회로 및 그 제어 방법 |
| US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
| US8880853B2 (en) * | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
| US8732683B2 (en) * | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
| US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
| GB2457303A (en) * | 2008-02-11 | 2009-08-12 | Linear Algebra Technologies | Randomly accessing elements of compressed matrix data by calculating offsets from non-zero values of a bitmap |
| US7502918B1 (en) * | 2008-03-28 | 2009-03-10 | International Business Machines Corporation | Method and system for data dependent performance increment and power reduction |
| US8886919B2 (en) * | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
| JP5311491B2 (ja) * | 2009-11-17 | 2013-10-09 | Necシステムテクノロジー株式会社 | グラフィクス頂点処理装置およびグラフィクス頂点処理方法 |
| US8850166B2 (en) * | 2010-02-18 | 2014-09-30 | International Business Machines Corporation | Load pair disjoint facility and instruction therefore |
| US8713292B2 (en) * | 2011-02-07 | 2014-04-29 | Arm Limited | Reducing energy and increasing speed by an instruction substituting subsequent instructions with specific function instruction |
| WO2012144374A1 (ja) * | 2011-04-21 | 2012-10-26 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
| US9280348B2 (en) * | 2012-03-28 | 2016-03-08 | International Business Machines Corporation | Decode time instruction optimization for load reserve and store conditional sequences |
| US9563424B2 (en) * | 2012-08-17 | 2017-02-07 | Google Inc. | Native code instruction selection |
| US9256427B2 (en) | 2012-12-11 | 2016-02-09 | International Business Machines Corporation | Tracking multiple conditions in a general purpose register and instruction therefor |
| GB2515020A (en) * | 2013-06-10 | 2014-12-17 | Advanced Risc Mach Ltd | Operand generation in at least one processing pipeline |
| US20190163492A1 (en) * | 2017-11-28 | 2019-05-30 | International Business Machines Corporation | Employing a stack accelerator for stack-type accesses |
| US12405799B2 (en) * | 2020-11-19 | 2025-09-02 | Arm Limited | Register rename stage fusing of instructions |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3345615A (en) * | 1965-03-16 | 1967-10-03 | Teletype Corp | Sequence detection circuit |
| JPS51853A (ja) * | 1974-06-21 | 1976-01-07 | Hitachi Ltd | Deetashorishisutemuno meireigoseisochi |
| JPS5211842A (en) * | 1975-07-18 | 1977-01-29 | Hitachi Ltd | Data processing equipment |
| US4155120A (en) * | 1977-12-01 | 1979-05-15 | Burroughs Corporation | Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution |
| 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 |
-
1981
- 1981-07-27 US US06/287,342 patent/US4439828A/en not_active Expired - Lifetime
-
1982
- 1982-06-29 EP EP82105758A patent/EP0071028B1/en not_active Expired
- 1982-06-29 DE DE8282105758T patent/DE3270743D1/de not_active Expired
- 1982-07-01 JP JP57112613A patent/JPS5818754A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| US4439828A (en) | 1984-03-27 |
| EP0071028A3 (en) | 1983-04-06 |
| DE3270743D1 (en) | 1986-05-28 |
| JPS5818754A (ja) | 1983-02-03 |
| EP0071028B1 (en) | 1986-04-23 |
| EP0071028A2 (en) | 1983-02-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0429093B2 (ja) | ||
| US5448746A (en) | System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution | |
| EP0380859B1 (en) | Method of preprocessing multiple instructions | |
| US5167026A (en) | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers | |
| CA1324671C (en) | Decoding multiple specifiers in a variable length instruction architecture | |
| US5303356A (en) | System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag | |
| EP0381471B1 (en) | Method and apparatus for preprocessing multiple instructions in a pipeline processor | |
| US4777594A (en) | Data processing apparatus and method employing instruction flow prediction | |
| US5142633A (en) | Preprocessing implied specifiers in a pipelined processor | |
| JP2744890B2 (ja) | ブランチ予測式データ処理装置および動作方法 | |
| US5504932A (en) | System for executing scalar instructions in parallel based on control bits appended by compounding decoder | |
| JPH03116235A (ja) | 分岐処理方法及び分岐処理装置 | |
| JPS62221036A (ja) | 計算装置 | |
| JPH02260033A (ja) | ブランチ予測 | |
| US5812809A (en) | Data processing system capable of execution of plural instructions in parallel | |
| US4562538A (en) | Microprocessor having decision pointer to process restore position | |
| US5313644A (en) | System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word | |
| JPH0823818B2 (ja) | 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 | |
| US4287561A (en) | Address formulation interlock mechanism | |
| US4541047A (en) | Pipelined data processing system | |
| JP3486690B2 (ja) | パイプライン方式プロセッサ | |
| US5461715A (en) | Data processor capable of execution of plural instructions in parallel | |
| JPH01137331A (ja) | 制御ワード分岐方法 | |
| JPS6112289B2 (ja) | ||
| JPS623336A (ja) | 条件付きブランチ方式 |