コンピュータアーキテクチャ 第 4 回.

Slides:



Advertisements
Similar presentations
1 B10 CPU を作る 1 日目 解説 TA 高田正法
Advertisements

平成 27 年 10 月 21 日. 【応用課題 2-1 】 次のビット列は、ある 10 進数を 8 ビット固定小数点表示で表した時の ものです。ただし、小数点の位置は 3 ビット目と 4 ビット目の間としてお り、負数は2の補数で表しています。このとき、元の 10 進数を求めてく ださい。
2006/10/26 山下 諒蔵 佐藤 春旗 前田 俊行 大山 恵弘 佐藤 秀明 住井 英二郎
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
Ⅰ.電卓キーの基本的機能 00 0 1 2 3 6 ⑤ 4 9 8 7 M- MR MC + × % M+ - = ÷ C √ +/- GT
計算機システムⅡ 主記憶装置とALU,レジスタの制御
Ibaraki Univ. Dept of Electrical & Electronic Eng.
基本情報技術概論(第4回) 埼玉大学 理工学研究科 堀山 貴史
テープ(メモリ)と状態で何をするか決める
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
計算機構成 第7回 サブルーチンコールとスタック テキストp85-90
2006年度 計算機システム演習 第4回 2005年5月19日.
計算機システムⅡ 命令セットアーキテクチャ
プログラミング論 II 電卓,逆ポーランド記法電卓
プログラムはなぜ動くのか.
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
条件分岐と繰り返し.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
プログラミング演習Ⅱ 課題4第3週 画像処理 (1) ビット演算子.
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
Ibaraki Univ. Dept of Electrical & Electronic Eng.
9. 演算回路 五島 正裕.
コンピュータアーキテクチャ 第 7 回.
コンピュータアーキテクチャ 第 7 回.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
コンピュータアーキテクチャ 第 11 回.
コンピュータアーキテクチャ 第 10 回.
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
ディジタル回路 9. 演算回路 五島 正裕.
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
Ibaraki Univ. Dept of Electrical & Electronic Eng.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 10 回.
コンピュータアーキテクチャ 第 2 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
コンピュータアーキテクチャ 第 3 回.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
9. 演算回路 五島 正裕.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
コンピュータアーキテクチャ 第 11 回.
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
JavaScript    プログラミング入門 2-3 式と演算子 2006/10/12 神津 健太.
6.5 最終コード生成 (1)コードの形式 ①絶対2進コード(AB : absolute binary) 命令後のオペランドが絶対番地指定。
Presentation transcript:

コンピュータアーキテクチャ 第 4 回

SLA とオーバフロー 例:SLA GR5, 1 ・・・ (GR5) = (16384)10 オーバフロー: 演算結果本来の値が –32768 ~ 32767 の 範囲に収まらない現象 * 例:SLA GR5, 1 ・・・ (GR5) = (16384)10  ⇒ レジスタ GR5 の値 (16384)10 = #4000 を 2 倍する 16384 × 2 = 32768 は –32768 ~ 32767 の範囲外! ☆ SLA 命令でのオーバフローはいつも OF に反映されるとは限らない ☆ 最後のビットシフトで 1 が消失すれば OF に 1

SLA による負整数の 2 のべき乗倍 SLA GR3, 2 ・・・ (GR3) = -5 (-5)10 (-20)10 ☆ SLA 命令では OF が 1 でもオーバフローが発生したとは限らない

算術右シフト演算命令 SRA GR0, 3 ・・・ (Shift Right Arithmetic) 実効アドレス値だけ,レジスタの内容を 右へシフト * 最上位の符号ビットはシフトしない レジスタの右側から送り出されたビットの値は消失する OF にはレジスタから最後に送り出されたビットの値を入れる レジスタの左側の空いたビット位置には符号ビットと同じ値 を入れる

SRA による 2 のべき乗割り SRA GR3, 2 ・・・ (GR3) = (16)10 (4)10

SRA と端数切り捨て(切り上げ) SRA GR2, 2 ・・・ (GR2) = (9)10 レジスタから 1 の値が消失するとき, * 9 ÷ 4 = 2.25 の 0.25 は整数ではない レジスタから 1 の値が消失するとき, 符号ビットの値が 0 なら結果の *が起こり, 端数切り捨て 符号ビットの値が 1 なら結果の端数切り上げが起こる.

論理左シフト演算命令 SLL GR0, 3 ・・・ (Shift Left Logical) * 実効アドレス値だけ,レジスタの内容を 符号ビットも含めて左へシフト 最上位の符号ビットもシフトする レジスタの左側から送り出されたビットの値は消失する OF にはレジスタから最後に送り出されたビットの値を入れる レジスタの右側の空いたビット位置には 0 を入れる

論理右シフト演算命令 SRL GR0, 3 ・・・ (Shift Right Logical) 実効アドレス値だけ,レジスタの内容を符号ビットも含めて右へシフト 最上位の符号ビットもシフトする レジスタの右側から送り出されたビットの値は消失する OF にはレジスタから最後に送り出されたビットの値を入れる レジスタの左側の空いたビット位置には *を入れる

1 ワードのビット列に含まれる 1 の数を調べる プログラム ← GR1 をカウンタとして初期化 ← 結果を累積保存 ← GR7 の 1 ビットを右から押し出し * ← OF フラグによって場合分け * ← 終了判定 (GR1 = 16 ?)

