计算机组成原理 学习总结5 *处理机

时间:2024-04-12 18:11:45

5.1 CPU的组成和功能

5.1.1 CPU的功能

CPU(*处理器)
控制程序按设定方式执行;
CPU的主要功能:
指令控制 顺序寻址、跳跃寻址
控制程序的执行顺序;
操作控制 对指令操作码译码后产生控制信号
产生和发送各部件的操作控制信号;
时间控制 维持各类操作的时序关系
控制指令、或操作的实施时间和先后顺序;
数据加工 由ALU完成具体的运算
对数据进行算术逻辑运算;

5.1.2 CPU的基本组成

现代的CPU的组成
运算器、控制器 、片内Cache;
控制器的主要功能
从内存中取出一条指令,并指出下条指令的存放位置;
对指令进行译码,产生相应的操作控制信号;
控制CPU、内存和输入/输出设备之间数据流动;

运算器的主要功能:(ALU、通用寄存器组、标志寄存器)
执行所有的算术运算;
执行所有的逻辑运算,并进行逻辑测试。

计算机组成原理 学习总结5 *处理机

5.1.3 CPU中的主要寄存器

  1. 数据缓冲寄存器(DR)
    暂时存放运算器与外界传送的数据。
    作用 :
    作为CPU和内存、外部设备之间信息传送的中转站;
    补偿CPU和内存、外围设备之间的速度差异;

  2. 指令寄存器(IR)
    保存当前正在执行的一条指令。
    其对应的操作码字段直接作为指令译码器的输入。CPU中的通用寄存器可多达16个,32个,甚至更多

  3. 程序计数器(PC)
    始终存放下一条指令的地址,对应于指令Cache的访问;
    其内容变化分两种情况
    顺序执行: PC+1->PC
    转移执行: (指令OPR)->PC

  4. 地址寄存器(AR)
    保存当前CPU所访问数据的内存单元地址;
    上图中显示AR中的地址用于寻址数据Cache中的单元;
    对于数据Cache未命中的情况下,AR中的内容将用于访问CPU之外的存储器。
    通用寄存器
    功能:暂时存放ALU运算的数据或结果。

  5. 状态条件寄存器(PSW)
    保存各种状态和条件控制信号;
    进位标志©,溢出标志(V),零标志(Z),符号标志(N)
    每个信号由一个触发器保存,从而拼成一个寄存器。

5.1.4 操作控制器与时序产生器

数据通路
两个部件之间传送信息的通路。
操作控制器
根据指令操作码和时序信号,产生各种操作控制信号;
建立正确地数据通路,从而完成指令的执行。
根据设计方法不同,操作控制器可分为
硬布线控制器: 采用时序逻辑技术实现;
微程序控制器: 采用存储逻辑实现;
前两种方式的结合;
时序产生器
对各种操作实施时间的控制。

5.2 指令周期

5.2.1 指令周期的基本概念

CPU执行程序是一个“取指令—执行指令”的循环过程。

指令周期
CPU从内存中取出一条指令,并执行完毕的时间总和;
CPU周期
又称机器周期,一般为从内存读取一条指令字的最短时间;
一个CPU周期可以完成CPU的一个基本操作。
时钟周期
也叫节拍脉冲或T周期,是计算机工作的基本时间单位。
一个完整的指令周期由若干机器周期:
取指周期——间址周期——执行周期——中断周期
任何指令周期最少两个机器周期:取指周期—执行周期;
不同指令的指令周期长度不一定相同。
所有指令的第一个机器周期必为取指周期;
指令的执行周期可包含1~多个机器周期;
不同指令的指令周期不同
计算机组成原理 学习总结5 *处理机

冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是 指令周期的不同阶段

5.2.2 MOV R0 , R1指令的指令周期

MOV是一条RR型指令,它需要两个CPU 周期:
取指周期
从存储器中取出指令;
程序计数器PC加1;
译码或测试指令操作码,发出控制信号;
执行周期
在控制信号的作用下,将R1中的数据经过ALU送入R0;
计算机组成原理 学习总结5 *处理机
MOV R0 , R1指令周期中的控制信号

  1. 取指周期
    PC->ABUS->指令Cache ,译码并启动;
    指令Cache -> IR;
    PC+1-> PC,为取下条指令做好准备;
    IR中的操作码被译码或测试,CPU识别出是指令MOV。
  2. 执行指令周期
    R1->ALU,R1中数据通过ALU传送;
    ALU-> DBUS ->DR->R0;

