WikiDer > Mikrocode

Microcode

Mikrocode ist von a . generierter Programmcode Zentralprozessor durchgeführt wird und das Maschinensprache interpretiert.

Eine CPU, die Mikrocode verwendet (wie z Intelsx86 series) führt Maschinensprache nicht direkt in der Hardware aus. Stattdessen wird die Maschinensprache von einem Microcode-Programm interpretiert, das wiederum direkt von der Hardware ausgeführt wird.

Microcode wird hauptsächlich in Prozessoren verwendet, die viele und komplexe Anweisungen haben (CISCProzessoren). Das Decodieren und Ausführen von Befehlen ist bei diesen Prozessoren zu komplex, um sie in der Hardware zu implementieren.

Mikrocode befindet sich im Gegensatz zu allen anderen Arten von Programmcode (einschließlich Maschinensprache) nicht im Hauptspeicher, sondern in einem speziellen Speicher auf dem Prozessor selbst. Diese Erinnerung, die Kontrollspeicher, ist normalerweise auf einem Mikroprozessor schreibgeschützt, aber das ist nicht unbedingt so: Manchmal wird der Mikrocode von einer anderen Stelle in der geladen Kontrollspeicher geladen. Dadurch ist es möglich, Fehler zu beheben oder neue Befehle in den Befehlssatz der CPU aufzunehmen oder durch den Austausch des Mikrocodes einen Computer zu wechseln. emulieren, nacheifern. Ein Univac-Computer kann beispielsweise einen Philips-Computer emulieren und somit Programme ausführen, die für Philips geschrieben wurden.

Andere Bedeutung

Bei einigen Befehlssätzen wird eine andere Bedeutung von Mikrocode verwendet, z PDP-8. In einer Anweisung sorgen mehrere Bits dafür, dass Operationen ausgeführt werden, und bei Bedarf können mehrere Bits in derselben Anweisung gesetzt werden. Beispielsweise:

binärGedächtnisstützeBedeutungergeben Akkumulator
111 000 000 000 NOPnichts passiert
111 010 000 000 CLAmache den Akkumulator null000 000 000 000
111 000 100 000 CMAinvertieren Sie alle Bits im Akkumulator~AC
111 000 000 001 IACAkku um 1 by erhöhenWechselstrom 1
111 000 000 010 RALAC nach links schiebenWechselstrom Wechselstrom
111 010 100 000 CLA CMAAkkumulator null machen und alle Bits invertieren111 111 111 111
111 010 000 001 CLA IACAkkumulator null machen und um 1 . erhöhen000 000 000 001
111 010 000 011 CLA IAC RALAkkumulator null machen, um 1 erhöhen, nach links schieben naar000 000 000 010