计算机各部件的工作过程

首先我们来回顾一下现代计算机结构

 存储器

       我们可以看到计算机主要就是这五个部件组成,现代计算机的核心部件是存储器,那我们首先来看一下存储器的基本组成。主存储器里边用于存放数据的东西叫做存储体,存储体就是由一系列的存储元件来构成,可以存放二进制0或1。除了存储体之外,还有两个重要的寄存器MAR(Memory Address Register)和MDR(Memory Data Register)。它们分别是地址寄存器,数据寄存器。

     我们可以把存储器的结构类比成生活中的驿站,驿站和主存储器是有很多异曲同工的地方,每一个驿站里面都会有一个货架,每个货架都会进行编号,比如2号货架5层第65个包裹,他们可能会给我发一个这样的取件码:2-5-65 然后我们拿着这个取件码去前台告诉他们我们的取件码,那电员知道了取件号之后,他就可以知道我的这个包裹是存放在二号货架的第五层的第65个包裹。于是这个店员会告诉取件小哥,让他去这个位置帮我找。于是在取件号所对应的位置就找到了我的包裹。包裹找到之后,他们会把我的包裹放到柜台上,我就可以从柜台上拿走我的包裹。因此驿站的这个模型当中货架、店员、柜台和主存储器的这三个部分都是一 一对应的。驿站的货架是用来存放货物的一个一个的包裹,主存储器里的存储体用来存放数据,那数据不就是计算机想要的货物吗?另外我会告诉店员,我的取件号是多少。同时我的取件号也反映出了我想要的货物,它在货架上的存放位置。而对于主存储器来说,CPU想要从存储器里边取得一个数据,那么他会把他想要的数据存放在什么位置,这个存放地址就是写到MAR这个寄存器中,那接下来主存储器是不是就可以根据MAR这接收到的地址信息去存储体里边拿出CPU想要的数据。再回到驿站,我想要的包裹从货架上找到之后会不会放到柜台上,然后最终我是从柜台上取走这个包裹,那对于存储器来说也是一样。刚才cpu给他提供了一个他想要的数据的存放地址。那么主存储器里边的一些控制逻辑会根据这个地址找到他想要的数据,并把他想要的数据先写到MDR这个寄存器中,最后CPU就可以通过数据线路从MDR 当中取走他想要的数据。所以主存储器和驿站这个模型是有很多相通的地方的,当然也有不一样的地方。对于菜鸟驿站来说,我们通常只能从它的货架上取走我们的包裹。而对于存储器来说,CPU既可以从其中读出数据,同时也可以写入数据,那写入数据的过程其实和读入数据是类似的。CPU 会指明他想要写入到哪个位置,然后他想要写入的具体数据会放在MDR 中,最后CPU会通过控制总线,告诉主存储器说,这次我想要执行的操作是写操作,而不是读操作,那么主存储器根据CPU 发出的信息就可以往对应的位置写入CPU想要写的数据了。

存储体

        首先我们来看下存储器的内部结构

         CPU需要的二进制数据会存放在存储体当中,并且是按地址来存储,我们的这个一整个存储体,它会被分成一个一个的存储单元,每一个存储单元会存放一串二进制代码。每一个单元里边存储的这一串二进制代码称为一个存储字(word)。而每一个存储字包含多少个二进制位,称为存储字长,也就是每个存储单元里边可以放得下多少个二进制位。通常每一个存储单元可以存放的二进制数都是8bit的整数倍,也就是8bit、16bit、32bit、64bit,这些是比较常见的一些存储字长。

        每一个这样的存储单元会对应一个地址信息,地址是从零开始,那这个地址信息就是前文我们所说的MAR,这里边应该指明的一个信息,比如:如果我要读取的是第二号的存储单元,那么CPU就应该往MAR 这个寄存器里边写入二这个信息。还有一个概念叫做存储源,也就是用于存储二进制数据的电子元件,这样的电子元件其实就是利用用电容的原理来制造的。我们高中里边学过电容相关的知识,电容可以用来存储电荷,因此我们可以用一个电容来存放一个二进制的比特位,那由多个存储元件还有相应的线路就构成了一个存储单元。关于存储元件的物理特性,我们不需要过度的深究,我们只需要知道每一个存储元件,每一个存储元可以存放1个bit的二进制位就可以了

         前面我们说过MAR是指明了本次要访问哪一个存储单元,是指明了存储单元的地址。所以MAR寄存器的位数,这个信息就直接的反映了我们的存储体里边到底有多少个存储单元。另一个方面,我们从存储单元里取出来的数据是要放到MDR寄存器中,所以MDR 的二进制位数应该和存储单元是保持一致等于存储字长。比如一个主存储器,它的MAR地址寄存器只有4bit,那么也就意味着它的存储体里总共只有2^4个存储单元。另外如果它的MDR这个数据寄存器总共有16bit,那么就说明在这个主存储器当中,一个字的大小就是16bit。换句话说,每一个存储单元可以存放十六个二进制为十六个比特的信息。

运算器

        运算器主要用来实现算术运算和逻辑运算。

         名词解释

  1. ACC:累加器,用于存放操作数或者运算结果
  2. MQ:乘商寄存器,在乘除法运算时存放操作数或者运算结果
  3. X:通用操作数寄存器,用于存放操作数
  4. ALU:算术逻辑单元,通过复杂的内部电路实现算术运算和逻辑运算

 控制器

  1. CU(Control Unit): 控制单元,指令分析、给出控制信号
  2. IR(Instruction Register):指令寄存器,存放当前执行的指令
  3. PC(Program Counter):程序寄存器,存放下一条执行的指令地址,有自加一的功能

计算机执行一条指令的过程: 

        取指令(PC)—→分析指令(IR)—→执行指令(CU)

计算机的工作过程

        假如 我们有如下的高级编程语言:

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

public static void main(String [] args){
	y= a*b+c;
}

编译之后:

 

操作步骤:

 

执行过程:

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值