ARMv8 - 高速缓存(cache)

本文详细介绍了ARM64架构处理器系统的缓存结构及工作原理,包括L1、L2和L3缓存的特点,缓存地址编码,以及VIVT、VIPT和PIPT三种访问方式的区别和优缺点。

基础知识

一个经典的arm64体系结构处理器系统包含了多级的高速缓存。
在这里插入图片描述
如上图每个CPU内核都有自己的L1高速缓存。L1高速缓存采用分离的两部分高速缓存。d-cache表示L1数据高速缓存, i-cache表示指令高速缓存。每个CPU内核共享一个L2 高速缓存,L2高速缓存采用混合的方式,不再区分指令和数据cache,此时还外接了一个扩展的L3高速缓存。

cache工作方式

在这里插入图片描述

处理器在访问存储器时,会把地址同时传递给TLB(Translation Lookaside Buffer)和cache。TLB是一个用于存储虚拟地址到物理地址转换的小缓存,处理器先使用EPN(effective page number)在TLB中进行查找最终的RPN(Real Page Number)。如果这期间发生TLB miss,将会带来一系列严重的系统惩罚,处理器需要查询页表。假设这里TLB Hit,此时很快获得合适的RPN,并得到相应的物理地址(Physical Address,PA)。

同时,处理器通过cache编码地址的索引域(Cache Line Index)可以很快找到相应的cache line组。但是这里的cache block的数据不一定是处理器所需要的,因此有必要进行一些检查,将cache line中存放的地址和通过虚实地址转换得到的物理地址进行比较。如果相同并且状态位匹配,那么就会发生cache命中(Cache Hit),那么处理器经过字节选择和偏移(Byte Select and Align)部件,最终就可以获取所需要的数据。如果发生cache miss,处理器需要用物理地址进一步访问主存储器来

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值