基本情報技術概論 (第10回) 計算機 システム 埼玉大学 理工学研究科 堀山 貴史 1 計算機 アーキテクチャ 2 コンピュータの構成 (第1回の復習) CPU 制御装置 入力装置 演算装置 主記憶装置 出力装置 補助記憶装置 主記憶 (main memory, メモリ) に、 プログラム と データを置く 3 プログラムの実行 主記憶 主記憶の上のプログラム ADD GR0, 1 SUB GR0, 10 JNZ 01 ・ ・ ・ 命令を前から順に読んで実行する 演算命令 (加減算やシフトなど) 条件分岐やジャンプもある (参考) フローチャート i+1→i i < 10 4 プログラムの実行 主記憶の上のプログラム ADD GR0, 1 SUB GR0, 10 命令を前から順に読んで実行する 演算命令 (加減算やシフトなど) 条件分岐やジャンプもある JNZ 01 ・ ・ ・ プログラム内蔵方式 主記憶 主記憶装置にプログラムを置いて 実行する方式 ___________ 5 CPU (プロセッサ) データやり取り用に 複数の回路が ぶら下がった経路 制御装置 + 演算装置 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 参考 : 一度に処理できるビット数は、時代と共に大きく 8 bit CPU → 16 bit → 32 bit → 64 bit 6 演算装置 汎用レジスタ … プログラム実行に必要な値を一時的に記憶 ALU (Arithmetic and Logic Unit) 算術演算(加減乗除)や論理演算、シフト演算を行う 時代と共に、演算器の種類が多くなっている 加減算器のみ → 乗除算器つき → マルチメディア演算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 演算装置 主記憶 装置 7 制御装置 プログラムカウンタ 主記憶上のプログラムの現在の位置(番地)を 記憶するレジスタ (命令アドレスレジスタともいう) 命令レジスタ 主記憶から読んだ、現在の命令を記憶するレジスタ バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 演算装置 主記憶 装置 8 プログラムの実行 命令ごとに、以下を繰り返す (1) (2) (3) (4) (5) IF ID EX MA WB IF ID EX MA WB 命令を主記憶から命令レジスタに読み込む 命令レジスタの命令を、命令デコーダで解読 演算を行う 主記憶にアクセスする 実行結果をレジスタに格納する ※1 I F - Instruction Fetch / I D - Instruction Decode / EX - Execution / MA - Memory Access / WB - Write Back ※2 設計によって、各ステージの詳細には差異がある 9 プログラムの実行 (1) I F : 命令を主記憶から命令レジスタに読み込む プログラムの 番地を指示 指示された番地の 命令が返ってくる バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 10 プログラムの実行 (2) I D : 命令レジスタの命令を、命令デコーダで解読 例) LD GR0, 200 主記憶 200番地の内容を GR0 にロード バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 11 プログラムの実行 (3) EX : 演算を行う 例) 演算命令、オペランドのアドレス計算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 12 プログラムの実行 (4) MA : 主記憶にアクセスする バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 13 プログラムの実行 (5) WB : 実行結果をレジスタに格納する バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 14 高速化技術: プログラムの実行 (1) (2) (3) (4) (5) IF ID EX MA WB (再び) 命令をメモリから命令レジスタに読み込む 命令レジスタの命令を、命令デコーダで解読 演算を行う メモリにアクセスする 実行結果をレジスタに格納する I F I D EX MA WB I F I D EX MA WB ・・・ 1つ目の命令 2つ目の命令 15 高速化技術 ___________ (パイプライン処理) I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB ・ ・ ・ 1つ目の命令 2つ目の命令 3つ目の命令 4つ目の命令 ・ ・ ・ ・ 命令の依存関係を解決する必要がある ・ 条件分岐が成立すると、次の命令からやり直し 16 高速化技術 (スーパースカラー) 演算器を複数持つなどして、 複数のパイプライン処理を同時に実行する I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB I F I D EX MA WB 命令の依存関係の 解決が複雑 → ハードウェアが複雑 I F I D EX MA WB I F I D EX MA WB 17 高速化技術 (VLIW) Very Large Instruction Word 複数命令を1つの固まりとみなし、同時に実行 EX IF ID EX EX MA WB EX EX IF ID EX EX MA WB EX … ・ 命令の依存関係の解決は、コンパイラに任せる ・ ハードウェアは簡単 18 練習問題?: 性能評価 彼が携帯電話を使うと、 1秒間に 6 回キーを押す ことができる。また、平仮名の入力には、1文字に 平均 3 回キーを押す必要がある。 ・ 1秒間に何文字の平仮名が打てるか? ・ 平仮名 1文字あたり、何秒かかるか? (予測入力等は考慮しない。) 19 性能評価 クロック クロックに同期して、レジスタの値が変わる 例) IF ID EX MA WB クロックに同期して、ステージを進める クロック周波数 (単位は Hz) 1秒間のクロック数 例: CPU のクロック周波数が 1.6 GHz 20 性能評価 CPI (Clocks Per Instruction) 1命令ごとの(実行に必要な)クロック数 例) IF ID EX MA WB この例なら 5クロック 命令ごとにクロック数可変なら、平均をとる M I PS (Million Instruction Per Second) 1秒ごとの命令(実行)数 (単位 M … 100万) FLOPS (Floating point number Operations Per Second) 1秒ごとの浮動小数点演算実行数 21 練習問題: 性能評価 1 GHz で動作する CPU がある。この CPU は、 機械語の 1 命令を平均 0.8 クロックで実行できる。 この CPU は何 M I PS か。 (H19年度 秋 一部改変) 22 練習問題?: クロック周波数 CPI 性能評価 6 MHz 3 MIPS 2 1命令の実行時間 0.5 μs (6 x 106 クロック / 秒) (クロック / 命令) (2 x 106 命令 / 秒) (0.5 x 10-6 秒 / 命令) slide 19 1秒間に 6 回キーを押す。 1文字に平均 3 回キーを押す必要がある。 ・ 1秒間に何文字? ・ 1文字あたり、何秒かかる? 23 主記憶装置 24 記憶の階層 高速・小容量 と 低速・大容量 の記憶装置 うまく組み合わせれば、高速・大容量の記憶装置 のように扱える アクセス 容量 速度 小 速い レジスタ 主記憶 (メモリ) 大 遅い 補助記憶 (HDD、Disc、テープ) 25 記憶の階層 ___________ (キャッシュ, Cache) 動作速度の差を埋めるための仕組み 近頃のCPU では、L1, L2 キャッシュ レジスタ キャッシュ 容量 速度 小 速い 大 遅い 主記憶 (メモリ) ディスクキャッシュ 補助記憶 26 練習問題: 記憶の階層 平均年齢は? 20 才 80 % 50 才 実効アクセス速度は? … アクセス時間の期待値 容量 速度 アクセス時間 小 速い キャッシュ 20 ns 大 遅い 主記憶 (メモリ) 50 ns キャッシュ ヒット率 80 % 27 練習問題: 記憶の階層 実効アクセス時間 = キャッシュ アクセス時間 x キャッシュ ヒット率 + 主記憶 アクセス時間 x ( 1 – キャッシュ ヒット率 ) 問題) アクセス時間が主記憶 60 ns、キャッシュ 10 ns の システムがある。システムとしての実効アクセス速度が 15 ns の時、キャッシュのヒット率は いくらか。 (H19年度 春) 28 参考: メモリ アクセス の高速化 メモリ インタリーブ 主記憶へのアクセスを高速化する手法 主記憶を複数の区画(バンク)に分割し、 並列にアクセスする 主記憶 番地 1 2 6 10 5 9 3 7 11 4 8 12 … … … … 29 30 プログラムの実行 (1) I F : 命令を主記憶から命令レジスタに読み込む プログラムの 番地を指示 指示された番地の 命令が返ってくる バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 31 プログラムの実行 (2) I D : 命令レジスタの命令を、命令デコーダで解読 例) LD GR0, 200 主記憶 200番地の内容を GR0 にロード バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 32 プログラムの実行 (3) EX : 演算を行う 例) 演算命令、オペランドのアドレス計算 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 33 プログラムの実行 (4) MA : 主記憶にアクセスする データの 番地を指示 バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 34 プログラムの実行 (5) WB : 実行結果をレジスタに格納する バ ス プログラム カウンタ 命令 レジスタ 制御回路 命令 デコーダ 制御装置 汎用 レジスタ ALU 主記憶 装置 演算装置 35 36 練習問題: 記憶の階層 実効アクセス速度 15 ns アクセス時間 容量 速度 小 速い キャッシュ 10 ns 大 遅い 主記憶 (メモリ) 60 ns キャッシュ ヒット率 ? 37 38 39 この教材のご利用について この文面は、TOKYO TECH OCW の利用 条件を参考にしました この教材は、以下に示す利用条件の下で、著作権者にわざわざ許諾を 求めることなく、無償で自由にご利用いただけます。講義、自主学習は もちろん、翻訳、改変、再配布等を含めて自由にご利用ください。 非商業利用に限定 この教材は、翻訳や改変等を加えたものも含めて、著作権者の許 諾を受けずに商業目的で利用することは、許可されていません。 著作権の帰属 この教材および教材中の図の著作権は、次ページ以降に示す著 作者に帰属します。この教材、または翻訳や改変等を加えたもの を公開される場合には、「本教材 (or 本資料) は http://www.al.ics. saitama-u.ac.jp/horiyama/OCW/ の教材です (or 教材を改変したものです」 との旨の著作権表示を明確に実施 してください。なお、この教材に改変等を加えたものの著作権は、 次ページ以降に示す著作者および改変等を加えた方に帰属しま す。 同一条件での頒布・再頒布 この教材、または翻訳や改変等を加えたものを頒布・再頒布する 場合には、頒布・再頒布の形態を問わず、このページの利用条件40 この教材のご利用について 配布場所 http://www.al.ics.saitama-u.ac.jp/horiyama/OCW/ この powerpoint ファイルの著作者 堀山 貴史 2007-2010 [email protected] 改変等を加えられた場合は、お名前等を追加してください 図の著作者 p. 3, 25, 29 ハードディスク : 堀山 貴史 CPU, メモリ, キーボード, USB : http://webweb.s92.xrea.com/ パソコン, ディスプレイ, プリンタ, マウス, FD, CD : Microsoft Office Online / クリップアート p. 19, 27 クリップアート : Microsoft Office Online / クリップアート その他 41 堀山 貴史
© Copyright 2024 ExpyDoc