Microprocessor(Lecture 1) Hiroshi Higashi 1
Introduction 情報 知能 学系学 実験サイト http://www.cs.tut.ac.jp/jikken/ 実験の説明資料などは Web 上で公開中 https://cs.tut.ac.jp/~higashi/class.html 実験レポートの受け取りはメールにて う higashi@tut.jp レポートは 本語でも英語でも可 質問がある場合は F2( 総研棟 )-73-1 を訪問するか, E-mail で回答します. 2
程 (see p. 26) Week 1 Week 2 Week 3 Lecture 1: イントロダクション Problem 3.1: 加算 Problem 3.3 (1): 単 の出 Lecture 2: Basic Programming Problem 3.2: 乗算 Lecture 4: Applied programming Problem 3.3 (2): メロディの出 第 2 回以降は予習 ( プログラムの準備 ) が必須 3
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 4
Relationships between a computer and a user User Input どのような仕組みで動いているのか? Output Computer 5
Hardware Input devices Output deivices Storage Processing Unit 6
Software Input devices Output deivices Application program System program Storage Processing Unit 7
Question 処理装置 (CPU) はプログラム ( ソフトウェア ) をどのように解釈しているのか? 級 語によるプログラム 機械語によるプログラム 8
( 今のところの ) 回答 コンパイラ, アセンブラと呼ばれるプログラムを変換するプログラムを使う assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 9
機械語とは何か? CPU が直接理解し実 できる 語のこと プログラムは と 1 の列から構成される CPU ごとに異なる assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 1
級 語とは何か? 間が使いやすいプログラミング 語 C,C++,Java,Perl など CPU ごとに異ならない ( 共通 ) assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 11
アセンブリ 語とは何か? 機械語を 間にわかりやすくした 語 命令が機械語と ( ほぼ ) 1 対 1 に対応 CPU ごとに異なる assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 12
コンパイルとは何か? 級 語によるプログラムをアセンブリ 語によるプログラムに ( または機械語によるプログラムに ) 翻訳すること assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 13
アセンブルとは何か? アセンブリ 語によるプログラムを機械語によるプログラムに翻訳すること assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 14
この実験の流れ 1. アセンブリ 語によるプログラミング 2. 作成したプログラムのアセンブル ( 作業 ) 3. 実 ( 動作の理解 ) assemble アセンブリ 語によるプログラム 機械語によるプログラム 15
Device used in this theme KUE-CHIP2 教育 の 8 ビットマイクロプロセッサ = CPU 8 bits = 1 byte 1 1 1 13h 16 進数であることを す他にも 13H,x13 など 16
Structure of KUE-CHIP2 (p.22 Fig. 1) 17
KUE-CHIP2: bus バス : 部分と CPU 内部を結ぶ 出 バス : 出 部分と CPU 内部を結ぶ 18
KUE-CHIP2: ALU 演算ユニット (Arithmetic and Logic Unit) 算術演算, 論理演算, アドレスの計算を う 19
KUE-CHIP2: ACC アキュムレータ (accumulator) 演算に利 するレジスタ.8 ビット 演算対象, 演算結果を保持 2
KUE-CHIP2: IX インデックスレジスタ (index register) 演算に利 するレジスタ.8 ビット 演算対象, 演算結果を保持 修飾アドレス指定のときのアドレス修飾にも使 21
KUE-CHIP2: FLAG Flag register 演算 シフト結果により変化.4 ビット - - - - CF VF NF ZF 桁上がりフラグ桁あふれフラグ負フラグ p.22 Fig. 2 ゼロフラグ 22
KUE-CHIP2: PC プログラムカウンタ (program counter) 次に実 する命令のメモリ上での アドレスを保持.8 ビット 23
KUE-CHIP2: MAR メモリアドレスレジスタ メモリ操作の対象とするアドレスを保持. 8 ビット 24
KUE-CHIP2: Internal memory ( 内部メモリ ) 512 バイト. バイト単位の番地指定 プログラム領域 : 255 番地 データ領域 :256 番地 511 番地 511 1FF ~ データ領域 256 1 255 ~ FF プログラム領域 111 p.23 Fig. 3 25
KUE-CHIP2 のアセンブリ 語 命令の種類 :p.24 表 1 を参照 語仕様 : p.35 38 付録 A を参照 機械語フォーマット :1 バイトか 2 バイト (p.23 図 4 を参照 ) 26
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h 機械語によるプログラム アセンブリ 語によるプログラム Assemble 27
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h 1 という値を ACC に格納する h は 16 進数 (hexadecimal) を表す 28
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h ACC の内容を出 バッファ (OBUF) に出 する 29
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h ACC の内容を論理左回転し,ACC に入れる 1 1 3
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h 常に 2 番地へ戻る 31
How to assemble (1/4) Command table (p.37, Table 8) Assembly LD ACC,1h 1 1 1-1 Rsm 1 A 1 s m Rotate sm LD 1 1 A B LoaD ST 1 1 1 A B STore SBC 1 A B SuB with Carry 32
How to assembly (1/4) Command table (p.37, Table 8) Assembly LD ACC,1h コード中で命令語の直後に置かれている値 1 1 1-1 A = :ACC A = 1:IX A B B = :ACC B = 1:IX B = 1-:Immediate ( 即値 ) B = 1:Direct ( 直接 )(P) B = 11:Direct(D) B = 11:Indexed ( 修飾 )(P) B = 111:Indexed(D) 33
How to assembly (1/4) Command table (p.37, Table 8) Assembly LD ACC,1h 1 1 1-1 34
How to assembly (2/4) Command table (p.37, Table 8) Assembly OUT 1 - - - 1 1 - - - - OUT 1 - - - OUTput IN 1 1 - - - INput RCF 1 - - - Reset CF 35
How to assembly (3/4) Command table (p.37, Table 8) Assembly RLL ACC 1 1 1 1 Rsm 1 A 1 s m Rotate sm LD 1 1 A B LoaD ST 1 1 1 A B STore SBC 1 A B SuB with Carry 36
How to assembly (3/4) Command table (p.37, Table 8) Assembly RLL ACC 1 1 1 1 A A = :ACC A = 1:IX 37
How to assembly (3/4) Command table (p.37, Table 8) Assembly RLL ACC 1 1 1 1 s m RA Right Arithmetically LA 1 Left Arithmetically RL 1 Right Logically LL 1 1 Left Logically 38
How to assembly (4/4) Command table (p.37, Table 8) Assembly BA 2h 1 1 1 RCF 1 - - - Reset CF SCF 1 1 - - - Set CF Bcc 1 1 c c Branch cc Ssm 1 A s m Shift sm 39
How to assembly (4/4) Command table (p.37, Table 8) Assembly BA 2h 1 1 1 c c A Always VF 1 on overflow NZ 1 on Not Zero Z 1 1 on Zero 4
Example (p.3, List 2) address data command operands : 11 1-1 LD ACC, 1h 2: 1 --- OUT 3: 1 111 RLL ACC 4: 11 1 BA 2h - は do not care を表す. か 1 で置き換える ( どちらでもよい ) 41
Example (p.3, List 2) address : data 11 1 1: 1 command LD operands ACC, 1h 2: 1 OUT 3: 4: 1 11 111 5: 1 RLL BA ACC 2h Finish to assemble 42
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 43
Execution of programs 第 2.5 節に沿って う (p.26 32) 注意点 : 電源器とボードを接続してからコンセントに繋ぐこと コンセントは机に固定されたものに繋ぐこと ( 転落防 ) 電源スイッチ横のコンデンサに指をかけないこと プログラムの実 前に RESET を押すこと 全員確認できたら次の説明へ 44
操作 法の補 SS スイッチで実 さらに SS スイッチを押すと停, 再開 CLKFRQ のダイヤルを回すと実 速度が変化 RESET SEL スイッチを操作して ACC を表 SI スイッチでステップ実 (1 命令ずつ ) SEL スイッチを操作して PC を表 SI スイッチでステップ実 (1 命令ずつ ) 45
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 46
命令はどのように実 されるか? クロックに沿って実 クロック 1 周期分 1 つの実 フェーズ KUE-CHIP2 の各命令は 3 から 5 フェーズ P,P1: 各命令で共通 P2 以降 : 各命令で異なる p.25, Table 2 47
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END D1 を たら 8h だと思う ( 変数宣, 初期化のようなもの ) 48
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END メモリのプログラム領域 D1 番地の内容を ACC に格納する 49
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END メモリのプログラム領域 D2 番地の内容と ACC の内容を加算する 5
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END メモリのプログラム領域 ANS 番地に ACC の内容を格納する 51
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END プログラムの実 を停 する 52
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT 8: 3 81: FD END メモリ 8 番地の内容を 3 とし, 81 番地の内容を FD(-3) とする 53
Example for trace of the execution (p.26, List 1) address data label command operands D1: EQU 8h D2: EQU 81h ANS: EQU 82h : 64 8 LD ACC,[D1] 2: B4 81 ADD ACC,[D2] 4: 74 82 ST ACC,[ANS] 6: F HLT END 8: 3 81: FD アセンブル結果の 16 進表 54
Trace of the execution LD ACC,[D1] A B p.25 Table 2 B によって実 の 順が変わる P P1 P2 P3 P4 LD ACC IX d [d] (d) (PC) MAR PC++ (Mem) IR (A) B (PC) MAR PC++ (Mem) A (Mem) MAR (Mem) A 55
Trace of the execution LD ACC,[D1] : 64 1: 8 2: B4... 8: 3 81: FD 56
Trace of the execution LD ACC,[D1] P: (PC) MAR, PC++ : 64 1: 8 2: B4... 8: 3 81: FD 57
Trace of the execution LD ACC,[D1] P: (PC) MAR, PC++ 1 : 64 1: 8 2: B4... 8: 3 81: FD 58
Trace of the execution LD ACC,[D1] P1: (Mem) IR 1 : 64 1: 8 2: B4... 8: 3 81: FD 59
Trace of the execution LD ACC,[D1] P1: (Mem) IR 64 1 : 64 1: 8 2: B4... 8: 3 81: FD 6
Trace of the execution LD ACC,[D1] P2: (PC) MAR, PC++ 64 1 1 : 64 1: 8 2: B4... 8: 3 81: FD 61
Trace of the execution LD ACC,[D1] P2: (PC) MAR, PC++ 64 2 : 64 1: 8 2: B4... 8: 3 81: FD 62
Trace of the execution LD ACC,[D1] P3: (Mem) MAR 64 2 1 : 64 1: 8 2: B4... 8: 3 81: FD 63
Trace of the execution LD ACC,[D1] P3: (Mem) MAR 64 2 8 : 64 1: 8 2: B4... 8: 3 81: FD 64
Trace of the execution LD ACC,[D1] P4: (Mem) A 64 2 8 : 64 1: 8 2: B4... 8: 3 81: FD 65
Trace of the execution LD ACC,[D1] P4: (Mem) A 3 64 2 8 : 64 1: 8 2: B4... 8: 3 81: FD 66
Flag register Carry Flag, CF ( 桁上がりフラグ ) 演算結果に桁上がりが じると CF = 1. Overflow Flag, VF ( 桁あふれフラグ ) 演算結果に桁あふれが じると VF = 1. Negative Flag, NF ( 負フラグ ) 演算結果が負になると NF = 1 Zero Flag, ZF ( ゼロフラグ ) 演算結果がゼロになると ZF = 1. p.22 Fig. 2 67
Problem 3.1 (p.33) (1) 実 開始から実 終了まで, 観測可能なレジスタ, バスをトレース (2)--(6) ADD 開始前から ADD 終了後まで, フラグレジスタのみをトレース ADD 命令を ADC 命令に変更して,ADC 開始前から ADC 終了後まで, フラグレジスタのみをトレース それぞれの加算結果も確認 記録すること 68
Problem 3.1: Caution 1/2 16 進数 64,2 進数では? 8 番地に値を れるには, まず MAR を操作 毎回, まず計算結果を確認 ( 記録 ) すること 6 と b の読み間違いに注意 69
Problem 3.1: Caution 2/2 負の数は 2 の補数表現 + 3-3 1 1 1 1 1 1 1 1 1 1 7
Points for report (1) 各命令の各フェーズでの動作についてテキスト p.24 28 を参考に図などを使いながら 章で説明すること レポート作成補助 : 図や資料のデータを配布中 http://www.cs.tut.ac.jp/~higashi/class/ (2)--(6) 各フラグがどのような時に変化するのか,ADD 命令と ADC 命令の違いもまとめること 71
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 72
DAC に関する注意 使 する DA コンバータはとても壊れやすいので, 事に扱うこと ( むやみに触らない ) 特に, 取り付け部分周辺の配線に注意 取り付け & 取り外しは教員 TA が います 73
繋ぎ Connect the DAC to the oscilloscope; channel 1 Red channel 2 Blue ground Black ダイヤルCLKFRQを 1 にして実 74
Digital to analogue value 出 バッファに DA コンバータを付けて出 信号をオシロスコープへ DA コンバータ (DAC): ディジタル信号をアナログ信号に変換する回路 111 a DA converter 13, 1 の 4 桁の信号 16 段階の値 75
Output a melody Output waves from KUE-CHIP2 to generate a sound from a speaker. KUE-CHIP2 から波を出 し, スピーカから を出す 今 : を出す仕組みの基礎を学び, 単 を出 する 3 周 : メロディー出 プログラムの実 76
What is sound? は空気の振動 ( 波 ) の三要素 きさ : 波の振幅の きさ さ : 波の周波数の さ : 波の形 スピーカ : 電気信号を ( 空気振動 ) に変換する装置 77
Waves to generate Rectangular wave Wave period ( 周期 ) T (s) On Ta (s) Tb (s) Off T = Ta + Tb 78
Wave generation (p.39, List 4) Address label instruction operand # of phases : L: LD ACC, FFh 4 2: OUT 4 3: LD ACC, a 4 5: L1: SUB ACC, 1h 4 7: BNZ L1 4 9: LD ACC, h 4 B: OUT 4 C: LD ACC, b 4 E: L2: SUB ACC, 1h 4 1: BNZ L2 4 12: BA L 4 分で決める 分で決める 79
Wave generation (p.39, List 4) Address label instruction operand # of phases : L: LD ACC, FFh 4 2: OUT 4 3: LD ACC, a 4 5: L1: SUB ACC, 1h 4 波の On 部を作る 7: BNZ L1 4 9: LD ACC, h 4 B: OUT 4 C: LD ACC, b 4 E: L2: SUB ACC, 1h 4 波の Off 部を作る 1: BNZ L2 4 12: BA L 4 8
Waves to generate Rectangular wave Wave period T (s) On Ta (s) Tb (s) T = Ta + Tb In the list 4, Ta = (12+8a)T,Tb = (16+8b)T (where T = time for 1 clock) Off 81
Problem 3.3 (1) p.33 (a) オシロスコープでクロック周期を確認 スイッチ CLK を中 に ダイヤル CLKFRQ の 8 の周波数を測定 信号は JP3( 右列の上から 2 番 ) より出 (b) リスト 4 の a, b を設定する 出 する の周波数 :44 Hz ラ 最適な T,a,b を計算によって定める T = Ta + Tb, T = 1/44 (s) Ta = (12+8a)T,Tb = (16+8b)T 82
Problem 3.3 (1) p.33 (c) 44 Hz の の出 リスト 4 の CLKFRQ の設定 DA コンバータを通して, オシロスコープで周波数を確認 出 が 44 Hz ( 誤差 ±1%) であることを 計算によって確認 83
Notes for your report for (3) メロディの出 (a) 誤差 ±1% の確認 どのように最適な T, a, b を計算したか? 計算過程を記述すること どのように確認を ったか? 実際に誤差を計算すること 他の精度確認 法は考えられるか 84
Notes for your report for (3) メロディ出 (b) 精度をより上げるための対策 KUE-CHIP2 だけで対処する場合 ( ソフトウェア上, プログラム上の 夫 ) その他の機器を KUE-CHIP2 に接続する場合 ( ハードウェア上の 夫 ) メロディー出 の基本的なアルゴリズムはそのまま出 周波数を 44 Hz に近づける 法 85
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 86
Next class: Problem 3.2: Multiplication 符号なし 2 バイト精度の 2 数の積 データを格納する番地はテキスト通りでなくても良い 演算結果は 2 バイトに収まると仮定 Preparations Prepare and assemble a program 81h 83h 85h 8h 82h 84h 87
補 : 符号無し 2 バイトの乗算 Most significant bit (MSB) 1 1 Least significant bit (LSB) 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 byte = 8 bits メモリ上での順序に注意 88
補 : アドレスモード オペランド ( 引数 ) の表現 法のこと KUE-CHIP2 のアドレスモード (p.29 31 参照 ) ACC,IX:ACC,IX の内容がデータ 即値 : オペランドそのものがデータ 直接 : オペランドがメモリのアドレス. そのアドレス上の内容がデータ 修飾 : オペランド +IX の内容 がメモリのアドレス. そのアドレス上の内容がデータ 89
補 : 命令について (p.24) ADD: 加算命令.CF を考慮しない ADC: 加算命令.CF を考慮する SUB と SBC も同様の関係. RCF: CF をリセットする 9
Notes 必ずプログラムを準備してくること! まずはフローチャートを作成すること 授業開始時 ( 中 ) に問題がないか確認する プログラムとフローチャートは別の紙に 遅刻や準備不 に対する救済は わない できなかった分は減点, 最悪の場合は不受理 91
フローチャートの例 1 バイトの乗算 A Initialization C B C End decision B =? Y End HLT プログラムの流れを 然 語で図 する N Add A to C C + A C Sub 1 from B B - 1 B 92
Example of addition with 2 byte precision level A1 A2 Addition RCF + B1 B2 C1 C2 CF Carry over CF A2 + C2 + C2 A1 + C1 + CF C1 End HLT LD ADC ST LD ADC ST HLT ACC, [A2] ACC, [B2] ACC, [C2] ACC, [A1] ACC, [B1] ACC, [C1] 93
Notes for making programs 他 が て分かるように書くこと 必ず紙に 書き or 印刷してくること 紙の両 を使わない アセンブリ 語と機械語は横に揃える 修正 のスペースも 意しておく 機械語は 2 進 16 進のどちらでも良いが,16 進数なら確認しやすい 94
アセンブリ 語と機械語は横に揃える : 2 RCF 1: 64 8 LD ACC, [A2] 3: 94 82 ADC ACC, [B2] 5: 74 84 ST ACC, [C2] 7: 64 81 LD ACC, [A1] 9: 94 83 ADC ACC, [B1] B: 74 85 ST ACC, [C1] D: 8 HLT address 95
よくある間違い 81h 8h 2バイトのデータの取扱い 上位 下位バイトの番地の誤り 初期化のし忘れ SUM += A 繰り上げの失敗 (ADD, ADC, RCF) 終了判定の誤り LD ではZeroFlagは たない データの保存 (ST) のし忘れ 85h 84h アドレスが16 進数ではなく1 進数になっている 83h 82h 96
エミュレータを使った準備 A KUE-CHIP2 Emulator http://www.vector.co.jp/soft/winnt/util/se5613.h tml A KUE-CHIP2 web assembler http://www.hpc.se.ritsumei.ac.jp/kue-chip2/kue2- webasm/ 97
今 やること 導 KUC-CHIP2 の基本的な使い Problem 3.1 ADD と ADC を実 しながら,ACC, PC, FLAG などの値を記録する. Problem 3.3 (1) クロック周波数を記録する できるだけ 44 Hz に近い単 を出 する 次の課題の説明 98
Microprocessors (Lecture 2) 99
Lecture 2 Problem 3.2 乗算プログラムの作成 符号なし 2 バイト精度の 2 数の積 データを格納する番地はテキスト通りでなくても良い 演算結果は 2 バイトに収まると仮定 必須の予習 : プログラムの作成とアセンブル 1
よくある間違い 81h 8h 2バイトのデータの取扱い 上位 下位バイトの番地の誤り 初期化のし忘れ SUM += A 繰り上げの失敗 (ADD, ADC, RCF) 終了判定の誤り LD ではZeroFlagは たない データの保存 (ST) のし忘れ 85h 84h アドレスが16 進数ではなく1 進数になっている ミス, アセンブルの誤り 83h 82h 11
Procedure 各 の作成したプログラムを 中にフローチャートをチェック ホワイトボードの (1) (4) で動作確認 それらが正しく計算できたら (A) と (B) を計算. 実 時間を計測 (1 Hz で ) ホワイトボードに実 時間とプログラムのメモリ消費量 ( 単位 : バイト ) を記 メモリ消費量 = プログラム部分 + データ格納部分 12
実 時間の理論値 分のプログラムについて実 時間の理論値を求め, 実測値と 較せよ 順 1) 実 時間を決めるパラメータを特定 各命令のフェーズ数 (p.18 表 2) 1 フェーズ = 1 クロック周期 クロック周波数 = 1 Hz 順 2) 実 時間を求める計算式を導出 順 3) 式から (A),(B) の実 時間理論値を算出 順 4) 理論値と実測値の 較 13
Notes for your report 使 したプログラムのリストを載せ, フローチャートを いて説明せよ 他の ( 最低 2 ) のプログラムと 較 論点 1: 実 時間 ( 実測値で可 ) 論点 2: プログラムのメモリ消費量 注意 : 他の のプログラムは掲載不要だが, 簡単な説明は記述すること 14
For the next lecture Problem 3.4 (2) Output a melody 必須の予習 : プログラムの作成とアセンブル 参考 : Appendix B.2 and list 5 (p.41) 楽譜データを 意するだけではダメ List 5 のプログラムに改造が必要 時間内に完成しなかった場合は打ち切りデバッグのサポートはできるが, プログラムが無い場合はサポートできない 15
Notes メロディーの出 は無限に繰り返すこと 最も 周波 低周波な でも可聴領域を超えない p.4 表 13 階の周波数 を参考に 1 オクターブ い 周波数が 2 倍 リスト 5 に改造が必要な部分 休符 はどうすれば実現できるか 符と休符を判別し, 別処理が必要 同じ が続くと 1 つの い に聞こえる と の間に空 が必要 16
Generation of a melody (list 5) Program region : 62 LD ACC, dptr1 2: 75 1A ST ACC, (dptr) 4: 65 1A L: LD ACC, (dptr) 6: 68 LD IX, ACC 7: B2 3 ADD ACC, x3 9: 75 1A ST ACC, (dptr) B: A2 18 SUB ACC, dptr2 D: 31 13 BNZ L1 F: 62 LD ACC, dptr1 11: 75 1A ST ACC, (dptr) 13: 67 2 L1: LD ACC, (IX+2) 15: 75 1C ST ACC, (n3) Data region 1: n1 n2 n3 dptr1: C 13: n1 n2 n3 D 16: n1 n2 n3 の先頭 E 19: n1 n2 n3 F 1C: n1 n2 n3 G 1F: n1 n2 n3 A 112: n1 n2 n3 B 115: n1 n2 n3 C 118: dptr2: (not used) 119: or ff image Output 11A:?? の終わり dptr 11B:?? n2 11C:?? n3 どの を鳴らすか (3 ずつ増える ), 1A, 1C, 18はデータ領域のアドレスを指している ( 分のプログラムに合わせて設定 ) n1は の さ,n2 n3は さ (2 重ループ ) 実 時に使 17
Microprocessors (Lecture 3) 18
Problem 3.3 (2) Output a melody 簡単なメロディーを出 させる 必須の予習 : プログラムの作成とアセンブル Reference: Appendix B.2 and list 5 (p.41) DA コンバータの取扱いに注意 19
Notes for your report (4)(c) 各 のデータ表現の特徴をプログラムを載せて説明せよ 例えば, 楽譜 は 間に理解しやすいようにメロディーを表現している どのような表現なら理解しやすいのか 11
Notes for your report (4)(d) 作成したメロディー出 法は他の CPU にも流 できるか? 他の CPU の例を 1 つ挙げて考察 挙げた CPU の実 命令フェーズを調べ, それを踏まえて考察 111
Notes for your report (5) ) 分が最も使 している CPU ( または, 有名な CPU) について, そのアーキテクチャを調べてまとめる レジスタ, 命令セット, メモリ空間の特徴 乗算命令がどのように実 されているか 任意の課題 ( 必須ではない ) やらなくても良いが, この課題は加点対象 112
Summary 4G = 4 124 124 124 = 2 2 2 1 2 1 2 1 = 2 32 計算機の仕組みについて理解 例えば, なぜ 32bit の OS では 4G 以上のメモリが使えないのか? プログラムの作り やデバッグの練習 assemble compile 級 語によるプログラム アセンブリ 語によるプログラム 機械語によるプログラム 113
Report submission 1/3 指導書 p.6 をよく読むこと PDF ファイルをメール (higashi@tut.jp) で提出 表紙は 作のものでも構わない 実験 法について, 指導書を丸写しする必要はない この資料の 検討事項のポイント を参考に 必ず 点検票をチェック ( 提出は不要 ) 114
Report submission 2/3 提出〆切は 1 週間後の 23:59 ( 時間厳守 ) 病気等の例外を除き, 〆切の延 はしない 受理されたものへの改善 修正は可 ( 週間以内 ) 未完成のもの ( 途中までしかないもの ) は不受理 115
Report submission 3/3 メールの件名 : [report] [student ID] [your name] [ レポート ]-B123456- 豊橋太郎 レポートは PDF に変換 添付ファイル名は : [Your school register number]-[your name].pdf. B123456- 豊橋太郎.pdf 3 たっても確認メールが届かない場合は, F2( 総研棟 )-73-1 へ 分からないことがあれば何でも質問すること 116