计算机组成原理【存储系统-主存容量的扩展】

主存容量的拓展

什么是存储容量的拓展?拓展方式有什么?

  • 因为单片存储芯片的容量是有限的,难以满足实际需求,所以需要将若干存储芯片连接在一起才能组成足够容量的存储器
  • 位拓展、字拓展

1 位拓展法

什么是位拓展?什么情况下使用?

//指增加存储字长

//如下所示,这是2片 1K * 4位 的存储芯片,现在可以组成1片 1K * 8位 的存储器

//此时1K表示需要地址总线为10根,4位表示存储字长为4bit

//如果此时CPU的读写的数据大小为8bit,说明此时数据总线的能力并没有发挥到极致,需要进行位拓展,存储字长增加,4bit到8bit

在这里插入图片描述

2 字拓展法

什么是字拓展?

//地址空间的拓展

//如下使用2片 1K * 8位 的存储芯片,可以组成1片 2K * 8位 的存储器

//这里的WE(Write Enable)表示高地址有效,高地址就是写入数据

在这里插入图片描述

3 字位同时拓展法

在这里插入图片描述

//这里每2片16K * 4位为一组,组成1片16K * 8位的存储器,一共有4组这样的存储器,它们组成64K * 8位的存储器

//这样使得CPU的寻址能力大大提升,可以有更多的连续的地址空间做更多的操作


举个栗子
在这里插入图片描述

//为什么存储体的地址是14个0到14个1
//因为存储体的地址总线有14根
---------------------------
//为什么第一片片存储芯片的地址是12个0,到12个1
//因为存储芯片的地址总线有12根
---------------------------
//芯片的前两位是什么
//最高几位通常是用于表示片选线选择第几个存储芯片


在这里插入图片描述

例题

1

某容量为256MB的存储器由若干4M * 8位的DRAM芯片构成,该DRAM芯片的地址引脚和数据引脚总数是多少?

//这道题的关键在于DRAM此存储芯片是地址复用的,行列分两次送入
//此芯片的存储字长为8位,说明需要8根地址总线
-------------------------------
//4MB的容量 = 2*{22},说明这个芯片在没有使用地址复用的情况下需要22根地址线
//这里使用了地址复用,只需要11根地址总线
-------------------------------
地址引脚 + 数据引脚 = 11 + 8 = 19根

2

假定用若干16K × \times × 8位的存储芯片组成一个64K × \times × 8位的存储器,芯片各单元采用交叉编址方式,则地址BFFFH所在的芯片最小地址为多少?

//此题无需进行位拓展,所以考虑字拓展,算出需要多少片芯片
//这里需要4片小的存储芯片,说明译码器使用2-4译码器即可
//16K需要14位二进制位表示地址
-------------------------------
//此时采用交叉编址方法
-------------------------------
//第一片芯片的起始地址
00000000000000 00 (0000H)
11111111111111 00 (FFFCH)
-------------------------------
//第二片芯片的起始地址
00000000000000 01 (0001H)
11111111111111 01 (FFFDH)
-------------------------------
//第三片芯片的起始地址
00000000000000 10 (0002H)
11111111111111 10 (FFFEH)
-------------------------------
//第四片芯片的起始地址
00000000000000 11 (0003H)
11111111111111 11 (FFFFH)
-------------------------------
//由此可看出BFFF所在的芯片最小地址为0003H

3

某计算机使用四体交叉编址存储器,假设在存储器的总线上出现的地址(十进制)序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访问冲突的地址是什么?

//这里是四体交叉编址存储器
存1	存2	存3	存4
0		1		2		3
4		5		6		7
8
-------------------------------
//看这个序列最后一位数
5 6 7 8 //这里对于以上存储器的5678,此时对于四体来说这是合理的并不会冲突
1 2 3 4 //这里也是没有冲突的
0 //发生冲突,因为此时存1正在恢复,还不能进行访问
//所以产生冲突的是8000和8004

4

内存按字节编址,地址从90000H到CFFFFH,若用存储容量为16K × \times × 8位芯片构成该内存,至少需要的芯片数是多少?

//这里的地址起始位置为
1001 0000 0000 0000 0000B
1100 1111 1111 1111 1111B
//该地址可表示的范围为CFFFF - 90000 + 1 = 100 0000 0000 0000 0000B

//为什么是会表示范围需要+1?
//3 ~ 5,可以表示3、4、5,5 - 3 + 1和地址
-------------------------------
//内存按字节编址,1B = 8bit(位)
2^{18} * 8bit
-------------------------------
//需要2^{18} * 8bit / 2^{14} * 8bit = 16片

5

某计算机的存储器总线中有24位地址线和32位数据线,按字编码,字长为32位。如果00 0000H ~ 3F FFFFH为RAM区,那么需要512K × \times × 8位的RAM芯片数位多少?

//此处需要进行字位同时拓展
//位拓展,则得知每组芯片需要4片芯片,接下来就看字拓展需要多少组这样的芯片
-------------------------------
//按字编码,1字 = 4B = 32bit(位)
-------------------------------
3F FFFF - 00 0000 + 1 = 40 0000H
//有22根地址总线
2^{22}  * 32bit / 2^{19} * 8bit = 8 * 4 = 32


资料来自
唐朔飞《计算机组成原理(第二版)》
王道论坛《计算机组成原理考研复习指导》

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值