プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

CPU設計と パイプライン.
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
LZ圧縮回路の設計とハード・ソフト 最適分割の検討 電子情報デザイン学科 高性能計算研究室 4回生 中山 和也 2009/2/27.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
高性能コンピューティング学講座 三輪 忍 高性能コンピューティング論2 高性能コンピューティング論2 第4回 投機 高性能コンピューティング学講座 三輪 忍
CPU実験 第1回中間発表 4班 瀬沼、高橋、津田、富山、張本.
情報システム基盤学基礎1 コンピュータアーキテクチャ編 第2回 命令
Ibaraki Univ. Dept of Electrical & Electronic Eng.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
2012年度 計算機システム演習 第4回 白幡 晃一.
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
2006年度 計算機システム演習 第4回 2005年5月19日.
計算機システムⅡ 命令セットアーキテクチャ
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
第7回 2006/6/12.
OpenMPハードウェア動作合成システムの検証(Ⅰ)
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
高速剰余算アルゴリズムとそのハードウェア実装についての研究
プロジェクト実習 LSIの設計と実現 パイプライン実行とハザード.
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
Advanced Computer Architecture
コンピュータに計算させる命令を確かめよう!
Advanced Computer Architecture
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
TA 高田正法 B10 CPUを作る 3日目 SPIMの改造 TA 高田正法
Advanced Computer Architecture
ディジタル回路の設計と CADによるシステム設計
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
08. メモリ非曖昧化 五島 正裕.
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
ソフトウェア保守のための コードクローン情報検索ツール
コンピュータアーキテクチャ 第 11 回.
09. メモリ・ディスアンビギュエーション 五島 正裕.
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 4 回.
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
ガイダンス 電子計算機 電気工学科 山本昌志 1E
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
プロセッサ設計支援ツールを用いた 独自プロセッサの設計
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
コンピュータアーキテクチャ 第 11 回.
言語プロセッサ 第12日目 平成20年1月9日.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
6.3 インタプリタ (1)インタプリタ(interpreter)とは
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価 立命館大学 理工学研究科 高性能計算研究室 M2 志水 建太 2009/02/20 発表内容 ・研究背景・目的 ・ハード/ソフト協調学習システム ・命令セットシミュレータ ・スーパースカラシミュレータ ・システムの評価 ・まとめ・今後の予定 ~で,高性能~が発表します. ~はこんな感じです. 1

研究背景と目的 研究背景 研究目的 半導体の高集積化 ハード/ソフト協調学習システムの開発 プロセッサ設計支援ツールの実装 プロセッサアーキテクチャの高速化 研究目的 命令セットシミュレータの実装 スーパースカラシミュレータ(シングルサイクル)の実装 プロセッサ設計時間の短縮と並列実行アーキテクチャの理解 ~は~半導体~ハード~ソフト~ソフト~ハード~ハードとソフト~システム~様々~実装~アーキテクチャ~考案 ~は~二つの~実装~理解 2

ハード/ソフト協調学習システム ソフトウェア学習 ハードウェア学習 学習システム 3 命令セット設計 命令セット 定義ツール アセンブラ シミュレータ プロセッサ モニタ デバッガ サンプル プログラム MONIプロセッサ アーキテクチャ理解 ソフトウェア学習 ハードウェア学習 HDLによる プロセッサ設計 HDL FPGAボード- コンピュータ上で検証 MONI 能力の習得 学習システム 設計支援ツール システムは~から構成~三つのステップで学習~ 最初にソフトウェア~理解~次にハードウェア~設計と検証~身につける~さらに独自の~命令セットの設計~プロセッサ 3

命令セットシミュレータの特徴 命令形式の 定義から学習 命令セットの評価 4 命令セット 情報 定義した 命令セットの プログラミング 定義ツール 命令セット ・命令長 ・命令形式 ・動作 ・その他 命令セット シミュレータ シミュレーション結果 定義項目  ・命令セットの名前  ・レジスタファイル・メモリの幅と容量  ・フィールド,フォーマット形式  ・命令名,各命令の命令動作  ・疑似命令 ~特徴~定義ツール~形式の定義から学習~シミュレータ~命令セットの評価 命令セットの評価 アセンブリ プログラム 4

命令セット定義とアセンブリプログラミング 命令語長は,8,16,32ビットから選択 3オペランドまで対応 命令動作は用意された中から選択(全70命令) 算術・ビット演算子 : 各5命令, 関係演算子 : 4命令, シフト演算子 : 3命令など 5つのアドレス指定モード 絶対アドレス,レジスタアドレス,即値アドレス,PC相対アドレス,インデックスアドレス 全部で205パターンの記述 4つのフラグ(ゼロ・ネガティブ・キャリー・オーバーフローフラグ) 算術演算,ビット演算,シフト演算でセット ADD $0 $1 ABC; HALT; ST [$1+2] $0; JUMP LOOP; LOOP: LD $0 [0]; END レジスタは$で表現 各行の最後は ; EQU ABC 5; プログラムの終わりはEND //例 コメント レジスタや数値を宣言 ~算術やビットなら~など全部~絶対~組み合わせ~205~ゼロ~フラグ~記述例~各行~ 5

