处理器架构 (六.1) armv4v5v6 架构参考手册(2.1) 存储金字塔及速度

最新存储金字塔架构

在这里插入图片描述

存储金字塔v1及速度

Instruction cycle timings 在 TRM 中 有表述
Size of caches/TLBs	在 TRM 中 有表述

内存金字塔是按照 Ln 划分的
一开始没有 cache
L0 寄存器			访问速度 	xns // 比如 ADD{<cond>}{S} <Rd>, <Rn>, <shifter_operand> 该指令周期为1个时钟周期,如果主频1Ghz,可以1ns就可以搞定.
L1 Main memory 		访问速度	100ns

对于Cortex M0 M3 M4的我知道可以在其《技术参考手册》>  程序员模型 >指令集摘要里面查看,但是到了M7,他告诉我去ARM-V7-M的手册中找

为了给大家一个直观的印象,我们把CPU的一个时钟周期看作一秒。
那么,从L0 register 读信息就是1s
从L1 cache读取信息就好像是拿起桌上的一张草稿纸(3秒);
从L2 cache读取信息则是从身边的书架上取出一本书(14秒);
而从主存中读取信息则相当于走到办公楼下去买个零食(4分钟).


L1 L2 L3 cache 就是 On-chip-memory ,  也就是 on-chip-ram
https://www.zhihu.com/question/20075426

DRAM DDR DDR3 DDR4 DDR5

存储金字塔v2及速度

以上很多资料里面对 write buffer 的描述 是 缓解 对 磁盘的 冲击,但是 arm核心架构中提到的 write buffer 是 环节 对 主存的冲击.

  • 实际情况
CPU register的速度一般小于1ns,主存的速度一般是65ns左右。速度差异近百倍。
因此,上面举例的3个步骤中,步骤1和步骤3实际上速度很慢。

当CPU试图从主存中load/store 操作时,由于主存的速度限制,CPU不得不等待这漫长的65ns时间。
  • 愿景与困难
如果我们可以提升主存的速度,那么系统将会获得很大的性能提升。


如今的DDR存储设备,动不动就是几个GB,容量很大。
如果我们采用更快材料制作更快速度的主存,并且拥有几乎差不多的容量。
其成本将会大幅度上升。我们试图提升主存的速度和容量,又期望其成本很低,这就有点难为人了。
  • 解决方案

因此,我们有一种折中的方法,那就是制作一块速度极快但是容量极小的存储设备。那么其成本也不会太高。这块存储设备我们称之为cache memory。

cache 并不是说 等待 cpu 获取主存数据时才去获取内存数据,而是根据一些策略去获取主存数据.

相当于 cache 一直从 主存拿数据与指令,然后cpu 一直从cache 拿数据与指令.

然后实际性能完全能够

  • 解决方案效果

Cache 的命中率除了与 Cache 的容量有关外,还与地址映象的方式有关。

目前, Cache 存储器容量主要有 256KB 和 512KB 等。这些大容量的 Cache

存储器,使 CPU 访问 Cache 的命中率高达 90 %,大大提高了 CPU 访问

数据的速度,提高了系统的性能。

  • 解决方案优化
register 和 主存中间 加一层cache ,命中率可达90%,形成了以下金字塔架构
	register
	L1 cache
	Memory
	
在  cache 和 主存中间 再加一层cache ,命中率可达98%,形成了以下金字塔架构
	register
	L1 cache
	L2 cache
	Memory

现实情况

main memory是磁盘的缓存,cache是main memory的缓存,CPU寄存器是对cache的缓存。
我们读数据的时候,如果需要知道其位置,则可以从 
	register ,L1cache ,L2cache, ... ,main Memory, HardDisk
我们写数据的时候,如果需要知道其位置,则可以从 
	register ,write_buffer ,cache,main Memory, HardDisk
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值