计算机组成原理马洪连.ppt

上传人:小飞机 文档编号:5838250 上传时间:2023-08-25 格式:PPT 页数:307 大小:5.45MB
返回 下载 相关 举报
计算机组成原理马洪连.ppt_第1页
第1页 / 共307页
计算机组成原理马洪连.ppt_第2页
第2页 / 共307页
计算机组成原理马洪连.ppt_第3页
第3页 / 共307页
计算机组成原理马洪连.ppt_第4页
第4页 / 共307页
计算机组成原理马洪连.ppt_第5页
第5页 / 共307页
点击查看更多>>
资源描述

《计算机组成原理马洪连.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理马洪连.ppt(307页珍藏版)》请在三一办公上搜索。

1、计算机组成原理,马洪连,引言,计算机组成:主要指计算机硬件的具体实现方式及工作原理从三方面掌握本课程内容硬件结构:从物理上、逻辑上掌握计算机各部件和器件的构成和作用实现方式:硬件联接形式和内部处理方式(如控制器、运算器的实现方式等)工作原理:计算机各部分内部工作过程,本课程的重要地位本课程是计算机及相关专业的核心专业基础课,对后续课程(操作系统、接口与通信等)的学习十分重要。考研必考课程。通过课程的学习主要掌握以下内容本课程主要讲授单处理机系统的组成及工作原理。分析和说明计算机由哪些功能部件组成(结构),各功能部件在整机中的作用,以及它们如何完成各自所分配的任务(工作原理)。学习难点内容较多、

2、结构复杂、要有数字逻辑的基础学习思路(方法)分析结构、弄清原理、多做练习,课程教材与参考书马洪连,王健,王立明等,计算机组成原理,机械工业出版社白中英主编,计算机组成原理(第四版),科学出版社唐朔飞,计算机组成原理(第2版),高等教育出版社王爱英,计算机组成与结构(第4版),清华大学出版社,主要内容计算机系统概述(计算机基础、基本概念)计算机中数据信息的表示及运算(数制及转换,计算机中数据的表示和编码:包括数值、非数值数据,整数、小数,汉字,校验码等。计算机中运算方法:定点运算、浮点运算、逻辑运算。运算器及实现)存储系统(存储器芯片的结构与工作原理,存储器的组织与连接,高速存储器,虚拟存储器等

3、)指令系统(指令格式、寻址方式、典型指令)中央处理器(CPU的组成及工作原理,控制器的组成及工作原理,指令流水线)总线系统(总线概念、总线技术)外围设备(典型外围设备基本工作原理)输入输出系统(输入输出设备,接口,输入输出控制方式),第一章 计算机系统概论,第一节计算机发展历程,1.1.1 古代计算阶段,计算机工具的发展可分为古代计算机阶段和现代计算阶段。,算盘计算尺,1945年,美籍数学家冯.诺依曼博士发表电子计算工具逻辑设计论文,提出二进制表达方式和存储程序控制计算机构想。1946年,美国宾西法尼亚大学研制成功电子数字计算机 ENIAC。重约30吨,耗电150kW,占地170平方米,用电子

4、管18800个,每秒5000次加法。,1.1.2 现代计算阶段,现代计算机的发展大致分为四阶段:,第一代 电子管时代(1946-1958):耗电高,体积大,定点计算,机器语言,汇编语言第二代 晶体管时代(1958-1965):变集中处理为分级处理,浮点运算、高级语言第三代 中小规模集成电路时代(1965-1970):存储容量大,运算速度快,几十至几百万次/秒第四代 大规模集成电路时代(1971至今):向大型机和微型机两个方向发展现代计算机发展方向:巨型化,微型化,网络化,智能化,多媒体化,多核。摩尔定律,第二节 计算机层次结构,计算机的基本部件有中央处理器CPU(运算器和控制器)、存储器和输入

5、设备、输出设备。,早期运算器和控制器为两部分,现在集成在一起。,存储器用来存放程序和数据,是计算机各种信息的存储和交流中心。存储器可与CPU、输入输出设备交换信息。,输入设备用来输入原始数据和处理这些数据的程序。输入的信息有数字符、字母和控制符等。,输出设备用来输出计算机的处理结果。可以是数字、字母、表格、图形等。,1.2.1 计算机硬件基本组成及特点,典型冯.诺依曼(Von Neumann)机结构,计算机的基本结构图,数据线路,控制信号,冯.诺依曼机的基本特点,计算机由运算器、控制器、存储器、输入设备和输出设备五部分组成。机器以运算器为中心,数据传送都经过运算器。采用存储程序的方式,程序和数

