Document

プロセッサ設計支援ツールを用いた
独自プロセッサの設計
立命館大学 理工学部
高性能計算研究室
宮崎 匡史
2009/02/27
1
研究背景と目的
• 研究背景
–
–
–
–
LSIの高集積化
ハードウェアとソフトウェアの学習者の必要性
ハード/ソフト協調学習システムの開発
プロセッサ設計支援ツールの開発
• 目的
– プロセッサ設計支援ツールを用いた独自プロセッサの設計
– プロセッサ設計支援ツールの評価
2
命令セット設計
命令セット
情報
命令セット
定義ツール
・命令長
・命令形式
・命令動作
などを定義
定義した
命令セットの
プログラミング
アセンブリ
プログラム
命令セット
シミュレータ
シミュレー
ション結果
命令セット評価
アセンブルする
命令セット
アセンブラ
機械語
3
プロセッサモニタ・デバッガ
ホスト
PC端末
プ
ロ
セ
ッ
サ
モ
ニ
タ
コマンドの送信
データの書き込み
プロセッサデバッガ
データメモリ
命令メモリ
デバッガ
プロセッサ
シリアル
ポート
レジスタ・メモリの
読み出し
FPGA Spartan-3
4
PSCSFプロセッサの設計
• 命令セットアーキテクチャ
• 命令長16bit
• 全27命令
• ZF、NF、CF、VFを用いた命令セット
命令形式
R形式
I5形式
I8形式
J形式
5bit
Opecode
Opecode
Opecode
Opecode
3bit
3bit
3bit
2bit
Rs
Rt
Rd
Fn
Rs
Rt
Immediate
Rs
Immediate/Address
Target absolute address
• 検証プログラムの作成
• Nまでの和、素数判定、最大値、BCD加算、一次方程式
→ 命令セットが正しく動作しているかを確認
5
PSCSFプロセッサの回路図
11
CU
11
11
+
11
11
11
PC
A 17
L
U
8
IM
M
P
X
RF
M
P
X
M
P
X
FR
1
A
L
U
DM
M
P
X
6
PSCSFプロセッサの実装
• 命令セットアセンブラ
– 検証プログラムを機械語へ変換
• HDLシミュレータを用いて動作確認
– 機械語プログラム
• Nまでの和、素数判定、最大値、BCD加算、一次方程式
• プロセッサモニタ、プロセッサデバッガ
– FPGAボードに実装したプロセッサを検証
7
プロセッサ設計支援ツールの評価
• 命令セット定義ツール
– 命令セットの定義ミスを軽減
– 途中保存を行うことができる機能によって設計時間が短縮
• 命令セットシミュレータ
– プロセッサの動作が詳しく表示されてデバッグを行いやすい
– プログラムカウンタをリセットすることで簡単に再実行が可能
• 命令セットアセンブラ
– 長いプログラムでも機械語に変換する時間を短縮できる
• プロセッサモニタ、プロセッサデバッガ
– FPGAボードに実装されたプロセッサの動作を検証できる
– 負の値を設定できるようになりデバッグを行いやすい
8
まとめ
• プロセッサ設計支援ツール
• PSCSFプロセッサの設計
• プロセッサ設計支援ツールの評価と改善
– 命令セット定義ツール、命令セットシミュレータ
– 命令セットアセンブラ、プロセッサモニタ、プロセッサデバッガ
今後の課題
• プロセッサ設計支援ツールの有効性の向上
• 更なるプロセッサ設計時間の短縮
9