总复习第一章1.计算机系统结构、组成、实现的基本概念和包含的内容;系统结构与软硬件功能划分的关系;计算机系统的多级层次结构;判断某项内容属于结构、组成、实现的哪一类;判断某项内容针对不同程序员的透明性。2.促进系统结构发展的因素(软件、应用、器件)。软件:实现软件可移植性的方法;系列机的概念;软件兼容的概念(向前、向后、向上、向下兼容);模拟与仿真技术的概念;应用:应用对系统结构的要求。器件:系统结构下移的概念。3.计算机系统的分型与分类的概念。Flynn分类法4.系统结构设计的定量原理(Amdahl定理);加速比的计算方法;5.程序访问的局部性原理(时间局部性、空间局部性);判断系统结构中局部性原理的应用。6.系统评价的指标(响应时间、CPU时间、MIPS、MFLOPS);运用CPU性能公式、平均CPI比较系统性能。7.并行性的概念;并行性的等级、粒度;并行性的开发策略(时间重叠、资源重复、资源共享);8.计算机系统的主要设计方法部分习题参考答案:1.6解:(1)CPI=(45000×1+75000×2+8000×4+1500×2)/129500=1.776(2)MIPS速率=f/CPI=400/1.776=225.225MIPS(3)程序执行时间=(45000×1+75000×2+8000×4+1500×2)/400×106=5.75×10-4s=0.575ms=575μs1.8解:(1)在多个部件可改进情况下,Amdahl定理的扩展:eieieiprf)f1(1S已知re1=30,re2=20,re3=10,Sp=10,fe1=0.3,fe2=0.3,得:)()(10/20/0.330/0.30.30.3-111033FF得fe3=0.36,即部件3的可改进比例为36%。(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T=0.8T,不可改进部分的执行时间为0.2T。已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:TTTTTn045.0102.0203.0303.0'改进后整个系统的执行时间为:Tn=0.045T+0.2T=0.245T那么系统中不可改进部分的执行时间在总执行时间中占的比例是:82.0245.02.0TT=82%1.9解:(1)改进后,各类操作的加速比re分别是:操作类型各类操作的加速比re操作12/1=2操作220/15=1.33操作310/3=3.33操作44/1=4(2)∵改进前系统总执行时间:10×2+30×20+35×10+15×4=1030∴改进前各类操作时间在所有操作时间中所占的比例fe:操作类型改进前各类操作的执行时间在总的执行时间中所占的比例操作110×2/1030=0.0194=1.94%操作230×20/1030=0.5825=58.3%操作335×10/1030=0.3398=34%操作415×4/1030=0.0583=5.83%根据Amdahl定律eeeprf)f1(1S可得各类操作单独改进后,程序获得的加速比分别是:操作类型改进前各类操作的执行时间在总的执行时间中所占的比例各类操作单独改进后,程序获得的加速比操作11.94%1.01操作258.3%1.17操作334%1.31操作45.83%1.05(3)在多个部件可改进情况下,Amdahl定理的扩展:eieieiprf)f1(1S4类操作均改进后,整个程序的加速比是:1/(1.94%/2+58.3%/1.33+34%/3.33+5.83%/4)≈1.78补充题1.确定下列内容各属于哪方面的问题。(1)机器字长为32位。A.B.C.(2)存储器最大容量为64MB。A.B.C.(3)存储器采用31路交叉存储方式。A.B.C.(4)采用4M×4位的DRAM存储器芯片,组装在一块印刷电路板。A.B.C.(5)存储器字长为32位,逻辑地址空间为4GB。A.B.C.(6)主存储器的存储周期设计为200ns。A.B.C.答案中的符号的含义:A:系统结构B:计算机组成C:计算机实现答:AABCAB2.判断下列哪些内容对机器语言(含汇编语言)程序员是透明的。1)指令寄存器2)程序计数器3)数据通路的宽度4)浮点数据表示5)行波进位加法器6)Cache7)控制存储器8)中断屏蔽触发器9)通用寄存器10)硬盘11)只读存储器使用EPROM芯片12)微地址寄存器答:1、3、5、6、7、11、12第二章1.指令系统的设计要求(完备性、有效性、兼容性、规整性、对称性、可扩充性、正交性、有利于编译)。2.指令系统的分类(堆栈型、累加器型、通用寄存器型);通用寄存器型指令的特点(R-R型、R-M型、M-M型)。3.操作数访问方式(按地址访问、按内容访问);按地址访问的编址问题:字编址、字节编址、位编址;按字节编址时的大端排序与小端排序。编址规定中的访存越界问题及其解决方法。按内容访问:联想存储器的工作过程。4.指令格式的设计准则;操作码的优化方法(霍夫曼编码、扩展霍夫曼编码)。5.指令系统的两种设计风格CISC和RISC。CISC风格的特点;RISC风格的特点。RISC风格指令系统的实现技术:窗口寄存器重叠技术、优化转移技术。6.数据类型、数据表示、数据结构的概念和关系;引入数据表示的原则(减少程序执行时间和存储容量、较好的通用性和较高的效率);数据表示与系统结构的关系。7.向量数据表示的形式;采用向量数据表示时,向量指令中应给出的内容。8.自定义数据表示:带标志符数据表示、数据描述符表示。部分习题参考答案:补充题一、某模型机的9条指令在程序中的使用频度经统计如下表所示。指令Ii使用频度piADD43%SUB13%JMP7%JOM6%STO5%SHR1%CIL2%CLA22%STP1%写出这9条指令操作码的Huffman编码、3-4扩展编码、2-7扩展编码,并计算这3种编码的平均码长。答:两种Huffman编码方案指令Ii使用频度piHuffman编码1Huffman编码23-4编码2-7编码ADD43%0000000CLA22%1010000101SUB13%11010101010JMP7%11100110001101100000JOM6%11101110101111100001STO5%11110111010001100010CIL2%1111101111010011100011SHR1%111111011111010101100100STP1%111111111111111101100101平均码长2.422.423.223.1Huffman编码1的平均码长:H=0.43×1+0.22×2+0.13×3+(0.07+0.06+0.05)×5+0.02×6+(0.01+0.01)×7=2.42Huffman编码2的平均码长:H=0.43×1+(0.22+0.13)×3+(0.07+0.06+0.05)×4+0.02×5+(0.01+0.01)×6=2.423-4编码的平均码长:H=(0.43+0.22+0.13)×3+(0.07+0.06+0.05+0.02+0.01+0.01)×4=3.222-7编码的平均码长:H=(0.43+0.22+0.13)×2+(0.07+0.06+0.05+0.02+0.01+0.01)×7=3.1二、某处理机的指令系统的指令字长为12位,每个地址码的长度为3位,现要求该指令系统中有:三地址指令4条、单地址指令255条、零地址指令16条。问能否用扩展编码的方式为其操作码编码?如果要求单地址指令为254条,能否对其操作码用扩展编码?说明理由。答:三地址指令格式:3位3位3位3位操作码地址码1地址码2地址码3(1)3位操作码,可以表示8条三地址指令,现只需4条,剩余4个码点。设没有二地址指令,则单地址指令可以使用6位地址码作为扩展操作码,共可有4×64=256条指令,但要求有16条零地址指令,需要单地址指令留出2个码点,256-2=254,不能满足单地址指令的需要,所以不能用扩展编码的方式为该方案的操作码编码。(2)如果要求单地址指令为254条,则可以满足单地址指令的需要,可以用扩展编码的方式为该方案的操作码编码。三、设需要计算X=(a+b)×(c+d)/(f-g),其中a、b、c、d、f、g均事先存放在存储器中,X为存放结果的存储器单元。请用堆栈型、累加器型、寄存器-寄存器型指令编写完成同样功能的汇编语言程序。设寄存器-寄存器型指令为二地址指令,指令格式中第一操作数为目的操作数,第二操作数为源操作数,指令的操作码占一字节(包含指令中使用的寄存器),存储器地址占二字节,操作数占四字节。请根据所编写的汇编语言程序回答下列问题:⑴计算三种指令代码序列从存储器取指所需的总字节数。⑵计算三种指令代码序列取数或存数所需的总字节数。⑶比较三种结构所需的指令字节数和需传送的总字节数。说明:减法为目的操作数减去源操作数、除法为目的操作数除以源操作数。答:(1)堆栈型指令取指字节数取/存数字节数PUSHa38PUSHb38ADD;(a+b)112PUSHc38PUSHd38ADD;(c+d)112MUL;(a+b)×(c+d)112PUSHf38PUSHg38SUB;(f-g)112DIV;(a+b)×(c+d)/(f-g)112POPX;X=(a+b)×(c+d)/(f-g)38总字节数26116(2)累加器型指令取指字节数取/存数字节数LOADa34ADDb34STOREh;h=a+b34LOADc34ADDd;c+d34MULh;(a+b)×(c+d)34STOREh;h=(a+b)×(c+d)34LOADf34SUBg;f-g34STOREi;i=f-g34LOADh;读被除数h34DIVi;(a+b)×(c+d)/(f-g)34STOREX;X=(a+b)×(c+d)/(f-g)34总字节数3952(3)寄存器-寄存器型X=(a+b)×(c+d)/(f-g)指令取指字节数取/存数字节数LOADR1,a34LOADR2,b34ADDR1,R2;R1=a+b10LOADR2,c34LOADR3,d34ADDR2,R3;R2=c+d10MULR1,R2;R1=(a+b)×(c+d)10LOADR2,f34LOADR3,g34SUBR2,R3;R2=f-g10DIVR1,R2;R1=(a+b)×(c+d)/(f-g)10STOREX,R1;X=(a+b)×(c+d)/(f-g)34总字节数2628指令条数取指字节数取数/存数字节数需传送总字节数堆栈型1226116142累加器型13395291寄存器-寄存器型12262854第三章1.标量流水的基本概念和分类;先行控制的概念。会计算采用顺序方式和不同的重叠方式执行指令时的指令执行时间。2.利用时空图进行标量流水线的性能分析(吞吐率、加速比、效率)3.非线性流水线的调度方法(基本调度方法和优化调度方法)。4.掌握流水线操作中全局相关(转移指令引起的相关)和局部相关(数据读写引起的相关)问题的解决方法。几种解决全局相关的预测算法的原理及实现。5.向量流水线的特点。向量处理方式(横向、纵向、纵横向加工)。6.增强向量处理性能的方法(并行处理技术、链接技术)的应用及向量程序的时间计算。7.向量编队的方法,根据向量编队计算性能参数的方法。8.向量访问步长,解决向量机的访存冲突的方法。9.向量处理性能的评估参数(Tvp、R∞、n1/2、nv等)的定义。部分习题参考答案:3.9解:for(i=2;i100;i=i+1)a[i]=b[i]+a[i];/*s1*/c[i+1]=a[i]+d[i];/*s2*/a[i-1]=2*b[i];/*s3*/b[i+1]=2*b[i];/*s4*/(1)在一次循环中存在的相关:真数据相关:S1&S2:a[i]a[i]=b[i]+a[i]与c[i+1]=a[i]+d[i]先写后读没有输出相关和反相关(2)展开循环后,