【教学课件】第3章数据表示、运算和预运算器部件.ppt

上传人:小飞机 文档编号:5658583 上传时间:2023-08-06 格式:PPT 页数:125 大小:1.35MB
返回 下载 相关 举报
【教学课件】第3章数据表示、运算和预运算器部件.ppt_第1页
第1页 / 共125页
【教学课件】第3章数据表示、运算和预运算器部件.ppt_第2页
第2页 / 共125页
【教学课件】第3章数据表示、运算和预运算器部件.ppt_第3页
第3页 / 共125页
【教学课件】第3章数据表示、运算和预运算器部件.ppt_第4页
第4页 / 共125页
【教学课件】第3章数据表示、运算和预运算器部件.ppt_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《【教学课件】第3章数据表示、运算和预运算器部件.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章数据表示、运算和预运算器部件.ppt(125页珍藏版)》请在三一办公上搜索。

1、第3章 数据表示、运算和预运算器部件,计算机组成原理,第 3 章 数据表示、运算、运算器部件,3.1 数字化信息编码的概念和二进制编码知识3.2 数据表示常用的信息编码3.3 二进制数值数据的编码与运算算法3.4 运算器部件的组成与设计3.5 浮点运算与浮点运算器,返回,3.1 数字化信息编码的概念和二进制知识,1.信息编码二要素 2.基二码应用实例:数据表示逻辑数据表示字符数据表示 ASCII EBCDIC 字符串 汉字检错纠错码 奇偶校验码 海明校验码 循环冗余校验码3.进位记数法与数制转换 定点小数 整数 浮点数 二至十进制数(BCD编码)和码权4.定点小数的原码、反码、补码表示与小结,

2、返回,数字化信息编码的概念,数值、文字、符号、语音、图形、图像等统称数据,在计算机内部,都必须用数字化编码的形式被存储、加工和传送。数字化编码二要素:少量、简单的基本符号 一定的组合规则 用以表示大量复杂多样的信息,返回,2.基二码(二进制码),只使用两个基本点符号:符号个数最少,物理上容易实现,与二值逻辑的 真假 两个值对应简单,用二进制码表示数值数据运算规则简单。,返回,3.进位记数法与进制转换,进位记数法,N 代表一个数值,r 是这个数制的基(Radix,该数制所用的符号个数),i 表示这些符号排列的位序号,返回,十进制转二进制,整数部分除2取余 小数部分乘2取整,2,1 1,2,2,2

3、,5,2,1,0,1,1,0,1,0.625*2,1,0.25*2,0,0.5*2,1,0.0,除尽为止 求得位数满足要求为止,低,高,高,低,从二进制数求其十进制的值,逐位码权累加求和,返回,二到八或十六进制转换,二到八 从小数点向左右三位一分组(10 011 100.01)2=(234.2)8 010 二到十六 从小数点向左右四位一分组(1001 1100.01)2=(9C.4)16 0100 说明:整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,否则出错。,返回,检错纠错码,为了提高计算机的可靠性,除了采取选用更高可靠性的器件,更好的生产工艺等措施之外,还可以从数据编码上想一些

4、办法,即采用一点冗余的线路,在原有数据位之外再增加一到几位校验位,使新得到的码字带上某种特性,之后则通过检查该码字是否仍保持有这一特性,来发现是否出现了错误,甚至于定位错误后,自动改正这一错误,这就是我们这里说的检错纠错编码技术。,返回,非线性码,线性码,卷积码,分组码,非循环码,循环码,随机 错误,突发 错误,纠错码,校验位与信息位 的形成关系,信息位与校验位 的约束条件,码字本身的 结构特点,信息位与校验位排列位置关系,系统码,非系统码,纠错码分类,返回,几种常用的检错纠错码,我们只介绍三种常用的检错纠错码:奇偶检错码,用于并行数据传送中海明检错与纠错码,用于并行数据传送中循环冗余码,用于

5、串行数据传送中,编码过程,译码过程,传送,原始数据,码 字,结果数据,形成校验位的值,加进特征,检查接送的码字,发现/改正错误,返回,奇偶校验码,用于并行码检错原理:在 k 位数据码之外增加 1 位校验位,使 K+1 位码字中取值为 1 的位数总保持 为 偶数(偶校验)或 奇数(奇校验)例如:0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 原有数据位 两个新的码字,偶校验,奇校验,校验位,返回,奇偶校验码的实现电路,+,奇较验 偶校验 出错指示,+,+,+,+,+,+,+,同左侧电路,编码电路,译码电路,P(校验位),八位数据位,

