Karteikarten
3.5.2 Computersysteme II, Memory-Mapped IO
Karten in diesem Stapel (24)
- 1Was kennzeichnet "Memory-Mapped IO"?Dabei werden die IO-Register in den allgemeinen Adressraum eingeblendet
- 2Was ist der Vorteil von "Memory-Mapped-IO"?Damit kann komfortabel auf Peripherie-Geräte zugegriffen werden.
Diese sind somit über normale Speicherzugriffsinstruktionen
(LOAD oder STORE) les- und beschreibbar - 3Was ist bei Memory-Mapped-IO neben dem physikalischen Hauptspeicher noch im Adressraum vorzufinden?eine ganze Reihe von Registern und Speicherbereichen anderer Komponenten oder auch ungenutzte bzw. mit Spezialfunktionen belegte Bereiche.
- 4Muss bei virtueller Speicherverwaltung und Memory-Mapped-IO der gesamte Adressraum mit physikalischem Speicher hinterlegt sein?Nein
- 5Was passiert bei einem Zugriff auf einen Adressbereich, der nicht physikalisch mit Speicher oder andere Komponenten hinterlegt ist?Ein Zugriff darauf würde zu einer Ausnahmesituation (Exception) führen, die entsprechend behandelt werden muss
- 6Nenne ein Beispiel für die Probleme welche bei Memory-Mapped-IO mit der Zeit ersichtlich wurden.Die 3-GB-Barriere
bei 32-Bit-Systemen - 7Woraus resultierte die 3GB-Barriere bei 32-Bit-SystemenEs wurden oft höhere Speicherbereiche für Geräte und IO reserviert.
Über die Zeit wurden immer größere physikalische Speicher möglich,
nur dass dieser dann deshalb nicht unbedingt vollständig nutzbar war - 8Welches Problem wird versucht, durch das sogenannte "Bitbanding" zu lösen?Ein einzelnes Bit auf einfache Art- und Weise
im Speicher verändern zu können, ohne die Anderen Bits zu verändern - 9Wo kommt das Setzen eines einzelnen Bits besonders häufig vor, so dass das dort "Bitbanding" besonders nützlich ist?Bei Konfigurationsregistern
externer Komponenten - 10Fasse die Funktionsweise von "Bitbanding" in einen einzelnen Satz zusammen.Dabei wird für jedes Bit eines bestimmten Speicherbereichs ein ganzes 32-Bit-Speicherwort zugeordnet, um dieses komfortabel setzen zu können
- 11Für welchen Speicherbereich wird "Bit-Banding" in der Regel verwendet?üblicherweise für den Speicherbereich, in dem Ein- und Ausgabekomponenten eingeblendet werden
- 12Was ist der sogenannte "Bit-Band"-Bereich ?Das ist der Speicherbereich, bei dem durch das Bit-Banding einzelne Bits, gesetzt oder nicht gesetzt werden können sollen
- 13Was ist das sogenannte "Bit-Band-Alias"-Bereich?Der Bereich im Speicher, auf den der Bit-Band-Bereich abgebildet wird. D.h. dort befinden sich die Speicherwörter, die einzelnen Bits aus dem Bit-Band-Bereich zugeordnet sind
- 14Ein wie großer Bitbandbereich wird bei einem 32-Bitsystem für einen Speicherbereich von 1 MB benötigt? Warum?Ein 32 MB-großer Bitband-Bereich
Weil für jedem ursprünglichen Bit,
32 Bits im Bit-Band-Alias-Bereich zugeordnet sind - 15Welches Bit eines Speicherwortes im Bit-Band-Alias-Bereich ist das einzig entscheidende Bit für das Bitbanding zum Setzen oder Rücksetzen?Nur das jeweils unterste Bit des Speicherwortes
- 16Wieviel Speicher liegt beim ARM Cortex-M4 (32-Bit) zwischen dem Bit-Band-Bereich und dem zugehörigen Alias-Bereich?31 MB
- 17Wie lässt sich die Basis-Adresse des Bit-Band-Alias-Bereiches aus der Basis-Adresse des Bit-Band-Bereiches beim ARM-Cortex-M4 berechnen?Basisadresse Bit-Band-Bereich + 32 MB
oder in hexadezimal:
Basisadresse + 0x0200_0000 - 18Wie berechnet sich die Bit-Band-Alias-Adresse A für das n-te Bit (0-31) des Speicherwortes an der Adresse X ? (zwischen 0x2000_0000 und 0x200f_ffff)A =
0x2200_0000 + (X - 0x2000_0000) · 32 + n·4 - 19Welches Speicherwort muss bei Verwendung von Bit-Banding geändert werden, um das zehnte Bit eines Bit-Band-Bereiches zu ändern?Das zehnte Speicherwort im Bit-Band-Alias-Bereich
- 20Was macht die folgende Assemblerzeile (ARM)? " .equ BB_IO_COMPONENT_BIT10 (0x42000000 + 0x20 * 32 + 10 * 4) " Wann erfolgt die Berechnung?Die Berechnung einer Bit-Band-Alias-Adresse,
zur Zeit der Assemblierung - 21Was machen die folgenden 3 Assemblerzeilen? ldr r2, = BB_IO_COMPONENT_BIT10 mov r4, #1 str r4, [r2] (BB_IO_COMPONENT_BIT10 enthält eine Bit-Band-Alias-Adresse)1) berechnete Alias-Adresse in Register r2 laden
2) Hinterlegen der zu schreibenden Konstante in Register r4
3) Schreibzugriff auf die Bit-Band-Alias-Adresse - 22Wieviele Bitbandbereiche existieren z.B. beim ARM Cortex-M4? In welchen Bereichen befinden sich diese?Es existieren zwei Bit-Band-Bereiche mit jeweils 1MB Größe.
Einmal im Datenbereich des SRAM
und
im Bereich der Peripherie-Bausteine - 23Wie gliedern sich die ersten drei Adressbereiche des Adressraumes des ARM-Cortex-M4?1) Code (0x0000_0000 - 0x1fff_ffff, 512 MB)
2) Daten (0x2000_0000-0x3fff_ffff, 512 MB)
3) Peripherie (0x4000_0000-0x5fff_ffff, 512MB) - 24Wie gliedern sich die letzten vier Adressbereiche des Adressraumes des ARM-Cortex-M4?1024 MB externer RAM
1024 MB externe Geräte
1 MB private Schnittstellen
511 MB Herstellerspezifisch
Informationen
- Beschreibung
- Informatik (Computersysteme II) Karteikarten am 3.5.2 Computersysteme II, Memory-Mapped IO, erstellt von David Bratschke am 18/02/2018.
- Erstellt von
- David Bratschke
- Aufrufe
- 7
- Bewertung