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

Similar documents
計算機アーキテクチャ

コンピュータ工学Ⅰ

コンピュータ工学Ⅰ

PowerPoint プレゼンテーション

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

スライド 1

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

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint ppt

Microsoft PowerPoint - 11Web.pptx

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

スライド 1

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

-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

スライド 1

Microsoft PowerPoint - ProcML-12-3.ppt

スライド 1

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

Microsoft PowerPoint - No3.ppt

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

スライド 1

ex04_2012.ppt

Microsoft Word - マイコン実験 doc

スライド 1

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

Microsoft PowerPoint ppt

OS

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

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

スライド 1

04-process_thread_2.ppt

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

目次 [ はじめに ] 1 [1] レジスタについて 1 [2] 8ビット転送命令 1 1. MOV 1, MOV,M 2 3. MOV M, 2 4. MVI,B MVI M,B LDAX B 2 7. LDAX D 2 8. LDA NN 2 9. STAX

出 アーキテクチャ 誰が 出 装置を制御するのか 1

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

ex05_2012.pptx

Microsoft PowerPoint - 7.Arithmetic.ppt

< B8CDD8AB B83685D>

計算機アーキテクチャ

スライド 1

も 常に 2 つのコイルに電圧を印加する 2 層励磁方式や 1 つのコイルと 2 つのコイルに交互に電圧を印 2

Microsoft PowerPoint - Chap3 [Compatibility Mode]

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

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

Microsoft Word - HW06K doc

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

計算機システム概論

Microsoft PowerPoint - Chap2 [Compatibility Mode]

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

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

Microsoft PowerPoint - Sol7 [Compatibility Mode]

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

Microsoft PowerPoint - No6note.ppt

< 動作マトリクス > 停止 REQ 固定位置 REQ 往復 REQ 停止 () 現在位置と同じなら無視異なれば停止パルス中へ 停止パルス中へ 停止 ( 固定位置 ) 現在位置と同じなら無視異なれば停止パルス中へ 停止パルス中へ 停止パルス中 ( 停止パルス終了後 ) ( 停止パルス終了後動作 )

Microsoft Word - 実験4_FPGA実験2_2015

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

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

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

TFTP serverの実装

スライド 1

Microsoft PowerPoint - 工学ゼミⅢLED1回_2018

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

Microsoft PowerPoint - Chap4 [Compatibility Mode]

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

スライド 1

Microsoft PowerPoint - 01-VerilogSetup-2019.pptx

スライド 1

スライド 1

PowerPoint プレゼンテーション

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

PowerPoint プレゼンテーション

05-scheduling.ppt

Microsoft PowerPoint - OS02.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - Chap5 [Compatibility Mode]

ガイダンス 2

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

Microsoft PowerPoint - 集積回路工学_ ppt[読み取り専用]

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

スライド 1

10-vm1.ppt

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

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

PowerPoint プレゼンテーション

正転時とは反対に回転する これが逆転である 図 2(d) の様に 4 つのスイッチ全てが OFF の場合 DC モータには電流が流れず 停止する ただし 元々 DC モータが回転していた場合は 惰性でしばらく回転を続ける 図 2(e) の様に SW2 と SW4 を ON SW1 と SW3 を O

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

Operating System 仮想記憶

Microsoft PowerPoint - OS02.pptx

第2回

三菱電機マイコン機器ソフトウエア株式会社

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

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

020204.入出力制御割込解説

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

Microsoft PowerPoint - OS07.pptx

MW100 Modbusプロトコルによるデータ通信の設定について

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

Transcription:

第 11 回機械語とアーキテクチャ コンピュータは, 記号で組み立てられ, 記号で動く機械 : ソフトウェアソフトウェア としても理解されなければならない ソフトウェアの最も下位レベルのしくみが ( 命令セット ) アーキテクチャ である 講義では命令符号 ( 機械語 ) の構成と種類についてまとめる また, 機械語を効率良く実行するために採用されている技術について紹介する 機械語とアセンブリ言語 機械語 プロセッサの動作を指示する 命令符号 ビット列としてメインメモリに存在 命令レジスタに読み込む プロセッサの動作が決定命令符号を機械語 (machine language) ともいう. 命令符号の構成例 加算などの演算命令の場合, 命令符号 ( 機械語 ) は, Fig.11-1 に示すように構成されている 演算符号格納場所 1 格納場所 2 1 演算の種類を指示する符号 OP-code Operand Fig.11-1 演算命令の構成 対象となるデータと演算結果の格納場所を指示する符号 一般には, 演算の対象となるデータの格納場所の指定に制限がある ( 例 : 格納場所 1 はレジスタのみ, 格納場所 2 はレジスタとメモリを指定 ) また, 演算の結果も, 常に格納場所 1 に格納する方式の他, 格納場所 2 も選択できる方式がある 命令符号は命令の実行に必要な情報を整理して表現したものであり, これを基に命令デコーダがプロセッサ内部の制御信号を生成する デコーダの VHDL 記述の例は, 資料 p.11-6 に記載されている ( リスト 11-1) 命令セット 命令セット (instruction set) プロセッサが持っている一群の命令プログラマにとって命令セットは アーキテクチャアーキテクチャ そのものと言える 命令セットは, 機能によって以下のように分割できる. 以下の記法では, レジスタやメモリなどのデータの格納場所が dest,source,count, レジスタが reg, アドレスが address, 入出力ポートが port でそれぞれ指定されているものとする. これらのアドレスの指定には複数の方法が用意されている ( アドレッシング モード ). マイクロプロセッサとインタフェース講義資料 11-1

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, count : reg をcount で指定されたビットだけ右にシフト SAR reg, count : reg をcount で指定されたビットだけ右に算術シフト アセンブリ言語の例 :ADD R0,R1 R0 R0+R1 C 言語だと a += b ; 2 b) データ転送命令 例 )MOV dest, source : dest source アセンブリ言語の例 :MOV R0,R1 R0 R1 C 言語だと a = b ; 3 c) ジャンプ コールコール命令 例 )JMP address : 無条件ジャンプ. 指定されたにジャンプ J** address : 条件ジャンプ. 条件 ** が成立すると指定にジャンプこの条件は演算の結果によって変化する条件フラグレジスタの特定のビット (Table 10-2 参照 ) で与えられる jz : 演算の結果がゼロならPC に値 を格納 jn : 演算の結果が負ならPC に値 を格納 CALL address : コール : からの復帰 アセンブリ言語の例 :JMP A000 A000 にジャンプ ( 実際の動作は,PC に A000 を格納 ) SUB R0,1 : レジスタR0から1 を減算 JZ A000 : 結果がゼロならA000 にジャンプ (PC A000) C 言語だと k -= 1 ; if(k==0){ 4 割り込みタイマなどプロセッサの外部からのハードウェア的な要因により, 予め定められた処理に分岐する, 割り込みと呼ばれる機能も, 実装されている スタック操作 ( 付録付録 参照 ) とのデータの引渡しに使う引数, からの復帰の際の戻り, あるいはレジスタ内容の退避 / 復帰などで, スタック (stack) というデータ構造を用いる 通常, スタックは, スタック ポインタと呼ばれるレジスタ (と略記) を用いてメインメモリ上に構築される スタック操作のための代表的な命令として, 以下の 2つがある ( 以下は, スタックをメモリの少なくなる方向に伸ばしていく場合の例である ) PUSH : スタックへのデータ格納 の内容をデータ長の分だけ減じてからの内容をアドレスとするメモリにデータを書き込む POP : スタックからのデータ取得 の内容をアドレスとするメモリからデータを読み出してから,の内容をデータ長の分だけ増加させる 11-2 マイクロプロセッサとインタフェース講義資料

d) 入出力命令 例 )IN reg, port OUT port, reg e) プロセッサ制御命令 例 )HALT( プロセッサ停止命令 ),NOP 条件フラグレジフラグレジスタ 命令の結果によって, 条件フラグレジスタの内容が変化する. そして, このレジスタの内容は, 条件付き分岐命令に影 響を与える.8 ビットプロセッサで一般的に使用されている条件フラグを Table 11-1 に示す. 1) Table 11-1 条件フラグの内容の一例 フラグ名 符号名の例 条 件 キャリー C 加算時最上位からの桁上げ, 減算時最上位への借りが発生するとセット ゼロ Z 演算結果がゼロ, すなわち, すべてのビットがゼロであるとセット 符号, 負数 S,N 演算結果が負数, すなわち, 最上位のビットが1であるとセット オーバーフロー V 演算結果が正, 負の表現範囲を越えるとセット パリティ P 演算結果のパリティ (1の個数) が偶数であるとセット 補助キャリー, A, ハーフキャリー H 加算時第 4 桁からの桁上げ, 減算時第 4 桁への借りが発生するとセット 減算 N 減算を実行するとセット C Z N V P A 演算の結果によって特定のフラグ ビットがセットされる 条件の判定などに使う 5 主要なアドレッシングアドレッシング モード アドレッシング モードにより, 最終的にアドレスバスに出力される実効実効アドレス (effective address,ea) が変わってくる. 主要なものを以下に示す. 1) Table 11-2 プロセッサのアドレス指定方式 方式 指定内容 実効アドレス レジスタ直接 データ格納レジスタ 指定された番号のレジスタ 即値 データ 命令後の中にデータを埋め込む 絶対 絶対アドレス 絶対アドレスで指定されたメモリ レジスタ間接 アドレス格納レジスタR レジスタRの内容 ((R) と表記 ) ベース相対 アドレス格納レジスタB, 変位 d (B)+ d PC 相対 変位 d (PC)+ d マイクロプロセッサとインタフェース講義資料 11-3

