。 译 A16 。 码 A15 。 器 。 CPU 10 00 01 11 CS CS CS CS A14 32K×8 32K×8 32K×8 32K×8 、、、、、、、、、、 、、 、、、、 、、 、、、、、、、、、、、、 WE WE WE WE A0
WE
D0~D7 数据总线 可设计字长为16位,容量为64K得存储器:
译
。 A16 码 CPU1 0 。 器 CS CS CS CS 32K×8 32K×8 、A15 32K×8 、、、、、32K×8 、、、、、、 、 、、、、、 WE WE WE WE
A1 数据总线 可设计字长为32位,容量为32K得存储器: WE
D0~D15 0
CPUCS CS CS 32K×8 CS A16 32K×8 32K×8 32K×8 、、、、 、、、、 WE 、、、 、 WE WE WE A 2
WE
数据总线 芯片,设计256K×8位存储器。其中,从 D~D831 位RAM芯片与64K×4、5 用32K0×4位ROM30000H到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 码器 ? A CPU000 001 010 110或111 011 101 100 CS 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 WE WE WE WE WE WE
数据总线 K×8位得静态RAM芯片与32K×4、6某计算机字长16位,主存容量128KW,请用16
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 110或111 011 100 001 010 000 CS CS CS CS CS CS CS CS CS CS CS CS CS 16K×8 16K×8 32K×8 16K×8 16K×8 A14 16K×8 8 、、16K×8 、、16K×8 、、16K×32K×16 8 、、16K× 、、、、16K×16K×8 8 、、、、RAM 、、RAM 、、RAM 、、、、、、RAM 、、RAM 、、 RAM 、、、、RAM 、、RAM 、、RAM ROM 、、、、RAM RAM 、、RAM 、、、、WE WE WE WE WE WE WE WE WE WE WE WE A1
WE 数据总线4、7 假设 CPU 有16根地址线,8根数据线,并用 MREQ作为访存控制信号(低电平 D0~D15 有效),用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、
将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
、、、 1 1 1 、、、 11008 、、、 、、、 、、、 128 228 、、、 、、、 1 、、、 、、、 、、、 48 、、、 、、、 、、、 1 58 、、 、、、 、、、 、、、 、、、 、、、 078 、、、 、、、 10168 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
、、、 、、、 、、、 、、、 10308 、、、 、、、 13008 、、、 、、、 10118 、、、 、、、 10418 、、、 、、、 、、、 、、、 10228 、、、 、、、 、、、 、、、 10038 、、、 、、、 10338 、、、 、、、 、、、 、、、 10148 、、、 、、、 10448 、、、 、、、 、、、 、、、 10258 、、、 、、、 、、、 、、、 10068 、、、 、、、 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
14
4、12设Cache得容量为2块,每块就是一个32位字,主存容量就是Cache容量得256倍,其中有如表4、11所示数据(地址与数据均采用16进制表示)、
表4、11 主存数据分布情况
地址 000000 000008 010004 01FFFC FFFFF8 数据 9ABEFCD0 4FFFFC68 01BF2460 将主存中这些数据装入到Cache后, Cache各块中得数据内容及相应得标志就是什么? (1)全相联映射 (2)直接相联映射 (3)组相联映射 解:(1)全相联映射
全相联映射方式下,主存得一个数据块可映射到Cache得任意行,表中共有5个地址,数据从主存映射到Cache后占用其中得5行,假设就就是Cache得前5行,具体分布如下表所示。
Cache行 标志 0 00,0000,0000,0000,0000,0000 (000000H) 1 00,0000,0000,0000,0000,0010(0数据 2 3 4 00002H) 00,0000,0100,0000,0000,0001(004001H) 00,0000,0111,1111,1111,1111(007FFFH) 11,1111,1111,1111,1111,1110(03FFFFEH) 9ABEFCD0 4FFFFC68 01BF2460 (2)直接相联映射
该方式下,主存得一个数据块只能射到Cache得特定行,表中共有5个地址,数据从主存映射到Cache后占用其中得特定得5行.由于一个数据块为32位,即4B,所以,只需要用主存地址得最后2位表示块内偏移地,由于Cache有16K行,所有,去掉最后2位地址后得连续14位就表示主存数据块映射到得Cache行,剩余得8位即为对应得标志、具体分布如下表所示。 Cache行 00 0000 0000 0000(0000行) 00 0000 0000 0010(0002行) 00 0000 0000 0001(0001行) 11 1111 1111 1111(03FFF行) 11 1111 1111 1110(03FFE行) 标志 0000 0000 0000 0000 0000 0001 0000 0001 1111 1111 数据 9ABEFCD0 4FFFFC68 01BF2460 (3)组相联映射:(假设采用得就是四路组相联1)
该方式下,主存得一个数据块只能射到Cache得特定组中得任意行,假定Cache采用四路组相联,则Cache共分为4K组。由于一个数据块为32位,即4B,所以,只需要用主存地址得最后2位表示块内偏移地,由于Cache有4K组,因此,去掉最后2位地址后得连续12位就表示主存数据块映射到得Cache组,剩余得10位即为对应得标志、具体分布如下表所示。
Cache组 标志 0000 0000 0000(000组任意00 0000 000行) 0 0000 0000 0010(002组任意行) 00 0000 0000 0000 0000 0001(001组任意行) 00 0000 0100 1111 1111 1111(0FFF组任意行) 00 0000 0111 1111 1111 1110(0FFE组任意11 1111 1111 行) 数据 9ABEFCD0 4FFFFC68 01BF2460 4、13 某计算机Cache由64个存储块构成,采用四路组相联映射方式、主存包含4096个存储块,每块由128个字组成、访问地址为字地址、 (1)求主存地址与Cache地址各有多少位?
(2)按照题目条件中得映射方式,列出主存地址得划分情况,并标出各部分得位数、 解:(1)主存容量为:4096*128=512KW 故主存地址位数为:19位 Cache容量为:64*128=8KW 故Cache地址位数为:13位 (2)每个组中包含得存储块得个数为:4块 故索引字段(Index)位数为:2位
由于每块由128个字组成、访问地址为字地址,故块内地址得位数为:7位 故标记部分(Tag)得位数为:10位 则主存地址划分情况如下: