PowerPoint プレゼンテーション

Similar documents
PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

コンピュータ工学Ⅰ

計算機アーキテクチャ

ソフトウェア基礎技術研修

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

情報科学概論

Microsoft PowerPoint - 7.Arithmetic.ppt

2ALU 以下はデータ幅 4ビットの ALU の例 加算, 減算,AND,OR の4つの演算を実行する 実際のプロセッサの ALU は, もっと多種類の演算が可能 リスト 7-2 ALU の VHDL 記述 M use IEEE.STD_LOGIC_1164.ALL; 00 : 加算 use IEE

一般電気工学第二

コンピュータの仕組み(1)ハードウェア

Microsoft Word - レポート回答集.docx

< コンピュータの基本的仕組み > コンピュータは, クロック信号と呼ばれる周期的な論理信号に同期し, 主記憶装置に記憶され ている命令を, 以下の手順で読み込み, 実行することにより動作している. 命令読み込み Instruction Fetch 命令解読 Decode 命令実行 Executio

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

ソフトウェア基礎技術研修

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

JavaプログラミングⅠ

主記憶の使われ方 システム領域 SP スタックポインタ システム用 スタック用 プログラム起動時に OS によって確 保される (SP が決められる ) プログラム用 メインルーチン プログラム領域 命令コードの列定数 変数用領域サブルーチン命令コードの列 先頭番地は リンク時に OS によって決め

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

スライド タイトルなし

計算機アーキテクチャ

ガイダンス 2

計算機工学 II 授業ノート 第 1 回 ( ) 担当 : 寺田

プログラミング実習I

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - ProcML-12-3.ppt

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

計算機ハードウエア

Microsoft PowerPoint LC1_14_論理回路シミュレータ.ppt

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

Microsoft PowerPoint - Chap3 [Compatibility Mode]

スライド 1

ex05_2012.pptx

<4D F736F F F696E74202D20837D E838D B835E82CC926190B682C694AD B93C782DD8EE682E890EA97705D>

Microsoft PowerPoint LCB_14_論理回路シミュレータ.ppt

PowerPoint プレゼンテーション

目次 1. はじめに 1 2. マルチALUプロセッサ MAP MAP の構成 MAP 命令セットアーキテクチャ 並列 連鎖判定のアルゴリズムについて 5 3. Booth 乗算のアルゴリズム 次 Booth アルゴリズム 次 Bo

ソフトウェア基礎技術研修

Microsoft PowerPoint - Chap4 [Compatibility Mode]

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

Microsoft PowerPoint ppt

Microsoft Word - 実験4_FPGA実験2_2015

UNIX 初級講習会 (第一日目)

PowerPoint プレゼンテーション

VelilogHDL 回路を「言語」で記述する

計算機ハードウエア

Transcription:

コンピュータアーキテクチャ 第 6 週演算アーキテクチャ ( 続き ) ノイマン型コンピュータ 命令とは 命令の使い方 2013 年 10 月 30 日 金岡晃

授業計画 第 1 週 (9/25) 第 2 週 (10/2) 第 3 週 (10/9) 第 4 週 (10/16) 第 5 週 (10/23) 第 6 週 (10/30) 第 7 週 (11/6) 授業概要 2 進数表現 論理回路の復習 2 進演算 ( 数の表現 ) 演算アーキテクチャ ( 演算アルゴリズムと回路 ) 休講 休講 ノイマン型コンピュータ 命令とは 命令の使い方 命令セットアーキテクチャ ( 命令の表現 命令の実行の仕組 ) 第 8 週 (11/13) 第 9 週 (11/20) 第 10 週 (11/27) 第 11 週 (12/4) 第 12 週 (12/11) 第 13 週 (12/18) 第 14 週 (1/8) 第 15 週 (1/17) 中間試験 休講 ハーバードアーキテクチャ RISC と CISC 制御アーキテクチャ メモリの仕組 キャッシュメモリと仮想メモリ 割込みアーキテクチャ パイプライン 1/22-2/8 期末試験 入出力アーキテクチャ まとめ 1

コンピュータアーキテクチャ 第 3 週 復習 演算アーキテクチャ ( 演算アルゴリズムと回路 ) 2

