计组的一些盲区

计组盲区

先来看一道题目

某计算机字长32位,存储容量是8MB,若按字编址,它的寻址范围是?

分析
字长为32位,存储容量是8MB,也就是8*1024*1024个字节,相当于8*1024*1024*8位,然后除以2^5(因为一个字长是32位),得到的结果是2*1024*1024位,但是要再除以8, 等于256*1024个字节,所以最后是256MB,即寻址范围是0~2M-1,为什么要减1呢,因为地址是从0开始计算的。

按字编址和按字节编址

设一个1MB容量的存储器,字长为32位,问:
1)按字节编址,地址寄存器和数据寄存器各几位?
2)按字编址,地址寄存器和数据寄存器个各位?

解答
1MB = 1*1024*1024 B(字节)
1.如果是按照字节编址,1*1024*1024 * 8 bit(位) 所以数据寄存器是8位, 地址寄存器是 20位

  1. 如果是按照字编址, 1 * 1024 * 1024 B 因为一个字长是32位,先计算可寻址空间, 字长32位是四个字节, 所以可寻址空间是 2^8 * 2^10 B 也就是256 KB,所以数据寄存器是 32 位, 地址寄存器是 18位
下面这段话挺有道理的

每个字节都是8位,也就是1B大小,每个字大小是由题目给的,一般有16位,也就是2B,32位,4B。
而存储器容量是怎么算出来的呢
先拿房子举例,你有N个房子,每个房子B立方米这么大,那么,你的房子容量总共有多大,自然是NB立方米了。
但要是有人规定,两个房子才算一个房子,才给一个房间号呢,那么,你的房子容量怎么算啊,自然是N/2在乘以2B了。
有人要是规定四个房子才算真正一个房子,才给一个房间号,那么,你的房子容量怎么算,自然是N/4在乘以4B了。

所以,房子总容量是有限的,四个房子给一个地址号,那么,总共就只有N/4个号,也就是地址范围就这么多 。

你可能感兴趣的:(计组的一些盲区)