首先计算机内是按8位1字节的方式编织,(书上也说了,一个存储单元必须是8的倍数)然后一个存储单元里面可能有存放多个字节。行对应的就是它的行号(字地址),列就是(字节地址)。这里行内可以存放多少个字节就看的是数据线了。但是寻址如果是按字节寻址,就不需要考虑数据线的根数,因为里面已经按字节编织了。(比如32位数据线,那么行内就可以存放32/8=4个字节,需要用4个数来分辨行内地址,比如00,01,10,11)
解题:
-
首先地址线20根,如果按字节访问(寻址),每个存储单元里面的单元已经是最小单元了,所以就不用分了,就是2^20也就是1M。
-
重点:如果是按字寻址,那么它需要考虑内地址,也就是一个存储单元里面每个字节的地址,拿这道题来说,它不是16根吗,所以它里面就有2个字节,需要1位二进制位来表示,0代表第一个,1代表第二个,所以就从地址线里面就分出去了一个位数用来寻字内地址的,所以如果按字寻址,那么就是2^20 / 2 = 2^19 = 512K
同时还有其他的题目,比如直接给出了存储器的容量,那么此类问题就可以直接用容量除对应的寻址方式就行(比如存储容量1MB,用双字节寻址 那么范围就是 8Mbit/64bit = 128K)