Glossar

Bei diesem Glossar handelt es sich um eine Erweiterung meiner Notizen zur Klausurvorbereitung. Es ist sehr wahrscheinlich, dass verschiedenste Fehler/Ungenauigkeiten in den Definitionen vorkommen. Diese kann man gerne als Issue hier melden, oder man erstellt einen neuen Pull-Request.

Begriff Definition Vorteile Nachteile
Adressierungsarten
  • Direkte A.
  • Registerindirekte A.
  • Registerindirekt mit Dekr/Inkr
  • Registerindirekt mit Displacement
  • Indizierte A.
  • Indizierte A. mit Skalierungsfaktor
  • Befehlszähler-relative A.
  • Speicherindirekte A.
ASIC Application Specific Integrated Circuit Eine spezialisierte VLSI für einen bestimmten Zweck
  • Schneller
  • Energieeffizienter
  • Kleiner
  • Strahlungsresistent
  • ...
  • Aufwendige Entwicklung
  • Teuere Entwicklung
  • Nicht vielseitig einsetzbar
Befehlszyklus
  1. Befehl holen
  2. Dekodieren
  3. Adresse evaluieren
  4. Operand -> Rechnwerk
  5. Befehl ausführen
  6. In Accumulator/Register
  7. BZ erhöhen
Behavioral Programming (HDL) Ähnlich sequentieller Programme. Beschreibt das Verhalten von Schaltungen. Höchste Abstraktionsebene.
  • Einfach zu beschreiben/verstehen
  • Weniger Kontrolle
Benutzermodus
  • Eingeschränkter Zugriff
  • Keine privilegierten Befehle wie z.B. Ein-/Ausgabe
  • Kein Zugriff auf Konfigurationsregister
Big-Endian Höchstes Byte wird an niedrigster Adresse gespeichert.

Beispiel
0x01234567 wird folgend abgespeichert:
Adresse Wert
n+3 67
n+2 45
n+1 23
n 01

Block Devices
  • Abstraktion im BS: Blöcke von Daten
  • Benutzer kann auf einzelne Daten zugriefen
  • Üblicherweise mit Dateisystem verbunden
  • z.B. Festplattenspeicher
Branch Prediction Vorhersage, ob Sprung genommen wird Bei inkorrekter Vorhersage muss Pipeline neu aufgesetzt werden -> teuer
Cache Directory Protokolle Zentrales Verzeichnis, welches übersicht von Kopien in Caches hat. Heutiger Standard, kein Snooping mehr.
Cache Index Bits Bestimmt die Cachezeile, in der Adresse sein kann. 32 Byte pro Cachezeile, Cache Grösse 32 KiB -> 1024 Cachezeilen -> 10 bit Index Bei Cache Sets, wird das Set beschrieben
Cache Offset Bits Unterste Bits, bestimmen byte(?) index in einer Zeile. 32 Byte pro Cachezeile -> 5bit
Cache Snooping Gemeinsamer Bus zwischen Caches, alle Teilnehmer hören mit.
  • Teilnehmer passen laufend Cache-Inhalt an
  • MSI oder MESI Automat
  • Einfach zu implementieren
  • Busse skalieren schlecht
Cache Tag Bit Oberste Bits, beschreiben welche Daten in Cachezeile sind
Capacity Cache Misses Der Speicherblock wäre auch verdrängt worden, wenn der Cache vollassoziativ wäre.
CISC Complex Instruction Set Computer Befehlssatz mit vielen Instruktionen, steht im Gegensatz zu RISC. Wird durch Mikroprogramme realisiert.
  • Einfach Programmierbar
  • Geringer Speicherbedarf
  • Komplexe & langsame Implementierung
  • Komplexe & langsame Dekodierung
  • u.U ungenutzte Instruktionen
CMOS
CMOS Inverter

Complementary metal-oxide semiconductor Besteht aus NPN und PNP Transistor. In der Abbildung ist ein CMOS Inverter zu sehen.

Abaddon1337, CC BY-SA 3.0, via Wikimedia Commons

  • 0 und 1 geschaltet
  • weniger Verlustleistung
  • weniger Hitzeentwicklung
  • weniger Störanfällig
Compulsory (cold) Cache Misses Erster Zugriff auf eine Adresse, nicht zu vermeiden
Conflict Cache Misses Speicherblock wurde verdrängt, da ein andere Block auf das gleiche Cache Set abgebildet wurde.
  • Unter Umständen vermeidbar
