Loading

1.2.2认识各个硬件部件

认识各个硬件部件

1.1主存储器的基本组成

image-20200816142654661

原理

  • 取数据时,CPU会把想要存储的数据的指定地址放在MAR之中,存储体就会根据MAR接收到的地址信息去存储体拿出信息,并放在MDR中,最后CPU就可以通过数据线路从MDR中取走想要的数据。
  • 写数据时,CPU会指明想要写入到哪个位置告诉MAR,写入的数据会放在MDR中,最后CPU会通过控制总线告诉主存储器说,这是执行的是写的操作,主存储器根据CPU发出的这三个信息,就会往对应的位置往CPU写入数据了。

image-20200816144140880

存储单元:每个存储单元存放一串二进制代码

存储字:存储单元中的二进制代码的组合

存储字长:存储单元中发二进制代码的位数

存储元:即存储二进制的电子元件,每个存储元可存1bit

MAR位数反映了存储单元的个数

MDR位数=存储字长

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

例如:

MAR=4位=>总共有$2^4$个村春单元

MDR=16位->每个存储单元可存放16bit,一个字(Word)=16bit=两个字节

1字节(Byte)=8bit

1B=1个字节,1b=1个bit

1.2 运算器的基本组成

image-20200816160102264

1.3 控制器的基本组成

image-20200816160407272

1.4 计算机的工作过程

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

解释

  1. 首先PC会指向0第一条指令的位置,
  2. PC通过地址总线传输到MAR当中,控制器会告诉主存储器我要进行的读操作
  3. 主存储器会根据MAR记录的地址信息去存储体找出0号地址对应的二进制数据,并且放到MDR中
  4. 这条指令会通过数据总线传递到IR中,控制器的IR已经存放了此次的指令
  5. 指令中的前6位操作码,会被送到CU单元,CU分析以后,会得到这是取数的指令
  6. IR会将指令的地址码送到MAR中,00000001转化为10进制为5,最后传递给MAR=5
  7. 接下来主存储器根据MAR中的地址,找到a=2,并将结果放在MDR中
  8. MDR中的数据会被传输到ACC累加器中

1.5 总结

graph LR A[各硬件部位] A-->b(主存)-->C1[存储体] -->D1[概念: 存储元 存储单元 存储字 存储字长 地址] b(主存)-->C2[MAR] -->D2[地址寄存器:用于指明要到读写那个存储单元,其位反应存储单元数量] b(主存)-->C3[MDR] -->D3[数据寄存器:用于暂存要读写的数据,其位数=存储字长] A-->b2(运算器)-->E(ACC) -->d1(累加计数器,存放操作,运算结果) b2(运算器)-->E2(MQ) -->d2(乘商寄存器,乘除法用到) b2(运算器)-->E3(X) -->d3(通用寄存器,存放操作数) b2(运算器)-->E4(ALU) -->d4(算数逻辑单元,用电路实现各种算数运算) A-->b3(控制器)-->F(PC) -->e1(程序计数器,存放下一条指令) b3(控制器)-->F2(IR) -->e2(指令寄存器,存放当前执行指令) b3(控制器)-->F3(CU) -->e3(控制单元,分析指令给出指令信号) A-->b4(工作过程)-->g(初始指令:指令,数据存入主存,PC指向第一条指令) b4(工作过程)-->g2(从主存中取出指令放入IR PC自动加1,CU分析指令,CU指挥其他部件执行命令)
posted @ 2021-08-23 15:58  炒焖煎糖板栗  阅读(286)  评论(0编辑  收藏  举报