按字寻址与按字节寻址
问:一个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
- 1K和1KB区别。在硬盘等存储上一般认为二者没有区别,都是指大小,但在一些计算题中,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根地址线)。
转载按字寻址与按字节寻址
总结
以上是生活随笔为你收集整理的按字寻址与按字节寻址的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 洛谷P2401 不等数列(线性DP)
- 下一篇: 汉明码的理解