Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
pengxurui opened this issue Sep 30, 2022 · 10 comments
Open

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

pengxurui opened this issue Sep 30, 2022 · 10 comments
Assignees
Labels
专栏 Special Column

Comments

@pengxurui
Copy link
Owner

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

计算机组成原理-v0 1

@pengxurui pengxurui added the 计划 New article coming soon label Sep 30, 2022
@pengxurui pengxurui self-assigned this Sep 30, 2022
@pengxurui
Copy link
Owner Author

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

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

@pengxurui
Copy link
Owner Author

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

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

@pengxurui
Copy link
Owner Author

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

@pengxurui pengxurui added 专栏 Special Column and removed 计划 New article coming soon labels Oct 22, 2022
@pengxurui
Copy link
Owner Author

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

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

Untitled

@pengxurui
Copy link
Owner Author

pengxurui commented Oct 25, 2022

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

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

Untitled

@pengxurui
Copy link
Owner Author

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

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

Untitled

@pengxurui
Copy link
Owner Author

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

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

Untitled

@pengxurui
Copy link
Owner Author

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

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

@pengxurui
Copy link
Owner Author

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

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

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

@pengxurui
Copy link
Owner Author

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

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

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

Untitled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
专栏 Special Column
Projects
None yet
Development

No branches or pull requests

1 participant