5.2.3 LAD R1 , 6指令的指令周期

LAD指令是RS型指令,需要访存获取操作数,共包含三个CPU周期:
取指周期
执行周期
使用直接地址访问数据Cache,获得源操作数;
将源操作数送入通用寄存器R1;
计算机组成原理 学习总结5 *处理机
LAD R1 , 6指令周期中的控制信号

  1. LAD取指周期
    与MOV指令的取指周期一样。
  2. LAD指令的执行周期
    IR-> DBUS->AR;
    AR->ABUS->数据Cache ,译码并启动;
    数据Cache -> DBUS -> DR->R1;

执行周期需要两个CPU周期的原因是:
源操作数的地址和源操作数都需要经过DBUS传送;

5.2.4 ADD R1 , R2指令的指令周期

ADD指令的指令周期由两个CPU周期组成 。
取指周期(略)
执行周期
从寄存器R1、R2中取出数据,作为源操作数;
将两数据送往ALU,并使ALU进行加运算;
结果保存到R2中。

ADD R1 , R2指令周期中的控制信号

  1. 取指周期(略)
    与MOV指令的取指周期一样。
  2. 执行周期
    R1、R2->ALU;
    ALU做加运算,将两数相加;
    ALU->DBUS->DR->R2,保存结果

5.2.5 STO R2 , (R3)指令的指令周期

STO指令是RS型指令,需要3个CPU周期。
取指周期(略)
间址周期
根据R3中的地址寻址存储单元;
执行周期
将寄存器R2中的数据送入选定的存储单元;

STO R2 , (R3)指令周期中的控制信号

  1. 取指周期(略)
  2. 执行周期
    R3->DBUS->AR,发出地址启动数据Cache;
    该过程为间址周期;
    R2->DBUS->数据Cache

5.2.6 JMP 101指令的指令周期

JMP指令是一条无条件转移指令,用来改变程序的执行顺序;
JMP指令的执行需要两个CPU周期:
取指周期(略)
执行周期
使用JMP指令中的直接地址为PC赋值;

取指周期(略)
执行周期
IR->DBUS->PC

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

方框
代表一个CPU周期;
方框中的内容表示数据通路的操作或某种控制操作。
菱形
通常用来表示某种判别或测试;
时间上依附于之前一个方框的CPU周期,而不单独占用一个CPU周期;
~(公操作符号)
表示一条指令已经执行完毕,转入公操作。
所谓公操作就是一条指令执行完毕后,CPU所开始的一些操作,比如对外围设备请求的处理等。
例如:
计算机组成原理 学习总结5 *处理机

5.3 时序产生器和控制方式

5.3.1 时序信号的作用和*

时序信号的作用
使计算机准确、迅速、有条不紊地工作;
CPU通过时序控制来识别指令和数据:
指令周期的第一个CPU周期——取指周期;
从存储单元中取出的一定是指令,需要送往IR指令寄存器;
指令周期的其他CPU周期——执行周期;
从存储单元中取出的一定是数据,需要送往运算器。
时序信号的*:电位—脉冲制
脉冲到达之前,电平信号必须要稳定;

控制器的时序信号:
硬布线控制器的时序信号
常采用主状态周期-节拍电位-节拍脉冲三级*。
微程序控制器的时序信号
一般采用节拍电位-节拍脉冲二级*。
计算机组成原理 学习总结5 *处理机

5.3.2 时序信号产生器

时序信号产生器:用逻辑电路实现时序的控制;
微程序控制器中时序信号产生器的组成:
时钟源 提供稳定的基本方波时钟信号;
环形脉冲发生器 产生一组有序的间隔相等或不等的脉冲序列;
节拍脉冲和读写时序译码逻辑 环形脉冲与节拍脉冲共同作用产生各控制信号的时序;
启停控制逻辑
计算机组成原理 学习总结5 *处理机

5.3.3 控制方式

同步控制方式
在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。
异步控制方式
每个指令周期包含的机器周期数目由联络信号控制,不固定。
联合控制方式
大部分操作序列为固定的机器周期,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。
机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。

  1. 同步控制方式(*控制方式)
    同步控制方式的特点
    以指令周期最长的指令为标准,确定指令执行的节拍数;
    控制器产生统一的、顺序固定的、周而复始的节拍电位和工作脉冲;
    简单指令(指令周期短的指令)可空着一部分节拍不用。也就是说,不管什么指令,实现的时间都是相同的。
    优点
    控制电路简单;
    缺点
    CPU有空闲时间,指令的整体运行速度较慢

  2. 异步控制方式(局部控制方式)
    异步控制方式的特点
    每条指令需要多少节拍,就产生多少节拍;
    指令执行完毕,发出回答信号;
    控制器收到回答信号即开始执行下条指令。
    优点
    运行速度快;
    缺点
    控制电路比较复杂

5.4 微程序控制器

5.4.1 微程序控制原理

微程序设计技术是利用软件方法来设计硬件的一门技术。
具有规整性、灵活性、可维护性等一系列优点;
逐渐取代了早期的组合逻辑控制器,已被广泛地应用。
基本思想
仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里;
当机器运行时,一条一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使部件执行规定的操作。

CPU周期的控制信号
取指:PC读、指令Cache读、IR写、 PC增量
间址:IR读、AR锁存
间址:R3读、AR锁存
执行:R1读、ALU传送控制、ALU输出、DR锁存、R0写
执行:数据Cache读、DR锁存、R1写
执行:R1读、R2读、ALU加、ALU输出、DR锁存、R2写
执行:R2读、数据Cache写
执行:IR读、PC写
指令LAD R1 , (R3)可经历①③⑤步骤完成;
指令STO R2 , 6可经历①②⑦步骤完成。
等等。

  1. 微命令和微操作
    控制部件与执行部件之间的联系
    控制部件向执行部件发出控制信号;
    执行部件向控制部件返回状态信息;
    微命令
    控制部件通过控制线向执行部件发出的各种控制命令;
    微操作 执行部件的最基本的操作
    执行部件接受微命令后所执行的操作;
    状态测试
    执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令;
    相容性微操作
    在同时或同一个CPU周期内可以并行执行的微操作;
    相斥性微操作
    不能在同时或不能在同一个CPU周期内并行执行的微操作。

  2. 微指令和微程序
    微指令
    一个CPU周期中,实现一定操作功能的一组微命令的组合。
    微指令一般包含操作控制和顺序控制两大部分
    操作控制:用于发出管理和指挥全机工作的控制信号;
    顺序控制:用于决定产生下一条微指令的地址;
    所有的微指令都存放于控制存储器中,使用地址访问;
    微程序
    能实现一条机器指令功能的多条微指令序列;
    每条机器指令都对应着一段微程序;

  3. 微程序控制器原理框图
    控制存储器(CM)
    存放实现指令系统所需要的全部微指令;
    由只读存储器构成,要求速度快,读出周期短。
    微指令寄存器
    存放当前正在执行的一条微指令;
    由微地址寄存器和微命令寄存器两部分构成;
    微地址寄存器:决定将要访问的下一条微指令的地址;
    微命令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息。
    地址转移逻辑
    跳跃寻址微指令时,负责微地址的修改。
    计算机组成原理 学习总结5 *处理机

微程序控制器的工作过程
“取指微指令”为所有指令的公用微指令;
通常放在控制存储器中的“0”地址单元;
所有机器指令的最后一条微指令的直接地址都指向0地址单元,用以取下一条微指令;
操作码译码,转入执行周期对应微程序;
对机器指令的操作码译码,即P1测试,将所要执行微指令的地址送入微地址寄存器;
微程序执行过程中,逐条读取微指令执行;
一般顺序寻址,直接使用下址字段,寻址后续微指令;
需要跳跃寻址的,经P2条件测试,修正微指令的下址。
执行完对应于一条机器指令的微程序后,返回到取指微指令,不断重复,直至程序执行完毕。

  1. CPU周期与微指令周期的关系
    微指令周期
    读出微指令的时间加上执行该条微指令的时间;
    串行方式的微程序控制器中的概念;
    一般来讲,一个微指令周期时间设计得恰好和CPU周期时间相等。
  2. 机器指令与微指令的关系
    一条机器指令对应一个微程序,一个微程序是由若干条微指令组成的;
    一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
    每一个CPU周期对应一条微指令。
    机器指令与微指令的关系
    使用机器指令编写的程序存放于系统的主存储器中,使用存储单元地址访问;
    每条机器指令对应的微程序,是由保存在控制存储器的微指令构成的,使用微地址来访问;

计算机组成原理 学习总结5 *处理机

5.4.2 微程序设计技术

  1. 微命令编码:
    微指令中操作控制字段的编码表示方法,以及如何把编码翻译成相应的微指令。
    微命令编码主要考虑的问题:
    如何有效缩短微指令字长;
    如何有利于缩短微程序,减少所需的控存空间;
    如何有利于提高微程序执行速度;
    微命令编码表示方法
    直接表示法、编码表示法、混合表示法

  2. 直接表示法
    优点
    简单直观,其输出可直接用于控制,执行速度快;
    缺点
    微指令字较长,因而使控制存储器容量较大。

  3. 编码表示法
    编码方法
    将微指令操作控制字段划分为若干个子字段;
    每个子字段的所有微命令进行统一编码;
    每个子字段的不同编码表示不同的微命令;
    例如,某机器指令系统总共需要256个微命令
    采用直接编码法
    微指令的操作控制字段需256位;
    采用编码表示法
    若采用4位一个子字段,则每个子字段可编码16个微命令;
    256个微命令需16个子字段,即微指令的操作控制字段仅64位。

遵循原则:
把相斥的微命令划分在同一个字段中,相容的微命令划分在不同字段;
字段的划分应与数据通路结构相适应;
每个子字段应留出一个空操作状态,即可选择不发出该子字段对应的所有微命令;
每个子字段所定义的微命令不宜太多;
优点
可大大缩短微指令字长;
缺点
需要微命令译码,故微程序的执行速度稍稍减慢。

某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有( )15位。

微地址的形成方法
微程序的入口地址
微程序的第一条微指令所在控存单元的地址;
确切的说,应该是机器指令执行周期的第一条微指令;
现行微指令
执行微程序过程中,当前正在执行的微指令;
现行微指令的地址称为现行微地址。
后继微指令
现行微指令执行完毕后,下一条要执行的微指令;
后继微指令的地址称为后继微地址。
微指令中确定后继微地址的方法;
计数器方式、多路转移方式;

计数器方式
同CPU中程序计数器产生机器指令地址的方法相类似。
优点
微指令的顺序控制字段较短,微地址产生机构简单。
缺点
多路并行转移功能较弱,速度较慢,灵活性较差

多路转移方式
可根据“判别测试”标志和“状态条件”信息选定某一个候选微地址的方法。
特点
能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快;
但转移地址逻辑需要用组合逻辑方法设计。

微指令格式
水平型微指令
一次能定义并执行多个并行操作微命令的微指令;
一般由操作控制字段、判别测试字段、下地址字段三部分构成;
根据控制字段编码方式的不同,可分为全水平型、字段译码法水平型、直接和译码相混合的水平型三种微指令。
垂直型微指令
微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能;
垂直型微指令的结构类似于机器指令的结构。

水平型微指令与垂直型微指令比较
水平型微指令并行操作能力强,效率高,灵活性强。垂直型微指令则较差。
水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而微程序长。
水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。

5.5 硬连线控制器

硬布线控制器是一种由门电路和触发器构成的复杂树形网络。
硬布线控制器是早期设计计算机的一种方法;
随着新一代机器及VLSI技术的发展,硬布线逻辑设计思想又得到了重视。
与微程序控制相比,硬布线控制的速度较快;
微程序控制中每条微指令都要从控制存储器中读取一次,影响了速度,而硬布线控制主要取决于电路延迟;
近年来在某些超高速新型计算机结构中,又选用了硬布线控制,或与微程序控制器混合使用。

设计步骤:
1)画出指令流程图
2)列出微操作时间表
微操作时间表形象地表明:什么时间、根据什么条件发出哪些微操作信号。将指令流程图中的微操作合理地安排到各个机器周期的相应节拍和脉冲中去;
3)进行微操作信号的综合
当列出所有指令的微操作时间表之后,需要对它们进行综合分析,把凡是要执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内,加以分类组合,列出各微操作产生的逻辑表达式,然后加以简化,使逻辑表达式更为合理。
4)实现电路
根据整理并化简的逻辑表达式组,可以用一系列组合逻辑电路加以实现,如逻辑门电路的组合、PLA或其他逻辑电路。
计算机组成原理 学习总结5 *处理机

