计算机组成原理与汇编语言 课件全套 易小琳 第1-13章 绪论、数据信息表示 - 分支程序设计_第1页
计算机组成原理与汇编语言 课件全套 易小琳 第1-13章 绪论、数据信息表示 - 分支程序设计_第2页
计算机组成原理与汇编语言 课件全套 易小琳 第1-13章 绪论、数据信息表示 - 分支程序设计_第3页
计算机组成原理与汇编语言 课件全套 易小琳 第1-13章 绪论、数据信息表示 - 分支程序设计_第4页
计算机组成原理与汇编语言 课件全套 易小琳 第1-13章 绪论、数据信息表示 - 分支程序设计_第5页
已阅读5页,还剩591页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理与汇编语言内容第一章绪论第二章数据信息表示第三章数值运算及运算器第四章指令系统第五章中央处理器(CPU)第六章存储系统第七章输入输出系统及外围设备第八章汇编语言参考教材《计算机组成原理》(第2版)唐朔飞高等教育出版社2008年《计算机组成原理》蒋本珊清华大学出版社2004年《计算机组成原理与汇编语言程序设计》

俸远祯等电子工业出版社1999年《计算机组成和设计硬件/软件接口》(第2版)

DavidA.Patterson等著

清华大学出版社2003年《计算机组成与体系结构》(第3版网络版)

白中英科学出版社2006年第一节计算机的分类和应用第二节计算机的基本组成第三节计算机系统的硬件结构第四节计算机系统的软件第五节计算机系统的层次结构第六节计算机性能指标分析第七节计算机系统组织和结构的发展第一章

绪论第一节计算机的分类和应用一、计算机的分类电子模拟计算机的主要特点:参与运算的数值由不间断的连续量表示,其运算过程是连续的。电子数字计算机的主要特点:参与运算的数值用断续的数字量表示,其运算过程按数字位进行。数字计算机分类数字计算机按用途分为:专用计算机和通用计算机。专用计算机:为解决某类问题而设计。通用计算机:适应性很强,可以解决各类应用。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用计算机按其规模、速度和功能等又可分为巨型机、大型机、中型机、小型机、微型机以及单片机。二、计算机的应用 (一)科学计算——数值计算 (二)计算机控制——A/D、D/A (三)信息处理——非数值计算(四)教育和卫生(五)家用电器(六)人工智能第一节计算机的分类和应用一、存储程序的概念采用二进制形式表示计算机中的数据和指令。把编好的程序和原始数据预先存入主存储器中,使计算机在工作时能够连续、自动、高速地从存储器中取出一条条指令并且执行之。(存储程序概念)由运算器、存储器、控制器、输入设备和输出设备五大基本部件组成计算机系统。第二节计算机的基本组成算术运算逻辑运算存放数据和程序将信息转换成机器能识别的形式将结果转换成人们熟悉的形式指挥程序运行冯·诺依曼计算机硬件框图存储器输入设备运算器控制器输出设备y=ax+b-c行数解题步骤和数据说

明1取数(9)→算盘(9)表示第9行的数a,下同2乘法(12)→算盘完成a*x,结果在算盘上3加法(10)→算盘完成ax+b,结果在算盘上4减法(11)→算盘完成ax+b-c,结果在算盘上5存数y→13算盘上的y值记到第13行6输出把算盘上的y值写出给人看7停止运算完毕,暂停8

9a数据10b数据11c数据12x数据13y数据输入设备存储器运算器输出设备控制器状态数据结果请求命令地址指令命令请求命令程序结果计算机的基本组成框图二、计算机的主要部件(一)输入设备:功能:向机器输入操作员提供的原始信息,并将这些信息变换为计算机能够识别的形式。(二)输出设备:功能:将计算机的处理结果,以人们容易接受的形式或为其他机器所能接受的形式输送出来。(三)存储器功能:存储程序和各种数据信息。存储系统通常分为三级存储体系。第二节计算机的基本组成存储系统的三级存储体系主存储器(内存储器)、辅助存储器(外存储器)、高速缓冲存储器。CPUcache主存外存

(四)运算器功能:执行算术运算和逻辑运算的部件,对信息进行加工处理。 (五)控制器功能:产生一系列控制信号以指挥整个计算机系统有条不紊的自动运行。(即决定做某种动作的时间和条件。)控制器的结构有两种类型:即组合逻辑控制器和微程序控制器。第二节计算机的基本组成 总线:一组公共信息传输线路,能为多个部件服务,可分时地发送与接收各个部件的信息。总线的数据通路宽度:指能够一次并行传送的数据位数。总线分为单向总线和双向总线。单向总线:挂在总线上的一些部件将信息有选择地传向另一些部件,却不能反向传送;第三节 计算机系统的硬件结构一、总线

双向总线:挂在总线上的任何一个部件或设备都可以从总线上有选择地接受其他部件或设备的信息,而且能通过总线有选择的向其他部件或设备发送信息。总线传送信息的类别:数据总线:传送操作数或程序。地址总线:传送主存储器地址码或外围设备码。控制总线:传送各种控制信息。总线的概念二、小型机与微型机的典型结构

