计算机组成原理吉林大学刘子良配套课件_第1页
计算机组成原理吉林大学刘子良配套课件_第2页
计算机组成原理吉林大学刘子良配套课件_第3页
计算机组成原理吉林大学刘子良配套课件_第4页
计算机组成原理吉林大学刘子良配套课件_第5页
免费预览已结束,剩余274页可下载查看

下载本文档

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

文档简介

1,吉林大学远程教育学院,2,计算机组成原理,主讲:刘子良,3,参考书目计算机组成原理教程科学出版社,1988年。白中英,韩兆轩计算机组成与结构清华大学出版社,1990年。王爱英,计算机组成原理,4,计算机组成原理,课程简介计算机组成原理是计算机科学与工程系所有专业的一门核心课程,它在先导课和后续课之间起着承上启下的和继往开来的作用。计算机组成原理教学具有知识面广、内容多、难度大、更新快的特点。本课程讲述计算机组成与结构方面的知识,包括:计算机系统概论、运算方法、运算器、存储系统、指令系统、处理器、系统总线、外围设备、输入输出系统。,5,计算机组成原理主讲:刘子良,第一章概论1.1冯诺依曼体制,1.ENIAC概况1)数据表示十进制2)工作存储器只有20个单元,用于存放数据3)编程先要人工对面板上6000多个电子开关进行机械定位,然后都转插线插头,插入与拨出方式来编制程序4)ENIAC共用18000多个电子管,6000多个继电器,耗电140KW,占地170平米,重30吨,运算速度5000次/秒。ENIAC可靠运行时间大概不超过20分钟。,6,计算机组成原理主讲:刘子良,第一章概论1.1冯诺依曼体制,2.冯诺依曼体制1)引进存储程序概念2)计算机以运算器为核心的集中式控制3)指令由操作码和地址码两部分组成,指令在计算机中最顺序执行的,并受PC的统一控制4)提出计算机系统应由:运算器、控制器、存储器、输入设备和输出设备五大部分组成。这些理论奠定了现代计算机的基本思想,在到目前为止,大多数计算机仍沿用这一体制,人们称其为冯诺依曼体制。,7,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,人们常提到的冯诺依曼机与原始的以运算器为中心的冯诺依曼机在结构上有很大的改进。现在已转向以存储器为中心的计算机组成方式。如图1.1所示。,图1.1计算机基本组成框图,运算器,存储器,控制器,数据,结果,地址,指令,输入设备,输出设备,反馈信息,操作命令,控制信号,请求信号,控制台,控制信号,请求信号,8,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,从图1.1中我们可以看出,计算机一般由以下几部分组成:输入设备、存储器、运算器、控制器、输出设备五大部分运算器与控制器统称为中央处理机CPU习惯将输入设备、输出设备统称为I/O设备,输入设备存储器运算器控制器输出设备,I/O设备,CPU,9,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,1.2.1运算器基本结构功能:完成算术运算和逻辑运算的装置设置考虑:任意算术运算(加+、减-、乘*、除/)都可以通过相加和移位来解决。举证:这样一来,运算器的基本结构就确定下来,如图1.2所示。,10,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,运算器由:加法器、移位门、寄存器组、输入选择门和数据总线组成。如图1.2所示。,图1.2运算器结构框图,移位门,加法器,选择门A,选择门B,来自数据总线,通用寄存器组,数据总线,11,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,1.2.2存储器的基本结构功能:存放程序和数据装置,并满足计算机在执行过程中能够随机访问这些程序和数据。设置考虑(1):,存取数据一个一个地程序一条一条地如何解决?,取出参与操作,设置一个存储体,并将存储体分成若干个单元。,12,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,设置考虑(2):,访问,按地址进行,将第个单元赋予编码,表征该单元地址,放于何处?,设地址寄存器MARMemoryAddressRegister,在地址寄存器和存储体之间是否加地址译码器呢?,取决于地址给出方式,直接给出,编码给出-加地址译码器ADAddressDecode,存(写入),取(读出),13,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,设置考虑(2)续:,存、取存在两个问题。,数据存放,设置数据寄存器的MBRMemoryBufferRegister,区分,加读写控制线路(R/W)控制,于是,存储器的基本结构确定下来,如图1.3所示。,14,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,图1.3存储器基本结构框图,地址码,地址寄存器,地址译码器,存储体,0号单元,1号单元,4094号单元,4095号单元,代码缓冲寄存器,数据或指令,读令,写令,15,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,1.2.3控制器的基本结构功能:全机指挥机构,执行方式有如下三种,按规定的操作去执行自动地去执行有秩序地去执行下面,我们具体看一下各种执行方式。,16,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,按规定的操作去执行,在指令中,就指令执行过程而言,取出指令,存放?,设指令寄存器IRInstructionRegister,分析指令,及译码过程设置操作码译码器ODC,执行指令,17,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,自动地执行,设置程序计数器PCProgramCounter,顺序,PC存放程序首址,执行一条后,PC自动加1,转移,MAR,PC,18,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,有秩序去执行,指前一个操作结束,进行下一个操作,如何判断?,通过定时系统设置相应的时序线路,控制器的结构如图1.4所示,19,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,图1.4控制器结构图,20,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,1.2.4输入输出设备输入/输出设备种类繁多,很难用一种结构形式加以描述,通常可以将其描述为一般结构如图1.5所示。,图1.5外部设备的一般描述框图,输入设备,接口,接口,输出设备,21,计算机组成原理主讲:刘子良,第一章概论1.2计算机的基本组成,输入设备把程序和数据转化为计算机能识别和处理的数据形式的设备,输入的程序和数据存入计算机存储器中。输出设备是将计算机中的二进制信算转化为用户所需要的数据格式的设备。它将计算机中的信息(计算结果等)以十进制或字符、图形、表格等形式显示或打印出来。以上,我们简要的介绍了计算机各主要部件的功能,以及其基本构成在设置上的考虑,于是,留下的将是如何从硬件的角度,将计算机各部件连成一个计算机系统的问题了。,22,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,如何将计算机各个组成部件连接成为一个有机整体。为此,人们提出一种重要的组成系统技术总线。一、总线1.总线的概念所谓总线,就是连接多个部件的一组共享信息传送线路,它能够分时接收和发送各部件信息。2.典型做法发送端:通过三态门将信息分时送入总线接收端:靠定时打入脉冲接收信息,23,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,3.实现举例:,图1.6计算机总线实现举例框图,A,B,C,CPA,CPB,CPC,A,B,C,SS,控A,控B,控C,24,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,二、小型机、微型机的典型结构1.以CPU为中心的双总线结构如图1.7所示。,图1.7面向CPU的双总线结构,CPU,MEM,I/O接口,I/O接口,I/O接口,磁盘,输入机,打印机,25,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,以CPU为中心的双总线结构(续)(1)结构特点:两簇总线1)CPU与内存之间交换信息的通路,即存储总线M-BUS。2)CPU与I/O设备之间交换信息的通路,即输入/输出总线I/O-BUS。(2)分析与结论1)根据结构特点画关系图如图1.8所示。显而易见,内存与I/O设备之间交换信息都要通过CPU。因此,称其为面向CPU的双总线结构。,MEMI/O,CPU,图1.8面向CPU的双总线结构关系图,26,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,以CPU为中心的双总线结构(续)2)既然内存与I/O设备要通过CPU交换信息,那么就必要要受到CPU的直接控制。这种结构的优点是同一时间内只能进行一种传送,因此控制线路简单,时间关系易于处理,可以采用同步控制方式。缺点是由于I/O设备与存储器交换信息要有CPU进行干预,因而当I/O设备工作频繁时要占用大量的CPU时间,从而降低了CPU的工作效率。因此,这种结构为多数低档小型机所采用。,27,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,2.单总线结构单总线结构如图1.9所示。,CPU,MEM,I/O接口,显示器,I/O接口,输入机,I/O接口,显示器,图1.9面向CPU的单总线结构关系图,28,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,以CPU为中心的单总线结构(续)(1)结构特点靠一簇总线(包括地址总线、数据总线和各种控制线)来实现CPU、存储器、I/O设备这间的信息交换。(2)分析与结论1)从单总线的传送方式可以看出,中央处理机不再是计算机的中心,CPU与其它设备一样,只不过是单总线上的一个子系统。2)采用单总线结构后系统功能增强。因为采用单总线传送方式允许I/O设备直接与存储器交换信息,除分配总线使用权时还要与CPU打交道外,基本上不影响CPU,同时,外部设备寄存器和内存统一编码,这样中央处理机可以象访问内存一样访问外部设备。,29,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,以CPU为中心的单总线结构(续)(3)存在问题1)单总线的工作不允许有两个主设备同时使用总线。因此,当I/O设备控制总线使用权时,CPU(它对总线使用的优先级别低于I/O设备)不能从主存中取出数据,因而降低了CPU的处理速度。2)由于所有设备都连在一簇总线上,总线负载很重,随着外设与中央处理机之间交换信息量增大,可使系统的吞吐量呈饱和状态,甚至无法胜任,从而使系统性能下降。3)单总线常采用异步互销应答方式,因此,控制逻辑比较复杂。细节问题将在I/O控制一章作详细讨论。,30,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,3.面向存储器的双总线结构双总线结构如图1.10所示。,CPU,MEMCACHE,I/O接口,磁盘,I/O接口,光电输入机,I/O接口,宽行打印机,图1.10面向存储器的双总线结构关系图,31,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,面向存储器的双总线结构(续)(1)结构特点在内存上开了两个口子,一个通过高速缓冲存储器Cache(它存有存储器部分信息的副本)与中央处理机相连,专供它与CPU交换信息;另一个口子与原来的单总线相通,实现内存与其他设备的信息交换。(2)分析与结论1)依据结构特点来关系图1.11所示。,CPUI/OD,MEM,图1.11面向存储器的双总线结构关系图,32,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,面向存储器的双总线结构(续)显见,在这种结构中,存储器成为计算机的中心,所以把这种结构称为面向存储器的双总线结构。2)这种结构不是对单总线结构的否定,而是对它很好的补充。原因有二:第一,CPU通过专用总线与主存交换信息,不仅提高了处理机的速度,而且减轻了系统总线的负担,防止饱和。第二,主存与I/O设备交换信息,不必经过CPU,因此又保持了单总线的主要优点系统灵活性。3)系统程序日益庞大,信息存储成为构成系统的一个核心问题,整个系统由早期以CPU为中心发展为以存储系统为中心。因此,这种双总线结构被广泛采用。,33,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,4.大中型计算机的典型结构至于大、中型计算机,由于软件资源越来越丰富,存储系统己经成为计算机系统硬件组成的核心部件。同样,外部设备的增多,也使得输入/输出问题变得十分突出。为此,又提出一项组成系统的技术通道。图1.12给出了大、中计算机的代表性结构。,34,计算机组成原理主讲:刘子良,第一章概论1.3计算机系统的硬件组成,主存储器,中央处理机,通道A,通道B,I/O控制器,I/O设备,I/O控制器,I/O设备,I/O设备,I/O控制器,I/O设备,I/O控制器,I/O设备,I/O控制器,I/O设备,I/O设备,单设备控制单元,多设备控制单元,图1.11大型计算机系统典型结构框图,35,计算机组成原理主讲:刘子良,第二章运算方法与运算器,运算方法:指算术(四则)运算和逻辑运算,在运算器的实现方法,而实现这两种运算的硬设备就是算术逻辑部件ALU(ArithmeticandLogicUnit),或称运算器。由于逻辑运算及实现经较简单,所以本章主要讨论计算机中算术四则运算以及运算器的逻辑结构。,36,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,2.1.1为什么要进行运算方法的研究50年代初,人们对运算方法理论研究给予了极大的注意,取得了不少至今还在应用的成果,那么为什么要开展对运算方法的研究呢,原因有:1)将一个实际数,用机器数(原码、补码、反码)等表示,产生机器本身特有的运算规律。2)计算机特定的运算方式定点运算,浮点运算。3)早期冯诺依曼型运算器只设加法器和寄存器。4)采用什么样的算法与运算器的结构密切相关,这两者的设计是互相影响的。综上考虑,从而开展了对运算方法的研究。,37,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,2.1.2一个实际数机内表示所面临的问题通常,我们将一个数(连同符号)在机器中的数值化表示为机器数;而把原来的数值称为机器数的真值。一个实际数(如)通常由数符、数码和小数点三部分组成。因此,将一个实际数机内表示要解决的三个问题:,38,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题(续)1.符号的处理通常符号处理有两种方法:一种是舍弃符号,采用无符号数表示;另一种是采用符号,并对符号加以处理;那么如何处理符号呢?途径只有一条,即符号数码化。0表示正,1表示负。这种表示源于定义。以原码表示为例:,39,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之符号的处理(续)(1)X=+0.1011X=+0.1011符号数码化表示X原=0.1011从定义X原=X1X=01-X0=X-1因为:1X=0所以:X原=X=0.1011,40,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之符号的处理(续)(2)X=-0.1011X=-0.1011符号数码化表示X原=1.1011从定义因为:0=X-1所以:X原=1-X=1-(-0.1011)=1.1011,41,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之符号的处理(续)2.数码处理(1)采用二进制数表示,如(255)10=(11111111)2优点:计算机中,数码是由电平的高低来表示的,通常高电平代表“1”,低电平代表“0”,所以采用二进制方便,易实现。存在问题:二进制表示数码的效率太低,书写冗长。,42,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之数码处理(续)(2)引进组合二进制数八、十六进制数具体方法是:从最低有效位(LSD)开始,三位一划分组成八进制数;四位一划分组成十六进制数。如:1101011110011101011110016571Q110101111001D79H这种“引进”,主要是为了书写方便而己,机器内表示并不区别。,43,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之数码处理(续)(3)BCD码需注意:a.如果计算机以二进制进行运算和处理时,只要在输入输出处理机进行二/十进制转换即可。b.在商业统计中,仍产生二/十进制转换方案存在两个问题:第一转换时间就要占实际运算时间很大比例;第二,十进制的0.1,无法用二进制表示,且十进制数0.1+0.1=0.2,在二进制中无法得到确切的数值,这里有一个小误差。因此,商业计算机没有专门用于十进制计算电路,这时的十进制数一般采用BCD码。,44,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之数码处理(续)十进制ASCII码BCD码二进制数十六进制数00011000000000000010011000100010001190011100110011001910100001010A1111F1000010由上式可见:A由于ASCII码与BCD码低四位相同,转换方便。BBCD码中,不采用其它6个二进制数(1010-1111),需校正。,45,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题(续)3.小数点处理可否数码化?如10110011,你能鉴别哪一位数码是表示小数点吗?显示不行,它无法与数位相区别。一般地,任意一个二进制数N都可以表示成:N=2E*(ms,m1,m2,mn)其中:E叫做阶码,ms、m1、m2、m3、mn叫做原数,Ms为尾数符号。E代表小数点,它可分三种情况讨论。,46,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之小数点处理(续)(1)E=0时,参与运算的数是纯小数,记作ms,m1,m2,m3,mn,为定点小数格式,如下所示。设机器字长有n+1位,则:原码定点小数表示范围为:-(1-2-n)-(1-2-n)补码定点小数表示范围为:-1-(1-2-n),X0X1X2Xn,数值部分(尾数),符号位,小数点位置,47,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之小数点处理(续)(2)E=n时,参与运算的数是纯整数,记作ms,m1,m2,mn,为定点整数格式,如下所示。原码定点整数的表示范围为-(2n-1)-(2n-1)补码定点整数的表示范围为-2n-(2n-1)X最小正数=1,X0X1X2Xn,数值部分(尾数),符号位,小数点位置,48,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之小数点处理(续)(3)E=m,且nm0,参与运算的数是浮点数,此时:N=M*rE式中:r为浮点数阶码的底,与尾数的基数相同,通常r=2;E和M都是带符号的定点数,E叫做阶码(exponent),M叫做尾数(mantissa)。在大多数计算机中,尾数为纯小数,常用原码或补码表示;阶码为定点整数,常用移码或补码表示。,49,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题(续)浮点数的一般格式如图2.1所示。浮点数的底是隐含的,在整个机器数中不出现。阶码的符号位为es,阶码的大小反映了在数N中小数点的实际位置;尾数的符号位为ms,它也是整个浮点数的符号位,表示了该浮点数的正负。,esemsm,1位k位1位n位,阶码E尾数M,图2.1浮点数的一般格式,50,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题(续)浮点数的表示范围主要由阶码决定,有效数字的精度主要由尾数决定,下面分别来讨论这两个问题。1.浮点数的表示范围设某浮点数的格式如图2.1所示,k和n分别表示阶码和尾数的位数(不包括符号位),尾数和阶码均用补码表示。当es=0,ms=0,阶码和尾数的数值位各位全为1(即阶码和尾数都为最大正数)时,该浮点数为最大正数:X最大正数=(1-2-n)*22-1,K,51,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题之浮点数的表示范围(续)当es=1,ms=0,尾数的最低位mn=1,其余各位为0(即阶码为绝对值最大的负数,尾数为最小正数)时,该浮点数为最小正数:X最小正数=2-n*2-2当es=0,阶码的数值位全为1;ms=1,尾数的数值全为0(即阶码为最大正数,尾数为绝对值最大的负数)时,该浮点数为绝对值最大负数:X绝对值最大的负数=-1*22-1,K,K,52,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,K,一个实际数机内表示所面临的问题(续)2.规格化浮点数为了提高运算的精度,须要充分地利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高数位必须是一个有效值。一个浮点数的表示形式并不是唯一的。例如:二进制数0.0001101可以表示为0.001101*2-1、0.01101*2-2、0.1101*2-3而其中只有0.1101*2-3是规格化数,这就是如同十进制实数中的科学标识法一样。对于r进制的规格化浮点数的尾数M的绝对值应在下列范围内:1/r=|M|1,如果r=2,则有:1/2=|M|1。,53,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,一个实际数机内表示所面临的问题(续)浮点数典型值见下表:,K,K,K,K,K,K,54,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,2.1.3负数如何处理1.符号绝对值表示(sign-absolute)用二进制的最高位(最左边位)用来表示符号,例如0表示正数,1表示负数,而其余各位则用于表示该数的绝对值的大小。这种数据表示直观,但在机器中加、减运算不能直接采用它。例如:0.1000+(-0.1011)=-0.0011若采用原码运算,设机器字长n=5位,其中一个符号位。则0.1000+1.10110.0011,55,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号绝对值表示(续)可见,显示的结果是正数。这种表示方法比较直观,缺点是设计硬件电路时,需要对最高位和其它位分别处理。另外,这种表示方法有两个0,+0与-0,同时存在。,56,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号(续)2.补码表示(twoscomplement)法(1)编码方法:我们用四位二进制数来说明。如果考虑到正数和负数个数一样,则可将十六种组合一分为二,一半是正数,一半表示负数(我们暂时把0归为正数一类,显然不太严格)。000001000-8000111001-7001021010-6001131011-5010041100-4010151101-3011061110-2011171111-1,57,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号补码表示法(续)上图中可见,正数:从024-1(=7)负数:从-24-1(=-8)1这种表示的最大好处是在于满足(+x)+(-x)=0的规则,而且很容易区分正数和负数,例:(+6)+(-6)=0110+1010=0000其中0表示正数,1表示负数,这一点与符号绝对值表示相一致。,58,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号补码表示法(续)(2)采用补码表示时,不管多少位二进制,所有位为1时,一定是十进制数-1。这样一来解决了补码数的扩充问题。例如:101111111011010100000101即可以简单地复制最高位。,59,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号补码表示法(续)(3)可将补码数作为无符号数处理,并将运算结果解释为二进制补码表示的带符号数:即-X补=X补+1。例如:(+77625)8=(0111111110010101)2(-77625)8=(1000000001101011)2于是,机器作为无符号数,其值为(100153)8,而解释为常符号数为(-77625)8,60,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号补码表示法(续)(4)在补码表示中,0表示法是唯一的,即+0补=-0补=0.00.0而+0原=0.00.0-0原=1.00.0+0反=0.00.0-0反=1.11.1从数学上讲,零有两种表示对运算是不利的,这时ALU就必须增加另外的逻辑电路来寻找0这个数,因而当今的大多数机器都使用补码。,61,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号补码表示法(续)(5)采用补码运算,符号位做为代码可以与数位一起参加运算,无须单独设置符号处理线路。(6)目前,就大多数小/微型计算机ALU,只设加法器。采用补码运算后,补码可以将“正数加负数”转化为正数加正数,同时,又可以将减法转化为加法运算,这样只设加法器就可以了。,62,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,负数如何处理之符号3.反码表示反码也称1的补码(onescomplement),和2的补码一样,它的最高位为符号位。0表示正,1表示负。其余各位为二进制数的基数减1。优点:具有对称性,生成容易。存在问题:(1)存在+0与-0之分。+0反=0.00.0,-0反=1.11.1。运算时需将1.11.1换成0.00.0;(2)需加权操作,即反码运算若符号位有进位,则运算结果还要加1。在CDC公司的某些机器中使用过,而在新的计算机设计中却很少使用。,63,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,2.1.4小数与实数表示小数与实数一般采用浮点数表示,原因是:在定点数的机器中,机器指令的调用的所有操作数都是定点数。然而,实际需要计算机处理的数往往是混合数,所以在编程时须设定一个比例因子,把原始数缩小成定点小数或扩大成定点整数后再进行处理,这种方法存在两个缺点:第一,当只有小数而且很小时,大部分二进制数位,被0占用导致精度损失,同样若一个数的小数部分为0时,则有一半二进制位数被浪费。第二,这种表示法所能表示的范围与浮点数相比是比较小的。所以小数和实数一般采用浮点数表示。,64,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示(续)先前,浮点常采用下列格式:由于指数的编码,尾数的格式和小数点的位置有规定有很大的随意性,因此,浮点数的表示法不是唯一的,不同的计算机有不同的规定,这就引起了相互间数据格式的不兼容性。为此,美国电气与电子工程协会(IEEE)制定了有关的工业标准(IEEE754)己被众多的计算机厂商所采用。,附符阶码尾符原数,65,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示(续)IEEE754标准有两点重要考虑:1.考虑到高级语言与机器语言之间的语言差距,二进制规格化数为:1.xx.x*2yyy.y其中,x和y均为二进制数IEEE754标准2.为便于软件移植,IEEE754规定了浮点数标准,包括:定义了单精度(32位),双精度(64位)两种格式,以及两种扩展格式。,66,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示-IEEE754标准考虑(续)(1)单精度浮点数,如下:X=(-1)s*(1.m)*2e-127(2)双精度浮点数,如下:X=(-1)s*(1.m)*2e-1023由于在规格化二进制浮点数中,小数点前面的一位数总是1,故可将这个1省略,不出现在浮点数的格式中,我们称其为隐藏位(hiddenbit)。,Se(指数)m(尾数),313023220,Sem,636252510,67,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示(续)例:将十进制数178.125表示成单精度浮点数注:IEEE754单精度(single-precision)浮点数格式短实数:如下其中:s(sign):符号;e(Exponent):阶码;f(Fraction):尾数;,Sef,313023220,68,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示(续)IEEE754双精度(double-precision)浮点格式,长实数:扩充精度浮点数Pentium中具有三种浮点数格式,临时实数:,Sef,636252510,Sef,797864630,69,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,计算机组成原理主讲:刘子良,第二章运算方法与运算器2.1概述,小数与实数表示(续)解:首先将十进制数178.125表示成二进制实数。(178.125)10=(10110010.001)B再将二进制实数表示成规格化形式:10110010.001=1.0110010001*27因为指数等于7,另上偏移量127(=27,采用移码)之后e=7+127=134=(10000110)B因此,178.125的单精度浮点数为:,01000011001100100010000000000000,1823,注意小数点前面的1和小数点隐含,70,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.2.1补码加减运算1.补码加法两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和,即:X+Y补=X补+Y补下面,我们看两个例子。,第二章运算方法与运算器2.2定点加减运算,71,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,例1:己知X补=0.1001,Y补=1.1101求X+Y补=?解:X补=0.1001+)Y补=1.110110.0110符号位产生的进位1,在模2的意义下,机器会自动将其舍弃,所以X+Y补=0.0110就是正确的运算结果。,第二章运算方法与运算器2.2定点加减运算,72,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,例2:己知X补=1.0011,Y补=0.0110求X+Y补=?解:X补=1.0011+)Y补=0.0110X+Y补=1.1001运算结果是以补码表示的负数。,第二章运算方法与运算器2.2定点加减运算,73,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.补码减法原则上讲:X补-Y补=X-Y补。可见,需要一个减法器,而现在只设加法器,那么,如何得到X-Y补呢?我们可以根据补码加法公式可推出。X-Y补=X+(-Y)补=X补+-Y补这样一来,减法的问题归结到如何求-Y补的问题了,从负数引(3)的理论:-Y补=Y补+1。意思是说,-Y补等于对Y补连同符号在内求反加1。,第二章运算方法与运算器2.2定点加减运算,74,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,例1:Y=0.1010Y补=0.1010-Y补=1.0110例2:Y=-0.1010Y补=1.0110-Y补=0.1010,第二章运算方法与运算器2.2定点加减运算,75,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,例3:己知X补=0.0010,Y补=1.1010求X-Y补=?解:X补=0.0010+)-Y补=0.0110X-Y补=0.1000这就是运算求得的正确结果。,第二章运算方法与运算器2.2定点加减运算,76,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,例4:己知X补=1.1011,Y补=0.0110求X-Y补=?因为Y补=0.0110,而-Y补=1.1010可见,若Y补为一正数,则-Y补就变成一个负数了。所以:解:X补=1.1011+)-Y补=1.1010X-Y补=11.0101符号位的进位1在机器中将会自动舍弃,因为在以2为模的情况下,2=0(mod2),故得出的就是正确的结果X-Y补。,第二章运算方法与运算器2.2定点加减运算,77,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.2.2补码的溢出判断与检测方法1.溢出的产生引例1:X补=0.1011+)Y补=0.0111X+Y补=1.0010引例2:X补=1.0101+)Y补=1.1001X+Y补=0.1110,第二章运算方法与运算器2.2定点加减运算,78,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码的溢出判断与检测方法之溢出的产生(续)从引例1与引例2中,不难看出,两个正数相加,结果是一个负数(符号位为1),而两个负数相加,结果是一个正数I(符号为0),这显然是错误的。原因:运算结果超出了机器允许表示的范围,数值部分上扩充,从而改变了符号的性质,我们将这种现象称为溢出。例:显然,机器允许表示范围应该为+31到-32这间,大于31称之为上溢或正溢出,小于-32称之为下溢或负溢出。,第二章运算方法与运算器2.2定点加减运算,011111,100000,符号位,数值部分,79,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.溢出的探测方法方法I:设X补=X0,X1,X2.Xn,Y补=Y0,Y1,Y2.Yn其和(或差)为S补=S0,S1,S2.Sn。则溢出条件为:V=X0Y0S0+X0Y0S0方法II:采用变形补码(双符号位补码),第二章运算方法与运算器2.2定点加减运算,80,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码的溢出判断与检测方法之溢出的探测方法(续)观察下列算式:00.100111.011100.110111.0011+00.0011+11.1101+00.1001+11.011100.110011.010001.011010.1010可见,当结果两位符号的值不一致时表时溢出,若设两符号位Sf1和Sf2,则V=Sf1Sf2,第二章运算方法与运算器2.2定点加减运算,81,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码的溢出判断与检测方法之溢出的探测方法(续)方法3:采用双离位判断,设:数值部分最高位产生的进位为Cs;符号部分向上产生的进位为Cf;仍以上面四个标式为例。0.10011.01110.11011.0011+0.0011+1.1101+0.1001+1.01110.11001.01001.01100.1010溢出条件为公式:V=CfCs,第二章运算方法与运算器2.2定点加减运算,Cf=0Cs=0Cf=1Cs=1Cf=0Cs=1Cf=1Cs=0,82,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.2.4补码定点加减运算的实现设A=A0,A1,A2.An,B=B0,B1,B2.Bn,则A+B=A0,A1,A2.An+B0,B1,B2.BnA-B=A0,A1,A2An+B0,B1,B2Bn+0.00.01且A+BAA-BA实现线路如下图。,第二章运算方法与运算器2.2定点加减运算,83,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码定点加减运算的实现(续),第二章运算方法与运算器2.2定点加减运算,+1,+,1,+,-B,+B,0,1,Bi,1,Ai,CP,CPA,A,实现线路,84,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码定点加减运算的实现(续)对实现线路的补充说明:功能所需控制信号加+A+B减+A+B+1,第二章运算方法与运算器2.2定点加减运算,CPA,A,A,CPA,85,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,补码定点加减运算的实现(续)将两种功能的控制命令综合起来,得:+A=ADD+SUB+B=ADD+B=SUB+1=SUB=ADD+SUBCPA=ADD+SUB,第二章运算方法与运算器2.2定点加减运算,A,86,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,小结:这一节,我们讲述了补码加减运算,溢出判断,以及补码加减法实现线路,接着要讨论的是如何才能提高运算器的工作速度。,第二章运算方法与运算器2.2定点加减运算,87,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,加法器是组成运算器的核心部件。因此,如何提高运算器工作速度应从加法器单元以及其组成加法器逻辑线路谈起。,第二章运算方法与运算器2.3加法器逻辑结构的改进,88,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,2.3.1全加器(加法单元)加法单元是一个三端输入,两端输出的加法网络。如下:其中:三个输入端:被加数Ai,加数Bi和低位传来的进位;两个输出端:和Si与本位向高位的进位Ci。当Ai、Bi和Ci-1三个变量中1的个数是奇数时,和Si=1;当三个变量中1的个数等于或大于2时,进位Ci=1。,第二章运算方法与运算器2.3加法器逻辑结构的改进,加法单元,Ci,i,Ai,Bi,Ci-1,89,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器(续)因此,它的逻辑表达式可以写成下列形式:=AiBiCi-1+AiBiCi+AiBiCi-1+AiBiCi-1(1)Ci=AiBiCi-1+AiBiCi-1+AiBiCi-1+AiBiCi-1(2)从加法单元逻辑表达式不难看出,加法器逻辑结构涉及到两个方面:一个是求和单元;另一个是进位问题。下面我们逐一讨论这个问题。,第二章运算方法与运算器2.3加法器逻辑结构的改进,i,90,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器(续)1.串行加法器与并行加法器加法器有串、并这究,只设一个全加器的加法器称串行加法器,如图所示:典型的串行加法器只用一位全加器,由移位寄存器从低位到高位串行地提供操作数进行相加。如果操作数长16位,就要分成16步进行。每步产生一位和,串行地送入结果寄存器,进位信号则用一位触发器寄存,参与下一位的运算。,第二章运算方法与运算器2.3加法器逻辑结构的改进,A,B,QQCD,CP,i,Ci,91,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器之串行加法器与并行加法器(续)那么,如何提高加法器的工作速度呢?有人提出,设置16个加法器。让各位数据同时相加,这就产生了并行加法器,如图所示:并行加法器解决了同时对数的各位相另,减少了本身求和延迟。然而,低位向高位产生的进位,珊珊来迟,提高加法器速度仍然是一句空话。,第二章运算方法与运算器2.3加法器逻辑结构的改进,i,C0,A1,B1,2,C1,A2,B2,n,Cn-1,An,Bn,Cn,92,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器(续)2.进位链通常我们将各位之间传递进位信号的逻辑连接构成的进位线路称进位链。显然,进位链的讨论应从进位函数谈起,由(2)式化简可得:Ci=AiBi+(AiBi)Ci-1(3)可见,Ci的产生与AiBi和(AiBi)Ci-1两项有关。其中,AiBi项取决于本位参加的两个数,而与低位的进位无关。因此,称AiBi为第i位位的进位函数,或称本地进位,记作Gi。,第二章运算方法与运算器2.3加法器逻辑结构的改进,93,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器之进位链(续)(AiBi)Ci-1项,则不但与本位的两个数有关,而且与低位产生的进位有关,低位的产生的进位Ci-1,能否通过第i位,向更高位传递,取决于AiBi,若AiBi=1,传上,若AiBi=0,则断开,于是称AiBi项为进位条件,记作Pi。而(AiBi)Ci-1项称之为条件进位。于是,可将进位逻辑表达式(3)抽象为:Ci=Gi+PiCi-1(4),第二章运算方法与运算器2.3加法器逻辑结构的改进,94,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器之进位链(续)(1)串位进位方式以四位为例:即i=1,2,3,4。于是有:C1=G1+P1C0C2=G2+P2C1C3=G3+P3C2C4=G4+P4C3从逻辑表达式中不难看出,每一级进位直接依赖于前一级的进位。这种进位方式,我们称串行进位。,第二章运算方法与运算器2.3加法器逻辑结构的改进,95,计算机组成原理主讲:刘子良,计算机组成原理主讲:刘子良,全加器之进位链之串行进位方式(续)串行进位链的总延迟时间与字长成正比,字长越长,总的延迟时间就越长。为了得到一个量的概念,我们假定:“与非”门和“或非”门的延迟时间均为1ty,则从上式可以

温馨提示

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

评论

0/150

提交评论