Seite 1 von 1

Uebung 3 (Adder, RAM, FSM)

Verfasst: 2. Okt 2006 23:08
von charleswk
Hallo,

wir haben Fragen bzgl. der Uebung 3. Wir sollen die Daten aus RAM holen
und in die Adder schreiben, um dort zu addieren. Unsere Register ist 8
bits lang, aber der Adder aus der Aufgabe 2 funktioniert immer so, dass
er zwei Eingaben mit n bits lang und eine Ausgabe mit n+1 bits hat, aber
fuer die Aufgabe 3 haben wir den Adder geaendert, d.h. die Ausgabe hat
immer n bits lang, also genauso lang wie der Eingabe, denn die Ausgabe
von Adder muss in den Register gespeichert werden. Ist es richtig? Nach
unseren Ueberlegungen ist es falsch (es kann sein, dass z.B. 11 + 01 =
100, aber unser Ergebnis 00), aber auf der anderen Seiten ist es richtig
(der Register ist n bits lang).

Weitere Frage, Das Ergebnis vom Adder soll ins RAM gespeichert werden,
heisst es, es ist egal in welchen Register das Ergebniss gespeichert
wird? Wenn nein, kommst die naechste Frage.
Was soll gemacht werden, wenn das Ergebnis vom Adder in einen bestimmten
Register gespeichert werden muss, aber der Register ist belegt?
Logischerweise kann nicht gespeichert werden. Und sind die restlichen
undbelegten Registers unbenutzber oder? Obwohl das Ergebnis gespeichert
werden kann. Wir denken mal, dass alles was und wie in der Uebung 3
geschehen, werden von FSM gesteuert oder? D.h. die FSM entscheidet
alles, was gemacht werden soll.

Ich danke Euch...........

Gruss,

Gruppe 17

Re: Uebung 3 (Adder, RAM, FSM)

Verfasst: 2. Okt 2006 23:38
von Thorti
Hallo,
charleswk hat geschrieben:wir haben Fragen bzgl. der Uebung 3. Wir sollen die Daten aus RAM holen und in die Adder schreiben, um dort zu addieren. Unsere Register ist 8 bits lang, aber der Adder aus der Aufgabe 2 funktioniert immer so, dass er zwei Eingaben mit n bits lang und eine Ausgabe mit n+1 bits hat, aber fuer die Aufgabe 3 haben wir den Adder geaendert, d.h. die Ausgabe hat immer n bits lang, also genauso lang wie der Eingabe, denn die Ausgabe von Adder muss in den Register gespeichert werden. Ist es richtig? Nach unseren Ueberlegungen ist es falsch (es kann sein, dass z.B. 11 + 01 = 100, aber unser Ergebnis 00), aber auf der anderen Seiten ist es richtig (der Register ist n bits lang).
Das könnt ihr machen wie ihr wollt hat Felix Madlener in der Vorlesung gesagt. Aber warum schneidet ihr es ab, wir haben doch 8 Bit im RAM, da könnt ihr doch die 3 Bits ohne Probleme reinspeichern oder?
Weitere Frage, Das Ergebnis vom Adder soll ins RAM gespeichert werden, heisst es, es ist egal in welchen Register das Ergebniss gespeichert wird?
Ja, könnt ihr eine feste Konstante als Zieladresse nehmen.
Was soll gemacht werden, wenn das Ergebnis vom Adder in einen bestimmten Register gespeichert werden muss, aber der Register ist belegt? Logischerweise kann nicht gespeichert werden. Und sind die restlichen undbelegten Registers unbenutzber oder? Obwohl das Ergebnis gespeichert werden kann. Wir denken mal, dass alles was und wie in der Uebung 3 geschehen, werden von FSM gesteuert oder? D.h. die FSM entscheidet alles, was gemacht werden soll.
Hm, ehrlich gesagt verstehe ich euer Problem nicht... Was versteht ihr unter "Register ist belegt"? Jedes Register ist immer mit irgendwas belegt! Und das kann man doch einfach überschreiben...

Gruss Thorti

Re: Uebung 3 (Adder, RAM, FSM)

Verfasst: 3. Okt 2006 15:26
von charleswk
Thorti hat geschrieben:Hallo,
Das könnt ihr machen wie ihr wollt hat Felix Madlener in der Vorlesung gesagt. Aber warum schneidet ihr es ab, wir haben doch 8 Bit im RAM, da könnt ihr doch die 3 Bits ohne Probleme reinspeichern oder?
Moment mal, der RAM besteht aus 2^n Register und jeder Register ist 8 bits gross. Natuerlich ist es kein Problem beim Speichern der Datei, der kleiner als 9 bits gross ist, aber wenn die Daten groesser als 2 bits sind und in den Adder geschickt werden um dort zu addieren, ist es klar ein Problem, denn Dein Adder nimmt immer nur 2 bits als inputs. Deshalb haben wir unseren Adder geaendert.
Thorti hat geschrieben:
Was soll gemacht werden, wenn das Ergebnis vom Adder in einen bestimmten Register gespeichert werden muss, aber der Register ist belegt? Logischerweise kann nicht gespeichert werden. Und sind die restlichen undbelegten Registers unbenutzber oder? Obwohl das Ergebnis gespeichert werden kann. Wir denken mal, dass alles was und wie in der Uebung 3 geschehen, werden von FSM gesteuert oder? D.h. die FSM entscheidet alles, was gemacht werden soll.
Hm, ehrlich gesagt verstehe ich euer Problem nicht... Was versteht ihr unter "Register ist belegt"? Jedes Register ist immer mit irgendwas belegt! Und das kann man doch einfach überschreiben...
Was? Jeder Register ist immer belegt? Wieso? Wir denken als Initialisierung muessen alle Registers nicht belegt sein. Wenn Du meinst, dass die Inhalt von Registers ueberschrieben werden kann, ok.

Gruss,

Gruppe 17

Re: Uebung 3 (Adder, RAM, FSM)

Verfasst: 3. Okt 2006 16:17
von Thorti
Hallo,
charleswk hat geschrieben:Was? Jeder Register ist immer belegt? Wieso? Wir denken als Initialisierung muessen alle Registers nicht belegt sein. Wenn Du meinst, dass die Inhalt von Registers ueberschrieben werden kann, ok.
Hm, das RAM hat wohl hier kein Reset um alles auf 0 zusetzen (wäre aber bestimmt kein Fehler eins reinzumachen :wink: )
Aber: Normalerweise liest du ja nicht von Adressen, an die du noch nicht geschrieben hast (sonst kommt da eh Müll raus. Wild im RAM rumlesen und das dann ausführen ist nicht gut). Von daher ist es eigentlich egal, ob du es mit 0 initialisierst (die du dann eh überschreibst) oder ob du es uninitialisiert lässt (in der Simulation sehen die "UU" zwar doof aus, das gebe ich zu, aber in der Realität ist da ja überall entweder 0 oder 1).
Was heißt für dich belegt? Dass etwas sinnvolles da drin steht? Wenn du das alles verwalten willst musst du noch eine Seitentabelle anlegen (siehe GDI3). Aber das ist (leider) nicht gefragt.

Gruss Thorti

Verfasst: 4. Okt 2006 11:51
von Felix Madlener
Wenn ich das richtig sehe wurde mir die Frage auch heute nach der Vorlesung gestellt? Dort lag der Irrtum in der Annahme das man nur einmal in ein Register schreiben darf.

Die Register im RAM sind Speicherelemente: Sie dürfen, können und müssen auch mit neuen Werten überschrieben werden können.