1.4k likes | 1.79k Views
3 次元積層が可能にする 次世代マイクロプロセッサ・アーキテクチャ. 九州大学 井上こうじ ( inoue@ait.kyushu-u.ac.jp ). More Than Moore を目指して. なぜ 3 次元積層なのか ?. Wire-bonding (WB) 3D stacking (System-in-Package or SiP). Package-on-Package (POP) 3D stacking. 半導体も 2D から 3D の世界へ !. 複数のダイを同一パッケージに集積
E N D
3次元積層が可能にする次世代マイクロプロセッサ・アーキテクチャ3次元積層が可能にする次世代マイクロプロセッサ・アーキテクチャ 九州大学 井上こうじ (inoue@ait.kyushu-u.ac.jp)
More Than Mooreを目指して なぜ3次元積層なのか?
Wire-bonding (WB) 3D stacking (System-in-Package or SiP) Package-on-Package (POP) 3D stacking 半導体も2Dから3Dの世界へ! • 複数のダイを同一パッケージに集積 • ダイ間を貫通ビア(Through Silicon Via:TSV)で接続 TSV Multi-Level 3D IC Sensor IO RF Analog DRAM Source: Yuan Zie, “3D IC Design/Architecture,” Coolchips Special Session, 2009 Processor
「3次元積層デバイス」の時代が到来 ISSCC’09 Image Sensor(MIT) Photo SRAM for SoCs(NEC) Photo Source: EMC-3D Technical Symposium 8Gb 3D DRAM(Samsung) SRAM+Multicore(Keio Univ.) Photo Photo U. Kang et al., “8Gb DDR3 DRAM Using Through-Silicon-Via Technology,” ISSCC’09. H. Saito et al., “A Chip-Stacked Memory for On-Chip SRAM-Rich SoCs and Processors, “ ISSCC’09. V. Suntharalingam et al., “A 4-Side Tileable Back Illuminated 3D-Integrated Mpixel CMOS Image Sensor,” ISSCC’09. K. Niitsu et al., “An Inductive-Coupling Link for 3D Integration of a 90nm CMOS Processor and a 65nm CMOS SRAM,” ISSCC’09.
3次元積層の「うれしさ」~配線長削減による高性能/低消費電力化~3次元積層の「うれしさ」~配線長削減による高性能/低消費電力化~ • 送受信モジュール間の物理的な距離を短縮 • 「長い配線の負荷容量」を「TSV負荷容量」に置換え • 得に,グローバル配線において効果大(mm→um) • フットプリント面積を削減 • クロック信号や電源ラインなどの配線長を削減 2次元実装IC
3次元積層の「うれしさ」~高いオンチップメモリバンド幅の実現~3次元積層の「うれしさ」~高いオンチップメモリバンド幅の実現~ 1)インテル:http://www.intel.com/pressroom/archive/releases/20060926corp_b.htm 2)日経マイクロデバイス2008年2月 • 面と面の接続によるバンド幅拡大 • Intel: 80個のプロセッサ・コア+SRAM間1) • 1TB/Sのバンド幅で接続 • HRI: プロセッサ+カスタム回路+SDRAM2) • プロセッサーカスタム回路間:1,056個のTSVで接続 • カスタム回路-SRAM間:278個のTSVで接続 • 「メモリ・ウォール問題」の有望な解決策 Perfect L2 cache (100% ヒット) 1MB L2 cache Cholesky
3次元積層の「うれしさ」~異種ダイの積層による高機能化~3次元積層の「うれしさ」~異種ダイの積層による高機能化~ • 製造プロセスの異なるダイを低コストで積層 • 従来のSiP • TSVを用いることでダイ間を高バンド幅で接続可能 • 従来にない新しい応用の可能性 • SRAM/DRAM以外の選択肢(例:不揮発性メモリの積層など)
マイクロプロセッサ発展の歴史を振り返る インテグレーションがもたらすマイクロプロセッサの進化
「インテグレーション」が可能にしたマイクロプロセッサの進化「インテグレーション」が可能にしたマイクロプロセッサの進化 Intel 4004 (1971) Intel 486 (1989) Photo Photo 2,300個のトランジスタを集積 数値演算コプロセッサとキャッシュメモリを集積 Intel Pentium D (2005) Intel Test Chip (2007) Photo Photo 80個のプロセッサコアを1つのダイに集積 2個のプロセッサコアを1つのパッケージに集積 出展: http://ja.wikipedia.org/wiki/Intel_486, http://ascii24.com/news/i/tech/article/2005/05/27/655984-000.html, http://www.intel.com/museum/online/hist_micro/hof/index.htm, http://techresearch.intel.com/articles/Tera-Scale/1421.htm
インテグレーションが成功するには? • マイクロプロセッサのお仕事は? • プログラム(ソフトウェア)を「効率よく」実行 • インテグレーションの効果を発揮するには? • ソフトウェアの特性を考慮する事が重要 成功例:キャッシュメモリの場合 Program Processor メモリアドレス Cache 時間 頻繁に参照されるメモリ領域を キャッシュメモリに保存 多くのプログラムは 「メモリ参照の時間/空間局所性」が有る!!
3次元積層の利点と欠点 3次元積層プロセッサに関する4つの素朴な疑問
素朴な疑問その1~大容量キャッシュ積層は本当に得策か?~素朴な疑問その1~大容量キャッシュ積層は本当に得策か?~ 平均メモリアクセス時間:AMAT L1キャッシュのアクセス時間[cc] L1キャッシュ ミスの割合 L2キャッシュのアクセス時間[cc] L2キャッシュ ミスの割合 主記憶のアクセス時間[cc]
大容量化によるL2ミス削減効果はアプリによって異なる!大容量化によるL2ミス削減効果はアプリによって異なる! Sensitive! Insensitive! Sensitive! Sensitive! Insensitive! Insensitive!
その結果,メモリ性能が低下することも! 大容量DRAM の3次元積層 メモリ性能 向上率 従来の 2次元実装 3.0 2.5 Ocean 2.0 性能向上 1.5 1.0 性能低下 0.5 Cholesky 0 0 50 100 80 100 60 150 40 L2キャッシュ アクセス時間の増加 20 0 200 L2キャッシュミス率の削減率 [cc] [points]
素朴な疑問その2~高メモリバンド幅の活用は本当に得策か?~素朴な疑問その2~高メモリバンド幅の活用は本当に得策か?~ • マイクロプロセッサと主記憶の1チップ化 • キャッシュ-主記憶間のデータ転送能力が劇的に向上 • ミス・ペナルティの増加を伴う事無くラインサイズ(ブロックサイズ)を拡大可能 平均メモリアクセス時間 = キャッシュヒット時間+ミス率×ミスペナルティ ミスペナルティ = DRAMアクセス時間+ラインサイズ/バンド幅 Stacked Main Memory DRAM Main Memory L1 Mem. BW: → LineSize: ↗ MissPenalty: ↗ Mem. BW: ↗ LineSize: ↗ MissPenalty: → Core L1 Core L1 Core L1 Core
104.hydro2d 14.0 099.go 14.0 072.sc 134.perl 12.0 12.0 052.alvinn 10.0 10.0 8.0 8.0 16KB L1D$ Miss Rate (%) 16KB L1D$ Miss Rate (%) 6.0 6.0 4.0 4.0 2.0 2.0 0.0 0.0 32 16 64 256 128 32 16 64 256 128 Line Size [byte] Line Size [byte] ラインサイズ拡大効果はアプリによって異なる!(性能が低下することも!) • 高オンチップメモリバンド幅を積極活用するには? • キャッシュ・ラインサイズ(ブロックサイズ)を拡大 • その効果は? • アプリケーションが有する「メモリ参照の空間局所性の度合い」に大きく依存 Better
素朴な疑問その3~主記憶の積層は本当に得策か?~素朴な疑問その3~主記憶の積層は本当に得策か?~ • 3次元積層LSIの問題点はチップ温度上昇 • チップ温度は消費電力に依存 • 消費電力はプロセッサの動作周波数に依存 • 「プロセッサの最大動作周波数はチップ温度制約により決定」と仮定すると・・・ Stacked Main Memory DRAM Main Memory Tem. : ↘ Freq.: ↗ Mem. Stall: ↗ Tem. : ↗ Freq.: ↘ Mem. Stall: ↘ L1 L1 Core L2 Cache L2 Cache L1 L1 Core
アプリ特性によっては3D化により性能が低下する場合がある!アプリ特性によっては3D化により性能が低下する場合がある! • mcf(Highly Memory Intensive) • 動作周波数 • 2D: 約2.9GHz • 3D: 約2.5GHz • 平均命令実行時間 • 2D: 約2.5 • 3D: 約0.6(Better) • twolf(Less Memory Intensive) • 動作周波数 • 2D: 約2.8GHz • 3D: 約2.4GHz • 平均命令実行時間 • 2D: 約0.35(Better) • 3D: 約0.41 G. L. Loi, B. Agrawal, N. Srivastava, S. Lin, T. Sherwood, and K. Banerjee, “A Thermally-Aware Performance Analysis of Vertically Integrated (3-D) Processor-Memory Hierarchy,” DAC’06.
素朴な疑問その4~主記憶を積層してL2$は必要か?~素朴な疑問その4~主記憶を積層してL2$は必要か?~ • L2(ラストレベル)キャッシュ導入の狙いは主記憶アクセス回数の削減 • 主記憶のオンチップ化により効果減(!?) • 現在のプロセッサでは「L2面積≈全コア面積」 • L2面積を用いてコア数を増加可能と仮定すると・・ Stacked Main Memory Stacked Main Memory TLP : ↘ Freq.:→ Mem. Acc.: ↘ TLP : ↗ Freq.:→ Mem. Acc.: ↗ Core Core Core Core Core Core SRAM L2$
アプリが有する並列性とメモリ性能依存性により適切な構成は異なる!アプリが有する並列性とメモリ性能依存性により適切な構成は異なる! K8=0.5(全実行時間の50%がメモリストール) K8=0.1(全実行時間の10%がメモリストール) 性能低下 F=0.7 2.0 1.5 1.0 0.5 0.0 2.0 1.5 1.0 0.5 0.0 相対実行時間 相対実行時間 0.0 0.0 0.0 0.0 1 1 1 1 0.2 0.2 0.2 0.2 2 2 2 2 ベース:L2未搭載8コア(1.0) コア数削減によるL2搭載 3 3 3 3 0.4 0.4 0.4 0.4 4 4 4 4 0.6 0.6 0.6 0.6 5 5 5 5 2.0 1.5 1.0 0.5 0.0 6 6 6 6 0.8 0.8 0.8 0.8 2.0 1.5 1.0 0.5 0.0 7 7 7 7 メモリ性能改善率(r) メモリ性能改善率(r) メモリ性能改善率(r) メモリ性能改善率(r) 1.0 1.0 1.0 1.0 8 8 8 8 搭載コア数(N-m) 搭載コア数(N-m) 搭載コア数(N-m) 搭載コア数(N-m) 相対実行時間 相対実行時間 F=0.95 N=8(最大コア数が8)の場合
次世代3Dマイクロプロセッサへの道 アプリケーション実行の振舞いの変化に適応する!~Hybrid Cache architecture~
素朴な疑問その1(再)~大容量キャッシュ積層は本当に得策か?~素朴な疑問その1(再)~大容量キャッシュ積層は本当に得策か?~ 平均メモリアクセス時間:AMAT L1キャッシュのアクセス時間[cc] L1キャッシュ ミスの割合 L2キャッシュのアクセス時間[cc] L2キャッシュ ミスの割合 主記憶のアクセス時間[cc]
着目するソフトウェア特性(その1)~L2ミス削減効果はアプリによって異なる~着目するソフトウェア特性(その1)~L2ミス削減効果はアプリによって異なる~ Sensitive! Insensitive! Sensitive! Sensitive! Insensitive! Insensitive!
着目するソフトウェア特性(その2)~L2ミス削減効果は実行中にも変化する~着目するソフトウェア特性(その2)~L2ミス削減効果は実行中にも変化する~ Ocean 適したキャッシュ容量:大 (300cc) L1ミスペナルティ=HTL2+MRL2×MMAT 適したキャッシュ容量:小
ハイブリッド・キャッシュ~3次元積層DRAMを適応的に活用する!~ハイブリッド・キャッシュ~3次元積層DRAMを適応的に活用する!~ • ハイブリッド・キャッシュ・アーキテクチャの特徴 • 異なる2種類の動作モードをサポート • アプリケーションの要求メモリ容量に応じて動作モードを選択! • 高性能化と低消費電力化を同時に達成可能! • 動作モード • SRAMキャッシュ動作モード:小容量&高速 • DRAMキャッシュ動作モード:大容量&低速 橋口慎哉, 小野貴継, 井上弘士, 村上和彰, “3次元DRAM‐プロセッサ積層実装を対象としたオンチップ・メモリ・アーキテクチャの提案と評価,”情報処理学会研究報告, Vol. 2009-ARC-183, No.16, 2009年4月.
どの程度,性能向上を期待できるのか? 常に3次元積層DRAMをL2キャッシュとして活用 適切な動作モードは既知 実行中もモード切替を実施 適切な動作モードは既知 実行中はモード切替無し Better
次世代3Dマイクロプロセッサへの道 アプリケーション実行の振舞いの変化に適応する!~variable line-size Cache architecture~
素朴な疑問その2(再)~高メモリバンド幅の活用は本当に得策か?~素朴な疑問その2(再)~高メモリバンド幅の活用は本当に得策か?~ • マイクロプロセッサと主記憶の1チップ化 • キャッシュ-主記憶間のデータ転送能力が劇的に向上 • ミス・ペナルティの増加を伴う事無くラインサイズ(ブロックサイズ)を拡大可能 平均メモリアクセス時間 = キャッシュヒット時間+ミス率×ミスペナルティ ミスペナルティ = DRAMアクセス時間+ラインサイズ/バンド幅 Stacked Main Memory DRAM Main Memory L1 Mem. BW: → LineSize: ↗ MissPenalty: ↗ Mem. BW: ↗ LineSize: ↗ MissPenalty: → Core L1 Core L1 Core L1 Core
104.hydro2d 14.0 099.go 14.0 072.sc 134.perl 12.0 12.0 052.alvinn 10.0 10.0 8.0 8.0 16KB L1D$ Miss Rate (%) 16KB L1D$ Miss Rate (%) 6.0 6.0 4.0 4.0 2.0 2.0 0.0 0.0 32 16 64 256 128 32 16 64 256 128 Line Size [byte] Line Size [byte] 着目するソフトウェア特性(その1)~最適ラインサイズはアプリによって異なる~ • 高オンチップメモリバンド幅を積極活用するには? • キャッシュ・ラインサイズ(ブロックサイズ)を拡大 • その効果は? • アプリケーションが有する「メモリ参照の空間局所性の度合い」に大きく依存 Better
着目するソフトウェア特性(その2)~最適ラインサイズは実行中にも変化する~着目するソフトウェア特性(その2)~最適ラインサイズは実行中にも変化する~ 16KB Direct-Mapped Cache w/ 128B Lines Cache 128Bブロックのロード Cache プロセッサが2つの32Bブロックを参照 Cache 高い空間局所性 低い空間局所性 128Bブロックの追出し Ref. Sublines== 2
可変ラインサイズ・キャッシュ~高メモリバンドを適応的に活用する!~可変ラインサイズ・キャッシュ~高メモリバンドを適応的に活用する!~ • プログラム特性に応じてDRAMーキャッシュ間データ転送量(ラインサイズ)を自動調整 • メモリ参照の空間局所性の度合いを静的もしくは動的にモニタリング • ラインサイズを動的もしくは静的に決定 SRAM Cache SRAM Cache SRAM Cache DRAM 動的可変ラインサイズ・キャッシュ:K. Inoue, K. Kai, and K. Murakami, ``Dynamically Variable Line-Size Cache Exploiting High On-Chip Memory Bandwidth of Merged DRAM/Logic LSIs,‘‘ HPCA-5, 1999. 静的可変ラインサイズ・キャッシュ:T. Ono, K. Inoue, K. Murakami, and K. Yoshida, “Reducing On-Chip DRAM Energy via Data Transfer Size Optimization,” IEICE Tran. on Electronics, 2009. 高 必要となるメモリバンド幅 低 高 消費するエネルギー 低
どの程度,高性能化と低消費エネルギー化を実現できるのか?どの程度,高性能化と低消費エネルギー化を実現できるのか? 16KB Fix128 (Direct) 16KB Fix128 (4way) 32KB Fix128 (Direct) 16KB D-VLS128-32 (Direct) 1.5 1.0 1.13 Normalized AMAT (Ave. Mem. Access Time) 1.00 0.83 0.82 • ダイレクトマップ方式の高速アクセス • 128Bラインサイズによるプリフェッチ効果 • ラインサイズ縮小による競合ミス回避 Better 0.5 0.0 1.0 1.00 0.8 • ミス率改善によるオフチップアクセス回数削減 • 小ラインサイズにより活性化DRAMバンクを削減 0.6 0.72 Normalized AMAE (Ave. Mem. Access Energy) 0.4 0.42 Better 0.32 0.2 0.0
次世代3次元積層プロセッサを目指して~集積,協調,そして適応する!!~次世代3次元積層プロセッサを目指して~集積,協調,そして適応する!!~ • 3次元集積を前提としたアーキテクチャの再構築 • デバイス/アーキテクチャ技術の協調で互いの問題を解消 • プログラム実行ならびにデバイス状態の変化に適応 アプリケーション プログラム プロセッサ・アーキテクチャ(+コンパイラ) 3次元実装デバイス
実装からアプリケーションレベルまでの統合的な技術開発が必要!!実装からアプリケーションレベルまでの統合的な技術開発が必要!! 応用技術 (On-Line画像処理など) Program プログラミング技術 (API標準化, Tuningなど) Program Program Program コンパイラ/OS技術 (自動並列化, VMなど) アーキテクチャ技術 (CPU/メモリ構成, NOCなど) 回路設計技術 (Sub-Threshold回路など) 半導体製造/実装技術 (3次元積層など)
謝辞 • 本研究は,一部,NEDO若手グラント「エネルギー効率の最大化を目的とした適応型3次元マイクロプロセッサ・アーキテクチャの研究」による.
マルチコア・プロセッサと3次元積層への展開マルチコア・プロセッサと3次元積層への展開 九州大学 村上・井上・馬場研究室 井上こうじ (inoue@ait.kyushu-u.ac.jp)
「富士通さま」との関係(井上こうじの場合)「富士通さま」との関係(井上こうじの場合) • 富士通が「世界初」 • 研究会発表(M1時代@1995) • 教員になってからの共同研究 • 社会人ドクターの指導 • 大型プロジェクトのチームリーダー(PSIプロジェクト) • 富士通が「No1」 • 「井上研究室」出身の就職先 • 40%が富士通に入社!(といっても2/5ですが・・・) • 企業訪問回数(川崎+汐留)とTV会議回数(川崎) • 研究プロジェクトや学会活動を通して知合った方の数
講演内容 • マルチコア・プロセッサ • コア・オーケストレーション実行 • 3次元積層マイクロプロセッサへの展開 • なぜ3次元積層なのか? • 3次元積層プロセッサ・アーキテクチャ • プロセッサ・コアと大容量キャッシュを積層する • プロセッサ・コアと大容量メモリを積層する • プロセッサ・コアと新メモリデバイスを積層する • 今後の展開
講演内容 • マルチコア・プロセッサ • コア・オーケストレーション実行 • 3次元積層マイクロプロセッサへの展開 • なぜ3次元積層なのか? • 3次元積層プロセッサ・アーキテクチャ • プロセッサ・コアと大容量キャッシュを積層する • プロセッサ・コアと大容量メモリを積層する • プロセッサ・コアと新メモリデバイスを積層する • 今後の展開
マルチコア向けコア・オーケストレーション実行マルチコア向けコア・オーケストレーション実行
Intel Core Duo 2 processors Sun Niagara 8 processors 「シングルコア」から「マルチコア」へ • 現在の主流はマルチコア・プロセッサ • 2~<10個のコアを搭載 • インテルテストチップでは80コア(メニーコア) • その理由は? • コア数に比例した性能向上(を期待できる) • 低動作周波数を維持→消費電力削減へ • 高い設計容易性
マルチコア・プロセッサでのプログラム実行方式マルチコア・プロセッサでのプログラム実行方式 • 1つのチップ上に複数のプロセッサコアを搭載 • 同時に複数のコアで実行することにより性能向上 マルチプログラミング 並列処理 並列 プログラム プログラム 2 プログラム 3 プログラム 1 プログラム 4 複数のスレッド に分割 Core 0 Core 1 Core 2 Core 3 Core 0 Core 1 Core 2 Core 3
「集積」「協調」そして「適応」する! ~コア・オーケストレーション実行~ • コア同士の「助け合い実行」を実現 • 各コアのHW特性ならびにプログラム実行の振舞いをプログラム実行前/実行時に観測 • 収集した情報に基づきボトルネック箇所/原因を特定(性能,消費電力,信頼性など) • ボトルネックを解消するようコア間で協調実行 Core 0 Core 1 Core 2 Core 3 Core 0 Core 1 Core 2 Core 3 Core 4 Core 5 Core 6 Core 7 Core 4 Core 5 Core 6 Core 7 従来型8並列実行 従来型6並列実行+2サポート実行
アムダールの法則(を思い出そう) 1 Amdahl’s Speedup = • 高性能化を実現するには? • F(並列実行可能部分)を大きくする! • 逐次実行時間を短縮する! • 並列実行時間をF/Nに近づける! 1ーF F + 1 N Parallel Execution Sequential Execution
なぜ並列実行性能が低下するのか? • メモリウォール問題 • プロセッサ-主記憶間の速度差拡大 • マルチコアでは更に深刻化 • 逐次実行部分でも問題 Barnes Cholesky Perfect L2 cache (100% ヒット) Perfect L2 cache (100% ヒット) 1MB L2 cache 1MB L2 cache 出典:J.L.Hennessy, D.A.Patterson, “Computer Architecture: A Quatitative Approach 3rd Edition”
演算/メモリ性能バランシング • コアを用途に応じて使い分け • アプリ実行用(メインコア) • メモリ性能向上用(ヘルパーコア) • 演算/メモリ性能のバランスを考慮して各コア数を決定 • 敢えて演算性能を低下してでもトータル性能を向上! Perfect L2 cache (100% ヒット) Core 0 Core 1 Core 2 Core 3 本研究の狙い 6.9% Core 4 Core 5 Core 6 Core 7 1MB L2 cache Cholesky アプリ 実行用 メモリ性能 向上用
ヘルパーコア導入によりなぜマルチコア性能が向上するのか?ヘルパーコア導入によりなぜマルチコア性能が向上するのか? • 2つのヘルパーコア実現法 • SWプリフェッチャ実行→投機的に参照データをロード! • メモリ貸与→見かけ上のオンチップ・メモリ容量を増加! • ポイント:如何に最適なヘルパーコア数を決定するか? 実行時間を最小にするヘルパーコア数が存在!! ヘルパーコア数を増やすと・・・ ヘルパーコアによりオフチップ・メモリアクセス回数を削減 →メモリ性能を向上 プログラム実行時間 メモリ参照に 要する時間 メインコア数が少なくなるため並列実行効果が低減 →演算性能が低下 演算に要する時間 1 N-1 ヘルパーコア数 (N:搭載している総コア数)
ヘルパーコアをどう実現するか?~共有L2キャッシュ搭載型マルチコア~ヘルパーコアをどう実現するか?~共有L2キャッシュ搭載型マルチコア~ • ソフトウェア・プリフェッチャを実行 • あえて活用可能なスレッドレベル並列性を低下 • その分メモリ性能を向上 • 動的性能バランシング • 繰返し実行される並列化部分に着目 • 実行中に適切なヘルパーコア数を決定 演算性能が 不足する場合 メモリ性能が 不足する場合 ヘルパースレッド(SWプリフェッチャ) 並列アプリケーション Helper Threads (SW Prefetcher) Main Core Main Core Main Core Main Core Main Core Helper Core Helper Core I$ I$ I$ I$ I$ I$ I$ D$ D$ D$ D$ D$ D$ D$ Prefetching Shared L2 Cache Main Memory
ハードウェア/ソフトウェア・サポート • “Miss State Buffer (MSB)” の導入 • Linux-OSによるヘルパースレッドの実行 while (true) { 1.miss_info = msb.addr; 2.pref = predict(miss_info); 3.prefetch(pref); } To Processor Main Core Helper Core Main Core Helper Core PC Ref. Addr. Core ID PC Ref. Addr. Core ID I$ MSB I$ MSB I$ MSB I$ MSB D$ D$ D$ D$ PC Ref. Addr. Core ID Miss!! PC Ref. Addr. Core ID Shared L2 Cache PC Ref. Addr. Core ID Main Memory Miss information by snooping