6、据放在同一存储器中,由指令组成的程序可以修改。指令在存储器中按执行顺序存放,由指令计数器指明要执行的指令所在的单元地址,一般按顺序递增。数据以二进制码表示指令由操作码和地址码组成。软件硬件完全分开,计算机中的各种程序、数据和有关文档构成计算机的软件系统。计算机软件的主要任务:计算机资源的管理计算机语言和机器语言的转换用户的一般任务计算机的软件一般分为两大类:系统软件:便于计算机使用的系统管理程序(包括操作系统、语言处理、数据库管理系统等)应用软件:针对用户具体实际应用的程序,1.2.2 计算机的软件及其分类,层次结构:计算机系统是一个复杂的软、硬件结合体,它包含硬件系统和软件系统两部分。它通常

7、由6个(或5个)不同的级组成,在每一级都能够进行程序设计虚拟机。,计算机系统的层次结构,数字逻辑层微体系结构层 机器指令层 操作系统软件层汇编语言层高级语言层,第三节 计算机的分类及应用,1.3.1 计算机的分类按计算机信息表示形式和对信息处理方式,计算机可分为机器式计算机和电子计算机。电子计算机又可分为数字计算机、模拟计算机和混合计算机。现在所说计算机通常是指数字计算机按计算机的用途不同,计算机分为通用计算机和专用计算机。,按计算机速度、存储容量、功能强弱分类:巨型机又称为超级计算机,世界少数国家生产。2010年11月,我国“天河一号”以峰值速度4700万亿次/秒、持续速度2570万亿次/秒

8、浮点运算的性能居36届世界超级计算机TOP500第一。2011年6月,第37届TOP500排行榜,日本“京”以每秒8162万亿次的实测运算速度跻身榜首,“天河一号”排名第二。大中型机大中型企事业单位作为计算中心的主机使用,统一调度主机资源,代表产品有IBM390,4300系列等。小型机满足部门性的需求,供小型企事业单位使用。典型产品有DEC-PDP系列,DEC-VAX系列等。工作站用于特殊的专业领域,例如图像处理和辅助设计等。典型产品有HP-APOLLO,SUN工作站等。微型机个人或家庭使用,PC机/个人计算机,价格低廉。,计算机的应用领域主要表现在以下六方面:科学计算数据处理计算机辅助技术过

9、程控制人工智能网络应用,计算机的应用,第四节 计算机的性能指标,处理机字长:指计算机内,表示一个操作数或一条指令所用的基本二进制位数。是CPU一次能处理的数据宽度,与加法器、寄存器的位数和内部数据总线的宽度等有关。字长标志着精度,字长越长,运算精度越高。影响计算机的处理能力和运行性能。通常选字节的整数倍:2、4、8倍等。主存容量:计算机主存储器所能够存储的信息的全部总量,称为主存容量。以字节数来表示存储容量的计算机称为字节编码计算机;而以字为单位编址的计算机,存储容量等于字数乘以字长。主频:每台计算机的内部都有一个不断地产生固定频率时钟脉冲的装置,称为主时钟。主时钟的频率通常是机器的主频率,主

10、频率是衡量一台计算机速度的重要参数。,2.主频、CPU时钟周期、CPI、CPU执行时间(1)主频:CPU工作主时钟的频率,机器主频f或Rc(2)CPU时钟周期:机器主频的倒数,Tc(3)CPI:执行一条指令所需要的平均时钟周期(4)CPU执行时间:TCPU=InCPITcIn执行程序中指令的总数,CPI执行每条指令所需的平均时钟周期数,TC时钟周期时间的长度。,3.MIPS、MFLOPS(1)MIPS(Million Instructions Per Second):CPU每秒钟平均执行的整数指令条数(百万条)MIPS=In/(TCPU106)=In/(InCPITc106)=Rc/(CPI1

11、06)In:执行该程序的总指令数,TCPU:执行该程序的总时间,Tc:CPU时钟周期,Rc:主频 Rc=1/Tc MIPS只适合评价标量机,不适合评价向量机。标量机执行一条指令,得到一个运行结果。而向量机执行一条指令,可以得到多个运算结果。,(2)MFLOPS(Million Floating Point Operations Per Second):每秒钟平均执行的浮点数的运算次数(百万次)MFLOPS=Ifn/(TCPU106)Ifn:程序中浮点数的运算次数 MFLOPS测量单位比较适合于衡量向量机的性能。一般而言,同一程序运行在不同的计算机上时往往会执行不同数量的指令数,但所执行的浮点数

