计算机组成原理习题及答案_第1页
计算机组成原理习题及答案_第2页
计算机组成原理习题及答案_第3页
计算机组成原理习题及答案_第4页
计算机组成原理习题及答案_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格式32位浮点数的十进制值。将十进制数20.59375转换成32位IEEE754格式浮点数的二进制格式来存储。已知x补=1.x1x2xn(0x-1),求证x=-(0.x1x2xn+0.0001)已知x补=x0.x1x2xn求证1-x补=x0.x1x2xn+2-n设x=20100.11011011,y=2100(-0.10101100),求x+y。,CPU的地址总线16根(A15A0,A0为低位),双向数据总线8根(D7D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平读命令,低电平写命令)。主存地址空间分配如下:08191为系统程序区,由只读存储器芯片组成;819232767为用户程序区;最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下芯片:EPROM:8K8位(控制端仅有CS)SRAM:16K1位,2K8位,4K8位,8K8位请从上述芯片中选择芯片设计该计算机的主存储器,画出主存储器逻辑框图,注意画选片逻辑(可选用门电路及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为读数指令。,要求:(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标准格式,拆分出其符号位、阶码位和尾数位,即可得到其真值。解:将16进制数展开后,可得二制数格式为01000001001101100000000000000000e=阶码-127=10000010-01111111=00000011=(3)10包括隐藏位1的尾数1.M=1.01101100000000000000000=1.011011于是有x=(-1)S1.M2e=+(1.011011)23=+1011.011=(11.375)10,第二部分:数据的表示和运算,举例:由十进制数的真值,推出其IEEE754格式的存储形式将十进制数20.59375转换成32位IEEE754格式浮点数的二进制格式来存储。思路:将十进制数转换位二进制数,并表示为1.xxx2n形式,即可得到符号位、阶码位和尾数位,然后IEEE754标准格式代入即可。解:首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小数点,使其在第1,2位之间10100.10011=1.01001001124(e=4)于是得到:S=0,E=4+127=131=10000011,M=010010011最后得到32位浮点数的二进制存储格式为:01000001101001001100000000000000=(41A4C000)16,第二部分:数据的表示和运算,证明类题目的解题思路对于证明题,证明的方法一般可采用:(1)利用原码、补码、反码的数学定义(2)利用补码加减法运算规则(3)利用补码与真值的转换关系等。对于不知正负数的场合,可采用归纳法分别证明已知x补=1.x1x2xn(0x-1),求证x=-(0.x1x2xn+0.0001)n-1个0思路:本题要求证明补码与其真值的对应关系,因此可采用补码的数学定义来证明。证明:x补=2+xx=x补-2=x补-(1.1111+0.00001)=-(1.1111-x补+0.00001)=-(1.1111-1.x1x2xn+0.00001)=-(0.x1x2xn+0.00001),第二部分:数据的表示和运算,设X为负小数,1位符号位,n位数值位,求证x补=x反+2-n思路:本题要求证明补码与其反码的对应关系,因此可采用补码和反码的数学定义来证明。证明:x补=2+xx反=(2-2-n)+x=2+x-2-n=x补-2-n因此x补=x反+2-n,第二部分:数据的表示和运算,设x补x0.x1x2xn,求证x/2补=x0.x0 x1x2xn思路:对于要求证明补码与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.x0 x1x2xn,第二部分:数据的表示和运算,已知x补=x0.x1x2xn求证1-x补=x0.x1x2xn+2-n思路:对于可能涉及运算关系的证明,首先考虑是否可以应用补码的运算规则去证明。证明:1-x补=1补+-x补=1+x0.x1x2xn+2-n=x0.x1x2xn+2-n,求证:-y补=-y补证明:因为x+y补=x补+y补设x=-y,代入上式,有0补=-y补+y补即-y补+y补0因此-y补=-y补,第二部分:数据的表示和运算,设x补=x0.x1x2xn,y补=y0.y1y2yn,证明:xy补=x补(-y0+y12-1+y22-2+yn2-n)。证明:(1)当被乘数x的符号任意,用补码表示,乘数y为正。设x补=x0.x1x2xny补=0.y1y2yn因为x补=2n+1+x(mod2)y补=y所以x补y补=(2n+1+x)y=2n+1y+xy=2(y1y2yn)+xy因为(y1y2yn)是大于0的正整数,根据模运算的性质有:2(y1y2yn)=2(mod2)所以x补y补=2+xy=xy补(mod2)即xy补=x补y补=x补(0.y1y2yn)=x补y(1),第二部分:数据的表示和运算,(2)当被乘数x符号任意,乘数y为负,都以补码表示。x补=x0.x1x2xny补=y0.y1y2yn=1.y1y2yn=2+y(mod)2y=y补2=1.y1y2yn2=0.y1y2yn1所以xy=x(0.y1y2yn1)=x(0.y1y2yn)xxy补=x(0.y1y2yn)补+-x补因为(0.y1y2yn)0,根据式(1)x(0.y1y2yn)补=x补y补=x补(0.y1y2yn)即xy补=x补(0.y1y2yn)+-x补(2)(3)被乘数x与乘数y的符号任意,以补码表示。只要将式(1)与式(2)综合起来便得到补码乘法的统一算式如下:xy补=x补(0.y1y2yn)-x补y0=x补0.y1y2yny0=x补-y0+y12-1+y22-2+yn2-n=x补.y,第二部分:数据的表示和运算,设x=20100.11011011,y=2100(-0.10101100),求x+y。思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍入处理及判溢出,如无特殊要求,尾数和阶码均可用补码表示解:为便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用双符号位,则它们的浮点表示分别为x浮=00010,00.11011011y浮=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.0101010011.10001010(11),第二部分:数据的表示和运算,(3)规格化处理尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为11.00010101(10),阶码为00011。(4)舍入处理采用0舍1入法处理,则有11.00010101+1-11.00010110(5)判溢出阶码符号位为00,不溢出,故得最终结果为x+y=2011(-0.11101010),第二部分:数据的表示和运算,设有两个十进制数:x=-0.87521,y=0.62522。假设阶码占2位,阶符1位,数符1位,尾数3位。通过补码运算规则求出z=x-y的二进制浮点规格化结果。思路:按照浮点数加减法的步骤,即对阶、尾数运算、结果规格化、舍入处理及判溢出解:将x,y化成二进制x=(-0.111)22+01y=(+0.101)22+10假设尾数用两个符号位的补码表示,阶码用单符号位补码表示,则有:x补=001,11.001y补=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根(A15A0,A0为低位),双向数据总线8根(D7D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平读命令,低电平写命令)。主存地址空间分配如下:08191为系统程序区,由只读存储器芯片组成;819232767为用户程序区;最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下芯片:EPROM:8K8位(控制端仅有CS)SRAM:16K1位,2K8位,4K8位,8K8位请从上述芯片中选择芯片设计该计算机的主存储器,画出主存储器逻辑框图,注意画选片逻辑(可选用门电路及3:8译码器)与CPU的连接。,第三部分:存储器层次结构,思路:这类问题主要考察片选逻辑的设计,在设计片选逻辑时,首先要确定需要的片选信号的数目,然后决定选用什么样的译码电路,而后确定参加译码的地址输入端,其设计要依赖于题目给定的地址条件。解:主存地址空间分配如右:根据给定条件,选用EPROM:8K8位芯片1片SRAM:8K8位芯片3片2K8位芯片1片,08191,819232767,6348765535,第三部分:存储器层次结构,D0。D7,CPU,R/W,A0。A10A11A12A13A14A15,MREQ,第三部分:存储器层次结构,例题2:CPU的地址总线16根(A15A0,A0是低位),双向数据总线16根(D15D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平读命令,低电平写命令)。主存地址空间分配如下:08191为系统程序区,由EPROM芯片组成,从8192起一共32K地址空间为用户程序区,最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字编址。现有如下芯片:EPROM:8K16位(控制端仅有CS),16K8位SRAM:16K1位,2K8位,4K16位,8K16位请从上述芯片中选择芯片设计该计算机的主存储器,画出主存逻辑框图,注意画选片逻辑(可选用门电路及译码器)。,第三部分:存储器层次结构,解:根据给定条件,选用EPROM:8K16位芯片1片SRAM:8K16位芯片4片4K16位芯片1片3:8译码器1片,与非门和反向器,第三部分:存储器层次结构,第三部分:存储器层次结构,CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。思路:明确Cache/主存系统效率和平均访问时间的定义解:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95ta=htc+(1-h)tm=0.9550(1-0.95)25060nse=tc/ta=50/60=83.3%,已知cache命中率0.98,主存比cache慢倍,已知主存存取周期为200ns,求cahce主存系统的效率和平均访问时间解:r=tm/tc=4tc=tm/4=50nsta=htc+(1-h)tm=0.9850(1-0.98)20053nse=tc/ta=50/53100%=94.3%,主存大小为2MB,Cache大小为8KB,采用2路组相联方式,每个Cache块大小为128字节。(1)求主存地址格式及各字段的位数和含义(2)Cache的格式(3)Cache的Tag需多少位?,例:假设在某个计算机系统中Cache容量为64K字节,数据块大小是16个字节,主存容量是4M,地址映象为直接相联方式。,(1)主存地址多少位?如何分配?(2)Cache地址多少位?如何分配?(3)目录表的格式和容量?,解:,容量:应与缓存块数量相同即212=4096个存储单元,例:主存容量为1MB,缓存容量为32KB,每块为64个字节,缓存共分128组。,请写出:主存与Cache的格式;,解:,第四部分:指令系统,机器字长16位,指令格式如下所示,其中OP为操作码,试分析指令格式的特点。思路:分析从四个方面入手,即指令的外部特性、操作码特性、地址码特性以及指令用途,解:(1)单字长二地址指令。(2)操作码字段OP可以指定27=128条指令。(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。(4)这种指令结构常用于算术逻辑运算类指令。,第四部分:指令系统,机器字长16位,指令格式如下所示,OP为操作码字段,试分析指令格式特点。,解:(1)双字长二地址指令,用于访问存储器。(2)操作码字段OP为6位,可以指定26=64种操作。(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是RS型指令。(4)此指令是写存储器指令,一种二地址RR型,RS型指令结构如下所示,其中源寄存器,目标寄存器都是通用寄存器,I为间接寻址标志位,X为寻址模式字段.D为偏移量字段.通过I,X,D的组合,可构成一个操作数的寻址方式,其有效地址E的算法及有关说明列于下表,请写出表中6种寻址方式名称,并说明主存中操作数的位置。,解:(1).直接寻址,操作数在有效地址E=D的存储单元中(2).相对寻址.操作数在E=(PC)+D地存储单元中(3).变址寻址,操作数在E=(RX)+D的存储单元中(4).寄存器间接寻址,通用寄存器的内容指明操作数在主存中的地址(5).间接寻址,用偏移量做地址访主存得到操作数的地址指示器,再按地址指示器访主存的操作数,因此间接寻址需两次访问主存.(6).基值寻址,操作数在E=(Rb)+D的存储单元中.,第四部分:指令系统,第四部分:指令系统,某16位机器所使用的指令格式和寻址方式如下所示,该机有两个20位基址寄存器,四个16位变址寄存器,十六个16位通用寄存器。指令汇编格式中的S(源),D(目标)都是通用寄存器,M是主存中的一个单元。三种指令的操作码分别是MOV(OP)=(0A)H,STA(OP)=(1B)H,LDA(OP)=(3C)H。MOV是传送指令,STA为写数指令,LDA为读数指令。,第四部分:指令系统,要求:(1)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短?哪一种操作所花时间最长?第二种指令的执行时间有时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表什么操作?其中如果有编码不正确,如何改正才能成为合法指令?(F0F1)H(3CD2)H(2856)H(6DC6)H(1C2)H,第四部分:指令系统,解:(1)第一种指令是单字长二地址指令,RR型;第二种指令是双字长二地址指令,RS型,其中S采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,RS型,其中R由目标寄存器决定,S由20位地址(直接寻址)决定。(2)处理机完成第一种指令所花时间最短,因为是RR型指令,不需要访问存储器。第二种指令所花时间最长,因为是RS型指令,需要访问存储器,同时要进行寻址方式的变换运算(基值或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。,第四部分:指令系统,(3)根据已知条件:MOV(OP)=001010,STA(OP)=011011,LDA(OP)=111100,将指令的十六进制格式转换成二进制代码且比较后可知:(F0F1)H(3CD2)H指令代表LDA指令,编码正确,其含义是把主存(13CD2)H地址单元的内容取至15号寄存器。(2856)H代表MOV指令,编码正确,含义是把6号源寄存器的内容传送至5号目标寄存器。(6FD6)H是单字长指令,一定是MOV指令,但编码错误,可改正为(28D6)H。(1C2)H是单字长指令,代表MOV指令,但编码错误,可改正为(28C2)H。,一台处理机具有如下指令格式,格式表明有个通用寄存器(长度位),X指定寻址模式,主存实际容量为k字。(1)假设不用通用寄存器也能直接访问主存中的每一个单元,并假设操作码域OP=6位,请问地址码域应分配多少位?指令字长度应有多少位?(2)假设X=11时,指定的那个通用寄存器用做基值寄存器,请提出一个硬件设计规划,使得被指定的通用寄存器能访问1M主存空间中的每一个单元。,第四部分:指令系统,解:()因为218=256K,所以地址码域位,操作码域位指令长度18+3+3+6+2=32位()此时指定的通用寄存器用作基值寄存器(位),但位长度不足以覆盖1M字地址空间,为此将通用寄存器左移,位低位补形成位基地址。然后与指令字形式地址相加得有效地址,可访问主存1M地址空间中任何单元。,第四部分:指令系统,现在要设计一个新处理机,指令系统有64条指令,但机器字长尚悬而未决,有两种方案等待选择:一种是指令字长16位,另一种指令字长24位。该处理机的硬件特色是:有两个基值寄存器(20位)。有两个通用寄存器组,每组包括16个寄存器。请问:(1)16位字长的指令和24位字长的指令各有什么优缺点?哪种方案较好?(2)若选用24位的指令字长,基地址寄存器还有保留的必要吗?解:(1)采用16位字长的指令,原则上讲,优点是节省硬件(包括CPU中的通用寄存器组,ALU与主存储器,MDR),缺点是指令字长较短,操作码字段不会很长,所以指令条数受到限制。另一方面,为了在有限的字段内确定操作数地址,可能要采用较复杂的寻址方式,从而使指令执行的速度降低,当采用24位字长的指令结构时,其优缺点正好相反。具体讲,按所给条件,16位字长的指令格式方案可设计如下:,第四部分:指令系统,其中OP字段可指定64条指令。X1为寻址模式,与R1通用寄存器组一起,形成一个操作数。具体定义如下:X1=00寄存器直接寻址E=R1iX1=01寄存器间接寻址E=(R1i)X1=10基地址方式0E=(Rb0)+(R1i)X1=11基地址方式1E=(Rb1)+(R1i)其中Rb0,Rb1分别为两个20位的基地址寄存器。24位字长指令格式方案如下:其中OP占6位,64位条指令。X1,X2分别为两组寻址模式,分别与R1和R2通用寄存器组组成双操作数字段。由于X1,X2各占3位,可指定8种寻址方式。比较两种方案,从性能价格比衡量,16位字长指令的方案较优。(2)如果选用24位的指令字长,基地址寄存器没有必要保留。因为通用寄存器长度为24位,足以覆盖1M字的空间。,第四部分:指令系统,下图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR为主存地址寄存器,DR为数据缓冲寄存器。ALU由加减控制信号决定完成何种操作。控制信号G控制的是一个门电路。另外,线上标注有控制信号,例如Yi表示Y寄存器的输入控制信号,R1o表示寄存器R1的输出控制信号。未标注的线为直通线,不受控制。现有“ADDR2,R0”指令完成(R0)+(R2)R0的功能操作。请画出该指令的指令周期流程图,并列出相应的微程序控制信号序列。假设该指令的地址已放入PC中。,第五部分:中央处理器,第五部分:中央处理器,思路:读懂数据通路,根据取指令、执行指令的数据通路走向,即可画出指令周期流程图。解:ADD指令是加法指令,参与运算的二数放在R0和R2中,相加结果放在R0中。指令周期流程图包括取指令阶段和执行指令阶段两部分。每一方框表示一个CPU周期。其中框内表示数据传送路径,框外列出微操作控制信号。SUB指令类似。,第五部分:中央处理器,第五部分:中央处理器,微地址寄存器有6位(A5-A0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况:(1)执行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支;(2)执行条件转移指令微程序时,按进位标志C的状态进行2路分支;(3)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。请按多路转移方法设计微地址转移逻辑。思路:微地址转移逻辑是判别测试,指令操作码和定时信号的函数解:按所给设计条件,微程序有三种判别测试,分别为P1,P2,P3。由于修改A5-A0内容具有很大灵活性,现分配如下:(1)用P1和IR3-IR0修改A3-A0;(2)用P2和C修改A0;(3)用P3和IR5,IR4修改A5,A4。另外还要考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:A5=P3IR5T4A4=P3IR4T4A3=P1IR3T4A2=P1IR2T4A1=P1IR1T4A0=P1IR0T4P2CT4由于从触发器强置端修改,故前5个表达式可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论