計算機アーキテクチャ

Similar documents
コンピュータ工学Ⅰ

コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

< B8CDD8AB B83685D>

スライド 1

Microsoft PowerPoint - 11Web.pptx

計算機アーキテクチャ

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

スライド 1

PowerPoint プレゼンテーション

スライド 1

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

-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

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

計算機アーキテクチャ

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

スライド 1

ComputerArchitecture.ppt

PowerPoint プレゼンテーション

スライド 1

PowerPoint プレゼンテーション

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

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

PowerPoint プレゼンテーション

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

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

Microsoft PowerPoint - Chap4 [Compatibility Mode]

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

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

スライド 1

スライド 1

ガイダンス 2

ex04_2012.ppt

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

Microsoft PowerPoint - Chap2 [Compatibility Mode]

Microsoft PowerPoint - kougi7.ppt

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - Sol7 [Compatibility Mode]

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

プログラミング基礎

スライド 1

情報科学概論

Microsoft Word - no02

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

Microsoft PowerPoint - ar10_08.ppt

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Microsoft PowerPoint ppt

PowerPoint Presentation

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

OS

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

hard5.pptx

Microsoft PowerPoint - Chap3 [Compatibility Mode]

Microsoft PowerPoint - 7.Arithmetic.ppt

PowerPoint プレゼンテーション

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

Microsoft PowerPoint ppt

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - 1st

スライド 1

6. パイプライン制御

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

授業のあとで 情報処理工学 : 第 3 回 10 進数を 16 進数に変換する方法と 16 進数を 10 進数に変換する方法は 標準的な方法でも良いですか? 履修申告は済みましたか? 割り算 方法 ) 54 余り 6 16 ) 3 余り 3 ) 0 第 4 回へ 201

プログラミング実習I

Microsoft PowerPoint - ProcML-12-3.ppt

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

PowerPoint プレゼンテーション

プレポスト【解説】

スライド 1

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

PowerPoint プレゼンテーション

01-introduction.ppt

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

コンピュータのしくみ

スライド 1

Microsoft Word - マイコン実験 doc

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

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

スライド 1

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

10-vm1.ppt

情報工学Ⅰ-02

Microsoft PowerPoint - pc11.ppt

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

スライド 1

04-process_thread_2.ppt

cmpsys13w03_cpu_hp.ppt

計算機システム概論

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

PowerPoint プレゼンテーション

Microsoft PowerPoint - No6note.ppt

Microsoft PowerPoint - arc5

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

Microsoft PowerPoint - 3.3タイミング制御.pptx

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

スライド 1

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

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

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

Transcription:

計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1

授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ (ARU) 7 5/26 計算装置のハードウェア実装 8 6/2 文字コード 回日付タイトル 10 6/16 主記憶装置とレジスタ 11 6/20 命令実行の流れ 12 6/30 命令形式とアセンブリ言語 13 7/7 命令セット 14 7/14 サブルーチンの実現 15 7/28 PCSpimによるアセンブリ言語 プログラム 8/4? 期末試験 ( 日程は仮 ) 16 9/29? フォローアップ ( 日程は仮 ) 9 6/11 中間試験 (9:00-9:50) 5/5はこどもの日 7/21は海の日のため休講 授業変更 :6/23 1 時限 6/20 3 時限

今日の授業の目的 3 命令がどのように実行されるか理解する命令の実行時間の詳細な計算を理解する 今日の疑問 制御信号はどうやって作られるのか? 条件分岐と繰り返しはどう実現されているのか? 計算機の速さは何によって決まるのか?

命令 (instruction) とは何か 4 制御信号を生成し コンピュータの動作を決める ハードウェアとソフトウェアのインターフェース 命令は一つのデータ ( 命令語 ) として表現できる メモリ上に保存されている データは 32bit 程度の長さで表される 命令の長さを命令長と呼ぶ 0/1の割り当てはアーキテクチャによって異なる ハードウェアはこのデータを解釈し 実行している ( 機械語の ) プログラム 命令の集合で 順番に ( 逐次 ) 実行されていく

