Cortex R52内核Cache的相关概念(1)

描述

在开始阅读本系列文章之前,请先参阅《有关CR52 MPU配置说明》。因为这篇文章讲述了,cache配置所涉及到的寄存器的设置和MPU的一些基本概念。如果读者都已经理解了上述内容,可以跳过。本章内容主要讲述cache属性的具体含意、注意事项、以及在RZ/T2M的性能测试。

RZ/T2M cache的相关说明

RZ/T2M用的Cortex-r52内核芯片做了一级Cache支持,Cache又分数据缓存D-Cache和指令缓存I-Cache,RZ/T2M cpu0的数据缓存和指令缓存大小都是16KB,cpu1的数据缓存和指令缓存大小都是32KB。对于指令缓存,用户不必过于关注,对于有执行效率要求的代码,尽量放在TCM或者使能cache的SRAM区域。这里主要说的是数据缓存D-Cache。如果Rzt2m主频是400MHz,TCM和Cache都以400MHz工作,但是如果主频是800MHz,那么TCM必须有一个指令周期的等待。也就是说TCM的工作频最高就是400MHz,而cache的工作频与CPU主频一致。

这就是为什么当用户代码比较小的时候,如果代码放在SRAM,但是代码又大部分被cache缓存了,在CPU的主频是800MHz的情况下,此时代码的执行效率高于TCM的原因。因为cache可以达到800MHz的主频,而TCM只能达到400MHz。如果CPU主频是400MHz,在代码很小的情况下,TCM的性能与SRAM的性能几乎相当。但是用户代码很大又比较复杂的时候,远超过16KB的缓存大小时,这就要看具体情况另当别论了。

TCM不是本章内容的重点,本章内容重点是SRAM的cache的说明。T2/N2 SRAM的总线频是200MHz。数据缓存D-Cache就是为了CPU加速访问SRAM。如果每次CPU要读写SRAM区的数据,都能够在Cache里面进行,自然是最好的,实现了200MHz到400MHz的飞跃,实际是做不到的,因为数据Cache大小是有限的,总有用完的时候。

Cortex

RZ/T2M系统框图

Cache相关概念

对际cache的操作主要分读写两种情况:

1Read操作

如果CPU要读取的SRAM区域的数据在Cache中已经加载好了,这就叫读命中(Cache hit)。读命中的情况下,自然效率是高的。但是如果cache里面没有,这就是所谓的cache miss,那么就要从SRAM里面加载,然后再读取。

2Write操作

如果CPU要写的SRAM区域数据在cache中已经开辟了对应的区域,这就叫写命中,如果Cache里面没有开辟对应的区域,这就是写cache miss了。

Cache的配置是通过MPU来设置的,通常用到以下几种方式:

左右滑动查看完整内容

Cortex

长按可保存查看大图

对上述的几种方式说明一下:

1Normal Memory

通常我们用的块存储设备,可读,可写或者只读。

2Device

这通常用于外围设备,这些外围设备可能对读敏感或对写敏感。这个Arm体系结构限制了对设备内存的访问的排序、合并或推测。比如FPGA,这里的排序,合并和推测请看下表的解释。内容不在本章展开说明。下表对GRE,nGRE,nGnRE…等概念都有具体说明,相关的GRE的属性也都有说明。

Cortex

点击可查看大图

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分