Ich geb hier mal die Richtigen Aussagen weiter, das ist was aufwendig das zu suchen. Aber du hast ja die gute Übersicht für Vorhersage und Pipeline schon erstellt 🙂
Richtige Aussagen:
- Software gestützte Hardware enthält Firmware
- Firmware steht meist in einem Festwertspeicher
- Punkt-zu-Punkt-Verbindungen verbinden genau zwei Kommunikationsteilnehmer
- Der Transport von Informationen auf einem Bus wird mit Hilfe der Steuerleitungen gesteuert
- In modernen Rechnern ist der Hauptspeicher meist über einen Bus mit dem Prozessor verbunden
- Prozessoren verwenden Busse zum internen Datenaustausch
- Sowohl von-Neumann-Rechner als auch Rechner mit Havard-Architektur sind speicherprogrammierbar.
- Das Steuerwerk eines von-Neumann-Rechners holt Befehle aus dem Hauptspeicher, interpretiert sie und setzt sie in Steuerinformationen für andere Komponenten um
- Die einzige Aufgabe des Rechenwerks eines von-Neumann-Rechners ist die Ausführung mathematischer Operationen
- Die Verarbeitungsreihenfolge von Befehlen kann durch Sprungbefehle beeinflusst werden
- Prozessoren können nur in Maschinensprache vorliegende Programme ausführen. Programme in Hochsprachen müssen vor der Ausführung in Maschinensprache übersetzt werden
- Um 4096 Worte mit je vier Bytes zu adressieren, benötigt man Adressen mit der Länge von 12 Bits. Anzahl der Worte: 212 => 12 Bit notwendig
- Die minimale Zeit die zwischen zwei Zugriffen auf einen Speicher liegen muss, wird Zykluszeit genannt. Die Zugriffszeit ist die Zeit, die für das Lesen oder Schreiben einer Speicherzelle benötigt wird.
- RAMs und ROMs können vergleichbar schnell gelesen werden
- EPROMs werden mit einem optischen und EEPROMs mit einem elektrischen Verfahren gelöscht. Die Programmierung erfolgt in beiden Fällen elektrisch.
- Zum Speicher eines Rechners gehören u.a. Hintergrundspeicher, Register und Arbeitsspeicher
- Zu den Aufgaben eines Betriebssystems gehört das Umsetzen von logischen in physikalischen Adressen. Die Begriffe virtuelle Adressen und logische Adressen sind synonym.
- Wenn ein Lang-Wort vier Byte lang ist, enthält ein Halb-Wort acht Bits.
- Punkt-zu-Punkt-Verbindungen haben mindestens den gleichen und in den meisten Fällen einen größeren Verdrahtungsaufwand wie ein Bus. Sie haben jedoch andere Vorteile.
- Die Adressleitungen eines Busses wählen das genaue Ziel oder die Quelle eines Datentransportes aus.
- Zu jeder Zeit darf nur ein Kommunikationsteilnehmer eines Busses senden.
- Als von-Neumann-Flaschenhals bezeichnet man die Tatsache, dass Daten und Maschinenbefehle über denselben Bus transportiert werden.
- Die Havard-Architektur vermindert das Problem des von-Neumann-Flaschenhalses
- Mit Hilfe von Memory Mapped I/O können Ein-/Ausgabegeräte vom Prozessor wie Arbeitsspeicher angesprochen werden.
- Die Prozessorarchitektur definiert die Grenze zwischen Hardware und Software. Sie umfasst den für den Systemprogrammierer und für den Compiler sichtbaren Teil des Prozessors.
- Zum Programmiermodell eines Prozessors gehören u.a. der Befehlssatz, das Befehlsformat und die Adressierungsarten
- Die Eigenschaften der Mikroarchitektur werden zwar von der Prozessorarchitektur selbst nicht erfasst, um aber einen effizienten Code für einen speziellen Prozessor zu erzeugen, wird die Kenntnis der Mikroarchitektureigenschaften von Systemprogrammierern und optimierenden Compilern benötigt.
- Bei einem N-Bit-Prozessor besitzen die allgemeinen internen Register sowie die effektiven Adressen im Allgemeinen die Breite von N Bit.
- Bei einem byteadressierbaren Adressraum ist es insbesondere möglich, auf jedes Byte des Adressraumes einzeln zuzugreifen.
- Als effektive Adresse bezeichnet man diejenige Adresse, an der sich das zur Ausführung eines Befehls benötigte Datum tatsächlich befindet.
- Die 0-Adress- und die Akkumulatormaschine verwenden für arithmetische Befehle ausschließlich implizite Adressierung.
- Bei der direkten Adressierung besteht der Operand aus der Adresse des zu verarbeitenden Datums.
- Bei der unmittelbaren Adressierung besteht der Operand aus dem zu verarbeitenden Datum.
- Bei einer indizierten Adressierung errechnet sich die effektive Adresse zwar als Summe zweier Registerinhalte, es handelt sich jedoch nicht um eine Modulo-2-Summe.
- Bei der indirekten Adressierung besteht der Operand aus einem Verweis auf ein Register und darin ist eine Adresse.
- RISC-Architekturen zeichnen sich durch wenige, wichtige Befehle und Befehlsformate aus.
- Wichtige Voraussetzung für eine effiziente Implementierung einer RISC-Architektur ist die Verfügbarkeit preiswerter Speichertechnologie.
- CISC-Architekturen zeichnen sich durch umfangreiche Befehlssätze, mächtige Maschinenbefehle mit vielen Befehlsformaten und vielen Adressierungsarten aus.
- Sowohl bei CISC- als auch bei RISC-Architektur erfolgt die Parameterübergabe bei Unterprogrammaufrufen in der Regel über einen LIFO-organisierten Stackspeicher, der innerhalb des Hauptspeichers angelegt wird.
- Bei RISC-Architekturen kann gegenüber CISC-Architekturen die Chip-Fläche auf dem Prozessor effizienter genutzt werden
- Als LOAD/STORE-Architektur bezeichnet man eine RISC-Architektur, da dort nur über Lade-/Speicherbefehle auf den Speicher zugegriffen wird.
- Wegen des kleineren Befehlssatzes bei RISC-Architekturen wird dort grundsätzlich mehr Speicherplatz für die Unterbringung von Programmen benötigt (da mehr Befehle notwendig sind, gibt ja nur kleine…)
- Die Registerfenster-Technologie(window register organization) dient bei RISC-Architekturen einer einfachen und effizienten Parameterverteilung.
- Das von-Neumann-Prinzip beschreibt eine prinzipielle Rechnerstruktur, bei der der Prozessor die Ablaufsteuerung und die Ausführung der Befehle übernimmt und die Schnittstelle des Prozessors nach außen durch eine spezielle Ein-/Ausgabeeinheit gebildet wird.
- Das Operationsprinzip der von-Neumann-Architektur besagt, dass die Befehle in einer sequenziellen Reihenfolge ausgeführt werden müssen, ermöglicht aber auch ein Pipelining in zwei Befehlsphasen.
- Der von-Neumann-Flaschenhals entsteht daraus, dass Befehle und Daten im gleichen Speicherbereich untergebracht sind und daher den gleichen Weg zwischen Prozessor und Speicher nehmen.
- Beim von-Neumann-Rechner werden Programme und Daten im Hauptsspeicher abgelegt, der Cache-Speicher ist zusätzlich und dient nur zur Aufnahme häufig benutzter Daten, wobei der Cache nur einen Teil der Speicherkapazität des Hauptspeichers besitzt.
- Beim Havard-Rechner werden Programme und Daten in völlig getrennten Hauptsspeichern abgelegt um getrennte Zugriffswege zu haben und damit den Flaschenhals zu mildern oder zu vermeiden.
- Moderne Rechner enthalten neben den Hauptspeicher- und Festplatten-Cache zusätzlich einen speziellen Befehlscache auf dem Prozessorchip, durch den das Havard-Prinzip zumindest ansatzweise realisiert wird.
- Sowohl in der Bereitstellungsphase kann um einen Befehl zu holen als auch in der Ausführungsphase kann um ein Datum zu holen ein Speicherzugriff erforderlich sein. Ein Problem entsteht also wenn Befehle und Daten wie bei der von-Neumann-Architektur im gleichen Speicher stehen und zu einem Zeitpunkt nur ein Speicherzugriff möglich ist.
- Pipelining beschreibt die Bearbeitung eins Auftrags in Form von überlappend ausgeführten unabhängigen bzw. nebenläufigen Teilaufträgen in Form eines Fließbands.
- Pipelininig ermöglicht die Beschleunigung der Bearbeitung durch Parallelisierung von nebenläufigen Teilaufträgen.
- Die Zwischenergebnisse der einzelnen Pipelinestufen werden in speziellen Registern innerhalb der Pipeline gespeichert, dies ist zur Entkopplung der einzelnen Stufen zwingend erforderlich.
- Bei gleichlangen Phasen wird die Ausführungszeit nur optimiert, dies ist aber keine Voraussetzung für die Implementierung einer Pipeline.
- Enthält der auf der Pipeline auszuführende Befehlssatz Befehle, die nicht LOAD/STORE-konform sind, muss die Bereitstellung der Operanden in mehreren Takten erfolgen.
- Einfache arithmetisch-logische Operationen können in einer Pipeline-Phase untergebracht werden, komplexe Operationen benötigen mehrere Takte.
- Ein Pipeline-Konflikt bezeichnet die Unterbrechung (Störung) des taktsynchronen Durchlaufs der Befehle in der Pipeline infolge von Abhängigkeiten bei Daten oder Ressourcen oder im Steuerfluss.
- Eine Befehls-Pipeline kann durch die Ausführung in vier Stufen Holphase, Decodierphase, Ausführungsphase und Rückschreibephase implementiert werden.
- Es gibt keinen Datenkonflikt wenn zwei Prozesse die gleichen Daten anfordern. Bei einem Datenkonflikt steht ein benötigter Operand oder ein benötigtes Register nicht zur Verfügung.
- Steuerflusskonflikte werden hauptsächlich durch Sprungbefehle verursacht, bei denen das Sprungziel erst kurz vor der Ausführung des ermittelt werden kann.
- Betrachtet man zwei Befehle, wobei der eine Befehl einen Operanden aus einem Register holt, in das der andere Befehl ein Ergebnis ablegt, so bezeichnen wir diese Situation als Gegenabhängigkeit.
- Gegenüber Gegen- und Ausgabeabhängigkeiten, die in der Regel durch Umbenennungen von Variablen oder Regstern entfernt werden können, verursachen echte Datenabhängigkeiten, bei denen auf Ergebnisse gewartet werden muss, Probleme in der Pipeline.
- Sowohl ein Schreibe-Nach-Lese sowie ein Lese-Nach-Schreibe-Konflikt ist durch einen größeren Abstand der kollidierenden Befehle im Programm lösbar.
- Geeignete Maßnahmen zur Organisation einer effizienten Sprungbehandlung bedingter Sprünge sind eine möglichst genaue Sprungvorhersage sowie die parallele Ausführung der alternativen Programmsequenzen.
- Die dynamische Sprungvorhersage berücksichtigt bei der Entscheidung die bisherigen Sprungverläufe und ist damit aufwändiger, aber auch genauer.
- Das Prädikationsbit dient dazu, um aufgrund der Sprungbedingung über den tatsächlich auszuführenden Programmpfad zu entscheiden und kann vom Anwender nicht beeinflusst werden.
- Bei einer dynamischen Sprungvorhersage wird die Entscheidung über die Verzweigung in Abhängigkeit vom aktuellen Anwenderprogrammverlauf getroffen, bei einer statischen Vorhersage wird die Entscheidung durch die Hardware nach einem bestimmten Entscheidungsmuster vorhergesagt.
- Bei einer dynamischen Vorhersage kann es zu einer Fehlspekulation kommen, weil die Verlaufsgeschichte eines anderen Sprungbefehls als Entscheidungsbasis herangezogen wird.
- Der 1-Bit-Prädikator benötigt eine BHT, diese enthält jedoch nicht für jeden Sprung einen eigenen Eintrag. Es handelt sich dabei um eine Art Cache, dessen Einträge nur mit einem Teil der Sprungbefehlsadresse adressiert werden.
- Ein 2-Bit-Prädikator kann durch einen BTAC realisiert werden, in den ausschließlich die als „genommenen“ (T) vorhergesagten Sprünge eingetragen werden.
- Die Implementierung eines 2-Bit-Prädikators ist wegen der größeren Informationstabelle komplexer als die eines 1-Bit-Prädikators.
- Aufgrund der begrenzten Adresslänge kann es vorkommen, dass ein Prädikator für zwei oder mehr Verzweigungen eine Sprungvorhersage erzeugt.