Maschinenbefehle

Gast #2769414
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
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.
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
Gast
@cyblord
Sry wenn mein Wissen noch erweitert werden muss.

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

Klausi
(Firma: Schweigstill IT) Persönliche Seite
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.
@ 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.
Gast
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
Persönliche Seite
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.
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
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
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

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.