第8章中央处理器(新)_第1页
第8章中央处理器(新)_第2页
第8章中央处理器(新)_第3页
第8章中央处理器(新)_第4页
第8章中央处理器(新)_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第八章中央处理单元计算机组成原理2009年2月6日8.1CPU的功能和结构8.1.1CPU的结构CPU可以自动完成取出指令和执行指令的任务。

CPU结构框图PCIR指令控制操作控制时间控制数据加工处理中断ALU寄存器中断系统1.CPU与系统总线CU时序电路寄存器ALU

中断

系统CUCPU控制总线数据总线地址总线2.CPU的内部结构

算术和布尔逻辑取反移位状态标志内部数据总线CPU寄存器CU中断系统ALU控制信号…8.1.2CPU的功能

当代主流计算机所遵循的仍然是冯.诺依曼的“存储程序”思想,即:当用计算机解决某个问题时,首先必须为它编写程序。

由第七章的讨论已知,程序实质上是一个指令序列,这个序列将明确地告诉计算机:应该逐步地执行什么操作;在什么地方找到用来操作的数据,结果存到何处等。

一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理单元,通常简称:CPU。显然,CPU对整个计算机系统的运行是极其重要的。CPU具有如下四方面的基本功能:★指令控制

程序的顺序控制称为指令控制。用于控制指令严格地按程序规定的顺序,逐条取出并加以执行。

★操作控制

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

对各种操作的实施时间进行定时,称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都严格的时间要求,需要CPU设定规定的时序关系。★数据加工

数据加工就是对数据进行算术运算和逻辑运算处理,这是CPU的核心功能之一。ADDR1,R08.1.3CPU的基本组成

CPU的基本部分由运算器、cache和控制器三大部分组成。

CPU模型参看CAI演示

运算部件寄存器寄存器控制部件运算器控制器运算器:

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

运算器的主要功能:

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

(2)执行所有的逻辑运算,并进行逻辑测试(如零值测试或两个值的比较等)。控制器:

由程序计数器PC、指令寄存器IR、指令译码器ID、时序产生器和操作控制器等组成,它是发布命令的“决策机构”,即完成对整个计算机系统操作的协调与指挥。控制器的主要功能:

(1)控制机器从内存中取出一条指令,并指出下一条指令在内存中的位置;

(2)对指令进行译码或测试,并产生相应的操作控制信号,送往相应的部件,启动规定的动作;

(3)指挥并控制CPU、内存与输入/输出(I/O)设备之间数据流动的方向。8.1.4

CPU中的主要寄存器

在CPU中至少要有六类寄存器:数据缓冲寄存器(DR)、指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、累加寄存器(AC)、状态条件寄存器(PSW),并且根据需要,可以扩充其数目。1.存储器数据缓冲寄存器(MDR)

存储器数据缓冲寄存器MDR用来暂时存放由内存读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也先将它们送到存储器数据缓冲寄存器MDR中,然后再写入内存。存储器缓冲寄存器MDR的作用是:

(1)作为CPU和内存及外部I/O设备之间信息传送的中转站;

(2)用于补偿CPU与内存及外围设备之间在操作速度上的差别;

(3)在单累加器结构的运算器中,存储器数据缓冲寄存器还可兼作为操作数寄存器。2.指令寄存器(IR)

指令寄存器IR用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作,指令译码器就是完成这项工作的。指令寄存器中的操作码字段被送入指令译码器中,操作码一经译码后,即可向操作控制器发出具体操作的特定信号。3.程序计数器(PC)

为了保证程序能够连续地执行下去,CPU必须具有某些手段来自动确定下一条指令的地址。而程序计数器PC正是起到这种作用的,所以PC通常又称为指令计数器。在程序开始执行前,必须将该程序在内存单元的起始地址,即第一条指令的地址送入PC。当执行指令时,CPU将自动修改PC的内容,使其保持的总是将下一条要执行的指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC自增即可。当遇到转移指令(如JMP指令)时,由于后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条指令的地址将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器PC的结构,应当是具有信息寄存和计数两种功能的结构。4.地址寄存器(MAR)

地址寄存器AR用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到对内存的读/写操作完成为止。当CPU和内存进行信息交换,即CPU向内存存/取数据或指令时,都要使用地址寄存器AR和数据缓冲寄存器DR。此外,我们可以把外围I/O设备的设备地址作为像内存的地址单元那样来进行访问,那么可知,当CPU和外围设备交换信息时,同样需要使用地址寄存器和数据缓冲寄存器。地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号clk的作用下,瞬时地将信息打入寄存器5.累加寄存器(AC)

累加寄存器AC通常简称为累加器,它是一个通用寄存器。其功能是:当运算器需执行算术或逻辑运算时,为ALU提供一个工作区,它可暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。目前CPU中的累加寄存器,多达16个,32个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。6.状态条件寄存器(PSW)

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

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

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

时序产生器:产生并发出计算机所需要的时序控制信号。

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

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

(时序+存储)的方法构成。8.3指令周期

8.3.1指令周期的基本概念

计算机所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去。

CAI演示[名词概念]:指令周期

:

CPU从内存取出一条指令并执行完这条指令的时间总和。

CPU周期

:

又称机器周期,CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义。时钟周期

:

通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T。

相互关系:

1个指令周期=若干个CPU周期;

1个CPU周期=若干T周期

取指时间+执行指令时间

下图示出了采用定长CPU周期的指令周期示意图。

[例]:为了分析不同类型的指令所对应的指令周期的情况,后面分析由5条典型指令构成的简单程序的执行特征,以加深对指令周期及指令执行过程的理解。

020

CLA

;累加器清0

(非访内指令)

021

ADD30;(AC)+(30)→AC

(访内指令)

022

STA40

;(AC)→(40)

(访内指令)

023

NOP

;空操作

(非访内指令)

024

JMP21

;21→PC

(非访内指令)可见:程序中有两大类指令,即:非访内型指令和访内型指令。8.3.2指令周期1.一个指令周期包括如下周期:取指:将下一条指令由存储器读入中央处理器。执行:解释操作码并完成指定的操作。中断:若中断是允许的并且已出现,则保存当前进程的状态并为此中断服务。开始取下一条指令执行指令检查中断处理中断停机图8-4有中断的指令周期2.间址周期指令的执行可能涉及到一个或多个存储器中的操作数,它们每个都要求一次存储器访问,而且,若使用间接寻址,则还需要另外的存储器访问。我们可把间接地址的取看成是一个额外的指令子周期,如下图所示。动作的主线由交替的取指令和指令执行动作组成。取来一条指令之后,要对它进行检查以确定是否需要间接寻址。若是,则所要求的操作数使用间接寻址方式取来。在执行之后,可能有一个中断在取下一条指令之前被处理。

取指令执行间接中断图8-5指令周期具有间接寻址的指令周期带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期3.指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否图8-6准确地说明了指令周期的本质。一旦取来一条指令,它的操作数指定器必须证实。然后取每个存储器中的操作数,这个过程可能要求间接寻址。寄存器操作数不需要取,一旦操作码被执行,可能需要一个类似的过程将结果存入主存。指令地址计算指令操作译码操作数地址计算数据操作操作数地址计算中断检查中断取指令取操作数存操作数间接间接下一条指令字符串或向量无中断图8-6指令周期状态图4.CPU工作周期的标志CPU访存有4种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4个工作周期5.三类指令的指令周期取指周期执行周期取指周期执行周期取指周期执行周期取指周期间址周期执行周期(1)非访存指令周期(2)直接访存指令周期(3)间接访存指令周期(4)转移指令周期

(1)非访存指令的指令周期

CLA是一条非访内指令,它需要两个CPU周期,其中:取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。其指令周期请参看CAI演示①取指令阶段

(a)程序计数器PC的内容20(八进制)被装入地址寄存器AR;

(b)程序计数器内容加1,变成21,为取下一条指令做好准备;

(c)地址寄存器的内容被放到地址总线上;

(d)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;

(e)缓冲寄存器的内容传送到指令寄存器IR;

(f)指令寄存器中的操作码被译码或测试;

(g)CPU识别出是指令CLA,至此,取指令阶段即告结束。

②执行指令阶段

(a)操作控制器送一控制信号给算术逻辑运算单元ALU;

(b)ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。

(2)取数(访存)指令的指令周期

显然,本程序中的ADD指令是一条访存型指令,本指令的指令周期由三个CPU周期组成,1个CPU周期用于取出指令,2个CPU周期用于指令的执行。

请参看CAI演示。①.送操作数地址

第二个CPU周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。

把指令寄存器中的地址码部分(30)装入地址寄存器第三个CPU周期主要完成取操作数并执行加法操作中。在此阶段,CPU完成如下动作:

