コンピュータ工学Ⅰ

Similar documents
コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

計算機アーキテクチャ

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

main.dvi

C に必要なコンピュータ知識 C はコンピュータの力を引き出せるように設計 コンピュータの知識が必要

Microsoft PowerPoint - ProcML-12-3.ppt

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

PowerPoint プレゼンテーション

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

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

CASL入門

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

2

採用活動マニュアル

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

PowerPoint プレゼンテーション

< B8CDD8AB B83685D>

Microsoft PowerPoint - 11Web.pptx

スライド 1

スライド 1

Microsoft Word - no02

PowerPoint プレゼンテーション

スライド 1

020105.メモリの高機能化

スライド 1

-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

cmpsys13w03_cpu_hp.ppt

- 2 -

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

ex04_2012.ppt

Microsoft PowerPoint - Lec ppt [互換モード]

CASL入門

Microsoft PowerPoint - NxLecture ppt [互換モード]

PowerPoint プレゼンテーション

問 2. タイミングチャート以下に示す VHDL コードで記述されている回路に関するタイミングチャートを完成させよ ) レジスタの動作 use IEEE.std_logic_64.all; entity RegN is generic (N : integer := 8 port ( CLK, EN

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

改訂履歴 Ver 年 ( 平成 30 年 )5 月 25 日ページ変更点 1 試験問題に出題する Java の変更 (Third Edition から Java SE 8 Edition に変更 ) Ver 年 ( 平成 28 年 )10 月 21 日ページ変更点

ComputerArchitecture.ppt

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

ガイダンス 2

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

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

CASL入門

PowerPoint プレゼンテーション

スライド 1

スライド 1

アセンブラ入門(CASL II) 第3版

Microsoft PowerPoint - Sol7 [Compatibility Mode]

計算機アーキテクチャ

出 アーキテクチャ 誰が 出 装置を制御するのか 1

Microsoft Word - マイコン実験 doc

情報科学概論

Microsoft PowerPoint - Chap2 [Compatibility Mode]

Microsoft PowerPoint - Chap4 [Compatibility Mode]

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

i コロナ社 AND OR NOT SRAM IC


計算機アーキテクチャ

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt

Microsoft PowerPoint - ar10_08.ppt

スライド 1

スライド 1

スライド 1

Microsoft Word - 中間試験 その1_解答例.doc

Microsoft Word - HW06K doc

Microsoft PowerPoint - Chap3 [Compatibility Mode]

PowerPoint プレゼンテーション

講義計画 1. コンピュータの歴史 1 2. コンピュータの歴史 2 3. コンピュータの歴史 3 4. 論理回路と記憶, 計算 : レジスタとALU 5. 主記憶装置とALU, レジスタの制御 6. 命令セットアーキテクチャ 7. 演習問題 8. パイプライン処理 9. メモリ階層 : キャッシュ

PowerPoint プレゼンテーション

本日の範囲 ファイルとその中身 コンピュータにおける情報の表現 ファイルとフォルダ コンピュータの仕組み 通信 ネットワーク, インターネット 情報の符号化, その限界 コマンドライン プログラムの仕組み 通信の符号化, その限界 暗号 簡単なプログラムの作成 実行 Excel で計算 データの可視

スライド 1

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

MW100 Modbusプロトコルによるデータ通信の設定について

スライド 1


スライド タイトルなし

スライド 1

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

hard5.pptx

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

1 はじめに このアプリケーションは 計算機ハードウェア論 のアセンブリ言語 ( 超簡単命令セット ) の理解を助けるために製作されました 便宜的に機能を追加 削除した箇所があるため このアプリケーション上での動き方が実際のCPUでの動き方と異なる場合があることに留意してください このアプリケーショ

Copyright JAPAN POST BANK CO., LTD. All Rights Reserved. 1

第2回

問題1 次の情報表現に関する記述は,コンピュータの勉強を始めたばかりのB君と,かなり詳しく知っているM君の会話である

Microsoft PowerPoint - 7.Arithmetic.ppt

スライド 1

MIPSのマイクロアーキテクチャ

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P

Microsoft PowerPoint - H2.ppt [互換モード]

hard3.pptx

Microsoft PowerPoint - 4回 [互換モード]

6. パイプライン制御

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

cp-7. 配列

Microsoft PowerPoint - NxLec ppt

ディジタル回路 第1回 ガイダンス、CMOSの基本回路

情報工学Ⅰ-02

Transcription:

コンピュータ工学 Ⅰ 中央処理装置 Rev. 2019.01.16

コンピュータの基本構成と CPU 内容 ➊ CPUの構成要素 ➋ 命令サイクル ➌ アセンブリ言語 ➍ アドレッシング方式 ➎ CPUの高速化 ➏ CPUの性能評価

コンピュータの構成装置 中央処理装置 (CPU) 主記憶装置から命令を読み込み 実行を行う 主記憶装置 CPU で実行するプログラム ( 命令の集合 ) やデータを記憶する 補助記憶装置 入力装置 出力装置

プログラムの実行 プログラム A プログラム B 命令を1 個ずつ順番に読み出す 命令データ プログラム C プログラム C データ A データ A データ B 補助記憶装置 ( ハードディスク等 ) 主記憶装置 ( メインメモリ ) CPU

バス方式 バス コンピュータ内の各装置がデータ通信に用い る共通の通信経路 CPU 主記憶装置 補助記憶装置 バス

バスによる装置間の通信 CPU 主記憶装置 補助記憶装置 バス 出力装置 2 つの装置間で通信を行っているときは 他の装置は通信できない 入力装置

バスの種類 重要 データバス データを送る アドレスバス 主記憶装置のアドレス ( 番地 ) を送る コントロールバス データの読み書きの制御信号を送る

主記憶装置 アドレス ( 番地 ) 100 101 102 103 104 105 2E 93 00 3C 56 2A 記憶場所 数値化された命令やデータを記憶 主記憶装置内のデータを読み書きするときは 対象のデータのアドレスを指定する必要がある

機械語とアセンブリ言語 CPUの機能命令番号命令語 データ転送 10 LD 加算 24 ADDA 減算 25 SUBA 論理積 34 AND 論理和 35 OR 機械語アセンブリ言語 CPU の機能 1 つ 1 つに命令番号が与えられている

CPU の構成要素 重要 レジスタ 略称 MDR MAR PC IR GR0~GR7 FR 名称記憶データ用レジスタ記憶番地指定用レジスタプログラムカウンタ命令レジスタ汎用レジスタフラグレジスタ

CPU の構成要素 重要 その他装置 略称 名称 ALU 命令デコーダ コントロールユニット 働き 算術演算や論理演算を行う 命令番号を解読し 各装置を制御する コントロールバスに制御信号を送る

命令デコーダと ALU レジスタ 1 レジスタ 2 ALU 加算減算 AND OR 命令レジスタ AND 命令デコーダ AND AND AND OR

減算を行う場合 レジスタ 1 レジスタ 2 減算 加算減算 AND OR 命令レジスタ 0 1 0 0 AND 0 AND AND 0 AND 0 OR

命令サイクル 重要 1 つの命令を実行する手順 ➊ 命令読み出し (fetch) ➋ 命令解読 (decode) ➌ 命令実行 (execute) ➍ 結果書き込み (writeback)

命令読み出し 重要 GR0 PC GR1 IR 主記憶装置 命令 MAR MDR Read アドレスバス データバス コントロールバス

命令読み出し 重要 GR0 GR1 主記憶装置 PCの値を PC IR 1 増やす命令 MAR MDR Read アドレスバス データバス コントロールバス

命令解読 重要 GR0 GR1 PC IR 命令デコーダ アドレスバス MAR MDR GR1 GR1+GR0 データバス コントロールバス

命令実行 重要 GR0 GR1 PC IR ALU アドレスバス MAR MDR GR1 GR1+GR0 データバス コントロールバス

結果書き込み 重要 GR0 GR1 PC IR ALU アドレスバス MAR MDR GR1 GR1+GR0 データバス コントロールバス

主記憶装置への書き込み 重要 GR0 GR1 主記憶装置 GR1 から 100 番地へ値を書き込む PC IR 100 データ MAR MDR Write アドレスバス データバス コントロールバス

主記憶装置からの読み出し 重要 GR0 GR1 主記憶装置 100 番地から GR1 へ値を読み出す PC IR 100 データ MAR MDR Read アドレスバス データバス コントロールバス

アセンブリ言語 CASLⅡを取り扱う データ転送命令 算術演算命令 ( 加算 減算 ) 分岐命令 算術比較命令

命令の記述 機械語 10120080 (16) アセンブリ言語 LD GR1,80,GR2 オペコード 命令の種類 オペランド重要! 命令の対象 ( レジスタ, アドレス )

LD (Load) 重要 レジスタ または 主記憶装置内の値を 指定したレジスタに読み出す LD r1, r2 レジスタ r1 レジスタ r2 の値 LD r1, adr レジスタ r1 adr 番地の値

ST (Store) 重要 レジスタの値を 主記憶装置内の指定し たアドレスに書き込む ST r1, adr adr 番地 レジスタ r1 の値

LAD (Load Address) 重要 レジスタに定数 ( 番地 ) を書き込む LAD r1, adr レジスタ r1 adr

データ転送命令のまとめ 主記憶装置 値の転送方向 LD ST レジスタ r1 LD LAD 定数 レジスタ r2

CPU の概略図 IR GR0 GR1 GR2 GR7 命令デコーダ 制御信号 ALU MAR MDR アドレスバス データバス 主記憶装置

LD GR0,GR2 IR 1402 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 主記憶装置

LD GR7,50 IR 1070 50 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 50 番地 主記憶装置

ST GR0,50 IR 1100 50 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 50 番地 主記憶装置

LAD GR1,50 IR 1210 50 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 主記憶装置

ADDA (Add Arithmetic) 2 つの値の加算結果をレジスタに書き込 む 重要 ADDA r1, r2 レジスタ r1 r1 の値 + r2 の値 ADDA r1, adr レジスタ r1 r1 の値 + adr 番地の値

SUBA (Subtract Arithmetic) 2 つの値の減算結果をレジスタに書き込 む 重要 SUBA r1, r2 レジスタ r1 r1 の値 - r2 の値 SUBA r1, adr レジスタ r1 r1 の値 - adr 番地の値

ADDA GR1,60 IR 2010 60 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 加算 60 番地 主記憶装置

ADDA GR0,GR2 IR 2402 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 主記憶装置

ADDA GR0,GR2 IR 2402 MAR アドレスバス 命令デコーダ MDR データバス 制御信号 GR0 GR1 GR2 GR7 ALU 加算 主記憶装置

実効アドレスと指標レジスタ 重要 LD r1, adr レジスタ r1 adr 番地の値 実効アドレス処理対象のアドレス LD r1, adr, x 指標レジスタ レジスタ r1 (adr+ レジスタ x) 番地の値 実効アドレス 汎用レジスタの中の 1 つ

LD GR0,90,GR2 IR 1002 90 加算 MAR アドレスバス 命令デコーダ MDR データバス GR0 GR1 GR2 GR7 制御信号 5 指標レジスタ ALU 95 番地 主記憶装置

指標レジスタを用いた命令記述 LD r1, adr, x レジスタ r1 (adr + レジスタ x) 番地の値 重要 LAD r1, adr, x レジスタ r1 (adr + レジスタ x) ST r1, adr, x (adr + レジスタ x) 番地 レジスタ r1 の値

アドレス指定方式 直接アドレス指定 間接アドレス指定 相対アドレス指定 指標アドレス指定 即値アドレス指定

直接アドレス指定 オペランドのアドレス部の値を実効アドレスと する方式 オペランド命令 102 実効アドレス例 LD GR0,102 ST GR1,102 ADDA GR2,102 主記憶装置 101 102 データ 103 104 105 106

間接アドレス指定 オペランドのアドレス部に 実効アドレスを格納しているアドレスを格納する方式 主記憶装置 命令 オペランド 102 101 102 200 103 実効アドレス 200 データ 201

相対アドレス指定 オペランドのアドレス部の値に PCの値を加算したものを実効アドレスとする方式 主記憶装置 命令 オペランド 100 PC 104 実効アドレス 201 202 203 204 データ 205 206

指標アドレス指定 オペランドのアドレス部の値に 指標レジスタ の値を加算したものを実効アドレスとする方式 オペランド命令 100 指標レジスタ 4 実効アドレス例 LD GR0,100,GR1 主記憶装置 101 102 103 104 データ 105 106

即値アドレス指定 オペランドのアドレス部にデータそのものを格納する方式 主記憶装置 オペランド命令データ データ = 実効アドレス 例 LAD GR1,30 101 102 103 104 105 106

スタック データを一時的に蓄えておくための主記憶装置上の記憶場所後入れ先出し方式 (LIFO) Push データを入れる Pop データを取り出す データ データ データ

PUSH/POP PUSH adr adr をスタックへ入れる PUSH adr,x (adr+ レジスタ x) をスタックへ入れる POP r1 スタックから取り出した値をレジスタ r1 へ書き込む

キュー データを一時的に蓄えておく方式の一つ 先入れ先出し方式 (FIFO) 待ち行列 データ データ データ Enqueue データを入れる Dequeue データを取り出す

逐次実行と分岐 命令 命令 命令 命令 分岐命令 命令 命令 命令 分岐命令 命令 命令 命令 逐次実行ジャンプ繰り返し

分岐命令の種類 無条件分岐 負分岐 正分岐 条件分岐 零分岐 非零分岐

無条件分岐 重要 プログラムの実行位置を移動する JUMP adr 次に実行する命令は adr 番地から読み出 す PC( プログラムカウンタ ) の値を adr にする

ラベル プログラムを作る際に 番地に付ける 仮の名前 100 LD GR0,200 102 LD GR1,201 104 JUMP 110 110 ST GR0,201 X LD GR0,A LD GR1,B JUMP X ST GR0,B 200 DC 5 201 DC 4 A DC 5 B DC 4

フラグレジスタ (FR) 重要 演算の結果やデータ転送の値の状態を示すレジスタ 3つのフラグ ( 各 1bit) から成る OF SF ZF ゼロフラグサインフラグオーバーフローフラグ

フラグ 重要 オーバーフローフラグ (OF) 値が 有効 bit を越えたとき 1 有効 bit を越えないとき 0 サインフラグ (SF) 値が 負のとき 1 0 または正のとき 0 ゼロフラグ (ZF) 値が 0 のとき 1 0 以外のとき 0

フラグの値 重要 値 正の数 0 負の数 サインフラグ (SF) 0 0 1 ゼロフラグ (ZF) 0 1 0

算術比較命令 重要 2 つの値の減算結果から FR を設定する 減算結果の値は残さない CPA r1, r2 r1-r2 の結果から FR を設定する CPA r1, adr r1-adr 番地の値の結果からFRを設定する

条件分岐命令 FR の値によって 分岐するか しないか を決定する 命令 設定 FR 分岐する 条件分岐命令 参照 命令 分岐しない

条件分岐命令 重要 JMI adr 負分岐 負 (SF=1) のとき adr 番地へ移動 JPL adr 正分岐 正 (SF=0,ZF=0) のとき adr 番地へ移動 JZE adr 零分岐 0(ZF=1) のとき adr 番地へ移動 JNZ adr 非零分岐 0 でない (ZF=0) のとき adr 番地へ移動

条件分岐の実現 GR0 GR1 CPA GR0,GR1 JMI X GR0-GR1<0 X

条件分岐の使用 条件分岐 条件分岐 if 文型 do-while 文型

条件分岐と無条件分岐の使用 条件分岐 条件分岐 A 無条件分岐 無条件分岐 B if-else 文型 while 文型

課題 3 MomoCampus で実施する 試験 課題 3 提出締切 : 1 月 23 日 ( 水 ) 9:10 授業評価アンケートに回答すること mylog 授業 授業評価回答

CPU アーキテクチャ CISC 複雑命令セットコンピュータ 1 つの命令で複雑な処理を実行できる 組み込まれている命令数は多い RISC 縮小命令セットコンピュータ 1 つの命令は単純な処理だけを行う 組み込まれている命令数は少ない CPU の進歩により 現在は明確な区別が無くなってきている

CISC と RISC の特徴 利点 欠点 用途 CISC 小さいプログラムで 複雑な処理が行える 命令の実行時間が長く 命令ごとに時間が違う CPU の回路構造が複雑になる パソコン用 CPU など RISC 命令の実行時間が短く どれも同じ長さである CPU の回路構造が簡単になる 複雑な処理をしたいとき プログラムが大きくなる 組み込み機器用小型マイコンなど

CPU の高速化法 パイプライン処理 マルチプロセッサ, マルチコア SIMD 演算

パイプライン処理 重要 複数の命令を並行して実行することで 処理 速度を上げる 逐次処理 命令 1 命令 2 命令 3 ➊ ➋ ➌ ➍ ➊ ➋ ➌ ➍ ➊ 命令読み出し ➋ 命令解読 ➌ 命令実行 ➍ 結果書き込み ➊ ➋ ➌ ➍ パイプライン処理 命令 1 命令 2 命令 3 ➊ ➋ ➌ ➍ ➊ ➋ ➌ ➍ ➊ ➋ ➌ ➍ 時間短縮

マルチプロセッサ / マルチコア マルチプロセッサ 1 台のコンピュータの中に複数の CPU を搭載 CPU CPU CPU CPU コンピュータ マルチコア 1 個の CPU の中に複数の CPU コアを搭載 コアコアコアコア CPU

SIMD 方式 1 つの命令で複数のデータを処理することに より 処理速度を上げる CPU コア データ 1 データ 2 データ 3 データ 4 同じ命令 命令デコーダ ALU ALU ALU ALU

CPU の性能評価 重要 平均命令実行時間 1 命令の実行に要する時間 ( 秒 ) の平均値 MIPS 1 秒間に実行できる命令数 ( 百万単位 ) FLOPS 1 秒間に実行できる浮動小数点数演算の回数

定期試験 ( 予定 ) 日時 2019 年 1 月 28 日 9 時 10 分場所 C0241 講義室出題範囲 CPUの構成要素と働き 命令サイクル アセンブリ言語の記述 実効アドレス フラグと分岐処理 CPUの高速化 CPUの性能評価 中間試験範囲から基礎的問題