CPU 実験について 2006 年 10 月 13 日金曜日 平野貴仁. CPU 実験の成績 プロセッサ、アセンブラ、シミュレータ を担当 プロセッサ、アセンブラ、シミュレータ を担当 2005 年度 CPU 実験優勝 2005 年度 CPU 実験優勝 – 間違って P3 形式で出場 ( 規約上問題はない.

Slides:



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

G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
CPU設計と パイプライン.
WPF で作る!! 仮想化支援技術確認ツール CLR/H ひよひよ Crystal Dew World
2006/10/26 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
計算機システムⅡ 命令レベル並列処理とアウトオブオーダ処理
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
基本情報技術概論(第10回) 埼玉大学 理工学研究科 堀山 貴史
Chapter11-4(前半) 加藤健.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ダイレクトマップキャッシュの構成 例: メモリアドレス=32ビット キャッシュ容量C=256Kbyte C=B×A×S ブロックサイズ(ラインサイズ)B=32byte セット数(ブロック数、ライン数)S=8K アソシアティビティA=1 (ダイレクトマップは1) メモリアドレス=32ビット タグ 14ビット.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
計算機アーキテクチャ特論Chapter.6.6~6.9
CPU実験 第1回中間発表 4班 瀬沼、高橋、津田、富山、張本.
テープ(メモリ)と状態で何をするか決める
キャッシュ 頻繁にアクセスされるデータを入れておく小規模高速なメモリ 当たる(ヒット)、はずれる(ミスヒット) マッピング(割り付け)
コンピュータの主役はCPU(Central Processing Unit)
2012年度 計算機システム演習 第4回 白幡 晃一.
計算機システムⅡ 命令セットアーキテクチャ
2007/1/18 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
プロセッサ設計教育のための 命令セット・スーパースカラシミュレータの試作と評価
プログラムはなぜ動くのか.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
画像処理ボード上での 高速テンプレートマッチングの 実装と検証
Ibaraki Univ. Dept of Electrical & Electronic Eng.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
小栗研究室の紹介.
第7回 2006/6/12.
計算機科学実験及演習 3A SIMPLEアーキテクチャ のプロセッサの実装
アドバンスト コンピュータ アーキテクチャ 五島.
第6回 よく使われる組合せ回路 瀬戸 重要な組合せ回路を理解し、設計できるようにする 7セグディスプレイ用デコーダ 加算回路・減算回路
Advanced Computer Architecture
・ディジタル回路とクロック ・プロセッサアーキテクチャ ・例外処理 ・パイプライン ・ハザード
高速剰余算アルゴリズムとそのハードウェア実装についての研究
プロジェクト実習 LSIの設計と実現 パイプライン実行とハザード.
アドバンスト コンピュータ アーキテクチャ RISC と 命令パイプライン
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
Advanced Computer Architecture
Advanced Computer Architecture
Advanced Computer Architecture
ディジタル回路の設計と CADによるシステム設計
SiTCP-VME変換モジュールの開発 KEK 物構研:中性子 佐藤節夫.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
7. 機能的な組み合わせ回路 五島 正裕.
コンピュータアーキテクチャ 第 11 回.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 4 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
プロセッサ設計支援ツールを用いた 独自プロセッサの設計
コンピュータアーキテクチャ 第 5 回.
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
コンピュータアーキテクチャ 第 11 回.
ILC衝突点ビームモニターのための 読み出し回路の開発
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンピュータ工学基礎 マルチサイクル化とパイプライン化 テキスト9章 115~124
情報システム基盤学基礎1 コンピュータアーキテクチャ編
並列処理プロセッサへの 実数演算機構の開発
Ibaraki Univ. Dept of Electrical & Electronic Eng.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
情報システム基盤学基礎1 コンピュータアーキテクチャ編
Presentation transcript:

CPU 実験について 2006 年 10 月 13 日金曜日 平野貴仁

CPU 実験の成績 プロセッサ、アセンブラ、シミュレータ を担当 プロセッサ、アセンブラ、シミュレータ を担当 2005 年度 CPU 実験優勝 2005 年度 CPU 実験優勝 – 間違って P3 形式で出場 ( 規約上問題はない ) –P6 形式だと 100MHz 秒 CPU 実験延長戦 CPU 実験延長戦 –id:namasute0 氏によりスケジューラが改良さ れ 100MHz 秒を達成

本日の内容 設計のやり方 設計のやり方 –Processor [2x] のアー キテクチャ 作業のやり方 作業のやり方

攻めた点 昨年 Super Scalar や VLIW が挑戦されたが、 ひょっとして費用対効果が見合わないの では 昨年 Super Scalar や VLIW が挑戦されたが、 ひょっとして費用対効果が見合わないの では まだ実現していない 100MHz の可能性に魅 力を感じた まだ実現していない 100MHz の可能性に魅 力を感じた 要するに紅魔館中島氏の煽りに乗っかっ た 要するに紅魔館中島氏の煽りに乗っかっ た

日和った点 命令種はたったの 30 種 命令種はたったの 30 種 – 即値命令は、 ADDI のみ –FABS, FNEG は、なし ( AND, XNOR ) –RS232C 命令は、ノンブロッキングのみ レジスタ本数はたったの 64 本 レジスタ本数はたったの 64 本 スライス使用率はたったの 26% スライス使用率はたったの 26%

制御回路 空間的な構成 命令キャッシュ レジスタ 32bit x 64 浮動小数点数 加減乗算 整数加減算 論理演算 浮動小数点数 逆数平方根 SRAM Load/Store 分岐 判定 RS Put RS Get 命令供給パイプライン 各モジュールに 1bit から数 bit の制 御シグナルを適切なタイミングで 発行する、いわば心臓部

時間的な構成 IFRDEX1 EX2 EX3EX4WB 分岐判定 整数演算 RS232C 浮動小数点数加減乗算 浮動小数点数逆数平方根 SRAM (hit) SRAM (miss) 命令 デコード まだ完了していない命令の書き込みレ ジスタを読み込んでしまった場合は、 ENABLE 信号を反転させ、再試行する データハザード

データハザード EX4WBIFEX3 EX 2 EX 1 RD EX4WBIFEX3 EX 2 EX 1 RD EX4WBIFEX3 EX 2 EX 1 RDIFRD IF EX3 で完了する命令 X EX4WBEX3 EX 2 EX 1 EX4WBEX3 EX 2 EX 1 RD EX4WBIFEX3 EX 2 EX 1 RD 命令 X の結果を使用したい RD IF

制御ハザード EX4WBIFEX3 EX 2 EX 1 RD IFRD IF EX 1 EX4WBEX3 EX 2 EX4WBEX3 EX 2 EX 1 RD 分岐命令 X IFRDEX4WBEX3 EX 2 EX 1 IFEX4WBEX3 EX 2 EX 1 RD EX4WBIFEX3 EX 2 EX 1 RD 次の命令 VALID 信号を反転させ 以降の処理を無視させる 制御ハザード キャッシュにない IF EX4WBIFEX3 EX 2 EX 1 RD

命令キャッシュ 4K ワード (16K バイト ) 4K ワード (16K バイト ) アドレス 20bit のうち下位 11bit をキーと してタグ 9bit とエントリ 32bit を引く アドレス 20bit のうち下位 11bit をキーと してタグ 9bit とエントリ 32bit を引く アドレスの上位 9bit とタグが一致すれば キャッシュヒット、一致しなければ キャッシュミスと判定 アドレスの上位 9bit とタグが一致すれば キャッシュヒット、一致しなければ キャッシュミスと判定 データキャッシュもほぼ同じ データキャッシュもほぼ同じ

命令供給パイプラインと構造ハ ザード UPDATEWAIT1WAIT2READ アドレス 計算 WRITE Load/Store 命令が優先のため、 Load/Store 命令と衝突してい れば同じアドレスを再試行す る 構造ハザード

本日の内容 設計のやり方 設計のやり方 –100MHz プロセッサ [2x] のアーキテクチャ 作業のやり方 作業のやり方

とりあえずやるべき事柄 CPU の部品を知る CPU の部品を知る – 汎用的な部品 ( ワイヤ、フリップフロップ、 ラッチ ) –FPGA の部品 (LUT, 分散 RAM, ブロック RAM, 18x18 乗算器 ) –CPU 実験基盤の部品 (USB, SRAM, RS232C) デバッグの手法を知る デバッグの手法を知る

汎用的な部品を知る 意外と完全に理解していなかったりする 意外と完全に理解していなかったりする A <= B + C when X = ’0’ else B – C when X = ’1’; B – C when X = ’1’; まだ理解していなければ早急に理解して おく まだ理解していなければ早急に理解して おく 慣れないうちは生成される回路図を確認 するといいかも 慣れないうちは生成される回路図を確認 するといいかも

FPGA の部品を知る 膨大なマニュアルだがとにかく目を通す 膨大なマニュアルだがとにかく目を通す –Libraries Guide –Constraints Guide –XST User Guide – …

CPU 実験基盤の部品を知る USB はさっさと動かそう USB はさっさと動かそう SRAM は甘く見るな SRAM は甘く見るな – テストはいろいろな方法で試す – それでもハマる RS-232C は罠を避けよ RS-232C は罠を避けよ – かつて RS-232C のせいで動かなかった班あり

デバッグの手法を知る 自班のシミュレータは bit accurate にして おく 自班のシミュレータは bit accurate にして おく –FPU 係はシミュレータ係を兼ねるといいか –FPU の誤差評価にも使える Modelsim で fib 5 や 4x4 のレイトレを走らせ る Modelsim で fib 5 や 4x4 のレイトレを走らせ る STORE 命令の番地と内容のログを、 Modelsim と自班のシミュレータとで取る STORE 命令の番地と内容のログを、 Modelsim と自班のシミュレータとで取る diff を調べるとどこにバグがあるか一目瞭 然 diff を調べるとどこにバグがあるか一目瞭 然

プロセッサ ( 初代 ) の開発履歴 10/6 LED 動作せず 10/6 LED 動作せず 10/21 USB 動作 10/21 USB 動作 11/6 SRAM 動作し、再帰による fib 38 動作 11/6 SRAM 動作し、再帰による fib 38 動作 –50MHz 秒 12/15 FPU 動作 12/15 FPU 動作 12/29 Modelsim 上完全動作 (USB 使用 ) 12/29 Modelsim 上完全動作 (USB 使用 ) 1/18 実機上完全動作 (USB 使用 ) 1/18 実機上完全動作 (USB 使用 ) –50MHz 秒

プロセッサ [2x] の開発履歴 1/24 着手 1/24 着手 2/22 RS232C 動作 2/22 RS232C 動作 3/10 夜 Modelsim 上完全動作 (RS232C 使用 ) 3/10 夜 Modelsim 上完全動作 (RS232C 使用 ) 3/11 夜 実機上完全動作 3/11 夜 実機上完全動作 –100MHz 40 秒 3/12 朝 データキャッシュ搭載 3/12 朝 データキャッシュ搭載 –100MHz 秒 3/12 夜 コンパイラ改良に伴う誤動作に対処 3/12 夜 コンパイラ改良に伴う誤動作に対処

最も心得るべき点 人任せにしない 人任せにしない – 進捗状況が上がっていないというのは、やっ ていないということと同義 身の丈にあわせる 身の丈にあわせる – 経験がなければまずプロトタイプを完成させ よ 端末室に来る 端末室に来る – 他班の Wiki は見られなくても、会話は聞こえ る

というわけで 楽しんでください 楽しんでください