第三节 计算机系统的硬件结构1、以CPU为中心的双总线结构cpu主存接口I/O接口接口I/OI/O结构特点——两组总线存储总线、输入输出总线优点:同一时间只能进行一种传送,控制线路简单,时间关系易于处理,可以采用同步控制方式。缺点:I/O设备与存储器交换需要cpu控制,cpu效率降低。1、以CPU为中心的双总线结构cpu主存公共接口接口接口I/OI/O2、单总线系统结构单总线系统结构图结构特点——一组总线实现cpu,I/O,MEM间通信中央处理机可以看作单总线上的一个子系统。各部件可通过单总线进行双向信息传送。优点:允许I/O与MEM直接交换信息,MEM可以和I/O设备统一编址缺点:不允许两个设备同时使用总线。所有设备连在一个总线上,数据量大时容易达到饱和,造成系统性能下降。2、单总线系统结构 所有部件和设备都可通过总线交换信息,但在CPU与主存之间又专门设置了一组高速的存储总线。3、面向存储器的双总线系统结构cpu主存公共接口接口接口I/OI/O优点:通过专用总线与存储器连接,提高了cpu速度,减轻了系统总线的负担。主存与输入输出设备交换,不需要通过cpu计算机系统由cpu为中心转为存储器为中心3、面向存储器的双总线系统结构CPUCache控制器内存控制器处理器总线与主PCI总线桥接器高速缓存Cache内存DRAMPCI与PCI桥接器PCI与ISA桥接器PCI与EISA桥接器LANI/O控制器MODEM控制器I/O支持软盘键盘串行口I/O支持并行口声频处理器总线主PCI总线次PCI总线ISA总线EISA总线存储器总线4、典型微机总线举例:基于PCI总线的系统结构图

PCISCSI卡PCI显卡标准总线桥PCI桥主桥主板:支撑着CPU、内存条以及I/O接口之间进行数据传送,是总线技术的集成化、模块化的结果。主板与总线嵌入在主板上的总线是多层次的,包含了系统总线、局部总线以及外设总线等。主板举例二、中、大型计算机的典型结构cpu主存通道通道I/O控制器I/O控制器I/O控制器I/O控制器I/OI/OI/OI/OI/OI/OI/OI/O带通道的大中型计算机系统结构第三节 计算机系统的硬件结构整机系统分成主机、通道、I/O控制器和I/O设备等四级。通道:是一种控制设备,它能保证CPU中的数据处理与I/O设备交换信息两项任务同时执行,完成I/O操作管理。第三节 计算机系统的硬件结构第四节 计算机系统的软件一、系统软件操作系统语言处理程序管理程序服务程序二、应用软件科学计算类工程设计类信息管理类一、硬软组成的层次结构 数据模型/算法 ----系统分析级 用户程序 -------用户程序级 应用软件 -------用户工具级 语言处理程序 ----算法实现级 操作系统 -------软件接口级 机器语言 -------指令级 硬核 -------微程序级第五节 计算机系统的层次结构二、从语言功能角度划分层次结构汇编语言虚拟机实际机器(机器语言物理机)专用语言虚拟机高级语言虚拟机第五节 计算机系统的层次结构专用语言虚拟机-----专用语言解释程序高级语言虚拟机 ----高级语言编译程序汇编语言虚拟机 ----汇编程序机器语言物理机 ----指令系统第五节 计算机系统的层次结构二、从语言功能角度划分层次结构一、计算机的主要特性 (一)在程序控制下自动连续工作 (二)运算速度快 (三)精度高、通用性强二、计算机的主要指标 (一)基本字长:参与计算机运算的操作数的基本位数。第六节 计算机的性能指标分析(二)主存储器容量以字(Word)为单位的计算机常用字数乘以字长来表示存储器容量,如8192×16表示有8192个字存储单元。以字节(Byte=8bit)为单位的计算机则常以字节数表示存储器容量。如

1024B(1KB)。主存储器容量通常受可直接访问的地址码长度的限制。如地址码长度为16位,则可直接访问的存储单元数为216=65536。(三)外存容量:计算机系统中联机的外存储器容量。第六节 计算机的性能指标分析(四)运算速度:每秒钟平均执行的机器指令条数。(IPS)执行一条(机器)指令所需的时间。(五)外围设备的配置(六)指令系统的功能(七)系统软件的配置(八)诊断功能与容错能力(九)绿色电脑和制作工艺第六节 计算机的性能指标分析第七节 计算机系统组织和结构的发展一、提高系统性能1.价格2.速度3.容量二、智能化世界上第一台电子计算机ENIAC(1946)计算机的发展硬件技术对计算机更新换代的影响100000000超大规模集成电路1978~现在10000000大规模集成电路1972~19771000000中小规模集成电路1965~1971

200000晶体管1958~1964

40000电子管1946~1957速度(次/秒)硬件技术时间代三四二一第一台vonNeumann系统结构的计算机IBMSystem/360

Intel公司的典型微处理器产品80808位1974年808616位1979年2.9万8028616位1982年13.4万8038632位1985年27.5万8048632位1989年120.0万Pentium64位(准)1993年310.0万Pentiumpro64位(准)1995年550.0万PentiumⅡ64位(准)1997年550.0万以上PentiumⅢ64位(准)1999年800.0万以上PentiumⅣ64位2000年4200.0万预计2010年芯片上可集成8

