一、某机字长为32位,其存储容量为64KB,按字编址其寻址范围是多少?若主存以字节编址,试画出主存字地址的分配情况。

字长为32位,那么每个字就包含:32/8 = 4B(4个字节)
容量64KB,那么就有 64KB/4B = 16K个字(存储单元),其寻址范围就是16K
字地址用高位字节的地址来表示,就是4的整数倍: 0,4,8,···,64K-4
主存字地址的分配情况如下图:
按字编址,


二、一个容量为16K x 32位的存储器,其地址线和数据线的总和是多少?当选用下列不同规格的存储芯片时,各需要多少片?

1K x 4位,2K x 8位,4K x 4位,16K x 1位,4K x8位,8K x 8位

容量为:16K x 32位
那么其

  • 地址线有:2n = 16K => n=14根
  • 数据线有:32位 => 32 根

所以其地址线与数据线的总和为 14 + 32 = 46根
存储器总容量为:16K x 32 = 512K
需要1K x 4位 :512K / (1K x 4) = 128 片
需要2K x 8位 :512K / (2K x 8) = 32 片
需要4K x 4位 :512K / (4K x 4) = 32 片
需要16K x 1位 :512K / (16K x 1) = 32 片
需要4K x 8位 :512K / (4K x 8) = 16 片
需要8K x 8位 :512K / (8K x 8) = 8 片



三、某8位微型计算机地址码为18位,若使用4K x 4位的RAM芯片组成模块板结构的存储器,试问:

(1) 该机所允许的最大主存空间是多少?
(2) 若每个模块板为32K x 8位,共需几个模块板?
(3) 每个模块板内共有几片RAM芯片?
(4) 共有多少片RAM?
(5) CPU 如何选择各模块板?

(1)、地址码18线,机型为8位,所以其存储容量最大为:218 x 8 = 256K x 8 = 2048K
(2)、共需模块板:2048K / (32K x 8) = 8 块
(3)、每个模块板内的芯片:(32K x 8) / (4K x 4) = 256K / 16K = 16 片
(4)、共有RAM:8 x 16 = 128 片
(5)、CUP以地址码最高三位作为模块选择线,次高三位作为芯片选择线(因为机型是8位,而RAM芯片只有4位,所以要进行位扩展,扩展后每个模块板有8组芯片,只需要3位地址码),剩下的12位选择片内地址
在这里插入图片描述


四、设CPU共有16根地址线,8根数据线,并用-MREQ(低电平有效)作访存控制信号,R/W作读/写命令信号(高电平为读,低电平为写)。现有这些存储芯片:ROM(2K × 8位,4K × 4位,8K × 8位),RAM(1K x 4位2K x 8位,4K × 8位)及74138译码器和其他门电路(门电路自定)。(-MREQ表示低电平有效)

试从上述规格中选用合适的芯片,画出CPU和存储芯片的连接图。要求如下:
(1) 最小4K地址为系统程序区,4096-16383地址范围为用户程序区。
(2) 指出选用的存储芯片类型及数量。
(3) 详细画出片选逻辑

(1)、最小4K地址为系统程序区,那么适合使用ROM(只读存储器),地址范围为:0 ~ 4095;
用户程序区适合用RAM(随机存储存取器),地址范围为:4096 ~ 16383。
二进制地址码为:
在这里插入图片描述
原错误图片,点击查看

(2)、系统程序区→2片4K x 4位的ROM,用户程序区→3片4K x 8位的RAM。
(3)、如下图:
RAM地址范围4K,需要用到地址线 2n = 4K => n=12根,所以CPU的低12位地址线(A0 ~ A11)与ROM、RAM相连,A12,A13,A14为片选线,A15与MREQ组成控制线。
在这里插入图片描述
原错误图片,点击查看



五、设主存容量为256K字, Cache容量为2K字,块长为4。

(1) 设计 Cache地址格式, Cache中可装入多少块数据?
(2) 在直接映射方式下,设计主存地址格式。
(3) 在四路组相联映射方式下,设计主存地址格式。
(4) 在全相联映射方式下,设计主存地址格式。
(5) 若存储字长为32位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。

(1)、Cache中可装入数据块:2K / 4 = 211 / 22 = 29 => 512 块
(2)、由于块长为4,所以块内地址有 2b = 4 => b = 2 位
        由于Cache中有29块数据,所以缓存字块地址 c = 9位
        由于主存容量为256K = 218,所以主存的地址总共18位,除去块内地址与缓存字块地址外,还有7位作为主存字块地址,t = 7

地址格式如下:
在这里插入图片描述

(3)、根据四路组相联的条件,一组内有4块,所以Cache需要分为 29 / 22 = 27 =>128 组,组地址需要7位,块内地址不变需要2位,所以主存字块标记剩余18 - 7 - 2 = 9 位

地址格式如下:
在这里插入图片描述

(4)、全相联映射方式下,主存的字块标记为:218 / 22 = 216 => 64K,除去块内地址2位外共16位

地址格式如下:
在这里插入图片描述

(5)、存储字长为32位,那么一个主存容量有:256K x 32 / 8 = 1M = 220
        Cache容量为:2K x 32 / 8 = 8K = 213
        块长为:4 x 32 / 8 = 24
那么直接映射中,主存字块标记:20 - 13 => t = 7,Cache字块地址:13 - 4 => c = 9,字块内地址:24 => b = 4,则有:> 在这里插入图片描述

四路组相联映射中,数据块:29,每组4 (22) 块,那么组地址: 29 / 22 = 27 => q = 7,字块内地址:24 => b = 4,主存字块标记:20 - 7 - 4 => s = 9 则有:
在这里插入图片描述

全相映映射中,字块内地址:24 => b = 4,主存字块标记:20 - 4 => m = 16
在这里插入图片描述

Logo

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

更多推荐