计算机组成与工作原理电子教案第3章.ppt
《计算机组成与工作原理电子教案第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就是操作数的有效地址,即形式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 工作 原理 电子 教案
链接地址:https://www.31ppt.com/p-6376341.html