CPLD Complex programmable logic device Ein CPLD besteht aus mehreren SPLD Arrays welche programmierbar miteinander verbunden sind.
Dataflow Programming (HDL) Boolesche Gleichungen, hierbei werden Automaten (Übergangsdiagramme) implementiert. Liegt zwischen Behavioral und Structural.
Decoder

n Eingänge zu 2n einzigartigen Ausgängen. Nur ein Ausgang wird dabei auf 1 gesetzt.

...

Ein 2 zu 4 Bit Decoder
BlueJester0101, CC BY-SA 3.0, via Wikimedia Commons

Dennard Scaling Besagt, dass mit kleineren Transistoren auch die nötige Stromleistung zurück geht. Endete ca 2005, da Prozessoren nicht mehr mehr Leistung benötigen, man setzt auf mehrere Kerne.
Direct I/O
  • Spezielle Befehle im Befehlssatz
  • Separate Adressen für I/O Geräte
  • Separate Bus für I/O Operationen
  • Prozessor kontrolliert E/A, wartet auf Daten
  • Schnell
  • Verschwendete Ressourcen
Direct Mapped Cache Jede Adresse passt zu einer Cachezeile, die Index-Bits bestimmen die Lage der Daten im Cache.
  • Einfach zu berechnen, dadurch schnell
  • Einfach zu bauen
  • Unflexibel
  • Häufige Verdrängung von Cachezeilen
DMA Direct Memory Access
  • Prozessor beschreibt Transfer
  • Unabhängiger Kontroller führt ihn aus
  • Interrupt bei Abschluss
DRAM Dynamic Random Access Memory

Kondensator mit Information, hat eine Auswahlleitung und eine Bitleitung. Erfordert regelmässigen DRAM Refresh.

  • Schreiben: Auswahlsignal setzen, 0 oder 1 an Bitleitung, lädt oder entlädt den Kondensator.
  • Lesen: Auswahlsignal setzen, Wert zwischen 0 und 1 auf Bitleitung. Wenn 0 lädt sich der Kondensator, Bitleitung geht auf 0 und umgekehrt.
  • Einfach aufgebaut
  • Kann gross und günstig hergestellt werden
  • Grosser aktiver und passiver Energiebedarf
  • Langsamer Zugriff
Encoder

2n Eingänge werden binär kodiert auf n Ausgänge, so lange nur ein Eingang an ist.

Ethernet Am weitesten verbreitete Familie von Netztechnologien
  • Früher Shared Medium -> Quasi ein Bus
  • Heute Point to Point (Switched Network)
Exceptions
  • Ausgelöst von einer Operation im Programm (von innen)
  • Synchron
  • Beispiel: Nicht erlaubte Befehle (z.B. divide by zero)
Exklusiver Cache Jeder Speicherblock existiert nur einmal in der gesamnten Cachehierarchie. Häufig bei AMD verwendet.
FPGA Field Programmable Gate Array
  • Emulation von beliebigen Schaltungen
  • Einfacher als CPLDs
GPU Eine Graphics Processing Unit ist eine VLSI welcher auf extremes SIMD setzt.
  • Reduziert die Komplexität des Prozessors
  • Erhöhte Energieeffizienz
  • Verrignerte Softwareflexibilität (Muss SIMD nutzen)
  • Zusätzlicher Programmieraufwand
Gründe für Moduswechsel
  • durch speziellen Befehl
  • durch Interrupts/Exceptions
Hardware Prefetching Hardware untersucht Zugriffsadressen -> Erkennt Muster -> Liest zukünftige Daten. Beispiel: Prefetch Folgezeile oder Strided Prefetcher
Hardware Thread
  • Ausführungseinheit in Hardware mit BZ
  • Getrennte Registersätze
  • Führt eine Programmsequenz aus
Wird oft auch Kern genannt
HDL Hardware Description Language Beschreibung einzelner Komponenten für die Entwicklung von FPGAs
Inklusiver Cache Alle Speicherblöcke sind auch in dem nächst grösseren Cache enthalten. Häufig bei Intel verwendet.
Interrupt-driven I/O Prozessor löst Zugriff aus, E/A arbeitet alleine, Abschluss wird durch Interrupt signalisiert. Steht im Gegensatz zu Direct I/O
Interrupts
  • Erlauben dem Prozessor auf externe( Tastaur z.B.), asynchrone Ereignisse zu reagieren
  • Können ignoriert werden
