VlDp アーキテクチャにおける実行パス制御機構
高

信y

峰

辻
坂 井

中 村 友 洋y
吉 瀬y
秀 典
安 島 雄 一 郎y
修 一y
田 中 英 彦y

謙 二y

従来のプロセッサ・アーキテクチャでは、並列性の利用に関して性能の限界が指摘されている。我々は、投機的に多数の命令をフェッチし命令間の制御依存関係・データ依存関係を解消した後、ネットワークで接続された複数の演算器で命令を実行する
プロセッサ・アーキテクチャを提案し研究・開発を行なっている。
プロセッサ・アーキテクチャの中で、命令間のデータ依存関係を解析し、演算器への命令の割り付けと実行を制御する実行パス制御機構をデータパス先行展開と呼ぶ。
本稿では、データパス先行展開を従来の技術で実現した場合のモデルを示し、その動作と実装時の問題点について考察を行う。また、データ依存解析のソフトウェア支援の可能性について述べる。

VlDp

VlDp

The data path construction unit on VlDp architecture
Makoto Takamine,y Tomohiro Nakamura,y Kenji Kise,yHidenori Tsuji,y Yuichiro Ajima,y Shuichi Sakaiyand Hidehiko Tanakay

The performance of usual processors shows a tendency to saturation because of the limit
in exploiting instruction level parallelism.

Our research pro ject aims at developing a newarchitectural model: Very Large Data Path architecture with technology which fetches many
instructions speculatively, dissolves the control and data dependences and executes instructions in many ALUs connected by a network. VLDP architecture has the unit which dissolves
the data dependences, controls allocation and controls execution of the instructions. We callthe unit the data paths construction unit. In this paper we show a model of the data paths
construction unit based on the traditional technologies and discuss the problems of the model.
And we show the possibility of the software support of the data dependence dissolution.

1.

パスを構築する機構をデータパス先行展開と呼ぶ。本稿では、データパス先行展開を従来のアーキテクチャ
技術で実現した場合のモデルを示し、その動作と実現時の問題点について考察する。また特に、データパス
先行展開の役割の つであるデータ依存解析のソフト
ウェア支援の可能性について述べる。

はじめに

近年、プロセッサの高速化に対する要求は高まるばかりであるが、従来のアーキテクチャでは、命令レベ
ル並列度の利用に関する限界が指摘されている。 年で 倍と言われているような、半導体デバイス技術の進歩がほぼ続いている現状を見ると、この限界を破るには、大規模なを積極的に活用する新しいアー
キテクチャを考えることが重要である。そのような背景から、我々は、ネットワークで接続した多数の演算器
上に大規模なデータパスを構築し、複数の命令を並列処理するプロセッサ
プロセッ
サ を提唱し、研究・開発を行なっている1) 。
プ
ロセッサ中の機構で、投機的にフェッチした命令間の上に複数のデータ
データ依存関係を解析し、

1

3

4

VLSI

(ALU-Net)

(VlDp

)

2.

VlDp

アーキテクチャは、多数の演算器をネットワー
クにより相互接続したを用いて効率の良い
データ処理を行なうことを目指す。従来のアーキテク
チャでも、独立した命令を並列に演算するために、数個のを同時に利用するスーパスカラ方式や方式が提案されてきた。一方、アーキテクチャはネットワークで結んだ数十〜数百のを持ち、より大規模な並列処理を目指している。
アーキ
テクチャでは、スループットの大きいに対して十分な命令を供給するため、依存関係が解消され

ALU

VlDp

ALU-Nety 東京大学大学院 工学系研究科
GraduateschoolofEngineering,

The

University

VlDp アーキテクチャ

of

Tokyo

1

ALU-Net

VlDp

VLIW

ALU
VlDp
ALU-Netた多数の命令列を実行に先駆けて作成する。また、投機実行の規模が大きくなるにつれ、分岐予測ミス時のペナルティも大きくなる。このペナルティを削減する
ため、複数パスの投機実行を行う。このような面からは、アーキテクチャとは、積極的に複数パスの大規模な投機実行を行うアーキテクチャであるといえる。
アーキテクチャの実現には、制御依存関係を解消した複数のパスを用意する投機フェッチ機構と、各パス毎のデータ依存関係を解析して、上に実行パスの構築を行なう実行パス制御機構が必要で
アーキテクチャのブロック図をある。図 に
示す。

