前言

在本篇中,你将掌握

主机的三大部分:主存储器、运算器、控制器的组成

主机的工作流程(注:工作流程可参照视频学习,效果更好)

1 主存储器

主机存储架构图 主机箱里的存储器_认识计算机主机箱各部件

主存储器中用于存放数据的叫做存储体,还有两个寄存器 MAR(存储地址寄存器)和 MDR(存储数据寄存器)。

注:现在的计算机通常把MAR、MDR也集成在CPU内

主机存储架构图 主机箱里的存储器_主机存储架构图_02

存储体:数据在存储体内按地址存储。

存储单元:一整个存储体会被分成多个存储单元,

存储字:每一个存储单元会存放一串二进制代码,每个单元里存储的二进制代码称为一个存储字(word), 存储字长:而每个存储字包含的二进制个数就叫做存储字长。

存储元:用于存储二进制的电子元件叫存储元,每个存储元可存1bit。

因此,MAR位数 = 反映了存储单元个数,MDR位数 = 存储字长。如MAR = 4位,那么有2

4

2^424个存储单元;MDR = 16位,那么每个存储单元可存放16bit,一个字(word)= 16bit。

注意,1个字节(Byte)= 8 bit,而一个字到底有多少bit要看主存储器中MDR的位数。在描述时,通常以1B代表一个字节,1b表示1bit。

2 运算器

主机存储架构图 主机箱里的存储器_认识计算机主机箱各部件_03

运算器,用于实现算术运算和逻辑运算。

一个运算器最主要的部件有:

ACC:累加寄存器,用于存放操作数,或运算结果

MQ:乘商寄存器,在乘、除运算时,用于存放操作数,或运算结果

X:通用的操作数寄存器,用于存放操作数

ALU:算数逻辑单元,内部集成复杂电路实现算数运算、逻辑运算

3 控制器

主机存储架构图 主机箱里的存储器_存储体_04

控制器,指挥程序运行。

控制器中有三个必不可少的部件:

CU:控制单元,分析指令,给出控制信号

IR:指令寄存器,存放当前执行的指令

PC:程序计数器,存放下一条指令地址,有自动加1功能

对于计算机而言,最主要的就是执行代码,代码也就是一条一条的指令,完成一条指令需要:

取指令 ,根据PC的指令地址取出指令

分析指令 , 从PC取出的指令会放到IR中

执行指令 , CU分析这条指令要做什么

别称,前两阶段被称为取指,最后一个阶段称为执行。

4 工作过程

主机存储架构图 主机箱里的存储器_主机存储架构图_05

上述的定义是抽象不容易理解的,因此让我们看一个例子来辅助学习理解。

比如我们可以用C语言写这样一段程序

int a=2,b=3,c=1,y=0;

void main(){

y = a * b + c;

}

编译装入主存的形式如上图,主存地址0-4存放了指令,5-8存放了数据。

主机存储架构图 主机箱里的存储器_存储体_06

具体而言,指令和数据都被存放在了上图的存储体中

初:(PC) = 0,指向第一条指令的存储地址

#1:(PC) -> MAR,导致(MAR)= 0

#2:M(MAR)-> (MDR),导致(MDR) = 000001 0000000101

#3:(MDR)-> IR,导致(IR)= 000001 0000000101

#4:前六位的操作码会被送到CU,CU分析后得知,这是“取数”的指令

#5 Ad(IR)-> MAR,指令的地址码送到MAR,导致(MAR)= 5

#6 M(MAR)-> MDR,导致(MDR)= 0000010000000101 = 2

#7 (MDR)-> ACC,导致(ACC) = 0000010000000101 = 2

取指令(#1-#3)、分析指令(#4)、执行取数指令(#5-#7),执行顺序如下

主机存储架构图 主机箱里的存储器_运算器_07

CPU区分指令和数据的依据:指令周期的不同阶段

5 小结

主机存储架构图 主机箱里的存储器_运算器_08

本篇小结,主机 = 主存 + 运算器 + 控制器,和三个部分的重要组成,对于主存的存储体中的各个概念是核心(以及字和字节的区别)、对于运算器核心部分是ALU、控制器的核心部件是CU,及其工作过程。