H2 :マイクロプロセッサ

107
1 H2 マママママママママ ママ ママ

description

H2 :マイクロプロセッサ. 岡本 吉央. 日程. 第1回 イントロダクション マイクロ動作の理解. 第2回 基本プログラミング (2 バイト乗算 ). 第3回 応用プログラミング ( 図形描画 ). 第4回 応用プログラミング ( メロディー出力 ). コンピュータの利用. ユーザ. 入力. どのような仕組みで動いているのか ?. 出力. コンピュータ. コンピュータ・ハードウェア. 記憶装置. 入力装置. 処理装置. 出力装置. コンピュータ・ソフトウェア. 記憶装置. 入力装置. アプリケーションプログラム. - PowerPoint PPT Presentation

Transcript of H2 :マイクロプロセッサ

Page 1: H2 :マイクロプロセッサ

1

H2 :マイクロプロセッサ

岡本 吉央

Page 2: H2 :マイクロプロセッサ

2

日程

第1回

イントロダクションマイクロ動作の理解

第2回

基本プログラミング(2 バイト乗算 )

第3回

応用プログラミング( 図形描画 )

第4回

応用プログラミング( メロディー出力 )

Page 3: H2 :マイクロプロセッサ

3

コンピュータの利用

ユーザ

コンピュータ

入力

出力

どのような仕組みで動いているのか ?

Page 4: H2 :マイクロプロセッサ

4

コンピュータ・ハードウェア

入力装置

出力装置

記憶装置

処理装置

Page 5: H2 :マイクロプロセッサ

5

コンピュータ・ソフトウェア

入力装置

出力装置

記憶装置

処理装置

アプリケーションプログラム

システムプログラム

Page 6: H2 :マイクロプロセッサ

6

疑問

処理装置 (CPU) はプログラム (≒ ソフトウェア ) をどのように解釈しているのか ?

高級言語によるプログラム

機械語によるプログラム

Page 7: H2 :マイクロプロセッサ

7

( 今のところの ) 回答

コンパイラ,アセンブラと呼ばれるプログラムを変換するプログラムを使う

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 8: H2 :マイクロプロセッサ

8

ことばの整理:機械語

CPU が直接理解し実行できる言語のこと

プログラムは 0 と 1 の列から構成される

CPU ごとに異なる

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 9: H2 :マイクロプロセッサ

9

ことばの整理:高級言語

人間が使いやすいプログラミング言語C , C++ , Java , Perl などCPU ごとに異ならない

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 10: H2 :マイクロプロセッサ

10

ことばの整理:アセンブリ言語

機械語を人間にわかりやすくした言語命令が機械語と ( ほぼ ) 1 対 1 に対応CPU ごとに異なる

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 11: H2 :マイクロプロセッサ

11

ことばの整理:コンパイル

高級言語によるプログラムをアセンブリ言語によるプログラムに( または機械語によるプログラムに )

翻訳すること

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 12: H2 :マイクロプロセッサ

12

ことばの整理:アセンブル

アセンブリ言語によるプログラムを機械語によるプログラムに翻訳すること

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 13: H2 :マイクロプロセッサ

13

ことばの整理:逆アセンブル

機械語によるプログラムをアセンブリ言語によるプログラムに翻訳すること

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

逆アセンブル

Page 14: H2 :マイクロプロセッサ

14

この実験の流れ

1. アセンブリ言語によるプログラミング

2. 作成したプログラムのアセンブル( 手作業 )

3. 実行

Page 15: H2 :マイクロプロセッサ

15

コンピュータ・ソフトウェア

入力装置

出力装置

記憶装置

処理装置

アプリケーションプログラム

システムプログラム

Page 16: H2 :マイクロプロセッサ

16

この実験で用いるハードウェア

KUE-CHIP2教育用の 8 ビットマイクロプロセッサ

マイクロプロセッサ ≒ CPU

Page 17: H2 :マイクロプロセッサ

17

KUE-CHIP2 の構造 (p. 14 ,図 1)

Page 18: H2 :マイクロプロセッサ

18

KUE-CHIP2 の各部:バス

入力バス:入力部分と CPU 内部を結ぶ出力バス:出力部分と CPU 内部を結ぶ

Page 19: H2 :マイクロプロセッサ

19

KUE-CHIP2 の各部: ALU

Arithmetic and Logic Unit の略演算論理装置算術演算,論理演算,アドレスの計算を

行なう

Page 20: H2 :マイクロプロセッサ

20

KUE-CHIP2 の各部: ACC

アキュムレータ (accumulator) 演算に利用するレジスタ. 8 ビット演算対象,演算結果を保持

Page 21: H2 :マイクロプロセッサ

21

KUE-CHIP2 の各部: IX

インデックスレジスタ (index register) 演算に利用するレジスタ. 8 ビット演算対象,演算結果を保持修飾アドレス指定のときのアドレス修飾

にも使用

Page 22: H2 :マイクロプロセッサ

22

KUE-CHIP2 の各部: FLAG

フラグレジスタ (flag register) 演算・シフト結果により変化. 4 ビット

0 0 0 0 CF VF NF ZF

桁上がりフラグ桁あふれフラグ

負フラグゼロフラグ

Page 23: H2 :マイクロプロセッサ

23

KUE-CHIP2 の各部: PC

プログラムカウンタ (program counter)

次に実行する命令のメモリ上でのアドレスを保持. 8 ビット

Page 24: H2 :マイクロプロセッサ

24

KUE-CHIP2 の各部: MAR

メモリアドレスレジスタメモリ操作の対象とするアドレスを保持.

8 ビット

Page 25: H2 :マイクロプロセッサ

25

KUE-CHIP2 の各部: IR

命令レジスタメモリから読み出した命令を保持.

8 ビット

Page 26: H2 :マイクロプロセッサ

26

KUE-CHIP2 の各部:内部メモリ

512 バイト.バイト単位の番地指定プログラム領域: 0 ~ 255 番地

プログラムまたはデータの格納データ領域: 256 番地~ 511 番地

データの格納

Page 27: H2 :マイクロプロセッサ

27

KUE-CHIP2 でのプログラミング

独自のアセンブリ言語で行なうプログラムはメモリのプログラム領域に

置かれる  ( プログラム内臓方式 )0 番地に置かれた命令から順番に

実行される

Page 28: H2 :マイクロプロセッサ

28

KUE-CHIP2 のアセンブリ言語

命令: 1 バイトか 2 バイト命令の種類: p16 ,表 1 を参照言語仕様:附録 A を参照

Page 29: H2 :マイクロプロセッサ

29

プログラム例 (p23 ,リスト 2)

02hBA001000000000001104:

ACCRLL0111010003:

OUT0---000102:

ACC, 01hLD00010000001-011000:

オペランド命令データアドレス

「 01 」という値を ACC に格納するACC の内容を出力バッファ (OBUF) に出力するACC の内容を論理左回転し, ACC に入れる常に 02 番地へ戻る アセンブリ言語によるプログラム

機械語によるプログラム

アセンブラ

Page 30: H2 :マイクロプロセッサ

30

アセンブルの方法 (1/4)

p29 , A.2 命令セットを参照「 LD ACC,01h 」のアセンブル

Rsm 0 1 0 0 A 1 s m × Rotate sm

LD 0 1 1 0 A B ○ LoaD

ST 0 1 1 1 A B ◎ STore

SBC 1 0 0 0 A B ○ SuB with Carry

10000000-1000110

A BA = 0:ACC

A = 1:IX

B = 000:ACC

B = 000:IX

B = 01-: 即値B = 100: 直接 (P)B = 101: 直接 (D)B = 110: 修飾 (P)B = 111: 修飾 (D)

Page 31: H2 :マイクロプロセッサ

31

アセンブルの方法 (2/4)

p29 , A.2 命令セットを参照「 OUT 」のアセンブル

0 1 0 1 - - - - ×

OUT 0 0 0 1 0 - - - × OUTput

IN 0 0 0 1 1 - - - × INput

RCF 0 0 1 0 0 - - - × Reset CF

---01000

Page 32: H2 :マイクロプロセッサ

32

アセンブルの方法 (3/4)

p29 , A.2 命令セットを参照「 RLL ACC 」のアセンブル

Rsm 0 1 0 0 A 1 s m × Rotate sm

LD 0 1 1 0 A B ○ LoaD

ST 0 1 1 1 A B ◎ STore

SBC 1 0 0 0 A B ○ SuB with Carry

11100010

A sA = 0:ACC

A = 1:IX

m

