Befehlsdecoder

m3nt0r

Cadet 4th Year
Registriert
Nov. 2007
Beiträge
123
Hi,

wie genau funktioniert ein Befehlsdecoder? Immer, wenn man etwas über CPUs und deren Aufbau liest fällt der Begriff Befehlsdecoder. Nach langer Suche im Internet hatte ich nur sehr allgemein Erläuterungen der Decodierung von Befehlen gefunden. Also würde mich über eine detaillierte Erklärung des Befehlsdecoders sehr freuen, am Besten mit Bildern, dass man sich auch was drunter vorstellen kann :)...

Mit freundlichen Grüßen
m3nt0r
 
Hab ich schon öfters gelesen, hilft mir aber nicht wirklich weiter ...
 
ich bin grade dabei mirn eigenne kleinen prozzel zu bauen und dabei hab ich natürlich auchn befehlsdecoder

nur wieviel verstehst du von microoelektronik(digitale schaltkreise), binärem rechnen und informatik?

nich, dass ich hier umsonst was schreibe
 
du baust dir selbstr nen prozzesor ! und was für einen ;) Q6600 oder was
 
lol nein

ich strebe 8MHz an *gg* und iss in keiner weise vergleichbar mit den heutigen prozzis
zudem wirds kein x86 sein

aber die nirthbridge die ich auch bauen muss iss schonmal dualcore fähig und die CPU hat sowas ähnliches wie intels HT (sie kann 2 microops gleichzeitig ausführen)
 
so erstmal eine Übersicht in welchem Umfeld sich die CPU befindet:
http://wende.homeftp.net/gallery/cpu/Uebersicht.png

und jetzt zur CPU selbst:
http://wende.homeftp.net/gallery/cpu/CPU.png

die schwarzen linien sind die datenleitungen und die roten linien die steuerleitungen vom befehlsdecoder

in der zeichnung hab ich mal alle 3 berechnungsbausteine eingefügt um eine multiplikation durchzuführen, wenn interesse besteht, erklär ich mal genauestens wie die funzt mit dieser architektur
 
Zuletzt bearbeitet:
nur mal so aus interesse, wie "baust" du den Prozzi; ich meine CPU´s werden doch duch litographie (oder wie es ach geschreieben wird^^), also durch Belichtung gebaut/gemacht.
Woher hast du so ein "Gerät" denn, läuft das über eine Schule o.ä.?
Und woher bekommst du/ihr das Silizium?

Mir fallen noch 10000 weitere Fragen ein, wie z.B. welcher Sockel wird benutzt, ein schon bekannter, oder ein komplettes System im eigenbau?

Kann zwar sein, dass ich nerve, aber wie ist denn das ganze? ;)
 
ja das system ist komplett im eigenbau

sockel? hmm eigentlich weniger, die CPU wird so groß, dass sie ein eigenes gehäuse bekommt, ich nutze deswegen eher 3 SubD steckverbinder zu je 50 polen um sie mit dem rest zu verbinden
->macht 150 pole von denen die hälfte masse ist, damit die signale nicht übersprechen (selbes prinzip wie beim 80 pol IDE kabel)

und die CPU bastel ich nicht auf ein stück silizium, sondern ich schalte fertige ICs der logikreihe
74HCXXX zusammen
XXX steht für den namen des ICs
http://www.kpsec.freeuk.com/components/74series.htm
wobei es noch viel mehr gibt als auf dieser HP

hier mal ein beispiel, wie eine der CPU platinen aussehen könnte:
Platine:
R4201_Platine_k.jpg

und so werden die dann zusammengesteckt
R4200_5_k.jpg
 
@Topic
Also i.A. besteht die Ausführung eines Befehls aus folgenden Schritten: Fetch, Decode, Execute*. Fetch bedeutet, dass der Befehl aus dem Instruction Memory (bei Harvard-Architekturen) gelesen wird. Da der Prozessor natürlich nix mit den Befehlen anfangen kann, die wir bei unseren Programmiersprachen verwenden, liegt da nur der kompilierte Maschinencode vor, was schlicht Bitfolgen sind. Damit der Prozessor nun damit arbeiten kann, also weiß für welche Befehle und ggf. Operanden diese Bitfolgen stehen, muss es dekodiert werden und an die richtigen Einheiten des Prozessors geschickt werden.

Ein Beispiel anhand der AVR-Architektur die wird grad beim Studium behandeln:
Ein Befehl sieht bespielsweise so aus: 000011rddddrrr

1110 steht für add und rrrr und dddd für die Adressen der Operanden (d.h. Register rrrr + Register dddd soll ausgeführt werden). rrrr ist gleichzeitig auch die Adresse auf die das Ergebnis geschrieben wird.

Der Dekoder liefert nun die ersten 6bit an die Control Logic, die die weiteren Ausführungseinheiten steuert, und die zwei Adressen ans Register File, was die zugehörigen Werte zu den Adressen zurückgibt.

*) Moderne CPUs teilen das nochmals in mehrere Teilschritte auf, um die schneller zu erledigen. Die Anzahl der Teilschritte ist dann gleichbedeutend mit den Pipelinestufen.
 
Zuletzt bearbeitet:
sry, dass ich erst so spät antworte, war die letzten tage nicht am Rechner...

also so wie ich das verstanden habe:
Nachdem der Befehl aus dem Programmspeicher, speziell dem Instruction Register, ausgelesen wurde (FETCH), werden dementsprechend Bitfolgen aus dem Programmspeicher ausgelesen und diese decodiert sind Steuersignale für die CPU.

Stimmt das so in etwa?
 
Jup. Steuersignale oder Adressen von Operanden.
 
Zurück
Oben