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






一、主存编址计算




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 存储单元个数 = 最大地址 - 最小地址 + 1 存储单元个数=最大地址最小地址+1


内存总容量 计算 :

总容量 = 存储单元个数 × 编址内容 总容量 = 存储单元个数 \times 编址内容 总容量=存储单元个数×编址内容

  • 编址内容 :
    • 按字节编址 , 一个单位 1 字节 8 比特 ;
    • 按 字 编址 , 则一个单位可能是 8 位、16 位、32 位、64 位 大小 ;

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

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


4、主存编址案例


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

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

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

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


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

存储单元个数 = 最大地址 − 最小地址 + 1 存储单元个数 = 最大地址 - 最小地址 + 1 存储单元个数=最大地址最小地址+1

存储单元个数 = 8 F F F F H − 84000 H + 1 \rm 存储单元个数 = 8FFFFH - 84000H + 1 存储单元个数=8FFFFH84000H+1
存储单元个数 = 8 F F F F H + 1 − 84000 H \rm 存储单元个数 = 8FFFFH + 1 - 84000H 存储单元个数=8FFFFH+184000H
存储单元个数 = 90000 H − 84000 H \rm 存储单元个数 = 90000H - 84000H 存储单元个数=90000H84000H
存储单元个数 = C 000 H \rm 存储单元个数 = C000H 存储单元个数=C000H

C000H 值转为十进制 就是 12 × 1 6 3 12 \times 16^3 12×163 ;


2. 然后 , 计算 总容量 :

总容量 = 存储单元个数 × 编址内容 总容量 = 存储单元个数 \times 编址内容 总容量=存储单元个数×编址内容

总容量 = 12 × 1 6 3 × 8 b i t \rm 总容量 = 12 \times 16^3 \times 8bit 总容量=12×163×8bit


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

存储芯片容量是 8K x 4bit , K 表示 2 10 2^{10} 210 , 总容量大小是 8 × 2 10 × 4 b i t \rm 8 \times 2^{10} \times 4bit 8×210×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 存储芯片容量 存储芯片个数=总容量÷存储芯片容量

存储芯片个数 = 12 × 1 6 3 × 8 b i t 8 × 2 10 × 4 b i t \rm 存储芯片个数 = \cfrac{12 \times 16^3 \times 8bit }{8 \times 2^{10} \times 4bit} 存储芯片个数=8×210×4bit12×163×8bit

存储芯片个数 = 12 × ( 2 4 ) 3 × 8 b i t 8 × 2 10 × 4 b i t \rm 存储芯片个数 = \cfrac{12 \times (2^4)^3 \times 8bit }{8 \times 2^{10} \times 4bit} 存储芯片个数=8×210×4bit12×(24)3×8bit

存储芯片个数 = 12 × 2 12 × 8 b i t 8 × 2 10 × 4 b i t = 12 \rm 存储芯片个数 = \cfrac{12 \times 2^{12} \times 8bit }{8 \times 2^{10} \times 4bit} = 12 存储芯片个数=8×210×4bit12×212×8bit=12


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

  • 24
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值