Microsoft PowerPoint - kougi7.ppt

Similar documents
PowerPoint プレゼンテーション

Microsoft PowerPoint - No3.ppt

計算機アーキテクチャ

020204.入出力制御割込解説

スライド 1

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

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

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

計算機システム概論

05-scheduling.ppt

OS

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

スレッドとプロセス

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

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

スライド 1

04-process_thread_2.ppt

PowerPoint Presentation

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

Microsoft PowerPoint - OS02.ppt

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

スライド 1

スライド 1

ex05_2012.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS02.pptx

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Microsoft PowerPoint - Kozos12step_07_

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

PIC の書き込み解説 PICライターを使うときに間違った使い方を見受ける 書き込み失敗の原因は知識不足にある やってはいけないことをしている 単に失敗だけならまだしも部品を壊してしまう 正しい知識を身に着けよう 書き込みに必要なピンと意味 ICSPを意識した回路設計の必要性 ICSP:In Cir

Microsoft PowerPoint - OS02.pptx

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

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

スライド 1

<91E63589F161>

スライド 1

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

-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 プレゼンテーション

Microsoft PowerPoint - OS07.pptx

計算機アーキテクチャ

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

Microsoft PowerPoint - OS03.pptx

Microsoft PowerPoint - kougi4.ppt

VLSI工学

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

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

スライド 1

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

PIC24F Family Reference Manual Section 8 Interrupts

スライド 1

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

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

ネットワーク設置で困ったときには

スライド 1

ネットワーク設置で困ったときには

今週の進捗

TOPPERS活用アイデア・アプリケーション開発

スライド 1

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

PIC24F Family Reference Manual Section 9 WDT

スライド 1

PowerPoint プレゼンテーション

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

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

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

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

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

スライド 1

untitled

スライド 1

第117期報告書

スライド 1

ex04_2012.ppt

自己紹介 湯浅陽一 1999 年より Linux kernel 開発に参加 MIPS アーキテクチャのいくつかの CPU へ Linux kernel を移植

HW-Slides-05.ppt

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

コンピュータのしくみ

プログラミング実習I

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

WX01J 取扱説明書

CPUスケジューリング

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く


PowerPoint プレゼンテーション

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

Microsoft Word - FCTT_CS_Mod( )Jver1.doc

WLAR-L11G-L/WLS-L11GS-L/WLS-L11GSU-L セットアップガイド

< B8CDD8AB B83685D>

ComputerArchitecture.ppt

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

えひめ電子入札共同システム 質問回答 工事 委託業務 操作マニュアル ( 受注者用 )

ターゲット項目の設定について

Microsoft Word - ユビレジ Web講習_FO.docx

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

4K チューナービエラリンクマニュアル 1. 基本編 1-1. ビエラリンクの初期設定 1-2. ビエラリンクの操作 1-3. ビエラリンク対応ボタン一覧 2. 応用編 2-1. 様々な機器をビエラに接続している場合 2-2. お好みの設定でビエラリンクを使用する 3-3. その他の方法でチューナー

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

システムソフトウエア2013/1/30 演習問題 学科 学籍番号 氏名 1. つぎの文章の空白を埋めなさい. コンピュータは,CPU( 中央処理装置 ) とメモリ, およびその他の入出力装置から構成されて いる. このうち,CPU は命令の (a) とデコードなどを行う制御部と, 実際の計 算を行う

スライド 1

AKI-PIC16F877A開発キット (Ver1

Transcription:

到達目標 スーパバイザモード, 特権命令, 割り込み CPU の割り込みメカニズム 割り込みの種類ごとに, 所定の例外処理が呼び出される スーパーバイザモードに, 自動的に切り替わる 割り込み終了後に 元のモード に戻る ハードウエア割り込みについて 割り込み禁止 割り込み発生時の CPU の挙動 現在の処理を中断 例外処理用のプログラム ( ハンドラともいう ) が起動される プログラム実行の流れ 割り込みが発生すると, 処理を中断例外処理用のプログラム 処理を再開 rte rte は例外処理からの復帰命令 割り込みの発生 プログラム実行を中断せねばならないような, 何かの要因が起きたことを 割り込みの発生 という例 ) プロセッサ外部からのハードウエアからの要求 現在実行中のプログラム内の何らかのトラブルなど