OP1

ー

デ

OP2
OP3

タ
依
存
解
析

VlDp

OP4

VlDp

OP6

OP5

図2

ALU-Net¶öËð8îØð8!È£$
»º è
l0

ÈÔ¼
àªl0

Ê8ÂÔ¼!È£$
ÈÔ¼
àªl0

»º è
l0

図1

Ê8Â

ALU-Net

ALU

40

3.1

ALU

3
ALU-Net

ALU

10210
ALU
60%

2

ALU-Net

ALU-NetALU

ALU-Net

ALU-Netデータパス先行展開

3.

図

3

ALU-Net

ALU-Net

ALU-Net
ALU-Net

ALU-Net
ALU-Net

ALU-Net( 1)( 2) ALU-Net( 3) ALU-Net

コントロールフロー先行展開では、複数のパスを投機的にフェッチし、制御依存関係に基づいた情報を付加する。データパス先行展開では、コントロールフロー
先行展開で付加された制御情報をもとに、各制御パス毎に命令間のデータ依存関係を解析し、多数のデータパスを作成する。さらに、作成したデータパス情報に従って各命令の実行情報を得た後、への命令の割り付けと実行パス制御を行なう。
は多数のがネットワークによって接続された演算機構である。 つのが作成した演算結果を、レジス
タやフォワーディングの機構を介さずに別ので利用することができ、高速なデータ転送が可能となる。
内でのデータの受渡しについては、ので命令ウィンドウを 、次段のへの接続の個数を とした場合には 、全体の程度が内部で吸収できることが報告されている2) 。次の章では、データパス先行展開について、その動作を詳しく述べる。

ALU

6

3

ALU-Net

VlDp アーキテクチャのブロック図

1)

1

4

ALU

Ê8Â

VlDp アーキテクチャの各機構 を簡単に説明する。
( 1) コントロールフロー先行展開( 2) データパス先行展開( 3) ALU-Net

ALU

2

データパス先行展開のイメージ

ALU

õé
Ê8Â
BufferRegister
Ê8Â

ALU-Net3

ALU-Netäåíº¼ÉãÊ8Âàªl0

6

5

1

Oª

õé
Oª
BufferOª4

1

コントロールフロー先行展開では、各命令がどの制御
パス上のどの位置にある命令であるかを示した制御
パス情報が付加される。データパス先行展開の動作のつが、この制御パス情報をもとにしたパス毎の命令に対するデータ依存解析である。さらに、データ依存の状態を関係が解消された命令について、示す情報を参照して、への割り付けを行う。
ここで、の状態を示す情報とは 、現在命令が割り付けられていない空きについての情報、
および、既にに割り付けられている命令の実行
結果がどこに書き戻されるかについての情報である。
でのデータパス先行展開は、この一連の動作を命令実行に先駆けて、複数パスを対象に行う。
において、ネットワークによるデータの授受を効率良く行うには、従来のアーキテクチャにおける、フェッチ、デコード、発行、実行、レジスタへの書き戻し、という動作に加えて、次のような動作が必要となる。
デコード された命令間でのデータ依存解析
への命令の割り付け
での実行パスの作成
データパス先行展開とは 、これらの動作の中でデコード、データ依存解析、への割り付け、実
行パス作成の動作を制御する機構である。以降では、命令はすでにデコードされ、制御依存情報が付加されたものとして、データ依存解析、命令割り付け、実行パスの作成について述べる。
図 は、スーパスカラ・アーキテクチャ3) を基に 、への割り付けを行うための機構を加えて 、
データパス先行展開を構成した単純なモデルである。
図中、空き
テーブルと
接続テーブルが割り付けのために拡張されたテーブルである。このつのテーブルはへの命令割り付け時に参照され、命令が発行される際と
より演算が
終了した
についての解放情報を得た際に更新される。フューチャ・ファイルはアーキテクチャ・ステー
トを保持するためのテーブルで、従来のフューチャ・
ファイルの機能に加え、上で実行を待ち合
わせている命令についてのタグも保持することができる。フューチャ・ファイルは常に最新の演算結果を保持しているため、通常、命令バッファへのデータの供給
はフューチャ・ファイルより行われる。これに対して、

