slide1 l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
????????? PowerPoint Presentation
Download Presentation
?????????

Loading in 2 Seconds...

play fullscreen
1 / 28

????????? - PowerPoint PPT Presentation


  • 351 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '?????????' - salena


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

マイクロプロセッサ

第2回

コンピュータの性能

関根 優年

performance
性能(performance)
  • 性能評価は難しい

   値段が高いから性能が良いとは限らない

    • 周波数が高いから早い?     3GHz
    • メモリ容量が大きいから早い?  256MB
    • HDDが大きいから性能は良い? 80GB
    • 動作時間が長いから良い?    7時間
  • 性能は用途によって異なる
    • 画像処理,ワープロ,数値科学計算
    • 問題の大きさ 200MB,1GB?
core i7
Core i7??
  • マルチコアが必要?
    • 何に使用する?
nikkeitrendynet
nikkeiTRENDYnet 記事
  • Core i7は本当に速いのか? Core 2 Duoと実力を比べた
  • シングルスレッド当りの性能を比較してみる
    • 円周率計算プログラム「スーパーπ」を使い、1677万桁の計算にかかった時間
  • RAWデータの現像速度を比較してみる
    • 800万画素クラスのデジタルカメラで撮影したRAWデータ(1ファイルあたり約13MB)を30枚読み込み、プリセットの現像パラメーターで現像してJPEG形式で保存
slide5
スループット・実行時間

コンピュータの性能とは何?

実行時間 : 作業を開始してから終了するまでの時間

(応答時間)

スループット: 一定時間内に終了した作業の総量

(a)

スループット

同じ実行時間でも、

スループットは異なる

実行時間

スループット

(b)

車で言えば、

  速度が実行時間

  馬力がスループット

実行時間

slide6
例題) スループットと応答時間

例題)

コンピュータシステムに下記の変更を加えた場合、スルー

プット、実行時間はどうなるか?

1.プロセッサを高速にする

2.複数プロセッサを用いる

答)

1.プロセッサを高速にする

    ⇒ 実行時間は短くなる。

スループットは大きくなる。

2.複数プロセッサを用いる

    ⇒ (基本的には)実行時間はそのまま。

       スループットは大きくなる。

slide7
性能・相対性能

ここでは、実行時間に着目してマシン性能を考える

(マシンXの)性能の定義

性能X=1/実行時間X

単位時間あたりの実行回数

マシンの性能比

マシンXはマシンYよりもn倍早い

n = 性能X/性能Y = 実行時間Y/実行時間X

slide8
例題) 相対性能

例題)

同じプログラムを動かしたときにかかる時間が、マシン

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 倍

slide9
性能の測定

コンピュータの性能は実行時間で計測可能

実行時間の計り方は様々

ここではユーザCPU時間をCPU性能とする。

slide10
クロック

マイクロプロセッサはクロックに基づき動作

電圧

クロック周期

時間

クロック周期=クロックサイクルタイム

クロック周波数=1/クロック周期

例) Pentium IV 3GHz

CPU内部のクロック周波数が3GHz

      クロック周期は0.33ns

slide11
同期式回路
  • 素子の動作がまちまち 

→ 回路の動作がまちまち → 同時をどう表す?

  • 時間も離散化する: 同じクロック内=同時

クロックのエッジ時刻で同時に動作

  • 時間の揺らぎによる誤動作を防ぐ.
    • 回路が同時に動くので瞬間的に電流が流れる
    • 回路が動かないときでもクロック信号は動作

無駄なエネルギーが消費される

slide12
測定基準同士の関係

コンピュータの最終的な性能はCPU実行時間

クロック

サイクルタイム

そのプログラムの

CPUクロック・サイクル数

あるプログラムの

CPU実行時間

X

クロック

周波数

そのプログラムの

CPUクロック・サイクル数

÷

コンピュータの性能を挙げるためには、

① クロック周波数を上げるか、

  ② プログラムが必要とするサイクル数を減らすか

を行えばよい。