6、D7 D6 D5 D4 D3 D2 D1 D0,p,异或门,返回,海明校验码,用于多位并行数据检错纠错处理实现:为 k 个数据位设立 r 个校验位,使 k+r 位组成的码字同时具有这样两个特性:1.能发现并改正 k+r 位中任何一位出错,2.能 发 现 k+r 位中任何二位同时出错,但已无法改正。,返回,海明码的编码方法,合理地用 k 位数据位形成 r 个校验位的值,即保证用 k 个数据位中不同的数据位组合来形成每个校验位的值,使任何一个数据位出错时,将影响 r 个校验位中不同的校验位组合起变化。换言之,通过检查是哪种校验位组合起了变化,就能确定是哪个数据位错,对该位求反则实现纠错。有时两位错

7、与某种情况的一位错对校验位组合的影响相同,必须加以区分与解决。,返回,P1=D2 D1P2=D3 D1P3=D3 D2,海明码的实现方案 例如:k=3,r=4,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1,P4=P3 P2 P1 D3 D2 D1,S1=P1 D2 D1S2=P2 D3 D1S3=P3 D3 D2S4=P4 P3 P2 P1 D3 D2 D1,:异或,编码方案,译码方案,返回,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1

8、 0 0 0 0 1,一、准备工作:按次序排列数据位、校验位,分别在不同横行中的P1、P2、P3、P4各列写 1,在P1、P2、P3各列低 3 横行中的其他位置填写 0,在最顶横行其他各列填写 1;,海明码的实现方案 例如:k=3,r=4如何通过一张表分配不同的数据位组合来形成每个校验位的值,D3 D2 D1 P4 P3 P2 P1,编码方案,D3 D2 D1 P4 P3 P2 P1 1 0 1 0 0 0 0 1 0 0 0 0 1,1 1 1 1,返回,二、为各校验位分配数据位组合:看表的低 3 横行右侧 4 列各列的编码值分别为:1(001),2(010),4(100),0(000)为低

9、 3 横行左侧 3 列各列填写合理的编码值,其 规则为,使用没出现在右侧 4 列的最小正整数值,即 3(011)、5(101)、6(110)。,海明码的实现方案 例如:k=3,r=4如何通过一张表分配不同的数据位组合来形成每个校验位的值,编码方案,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1,0 4 2 1,6 5 3,返回,三、写出各校验位的编码逻辑表达式:用 P1、P2、P3 取值为 1 的横行中那些取值为 1 的 数据位进行异或运算求得每个校验位的值;结果是:P1=D2 D1;P2=D3 D1;P3=D3 D2 用其

10、他各校验位及各数据位进行异或运算求校验位 P4 的值,用于区分无错、奇数位错、偶数位错 3种情况 总校验位 P4=P3 P2 P1 D3 D2 D1,海明码的实现方案 例如:k=3,r=4如何通过一张表分配不同的数据位组合来形成每个校验位的值,编码方案,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1,返回,P1=D2 D1P2=D3 D1P3=D3 D2,海明码的实现方案例如:k=3,r=4 设计结果为:,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1

11、 0 0 1 1 0 0 0 1,P4=P3 P2 P1 D3 D2 D1,S1=P1 D2 D1S2=P2 D3 D1S3=P3 D3 D2S4=P4 P3 P2 P1 D3 D2 D1,:异或,编码方案,译码方案,返回,海明码的应用实例,D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1,S1=P1 D2 D1S2=P2 D3 D1S3=P3 D3 D2S4=P4 P3 P2 P1 D3 D2 D1,若无错,则S4S3S2S1=0000 4 位 S 全为 0,如已有数据为110,则有:P1

12、=1,P2=1P3=0,P4=0,若P2 D1错,则S4S3S2S1=0001其中 S4 必为 0,S3S2S1不为000,若仅 D1 错,则S4S3S2S1=10114位S中 3位为 1 其中 S4 必为 1,返回,检错纠错码小结,1.K位码有 2K 个编码状态,全用于表示合法码,则任何一位出错,均会变成另一个合法码,不具有检错能力。2.从一个合法码变成另一个合法码,只少要改变几位码的值,称该位数为最小码距(码距)。3.K+1 位码,只使用其 2K 个状态,可使码距 为 2,如果一个合法码中的一位错了,就成为非法码,通过检查码字的合法性,就可以得到检错能力,这就是奇偶校验码。,返回,4.对