5.7 流水CPU

下列关于主存储器(MM)和控制存储器(CS)的叙述中,错误的是( )
计算机组成原理 学习总结5 *处理机

5.7.1 并行处理技术

标准的冯·诺依曼体系结构,采用的是串行处理,即一个时刻只能进行一个操作。
并行性的两种含义:
同时性:两个以上事件在同一时刻发生;
如多机系统中,同一时刻多个进程在运行。
并发性:两个以上事件在同一间隔内发生。
如并发程序,某一时刻CPU中只有一个进程在运行,而在一个时间段内,多个进程同时运行。
并行性的三种形式:
时间并行:使用流水处理部件,时间重叠。
空间并行:设置重复资源,同时工作。
时间并行+空间并行:时间重叠和资源重复的综合应用。

串行:
计算机组成原理 学习总结5 *处理机

并行:
计算机组成原理 学习总结5 *处理机

5.7.2 流水CPU的结构

1、流水计算机的系统组成
流水CPU的组成
指令部件
指令部件本身构成一个流水线,由取指令、指令译码、计算操作数地址、取操作数等过程段组成。
指令队列
指令队列是一个先进先出的寄存器栈,用于存放经过译码的指令和取来的操作数。
执行部件
执行部件可以具有多个算术逻辑运算部件,这些部件本身又用流水线方式构成。
主存采用多体交叉存储器,以提高访问速度。
计算机组成原理 学习总结5 *处理机


流水CPU的加速比


若某CPU指令执行,可划分为K个阶段,每个阶段1个周期;
非流水线CPU处理n个任务时,所需时钟周期数
T1=n × k
一个具有k级过程段的流水CPU处理这n个任务时,需要的时钟周期数
Tk=k+(n-1)
k个时钟周期用于处理第一个任务;
k个周期后,流水线被装满,剩余的n-1个任务只需n-1个周期即可完成。
将T1和Tk的比率定义为k级线性流水处理器的加速比:
Ck= T1 / Tk

指令流水线的性能指标
一条k段线性流水线完成n个任务,假设每一段完成时间均为△t。
1)吞吐率TP:单位时间内流水线完成的任务数量,或是输出的结果数量。
TP =计算机组成原理 学习总结5 *处理机

2)加速比S:完成同一批任务,不使用流水线所用时间和使用流水线所用时间之比。
S = 计算机组成原理 学习总结5 *处理机

3)效率E:在时空图上,完成n个任务占用的时空区有效面积与n个任务所用时间、k个流水段所围成的时空区总面积之比。理想情况下其极限值Emax=1。

4)流水线的最佳段数
增加流水线段数k,流水线的吞吐率和加速比都能提高。
但每一流水段输出端必须设置一个锁存器,当流水段数增多时,锁存器的总延迟时间也将增加,流水线的价格也会增加。
一般处理机中的流水线段数在3~12之间,8段或超过8段的流水线称为超流水线。

流水线分类:
指令流水线
指令执行的并行处理;
指令流划分为取指、译码、取操作数、执行、写回等过程;
算术流水线
运算操作步骤的并行处理;
现代微机中大多采用流水的算术运算器;
处理机流水线
程序步骤的并行处理;
将每一阶段的处理分散在不同的机器上,应用于多机系统中

5.7.3 流水线中的主要问题

资源相关
多条指令进入流水线后,在同一机器周期内争用同一个功能部件所发生的冲突;
解决方法:指令推迟执行,或是设置重复资源;
数据相关
在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,这两条指令就是数据相关;
解决方法:指令推迟执行,或是定向传送技术。
控制相关
当执行转移指令时,根据转移条件是否发生来控制指令的执行顺序;
解决方法:延迟转移法、转移预测法。

1)延迟转移法
由编译程序重排指令序列来实现。
基本思想是“先执行后转移”,即发生转移取指时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线的少数几条指令继续完成。
如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。
2)转移预测法
硬件方法实现,依据指令过去的行为来预测将来的行为。
通过使用转移取指和顺序取指两路指令预取队列器以及指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。