2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.

Slides:



Advertisements
Similar presentations
平成 27 年 10 月 21 日. 【応用課題 2-1 】 次のビット列は、ある 10 進数を 8 ビット固定小数点表示で表した時の ものです。ただし、小数点の位置は 3 ビット目と 4 ビット目の間としてお り、負数は2の補数で表しています。このとき、元の 10 進数を求めてく ださい。
Advertisements

計算機システムⅡ 主記憶装置とALU,レジスタの制御
Ibaraki Univ. Dept of Electrical & Electronic Eng.
情報工学基礎(改訂版) 岡崎裕之.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
オリジナルなCPUの開発 指導教授:笠原 宏 05IE063 戸塚 雄太 05IE074 橋本 将平 05IE089 牧野 政道
計算機システムⅡ 命令セットアーキテクチャ
演算回路 <例題> 問題:1+2=3を計算する アドレス 内容 データ プログラム 10 11 12 ・ 19 1 2 (答え) 20 21
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
プログラムはなぜ動くのか.
計算機基礎Ⅱ,Ⅲ (指導書 pp. 76~94) 改訂:佐竹 純二 (作成:岡本 吉央).
2016年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
基本情報技術概論(第8回) 埼玉大学 理工学研究科 堀山 貴史
「ソフトウェアのしくみ」.
第7回 2006/6/12.
計算機入門I ハードウェア(1) 計算機のハードウェア構成 ~計算機のハードウェアとは何か~
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
高速剰余算アルゴリズムとそのハードウェア実装についての研究
勉強会その3    2016/5/1 10 8分35秒 データの表現 演算.
情報リテラシー2014 part 5/5 (亀田担当分最終回)
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
情報の授業 サイバースペースに飛び込もう  - CPU/機械語と二進数 – ・コンピュータはどうして動くの ・CPUの構造とプログラム ・どうして二進数を勉強するの 映画やアニメで近未来のサイバースペースを扱っているものは、何か1と0がいっぱいある画面が出てきませんか。実はこの0と1だけがコンピュータの中の世界にあるものです。
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
ディジタル回路の設計と CADによるシステム設計
計算機構成 第2回 ALUと組み合わせ回路の記述
9. 演算回路 五島 正裕.
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
プログラミング基礎a 第1回 ハードウェアとソフトウェア プログラミング総論 ~プログラミング言語とは~
情報とコンピュータ 静岡大学工学部 安藤和敏
先週の復習: CPU が働く仕組み コンピュータの構造 pp 制御装置+演算装置+レジスタ 制御装置がなければ電卓と同様
コンピュータアーキテクチャ 第 11 回.
コンピュータアーキテクチャ 第 10 回.
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
基本情報技術概論(第2回) 埼玉大学 理工学研究科 堀山 貴史
坂井 修一 東京大学 大学院 情報理工学系研究科 電子情報学専攻 東京大学 工学部 電気工学科
2013年度 プログラミングⅠ ~ 授業紹介 ~.
2012年度 情報科学序論 ~ 授業紹介 ~.
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 10 回.
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 4 回.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
計算機アーキテクチャ1 (計算機構成論(再)) 第一回 計算機の歴史、基本構成、動作原理
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
コンピュータアーキテクチャ 第 3 回.
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
コンピュータアーキテクチャ 第 2 回.
コンピュータアーキテクチャ 第 5 回.
計算機アーキテクチャ1 (計算機構成論(再)) 第二回 命令の種類と形式
コンピュータアーキテクチャ 第 4 回.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
9. 演算回路 五島 正裕.
情報コミュニケーション入門b 第2回 Part1 ハードウェアとソフトウェア
コンピュータアーキテクチャ 第 9 回.
コンピュータアーキテクチャ 第 3 回.
コンピュータアーキテクチャ 第 5 回.
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
情報コミュニケーション入門b 第2回 Part1 ハードウェアとソフトウェア
コンピュータアーキテクチャ 第 11 回.
ca-9. 数の扱い (コンピュータアーキテクチャとプロセッサ)
2014年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~.
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
2008年度 情報科学序論 ~ 授業紹介 ~.
情報システム基盤学基礎1 コンピュータアーキテクチャ編
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
Presentation transcript:

2017年度 プログラミングⅠ ~ 内部構造と動作の仕組み(1) ~

各装置の説明 2

+l ④ ① ② 命令 ③ 命令取り出し段階 3

+ ③ ① ② データ ④ ⑤ 命令実行段階 4

機械語とアセンブラ言語 高級言語 (ソフトウェア) C言語など 機械語 アセンブラ言語 (ソフトウェア) (ソフトウェア) 1対1 ・最終的には、機械語に変換される ・人間が扱いやすい 機械語 (ソフトウェア) アセンブラ言語 (ソフトウェア) 1対1 コンピュータ (ハードウェア) ・コンピュータの本質的命令 ・人間に比較的わかりやすい 5

COMETⅡとCASLⅡ COMETⅡ(コンピュータ;ハードウェア) COMETⅡは、実在しないコンピュータだが、コンピュータとしての五大機能を備えた仮想のコンピュータである。 CASLⅡ(アセンブラ言語;ソフトウェア) CASLⅡは、COMETⅡ上で動作する機械語に対応するアセンブラ言語である。 注意:CASLⅡの仕様書は、情報処理技術者試験を実施いている情報処理推進機構から入手できるほか、情報処理技術者試験の「案内書・願書」の巻末に記載されている。 また、CASLⅡのプログラミングを体験できるシミュレータも提供されている。  その他、多くの有志によってCASLⅡを学習できる教材がインターネット上で提供されているので、必要に応じて学習してもらいたい。 6

