计算机系统的硬件组成

计算机系统的硬件组成

1.总线:贯穿整个系统的管道,用于在各个组件中传递定长的字节块()。字长在不同系统中各不相同,要么是4个字节(32位),要么是8个字节(64位)。

2.I/O设备:是系统与外界的连接通道,例如:鼠标、键盘、显示器、磁盘等等。每个I/O设备连接I/O总线都需要一个控制器或者适配器,用于在I/O设备和I/O总线间传递信息。(控制器和适配器的区别在于他们的封装方式)

3.主存:主存是一个临时的存储设备,用于存储CPU执行程序时的程序和处理的数据。物理上来讲,它是一组动态随机存取存储器芯片,逻辑上讲,存储器是一个线性的字节数组,每个字节都有唯一的地址(数组索引)。

4.寄存器文件:多个寄存器组成的阵列。用于CPU和运算部件之间存储暂存数据。

5.处理器:*处理单元(CPU)。是解释存储在主存中指令的引擎。核心是程序计数器(PC),一个大小为一个字的存储设备(或寄存器)。在任何时刻,PC都指向主存中的某条机器语言指令(指含有指令的地址)。从通电开始,CPU就不停的执行程序计数器指向的指令,再更新程序计数器,指向下一条指令。整个过程,CPU会执行很多的简单步骤,例如:

  • 加载:从主存复制一个字节或者字到寄存器,覆盖寄存器原来的内容
  • 存储:从寄存器复制一个字节或字到主存的某个位置,覆盖这个位置上原来的内容
  • 操作:将两个寄存器的内容复制到ALU运算单元,执行算术运算和逻辑运算),对两个字做算术运算,并将结果放到一个寄存器中,覆盖原来的内容
  • 跳转:从指令中抽取一个字,复制到程序计数器中,覆盖原来的内容

详细的执行步骤

以一个简单的例子来解释,假设计算机中存在一个hello可执行文件,我们在shell(命令解释器)中调用它,最后会在显示器打印hello, world的字符串。这中间发生了什么呢?

1.shell程序等待我们输入命令,我们在键盘输入./hello后,shell程序将字符逐一读入寄存器中,再将其放入内存中:
计算机系统的硬件组成

2.当我敲了回车键后,shell知道我们已经结束了命令的输入,然后将hello目标文件的代码和数据从磁盘复制到主存中。
计算机系统的硬件组成

3.一旦hello文件中的代码和数据被加载到了主存中,CPU就开始执行程序里的main程序的机器语言指令。这些指令将hello, world字符串从主存中复制到寄存器文件,再从寄存器文件复制到显示设备,展示到屏幕上。
计算机系统的硬件组成