7

割り込みに関して基本的な疑問があります。割り込みを持たないコンピュータを想像してみてください。そのため、I/O を行うために、CPU は一定の間隔でキーボードをポーリングし、キーを押したり、マウスをクリックしたりする必要があります。割り込みがある場合、CPU は割り込みラインがハイ (またはロー) になったかどうかを定期的にチェックし続けます。では、割り込みを使用することで CPU サイクルがどのように節約されるのでしょうか。私の理解では、デバイスをチェックする代わりに、割り込みラインをチェックしています。誰かが私が間違っている基本的なロジックを説明できますか?

※ここでのポーリングとは、CPU がビジーウェイトという意味ではありません。ウィキペディアを引用すると、「ポーリングは、デバイスの準備が整っているかどうかを繰り返しチェックし、そうでない場合、コンピューターが別のタスクに戻る状況も指します」

4

5 に答える 5

3

割り込みラインをチェックするのに CPU サイクルはかかりません。これは、CPU 命令ではなく、専用のハードウェアによって行われます。割り込みと呼ばれる理由は、割り込みラインがアサートされると CPU が中断されるためです。

于 2012-04-30T18:37:24.640 に答える
1

「CPUが割り込みました」:通常のプログラム実行を終了(保留)してからISR(割り込みサブルーチン)を実行し、中断したプログラムの実行に戻ります。

CPUはIRQ(割り込み要求)とIF(割り込みフラグ)を介して割り込みを知るようになります

于 2012-04-30T20:01:38.430 に答える
-1

コンピュータシステムの I/O を処理するには、2 つの異なる方法 (ポーリングと割り込み) があります。ポーリングでは、CPU は継続的にビジーなままで、入力データが I/O デバイスに渡され、そうであれば、対応するデバイスのソース ポートとその入力の優先順位をチェックして、それを提供します。

割り込み駆動型アプローチでは、データが I/O デバイスに与えられると、割り込みが生成され、CPU はその入力の優先順位をチェックして処理します。

于 2016-02-03T01:26:13.937 に答える