计算机组成原理习题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格式32位浮点将十进制数20.59375转换成32位IEEE754格式浮点数的二进制格式来存储。已知[x]补=1.x1x2…xn(0≥x-1),求证x=-(0.x1x2…xn+0.00…01)已知[x]补=x0.x1x2…xn求证[1-x]补=x0.x1x2…xn+2-n设x=2010×0.11011011,y=2100×(-0.10101100),求x+y。CPU的地址总线16根(A15~A0,A0为低位),双向数据总线8根(D7~D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平读命令,低电平写命令)。主存地址空间分配如下:0—8191为系统程序区,由只读存储器芯片组成;8192-32767为用户程序区;最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下芯片:EPROM:8K×8位(控制端仅有CS)SRAM:16K×1位,2K×8位,4K×8位,8K×8位请从上述芯片中选择芯片设计该计算机的主存储器,画出主存储器逻辑框图,注意画选片逻辑(可选用门电路及3:8译码器)与CPU的连接。某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(0A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。1510987430OP——目标源MOVS,D1510987430OP基值源变址STAS,M位移量15109830OP——目标LDAS,M20位地址(1)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?①(F0F1)H(3CD2)H·②(2856)H③(6DC6)H④(1C2)H下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为主存地址寄存器,DR为数据缓冲寄存器。ALU由加减控制信号决定完成何种操作。控制信号G控制的是一个门电路。另外,线上标注有控制信号,例如Yi表示Y寄存器的输入控制信号,R1o表示寄存器R1的输出控制信号。未标注的线为直通线,不受控制。现有“ADDR2,R0”指令完成(R0)+(R2)→R0的功能操作。请画出该指令的指令周期流程图,并列出相应的微程序控制信号序列。假设该指令的地址已放入PC中。第二部分:数据的表示和运算举例:由浮点数的存储格式,求其代表的真值若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格式32思路:将存储格式展开为IEEE754标准格式,拆分出其符号位、阶码位和尾数位,即可得到其真值。解:将1601000001001101100000000000000000e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.01101100000000000000000=1.011011于是有x=(-1)S×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10第二部分:数据的表示和运算举例:由十进制数的真值,推出其IEEE754格式的存储形式将十进制数20.59375转换成32位IEEE754格式浮点数的二进制思路:将十进制数转换位二进制数,并表示为1.xxx×2n形式,即可得到符号位、阶码位和尾数位,然后IEEE754标准格式代入即可。解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.010010011×24(e=4于是得到:S=0,E=4+127=131=10000011,M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)16第二部分:数据的表示和运算证明类题目的解题思路对于证明题,证明的方法一般可采用:(1)利用原码、补码、反码的数学定义(2)利用补码加减法运算规则(3)利用补码与真值的转换关系等。对于不知正负数的场合,可采用归纳法分别证明已知[x]补=1.x1x2…xn(0≥x-1),求证x=-(0.x1x2…xn+0.00…01)n-1个0思路:本题要求证明补码与其真值的对应关系,因此可采用补码的数学定义来证明。证明:[x]补=2+xx=[x]补-2=[x]补-(1.111…1+0.000…01)=-(1.111…1-[x]补+0.000…01)=-(1.111…1-1.x1x2…xn+0.000…01)=-(0.x1x2…xn+0.000…01)第二部分:数据的表示和运算设X为负小数,1位符号位,n位数值位,求证[x]补=[x]反+2-n思路:本题要求证明补码与其反码的对应关系,因此可采用补码和反码的数学定义来证明。证明:[x]补=2+x[x]反=(2-2-n)+x=2+x-2-n=[x]补-2-n因此[x]补=[x]反+2-n第二部分:数据的表示和运算设[x]补=x0.x1x2…xn,求证[x/2]补=x0.x0x1x2…xn思路:对于要求证明补码与1/2、1/4倍或2、4倍数的补码的对应关系,最好采用补码和真值的转换关系来证明。证明:根据补码与真值的关系nx=-x0+∑xi2-ii=1nnnx/2=-x0/2+(1/2)∑xi2-i=-x0+x0/2+∑xi2-(i+1)=-x0+∑xi2-(i+1)i=1i=1i=0再根据补码与真值的对应关系[x/2]补=x0.x0x1x2…xn第二部分:数据的表示和运算已知[x]补=x0.x1x2…xn求证[1-x]补=x0.x1x2…xn+2-n思路:对于可能涉及运算关系的证明,首先考虑是否可以应用补码的运算规则去证明。证明:[1-x]补=[1]补+[-x]补=1+x0.x1x2…xn+2-n=x0.x1x2…xn+2-n求证:-[y]补=[-y]补证明:因为[x+y]补=[x]补+[y]补设x=-y,代入上式,有[0]补=[-y]补+[y]补即[-y]补+[y]补=0因此-[y]补=[-y]补第二部分:数据的表示和运算设[x]补=x0.x1x2…xn,[y]补=y0.y1y2…yn,证明:[x×y]补=[x]补×(-y0+y1×2-1+y2×2-2+……+yn×2-n)。证明:(1)当被乘数x的符号任意,用补码表示,乘数y为正。设[x]补=x0.x1x2……xn[y]补=0.y1y2……yn因为[x]补=2n+1+x(mod2)[y]补=y所以[x]补×[y]补=(2n+1+x)×y=2n+1y+x×y=2(y1y2……yn)+x×y因为(y1y2……yn)是大于0的正整数,根据模运算的性质有:2(y1y2……yn)=2(mod2)所以[x]补×[y]补=2+x×y=[x×y]补(mod2)即[x×y]补=[x]补×[y]补=[x]补×(0.y1y2……yn)=[x]补×y(1)第二部分:数据的表示和运算(2)当被乘数x符号任意,乘数y为负,都以补码表示。[x]补=x0.x1x2……xn[y]补=y0.y1y2……yn=1.y1y2……yn=2+y(mod)2y=[y]补–2=1.y1y2……yn–2=0.y1y2……yn–1所以xy=x(0.y1y2……yn–1)=x(0.y1y2……yn)–x[x×y]补=[x(0.y1y2……yn)]补+[-x]补因为(0.y1y2……yn)0,根据式(1)[x(0.y1y2……yn)]补=[x]补×[y]补=[x]补×(0.y1y2……yn)即[x×y]补=[x]补×(0.y1y2……yn)+[-x]补(2)(3)被乘数x与乘数y的符号任意,以补码表示。只要将式(1)与式(2)综合起来便得到补码乘法的统一算式如下:[x×y]补=[x]补(0.y1y2……yn)-[x]补×y0=[x]补×[0.y1y2……yn–y0]=[x]补×[-y0+y1×2-1+y2×2-2+……+yn×2-n]=[x]补.y第二部分:数据的表示和运算设x=2010×0.11011011,y=2100×(-0.10101100),求x+y。思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍入处理及判溢出,如无特殊要求,尾数和阶码均可用补码表示解:为便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用双符号位,则它们的浮点表示分别为[x]浮=00010,00.11011011[y]浮=00100,11.01010100(1)求阶差并对阶ΔE=Ex-Ey=[Ex]补+[-Ey]补=00010+11100=11110即ΔE为-2,x的阶码小,应使Mx右移2位,Ex加2,[x]浮=00100,0.00110110(11)其中(11)表示Mx右移2位后移出的最低两位数。(2)尾数求和00.00110110(11)+11.01010100--------------11.10001010(11)第二部分:数据的表示和运算(3)规格化处理尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为11.00010101(10),阶码为00011。(4)采用0舍1入法处理,则有11.00010101+1-----------------------11.00010110(5)阶码符号位为00,不溢出,故得最终结果为x+y=2011×(-0.11101010)第二部分:数据的表示和运算设有两个十进制数:x=-0.875×21,y=0.625×22。假设阶码占2位,阶符1位,数符1位,尾数3位。通过补码运算规则求出z=x-y的二进制浮点规格化结果。思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍入处理及判溢出解:将x,y化成二进制x=(-0.111)2×2+01y=(+0.101)2×2+10假设尾数用两个符号位的补码表示,阶码用单符号位补码表示,则有:[x]补=001,11.001[y]补=010,00.101[-y]补=010,11.011(1)对阶ΔE=Ex-Ey=[Ex]补+[-Ey]补=001+110=111即ΔE为-1,x的阶码小,应使x尾数右移1位,Ex加1,于是得到[x]补=010,11.100(1)第二部分:数据的表示和运算(2)尾数求和11.100(1)+11.011-------------------10.111(1)(3)规格化处理尾数两个符号位不一致,需向右规格化,阶码加1,尾数变为11.011(11),阶码变为011(4)舍入处理利用0舍1入方法,则有11.011+1------------------11.100(5)判溢出阶码符号位为11,未溢出最终结果:z=x-y=(-0.100)×2+11第三部分:存储器层次结构例题1:CPU的地址总线16根(A15~A0,A0为低位),双向数据总线8根(D7~D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平读命令,低电平写命令)。主存地址空间分配如下:0—8191为系统程序区,由只读存储器芯片组成;8192-32767为用户程序区;最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下芯片:EPROM:8K×8位(控制端仅有CS)SRAM:16K×1位,2K×8位,4K×8位,8K×8位请从上述芯片中选择芯片设计该计算机的主存储器,画出主存储器逻辑框

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功