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

下载本文档

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

文档简介

习题解答第1章计算机系统概述1.给出以下概念的解释说明1.中央处理器(CPU)通常把控制部件、运算部件和各类寄存器互联组成的电路称为中央处理器(CentralProcessingUnit,CPU),简称处理器。2.算术逻辑部件(ALU)用来进行算术逻辑运算的部件,即算术逻辑部件(ArithmeticLogicUnit)。3.通用寄存器临时存放从主存取来的数据或运算的结果。4.程序计数器(PC)在执行当前指令的过程中,自动计算出下一条指令的地址并送到PC(ProgramCounter,PC)中保存。5.指令寄存器(IR)从主存取来的指令需要临时保存在指令寄存器(InstructionRegister,IR)。6.控制器用于自动逐条取出指令并进行译码的部件,即控制元件(ControlUnit,CU),也称控制器。7.主存储器用来存放指令和数据。8.总线CPU为了从主存取指令和存取数据,需要通过传输介质和主存相连,通常把连接不同部件进行信息传输的介质称为总线。9.主存地址寄存器(MAR)CPU送到地址线的主存地址应先存放在主存地址寄存器(MemoryAddressRegister,MAR)中。10.主存数据寄存器(MDR)CPU发送到或从数据线取来的信息存放在主存数据寄存器(MemoryDataRegister,MDR)中。11.机器指令计算机能理解和执行的程序称为机器代码或机器语言程序,其中的每条指令都由0和1组成,称为机器指令。12.存储程序13.指令操作码操作码字段指出指令的操作类型,如取数、存数、加、减、传送、跳转等。14.高级程序设计语言高级程序设计语言简称高级编程语言,是指面向算法设计的、较接近于日常英语书面语言的程序设计语言,如BASIC、C/C++、Java等。15.汇编语言通过用简短的英文符号和机器指令建立对应关系,以方便程序员编写和阅读程序。这种语言称为汇编语言(AssemblyLanguage)。16.机器语言使用特定计算机规定的指令格式而形成的0/1序列称为机器语言。17.机器级语言汇编语言和机器语言都属于低级语言,它们统称为机器级语言。18.源程序被翻译的语言和程序分别称为源语言和源程序19.目标程序翻译生成的语言和程序分别称为目标语言和目标程序。20.编译程序编译程序(Compiler)也称编译器。用于将高级语言源程序翻译成汇编语言或机器语言目标程序。21.解释程序解释程序(Interpreter)也称解释器。用于将源程序中的语句按其执行顺序逐条翻译成机器指令并立即执行。22.汇编程序汇编程序(Assembler)也称汇编器。用于将汇编语言源程序翻译成机器语言目标程序。23.语言处理系统提供程序编辑器和各类翻译转换软件的工具包统称为语言处理系统或软件的集成开发环境(IntegratedDevelopmentEnvironment,IDE)。24.设备控制器外设通过I/O控制器或I/O适配器连接到主机上,I/O控制器或I/O适配器统称为设备控制器。25.最终用户使用应用软件完成特定任务的计算机用户称为最终用户(EndUser)。26.系统管理员系统管理员(SystemAdministrator)是指利用操作系统、数据库管理系统等软件提供的功能对系统进行配置、管理和维护,以建立高效合理的系统环境供计算机用户使用的操作人员。27.应用程序员应用程序员(ApplicationProgrammer)是指使用高级编程语言编制应用软件的程序员;28.系统程序员系统程序员(SystemProgrammer)则是指设计和开发系统软件的程序员。29.指令集体系结构(ISA)从应用问题到机器语言程序的每次转换所涉及的概念都是属于软件的范畴,而机器语言程序所运行的计算机硬件和软件之间需要有一个”桥梁“,这个在软件和硬件之间的界面就是指令集体系结构(InstructionSetArchitecture,ISA),简称指令集架构或指令系统。30.微体系结构实现ISA的电路逻辑结构称为计算机组织(ComputerOrganization)或微体系结构(Microarchitecture),简称微架构。31.透明在计算机技术中,一个存在的事物或概念从某个角度看似乎不存在,即对实际存在的事物或概念感觉不到,则称为透明。32.响应时间响应时间是指从作业提交开始到作业完成所用的时间。33.吞吐率吞吐率表示在单位时间内所完成的工作量。34.用户CPU时间用户CPU时间指真正用于运行用户程序代码的时间。35.时钟周期计算机必须能够产生同步的时钟定时信号,也就是CPU主脉冲信号,其宽度称为时钟周期(Clockcycle、tick、clocktick、clock)。36.主频CPU的主频就是CPU主脉冲信号的时钟频率(ClockRate),是CPU时钟周期的倒数。37.CPICPI(CyclesPerInstruction)表示执行一条指令所需的时钟周期数。38.基准程序基准程序(Benchmarks)是进行计算机性能评测的一种重要工具。基准程序是专门用来进行性能评价的一组程序,能够很好地反映机器在运行实际负载时的性能,可以通过在不同机器上运行相同的基准程序来比较在不同机器上的运行时间,从而评测其性能。39.MIPS指令速度所用的计量单位为MIPS(MillionInstructionPerSecond),其含义是平均每秒钟执行多少百万条指令。40.峰值MIPS选取一组指令组合,使得得到的平均CPI最小,由此得到的MIPS就是峰值MIPS(PeakMIPS)。41.相对MIPS相对MIPS(RelativeMIPS)是根据某个公认的参考机型来定义的相应MIPS值,其值的含义是被测机型相对于参考机型MIPS的倍数。42.MFLOPS与定点指令运行速度MIPS相对应的用来表示浮点操作速度的指标是MFLOPS(MillionFLOating-pointoperationsPerSecond)。它表示每秒所执行的浮点运算有多少百万次,它是基于所完成的操作次数而不是指令数来衡量的。43.GFLOPS浮点操作速度10^9次/s。44.TFLOPS浮点操作速度10^12次/s。45.PFLOPS浮点操作速度10^15次/s。46.EFLOP浮点操作速度10^18次/s。2.简单回答下列问题。(1)冯·诺依曼计算机由哪几部分组成?各部分的功能是什么?1.采用”存储程序“工作方式。2.计算机由运算器、控制器、存储器、输入设备和输出设备五大基本部件组成。3.存储器能存放数据,也能存放指令,在形式上没有区别,但计算机应能区分他们;控制器应能自动执行指令;运算器能进行基本算术和逻辑运算;操作人员可以通过输入/输出设备使用计算机。4.计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。(2)什么是“存储程序”工作方式?必须将事先编好的程序和原始数据送入主存后才能执行程序,一旦程序被启动执行,计算机不需要操作人员干预就能自动完成逐条指令取出和执行的任务。(3)一条指令的执行过程包含哪几个阶段?1.取指令2.指令译码3.PC增量4.取数并执行5.送结果从主从取指令->对指令进行译码->PC增量->取操作数并执行->将结果送至主存或寄存器保存。(4)计算机系统的层次结构如何划分?1.计算机硬件2.指令集体系结构3.操作系统4.语言处理系统5.应用程序(5)计算机系统的用户可分为哪几类?每类用户工作在哪个层次?按照在计算机上完成任务的不同,可以把使用计算机的用户分成以下4类:最终用户、系统管理员、应用程序员和系统程序员。最终用户工作在由应用程序提供的最上面的抽象层系统管理员工作在由操作系统提供的抽象层应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层语言处理系统建立在操作系统之上系统程序员(实现系统软件)工作在ISA层次,必须对ISA非常了解(6)程序的CPI与哪些因素有关??(7)为什么说性能指标MIPS不能很好地反映计算机的性能?MIPS反映了机器执行定点指令的速度,但是,用MIPS来对不同的机器进行性能比较是不准确或不客观的。因为不同机器的指令集不同,而且指令的功能也不同,也许在机器MI上某一条指令的功能,在机器M2上要用多条指令来完成,因此,同样的指令条数所完成的功能可能不同;另外,不同机器的CPI和时钟周期也不同,因而同一条指令在不同机器上所用的时间也不同。3.假定你的朋友不太懂计算机,请用简单通俗的语言给你的朋友介绍计算机系统是如何工作的。4.你对计算机系统的哪些部分最熟悉,哪些部分最不熟悉?最想进一步了解细节的是哪些部分的内容?5.教材中图1.1所示模型机(采用教材图1.2所示指令格式)的指令系统中,除了有mov(op=0000)、add(op=0001)、load(op=1110)和store(op=1111)指令外,R型指令还有减(sub,op=0010)和乘(mul,op=0011)等指令,请仿照教材图1.3给出求解表达式“z=(x-y)*y;”所对应的指令序列(包括机器代码和对应的汇编指令)以及在主存中的存放内容,并仿照教材图1.5给出每条指令的执行过程以及所包含的微操作。参考答案:实现z=(x-y)*y的程序在主存部分单元中的初始内容如下。主存地址主存单元内容内容说明(Ii表示第i条指令)指令的符号表示011100111I1:R[0]←M[7];op=1110:取数操作loadr0,7#100000100I2:R[1]←R[0];op=0000:传送操作movr1,r0211100110I3:R[0]←M[6];op=1110:取数操作loadr0,6#300100001I4:R[0]←R[0]-R[1];op=0010:减操作subr0,r1400110001I5:R[0]←R[0]*R[1];op=0011:乘操作mulr0,r1511111000I6:M[8]←R[0];op=1111:存数操作store8#,r0600010001操作数x,值作数y,值为1800000000结果z,初始值为0实现z=(x-y)*y的程序中每条指令的执行过程如下。指令阶段I1:11100111I2:00000100I3:11100110I4:00100001I5:00110001I6:11111000取指令IR←M[0000]IR←M[0001]IR←M[0010]IR←M[0011]IR←M[0100]IR←M[0101]指令译码op=1110,取数op=0000,传送op=1110,取数op=0010,减op=0011,加op=1111,存数修改PCPC←0000+1PC←0001+1PC←0010+1PC←0011+1PC←0100+1PC←0101+1取数执行MDR←M[0111]A←R[0]、movMDR←M[0110]A←R[0]、B←R[1]、subA←R[0]、B←R[1]、mulMDR←R[0]送结果R[0]←MDRR[1]←FR[0]←MDRR[0]←FR[0]←FM[1000]←MDR执行结果R[0]=1R[1]=1R[0]=17R[0]=17-1=16R[0]=16*1=16M[8]=166.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。程序M1M2指令条数执行时间指令条数执行时间P1200×1061000ms150×106500msP2300×1033ms420×1036ms请回答下列问题:对于P1,哪台机器的速度快?快多少?对于P2呢?在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的CPI各是多少?如果某用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,该选择M1还是M2?为什么?(提示:从性价比上考虑)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?参考答案:如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?(1)对于程序P1,M1上执行时间是M2的2倍,故M2比M1快1倍;对于程序P2,M2上的执行时间是M1的2倍,故M1比M2快1倍。在M1上P1的速度为200M/1s=200MIPS,P2的速度为0.3M/0.003s=100MIPS;在M2上P1的速度为150M/0.5s=300MIPS,P2的速度为0.42M/0.006s=70MIPS。从执行速度来看,对于P2,因为100/70=1.43,所以M1比M2快0.43倍。M1上P1的CPI为1s×800MHz/200M=4;在M2上P1的CPI为0.5s×1.2GHz/150M=4。(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能主要考虑执行时间,其性能为执行时间的倒数,故性价比R为R=1/(执行时间×价格)。R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。对于程序P1,M1的性价比为R1=1/(1s×5000),M2的性价比为R2=1/(0.5s×8000),根据计算,可知R2>R1,故M2的性价比高,应选择购买M2。(5)因为P1和P2需要同等考虑,所以需要考虑综合性能。有多种计算综合性能的方法,如执行时间总和、执行时间算术平均值、执行时间几何平均值等。若用执行时间总和,则M1的性价比为R1=1/(1003ms×5000),M2的性价比为R2=1/(506ms×8000),显然R2>R1,故M2的性价比高,应选择M2。若用算术平均值,则M1、M2上执行时间的算术平均值分别为501.5ms和253ms。因此,M1的性价比为R1=1/(501.5ms×5000),M2的性价比为R2=1/(253ms×8000),显然R2>R1,故M2的性价比高,应选择M2。若用几何平均值,则M1、M2上执行时间的几何平均值都一样,约为54.7。因此,M1的性价比为R1=1/(54.7×5000),M2的性价比为R2=1/(54.7×8000),显然R1>R2,故M1的性价比高,应选择M1。由此可见,用不同的综合性能计算方法得到的结论可能不同。7.若机器M1和M2具有相同的指令集,其时钟频率分别为1GHz和1.6GHz。在指令集中有五种不同类型的指令A~E。下表给出了在M1和M2上每类指令的平均时钟周期数CPI。机器ABCDEM112234M222456请回答下列问题:(1)M1和M2的峰值MIPS各是多少?(2)假定某程序P的指令序列中,五类指令具有完全相同的指令条数,则程序P在M1和M2上运行时,哪台机器更快?快多少?在M1和M2上执行程序P时的平均时钟周期数CPI各是多少?参考答案:(1)计算峰值MIPS时应选择CPI最少的指令,故在M1上可选择一段全部由A类指令组成的程序,其峰值MIPS为1GHz/1=1000MIPS,在M2上可选择一段全部由A类和B类指令组成的程序,其峰值MIPS为1.6GHz/2=800MIPS。(2)对于程序P,每类指令的条数均占1/5,故M1的CPI为(1+2+2+3+4)/5=2.4,M2的CPI为(2+2+4+5+6)/5=3.8。当然,不能根据以上结果说明程序P在M1上运行更快,因为M1和M2的时钟频率不同。假设程序P的指令条数为N,则P在M1上的执行时间为2.4×N×1/1G=2.4N(ns);在M2上的执行时间为3.8×N×1/1.6G=2.375N(ns),因此,M2执行P的速度更快,每条指令平均快0.025ns。从该题可看出,虽然程序P在M1中每条指令执行所用时钟周期数更少,但因为M2的时钟频率更高,使得每条指令的平均执行时间更短。8.假设同一套指令集用不同的方法设计了两种机器M1和M2。机器M1的时钟周期为0.8ns,机器M2的时钟周期为1.2ns。某程序P在机器M1上运行时的CPI为4,在M2上的CPI为2。对于程序P来说,哪台机器的执行速度更快?快多少?参考答案:因为M1和M2实现的是同一套指令集,所以程序P在机器M1和M2上的指令条数相同,假定是N条,则P在M1上的执行时间为4×0.8ns×N=3.2N(ns);P在M2上的执行时间为2×1.2ns×N=2.4N(ns)。由此可知,对于程序P来说,M2的执行速度更快,平均每条指令快0.8ns。9.假设某机器M的时钟频率为4GHz,用户程序P在M上的指令条数为8×108,其CPI为1.25,则P在M上的执行时间是多少?若在机器M上从程序P开始启动到执行结束所需的时间

温馨提示

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

评论

0/150

提交评论