Presentation is loading. Please wait.

Presentation is loading. Please wait.

ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発

Similar presentations


Presentation on theme: "ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発"— Presentation transcript:

1 ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発
計算機アーキテクチャ研究室  岡本 昂樹

2 研究背景 ヘテロジニアスマルチコアとは? 設計・検証の時間膨大 ・1つのチップに異なる種類のコア
・要求にあわせコアを動作, 高性能・省電力の両立 設計・検証の時間膨大 最適! 不足! 近年、1つのチップに同じ種類のコアをのせたホモジニアスマルチコアから 構成の異なるプロセッサコアを複数個用いるヘテロジニアスマルチコアプロセッサの研究が注目を集めています 例えば、図のような特徴の異なるアプリケーションを実行する際、従来のホモジニアスマルチコアの場合(Click)(Click) アプリケーションに対してリソースが過剰になったり不足したりしてしまいます ヘテロジニアスマルチコアの場合、(Click)(Click)特徴の異なるアプリケーションに対して、それぞれ適切なコアを割り当てる事で計算性能の向上や消費電力の低減に大きく貢献します しかし、(Click)ヘテロジニアスマルチコアプロセッサを設計・検証するには、膨大な時間がかかってしまい、研究する上で大きな障害となっています(Click) 最適! 過剰! アプリケーション ヘテロジニアスマルチコア ホモジニアスマルチコア 2

3 FabHetero FabScalar 本研究の提案部分 FabCache FabBus Shared Memory Core0 Core1
Inst Cache Data L1-I L1-D L2 L2-I L2-D 本研究の提案部分 FabCache SnoopBus DataBus そこで、当研究室では、ノースカロライナ州立大学で提案されている、様々な構成のスーパースカラコアを自動生成するツールセットFabScalarを用いて、(Click) それに付随するキャッシュシステムを自動生成するツールFabCache(Click) 共有バスシステムを自動生成するツールFabBus(Click)を新たに提案・開発し、それらを組み合わせ、ヘテロジニアスマルチコアを自動生成するツールFabHeteroを提案しています 本研究では、FabHeteroのフレームワーク上の様々な構成のキャッシュシステムを自動生成するツールであるFabCache(Click)の提案と実装を行います FabBus Shared Memory 3

4 L3 cache(Shared Memory)
FabCache core0 core1 Core2 Core3 命令フェッチ幅の変更 アクセス レイテンシ増減 L1-I Cache L1-D cache L1-I Cache L1-D cache L1-I Cache L1-D cache L2 L2-I Cache L2-D cache 一貫性 ヘテロジニアスマルチコアではシステムを構成する個々のプロセッサコアの特徴によって最適なキャッシュ構成が異なります さらに、様々なパラメータ、例えばL1命令キャッシュの命令フェッチ幅を変更したり(Click)、L2キャッシュの一貫性を保つアルゴリズムを変更したり(Click) L2キャッシュへのアクセスレイテンシを変更したりなど(Click) 最適なキャッシュ構成を手動で設計・評価するのは組み合わせの膨大さから非常に困難です そこで、この問題を解決するためにヘテロジニアスマルチコアプロセッサ用のキャッシュシステムを自動生成するFabCacheを提案しました 本研究では主にFabCacheのL1命令キャッシュを実装を行いました(Click) また、このFabCacheは、キャッシュシステムを自動生成するという点で、従来にはないキャッシュジェネレータとなっています L3 cache(Shared Memory) 4

5 L3 cache(Shared Memory)
FabCache core0 core1 Core2 Core3 命令フェッチ幅の変更 アクセス レイテンシ増減 従来にはないキャッシュ ジェネレーターの提案 L1-I Cache L1-D cache L1-I Cache L1-D cache L1-I Cache L1-D cache L2 L2-I Cache L2-D cache 一貫性 L3 cache(Shared Memory) 4