13、k 位数据位,当给出 r 位校验位时,要发现并改正一位错,须 满 足 如 下 关 系:2r=k+r+1,要发现并改正一位错,也能发现两位错,则应:2r-1=k+r,此时码距为 4。5.若最小码距为 d(d=2),能发现 d-1 位错,或 改正(d-2)/2(取整)位错,要发现 l 位错,并改正 t 位错,应满足如下条件:d=l+t+1(l=t),检错纠错能力,返回,3.2 数据表示常用的信息编码,1.逻辑型数据2.字符型数据ASCII 码 EBCDIC 码字符串 汉字3.数值型数据 定点小数 整数 浮点数 二至十进制数(BCD码),返回,3.2.1 逻辑型数据,逻辑型数据只有两个值:真 和 假

14、,正好可以用二进制码的两个符号分别表示,例如 1 表示 真 则 0 表示 假不必使用另外的编码规则。对逻辑型数据可以执行逻辑的 与 或 非等基本逻辑运算。其规则如下:,返回,逻辑型数据基本运算规则,返回,3.2.2 字符型数据的表示,字符作为人机联系的媒介,是最重要的数据类型之一,当前的西文字符集由 128 个符号组成,通常用 8 位二进制编码,即用一个字节来表示每一个符号,当前通用的两个标准字符集是:ASCII 码:即 American Standard Code for Information InterchangeEBCDIC码:即 Extended Binary Coded Decim

15、al Interchage Code ASCII码字符集具体编码如课本中表所示:,返回,字符串的表示与存储,字符串是指连续的一串字符,它们占据主存中连续的多个字节,每个字节存放一个字符,对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。表示字符串数据要给出串存放的主存起始地址和串的长度。,返回,汉字的表示,通常用两个字节表示一个汉字,为了与西文字符编码相区别(西文的ASCII码的最高一位编码值为0),表示一个汉字时,把两个字节的最高一位的编码值设定为1,则该编码集的最多编码数量为128*128。这种编码方案与西文传送中的把ASCII码的最高一位用作奇偶校

16、验位有矛盾。,返回,二十进制编码(BCD编码),用四位二进制表示一位十进制,16个编码状态选用其中的10个编码有多种方案,例如:8421码,余 3 码,循环码又可区分为:有权码:每位上的 1 代表确定的值 无权码:无法确定每位上的 1 代表的值,返回,0 0000 0011 0000 00001 0001 0100 0001 01112 0010 0101 0011 01103 0011 0110 0010 01014 0100 0111 0110 01005 0101 1000 1110 10116 0110 1001 1010 10107 0111 1010 1000 10018 1000

17、 1011 1100 10009 1001 1100 0100 1111,有权码 无权码,8421,余3码,循环码,84-2-1,返回,4.数值数据在计算机内的格式,定点小数:N=N N N.N,s,-1,-n,-2,整 数:N=N N N.N N,0,1,s,n,n-1,浮点数:N=M E E.E E M M.M,s,s,m-1,1,0,-1,-2,-n,符号位 阶码位 尾数数码位 总位数,短浮点数:1 8 23 32,长浮点数:1 11 52 64,临时浮点数:1 15 64 80,IEEE 标准:阶码用移码,尾数用原码,基为 2,返回,数值数据在计算机内的格式,定点小数:N=N N N.

18、N,s,-1,-n,-2,整 数:N=N N N.N N,0,1,s,n,n-1,浮点数:N=M E E.E E M M.M,s,s,m-1,1,0,-1,-2,-n,符号位 阶码位 尾数数码位 总位数,短浮点数:1 8 23 32,长浮点数:1 11 52 64,临时浮点数:1 15 64 80,IEEE 标准:阶码用移码,尾数用原码,基为 2,返回,5.定点小数表示:Ns N1 N2 Nn,X=X=X=,原,X,1-X,-1 X 0,反,X,(2-2)+X,-n,0 X 1,-1 X 0,补,X,2+X,Mod(2-2),0 X 1,-1 X 0,Mod 2,0 X 1,-n,(纯小数)原

19、码,反码,补码的定义,返回,定点小数表示:Ns N1 N2 Nn,结论:原码为符号位加数的绝对值,0正1负 原码零有两个编码,+0和-0编码不同 原码难以用于加减运算,但乘除方便,X,1-X,-1 X 0,0 X 1,定义:X原=,原码的定义,实例:X1=0.10110-0.10110 0.0000 X原=010110 110110 00000 10000,返回,定点小数表示:Ns N1 N2 Nn,结论:补码最高一位为符号位,0正1负 补码表示为 2*符号位加上数的真值 补码零有唯一编码,故补码还可以表示-1 补码能很好用于加减(乘除)运算,X,2+X,-1 X 0 Mod 2,0 X 1,

20、定义:X补=,模 2 补码的定义,实例:X1=0.10110-0.10110 0.0000 X补=010110 101010 00000,返回,定点小数表示:Ns N1 N2 Nn,结论:负数反码为符号位跟数每位的反,0正1负 反码零有两个编码,+0 和-0 的编码不同 反码难以用于加减运算,有循环进位问题,X,(2-2-n)-X,-1 X 0 Mod(2-2-n),0 X 1,定义:X反=,反码的定义,实例:X1=0.10110-0.10110 0.0000 X 反=010110 101001 00000 11111,返回,整数的编码表示,整数的 原码 反码 补码 表示与定点小数的三种表示基

21、本相同,差别仅表现在小数点的位置,可以认为整数的小数点在最低数值位的右侧。因此整数的模与用于表示整数的位数有关,讲课中不大用整数讲 原 反 补 码定义例如:五位整数的编码:X=+01110 X原=0 01110 X补=0 01110 X反=0 01110 X=-01110 X原=1 01110 X补=1 10010 X反=1 10001,返回,原 反 补码表示小结,正数的 原码、反码、补码表示均相同,符号位为 0,数值位同数的真值。零的原码和反码均有2个编码,补码只一个码负数的 原码、反码、补码表示均不同,符号位为 1,数值位:原码为数的绝对值;反码为每一位均取反码;补码为反码再在最低位+1;

22、由X补求-X补:每一位取反后再在最低位+1;由X补求X的真值:X=-1+Xi*2-i,i=1,n,返回,二、数据的算术运算,(1)补码 加 减 法 运算 原码一位乘法运算 原码一位除法运算 补码一位乘法运算 补码一位乘法运算(2)原码二位乘法运算 补码二位乘法运算 其它快速乘除法运算方法简介,返回,补码加减法的实现,X Y补=X补 Y补X+Y补=X补+Y补,X-Y补=X补+-Y补求-Y补,可 通过对 Y补逐位取反,再在最低位加 1完成溢出判断,同一件事实,三种不同的叙述方式:(1)正+正 得负 或 负+负 得正(2)数字位有向符号位的进位,但符号位不产生向更高位的进位;数字位无向符号位的进位,

23、但符号位已产生向更高位的进位(3)双符号位的值为 01 或 10,返回,补码加减法运算实例,X=0.1011 Y=-0.0101 模 4 补码(双符号位)X补=00 1011,Y补=11 1011-Y补=00 0101,00 1011+11 1011 1 00 0110,00 1011+00 0101 01 0110,X+Y,去掉最高位进位,X-Y,结果溢出,返回,F X,实现补码加减运算的逻辑电路,Fs F ALU,目的 寄存器,源 寄存器,选通门,二选通门,选通门,F 1,X,Y,F Y,X F,0,1,0 1,F/Y,FsOVRZC,累加器,X X+YX X-Y,加,减,返回,F X,实

24、现补码加减运算的逻辑电路,Fs ALU,目的 寄存器,源 寄存器,选通门,选通门,选通门,F 1,X,Y,F Y,X F,0,1,0 1,F/Y,FsOVRZC,必要完善:单累加器变多累积器:两个选通门均变为多路送0还是送1到ALU处理接收门送每个累加器。支持寄存器移位功能:接收门变为三选一,即分别接收本位/低位/高位送来的信息送累加器与外部部件的入出联系,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,选 通 门,选 通 门,选 通 门,F 1,FsOVRZC,必要完善:单累加器变多累积器:,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,选 通 门,选 通 门,选 通 门,

25、F 1,FsOVRZC,必要完善:单累加器变多累积器:两个选通门均变为多路送0还是送1到ALU处理接收门送每个累加器。,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,选 通 门,选 通 门,选 通 门,F 1,FsOVRZC,必要完善:单累加器变多累积器:两个选通门均变为多路送0还是送1到ALU处理接收门送每个累加器。支持寄存器移位功能:接收门变为三选一,即分别接收本位/低位/高 位送来的信息送累加器。,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,选 通 门,选 通 门,选 通 门,F 1,FsOVRZC,必要完善:单累加器变多累积器:两个选通门均变为多路送0还是送1到A

26、LU处理接收门送每个累加器。支持寄存器移位功能:接收门变为三选一,即分别接收本位/低位/高位送来的信息送累加器 与外部部件的入出联系。,输出,输入,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,选 通 门,选 通 门,选 通 门,F 1,FsOVRZC,必要完善:单累加器变多累积器:两个选通门均变为多路送0还是送1到ALU处理接收门送每个累加器。支持寄存器移位功能:接收门变为三选一,即分别接收本位/低位/高位送来的信息送累加器 与外部部件的入出联系。,输出,输入,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,乘商寄存器,选 通 门,选 通 门,选 通 门,F 1,Y,FsO

27、VRZC,可选择的完善:支持硬件乘除运算指令需要增加一个Q寄存器该寄存器应能自行移位,选 通 门,送入,输出,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,乘商寄存器,选 通 门,选 通 门,选 通 门,F 1,Y,FsOVRZC,可选择的完善:支持硬件乘除运算指令需要增加一个Q寄存器该寄存器应能自行移位它应能接收与送出数据,选 通 门,送入,输出,返回,实现补码加减运算的逻辑电路,ALU,通用寄存器组,乘商寄存器,选 通 门,选 通 门,选 通 门,F 1,Y,FsOVRZC,选择完善:支持硬件乘除运算指令需要增加一个Q寄存器该寄存器应能自行移位应能接收与送出数据。,选 通 门,送

28、入,输出,返回,补码表示中的符号位扩展,由 X补 求 X/2补 的方法 原符号位不变,且符号与数值位均右移一位,例如,X补=10010 则 X/2补=110010不同位数的整数补码相加减时,位数少的补码数的符号位向左扩展,一直扩展到与另一数的符号位对齐,例如:0 0+1111111110011100+0000000000011100 00,返回,原码一位乘运算算法介绍,例如:X=0.1101 Y=-0.1011 0.1 1 0 1 问题:*0.1 0 1 1 1.加法器只有两个数据输入端 1 1 0 1 2.加法器与乘运算术据位数相同 1 1 0 1 解决方案:0 0 0 0 每次求出部分积,

29、而不是一次总累加+1 1 0 1 变每次左移被乘数为右移部分积 0.1 0 0 0 1 1 1 1 判乘数每一位的值用固定的一位线路 手工运算过程,返回,原码一位乘运算,例如:X=0.1101 Y=-0.1011 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 1 求第一次部分积 0.1 0 0 0 1 1 1 1 手工运算过程,返回,原码一位乘运算,例如:X=0.1101 Y=-0.1011 0.1 1 0 1*0.1 0 1 1+1 1 0 1 前次部分积加被乘数 1 1

30、0 1 部分积右移 0 0 0 0 将移出的一位保存起来+1 1 0 1 求第二次部分积 0.1 0 0 0 1 1 1 1 手工运算过程,返回,原码一位乘运算,例如:X=0.1101 Y=-0.1011 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 1 求第三次部分积 0.1 0 0 0 1 1 1 1 手工运算过程,返回,原码一位乘运算,例如:X=0.1101 Y=-0.1011 0.1 1 0 1*0.1 0 1 1+1 1 0 1 前次部分积加被乘数 1 1 0 1 部分积右移 0 0

31、0 0将移出的一位保存起来+1 1 0 1 求第四次部分积 0.1 0 0 0 1 1 1 1 手工运算过程,再用一步完成数符号异或求积的符号,结果为-0.10001111,返回,原码一位乘运算,X*Y原=(X+Y)(X*Y)例如:X=0.1101 Y=-0.1011 0.1 1 0 1 00 0 0 0 0 1 0 1 1*0.1 0 1 1 00 0 1 1 0 1 1 0 1 1 1 0 1 00 1 0 0 1 1 1 1 0 1 1 0 1 00 0 1 0 0 1 1 1 1 0 0 0 0 00 1 0 0 0 1 1 1 1+1 1 0 1 X 和 Y 符号异或为负 0.1 0

