1 / 32

11. マルチスレッド・プロセッサ

11. マルチスレッド・プロセッサ. 五島 正裕. 内容. スレッド と マルチスレッド・プロセッサ スループット指向 MTP TLP 指向 MTP. スレッド と マルチスレッド・プロセッサ. スレッドとは. スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」 いろいろなスレッド: OS のスレッド/スレッド・ライブラリ pthread , Solaris thread , NT thread 言語のスレッド Java thread. スレッドの実体. OS のタスク ― スレッド・モデル

beth
Télécharger la présentation

11. マルチスレッド・プロセッサ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 11. マルチスレッド・プロセッサ 五島 正裕

  2. 内容 • スレッド と マルチスレッド・プロセッサ • スループット指向 MTP • TLP 指向 MTP

  3. スレッド と マルチスレッド・プロセッサ

  4. スレッドとは • スレッド (thread): • 「プロセッサの実行状態」 • 「1つの PC で指定される命令流」 • いろいろなスレッド: • OS のスレッド/スレッド・ライブラリ • pthread,Solaris thread,NT thread • 言語のスレッド • Java thread

  5. スレッドの実体 • OS のタスク―スレッド・モデル • 1つのプロセス = 1つのタスク + 1つ,または,複数のスレッド • タスクの実体: メモリ・イメージ,ページの集合 • スレッドの実体: プロセッサ・コンテクスト スレッド タスク タスク シングル・スレッド・プロセス マルチスレッド・プロセス

  6. マルチスレッド・プロセッサ (MTP) • プロセッサ・コンテクスト (processor context) • 「プロセッサの動作状態を一意に定義するデータの集合」 • コンテクスト・スイッチのとき,退避/復帰されるもの • PC,レジスタ,etc. • マルチスレッド・プロセッサ (MTP): • 複数のプロセッサ・コンテクストを保持する • それらのスイッチを HW が行う

  7. 複数のスレッドの元 • 複数のスレッドの元 (source): • 複数のプログラムから1本ずつ • 1本のプログラムから複数のスレッド • それらの組み合わせ • 抽出の方法: • スレッド・ライブラリや言語機能を用いてプログラマが • 自動マルチスレッド化コンパイラが • HW が

  8. マルチスレッド・プロセッサ • マルチスレッド・プロセッサ • 複数スレッドを「同時に」実行できる1つのプロセッサ • マルチ・コア (multi-core) • 複数のプロセッサ(コア)が1つに集積されているもの • マルチスレッドのマルチ・コアもあり • マルチプロセッサ (multiprocessor) • 複数のプロセッサを持つ1つのシステム • マルチスレッドのマルチプロセッサもあり

  9. マルチスレッド・プロセッサの英訳? • Google • “Multithreaded Processor” (10,200件) • “Multi-threaded Processor” ( 698件) • “Multithreading Processor” ( 5,120件) • “Multi-Threading Processor” ( 157件) • “Multithread Processor” ( 195件) • “Multi-Thread Processor” ( 203件)

  10. マルチスレッド・プロセッサ (和訳) • Google • “マルチ スレッド プロセッサ” (226件) • “マルチ スレッディング プロセッサ” (18件) • “スレディッド”,“スレディド”,“スレッディッド”…(数件)

  11. MTP の分類 • TLP (Thread-Level Parallelism) 指向 • 粗粒度の並列性がない単一のプログラム ⇒ TLP の抽出 • スループット指向 • 粗粒度の並列性がある単一のプログラム(⇒ 複数のプログラム) • データ並列性 • 「粗粒度のスレッド」 • スレッド・ライブラリ • 言語のスレッド機能 • 複数のプログラム • 「単一のプログラムは速くならないが,  複数のプログラムを実行しても遅くならない」

  12. MTP の分類

  13. スループット指向 MTP

  14. スループット指向 MTP の対象 • スループット指向 MTP の対象: • 粗粒度の並列性がある単一のプログラム • データ並列性 • 「粗粒度のスレッド」 • スレッド・ライブラリ • 言語のスレッド機能 • 複数のプログラム: • 「単一のプログラムは速くならないが,  複数のプログラムを実行しても遅くならない」

  15. スループット指向 MTP の戦略 • スループット指向 MTP の戦略: • 計算資源の利用効率の向上 • シングル・スレッドでは使いきれない計算資源の活用 • 使い切れない原因:レイテンシ • 依存関係:レイテンシ分の空きスロット,バブル • 予測ミス:ペナルティ分の空きスロット,バブル • 実際的な主要因: • データ依存 • 分岐予測ミス • キャッシュ・ミス

  16. スループット指向 MTP の分類 • 古典的(90's ~): • 細粒度 (fine-grain) MTP • クロック単位で切り替え • 粗粒度 (coarse-grain) MTP • 長レイテンシ(キャッシュ・ミス)発生時に切り替え • 最近 • SMT (Simultaneous Multi-Threading) プロセッサ • 命令単位で切り替え • Intel Hyper-Threading (HT) Technology (2threads) • Sun Niagara (4threads) • SONY Cell PPE (2threads)

  17. 細粒度 MTP の効果 cycle cycle

  18. 粗粒度 MTP の効果 cycle キャッシュ ミス キャッシュ ミス

  19. SMT の効果 演算器 演算器 演算器 cycle cycle

  20. SMT PC PC RF RF RF 命令 キャッシュ 命令 ウィンドウ リネーム 演算器 ロジック フェッチ Fetch リネーム Rename ディスパッチ Dispatch スケジュール Schedule 読出 OR 実行 Exec 書戻 WB 発行 Issue フロントエンド front-end バックエンド back-end

  21. SMT の構成 • Out-of-Order スーパスカラがベース • 拡張: • 命令フェッチ: • 細粒度で(クロックごとに)スレッド切り替え • それ以外: • 論理レジスタ番号をスレッドの ID で拡張 • 「スレッド 0 は r0~r31,スレッド 1 は r32~r63」

  22. SMT の利点/欠点 • 利点: • OoO スーパスカラから,わずかな追加 HW で,MT化できる • 他の MTP に比べ, 分岐予測ミス・ペナルティを含む,すべてのレイテンシを隠蔽可能 • 欠点: • マルチコアに比べると,性能向上幅が小さい • 「貧乏人のマルチコア」 • スケーラブルでない • 大容量のレジスタ・ファイルが必要になる

  23. TLP 指向 MTP

  24. TLP と ILP • ILP : Instruction-Level Parallelism • (1本のスレッドの中の)命令レベルの並列性 • TLP : Thread-Level Parallelism •  複数のスレッドの中の 命令レベルの並列性 • データ並列性や「粗粒度のスレッド」によるスレッドの並列性は,TLP とは言わない(たぶん)

  25. スレッドの抽出法 • スレッドの抽出法: • 静的: • コンパイラ • バイナリ互換性なし • 動的: • プロセッサ • バイナリ互換性維持

  26. SpMT • SpMT(Speculative Multi-Threading,投機的MT) • 分岐予測の拡張 • 親スレッドが,複数の子スレッドを投機的に fork,データ予測 • あたったスレッドが生き残る 分岐予測 SpMT PC PC PC PC PC

  27. Pseudo Multi-Threading • Pseudo Multi-Threading • Intel Hyper-Threading (HT) Technology • メイン・スレッド × 1 + ヘルパ・スレッド × 1 • ヘルパ・スレッド • 簡約化されたコードを実行し,キャッシュ・プリフェッチを行う • メイン・スレッド • キャッシュ・アクセスがヒットする

  28. Slipstream Processors • Slipstream Processors • メイン・スレッド × 1 + サブ・スレッド × 複数 • メイン・スレッド • 静的予測に基づいて簡約化されたコードを実行 • サブ・スレッド • メイン・スレッドの後を追って, • 簡約化されていないコードを実行し,予測を検証

  29. 今日のまとめ

  30. 今後の予定

  31. レポート課題 • 課題:1は任意,2は必須 • 遅延分岐では,compare & branch に完全に対処することは困難であると思われる.実際のパイプライン・マシン (ex. MIPS R2000/3000) ではどうなっているのか調べよ. • コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. • 提出方法: • e-mail • To: goshima@mtl.t.u-tokyo.ac.jp • Subject: 「ACA」,「レポート」を含めること • 様式,フォーマット,分量 • 自由 • 期限 • 8/16(火) • http://www.mtl.t.u-tokyo.ac.jp/~goshima/

  32. レポート課題 • コンピュータ・アーキテクチャにおける種々の投機技術に対し,現実世界における類似の技術を挙げ,それらの間の相違点について論ぜよ. • 「種々の投機技術」

More Related