计算机组成原理例题习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【解】:将x,y转换成浮点数据格式 [x]浮 = 00 01, 00.1101, [y]浮 = 00 11, 11.0110 步骤1:对阶,阶差为11-01=10,即2,因此将x的尾数右移两位,得 [x]浮 = 00 11, 00.001101 步骤2:对尾数求和,得: [x+y]浮 = 00 11, 11.100101 步骤3:由于符号位和第一位数相等,不是规格化数,向左规格化,得 [x+y]浮 = 00 10, 11.001010 步骤4:截去。 [x+y]浮 = 00 10, 11.0010 步骤5: 数据无溢出,因此结果为 x+y = 210×(-0.1110)
第 3页
【例】: 将十进制数20.59375转换成32位浮点数的二进制格式来存储。
【解】:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×24
e= 4
于是得到: e =E – 127


第一章 计算机系统概论
第二章 运算方法和运算器
第三章 存储系统
第四章 指令系统 第五章 中央处理器 第六章 总线系统
第 1页
【例】 用一台40MHz处理机执行标准测试程序,程序所含的混合指令数 和每类指令的CPI如表所示,求有效CPI、MIPS速率和程序的执行时间。
指令类型 指令数 CPI 整数运算 45000 1 数据传送 32000 2 浮点操作 15000 2 控制传送 8000 2
第10页
【解】②带求补器的补码阵列乘法器 [x]补=0.1101 [y]补=1.0101 乘积的符号位为:xf⊕yf=0⊕1=1 因算前求补器的使能控制信号分别 为被乘数和乘数的符号位,经算前求补 后输出 1101 × 1011 1101 1101 0000 + 1101 。 10001111
x′=1101,y′=1011,其中x′和y′分别
乘积的符号位为:xf⊕yf=0⊕1=1 因符号位单独考虑,算前求补器的 使能控制信号为0,经算前求补后输出 x′=1101,y′=1011,其中x′和y′分别 是x和y原码的数值位。
因算后求补器的使能控制信号为0,经算后求补后输出为 10001111,加上乘积符号位1,得 [x×y]原=1.10001111 所以 x×y=-0.10001111
第13页
被除数/余数 0101001 +[-y′]补 1001 1110001 + [y′]补 0111 001101 +[-y′]补 1001 11111 + [y′]补 0111 0110

