1

私はちょうどそれらの間の基本的な違いを知りたいと思っていました。TRAP、ソフトウェア割り込みとハードウェア割り込みの違いは?

TRAPは基本的にソフトウェア割り込みなどとも呼ばれ、例外のようなものがあります。

また、ソフトウェア割り込みと例外の基本的な違いは何ですか?

ソフトウェア割り込みはINT命令で生成できますが、TRAPはゼロで割るような特定のシナリオでのみ生成できますか?そうですか?

このクエリには、s/w割り込みトラップと例外を適切に回答してください。

+0

私たちは、質問やディスカッションサイトの場所ではありません。 – Olaf

+0

トラックまたはトラック、中括弧またはサスペンダー、休日または休暇。もちろん他のものを追加することもできます。 1つの会社の1グループの人間は、1つまたは1組の用語を使用します。データシート、データブック、リファレンスマニュアル、ユーザーマニュアル、プログラマーリファレンスマニュアル、テクニカルリファレンスマニュアルなど特定の言葉にぶら下がりすぎて頭を翻訳する人はいないあなたはそれらをトイレに向けるのですか? –

+0

特定のデータシートまたはいくつかの名前付きマニュアルを読んでいる間に、単語の前後の文脈を使って、チップベンダーまたはマニュアル作成者が特定の用語を使用していることが分かり、うまくいけばそれを推し進めることができます。例えば、ARMは例外と割り込みの両方を使用しますが、例外のいくつかは周辺(コアの外部)割り込みからのもので、未定義命令のような内部的なものもあります。そのため例外テーブルのアドレスcortex-m)がありますが、ハードウェア割り込みによるものもあります。 –

答えて

5

用語は実際には少しぼやけており、CPUベンダーによって異なる場合があります。

明らかなことは、ハードウェア割り込みがハードウェア信号によってトリガされ、CPUがあらかじめ定義されたISRを入力することです。これらは、(通常は外部の)ハードウェアによってトリガされる例外です。

トラップの表記は、CPUベンダによって少し異なります。インテル以外のCPUのトラップ(たとえば、68000またはPowerPC CPUの場合)は、ソフトウェア割り込みである可能性があります。これらのCPUにはTRAP命令があります。 x86では、この命令はPowerPC TRAP #xx上のARM CPU SWI/SVCのINT xxxになります。これは、Intelの世界で

トラップも分裂のような例外的な条件、ゼロによるまたは無効なメモリアクセスのような他のエラーです(かもしれないが、意図的に(通常、オペレーティングシステムを入力するために使用される)ユーザプログラムによってトリガ例外だろうセットされた単一ステップフラグによってトリガーされる)。他のCPUベンダーは単にそれを例外と呼びます。これらは通常、誤ったプログラムまたは正常なプログラムフロー中にCPUが処理できない状態によってトリガされる例外です。

これらはすべて通常という例外と呼ばれます。

+0

返事ありがとう、それは有益でしたが、私は指摘したいと思っていましたが、ソフトウェア割り込みとTRAPは例外ですが、ソフトウェア割り込みはソフトウェアによって引き起こされる割り込みです。 INT命令または何らかの他の命令であり、TRAPはユーザプロセスの例外である。ゼロ除算や無効なメモリアクセスが原因です。カーネルルーチン(システムコール)を呼び出す一般的な方法は、ユーザーコードよりも優先順位が高いためです。 –

+0

@Emil。トーマス(私は何か別のものを書いたことに気づいていません)それはIntelの用語です。しかし、答えに指摘されているようなものもあります。あなたのコメントの最後の部分は奇妙です。しかし、プロセッサの状態をより高い特権レベルに引き上げると、より多くの/他のメモリやI/Oにアクセスすることができます(INTのように)。例外。 – tofro

関連する問題