1. 首页
  2. 文档大全

计算机组成原理 第二章 运算方法和运算器

上传者:7****0 2022-05-30 00:34:28上传 PPT文件 1.82MB
计算机组成原理 第二章 运算方法和运算器_第1页 计算机组成原理 第二章 运算方法和运算器_第2页 计算机组成原理 第二章 运算方法和运算器_第3页

《计算机组成原理 第二章 运算方法和运算器》由会员分享,可在线阅读,更多相关《计算机组成原理 第二章 运算方法和运算器(65页珍藏版)》请在文档大全上搜索。

1、第二章运算方法和运算器第二章运算方法和运算器数据与文字的表示方法数据与文字的表示方法定点加、减、乘、除法运算,定点运算器定点加、减、乘、除法运算,定点运算器浮点加、减、乘、除法运算,浮点运算器浮点加、减、乘、除法运算,浮点运算器2.1数据数据与与文字文字的的表示表示方法方法一、数据格式一、数据格式考虑的因素:考虑的因素:P16数值型数据:定点、浮点数值型数据:定点、浮点1.定点数的表示方法定点数的表示方法原理上、纯小数、纯整数原理上、纯小数、纯整数符号位:符号位:0正号正号1负号负号例如:例如:01000001表示什么?表示什么?一个一个n+1位数位数x 符号符号 量值(尾数)量值(尾数)X0

2、 x1x2xn-1xn如果如果X是纯小数,它的表示范围:是纯小数,它的表示范围:-(1-2-n) = x x= -2n 得到的移码总位数是得到的移码总位数是n+1 四种四种编码应用总结编码应用总结 计算机中定点数常用补码表示、存储、计算计算机中定点数常用补码表示、存储、计算浮点数的阶码常用移码表示浮点数的阶码常用移码表示复习提问n请写出-1010的原码、反码、补码n请写出-1010的8位原码、反码、补码n请写出-1010的移码n请写出-1010的8位移码n请写出+101.011*2+11的规格化形式n一IEEE754标准32位浮点数的16进制值是(41A4B600),请写出其真值n请说出补码表

3、示方法在计算机中使用的优势n定点纯整数补码值为10000,请说出其真值三、字符与字符串的表示方法三、字符与字符串的表示方法1.字符的表示方法字符的表示方法ASCII码码2.字符串的存放字符串的存放四、汉字的表示方法四、汉字的表示方法汉字的内码、外码、字模码汉字的内码、外码、字模码作业:作业:一、一、P63, 1.3.4.二、写出二、写出1001110、0011011两个数的偶校验编码和奇校验编两个数的偶校验编码和奇校验编码。码。(将校验码加在前面将校验码加在前面)思考:思考:一、书上的例题课堂没讲的一、书上的例题课堂没讲的请自学请自学二、请思考二、请思考P63,2.2.2定点加法、减法运算定点

4、加法、减法运算一、补码加法、减法一、补码加法、减法公式:公式: x+y补补= x补补+y补补 (mod 2n+1)x-y补补 =x补补-y补补= x补补+-y补补 (mod 2n+1) 注:注: x补和-y补是n位的 补码运算的特点:补码运算的特点: 符号位作为数的一部分参加运算符号位作为数的一部分参加运算要在模()的意义下运算要在模()的意义下运算例:例:11、12、求补码的负补码,求补码的负补码,13、14再来理解再来理解一下补码一下补码二、溢出的概念与检测方法二、溢出的概念与检测方法溢出:运算结果超出了机器可表示的范围溢出:运算结果超出了机器可表示的范围举例举例15、16正溢、负溢正溢、

