彭旭锐

Results 15 comments of 彭旭锐

感谢测试。辛苦贴下 build.gradle 相关配置

[《从图灵机到量子计算机,计算机可以解决所有问题吗?》](https://juejin.cn/post/7148390668614762503) 在构思到写作的过程中,我一直在思考应该以什么内容作为这个专栏的开篇,应该以什么内容来吸引住读者的眼球,也有过其它一些想法。最后,我决定抛开所有功利的想法,回归到一个最纯粹的计算机科学问题 —— “计算机可以解决所有问题吗?”。 ![](https://user-images.githubusercontent.com/25008934/193186814-74ed0657-b47c-47f5-8744-d8b1a2928d94.png)

[《一套用了 70 多年的计算机架构 —— 冯·诺依曼架构》](https://juejin.cn/post/7148723199818072095) 上一篇文章里,我们讨论了可计算问题与图灵机的计算机模型。在理解了图灵机模型后,我们将从和图灵同时代的另一位计算机科学家提出的 “冯·诺依曼架构” 开始,正式开始计算机组成原理的核心内容。 ![](https://user-images.githubusercontent.com/25008934/193186977-31164c18-897a-4f6c-bf66-9c0d51e93231.png)

[《计算机的存储器金字塔长什么样?》](https://juejin.cn/post/7157033848344150053/) ![Untitled](https://user-images.githubusercontent.com/25008934/197272938-fa37e6ff-0dff-4175-9e73-e1b9d64b8de0.png) 在计算机组成原理中的众多概念中,开发者接触得最多的还是内存、硬盘、虚拟内存、CPU 缓存这些概念。这些概念有一个更为抽象的表示 —— 存储器,它是冯 · 诺依曼计算机体系中的五大组件之一,用于存储程序和数据。在这个系列中,我将从存储器的金字塔结构展开,围绕 CPU 高速缓存、内存、硬盘、虚拟内存等内容逐步带你深入理解计算机中。

[《我把 CPU 三级缓存的秘密,藏在这 8 张图里》](https://juejin.cn/post/7157288161578745869) 在上一篇文章里,我们聊到了计算机存储器系统的金字塔结构,其中在 CPU 和内存之间有一层高速缓存,就是我们今天要聊的 CPU 三级缓存。那么,CPU Cache 的结构是怎样的,背后隐含着哪些设计思想,CPU Cache 和内存数据是如何关联起来的,今天我们将围绕这些问题展开。 ![Untitled](https://user-images.githubusercontent.com/25008934/197335697-1f793f7d-6c2c-4e35-8a0d-db22c40726e4.png)

[《图解计算机内部的高速公路 —— 总线系统》](https://juejin.cn/post/7158122900355022855) 在之前的文章中,我们聊到了计算机的冯·诺依曼计算机架构,计算机由五大部件组成。那么,计算机的五大部件是如何连接成一个整体的呢?这就需要依赖总线系统。 ![Untitled](https://user-images.githubusercontent.com/25008934/197752883-8d8489c6-8293-41df-b65a-c4c6398df9c3.png)

[《12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?》](https://juejin.cn/post/7158395475362578462) 在之前的文章里,我们聊到了 CPU 的三级缓存结构,提到 CPU 缓存就会一定会聊到 CPU 的缓存一致性问题。那么,什么是缓存一致性问题,CPU Cache 的读取和写入过程是如何执行的,MESI 缓存一致性协议又是什么?今天我们将围绕这些问题展开。 ![Untitled](https://user-images.githubusercontent.com/25008934/197752447-45a27ac1-e4e2-4379-9043-09ad92cc85b1.png)

[《已经有 MESI 协议,为什么还需要 volatile 关键字?》](https://juejin.cn/post/7159127308492603400/) 不知道你是不是跟我一样,在学习 MESI 协议的时候,自然地产生了一个疑问:在不考虑写缓冲区和失效队列的影响下,在硬件层面已经实现了缓存一致性,那么在 Java 语言层面为什么还需要定义 volatile 关键字呢?是多此一举吗?今天我们将围绕这些问题展开。 ![Untitled](https://user-images.githubusercontent.com/25008934/198253821-233f8bd8-8af7-456f-8ce6-875c0c1f88c4.png)

[《面试官:什么是伪共享,如何避免?》](https://juejin.cn/post/7159964489621635109) 在前面的文章里,我们聊到了 CPU 的高速缓存机制。由于 CPU 和内存的速度差距太大,现代计算机会在两者之间插入一块高速缓存。然而,CPU 缓存总能提高程序性能吗,有没有什么情况 CPU 缓存反而会成为程序的性能瓶颈?这就是我们今天要讨论的伪共享(False Sharing)。 ![](https://user-images.githubusercontent.com/25008934/198841503-2bfb603f-333a-4bee-81ed-6d3fe8aa86b7.png)

[《程序员学习 CPU 有什么用?》](https://juejin.cn/post/7166625448254767118) 在上一篇文章里,我们聊到了计算机的冯·诺依曼架构,以及计算机的五大部件:控制器、运算器、存储器、输入设备和输出设备。在现在计算机体系中,CPU 是整个计算机的核心,主要包含控制器和运算器两大部件。 在后续文章中,我们将从 CPU 的基本认识开始,逐步将 CPU 与执行系统、存储系统 和 I/O 系统串联起来,请关注。 ![](https://user-images.githubusercontent.com/25008934/202213485-b73e1afe-4209-423f-b882-26542e746462.png)