割り込みの種類 外部割り込み ( 外部要因 ) ハードウエアリセット 入出力 : 入出力装置の処理終了や何かの要求 タイマ : ある一定時間が経過したことの通知 マシンチェック : ハードウエアの何らかの異常通知など 内部割り込み ( 内部要因 ) 演算例外 : オーバーフロー,0 による除算 特権命令違反 : システム管理命令をユーザモードで実行してしまった場合 トラップ命令 : オペレーティングシステムの機能呼び出し アドレスエラー : ワードデータが奇数アドレスからあったなど 外部割り込みの例 入出力 入出力用のサブプロセッサ (DMA コントローラなど ) からの信号 入力処理や, 出力処理の終了などを信号として CPU に伝える マシンチェック のエラーチェック回路 (ECC) からの信号 に何らかの異常があることを伝える タイマ タイマから一定時間ごとに信号が来て, 時計機能を実現 内部割り込みの例 浮動小数点演算のオーバーフロー 除算命令で,0 による除算 システムのデバッグのために, 一命令の実行ごとに強制的に掛かる割り込み 特権命令を, ユーザモードで実行した場合 プログラム内に何らかの特別な条件が成立することによる割り込み ( 外部とは関係ない ) 割り込みメカニズムの必要性 実時間処理 入力があったら, 現在の処理を中断して, 特別な処理を直ちに行いたい. システムの利用効率の向上 入力が来たか などを常に見張っているのは CPU の無駄. 割り込み機能を利用すれば, 見張る必要なし. オペレーティングシステムの実現 プログラムは普通のモード ( ユーザモード ) で動くが, オペレーティングシステムの機能を呼び出すときは, 自動的にスーパバイザモード ( 特権命令が実行可能になるような特別なモードのこと ) に切り替える

例外ベクタ方式 例外ベクタ番号 割り込みの種類ごとに番号 ( 例外ベクタ番号 ) が決まっている 例外処理プログラムの開始アドレスの決定法 CPUは, 例外ベクタ番号を使って, 内の所定のアドレスを読み, 例外処理プログラムの開始アドレスを得る あらかじめ, の所定のアドレスに 例外処理の開始アドレス を書き込んでおく アドレス 0000 0000 0000 0004 0000 0008 0000 000C 0000 0010 例外ベクタ方式 区画ごとにアドレスが入っている (32 ビット ) 例外ベクタ番号 0 番用例外ベクタ番号 1 番用例外ベクタ番号 2 番用例外ベクタ番号 3 番用例外ベクタ番号 4 番用 例外ベクタ方式 ハードウエアリセットの場合 プログラム プログラム 割り込みの発生 ( 例外ベクタ番号 10(16) とする ) 0000 0040 例外処理の開始アドレスを得る 例外ベクタ番号 10(16) 番用 ハードウエアリセットの発生 ( 例外ベクタ番号は 1 と決まっている ) 0000 0004 例外処理サブルーチンの開始アドレスを得る 例外ベクタ番号 1 番用 例外処理を呼び出す 例外処理 ( 例外ベクタ番号 10(16) 番用 ) ハードウエアリセット用例外処理を呼び出す 例外処理 ( ハードウエアリセット用 )

ここまでのまとめ 割り込みの種類ごとに, 所定の例外処理が呼び出される仕組み 種類に応じて ベクタ が割り当てられている 割り込みの識別番号のこと ベクタ番号と, 例外処理プログラムの開始アドレスの対応表が上にある 例外ベクタ番号 : 0 から FF(16) 使うべき領域 : 0 から 3FF(16) 例外処理ととスーパバイザモードプログラム 割り込み X] の発生 処理を中断し, 例外処理 X を呼び出す割り込み Y] の発生 処理を中断し, 例外処理 Y を呼び出す ふつうユーザモードで動く 例外処理 X 例外処理 Y スーパバイザモードで動く スーパバイザモードとは 特権命令を実行可能なモード ステータスレジスタ (68000CPU 内のレジスタ ) の S ビットの値が 1 特権命令 システムの信頼性を高めるために, いくつかの命令は特権化されている 68000 では, RESET move, %sr など リセット ステータスレジスタの書き換え

ユーザモードとスーパバイザモードの違い ユーザモード ステータスレジスタの S ビットが 0 特権命令を実行できない スタックポインタとして, ユーザスタックポインタが使われる スーパバイザモード ステータスレジスタの S ビットが 1 特権命令を実行できる スタックポインタとして, スーパバイザスタックポインタが使われる 割り込み時の モード の変化 割り込み が発生すると : スーパバイザモード ( 特権命令が実行可能になるような特別なモードのこと ) に遷移 所定の例外処理プログラムが呼び出される プログラム実行の流れ 割り込みが発生すると, 処理を中断し, スーパバイザモードに遷移 元のモードに戻り, 処理を再開 rte 例外処理 rte は例外処理からの復帰命令 割り込みの発生によって何が行われるのか 1 通常のプログラム実行を中断 プログラムカウンタの値をシステムスタックに保存 ステータスレジスタの値もシステムスタックに保存 2 スーパバイザモードに遷移 ステータスレジスタ内の S( スーパバイザ ) ビットを 1 に書き換え 3 所定の例外処理を呼び出す 例外処理の開始アドレスの取得 プログラムカウンタ値の書き換え 例外処理からの復帰で何が行われるのか 例外処理からの復帰命令 : rte 4 元のモードに遷移 システムスタックに保存されていた値を使って, ステータスレジスタを元に戻す 5 通常のプログラム実行を再開 システムスタックに保存されていた値を使って, プログラムカウンタを元に戻す