命令の種類と形式 5 算術論理演算命令 加減算や論理演算を行う ALU 制御 (+,-, AND, OR 等 ) 入力レジスタ 1 入力レジスタ 2 出力レジスタ メモリ操作命令 メモリの読み書きを行う メモリ操作 (load, store 等 ) レジスタ アドレス 条件分岐命令 プログラムの実行順を変更する 分岐操作 ( 条件分岐 ジャンプ等 ) アドレス

命令実行の手順 6 命令フェッチ (fetch) 命令が実行される最初の過程 命令メモリから命令レジスタにデータを読み込む 命令デコード (decode) 命令を解釈し制御信号を作り出す レジスタの操作 ( どのレジスタにアクセスするか ) メモリの操作 ( 読み込みまたは書き込み ) データセレクタの操作 ( どの信号線を接続するか ) 命令実行 (execute) ハードウェアの動作時間 メモリやレジスタに値が書き込まれる

命令実行のしくみ 7 1 命令フェッチ 命令レジスタ レジスタ番号 レジスタの管理ハードウェア 命令メモリ 命令デコーダ ALU 制御 2 命令デコード ( 制御信号の生成 ) ALU データメモリ メモリ制御 メモリアドレス 3 命令実行 ( 演算や書き込み ) データセレクタ 書き込みデータ 読み出しデータ

ALU と制御信号 8 現在の ALU は CPU に内蔵されていますが 昔は外付けもありました 教科書 P.10 参照

ALU(74181) の内部構造 9

算術論理演算命令の実行サイクル 10 命令メモリ 1 命令フェッチ + 入力 1 入力 2 出力 2 命令デコード 命令デコーダ 2 読み書きするレジスタアドレス 3 演算制御信号 3 命令実行 ( 演算や書き込み ) 3 演算実行 レジスタの管理ハードウェア ALU 4 結果の格納 メモリ制御 データセレクタ データメモリ メモリアドレス 書き込みデータ 読み出しデータ

メモリ操作命令の実行サイクル 11 命令メモリ 1 命令フェッチ L レジスタアドレス 命令デコーダ 2 読み書きするレジスタアドレス 2 命令デコード ALU 制御 レジスタの管理ハードウェア ALU 4 結果の格納 データメモリ メモリ制御 メモリアドレス 3 命令実行 ( ハードウェアのアクセス ) データセレクタ 書き込みデータ 読み出しデータ

シーケンサ (sequencer) 12 次に実行する命令を読み出すための回路 プログラムカウンタを制御するハードウェア 命令メモリからプログラムを順に実行するための仕組み 条件分岐や繰り返しの処理を行う際にも動作する シーケンサ 命令メモリ プログラムカウンタ セデレクータタ +1 命令レジスタ 分岐先命令アドレス

コンピュータの中枢部分の構成 13 プログラムカウンタ データセレクタ +1 分岐先命令アドレス 命令レジスタ レジスタ番号 レジスタの管理ハードウェア 命令メモリ データメモリ メモリ制御 命令デコーダ メモリアドレス ALU 制御 制御 読み出しデータ 書き込みデータ フラグレジスタ ALU データセレクタ

条件分岐命令の実行サイクル 14 プログラムカウンタ データセレクタ +1 分岐先命令アドレス レジスタ番号 J アドレス 1 命令フェッチ レジスタの管理ハードウェア 命令メモリ データメモリ メモリ制御 命令デコーダ メモリアドレス ALU 制御 読み出しデータ 書き込みデータ 2 命令デコード ALU 3 プログラムカウンタの書き換え データセレクタ

15 フラグレジスタを使った条件分岐 プログラムカウンタ データセレクタ +1 分岐先命令アドレス 命令メモリ データメモリ メモリ制御 = 入力 1 入力 2 アドレス 命令デコーダ メモリアドレス ALU 制御 制御 読み出しデータ 書き込みデータ フラグレジスタ レジスタの管理ハードウェア ALU データセレクタ

