计算机组成原理 - CPU 的指令周期和数据通路建设

我们知道,在 冯·诺依曼 的提出的计算机模型中,计算机是由五大部分组成:运算器、控制器、存储器、输入设备、输出设备。

其中,运算器和控制器一般会放在一起,即我们的 CPU (中央处理器),负责指令读取和计算。

指令一般分为三类,R 型:进行算术操作、逻辑操作;I 型:进行数据传输、条件分支;J 型:地址跳转。

有了这些基础,那么完整的 CPU 是怎么运转起来的呢。

Read More

计算机组成原理 - 浮点数和定点数

如果你有 python 或者 node 的命令行终端,或者浏览器里面的 Console,你可以做个测试,输入 0.3 + 0.6 看下值究竟是多少。

1
2
3
4
Welcome to Node.js v12.16.1.
Type ".help" for more information.
> 0.3+0.6
0.8999999999999999

Read More

计算机组成原理 - 二进制编码,电路

所有数据,字符串,整数等一切事物在计算机里,都是通过 0 和 1 来组成,也就是用二进制表示。二进制的特点就是「逢二进一」。

同时为了应对负数,采用了补码表示法,即第一位既作为符号位,同时也参与运算。比如 4 位二进制数,从 1000 到 0111,表示的范围在 -8 到 7 之间的 16 个数,不会浪费任何一个位。

有了补码表示负数,整数相加也变得很容易,不需要做任何特殊处理,只是把它当成普通的二进制相加,就能得到正确的结果。

Read More

计算机组成原理 - 程序的链接,装载和执行

本文打算从 ELF文件格式静态链接,程序装载,动态链接三个方面来分析一下,程序如何链接,装载和执行的。

Read More

计算机组成原理 - 指令

CPU 能处理的只有指令,我们写的程序归根结底就是指令,高级语言只有翻译成机器码,即计算机能够识别的指令,才能够被执行。

Read More

计算机组成原理 - 性能和功耗

什么是性能?我们一般这样定义:

1
性能 = 1 / 响应时间

除了响应时间,吞吐率也是衡量性能的一个指标。一般通过 CPU 的多核,或者水平增加机器来提示吞吐率,从而提高单位时间的任务处理速度。

Read More