Denken Sie locker an eine virtuelle Maschine oder einen Simulator, bei dem beispielsweise qemu-arm einen Armprozessor auf einem x86-Host simulieren kann. Idealerweise hat die auf dem simulierten Arm ausgeführte Software keine Ahnung, dass es sich nicht um einen realen Arm handelt. Bringen Sie diese Idee auf die Ebene, auf der der gesamte Chip so konzipiert ist, dass es immer so aussieht, als wären Sie ein x86. Die Software weiß nie, dass sich einige programmierbare Elemente im Chip befinden. Und dass ein anderer Prozessor im Inneren etwas für den Zweck der Implementierung / Simulation eines x86 entwickelt wurde. Angeblich ist die beliebte AMD 29000-Produktlinie einfach weggegangen, weil das Hardwareteam und möglicherweise der Prozessor / Kern zum Mut eines frühen x86-Klons wurden. Transmeta, wo Linus arbeitete, hatte einen vliw-Prozessor, der als x86 mit geringem Stromverbrauch ausgelegt war. In diesem Fall war die Übersetzungsschicht kein Geheimnis. Vliw, sehr langes Anweisungswort,
Nein, es ist nicht so sehr eine Emulationsschicht, wie ich impliziere, es läuft dort kein Linux mit einem QEMU-Programm in jedem Chip. Es liegt irgendwo zwischen fest verdrahtet, wo sich keine Software / Mikrocode in der Mitte befindet, und einer vollständigen Emulation. Die programmierbaren Bits können wie ein fpga sein, programmierbare Gatter, oder es können Software oder programmierbare Zustandsmaschinen sein, was nicht programmierbare Gatter bedeutet, genau das, was auf den Toren läuft, ist programmierbar.
Ihre nicht x86, nicht großen Eisenprozessoren. Nehmen wir zum Beispiel ARM, sind fest verdrahtet, kein Mikrocode. Mikrocontroller, PIC, MSP430, AVR, gehen davon aus, dass diese nicht mikrocodiert sind. Grundsätzlich wird nicht davon ausgegangen, dass alle Prozessoren mikrocodiert sind, es gibt nur wenige Prozessorfamilien. Es ist nur so, dass diejenigen, mit denen wir uns in PCs beschäftigen, waren und immer noch sind, also könnte es sich so anfühlen, als wären sie alle.
So unterhaltsam es auch klingen mag, mit diesem Mikrocode zu spielen, er ist wahrscheinlich sehr spezifisch für die Prozessorfamilie, und Sie werden wahrscheinlich nie Zugriff darauf erhalten, wie er funktioniert, es sei denn, Sie arbeiten für Intel oder AMD, von denen jeder wahrscheinlich seine eigenen Interna hat. Sie müssten also einen Job bei einem der beiden bekommen und sich dann durch die Gräben arbeiten, um eines der wahrscheinlich elitären Teams zu werden, die diese Arbeit erledigen. Und wenn Sie so weit gekommen sind, dass Ihre Karriere gefangen ist, können Ihre Fähigkeiten auf einen Job in einem Unternehmen beschränkt sein. Vielleicht haben Sie mehr Spaß daran, einzelne GPUs auf einer Grafikkarte zu programmieren, etwas, das dokumentiert ist oder zumindest Tools enthält, etwas, das Sie heute tun können, ohne 10 Jahre bei AMD oder Intel zu verbringen, um möglicherweise nichts zu erreichen.