加減算アルゴリズム 加算 減算 全加算器をビット数分並べる 2 の補数表現にして加算にする これらを合わせると加減算を両方演算可能な回路を構成できる X 3 Y 3 X 2 Y 2 加減算器の例 C SGN : 制御信号 X + Y if C SGN = 0 X Y if C SGN = 1 X C Y FA 0 C S S 3 1 X C Y FA 0 C S 1 C O S 2 x y 全加算器 (FA) s X 1 Y 1 X C Y FA 0 C S 1 S 1 c in c out X 0 Y 0 C SGN X C Y FA 0 C S 1 S 0 3

乗算アルゴリズム 前提 P = X Y を求める このとき X を被乗数 Y を乗数と呼ぶ また X を 2 進数表現した際の各ビットを x i で表す i (0,1, ) は下位から数えて何ビット目かを示す ブース法 (Booth Altorithm) 負の乗算にも対応した広く利用されている方式 負の数は 2 の補数で表現される 乗数を 2 進展開し 各ビットについてシフトと加算を行っていく 各ビットとその前のビットの値の組み合わせによりシフトと加算の動作が異なる i ビット目の動作では y i と y i 1 の組み合わせを見る 組合せは以下の 3 種類 :00 または 11 10 01 動作は加算の位置が変化する方法と加算の位置を変化させない方法で異なる 4

ブース法 (Booth Algorithm) 加算位置が変化する方法 P = 0, y 1 = 0 とする各ビット i (0,1,, n 1) について以下の動作を行う y i と y i 1 が等しい場合 : なにも行わない y i = 0, y i 1 = 1 の場合 :X 2 i を P に加算 y i = 1, y i 1 = 0 の場合 :X 2 i を P から減算 加算位置が変化しない方法 P = 0, y 1 = 0 とする各ビット i (0,1,, n 1) について以下の動作を行う y i と y i 1 が等しい場合 : なにも行わなず P を右にシフト y i = 0, y i 1 = 1 の場合 :X 2 n を P に加算し P を右にシフト y i = 1, y i 1 = 0 の場合 :X 2 n を P から減算し P を右にシフト 右にシフトする際 MSB に入る値は直前の MSB と同じになる 5

除算アルゴリズム 前提 X と Y の商 Q と剰余 R 求める このとき X を被除数 Y を除数と呼ぶ また X を 2 進数表現した際の各ビットを x i で表す i (0,1, ) は下位から数えて何ビット目かを示す X は 2n ビット Y は n ビットとする また X の上位 n ビットを X1 下位 n ビットを X2 とする 引き戻し法 (Restoring Division) X の上位 n ビットから Y を引いていく 筆算では X の上位 n ビットと Y の大小を比較し 大きければその桁の商を 1 小さければ 0 としているが 引き戻し法ではまず減算を行い その結果の正負を判定する 負である場合 同じものを加算することで元に戻す 引き放し法 (nrestoring Division) 引き戻すタイミングを遅らせることにより高速化した手法 6

除算アルゴリズム : 引き戻し法 START X1 X2 C を左へ 1 ビットシフト Y 0 X1 X1 Y X1 X1 Y X1 0 X1 < 0 C 1 C 0 X1 X1 + Y X1 X1 + Y オーバフロー n n 1 n 0 フローチャート END 7

除算アルゴリズム : 引き戻し法 START Y 0 X1 X1 Y X1 < 0 X1 X1 + Y 減算の結果が正か負か判断 一度減算を行う 負であれば商のその桁は0とし 減算を元に戻すオーバフロー ( 引き戻し ) X1 X2 C C 1 を左へ 1 ビットシフト X1 X1 Y X1 0 n n 1 C 0 X1 X1 + Y Cに入れられた値を上位よりフローチャート記載すると商が求まり 最終的なX1が剰余を示している n 0 END 8

引き戻し法 : 演算例 X = 22, Y = 6 X = 35, Y = 7 9

引き放し法のフローチャート START X1 0 Y 0 X1 X1 Y C 1 X1 X2 C X1 X1 Y を左へ 1 ビットシフト C 0 X1 X2 C X1 X1 + Y を左へ 1 ビットシフト X1 < 0 n n 1 X1 X2 C を左へ 1 ビットシフト オーバフロー n 0 X1 0 X1 X1 + Y n n 1 C 1 C 0 X1 X1 + Y フローチャート END 10

