実際にシャドウレジスタとは何ですか?


15

TMS320F28335 DSPのShadow Registerデータシートを調べているときに、この用語に気付きました。実際にはどういう意味ですか?汎用レジスターのように、CPU内に物理的な場所がありますか?


どのマイクロコントローラーですか?
レオン・ヘラー

@LeonHellersorryミス..そのdsp ... TMS320F28335
noufal

回答:


11

PICプログラミングの観点からこれに遭遇したと思います。PICのI / Oポートは元々非常に直接的な方法で処理されていました。外部からどの値を読み取るか、出力する値を同じアドレスで書き込むことができます。これの欠点は、出力しようとした値がピンの状態と一致しない可能性があることです。他の何かがそれをより強力に駆動したり、変更をまだ完了していない可能性があります。これは、ポートの一部のみを更新する場合、取得するのではなく、意図した状態を追跡するために別の変数が必要であることを意味しました。私が思い出したように、別個の変数は、通常、シャドウレジスターと呼ばれるものです。これは、(不可視の)出力レジスターのコピーを常に格納するために使用したためです。最近のPICでは、「ラッチ」アドレスを追加することでこれを回避していますが、ここで、出力レジスタを読み取ることができます。これは、AVRのポートアドレスとピンアドレスなど、他のマイクロコントローラーでも一般的です。

シャドウメモリのPCアーキテクチャにも同様の用語があります。その場合、通常は低速のROMのコピーを保存するために使用され、同じアドレスにマップされるRAMのセクションを意味します。再び、他のストレージのコピーを保存しますが、コピーはアドレス空間でそれを置き換えるため、非表示になります。

編集:TMS320であることがわかると、シャドウレジスタはダブルバッファを提供します。この手法は、適切なタイミングで更新が行われるようにするために使用されます。グラフィックスでのフレームバッファスワップの使用を比較します。データマニュアルショーの影といくつかのレジスタのアクティブバージョン。たとえば、パルスの終わりを示すレジスタを考えてください。短いパルスに変更する場合、パルスがまだ終了していないときに変更すると、1つのパルスがまったく終了しなくなる可能性があります(そのサイクルの終了値と等しくならないため)。しかし、シャドーレジスタに書き込む場合、ハードウェアは、安全であることがわかっているポイントで、たとえばタイマーがラップアラウンドしたときなどに、それをアクティブレジスタにコピーできます。これは、データマニュアルには記載されていません。このマニュアルでは、特定のチップの特定のパラメーターについて説明しています。TIを知っている可能性が高い別冊各ブロックの機能を説明します。これについては、セクション2.2でシャドウモードについて言及しています。


3
特にレジスタに適用される「シャドウ」という用語の別の使用法は、アーキテクチャのレジスタ名を異なる物理レジスタにマッピングして、高速の完全または部分的なコンテキスト切り替えを可能にすることです。(「バンクレジスタ」は同義語として使用される場合があります。)これは通常、割り込みを加速することを目的としています。
ポールA.クレイトン

1

シャドウおよびミラーレジスタはすべて、複数のアドレスからアクセスできるレジスタを参照します。たとえば、ハードウェアでは、特定のレジスタにはF00hにある1つのインスタンスがあります。ただし、1F00hにエイリアスがある場合、F00hへの読み取りまたは書き込みは1F00hへの読み取りまたは書き込みと同じです。


2
それらのシャドーレジスタの目的が何であるかを説明するなら、それは素晴らしい追加です。
Rev1.0 14

0

簡単に言えば、シャドウレジスタは、後で使用する特定のデータを保持するためにマイクロコントローラ内で考案されたレジスタです。「Shadow」という名前は、ある値を複製して再び使用することを意味します。したがって、失われることはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.