Little-Endian Höchstes Byte steht an höchster Adresse. Wird von Intel verwendet und wird deutlich häufiger verwendet.

Beispiel
0x01234567 wird folgend abgespeichert:
Adresse Wert
n+3 01
n+2 23
n+1 45
n 67

Load/Store-Architektur Auch Register-Register-Maschine genannt.
  • Speicherzugriffe explizit als Maschinenbefehle
  • Arithmetik nur aus Registern
  • Registerindirekte Adressierung mit 12bit oder Register Offset
  • Unterstützt Prädekrement/Postinkrement
LUT Lookup Table Zentrales Element eines Logikblocks in einem FPGA.
  • 3-6bit Eingang
  • 1 bit Ausgang
  • Beliebige Schaltung
  • Optional mit Flipflop
Kann z.B. als SRAM realisiert werden.
Mealy Automat Ein deterministischer endlicher Automat, dessen Ausgabe von seinem Zustand und seiner Eingabe abhängt.
Mehrkern Architektur Mehrere HW Threads in einem System
  • getrennte Kerne
  • Replikation Leit & Rechenwerk
  • Gemeinsamer Speicher
  • Meist gemeinsames E/A Werk
  • Voller Speed-Up (Gegensatz zu SMT)
Memory Mapped I/O
  • Ansprechen der Geräte über Speicherbereiche
  • Speicher Teil des normalen Speicherbereichs
  • Kontrolliert duch virtuelle Speicherverwaltung
  • Heutiger Standard
Memory Mountain
  • Umso grösser der Speicher -> Umso langsamer
  • Umso grösser die Strides -> Umso langsamer
Mengenassoziativer Cache
  • Jede Adresse kann auf einen Teil der Cache Zeilen abgebildet werden
  • Mehrere Cache-Sets / Reduzierte Zahl von Index bits
Beispiel: 4-way associative = 4 Zeilen pro Cacheset
MESI Protokoll MSI, aber mit Exclusive Zustand.
Exclusive: Wert in einem Cache, unverändert
MIMD Multiple Instruction Multiple Data n Rechenwerke, n Leitwerke
-> Parallele Systeme
  • Mehrere HW Threads, prinzipiell unkoordiniert, keine direkten abhängigkeiten, parallele Ausführung
  • Gemeinsamer Speicher, sonst getrennte Maschinen
Misaligned Data Ein Speicherzugriff ist aligned wenn die Daten, auf welche zugegriffen wird, n Bytes lang sind und das einzelne Datum an einer Adresse liegt welche durch n teilbar ist. Bytes sind somit immer aligned. Ist die Eigenschaft nicht erfüllt, sind die Daten misaligned.
  • Lückenlose Nutzung des Speichers bei Mischung verschiedener Datenformate
  • Bessere Kompatibilität zu älteren ISAs
  • Ggf. zusätzliche Speicherzugriffe notwendig
  • Höherer Hardware-Aufwand erforderlich
MMU Memory management unit Separate Hardware auf der CPU, welche virtuelle Adressen via LUT in Physikalische übersetzt.
Moore Automat Ein endlicher Automat, dessen Ausgabe ausschließlich von seinem Zustand abhängt.
MSI Protokoll Jede Cachezeile muss ihren Status mitverfolgen.
  • Modified: Cachezeile lokal geändert, Speicher nicht koheränt
  • Shared: Wert in mindestens einem Cache, kohärent
  • Invalid: Cacheblock nicht gültig oder veraltet
Multiplexer Wid genutzt um Daten auszuwählen. Es wird anhand eines Selector- Eingangs ein Eingang ausgewählt und dieser weitergeleitet zum Ausgang.
Multiplexer

2-zu-1 Multiplexer. Entspricht einem kontrollierten Switch.
CaesarIII, CC BY-SA 3.0, via Wikimedia Commons

Multithreading Mehrere HW Threads in einem Prozessorkern.
  • Einzelner BZ und Register
  • Ressourcen geteilt
  • Umschalten nach x Takten
  • Meist Fork/Join (Master startet einen neuen Thread) (siehe Java Threads)
NAND Flash Bei der Verbindung zwischen der Bit-Line und dem Word-Line handet es sich um ein NAND Gate. Wird in SSDs und USB Sticks verwendet.
  • Schnell
  • Klein
  • Geeignet für Speicher
  • Zugriff über Blöcke
    Begrenzte Anzahl von Löschvorgängen
