"carl hamacher"というコンピュータ組織のBasic I/Oを使っているうちに、私は多くの用語を混同しています。ステータスレジスタとコントロールレジスタの関係は?
割り込みI/Oでは、デバイスが割り込みを発生するたびに、プロセッサは現在実行中のプログラムを中断し、プログラムカウンタとステータスレジスタの内容を保存し、ISRによって割り込みを処理しています。実行命令から実行され、保存された状態レジスタとPCが復元されます。
しかし、私は...-以下の点で立ち往生しています:それは1が、その後I/Oデバイスからの割り込みREQが受け入れられている場合
フラグIEは、(割り込みイネーブル)があります。
一方、もう1つの点があります。
I/Oデバイスのインターフェイスには、デバイスの動作モードを制御する情報 を含む制御レジスタが含まれています。このレジスタの1ビットは、制御を中断するために専用の にすることができます。 I/Oデバイスは、このビット は今、この制御レジスタとその彼らが話しているビットれているもの1
に設定されている場合にのみ、割り込み要求を提起することが許可されていますか?それはIEのフラグとは異なりますか?ステータスレジスタとコントロールレジスタの関係は?
はさらに
デバイスが割り込みを要求しているかどうかを決定するために必要な情報は、そのステータスレジスタの使用可能 であるもう一つの点があります。デバイスが割り込み要求を発生させると、ステータスレジスタに ビットが1にセットされます。これはIRQビットと呼ばれます。 割り込みデバイスを識別する最も簡単な方法は、割り込みサービスルーチンがシステム内のすべてのI/Oデバイスをポーリングするようにすることです。 IRQビットが1に設定された状態で最初に検出されたデバイスは、サービスを受けるべきデバイスです。 が適切なサブルーチンが、要求されたサービス
を提供するために呼び出され、私は完全に混乱していますすなわちIE、IRQおよび制御レジスタのビット これらの3ビットとの関係を説明してください。.. !!!
IRQは、割り込みreq ....を受け入れる/拒否するために使用されるIE(割り込みイネーブル)フラグと似ています。つまり、デバイスが割り込み要求を処理したい場合、IEビットは1でなければなりません。私は正しい? – sourav
@sourav IRQはデバイスのピンです(デバイスのチップを表す破線のボックスの外側です**)。デバイスは割り込みの**ソース**です。*割り込みを生成します。しかし、割り込みを生成できるようにするには、制御レジスタの* IRQen *ビットが1でなければならず、ANDが0になるので、* IRQ *(このように割り込みは要求されません)。 * IE *と* IRQen *は基本的に2つの異なるビューからの同じ概念です:最初は*割り込みを受け付けません* 2番目は*割り込みを出させない*。 –
okkありがとう! – sourav