付録 スタックとスタックは,Fig.11-2 に示すような構造を持つメモリである. 先に格納したデータは後から格納したデータを読み出してからでないと読みだせない ( 先入れ後出し,First In Last Out ). スタックへの読み書きは,PUSH とPOP という動作によって行われる. 図ではデータの格納場所が移動するように描かれているが, 実際にはスタックポインタ () というレジスタを用いてメモリ上に構成される (Fig.11-3). スタックポインタの内容はスタックの読み出し / 書き込みを行うメモリへのアドレスになっている. を用いたスタックの動作は, PUSH:ⅰ) の内容を1 語分減らす. ⅱ) の指す主メモリに書き込む POP: ⅰ) の指す主メモリから読み込む ⅱ) の内容を1 語分増やす. となっている スタック用のメモリには, 通常はメインメモリを使うが,PICマイコンのようにスタック専用のメモリを持つプロセッサもある Y Z Z Y Y Z Y Y (a) (b) (c) (d) (e) (f) Fig.11-2 スタックの概念 メモリ 1FFF (a) 1FFE B レシ スタの値 (b)push B 1FFD C レシ スタの値 B レシ スタの値 (c)push C D レシ スタ 1FFE B レシ スタの値 (d)pop D Fig.11-3 スタックの構成 11-4 マイクロプロセッサとインタフェース講義資料

P1 Q P2 Q P1 CALL n P2 CALL n P3 n Q P3 (a) (b) Fig.11-4 何度も使われる処理を行うをにするひとまとめの処理のモジュール化の点で有利である. スタックはの際の戻りの格納とレジスタレジスタ内容内容の退避退避に使われる.Fig.10-4にのネスティングの際のスタックポインタとカウンタの動作を示す. この図では説明を簡単にするためにレジスタのデータ長を8 ビットとしている. を呼ぶ際にはレジスタ退避などの余分な動作が必要となること ( オーバヘッド ) に注意しなくてはならない. 1 n 1 Q 1 m 1 2 Q 2 CA LL n 1 n 0 CA LL m 1 m 0 4 3 (a) m 0 n 0 n 0 n0 PC n 1 m 1 PC PC m 0 PC n 0 1 2 3 4 (b) Fig.11-5 のネスティングとスタック マイクロプロセッサとインタフェース講義資料 11-5

割り込みとトラップ ある処理に制御を渡すというコールと似た動作を行うものに割り込みとトラップトラップがある. 割り込み割り込みというのは, 外部の要因によってプロセッサがある定められた処理を行う動作のことである. プロセッサにより異なるが, 通常はハードウェアにより割り込み動作が始まる. 割り込みの用途は, 制御用 AD 変換などで制御用コンピュータシステムからAD 開始を指示するパルスを出す.ADシステムが変換完了するまでは時間がかかるが, 変換終了を割り込みによりCPUに知らせることでCPU の効率化が図れる. タスク * 切り替えある一定時間ごとに割り込みをかけ, タスクを切り替えて, ユーザからは複数のタスクが並行して働いて見えるようにする. *: タスクについては後で述べる. 割り込みにはマスクによって割り込み禁止が可能な通常割通常割り込みと, 電源障害など緊急の場合の処理のように禁止できないようになっているマスクマスク不能割不能割り込みとがある. 割り込みを受け付けるかどうかの制御は割り込みマスクフリップフロップ (Interrupt Mask:IM) で行う. 割り込み動作は, ⅰ) 割り込みフリップフロップをセット ⅱ)PC の内容をスタックにプッシュ ⅲ)PC に割り込み処理の先頭アドレス ( 割り込みベクタ ) を格納という手順で行われる. トラップ ( ソフトウェア割り込み ) 割り込みと良く似た動作を行うものにトラップ (Trap) がある. 中に置かれた TRAP 命令により, 割り込みと同様の動作を行う. ユーザから OS の用意している入出力などのを呼び出すときなどに使用する. 命令読込み 命令実行 読込み? 割込み YES 処理動作 NO Fig.11-6 割り込みの検出と処理 11-6 マイクロプロセッサとインタフェース講義資料