中央处理器

CPU的总体结构

“冯.诺依曼结构”的结构准则,该结构特点是:
①数据信息和控制信息按存储地址存放在存储器中;
②计算机由一个程序计数器控制指令的执行。
根据该结构准则,计算机分成运算器、控制器、存储器、输入设备和输出设备五大部件。

CPU的组成与功能

程序是一个指令序列:这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。
一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。
专门用来完成此项工作的计算机部件称为中央处理器(CPU)。

CPU的基本部分由运算器和控制器2个主要部分组成。

(1)控制器

程序计数器指令寄存器指令译码器时序产生器操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。

控制器内的主要寄存器

程序计数器(PC,Program Counter):存放指令的地址(当前指令或者下一条指令地址)。
当指令 顺序执行时,由PC+1产生下一条指令的地址;
当遇到转移指令时,转移地址☞PC作为下一条指令的地址。

地址寄存器(AR,Address Register):用来保存当前CPU所访问的内存单元的地址
由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止
当CPU和内存进行信息交换,即CPU向主存储器存/取数据时,或者CPU从主存中读出指令时,都要使用地址寄存器和缓冲寄存器
同样若将外围设备的设备地址作为像内存的地址单元那样来看待,则当CPU和外围设备交换信息时可同样使用地址寄存器和缓冲寄存器。

指令寄存器(IR,Instruction Register):用来保存当前正在执行的一条指令
当执行一条指令时,先把它从内存取到缓冲寄存器中然后再传送至指令寄存器。指令划分为操作码地址码字段,由二进制数字组成。
指令译码器(ID,Instruction Decoder):对指令寄存器中的指令操作码字段进行译码
译码器的输出信号送入操作控制信号形成部件,产生该指令所需要的有一定时序关系的操作控制信号序列。

控制器主要功能
(1)取指令。从内存中取出一条指令,并指出下一条指令在内存中的位置;
(2) 指令译码。对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;
(3)控制指令执行。根据分析指令时产生的操作命令和操作数地址形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能。

不断重复执行取指、译码、执行,直至遇到停机或外来的干预。

(4) 控制程序和数据的输入与结果输出
根据程序的规定或人为干预,向输入/输出设备发出一些相应的命令来完成 I/O功能。
(5) 处理异常情况和请求
当计算机出现异常情况,如除数为零和数据传送的奇偶错等,或者出现外部中断请求和DMA请求的时候,控制器可以中止当前执行的程序,转去执行异常处理或者响应中断和DMA请求并进行相关处理。

(2)运算器

是由算术逻辑单元(ALU)累加寄存器数据缓冲寄存器状态条件寄存器组成,它是数据加工处理部件。
相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。

1)算术逻辑单元 (ALU:Arithmetic and Logic Unit)
算术逻辑单元ALU是处理数据的部件,主要负责实现对数据的算术运算逻辑运算
2)累加寄存器 (AC:Accumulator)
累加器是暂时存放参加ALU运算的操作数据和结果的部件,是一个通用寄存器。
运算器中通常至少要有一个累加器。由于运算器的结构不同,可采用多个累加寄存器。
3) 数据缓冲寄存器 ( DR:Data Buffer Register)
缓冲寄存器用来暂时存放从主存储器、输入/输出设备读来的数据或者准备写入主存储器、输入/输出设备的数据。

数据缓冲寄存器的作用是 :
(1)作为CPU和内存、外部设备之间信息传送的中转站
(2)补偿CPU和内存、外围设备之间在操作速度上的差别
(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器

4)状态标志寄存器
状态标志寄存器用来保存由算术指令和逻辑指令运行或测试的结果而建立的各种条件码内容
如运算结果进位标志©,运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N),等等。
这些标志位通常分别由1位触发器保存
除此之外,状态标志寄存器还用来保存中断和系统工作状态等信息以便CPU和系统能及时了解机器运行状态和程序运行状态

运算器的主要功能
(1)执行所有的算术运算
(2)执行所有的逻辑运算并进行逻辑测试,如零值测试或两个值的比较。

CPU的功能

CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能:
指令控制
操作控制
时间控制
数据加工

(1)指令控制

程序的顺序控制称为指令控制。
由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。

(2)操作控制

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

(3)时间控制

对各种操作实施时间上的定时称为时间控制。
在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。

(4)数据加工

数据加工就是对数据进行算术运算和逻辑运算处理。

操作控制器与时序产生器

数据通路是许多寄存器之间传送信息的通路
信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传送到哪个寄存器,都要加以控制。
在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。

操作控制器的功能
就是根据指令操作码时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。

根据设计方法不同,操作控制器可分为三种:
1.硬布线控制器
是采用时序逻辑技术来实现的;
2.微程序控制器
是采用存储逻辑来实现的;
3.门阵列控制器
前两种方式的组合

一个典型的CPU具有:
多个通用寄存器,用来保存 CPU运行时所需要的各类数据信息或运行状态信息;
算术逻辑运算单元(ALU),对寄存器中的数据进行加工处理;
操作控制器,产生各种操作控制信号,以便在各寄存器之间建立数据通路;
时序产生器,对各种操作控制信号进行定时,以便进行时间上的约束。

指令的执行和时序产生器

指令周期

计算机能自动地工作的原因:
CPU能从存放程序的内存里取出一条指令并执行这条指令;
紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。
除非遇到停机指令,否则这个循环将一直继续下去。
在这里插入图片描述
指令周期:是指计算机从内存取出一条指令并完成该指令的执行所需要的时间。
不同指令的指令周期是不相同的。
一个指令周期可能由若干个机器周期组成。
CPU周期(机器周期):CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。
时钟周期(节拍脉冲或T周期):是指CPU执行一个微操作命令(即控制信号)的最小时间单位。
一个CPU周期包含若干个时钟周期。

指令周期、机器周期、时钟周期的关系
在这里插入图片描述

非访问主存取器指令的指令周期

CLA 是一条非访问内存指令,它需要两个 CPU 周期,其中:
取指令阶段需要一个CPU周期,
执行指令阶段需要一个CPU周期。
在这里插入图片描述

  1. 取指令阶段(第一个CPU周期)
    程序计数器PC的内容20(八进制)被装入地址寄存器AR;
    程序计数器内容加1,变成21,为取下一条指令做好准备;
    地址寄存器的内容被放到地址总线上;
    所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;
    缓冲寄存器的内容传送到指令寄存器IR;
    指令寄存器中的操作码被译码或测试;
    CPU识别出是指令CLA,至此,取指令阶段即告结束。
    2.执行指令阶段
    操作控制器送一控制信号给算术逻辑运算单元ALU;
    ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。
直接访问主存储器指令的指令周期

