【计算机组成原理】计算机工作过程原来如此简单
计算机组成
主存储器
主存储器可分为存储体、MAR(存储地址寄存器)、MDR(存储数据寄存器)MAR存放一些和地址相关的二进制数据,MDR存放和数据相关的二进制数据。当进行数据的读取是,CUP给MAR传输地址数据,MAR将地址数据传输到存储体中,存储体再根据地址将要读取的数据传输到MDR中,CPU再将数据从MDR中进行取出。
存储体是按地址来存储,一整个存储体会被分配给一个一个的存储单元,每个存储单元会存放一个二进制代码,每个单元所存储的二进制代码我们把它们成为存储字。每个存储字包含多少二进制位我们把它成为存储字长。MAR的位数直接反映了存储体里有多少个存储单元。
如果MAR是4位,那么总共有2的4次方个存储单元(4位是指2进制的4位)。MDR位数多少代表每个存储单元可以含有多少个二进制位数。
**注意:一个字(word)有多少bit由MDR决定,一个字节(byte)是8bit,千万别搞混淆。**1B=一个字节,1b=1bit。
计算机工作过程
关于CPU 的概念就不一一细讲了下面用一个实施案例来了解一下
我们用C语言来写一串代码
int a=2,b=3,c=1,y=0;
void main()
{
y=a*b+3;
}
我们所用的高级语言计算机是如何工作的呐?
首先把所有数据装入主存,它在主存中的形式为:
下面就是计算的全部流程
首先PC的地址为0,PC将数据传入MAR,此时MAR=0,MAR将数据传入存储器,存储器将0所对应的操作码和地址吗传给MAR,此时MA=000001 0000000101,MAR->IR,IR将操作码传给CU,CU得知是取数指令。然后IR->MAR,此时MAR= 0000000101,然后取出a的数值,MAR=5,最后在UC的指挥下,将5写入ACC中。PC是默认+1的,所以此时的PC=1;然后经过
PC->MAR,
MAR->存储器,
存储器->MDR,
MDR->IR
IR将指令符传入CU,CU解析指令
IR->MAR(地址码)
MAR->存储器,
存储器->MDR,
MDR->MQ
ACC->X,
在CU的控制下MC与X相乘写入ACC
PC+1
…