【计算机组成原理】中央处理器CPU

一、CPU的功能和基本结构

1、功能

当用计算机解决某个问题是,我们首先必须为他编写程序,程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据,一旦把程序装入内存器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。

虚线框就是CPU结构

CPU通过地址总线  数据总线来访问存储器或者输入输出端口。

ALU:执行运算  两个数一个来自缓存寄存器DR 一个来自累加器AC 运算结果暂时存放到累加器中

状态条件寄存器:0标志位  溢出标志位  等

缓冲寄存器DR:信息进出CPU都有在这蹲点,不论是指令还是数据进CPU都要先进缓存寄存器DR。

指令寄存器:当前正在执行的指令,这里的指令中包含操作码和地址码,将操作码送入指令译码器就知道指令是做什么的,指令译码器把翻译结果告诉操作控制器和时序产生器,他们再按照时间顺序向计算机的执行部件发出执行命令。

程序计数器:下一条将要执行指令的地址

地址寄存器:存放CPU正在访问的内存的地址,一般和地址总线直接相连

CPU的基本部分由运算器  cache和控制器三大部分组成。

二、指令的执行过程

1.指令周期的基本概念

问题:计算机读取的指令和数据都是存在存储器里面的二进制代码,计算机如歌区分这二进制代码是指令还是数据?

计算机能自动的工作,从存放程序的内存里取出一条指令并执行这条指令,紧接着又是取指令,执行指令,如此周而复始,构成了封闭的循环,除非遇到停机指令,否则这个循环将一直继续下去、

指令周期:CPU从内存取出一条指令并执行这条指令的时间总和,不同指令的指令周期不同。

CPU周期:又称机器周期,用从内存读取一条指令字的最短时间来定义

时钟周期:通常称为节拍脉冲或T周期,一个CPU周期包含若干个时钟周期

eg:分析代码的执行过程

CLA  ;清零指令,将累加寄存器AC的所有位清零

ADD 30 :加法指令,将底座为30的内存空间的内容与累加器AC的内容相加

STA  40:将和写入地址为40的内存空间

NOP :空操作

JMP  21:跳转指令,目标地址为21 

021到024 存放指令,说明这是单地址指令,取需要一个CPU周期

第一条指令:不需要访问内存,取指令占用1个CPU周期。执行之前先将PC的内容变为20,周期开始,取指令,指令地址是20,根据地址20去访问内存,地址寄存器存放的是CPU当前要访问的内存地址,地址寄存器和地址总线是直接相连的,所以第一步是把PC中的饿0送到地址寄存器,接着送往地址总线(此时取值完成,自动加1,PC中的内容变为21.下一条指令做好准备),地址总线传给内存,从内存中地址为20的地方读出的指令经过数据总线进CPU,现在缓存寄存器DR中蹲点,因为现在只取指令阶段,所以可以判断读取的是指令,因为是指令所以讲其送往指令寄存器 IR中,IR中存放的就是当前要执行的指令信息,将指令中的操作码信息送往指令译码器 ,通过译码将结果告诉操作控制器和时序产生器,这个时候操作控制器和时序产生器想ALU和累加器 发出执行命令。ALU就将累加器中的内容变为了0. 

第二条指令:取指令占用1个CPU周期,执行周期要占用2个CPU周期。当前PC内容是21,先把PC的21送到地址寄存器,送到地址总线,PC的内容+1,从内存中地址为21的地方读出加法指令,经过数据总线现在缓存寄存器中蹲点,取指令阶段,指令送往指令寄存器,然后把操作数送往指令译码器,译码结果发给操作控制器和时序产生器,加法指令一个操作数在累加器中,另一个在地址为30的单元中,因为要访问地址是30的数据,所以必须通过指令寄存器把30通过内部总线送到地址寄存器,因为地址寄存器之间和地址总线相连,所以导内存中地址为30的单元取值,将地址30中的额数据6通过数据总线先进缓存寄存器蹲点,因为是执行阶段,所以将数据送给ALU,把累加器的数作为另外一个数送到ALU,相加之和再将数据写回累加器。

第三条指令:写数要访问内存,目前PC的内容是22,我们要访问地址为22的单元,读取指令。先将PC中的22送到地址寄存器,然后PC中的值+1变为23,经过地址总线取到地址为22的单元的指令内容,经过数据总线送到缓冲寄存器,因为是取指阶段,所以将指令送往指令寄存器,指令寄存器将操作码送往指令译码器,指令译码器将结果送往操作控制器和时序产生器,要写入的地址是40.通过内部总线将40传给地址寄存器,经过总线选中地址为40的单元,将累加器中的值6先进缓冲寄存器,通过内部数据总线写入内存。

第四条指令:PC的内存是23   代表一个空操作,将PC中的23送给地址寄存器,经过地址总线找到内存中地址为23的单元,将空操作指令经过数据总线送到缓冲寄存器,送往指令译码器,然后什么也不做。共占用一个CPU周期。

第五条指令:PC的内存是24  . 将24送给地址寄存器,经过地址总线导内存中找到地址为24的单元,通过总线将指令送给缓冲寄存器,因为是取指阶段,所以将指令送给指令寄存器。然后译码,

跳转指令的实质是将跳转地址重新写回PC。

例:下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号觉得完成何种操作,控制信号G控制的是一个门电路,另外,线上标注有小圆圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1o为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制

1)ADD R2,R0指令完成(R0)+(R2)->R0的功能操作,画出其指令周期流程题,假设该指令地址已放入PC中,并列出相应的微操作控制信号序列。

答:指令周期包含取指令和执行指令

取指令:指令地址在PC中,(需要PC中的指令地址送到地址寄存器中)PCo  G   ARi

到达AR相当于到了地址总线,经过地址总线传给存储器 

加读控制信号,CPU把内存中的内容读先进去到缓存寄存器(DR)

是指令将指令送往指令寄存器:DRo  B总线   G  A总线  IRi  写入指令寄存器

译码 

R0的内容送到x  R0o B总线  G    Xi

R2的内容送到Y  R2o  B总线  G Yi

只连送到ALU     控制信号+

结果存入R0     R0到B总线通过经过G送到R0

2)SUB R2 R3

例三、某计算机字长16位,采用16位定长指令字结果,部分数据通路结构如图所示,图中所有控制信号为1时表示有效,为0时表示无效,例如控制信号MDRInE为1表示允许数据从DB打入MDR,MDRin为1表示允许数据从内总线打入MDR,假设MAR的输出一直处于使能状态

加法指令ADD (R1) ,R0的功能为(R0)+((R1))->(R1)即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入导R1的内容所指主存单元中保存。

下表给出了上述指令取值和译码阶段每个街拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号

时钟 功能 有效控制信号
C1 MAR<-(PC) PCout  MARin
C2 MDR<-M(MAR)     PC<-(PC)+1 MemR  MDRinE  PC+1
C3 IR<-(MDR) MDRout  IRin
C4 指令译码

解:分析

1.数据通路组成(运算器  存储器 总线 指令系统  cpu)

2、指令周期  CPU周期  时钟周期

3、机器指令ADD(R1) ,R0的含义:(R0)+((R1))  (R1)

4、指令周期流程图设计

5、指令执行阶段控制信号列表

二、时序信号的作用和体制

时序信号:CPU中一个类似作息时间的东西,使计算机可以准确、迅速、有条不紊的工作。

机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,有条理。有节奏的指挥机器的动作,规定在这个脉冲导来时做什么,在那个脉冲到来时做什么,给计算机各部分提供工作所需的时间标志。

三、控制器的功能和工作原理

微程序控制器:把操作控制信号编写成微指令,放到只读存储器中(控制存储器),当机器运行时 

一条一条取出这些微指令,从而产生全机锁徐的各种操作控制信号,使相应的部件执行所规定的操作。

1.微命令和微操作

数字计算机:控制部件(控制器)  执行部件(运算器 存储器 外设)

微命令:控制部件通过控制线向执行部件发出的各种控制命令

微操作:执行部件接受微命令后所进行的操作

控制部件与执行部件通过控制线和反馈信息进行联系。

控制部件  -》控制线导执行部件

执行部件-》反馈线导控制部件

执行部件通过反馈线向控制部件反应操作情况,以便控制部件通过根据执行部件的状态来下达新的微命令,这叫状态测试

相容性微操作:同事或在同一个CPU周期内可以并行执行的微操作

互斥性微操作:不能同事或不在同一个CPU周围内可以并行执行的微操作

2、微指令和微程序

微指令:在机器的一个CPU周期中,一组实现一点操作功能的微命令的组合

微程序:实现一条机器指令功能的许多条微指令组成的序列     

一条机器指令=1个微程序

程序-》指令=微程序{微指令  {微命令 }->微操作}

微指令的基本格式:

猜你喜欢

转载自www.cnblogs.com/dream-to-pku/p/11601264.html