ADD指令的指令周期由三个CPU周期组成
第一个 CPU周期为取指令阶段,其过程与 CLA指令完全相同。
执行指令阶段由2个CPU周期组成:
在第二个 CPU周期中将操作数的地址送往地址寄存器并完成地址译码;
在第三个CPU周期中从内存取出操作数并执行相加的操作。
在这里插入图片描述
(1)送操作数地址
第二个CPU周期主要完成送操作数地址。
在此阶段,CPU的动作只有一个,那就是:把指令寄存器中的地址码部分(30)装入地址寄存器(IR→AR),其中30为内存中存放操作数的地址。
(2)两操作数相加
第三个CPU周期主要完成取操作数并执行加法的操作。
在此阶段,CPU完成如下动作(3个):
(1)把地址寄存器中的操作数的地址(30)发送到地址总线上,即(AR→ABUS)
(2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器,即(M→DBUS→DR)
(3) 执行加操作
由数据缓冲寄存器来的操作数(6)可送往ALU 的一个输入端,
已等候在累加器内的另 一个操作数(因为CLA指令执行结束后累加器内容为零)送往ALU的另一输入端,
于是ALU将两数相加,产生运算结果为0+6=6。这个结果放回累加器,替换了累加器中原先的数0 。(AC+DR→AC)

间接访问主存储器指令的指令周期

STA指令的指令周期由4个CPU周期组成,如图5-10所示。
其中,第一个CPU周期仍然是取指令阶段,其过程和CLA指令、ADD指令完全一样,只是此阶段中程序计数器加1后变为23,为取第四条指令做好了准备。
下面仍不讨论第一个CPU周期,而讨论从第二个CPU周期开始的指令执行阶段的各个操作。
假定第一个CPU周期结束后,“STA I 31”指令已放入指令寄存器并完成译码分析。
在这里插入图片描述
(1) 送地址指示器
在执行阶段的第一个CPU周期中,CPU完成的动作是:把指令寄存器中地址码部分的形式地址(31)装到地址寄存器中,即(IR→AR)。
其中数字31不是操作数的地址,而是操作数地址的地址,或者说是操作数地址的指示器。
(2) 取操作数地址
CPU完成如下动作:
① 地址寄存器的内容(31)发送到地址总线上,即(AR→ABUS)。
② 存储单元(31)的内容(40)读出到数据总线上,即(M→DBUS)。
③ 把数据总线上的数据(40)装入地址寄存器,替代了原先的内容(31),即(DBUS→AR)。
至此,操作数地址40已取出,并放入到地址寄存器中。
(3) 存储和数
CPU完成如下动作:
① 将累加器的内容(6)传送到数据缓冲寄存器DR中,即(AC→DR)。
② 将地址寄存器的内容(40)发送到地址总线上,40就是要存入的数据6的内存单元号,即(AR→ABUS)。
③ 将缓冲寄存器的内容(6)发送到数据总线上,即(DR→DBUS)。
④ 将数据总线上的数据写入所选的存储器单元中,即将数据6写入内存的40号单元中,即(DBUS→M)。

※时序产生器

时序信号的作用和体制
(1) 时序信号的作用

CPU中,时序信号使计算机可以准确、迅速、有条不紊地工作。
当计算机加电启动后,在时钟脉冲作用下, CPU将根据当前正在执行的指令的需要,产生时序控制信号,控制计算机各个部件有序地工作。
机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。

用二进制码表示的指令和数据都放在内存里,那么CPU是怎样识别出它们是数据还是指令呢?

[答案] CPU 能很容易通过时序控制信号时间空间上识别出是数据还是指令。

时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段

空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器

在一个CPU周期中,又把时间分为若干个小段,以便规定CPU在每一小段时间里具体进行何种操作。
这种严格的时间约束对CPU是非常必要的,时间进度既不能来得太早,也不能来得太晚,否则就可能造成丢失信息或导致错误的结果。
计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。
操作控制器发出的各种控制信号一般都是时间因素(时序信号)和空间因素(部件位置)的函数

(2) 时序信号的体制

计算机硬件的器件特性决定了:时序信号最基本的体制是电位—脉冲制
用这种体制进行寄存器之间的数据传送时,具体如下:
将数据加在触发器的电位输入端,
将加入数据的控制信号加在触发器的时钟输入端。
电位的高低分别表示数据1、0。
为保证加入到寄存器中的数据可靠,必须先建立电位信号,并且要求电位信号在加入数据的控制信号到来之前必须已经稳定。
组合逻辑控制器(硬布线控制器)中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。
主状态周期:包含若干个节拍电位,可以用一个触发器的状态持续时间来表示,是最大的时间单位。
节拍电位:一个节拍电位表示一个CPU周期时间,包含若干个节拍脉冲,较大的时间单位。
节拍脉冲:把一个CPU周期划分成几个较小的时间间隔,这些间隔可以相等,也可以不等。
在微程序控制器中,时序信号比较简单,一般采用电位-节拍脉冲二级体制。

时序信号产生器

时序信号产生器:就是用逻辑电路实现上述控制时序,产生指令周期控制时序信号的部件 。
从设计操作控制器的方法来讲,组合逻辑控制器的时序电路比较复杂,而微程序控制器的时序电路比较简单。
时序信号产生器最基本的结构是一样的,都是由时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成。
省略。。。。。。。。

CPU控制方式

控制方式:形成控制不同操作序列的时序信号的方法。
其实质反映了时序信号的定时方式
常用的有同步控制、异步控制、联合控制三种方式。

1.同步控制方式

含义:指在任何情况下,给定的指令在执行时所需的机器周期数和时钟周期数都固定不变的控制方式。

根据不同情况,同步控制方式可选取如下方案:
(1) 采用完全统一的机器周期执行各种不同的指令。
这要求计算机系统所有指令的指令周期都具有相同的节拍电位数和相同的节拍脉冲数。
这种方法对简单指令和简单的操作来讲,必然造成时间浪费。
(2) 采用不定长机器周期
将大多数操作安排在一个较短的机器周期内完成,对某些时间紧张的操作,则采取延长机器周期的办法来解决。
(3) 中央控制与局部控制结合
中央控制:将大部分指令安排在固定的机器周期内完成
局部控制:对少数复杂指令(乘、除、浮点运算等)采用另外的时序进行定时

2.异步控制方式

特点:每条指令、每个操作控制信号需要多少时间就占用多少时间。
这意味着每条指令的指令周期可由多少不等的机器周期数组成;也可以是当控制器发出某一操作控制信号后,等待执行部件完成操作后发“回答”信号,再开始新的操作。
显然,用这种方式形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步。
异步控制方式的优点是运行速度快,其缺点是控制电路比较复杂

3.联合控制方式

所谓联合控制方式,就是指同步控制和异步控制相结合的方式。有2种实现方法:
①大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。
例如,CPU访问主存或者I/O端口时,依靠主存或者I/O发回CPU的有效“READY”信号作为读/写周期的结束。
②机器周期的节拍脉冲数是固定的,但是各条指令周期的机器周期数却是不固定的。下一节要讲到的微程序控制就是采用这种方法。
联合控制方式的优点是能保证一定的运行速度,其缺点是控制电路设计相对比较复杂

※微程序设计技术和微程序控制器

微程序设计技术是利用软件方法进行硬件设计的一门技术。
采用微程序设计思想的微程序控制器,同组合逻辑控制器相比较,具有规整、灵活、易维护等一系列优点。
在计算机设计中,普遍采用微程序设计的控制器取代早期采用的组合逻辑控制器。

微程序控制的基本思想

  1. 若干微命令编制成一条微指令,控制实现一步操作;
  2. 若干微指令组成一段微程序,解释执行一条机器指令;
  3. 微程序事先存放在控制存储器中,执行机器指令时再取出。
    就是按照设计解题程序的思路,把操作控制信号编成微指令,并将微指令代码存放到只读存储器里;
    当机器运行时,一条一条地读出这些微指令,产生计算机所需要的各种操作控制信号,使相应部件执行规定的操作。

※微程序设计技术

1.基本概念

一条指令功能:是由控制部件通过控制线向执行部件发出各种控制命令;执行部件接受命令后,按一定次序执行一系列最基本操作完成的。
这些控制命令通常称为微命令,而这些最基本的操作称为微操作

微操作:指令执行时必须完成的基本操作。
例如,PC→AR,PC+1→ PC,RAM→IR。
微命令:是组成微指令的最小单位,也就是控制微操作实现的控制信号。一般用于控制数据通路上门的打开/关闭,或者功能选择。
微指令:是一组微命令的集合,用于完成一个功能相对完整的操作。
微程序:微指令的有序集合,用于实现机器指令的功能。
控制存储器:是存放微程序的存储器。该存储器主要存放控制命令下一条执行的微指令地址

主要部件
(1)控制存储器CM
功能:存放微程序
CM属于CPU,不属于主存储器。
2)微指令寄存器 µIR
功能:存放现行微指令。
微命令字段:提供一步操作所需的微命令。
微地址字段:指明后续微地址的形成方式;提供微地址的给定部分。
3)微地址形成电路
功能:提供两类微地址
微程序入口地址:由机器指令操作码形成
后续微地址:由微地址字段、现行微地
址、运行状态等形成。

