260 likes | 508 Views
組込みシステム 講義. (第5巻). 3年次後期2単位選択 担当: 玉野 和保. 単元9(1/ 13 ). 第9単元 組込み OS の概要. 講義の意味と位置づけ OS と Monitor の違い OS の構造 OS の操作事例 組込み OS 仮想メモリ 講義で解説すること OS の役割と構成 JOB 、 TASK 、 Thread の違い 仮想メモリ μ i-TRON と組込み Linux. 講義の意味と位置づけ マイコンの定義 コンピュータと電卓の違い コンピュータの類別 マイコンの類別 講義で解説すること マイコンとは何か
E N D
組込みシステム 講義 (第5巻) 3年次後期2単位選択 担当: 玉野 和保
単元9(1/ 13 ) 第9単元 組込みOSの概要 • 講義の意味と位置づけ • OSとMonitorの違い • OSの構造 • OSの操作事例 • 組込みOS • 仮想メモリ • 講義で解説すること • OSの役割と構成 • JOB、TASK、Threadの違い • 仮想メモリ • μi-TRONと組込みLinux • 講義の意味と位置づけ • マイコンの定義 • コンピュータと電卓の違い • コンピュータの類別 • マイコンの類別 • 講義で解説すること • マイコンとは何か • マイコンのコンピュータ界での位置づけ
単元9(2/ 13 ) OS(OperatingSystem)とMonitor • OS: ハードウェアを抽象化したインタフェース • APIをつなぐソフトウェア • [ハードウェアを直接操作するカーネルと • ユーザー使用のアプリケーションであるユーザーランドをつなぐ • 管理システム] • Monitor: • ハードウェアの動作を監視、 • ジョブやタスクの運転 • システムプログラム • [システムは利用者が管理]
単元9(3/ 13 ) OSの構造 Application Program OS ProgramInterface Kernel API Hardware
単元9(4/ 13 ) JOB、Process、TASK、Thread JOB: ユーザー側からの仕事 Process: コンピュータ側からの仕事 TASK:コンピュータシステム内での仕事の単位 TASK同士は独立 Thread: TASK内で複数の処理を並行的に処理 する機能。 Thead同士は同じTASKを 扱うこともある
単元9(5/ 13 ) OSの役割 • 人間とコンピュータシステムとのインタフェース • アプリケーション・ソフトウェアへの資源の解放 • コンピュータ・システム間のインタフェース • コンピュータ・システムに接続されている資源の有効利用 • コンピュータ・システムの変更や新機能の 追加機能
単元9(6/ 13 ) パソコンのOSCP/MMS/DOS
単元9(7/ 13 ) OSの操作事例 TYPE あるいは CAT 命令の処理 Operting system Interface KernelAPI SystemCall • 入力Command待ち • 「TYPE」のTASK作成 • Error message表示 • File Aの文字列表示 入力 TYPE A • CREATE(TYPEA) • FileAの確認 Hard ware 存在? No Yes • File AのOpen可 • File Aを1行読出 • EOFを読むまで実行 • TASK 「TYPE」を終了 繰返し操作
単元9(8/ 13 ) 組込みOSの構造 Application Prog. OS Application Program Prog.Interface NetworkManagement Module File StorageManagement Module Kernel API Kernel API 仮想化 Hardware PERIPHERAL DEVICE MODULE CPU MMU TIMER POWER Resouce ManagementModule
単元9(9/ 13 ) Multi-Thread処理の基本概念 CPU Prog.A Thread A DataA Thread A Thread B Prog.B Cache Thread B DataB TBL
単元9(10/ 13 ) メモリを仮想化したSingle Task処理 OSCORE 物理ページアドレス ページ内アドレス アドレス変換テーブル 仮想ページアドレス ページ内アドレス TASK Schedule TABLE TASK 1 TASK 2 Cache ・ TASK n TBL メモリ領域は一般的に1ページ(00h~FFh) ・ TASK M
単元9(11/ 13 ) HD利用の仮想メモリ基本原理 モデル: メインメモリ:16MB(物理アドレス) HD上メモリ:32MB 動作: CPU: 仮想メモリをメインに取込 プログラム:変換テーブルで処理 ※ソフトだけでは遅いのでハード で処理 → 連想メモリ(TLB) を使用(配線で変換)
単元9(12/ 13 ) μi-TRON、組込みLinux 組込みLinux • マルチスレッドはメモリ空間で処理され、基本的にリアルタイム処理ではない • 各プログラムはすべてページごとに割り付けられ(0番地から始まる) ※ ローダー負担が少ない • ファイル管理システムがKernel 内で処理 μi-TRON • タイマーによる時分割でマルチスレッドを処理するリアルタイム処理 • 同一アドレス空間内でOSとアプリケーションが実行 • 信頼性、セキュリティが弱い • ミドルウェアを志向して、柔軟なファイル管理システムを提供 • スレッド間同期や割り込み管理が優れている
単元10(1/ 18) 第10単元 リアルタイムOSの概要 • 講義の意味と位置づけ • 割り込みと分岐機能 • 割り込みのハードウェア • リアルタイムOS • TRONシステム • 時分割マルチ処理 • 講義で解説すること • 割り込み、分岐、コール処理の違い • TRON ChipとTRONの発展 • 時分割と処理分割による多重化 • 講義の意味と位置づけ • マイコンの定義 • コンピュータと電卓の違い • コンピュータの類別 • マイコンの類別 • 講義で解説すること • マイコンとは何か • マイコンのコンピュータ界での位置づけ
単元10(2/ 18) 割り込み機能と分岐機能(その1) 割り込み(Interrupt) 通常の処理に無関係に、信号あるいはデータ読み込みで他の処理を優先させて処理する機能 割り込みデータ→アドレス に対応させたベクトル処理 通常の命令実行を中断して実行 Program Counter(PC)を書き換える 分岐後はそれまで処理したデータのうち、PC以外のデータは保証しない 割り込み処理後は通常の処理に戻ることができる 割り込み処理の種類 • 臨時の優先処理を割り込ませる ソフトウェア処理(条件付き分岐の代替え) ハードウェア処理(入出力機器の信号、データ処理) • 緊急の処理(エラー処理) • 定期的割り込みによるリアルタイム管理
単元10(3/ 18) 割り込み機能と分岐機能(その2) 分岐処理(Jump、GoTo) プログラム中の命令実行により同じプログラム中の別の位置に移動 Program Counter(PC)を書き換える 分岐後はそれまで処理したデータすべて保証しない 分岐処理後はそれまでの処理に戻らない サブルーチンコール処理 プログラム中の命令実行により別に用意したモジュール処理に移動 Program Counter(PC)を書き換える 分岐後はそれまで処理したデータのうち、PC以外のデータは保証しない 分岐処理後はそれまでの処理に戻る
単元10(4/ 18) 割り込み、分岐、コール処理の得失 • 割り込み処理 割り込み要求でつぎのマシンサイクルで処理が始まるので高速処理が可能 リアルタイム処理が可能 割り込み処理のためのハードウェアを必要とすることが多く、回路がやや複雑 • 分岐処理 プログラム中での処理の流れがよく分かる 分岐に要する時間は長いので、リアルタイム処理には向かない ソフトウェアのみで処理でき、特別なハードウェアを必要としない 分岐中で分岐処理が入れ子構造になると処理内容がスパゲッティ化 • サブルーチンコール処理 機能別に処理内容を制御でき、大規模システム構築が系統的に設計可能 分岐に要する時間は最も長いので、リアルタイム処理には向かない ソフトウェアのみで処理でき、特別なハードウェアを必要としない
単元10(5/ 18) 割り込みのハードウェア M1 MPU IORQ G 245 NMI ・・・・・・ Address Low Byte INT DIR B A • NMI(Non Mask-able Interrupt): 端子がLowで、つぎのM1サイクルで指定 番地(Z80:0066H番地)へ飛ぶ マスクできないので緊急処理に利用 • INT: 端子がLowで、つぎのM1サイクルでIORQを出力し、I/Oデバイス(上図 の74LS245)から1バイトデータを読み込み、IRレジスタのデータを上位バ イト、読み込みデータを下位バイトとするアドレスへ移動DATA BUSから
単元10(6/ 18) 割り込みのハードウェア M1 MPU IORQ G 245 INTのMODE: (Z80の事例) • INT0: PCは変化せず、DATA BUSから読み込んだデータを命令として実行 I/Oデバイスからの読み込みデータで処理に利用。 多くはI/Oデバイスによる通信処理に利用 • INT1: DATA BUSからデータは読まず、自動的にRST7命令と同じく0038H へ移動 • INT2: DATA BUSから1バイトデータを読み込み、Iレジスタのデータを上位 バイト、読み込みデータを下位バイトとするアドレスへ移動 NMI ・・・・・・ Address Low Byte INT DIR B A • NMI(Non Mask-able Interrupt): 端子がLowで、つぎのM1サイクルで指定 番地(Z80:0066H番地)へ飛ぶ マスクできないので緊急処理に利用 • INT: 端子がLowで、つぎのM1サイクルでIORQを出力し、I/Oデバイス(上図 の74LS245)から1バイトデータを読み込み、IRレジスタのデータを上位バ イト、読み込みデータを下位バイトとするアドレスへ移動DATA BUSから
単元10(7/ 18) ソフトウェア割り込み(ベクトル処理) Z80のゼロ頁アドレッシング • RST00H (RST0) 00000000:Prg.Restartに使用 • RST08H (RST1) 00001000: • RST10H (RST2) 00010000: • RST18H (RST3) 00011000: • RST20H (RST4) 00100000: わり算エラーや通信障害などの処理に利用 • RST28H (RST5) 00101000: • RST30H (RST6) 00110000: • RST38H (RST7) 00111000:この命令はFFHなので、メモリ中のデータFFHを 命令と間違えて読み込んだとき動作。 プログラム暴走チェックに利用
単元10(11/ 18) PIC16F84Aの割り込み処理 割り込みの発生 ・タイマ0(TMR0):カウンターが255で ・RB4~RB7:ピンからの信号 ・RB0/INT:外部入力 ・EEPROM: 書き込み終了時 ・ ・ ・ //10ms毎に割り込みによりLEDを点滅 #INT_RTCC TMR0_WARIKOMI(){ set_timer0(61); //TMR0レジスタに初期値をセット----これで10ms毎に割り込みを発生 counter--; //割込み実行回数をカウントするcounterから1減らす if(counter==0){ //counterが0ならLED点滅処理 led=0x0c-led; //LEDは0x0cと0x00の交互に切り替わる RB.higer=led: //ポートBの上位4ビットにLEDを出力 counter=50; //割込み処理実行回数初期値50に戻す } }
単元10(12/ 18) リアルタイムOS処理のハードウェア ハードウェアによるリアルタイムOSのための処理法 割り込みを利用しタスクを時分割処理 時間経過 CPUの処理 割り込みで処理 割り込みで処理 各処理が併行して実行 メモリ管理 通信制御 JOB管理
単元10(13/ 18) リアルタイムOS処理のハードウェア ハードウェアによるリアルタイムOSのための処理法 割り込みを利用しタスクを時分割処理 時間経過 • 割り込み発生で、タスク処理内容毎にベクトル化 ベクトル化: 割り込みアドレスでタスク処理プログラムアドレスへ移動 アドレスデータがそのまま命令に対応でき、処理が早い • タイマーICにより発生した規則的な信号で割り込みを発生 CPUの処理 割り込みで処理 割り込みで処理 メモリ管理 通信制御 JOB管理
単元10(14/ 18) リアルタイムOSのモデル MEMORY USART TIMER(T ms) Peripheral Device Module TASK A Page 1 外部信号 T ms毎に割り込み INT INT CPU ① TASK Aの実行 T ms T ms INT ② ④ ⑨ TASK Bの実行 INT ⑥ T ms T ms TASK Aの実行 ② ⑩ Scheduler ⑧ TASK Bの実行 最初 ⑦ ⑤ Vector TASK A Page 2 ③ Vector TASK B TASK B Cache IP、他実行DATA TASK A ⑥ IP、他実行DATA TASK B
単元10(15/ 18) TRON CHIP The Real Time Nucleus Chip • 坂村健博士(東大)が提唱したTRONプロジェクトで設計されたCPUアーキテクチュア。 • 仕様は公開。 どのメーカーでも仕様によってCPUを製作可能。 • 32ビットCPU。 アーキテクチャはCISC(Complex Instruction Set Computer)。 • 直交性のよい汎用命令に、頻繁使用命令だけを固定長にした縮小命令セットのRISC(Reduced Instruction Set Computer)も加えて定義。 • タスクはその優先度でスケジューリング。
謝 辞 第9、第10単元のコンテンツ作成にあたり、授業の効果的進展のため 以下の文献からの写真図表を多大に引用させて頂いた。 厚く感謝申し上げます。 • 山崎 傑:オペレーティング・システム入門、CQ出版 • 阪田史郎、高田広章:組込みシステム、オーム社出版 • 高田直人:CによるPIC活用ブック、東京電機大学出版局