1、“计算机的内存是按字节来进行编址” 含义:
就是说一个地址对应二进制的位数是8位,一个字节占8位。可表示数据范围是0-255(0-2^8);
2、存储芯片容量计算方法:
地址线和数据线共同反应存储芯片的容量。
地址线一次确定一个存储单元,地址线上值可能取的所有组合确定了存储单元的个数。所以,存储单元的个数=2^地址线的条数
常说:8K可以用13根地址线实现。因为1K=1024=2^10单位,所以8K=2^13单位,即13根地址线 【注意是K,而不是Kb】
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
地址线:用于传输地址信号,可以指向主存储器的每一个单元。
数据线:用于传输数据,数据信号可传送到各个寄存器,存储器的各个单元,各个端口。
地址线20根,表示能指示2^20个内存单元;
数据线32根,表示通过数据线每次可以传送32位(每根线每次只能传送1位),即4B(32bit= 4*8bit = 4B),4B表示4字节
地址线20,数据线32,所以主存容量为2^20*4B=4MB。
按字节寻址,寻址范围为4MB / 4 = 2^20,注意范围没有单位,标识内存地址范围,即为0~2^20-1
【不是用4MB/8b吗,一字节是8b,为什么要除以4啊?】
默认是按内存单元大小(4B)寻址;按字节寻址,一个内存单元4个字节,标识这四个字节需要占用原有地址额外的后两位(可以分别使用00,01,10,11标识这4个字节);
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
芯片容量=2的地址线位数次方乘以数据线位数;比如地址线8位,数据线4位,芯片容量:2^8×4=1024位
存储容量的定义 :存储容量是指主存能存放二进制代码的总位数
存储器容量计算公式:
按位计算 (b) : 存储容量 = 存储单元个数 x 存储字长
按字节计算(B): 存储容量 = 存储单元个数 x 存储字长 / 8
存储单元 :CPU访问存储器的最小单位,每个存储单元都有一个地址。
存储字长 :存储器中一个存储单元(存储地址)所存储的二进制代码的位数。
例题:一个存储器有16根地址线,8根数据线,求此存储器存储容量?
答:按位求取 2^16 x 8位 =64K x 8位
按字节求取 2^16 x 8位/8 = 64K x B = 64kB
分析:
存储单元与地址线的关系: 我们知道CPU访问存储器的最小单位是存储单元且每个存储单元都有一个地址,1 根地址线可以查找 2 个地址既2个存储单元,16根地址线则可以查找 2^16个存储单元。
存储字长与数据线的关系 : 我们知道存储字长是指存储器中一个存储单元(存储地址)所存储的二进制代码的位数,而二进制代码的位数是由数据线的根数决定的,也就是说: 存储字长 = 数据线根数
字节(B)与位(b)的关系 : 计算机里规定 1Byte = 8bit ,没有为什么就是这样规定定的!!!
所以存储器容量就有;两种表示方法 64K x 8位 = 64KB
我们常见的内存容量表示方法 是以字节为单位的。例如 1GB ,4MB, 512KB
1GB = 10^3MB =10^6KB = 10^9B = 10^9 x 8b
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
3、【问题】某计算机内存按字节编址,内存地址区域从44000H到6BFFFH,共有 160 K字节。 若采用16K×4bit的SRAM芯片,构成该内存区域共需 多少 片?
【回答】实际的存储器总是由一片或多片存储器配以控制电路构成的。其容量为W×B,W表示存储单元(word)的数量,B表示每个单元(word)由多少位(bit)组成。如果一个芯片的规格是a×b,则组成W×B的存储器需要用(W / a)×(B / b)个芯片。
本题中内存片数:(160K / 16K)×(8bit / 4bit) = 20片
【内存地址区域从44000H到6BFFFH,共有 160 K字节,为什么?】 (0x和H符号,都是16进制的表示符号)
16进制:(6BFFF+1 - 44000) H= (6C000 - 44000)H = 28000H (+1是因为要包含6BFFFH这个地址)
转10进制:28000H = 2*16^4 + 8*16^3 + 0*16^2 + 0*16^1 + 0*16^0
= 2*16^4 + 8*16^3
1MB = 2^10KB
1KB = 2^10byte
(2*16^4 + 8*16^3) / 2^10 = 160KB (B就表示题目中的字节)
计算机是按字节寻址,即字节是内存的最小单位
参考博文链接:
https://blog.csdn.net/dingjiawang6/article/details/72860759
https://bbs.csdn.net/topics/391842109