2.微指令基本结构
(1)微指令的基本格式

a)操作控制部分:用来发出指挥计算机工作的控制信号。
可以用操作字段的每一位表示一个微命令,位信息为“1”表示发出微命令;位信息为“0”表示不发出微命令。
微命令信号既不能来得太早,也不能来得太晚,为此要求这些微命令信号还要加入时间控制。
b)顺序控制部分:用来决定产生下一条微指令的地址
顺序控制字段的若干位直接给出下一条微指令的地址,
其余各位则做为判别测试状态的标志,
如标志为“0”表示不进行判别测试,直接按顺序控制字段给出的地址取下一条微指令;
若标志为“1”表示要进行判别测试,根据测试结果,按要求修改相应的地址位信息,并按修改后的地址取下一条微指令。
在这里插入图片描述

(2) 微指令周期与CPU周期的关系

串行方式的微程序控制器中:
微指令周期 = 读出微指令的时间+执行该条微指令的时间
为保证整个机器控制信号的同步,可将一个微指令周期时间设计得恰好和一个CPU周期时间相等。
下图示出了某小型机中CPU周期与微指令周期的时间关系:
在这里插入图片描述
一个CPU周期包含四个等间隔的节拍脉冲T1~T4,每个脉冲宽度为200ns。用T4作为读取微指令的时间,用T1+T2+T3时间作为执行微指令的时间。
例如在前600ns时间内运算器进行运算,600ns时间结束时运算器已运算完,用T4上升沿将运算结果送入寄存器,同时可用T4间隔读取下条微指令,经200ns的延迟,下条微指令又从控制存储器读出,并在T1上升沿输入到微指令寄存器中。若忽略触发器的翻转延迟,则下条微指令的微命令信号就从T1上升沿起开始有效,直到下一条微指令读出后并输入到微指令寄存器为止,这样一条微指令的时间恰好是800ns。
因此,一条微指令的时间就是一个CPU周期的时间。

