计算机原理与设计习题_第1页
计算机原理与设计习题_第2页
计算机原理与设计习题_第3页
计算机原理与设计习题_第4页
计算机原理与设计习题_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

简述RISC和CISC的主要差别。CISC(ComplexInstructionSetComputer)是对那些具有复杂指令系统的CPU的总称,CISC指令系统往往提供丰富的寻址方式,每条指令长短不一,常用的指令较短,不常用的指令较长,设计CPU时往往采用微程序的方法来实现这些指令,CISC的优点是代码紧凑,使用较少的存储器,缺点是实现复杂的指令需要较多的芯片面积而且不利于流水线操作。RISC(ReducedInstructionSetComputer)是对那些具有简单指令系统的CPU的总称,RISC指令系统的特点有两个,一是指令长度固定,这有利于流水线CPU的设计,二是所谓的Load/Store结构。1假设我们有两台计算机M1和M2。M1的主频是1GHz,M2的主频是2GHz。每台计算机的指令都有4类,它们的CPI分别为1、2、3和4。当同样一个用高级语言编写的程序在两台机器上分别编并译执行时,我们得到下表所列的结果。

计算机主频CPI执行指令数1234M11GHz50%35%10%5%20200000M22GHz10%10%30%50%22000000其中的百分比是执行时每类指令出现的频率。试分别计算该程序在两台机器上的执行时间。如果单从执行时间上考虑,哪一台机器的性能更好?2解题思路:解:3试计算上题中两台计算机的MIPS(MillionInstructionsPerSecond),即每秒能执行多少百万条指令。解题思路:解:4如果使用1000000个CPU构建一个并行系统并想得到单CPU系统500000倍的性能,那么程序中允许出现的串行执行的代码的比例应该不超过多少才行?解题思路:解:5试用多个32位二选一多路器mux2x32设计一个32位的八选一多路器mux8x32。解题思路:解:ys2s10s11s00a0a1s01a2a3s02a4a5s03a6a76试分别用结构描述、数据流描述和功能描述三种风格写出带有使能端的3-8译码器的VerilogHDL代码。提示:功能描述风格的语句可用e=ena<<n。结构描述

decoder3egate.v数据流描述

decoder3dataf.v功能描述

decoder3func.v7用VerilogHDL设计一个异步清零再加上使能端e的32位D触发器(dffe32)。参考代码dffe32.v参考代码addsub32.v试设计一个32位的加减法器,增加一个输出信号v来指出结果是否上溢。8用补码计算下列各式中两个数的和。

(1)x=0.11001y=-0.10111

(2)x=0.10010y=0.11000

解:9用补码计算下列各式中两个数的差。

(1)x=-0.01111y=0.00101

(2)x=0.11011y=-0.10010

解:10用补码Booth乘法计算x=0.1010,y=-0.0110

的积x*y。解:11使用功能描述风格的VerilogHDL(casex)重新设计AlU并仿真。参考代码alufunc.v在ALU中添加一位标志位v(输出),判断带符号数计算时的溢出。参考代码alu_v.v12试实现sla(ShiftLeftArithmetic)指令(算术左移、保持正负不变)。参考代码sla.v用功能描述风格的VerilogHDL设计单周期CPU。参考代码sccpu.v13假定某变量x存放在寄存器R1中为11111111111111111111101111000000B,则变量x在屏幕上用16进制显示为0xFFFFFBC0。若x的类型为int,则x的值为-1088;对R1进行算术左移4位后的值在屏幕上显示为0xFFFFBC00;对R1算术右移4位后为0xFFFFFFBC;对R1逻辑右移4位后为0x0FFFFFBC。14以下是用C语言写的一个传统的While语句:while(save[i]==k)i+=1;假设i和k对应于寄存器$s3和$s5,数组save的基址存放在$s6中,对应的MIPS汇编代码为:假定loop的开始位置在内存80000处,则上述循环的MIPS机器码为:根据上述给出的叙述,回答下列问题。(1)上述给出的MIPS机器码中有一处错误,你能找出来吗?(2)MIPS内存空间的编址单位是多少?(3)解释为什么指令“sll$t1,$s3,2”能实现4*i的功能?(4)该循环中哪些是R-型指令?哪些是I-型指令?(5)$t0和$s6的编号各为多少?(6)Exit的值是多少?要求说明其含义和计算过程。(7)指令“jloop”的操作码是什么(用二进位表示)?(8)MIPS中分支指令和跳转指令的跳转范围分别是什么?(9)数组save的每个元素占几个字节?15(1)上述给出的MIPS机器码中有一处错误,你能找出来吗?答:第一条指令中的倒数第二个字段的值应该是2,而不是4,表示左移的位数。(2)MIPS内存空间的编址单位是多少?答:字节。从上图可看出,每条指令32位,占4个地址,所以一个地址中有8位。(3)解释为什么指令“sll$t1,$s3,2”能实现4*i的功能。答:因为这是左移指令,左移2位,相当于乘22=4。(4)该循环中哪些是R-型指令?哪些是I-型指令?答:从上图可看出,第1-2条为R-型,第3-5条为I-型。(5)$t0和$s6的编号各为多少?答:从第3和4条指令,可看出$t0的编号为8,第2条指令看出$s6的编号为22。16(6)Exit的值是多少?要求说明其含义和计算过程。答:Exit的值是80024,其含义是循环结束时跳出循环后执行的首条指令的地址,由当前条件转移指令(分支指令)的地址80012,加上4得到下条指令的地址,然后再加上相对位移量2*4得到。80012+4+2*4=80024。(如果答Exit为2也算对,此时其含义就是转移到的目标指令相对于当前条件转移指令的指令条数,所以计算时,需要将指令条数转换为地址位移量,所以要乘以4。)(7)指令“j20000”的操作码是什么(用二进位表示)?答:其操作码为“000010”。17(8)MIPS中分支指令和跳转指令的跳转范围分别是什么?答:因为分支指令(条件转移指令)的相对位移量的范围为:-215到+(215-1),但这是相对于分支指令的下条指令而言的,所以,相对于当前分支指令而言,转移范围为:-(215-1)到+215条指令。即:往前跳,最多跳到第32767条指令(相当于32767x4=131068个单元),往后跳,最多跳到第32768条指令(相当于32768x4=131072个单元)。因为无条件跳转指令的目标地址范围为:0到226-1(相对于下条指令),所以,相对于本条指令而言,其转移范围为:1到226条指令。即:相对于当前跳指令而言,最近就跳到下条指令,最远跳到后面的第226条指令。(9)数组save的每个元素占几个字节?答:因为每次循环取数,其下标地址都要乘以4,所以是4个字节。18假设各主要功能单元的操作时间为:

