27 SIMD:如何加速矩阵乘法? 27 SIMD:如何加速矩阵乘法?上一讲里呢,我进一步为你讲解了 CPU 里的“黑科技”,分别是超标量(Superscalar)技术和超长指令字(VLIW)技术。 超标量(Superscalar)技术能够让取指令以及指令译码也并行进行;在编译的过程,超长指令字(VLIW)技术可以搞定指令先后的依赖关系,使得一次可以取一个指令包。 不过,CPU 里的各种神奇的优化我们还远远没有 2022-08-23 专栏 > 深入浅出计算机组成原理
29 CISC和RISC:为什么手机芯片都是ARM? 29 CISC和RISC:为什么手机芯片都是ARM?我在第 5 讲讲计算机指令的时候,给你看过 MIPS体系结构计算机的机器指令格式。MIPS 的指令都是固定的 32 位长度,如果要用一个打孔卡来表示,并不复杂。 MIPS 机器码的长度都是固定的 32 位 第 6 讲的时候,我带你编译了一些简单的 C语言程序,看了 x86 体系结构下的汇编代码。眼尖的话,你应该能发现,每一 2022-08-23 专栏 > 深入浅出计算机组成原理
28 异常和中断:程序出错了怎么办? 28 异常和中断:程序出错了怎么办?过去这么多讲,我们的程序都是自动运行且正常运行的。自动运行的意思是说,我们的程序和指令都是一条条顺序执行,你不需要通过键盘或者网络给这个程序任何输入。正常运行是说,我们的程序都是能够正常执行下去的,没有遇到计算溢出之类的程序错误。 不过,现实的软件世界可没有这么简单。一方面,程序不仅是简单的执行指令,更多的还需要和外部的输入输出打交道。另一 2022-08-23 专栏 > 深入浅出计算机组成原理
30 GPU(上):为什么玩游戏需要使用GPU? 30 GPU(上):为什么玩游戏需要使用GPU?讲完了 CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为 GPU 的图形处理器。过去几年里,因为深度学习的大发展,GPU一下子火起来了,似乎 GPU 成了一个专为深度学习而设计的处理器。那 GPU 的架构究竟是怎么回事儿呢?它最早是用来做什么而被设计出来的呢? 想要理解 GPU 的设计,我们就要从 GPU 的老 2022-08-23 专栏 > 深入浅出计算机组成原理
31 GPU(下):为什么深度学习需要使用GPU? 31 GPU(下):为什么深度学习需要使用GPU?上一讲,我带你一起看了三维图形在计算机里的渲染过程。这个渲染过程,分成了顶点处理、图元处理、栅格化、片段处理,以及最后的像素操作。这一连串的过程,也被称之为图形流水线或者渲染管线。 因为要实时计算渲染的像素特别地多,图形加速卡登上了历史的舞台。通过 3dFx 的 Voodoo 或者 NVidia 的 TNT 这样的图形加速卡, 2022-08-23 专栏 > 深入浅出计算机组成原理
32 FPGA、ASIC和TPU(上):计算机体系结构的黄金时代 32 FPGA、ASIC和TPU(上):计算机体系结构的黄金时代过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从 1995 年微软发布 Windows 95开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金 Andreessen Horowitz 的合伙人 Marc Andreessen,在 2011年发表了[一篇博客](http 2022-08-23 专栏 > 深入浅出计算机组成原理
33 解读TPU:设计和拆解一块ASIC芯片 33 解读TPU:设计和拆解一块ASIC芯片过去几年,最知名、最具有实用价值的 ASIC 就是 TPU 了。各种解读 TPU 论文内容的文章网上也很多。不过,这些文章更多地是从机器学习或者 AI的角度,来讲解 TPU。 上一讲,我为你讲解了 FPGA 和 ASIC,讲解了 FPGA 如何实现通过“软件”来控制“硬件”,以及我们可以进一步把 FPGA 设计出来的电路变成一块AS 2022-08-23 专栏 > 深入浅出计算机组成原理
34 理解虚拟机:你在云上拿到的计算机是什么样的? 34 理解虚拟机:你在云上拿到的计算机是什么样的?上世纪 60年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用一台计算机。 缘起分时系统为了应对这两个问题,分时系统的计算机就应运而生了。 2022-08-23 专栏 > 深入浅出计算机组成原理
35 存储器层次结构全景:数据存储的大金字塔长什么样? 35 存储器层次结构全景:数据存储的大金字塔长什么样?今天开始,我们要进入到计算机另一个重要的组成部分,存储器。 如果你自己组装过 PC 机,你肯定知道,想要CPU,我们只要买一个就好了,但是存储器,却有不同的设备要买。比方说,我们要买内存,还要买硬盘。买硬盘的时候,不少人会买一块 SSD硬盘作为系统盘,还会买上一块大容量的 HDD 机械硬盘作为数据盘。内存和硬盘都是我们的存 2022-08-23 专栏 > 深入浅出计算机组成原理
36 局部性原理:数据库性能跟不上,加个缓存就好了? 36 局部性原理:数据库性能跟不上,加个缓存就好了?平时进行服务端软件开发的时候,我们通常会把数据存储在数据库里。而服务端系统遇到的第一个性能瓶颈,往往就发生在访问数据库的时候。这个时候,大部分工程师和架构师会拿出一种叫作“缓存”的武器,通过使用Redis 或者 Memcache 这样的开源软件,在数据库前面提供一层缓存的数据,来缓解数据库面临的压力,提升服务端的程序性能。 2022-08-23 专栏 > 深入浅出计算机组成原理