RA 0 0 Right Arithmetically

LA 0 1 Left Arithmetically

RL 1 0 Right Logically

LL 1 1 Left Logically

Page 33: H2 :マイクロプロセッサ

33

アセンブルの方法 (4/4)

p29 , A.2 命令セットを参照「 BA 02h 」のアセンブル

RCF 0 0 1 0 0 - - - × Reset CF

SCF 0 0 1 0 1 - - - × Set CF

Bcc 0 0 1 1 c c ◎ Branch cc

Ssm 0 1 0 0 A 0 s m × Shift sm

00001100

cc

01000000

A 0 0 0 0 Always

VF 1 0 0 0 on oVerFlow

NZ 0 0 0 1 on Not Zero

Z 1 0 0 1 on Zero

Page 34: H2 :マイクロプロセッサ

34

プログラム例 (p23 ,リスト 2)

02hBA001000000000001104:

ACCRLL0111010003:

OUT0---000102:

ACC, 01hLD00010000001-011000:

オペランド命令データアドレス

「 - 」は 0 か 1 で置き換える ( どちらでもよい )

Page 35: H2 :マイクロプロセッサ

35

プログラム例 (p23 ,リスト 3)

02hBA001000000000001104:

ACCRLL0111010003:

OUT0000000102:

ACC, 01hLD000100000010011000:

オペランド命令データアドレス

アセンブル完了

Page 36: H2 :マイクロプロセッサ

36

プログラムの実行

第 2.5 節に沿って行なう (p.21 ~ 25)

注意:実行前には RESET を押すこと

全員行なったら次の説明 ...

Page 37: H2 :マイクロプロセッサ

37

今日の実験内容

命令がどのように実行されているか理解する

フラグの働きを理解する

Page 38: H2 :マイクロプロセッサ

38

命令はどのように実行されるか ?

クロックに沿って実行 クロック 1周期分 → 1つの実行フェーズ

KUE-CHIP2 での命令の実行:各命令は 3 から 5 フェーズで実行P0 , P1 :各命令共通P2以降:各命令相違 p17 ,表 2 を参

Page 39: H2 :マイクロプロセッサ

39

各フェーズの動作: P0

メモリのプログラム領域から次に実行する命令を取り出す準備

次に実行する命令の場所はPC ( プログラムカウンタ ) が示す

実際の動作: (PC)→MAR   PC の内容を MAR に転送

PC++      PC の内容を 1増やす

Page 40: H2 :マイクロプロセッサ

40

各フェーズの動作: P1

命令を読み込む実際の動作:

(Mem)→IR :MAR の内容を番地とするメモリの内容が命令レジスタに転送される

Page 41: H2 :マイクロプロセッサ

41

各フェーズの動作: P2

命令レジスタに読み込んだ命令を命令デコーダが解読し,命令に応じた処理を行なう

2 バイト命令であると分かった場合,命令の 2 バイト目を読む準備をする

p17 ,表 2 を参照

Page 42: H2 :マイクロプロセッサ

42

「 D1 」を見たら「 80h 」だと思う( 変数宣言,初期化のようなもの )メモリのプログラム領域 D1 番地の内容を ACC に格納する

実際に見てみる:リスト 1 (p 18)

アドレス データ ラベル 命令 オペランド

D1: EQU 80h

D2: EQU 81h

ANS: EQU 82h

00: 64 80 LD ACC,[D1]

02: B4 81 ADD ACC,[D2]

04: 74 82 ST ACC,[ANS]

06: 0F HLT

END

80: 03

81: FD

メモリのプログラム領域 D2 番地の内容と ACC の内容を加算するメモリのプログラム領域 ANS 番地にACC の内容を格納するプログラムの実行を停止するメモリ 80 番地の内容を 03 とし,

メモリ 81 番地の内容を FD とするアセンブル結果の 16進表示

Page 43: H2 :マイクロプロセッサ

43

実行のトレースLD ACC,[D1]

P0 P1 P2 P3 P4

LD

ACC

IX(PC)→MAR

PC++(Mem)→IR

(A)→B

d(PC)→MAR

PC++

(Mem)→A

[d]

(d)(Mem)→MAR (Mem)→A

B の部分

A Bp17 ,表 2 を参照

Page 44: H2 :マイクロプロセッサ

44

実行のトレース

00

00

00

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1]