(3)微指令与机器指令的关系

一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。
因此,一条机器指令的功能是由若干条微指令组成的序列来实现的
简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。
②从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。
③由于一个CPU周期对应一条微指令,下图所示的四条典型指令的指令周期图,就是这四条指令的微程序流程图
在这里插入图片描述

3.微程序设计技术

微程序设计的关键是微指令结构的设计
设计微指令结构需要考虑以下问题:
1.如何缩短微指令字的长度。
2.如何减小控制存储器的容量。
3.如何减少微程序长度。
4.如何提高微程序的执行速度。
5.如何易于修改微指令。
6.如何增加微程序设计的灵活性。
这些也是微程序设计技术所要讨论的问题。

(1) 微指令的编码译码控制方法

微指令由控制字段顺序控制字段组成。
微命令编码、译码控制方法:就是对微指令中的操作控制字段进行编码表示,并且给出操作控制信号的方法。
通常有以下5种方法:
1) 位直接控制法
在微指令的控制字段中,每一位表示一个微命令。
在设计微指令时,是否发出某个微命令,只要将微指令控制字段中相应位置成“1”或“0”,即打开对应控制门,便可发出或禁止某个微命令。
优点:是简单直观,其输出直接用于控制。
缺点:是微指令字较长,因而使控制存储器容量较大。
2)字段直接译码控制法
如果在若干个(一组)微命令中,在选择使用它们的微周期内,每次只能有一个微命令有效,则这一组微命令是互相排斥的。
字段直接译码控制法就是把一组相斥性的微命令信号组成一个字段(一个小组),然后通过字段译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。
采用该方法,可以用较小的二进制信息位表示较多的微命令信号。
3)字段间接译码控制法
是在字段直接译码控制法的基础上,进一步缩短微指令字长的方法。
若在字段直接译码控制法中规定一个字段的某些命令由另一个字段中的某些微命令来解释,则这种方法称为字段间接译码控制法
4)混合编码译码控制法
这种方法是将位直接控制法与字段译码控制法混合使用的方法,能综合考虑微指令字长、灵活性和执行微程序速度等方面的要求。
5)常数字段控制法
这种方法在微指令中附设一个常数字段,就象指令中的立即数一样,用它来给某些执行部件直接发送常数。该常数有时作为操作数送入 ALU参加运算,有时也作为计数器的初值来控制微程序循环次数。

(2) 微地址的产生及微程序流的控制

当前正在执行的微指令,称为现行微指令。
现行微指令所在的控制存储器单元的地址称为现行微地址。
现行微指令执行完毕后,下一条要执行的微指令称为后继微指令。
后继微指令所在的控制存储器单元地址称为后继微地址。
所谓微程序流的控制是当现行微指令执行完毕后,控制产生后继微指令的后继微地址的过程。
通常,产生后继微地址有3种方法
1)计数器方式
这种方法与使用程序计数器产生机器指令地址的方法类似:
在顺序执行微指令时,后继微地址由现行微地址加上一个增量来产生;
在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定的后继微地址的下一条微指令。
在这种方法中,微地址寄存器通常改为计数器,顺序执行的微指令序列必须安排在控制存储器的连续单元中。
计数器方式的基本特点是:
微指令的顺序控制字段较短,微地址产生机构简单。
但是多路并行转移功能较弱,速度较慢,灵活性较差。
2)增量方式与断定方式相结合的方法

