1.设 CPU有16根地址线,8根数据线,用M(-)E(-)Q(-)R(-)表示访存信号(低电平有效),用W(-)R(-)作读/写控制信号(高电平为读,低电平为写),用 16K*8 位的RAM 存储芯片组成该 CPU 最大的存储空间。

(1)一共需要多少存储芯片?

(2)详细描述出存储芯片的片选逻辑图。

正确答案:

(1)CPU最大存储空间为64K×8b216×8b,所以需要416K×8b RAM小芯片。

16K×8b RAM 1

16K×8b RAM 2

16K×8b RAM 3

16K×8b RAM4

(2)

2.设 CPU有 16根地址线(A0~A15),8根数据线(D0~D7),用M(-)E(-)Q(-)R(-)表示访存信号(低电平有效),用W(-)R(-)作读/写控制信号(高电平为读,低电平为写),现有下列存储芯片:4K*8位RAM、4K*4位ROM及74138译码器。CPU与存储器的连接,要求主存地址空间分配:0000H-2FFFH为用户程序区;3000H-3FFFH为系统程序区。

(1)合理选择上述存储芯片,说明各选几片4K*8位RAM和4K*4位ROM,以及每个小芯片的地址范围(用十六进制表达)。

(2)详细描述出存储芯片的片选逻辑图。

(3)如果将4K*4位 ROM小芯片更换为2K*8位ROM小芯片,则片选逻辑有哪些改变?

(1)用户程序区容量为 12Kx8b,所以需要3片4K x 8b RAM 小芯片。地址分别为0000-0FFF,1000-1FFF,2000-2FFF。

系统程序区容量为 4K×8b,所以需要 2片 4K×4b ROM 小芯片。地址均均为3000-3FFF。

4Kx8b RAM 1号

4KX8b RAM2号

4Kx8b RAM 3号

4K×4b

ROM 4号

4K×4b

ROM 5

(2)

(3)需要 2 个2K×8 位的 ROM 小芯片。都要连接 CPU 的地址线 A0~A10,数据线 D0~D7。CPU 的地址线 A11 上要添加一个非门,非门的输入前要连接一个 ROM小芯片,非门的输出后要连接另一个 ROM小芯片。

3.(简答题)

某计算机的cache由64个存储块构成,采用四路组相联映射方式,主存包含4096个存储块,每块由128个字组成,访问地址为字地址。

(1)主存地址和cache地址各有多少位?

(2)按照题干条件中的映射方式,列出主存地址的划分情况,并标出各部分的位数。

正确答案:

(1)主存容量为 4096*128=2^19 字,故主存地址位数为19位。cache容量为 64*128=2^13 字,故 cache地址位数为13位。

(2)每个组中包含4个存储块,共包含 64/4=16=2^4 组,故组地址为4位。由于每块由128个字组成,访问地址为字地址,故块内偏移地址位数为7位。主存标记标记的位数为19-4-7=8位,则主存地址划分情况如下图所示。

主存标记位(8位)

组地址(4位)

块内偏移(7位)

4.(简答题)

有一个计算机,主存容量为220×8bcache容量为212×8b。块大小为16B,按字节寻址。

1)主存地址和cache地址各有多少位?

2)若cache采用直接映射,给出内存地址C0BDE H相对应的主存标记位、cache字块地址、字块内地址。

3)若cache采用四路组映射,给出内存地址A8642H相对应的主存标记位、组地址、字块内地址。

4)假设cache的工作速度是主存的5倍,且cache被访问命中的概率是90%,则采用cache后,存储器的性能提高了多少?

5)当cache存满之后,采用先进先出FIFO算法淘汰cache块,FIFO算法的缺点是什么?

正确答案:

(1)主存块数=220×8b/16B=216  主存地址:一共需要20

主存块号(16位)

块内地址(4位)

缓存块数=212×8b/ 16B=28    缓存地址:一共需要12

缓存块号(8位)

块内地址(4位)

2

主存标记位(16-8=8位)

cache字块地址(8位)

字块内地址(4位)

C0BDE H=1100 0000 1011 1101 1110B

主存标记:1100 0000    cache字块地址:1011 1101    字块内地址:1110

(3)组数=28/4=26

主存标记位(16-6=10位)

组地址(6位)

字块内地址(4位)

A8642 H=1010 1000 0110 0100 0010 B

主存标记:1010 1000 01   组地址:10 0100 字块内地址:0010

4)设cache的存取周期为t,主存的存取周期为5t,则系统的平均访问时间为:

T=0.9×t+1-0.9×5t=1.4t

性能为原来的5t/1.4t=3.57倍,即提高了2.57倍。

(5)先进先出算法不灵活,没有考虑访问内存的动态规律/和进程的执行过程相违背。 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