计算机组成原理第6章中央处理器

  • 格式:pdf
  • 大小:224.80 KB
  • 文档页数:10

计算机组成原理第6章中央处理器

第六章中央处理器6.1 中央处理器的功能和组成

6.1.1 中央处理器的功能

中央处理器简称CPU,它具有如下4⽅⾯的功能:(1)程序的顺序控制。

(2)操作控制产⽣取出并执⾏指令的微操作信号,并把各种操作信号送往相应的部件,从⽽控制这些部件按指令的要求进⾏动作。(3)时间控制对各种操作实施时间上的控制。

(4)数据加⼯对数据进⾏算术运算和逻辑运算处理。

6.1.2 中央处理器的组成

中央处理器由控制器、运算器和总线组成。(1)控制器

控制器是全机的指挥中⼼,其基本功能就是执⾏指令。

控制器由程序计数器PC、指令寄存器m、地址寄存器(AR)、数据寄存器(DR)、指令译码器、时序系统和微操作信号发⽣器组成。

①程序计数器PC

⽤以指出下条指令在主存中的存放地址,CPU根据PC的内容去主存取得指令。因程序中指令是顺序执⾏的,所以PC有⾃增功能。

②指令寄存器(m):⽤来保存当前正在执⾏的⼀条指令的代码。

③地址寄存器(AR):⽤来存放当前CPU访问内存单元的地址。

④数据寄存器(DR):⽤来暂存由内存储器中读出或写⼊内存的指令或数据。

⑤指令译码器:分别对操作码字段、寻址⽅式字段、地址码字段进⾏译码,向控制器提供操作的特定信号。

⑥时序部件:⽤来产⽣各种时序信号,时序信号可分为CPU周期信号、节拍周期信号和节拍脉冲信号,它们都是由统⼀时钟CLOCK分频得到的。

⑦微操作形成部件:根据IR的内容(指令)、PSW的内容(状态信息)以及时序线路3⽅⾯的内容,产⽣控制整个计算机系统所需的各种控制信号。其结构有组合逻辑型和存储逻辑型两种。

⑧中断系统

⑨操作控制台

(2)运算器

运算器由算术逻辑单元(ALU)、通⽤寄存器、程序状态字寄存器、数据暂存器、移位器等组成。它接收从控制器送来的命令并执⾏响应的动作,负责对数据的加⼯和处理。各组成部件的作⽤是:

①算术逻辑单元(ALU):⽤以进⾏双操作数的算术逻辑运算。

②通⽤寄存器组:⽤来存放操作数(包括源操作数、⽬的操作数及中间结果)和各种地址信息等。

③暂存器:⽤来暂存从主存储器读出的数据,这个数据是不能存放在通⽤寄存器中的,否则会破坏其原有的内容。

④程序状态字寄存器(PSw):保留由算术逻辑运算指令或测试指令的结果建⽴的各种状态信息。

⑤移位器:在ALU输出端设暂存器⽤来存放运算结果,它具有对运算结果进⾏移位运算的功能。(3)总线与数据通路结构

①内部总线CPU内部连接各寄存器的总线。

②系统总线系统总线是CPU与主存储器MM、外部设备接⼝相联的总线,它包括地址总线、数据总线和控制总线。

CPU向地址总线提供访问主存单元或I/O接⼝的地址。

CPU向数据总线发送或接收数据,以完成与主存单元或I/O接⼝之间的数据传送;主存M和I/O设备之间也可以通过数据总线传送数据。CPU通过控制总线向主存或I/O设备发出有关控制信号,或接收控制信号;I/O设备也可以向控制总线发出控制信号。

6.2 指令的执⾏过程

6.2.1 指令执⾏的周期

(1)取指周期

取指周期要解决两个问题:⼀是CPU到哪个存储单元去取指令,⼆是如何形成后继指令地址。

指令地址由PC给出,取出指令后PC内容递增;当出现转移情况时,指令地址在执⾏周期被修改。(2)取操作数周期

取操作数周期要解决的问题是,计算操作数地址并取出操作数。

操作数有效地址的形成由寻址⽅式确定。寻址⽅式不同,有效地址获得的⽅式、过程不

同,提供操作数的途径也不同。因此,取操作数周期所进⾏的操作对不同的寻址⽅式是不相同的。(3)执⾏周期

执⾏周期的主要任务是完成由指令操作码规定的动作,包括传送结果及记录状态信息。操作结果送到什么地⽅由寻址⽅式确定:状态信息,主要是条件码,记录在PSW中。若程序出现转移时,则在执⾏周期内还要决定转移地址。因此,执⾏周期的操作对不同指令也不相同。(4)指令周期将⼀条指令从取出到执⾏完成所需要的时间称为指令周期。

