2012-11-17 13 views
25

読書「ARMアーキテクチャ」と次の文が見つかりました:「バンク」とは何を意味していますか? Wikipediaの

レジスタR0-R7は、すべてのCPUモードで同じです。彼らは決して 銀行です。

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

銀行口座とは何を意味していますか?

答えて

20

レジスタバンキングとは、同じアドレスに複数のレジスタをコピーすることを指します。アームのセクション1.4.6 docs

から撮影

用語は、すべてのレジスタを一度に見ることができる問題の解決策を参照しています。

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

もっと理論的な推論をお探しの場合は、this紙をお勧めします。
編集:プロセッサは、例外に入ると地雷がhere

+1

[ARM命令セット - ARM大学プログラム](http://simplemachines.it/doc/arm_inst.pdf)pdfも参考にしてください。私は、この質問のARM.comリンクは死んでいるとか、登録が必要だと思っています。 –

+2

あなたがリンクしたISCAペーパーは、銀行とは異なる意味を指しています。そのような種類の銀行はアクセスポートの数を減らすために使われ、しばしばキャッシュ用に擬似ポートと呼ばれます。 ARMレジスタバンキングは、例外処理を簡素化および高速化することを目的としています。 (MIPSには、シャドーレジスタセットと呼ばれる同様の機能があり、GPRセット全体が複製されており、Itaniumは127個のシャドーレジスタを[+ゼロレジスタ] GPRから16個提供しています)。保存せずに例外ハンドラによって上書きされる可能性があります。 –

+0

@paul銀行レジスタの概念について詳しく説明できます –

11

を与えられるよりもはるかに深い答え、は、これらのレジスタの別のセットを使用して自動的に切り替えられるレジスタバンク。

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

関連する問題