スーパースカラプロセッサにおける alu chaining とロード値...

2
スーパースカラプロセッサにおける ALU chaining とロード値予測を併用した データ依存の軽減手法 市野 慧 上田 和哉 小柳 滋 立命館大学大学院理工学研究科 立命館大学 1 はじめに 現在のスーパースカラプロセッサでは,性能を上げる ために周波数を上げることは限界に近づいている.そ こで,命令の並列性を上げることが必要となっている. 並列性の向上を阻害する要因の一つとしてデータ依存 があり,これを軽減する手法として,演算に関するデー タ依存を軽減する ALU chaining と,ロード命令に関す るデータ依存を軽減するロード値予測がある.本研究で は,これらを組み合わせたアーキテクチャを提案する. 2 関連手法 2.1 ALU chaining ALU chaining とは,演算器と演算器の間にバイパス 回路を設けることで,データ依存の関係にある二つの 演算を 1 サイクルで行うというものである.図 1 の命 i1 i2 を実行する場合,この二つの命令間にはデー タ依存関係があるため,同時には発行できない.しか し,演算器間のバイパスを利用することで演算結果を 即座に別の演算器へと渡すことができる.したがって, 命令 i1 と命令 i2 を同一サイクルに実行することがで きる. また,この手法を用いる場合,ALU chaining を行う 命令は同時にレディにしなければならないため,従来 の命令発行方式とは異なったスケジューリングをする 必要がある. 1: ALU chaining の仕組み 0 Reducing Data Dependency by combining ALU chaining and Load- Value Prediction for Superscalar Processors 0 Kei ICHINO Kazuya UEDA Shigeru OYANAGI 0 Graduated School of Science and Engineering, Ritsumeikan University 0 Ritsumeikan University 2.2 値予測 値予測とは,命令の実行結果を予測し,データ依存の 関係にある後続の命令を投機実行することにより,デー タ依存を軽減させるというものである.値予測の中で は予測が比較的簡単で,成功したときの効果が高いこ とからロード値予測を行う. 本研究では,様々な値予測の中から,最終値予測と 2 ホップアドレス名前替えを用いたロード値予測を利 用する. 2.2.1 最終値予測 ロード命令ごとの最新のロード値を保存する.ロー ド値が格納されるレジスタを使用する後続の命令にお いて,その値を予測値として使用する. 2.2.2 2 ホップアドレス名前替えを用いたロード値予測 ロード命令およびストア命令のアドレスをタグとし て用いて,各命令が参照したデータをバッファに保存 する.これをそれぞれ LIST SIVT とする.また,タ グを用いてロード命令とストア命令を関連づける.こ のことにより,ロード命令アドレスからストア命令ア ドレスを読み出し,そのストア命令アドレスからデー タアドレスを読み出すことができる.すなわち,最新 のストア命令で格納した値をロード命令の予測値とし て使用する. 3 提案手法 ALU chaining と値予測はともにデータ依存を軽減さ せる手法である. ALU chaining が演算命令に関するデー タ依存を軽減させる手法である一方、ロード値予測は ロード命令に関するデータ依存を軽減させる手法であ る.そこで,これらの手法を併用することにより,さ らなるデータ依存の軽減が得られるものと考えられる. また,ロード値予測において 2 ホップアドレス名前 替えを用いたロード値予測と最終値予測を組み合わせ ることによって予測精度を高める.このとき,最終値 予測で使用する値は 2 ホップアドレス名前替えで使用 する LIST に保持するとする. 前述したように ALU chaining には従来の命令発行方 式とは異なったスケジューリングが必要となる.また, この手法で使用するロード値予測にはいくつかの機構 が必要となる.これらを組み合わせたパイプライン図 を図 2 に示す. T 401 C-011 (第1分冊)

Upload: others

