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