2010 年 後 学 期 レポート 問 題 計 算 機 アーキテクチャ 第 二 (O) 4. シングルサイクルプロセッサの 実 装 とパイプライン 処 理 大 学 院 情 報 理 工 学 研 究 科 計 算 工 学 専 攻 吉 瀬 謙 二 kise _at_ cs.titech.ac.jp S321 講 義 室 月 曜 日 5,6 時 限 13:20-14:50 1 1. 1から100までの 加 算 (test01)をクロスコンパイラにてmips 命 令 セットにコ ンパイルし,コンパイルオプションによってどのように 変 化 するかをまとめよ. 2. 加 算 のプログラム(test01)を simcore/mips で 実 行 し, 正 しく 実 行 さ れていることを 説 明 せよ. 3. 実 行 された 命 令 の 頻 度 を 測 定 するように,simcore/mips のソース コードを 変 更 せよ.これを 用 いて, 加 算 のプログラム(test01)の 実 行 命 令 頻 度 を 求 め,グラフにせよ.(ロード ストア 命 令, 分 岐 ジャ ンプ 命 令,それ 以 外,の3つに 分 類 して 実 行 頻 度 をグラフにする.) 4. 同 様 に,N-queen (test20) の 実 行 頻 度 をグラフにせよ. 5. この 課 題 の 感 想 をまとめること. 6. レポートはA4 用 紙 3 枚 以 内 にまとめること.( 必 ずPDFとすること) (2 段 組,コードは 小 さい 文 字 でもかまわない.) 2 レポート 提 出 方 法 11 月 9 日 ( 午 後 7 時 )までに 電 子 メールで 提 出 人 よりも 先 に 提 出 している( 先 願 性 )と 高 得 点 report_at_arch.cs.titech.ac.jp 電 子 メールのタイトル Arch Report [ 学 籍 番 号 ] 例 : Arch Report [33_77777] 電 子 メールの 内 容 氏 名, 学 籍 番 号 回 答 PDFファイルを 添 付 ( 必 ずPDFとすること) PDFファイルにも 氏 名, 学 籍 番 号 を 記 入 すること. A4 用 紙 で3 枚 以 内 にまとめること. 講 義 用 の 計 算 機 の 使 い 方 ユーザ 名 archo で 131.112.16.56 にログイン linuxなど ssh archo@131.112.16.56 講 義 時 に 伝 えたパスワードでログイン 学 籍 番 号 でディレクトリを 作 成 して,そこで 作 業 する. mkdir myname cd myname 3 4 op rs rt 16 bit immediate I format lw $t0, 8($s2) [ lw $8, 8($18) ] one clock period rs rt PC = 0x24 $18 = 0x400 mem[0x408] = 3 rd 5 6
シングルサイクル 版 プロセッサの 実 装 Target hardware : MieruPC-2010 XILINX Spartan-3E XC3S250E (25 万 ゲート 相 当 FPGA) 512KB SRAM 32bit RISC Processor No hardware divider software emulation No floating-point unit FPGA Card RC2 (ただし,50 万 ゲートのFPGAに 変 更 ) 7 8 MIPSCORE & Instruction Cache MIPSCORE & Data Cache simple instruction cache cache line : 4 byte (1 word) 4KB (1024 entry) direct mapped simple data cache cache line : 4 byte (1 word) 4KB (1024 entry) direct mapped 9 10 MIPSCORE & I-Cache & Data Cache one clock period 11 12
0 90 180 270 0 90 180 270 load word ICACHE n I_IN decode ExA rrs rrt ExTPC D_IN MaLDD ExA/ExWE load word ICACHE n I_IN decode ExA rrs rrt ExTPC D_IN MaLDD ExA/ExWE 90 90 90 90 90 18MHz, 55.5 ns 1/4 = 13.889 ns, 90 positive edge, negative edge 13 14 Video 15 Video 16 2010 年 後 学 期 load word 0 90 180 270 ICACHE n I_IN 90 decode ExA rrs rrt ExTPC D_IN 90 MaLDD ExA/ExWE 計 算 機 アーキテクチャ 第 二 (O) 90 パイプライン 処 理, 90 positive edge, negative edge 18MHz, 13.3 VAX MIPS 大 学 院 情 報 理 工 学 研 究 科 計 算 工 学 専 攻 吉 瀬 謙 二 kise _at_ cs.titech.ac.jp S321 講 義 室 月 曜 日 5,6 時 限 13:20-14:50 17 18
パイプライン 処 理 (pipelining) パイプライン 処 理 (pipelining) ステージ 19 20 MIPSの 基 本 的 な5つのステップ(ステージ) パイプライン 処 理 (pipelining) IF (Instruction fetch)ステージ メモリから 命 令 をフェッチする. ID (Instruction decode and register file read) ステージ 命 令 をデコードしながら,レジスタを 読 み 出 す. EX (Execution or address calculation) ステージ 命 令 操 作 の 実 行 またはアドレスの 生 成 を 行 う. MEM (Data memory access) ステージ データ メモリ 中 のオペランドにアクセスする. WB (Write back) ステージ 結 果 をレジスタに 書 き 込 む. 21 22 パイプライン 処 理 (pipelining) パイプラインによる 速 度 向 上 パイプラインステージの 数 ( 段 数 ): n 実 行 する 命 令 の 数 : s パイプライン 化 されたプロセッサのクロックを 単 位 時 間 と する. 全 命 令 が 終 了 するまでの 理 想 的 なサイクル 数 n + s 1 パイプラインを 利 用 しないシングルサイクルのプロセッサ n * s 23 24
パイプライン 処 理 のポイント 処 理 の 分 割 ある 処 理 ( 命 令 の 実 行 )をできるだけ 均 等 なステージに 分 割 例 えば, 均 等 な10 段 のステージに 分 割 処 理 のためのハードウェア 資 源 の 投 入 それぞれのステージを 処 理 するためのハードウェアを 準 備 例 えば,10 段 のステージに 分 割 した 場 合 には,それぞれのス テージの 処 理 を 担 当 する10 個 のハードウェアユニットを 準 備 処 理 の 進 行 それぞれのハードウェアがある 命 令 のステージを 処 理 する. それぞれのハードウェアが 独 立 に 作 業 できるように, 入 力 と 出 力 にレジスタを 挿 入. 25 26 プロセッサのデータパス(パイプライン 処 理 ) プロセッサのデータパス(パイプライン 処 理 ) Clock 1: Clock 2: 0x20 add (1) 0x20: add $8, $17, $18 (2) 0x24: sub $9, $20, $21 (3) 0x28: lw $10, 24($22) (1) 0x20: add $8, $17, $18 (2) 0x24: sub $9, $20, $21 (3) 0x28: lw $10, 24($22) 27 28 プロセッサのデータパス(パイプライン 処 理 ) Exercise Clock 3: Clock 3 における 各 パイプラインステージの 様 子 を 示 せ. 氏 名, 学 籍 番 号, 学 籍 番 号 マーク 欄 ( 右 詰 で) (1) 0x20: add $8, $17, $18 (2) 0x24: sub $9, $20, $21 (3) 0x28: lw $10, 24($22) 29 30
アナウンス 講 義 スライド, 講 義 スケジュール www.arch.cs.titech.ac.jp 講 義 用 の 計 算 機 131.112.16.56 ( 情 報 工 学 科 の 演 習 室 からは 入 れません) ssh archo@131.112.16.56 31