11. マルチスレッド・プロセッサ
DESCRIPTION
11. マルチスレッド・プロセッサ. 五島 正裕. 内容. スレッド と マルチスレッド・プロセッサ スループット指向 MTP TLP 指向 MTP. スレッド と マルチスレッド・プロセッサ. スレッドとは. スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」 いろいろなスレッド: OS のスレッド/スレッド・ライブラリ pthread , Solaris thread , NT thread 言語のスレッド Java thread. スレッドの実体. OS のタスク ― スレッド・モデル - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/1.jpg)
AdvancedComputer
Architecture
11. マルチスレッド・プロセッサ
五島 正裕
![Page 2: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/2.jpg)
Advanced Computer Architecture
内容
1. スレッド と マルチスレッド・プロセッサ2. スループット指向 MTP
3. TLP 指向 MTP
![Page 3: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/3.jpg)
AdvancedComputer
Architecture
スレッド と マルチスレッド・プロセッサ
![Page 4: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/4.jpg)
Advanced Computer Architecture
スレッドとは
スレッド (thread) : 「プロセッサの実行状態」 「 1 つの PC で指定される命令流」
いろいろなスレッド: OS のスレッド/スレッド・ライブラリ
pthread , Solaris thread , NT thread
言語のスレッド Java thread
![Page 5: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/5.jpg)
Advanced Computer Architecture
スレッドの実体
OS のタスク―スレッド・モデル 1 つのプロセス = 1 つのタスク + 1 つ,または,複数のスレッド
タスクの実体: メモリ・イメージ,ページの集合 スレッドの実体: プロセッサ・コンテクスト
タスク タスク
シングル・スレッド・プロセス マルチスレッド・プロセス
スレッド
![Page 6: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/6.jpg)
Advanced Computer Architecture
マルチスレッド・プロセッサ (MTP)
プロセッサ・コンテクスト (processor context)
「プロセッサの動作状態を一意に定義するデータの集合」 コンテクスト・スイッチのとき,退避 / 復帰されるもの PC ,レジスタ, etc .
マルチスレッド・プロセッサ (MTP) : 複数のプロセッサ・コンテクストを保持する それらのスイッチを HW が行う
![Page 7: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/7.jpg)
Advanced Computer Architecture
複数のスレッドの元
複数のスレッドの元 (source) : 複数のプログラムから 1 本ずつ 1 本のプログラムから複数のスレッド それらの組み合わせ
抽出の方法: スレッド・ライブラリや言語機能を用いてプログラマが 自動マルチスレッド化コンパイラが HW が
![Page 8: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/8.jpg)
Advanced Computer Architecture
マルチスレッド・プロセッサ
マルチスレッド・プロセッサ 複数スレッドを「同時に」実行できる 1 つのプロセッサ
マルチ・コア (multi-core)
複数のプロセッサ(コア)が 1 つに集積されているもの マルチスレッドのマルチ・コアもあり
マルチプロセッサ (multiprocessor)
複数のプロセッサを持つ 1 つのシステム マルチスレッドのマルチプロセッサもあり
![Page 9: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/9.jpg)
Advanced Computer Architecture
マルチスレッド・プロセッサの英訳?
“Multithreaded Processor” (10,200 件 )
“Multi-threaded Processor” ( 698 件 )
“Multithreading Processor” ( 5,120 件 )
“Multi-Threading Processor” ( 157 件 )
“Multithread Processor” ( 195 件 )
“Multi-Thread Processor” ( 203 件 )
![Page 10: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/10.jpg)
Advanced Computer Architecture
マルチスレッド・プロセッサ (和訳)
“ マルチ スレッド プロセッサ” (226 件 )
“ マルチ スレッディング プロセッサ” (18 件 )
“ スレディッド”,“スレディド”,“スレッディッド”… ( 数件 )
![Page 11: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/11.jpg)
Advanced Computer Architecture
MTP の分類
TLP (Thread-Level Parallelism) 指向 粗粒度の並列性がない単一のプログラム ⇒ TLP の抽出
スループット指向 粗粒度の並列性がある単一のプログラム(⇒ 複数のプログラム)
データ並列性 「粗粒度のスレッド」
– スレッド・ライブラリ– 言語のスレッド機能
複数のプログラム 「単一のプログラムは速くならないが,
複数のプログラムを実行しても遅くならない」
![Page 12: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/12.jpg)
Advanced Computer Architecture
MTP の分類
プログラム 粗粒度の並列性 指向
単一
なしTLP 指向
(Thread-Level Parallelism)
データ並列性粗粒度のスレッド
スループット指向
複数 ―
![Page 13: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/13.jpg)
AdvancedComputer
Architecture
スループット指向 MTP
![Page 14: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/14.jpg)
Advanced Computer Architecture
スループット指向 MTP の対象
スループット指向 MTP の対象: 粗粒度の並列性がある単一のプログラム
データ並列性 「粗粒度のスレッド」
– スレッド・ライブラリ– 言語のスレッド機能
複数のプログラム: 「単一のプログラムは速くならないが,
複数のプログラムを実行しても遅くならない」
![Page 15: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/15.jpg)
Advanced Computer Architecture
スループット指向 MTP の戦略
スループット指向 MTP の戦略: 計算資源の利用効率の向上 シングル・スレッドでは使いきれない計算資源の活用
使い切れない原因:レイテンシ 依存関係:レイテンシ分の空きスロット,バブル 予測ミス:ペナルティ分の空きスロット,バブル
実際的な主要因: データ依存 分岐予測ミス キャッシュ・ミス
![Page 16: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/16.jpg)
Advanced Computer Architecture
スループット指向 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)
![Page 17: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/17.jpg)
Advanced Computer Architecture
細粒度 MTP の効果
cyclecycle
![Page 18: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/18.jpg)
Advanced Computer Architecture
粗粒度 MTP の効果
キャッシュミス
キャッシュミス
cycle
![Page 19: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/19.jpg)
Advanced Computer Architecture
SMT の効果
演算器 演算器 演算器
cycle cycle
![Page 20: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/20.jpg)
Advanced Computer Architecture
SMT
![Page 21: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/21.jpg)
Advanced Computer Architecture
![Page 22: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/22.jpg)
Advanced Computer Architecture
![Page 23: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/23.jpg)
AdvancedComputer
Architecture
![Page 24: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/24.jpg)
Advanced Computer Architecture
![Page 25: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/25.jpg)
Advanced Computer Architecture
![Page 26: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/26.jpg)
Advanced Computer Architecture
![Page 27: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/27.jpg)
Advanced Computer Architecture
![Page 28: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/28.jpg)
Advanced Computer Architecture
![Page 29: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/29.jpg)
AdvancedComputer
Architecture
![Page 30: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/30.jpg)
Advanced Computer Architecture
![Page 31: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/31.jpg)
Advanced Computer Architecture
![Page 32: 11. マルチスレッド・プロセッサ](https://reader035.vdocuments.mx/reader035/viewer/2022062408/56813a7e550346895da27b68/html5/thumbnails/32.jpg)
Advanced Computer Architecture