首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» ARM核920T性能优化之Cache
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
ARM核920T性能优化之Cache
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2014-3-19 15:11
|
只看该作者
ARM核920T性能优化之Cache
程序在执行过程中会频繁的运行小范围的循环代码,而这些循环又会对数据存储器的局部区域反复访问。
Cache同时使用了时间和空间的局部性原理。如果对存储器的访问受时间影响,在时间上有连续性,则这种时间上密集的访问被称为时间局部性访问;如果多次对存储器的地址访问相近,则这种空间上邻近的访问被称为空间局部性访问。
一.存储层次:
最顶层:存储层次的最顶层在处理器内核中,该存储器被称为寄存器文件。这些寄存器被集成在处理器内核中,在系统中提供最快的存储访问。
一级存储:紧耦合存储器(TCM),一级cache和主存在这一级。
二级存储:辅助存储器(辅助存储器),用来存储正在运行的较大的程序未被使用的部分,或者存放当前没有运行的程序。
二.写缓冲器作为临时缓冲帮助cache释放存储空间。
三.逻辑MMU与物理MMU
如果带cache的处理器核支持虚拟存储,那么cache就可以放在处理器内核和存储管理单元MMU之间或者MMU与物理存储器之间。
逻辑cache在虚拟地址空间存储数据,它位于处理器和MMU之间。处理器可以直接通过逻辑cache访问数据而无需通过MMU。
物理cache使用物理地址存储数据,它位于MMU和主存之间。当处理器访问存储器时,MMU必须先把虚拟地址转化为物理地址,cache存储器才可向内核提供数据。
从arm7~arm10都是使用逻辑cache,arm11使用物理cache。
四.Cache的结构
带有cache的
ARM
内核采用了2种
总线
结构:冯诺依曼结构和哈佛结构。在使用冯诺依曼结构的处理器内核中,只有一个数据和指令公用的cache,这种cache被称作统一cache。哈佛结构将指令总线和数据总线分离,存在指令cache(I-cache)和数据cache(D-cache),这种类型的cache被称作分离cache。上边的图是统一cache,cache的两个主要组成部分cache控制器和cache存储器。Cache存储器是一个专用的存储器阵列,其访问单元称为cache行。Cache有3个主要的部分:目录存储段(directory store),状态信息段(status information),数据项段(data section)。每一个cache行都由这3部分组成。Cache使用目录存储段来记录每个cache行是由主存的什么地方拷贝而来。该目录项被称为“cache标签”。状态位用来记录状态信息,2个常见的状态位是有效位(valid bit)和脏位(dirty bit)。Cache存储器必须存储来自主存的信息,这些信息被放在数据项段里。
五.Cache与主存的关系
1)直接映射
主存的每个地址都对应着cache存储器的唯一的一行。如图,组索引(set index)可以确切的指出所有以0x824结尾的内存地址在cache中所唯一对应的存储地址;数据索引域可以确定字,半字或者字节在该cache行中的位置;标签域用来与cache行中的cache-tag相比较。
直接映射这种设计使每个主存块在cache中只有一个特定的行可以存放,那么如果程序同时用到对应于cache同一行的2个主存块,那么就会发生冲突。冲突的结果就是导致cache行的频繁置换。这就是直接映射cache的颠簸问题(Thrashing)。重复的cache失效导致cache控制器连续不断的将当前不用的过程置换出cache,这就是cache颠簸。
2)组相联
为了减少cache的颠簸频率,某些cache使用了其他设计。将cache分成一些容量相同的小单元,称作路(way)。这里一个组索引对应多个cache行,即在每一路里都有一个cache行与之对应,组索引相同的cache行被称作处于同一个组(set)里,这也是组索引命令的由来。拥有相同组索引的cache行称为组相联的。在cache的同一个组当中,数据放置的位置具有排他性,可以防止同样的数据被重复放在一个组的不同的cache行。
3)全联
随着cache控制器的相联度提高,冲突的可能性减小了。理想的目标是,尽量提高组相联程度,使主存地址能够映射到任意cache行,这样的cache被称为全相联cache。
硬件设计者提高相联度的一种方法就是使用内容寻址存储器CAM(Content Addressable Memory)。在ARM920T处理器核中,ARM使用了CAM来定位cache-tag。ARM920T中的cache是64路组相联的。CAM使用一组
比较器
,以比较输入的标签地址和存储在每一个有效cache行中的cache-tag。CAM采用了与RAM相反的工作方式:RAM是得到一个地址后再给出数据;而CAM则是在检测到给定的数据值在存储器中后,再给出该数据的地址。如图是ARM940T的cache结构图。访问地址的tag部分被作为4个CAM的输入,输入标签同时与存储在64路中的所有cache标签相比较。如果有一个匹配,那么数据就由cache存储器提供;如果没有匹配,存储器控制器就会产生一个失效(miss)信号。
六.Cache策略
Cache策略包括写策略,替换策略及分配策略。
1)写策略
写策略包括直写法(writethrough)和回写法(writeback)。
直写法:
如果cache控制器使用直写策略,那么处理器核写cache命中时,将同时修改cache和主存中的内容,以确保cache和主存数据的一致性。
回写法:
如果cache控制器使用回写策略,那么处理器核写cache命中时,只向cache存储器写数据而不立即写入主存。配置成回写法的cache要使用到cache行的状态信息块中的一个或多个脏位(dirty bit)。当回写cache控制器向cache存储器中某一行写入数据时,它会将脏位设置为1。如果cache控制器要将一个脏位被置位的cache行替换出cache存储器,那么该cache行数据会自动被写到主存单元中去。
2)替换策略
带cache的ARM核支持两种替换策略:伪随机替换法和轮转法。当一个cache访问失效时,cache控制器必须从当前有效的组中选择一个cache行来存储从主存中取得的新信息。被选中的cache行被称为丢弃者(victim)。如果丢弃者中包含有效的脏数据,那么在该cache行被写入新数据之前,控制器必须把该行的数据写入到主存。选择和替换丢弃cache行的过程被称作淘汰(eviction)。
3)分配策略
在cache失效发生时,ARM的cache可以采取两种策略来分配cache行:第一种叫做读操作分配(read-allocate)策略;第二种叫做读/写操作分配(read-write-allocate)策略。如果cache未命中,那么对于读操作分配策略,只有进行存储器读操作时,才分配cache行。如果被替换的cache行包含有效数据,那么在该行被新的数据替换之前,要先把原来的内容写入主存中。
采用读/写操作分配策略时,不管是存储器读操作,还是存储器写操作,在cache未命中时,都将分配cache行。
七.清除(flush)和清理(clean)cache
清除cache的意思是清除cache中存储的全部数据,对处理器而言,清除操作只要清零相应cache的有效位即可。然而,对于采用回写策略的D-cache,就需要使用清理(clean)操作。
八.Cache锁定
Cache锁定是将cache中的部分代码和数据标记为非替换(exempt of eviction)的。被锁定的代码和数据有更快的系统反应能力,因为这些数据和代码一直存放在cache中。Cache在正常操作时,经常会涉及到行替换,这种替换会带来代码执行时间不确定的问题,而cache锁定会避免这种不确定性。ARM内核为cache锁定分配固定的cache单元。一般来讲,分配cache锁定的cache单元是一个路(way)。
作者:李万鹏
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议