ARM cache 工作方式

发布者:Tapir最新更新时间:2024-12-23 来源: cnblogs关键字:ARM  cache  工作方式 手机看文章 扫描二维码
随时随地手机看文章

综述
现在的CPU的速度远远高于现代存储器的速度所以出现了cache。按和CPU距离分为L1级和L2级(SM)等。这里主要记录一下自己对cache的工作方式的学习理解。
cache工作方式
cahe是对内存数据的缓存从而加快CPU对数据的访问,那么前提肯定是之前从内存中读取过数据才会有缓存一说。那么该如何保证下次对同一块内存的访问时可以找到cache中的缓存呢?这就是cache的做工原理核心。先抛开cache的后续优化版本,从最简单的实现方式理解学习。最简单的就是使用 地址信息+data的key-val的方式来进行缓存就能按地址招待数据缓存这就是cache-line。那么这里data数据是多少byte合适呢?这取决于实现以最常见的32byte的大小来理解,在此此种情况下cache-line中的地址信息就不用记录最低的5bit从而简化设计;直接使用地址的低5bit来作为单缓存行行内的字节寻址,这就是cache映射的基本原理。根据这个原理cache的的映射分为如下几种。
cache映射方式分类

  1. 全关联
    这个不清楚。

  2. 直接映射
    直接映射就是上面原理介绍的方式,cache是一个单列的cache-line表如下图示意,而因为cache远小于内存所以cache仅能映射部分内存区域所以一个时间段他映射了内存的不同地址空间且是线性的映射,所以有可能发生“颠簸”。原因是假如有cache总共有四条缓存行,而地址0x*08都会映射到同一行,程序刚好要循环访问0x****10800和0x****20800这两个地址则就会出现cache被循环的换入换出,这里的08就是cache的index的概念。所以后来优化有了如下的方式来解决这个问题。

  3. 组相连
    直接映射他的缺点就是在有些情况下会导致cache的“颠簸”。所以后来就想到了让同一个index的缓存行对应到两个缓存行上就形成了cache的组的概念,即index相同的cache称为一个组(set),这样一个index就会对应到组宽度n个cache-line,如果n为2则前面颠簸换出的概念就是原来的1/n即0.5这就是组映射。既然同一个index对应到不止一个cacae-line所以就会加上TAG的概念来区分同一个组的cache-line。组映射这里最后还有一个概念就是way,他就是一个cache所能映射的index区域,即如果index有5bit则一个way就是五个cache-line如下示意图所示的:

这样就是现代cache的缓存映射使用的策略,后续在介绍更加细节的内容。
cache 按组织方式分类

  1. VIPT 虚拟索引物理TAG
    使用虚拟地址的一部分作为索引物理地址一部分作为TAG标记;算是VIVT的优化,页表切换了不需要整个cache无效,实现相对PIPT简单。

  2. VIVT 虚拟索引虚拟TAG
    使用虚拟地址的一部分作为索引一部分作为TAG标记;存在物理地址重名,即多个虚拟地址缓存了同一块物理内存,而且在切换页表后需要cache整个无效。

  3. PIPT 物理索引物理TAG
    使用物理地址的一部分作为索引一部分作为TAG标记,芯片设计实现起来复杂。

最早是全部使用虚拟地址作为index和tag的,但是因为存在多个虚拟地址映射到同一个物理地址的情况所以会造成cache的别名(浪费)且在多任务发生任务切换时的清空cache。所以后来优化使用了虚拟地址作为index物理地址作为TAG就能有效解决前面的问题,但是VIPT的还是会有cache别名的问题,所以后来又优化出了PIPT即全部使用物理地址从而彻底避免别名但是这种方式的最大问题就是硬件电路实现复杂。


关键字:ARM  cache  工作方式 引用地址:ARM cache 工作方式

上一篇:ARMv7-A 架构下的MMU
下一篇:ARM汇编指令-STMFD/LDMFD

推荐阅读最新更新时间:2026-03-25 12:24

ARM920T_内核MMU与cache应用分析
一、cache分类及应用场合 cache是内存和CPU之间的高速缓冲存储器,其分为icache(指令缓存)和dcache(数据缓存)。如果开启了cache,当CPU运行时会将正在运行的指令地址附近的指令或者数据调入cache,这样当运行下一条指令或用到下一条数据时直接从cache中查找,如果查找不到再访问内存,以此加快CPU执行速度。icache可以直接开启,而dcache需要开启MMU之后才能开启。 在启动文件中开启icache的代码可以放在时钟速度配置完成之后,代码如下: bl enable_icache enable_icache: mrc p15, 0, r0, c1, c0, 0 orr r0,
[单片机]
<font color='red'>ARM</font>920T_内核MMU与<font color='red'>cache</font>应用分析
UPS电源的四种工作方式
UPS电源是较为常见的应急电源系统,其在市电正常与市电异常的情况下,工作方式也有所不同,本文主要介绍了UPS电源的四种工作方式:正常运行、电池工作、旁路运行和旁路维护。 1、正常运行方式 UPS电源系统的供电原理是当市电正常时,机器会将市电的交流电转换为直流电,而后对电池充电,以备电力中断时使用;需强调的是不间断电源系统并不是停电时才会工作,如遇到电压过低或过高、瞬间突波等,足以影响设备正常运转的电力品质时,UPS系统都处于工作状态,为负载设备提供稳定且干净的电力。 2、旁路运行方式 当在线式UPS应急电源超载、旁路命令(手动或自动)、逆变器过热或机器故障,UPS电源一般将逆变输出转为旁路输出,即由市电直接供电。由于旁路时,UPS
[嵌入式]
三相步进电机有哪几种工作方式
三相步进电机是一种常见的电机类型,广泛应用于各种自动化设备和精密控制系统中。它具有结构简单、控制方便、运行可靠等优点。三相步进电机的工作方式主要有以下几种: 全步工作方式 全步工作方式是三相步进电机最基本的工作方式。在这种方式下,电机的三个相分别独立控制,每个相的电流大小和方向都可以独立调节。当一个相的电流达到最大值时,其他两个相的电流为零。这种方式的优点是控制简单,但电机的运行效率较低,且容易产生较大的振动和噪音。 半步工作方式 半步工作方式是在全步工作方式的基础上发展起来的。在这种方式下,电机的三个相的电流不是完全独立控制的,而是通过一定的比例关系进行调节。当一个相的电流达到最大值时,其他两个相的电流不是零,而是有
[嵌入式]
新能源汽车单机控制器及其工作方式
一. 电机控制器在电动汽车中的位置与作用 电机控制器,是电动汽车最为核心的模块,同时也是汽车动力性能的决定性因素,它能够从整车辆的控制角度获得整车的需求,从有关的动力电池包获得电能,经过自身逆变器的调制,从而获得控制电机所需要的电流与电压,并提供给电动机,从而使得电机转速与扭矩满足整个车辆的要求。 电机控制器同时也是连接电机与电池的神经中枢,可以用来调校,所有车辆的各项性能指标,足够的智能电控不仅能够保障车辆的基本安全与精准操控,二阶还能够使得电池与电机发挥出充足的实例。 1.位置 从外部来开,一般的电机控制器至少具有两队高压接口,与一对输入接口,他们可以用来连接动力电池包的高压接口,另外一对是高压输出接口,用来连接电机,来提
[嵌入式]
新能源汽车单机控制器及其<font color='red'>工作方式</font>
电动机控制电路图讲解 解读电动机控制电路图工作方式
电路图识读能力是电气专业必备技能之一,控制电路图,是继电控制回路在安装、调试、维修、维护等过程中,需熟练掌握的基础知识。 电路图就像我们熟悉的地图一样,通过电路图,我们可以了解控制电路的工作原理、接线顺序、控制逻辑等内容。为我们对控制电路熟悉,提供了重要指引信息。 本文从识图必备基础,对电路图符号与控制状态、七种常见继电控制方式、继电控制识图技巧三个维度进行详细解析。希望为你了解继电控制,掌握识图能力与方法提供参考及帮助。 一、解析控制电路图符号与控制状态 1、控制电路符号解读 学习电路图识图方法,首先我们需对电路图内的符号含义有充分的了解。下面我们将对常见继电控制回路图符号进行一一解读。 从控制驱动方式划分,可分为一次控
[嵌入式]
电动机控制电路图讲解 解读电动机控制电路图<font color='red'>工作方式</font>
感应电动机的基本工作原理及工作方式
感应电动机的基本工作原理 感应电动机是一种通过感应电流在转子和定子之间产生转矩的电动机。其基本工作原理是根据电磁感应定律,通过交变磁场在定子线圈内产生感应电流,使得转子内产生一个旋转的磁场,从而产生转矩,驱动电机转动。 感应电动机通常由定子和转子两部分组成。定子是电动机的静止部分,由定子铁芯、绕组、端盖等构成。绕组内分布着三相交错的绕组线圈,当三相电源接入绕组时,会在绕组内形成旋转磁场。 转子是电动机的旋转部分,通常由转子铁芯和导体条组成。转子的导体条通常是铝、铜等良好导电材料制成的,固定在转子铁芯上,当旋转磁场穿过转子导体条时,感应电动势将在导体条内产生电流,因为导体条内电流会受到电磁力的作用,所以转子会受到一定的转矩作
[嵌入式]
感应电动机的基本工作原理及<font color='red'>工作方式</font>
STM32的八种GPIO工作方式详解
STM32的GPIO介绍 STM32引脚说明 GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 STM32的大部分引脚除了当GPIO使用之外,还可以复用位外设功能引脚(比如串口),这部分在【STM32】STM32端
[单片机]
STM32的八种GPIO<font color='red'>工作方式</font>详解
AT89C52单片机定时器如何设置工作方式
  AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。   AT89C52单片机硬件结构   如图3-1所示,为AT89C52的硬件结构图。AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。CPU是由运算器和控制器所构成的。运算器主要用来对操作数进行算术、逻辑运算和位操作的。控制器是单片机的指挥控制部件,主要任务的识
[单片机]
AT89C52单片机定时器如何设置<font color='red'>工作方式</font>
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved