41

ウィキペディアで「ARMアーキテクチャ」を読んで、次のステートメントを見つけました。

レジスタR0〜R7は、すべてのCPUモードで同じです。彼らは決して銀行に預けられません。

R13とR14は、システムモードを除くすべての特権CPUモードでバンクされます。

レジスターの銀行取引とはどういう意味ですか?

4

3 に答える 3

30

レジスターバンキングとは、同じアドレスにレジスターの複数のコピーを提供することを指します。

アームドキュメントのセクション1.4.6から取得

この用語は、すべてのレジスタを一度に表示できるわけではないという問題の解決策を指します。

プロセッサモードごとに異なるレジスタバンクがあります。バンクレジスタは、プロセッサの例外や特権操作を処理するための迅速なコンテキスト切り替えを提供します。

より理論的な推論をお探しの場合は、この論文をお勧めします。
編集:私のものよりもはるかに深い答えがここに与えられています

于 2012-11-17T16:12:53.993 に答える
16

プロセッサが例外に入ると、バンクされたレジスタはこれらのレジスタの別のセットに自動的に切り替えられます。

実際には、例外ハンドラー ルーチンは、後で (例外ハンドラー関数によって) 上書きされるのを防ぐために、これらのレジスターをスタックに保存する必要はありません。プロセッサは、そのセットの安全なコピーを保持するだけです。例外が返されたときに元のセットを復元します。

于 2014-02-14T17:34:00.540 に答える