q0=0
q1=1
q2=0
q3=1
说明 被除数[x′]补 第一步减去除数,即+[-y′]补 最高位向前产生的进位为0,即商0 向右错开1位,加上除数,即+[y′]补 最高位向前产生的进位为1,即商1 向右错开1位,减去除数,即+[-y′]补 最高位向前产生的进位为0,即商0 向右错开1位,加上除数,即+[y′]补 最高位向前产生的进位为1,即商1
结果正确, 为-3。
第 7页
【例】 设x=+15,y=-13,用带求补器的原码阵列乘法器求出乘
积x×y=?(设最高位为符号位) 【解】 输入数据为: [x]原 =01111 [y]原 = 11101 乘积符号位: xf⊕yf=1 算前求补器的使能控制信号=0,算前求补输出为: |x|=1111, |y|=1101 1 1 1 1 ×) 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 算后求补器的使能控制信号也为0,算后求补输出为: 11000011, 加上符号位,最后乘积 [x· y]原=1 11000011 其真值为:x×y=-11000011B=-195
第 5页
【例】 x= +0.1100, y= +0.1000, 用变形补码求x+y。
【解】 [x]补=00.1100 [y]补=00.1000 [x]补 0 0. 1 1 0 0 + [y]补 0 0. 1 0 0 0 0 1. 0 1 0 0 符号位出现“01”,表示已溢出,正溢。即结果大于+1
【解】:总指令数为: 45000+32000+15000+8000=100000条 各类指令所占的比例分别是: 整数运算为45%,数据传送为32%,浮点操作为15%,控制传送为8%。 有效CPI、MIPS速率和程序的执行时间分别计算如下: (1)有效CPI为 1×0.45+2×0.32+2×0.15+2×0.08=1.55CPI (2)MIPS速率为 40×106/(1.55×106)≈25.8MIPS (3)程序的执行时间为 100000×1.55/(40×106)=0.003875s
故得 商q=q0q1q2q3=0101, 余数r=r3r4r5r6=0110 所以 [x÷y]原=1101,[余数]原=0110 其中,余数的符号位与被除数相同 即 x÷y=-101,余数=110
第14页
【例】:利用74181和74182器件设计如下三种方案的64位ALU; (1)行波CLA; (2) 两级行波CLA; (3) 三级CLA。
第16页
(3) 三级CLA 如图所示:多用一片74182,实现第三级先行进位。此方案速度 最快,最低位的进位信号可以直接传送到最高位(第64位)。
第17页
【例】 两浮点数x = 201×0.1101,y = 211×(-0.1010)。假设尾数在计算机 中以补码表示,可存储4位尾数,2位保护位,阶码以原码表示,求x+y。
第 9页
【例】设x=0.1101,y=-0.1011,分别用带求补器的原码阵列乘法器、带 求补器的补码阵列乘法器和直接补码阵列乘法器计算x×y。 【解】①带求补器的原码阵列乘法器 1101 × 1011 1101 1101 0000 + 1101 。 10001111
[x]原=0.1101
[y]原=1.1011
【例】 x= -0.1100, y= -0.1000, 用变形补码求 x+y。 【解】 [x]补=11.0100 [y]补=11.1000 [x]补 1 1.0 1 0 0 + [y]补 1 1.1 0 0 0 1 0.1 1 0 0 符号位出现“10”,表示已溢出,负溢出。即结果小于-1
第 6页
【例】: x= +011,y= +110, 变形移码求[x+y]移 和 [x-y]移, 并判断 是否溢出。
【解】: (1) 行波CLA 仅使用74181,用芯片的Cn+4进位输出作为下一级的进位输入Cm, 片子内部有先行进位,片与片之间采用串行进位。64位ALU共需要16片 74181,运算速度最慢。
第15页
பைடு நூலகம்
(2)两级行波CLA
需要16片74181和4片74182。每4片74181为一组,使用1片74182, 可实现4片74181之间的第二级先行进位。共有四组,组与组之间采用 行波进位。速度比(1)快。
是x和y原码的数值位。
因算后求补器的使能控制信号为乘积的符号位,经算后求补后 输出为01110001,加上乘积符号位1,得 [x×y]补=1.01110001 所以 x×y=-0.10001111
第11页
③ 直接补码阵列乘法器 [x]补=0.1101 [y]补=1.0101 (0) 1 1 0 1 × (1) 0 1 0 1 (0) 1 1 0 1 (0) 0 0 0 0 (0) 1 1 0 1 (0) 0 0 0 0 + 0 (1)(1)(0)(1) . 0 0 (1)(1) 1 1 0 0 0 1 (1) 1 0 1 1 1 0 0 0 1 注意:在这三种阵列运 算中,一定要注意运算结果 的位数。 例如,参与运算的数位 都是5位,则运算结果的位 数就应该是10位。
第 2页
【例】若浮点数 x 的二进制存储格式为(41360000)16,求其32位浮点数的 十进制值。 【解】: 将x展开成二进制: 0100,0001,0011,0110,0000,0000,0000,0000 数符:0
阶码:1000,0010
尾数:011,0110,0000,0000,0000,0000 指数e=阶码-127=10000010-01111111 =00000011=(3)10 包括隐藏位1的尾数: 1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)s×1.M×2e =+(1.011011)×23=+1011.011=(11.375)10
第 8页
【例】 设x=+15,y=-13,用带求补器的补码阵列乘法器求出乘
积x·y=? 【解】 设最高位为符号位,则输入数据为: [x]补 =01111 [y]补 = 10011 符号位单独运算,算前求补级输出为: |x|=1111, |y|=1101 1 1 1 1 ×) 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 1 1 算后求补级输出为: 00111101, 最后乘积 [x· y]补=100111101 其真值为:-11000011B=-195
[x×y]补=1.0111001 所以 x×y=-0.10001111
第12页
【例】设x=101001,y=-111,用原码阵列除法器计算x÷y。
【解】: [x]原=0101001 , [y]原=1111 商的符号位为: xf⊕yf=0⊕1=1 令x′=101001,y′=111, 其中x′和y′分别为[x]原和 [y]原的数值部分: [x′]补=0101001, [y′]补=0111, [-y′]补=1001
第18页
【例】 设有浮点数x=2-5 0.0110011, y= 23 (-0.1110010), 阶码 用4位移码表示, 尾数 (含符号位)用8位补码表示。求[xy]浮。要求用 补码完成尾数乘法运算, 运算结果尾数保留高8位(含符号位), 并用尾数 低位字长值处理舍入操作。 【解】: 阶码采用双符号位, 尾数补码采用单符号位, 则有 [Mx]补= 0.0110011, [My]补= 1.0001110, [Ex]移= 00 011, [Ey]移 = 01 011, [x]浮=00 011, 0.0110011, (1) 求阶码和 [Ex+ Ey]移= [Ex]移+ [Ey]补= 00 011+ 00 011= 00 110, [Ey]补= 00 011,
S=0,E=4+127=131=1000,0011,M=010010011
最后得到32位浮点数的二进制存储格式为 0100 0001 1010 0100 1100 0000 0000 0000 = (41A4C000)16
第 4页
【例】设机器字长16位,定点表示,尾数15位,数符1位,问:
(1)定点原码整数表示时,最大正数是多少?最小负数是多少? 若把问题换成补码,则结果又是什么?即 (2)定点补码整数表示时 定点原码小数表示时, ,最大正数是多少 最大正数是多少? ?最小负数是多少 最小负数是多少? ? (1) (2)定点补码小数表示时,最大正数是多少?最小负数是多少? 【解】 (1)定点原码整数表示 【解】 (1)定点补码整数表示 最大正数值=(215-1)10=(+32767)10 15-1)1111 0111 1111 1111 最大正数值=(2 10=(+32767)10 0111 1111 1111 1111 最小负数值=-(215 -1)10= (-32767) 10 15 最小负数值=-2 =(-32768)10 1111 1111 1111 1111 1000 0000 0000 0000 (2)定点原码小数表示 (2)定点补码小数表示 最大正数值=(1-2-15)10=(+0.111...11)2 -15) =(+0.111...11) 最大正数值=(1-2- 10 最小负数值=-(1-2 15)10 =(-0.111..11)2 2 最小负数值=-1
【解】:阶码取3位(不含符号位),其对应的真值范围是: -8~+7
[x]移= 01 011,
[y]补= 00 110,
[-y]补=11 010
结果上溢。
[x+y]移= [x]移+ [y]补=
01 011 + 00 110 10 001 01 011 + 11 010 00 101
[x-y]移= [x]移+ [-y]补=
相关文档
最新文档