1 VlDp

Oª

2

命
令
割
り
付
け

5

1

基本動作と基本モデル

2 にデータパス先行展開の動作を模式的に表す。

2

ている命令に対して依存関係がある場合を指す。実行
を終えた命令はフューチャ・ファイルに値が書き戻される。命令バッファ、上の命令に依存関係がなければ、ソースオペランドへのデータはフューチャ・
ファイルから読み出される。
データ依存解析の実現
このモデルにおいては、データ依存解析は次のようにして実現している。まず、命令バッファ中の命令間で、ソースオペランドとデスティネーションオペラン
ド の比較を行う。ここでデータ依存関係があれば、解析を行っている命令は依存関係にある命令の命令バッ
ファ中の位置に対応するタグを得る。同時に、フュー
チャ・ファイルの参照も行い、現在上に割り付けられている命令のタグか 、既に演算を終了している命令の場合は演算結果のデータを得る。命令
バッファ中に依存関係がなければ、フューチャ・ファイ
ルの検索結果を選択する。このデータ依存解析によって得られる値は、命令バッファ中の他の命令もしくは上の命令に対応するタグ、または実際のデータである。テーブルの更新は、命令バッファ中の命令に割り付けられた時と 、上のが命令の実行が完了した時にそれぞれ行われる。
データ依存解析は複数パスについて行われるので、フューチャ・ファイルはパス毎に多重化する。その場
合、新しい制御パスがフェッチされる場合を想定して、分岐命令を跨ぐ毎に新たなフューチャ・ファイルを作成する必要がある。さらに、データ依存解析を高速に行うために、できるだけ多くの命令について、並列に解析が行われることが望まれる。 つの制御パスに属す
る多数の命令が同時にフューチャ・ファイルを参照する
ために、複数パスに対応するため多重化した各フュー
チャ・ファイルについて、さらにその複製を用意する。
データ依存解析の問題点
図 は、データ依存解析を同時に行うことができる
命令数に対する、 サイクル当たりの命令実行数である。これはのベンチマークプログラムである、、、 について、 千万命
令のトレースデータを解析したものである。この解析
では、の数とネットワークを理想的なものとしている。命令もデータ依存解析に十分な速度で供給されるとして、純粋なデータ依存解析の能力による影響を調べている。各動作はパイプライン的に処理される。 つの命令はに発行された後、データ依存関係のある命令が終了した次のサイクルで実行できるとしている。ロード 命令については、実行のための遅延が サイクル多くかかるものとする。これを見ると、データ依存解析命令数について、はほぼ比例的に上昇している。取り出すことのできる並列度に限界があるため、ある値での上昇は止まりグラフは平坦になる。このグラフは、十分な実行能力とフェッチ能力を持つアーキテクチャでの、理想的な実行速度を

リオーダバッファ、レジスタファイルは例外回復の際に用いられる。図中で、命令バッファ、フューチャ・
ファイル、リオーダバッファが複数パスに対応するために多重化した部分である。点線で囲んだ部分が本稿で取り扱う部分である。 で 、このモデルの動作と問題点を詳しく述べる。

ALU-Net

3.2

デコーダ
命令

レジスタ値
レジスタ
ファイル

命令バッファ
ALUタグ

ALU
タグ

利用情報

空き ALUテーブル

ALU-Net接続テーブル

開放
情報

開放
情報

ALU-Net

演算結果
リオーダ
バッファ

フューチャ
ファイル

演算
結果

レジスタ値

演算
結果

レジスタ値

ALU-Net

ALU-Net

命令

図3

3.2

レジスタ値
or ALUタグ

ALUタグ

ALU-Net単純なデータパス先行展開のモデル

データ依存解析