32、 0 0 1 1 1 1 最终乘积原码表示为:1 1 0 0 0 1 1 1 1 手工运算过程 计算机内运算的实现方法,部分积 乘数,原码一位乘法,原码一位乘法,部 分 积,被 乘 数,原码一位乘法,1 0 1 1,部 分 积,被 乘 数,0 0 0 0 0 0,1 0 1 1,1,1 0 1,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 1 0 0 1 1,0 1 0 0 1 1,1 1 0 1,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,1,1 0

33、 1,第二次求部分积,高位积,低位积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 0 1 1 0,0 0 1 1 0 1,0 0 1 1 0 1,第三次求部分积,高位积,低位积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0

34、 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1 0 1,1 1 1,1,0 0 1 0 0 0,低位积,0 1 0 0 0 1,0 1 0 0 0 1,第四次求部分积,高位积,原码一位乘法,0 0 0 0 0 0,1 0 1 1,0 0 0 0 0 0,0 0 1 1 0 1,1 0 1 1,0 0 0 1 1 0,0 0 1 0 0 0,0 0 1 0 0 1,0 0 0 1 1 0,0 0 1 0 0 1,1 0,1 1,0 0 0 1 0 0,0 0 0 1 0 0,1,1

35、0 1,1 1 1,1,0 0 1 0 0 0,低位积,高位积,符号位异或,积符号得负,结果为:1 10001111,除法运算,在计算机内实现除运算时,存在与乘法运算类似的几个问题:加法器与寄存器的配合,被除数位数更长,商要一位一位地计算出来等。这可以用左移余数得到解决,且被除数的低位部分可以与最终的商合用同一个寄存器,余数与上商同时左移。除法可以用原码或补码计算,都比较方便,也有一次求多位商的快速除法方案,还可以用快速乘法器完成快速除法运算。,返回,原码一位除运算,Y/X 原=(X Y)(|Y|/|X|)原码一位除是指用原码表示的数相除,求出原码表示的商。除操作的过程中,每次求出一位商。从理

36、解原理考虑,用恢复余数除法讲解计算机内的实现方法更直观方便,即确定上商应为还是为时,必须用被除数或中间余数减去除数,通过检查本次求得的余数为正还是为负才能知道,而不象人计算时用眼睛直接看出来的。若求出一个为负的余数来,通常应首先恢复其值为正,再求下一位商才有道理。但计算机内从来不用这种办法,而是直接用求得的负余数求下一位商。可以吗?为什么?,返回,Y/X 原=(X+Y)(Y/X)例如:X=-0.1101 Y=0.1011 被除数高位/余数 被除数低位/商 0.1101 00 1011 00000初态 0.1101 0.1011011 1100 00000第次 1101 01 0010 0001

37、0第次 10010 00 1010 00110第次 110111 1010 01100第次 1010000 0111 01101第次11010111,原码一位除运算,X 和 Y 符号异或为负最终商原码表示为:1 1101余数为:0.0111*2-4,返回,加减交替除法原理证明,1.若第 i-1次求商余数为+R i-1 本次商1 且 余数左移 1 位得 2R i-1 2.则第 i 次求商 R i=2R i-1-Y,若Ri 0,则.,若R i 0,则商0,恢复余数为正且左移得 2(R i+Y)3.则第 i+1次求商 R i+1=2(R i+Y)-Y=2R i+Y 实质是:对上次的负差值直接左移,本

38、次用+Y求商即可,返回,0 0 1 0 1 11 1 0 0 1 11 1 1 1 1 01 1 1 1 0 00 0 1 1 0 10 0 1 0 0 10 1 0 0 101 1 0 0 1 10 0 0 1 0 10 0 1 0 1 01 1 0 0 1 11 1 1 1 0 11 1 1 0 1 00 0 1 1 010 0 0 1 1 1,0 0 0 0 0 开始情形-Y0 0 0 0 0 0,商10 0 0 1 0 左移1位-Y0 0 0 1 1 0,商10 0 1 1 0 左移1位-Y0 0 1 1 0 0,商1,被除数(余数),商,+),+),+),+),+),返回,补码乘除法

