高性能プロセッサアーキテクチャ技術 コンピュータの心臓部

Download Report

Transcript 高性能プロセッサアーキテクチャ技術 コンピュータの心臓部

平成14年度 「市内・近隣大学公開講座」
コンピュータとネットワーク技術の最前線
~暮らしに浸透するコンピュータ~ 第2回
高性能プロセッサアーキテクチャ技術
コンピュータの心臓部・CPUについて
電気通信大学 大学院情報システム学研究科 吉瀬謙二
調布市文化会館たづくり 10階 1001室 2002年10月2日(水) 18:30~22:00
1
「高性能プロセッサアーキテクチャ技術」の内容
半導体技術の進歩はめざましく、コンピュータの頭脳にあたる
プロセッサの速度と集積密度はすさまじい勢いで向上を続け
ている。
そこで、高性能プロセッサと呼ばれるチップにおいて用いられ
る技術、歴史と展望などを紹介する。

プロセッサとはなんですか?

プロセッサの性能が向上すると何が嬉しいですか?

プロセッサの性能を向上させるにはどうすればいいですか?


動作周波数の向上

並列性の向上
これからのプロセッサはどうなりますか?
2
プロセッサとはなんですか?
3
デスクトップコンピュータ
ディスプレイ
(モニタ)
コンピュータ
コンピュータの中の部品、これは何?
4
コンピュータとプロセッサ
表から見たプロセッサ
これがプロセッサ、コンピュータの中には
数個のプロセッサが入っている。
裏から見たプロセッサ
写真はIntel社の Pentium マイクロプロセッサ
5
プロセッサのできるまで
半導体ウエーハとダイ
30cmのウエーハ
厚さは数ミリで、直径が30cm
大きなCDのような形をしている。
ダイ
(ウエータから切り出した
個々のチップ)
出典: Intel社, Industry-Leading Transistor Performance Demonstrated on Intel’s 90-nanometer Logic Process 6
プロセッサのできるまで
トランジスタの組み合わせによりプロセッサを実現
数千万個のトランジスタ(基本的な部品)を組み合わせることで、必要とする
プロセッサを実現する。
プロセッサを実現するための様々な方式をプロセッサアーキテクチャと呼ぶ。
Intel Pentium
高性能プロセッサの例
Motorola PowerPC
DEC Alpha
7
アーキテクチャ(建築)と
プロセッサアーキテクチャ(プロセッサ建築)
パルテノン神殿
世界最大のクフ王のピラミッド
1個約2.5tのブロックを230~250万個
積み重ねて造られている。
Intel Pentium
310万個のトランジスタを用いて造
られている。
写真は計算機アーキテクチャのホームページから http://www.cs.wisc.edu/%7Earch/www/
8
プロセッサのできるまで
ダイのパッケージ化
ダイ
ダイのままでは外部との情報伝達ができない。情報伝達のためのピンを含む
パッケージとして加工する。
出典: Richard L. Sites, Alpha AXP Architecture Reference Manual SECOND EDITION
9
コンピュータとプロセッサ
表から見たプロセッサ
これがプロセッサ、コンピュータの中には
数個のプロセッサが入っている。
裏から見たプロセッサ
写真はIntel社の Pentium マイクロプロセッサ
10
コンピュータとプロセッサ
コンピュータの古典的な5つの要素
コンピュータ
プロセッサ
入力
制御
データパス
出力
記憶
出力
プロセッサは記憶装置から命令とデータを取り出す。入力装置はデータを
記憶装置に書き込む。出力装置は記憶装置からデータを読みだす。制御装置
は、データパス、記憶装置、入力装置、そして出力装置の動作を指定する信号
を送る。
出典: パターソン & ヘネシー、 コンピュータの構成と設計
11
まとめ:プロセッサとはなんですか?

プロセッサは、記憶装置、入力装置、出力装置とともにコンピュー
タを形作る部品の一つ。

その重要性からコンピュータの頭脳と呼ばれることもある。

CPU(Central Processing Unit, 中央演算処理装置)と呼ばれることも
ある。

数千万個のトランジスタ(基本的な部品)を組み合わせることで、プ
ロセッサを実現する。

プロセッサの良し悪しは、トランジスタの組み合わせ(使い方)によ
り決まる。プロセッサを実現するための様々な
方式をプロセッサアーキテクチャと呼ぶ。
12
プロセッサの性能が向上すると
何が嬉しいですか?
13
プロセッサの性能

決まった時間(1秒)にどれだけ多くの計算(仕事)をおこなえるか?