读存储器:10ns,写存储器:5nsALU和加法器:10ns寄存器堆(读/写):5ns而MUX、控制单元、PC、扩展器和传输线路没有延迟,若各类指令的执行次数占总数的比例为:20%取数、10%存数、50%ALU、15%分支、5%跳转,则下面实现方式中,哪个更快?快多少?每条指令在一个固定长度的时钟周期内完成每条指令在一个时钟周期内完成,但时钟周期是可以根据指令类型动态变化的。19解:20假设某台机器有4级中断,其硬件排队优先次序为1>2>3>4,中断处理优先次序为3>1>2>4,要求:(1)给出每级中断的中断屏蔽码(假设“1”表示允许,“0”表示禁止)(2)假设在执行主程序时,1、2、3、4级中断同时有请求,请画出CPU执行程序的轨迹。21中断屏蔽位表中断级别中断级屏蔽位1级2级3级4级目态1111第1级0010第2级1010第3级0000第4级111022用户程序中断请求中断处理程序1234①②③④中断请求处理图23计算机系统发生异常事件或外设完成I/O任务时,一般都通过中断方式请求CPU执行相应的中断服务程序来处理。在以下给出的情况中,哪个不会引起中断? A.键盘缓冲满 B.一个字符打印完 C.运算结果为0 D.页面失效(miss)答案:C24试比较单周期CPU与多周期CPU各自的优缺点。单周期CPU用一个时钟周期执行一条指令,而确定时钟周期的时间长度时要考虑执行时间最长的指令,以此定出CPU的时钟频率,不管指令的复杂程度如何,单周期CPU都花费相同的时间去执行,这造成了时间上的浪费;多周期CPU的中心思想是把一条指令的执行分成若干个小周期,根据每条指令的复杂程度使用不同的小周期去执行,这可以更有效利用时间,有利于流水线设计,但控制部件较单周期CPU的更复杂一些。25我们在叙述单周期CPU与多周期CPU的设计方法时使用了相同的测试程序并给出了测试结果,从而我们知道了两种CPU在执行相同的测试程序时所用的时间。假设多周期CPU的一个时钟周期是4ns,而单周期CPU的一个时钟周期比多周期CPU的5倍略短一些,比如19ns。试从执行时间上比较两种CPU执行测试程序时的性能。26解:测试程序中共执行32条指令,其中:CPI5432指令数11524271、什么是存储器的带宽?若存储器的数据总线宽度为16位,存储周期为100ns,则存储器的带宽是多少?答:存储器的带宽是指单位时间内存储器所能存取的最大信息量,通常以bps或Bps作为度量单位。数据总线宽度为16位,存储周期为100ns的存储器的带宽为:

16b/(100ns)=16b/(100*10-9s)=160Mbps2、一个字长为32位的计算机,其存储容量为128KB,按字节编址和按字编址的寻址范围各是多少?答:128KB=217B,如果按字节编址,需要217个地址,则需要17位地址线,寻址范围为0~217-1;若按字编址,则每个字占一个地址,128KB是32K(215)个字,需要15根地址线,寻址范围为0~215-1。283、一个64K×32位的存储器,按字节寻址,其地址线和数据线各是多少位?答:32位说明数据线为32位;64K=216,按照字节寻址,需要16+2=18位地址线。4、用2K×4位的存储芯片构成一个具有14根地址线、8根数据线的存储器,试问:

(1)该存储器的存储容量是多少KB?

(2)需要几片上述存储芯片?答:(1)数据线为8根,即按字节寻址;地址线为14根,即寻址空间大小为214,故存储容量为16KB。

(2)需要2K×4位的芯片数目为:

(16K/2K)×(8/4)=8×2=16。295、假定某计算机的cache共16行,开始为空,块大小为1个字,采用直接映射方式。CPU执行某程序时,依次访问以下地址序列:2,3,11,16,21,13,64,48,19,11,3,22,4,27,6和11。要求:

(1)说明每次访问是命中或缺失,试计算访问上述地址序列的命中率。

(2)若cache数据区容量不变,而块大小改为4个字,则上述地址序列的命中率又如何?30(1)访问缺失的情况有两种:一是Cache块内未填充有效数据而引发的缺失;二是Cache块内存在有效数据,但该数据不是需要的数据,即因采用直接映射方式,其它地址的数据映射到并占用此块,发生冲突,从而引发缺失。

将访存地址序列2,3,11,16,21,13,64,48,19,11,3,22,4,27,6,11对16进行求余,可得到各地址映射对应的C

温馨提示

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

评论

0/150

提交评论