我们先从一道简单的问题说起!
设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小?
如果按字节编址,则
1MB = 220B
1字节=1B=8bit
2
20B/1B = 220
地址范围为0~(2
20)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围大小为2 20=1M
如果按字编址,则
1MB=2
20B
1字=32bit=4B
220B/4B = 218
地址范围为0 ~ 218 -1,也就是说我们至少要用18根地址线才能完成对1MB空间的编码。因此按字编址的寻址范围是218

以上题目注意几点:
1.区分寻址空间与寻址范围两个不同的概念,寻址范围仅仅是一个数字范围,不带有单位
而寻址范围的大小很明显是一个数,指寻址区间的大小
而寻址空间指能够寻址最大容量,单位一般用MB、B来表示;本题中寻址范围为0~(2^20)-1,寻址空间为1MB。

2.按字节寻址,指的是存储空间的最小编址单位是字节,按字编址,是指存储空间的最小编址单位是字,以上题为例,总的存储器容量是一定的,按字编址和按字节编址所需要的编码数量是不同的,按字编址由于编址单位比较大(1字=32bit=4B),从而编码较少,而按字节编址由于编码单位较小(1字节=1B=8bit),从而编码较多。

3.区别M和MB。
M为数量单位。1024=1K,1024K=1M
MB指容量大小。1024B=1KB,1024KB=1MB.

什么是位、字节、字、KB、MB

  位:”位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。

  字节:8个二进制位构成1个”字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说,1个汉字占据2个字节的存储空间。

  字:”字”由若干个字节构成,字的位数叫做字长,不同档次的机器有不同的字长。例如一台8位机,它的1个字就等于1个字节,字长为8位。如果是一台16位机,那么,它的1个字就由2个字节构成,字长为16位。字是计算机进行数据处理和运算的单位。

  KB:在一般的计量单位中,通常K表示1000。例如:1公里= 1000米,经常被写为1km;1公斤=1000克,写为1kg。同样K在二进制中也有类似的含义。只是这时K表示1024,也就是2的10次 方。1KB表示1K个Byte,也就是1024个字节。

  MB:计量单位中的M(兆)是10的6次方,见到M自然想起要在该数值的后边续上六个0,即扩大一百万倍。在二进制中,MB也表示到了百万级的数量级,但1MB不正好等于1000000字节,而是1048576字节,即 1MB = 2E+20 Bytes = 1048576Bytes。
  
  MB就是通常说的兆

  KB 1KB=1024B

  MB 1MB=1024KB

  GB 1GB=1024MB

某机字长为32位,存储容量为64MB,若按字节编址.它的寻址范围是多少?

问题:

1、某计算机字长为32位,其存储容量为16MB,若按双字编址,它的寻址范围是多少?

2、某机字长为32位,存储容量为64MB,若按字节编址.它的寻址范围是多少?

解答:

我的方法是全部换算成1位2进制的基本单元来算。先计算总容量,如第一题中是16mb中,一B为8位,也就是8个一位基本单元组成,16M=224位=224个一位基本单元。所以总的基本单元是2^24*8。

一个字长是n位,就是说一个字是由n个一位基本单元组成。按照字来编址就是说由一个字所包含的一位基本单元的个数作为一个地址单元,它对应一个地址。同理,双字编址就是两个字所包含的的基本单元数作为一个地址单元。由于一个字节(1B)永远是8位,所以按字节编址永远是8个一位基本单元作为一个地址单元。寻址范围就是说总共有多少个这样的地址。

第一题中一个字长是32位,对于按字编址来说一个地址单元有32个基本单元,按双字编址则是一个地址单元有64个,按字节是8个,总容量是224*8个。所以按字编址的地址数是2248/32个,按双字是2^248/64个,按字节是224*8/8个。因此,第一题答案是221=2M。

同理,第二题答案是226*8/8=226=64M。


转载自https://blog.csdn.net/t_1007/article/details/53024491

文章作者: Jason_2k
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 极客卷毛——我的学习经验记录
计算机组成原理
喜欢就支持一下吧