第五章 计算机科学导论(第四版)-- 习题答案 [贝赫鲁兹*佛罗赞]

Q5-1 计算机由哪三个子系统组成?

        A:中央处理器;主存储器;输入/输出设备

Q5-2 CPU由哪几个部分组成?

        A:寄存器;算数逻辑单元(ALU);控制单元

Q5-3 ALU的功能是什么?

        A:ALU(算术逻辑单元),负责算数、移位和逻辑运算

Q5-4 控制单元的功能是什么?

        A:控制CPU中每个部分的操作

Q5-5 主存的功能是什么?

        A:存储程序与指令,并与CPU和输入/输出设备进行数据交换

Q5-6 定义RAM、ROM、SRAM、DRAM、PROM、EPROM、EEPROM。

        A: RAM:随机存取存储器,可以使用存储单元地址来随机存取一个数据项,而不需要存取位于它前面的所有数据项,但系统断电后,数据将会丢失。

            ROM:只读存储器,用户只能读不能写,其内容由制造商写入,但切断电源后,数据也不会丢失。

            SRAM:静态RAM,技术使用传统的触发器门电路,通电时数据始终存在,不需要刷新,SRAM速度快,但价格昂贵。

            DRAM:动态RAM,技术使用电容器,充电状态为1,放电状态为0,内存单元需要周期性的刷新,DRAM比较慢,但是比较便宜。

            PROM:可编程只读存储器,用户需要借助一些特殊的设备将程序存储在该存储器上,当程序被存储后,其就会像ROM一样不能够重写。

            EPROM:可擦除可编程只读存储器,对其擦写必须用一种可以发出紫外光的特殊仪器,擦除需要从计算机上拆下。

            EEPROM:电可擦除可编程只读存储器,对其的编程和擦除用电子脉冲即可,无须从计算机上拆下来。

Q5-7 高速缓冲存储器的作用是什么?

        A:高速缓冲存储器的存取速度比主存快,但比CPU及其内部的寄存器要慢,其常置于CPU与主存之间,用来存储主存中一部分内容的副本,CPU在读取主存内容时,会先考虑从高速缓冲存储器中读取,以此来提高计算机运算速度。

Q5-8 描述一下磁盘的物理组成。

        A: 物理组成:磁带盘/收起盘、磁带、读/写头三部分组成,磁带盘与收起盘用于存放与收卷磁带,磁带用于存储信息,读/写头用于从磁带上读写信息。

Q5-9 磁盘和磁带表面是怎样组织的?

        A: 磁带表面结构:磁带宽度可分为9个磁道,磁道上每个点存储1位信息,垂直切面的9个点存储8位信息,1位用于错误检测。磁带表面分为若干块,但没有寻址装置,只能顺序存取。

            磁盘表面结构:磁盘表面被划分成磁道,每个磁道又分成若干个扇区,磁道之间通过磁道间隔隔开,扇区之间通过扇区间隔隔开,数据项可以随机存取,读取的最小存储区域只能是一个扇区,数据块可以存储在一个或多个扇区上。      

Q5-10 比较分析CD-R、CD-RW和DVD。

        A:CD的主要原理:使用高能激光束在塑料盘面上刻写一系列坑和纹间表面代替位模式,再在塑料盘面上覆盖一层反射层,利用坑和纹间表面产生的反射光信号不同来存储信息。

           CD-R:可刻录光盘,可以一次写入,多次读取,反射层材料采用金,采用激光烧制染料替代CD-ROM的凹坑与纹间表面,激光烧制染料产生的深色点模拟坑,未烧制区域模拟纹间表面。

           CD-RW:可重写光盘(可擦写光盘),使用银、铟、锑和碲的合金替代CD-R中的染料,使用高能激光束刻写,中等能量激光束擦除。

           DVD:数字多功能光盘,使用MPEG压缩技术,存储容量更大,为达到更大容量,采用了以下技术:1.相对CD中0.8um的坑,使用了0.4um的。2.磁道间排布更为紧密。3.使用红激光代替红外激光。4.DVD使用1~2个存储层并且可以是单面或双面的。