引き放し法のフローチャート START X1 0 Y 0 X1 X1 Y X1 X1 + Y n n 1 引き戻し法と比較するとループ部分の X1 演算回数が < 0 少なくなっている ( 高速化 ) X1 X2 C を左へ 1 ビットシフト オーバフロー C 1 Cに入れられた値を上位より記載すると商が求まり 最終的なX1が剰余を示している フローチャート X1 X2 C X1 X1 Y を左へ 1 ビットシフト C 1 n n 1 n 0 END C 0 X1 X1 + Y X1 0 C 0 X1 X1 + Y X1 X2 C を左へ 1 ビットシフト 11

引き戻し法 : 演算例 X = 22, Y = 6 X = 35, Y = 7 12

コンピュータアーキテクチャ 第 6 週ノイマン型コンピュータ 命令とは 命令の使い方 13

本日の到達目標と概要 到達目標 ノイマン型コンピュータの概要を理解する 概要 コンピュータの歴史 ノイマン型コンピュータの特徴と基本構成 CPUの発展 コンピュータの基本動作 PC 用 CPUの構成と動作 14

コンピュータの歴史 (1) 古代より現代 バビロニア : 小石を移動した計算 アバカス ( そろばん ) 数表 機械式計算機 シカルトによる計算機 (1623) パスカリーヌ (1642) ライプニッツ (1673) バベッジの階差エンジンの提案 (1823) バベッジの解析エンジン (1834) ホレリス国勢調査用作表機 (1890) アバカス ライプニッツの計算機 15

コンピュータの歴史 (2) 電子式計算機 エレックスとジョルダンによる電子式フリップフロップ (1919) ウィリアムスによる 2 進カウンタ (1932) アタナソフとベリーによる ABC マシン (1937) < この辺から第 1 世代 >: 論理素子として真空管 エイケンと IBM 社によるハーバード Mark-I (1943) ドイツの COLOSSUS (1943) モークリとエッカートによる ENIAC (1946) ウィリアムズらによる SSEM (1948) ウィルクスらによる EDSAC (1949) モークリとエッカートによる EDVAC (1952) ノイマン EDVAC に関する報告書 < 第 2 世代 > 論理素子がトランジスタ :1942-1954 < 第 3 世代 >IC(Integrated Circuit, 集積回路 )1964-1974 < 第 4 世代 >VLSI(Very Large Scale Integration) COLOSSUS 今日のコンピュータの基本ともなる概念 ノイマン型が基本 16

ノイマン型コンピュータの特徴 プログラム可変内蔵方式 プログラムを内部のメモリに記憶させることで プログラムの入力や変更が簡単に行える プログラム記憶方式とも 逐次処理方式 命令は 原則として実行順にメモリに格納されており この命令を順次取り出しながら処理を進める 取り出す命令のアドレスは プログラムカウンタに従って指示する 単一メモリ方式 プログラムとデータは 同じメモリ内に格納され メモリにはアドレスが割り振られている 一時的なデータ格納領域として 高速に動作する小容量メモリであるレジスタを備えている レジスタとメモリ間のデータ転送は プログラムで指示できるため メモリの効果的な利用が可能となる 17

ノイマン型コンピュータの基本構成 (1) 演算装置 (Arithmetic Unit) データの算術演算や論理演算を行う装置 制御装置 (Control Unit) すべての装置をコントロールする装置 一般的には 演算装置と制御装置を超大規模集積回路 (VLSI: Very Large Scale IC) として構成し 中央処理装置 (Central Processing Unit:CPU) ということが多い CPU は MPU(Micro Processor Unit) とも呼ばれる 18

ノイマン型コンピュータの基本構成 (2) 記憶装置 (Memory Unit) 入力装置 (Input Unit) データやプログラムを記憶しておく装置である CPU や入出力装置とデータのやり取りを高速に行う主記憶装置 (Main Memory Unit) と 大量のデータを長期間記憶しておく補助記憶装置 (Auxiliary Memory Unit) がある 主記憶装置は IC メモリが主流であり 補助記憶装置にはハードディスクや DVD などが使われている プログラムやデータを主記憶装置に入力する装置である キーボードやマウス イメージスキャナなどがある 出力装置 (Output Unit) コンピュータが処理したデータを出力する装置 ディスプレイやプリンタなどがある 19