6 L3 cache(Shared Memory)
FabCache Core FabCacheParam `define SIZE_ICACHE 1024 `define SIZE_DCACHE 1024 `define L2LATENCY 1 L1-I Cache L1-D cache L2 Cache 具体的にFabCacheを用いた任意のキャッシュシステムを生成する図を示します ユーザーは図に示したようなパラメータファイルの数字を変更するだけで、任意のキャッシュシステムが自動生成することができます L3 cache(Shared Memory) 5

7 Core スーパースカラ命令フェッチ概念図 命令Cache 命令1 命令2 命令3 命令8 `FETCH_WIDTH 3 8 2 要求 ・
ここで、今回FabCacheを実装する上での問題点とその対応を示します スーパースカラの場合、通常のプロセッサとは異なり、一度の要求で複数の命令をプロセッサ側に返します この為、通常のキャッシュで実装してしまうと問題があるため、キャッシュをインターリーブドメモリとして実装する事を提案し対応しました また、これを実装するにあたり、正しく効果がある事を確認する為、手動で設計したキャッシュを用いて予備実験を行った所 要求された性能を満たしている事が確認できました 命令3 命令8 6

8 FabScalarのクロックサイクル8.81ns
スーパースカラ命令フェッチ概念図 Core 要求 命令Cache インターリーブドメモリで実現 命令1 命令2 `FETCH_WIDTH FabScalarのクロックサイクル8.81ns 今回実装のキャッシュの遅延5.23ns 8 命令3 命令8 6

9 インターリーブドメモリ 1Cycle 命令の1サイクルフェッチを想定 Line0 Line2 Line4 Line6 Line1 Line3
a b c d i j k l    ・ a b c d i j k l    ・ c d e f 1Cycle Even Bank Line1 Line3 Line5 Line7 FabScalarでは性能向上の為に、任意の場所から連続した命令を1サイクルでフェッチする事を想定しています しかし、通常のキャッシュでは、キャッシュラインをまたいだアクセスが発生した時に1サイクルでフェッチを完了することができません そこで、本研究では、キャッシュをインターリーブドメモリとして構成することを提案し、任意の連続した命令を1サイクルでフェッチする事を可能にしました 図では2バンクのインターリーブドメモリを示しています 偶数バンクには偶数番地のラインが、奇数バンクには奇数番地のラインがそれぞれ格納されています このようにデータを格納することで、c,d,e,fのようなキャッシュラインを跨いだアクセスが発生した場合にも(Click)、偶数バンクからc,dを、奇数バンクからe,fを同時に読み出すことで(Click) 任意の連続した命令を全て1サイクルで揃えることを可能としました e f g h m n o p    ・ e f g h m n o p    ・ Req: c d e f Odd Bank 7

10 インターリーブドメモリ 1サイクルフェッチが可能 1Cycle 命令の1サイクルフェッチを想定 Line0 Line2 Line4
a b c d i j k l    ・ a b c d i j k l    ・ 1サイクルフェッチが可能 c d e f 1Cycle Even Bank Line1 Line3 Line5 Line7 FabScalarでは性能向上の為に、任意の場所から連続した命令を1サイクルでフェッチする事を想定しています しかし、通常のキャッシュでは、キャッシュラインをまたいだアクセスが発生した時に1サイクルでフェッチを完了することができません そこで、本研究では、キャッシュをインターリーブドメモリとして構成することを提案し、任意の連続した命令を1サイクルでフェッチする事を可能にしました 図では2バンクのインターリーブドメモリを示しています 偶数バンクには偶数番地のラインが、奇数バンクには奇数番地のラインがそれぞれ格納されています このようにデータを格納することで、c,d,e,fのようなキャッシュラインを跨いだアクセスが発生した場合にも(Click)、偶数バンクからc,dを、奇数バンクからe,fを同時に読み出すことで(Click) 任意の連続した命令を全て1サイクルで揃えることを可能としました e f g h m n o p    ・ e f g h m n o p    ・ Req: c d e f Odd Bank 7

11 評価結果1/2 FabCacheが生成したキャッシュが正しく動作していることを検証する為に、フェッチ幅、キャッシュサイズを変更してSPEC2000INTから6つのベンチマークを実行しました フェッチ幅を1,2,4,8と変更したときの、1サイクルあたりの命令コミット数IPCをそれぞれグラフに示しました この結果を見て、キャッシュサイズを増加させるにつれてIPCも増加し、また大容量のキャッシュでは100%ヒットする理想的なキャッシュと遜色のない性能となっており正しく実装できていることが 確認できました(Click) 8

12 評価結果2/2 ・手動で設計したL1命令キャッシュとの面積・遅延を比較 ⇒それぞれL1命令キャッシュのみ論理合成
⇒SRAMの容量は4KBに設定 生成方法 面積 遅延 FabCache 819,209μm² 2.27ns 手設計 818,590μm² 2.43ns また、FabCacheによって生成された回路が、手動で設計した回路と遜色がない事を示す為、FabCacheで生成したキャッシュと、手動で設計したキャッシュの面積を比較しました それぞれL1命令キャッシュのみ論理合成し、面積を出し、それに容量を4KBに設定したSRAMの面積を加算し評価したところ 表のような結果となり、(Click)同程度のハードウェア規模の回路が生成されている事から、実装の妥当性も確認できました(Click) 同程度のハードウェア規模を実現 9

13 ・柔軟なキャッシュシステム自動生成ツール
 まとめ  ・柔軟なキャッシュシステム自動生成ツール FabCacheの実装が出来た ⇒評価結果1から 正しく動作していることが実証できた ⇒評価結果2から 妥当な規模のハードウェアが生成されている事が実証できた     今後   まとめとして、(Click)評価結果から生成された回路は正しく動作し、手設計した回路と比較して遜色のない回路が生成されていることが確認できました (Click)今後の課題として、L1データキャッシュおよびL2キャッシュの機能実装を行い、より柔軟なキャッシュを自動生成できるシステムを構築していくことを目標としています   L1データキャッシュ   L2 キャッシュ         実装 10

14 データA データC データE データG データI データB データD データF データH データJ
奇数バンク データA データC データE データG データI データB データD データF データH データJ 偶数バンク プロセッサ

15 インタリーブキャッシュ FabScalarではキャッシュラインを跨いだ命令フェッチができる。よって性能向上のためにキャッシュメモリをインタリーブアクセス可にするために実装

16 FAB CACHEの仕様 可変になっている部分 可変域 命令のフェッチ幅 キャッシュサイズ L2キャッシュへのアクセスレイテンシ 連想度
ライン長 L1・L2間での受け渡しデータサイズ SRAMへのアクセスレイテンシ 1~8命令 2^n KB N Cycle N Way N Word N Byte

17 バンクメモリ メモリーを複数のバンクに分ける。そこに連続したメモリーアドレスを割り当てる事で、並列処理によって同時にアクセスし高速化する
 メモリーを複数のバンクに分ける。そこに連続したメモリーアドレスを割り当てる事で、並列処理によって同時にアクセスし高速化する 0: a b c d 1: e f g h 2: i j k l 3: m n o p 4: ・ 5:  ・ 6: ・ 7: ・ 同時にアクセス可! Memory 0: a b c d 2: i j k l 4:  ・ 6:  ・ 0: a b c d 2: i j k l 4:  ・ 6:  ・ 1: e f g h 3: m n o p 5:  ・ 7:  ・ 1: e f g h 3: m n o p 5:  ・ 7:  ・ Even Odd 5

18 評価結果1/2 キャッシュサイズを変えて動かしたとき、大きいほどきちんと性能が向上しているか(きちんと動作しているか) SAMPLE 7

19

20 インターリーブドメモリ2/2 Line0 Line1 Line2 Line3 Line4 Line5 Line6 Line7
a b c d e f g h i j k l m n o p   ・ a b c d e f g h 同時にアクセス可! 0: a b c d 2: i j k l 4:  ・ 6:  ・ 0: a b c d 2: i j k l 4:  ・ 6:  ・ 1: e f g h 3: m n o p 5:  ・ 7:  ・ 1: e f g h 3: m n o p 5:  ・ 7:  ・ Even Bank Odd Bank Normal Memory

21 FabScalarでは性能向上の為、任意の場所から連続した命令を
通常キャッシュの問題点 FabScalarでは性能向上の為、任意の場所から連続した命令を 1サイクルでフェッチする事を想定! Req: c d e f Line0 Line1 Line2 Line3 Line4 Line5 Line6 Line7 a b c d e f g h i j k l m n o p   ・ a b c d 1Cycle e f g h 2Cycleかかってしまう! c d 2Cycle e f c d e f Normal Memory 5

22

23


Download ppt "ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発"

Similar presentations


Ads by Google