MP_slide_ja

Similar documents
PowerPoint Presentation

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

.,. 0. (MSB). =2, =1/2.,. MSB LSB, LSB MSB. MSB 0 LSB 0 0 P

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

計算機アーキテクチャ

スライド 1

ex04_2012.ppt

スライド 1

Microsoft PowerPoint - ProcML-12-3.ppt

PowerPoint プレゼンテーション

スライド 1

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

スライド 1

-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

コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

スライド 1

コンピュータ工学Ⅰ

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

3 SIMPLE ver 3.2: SIMPLE (SIxteen-bit MicroProcessor for Laboratory Experiment) 1 16 SIMPLE SIMPLE 2 SIMPLE 2.1 SIMPLE (main memo

スライド 1

Microsoft PowerPoint - 7.Arithmetic.ppt

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

PowerPoint プレゼンテーション

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

Microsoft Word - 実験4_FPGA実験2_2015

main.dvi

Microsoft Word - HW06K doc

スライド 1

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

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

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

Microsoft PowerPoint ppt

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

Microsoft PowerPoint - NxLec ppt

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

Microsoft PowerPoint - 11Web.pptx

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

Microsoft Word - 19-d代 試é¨fi 解ç�fl.docx

スライド 1

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

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

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

VelilogHDL 回路を「言語」で記述する

1 ( ) 2 D-A D-A KUE-CHIP2 KUE-CHIP2 KUE-CHIPP2 KUE-CHIP (1) 2.2 D-A KUE-CHIP2 2.1 KUE-CHIP D-A

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

Microsoft PowerPoint - Lec pptx

PowerPoint プレゼンテーション

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

ex05_2012.pptx

1.1 ラベル ラベルはカラム 1 から始まらなければならない ラベルの後にはコロン スペース タブ 改行が続いてよい ラベルはアルファベットかアンダーバーで始まり 英数字 アンダーバー クエスチョンマークを含んでよい ラベルは 32 文字までである デフォルトではこれらは大文字と小文字を区別するが

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

ガイダンス 2

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

untitled

6. パイプライン制御

- VHDL 演習 ( 組み合せ論理回路 ) 回路 半加算器 (half adder,fig.-) 全加算器を構成する要素である半加算器を作成する i) リスト - のコードを理解してから, コンパイル, ダウンロードする ii) 実験基板上のスイッチ W, が, の入力,LED, が, の出力とな

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

CASL入門

PowerPoint プレゼンテーション

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

計算機アーキテクチャ

Microsoft PowerPoint ppt

言語プロセッサ2005

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

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

スライド 1

Microsoft Word - マイコン実験 doc

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

Microsoft Word - DWR-S01D_Updater_取扱説明書_120514A.doc

Microsoft PowerPoint - Chap2 [Compatibility Mode]

プログラミング実習I

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

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

TULを用いたVisual ScalerとTDCの開発

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

スライド 1

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

スライド 1

PowerPoint プレゼンテーション

DWR-S01D Updater 取扱説明書 発行日 :2011/2/28

プログラミングI第10回

WAGO PROFIBUS バスカプラ/コントローラと、QJ71PB92Dとのコンフィグレーションマニュアル

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

プログラミングA

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

Microsoft PowerPoint - Sol7 [Compatibility Mode]

プログラミングA

スライド 1

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

< B8CDD8AB B83685D>

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

Microsoft PowerPoint - Chap4 [Compatibility Mode]

PowerPoint プレゼンテーション

JavaプログラミングⅠ

一般電気工学第二

PowerPoint Presentation

「FPGAを用いたプロセッサ検証システムの製作」

JavaプログラミングⅠ

JEB Plugin 開発チュートリアル 第3回

Transcription:

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