[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3
在这里插入图片描述

更多精彩内容,请关注公众号

前言

前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构,相信大家对Cache已经大概有了初步的了解。这里简单归纳一下:
(1) Cache从硬件视角看,是连接PE-Core和主存的一种存储介质,存储的数据是主存中数据的副本,特点是访问周期极短可以极大的提高PE-Core的执行效率,但是由于价格昂贵,一般容量有限。
(2) Cache的基本结构由Cache Line、Set、Way、Index等组成,通过way的视角看过去,Way中的Cache Line可以通过,直接相联结、组相联、全相联的方式和主存进行映射,但是考虑到实际的效率和成本,ARM采用的是组相联的方式。
(3) CPU使用的虚拟地址是通过一定的映射规则(VIVT、PIPT、VIPT)找到Cache中的Cache Line,这个过程其实就是确定TAG、Index、Offset的过程。
(4) Cache的多级架构,分为传统的Big.Little 和 比较新的DSU (Big.Little)两种架构模式,不同架构下Cache的组织形式也不一样。
上面的一堆一块放在那里还是冷冰冰的硬件,缺乏具体场景下的处理方式介绍,也就是Cache在运行过程中的一些策略问题,例如当CPU要访问一个虚拟地址中的数据,在读和写的过程中,不同的架构下、不同的场景下Cache是如何处理的。

正文

1. 策略相关的概念

我们打算结合具体的架构和场景来讲述Cache的相关策略,这里需要先要明确几个重要的概念:策略执行的单位、策略执行的场景、策略执行的控制器。

1.1 策略执行的单位

首先,我们需要先明确一个事情,就是本文中提到的相关策略的基本对象是Cache Line,换句话说,在ARM处理器中,Cache替换的单位通常被称为“Cache行”(Cache Line)或简称为“行”。这是一个重要的概念,因为它决定了Cache如何管理和替换其内部的数据块。

1.2 策略执行的场景

策略的执行场景大致可以分为:分配时的策略、替换时的策略、回写时的策略。当然我们在分析具体策略的时候要叠加Cache的多级架构,这样场景就更加的复杂一些。

There are a number of different choices that can be made in cache operation. Consider what causes a line from external memory to be placed into the cache (allocation policy) and how the controller decides which line within a set associative cache to use for the incoming data (replacement policy). What happens when the core performs a write that hits in the cache (write policy) must also be controlled.

1.3 策略执行的控制器

如果我们有一个放大镜放大一个PE-Core其实可以发现在CPU的执行单元和Cache之间还有一些电路组织,这个组织就是Cache控制器,如图1-1所示,它实际上也是Cache架构中Cache策略执行的单元。手册中对Cache 控制器有如下的描述:

The cache controller is a hardware block responsible for managing the cache memory, in a way that is largely invisible to the program. It automatically writes code or data from main memory into the cache. It takes read and write memory requests from the core and performs the necessary actions to the cache memory or the external memory.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值