Page 45: H2 :マイクロプロセッサ

45

実行のトレース

00

00

00

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1] P0: (PC)→MAR, PC++

01

Page 46: H2 :マイクロプロセッサ

46

00

実行のトレース

01

00

64

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1] P1: (Mem)→IR

Page 47: H2 :マイクロプロセッサ

47

02

実行のトレース

01

00

64

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1] P2: (PC)→MAR, PC++

01

Page 48: H2 :マイクロプロセッサ

48

80

02

実行のトレース

01

64

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1] P3: (Mem)→MAR

Page 49: H2 :マイクロプロセッサ

49

80

02

実行のトレース

64

000000

000: 64001: 80002: B4...080: 03081: FD

LD ACC,[D1] P4: (Mem)→A

03

Page 50: H2 :マイクロプロセッサ

50

今日の実験の内容 (1)

フェーズごとの動作 ( マイクロ動作 ) を実際に追跡 ( トレース ) する

リスト 1 を使用

Page 51: H2 :マイクロプロセッサ

51

今日の実験内容 (2)

フラグレジスタの働きを理解する桁上がりフラグ (Carry Flag, CF)

演算結果に桁上がりが生じると 1桁あふれフラグ (Overflow Flag, VF)

演算結果に桁あふれが生じると 1負フラグ (Negative Flag, NF)

演算結果が負になると 1ゼロフラグ (Zero Flag, ZF)

演算結果がゼロになると 1

Page 52: H2 :マイクロプロセッサ

52

実験課題 3.1 その1

リスト 1 のプログラムをフェーズ単位で実行 ( シングルフェーズモードを利用 )

(1) 2 + 3 = ?実行開始から実行終了まで,観測可能なレジスタ,バスをトレース

( 記録用紙は配布 )

Page 53: H2 :マイクロプロセッサ

53

実験課題 3.1 その2

リスト 1 のプログラムをフェーズ単位で実行 ( シングルフェーズモードを利用 )

(2) ~ (6)ADD開始前から ADD終了後まで,

フラグレジスタのみをトレース負の数は「 2 の補数」によって表現

Page 54: H2 :マイクロプロセッサ

54

実験課題 3.1 その3

リスト 1 のプログラムのADD 命令を ADC 命令に変更

指導書にない課題(2) ~ (6)ADC開始前から ADC終了後まで,

フラグレジスタのみをトレース

Page 55: H2 :マイクロプロセッサ

55

実験課題 3.1  注意

「 6 」と「 b 」の読み間違いに注意

負の数には「 2 の補数表現」を用いる

「 64 」は何と読む?

Page 56: H2 :マイクロプロセッサ

56

実験課題 3.1

(1)実行開始から実行終了まで,観測可能なレジスタ,バスをトレース

(2) ~ (6)ADD開始前から ADD終了後まで,

フラグレジスタのみをトレースADD 命令を ADC 命令に変更して,ADC開始前から ADC終了後まで,フラグレジスタのみをトレース

Page 57: H2 :マイクロプロセッサ

57

2 の補数表現  ( 負の数の表現法 )

8 ビットで数を表現する場合

-45 は ?

実際足すと ?

0 0 1 0 1 1 0 145

1 1 0 1 0 0 1 1-45

1 0 0 0 0 0 0 0 0

-45 の 8 ビットにおける 2 の補数表現

Page 58: H2 :マイクロプロセッサ

58

第 1 回のまとめ

Page 59: H2 :マイクロプロセッサ

59

ADD 命令と ADC 命令の違い

ADD 命令:加算命令. CF を考慮しない

ADC 命令:加算命令. CF を考慮する

「 CF を考慮する」とは…演算結果によって, CF を変更するCF が 1 であるとき,加算結果に 1 を足

Page 60: H2 :マイクロプロセッサ

60

レポートでの必須検討事項 (p. 26 参照 )

(1) について各命令の各フェーズでの動作を

指導書 p. 16 ~ 20 に倣って図とことばの両方を使ってまとめること

(2) ~ (6) について実験結果から,フラグレジスタの働き,

および, ADD 命令と ADC 命令の違いをまとめること

Page 61: H2 :マイクロプロセッサ

61

レポートの作成補助

(1) についてp19, 20 のような図のファイルを

以下の手段で入手可能インターネット経由:

