TMS320F28335 DSPのShadow Register
データシートを調べているときに、この用語に気付きました。実際にはどういう意味ですか?汎用レジスターのように、CPU内に物理的な場所がありますか?
TMS320F28335 DSPのShadow Register
データシートを調べているときに、この用語に気付きました。実際にはどういう意味ですか?汎用レジスターのように、CPU内に物理的な場所がありますか?
回答:
PICプログラミングの観点からこれに遭遇したと思います。PICのI / Oポートは元々非常に直接的な方法で処理されていました。外部からどの値を読み取るか、出力する値を同じアドレスで書き込むことができます。これの欠点は、出力しようとした値がピンの状態と一致しない可能性があることです。他の何かがそれをより強力に駆動したり、変更をまだ完了していない可能性があります。これは、ポートの一部のみを更新する場合、取得するのではなく、意図した状態を追跡するために別の変数が必要であることを意味しました。私が思い出したように、別個の変数は、通常、シャドウレジスターと呼ばれるものです。これは、(不可視の)出力レジスターのコピーを常に格納するために使用したためです。最近のPICでは、「ラッチ」アドレスを追加することでこれを回避していますが、ここで、出力レジスタを読み取ることができます。これは、AVRのポートアドレスとピンアドレスなど、他のマイクロコントローラーでも一般的です。
シャドウメモリのPCアーキテクチャにも同様の用語があります。その場合、通常は低速のROMのコピーを保存するために使用され、同じアドレスにマップされるRAMのセクションを意味します。再び、他のストレージのコピーを保存しますが、コピーはアドレス空間でそれを置き換えるため、非表示になります。
編集:TMS320であることがわかると、シャドウレジスタはダブルバッファを提供します。この手法は、適切なタイミングで更新が行われるようにするために使用されます。グラフィックスでのフレームバッファスワップの使用を比較します。データマニュアルショーの影といくつかのレジスタのアクティブバージョン。たとえば、パルスの終わりを示すレジスタを考えてください。短いパルスに変更する場合、パルスがまだ終了していないときに変更すると、1つのパルスがまったく終了しなくなる可能性があります(そのサイクルの終了値と等しくならないため)。しかし、シャドーレジスタに書き込む場合、ハードウェアは、安全であることがわかっているポイントで、たとえばタイマーがラップアラウンドしたときなどに、それをアクティブレジスタにコピーできます。これは、データマニュアルには記載されていません。このマニュアルでは、特定のチップの特定のパラメーターについて説明しています。TIを知っている可能性が高い別冊各ブロックの機能を説明します。これについては、セクション2.2でシャドウモードについて言及しています。
シャドウおよびミラーレジスタはすべて、複数のアドレスからアクセスできるレジスタを参照します。たとえば、ハードウェアでは、特定のレジスタにはF00hにある1つのインスタンスがあります。ただし、1F00hにエイリアスがある場合、F00hへの読み取りまたは書き込みは1F00hへの読み取りまたは書き込みと同じです。