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