4.0 Befehlsverarbeitung
4.1 Load-Store Architektur
[Wikipedia: Load/Store-Architektur]
Fragen
- Wann spricht man von einer Load-Store-Architektur?
- Warum sind viele RISC-Architekturen danach konstruiert?
- Welche Vor- und Nachteile hat diese Architektur?
4.2 Steuerung / Leitwerk
[Wikipedia: Steuerwerk]
Fragen
- Welche Aufgabe hat das Leitwerk?
- Wofür steht die Abkürzung IR?
4.3 Befehlspipeline
[Wikipedia: Pipeline (Prozessor)] [YouTube: Steve jobs talking about the Megahertz Myth]
Aufgabe 1
Holen | Dekodieren | Ausführen | |
---|---|---|---|
1. Takt | |||
2. Takt | |||
3. Takt | |||
4. Takt |
Füllen Sie die Tabelle aus. Im Codespeicher steht:
mov R0,#10
mov R1,#20
add R2,R1,R0
mov R3,R2
Aufgabe 2
Berechnen Sie die Ausführungszeit des Programms bei einer Taktfrequenz f=32MHz. Alle Instruktionen werden in einem Takt ausgeführt.
Hinweis: Wenn verzweigt wird werden 3 zusätzliche Takte benötigt um die Pipeline neu zu füllen.
Warum sollten Verzweigungen in schnellen Programmen möglichst vermieden werden?
Welche Aufgabe hat der Programcounter?
Vorbedingungen: R0=100, R1=1
w1:
subs R0,R1 //R0:=R0-R1, Nullanzeiger wird aktualisiert
bne w1 //wenn 0 verzweige zu Sprungmarke w1
4.4 RISC_CISC
[Wikipedia: Reduced Instruction Set Computer]
Hinweis: Anzahl der Takte für ARM RISC stimmen nicht!
ldr R1,=Adresse (>=2 Takte)
ldr R2,[R1,0] (2 Takte)
add R0,R0,R2 (1 Takt)
ldr R1,=Adresse (>=2 Takte)
ldr R2,[R1,0] (2 Takte)
subs R2,#1 (1 Takt)
str R2,[R1,0] (2 Takte)
bne Sprungmarke (>=1 Takte)
Fragen
- Unser STM32 (AVR: ATmega328P) hat einen RISC Befehlssatz.
- Wo für steht die Abkürzung RISC?
- Nennen Sie die Alternative und die Abkürzung dazu.
- Welche Vor- und Nachteile hat RISC gegenüber der Alternative?
- Warum wurde RISC eingeführt?