COMETⅡの主な仕様 1語は16ビット(負の数は2の補数で表す) 「#」が付加された数は16進数を表す(例:#01AC、#FFFF) 主記憶の容量は65536語で0~65535番地 逐次制御(命令語は1語長または2語長) 汎用レジスタは8つ(GR0~GR7) GR1~GR7は指標レジスタ(アドレスの修飾)として利用できる その他のレジスタ:スタックポインタ(SP)、プログラムレジスタ(PR)、フラグレジスタ(FR) フラグレジスタ(FR)の種類: OF (オーバフローフラグ) SF (サインフラグ) ZF (ゼロフラグ) 7

COMETⅡの命令(機械語命令) ロード、ストア、ロードアドレス命令 注意:ストア(STore)命令は代入方向が逆になる 算術、論理演算命令 比較演算命令 シフト演算命令(参考資料の3を参照のこと) 分岐命令 スタック操作命令(SP) コール、リターン命令(PR、SP) その他

命令に用いられる記号について r,r1,r2:汎用レジスタを示す(GR0~GR7) x:指標レジスタを示す(GR1~GR7) [ ]:省略できることを示す ( ):レジスタまたはアドレスに格納されている内容を示す 実効アドレス:次のスライドを参照のこと ←:演算結果(左辺)をレジスタまたはアドレス(右辺)に格納することを示す +,ー:それぞれ算術加算および算術減算を表す (補数で表された数の加算と減算) +L,ーL:それぞれ論理加算および論理減算を表す (全て正の数として表された数の加算と減算)

実効アドレス(adr)について 「実効アドレス」はメモリのアドレスを表し、0~65535の正の値として取り扱う 注意:数値として扱う場合もある 「(実効アドレス)」は実効アドレスが示すメモリのアドレスに格納された値を参照する 省略可能な指標レジスタ([,x])は実効アドレスを修飾するために用いられ、実効アドレス(adr)と指標レジスタ(x)に格納された値の論理加算を最終的な実効アドレスとする

実効アドレス(まとめ) 算術左シフト、算術右シフト、 論理左シフト、論理右シフト 数値 ストア、ロードアドレス、 正分岐、負分岐、非零分岐、 零分岐、オーバーフロー分岐、無条件分岐 アドレス 実効アドレス ロード、 算術加算、論理加算、算術減算、論理減算、 論理積、論理和、排他的論理和、 算術比較、論理比較 (実効アドレス) 注意:スタック操作命令(プッシュ、ポップ)、コール、リターン命令(コール、リターン)、その他(スーパバイザコール、ノーオペレーション)を除く

命令の具体例1 「LD GR0,GR1」 GR0←(GR1):汎用レジスタGR1に格納された値を汎用レジスタGR0に格納する 「LD GR0,adr」 GR0←(実効アドレス):実効アドレス(アドレス)adrに格納された値を汎用レジスタGR0に格納する 「ST GR0,adr」 実効アドレス←(GR0):汎用レジスタGR0に格納された値(アドレス)を実効アドレスadrが示すアドレスに格納する

命令の具体例2 「ADDA GR0,GR1」 GR0←(GR0)+(GR1):汎用レジスタGR0に格納された値と汎用レジスタGR1に格納された値を加算して、その結果を汎用レジスタGR0に格納する 「SUBL GR0,adr」 GR0←(GR0)-L(実効アドレス):汎用レジスタGR0に格納された値から汎用レジスタGR1に実効アドレスadrが示すアドレスに格納された値を減算して、その結果を汎用レジスタGR0に格納する 「AND GR0,GR1」 GR0←(GR0)AND(GR1):汎用レジスタGR0に格納された値と汎用レジスタGR1に格納された値の論理積をとり、その結果を汎用レジスタGR0に格納する(各桁ごとに論理積をとる)

命令の具体例3 「CPA GR0,GR1」 汎用レジスタGR0に格納された値と汎用レジスタGR1に格納された値を比較し、その結果によってフラグレジスタ(FR)の値を設定する(分岐命令を伴うのが一般的である) 「JPL adr」 フラグレジスタ(FR)が条件(SF=0かつZF=0)を満たすとき、実効アドレスadrが示すアドレスに分岐(ジャンプ)する(条件を満たさない場合は次の命令に進む)

命令の具体例4 「SLL GR0,adr」 汎用レジスタGR0に格納された値を実効アドレス(数値)adrが示すビット数だけ論理左シフトする(詳細については次のスライドを参照のこと) スタック操作命令、コール、リターン命令、その他の機能については、少し厄介になるので、概略を述べるにとどまることとする

シフト演算(まとめ) 算術左シフト(符号を変化させない) 算術右シフト(符号を変化させない) 論理左シフト 論理右シフト OF OF OF OF OF OF

フラグレジスタ(まとめ) フラグレジスタの設定 機械語命令(アセンブラ言語) 設定されることを示す 算術加算、論理加算、算術減算、論理減算 (ただし、OFには0が設定される) ロード、 論理積、論理和、排他的論理和、 算術比較、論理比較 (ただし、OFにはレジスタから最後に送り出されたビットの値が設定される) 算術左シフト、算術右シフト、 論理左シフト、論理右シフト 実行前の値が保持される ストア、ロードアドレス、 正分岐、負分岐、非零分岐、 零分岐、オーバーフロー分岐、無条件分岐、 プッシュ、ポップ、 コール、リターン、 スーパバイザコール、ノーオペレーション