39、运算,原码乘、除法不难实现,但有两个问题:符号位与数值位分别处理,不方便;若数据为补码形式,可能多两次原补码变换。也可以直接用补码完成乘、除法运算,即从补码开始,直接得到补码的积或商。下面看一看补码乘除运算的实现算法。,返回,X补=Xs X1 X2.XnY补=Ys Y1 Y2.Yn先复习两个概念:由 补 求X/2补 补 X/2补=ss12X n 把 Y补 的符号位与数值位同等对待 Y补 Y=-Y0 Y i*2-i=(Y i+1-Y i)*2-i,i=1,n,n,i=0,补码一位乘法的实现算法推导过程:,返回,补码乘法运算的结论,X*Y补=补补 通过用的值乘 补,求出 补*补,不必区分符号位与数

40、值位。乘数最低一位之后要补初值为的一位附加线路,并且每次乘运算需要看附加位和最低位两位取值的不同情况决定如何计算部分积,其规则是:,00+001+X补10+-X补11+0,返回,0 0 0 0 0 00 0 0 0 0 01 1 0 0 1 11 1 0 0 1 11 1 1 0 0 11 1 1 1 0 00 0 1 1 0 10 0 1 0 0 10 0 0 1 0 01 1 0 0 1 11 1 0 1 1 1,部分积,乘数,附加位,X*Y补=1 0 1 1 1 1 1 1 0即 X*Y=-0.1 0 0 0 0 0 1 0,X=+0.1 1 0 1Y=-0.1 0 1 0,1 0 1

41、1 0 0 开始情形0 1 0 1 1 0 00+0 并右移 10-X1 0 1 0 1 1 并右移1 1 0 1 0 1 11+0 并右移 01+X1 1 1 0 1 0 并右移 10-X1 1 1 0 1 0 且 不再移位,返回,补码除法运算,补码除法与原码除法很类似差别仅在于:被除数与除数为补码表示,直接用补码除,求出反码商,再修正为近似的补码商。实现中,求第一位商要判个数符号的同异,同号,作减法运算,异号,则作加运算;上商,余数与除数同号,商,用减运算求下位商,余数与除数异号,商,用加运算求下位商;商的修正:多求一位后舍入,或对最低位恒置。,返回,被除数,0 0 0 0 0 开始情形+

42、Y,二数异号0 0 0 0 1 符号同,商10 0 0 1 0 余数、商左移-Y0 0 0 1 0 符号异,商00 0 1 0 0 余数、商左移+Y0 0 1 0 1 符号同,商10 1 0 1 0 余数、商左移-Y0 1 0 1 0 符号异,商01 0 1 0 1 左移,最低位商置1,商,结果:1 0 1 0 1(存在误差),计算-0.1011/0.1101,返回,3.4 运算器部件的组成与设计,完成算术与逻辑运算ALU:计算出结果及其特征通用寄存器组:存放参加运算的数据和运算结果(包括标志寄存器)乘商寄存器:用于完成硬件乘除法数据通路(data path),返回,教学计算机的运算器概述,教

43、学计算机的运算器的组成与设计字长16(8)位,用4(2)片4位的位片结构的Am2901组成1.要详细介绍Am2901芯片的内部组成和实现的功能2.怎样连接4(2)片Am2901成为16(8)位的运算器3.怎样解决运算器实用中的几个问题:(1)如何给出 Am2901最低位的进位输入信号(2)如何处理运算结果的标志位(3)如何处理移位指令、置1 C和清0 C 触发器的指令(4)如何支持硬件乘法、除法指令重点是前 2 项内容和第 3 项中的(1)(2)教学计算机运算器的控制和使用(包括教学实验),返回,4 位的 Am2901内部组成与功能,组成算逻运算 部件1 6 个 累加器乘商寄存器 Q5组多路选

44、择门,功能 8 种 运算功能8 种 数据组合8 种 结果处理,返回,A L U S R,Cn,F,F3F=0000OVRCn+4,Am2901芯片是一个 4 位的位片结构的运算器器件,内部组成讲解如下,第一个组成部分是算逻运算部件ALU,完成 3 种算术运算 和 5 种逻辑运算,共 8 种运算功能。,其输出为 F,两路输入为 S、R,最低位进位Cn,4 个状态输出信号,如图所示,符号位结果为零结果溢出进位输出,R+SSRRSRSRSRSRSRS,8种运算功能,000001010011100101110111,3位功能选择码,返回,B 16个 A 通用寄存器,A L U S R,B锁存器,A锁存