CPU の発展 世界最初のCPU インテル社 i4004 (1971) 2300 個のトランジスタ 処理量は4ビット 年代 1971 1974 1976 1978 1985 1993 2000 2010 型番 4004 8080 6800 処理量 ( ビット ) 8085 6809 Z80 8086 80386 Pentium PowerPC Pentium4 core i7-980x (6 コア ) 4 8 8 16 32 32 32 64 素子数 ( 個 ) 2300 8500 1 万 3 万 28 万 310 万 4200 万 11 億 7000 万 クロック 100kHz 1MHz 5MHz 10MHz 20MHz 100MHz 1GHz 3GHz メモリ空間 ( バイト ) 4.5K 64K 64K 16M 4G 4H 4G (64Gに拡張可) 24G 20

CPU の構成 汎用レジスタ GR0 GR1 算術論理演算装置 (ALU) フラグレジスタ FR GR2 GR4 GR6 GR3 GR5 GR7 算術演算や論理演算を行う演算回路 ALU が処理した処理に基づいた動作を行う 高速に動作する置数器であり データを一時的に記憶し ALU やメインメモリ ( 主記憶装置 ) などと連携しながら処理を効率的に進めていく働きをする 21

制御装置 プログラムカウンタ 命令レジスタ IR デコーダ PC 命令コード OP オペランド opr DEC 制御信号 プログラムカウンタ (PC) 次に実行するプログラムが格納されているメモリのアドレスを記憶しているレジスタであり プログラムレジスタ (PR) と呼ばれることもある 通常は命令を実行するたびにカウントアップしていくが 分岐命令などを実行した場合には 分岐先命令の格納されているアドレスを記憶する 命令レジスタ (IR) メモリから取り出された命令を一時的に記憶するレジスタであり 命令コードとオペランドからなる デコーダ (DEC) 命令レジスタに記憶されている命令を復号 ( 解読 ) して 実行に必要な制御信号 ( デコード情報 ) を出力する 22

基本動作 命令呼び出し段階 命令実行段階 命令の取り出し 命令の解読 命令の実行 命令実行サイクル 23

基本動作 アドレスバス プログラムカウンタ PC 命令レジスタ IR 制御装置主記憶装置演算装置 OP opr メモリアドレスレジスタ MAR アドレス メモリ 命令 ALU 汎用レジスタ GR デコーダ DEC フラグレジスタ FR 制御信号 データバス 24

例 : 加算命令 ADD の実行 < 初期状態 > アドレスバス 制御装置主記憶装置演算装置 プログラムカウンタ PC 命令レジスタ IR 0054 OP opr メモリアドレスレジスタ MAR アドレス 0054 A メモリ ADD r, A 27 ALU 汎用レジスタ GR 60 デコーダ DEC フラグレジスタ FR 1 1 1 データバス 25

例 : 加算命令 ADD の実行 < 流れ > アドレスバス プログラムカウンタ PC 命令レジスタ IR 制御装置主記憶装置演算装置 ADD 0054 OP opr r, A メモリアドレスレジスタ MAR アドレス 0054 A メモリ ADD r, A 27 ALU 汎用レジスタ GR 60 87 デコーダ DEC 制御信号 フラグレジスタ FR 0 0 0 データバス 26

サブルーチンの実行 アドレス 0000 0010 0011 8000 メモリメインルーチン CALL 8000H ~ サブルーチンRTS ~ スタック 9000 27

PC 用 CPU の構成と動作 ノースブリッジへ 32 ビット 汎用レジスタプログラムカウンタフラグレジスタ 8 BTB, BHT 命令 TLB 命令用 1 次キャッシュメモリ バスインタフェース 2 次キャッシュメモリ デコーダ 命令制御装置 整数演算用スケジューラ 浮動小数点演算用スケジューラ AGU AGU ALU ALU FPU SIMD SIMD データ用 1 次キャッシュメモリデータ TLB 28

PC の構成例 CPU グラフィックスカード CPU バス チップセット ( ノースブリッジ ) メモリ ハードディスク CD-ROM チップセット ( サウスブリッジ ) IEEE1394 対応機器 USB 対応機器 キーボード マウス プリンタ 29

本日の到達目標と概要 到達目標 ノイマン型コンピュータの概要を理解する 概要 コンピュータの歴史 ノイマン型コンピュータの特徴と基本構成 CPUの発展 コンピュータの基本動作 PC 用 CPUの構成と動作 30