Maschinenbefehle

Gast #2769414
Lesenswert?

Hallo an alle,

ich brauche den Rat eines Experten ;), ich rätsele gerade darüber, wo 
genau in einem Mikroprozessor die Machinenbefehle gespeichert sind. Ich 
dachte an einen Teil des Flash-Speichers, der als Festwertspeicher 
umfunktioniert wurde, nicht von Normalsterblichen ausgelesen werden kann 
und die Instruktionen beinhaltet.
Oder existiert da ein kleiner Mikroprogrammspeicher nur für die 
Maschinenbefehle?
Und, kann mir jemand von euch sagen, was dort dann tatsächlich 
gespeichert ist?
Danke schon mal,

Klausi
#2769420
Lesenswert?

Nicht jeder Mikroprozessor ist mikroprogrammiert. AVRs und ARMs 
beispielsweise besitzen kein Mikroprogramm, also auch keinen Speicher 
dafür.

x86-Prozessoren verwenden sind nur komplexe wenig häufige Befehle 
mikroprogrammiert. Der Speicher dafür ist internes nicht 
programmierbares ROM und etwas RAM für nachträgliche Patches.
#2769425
Lesenswert?

Klausi schrieb:
> Hallo an alle,
>
> ich brauche den Rat eines Experten ;), ich rätsele gerade darüber, wo
> genau in einem Mikroprozessor die Machinenbefehle gespeichert sind.

Nirgends. Warum sollten die irgendwo gespeichert sein?
Es gibt in der Tat Mikroprogramme in manchen CPUs. Als ROM ausgeführt. 
Oft aber auch nicht.

Also wenn du genauers zu Mikroprogrammen wissen willst solltest du 
danach fragen und nicht derart obskure Fragestellungen hernehmen.

Mikroprogramme sind in der Regel einfache Funktionen. Vorne kommt ein 
Befehl rein, hinten werden Steuerleitungen für die Rechenwerke und 
Register in einer CPU gesetzt.

gruß cyblord
(Firma: Schweigstill IT) Persönliche Seite #2769528
Lesenswert?

Klausi schrieb:
> Ich dachte mir, irgendwo müsste doch gespeichert stehen, wie genau er
> jetzt z.B eine Subtraktion durchführt

Die elementaren Rechenoperationen sind bei (fast?) allen Prozessoren 
fest verdrahtet. Die Operanden-Ladevorgänge usw. sind jedoch bei manchen 
Prozessoren mikroprogrammiert, ebenso auch komplexere arithmetische 
Operationen (z.B. Division).

Wie schon erwähnt, sind die aktuellen x86-Prozessoren großenteils 
festverdrahtet, haben aber auch kleine Mikrocode-Bereiche.

Bei den - mittlerweile eher antiken - Großrechnern der Baureihe 
Siemens-Fujitsu H90 konnte man den kompletten Befehlssatz durch Laden 
des Microcodes austauschen, so dass diese Rechner nicht nur ihren 
eigenen Befehlssatz beherrschten, sondern auch auf den einer IBM S/390 
umgestellt werden konnten.
#2769583
Lesenswert?

@ A. K. (prx)

>x86-Prozessoren verwenden sind nur komplexe wenig häufige Befehle
>mikroprogrammiert. Der Speicher dafür ist internes nicht
>programmierbares ROM und etwas RAM für nachträgliche Patches.

Wirklich RAM? ODer vielleicht doch sowas wie EEPROM/Flash? Sonst würden 
die Patches ja jedesmal flöten gehen beim Abschalten.
Persönliche Seite #2769595
Lesenswert?

Peter II schrieb:
> Jens G. schrieb:
>> Wirklich RAM? ODer vielleicht doch sowas wie EEPROM/Flash? Sonst würden
>> die Patches ja jedesmal flöten gehen beim Abschalten.
>
> ja wirklich ram, das bios schreibt sie jedes mal rein, auch das BS kann
> sie reinschreiben - macht z.b. der Intel treiber

Nachteil ist leider, daß die gepatchten Befehle langsamer werden.
Es wird nicht der Microcode geändert.
Eine Art Link wird im RAM abgelegt der eine Umschreibung des Befehles 
mit anderen Befehlen emuliert.
#2769606
Lesenswert?

aha - dann kommt so ein Microcode-Patch also eher als BIOS- oder 
Treiberupdate rein.
Und ich dachte immer, daß dabei immer direkt die CPU geflasht wird.
Naja - hatte schon seit grauer Vorzeit kein BIOS mehr geupdated.
Ist aber vielleicht besser so - da kann die CPU nicht wegen kaputtem 
Flash kaputtgehen ;-)
Und Flash/EEPROM würden wohl mit den internen Zykluszeiten nicht so 
richtig klarkommen.
Persönliche Seite #2769619
Lesenswert?

Jens G. schrieb:
> @ Dennis Heynlein
>>Eine Art Link wird im RAM abgelegt der eine Umschreibung des Befehles
>>mit anderen Befehlen emuliert.
>
> Das ist aber jetzt wirklich ganz schön billig ...

Dann halt, ein RAM-basierendes Remapping eines/mehrerer Opcodes auf ein 
Emulationsprogramm im RAM.

Hat ja keiner Angenommen, daß es für die Chiphersteller teuer wird.
Gast #2769690
Lesenswert?

Hallo,

die ganze Mikrocodediskussion führt völlig in die Irre. Das ist ja 
wiederum nur ein Programm und könnte gottweisswo stehen, aber letzten 
Endes muss ja alles mal ausgeführt werden, und dafür gibt es eben 
Ausführungseinheiten - z.B. Addierer. Die wichtigsten davon sind eben 
das, was man im eigentlichen Sinn als CPU bezeichnet, eben "Processing 
Unit". Das ist wie in einer Firma: man kann zwar Aufgaben weitergeben an 
Untergebene, aber irgendjemand muss dann mal die Arbeit machen, sonst 
passiert nämlich garnichts. Genausowenig passiert, wenn nur ein Befehl 
per Microcode in andere Befehle umgesetzt wird, erst wenn diese 
ausgeführt werden geht es weiter.

Gruss Reinhard

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren