Microcode
Microcode is programmacode die door een CPU wordt uitgevoerd en die machinetaal interpreteert.
Een CPU die microcode gebruikt (zoals Intels x86 serie) voert machinetaal niet direct in de hardware uit. In plaats daarvan wordt de machinetaal geïnterpreteerd door een microcodeprogramma, dat op zijn beurt wel direct door de hardware uitgevoerd wordt.
Microcode wordt vooral gebruikt in processors die veel en complexe instructies hebben (CISC-processors). Het decoderen en uitvoeren van instructies is bij deze processors te complex om in de hardware te implementeren.
Microcode bevindt zich, in tegenstelling tot alle andere soorten programmacode (inclusief machinetaal), niet in het hoofdgeheugen, maar in een speciaal geheugen op de processor zelf. Dit geheugen, de control store, is bij een microprocessor meestal read-only, maar dat is niet noodzakelijk zo: soms wordt microcode tijdens het opstarten van de computer vanuit een andere locatie in de control-store geladen. Dit maakt het mogelijk om bugs te repareren of om nieuwe instructies aan de instructieset van de CPU toe te voegen. Ook is het mogelijk met het vervangen van de microcode een andere computer te emuleren. Zo kan een Univac-computer een Philips-computer emuleren en dus programma's draaien die voor de Philips geschreven zijn.
Andere betekenis
Een andere betekenis van microcode wordt gehanteerd bij sommige instructiesets, zoals de PDP-8. In een instructie zorgen diverse bits ervoor dat bewerkingen worden uitgevoerd, en desnoods kunnen meerdere bits in dezelfde instructie gezet zijn. Bijvoorbeeld:
| binair | mnemonisch | betekenis | resultaat in accumulator |
|---|---|---|---|
111 000 000 000 |
NOP | er gebeurt niets | |
111 010 000 000 |
CLA | maak de accumulator nul | 000 000 000 000 |
111 000 100 000 |
CMA | inverteer alle bits in de accumulator | ~AC |
111 000 000 001 |
IAC | verhoog accumulator met 1 | AC+1 |
111 000 000 010 |
RAL | schuif AC naar links | AC+AC |
111 010 100 000 |
CLA CMA | maak accumulator nul en inverteer alle bits | 111 111 111 111 |
111 010 000 001 |
CLA IAC | maak accumulator nul en verhoog met 1 | 000 000 000 001 |
111 010 000 011 |
CLA IAC RAL | maak accumulator nul, verhoog met 1, schuif naar links | 000 000 000 010 |
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.