FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

RS: Die neue Übung! Hilfe!

RS: Die neue Übung! Hilfe! 2007-01-28 23:41
Anonymer User
Hey Leute! Ich sitz grad am neuen Übungsblatt zu RS und komm schon bei der zweiten Aufgabe nicht weiter. Sie lautet:

Aufgabe 5 (20 Punkte):
Bestimmen Sie welche Anzeigen der Befehl subcc auf einer 32-Bit Sparc für die folgenden
Rechnungen setzt. Die Zahlen sind als vorzeichenlose Zahlen notiert.

… und diesbezüglich hätte ich halt eine Frage: Was ist mit "welche Anzeigen" gemeint??? Kann sein das ich das verschlafen hab, aber das sagt mir ehrlich nada!
Wär voll lieb, wenn mir da jemand helfen könnte…
Danke schonmal im vorraus…

(edit fal: Topictitel)

Re: RS: Die neue Übung! Hilfe! 2007-01-28 23:42
Anonymer User
.. achja da fehlt noch der Zahlenteil der Aufgabe (sry!)

777 − 666 = 111,
300 − 300 = 0,
2147549183 − 65523 = 2147483660,
2147488308 − 268374582 = 1879113726,
2147483633 − 2147483636 = 4294967293,
2148676694 − 2147549171 = 1127523.

Re: RS: Die neue Übung! Hilfe! 2007-01-28 23:55
f0k
Was ist mit "welche Anzeigen" gemeint???
Schätzungsweise die Flags, die bei der Operation gesetzt werden - beim x86 gibt es sowas wie ein Zero-Flag (Ergebnis ist 0), ein Carry-Flag (Überlauf hat stattgefunden), … und das wird es auch bei der Sparc geben.

/Edit: Sinnvoll sind diese Flags natürlich nur, wenn man sie auch auswerten kann. Dies kann z.B. durch bedingte Sprunganweisungen (wie JZ - Jump if Zero) oder weitere Rechenoperationen (die den Übertrag berücksichtigen) geschehen. Das sollt ihr in der Aufgabe zwar nicht machen, aber ihr müsst ja wissen, wann welche Flags gesetzt werden, wenn ihr in eurem späteren Leben mal sowas wie Conditional Jumps einsetzen wollt [img]http://www.fb18.de/gfx/3.gif[/img].

Re: RS: Die neue Übung! Hilfe! 2007-01-29 00:42
low_level
… - beim x86 gibt es sowas wie ein Zero-Flag (Ergebnis ist 0), ein Carry-Flag (Überlauf hat stattgefunden), …

Fast richtig. Das Carry-Flag ist nicht für den Überlauf zuständig (dafür gibt es das Overflow-Bit), sondern für den Übertrag.

Und dann gab's bei Intel noch so komische Flags wie Auxiliary Carry (Übertrag der kleinstwertigen Hexziffer) und Parity, aber das tut jetzt nichts zur Sache. :)

Roland

Re: RS: Die neue Übung! Hilfe! 2007-01-29 01:17
Anonymer User
Bei der Sparc gibt es vier Anzeigen:

- Zero (Ergebnis ist null)
- Sign (Ergebnis ist negativ)
- Carry (sozusagen das 33. Bit des Ergebnisses)
- Overflow (wird gesetzt, wenn zwei positive Zahlen etwas negatives ergeben oder umgekehrt)

Re: RS: Die neue Übung! Hilfe! 2007-01-29 12:43
Anonymer User
danke leute!!!!! jetzt konnte ich die Aufgabe doch noch lösen!
Ihr seid toll!!!!!!!!!!!!!

Re: RS: Die neue Übung! Hilfe! 2007-01-29 13:13
Anonymer User
Ich will ja nicht nerven, aber ich komm schon wieder bei einer Aufgabe nicht weiter. sie lautet so:

Aufgabe 8 (30 Punkte):
Berechnen Sie den Effizienzverlust für eine fünfstufige und eine zehnstufige Befehlspipeline,
falls jeder fünfte Befehl ein Sprungbefehl ist, Sprungbefehle gleichmäßig im Code verteilt
sind und die Pipeline zu Beginn jeden Sprungbefehls wartet bis alle vorhergehenden Befehle
abgearbeitet sind.

Ich weiß nämlich nicht mehr, wie man den Effizienzverlust berechnet. Ich möchte jetzt keine fertige Lösung haben, aber könnt ihr mir da ein wenig unter die Arme greifen? Kann ich das irgendwo nochmal nachlesen oder so?
Wär voll toll wenn mir einer einen kurzen Denkanstoß geben könnte.
Auch diesesmal schonmal im vorraus Danke an jeden der hier antwortet.

Re: RS: Die neue Übung! Hilfe! 2007-01-29 13:37
Anonymer User
Naja, ein Programm ohne Sprungbefehle hält alle Pipes durchgehend in Atem, sprich 100% Effizienz.

Jetzt mal Dir die Pipes doch einfach mal für 10 oder 20 Befehle auf und schau, wie viele dann ruhen müssen, wenn jeder fünfte Befehl ein Sprungbefehl ist.