1 / 28

マイクロプロセッサ

マイクロプロセッサ. 第2回. コンピュータの性能. 関根 優年. 性能( performance). 性能評価は難しい    値段が高いから性能が良いとは限らない 周波数が高いから早い?      3GHz メモリ容量が大きいから早い?  256 MB HDD が大きいから性能は良い? 80 GB 動作時間が長いから良い?    7時間 性能は用途によって異なる 画像処理,ワープロ,数値科学計算 問題の大きさ  200MB , 1GB ? . Core i7 ??. マルチコアが必要? 何に使用する?. nikkeiTRENDYnet  記事.

salena
Download Presentation

マイクロプロセッサ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. マイクロプロセッサ 第2回 コンピュータの性能 関根 優年

  2. 性能(performance) • 性能評価は難しい    値段が高いから性能が良いとは限らない • 周波数が高いから早い?     3GHz • メモリ容量が大きいから早い?  256MB • HDDが大きいから性能は良い? 80GB • 動作時間が長いから良い?    7時間 • 性能は用途によって異なる • 画像処理,ワープロ,数値科学計算 • 問題の大きさ 200MB,1GB?

  3. Core i7?? • マルチコアが必要? • 何に使用する?

  4. nikkeiTRENDYnet 記事 • Core i7は本当に速いのか? Core 2 Duoと実力を比べた • シングルスレッド当りの性能を比較してみる • 円周率計算プログラム「スーパーπ」を使い、1677万桁の計算にかかった時間 • RAWデータの現像速度を比較してみる • 800万画素クラスのデジタルカメラで撮影したRAWデータ(1ファイルあたり約13MB)を30枚読み込み、プリセットの現像パラメーターで現像してJPEG形式で保存

  5. スループット・実行時間 コンピュータの性能とは何? 実行時間 : 作業を開始してから終了するまでの時間 (応答時間) スループット: 一定時間内に終了した作業の総量 (a) スループット 同じ実行時間でも、 スループットは異なる 実行時間 スループット (b) 車で言えば、   速度が実行時間   馬力がスループット 実行時間

  6. 例題) スループットと応答時間 例題) コンピュータシステムに下記の変更を加えた場合、スルー プット、実行時間はどうなるか? 1.プロセッサを高速にする 2.複数プロセッサを用いる 答) 1.プロセッサを高速にする     ⇒ 実行時間は短くなる。 スループットは大きくなる。 2.複数プロセッサを用いる     ⇒ (基本的には)実行時間はそのまま。        スループットは大きくなる。

  7. 性能・相対性能 ここでは、実行時間に着目してマシン性能を考える (マシンXの)性能の定義 性能X=1/実行時間X 単位時間あたりの実行回数 マシンの性能比 マシンXはマシンYよりもn倍早い n = 性能X/性能Y = 実行時間Y/実行時間X

  8. 例題) 相対性能 例題) 同じプログラムを動かしたときにかかる時間が、マシン Aでは10秒、マシンBでは15秒である。マシンAは マシンBよりもどれだけ速いか? 答) マシンAの性能 1/10 [s-1] マシンBの性能 1/15 [s-1] よって、マシンAとマシンBの性能比は、 性能比=(1/10) / (1/15) =15/10 =1.5 倍

  9. 性能の測定 コンピュータの性能は実行時間で計測可能 実行時間の計り方は様々 ここではユーザCPU時間をCPU性能とする。

  10. クロック マイクロプロセッサはクロックに基づき動作 電圧 クロック周期 時間 クロック周期=クロックサイクルタイム クロック周波数=1/クロック周期 例) Pentium IV 3GHz CPU内部のクロック周波数が3GHz       クロック周期は0.33ns

  11. 同期式回路 • 素子の動作がまちまち  → 回路の動作がまちまち → 同時をどう表す? • 時間も離散化する: 同じクロック内=同時 クロックのエッジ時刻で同時に動作 • 時間の揺らぎによる誤動作を防ぐ. • 回路が同時に動くので瞬間的に電流が流れる • 回路が動かないときでもクロック信号は動作 無駄なエネルギーが消費される

  12. 測定基準同士の関係 コンピュータの最終的な性能はCPU実行時間 クロック サイクルタイム そのプログラムの CPUクロック・サイクル数 あるプログラムの CPU実行時間 X = クロック 周波数 そのプログラムの CPUクロック・サイクル数 ÷ = コンピュータの性能を挙げるためには、 ① クロック周波数を上げるか、   ② プログラムが必要とするサイクル数を減らすか を行えばよい。 実際には、これらを両立するのは難しい。 (回路を単純化するとクロック周波数は上がるが、サイクル数は増える、 逆に複雑にするとクロック周波数が下がるが、サイクル数は減る)

  13. 例題) 性能の改善 例題) クロック周波数400MHzのマシンA上で10秒で実行でき るプログラムを、6秒で動かすマシンBを開発する。マシン Aでプログラムを実行するのに比べ、1.2倍のサイクル数 を必要とする。マシンBの周波数をいくつにすればよいか? 答) CPU時間A=サイクル数A / (400 x 106)=10 CPU時間B=サイクル数B / クロック周波数B =6 サイクル数B=1.2 x サイクル数A =1.2 x 10 x 400 x 106より クロック周波数B = サイクル数B / 6 = 1.2 x 10 x 400 x 106 / 6= 800 x 106 = 800 MHz

  14. CPI(1命令あたりの平均クロックサイクル数) 実際にはプログラムは複数の命令からなる プログラムにおける命令数が増えれば、一般に プログラムに必要なサイクル数は増加する。 命令数とサイクル数の関係を表す指標としてCPIを導入 CPI(1命令あたりの平均クロックサイクル数) プログラムの CPUクロック・サイクル数 1命令あたりの 平均クロックサイクル数 プログラム中の実行命令数 = X CPI 一般に命令によって、必要とするサイクル数は異なる (命令Aは1サイクル、命令Bは2サイクルといった感じ)

  15. 例題) 性能方程式の使用 例題) 同じ命令セットアーキテクチャを持つ2種類のマシンがある。 マシンAはクロックサイクルタイムが1nsで、あるプログラムで のCPIは2.0、マシンBはそれぞれ2ns、1.2であった。このプ ログラムではどちらのマシンがどの程度高速か? 答) CPU時間A=命令数A x 2.0 x (1 x 10-9) CPU時間B=命令数B x 1.2 x (2 x 10-9) 同一の命令セットであるので、命令数A=命令数Bより 性能比 = CPU時間B/ CPU時間A =(1.2 x 2 x 10-9) / (2.0 x 1 x 10-9) = 1.2 (マシンAがマシンBよりも1.2倍速い)

  16. CPIとCPU時間の関係式(1) クロック サイクルタイム あるプログラムの CPU実行時間 プログラム中の実行命令数 CPI X X = クロック 周波数 = プログラム中の実行命令数 CPI ÷ X

  17. CPIとCPU時間の関係式(2) クロック 周波数 プログラム中の実行命令数 あるプログラムの CPU実行時間 CPI = ÷ X プログラムを動か せば計れる マシン性能諸元 として与えられる 単体ではほとんど 計測不能 実行命令数はアーキテ クチャに依存するが、詳 細を知らずとも測定可能 CPIの入手法 : ① マシンの細部に渡ってシミュレーションする           ② 命令の種類別に観測する

  18. 例題) コード系列の比較 例題) あるマシンについて、命令クラスA,B,CとCPIの関係が、 CPIA=1, CPIB=2, CPIC=3と与えられている。これらの命 令クラスを用いたコード系列として、次の2つがある。 どちらが実行速度が速く、またCPIはそれぞれいくつか? 答) コード系列1のクロックサイクル数=2x1+1x2+2x3=10 コード系列2のクロックサイクル数=4x1+1x2+1x3=9 これより、コード系列2の方が実行速度が速い。 コード系列1のCPI=(2x1+1x2+2x3)/(2+1+2)=10/5=2.0 コード系列2のCPI=(4x1+1x2+1x3)/(4+1+1)=9/6=1.5

  19. コードのビット長 • 命令のビット幅も実は大事 • 4bit,8bit,16bit,32bit • マイコン,PIC,などで健在 • Bitが貴重であった時代 • 12bitもあった(TLCS12). • 今,64bit,128bit, • Very Long Instruction Word(VLIW)

  20. 性能比較のまとめ方 どちらのコンピュータがどれだけ速いか  ---用いる尺度により種々の結果が得られる 合計時間 Σtai = ta1 + ta2 算術平均 Σtai /n = (ta1 + ta2)/2 加重算術平均 Σ(tai*wi) /n = (ta1*w1 + ta2*w2)/2 wiはプログラムiの実行頻度 幾何平均 √(ta1*ta2)

  21. 基準マシンに対して正規化して比較 • 基準マシンとの比の平均を取るとだまされる

  22. CPU性能を改善する方法 命令セット・アーキテクチャが同じとき 1.クロック周波数を上げる 2.CPIを下げるようにプロセッサの構成を改善する 3.命令数を減らすか平均CPIの低い命令を生成するように コンパイラを改善する 命令セット・アーキテクチャ(instruction set architecture): どんな機械命令(machine instruction)を用意するか 例)a=b+c load R1, b add R1, b, c load R2, c store R1, a add R3, R1, R2 store R3, a RISC(reduced instruction set computer) CISC(complex instruction set computer) 演算はregister間のみ   memory間の演算も許す 命令数は多くなるが各命令は   命令数は少ないが複雑で処理時間が 単純で高速。固定長命令        長いものもある。可変長命令 memoryからのloadもadd命令の中で実行

  23. 性能評価用のプログラム(ベンチマーク) 例) SPEC95ベンチマーク

  24. 周波数を変えてSPECint95/SPECfp95をテスト SPECint SPECfp クロック周波数(MHz) • 同じ周波数でも1.4x(int),1.7x(fp)の差 • 周波数を2x変化: pentium:1.7x(int)1.4x(fp) • Pentium Proの方が変化量が大きい

  25. MIPS, MOPS, FLOPS 他の評価機軸 (絶対)MIPS(Million Instructions Per Second) ―1秒あたりの実行命令数(ただし100万単位) 相対MIPS =(時間基準マシン/時間評価マシン)xMIPS基準マシン MOPS(Million of Operations Per Second) ― 1秒あたりの演算数(ただし100万単位) MFLOPS(Million of FLoating Operations Per Second) ― 1秒あたりの浮動小数点演算数(ただし100万単位) PeakMIPS 誤解を生みやすい

  26. MFLOPS • 浮動小数点演算も実現される方法が異なるので信用できない. • コンパイラ・プログラムはfloatを使わない • 浮動小数点除算M68882はあるがCray-2にはない • Sin演算はM68882は1命令 • 自分に都合の良い評価方法がその都度作られる

  27. 計算時間だけの評価では不十分 • データをプロセッサに送るまでの時間 • ノイマン・ボトルネックという • 処理結果を取り出す・記憶する時間 • メモリとハード・ディスクでは異なる • プログラムの構造,データ構造により処理時間も異なる. • 並列的な問題を逐次的に処理する. 理想的な機械:専用演算器を沢山持ち, データのあるところで処理をする

  28. Amdahlの法則 マシンのある面を改善しても、その改善度に等しい 性能向上は得られるとは限らない。 例) あるマシンでプログラムを動作する際に、実行時間    のうち80%が乗算でしめられている。乗算を高速化    することにより、実行時間を現在の5倍にできるか? 答) できない 乗算がいくら早くなっても、残りの20%の実行時間 は必要とされるため ある大きな問題を解決したとき、その問題に埋もれていた 次の問題が見えてくるのがAmdahlの法則

More Related