Post on 05-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • スーパースカラプロセッサにおけるALU chainingとロード値予測を併用したデータ依存の軽減手法

    市野 慧 † 上田 和哉 † 小柳 滋 ‡†立命館大学大学院理工学研究科 ‡立命館大学

    1 はじめに現在のスーパースカラプロセッサでは,性能を上げる

    ために周波数を上げることは限界に近づいている.そこで,命令の並列性を上げることが必要となっている.並列性の向上を阻害する要因の一つとしてデータ依存があり,これを軽減する手法として,演算に関するデータ依存を軽減するALU chainingと,ロード命令に関するデータ依存を軽減するロード値予測がある.本研究では,これらを組み合わせたアーキテクチャを提案する.

    2 関連手法2.1 ALU chaining

    ALU chainingとは,演算器と演算器の間にバイパス回路を設けることで,データ依存の関係にある二つの演算を 1サイクルで行うというものである.図 1の命令 i1と i2を実行する場合,この二つの命令間にはデータ依存関係があるため,同時には発行できない.しかし,演算器間のバイパスを利用することで演算結果を即座に別の演算器へと渡すことができる.したがって,命令 i1と命令 i2を同一サイクルに実行することができる.また,この手法を用いる場合,ALU chainingを行う

    命令は同時にレディにしなければならないため,従来の命令発行方式とは異なったスケジューリングをする必要がある.

    演算結果を

    バイパスする

    可能な

    命令列の実行例

    演算 演算

    用いた演算の

    動作タイミング

    クロック

    図 1: ALU chainingの仕組み

    0Reducing Data Dependency by combining ALU chaining and Load-Value Prediction for Superscalar Processors

    0†Kei ICHINO †Kazuya UEDA ‡Shigeru OYANAGI0†Graduated School of Science and Engineering, Ritsumeikan University0‡Ritsumeikan University

    2.2 値予測値予測とは,命令の実行結果を予測し,データ依存の

    関係にある後続の命令を投機実行することにより,データ依存を軽減させるというものである.値予測の中では予測が比較的簡単で,成功したときの効果が高いことからロード値予測を行う.本研究では,様々な値予測の中から,最終値予測と

    2ホップアドレス名前替えを用いたロード値予測を利用する.

    2.2.1 最終値予測ロード命令ごとの最新のロード値を保存する.ロー

    ド値が格納されるレジスタを使用する後続の命令において,その値を予測値として使用する.

    2.2.2 2ホップアドレス名前替えを用いたロード値予測ロード命令およびストア命令のアドレスをタグとし

    て用いて,各命令が参照したデータをバッファに保存する.これをそれぞれ LISTと SIVTとする.また,タグを用いてロード命令とストア命令を関連づける.このことにより,ロード命令アドレスからストア命令アドレスを読み出し,そのストア命令アドレスからデータアドレスを読み出すことができる.すなわち,最新のストア命令で格納した値をロード命令の予測値として使用する.

    3 提案手法ALU chainingと値予測はともにデータ依存を軽減さ

    せる手法である.ALU chainingが演算命令に関するデータ依存を軽減させる手法である一方、ロード値予測はロード命令に関するデータ依存を軽減させる手法である.そこで,これらの手法を併用することにより,さらなるデータ依存の軽減が得られるものと考えられる.また,ロード値予測において 2ホップアドレス名前

    替えを用いたロード値予測と最終値予測を組み合わせることによって予測精度を高める.このとき,最終値予測で使用する値は 2ホップアドレス名前替えで使用する LISTに保持するとする.前述したようにALU chainingには従来の命令発行方

    式とは異なったスケジューリングが必要となる.また,この手法で使用するロード値予測にはいくつかの機構が必要となる.これらを組み合わせたパイプライン図を図 2に示す.

    FIT2010(第 9回情報科学技術フォーラム)

    401

    C-011

    (第1分冊)

  • この手法は,命令の依存関係を保持する機構(依存MAP)と,命令の依存関係に基づいて発行可能な命令を保持する機構(発行MAP)を用意する.この二つの機構を参照することで,この手法に必要なスケジューリングを可能にする.

    図 2: 提案手法を適用したパイプライン

    4 評価と考察ALU chainingとロード値予測を併用することにより

    得られるデータ依存の軽減を評価する.評価の指標として命令レベル並列性の指標となる IPCを用いる.また,ALU chainingとロード値予測の併用による得られる並列性の向上を調べるため,ベースとなるプロセッサモデル、ALU chainingのみを用いるプロセッサモデル,ロード値予測のみを用いるプロセッサモデル,それら二つを併用したプロセッサモデルをそれぞれ比較する.

    4.1 実験環境評価ツールとして,SimpleScalar Tool Setを用いる.

    SimpleScalarに手法を実装し,ベンチマークプログラムを用いて性能評価を行う.ベンチマークプログラムには,SPECint2000 から 7

    つのプログラムを使用した.また,インプットセットには referenceデータを用いて,はじめの 2000万命令を実行した.

    4.2 実験結果SimpleScalarでベンチマークプログラムを実行した結

    果を示す.また,評価指標としてベースモデルの IPCに対する IPC向上比を示す.図 3のような結果となった.

    ALU chainingのみを用いたプロセッサモデルは.平均 3.8%の性能向上が得られた.また,ロード値予測のみを用いたプロセッサモデルは.平均 0.5%の性能向上が得られた.そして,それら二つを併用したプロセッサモデルは.平均 5.0%の性能向上が得られた.

    (%)

    図 3: IPC向上率

    4.3 考察ALU chainingに比べてロード値予測の性能向上があ

    まり得られなかった.これは,本研究で使用した予測機構の予測精度があまりよくないためだと思われる.頻繁に予測ミスを起こす信頼性の低いロード命令については,予測を行わない.これにより,ロード値予測を利用する機会が減少する.しかし,ALU chainingと併用することで,単体で利

    用した場合の IPCの合計より高くなるものがある.これにより,併用利用による相乗効果はあると思われる.

    5 おわりに本研究では,ALU chainingとロード値予測の併用に

    よりデータ依存を軽減するスーパースカラプロセッサの構成について提案した.提案した手法と SimpleScalar Tool Set上に実装し,ベ

    ンチマークプログラムを使用して評価した結果,平均5.0%の IPCの向上が得られた.各手法を単体で利用した場合の IPCを合計したものよりも高くなるものもあり,併用による相乗効果があることがわかった.しかし,相乗効果があったもののロード値予測の性能向上があまり得られなかった.今回の手法では,2ホップアドレス名前替えによるロード値予測と最終値予測を組み合わせた機構を利用した.この予測機構を見直し、予測精度を向上させることができれば IPCのさらなる向上が得られる.今後,ロード値予測の見直しを含め,さらなる相乗

    効果が得られる機構を提案していく.

    参考文献[1] 佐藤寿倫. ”2ホップアドレス名前替えを用いたロード命令の投機的実行”, pp.2109-2118.情報処理学会論文誌,Vol.40,No.5, 1999.

    [2] 孟林. ”Chain手法を用いたスーパースカラプロセッサの設計と評価”,立命館大学大学院 理工学研究科 情報理工学専攻 博士課程前期課程 修士論文, 2008.

    FIT2010(第 9回情報科学技術フォーラム)

    402

    (第1分冊)