《计算机组成原理》课后题答案 清华大学出版 秦磊华 吴非·· 下载本文

可设计字长为32位,容量为32K的存储器: 0 CPUCS CS CS 32K×8 CS A16 32K×8 32K×8 32K×8 WE WE WE WE A2 WE D0~D31 数据总线 4.5 用32K×8位RAM芯片和64K×4位ROM芯片,设计256K×8位存储器。其中,从30000H到3FFFFH地址空间为只读存储区,其它为可读、可写存储区。完成存储器与CPU连接。 解:只读区域的地址空间为:30000H-3FFFFH,为64K,需要64K×4位ROM芯片2 片,需要32K×8位RAM芯片的片数为:256K-64K/32K=6片 设计如下:存储器的0000H-2FFFFH存储空间为RAM芯片,也就是32K×8位RAM芯片6 片,采用字扩展连接。存储空间30000H-3FFFFH使用64K×4位ROM芯片2片,采用位扩展方式连接。 数据线条数为8条:D0-D7。 地址线的条数为18条:A1-A18,其中A18-A16为片选信号的输入端。 设计图如下: A18 译 A17 ? 码 A16 器 CPU 000 001 010 110或111 011 101 100 CS A15 CS CS CS CS CS CS CS 64K×4 32K×8 32K×8 32K×8 32K×8 32K×8 64K×4 32K×8 ROM RAM RAM RAM RAM RAM ROM RAM WE A1 WE WE WE WE WE WE WE ....... ....... D0~D7 ....... ....... ....... ....... ....... ....... ....... .......

数据总线

4.6某计算机字长16位,主存容量128KW,请用16K×8位的静态RAM芯片和32K×16位的ROM芯片,为该机设计一个主存储器。要求18000H~1FFFFH为ROM区,其余为RAM区。画出存储器结构及其与CPU连接的框图。 解:设计如下:通过简单的计算可知:

地址空间00000H-18000H都是RAM区域(共96KW) 地址空间18000H-1FFFFH为ROM区域(共32KW) 故共使用16K×8位的静态RAM芯片12片 使用32K×16位的ROM芯片1片 数据线条数为16条:D0-D15。 地址线的条数为17条:A1-A17,其中A17-A15为片选信号的输入端。 设计图如下: A17 译 A16 码 A15 器 CPU101 011 100 001 010 000 CS CS CS CS CS A14 CS CS CS CS CS CS CS 16K×8 16K×8 32K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 16K×8 RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM RAM WE WE WE WE WE A1 WE WE WE WE WE WE WE WE D0~D15 数据总线 4.7 假设 CPU 有16根地址线,8根数据线,并用 MREQ作为访存控制信号(低电平有效),用W/R做读/写控制信号(高电平为读,低电平为写),主存地址空间分配如下: 6000H - 67FFH 为系统程序区 6800H - 6BFFH 为用户程序区 现有下列存储芯片:1K*4位RAM,4K*8位RAM,8K*8位RAM,2K*8位ROM,4K*8位ROM,8K*8位ROM及译码器和各种门电路,设计该机的主存系统,并画出CPU与存储器的连接图。 本题略

4.8 用64K×1位的DRAM芯片构成1M×8位的存储器,若采用异步刷新,若每行刷新间隔不超过2ms,则产生刷新信号的间隔是多少时间?若采用集中刷新方式,则存储器刷新一遍最少用多少个读写周期?CPU的死时间为多少?(假定存储器的读写时间为0.5?s)

解:64K×1位的DRAM芯片的排列方式为256行*256列,该存储器中有64K×1位的DRAM芯片128片刷新信号的产生间隔为2ms.

....... ....... ....... ....... ....... ....... ....... ? 110或111 CS 32K×16 ROM .......

将2ms分成256个小段(因为DRAM按行刷新),每个时间段为:7.8125?s,将其中最后0.5?s用于刷新DRAM的一行,即产生刷新信号的时间间隔为7.8125?s.

若采用集中刷新,存储器刷新一遍至少需要256个读写周期,CPU的死时间是256?0.5?s=128?s

则刷新信号的间隔是0.03?s

4.9某动态RAM芯片,容量为64K?1位,除电源线、接地线和刷新线外,该芯片的最小引脚数量是多少?

