【系统架构设计师】计算机组成与体系结构 ⑤ ( 主存编址计算 | 存储单元 | 内存编址 | 存储单元个数 和 总容量 计算 )

2024-07-14 08:18:53 浏览数 (2)

一、主存编址计算


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

内存总容量 计算 :

总容量 = 存储单元个数 times 编址内容
  • 编址内容 :
    • 按字节编址 , 一个单位 1 字节 8 比特 ;
    • 按 字 编址 , 则一个单位可能是 8 位、16 位、32 位、64 位 大小 ;

内存总容量 计算 2 : 内存 由 多个 存储芯片 组成 , 总容量 还受到 每个存储芯片 容量的限制 ;

总容量 = 存储芯片个数 times 存储芯片容量

4、主存编址案例

内存 按 " 字节 " 进行编址 , 则 每个内存地址 表示 1 字节大小 ;

存储芯片 容量是 8K x 4bit 大小 ;

如果要 使用上述 存储芯片 构成 0x84000H ~ 0x8FFFFH 的内存 , 需要 多少片 存储芯片 ;

H 通常表示十六进制的结尾标识 ;

1. 首先 , 计算存储单元个数 :

存储单元个数 = 最大地址 - 最小地址 1
rm 存储单元个数 = 8FFFFH - 84000H 1
rm 存储单元个数 = 8FFFFH 1 - 84000H
rm 存储单元个数 = 90000H - 84000H
rm 存储单元个数 = C000H

C000H 值转为十进制 就是

12 times 16^3

;

2. 然后 , 计算 总容量 :

总容量 = 存储单元个数 times 编址内容
rm 总容量 = 12 times 16^3 times 8bit

3. 再后 , 计算 单位 存储芯片 的容量 :

存储芯片容量是 8K x 4bit , K 表示

2^{10}

, 总容量大小是

rm 8 times 2^{10} times 4bit

;

  • 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. 最后 , 计算 需要的存储芯片个数 :

根据如下公式计算 :

总容量 = 存储芯片个数 times 存储芯片容量
存储芯片个数 = 总容量 div 存储芯片容量
rm 存储芯片个数 = cfrac{12 times 16^3 times 8bit }{8 times 2^{10} times 4bit}
rm 存储芯片个数 = cfrac{12 times (2^4)^3 times 8bit }{8 times 2^{10} times 4bit}
rm 存储芯片个数 = cfrac{12 times 2^{12} times 8bit }{8 times 2^{10} times 4bit} = 12

最终 , 需要 12 片 存储芯片 ;

0 人点赞