learn.lianglianglee.com/专栏/深入浅出计算机组成原理/index.html
2022-08-14 03:40:33 +08:00

227 lines
19 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>深入浅出计算机组成原理</h1>
<ul>
<li><a href = '\专栏\深入浅出计算机组成原理\00 开篇词 为什么你需要学习计算机组成原理?.html'>00 开篇词 为什么你需要学习计算机组成原理?.html</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\01 冯·诺依曼体系结构:计算机组成的金字塔.md.html'>01 冯·诺依曼体系结构:计算机组成的金字塔</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\02 给你一张知识地图,计算机组成原理应该这么学.md.html'>02 给你一张知识地图,计算机组成原理应该这么学</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\03 通过你的CPU主频我们来谈谈“性能”究竟是什么.md.html'>03 通过你的CPU主频我们来谈谈“性能”究竟是什么</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\04 穿越功耗墙,我们该从哪些方面提升“性能”?.md.html'>04 穿越功耗墙,我们该从哪些方面提升“性能”?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\05 计算机指令:让我们试试用纸带编程.md.html'>05 计算机指令:让我们试试用纸带编程</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\06 指令跳转原来if...else就是goto.md.html'>06 指令跳转原来if...else就是goto</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\07 函数调用为什么会发生stack overflow.md.html'>07 函数调用为什么会发生stack overflow</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\08 ELF和静态链接为什么程序无法同时在Linux和Windows下运行.md.html'>08 ELF和静态链接为什么程序无法同时在Linux和Windows下运行</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\09 程序装载“640K内存”真的不够用么.md.html'>09 程序装载“640K内存”真的不够用么</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\10 动态链接:程序内部的“共享单车”.md.html'>10 动态链接:程序内部的“共享单车”</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\11 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?.md.html'>11 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\12 理解电路:从电报机到门电路,我们如何做到“千里传信”?.md.html'>12 理解电路:从电报机到门电路,我们如何做到“千里传信”?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\13 加法器:如何像搭乐高一样搭电路(上)?.md.html'>13 加法器:如何像搭乐高一样搭电路(上)?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\14 乘法器:如何像搭乐高一样搭电路(下)?.md.html'>14 乘法器:如何像搭乐高一样搭电路(下)?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\15 浮点数和定点数怎么用有限的Bit表示尽可能多的信息.md.html'>15 浮点数和定点数怎么用有限的Bit表示尽可能多的信息</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\16 浮点数和定点数(下):深入理解浮点数到底有什么用?.md.html'>16 浮点数和定点数(下):深入理解浮点数到底有什么用?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\17 建立数据通路(上):指令加运算=CPU.md.html'>17 建立数据通路(上):指令加运算=CPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\18 建立数据通路(中):指令加运算=CPU.md.html'>18 建立数据通路(中):指令加运算=CPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\19 建立数据通路(下):指令加运算=CPU.md.html'>19 建立数据通路(下):指令加运算=CPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\20 面向流水线的指令设计一心多用的现代CPU.md.html'>20 面向流水线的指令设计一心多用的现代CPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\21 面向流水线的指令设计奔腾4是怎么失败的.md.html'>21 面向流水线的指令设计奔腾4是怎么失败的</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\22 冒险和预测hazard是“危”也是“机”.md.html'>22 冒险和预测hazard是“危”也是“机”</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\23 冒险和预测(二):流水线里的接力赛.md.html'>23 冒险和预测(二):流水线里的接力赛</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\24 冒险和预测CPU里的“线程池”.md.html'>24 冒险和预测CPU里的“线程池”</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\25 冒险和预测(四):今天下雨了,明天还会下雨么?.md.html'>25 冒险和预测(四):今天下雨了,明天还会下雨么?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\26 Superscalar和VLIW如何让CPU的吞吐率超过1.md.html'>26 Superscalar和VLIW如何让CPU的吞吐率超过1</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\27 SIMD如何加速矩阵乘法.md.html'>27 SIMD如何加速矩阵乘法</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\28 异常和中断:程序出错了怎么办?.md.html'>28 异常和中断:程序出错了怎么办?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\29 CISC和RISC为什么手机芯片都是ARM.md.html'>29 CISC和RISC为什么手机芯片都是ARM</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\30 GPU为什么玩游戏需要使用GPU.md.html'>30 GPU为什么玩游戏需要使用GPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\31 GPU为什么深度学习需要使用GPU.md.html'>31 GPU为什么深度学习需要使用GPU</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\32 FPGA、ASIC和TPU计算机体系结构的黄金时代.md.html'>32 FPGA、ASIC和TPU计算机体系结构的黄金时代</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\33 解读TPU设计和拆解一块ASIC芯片.md.html'>33 解读TPU设计和拆解一块ASIC芯片</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\34 理解虚拟机:你在云上拿到的计算机是什么样的?.md.html'>34 理解虚拟机:你在云上拿到的计算机是什么样的?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\35 存储器层次结构全景:数据存储的大金字塔长什么样?.md.html'>35 存储器层次结构全景:数据存储的大金字塔长什么样?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\36 局部性原理:数据库性能跟不上,加个缓存就好了?.md.html'>36 局部性原理:数据库性能跟不上,加个缓存就好了?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\37 理解CPU Cache“4毫秒”究竟值多少钱.md.html'>37 理解CPU Cache“4毫秒”究竟值多少钱</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\38 高速缓存(下):你确定你的数据更新了么?.md.html'>38 高速缓存(下):你确定你的数据更新了么?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\39 MESI协议如何让多核CPU的高速缓存保持一致.md.html'>39 MESI协议如何让多核CPU的高速缓存保持一致</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\40 理解内存(上):虚拟内存和内存保护是什么?.md.html'>40 理解内存(上):虚拟内存和内存保护是什么?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\41 理解内存解析TLB和内存保护.md.html'>41 理解内存解析TLB和内存保护</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\42 总线:计算机内部的高速公路.md.html'>42 总线:计算机内部的高速公路</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\43 输入输出设备我们并不是只能用灯泡显示“0”和“1”.md.html'>43 输入输出设备我们并不是只能用灯泡显示“0”和“1”</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\44 理解IO_WAITIO性能到底是怎么回事儿.md.html'>44 理解IO_WAITIO性能到底是怎么回事儿</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\45 机械硬盘Google早期用过的“黑科技”.md.html'>45 机械硬盘Google早期用过的“黑科技”</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\46 SSD硬盘如何完成性能优化的KPI.md.html'>46 SSD硬盘如何完成性能优化的KPI</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\47 SSD硬盘如何完成性能优化的KPI.md.html'>47 SSD硬盘如何完成性能优化的KPI</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\48 DMA为什么Kafka这么快.md.html'>48 DMA为什么Kafka这么快</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\49 数据完整性(上):硬件坏了怎么办?.md.html'>49 数据完整性(上):硬件坏了怎么办?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\50 数据完整性(下):如何还原犯罪现场?.md.html'>50 数据完整性(下):如何还原犯罪现场?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\51 分布式计算:如果所有人的大脑都联网会怎样?.md.html'>51 分布式计算:如果所有人的大脑都联网会怎样?</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\52 设计大型DMP系统MongoDB并不是什么灵丹妙药.md.html'>52 设计大型DMP系统MongoDB并不是什么灵丹妙药</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\53 设计大型DMP系统SSD拯救了所有的DBA.md.html'>53 设计大型DMP系统SSD拯救了所有的DBA</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\54 理解Disruptor带你体会CPU高速缓存的风驰电掣.md.html'>54 理解Disruptor带你体会CPU高速缓存的风驰电掣</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\55 理解Disruptor不需要换挡和踩刹车的CPU有多快.md.html'>55 理解Disruptor不需要换挡和踩刹车的CPU有多快</a></li>
<li><a href = '\专栏\深入浅出计算机组成原理\结束语 知也无涯,愿你也享受发现的乐趣.md.html'>结束语 知也无涯,愿你也享受发现的乐趣</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>