JP6020428B2 - ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 - Google Patents
ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 Download PDFInfo
- Publication number
- JP6020428B2 JP6020428B2 JP2013248862A JP2013248862A JP6020428B2 JP 6020428 B2 JP6020428 B2 JP 6020428B2 JP 2013248862 A JP2013248862 A JP 2013248862A JP 2013248862 A JP2013248862 A JP 2013248862A JP 6020428 B2 JP6020428 B2 JP 6020428B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- executed
- vector length
- vector
- 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.)
- Active
Links
Description
上記論理レジスタに対してライトした最後の命令のベクトル長を記憶する手段と、実行する命令のベクトル長と上記論理レジスタに対してライトした最後の命令の上記ベクトル長の大小を比較する手段と、ベクトル長の上記大小比較結果に従って、デスティネーションレジスタに対する上記物理レジスタの新規割り当てと演算幅とを制御する手段と、ベクトル長の上記大小比較結果に従って、ソースレジスタに対する上記物理レジスタと上記論理レジスタとの依存関係を生成する手段と、ベクトル長の上記大小比較結果と上記実行する命令がマスク演算であるか否かに従って、上記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段とを有する。
上記論理レジスタに対してライトした最後の命令のベクトル長を記憶し、実行する命令のベクトル長と上記論理レジスタに対してライトした最後の命令の上記ベクトル長の大小を比較し、ベクトル長の上記大小比較結果に従って、デスティネーションレジスタに対する上記物理レジスタの新規割り当てと演算幅とを制御し、ベクトル長の上記大小比較結果に従って、ソースレジスタに対する上記物理レジスタと上記論理レジスタとの依存関係を生成し、ベクトル長の上記大小比較結果と上記実行する命令がマスク演算であるか否かに従って、上記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する。
図1は、本発明の第一実施形態によるベクトルプロセッサを用いたベクトル計算機の概略構成を示すブロック図である。図3Aは、論理レジスタ管理テーブルの第一状態を示す図である。図4Aは、物理レジスタ管理テーブルの第一状態を示す図である。図8は、命令毎の物理レジスタの管理テーブルの一例を示す図である。
1つの論理ベクトルレジスタに対し最大2つの物理レジスタを割り当てる。さらに、論理レジスタをライトした最後の命令のベクトル長を記憶し管理を行う。例えば、論理レジスタV0に対して物理レジスタVR0及びVR1を割り当てて、ライトした命令のベクトル長をVL0としたとき、V0=(VR0、VR1、VL0)と記述することとする。ここで、VR0はVL0以内の演算部分、VR1はVL0より大きい非演算部分を示す。
ベクトルレジスタへのライト命令が必要な命令では、現在のデスティネーションレジスタV0に割り当てられている物理レジスタ(VR0、VR1、VL0)に対して、新たな物理レジスタVRnを割り当てる。実行する命令のベクトル長VLnとベクトル長VL0の大小比較により、レジスタの割り当てと命令実行時の演算幅が異なる。
VLn=VL0の場合:V0に(VRn、VR1、VLn)を割り当てて、演算幅はVLnで命令を実行する。
VLn>VL0の場合:V0に(VRn、VR1、VLn)を割り当てて、演算幅はVLnで命令を実行する。
VLn<VL0の場合:V0に(VRn、VRn、0)を割り当てて、演算幅は最大ベクトル長で命令を実行する。
演算に使用するソースレジスタV1に割り当てられている物理レジスタをリードする場合を説明する。例えば、演算に使用するソースレジスタV1に対して物理レジスタVR2とVR3を割り当てて、リードした命令のベクトル長をVL1としたとき、V1=(VR2、VR3、VL1)と記述することとする。演算に使用するソースレジスタV2に割り当てられている物理レジスタをリードする場合に対しても、以下と同様の規則になる。
VLn=VL1の場合:VR2に対して依存関係を生成する。
VLn>VL1の場合:VR2、VR3に対して依存関係を生成する。
VLn<VL1の場合:VR2に対して依存関係を生成する。
本実施形態のレジスタリネーミングではマスク付き演算とベクトル長を考慮するので、特定のケースでデスティネーションレジスタの依存関係生成が必要になる。依存関係が必要になるケースは、マスク演算あり命令と、マスク演算なし命令かつVLn<VL0の場合である。マスク演算ではマスク=0になっているデスティネーションレジスタの非更新要素を保持する必要がある。そのため、元のデスティネーションレジスタからデータコピーを行いデータの整合をとる必要があり、デスティネーションレジスタ(V0)に対する依存関係生成が常に必要になる。VLn<VL0の場合は新規に割り当てた物理レジスタに全てのデータをまとめるために、マスク付き演算の有無にかかわらず依存関係生成が必要になる。マスク付き演算あり・なし両方に対して詳細に場合分けすることで不要な依存関係の生成を防ぎ、最大の命令発行性能が得られる。
VLn=VL0の場合:VR0に対して依存関係を生成する。マスク演算あり命令が対象である。
VLn>VL0の場合:VR0、VR1に対して依存関係を生成する。マスク演算あり命令が対象である。
VLn<VL0の場合:VR0、VR1に対して依存関係を生成する。マスク演算あり命令及びマスク演算なし命令の両方が対象である。
図1の命令供給部110は、命令を信号線120を介して命令発行制御部111へ発行し、信号線121を介してレジスタリネーミング制御部112へ発行する。レジスタリネーミング制御部112は、図3Aに示した論理レジスタ管理テーブルと図4Aに示した物理レジスタ管理テーブルを有する。本実施例では、ベクトルレジスタ群210は論理レジスタが8個(V0〜V7)、物理レジスタが32個(VR0〜VR31)、マスクレジスタ1個から構成されるとする。図3Aに示したように、1つの論理ベクトルレジスタに対し最大2つの物理レジスタを割り当てる。さらに、論理レジスタをライトした最後の命令のベクトル長を記憶し管理を行う。例えば、論理レジスタV0に対して物理レジスタVR0とVR1を割り当て論理レジスタをライトした最後の命令のベクトル長をVL0とすると、V0=(VR0、VR1、VL0)と記述する。ここで、VR0はVL0以内の演算部分、VR1はVL0より大きい非演算部分を表す。
図5Aは、マスク演算ありの場合の、ベクトル長の違いによるデスティネーションレジスタの更新の第一例を示す概念図である。図5Bは、マスク演算ありの場合の、ベクトル長の違いによるデスティネーションレジスタの更新の第二例を示す概念図である。図5Cは、マスク演算ありの場合の、ベクトル長の違いによるデスティネーションレジスタの更新の第三例を示す概念図である。
VLn=VLwの場合:Vdに(VRn、VRb、VLn)を割り当てて、演算幅はVLnで命令を実行する。
VLn>VLwの場合:Vdに(VRn、VRb、VLn)を割り当てて、演算幅はVLnで命令を実行する。
VLn<VLwの場合:Vdに(VRn、VRn、0)を割り当てて、演算幅は最大ベクトル長で命令を実行する。
図7Aは、ベクトル長の違いによるソースレジスタのデータリードの第一例を示す概念図である。図7Bは、ベクトル長の違いによるソースレジスタのデータリードの第二例を示す概念図である。図7Cは、ベクトル長の違いによるソースレジスタのデータリードの第三例を示す概念図である。
VLn=VLsの場合:VRcに対して依存関係を生成する。
VLn>VLsの場合:VRc、VRdに対して依存関係を生成する。
VLn<VLsの場合:VRcに対して依存関係を生成する。
レジスタリネーミング制御部112に発行され、実行する命令がベクトル加算命令のようにレジスタへのライトを行う命令の場合に、本実施例のレジスタリネーミングではベクトル長とマスク付き演算を考慮するため特定のケースでデスティネーションレジスタの依存関係生成が必要になる。
VLn=VLwの場合:VRaに対して依存関係を生成する。マスク演算あり命令が対象である。
VLn>VLwの場合:VRa、VRbに対して依存関係を生成する。マスク演算あり命令が対象である。
VLn<VLwの場合:VRa、VRbに対して依存関係を生成する。マスク演算あり命令及びマスク演算なし命令の両方が対象である。
命令発行制御部111は図8に示した命令毎の物理レジスタ管理テーブルにある各物理レジスタのデータ準備が整ったことを示すレディフラグが全て1になった場合に、信号線140を介して命令実行制御部113へ命令を発行する。命令実行制御部113は命令毎の物理レジスタ管理テーブルの情報に従って信号線150を介して、演算部200の制御を行う。
(1)ベクトル命令でマスク付き演算の有無にかかわらずかつベクトル長が変化しても、レジスタリネーミングができる。
(2)実行する命令のベクトル長VLnと論理レジスタをライトした最後の命令のベクトル長VLwの大小比較とマスク付き演算の有無という単純な規則で、レジスタリネーミングにおけるデスティネーションレジスタの割り当てとレジスタ依存関係とを生成できる。
(3)上記(2)のベクトル長を比較した結果としてレジスタ間のデータコピーが不要な場合は、論理レジスタと物理レジスタの対応情報のアドレスを変化させないため、レジスタリネーミングを行ってもレジスタ間の不要なコピー動作を削減し省電力化できる。
例えば、プログラムにおいてループ部分の配列に対して演算を実行する場合を考えると、1万回ループする場合に1万=256×39+16で表せるので最大ベクトル長=256で39回命令実行とベクトル長=16で最後或いは最初の1回命令実行の組み合わせになる。そのため、ベクトル長はある程度の回数変化せずに動作するため本機能は非常に有効である。
(4)ベクトル命令のレジスタリネーミングに使用するデータ格納部分に専用の回路が不要で、一般的なプロセッサで採用されているRFやSRAMを使用できる。
(5)必要最低限のレジスタ依存関係のみ生成するため、レジスタリネーミングによる不要な命令発行制限が発生しない。
(6)1個の論理レジスタに対して最大2個の物理レジスタの対応情報だけを制御情報として使用する。これにより、ベクトルレジスタのような1個の論理レジスタの中に複数のデータ要素を持つ場合に、レジスタリネーミング制御部のゲート量を節約できる。例えば、最大ベクトル長nの場合に各データの要素毎に制御情報を持つと、1つの論理レジスタに対してn個の物理レジスタの対応情報が必要となる。この場合と比較すると、本発明の本実施形態では、レジスタの対応情報は1対2で固定なので、最大ベクトル長が2より大きい場合に効率的になる。
(付記1)ベクトル演算を実行するベクトルプロセッサのベクトルレジスタリネーミング制御方式であって、前記ベクトルレジスタは、1つの論理レジスタに最大2つの物理レジスタが割り当てられるものであり、前記論理レジスタに対してライトした最後の命令のベクトル長を記憶する手段と、実行する命令のベクトル長と前記論理レジスタに対してライトした最後の命令の前記ベクトル長の大小を比較する手段と、ベクトル長の前記大小比較結果に従って、デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御する手段と、ベクトル長の前記大小比較結果に従って、ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成する手段と、ベクトル長の前記大小比較結果と前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段とを有する、ベクトルレジスタリネーミング制御方式。
(付記2)前記制御する手段は、前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てて、前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てる、付記1に記載のベクトルレジスタリネーミング制御方式。
(付記3)前記制御する手段は、前記ソースレジスタに対してライトした最後の命令のベクトル長と、実行する命令のベクトル長とが等しいとき又は前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てて、前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てる、付記1に記載のベクトルレジスタリネーミング制御方式。
(付記4)演算に使用するソースレジスタに2つの物理レジスタが割り当てられており、前記物理レジスタをリードする場合には、
前記生成する手段は、前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記2つの物理レジスタのうちの1つの物理レジスタに対して依存関係を生成し、前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記2つの物理レジスタの両方に対して依存関係を生成する、付記1乃至付記3のいずれか一つに記載のベクトルレジスタリネーミング制御方式。
(付記5)前記生成する手段は、マスク演算を含む命令かつ、前記デスティネーションレジスタをリードした最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、新たに割り当てられた物理レジスタに対して依存関係を生成し、前記デスティネーションレジスタをリードした最後の命令のベクトル長より、実行する命令のベクトル長が小さいときには、新たに割り当てられた物理レジスタに対して依存関係を生成する、付記1乃至付記4のいずれか一つに記載のベクトルレジスタリネーミング制御方式。
(付記6)1つの論理レジスタに最大2つの物理レジスタが割り当てられるベクトルレジスタと、前記ベクトルレジスタが保持する内容について演算を実行する演算器と、前記論理レジスタに対してライトした最後の命令のベクトル長を記憶する手段と、実行する命令のベクトル長と前記論理レジスタに対してライトした最後の命令の前記ベクトル長の大小を比較する手段と、ベクトル長の前記大小比較結果に従って、デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御する手段と、ベクトル長の前記大小比較結果に従って、ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成する手段と、ベクトル長の前記大小比較結果と前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段とを有する、ベクトル演算を実行するベクトルプロセッサ。
(付記7)前記制御する手段は、前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てると共に、前記演算器は、演算幅を前記実行する命令のベクトル長として命令を実行し、
前記制御する手段は、前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てると共に、前記演算器は、演算幅を最大ベクトル長として命令を実行する、付記6に記載のベクトルプロセッサ。
(付記8)前記制御する手段は、前記ソースレジスタに対してライトした最後の命令のベクトル長と、実行する命令のベクトル長とが等しいとき又は前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てると共に、前記演算器は、演算幅を前記実行する命令のベクトル長として命令を実行し、
前記制御する手段は、前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てると共に、前記演算器は、演算幅を最大ベクトル長として命令を実行する、付記6に記載のベクトルプロセッサ。
(付記9)演算に使用するソースレジスタに2つの物理レジスタが割り当てられており、前記物理レジスタをリードする場合には、
前記生成する手段は、前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記2つの物理レジスタのうちの1つの物理レジスタに対して依存関係を生成し、前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記2つの物理レジスタの両方に対して依存関係を生成する、付記6乃至付記8のいずれか一つに記載のベクトルプロセッサ。
(付記10)前記生成する手段は、マスク演算を含む命令かつ、前記デスティネーションレジスタをリードした最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、新たに割り当てられた物理レジスタに対して依存関係を生成し、前記デスティネーションレジスタをリードした最後の命令のベクトル長より、実行する命令のベクトル長が小さいときには、新たに割り当てられた物理レジスタに対して依存関係を生成する、付記6乃至付記9のいずれか一つに記載のベクトルプロセッサ。
(付記11)ベクトル演算を実行するベクトルプロセッサのベクトルレジスタリネーミング制御方法であって、前記ベクトルレジスタは、1つの論理レジスタに最大2つの物理レジスタが割り当てられるものであり、前記論理レジスタに対してライトした最後の命令のベクトル長を記憶し、実行する命令のベクトル長と前記論理レジスタに対してライトした最後の命令の前記ベクトル長の大小を比較し、ベクトル長の前記大小比較結果に従って、デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御し、ベクトル長の前記大小比較結果に従って、ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成し、ベクトル長の前記大小比較結果と前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する、ベクトルレジスタリネーミング制御方法。
(付記12)前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てて、
前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てる、付記11に記載のベクトルレジスタリネーミング制御方法。
(付記13)前記ソースレジスタに対してライトした最後の命令のベクトル長と、実行する命令のベクトル長とが等しいとき又は前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てて、
前記ソースレジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタに新たな物理レジスタを割り当てる、付記11に記載のベクトルレジスタリネーミング制御方法。
(付記14)演算に使用するソースレジスタに2つの物理レジスタが割り当てられており、前記物理レジスタをリードする場合には、
前記論理レジスタに対してライトした最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき又は前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記2つの物理レジスタのうちの1つの物理レジスタに対して依存関係を生成し、前記論理レジスタに対してライトした最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記2つの物理レジスタの両方に対して依存関係を生成する、付記11乃至付記13のいずれか一つに記載のベクトルレジスタリネーミング制御方法。
(付記15)マスク演算を含む命令かつ、前記デスティネーションレジスタをリードした最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、新たに割り当てられた物理レジスタに対して依存関係を生成し、前記デスティネーションレジスタをリードした最後の命令のベクトル長より、実行する命令のベクトル長が小さいときには、新たに割り当てられた物理レジスタに対して依存関係を生成する、付記11乃至付記14のいずれか一つに記載のベクトルレジスタリネーミング制御方法。
10 ベクトルプロセッサ
20 メインメモリ
100 命令制御部
110 命令供給部
111 命令発行制御部
112 レジスタリネーミング制御部
113 命令実行制御部
120、121、130、140、141、142、150、220、221、222、223 信号線
200 演算部
210 ベクトルレジスタ群
211 リード選択部
212 演算器群
213 ライト選択部
Claims (9)
- ベクトル演算を実行するベクトルプロセッサのベクトルレジスタリネーミング制御方式であって、前記ベクトルレジスタは、1つの論理レジスタに最大2つの物理レジスタが割り当てられるものであり、
前記論理レジスタに対するライトを生じさせた最後の命令のベクトル長を記憶する手段と、
実行する命令のベクトル長と前記論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長の大小を比較する手段と、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果に従って、前記デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御する手段と、
実行する命令のベクトル長と、実行する命令にとってのソースレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果に従って、前記ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成する手段と、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果と、前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段とを有する、ベクトルレジスタリネーミング制御方式。 - 前記制御する手段は、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき、又は、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタである前記論理レジスタに対して、新たな物理レジスタを割り当てるとともに、当該論理レジスタに割り当てられていた2つの物理レジスタのうち、当該論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長を超える部分のデータを保持していたほうの物理レジスタを割り当て、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタである前記論理レジスタに新たな物理レジスタを割り当てるとともに、それ以外の物理レジスタは割り当てない、請求項1に記載のベクトルレジスタリネーミング制御方式。 - 演算に使用するソースレジスタである論理レジスタに2つの物理レジスタが割り当てられており、前記物理レジスタをリードする場合には、
前記ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成する手段は、
実行する命令にとってのソースレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき、又は、実行する命令にとってのソースレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記2つの物理レジスタのうちの前記最後の命令のベクトル長に含まれる部分のデータを保持していたほうの物理レジスタに対して依存関係を生成し、
実行する命令にとってのソースレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記2つの物理レジスタの両方に対して依存関係を生成する、請求項1又は請求項2に記載のベクトルレジスタリネーミング制御方式。 - 前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段は、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタのうち、前記最後の命令のベクトル長に含まれる部分のデータを保持していたほうの物理レジスタに対して依存関係を生成し、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が大きいときには、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成し、
実行する命令がマスク演算あり命令またはマスク演算なし命令のいずれであっても、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が小さい場合には、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成する、請求項1乃至請求項3のいずれか一項に記載のベクトルレジスタリネーミング制御方式。 - 1つの論理レジスタに最大2つの物理レジスタが割り当てられるベクトルレジスタと、
前記ベクトルレジスタが保持する内容について演算を実行する演算器と、
前記論理レジスタに対するライトを生じさせた最後の命令のベクトル長を記憶する手段と、
実行する命令のベクトル長と前記論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長の大小を比較する手段と、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果に従って、デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御する手段と、
実行する命令のベクトル長と、実行する命令にとってのソースレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との前記大小比較結果に従って、前記ソースレジスタに対する前記物理レジスタと前記論理レジスタとの依存関係を生成する手段と、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果と、前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段とを有する、ベクトル演算を実行するベクトルプロセッサ。 - 前記制御する手段は、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき、又は、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、前記デスティネーションレジスタである前記論理レジスタに対して、新たな物理レジスタを割り当てるとともに、当該論理レジスタに割り当てられていた2つの物理レジスタのうち、当該論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長を超える部分のデータを保持していたほうの物理レジスタを割り当て、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、前記デスティネーションレジスタである前記論理レジスタに新たな物理レジスタを割り当てるとともに、それ以外の物理レジスタは割り当てず、
前記演算器は、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長と、実行する命令のベクトル長とが等しいとき、又は、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が大きいときには、演算幅を前記実行する命令のベクトル長として命令を実行し、
実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長より、実行する命令のベクトル長が小さいときには、演算幅を最大ベクトル長として命令を実行する、請求項5に記載のベクトルプロセッサ。 - 前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段は、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタのうち、前記最後の命令のベクトル長に含まれる部分のデータを保持していたほうの物理レジスタに対して依存関係を生成し、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が大きいときには、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成し、
実行する命令がマスク演算あり命令またはマスク演算なし命令のいずれであっても、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が小さい場合には、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成する、請求項5又は請求項6に記載のベクトルプロセッサ。 - 前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する手段は、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長と、実行する命令のベクトル長が等しいときには、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタのうち、前記最後の命令のベクトル長に含まれる部分のデータを保持していたほうの物理レジスタに対して依存関係を生成し、
実行する命令がマスク演算あり命令であり、かつ、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が大きい場合には、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成し、
実行する命令がマスク演算あり命令またはマスク演算なし命令のいずれであっても、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長よりも、実行する命令のベクトル長が小さい場合には、実行する命令にとってのデスティネーションレジスタである論理レジスタに割り当てられていた2つの物理レジスタの両方に対して依存関係を生成する、請求項5乃至請求項7のいずれか一項に記載のベクトルプロセッサ。 - ベクトル演算を実行するベクトルプロセッサのベクトルレジスタリネーミング制御方法であって、前記ベクトルレジスタは、1つの論理レジスタに最大2つの物理レジスタが割り当てられるものであり、
前記論理レジスタに対するライトを生じさせた最後の命令のベクトル長を記憶し、
実行する命令のベクトル長と前記論理レジスタに対するライトを生じさせた最後の命令の前記ベクトル長の大小を比較し、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果に従って、前記デスティネーションレジスタに対する前記物理レジスタの新規割り当てと演算幅とを制御し、
実行する命令のベクトル長と、実行する命令にとってのデスティネーションレジスタである論理レジスタに対するライトを生じさせた最後の命令のベクトル長との大小比較結果と、前記実行する命令がマスク演算であるか否かに従って、前記デスティネーションレジスタの非更新部分のデータコピーを行うための依存関係を生成する、ベクトルレジスタリネーミング制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248862A JP6020428B2 (ja) | 2013-12-02 | 2013-12-02 | ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013248862A JP6020428B2 (ja) | 2013-12-02 | 2013-12-02 | ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015106325A JP2015106325A (ja) | 2015-06-08 |
JP6020428B2 true JP6020428B2 (ja) | 2016-11-02 |
Family
ID=53436370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013248862A Active JP6020428B2 (ja) | 2013-12-02 | 2013-12-02 | ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6020428B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6891596B2 (ja) * | 2017-03-30 | 2021-06-18 | 日本電気株式会社 | プロセッサ |
JP6705473B2 (ja) * | 2018-06-22 | 2020-06-03 | 日本電気株式会社 | 演算装置及び演算システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006268168A (ja) * | 2005-03-22 | 2006-10-05 | Nec Computertechno Ltd | ベクトル命令管理回路、ベクトル処理装置、ベクトル命令管理方法、ベクトル処理方法、ベクトル命令管理プログラム、および、ベクトル処理プログラム |
JP5145659B2 (ja) * | 2006-06-19 | 2013-02-20 | 日本電気株式会社 | ベクトルリネーミング方式およびベクトル型計算機 |
-
2013
- 2013-12-02 JP JP2013248862A patent/JP6020428B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015106325A (ja) | 2015-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376097B (zh) | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 | |
CN110032395B (zh) | 用于提高资源利用率的统一寄存器文件 | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
US10127043B2 (en) | Implementing conflict-free instructions for concurrent operation on a processor | |
US10355975B2 (en) | Latency guaranteed network on chip | |
JP2004158018A (ja) | レジスタ・リネーム回路の半導体フロアプランのレイアウト・システム | |
CN102124443A (zh) | 在单指令多数据(simd)数据处理器中提供扩展寻址模式 | |
CN107851013B (zh) | 数据处理装置和方法 | |
US10659396B2 (en) | Joining data within a reconfigurable fabric | |
JP6551751B2 (ja) | マルチプロセッサ装置 | |
JP6891596B2 (ja) | プロセッサ | |
JP6020428B2 (ja) | ベクトルレジスタリネーミング制御方式、ベクトルプロセッサ、及びベクトルレジスタリネーミング制御方法 | |
TWI754310B (zh) | 純函數語言神經網路加速器系統及電路 | |
JP5419134B2 (ja) | ベクトルプロセッサ及びベクトル命令発行方法 | |
CN111240745A (zh) | 交叉执行的增强型标量向量双管线架构 | |
US9477628B2 (en) | Collective communications apparatus and method for parallel systems | |
JP5145659B2 (ja) | ベクトルリネーミング方式およびベクトル型計算機 | |
JP4444305B2 (ja) | 半導体装置 | |
CN114327635A (zh) | 用于处理器的非对称执行端口和分配宽度的可缩放端口绑定的方法、系统和装置 | |
JP7383390B2 (ja) | 情報処理ユニット、情報処理装置、情報処理方法及びプログラム | |
US20190317762A1 (en) | Arithmetic processing unit and control method for arithmetic processing unit | |
JP7078380B2 (ja) | 命令制御装置、命令制御方法およびプログラム | |
JP2006506727A (ja) | コピーレジスタファイルを有するvliw | |
KR102644951B1 (ko) | 산술 논리 장치 레지스터 시퀀싱 | |
JP6307975B2 (ja) | 演算処理装置及び演算処理装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150417 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160401 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160919 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6020428 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |