JP2620511B2 - データ・プロセッサ - Google Patents
データ・プロセッサInfo
- Publication number
- JP2620511B2 JP2620511B2 JP6002317A JP231794A JP2620511B2 JP 2620511 B2 JP2620511 B2 JP 2620511B2 JP 6002317 A JP6002317 A JP 6002317A JP 231794 A JP231794 A JP 231794A JP 2620511 B2 JP2620511 B2 JP 2620511B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- data
- general
- registers
- 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
- 230000003111 delayed effect Effects 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims 12
- 230000003068 static effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 239000004020 conductor Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
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
【0001】
【産業上の利用分野】本発明は、高性能コンピュータ、
より詳細には命令パイプラインを用いて複数のレジスタ
をロードする命令を有するコンピュータのプロセッサに
関する。
より詳細には命令パイプラインを用いて複数のレジスタ
をロードする命令を有するコンピュータのプロセッサに
関する。
【0002】
【従来の技術】命令パイプラインを用いた高性能コンピ
ュータはよく知られているが、典型的に、このようなプ
ロセッサにおいて、プロセッサによって実行される特定
の動作を定める命令は、連続するステップまたは段階で
実行される。各々の段階において、命令の部分はプロセ
ッサのハードウェアによって実行される。
ュータはよく知られているが、典型的に、このようなプ
ロセッサにおいて、プロセッサによって実行される特定
の動作を定める命令は、連続するステップまたは段階で
実行される。各々の段階において、命令の部分はプロセ
ッサのハードウェアによって実行される。
【0003】ある周知のパイプライン・システムにおい
て、命令は、デコード段階、アドレス転送段階、オペラ
ンド・フェッチ段階および実行段階に分割される。デコ
ード段階において、命令はデコードされ、アドレス情報
は命令の実行で必要とされるアドレスを生成するのに用
いられる。アドレス転送段階において、アドレスはマシ
ン内でレジスタに転送される。このレジスタは次の段階
で必要となる。オペランド・フェッチ段階において、ア
ドレスはたとえば算術演算に用いられるようなオペラン
ドをフェッチするために用いられる。実行段階におい
て、オペランド・フェッチ段階でフェッチされたオペラ
ンドとデコード段階で生成された情報とが用いられ、た
とえば算術論理演算機構の動作によって命令が実行され
る。
て、命令は、デコード段階、アドレス転送段階、オペラ
ンド・フェッチ段階および実行段階に分割される。デコ
ード段階において、命令はデコードされ、アドレス情報
は命令の実行で必要とされるアドレスを生成するのに用
いられる。アドレス転送段階において、アドレスはマシ
ン内でレジスタに転送される。このレジスタは次の段階
で必要となる。オペランド・フェッチ段階において、ア
ドレスはたとえば算術演算に用いられるようなオペラン
ドをフェッチするために用いられる。実行段階におい
て、オペランド・フェッチ段階でフェッチされたオペラ
ンドとデコード段階で生成された情報とが用いられ、た
とえば算術論理演算機構の動作によって命令が実行され
る。
【0004】パイプライン・システムにおいて、これら
のいろいろな段階の命令実行は、プロセッサのハードウ
ェアの部分とは独立して動作する部分において、いずれ
の1命令も逐次実行するが、平行方式に基づけば幾つか
の連続発生命令を逐次実行する。したがって、命令はメ
モリからフェッチされおよびプロセッサのある部分の第
1段階でデコードされ、一方で他の命令の他の段階がプ
ロセッサの他の部分で実行される。いろいろな段階のハ
ードウェアは、前段階においてプロセッサのある部分に
生成された情報が同じ命令を後段階で用いるプロセッサ
の他の部分に伝達されるように相互接続されている。命
令実行ハードウェアは、便宜的に命令部分(Iユニッ
ト)と実行部分(Eユニット)に分割されている。Iユ
ニットの機能は、命令をデコードし、Eユニットの制御
の下に命令を完了するために内部ハードウェアを準備す
ることである。
のいろいろな段階の命令実行は、プロセッサのハードウ
ェアの部分とは独立して動作する部分において、いずれ
の1命令も逐次実行するが、平行方式に基づけば幾つか
の連続発生命令を逐次実行する。したがって、命令はメ
モリからフェッチされおよびプロセッサのある部分の第
1段階でデコードされ、一方で他の命令の他の段階がプ
ロセッサの他の部分で実行される。いろいろな段階のハ
ードウェアは、前段階においてプロセッサのある部分に
生成された情報が同じ命令を後段階で用いるプロセッサ
の他の部分に伝達されるように相互接続されている。命
令実行ハードウェアは、便宜的に命令部分(Iユニッ
ト)と実行部分(Eユニット)に分割されている。Iユ
ニットの機能は、命令をデコードし、Eユニットの制御
の下に命令を完了するために内部ハードウェアを準備す
ることである。
【0005】
【発明が解決しようとする課題】パイプライン・システ
ムでよく認識されている問題点は、連続的に実行された
命令間のインターフェースである。これが発生するよう
なある特定の状況は、デコードされている第2の命令が
そのデコード段階でデータを必要とし、そのデータがま
だ完全に実行されていないような前命令によって生成さ
れることである。代表的には、妨害検出回路は、次の命
令で用いられるデータを定める情報と前命令によって変
更されているデータの識別子とを比較する。もし競合の
存在が明らかになれば、前命令が完全に実行されるまで
次の命令のデコードは遅延される。このような遅延は、
プロセッサの効率をかなり落とす。妨害の原因となりが
ちなある特定の命令は、ロード・マルチプル・レジスタ
(LMR)命令として知られ、多くのプロセッサに用い
られている。この命令は、汎用レジスタとして一般に知
られているマシン内で、メモリからレジスタ群へデータ
を移動するために用いられる。これらのレジスタは、多
様な異なった命令によって用いられ、これらのレジスタ
の内容を用いる命令列の実行を予想するときに、これら
の多くのレジスタをロードすることは一般に知られてい
る。典型的に、LMR命令は幾つかの実行サイクルが必
要とされ、LMR命令に後続する次の命令がLMR命令
によってロードされている汎用レジスタの中の1つを用
いることが一般的である。従来の技術において、ロード
される上位番号レジスタおよび下位番号レジスタの識別
子は、LMR命令のデコード段階に記録される。次の命
令のデコード段階で用いられる汎用レジスタがLMR命
令によって変更されるレジスタの範囲に含まれるか否か
について、次の連続命令のデコード段階の期間にある決
定が下される。もし含まれれば、LMR命令に関連する
最後のレジスタがロードされるまで、次の連続命令の命
令処理は遅延される。
ムでよく認識されている問題点は、連続的に実行された
命令間のインターフェースである。これが発生するよう
なある特定の状況は、デコードされている第2の命令が
そのデコード段階でデータを必要とし、そのデータがま
だ完全に実行されていないような前命令によって生成さ
れることである。代表的には、妨害検出回路は、次の命
令で用いられるデータを定める情報と前命令によって変
更されているデータの識別子とを比較する。もし競合の
存在が明らかになれば、前命令が完全に実行されるまで
次の命令のデコードは遅延される。このような遅延は、
プロセッサの効率をかなり落とす。妨害の原因となりが
ちなある特定の命令は、ロード・マルチプル・レジスタ
(LMR)命令として知られ、多くのプロセッサに用い
られている。この命令は、汎用レジスタとして一般に知
られているマシン内で、メモリからレジスタ群へデータ
を移動するために用いられる。これらのレジスタは、多
様な異なった命令によって用いられ、これらのレジスタ
の内容を用いる命令列の実行を予想するときに、これら
の多くのレジスタをロードすることは一般に知られてい
る。典型的に、LMR命令は幾つかの実行サイクルが必
要とされ、LMR命令に後続する次の命令がLMR命令
によってロードされている汎用レジスタの中の1つを用
いることが一般的である。従来の技術において、ロード
される上位番号レジスタおよび下位番号レジスタの識別
子は、LMR命令のデコード段階に記録される。次の命
令のデコード段階で用いられる汎用レジスタがLMR命
令によって変更されるレジスタの範囲に含まれるか否か
について、次の連続命令のデコード段階の期間にある決
定が下される。もし含まれれば、LMR命令に関連する
最後のレジスタがロードされるまで、次の連続命令の命
令処理は遅延される。
【0006】多くのプロセッサは、2ワード単位、たと
えば8バイトでメモリからデータを読み出し、プロセッ
サの内部データ流で2ワードを処理する。しかしなが
ら、汎用レジスタは、代表的には1ワードたとえば4バ
イトのレジスタである。LMR命令を実行するとき、2
つの汎用レジスタは、LMR命令の実行段階の各サイク
ルでライトされ、および2つのレジスタの上位番号のレ
ジスタが2ワード・データ流の下位バイトからライトさ
れる。代表的には、最終サイクルで汎用レジスタにライ
トされた情報を、次の連続命令のオペランド・フェッチ
・サイクルのIユニットに同時に得られるようにするこ
とができるような回路が提供される。LMR命令以外の
命令を変更するレジスタを用いて、1つまたは2つの汎
用レジスタのみが変更される。この場合、前命令がレジ
スタを変更するとき、変更されたレジスタの識別子はタ
ーゲット・レジスタ139にライトされる。ターゲット
・レジスタ139は、すべての汎用レジスタが変更され
ているかどうか、特定の汎用レジスタと次の汎用レジス
タが変更されているかどうか、またはどの汎用レジスタ
も変更されていないかどうかに関する指摘を与える。タ
ーゲット・レジスタ139の内容は、次の命令のデコー
ド段階またはオペランド・フェッチ段階で遅延を取り入
れる必要があるかどうかを決定するために用いられる。
えば8バイトでメモリからデータを読み出し、プロセッ
サの内部データ流で2ワードを処理する。しかしなが
ら、汎用レジスタは、代表的には1ワードたとえば4バ
イトのレジスタである。LMR命令を実行するとき、2
つの汎用レジスタは、LMR命令の実行段階の各サイク
ルでライトされ、および2つのレジスタの上位番号のレ
ジスタが2ワード・データ流の下位バイトからライトさ
れる。代表的には、最終サイクルで汎用レジスタにライ
トされた情報を、次の連続命令のオペランド・フェッチ
・サイクルのIユニットに同時に得られるようにするこ
とができるような回路が提供される。LMR命令以外の
命令を変更するレジスタを用いて、1つまたは2つの汎
用レジスタのみが変更される。この場合、前命令がレジ
スタを変更するとき、変更されたレジスタの識別子はタ
ーゲット・レジスタ139にライトされる。ターゲット
・レジスタ139は、すべての汎用レジスタが変更され
ているかどうか、特定の汎用レジスタと次の汎用レジス
タが変更されているかどうか、またはどの汎用レジスタ
も変更されていないかどうかに関する指摘を与える。タ
ーゲット・レジスタ139の内容は、次の命令のデコー
ド段階またはオペランド・フェッチ段階で遅延を取り入
れる必要があるかどうかを決定するために用いられる。
【0007】多くのプロセッサは、メモリから2データ
・ワードを読み出し、内部データ流で2データ・ワード
を処理するが、ほとんどの命令をデータ・ワードの下位
半分のみで処理する。2ワードのある部分のある命令の
実行段階の結果が2ワードの同じ部分の次の命令のオペ
ランド・フェッチ段階に必要であれば、その結果は前命
令の実行段階の期間に次の命令で使用できるようにな
る。この場合、レジスタはバイパス可能であると言われ
る。しかしながら、2ワードのある部分のデータが次の
命令によって2ワードの他の部分に必要であれば、レジ
スタはバイパスできない状態と言われ、次の命令のオペ
ランド・フェッチ段階は前命令の実行段階の完了後まで
遅延される。この特有の調整は、前命令が1つまたは2
つの汎用レジスタの内容を変更するときはいつも用いら
れていた。しかしながら、この調整がより多数のレジス
タを単一命令によって変更するLMR命令に適用できる
ことは見い出されていなかった。
・ワードを読み出し、内部データ流で2データ・ワード
を処理するが、ほとんどの命令をデータ・ワードの下位
半分のみで処理する。2ワードのある部分のある命令の
実行段階の結果が2ワードの同じ部分の次の命令のオペ
ランド・フェッチ段階に必要であれば、その結果は前命
令の実行段階の期間に次の命令で使用できるようにな
る。この場合、レジスタはバイパス可能であると言われ
る。しかしながら、2ワードのある部分のデータが次の
命令によって2ワードの他の部分に必要であれば、レジ
スタはバイパスできない状態と言われ、次の命令のオペ
ランド・フェッチ段階は前命令の実行段階の完了後まで
遅延される。この特有の調整は、前命令が1つまたは2
つの汎用レジスタの内容を変更するときはいつも用いら
れていた。しかしながら、この調整がより多数のレジス
タを単一命令によって変更するLMR命令に適用できる
ことは見い出されていなかった。
【0008】
【課題を解決するための手段】本発明によれば、レジス
タのロード命令によって影響を受けた連番付与された汎
用レジスタのサブセットの下位番号汎用レジスタの識別
子は、増分レジスタに記憶される。レジスタ・ロード命
令の各実行段階において、レジスタの内容は増分され、
次の命令に定められたレジスタの識別子は増分レジスタ
の内容と比較される。増分レジスタの内容が次の命令に
定められた汎用レジスタの識別子よりも大きいときはい
つも、次の命令は前進することができる。都合がいいこ
とに、代表的に数サイクルが必要なLMR命令におい
て、次の連続命令の遅延は次の命令によって識別された
汎用レジスタをロードすることが必要とされるサイクル
数に制限される。これは、全体的なLMR命令の完了を
待つ必要がなく、従来の技術においても行われていた。
16個の汎用レジスタを有するプロセッサにおいて、ほ
とんどのレジスタが各サイクルで2つずつロードされる
ので、LMR命令は8実行サイクルが必要とされる。次
の連続命令によって必要とされるレジスタがLMR命令
の実行完了の以前にロードされ、多くのサイクルが大多
数の実行済みLMR命令のためにセーブされるという高
い可能性が存在する。
タのロード命令によって影響を受けた連番付与された汎
用レジスタのサブセットの下位番号汎用レジスタの識別
子は、増分レジスタに記憶される。レジスタ・ロード命
令の各実行段階において、レジスタの内容は増分され、
次の命令に定められたレジスタの識別子は増分レジスタ
の内容と比較される。増分レジスタの内容が次の命令に
定められた汎用レジスタの識別子よりも大きいときはい
つも、次の命令は前進することができる。都合がいいこ
とに、代表的に数サイクルが必要なLMR命令におい
て、次の連続命令の遅延は次の命令によって識別された
汎用レジスタをロードすることが必要とされるサイクル
数に制限される。これは、全体的なLMR命令の完了を
待つ必要がなく、従来の技術においても行われていた。
16個の汎用レジスタを有するプロセッサにおいて、ほ
とんどのレジスタが各サイクルで2つずつロードされる
ので、LMR命令は8実行サイクルが必要とされる。次
の連続命令によって必要とされるレジスタがLMR命令
の実行完了の以前にロードされ、多くのサイクルが大多
数の実行済みLMR命令のためにセーブされるという高
い可能性が存在する。
【0009】本発明のある特定の見解によれば、複数の
レジスタ・ロード命令の最終実行サイクルで変更された
上位番号レジスタまたはレジスタ群の識別子は、1つま
たは2つのレジスタがレジスタ・ロード命令の最終実行
サイクルでライトされたかどうかに関する指摘とともに
記憶される。都合のいいことに、この記憶された情報に
基づいて、汎用レジスタをバイパスできるか、または汎
用レジスタをレジスタ・ロード命令の最終実行段階の実
行の際に次の命令に使用できるかどうかに関する決定が
行われる。レジスタ・ロード命令によってレジスタにラ
イトされたとき調整されるプロセッサのデータ流の部分
に次の命令がデータを必要とするときのみ、このような
バイパスは一般的に可能である。本発明によれば、必要
とされる汎用レジスタの内容のデータ流の調整に関する
決定は、レジスタ・ロード命令によってロードされた全
レジスタ数が偶数であるかまたは奇数であるかを確定す
ることによって行われる。このような決定は、上位番号
汎用レジスタおよび下位番号汎用レジスタの識別子を記
憶しているレジスタの下位ビットに接続された排他的論
理和回路手段によって行われる。
レジスタ・ロード命令の最終実行サイクルで変更された
上位番号レジスタまたはレジスタ群の識別子は、1つま
たは2つのレジスタがレジスタ・ロード命令の最終実行
サイクルでライトされたかどうかに関する指摘とともに
記憶される。都合のいいことに、この記憶された情報に
基づいて、汎用レジスタをバイパスできるか、または汎
用レジスタをレジスタ・ロード命令の最終実行段階の実
行の際に次の命令に使用できるかどうかに関する決定が
行われる。レジスタ・ロード命令によってレジスタにラ
イトされたとき調整されるプロセッサのデータ流の部分
に次の命令がデータを必要とするときのみ、このような
バイパスは一般的に可能である。本発明によれば、必要
とされる汎用レジスタの内容のデータ流の調整に関する
決定は、レジスタ・ロード命令によってロードされた全
レジスタ数が偶数であるかまたは奇数であるかを確定す
ることによって行われる。このような決定は、上位番号
汎用レジスタおよび下位番号汎用レジスタの識別子を記
憶しているレジスタの下位ビットに接続された排他的論
理和回路手段によって行われる。
【0010】
【実施例】図1にメモリ・ユニット101およびプロセ
ッサ102を有するデータ処理システムのブロック図を
示す。プロセッサ102は、プロセッサ102がメモリ
・バス104によってメモリ・ユニット101と通信す
る手段によるメモリ・インターフェース110を有す
る。プロセッサ102は、実行される命令を受け取りデ
コードする命令処理ユニット、すなわちIユニット11
2を有し、命令を実行する命令実行ユニット、すなわち
Eユニット114に適切な制御信号を供給する。プロセ
ッサ102は、命令のデコードおよび実行を幾つかのス
テージまたは段階に分割する命令パイプラインを使用し
ている。幾つかの命令は、時間並行方式に基づいて、プ
ロセッサ102によって処理される。
ッサ102を有するデータ処理システムのブロック図を
示す。プロセッサ102は、プロセッサ102がメモリ
・バス104によってメモリ・ユニット101と通信す
る手段によるメモリ・インターフェース110を有す
る。プロセッサ102は、実行される命令を受け取りデ
コードする命令処理ユニット、すなわちIユニット11
2を有し、命令を実行する命令実行ユニット、すなわち
Eユニット114に適切な制御信号を供給する。プロセ
ッサ102は、命令のデコードおよび実行を幾つかのス
テージまたは段階に分割する命令パイプラインを使用し
ている。幾つかの命令は、時間並行方式に基づいて、プ
ロセッサ102によって処理される。
【0011】Iユニット112は、命令デコーダ12
0、アドレス転送コントローラ122およびオペランド
・フェッチ・コントローラ124を有する。命令処理段
階の期間、命令およびアドレスは、パイプラインの第1
のデコード(D)段階の命令デコーダ120でデコード
され、命令に関係するアドレスは、パイプラインの第2
のアドレス転送(AT)段階のアドレス転送コントロー
ラ122によって転送され、および命令に関係するオペ
ランドはオペランド・フェッチ・コントローラ124の
制御のもとにパイプラインの第3のオペランド・フェッ
チ(OF)段階でフェッチされる。このようにして、オ
ペランド・フェッチ・コントローラ124は第1命令で
動作し、アドレス転送コントローラ122は第2命令で
動作し、命令デコーダ120は第3命令で動作する。E
ユニット114は、Iユニット112から信号を受信
し、第4の実行(EX)段階で命令を実行する。命令を
完全に実行するために、一般的に、前記4つのすべての
段階が必要とされ、前記4つの個別の命令は、プロセッ
サ102の単一マシンサイクル内で動作される。
0、アドレス転送コントローラ122およびオペランド
・フェッチ・コントローラ124を有する。命令処理段
階の期間、命令およびアドレスは、パイプラインの第1
のデコード(D)段階の命令デコーダ120でデコード
され、命令に関係するアドレスは、パイプラインの第2
のアドレス転送(AT)段階のアドレス転送コントロー
ラ122によって転送され、および命令に関係するオペ
ランドはオペランド・フェッチ・コントローラ124の
制御のもとにパイプラインの第3のオペランド・フェッ
チ(OF)段階でフェッチされる。このようにして、オ
ペランド・フェッチ・コントローラ124は第1命令で
動作し、アドレス転送コントローラ122は第2命令で
動作し、命令デコーダ120は第3命令で動作する。E
ユニット114は、Iユニット112から信号を受信
し、第4の実行(EX)段階で命令を実行する。命令を
完全に実行するために、一般的に、前記4つのすべての
段階が必要とされ、前記4つの個別の命令は、プロセッ
サ102の単一マシンサイクル内で動作される。
【0012】Iユニット112は、ケーブル127によ
って命令デコーダ120に接続されたハードウェア待ち
行列125を有し、ケーブル128によって実行コント
ローラ126に接続されている。命令デコーダ120
は、メモリから得られた命令をデコードし、メモリ・ア
ドレスと内部レジスタの識別子を引き出し、識別子をデ
コード(D)段階のハードウェア待ち行列125に配置
する。アドレス転送段階において、アドレス転送コント
ローラ122は、メモリのオペランド・アドレスをメモ
リ・インターフェース110に、および命令に関係する
内部レジスタの識別子を内部レジスタをアドレス指定す
るレジスタに転送する。プロセッサ102の内部レジス
タは、連番付与された汎用レジスタ130のセットと算
術論理演算機構(ALU)132のレジスタのような他
の内部レジスタを有する。オペランド・フェッチ段階に
おいて、オペランド・フェッチ・コントローラ124
は、アドレス転送コントローラ122によって記憶され
たアドレスによって定められたメモリ・データまたはレ
ジスタ・データをフェッチし、バス135によって対応
するデータをレジスタ・ファイル130の適切なレジス
タに転送する。実行段階において、実行コントローラ1
26は、ハードウェア待ち行列125をリードし、算術
論理演算機構132のような特定の命令実行ユニットを
起動させ、特定された機能を実行する。
って命令デコーダ120に接続されたハードウェア待ち
行列125を有し、ケーブル128によって実行コント
ローラ126に接続されている。命令デコーダ120
は、メモリから得られた命令をデコードし、メモリ・ア
ドレスと内部レジスタの識別子を引き出し、識別子をデ
コード(D)段階のハードウェア待ち行列125に配置
する。アドレス転送段階において、アドレス転送コント
ローラ122は、メモリのオペランド・アドレスをメモ
リ・インターフェース110に、および命令に関係する
内部レジスタの識別子を内部レジスタをアドレス指定す
るレジスタに転送する。プロセッサ102の内部レジス
タは、連番付与された汎用レジスタ130のセットと算
術論理演算機構(ALU)132のレジスタのような他
の内部レジスタを有する。オペランド・フェッチ段階に
おいて、オペランド・フェッチ・コントローラ124
は、アドレス転送コントローラ122によって記憶され
たアドレスによって定められたメモリ・データまたはレ
ジスタ・データをフェッチし、バス135によって対応
するデータをレジスタ・ファイル130の適切なレジス
タに転送する。実行段階において、実行コントローラ1
26は、ハードウェア待ち行列125をリードし、算術
論理演算機構132のような特定の命令実行ユニットを
起動させ、特定された機能を実行する。
【0013】Iユニット112およびEユニット114
の回路は、互いにほぼ独立して動作する一方で、2つの
命令が同時にEユニット114を使用することを要求
し、または後続の命令に対してIユニット112が前命
令の実行完了前にこの命令から情報を要求するために混
乱が起こる。より詳細には、ある命令のデコード段階の
期間に命令デコーダ120によって必要であったレジス
タの内容が以前の未完了命令によって変更されるときに
混乱が起こる。混乱の他の原因は、命令のオペランド・
フェッチ段階の期間にオペランド・フェッチ・コントロ
ーラ124によって必要とされたレジスタの内容が以前
の未完了命令によって変更されるときである。このよう
な混乱は、命令デコーダ120の周知の混乱解消回路に
よって解消される。この命令デコーダ120は、ハード
ウェア待ち行列125の隣接する情報ブロックを検査
し、ケーブル128上の制御信号によってIユニット機
能またはEユニット機能を一時的に確実に遅延させる。
の回路は、互いにほぼ独立して動作する一方で、2つの
命令が同時にEユニット114を使用することを要求
し、または後続の命令に対してIユニット112が前命
令の実行完了前にこの命令から情報を要求するために混
乱が起こる。より詳細には、ある命令のデコード段階の
期間に命令デコーダ120によって必要であったレジス
タの内容が以前の未完了命令によって変更されるときに
混乱が起こる。混乱の他の原因は、命令のオペランド・
フェッチ段階の期間にオペランド・フェッチ・コントロ
ーラ124によって必要とされたレジスタの内容が以前
の未完了命令によって変更されるときである。このよう
な混乱は、命令デコーダ120の周知の混乱解消回路に
よって解消される。この命令デコーダ120は、ハード
ウェア待ち行列125の隣接する情報ブロックを検査
し、ケーブル128上の制御信号によってIユニット機
能またはEユニット機能を一時的に確実に遅延させる。
【0014】命令のデコード(D)段階は、前命令によ
って変更される内部レジスタを用いてアドレスの計算を
要求する。したがって、このような場合、次の命令のデ
コーダ段階は、前命令の実行が完了されるまで遅延され
なければならない。データ・プロセッサで一般的に用い
られる命令は、ロード・マルチプル・レジスタ(LM
R)命令である。この命令は、汎用レジスタ130のセ
ットの連番付与されたサブセットをロードすることを含
む。これらの汎用レジスタは、幾つかの異なった命令で
共通に用いられ、その内容を用いる命令の特定の命令ま
たはシーケンスの以前に定期的にセットアップされる。
命令のデコーダ段階の実行を遅延させる問題は、前命令
がその実行(E)段階で必要なレジスタを変更するとき
はいつも発生する一方で、これはLMR命令でより著し
い。多くのプロセッサは、単一のLMR命令によってロ
ードされるかなりの数の汎用レジスタ、たとえば16個
を有する。
って変更される内部レジスタを用いてアドレスの計算を
要求する。したがって、このような場合、次の命令のデ
コーダ段階は、前命令の実行が完了されるまで遅延され
なければならない。データ・プロセッサで一般的に用い
られる命令は、ロード・マルチプル・レジスタ(LM
R)命令である。この命令は、汎用レジスタ130のセ
ットの連番付与されたサブセットをロードすることを含
む。これらの汎用レジスタは、幾つかの異なった命令で
共通に用いられ、その内容を用いる命令の特定の命令ま
たはシーケンスの以前に定期的にセットアップされる。
命令のデコーダ段階の実行を遅延させる問題は、前命令
がその実行(E)段階で必要なレジスタを変更するとき
はいつも発生する一方で、これはLMR命令でより著し
い。多くのプロセッサは、単一のLMR命令によってロ
ードされるかなりの数の汎用レジスタ、たとえば16個
を有する。
【0015】LMR命令が命令デコーダ120によって
デコードされるとき、命令デコーダ120は、命令に関
係する上位番号および下位番号汎用レジスタの識別子を
含むその命令の後続段階で用いられるような適切なデー
タをハードウェア待ち行列125に入力する。命令デコ
ーダ120は、汎用レジスタに関係する次の連続命令
(NSI)をデコードする際にテストを実行し、使用さ
れる汎用レジスタが上位番号および下位番号レジスタの
識別子によって定められたレジスタ群内に属するか否か
を決定する。さもなければ、デコード段階に遅延がない
ことが要求される。
デコードされるとき、命令デコーダ120は、命令に関
係する上位番号および下位番号汎用レジスタの識別子を
含むその命令の後続段階で用いられるような適切なデー
タをハードウェア待ち行列125に入力する。命令デコ
ーダ120は、汎用レジスタに関係する次の連続命令
(NSI)をデコードする際にテストを実行し、使用さ
れる汎用レジスタが上位番号および下位番号レジスタの
識別子によって定められたレジスタ群内に属するか否か
を決定する。さもなければ、デコード段階に遅延がない
ことが要求される。
【0016】図2に、図1のIユニット112の論理回
路140のより詳細なブロック図を示す。図3に、LM
R命令に準ずる特定のエントリ150のハードウェア待
ち行列125の一部分を示す。このエントリ150は、
LMR命令のコード化された定義、および特定のLMR
命令に関係する下位汎用レジスタ141(GRLOW)
と上位汎用レジスタ143(GRHIGH)のアドレス
を表すバイナリ・データを含む。論理回路140は、下
位汎用レジスタ141を有し、GRLOWのバイナリ値
を記憶する。論理回路140の他の2つのレジスタ14
2および143は、次の連続命令に関係するベース・レ
ジスタ142(RBASE)の識別子のバイナリ値、お
よびLMR命令に関係する上位汎用レジスタ143(G
RHIGH)の識別子のバイナリ値を記憶する。この例
示された実施例において、RBASEは分離されたレジ
スタ142を表し、命令デコーダ120の命令レジスタ
のフィールドとしても取り上げられる。比較器145
は、レジスタ141(GRLOW)の内容とレジスタ1
42(GRBASE)の内容とを比較し、次の命令のベ
ース・レジスタのバイナリ値が下位番号レジスタのバイ
ナリ値以上であるかどうかを指摘する出力導線146を
提供する。比較器145は、レジスタ142の内容とレ
ジスタ143の内容とを比較し、次の連続命令のベース
・レジスタのバイナリ値がLMR命令の上位レジスタの
バイナリ値以下かどうかを指摘する出力導線147を提
供する。導線146および147の2つの比較器出力
は、ANDゲート148によって結合される。ANDゲ
ート148の遅延出力が論理1であれば、次の命令の命
令処理は少なくとも次のサイクルに遅延される。
路140のより詳細なブロック図を示す。図3に、LM
R命令に準ずる特定のエントリ150のハードウェア待
ち行列125の一部分を示す。このエントリ150は、
LMR命令のコード化された定義、および特定のLMR
命令に関係する下位汎用レジスタ141(GRLOW)
と上位汎用レジスタ143(GRHIGH)のアドレス
を表すバイナリ・データを含む。論理回路140は、下
位汎用レジスタ141を有し、GRLOWのバイナリ値
を記憶する。論理回路140の他の2つのレジスタ14
2および143は、次の連続命令に関係するベース・レ
ジスタ142(RBASE)の識別子のバイナリ値、お
よびLMR命令に関係する上位汎用レジスタ143(G
RHIGH)の識別子のバイナリ値を記憶する。この例
示された実施例において、RBASEは分離されたレジ
スタ142を表し、命令デコーダ120の命令レジスタ
のフィールドとしても取り上げられる。比較器145
は、レジスタ141(GRLOW)の内容とレジスタ1
42(GRBASE)の内容とを比較し、次の命令のベ
ース・レジスタのバイナリ値が下位番号レジスタのバイ
ナリ値以上であるかどうかを指摘する出力導線146を
提供する。比較器145は、レジスタ142の内容とレ
ジスタ143の内容とを比較し、次の連続命令のベース
・レジスタのバイナリ値がLMR命令の上位レジスタの
バイナリ値以下かどうかを指摘する出力導線147を提
供する。導線146および147の2つの比較器出力
は、ANDゲート148によって結合される。ANDゲ
ート148の遅延出力が論理1であれば、次の命令の命
令処理は少なくとも次のサイクルに遅延される。
【0017】実行コントローラ126からの導線149
上の出力信号は、2データ・ワードがメモリから得ら
れ、汎用レジスタ対に記憶されるごとにレジスタ141
に対して増分パルスを与える。このようにして、レジス
タ141の下位番号汎用レジスタのバイナリ値は、汎用
レジスタ対が2回ロードされるごとに増分される。レジ
スタ141の増分されたバイナリ値の内容がレジスタ1
42のベース・レジスタの識別子のバイナリ値を越える
とき、導線146の出力はRBASEがGRLOW未満
であることを示す論理0となる。したがって、ゲート1
48の遅延出力は論理0となり遅延が解消される。この
ようにして、ベース・レジスタが適切にロードされると
すぐに、およびLMR命令によってロードされる残りの
汎用レジスタを待機することなく、次の命令のデコード
またはオペランド・フェッチを開始することができる。
図4は、LMR命令と後続する次の連続命令の実行を表
すシーケンス図である。図4は、LMR命令の実行段階
の数サイクルの期間に、次の連続命令のデコード段階、
アドレス転送段階およびオペランド・フェッチ段階の処
理を示している。これらの段階は、ゲート148の遅延
信号出力が変化するとすぐに前進する。したがって、次
の連続命令の処理がLMR命令の完了を待たなければな
らない場合、数マシン・サイクルが記憶される。
上の出力信号は、2データ・ワードがメモリから得ら
れ、汎用レジスタ対に記憶されるごとにレジスタ141
に対して増分パルスを与える。このようにして、レジス
タ141の下位番号汎用レジスタのバイナリ値は、汎用
レジスタ対が2回ロードされるごとに増分される。レジ
スタ141の増分されたバイナリ値の内容がレジスタ1
42のベース・レジスタの識別子のバイナリ値を越える
とき、導線146の出力はRBASEがGRLOW未満
であることを示す論理0となる。したがって、ゲート1
48の遅延出力は論理0となり遅延が解消される。この
ようにして、ベース・レジスタが適切にロードされると
すぐに、およびLMR命令によってロードされる残りの
汎用レジスタを待機することなく、次の命令のデコード
またはオペランド・フェッチを開始することができる。
図4は、LMR命令と後続する次の連続命令の実行を表
すシーケンス図である。図4は、LMR命令の実行段階
の数サイクルの期間に、次の連続命令のデコード段階、
アドレス転送段階およびオペランド・フェッチ段階の処
理を示している。これらの段階は、ゲート148の遅延
信号出力が変化するとすぐに前進する。したがって、次
の連続命令の処理がLMR命令の完了を待たなければな
らない場合、数マシン・サイクルが記憶される。
【0018】LMR命令の実行の際に、LMR命令のE
X段階の最終サイクルで変更された汎用レジスタまたは
レジスタ群の識別子の指摘は、ターゲット・レジスタ1
39に記憶される。さらに、1つまたは2つのレジスタ
が最終実行サイクルによって影響を受けるどうかに関し
て指摘が与えられる。この情報は、命令デコーダ120
によって用いられ識別されたレジスタまたはレジスタ群
がバイパス可能であるかどうかを決定する。LMR命令
の実行において、2倍長データ・ワードはメモリ・イン
ターフェース110からバス135を経て汎用レジスタ
130に転送され、2つの連番付与されたレジスタにラ
イトされる。上位番号レジスタは、2ワードの下位バイ
トからロードされ、下位番号レジスタは上位バイトから
ロードされる。偶数個の汎用レジスタがLMRレジスタ
によってロードされるなら、2つの汎用レジスタは最終
LMR命令によって影響を受けることは明白である。こ
の場合、最終のLMR実行サイクルでロードされた2倍
長データ・ワードは、図6に示すように、その下位バイ
トに上位番号汎用レジスタの内容およびその上位バイト
に次の下位番号汎用レジスタの内容を含む。同様に、奇
数個の汎用レジスタがLMR命令によってロードされて
いれば、ただ1つの汎用レジスタがLMR命令の最終E
Xサイクルによって影響を受ける。この場合、上位番号
レジスタの内容は、図7に示すように2データ・ワード
の下位バイトに存在する。次の連続命令がデータ流の上
位または下位のいずれかのバイトにおいてLMR命令の
最終サイクルで変更された汎用レジスタの内容を必要と
する一方で、ほとんどの場合下位バイトに必要である。
したがって、奇数個のレジスタがLMR命令によってロ
ードされ、次の連続命令が2ワード・データ流の下位バ
イトの上位番号レジスタ命令の内容を必要とするとき、
上位番号レジスタはいつでもバイパスできる。この事象
において、上位番号レジスタの内容はバス135および
ケーブル129によってオペランド・フェッチ・コント
ローラ124に受け渡される。したがって、次の命令の
OF段階はLMR命令の最終実行サイクルと同時に実行
される。このシーケンス図を図5に示す。この図は、L
MR命令のEX段階および次の連続命令のOF段階の最
終サイクルの同時発生を示している。
X段階の最終サイクルで変更された汎用レジスタまたは
レジスタ群の識別子の指摘は、ターゲット・レジスタ1
39に記憶される。さらに、1つまたは2つのレジスタ
が最終実行サイクルによって影響を受けるどうかに関し
て指摘が与えられる。この情報は、命令デコーダ120
によって用いられ識別されたレジスタまたはレジスタ群
がバイパス可能であるかどうかを決定する。LMR命令
の実行において、2倍長データ・ワードはメモリ・イン
ターフェース110からバス135を経て汎用レジスタ
130に転送され、2つの連番付与されたレジスタにラ
イトされる。上位番号レジスタは、2ワードの下位バイ
トからロードされ、下位番号レジスタは上位バイトから
ロードされる。偶数個の汎用レジスタがLMRレジスタ
によってロードされるなら、2つの汎用レジスタは最終
LMR命令によって影響を受けることは明白である。こ
の場合、最終のLMR実行サイクルでロードされた2倍
長データ・ワードは、図6に示すように、その下位バイ
トに上位番号汎用レジスタの内容およびその上位バイト
に次の下位番号汎用レジスタの内容を含む。同様に、奇
数個の汎用レジスタがLMR命令によってロードされて
いれば、ただ1つの汎用レジスタがLMR命令の最終E
Xサイクルによって影響を受ける。この場合、上位番号
レジスタの内容は、図7に示すように2データ・ワード
の下位バイトに存在する。次の連続命令がデータ流の上
位または下位のいずれかのバイトにおいてLMR命令の
最終サイクルで変更された汎用レジスタの内容を必要と
する一方で、ほとんどの場合下位バイトに必要である。
したがって、奇数個のレジスタがLMR命令によってロ
ードされ、次の連続命令が2ワード・データ流の下位バ
イトの上位番号レジスタ命令の内容を必要とするとき、
上位番号レジスタはいつでもバイパスできる。この事象
において、上位番号レジスタの内容はバス135および
ケーブル129によってオペランド・フェッチ・コント
ローラ124に受け渡される。したがって、次の命令の
OF段階はLMR命令の最終実行サイクルと同時に実行
される。このシーケンス図を図5に示す。この図は、L
MR命令のEX段階および次の連続命令のOF段階の最
終サイクルの同時発生を示している。
【0019】偶数個のレジスタがLMR命令によってロ
ードされれば、2番目に大きい番号のレジスタは、次の
命令のデータ流の下位バイトに必要であればバイパスさ
れない。したがって次の命令のOF段階は、図8に示す
ように、LMR命令の最終EX段階の後まで遅延しなけ
ればならない。次の連続命令が2ワード・データ流の上
位バイトのLMR命令の最終実行サイクルでロードされ
たレジスタの中の1つの内容を必要とすれば、上位番号
レジスタは決してバイパスされない。偶数個のレジスタ
がLMR命令によってロードされるイベントにおいて、
データ流の上位バイトにデータが必要であれば、2番目
に大きい番号のレジスタはバイパス可能である。
ードされれば、2番目に大きい番号のレジスタは、次の
命令のデータ流の下位バイトに必要であればバイパスさ
れない。したがって次の命令のOF段階は、図8に示す
ように、LMR命令の最終EX段階の後まで遅延しなけ
ればならない。次の連続命令が2ワード・データ流の上
位バイトのLMR命令の最終実行サイクルでロードされ
たレジスタの中の1つの内容を必要とすれば、上位番号
レジスタは決してバイパスされない。偶数個のレジスタ
がLMR命令によってロードされるイベントにおいて、
データ流の上位バイトにデータが必要であれば、2番目
に大きい番号のレジスタはバイパス可能である。
【0020】偶数個または奇数個のレジスタがLMR命
令によってロードされているかどうかを決定するため
に、プロセッサ102の排他的論理和回路160は、命
令に関係する上位番号または下位番号レジスタのアドレ
ス・フィールドの下位ビットを検査する。“1”出力は
偶数個のレジスタがロードされることを、および“0”
出力は奇数個のレジスタがロードされることを示してい
る。排他的論理和回路160の出力は、ターゲット・レ
ジスタ139の内容とともに用いられ、2番目に大きい
番号のレジスタをバイパスできるときを決定する。
令によってロードされているかどうかを決定するため
に、プロセッサ102の排他的論理和回路160は、命
令に関係する上位番号または下位番号レジスタのアドレ
ス・フィールドの下位ビットを検査する。“1”出力は
偶数個のレジスタがロードされることを、および“0”
出力は奇数個のレジスタがロードされることを示してい
る。排他的論理和回路160の出力は、ターゲット・レ
ジスタ139の内容とともに用いられ、2番目に大きい
番号のレジスタをバイパスできるときを決定する。
【0021】
【発明の効果】本発明によれば、プロセッサがメモリか
ら2データ・ワードを読み出し処理する場合に、2ワー
ドのある部分のある命令の実行段階の結果が2ワードの
同じ部分の次の命令のオペランド・フェッチ段階に必要
であれば、その結果を前命令の実行段階の期間に次の命
令で使用できるようにし、2ワードのある部分のデータ
が次の命令によって2ワードの他の部分に必要であれ
ば、次の命令のオペランド・フェッチ段階は前命令の実
行段階の完了後まで遅延されることをLMR命令に導入
することによって、プロセッサの性能を向上できるとい
う効果が得られる。
ら2データ・ワードを読み出し処理する場合に、2ワー
ドのある部分のある命令の実行段階の結果が2ワードの
同じ部分の次の命令のオペランド・フェッチ段階に必要
であれば、その結果を前命令の実行段階の期間に次の命
令で使用できるようにし、2ワードのある部分のデータ
が次の命令によって2ワードの他の部分に必要であれ
ば、次の命令のオペランド・フェッチ段階は前命令の実
行段階の完了後まで遅延されることをLMR命令に導入
することによって、プロセッサの性能を向上できるとい
う効果が得られる。
【図1】本発明の原理を備えたプロセッサを有するデー
タ処理システムを示すブロック図である。
タ処理システムを示すブロック図である。
【図2】図1の論理回路の詳細を示すブロック図であ
る。
る。
【図3】図1のプロセッサのハードウェア待ち行列を示
す図である。
す図である。
【図4】図1のプロセッサのパイプライン・シーケンス
を示すシーケンス図である。
を示すシーケンス図である。
【図5】図1のプロセッサのパイプライン・シーケンス
を示すシーケンス図である。
を示すシーケンス図である。
【図6】図1のプロセッサの2データ・ワードを示す図
である。
である。
【図7】図1のプロセッサの2データ・ワードを示す図
である。
である。
【図8】図1のプロセッサのパイプライン・シーケンス
を示すシーケンス図である。
を示すシーケンス図である。
101 メモリ・ユニット 102 プロセッサ 104 メモリ・バス 110 メモリ・インターフェース 112 Iユニット 114 Eユニット 120 命令デコーダ 122 アドレス・デコーダ 124 オペランド・フェッチ・コントローラ 125 ハードウェア待ち行列 126 実行コントローラ 127、128、129 ケーブル 130 汎用レジスタ 132 算術論理演算ユニット(ALU) 135 バス 139 ターゲット・レジスタ 140 論理回路 141、142、143 レジスタ 145 比較器 146、147、149 導線 148 ANDゲート 150 特定のエントリ 160 排他的論理和回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フレデリック・ウィリアム・ロバーツ アメリカ合衆国12498 ニューヨーク州、 ウッドストック、ウィッチツリー・ロー ド 19 (72)発明者 デービッド・アンドリュー・シュロター アメリカ合衆国12590 ニューヨーク州、 ワッピンガーズ・フォールズ、ダニエ ル・サビア・ドライブ 2
Claims (10)
- 【請求項1】複数の連番付与された汎用レジスタを含む
複数のプロセッサ・レジスタと、 記憶レジスタと、ロードされるべき前記汎用レジスタの連番付与されたサ
ブセットを定めている 所定の命令に応答して、前記サブ
セットの下位レジスタ番号を定めている下位レジスタ番
号値および前記サブセットの上位レジスタ番号を定めて
いる上位レジスタ番号値を前記記憶レジスタに記憶し、
第1の時間サイクルで、前記所定の命令を実行するため
の第1の命令制御信号を生成する命令処理ユニットと、 前記第1の命令制御信号に応答して、連続的に起こる所
定数の時間サイクルで前記所定の命令で定められた前記
汎用レジスタに選択的にデータをライトし、前記所定数
の時間サイクルの各時間サイクルで前記記憶レジスタに
記憶された前記サブセットの下位レジスタ番号を定めて
いる前記下位レジスタ番号値を増分する命令実行ユニッ
トとを備え、 前記命令処理ユニットは、前記汎用レジスタの特定の1
つを定めている次の連続命令に応答して、前記汎用レジ
スタの特定の1つのレジスタ番号と、前記所定数の時間
サイクルの各時間サイクルで前記記憶レジスタに記憶さ
れた前記増分された下位レジスタ番号値および前記上位
レジスタ番号値とを比較し、前記汎用レジスタの前記特
定の1つの前記レジスタ番号が前記記憶レジスタに記憶
された前記増分された下位レジスタ番号値と前記上位レ
ジスタ番号値とによって定められた範囲以外に属すると
き次の連続命令を実行する第2の命令制御信号を生成す
る、ことを特徴とするデータ・プロセッサ。 - 【請求項2】前記命令処理ユニットは、前記汎用レジス
タの前記特定の1つの前記レジスタ番号と、前記記憶レ
ジスタに記憶された前記増分された前記下位レジスタ番
号値および前記上位レジスタ番号値とを比較し、前記汎
用レジスタの前記特定の1つのの前記レジスタ番号が前
記記憶レジスタに記憶された前記増分された下位レジス
タ番号値および前記上位レジスタ番号値によって定めら
れた範囲以外に属するかどうかを指摘する比較器出力信
号を生成する比較器回路を備えることを特徴とする請求
項1記載のデータ・プロセッサ。 - 【請求項3】前記命令処理ユニットは、 第1の命令処理段階で前記第1の命令制御信号を生成す
る命令デコーダ回路と、 前記第1の命令処理段階に続
いて起こる第2の命令処理段階において、選択されたプ
ロセッサ・レジスタにアドレスを転送するアドレス転送
回路と、 前記第2の命令処理段階に続いて起こる第3の命令処理
段階の期間でメモリ・アクセス制御信号を生成するオペ
ランド・フェッチ回路とを備え、 前記命令処理ユニットは、比較器出力信号に応答して、
前記デコーダ回路の動作を選択的に遅延させる、ことを
特徴とする請求項2記載のデータ・プロセッサ。 - 【請求項4】前記命令ユニットは、 第1の命令処理段階で命令制御信号を生成する命令デコ
ーダ回路と、 前記第1の命令処理段階に続いて起こる第2の命令処理
段階において、選択されたプロセッサ・レジスタにアド
レスを転送するアドレス転送回路と、 前記第2の命令処理段階に続いて起こる第3の命令処理
段階の期間でメモリ・アクセス制御信号を生成するオペ
ランド・フェッチ回路とを備え、 前記命令処理ユニットは、比較器出力信号に応答して、
前記オペランド・フェッチ回路の動作を選択的に遅延さ
せる、ことを特徴とする請求項2記載のデータ・プロセ
ッサ。 - 【請求項5】複数の連続的に行われた実行サイクルは所
定の命令の実行のために必要とされ、前記下位レジスタ番号値と前記上位レジスタ番号値とを
定めている前記記憶レジスタのビットに応答して、 前記
複数の実行サイクルの最終サイクルで2つ以上のレジス
タにデータをライトするとき、所定の出力信号を生成す
る論理回路をさらに備え、 前記命令処理ユニットは、前記出力信号に応答して、前
記最終実行サイクル期間で他のプロセッサ・レジスタに
対して前記最終実行サイクルで前記レジスタのサブセッ
トの1つにライトされたデータを選択的に受け渡す、 ことを特徴とする請求項1記載のデータ・プロセッサ。 - 【請求項6】前記論理回路は、前記サブセットの全レジ
スタ数が奇数のときに第1の出力を生成し、前記サブセ
ットの全レジスタ数が偶数のときに第2の出力を生成す
る排他的論理和回路を有することを特徴とする請求項5
記載のデータ・プロセッサ。 - 【請求項7】複数の連番付与された汎用レジスタと複数
の関連するロード・マルチプル・レジスタ(LMR)の
データ・ワードを定めているLMR命令を含み、前記連
番付与された汎用レジスタ群の1つを定めている次の連
続命令(NSI)を含んでいる命令およびデータを記憶
するメモリを有するデータ・プロセッサにおいて、 複数の連番付与された汎用レジスタを含む複数のプロセ
ッサ・レジスタと、 メモリ・リード制御信号に応答して、メモリからの前記
LMR命令とデータ・ワードをリードするメモリ・イン
ターフェースと、 命令情報記憶ユニットと、 メモリからリードされた前記LMR命令に応答して、第
1の時間サイクルで、LMR命令制御信号を生成し、前
記LMR命令に定められた下位番号汎用レジスタのレジ
スタ番号値と上位番号汎用レジスタのレジスタ番号値と
を前記命令情報記憶ユニットに記憶し、メモリからリー
ドされた前記NSI命令に応答して、第2の時間サイク
ルで、前記NSI命令に定められた前記汎用レジスタの
レジスタ番号と、前記下位番号汎用レジスタの前記レジ
スタ番号値および前記上位番号汎用レジスタの前記レジ
スタ番号値によって定められた範囲とを比較し、前記N
SI命令に定められた前記汎用レジスタの前記レジスタ
番号が前記命令情報記憶ユニットに記憶された前記下位
番号汎用レジスタの前記レジスタ番号値未満であればN
SI命令制御信号を生成する命令ユニットと、 増分信号に応答して、前記命令情報記憶ユニットに記憶
された前記下位番号汎用レジスタの前記レジスタ番号値
を増分する増分回路と、 データ処理制御信号に応答して、前記プロセッサのデー
タを選択的に転送し、前記プロセッサのデータの所定の
論理機能を実行するデータ処理回路と、 前記LMR命令制御信号に応答して、前記メモリ・イン
ターフェースによって複数のデータ・フェッチ動作を実
行して複数のLMRデータ・ワードをフェッチするメモ
リ・リード制御信号およびデータ処理制御信号と、前記
データ処理回路によって複数の所定の時間サイクルで前
記LMR命令に定められたレジスタにメモリからリード
されたデータ・ワードを転送できるようにするデータ処
理制御信号とを生成し、前記所定の時間サイクルの各サ
イクルで、前記情報記憶ユニットに記憶された前記下位
番号汎用レジスタの前記レジスタ番号値が増分されるよ
うに、前記所定の時間サイクルの各サイクルの期間で増
分制御信号を生成する実行ユニットとを備え、 前記命令ユニットは、前記命令情報記憶ユニットの前記
下位番号レジスタの前記レジスタ番号値の増分値に応答
して、選択的に前記NSI命令制御信号を生成する、 ことを特徴とするデータ・プロセッサ。 - 【請求項8】前記命令ユニットは、 第1の命令処理段階の命令制御信号を生成する命令デコ
ーダ回路と、 第2の続いて起こる命令処理段階の選択されたプロセッ
サ・レジスタにアドレスに関連する命令を転送するアド
レス転送回路と、 前記第2の命令処理段階に続いて起こる第3の命令処理
段階のメモリからオペランド・データに関連する命令を
フェッチするオペランド・フェッチ回路とを有し、 前
記命令ユニットは、前記NSI命令に応答して、前記下
位番号汎用レジスタの前記増分値と前記上位番号汎用レ
ジスタの前記レジスタ番号値によって定められた範囲が
前記NSI命令に定められた前記レジスタを含まないよ
うになるまで前記デコーダ回路と前記オペランド・フェ
ッチ回路の動作を選択的に遅延させる、ことを特徴とす
る請求項7記載のデータ・プロセッサ。 - 【請求項9】複数の順次行われた実行サイクルは前記L
MR命令の実行のために必要とされ、 前記下位番号レジスタの前記レジスタ番号値と前記上位
番号レジスタの前記レジスタ番号値とを定めている前記
命令情報記憶ユニットのビットに応答して、前記複数の
実行サイクルの前記最終サイクルで2つ以上の前記汎用
レジスタにデータが転送されるとき所定の出力信号を生
成する論理回路をさらに備え、 前記命令ユニットは、前記所定の出力信号に応答して、
前記複数の最終実行サイクル期間で、他のプロセッサ・
レジスタに前記最終実行サイクル内で転送されたデータ
を選択的に受け渡す、 ことを特徴とする請求項7記載のデータ・プロセッサ。 - 【請求項10】前記論理回路は、前記LMR命令によっ
て定められた汎用レジスタの全数が奇数のときに第1の
出力を生成し、前記LMR命令によって定められた汎用
レジスタの前記全数が偶数のときに第2の出力を生成す
る排他的論理和回路を備えることを特徴とする請求項9
記載のデータ・プロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12216 | 1993-02-02 | ||
US012216 | 1993-02-02 | ||
US08/012,216 US5416911A (en) | 1993-02-02 | 1993-02-02 | Performance enhancement for load multiple register instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06242953A JPH06242953A (ja) | 1994-09-02 |
JP2620511B2 true JP2620511B2 (ja) | 1997-06-18 |
Family
ID=21753902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6002317A Expired - Lifetime JP2620511B2 (ja) | 1993-02-02 | 1994-01-14 | データ・プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5416911A (ja) |
JP (1) | JP2620511B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590368A (en) * | 1993-03-31 | 1996-12-31 | Intel Corporation | Method and apparatus for dynamically expanding the pipeline of a microprocessor |
JP3159345B2 (ja) * | 1993-07-02 | 2001-04-23 | 日本電気株式会社 | パイプライン演算処理装置 |
DE69506623T2 (de) * | 1994-06-03 | 1999-07-22 | Motorola, Inc., Schaumburg, Ill. | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb |
US5694565A (en) * | 1995-09-11 | 1997-12-02 | International Business Machines Corporation | Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions |
US5778208A (en) * | 1995-12-18 | 1998-07-07 | International Business Machines Corporation | Flexible pipeline for interlock removal |
JPH09305401A (ja) * | 1996-05-13 | 1997-11-28 | Mitsubishi Electric Corp | コンピュータ及びコンパイラ |
US5859999A (en) * | 1996-10-03 | 1999-01-12 | Idea Corporation | System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers |
US5913054A (en) * | 1996-12-16 | 1999-06-15 | International Business Machines Corporation | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle |
US6035394A (en) * | 1998-02-17 | 2000-03-07 | International Business Machines Corporation | System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel |
US6253312B1 (en) * | 1998-08-07 | 2001-06-26 | Ip First, L.L.C. | Method and apparatus for double operand load |
US6209082B1 (en) | 1998-11-17 | 2001-03-27 | Ip First, L.L.C. | Apparatus and method for optimizing execution of push all/pop all instructions |
US6671794B1 (en) | 2000-10-02 | 2003-12-30 | International Business Machines Corporation | Address generation interlock detection |
GB2397667A (en) * | 2003-01-27 | 2004-07-28 | Imagination Tech Ltd | Multiple register load using a very long instruction word |
DE60327953D1 (de) * | 2003-08-26 | 2009-07-23 | Ibm | Prozessor mit anforderungsgesteuerter taktdrosselung zur leistungsreduzierung |
US7421521B2 (en) * | 2004-04-05 | 2008-09-02 | Intel Corporation | System, method and device for real time control of processor |
US8191085B2 (en) | 2006-08-29 | 2012-05-29 | Freescale Semiconductor, Inc. | Method and apparatus for loading or storing multiple registers in a data processing system |
US7987343B2 (en) * | 2008-03-19 | 2011-07-26 | International Business Machines Corporation | Processor and method for synchronous load multiple fetching sequence and pipeline stage result tracking to facilitate early address generation interlock bypass |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4287561A (en) * | 1978-03-16 | 1981-09-01 | International Business Machines Corporation | Address formulation interlock mechanism |
US5005118A (en) * | 1987-04-10 | 1991-04-02 | Tandem Computers Incorporated | Method and apparatus for modifying micro-instructions using a macro-instruction pipeline |
JPH0760388B2 (ja) * | 1987-06-09 | 1995-06-28 | 三菱電機株式会社 | パイプライン制御回路 |
US4992938A (en) * | 1987-07-01 | 1991-02-12 | International Business Machines Corporation | Instruction control mechanism for a computing system with register renaming, map table and queues indicating available registers |
JP2810068B2 (ja) * | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
-
1993
- 1993-02-02 US US08/012,216 patent/US5416911A/en not_active Expired - Fee Related
-
1994
- 1994-01-14 JP JP6002317A patent/JP2620511B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5416911A (en) | 1995-05-16 |
JPH06242953A (ja) | 1994-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2620511B2 (ja) | データ・プロセッサ | |
EP0111776B1 (en) | Interrupt processor | |
US6889318B1 (en) | Instruction fusion for digital signal processor | |
JP5431308B2 (ja) | システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法 | |
US5404552A (en) | Pipeline risc processing unit with improved efficiency when handling data dependency | |
US4745547A (en) | Vector processing | |
US6260189B1 (en) | Compiler-controlled dynamic instruction dispatch in pipelined processors | |
JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
JPH07160501A (ja) | データ処理システム | |
WO2002050668A2 (en) | System and method for multiple store buffer forwarding | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
US6145074A (en) | Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction | |
JPH0496825A (ja) | データ・プロセッサ | |
US5053986A (en) | Circuit for preservation of sign information in operations for comparison of the absolute value of operands | |
US5119324A (en) | Apparatus and method for performing arithmetic functions in a computer system | |
US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
JPH0248732A (ja) | 命令パイプライン方式のマイクロプロセッサ | |
JPH05143323A (ja) | タイプ1ダイアデイツク命令を実行する方法及び装置 | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
KR100278136B1 (ko) | 데이타처리장치 및 데이타처리방법 | |
JP2824484B2 (ja) | パイプライン処理計算機 | |
JP2812610B2 (ja) | パイプライン制御方式 | |
AU4661499A (en) | Method and apparatus for distributing commands to a plurality of processing units | |
JP3569338B2 (ja) | 並列処理プロセッサ |