(AC)+(30)→AC

(2)由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。

(3)存数指令的指令周期

本例中,STA指令也是一条访内型指令,对应的指令周期由三个CPU周期组成。也是:1个CPU周期用于取出指令,2个CPU周期用于指令的执行。

请参看CAI演示。在执行阶段的第一个CPU周期中,CPU完成的动作是把指令寄存器中地址码部分的形式地址40装到地址寄存器。其中数字40是操作数地址。①.送操作数地址执行阶段的第二个CPU周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中。CPU完成如下动作:

(a)累加器的内容(6)被传送到数据缓冲寄存器DR;

(b)把地址寄存器的内容(40)发送到地址总线上,40即为将要存入的数据6的内存单元号;

(c)把缓冲寄存器的内容(6)发送到数据总线上;

(d)数据总线上的数写入到所选中的存储器单元中,即将数6写入到存储器40号单元中。

注意:

在这个操作之后,累加器中仍然保留和数6,而存储器40号单元中原先的内容被冲掉。

(4)空操作指令和转移指令的指令周期第四条指令即“NOP”指令,这是一条空操作指令。其中第一个CPU周期中取指令,CPU把23号单元的“NOP”指令取出放到指令寄存器;第二个CPU周期中执行该指令。

因译码器译出是“NOP”指令,第二个CPU周期中操作控制器不发出任何控制信号,机器空等一个CPU周期。JMP指令的指令周期由两个CPU周期组成,请参看CAI演示。①.第一个CPU周期(取指令阶段)

CPU把24号单元的“JMP21”指令取出放至指令寄存器,同时程序计数器内容加1,变为25,从而取下一条指令做好准备。(24)→IR(PC)+1→PC②.第二个CPU周期(执行阶段)

CPU把指令寄存器中地址码部分21送到程序计数器,从而用新内容21代替PC原先的内容25。这样,下一条指令将不从25单元读出,而是从内存21单元开始读出并执行,从而改变了程序原先的执行顺序。

五条指令的取指和执行过程

我们把前面的五条典型指令加以归纳,其取指和执行过程请见CAI演示。2.数据流指令周期期间,严格的事件序列取决于中央处理器的设计,然而我们能以通常的方式取出什么事件必定发生。先假定一个中央处理器,它有存储器地址寄存器(MAR)一个存储器缓冲寄存器(MDR),一个程序计数器(PC),一个指令寄存器(IR)。在取指令周期期间,一条指令由存储器读入,图8-6表示此期间的数据流动。开始时PC内容有待取的下一条指令的地址。这个地址被传送到并放在地址总线上。控制器发生一次存储读,其结果放到数据总线上并被复制到MBR,然后传送到IR。在此期间PC增1,为下次取指做好准备。

1.取指周期数据流指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+1

一旦经历取指周期,控制器检查IR的内容,以确定是否有一个使用间接寻址的操作数指定器。若是一个间址周期完成,如图8-8所示,这是一个简单周期。MDR最右的N位是一个地址引用,被传送到MAR。然后,控制器发一个存储器读信号,得到所要求的操作数地址并送入MDR。像取指和间址周期一样,中断周期是可预期的。图8-9。PC的当前内容必须保存,以便在中断之后中央处理器能恢复正常的工作。于是,PC的内容传送到MBR,将被写入存储器。为此目的,一个专门的存储器位置内控制器装入,例如它可能是一个堆栈指针。年三月中断子程序的地址装入PC。结果是,下一指令周期将以取此相应的指令而开始。

间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR执行周期数据流中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器程序计数器运算器控制器控制存储器用于运算器输入/出设备主存储器控制总线041278BD2090CZVS接口.PCMARIR数据总线地址总线ALU乘商寄存器66881234R9操作数地址操作码寄存器组映射地址寄存器指令寄存器微程序定序器主振脉冲微指令寄存器下地址字段内容80034090807A48098FBAC003041800807800801

0401

0401

4275

4275

MARPC读内存,IR读出内容R0

R0+R1PCPC+1+ADDR0,R18.3.3用指令流程图表示指令周期上述典型指令用指令流程图描述

·公操作:指每一条指今执行完毕后,CPU所进行的一些操作,这些操作包括CPU对外设请求的处理,如中断处理、通道处理等。

·方框图语言描述方法是较为重要的内容,应掌握。例题1:某计算机的数据通路如下图所示,其中M—主存,MBR—主存数据寄存器,MAR—主存地址寄存器,R0-R3—通用寄存器,IR—指令寄存器,PC—程序计数器(具有自增能力),C、D--暂存器,ALU—算术逻辑单元(此处做加法器看待),移位器—左移、右移、直通传送。所有双向箭头表示信息可以双向传送。

请按数据通路图画出“ADD(R1),(R2)+”指令的指令周期流程图。该指令的含义是两个数进行求和操作。其中源操作地址在寄存器R1中,目的操作数寻址方式为自增型寄存器间接寻址(先取地址后加1)。解:“ADD(R1),(R2)+”指令是SS型指令,两个操作数均在主存中。其中源操作数地址在R1中,所以是R1间接寻址。目的操作数地址在R2中,由R2间接寻址,但R2的内容在取出操作数以后要加1进行修改。指令周期流程图如图所示:例题2:某计算机有如下部件:ALU,移位器,主存M,主存数据寄存器MDR,主存地址寄存器MAR,指令寄存器IR,通用寄存器R0——R3

,暂存器C和D。见下图所示(1)请将各逻辑部件组成一个数据通路,并标明数据流向。(2)画出“ADDR1,(R2)”指令的指令周期流程图,指令功能是(R1)+((R2))→R1。解:(1)各功能部件联结成如图所示数据通路。(2)此指令为RS型指令,一个操作数在R1中,另一个操作数在R2为地址的内存单元中,相加结果放在R1中。送当前指令地址到MAR取当前指令到IR,PC+1,为取下条指令做好准备①取R1操作数→C暂存器。②R2中的内容是内存地址③从内存取出数→D暂存器④暂存器C和D中的数相加后送R1

8.4时序产生器和控制方式1.时序信号的作用计算机的操作控制器发出的各种控制信号是时间因素和空间因素的函数,以保证机器有条不紊地工作。2.时序信号组成时序系统最基本体制:电位-脉冲制,即脉冲到达之前,电平信号必须要稳定。以操作控制信号控制数据通路。以时序信号保证各操作信号执行的先后次序。

1)硬布线控制器时序

采用三级体制:主状态周期--节拍电位--节拍脉冲

(指令周期)(CPU周期)(时钟周期)

·主状态周期可包含若干个节拍电位,为最大的时间单位;

·-个节拍电位表示一个CPU周期的时间,它表示了一个较大的时间单位;

·在一个节拍电位中又包含若干个节拍脉冲,表示较小的时间单位。

2)微程序控制器时序

采用二级体制:节拍电位--节拍脉冲

8.4.1时序信号产生器

微程序控制器中使用的时序信号产生器由时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成。1.时钟源时钟源用来为环形脉冲发生器提供频率稳定、且电平匹配的方波时钟脉冲信号。它通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。2.环形脉冲发生器

环形脉冲发生器的作用:是产生一组有序的、间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。

123456789101112131415ΦΦC4C1C2C32.节拍脉冲和存储器读/写时序译码

环形脉冲发生器的作用:是产生一组有序的、间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。T1O=C1•C2T2O=C2•C3T3O=C3T4O=C1RDO=C2•RD’WEO=C3•WE’

123456789101112131415ΦΦC4C1C2C3RD’RDWE’WET1T2T3T4CPU周期CPU周期CPU周期T4O=C1T1O=C1•C2T2O=C2•C3T3O=C3RDO=C2•RD’WEO=C3•WE’T40的下降沿采样启/停信号的状态8.4.2控制方式

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

1.同步控制方式在任何情况下,已定的指令在执行时所需的CPU周期(机器周期)数和时钟周期数都固定不变。根据不同情况,同步控制方式可选取如下方案:(1)采用完全统一的机器周期执行各种不同的指令。(2)采用不定长机器周期。(3)中央控制与局部控制结合。

产生不同微操作命令序列所用的时序控制方式

同步控制方式任一微操作均由统一基准时标的时序信号控制CLK机器周期机器周期机器周期(取指令)(取有效地址)(执行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用完全统一的机器周期和节拍以最长的微操作序列和最繁的微操作作为标准(2)采用不同节拍的机器周期机器周期机器周期(取指令)(执行指令)指令周期T0T1T2T3T0T1T2

节拍(状态)机器周期机器周期(取指令)(执行指令)T0T1T2T3T0T1T2T3TT延长(3)采用中央控制和局部控制相结合的方法T0T1T2T3T0T1T2中央控制节拍T*T*T*局部控制节拍

T3T0T1中央控制节拍机器周期执行周期指令周期取指周期T0T1T2T3局部控制的节拍宽度与中央控制的节拍宽度一致2.异步控制方式

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

3.联合控制方式

此为同步控制和异步控制相结合的方式。

情况(1):大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束;

情况(2):机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。8.4.3中央处理器控制流程计算机对信息进行处理是通过不断执行程序来实现的。程序是能完成某个确定算法的指令序列,所以计算机进行信息处理的过程就是不断地取指令,分析指令和执行指令这样一个周而复始的过程。由以下几步完成:

启动程序执行完?取出指令分析指令执行指令是否有中断?转中断处理程序YNNY图8-3CPU控制流程1.取指令:由程序计数器(PC)指出当前指令地址,通过执行“(MAR←(PC)”和“读”命令,从主存中取出指令。2.分析指令:或称解释指令,指令译码等。对取出的指令进行分析,指出它执行什么操作产生相应的操作控制信号。如果参与操作的数据在主存中,则还要形成操作数地址。3.执行指令:根据指令分析得到的“操作命令”和“操作数地址”,按一定的算法形成相应的操作控制命令序列,通过运算器、存储器及外部设备的具体执行,实现每条指令的功能。响应该请求,中止当前执行的程序,转去执行中断服务程序,处理完毕,返回原程序继续执行。

8.4.4控制单元CU

控制单元产生中央处理器所有的微操作控制信号。所谓微操作,即计算机中最简单不能再分解的操作,如打开某一个控制门,寄存器的清除脉冲等。复杂操作是通过执行一系列微操作实现的。根据指令译码器产生的操作控制信号,时序部件产生的时序信号以及其他控制条件可以产生整个机器所需要的全部微操作控制信号。这些控制信号引向计算机各个部件,以控制指令的执行。此部件可由硬连线方式或微程序方式实现。除上述的主要组成部件外,一般还应包括指令译码器,对指令寄存器中的操作码(有时也包括寻址等)进行译码,产生相应的控制信号。而且中央处理器中的这些组成部件一般通过中央处理器内部总线将各部件连接在一起。

控制单元的外特性指令寄存器控制单元

CU…时钟标志CPU内部的控制信号到系统总线的控制信号来自系统总线的控制信号系统总线8.5指令流水线8.5.1如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度4.提高整机处理能力高速芯片Cache多体并行多总线DMAI/O处理机通道高速器件改进系统结构,开发系统的并行性中断3.提高运算器速度高速芯片改进算法快速进位链8.5.2系统的并行性时间上互相重叠2.并行性的等级指令级(指令之间)过程级(程序、进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行1.并行的概念粗粒度软件实现细粒度硬件实现并发同时取指令3执行指令38.5.3指令流水原理2.指令的二级流水1.指令的串行执行取指令

取指令部件完成总有一个部件空闲指令预取若取指和执行阶段时间上完全重叠指令周期减半速度提高1倍…执行指令

执行指令部件完成取指令1执行指令1取指令2执行指令2取指令3执行指令3取指令2执行指令2取指令1执行指令18.5.4流水线策略指令流水类似于工厂的装配线的使用。即一个产品要通过几个制作步骤。通过把制作过程安排在一条装配线上,产品能在各个阶段同时被加工。这种过程被称为流水处理,因为作为一条流水线,在先前接收的输入已成为加工的结果出现在另一端时,新的输入又在一端被接收进来。将这种概念施加到指令的执行上,事实上一条指令的执行也是分成几个步骤。作为一个简化的方法,将指令处理分成两个阶段:取指令和执行指令。在一条指令执行期间,有主存未被存取的时间。这个时间能用于取下一条指令,从而这个取与当前指令的执行并行工作。图8-9(一)描述了这种方法。此流水线有两个独立的阶段。第一个阶段取一条指令并缓存它。当第二个阶段空闲时,第一个阶段将缓存的指令输送给它。当第二个阶段正在执行此指令时,第一个阶段利用未使用的存储器周期来取下一条指令并缓存它。这称为指令预取或取交迭。8.6中断系统8.6.1概述1.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断现行程序转管指令………管理程序2.中断系统需解决的问题(1)各中断源如何向CPU提出请求?(2)各中断源同时提出请求怎么办?(5)如何寻找入口地址?(4)如何保护现场?(3)CPU什么条件、什么时间、以什么方式

响应中断?(6)如何恢复现场,如何返回?(7)处理中断的过程中又出现新的中断怎么办?硬件

+软件8.6.2中断和异常有两类事件能引起PII挂起当前指令流的执行并响应事件;中断和异常。两种情况下处理器都要保存当前进程的上下文,并将转至一个预先定义的子程序来执行特殊的服务。中断通常是由硬件信号产生的,并可出现在程序执行期间内的任何时刻。异常是由软件产生的,是由执行指令所引发的。有两类中断源和两类异常源:1.中断1)可屏蔽中断:由处理器的INTR引脚接收此信号。除非中断允许标志(IF)被置位,否则处理器不响应可屏蔽中断。2)不可屏蔽中断:由处理器的NMI引脚接收其信号。这类中断的响应不能不响应。

2.异常1)处理器确定的异常:当试图执行一条指令而处理器遇到一个错误时此异常发生。2)程序异常:有些指令(INTO,INT3,INT等)能产生异常。8.6.3中断请求标记和中断判优逻辑1.中断请求标记INTR一个请求源

一个INTR

中断请求标记触发器多个INTR

组成中断请求标记寄存器INTR

分散在各个中断源的接口电路中INTR集中在CPU

的中断系统内12345n掉电过热阶上溢内存读写校验错非法除法键盘打印机2.中断判优逻辑①

分散在各个中断源的接口电路中链式排队器②集中在CPU

内(1)硬件实现(排队器)

1

1

1

&

1

&

1

&INTR1INTR2INTR3INTR4INTR1

INTR2、

INTR3、

INTR4

优先级按降序排列INTP1INTP2INTP3INTP4A、B、C

优先级按降序排列(2)软件实现(程序查询)否……是否A请求?是B

请求?是否C请求?转A

的服务程序入口地址转B

的服务程序入口地址转C

的服务程序入口地址是是是否否8.6.4中断服务程序入口地址的寻找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件…………中断向量排队器输出向量地址

12H、13H、14H入口地址

200、300、4002.软件查询法中断识别程序(入口地址M)地址说明指令

M

JMP1#SR1#D=1转1#服务程序

SKPDZ2#

JMP2#SR2#D=0跳2#D=1转2#服务程序

SKPDZ8#

JMP8#SR8#D=0跳8#D=1转8#服务程序八个中断源1、2、8按降序排列…………

SKPDZ1#1#D=0跳(D为完成触发器)8.6.5中断响应1.响应中断的条件允许中断触发器EINT=12.响应中断的时间指令执行周期结束时刻由CPU发查询信号

CPU中断查询INTR1DQINTR2DQINTRnDQ中断源1中断源2中断源n……至排队器3.中断隐指令(1)保护程序断点(2)寻找服务程序入口地址(3)硬件关中断向量地址形成部件INTSQREINTSQRPC

1

&≥1排队器……断点存于特定地址(0号地址)内断点进栈INT中断标记EINT允许中断R–S

触发器向量地址PC(硬件向量法)中断识别程序入口地址MPC(软件查询法)8.6.6保护现场和恢复现场1.保护现场2.恢复现场寄存器内容断点保护现场其他服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序完成中断服务程序中断隐指令完成中断服务程序完成IRET1.多重中断的概念klmk

+1l

+1m

+1第一次中断第二次中断第三次中断程序断点k+1,l+1,m+18.6.7中断屏蔽技术2.实现多重中断的条件B,CA中断请求主程序(2)优先级别高的中断源有权中断优先级别低的中断源(1)提前设置开中断指令ABCD中断服务程序(A、B、C、D优先级按降序排列)D

&3.屏蔽技术(1)屏蔽触发器的作用MASK=0(未屏蔽)INTR能被置“1”

1

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ

1

DINTR

MASKQCPU查询MASKi

=1(屏蔽)INTPi

=0(不能被排队选中)(2)屏蔽字优先级屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111……000000000000001100000000000000011234561516……16个中断源1、2、3……

16按降序排列(1)断点进栈(2)断点存入“0”地址中断隐指令完成中断周期命令存储器写0MARPCMDR(MDR)存入存储器三次中断,三个断点都存入“0”地址4.多重中断的断点保护断点MDR?如何保证断点不丢失?中断隐指令完成(3)程序断点存入“0”地址的断点保护

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论