Informationseinheiten + Länge
1 BIT => Binärziffer
1 BYTE (8 Bit) => 8 Binärziffer
1 WORD => Folge von Zeichen (16 Bit)
Welche Zahlensysteme gibt es?
Binär/Dual: Basis 2, Ziffernbereich: 0,1
Oktal: Basis 8, Ziffernbereich: 0,1,…,7
Dezimal: Basis 10, Ziffernbereich: 0,1,…,9
Hexadezimal: Basis 16, Ziffernbereich: 0,1,…,9,A,B,C,D,E,F
Subtraktion in Binär
Entweder: Negative Zahl => Zweier Komplement und addieren
0 -1 = 1, 1 an der nächsten Stelle markieren
Horner Schema
Zahl in die oberste Zeile, aufsplitten
In die mittlere Reihe am Anfang Basis b des Zahlensytems
Dann erste Ziffer addieren * b in nächsten Kästchen schreiben, zweiter Ziffer addieren …
2 er Komplement
Von Rechts beginnen alles bis zu ersten 1 abschreiben
Nach der ersten eins alle Ziffern tauschen
Achtung: Stellen beachten, positives oder negatives Ergebnis
Probleme von Gleitkommazahlen
Genauigkeitsverlust bei kleinen Beträgen
Überlauf bei hohen Beträgen
=> Gleitkommadarstellung
Gleitkommadarstellung (IEEE 754)
Schritt 1: Negative Zahl VZ = 1
Positive Zahl VZ = 0
Schritt 2: Zahl in Binär umwandeln
Schritt 3: Normalisieren damit 1,… da steht
Normalisierung merken
Schritt 4: Mantisse eintragen (das was nach dem Komma steht) mit Null auffüllen
Schritt 5: 15 + Normalisierung = Exponent eintragen
Assembler: move Befehl
MOV <Ziel>,<Quelle>
Assembler: add Befehl
ADD <Ziel>, <Quelle>
=> Ziel = Ziel +Quelle (wie MOV)
Assembler: substract Befehl
SUB <Ziel>, <Quelle>
=> Ziel = Ziel - Quelle (wie MOV)
Assembler: multiplicate Befehl
MUL <Quelle>
=> EAX = EAX * Quelle
Anmerkung: Ergebnis wird immer in 2 Register gespeichert (64 Bit)
32 Bit in EDX => wird immer überschrieben auch bei kleinen Zahlen
32 Bit in EAX
Assembler: divide Befehl
=> zuvor immer EDX 0 setzen
DIV <Quelle> => EAX = EDX:EAX / Quelle
baut Zahl aus EDX und EAX
=> EDX = Rest
Ergebnis muss in 32 Bit passen
Bsp: div ebx -> eax = edx:eax /ebx (Ergebnis)
edx = rest (eax /ebx) (Rest)
Assembler: Zieloperand wird um 1 erhöht
INC <Ziel>
Assembler: Zieloperand wird um 1 verringert
DEC <Ziel>
Assembler: Bitverschiebung nach links
SHL ( Multiplikation mit 2)
SHL <Ziel>, <Anzahl>
Assembler: Bitverschiebung nach rechts
SHR (Division mit 2)
SHR <Ziel>, <Anzahl>
Assembler: Beendet Programm
RET
Beendet auch Unterprogramme die mit CALL aufgerufen wurden
Assembler: Was sind Variabeln
statische Speicherstellen, welche einen Namen im Programm zugewiesen bekommen
Assembler: Wo werden Variabeln deklariert?
section .data
Assembler: Welche Variabeln Typen gibt es
DB: Define Byte (8 Bit) => [BYTE]
DW: Define Word (~ 16 Bit) => [WORD]
DD: Define Double Word (~ 32 Bit) => [DWORD]
DQ: Define Quad Word (~ 64 Bit) => [QWORD ?]
Assembler: Variable initialisieren Beispiel
VARIA DD 0x12
Assembler: Arbeiten mit Variabeln Beispiel:
Wert der Variable A in EAX
Adresse der Variable A in EAX
mov EAX, [A]
mov EAX, A
Assembler: Verwendung von DQ
bigVar DQ 0
section .text
mov [bigVar], eax
mov [bigVar+4], edx
Assembler: Größenangabe
Ohne Größenangabe unklar wie viele Bit verwendet werden sollen:
mov DWORD [Var2], 0xFF
Assemler: MOV Befehl: Inhalt: ebx
mox eax, ebx
Assemler: MOV Befehl: Inhalt Speicherstelle Var
mov eax, [Var]
Assemler: MOV Befehl: Adresse Speicherstellen Var
mov eax, Var
Was bedeutet LIFO
Beim Stack: Last in First out
Push: Daten oben ablegen
Pop: Oberste Daten runterschmeißen und in eine var speichern
Aufbau des Stacks?
Adressen durch SP und BP
stack pointer - SP
base pointer - BP
Assembler: Wert auf Stack ablegen
push <Quelle>
Assembler: Der oberste Wert von Stack wird auf Ziel geschrieben
pop <Ziel>
Anmerkungen zu Stack
Stack Pointer Adresse veringert sich je mehr Elemente im Stack sind
=> BP: größte Speicheradresse und SP wächst in Richtung kleinere Speicheradressen
leerer Stack => SP = BP
Stack muss am Ende des Programms geleert werden, sonst stürzt es ab oder macht an falscher Stelle weiter => Sicherheitslücke
Assembler: Print hex befehl
PRINT_HEX <Größe>, <Quelle>
=> Größe: Byte
=> Quelle: Adresse (Variablen ohne[])
=> same: PRINTUDEC / PRINT_DEC
Assembler: Print character Befehl
PRINT_CHAR <QUELLE>
=>Daten als Quelle: Charakter || String
=> same: PRINT_STRING
Assembler: Print neue Zeile Befehl
NEWLINE
Welche Arten von Flags gibt es?
Control Flags: verändern etwas
Status Flags: geben Informationen zurück
Overflow flag
arithmetischer Überlauf, dann schlägt die Flag an
OF
Sign Flag
wird gesetzt, wenn das Ergebnis einer mathematischen Operation negativ ist( nicht bei Multiplikation oder Division
SF
Zero Flag
Wenn arithmetsches Ergbenis 0 ist oder
logische Operation 0 wird
Carry Flag
wird gesetzt wenn man einen Übertrag hat
Assembler: Vergleichsbefehle
Compare (numerisch)
CMP <Ziel>, <Quelle> => Numerischer Vergleich
Assembler: Sprungbefehle
JMP <Ziel> Springe an bestimmte Stelle im Code wird immer ausgeführt = unbeding)
Bedingt:
prüfe Flags oder Register:
Wenn Bedingung erfüllt: Springe
Assembler: Schleifenbefehle
LOOP <Ziel>
-> Counter-Register (CX) gibt Anzahl der Durchläufe
Assembler: Makros: Aufbau
%macro <Name> <Anzahl Parameter>
Code
%endmacro
-> aufruf erfolgt per Name
-> jeder aufruf wird durch den Makrocode ersetzt
Assembler: Makro: Vor- und Nachteile
Vorteile
Nachteil
schnellere Entwicklung
hoher Speicherplatzbedarf ( nach dem Ersetzen)
“Erweiterung” des Befehlsatzes
individuelle höhere Assemblersprache
Assembler: Unterprogramme: Aufbau
<Name>:
Aufruf per Call:
CALL <Name>
Keine Parameterübergabe möglich
Assembler: Unterprogramme: Vorteile und Nachteile
Nachteile
häufig vorkommende Programmteile nur einmal vorhanden
anspruchvollere Programmierarbeit
modularer Programmaufbau
Verbraucht Zeit
Unterprogrammbibliothek
Unterschied zwischen Big and Little Endian
Big Endian = Vorwärtsspeicherung
Little Endian = Rückwärtsspeicherung
Vor und Nachteile im Vergleich Assembler / andere Sprachen
Assembler
Hochsprachen (z. B. Java)
nicht ohne Anpassung auf andere Computerarchitekturen portierbar
andere Compiler für andere Computerarchitektur
längerer Quellcode, da die Instruktionen weniger komplex sind
leichtere Wartung
effizientere Code
Perfomance Compiler abhängig
Hardwarenah
sehr systemnahe Operationen ggf nicht verfügbar
besseres Verständnis für Rechnerarchitektur
Assemblercode kann meist integriert werden
Meistens werden die Programme zuerst in Assembler übersetzt
Programmablauf
erzeugt Maschinencode in OBJ Datei
Linker erzeugt ausführbare Datei (z. B. .exe)
Debugger: - Überwacht Ausführung
- zeigt den Inhalt der Register
Takte in einer Schaltung
RAM: Der Speicher wird mit jedem Takt aufgefrischt
CPU: eine Berechnung pro Takt
PCIe: Daten werden mittels Takt verschickt
1 Hz = 1 Taktperiode pro Sekunge
1 MHz = 1 000 000 Takperioden/s
1 GHz = 1 000 000 000 Taktperioden/s
Grundfunktionen der Von-Neumann-Architektur
RISC (Reduced Instruction Set Computer)
kleiner Befehlssatz, Fest gedrahtet, Pipelining, großes Registerset
einfacher Chip
Aufwand bei der Software
weniger Stromverbrauch
=> weniger Zyklen pro Befehl -> Mehrere Befehle pro Programm
CISC (Complex Instruction Set Computers)
Mikroprogramme
Aufwand bei der Hardware
Weniger code
=> mehrere Zyklen pro Befehl -> weniger Befehle pro Programm
Der Von-Neumann Rechner
Klassische Rechnerarchitektur
Problemunabhängige Struktur
gemeinsamer Speicher für Computerprogrammbefehle und Daten
SISD-Architektur (Single Instruction, Single Data)
Bei Von-Neumann-Rechnern: Was macht das Steuerwerk oder Control Unit?
Dekodiert Befehle und steuert den Programmablauf (Ablaufsteuerung)
Befehlszähler und -Register
Befehle werden interpretiert und deren Ausführung veranlasst, gesteuert und überwacht
Bei Von-Neumann-Rechnern: Was macht das Execution Unit (EX)
Verknüft und verändert die zu bearbeitenden Daten
Besitzt Registerblock, Operationswerk und Statusregister
Bei Von-Neumann-Rechnern: Was macht das Speicherwerk?
NImmt Programmbefehle und Daten auf
Prinzipiell kein Unterschied zwischen Daten und Befehlen
Adress- und Datenregister (Angesprochen über Adressen)
Unterteilung in Speicherplätze (Speicherzellen, Speicherworte)
Bei Von-Neumann-Rechnern: Was macht das Eingabe/Ausgabe-Werk (E/A-Werk)?
Übergabe von Programmen und Daten
Ziel/Quelle -> externe Einheit oder Speicher
Bei Von-Neumann-Rechnern: Wie sieht eine Befehlszyklus aus?
5-Phasen für Befehlsverarbeitung:
Befehlsholphase (Instruction Fetch)
Befehlsentschlüsselungsphase (Instruction Decode)
Befehlsoperandenholphase (Operand Fetch)
Befehlsausführungsphase (Instruction Execute)
Ergebnisrückschreibephase (Write Back)
=> Befehle stehen im Speicher
=> Leitwerk “weiß” jederzeit, welcher Befehl als nächster auszuführen ist
=> Adresse des nächsten auszuführenden Befehls steht im Befehlszähler (spezielles Register des Leitwerks)
=> aufeinanderfolgende Befehle stehen in aufeinander folgenden Speicherstellen
Wie ist die Arbeitsweise von fetch?
Das Leitwerk aktiviert über den Steuerbus das Adresswerk und den -Bus
Das Leitwerk sendet die Adresse des Befehlszählers über den Adressbus an das Speicherwerk zur Speicherung im Adressregister
Das über den im Adressregister gespeicherten Wert adressierte Speicherwort wird ausgelesen und im Datenregister gespeichert
Das Befehlwort wird über den Datenbus im Befehlsregister gespeichert
Befehszähler wird erhöht oder gesetzt (Sprungbefehle)
Wie ist die Arbeitsweise von decode?
Das Befehlswort wird aus dem Befehlsregister an den Decoder gesendet
Der Decoder entschlüsselt das Befehlswort
Der Befehl wird zur weiteren Abarbeitung an die Ablaufsteuerung gesendet
Vor und Nachteile der Von-Neumann-Rechnern?
Problemunabhängig /Universell
Von-Neumann-Flaschenhals: Transport von Daten und Befehlen über den Bus
Nur eine Hardware für alle möglichen Programme/ Probleme nötig
Keiner Parallelität der Arbeitsschritte
Aufgabenspezifische Register (1x) erlauben keine Multiuser/-threading-Unterstützung
Deterministischer Programmablauf wegen sequenzieller Arbeitsweise ( SISD = Single Instruction, Single Data)
Memory-Wall: Verarbeitungsgeschwindigkeit der CPU höher als Zugriff auf Speicher
Wie erzeugt man ein ablauffähiges Programm?
Ablauf:
Preprocessor => Compiler => Assembler=> Linker
Wie ist der Speicher aufgebaut?
kernel (command-line arguments and enviroment variables)
stack
Funktionsparameter, Rücksprungsadressen, lokalen Variablen
LIFO Struktur (last in / first out)
Wächst nach unten Richtung heap
heap
dynamisch angeforderte Speicer
Wächst nach oben Richtung stack
data
Aufgeteilt: inizialisierte & nicht initialisierte Daten
Globale & static Variablen
text
ausführbarer Code (Befehle)
Wie erhöht man die Leistungsfähigkeit des Von-Neumann-Rechners?
Verlagerung der Prozessorfunktionen bei der Ein-/Ausgabe auf das E/A-Werk
Steuerung der einzelnen Funktionseinheiten über eigene Prozessoren
Bearbeitung spezieller Befehle durch Spezialprozessoren
Was versteht man unter Pipelining?
Asynchrone Trennung vo Befehlshol und -ausführung
es wird ein Befehl nach dem anderen abgearbeitet
während des 2 Taktes des 1 Befehls wird der zweite Befehl geholt usw.
Verwmeidung von Sprüngen / Parameteraufrufen:
Keine Rekursion
Keine Funktionen
=> Befehle in einer Pipeline müssen rückgängig gemacht werden
=> Optimierter Code kann daher zu schlechtem / unlesbaren Code führen
Was versteht man unter Cache?
Verlagerung der Datenhaltung:
kB-große Speicherzellen nahe an der CPU
Cache wird durch Pre-fetching gefüllt un von Controller verwaltet
Was sind Speicherzugriffe?
möglichst vermeiden (sind langsam)
Lokale statt globale Variablen
häufig genutzte Variablen in Register oder auf den Stack laden
Was ist Parallelisierung?
Vermeiden oder Mildern des Von-Neumann-Flaschenhalses
Parallelisierung verschiedener Abläufe im Computer
mehrere parallele Rechnewerke, mit gemeinsamen Steuerwerk -> SIMD (Instruktion und ein Datum einzeln bearbeiten)
Moderne Rechnerarchitekturen: Was ist ein Platform Controller Hub?
Speichercontroller und PCI-Anbindung in CPU integriert
Direkt Media Interface (DMI)
PCH übernimmt die verbleibenden Funktionen der Northbridge und die Funktionen der Soutbridge
Moderne Rechnerarchitekturen: Was sind Mikroarchitekturen?
konkrete, prozessorientierte Realisierung einer CPU
Moderne Rechnerarchitekturen: Was sind Strukturgrößen / Strukturbreite?
Größenangabe in der Halbleitertechnik
Moderne Rechnerarchitekturen: Was ermöglichen kleinere Strukturen und was sind die Nachteile?
Ermöglichen
mehr Transistoren passen auf einen Chip
hohe Entwicklungskosten
kleinere Transistoren benötigen weniger Spannung (-> weniger Energie)
Produktion im Reinraum
Schaltungen werden schneller (da kürzere Entfernung)
wenig funktionierende Prozessoren bei Beginn der Produktion
Bei Prozessor: Was ist ein Turboboost?
Eine Funktion zur automatischen Übertaktung von Hauptprozessoren. Erlaubt die bedarfsorientierte dynamische Erhöhung des Prozessortaktes.
Bei Prozessor: Was ist ein Chipset?
Kümmert sich um die Ansteuerung der “langsamen” Komponenten mittels spezieller Controller: -USB, -SATA, -Netzwerk,…
Des Weiteren werden witere PCIe Schnittstellen zur Verfügung gestellt
Wie sieht ein Mainboard aus?
Was ist PCI Express?
Peripheral Component Interconnect Express (PCIe oder PCI-E)
serielle Punkt zu Punkt Verbindung (keine parallele Übertragung von Daten)
Vollduplex (gleichzeitiges Senden & Empfangen)
Daten werden in Paketen gesendet
wird verwendet bei:
SSDs
Erweiterungskarten (USB, Netzwerk, Wi-Fi, …)
Verbindung zum Chipset
Was ist der Arbeitsspeicher?
RAM (Random Access Memory)
lesen und schreiben möglich
asynchron oder synchron möglich
Static RAM?
SRAM
bei Anliegen der Betriebsspannung bleibt der Inhalt gespeichert
verbraucht viel Chipfläche
sehr schneller Speicher
=> Verwendung als Cache
Dynamic RAM?
DRAM
periodisches Auffrischen des Inhaltes nötig
sehr hohe Datendichte
=> Verwendung als Arbeitsspeicher
Was macht der Steuerbus?
Steuerbefehle werden vom Leitwerk an die anderen Werke verschickt
Was macht der Adressbus?
Adressen, die von Speicher gelesen/Speicher geschrieben wird, werden hier transportiert
Was macht der Datenbus?
Die Daten zum Speicher oder Lesen werden transportiert
Was ist ein Dual Channel?
Kapazität beider Kanäle muss gleich sein
paralleler Betrieb über 2 Busse
höchste Geschwindigkeit
Was ist ein Single Channel?
langsamste Geschwindigkeit wird genutzt
bei einem Speicher / verschiedene Kapazitätenamic RAM (DRAM)
DDR-SDRAM
Double Data Rate Synchronous Dynamic Random Access Memory
DDR: pro Takt doppelte Daten übertragen (auf und absteigende Flanke des Taktsignals)
Was ist eine Festplatte
Hard Disk (HD)
Fester Speicher
Speicherung per Magnetisierung
direct access storage device (DASD) -> direkt zu Speicheradresse springen
einer der langsamsten Komponenten im PC
Festplatten zugriff?
Auf je mehr Fragmente eine Datei verteilt ist, desto länger dauert der Zugriff mit einer Festplatte ( Schreibkopf muss neu plaziert werden)
-> deshalb werden die Daten wenn möglichst defragmentiert
Verbesserungen bei Festplatten?
Mehr Speicherkapazität:
mehrere Magnetscheiben
kleinere & überlappende “Speicherzellen”
Mehr Geschwindigkeit
höhere Drehzahl
schneller Positionierung
Cache
Vor und Nachteile von Festplatten
niedrige Herstellungskosten
Anfällig für Erschütterungen
viel Specherplatz
Genaue Positionierung nötig
Schreib und Lesekopf muss erst platziert werden
Was ist eine SSD
Solid-State-Drive / Solid-State-Disk
nichtflüchtiges elektronisches Speichermedium
keine beweglichen Teile
Was ist ein NAND-Flash?
Flash Speicher aus NAND Gattern
Unterteilung in Pages und Blöcke ( Page einmal beschreiben -> danach gelöscht)
=> Lebenszeit ist begrenzt
Welche NAND-Flash Arten gibt es?
SLC-Speicherzelle -> ein Bit, ein Spannungslevel
MLC-Speicherzelle -> mehrere Bits mehrere Spannungslevel
TLC-Speicherzelle -> drei Bit, acht Spannungslevel
Was ist ein NOR-Flash?
Flash Speicher aus NOR Gattern
Einsatz als ROM ( Read only Memory)
Reserve für ausgefallene Blöcke (Spare Area)
Lebensdauer am Ende -> Read-Only Modus
verbraucht mehr Platz
Auslieferung komplett fehlerfrei
Speicher wird linear adressiert
=> direkte Ausführung von Code möglich
Vor und Nachteile von SSD?
Temperaturunabhängiger
höherer Preis
unempfindlicher gegen Stöße
Zellen begrenzte Lebensdaue
Daten ohne Verzögerung lesen
schnellere Transferraten
Was ist eine Grafikkarte?
steuert die Grafikausgabe
Prozessor rechnet die Daten -> Ausgabe an die Grafikkarte
integrierte Grafik im Prozessor /Erweiterungskarte
Besteht aus:
Grafikprozessor
Grafikspeicher
RAMDAC
Systemschnittstelle
Framebuffer
Fakten zu Grafikkarten?
paralleles Arbeite optimiert
viele Berechnungseinheiten (ALUs) -> viel mehr Transistoren
geringere Taktrate als CPUs
schnellere und mehrere Datenleitungen
Grafikspeicher bei Grafikarten?
Graphics Double Data Rate (GDDR)
Kann auch ein Teil des Arbeitsspeicher sein (shared memory)
Was ist VGA?
veralteter Anschluss
Video Graphics Array
analoge Bildübertragung
Was ist DVI ?
Digital Visual Interface
Strandard für den Computer-Bereich
analog & digitale Übertragung
Was ist HDMI?
Anschluss
High Definition Multimedia Interface (HDMI)
Unterhaltungselektronik
Kopierschutzkonzept (DRM) integriert
Was ist ein DisplayPort?
Übertragung von Bild- und Tonsignalen
HDMI und DVI kompatibel
Displaypanel direkt ansteuern
Was ist USB?
Schnittstelle
Universal Serial Bus
Anschluss von Peripherie, Festplatten, usw.
Hot Swapping ( in Betrieb an- und abgesteckt werden)
Host steuert die Kommunikation
Was ist USB/Hubs ?
verteilt das USB Signal an mehrere Ports
Was ist ein USB Übertragungsmodi?
Isochroner Transfer:
garantierte Datenrate
Interrupt Transfer:
kleine Datenmengen (z.B. Tastatur, Maus,…)
Bulk Transfer
große Daten, nicht zeitkritisch
Controler Transfer
besondere Art des Datentransfers
Daten werden bestätigt (sicherer Transfer)
Was ist USB TYP-C?
24 Pins für Daten und Strom
Alternate Mode für: DisplayPort, Hdmi, Thunderbolt
Was ist ein Thunderbolt?
Kombi aus DisplayPort und einer PCIe basierende Schnittstelle
6 Chips pro Steckerende => teuer
Was sind die Aufgaben des BIOS?
Basic Input Output System
Aufgaben:
wird nach Einschalten des PCs ausgeführt
Peripherie wird eingebunden & Hardware überprüft
Betriebssystem wird gestartet
Was sind Funktionen des BIOS?
Funktionen:
Initialisierung der Hardware
Power-on self-test (Sind Komponenten funktionsfähig?)
Startbildschirm
…
Was ist das UEFI?
Unified Extensible Firmware Interface
Nachfolger BIOs (64-Bit Systeme optimiert)
einfacher zu bedienen
Secure Boot
vorher signierte Bootloader werden geladen
schneller Startvorgang
Was sind Funktionen des UEFIs?
Unified Extensivle Firmware Interface
einfach zu erweitern
hochauflösende Grafikkarten werden unterstützt
Shell
BIOS-Emulator
….
Vergleich von Neumann Aktuell?
Verlgeich von Neumann Aktuell bei Transport von Daten über den Bus?
Cache im Prozessor
Speichercontroller
2 Busse am Arbeitsspeicher
Speicher direkt am Prozessor angebunden
Verlgeich von Neumann Aktuell bei Parallelität?
mehrere Cores
mehrere Steuerwerke
eigene Caches
Verlgeich von Neumann Aktuell bei Ein und Ausgabe?
eigener Controller (Chipset)
Verlgeich von Neumann Aktuell bei Spezieller Prozessor für die Grafikausgabe?
Viele parallele Cores
GPU in Prozessor
GPU als Steckkarte (über PCIe)
Was sind Interrupts?
asyncrone
Unterbrechungen laufender Programme (-> Reagieren auf Ereignisse
Auslöser: Hardware: zb. Tastatureingabe
Was ist ein Transpartenter Interupt?
unterbricht Programm
Handlerroutine wird gewechselt
Routine greift auf gleiche Komponente zu wie unterbrochenes Programm und verändert deren Zustand
Veränderter Zustand = vorheriger => transparent Interrupt
Was ist Interruptsynchronisierung?
Interrupts werden vollständig deaktiviert bis Handlerroutine ausgeführt ist
Unterschiedliche Priorisierung von Interrupts
Was ist Interrupt Verarbeitung?
Speichern des Prozessstatus auf Stack
Interrupts deaktivieren
Nachschlagen der Interrupt Routine
Ausführen der Routine
Wiederherstellen des ursprünglichen Prozesses
Interrupt Flag
CLI, Clear Interrupts -> keine Interrupts zugelassen
STI, Set Interrupts -> Interrupts zugelassen
Was sind Traps?
synchron
Auslöser: automatisch durch Softwarem (DIV / 0, Overflow,…)
Welche Arten von Traps gibt es?
Trap
Rüchsprungadresse ZU fehlerhaftem Befehl
Fault
Rücksprungadresse VON fehlerhaftem Befehl
Abort
keine Rücksprungadresse -> beenden des Programms
BareMetal Programmierung
I/O Ports
werden über IN/OUT Befehl angesprochen
Kommunikation erfolgt über Busssystem
Port Mapped I/O
Register von Peripheriegeräten werden angesprochen
x86 Betriebsmodi
Real-Mode
Protected-Mode
Long-Mode
BIOS-Boot
Prüfen des MBR
Laden des MBR in RAM
Code Ausführen
Was ist PCI?
Master-Slave Prinzip
Direct Memory Access
Initialisierung bei jedem Systemstart
PCI: Datenübertragung in min 3 Taktzyklen?
Zyklus -> Master legt Geräteadresse auf Bus
Zyklus -> Gerätebus wird von Bus entfernt, Bus wird an Slave gegeben
Slave legt Daten auf den Bus
Was ist RAID
Redundant Array of Indipendent Disks
Vorteile: Höhere Ausfallsicherheits, höhere Geschwindigkeit, HotPlug Fähigkeit
Raid Level?
Raid 0: Daten werden auf mehreren Platten gleichzeitig gespeichert
Raid 1: Daten werden gespiegelt
Raid 5: Daten werden auf Platten verteilt, eine Platte hat Paritätsinformationen
Raid 01: Daten werden gestriped und doppelt abgelegt
Raid 10: Daten werden doppelt gespeichert und gestriped
Was ist Multi-/Hyperthreading ?
Echte Parallelität: Ein Prozessor ein Task, ein anderer einen anderen Task
Was sind Threads?
Teilaufgabe innerhalb eines Prozesses
mehrere Threads teilen sich Ressourcen eines Prozesses
wird ein Prozess beendet sterben die Threads
Weshalb gilt die von-Neumann Architektur als problemunabhängig?
Da diese keine Anpassungen von Hardware an ein bestimmtes Problem benötigt
Welche Aufgaben hat das Leitwerk (Steuerwerk)
Zwei Hauptaufgabe:
steuert Befehlsfluss (Befehle aus Speicher interpretiert und die richtige Reihenfolge der Befehlsausführung)
verwaltet es die Ressourcen (einschließlich Speicher, Register und Ein- und Ausgabegeräte)
Ist der Audio-Prozessor in einem Smartphone mit einer RISC oder CISC Architektur realisiert?
RISC, da ein geringerer Befehlssatz benötigt ist + Energieeffizient
Der Datenbus zum Arbeitsspeicher wird als Dual Channel realisiert. Wie viele BYTE
können bei einer 32 Bit Architektur pro Takt (mit Double Data Rate) übertragen werden?
32 * 2 * 2 = 128 / 8 = 16
Was sind die Vorteile von SISD (Single Instruction Single Data)?
Sicher, dass nur ein Befehl ausgeführt wird => kein Überprüfen nötig,
Einfachheit, geringer Hardwareaufwand
Nennen Sie 3 Einsatzgebiete von Assembler?
Betriebssysteme, Microcontroller, Echtzeitsysteme, Treiber, etc...
Wozu dient der Stack und nach welchem Prinzip funktioniert er?
LIFO – last in first out
Temporärer Speicher
Welche Flags werden nach dem sub Befehl gesetzt (32 Bit) und was bedeuten sie?
(2 P.)
mov eax, 0xF
sub eax, 0xF
-Zero Flag: Ergebnis der Operation = 0
-Parity Flag: Im untersten Byte gerade Anzahl an "1"
Was bedeutet und bewirkt folgender Assemblerbefehl: mov ebp, esp?
Stack leeren,
Ebp wird aus esp gesetzt
Weshalb sind Unterprogramme langsamer bei der Programmausführung als Makros
und warum benötigen sie weniger Speicherplatz?
-Call Befehl kostet Zeit (Sprung)
-Da Makros kopiert werden in den Code, ist die Datei größer
Was ist der Unterschied von L1 und L2 Cache bei einer GPU? (2 P.)
L1 Cache ist schneller, kleiner und pro Kern individuell.
L2 Cache ist größer, langsamer und wird von allen Kernen geteilt.
Beschreiben Sie die Unterschiede zwischen einer CPU und einer GPU:
CPU wenige Kerne mit großen Befehlssatz ->Befehlsströme
GPU viele Kerne mit kleinen Befehlssatz -> Datenströme
Welche Funktionen übernimmt der Prozessor bei Intel / AMD (Unterschiede im Bezug
auf die Verbindungen, bzw. dem Chipset)?
Gleich : Sämtliche Rechenaufgaben werden übernommen
Anders: AMD hat mehr Funktionen in Prozessor integriert,
Intel hat viele Funktionen im Chipset
Welche Vorteile bietet eine kleinere Strukturbreite?
-mehr Transistoren auf der selben Fläche
-Komponenten näher zusammen => schneller
-weniger Energie
Warum wird die Spannung beim Arbeitsspeicher mit jeder DDR Version verringert und
weshalb ist der Speicher trotzdem schneller?
-kleinere Strukturbreiten => geringere Spannung
-kürzere Übertragungswege =>höherer Takt möglich
Welche Speicherart (SSD oder HDD) ist bei folgenden Anwendungen sinnvoller (mit
kurzer Begründung)? (3 P.)
Archivspeicher:
Schneller Speicher:
NAS (Network Attached Storage):
HDD => günstiger, SSD verliert Daten ohne Stromanschluss
SSD => schneller, da keine Mechanik Komponenten
HDD => geringer Preis, mehr Speicher für weniger Geld
Welche Vorteile bieten RAID Systeme (mind. 3)?
-bessere Ansprechzeiten
-einfaches Erweitern
-höhere Ausfallsicherheit
Erklären Sie kurz die Funktionsweise von Turbo Boost
-höhere Taktung kurzzeitig
-nur auf einzelne Kerne höhere Taktung ( evtl. werden andere runtergetaktet)
Welche Komponenten werden verwendet um schnelle Supercomputer zu bauen?
-Viele Grafikkarten
-Viele CPUs
Eine GPU besitzt in der Regel einen höheren Takt als die CPU?
Nein
Welche Maßeinheit ist für die Angabe der Geschwindigkeit von Supercomputern besser
geeignet (besserer Vergleich möglich)?
FLOPS (Floating Point Operations per second)
Mittels PCI-E können folgende Komponenten angebunden werden:
-Grafikkarte
-Netzwerkkarte
-USB-Controller
-SSD
Die Streaming Erweiterungen Intel SSE, AVX arbeiten nach folgendem Prinzip:
SIMD
Welche Probleme / Fehler können bei der Verwendung von Gleitkommazahlen
auftreten?
Rundungsfehler:
Vergleichsschwierigkeiten: Fehler beim Vergleichen
Zuletzt geändertvor einem Jahr