通过看王道视频,自己做的一些笔记

计算机发展历史:
1.电子管 -》晶体管-》中等规模集成电路-》大规模集成电路

一些基本概念:
计算机系统=计算机硬件(CPU、外设等)+计算机软件(系统软件+应用软件)
系统软件:操作系统,DBMS数据库管理系统、标准库函数、网络程序等;

应用软件:各种开发APP软件,桌面软件等;

微处理器(CPU):一个AMD CPU就集成了85亿个晶体管
微型计算机(个人计算机)

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

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

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

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

存储单元就是由很多存储元以及相关电路组合而成。

冯诺依曼计算机:

5个设备:输入设备、输出设备、运算器(中心)、控制器、存储器
冯诺依曼核心观点:存储程序(把所有指令放入内存中,然后按照首地址取指令)和程序控制
现代计算机=主机(CPU=运算器+控制器、主存储器【中心】)+I/O设备(输入设备+输出设备)
存储器=主存(内存或主存储器)+辅存(USB,硬盘)
运算器:逻辑运算和算术运算
主存储器:存储数据和指令
控制器:取指令、控制运算器计算、控制I/O设备输入输出 

存储器=存储体+MAR(存储地址寄存器)+MDR(存储数据寄存器)

电子产品架构设计_计算机视觉

MAR用于存放存储单元地址,位数决定了存储单位数量,比如MDR 4位,则有2^4=16个存储单元;MDR用于暂时存放数据,MDR位数=存储字长;

运算器=ACC(累加寄存器)+MQ(乘商寄存器)+X(通用寄存器)+ALU(算术逻辑单元)

控制器:IR(存放当前执行指令地址)+PC(程序计数器,存放下一个指令地址)+CU(控制单元)

执行指令的一般步骤:

比如

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

y=a*b+c;

电子产品架构设计_计算机视觉_02

 

(1)从存储器中获取a的值放入ACC中

(PC)=0;

(PC)-》MAR:把PC中的指令存入MAR中 

(MAR)=0;

M(MAR)-》MDR:存储体根据MAR的地址值去找到对应的存储数据

(MDR)=000001 0000000101

(MDR)->IR: MDR中的数据存入到IR中,取指令完成,(IR)=000001 0000000101

OP(IR)->CU:IR中把操作码发送给CU,CU分析指令,确定为“取数”操作

AD(IR)-》MAR:指令中的地址码放到MAR中

M(MAR)-》MDR:从存储体中取出a的值,放入MDR中,此时(MDR)=0000 0000 0000 0010

(MDR)-》ACC:把MDR中的数据存到ACC累加器中,(ACC)=0000 0000 0000 0010

PC指到下一条指令地址,即(PC)=1

以上就是从取指令-分析指令-执行指令的过程中,每个设备的变化.

从这个就可以看出,MAR存放的就是地址,可以是指令数据的地址或者是操作数数据的地址。

MDR存放的就是数据,可以是指令数据或者是操作数数据,

如果要存数据到存储体中,需要把数据传入到MDR,同时指定存放地址,即给定(MAR)的值

这样子才可以在存储体中,存入数据。

这里我们也很容易理解,MDR的位数就是存储字长,即存储单元中二进制数据的位数。

MAR存放的就是主存地址。