5、负溢P29图图2.2计算机内部怎么判断溢出?计算机内部怎么判断溢出?1.采用双符号位的补码(变形补码),采用双符号位的补码(变形补码),modn+2 运算例运算例17、18结论结论P302.单符号位单符号位V=CfC0三、基本的二进制加法三、基本的二进制加法/减法器减法器FA Ai Bi CiSiCi+1图图2.3(b)一位全加器一位全加器T单位门延迟(与非单位门延迟(与非T,异或,异或3T)计算一下?计算一下?延迟延迟t=2nT+9T小结n补码的加减法都由加法计算(mod 2*)n溢出及其检测n基本的加减法器课堂练习与课后思考nP63, 5. 6. 13.请问:n计算机中的数据主要以()码的

6、形式存储、传输和计算n补码的加、减运算均可化成()法运算n补码的加、减运算均是在模()的意义下进行的nY补01101,-Y补?nY补11101,-Y补?n溢出是什么意思?溢出后计算结果怎么办?n简述检测溢出的两种方法n行波进位的加、减法器,“行波”是什么意思?n行波进位的加、减法器的延时与位数是什么关系?2.3定点乘法运算定点乘法运算(从原码补码从原码补码)一、原码并行乘法一、原码并行乘法定点原码乘法的运算规则:定点原码乘法的运算规则:乘积的符号位由两数乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。数相乘之积。

7、P32(2.22) 例例(列到黑板上列到黑板上,部分积是什么?部分积是什么?)(注意位数注意位数)1.手工与机器的差别:手工与机器的差别:解决解决:(:(1).串行串行N次加法移位运算次加法移位运算(2).由硬件实现并行乘法器由硬件实现并行乘法器用计算机如何计用计算机如何计算这样的阵列算这样的阵列2.不带符号的阵列乘法器不带符号的阵列乘法器二进制乘法中,二进制乘法中,m位的位的A与与n位的位的B相相乘,结果乘,结果P是是m+n位的。位的。产生部分积的与门产生部分积的与门乘法阵列乘法阵列被乘数和乘数被乘数和乘数乘法阵列乘法阵列进位和进位和1.原码相乘原码相乘2.符号单独处理符号单独处理3.带符号

8、的阵列乘法器带符号的阵列乘法器(1)二进制对)二进制对2求补器求补器E=1,求补求补E=0,原值原值E用什么控用什么控制合适?制合适?(2)带求补级的阵列乘法器(带符号,间接补码)带求补级的阵列乘法器(带符号,间接补码)适用于原码乘适用于原码乘法,也适用于法,也适用于间接的补码乘间接的补码乘法。不过在原法。不过在原码乘法中,算码乘法中,算前求补和算后前求补和算后求补都不需要。求补都不需要。二、直接补码并行乘法(二、直接补码并行乘法(补码的符号位补码的符号位与数值同时参加运算,不需算前与算后求补与数值同时参加运算,不需算前与算后求补)1.补码与真值的转换公式补码与真值的转换公式 P37(2.25

9、)(对照对照P21,2.9)直接乘法的竖式直接乘法的竖式P39先考虑如何将这两个补码化先考虑如何将这两个补码化成真值(十进制)?成真值(十进制)?(01101)2(10011)22.一般化的全加器形式一般化的全加器形式4类类3.直接补码阵直接补码阵列乘法器列乘法器对照对照P39的的阵列来看阵列来看小结:n原码乘法器n间接补码乘法器n直接补码乘法器2.4定点除法运算定点除法运算一、原码除法算法一、原码除法算法定点原码除法的运算规则:定点原码除法的运算规则:商的符号位由两数的符号位按异或运算得到,而商的数值部分则是两个正数相除之商。解决解决:(:(1)恢复余数法)恢复余数法(2)不恢复余数法(加减

10、交替法)不恢复余数法(加减交替法)(1)和和(2)都是串行计算方法都是串行计算方法例例23:X0.101001,Y0.111,求求X/Y。 n+1=4(用加减交替法)加减交替法步骤:加减交替法步骤:1加加-y补补,k=1表示做加法的次数表示做加法的次数2结果为正,则商结果为正,则商1,加,加-y补右移补右移K位值位值结果为负,则商结果为负,则商0,加,加y补右移补右移K位值位值3如果次数如果次数K为为n+1,则写出商和余数,结束则写出商和余数,结束 如果次数如果次数 n+1 ,则转,则转2注意各数的位注意各数的位数和大小数和大小注意符号单提注意符号单提出出(Y=-0.111)K+1二、并行除法

11、器二、并行除法器1.可控加法可控加法/减法(减法(CAS)单元单元 p=0时,加法时,加法P1时,减法时,减法2.不恢复余数的阵列除法器不恢复余数的阵列除法器Bi Ai PCi+1PCiBiSi进位值是余数符进位值是余数符号的非,可以做号的非,可以做商的值及下一次商的值及下一次运算的控制端运算的控制端(P43有误有误)小结n不恢复余数法除法n加法/减法单元和除法阵列n2.3节书上没讲的例题请自学定点乘法和除法(复习)n请简述原码乘、除法的规则n不带符号的阵列乘法器有哪二部分组成?n对2求补电路的作用?(E端的作用?)n求其对2补数,最高位是符号位:0110100,1110100n带求补级的阵列

12、乘法器是()符号位的()补码乘法器n直接补码阵列乘法器n加减交替法(不恢复余数法)n可控加法/减法单元功能是怎样的?(P端的作用?)n不恢复余数阵列除法器2.5定点运算器的组成定点运算器中除ALU外还必须包含?算术算术/逻辑运算单元逻辑运算单元、数据缓冲寄存器、数据缓冲寄存器、通用寄存器、多路转换器和数据总线等通用寄存器、多路转换器和数据总线等逻辑构件逻辑构件逻辑非(反):上横线逻辑非(反):上横线X逻辑加(或):逻辑加(或):VXY逻辑乘(与):逻辑乘(与):.X.Y逻辑异或(按位加):逻辑异或(按位加):一、逻辑运算一、逻辑运算(请自学)逻辑数:不带符号的二进制数逻辑数:不带符号的二进制数

13、二、多功能算术二、多功能算术/逻辑运算单元(逻辑运算单元(ALU) 1.基本思想基本思想有两个问题要解决:1)函数发生器是什么样的?2)进位问题怎么办?2.函数发生器的逻辑函数发生器的逻辑(74LS181)S0 s1YiS2S3Xi0 00 11 01 1AiAiBiAiBi00 00 11 01 11Ai+BiAi+BiAiS0S1YiS2S3Xi3.先行进位的公式先行进位的公式n基本公式基本公式Cn+1=Y0+X0Cnn以四位为例的传递结果以四位为例的传递结果nCn+4=G+PCnnG进位发生输出进位发生输出nP进位传送输出进位传送输出行波进位的行波进位的4.功功能能表表4.两级先行进位部

14、件两级先行进位部件74182用两个6位全先行进位部件级联组成的32位ALU 三、内部三、内部总线总线内部总线,外部总线?单向传送总线,双向传送总线E允许四、单、双、三总线结构的运算器四、单、双、三总线结构的运算器小结nALU组成思想n函数发生器n先行进位n整体逻辑电路(三部分:函数,进位,全加)n先行进位电路74182n内部总线复习:定点运算器的组成nALU组成思想n函数发生器有哪几个控制端?n先行进位的思路,P和Gn整体逻辑电路由几部分构成,M,Cn的作用是什么?n先行进位电路74182(二级)n内部总线n单、双、三总线结构的特点2.6浮点运算方法和运算器浮点运算方法和运算器 浮点加法、减法

15、运算浮点加法、减法运算n浮点乘除法运算浮点乘除法运算n浮点运算流水线浮点运算流水线1.运算规则一、浮点加法、减法运算设有两个浮点数和,它们分别为 2EM 2EM则:(M2EEM)2E, EE 十进制的浮点数加减法是怎样计算的?2.四歩骤n1)0操作数检查;n2)比较阶码大小并完成对阶;n3)尾数进行加或减运算;n4)结果规格化并进行舍入处理。步骤中的细节问题(1)n对阶时向大的阶看齐还是向小的阶看齐?为什么?向大的阶看齐步骤中的细节问题(2)规格化问题运算结果尾数有溢出,只要将尾数向右移一位(右规),同时将阶码加1。运算结果没有溢出,但不是规格化数。尾数是原码,(标志)结果的尾数最高位不是1。

