割り込み応答性能について | |||||||||||||||||||||||||||||||||||||
![]() ここで報告するリアルタイムLinuxのバージョンは1.1(Linux 2.0.36ベース)です。 ●プラットフォーム この調査で使用したパソコンはGateway社Solo9100。ノートブックタイプのIBM PC/AT クローンです。
●MPU資源割り当て /procは次のとおりです。 割り込み(IRQ) 0: 15780 timer 1: 297 keyboard 2: 0 cascade 3: 0 3c575 8: 1 + rtc 12: 3118 PS/2 Mouse 13: 1 math error 14: 3632 + ide0 15: 29 + ide1 I/Oポート 0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0070-007f : rtc 0080-009f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : npu 0100-013f : cb_enabler 0170-0177 : ide1 01f0-01f7 : ide0 02f8-02ff : serial(auto) 0376-0376 : ide1 03c0-03df : vga+ 03f0-03f5 : floppy 03f6-03f6 : ide0 03f7-03f7 : floppy DIR 03f8-03ff : serial(auto) fc90-fc97 : IDE DMA fc98-fc9f : IDE DMA DMA 4: cascade●テストプログラム 調査のために作成したテストプログラムはプリンターポートから入力される割り込み信号に対する応答としてパルス信号をプリンターポートへ出力するというものです。このプログラムは種種のパラメータをWWWブラウザーのGUIから設定できるようにしてあります。 注意:この画面でパラメータを設定しても今お使いのコンピュータには何も影響は与えません。 ●結果 シグナルジェネレータを使って矩形波を生成しこれを割り込み信号としプリンターポートに入力しました。プリンターポートに入力した割り込み信号と出力される応答パルス波をオシロスコープで測定することによって結果を得ました。
最速値 ![]() 1024回測定 ![]() 測定の結果割り込み応答時間は約5μ秒〜約9μ秒であることが判りました。ただし、9μ秒はあくまでも1024回測定の範囲内でのワーストケースであり、真のワーストケースは分りません。原因は2つ考えられます。
RT-Linuxの場合、カーネルに割り込みハンドラを要求するとカーネルはその関数のアドレスを void (*RTaction[16])(void);という配列のIRQの番号に相当する場所に格納します。プリンタ割り込み信号(IRQ7)が発生した場合、割り込みベクターから最初にカーネル内の次の場所(割り込みゲート)に制御が渡されます。この処理の中で更にRTaction[7]、つまりあらかじめ登録しておいた割り込みハンドラをコールします。ここまでの時間が最速でも5μ秒かかるということです。 rt_IRQ7_interrupt: push %ds push %es pushl %eax pushl %edx pushl %ecx movl $0x18,%edx mov %dx,%es mov %dx,%ds movb $0x20,%al outb %al,$0x20 call *(RTaction + 7 * 4) popl %ecx popl %edx popl %eax pop %es pop %ds iret 一方、タイマー割り込みは優先度が高いため、他の割り込み処理を遅らせる効果があります。タイマー割り込みの処理の流れは下のようになっています。この間に他の優先度の低い割り込み処理は待たせられる、つまりこれが9μ秒の原因ではないかと考えられます。更に、もっと悪いことには、通常のLinuxにスケジューリングされた場合そのデバイスドライバが不用意に発する割り込みマスクのためこの割り込み遅延はもっと大きく不確定になる事が予測できます。
●実用性についての考察 リアルタイムOSとしてみた場合は割り込み遅延のワーストケースが予測できないことは問題です。従って、リアルタイムLinuxをリアルタイム処理へ応用する場合は事前にこの遅延が許容できるかどうかを判断すべきです。 | |||||||||||||||||||||||||||||||||||||
Copyright c 2001-2004 Ogane System Design Office
|