MCU CPU Flashcards

1
Q
  1. [Betont] Erklären Sie den Unterschied zwischen einem Mikroprozessor, Mikrocontroller und Signalprozessor:
A

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.)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind typische Klassifizierungskriterien für Mikrocontroller und/oder Mikroprozessoren? Erklären Sie ihre Bedeutung.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was sind typische Auswahlkriterien für Mikrocontroller und/oder Mikroprozessoren?

A

● Preis
● Verfügbarkeit
● Kompatibilität
● Stromverbrauch
● Wartbarkeit
● Integrität (Störungssicherheit)
● Entwicklungstools

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

[Betont] Was bedeutet RISC und was bedeutet CISC-Architektur? Was ist ihre Unterscheidung? Welche Architektur wird von den Cortex-M-Controllern verwendet?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

[Betont] Welcher Mikrocontroller wird in der Klasse verwendet?

A

STM32-L432KC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie viele Bus-Subsysteme sind in dem in der Klasse verwendeten Mikrocontroller eingebaut?

A

AHB-Bus, AHBP1, AHBP2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie viel Speicher und welche Speichertypen sind in dem im Unterricht verwendeten Mikrocontroller verbaut? Wofür werden diese Speicher verwendet?

A

1x Flash Memory -> Programmspeicher 256K Flash

2x SRAM für den Datenspeicher (48+16k) SRAM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was sind Aufgaben einer CPU-Ausführungseinheit? Skizzieren Sie die Grundbausteine und erklären Sie ihre funktionalen Schnittstellen zur umgebenden Peripherie.

A

● 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche Aufgaben hat ein CPU-Steuergerät? Skizzieren Sie die Grundbausteine und erklären Sie ihre funktionalen Schnittstellen zur umgebenden Peripherie.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welche Flags werden von den Cortex-M-Prozessoren verwendet? Erkläre sie.

A

● 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Illustrieren und erklären Sie eine typische Befehlspipeline. Welche Vor- und/oder Nachteile treten manchmal auf?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Explain typical command types of a CPU.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Erklären Sie typische Adressierungsmodi. Gib ein paar Beispiele.

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Erklären Sie den Unterschied zwischen I/O-abgebildeten und speicherabgebildeten Zugriffen.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was ist der Zweck eines Linker-Skripts? Welche Abschnitte müssen bei Verwendung des GNU-Linkers definiert werden? Was wird in diesen Abschnitten gespeichert?

A
  • Definiert an welchen Stellen (Adressen) RAM und ROM zu finden sind,
  • enthält die Größe der Abschnitte
  • liest, schreibt und führt Flags aus.
  • Definiert die Heap- und Stack-Größe,
  • enthält den Speicherort für Code, Daten und isr-Vektoren. (.text,.rodata,.data,.bss).
17
Q

Was ist eine HAL library?

A

STM stellt eine Hardware-Abstraktionsbibliothek (HAL) zur Verfügung, um die bereitgestellten Peripheriegeräte zu konfigurieren und zu handhaben.