12、个数常常是相同的。,单项选择题:1、完整的计算机系统应包括()。A.运算器、存储器、控制器 B.外部设备和主机 C.主机和实用程序D.配套的硬件设备和软件系统答案:D2、至今为止,计算机中的所有信息仍以二进制方式表示的理由是()。A.节约元件 B.运算速度快 C.物理器件的性能决定 D.信息处理方便答案:C3、从器件角度看,计算机经历了四代变化。但从系统结构看,至今绝大多数计算机仍属于()型计算机。A.并行 B.冯诺依曼 C.智能 D.实时处理答案:B4、冯诺依曼机工作的基本方式的特点是()。A.多指令流单数据流 B.按地址访问并顺序执行指令C.堆栈操作 D.存储器按内容选择地址答案:B,练习

13、,5、冯诺依曼型计算机的基本工作方式是()。A.单指令流多数据流方式 B.控制流启动方式C.多指令流多数据流方式 D.数据流启动方式答案:B6、微型计算机的发展一般是以()技术为标志。A操作系统 B微处理器 C磁盘 D软件答案:B7、我们目前所说的个人台式商用机属于()。A巨型机 B中型机 C小型机 D微型机答案:D8、Pentium4 2.0G的CPU中,2.0G是指()。A每秒执行2G条指令 B系统时钟频率2.0GHz C每条指令耗时2s DCPU主频为2.0GHz答案:D,9、下列说法中不正确的是()。A可以由软件实现的操作也可以由硬件来实现B固件就功能而言类似于软件,从形态上说又类似于

14、硬件C在计算机系统的层次结构中,微程序属于硬件级别,其他各级都是软件级D面向高级语言的机器是完全可以实现的 答案:C10、下列选项中,描述浮点数操作速度指标的是()。AMIPSBCPI CIPC DMFLOPS答案:D,第二章计算机中的数据信息 表示和运算,第一节数制与编码数制及转换1、数制常用数制十进制(D):日常使用数制二进制(B):数字计算机内部使用数制十六进制(H):为使于对二进制的阅读和书写,常采用十六进制(或八进制)表示。,一、数制及相互转换1、数制常用数制十进制(D):日常使用数制二进制(B):数字计算机内部使用数制十六进制(H):为使于对二进制的阅读和书写,常采用十六进制(或八

15、进制)表示。,对一任意数S,其r进制数表示为(S)rkn r n-1+kn-1 r n-2+ki r i-1+k-m r-m-1其中 kir r称为进位计数值的基数,ki为第i位数字符,i为位序号,r i为第i位的位权。,(347)8=382+481+780=(231)10(347.5)8=382+481+780+58-1=(231.625)10(34E.5)16=3162+4161+14160+516-1=(846.3125)10,2、不同数制间的转换1十进制八,十六进制二进制法则整数部分:除8(16)取余数小数部分:乘8(16)取整重复循环,2八,十六进制二进制二进制八进制以小数点为界,分

16、别向左和向右每三位分为一组,然后写出各组对应的八进制数。二进制十六进制以小数点为界,分别向左和向右每四位分为一组,然后写出各组对应的十六进制数。,3八,十六进制十进制直接按照相应进制数的公式,依“按权相加”的方法计算出通式的值。(10110.01)=124+023+122+181+120+02-1+12-2=(22.25)10(347.5)8=382+481+780+58-1=(231.625)10(34E.5)16=3162+4161+14160+516-1=(846.3125)10,2.1.2数值数据的编码与表示一、真值与机器数在计算机中对数据进行运算操作时,符号位的表示,符号位是否也同数

17、值位一道参加运算,如何参加运算?为了妥善的处理好这些问题,就需要把符号位和数字位一起编码表示数据,为适应不同的处理要求,产生了多种数据编码方法,如原码、补码、反码、移码等。计算机中对数据的表示都采用二进制编码真值:数值数据的实际值,如257,33,1011B等机器数(机器码):数值数据在计算机内的编码表示,在计算机中通常采用原码、补码、反码和移码表示数值数据原码、补码、反码的共性:1)这几种编码表示中,正数的编码值与真值一样,负数具有不同的编码。2)编码的最高位为符号位:0表示正1表示负,1、原码表示法符号位:0表示正,1表示负数值部分:与真值的二进制形式一样原码的特征:1)零有两种表示:0和

18、0+0原=0.000.0-0原=1.000.0 2)优点:简单直观,便于乘、除法运算缺点:加减法运算不便(符号不能直接参预运算),实例:X1=0.1011-0.1011 0.0000 X 原=0 1011 1 1011 0 0000 1 0000 说明:原码是符号位加数的绝对值,符号 0正 1负 原码零有两个编码,+0 和-0 的编码不同 原码难以用于加减运算,但乘除方便,(纯小数)原码的定义与说明,定义:,-(1-2-(n-1)X 0,0 X 1-2-(n-1),2、反码表示法符号位:0表示正,1表示负数值部分:正数不变;负数反码是将真值的各位取反得到反码的特征:1)零有两种表示:0和00反

