《计算机组成与工作原理电子教案第3章.ppt》由会员分享,可在线阅读,更多相关《计算机组成与工作原理电子教案第3章.ppt(63页珍藏版)》请在三一办公上搜索。
1、主 编 刘晓川,计算机组成与工作原理 电子教案,中等职业学校教学用书(计算机技术专业),第3章 计算机硬件工作原理,3.1 中央处理器 3.2 存储器 3.3 总线系统,3.1 中央处理器,3.1.1 CPU的组成结构与功能(一)CPU的功能用计算机解决某个问题时,首先必须为它编写程序。程序是由指令构成的序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,CPU就可以自动完成取出指令和执行指令的任务。CPU对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能:1操作控制一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理
2、并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。,2指令控制 程序的顺序控制,称为指令控制。由于程序是一个由指令构成的序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行,因此,保证机器按顺序执行程序是CPU的首要任务。3时间控制 对各种操作实施时间上的定时,称为时间控制。因为在计算机中,各种指令的操作信号均受到时间的严格定时。另一方面,一条指令的整个执行过程也受到时间的严格定时。只有这样,计算机才能有条不紊地自动工作。4数据加工数据加工,就是对数据进行算术运算和逻辑运算处理。完成数据的加工处理,是CPU的根本任务。因为,
3、原始信息只有经过加工处理后才能对人们有用。,(二)CPU的组成结构,在前面介绍的内容中我们知道CPU主要由运算器和控制器组成。但随着计算机硬件技术的发展,特别是集成电路技术的应用,以及人们对计算机运算速度的更高要求,一些在传统意义的计算机中属于CPU外部的逻辑功能部件纷纷移入到了CPU中,比如浮点运算单元、高速缓冲存储器等。这样,CPU就由运算器(包括定点与浮点运算单元)、控制器以及Cache三大部分组成。下面先给出CPU的简单模型,然后再分块详细介绍。,图3-1 CPU的简单模型,在图3-1中缩写字母代表的含义:ALU表示算术逻辑运算单元 Acc表示累加寄存器CU表示控制单元 PSWR表示程
4、序状态字寄存器IR表示指令寄存器 PC表示程序记数器MDR表示存储器数据寄存器 MAR表示存储器地址寄存器1运算器的主要功能有:运算器由算术逻辑运算单元(ALU)、累加寄存器、数据缓冲寄存器和程序状态寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:执行所有的算术运算;执行所有的逻辑运算,并可进行逻辑测试,如零值测试或两个值的比较等。,2控制器的主要功能有:控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成
5、协调和指挥整个计算机系统的操作。控制器的主要功能有:从主存中取出一条指令,并指出下一条指令在主存中的位置。对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。指挥并控制CPU、主存和输入输出设备之间的数据流动方向。,(三)CPU中的主要寄存器 CPU中的寄存器是用来暂时保存运算和控制过程中的中间结果、最终结果以及控制、状态信息的,它可以分为通用寄存器和专用寄存器两大类。1通用寄存器通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。现代计算机中为了减少访问存储器的次数,提高运算速度,往往在CPU中设置大量的通用寄存器,少则几个,多则几十个,甚至上
6、百个。累加寄存器Acc也是一个通用寄存器,它用来暂时存放ALU运算的结果信息。例如,在执行一个加法运算前,先将一个操作数暂时存放在Acc中,再从主存中取出另一操作数,然后同Acc的内容相加,所得的结果送回Acc中。运算器中至少要有一个累加寄存器。,2专用寄存器 程序计数器(PC)程序计数器又称指令计数器,用来存放正在执行的指令地址或接着要执行的下条指令地址。对于顺序执行的情况,PC的内容应不断地增量(加“1”),以控制指令的顺序执行。这种加“1”的功能,有些机器是程序计数器本身具有的,也有些机器是借助运算器来实现的。在遇到需要改变程序执行顺序的情况时,将转移的目标地址送往PC,即可实现程序的转
7、移。有些情况下除改变PC的内容外,还需要保留改变之前的内容,以便返回时使用。指令寄存器(IR)指令寄存器用来存放从存储器中取出的指令。当指令从主存取出暂存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。,存储器数据寄存器(MDR)存储器数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存存入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中。存储器地址寄存器(MAR)存储器地址寄存器用来保存当前CPU所访问的主存单元的地址。由于主存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到主存的
8、读写操作完成为止。当CPU和主存进行信息交换,无论是CPU向主存存取数据时,还是CPU从主存中读出指令时,都要使用存储器地址寄存器和数据寄存器。状态标志寄存器(PSWR)状态标志寄存器用来存放程序状态字(PSW)。程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。它主要包括两部分内容:一是状态标志,如进位标志(C)、结果为零标志(Z)等,大多数指令的执行将会影响到这些标志位;二是控制标志,如中断标志、陷阱标志等。状态标志寄存器的位数往往等于机器字长,各类机器的状态标志寄存器的位数和设置位置不尽相同。,3.1.2 CPU的指令系统,(一)指令系统概述 指令和指令系统是计
9、算机系统中的最基本概念。计算机系统主要由硬件和软件两大部分组成。所谓硬件是指由五大基本部件组成的实际装置。软件则是为了方便用户使用计算机而编写的各种程序,最终转化成一系列机器指令后在计算机上执行。计算机的指令是机器指令的简称,是计算机硬件能够识别和执行的操作命令,用二进制编码形式表示。从表面上看,指令与数据(在计算机中也是以二进制编码形式表示)并没有什么不同,但作为指令的二进制编码与数据的二进制编码是有着根本不同的含意的。每一条指令都指示计算机硬件完成指定的基本操作。任何一种类型的计算机的基本指令的个数都是固定的,但通过它们编写出的程序是无穷的。,指令系统是一台计算机所能执行的全部指令的集合。
10、计算机的性能与它所设置的指令系统有很大的关系,而指令系统的设置又与机器的硬件结构密切相关。指令系统的发展也由早期计算机的硬件结构简单、指令条数和实现的功能简单到后来硬件结构越来越复杂、指令条数和功能也越来越丰富。比如早期的计算机CPU中无专门的乘除法模块,也没有乘除法指令,实现乘除运算通过执行实现乘除的子程序来完成(将乘除转换为加减和移位),但随着硬件技术的发展,CPU中设有专门的乘除法模块,有了专门的乘除法指令,计算机执行乘除法操作的速度也得到了提高。一台计算机的指令系统越丰富,这台计算机的CPU越复杂,其处理能力也越强。,一个完善的指令系统应该具备如下几个方面的特性:1完备性完备性是指用汇
11、编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。2有效性有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要是指时空效率,即程序在执行时所占用的存储空间小而执行速度快。3规整性规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性:一种操作性质的指令可以支持各种数据类型;格式一致性:指令长度和数据长度有一定的关系,以方便处理和存取。4兼容性兼容性主要是指程序的移植性。至少要能做到“向上兼容”,即低档机上运行的
12、软件可以在高档机上运行。,一般来说,指令包括操作码及地址码两部分。操作码用来表示各种不同的操作,或者说操作码指明该指令执行什么类型的操作,。地址码指出被操作的数据在内存中存放的位置。但深入讨论指令的构成时,指令中还应以下信息:操作的种类和性质,我们称之为操作码。操作数的存放地址,在双操作数运算中,如加、减、乘、除、逻辑乘、逻辑加的运算中都需要指定两个操作数,给出二个操作数地址。操作结果存放地址。,(二)指令的格式,下条指令存放地址,这样可以保证程序能连续不断地执行下去,直到程序结束。指令中用不同的代码段表示上述不同信息,这种代码段的划分和含义,就是指令的编码方式,又叫指令格式,通常一条指令中包
13、括操作码字段和若干个地址码字段。有些地址信息可以在指令中明显的给出,称为显地址;也可以依照某种事先的约定,用隐含的方式给出,称为隐地址。,1地址码结构根据指令中显地址的个数可以分为如下几种指令格式:四地址指令OP:操作码;A1:第一地址码,存放第一操作数;A2:第二地址码,存放第二操作数;A3:第三地址码,存放操作结果;A4:第四地址码,存放下条要执行指令的地址。其中:Ai表示地址,(Ai)表示存放于该地址中的内容。该指令完成的操作可示意为:(A1)OP(A2)A3这种指令直观易懂,后续指令的地址可任意填写。由于程序中大部分指令都是顺序执行的,当采用指令计数器后,A4地址可以省去;则得到三地址
14、指令。,三地址指令 三地址指令中各项含义与四地址指令相同。由于采用了指令计数器(又称程序计数器,简称PC),省去了A4地址;用三地址指令编写的程序,其指令在内存中必须依次存放,才能利用程序计数器自动增量的办法顺序执行。若程序要转向时,必须用转移指令改变程序的执行顺序。,二地址指令OP:操作码;A1:既作第一操作数地址,又作目的地址;A2:第二操作数地址。该指令完成的操作可示意为:(A1)OP(A2)A1使用二地址指令编写的程序,其指令在内存中也要依次存放,才能用程序计数器自动增量使之顺序执行。若程序发生转向时,也必须用转移指令改变程序的执行顺序。当二地址指令执行之后,A1中的内容被修改了。,一
15、地址指令 指令中只给出一个操作数地址,另一个操作数地址和目的地址则是隐含的。这个隐含的地址就是运算器的累加寄存器Acc。该指令完成的操作可示意为:(Acc)OP(A)Acc 采用一地址指令编写的程序,其指令在内存中也要顺序存放,由程序计数器自动增量控制其顺序执行。程序转向时,也用转移指令改变程序的执行方向。在程序执行前,必须用一条“取数指令”把其中一个操作数放到累加寄存器中。程序结束后,累加寄存器的内容已被修改。若要将累加寄存器中的结果送回内存,则必须使用“存数指令”。,零地址指令没有操作数地址的指令称为零地址指令。执行零地址指令时,被运算的操作数地址全部是隐含的,指令格式中只说明作什么操作。
16、如停机指令就是零地址指令。指令中地址码个数的选取需要考虑诸多因素。从缩短程序长度、用户使用方便、增加操作并行度等方面考虑,采用三地址指令格式较好;从缩短指令长度,减少访存次数、简化硬件设计等方面考虑,一地址指令格式较好。对于同一个问题,采用三地址指令编写的程序最短,但指令长度最长;而采用二(一、零)地址指令编写,程序长度变长,但指令的长度变短。比如:完成(X)+(Y)Z的操作。用一条三地址指令编写为:ADD X,Y,Z;用二地址指令编写则为:ADD X,Y;(X)+(Y)X MOV Z,X;(X)Z,2操作码编码 操作码表示该指令应进行什么性质的操作。组成操作码字段的位数一般取决于计算机指令系
17、统的规模,也就是说操作码所占的二进制位数越多,这台计算机所能允许的指令的条数也就越多。例如,操作码占用六位二进制码时,六位二进制码可以有000000、0000001111111共计26=64种状态,每一种状态可以用来表示一种类型的操作,所以这台计算机最多就可以允许有64条指令。,操作码字段的编码方案分两种类型:第一种类型就是采用定长操作码形式编码,也就是说操作码长度固定不变,如同前面介绍的情况。若操作码的长度为k位二进制位,则它最多只能有2K条不同的指令。这种格式有利于简化硬件设计,减少指令译码时间,广泛用于字长较长的大、中型计算机和超级小型计算机中。第二种类型采用可变长度操作码格式,各种指令
18、操作码的位数不同,即操作码的长度是可变的,且分散地放在指令的不同字段中。这种格式有利于压缩程序中操作码的平均长度,在字长较短的微型机中被广泛应用。例如下图3-2是一种扩展操作码的示意:,图3-2 扩展操作码的示意,这是一个16位字长的指令码,包括4位基本操作码字段和三个4位长的地址字段。4位基本操作码,若全部用于三地址指令,则有16条。显然,4位基本操作码是不够的,必须向地址码字段扩展操作作码的长度。其扩展方法及步骤如下:15条三地址指令的操作码由4位基本操作码00001110所给定,剩下一个1111则用于把操作码扩展到X地址码字段,即由4位扩展到8位;0000 XXXX YYYY ZZZZ0
19、001 XXXX YYYY ZZZZ 15条三地址指令1110 XXXX YYYY ZZZZ,15条二地址指令的操作码由8位操作码的1111,00001111,1110给定,剩下的1111,1111又可用于把操作码扩充到Y地址字段,即从8位又扩充到12位;1111 0000 YYYY ZZZZ1111 0001 YYYY ZZZZ 15条二地址指令1111 1110 YYYY ZZZZ,15条一地址指令的操作码由12位操作码的1111,1111,00001111,1111,1110给定,剩下的1111,1111,1111又可用于把操作码扩充到Z地址字段,即从12位又扩充到16位,得到16条零地
20、址指令。1111 1111 0000 ZZZZ1111 1111 0001 ZZZZ 15条一地址指令1111 1111 1110 ZZZZ1111 1111 1111 00001111 1111 1111 0001 16条零地址指令1111 1111 1111 1111,需要说明的是扩展方法不是唯一的,例如上例中也可扩展为15条3地址、14条二地址、31条一地址和16条零地址指令。由于扩展方法多样,究竟选用哪一种方法有一个重要的原则:使用频度高的指令应分配短的操作码,使用频度低的应分配较长的操作码。,(三)寻址方式,所谓寻址,指的是寻找操作数的地址或下一条将要执行的指令地址。指令寻址比较简单
21、,它又可以细分为顺序寻址和跳跃寻址。顺序寻址可通过程序计数器PC加“1”,自动形成下一条指令的地址;跳跃寻址是指程序执行转移指令,需要通过程序转移类指令实现。即当程序执行到转移指令时,下条指令的地址不再由PC给出,而是由本条指令给出。数据寻址方式种类较多,其最终目的都是寻找所需要的操作数。,在前面指令格式中介绍了,指令中不仅应指明要执行什么类型的操作,还要指明参加操作的数据在主存中的存放地址;如果没有采用任何寻址方式,即地址码字段就是参加操作的数据在主存中存放的实际地址,那显然有如下公式成立:如果地址码字段的位数为n位,则该指令能够访问存储器的地址范围是2n。但在大多数计算机中地址码的位数受指
22、令长度的限制而不会太长,而主存的容量却比较大,导致指令无法访问主存全部空间。如果为了加大访存范围而设置更长的地址码位数,又会导致指令过长、程序设计的灵活性变差等问题。在这种背景下,寻址技术被广泛采用了,即在地址码中给出的地址并不是数据在主存中存放的实际地址,称为形式地址。形式地址需要经过某种运算才能够得到能直接访问主存的地址称为有效地址(一般用字母EA表示),从形式地址生成有效地址的各种方式称为寻址方式,即:寻址方式 形式地址 有效地址,下面介绍几种计算机中常用的基本寻址方式。1立即寻址指令中给出的不是通常意义上的操作数地址,而是操作数本身,也就是说数据就包含在指令中,只要取出指令,也就取出了
23、可以立即使用的操作数。在取指令时,操作码和操作数被同时取出,不必再次访问主存,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改,而且立即数的大小受到指令长度的限制,所以这种寻址方式灵活性最差,通常用于给某一寄存器或主存单元赋初值或提供一个常数。,2寄存器寻址寄存器寻址指令的地址码部分给出某一个通用寄存器的编号,这个指定的寄存器中存放着操作数。操作数S与寄存器Ri的关系为:S=(Ri)寄存器寻址具有两个明显的优点:从寄存器中存取数据比从主存中快得多;由于寄存器的数量较少,其地址码字段比主存单元地址字段短得多。,3直接寻址指令中地址码字段给出的地址A就是操作数的有效地址,即形式
24、地址等于有效地址:EA=A。由于这样给出的操作数地址是不能修改的,与程序本身所在的位置无关,所以又叫做绝对寻址方式。操作数S=(A)这种寻址方式不需作任何寻址运算,简单直观,也便于硬件实现,但地址空间受到指令中地址码字段位数的限制。,4间接寻址间接寻址意味着指令中给出的地址A不是操作数的地址;而是另一个地址的地址时,所使用的寻址方式称为间接寻址方式。间接寻址方式又可以分为寄存器间接寻址方式和存储器间接寻址方式。寄存器间接寻址方式在这种寻址方式中,操作数在主存中,指令中给出存放操作数地址的寄存器编号。其寻址过程为:先根据指令中给出的寄存器编号,取出该寄存器中的地址,然后再找到这个地址所对应的内存
25、单元,取出操作数即可。操作数S=(R),存储器间接寻址方式在这种寻址方式中,指令中给出存放操作数地址的存储单元的地址。存放操作数地址的存储单元,称为间址单元。其寻址过程为:先根据指令中给出的间址单元地址,取出存储器中该单元的值,这个值是操作数在存储器中地址值,然后再根据这个地址找到所对应的内存单元,取出操作数即可。操作数S=(A0),5变址寻址方式把变址寄存器Rx的内容与指令中给出的形式地址A相加,形成操作数有效地址,即EA=(Rx)+A。Rx的内容称为变址值。形式地址为基准地址,变址寄存器提供偏移量S=(Rx)+A),6基址寻址与变址寻址类似,但在基址寻址中,基址寄存器Rb提供基准地址,形式
26、地址为偏移量,基址寄存器Rb的内容加上指令格式中的形式地址而形成操作数的有效地址,即EA=(Rb)+AS=(Rb)+A)7相对寻址把程序计数器PC的内容加上指令格式中的形式地址而形成操作数的有效地址。EA=(PC)+A,(四)指令类型,一台计算机的指令系统通常有上百条或几百条指令,从它们所完成的功能来看,一个较为完善的指令系统,应具备以下各类指令:1数据传送类指令这类指令的功能是实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据传送。数据传送指令主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等等。2算术运算指令这类指令包括二进制定
27、点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术移位指令,算术比较指令,十进制加、减运算指令等。这类指令主要用于定点或浮点的算术运算。,3逻辑运算指令这类指令包括逻辑加、逻辑乘、逻辑比较、测等指令、按位加、逻辑移位等指令,主要用于无符号数的位操作、代码的转换、判断及运算。移位指令用来对寄存器的内容实现左移、右移或循环移位。4程序控制指令程序控制指令也称转移指令。执行程序时,有时机器执行到某条指令时,出现了几种不同结果,这时机器必须执行一条转移指令,根据不同结果进行转移,从而改变程序原来执行的顺序。这种转移指令称为条件转移指令。除各种条件转移指令外,还有无条件转移指令、转子程序
28、指令、返回主程序指令、中断返回指令等。转移指令的转移地址一般采用直接寻址和相对寻址方式来确定。5输入输出指令输入输出指令主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和CPU之间,或外围设备与外围设备之间的信息传送。,6字符串处理指令字符串处理指令是一种非数值处理指令,一般包括字符串传送、字符串转换(把一种编码的字符串转换成另一种编码的字符串)、字符串替换(把某一字符串用另一字符串替换)等。这类指令在文字编辑中对大量字符串进行处理。7特权指令特权指令是指具有特殊权限的指令。这类指令只用于操作系统或其他系统软件,一般不直接提供给用户使用。在多用户、多任务的计算机系统中特权指令必
29、不可少。它主要用于系统资源的分配和管理。8其他指令除以上各类指令外,还有状态寄存器置位、复位指令、测试指令、暂停指令,空操作指令,以及其他一些系统控制用的特殊指令。,3.1.3 CPU的控制功能及原理,控制器是计算机系统的指挥中心,它把运算器、存储器、输入输出设备等部件组成一个有机的整体,然后根据指令的要求指挥全机的工作。(一)控制器的基本组成1指令部件指令部件的主要任务是完成取指令并分析指令。指令部件包括:程序计数器 指令寄存器 指令译码器暂存在指令寄存器中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器。地址形成部件根据指令的不
30、同寻址方式,形成操作数的有效地址。,2时序部件时序部件能产生一定的时序信号,以保证机器的各功能部件有节奏地进行信息传送、加工及信息存储。包括:脉冲源产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供基准信号。启停控制逻辑启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。节拍信号发生器节拍信号发生器又称脉冲分配器。脉冲源产生的脉冲信号,经过节拍信号发生器后产生出各个机器周期中的节拍信号,用以控制计算机完成每一步微操作。,3微操作信号发生器 一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称为微操作。
31、微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列。4中断控制逻辑中断控制逻辑是用来控制中断处理的硬件逻辑。,由于计算机高速地进行工作,每一个动作的时间是非常严格的,不能有任何差错。时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号。1指令周期和机器周期指令周期是指从取指令、分析取数到执行完该指令所需的全部时间。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相同。机器周期又称CPU周期。通常把一个指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等。所以有:指令周
32、期i机器周期。通常,每个机器周期都有一个与之对应的周期状态触发器。机器运行在不同的机器周期时,其对应的周期状态触发器被置“1”。显然,在机器运行的任何时刻只能处于一种周期状态,因此,有一个且仅有一个触发器被置“1”。,(二)时序系统,2节拍在一个机器周期内,要完成若干个微操作。因而应把一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号。节拍的宽度取决于CPU完成一次微操作的时间。节拍的选取一般有以下几种方法:统一节拍法以最复杂的机器周期为准定出节拍数,每一个节拍时间的长短也以最繁的微操作作为标准。这种方法采用统一的、具有相等时间间隔和相同数目的节拍,使得所有的机
33、器周期长度都是相等的,因此称为定长CPU周期。,分散节拍法按照机器周期的实际需要安排节拍数,需要多少节拍,就发出多少节拍,这样可以避免浪费,提高时间利用率。由于各机器周期长度不同,故称为不定长CPU周期。延长节拍法在照顾多数机器周期要求的情况下,选取适当的节拍数,作为基本节拍。如果在某个机器周期内统一的节拍数无法完成该周期的全部微操作,则可以延长一或两个节拍。时钟周期插入在一些微型机中,时序信号中不设置节拍,而直接使用时钟周期信号。一个机器周期中含有若干个时钟周期,时钟周期的数目取决于机器周期内完成微操作数目的多少及相应功能部件的速度。一个机器周期的基本时钟周期数确定之后,还可以不断插入等待时
34、钟周期。如8086的一个总线周期(即机器周期)中包含四个基本时钟周期T1T4,在T3和T4之间可以插入任意个等待时钟周期TW,以等待速度较慢的存储部件或外部设备完成读或写操作。,3工作脉冲在节拍中执行的有些微操作需要同步定时脉冲,如将稳定的运算结果打入寄存器,又如机器周期状态切换等。为此,在一个节拍内常常设置一个或几个工作脉冲,作为各种同步脉冲的来源。工作脉冲的宽度只占节拍电位宽度的,并处于节拍的末尾部分,以保证所有的触发器都能可靠、稳定地翻转。在只设置机器周期和时钟周期的微型机中,一般不再设置工作脉冲,因为时钟周期既可以作为电位信号,其前、后沿又可以作为脉冲触发信号。,4多级时序系统下图3-
35、4为小型机每个指令周期中常采用的机器周期、节拍、工作脉冲三级时序系统。图中每个机器周期M中包括四个节拍T1T4,每个节拍内有一个脉冲P。在机器周期间、节拍电位间、工作脉冲间既不允许有重叠交叉,也不允许有空隙,应该是一个接一个的准确连接。,图3-4 三级时序,(三)时序控制方式,1同步控制方式同步控制方式即固定时序控制方式,各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。由于不同的指令,操作时间长短不一致。同步控制方式应以最复杂指令的操作时间作为统一的时间间隔标准。这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费
36、,从而影响了指令的执行速度。在同步控制方式中,各指令所需的时序由控制器统一发出,所有微操作都与时钟同步,所以又称为集中控制方式或中央控制方式。,2异步控制方式异步控制方式即可变时序控制方式,各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。这是一种“应答”方式,各操作之间的衔接是由“结束起始”信号来实现的。由前一项操作已经完成的“结束”信号,或由下一项操作的“准备好”信号来作为下一项操作的起始信号,在未收到“结束”或“准备好”信号之前不开始新的操作。异步控制采用不同时序,没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。由于这种控制方式没有
37、统一的时钟,而是由各功能部件本身产生各自的时序信号自我控制,故又称为分散控制方式或局部控制方式。,3联合控制方式这是同步控制和异步控制相结合的方式。实际上现代计算机中几乎没有完全采用同步或完全采用异步的控制方式,大多数是采用联合控制方式。通常的设计思想是:在功能部件内部采用同步方式或以同步方式为主的控制方式,在功能部件之间采用异步方式。,(四)指令运行的基本过程,1取指令阶段取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去。具体的操作如下:将程序计数器(PC)中的内容送至存储器地址寄存器(MAR),并送地址总线(AB)。由控制单元(CU)经控制总线(CB)向存储器发读命令。从
38、主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR)。将MDR的内容送至指令寄存器(IR)中。将PC的内容递增,为取下一条指令做好准备。以上这些操作对任何一条指令来说都是必须要执行的操作,所以称为公共操作。完成取指阶段任务的时间称为取指周期。,图3-5 取指周期的工作流程,2分析取数阶段取出指令后,指令译码器ID可识别和区分出不同的指令类型。此时计算机进入分析取数阶段,以获取操作数。由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的。3执行阶段执行阶段完成指令规定的各种操作,形成稳定的运算结果,并将其存储起来。完成执行阶段任务的时间称为执行周期。计算机的基本
39、工作过程就是取指令、取数、执行指令,然后再取下一条指令如此周而复始,直至遇到停机指令或外来的干预为止。,(五)微程序控制器,1控制器的硬件实现控制器的核心是微操作信号发生器(控制单元CU)。微操作控制信号是由指令部件提供的译码信号、时序部件提供的时序信号和被控制功能部件所反馈的状态及条件综合形成的。控制单元的输入包括时序信号、机器指令操作码、各部件状态反馈信号等,输出的微操作控制信号又可以细分为CPU内的控制信号和送至主存或外设的控制信号。根据产生微操作控制信号的方式不同,控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型3种,它们的根本区别在于控制单元的实现方法不同,而控制器中的其
40、他部分基本上是大同小异的。,组合逻辑型采用组合逻辑技术来实现,其控制单元是由门电路组成的复杂树形网络。这种方法是分立元件时代的产物,以使用最少器件数和取得最高操作速度为设计目标。最大优点是速度快。但是控制单元的结构不规整,使得设计、调试、维修较困难,难以实现设计自动化;一旦控制单元构成之后,要想增加新的控制功能是不可能的。因此,它受到微程序控制器的强烈冲击。目前仅有一些巨型机和RISC机为了追求高速度仍采用组合逻辑控制器。存储逻辑型这种控制器称为微程序控制器,是采用存储逻辑来实现的,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号
41、由微指令产生。,微程序控制器具有设计规整、调试、维修以及更改、扩充指令方便的优点,易于实现自动化设计,已成为当前控制器的主流。但是,由于它增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢。组合逻辑和存储逻辑结合型这种控制器称为PLA(可编程逻辑阵列)控制器,是吸收前两种方法的设计思想来实现的。PLA控制器实际上也是一种组合逻辑控制器,但它又与常规的组合逻辑控制器的硬联结构不同;它是可编程序的,某一微操作控制信号由PLA的某一输出函数产生。PLA控制器是组合逻辑技术和存储逻辑技术结合的产物,克服了两者的缺点,是一种较有前途的方法。,2微程序控制的基本概念 组合逻辑控制器的主要缺点是操作
42、命令的设计没有一定的规律,调整、维护困难,修改扩充指令更加困难。改进办法是采用微程序设计技术。微程序设计思想是英国剑桥大学的威尔克斯(MVWilkes)1951年提出的,他提出一条机器指令可以分解为许多基本的微命令序列。并且首先把这种思想用于计算机控制器的设计。但由于控制存储器速度低、价格高等原因,微程序技术一直处于停滞阶段。直到1964年,由于半导体技术的发展以及研制大型机和系列机的推动,微程序设计技术开始兴旺起来。IBM360系统的诞生,可以作为微程序设计发展的标志。,有关术语 微命令和微操作 一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。在微程序控
43、制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位。例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。因此,微命令是控制计算机各部件完成某个基本微操作的命令。微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。微命令有兼容性和互斥性之分。兼容性微命令是指那些可以同时产生,共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。兼容和互斥都是相对的,一个微命令可以和一些微命令兼容,和另一些微命令互斥。对于单独一个微命令,谈论其兼容和互斥都是没有意义的。,微指令、微地址微指令是指控制存储器中的一
44、个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。一条微指令通常包含两部分:操作控制字段:又称微操作码字段,用以产生某一步操作所需的各微操作控制信号;顺序控制字段:又称微地址码字段,用以控制产生下一条要执行的微指令地址。微指令有垂直型和水平型之分。垂直型微指令接近于机器指令的格式,每条微指令只能完成一个基本微操作;水平型微指令则具有良好的并行性,每条微指令可以完成较多的基本微操作。微周期从控制存储器中读取一条微指令并执行相应的微命令所需的全部时间称为微周期。微程序一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。,3微程序控制器的组成和
45、工作过程.微程序控制器的基本组成右图3-6给出了一个微程序控制器基本结构的简化框图,在图中主要画出了微程序控制器比组合逻辑控制器多出的部件,包括以下几个部分:控制存储器、微指令寄存器、微地址形成部件、微地址寄存器等。,图3-6 微程序控制器基本结构,控制存储器(CM)这是微程序控制器的核心部件,用来存放微程序。微指令寄存器(IR)用来存放从CM中取出的微指令。微地址形成部件用来产生初始微地址和后继微地址。微地址寄存器(MAR)接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。.微程序控制器的工作过程微程序控制器的工作过程实际上就是在微程序控制器的控制下计算机执行机器指令的过程,该过程
46、可描述如下:,执行取指令公共操作。取指令的公共操作通常由一个取指微程序来完成,这个取指微程序也可能仅由一条微指令组成。具体的执行是:在机器开始运行时,自动将取指微程序的入口微地址送MAR,并从CM中读出相应的微指令送入IR。微指令的操作控制字段产生有关的微命令,用来控制计算机实现取机器指令的公共操作。取指微程序的入口地址一般为CM的0号单元,当取指微程序执行完后,从主存中取出的机器指令就已存入指令寄存器IR中了。由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入MAR。从CM中逐条取出对应的微指令并执行之。执行完对应于一条机器指令的一个微程序后又回到取指微程序的入口地址,继续第步,以完成取下一条机器指令的公共操作。以上是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕为止。,.机器指令对应的微程序通常,一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。此外,也可以编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等公用的微程序数。,待 续,