计算机组成原理知识地图
计算机的基本组成
- 五大基本组件:
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
- 计算机的两个核心指标:性能和功耗。
计算机的指令和计算
- 控制器
- 一条条指令执行的控制过程由控制器控制。
- 程序是怎么通过编译器和汇编器,变成一条条机器指令这样的编译过程?
- 操作系统是怎么链接、装载、执行程序的?
- 运算器
- 从二进制和编码开始,理解数据在计算机里的表示,以及怎么从数字电路层面,实现加法、乘法这些基本的运算功能的。
- 实现这些运算功能的ALU(Arithmetic Logic Unit/ALU),也就是算术逻辑单元。
CPU 的设计
- CPU 时钟可以用来构造寄存器和内存的锁存器和触发器。
- 为什么需要 CPU 时钟(CPU Clock)?
- 寄存器和内存是用什么样的硬件组成?
- 整个计算机的数据通路是如何构造出来的?
- 数据通路,其实就是连接了整个运算器和控制器,并最终组成了 CPU。
- 出于对于性能和功耗的考虑,要进一步理解和掌握面向流水线设计的 CPU、数据和控制冒险,以及分支预测的相关技术。
- 既然 CPU 作为控制器要和输入输出设备通信,那么就要知道异常和中断发生的机制。
- 如何直接在 CPU 层面,通过 SIMD 来支持并行计算?
存储器的原理
- 通过存储器的层次结构作为基础的框架引导,需要掌握从上到下的 CPU 高速缓存、内存、SSD 硬盘和机械硬盘的工作原理,它们之间的性能差异,以及实际应用中利用这些设备会遇到的挑战。
- 存储器其实很多时候又扮演了输入输出设备的角色,所以需要进一步了解,CPU 和这些存储器之间是如何进行通信的,以及性能问题是怎么一回事?
- 理解什么是 IO_WAIT,如何通过 DMA 来提升程序性能?
- 对于存储器,不仅需要它们能够正常工作,还要确保里面的数据不能丢失。于是要掌握如何通过 RAID、Erasure Code、ECC 以及分布式 HDFS,这些不同的技术,来确保数据的完整性和访问性能。