Was ist ein Intel-Mikrocode?
Von dem, was ich gelesen habe, hat es verwendet, um das beheben von Fehlern in der CPU, ohne änderung des BIOS.
Aus meine basic-Kenntnisse in der Montage, ich weiß, dass Montage-Anweisungen sind unterteilt in microcodes intern von der CPU und entsprechend ausgeführt. Aber intel irgendwie gibt Zugriff auf einige Aktualisierungen, während das system hochgefahren ist und läuft.
Jemand hat mehr info dazu? Gibt es eine Dokumentation was können Sie tun, mit microcodes und wie können Sie genutzt werden?
BEARBEITEN:
Ich habe gelesen, der wikipedia-Artikel: trifft nicht herausfinden, wie kann ich schreiben, auf meine eigene, und was nutzt es der Fall gewesen wäre.
InformationsquelleAutor der Frage Quamis | 2010-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
In den älteren Zeiten, microcode wurde stark in der CPU: jede einzelne Anweisung war aufgeteilt in microcode. Dies ermöglicht relativ komplexe Befehlssätze in bescheidenen CPU (bedenke, dass ein Motorola 68000mit seinen vielen Operanden-Modi und acht 32-bit-Register, passt in 40000-transistoren, während ein single-core modernen x86-mehr als hundert Millionen). Dies ist nicht mehr wahr. Aus performance-Gründen, die meisten Befehle sind nun "fest verdrahtet": Ihre interpretation erfolgt durch unflexible schaltkreise, die außerhalb einer Mikrocode.
In einer aktuellen x86 -, ist es plausibel, dass einige komplexe Anweisungen wie
fsin
(was berechnet die Sinus-Funktion auf eine floating-point-Wert) implementiert, mit microcode, aber einfachen Anweisungen (einschließlich Ganzzahl-Multiplikation mitimul
) nicht. Diese Grenzen, was erreicht werden kann mit benutzerdefinierten microcode.Dass gesagt wird, die Mikrocode-format ist nicht nur sehr spezifisch auf die spezifische Prozessor-Modell (z.B. microcode für einen Pentium III und einen Pentium IV ist nicht frei ausgetauscht mit einander -- und natürlich auch mit Intel-microcode für ein AMD Prozessor ist aus der Frage), aber es ist auch eine streng geschützte Geheimnis. Intel veröffentlicht hat, die Methode, durch die ein Betriebssystem oder ein motherboard-BIOS aktualisieren können Sie die microcode - (es getan werden muss nach jedem hard-reset; das update ist gehalten, die in volatile RAM), aber der microcode Inhalt ohne Papiere sind. Die Die Intel® 64 und IA-32 Architectures Software Developer ' s Manual (volume 3a) beschreibt den update-Vorgang (Abschnitt 9.11 "microcode-update-Anlagen"), sondern besagt, dass die eigentlichen microcode ist "verschlüsselt" und eine Uhr, die voll von Prüfsummen. Die Formulierung ist vage genug, dass nur etwa jeder Art von kryptographischen Schutz kann ausgeblendet werden, aber die bottom-line ist, dass es derzeit nicht möglich, für andere Personen als Intel, zu schreiben und zu versuchen, einige benutzerdefinierte microcode.
Wenn die "Verschlüsselung" nicht enthalten ist eine digitale (asymmetrisch) Unterschrift und/oder wenn die Leute bei Intel verbockt Schutz system irgendwie, dann kann es denkbar sein, dass einige Bemerkenswerte reverse-engineering-Aufwand könnte potenziell ermöglichen eine Herstellung z.B. von Mikrocode, aber in Anbetracht der wahrscheinlich begrenzte Anwendbarkeit (da die meisten Befehle sind fest verdrahtet), sind die Chancen, dass dies würde nicht kaufen viel, so weit wie die Programmierung der Stromversorgung betroffen ist.
InformationsquelleAutor der Antwort Thomas Pornin
Denke Locker über eine virtuelle Maschine oder einen simulator wo sagen zum Beispiel qemu-arm simulieren kann ein arm-Prozessor auf einem x86-host, ideal, die software läuft auf den simulierten arm hat keine Ahnung, dass es nicht ein richtiger arm. Nehmen Sie diese Idee auf die Ebene, wo der ganze chip ist so ausgelegt, dass es immer so aussieht, wie Sie ein x86 -, die software, die Sie nie wissen es gibt einige programmierbare Positionen innerhalb des Chips. Und, dass ein anderer Prozessor im inneren ist etwas entworfen für den Zweck der Implementierung/Simulation eines x86. Angeblich hat der beliebte AMD 29000 Produktlinie ging einfach Weg, weil das hardware-team und vielleicht der Prozessor - /core-wurde der Mut der frühen x86-Klon. Transmeta, wo Linus arbeitete, hatte ein vliw-Prozessor, der gemacht wurde, um eine low-power-x86-Architektur. In diesem Fall wird die übersetzung Schicht war nicht (so viel) ein Geheimnis. Vliw, very long instruction word, RISC ergriffen, um die extreme, ist die Art von Sache, die Sie bauen für diese Art von Aufgabe.
Nein, es ist nicht so sehr ein Emulations-layer, wie ich was bedeutet, es gibt einige linux läuft es mit qemu-Programm in jedem chip. Es ist irgendwo zwischen fest verdrahteten, wo es keine software/microcode in der Mitte und ein voller Schlag-emulation. Die programmierbare bits werden kann, wie ein fpga, programmierbare Gatter, oder kann es software oder programmierbaren Zustandsautomaten, d.h. nicht-programmierbare Gatter, was gerade läuft auf den Toren ist programmierbar.
Ihre non-x86, non-big-Eisen-Art-Prozessoren. Nehmen Sie den ARM zum Beispiel, sind fest verdrahtet, kein microcode. Mikrocontroller, PIC, MSP430, AVR, davon ausgehen, diese sind nicht microcoded. Im Grunde nicht davon ausgehen, alle Prozessoren sind microcoded, wenige, wenn irgendwelche Prozessor-Familien sind. Es ist nur, dass diejenigen, die wir im PC-und auch immer sein mag, so kann es fühlen, wie Sie alle sind.
So viel Spaß wie es klingen mag, zu spielen mit dieser microcode ist, ist es wahrscheinlich sehr spezifisch für die Prozessor-Familie, und Sie wird wahrscheinlich nie Zugang zu, wie es funktioniert, es sei denn, Sie arbeiten für Intel oder AMD, von denen jeder wahrscheinlich haben Ihre eigenen Einbauten. So würden Sie brauchen, um einen job bei einer der beiden, dann arbeiten Sie Ihren Weg durch die Gräben zu werden, was wahrscheinlich ein elite-team, das diese Arbeit übernimmt. Und wenn Sie einmal soweit kommen, Ihre Karriere gefangen ist, Ihre Fähigkeiten begrenzt werden kann, um einen job in einer Firma. Vielleicht haben Sie mehr Spaß Programmierung einzelner gpus auf einer Grafikkarte, etwas, das dokumentiert ist, oder zumindest den tools, etwas, was Sie heute tun können, ohne dafür 10 Jahre bei AMD oder Intel, evtl. bekomme nirgends.
InformationsquelleAutor der Antwort old_timer
Die Sie normalerweise nicht schreiben Mikro-code. Dies zu tun erfordert intime Kenntnisse der CPU Mikro-Architektur. Bei Intel keinen Allgemeinen Freigabe jeglicher Informationen, die entweder auf der micro-Architektur oder Ihre micro-code.
InformationsquelleAutor der Antwort Paul R