(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-30
(54)【発明の名称】疎結合スライスターゲットファイルデータ
(51)【国際特許分類】
G06F 9/38 20180101AFI20240920BHJP
【FI】
G06F9/38 370Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024502132
(86)(22)【出願日】2022-09-07
(85)【翻訳文提出日】2024-01-15
(86)【国際出願番号】 EP2022074893
(87)【国際公開番号】W WO2023052068
(87)【国際公開日】2023-04-06
(32)【優先日】2021-09-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】グェン、ダン
(72)【発明者】
【氏名】トムプト、ブライアン
(72)【発明者】
【氏名】モレイラ、ジョセフ
(72)【発明者】
【氏名】ツェン、ジェシカ フイ-チュン
(72)【発明者】
【氏名】パットナイク、パラタプ
(72)【発明者】
【氏名】エカナドハム、カッタムリ
(72)【発明者】
【氏名】クマル、マノジ
【テーマコード(参考)】
5B013
【Fターム(参考)】
5B013DD10
(57)【要約】
システムは、2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定し、前記2つの命令をペアへと融合し、単一のレジスタタグを用いて、前記2つの命令をマッピングし、前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込み、前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込み、前記融合された命令ペアを発行キューへと書き込み、前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行し、前記2つの命令を実行し得る。
【特許請求の範囲】
【請求項1】
メモリ、及び
前記メモリと通信状態にあるプロセッサ
を備え、前記プロセッサは:
2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定すること;
前記2つの命令をペアへと融合すること;
単一のレジスタタグを用いて、前記2つの命令をマッピングすること;
前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込むこと;
前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込むこと;
前記融合された命令ペアを発行キューへと書き込むこと;
前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行すること;及び
前記2つの命令を実行すること
を備えるプロセスを実行するように構成されている、システム。
【請求項2】
前記判定することは、前記ユニットの前記処理能力及び前記命令の前記サイズに基づく、請求項1に記載のシステム。
【請求項3】
前記2つの命令は隣り合う命令である、請求項1に記載のシステム。
【請求項4】
前記プロセスは更に:
物理的レジスタ内の両方のレジスタタグからの情報を読み出すこと
を備える、請求項1に記載のシステム。
【請求項5】
前記プロセスは更に:
前記融合された命令のオペランドを、前記融合された命令の位置に基づいて、1つ又は複数の正しいオペランドラッチにステアリングすること
を備える、請求項4に記載のシステム。
【請求項6】
前記プロセスは更に:
前記融合された命令に対するスカラ結果を、前記2つのレジスタタグに基づいて、正しいレジスタタグへ書き込むこと
を備える、請求項5に記載のシステム。
【請求項7】
前記2つの命令は、2つのITAGを有し、
前記2つのITAGは最下位ビットを除いて同じであり;
前記最下位ビットは前記第1命令に対して偶数であり;
前記最下位ビットは前記第2命令に対して奇数である
請求項1に記載のシステム。
【請求項8】
2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定する段階;
前記2つの命令をペアへと融合する段階;
単一のレジスタタグを用いて、前記2つの命令をマッピングする段階;
前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込む段階;
前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込む段階;
前記融合された命令ペアを発行キューへと書き込む段階;
前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行する段階;及び
前記2つの命令を実行する段階
を備える方法。
【請求項9】
前記判定する段階は、前記ユニットの前記処理能力及び前記命令の前記サイズに基づく、請求項8に記載の方法。
【請求項10】
前記2つの命令は隣り合う命令である、請求項8に記載の方法。
【請求項11】
前記プロセスは更に:
物理的レジスタ内の両方のレジスタタグからの情報を読み出す段階
を備える、請求項8に記載の方法。
【請求項12】
前記プロセスは更に:
前記融合された命令のオペランドを、前記融合された命令の位置に基づいて、1つ又は複数の正しいオペランドラッチにステアリングする段階
を備える、請求項11に記載の方法。
【請求項13】
前記プロセスは更に:
前記融合された命令に対するスカラ結果を、前記2つのレジスタタグに基づいて、正しいレジスタタグへ書き込む段階
を備える、請求項12に記載の方法。
【請求項14】
前記2つの命令は、2つのITAGを有し、
前記2つのITAGは最下位ビットを除いて同じであり;
前記最下位ビットは前記第1命令に対して偶数であり;
前記最下位ビットは前記第2命令に対して奇数である
請求項8に記載の方法。
【請求項15】
プログラム命令が具現化されたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であって、前記プログラム命令は、請求項8から13のいずれか一項に記載の方法をプロセッサに実行させるために前記プロセッサによって実行可能である、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の態様は、ベクトルスカラ変換ユニット(VSU)に関し、より具体的には、態様は、疎結合スライスターゲットファイル(STF)データに関する。
【背景技術】
【0002】
プロセッサチップPOWER10は、18層メタルスタックを使用する、602mm2のダイサイズを有する、7ナノメートル(nm)CMOS設計である。それはシングルチップ又はデュアルチップソケットにおいて利用可能である。トップレベルシステムアーキテクチャ特性は、表I中にキャプチャされている。POWER9に対するPOWER10の主要で顕著な動作上の特徴のうちの2つは:(a)エネルギー効率における著しい改善;及び(b)ISA拡張及びインラインMMA(行列乗算アシスト:Matrix-Multiply Assist)加速を特徴とするコアのAI強化を含む。
【0003】
スカラプロセッサは、1度に1つのデータを処理する。ベクトルプロセッサは、単一の命令で複数のデータを処理する。
【発明の概要】
【0004】
本発明は、疎結合スライスターゲットファイル(STF)データを作成するための、方法、コンピュータプログラム製品、及びシステムを提供する。いくつかの実施形態において、前記方法は、2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定する段階、前記2つの命令をペアへと融合する段階、単一のレジスタタグを用いて、前記2つの命令をマッピングする段階、前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットを用いて、前記レジスタタグをマッパへと書き込む段階、前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込む段階、前記融合された命令ペアを発行キューへと書き込む段階、前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行する段階、及び前記2つの命令を実行する段階を含む。
【0005】
また、本発明のいくつかの実施形態は、プログラム命令が具現化されたコンピュータ可読記憶媒体を備えるコンピュータプログラム製品によって例示され得、前記プログラム命令は方法をプロセッサに実行させるために前記プロセッサによって実行可能であり、前記方法は、2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定する段階、前記2つの命令をペアへと融合する段階、単一のレジスタタグを用いて、前記2つの命令をマッピングする段階、前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込む段階、前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込む段階、前記融合された命令ペアを発行キューへと書き込む段階、前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行する段階、及び前記2つの命令を実行する段階を含む。
【0006】
本発明のいくつかの実施形態は、プロセッサ及び前記プロセッサと通信状態にあるメモリを備え、前記メモリは、前記プロセッサによって実行されるとき、前記プロセッサに方法を実行させるように構成されているプログラム命令を含む、システムによって例示され得、前記方法は、2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定する段階、前記2つの命令をペアへと融合する段階、単一のレジスタタグを用いて、前記2つの命令をマッピングする段階、前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込む段階、前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込む段階、前記融合された命令ペアを発行キューへと書き込む段階、前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行する段階、及び前記2つの命令を実行する段階を含む。
【図面の簡単な説明】
【0007】
【
図1】本発明の様々な実施形態に係る、プロセッサコアのブロック図である。
【0008】
【
図2】本発明の様々な実施形態に係る、STFデータを結合する例示的な方法を図示する図である。
【0009】
【
図3】本発明の実施形態に係る、STFデータを結合するように構成されているプロセッサの例示的なマイクロアーキテクチャのブロック図である。
【0010】
【
図4】本発明の様々な実施形態に係るコンピュータシステムを示す図である。
【発明を実施するための形態】
【0011】
本発明の態様は、疎結合スライスターゲットファイル(STF)データの作成に関する。本発明はそのような用途に必ずしも限定されない一方で、本発明の様々な態様は、この文脈を使用する様々な例の議論を通して理解され得る。
【0012】
現代の処理ユニット内には、独立して複数の命令を処理することが可能な複数のコアが存在する。例えば、POWER10プロセッサ内には、4つのベクトルスカラ変換ユニット(VSU)実行ユニットが存在し、それらはサイクルあたり合計4つのVSU命令(すなわち、4つの128ビットベクトル命令、又は4つの64ビットスカラ命令、又は4つの128ビットベクトル及び64ビットスカラ命令の混在するもの)を実行することが可能である。
【0013】
本開示によって提案される新しい水平融合設計は、コアがスカラ命令の実行速度を向上させることを可能にする。例えば、POWER10処理ユニットにおいて、本発明の態様は、実行速度をサイクルあたり4から8へ向上させることを可能にし得る。この新しい設計を用いると、コアは、追加のVSU処理パイプを加えることなく、各ユニットに対する最大処理能力に等しいベクトル命令、及び/又は複数のより小さなベクトル命令を実行することが可能であり得る。例えば、POWER10処理ユニットは、最大で4つのVSU128ビットベクトル命令、又は8つのVSU64ビットスカラ命令、又は両方の混在するものを実行することができる。
【0014】
マイクロプロセッサアーキテクチャは、命令による実行/操作のためのデータを格納するために、様々なレジスタを利用する。特定の命令のためのデータをどのレジスタ(又はレジスタ内の位置)が格納しているかを追跡するために、マイクロプロセッサはレジスタファイル(又は1つより多くのレジスタファイル)を利用する。レジスタファイルは、スーパースライス内のハードウェアスレッドによって実行されている様々な命令のために必要とされるレジスタ位置を保持している。いくつかのプロセッサにおいて、レジスタファイルは複数のブロックへと分割されている場合がある。例えば、いくつかのPOWER(登録商標)プロセッサにおいて、レジスタファイルはスライスターゲットレジスタファイル(STF)と称され、それはコアに大きなレジスタファイルを提供するために一緒に働く、4つのより小さなSTFブロックから構成される。(POWERは、インターナショナルビジネスマシンコーポレーションによって所有される登録商標である。)
【0015】
複数の命令が同じ位置内に異なるデータを格納しようとしないことを確実にするために、マイクロプロセッサは、命令にレジスタタグを割り振る。いくつかの事例において、レジスタタグは、本明細書でスライスターゲットレジスタファイルタグ(STFタグ)と称される場合があるが、タグの他の名称又はタイプが可能である。未使用のレジスタタグは、空きリスト(例えば、STF空きリスト)内に保たれてよい。いくつかの事例において、空きリストは割り当てられていない物理的レジスタを追跡し続ける。命令がディスパッチにおいて受信されるとき、プロセッサは利用可能なレジスタを確認する。レジスタが利用可能な場合、プロセッサは空きリストからのレジスタタグを命令に割り振り、当該命令は関連付けられたタグを有して進むことが可能である。レジスタタグが割り振られると、それは空きリストから取り除かれ、レジスタファイル内の対応するエントリ(及び、したがって、レジスタ位置)は、新しい命令に割り振られることはできない。レジスタタグ及びレジスタファイルの使用は、命令が衝突(例えば、別の命令によって依然として必要なデータを上書き)しないことを確実にすることをプロセッサに可能にする。
【0016】
いくつかの実施形態において、提案されるシステムは、複数の命令を、単一のパイプライン内で処理される単一のレジスタタグの上へロードし得る。
【0017】
いくつかの実施形態において、書き込み/読み出し(W/R)は、融合されたペアが発行キュー(ISQ)から発行され得るように、割り当てられる。例えば、各STF(例えばレジスタタグ)ブロックは、128ビットのデータに対する2W/6Rであり得る。この例において、6Rは、融合されたスカラペアがISQから発行されることを可能にするように割り当てられる。
【0018】
いくつかの実施形態において、書き込み/読み出し(W/R)は、密結合STF設計の場合のように、スカラ命令がシングルSTFレジスタエントリの両方の半分に同一の結果を書き込むことができるように割り当てられる。依存命令は、STFエントリのいずれの半分の上でも同じスカラデータを読み出し得る。
【0019】
いくつかの実施形態において、書き込み/読み出し(W/R)は、疎結合STF設計の場合のように、スカラ命令がSTFエントリの半分のみに結果を書き込むことができるように割り当てられる。スカラ結果は、STFエントリの右半分、又は、STFエントリの左半分のいずれかにのみ書き込むことができる。依存命令は、オペランドデータがSTFエントリの左半分又は右半分いずれの上にあるかを知らなければならない。
【0020】
本発明の実施形態は、ここで図を参照して議論される。
【0021】
図1をここで参照すると、本発明の実施形態に係る、例示的なマイクロプロセッサシステム100の様々な構成要素の高レベルブロック図が図示されている。マイクロプロセッサシステム100は、命令ディスパッチユニット(IDU)102、命令シーケンシングユニット(ISU)104、ロードストアユニット(LSU)108、ベクトル/スカラユニット(VSU)106、及び完了及び例外ハンドリングロジック110を含む。
【0022】
IDU102は、プログラム命令がメモリからフェッチされ適切な順序で実行されるように編成することを担う処理ユニットである。IDU102は、しばしば中央処理装置(CPU)の制御ユニット(例えば、プロセッサの動作を指示することを担うユニット)の一部とみなされる。いくつかの実施形態において、
図2中で説明されるように、IDUは、2つの隣り合うスカラ命令を融合し得る。
【0023】
ISU104は、発行キューへ命令をディスパッチすること、アウトオブオーダ実行をサポートするためにレジスタをリネームすること、発行キューから実行パイプラインへ命令を発行すること、実行中の命令を完了すること、及び例外をハンドリングすることを担うコンピューティングユニットである。ISU104は、命令の依存及び組み合わせが解決されると命令の全てを発行する発行キューを含む。
【0024】
VSU106は、スライスターゲットファイル(STF)の所有権を維持するコンピューティングユニットである。STFは、命令によってソースされるレジスタデータの全てを保持する。一例としてターゲットを有さないストア命令を取り上げると、STFは、ストアアドレスオペランド及び実行のためにLSU108へ送信されるストアデータにとって必要なレジスタを保持している。
【0025】
LSU108は、全てのロード及びストア命令を実行すること、統合キャッシュを使用してプロセッサのコアとシステムの残りの部分とのインターフェースを管理すること、及びアドレス変換を実行することを担う実行ユニットである。例えば、LSU108は、ロード及びストア動作の仮想アドレスを生成し、当該LSU108は(ロード動作のために)メモリからデータをロードし、又は(ストア動作のために)レジスタからメモリへデータを格納する。LSU108は、メモリ命令のキューを含み得、LSU108は他のユニットから独立して動作し得る。
【0026】
完了及び例外ハンドリングロジック110(以降「完了ロジック」110)は、命令を完了させることを担う。命令が例外を引き起こす場合、完了ロジック110は、命令をフラッシュし、IDUに命令を再フェッチするように信号を送る。
【0027】
図1中に示される構成要素102~110は例示の目的で、及び、本発明の実施形態の原理を説明するために、提供されていることが理解されるべきである。いくつかのプロセッサアーキテクチャは、より多くの、より少ない、又は異なる構成要素を含み得、構成要素102~110の様々な機能は、いくつかの実施形態において異なる構成要素によって実行され得る。例えば、例外及び完了ハンドリングは、ISU104によって実行され得る。
【0028】
更に、プロセッサは1つより多くの構成要素102~110を含み得る。例えば、マルチコアプロセッサは、コアあたり1つ又は複数の命令フェッチユニット(IDU)102を含み得る。更に、本発明の実施形態は概してPOWER(登録商標)プロセッサを参照して議論されるが、これは例示の目的でなされている。本発明は、他のプロセッサアーキテクチャによって実装され得、本発明はPOWERプロセッサに限定されない。
【0029】
図2は、疎結合レジスタタグデータのための例示的な方法200を示す。方法200の動作は、下記の
図3中で説明されるシステムなどの1つ又は複数のコンピュータシステムによって実行され得る。
【0030】
方法200は、命令ディスパッチユニット(IDU)(例えば、
図1からのIDU102)が、2つの命令が組み合わせられ得ることをユニットの処理能力及び命令のサイズに基づいて判定する動作202から始まる。ユニットが2つの命令を同時に処理する能力を有する場合、IDUは命令が組み合わせられ得るという判定を行い得る。例えば、VSUスライスが128ビットベクトル命令を実行でき、システムが2つの64ビットスカラ命令を有する場合、IDUは2つの64ビットスカラ命令が組み合わせられ、それらが同時にVSUスライスによって処理され得るという判定を行い得る。それらの命令は、本明細書では左命令及び右命令と称される場合があるが、この区別はプロセッサに対する物理的な制限につながるものではなく、それは単に2つの命令を差別化する方法である。同様に、後にベクトルスカラユニット(VSU)は左側及び右側を有するとして言及される場合がある。また、VSUの128ビット容量の一部が左命令に割り当てられ、容量の一部が右命令に割り当てられているという記載は、左又は右「側」/命令のどちらについても何か一意的なことを示すことを意図するものではなく、それは例示及び議論の明確さの目的で使用されている。
【0031】
方法200は、2つの隣り合う命令をペアへと融合する動作204へ続き得る。例えば、命令はスカラ命令であり得る。いくつかの事例において、隣り合う命令は、同時に実行され得る命令である。例えば、隣り合う命令は互いに依存していない。いくつかの実施形態において、隣り合う命令は同時に完了させられ得る命令であり、互いに直接依存していない。
【0032】
いくつかの実施形態において、プロセッサ内のディスパッチロジックは、受信した命令に対する命令タグ(ITAG)を、マッパへと書き込み得る。いくつかの事例において、データマッパは、リレーショナルデータベースなどの永続データストア、及びドメイン層などのインメモリデータ表現の間でデータの双方向転移を実行する。セーブ及びリストアバッファ(SRB)は、所与のレジスタに対する以前のマッピングを追跡する。例えば、プロセッサが特定の汎用レジスタ(GPR)又はベクトルスカラレジスタ(VSR)に5回書き込んだ場合、マッパは最新のもののみを有するが、その一方でSRBは4つの過去のITAGを格納し得る。SRBの目的は、プロセッサがフラッシュを実行しなければならない場合にプロセッサ状態をバックアップすることである。またディスパッチロジックは、ISQへ命令をディスパッチする。いくつかの実施形態において、これらの動作は、命令にレジスタタグが割り振られることなく実行される。
【0033】
いくつかの実施形態において、融合された命令は2つのITAGを有し得る。いくつかの実施形態において、第1ITAGは偶数ITAGである。例えば、IDUは最下位ビットを選択し、それを第1タグのために偶数(例えば、0)にし得る。その場合、IDUは第1ITAGを送信することのみが必要であり、これは後に最下位ビットは第2ITAGを取得するために反転される(例えば、それを奇数1にする)場合があるからである。
【0034】
ITAGは、命令の追跡を容易にする命令タグである。プロセッサは、命令が追跡され得るように、下って来る全ての命令に対してタグを割り振る。ITAGは、デコードから完了まで命令を追跡する。ITAGは、バイナリビットのセットとして実装され得る。
【0035】
いくつかの事例において、Wビットは、データが準備できているか、又は利用可能か否かをバイナリ方式で示す書き込み済ビットである。Wビットは、はい/いいえ、肯定/否定などを示す形態で提供され得る。Wビットが肯定的な場合、システムは、ITAGに対する関心が低くなり、これはデータは既にそこにあり、どの要素がデータを提供したかということはあまり関係がなくなったからである。Wビットが否定的な場合、ITAGは、命令が実行され得る前に処理がどの要素を待っているのか示す。Wビットは、データ可用性書き込み済ビットと称される場合がある。
【0036】
方法200は、IDUが、融合された命令を命令シーケンシングユニット(ISU)へ伝送し得る動作206へ続き得る。例えば、IDUは融合された命令をペアレーン上のISUへ伝送し得る。ペアレーンは、シリアル接続された、データ伝送レーンである。各レーンは、1つが伝送用であり、もう1つが受信用である、ワイヤの2つのペアからなる。
【0037】
方法200は、命令シーケンシングユニット(例えば、ISU104)が左命令及び右命令をマッピングする動作208へ続き得る。いくつかの実施形態において、左命令及び右命令は、別々にマッピングされ得る。例えば、左及び右命令は、別々に処理され、別々の解を有し、マッピングは別々である必要があり得る。
【0038】
いくつかの実施形態において、システムはITAGを完了テーブルへと書き込み、当該ITAGを原子性である(すなわち、両方のITAGは一緒に完了させられなければならない)としてマークし得る。例えば、ISUは融合されたペアに対する偶数ITAG及び奇数ITAGを完了テーブル内に書き込み得る。
【0039】
マッパは、STF空きリストにアクセスし、単一の利用可能なSTFタグ(例えば、レジスタタグ)(128ビット)を融合されたペアへ割り当て得る。例えば、マッパはISUの一部であり得、マッパは利用可能なSTFタグの空きリストを受信し得る。マッパは、融合されたペアに対して空きSTFタグを選択し得る。
【0040】
いくつかの実施形態において、ISUは、STF_tagがSTFタグの左ビットに対するものか、又は右ビットに対するものかを示す2つのビットとともに、STFタグをマッパへと書き込み得る。融合された命令は単一のSTF_tagを発行されているので、システムは、STFタグに対するどの命令情報が左命令データであるか、及びどれが右命令データであるかを判定する必要がある。例えば、融合されたスカラペアのための宛先論理レジスタ(RT)は、書き込み動作のためにマッパへとインデックス付けするために使用される。偶数ITAG命令は、STFタグ及びSTF tag_leftビット(例えば、偶数ビット「10」を有する)の両方において記録され得る。奇数ITAG命令は、STF tag_rightビット(例えば、奇数ビットタグ「01」を有する)と共にSTFタグ内に記録され得る。
【0041】
ベクトル命令に関して、1つのマッパ位置のみが、対応するRTフィールドを使用して書き込まれ得、STF_tag_left及びSTF tag_rightの両方がアクティブ(例えば、偶数及び奇数ビット「11」)であり得る。
【0042】
本明細書において使用される場合、「ソースSTFタグ」は、命令が動作の実行のためにどの物理的レジスタを読み出しているのかを特定するSTFタグである。ソースSTFタグは、命令が発行され始める前は、ISQ330内部にある。「宛先STFタグ」は、命令が実際に書き込んでいるレジスタに関連付けられたSTFタグである。宛先STFタグは、発行されていない及びそれに依存している命令については、ISQ330、マッパ320、及びSRB340へとフィードバックされる。例えば、特定のレジスタ(REG1)を使用する連続命令が存在すると仮定する。第1命令がREG1に書き込み、第2命令がREG1から読み出して、REG1から読み出したデータに対して何らかの動作を実行する。第1命令に対する宛先STFタグは、第2命令がデータを読み出す適切なレジスタを特定できるように、ISQ(例えば、
図3中のISQ330)、マッパ(例えば、
図3中のマッパ320)、及びSRB(例えば、
図3中のSRB340)へとフィードバックされる。換言すれば、第1命令に対する宛先STFタグは、第2命令に対するソースSTFタグとして機能する。
【0043】
方法200は、ISUが、融合された命令ペアを発行キュー(ISQ)(例えば完全発行キュー)エントリへと書き込み得る、動作210へ続き得る。いくつかの実施形態において、融合されたスカラペアは、6つのオペランド全ての準備ができるまでISQ内に保持される場合がある。例えば、1つ又は複数のMUX(例えば、
図3からのMUX315及びMUX316)によって実行されるオペランド。オペランド転送(又はデータ転送)は、パイプラインのストールに起因して生じる性能の欠陥を制限するための、パイプライン化されたCPU内での最適化である。
【0044】
方法200は、融合されたペアがVSUへ発行される、動作212へ続き得る。いくつかの実施形態において、融合されたペアは、6つのオペランド全ての準備ができるまでVSUへ発行されない場合がある。
【0045】
いくつかの実施形態において、ISQは、偶数ITAG(融合されたペアの指標を有する)をマッパ及びISQへブロードキャストし、ITAG依存を起動し得る。
【0046】
いくつかの実施形態において、ISQ及びマッパは、偶数ITAGを偶数命令に対して比較し、偶数ITAGのLSBを反転して奇数ITAGを生成し得、当該奇数ITAGは奇数命令に対して比較するために使用される。
【0047】
方法200は、VSUが同時に両方のスカラ命令を実行する動作214へ続き得る。
【0048】
いくつかの実施形態において、融合された命令は、システム(例えば、VSU)に、物理的レジスタ(例えば、物理的レジスタファイル318)内のSTF_left及びSTF_rightの両方から情報の読み出しをさせる。融合された命令のオペランドのうちのいずれかが逆のSTFバンク(STF rightに対する左、又はSTF leftに対する右)にある場合、ロジックは命令を正しいオペランドラッチへとステアリングし得る。
【0049】
いくつかの実施形態において、スカラ結果は、STFタグ、STF tag_left、及びSTF tag_rightビットに基づいて、正しいレジスタタグ(左又は右)内に書き込まれる。いくつかの実施形態において、VSU(左及び/又は右)結果は、オペランド転送mux(例えば、転送mux314A又は314B)で、依存スカラ又は融合されたスカラペアへとバイパスされることもできる。
【0050】
いくつかの実施形態において、VSUは次に、「通常の」(例えば、特定の変数が不在の場合にそのシステムにとってデフォルトである)手続きに従って、命令を終了させ得る。
【0051】
方法200は、システムが、融合されたスカラ命令の両方の半分を一緒に完了させる、動作216へ続き得る。いくつかの実施形態において、両方の半分を一緒に完了させるということは、命令が同じサイクル中に完了されるか、結果が同時に転送されるか、結果が同じパッケージ内で転送されるか、及び/又は同時に完了されたと報告されるかであることを意味する。
【0052】
いくつかの実施形態において、融合された命令によって例外が引き起こされた場合には、完了ロジックは、融合された命令の両方の半分をフラッシュし、IDUに融合された命令を2つの融合されていない命令として再フェッチするように伝え得る。例えば、左又は右命令のいずれかを処理することがエラーを生成する場合、システムは、左又は右命令いずれかの実行が信頼できない場合がある。例外が検出される事例において、システムは、各命令を個別に処理し得る。いくつかの実施形態において、システムは、融合されていない命令の実行を、元の融合されたペアの第1半分から再開し、次に、元の融合されたペアの第2半分を再開し得る。
【0053】
いくつかの実施形態において、元の融合された命令の適切なスカラ半分に例外が適用される場合があり、適切なスカラ半分は、例外を有する命令をシステムが通常の場合に処理するように、処理される場合がある。
【0054】
図3をここで参照すると、本発明の実施形態に係る、レジスタタグデータを結合するように構成されている例示的なマイクロプロセッサ300のブロック図が図示されている。マイクロプロセッサ300は、ディスパッチレーン(Ins0)310A及び(Ins1)310B、マッパ320、発行キュー(ISQ)330、STF空きリスト325、セーブ及びリストアバッファ(SRB)340、ベクトルスカラユニット(VSU)360、左オペランドラッチ390、及び右オペランドラッチ392を含む。
図3中の様々な構成要素がスタンドアロン構成要素として示されている一方で、様々な構成要素は実際には、より大きな構成要素のサブ構成要素であり得ることが理解されるべきである。マイクロプロセッサ300は、サブ構成要素のうちの1つが、本発明の範囲から逸脱することなく別のサブ構成要素のアクションを実行するように構成され得ることもまた理解されるべきである。
【0055】
いくつかの実施形態において、左スカラ命令は、左オペランドラッチ390に提供され、右スカラ命令は、右オペランドラッチ392に提供される。各オペランドラッチは、命令(左又は右)をVSU360の左又は右の上での実行へ方向付ける場合がある。
【0056】
mux(例えば、発行mux312A、発行mux312B、転送mux314A、及び/又は転送mux314B)は、異なるストリーム間で選択し、選択されたストリームをプロセス内の更なるダウンストリームに転送し得るマルチプレクサであり得る。muxは、左又は右STFを、物理的レジスタファイル318の対応するSTF_left381又はSTF_right382側に方向付けるために使用され得る。
【0057】
命令ディスパッチユニット(IDU)(例えば、IDU102)は、命令(例えば、VSU)をディスパッチするために、2つのディスパッチレーン310A及び310Bを含む。命令ディスパッチユニットは、2つの隣り合う命令をペアへと融合する。融合された命令は、2つの命令タグ(ITAG)を有し得る。いくつかの実施形態において、第1ITAGは常に偶数ITAGである。例えば、IDU(例えば、IDU102)は最下位ビットを選択し、それを第1タグのために偶数(例えば、0)にし得る。その場合、IDUは第1ITAGを送信することだけが必要であり、これは後に最下位ビットは第2ITAGを取得するために反転される(例えば、それを奇数1にする)場合があるからである。命令ディスパッチユニットは、命令をISQ330へディスパッチする。命令ディスパッチユニットは、マッパ320へ、STFタグへマッピングされる論理レジスタを送信もする。
【0058】
命令ディスパッチユニットは、マッパ320を読み出して、プロデューサITAG及びソースSTFタグを特定する。これは例示を目的とする単純化された例であること、及び通常は1つより多くのソースレジスタが存在し、各ソースレジスタは異なるプロデューサ命令を有し得ることが理解されるべきである。
【0059】
マッパ320において、VSRプロデューサITAGは、マッパ320内のITAGと比較される。これは比較ロジックを使用してなされる。一致した位置(すなわち、プロデューサITAGがマッパ320内の命令に対するITAGと一致する位置)において、準備ができたビットは、命令によって必要とされるデータがレジスタ内に格納されていることを示すためにセット(例えばW=1にセット)される。
【0060】
ISQ330において、VSRプロデューサITAGは、ISQ330内のソースITAGと比較される。一致した位置(すなわち、プロデューサITAGがISQ330内の命令に対するソースITAGと一致する位置)において、準備ができたビットはセット(例えばW=1にセット)される。
【0061】
SRB340において、VSRプロデューサITAGは、SRB340内のITAGと比較される。一致した位置(すなわち、プロデューサITAGがSRB340内の命令に対するITAGと一致する位置)において、準備ができたビットはセット(例えばW=1にセット)される。
【0062】
いくつかの実施形態において、フラッシュリクエストは、いくつかのナンバー命令がフラッシュされることを引き起こし得る。いくつかの実施形態において、マイクロプロセッサ300は、多数のフラッシュモードを有し得る。例えば、マイクロプロセッサ300は、NTC命令が所与の回数のサイクルの間にタグを受信しなかった後に、フラッシュを実行するように構成され得る。更に又は代替的に、マイクロプロセッサ300は、それが、命令が予測された速度で実行されていない(例えば、命令がISQ330からゆっくり出ている、これは利用可能なSTFタグの不足を示し得る)と判定する場合、フラッシュを実行するように構成され得る。いくつかの実施形態において、マイクロプロセッサ300は、空きリスト内の利用可能なSTFタグの数が閾値未満であることに応答してフラッシュを実行するように構成され得る。いくつかの実施形態において、マイクロプロセッサ300は融合された命令のうちの1つが例外を引き起こす場合に、命令をフラッシュし得る。いくつかの実施形態において、マイクロプロセッサ300は、フラッシュを実行するか否かを判定するとき、上記の組み合わせを(他の考慮事項を含めて、又はそれらを含めずに)考慮し得る。フラッシュのタイプ(例えば、フルフラッシュ対ミニハングバスター)は、どのフラッシュ基準が満たされたか、及び/又は特定された問題の程度に基づいて判定され得る。
【0063】
フラッシュの後、データはSRB340からマッパ320へ読み出され、マイクロプロセッサ300の以前の状態をリストアし得る。
【0064】
例示的な実施形態において、システム(例えば、マイクロプロセッサシステム100)は、
図4中に示されるようなコンピュータシステム01を含み、コンピュータシステム01は上記で説明された機能/プロセスのうちの1つ又は複数を実行し得る。コンピュータシステム01は、コンピュータシステムの1つの例に過ぎず、本発明の実施形態の使用又は機能の範囲に関するいかなる制限も提示することを意図するものではない。それにも関わらず、コンピュータシステム01は本発明の機能/動作のうちのいずれかを実行するように実装されること、及び/又はそれを実行することが可能である。
【0065】
コンピュータシステム01は、コンピュータシステム/サーバ12を含み、当該コンピュータシステム/サーバ12は、多数の他の汎用又は専用コンピューティングシステム環境又は構成とともに動作可能である。コンピュータシステム/サーバ12とともに使用するために好適であり得る周知のコンピューティングシステム、環境、及び/又は構成の例は、限定されないが、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラマブルコンシューマ電子機器、ネットワークPC、ミニコンピュータシステム、メインフレームコンピュータシステム、及び、上記のシステム又はデバイスのうちのいずれかを含む分散型クラウドコンピューティング環境を含む。
【0066】
コンピュータシステム/サーバ12は、プログラムモジュールなどの、コンピュータシステムによって実行されるコンピュータシステム実行可能命令の一般的な文脈において説明され得る。概して、プログラムモジュールは特定のタスクを実行するか、又は特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、及び/又はデータ構造を含み得る。コンピュータシステム/サーバ12は、通信ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実行される分散型クラウドコンピューティング環境において実用化することができる。分散型クラウドコンピューティング環境では、プログラムモジュールは、メモリストレージデバイスを含むローカルコンピュータシステム記憶媒体及びリモートコンピュータシステム記憶媒体の両方の中に位置し得る。
【0067】
図4中に示されるように、コンピュータシステム01におけるコンピュータシステム/サーバ12は、汎用コンピューティングデバイスの形態で示される。コンピュータシステム/サーバ12の構成要素は、限定されないが、1つ又は複数のプロセッサ又は処理ユニット16、システムメモリ28、及びシステムメモリ28を含む様々なシステム構成要素をプロセッサ16に結合するバス18を含み得る。
【0068】
バス18は、複数のタイプのバス構造のうちのいずれかのうちの1つ又は複数を表し、メモリバス又はメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、及び様々なバスアーキテクチャのうちのいずれかを使用するプロセッサ又はローカルバスを含む。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダードアソシエーション(VESA)ローカルバス、及びペリフェラルコンポーネントインターコネクト(PCI)バスを含む。
【0069】
コンピュータシステム/サーバ12は、通常、様々なコンピュータシステム可読媒体を含む。そのような媒体は、コンピュータシステム/サーバ12によってアクセス可能である任意の利用可能な媒体であり得、揮発性及び不揮発性媒体の両方のリムーバブル及び非リムーバブルの媒体を含む。
【0070】
システムメモリ28は、ランダムアクセスメモリ(RAM)30及び/又はキャッシュメモリ32など、揮発性メモリの形態のコンピュータシステム可読媒体を含み得る。コンピュータシステム/サーバ12は、他のリムーバブル/非リムーバブルの、揮発性/不揮発性のコンピュータシステム記憶媒体を更に含むことができる。例としてのみ言うと、非リムーバブルな不揮発性の磁気媒体(図示せず、通常「ハードドライブ」と称される)からの読み出し及びそれへの書き込みのためのストレージシステム34を設けることができる。図示していないが、リムーバブルな不揮発性の磁気ディスク(例えば、「フロッピーディスク」)からの読み出し及びそれへの書き込みのための磁気ディスクドライブ、及び、CD-ROM、DVD-ROM又は他の光学媒体などのリムーバブルな不揮発性の光学ディスクからの読み出し又はそれへの書き込みのための光学ディスクドライブを設けることができる。そのような事例において、各々は1つ又は複数のデータ媒体インターフェースによってバス18へ接続することができる。下記で更に示され説明されるように、メモリ28は、本発明の実施形態の機能/動作を実行するように構成されたプログラムモジュールのセット(例えば、少なくとも1つ)を有する、少なくとも1つのプログラム製品を含み得る。
【0071】
プログラム/ユーティリティ40は、プログラムモジュール42のセット(少なくとも1つ)を有し、制限ではなく例として、メモリ28内に格納され得る。例示的なプログラムモジュール42は、オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータを含み得る。オペレーティングシステム、1つ又は複数のアプリケーションプログラム、他のプログラムモジュール、及びプログラムデータの各々、又はこれらの何らかの組み合わせは、ネットワーキング環境の実装を含み得る。プログラムモジュール42は概して、本発明の実施形態の機能及び/又は方法を実行する。
【0072】
コンピュータシステム/サーバ12は、キーボード、ポインティングデバイス、ディスプレイ24、ユーザがコンピュータシステム/サーバ12と対話することを可能にする1つ又は複数のデバイス、及び/又は、コンピュータシステム/サーバ12が1つ又は複数の他のコンピューティングデバイスと通信することを可能にする任意のデバイス(例えば、ネットワークカード、モデムなど)などの1つ又は複数の外部デバイス14とも通信し得る。そのような通信は入力/出力(I/O)インターフェース22を介して生じ得る。更になお、コンピュータシステム/サーバ12は、ローカルエリアネットワーク(LAN)、一般的なワイドエリアネットワーク(WAN)、及び/又はパブリックネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと、ネットワークアダプタ20を介して通信することができる。図示されるように、ネットワークアダプタ20は、バス18を介してコンピュータシステム/サーバ12の他の構成要素と通信する。図示していないが、他のハードウェア構成要素及び/又はソフトウェア構成要素は、コンピュータシステム/サーバ12と併せて使用され得ることが理解されるべきである。例は、限定されないが、下記を含む:マイクロコード、デバイスドライバ、冗長処理ユニット、外部ディスクドライブアレイ、RAIDシステム、テープドライブ、及びデータアーカイブストレージシステム。
【0073】
本発明は、任意の可能な技術的詳細レベルで統合化されたシステム、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(又は複数のコンピュータ可読記憶媒体)を含み得る。
【0074】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持及び格納し得る有形デバイスであり得る。コンピュータ可読記憶媒体は、限定されないが、例えば、電子ストレージデバイス、磁気ストレージデバイス、光ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又は上述したものの任意の好適な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasable programmable read-only memory又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM:static random access memory)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタルバーサタイルディスク(DVD:digital versatile disk)、メモリスティック、フロッピーディスク、命令が記録されているパンチカード又は溝の中の隆起構造などの機械的にエンコードされるデバイス、及び上述したものの任意の好適な組み合わせを含む。本明細書において使用される場合、コンピュータ可読記憶媒体自体は、電波又は他の自由伝搬する電磁波、導波路又は他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又は、ワイヤを介して伝送される電気信号などの一時的な信号それ自体としてみなされるものではない。
【0075】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスに、又は、ネットワーク、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は無線ネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを有し得る。各コンピューティング/処理デバイス内のネットワークアダプタカード又はネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体内での格納のためにコンピュータ可読プログラム命令を転送する。
【0076】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は、Smalltalk(登録商標)、C++又はそれらに類するオブジェクト指向プログラミング言語など、及び、「C」プログラミング言語などの手続き型プログラミング言語又は同様のプログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェアパッケージとして、完全にユーザのコンピュータ上で実行すること、部分的にユーザのコンピュータ上で実行することができ、部分的にユーザのコンピュータ上で実行し部分的にリモートコンピュータ上で実行すること、又は、完全にリモートコンピュータ又はサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータが、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、又はその接続が、(例えば、インターネットサービスプロバイダを使用するインターネットを介して)外部コンピュータに対して行われ得る。いくつかの実施形態において、本発明の態様を実行するために、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)、又はプログラマブルロジックアレイ(PLA:programmable logic array)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行し得る。
【0077】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート図及び/又はブロック図を参照して説明されている。フローチャート図及び/又はブロック図の各ブロック及び、フローチャート図及び/又はブロック図の中のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【0078】
これらのコンピュータ可読プログラム命令は、マシンを生成するために汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供され得、その結果コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するための手段を作成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置及び/又は他のデバイスに特定の方式で機能するように指示できるコンピュータ可読記憶媒体内に格納され得、その結果、その中に格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製品を備える。
【0079】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上へロードされて、一連の動作段階をコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させ、コンピュータ実装プロセスを生成してもよく、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令は、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作を実装する。
【0080】
図におけるフローチャート及びブロック図は、本発明の様々な実施形態による、システム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を図示する。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む命令のモジュール、セグメント、又は一部を表し得る。いくつかの代替的な実装形態において、ブロック内に記されている機能は、図面中に記されている順序とは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行され得るか、又は、関連する機能に応じてブロックが逆の順序で実行されることもあり得る。ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図におけるブロックの組み合わせは、指定された機能又は動作を実行する、又は専用ハードウェア及びコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムにより実装され得ることにも留意されたい。
【0081】
本発明の様々な実施形態の説明は、例示の目的で提示されたが、網羅的であること、又は、開示された実施形態に限定されることが意図するものではない。説明された実施形態の範囲から逸脱することなく、多くの修正及び変形が、当業者には明らかになるであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、又は市場で見られる技術を越える技術的改善を説明するため、又は他の当業者が本明細書に開示される実施形態を理解できるようにするために選択されたものである。
【手続補正書】
【提出日】2024-04-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリ、及び
前記メモリと通信状態にあるプロセッサ
を備え、前記プロセッサは:
2つの命令が組み合わせられ得ることを、前記プロセッサの処理能力及び前記命令のサイズに基づいて判定すること;
前記2つの命令をペアへと融合すること;
単一のレジスタタグを用いて、前記2つの命令をマッピングすること;
前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込むこと;
前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込むこと;
前記融合された命令ペアを発行キューへと書き込むこと;
前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行すること;及び
前記2つの命令を実行すること
を備えるプロセスを実行するように構成されている、システム。
【請求項2】
前記判定することは、前
記ベクトルスカラ変換ユニットの前記処理能力及び前記命令の前記サイズに基づく、請求項1に記載のシステム。
【請求項3】
前記2つの命令は隣り合う命令である、請求項1に記載のシステム。
【請求項4】
前記プロセスは更に:
物理的レジスタ内の両方のレジスタタグからの情報を読み出すこと
を備える、請求項1に記載のシステム。
【請求項5】
前記プロセスは更に:
前記融合された命令のオペランドを、前記融合された命令の位置に基づいて、1つ又は複数の正しいオペランドラッチにステアリングすること
を備える、請求項4に記載のシステム。
【請求項6】
前記プロセスは更に:
前記融合された命令に対するスカラ結果を、前記2つのレジスタタグに基づいて、正しいレジスタタグへ書き込むこと
を備える、請求項5に記載のシステム。
【請求項7】
前記2つの命令は、2つのITAGを有し、
前記2つのITAGは最下位ビットを除いて同じであり;
前記最下位ビットは前記第1命令に対して偶数であり;
前記最下位ビットは前記第2命令に対して奇数である
請求項1に記載のシステム。
【請求項8】
2つの命令が組み合わせられ得ることを
、プロセッサの処理能力及び前記命令のサイズに基づいて判定する段階;
前記2つの命令をペアへと融合する段階;
単一のレジスタタグを用いて、前記2つの命令をマッピングする段階;
前記レジスタタグが前記2つの命令の第1命令に対するものであることを示すビットとともに、前記レジスタタグをマッパへと書き込む段階;
前記レジスタタグが前記2つの命令の第2命令に対するものであることを示すビットとともに、前記レジスタタグを前記マッパへと書き込む段階;
前記融合された命令ペアを発行キューへと書き込む段階;
前記融合された命令ペアをベクトルスカラ変換ユニット(VSU)へ発行する段階;及び
前記2つの命令を実行する段階
を備える方法。
【請求項9】
前記判定する段階は、前
記ベクトルスカラ変換ユニットの前記処理能力及び前記命令の前記サイズに基づく、請求項8に記載の方法。
【請求項10】
前記2つの命令は隣り合う命令である、請求項8に記載の方法。
【請求項11】
前
記方法は更に:
物理的レジスタ内の両方のレジスタタグからの情報を読み出す段階
を備える、請求項8に記載の方法。
【請求項12】
前
記方法は更に:
前記融合された命令のオペランドを、前記融合された命令の位置に基づいて、1つ又は複数の正しいオペランドラッチにステアリングする段階
を備える、請求項11に記載の方法。
【請求項13】
前
記方法は更に:
前記融合された命令に対するスカラ結果を、前記2つのレジスタタグに基づいて、正しいレジスタタグへ書き込む段階
を備える、請求項12に記載の方法。
【請求項14】
前記2つの命令は、2つのITAGを有し、
前記2つのITAGは最下位ビットを除いて同じであり;
前記最下位ビットは前記第1命令に対して偶数であり;
前記最下位ビットは前記第2命令に対して奇数である
請求項8に記載の方法。
【請求項15】
プロセッサに、請求項8から13のいずれか一項に記載の方法
を実行させるた
めのコンピュータプログラ
ム。
【国際調査報告】