命令セットシミュレータの構成 6 コマンド入力クラス 命令セット情報ファイル コマンド入力 コマンド解析 アセンブリプログラム 実行クラス 表示クラス 入出力クラス データ送信 通常実行 ブレイク実行 N命令実行 データ表示 ファイル読込み ファイル出力 プログラムチェック データクラス ~構成~5~コマ~実行~表示~入出力~データ~ ~シミュレーションコマンド~呼び出す~必要に応じて呼び出す メモリ レジスタ フラグ 実行回数 シミュレーション 結果ファイル データ設定 データ送信 6

シミュレーションコマンド load save set del run rst list exit stop : 最大実行命令数 引数 意味 load file name 命令セット・プログラムの読込み save file name シミュレーション結果を作成 set pc / bp / stop / rf / dm レジスタ・メモリの設定 del bp ブレイクポイント削除 run none / bp / N 通常 / ブレイク / N命令実行 rst none / pc / bp / rf / sp / im / dm レジスタ・メモリのリセット list ~コマンド~8~3つの実行~表示もたくさん~ none / pc / bp / rf / sp / im / dm / inst レジスタ・メモリの表示 exit シミュレータの終了 stop : 最大実行命令数 inst : 各命令の実行数と全命令実行数 7

命令セットを用いたテスト 8 SOAR (2004年度 4回生が設計) SARIS (2008年度 4回生が設計)  - 全25命令,検証プログラム:Nまでの和,最大値,最大公約数,バブルソート 5 3 2 Opecode Rd Rs Rt Fn Immediate 命令形式 Register JUMP Transfer SARIS (2008年度 4回生が設計)  - 全22命令,検証プログラム:Nまでの和,Nの階乗,最大公約数,除算,根の判別 5 3 2 Opecode Rd Rs Rt Fn Immediate (Rd) 命令形式 Register JUMP Immediate8 Immediate3 PSCSF (2009年度 4回生が設計)  - 全27命令,検証プログラム:Nまでの和,最大値,素数判定,BCD加算,一次方程式 ~テスト~四回生が設計~命令形式~全~検証~コマンド・記述~確認 5 3 2 Opecode Rs Rt Rd Fn Immediate 命令形式 Register JUMP Immediate8 Immediate5 コマンド・全205パターンやフラグが正しく動くことを確認 三つの命令セットを用いて,全てのプログラムが正しく動くことを確認 8

スーパースカラシミュレータの設計方針 2命令同時実行シングルサイクルプロセッサ 2命令同時実行パイプラインプロセッサ ハザードとその対策の理解 シングルサイクルでハザードとストールの理解 パイプラインでフォワーディング,ストールや遅延分岐の理解 スーパスカラアーキテクチャの理解 命令1 命令3 命令4 命令6 命令7 命令2 ストール 命令5 ストール ストール 命令1 IF ID EX MEM WB 命令2 IF ストール 命令2 IF ID EX MEM WB 命令3 IF ID EX MEM WB 命令4 ストール 命令4 IF ID EX MEM WB ~方針~シングル~ハザード~ストールにより1命令~パイプライン~命令読出し,解読,実行,メモリアクセス,レジスタ書き込みの5つのステージ~ シングルで~パイプライン~理解~ 9

スーパースカラシミュレータの構成 10 表示クラス 実行命令 PC・SP メモリ・レジスタ データ・制御ハザード データパス リセットクラス メモリ書き込みクラス 実行クラス 全データ PC データメモリ エディタ 命令メモリ データメモリ プログラムチェック データチェック 1サイクル 通常 ブレイク Nサイクル ハザード検出 ~構成~表示~リセット~メモリ~実行~コマンド~呼び出す 10

シングルサイクルプロセッサのデータパス 2 1 1 1 -1 -1 1 2 11 -2 CU + + + レ ジ ス タ フ ァ イ ル デ 制御 ハザード検出 + データ ハザード検出 + + 2 レ ジ ス タ フ ァ イ ル A L U デ | タ メ モ リ 命 令 メ モ リ PC A L U + 1 ~データパス~2命令同時実行~2つ~モジュール~ポート 1 + SP 1 + -1 -1 1 2 + 11 -2

通常実行のデータパス 2 1 1 1 -1 -1 1 2 -2 12 CU + + + レ ジ ス タ フ ァ イ ル デ | タ メ モ dm_we2 pc_we dm_we1 dm_re2 im_re dm_re1 制御 ハザード検出 rf_we1 rf_we2 + データ ハザード検出 + + 2 レ ジ ス タ フ ァ イ ル A L U デ | タ メ モ リ 命 令 メ モ リ PC A L U + sp_re1 1 sp_re2 ~データパス~2命令実行~ 1 sp_we1 + sp_we2 SP 1 + -1 -1 1 2 + 12 -2