亿晶体管龙芯2E芯片与配套主板后PC时代微处理器芯片对社会的影响流水线向量机RISC超标量方式:同时执行多条指令超长指令字(VLIW)多存储体交叉访问多机系统提高系统性能的若干技术:第二章数据信息表示计算机内部的信息分为:控制信息和数据信息。控制信息:指令数据信息:数值数据:有确定的值,可表示大小(进位计数制、小数点、符号表示)。非数值数据:无确定的值,分为逻辑数据、字符数据。第一节 数值数据的表示一、进位计数制及相互转换(一)进位计数制任意一个数N=Nn-1Nn-2…N0•N-1N-2…N-m,它的值 n-1-m-m (N)R=∑NiRi+∑NiRi=∑NiRi

i=0i=-1i=n-1R为进位计数制的基数,Ri是第i位的权;Ni代表第i位上的一个数字符,可以是0~(R-1)符号中的任何一个。1.将R进制的数转换为十进制数-m

∑NiRi:将各位数字与它的权相乘,其积相加,i=n-1

和数就是十进制数。例:(101.101)2=1×22+1×20+1×2-1+1×2-3=(5.625)10 7(25.7)8=2×81+5×80+7×8-1=(21-)10 8 3 (5A.C)16=5×161+10×160+12×16-1=(90-)10 4

按权相加法:(二)进位数制之间的转换2.将十进制数转换为R进制的数(1)整数部分的转换(除基取余法)将被转换的十进制数连续除以R取其余数,直到商等于0为止。每次所得余数即为R进制的数(第一次余数为低位)。(二)进位数制之间的转换2|168

……0

2|84……02|42……02|21……12|10……02|5……12|2……02|1……10(低位)|||||||↓(高位)则:(168)10=(10101000)2解:例1: 将N=(168)10转换成二进制数。例2:将N=(355)10

转换成八进制数。8|355

