6. 某机字长为 32 位,其存储容量是 64KB ,按字编址它的寻址范围是多少?若主存以字节编址,试画出主存字地址和字节地址的分配情况。
解:
按字编址的寻址范围如下:
64K=64*1024*8位,所以64KB/32位=(64*1024*8)/32=16*1024=16K
主存字地址和字节地址的分配情况 :如图。
位是计算机来中数据的最小单位。计算机采用二进制表示和存储数据,1位即1个二进制数0或者1; 字节也是属于数据的单位,与位的换算公式为1字节=8位;一个字等于多少字节是根据字长决定的,当字长为32位时候,则等于的字节是32/8=4个字节(字长即包含的位数),于是上图一个字对应四个字节。;如果字节编址的话则一个字节为一个存储单元,一个存储单元可以存放一个8位二进制数,这个二进制数就是一个存储字。8K个存储单元(地址)中,可以存放8K×8位。这也就是存储容量。拓展:
(1).此题是按照单字编址的,即单字所包含的基本单元的个数作为一个地址单元。单字所包含的基本单元个数即字长.基本单元指的就是位。
此外若
按照字节编址,即字节所包含的基本单元个数作为一个地址单元,则寻址范围为(64*1024*8位)/8位=8K,且表示又8K个存储单元一个字节永远是8位.
计算机按32位字长半字属编址。即半个字所包含的基本单元个数作为一个地址单元,则半字的位数为16位,范围为(64*1024*8位)/16位=32K
计算机按32位字长双字编址。则双字的位数为64位,范围为(64*1024*8位)/64位=8K
(2).地址线24根,如果地址线有24根,并且每根地址线有0、1两位,我们可以从000…000(24位)一直到111…111(24位)。
按字节寻址范围为=16M,这些地址表示存储单元的位置,所以存储单元也有16M个;
若字长32位,则一个字有4个字节,所以要留2根地址线指出该字中的哪个字节[00,01,10,11],即寻址范围为 =4M;
若字长16位,则一个字有2个字节,所以要留1根地址线指出该字中的哪个字节[0,1],即寻址范围为 =8M;
=8bit=1B 2^20B/1B = 2^20 地址范围为0~2^20-1 也就是说至少需要二十根地址线,地址寄存器是用来存放地址的,与存储器容量及编址方式有关,可以简单的认为地址线的个数等于地址寄存器的位数,所以地址寄存器为20位。
2、数据寄存器用来存放CPU在一个存取周期内从存储器中一次性取出为二进制位数,也就是一个机器字长,本题中字长32位,所以数据寄存器为32位。
3、寻址空间。在此需要区分清楚寻址空间与寻址范围两个不同的概念,范围仅仅是一个数字范围,不带有单位,而寻址空间指能够寻址最大容量,单位一般用MB、B来表示;本题中寻址范围为0~2^20-1,寻址空间为1MB。
呵呵,想必是报考计算机专业的研友,如果还不太清楚,可以HI我.
64K字节=64*1024*8位. 所以64KB/32位=(64*1024*8)/32=16*1024=16K 故寻址范围为: 0-16K-1