eolas/neuron/d0ed26d0-cdc8-4643-8c09-445408195f9b/.neuron/output/Instruction_set_architectures.html

50 lines
15 KiB
HTML
Raw Normal View History

2024-10-20 19:00:04 +01:00
<!DOCTYPE html><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type" /><meta content="width=device-width, initial-scale=1" name="viewport" /><!--replace-start-0--><!--replace-start-5--><!--replace-start-8--><title>Instruction Set Architectures - My Zettelkasten</title><!--replace-end-8--><!--replace-end-5--><!--replace-end-0--><link href="https://cdn.jsdelivr.net/npm/fomantic-ui@2.8.7/dist/semantic.min.css" rel="stylesheet" /><link href="https://fonts.googleapis.com/css?family=Merriweather|Libre+Franklin|Roboto+Mono&amp;display=swap" rel="stylesheet" /><!--replace-start-1--><!--replace-start-4--><!--replace-start-7--><link href="https://raw.githubusercontent.com/srid/neuron/master/assets/neuron.svg" rel="icon" /><meta content="Computers with different hardware execute machine code instructions (e.g add) in different ways. They have different instruction set architectures (ISAs)." name="description" /><meta content="Instruction Set Architectures" property="og:title" /><meta content="My Zettelkasten" property="og:site_name" /><meta content="article" property="og:type" /><meta content="Instruction_set_architectures" property="neuron:zettel-id" /><meta content="Instruction_set_architectures" property="neuron:zettel-slug" /><meta content="CPU" property="neuron:zettel-tag" /><script type="application/ld+json">[]</script><style type="text/css">body{background-color:#eeeeee !important;font-family:"Libre Franklin", serif !important}body .ui.container{font-family:"Libre Franklin", serif !important}body h1, h2, h3, h4, h5, h6, .ui.header, .headerFont{font-family:"Merriweather", sans-serif !important}body code, pre, tt, .monoFont{font-family:"Roboto Mono","SFMono-Regular","Menlo","Monaco","Consolas","Liberation Mono","Courier New", monospace !important}body div.z-index p.info{color:#808080}body div.z-index ul{list-style-type:square;padding-left:1.5em}body div.z-index .uplinks{margin-left:0.29999em}body .zettel-content h1#title-h1{background-color:rgba(33,133,208,0.1)}body nav.bottomPane{background-color:rgba(33,133,208,2.0e-2)}body div#footnotes{border-top-color:#2185d0}body p{line-height:150%}body img{max-width:100%}body .deemphasized{font-size:0.94999em}body .deemphasized:hover{opacity:1}body .deemphasized:not(:hover){opacity:0.69999}body .deemphasized:not(:hover) a{color:#808080 !important}body div.container.universe{padding-top:1em}body div.zettel-view ul{padding-left:1.5em;list-style-type:square}body div.zettel-view .pandoc .highlight{background-color:#ffff00}body div.zettel-view .pandoc .ui.disabled.fitted.checkbox{margin-right:0.29999em;vertical-align:middle}body div.zettel-view .zettel-content .metadata{margin-top:1em}body div.zettel-view .zettel-content .metadata div.date{text-align:center;color:#808080}body div.zettel-view .zettel-content h1{padding-top:0.2em;padding-bottom:0.2em;text-align:center}body div.zettel-view .zettel-content h2{border-bottom:solid 1px #4682b4;margin-bottom:0.5em}body div.zettel-view .zettel-content h3{margin:0px 0px 0.4em 0px}body div.zettel-view .zettel-content h4{opacity:0.8}body div.zettel-view .zettel-content div#footnotes{margin-top:4em;border-top-style:groove;border-top-width:2px;font-size:0.9em}body div.zettel-view .zettel-content div#footnotes ol > li > p:only-of-type{display:inline;margin-right:0.5em}body div.zettel-view .zettel-content aside.footnote-inline{width:30%;padding-left:15px;margin-left:15px;float:right;background-color:#d3d3d3}body div.zettel-view .zettel-content .overflows{overflow:auto}body div.zettel-view .zettel-content code{margin:auto auto auto auto;font-size:100%}body div.zettel-view .zettel-content p code, li code, ol code{padding:0.2em 0.2em 0.2em 0.2em;background-color:#f5f2f0}body div.zettel-view .zettel-content pre{overflow:auto}body div.zettel-view .zettel-content dl dt{font-weight:bold}body div.zettel-view .zettel-content blockquote{background-color:#f9f9f9;border-left:solid 10px #cccccc;margin:1.5em 0px 1.5em 0px;padding:0.5em 10px 0.5em 10px}body div.zettel-view .zettel-content.raw{background-color:#dddddd}body .ui.label.zettel-tag{col
async=""
id="MathJax-script"
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
></script>
<link
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism.min.css"
rel="stylesheet"
/><link rel="preconnect" href="https://fonts.googleapis.com" /><link
rel="preconnect"
href="https://fonts.gstatic.com"
crossorigin
/><link
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans+Condensed:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
rel="stylesheet"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/components/prism-core.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/plugins/autoloader/prism-autoloader.min.js"></script>
<style>
body .ui.container,
body ul {
font-family: "IBM Plex Sans" !important;
}
body blockquote {
border-left-width: 3px !important;
font-style: italic;
}
.headerFont,
.ui.header,
body h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "IBM Plex Sans Condensed" !important;
}
body p {
line-height: 1.4;
}
.monoFont,
body code,
pre,
tt {
font-family: "IBM Plex Mono" !important;
font-size: 12px !important;
line-height: 1.4 !important;
}
</style>
<!--replace-end-7--><!--replace-end-4--><!--replace-end-1--></head><body><div class="ui fluid container universe"><!--replace-start-2--><!--replace-start-3--><!--replace-start-6--><div class="ui text container" id="zettel-container" style="position: relative"><div class="zettel-view"><article class="ui raised attached segment zettel-content"><div class="pandoc"><h1 id="title-h1">Instruction Set Architectures</h1><h2 id="summary">Summary</h2><ul><li><p>Computers with different hardware execute machine code instructions (e.g <em>add</em>) in different ways. They have different <em>instruction set architectures</em> (ISAs).</p></li><li><p>A family of CPUs that implement the core instructions of the <span class="zettel-link-container cf"><span class="zettel-link"><a href="Arithmetic_Logic_Unit.html">Arithmetic Logic Unit (ALU)</a></span></span> in the same way share an ISA. Any software built for that ISA will work on any CPU that implements the ISA</p></li><li><p>The two main CPU architectures are ARM and x86</p></li></ul><h2 id="architecture-is-logical-not-physical">Architecture is logical not physical</h2><p>The “architecture” of an ISA is logical rather than physical, i.e processors that share an ISA may work very differently on the hardware level whilst still adhering to the same instruction set.</p><h2 id="arm-and-x86">ARM and x86</h2><p>The two main processor architectures are ARM and x86. x86 processors were first introduced by Intel but are also made by AMD.</p><h3 id="x86">x86</h3><ul><li><p>First introduced by Intel but also made by AMD.</p></li><li><p>Name stems from Intels internal naming conventions - every new processor they introduced would have a letter designation ending with “86”. Later they would adopt names such as “Pentium”, “Celeron” etc. Regardless, these processors still fall under the “x86” family.</p></li><li><p>Over time, new instructions have been added to the x86 architecture but they all maintain backwards compatibility with preceding generations.</p></li><li><p>There have been different, successive generations of x86 corresponding to their <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Signed and unsigned numbers"><a href="Signed_and_unsigned_numbers.html">word-size</a></span></span>: 16-bit, 32-bit, 64-bit. Word size here just means how many bits the processor can work with at a time. A 34-bit processor can operate on values that are 32 bits in length. This means it has 32bit <a href="CPU_architecture#registers" title="cf">registers</a>, a 32-bit data <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Bus"><a href="Bus.html">bus</a></span></span>, a 32-bit address bus and so on.</p></li><li><p>AMD introduced the first 64-bit processor, not Intel but they later caught up. A 64-bit x86 processor is often referred to as <em>x64</em> or <em>x86-64</em>.</p></li></ul><h3 id="arm">ARM</h3><ul><li><p>x86 processors dominate the personal computer and server space</p></li><li><p>On movile devices ARM ISA predominates</p></li><li><p>The ARM company develops the architecture and standard which it licenses it to other companies to implement.</p></li><li><p>Preferred on mobile because they have reduced power consumption and lower costs compared to x86.</p></li><li><p>The processor is on a single chip that contains the CPU as well as memory and other hardware.</p></li></ul></div></article><nav class="ui attached segment deemphasized backlinksPane" id="neuron-backlinks-pane"><h3 class="ui header">Backlinks</h3><ul class="backlinks"><li><span class="zettel-link-container cf"><span class="zettel-link"><a href="Operating_system_API.html">Operating system API</a></span></span><ul class="context-list" style="zoom: 85%;"><li class="item"><div class="pandoc"><p>Windows has its own API called <em>The Windows API</em>. The original version was 16-bit called <em>Win16</em>, then when it moved to 32-bits it became <em>Win32</em>. When it moved to an x86 <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: I