Nebenläufige und Parallele Programme Nebenläufig
  • Getrennte Aufgaben
  • Lose Kooperation
  • Bsp. GUI, E/A
Parallel
  • Gemeinsame Aufgabe
  • Enge Kopplung
  • Bsp. numerische Simulation, Suchalgorithmen
NIC Network Interface Card Komponente im Computer die den Computer mit einem Netzwerk verbindet.
Non-uniform Memory Access
  • Speicher ist verteilt über mehrere Kerne
  • Inter-Kern Netzwerk
  • Schnelle lokale Zugriffe
  • Datenplatzierung wichtig
NOR Flash Bei der Verbindung zwischen der Bit-Line und dem Word-Line handet es sich um ein NOR Gate. Gut für BIOS und andere Boot Medien.
  • Zuverlässiger als NAND Flash
  • Einzelzugriff
NPN Transistor NPN ist ein Arbeitskontakt -> Leitend, falls Strom anliegt
Out-of-Order Execution Auch dynamisches Scheduling genannt. Unabhängige Instruktionen können ausgeführt werden, obwohl vorherige Operationen blockiert sind, trotzdem transparent
  • Bessere Nutzung der Ressourcen
  • Bessere Nutzung von Parallelität
  • Möglichkeit mehrere gleiche Befehle anzustossen
  • Erhöhte Buchhaltunkgskomplexität
  • Speicher muss konsistent gehalten werden -> Reorder Buffers notwendig
PAL / GAL Programmable/General Array Logic UND programmierbar, ODER fest
  • PAL -> Non-Volatile
  • GAL -> Volatile
Physically Indexed Cache Cache nach MMU, Cache arbeitet mit physikalischen Adressen
  • Überlebt Prozesswechsel
  • Gut für grosse Caches
  • Jeder Zugriff durch MMU
Pipeline Control Hazard Verursacht durch Sprünge, da Befehl unbekannt
Pipeline Data Hazard Datenabhängigkeiten nicht erfüllt
Pipeline Structural Hazard Ressourcenprobleme in der Hardware
Pipelining Bearbeitung eines Objekts wird in Teilschritte zerlegt und sequentiell ausgeführt. Die Phasen werden für verschiedene Objekte überlappend abgearbeitet.
Kann sowohl in Software als auch in Hardware umgesetzt werden.
PLA Programmable Logic Array Für DNFs, UND gefolgt von ODER, beides programmierbar.
PLD Programmable Logic DeviceAllgemeiner Begriff der alle programmierbaren Schaltungen beschreibt wie SPLDs, CPLDs, und FPGAs.
  • Einfach Aufgebaut
  • Geeignet für "Rapid Prototyping"
  • Langsamer & Kleiner als ASICs
PROM Programmable Read-Only Memory UND fest, ODER programmierbar.
EPROM -> Erasable PROM, mit UV Licht
EEPROM -> Electrcially EPROM
RISC Reduced Instruction Set Computer. Hoch optimierter, minimalistischer Befehlssatz mit nur wenig unterschiedlichen Instruktionen. Steht im Gegensatz zu CISC. Wird durch feste Verdrahtung realisiert.
  • Einfache Implementierung
  • Effiziente Implementierung
  • Schnelle Implementierung
  • Schwierigere Programmierbarkeit (Wird aber durch Compiler abstrahiert)
ROM Read Only Memory UND fest, ODER fest, dementsprechend nicht programmierbar.
SIMD Single Instruction Multiple Data n Rechenwerke, 1 Leitwerk
-> Pipelines, Vectors, GPUs (Moderne GPUs sind MIMD, mehrere extreme SIMD Blöcke)
Mehrere Daten werden durch einen Maschinenbefehl geleitet.
Simultaneous Multithreading (SMT) Gleichzeitige Nutzung von Ressourcen, passt zu OoO und Superskalarität.
SISD Single Instruction Single Data 1 Rechenwerk, 1 Leitwerk
-> Seq. Verarbeitung von Neumann
Software Prefetching Explizite Instruktionen welche Daten in den Cache laden.
  • Unregelmässige Zugriffe können verbessert werden
  • Generell ist Software Prefetching nicht blockierend und erzeugt keine Ausnahmen
  • Benötigt Codeänderungen und ist dementsprechend nicht transparent