这种方法将微指令顺序控制部分分成两部分:条件选择字段和转移地址字段。
当微程序转移时,将转移地址送微程序计数器(μPC),否则顺序执行下一条微指令(μPC加 l)。
3)多路转移方式
一条微指令具有多个转移分支功能的情况称为多路转移。
例如,“取指”微指令根据操作码OP产生多路微程序分支而形成多个微地址。
在多路转移方式中,
当微程序不产生分支时,后继微地址直接由微指令的顺序控制字段给出;
当微程序出现分支时,将有若干个候选微地址可供选择,按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。
“判别测试”有n位标志,可实现微程序2的n次方路转移,涉及微地址寄存器的n位 。
多路转移方式的特点是:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快,但转移地址逻辑需要用组合逻辑方法设计。

(3) 微指令的格式

1)水平型微指令:一次能定义并执行多个并行操作微命令的微指令。
采用直接控制法进行编码的,属于水平型微指令的典型例子。
水平型微指令的一般格式如下:
在这里插入图片描述
按照控制字段的编码方法的不同,水平型微指令又分为三种:
全水平型(不译法)微指令、字段译码法水平型微指令、直接和译码相混合的水平型微指令。

2)垂直型微指令:设置微操作码字段时,采用微操作码编译法来规定微指令的功能的微指令。
垂直型微指令的结构类似于机器指令的结构,有操作码,在一条微指令中只有1~2个微操作命令,每条微指令的功能简单。
因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多。
它采用较长的微程序结构来换取较短的微指令结构。
下面举4条垂直型微指令的微指令格式加以说明。设微指令字长为16位,微操作码3位。
(1)寄存器-寄存器传送型微指令
在这里插入图片描述
功能:把源寄存器数据送目标寄存器。13—15位为微操作码(下同),源寄存器和目标寄存器编址各5位,可指定31个寄存器。

(2)运算控制型微指令
在这里插入图片描述
功能:选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、右输入源编址可指定31种信息源之一。
(3)访问主存微指令
在这里插入图片描述

功能:将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。

(4)条件转移微指令
在这里插入图片描述

功能:根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行μPC的低位地址。 测试条件字段有4位,可规定16种测试条件。
3)水平型微指令与垂直型微指令的比较
A.水平型微指令并行操作能力强而且高效灵活,而垂直型微指令并行操作能力低且效率低。
水平型微指令中,设置有能控制信息传送通路以及进行所有操作的微命令,在设计微程序时,可以同时定义比较多的并行操作的微命令,来控制尽可能多的并行信息传送。
因此,水平型微指令具有效率高及灵活性强的优势;而垂直型微指令一般只能完成一个操作,控制一两个信息传送通路,因此,微指令的并行操作能力低,效率也低。
B. 水平型微指令执行时间短,垂直型微指令执行时间长。
由于水平型微指令的并行操作能力强,因此,可以用较少的微指令数来实现一条指令的功能,从而缩短了指令的执行时间,而且执行一条微指令时,水平型微指令的微命令一般能直接控制控制对象;
垂直型微指令要经过译码才能控制被控对象,这也会影响速度。
C. 由水平型微指令解释指令的微程序,微指令字比较长,但微程序短;而垂直型微指令的微指令字比较短而微程序长。
D.水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,用户比较容易掌握。
水平型微指令与机器指令差别很大,一般需要对机器的结构、数据通路、时序系统以及微命令很精通才能设计。
(4)※ 串行微程序控制和并行微程序控制方式
串行微程序控制方式
在串行微程序控制方式中,执行现行微指令的操作与取下一条微指令的操作在时间上是按顺序进行的,所以微指令周期=取微指令的时间+执行微操作的时间,即等于只读存储器的读数周期
串行微程序控制的微指令周期较长,但控制简单形成微地址的硬部件比较少
在这里插入图片描述
并行微程序控制方式
就是将取微指令和执行微指令这两类操作在时间上重叠并行进行的方式。
由于取微指令和执行微指令的操作是在两个完全不同的部件中执行的,因此,可以将这两部分操作同时进行,以缩短微指令周期。
并行微程序控制可以缩短微指令周期,但是为了不影响本条微指令的正确执行,需要增加一个微指令寄存器,用以暂存下一条微指令。其次,当微程序出现转移时,需要解决如何确定下一条微指令地址。
在这里插入图片描述

