天猫网站网址电商网站建设小强
一、冯诺依曼结构
存储程序:
 “存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
 
 冯诺依曼计算机特点:
 1、计算机由5大部件组成
 2、指令和数据以同等地位存于存储器,可按地址寻访
 3、指令和数据用二进制表示
 4、指令由操作码和地址码组成
 5、存储程序
 6、以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)
二、现代计算机结构

 
2.1、主存储器

 
 存储单元:每个存储单元存放一串二进制代码
 存储字(word):存储单元中二进制代码的组合
 存储字长:存储单元中二进制代码的位数
 存储元:即存储二进制的电子元件,每个存储元可存1bit
MAR(memory address register):位数反应存储单元的个数
 MDR(memery data register):位数=存储字长
例如:MAR=4位->共有24个存储单元
 MDR=16位->每个存储单元可放16bit 1个字=16bit
 字的决定是由计算机硬件决定的
1个字节(byte)=8bit
2.2、运算器的基本组成

 运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)
ACC(Accumulator):累加器,用于存放操作数,或运算结果
 MQ(Multiple-Quotient Register):乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
 X:通用的操作数寄存器,用于存放操作数
 ALU:算术逻辑单元,通过内部复杂的电路实现算数运算逻辑运算
2.3、控制器的基本组成

CU(control unit):控制单元,分析指令,给出控制信号
 IR(instruction register):指令寄存器,存放当前执行的指令
 PC(program counter):程序计数器,存放下一条指令地址,有自动加1功能

2.4、跑一个code
高级语言:
int a=2,b=3,c=1,y=0;
void main(){y=a*b+c;
}
 
机器语言:
 
第一条指令

 初:(PC)=0,指向第一条指令的存储地址
 #1:(PC)→MAR,导致(MAR)=0
 #3:M(MAR)→MDR,导致(MDR)=0000010000000101
 #4:(MDR)→IR,导致(IR)=0000010000000101
 #5:OP(IR)→CU,指令的操作码送到CU,CU分析后得知,这是“取数”指令
 #6:Ad(IR)→MAR,指令的地址码送到MAR,导致(MAR)=5
 #8:M(MAR)→MDR,导致(MDR)=0000000000000010=2
 #9:(MDR)→ACC,导致(ACC)=0000000000000010=2
取指令(#1~ #4)分析指令(#5)执行取数指令(#6~#9)
第二条指令

上一条指令取指后PC自动+1,(PC)=1;执行后,(ACC)=2
 #1:(PC)->MAR,导致(MAR)=1
 #3:M(MAR)->MDR,导致(MDR)=000100 0000000110
 #4:(MDR)->IR,导致(IR)=000100 0000000110
 #5:OP(IR)->CU,指令的操作码送到CU,CU分析后,这是乘法指令
 #6:AD(IR)->MAR,导致(MAR)=0000000110=6
 #8:M(MAR)->MDR,导致(MDR)=0000000000000011=3
 #9:(MDR)->MQ,导致(MQ)=0000000000000011=3
 #10:(ACC)->X,导致(X)=2
 #11:(MQ)*X->ACC,导致(ACC)=6,由ALU实现乘法运算,如果乘积太大,需要MQ辅助存储
取指令(#1~#4)分析指令(#5)执行乘法指令(#6~#11)
