AndroidFamily icon indicating copy to clipboard operation
AndroidFamily copied to clipboard

《小彭说·计算机组成原理》更新中...

Open pengxurui opened this issue 3 years ago • 10 comments

计算机组成原理是计算机科学中最基础的理论知识,你越早掌握这些知识,你就能越早享受知识带来的 "复利效应"。

计算机组成原理-v0 1

pengxurui avatar Sep 30 '22 03:09 pengxurui

《从图灵机到量子计算机,计算机可以解决所有问题吗?》

在构思到写作的过程中,我一直在思考应该以什么内容作为这个专栏的开篇,应该以什么内容来吸引住读者的眼球,也有过其它一些想法。最后,我决定抛开所有功利的想法,回归到一个最纯粹的计算机科学问题 —— “计算机可以解决所有问题吗?”。

pengxurui avatar Sep 30 '22 03:09 pengxurui

《一套用了 70 多年的计算机架构 —— 冯·诺依曼架构》

上一篇文章里,我们讨论了可计算问题与图灵机的计算机模型。在理解了图灵机模型后,我们将从和图灵同时代的另一位计算机科学家提出的 “冯·诺依曼架构” 开始,正式开始计算机组成原理的核心内容。

pengxurui avatar Sep 30 '22 03:09 pengxurui

《计算机的存储器金字塔长什么样?》 Untitled 在计算机组成原理中的众多概念中,开发者接触得最多的还是内存、硬盘、虚拟内存、CPU 缓存这些概念。这些概念有一个更为抽象的表示 —— 存储器,它是冯 · 诺依曼计算机体系中的五大组件之一,用于存储程序和数据。在这个系列中,我将从存储器的金字塔结构展开,围绕 CPU 高速缓存、内存、硬盘、虚拟内存等内容逐步带你深入理解计算机中。

pengxurui avatar Oct 21 '22 19:10 pengxurui

《我把 CPU 三级缓存的秘密,藏在这 8 张图里》

在上一篇文章里,我们聊到了计算机存储器系统的金字塔结构,其中在 CPU 和内存之间有一层高速缓存,就是我们今天要聊的 CPU 三级缓存。那么,CPU Cache 的结构是怎样的,背后隐含着哪些设计思想,CPU Cache 和内存数据是如何关联起来的,今天我们将围绕这些问题展开。

Untitled

pengxurui avatar Oct 22 '22 11:10 pengxurui

《图解计算机内部的高速公路 —— 总线系统》

在之前的文章中,我们聊到了计算机的冯·诺依曼计算机架构,计算机由五大部件组成。那么,计算机的五大部件是如何连接成一个整体的呢?这就需要依赖总线系统。

Untitled

pengxurui avatar Oct 25 '22 10:10 pengxurui

《12 张图看懂 CPU 缓存一致性与 MESI 协议,真的一致吗?》

在之前的文章里,我们聊到了 CPU 的三级缓存结构,提到 CPU 缓存就会一定会聊到 CPU 的缓存一致性问题。那么,什么是缓存一致性问题,CPU Cache 的读取和写入过程是如何执行的,MESI 缓存一致性协议又是什么?今天我们将围绕这些问题展开。

Untitled

pengxurui avatar Oct 25 '22 10:10 pengxurui

《已经有 MESI 协议,为什么还需要 volatile 关键字?》

不知道你是不是跟我一样,在学习 MESI 协议的时候,自然地产生了一个疑问:在不考虑写缓冲区和失效队列的影响下,在硬件层面已经实现了缓存一致性,那么在 Java 语言层面为什么还需要定义 volatile 关键字呢?是多此一举吗?今天我们将围绕这些问题展开。

Untitled

pengxurui avatar Oct 27 '22 09:10 pengxurui

《面试官:什么是伪共享,如何避免?》

在前面的文章里,我们聊到了 CPU 的高速缓存机制。由于 CPU 和内存的速度差距太大,现代计算机会在两者之间插入一块高速缓存。然而,CPU 缓存总能提高程序性能吗,有没有什么情况 CPU 缓存反而会成为程序的性能瓶颈?这就是我们今天要讨论的伪共享(False Sharing)。

pengxurui avatar Oct 29 '22 16:10 pengxurui

《程序员学习 CPU 有什么用?》

在上一篇文章里,我们聊到了计算机的冯·诺依曼架构,以及计算机的五大部件:控制器、运算器、存储器、输入设备和输出设备。在现在计算机体系中,CPU 是整个计算机的核心,主要包含控制器和运算器两大部件。

在后续文章中,我们将从 CPU 的基本认识开始,逐步将 CPU 与执行系统、存储系统 和 I/O 系统串联起来,请关注。

pengxurui avatar Nov 16 '22 14:11 pengxurui

《为什么计算机中的负数要用补码表示?》

在前面的文章里,我们聊到了计算机的冯·诺依曼架构的 3 个基本原则。其中第 1 个原则是计算机中所有信息都是采用二进制格式的编码。也就是说,在计算机中程序的数据和指令,以及用户输入的所有数据,计算机都需要把它们转换为二进制的格式,才能进行识别和运算。

然而,我们日常生活接触到的大部分数字却是十进制编码,例如手机号码、工牌号、学号。那为什么计算机要使用二进制数制?二进制数据如何进行运算,以及计算机做了哪些优化来如何提高运算的效率?今天我们就围绕这些问题展开。

Untitled

pengxurui avatar Nov 25 '22 14:11 pengxurui