発表資料 - 立命館大学 高性能計算研究室 HPCLab.

学生によるプロセッサ設計実験に基づいた
ハード/ソフト協調学習システムの評価
立命館大学 理工学研究科
◎井手 純一
志水 建太
山崎 勝弘
小柳 滋
2008/09/03
1
発表内容
•
•
•
•
•
•
研究背景・目的
ハード/ソフト協調学習システム
プロセッサ設計支援ツール
学生によるプロセッサ設計
システムの評価
まとめと今後の課題
2
研究背景
• システムLSIの高集積化
• ハードとソフトの両方を理解できる人材
• ハード/ソフト協調学習システムの開発
研究目的
• ハード/ソフト協調学習システムの利用
• プロセッサ設計支援ツールの評価
• システム全体の評価
3
ハード/ソフト協調学習システム
ソフトウェア学習
サンプル
プログラム
学
習プ
シロ
セ
スッ
テサ
ム
HDL
シミュレータ
MONI
シミュレータ
FPGAボードコンピュータ上で検証
MONIプロセッサ
アーキテクチャ理解
プ
支ロ
援セ
ツッ
ーサ
ル設
計
ハードウェア学習
HDLによる
プロセッサ設計
プロセッサ設計
能力の習得
命令セット設計
命令セット
アセンブラ
プロセッサ
モニタ
命令セット
定義ツール
命令セット
シミュレータ
プロセッサ
デバッガ
4
命令セット設計の流れ
命令セット
シミュレータ
・命令長
・命令形式
・命令動作
などを定義
命令セット
定義ツール
命令セット
情報
アセンブリ
プログラム
命令セット
アセンブラ
実行結果
定義した
命令セット
専用の
プログラム
機械語
5
プロセッサデバッガ・モニタ
・ プロセッサモニタ → プロセッサデバッガに指示
・ プロセッサデバッガ → パソコン操作で実機のデバッグを進める
コマンドをデコード
ボードコンピュータを制御
コマンドを
入力
コマンドの送信
データの書込み
プロセッサデバッガ
データ
データ
メモリ
シリアル IF
プロセッサ
読み出し
実行 IF
フレーム
命令
メモリ
デバッガ
シリアル
ポート
コマンド
プロセッサ
フレーム
モニタ
レジスタ・メモリ
の読出し
ホスト PC 端 末
Spartan -3 FPGA
6
デバッグコマンド
コマンド
ターゲット
意味
load
dm/im/rf/bp
プロセッサモニタにファイルをロード
save
dm/im/rf/pc/bp
メモリ・レジスタ内容を保存
set
pc/bp
PC・ブレイクポイント設定
del
bp
ブレイクポイント削除
write
dm/im/rf
メモリ・レジスタの書き込み
read
dm/im/rf/pc
メモリ・レジスタの読み出し
run all
通常実行
run clk N
Nクロック実行
run bp
ブレイク実行
list/init
dm/im/rf/pc/bp
メモリ・レジスタの表示/初期化
• プロセッサを停止するhalt、プロセッサをリセットするrst
デバッグコマンドを表示するhelp、プロセッサモニタを終了するexitを用意
7
ハード/ソフト協調学習システムを用いた
学生のプロセッサ設計実験内容
• MONIシミュレータを用いた
アセンブリプログラミング
• プロセッサ設計
- 独自の命令セット定義
- プロセッサ設計と検証
• ハード/ソフト協調学習システムの評価
- 以前の学習者と比較
- プロセッサ設計支援ツールの評価
- システムの評価と今後の課題
8
学生によるプロセッサ設計
• 命令セットの定義
bit
5
2
3
3
3
RR
op
fn
rs
rt
rd
RI
op
fn
imm
rt
rd
I8
op
J
op
format
•
•
•
•
•
•
Immediate
(rd)
immediate
SARIS
命令長16ビット固定
3オペランド命令方式
全22命令
4つの命令形式
フィールドopの上位2ビットを形式別に使用
9
SARISプロセッサの設計
• SARISプロセッサ
- シングルサイクル
- マルチサイクル
Phaseと動作
P0
PC更新、命令フェッチ
P1
命令デコード、RF読み出し
P2
ALU処理
P3
PC更新、RFに演算結果格納
・J形式命令、条件分岐命令、ST命令はP2で終了
• 設計規模
スライス数
LUT数
フリップフロップ数
FPGA使用率(%)
シングル
369
692
140
19
マルチ
443
749
237
23
・Xilinx社のSpartan-3 Starter Kitボード(20万ゲート)
・論理合成ツール:Xilinx社の総合開発環境ISE9.1i
10
SARISプロセッサの検証と評価
• クロックサイクル数
プログラム
シングル
マルチ
Nまでの和
N=10
44
164
階乗(N!)
N=8
163
603
最大公約数
574,329
92
340
除算
27/2
65
240
根の判別
2X2+12X+18
153
552
• 動作周波数とCPI
SARIS
最高動作周波数(MHZ)
CPI
シングル
21.2
1
マルチ
66.3
3.7
・マルチサイクルはシングルサイクルの約3.1倍
・シングルサイクルの方がプログラムの処理速度が速い
・マルチサイクルにおける各モジュールの最適化が必要
11
プロセッサ設計実験の比較
• MONIプロセッサ
-
-
-
-
-
bit
単一、マルチサイクル
Register
命令語長:16bit
Immediate5
3オペランド命令方式
Immediate8
全42命令
Jump
4命令方式
format
5
2
3
3
3
op
Rs
Rt
Rd
Fn
op
Rs
Rt
op
RS
op
Immediate
Immediate/Address
Target Absolute Address
• MONIとSARISの実装結果
プロセッサ
MONI
SARIS
サイクル
スライス数
FPGA使用率(%)
最高動作周波数(MHz)
シングル
578
30
21.4
4段マルチ
783
369
40
19
51.6
443
23
66.3
シングル
4段マルチ
21.2
12
ハード/ソフト協調学習システムの評価
• プロセッサ設計支援ツール
- 命令セット定義ツール・命令セットアセンブラ
・ 検証プログラムを機械語に変換する時間が短縮
・ 全体の検証、デバッグ時間の短縮
-
・
・
・
プロセッサデバッガ・モニタ
実機検証でのデバッグの容易化
1命令実行が可能
エラー箇所特定
ブレイクポイント実行
13
ソフトウェア学習の評価
(学習時間)
設計者
A
B
MONIアセンブリ
プログラミング
13
12
MONIシミュレータ
上のデバッグ
12
6
ソフトウェア学習合計
25
18
・ MONI設計者をA、SARIS設計者をB
・ アセンブリプログラミング技術の向上
A → 階乗・三角形判定・二次方程式の根の判別・素数判定・除算・
直線の方程式・8×8の行列計算・BCDコード加算/減算
B → Nまでの和・乗算・除算・階乗・素数判定・二次方程式の根の
判別・最大公約数・バブルソート
・ MONIシミュレータによりプロセッサアーキテクチャの理解
14
ハードウェア学習の評価
(学習時間)
設計者
A
B
プロセッサ
MONI
SARIS
サイクル
シングル
命令セット定義
マルチ
0
シングル
マルチ
10
0
アーキテクチャ設計
1
3
5
20
HDL設計
24
38
35
60
HDLシミュレータ
上のデバッグ
14
30
40
35
プロセッサデバッガ・
モニタを用いたデバッグ
25
48
15
10
ハードウェア学習合計
64
119
105
125
・ HDLシミュレータ上のデバッグ
→ A : 命令セット定義無し
B : 独自の命令セット定義
・ プロセッサデバッガ・モニタを用いたデバッグ
→ A : デバッグコマンド数が少ない
B : デバッグコマンド数を拡張
15
まとめ
• ハード/ソフト協調学習システム
- プロセッサ設計支援ツール
• 学生によるプロセッサ設計実験
- 独自の命令セットを定義
• ハード/ソフト協調学習システムの評価
- 学生のプロセッサ設計実験の比較と検証
今後の課題
• 命令セットシミュレータの実装と評価
• ハード/ソフト協調学習システムの評価
16