ARMv8-A系列学习笔记(6)--Caches

ARM Cortex-A Series Programmer’s Guide for ARMv8-A

Chapter 11 Caches

cache需要包含地址,数据,及状态信息

TAG:包含部分内存地址(高位部分),对应于一行CACHE在内存当中的高位地址

最小加载单位为CACHE LINE: SMALLEST LOADABLE UNIT OF A CACHE

状态位:VALID: (CACHE LINE是否可用),DIRTY (CACHE LINE是否与主存当中的内容相同)

INDEX:主存地址的中间部分,用来匹配CACHE LINE (TAG比较粗,对应多行CACHE LINE, INDEX比较细,确定多行CACHE LINE中的正确的一行CACHE LINE)

WAY: 包含连续的INDEX的CACHE LINE, cache中的WAY大小相同

SET:不同WAY,相同INDEX的,一组CACHE LINE

OFFSET:CACHE LINE中的偏移


ARM使用SET ASSOCIATIVE CACHE

所谓的SET ASSOCIATIVE的意思,就是一个INDEX对应多个WAY当中的,多条CACHE LINE,需要通过TAG来最后确定(HIT),真正对应的那条CACHE LINE

WAY越多,则所谓的 ASSOCIATIVITY 越多

该方式减小了CACHE TRASHING (WHY?相对于DIRECT MAPPED CACHE方式)


CACHE LINE EVICTED: make room

inclusive cache model: same data can be present in both L1 and L2 cache

exclusive cache model: in only one cache

cache linefill: to cache, at the same time to core


CACHE POLICIES:

WA: 写MISS的情况下;可能在写之前,有一个CACHE LINE的FILL/READ。

RA:读MISS的情况下

WB : 只更新CACHE,并将CACHE LINE标为DIRTY;只有CACHE LINE EVICTED或者CLEANED的条件下,更新到主存

WT:既更新CACHE,又更新主存,没有CACHE LINE的标为DIRTY


INVALIDATION: clear it of data, by clearing the valid bit of the cache lines.

CLEANING: write cache line contents marked dirty to next level cache or main memory, and clearing the dirty bits in the cache line.



PoC, PoU

Maintenance

Discovery



CACHE的协议:

MESI / MOESI

I: INVALID:

 该CACHE LINE没有包含有效数据

S: SHARED: 

该CACHE LINE同时被多个CORE所共享,而且是CLEAN的,即CACHE LINE中的数据COPY,与SYSTEM MEMORY中的数据是相同的

CACHE LINE内容不能改动(因为共享)

E: EXCLUSIVE: 

只有该CACHE LINE对应的CORE有一份SYSTEM MEMORY中的COPY,而其它的CORE的CACHE LINE不包含这个COPY,而且是CLEAN的

CACHE LINE内容允许被改动 (因为不共享)

M: MODIFIED:

CACHE LINE内容被改动过了,即是DIRTY的

O: OWNER:

CACHE LINE, MODIFIED & SHARED


你可能感兴趣的:(ARM)