プロセッサ割り込みの性質、ハード割り込み、ソフト割り込み、および例外の違い

プロセッサ割り込みの性質、ハード割り込み、ソフト割り込み、および例外の違い
ハード割り込み、CPU外部のハードウェア、導入された割り込み、ランダム。
ソフト割り込み、CPUで実行されているソフトウェアが割り込み命令を実行し、導入された割り込みは事前に設計されています。
割り込みマスキング
ハード割り込みはマスク可能ですが、ソフト割り込みはマスクできません。
割り込みの入れ子
ハード割り込みを入れ子にすることができるかどうか、およびそれらに優先順位があるかどうか(ハードウェア設計システムによって決定されます)。
Softirqをネストすることはできませんが、同じタイプのsoftirqを異なるCPUで並列に実行できます。

  1. 割り込みの起源
    1956年、ERA1103Aコンピュータシステムは割り込みメカニズムを導入しました。
    ERA 1103Aは、風洞試験データを受信して​​処理し、データ処理結果を風洞に返すために使用されます。ただし、風洞データの準備時間は比較的長く、ERA 1103Aは待機状態にとどまることができ、この時間は無駄になります。ERA 1103Aの利用率を向上させるために、風洞データを待機している間に他のプログラムを実行するための中断線につながります。風洞データが到着すると、中断線はERA1103Aに現在の作業を停止するように指示します。風洞データを受信します。
    上記は、元の割り込み設計のプロトタイプです。
    ここに画像の説明を挿入

ERA 1103Aコンピュータシステム
2.割り込み分類
最近のプロセッサの割り込みの概念はますます広範になり、外部デバイスの割り込みに限定されていません。
割り込みの意味は、CPUが外部デバイスを制御している間、外部デバイスも効率的に「CPUを制御」できるということです。この設計アイデアは、外部ハードウェア制御CPU、ソフトウェア制御CPU、およびCPU動作管理の3つの側面に拡張されます。
したがって、イベントイベント表現を使用する方が適切ですが、通常の説明では、基本的に割り込みという単語が引き続き使用されます。
次の図に、主に割り込みと例外を含むイベントのカテゴリを示します。外部ハードウェア制御CPUはハードウェア割り込みに対応し、ソフトウェア制御CPUはソフトウェア割り込みに対応し、CPU動作管理は例外に対応します。
ここに画像の説明を挿入

2.1ハードウェア割り込み
ハードウェア割り込みは、マウス、キーボード、ネットワークカードなど、最も頻繁に接触するタイプのイベントであり、ハードウェア割り込みを生成する可能性があります。CPUは、外部ハードウェアデバイスがハードウェア割り込み要求をいつ生成するかを知らず、ハードウェア割り込みを事前に生成する前提を知らないため、ハードウェア割り込みは非同期イベントです。
CPUおよび外部IOデバイスは、1つまたは複数のハードウェア接続を介してハードウェア割り込み信号を送信します。このハードウェア配線は、SoC内または外部PCBに実装できます。
割り込みコントローラIPがCPUに統合された後、各IOデバイスの割り込み信号ラインをSoC内の割り込みコントローラに接続できます。たとえば、非常に一般的なARM GICは、外部IOデバイスのハードウェア割り込みを処理できるだけでなく、CPU間のハードウェア割り込みも処理できます。その内部構造を次の図に示します。
ここに画像の説明を挿入

内部GIC
外部IOデバイスは、通常PICと呼ばれる割り込み制御チップを介してCPUに接続できます。
ここに画像の説明を挿入

このような割り込み制御チップの最も代表的なものは、マイクロコンピュータの原理コースにあるIntel8259です。
ここに画像の説明を挿入

Intel 8259 PIC
これは、Intel8085およびIntel8086マイクロプロセッサ用に設計されたProgrammableInterrupt Controller(PIC)です。8259は、複数の割り込み入力ソースをメインマイクロプロセッサへの単一の割り込み出力に結合し、システムで使用可能な割り込みレベルをプロセッサチップの1つまたは2つのレベルを超えて拡張します。この階層的でスケーラブルな割り込みアーキテクチャの設計コンセプトは、今日の高性能GICにも見られます。
2.2ソフトウェア割り込み
オペレーティングシステムが非特権コードがシステムリソースに直接アクセスするのを防ぐと仮定すると、アプリケーションはこれらの保護されたリソースにどのようにアクセスできますか?この時点で、ソフトウェア割り込みがこれを達成できます。ソフトウェア割り込みは、アプリケーションが終了するか、オペレーティングシステムにサービスを要求したときに発生します。システムコールがソフトウェアコードに含まれている場合、ソフトウェア割り込みは同期イベントとして理解できます。
CPUは、ソフトウェア割り込み信号を受信すると、一時的に割り込みハンドラプログラムに制御を切り替える場合があり、割り込みによって中断されたカーネル内のプロセス(たとえば、プログラムの実行中のインスタンス)は、割り込みが受け入れられた後に再開されます。 。
ここに画像の説明を挿入

アプリケーションプログラムは、システムコールに基づいてアプリケーション層とオペレーティングシステムカーネル間の通信を完了し、CPUの制御を実現します。
ここに画像の説明を挿入

2.3例外
CPU例外は、無効なメモリアドレスにアクセスしたり、ゼロで除算したりする場合など、さまざまなエラー状況で発生し、応答するために例外処理メカニズムが生成されます。アーキテクチャが異なるプロセッサでは、例外タイプの定義が異なりますが、CPUワークプロセスで許容できないエラーや強制停止命令などが発生するというのが基本的な考え方であり、例外は次のように分類できます。
ここに画像の説明を挿入

フォールト例外の場合、通常、ソフトウェアコードの継続的な動作には影響しません。このような例外には、主に次のものが含まれます
。oゼロ除算操作
o無効なオペコード
oデバイスを使用できない
トラップ例外の場合、JTAGデバッグがより一般的です。CPUがデバッグコマンドを受信すると、例外モードに入ります。このような例外には主に次のものがあります
。oブレークポイント
oオーバーフロー
oデバッグ命令
中止例外の場合、より一般的なものは命令フェッチ例外です。実行する命令がRAMから正しく取得されない場合、CPUは中止例外に入ります。このような例外には、主に次のものが含まれます
。oメモリフェッチエラー
oバスエラー
oキャッシュエラー

参照リンク
https://mp.weixin.qq.com/s/hG2Zp8imtvTATjclsUYVEwhttps://blog.csdn.net/weixin_44124323/article/details/115914946

おすすめ

転載: blog.csdn.net/wujianing_110117/article/details/123367473