解:该芯片1位数据线,行选通和列选通各一位,64K的存储器对应16根地址线,在DRAM中,行和列复用,即地址线为8根,故在不考虑电源线的情况下,该DRAM芯片的最小引脚数为1+1+1+8 = 11个。 4.10 有一个具有8个存储体的低位交叉存储器中,如果处理器的访问地址为以下八进制地址值,求该存储器比单体存储器的平均访问速度提高多少?(忽略最初的启动时延) (1)10018,10028,10038 ,…,11008 (2)10028,10048,10068 ,…,12008 (3)10038,10068,10118 ,…,13008 解:假设改存储体的地址空间从00008开始,并且存储周期为T,故有: 三个访问序列访存空间的大小都为64个存储单元,故在不使用低位交叉存储体的情况下访存耗时都为64T。 (1)该访问序列访存如图所示: M0 M1 M2 M3 M4 M5 M6 M7 ... 10008 10108 10208 ... 11008 ... 10018 10118 10218 ... ... 10028 10128 10228 ... ... 10038 10138 ... ... ... 10048 10148 ... ... ... 10058 10158 .. ... ... 10068 10168 ... ... ... 10078 10178 ... ... 则访问该段序列所用时间为T+63*T/8 = 71T/8 故速度提升倍数为:(64T*8)/71T=7.2倍 (2)该访问序列访存如图所示: M0 M1 M2 M3 M4 M5 M6 M7 ... ... 10108 10208 ... 12008 ... ... ... ... ... ... 10028 ... ... ... ... ... ... ... ... ... 10048 ... ... ... ... ... ... .. ... ... 10068 ... ... ... ... ... ... ... ... 则访问该段序列所用时间为3T + 63*2T/8 = 75T/4 故速度提升倍数为:(64T*4)/75T=3.41 (3)该访问序列访存如图所示:

M0 M1 M2 M3 M4 M5 M6 M7

... ... ... ... ... ... ... 10038

... ... ... ... ... 10068 ... ...

... ... 10308 ... ... 13008 10118 ... ... 10418 ... ... 10228 ... ... ... ... ... 10338 ... ... 10148 ... ... 10448 ... ... 10258 ... ... ... ... ... 10368 ... ... 10178 ... ... 10478 ...

则访问该段序列所用时间为4T+ 63*3T/8= 221T/8 故速度提升倍数为:(64T*8)/221T=2.3 4.11 用16K?1位的DRAM芯片构成64K?8位的存储器,设存储器的读写周期为0.5?s,要使CPU在1?s内至少访问存储器一次,问采用哪种刷新方式比较合适?若每行刷新间隔不超过2ms,该方式下刷新信号的间隔是多少? 解:由于要使CPU在1?s内至少访问存储器一次,而存储器的读写周期为0.5?s,故不可采用集中式刷新方式,因为集中是刷新的死时间会超过1?s,从而不可保证CPU在1?s内至少访问存储器一次,故采用异步刷新方式比较合适。 设16K?1位的DRAM芯片采用地址复用后,采用128*128的排列方式,则将2ms分成128个时间段,每段的时间为:2000?s/128=15.625?s,即刷新信号的产生周期为15.625?s 144.12设Cache的容量为2块,每块是一个32位字,主存容量是Cache容量的256倍,其中有如表4.11所示数据(地址和数据均采用16进制表示). 表4.11 主存数据分布情况 地址 000000 000008 010004 01FFFC FFFFF8 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460 将主存中这些数据装入到Cache后, Cache各块中的数据内容及相应的标志是什么? (1)全相联映射 (2)直接相联映射 (3)组相联映射 解:(1)全相联映射 全相联映射方式下,主存的一个数据块可映射到Cache的任意行,表中共有5个地址,数据从主存映射到Cache后占用其中的5行,假设就是Cache的前5行,具体分布如下表所示。 Cache行 0 1 2 3 4 标志 00,0000,0000,0000,0000,0000 (000000H) 00,0000,0000,0000,0000,0010(000002H) 00,0000,0100,0000,0000,0001(004001H) 00,0000,0111,1111,1111,1111(007FFFH) 11,1111,1111,1111,1111,1110(03FFFFEH) 数据 87568536 87792301 9ABEFCD0 4FFFFC68 01BF2460

(2)直接相联映射