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
@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
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.
Andreas Schweigstill schrieb: > Die elementaren Rechenoperationen sind bei (fast?) allen Prozessoren > fest verdrahtet. Wenn ich mir die Renesas R8C/M16C/M32C Reihe ansehe würde ich da nicht blind drauf wetten. Deren Befehlssatz schreit förmlich nach Mikroprogrammierung auch von Standardoperationen.
@ 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.
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
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.
@ 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 ...
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.
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.