19、0.00.00反1.11.12)通常用于求补码,3、补码表示法符号位:0表示正,1表示负数值部分:正数不变;负数通过求补得到计算机中数值数据采用补码形式,其符号部分可以直接参预加、减法运算。补码的特征:1)零的表示唯一2)补码加减法运算中,符号直接参预运算3)定点小数表示中,-1补1.000,实例:X1=0.1011-0.1011 0.0000 X 补=0 1011 1 0101 0 0000说明:补码最高一位是符号位,符号 0 正 1 负 补码表示为:2符号位+数的真值 补码零只有一个编码,故能表示-1 补码能很好地用于加减(乘除)运算,(纯小数)补码的定义与说明,定义:,-1 X 0,Mo

20、d 2,0 X 1-2-(n-1),补码的一些补充说明,得到一个数补码表示的简便办法 当X0时,X补的符号位取 0,数值位取X的各数值位上的值,此时有X补=X 当X0时,X补的符号位取 1,将 X 的各数值位取反,再在最低位加1,以得到 X补的各数值位上的值X原与X补的相互转换简便方法 从X原求X补时,对正数或零,有X补=X原,对负数则符号位不变,各数值位变反后再在最低位执行加 1 操作 由X补求 X原时,对负数仍是符号位不变,各数值位变反后再在最低位执行加 1 操作,已知 y补如何简单求-y补,X为真值,整数的机器数,n位字长(1 位符号位,n-1 位数值位),-(2n-1-1)X 0,0

21、X 2n-1-1,-(2n-1-1)X 0,0 X 2n-1-1,-2n-1 X 0,0 X 2n-1-1,(mod 2n),设机器数字长为 8 位(含1位符号位),表示整数时,每个编码分别代表无符号数、原码、补码和反码的真值各为多少?,、移码表示法移码通常用于表示浮点数的阶码。阶码是个n位的整数。n+1位移码的定义是移2n2n2n符号位:1表示正,0表示负数值部分:与补码数值部分相同移码的特征:1)零的表示唯一:100002)移码只能表示整数(只有整数有移码),用于浮点数阶码表示5、无符号数的表示,例:写出下列各数位的原码、反码、补码、移码表示。77103 0.0110123/6477=10

22、01101103=110011123/64=1011126=0.010111,例:写出下列机器码的真值。x1原0.110101x2原1000101x3反1.010101 x4反0.000101x5补1.010101 x6补0.000101x7补1.000000 x8补10000000 x3移1010101 x4移0000101,二、数值数据和信息的表示,逻辑型数据字符型数据ASCII 码 EBCDIC 码字符串 汉字数值型数据定点小数 整数 浮点数 二 十进制数(BCD码),1、二 十进制码(BCD码),BCD码:计算机中采用4位二进制码对每个十进制数位进行编码,一个多位的十进制数被表示为这种

23、编码的数串。4位二进制码有16种不同的组合,从中选出10种来表示十进制数位的09,用0000,0001,1001 分别表示0,1,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(Binary Coded Decimal,简称BCD)码”。,BCD码,BCD码有多种不同的编码方案:例如:8421码,84-2-1码,余 3 码,格雷码 可以进一步分为有权码和无权码:有权码:每位上的 1 代表确定的值 无权码:无法确定每位上的 1 代表的值,BCD码加法运算的修正规则:如果两个一位BCD码相加之和小于或等于9,不需要修正;如相加之和大于9或产生进位,要

24、进行加6修正,如果有进位,要向高位进位。,2、字符及字符串的表示,字符作为人机联系的媒介,是最重要的数据类型之一,当前的西文字符集由 128 个符号组成,通常用 8 位二进制编码,即用一个字节来表示一个字符。常用两个标准字符集:,EBCDIC码:Extended Binary Coded Decimal Interchange CodeASCII 码:American Standard Code for Information Interchange ASCII码用7位二进制表示一个字符,总共128个字符元素,包括10个十进制数字(0-9)、52个英文字母(A-Z和a-z)、34个专用符号和3

25、2个控制符号。ASCII码字符集具体编码如下表所示:,ASCII 码字符集,字符串是指连续的一串字符,它们占据主存中连续的多个字节,通常每个字节存放一个字符。字符串的存放串表存储法:字符串的每个字符代码后面设置一个链接字,用于指出下一个字符的存储单元的地址。向量存储法:字符串存储时,字符串中的所有元素在物理上是邻接的,对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。表示字符串数据要给出串存放的主存起始地址和串的长度。例如:IF AB THEN READ(C)就可以有如下不同存放方式。,3、汉字的表示与编码,通常用两个字节表示一个汉字。为了与西文字符编码

26、相区别(西文的ASCII码的最高一位编码值为 0),表示一个汉字时,把两个字节的最高一位的编码值设定为 1,则该编码集的最多编码数量为 128 128。,汉字的表示方法,汉字内码内码是用于汉字信息的存储、交换、检索等操作的机内代码,它一般采用两个字节的二进制形式表示一个汉字。汉字输入编码输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、字音编码和字型编码等。汉字字模编码字模编码:以点阵方式描述 汉字字型的代码,它是汉字的输 出形式。,国标码=区位码+2020H机内码=国标码+8080H,2.1.3 校验码,在计算机中,为保证信息存取和传送的准确,一方面需要硬件电路的

27、可靠性保障,另一方面可以通过对传输的数据、信息进行判断校验,发现和纠正数据存储和传输过程中的错误。,一、校验码基本概念,校验位:在有效信息数据代码之外,再扩充几位。增加的部分称为冗余位或校验位。码字:若干位二进制代码组成的一个字。码制:包含若干种码字的集合。距离:在一种码制中将其中任意两个码字逐位比较,这两个码字各对应的位中数值不同的位数就叫做这两个码字之间的“距离”。码距:将一种码制中各码字间的最小距离定为这种码制的“码距”,合理增大码距,能提高发现错误的能力,但表示一定数量的合法码所使用的二进制位数要变多,增加了电子线路的复杂性和数据存储、数据传送的数量。,常用的校验码,奇偶校验码:用于并

28、行数据传送中海明校验码:用于并行数据传送中循环冗余校验码:用于串行数据传送中,运行过程的 3 步曲:,二、奇偶校验码,实现原理:是使码距由1增加到2。若编码中有1位二进制数出错了,出错的编码就成为非法编码,就可以知道出现了错误。在原有的编码之上再增加一位校验位,原编码k位,形成新的编码为k+1 位。增加的方法有2种:奇校验:增加位的0或1要保证整个编码中1的个数为奇数个。偶校验:增加位的0或1要保证整个编码中1的个数为偶数个。,奇偶校验码的实现电路,奇校验 偶校验,偶校验出错指示,奇校验出错指示,三、循环冗余校验码(CRC),CRC(Cyclical Redundancy Check)校验码一

29、般是指k位信息之后拼接r位校验码。关键问题是如何从k位信息得到r位校验码。进一步:如何从k+r位码字判断是否出错,哪位出错。用于多位串行数据传送中的检错、纠错处理,在 k 位数据位串行移位输出的过程中,用带有异或门控制的移位寄存器形成 r 个校验位的值,跟随在数据位之后传送走。在接收端再对 k+r 位的码字进行合法与出错检查,若可能则自动改错。,CRC码的编码方法,CRC整个编码长度为 n=k+r 位,故CRC码又叫(n,k)码。其编码方法如下:假设被传送的k位二进制信息位用C(x)表示,系统选定的生成多项式用G(X)表示,将C(x)左移 G(X)的最高次幂(即等于需要添加的校验位的位数r),

30、写作 C(x)2 r然后将C(x)2 r除以生成多项式G(x),所得商用Q(x)表示,余数用R(x)表示。则有:两边同时乘以G(x)并左移 R(x)得到:,故有:上式中,等式左边即为所求的n位CRC码,其中余数表达式R(x)就是校验位(r位)。且等式两边都是G(x)的倍数。发送信息时将等式左边生成的n位CRC码送给对方。当接收方接到n位编码后,同样除以G(x),如果传输正确则余数为0,否则,可以根据余数的数值确定是哪位数据出错。,CRC编码采用的是按位加、减法,即不考虑进位与借位,运算规则为:00=0,01=1,10=1,11=0,【例】有一个(7,4)码(即CRC码为7位,信息码为4位),已

31、确定生成多项式为:G(X)=X3+X+1=1011被传输的信息C(x)=1001,求C(x)的CRC码。,解:C(x)左移 r=nk=3 位 即 将上式模2采用除法 除以给定的 G(x)=1011:1001000/1011=1010+110/1011 得到余数表达式:R(x)=110 所求CRC码:,(A),(B),CRC码的查错表,收到的CRC码除以约定的生成多项式G(x),如果余数为0则传输无误,否则传输错误,根据所得余数值就可找出错误并取反纠正。上表详细说明了CRC码1001110在传送时某一位出错后的判断与纠正方法 C(X)=1001、G(x)=1011。,生成多项式G(x)的确定,G

32、(x)是一个约定的除数,用来产生校验码。从检错和纠错的要求出发,它并不是随意选择的,为了得到r位余数,G(x)必须是r+1位。应满足下列要求:任何一位发生错误都应使余数不为0;不同位发生错误应使余数不同;余数继续模2 除,应使余数循环。,第二节 定点数的表示和运算,定点数:在计算机中,小数点位置固定不变的数。(1)无符号数的表示 机器字长的全部位数均用来表示数值的大小,相当于数的绝对值。对于字长为n位的无符号数的表示范围为:0 2n-1。(2)带符号数的表示在计算机中将数的符号数码化。一般规定二进制的最高位为符号位,最高位为“0”表示该数为正,为“1”表示该数为负。这种在机器中使用符号位也被数

33、码化的数称为机器数。根据符号位和数值位的编码方法不同,机器数分为原码、补码和反码等。定点整数、定点小数,2.2.1 定点数的表示,数值范围和数据精度,数值范围 数值范围是指一种类型的数据所能表示的最大值和最小值。数据精度 通常指实数所能给出的有效数字位数;对浮点数来说,精度不够会造成误差,误差大量积累会出问题。,、定点数的表示定点表示:约定机器中所有数据的小数点位置是固定不变的。由于约定在固定的位置,小数点就不再使用记号“.”来表示。通常将数据表示成纯小数或纯整数。n+1位定点数表示:X0 X1 X2X3 Xi Xn-2 Xn-1Xn 其中X0为符号位,X Xn为数值部分,Xi为或。,1定点小

34、数最高位为符号位,小数点位置隐含约定在符号位后,其后为数值部分n+1位定点小数的表示范围是0X12n或:(12n)X12n(16位小数范围:(12)X12),2定点整数最高位为符号位,其后为数值部分,小数点位置隐含约定在数值部分的后面。n+1位定点整数的表示范围是0X2n 1或:(2n 1)X2n 1(16位整数范围:(215 1)X(215 1),计算机中的各种运算处理可以根据算法分解为四则运算和基本的逻辑运算,四则运算可以归结为加法和移位操作处理实现。,2.2.2 定点数的运算,1、补码加法负数用补码表示后,可以和正数一样来处理。这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运

35、算,再配一个减法器。补码加法的公式是补补补(mod 2)补码加法的特点:符号位要作为数的一部分一起参加运算,要在模2的意义下相加,即超过2的进位要丢掉。,、补码减法负数的减法运算也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。数用补码表示时,减法运算的公式为补补补补补在实际计算时,利用补 补补公式将减法运算变为加法进行,现在的问题是如何从y补去求y补这一点在硬件上实现也很简单,只需对y补包括符号位“求反且最末位加1”(简称“求反加”),即可得到y补。,实现补码加减运算的逻辑电路,加,00000111,实现补码加运

36、算的执行过程,X X+Y完成加运算,需要把被加数和加数送ALU的输入端,运算结果要接收到累加器,需要给出命令:,加数,10110001,01010110,00000111,命令建立,数据传送,加运算,存结果,命令建立,00000111,数据传送,命令建立,实现补码减运算的逻辑电路,1,00001110,01100101,01010110,01100101,3、溢出判断与移位,1)溢出判断方法当运算结果超出机器数所能表示的范围时,称为溢出。在定点机中,正常情况下溢出是不允许的。上溢:两个正数相加,结果大于机器所能表示的最大正数,称为上溢。下溢:两个负数相加,结果小于机器所能表示的最小负数,称为下

37、溢。,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来。主要判别方法:单符号位:当任意符号两数相加时,设Cf为最高数值位的进位,Cs为符号位的进位,若Cf=Cs,运算结果正确;若CfCs,则产生溢出。溢出条件:OV=CsCf。,双符号:双符号补码,也称为“变形补码”或“模4补码”其定义为:补 204 02 采用变形补码后,正数的符号位为00,负数的符号位为11,当运算结果符号不为00或11时,说明产生了溢出。假设变形补码,第一符号位Sf1,第二符号位Sf2,正数的双符号位为00,负数的双符号位为11。符号位参与运算,当结果的两个符号位不相同时为溢出。溢出条件OV=Sf1Sf2。,补码

38、加减法溢出判断,方法一:单符号位:数值位有向符号位的进位,但符号位不产生向更高位的进位,数值位没有向符号位的进位,但符号位产生向更高位的进位方法二:双符号位:运算结果为 01(正溢)或 10(负溢),最高符号位Sf1 代表其 真正的符号,补码加减法运算实例,X=0.1011 y=-0.0101X补=00 1011,Y补=11 1011 模 4 补码-Y补=00 0101 00 1011 00 1011+11 1011+00 0101100 0110 01 0000X+Y(不溢出)X-Y(溢出),正数加负数不会溢出符号位和数值位都产生进位双符号位结果相同不是溢出,正数加正数结果为负是溢出数值位有

