Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Microcode
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Layer of hardware-level instructions or data structures}} {{For|the CAD software vendor|MicroCode Engineering, Inc.}} {{Program execution}} In [[processor design]], '''microcode''' serves as an intermediary layer situated between the [[central processing unit]] (CPU) hardware and the programmer-visible [[instruction set architecture]] of a computer, also known as its [[machine code]].<ref name="Kent2813">{{cite book |last1=Kent |first1=Allen |url=https://books.google.com/books?id=EjWV8J8CQEYC |title=Encyclopedia of Computer Science and Technology: Volume 28 - Supplement 13 |last2=Williams |first2=James G. |date=April 5, 1993 |publisher=Marcel Dekker, Inc |isbn=0-8247-2281-7 |location=New York |access-date=Jan 17, 2016 |archive-url=https://web.archive.org/web/20161120161636/https://books.google.com/books?id=EjWV8J8CQEYC |archive-date=November 20, 2016 |url-status=live}}</ref>{{Page needed|date=July 2022}} It consists of a set of hardware-level instructions that implement the higher-level machine code instructions or control internal [[finite-state machine]] sequencing in many [[digital processing]] components. While microcode is utilized in [[Intel]] and [[AMD]] general-purpose CPUs in contemporary desktops and laptops, it functions only as a fallback path for scenarios that the faster [[hardwired control unit]] is unable to manage.<ref name="FogMicro">{{cite report |url=https://www.agner.org/optimize/microarchitecture.pdf |title=The microarchitecture of Intel, AMD and VIA CPUs |last1=Fog |first1=Agner |date=2017-05-02 |publisher=Technical University of Denmark |access-date=2024-08-21 |archive-url= https://web.archive.org/web/20170328065929/https://agner.org/optimize/microarchitecture.pdf |archive-date=2017-03-28 |url-status=live}}</ref> Housed in special high-speed memory, microcode translates machine instructions, [[state machine]] data, or other input into sequences of detailed circuit-level operations. It separates the machine instructions from the underlying [[electronics]], thereby enabling greater flexibility in designing and altering instructions. Moreover, it facilitates the construction of complex multi-step instructions, while simultaneously reducing the complexity of computer circuits. The act of writing microcode is often referred to as ''microprogramming'', and the microcode in a specific processor implementation is sometimes termed a ''microprogram''. Through extensive microprogramming, [[microarchitecture]]s of smaller scale and simplicity can [[Emulator|emulate]] more robust architectures with wider [[Word (computer architecture)|word]] lengths, additional [[execution unit]]s, and so forth. This approach provides a relatively straightforward method of ensuring software compatibility between different products within a processor family. Some hardware vendors, notably [[IBM]] and [[Lenovo]], use the term ''microcode'' interchangeably with ''[[firmware]]''. In this context, all code within a device is termed microcode, whether it is microcode or machine code. For instance, updates to a [[hard disk drive]]'s microcode often encompass updates to both its microcode and firmware.<ref>{{cite web |title=IBM pSeries Servers - Microcode Update for Ultrastar 73LZX (US73) 18/36 GB |url=http://download.boulder.ibm.com/ibmdl/pub/software/server/firmware/73lzx.html |url-status=dead |archive-url=https://web.archive.org/web/20190419105117/http://download.boulder.ibm.com/ibmdl/pub/software/server/firmware/73lzx.html |archive-date=April 19, 2019 |access-date=January 22, 2015 |website=IBM}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)