ハザード発生時のデータパス 2 1 1 1 -1 -1 1 2 -2 13 CU + + + レ ジ ス タ フ ァ イ ル デ | タ メ pc_we dm_we2 dm_we1 dm_re2 im_re dm_re1 制御 ハザード検出 rf_we1 rf_we2 + データ ハザード検出 + + 2 レ ジ ス タ フ ァ イ ル A L U デ | タ メ モ リ 命 令 メ モ リ PC A L U + sp_re1 1 sp_re2 ~データパス~ハザード~1命令実行~ 1 sp_we1 + sp_we2 SP 1 + -1 -1 1 2 + 13 -2

フォワーディングによるハザード対策 14 LD $0 MEM[$1] IF ID EX MEM WB ADD $1 $0 $1 IF ストール ストール ID EX MEM ADD $2 $0 $2 IF ストール ID EX MEM ADD $1 $0 $1 IF ID EX MEM WB ~分岐~パイプラインでは書き込む際に~条件分岐命令~$0~ ADD $2 $0 $1 IF ストール ID EX MEM WB 命令3 IF ID EX MEM WB 14

分岐命令の遅延分岐 15 並べ 替え SUB $1 $1 $2 SUB $1 $1 $2 IF ID EX MEM ADD $3 $2 $0 BNEZ $0 LABEL IF ID EX MEM 並べ 替え ADD $2 $1 $2 ADD $3 $2 $0 IF ID EX BNEZ $0 LABEL ADD $2 $1 $2 IF ID EX ~分岐~パイプラインでは書き込む際に~条件分岐命令~$0~ 命令5 命令5 IF ID 命令6 命令6 IF ID 15

シングルサイクルプロセッサの動作テスト データパスの表示やエラー出力など,シミュレータの機能が正しく動作することを確認 各命令の処理や境界値の変化も正しく動作することを確認 プログラムを用いたテスト 9個のテストプログラム 除算,素数判定,三角形判定,一次方程式など 全てのプログラムが正しく動作することを確認 ~テスト~インタフェース~命令~などの~確認~ 16

プロセッサ設計支援ツールの評価 命令セット定義ツール 命令セットシミュレータ 命令セットアセンブラ プロセッサデバッガ・モニタ 様々な命令セットを設計することが可能 命令セットの定義と評価を繰り返し行う環境 命令セットシミュレータ 表示項目が多く,デバッグがスムーズ 検証プログラムが先にでき,プロセッサ設計時間の短縮 命令セットアセンブラ 手書きで機械語にする手間が省け,プロセッサ設計のみに集中 HDLシミュレータ上と実機上の検証時間やデバッグ時間の短縮 プロセッサデバッガ・モニタ 効率よいバグの発見で,デバッグ時間の短縮 HDLシミュレータ上と実機上の動作の違いを的確に発見 ~評価~ツール~様々~修正も簡単~環境~シミュレータ~プログラムの~検証~短縮~ ~アセンブラ~集中~短縮~モニタ~デバッグコマンドが豊富~短縮~発見~ 17

システムの評価 プロセッサ学習システム システム全体 複数のアーキテクチャを学習 MONIプロセッサ設計時間の短縮 独自のプロセッサ設計にスムーズに入れる システム全体 FPGAボード上でプロセッサの検証が可能 ハードウェアとソフトウェアのトレードオフを学習 三人の学生が,アーキテクチャの設計と検証 独自のプロセッサを設計 ~評価~システム~パイプなど~学習~短縮~一度設計している~ ~全体~可能~命令セットの設計からプロセッサ設計を通すことで~三人の~検証することができた~独自のプロセッサ設計~ 18

まとめと今後の課題 まとめ 今後の課題 命令セットシミュレータ スーパースカラシミュレータ システムの評価 SOAR,SARIS,PSCSF命令セットを用いたテスト 命令セットの評価,検証プログラムの作成 スーパースカラシミュレータ シングルサイクルプロセッサの処理,データパス,動作テスト パイプラインプロセッサの処理の検討 システムの評価 プロセッサ設計時間の短縮 複数のプロセッサ設計,独自のプロセッサ設計 今後の課題 2命令同時実行のパイプラインプロセッサの実装 命令セット・スーパースカラシミュレータの評価 ~課題~まとめ~シミュレータでは~作成ができるように~テスト~確認~シミュレータでは~シングル~実装~テスト~確認~ ~パイプラインの処理~フォワーディングや遅延分岐~検討~ ~課題~スーパースカラシミュレータに~パイプライン~実装~シミュレータの評価~ 命令~三つの~テスト~三つ目の~評価~作成~ スーパー~シングル~パイプ~検討~動作テスト~ システム~様々なツールによって~設計時間~また,システムを利用して学生が~プロセッサ~設計 19