计算机组成原理
python_QYF
风往尘香花已尽,日晚倦梳头;物是人非事事休,欲语泪先流。
展开
-
54 | 理解 Disruptor(上):带你体会 CPU 高速缓存的风驰电掣
54 | 理解 Disruptor(上):带你体会 CPU 高速缓存的风驰电掣坚持到底就是胜利,终于我们一起来到了专栏的最后一个主题。让我一起带你来看一看,CPU 到底能有多快。在接下来的两讲里,我会带你一起来看一个开源项目 Disruptor。看看我们怎么利用 CPU 和高速缓存的硬件特性,来设计一个对于性能有极限追求的系统。不知道你还记不记得,在第 37 讲里,为了优化 4 毫秒专门铺设光...转载 2019-11-22 22:53:02 · 691 阅读 · 0 评论 -
53 | 设计大型 DMP 系统(下):SSD 拯救了所有的 DBA
53 | 设计大型 DMP 系统(下):SSD 拯救了所有的 DBA上一讲里,根据 DMP 系统的各个应用场景,我们从抽象的原理层面,选择了 AeroSpike 作为 KV 数据库,Kafka 作为数据管道,Hadoop/Hive 来作为数据仓库。不过呢,肯定有不信邪的工程师会问,为什么 MongoDB,甚至是 MySQL 这样的文档数据库或者传统的关系型数据库不适用呢?为什么不能通过优化 S...转载 2019-11-22 22:47:30 · 409 阅读 · 0 评论 -
52 | 设计大型 DMP 系统(上):MongoDB 并不是什么灵丹妙药
52 | 设计大型 DMP 系统(上):MongoDB 并不是什么灵丹妙药如果你一讲一讲跟到现在,那首先要恭喜你,马上就看到胜利的曙光了。过去的 50 多讲里,我把计算机组成原理中的各个知识点,一点一点和你拆解了。对于其中的很多知识点,我也给了相应的代码示例和实际的应用案例。不过呢,相信你和我一样,觉得只了解这样一个个零散的知识点和案例还不过瘾。那么从今天开始,我们就进入应用篇。我会通过两个应...转载 2019-11-15 22:42:25 · 401 阅读 · 0 评论 -
51 | 分布式计算:如果所有人的大脑都联网会怎样?
51 | 分布式计算:如果所有人的大脑都联网会怎样?今天是原理篇的最后一篇。过去 50 讲,我们一起看了抽象概念上的计算机指令,看了这些指令怎么拆解成一个个简单的电路,以及 CPU 是怎么通过一个一个的电路组成的。我们还一起看了高速缓存、内存、SSD 硬盘和机械硬盘,以及这些组件又是怎么通过总线和 CPU 连在一起相互通信的。把计算机这一系列组件组合起来,我们就拿到了一台完整的计算机。现在我们...转载 2019-11-15 22:31:34 · 359 阅读 · 0 评论 -
50 | 数据完整性(下):如何还原犯罪现场?
50 | 数据完整性(下):如何还原犯罪现场?讲完校验码之后,你现在应该知道,无论是奇偶校验码,还是 CRC 这样的循环校验码,都只能告诉我们一个事情,就是你的数据出错了。所以,校验码也被称为检错码(Error Detecting Code)。不管是校验码,还是检错码,在硬件出错的时候,只能告诉你 “我错了”。但是,下一个问题,“错哪儿了”,它是回答不了的。这就导致,我们的处理方式只有一种,那...转载 2019-11-11 22:51:54 · 1092 阅读 · 0 评论 -
49 | 数据完整性(上):硬件坏了怎么办?
49 | 数据完整性(上):硬件坏了怎么办?2012 年的时候,我第一次在工作中,遇到一个因为硬件的不可靠性引发的 Bug。正是因为这个 Bug,让我开始逐步花很多的时间,去复习回顾整个计算机系统里面的底层知识。当时,我正在 MediaV 带领一个 20 多人的团队,负责公司的广告数据和机器学习算法。其中有一部分工作,就是用 Hadoop 集群处理所有的数据和报表业务。当时我们的业务增长很快,...转载 2019-11-07 22:50:11 · 531 阅读 · 0 评论 -
48 | DMA:为什么 Kafka 这么快?
48 | DMA:为什么 Kafka 这么快?过去几年里,整个计算机产业界,都在尝试不停地提升 I/O 设备的速度。把 HDD 硬盘换成 SSD 硬盘,我们仍然觉得不够快;用 PCI Express 接口的 SSD 硬盘替代 SATA 接口的 SSD 硬盘,我们还是觉得不够快,所以,现在就有了傲腾(Optane)这样的技术。但是,无论 I/O 速度如何提升,比起 CPU,总还是太慢。SSD 硬...转载 2019-11-07 22:44:18 · 315 阅读 · 0 评论 -
47 | SSD 硬盘(下):如何完成性能优化的 KPI?
47 | SSD 硬盘(下):如何完成性能优化的 KPI?如果你平时用的是 Windows 电脑,你会发现,用了 SSD 的系统盘,就不能用磁盘碎片整理功能。这是因为,一旦主动去运行磁盘碎片整理功能,就会发生一次块的擦除,对应块的寿命就少了一点点。这个 SSD 的擦除寿命的问题,不仅会影响像磁盘碎片整理这样的功能,其实也很影响我们的日常使用。我们的操作系统上,并没有 SSD 硬盘上各个块目前已...转载 2019-11-04 22:27:42 · 429 阅读 · 0 评论 -
46 | SSD 硬盘(上):如何完成性能优化的 KPI?
46 | SSD 硬盘(上):如何完成性能优化的 KPI?随着 3D 垂直封装技术和 QLC 技术的出现,今年的 “618”,SSD 硬盘的价格进一步大跳水,趁着这个机会,我把自己电脑上的仓库盘,从 HDD 换成了 SSD 硬盘。我的个人电脑彻底摆脱了机械硬盘。随着智能手机的出现,互联网用户在 2008 年之后开始爆发性增长,大家在网上花的时间也越来越多。这也就意味着,隐藏在精美 App 和网...转载 2019-11-04 22:23:47 · 411 阅读 · 0 评论 -
45 | 机械硬盘:Google 早期用过的 “黑科技”
45 | 机械硬盘:Google 早期用过的 “黑科技”在 1991 年,我刚接触计算机的时候,很多计算机还没有硬盘。整个操作系统都安装在 5 寸或者 3.5 寸的软盘里。不过,很快大部分计算机都开始用上了直接安装在主板上的机械硬盘。到了今天,更早的软盘早已经被淘汰了。在个人电脑和服务器里,更晚出现的光盘也已经很少用了。机械硬盘的生命力仍然非常顽强。无论是作为个人电脑的数据盘,还是在数据中心里...转载 2019-11-01 22:48:37 · 418 阅读 · 0 评论 -
30 | GPU(上):为什么玩游戏需要使用GPU?
30 | GPU(上):为什么玩游戏需要使用GPU?讲完了 CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为 GPU 的图形处理器。过去几年里,因为深度学习的大发展,GPU 一下子火起来了,似乎 GPU 成了一个专为深度学习而设计的处理器。那 GPU 的架构究竟是怎么回事儿呢?它最早是用来做什么而被设计出来的呢?想要理解 GPU 的设计,我们就要从 GPU 的老本行图形处理说...转载 2019-08-27 22:21:28 · 2155 阅读 · 0 评论 -
31 | GPU(下):为什么深度学习需要使用 GPU?
31 | GPU(下):为什么深度学习需要使用 GPU?上一讲,我带你一起看了三维图形在计算机里的渲染过程。这个渲染过程,分成了顶点处理、图元处理、 栅格化、片段处理,以及最后的像素操作。这一连串的过程,也被称之为图形流水线或者渲染管线。因为要实时计算渲染的像素特别地多,图形加速卡登上了历史的舞台。通过 3dFx 的 Voodoo 或者 NVidia 的 TNT 这样的图形加速卡,CPU 就不...转载 2019-08-29 22:10:27 · 10707 阅读 · 0 评论 -
32 | FPGA 和 ASIC:计算机体系结构的黄金时代
32 | FPGA 和 ASIC:计算机体系结构的黄金时代过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是 “软件”。从 1995 年微软发布 Windows 95 开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金 Andreessen Horowitz 的合伙人 Marc Andreessen,在 2011 年发表了一篇博客,声称 “Software is ...转载 2019-08-30 22:35:22 · 634 阅读 · 0 评论 -
33 | 解读 TPU:设计和拆解一块 ASIC 芯片
33 | 解读 TPU:设计和拆解一块 ASIC 芯片过去几年,最知名、最具有实用价值的 ASIC 就是 TPU 了。各种解读 TPU 论文内容的文章网上也很多。不过,这些文章更多地是从机器学习或者 AI 的角度,来讲解 TPU。上一讲,我为你讲解了 FPGA 和 ASIC,讲解了 FPGA 如何实现通过 “软件” 来控制 “硬件”,以及我们可以进一步把 FPGA 设计出来的电路变成一块 AS...转载 2019-09-02 22:27:09 · 1640 阅读 · 0 评论 -
34 | 理解虚拟机:你在云上拿到的计算机是什么样的?
34 | 理解虚拟机:你在云上拿到的计算机是什么样的?上世纪 60 年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用一台计算机。缘起分时系统为了应对这两个问题,分时系统的计算机就应运而生了。无论是个人...转载 2019-09-03 22:24:02 · 512 阅读 · 0 评论 -
35 | 存储器层次结构全景:数据存储的大金字塔长什么样?
35 | 存储器层次结构全景:数据存储的大金字塔长什么样?今天开始,我们要进入到计算机另一个重要的组成部分,存储器。如果你自己组装过 PC 机,你肯定知道,想要 CPU,我们只要买一个就好了,但是存储器,却有不同的设备要买。比方说,我们要买内存,还要买硬盘。买硬盘的时候,不少人会买一块 SSD 硬盘作为系统盘,还会买上一块大容量的 HDD 机械硬盘作为数据盘。内存和硬盘都是我们的存储设备。而且...转载 2019-09-03 22:27:23 · 1453 阅读 · 0 评论 -
36 | 局部性原理:数据库性能跟不上,加个缓存就好了?
36 | 局部性原理:数据库性能跟不上,加个缓存就好了?平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里。而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候。这个时候,大部分工程师和架构师会拿出一种叫作 “缓存” 的武器,通过使用 Redis 或者 Memcache 这样的开源软件,在数据库前面提供一层缓存的数据,来缓解数据库面临的压力,提升服务端的程序性能。在数据库...转载 2019-09-06 22:40:30 · 487 阅读 · 1 评论 -
37 | 高速缓存(上):“4 毫秒” 究竟值多少钱?
37 | 高速缓存(上):“4 毫秒” 究竟值多少钱?在这一节内容开始之前,我们先来看一个 3 行的小程序。你可以猜一猜,这个程序里的循环 1 和循环 2,运行所花费的时间会差多少?你可以先思考几分钟,然后再看我下面的解释。int[] arr = new int[64 * 1024 * 1024]; // 循环 1for (int i = 0; i < arr.length; ...转载 2019-09-06 22:45:02 · 572 阅读 · 0 评论 -
38 | 高速缓存(下):你确定你的数据更新了么?
38 | 高速缓存(下):你确定你的数据更新了么?在我工作的十几年里,写了很多 Java 的程序。同时,我也面试过大量的 Java 工程师。对于一些表示自己深入了解和擅长多线程的同学,我经常会问这样一个面试题:“volatile 这个关键字有什么作用?” 如果你或者你的朋友写过 Java 程序,不妨来一起试着回答一下这个问题。就我面试过的工程师而言,即使是工作了多年的 Java 工程师,也很少...转载 2019-09-09 22:13:04 · 332 阅读 · 0 评论 -
39 | MESI 协议:如何让多核 CPU 的高速缓存保持一致?
39 | MESI 协议:如何让多核 CPU 的高速缓存保持一致?你平时用的电脑,应该都是多核的 CPU。多核 CPU 有很多好处,其中最重要的一个就是,它使得我们在不能提升 CPU 的主频之后,找到了另一种提升 CPU 吞吐率的办法。不知道上一讲的内容你还记得多少?上一节,我们讲到,多核 CPU 里的每一个 CPU 核,都有独立的属于自己的 L1 Cache 和 L2 Cache。多个 CP...转载 2019-09-16 22:40:18 · 1234 阅读 · 3 评论 -
40 | 理解内存(上):虚拟内存和内存保护是什么?
40 | 理解内存(上):虚拟内存和内存保护是什么?我们在专栏一开始说过,计算机有五大组成部分,分别是:运算器、控制器、存储器、输入设备和输出设备。如果说计算机最重要的组件,是承担了运算器和控制器作用的 CPU,那内存就是我们第二重要的组件了。内存是五大组成部分里面的存储器,我们的指令和数据,都需要先加载到内存里面,才会被 CPU 拿去执行。专栏第 9 讲,我们讲了程序装载到内存的过程。可以知...转载 2019-09-17 21:10:47 · 873 阅读 · 0 评论 -
41 | 理解内存(下):解析 TLB 和内存保护
41 | 理解内存(下):解析 TLB 和内存保护机器指令里面的内存地址都是虚拟内存地址。程序里面的每一个进程,都有一个属于自己的虚拟内存地址空间。我们可以通过地址转换来获得最终的实际物理地址。我们每一个指令都存放在内存里面,每一条数据都存放在内存里面。因此,“地址转换” 是一个非常高频的动作,“地址转换” 的性能就变得至关重要了。这就是我们今天要讲的第一个问题,也就是性能问题。因为我们的指令...转载 2019-09-17 21:15:41 · 709 阅读 · 0 评论 -
42 | 总线:计算机内部的高速公路
42 | 总线:计算机内部的高速公路专栏讲到现在,如果我再问你,计算机五大组成部分是什么,应该没有人不知道了吧?我们这一节要讲的内容,依然要围绕这五大部分,控制器、运算器、存储器、输入设备和输出设备。CPU 所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。那问题来了,CPU 从我们的键盘、鼠标接收输入信号,向显示器输出信号,这之间究竟是怎么通信的呢?换句话说...转载 2019-09-23 23:15:21 · 763 阅读 · 0 评论 -
43 | 输入输出设备:我们并不是只能用灯泡显示 “0” 和 “1”
43 | 输入输出设备:我们并不是只能用灯泡显示 “0” 和 “1”我们在前面的章节搭建了最简单的电路,在这里面,计算机的输入设备就是一个一个开关,输出设备呢,是一个一个灯泡。的确,早期发展的时候,计算机的核心是做 “计算”。我们从 “计算机” 这个名字上也能看出这一点。不管是中文名字 “计算机”,还是英文名字 “Computer”,核心都是在” 计算 “这两个字上。不过,到了今天,这些 “计算...转载 2019-10-09 19:51:15 · 487 阅读 · 0 评论 -
44 | 理解 IO_WAIT:I/O 性能到底是怎么回事儿?
44 | 理解 IO_WAIT:I/O 性能到底是怎么回事儿?在专栏一开始的时候,我和你说过,在计算机组成原理这门课里面,很多设计的核心思路,都来源于性能。在前面讲解 CPU 的时候,相信你已经有了切身的感受了。大部分程序员开发的都是应用系统。在开发应用系统的时候,我们遇到的性能瓶颈大部分都在 I/O 上。在第 36 讲讲解局部性原理的时候,我们一起看了通过把内存当作是缓存,来提升系统的整体性...转载 2019-10-09 19:57:44 · 613 阅读 · 0 评论 -
07 | 函数调用:为什么会发生stack overflow?
07 | 函数调用:为什么会发生stack overflow?一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。在开发软件的过程中我们经常会遇到错误,如果你用 Google 搜过出错信息,那你多少应该都访问过Stack Overflow这个网站。作为全球最...转载 2019-06-02 10:35:56 · 1347 阅读 · 0 评论 -
29 | CISC和RISC:为什么手机芯片都是ARM?
29 | CISC和RISC:为什么手机芯片都是ARM?我在第 5 讲讲计算机指令的时候,给你看过 MIPS 体系结构计算机的机器指令格式。MIPS 的指令都是固定的 32 位长度,如果要用一个打孔卡来表示,并不复杂。MIPS 机器码的长度都是固定的 32 位第 6 讲的时候,我带你编译了一些简单的 C 语言程序,看了 x86 体系结构下的汇编代码。眼尖的话,你应该能发现,每一条机器码的长...转载 2019-08-26 22:23:26 · 3326 阅读 · 0 评论 -
28 | 异常和中断:程序出错了怎么办?
28 | 异常和中断:程序出错了怎么办?过去这么多讲,我们的程序都是自动运行且正常运行的。自动运行的意思是说,我们的程序和指令都是一条条顺序执行,你不需要通过键盘或者网络给这个程序任何输入。正常运行是说,我们的程序都是能够正常执行下去的,没有遇到计算溢出之类的程序错误。不过,现实的软件世界可没有这么简单。一方面,程序不仅是简单的执行指令,更多的还需要和外部的输入输出打交道。另一方面,程序在执行...转载 2019-08-22 22:35:54 · 618 阅读 · 0 评论 -
15 | 浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?
15 | 浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?在我们日常的程序开发中,不只会用到整数。更多情况下,我们用到的都是实数。比如,我们开发一个电商 App,商品的价格常常会是 9 块 9;再比如,现在流行的深度学习算法,对应的机器学习里的模型里的各个权重也都是 1.23 这样的数。可以说,在实际的应用过程中,这些有零有整的实数,是和整数同样常用的数据类型,我们也需要考虑到。...转载 2019-07-09 19:58:28 · 579 阅读 · 1 评论 -
12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?
12 | 理解电路:从电报机到门电路,我们如何做到“千里传信”?我们前面讲过机器指令,你应该知道,所有最终执行的程序其实都是使用“0”和“1”这样的二进制代码来表示的。上一讲里,我也向你展示了,对应的整数和字符串,其实也是用“0”和“1”这样的二进制代码来表示的。那么你可能要问了,我知道了这个有什么用呢?毕竟我们人用纸和笔来做运算,都是用十进制,直接用十进制和我们最熟悉的符号不是最简单么?为...转载 2019-06-27 19:02:24 · 1617 阅读 · 0 评论 -
11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?
11 | 二进制编码:“手持两把锟斤拷,口中疾呼烫烫烫”?上算法和数据结构课的时候,老师们都会和你说,程序 = 算法 + 数据结构。如果对应到组成原理或者说硬件层面,算法就是我们前面讲的各种计算机指令,数据结构就对应我们接下来要讲的二进制数据。众所周知,现代计算机都是用 0 和 1 组成的二进制,来表示所有的信息。前面几讲的程序指令用到的机器码,也是使用二进制表示的;我们存储在内存里面的字符串...转载 2019-06-18 19:23:43 · 28967 阅读 · 0 评论 -
10 | 动态链接:程序内部的“共享单车”
10 | 动态链接:程序内部的“共享单车”一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。我们之前讲过,程序的链接,是把对应的不同文件内的代码段,合并到一起,成为最后的可执行文件。这个链接的方式,让我们在写代码的时候做到了“复用”。同样的功能代码只要写一...转载 2019-06-17 19:47:39 · 345 阅读 · 0 评论 -
09 | 程序装载:“640K内存”真的不够用么?
09 | 程序装载:“640K内存”真的不够用么?一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。计算机这个行业的历史上有过很多成功的预言,最著名的自然是“摩尔定律”。当然免不了的也有很多“失败”的预测,其中一个最著名的就是,比尔·盖茨在上世纪 80 年...转载 2019-06-11 20:16:10 · 2541 阅读 · 0 评论 -
08 | ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?
08 | ELF和静态链接:为什么程序无法同时在Linux和Windows下运行?一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。过去的三节,你和我一起通过一些简单的代码,看到了我们写的程序,是怎么变成一条条计算机指令的;if…else 这样的条件跳转是...转载 2019-06-10 20:26:58 · 2719 阅读 · 2 评论 -
06 | 指令跳转:原来if...else就是goto
06 | 指令跳转:原来if…else就是goto一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。上一讲,我们讲解了一行代码是怎么变成计算机指令的。你平时写的程序中,肯定不只有 int a = 1 这样最最简单的代码或者指令。我们总是要用到 if…els...转载 2019-05-30 19:20:39 · 1348 阅读 · 0 评论 -
05 | 计算机指令:让我们试试用纸带编程
05 | 计算机指令:让我们试试用纸带编程一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。你在学写程序的时候,有没有想过,古老年代的计算机程序是怎么写出来的?上大学的时候,我们系里教 C 语言程序设计的老师说,他们当年学写程序的时候,不像现在这样,都是...转载 2019-05-27 20:02:51 · 1873 阅读 · 0 评论 -
02 | 给你一张知识地图,计算机组成原理应该这么学
02 | 给你一张知识地图,计算机组成原理应该这么学了解了现代计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的了解。建议保存后查看大图从这张图可以看出来,整个计算机组成原理,就是围绕着计算机是如何组织运作展开的。计算机组成原理知识地图计算机组成原理...转载 2019-05-18 14:50:27 · 1443 阅读 · 0 评论 -
04 | 穿越功耗墙,我们该从哪些方面提升“性能”?
04 | 穿越功耗墙,我们该从哪些方面提升“性能”?一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便在这里分享一下。上一讲,在讲 CPU 的性能时,我们提到了这样一个公式:程序的 CPU 执行时间 = 指令数×CPI×Clock Cycle Time这么来看,如果要...转载 2019-05-22 17:31:58 · 976 阅读 · 0 评论 -
01 | 冯·诺依曼体系结构:计算机组成的金字塔
计算机组成原理学习分享一直以来都知道自己有关计算机底层的知识不是不扎实,前段时间跟着大佬们推荐在【极客时间】买了 徐文浩 老师的专栏 深入浅出计算机组成原理,增强一下自己的计算机底层知识,顺便分享一下。01 | 冯·诺依曼体系结构:计算机组成的金字塔学习计算机组成原理,到底是在学些什么呢?这个事儿,一两句话还真说不清楚。不过没关系,我们先从“装电脑”这个看起来没有什么技术含量的事情说起,...转载 2019-05-17 14:47:25 · 1215 阅读 · 2 评论 -
13 | 加法器:如何像搭乐高一样搭电路(上)?
13 | 加法器:如何像搭乐高一样搭电路(上)?上一讲,我们看到了如何通过电路,在计算机硬件层面设计最基本的单元,门电路。我给你看的门电路非常简单,只能做简单的 “与(AND)”“或(OR)”“NOT(非)”和“异或(XOR)”,这样最基本的单比特逻辑运算。下面这些门电路的标识,你需要非常熟悉,后续的电路都是由这些门电路组合起来的。这些基本的门电路,是我们计算机硬件端的最基本的“积木”,就...转载 2019-07-04 19:46:17 · 435 阅读 · 0 评论