计算机组成原理:计算机硬件组成细化
计算机组成原理:计算机硬件组成细化
计算机硬件系统主要由运算器、主存储器和控制器三大部件组成。这些部件协同工作,共同完成计算机的各种计算任务。
运算器
运算器是计算机的执行部件,用于进行算术运算和逻辑运算。
- 算术运算:按算术运算规则进行的运算,如加、减、乘、除
- 逻辑运算:包括与、或、非、异或、比较、移位等运算
对于运算器,除了其核心组件算术逻辑单元(ALU),还包含累加器(ACC)、乘商寄存器(MQ)和操作数寄存器(X)等寄存器。
当ALU执行算术功能时,数据的存储位置如下:
加法操作过程
减法操作过程
乘法操作过程
除法操作过程
主存储器
在执行算术操作时,都需要先取出存放在主存储器中地址为 M 的存储单元中的内容(M),送到某个寄存器中。
主存储器通常包括以下组件:
- 存储体
- 存储器地址寄存器(MAR)
- 存储器数据寄存器(MDR)
存储体由很多个存储单元组成,每个存储单元由若干个存储元件组成,每个存储元件能存储一位二进制数“0”或“1”
一个存储单元中可存储一串二进制信息,称这串二进制信息为一个存储字,这串二进制信息的位数称为存储字长(可以是8位、16位或32位等)。
地址寄存器 MAR
为了能够找到存储体中的某个存储单元,进而对其实现访问(读取或写入),我们对给每个存储单元都赋予一个编号,称为存储单元的地址。
使用存储器地址寄存器(MAR)(Memory Address Register),用来存放欲访问的存储单元的地址,当 CPU 要访问主存储器中的某个存储单元时,首先要将该存储单元的地址送到存储器地址寄存器MAR,以便让主存储器知道,具体要访问内部哪个存储单元。
MAR的位数(长度,也就是自身可以存储二进制比特的数量),决定了存储单元的数量
在下图的示例中,假设存储字长为 16 位,则有2 16 2^{16}216= 65536 个存储单元,每个存储单元的存储字长为 16 位,存储体的总容量为:
需要注意的是,在计算机存储单位中,K、M、G、T,分别对应2 10 2^{10}210、2 20 2^{20}220、2 30 2^{30}230、2 40 2^{40}240,而在计算机网络中,其用于表示速率单位时,分别对应1 0 3 10^3103、1 0 6 10^6106、1 0 9 10^9109、1 0 12 10^{12}1012。
数据寄存器 MDR
存储器数据寄存器(MDR)(Memory Data Register),用来存放从存储的某个存储单元取出的信息或者准备往某个存储单元存入的信息。MDR的位数(长度),与一个存储单元可存储二进制比特的数量(存储字长)相等。
主存(内存)的这种按存储单元的地址来实现对其写入和读取的存取操作,需要在CPU中的控制器的控制下进行。
控制器
控制器中除了核心组成部分控制单元(CU)外,程序计数器(PC)(Program Controller)和指令寄存器(IR)(Instruction Register)
控制器是计算机的神经中枢, 由它指挥各部件自动、协调地工作:
- 取指过程(阶段):控制从主存中读取一条指令
- 分析过程(阶段):对指令进行分析,指出该指令要完成何种操作,并按寻址特征指明操作数的地址
- 执行过程(阶段):根据指令的操作码和操作数所在的地址完成某种操作
控制单元(CU)用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
程序计数器 PC
程序计数器(PC)用来存放当前欲执行指令的地址
- PC与MAR之间有一条直接通路。
- PC自动形成下一条指令的地址(“自动加1"功能)
指令寄存器 IR
指令寄存器(IR)用来存放当前的指令
- IR的内容来自MDR。
- IR中的操作码(用OP(IR)表示) 会送至CU(用OP(IR) → CU表示) ,用来分析指令。
- IR中的地址码(用Ad(IR)表示)作为操作数的地址送至MAR(用Ad(IR) →MAR表示),用来从内存中取操作数。
现代计算机中,一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称外部设备,简称外设。