...

コンピュータアーキテクチャ 第6回 POCOの性能評価と論理合成 テキスト

by user

on
Category: Documents
9

views

Report

Comments

Transcript

コンピュータアーキテクチャ 第6回 POCOの性能評価と論理合成 テキスト
コンピュータアーキテクチャ 第6回
POCOの性能評価と論理合成
テキスト7章
情報工学科
天野英晴
CPUの性能評価式
• CPUの性能はプログラム実行時間の逆数
プ グ
CPU Time=プログラム実行時のサイクル数×クロック周期
=命令数×平均CPI×クロック周期
CPI (Clock cycles Per Instruction) 命令当たりのクロック数
→ POCOでは1だが通常のCPUでは命令毎に異なる
通
命令毎 異
命令数は実行するプ グラ 、 ン イラ、命令セットに依存
命令数は実行するプログラム、コンパイラ、命令セットに依存
性能の比較
• CPU A 10秒で実行
• CPU B 12秒で実行
• Aの性能はBの性能の1.2倍
遅い方の性能(速い方の実行時間)を基準にする
CPU Aの性能 =
CPU Bの性能
CPU Bの実行時間
CPU Aの実行時間
×BはAの1.2倍遅い この言い方は避ける
実行時間の評価
• プログラムを走らせてその実行時間を比較
プ グラムを走らせてその実行時間を比較
–
–
–
–
デスクトップ、ラップトップ:SPECベンチマーク
サ バ TPC
サーバー:TPC
スーパーコンピュータ:Linpack, LLL
組み込み EEMBC MiBench
組み込み:EEMBC,
• 走らせるプログラム
〇実プログラムによるベンチマーク集
〇実プログラムによるベンチマ
ク集
△カーネル:プログラムの核となる部分
×トイプログラム:Quicksort 8queen
×トイプログラム:Quicksort,
8queen, エラトステネスの篩
×合成ベンチマーク:Whetstone, Dhrystone
SPECベンチマークの
変遷
Hennessy&Patterson
Computer Architecture
A Quantitative Approach
より
評価のまとめ方 報告の仕方
評価のまとめ方、報告の仕方
• 複数のプ
複数のプログラムからなるベンチマークの実行時間をどのよ
グラムからなるベンチ
クの実行時間をどのよ
うに扱うか?
– 基準マシンを決めて相対値を取る
– 複数のプログラムに対しては相乗平均を取る
〇プログラムの実行時間、基準マシンに依らない一貫性のある結果が
得られる
×非線形が入る
• 結果の報告
– 再現性があるように
– ハードウェア: 動作周波数、キャッシュ容量、主記憶容量、ディスク
容量など
– ソフトウェア:OSの種類、バージョン、コンパイラの種類、オプションな
ど
FIGURE 1.20 SPECINTC2006 benchmarks running on AMD Opteron X4 model 2356 (Barcelona). As the equation
on page 35 explains, execution time is the prod uct of the three factors in this table: instruction count in billions, clocks
per instruction (CPI), and clock cycle time in nanoseconds. SPECratio is sim ply the reference time, which is supplied by
SPEC, divided by the measured execution time. The single number quoted as SPECINTC2006 is the geometric mean of
the SPECratios. Figure 5.40 on page 542 shows that mcf, libquantum, omnetpp, and xalancbmk have relatively high CPIs
because they have high cache miss rates. Copyright © 2009 Elsevier, Inc. All rights reserved.
MIPS MFLOPS
MIPS,
MFLOPS, MOPS
• MIPS (Million
(Milli IInstructions
t ti
P
Per S
Second)
d)
–
–
–
–
一秒間に何百万個命令が実行できるか?
一命令がどの程度の機能を持っているかが入っていない
命令がどの程度の機能を持っているかが入っていない
異なる命令セット間の比較には無意味な基準
しかし分かりやすいし、IntelやARM間の比較にならばそれなりに有
効
• MFLOPS (Million FLoating Operations Per Second)
– 一秒間に何百万回浮動小数演算ができるか?
秒間 何百 回浮動 数演算
きる
– 本来、MIPSより公平な基準だが、平方根や指数などの命令を持つ
かどうかで問題が生じる→正規化FLOPS
– MOPS(Million Operations Per Second)はDSP(信号処理用プロ
セッサ)など整数演算の実行回数で評価する(積和演算回数だったり
する)。
FLOPS
10の6乗
10の9乗
10の12乗
10の15乗
10の18乗
100万
10億
1兆
1000兆
100京
M(メガ)
G(ギガ)
T(テラ)
P(ペタ)
E(エクサ)
iPhone4S
140MFLOPS
スーパーコンピュータ
数10TFLOPS-10PFLOPS
ハイスペックなPC アクセラレータ
注意! スーパーコンピュータの
注意
ン
タの
数
50-80GFLOPS 数TFLOPS
性能向上率は1.9倍/年
10PFLOPS = 1秒に1京回浮動小数点演算を行う
→ 「京」の名前の由来
CPUのコスト
• 半導体のコストの式(Hennessy & Patterson
Computer Architectureより)
yield: 歩留まり
•
Bose-Einsteinの式:
•
•
Defects per unit area = 0.016-0.057 defects per square cm (2010)
N = process-complexity
l it ffactor
t = 11.5-15.5
11 5 15 5 (40 nm, 2010)
ウェーハ(Wafer)
ダイ(Die)
Figure 1.15
1 15 This 300 mm wafer contains 280 full Sandy Bridge dies,
dies each 20.7
20 7 by 10.5
10 5 mm in a 32 nm process.
process (Sandy
Bridge is Intel’s successor to Nehalem used in the Core i7.) At 216 mm2, the formula for dies per wafer estimates 282. (Courtesy
Intel.)
CPUの電力
• 各素子のダイナミックな電力とスタティックな電
力の総和となる
• ダイナミックな電力
½ × 容量負荷の総和×電源電圧の2乗×スイッチング率
• スタティックな電力
漏れ電流×電源電圧
最大電力 → 電源、電力供給の最大性能
、
平均電力 → 放熱
ネルギ
→ バッテリーの能力、電気代
ッテリ の能力、電気代
エネルギー
ダイナミック電力の節約
• 電源電圧を下げる→2乗で効く!
電源電圧を下げる 2乗で効く!
– 1.2V-0.8Vで限界に達する
– 電源電圧を下げると動作速度が遅くなる
– 低電力組み込み用では0.4Vまである
→near threshold: 特殊なデバイスが必要
• スイッチング確率を下げる→不必要な部分は動かさない
スイッチング確率を下げる 不必要な部分は動かさない
– クロックゲーティング
– オペランドアイソレーション
• 性能と電力はトレードオフの関係
– DVFS (Dynamic Voltage Frequency Scaling)
→ 演算性能が必要なときだけ、電圧、周波数を上げてがんばる。それ
以外では電圧と周波数を下げて省電力モ ドで動作
以外では電圧と周波数を下げて省電力モードで動作
• 周波数を下げても性能が維持できる
並列処理、
チ ア
→ 並列処理、マルチコア
クロック周波数の向上
周波数
Pentium4
3 2GHz
3.2GHz
高速プロセッサのクロック周波数
Nehalem
3 3GHz
3.3GHz
京2GHz
1GHz
年間40%
Alpha21064
150MHz
プロセッサの動作周波数は
数
2003年で限界に達した
消費電力、発熱が限界に
100MHz
1992
2000
2008
年
スタティック電力(リーク電力)の節約
スタティック電力(リーク電力)の問題点
• リーク電流は、動作しなくても流れる
リ ク電流は 動作しなくても流れる
→バッテリー駆動では致命的
• リーク電流は、スレッショルドレベルが低いと
大きくなる
– 超高速CPU
– 超低電圧プロセス
• パワーゲーティング
• バックバイアス
バ クバイ
• Dual Vthなど様々な方法が使われる
など様 な方法が使われる
論理合成と圧縮
• VerilogHDLで記述しただけでは実際に動く
記述 ただけ は実際 動く
システムはできない
– 論理合成、圧縮が必要
– 対象デバイスのゲート接続の形に変換
• チップ上でCPUを実現する
– Synopsys社Design Compiler →計算機構成で
利用、今回も使う
• FPGA上でCPUで実現する
– FPGAベンダのツール →情報工学実験第2
フロントエンド設計
S t
System-CなどCレベル設計
CなどCレベル設計
Verilog-HDL, VHDLなどハードウェア記述言語でRTL設計
論理シミュレーション
論理合成・圧縮
高位合成
バグ
グ
Synopsys社
Design Compiler
論理合成後のネットリスト
バグ
論理合成後シミュレーション
バックエンド
バックエンド設計
論理合成後ネットリスト
フロアプラン
電源ネット生成
レイアウトツ ル
レイアウトツール
Synopsys社IC Compiler
Cadence社SoC Encounter
配置
クロックツリー生成
配線
最適化
エラー
レイアウトデ タ(GDS)
レイアウトデータ(GDS)
DRC, LVS, ERC
Formulation検証
実配線シミュレーション
エラー
Design Compilerによる論理合成
•
ライセンスの関係で天野研究室のマシン(sirius am ics keio ac jp)を使う
ライセンスの関係で天野研究室のマシン(sirius.am.ics.keio.ac.jp)を使う
– アカウント情報は注意して管理
– VDECのライセンスなので教育研究専用
•
対象デバイスは オクラホマ大のTSMC 0
対象デバイスは、オクラホマ大のTSMC
0.18um
18um CMOSプロセスを利用
– ライブラリのセル数が少ない
– プロセスが時代遅れ
– しかし、商用プロセスのライブラリを利用するためにはNDA契約が必要、非
しかし 商用プロセスのライブラリを利用するためにはNDA契約が必要 非
常に高価
•
バッチ処理で用いる
– tclファイル(ここではpoco.tcl)にやることを書いておく
tclファイル(ここではpoco tcl)にやることを書いておく
– design_visionでゲート配線が見れるがこれは参考程度に使う
•
実行
dc_shell
dc
shell-tt –ff poco.tcl | tee poco.rpt
レポートファイルがpoco.rptに生成される
poco tclの中身
poco.tclの中身
set search_path
search path [concat
"/home/cad/lib/osu_stdcells/lib/tsmc018/lib/"
$search_path]
set LIB_MAX_FILE {osu018_stdcells.db }
set link_library $LIB_MAX_FILE
set target_library
target library $LIB
$LIB_MAX_FILE
MAX FILE
read
ead_verilog
e og a
alu.v
u
read_verilog rfile.v
read_verilog poco1.v
current_design "poco"
create_clock -period 8.0 clk
ライブラリの設定
ファイルの読み込み
クロック周期の設定:8nsec
→ 125MHz
入出力遅延の設定
set_input_delay 2.5 -clock clk [find port "idatain*"]
_ p _
y 7.0 -clock clk [[find port
p "ddatain*"]]
set_input_delay
set_output_delay 7.5 -clock clk [find port "iaddr*"]
set output delay 3
set_output_delay
3.0
0 -clock clk [find port
"ddataout*"]
set output delay 3
set_output_delay
3.0
0 -clock
clock clk [find port "daddr*"]
set_output_delay 3.0 -clock clk [find port "we"]
入力遅延の設定
‘0’
2:0
00 01 10
extext11
pcsel
THB
ADD
00
01
10
S Y
A
+
zero
‘1’
+
0
1
zero
7:0
comsel
10:0
00
7:0
pcjr
B
rf a
rf_a
rf b
rf_b
alu_bsel
01
10
ext ext0
aadr
10:8
PC
‘7’
7
0
1
badr
cadr
rf_c
casel
rf_csel
00
01
rwe
10
7:5
25
2.5ns
7ns
idatain
ddatain
iaddr
…
命令メモリ
ddataout
データメモリ
…
daddr
dadd
we
出力遅延の設定
‘0’
2:0
00 01 10
extext11
pcsel
THB
ADD
00
01
10
S Y
A
+
zero
‘1’
+
0
1
zero
7:0
comsel
10:0
00
7:0
pcjr
B
rf a
rf_a
rf b
rf_b
alu_bsel
01
10
ext ext0
aadr
10:8
PC
‘7’
7
0
1
rf_c
casel
0.5nsくらいは必要
8-0.5=7.5ns
badr
cadr
rf_csel
00
01
rwe
10
7:5
7ns
idatain
ddatain
5nsくらいは必要
5
くらいは必要
8-5=3ns
iaddr
…
命令メモリ
ddataout
データメモリ
…
daddr
dadd
we
残りの設定
ファンアウトは12
set_max_fanout
set
max fanout 12 [current
[current_design]
design]
set_max_area 0
面積は小さいほど良い
compile
il -map_effort
ff t medium
di
-area_effort
ff t medium
di
そこそこがんばって
report_timing -max_paths 10
report_area
report
p _p
power
長い方から10本表示
面積、電力を表示
write -hier -format verilog -output poco.vnet
quit
ネットリスト生成
クリティカルパスの表示
Point
Incr
Path
-------------------------------------------------------------------------clock clk (rise edge)
0.00
0.00
clock network delay (ideal)
0.00
0.00
input external delay
2.50
2 50
2
2.50
50 r
idatain[12] (in)
0.00
2.50 r
…
rfile_1/r7_reg[15]/D (DFFPOSX1)
0.00
7.79 r
data arrival time
7
7.79
79
clock clk (rise edge)
8.00
8.00
clock network delay (ideal)
0.00
8.00
rfile 1/r7 reg[15]/CLK (DFFPOSX1)
rfile_1/r7_reg[15]/CLK
0.00
0 00
8.00
8 00 r
library setup time
-0.18
7.82
data required time
7.82
-------------------------------------------------------------------------data required time
7.82
7 82
data arrival time
-7.79
-------------------------------------------------------------------------slack (MET)
0.04
クロックの立上りがスタート
遅延時間の合計は7 79
遅延時間の合計は7.79
クロックの立上りがエンド
セ トア プタイム0 18
セットアップタイム0.18
スラック(余裕)が0.04
動作周波数=1/(目標周期ースラック) スラックがマイナスのときは加算する
クリティカルパス
‘0’
2:0
00 01 10
extext11
pcsel
THB
ADD
00
01
10
S Y
A
+
zero
‘1’
+
0
1
zero
7:0
comsel
10:0
00
7:0
pcjr
B
rf a
rf_a
rf b
rf_b
alu_bsel
01
10
ext ext0
aadr
10:8
PC
‘7’
7
0
1
badr
cadr
rf_c
casel
rf_csel
00
01
rwe
10
7:5
7ns
idatain
ddatain
iaddr
…
命令メモリ
ddataout
データメモリ
…
daddr
dadd
we
面積と電力評価
Combinational area:
35211.000000
組み合わせ回路
Noncombinational area: 15104
15104.000000
000000
Net Interconnect area:
undefined (No wire load specified)
Total cell area:
Total area:
50315.000000
undefined
(単位は多分um2: 0.2mm角くらい)
F F
F.F.
ここはレイアウトしないとわからない
Cell Internal Power = 2.7845 mW (76%)
Net Switching Power = 868
868.9760
9760 uW (24%)
--------Total Dynamic Power = 3.6535 mW (100%)
Cell Leakage Power
ネットを駆動する
電力
内部を含む全動作電力
もれ電力は0.18um
ではあまり多くない
はあまり多くな
= 88.5728 nW
125MHz動作時、シミュレーションをしていないため、スイッチング率は50%で評価しており
125MHz動作時
シミュレーションをしていないため スイッチング率は50%で評価しており
結果は目安に過ぎない
演習
周期を8nsにして割り込み付きPOCOを論理合
割
論
成して結果を確認せよ
Fly UP