VlDp アーキテクチャでは、大規模な命令の先行割
り付けを行う。現実的な ALU-Net の構成を考えた場
合、ALU 間の結合能力には制限が加わるため、全てのデータ依存関係をネットワークで吸収することはできない。オペランド の供給をできる限りネットワーク
上で吸収するためには、割り付けを行う前に命令間でのデータ依存解析が重要となる。命令間のデータ依存解析を行わないとすれば、各命令は適当なに割り付けられ、データ供給のほとんどはレジスタを介して行われることになり、を用いる利点を得ることができない。
データ依存解析の定義
本稿においてデータ依存解析とは、解析の対象となる命令が含まれている制御パス中で、当該命令のソースオペランドに対応する最新のデータか、またはそのデータを作成する命令が存在する場所を検索する動作であると定義する。図 に示しているモデル
では、命令バッファか中の命令に対応する
タグ、またはフューチャ・ファイル中の実際のデータが検索の結果として得られる。同時にフェッチされた命
令間でデータ依存関係があれば、最新のデータを作成する命令は命令バッファ中にある。データパス先行展
開では、現在実行されている命令に先行してに新たな命令を割り付けるので、上でソー
スオペランドのデータが作成されるのを待ち合わせている命令がある。
上の命令に対してデータ依存関係がある場合とは、これらの実行を待ち合わせ

1

ALU

ALU-Net4

1
SPEC92cc1 compress espresso sc

(1)

(2)

ALU-Net

ALU-Net3
ALU-Net

1

ALU

3

ALU-Net
ALU-NetIPC

IPC

ALU-Net

3

1

VlDp
ALU

ALU-Netbuffer2
buffer1

ºº

図4


 
=nc

ALUタグ(ALU8)ALUタグ(ALU2)ALU2
割り付け(ALU8)

・
・
・

リクエ
スト
(ALU2)(ALU8)
リクエ
スト

ALUタグ
(ALU8)
・
・
・

・
・
・

・
・
・

・
・
・

・
・
・

ALU7

・
・
・

・
・
・

・
・
・

ALU2 ALU3 ALU4 ALU1

ALU8

ALU2 ALU3 ALU4 ALU1

ALU5 ALU6 ALU7 ALU2

ALU9

ALU5 ALU6 ALU7 ALU2

・
・
・

・
・
・

・
・
・

・
・
・

・
・
・

・
・
・

・
・
・

・
・
・

空き ALUテーブル ALU接続テーブル

ALU-Net への割り付け (1)ALU-Net への割り付け (2)

命令の割り付けプロセス

ALU-Net

ALU

ALU( 5(2) )ALU-Net

ALU
ALU

3

ALU-Net

ALU

ALU

5

ALU

ALU

ALU
2

ALU-Net

ALU-Net

1

ALU

4

・
・
・

空き ALUテーブル ALU接続テーブル

ALU-Net

ALU-Net

・
・
・

ALU9

上の命令に依存関係を持たない命令、または依存関係のある上の命令に接続されたの空きがなかった命令は 、の空きを示すテーブルを参照し、空いているの中で適当なものに割り付けられる 図。ソースオペランド へのデータはフューチャ・ファイルより供給される。この場合、依存関係がある命令がインオーダに実行される保証がなくなるため、解消したデータ依存関係が崩れてしまう。図 のモデルでは、この問題にレジスタ
名前替えの機構を用意して対応する。複数実行パスを扱うため、多重化したリオーダ・バッファによるレジ
スタ名前替え4) を用いている。空きがなくなった場合は、命令の割り付けを中断する。演算が終了した命令は、演算結果をフューチャ・ファイルとリオー
ダ・バッファに書き戻す。同時にを解放し、空き
テーブルと接続テーブルを更新する。
割り付けの問題点への割り付けでは 、 つののファ
ンアウトの制限が問題となる。全てのの接続が可能なモデルでは、データ依存関係のある命令はネッ
トワーク上の全てので接続することができる。
その場合、テーブルを引くといった割り付けのためのデータ依存解析のところでも述べたように、現実的のネットワーク接続には制限がある。でなきるだけ多くのデータの授受をネットワーク上で行うためには、データ依存関係がある命令同士を接続されたに割り付ける機構が必要となる。
割り付けの定義への割り付けとは、データ依存解析によりソースオペランド へのデータ、もしくはデータを作成する
上の命令に対応するタグを得て、全てのデータが供給可能となった命令をに割り付ける動作である。ここで、命令バッファ中の命令にデータ依存関係がある命令は、オペランドとなるデー
タがどので作成されるかがこの時点では分からないため、割り付けは次サイクルに持ち越される。
割り付けの実現
図 に命令が割り付けられる様子を示す。命令を新
しく割り付けるには、現在割り付けが行われていないを示すテーブルと、同士の接続を示空き
したテーブルを用意する。この つのテーブルは同時に参照される。
の接続を示すテーブルの参照
は 、データ依存解析の結果で得られた、上の命令に対応するタグを用いて行われる。新しく割り