硬布线控制器与门阵列控制器

CPU的新技术

流水线工作原理

传统计算机中各条机器指令之间是串行执行的,即按指令的顺序执行完一条指令再执行下一条指令。
一条指令的执行过程包括:取指令、分析指令和执行指令
如按四个周期完成一条指令来考虑,其执行过程如下:
在这里插入图片描述

串行工作方式:

8088以前的CPU采用串行工作方式
在这里插入图片描述
1)CPU执行指令时总线处于空闲状态
2)CPU访问存储器(存取数据或指令)时要等待总线操作的完成

缺点:CPU无法全速运行
解决:总线空闲时预取指令,使CPU需要指令时能立刻得到

在某些计算机中,CPU分成指令部件IU执行部件EU
指令部件完成取指和指令译码等操作。
执行部件完成运算和保存结果等操作。
如按指令部件和执行部件顺序操作来考虑,可将程序的执行过程表示成:
在这里插入图片描述
如果把两条指令或若干条指令在时间上重叠起来进行执行,则将大幅度提高程序的执行速度,如图所示:
在这里插入图片描述
在这里插入图片描述
图(b)中,将一条指令分成四段,若每段所需时间为t,则一条指令的执行时间为4t,但当第一条指令处理完后每隔t时间就能得到一条指令的处理结果,即每条指令的平均执行时间为t,平均速度提高到了4倍。
其过程与现代工业生产中的流水装配线相似,因此把这种处理器称为流水线处理器

并行工作方式:

8088CPU采用并行工作方式
在这里插入图片描述
除了上述的指令执行流水线外,还有运算操作流水线,例如,执行浮点加法运算时,可以分成三段(三级流水线):对阶、尾数加、结果规格化。
每一段由专门的逻辑电路完成指定操作,输出结果保存在锁存器中,作为下一段的输入,如图所示。
在这里插入图片描述
综上所述,流水线处理技术是在重叠控制基础上发展起来的,它是将一个复杂过程分解成多个子过程,每个过程段都有专用的功能部件,因此可以使所有子过程同时对不同的数据进行处理。

流水线技术特点为:
1)一个流水过程,可以包括多个子过程
2)每一个子过程都有专门的功能段来完成;
3)各功能段所需要的时间是相同的
4)适合于大量的重复性的处理

CPU按流水线方式组织:
为了实现流水,首先把输入的任务(或过程)分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。
当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。

流水线分类
指令流水线:指指令步骤的并行
将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段。
算术流水线:指运算操作步骤的并行
如流水加法器、流水乘法器、流水除法器等。
处理机流水线(宏流水线):是指程序步骤的并行
由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。
数据流从第一台处理机输入,经处理后被送入与第二台处理机相联的缓冲存储器中。第二台处理机从该存储器中取出数据进行处理,然后传送给第三台处理机,如此串联下去。

小结
CPU是计算机的中央处理部件,具有指令控制、操作控制、时间控制、数据加工等基本功能。
 早期的CPU由运算器和控制器两大部分组成。随着高密度集成电路技术的发展,当今的C PU芯片变成运算器、cache和控制器三大部分,其中还包括浮点运算器、存储管理部件等。CPU至少要有如下六类寄存器:指令寄存器、程序计数器、地址寄存器、缓冲寄存器、通用寄存器、状态条件寄存器。
 CPU从存储器取出一条指令并执行这条指令的时间和称为指令周期。由于各种指令的操作功能不同,各种指令的指令周期是不尽相同的。划分指令周期,是设计操作控制器的重要依据 。
 时序信号产生器提供CPU周期(也称机器周期)所需的时序信号。操作控制器利用这些时序信号进行定时,有条不紊地取出一条指令并执行这条指令。
 微程序设计技术是利用软件方法设计操作控制器的一门技术,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中得到了广泛应用,并取代了早期采用的硬布线控制器设计技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值