http://www.algo.ics.tut.ac.jp/~okamotoy/lect/H2/大学ページ→教員紹介→情報工学系→岡本吉央→研究室 Web→Teaching→Micro-Processors

メモリスティックで直に

Page 62: H2 :マイクロプロセッサ

62

次回

実験課題 3.2  乗算プログラムの作成符号無し 2 バイト精度の 2数の積格納する番地は指導書の指示通りで

なくても可演算結果は 2 バイトに収まると仮定

必須の予習:プログラムの作成と      アセンブル

Page 63: H2 :マイクロプロセッサ

63

符号無し2バイトどうしの乗算

1 0 1 0 1 0 1 10 0 0 0 0 0 1 1

0 0 1 0 0 1 0 10 0 0 0 0 0 0 0×

1 0 1 1 0 1 1 11 0 0 0 0 1 1 1

1 バイト = 8 ビット

Page 64: H2 :マイクロプロセッサ

64

第2回

実験課題 3.2  乗算プログラムの作成符号無し 2 バイト精度の 2数の積格納する番地は指導書の指示通りで

なくてもよい演算結果は 2 バイトに収まると仮定する

必須の予習:プログラムの作成と      アセンブル

Page 65: H2 :マイクロプロセッサ

65

補足:アドレシング・モード

アドレシング:オペランドの表現KUE-CHIP2 のアドレシング・モード

(p. 27 ~ 29 参照 )ACC,IX : ACC,IX の内容がデータ即値:オペランドそのものがデータ直接:オペランドがメモリのアドレス

   そのアドレス上の内容がデータ修飾:「オペランド+ IX の内容」が

   メモリのアドレス   そのアドレス上の内容がデータ

Page 66: H2 :マイクロプロセッサ

66

第 2 回

実験課題 3.2  乗算プログラムの作成符号無し 2 バイト精度の 2数の積格納する番地は指導書の指示通りで

なくても可演算結果は 2 バイトに収まると仮定

必須の予習:プログラムの作成と      アセンブル

Page 67: H2 :マイクロプロセッサ

67

進め方

最低,グループで 1つは以下を行なう作成したプログラムの入力プログラムを確認するためホワイトボードの (1) ~ (4) を計算

それらが正しく計算できたら(A) と (B) を計算.実行時間を計測

ホワイトボードに実行時間とプログラムのメモリ消費量 ( 単位:バイト ) を記入

Page 68: H2 :マイクロプロセッサ

68

終わり方

16:00 になったら「今日のまとめ」と「次回の説明」を

終わったグループはこれで終了終わっていないグループは続行

Page 69: H2 :マイクロプロセッサ

69

第 2 回のまとめ

Page 70: H2 :マイクロプロセッサ

70

第 2 回の必須検討事項 (p. 26 参照 )

今日用いたプログラムのリストとフローチャートを載せてプログラムの説明

他のグループのプログラムと比較論点1:実行時間論点2:プログラムのメモリ消費量

注意:他グループのプログラムは掲載不要だが,  簡単な説明は記述

Page 71: H2 :マイクロプロセッサ

71

第 2 回の必須検討事項 (続 )

プログラムの実行時間の算定p. 17 表 2 から 各命令のフェーズ数特定1 フェーズ = 1 クロック周期クロック周波数 = 100 Hz∴ プログラム実行時間を理論的に算出可能(1) 実行時間を決めるパラメータを特定(2) 実行時間を与える公式を導出(3) 公式から A,B の実行時間理論値を算出(4) 理論値と観測値の比較

Page 72: H2 :マイクロプロセッサ

72

第 3 回の説明:内容 (p. 25)

3.3 オシロスコープへの文字の出力必須の予習:プログラムの作成と      アセンブル

3.4(1) メロディーの出力予習:軽く目を通してくる(細かい説明は次回)推奨:電卓持参

Page 73: H2 :マイクロプロセッサ

73

オシロスコープへの文字の出力

出力バッファに DA コンバータを付けて出力信号をオシロスコープへ

DA コンバータ:ディジタル信号をアナログ信号に変換する回路

1101

DA コンバータ 13

Page 74: H2 :マイクロプロセッサ

74

取り付ける DA コンバータの機能

出力バッファの 8 ビットの中の上位 4 ビットを x 座標下位 4 ビットを y 座標 とする