(5)指令周期与机器周期和时钟周期的关系

指令周期是完成⼀条指令所需的时间,包括取指令、分析指令和执⾏指令所需的全部时间。指令周期划分为⼏个不同的阶段,每个阶段所需的时间,称为机器周期,⼜称为CPU⼯作周期或基本周期,通常等于取指时间(或访存时间)。时钟周期是时钟频率的倒数,也可称为节拍脉冲或T周期,是处理操作的最基本单位。

⼀个指令周期由若⼲个机器周期组成,每个机器周期⼜由若⼲个时钟周期组成。

⼀个机器周期内包含的时钟周期个数决定于该机器周期内完成的动作所需的时间。⼀个指令周期包含的机器周期个数亦与指令所要求的动作有关,如单操作数指令,只需要⼀个取操作数周期,⽽双操作数指令需要两个取操作数周期。6.2.2 指令的执⾏

(1)指令的执⾏过程

①取指令根据指令计数器PC提供的地址从主存储器中读取现⾏指令,送到主存数据缓冲器MDR中,然后再送往CPU内的指令寄存器IR中。同时改变指令计数器的内容,使之指向下⼀条指令地址或紧跟现⾏指令的⽴即数或地址码。

②取操作数如果是⽆操作数指令则可直接进⼊下⼀个过程;如果需要操作数则根据寻址⽅式计算地址,然后到存储器中去取操作数。如果是双操作数指令则需两个取数周期。

③执⾏操作根据操作码完成相应的操作并根据⽬的操作数的寻址⽅式存结果。

(2)指令之间的衔接⽅式

指令之间的衔接⽅式有:串⾏的顺序执⾏⽅式、并⾏的重叠处理⽅式和流⽔执⾏⽅式。

①串⾏的顺序执⾏⽅式是指在⼀条指令执⾏完毕后才开始取下条指令。这种⽅式控制简单,但在时间上不能充分利⽤部件。

②为了提⾼设备利⽤率和运算速度,可以让指令重叠执⾏,即在对现⾏指令执⾏运算操作时提前从主存取出下条指令,⽽不必等当前指令全部执⾏完,但如果程序需要转移,预取

下条指令就要失败。不过由于⼤多数情况下程序流程是顺序执⾏的,下条指令地址并不依赖本次执⾏结果,所以预取指令还是能有效地提⾼执⾏速度。

③流⽔执⾏⽅式是重叠⽅式的引申,它仍然基于并⾏重叠处理的原理,但重叠的程度进⼀步提⾼。它将⼀条指令的执⾏过程分解为多个⼦过程,每个⼦过程由⼀个独⽴的功能部件完成,它们构成⼀条流⽔线,实现指令的流⽔处理。

计算机的运算速度⾸先与主频有关,主频越⾼运算速度越快;其次是字长,字长越长,单位时间内完成的数据运算就越多,运算速度就越快;最后是计算机的体系结构,体系结构合理,同样器件的整机速度就快,⽐如存储器采⽤分级结构,处理机采⽤流⽔线结构或多机结构,都是为了提⾼计算机整机的运算速度和效率⽽做的体系结构⽅⾯的改进。6.2.3 指令执⾏的操作流程与微操作序列

每条指令的执⾏过程可以分解为⼀组操作序列。“操作”是指功能部件级的动作,它是可以再分解的。“操作”可进⼀步分解为⼀组微操作序列。“微操作”是指指令序列中最基本的、不可再分割的动作。

若将每⼀条指令的执⾏过程都分解为⼀组操作序列,并将这些操作按指令执⾏的周期分类归并就可得到指令的操作流程。将指令的操作流程以流程图的形式描述,就得到指令操作流程图,简称指令流程图。6.3 时序与控制

6.3.1 控制器的基本控制⽅式

(1)同步控制⽅式

所谓同步控制⽅式,就是系统有⼀个统⼀的时钟,所有的控制信号均来⾃这个统⼀的时钟信号。

根据指令周期、CPU周期和节拍周期的长度固定与否,同步控制⽅式⼜可分为以下⼏种。

①定长指令周期即所有的指令执⾏时间都相等。若指令的繁简差异很⼤,规定统⼀的指令周期,⽆疑会造成太多的时间浪费,因此,定长指令周期的⽅式很少被采⽤。

②定长CPU周期这种⽅式中各CPU周期都相等,⼀般都等于内存的存取周期。⽽指令周期不固定,等于整数个CPU周期。