16、这时需将尾数左移,每左移1位,阶码同时减1,直到尾数数值最高位为1为止。对于用补码表示的尾数,(标志)若运算结果尾数的最高位与符号位相同,这时应进行左规,一直到最高数值位与符号位不同为止。步骤中的细节问题(3)n舍入处理,什么情况下要舍入?n简单舍入:0舍1入,恒置1nIEEE754标准:参考对阶或右规时步骤中的细节问题(4)溢出处理n浮点数的溢出是以其阶码溢出表现出来的。n阶码上溢(+,-)n阶码下溢(0)n尾数上溢(右规)n尾数下溢(有效位移出,舍入)例28.设20100.11011011,2100(0.10101100),求。 n设补码表示,阶码用双符号位,尾数用单符号位,则浮点表示n浮

17、00 010, 0.11011011 浮00 100, 1.01010100n 判0,x,y均不为零n 求阶差并对阶E为2,的阶码小,n应使M右移两位,E加2, 浮00 100,0.00110110(11)n 尾数求和n0. 0 0 1 1 0 1 1 0 (11)1. 0 1 0 1 0 1 0 01. 1 0 0 0 1 0 1 0 (11)n规格化处理 尾数运算结果的符号位与最高数值位同值,应执行左规处理,结果为1.00010101(1),阶码为 00 011。n舍入处理:采用0舍1入法处理,则为1. 0 0 0 1 0 1 1 0n判溢出 :阶码符号位为00,不溢出,故得最终结果为n2

