新闻中心

EEPW首页>嵌入式系统>设计应用> ARM存储器之:高速缓冲存储器Cache

ARM存储器之:高速缓冲存储器Cache

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257011.htm

(2)寄存器c7

CP15中的寄存器c7主要用于控制Cache和写缓存。

注意

c7有时也用于其他相似的功能,如果系统中存在预测缓存(prefetchbuffers)和分支目标(branchtarget)Cache,c7也将负责对它们进行控制。

c7是一个只写存储器,可以使用协处理器指令MCR对其进行操作。如果程序中包含读c7的操作,那么指令的结果不可预知。

使用MCR指令写该寄存器的命令格式如下所示。

MCRP15,0,Rd>,c7>,CRm>,opcode2>

其中,CRm和opcode2的不同组合,决定指令执行的不同操作。具体组合与操作的对应关系见表15.15。

表15.15 CRm与opcode2不同组合与操作的应用关系

CRm

Opcode2

含义

数据

c0

4

等待中断

0(SBZ,shouldbezero)

c5

0

使整个指令Cache无效

0

c5

1

使指令Cache中某行无效

虚拟地址

c5

2

使指令Cache中某行无效

组号/索引

c5

4

清空预取缓存区

0

c5

6

清空整个分支目标Cache

0

c5

7

清空分支目标Cache中的某入口项

生产商定义

c6

0

使整个数据Cache无效

0

续表

CRm

Opcode2

含义

数据

c6

1

使数据Cache中的某行无效

虚拟地址

c6

2

使数据Cache中的某行无效

组号/索引

c7

0

使整个统一Cache无效

哈佛结构中,使整个数据Cache和指令Cache无效

0

c7

1

使统一Cache中某行无效

虚拟地址

c7

2

使统一Cache中某行无效

组号/索引

c8

2

等待中断

0

c10

1

清理数据Cache行

虚拟地址

c10

2

清理数据Cache行

组号/索引

c10

4

清除写缓存区

0

c11

1

清理统一Cache行

虚拟地址

c11

2

清理统一Cache行

组号/索引

c13

1

预取指令Cache中的某行

虚拟地址

c14

1

清理并使数据Cache中的某行无效

虚拟地址

c14

2

清理并使数据Cache中的某行无效

组号/索引

c15

1

清理并使统一Cache中的某行无效

虚拟地址

c15

2

清理并使统一Cache中的某行无效

组号/索引

(3)寄存器c9

将Cache进入存储系统的注意目的是要提高系统的平均访问速度。但Cache是一把双刃剑,在某些情况下,可能使系统的性能更遭。下面列出了3种使Cache性能明显下降的原因。

①Cache访问未命中,处理器转向主存寻址数据,这期间的延时对系统性能影响很大。

②在回写型Cache中,如果Cache中的数据所在地址被存储管理单元重新定位(即Cache中存储的为虚地址数据),那么数据回写的操作延时很大。

③当处理器需要一个字节数据,而此数据恰好不在Cache中,那么Cache的替换策略就会将整个Cache行换进,增加了系统不必要的开销。

存储器相关文章:存储器原理




评论


相关推荐

技术专区

关闭