版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章运算方法与运算器主要内容数据表示:真值和机器数无符号数的表示和作用定点数的表示(计算机基础中已介绍过,包括原码表示、补码表示和反码表示)浮点数的表示(包括浮点数的形式、浮点数的规格化、浮点数的表示范围、IEEE754标准)运算方法定点数运算(包括移位运算、加减运算、乘法运算、除法运算、溢出判断)浮点数运算运算器算术逻辑单元ALU运算器数据表示数据表示主要考虑因素:表示的数据类型(符号、小数点、数值)数值的范围数值精度存储、处理、传送的硬件代价数据表示定点表示真值机器码(3)原码反码补码移码浮点表示规格化舍入处理IEEE754规范C语言程序中的整数无符号数:unsigned int ( s
2、hort / long);带符号整数: int ( short / long)常在一个数的后面加一个“u”或“U”表示无符号数若同时有无符号数和带符号整数,则C编译器隐含将带符号整数强制转换为无符号数C语言程序中的整数关系表达式运算类型结果说明0 = = 0U-1 0-1 -2147483647 - 12147483647U -2147483647 - 12147483647 (int) 2147483648U-1 -2(unsigned) -1 -2无符带符无符带符无符带符带符无符11 0*1 0* 1*11000B = 000B111B (-1) 000B(0)0111B (231-1)
3、1000B (-231)0111B (231-1) 1000B (-231)111B (-1) 1110B (-2)111B (232-1) 1110B (232-2)无符号数:unsigned int ( short / long);带符号整数: int ( short / long)常在一个数的后面加一个“u”或“U”表示无符号数若同时有无符号数和带符号整数,则C编译器隐含将带符号整数强制转换为无符号数假定以下关系表达式在32位用补码表示的机器上执行,结果是什么?带*的结果与常规预想的相反!数据表示非数值数据的表示逻辑数据用来表示真/假或N位位串,按位运算西文字符:用ASCII码表示汉字:
4、汉字输入码、汉字内码、汉字字模码数据的宽度位、字节、字(不一定等于字长),k/K/M/G/有不同的含义数据的存储排列大端方式:用MSB存放的地址表示数据的地址小端方式:用LSB存放的地址表示数据的地址按边界对齐可减少访存次数数据表示如何从一个字节地址中取到一个32位的字?- 字的存放问题一个字能否存放在任何字节边界?- 字的边界对齐问题,各种不同长度的数据存放时,有两种处理方式:不按边界对齐主要问题:可能会增加访存次数!按边界对齐 (假定字的宽度为32位,按字节编址)字地址:4的倍数(低两位为0)半字地址:2的倍数(低位为0)字节地址:任意例如,若 int i = 0 x01234567,存放
5、在内存100号单元,则用“取数”指令访问100号单元取出 i 时,必须清楚i的4个字节是如何存放的。msblsb103 102 101 100little endian word 100100 101 102 103big endian word 100Word: 01 23 45 67大端方式(Big Endian): MSB所在的地址是数的地址 e.g. IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA小端方式( Little Endian): LSB所在的地址是数的地址 e.g. Intel 80 x86, DEC VAX 有些机器两种方式都支持
6、,可以通过特定的控制位来设定采用哪种方式。字的存放问题Example 1: Memory layout of a number ABCDH located in 1000Example 2: Memory layout of a number 00ABCDEFH located in 1000In Little Endian:ABCD10011000In Big Endian: CDAB100110001000100110021003In Big Endian: 00ABCDEFIn Little Endian:00ABCDEF1003100210011000Example 3: Memory
7、 layout of a instruction located in 1000假定小端机器中指令:mov AX, 0 x12345(BX)其中操作码mov为40H,寄存器AX和BX分别为0001B和0010B,立即数占32位,则存放顺序为: MOVAXBX0 x00012345100510041003100210011000若在大端机器上,则存放顺序如何?401200 01 23 45401245 23 01 00000123451240452301001240字的存放问题785634120123increasingbyteaddressBig Endian123456780123Littl
8、e Endian 每个系统内部都是一致的,但在系统间通信时可能会发生问题! 因为顺序不同,需要顺序转换 任何像音频、视频和图像等文件格式或处理程序都涉及到字节顺序问题 ex. Little endian: GIF, PC Paintbrush, Microsoft RTF,etc Big endian: Adobe Photoshop, JPEG, MacPaint, etc 上述存放在0号单元的数据(字)是什么?12345678H? 78563412H?两个存放方式不同的机器间程序移植或数据通信时,会发生什么问题?字的存放问题浮点表示1、 什么叫规格化数? 尾数的最高位为非零数值的浮点数,即
9、: (R2)例:20110.1011 - 规格化 21000.01011 - 非规格化2、为什么要规格化? a.使一个数的浮点表示是惟一的 b.能保留最多的有效数字,避免丢失运算精度。浮点表示3、IEEE754标准规格化基数R=2,基数固定,采用隐含方式来表示它。32位的浮点数:S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。M是尾数,23位,在低位部分,采用纯小数表示E是阶码,8位,采用移码表示。移码比较大小方便。有规格化表示和非规格化表示两种。浮点表示(1)IEEE754标准64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。因此规格化的64位浮点数
10、x的真值为: x=(-1)S(1.M)2E-1023 e=E-1023一个规格化的32位浮点数x的真值表示为 x=(-1)S(1.M)2E-127 e=E-127浮点表示(2)特殊值,即当阶码e=0或255表示的特殊值:规格化特殊值当阶码E=0并且尾数M=0时,表示规格化数值为“0”。如果数符位Mf为0,则真值为“+0”。如果数符位Mf为1时,则真值为“-0”。当阶码E=255并且尾数M=0时,表示规格化数值为“”。如果数符位Mf为0,则真值为“+”。如果数符位Mf为1时,则真值为“-”。浮点表示非规格化数值当阶码E=0并且尾数M0时,表示非格式化数值,其真值为 。当阶码E=255并且尾数M0
11、时,表示非格式化数值,记为非数NaN,用于表示非法操作。异常IEEE754规定一些异常,比如下溢、上溢等。浮点表示4、浮点数表示范围如下图所示IEEE754浮点数的范围浮点表示运算方法定点加减法运算利用补码实现加减法统一溢出判定:单符号法/双符号法乘法实现方案:方法一:硬件实现方法(串行的“加法和移位”),硬件结构简单,速度太慢(时间延迟太长).方法二:不带符号位的阵列乘法器除法运算:移位+阵列恢复余数除法加减交替法(不恢复余数法)定点运算器算术逻辑单元ALU-74181/ 74182运算器组成:总线、寄存器、暂存器、ALU、总线扩展:阵列乘法器/除法器16位算术逻辑单元ALU例:设计16位先
12、行进位ALU(图2.13)内先行进位,片间先行进位.32位ALU逻辑方框图 2个74L1828个4位ALU74L18164位组间先行进位ALU阵列乘法器的实现手算乘法过程阵列乘法器全加器被乘数X部分积输入AiBi进位输入进位输出 部分积输出B00P7P6P5P4P3P2P1P0B10B20B30A3A2A1A00000乘法速度仅取决于逻辑门和加法器的传输延迟 在无符号数阵列乘法器的基础上,增加符号处理电路、乘前及乘后求补电路,即可实现带符号数乘法器。 除法规则-不恢复余数的除法判断溢出,除数是否为”0”商的符号由被除数的符号和除数的符号共同决定被除数的位数可以是除数位数的两倍,低位开始放于商的
13、寄存器中最后一步余数是负数,需要修正原码除法举例已知 X原 = 0.1011 Y原 = 1.1101 用不恢复余数法计算X/Y原解:|X|补 = 0.1011 |Y|补 = 0.1101 |Y|补 = 1.0011 “加减交替法”的要点: 正、1、减 负、0、加最后一步得到的结果与恢复余数法一样!问题:对于原码小数和无符号整数的除法运算,用被除数(中间余数)减除数进行试商时,根据什么来确定是否“够减”?中间余数的符号!补码除法能否这样来判断呢?举例:7/3=? (-7)/3=?被除数: 0000 0111 除数 0011 A Q M=0011 0000 0111 0000 1110 1101
14、减 1101 1110 0011 恢复(加)商0 0000 1110 0001 1100 1101 减 1110 1100 0011 恢复(加)商0 0001 1100 0011 1000 1101 减 0000 1001 符同商1 0001 0010 1101 减 1110 0010 0011 恢复(加)商0 0001 0010+余:0001/商:0010被除数: 1111 1001 除数 0011 A Q M=0011 1111 1001 1111 0010 0011 加 0010 0010 1101 恢复(减)商0 1111 0010 1110 0100 0011 加 0001 0100
15、 1101 恢复(减)商0 1110 0100 1100 1000 0011 加 1111 1001 符同商1 1111 0010 0011 加 0010 0010 1101 恢复(减)商0 1111 0010+余:1111/商:1110商为负数,需求补:00101110验证:7/3 = 2,余数为1 验证:-7/3 =- 2,余数为-1 举例:-9/2 将X=-9和Y=2分别表示成5位补码形式为: X补 = 1 0111 Y补 = 0 0010 被除数进行符号扩展为: X补=11111 10111 Y 补 = 1 1110同、1、减异、0、加X/Y= 0100B = 4,余数为 0001B
16、= 1将各数代入公式:“除数商+余数= 被除数”进行验证,得:2(4) +(1) = 9快速除法器很难实现流水化比快速乘法器更难实现。阵列除法器比阵列乘法器复杂问题:可以像乘法一样用32个Adder同时进行加/减运算来实现流水线方式的快速除法器吗?不行!每次做加法还是减法,必须要知道上次余数的符号。p = 0时,CAS作为全加器单元p = 1时,输入y被取反,CAS作为全减器单元 P=1Q0Q1Q2Q3Q4R0R1R2R3R4X5X4X3X2X1X8X7X6Y4Y3Y2Y100控制线 P进/借位出 Co进/借位入 CixyysPCAS右图是实现对两个正数按不恢复余数法进行相除的阵列除法器第一次
17、总是做减法,故P=1使第一行做减法;中间行最高位进位Co确定商和下次做加/减,故Co连到Qi和下一行控制线Ps = x (p y ) ciCo = (x + Ci) (p y ) + xCip = 0时,s = x y Ci, Co = xy + yCi + xCip = 1时,s = x y Ci, Co = xy + yCi + xCi 某机器字长为16 位,下列几种情况所能表示的数的范围是什么? 无符号整数 原码定点小数 补码定点小数 补码定点整数 下述格式的浮点数(基为2,移码的偏置常数为128)答案: 无符号整数:0216-1 原码定点小数:-(1-2-15) +(1-2-15) 补
18、码定点小数:-1 +(1-2-15) 补码定点整数:-32768+32767 浮点数:负数:-(1-2-7)x2+127-2-7x2-128 即:-2-135正数:+2-135(1-2-7)x2+127假定一个变量的值为4098,分别用32 位2-补码和IEEE754 单精度浮点格式表示该变量(结果用十六进制表示),并说明哪段二进制序列在两种表示中完全相同,为什么一定相同。答案:4098 =+1 0000 0000 0010B = +1. 0000 0000 001x21232 位2-补码形式为:0000 0000 0000 0000 0001 0000 0000 0010 (00001002
19、H)IEEE754 单精度格式为:0 10001011 0000 0000 0010 0000 0000 000 (45801000H)红色部分为相同序列,因为不管数整数还是小数,其有效数字应该一致!假定在一个程序中定义了变量x、y 和i,其中,x 和y 是float 型变量(用IEEE754 单精度浮点数表示),i 是16 位short 型变量(用补码表示)。程序执行到某一时刻,x=-0.125、y=7.5、i=100,它们都被写到了主存(按字节编址),其地址分别是100,108 和112。请分别画出在大端机和小端机上变量x、y 和i 在内存的存放情况。答案:-0.125=-0.001B =
20、 -1.0 x 2-3x 在机器内部的机器数为:1 01111100 000 (BE000000H)7.5=+111.1B= +1.111 x 22y 在机器内部的机器数为:0 10000001 111000 (40F00000H)100=64+32+4=1100100Bi 在机器内部表示的机器数为:0000 0000 0110 0100(0064H)大端机小端机地址 内容 内容100 BEH 00H101 00H 00H102 00H 00H103 00H BEH108 40H 00H109 F0H 00H110 00H F0H111 00H 40H112 00H 64H113 64H 00H异常输出(len=0)Float s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东省汕头市龙湖区2026届高三3月月考(语文试题理)含解析
- 2025福建南平市数字产业发展有限公司正式员工招聘6人笔试历年常考点试题专练附带答案详解2套试卷
- 2025湖北武汉临空港经济技术开发区服务业发展投资集团有限公司招聘30人笔试参考题库附带答案详解
- 2025浙江湖州市交通投资集团有限公司招聘48人笔试历年备考题库附带答案详解2套试卷
- 2025江苏海州港务股份有限公司招聘工作人员3人笔试参考题库附带答案详解
- 2025年四季度湖南海利高新技术产业集团有限公司招聘100人笔试参考题库附带答案详解
- 2025山东济南政金商业运营有限公司汉峪酒店分公司招聘27人笔试参考题库附带答案详解
- 2025四川广安交通文化旅游投资建设开发集团有限责任公司市场化选聘职业经理人笔试参考题库附带答案详解
- 2025内蒙古锡林郭勒盟国有资产服务中心招募见习生7人笔试历年典型考点题库附带答案详解
- 2025中国人民财产保险股份有限公司怒江州分公司招聘劳务外包人员8人笔试参考题库附带答案详解
- 智能网联汽车感知技术与应用 课件 项目1 智能网联汽车感知技术概述
- 2026年沈阳职业技术学院单招职业技能考试题库及答案详解一套
- 基金管理公司发展规划
- 低空经济在红河州乡村振兴中的实践与探索报告2025
- 港口复工复产安全培训课件
- 2025年本科院校基建处招聘笔试预测试题及答案
- 2023年高考历史真题新课标卷及解析
- 歌颂内蒙古的诗歌
- uom理论考试题库及答案2025
- 2025年文字排版与设计考试试题及答案
- 新能源充电桩施工方案
评论
0/150
提交评论