16
学学学学学学学学学学学学学学学学学学学学学学 / 学学学学学学学 学学学学学学学 学学学学学 学学学学学学 ◎ 学学 学学 学学 学学 学学 学学 2008/09/03 1

学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

  • Upload
    ruana

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価. 立命館大学 理工学研究科 ◎井手 純一 志水 建太 山崎 勝弘 小柳 滋 2008/09/03. 発表内容. 研究背景・目的 ハード / ソフト協調学習システム プロセッサ設計支援ツール 学生によるプロセッサ設計 システムの評価 まとめと今後の課題. 研究背景. システム LSI の高集積化 ハードとソフトの両方を理解できる人材 ハード / ソフト協調学習システムの開発. 研究目的. ハード / ソフト協調学習システムの利用 プロセッサ設計支援ツールの評価 - PowerPoint PPT Presentation

Citation preview

Page 1: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評

立命館大学 理工学研究科◎ 井手 純一

志水 建太山崎 勝弘小柳 滋

2008/09/03

1

Page 2: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

発表内容

• 研究背景・目的• ハード / ソフト協調学習システム• プロセッサ設計支援ツール• 学生によるプロセッサ設計• システムの評価• まとめと今後の課題

2

Page 3: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

研究背景• システム LSI の高集積化• ハードとソフトの両方を理解できる人材• ハード / ソフト協調学習システムの開発

研究目的

• ハード / ソフト協調学習システムの利用• プロセッサ設計支援ツールの評価• システム全体の評価

3

Page 4: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

ハード / ソフト協調学習システム

プロセッ

サ設計支援

ツー

命令セット設計

命令セット 定義ツール

命令セットアセンブラ

命令セットシミュレータ

プロセッサ モニタ

プロセッサ デバッガ

プロセッ

学習システム

サンプル プログラム

MONI プロセッサ アーキテクチャ理

ソフトウェア学習 ハードウェア学習 HDL による

プロセッサ設計

HDL シミュレータ FPGA ボード -

コンピュータ上で検証

MONI シミュレータ

プロセッサ設計 能力の習得

4

Page 5: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

命令セット設計の流れ

命令セット定義ツール

命令セット情報

命令セットシミュレータ

命令セットアセンブラ

実行結果

機械語

定義した命令セット専用のプログラム

・命令長・命令形式・命令動作などを定義

5

アセンブリプログラム

Page 6: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

   プロセッサモニタ → プロセッサデバッガに指示・   プロセッサデバッガ → パソコン操作で実機のデバッグを進める・

Spartan -3 FPGA

プロセッサデバッガ

ホストPC端末

プロセッサ モニタ

デバッガ

データ メモリ

プロセッサ フレーム IF

シリアル IF

命令 メモリ

コマンドをデコードボードコンピュータを

制御

コマンドを

入力

コマンドの送信データの書込み

レジスタ・メモリの読出し

6

シリアル

ポートフレーム

実行コマンド読み出しコマンド

データ

プロセッサデバッガ・モニタ

Page 7: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

7

コマンド ターゲット 意味

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 を用意

デバッグコマンド

Page 8: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

ハード / ソフト協調学習システムを用いた学生のプロセッサ設計実験内容

• MONI シミュレータを用いたアセンブリプログラミング

• プロセッサ設計  - 独自の命令セット定義  - プロセッサ設計と検証• ハード / ソフト協調学習システムの評価  - 以前の学習者と比較  - プロセッサ設計支援ツールの評価  - システムの評価と今後の課題

8

Page 9: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

学生によるプロセッサ設計• 命令セットの定義

9

bitformat 5 2 3 3 3

RR op fn rs rt rd

RI op fn imm rt rd

I8 op Immediate (rd)

J op immediate

• SARIS• 命令長16ビット固定• 3オペランド命令方式• 全22命令• 4つの命令形式• フィールド op の上位2ビットを形式別に使用

Page 10: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

SARIS プロセッサの設計• SARIS プロセッサ - シングルサイクル - マルチサイクル

10

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

Page 11: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

SARIS プロセッサの検証と評価• クロックサイクル数

11

• 動作周波数と CPI

プログラム シングル マルチ

N までの和 N=10 44 164

階乗 (N!) N=8 163 603

最大公約数 574,329 92 340

除算 27/2 65 240

根の判別 2X2+12X+18 153 552

SARIS 最高動作周波数 (MHZ) CPI

シングル 21.2 1

マルチ 66.3 3.7

・マルチサイクルはシングルサイクルの約 3.1 倍・シングルサイクルの方がプログラムの処理速度が速い・マルチサイクルにおける各モジュールの最適化が必要

Page 12: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

プロセッサ設計実験の比較• MONI プロセッサ - 単一、マルチサイクル - 命令語長 :16bit -  3 オペランド命令方式 - 全 42 命令 -  4 命令方式

12

bit format 5 2 3 3 3

Register op Rs Rt Rd Fn

Immediate5 op Rs Rt Immediate

Immediate8 op RS Immediate/Address

Jump op Target Absolute Address

• MONI と SARIS の実装結果

プロセッサ

サイクル スライス数

FPGA 使用率 (%) 最高動作周波数 (MHz)

MONIシングル 578 30 21.4

4 段マルチ

783 40 51.6

SARISシングル 369 19 21.2

4段マルチ

443 23 66.3

Page 13: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

ハード / ソフト協調学習システムの評価

• プロセッサ設計支援ツール - 命令セット定義ツール・命令セットアセンブラ  ・ 検証プログラムを機械語に変換する時間が短縮

  ・ 全体の検証、デバッグ時間の短縮

 - プロセッサデバッガ・モニタ  ・ 実機検証でのデバッグの容易化  ・  1 命令実行が可能   ・ ブレイクポイント実行

13

エラー箇所特定

Page 14: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

14

設計者 A B

MONI アセンブリプログラミング 13 12

MONI シミュレータ上のデバッグ 12 6

ソフトウェア学習合計

25 18

・  MONI 設計者を A 、 SARIS 設計者を B・ アセンブリプログラミング技術の向上 A  → 階乗・三角形判定・二次方程式の根の判別・素数判定・除算・            直線の方程式・ 8×8 の行列計算・ BCD コード加算 /減算 B  →  N までの和・乗算・除算・階乗・素数判定・二次方程式の根の         判別・最大公約数・バブルソート・  MONI シミュレータによりプロセッサアーキテクチャの理解

( 学習時間 )

ソフトウェア学習の評価

Page 15: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

15

設計者 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 : デバッグコマンド数を拡張

( 学習時間 )

ハードウェア学習の評価

Page 16: 学生によるプロセッサ設計実験に基づいたハード / ソフト協調学習システムの評価

まとめ• ハード / ソフト協調学習システム  - プロセッサ設計支援ツール• 学生によるプロセッサ設計実験  - 独自の命令セットを定義• ハード / ソフト協調学習システムの評価  - 学生のプロセッサ設計実験の比較と検証

16

今後の課題

• 命令セットシミュレータの実装と評価• ハード / ソフト協調学習システムの評価