x 座標の取れる範囲は 0h ~ Fhy 座標の取れる範囲は 0h ~ Fh

Page 75: H2 :マイクロプロセッサ

75

オシロスコープへの出力

LD ACC, 6BhOUT

0 F0

F

6

B

Page 76: H2 :マイクロプロセッサ

76

オシロスコープへの出力

LD ACC, 6BhOUT

点を 1つずつ表示続けて表示すれば全てが同時に表示されるように見える

0 F0

F

6

B

Page 77: H2 :マイクロプロセッサ

77

注意点

1. 1つの点は「・」として表示され「■」として表示されないので注意

2. ずっと表示されるようにすること( プログラムの図形表示部分は 停止しないループ内に来る )

3. オシロスコープの残像に注意

Page 78: H2 :マイクロプロセッサ

78

表示する文字・図形について

「A」以外の文字でもよい図形でもよい

注意:適度に複雑なものを選ぶこと

Page 79: H2 :マイクロプロセッサ

79

余力がある場合

文字・図形を動かしてみる (右から左に )

Page 80: H2 :マイクロプロセッサ

80

メロディーの出力 (1)

予習:付録 B.1 (p. 30) を軽く読む

推奨:電卓持参

Page 81: H2 :マイクロプロセッサ

81

第3回

3.3 オシロスコープへの文字の出力必須の予習:プログラムの作成と      アセンブル

3.4(1) メロディーの出力予習:軽く目を通してくる(細かい説明は後ほど)推奨:電卓持参

Page 82: H2 :マイクロプロセッサ

82

注意

使用する DA コンバータはとても壊れやすいので,大事に扱うこと( むやみに触らない )

特に,取り付け部分周辺の配線に注意

取り付けも取り外しも教員・ TA が行ないます

Page 83: H2 :マイクロプロセッサ

83

進め方

14:30終了を目処にグループで最低 1つは実行オシロスコープのチャンネル 1  → 赤チャンネル 2  → 青グラウンド  → 黒  と接続

14:30頃に次の説明を

Page 84: H2 :マイクロプロセッサ

84

メロディーの出力

KUE-CHIP2 から波を出力しスピーカから音を出す

今日:音を出す仕組みの基礎次回:メロディー出力プログラムの実行

Page 85: H2 :マイクロプロセッサ

85

音とは??

音は空気の振動 (波 )音の三要素

大きさ高さ音色

←波の振幅の大きさ←波の周波数の高さ←波の形

Page 86: H2 :マイクロプロセッサ

86

音を出す原理

KUE-CHIP2→DA コンバータ→スピーカ

スピーカ:電気信号を音 (空気振動 ) に変換する装置

Page 87: H2 :マイクロプロセッサ

87

作る波

方形波  (矩形波 ) :長方形の波

T = Ta + Tb

波の周期 T (秒 )

Ta (秒 )Tb (秒 )

On

Off

Page 88: H2 :マイクロプロセッサ

88

音を出すプログラム ( リスト 4 p. 31)

アドレス ラベル 命令 オペランド クロック数

00: L0: LD ACC, 0xFF 4

02: OUT 4

03: LD ACC, a 4

05: L1: SUB ACC, 0x01 4

07: BNZ L1 4

09: LD ACC, 0x00 4

0B: OUT 4

0C: LD ACC, b 4

0E: L2: SUB ACC, 0x01 4

10:

12:

BNZ

BA

L2

L0

4

4

波の On 部を作る

波の Off 部を作る

自分で決める

Page 89: H2 :マイクロプロセッサ

89

作る波:長さ

方形波  (矩形波 ) :長方形の波

Ta = (12+8a)T0 , Tb = (16+8b)T0