18、011(0.11101010)不溢出二、浮点乘法、除法运算n1.运算规则n浮点乘法运算的规则是 :乘积的尾数是相乘两数的尾数之积,乘积的阶码是相乘两数的阶码之和。 n浮点除法运算的规则是 :商的尾数是相除两数的尾数之商,商的阶码是相除两数的阶码之差。 n规格化,舍入等。2.浮点乘法、除法运算步骤n第一步,0 操作数检查;n第二步,阶码加/减操作;n第三步,尾数乘/除操作;n第四步,结果规格化及舍入处理。例30.设有浮点数25 0.0110011,23(0.1110010),阶码用4位补码表示,尾数(含符号位)用8位原码表示。求 。要求用原码完成尾数乘法运算,运算结果尾数保留高8位(含符号位),

19、并用尾数低位字长值处理舍入操作。 nx浮=1011 0.0110011 y浮=0011 1.1110010n(1)判零,没有零n(2)阶码相加 (补码) 1011+0011=1110n(3)尾数相乘(去掉符号,原码)n 0.0110011*0.1110010=0.0101101 0110110n(4)规格化,左规一位,阶码减1n尾数 0.1011010 1101100 阶码 1101(真值-3)n(5)舍入 尾数0.1011011,加符号位1n最终浮=1101 1.1011011n真值=2-3 (-0.1011011)三、浮点运算流水线1.思想三、浮点运算流水线2.相关概念n线性流水线(P58

20、)n在流水线中原则上要求各个阶段的处理时间都相同n设过程段 Si所需的时间为i,缓冲寄存器的延时为l,线性流水线的时钟周期定义为:nmaxilmaxl n故流水线处理的频率为 f1/。三、浮点运算流水线2.相关概念n从理论上说,一个具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为nTkk(n1)n如果用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为 TLnknTL和Tk的比值定义为k级线性流水线的加速比: nCkTl/Tk=nK/(k+(n-1)n当 nk 时, Ckk ,理论与实际上2.流水线浮点加法器四、浮点运算器实例-80X87奔腾CPU将浮点运算器包含

21、在芯片内例32. 假设每个过程段所需的时间为:零检查170ns,对阶 260ns,相加390ns,规格化 480ns,缓冲寄存器L的延时为 tl10ns, (1)求 4 级流水线加法器的加速比为多少?(2)如果每个过程段的时间相同,即都为75ns,(包括缓冲寄存器时间),加速比是多少?n(1)加法器的流水线时钟周期至少为n90ns10ns100nsn如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为n1234 300ns n因此,4级流水线加法器的加速比为nCk300/1003n(2) 当每个过程段的时间都是75ns时,加速比为nCk300/754注意:是理想情况小结n浮点加减法规则n浮点加减法步骤(其中的细节)n浮点乘法、除法运算规则n浮点运算流水线思想


文档来源:https://www.renrendoc.com/paper/212490728.html

文档标签:

下载地址