一、主存编址计算
1、存储单元
存储单元 概念 :
- 最小存储单位 : 1 bit 是 计算机中最小的 容量单位 , 只能表示 0 或 1 ;
- 存储单元 : 在 存储器 中 , 查找 1 bit 是比较困难的 , 这里 将 比特位 进行分组 , 每组称为一个存储单元 , 最常见的存储单元就是 1 Byte 字节 , 每个字节中包含 8 bit ;
- 内存编址单位 : 存储单元 就是 内存地址 编址的最小单位 , 地址 0x0000 表示 0 地址位置的 1 字节数据空间 , 有 8 位 ;
2、内存编址
按 字节 进行编址 : 主存 就是 内存 , 内存中的 每个字节 ( 存储单元 ) 都有一个唯一的地址 ;
- 编址内容 : 内存中 会为 每个字节 进行编址 , 每个地址单位表示 1 Byte = 8 bit 大小的内存空间 , 地址单位增加 1 , 表示 内存空间 中 向前移动了 1 字节 ;
- 字节单位 : 内存以 字节 为单位寻址 , 即 每个 地址 指向 一个字节 ; 例如,地址 0x0000 地址指向 内存中的 第一个字节 , 0x0001 地址 指向 内存中的 第二个字节 ;
- 地址表示 : 内存地址 以 十六进制 数表示 , 如 : 0x0000 到 0xFFFF ;
- 地址空间 : 内存的大小由 地址空间 决定 , 如 : 32 位操作系统的地址空间为 0x00000000 到 0xFFFFFFFF ;
- 偏移量和基址 : 实际编程中 , 使用 偏移量 来访问内存中的特定位置 ; 如 : 在汇编语言中 , 可以使用基址寄存器加上偏移量来计算实际的内存地址 ;
按 字 进行编址 : 一个字可能是 8 位、16 位、32 位、64 位 , 一个 字 给一个地址编号 ;
- 字宽度 : 计算机体系结构 中 定义了 字 的宽度 , 字宽度 影响到 每个地址 访问的数据量 ;
3、存储单元个数 和 总容量 计算
存储单元个数 计算 :
内存总容量 计算 :
- 编址内容 :
- 按字节编址 , 一个单位 1 字节 8 比特 ;
- 按 字 编址 , 则一个单位可能是 8 位、16 位、32 位、64 位 大小 ;
内存总容量 计算 2 : 内存 由 多个 存储芯片 组成 , 总容量 还受到 每个存储芯片 容量的限制 ;
4、主存编址案例
内存 按 " 字节 " 进行编址 , 则 每个内存地址 表示 1 字节大小 ;
存储芯片 容量是 8K x 4bit 大小 ;
如果要 使用上述 存储芯片 构成 0x84000H ~ 0x8FFFFH 的内存 , 需要 多少片 存储芯片 ;
H 通常表示十六进制的结尾标识 ;
1. 首先 , 计算存储单元个数 :
C000H 值转为十进制 就是
;
2. 然后 , 计算 总容量 :
3. 再后 , 计算 单位 存储芯片 的容量 :
存储芯片容量是 8K x 4bit , K 表示
, 总容量大小是
;
- K : 表示 2 的 10 次方 , 即 1024 ;
- 1K = 1024 字节 ;
- M : 表示 2 的 20 次方 , 即 1024 的平方 , 即 1,048,576 ;
- 1M = 1024K = 1,048,576 字节 ;
- G : 表示 2 的 30 次方 , 即 1024 的立方 , 即 1,073,741,824 ;
- 1G = 1024M = 1,073,741,824 字节 ;
4. 最后 , 计算 需要的存储芯片个数 :
根据如下公式计算 :
最终 , 需要 12 片 存储芯片 ;