MEMO 16

演習問題 1 17 次のプログラムの各命令を分類せよ 命令の種類に C,M,J のいずれかを記入すること ただし C: 算術論理演算 M: メモリ操作 J: 条件分岐 番地 プログラムの内容 命令の種類 100 111 番地の内容をレジスタ1へ読み込み 101 112 番地の内容をレジスタ2へ読み込み 102 レジスタ 1 にレジスタ 2 の値を加算 ( レジスタ 1= レジスタ 1+ レジスタ 2) 103 レジスタ2から即値 1 を減算 104 レジスタ2が1 以上なら102 番地へ処理を移す 105 レジスタ1の値を113 番地に書き込み 106 114 番地の値をレジスタ2へ読み込み 107 レジスタ2からレジスタ1を減算 108 レジスタ2が0 以下なら110 番地へ処理を移す 109 113 番地にレジスタ1の内容を書き込み 110 プログラム終了

演習問題 2 18 各命令の実行時間を次の表に定めるとき 演習問題 1 のプログラムの実行時間を答えよ 処理内容 命令のフェッチ 命令のデコード 算術論理演算命令の実行 メモリ操作命令の実行 条件分岐命令の実行 処理時間 10 秒 3 秒 5 秒 10 秒 8 秒 ただし データは次の表のとおりとする メモリ番地データ 111 5 112 2 113-25684 114 7

命令機能の評価指数 19 早い計算機は何によって決まるか? 命令による実行時間の違い 同じ種類の命令でも 加算と乗算で実行時間は違う もちろん命令の種類によっても違う 計算機の動作周波数の違い 計算機の動作周波数が高ければ高速にハードウェアが動作できる 評価指標 :TPI( 平均命令実行時間 ) TPI = TPC CPI TPC: マシンサイクル時間 ( クロック周波数の逆数 ) CPI: 平均命令実行サイクル数 (1 命令を何クロックで実行できるか )

演習問題 3 20 同じ命令セットを持つコンピュータ A と B があるこのクロック周波数と CPI が表のようになっている 種類クロック周波数 CPI コンピュータ A 4GHz 40 コンピュータ B 1GHz 5 問 1:500 命令のプログラムを実行した場合の CPU 時間を計算せよ ただし CPU 時間 = 実行命令数 TPI 問 2: コンピュータ A,B ではどちらが何倍速いといえるか

ハードウェアのトレードオフ論争 21 複雑で高度な機能は高速なハードウェアに任せたい CISC(Complex Instruction Set Computer) ソフトウェアの互換性が高くなる ハードウェアを単純化することで高速化し 複雑な命令はソフトウェアで対応したい RISC(Reduced Instruction Set Computer) CPI をできるかぎり小さくし 高速化が図れる ハードウェアの小規模化 低価格化が図れる

ハードウェアとシステムプログラム 22 応用プログラム プログラミング言語 ソフトウェア コンパイラ OS 命令セットアーキテクチャ ( マシン語 ) ハードウェア 計算機アーキテクチャの対象範囲 適切な命令セットアーキテクチャの設計 システムプログラム ( コンパイラ OS) とどう連携するか

プログラミング言語とコンパイラ 23 機械語は人間が記述するには最適とは言い難い 機械語はハードウェアに合わせて作られた言語 ハードウェアが変わると 覚え直しが必要 人間にわかりやすい言語でプログラムを作りたい プログラミング言語の開発 機械語にまとめて変換しておいて実行 コンパイラコンパイル時に最適化処理が可能 プログラミング言語を解釈しながら実行 インタプリタ ユーザがシステムと対話的にプログラムを作れる

システムプログラムとの連携 24 連携における検討事項 コンパイラとのインタフェース データ型と内部表現形式 命令形式 命令機能 ( 命令セット ) アドレス指定方法 ( アドレッシング ) OS とのインタフェース プロセス管理 メモリ管理 入出力処理 割り込み 例外処理 来週議論する予定