演習問題 4.1 前出の <プログラム 8 > の開始から終了までに, GR1 およびフラグレジスタの値がどのように変化す るか順番に示せ.ただし,どちらかのレジスタが変 化するごとに示すこと.

演習問題 4.2 算術シフト演算命令実行時のオーバフローと フラグレジスタの OF の関係について述べよ.

演習問題 4.3 レジスタ GR1 が –21804 を格納しているとする.以下の各命令を実行したあとの GR1 の値を,-32768 から 32767 の 10 進数と見なして示せ.またフラグレジスタ (OF, SF, ZF) の値も示せ. SLA GR1, 3 SRA GR1, 3 SLL GR1, 3 SRL GR1, 3

演習問題 4.4 連続する 1 の系列を“1 のラン”という.またその系列の 1 の個数を“1 のランの長さ”という.前出の <プログラム 8 > を基にして,メモリの W 番地に格納された値 #6A7E に含まれる 1 のランの長さの最大値を調べて,メモリのN 番地に書き出すプログラム ROF1 を記述せよ.

演算結果が * に収まらなくなったとき OF が 1 論理加算命令・減算命令 ADDL GR2, #1000 ・・・ (ADD Logical) SUBL GR2, #1000 ・・・ (SUB Logical) 被演算データを とみて加算・減算 符号なし2進数 * 演算結果が * に収まらなくなったとき OF が 1 0 ~ 65535

論理比較命令 CPL GR2, #1000 ・・・ (ComPare Logical) 被演算データを 符号なし2進数 とみて比較 フラグレジスタ * にだけ結果が反映される 汎用レジスタ * には結果が反映されない 第1オペランド値が第2オペランド値より * SF が 1, そうでなければ 0 小さいとき 第1オペランド値と第2オペランド値が * ZF が 1, そうでなければ 0 等しいとき OF はつねに *

ノーオペレーション命令 NOP ・・・ (No OPeration) 1ワード命令 何もしない命令 コンピュータの動作の * を考慮するとき意味あり コンピュータの動作はクロックを基準にした * 何もしないステップを挿入することあり タイミング ステップ動作

プログラムの実行終了制御 プログラムの終了時 ・・・ RET 命令によって制御が分岐 どこへ? ⇒ そのアドレスはどこに記憶するのか? ⇒ どこへ? ⇒  そのアドレスはどこに記憶するのか? ⇒  その領域をどうやって知るのか? ⇒   * あらかじめ指定された分岐先アドレス #**** * メモリの特定領域 #???? スタックポインタが指示 * メモリ #1006 番地の RET 命令を実行 分岐先アドレスを スタックポインタが指示

最も簡単なシステム動作環境 プロセッサ外部から内部の値を直接制御可能 任意のアドレスのメモリ領域を外部から直接読み書き可能 専用の * プログラムレジスタ スタックポインタ 任意のアドレスのメモリ領域を外部から直接読み書き可能 専用の            * ユーザとコンピュータ内部を媒介する機構 プログラム実行終了制御 例 (1) RET 命令での分岐先 #**** に * ⇒ 無限の繰り返し命令 例 (2) RET 命令での分岐先 #**** に * ⇒ 合図があるまでプロセッサを停止する命令 その間に実行結果を読み出し(レジスタやメモリの値) インターフェース JUMP #**** HALT 命令

OS によるシステム動作環境 OS (Operating System) : プログラム実行終了制御 コンピュータシステム全体を管理 外部とのデータのやり取りの機能などを提供 入出力装置の制御 ユーザプログラムを適切なメモリ領域に自動的に割り付け ユーザプログラム : 実行時にユーザプログラムの先頭番地をプログラムレジスタに渡す プログラム実行終了制御 RET 命令での分岐先 #**** に ⇒ OS に制御を返す SVC 命令 (SuperVisor Call 命令): ユーザプログラムから OS の機能を呼び出す命令 マクロ命令 IN, OUT は SVC 命令を含む命令列に展開される 特定の仕事を実行するためのプログラム * * コンピュータの制御を受け継ぐ機能

スタック 先入れ後出しの記憶機構 ・・・ メモリ上に設定 領域は自動的に確保される ⇒ メモリのどのアドレスを使うか 先入れ後出しの記憶機構 ・・・ メモリ上に設定 領域は自動的に確保される    ⇒  スタックポインタ SP がスタックの           を記憶する アーキテクチャによっては最上位アドレスのひとつ上を記憶 データを格納するとスタックポインタは上位アドレスへ移動 データを取り出すとスタックポインタは下位アドレスへ移動 メモリのどのアドレスを使うか プログラマが考える必要はない * * 最上位アドレス

スタックの例 * プッシュダウン (Push Down) * ポップアップ (Pop Up)

スタック操作命令 PUSH adr, x ・・・ (PUSH effective addess) POP r ・・・ (POP up) 実効アドレスをスタックに格納 * スタックの最上位の内容を  レジスタ r に格納 *

スタックによる逆ポーランド記法式の計算 * (5-3)*2 ↓逆ポーランド記法 53-2*

演習問題 4.5 教科書の <プログラム 10 > の開始から終了まで に GR1 の値がどのように変化するか順番に示せ. ただし,AREA ではじまるメモリ領域には 53-2* の 文字列を入力するものとする.