データパス分割に 基づく空間的冗長性 を利用した高信

データパス分割に基づく
高信頼プロセッサの提案とその予備評価
◎松坂茂治†
井上弘士‡
†福岡大学大学院工学研究科電子情報工学専攻
‡九州大学大学院システム情報科学研究院
December 1, 2004
1
発表内容
背景
データパス分割に基づく空間的冗長性
単純多重化方式
圧縮多重化方式
性能評価
おわりに
December 1, 2004
2
背
景
コンピュータ・システムの障害が重大な影響を及ぼす分野
オンライン・
トランザクション処理
人工衛星
医療
交通制御
高信頼化が必要不可欠
コンピュータ・システムの核であるプロセッサの
信頼性を向上することが極めて重要!!
December 1, 2004
3
LSI故障
永久故障(permanent fault)
長期間にわたって存在する故障
発生原因
半導体接合の破壊、回路短絡、断線など
システムの内部的要因
一時故障(temporary fault)
システムの稼動サイクルと比較して非常に
短い期間だけ存在する故障
発生原因
温度の変化、振動、α粒子や宇宙線など
システムの外部的要因
December 1, 2004
4
故障検出方式
時間的冗長性
プロセッサ
空間的冗長性
プロセッサ
プロセッサ
検出方法
=?
ハードウェア
コスト
実行時間
検出可能な
故障
December 1, 2004
☺
☹
一時故障
=?
☹
☺
永久故障
一時故障
5
研究目的
時間的冗長性
ハードウェア
コスト
実行時間
検出可能な
故障
☺
☹
空間的冗長性
一時故障
☹
☺
永久故障
一時故障
ハードウェア・コストを増大させずに空間的冗長性を実現!!
データパス分割方式
December 1, 2004
6
単純多重化方式
32bit×1[冗長度1]
16bit×2 [冗長度2]
32bit
H1
H1
H1
H0
H0
H0
L1
L1
L1
L1
H1
L1
H1
L1
H1
L0
L0
L0
3CC
Instruction1
Instruction2
Instruction3
16bit
16bit
L0
H0
L0
H0
L0
H0
L1
H1
L1
H1
L1
H1
6CC
欠点
実行時間増加:冗長度2⇒2倍
冗長度4⇒4倍
December 1, 2004
L0
H0
L0
H0
L0
H0
8bit×4 [冗長度4]
8bit
8bit
8bit
8bit
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
12CC
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
永久故障も検出可能
7
実行時間増加を減らすために…
命令が使用するデータ
0000 0000
0000 0000
1111 1111
0000 0000
0101 0110
1111 1111
0000 0000
0000 0000
0010
0100
1111
0000
1011
1101
0100
0000
1111
0011
1001
0101
1011
1101
1001
0110
演算には不必要なデータ
演算に必要なデータ
有効演算ビット幅
多くのプログラムでは…
データパス幅 > 有効演算ビット幅
実行時間オーバヘッドの削減
に利用できないか?
データパス幅
December 1, 2004
8
圧縮多重化方式
32bit×1[冗長度1]
16bit×2 [冗長度2]
32bit
H1
H1
H1
H0
H0
H0
L1
L1
L1
16bit
L0
L0
L0
L1
H1
L1
H1
L1
H1
3CC
Instruction1
L0
H0
L0
H0
L0
H0
16bit
L1
H1
L1
H1
L1
H1
L0
H0
L0
H0
L0
H0
6CC
Instruction2
Instruction3
有効演算ビット幅≦分割後のデータパス幅
32bit
H1
H1
H1
3CC
December 1, 2004
H0
H0
H0
L1
L1
L1
16bit
L0
L0
L0
L1
L1
L1
3CC
L0
L0
L0
16bit
L1
L1
L1
8bit×4 [冗長度4]
8bit
8bit
8bit
8bit
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
12CC
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
L0
L1
H0
H1
8bit
8bit
8bit
8bit
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
3CC
9
従来型冗長性との比較
従来手法
一時故障
永久故障
時間的
冗長性
空間的
冗長性
○
○
○
提案手法
単純多重化 圧縮多重化
○
○
○
○
実行時間
ハードウェア
コスト
December 1, 2004
10
データパス分割の実現
When?
How?
静的データパス分割
プログラム実行以前
(コンパイル時)
専用コンパイラ
動的データパス分割
プログラム実行時
専用ハードウェア
利点
大幅なハードウェアの変 様々なプログラムに対
更なし
して互換性をもつ
欠点
プログラム実行以前に
有効演算ビット幅の解
析が必要
December 1, 2004
ハードウェア・コストの
増加
11
静的データパス分割
32ビット プロセッサ
アプリケーション
プログラム
コンパイラ
冗長度
オブジェクト・コード
32bit×1
16bit×2
December 1, 2004
8bit×4
12
故障の検出範囲
M
U
X
加
算
4
P
C
読み出し
アドレス
命令
メモリ
2ビット
左シフト
命令
読み出し
レジスタ1
読み出し
データ1
読み出し
レジスタ2
レジスタ
書き込み
レジスタ
読み出し
データ2
書き込み
データ
16
December 1, 2004
符号
拡張
加 ALU
算 結果
ALU ALU
結果
M
U
X
読み出し
アドレス
読み出し
データ
M
U
X
データ・
書き込み
メモリ
データ
32
13
性能評価
評価目的
命令レベルのシミュレーションを行い、最善ケースでの
実行時間増加を測定し、提案手法の有効性を調査する
評価環境
シミュレータ
SimpleScalar(ver.3.0d)
ベンチマーク・プログラム
SPEC2000 整数プログラム
 164.gzip, 175.vpr, 176.gcc, 197.parser, 255.vortex, 256bzip
入力データ small input
December 1, 2004
14
プログラム実行時間
クロックサイクル時間
命令当たりの平均所要クロックサイクル数
実行命令数
冗長度2:ICorg + ICgt16b × 1
冗長度4:ICorg + ICgt8b × 3
ICorg :従来型32ビットデータパスでの実行命令数
ICgt16b :「有効演算ビット幅≧16」の命令数
ICgt8b :「有効演算ビット幅≧8」の命令数
December 1, 2004
15
正規化実行時間(圧縮多重化方式)
4.0
冗長度2
正規化実行時間 l
3.5
冗長度4
3.0
冗長度2
2.5
1.62
2.0
冗長度4
1.5
3.09
1.0
0.5
25
6.
bz
ip
17
5.
vp
r
17
6.
gc
c
18
1.
m
cf
19
7.
pa
rs
er
25
5.
vo
rt
ex
16
4.
gz
ip
0.0
benchmark
December 1, 2004
16
圧縮可能命令率
圧縮可能命令率
全命令中
の内訳
冗長度2
冗長度4
分岐命令
18.23%
82.43%
75.61%
load/store命令
37.32%
0.00%
0.00%
ALU命令
41.59%
52.62%
36.32%
その他
2.86%
0.00%
0.00%
さらに実行時間増加を減らすには??
コンパイラによるデータ再配置
ベース・アドレス専用圧縮方式の確立
December 1, 2004
17
おわりに
まとめ
データパス分割方式
 単純多重化方式
 圧縮多重化方式
実行時間増加
冗長度2 冗長度4
単純多重化方式
2.00
4.00
圧縮多重化方式
1.62
3.09
今後の課題
データパス分割をサポートしたプロセッサの設計
データパス分割実行の実現方式の確立
December 1, 2004
18