01_Hardwaregrundlagen Flashcards
1
Q
Klassifizierungen
A
2
Q
Aufbau und Funktion einer CPU
A
- Fetch: Von der Adresse im Speicher, auf die der Inhalt von BZ zeigt, den Befehl holen
- Decode: Den Befehl decodieren, d.h. aus dem Operationscode des Befehls ermitteln, was zu tun ist (Register laden, oder Multiplizieren oder Subtrahieren)
- OP: Aus dem Befehl die Adressen des/der Operanden entnehmen (Registernummer, evtl. Speicher- adresse), Operanden in OP1/2 laden
- Exec: ALU mit den nötigen Steuersignalen versehen und Befehl ausführen
- Store: Ergebnis auf der im Befehl enthaltenen Operandenadresse speichern (Registernummer oder Speicheradresse)
3
Q
CPU - Pipelining
A
- jeder Befehl in einem Takt ausgeführt
- getrennte Einheiten der CPU nacheinander beschäftigt -> Ausführung verschachteneln
- Konflikt: in Folgebefehl Ergebnis des vorherigen benötigt / Durchführen von Sprüngen (alle Folgebefehle aus Pipeline verworfen)
4
Q
Befehle - Aufbau
A
- spiegeln Aufbau der CPU
- Arbeitsregister: Akkumulator
- Anzahl d. verwendeten Adressen = Anzahl der verfügbaren Register
- je mehr Register, desto breiter wird Befehl
- CPU mit 32 Registern: bei 3-Operandenadressierung 3 * 5 Bit im Befehlscode
5
Q
Befehle - Varianten der Operandenadressierung
A
- unmittelbar (als Zahl)
- direkt (Speicheradresse)
- indexed (zur Laufzeit, in Register)
6
Q
Assembler
A
- Maschinenbefehle spiegeln physikalische Struktur - nur auf CPU-Familie ausführbar, für die sie erzeugt wurden
7
Q
Busse
A
- alle Komponenten über selbe Busleitungen verbunden
- i.d.R. kommunizieren je nur zwei Teilnehmer
- Unterscheidung der Teilnehmer durch Adressen
- alle müssen ständig Adressen abhören und schauen, ob sie angesprochen wurden
- Bereiche RAM, ROM + I/O
8
Q
Peripheriegeräte/Controller
A
- Aufgabe: CPU-Bus an angeschlossene Geräte anpassen + CPU von Routinearbeiten mit diesen Geräten entlasten
- z.B. DMA -> CPU hat mit Datenübertragung nichts zu tun -> Zeit für andere Aufgaben
- Prüfsummen zur korrekten Übertragung -> von Controller autonom durchgeführt
9
Q
DMA - Direct Memory Access
A
- Speichertransfer selbsttätig durchführen
- notwendige Parameter: Adresse d. Sektors auf Platte + Startadresse im RAM + Anzahl der zu transferierenden Bytes
- DMA-Controller fordert den Bus an (HLD = HOLD) -> CPU schaltete Daten- und Adresseleitungen inaktiv
- CPU gibt Bus an SATA-Controller frei (HLDA = HOLD Acknowledge)
- SATA-Controller führt den Transfer durch
- SATA-Controller gibt den Bus wieder frei - nimmt Signal HLD zurück
10
Q
Interrupt
A
- Gegensatz: Polling = ständiges Nachfragen – würde CPU extrem belasten
- CPU wird bei Abarbeitung von Befehlen durch Hardwaresignal unterbrochen
- signalisiert externe Ereignisse
- Interrupt-Controller verwaltet Interrupt-fähige Geräte
- in jedem Befehlszyklus von CPU wird nach Interrupt geschaut – bevor sie nächsten Befehl holt
11
Q
Interrupt
Signalfluss (Hardware)
A
- Gerät (Devx) stellt Interruptanforderung
- Interruptcontroller gibt Signal an CPU
- CPU quittiert Anforderung mit INTA (INTERRUPT Acknowledge) + fordert Interruptvektor an identifiziert Interruptgerät
- CPU unterbricht Programmbearbeitung
- CPU führt Interruptreaktionsroutine aus Abb.: Pfeile sind Hardwareleitungen
12
Q
Interrupt
Ablauf
A
- Ereignis tritt ein. Interrupt-Leitung wird aktiviert
- CPU nimmt Aktivierung zur Kenntnis, führt aktuellen Befehl zu Ende
- CPU legt Flags, Codesegment und Befehlszeiger auf den Stack
- CPU holt von einer definierten Adresse (Interrupt-Sprungtabelle, seit 80386: Interrupt- Gate) ein neues Codesegment, Instruction-Pointer und setzt die Befehlsausführung an dieser geholten Adresse fort.
- Die Interruptreaktionsroutine wird ausgeführt
- mit Befehl iret der Interruptreaktionsroutine wird zum unterbrochenen Programm zurückgekehrt -> CPU lädt IP,CS, Flags zurück vom Stack, das unterbrochene Programm wird nahtlos fortgeführt.
1-4 fest in Hardware verdrahtet
Anwendung: page fault exceptions, Anwendungen BS-Aufruf ermöglichen, Debuggen
13
Q
Interrupt
Interrupt-Sprungleiste
A
- vektorisierter Interrupt
- mit Interrupt Index mitgegeben - spezifiziert Startadresse für Reaktionsroutine
14
Q
Interrupt
Interrupt Description Table
A
- IDTR-Register in heutigen Prozessoren -> Position und Länge der IDT abgelegt
- in Tabelle Interrupt-Gates abgelegt -> enthalten Startadressen der Reaktionsroutine + Kennzeichen ob verfügbar (p) + Privilegstufe (DPL)
- möglich aus Code-Umgebung mit DPL 3 in DPL 0 (BS) zu wechseln
-
Interrupt-Controller zwischen CPU + Peripherie, wenn Peripherie keinen Interrupt-Vektor liefern kann
- liefert Vektor
- koordiniert Interrupts
- kann Interrupts an CPU durchlassen o. sperren (maskieren)