Spin-Locks Busy waiting -> Siehe EIDI
SPLD Simple Programmable Logic Device Schaltnetz aus einem UND und einem ODER Array. Beide evtl. programmierbar
SRAM Static Random Access Memory Nutzung in Register & Caches Prinzip ähnlich zu Latch. Schreiben: Bit auf 1, Nicht Bit auf 0, Select auf 1, Inverter pegeln sich ein Lesen: Bit auf 1, Nicht Bit auf 1, Inverter ziehen somit einen Ausgang auf 0, Spannungsabfall wird gemessen
  • Behält Wert solange Strom
  • Sehr schnell (1 - 30 ns)
  • Unempfindlich
  • Relativ gross & teuer
  • Grosser Energiebedarf wenn aktiv
Stream Devices
  • Abstraktion im BS: Reihe/Strom von Bytes
  • Zugriff meist sequentiell
  • z.B. Tastatur, Serielle Schnittstellen
Structural Programming (VHDL) Verbundenen einzelne Komponenten, beschreibt einzelene Schaultungen welche hierarchisch Verbunden werden.
  • Volle Kontrolle
  • Aufwendig
Superskalarprinzip Ein superskalarer Prozessor verfügt im Vergleich zu einem Prozessor mit sequentieller Pipeline über die n-fache Anzahl von Funktionseinheiten, Datenpfaden, Dekodierern, etc. -> n Befehle können gleichzeitig ausfgeführt werden.
Systemmodus
  • Voller (=privilegierter) Zugriff auf alle Rechnerkomponenten
  • Für das Betriebssystem
TLB Translation Lookaside Buffer Kleiner Cache mit Page Table Einträgen in der MMU um Addreessübersetzung zu beschleunigen
Uniform Memory Access (UMA)
  • Zentraler gemeinsamer Speicher
  • Zugriffe haben gleiche Latenz (ausser durch Caches)
  • Busse oder Crossbar
Virtually Indexed Cache Cache vor MMU, Cache arbeitet also mit virtuellen Adressen.
  • Direkter Zugang zu Cache ohne Übersetzung
  • Gut für kleine Caches
Mehrere Prozesse verwenden die gleichen virtuellen Adressen.
Lösungen:
  • Cache löschen bei Prozesswechsel
  • Im Tag wird auch die PID gespeichert
Beide Lösungen führen zur Verlangsamung und erhöhter Aufwendigkeit.
VLIW Very Long Instruction Word Mehrere Instruktionen in einem Befehl, spezielle Prozessoren.
  • Explizite Abhängigkeiten -> Einfachere Hardware
  • Explizites Scheduling -> Einfachere Hardware
  • Komplexe, nicht kompatible ISAs
  • Beruht auf Fähigkeiten des Compilers
VLSI Very-large-scale Integration ist eine Herstellungstechnologie bei der viele Tausende Transistoren in einen einzelnen Chip integriert werden.
Volatile Erneut Programmierbar
Voll assoziativer Cache Jede Adresse kann auf jede Cache Zeile abgebildet werden, es existiert nur ein "Cache Set".
  • Keine Index bits
  • Grösste Flexibilität
  • Komplex
Von-Neumann Architekturkonzept
  1. Strukturunabhängigkeit des Rechners
  2. 4 Werke
  3. Sequentiell, Befehle nacheinander gespeichert & ausgeführt
  4. Binär
  5. Programme & Daten in einem Speicher
  6. Speicher besteht aus Zeilen fester Grösse
  7. Sprünge möglich
Yielding Locks Falls Lock vergeben, gebe Thread ab

Vergleiche

Begriff Vergleich Gemeinsamkeiten
FPGA
  • Rekonfigurierbar
  • Günstig
  • Schnelle Entwicklung ("Time to Market")
ASIC
  • Deutlich schneller
  • Kann für spezielle Einsatzgebiete gebaut werden
  • Hoch spezialisiert
FPGA
  • Schneller
  • Höherer Durchsatz
  • Bessere Vorhersagbarkeit
CPU
Pipelining
  • Mehrere verschiedene Stufen gleichzeitig
Superskalar
  • Mehrere gleiche Einheiten gleichzeitig
Beide erlauben Parallelität, ergänzen sich
Thread
  • Eng gekoppelt
  • Gemeinsamer Adressraum
  • Schnelle Umschaltung
  • Gemeinsame Ressourcen (Dateien...)
Prozesse
  • Lose gekoppelt
  • Getrennte Adressräume
  • Bessere Isolierung