CINXE.COM
microcode from FOLDOC
<!DOCTYPE html> <html lang="en"> <head> <title>microcode from FOLDOC</title> <meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' http: https:"> <meta name="verify-v1" content="siAI0ZOMn41hao0E/T76D1I2L3MtFjzE48P3ctCjRNU="> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <meta name="google-translate-customization" content="828219db36930e1e-c51d915bf2ea717c-g9b503f9a85d5b5a7-a"> <!-- Google Analytics Global site tag (gtag.js) --> <script src="https://www.googletagmanager.com/gtag/js?id=UA-9715943-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-9715943-1'); </script> <!-- End Google Analytics --> <link href="//fonts.googleapis.com/css?family=Duru+Sans%7CBelgrano%7CInconsolata%7CAlef%7CArmata" rel="stylesheet" type="text/css"> <link rel="stylesheet" type="text/css" href="/css/layout.css?2"> <!-- realfavicongenerator.net --> <link rel="apple-touch-icon" sizes="152x152" href="/im/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/im/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/im/favicon-16x16.png"> <link rel="manifest" href="/im/site.webmanifest"> <link rel="mask-icon" href="/im/safari-pinned-tab.svg" color="#5bbad5"> <link rel="canonical" href="https://foldoc.org/microcode"> <link rel="alternate" type="application/rss+xml" title="FOLDOC" href="/rss.xml"> <link rel="search" title="FOLDOC" type="application/opensearchdescription+xml" href="//foldoc.org/search.xml"> <!-- AdSense --> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5521724329338202" crossorigin="anonymous"></script> <!-- AdSense end --> </head> <body> <div id="fb-root"></div> <script> (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <div id="container"> <div id="left"> <a href="/"> <img src="/foldoc.gif" width="300" height="98" alt="Free On-line Dictionary of Computing" class="logo"> </a> <div id="nav"> <a href="/contents.html" class="button">Contents</a> <a href="/help.html" class="button">Help</a> <a href="/random-entry" class="button">Random</a> </div> <form action="/"> <input type="text" name="query" id="query" autofocus="autofocus"> <input type="submit" name="action" value="Search" class="button"> </form> <div id="content"> <h2>microcode</h2> <p></p> <p><<i><a href="contents/programming.html">programming</a></i>></p> <p> A technique for implementing the <a href="/instruction+set">instruction set</a> of a processor as a sequence of microcode instructions ("microinstructions"), each of which typically consists of a (large) number of bit fields and the address of the next microinstruction to execute. Each bit field controls some specific part of the processor's operation, such as a gate which allows some <a href="/functional+unit">functional unit</a> to drive a value onto the <a href="/bus">bus</a> or the operation to be performed by the <a href="/ALU">ALU</a>. Several microinstructions will usually be required to fetch, decode and execute each <a href="/machine+code">machine code</a> instruction ("<a href="/macroinstruction">macroinstruction</a>"). The microcode may also be responsible for <a href="/polling">polling</a> for hardware <a href="/interrupts">interrupts</a> between each macroinstruction. Writing microcode is known as "microprogramming". <p></p> Microcode may be classified as "horizontally encoded" or "vertically encoded". Horizontal microcode is as described above where there is a fairly direct correspondence between the bit fields in a microinstruction and the control signals sent to the various parts of the CPU. Not all combinations of bits will be valid (e.g. two units driving the bus at once). Vertical microcode is closer to <a href="/machine+code">machine code</a> because a bit field value may pass through some intermediate combinatory logic which generates the actual control signals. This allows a few bits of a microinstruction to determine several control signals and ensure that only valid combinations of those signals are generated (e.g. a field may be decoded to determine which unit drives the bus). The disadvantage with vertical encoding is that the encoding is usually fixed and takes extra time compared with horizontal encoding which allows any combination of signals to be generated and takes no time to decode. <p></p> The alternative to a microcoded processor is a <a href="/hard-wired">hard-wired</a> one where the control signals are generated directly from the bits of the <a href="/machine+code">machine code</a> instruction. This is more common in modern <a href="/RISC">RISC</a> architectures because it is faster. <p></p> Microcode is usually stored in <a href="/ROM">ROM</a> chips though some processors (e.g. the <a href="/Orion">Orion</a>) use fast RAM, making them dynamically microprogrammable. <p></p> <p class="updated">Last updated: <a href="/new.html">1996-11-26</a></p> <p></p> <p class="vertical-space"></p><h3>Nearby terms:</h3> <p class="neighbours"> <a href="/microchip+art">microchip art</a> ♦ <b><a href="/microcode">microcode</a></b> ♦ <a href="/Microcom+Networking+Protocol">Microcom Networking Protocol</a> ♦ <a href="/microcomputer">microcomputer</a> </p> <p> Try this search on <a href="https://www.wikipedia.org/wiki/Special:Search?search=microcode">Wikipedia</a>, <a href="https://www.wiktionary.org/wiki/microcode">Wiktionary</a>, <a href="https://www.google.com/search?q=define:microcode">Google</a>, <a href="https://www.onelook.com/?w=microcode">OneLook</a>. </p> <p class="vertical-space"></p> <hr> <div></div> <hr> <!-- if HTMLCOMMENTBOX --> <div id="HCB_comment_box">Loading</div> <link rel="stylesheet" type="text/css" href="//www.htmlcommentbox.com/static/skins/bootstrap/twitter-bootstrap.css?v=0"> <script language="javascript" id="hcb"> hcb_user = { PAGE: 'https://foldoc.org/microcode', comments_header: ' ', no_comments_msg: ' ', err_comment_empty: 'Your comment was not posted because it was empty!', rss: '', }; var s = document.createElement("script"); s.setAttribute("type", "text/javascript"); s.setAttribute("src", "//www.htmlcommentbox.com/jread?page=" + escape(hcb_user.PAGE).replace(/\+/g, "%2B") + "&mod=%241%24wq1rdBcg%24.0y2uzvjA2bsnhzpXVq9F." + "&opts=17374&num=10"); // No e-mail field: 16846 if (typeof s != "undefined") document.getElementsByTagName("head")[0].appendChild(s); </script> <script> setTimeout(function () { document.getElementById('hcb_form_content').rows = 1 }, 1000); </script> <hr> <!-- end HTMLCOMMENTBOX --> </div> <!-- content --> </div> <!-- left --> <div id="right"> <div id="google_translate_element"> <script> function googleTranslateElementInit() { new google.translate.TranslateElement({ pageLanguage: 'en' }, 'google_translate_element'); } </script> <script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> </div> <p><br></p> <hr> <div id="social"> <div class="fb-like" data-href="http://foldoc.org/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"> </div> <a href="https://twitter.com/share" class="twitter-share-button" data-via="foldoc"> Tweet </a> <script> if (!document.getElementById('twitter-wjs')) { var fjs = document.getElementsByTagName('script')[0], js = document.createElement('script'); js.id = 'twitter-wjs'; js.src = 'https://platform.twitter.com/widgets.js'; fjs.parentNode.insertBefore(js, fjs); } </script> </div> <hr> <div> <p></p> </div> <p> <a href="/rss.xml"> <img src="/orangerss.gif" width="14" height="14" alt="RSS feed of new items"> </a> <a href="/new.html">Recent Updates</a> | <a href="/missing.html">Missing Terms</a> </p> <p>Updated: Sun, 06 Oct 2024 20:18:24 GMT</p> <p>15274 entries</p> <p><em><a href="/Free+On-line+Dictionary">Copyright Denis Howe 1985</a></em></p> </div> <!-- right --> </div> <!-- container --> <!-- Start Quantcast --> <script type="text/javascript"> window._qevents = window._qevents || []; (function() { var elem = document.createElement('script'); elem.src = 'https://secure.quantserve.com/quant.js'; elem.async = true; elem.type = 'text/javascript'; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); window._qevents.push({ qacct: 'p-48Rosdvs3EiOc', uid: '__INSERT_EMAIL_HERE__' }); </script> <noscript> <div style="display:none;"> <img src="https//pixel.quantserve.com/pixel/p-48Rosdvs3EiOc.gif" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast --> </body> </html>