FrageErklärung
Schichtenmodell Das Schichtenmodell funktioniert nach folgendem Prinzip. Eine untere Schicht erbringt so genannte Dienstleistungen für die nächst höhere Schicht und eine obere Schicht nutzt nur die Dienste, die von dernächst niedrigeren Schicht angeboten werden. Zwischen diesen Schichten sind eindeutige Schnittstellen definiert.
Datenverabeitungssystem„Ein Datenverarbeitungssystem ist eine Funktionseinheit zur Verarbeitung und Aufbewahrung von Daten. Verarbeitung umfaßt die Durchführung mathematischer, umformender, übertragender und speichernder Operationen.“
Rechnersystemin Rechnersystem enthält mindestens vier Komponente. Einen Prozessor (Zentraleinheit oder CPU1 ), der Programme ausführt, einen Speicher, der Programme und Daten enthält (Speichersystem), einen Bus2 zum Transfer von Informationen zwischen dem Prozessor und dem Speicher und ein Ein-/Ausgabesystem zum Transfer von Informationen mit der Außenwelt.
Digitale SouveränitätUnter dem Begriff der Souveränität versteht man allgemein die Fähigkeit zur Selbstbestimmung, die sich durch Eigenständigkeit und Unabhängigkeit ausdrückt. „Digitale Souveränität bezeichnet in diesem Sinne die Fähigkeit zu selbstbestimmtem Handeln und Entscheiden im digitalen Raum.“
CISCComplex Instruction Set Computer
RiscReduced Instruction Set Computer
ProgrammiermodellProgrammiermodell bezeichnet im Kontext der maschinennahen Programmierung den Registersatz eines Prozessors, sowie den dazugehörigen Befehlssatz, also der Menge aller verfügbaren Befehle.
Big-EndianBei Big-Endian (Motorola-Format) wird das höchstwertige Byte an der kleinsten Speicheradressen gespeichert.
Little-EndianBei Little-Endian (Intel-Format) wird das kleinstwertige Byte an der kleinstwertigen Speicherstelle gespeichert.
Condition MnemonicsCondition Mnemonics sind ein entscheidendes Element, um Programmkontrollfluss zu implementieren. Es handelt es sich dabei zwei Buchstaben, die direkt an einen beliebigen Befehl angehängt werden (z.B. das Mnemonic EQ an den Befehl b, also beq …). Dieser Befehl wird nur dann ausgeführt, wenn die in dem Mnemonic codierte Flag-Bedingung erfüllt ist (bei EQ z.B., muss das Zero Flag gesetzt worden sein).
DatenfelderDatenfelder (oder auch Arrays genannt) sind eine Datenstruktur die aus mehreren Wörtern besteht. Sie besitzen eine feste Größe, welche für die Anzahl an Elementen im Datenfeld steht.
UnterprogrammeUnterprogramme (bzw. Teilprogramme) sind Teile eines Programmes (Hauptprogrammes), die eine bestimmte Funktionalität implementieren. Unterprogramme werden genutzt, um für eine bessere Strukturierung der Programme zu sorgen.
MakrotechnikBei der Makrotechnik wird das Teilprogramm an den Stellen, wo es gebraucht wird, in das Hauptprogramm einkopiert. Dazu wird dem Teilprogramm, dem sogenannten Makro, durch die Makrodefinition ein Makroname zugeordnet. Mit einem Makroaufruf wird dann an den Stellen, an denen das Unterprogramm einkopiert werden soll der Makroname genannt.
UnterprogrammtechnikBei der Unterprogrammtechnik wird auf ein seperates Teilprogramm im Hauptprogramm mehrfach zugegriffen (vgl. Abbildung 12b). Das Teilprogramm muss nur einmal im Code vorliegen und ist durch eine Sprungmarke (z.B. „UP“) gekennzeichnet.
Funktion und ProzedurDer Unterschied zwischen diesen ist hierbei, dass eine Prozedur anders als eine Funktion keinen Rückgabewert besitzt.
Der StackDer Stack (dt. Stapel- oder Kellerspeicher) ist nach dem Prinzip Last In First Out aufgebaut. Das heißt, die Daten die zuletzt auf dem Stack gespeichert wurden, liegen an der “obersten” Position des Stapels.
RekursionRekursion bedeutet, dass sich ein Unterprogramm selber aufruft. Diesen Aufruf nennt man auch Inkarnation.
Phasen der Übersetzung1. Phase: der Preprocessor (oder Precompiler) bereitet den Hochsprachenquelltext auf, indem er Direktiven (mit #) ausführt.
2. Phase: der Compiler übersetzt das C-Programm hello.i in ein Assemblerprogramm hello.s.
3. Phase: der Assembler übersetzt hello.s in Maschinensprache. Ergebnis ist das verschiebbare Objektprogramm hello.o
4. Phase: der Linker (oder Binder) fügt verschiedene Module (in Form von verschiebbaren Objektprogrammen) zu einem ausführbaren Objektprogramm zusammen, unter anderem indem offene externe Referenzen aufgelöst werden
Relocatable (verschiebbare) object filesEnthalten binären Code und Daten in einer Form, die mit anderen verschiebbaren Objekt-Files zu einem ausführbaren Objekt-File zusammengefügt werden können
Executable object filesEnthalten binären Code und Daten in einer Form, die direkt in den Speicher kopiert und ausgeführt werden können
Shared object filesSpezieller Typ von relocatable object files, welche in den Speicher geladen werden können und dynamisch mit anderen Objekt-Files zusammengeführt werden können
ELF headerELF relocatable object files beginnt mit einer 16-Byte Sequenz mit Wortgröße, Byte-Ordering (Little Endian, Big Endian) und weiteren Informationen, die vom Binder (Linker) verarbeitet werden, z. B. Maschinentyp (ARM, IA32)
.textMaschinencode des Programms
.dataInitialisierte globale Variablen
object dumpDa Objektdateien binär sind, sind sie für den Menschen nur schwer lesbar. Mithilfe eines object dump können diese lesbarer dargestellt werden.
LaderEin Lader ist ein Systemprogramm, das die Aufgabe hat, Objektprogramme in den Speicher zu laden und ggf. deren Ausführung anzustoßen.
Rechnerarchitekturdefiniert durch ihren Befehlssatz und ihrem Architekturzustand
Architekturzustandsind auf der Architekturebene sichtbare Daten, wie z.B. PC, 16 Register, Speicher
MikroarchitekturDie Hardware-Implementierung einer Architektur
Takt(-signal)Eine Zeitbasis, [im Idealfall] in Form eines periodischen Rechtecksignals. Das Signal dient der Synchronisation der Komponenten im Rechnersystem und wird daher auch Systemtakt genannt.
TaktflankeBeschreibt den Übergang zwischen den zwei Signalzuständen Low und High. Eine steigende Taktflanke ist also der Übergang von Low zu High und eine fallende Taktflanke der Übergang von High zu Low
Taktfrequenz Je höher die Taktfrequenz desto schneller die Datenverarbeitung [im Normalfall].
ISAinstruction set architecture (Menge der verfügbaren Instruktionen/Befehle)
SIMDsingle instruction multiple data (vector processing), Beispiel NEON beim ARM®
VLIWvery long instruction word (static multi-issue), superscalar processors (dynamic multi-issue)
Befehlsholphase - instruction fetchDer Prozessor ist dafür zuständig die Anweisung zu erteilen Befehle und Daten aus dem Speicher zu lesen.
Befehlsdekodierung - instruction decodeNachdem der Befehl geholt ist und in einem Register steht, muss er dekodiert werden.
Befehlsausführung - instruction executeNun wird der Befehl ausgeführt Danach wird der nächste Befehl aus dem Speicher geholt.
Bitfelder eines Befehls
CondDie ersten vier Bits stehen für die Bedingung im Befehl, daher cond[ition] (1110 AL always)
00 Data Processing
I für Immediate, für Register
OpcodeDas Bitfeld Opcode gibt an was für eine Operation durchgeführt wird.(0000 AND, 0100 ADD, 0001 OR, 1010 CMP, 0010 SUB, 1101 MOV)
SIst S gesetzt so wird der Condition Code (Status Flags) geändert, ansonsten nicht.
Rn, RdQuellregister, Zielregister
01 Single Data Transfer (LDR, STR)
Wwrite-back bit - 0 no write back - 1 write address into base
Lload/store bit - 0 store to memory - 1 load from memory
101 Branch and Branch with Link (B, BL)
L und OffsetDas Bitfeld L gibt mit einem Bit an ob zusätzlich zum branch gelinkt wird und das 24 Bit große Offset gibt die relative Sprungadresse als Direktwert an.
Eintakt-Prozessor
Eintakt-ImplementierungJeder Befehl wird in einem Takt ausgeführt.
Harvard-ArchitekturBefehlsspeicher und Datenspeicher sind getrennt
Kontrolleinheit
Decoder
Mehrtakt-Prozessor
Kontrolleinheit
Main FSM
Pipeline-Prozessor
HazardsHazards sind Abhängigkeiten zwischen Pipelinestufen. Diese treten auf wenn Instruktion vom Ergebnis einer vorhergehenden abhängt aber diese noch kein Ergebnis geliefert hat
Data Hazardsz. B. Neuer Wert von Register noch nicht in Registerfeld eingetragen.
• Plane Wartezeiten von Anfang an ein
• Füge nops zur Compile-Zeit ein
• scheduling (Ablaufplanung)
• Stelle Maschinencode zur Compile-Zeit um(scheduling / reordering)
• Leite Daten zur Laufzeit schneller ¨über Abkurzungen weiter(bypassing / forwarding)
• Halte Prozessor zur Laufzeit an bis Daten da sind(stalling)
Control HazardsUnklar welche Instruktion als nächstes ausgeführt werden muss (tritt bei Verzweigungen auf).
Umgang: flush
Vergleich der Prozessoren
Grundkomponenten• Datenpfad: verbindet funktionale Blöcke
• Kontrollpfad: Steuersignale/Steuerwerk
Vor- und Nachteile
Speicherhierarchie
KostenWerden in Dollar/Bit oder Dollar/MByte angegeben.
ZugriffszeitDurchschnittliche Zeit, um ein Wort aus dem Speicher zu lesen.
ZykluszeitMinimale Zeit zwischen zwei Speicherzugriffen. Zykluszeit hängt von Zugriffszeit und Protokoll des Speicherbus ab.
BandbreiteMaximale Menge an Daten, die pro Zeiteinheit übertragen werden kann, gemesen in Byte/s.
ZugriffsverfahrenZugriff auf Speicher kann auf zwei Arten umgesetzt werden: wahlweise und seriell.
Wahlweiser Zugriff (Random Access)Bedeutet, dass auf jede Speicherzelle gleich schnell in konstanter Zeit zugegriffen werden kann. Das wird beispielsweise in den Registern, im Cache und im Hauptspeicher (Arbeitsspeicher) verwendet.
Seriellen ZugrifDie Zugriffszeit ist nicht konstant, sondern hängt von der Position der Daten im Speicher ab. Ein Beispiel hierfür ist ein Magnetbandspeicher, bei dem die Daten am Ende des Bandes deutlich länger zum Laden brauchen, als welche am Anfang. Weitere Speicher, die seriell zugreifen, sind z.B. Festplatten oder optische Platten.
ÄnderbarkeitDie Änderbarkeit von Speicher lässt sich in drei Klassen einteilen: Read-Only und Read-Write und Read-Mostly.
Read-OnlyDer Speicher kann nur gelesen werden, ein Überschreiben der gespeicherten Daten ist nicht möglich
Read-WriteDer Inhalt kann während des Betriebs sowohl geschrieben als auch gelesen werden. Der Großteil des Speichers in einem Rechnersystem ist Read-Write Speicher, z.B. Register, Cache, Hauptspeicher und Festplatten
Read-MostlyDer Inhalt wird deutlich häufiger gelesen und nur sehr selten geschrieben. Beispielsweise wird EEPROM oder Flash-Speicher im BIOS verwendet.
PermanenzMan kann Speicher in flüchtige und nicht-flüchtige Speicher unterteilen.
Flüchtigen SpeichernBei flüchtigen Speichern muss konstant Strom anliegen, da ansonsten die Daten verloren gehen. Flüchtigen Speicher kann man weiterhin in statische und dynamische Speicher unterteilen.
Dynamischen SpeicherBei dynamischen Speicher muss in regelmäßigen Abständen die Spannung erneuert werden, da die Speicherzelle über die Zeit ihre Spannung verliert. (Hauptspeicher)
Statischer SpeicherDas ist bei statischem Speicher nicht nötig, hier bleibt die Ladung solange bestehen, wie der Speicher mit Strom versorgt wird. (Register, Cache)
Nicht-flüchtige SpeicherNicht-flüchtige Speicher haben dieses Problem nicht, ihr Inhalt bleibt bei Stromausfall erhalten. (SSDs, ROM und EEPROM)
Random Access Memory (RAM) RAM besteht aus einem Array aus Speicherzellen, die über die Wordline und Bitline addressiert werden können. Dazu wird über den Row Decoder zuerst die passende Wordline ausgewählt. Nachdem die Sense Amplifiers die Signale der Daten verstärkt haben, wird aus dem Wort mithilfe des Column Decoders das gewünschte Bit zum Schreiben bzw. Lesen ausgewählt.
Statisches RAM (SRAM) SRAM ist ein statischer Speicher, das heißt, Informationen werden solange in der Speicherzelle gehalten, wie Spannung angelegt ist. Das wird durch zwei Inverter realisiert, die zwei stabile Zustände haben, die die 1 und 0 repräsentieren. Auf Schaltkreisebene verwendet man 6 Transistoren, was eine einzelne Speicherzelle zu einer 6T-Zelle macht.
Dynamisches RAM (DRAM) Dynamisches RAM (DRAM) verwendet einen Kondensator zur Speicherung von Informationen. Daher benötigt man zusätzlich nur einen Transistor für eine Speicherzelle. DRAM wird als 1T-Zelle bezeichnet. DRAM-Zellen verlieren allerdings mit der Zeit ihre Ladung, typischerweise entlädt sich der Kondensator in 10 bis 100 Millisekunden. Um Informationsverlust zu vermeiden muss daher in regelmäßigen Abständen der Inhalt erneuert werden. Diesen Prozess nennt man “Refresh-Zyklus”. Zudem wird bei jedem Lesezugriff auf eine Speicherzelle der Transistor entladen, das heißt das Speichersystem muss sicherstellen, dass direkt nach dem Lesen wieder der richtige Wert in der Speicherzelle steht.
Verteilung von SRAM und DRAMJe nach Leistungsfähigkeit und Preis des Prozessors werden in einem Rechnersystem 10 bis 100 MB SRAM verbaut. Von DRAM wird dagegen 100 bis 1000 mal so viel verbaut, mehrere GB sind sogar bei kleinen Systemen wie dem Raspberry Pi Standard.
Eigenschaften von RAM-ChipsRAM-Chips werden durch die Anzahl der adressierbaren Plätze (Speicherstellen) und die Breite der Plätze in Bit bestimmt.
32Kx8 SRAMhat also 32000 Einträge, die jeweils 8 Bit groß sind. Daher benötigen wir einen Adresseingang mit 15 Bit, da 2 15 = 32768, einen Dateneingang Din und einen Datenausgang Dout, mit jeweils 8 Bit. Die Funktionalität des Chips kann erweitert werden durch drei weitere 1 Bit Eingänge. • Chip select wird verwendet, um den jeweiligen Chip auszuwählen.
• Output enable muss auf 1 gesetzt werden, um Daten zu lesen
• Write enable muss auf 1 gesetzt werden, um Daten zu schreiben
Matrixdarstellung Der Vorteil dieser Darstellung ist, dass der Adresseingang weniger Bits benötigt, allerdings müssen jetzt jeweils die Zeile und Spalte nacheinander übertragen werden. Um das umzusetzen, verwendet man einen Zwischenspeicher, den Internal Row Buffer und teilt den Speicherzugriff in zwei Phasen auf, Row Address Strobe und Column Address Strobe.
Row Address Strobe Beim Row Address Strobe wird zuerst die Adresse der jeweiligen Zeile über den Adresseingang übertragen. Die ausgewählte Zeile wird dann in den Internal row buffer kopiert.
Column Address Strobe Der Column Address Strobe überträgt die Adresse der jeweiligen Spalte über den Adresseingang. Da mit dem Row Address Strobe bereits die korrekte Zeile ausgewählt wurde, muss nur noch die jeweilige Spalte aus dem Internal row buffer übertragen werden.
Verschaltung mehrere Speichermodule Um mehrere Speicherchips miteinander zu verbinden wird ein Datum, wie beispielsweise ein Wort, auf mehrere Chips aufgeteilt. Wir können beispielsweise 8 8Mx8 DRAM-Chips verwenden, um ein 64 Bit Datum zu speichern. Der erste Chip speichert die ersten 8 Bits, der zweite die Bits 8 bis 15, und so weiter. Der Memory Controller baut dann aus den 8 Bits, die er von jedem Chip erhält, ein 64 Bit Wort zusammen
I/O Bridge Die Aufgabe der I/O Bridge ist, die verschiedenen Busse im Rechnersystem zusammenzuführen. Dazu übernimmt sie eine Art Übersetzerfunktion zwischen den Bussen.
LokalitätWir wissen, dass bei einem Programm höchstwahrscheinlich auf nur einen sehr kleinen Teil des Adressraums und somit auch des Speichers zugegriffen wird. Das können wir ausnutzen und jeweils diesen Teil in den schnelleren Speichern der Speicherhierarchie speichern. Dadurch erreicht man geringere Zugriffszeiten, was in kürzerer Ausführungsdauer resultiert.
LokalitätsprinzipEine Eigenschaft bei der Ausführung von Programmen ist, dass meistens nur auf einen relativ geringen Teil des Adressraumes zugriffen wird.
Räumliche LokalitätMit hoher Wahrscheinlichkeit wird auf Daten zugegriffen, die räumlich nah am aktuellen Datum stehen
Zeitliche LokalitätMit hoher Wahrscheinlichkeit wird zu einem späteren Zeitpunkt auf das selbe Datum zugegriffen.
Lokalität der Daten und Lokalität der BefehleMan unterscheidet zwischen Lokalität der Daten und Lokalität der Befehle. Es kann also sein, dass die Befehle gute Lokalität haben, die Daten jedoch nicht, z.B. wenn die Befehle ausschließlich sequentiell ausgeführt werden, die Speicherzugriffe jedoch durcheinander geschehen. Befehle werden zudem meist nur gelesen, im Gegensatz zu Daten, bei denen auch Schreibzugriffe stattfinden.
CacheEin Cache ist ein kleiner und schneller Speicher, der für die Zwischenspeicherung von Daten aus einem größeren Speicher verwendet wird. Diesen Prozess nennt man caching. Allgemein fungiert ein schnellerer und kleinerer Speicher auf dem Level k als Cache für einen größeren und langsameren Speicher auf dem Level k + 1. In der Speicherhierarchie wird dieses Prinzip gleich mehrfach angewendet, die Register (L0) agieren als Cache für den L1 Cache, der wiederum Daten aus dem L2 Cache speichert, und so weiter, bis zu lokalen Festplattenspeicher, der Daten aus dem Netzwerk von Servern cached.
Cache HitEin benötigtes Datum wird im Cache gefunden. Bei einem Cache Hit kann man das Datum direkt aus dem Cache laden. Da der Cache auf Level k schneller ist als der Speicher auf Level k + 1, kann das Datum schneller geladen werden und die Ausführungsdauer des Programms wird verringert.
Cache MissEin benötigtes Datum wird nicht im Cache gefunden. Bei einem Cache Miss muss das Datum aus dem Speicher auf Level k + 1 geladen werden. Dabei wird das benötigte Datum in den Cache auf Level k geschrieben, was bei späteren Zugriffen vorteilhaft ist (siehe temporale Lokalität 9.4). Wenn der Cache bereits voll ist, dann muss ein gecacheder Block ersetzt werden. Dabei gibt es verschiedene Strategien, wie das geschehen kann. Nachdem der Block ersetzt wurde, kann auf das Datum direkt in Level k zugegriffen werden.
ZufallsersetzungEin zufälliger Cache Block wird ersetzt
Least-recently used (LRU) ErsetzungDer Block, auf den am längsten nicht zugegriffen wurde, wird ersetzt
Cache Latenz
Cachesystem eines modernen Prozessors (Caches für Daten (d-cache) und Instruktionen (i-cache))
CachekohärenzDa die Cores sich im L3 Cache Daten teilen, im L1 und L2 Cache allerdings nicht mehr, kann es sein, dass in diesen von mehreren Cores für das selbe Datum verschiedene Werte stehen. Um das zu verhindern, gibt es auf dem Chip verschiedene Einheiten, die dafür sorgen, dass die Daten kohärent bleiben, sodass alle Operationen korrekt ablaufen können.
Gleitkommazahlen Besonderheiten: Die Null kann (durch die Normalisierung) nicht dargestellt werden. Unendliche Zahlen (oder keine Zahlen) sollen auch dargestellt werden
Leistungsbewertung
AntwortzeitZeit, die real vergeht, bis eine gegebene Aufgabe vom Rechner gelöst wurde.
AusführungszeitZeit, die die CPU bei der Lösung der Aufgabe benötigt ohne Ein-/Ausgabe und Zeit fur andere Aufgaben.
system CPU time(CPU-Zeit fur Betriebssystemaufgaben)
user CPU time(CPU-Zeit, die zur Ausfuhrung eines Programms benötigt wird)
TaktfrequenzLeistungssteigerung wurde lange Zeit durch erh¨ohen der Taktfrequenz erreicht. Aktuell liegt der Prozessortakt vieler Mikroprozessoren bei 3.x GHz. Bedingt durch die Technologie (CMOS-Technologie) steigt der Leistungsumsatz der Prozessoren mit dem Takt
CPI Rate (Clock Cycles per Instruction)Anzahl der Taktzyklen pro Instruktion
Ausfuhrungszeit eines Programms
MIPS RateMillion Instructions per Second
MFLOPSMillion Floating-point Operations per Second
Flynn sehr grobe Klassifikation, viele Aspekte werden nicht erfaßt, wie Pipelining, Wortbreite, Verbindungsstrukturen, Speicherorganisation (lokale/globale Speicher, virtueller Speicher, Caches; Trennung von Programm- und Datenspeicher)
Instruction StreamSI – Single Instruction
MI – Multiple Instruction (mehrere Befehle zu einem Zeitpunkt)
Data StreamSD – Single Data
MD – Multiple Data
SISDVon-Neumann-Rechner
SIMDFeldrechner, Vektorrechner
MIMDMultiprozessorsysteme
MISD?
SSE EinheitenStreaming SIMD Extensions
BenchmarksBenchmarks sind repräsentative Programme, die auf den zu vergleichenden Rechnern ausgeführt werden. Aber: In der Praxis wurden häufig Compiler oder auch Instruktionssätze so optimiert, dass gängige Benchmarks besonders schnell abliefen.
Reale ProgrammeVerwendung häufiger Anwendungen wie C-Compiler, Textprozessoren (LATEX), SPICE usw.
KernelsKurze kritische Auszuge aus realen Programmen, die isoliert zur Ausführung gebracht werden
Toy BenchmarksKleine, einfach zu schreibende Programme, die leicht zur Ausführung gebracht werden können (z. B. Quicksort)
Synthetische BenchmarksSpeziell entwickelte Programme, die die Leistungsfähigkeit einzelner Instruktionen oder einzelner Komponenten der zu vergleichenden CPUs aufdecken sollen (z. B. Dhrystone)
SPECStandard-Benchmark Suites
BogoMips“unwissenschaftliches” Maß fur die CPU-Geschwindigkeit. Wert wird beim Booten ermittelt, um interne Warteschleifen zu kalibrieren
Definition eines BetriebssystemsDie Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen.
Aufgaben eines Betriebssystems“Veredelung” der Hardware, Organisation und Steuerung des Ablauf, Langfristige Datenhaltung, Einhaltung von Qualitätsanforderungen
Schichtenmodell
BetriebszuständeProzessor kann sich in verschiedenen Betriebszuständen befinden. Betriebszustand teilweise definiert durch: Maschinenzustand und Privilegierungszustand. Hardware muss gestatten, Zustandswechsel per Software herbeizufuhren
MaschinenzustandProzessor kann aus- oder angeschaltet sein; Prozessor kann gerade im Urladevorgang sein; Zustände: stop, laden, tätig
PrivilegierungszustandZustände definieren die Menge der jeweils erlaubten, ausfuhrbaren Maschinenbefehle.
Anwenderzustandnicht privilegiert; nur eingeschränkter Befehlsvorrat gultig
Systemzustandprivilegiert; voller Befehlsvorrat gultig
PrivilegiertBefehl heißt privilegiert, wenn ausschließlich im Systemzustand ausfuhrbar
Unterbrechungen (Interrupt)besseres Leistungsverhalten; Prozessor und Peripheriegeräte können zeitlich uberlappend arbeiten; Unterbrechungskonzept verbessert Synchronisation zwischen Prozessor und Gerät
Signal, das den Befehlszyklus des Prozessors abändert bzw. unterbricht und den Befehlszyklus an spezifizierter Stelle fortführt.
EreignissesUnterbrechung wird durch Eintreten eines speziellen Ereignisses ausgelöst (Ereignisursache in Software oder Hardware, Programmbezogene Unterbrechungen, Systembezogene Unterbrechungen, Maschinenfehler)
Programmbezogene UnterbrechungenDer in Ausfuhrung befindliche Befehl löst Unterbrechung aus; synchrone oder interne Unterbrechungen [arithmetische Fehler (bspw. Division durch Null, Überlauf), Adressenfehler (bspw. Zugriff auf nicht installierten Speicher, fehlende Rechte), falsche Befehle (bspw. privilegierter Befehl im Anwenderzustand), Spezialbefehle zum Einleiten von Systemaufrufen]
Systembezogene UnterbrechungenUnterbrechungsursache liegt außerhalb der Prozessoraktivität. Unterbrechungsquelle ist ein relativ selbständig arbeitendes Gerät Unterbrechung trifft das zufällig laufende Programm ⇒ asynchrone oder externe Unterbrechung. Beispiele: Zeitgeberunterbrechungen, I/O-Unterbrechungen, Prozessoranrufe
Besondere Anwendung von UnterbrechungenSpezialbefehle ⇒ Systemaufrufe (system calls) ermöglichen einen Wechsel von nieder- in höherprivilegierten Zustand. Dadurch wird u. a. ermöglicht, Benutzern Dienste des Betriebssystems verfügbar zu machen. Befehle dieser Art: SWI ⇒ Software (SW) Interrupt (I) bei ARM®-Architekturen, INT bei Intel x86, TRAP bei Motorola 680x0, SUPERVISOR CALL (SVC) bei IBM- und Siemens-Systemen
Da die Cores sich im L3 Cache Daten teilen, im L1 und L2 Cache allerdings nicht mehr, kann es sein, dass in diesen von mehreren Cores für das selbe Datum verschiedene Werte stehen. Um das zu verhindern, gibt es auf dem Chip verschiedene Einheiten, die dafür sorgen, dass die Daten kohärent bleiben, sodass alle Operationen korrekt ablaufen können.Da die Cores sich im L3 Cache Daten teilen, im L1 und L2 Cache allerdings nicht mehr, kann es sein, dass in diesen von mehreren Cores für das selbe Datum verschiedene Werte stehen. Um das zu verhindern, gibt es auf dem Chip verschiedene Einheiten, die dafür sorgen, dass die Daten kohärent bleiben, sodass alle Operationen korrekt ablaufen können.