10 - CPU-Design [ID:10299]
50 von 636 angezeigt

Moin, letzten Donnerstag hatte ich was an die Tafel gemalt, so mit, wir haben einen Akku,

wir haben einen Program-Counter, wir haben eine Alu und ihr seid dann irgendwann drauf gekommen,

naja man braucht ja auch noch ein Befehlsregister, ja und dann hatten wir uns überlegt dazwischen

braucht man ja so allerlei Multiplexer und so weiter, da wollte ich mit euch nochmal kurz

gucken, dass man da wirklich was richtiges sozusagen zusammenstöpselt, also von außen

kommen Daten bzw. gehen Daten und nach außen schicke ich Adressen, also Adressen, Daten,

ja und beim letzten Mal habe ich einfach so die Multiplexer und so einfach so bunter reingemalt,

so nach dem Motto naja im Prinzip vor jedem Eingang, diesen Eingang, den Eingang, also

vor überall da wo Daten irgendwie raus oder reingehen bauen wir uns Multiplexer, damit

wir einfach die Wege schalten können. Das kann man jetzt ein klein bisschen vereinfachen,

indem man sagt naja die Daten gehen einfach vom Datenbus aus überall hin und wir hatten

ja letztes Mal uns angeguckt, wir haben unseren Load-Eingang, naja dann können wir das ja

über diesen Load-Eingang steuern, welches Register jetzt den Wert übernehmen soll. Der

Alu, müssen wir mal aus der Alu sagen, nicht wirklich, die nimmt und rechnet und wenn nichts

kommt dann rechnen sie auch, wird halt dann weggeschmissen. Naja, wenn wir die selbe

Alu dafür verwenden, dann sollten wir nicht die Daten abgeben, also wenn wir nur den Program

count haben, dann sind wir wohl mit derselben Alu. Geht das doch schief?

Okay, so weit bin ich noch nicht, also Daten kommen ja auch wieder raus aus den einzelnen

Registern und die sollen natürlich jetzt wiederum, hm, geht nicht, ne? Also da brauchen wir

irgendwas, was bauen wir uns dahin, zum Beispiel Three-State-Treiber. Und auch da haben wir

dann so eine Art Load, bzw. in diesem Falle Output Enable, hier genauso. Jeder liefert

Daten, aber nur einer darf zur Zeit. Joa, macht keinen Sinn, ne? Dann kann ich immer

nur mit zwei multiplizieren beim Addieren oder quadrieren, wenn ich zwei mal multipliziere.

Wie machen wir das? Wir haben eine Idee.

Wobei da kommt es ja schon aus dem Akku, aber du hast recht, den zweiten holen wir uns manchmal

aus dem Befehlsregister, machen wir noch mal umgekehrt. Also wenn es beispielsweise irgendein

Immediate Operand ist, so eine Konstante, die wir aufaddieren wollen, zum Beispiel. Manchmal

hast du recht, aus dem Akku oder aus dem, ja, machen wir ihn da. Jetzt hatten wir einen

so schönen Bus, der für alles gut war, aber das reicht jetzt nicht. Machen wir jetzt.

Ja, Prinzip, gleiches Prinzip noch einmal. Wir haben einfach noch einen Bus. Von dem

einen Bus holen wir uns das eine Datum, von dem anderen Bus das zweite. Ja, dann haben

wir uns hier allerdings natürlich wieder entweder dem oder dem Akku. Jetzt ein bisschen klein

und fübslich, aber gut, ihr wisst, was ich meine. Also ich kann dem Akku sagen, liefer

mal deine Daten zu dem Eingang oder liefer mal die Daten zu dem Eingang. Und genauso

hier dem Befehlsregister zu dem. Okay, man könnte reintrittchen natürlich auch noch

aufs zweite. Jetzt die Frage, ob man das wechselnd braucht. Das ist jetzt eine Frage des Designs

sozusagen der CPU, des Befehlsatzes. Da kann man natürlich ein bisschen sparen. Wenn jetzt

beispielsweise der Akku immer der zweite Operand ist, dann brauche ich den nicht auf beiden.

Wenn die Konstante immer der erste ist, brauche ich den anderen nicht. Und genauso hier,

was ist die Daten, die aus dem Speicher kommen, immer auf den ersten Operanten gehen oder

so, spare ich mir hier solche Tri-State Treiber in der CPU. Also das macht schon einen Unterschied,

je nachdem, wie ich meinen Befehlsatz mir definiere. Ich kann da sparen, wenn ich das

geschickt mache. Okay, was brauchen wir noch? Kommt da unten was raus? Wohin damit?

Also so auf die Art Weise, dann könnte man es da wieder speichern zum Beispiel. Ja,

da gebe ich jetzt was in die Alu, die rechnet was raus und ich schreibe es zurück. Das gibt

zumindest im Allgemeinen einen Kurzschluss. Gut, wir können das natürlich wieder abtrennen.

Wenn jetzt gerade der Akku einen Wert liefert, dann dürfen wir nicht das Ergebnis sofort

zurückschreiben, sondern auf ein Piano warten. Das geht aber immer noch nicht. Jetzt gibt

es keinen Kurzschluss mehr, aber jetzt funktioniert es auch nicht mehr. Noch nicht. Na ja, solange

wir mal der Akkumulator und das Befehlsregister Werte liefern, da kommen zwei Zahlen an und

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:33:44 Min

Aufnahmedatum

2013-05-23

Hochgeladen am

2019-04-06 17:29:03

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen