文章分类 -  极客时间

上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 45 下一页
摘要:我们在前面的章节搭建了最简单的电路,在这里面,计算机的输入设备就是一个一个开关,输出设备呢,是一个一个灯泡。的确,早期发展的时候,计算机的核心是做“计算”。我们从“计算机”这个名字上也能看出这一点。不管是中文名字“计算机”,还是英文名字“Computer”,核心都是在”计算“这两个字上。不过,到了今 阅读全文
posted @ 2023-01-03 10:39 易先讯 阅读(24) 评论(0) 推荐(0)
摘要:专栏讲到现在,如果我再问你,计算机五大组成部分是什么,应该没有人不知道了吧?我们这一节要讲的内容,依然要围绕这五大部分,控制器、运算器、存储器、输入设备和输出设备。 CPU所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。那问题来了,CPU从我们的键盘、鼠标接收输入 阅读全文
posted @ 2023-01-03 10:38 易先讯 阅读(6) 评论(0) 推荐(0)
摘要:机器指令里面的内存地址都是虚拟内存地址。程序里面的每一个进程,都有一个属于自己的虚拟内存地址空间。我们可以通过地址转换来获得最终的实际物理地址。我们每一个指令都存放在内存里面,每一条数据都存放在内存里面。因此,“地址转换”是一个非常高频的动作,“地址转换”的性能就变得至关重要了。这就是我们今天要讲的 阅读全文
posted @ 2023-01-03 10:38 易先讯 阅读(22) 评论(0) 推荐(0)
摘要:我们在专栏一开始说过,计算机有五大组成部分,分别是:运算器、控制器、存储器、输入设备和输出设备。如果说计算机最重要的组件,是承担了运算器和控制器作用的CPU,那内存就是我们第二重要的组件了。内存是五大组成部分里面的存储器,我们的指令和数据,都需要先加载到内存里面,才会被CPU拿去执行。 专栏第9讲, 阅读全文
posted @ 2023-01-03 10:38 易先讯 阅读(11) 评论(0) 推荐(0)
摘要:你平时用的电脑,应该都是多核的CPU。多核CPU有很多好处,其中最重要的一个就是,它使得我们在不能提升CPU的主频之后,找到了另一种提升CPU吞吐率的办法。 不知道上一讲的内容你还记得多少?上一节,我们讲到,多核CPU里的每一个CPU核,都有独立的属于自己的L1 Cache和L2 Cache。多个C 阅读全文
posted @ 2023-01-03 10:37 易先讯 阅读(11) 评论(0) 推荐(0)
摘要:在我工作的十几年里,写了很多Java的程序。同时,我也面试过大量的Java工程师。对于一些表示自己深入了解和擅长多线程的同学,我经常会问这样一个面试题:“volatile这个关键字有什么作用?”如果你或者你的朋友写过Java程序,不妨来一起试着回答一下这个问题。 就我面试过的工程师而言,即使是工作了 阅读全文
posted @ 2023-01-03 10:37 易先讯 阅读(5) 评论(0) 推荐(0)
摘要:在这一节内容开始之前,我们先来看一个3行的小程序。你可以猜一猜,这个程序里的循环1和循环2,运行所花费的时间会差多少?你可以先思考几分钟,然后再看我下面的解释。 int[] arr = new int[64 * 1024 * 1024]; // 循环1 for (int i = 0; i < arr 阅读全文
posted @ 2023-01-03 10:36 易先讯 阅读(7) 评论(0) 推荐(0)
摘要:今天开始,我们要进入到计算机另一个重要的组成部分,存储器。 如果你自己组装过PC机,你肯定知道,想要CPU,我们只要买一个就好了,但是存储器,却有不同的设备要买。比方说,我们要买内存,还要买硬盘。买硬盘的时候,不少人会买一块SSD硬盘作为系统盘,还会买上一块大容量的HDD机械硬盘作为数据盘。内存和硬 阅读全文
posted @ 2023-01-03 10:35 易先讯 阅读(10) 评论(0) 推荐(0)
摘要:上世纪60年代,计算机还是异常昂贵的设备,实际的计算机使用需求要面临两个挑战。第一,计算机特别昂贵,我们要尽可能地让计算机忙起来,一直不断地去处理一些计算任务。第二,很多工程师想要用上计算机,但是没有能力自己花钱买一台,所以呢,我们要让很多人可以共用一台计算机。 缘起分时系统 为了应对这两个问题,分 阅读全文
posted @ 2023-01-03 10:35 易先讯 阅读(9) 评论(0) 推荐(0)
摘要:过去几年,最知名、最具有实用价值的ASIC就是TPU了。各种解读TPU论文内容的文章网上也很多。不过,这些文章更多地是从机器学习或者AI的角度,来讲解TPU。 上一讲,我为你讲解了FPGA和ASIC,讲解了FPGA如何实现通过“软件”来控制“硬件”,以及我们可以进一步把FPGA设计出来的电路变成一块 阅读全文
posted @ 2023-01-03 10:35 易先讯 阅读(8) 评论(0) 推荐(0)
摘要:过去很长一段时间里,大家在讲到高科技、互联网、信息技术的时候,谈的其实都是“软件”。从1995年微软发布Windows 95开始,高科技似乎就等同于软件业和互联网。著名的风险投资基金Andreessen Horowitz的合伙人Marc Andreessen,在2011年发表了一篇博客,声称“Sof 阅读全文
posted @ 2023-01-03 10:34 易先讯 阅读(10) 评论(0) 推荐(0)
摘要:上一讲,我带你一起看了三维图形在计算机里的渲染过程。这个渲染过程,分成了顶点处理、图元处理、 栅格化、片段处理,以及最后的像素操作。这一连串的过程,也被称之为图形流水线或者渲染管线。 因为要实时计算渲染的像素特别地多,图形加速卡登上了历史的舞台。通过3dFx的Voodoo或者NVidia的TNT这样 阅读全文
posted @ 2023-01-03 10:34 易先讯 阅读(11) 评论(0) 推荐(0)
摘要:讲完了CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为GPU的图形处理器。过去几年里,因为深度学习的大发展,GPU一下子火起来了,似乎GPU成了一个专为深度学习而设计的处理器。那GPU的架构究竟是怎么回事儿呢?它最早是用来做什么而被设计出来的呢? 想要理解GPU的设计,我们就要从G 阅读全文
posted @ 2023-01-03 10:33 易先讯 阅读(13) 评论(0) 推荐(0)
摘要:我在第5讲讲计算机指令的时候,给你看过MIPS体系结构计算机的机器指令格式。MIPS的指令都是固定的32位长度,如果要用一个打孔卡来表示,并不复杂。 MIPS机器码的长度都是固定的32位 第6讲的时候,我带你编译了一些简单的C语言程序,看了x86体系结构下的汇编代码。眼尖的话,你应该能发现,每一条机 阅读全文
posted @ 2023-01-03 10:33 易先讯 阅读(5) 评论(0) 推荐(0)
摘要:过去这么多讲,我们的程序都是自动运行且正常运行的。自动运行的意思是说,我们的程序和指令都是一条条顺序执行,你不需要通过键盘或者网络给这个程序任何输入。正常运行是说,我们的程序都是能够正常执行下去的,没有遇到计算溢出之类的程序错误。 不过,现实的软件世界可没有这么简单。一方面,程序不仅是简单的执行指令 阅读全文
posted @ 2023-01-03 10:33 易先讯 阅读(10) 评论(0) 推荐(0)
摘要:上一讲里呢,我进一步为你讲解了CPU里的“黑科技”,分别是超标量(Superscalar)技术和超长指令字(VLIW)技术。 超标量(Superscalar)技术能够让取指令以及指令译码也并行进行;在编译的过程,超长指令字(VLIW)技术可以搞定指令先后的依赖关系,使得一次可以取一个指令包。 不过, 阅读全文
posted @ 2023-01-03 10:32 易先讯 阅读(14) 评论(0) 推荐(0)
摘要:到今天为止,专栏已经过半了。过去的20多讲里,我给你讲的内容,很多都是围绕着怎么提升CPU的性能这个问题展开的。 我们先回顾一下第4讲,不知道你是否还记得这个公式: 程序的CPU执行时间 = 指令数 × CPI × Clock Cycle Time 这个公式里,有一个叫CPI的指标。我们知道,CPI 阅读全文
posted @ 2023-01-03 10:32 易先讯 阅读(37) 评论(0) 推荐(0)
摘要:过去三讲,我主要为你介绍了结构冒险和数据冒险,以及增加资源、流水线停顿、操作数前推、乱序执行,这些解决各种“冒险”的技术方案。 在结构冒险和数据冒险中,你会发现,所有的流水线停顿操作都要从指令执行阶段开始。流水线的前两个阶段,也就是取指令(IF)和指令译码(ID)的阶段,是不需要停顿的。CPU会在流 阅读全文
posted @ 2023-01-03 10:32 易先讯 阅读(12) 评论(0) 推荐(0)
摘要:过去两讲,我为你讲解了通过增加资源、停顿等待以及主动转发数据的方式,来解决结构冒险和数据冒险问题。对于结构冒险,由于限制来自于同一时钟周期不同的指令,要访问相同的硬件资源,解决方案是增加资源。对于数据冒险,由于限制来自于数据之间的各种依赖,我们可以提前把数据转发到下一个指令。 但是即便综合运用这三种 阅读全文
posted @ 2023-01-03 10:31 易先讯 阅读(8) 评论(0) 推荐(0)
摘要:上一讲,我为你讲解了结构冒险和数据冒险,以及应对这两种冒险的两个解决方案。一种方案是增加资源,通过添加指令缓存和数据缓存,让我们对于指令和数据的访问可以同时进行。这个办法帮助CPU解决了取指令和访问数据之间的资源冲突。另一种方案是直接进行等待。通过插入NOP这样的无效指令,等待之前的指令完成。这样我 阅读全文
posted @ 2023-01-03 10:31 易先讯 阅读(12) 评论(0) 推荐(0)

上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 45 下一页