1 通常のプログラム実行を中断 2 スーパバイザモードに遷移 CPU CPU スタックポインタ 32ビット長プログラムカウンタ 16ビット長ステータスレジスタ 値は 6 減る プログラムカウンタとステータスレジスタの値がプッシュされる システムスタック領域 スタックポインタ プログラムカウンタ Sビット部 1 ステータスレジスタ Sビット部が自動的に 1 に変わる ステータスレジスタの S ビット部 0 なら ユーザモード 1 なら スーパバイザモード 3 所定の例外処理を呼び出す 4 元のモードに遷移 CPU CPU 値は 2 増える スタックポインタ スタックポインタ プログラムカウンタ ステータスレジスタ 別の値に変わる ( 何の値に変わるかは, 割り込みの種類によって違う ) プログラムカウンタ ステータスレジスタ ステータスレジスタの値がポップされる システムスタック領域

5 通常のプログラム実行を再開 CPU スタックポインタ プログラムカウンタ ステータスレジスタ 値は 4 増える プログラムカウンタの値がポップされる システムスタック領域 16 ビットの長さ ステータスレジスタ 下半分にコンディションコードレジスタを含む 13 10 9 8 4 3 2 1 0 S 1 ならばスーパバイザモード 0 ならばユーザモード I2 I1 I0 現在の走行レベル X N Z V C コンディションコードレジスタ部分 ユーザスタックポインタとスーパバイザスタックポインタ 68000 には,2 個のスタックポインタがあり, モードに応じて, 使われるスタックポインタが決まる プログラムでは, ふつう, 単に %sp と書くだけ ユーザスタックポインタ スーパバイザスタックポインタ ユーザモードで使用 スーパバイザモードで使用 トラップ命令 ユーザモード, スーパバイザモードという 2 つのモードがあることが, オペレーティングシステムの実現に必須 トラップ命令の使用法 番号 を付ける例 ) trap #0, trap #1 トラップ命令の機能 ユーザモードから, スーパバイザモードへの切り替え ( 遷移 ) 番号 に応じて, 定められたプログラム ( サブルーチン ) が自動的に呼び出される

プログラム trap #0 trap #1 ユーザモードで動く トラップ命令 trap #0 用例外処理プログラム rte トラップ命令でも, 復帰 trap #1 用 に rte を使用 例外処理プログラム rte スーパバイザモードで動く トラップ命令でも, 復帰に rte を使用 トラップ命令の用途 オペレーティングシステムの機能を呼び出すときトラップ命令を使う 通常, プログラムはユーザモードで動く ユーザモードでは, 特権命令 が実行できないなどの 保護 が働く システムの資源のアクセスなどは, オペレーティングシステムに依頼するという形を取る オペレーティングシステムの機能は, トラップ命令で呼び出され, スーパバイザモードで実行される スーパバイザモードなので, ステータスレジスタの操作など特権命令が実行可能 トラップ命令の使い方 番号 は 0 から 15 まで trap #0, trap #1..., trap #15 それぞれ, 例外ベクタ番号は,20(16) から 2F(16) まで 20, 21,..., 2F(16) ハードウエア割り込み 外部要因の割り込み CPU の端子 (IPL0,IPL1,IPL2) に信号が来ることで発生普通 : 000 (3 つとも 0) 割り込み : 001, 010, 011, 100, 101, 110, 111 3 ビットのビットパターン 例外ベクタ番号 ( 例外の種類を表す番号 ) も, 外部からの信号で受け取る

割り込みレベル 割り込みの優先度のこと ハードウエア割り込み時の,CPUの端子(IPL0, IPL1,IPL2) の信号ビットパターンで,1から7に 決まる IPL0,IPL1,IPL2 割り込みレベル 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 割り込みマスク ステータスレジスタの 3 つのビット (I2,I1,I0) に, 現在の例外処理のレベルが入っている より高レベルの割り込みのみを受け付ける例 ) いま, ステータスレジスタの I2, I1, I0 に 5 が入っているとしようハードウエア割り込みが来ると優先度が 5 以下 : 無視される優先度が 6 以上 : 受け付ける 例外として, 優先度 7 のものだけは, 無視されることはない I2, I1, I0 に 7 が入っていても, 6 が入っているのと同じ 割り込み禁止 例 ) move #0x2700, %sr 13 10 9 8 4 3 2 1 0 1 1 1 1 0 0 0 0 0 S I2 I1 I0 X N ステータスレジスタの I2, I1, I0 を強制的に 7 に設定 すると, 優先度 6 以下のハードウエア割り込みは無視されることになる move #0x2400, %sr など, 他の走行レベルに設定することももちろん可能 意図的に I2, I1, I0 を書き換えることを 割り込み禁止 という Z V C 割り込み禁止の手順 割り込みを禁止しておきたい ときは ステータスレジスタを, システムスタックに保存 move.w %sr, -(%sp) 割り込み禁止 move.w #0x2700, %sr 割り込み禁止をやめてもよくなったら, ステータスレジスタの復帰 move.w (%sp)+, %sr

割り込み禁止の手順 プログラム何かの例外処理プログラム割り込みの発生 例外処理を呼び出す rte move.w %sr, -(%sp) move.w #0x2700, %sr /* 割り込み禁止部分 */ move.w (%sp)+, %sr 例外処理プログラム中では, しばしば, 割り込み禁止が必要になる