50 lines
22 KiB
HTML
50 lines
22 KiB
HTML
|
|
<!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>CPU architecture - 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&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="At the core of a computer sits the Central Processing Unit. This is the assembly of chips that execute all computation. Instructions are passed to the CPU along the data bus part of the system bus from the memory. The kernel, also residing in memory, sequences and schedules the sending of data to th" name="description" /><meta content="CPU architecture" property="og:title" /><meta content="My Zettelkasten" property="og:site_name" /><meta content="article" property="og:type" /><meta content="CPU_architecture" property="neuron:zettel-id" /><meta content="CPU_architecture" property="neuron:zettel-slug" /><meta content="CPU" property="neuron:zettel-tag" /><meta content="computer-architecture" 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 10
|
|||
|
|
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">CPU architecture</h1><p>At the core of a computer sits the Central Processing Unit. This is the assembly of chips that execute all computation. Instructions are passed to the CPU along the data bus part of the <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Bus"><a href="Bus.html">system bus</a></span></span> from the memory. The <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: The kernel"><a href="The_kernel.html">kernel</a></span></span>, also residing in memory, sequences and schedules the sending of data to the CPU and manages requests from the CPU for data in memory.</p><p>The CPU comprises three core components:</p><ul><li>Registers (a type of memory positioned on the same chip as the CPU )</li><li>the Arithmetic Logic Unit (ALU)</li><li>the Control Unit (CU)</li></ul><p><img src="/static/von_neumann_architecture.jpeg" /></p><blockquote><p>This method of putting together a computer is known as the <strong>Von Neumann Architecture</strong>. It was devised by John von Neumann in about 1945, well before any of the components that would be needed to produce it had actually been invented.</p></blockquote><h2 id="registers">Registers</h2><p>This is the part of the CPU that stores data. The memory cells that comprise it do not have <span class="zettel-link-container errors"><span class="zettel-link" title="Wiki-link does not refer to any existing zettel"><a>Memory</a></span></span> (unlike RAM) so they cannot store very much data but they work faster, which is what is important. Because their memory capacity is so small, we measure the size of registers in bits rather than bytes.</p><p>In terms of speed, registers sit at the top part of the overall <a href="Memory.md#the-memory-hierarchy">memory hierarchy</a>.</p><p>There are five main types of register in the CPU:</p><table class="ui table"><thead><tr><th>Register type</th><th>What it stores</th></tr></thead><tbody><tr><td>Accumulator</td><td>The results of calculations</td></tr><tr><td>Instruction Register</td><td>The DRAM address of the <strong>instruction</strong> to be processed</td></tr><tr><td>Memory Address Register</td><td>The DRAM address of the <strong>data</strong> to be processed</td></tr><tr><td>Memory Data Register</td><td>The store of the data that is currently being processed</td></tr><tr><td>Program Counter</td><td>The RAM address of the <strong>next instruction</strong> to be processed</td></tr></tbody></table><h2 id="arithmetic-logic-unit">Arithmetic Logic Unit</h2><p>See <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Arithmetic Logic Unit (ALU)"><a href="Arithmetic_Logic_Unit.html">Arithmetic Logic Unit</a></span></span></p><h2 id="control-unit">Control Unit</h2><p>The CPU’s <span class="zettel-link-container cf"><span class="zettel-link" title="Zettel: Chipset and controllers"><a href="Chipset_and_controllers.html">controller</a></span></span>. It takes the instructions in binary form from RAM memory (separate from the CPU, but connected) and then signals to the to ALU and memory registers what it is supposed to do to execute the instructions. Think of it as the overseer that gets the ALU and registers to work together to run program instructions.</p><h2 id="the-system-clock">The system clock</h2><p>Whilst modern CPUs and multithreading make it appear as though the CPU is capable of running multiple processes at once, access to the CPU is in fact sequential. The illusion of simultaneous computation is due to the fact the processor is so fast that we do not detect the sequential changes. For this to happen, the CPU needs to have a means of scheduling and sequencing processes. Thi
|