Was ist eigentlich ein Schattenregister?


Antworten:


11

Ich vermute, Sie haben dies in Bezug auf die PIC-Programmierung angetroffen. Ursprünglich wurden E / A-Ports in PICs sehr direkt behandelt - Sie konnten lesen, welche Werte sie extern hatten, oder welche Werte Sie ausgeben, beide auf dieselbe Adresse schreiben. Der Nachteil dabei war, dass der Wert, den Sie ausgeben wollten, möglicherweise nicht mit dem Status auf dem Pin übereinstimmt - etwas anderes könnte ihn stärker antreiben oder die Änderung nur noch nicht abgeschlossen haben. Dies bedeutete, dass eine separate Variable benötigt wurde, um zu verfolgen, welchen Status Sie beabsichtigten, anstatt zu erhalten, wenn Sie nur Teile eines Ports aktualisieren wollten. Wie ich mich erinnere, ist diese separate Variable das, was normalerweise als Schattenregister bezeichnet wird, da Sie sie immer zum Speichern einer Kopie des (unsichtbaren) Ausgaberegisters verwendet haben. Neuere PICs vermeiden dies, indem sie die "Latch" -Adressen hinzufügen. wo das Ausgangsregister gelesen werden kann. Dies ist auch bei anderen Mikrocontrollern üblich, z. B. bei Port- und Pin-Adressen des AVR.

In der PC-Architektur gibt es einen ähnlichen Begriff für den Schattenspeicher. In diesem Fall bedeutet dies normalerweise einen RAM-Bereich, der zum Speichern einer Kopie eines langsameren ROMs verwendet und derselben Adresse zugeordnet wird. Auch hier wird eine Kopie eines anderen Speichers gespeichert, der ausgeblendet ist, weil die Kopie ihn im Adressraum ersetzt.

Bearbeiten: Da es sich um ein TMS320 handelt, bietet das Schattenregister einen doppelten Puffer. Diese Technik wird verwendet, um sicherzustellen, dass Aktualisierungen zum richtigen Zeitpunkt durchgeführt werden. Vergleichen Sie die Verwendung von Frame Buffer Swaps in Grafiken. Das separate Handbuch beschreibt die Funktion jedes Blocks. In diesem Fall wird der Schattenmodus in Abschnitt 2.2 erwähnt. Datenhandbuch zeigt Schatten- und aktive Versionen mehrerer Register. Stellen Sie sich zum Beispiel ein Register vor, das das Ende eines Impulses anzeigt. Wenn Sie ihn auf einen kürzeren Impuls ändern, kann dies dazu führen, dass ein Impuls niemals beendet wird (da er in diesem Zyklus niemals dem Endwert entspricht). Wenn Sie jedoch in das Schattenregister schreiben, kann es von der Hardware an einem als sicher bekannten Punkt in das aktive Register kopiert werden - beispielsweise genau dann, wenn sich der Zeitgeber ändert. Dies ist im Datenhandbuch nicht beschrieben, das bestimmte Parameter für einen bestimmten Chip abdeckt. Wenn ich TI kenne, gibt es wahrscheinlich eine


3
Eine andere Verwendung des Begriffs "Schatten", der insbesondere für Register verwendet wird, ist die Zuordnung von Architekturregisternamen zu verschiedenen physikalischen Registern, um ein schnelles vollständiges oder teilweises Umschalten des Kontexts zu ermöglichen. ("Banked Register" wird manchmal als Synonym verwendet.) Dies dient normalerweise dazu, Interrupts zu beschleunigen.
Paul A. Clayton

1

Schatten- und Spiegelregister beziehen sich alle auf Register, auf die von mehreren Adressen aus zugegriffen werden kann. Beispielsweise hat in der Hardware ein gegebenes Register eine Instanz, die sich bei F00h befindet. Wenn es jedoch einen Alias ​​bei 1F00h hat, ist das Lesen oder Schreiben auf F00h dasselbe wie das Lesen oder Schreiben auf 1F00h und umgekehrt.


2
Es wäre eine schöne Ergänzung, wenn Sie erklären würden, wozu diese Schattenregister dienen.
Rev1.0

0

Einfach ausgedrückt, ist das Schattenregister ein Register, das im Mikrocontroller entwickelt wurde, um bestimmte Daten zu speichern, die später verwendet werden sollen. Der Name "Shadow" impliziert, dass ein Wert dupliziert und erneut verwendet werden muss, damit er nicht verloren geht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.