JP2001142694A - データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム - Google Patents

データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム

Info

Publication number
JP2001142694A
JP2001142694A JP2000282611A JP2000282611A JP2001142694A JP 2001142694 A JP2001142694 A JP 2001142694A JP 2000282611 A JP2000282611 A JP 2000282611A JP 2000282611 A JP2000282611 A JP 2000282611A JP 2001142694 A JP2001142694 A JP 2001142694A
Authority
JP
Japan
Prior art keywords
bits
instruction
field
bit
storage location
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.)
Pending
Application number
JP2000282611A
Other languages
English (en)
Inventor
Mark Debbage
マーク・デバージ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2001142694A publication Critical patent/JP2001142694A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 後方互換性が現存の命令セットと一緒に維持
されるという制約で、予約ビットを使った範囲を拡張す
る要求がある。 【解決手段】 本発明は、複数のフィールドを有するコ
ンピュータ命令で、情報フィールドを拡張する方法を含
む。コンピュータ命令の1つのフィールドはオプコード
を有し、別のフィールドは予約ビット120を有する。
この予約ビットは拡張フィールド内で情報フィールドと
組合される。その組合せは、Nビットの情報フィールド
をN+Mビットの第1記憶位置にロードし、Mビットの
予約フィールドをN+Mビットの第2記憶位置にロード
する。第1記憶位置内の情報フィールドは符号拡張11
6され、第2記憶位置はNビットだけ左にシフトされ、
右端でゼロにシフトされる。第1記憶位置が第2記憶位
置と一緒に排他的論理和124をとられて拡張フィール
ドを導く。結果は後方互換な拡張フィールドである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タ命令セットアーキテクチャに関し、特に、現存する情
報フィールドの拡張を可能にするアーキテクチャ(コン
ピュータ命令データフィールドをエンコードするための
方法)に関する。
【0002】
【従来の技術】ここ10年間に渡るコンピュータアーキ
テクチャでは、各命令がたった1回の演算サイクル内で
理想的に実行されるRISC(縮小命令セットコンピュ
ータ)デバイスが、一般的になってきている。RISC
アーキテクチュアは、標準的なアーキテクチャ及び命令
セットを有するコンピュータに対して、次の点で優勢で
ある。即ち、その点は、コンピュータが、より短い時間
内に頻繁な演算の実行を可能にするために、非常に速い
データ処理速度の性能を有する点である。RISCデバ
イスは16ビット命令セットから始まり、32ビット命
令セットアーキテクチャまで成長した。従って、RIS
Cアーキテクチャのセットが、特別な特徴、例えばマル
チメディア、グラフィクス、又は64ビットデータを考
慮するように、長い年月の間に増加するので、後方互換
性のある方法でそのような拡張を達成することが非常に
有利である。予約ビットの供給によって、将来的な拡張
に対する一層の柔軟性が与えられる。
【0003】典型的な命令セットは、即値(イミディエ
イト)オペランド、又はアドレスディスプレースメント
(変位)を使った命令を有する。例えば、即値命令は、
算術命令のオペランドである命令のフィールド内の値
を、又は、メモリをアクセスするムーブ又はロード命令
用のメモリオフセットへオフセットを運ぶ。ひとたびそ
の値のサイズが例えば8ビットに固定されたならば、値
の範囲が例えば−128〜127に設定される。
【0004】
【発明が解決しようとする課題】アプリケーションが更
に複雑になり、メモリサイズが成長するにつれ、後方互
換性が現存の命令セットと一緒に維持されるという制約
で、予約ビットを使った範囲を拡張する要求がある。
【0005】
【課題を解決するための手段】概して、本発明は、複数
のフィールドを有する第1コンピュータ命令でデータフ
ィールドの値を拡張する方法に関連される。命令内に任
意の未使用データビットが存在するか否かを決定し、も
し存在するならば、未使用ビットの全て又はいくつかを
用いて、データフィールド内に含まれる値を拡張する。
拡張データフィールドを用いたコンピュータ命令は、未
拡張データフィールドを用いたコンピュータ命令と後方
互換である。
【0006】本発明の一態様は、複数のフィールドを有
し、演算コード(「オプコード」)用のフィールドと、
定数、オフセット値、又は、任意の他の値である情報フ
ィールドとを含んだコンピュータ命令で、情報フィール
ドを拡張する方法に関連される。また、命令は、予約ビ
ットを含んだ予約フィールドを有する場合もある。本発
明によれば、予約フィールドのビットは、情報フィール
ドと組合されて拡張フィールドを形成する;それから、
拡張フィールドは、オプコードによって示された演算で
用いられる。情報及び予約フィールドを組合せること
が、Nビット(符号ビットを含む)の情報フィールド
を、N+Mビットの第1記憶位置にロードし、Mビット
の予約フィールドをN+Mビットの第2記憶位置にロー
ドすることを含む場合がある。N及びMは整数である。
第1記憶位置内の情報フィールドは符号拡張される。次
に、第2記憶位置はNビットだけ左にシフトされ、右端
でゼロにシフトされる。そして、第1記憶位置は、第2
記憶位置と一緒にビットワイズで排他的論理和(bitwis
e exclusive OR'd)(XOR)をとられて拡張フィール
ドを引き出す。その結果は、後方互換な拡張フィールド
である。
【0007】本発明のこれら及び他の利点と特徴とは、
添付図面と共に取り上げられることになる以下の詳細な
説明によって当業者に明らかになるであろう。
【0008】
【発明の実施の形態】本発明における一実施の形態で
は、即値命令の符号なしオペランドが、命令によって同
様に運ばれた予約ビットを用いて拡張され得る。例え
ば、10ビット符号なし即値オペランドが、1予約ビッ
トによって拡張されたと考える。予約ビットは、エンコ
ーダによってゼロになるように要求され、もしそうでな
ければ命令はトラップする(割り込む)。予約ビット
は、即値オペランドにおける将来の拡張ビット内の
「1」になる場合もある。従って、即値範囲「0xxx
xxxxxxx」、つまり0〜1023の範囲が、「1
xxxxxxxxxx」、つまり1024〜2047の
範囲になる場合もある。符号なし数の予約ビットにおけ
るこの使用は、予約ビットの任意数に適用され得る。
【0009】命令が符号付き即値オペランドを用いた
時、暗黙の符号拡張は、即値オペランド内の値が自然符
号付き範囲内に拡張されるように、配列される必要があ
る。本来の即値フィールドにおける最上位ビットは、現
存するネガティブエンコードと後方互換性を確保するた
めに、符号拡張されなければならない。これを達成する
ための一例は、本来の符号拡張の即値を取り出し 即値
とXORとの最終ビットを丁度通り過ぎた予約ビットを
左にシフトすることである。予約ビットが現存するバイ
ナリ内でゼロであるから、XORは、現存する符号付き
即値に影響を与えない。しかしながら、予約ビットが1
に設定された時、符号付き即値の範囲における正確な拡
張が存在する。例えば、10ビット符号付き即値の使
用:10ビットの即値範囲は、「0xxxxxxxx
x」、つまり0〜511の範囲であり、又は「1xxx
xxxxxx」、つまり−512〜−1の範囲である。
付加的な予約ビットで、その範囲は「01xxxxxx
xxx」、つまり512〜1023と、「11xxxx
xxxxx」、つまり−1024〜−513とに拡張さ
れる。「0xxxxxxxxxx」の場合に、セット予
約ビット、つまり「1」のXORが512に符号付き値
を加える。「1xxxxxxxxx」の場合に、セット
予約ビットのXORは符号付き値から512を減じる。
これにより、所望の増加が範囲内で与えられる。この技
術は、予約ビットの任意数に適用され、アーキテクチャ
の寿命の点で何倍にも適用さえできる。
【0010】図1は、本発明の予約ビットを用いて、定
数を拡張した特定の実施の形態を図示的に示す。本発明
の好ましい実施の形態は、64ビットアーキテクチャ
(即ち汎用レジスタが64ビット幅である)を有するマ
イクロコンピュータに組み込まれるが、初期設計の32
ビットアーキテクチャ(即ち32ビット幅のレジスタ)
に後方互換性を提供する。本発明の理解を過度に複雑に
しないために、本発明の動作を記載する際に、レジスタ
がより小さいものと仮定する。図1では、即値命令(図
示せず)に含まれる即値110が示される。図1は、ビ
ットa、b、c、d、e、f、gから成る定数112
と、値「s」の符号ビット114とを含むような即値1
10を示す。オペランドが13ビットレジスタの下位ビ
ット内にロードされると仮定する。符号ビット114
は、当然ではあるが、上位5ビット116を通して拡張
されるであろう。この例では、命令によって搬送され、
「0」と「1」との種々の組合せを表す値u、v、w、
x、yを有する5つの予約ビット120が存在する。予
約ビット120は、別のレジスタの下位5ビット内にロ
ードされ、そして、左に(最上位ビットに向かって上方
に)シフトされてオペランドにおける符号ビットで対応
するビット位置の直ぐ左に位置させる(即ち、オペラン
ド及び符号がビット位置0〜7内に存在する場合には、
ビット位置8である)。予約ビット120が符号拡張ビ
ット116と一緒にXOR124(排他的論理和)さ
れ、拡張されたオペランド値150内における5ビット
の結果、即ちh、i、j、k、l126を生成する。そ
の全結果は、オリジナルな定数値、即ち値110のビッ
トa〜gと、オリジナルな符号ビット114とから成る
拡張された値150である。従って、拡張された値15
0は、符号ビット「s」114と、定数112と、XO
R演算によって生成された新しい5ビットi、j、k、
l、h126を含む。拡張された値150は、もし全て
の予約ビット120がゼロであるならば、符号拡張され
た値110と同じである。この場合には、ビットh、
i、j、k、lは符号ビット114のコンテンツを有す
ることができる。異なるバイナリ組合せと一緒に予約ビ
ット120を変更することによって、値110の範囲を
増加できる。
【0011】図2は、予約ビットが定数の値に影響を与
えない状況を示す。図2は、11ビットの汎用記憶位置
210が、即値命令によって、その命令により運ばれた
8ビット符号付き値(ビットp、q、r、s、t、vと
「0」符号ビット)にロードされる。符号は、レジスタ
における残りの上位3ビットに拡張される。ここで、そ
の命令は、全て「0」である3つの予約ビット212を
運ぶ。図1の例に関して記載されるように、予約ビット
は別のレジスタにロードされ、位置決めされるので、レ
ジスタ記憶位置210の最も左側の3ビットと一緒に、
即ちレジスタ210内にロードされた値の符号の拡張と
一緒にXOR(排他的論理和)される。XOR(排他的
論理和)することの結果が、レジスタ216内の記憶位
置によって与えられ、図に示されるように、レジスタ2
10内にロードされ(且つ符号拡張され)たものと変わ
らない。従って、記号214の値は記号210の値と同
じである。引き続き、11ビットレジスタ220が、命
令によって、8つの下位位置内における2つの補数形で
負の即値と、残った3つの上位ビット位置内の上方へ拡
張された符号とに、現在、ロードされている。再び上記
のように、命令は3つの予約ビット220を運ぶ。その
予約ビットは、別のレジスタ内にロードされ、シフトさ
れてレジスタ220の符号拡張に対応するビット位置内
に位置決めされる。レジスタ220の上位ビットがその
ように配置されるので、記号220の記憶位置における
最も左側の3ビットが予約ビット222と一緒にXOR
(排他的論理和)された時、生じたビット226は3ビ
ットである。従って、記憶位置224の値は、記憶位置
220の値と同じである。予約ビットがゼロであり、こ
の特定の実施の形態では、それがアーキテクチャによっ
て設定された時、最も左側の3ビットと一緒に予約ビッ
トをXOR(排他的論理和)することがその値に影響を
与えないことを、図2は示している。
【0012】図3は、予約ビットが本発明によってセッ
トされた時に、特定の実施の形態における結果を示す。
図3では、記憶位置310は、符号を示す最上位ビット
311と一緒に正のバイナリ数を含む。この場合には、
符号311は正、即ち「0」である。記憶位置314
は、最も左側のビット315が符号ビット「1」を有す
る8ビットの負の数を示す。この例では、値320,3
22,324,326を有する2つの予約ビットが存在
すると仮定する。例えば、記憶位置310が2ビット3
12だけ符号拡張されるとする。もし符号ビット312
が予約ビット320と一緒にXORされたならば(ステ
ップ330)、XORの結果が記号342、即ち「0
0」であり、そして位置340の範囲が0〜127であ
る場合に、記憶位置340の値が得られる。次に、もし
記号326の予約ビット「11」が記憶位置314の符
号拡張ビット316と一緒にXORされたならば(ステ
ップ332)、その結果は、+128〜+255の範囲
における位置344内の「00」345である。それか
ら、ステップ334において、予約ビット「01」32
2が、位置310の符号拡張ビット312と一緒にXO
Rされる。これにより、記憶位置346内の結果「0
1」347が与えられ、記憶位置346が正の範囲25
6〜383を与える。最後に、ステップ336では、予
約ビット「10」324が、位置314内の符号拡張ビ
ット316と一緒にXORされ、384〜511の正の
範囲を備えた位置348内の「01」349を与える。
従って、位置310内における0〜+127の正の範囲
は、2つの予約ビットを用いて0〜511まで拡張され
ている。また、「00」である予約ビット320によっ
て示されるように、この演算は後方互換性があり、即ち
位置340内で拡張された値は位置310内と同じ値で
ある。
【0013】記憶位置314内の−128〜−1の範囲
を拡張するために、同様の手順が行われる。最も左側の
ビットは、位置360,362,364,366内の拡
張された負の数で符号ビット「1」である。位置360
の2ビット361に対して、予約ビット324は、位置
310の符号拡張ビット312と一緒にXORされる。
2つのビット363は、ビット316と一緒にXORさ
れた2つのビット322からである。ビット365は、
ビット312と一緒にXORされたビット326であ
る。そして、ビット367は、ビット320と一緒にX
ORされたビット312である。従って、負の範囲13
は−512〜−1に拡張される。また、「00」である
予約ビット320によって示されるように、この演算は
後方互換性である。即ち、位置366内で拡張された値
は位置314内の値と同じである。
【0014】図4は、本発明における特定の実施の形態
を簡略化した流れ図を示す。図4ではステップ410に
おいて、Nビット即値フィールドは、長さの点で少なく
ともN+Mビットである位置A内にロードされる。ここ
に、N及びMは整数である。即値フィールドは、ステッ
プ412内で拡張された符号である。Mビット予約フィ
ールドはステップ414内で位置Bにロードされる。位
置Bの長さは少なくともN+Mビットである。ステップ
416において位置Bが、Nビットだけ左にシフトさ
れ、右をゼロで満たす。ステップ418では、位置A
が、位置Bと一緒にビットワイズでXORされ、その結
果を得る。その結果は、N+MビットからRビット42
0まで符号拡張される。ここに、Rは整数であり、R≧
N+Mである。その結果の符号ビットは、Mフィールド
の最も高いビットと一緒にXORされたNフィールドの
最上位ビットであるので、別の実施の形態では、これが
計算され、最終結果においてエンコードされていない上
位の全てのビットに提供されることもできる。従って、
エンコードされた範囲は、[−2^(N+M−1)、+
2^(N+M−1)]である。別の実施の形態では、そ
の位置さは、長さ64ビットである汎用レジスタである
かもしれない。
【0015】特定の実施形態では、図4に対する予約ア
ルゴリズムは、ソフトウエア内で実現され、アセンブラ
により利用され、拡張されたフィールドを使った命令セ
ットをエンコードできる。Nビット即値範囲を拡張する
ために、Mビット予約フィールドを用いた変更アルゴリ
ズムは: 1.範囲[−2^(N+M−1)、+2^(N+M−
1)]内のRビット数を取り出し、 2.ステップ1の下位Nビットを選択し、即値フィール
ドとして格納し、 3.NビットからN+Mビットまでステップ1の数を符
号拡張し、 4.ステップ1の結果とステップ3の結果とをXOR
し、 5.ステップ4の結果をNビットだけ右にシフトし(充
填値は「don' t care」である)、 6.ステップ5の下位Mビットが予約フィールド内に格
納される。
【0016】2つの例を与える表1及び表2は、予約ビ
ット「r」を使用して64ビットレジスタ「d」内にロ
ードされた16ビット定数「s」を拡張するか、又は1
0ビットアドレスディスプレースメント(変位)「s」
を拡張するかのいずれかであった。
【0017】表1は、本発明における特定の実施の形態
内でのMOVI命令の詳細な説明を示す。マイクロプロ
セッサは64ビットレジスタを有し、命令の長さは32
ビットある。オプコード「110011」を有するMO
VI命令は、16ビット即値フィールド「s」を符号拡
張し、レジスタ「d」即ちRd 内にその結果を格納す
る。「r」フィールドは4つの予約ビット用であるかも
しれない。予約ビットを用いて、M=4及びN=16の
場合に、図4を用いて16ビット即値フィールドを拡張
することもできる。異なるオプコードが必要になる場合
もある。
【0018】
【表1】
【0019】表2は、本発明における特定の実施の形態
内でのLD.L命令(オプコード100010)の詳細
な説明を示す。ロングワード(32ビット)は、第1ソ
ースオペランド、即ちレジスタ「m」のコンテンツを、
4により位取りされた(2ビットだけ左にシフトされ
た)10ビット即値に、つまり「s」に加えることによ
って形成された有効アドレスからロードされ、即ちL
D.Lである。ロングワードは結果レジスタ、即ち
「d」内で符号拡張される。「r」によって示された4
つの予約ビット0〜3がある。予約ビットを用いて、M
=4及びN=10の場合に、図4を用いて10ビット即
値を拡張することもできる。異なるオプコードが必要に
なる場合もある。
【0020】
【表2】
【0021】ハードウエア具体化における特定の実施の
形態 特定の実施の形態では、本発明は、ゼロ又はルート階層
レベルで、S5コア500ユニットを有するCPU内で
実行される。コンピュータコア500は、階層レベル1
で6つのユニットを有し、オプションで着脱自在な浮動
小数点ユニット(FPU)を含む。図5は、本発明にお
けるコンピュータコア500の一例の簡略化ブロック図
を示す。表3はS5コア内の各ユニットの機能を示す。
命令フローユニット(IFU)210は、整数命令を処
理することを含み、更に付録1で記載される。
【0022】
【表3】
【0023】図6は、整数/マルチメディアユニット
(IMU)520の一例のブロック図を示す。特定の実
施の形態では、IMU520はcpu算術命令を取り扱
い、整数、マルチメディア演算、及び、論理命令を含
む;ロード/ストアアドレス計算と範囲外(アドレス誤
り)検出;分岐と一部分岐との比較;及び分岐ターゲッ
トアドレス計算。IMU520の計算は、第1(exe
1)、第2(exe2)、及び、第3(exe3)パイ
プラインステージの間に生じるかもしれない。サブユニ
ットの多くは1サイクルの実行時間を有するが、乗算器
は3サイクルの待ち時間を有する。この実施の形態のI
MU520はシンプルなパイプラインである。もしif
u_imu_stall信号、又はifu_imu_i
nvalidate信号が受信されなければ、従属信号
により遮断されることなく、データが各サイクルをパイ
プライン内で進む。IMU520は、IFU510から
その入力の多くを取得する。メイン信号はソースオペラ
ンドとオプコードワードとである。IMU520は、e
xe1及びexe2パイプラインステージ(1又は2サ
イクル命令)、又は、exe3パイプラインステージ
(3又は4サイクル命令)でその結果を送ることができ
る。
【0024】特定の実施の形態では、IMU520は7
つのユニットを有する。表4は図6内のIMUブロック
の説明を与える。「AN INTEGER INSTRUCTION SET ARCHI
TECTURE AND IMPLEMENTATION」という名称の同時出願の
米国特許出願第09/410,683号(弁護士事件番
号第16869A−0003700US)は、全ての目
的のためにそっくりそのまま本出願の一部分に含まれ、
IMUの実施の形態における詳細な説明を有する。
【0025】
【表4】
【0026】例えば、ADA616は、IFU510又
はLSU540のアドレス指定と、整数加算、減算又は
比較とを行うことができる。ADA616は64ビット
加算器を備えることもできる。第2入力は減算又は比較
用に反転される。範囲検査をも行うことができる。
【0027】例えば、IMA620は2つのアドレスを
含み、各アドレスが1つの32ビット加算、2つの16
ビット加算、又は、4つの8ビット加算を実行する。各
タイプの加算は、内部に桁上げを含み、全ての加算に対
して同時に起動される。その結果が8ビットベクトルに
なる場合には、これによってバイト処理が可能となるだ
ろう。第2ソースオペランドは、減算及び比較を許容す
るように、反転されることもできる。
【0028】特定の実施の形態におけるXHW640
は、他のブロックのハードウエアを再利用することによ
って実行することが困難な命令を取り扱う。その命令は
実行用の自らのハードウエアを有し、論理AND、O
R、AND C、及び、XORと、MOVI、SHOR
I、及び、NSB命令とを含むことができる。
【0029】例えば、SHF650は、64ビットソー
ス内のバイト量のディスプレースメント(変位)を含ん
だ命令だけでなく、シフト関連命令を実行することがで
きる。それは、飽和時にイシュウ(発行)された1サイ
クル遅れ(exe2)を除いて、1サイクル(exe
1)内にその命令の多くを実行する。また、それは、も
し飽和時のコマンドがexe2で生成されたならば、そ
の飽和値をマクス(多重化)する。
【0030】シャフル及びバイトディスプレースメント
機能も同様に、3ステップ内でSHF650によって実
行されることが好ましい。第1ステップは、シャフルマ
トリクス用の制御信号を作成する。第2ステップはバイ
トを移動する。最後のステップは、もしexe3で必要
とされるならば、飽和値をマクスする。
【0031】飽和検出は、SHF650によって個別的
に行われる。それは、シフトパス(経路)からのオペラ
ンドとマスクとを使用し、シフト及びシャフルの第2サ
イクル(exe2)のために飽和コマンドを生成するこ
とができる。
【0032】例えば、MUL機能660は、乗算関連命
令を実行し、SIMD(単一命令多重データ)整数乗算
を含む。命令の多くは3サイクル内で終了するが、いく
つかの命令は、終了するまでに4サイクルを必要とす
る。ブースエンコードアルゴリズム(Booth encoding a
lgorithm)を用いて、乗算を実行できる。
【0033】XCT670は、IFU510によって供
給される種々の制御信号をバッファに保留し、且つ広め
るために動作できる。その種々の制御信号は各実行ブロ
ック用に再現できるために必要とされる。また、それ
は、パイプ内での命令位置の小さな表を保持することに
よって、パイプ内でのブロックを制御することもでき
る。XCT670は、有効、ストール(停動)、及び、
無効の信号を考慮することができる。
【0034】本発明における特定の実施の形態では、例
えば、表1及び表2で与えられた命令がIFU510内
でデコードされ、符号拡張後に、4ビットXORがデコ
ードパスに追加されて「s」の範囲を増大させる。別の
実施の形態では、例えば、MOVI内の即値命令
「s」、又は、LD.L 内のディスプレースメント
「s」を、汎用レジスタ(GPR)と、別のGPR内の
予約ビット「r」と、IMU250内で達成されたシフ
ティング(シフト処理)、XOR論理、及び符号拡張と
にロードできる。結論 上記実施の形態では、本発明は、特定の典型的な実施の
形態に関して記載されている。他の実施の形態は当業者
にとって明らかであろう。例えば、命令の長さは16ビ
ット又は64ビットでもよく、そしてマイクロプロセッ
サは16、32、126ビットバス及びワードで動作す
ることもできる;図4のアルゴリズムは、ハードウエ
ア、ソフトウエア、又はその両方の組み合わせにおいて
ダウン可能である;そして、データはリトルエンディア
ン又はビッグエンディアンのいずれかのフォーマットに
することもできる。従って、添付された特許請求の範囲
とその等価形態の全範囲とで説明されるように、本発明
の幅広い思想及び範囲から逸脱することなく、種々の変
更及び変形を実施できることは明らかであろう。
【0035】
【発明の効果】本発明によれば、即値命令の符号なしオ
ペランドが、命令によって同様に運ばれた予約ビットを
用いて拡張され得る。符号なし数の予約ビットにおける
この使用は、予約ビットの任意数に適用され得る。この
技術は、予約ビットの任意数に適用され、アーキテクチ
ャの寿命の点で何倍にも適用さえできる。異なるバイナ
リ組合せと一緒に予約ビットを変更することによって、
値の範囲を増加できる。予約アルゴリズムは、ソフトウ
エア内で実現され、アセンブラにより利用され、拡張さ
れたフィールドを使った命令セットをエンコードでき
る。 付録1:命令フローユニット(IFU) 1−1 概観 命令フローユニット(IFU)はS5コアのシーケンサ
として機能する。IFUはコア内の命令及びデータの流
れを調整し、且つコア内部アクティビティを伴う外部イ
ベント(事象)をマージする。その主な機能は、命令キ
ャッシュユニット(ICU)から命令をフェッチし、そ
の命令をデコードし、その相互依存性を解決し、レジス
タファイルからオペランドを読み出し、デコードされた
命令及びオペランドを実行ユニット(整数マルチメディ
アユニットIMU及びロードストアユニットLSU)に
送出し、実行ユニットからその結果を回収し、そしてレ
ジスタファイルにその結果を書き込むことである。更
に、IFUは、命令キャッシュミス時に、バスインタフ
ェースユニット(BIU)と接続し、外部メモリからの
欠落した命令で命令キャッシュを満たす。また、IFU
は、外部可観測性のためにS5コア内部データの転送を
調整するために、デバッグユニットにも接続する。
【0036】アーキテクチャはモードA及びモードBと
呼ばれ、その間で切り替わるための機構を有する2つの
命令セットを提供する。
【0037】モードA命令セットは、固定長32ビット
符号化を用いる命令を表す。モードAは、最適な動作が
必要とされる場合に、又は、CPU制御及び構成機構に
アクセスするために用いられる。典型的には、全てのモ
ードA命令は4バイト長であり、4バイト境界上のメモ
リ内に保持される。命令は、0〜31を付された32ビ
ットの集まりとして記載される。
【0038】モードB命令セットは、固定長16ビット
符号化を用いる命令を表す。モードBは、SHアーキテ
クチャの以前の態様とのユーザモード命令レベル互換性
を提供する。モードBは、コード密度或いはSH互換性
が要求される場合に用いられる。
【0039】IFUの別の主なタスクは、順序制御の役
割に加えて、全てのモードB命令のエミュレーションを
実行することである。詳細には、全てのモードB命令
は、1つのモードA命令か、又は、モードA命令のシー
ケンスのいずれかに変換される。その後、これらの(モ
ードA)命令は、元のモードA命令実行意味にわずかに
変化を加えて実行される。このエミュレーションアプロ
ーチを用いる場合、モードB命令を実行するのに必要な
論理は、数ブロック内で切り離すことができる。これ
は、モードBの定義が変化した場合に、又は、モードB
互換性に対する必要条件が欠落した場合に、少数の論理
ブロックのみが影響を受け、そのブロックしか再実行さ
れる必要がないという利点を有する。 1.1.1 ブロック図 図7は、全ての内部ブロック及び全ての外部インタフェ
ース用ユニットを有する簡単なIFUブロックを示す。
S5コアの順序制御機能のため、IFUは、コアに搭載
された大部分の他のユニットとのインタフェースを有す
る。IFUとBIUとの間のインタフェースは、命令キ
ャッシュへの命令のロードを開始する。IFUとICU
との間のインタフェースは、実行のための命令のフロー
を提供する。IFUとIMU/LSUとの間のインタフ
ェースは、命令、オペランド、結果及び命令を実行可能
にするための制御信号を送受信するための経路を提供す
る。IFUとデバッグユニットとの間のインタフェース
は、S5コアと外部デバッグ用エージェントとの間で、
サンプリングコマンド、サンプリングされたデータ及び
他のデバッグコマンドを交換するのを容易にする。これ
らのインタフェースに加えて、IFUは、外部割込みを
サンプリングし、且つ、仲介する外部割込みコントロー
ラから外部割込み信号を受信する。そのIFUは、内部
例外でその外部割込みを仲介し、非同期イベントを処理
するために適当なハンドラを起動する。
【0040】内部的には、IFUは、その機能に従って
ブロック、即ち命令キャッシュ制御ユニット、フェッチ
ユニット、分岐ユニット、デコードユニット、パイプ制
御ユニット、及び、オペランドファイルユニットに分割
されることが可能である。表5は、これらのブロック及
びその頭文字を掲載する。
【0041】
【表5】
【0042】1.1.2 IFUブロックの機能の説明 ・命令キャッシュコントロール(ICC) ICCは、命令キャッシュへのアクセスをセットアップ
するために、FEと内部的に、且つICUと外部的に通
信する。標準的には、FEは、命令フェッチアドレス
と、ICCへの「フェッチ要求」を示す1組の制御信号
とを供給する。その代わりに、ICCはFEに、2ワー
ドに整列した命令ワードを送出する。命令キャッシュが
欠落する場合に、BIUに対する再充填サイクルを開始
し、外部メモリから欠落しているキャッシュラインをロ
ードする。再充填は、FEが元のフェッチアドレスに存
続している間に生じる。別の方法では、FEは、命令を
返送する必要がない「プリフェッチ要求」を与えるか、
又は、キャッシュが欠落する場合に再充填を起動する必
要がない「フェッチ要求」を与える。これらの異なるタ
イプの要求を取り扱うために、FEとICCとの間で1
組のプロトコルが定義される。 ・フェッチユニット(FE) 命令がキャッシュからフェッチされる場合、その命令は
1組の4つの命令バッファに保管されるか、又は、ター
ゲットアドレスレジスタに関連するバッファ空間(T0
−T7、即ちIAR)に格納されるようになる。厳密に
は命令が格納される場所は、命令のFE及びISAモー
ドによりその命令がどのように要求されるかによる。し
かしながら、最終的には、2つの命令バッファのうち1
つ(モードAデコード器の場合のib0、及び、モード
Bデコード器の場合のib2)にシフト/移動し、その
中でデコードされ、実行ユニットに送出されるであろ
う。これらのバッファ間での命令のシフト/移動は、こ
れらのバッファ空間の使用率を最適化しようとするFE
により制御される。
【0043】FEの別の役割は、フェッチされた命令の
アドレスから順次アドレスを導出し、その命令が必要に
なる前にこれらの命令を「プリロード」することであ
る。「プリロード」命令は実行されることは保証され
ず、それゆえ無駄な電力消費の一因となる可能性もある
ため、FEにより実施されるプリロード動作は、過剰な
電力使用が生じるほど積極的に行うべきではない。一
方、この動作は、必要な命令のフェッチの遅れに起因し
て、過剰な無駄が生じることもないように、あまりに少
なすぎてもならない。 ・デコードユニット(DEC) S5コアがモードA(ISA==1)下で実行中に、モ
ードAデコード器は、ib0の命令をデコードし、その
デコードした命令情報を、内部ではFE、BR及びPP
Cに、外部ではIMU及びLSUに送出する。これらの
情報により、PPCが、レジスタ使用ハザード(リード
・アフター・ライトの真の依存性及びライト・アフター
・ライトの非依存性)及び命令直列化要件を迅速に解決
できるようになる。また、その情報により、IMU及び
LSUは、更に命令をデコードすることなくデータ演算
を開始できるようになる。分岐命令の場合、迅速な部分
デコード分岐命令により、BRは、分岐条件を統計的に
予測できるようになり、最も早い時間に分岐を決定する
可能性もある。
【0044】S5コアがモードB(ISA==0)下で
実行中に、全ての命令は、Tステージと呼ばれる、付加
的なモードBパイプラインステージを介して進む。その
命令は、最初にib2まで移動する必要があり、その中
でその命令は、1つ又は多数のモードAエミュレーショ
ン用命令に変換されるようになる。その後、エミュレー
ション用命令はib0に移動し、その中では標準モード
A命令の実行が再開される。いくつかの論理ブロックの
ある細部を除いて、S5コアの残りの部分は、これらの
2つのモード間の差を知るべきではない。 ・分岐ユニット(BR) 分岐ユニットは、ISA仕様書に定義される全ての分岐
に関する命令を取り扱う。分岐ユニットは、デコードさ
れた分岐命令をDECから受信し、分岐条件及びターゲ
ットアドレスがわかるか否かを決定し、その分岐を決定
/予測し始める。分岐条件が未知である場合には、分岐
命令の「1」ビットに基づいて、BRは統計的に分岐条
件を予測するであろう。その後、予測された命令がフェ
ッチされ、デコードされる。ある状況では、分岐条件が
決定される前に、予測された命令がフェッチされ、デコ
ードされる場合もある。その状況が生じる場合、BRが
その予測を正確であると判断するまで、その予測された
命令はデコードステージに保持されるであろう。
【0045】分岐命令がデコードされた場合に、ターゲ
ットアドレスが未知である場合には、ターゲットアドレ
スが使用可能になるまで、分岐命令はデコードステージ
に保持されるであろう。ターゲットアドレス転送の実施
制約条件に起因して、最適な分岐性能を得るために、準
備−ターゲット命令と分岐命令との間には適当な「間
隔」が必要とされる。 ・パイプ制御ユニット(PPC) ひとたびDECにより命令がデコードされれば、PPC
が残りのパイプステージを介してその実行状態をモニタ
する。PPCの主な機能は、(i)必要時(IMUの乗
算−累積内部転送の場合)に、全てのソースオペランド
が準備状態又は準備可能な状態になるまで命令がデコー
ドステージに保持されることになる、(ii)命令及び
内部/外部イベントにより課せられた全ての同期及び直
列化要件が生じる、(iii)全てのデータオペランド
/一時的な結果が正確に転送されるという点で、命令が
円滑、かつ正確に実行されるようにすることである。
【0046】パイプコントロール論理を簡単にするため
に、PPCはモードA命令実行時に、いくつかの観測及
び仮定を行う。その仮定の1つは、IMU命令のいずれ
も例外を生じず、全ての命令が決定的にパイプステージ
を介して流れるというものである。この仮定によりPP
Cは、IMUを、入力オペランドが到来する場所及び出
力結果が送出される場所を知る必要がない複合データ演
算エンジンとして見ることができるようになる。その
後、全てのデータ転送及びハザード検出論理は、同じ簡
単な機構を用いてPPC内に一体化させることができ
る。LSUパイプライン内の非決定的な演算に対して適
応するために、その後、この簡単な機構にいくつかの工
夫がなされる。しかしながら、その変更は、特に、LS
Uパイプラインの特異性においてターゲットとされてお
り、オーバヘッドが最小限になるようにすべきである。
【0047】PPCの別の主な機能は、命令例外、外部
割込み、リセット等のような非順次イベントを取り扱う
ことである。正常な例外条件下では、PPCの一部は常
時アイドル状態にある。イベントが生じる際に、PPC
が起動する。PPCは外部割込みコントローラから外部
割込み/リセット信号を受信する。PPCはコアの多数
の部分から内部例外を受信する。いずれの場合でも、P
PCはパイプラインを一掃し、その後、BRにコア状態
を保管することを通知し、適当なハンドラに分岐するで
あろう。多数の例外及び割込みが同時に生じる場合に、
構造的に定義された優先順位に従って、その間で仲介す
る。またPPCは、SR.BLビットを確認して、その
割込み/例外が妨げられるべきか否か、及びそのタイミ
ングを知る。 ・オペランドファイル(OF) OFユニットは構造的に定義された汎用レジスタファイ
ルを実現する。さらに、まだ完遂されていない一時的な
結果を格納し、かつ転送するために「パイプファイル」
と呼ばれる、限定形のリオーダバッファも実現する。S
5コアにより採用されたin−order(順次)実行
の性質に起因して、実行結果がout−of−orde
r(非順次)に生成される場合もある小さな時間のウイ
ンドウのみが存在する。S5コアはこの特性を利用し
て、結果が生成された直後に一時的な結果が転送される
ようにできる、簡略化した形のリオーダバッファを実現
すると共に、通常リオーダバッファに関連する高コスト
のタグ移動/一致機構をなしで済ませる。OFは、この
パイプファイルのデータ経路部分を実現する。制御はP
PCにおいて実行される。 1.1.3 IFUパイプライン構造 基本的なパイプラインフローを理解するために、以下の
図には2つの一般的な場合が示される。
【0048】図8は、データ依存性もなく、データ間の
リソース依存性もない命令シーケンスを示す。その命令
は、パイプライン内に空き(babble)がなく実行され
る。
【0049】図9は、連続した(back-to-back)依存性
を有するパイプラインフローを示す。これは、全てのI
MUの1サイクル実行命令に当てはまる。その結果は、
以下の命令に即時利用可能である。その依存性はパイプ
ラインに空きを引き起こさないであろう。
【0050】この節は、図10及び図11に示されるI
FUの観点から見たパイプライン構造を議論する。フロ
ントエンドパイプステージは、1.5サイクルの実行キ
ャッシュアクセス時間と0.5サイクルの事前デコード
ステージとに起因して、わずかに異なって言及されるこ
とに注意されたい。・フェッチステージ(F)フェッチ
ステージは1.5クロックサイクル(又は3クロックフ
ェーズ)間続く。Fステージ中に、ICCは、命令キャ
ッシュにアクセスし、FEに第3クロックフェーズの開
始時点でキャッシュヒット/ミスについて通知し、ヒッ
トの場合には、そのフェーズの最後にフェッチされた命
令を戻す。FEはFステージの1サイクル中にフェッチ
アドレスをインクリメントする。フェッチアドレスが奇
数ワード境界上に位置する場合には、4だけインクリメ
ントされ、そのインクリメントされたアドレスが同じサ
イクル中にICCに送出され、後続のサイクル(即ち、
現在のFステージにおける第3のフェーズにおいて開始
するサイクル)において命令キャッシュにアクセスす
る。フェッチアドレスが偶数ワード境界に位置する場合
には、8だけインクリメントされ、そのインクリメント
されたアドレスが、ICCに送出される前に1サイクル
間ラッチされる。直後のサイクルの場合、FEは、IA
Rプリロード或いは命令キャッシュプリフェッチのよう
な優先順位の低いキャッシュアクセスでそのサイクルを
満たす。
【0051】Fステージは1.5サイクル続くが、命令
キャッシュは、各サイクルに命令キャッシュを取り扱う
ことができるようにパイプライン処理される。その結
果、FEはサイクル毎に動作する必要がある。 ・事前デコードステージ(P) 命令がフェッチされた直後に、その命令は(事前)デコ
ード論理に給送され、その中でDECが迅速に、(i)
3レジスタファイル(RF)読出しポートのうち任意の
ポートにアクセスする必要があるか否かを、及び、その
命令が、ターゲットアドレスレジスタ(IAR.A)と
それに関連するバッファ空間(IAR.T)とに読み出
される必要がある分岐命令であるか否かを判定する必要
がある。この事前デコード処理は、RF、IAR.A及
びIAR.Tが全て特別に作製したアレイとして実装さ
れ、読み出しを開始するためにきれいなクロックエッジ
を必要とするため、Dステージに対するクロックの立ち
上がり前に行われなければならない。これらの2つのタ
スクに加えて、他のデコードステージタスクは、タイミ
ング要件を満足するためにデコードステージからこのス
テージに移行される場合もある。 ・デコードステージ(D) このステージの間に、DEC及びPPCがともに命令を
デコードし、あらゆる直列化/例外/機能停止条件を検
査し、更に利用される可能性のあるソースオペランドが
RF、コントロールレジスタスタック、IAR.A等か
ら検索される間に、全ての必要とされるデータ転送を取
り扱うように動作する。全てが良好に進行するなら、デ
コードされた信号は、正確なソースオペランドととも
に、実行ユニット(IMU又はLSU)に配向され、微
視的なアーキテクチャ状態が更新され、その命令が命令
バッファから除去される。その命令が無条件又は分岐す
ると予測された命令である場合には、いずれかのターゲ
ットアドレスが次のフェッチサイクル間にIAR.Aか
ら検索されるか、又は、ターゲット命令がプリロードさ
れている場合には、その命令及び次のフェッチアドレス
が、次のデコード及びフェッチステージの間にIAR.
Tバッファから読み出される。 ・変換ステージ(T) コアがモードBで動作している場合、全ての命令がこの
変換ステージを通り、モードA命令に翻訳される。コア
の残りの部分はサイクル当たり大部分の1(モードA)
命令で処理することができるため、モードB命令が1つ
のモードA命令でエミュレートできない場合には、その
変換を取り扱うために多数サイクルかかるであろう。本
質的には、モードB命令はTステージに位置し、一方エ
ミュレート用のモードA命令は、サイクル当たり1回、
Dステージ及びパイプラインの残りの部分に給送され
る。モード切替え分岐命令を除いて、DECは単にモー
ドB命令を取り扱うための役割を果たす。 ・E1実行ステージ(E1) 条件付き分岐命令の場合、IMUは64ビット比較演算
を行うように命令され、E1ステージ中にIFUに1ビ
ットの結果を転送する。この結果ビットは、BR及びD
EC(又はPPC)により同時に検査される。それが予
測されたものである場合には、変更なく全てが進行す
る。そうでない場合には、DECがDステージの命令を
無効にし、一方BRが、次の(E2)ステージにおいて
予測誤り修復プロセスを開始する準備をする。 ・E2実行ステージ(E2) BRが前ステージ中に予測誤り分岐を検出する場合に
は、E2サイクル中に正確な経路にそのフローを再配向
する。実際の分岐方向及び正確な次の命令がフェッチさ
れたか否かにより、いくつかのバブルがパイプラインに
挿入されるようになる。
【0052】PT命令の場合、E1サイクル中にIMU
アドレス加算器により計算された、ターゲットアドレス
レジスタのための新しい内容は、OFのパイプラインを
介してこのサイクル中にBRに転送され、Wステージ中
にターゲットアドレスレジスタファイル(IAR.A)
に書き込まれるはずの、パイプラインに類似のステージ
ングキューにラッチされる。しかしながらこの新しい内
容は、即時にFEに転送され、FEが次のサイクル中に
ターゲット命令をプリロードできるようにする。 ・E3実行ステージ(E3) このサイクル中に、ICCがPT命令のターゲットをプ
リロードするためにIキャッシュ(ICache)への
アクセスを開始することができる。ターゲットプリロー
ドは性能の最適化のためであるため、より高い優先順位
のフェッチ要求が存在する場合には、プリロードは生じ
ない場合もある。他の2つの命令、ICBI及びPRE
FIは、ICC(及び、従ってIキャッシュ)に対する
異なる要求タイプを除いて、同様に処理されることに注
意されたい。
【0053】また、任意の例外条件が生じたか否かを決
定することが、このステージにおいて生じる。E3サイ
クルの終了前に、PPCは全ての発生する可能性のある
例外条件を検査し、内部フラグを立て、ライトバックス
テージにおいて即時にハンドラ開始シーケンスを開始で
きるようにする。 ・ライトバックステージ(W) Wステージ中に、例外条件が検出されない場合には、ア
ーキテクチャ状態が更新される。これは、BRにおける
レジスタファイル(RF)、ターゲットアドレスレジス
タファイル(IAR.A)、及び、コントロールレジス
タを含む。例外条件が検出された場合には、PPCがB
Rにハンドラ開始シーケンスを開始したことを通知す
る。 ・開始ステージ(L) 例外ハンドラ開始シーケンスは数サイクル間続く。
【図面の簡単な説明】
【図1】本発明の予約ビットを使った定数を拡張する特
定の実施の形態を示す図である。
【図2】予約ビットが本発明の定数の値に影響を与えな
い場合において、特定の実施の形態を示す図である。
【図3】予約ビットが設定された時に、本発明における
特定の実施の形態の結果を示す図である。
【図4】本発明における特定の実施の形態の簡単な流れ
図である。
【図5】本発明のコンピュータコアの一例を示す簡単な
ブロック図である。
【図6】整数/マルチメディアユニットの一例を示すブ
ロック図である。
【図7】付録1において、全ての内部ブロック及び全て
の外部インタフェース用ユニットを有する簡単なIFU
ブロック図を示す。
【図8】付録1において、データ依存性もなく、データ
間のリソース依存性もない命令シーケンスを示す図であ
る。
【図9】付録1において連続した依存性を有するパイプ
ラインフローを示す図である。
【図10】付録1においてモードAのIFUパイプライ
ンを示す図である。
【図11】付録1においてモードBのIFUパイプライ
ンを示す図である。
【符号の説明】
110 値 112 定数 114 符号 116 符号拡張 120 予約ビット 124 XOR 126 ビット結果 150 拡張された値 210 記憶位置(レジスタ) 212 予約ビット 214 記憶位置(レジスタ) 216 レジスタ 220 記憶位置(レジスタ) 222 予約ビット 224 記憶位置(レジスタ) 226 結果ビット 310 記憶位置 311 最上位ビット 312 2ビット 314 記憶装置 315 ビット 316 符号拡張ビット 320 予約ビット 322 予約ビット 324 予約ビット 326 予約ビット 330 ステップ 332 ステップ 334 ステップ 336 ステップ 340 記憶位置 342 2ビット 344 記憶位置 345 2ビット 346 記憶位置 347 2ビット 348 記憶位置 349 2ビット 360 記憶位置 361 2ビット 362 記憶位置 363 2ビット 364 記憶位置 365 2ビット 366 記憶位置 367 2ビット 410 ステップ 412 ステップ 414 ステップ 416 ステップ 418 ステップ 420 ステップ 505 バスインタフェースユニット 510 命令フローユニット 520 整数/マルチメディアユニット 530 命令キャッシュユニット 540 ロード/ストアユニット 550 データキャッシュユニット 616 アドレス加算器(ADA) 620 整数/simd加算器(IMA) 630 exe1 exe2 exe3セレクタ(XS
L) 640 エクストラハードウエア(XHW) 650 シフタ/シャフル(SHF) 660 乗算器(MUL) 670 制御(XCT)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 複数のフィールドを有する第1コンピュ
    ータ命令で、データフィールドをエンコードする方法で
    あって、 前記命令内に任意の未使用データビットが存在するか否
    かを決定し、 前記未使用ビットのサブセットを使って前記データフィ
    ールドを拡張データフィールド内に拡張し、 複数のフィールドを有し、前記拡張データフィールドを
    使った第2コンピュータ命令が、前記データフィールド
    を用いた前記第1コンピュータ命令と後方互換であるこ
    とを特徴とするデータフィールドのエンコード方法。
  2. 【請求項2】 請求項1記載の方法であって、 前記第2コンピュータ命令が、前記第1コンピュータ命
    令と同じ演算コードを含むことを特徴とするデータフィ
    ールドのエンコード方法。
  3. 【請求項3】 請求項1記載の方法であって、 前記未使用ビットが予約ビットを含むことを特徴とする
    データフィールドのエンコード方法。
  4. 【請求項4】 請求項1記載の方法であって、 前記データフィールドが即値オペランドであることを特
    徴とするデータフィールドのエンコード方法。
  5. 【請求項5】 請求項1記載の方法であって、 前記データフィールドがディスプレースメントであるこ
    とを特徴とするデータフィールドのエンコード方法。
  6. 【請求項6】 請求項1記載の方法であって、 前記サブセットが適当なサブセットであることを特徴と
    するデータフィールドのエンコード方法。
  7. 【請求項7】 複数のフィールドを有するコンピュータ
    命令で、情報フィールドを拡張する方法であって、 オプコードを含んだ前記複数のフィールドのうち第1フ
    ィールドを評価し、 もし前記複数のフィールド内に少なくとも1つの予約フ
    ィールドが存在するならば、拡張フィールド内に前記予
    約ビットと前記情報フィールドとを組合せ、 前記オプコードによって示された演算内で前記拡張フィ
    ールドを使用することを特徴とする情報フィールドの拡
    張方法。
  8. 【請求項8】 請求項7記載の方法であって、 前記拡張フィールドが前記情報フィールドと後方互換で
    あることを特徴とする情報フィールドの拡張方法。
  9. 【請求項9】 請求項7記載の方法であって、 前記情報フィールドが、即値オペランドとディスプレー
    スメントとを含んだグループから選択されることを特徴
    とする情報フィールドの拡張方法。
  10. 【請求項10】 請求項7記載の方法であって、 前記組合せが、長さNビットである前記情報フィールド
    を、第1記憶位置にロードし、 長さMビットである前記予約フィールドを、第2記憶位
    置にロードし、 前記第1記憶位置内に前記情報フィールドを符号拡張
    し、 前記第2記憶位置をNビットだけ左にシフトし、 前記第1記憶位置を前記第2記憶位置と一緒にビットワ
    イズで排他的論理和をとって(Bitwise exclusive ORin
    g)前記拡張フィールドを引き出し、 前記第1及び第2記憶位置が少なくともM+Nビットを
    有することを特徴とする情報フィールドの拡張方法。
  11. 【請求項11】 コンピュータ命令で情報フィールドを
    拡張するためのコンピュータシステムであって、 記憶装置と、プロセッサとを備え、 前記記憶装置が複数の記憶位置を含み、第1記憶位置が
    前記コンピュータ命令の前記情報フィールドを有し、第
    2記憶位置が前記コンピュータ命令の予約ビットを有
    し、 前記プロセッサが、前記第1記憶位置内に前記情報フィ
    ールドを符号拡張する符号拡張装置と、 前記第2記憶位置内で前記予約ビットを左にシフトする
    シフタと、 前記第1記憶位置と前記第2記憶位置とを組合せる論理
    XORゲートとを有することを特徴とするコンピュータ
    システム。
JP2000282611A 1999-10-01 2000-09-18 データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム Pending JP2001142694A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41067599A 1999-10-01 1999-10-01
US09/410675 1999-10-01

Publications (1)

Publication Number Publication Date
JP2001142694A true JP2001142694A (ja) 2001-05-25

Family

ID=23625740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000282611A Pending JP2001142694A (ja) 1999-10-01 2000-09-18 データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム

Country Status (1)

Country Link
JP (1) JP2001142694A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080278A (ja) * 2003-05-12 2007-03-29 Internatl Business Mach Corp <Ibm> 埋め込み符号を持ったコンピュータ命令値フィールド
CN106155631A (zh) * 2006-09-22 2016-11-23 英特尔公司 用于执行选择操作的方法和装置
GB2552117A (en) * 2009-12-17 2018-01-10 Intel Corp Method and apparatus for performing a shift and exclusive or operation in a single instruction
CN116318660A (zh) * 2023-01-12 2023-06-23 成都海泰方圆科技有限公司 一种消息扩展与压缩方法及相关装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007080278A (ja) * 2003-05-12 2007-03-29 Internatl Business Mach Corp <Ibm> 埋め込み符号を持ったコンピュータ命令値フィールド
US7725736B2 (en) 2003-05-12 2010-05-25 International Business Machines Corporation Message digest instruction
CN106155631A (zh) * 2006-09-22 2016-11-23 英特尔公司 用于执行选择操作的方法和装置
GB2552117A (en) * 2009-12-17 2018-01-10 Intel Corp Method and apparatus for performing a shift and exclusive or operation in a single instruction
GB2552117B (en) * 2009-12-17 2018-07-18 Intel Corp Method and apparatus for performing a shift and exclusive or operation in a single instruction
US10684855B2 (en) 2009-12-17 2020-06-16 Intel Corporation Method and apparatus for performing a shift and exclusive or operation in a single instruction
CN116318660A (zh) * 2023-01-12 2023-06-23 成都海泰方圆科技有限公司 一种消息扩展与压缩方法及相关装置
CN116318660B (zh) * 2023-01-12 2023-12-08 成都海泰方圆科技有限公司 一种消息扩展与压缩方法及相关装置

Similar Documents

Publication Publication Date Title
JP6856358B2 (ja) ローカル分岐デコーダを有するマルチ発行マイクロコードユニットを備えたパイプラインプロセッサ
US8069340B2 (en) Microprocessor with microarchitecture for efficiently executing read/modify/write memory operand instructions
JP5313279B2 (ja) 非アラインドメモリアクセス予測
JP3628379B2 (ja) 命令を処理するためのパイプラインを有するマイクロプロセッサ装置およびそれにおいて用いるためのプログラムカウンタ値を発生する装置
US7836278B2 (en) Three operand instruction extension for X86 architecture
US6684323B2 (en) Virtual condition codes
JP2008530714A5 (ja)
EP1089167A2 (en) Processor architecture for executing two different fixed-length instruction sets
JP2006004042A (ja) データ処理装置
US6247117B1 (en) Apparatus and method for using checking instructions in a floating-point execution unit
CN108304217B (zh) 将长位宽操作数指令转换为短位宽操作数指令的方法
EP2461246B1 (en) Early conditional selection of an operand
US6449712B1 (en) Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ
US6799266B1 (en) Methods and apparatus for reducing the size of code with an exposed pipeline by encoding NOP operations as instruction operands
JP2009524167A5 (ja)
JP2001142701A (ja) プロセッサにおけるパイプライン制御用メカニズムおよび方法
US5768553A (en) Microprocessor using an instruction field to define DSP instructions
JP2002229779A (ja) 情報処理装置
JP2001142694A (ja) データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム
JP2001142706A (ja) 命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム
US7779231B2 (en) Pipelined processing using option bits encoded in an instruction
US11544065B2 (en) Bit width reconfiguration using a shadow-latch configured register file
Parthasarathy Performance measures of superscalar processor