按字寻址与按字节寻址

问:一个16K×32位的存储器,其地址线和数据线的总和是多少?选用如下规格的存储器芯片时,需要多少片?

A.1K×4位芯片     B.4K×8位芯片

解答:

  • 内存的容量有多少,就是用多少个二进制数表示,地址线的条数就是多少根。

         16K是其容量大小,16K=2^14,故地址线14根

  • 数据线指一次传输的数据的宽度,32位的宽度需要用32根数据线

         故总和为14+32=46根。

A.(16K×32)/(1K×4)=16×8=128片

B.(16K×32)/(4K×8)=4K×4=16片

基本概念:

  • 字长 表示机器CPU的处理能力,即CPU在单位时间内能处理的最大二进制数的位数称为字长

     若字长为32位,则1字=32bit=4B,表明存储器一次可以处理4个存储单元,指令长度为4个存储单元。

  •    数据存储的最小单位,一个位的取值只能是0或1
  • 字节(B/Byte)1个字节等于8位,即1Byte=8bit
  • 字  在计算机中,一串数码作为一个整体来处理或运算的,称为一个字。字的位数称为字长;字通常分若干个字节。
  • 存储单元 :CPU访问存储器的最小单位,每个存储单元都有一个地址。
  • 存储字长 :存储器中一个存储单元(存储地址)所存储的二进制代码的位数。
  • 存储容量    存储容量是主存中能存放二进制代码的总位数,即存储容量=存储单元个数*存储字长(每个存储单元的位数),也可用字节总数来表示: 存储容量=存储单元个数*存储字长/8
  • 地址线  存储单元的个数=存储容量=2^地址线的条数 ,一个存储单元占一个字节(1B,也就是8位)。字节用来计量存储容量。

       一个cpu的N根地址总线,则可以说这个CPU的地址总线宽度为N。这样cpu最多可以寻址2^N个内存单元

        若题目中给出存储容量=4GB,则内存容量=4GB=4*(2^30)B=2^32B,一个存储单元占一个字节,故存储单元个数为                      2^32,地址线条数是32根。

  • 数据线 数据线确定存储字长,数据线的条数=字长的位数。
  • 寻址空间与寻址范围

 寻址范围只是一个数字范围,不带有单位,而寻址范围的大小指的是寻址空间的大小,寻址空间指能够寻址的最大容                    量, 单位一般用MB、B来表示。

《计算机组成原理》——唐朔飞 P73

对于24位地址线的主存而言

若字长为32位:①按字节寻址的范围为16M。【2^24B=16M】②按字寻址的范围为4M。【2^24B / 4B = 4M】

若字长为16位:①按字节寻址的范围为16M。【2^24B=16M】②按字寻址的范围为8M。【2^24B / 2B = 8M】

按字节寻址

一组地址线的每个不同状态对应一个字节的地址,存储空间的最小编址单位是字节。

例如,对24位地址线的主存而言(也就是有24根地址线),按字节寻址,每根线有两个状态,那么24根地址线组成的地址信号就有2^24个不同的状态,每个状态对应一个字节的地址空间的话,那么24根地址线的可寻址空间为2^24B,即16MB。

按字寻址

一组地址线的每个不同状态对应一个字的地址,存储空间的最小编址单位是字。

一个字由若干个字节构成,所以计算机在寻址过程中会区分字里面的字节,即会给字里面的字节编址,这样就会占用部分地址线,例如有24根地址线,机器字长为16位,若按字寻址的话,16位=2个字节,需要占用一根地址线用来字内寻址,这样就剩下23根地址线,故按字寻址范围是2^23W(W是字长的意思),也就是8MW。【真正用于按字寻址的地址线只有24-1=23根】

设有一个1MB容量的存储器,字长为32位,问按字节寻址、按字寻址的寻址范围以及各自的寻址范围的大小是多少?

1MB=2^20B   ① 1字节=1B=8b=8位 ②1字=32位=32b=4B

(1)按字节编址

寻址范围:0~(2^20-1),【2^20B / 1B = 2^20】,即需要20根地址线才能完成对1MB空间的编码,即地址寄存器为20位

寻址范围大小:2^20=1M

(2)按字编址

寻址范围:0~(2^18-1),【2^20B / 4B = 2^18】,即至少需要18根地址线才能完成对1MB空间的编码。

寻址范围大小:2^18=256K

NOTE:

  • https://blog.csdn.net/m0_37345402/article/details/83414412 
  • 1K1KB区别。在硬盘等存储上一般认为二者没有区别,都是指大小,但在一些计算题中,1K往往是指由地址线个数(或地址位)直接得出的大小,1KB往往是和机器字长相乘的出的存储器容量大小。
  • 一个16位机,即一个字的字长为16位,因为1字节=8位,故这里一个字由2个字节组成。
  • 一个32位机,即一个字的字长为32位,因为1字节=8位,故这里一个字有4个字节组成。
  • M是数量单位:1024=1K,1024K=1M;  MB是指容量大小:1024B=1KB,1024KB=1MB
  • 机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。
  • 存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
  • 指令字长:计算机中指令字的位数。
  • 数据字长:计算机数据存储所占用的位数。

注:冯诺依曼机中,指令和数据同等重要,都存放在存储器中,并可按地址寻访。

通常早期计算机:存储字长 = 指令字长 = 数据字长。故访问一次便可取一条指令或一个数据,随着计算机应用范围的不断扩大,三者可能各不相同,但它们必须是字节的整数倍。

习题1:若256KB的SRAM(静态随机存取存储器)有8条数据线,则它有多少条地址线?

存储容量=存储单元个数*存储字长(每个存储单元的位数,一般为1B=8b(位))

8条数据总线代表8位,也就是1B,存储容量=存储单元数*存储字长,即存储单元数=256K=2^18,故有18条地址线。

习题2:写出下列RAM芯片片内的地址线和数据线的条数:(1)4K*8位  (2)512K*4位  (3)1M*1位

(1)地址线:12条【4K=2^12】 数据线:8条

(2)地址线:19条【512K=2^19】 数据线:4条

(3)地址线:20条【1M=2^20】 数据线:1条

习题3:设一个具有20位地址和32位字长的存储器,问:

(1)那么该存储器能存储多少个字节的信息?
         2^20次方=1M(1024K),32位字长即为4B(4个字节),故存储器容量为:1M*4B=4MB,即可以存储4M字节的信息。

(2)如果存储器由512K*8位SRAM芯片组成,需要多少片?(512Kx8位,512K表示芯片的寻址范围可以达到512K,8位表示系统数据总线有8位。512Kx8位表示芯片的容量。
        ( 1M×32)/( 512K×8)需要8片  

(3)需要多少地址线做芯片选择?
        512Kx8位的芯片需要19位地址,因此只有1位地址作芯片选择。方法:将4片SRAM芯片位扩展位512Kx32位(地址线19位),再将两组512Kx32位组成整个存储器(1根地址线)。

你可能感兴趣的:(计算机组成原理)