……38|44……48|5……50(低位) | ↓(高位)解:则(355)10=(543)8例3:将N=(357)10转换成十六进制数。16|357……516|22……616|1……10解:(低位) | ↓(高位)则(357)10=(165)16(2)小数部分的转换(乘基取整法)将被转换的十进制数连续乘以R,取其整数,直到小数部分为0或达到要求的精度为止。(第一次整数为高位)。(二)进位数制之间的转换0.385×20.77×2 1.54×2 1.08×20.16×2 0.32×2 0.64×2 1.28(高位)(低位)解:则:(0.385)10=(0.0110001)2例1 将N=(0.385)10转换成二进制小数例2 将N=(0.385)10转换成八进制小数。0.385×83.08×80.64×85.12(高位)(低位)则:(0.385)10=(0.305)8解:以小数点为中心,向左右两边延伸。八进制按三位一组划分,十六进制按四位一组划分。例如:(100101.101)2=(45.5)8=(25.A)16(0.011000101)2=(0.305)8=(0.628)163.二进制与八、十六进制数之间的转换(1)二进制数转换为八、十六进制数(二)进位数制之间的转换(2)八、十六进制数转换为二进制数将每一位八(或十六)进制数用三位(或四位)二进制数代替即可。例如:(45.5)8=(100101.101)2(25.A)16=(00100101.1010)2(二)进位数制之间的转换 定点小数 定点表示法{小数点数{ 定点整数 浮点表示法(一)定点表示法:小数点的位置固定不变。1.定点小数:小数点固定在有效数字的最左边,该数为一纯小数。2.定点整数:小数点固定在有效数字的最右边,该数为整数。二、数的小数点表示0≤|N|≤1-2-n或-(1-2-n)≤N≤1-2-n

定点整数的表数范围是:(n:不包括符号位)0≤|N|≤2n-1

或-(2n-1)≤N≤2n-1

定点整数也可视为无符号整数。n+1位无符号整数的表数范围是:0≤N≤2n+1-1定点小数的表数范围若二进制位数为n(不包括符号位),则定点小数的表数范围是:258.69=101×25.869 =102×2.5869 =10-1×2586.9 =10-2×25869

…...例:对于任意数N,N=RE·M=±R±e·ME(Exponent)被称为浮点数的阶码,M(Mantissa)被称为浮点数的尾数,R(Radix)被称为阶的基数。(二)浮点表示法浮点数只需用一对定点数(阶码和尾数)来表示1.表数范围设l和n分别表示阶码和尾数的位数(均不包括符号位),基数为2,0≤|N|≤2(2l-1)(1-2-n)或-2(2l-1)(1-2-n)≤N≤2(2l-1)(1-2-n)

2.规格化浮点数正数,规格化表示的尾数形式为0.1xx…x(二)浮点表示法补码表示的负数,规格化表示的尾数形式为1.0xx…x根据规格化尾数形式,当运算结果尾数出现00.0xx…x或11.1xx…x时,需将尾数左移以实现规格化;尾数每左移一位(小数点位置不动)阶码减1,直至尾数的符号和最高位具有不同的代码达到规格化为止。(二)浮点表示法1.真值与机器数真值:用正负号加绝对值表示的数值。机器数:用约定数的某一位表示符号,连同数符一起数码化的数。例:+1010—01010-1010—11010把符号位和数值位一起编码来表示相应数的各种编码方法——原码、补码、反码和移码。(一)三种编码方法的比较三、数的符号表示2.原码表示法①原码表示形式:最高位表示符号;符号位为0,该数为正;符号位为1,该数为负。例:设机器字长共8位(含一位符号位)。真值x:1011,-1011,0.1011,-0.1011原码[x]原:

0,0001011;1,0001011;0.1011000;1.1011000②原码表数范围(1)n位整数N的表数范围(n为不包括符号位在内的整数):-(2n-1)≤N≤2n-1(2)n位小数N的表数范围(n为小数的位数):

-(1-2-n)≤N≤1-2-n

2.原码表示法①补码的概念:2位十进制运算器56-24=32;56+76=132100:是两位十进制运算器的溢出量,在数学上称之为模,用M或mod表示。计算器中数受字长的限制,运算均是有模运算。所以56-24=56+76(mod100)即-24(相对模100)的补码是76。3.补码表示法补码定义:[x]补=M+X(modM)②补码的表示形式:定点整数:[x]补=XnXn-1Xn-2X1X0

定点小数:[x]补=X0.X1X2Xn-1Xn(1)从真值转换成补码表示:正数:补码表示同原码。例:真值:+1011原码:01011补码:01011负数:符号位为1,数值部分为真值的各位求反,末位加1。例:真值:-1010;-0.1010补码:10110;1.0110(2)从补码求原码及真值正数:原码与补码相同,真值为略去正号后的数值。例:[X]补=0010[X]原=0010真值X=010=10负数:原码:符号位仍为1,数值部分为:把尾数各位求反,末位加1。真值:将负数原码符号变为“-”,即得到真值。例:[X]补=10110;[X]原=11010;真值X=-1010③补码的表数范围:(1)n位整数N的表数范围:(n为不包括符号位在内的整数)-2n≤N≤2n-1(2)n位小数N的表数范围:(n为小数的位数)-1≤N≤1-2-n4.反码的表示法正数:与原码相同。例:[X]原=01010;[X]反=01010负数:符号位同原码,尾数部分为原码的反码。例:[X]原=11010;[X]反=10101反码表数范围同原码。5.补码表示的浮点数(1)浮点数的表数范围:阶码l位,尾数n位(均不含符号位、补码表示)(-1)2(2l-1)≤N≤2(2l-1)(1-2-n)

最大正数最小正数最大负数最小负数最大正数:22e-1*(1-2-m)=2127*(1-2-23)最小正数:2-2e*2-m=2-128*2-23

最大负数:-2-2e*2-m=-2-128*2-23

最小负数:(-1)*22e-1=-2127

0整个浮点数的表数范围:-2127≤N≤2127*(1-2-23)-22e-1≤N≤22e-1*(1-2-m)例:阶码E=8位,M=24位(均含一位符号位、阶的基为2)。(2)浮点数的规格化表示(尾数的最高有效位与符号

位不相同)例:某浮点数长12位,阶码4位,尾数8位(均包括一位符号位,用补码表示),写出真值为(-101.011)2的规格化浮点代码(规格化机器数)。(-101.011)2=-0.101011*2+3尾数补码表示1.0101010阶码补码表示0,011补码表示采用格式:100110101010MsEm规格化浮点数代码:即:1,0011,0101010例:(同上题表示法)写出浮点代码为0,0100,0101010的规格化浮点数。解:小数点右移一位,阶码减1(末尾补0)0,0011,1010100

上溢|负浮点数|下溢区|正浮点数|上溢区||0||区——•—————•——•—————°——

-1*22e-1-1/2*2-

2e1/2*2-2e1*22e-1若:阶码E=4(e=3)位,尾数M=8(m=7)位规格化浮点数的表数范围正数:(1/2*2-23≤N

<1*223-1)21,000*0.10…0≤N

≤20,111*0.11…1负数:(-1*223-1≤N≤-1/2*2-

23)

1.0…0*20,111≤N

≤21,000*1.10…0(二)移码 例如E=7(包括一位符号位)

e未偏置

-64

0 63

e偏置064 1271.移码定义如果阶码有n+1位(包括一位符号位),其阶码的表数范围为-2n~+(2n-1),则阶码x的移码定义为:[x]移=2n+x,-2n≤x≤2n-12.移码的性质(1)移码为全0时,表示真值最小;移码为全1时,表示真值最大。(2)当x<0时,[x]移的符号位(最高位)为0,当x≥0时,[x]移的符号位为1,移码符号与原、补码符号相反。(3)[x]移与[x]补除符号位相反外,其他各位相同。因此由[x]补得到[x]移的方法是变[x]补的符号为其反码。(4)在移码表示中,0有唯一的编码100…0。(5)[x]移等于全0时,表明阶码最小。

一个浮点数N=M·RE,当尾数M=0时,不论其阶码为何值都有N=0。当E<-2n时,(M=0orM≠0),我们称发生下溢,即数N小于机器所能表示的最小数,一般以N=0处理。

为了保证唯一性,规定一个标准的浮点数零的表示形式,称为“机器0”,它具有0的尾数和最小阶码。阶码采用移码表示后,浮点数的“机器0”就是尾数和阶码全为0。(三)实用浮点格式举例

IEEE754标准浮点格式

IEEE754标准在标识浮点数时,每个浮点数均由三个部分组成:符号位S,指数部分E和尾数部分M。

浮点数可采用以下四种基本格式:(1)单精度格式(32位):E=8位,M=23位。(2)扩展单精度格式:E≥11位,M≥31位。(3)双精度格式(64位):E=11位,M=52位。(4)扩展双精度格式:E≥15位,M≥63位。

32位浮点单精度数据形式32位浮点单精度数据形式特点IEEE754标准使0有了精确表示,同时也明确地表示了无穷大,所以,当a/0(a≠0)时得到结果值为±∞;当0/0时得到结果值较小的数,为了避免下溢而损失精度,允许采用比最小规格化数还要小的数来表示,这些数称为非规格化数。应注意的是,非规格化数和正、负零的隐含位值不是1而是0。

IEEE754标准约定32位单精度形式在小数点左部有一位隐含位,从而使其有效位实际有24位,这样便使尾数的有效值变为1.M。阶码部分采用移码表示,移码值为127,从而使阶码值的范围由原来的-126到+127,经移码后变为1到254。解:1,10011001,00101101000000000000000阶码真值=阶码-(127)10=(10011001)2-(127)10

=(153)10-(127)10=(26)10尾数真值=1+0.00101101=(1.00101101)2

=(1.17578125)10浮点数真值=-226*(1.17578125)10例1:若采用IEEE754浮点单精度格式,试求出32位浮点代码(CC968000)16

的真值。例2:将(-0.11)2用IEEE754浮点单精度格式表示出来。解:(-0.11)2=-0.11*20=-1.1*2-1=-(1+0.1)*2-1阶码=阶码真值+127=-1+127=126=(01111110)2浮点代码为:1,01111110,100...0第二节 非数值数据的表示字符数据:ASCII码一个字符:占一个字节单元。多个字符:通常占用主存多个连续字节单元。ASCII码主要用于主机与I/O设备之间交换信息。一、字符表示第二节 非数值数据的表示二、汉字表示汉字外码汉字内码汉字字形码汉字输入设备输入程序调用字库输出设备汉字三、校验码(奇偶校验码)数据偶校验编码C奇校验编码C10101010101010100

101010101

01010100010101001

010101000

01111111011111111

011111110

第三章数值运算及运算器第一节

算术逻辑运算基础1.原码加减运算2.补码加减运算

两个基本关系式:

[x+y]补

=[x]补

+[y]补

(modM)[x-y]补=[x]补+[-y]补

(modM)

由[y]补求[-y]补的方法:将[y]补连同符号位一起求反加1。一、定点加减运算例1:y=-0.0110[y]补

=1.1010 [-y]补

=0.0110注意:求一个数的补码:正数时,补码和原码相同;负数时,对原码除符号位外求反加1。例2:y=0.0111[y]补=0.0111 [-y]补

=1.1001补码加减运算补码加、减运算规则参加运算的操作数用补码表示。符号位参加运算。操作码为加运算时,两数直接相加;当操作码为减运算时,将减数连同符号位一起求反加1,再与被减数相加。运算结果以补码表示。例1:

已知:x=0.1001,y=-0.0110;

求x+y=?解:[x]补=0.1001[y]补=1.1010[x]补0.1001+[y]补

1.1010—————————[x+y]补

10.0011x+y=0.0011补码加、减运算举例例2:已知:x=-0.1001,y=-0.0101;

求x+y=?解:[x]补=1.0111[y]补=1.1011[x]补1.0111+[y]补

1.1011—————————[x+y]补

11.0010x+y=-0.1110补码加、减运算举例例3:已知:x=0.1001,y=0.0110;

求x-y=?解:[x]补=0.1001[y]补=0.0110[-y]补

=1.1010[x]补0.1001+[-y]补

1.1010—————————[x-y]补

10.0011x-y=0.0011补码加、减运算举例例4:已知:x=-0.1001,y=-0.0110;

求x-y=?解:[x]补=1.0111[y]补=1.1010[-y]补

=0.0110[x]补1.0111+[-y]补

0.0110—————————[x-y]补

1.1101x-y=-0.0011补码加、减运算举例3.反码加减运算反码加减运算的规则:参加运算的操作数用反码表示。符号位参加运算。当操作码为加运算时,两数直接相加;当操作码为减运算时,将减数连同符号位一起求反与被减数相加。如果符号位产生进位,则在末位加1,即循环进位。运算结果为反码表示。二、溢出检测1.采用一个符号位判断规则:当两个同号数相加,若所得结果符号与两数符号不同,则表明溢出。

设An、Bn分别表示两个操作数的符号;Sn表示结果的符号,则有: 溢出=AnBnSn+AnBnSn

63+66=1290,01111110,10000101,0000001+(-63)+(-66)=-1291,10000011,011111010,1111111+2.采用最高有效位的进位判断

方法:两个正数相加,最高有效位有进位,符号位无进位,表明运算结果发生溢出;两负数相加,最高有效位无进位,符号位有进位,表明结果发生溢出。

设Cn表示符号位本身的进位,Cn-1表示最高有效位向符号位的进位;得出:溢出=CnCn-1+CnCn-1=Cn

Cn-163+66=1290,01111110,10000101,0000001+(-63)+(-66)=-1291,10000011,011111010,1111111+3.采用变形补码(双符号位)判溢出正数:两个符号位均为0;00.x1x2…xn负数:两个符号位均为1;11.x1x2…xn溢出判断:两数相加,结果符号位为00、11,表示没溢出;结果符号位为01表示正溢出,为10表示负溢出。⊕

OVRSn+1Sn如果用Sn+1、Sn分别表示最高符号位和第二符号位,则采用变形补码溢出检测电路:OVR=Sn+1⊕Sn63+66=12900,011111100,100001001,0000001+(-63)+(-66)=-12911,100000111,0111110110,1111111+三、移位

按操作性质可分为三种类型:逻辑移位、循环移位、算术移位。1、逻辑移位只有数码位置的变化,而无数量的变化。左移:低位补0。右移:高位补0。例:A寄存器的初值为10110101

逻辑右移一位后为01011010

逻辑左移一位后为01101010寄存器两端触发器有移位通路,形成闭合的移位环路。例:A寄存器的初值为10011001循环右移一位后为11001100循环左移一位后为001100112、循环移位数的符号不变,而数值发生变化。左移一位将使数值扩大一倍(乘以2)右移一位则使数值缩小一倍(乘以1/2)算术移位规则:(1)正数:原码、补码、反码左右移位时,空位均补入0(符号不变)。3、算术移位例:A寄存器初值:0.0110左移一位:0.1100 右移一位:0.0011(2)负数:原码:符号位不变(为1),空位补0。例:A寄存器的初值为1.0110

算术左移一位后为1.1100

算术右移一位后为1.0011补码:左移后的空位补0,右移后的空位补1。3、算术移位例:初值:1.1011

左移一位:1.0110

右移一位:1.1101反码:移位后的空位补1。例:初值:1.1011

左移一位:1.0111

右移一位:1.1101四、十进制运算1.进制转换2.直接进行十进制运算3.BCD码的加法运算五、 逻辑运算逻辑运算例:例(1)逻辑或:X=10100001,Y=10011011,XⅤY=?10100001XⅤ10011011Y

———————

10111011例(2)按位置“1”:设:A=10010010,将A最低位置“1”;设:B=0000000110010010AⅤ00000001B

———————

10010011A例(3):按位清设:A=10010010,将A最高位清“0”

设:B=0111111110010010A∧01111111B

———————

00010010A例(4):按位测试设:A=10010010,测A最高位是否为“1”;设:B=1000000010010010∧10000000

———————10000000结果不全为“0”,表明被测码的被测位为“1”。结果为全“0”,表明被测码的被测位为“0”。例(5)比较设:A=10010010,B=10010011,比较A,B内容相同否?10010010⊕10010011———————⊕00000001结果全“0”,则A,B内容相等,否则内容不等。第二节 基本算术运算的实现

一、加法单元两个输出量:全加和

i及向高位的进位Ci+1。全加器有三个输入量:第i位的两个操作数Ai、Bi和低位送来的进位Ci;全加器框图:

Ci+1CiBiAi

i全加器的功能表:

全加和

i及进位Ci+1

的逻辑表达式:输入输出AiBiCi

iCi+10000010100111001011101110010100110010111Ci+1=AiBiCi+AiBiCi+AiBiCi+AiBiCi=AiBi+(Ai⊕Bi)Ci∑i=AiBiCi+AiBiCi+AiBiCi+AiBiCi=Ai⊕Bi⊕

Ci用半加器构成的全加器++

+CiAiBi

iCi+1延迟时间1T延迟时间1.5T延迟时间1.5T加法器有两种形式:串行加法器和并行加法器。二、串行加法器和并行加法器n位字长的加法器仅有一位全加器,使用移位寄存器从低位到高位串行地提供操作数,分n步进行相加。(一)串行加法器(二)并行加法器

全加器位数和操作数位数相同,同时对所有位进行求和。二、串行加法器和并行加法器AB

QCDCP

iCi+1串行加法器逻辑图并行加法器中传递进位信号的逻辑线路称为进位链三、并行加法器的进位结构进位线路结构分为:串行进位、并行进位,将整个加法器分组(分级),对组内、组间(级间)分别采用串行或并行进位。(一)对进位公式的分析设相加的两个n位操作数为:A=An-1An-2…Ai..A0B=Bn-1Bn-2…Bi..B0Ci+1=AiBi+(Ai⊕Bi)Ci——

进位逻辑表达式设:Gi=AiBi

——

进位产生函数(Carry GenerateFunction)

Pi=Ai⊕Bi——

进位传递函数(Carry PropagateFunction)当Pi=1时,如果低位有进位,本位将产生进位。则:Ci+1=Gi+PiCi(二)串行进位(行波进位)

n-1CnCn-1Bn-1An-1C2C0B0A0A1B1C1

0

i…N位串行进位的并行加法器(二)串行进位(行波进位)串行进位的逻辑表达式:最长进位延迟时间为4+2.5(n-1)T,与n成正比。++

+CiAiBi

iCi+1C1=G0+P0C0=A0B0+(A0⊕

B0)C0C2=G1+P1C1=A1B1+(A1⊕

B1)C1C3=G2+P2C2=A2B2+(A2⊕

B2)C2… Cn=Gn-1+Pn-1Cn-1=An-1Bn-1+(An-1⊕

Bn-1)Cn-1(三)并行进位(同时进位、先行进位)C1=G0+P0C0C2=G1+P1C1=G1+P1(G0+P0C0)C3=G2+P2C2=G2+P2(G1+P1(G0+P0C0))C4=G3+P3C3=G3+P3(G2+P2(G1+P1(G0+P0C0)))展开整理:C1=G0+P0C0C2=G1+P1G0+P1P0C0C3=G2+P2G1+P2P1G0+P2P1P0C0C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0全部进位输出信号仅由进位产生函数Gi,进位传递函数Pi以及最低位进位C0决定,与低位进位无关。四位并行进位链线路++++G3P3P2G0G1G2P1P0GiPi+AiBiAiBiC0C4C3C2C1每位进位延迟时间为4T+++++A3B3G3P3+A2B2G2P2+A1B1G1P1+A0B0G0P0++++C0C1C2C3C4

3

2

1

0四位并行进位加法器将n位加法器分成若干个小组,小组采用并行、组间采用串行的进位结构。例:将16位加法器分成4组,每组4位,组内采用并行进位结构,组间采用串行进位结构。(四)组内并行、组间串行的进位结构四位并行加法器…

15

12C16A15B15A12B12四位并行加法器…

11

8C12A11B11A8B8四位并行加法器…

7

4C8A7B7A4B4四位并行加法器…

3

0C4A3B3A0B0C0最高进位的形成时间为(4+3×2)T=10T如果采用串行进位,最高进位的形成时间为(4+15×2.5)T

=41.5T(五)组内并行、组间并行的进位结构四位并行加法器…

15

12C16A15B15A12B12四位并行加法器…

11

8C12A11B11A8B8四位并行加法器…

7

4C8A7B7A4B4四位并行加法器…

3

0C4A3B3A0B0C0G3P3**G2P2**G1P1**G0P0**组间并行进位链(I级)组内并行、组间并行的16位加法器将加法器分成几个小组,每一小组包括几位,采用并行进位结构,小组间也采用并行进位。再引入两个辅助函数Gi*和Pi*;分别称为组进位产生函数和传递函数。Gi*为本小组产生的进位(与低位小组来的进位无关)。(五)组内并行、组间并行的进位结构Pi*为小组进位的传递条件(决定于低位小组进位能否传送至高位小组)。Gi*和Pi*的逻辑表达式:

G0*=G3+P3G2+P3P2G1+P3P2P1G0P0*=P3P2P1P0 G1*=G7+P7G6+P7P6G5+P7P6P5G4 P1*=P7P6P5P4 G2*=G11+P11G10+P11P10G9+P11P10P9G8 P2*=P11P10P9P8 G3*=G15+P15G14+P15P14G13+P15P14P13G12 P3*=P15P14P13P12(五)组内并行、组间并行的进位结构C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0*++++G3P3P2G0G1G2P1P0P0C3C2C1C0*G0组内并行、组间并行进位结构小组间产生四个进位,C4、C8、C12和C16。C4=G0*+P0*C0C8=G1*+P1*C4=G1*+P1*G0*+P1*P0*C0C12=G2*+P2*C8=G2*+P2*G1*+P2*P1*G0*+P2*P1*P0*C0C16=G3*+P3*C12 =G3*+P3*G2*+P3*P2*G1*+P3*P2*P1*G0*+P3*P2*P1*P0*C0当Gi*、Pi*及C0形成后,C4、C8、C12和C16便可同时产生。++++G3P3P2G0G1G2P1P0C16C12C8C4C0********C4、C8、C12和C16已由组间进位线路产生,组内并行进位线路不需要再产生这些进位,将其作适当修改,便可产生小组的本地进位Gi*和小组的传送条件Pi*以及小组内的低3位进位。例:16位加法器采用组内并行、组间并行进位结构的框图。进位形成过程如下:从Ai、Bi、C0输入开始;经过4T形成C1、C2、C3及全部Gi*、Pi*;又经过2.5T形成C4、C8、C12、和C16;最后再经2.5T形成二、三、四、小组内的其余进位C7~5、C11~9、C15~13。最长进位形成时间:(4+2.5+2.5)T=9T++++G3P3P2G0G1G2P1P0C16C12C8C4C0********1、74181算术逻辑单元,简称ALU,具有组内并行进位链,提供了辅助函数G,P供组间进位链使用。四、运算器举例74181S3S2S1S0CnMA=BCn+4A0B0A1B1A2B2A3B3F0F1F2F3GP例:用74181和74182组成16位分二级同时进位的加法器。利用并行进位链74182可产生向高一级进位链提供__辅助函数G**、P**,用于位数更长时,组成第三级并行进位链。2、74182(先行进位发生器)提供:组间并行进位信号Cn+x,Cn+y,Cn+z

小组辅助函数:

P,G四、运算器举例16位并行进位ALU结构Cn74181G741817418174181G2P2**G1P1**G0P0**74182A15-12-B15-12-A11-8-B11-8-A7-4-B7-4-A3-0-B3-0-F15-F12--F11-F8--F7-F4--F3-F0--G3P3**--------*-*P**-Cn+ZCn+YCn+X第三节 定点乘法运算在计算机中实现乘除法运算的三种方式:软件实现;在原有ALU的基础上增加一些逻辑线路以实现乘除运算;设置专用的乘除法器。一、无符号数一位乘

例:x=0.1101 y=0.1011 0.1101×0.1011———————— 1101110100001101———————— 0.10001111计算机计算:将n位乘转化为n次“累加与移位”。每一步只求一位乘数所对应的新部分积,并与原部分积作一次累加,然后移位一次。无符号数一位乘算法流程图开始n位被乘数=>Bn位乘数=>C,0=>AC0=1?A+0=>AA+B=>ANYA,C右移一位重复n次结束NY硬件实现无符号数一位乘N位加法器B(被乘数)控制逻辑CAC0Ca右移一位加B/加0乘数000001011+B11011011

01101001101101+B

1101

10011010011110+00000

01001001001111+B110110001010001111C0=1C0=1C0=0C0=1CaAC例:1101

1011的运算过程如下:B=1101,C=10111101

1011=10001111二、带符号数一位乘法(1)被乘数x符号任意,乘数y符号为正设:[x]补

=xn.xn-1…x1.x0[y]补

=0.yn-1yn-2…y1y01.校正法(补码乘法算法的推导)根据补码定义:[x]补=2+x(mod2)[y]补=y=0.yn-1yn-2…y1y0[x]补[y]补=2·y+x·y=2(yn-1…y1y0)+x·y(mod2)∵2(yn-1…y1y0)=2(mod2)∴[x]补[y]补

=2+x·y=[x·y]补 (mod2)

即:[x·y]补=[x]补[y]补=[x]补·y=[x]补·(0.yn-1…y1y0)[x]补=xn.xn-1xn-2…x0[y]补

=1.yn-1…y1y0=2+y (mod2)y=[y]补-2=1.yn-1…y1y0-2=0.yn-1…y1y0-1x·y=x(0.yn-1…y1y0)-x[x·y]补=[x(0.yn-1…y1y0)-x]补 =[x(0.yn-1…y1y0)]补+[-x]补 =[x(0.yn-1…y1y0)]补-[x]补

=[x]补·(0.yn-1…y1y0)-[x]补(2)被乘数x符号任意,乘数y为负[x·y]补=[x]补(0.yn-1…y1y0)-[x]补·yny≥0:yn=0不需校正y<0:yn=1需要校正(-[x]补)(3)当被乘数x和乘数y符号任意,以补码表示:2.补码乘法比较法——布斯(Booth)乘法运算法则[x·y]补=[x]补[-yn+yn-12-1+yn-22-2+…+y02-n]=[x]补[-yn+(yn-1-yn-12-1)+(yn-22-1-yn-22-2)+…

+(y02-(n-1)-y02-n)]=[x]补[(yn-1-yn)+(yn-2-yn-1)2-1+…(y0-y1)2-(n-1)+(0-y0)2-n]=[x]补(yn-1-yn)+2-1([x]补(yn-2-yn-1)+2-1([x]补(yn-3-yn-2)+…+2-1([x]补(y0-y1)+2-1([x]补(y-1-y0)))…))设:(y-1=0)[x·y]补=[x]补(0.yn-1…y1y0)-[x]补·yn递推公式:[p0]补=0[p1]补=2-1([p0]补+(y-1-y0)[x]补)[p2]补=2-1([p1]补+(y0-y1)[x]补)……[pi]补=2-1([pi-1]补+(yi-2-yi-1)[x]补)……[pn]补=2-1([pn-1]补+(yn-2-yn-1)[x]补)[pn+1]补=[pn]补+(yn-1-yn)[x]补=[x·y]补每一步乘法在前次部分积的基础上,根据yi-2-yi-1(i=1,2…n)的值决定对[x]补进行什么操作,然后右移一位,得到新的部分积。重复n步。第n+1步由(yn-1-yn)的值决定对[x]补的操作但不移位。①参加运算的数用补码表示②符号位参加运算③乘数最低位后面增加一位附加位y-1(初值为0),逐次比较相邻两位并按下列规则运算:Booth算法:

yiyi-1yi-1-yi 操作0 0 0 部分积加0,右移一位

0 1 1 部分积加[x]补,右移一位

1 0 -1 部分积加[-x]补,右移一位

1 1 0 部分积加0,右移一位

按上述算法进行n+1步操作(n是不包括符号位在内的字长),第n+1步不移位。

④移位要按补码的移位规则进行例:已知X=1011,Y=-1101,用比较法求[X·Y]补解:部分积存放于A寄存器中,初值为0。

[X]补=0,1011,存放于B寄存器中。

[-X]补=1,0101

[Y]补=1,0011,存放于C寄存器中;附加位C-1(

Y-1)置0。A CC-1

说明00000100110

初始态+[-X]补10101C0C-1=10,部分积+[-X]补

1010111010110011

右移一位+000000C0C-1=11,部分积+0

1101011101011001

右移一位+[X]补01011C0C-1=01,部分积+[X]补

0100000100001100

右移一位+000000C0C-1=00,部分积+0

0010000010000110

右移一位+[-X]补10101C0C-1=10,部分积+[-X]补

1011110111000

温馨提示

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

评论

0/150

提交评论