2010-09-29 - Aufgabe 01 ISA

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

2010-09-29 - Aufgabe 01 ISA
Aufgabe 1: Instruktionssatzarchitektur (7 Punkte)

a) Vier Klassen von Befehlssatz-Architekturen wurden in der Vorlesung vorgestellt. Zu welcher Klasse gehört eine CPU, die nachfolgenden AssemblerCode ausführen kann? Begründen Sie Ihre Antwort! (2 Punkte)

load a
add b
store tmp
load a
sub b
mul tmp
store c

Da ich bei Befehlen wie ADD, MUL, SUB nur einen Operanden habe, gehe ich davon aus, dass ich mit einem Akku arbeite.

b) Schreiben Sie obigen Assembler-Code um, sodass er für eine CPU der Klasse ,Register-Register/Load-Store" geeignet ist! Die CPU kenne die Register %r0 bis %r15. (2 Punkte)

[color=darkblue]Ziel (in Hochsprache!) : c = (a - b) * (a + b)

mov %r0 (a) mov %r1 (b) add %r3, %r0, %r1 sub %r4, %r0, %r1 mul %r4, %r4, %r3 mov ( c ), %r4 [/color]

c) Was unterscheidet eine RISC- und eine CISC-CPU? Nennen Sie sechs Unterscheidungsmerkmale! (3 Punkte)

was meint ihr.



zu a)
ja.
zu b)
auch ja.
Bei vielen RISCs wirst du wohl eine Unterscheidung zwischen Load (ld) und Store (st) im Befehlssatz finden, ist aber nicht weiter relevant…
Die Klammerung wirkt auch etw. esoterisch, aber bei den unzähligen Assembler-Sprachen gibts bestimmt eine, die so aussieht und es ist ja klar was gemeint ist…
siehe z.B. http://www.ibm.com/developerworks/library/l-ppc/ für Unterschiede x86/PPC
zu c)
siehe http://www.telnet7.net/articles/not_mine/cisc_risc.htm
Da steht im Grunde genau das, das in den Übungen besprochen wurde und hier gefragt ist…