问:一个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片
基本概念:
若字长为32位,则1字=32bit=4B,表明存储器一次可以处理4个存储单元,指令长度为4个存储单元。
一个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:
注:冯诺依曼机中,指令和数据同等重要,都存放在存储器中,并可按地址寻访。
通常早期计算机:存储字长 = 指令字长 = 数据字长。故访问一次便可取一条指令或一个数据,随着计算机应用范围的不断扩大,三者可能各不相同,但它们必须是字节的整数倍。
习题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根地址线)。