...

第8回 実際のプロセッサ

by user

on
Category: Documents
16

views

Report

Comments

Transcript

第8回 実際のプロセッサ
計算機システム
第8回
2005年7月1日
湯川 高志
2005-07-01
計算機システム 第8回
1
補講のお知らせ
„
„
7月19日(火)に補講をやります
5,6限と7,8限のどちらが良い?
2005-07-01
計算機システム 第8回
2
今日の講義内容
„
アーキテクチャ(続き)
‰
高速化の工夫(続き)
„ VLIW
„ ハイパースレッディング/チップレベル・マルチスレッディング
„
スーパーコンピュータ
„
ベクトル型
‰ スカラー型
‰ グリッド
実際のCPU
‰
‰
2005-07-01
Z80
計算機システム 第8回
3
高速化の工夫 (続き)
2005-07-01
計算機システム 第8回
4
スーパーパイプライン
„
パイプラインの各ユニットの処理内容を細かくし,ユニッ
トの動作を単純化
‰
先程説明したパイプライン: 「命令の読込み」,「命令の解釈」,
「命令の実行」,「結果の書き込み」の4段
各段階をさらに分割: 「命令の読込み」をさらに2つに分ける等
‰
Pentium Proでは10段のパイプライン
‰
„
„
各ユニットの動作が単純なので,クロックを高くできる
分岐予測が失敗した時の手戻りが大きい
2005-07-01
計算機システム 第8回
5
投機的実行
„
4段パイプライン
命令
読み出し
‰
‰
„
命令解釈
分岐!!
命令実行
結果
書き込み
実行ユニットは1個
分岐が起こったら,それより手前のステージにある命令が単に
捨てられるだけ
より深いパイプライン
‰
‰
‰
‰
2005-07-01
実行に関わるユニットが複数になる
分岐の結果がわかるまで実行をはじめてしまって良いのか?
やってしまえ!!
分岐予測がはずれたら処理結果を捨てる
計算機システム 第8回
6
SIMD命令
„
マルチメディア・データの処理
‰
処理対象のデータは異なるが,処理内容(命令)は同
一
„
„
例: イメージのすべて画素に対して,周囲の画素の値との平
均値を取る
同じ命令を異なったデータに対して並行して実
行できる回路を設ければ,マルチメディア・デー
タの処理を高速化できる
SIMD (single instruction multiple data)
Pentiumの場合: MMX命令
2005-07-01
計算機システム 第8回
7
並列処理
„
SISD (single instruction single data)
‰
‰
„
SIMD (single instruction multiple data)
‰
‰
„
ひとつのデータに対してひとつの命令を実行
普通の単一プロセッサのコンピュータ
複数のデータに対し,同一の処理を並行して実行
DSP (digital signal processor), グラフィックプロセッサ等
MIMD (multiple instruction multiple data)
‰
‰
2005-07-01
複数のデータに対し,それぞれ異なった処理を並行して実行
マルチコンピュータ,クラスタコンピュータ,グリッド
計算機システム 第8回
8
インテルのCPUにおける
高速化技術の推移
„
„
„
8086 (第1世代) - 16ビット
80286 (第2世代) - 中途半端な32ビット
80386 (第3世代) - 本格32ビット
‰
‰
„
キャッシュ
パイプライン
i486 (第4世代)
‰
RISC手法の一部取り込み
‰
浮動小数点演算ユニット内蔵
2005-07-01
計算機システム 第8回
9
インテルのCPUにおける
高速化技術の推移 (続き)
„
Pentium (第5世代)
‰
‰
„
MMX Pentium
‰
„
スーパースケーラ
分岐予測
SIMD (MMX; Multi Media eXtensions)
Pentium Pro (第6世代)
‰
‰
‰
‰
‰
2005-07-01
RISC手法
アウト・オブ・オーダー実行
レジスタリネーム
スーパーパイプライン (10段)
投機実行
計算機システム 第8回
10
インテルのCPUにおける
高速化技術の推移 (続き)
„
Pentium II
‰
„
Pentium III
‰
„
Pentium Pro + 16ビット命令高速化 + MMX
SIMD強化=SSE (Streaming SIMD Extension)
Pentium IV (第7世代)
‰
2005-07-01
スーパーパイプライン強化 (20段)
計算機システム 第8回
11
VLIW
„
„
„
Very Long Instruction Word
普通のCPUの命令語長は8bit~32bit
32bit語長の命令を4つならべたものをひとつの
命令語とする → 命令語長 128bit
32bit
命令(1)
まとめて1クロックで実行
命令(2)
命令(3)
命令(4)
128bit
„
コンパイラが同時実行できる命令を並べる
2005-07-01
計算機システム 第8回
12
VLIW
„
第6世代PentiumにおけるμOPのout of order実行は,
ハードウェアで同時実行可能命令を解析
„
VLIWでは,コンパイラにより同時実行可能な命令を解
析し,それらを並べた命令を生成
„
„
より多くの並列実行可能命令の抽出が可能
従来の命令セットの命令をそのまま並べただけではダメ
„
ソフトウェアの(バイナリ)互換性がなくなる
2005-07-01
計算機システム 第8回
13
コードモーフィングソフトウェア (CMS)
„
VLIW
‰
‰
‰
‰
„
„
コンパイラでプログラムを解析し同時実行可能命令を抽出
ソフトウェアをVLIWで動作させるには再コンパイルが必要
コンパイルの代わりに,機械語になったプログラムを解析して
同時実効命令を抽出し,VLIW命令に変換したら
ソフトウェアを変更せずにVLIWで動作
Code Morphing Software (CMS)
トランスメタ社のCrusoe, Efficeonが採用
2005-07-01
計算機システム 第8回
14
ハイパースレッディング
チップレベル・マルチスレッディング
„
„
ひとつのプログラムにおける命令の同時実行には限界
あり
最近のOSやプログラム
→マルチプロセス,マルチスレッド
‰
‰
„
プロセス: 命令,データともに独立のメモリ空間を持ったプログ
ラムの実行単位
スレッド: プロセスと同様に独立した実行単位だが,データを置
くメモリ空間を他のスレッドと共有する
複数のスレッドの命令をCPU内で同時に実行
→スレッドは独立性が高いため,データ依存性が小さい
ハイパースレッディング (インテル)
チップレベル・マルチスレッディング (SUN)
2005-07-01
計算機システム 第8回
15
スーパーコンピュータ
2005-07-01
計算機システム 第8回
16
スーパーコンピュータ
„
通常のコンピュータ
‰
‰
‰
計算をする
データベース処理をする
データ通信をする
各処理のバランスが良い性能である必要
„
スーパーコンピュータ
‰
2005-07-01
ある利用目的(主として科学技術計算)において非常
に高速なコンピュータ
計算機システム 第8回
17
ベクトル型スーパーコンピュータ
„
科学技術計算で速度が要求されるもの
‰
‰
微分方程式を解く→有限要素法
固有値問題を解く
行列やベクトル演算の繰り返し
„
„
„
CPUにベクトルに対する計算を実行するハード
ウェアを装備
CPUそのものも高速の素子を利用 特別な素子
実装・冷却法
メモリも高速
2005-07-01
計算機システム 第8回
18
スカラー型スーパーコンピュータ
またはクラスタ・マシン
„
通常のコンピュータ (CPU+メモリ)
‰
‰
„
PCのようにすべてのI/Fを備え完結したコンピュータ
CPUと主記憶とデータ通信I/Fだけを基板上に載せた
もの
データ通信線で接続
‰
‰
‰
2005-07-01
筐体内で基盤(バックプレーン)等で接続
特別な(高速化)ネットワークI/Fにより接続
汎用のネットワークI/F(イーサーネット)により接続
計算機システム 第8回
19
スカラー型スーパーコンピュータ
またはクラスタ・マシン (続き)
„
CPUの処理速度に比較して,データ通信の速度は遅い
„
CPU同士で頻繁にデータを交換しなければならないよう
な処理には向かない
プログラム開始時にデータを各CPUにばらまき,ずっと
計算して,結果をまとめて回収するような性質の計算に
適している
„
„
通常のコンピュータの部品を流用可能なので,安価に
実現でき,コストパフォーマンスが良い
2005-07-01
計算機システム 第8回
20
グリッド (最近流行り)
接続形態
„
スカラー型スーパーコンピュータのネットワーク結合
をさらに疎なものにする
PCがインターネットで接続された形態
‰
‰
処理形態
„
1.
2.
3.
2005-07-01
インターネットを通じて,サーバから計算対象となる
データを受取る
計算を実行
計算結果をインターネットを通じでサーバへ送る
計算機システム 第8回
21
グリッド (続き)
„
運用形態
‰
従来のスーパーコンピュータ
„
„
‰
グリッド
„
„
„
2005-07-01
使う人がお金を出してスーパーコンピュータという機械を買う
ほぼ占有して使う
いろいろな人が普通のPCを自分が使うために買う
持ち主がPCに仕事をさせていない間に,ある特定の計算の
ために使う
計算させた人は,使った分に応じたお金を持ち主に払う
計算機システム 第8回
22
グリッド (続き)
„
最初は遊びから始まった
‰
暗号を解読する: RC4,RC5チャレンジ
„
„
„
„
‰
宇宙で知的生命体を探す
„
„
„
„
„
みんなで力をあわせて
しらみつぶしに鍵を試すことでしか解読できない暗号を
そのとおりにしらみつぶしで
解く!!
電波望遠鏡が受信した電波
知的生命体がいれば,特定のパターンの電波が出ているはず
受信した膨大な電波データをみんなで手分けして解析し
知的生命体をさがそう!!
スクリーンセーバーになっていて,一定時間PCに仕事
をさせないと,プログラムが起動し計算を行う
2005-07-01
計算機システム 第8回
23
グリッド (続き)
„
これは使える!!
‰
会社の中
„
„
„
‰
社員のPCのあいている時間を使って
„
„
2005-07-01
今では1人1台はPCを持っている
用途は,電子メイル,WWWでの情報収集,ワープロ,表計
算が中心
社員がいる間はずっと電源が入っているが,実際に使われ
ている時間は多くない
自社内で必要とされている計算を処理することで,スーパー
コンピュータの購入費を節約
他社から計算を受託し,お金をかせぐ
計算機システム 第8回
24
6. 実際のCPU
2005-07-01
計算機システム 第8回
25
実際のCPU: Z80
2005-07-01
計算機システム 第8回
26
Z80
„
„
米国ザイログ社が開発(1976年発売)
ソフトウェア面(命令セット)
‰
インテル8080と命令セットが上位互換
„
„
‰
„
8080の命令で書かれたプログラムは,そのまま動作する
さらに便利な命令が追加されている
レジスタの追加
ハードウェア面
‰
‰
‰
‰
2005-07-01
5V単一電源化
高クロック化(2.5MHz, 4MHz)
DRAMリフレッシュ機能内蔵
割り込み制御の強化
計算機システム 第8回
27
Z80 (続き)
„
80年代の大ヒットCPU
‰
„
TRS-80, PC8001, PC8801など初期のパーソナルコ
ンピュータが使用
後継(互換)CPUが多く作られている
‰
‰
2005-07-01
日立 HD64180
東芝 Z84C015
計算機システム 第8回
28
レジスタ構成
„
汎用レジスタ
2005-07-01
A [8bit]
F(フラグ) [8bit]
[16bit]
B [8bit]
C [8bit]
[16bit]
D [8bit]
E [8bit]
[16bit]
H [8bit]
L [8bit]
[16bit]
計算機システム 第8回
29
レジスタ構成 (続き)
„
汎用レジスタ (裏)
2005-07-01
A' [8bit]
F'(フラグ) [8bit]
[16bit]
B' [8bit]
C' [8bit]
[16bit]
D' [8bit]
E' [8bit]
[16bit]
H' [8bit]
L' [8bit]
[16bit]
計算機システム 第8回
30
レジスタ構成 (続き)
„
インデックス・レジスタ
IX [16bit]
IY [16bit]
„
プログラム・カウンタ
PC [16bit]
„
スタック・ポインタ
SP [16bit]
2005-07-01
計算機システム 第8回
31
レジスタ構成 (続き)
„
割り込みベクトル・レジスタ
I [8bit]
„
リフレッシュ・カウンタ
R [7bit]
2005-07-01
計算機システム 第8回
32
メモリー空間,I/O空間
„
PCが16bit
‰
指定できる番地
„
„
„
„
8bitCPUなので,データ幅は8bit
‰
„
2進 0000000000000000B~1111111111111111B
16進 0000H~FFFFH
10進 0~65,535
最大で65,536byte=64Kbyteのメモリーを持てる
I/Oのアドレス指定は8bit (メモリー空間とは独立)
‰
指定できる番地
„
2005-07-01
00H~FFH (0~255)
計算機システム 第8回
33
レジスタの用途
「汎用」なのでどのようにも使えそうだが...
„ 実は,命令によって,オペランドに指定できるレジスタが
制限されている
Aレジスタ: アキュムレータ.演算命令や比較命令の対象と
なる
Fレジスタ: フラグ・レジスタ.演算結果に従って値がセット
され,条件命令において判断のために使用される
HLレジスタ(ペア): 16ビットのアドレス指定に良く利用され
る
Bレジスタ,BCレジスタ(ペア): 繰り返し命令でのカウンタ
Cレジスタ: 入出力命令のI/O番地指定用
DEレジスタ(ペア): 繰り返し命令の転送先番地指定用
„
2005-07-01
計算機システム 第8回
34
Fレジスタ
S
Z
H
P/V N
C
C(キャリー): 演算に桁上げ(加算),桁借り(減算)が発生
Z(ゼロ): 演算結果がゼロ
S(サイン): 2の補数表現をした場合の符号.演算結果の
MSBと同じになる
P/V(パリティ/オーバーフロー): パリティ(奇数パリティ)
H(ハーフキャリー): 下位4ビットで桁上げが発生
N(サブトラクト): 減算命令を実行した場合に'1'
2005-07-01
計算機システム 第8回
35
命令の表記
„
„
„
実際にCPUが処理するのは0と1からなるビット列の命
令
人間は0と1の羅列ではわかりにくいので
人間にとってよりわかりやすい語(文字列)を命令に対応
させて表記
ニーモニック
„
ニーモニックで書かれたプログラムを,ビット列に変換す
るプログラム
アセンブラ
2005-07-01
計算機システム 第8回
36
命令の表記 (続き)
„
Z80の特殊事情
‰ 8080と命令が互換
„
ニーモニックも,8080のものを拡張して使えば良い
インテル・ニーモニック
‰
ザイログ社(インテルとは別の会社)で開発
„
過去にとらわれず,わかりやすいものを再設計!!
ザイログ・ニーモニック
„
„
8080とZ80の両方に対応できるアセンブラを作るにはインテル・ニー
モニックが好都合
Z80だけを考えるとザイログ・ニーモニックの方が理にかなっている
この講義ではザイログ・ニーモニックを使う
2005-07-01
計算機システム 第8回
37
今回はここまで.
さて,次回は...
実際のCPU (続き)
2005-07-01
計算機システム 第8回
38
Fly UP