2016-05-01 11 views
0

In der Atmel AVR-Architektur befinden sich Register und SRAM im selben Datenspeicherbereich (zum Beispiel 0x0000 bis 0x001F wären Register und 0x300 wäre interner SRAM). Wie wird das umgesetzt? Ist es das gleiche Prinzip wie der virtuelle Speicher?Atmel AVR SRAM vs Register

+0

Ich würde denken, dass die Ähnlichkeit zu Memory-Mapped I/O größer ist, wo Geräteregister in den Adressraum abgebildet werden. –

Antwort

1

Es könnte sein oder sie könnten separate Widder sein oder sie könnten mehrere separate Widderblöcke sein. Es beginnt im Prozessorkern und dann, insbesondere wenn der Kern die Harvard-Architektur ist, Befehl gegen Daten abruft, in mindestens zwei Busse aufgeteilt wird, dann kommt man auf den Datenbus und dann hat man eine Art Adressdecoder, um Peripheriegeräte zu isolieren ram und vielleicht register von sram.

Es kann sehr gut sein, dass sie einfach Teil des generischen sram sind. Oder es könnte sein, dass sie ihre eigene Ram-Bank näher am Prozessor sind, aber das ist zufällig adressierbar. Und diese Adressdecodierung kann im Kern passieren und es nicht an die Kante des Prozessors schaffen, wo die sram- und periphere Decodierung stattfinden würde.

Wenn geteilt dann ja, kann es ein wenig wie virtueller Speicher fühlen, in dem es einen Platz in einem Adressraum gibt, um auf etwas anderes zu mappen. Aber im Gegensatz zu virtuellem Speicher, den Sie nicht haben mmu tun es, vor allem können Sie neu programmieren oder die Berechtigungen überprüfen, usw.

Diese Adressierung Register Sache ist eine Funktion in einem anderen 8-Bit-Prozessor, möchte ich sagen, die 8051, so könnte der AVR auch mit einer solchen Funktion ausgestattet sein. Aber wie BCD Math Anweisungen, ist eine Funktion, die auf der Strecke geblieben ist. Viel wahrscheinlicher, es nicht zu sehen, als es zu sehen.