多くの計算をおこなえるプロセッサが高性能プロセッサ
高性能プロセッサ
1111111111111111111111111
計算(仕事)
性能が低いプロセッサ
14
プロセッサの性能向上
最近は、1年に約50%という非常に高い率で性能が向上している。
1700
Intel Pentium III
1600
1500
1400
出荷された
プロセッサの性能
1300
1200
相対性能
1100
1000
HP 9000
900
800
700
600
DEC Alpha
500
400
DEC Alpha
300
HP 9000
200
1年間に1.5倍
の性能向上
IBM Power1
100
0
1984
1986
1988
1990
1992
年
1994
1996
1998
2000
出典: Computer Architecture A Quantitative Approach THIRD EDITION, p.3
15
プロセッサの速度向上と
パソコンで扱うことのできるメディアの変換
動画
プロセッサの性能向上により、音楽や動画などの扱
いが可能となった。
1700
1600
1500
1400
音楽
1300
1200
相対性能
1100
1000
900
800
700
600
500
画像
400
300
200
100
0
1984
1986
1988
1990
1992
年
1994
1996
1998
2000
16
人類にとって重要な問題
グランドチャレンジ
科学や工学の分野で重要な問題で、
現在のコンピュータでは計算が困難な問題
現在の高性能パソコン
出典: David E. Culler, Jaswinder Pal Singh, Parallel Computer Architecture (p.7)
17
数年前までは計算することが困難だった
科学技術計算の例


宇宙はどのようにして始まったのか?
コンピュータを用いて模倣(シミュレート)する。
出典: Cluster Simulations on the PSC Cray T3E, http://www.cita.utoronto.ca/~dubinski/bigcluster.html
18
まとめ:
プロセッサの性能が向上すると何が嬉しいですか?

決まった時間(1秒間)に、より多くの計算(仕事)をおこなえるプロ
セッサのことを性能の高いプロセッサと呼ぶ。

近年は、1年間に約50%の割合で性能が向上している。

プロセッサの性能向上に伴い、従来では困難だった音楽や動画を扱
えるようになりつつある。
コンピュータの利用範囲が広がっていく。

グランドチャレンジと呼ばれる問題など、まだまだ高い性能を要求す
る分野が多く,プロセッサには、
より高い性能が求められている。
19
プロセッサの性能を向上させるにはどうす
ればいいですか? (1)
動作周波数の向上により
性能向上を目指す。
20
プロセッサの鼓動を作るクロック

プロセッサの内部にはクロックを生成する機構が存在する。

プロセッサはクロックに合わせて処理を進める。
クロック
クロック生成機構
クロックのイメージ
プロセッサにとってのクロックは
人間の心臓の鼓動に対応する。
21
動作周波数とプロセッサの性能
動作周波数が高くなる(クロックが短くなる)と、プロセッサの性能も
向上する。
動作周波数 1Hz(ヘルツ)
クロック
5
4
3
2
1
仕事
動作周波数 2Hz(ヘルツ)
1
0秒
2
3
1秒
4
5
2秒
6
7
3秒
8
9
4秒
10
5秒
時間
22
7世代の Intel プロセッサにおける
動作周波数の動向
(動作周波数)
10年で300倍の動作周波数の向上
ク
ロ
ッ
ク
出典: The Optimal Useful Logic Depth Per Pipeline Stage is 6-8 FO4 ,
International Symposium on Computer Architecture (ISCA-2002) pp.14-24
23
半導体技術の進歩による動作周波数の向上
トランジスタ(プロセッサを構築するための基本的な部品)のサイズが小さく
なることで、高速に動作するようになる。
半
導
体
の
基
本
要
素
の
サ
イ
ズ
出典: Intel社, Industry-Leading Transistor Performance Demonstrated on Intel’s 90-nanometer Logic Process 24
パイプラインによる動作周波数の向上
仕事
1
2
3
パイプラインを用いない場合
1つの命令の処理が終わってから、次の命令の処理を始める。
動作周波数が1Hzの場合には、3秒の時間に3つの命令を処理できる。
パイプライン
1つの命令の処理を複数のステージに分割する。
(左図では4つに分割) 分割により、動作周波数を上
げることができる。
1
2
3
0秒
1秒
2秒
3秒
4秒
5秒
時間
25
パイプラインによる動作周波数の向上例
パイプラインのステージ数(段数)を増やすことで動作周波数を向上できる。
パイプライン無し(1Hz)
2ステージのパイプライン(2Hz)
4ステージのパイプライン(4Hz)
0秒
1秒
2秒
3秒
4秒
5秒
6秒
7秒
8秒
9秒
時間 26
最先端プロセッサのパイプライン段数






