[TI] MMIX

[TI] Einführung in die Technische Informatik
[BuS] Betriebssysteme und Systemsoftware
[PSP] Praktikum Systemprogrammierung
[DakS] Datenkommunikation und Sicherheit

MMIX

Beitragvon emx » 28.02.10 17:34

Hi,

ich hab hier eine Aufgabe in der folgende Ausgabe von mmix gegeben ist:

Code: Alles auswählen
mmix>
9.00000000000010c:20fcfcfb(ADD)$252=g[252]=36+9=45
43 instructions, 0 mems, 43oops; 9 goodguesses, 0bad
(nowatlocation#000000000000110)


Die Fragen sind: Welcher Befehl wurde ausgeführt? An welcher Speicherstelle steht der Befehl? Wieviel Speicher braucht der Befehl? Welche Register werden für den Befehl genutzt (Nummer des Registers)?

Befehl ist: ADD $252,36,9
Speicherstelle: #10c -> 268

Ist das richtig so? Bei dem Speicher und dem Register habe ich keine Ahnung. Das Register bei ADD ist ja im Prinzip $252, aber wieviel Speicher braucht der Befehl und woran sieht man das?

mfg
emx
 
Beiträge: 71
Registriert: 23.01.10 19:45

Re: MMIX

Beitragvon dima » 28.02.10 20:47

Heyho,

alle Angaben ohne Gewähr, aber hier meine 2cent um Thema.

- Das mit dem Befehl ist denk ich klar (stimmt so).
- An sich steht der Befehl im Programm am Offset 0x10C (ich denke danach ist auch gefragt)- imho ist deine Antwort schon richtig.
- Wie viel Speicher der Befehl braucht? Nun ja .. es ist ja nicht gefragt wie viel Speicher die Ausführung des Befehls braucht, sondern nur der Befehl selbst. Da alle Befehle in MMIX 4Byte brauchen, ist dieser keine Ausnahme. Man hätte auch darauf kommen können wenn man sich die Differenz aus instruction pointer und Speicheradresse des Befehls angeschaut hätte ;) 0x110-0x10C=0x4.
- Bei dem Register denke ich, dass nur nach dem Register 252 gefragt ist.

Aber wie gesagt ... ich kann keine 100%-ige Gültigkeit meiner Aussagen garantieren (aber immerhin klingen sie logisch ;) )
Benutzeravatar
dima
 
Beiträge: 15
Registriert: 16.10.09 20:26
Wohnort: Aachen
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 09/10
Anwendungsfach: E-Technik

Re: MMIX

Beitragvon emx » 28.02.10 20:58

Hm, macht Sinn. Weißt du denn wofür das "0 mems, 43 oops" steht?
emx
 
Beiträge: 71
Registriert: 23.01.10 19:45

Re: MMIX

Beitragvon dima » 28.02.10 21:26

Jops,.. das meiste erfährt man hier http://www.cs.utsa.edu/~wagner/mmix/17500002.pdf

Ich zitiere mal das wesentliche:
For practical purposes, the running time of an MMIX program can often be estimated
satisfactorily by assigning a fi xed cost to each operation, based on the approximate
running time that would be obtained on a high-performance machine with lots of
main memory; so that's what we will do. Each operation will be assumed to take
an integer number of v, where v (pronounced "oops") is a unit that represents the
clock cycle time in a pipelined implementation. The value of v will probably decrease
from year to year, but I'll keep calling it v. The running time will also depend on
the number of memory references or "mems" that a program uses; this is the number
of load and store instructions. For example, each LDO (load octa) instruction will be
assumed to cost µ+v , where µ is the average cost of a memory reference. The total
running time of a program might be reported as, say, 35µ+1000v, meaning 35 mems
plus 1000 oops. The ratio µ/v= will probably increase with time, so mem-counting is
likely to become increasingly important.
Benutzeravatar
dima
 
Beiträge: 15
Registriert: 16.10.09 20:26
Wohnort: Aachen
Studiengang: Informatik (B.Sc.)
Studiert seit: WS 09/10
Anwendungsfach: E-Technik

Re: MMIX

Beitragvon emx » 01.03.10 02:38

Danke dir, das PDF ist echt super. Man findet ja leider sonst kaum was zu MMIX im Web.
emx
 
Beiträge: 71
Registriert: 23.01.10 19:45

Re: MMIX

Beitragvon MartinL » 01.03.10 10:46

Zur Info: In der Lehrbuchsammlung gibt es 100fach Das MMIX-Buch in dem das ganze relativ ausführlich erklärt wird.
MartinL
 
Beiträge: 531
Registriert: 23.01.07 20:48
Studiert seit: WS 06/07
Anwendungsfach: Mathe


Zurück zu Technische Informatik