overview of the start(*t) multithreaded computer
DESCRIPTION
Overview of the START(*T) Multithreaded Computer. Michael J. Beckerle 2003/6/5 早津 政和 [email protected]. Agenda. 0. Abstract 1. Introduction 2. Processor-Integrated Networking 3. Transmitting and Receiving 4. Multithreading on *T 5. Network Architecture - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/1.jpg)
Overview of the START(*T) Multithreaded
Computer
Michael J. Beckerle
2003/6/5早津 政和
![Page 2: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/2.jpg)
Agenda
0. Abstract 1. Introduction 2. Processor-Integrated Networking 3. Transmitting and Receiving 4. Multithreading on *T 5. Network Architecture 6. The *T Operating System 7. *T Physical Packaging Concepts 8. Conclusion
![Page 3: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/3.jpg)
0. Abstract
START(*T) M.I.T と Motorola が開発 様々な並列プログラミングスタイルをサポート
マシンサイズの拡大による、メモリのレイテンシ増加にも耐えうるマルチスレッドプログラミング
ネットワークメッセージインターフェースと同期機構がプロセッサと密接に関連した構造
UNIX-like なソフトウェア環境
![Page 4: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/4.jpg)
1. Introduction
*T は “ start” と読む “*”: multiple, “T”: threaded “start”: 新しいスレッドを開始するという抽象的手
続き
マルチスレッド メモリ操作のレイテンシが大きい計算にも耐えう
る プロセッサ間のメッセージを用いた split-phase
transaction (後述)として表現
![Page 5: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/5.jpg)
2. Processor-Integrated Networking
88110 Multi-Processor (88110MP) Motorola 88110 Symmetric Superscalar™
microprocessor+
Message and Synchronization Unit (MSU) 細粒度の通信と同期を行う命令セットとレジスタ群 ネットワークインターフェースとメモリインター
フェースを 完全に分離 88110 の命令と同様に dual-issue
![Page 6: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/6.jpg)
2.1 MSU instruction set
25 の MSU 命令を追加 重要な命令
sttx : Store into Transmit Registers ldrx : Load from Receive Registers rxpoll: Poll Receive Status sched : Schedule Next Microthread cpost : Conditionally Post and
Schedule Next Microthread
![Page 7: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/7.jpg)
3. Transmitting and Receiving
通信はレジスタを介して行う 送信: general register
⇒ transmit(tx) register network⇒ 受信: network
⇒ receive(rx) register general ⇒register
OS を介さずにメッセージを受け取ることができる
![Page 8: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/8.jpg)
3.1 Transmitter Instructions(1/2)
基本的な transmitter instruction は sttx (store into transmit registers)
transmitter レジスタ (Fig. 2 左 ) 32-bit レジスタ 24 個の集まりで構成 4 レジスタで 1 つのグループを形成し、 2 層に分
かれる⇒ 88110 の dual-issue の特性を用いて、 1 clock で 64-bit words のデータ 4 つをストア
![Page 9: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/9.jpg)
3.1 Transmitter Instructions(2/2)
コード片 (Code 1) sttx : transmit レジスタにストア sttx...go: transmit レジスタ中のメッセージを
ネットワークに送る bcnd : 条件分岐の投機的実行
データ長は最大 22 words word 0: 送信先のプロセッサのノード番号 word 1: メッセージ長(最低 5bit 必要)
![Page 10: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/10.jpg)
3.2 Receiver Instructions (1/2)
基本的な receiver instruction は ldrx (load from receive registers)
receiver レジスタ (Fig. 2 右 ) 32-bit レジスタ 24 個の集まりで構成 2 レジスタで 1 つのグループを形成し、 2 層に分か
れる⇒ 88110 は dual-operand/single-result 操作に 特化されているため、 1 clock で 64-bit words のデータ 2 つをロード
![Page 11: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/11.jpg)
3.2 Receiver Instructions (2/2)
コード片 (Code 2) ldrx : receive レジスタからロード rxpoll.next: メッセージの有無を確認
存在した場合、 receive レジスタに移動
※ OS の制御を介さない
![Page 12: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/12.jpg)
4. Multithreading on *T (1/2)
microthread ブロックしない ( 排他的で共有できない性質を持
つ ) 部分のコード 止まる必要がある場合(他の microthread との
同期・ネットワークメッセージ待ちなど)は、 microthread を終了し、別の microthread をスケジューリングする
受信データは microthread descriptor を運ぶ 32-bit instruction pointer (IP), 32-bit data pointer (DP)
の組 (Fig. 3)
![Page 13: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/13.jpg)
4. Multithreading on *T (2/2)
microthread scheduling network receiver にメッセージが届く (Fig. 4)
送信側が microthread descriptor を埋め込む必要あり microthread が sched 命令を行う (Code 3)
優先度の一番高いメッセージを receive レジスタに移動
メッセージの中の microthread descriptor を返す microthread が jmp 命令を行う (Code 3)
元の microthread は終了 制御は IP 部に移る(次の microthread が開始)
![Page 14: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/14.jpg)
4.1 Split-Phase Transaction(1/2)
local virtual address (LVA) 各プロセスの持つ 32bit の仮想アドレス空間
global virtual address (GVA) 論理ノード番号 ( 最大 16bit) + local virtual
address MSU 命令を通して他のプロセッサのアドレスを
指定する場合に用いる microthread descriptor は (Fig. 3 下 ) のように
なり、 DP/IP の長さに制限がかかる
![Page 15: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/15.jpg)
4.1 Split-Phase Transaction(2/2)
split phase transaction でのメッセージ (Fig. 5)
遠隔ロード要求側のコード片 (Code 4) sttx.rt… : リターンアドレスを
global microthread descriptor に変換 遠隔ロード応答側のコード片 (Code 5)
sttx.rsp: global microthread descriptor を node no, IP, DP に変換
メッセージが届く間、別の microthread を実行可
![Page 16: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/16.jpg)
4.2 Microthread Synchronization
同期機構としてセマフォを提供
コード片 (Code 6) cpost : セマフォが条件を満たしているか確認
条件○⇒新たな microthread を作り、スタックに積む 優先度が一番高い microthread に返る条件 ×⇒ 優先度が一番高い microthread に返る
普通の OS のセマフォとは全く違う microthread の排他的性質から non-atomic な
read/write が可能
![Page 17: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/17.jpg)
5. Network Architecture
*T の内部ネットワークは fat tree (Fig. 6) 区画間のバンド幅をできるだけ広く保ちたい
接続線は 1 本、 OS 用 / ユーザ用の 2 つの優先度 ユーザプログラムがデッドロックしても OS を
巻き込まない
ネットワークパケット (Fig. 7) 負荷分散のため、 up-route を一様に選ぶ必要性 CRC のエラーは *T の診断システムに報告
![Page 18: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/18.jpg)
6. The *T Operating System
OS UNIX-like な環境を提供 *T モデルの並列プログラムが動くように拡張 ユーザのジョブ間で並列マシンを物理的に分割利用 (space sharing) することも可能
![Page 19: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/19.jpg)
6.1 Process Model
manager/player 並列ジョブは、 manager プロセスと、子プロ
セス (player) で形成 並列ジョブに関わるプロセッサ毎に 1 player players はプロセッサ間で同時にスケジューリン
グされる (gang schedule) remote operation を OS-level context switch なしに
行える
![Page 20: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/20.jpg)
7. *T Physical Packaging Concepts
構成(計画中) 32-processor system
3 billion operations per second (peak) 512-processor system
50 billion operations per second (peak) 32-processor のブロック ×16 個で構成
各ブロック内の接続は回路上で実現(ケーブルを用いない)
4096 プロセッサ位まで拡大可能?
![Page 21: Overview of the START(*T) Multithreaded Computer](https://reader036.vdocuments.net/reader036/viewer/2022062423/56814553550346895db221a0/html5/thumbnails/21.jpg)
8. Conclusion
メッセージの送受信を OS の仲介なしにできる 送受信のコストが下がり、非常に小さなメッセージ
のやりとりが実際に効率的に行えるようになった microthread の能率的な生成・割当て・同期
増加するメモリアクセスのレイテンシをうまく扱う技術を提供
RISC + microthread & embedded communication の命令セットに対するコンパイル技術の発展を望む