访存地址为字地址,访存地址为字节地址有什么异同?

在这里插入图片描述
题上没有说是按字访问还是按字节访问,并且题上给出的容量是4KB,那么我们默认是按字节访问,那么根据存储容量的公式:存储容量=存储单元个数存储字长(课本P17),那么Cache容量为4KB,即有2^{12}个数据单元,每个数据单元为8位

在这里插入图片描述
注意,访存地址为字,每个字是16位
补充1:
课本P73页讲主存中存储单元地址的分配的时候,介绍了计算机系统可以按字寻址,也可以按字节寻址

按字节寻址,指的是存储空间的最小寻址单位是字节
按字寻址,是指存储空间的最小寻址单位是字
在上面两道例题中:

“假设主存容量为512KB,Cache容量为4KB,每个字块为16个字,每个字为32位”(课本P120页例4.8),那么这里没说访存地址,我们按照其给的容量的格式,默认其是按字节访问,那么块长就是6位,每个字为32/8=4字节,每个字块就有16x4=64字节(就是2^{6}),所以b=6。

“假设主存容量为512K16位,Cache容量为409616位,块长为4个16位的字,访存地址为字”(课本P120页例4.9),那就是按字寻址,块长为4个字,那么块长就是4(2^{2}),那么b就等于2

总结:一般来说,题目上没有明确指定按字编址,那么就默认是按字节编址(一字节8位),如果题目给出的容量是xxxK*xx位,并且说了访存地址为字,那就是按字访问的。

补充2
例4.8中,主存容量为512KB,我们计算主存地址为19位,512K=2^{19}
例4.8中,Cache容量为4KB,我们计算Cache地址为12位,4K=2^{12}
例4.9中,主存容量为512K16位,我们计算主存地址为19位,512K=2^{19}
看上面这三个计算,因为512KB也可以换成512K
8位,那么有的同学就会觉得,是不是我们计算地址长度的时候,就是把存储容量换成xxxK*xx位,然后不管后边的位,只看前边的是2的多少次方就行。是这样吗?

其实不是的,我们看例4.9第四问,主存容量变为512K*32位,如果按照刚才错误的方法,那么主存地址还是19位,512K=2{19}。而这里,主存地址是20位,以为按字访存,一个字是16位,所以我们容量可以改写为1024K*16位,1024K=2{20}。所以,计算存储地址长度,我们要看是按字访存还是按字节访存。
https://blog.csdn.net/holly_Z_P_F/article/details/102680749?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值