MCU CPU Flashcards
- [Betont] Erklären Sie den Unterschied zwischen einem Mikroprozessor, Mikrocontroller und Signalprozessor:
Mikroprozessor:
* CPU-Kern (Control- & Execution-Einheit) und on-Chip-Cache Speicher.
* Aufwändiges Registersystem
* Auf hohen Datendurchsatz ausgelegt
* Anwendungen: PC-Systeme, Rechner allgemein
Mikrocontroller:
- Mikroprozessor und eigener Speicher
- Peripherie (ADC, UART, USB, TIMER, PWM)
- Für Embedded Systems
- Komplexes System für Interruptbehandlung (auf Events reagieren)
- Sicherheitseinrichtungen (Watchdog Timer)
Signalprozessor:
* Ausgelegt: Komplizierte arithmetische Operationen mit hoher Geschwindigkeit durchzuführen
* Spezielle ALUmit MAC-Einheit (Multiply and Accumulate).
* Anwendung: Digitale Signalverarbeitung (Filter, Effekte für Handy etc.)
Was sind typische Klassifizierungskriterien für Mikrocontroller und/oder Mikroprozessoren? Erklären Sie ihre Bedeutung.
Breite des Datenbusses (8, 16, 32, 64 Bit): bestimmt Obergrenze der Zahlenwerte, die CPU in einem Befehl verarbeiten kann.
Command Structure: RISC & CISC
Organisation:
- Havard: Gentrennter Programm- & Datenspeicher & getrennte Bussysteme.
- Von Neumann: Gemeinsamer Speicher und BUS für Programmcode.
Geschwindigkeit:
- MIPS (Million instruction per second)
- GFLOPS (Giga floating point operatioins)
Anwendungsbereich: Microcontroller, Microprozessor, Signalprozessor
Was sind typische Auswahlkriterien für Mikrocontroller und/oder Mikroprozessoren?
● Preis
● Verfügbarkeit
● Kompatibilität
● Stromverbrauch
● Wartbarkeit
● Integrität (Störungssicherheit)
● Entwicklungstools
[Betont] Was bedeutet RISC und was bedeutet CISC-Architektur? Was ist ihre Unterscheidung? Welche Architektur wird von den Cortex-M-Controllern verwendet?
RISC (Reduced instruction set computer):
o Reduzierter Befehlssatz
o wenige und einfache Befehle -> einfacherer Prozessoraufbau
o Befehle sind alle gleich groß -> effizienter
CISC (complex instruction set computer)
o großer Befehlsumfang
o komplexe Addressierungsmöglichkeiten
● Cortex-M verwendet RISC
[Betont] Welcher Mikrocontroller wird in der Klasse verwendet?
STM32-L432KC
Wie viele Bus-Subsysteme sind in dem in der Klasse verwendeten Mikrocontroller eingebaut?
AHB-Bus, AHBP1, AHBP2
Wie viel Speicher und welche Speichertypen sind in dem im Unterricht verwendeten Mikrocontroller verbaut? Wofür werden diese Speicher verwendet?
1x Flash Memory -> Programmspeicher 256K Flash
2x SRAM für den Datenspeicher (48+16k) SRAM
Was sind Aufgaben einer CPU-Ausführungseinheit? Skizzieren Sie die Grundbausteine und erklären Sie ihre funktionalen Schnittstellen zur umgebenden Peripherie.
● ALU (Arithmetische logische Einheit) Recheneinheit: Rechnet arithmetische (ADD, SUB) und logische Operationen (AND, OR, XOR, NOT)
● CU (Control Unit) Steuereinheit
● General purpose registers: Für Datenaustausch und Datenverwaltung in internen Registern.
● Adressregister Für Adressierung der Daten: Erledigt das Handling der Daten –> Ablegen im Hauptspeicher/Laden von dort.
● Flag register: Enthält Flags von der ALU der zuletzt durchgeführten Rechenoperation.
Welche Aufgaben hat ein CPU-Steuergerät? Skizzieren Sie die Grundbausteine und erklären Sie ihre funktionalen Schnittstellen zur umgebenden Peripherie.
Bausteine:
● Programm Counter: Enthält Adresse des nächsten Befehls
● Cache: Beinhaltet den Befehl, der momentan ausgeführt wird
● Instruction Pipeline: eine Art „Fließband“. Decodiert den Befehl und leitet weitere Maßnahmen ein, um den Befehl auszuführen. Währenddessen wird bereits der
nächste Befehl in die Pipeline geladen.
Aufgaben:
● Liest Befehle und Daten aus Speicher
● Decodiert die Befehle und entscheidet was auszuführen ist
● Steuert die Ausführungseinheit über Steuersignale und lässt Befehl ausführen
● Schreibt Ergebnis zurück in den Speicher
Erklären Sie typische Aufgaben einer arithmetischen Logikeinheit. Erklären Sie den Zusammenhang mit dem Statusregister. Welche Informationen werden im Statusregister geführt? Gib ein paar Beispiele.
Die arithmetische Logikeinheit (ALU) führt Rechenoperationen der CPU aus.
Im Statusregister werden Ergebnisse von Rechnungen angeführt.
z.B.: Wenn das Ergebnis 0 ist, wird ein Z-Bit (ZERO), bei einem negativen Ergebnis das NEGATIVE-Bit im Statusregister (Flag Register) gesetzt.
Welche Flags werden von den Cortex-M-Prozessoren verwendet? Erkläre sie.
● NEGATIVE: Heutige Mikroprozessoren verwenden zur Darstellung vorzeichenbehafteter Zahlen das Zweierkomplement. Negative Zahlen erkennt man am gesetzten höchstwertigen Bit. Das Sign-Flag wird entsprechend diesem Bit gesetzt.
● ZERO: Ist das Zero-Flag gesetzt, dann war das letzte Rechenergebnis gleich Null. Bei einem Vergleichsbefehl werden zwei Operanden, ohne sie zu verändern, intern subtrahiert. Dann zeigt das Zero-Flag an, ob diese beiden Operanden gleich sind.
● OVERFLOW: Ist das Overflow-Flag gesetzt, dann trat bei der letzten Rechenoperation ein Überlauf auf, wenn man von vorzeichenbehafteten Operanden ausgeht.
● CARRY/BORROW (Übertrag): Ist dieses Flag gesetzt, dann trat bei der letzten Rechenoperation ein Übertrag auf, wenn man von vorzeichenlosen Operanden ausgeht.
● ISR (Interrupt Service Routine): Ist ein Unterprogramm einer Interruptflag. Bei einem Interrupt wird das Anwendungsprogramm unterbrochen, dann wird das auslösende Interruptflag gelöscht und die ISR, die den Interrupt löst, aufgerufen.
Illustrieren und erklären Sie eine typische Befehlspipeline. Welche Vor- und/oder Nachteile treten manchmal auf?
Die Befehlspipeline besteht aus mehreren Stufen zur Bearbeitung von mehreren Befehlen gleichzeitig.
● FETCH: Befehl wird aus dem Speicher geladen.
● DECODE: Befehl wird decodiert
● EXECUTE: Befehl wird ausgeführt
● WRITE BACK: Ergebnis wird wieder abgespeichert.
Vorteil:
● Verarbeitungsgeschwindigkeit der CPU kann erheblich erhöht werden, da viele Befehle gleichzeitig verarbeitet werden können.
Nachteile:
● Control Hazard: Wenn die Pipeline falsche Entscheidungen bezüglich der Verzweigungsvorhersage trifft und daher Anweisungen in die Pipeline bringt, die anschließend verworfen werden müssen.
● Ressource Hazard: Daten werden von einem derzeit ausgeführten Befehl gelesen, gleichzeitig soll aber auch auf die Speicherstelle dieser Daten geschrieben werden.
● Data Hazard: Abhängigkeiten zwischen den einzelnen, sich in der Pipeline befindlichen Befehlen.
Explain typical command types of a CPU.
Datenübertragrungsbefehle in/aus dem Speicher:
o IDA [Speicher]
o MOV [Speicher]
o PUSH/POP [Stack]
Arithmetische und logische Befehle:
o ADD, SHIFT, AND, …
o JUMP and BRANCH Befehle
Kontrollbefehle
o Verändern des Stack-Pointers
o Power-down
o Interrupt-Verwaltung, etc
Erklären Sie typische Adressierungsmodi. Gib ein paar Beispiele.
Direkte Adressierung:
Das Adressfeld enthält eine Speicheradresse. Die angesprochene Speicherzelle enthält den adressierten Operanden.
Bsp.: LDA addr Funktion: A=mem(addr) … der Operand wird geladen (geholt)
Indirekte Adressierung:
Das Adressfeld des Befehls referenziert eine Speicherstelle, deren Inhalt die Adresse des Operanden (und nicht den Operanden selbst) darstellt. Um auf den Wert des Operanden zugreifen zu können muss zwei Mal auf den Speicher zugegriffen werden.
Unmittelbare Adressierung (immediate addressing): Referenziert einen konstanten Wert aus dem Adressfeld, welches ja „unmittelbar“ dem OpCode folgt.
Bsp.: LDA,C addr Funktion: A = addr (Im Adressfeld ist die Konstante)
Erklären Sie den Unterschied zwischen I/O-abgebildeten und speicherabgebildeten Zugriffen.
I/O-mapping (isolierte Adressierung) – Dabei existieren zwei voneinander getrennte Adressräume für den Arbeitsspeicher und den Peripheriespeicher (die I/O-Ports).
Speicherabgebildeter Zugriff: Bei der Memory-mapped I/O-Methode befindet sich der I/O-Bereich im Arbeitsspeicher. Der Zugriff erfolgt über eine Speicheradresse.