中央处理器——计算机组成原理
中央处理器
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机器长