実際には、これらを両立するのは難しい。

(回路を単純化するとクロック周波数は上がるが、サイクル数は増える、

逆に複雑にするとクロック周波数が下がるが、サイクル数は減る)

slide13
例題) 性能の改善

例題)

クロック周波数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

cpi 1
CPI(1命令あたりの平均クロックサイクル数)

実際にはプログラムは複数の命令からなる

プログラムにおける命令数が増えれば、一般に

プログラムに必要なサイクル数は増加する。

命令数とサイクル数の関係を表す指標としてCPIを導入

CPI(1命令あたりの平均クロックサイクル数)

プログラムの

CPUクロック・サイクル数

1命令あたりの

平均クロックサイクル数

プログラム中の実行命令数

X

CPI

一般に命令によって、必要とするサイクル数は異なる

(命令Aは1サイクル、命令Bは2サイクルといった感じ)

slide15
例題) 性能方程式の使用

例題)

同じ命令セットアーキテクチャを持つ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倍速い)

cpi cpu 1
CPIとCPU時間の関係式(1)

クロック

サイクルタイム

あるプログラムの

CPU実行時間

プログラム中の実行命令数

CPI

X

X

クロック

周波数

プログラム中の実行命令数

CPI

÷

X

cpi cpu 2
CPIとCPU時間の関係式(2)

クロック

周波数

プログラム中の実行命令数

あるプログラムの

CPU実行時間

CPI

÷

X

プログラムを動か

せば計れる

マシン性能諸元

として与えられる

単体ではほとんど

計測不能

実行命令数はアーキテ

クチャに依存するが、詳

細を知らずとも測定可能

CPIの入手法 : ① マシンの細部に渡ってシミュレーションする

          ② 命令の種類別に観測する

slide18
例題) コード系列の比較

例題)

あるマシンについて、命令クラス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

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

どちらのコンピュータがどれだけ速いか

 ---用いる尺度により種々の結果が得られる

合計時間 Σtai = ta1 + ta2

算術平均 Σtai /n = (ta1 + ta2)/2

加重算術平均 Σ(tai*wi) /n = (ta1*w1 + ta2*w2)/2

wiはプログラムiの実行頻度

幾何平均 √(ta1*ta2)

slide21
基準マシンに対して正規化して比較
  • 基準マシンとの比の平均を取るとだまされる
slide22
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命令の中で実行

specint95 specfp95
周波数を変えてSPECint95/SPECfp95をテスト

SPECint

SPECfp

クロック周波数(MHz)

  • 同じ周波数でも1.4x(int),1.7x(fp)の差
  • 周波数を2x変化: pentium:1.7x(int)1.4x(fp)
  • Pentium Proの方が変化量が大きい
mips mops flops
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 誤解を生みやすい

mflops
MFLOPS
  • 浮動小数点演算も実現される方法が異なるので信用できない.
    • コンパイラ・プログラムはfloatを使わない
    • 浮動小数点除算M68882はあるがCray-2にはない
    • Sin演算はM68882は1命令
  • 自分に都合の良い評価方法がその都度作られる
slide27
計算時間だけの評価では不十分
  • データをプロセッサに送るまでの時間
    • ノイマン・ボトルネックという
  • 処理結果を取り出す・記憶する時間
    • メモリとハード・ディスクでは異なる
  • プログラムの構造,データ構造により処理時間も異なる.
    • 並列的な問題を逐次的に処理する.

理想的な機械:専用演算器を沢山持ち,

データのあるところで処理をする

amdahl
Amdahlの法則

マシンのある面を改善しても、その改善度に等しい

性能向上は得られるとは限らない。

例) あるマシンでプログラムを動作する際に、実行時間

   のうち80%が乗算でしめられている。乗算を高速化

   することにより、実行時間を現在の5倍にできるか?

答) できない

乗算がいくら早くなっても、残りの20%の実行時間

は必要とされるため

ある大きな問題を解決したとき、その問題に埋もれていた

次の問題が見えてくるのがAmdahlの法則