ALU

buffer2
buffer1

ALU8
・
・
・



ALU-Net への割り付け

ALU

命令バッファ
ソースオペランド

・
・
・

・
・
・

データ依存解析の性能による IPC の変化

ALU-Net2

リクエスト(ALU1)(ALU2)
リクエ
スト

図5

3.3

ALU
ALU

割り付け
(ALU2)

buffer1
ALU1

・
・
・

¼ÊÇÉ¼ÊÊÆ

ALU
5(1) )

命令バッファ
ソースオペランド

ALU7



(

ALU





ALU

ALU
ALU

1

ºÆÄÇÉ¼ÊÊ



)

ALU

Êº

§



ALU

・
・
・

ºº
ºÆÄÇÉ¼ÊÊ
¼ÊÇÉ¼ÊÊÆ
Êº(

付ける命令 当該命令 がソースオペランド として持つのタグを入力すると 、そのに接続され利用されていないの番号を示すタグが返される。うまく空いているがあれば、そのに。この対して当該命令は割り付けられる 図
場合、空きテーブルから得られた値は利用しない。命令バッファ中には、当該命令にデータ依存関係を持つ命令が存在するので、発行の際にはそれらの命令に対して、新しく割り付けたに対応するタグに対して つ以上を渡す。テーブル中の つのの問い合わせが重なった場合、命令間に優先順位を設けて、複数の命令が同じに割り付けられないようにする。

表していると見ることもできる。つまり、
アー
キテクチャにおいて、中のの数を増加させて演算能力を向上させた場合、それに十分な命令を供給できるだけのフェッチ能力の向上、および命令バッファの大規模化が必要となる。その場合、命令バッファ中の命令間についてデータ依存解析を行うには、多数の比較器が必要となる。また、既に発行された命令についてのデータ依存解析のため、フューチャ・
ファイルへのアクセスも増大する。これらの理由により、データ依存解析のためのハード ウェアが大規模化し、ボトルネックになる可能性がある。これを解消するためには、コンパイラによる静的な依存関係の解析といった支援技術や、新しい検索機構の提案が必要と
なる。

ALU
ALU

索は、発行済みの命令に依存関係のある命令について同時に行う必要があり、命令バッファ中での比較は、バッファ中の全ての命令が比較の対象となる。大規模な投機的フェッチを行う
アーキテクチャでは、その規模や動作速度を考えた場合に、これを実現する
ハードウェアのコストが問題となる。次では、ハード
ウェアコストの削減を目指した、ソフトウェアによるデータ依存解析のアプローチを示す。
4.2 ソフト ウェア支援に対する考察
新しいアーキテクチャを考える時に、他モデルとのコード 互換性を維持するという点から、全ての処理を
ハードウェアで行うという立場がある。その場合、動的に動作が決まる部分にも処理が行える、という利点もある。対して、静的に処理を行える部分はできるだ
けソフトウェアで行う、というアプローチがある。ソウトウェアによる処理では、ある程度の処理をソフト
ウェアで未然に行うため、ハードウェアが簡単化・高速化できる、また、処理の仕様の変更に対して、柔軟に対応できるという利点がある。ソフトウェアで行うことの欠点は、ハードウェア処理の特徴であった、コー
ド の互換性、動的な解析、という利点を得ることが難
しくなることである。
先ににおいて、データ依存解析の重要性と、
そのハード ウェアにかかるコストがボトルネックとなる可能性を挙げた。そこで、ソフトウェアによってデータ依存解析を行うことで、ハード ウェアの負担を減らすアプローチを考える。コード 互換性という点でも、従来のコード に依存情報を付加するという手法を取れば、大幅な変更を避けることができる。コンパイ
ラレベルでの解析を行えばより良い最適化も期待できるが、その場合異なったモデル間でのコード互換性が失われてしまう。データパス先行展開を実現する際には、コード 互換性を保つという立場と、コード の最適化による高速化という立場の 通りのアプローチから考える必要がある。
表 は命令間のデータ依存関係が 、基本ブロック
をいくつまたいでいるかを示した表である。これはのベンチマークプログラムである、、、 について、 千万命令のトレース
データを解析したものである。例えば距離が とは、その命令が含まれている基本ブロックから見て、 つ前に実行された基本ブロックに含まれる命令について、データ依存関係があることを示している。距離がとは、同じ基本ブロック中に依存関係があることを示す。間接アド レッシングによる分岐命令をまたぐ依存関係は、この表の中ではカウントされていない。割合の合計がになっていないのは、間接アド レッシ
ングをまたいだ依存関係も含めた全依存数に対する割合となっているからである。この表を見ると、デー
タ依存関係は時間的に近く発行された基本ブロック間に多く存在している。
アーキテクチャにおける機構は必要がなく、データ依存解析をした全ての命令を同時にに割り付けることができる。現実的なモデルではネットワークの制限から、レジスタを介するデータの授受が避けられない。図 のモデルでは、データ依存関係のある先行命令の割り付けが行われないと、演算結果を利用する側の命令の割り付けが行われず、割り付けが遅れる。 サイクルで割り付けた命令は 、そのほとんどが次の サイクルで演算が完了する。データ依存解析が十分な速度で行われ、かの演算能力が十分にあるとすれば、依存つ関係のある命令を同時に割り付ける機構がないと、割り付け性能が全体のクリティカルパスになると考えられる。
3.4 実行パスの作成
中の つのの出力は、複数のの入力に接続されている。データパス先行展開では、あるの演算結果を、その値が必要なに供給されるように、間の接続の制御を行ってデー
タの流れを管理し、実行パスを作成する。
ソースオペランドにデータが供給されるパスは、ネッ
トワークで接続された他のから直接データが供給されるパスと、フューチャファイルよりデータが供給されるパスがある。命令は割り付け時に間の接続も考慮して配置されているため、間でデータの授間の接続の受を行う命令については、を行って前段のの出力を供給する。
フューチャ・ファイルから値が参照されるものは実
行パスの構成が複雑になる。フューチャ・ファイルからへのバスは本数が限られるため、同じバへデータを転送しなければなスを使って複数のらない。命令を発行する際に、データを読み出すタイ
ミングについての情報を命令に付加し、その情報に基づいてデータの授受の同期をとる必要がある。

ALU-Net

3

1

VlDp

1

ALU-Net

ALU-Net
ALU

1

ALU

ALU

ALU

ALU

ALU

ALU

ALU-Net

4.

ALU

ALU

ALU

VlDp

ON/OFF

ALU

2

データ依存解析に対するソフトウェア支援

1

1

前章で、データパス先行展開について単純な モデルを示し、そのモデルを実現した場合の問題点について述べた。
への割り付けと実行パスの作成
は、自体の規模や構成と深い関わりを持つ
ため、動作を詳しく解析するためには、のモデルを定義しなければならない。しかし、の規模や構成はデバイス技術の推移に伴い変化するため、最適なを現状で定義するのは困難である。以降では、の構成とは独立して考えることができるデータ依存解析について、ソフトウェア
による支援の可能性について考察を行う。
4.1 従来のモデルによるデータ依存解析
先に述べたモデルにおけるデータ依存解析は、フュー
チャ・ファイルの参照と、命令バッファ中のオペラン
ド の比較で実現している。フューチャ・ファイルの検

ALU-Net
ALU-NetSPEC92
press espresso sc

ALU-Net
ALU-Net

ALU-Net
ALU-Net

1

0

1.0

VlDp

5

cc1 com22

表1
距離 [BB]

cc1

基本ブロック間のデータ依存関係
compress

espresso5056700

0.43307422579

0.671263809280.54354809133

0.3758123580810.20191839330

0.166324635130.20982498939

0.19532596761

0.05114356910.03948833740.07527593920.059332649040.02273690050.03342332980.01993601110.0281

41536750.0132

1952340.017780059

0.00681853060.0145

51000910.008682189

0.007466013

0.00561046160.0082683309

0.007177572

0.007084901

0.007262197

0.0049759911

0.005130359

0.002766972

0.005746429

0.0036843807

0.003820.000081779

0.007042885

0.0034

928668

0.002512634

0.001168385

0.005838945

0.00301022571

0.001922860

0.002115514

0.001332719

0.002620

96101

0.008239134

0.0035

1869300.01591786820.014030

28770

0.002510134

0.00091119690.009560724

0.00474013498

0.00123044

0.000316745

0.001435661

0.0028507312

0.00062539

0.00025576

0.000526330

0.0021603632

0.00033453

0.00034874

0.000420269

0.001670

1877

0.0002146

0.00004349

0.000417823

0.0014801675

0.0001160.00004448

0.000415064

0.0012901164

0.000150.00004612

0.000414220

0.0011100

710

0.000140.00003644

0.000312078

0.00091509860.01307

0.00003490020.02975943070.046490742030.7641105459370

0.9537111168850

0.917299158300

0.7285











100



total

ることができない可能性がある。データ依存解析部では、効率的な依存解析を行う新しい機構を導入する必要があり、本稿ではソフトウェアによる解析支援の可能性を示した。今後はデータパス先行展開の実装に向けて、クリティカルパスとなる部分を定量的に評価し、ハード ウェアとソフトウェアの統合的なアプローチを進めて行く予定である。

フェッチ機構は、投機的に大規模なフェッチを行い制御依存関係に基づいた情報付けを行う。基本ブロック
を最小単位とし、連続したいくつかの基本ブロックをまとめてフェッチ、デコード するという仕様が考えられる。そのため、同時にフェッチされた命令、もしくは上で演算の待ち合わせをしている命令に対して、データ依存関係がある可能性が高い。表 によると、連続する つの基本ブロックについて依存解析を行えば 、最も多い
で
、最も少
ない
で
のデータ依存関係がある。フェッチが大規模になるにつれ、これらの依存関係を持つ命令を同時にフェッチする可能性が大きくなり、フューチャ・
ファイルや命令バッファ内の比較機構の負担は大きくなる。この理由により、ソフトウェアによる依存解析が有効であると考える。
以上で述べたようにデータ依存関係については、ソフトウェアでの静的な解析を行うことで、大規模化によるハードウェアコストの増大を抑えることができる。

ALU-Net3

sc 63%

5.

ま

sc

0

と

1

compress

88%

参 考 文 献1) 中村友洋, 吉瀬謙二, 辻秀典, 安島雄一郎, 田中英彦. 大規模データパスプロセッサの構想, ARC1243, pp. 13-18, 1997.
2) 吉瀬 謙二, 中村 友洋, 辻 秀典, 安島 雄一郎, 田中
英彦. ALU-Net を用いることによるデータ移動の効率化. 情報処理研究会 ARCH 125-21, Vol.1,
No.2N-1, Mar. 1998.
3) マイク・ジョンソン. スーパースカラ・プロセッ
サ. 日経 BP センター.
4) 安島 雄一郎, 中村 友洋, 吉瀬 謙二, 辻 秀典, 田
中 英彦. スーパスカラ・アーキテクチャのための
複数パス実行機構の提案, 並列分散シンポジウム
JSPP'98, Vol.98, No.7, pp.23-30, Jun. 1998.

め

VlDp アーキテクチャの中で 、データ依存解析と
ALU-Net への割り付け、および実行パスを作成する機構であるデータパス先行展開について、従来のスー
パスカラ・プロセッサの拡張によって実現したモデルを示し、その動作の説明と実現しようとした場合に生じる問題を明らかにした。本稿で示したモデルでは、
データパス先行展開の最低限の動作は保証できるが、ハードウェアのコストが増加し、十分な動作性能を得6