Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:techinf:mikroprogrammierung:einfuehrung:start [26.10.2022 17:32] – Frank Schiebel | faecher:informatik:oberstufe:techinf:mikroprogrammierung:einfuehrung:start [02.06.2024 12:55] (aktuell) – Marco Kuemmel | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Das Bild zeigt das Hauptfenster von MikrosimD: | Das Bild zeigt das Hauptfenster von MikrosimD: | ||
- | * Unten links im befindet sich die ALU (Arithmetisch-Logische Einheit) und eine Reihe von Registern (1-Byte-Speicher). Alle Bitfolgen sind hexadezimal angegeben, die zwei Hexadezimalzahlen, | + | * Unten links befindet sich die ALU (Arithmetisch-Logische Einheit) und eine Reihe von Registern (1-Byte-Speicher). Alle Bitfolgen sind hexadezimal angegeben, die zwei Hexadezimalzahlen, |
* Rechts ist der Arbeitsspeicher (das RAM) mit 256 Byte Speicherplatz (von 00h bis FFh) | * Rechts ist der Arbeitsspeicher (das RAM) mit 256 Byte Speicherplatz (von 00h bis FFh) | ||
* Zwischen den Registern, der ALU und dem Arbeitsspeicher stehen " | * Zwischen den Registern, der ALU und dem Arbeitsspeicher stehen " | ||
Zeile 31: | Zeile 31: | ||
=== b) === | === b) === | ||
- | In den Registern AX, BX und DR steht zunächst die Zahl 00. in beiden | + | In den Registern AX, BX und DR steht zunächst die Zahl 00. In allen Registern soll die Zahl 01 eingetragen werden. |
* Öffne die Tore 0, 2, 7 und A | * Öffne die Tore 0, 2, 7 und A | ||
* Löse nacheinander mehrere Taktschritte aus, indem du auf die Schaltfläche ''>'' | * Löse nacheinander mehrere Taktschritte aus, indem du auf die Schaltfläche ''>'' | ||
Zeile 77: | Zeile 77: | ||
++++ Lösung | | ++++ Lösung | | ||
- | Die ALU hat zwei Eingänge und einen Ausgang. Im Ersten | + | Die ALU hat zwei Eingänge und einen Ausgang. Im ersten |
++++ | ++++ | ||
=== c) === | === c) === | ||
- | Eine besondere Aufgabe hat das Register AR (Adress-Register). Es legt fest, auf welche Adresse des Arbeitsspeichers zugegriffen werden soll. Die Tore B und C legen fest, ob der Wert des Datenregisters DR in den Arbeitsspeicher geschrieben | + | Eine besondere Aufgabe hat das Register AR (Adress-Register). Es legt fest, auf welche Adresse des Arbeitsspeichers zugegriffen werden soll. Die Tore B und C legen fest, ob der Wert des Datenregisters DR in den Arbeitsspeicher geschrieben |
Teste die Funktionalität: | Teste die Funktionalität: | ||
Zeile 110: | Zeile 110: | ||
* Speicherzugriffe benötigen nur nur einen Takt. | * Speicherzugriffe benötigen nur nur einen Takt. | ||
</ | </ | ||
+ | |||
+ | ===== Ein Wort zu Latenzen ===== | ||
+ | |||
+ | Die **Latenzzeit** ist ein Maß für die Wartezeit. Damit kann z.B. die Zeit gemeint sein, die benötigt wird, um einen bestimmten Vorgang abzuschließen, | ||
+ | |||
+ | Die Latenzzeit kann z.B. auch die Zeit ausdrücken, | ||
+ | |||
+ | Heutige CPUs arbeiten sehr schnell, mit Taktfrequenzen von einigen GHz. Der Zugriff auf Inhalte des Hauptspeichers dauert jedoch um ein Vielfaches länger - wenn der Prozessor also Daten aus dem Hauptspeicher verarbeiten möchte, muss er warten bis dieser Zugriff abgeschlossen ist und die Daten zur Verfügung stehen - es entsteht eine Latenzzeit. | ||
+ | |||
+ | Wenn man Aussagen trifft wie: //"Der Zugriff auf den Hauptspeicher dauert ein vielfaches länger, als der Zugriff auf die Register oder den Cache des Prozessors"// | ||
+ | |||
+ | Der Autor Brendan Gregg hat die Latenzen eines Computersystems in seinem Buch " | ||
+ | Enterprise and the Cloud" sehr schön in einer Tabelle veranschaulicht. Er geht von einem CPU Takt aus, der etwa 0,3ns dauert ($0, | ||
+ | |||
+ | Diese Zeitdauer skaliert der Autor in einer Tabelle auf 1 Sekunde hoch, und rechnet auf dieser Basis aus, wie lange andere Vorgänge in Rechnersystemen bei dieser Skalierung dauern würden. Dadurch erhält man ein besseres Gefühl, des Ausdrucks "ein Vielfaches länger. Im Falle des Hauptspeicherzugriffs kann man der Tabelle entnehmen, dass dieser etwa 360 mal so lange dauert wie ein CPU Takt und 120 mal so lange wie der Zugriff auf den Level 1 Cache im Prozessor. | ||
+ | |||
+ | ^ Vorgang | ||
+ | | 1 CPU Takt | 0,3ns | 1s | | ||
+ | | Level 1 Cache Zugriff | ||
+ | | Level 2 Cache Zugriff | ||
+ | | Level 3 Cache Zugriff | ||
+ | | Hauptspeicherzugriff (DRAM, von der CPU aus) | 120ns | 6min | | ||
+ | | SSD Zugriff (Solid State Festplatte) | ||
+ | | Herkömmliche Festplatte (Rotierende Magnetscheiben) | ||
+ | | Internet: San Francisco - New York | 40ms | 4 Jahre | | ||
+ | | Internet: San Francisco - London | ||
+ | | Internet: San Francisco - Australien | ||
+ | | TCP Retransmit eines fehlerhaften Pakets | ||
+ | | Neustart eines nativ virtualisierten Rechners | ||
+ | | SCSI Befehls Time-Out (Bus System für externe Geräte) | ||
+ | | Neustart eines virtualisierten Rechners mit Hardware Emulation | ||
+ | | Neustart des Computersystems | ||
+ | |||
+ | |||
+ | |||