计算机中各个硬件部件【学习笔记】

计算机各个硬件部件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
一个具体的例子:计算机工作过程
高级语言经过编译之后变为机器码,装入主存后由计算机执行。具体工作过程将详细介绍。
在这里插入图片描述

指令和变量数据都存放在存储体当中,这个程序执行的第一条指令是存放在0地址的指令。程序运行之前pc会指向0位置。(#初)
在这里插入图片描述
接下来把0位置存放的指令取出来执行,首先pc存放的内容需要通过地址总线传送到MAR地址寄存器(#1)。此时pc是0,导致(MAR)=0,也就是说控制器向主存指明了控制器接下来要访问的是0地址储存的数据。同时控制器会通过控制总线告诉主存储器我下面要进行读操作,主存储器会根据MAR记录的地址信息到0位置找到二进制数据(#2),并将这些数据放入mdr数据寄存器当中,导致MDR中存放的就是0位置中的数据,也就是我们要读取的第一条指令(#3),如下图所示。

在这里插入图片描述
现在cpu想要的数据已经放进MDR当中,这次要取走的货物就是一条指令,这条指令会通过数据总线放到IR指令寄存器当中,导致IR中存放了此次要执行的指令(#4)。
在这里插入图片描述
指令的高6位,也就是操作码会放在操作单元CU中(#5),CU分析出这是【取数 】指令,接下来把这个地址码对应的内存单元里的数据取出,并放到ACC寄存器(累加寄存器)当中,这是取数指令做的事情。
在这里插入图片描述

既然要读取主存的这一地址的信息,于是就需要把地址码放到主存的MAR当中,导致此时MAR=5(0000000101b)(#6)。5号存储单元指向的是变量a存放的位置。在这里插入图片描述
接下来主存储器根据MAR指明的地址到存储体中找出5号单元的数据(#7)并且把数据放到MDR当中(#8),也就是把a这个变量的值放到MDR里,a的值是2,在控制单元的指挥下,MDR里的数据会被存放到ACC累加寄存器当中(#9),到此为止完成取数的指令,最终导致a这个变量的值被放在ACC寄存器当中。
在这里插入图片描述
程序计数器PC有自动加1的功能,其实在取指令这个动作完成后,PC的值就自动加1了,指明了下一条指令在1位置。上一条指令取指后PC加1,接下来根据程序计数器PC所指向的位置取得第二条指令,取指令的过程和之前步骤类似,通过4个步骤(#1~#4)将第2条指令放到IR寄存器当中,取完指令后要分析指令,经过CU分析操作码,CU分析后得知这是【乘法】指令(#5)。因此接下来CU会指挥其他部件来协调的完成乘法操作。在这里插入图片描述
我们要做的计算是:y=ab+c,这一步要计算乘法ab,而a这个变量已经送到ACC寄存器里,所以这条乘法指令的地址码指明的是另一个乘数b的存放位置,b存放在6这个位置(0000000110),所以这条指令的地址码会被送到MAR中,指明要取出6号存储单元的数据(#6)。主存会根据MAR指明的地址取出相应的数据(#7),把b变量的值放入MDR(#8),接下来b的值通过数据总线从MDR送入MQ乘商寄存器中(#9)。现在b的值已经放在MQ里,接下来需要把a的值放入通用寄存器x当中(#10),当CPU执行乘法操作时,会把被乘数放入通用寄存器x中,把乘数放入MQ乘商寄存器中。

在这里插入图片描述
接下来CU会通过控制线告诉ALU算术逻辑单元让它进行乘法运算,ALU会把x和MQ中的数相乘,将相乘的结果放入ACC中(#11),ACC中得到了a*b的值.若乘积数据太大ACC存不下,需要MQ乘商寄存器辅助存储。MQ存储低位。到此完成乘法指令。

在这里插入图片描述
与第一条指令相比,#1~#5步骤一模一样。当CU识别出是乘法指令后,后面的操作才有所区别。并且,当取指令结束后,PC的值加1,指向下一条指令。而ACC中存放了上一条运算的结果,即ab=6。接下来执行2地址存放的指令。前面的#1-#5都是一样的,可以完成取指令和分析指令的操作。CU分析得知这是个加法操作,这是一条加法指令。接下来CU会根据加法指令的执行步骤指挥其他部件进行工作。这次要计算ab+c,而ab的结果已经存放在ACC当中,所以这个加法指令的地址码指明的是c这个变量的存放地址,c是存放在地址7,接下来取出地址7存放的数据。接下来需要把地址码7放到MAR(#6),
接下来主存根据MAR指明的地址取出相应数据,把c的值放到MDR当中(#8),接下来MDR的值传送给通用寄存器x当中(#9),当进行加法运算的时候,ACC里面会先存入被加数,通用寄存器x中会存入加数,即c的值,然后控制单元CU会向ALU发送控制信号此次执行加法操作,ALU会将ACC和x相加,并把结果存入ACC当中(#10),因此ACC等于7,即a
b+c的值。到此为止完成了第三条指令。
在这里插入图片描述
上一条指令取指后程序计数器PC加1,(PC)=3,执行后(ACC)=7。后续步骤类似,这是一条【存数】指令。
在这里插入图片描述
下一条是停机指令。通过分析可以看出,前5个步骤完全一样,#1-#5进行取指和分析指令,CU分析后进行后续操作。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结:ALU是运算器的核心部件,CU是控制器的核心部件。一个程序的执行过程:开始需要把指令和数据存到主存中,PC程序计数器会指向第一条指令在内存中的存放地址,接下来对一条条指令执行,首先需要从主存中取出一条指令放到IR指令寄存器当中,同时PC加1,指向下一条要执行的指令;加下来CU会分析指令,根据指令的操作码分析该做什么具体的事情,最后CPU指挥其他部件完成指令的执行。补充:MAR、MDR这两个寄存器逻辑上属于主存,但现代计算机通常集成在CPU中。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值