深入理解计算机系统(1)—— 系统硬件组成与存储器层次结构

1 系统的硬件组成


深入理解计算机系统(1)—— 系统硬件组成与存储器层次结构

1.1 总线

总线,一组贯穿整个系统的电子管,携带信息字节并负责在各个部件间传递。

通常总线被设计成传送定长的字节块,也就是字(word)。现在大多数机器字长(字中的字节数)有的是 4 个字节(32位),有个是 8 个字节(64位)。


1.2 I/O 设备

输入/输出(I/O)设备是系统与外部世界的联系通道。


1.3 主存

主存是一个临时存储设备,在处理器执行程序时,用来存放程序和程序处理的数据。

从物理上来说,主存是由一组动态随机存取存储器(DRAM)芯片组成。

从逻辑上来说,存储器是一个线性的字节数组,每个字节都有唯一的地址(即数组索引),这些地址是从 0 开始的。


1.4 处理器

*处理单元(CPU),简称处理器,是解释或执行存储在主存中指令的引擎。

处理器的核心是一个字长的存储设备(或寄存器),成为程序计数器(PC)。在任何时刻,PC 都指向主存中的某条机器语言指令(即含有该条指令的地址)。

CPU 在指令的要求下,可能会进行以下操作:

  • 加载:把一个字节或者一个字,从主存复制到寄存器,以覆盖寄存器原来的内容

  • 存储:把一个字节或者一个字,从寄存器复制到主存的某个位置,以覆盖这个位置上原来的内容

  • 操作:把两个寄存器的内容复制到 ALU,ALU 对这两个字做算术操作,并将结果存放到一个寄存器中,以覆盖该寄存器原来的内容

  • 跳转:从指令本身中抽取一个字,并将这个字复制到程序计数器(PC)中,以覆盖 PC 中原来的值


2 运行 hello 程序


shell 执行一系列指令来加载可执行的 hello 文件,将 hello 目标文件中的代码和数据从 磁盘 复制到 主存 ,一到目标文件 hello 中的代码被加载到主存,处理器就开始执行 hello 程序的 main 程序中的机器语言指令。

这些指令将“hello world”字符串中的字节从 主存 复制到 寄存器文件,再从 寄存器文件 复制到 显示设备,最终显示在屏幕上。

系统花费了大量的时间,把信息从一个地方移动到另外一个地方。


3 高速缓存


根据机械原理,较大的存储设备要比较小的存储设备运行得慢,而快速设备的造价远高于同类的低速设备。

高速缓存存储器(高速缓存),作为暂时的集结区域,用来存放处理器近期可能会需要的信息。

高速缓存的局部性原理:程序具有访问局部区域里的数据和代码的趋势。

深入理解计算机系统(1)—— 系统硬件组成与存储器层次结构


4 存储设备的层次结构


深入理解计算机系统(1)—— 系统硬件组成与存储器层次结构


5 参考资料


1、《深入理解计算机系统》