45、器,Cn,F,F3F=0000OVRCn+4,A口地址,B口地址,第二个组成部分是通用寄存器组由16个寄存器构成,并通过B口与A口地址选择被读的寄存器,B口地址还用于指定写入寄存器,通过B口地址、A口地址读出的数据将送到B、A锁存器,要写入寄存器的数据由一个多路选择器送来。,(写入),返回,B 16个 A 通用寄存器,A L U S R,B锁存器,A锁存器,Q寄存器,Cn,F,F3F=0000OVRCn+4,A口地址,B口地址,第三个组成部分是乘商寄存器Q它能对自己的内容完成左右移位功能,其输出可以送往ALU,并可接收ALU的输出结果。,返回,该芯片的第四个组成部分是 5 组多路选通门,包括,

46、B 16个 A 通用寄存器,三选一,二选一,A L U S R,B锁存器,A锁存器,Q寄存器,Cn,F,F3F=0000OVRCn+4,输入D,A口地址,B口地址,一组三选一门和另一组二选一门用来选择送向ALU的R、S输入端的数据来源,包括:Q寄存器、A口、B口数据、外部输入D数据共 8 种不同组合。,返回,B 16个 A 通用寄存器,三选一,二选一,A L U S R,B锁存器,A锁存器,Q寄存器,Cn,F,F3F=0000OVRCn+4,输入D,A口地址,B口地址,8种数据组合(R,S)AQ AB 0Q 0B 0A DA DQ D0,3位数据选择码,000 001 010 011 100

47、101 110 111,一组三选一门和另一组二选一门用来选择送向ALU的 R、S输入端的数据来源,包括:Q寄存器、A口、B口数据、外部输入D数据共 8 种不同组合。,返回,B 16个 A 通用寄存器,三选一,二选一,三选一,三选一,A L U S R,B锁存器,A锁存器,Q寄存器,Cn,Q3,Q0,RAM0,RAM3,F,F3F=0000OVRCn+4,输入D,A口地址,B口地址,一组三选一门完成把ALU的输出、或左移一位、或右移一位的值送往通用寄存器组,最高、最低位移位信号有双向入/出问题,一组三选一门完成Q寄存器的左移一位、或右移一位、或接收ALU输出值的功能,最高、最低位移位信号有双向入

48、/出问题。,返回,二选一,B 16个 A 通用寄存器,三选一,二选一,三选一,三选一,A L U S R,B锁存器,A锁存器,Q寄存器,Cn,/OE,Q3,Q0,RAM0,RAM3,F,输出Y,F3F=0000OVRCn+4,输入D,A口地址,B口地址,一组二选一门,选择把ALU结果或A口数据 送出芯片,给出输出Y的数据,Y输出的有无还受使能 信号控制,仅当/OE为低才有 Y输出,/OE为高 Y输出为 高阻态,返回,8 种结果处理,3位控制码 通用寄存器 Q寄存器 Y输出 I8 I7 I6 000 QF F 001 F 010 BF A 011 BF F 100 BF/2 QF/2 F 101

49、 BF/2 F 110 B2F Q2F F 111 B2F F,返回,运算器,三大件运算暂存乘除快多路选通连起来,数据组合选择 I2 I1 I0,运算功能选择 I5 I4 I3,运算结果处理 I8 I7 I6,运算,暂存,乘除快,数据组合有内外,运算功能指明白,存移输出巧安排,多路选通连起来,存移输出巧安排,存移输出巧安排,存移输出巧安排,返回,二选一,B 16个 A 通用寄存器,三选一,二选一,三选一,三选一,A L U S R,B锁存器,A锁存器,乘商寄存器Q,Cn,/OE,Q3,Q0,RAM0,RAM3,F,输出Y,F3F=0000OVRCn+4,输入D,A口地址,B口地址,Am2901

50、内部组成,组成算逻运算 部件1 6 个 累加器乘商寄存器 Q5组多路选择门功能8 种 运算功能8 种 数据组合8 种 结果处理,I5I3,I2I0,I8I6,返回,运算器的时钟脉冲信号,运算器的时钟脉冲信号 CP教学计算机的主频:1.8432MH z/3,A、B口锁存,通用寄存器接受,Q 接受,周期,和低电平的作用 注意两个跳变沿,返回,Am2901的操作使用,操作功能,控制信号B口 A口 I8 I7 I6 I5 I4 I3 I2 I1 I0 Cn,R0R0+R1,R2R2R0,QR0,右移R0R0+R1,R0R0R1,Y A口,Y F,0000,011,0001,000,001,0,0010

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号