DEC Alpha21264
Intel Pentium 3
Intel Pentium 4
AMD Athlon
AMD Hammer
IBM Power4
:
:
:
:
:
:
7 stage
10 stage
20 stage
10 stage
13 stage
15 stage
The Microarchitecture of the Pentium® 4,
Intel Technical Report より
POWER4 System
Microarchitecture,
IBM Journal より
27
パイプライン段数を変化させた時の
動作周波数、並列性(IPC)、性能の評価結果


パイプラインが52段で、動作周波数が2倍になるまで性能が向上する。
それ以降は性能が低下する。パイプライン段数には上限が存在する。
52段
Intel による
評価結果
出典: Increasing Processor Performance by Implementing Deeper Pipelines , ISCA-2002 pp.25-34
28
まとめ:
動作周波数の向上


動作周波数を上げるためには2つの方法がある。

半導体技術の向上:トランジスタが小さくなれば高速に動作する。

パイプライン:仕事を細切れに分割すれば高速に動作する。
半導体技術の進歩による動作周波数の向上は今後も続くと予測さ
れている。

パイプラインの段数を増やすことは、難しくなりつつある。

動作周波数の向上以外の手法(並列性の利用)
が必要とされている。
29
プロセッサの性能を向上させるにはどうす
ればいいですか? (2)
並列性の向上により
性能向上を目指す。
30
並列性とプロセッサの性能
並列性が高くなると、プロセッサの性能も向上する。
並列性1、動作周波数 1Hz(ヘルツ)
5
4
3
2
1
仕事
並列性2、動作周波数 1Hz(ヘルツ)
0秒
1
3
5
7
9
2
4
6
8
10
1秒
2秒
3秒
4秒
5秒
時間
31
並列性による性能向上
複数の仕事を同時(並列)に処理することで性能を向上できる。
ただし、同時に処理するためには、多くのハードウェア資源が必要となる。
0秒
1
2
3
4
5
1
2
3
4
5
6
7
8
並列性 2(1Hz)
1
2
3
4
5
6
7
8
並列性 4(1Hz)
1秒
2秒
3秒
4秒
6
5秒
7
6秒
並列性 1(1Hz)
8
7秒
8秒
9秒
時間 32
ムーアの法則により予測されるトランジスタ数
ムーアの法則
チップで利用できるトランジスタの数は2年間で2倍に増加する。
プロセッサ
出荷年 トランジスタ数
4004
1971 2,250
8008
1972 2,500
8080
1974 5,000
8086
1978 29,000
286
1982 120,000
386™ processor
1985 275,000
486™ DX processor
1989 1,180,000
Pentium® processor
1993 3,100,000
Pentium II processor
1997 7,500,000
Pentium III processor
1999 24,000,000
Pentium 4 processor
2000 42,000,000
ムーアの法則に従ってトランジスタ数が増加してきた。今後も同様の増加が見込ま
れている。
出典: Intel社, http://www.intel.com/research/silicon/mooreslaw.htm
33
プロセッサが処理するマシン命令の例と
データフローグラフ
(1)
(2)
(3)
(4)
R6
R7
R8
R9
<=
<=
<=
<=
R1
R3
R6
R8
+
+
+
+
R2
R4
R7
R5
プロセッサが処理する命令(仕事)の例
4つの命令が順番に処理されるとする。
R1 から R9 はレジスタと呼ばれ計算結
果を格納する記憶領域
R1 R2
R3 R4
1
2
R7
R6
3
R5
R8
4
R9
左の命令列に対応する
データフローグラフ
34
プロセッサが処理するマシン命令の例と
2つの実行例
0
2
1
1
R1
R2
R3
R4
R5
<=
<=
<=
<=
<=
0
1
2
3
4
3
2
1
5
3
4
6
4
10
上の様にレジスタの値を設定して
マシン命令を実行する。
5つの値(0, 1, 2, 3, 4)の合計値
10がR9に格納される。
R1
R2
R3
R4
R5
<=
<=
<=
<=
<=
10
11
12
13
14
10 11
12 13
1
2
25
21
3
14
46
4
60
上の様にレジスタの値を設定して
マシン命令を実行する。
5つの値(10, 11, 12, 13, 14)の
合計値60がR9に格納される。
35
データ依存関係により制限される並列性




