ARM核920T性能优化之Cache

发布者:koimqerolulk最新更新时间:2015-04-08 来源: ARM核920T性能优化之Cache关键字: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。



[page]

四.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行。[page]





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)。
关键字:ARM核  920T  性能优化  Cache 引用地址:ARM核920T性能优化之Cache

上一篇:讨论s3c2440的时钟与DMA
下一篇:ARM核920T性能优化之MMU

推荐阅读最新更新时间:2024-03-16 13:57

ARM Linux 大小切换
8核CPU或者是更多核的处理器,这些CPU有可能不完全对称。有的是4个A15和4个A7,或者是4个A57和4个A53,甚至像海思麒麟935处理器(4核A53 2.2 GHz + 4核A53 1.5 GHz),这8个核的频率可能不一样,则使用过程中需要大小核切换(频率高的是大核,频率低的是小核)。本文以ARM cortex-A7为例,分析大小核切换的代码,着重于分析实现切换的代码,对于为什么要这样切换、以及什么时候切换,不做过多探讨。 主要代码分布: arch/arm/common/bL_switcher.c arch/arm/include/asm/bL_switcher.h drivers/cpufreq/Arm_big
[单片机]
<font color='red'>ARM</font> Linux 大小<font color='red'>核</font>切换
基于优化电源模块性能的PCB散热布局技术设计
全球出现的能源短缺问题使各国政府都开始大力推行节能新政。电子产品的能耗标准越来越严格,对于电源设计工程师,如何设计更高效率、更高性能的电源是一个永恒的挑战。本文从电源 PCB 的布局出发,介绍了优化SIMPLE SWITCHER电源模块性能的最佳PCB布局方法、实例及技术。 在规划电源布局时,首先要考虑的是两个开关电流环路的物理环路区域。虽然在电源模块中这些环路区域基本看不见,但是了解这两个环路各自的电流路径仍很重要,因为它们会延至模块以外。在图1所示的环路1中,电流自导通的输入旁路电容器(Cin1),在高端MOSFET的持续导通时间内经该MOSFET,到达内部电感器和输出旁路电容器(CO1),最后返回输入旁路电容器。 图1 电
[电源管理]
基于<font color='red'>优化</font>电源模块<font color='red'>性能</font>的PCB散热布局技术设计
基于ARM的ADμC7024在医疗电子中的应用
0 引言   随着信息技术的迅猛发展和人民生活水平的提高,极大地推动了医疗电子设备的发展,当今医疗电子设备的发展趋势是高精度、实时性、低功耗和小尺寸,作为医疗电子设备中核心地位的MCU(微处理器)也随着这一发展趋势向前不断衍变着。由早期的8位MCU发展到目前的32位RISC(精简指令集计算机)MCU。美国ADI公司根据市场的需要最新推出了一款基于ARM(高级精简指令集计算机)核的微处理器ADμC7024便是目前32位RISC MCU的杰出代表。ADμC7024卓越的处理能力、集成众多片上外围器件和芯片低功耗的特点,完全胜任目前医疗电子设备的需求及未来的发展目标。   本文以ADμC7024在医疗电子中监护产品脉搏血氧计的应用为
[工业控制]
MMR帮助UWB带通滤波器优化性能
在3.1至10.6GHz超宽带(UWB)频率范围内的应用需要分数频率带宽较大的带通滤波器。美国联邦通信委员会(FCC)取消了中心频率为 6.85GHz、分数带宽(FBW)约为110%的UWB应用,从而为低功耗的商业UWB应用打开了3.1到10.6GHz的大门。   由于矩形槽可以用来精确调谐谐振器频率,因此在具有矩形槽的多模谐振器(MMR)基础上实现的微带带通滤波器,可以达到反射损耗大于10dB、插入损耗小于 1.5dB、群延迟变化小于0.3ns的通带性能。据最初的报道,使用带阶跃阻抗结构的MMR时,会将前三个谐振模作为覆盖整个UWB频率范围的带通滤波器的一部分。   描述了一种采用背孔式微带线MMR的UWB滤波器,这种滤波器具有
[电源管理]
MMR帮助UWB带通滤波器<font color='red'>优化</font><font color='red'>性能</font>
ABB推出全新SCARA机器人IRB 920T
广告摘要声明广告 ABB 全新推出 IRB 920T机器人,进一步拓展SCARA 机器人产品系列。IRB 920T具有领先的速度、精度和重复定位能力,适用于装配、拾取,物料搬运等各项任务,可满足电子行业日益复杂的生产流程和高速生产的需求,助力电子行业客户提升新品发布效率。 IRB 920T 现已全球发售 先看个视频,来感受IRB 920T的独特魅力~ 产品特点 更短节拍,最快速度: 节拍时间可达 0.29 秒,领先于同级别其他 SCARA 机器人,也是ABB速度最快的SCARA机器人 相较于ABB IRB 910SC SCARA 机器人,速度提升了 14%,单位时间内可生产更多的产品 最大负载:6kg 紧凑轻巧
[机器人]
Cache,为STM32L5提速助力(一)
ICACHE概览 ICACHE 的控制和维护 ICACHE 的功能框图 Hit-under-Miss,减少失效延迟 ICACHE 的功能框图 ICACHE 的结构和参数 Cache line refill Critical-word-first,提高对外部memory的缓冲效率
[单片机]
ARM922TZCP320A处理器PCI总线操作
ZCP320A采用了ARM公司的ARM922T核,ARM922T是ARM9TDMI通用处理器家族中的一员采用哈佛结构内部使用5级流水线支持32位的ARM指令系统和16位的Thumb指令系统包括两个相互独立的8KB 的数据和指令高速缓存,高速缓存行的长度是8个字。ARM922T 实现增强型ARM结构v4MMU以提供对指令和数据地址的转换和访问许可检测。ARM922T 支持ARM调试结构协处理器以及Tracking ICE。   ZCP320A内部使用三条AHB总线连接实现功能所需的主从设备。每条AHB总线连接一个主设备和多个从设备。根据总线连接的主设备的不同,三条总线分别被命名为COREBUS(ARM9 核作为该总线的主设
[单片机]
<font color='red'>ARM</font>922T<font color='red'>核</font>ZCP320A处理器PCI总线操作
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved