中央处理器

5.1 CPU的功能和组成

1.CPU的功能

控制程序按设定的方式执行的计算机部件成为中央处理器,简称CPU

具有一下四方面的基本功能:

a.指令控制 程序的顺序控制,称为指令控制。

b.操作控制 一条指令的功能往往是由若干个操作信号的组合实现的,CPU管理并产生由内存取出的每条指令的操作信.号,把各种信号送往相应的部件,从而控制这些部件按照指令的要求进行动作

c.时间控制 对各种操作实施时间上的定时

d.数据加工 对数据进行算术运算和逻辑运算处理(由ALU完成,算术逻辑单元)

2.CPU的基本组成

早期的CPU由运算器和控制器两大部分组成。后来CPU的基本部分变成运算器、cache、控制器三大部分

控制器 由程序计数器(PC)、指令寄存器(IR)、指令译码器、时序产生器 和 操作控制器(OC) 组成,主要功能有:

(1)从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置

(2)对指令进行译码和测试,并产生相应的操作控制信号

(3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向

运算器 由算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器(DR)和状态条件寄存器(PSW)组成。运算器接受控制器的命令而进行动作,是执行部件。主要有两个功能:

(1)执行所有的算术运算

(2)执行所有的逻辑运算

3.CPU中的主要寄存器

CPU中至少有六类寄存器:指令寄存器(IR)、程序计数器(PC)、数据地址寄存器(AR)、缓冲寄存器(DR)、通用寄存器、状态字寄存器(PSW)

(1)DR 暂时存放CPU与外界传送的数据,可以是指令字或者数据字,作用是 1)作为ALU运算结果和通用寄存器之间信息传送时间上的缓冲 2)补偿CPU和内存、外围设备之间在操作速度上的差别

(2)IR 用来保存当前正在执行的一条指令。当执行一条指令时,先把它从指令cache存储器(指存)中读出,然后再传送至IR 。指令划分为操作码和地址码字段;一个叫指令译码器 的部件可以译码,然后向操作控制器发出具体操作的特定信号。IR 中的操作码字段的输出就是指令译码器的输入

(3)PC 两种情况:顺序执行–> pc+1->pc ; 转移执行–>JMP 指令

(4)AR 主要用于解决主存/外设和CPU之间的速度差异。使地址信息可以保持到主存/外设的读写操作完成为止

(5)通用寄存器 当ALU执行运算时,为ALU提供一个工作区。例如,执行一次加法运算,选择两个操作数相加(假设存放在通用寄存器R0,R1),放到其中一个寄存器中(如R1)

(6)PSW 保存由ALU运算或测试结果的各种条件代码。如运算结果进位标志(C)、运算结果溢出标志(V)等等

4.操作控制器与时序产生器

寄存器之间传送信息的通路,称为数据通路 。操作控制器的部件需要完成的任务就是,在各寄存器之间建立数据通路。根据指令译码器传过来的指令操作码和时序信号,产生各种操作控制信号,然后正确的选择数据通路,将有关数据打入到一个寄存器,从而完成取指令和执行指令的控制。

5.2 指令周期

1.指令周期基本概念 取出一条指令并执行这条指令总共需要的时间。指令周期通常由若干个CPU周期(又称机器周期或者时钟周期)数来表示。取指阶段需要一个CPU周期时间

2.MOV指令的指令周期,MOV R0,R1 RR型指令,需要两个CPU周期,取指周期需要一个,执行周期需要一个。

取指周期中CPU完成三件事:从指存中取出指令;对PC加1;将指令操作码输出到指令译码器进行译码或测试,以便进一步确定进行什么操作。

取指周期:

(1)PC–>AR

(2)M–>DR

(3)DR–>IR

(4)PC + 1–> PC

(5)指令寄存器中的操作码(OP)传入指令译码器译码

(6)CPU识别出MOV指令,取指周期结束

执行周期:

(1)OC送出控制信号到通用寄存器,选择R1(10)作为源寄存器,选择R0作目标寄存器

(2)OC送出控制信号到ALU,指定ALU做传送操作

(3)OC送出控制信号,打开ALU输出三态门,将ALU输出送到数据总线DBUS上,注意:任何时候DBUS上只能有一个数据

(4)OC送出控制信号,将DR中的数据10打入到目标寄存器R0,R0的内容由00变成10

3.LAD指令的指令周期,LAD R1,6 RS型指令。先从指令寄存器(IR)取指,然后从数据存储器6号单元取出数据装入通用寄存器R1。由于一次访问指存,一次访问数存,需要3个CPU周期

取指周期:同上

执行周期:

(1)OC发出控制命令打开IR输出三态门,将指令中的直接地址码6放到数据总线DBUS

(2)OC发出操作命令,将地址码6装入数存地址寄存器AR

(3)OC发出读命令,将数存6号单元中的数100读入DBUS

(4)OC发出命令,将DBUS上的数据100装入DR

(5)OC发出命令,将DR中的数据100装入R1,LAD指令执行周期结束

4.ADD指令的指令周期,ADD R1,R2 RR型指令,取指访问、执行周期,一共需要两个CPU周期

取指周期:同上

执行周期:

(1)OC送出控制命令到通用寄存器,选择R1做源寄存器,R2做目标寄存器

(2)OC送出控制命令到ALU,指定ALU做R1和R2的加法操作

(3)OC送出控制命令,打开ALU输出三态门,运算结果放到DBUS上

(4)OC送出控制命令,将DBUS上数据打入DR;ALU产生的进位信号保存到PSW中

(5)OC送出控制命令,将DR装入R2,至此ADD指令执行周期结束

5.STO指令的指令周期,STO R2,(R3) RS型指令,先访问指存取出STO指令,然后按(R3)=30地址访问数存(访问30号地址单元),将(R2)=120写入到30号地址单元。一次访问指存,一次访问数存,所以需要3个CPU周期

取指周期:同上

执行周期:

(1)OC送出操作命令到通用寄存器,选择(R3)=30做数据存储器的地址单元

(2)OC送出操作命令,打开通用寄存器输出三态门,将30放到DBUS上

(3)OC发出操作命令,将地址30打入AR,并进行数存地址译码,地址30是从DBUS上得到(这里就是访问数存)

(4)OC发出操作命令到通用寄存器,选择(R2)=120,作为数存的写入数据

(5)OC发出操作命令,打开通用寄存器输出三态门,将数据120放到DBUS上

(6)OC发出操作命令,将数据120写入数存30号单元。STO指令执行周期结束

6.JMP指令的指令周期,JMP 101 JMP是一条无条件转移指令,用来改变程序的执行顺序。指令周期为2个CPU周期,取指是一个CPU周期,执行周期是一个CPU周期

取指周期:同上

执行周期:

(1)OC发出操作控制指令,打开IR输出三态门,将IR中的地址码101发送到DBUS上

(2)OC发出操作控制指令,将DBUS上的地址码101打入到程序计数器PC中。JMP指令执行周期结束

7.用方框图语言表示指令周期

一个方框表示一个CPU周期,方框中内容表示数据通路的操作或者某种控制操作。一个菱形通常表示某种判别或者测试,不单独占用一个CPU周期

5.4微程序控制器

利用软件方法设计硬件的一门技术。

把操作控制信号,编成所谓的“微指令”,存放到一个只读存储器里。机器运行时,一条条读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作

1.微命令和微操作

一台数字计算机基本可以划分为两部分——控制部件和执行部件。

控制部件,向执行部件发出控制信息;

执行部件,向控制部件返回状态信息。

控制部件和执行部件的一种联系,就是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,通常这种控制命令就称作微命令;执行部件接收微命令后进行的操作,叫做微操做。

另一种联系是反馈信息,执行部件通过控制线向控制部件反映操作情况,也叫做“状态测试”。

微操作分为相容性和相斥性;相容性的微操做指可以在同时或同一个CPU周期内并行执行的微操做。例如ALU的+,-就是相斥性操作,ADD R1,R2,获取R1,R2就是相容性微操做。

2.微指令和微程序

在机器的一个CPU周期内,一组实现一定操作功能的微命令的组合是微指令。

微指令一般由操作控制和顺序控制两部分组成。

(1)操作控制部分用来发出控制信号,每一位都表示一个微指令,位信息为“1”表示发出微指令,“0”表示不发出。

(2)顺序控制部分用来决定产生下一条微指令的地址

微程序就是微指令构成的序列,每条机器指令都对应着一段微程序

3.微程序控制器原理

由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。微指令寄存器分为微地址寄存器和微命令寄存器

(1)控制存储器:存放实现全部指令系统的微程序,只读。要求速度快,读出周期短

(2)微指令寄存器:微命令寄存器存放控制存储器读出的一条微指令信息。微地址寄存器决定下一条微指令的地址

(3)地址转移逻辑:用于跳跃寻址微指令时,承担自动完成修改微地址的任务

4.微程序实例

见书 P 159-160

5.CPU周期与微指令周期的关系

串行方式的微程序控制器中,一个微指令周期等于一个CPU周期

6.机器指令与微指令的关系

(1)一条机器指令对应一个微程序,这个微程序是由若干微指令序列组成。

(2)指令与微指令、程序与微程序、地址与微地址一一对应。前者都是与内存储器有关,后者与控制存储器有关。

(3)一个CPU周期对应一条微指令

7.微程序设计技术

微指令编码

对微指令中的操作控制字段采用的表示方法

(1)直接表示法:操作字段中的每一位代表一个微指令。优点是简单直观;缺点是微指令字较长,因而使控制存储器容量较大

(2)编码表示法:把一组相斥性微指令信号组成一个字段,然后通过字段译码器对每一个微指令信号进行译码,译码输出作为操作控制信号。优点是,采用较小的二进制信息表示较多的微命令信号,缩短微指令字长度;缺点是减缓微指令执行速度

(3)混合表示法:(1)(2)混合使用

微地址形成方法

微指令执行的顺序控制问题,是如何确定下一条微指令的地址问题,一般有两种产生后继地址的方法:

(1)计数器方式:同用程序计数器来产生机器指令地址的方法相似

(2)多路转移方式:一条微指令具有多个转移分支的能力称为多路转移。当微程序不产生分支时,后继微地址直接由微指令的顺序控制字段给出;当微程序出现分支时,有若干后继微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。

微指令格式

分为水平型微指令和垂直型微指令

(1)水平型微指令:一次能定义并执行多个并行操作微命令的微指令,一般格式:控制字段、判别测试字段、下地址字段

(2)垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。垂直型微指令的结构类似与机器指令的结构,它有操作码。书P 164

5.5硬连线控制器

暂略

5.6流水线CPU

暂略

5.7 RISC CPU
基本特点:

(1)使用等长指令,目前典型长度为4B

(2)寻址方式少且简单,绝不出现存储器间接寻址方式

(3)只有取数指令、存数指令访问存储器。最多出现RS型指令,不会出现SS型指令

(4)指令集中的指令数目一般少于100,指令格式一般少于4种

(5)指令功能简单,控制器多采用硬布线方式

(6)平均而言,所有指令的执行时间为一个处理时钟周期

(7)指令格式中,用于指派整数寄存器的个数不少于32个,用于指派浮点数寄存器的个数不少于16个

(8)强调通用寄存器资源的优化使用

(9)支持指令流水并强调指令流水的优化使用

(10)RISC技术的复杂性在于它的编译程序,因此软件系统开发时间比CISC机器长

版权声明:本文为lambdaCheN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lambdaCheN/p/7756847.html