先の命令列では、3番目の命令の結果を4番目
の命令が使う。これら2つの命令を同時に実行
することができない。
1番目の命令の結果を3番目の命令が使う。こ
れら2つの命令を同時に実行することができな
い。
2番目の命令の結果を3番目の命令が使う。こ
れら2つの命令を同時に実行することができな
い。
1番目の命令と2番目の命令は、同時に実行す
ることができる。
R1 R2
R3 R4
1
2
R7
R6
3
R5
R8
4
R9
データフローグラフ
命令の間にデータ依存関係がある場合には並列に処理することができない。
利用できる並列性は、様々な要因により制限される。
現在の高性能プロセッサで利用している命令レベルの並列性は2程度
36
データ依存関係を克服する手法
データ値予測
データ値予測:演算結果の値を予測することで,データの生産者と消費者
の間のデータ依存関係を解消する投機技術
生産者
1
生産者
命令1の結果
を予測
データ依存関係
3
時間
1
3
消費者
消費者
命令1の計算結果を予測することで、1番目の命令と3番目の命令を同時に実行できる。
37
データ値を予測する方法
Last-value予測
最も近い過去に得られた値を予測値
ストライド値予測
最も近い過去に得られた2回の値の差分 Stride と、Last-valu
の和を予測値
2レベル値予測
過去のn個の履歴の中からひとつを選択
ハイブリッド値予測
上の2つのアルゴリズムから適切な予測値を選択
Last-Value
ヒット率
ミス率
ストライド
2レベル ハイブリッド
21.7%
29.8%
29.4%
39.9%
1.7%
2.9%
3.9%
5.9%
出典:マルチレベル・ストライド値予測機構による命令レベル並列性の向上, JSPP’99
38
プロセッサの内部で利用される予測機構

一般に用いられている予測機構




分岐予測
ライン・ウェイ予測
キャッシュ・ヒット/ミス予測
研究が進められている予測機構




メモリ参照アドレス予測
データ値予測
ラインバッファ・ヒット/ミス予測
クリティカル・パス予測
データ値予測だけではなく、様々な予測機構が実現されたり、
検討されている。
ギャンブル・プロセッサ
39
複数パス実行による予測ミスの削減
予測において必要となる
3つのステップ
(1) 予測の生成
(2) 正解・不正解の検出
(3) 不正解だった場合のやり直し
1
1
2
2
3
4
5
3
単一パスの実行
複数パス実行
予測が失敗しそうな場合には、予測した場合と、予測しなかった場合の2つのケースを
実行しておくことで、予測ミスによるペナルティを削減できる。
40
まとめ:
並列性の向上

ムーアの法則に従い、ハードウェア資源(トランジスタの数)は2年間
に2倍に向上する。

ハードウェア資源の増加は、並列性の利用を可能にする。

しかし、データ依存関係などの要因が並列性の利用を難しくする。


データ依存関係を緩和するデータ値予測

幾つかの予測手法(ギャンブルプロセッサ)
市販されている高性能プロセッサにおいて利用されている並列性は
2程度

今後は、高い並列性の利用が求められる。
41
これからのプロセッサはどうなりますか?
42
トランジスタ数の増加とプロセッサアーキテクチャ

ハードウェア資源が不足していた時代

100万トランジスタ以下の時代

必要とする機能をチップに入れることが困難だった。


ハードウェア資源を十分に利用できる時代



少ないハードウェア資源を有効に活用することがプロセッサアーキテク
チャの目的の一つ
100万~1億トランジスタの時代
アイデアが議論されていたが、今までは実現できなかった機能が実現さ
れる。
ハードウェア資源を魅力的に使う時代

10億トランジスタの時代

