updatet
This commit is contained in:
67
Writerside/topics/RA/MU2-3Rechner.md
Normal file
67
Writerside/topics/RA/MU2-3Rechner.md
Normal file
@ -0,0 +1,67 @@
|
||||
# MU2 und MU3Rechner
|
||||
## MU2 Rechner
|
||||
## Adressraum vergrößern
|
||||
### Wortbreite vergrößern
|
||||
- 16 Bit → 32 Bit
|
||||
- Register, Bus, ALU
|
||||
|
||||
### Adressberechnung mit Offset
|
||||
- Adresse = Register(bereits vorhandene Adresse) + Offset
|
||||
- Offset kann mit weniger Bits angegeben werden
|
||||
- Adresse hat volle Breite
|
||||
|
||||
**Wird benötigt für:**
|
||||
- **Relative Adressierung** für Unterprogramme / Sprünge
|
||||
- **Indizierte Adressierung** für Speicherzugriffe
|
||||
- Wie indirektes Laden und Speichern mit Offset
|
||||
- Laden von **PC-relativen Konstanten**
|
||||
- Prozessoren mit fester Befehlsbreite
|
||||
- Nur kleine Konstanten können im Code dekodiert werden
|
||||
- Falls Konstanten in der Nähe des augenblicklichen Programms (_bspw. hinter Returnanweisung eines Unterprogramms_)
|
||||
- können geladen werden
|
||||
|
||||
### Relative Adressierung
|
||||
- 
|
||||
- Code wird im Speicher verschiebbar
|
||||
|
||||
#### Labels
|
||||
- Umsetzung von PC-relativen Sprüngen mit Labels
|
||||
- 
|
||||
|
||||
### Indizierte Adressierung
|
||||
#### Beispiel Stack
|
||||

|
||||
- In Unterprogrammen wird dyn. Speicher reserviert, indem der Stackpointer dekrementiert wird
|
||||
- Zugriff auf Speicher über Stack + Offset(in Befehl)
|
||||
- PUSH & POP nicht ausreichend
|
||||
- bei mehreren Variablen auf dem Stack jeweils beim Lesen der Stack geräumt werden müsste
|
||||
|
||||
### Adressberechnung in der ALU
|
||||
- Adresse als Ergebnis der ALU ohne Speicherung in ACC
|
||||
- Keine absolute Adressierung (aus IR)
|
||||
- Nur ALU schreibt auf Adressbus (ohne Multiplexer)
|
||||
- 32 bit
|
||||
|
||||
#### Maximale Laufzeit:
|
||||

|
||||
- **Gesamtlaufzeit ist zu lang!**
|
||||
- in einem Takt möglich
|
||||
- falls Taktfrequenz niedrig genug
|
||||
|
||||
## MU3: Einführung des Adressregisters
|
||||

|
||||
- Ein Takt mehr um Daten aus dem Speicher zu holen
|
||||
- Taktfrequenz kann höher sein
|
||||
- Laufzeit pro Teilstück kürzer
|
||||
- **Nachteil:**
|
||||
- Nutzen des PC und Inkrementieren geht nicht mehr parallel
|
||||
- in Aout muss vor Fetch eine Kopie des aktuellen PC stehen
|
||||
- _(Fetch beginnt bei Aout!)_
|
||||
|
||||
### Beispiel relative Sprünge
|
||||

|
||||
|
||||
## Problem im Fetch-Zyklus
|
||||
**Datentransferbefehle ändern Aout**
|
||||
|
||||

|
Reference in New Issue
Block a user