1 / 19

マイクロプロセッサ

マイクロプロセッサ. 第 2 回 演習. コンピュータにおける算術論理演算 コンピュータの性能評価と理解. 関根 優年 田向 権. 教科書および参考資料. パターソン&ヘネシー   コンピュータの構成と設計 (上)   ハードウェアとソフトウェアのインタフェイス    第 2 版 第 4 章 「コンピュータにおける算術論理演算」   第 3 版 第 3 章 「コンピュータにおける算術論理演算」 第 2 版 第 2 章 「性能の役割」   第 3 版 第 4 章 「性能の評価と理解」 “ SPIM” A MIPS32 Simulator

Download Presentation

マイクロプロセッサ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. マイクロプロセッサ 第2回 演習 コンピュータにおける算術論理演算 コンピュータの性能評価と理解 関根 優年 田向 権

  2. 教科書および参考資料 • パターソン&ヘネシー   コンピュータの構成と設計 (上)   ハードウェアとソフトウェアのインタフェイス    第2版 第4章 「コンピュータにおける算術論理演算」   第3版 第3章 「コンピュータにおける算術論理演算」 第2版 第2章 「性能の役割」   第3版 第4章 「性能の評価と理解」 • “SPIM” A MIPS32 Simulator 関根研究室の授業用ページから移動  「農工大 関根研究室」で検索  トップページからマイクロプロセッサのページへ.

  3. 重要事項の復習 第4回~第6回授業資料より抜粋

  4. 2の補数表現 2の補数表現 :各ビット反転して、さらに+1を加える 0はひとつだけ,加算は、符号なし整数と同様に可能 例) 1word長(数値を表すためのビット数)が32bit 例) 210及び-210の正負反転 (8ビット符号付き整数) -231 ~231 ―1 (2,147,483,647) まで表現可能 (232通り) 0000 0000 0000 0000 0000 0000 0000 0000 = 0 0000 0000 0000 0000 0000 0000 0000 0001 = 1 0000 0000 0000 0000 0000 0000 0000 0010 = 2 …. 0111 1111 1111 1111 1111 1111 1111 1101 = 2,147,483,645 0111 1111 1111 1111 1111 1111 1111 1110 = 2,147,483,646 0111 1111 1111 1111 1111 1111 1111 1111 = 2,147,483,647 1000 0000 0000 0000 0000 0000 0000 0000 = -2,147,483,648 1000 0000 0000 0000 0000 0000 0000 0001 = -2,147,483,647 1000 0000 0000 0000 0000 0000 0000 0010 = -2,147,483,646 …. 1111 1111 1111 1111 1111 1111 1111 1101 = -3 1111 1111 1111 1111 1111 1111 1111 1110 = -2 1111 1111 1111 1111 1111 1111 1111 1111 = -1 0000 0010 (210 ) ⇒1111 1101 + 1 = 1111 1110 (-210 ) 1111 1110 (-210 ) ⇒0000 0001 + 1 = 0000 0010 (210 ) 10進数 2進数

  5. 加算 0000 0111 = 710 + 0000 0110 = 610 = 0000 1101 = 1310 (0) (0) (1) (1) (0)(桁上げ) ・・・0 0 0 1 1 1 ・・・0 0 0 1 1 0 ・・・(0)0 (0)0 (0)1 (1)1 (1)0 (0)1 0+0+0 =00 0+0+0 =00 1+0+0 =01 1+1+1 =11 0+1+1 =10 1+0=01 各ビットの加算と桁上げの様子 2進数の加算 例) 610に710を2進数で加える. 10進の加算と同じように桁上げをする. 数値の各ビットを下位ビットから加え、桁上がりを隣の上位ビットに加える

  6. (1) (1) (1) (1) (0)(桁上げ) ・・・0 0 0 1 1 1 ・・・1 1 1 0 1 0 ・・・(0)0 (0)0 (0)0 (1)0 (1)0 (0)1 例) 710にから610を2進数で引く 710 - 610= 710 + (-610) 0000 0111 = 710 1+0+1 =10 1+0+1 =10 1+0+1 =10 1+1+0 =10 0+1+1 =10 1+0=01 + 1111 1010 = -610 各ビットの加算と桁上げの様子 = 0000 0001 = 110 減算 2進数の減算 引く数を2の補数表現にしてから加算 2の補数表現を用いることで、 非負数と負数の加算が特別な 演算をすることなく、実現できる 他の符号付き整数表現では、特別な演算が必要 1の桁上がりがずーと続き、 最上位ビットまで変わる. 最上位ビットは符号ビットの ように見える!

  7. 2の補数表現時の加減算のオーバーフロー判定2の補数表現時の加減算のオーバーフロー判定 操作    オペランドA  オペランドB    結果

  8. 乗算アルゴリズムとハードウェアの最終バージョン 開始 積の 最下位ビット=0 積の 最下位ビット=1 1.積LSB の値を判定 ハードウェアの最終バージョン 被乗数  1a. 被乗数を積レジスタの左 半分に加え、結果を積レジスタ を左半分に収める 32ビット 32ビット ALU 2. 積レジスタを1ビット右にシフト 右シフト 積 制御 書き込み 繰返回数 の判定 64ビット 32回未満 乗数レジスタ のLSBの値の判定 初期状態では 32回 積レジスタ 左半分 0 右半分 乗数 終了

  9. 除算アルゴリズムとハードウェアの最終バージョン除算アルゴリズムとハードウェアの最終バージョン 開始 除数 1. 剰余レジスタを1ビット左にシフト 32ビット 2. 剰余レジスタの左半分から除数レジスタを 引き、結果を剰余レジスタの左半分に収める 32ビット ALU 左シフト 剰余を判定 剰余<0 剰余≧0 剰余 制御 右シフト 書き込み 64ビット 3b. 剰余レジスタの左半分 +除数レジスタ⇒ 剰余レジスタの左半分 剰余レジスタを左シフトし、 右側の新しいビットを0 3a. 剰余レジスタを 左シフトし、右側の 新しいビットを1 初期状態では 剰余レジスタ  右半分 32ビットの被除数  左半分 0 繰返回数 の判定 33回未満 33回 終了 :剰余レジスタの左半分を1ビット右にシフト

  10. r進数表現について r進数表現 各桁のとるR種類の値は、     次の集合LRの要素 LR = {0,1,…,R-1} 正の整数Xに対するn桁のR進数 (xn-1 xn-2 … x1 x0 )R xi ∈ LR は次の関係が成立する。 X = xn-1Rn-1+xn-2Rn-2+…+ x1R+ x0 2進数の場合 正の整数Xに対するn桁の2進数 (xn-1 xn-2 … x1 x0 )2 xi ∈ L2 ( = {0,1}) X = xn-12n-1+xn-22n-2+…+ x12+ x0 各桁をビット(bit:binary digit) 最上位桁をMSB(Most Significant Bit) 最下位桁をLSB(Least Significant Bit)と呼ぶ 16進数はメモリ番地などのデータを表す ために、2進数の代わりによく用いられる

  11. ディジタルコンピュータでの文字表現 コンピュータ上で文字を表現するためには、  文字をある2進数表現として定義する必要がある アルファベット文字 ー ASCIIコード(7bit)  (American Standard Code for Information Interchange) 例えば a : 1100001 (2進数) 一般にデータ表記としては 16進法を用いる 63h 0x63 または 16進数を表す 日本語(漢字とか)は、 16bitで表現される ← 方式には様々    例) Shift-JIS, EUC

  12. 性能・相対性能 ここでは、実行時間に着目してマシン性能を考える (マシンXの)性能の定義 性能X=1/実行時間X 単位時間あたりの実行回数 マシンの性能比 マシンXはマシンYよりもn倍早い n = 性能X/性能Y = 実行時間Y/実行時間X

  13. クロック マイクロプロセッサはクロックに基づき動作 電圧 クロック周期 時間 クロック周期=クロックサイクルタイム クロック周波数=1/クロック周期 例) Pentium IV 3GHz CPU内部のクロック周波数が3GHz       クロック周期は0.33ns

  14. 測定基準同士の関係 コンピュータの最終的な性能はCPU実行時間 クロック サイクルタイム そのプログラムの CPUクロック・サイクル数 あるプログラムの CPU実行時間 X = クロック 周波数 そのプログラムの CPUクロック・サイクル数 ÷ = コンピュータの性能を挙げるためには、 ① クロック周波数を上げるか、   ② プログラムが必要とするサイクル数を減らすか を行えばよい。

  15. CPI(1命令あたりの平均クロックサイクル数) 実際にはプログラムは複数の命令からなる プログラムにおける命令数が増えれば、一般に プログラムに必要なサイクル数は増加する。 命令数とサイクル数の関係を表す指標としてCPIを導入 CPI(1命令あたりの平均クロックサイクル数) プログラムの CPUクロック・サイクル数 1命令あたりの 平均クロックサイクル数 プログラム中の実行命令数 = X CPI 一般に命令によって、必要とするサイクル数は異なる (命令Aは1サイクル、命令Bは2サイクルといった感じ)

  16. CPIとCPU時間の関係式(1) クロック サイクルタイム あるプログラムの CPU実行時間 プログラム中の実行命令数 CPI X X = クロック 周波数 = プログラム中の実行命令数 CPI ÷ X

  17. CPU性能を改善する方法 命令セット・アーキテクチャが同じとき 1.クロック周波数を上げる 2.CPIを下げるようにプロセッサの構成を改善する 3.命令数を減らすか平均CPIの低い命令を生成するように コンパイラを改善する

  18. 計算時間だけの評価では不十分 • データをプロセッサに送るまでの時間 • ノイマン・ボトルネックという • 処理結果を取り出す・記憶する時間 • メモリとハード・ディスクでは異なる • プログラムの構造,データ構造により処理時間も異なる. • 並列的な問題を逐次的に処理する. 理想的な機械:専用演算器を沢山持ち, データのあるところで処理をする

  19. Amdahlの法則 マシンのある面を改善しても、その改善度に等しい 性能向上は得られるとは限らない。 例) あるマシンでプログラムを動作する際に、実行時間    のうち80%が乗算でしめられている。乗算を高速化    することにより、実行時間を現在の5倍にできるか? 答) できない 乗算がいくら早くなっても、残りの20%の実行時間 は必要とされるため ある大きな問題を解決したとき、その問題に埋もれていた 次の問題が見えてくるのがAmdahlの法則

More Related