认识各个硬件部件
视频链接地址:
https://www.bilibili.com/video/BV1BE411D7ii?from=search&seid=6420326887479343502

前言

在本篇中,你将掌握

  • 主机的三大部分:主存储器、运算器、控制器的组成
  • 主机的工作流程(注:工作流程可参照视频学习,效果更好)

1 主存储器

认识各个硬件部件(计算机组成原理4)_课程向

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

注:现在的计算机通常把MAR、MDR也集成在CPU内
认识各个硬件部件(计算机组成原理4)_计算机组成原理_02

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

  存储单元:一整个存储体会被分成多个存储单元,
  存储字:每一个存储单元会存放一串二进制代码,每个单元里存储的二进制代码称为一个存储字(word), 存储字长:而每个存储字包含的二进制个数就叫做存储字长。
  存储元:用于存储二进制的电子元件叫存储元,每个存储元可存1bit。

因此,MAR位数 = 反映了存储单元个数,MDR位数 = 存储字长。如MAR = 4位,那么有 2 4 2^4 24个存储单元;MDR = 16位,那么每个存储单元可存放16bit,一个字(word)= 16bit。

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

2 运算器

认识各个硬件部件(计算机组成原理4)_课程向_03
运算器,用于实现算术运算和逻辑运算。

一个运算器最主要的部件有:
   ACC:累加寄存器,用于存放操作数,或运算结果
   MQ:乘商寄存器,在乘、除运算时,用于存放操作数,或运算结果
   X:通用的操作数寄存器,用于存放操作数
   ALU:算数逻辑单元,内部集成复杂电路实现算数运算、逻辑运算

3 控制器

认识各个硬件部件(计算机组成原理4)_课程向_04
控制器,指挥程序运行。
控制器中有三个必不可少的部件:
  CU:控制单元,分析指令,给出控制信号
  IR:指令寄存器,存放当前执行的指令
  PC:程序计数器,存放下一条指令地址,有自动加1功能

对于计算机而言,最主要的就是执行代码,代码也就是一条一条的指令,完成一条指令需要:
  取指令 ,根据PC的指令地址取出指令
  分析指令 , 从PC取出的指令会放到IR中
  执行指令 , CU分析这条指令要做什么
别称,前两阶段被称为取指,最后一个阶段称为执行。

4 工作过程

认识各个硬件部件(计算机组成原理4)_课程向_05
上述的定义是抽象不容易理解的,因此让我们看一个例子来辅助学习理解。

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

int a=2,b=3,c=1,y=0;
 void main(){
 	y = a * b + c;
 }

编译装入主存的形式如上图,主存地址0-4存放了指令,5-8存放了数据。
认识各个硬件部件(计算机组成原理4)_计算机组成原理_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),执行顺序如下
认识各个硬件部件(计算机组成原理4)_计算机组成原理_07
CPU区分指令和数据的依据:指令周期的不同阶段

5 小结

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