37 理解CPU Cache(上):“4毫秒”究竟值多少钱? 37 理解CPU Cache(上):“4毫秒”究竟值多少钱?在这一节内容开始之前,我们先来看一个 3 行的小程序。你可以猜一猜,这个程序里的循环 1 和循环2,运行所花费的时间会差多少?你可以先思考几分钟,然后再看我下面的解释。 int[] arr = new int[64 * 1024 * 1024]; // 循环 1 for (int i = 0; i < 2022-08-23 专栏 > 深入浅出计算机组成原理
38 高速缓存(下):你确定你的数据更新了么? 38 高速缓存(下):你确定你的数据更新了么?在我工作的十几年里,写了很多 Java 的程序。同时,我也面试过大量的 Java工程师。对于一些表示自己深入了解和擅长多线程的同学,我经常会问这样一个面试题:“ volatile 这个关键字有什么作用? ”如果你或者你的朋友写过Java 程序,不妨来一起试着回答一下这个问题。 就我面试过的工程师而言,即使是工作了多年的 Java 2022-08-23 专栏 > 深入浅出计算机组成原理
39 MESI协议:如何让多核CPU的高速缓存保持一致? 39 MESI协议:如何让多核CPU的高速缓存保持一致?你平时用的电脑,应该都是多核的 CPU。多核 CPU 有很多好处,其中最重要的一个就是,它使得我们在不能提升 CPU 的主频之后,找到了另一种提升 CPU吞吐率的办法。 不知道上一讲的内容你还记得多少?上一节,我们讲到,多核 CPU 里的每一个 CPU 核,都有独立的属于自己的 L1 Cache 和 L2 Cache。多 2022-08-23 专栏 > 深入浅出计算机组成原理
40 理解内存(上):虚拟内存和内存保护是什么? 40 理解内存(上):虚拟内存和内存保护是什么?我们在专栏一开始说过,计算机有五大组成部分,分别是:运算器、控制器、存储器、输入设备和输出设备。如果说计算机最重要的组件,是承担了运算器和控制器作用的CPU,那内存就是我们第二重要的组件了。内存是五大组成部分里面的存储器,我们的指令和数据,都需要先加载到内存里面,才会被 CPU 拿去执行。 专栏第 9讲,我们讲了程序装载到内存的 2022-08-23 专栏 > 深入浅出计算机组成原理
42 总线:计算机内部的高速公路 42 总线:计算机内部的高速公路专栏讲到现在,如果我再问你,计算机五大组成部分是什么,应该没有人不知道了吧?我们这一节要讲的内容,依然要围绕这五大部分,控制器、运算器、存储器、输入设备和输出设备。 CPU 所代表的控制器和运算器,要和存储器,也就是我们的主内存,以及输入和输出设备进行通信。那问题来了,CPU从我们的键盘、鼠标接收输入信号,向显示器输出信号,这之间究竟是怎么通信 2022-08-23 专栏 > 深入浅出计算机组成原理
41 理解内存(下):解析TLB和内存保护 41 理解内存(下):解析TLB和内存保护机器指令里面的内存地址都是虚拟内存地址。程序里面的每一个进程,都有一个属于自己的虚拟内存地址空间。我们可以通过地址转换来获得最终的实际物理地址。我们每一个指令都存放在内存里面,每一条数据都存放在内存里面。因此,“地址转换”是一个非常高频的动作,“地址转换”的性能就变得至关重要了。这就是我们今天要讲的第一个问题 ,也就是 性能问题 。 2022-08-23 专栏 > 深入浅出计算机组成原理
43 输入输出设备:我们并不是只能用灯泡显示“0”和“1” 43 输入输出设备:我们并不是只能用灯泡显示“0”和“1”我们在前面的章节搭建了最简单的电路,在这里面,计算机的输入设备就是一个一个开关,输出设备呢,是一个一个灯泡。的确,早期发展的时候,计算机的核心是做“计算”。我们从“计算机”这个名字上也能看出这一点。不管是中文名字“计算机”,还是英文名字“Computer”,核心都是在”计算“这两个字上。不过,到了今天,这些“计算”的工 2022-08-23 专栏 > 深入浅出计算机组成原理
44 理解IO_WAIT:IO性能到底是怎么回事儿? 44 理解IO_WAIT:IO性能到底是怎么回事儿?在专栏一开始的时候,我和你说过,在计算机组成原理这门课里面,很多设计的核心思路,都来源于性能。在前面讲解 CPU 的时候,相信你已经有了切身的感受了。 大部分程序员开发的都是应用系统。在开发应用系统的时候,我们遇到的性能瓶颈大部分都在 I/O 上。在第 36讲讲解局部性原理的时候,我们一起看了通过把内存当作是缓存, 2022-08-23 专栏 > 深入浅出计算机组成原理
46 SSD硬盘(上):如何完成性能优化的KPI? 46 SSD硬盘(上):如何完成性能优化的KPI?随着 3D 垂直封装技术和 QLC 技术的出现,今年的“618”,SSD 硬盘的价格进一步大跳水,趁着这个机会,我把自己电脑上的仓库盘,从 HDD 换成了SSD 硬盘。我的个人电脑彻底摆脱了机械硬盘。 随着智能手机的出现,互联网用户在 2008 年之后开始爆发性增长,大家在网上花的时间也越来越多。这也就意味着,隐藏在精美 Ap 2022-08-23 专栏 > 深入浅出计算机组成原理
45 机械硬盘:Google早期用过的“黑科技” 45 机械硬盘:Google早期用过的“黑科技”在 1991 年,我刚接触计算机的时候,很多计算机还没有硬盘。整个操作系统都安装在 5 寸或者 3.5寸的软盘里。不过,很快大部分计算机都开始用上了直接安装在主板上的机械硬盘。到了今天,更早的软盘早已经被淘汰了。在个人电脑和服务器里,更晚出现的光盘也已经很少用了。 机械硬盘的生命力仍然非常顽强。无论是作为个人电脑的数据盘,还是在 2022-08-23 专栏 > 深入浅出计算机组成原理