39、进位符号位无进位是溢出双符号位结果不相同是溢出,判断溢出的 2套方案是一个事实的 2种不同的表述,单符号位判断,数值位向符号位有进位但符号位无进位输出或数值位向符号位没有进位但符号位本身有进位输出是溢出,双符号位判断,运算结果的 2 个符号位的值不相同表明有溢出,2)移位操作移位是算术逻辑运算的一种基本操作。是将二进制代码向左或向右进行移动的操作。通常将移位分为逻辑移位和算术移位两大类。逻辑移位:将数字代码当成纯逻辑代码而没有数值的大小关系。算术移位:数字代码具有数值含义。通常左移一位实现乘2操作,右移一位实现除2操作。通常算术移位是针对补码表示。,3)舍入处理对固定长度的数,右移会舍去低位部

40、分,舍入处理是当出现要舍去低位部分时,按照怎样的方式或规则处理。尽量减少舍入造成的误差。常用的舍入方法:“0舍1入”法:如果右移时被丢掉数位的最高位为0则舍去,为1则将尾数的末位加“1”。“恒置一”法:只要数位被移掉,就在尾数的末尾恒置“1”。,4、定点数的乘法运算,原码一位乘法:两个原码数相乘,其乘积的符号为相乘两数的异或值,数值为两数绝对值之积。补码一位乘法:乘法直接用补码进行,以减少转换次数。,X原=X0.X1 X2Xn,X0为符号Y原=Y0.Y1 Y2Yn,Y0为符号,原码一位乘运算方案,符号位异或,绝对值相乘,87,XY=X(0Y1Y2Yn)=X(Y1 2-1+Y2 2-2+Yn 2

41、-n)=2-1(Y1X+2-1(Y2X+2-1(+2-1(YnX+0)上式的递推形式为P0=0P1=2-1(YnX+P0)P2=2-1(Yn-1X+P1)Pi=2-1(Yn-i+1X+Pi-1)Pn=2-1(Y1X+Pn-1)上式的实际操作为:累加、右移,原码一位乘运算方案,0.1 1 0 1*0.1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0+1 1 0 10.1 0 0 0 1 1 1 1,解决方案:1.每次求出部分积,不是一次总累加 2.变每次左移被乘数为右移部分积,移出的部分保存起来(保存到哪?)3.乘数放到一个移位寄存器中,判乘数每一位的值用最低的一位线路,该方案用于

42、计算机会有问题:1.加法器只有两个数据输入端 2.加法器与乘运算数据位数相同 3.如何判断乘数每一位是 0 或者 1,例:X=0.1101,Y=0.1011,求 XY=?,最终乘积原码表示:0 1 0 0 0 1 1 1 1,手工运算过程:,实现原码一位乘法的逻辑线路图,加 法 器,部 分 积,被 乘 数,乘 数,F,最低位,加运算,移位线路每位1套,第 i 位,第 i 位,第 i+1位,第 i-1位,F/2X FX F*2X,移位电路,最高位,三选一电路,被乘数作为加数,用乘数最低位的值控制累加,结果右移一位存部分积寄存器,并且乘数同时右移一位。,部分积的最低位移入到乘数的最高位,计数器 C

43、d,原码一位乘运算过程举例,X=0.1101 Y=0.1011,定点补码一位乘法,原码乘法存在的缺点是符号位需要单独运算,并要在最后给乘积冠以正确的符号。补码乘法是指采用操作数的补码进行乘法运算,最后乘积仍为补码,能自然得到乘积的正确符号。,算法分析:,则有:Y=-Y0+0.Y1Y2Yn,可以得到 XY补=X补(0.Y1Y2Yn)+-X补Y0,符号位,X补=X0.X1X2Xn,Y补=Y0.Y1Y2Yn,93,补码一位乘法的递推形式:【X*Y】补=X补(0.Y1Y2Yn)+-X补Y0=X补(0.Y1Y2Yn)-X补Y0=X补(-Y0+2-1Y1+2-2Y2+2-nYn)=X补(-Y0+(Y1-2

44、-1Y1)+(2-1Y2-2-2Y2)+(2-(n-1)Yn-2-nYn)=X补(Y1-Y0)+2-1(Y2-Y1)+2-2(Y3-Y2)+2-n(Yn+1-Yn)=(Y1-Y0)X补+2-1(Y2-Y1)X补+2-1(Y3-Y2)X补+2-1(+2-1(Yn+1-Yn)X补+0)其中Yn+1=0,94,补码一位乘法的递推形式:【P0】补=0,Y n+1=0【P1】补=2-1(【P0】补+(Yn+1-Yn)【X】补)【P2】补=2-1(【P1】补+(Yn-Yn-1)【X】补)【Pn】补=2-1(【Pn-1】补+(Y2-Y1)【X】补)【XY】补=【Pn+1】补=【Pn】补+(Y1-Y0)【X】

45、补,Yn(高位)Yn+1(低位)操作(A补为部分积累加和),0 00 11 01 1,1/2A补 1/2(A补+X补)1/2(A补+-X补)1/2A补,(0),(1),(-1),(0),布斯算法:在乘数Yn后添加Yn+1=0。按照Yn+1,Yn相邻两位的三种情况,其运算规则如下:,右移一位,Booth算法运算规则,部分积A、被乘数B取双符号位,符号位参加运算;乘数C取单符号位,符号参加移位,以决定最后是否修正;C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作,作n步循环;第n+1步(可能不用)由(Y1-Y0)决定,仅修正,不移位。,【例】X=-0.1101,Y=0.10

46、11,求XY补。初值:A=00.0000,B=X补=11.0011,-B=-X补=00.1101,C=Y补=0.1011,计算过程:,0 0 0 0 0 0 0.1 0 1 1 0 初始值,最后一位补0 0 0 1 1 0 1 Y4Y5=10+-X补0 0 1 1 0 10 0 0 1 1 0 1 0 1 0 1 1 右移一位0 0 0 0 0 0 Y3Y4=11+00 0 0 1 1 00 0 0 0 1 1 0 1 0 1 0 1 右移一位1 1 0 0 1 1 Y2Y3=01+X补1 1 0 1 1 01 1 1 0 1 1 0 0 1 0 1 0 右移一位 0 0 1 1 0 1 Y1

47、Y2=10+-X补0 0 1 0 0 00 0 0 1 0 0 0 0 0 1 0 1 右移一位1 1 0 0 1 1 Y0Y1=01+X补1 1 0 1 1 1 0 0 0 1,+,部分积 乘数Y Yi Yi+1 说明,乘积高位 乘积低位,XY补=1.01110001,XY=-0.10001111,不移位,98,阵列乘法器为提高乘法运算的处理速度,现在计算机的乘法器通常采用由多个全加器构成的阵列乘法器实现。设有两个不带符号的二进制整数:Aam1a1a0Bbn1b1b0它们的数值分别为a和b,即m1n1 a ai2ib bj2ji0j0 在二进制乘法中,被乘数A与乘数B相乘,产生mn位乘积P:

48、Ppmn1p1p0乘积P 的数值为:,99,实现这个乘法过程所需要的操作:其中的aibj实际为ai与bj的逻辑与,5X5位阵列乘法器,101,阵列乘法器构成:m位被乘数,n位乘数的阵列乘法器可由(m1)n个全加器构成。为提高并行处理能力和速度,减少进位延迟时间,每行相加产生的进位向左斜向移到下一行前一位的全加器处理。5、带符号的阵列乘法器原理阵列乘法器只能处理原码的乘法运算,但在计算机中数据经常采用补码表示,为实现补码乘法运算,就需要采用带符号的阵列乘法器。带符号的阵列乘法器可借助无符号的阵列乘法器加上求实电路实现。,102,求补电路对2求补时,可采用按位扫描技术来执行所需要的求补操作:从最后

49、一位开始,找到出现的第一个,并保持该位不变,然后对前面所有的位求反。,带求补器的阵列乘法器采用不带符号的阵列乘法器附加三个求补器构成:其中两个算前求补器的作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。,5、定点除法运算,定点原码一位除法恢复余数法:被除数(余数)减去除数,如果为0或者为正值时,上商为1,不恢复余数;如果结果为负,上商为0,再将除数加到余数中,恢复余数。余数左移1位。加减交替法:当余数为正时,商上1,求下一位商的办法,余数左移一位,再减去除数;当余数为负时,商上0

50、,求下一位商的办法,余数左移一位,再加上除数。,【例】设被除数X=0.1011,Y=0.1101,用原码加减交替法求X/Y=?,解:设置寄存器:A寄存器中开始时存放被除数的绝对值,以后将存放各次余数,取双符号位。B寄存器存放除数的绝对值,取双符号位。C寄存器同来存放商,取单符号位。,|Y|补=00.1101,-|Y|补=11.0011,加减交替法处理思想:先减后判,如减后发现不够减,则在下一步改作加除数操作。要点:被除数|X|除数|Y|,取原码尾数的绝对值相除,符号位单独处理,商的符号为相除两数符号的异或。被除数的位数要扩展成除数位数n的两倍(2n位),其低位的数值部分开始时放在商寄存器中。在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号