( ただし, T0 = クロック周期

波の周期 T (秒 )

Ta (秒 )Tb (秒 )

On

Off

Page 90: H2 :マイクロプロセッサ

90

実験内容 3.4(1) p. 26

(a) オシロスコープによるクロック周期  の確認スイッチ CLK を中立にダイヤル CLKFRQ の「 0 」~「 8 」の周波数を測定

信号はコネクタ JP3 より出力

Page 91: H2 :マイクロプロセッサ

91

実験内容 3.4(1) p. 26

(b) リスト 4 の a , b を設定出力する音の周波数: 440Hz   ( ラ )最適な

クロック周期 T0 , a , b を定める ( 計算 )

Page 92: H2 :マイクロプロセッサ

92

実験内容 3.4(1) p. 26

(c) 440Hz の音の出力リスト 4 の入力CLKFRQ の設定DA コンバータを通してスピーカから出力

出力音が 440Hz (誤差±1%) であることを確認

Page 93: H2 :マイクロプロセッサ

93

第 3 回のまとめ

Page 94: H2 :マイクロプロセッサ

94

第 3 回の必須検討事項 (p. 26 参照 )

(3) オシロスコープによる文字の出力プログラムのリストを載せて,

プログラムの特徴を説明

注:「他のグループとの美しさの比較」  は不要

Page 95: H2 :マイクロプロセッサ

95

第 3 回の必須検討事項 (p. 26 参照 )

(4) メロディーの出力(a) 誤差 ±1% の確認どのように最適な a, b を計算したか?

計算過程も記述することどのように確認を行なったか?

実際に誤差を計算すること他の方法も考えられるか

Page 96: H2 :マイクロプロセッサ

96

第 3 回の必須検討事項 (p. 26 参照 )

(4) メロディーの出力(b) 精度を上げるための対策KUE-CHIP2だけで対処する 場合

( ソフトウェア上,プログラム上の工夫 )

そうでなくてもよい場合( ハードウェア上の工夫 )

Page 97: H2 :マイクロプロセッサ

97

次回の説明

3.4(2) メロディーの出力簡単なメロディーを出力させる必須の予習:プログラムの作成と

      アセンブル参考:付録 B.2 とリスト 5   (p. 31 ~

32)注意:リスト 5 は内容を理解してから

   参考にすること

Page 98: H2 :マイクロプロセッサ

98

諸注意

メロディーの出力は無限に繰り返すことp. 32 表 4 「音階の周波数」を参考に

1 オクターブ違う音 → 周波数が 2 倍違う「休符」はどのように?

( 音を出すのは簡単.出さないのは? )同じ音が続くと 1 つの長い音に聞こえる

→対策が必要

Page 99: H2 :マイクロプロセッサ

99

第4回

3.4(2) メロディーの出力簡単なメロディーを出力させる必須の予習:プログラムの作成と

      アセンブル参考:付録 B.2 とリスト 5   (p. 31 ~

32)注意:リスト 5 は内容を理解してから

   参考にすること

Page 100: H2 :マイクロプロセッサ

100

進め方

グループで最低 1つは実行DA コンバータの取扱いに注意できたグループから終了

Page 101: H2 :マイクロプロセッサ

101

まとめ 必須検討事項 (p. 26)

(4)(c) 各自のデータ表現の特徴プログラムのリストを載せて,説明データ表現:CPU が理解できる表現01 の列としての表現

例えば,「楽譜」は人間に理解できるようにメロディーを表現している

Page 102: H2 :マイクロプロセッサ

102

まとめ 必須検討事項 (p. 26)

(4)(d) 作成したメロディー出力法は  他の CPU にも流用できるか?

他の CPU の例を 1つ挙げて考察挙げた CPU の実行命令フェーズを調べ,それを踏まえて考察

(4)(e) 省略  ( 必須ではない )

Page 103: H2 :マイクロプロセッサ

103

まとめ 必須検討事項 (p. 26)

(5) 自分が最もよく使用している CPU  ( または,有名な CPU) について そのアーキテクチャを調べてまとめる

以下は ( この課題での ) 重要項目レジスタ,命令セット,メモリ空間の特徴

は何か?乗算命令はどのように実行されているか?

Page 104: H2 :マイクロプロセッサ

104

全体のまとめ

Page 105: H2 :マイクロプロセッサ

105

人間と機械の橋渡し

橋渡し = インタフェース

高級言語によるプログラム

機械語によるプログラム

アセンブリ言語によるプログラム

コンパイ

ラアセンブ

Page 106: H2 :マイクロプロセッサ

106

さらに勉強するために

実験  3 学期コンパイラの作成CPU の論理設計講義計算機構成論 I (3年 1学期 )システム・プログラム論 (3年 3学期 )言語処理 系論 (3年 3学期 )計算機構成論 II (4年 1学期 )

•これらは直接関係 するもの•間接的な関係にも 気を配って

Page 107: H2 :マイクロプロセッサ

107

H2 :マイクロプロセッサ

岡本 吉央