diff --git a/Writerside/images/image_254.png b/Writerside/images/image_254.png new file mode 100644 index 0000000..a89fc61 Binary files /dev/null and b/Writerside/images/image_254.png differ diff --git a/Writerside/images/image_255.png b/Writerside/images/image_255.png new file mode 100644 index 0000000..b01a5d6 Binary files /dev/null and b/Writerside/images/image_255.png differ diff --git a/Writerside/images/image_256.png b/Writerside/images/image_256.png new file mode 100644 index 0000000..63c1d48 Binary files /dev/null and b/Writerside/images/image_256.png differ diff --git a/Writerside/images/image_257.png b/Writerside/images/image_257.png new file mode 100644 index 0000000..5d848a0 Binary files /dev/null and b/Writerside/images/image_257.png differ diff --git a/Writerside/images/image_258.png b/Writerside/images/image_258.png new file mode 100644 index 0000000..6e49f6e Binary files /dev/null and b/Writerside/images/image_258.png differ diff --git a/Writerside/images/image_259.png b/Writerside/images/image_259.png new file mode 100644 index 0000000..465ab1a Binary files /dev/null and b/Writerside/images/image_259.png differ diff --git a/Writerside/images/image_260.png b/Writerside/images/image_260.png new file mode 100644 index 0000000..df44b31 Binary files /dev/null and b/Writerside/images/image_260.png differ diff --git a/Writerside/images/image_261.png b/Writerside/images/image_261.png new file mode 100644 index 0000000..f9b163b Binary files /dev/null and b/Writerside/images/image_261.png differ diff --git a/Writerside/images/image_262.png b/Writerside/images/image_262.png new file mode 100644 index 0000000..b14e827 Binary files /dev/null and b/Writerside/images/image_262.png differ diff --git a/Writerside/images/image_263.png b/Writerside/images/image_263.png new file mode 100644 index 0000000..e516c22 Binary files /dev/null and b/Writerside/images/image_263.png differ diff --git a/Writerside/images/image_264.png b/Writerside/images/image_264.png new file mode 100644 index 0000000..c89a829 Binary files /dev/null and b/Writerside/images/image_264.png differ diff --git a/Writerside/images/image_265.png b/Writerside/images/image_265.png new file mode 100644 index 0000000..0bb3328 Binary files /dev/null and b/Writerside/images/image_265.png differ diff --git a/Writerside/images/image_266.png b/Writerside/images/image_266.png new file mode 100644 index 0000000..8a08253 Binary files /dev/null and b/Writerside/images/image_266.png differ diff --git a/Writerside/images/image_267.png b/Writerside/images/image_267.png new file mode 100644 index 0000000..8c4d7fb Binary files /dev/null and b/Writerside/images/image_267.png differ diff --git a/Writerside/images/image_268.png b/Writerside/images/image_268.png new file mode 100644 index 0000000..7b15168 Binary files /dev/null and b/Writerside/images/image_268.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index ca2df15..1e2495f 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -39,8 +39,8 @@ - + diff --git a/Writerside/topics/RA/Klassifikation.md b/Writerside/topics/RA/Klassifikation.md index 51c8ef4..1d59ea1 100644 --- a/Writerside/topics/RA/Klassifikation.md +++ b/Writerside/topics/RA/Klassifikation.md @@ -1 +1,125 @@ # Klassifikation +> Eigenschaften von Prozessoren +## Klassifizierung gemäß Operandenstruktur +### Stackarchitektur +- Stacks werden unabhängig von der jeweiligen Architektur verwendet + - bei Unterprogrammaufrufen und Prarameterübergaben +- Call-Befehl + - pusht Rücksprungadresse und ggf. Registerstati +- Return + - popt Werte wieder +- ![image_257.png](image_257.png) + +![image_254.png](image_254.png) + +### Akkumulator Architektur +- Ausgezeichnetes Register: Akku(mulator) (_ehem. ACC_) +- LOAD und STORE wirken nur auf Akku + - expliziter Operand, an jeder Operation beteiligt + - jede Operation braucht nur eine Adresse +- Sehr kompaktes Befehlsformat + - ![image_255.png](image_255.png) +- ![image_256.png](image_256.png) + +### Register-Register-Architektur +- RISC (LOAD-STORE-Architektur) + - alle Operationen greifen nur auf Register zu + - 32-512 Register verfügbar + - **nur** LOAD und STORE greifen auf Speicher zu +- Einfaches Befehlsformat fester Länge + - ![image_258.png](image_258.png) +- alle Instruktionen brauchen in etwa gleich lange +- ![image_259.png](image_259.png) + +### Register-Speicher-Architektur +- CISC (Mischung von Akkumulator- und Load-Store-Architektur) +- Operationen greifen auf Register und/oder Speicher zu +- Befehlsformat variabler Länge + - mächtige Befehle + - ![image_260.png](image_260.png) +- stark unterschiedliche Zeiten für Instruktionsausführung +- ![image_261.png](image_261.png) + +## Klassifizierung gemäß Busaufbau +### [Vergleich Harvard- / von Neumann Architektur](MU6Rechner.md#vergleich-harvard-von-neumann-architektur) + +### Bussysteme +- Systembus = Datenbus, Adressbus, Kontrollbus, Bus zur elektrischen Versorgung der Komponenten + - teilweise zstzl. I/O-Bus +- ![image_262.png](image_262.png) + + +## Klassifizierung gemäß Befehlssätzen +### Orthogonale Befehlssätze +> Wenn Opcode, Adressierungsart und Datentyp beliebig kombiniert werden können + +| **Vorteile** | **Nachteile** | +|---------------------------------------------------|--------------------------------| +| Vereinfacht Nutzung der verfügbaren Instruktionen | Sehr umfangreiche Befehlssätze | + + +### CISC Kriterien +- Befehle unterschiedlicher Länge von 1-17 Byte + - Speichereffizienz + - komplexe Befehlskodierung +- Komplexer Befehlssatz + - Anpassung an Compiler + - Hochsprachenkonstrukte im Assembler + - Erleichterung der Assemblerprogrammierung + - Mächtige Befehle + - kurze Programme + +### RISC Prinzipien +- Grundlegendes Design-Prinzip + - Einfachheit +- Befehle gleicher Länge (meist 32 Bit) +- Abarbeiten mit gleicher Taktzahl + - erlaubt Befehlspipelines +- Eingeschränkter Befehlssatz (32-128 Befehle) +- Explizite Lade/Speicher-Befehle (Load-Store-Architektur) +- [3-Adress-Befehle](#3-adress-befehle) +- Delayed Branches + +## Klassifizierung gemäß Speicherorganisation +### [Little/Big Endian](MU4-5Rechner.md#speicheradressierung) + +### 4-Adress-Befehle +![image_263.png](image_263.png) +- Allgemeinste Form für Befehlsformat +- next_i = Adresse des nächsten Befehls +- schwierig zu programmieren +- wird für Microcode verwendet (CISC Mikroprogramme) + +### 3-Adress-Befehle +![image_264.png](image_264.png) +- Standard bei RISC Prozessoren (_bspw. ARM 32 Bit_) +- 3 Adressen benötigen Platz + - Format ist erst ab 32-Bit-Befehlssatz sinnvoll +- nächste Befehlsadresse implizit + - Sprungbefehle können implizites Verhalten ändern + +### 2-Adress-Befehle +![image_265.png](image_265.png) +- Standardformat für 8 und 16-Bit-Mikroprozessoren +- Format für Intel Prozessoren +- RISC-Prozessoren mit komprimierten Befehlssatz nutzen ebenfalls das Format + - _bspw. ARM Thumb, MIPS_ + +### 1-Adress-Befehle +![image_266.png](image_266.png) +- Zielregister ist implizit und wird ACC genannt +- wird im [MU0-Design](MU0Rechner.md) benutzt +- Hohe Befehlsdichte + - geringe Flexibilität + +### 0-Adress-Befehle +![image_267.png](image_267.png) +- Beide Operanden und das Ziel sind implizit +- Befehlssatz nur für Stackarchitektur möglich + - weitere Befehle mit Operanden zum Speichern / Laden nötig +- _verwendet in [Java Virtual Machine](12_Virtualisierung.md#anwendungsvirtualisierung)_ + +## Einordnung Prozessoren +![image_268.png](image_268.png) + + diff --git a/Writerside/topics/RA/MU6Rechner.md b/Writerside/topics/RA/MU6Rechner.md index e723c64..f35f189 100644 --- a/Writerside/topics/RA/MU6Rechner.md +++ b/Writerside/topics/RA/MU6Rechner.md @@ -17,11 +17,12 @@ ## Datenpfad mit Harvard-Architektur ![image_151.png](image_151.png) - Barrelshift-Einheit der ARM-Prozessoren im B-Bus hier nicht eingezeichnet - +- I-MEM = Speicher für Programme / Cache +- D-MEM = Speicher für Daten / Cache ## MU6-Architektur - Wichtigste Änderung: Trennung von Instruktions- und Datenspeicher - Da PC immer Instruktionsadresse vorgibt - - PC und Instruktions-Adressregister sind identisch + - PC und Instruktions-Adressregister (IADR) sind identisch - PC taucht im Registerfile noch auf - sein Wert kann auf A- / B-Bus gelegt werden - Werte im Instruktionregister können für [ALU-Operationen](MU4-5Rechner.md#mu5-verbesserte-alu) verwendet werden diff --git a/Writerside/topics/RA/MU7Rechner.md b/Writerside/topics/RA/MU7Rechner.md index 63896db..05be19b 100644 --- a/Writerside/topics/RA/MU7Rechner.md +++ b/Writerside/topics/RA/MU7Rechner.md @@ -47,4 +47,4 @@ Sprungverhalten einer Pipeline mit Forwarding ![image_155.png](image_155.png) ## Datenpfad mit 5-Stufen Pipeline und Forwarding des PC -![image_156.png](image_156.png) \ No newline at end of file +![image_156.png](image_156.png) \ No newline at end of file