豊富なハードウェアの活用方法がわからない。
43
ハードウェア資源を魅力的に使う時代
10億トランジスタの世界(2010年)
10億/4200万 = 23.8
Pentium 4 の23個分のハードウェア
10億トランジスタ
(豊富なハードウェア資源)
Pentium 4 (4200万トランジスタ)
44
IBM POWER4 (2001年)
複数のプロセッサを1チップに載せる技術
IBM Power4 プロセッサ (2001年出荷)
1億7千万トランジスタのチップに2つのプロセッサを載せる。
IBM Power4
のイメージ
「10億トランジスタが利用できるようになった時に、チップ上に、どの程度の
大きさのプロセッサを幾つ載せるのか?」 という問題が重要な研究課題と
なっている。
45
今後の課題(1)
増加を続けるプロセッサのエネルギー消費
このままでは、プロセッサの熱は核反応や、ロケットの噴射口、太陽の表面の
エネルギー消費に近づいていく。
出典: Gelsinger’s Slide from ISSCC 2001
46
コアホッピング
マルチプロセッサを利用した熱の抑制
「コアホッピング」 これは、一連の計
算処理を1つのマイクロプロセッサコ
アから別のコアに移動させる手法を
指す。
負荷の高い計算を処理する際、トラ
ンジスタが局部的に熱を発して「ホッ
トスポット」を作り出すことがあり、そ
処理するプロセッサを
れが性能の限界を生み出す、とIntel
切り替えて熱を分散
研究所のマイクロプロセッサ研究担
当技術ディレクター、Wilf Pinfold氏
は説明する。
アプリケーション処理を循環させれ
ば、熱が分散され、主要なトランジス
タの発熱を抑えて全体的な性能を向
例: チップ内に4つのプロセッサを詰め込む。 上させることができるだろう。
(ZD Net News から引用)
出典: ZD Net News, http://www.zdnet.co.jp/news/0208/21/ne00_intel.html
47
今後の課題(2)
大域的なクロックから分散クロックへ
10億トランジスタ
(豊富なハードウェア資源)
GALS プロセッサ
(Globally Asynchronous Locally Synchronous)
クロック 1
クロック 2
クロック
生成したクロックをチップの全てに分配
することが難しくなっている。
クロック 3
複数のクロックを分散して配置すること
で、大域的なクロックを排除する。
出典: Power and Performance Evaluation on Globally Asynchronous Locally Synchronous Processors, ISCA-2002, pp.158-168
48
今後の課題(3)
10億トランジスタの魅力的な使い方
Intel Pentium
310万個のトランジスタを用いて造
られている。
パルテノン神殿
世界最大のクフ王のピラミッド
1個約2.5tのブロックを230~250万個
積み重ねて造られている。
10億トランジスタ
何を、どのように造るべきか?
写真は計算機アーキテクチャのホームページから http://www.cs.wisc.edu/%7Earch/www/ 49
まとめ:
これからのプロセッサはどうなりますか?

高性能かつ低消費電力が求められる時代


チップ全体を分割して管理する必要性


コアホッピング
大域的なクロックから分散クロックへ(GALSプロセッサ)
豊富なハードウェア資源を魅力的に使う時代

チップ上に複数のプロセッサを載せる技術、どの程度の大きさのプロ
セッサを幾つ載せるのか?


斬新な発想のプロセッサアーキテクチャが必要とされている。
現在の年間50%という高い性能向上率を維持
するために様々な工夫(研究)が必要
50
プロセッサアーキテクチャの位置付け
グリッドコンピュータアーキテクチャ
(グリッドコンピュータ建築)
並列コンピュータアーキテクチャ
(並列コンピュータ建築)
コンピュータアーキテクチャ
(コンピュータ建築)
プロセッサアーキテクチャ
(プロセッサ建築)
ユビキタス
コンピューティング
いつでも、どこでも利用できる
コンピュータ
51
参考文献と参考ホームページ
このスライド(PowerPoint形式)は以下のURLから
ダウンロードできる。
http://www.yuba.is.uec.ac.jp/~kis/
52
参考文献と参考ホームページ

計算機アーキテクチャに関する定番の教科書

ヘネシー&パターソン コンピュータ・アーキテクチャ、 日経BP社

ヘネシー&パターソン コンピュータの構成と設計、 日経BP社

マイク・ジョンソン スーパースカラ・プロセッサ、 日経BP社

Computer Architecture A Quantitative Approach THIRD EDITION, Morgan Kaufmann Publishers

Intel社 研究関連のホームページ http://www.intel.com/research/

IBM社 研究関連のホームページ http://www.research.ibm.com/

グランドチャレンジに関するホームページ http://www.nhse.org/grand_challenge.html

国際会議 29th International Symposium on Computer Architecture のホームページ
http://systems.cs.colorado.edu/ISCA2002/

計算機アーキテクチャ関連のホームページ http://www.cs.wisc.edu/%7Earch/www/

米国の有名な学会のホームページ http://www.computer.org

International Technology Roadmap for Semiconductors http://public.itrs.net/

ZD Net News Japan http://www.zdnet.co.jp/news/

電気通信大学 大学院情報システム学研究科のホームページ http://www.is.uec.ac.jp/

並列処理学講座 弓場・本多研究室のホームページ http://www.yuba.is.uec.ac.jp/
53