Q5-11 比较分析SCSI、火线和USB控制器。

        A: SCSI:小型计算机系统接口,为8、16或32线的并行接口,其提供了菊花链连接,连接链两端都必须有终结器,且每个设备必须要有唯一的地址。

            火线:高速串行接口,IEEE标准1394规定的串行接口,数据采用数据包形式传送,不需要终结器,在一条菊花链或树形连接(只用一根线)上可以连接多达63个设备。

            USB控制器:通用串行总线控制器,多个设备通过组成树状拓扑结构连接到USB根集线器上,支持热交换,数据以包的形式传输。

Q5-12 比较分析两种I/O设备寻址的方法。

        A:1.I/O独立寻址:在I/O独立寻址中,用来读/写内存的指令与用来读/写输入/输出设备的指令是完全不同的。有专门的指令完成对输入/输出设备的测试、控制以及读写操作,每个输入/输出设备有自己的地址。

            2.I/O存储器映射寻址:在此方法中,CPU将输入/输出控制器中的每一个寄存器都看做内存中的某个存储字。CPU没有单独的指令用来表示是从内存或是从输入/输出设备传送设备。优点在于有一个较小的指令集,但输入/输出控制器占用了一部分的内存地址。

Q5-13 比较分析三种同步CPU和I/O设备的方法。

        A:1.程序控制输入/输出:CPU等待I/O设备,CPU和I/O设备之间的数据传输是通过程序中的指令实现的,当CPU遇到一条I/O指令时,它就停止工作直到数据传输完毕,CPU不时地查询I/O设备的状态,直到设备做好传输准备。数据在输入操作后被传送到内存,在输出操作前则是从内存中取出。

           2.中断控制输入/输出:当I/O设备准备好传输数据时,他通知(中断)CPU,在这过程中,CPU可以做其他工作,并不需要不停查询I/O设备的状态。数据在输入操作后被传送到内存,在输出操作前则是从内存中取出。

           3.直接存储器存取(DMA):此方法用于在高速I/O设备间传输大量的数据块,如磁盘、内存(不需要通过CPU的数据传输)。该方法存在一个DMA控制器,控制器内存在寄存器,用于在内存传输前后保存数据块。当准备好传输数据时,由DMA控制器通知CPU获取总线使用权,在内存和DMA间数据传输完成后,CPU继续正常工作。

Q5-14 比较分析CISC体系结构和RISC体系结构。

        A:CISC体系结构:复杂指令集计算机,使用大量指令,在程序设计方面相对容易,不需要编写一大堆指令完成一项复杂的任务,但指令集的复杂度使得CPU和控制单元的电路非常复杂。

           RISC体系结构:精简指令集计算机,使用少量的指令完成最少的简单操作,复杂指令用简单指令子集模拟,但在程序设计方面比其他设计更难、更费时。

Q5-15 描述流水线及其作用。

        A:流水线允许属于不同指令的不同阶段同时执行,以此来提高计算机吞吐量,充分利用CPU各个部分的功能。

Q5-16 描述并行处理及其作用。

        A:在计算机拥有多个控制单元、多个算术逻辑单元和多个内存单元时,各个单元像流水线一样,同时运行,以此来提高计算机的吞吐量,提升计算机的性能。

P5-1        26 - 2 = 24 bit

P5-2        24 * 80 Bytes

P5-3        4 + 10 + 4 = 18 bits(add : 4bits ; M : 10bits ; R2 : 4bits)

P5-4        18 bits

P5-5        指令寄存器:存储指令,18bits

P5-6        程序计数器:存储指令地址,10bits

P5-7        数据总线:传输指令与数据,18bits

P5-8        地址总线:10bits

P5-9        控制总线:4bits

P5-10      地址总线宽度保持一定,总线宽度为10bits,控制器数量:1024 / 16 = 64

P5-11      I/O存储器地址数量:2^10 - 1000 = 24,四位寄存器控制器数量:24 / 4 = 6  

