学生によるプロセッサ設計実験に基づいた ハード/ソフト協調学習システムの評価 立命館大学 理工学研究科 ◎井手 純一 志水 建太 山崎 勝弘 小柳 滋 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
© Copyright 2025 ExpyDoc