③变长CPU周期、定长节拍周期这种⽅式的指令周期长度不固定,⽽且CPU周期也不固定,含有的节拍数根据需要⽽定,与内存存取周期和总线周期没有什么固定关系。这种⽅式根据指令的具体要求和执⾏步骤,确定安排哪⼏个CPU周期,以及每个CPU周期中安排多少个节拍周期和节拍脉冲,不会造成时间浪费,但时序系统的控制⽐较复杂,要根据不

同情况确定每个CPU周期的节拍数。CPU内部操作均采⽤同步控制,其原因是同⼀芯⽚的材料相同,⼯作速度相同,⽚内传输线短,⼜有共同的脉冲源,采⽤同步控制是理所当然的。(2)异步控制⽅式

异步控制⽅式中没有统⼀的时钟信号,各部件按⾃⾝固有的速度⼯作,通过应答⽅式进⾏联络,常见的应答信号有准备好Ready或等待WAIT等,异步控制相对于同步要复杂。

CPU内部的操作采⽤同步⽅式,CPU与内存和FO设备的操作采⽤异步⽅式,这就带来⼀个同步⽅式与异步⽅式如何过渡、如何衔接的问题。也就是说,当内存或I/O设备的Ready 信号到达CPU时,不可能恰好为CPU脉冲源的整周期或节拍的整周期,解决办法也是⼀种折衷⽅案,即联合控制⽅式。(3)联合控制⽅式

联合控制⽅式是介于同步、异步之间的⼀种折衷。在联合控制⽅式中,CPU并不是在任何时刻⽴即对来⾃内存和I/O接⼝的应答信号作出反应,⽽是在⼀个节拍周期的结束(下⼀个节拍周期的开始),也就是说,当CPU进⾏内存的读写操作或进⾏I/O设备的数据传送时,按同步⽅式插⼊⼀个节拍周期或⼏个节拍周期,直到内存或I/O设备的应答信号到达为⽌。联合控制⽅式是CPU进⾏内存的读写操作和I/O数据传送操作通常采⽤的⽅式,较好地解决了同步与异步的衔接问题。6.3.2时序产⽣器

由于执⾏指令的各步操作是有先后次序的,并且许多控制信号的长短也有严格的时间限制,这就需要引⼊时序信号对它们进⾏定时控制。(1)组合逻辑控制器的时序采⽤同步控制⽅式的组合逻辑控制器的时序如图6.1所⽰。

(2)微程序控制器的时序系统

⼀个机器指令周期包括⼀系列微周期,每个微周期给出固定的同步脉冲,这就是微程序控制器的时序,它⽐组合逻辑控制器的时序要简单,如图6.2所⽰。

(3)启停逻辑

计算机上电后会⽴即产⽣⼀定频率的主时钟,这并不意味着计算机已经开始⼯作。只

有通过启停逻辑部件将机器启动起来,时序部件才开始产⽣节拍信息(节拍电位和节拍脉冲),以控制全机开始⼯作。

两种常⽤的控制启停的⽅案如图6—9所⽰。

采⽤图6- 9(a)⽅案时,机器上电后只产⽣主时钟φ,节拍信号发⽣器不⼯作,待启停控制逻辑有效将机器启动后,节拍信号发⽣器才开始⼯作,顺序产⽣机器操作所需的节拍电位信号(T1~Tn)。

采⽤图6-9(b)⽅案时,机器上电后⽴即产⽣主时钟甲和节拍电位信号(Tl’~Tn’),但是它们并不能控制机器开始⼯作,待启停控制逻辑有效后,才能产⽣控制机器操作的节拍信号(T1~Tn)。6.4 微操作控制部件

6.4.1 组合逻辑控制器

组合逻辑控制器的核⼼部件就是微操作产⽣部件。微操作产⽣部件,是采⽤组合逻辑设计思想,以布尔代数为主要⼯具设计⽽成的。它的输⼊信号来⾃指令译码器的输出、时序发⽣器的时序信号及程序运⾏的结果特征及状态。它的输出是⼀组带有时间标志的微操作控制信号。每个微操作控制信号是指令、时序、结果特征及状态等的逻辑函数,可表⽰为:微操作=周期·节拍·脉冲·指令码·其他条件

组合逻辑控制器的设计步骤:

①根据CPU的结构图写出每条指令的操作流程图并分解成微操作序列:

②选择合适的控制⽅式和控制时序:

③对微操作流程图安排时序,排出微操作时间表:

④根据操作时间表写出微操作的表达式;

⑤根据微操作的表达式画出组合逻辑电路。