P5-12      1)从键盘读取数据A,并存入内存M40;(1FFE)16,(240F)16

                2)从键盘读取内存,并存入内存M41;(1FFE)16,(241F)16

                3)从键盘读取内存,并存入内存M42;(1FFE)16,(242F)16

                4)将数据A从内存读取至寄存器R0;(1040)16

                5)将数据B从内存读取至寄存器R1;(1141)16

                6)运算A+B并将结果存入寄存器R2;(3201)16

                7)将数据C从内存读取至寄存器R3;(1342)16

                8)将A+B的结果与数据C相加运算后将结果存入寄存器R4;(3423)16

                9)将A+B+C的结果从寄存器写入内存M43;(2434)16

                10)将结果输出至监视器FF上;(1F43)16,(2FFF)16

                11)停机;(0000)16

P5-13      1)从键盘读取数据A,并存入内存M40;(1FFE)16,(240F)16

                2)将数据A从内存读取至寄存器R0;(1040)16

                3)INC指令,使数据A递增1;(A000)16

                4)INC指令,使数据A继续递增1;(A000)16

                5)INC指令,使数据A再递增1;(A000)16

                6)将结果写入内存M41;(2410)16

                7)从内存将数据结果输出至显示器FF上;(1F41)16,(2FFF)16

                8)停机;(0000)16

P5-14      1)从键盘读取数据A,并存入内存M40;(1FFE)16,(240F)16

                2)将数据A从内存读取至寄存器R0;(1040)16

                3)DEC指令,使数据A递减1;(B000)16

                4)DEC指令,使数据A继续递减1;(B000)16

                5)将结果写入内存M41;(2410)16

                6)从内存将数据结果输出至显示器FF上;(1F41)16,(2FFF)16

                7)停机;(0000)16

P5-15      1)从键盘读取数据1至寄存器R0;(10FE)16

                2)从键盘读取n值至寄存器R1;(11FE)16

                3)从键盘读取第一个整数,并存入内存M40;(1FFE)16,(240F)16

                4)将内存M40的数据读取至寄存器R2;(1240)16

                5)DEC指令,n的值减1,R1=R1-1;(B100)16

                6)从键盘读取下一个整数值至寄存器R3;(13FE)16

                7)将整数R2与下一个整数值相加R4=R2+R3;(3423)16

                8)将相加的结果从寄存器R4存入至内存M40;(2404)16

                9)jump指令,判断R0=R1?

                      如果不等于,返回第四步;如果等于,则按顺序进入下一步;(D140)16

                10)将结果从内存输出至监视器;(1F40)16,(2FFF)16

                11)结束;(0000)16

P5-16      1)将数据0存入寄存器R0(即将寄存器R0所有位置零);(6100)16,(7001)16

                2)从键盘读取第一个整数并存入内存M40;(1FFE)16,(240F)16

                3)从键盘读取第二个整数并存入内存M41;(1FFE)16,(241F)16

                4)将第一个整数读取至寄存器R1;(1140)16

                5)将第二个整数读取至寄存器R2;(1241)16

                6)jump指令,判断R1=R0=0?

                        如果不等于,返回第10步;如果等于,则按顺序进入下一步;(D1A0)16

                7)INC指令,将寄存器R2的值+1,R2 = R2 + 1;(A200)16

                8)将计算结果R2保存至内存并输出至显示器;(2432)16,(1F43)16,(2FFF)16

                9)结束;(0000)16

                10)DEC指令,将寄存器R1的值-1,R1 = R1 - 1;(B100)16

                11)jump指令,判断R1=R0=0?

                        如果不等于,返回第14步;如果等于,则按顺序进入下一步;(D1E0)16

                12)DEC指令,将寄存器R2的值-1,R2 = R2 - 1;(B200)16

                13)将计算结果R2保存至内存并输出至显示器;(2432)16,(1F43)16,(2FFF)16

                14)结束;(0000)16

备注:P5-15与P5-16题目中关于jump指令的部分,如果不等于,返回的步数为半括号的位置(即程序的说明部分),不是实际程序代码的位置。

                

  • 9
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值