JP3004108B2 - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JP3004108B2 JP3004108B2 JP3312133A JP31213391A JP3004108B2 JP 3004108 B2 JP3004108 B2 JP 3004108B2 JP 3312133 A JP3312133 A JP 3312133A JP 31213391 A JP31213391 A JP 31213391A JP 3004108 B2 JP3004108 B2 JP 3004108B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- immediate
- operand
- field
- extension
- 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 - Fee Related
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】この発明は、即値オペランドを持
つ特定命令を扱う情報処理装置に係り、特に即値オペラ
ンドを拡張するための即値オペランド拡張方式に関す
る。
つ特定命令を扱う情報処理装置に係り、特に即値オペラ
ンドを拡張するための即値オペランド拡張方式に関す
る。
【0002】
【従来の技術】計算機システムなどの情報処理装置で扱
われる各種命令(命令語)の1つに、即値オペランドを
持つ命令がある。この即値オペランドを持つ命令は、即
値オペランドのフィールドの他に、命令コード(OPコ
ード)のフィールド、デスティネーションフィールド等
のフィールドを持つ。このため、命令語内に確保可能な
即値オペランドフィールドのサイズは限られる。
われる各種命令(命令語)の1つに、即値オペランドを
持つ命令がある。この即値オペランドを持つ命令は、即
値オペランドのフィールドの他に、命令コード(OPコ
ード)のフィールド、デスティネーションフィールド等
のフィールドを持つ。このため、命令語内に確保可能な
即値オペランドフィールドのサイズは限られる。
【0003】そこで従来は、命令語内に確保可能な即値
オペランドフィールドのサイズを越えるサイズの即値オ
ペランドを指定するために、各機能(即値オペランドを
用いた加算演算、減算演算などの各機能)毎に即値オペ
ランドのサイズに対応する命令をそれぞれ用意する等の
方式を適用していた。
オペランドフィールドのサイズを越えるサイズの即値オ
ペランドを指定するために、各機能(即値オペランドを
用いた加算演算、減算演算などの各機能)毎に即値オペ
ランドのサイズに対応する命令をそれぞれ用意する等の
方式を適用していた。
【0004】また、即値オペランドを修飾する命令を用
意し、特定の命令語内の即値オペランドを、同命令で指
定されたよりサイズの大きい即値オペランドで置換える
方式もあった。
意し、特定の命令語内の即値オペランドを、同命令で指
定されたよりサイズの大きい即値オペランドで置換える
方式もあった。
【0005】その他、即値オペランドを上位と下位に分
割し、それぞれに専用のロード命令を用意し、サイズの
大きい即値についてはレジスタを経由して使用する方式
もあった。
割し、それぞれに専用のロード命令を用意し、サイズの
大きい即値についてはレジスタを経由して使用する方式
もあった。
【0006】
【発明が解決しようとする課題】しかし、命令語内に確
保可能な即値オペランドフィールドのサイズを越えるサ
イズの即値オペランドを指定するのに、各機能毎に即値
オペランドのサイズに対応する命令をそれぞれ用意する
方式では、命令数が増え、命令体系が複雑になるという
問題があった。また、この方式では、命令語内のOPコ
ードフィールドのサイズが大きくなるため、オペランド
指定フィールドのサイズが圧迫されるという問題もあっ
た。
保可能な即値オペランドフィールドのサイズを越えるサ
イズの即値オペランドを指定するのに、各機能毎に即値
オペランドのサイズに対応する命令をそれぞれ用意する
方式では、命令数が増え、命令体系が複雑になるという
問題があった。また、この方式では、命令語内のOPコ
ードフィールドのサイズが大きくなるため、オペランド
指定フィールドのサイズが圧迫されるという問題もあっ
た。
【0007】また、命令語内に指定された即値オペラン
ドを単に専用の命令で指定する即値オペランドに置換え
る方式では、命令語サイズ以上のサイズの即値オペラン
ドを指定できないという問題があった。
ドを単に専用の命令で指定する即値オペランドに置換え
る方式では、命令語サイズ以上のサイズの即値オペラン
ドを指定できないという問題があった。
【0008】さらに、即値オペランドを分割し、レジス
タを経由して使用する方式では、即値オペランドを使用
するために1フェッチサイクル以上のオーバヘッドを伴
うという問題があった。また、この方式では、パイプラ
イン制御方式の情報処理装置におけるレジスタ・ハザー
ドによる性能低下が起こり得るという問題もあった。
タを経由して使用する方式では、即値オペランドを使用
するために1フェッチサイクル以上のオーバヘッドを伴
うという問題があった。また、この方式では、パイプラ
イン制御方式の情報処理装置におけるレジスタ・ハザー
ドによる性能低下が起こり得るという問題もあった。
【0009】この発明は上記事情に鑑みてなされたもの
でその目的は、命令語内に確保可能な即値オペランドフ
ィールドのサイズを越えるサイズの即値オペランドが、
より少ない命令レパートリ(OPコードの種類)で且つ
性能を悪化させることなく指定できる情報処理装置を提
供することにある。
でその目的は、命令語内に確保可能な即値オペランドフ
ィールドのサイズを越えるサイズの即値オペランドが、
より少ない命令レパートリ(OPコードの種類)で且つ
性能を悪化させることなく指定できる情報処理装置を提
供することにある。
【0010】この発明の他の目的は、並列処理方式の情
報処理装置においては、命令語内に確保可能な即値オペ
ランドフィールドのサイズを越えるサイズの即値オペラ
ンドが、命令のフェッチサイクル数を全く増加させるこ
となく指定できるようにすることにある。
報処理装置においては、命令語内に確保可能な即値オペ
ランドフィールドのサイズを越えるサイズの即値オペラ
ンドが、命令のフェッチサイクル数を全く増加させるこ
となく指定できるようにすることにある。
【0011】
【課題を解決するための手段】この発明は、即値オペラ
ンドのフィールドを持つ特定命令の即値の拡張部分を指
定する即値拡張命令が上記特定命令の直前または直後に
配された記憶手段と、上記特定命令を実行する前に、同
命令の前記即値オペランドフィールドの内容を、同命令
の直前または直後に配された前記即値拡張命令の指定す
る即値の拡張部分と連結するための連結手段とを設け、
上記連結手段によって連結された即値オペランドを用い
て特定命令を実行するようにしたことを特徴とするもの
である。
ンドのフィールドを持つ特定命令の即値の拡張部分を指
定する即値拡張命令が上記特定命令の直前または直後に
配された記憶手段と、上記特定命令を実行する前に、同
命令の前記即値オペランドフィールドの内容を、同命令
の直前または直後に配された前記即値拡張命令の指定す
る即値の拡張部分と連結するための連結手段とを設け、
上記連結手段によって連結された即値オペランドを用い
て特定命令を実行するようにしたことを特徴とするもの
である。
【0012】
【作用】上記の構成における作用を、VLIW(Very L
ong Instruction Word)型並列方式(VLIW方式)の
情報処理装置(並列演算処理装置)に適用した場合を例
に説明する。なお、VLIW方式の情報処理装置では、
所定数の固定長命令を単位に処理される。この所定数の
命令の集まりは、VLIW型命令(またはVLIW型命
令語)と呼ばれる。
ong Instruction Word)型並列方式(VLIW方式)の
情報処理装置(並列演算処理装置)に適用した場合を例
に説明する。なお、VLIW方式の情報処理装置では、
所定数の固定長命令を単位に処理される。この所定数の
命令の集まりは、VLIW型命令(またはVLIW型命
令語)と呼ばれる。
【0013】まず、VLIW方式の情報処理装置では、
並列に処理すべき所定数の固定長命令(からなるVLI
W型命令)が主記憶あるいは命令キャッシュ等の記憶手
段からフェッチされる。ここで、上記の特定命令および
即値拡張命令を含むVLIW型命令がフェッチされたも
のとすると、即値拡張命令(のOPコード)に応じて同
命令の指定する即値の拡張部分が(第1の選択手段によ
って)選択されて連結手段に導かれる。この連結手段に
は、上記の即値拡張命令の直前または直後に配された特
定命令の持つ即値オペランドフィールドの内容も導かれ
る。これにより、即値拡張命令の指定する即値の拡張部
分と特定命令の持つ即値オペランドフィールドの内容と
が連結手段によって連結され、即値オペランドが拡張さ
れる。もし、即値拡張命令が存在しない場合には、即値
拡張部分に代えて、例えば値が全て0のデータが連結手
段に導かれ、即値オペランドフィールドの内容と連結さ
れる。
並列に処理すべき所定数の固定長命令(からなるVLI
W型命令)が主記憶あるいは命令キャッシュ等の記憶手
段からフェッチされる。ここで、上記の特定命令および
即値拡張命令を含むVLIW型命令がフェッチされたも
のとすると、即値拡張命令(のOPコード)に応じて同
命令の指定する即値の拡張部分が(第1の選択手段によ
って)選択されて連結手段に導かれる。この連結手段に
は、上記の即値拡張命令の直前または直後に配された特
定命令の持つ即値オペランドフィールドの内容も導かれ
る。これにより、即値拡張命令の指定する即値の拡張部
分と特定命令の持つ即値オペランドフィールドの内容と
が連結手段によって連結され、即値オペランドが拡張さ
れる。もし、即値拡張命令が存在しない場合には、即値
拡張部分に代えて、例えば値が全て0のデータが連結手
段に導かれ、即値オペランドフィールドの内容と連結さ
れる。
【0014】連結手段によって連結されたデータ(即値
拡張命令が存在する場合には、拡張された即値オペラン
ド)は、特定命令の実行時には(第2の選択手段によっ
て選択されて)、記憶手段からフェッチされたVLIW
型命令内の上記の特定命令に対応する位置の演算器に供
給される。これにより、特定命令および、その直前また
は直後に配された即値拡張命令を含むVLIW型命令が
フェッチされた場合であれば、即値拡張命令の指定する
即値の拡張部分と特定命令の持つ即値オペランドフィー
ルドの内容とが連結されたオペランド、即ち拡張された
即値オペランドを用いた指定の演算が行われる。
拡張命令が存在する場合には、拡張された即値オペラン
ド)は、特定命令の実行時には(第2の選択手段によっ
て選択されて)、記憶手段からフェッチされたVLIW
型命令内の上記の特定命令に対応する位置の演算器に供
給される。これにより、特定命令および、その直前また
は直後に配された即値拡張命令を含むVLIW型命令が
フェッチされた場合であれば、即値拡張命令の指定する
即値の拡張部分と特定命令の持つ即値オペランドフィー
ルドの内容とが連結されたオペランド、即ち拡張された
即値オペランドを用いた指定の演算が行われる。
【0015】
【実施例】図1はこの発明を適用するVLIW方式で且
つパイプライン制御方式の情報処理装置(並列演算処理
装置)の一実施例を示す要部のブロック構成図である。
なお本実施例におけるパイプラインは、フェッチ(命令
フェッチ)ステージF、デコード(命令デコード)ステ
ージD、実行ステージEおよびライトバック(結果の書
込み)ステージWの4段構成であるものとする。
つパイプライン制御方式の情報処理装置(並列演算処理
装置)の一実施例を示す要部のブロック構成図である。
なお本実施例におけるパイプラインは、フェッチ(命令
フェッチ)ステージF、デコード(命令デコード)ステ
ージD、実行ステージEおよびライトバック(結果の書
込み)ステージWの4段構成であるものとする。
【0016】図1において、1は各種プログラムおよび
データ等の格納領域を提供する主記憶、11は主記憶1
に格納されているVLIW型命令である。このVLIW
型命令11は、4つの32ビット命令I#1〜I#4か
らなる複合命令である。2は主記憶1に格納されている
命令群の一部のコピーが置かれる命令キャッシュであ
る。
データ等の格納領域を提供する主記憶、11は主記憶1
に格納されているVLIW型命令である。このVLIW
型命令11は、4つの32ビット命令I#1〜I#4か
らなる複合命令である。2は主記憶1に格納されている
命令群の一部のコピーが置かれる命令キャッシュであ
る。
【0017】3はフェッチステージFにおいて命令キャ
ッシュ2からフェッチされたVLIW型命令を保持する
ための128ビットの命令レジスタである。命令レジス
タ3は、VLIW型命令を構成する4命令が保持される
4つの命令フィールド41〜44を持つ。
ッシュ2からフェッチされたVLIW型命令を保持する
ための128ビットの命令レジスタである。命令レジス
タ3は、VLIW型命令を構成する4命令が保持される
4つの命令フィールド41〜44を持つ。
【0018】図1では、即値加算を指定するOPコード
“add.i”を持つ即値加算命令が命令フィールド3
1に、即値オペランドの拡張を指定するOPコード“i
ext”を持つ即値拡張命令が命令フィールド32に、
(命令フィールド31と同様に)OPコード“add.
i”を持つ即値加算命令が命令フィールド33に、そし
て即値を用いない通常の減算(レジスタファイルのレジ
スタデータをオペランドとして用いる減算)を指定する
OPコード“sub”を持つ減算命令が命令フィールド
34に、それぞれ保持されている状態が示されている。
“add.i”を持つ即値加算命令が命令フィールド3
1に、即値オペランドの拡張を指定するOPコード“i
ext”を持つ即値拡張命令が命令フィールド32に、
(命令フィールド31と同様に)OPコード“add.
i”を持つ即値加算命令が命令フィールド33に、そし
て即値を用いない通常の減算(レジスタファイルのレジ
スタデータをオペランドとして用いる減算)を指定する
OPコード“sub”を持つ減算命令が命令フィールド
34に、それぞれ保持されている状態が示されている。
【0019】以上の3種の命令(即値加算命令、即値拡
張命令、減算命令)の要部のフォーマットを図2に示
す。図2から明らかなように、即値加算命令は、6ビッ
トの即値オペランドフィールドi6(ビット26〜3
1)を有し、即値拡張命令は、即値(6ビットの即値オ
ペランド)の拡張部分である26ビットの拡張即値オペ
ランドが設定される拡張即値オペランドフィールドi2
6(ビット6〜31)を有している。
張命令、減算命令)の要部のフォーマットを図2に示
す。図2から明らかなように、即値加算命令は、6ビッ
トの即値オペランドフィールドi6(ビット26〜3
1)を有し、即値拡張命令は、即値(6ビットの即値オ
ペランド)の拡張部分である26ビットの拡張即値オペ
ランドが設定される拡張即値オペランドフィールドi2
6(ビット6〜31)を有している。
【0020】また、各命令が有する命令語のOPコード
は、基本的にはビット0〜8の9ビット(上位の9ビッ
ト)で構成される。但し、即値拡張命令のOPコード
“iext”は、上記した26ビットの拡張即値オペラ
ンドフィールドi26(ビット6〜31)を確保するた
めに、実質的にビット0〜4の5ビットだけで即値拡張
命令であることが指定でき、ビット5〜9の4ビットの
内容に影響されないようになっている。
は、基本的にはビット0〜8の9ビット(上位の9ビッ
ト)で構成される。但し、即値拡張命令のOPコード
“iext”は、上記した26ビットの拡張即値オペラ
ンドフィールドi26(ビット6〜31)を確保するた
めに、実質的にビット0〜4の5ビットだけで即値拡張
命令であることが指定でき、ビット5〜9の4ビットの
内容に影響されないようになっている。
【0021】なお本実施例では、VLIW型命令の4命
令の中に即値演算命令が存在し、且つその即値演算命令
がVLIW型命令のうちの1番目または3番目の命令と
なっている場合だけ、その即値演算命令の即値オペラン
ドの拡張が可能な構成となっている。また、この即値オ
ペランドの拡張を指定する即値拡張命令は、拡張の対象
とする即値オペランドを持つ命令(即値演算命令)の直
後、即ちVLIW型命令の4命令のうちの2番目または
4番目に置かれるようになっている。
令の中に即値演算命令が存在し、且つその即値演算命令
がVLIW型命令のうちの1番目または3番目の命令と
なっている場合だけ、その即値演算命令の即値オペラン
ドの拡張が可能な構成となっている。また、この即値オ
ペランドの拡張を指定する即値拡張命令は、拡張の対象
とする即値オペランドを持つ命令(即値演算命令)の直
後、即ちVLIW型命令の4命令のうちの2番目または
4番目に置かれるようになっている。
【0022】再び図1を参照すると、41〜44は命令
レジスタ3の命令フィールド31〜34に対応して設け
られ、同フィールド31〜34に保持された命令のOP
コードをデコードして各種のデコード信号を出力するデ
コード回路(DEC)である。この4つのデコード回路
41〜44のうち、命令フィールド32,34に対応す
るデコード回路42,44は、デコード対象となるOP
コードが“iext”である場合に、論理“1”の特定
の信号(マスク信号と呼ぶ)M2,M4、および後述す
る演算器92,94に対して演算動作の無いこと、即ち
NOP(ノーオペレーション)を指示する信号(図示せ
ず)を出力するデコード機能を有する。なお、デコード
回路41,43がデコード回路42,44と同一デコー
ド機能を持つものであっても構わない。
レジスタ3の命令フィールド31〜34に対応して設け
られ、同フィールド31〜34に保持された命令のOP
コードをデコードして各種のデコード信号を出力するデ
コード回路(DEC)である。この4つのデコード回路
41〜44のうち、命令フィールド32,34に対応す
るデコード回路42,44は、デコード対象となるOP
コードが“iext”である場合に、論理“1”の特定
の信号(マスク信号と呼ぶ)M2,M4、および後述す
る演算器92,94に対して演算動作の無いこと、即ち
NOP(ノーオペレーション)を指示する信号(図示せ
ず)を出力するデコード機能を有する。なお、デコード
回路41,43がデコード回路42,44と同一デコー
ド機能を持つものであっても構わない。
【0023】52,54は命令レジスタ3の命令フィー
ルド32,34の下位26ビット(ビット6〜31)の
出力を入力するための入力Aと、デコード回路42,4
4からのマスク信号M2,M4を入力するためのマスク
入力Mと、26ビット出力Yとを持つAND(アンド)
ゲートである。ANDゲート52,54は、マスク入力
Mが“1”のとき入力Aの26ビットをそのまま出力Y
に出力し、マスク入力Mが“0”のとき出力Yの26ビ
ットを全て“0”とする。
ルド32,34の下位26ビット(ビット6〜31)の
出力を入力するための入力Aと、デコード回路42,4
4からのマスク信号M2,M4を入力するためのマスク
入力Mと、26ビット出力Yとを持つAND(アンド)
ゲートである。ANDゲート52,54は、マスク入力
Mが“1”のとき入力Aの26ビットをそのまま出力Y
に出力し、マスク入力Mが“0”のとき出力Yの26ビ
ットを全て“0”とする。
【0024】61はANDゲート52の出力Yの26ビ
ットを命令レジスタ3の命令フィールド31の下位6ビ
ット(ビット26〜31)の出力に連結し、32ビット
の即値データ71として伝達するための即値データ線、
62は26ビットの“0”データを命令レジスタ3の命
令フィールド32の下位6ビット(ビット26〜31)
の出力に連結し、32ビットの即値データ72として伝
達するための即値データ線である。63はANDゲート
54の出力Yの26ビットを命令レジスタ3の命令フィ
ールド33の下位6ビット(ビット26〜31)の出力
に連結し、32ビットの即値データ73として伝達する
ための即値データ線、64は26ビットの“0”データ
を命令レジスタ3の命令フィールド34の下位6ビット
(ビット26〜31)の出力に連結し、32ビットの即
値データ74として伝達するための即値データ線であ
る。
ットを命令レジスタ3の命令フィールド31の下位6ビ
ット(ビット26〜31)の出力に連結し、32ビット
の即値データ71として伝達するための即値データ線、
62は26ビットの“0”データを命令レジスタ3の命
令フィールド32の下位6ビット(ビット26〜31)
の出力に連結し、32ビットの即値データ72として伝
達するための即値データ線である。63はANDゲート
54の出力Yの26ビットを命令レジスタ3の命令フィ
ールド33の下位6ビット(ビット26〜31)の出力
に連結し、32ビットの即値データ73として伝達する
ための即値データ線、64は26ビットの“0”データ
を命令レジスタ3の命令フィールド34の下位6ビット
(ビット26〜31)の出力に連結し、32ビットの即
値データ74として伝達するための即値データ線であ
る。
【0025】81〜84は命令レジスタ3の命令フィー
ルド31〜34に対応して設けられ、図示せぬレジスタ
ファイルから取出された32ビットのオペランドデータ
を入力するための入力Rと、即値データ線61〜64上
の32ビット即値データ71〜74を入力するための入
力Iと、32ビット出力Yと、命令フィールド31〜3
4に保持されている命令が(即値オペランドを持つ)即
値演算命令であるか否かを示す(デコード回路41〜4
4からの特定デコード信号が導かれる)入力Sとを持つ
セレクタである。セレクタ81〜84は、入力Sの状態
に応じて出力Yを入力Iまたは入力Rに切替える。
ルド31〜34に対応して設けられ、図示せぬレジスタ
ファイルから取出された32ビットのオペランドデータ
を入力するための入力Rと、即値データ線61〜64上
の32ビット即値データ71〜74を入力するための入
力Iと、32ビット出力Yと、命令フィールド31〜3
4に保持されている命令が(即値オペランドを持つ)即
値演算命令であるか否かを示す(デコード回路41〜4
4からの特定デコード信号が導かれる)入力Sとを持つ
セレクタである。セレクタ81〜84は、入力Sの状態
に応じて出力Yを入力Iまたは入力Rに切替える。
【0026】91〜94は命令レジスタ3の命令フィー
ルド31〜34に対応して設けられ、同フィールド31
〜34の指定する演算をデコード回路41〜44のデコ
ード結果に従って実行する演算器である。演算器91〜
94にはセレクタ81〜84の出力Yの32ビットが供
給されるようになっている。
ルド31〜34に対応して設けられ、同フィールド31
〜34の指定する演算をデコード回路41〜44のデコ
ード結果に従って実行する演算器である。演算器91〜
94にはセレクタ81〜84の出力Yの32ビットが供
給されるようになっている。
【0027】次に、図1の構成の動作を説明する。ま
ず、主記憶1中の命令は、命令キャッシュ2を経由し
て、命令パイプラインのフェッチステージ(フェッチサ
イクル)Fで、命令レジスタ3に4命令の組ずつ(即ち
VLIW型命令を単位に)取込まれる。これにより、V
LIW型命令の1番目の命令は命令レジスタ3の命令フ
ィールド31に、2番目の命令は同じく命令フィールド
32に、3番目の命令は命令フィールド33に、そして
4番目の命令は命令フィールド34に、それぞれ保持さ
れる。
ず、主記憶1中の命令は、命令キャッシュ2を経由し
て、命令パイプラインのフェッチステージ(フェッチサ
イクル)Fで、命令レジスタ3に4命令の組ずつ(即ち
VLIW型命令を単位に)取込まれる。これにより、V
LIW型命令の1番目の命令は命令レジスタ3の命令フ
ィールド31に、2番目の命令は同じく命令フィールド
32に、3番目の命令は命令フィールド33に、そして
4番目の命令は命令フィールド34に、それぞれ保持さ
れる。
【0028】次のデコードステージ(デコードサイク
ル)Dでは、命令レジスタ3の命令フィールド31〜3
4に保持されている各命令のOPコードをデコードする
処理がデコード回路41〜44により行われる。このデ
コードステージDでは、即値データ線61〜64上32
ビットの即値データ71〜74が生成される。そして、
この即値データ71〜74またはレジスタファイルから
のデータが、命令フィールド31〜34の命令(をもと
にデコード回路41〜44から出力される特定デコード
信号)に応じてセレクタ81〜84により切替えられ、
次の実行ステージEのために演算器91〜94に渡され
る。
ル)Dでは、命令レジスタ3の命令フィールド31〜3
4に保持されている各命令のOPコードをデコードする
処理がデコード回路41〜44により行われる。このデ
コードステージDでは、即値データ線61〜64上32
ビットの即値データ71〜74が生成される。そして、
この即値データ71〜74またはレジスタファイルから
のデータが、命令フィールド31〜34の命令(をもと
にデコード回路41〜44から出力される特定デコード
信号)に応じてセレクタ81〜84により切替えられ、
次の実行ステージEのために演算器91〜94に渡され
る。
【0029】ここで、即値データ71〜74の生成の詳
細について説明する。まず、命令フィールド31〜34
のうちの命令フィールド32,34には、前記したよう
にOPコード“iext”を持つ即値拡張命令が保持さ
れる可能性がある。デコード回路42,44は、命令フ
ィールド32,34に保持されている命令のOPコード
が“iext”の場合(OPコードの上位の5ビットが
“iext”に固有の特定値の場合)、即ち命令フィー
ルド32,34に保持されている命令が即値拡張命令の
場合には、その命令中の拡張即値オペランドフィールド
i26の内容(ビット6〜31の26ビット)を有効と
するためのマスク信号M2,M4、および演算器92,
94に対してNOPを指示するための信号を出力する。
細について説明する。まず、命令フィールド31〜34
のうちの命令フィールド32,34には、前記したよう
にOPコード“iext”を持つ即値拡張命令が保持さ
れる可能性がある。デコード回路42,44は、命令フ
ィールド32,34に保持されている命令のOPコード
が“iext”の場合(OPコードの上位の5ビットが
“iext”に固有の特定値の場合)、即ち命令フィー
ルド32,34に保持されている命令が即値拡張命令の
場合には、その命令中の拡張即値オペランドフィールド
i26の内容(ビット6〜31の26ビット)を有効と
するためのマスク信号M2,M4、および演算器92,
94に対してNOPを指示するための信号を出力する。
【0030】デコード回路42,44からのマスク信号
M2,M4はANDゲート52,54のマスク入力Mに
導かれる。ANDゲート52,54の入力Aには命令フ
ィールド32,34の下位の26ビット(ビット6〜3
1)が導かれる。
M2,M4はANDゲート52,54のマスク入力Mに
導かれる。ANDゲート52,54の入力Aには命令フ
ィールド32,34の下位の26ビット(ビット6〜3
1)が導かれる。
【0031】ANDゲート52,54は、マスク入力M
が“1”の場合、即ち命令フィールド32,34に保持
されている命令が(OPコード“iext”を持つ)即
値拡張命令である場合には、入力Aの26ビット、即ち
命令フィールド32,34の下位の26ビット(ビット
6〜31)である拡張即値オペランドフィールドi26
の内容のそのまま出力Yに出力する。
が“1”の場合、即ち命令フィールド32,34に保持
されている命令が(OPコード“iext”を持つ)即
値拡張命令である場合には、入力Aの26ビット、即ち
命令フィールド32,34の下位の26ビット(ビット
6〜31)である拡張即値オペランドフィールドi26
の内容のそのまま出力Yに出力する。
【0032】一方、マスク入力Mが“0”の場合、即ち
命令フィールド32,34に保持されている命令が即値
拡張命令でない場合には、ANDゲート52は、出力Y
の26ビットを入力Aの内容に無関係に全て“0”とす
る。
命令フィールド32,34に保持されている命令が即値
拡張命令でない場合には、ANDゲート52は、出力Y
の26ビットを入力Aの内容に無関係に全て“0”とす
る。
【0033】ANDゲート52,54の出力Yの26ビ
ットは、32ビット即値データ線61,63の上位側に
導かれる。この即値データ線61,63の残りの下位6
ビット側には命令フィールド32,34の直前に位置す
る命令フィールド31,33の下位の6ビット(ビット
26〜31)の内容が導かれ、同データ線61,63上
に、32ビットの即値データ71,73が生成される。
ットは、32ビット即値データ線61,63の上位側に
導かれる。この即値データ線61,63の残りの下位6
ビット側には命令フィールド32,34の直前に位置す
る命令フィールド31,33の下位の6ビット(ビット
26〜31)の内容が導かれ、同データ線61,63上
に、32ビットの即値データ71,73が生成される。
【0034】この結果、もし命令フィールド32,34
に即値拡張命令が保持されているならば、即値データ線
61,63上に生成される即値データ71,73の上位
26ビットは即値拡張命令の拡張即値オペランドフィー
ルドi26の内容(ビット6〜31の26ビット)とな
る。また、即値データ71,73の残りの下位6ビット
は、命令フィールド32,34の直前の命令フィールド
31,33に保持されている命令(この場合、必ず即値
演算命令となる)の即値オペランドフィールドi6の内
容(ビット26〜31の6ビット)そのものとなる。
に即値拡張命令が保持されているならば、即値データ線
61,63上に生成される即値データ71,73の上位
26ビットは即値拡張命令の拡張即値オペランドフィー
ルドi26の内容(ビット6〜31の26ビット)とな
る。また、即値データ71,73の残りの下位6ビット
は、命令フィールド32,34の直前の命令フィールド
31,33に保持されている命令(この場合、必ず即値
演算命令となる)の即値オペランドフィールドi6の内
容(ビット26〜31の6ビット)そのものとなる。
【0035】即ち、命令レジスタ3の命令フィールド3
1,33に即値演算命令が保持されている場合、同命令
の即値オペランド(即値オペランドフィールドi6の6
ビット)は、命令フィールド32,34に保持されてい
る命令が即値拡張命令であるならば、その即値拡張命令
の拡張即値オペランド(ビット6〜31の拡張即値オペ
ランドフィールドi26の26ビット)と連結され、6
ビットから32ビットに拡張される。
1,33に即値演算命令が保持されている場合、同命令
の即値オペランド(即値オペランドフィールドi6の6
ビット)は、命令フィールド32,34に保持されてい
る命令が即値拡張命令であるならば、その即値拡張命令
の拡張即値オペランド(ビット6〜31の拡張即値オペ
ランドフィールドi26の26ビット)と連結され、6
ビットから32ビットに拡張される。
【0036】一方、命令フィールド32,34に保持さ
れている命令が即値拡張命令以外であるならば、即値デ
ータ線61,63上に生成される即値データ71,73
の上位26ビットは全て“0”となる。また、即値デー
タ71,73の残りの下位6ビットは、命令フィールド
31,33に保持されている命令のビット26〜31の
6ビットそのもの(即値演算命令であれば即値オペラン
ドフィールドi6の内容)となる。
れている命令が即値拡張命令以外であるならば、即値デ
ータ線61,63上に生成される即値データ71,73
の上位26ビットは全て“0”となる。また、即値デー
タ71,73の残りの下位6ビットは、命令フィールド
31,33に保持されている命令のビット26〜31の
6ビットそのもの(即値演算命令であれば即値オペラン
ドフィールドi6の内容)となる。
【0037】したがって、命令フィールド31,33に
即値演算命令が保持され、命令フィールド32,34に
即値拡張命令以外の命令が保持されている場合には、即
値データ線61,63上の即値データ71,73は、命
令フィールド31,33の即値演算命令の即値オペラン
ドフィールドi6の6ビットを、そのまま符号なしデー
タとして32ビットに拡張(上位26ビットは全て
“0”)したものとなる。
即値演算命令が保持され、命令フィールド32,34に
即値拡張命令以外の命令が保持されている場合には、即
値データ線61,63上の即値データ71,73は、命
令フィールド31,33の即値演算命令の即値オペラン
ドフィールドi6の6ビットを、そのまま符号なしデー
タとして32ビットに拡張(上位26ビットは全て
“0”)したものとなる。
【0038】さて図1の例では、命令レジスタ3の命令
フィールド31,32,33,34に、それぞれ即値オ
ペランドを持つ即値加算命令,拡張即値オペランドを持
つ即値拡張命令,即値オペランドを持つ即値加算命令,
即値オペランドを持たない通常の減算命令が保持されて
いる。この図1の状態におけるデコードステージDで
は、即値拡張命令に対応するデコード回路42からのマ
スク信号M2は“1”となり、減算命令に対応するデコ
ード回路44からのマスク信号M4は“0”となる。ま
た、デコード回路42から演算器92に対してNOPを
指示する信号が出力される。
フィールド31,32,33,34に、それぞれ即値オ
ペランドを持つ即値加算命令,拡張即値オペランドを持
つ即値拡張命令,即値オペランドを持つ即値加算命令,
即値オペランドを持たない通常の減算命令が保持されて
いる。この図1の状態におけるデコードステージDで
は、即値拡張命令に対応するデコード回路42からのマ
スク信号M2は“1”となり、減算命令に対応するデコ
ード回路44からのマスク信号M4は“0”となる。ま
た、デコード回路42から演算器92に対してNOPを
指示する信号が出力される。
【0039】デコード回路42からのマスク信号M2が
“1”の場合、命令フィールド32の即値拡張命令の拡
張即値オペランドフィールドi26の26ビットが、A
NDゲート52によりそのまま即値データ線61の上位
側に出力される。即値データ線61の残りの下位6ビッ
ト側には、命令フィールド31の即値加算命令の即値オ
ペランドフィールドi6の6ビットが導かれる。これに
より、即値データ線61上には、命令フィールド31の
即値加算命令の6ビット即値オペランドを命令フィール
ド32の即値拡張命令の26ビット拡張即値オペランド
で拡張した32ビット即値データ71が生成される。以
上の即値加算命令の即値オペランドおよび即値拡張命令
の拡張即値オペランドと即値データ(71)との関係を
図3に示す。
“1”の場合、命令フィールド32の即値拡張命令の拡
張即値オペランドフィールドi26の26ビットが、A
NDゲート52によりそのまま即値データ線61の上位
側に出力される。即値データ線61の残りの下位6ビッ
ト側には、命令フィールド31の即値加算命令の即値オ
ペランドフィールドi6の6ビットが導かれる。これに
より、即値データ線61上には、命令フィールド31の
即値加算命令の6ビット即値オペランドを命令フィール
ド32の即値拡張命令の26ビット拡張即値オペランド
で拡張した32ビット即値データ71が生成される。以
上の即値加算命令の即値オペランドおよび即値拡張命令
の拡張即値オペランドと即値データ(71)との関係を
図3に示す。
【0040】即値データ線61上の即値データ71はセ
レクタ81の入力Iに導かれる。セレクタ81の入力S
には、命令フィールド31に保持されている命令が即値
演算命令(ここでは即値加算命令)であることを示すデ
コード回路41からの特定デコード信号が導かれる。こ
の場合セレクタ81は、出力Yを入力I側に切替える。
これにより、セレクタ81の入力Iに導かれている拡張
された即値データ71が、その出力Yから選択的に出力
されて演算器91に渡され、次の実行ステージEでの演
算(ここでは加算演算)に供される。
レクタ81の入力Iに導かれる。セレクタ81の入力S
には、命令フィールド31に保持されている命令が即値
演算命令(ここでは即値加算命令)であることを示すデ
コード回路41からの特定デコード信号が導かれる。こ
の場合セレクタ81は、出力Yを入力I側に切替える。
これにより、セレクタ81の入力Iに導かれている拡張
された即値データ71が、その出力Yから選択的に出力
されて演算器91に渡され、次の実行ステージEでの演
算(ここでは加算演算)に供される。
【0041】このように本実施例では、即値加算命令
(即値演算命令)と即値拡張命令を合わせ、あたかも3
2ビットの即値を持つ1つの命令であるかのようにし
て、指定の演算(加算演算)を拡張された即値を用いて
行うことができる。
(即値演算命令)と即値拡張命令を合わせ、あたかも3
2ビットの即値を持つ1つの命令であるかのようにし
て、指定の演算(加算演算)を拡張された即値を用いて
行うことができる。
【0042】さて、デコード回路44からのマスク信号
M4が“0”の場合、ANDゲート54の出力Yの26
ビットは全て“0”にされる。この26ビットの“0”
データは即値データ線63の上位側に導かれる。即値デ
ータ線63の残りの下位6ビット側には、命令フィール
ド33の即値加算命令の即値オペランドフィールドi6
の6ビットが導かれる。これにより、即値データ線63
上には、命令フィールド33の即値加算命令の6ビット
即値オペランドを単に符号なし6ビットデータとして形
式上32ビットに拡張(上位26ビットは全て“0”)
された即値データ73が生成される。
M4が“0”の場合、ANDゲート54の出力Yの26
ビットは全て“0”にされる。この26ビットの“0”
データは即値データ線63の上位側に導かれる。即値デ
ータ線63の残りの下位6ビット側には、命令フィール
ド33の即値加算命令の即値オペランドフィールドi6
の6ビットが導かれる。これにより、即値データ線63
上には、命令フィールド33の即値加算命令の6ビット
即値オペランドを単に符号なし6ビットデータとして形
式上32ビットに拡張(上位26ビットは全て“0”)
された即値データ73が生成される。
【0043】即値データ線63上の即値データ73はセ
レクタ83の入力Iに導かれる。セレクタ83の入力S
には、命令フィールド33に保持されている命令が即値
演算命令(ここでは即値加算命令)であることを示すデ
コード回路43からの特定デコード信号が導かれる。こ
の場合、セレクタ83の入力Iに導かれている拡張され
ていない即値データ73が、その出力Yから選択的に出
力されて演算器93に渡され、次の実行ステージEでの
演算(ここでは加算演算)に供される。
レクタ83の入力Iに導かれる。セレクタ83の入力S
には、命令フィールド33に保持されている命令が即値
演算命令(ここでは即値加算命令)であることを示すデ
コード回路43からの特定デコード信号が導かれる。こ
の場合、セレクタ83の入力Iに導かれている拡張され
ていない即値データ73が、その出力Yから選択的に出
力されて演算器93に渡され、次の実行ステージEでの
演算(ここでは加算演算)に供される。
【0044】次に、命令レジスタ3の命令フィールド3
2に対応する演算器92では、命令フィールド32に保
持されている即値拡張命令に応じてデコード回路42か
ら出力されるNOPを指示する信号により、演算は行わ
れない。この場合、即値データ線62上の即値データ7
2は捨てられる。
2に対応する演算器92では、命令フィールド32に保
持されている即値拡張命令に応じてデコード回路42か
ら出力されるNOPを指示する信号により、演算は行わ
れない。この場合、即値データ線62上の即値データ7
2は捨てられる。
【0045】次に、命令レジスタ3の命令フィールド3
4に対応するセレクタ84では、命令フィールド34に
保持された通常の減算命令の(レジスタ指定フィールド
の)指定するレジスタファイルのデータが、その入力R
に導かれる。セレクタ84の入力Sには、命令フィール
ド34に保持されている命令が即値演算命令でないこと
を示すデコード回路44からの特定デコード信号が導か
れる。この場合セレクタ84は、出力Yを入力R側に切
替える。これにより、セレクタ84の入力Rに導かれて
いるレジスタファイルのデータが、その出力Yから選択
的に出力されて演算器94に渡され、次の実行ステージ
Eでの演算(ここでは減算演算)に供される。この場
合、即値データ線64上の即値データ74は捨てられ
る。
4に対応するセレクタ84では、命令フィールド34に
保持された通常の減算命令の(レジスタ指定フィールド
の)指定するレジスタファイルのデータが、その入力R
に導かれる。セレクタ84の入力Sには、命令フィール
ド34に保持されている命令が即値演算命令でないこと
を示すデコード回路44からの特定デコード信号が導か
れる。この場合セレクタ84は、出力Yを入力R側に切
替える。これにより、セレクタ84の入力Rに導かれて
いるレジスタファイルのデータが、その出力Yから選択
的に出力されて演算器94に渡され、次の実行ステージ
Eでの演算(ここでは減算演算)に供される。この場
合、即値データ線64上の即値データ74は捨てられ
る。
【0046】本実施例によれば、即値演算命令の演算
(機能)種類が例えば6種であるものとすると、増加す
る命令種類は、即値演算命令の持つ6ビット即値オペラ
ンドを32ビットに拡張することを指定する即値拡張命
令の1種だけである。これに対し、各機能毎に即値オペ
ランドのサイズに対応する命令をそれぞれ用意する従来
方式では、増加する命令種類は、即値演算の演算(機
能)種類分、即ち6であり。本方式より5種類も多くの
命令を必要とする。
(機能)種類が例えば6種であるものとすると、増加す
る命令種類は、即値演算命令の持つ6ビット即値オペラ
ンドを32ビットに拡張することを指定する即値拡張命
令の1種だけである。これに対し、各機能毎に即値オペ
ランドのサイズに対応する命令をそれぞれ用意する従来
方式では、増加する命令種類は、即値演算の演算(機
能)種類分、即ち6であり。本方式より5種類も多くの
命令を必要とする。
【0047】なお、前記実施例では、即値拡張命令によ
る拡張対象となる(即値を持つ)命令が即値加算命令で
ある場合について説明したが、この対象命令は、即値減
算命令、即値乗算命令など、他の即値演算命令であって
もよく、即値演算の機能を問わない。
る拡張対象となる(即値を持つ)命令が即値加算命令で
ある場合について説明したが、この対象命令は、即値減
算命令、即値乗算命令など、他の即値演算命令であって
もよく、即値演算の機能を問わない。
【0048】また、前記実施例では、即値拡張命令によ
る拡張対象命令が即値拡張命令の直前に配される場合に
ついて説明したが、これに限るものではない。例えば図
4に示すように直後に配される場合でも適用可能であ
る。この場合、即値拡張命令が存在することが許される
VLIW型命令中の位置に対応して、デコード回路4
2,44に相当するデコード回路、ANDゲート52,
54に相当するANDゲート(即値拡張命令の拡張即値
オペランドフィールドi26の内容および全て“0”の
26ビットデータのいずれか一方を選択するセレクタで
もよい)を設けると共に、その直前の命令位置に対応し
て即値データ線61,63に相当する即値データ線を設
ける必要があることは勿論である。
る拡張対象命令が即値拡張命令の直前に配される場合に
ついて説明したが、これに限るものではない。例えば図
4に示すように直後に配される場合でも適用可能であ
る。この場合、即値拡張命令が存在することが許される
VLIW型命令中の位置に対応して、デコード回路4
2,44に相当するデコード回路、ANDゲート52,
54に相当するANDゲート(即値拡張命令の拡張即値
オペランドフィールドi26の内容および全て“0”の
26ビットデータのいずれか一方を選択するセレクタで
もよい)を設けると共に、その直前の命令位置に対応し
て即値データ線61,63に相当する即値データ線を設
ける必要があることは勿論である。
【0049】また、前記実施例では、本発明をVLIW
方式の情報処理装置に適用した場合について説明した
が、命令実行を1命令ずつ行う情報処理装置、特にRI
SC型アーキテクチャを採る情報処理装置等にも適用可
能である。この場合の、拡張対象命令(例えば即値加算
命令)および即値拡張命令の並びと、即値データ(拡張
された即値)の生成とについて、図5(a),(b)を
参照して簡単に説明する。なお、図5(a)は命令の配
列が即値加算命令、即値拡張命令の順の場合、図5
(b)は命令の配列が即値拡張命令、即値加算命令の順
の場合である。
方式の情報処理装置に適用した場合について説明した
が、命令実行を1命令ずつ行う情報処理装置、特にRI
SC型アーキテクチャを採る情報処理装置等にも適用可
能である。この場合の、拡張対象命令(例えば即値加算
命令)および即値拡張命令の並びと、即値データ(拡張
された即値)の生成とについて、図5(a),(b)を
参照して簡単に説明する。なお、図5(a)は命令の配
列が即値加算命令、即値拡張命令の順の場合、図5
(b)は命令の配列が即値拡張命令、即値加算命令の順
の場合である。
【0050】まず、図5(a)の場合、即値加算命令を
デコードすると同時に、次の即値拡張命令をフェッチす
る。この即値拡張命令をフェッチした直後に、この命令
が直前の命令(即値加算命令)の即値オペランド(i
6)を拡張するための命令であることを認識し、直前の
命令(即値加算命令)の実行ステージを遅らせて、その
間に即値オペランドを拡張したものに置換えるか、次の
パイプラインサイクルまでに即値オペランドを拡張した
ものに置換えて、そのままパイプラインを進め、拡張し
た即値オペランド(即値データ)を用いて演算を実行す
る。
デコードすると同時に、次の即値拡張命令をフェッチす
る。この即値拡張命令をフェッチした直後に、この命令
が直前の命令(即値加算命令)の即値オペランド(i
6)を拡張するための命令であることを認識し、直前の
命令(即値加算命令)の実行ステージを遅らせて、その
間に即値オペランドを拡張したものに置換えるか、次の
パイプラインサイクルまでに即値オペランドを拡張した
ものに置換えて、そのままパイプラインを進め、拡張し
た即値オペランド(即値データ)を用いて演算を実行す
る。
【0051】次に、図5(b)の場合、即値拡張命令を
デコードして次の命令(即値加算命令)の即値オペラン
ドを拡張することを認識し、次の命令(即値加算命令)
の実行までにその命令(即値加算命令)の即値オペラン
ドを拡張した即値オペランド(即値データ)に置換えて
おく。この図5(b)の方式では、図5(a)の方式に
比べ、拡張の認識から拡張した即値への置換えまでに、
2パイプラインサイクルの余裕が確保できる。
デコードして次の命令(即値加算命令)の即値オペラン
ドを拡張することを認識し、次の命令(即値加算命令)
の実行までにその命令(即値加算命令)の即値オペラン
ドを拡張した即値オペランド(即値データ)に置換えて
おく。この図5(b)の方式では、図5(a)の方式に
比べ、拡張の認識から拡張した即値への置換えまでに、
2パイプラインサイクルの余裕が確保できる。
【0052】また、前記実施例では、即値拡張命令中に
設定される拡張即値オペランドのサイズが26ビットに
限られている場合について説明したが、これに限るもの
ではく、予め定められた複数サイズの1つが設定される
ものであってもよい。但し、即値拡張命令を、拡張即値
オペランドのサイズに対応させて複数種類用意する必要
がある。また、即値演算命令の即値オペランドと即値拡
張命令の拡張即値オペランドとを連結するための連結手
段(即値データ線)を拡張即値オペランドのサイズの種
類分設け、即値拡張命令に応じていずれか1つを選択す
る構成とする必要がある。
設定される拡張即値オペランドのサイズが26ビットに
限られている場合について説明したが、これに限るもの
ではく、予め定められた複数サイズの1つが設定される
ものであってもよい。但し、即値拡張命令を、拡張即値
オペランドのサイズに対応させて複数種類用意する必要
がある。また、即値演算命令の即値オペランドと即値拡
張命令の拡張即値オペランドとを連結するための連結手
段(即値データ線)を拡張即値オペランドのサイズの種
類分設け、即値拡張命令に応じていずれか1つを選択す
る構成とする必要がある。
【0053】この方式では、例えば即値演算命令の演算
(機能)種類が6、即値オペランドのサイズが拡張なし
即値オペランドと2種の拡張即値オペランドとの3種類
であるものとすると、増加する命令種類は、拡張即値オ
ペランドサイズの種類数である2(即値拡張命令2種類
分)だけである。これに対し、各機能毎に即値オペラン
ドのサイズに対応する命令をそれぞれ用意する従来方式
では、増加する命令種類は、演算(機能)種類×拡張即
値オペランドサイズの種類数=6×2=12であり、本
方式より10種類も多くの命令を必要とする。この命令
種類の差は、拡張即値オペランドサイズの種類数が多く
なるほど大きくなる。
(機能)種類が6、即値オペランドのサイズが拡張なし
即値オペランドと2種の拡張即値オペランドとの3種類
であるものとすると、増加する命令種類は、拡張即値オ
ペランドサイズの種類数である2(即値拡張命令2種類
分)だけである。これに対し、各機能毎に即値オペラン
ドのサイズに対応する命令をそれぞれ用意する従来方式
では、増加する命令種類は、演算(機能)種類×拡張即
値オペランドサイズの種類数=6×2=12であり、本
方式より10種類も多くの命令を必要とする。この命令
種類の差は、拡張即値オペランドサイズの種類数が多く
なるほど大きくなる。
【0054】
【発明の効果】以上詳述したようにこの発明によれば、
即値オペランドのフィールドを持つ特定命令(即値演算
命令)の即値の拡張部分を指定する即値拡張命令を設け
て、上記特定命令の直前または直後に配し、この特定命
令を実行する際には、まず同命令の即値オペランドフィ
ールドの内容に、同命令の直前または直後に配された即
値拡張命令の指定する即値の拡張部分を連結して拡張さ
れた即値オペランドを生成し、この拡張された即値オペ
ランドを用いて特定命令を実行する構成としたので、次
のような効果を得ることができる。
即値オペランドのフィールドを持つ特定命令(即値演算
命令)の即値の拡張部分を指定する即値拡張命令を設け
て、上記特定命令の直前または直後に配し、この特定命
令を実行する際には、まず同命令の即値オペランドフィ
ールドの内容に、同命令の直前または直後に配された即
値拡張命令の指定する即値の拡張部分を連結して拡張さ
れた即値オペランドを生成し、この拡張された即値オペ
ランドを用いて特定命令を実行する構成としたので、次
のような効果を得ることができる。
【0055】(1)即値を持つ命令(即値演算命令)の
種類に無関係に、同一種類の即値拡張命令による即値拡
張が行えるため、命令レパートリ(OPコードの種類)
の増加を最小限に抑えることができる。このため、OP
コードフィールドのサイズが大きくなる虞がなく、オペ
ランド指定フィールドのサイズが圧迫されることもな
い。
種類に無関係に、同一種類の即値拡張命令による即値拡
張が行えるため、命令レパートリ(OPコードの種類)
の増加を最小限に抑えることができる。このため、OP
コードフィールドのサイズが大きくなる虞がなく、オペ
ランド指定フィールドのサイズが圧迫されることもな
い。
【0056】(2)並列処理方式の情報処理装置に適用
した場合に、即値演算命令と同命令(の即値オペラン
ド)を拡張対象とする即値拡張命令を合わせ、あたかも
拡張された即値オペランドを持つ1つの命令であるかの
ように扱えるため、命令のフェッチサイクル数を全く増
やすことなく、命令語内に確保可能な即値オペランドフ
ィールドのサイズを越えるサイズの即値オペランドが指
定できる。
した場合に、即値演算命令と同命令(の即値オペラン
ド)を拡張対象とする即値拡張命令を合わせ、あたかも
拡張された即値オペランドを持つ1つの命令であるかの
ように扱えるため、命令のフェッチサイクル数を全く増
やすことなく、命令語内に確保可能な即値オペランドフ
ィールドのサイズを越えるサイズの即値オペランドが指
定できる。
【0057】(3)通常の即値演算命令の直前または直
後に即値拡張命令を配するだけで、拡張された即値オペ
ランドを指定でき、しかも即値拡張命令単独では同命令
自身が持つ即値オペランドを指定できるため、命令レパ
ートリの著しい増加を招く従来方式に比べ、命令体系の
シンプル化、したがってハードウェア構成のシンプル化
が図れる。
後に即値拡張命令を配するだけで、拡張された即値オペ
ランドを指定でき、しかも即値拡張命令単独では同命令
自身が持つ即値オペランドを指定できるため、命令レパ
ートリの著しい増加を招く従来方式に比べ、命令体系の
シンプル化、したがってハードウェア構成のシンプル化
が図れる。
【図1】この発明を適用するVLIW方式で且つパイプ
ライン制御方式の情報処理装置(並列演算処理装置)の
一実施例を示す要部のブロック構成図。
ライン制御方式の情報処理装置(並列演算処理装置)の
一実施例を示す要部のブロック構成図。
【図2】同実施例で用いられる即値加算命令、即値拡張
命令および減算命令の要部のフォーマットを示す図。
命令および減算命令の要部のフォーマットを示す図。
【図3】同実施例における即値加算命令の即値オペラン
ドおよび同命令の直後に配されている即値拡張命令の拡
張即値オペランドと即値データとの関係を示す図。
ドおよび同命令の直後に配されている即値拡張命令の拡
張即値オペランドと即値データとの関係を示す図。
【図4】即値加算命令および即値拡張命令の位置が図3
の例と逆の場合における、即値加算命令の即値オペラン
ドおよび即値拡張命令の拡張即値オペランドと即値デー
タとの関係を示す図。
の例と逆の場合における、即値加算命令の即値オペラン
ドおよび即値拡張命令の拡張即値オペランドと即値デー
タとの関係を示す図。
【図5】RISC型アーキテクチャを採る情報処理装置
における、即値加算命令の即値オペランドおよび即値拡
張命令の拡張即値オペランドと即値データとの関係を示
す図。
における、即値加算命令の即値オペランドおよび即値拡
張命令の拡張即値オペランドと即値データとの関係を示
す図。
1…主記憶、2…命令キャッシュ、3…命令レジスタ、
31〜34…命令フィールド、41〜44…デコード回
路、52,54…ANDゲート(第1の選択手段)、6
1〜64…即値データ線(連結手段)、71〜74…即
値データ、81〜84…セレクタ(第2の選択手段)、
91〜94…演算器。
31〜34…命令フィールド、41〜44…デコード回
路、52,54…ANDゲート(第1の選択手段)、6
1〜64…即値データ線(連結手段)、71〜74…即
値データ、81〜84…セレクタ(第2の選択手段)、
91〜94…演算器。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平3−201133(JP,A) 特開 平3−194621(JP,A) 特開 平3−259340(JP,A) 特開 平3−218526(JP,A) 特開 昭62−107339(JP,A) 特開 昭54−129944(JP,A) 特開 昭57−45648(JP,A) 特開 昭62−125435(JP,A) 特開 昭62−297938(JP,A) 特開 昭62−3338(JP,A) 特開 平3−147021(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42
Claims (1)
- 【請求項1】 複数の固定長の命令を並列に処理するた
めに同数の演算器を有する並列処理方式の情報処理装置
において、 即値オペランドのフィールドを持つ特定命令の即値の拡
張部分を指定する即値拡張命令が前記特定命令と対をな
して配された記憶手段と、 この記憶手段からフェッチされた並列に処理すべき複数
の命令が保持される同数の命令フィールドを持つ命令レ
ジスタと、 前記命令レジスタの各命令フィールド毎に設けられ、上
位側データ線および対応する命令フィールド中の即値オ
ペランド配置可能部分と接続された下位側データ線から
なる即値データ線と、 前記命令レジスタの前記各命令フィールドのうち、少な
くとも、前記即値拡張命令が保持されることが許される
命令フィールドに対応してそれぞれ設けられる第1の選
択手段であって、前記記憶手段から前記命令レジスタに
前記特定命令および即値拡張命令の対を含む複数の命令
がフェッチされて、同即値拡張命令が対応する命令フィ
ールドに保持された場合には、同即値拡張命令の指定す
る即値の拡張部分を選択して、同即値拡張命令と対をな
す前記特定命令の持つ即値オペランドフィールドの内容
が導かれる下位側データ線を持つ前記即値データ線の上
位側データ線に出力し、対応する命令フィールドに前記
即値拡張命令以外の命令が保持された場合には、値が0
の固定のデータを選択して同即値データ線の上位側デー
タ線に出力する第1の選択手段と、 前記命令レジスタの各命令フィールド毎に設けられる第
2の選択手段であって、対応する命令フィールドに前記
特定命令が保持された場合、同命令フィールドに対応す
る前記即値データ線上のデータを即値オペランドとして
選択して、同特定命令の指定する演算を実行する前記演
算器に出力する第2の選択手段とを具備することを特徴
とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3312133A JP3004108B2 (ja) | 1991-11-27 | 1991-11-27 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3312133A JP3004108B2 (ja) | 1991-11-27 | 1991-11-27 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05150979A JPH05150979A (ja) | 1993-06-18 |
JP3004108B2 true JP3004108B2 (ja) | 2000-01-31 |
Family
ID=18025653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3312133A Expired - Fee Related JP3004108B2 (ja) | 1991-11-27 | 1991-11-27 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3004108B2 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1049369A (ja) | 1996-08-07 | 1998-02-20 | Ricoh Co Ltd | データ処理装置 |
JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
US7376814B1 (en) * | 1999-09-07 | 2008-05-20 | Nxp B.V. | Method for forming variable length instructions in a processing system |
US8860722B2 (en) | 2004-05-14 | 2014-10-14 | Nvidia Corporation | Early Z scoreboard tracking system and method |
US8131978B2 (en) | 2006-06-15 | 2012-03-06 | Nec Corporation | Restoring plural instructions for same cycle execution from partial instructions and combined supplementing portions generated for compact storage |
US8314803B2 (en) | 2007-08-15 | 2012-11-20 | Nvidia Corporation | Buffering deserialized pixel data in a graphics processor unit pipeline |
US8736624B1 (en) | 2007-08-15 | 2014-05-27 | Nvidia Corporation | Conditional execution flag in graphics applications |
US8775777B2 (en) * | 2007-08-15 | 2014-07-08 | Nvidia Corporation | Techniques for sourcing immediate values from a VLIW |
US8599208B2 (en) | 2007-08-15 | 2013-12-03 | Nvidia Corporation | Shared readable and writeable global values in a graphics processor unit pipeline |
US9183607B1 (en) | 2007-08-15 | 2015-11-10 | Nvidia Corporation | Scoreboard cache coherence in a graphics pipeline |
US8521800B1 (en) | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9317251B2 (en) | 2012-12-31 | 2016-04-19 | Nvidia Corporation | Efficient correction of normalizer shift amount errors in fused multiply add operations |
-
1991
- 1991-11-27 JP JP3312133A patent/JP3004108B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH05150979A (ja) | 1993-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2992223B2 (ja) | コンピュータシステム、命令ビット長圧縮方法、命令発生方法、及びコンピュータシステム動作方法 | |
JP3004108B2 (ja) | 情報処理装置 | |
US5996057A (en) | Data processing system and method of permutation with replication within a vector register file | |
JPH0429093B2 (ja) | ||
US4954943A (en) | Data processing system | |
KR19980069855A (ko) | 넓은 데이터 폭의 프로세서에서 다기능 데이타 정렬기 | |
JPH04296937A (ja) | ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法 | |
JPS6217252B2 (ja) | ||
US7546442B1 (en) | Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions | |
JPH0810428B2 (ja) | データ処理装置 | |
EP0378415A2 (en) | Multiple instruction dispatch mechanism | |
JPH07120278B2 (ja) | データ処理装置 | |
JP2003044273A (ja) | データ処理装置及びデータ処理方法 | |
JPH03286332A (ja) | デジタルデータ処理装置 | |
JPH0248732A (ja) | 命令パイプライン方式のマイクロプロセッサ | |
US5479620A (en) | Control unit modifying micro instructions for one cycle execution | |
JPS6212529B2 (ja) | ||
JPS62165242A (ja) | プロセツサ | |
JPH034936B2 (ja) | ||
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
JPS5838819B2 (ja) | デ−タ処理システム用制御ファイル装置 | |
JPS59114677A (ja) | ベクトル処理装置 | |
JPH05274143A (ja) | 複合条件処理方式 | |
JP2583614B2 (ja) | ベクトル演算装置 | |
JP2828611B2 (ja) | コンピュータシステム及び命令実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |