ARM中的CACHE机制

发布者:cangart最新更新时间:2016-06-22 来源: eefocus关键字:ARM  CACHE机制 手机看文章 扫描二维码
随时随地手机看文章
ARM cache架构由cache存储器和写缓冲器(write-buffer)组成,其中写缓冲器是CACHE按照FIFO原则向主存写的缓冲处理器。下图是ARM V5核的CACHE位置

 

Cache 位于MMU前面靠近CPU称为逻辑CACHE又叫虚拟Cache。CPU可以直接访问CACHE的数据,而ARM 11(ARMV6)的结构是CACHE 在MMU后面CPU访问CACHE要通过MMU地址转换

 

在DM6446的core用的是哈佛结构,即把CACHE分为8K的D-CACHE(数据CACHE)和16K的I-cache(指令CACHE)

一个完整的CACHE分为CACHE控制器和CACHE存储器

见下图:

 

 

Davinci DM6446 D-cache行应为512行 ,cache存储器主要分为三个部分:目录存储段(driectory-story),状态信息段(status information)和数据项段(data section)每一行cache都包括这三部分。Cache用目录存储段来存储主存的地址,数据项段存放的是主存的数据,在cache中用状态信息段来记录状态信息,其中v表示有效位,d表示脏位,有效位记录当前cache行是活动的,cache行的数据和主存中的数据是一致的,处理器可以读取。脏位则表示cache行的数据和主存中的数据不一致。

在读写请求到达存储器前会被CACHE捕获,cache存储器将该请求分成三部分标签,组索引和数据索引域,cache通过组索引域确定可能包含地址和数据cache的行,cache存储器检查匹配的CACHE 行的状态标签,如果是V表示(cache hit)命中,否则cache失效(cache miss)在cache失效时从主存吧cache行考到CACHE存储器

主存中的部分内容存放在cache中的最简单方式是直接映射,在一个直接映射中,主存的地址唯一对应cache行,因为主存容量很大所以主存的很多地址映射到同一个cache行

见下图:

 

在DM6446 中内存为128M (bootargs 设为128M)8K的D-CACHE则128×1024/8 = 16384映射一个cache行。由于cache的速度大大大于低速的主存速度,因此需要写缓冲器。

Cache的写策略分为直写策略和回写策略。同时向cache行和相应的主存位置写数据,同时更新这两个地方的数据的方法称为直写策略(writethrough),把数据写入cache行,不写入主存的或者只有当cache被替换时或清理cache行时才写入主存的策略称为回写策略(writeback)。采用回写策略时,当处理器cache命中,只向cache存储器写数据,不写入主存,主存里的数据就和cache里不一致,cache里的数据是最新的,主存里的数据是早前的。这就用cache存储器信息状态标志位了,当向cache存储器里某行写数据时,置相应行的信息标志脏位为1,那么主控制器下次访问cache存储器就知道cache里有主存没有的数据了,把数据写回到主存中去。

当一个cache访问失效时,cache控制器必须从当前有效行中取出一个cache行存储从主存中取到的信息,被选中替换的cache行称为丢弃者,如果这个cache行中脏位为1则应把该cache行中的数据回写到主存中,而替换策略决定了那个cache行会被替换,在arm926ejs中ARM支持两种策略:轮转策略和伪随机策略。轮转策略就是取当前cache行的下一行,伪随机策略是控制器随机产生一个值。

当cache失效时,ARM采取两种方式分配cache行,一种是读操作(read-allocate)还有一种是读-写分配策略(read-write-allocate),当cache未命中时对于读操作策略,在对cache存储器读操作时才会分配cache行

关键字:ARM  CACHE机制 引用地址:ARM中的CACHE机制

上一篇:Arm Linux 内核页表的段式映射
下一篇:ARM架构下GCC中progma编译指示字

推荐阅读最新更新时间:2024-03-16 14:58

ARM标准库
1 ARM标准库介绍 ADS提供了ANSI C和C 标准库,本文仅讨论ANSI C库,该库包含下面几个部分: ◇IS0 C库标准所定义的函数; ◇在Semihosted 环境下用来实现C库函数和目标相关的函数; ◇C和C 编译器要使用的helper函数。 该库提供的诸如文档输入输出之类的设备,使用了标准的ARM semihosted执行环境(semihosting是针对ARM目标机的一种机制,他能够根据应用程式代码的输入/输出请求,和运行有调度功能的主机通信,这种技术允许主机为通常没有输入和输出功能的目标硬件提供主机资源)。ARMulator、Angel和Multi-lCE都支持这个环境,能够使用ADs中提供的研发工具研发应用程式
[单片机]
基于ARM和FPGA的开放性计算机数控系统
本文提出了一种基于ARM和FPGA的嵌入式数控系统设计方案。详细介绍了ARM系统的软硬件设计,基于FPGA的硬件精插补实现方法以及数控系统的加减速控制策略。该系统将ARM运行速度快、计算精度高的优点和FPGA内部逻辑的在线可重构性等特点相结合,提高了资源利用率和实时性,增强了数控系统的灵活性。仿真和实践结果表明,整个控制系统具有实时性好、低成本、高性能等优点。 现有的数控系统中多采用工控机加运动控制卡的计算机数控系统方案进行运动控制器的设计。随着工控机整体功能日趋复杂,对运动控制系统的体积、成本、功耗等方面的要求越来越苛刻。现有计算机数控系统在运动控制方面逐渐呈现出资源浪费严重、实时性差的劣势。此外,数控系统的开放性、模块化和
[单片机]
基于<font color='red'>ARM</font>和FPGA的开放性计算机数控系统
软银计划出售ARM在华子公司51%股权
  北京时间6月5日据金融时报报道, 软银 旗下芯片设计公司 ARM 表示,将作价7.752亿美元出售中国半导体设计部门的多数股权。下面就随嵌入式小编一起来了解一下相关内容吧。    ARM 表示,将向财务投资者和公司的合作伙伴出售在华子公司 ARM  Technology China的51%权益,从而成立一家合资公司运营ARM在中国的半导体技术业务。   两年前, 软银 以243亿英镑收购了英国芯片设计公司ARM,此后签署协议将后者25%的股权出售给沙特支持的愿景基金,并有望再次让ARM上市。    软银 集团表示,去年在中国设计的所有先进芯片中,约有95%是基于ARM技术,中国部门贡献了ARM总销售额的20%。   软银表示
[嵌入式]
ARM基本知识
除了正常的保存之外,在编译无误后,选择另存为相同名称的.h文件,将点h文件中的main函数名称修改成其他名称,如xmain,或main1等,则新项目就可以调用原项目中的函数! 一、项目1先编写LCD1602,编译无错误后再将LCD1602.c另存为LCD1602.h,将LCD1602.h中的main()函数文件改为main0() #include reg52.h #include INTRINS.H sbit rs=P2^0; sbit rw=P2^1; sbit e=P2^2; void delay(unsigned char us) { while(us--); } void w1602(bit r,unsigned c
[单片机]
arm linux 从入口到start_kernel 代码分析 - 2
1. 确定 processor type arch/arm/kernel/head.S中: 00075: mrc p15, 0, r9, c0, c0 @ get processor id 00076: bl __lookup_processor_type @ r5=procinfo r9=cpuid 00077: movs r10, r5 @ invalid processor (r5=0)? 00078: beq __error_p @ yes, error 'p' 75行: 通过cp15协处理器的c0寄存器来获得proce
[单片机]
嵌入式-ARM寄存器基本概念
无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。 ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。 这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。 ARM自身是统一架构的,也就意味着37个寄存器无论在哪个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就出现了好多外设寄存器,一定要与这37个寄存器区别开来!!! 1、备份寄存器(R8-R14) 对于R8-R12来说,除在快速中断模式下,每个模式对应相同物理寄存器,所以在FIQ模式下可不必保护和恢复中断现场。 对于R13-R14来说,每个寄存器对应6个不同的物理寄存器,其中一个是用户模式和系统模
[单片机]
成功移植NET-SNMP到ARM平台
经过一个月的不懈努力终于将NET-SNMP成功移植到了ARM平台,网上关于NET-SNMP的资料很少,仅有的一些文章也都是轻描淡写,很容易被误导,我就是其中的受害者之一,交叉编译过程很复杂,要配置参数,路径,还有库。所以稍有插翅就会前功尽弃。而且每编译一次NET-SNMP都会耗费很多的时间。很容易挫败人的自信心。我整整啃了一个月的英文文档,边看边试。下面把详细过程贴出来,跟大家共享,希望那些也想移植NET-SNMP能够少走弯路。 主机环境 Windows + vmware(redhat9.0) IP分配如下: ARM开发板:192.168.4.151 Windows: 192.168.4.44 R
[单片机]
博通与东芝授权获得ARM PrimeCell IP,用于高性能SoC设计
业界翘楚选择 ARM进行“一次投片成功”的设计   ARM公司 今天宣布东芝公司(Toshiba Corporation)与博通公司(Broadcom Corporation)授权获得了ARM PrimeCell 产品,用于高性能片上系统(SoC)设计。   通过签订有关ARM PrimeCell 产品的综合授权协议,东芝将在AMBA Designer环境下通过图形用户接口加快开发可直接部署的基础设施解决方案。博通授权获得了ARM PrimeCell 高性能AMBA 3 AXI互联技术(PL301)和AMBA设计工具,用于包括无线和移动平台在内的下一代片上总线开发。   ARM PrimeCell 外设IP产品可改善复杂So
[焦点新闻]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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