Cortex-A510——Cache

Cortex-A510——Cache

小狼@http://blog.csdn.net/xiaolangyangyang


1、Cortex-A510 Cache组织结构

        以cache-size为32k,cache-line为32Byte为例:

  • 组相连(常用结构):4-way,256-set
  • 直接映射:相当于1-way,1024-set的组相连
  • 全相连:相当于1024-way,1-set的组相连

2、组相连

        如果一个数据可以放在n个line,则称这个Cache是n路组相连的Cache(n-wayset-associativeCache),如下图所示为4-way,4-set的Cache。

组相连结构图

组相连映射图

  • offset:确定cache-line中数据位置,offset为图中Word+Byte
  • set:确定way中cache-line位置,即哪个组,如果数据被缓存,则V标志为1;
  • tag:确定cache中way的位置,如果数据被缓存,tag中保存有地址信息,与处理器地址进行比对;
  • V:cache-line有效标记;
  • D:脏数据标记。

组相连映射硬件逻辑图

3、VIVT/VIPT/PIPT

        VIVT(Virtual Index Virtual Tag):使用虚拟地址Index域和虚拟地址Tag域
        多个VA可能映射到同一PA,导致多个cache line组(VA不同,index域不同,查找到的cache 组则不同)映射到同一物理地址,这种现象叫做cache alias(高速缓存别名)。一旦一个VA到PA的映射关系改变,cache内容将会写回物理内存。此时,由于物理内存内容的变化需要同步到cache,就需要clean和invalidate(这两个操作结合起来就叫做flush)其余同名cache line,导致系统性能下降。
        VIPT(Virtual Index Physical Tag):使用虚拟地址Index域和物理地址Tag域
        如果index域位于地址的bit0~bit11(因为linux kernel以4KB(12bit位宽)大小为页面进行物理内存管理),就不会引起cache alias,否则还是会引起该问题。因为对于一个页面来说,虚拟地址和物理地址的低12bit是完全一样的,如果index域位于bit0~bit11,此时VIPT等价于PIPT。
        PIPT(Physical Index Physical Tag):使用物理地址Index域和物理地址Tag域
        就不会存在cache alias问题,但是结构更复杂。ARM Cortex-A系列处理器使用的是PIPT方式。

4、Cache硬件替换策略

        常用策略有:PLRUNRUFifo、Round-Robin

5、Cache一致性

        MESI协议:

  • M:这行数据有效,数据已被修改,和内存中的数据不一致,数据只存在于该高速缓存中
  • E:这行数据有效,数据和内存中数据一致,数据只存在于该高速缓存中
  • S:这行数据有效,数据和内存中数据一致,多个高速缓存有这行数据的副本
  • I:这行数据无效

6、Cache操作指令

7、Cache寄存器

8、提高Cache命中率

  • 优化数据访问模式,是得数据的访问更加局部化、减少Cache Miss的次数;
  • 合理配置Cache的大小和映射方式,以满足特定应用程序的需求;
  • 使用高效的替换算法,如LRU(Least Resently Used),以最大程度地保留对最近访问数据的缓存;
  • 避免频繁的写入操作,尽可能地延迟写操作以提高写入命中率。

9、疑问

  1. Cache的内部组织架构是怎么样的?能否画出一个cache的layout图?什么是set,way?
  2. 直接映射,全关联和组相联之间有什么区别?优缺点是啥?
  3. 重名问题是怎么发生的?
  4. 同名问题是怎么发生的?
  5. VIPT会不会发生重名问题?
  6. 什么是inner shareability 和outer shareability?怎么区分?
  7. 什么是PoU?什么是PoC?
  8. 什么是cache一致性?业界解决cache一致性都有哪些方法?
  9. MESI状态转换图,我看不懂。
  10. 什么cache伪共享?怎么发生的,如何避免?
  11. DMA和cache为啥会有cache一致性问题?
  12. 网卡通过DMA收数据和发数据,应该怎么操作cache?
  13. 对于self-modifying code,怎么保证data cache和指令cache的一致性问题?

Cache知识记录
Arm64 Cache
Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

supOS浅度集成

一、浅度集成介绍 浅度集成是根据项目或者演示要求而做的集成工作,通过接入supOS的单点登录,UI调整,菜单栏的集成,从而达到客户使用supOS平台来使用各个应用的能力。 二、浅度集成的作用 通过较少的研发投入使APP应用浅度融入到…

uniapp 自定义页面顶部导航栏

效果图 1.移除原生导航栏 {"path": "pages/common/homePage/homePage","style": {"navigationBarTitleText": "","navigationStyle": "custom"} } 2.获取不同手机顶部自带 电量高度、信号、时间导航栏…

课程设计——基于FPGA的交通红绿灯控制系统(源代码)

摘要: 本课程设计旨在设计一个基于FPGA(现场可编程门阵列)的交通红绿灯控制系统。该系统模拟了实际道路交叉口的红绿灯工作场景,通过硬件描述语言(如Verilog或VHDL)编写源代码实现。系统包含三个主要部分&a…

我又学会了使用Range实现网络文件下载的断点续传

文章目录 前言1、Range请求头1.1、概述1.2、使用限制1.3、范围请求1.4、预防资源变更 2、断点续传下载实现2.1、流程设计2.2、代码实现2.3、运行结果 3、RandomAccessFile4、思维拓展参考资料 前言 在某次摸鱼的过程中,老大突然后面冒出来说要做一个拉取文件到本地…

复位电路。

复位电路一般用到 电容电阻。 有的 是低电平复位,有的是高电平复位。 这里的电容的作用,上电自动复位。 参考: 此时 电容还能起到 抗干扰的作用。吸收 噪声。 电阻的作用,不是很理解,感觉是 在 上拉没有形成之前&am…

Multi-Head RAG:多头注意力的激活层作为嵌入进行文档检索

现有的RAG解决方案可能因为最相关的文档的嵌入可能在嵌入空间中相距很远,这样会导致检索过程变得复杂并且无效。为了解决这个问题,论文引入了多头RAG (MRAG),这是一种利用Transformer的多头注意层的激活而不是解码器层作为获取多方面文档的新…

Win11版本21H2怎么升级为23H2?升级详细步骤在此!

在Win11电脑操作中,用户目前使用的版本是21H2,现在想体验23H2版本的先进功能,但不知道要怎么操作才能将系统版本升级为23H2?接下来小编给大家介绍详细的升级方法步骤,助力大家轻松完成系统版本升级操作。 方法一&#…

05眼动识别软件详情2波形优化-滤波

对应视频链接点击直达 01项目点击下载,可直接运行(含数据库) 05眼动识别软件详情2 对应视频链接点击直达期望的数据展示数据波形对比如何实现几种常用滤波介绍维纳滤波巴特沃斯滤波器中值滤波排序滤波 推荐 结语其他以下是废话 原始数据的波…

CentOS 7.9上创建的JBOD阵列恢复(二)

系列文章目录 CentOS 7.9上创建JBOD(一) CentOS 7.9检测硬盘坏区、实物定位(三) 文章目录 系列文章目录前言一、用命令查看是否认到盘二、直接组JBOD三、挂载到新目录四、查看原数据总结 前言 在CentOS 7.9上创建了一个软阵列JB…

SQL触发器基本结构

1. 修改分隔符的符号 delimiter $$ $$或者//都可以 2.创建触发器的名称 create trigger 函数名称 3. 什么样的操作会触发,操作的那个表 after:....之后触发 befor:....之前触发 insert:插入被触发 update:修改被触发 …

Kibana 一步步可视化实战构建步骤全集

今早读者朋友圈提及:《一本书讲透Elasticsearch》适合入门级体系化阅读,书中的3个项目实战,很适合实操,但是在建立Kibana可视化的过程中,书中没有明确构建步骤,在实操中会有缺憾。 我解释一下: …

AI实战 | 使用元器打造浪漫仪式小管家

浪漫仪式小管家 以前我们曾经打造过学习助手和待办助手,但这一次,我们决定创造一个与众不同的智能体,而浪漫将成为我们的主题。我们选择浪漫作为主题,是因为我们感到在之前的打造过程中缺乏了一些仪式感,无法给对方带来真正的惊喜。因此,这一次我们计划慢慢调试,将它发…

Python xml.dom.minidom 读取XML元素

哈喽,大家好,我是木头左! 什么是 XML? XML(可扩展标记语言)是一种用于描述数据结构和交换数据的标记语言。它被广泛用于 Web 应用程序中,用于存储和传输数据。XML 具有自描述性,因此…

文生视频开源产品的一些调研(一)

笔者尝试AI视频生成的几个特点: 玄学prompt,每个视频的prompt可能也需要微调很多次,需要找到使用模型的最佳prompt词组合,不恰当的比喻,骑自行车,座位高度等都是人与车彼此熟悉玄学生成,因为需…

第二证券:英伟达“利空”?!黄仁勋逢高又卖超2亿

时隔9个月,黄仁勋再次套现英伟达,股价小幅下跌。 当地时间6月17日周一,美股三大股指全线收涨。到收盘,道指涨0.49%,纳指涨0.95%,标普500指数涨0.77%。 英伟达CEO黄仁勋时隔9个月再度出售英伟达股票。最新…

基于spring的个人理财系统

需求概述 建设目标 个人理财项目的项目建设目标如下:完成用户注册、登录、用户唯一性验证、记账管理、预算管理、个人信息、修改密码等功能,实现完整的理财流程。 运行环境 1.系统硬件环境 (1)服务器端 名称 配置…

STM32学习笔记(六)--引脚重映射详解

STM32F103C8T6引脚定义: 在STM32微控制器中,外设引脚的复用功能(Alternate Function,AF)有时会出现冲突,例如当USART2_CTS和TIM2_CH1同时需要使用相同的引脚时。此时,可以通过引脚重映射功能&am…

入门三.HTB--Dancing(6.18)

大佬 https://www.cnblogs.com/Hekeats-L/p/16535920.html 任务1 SMB 即Server Message Block(服务器消息块),是一种文件共享协议。当文件原件在你的A电脑上,而你想在局域网下用你的手机、iPad或是另一台电脑来访问A电脑上的该文…

【AI工具】探索创意与效率:xs.tools 网站介绍

在这个数字化时代,工具的创新和效率对我们的日常工作和生活至关重要。"xs.tools" 网站是一个汇集了众多有趣且实用的小工具的平台,它不仅帮助用户快速找到所需的工具,还能激发灵感,提升创造力。 一、网站概览 "xs.tools" 提供了一个简洁而直观的界面…

Centos7如何扩容未做lvm的GPT硬盘

背景:一台根分区为2.5T(已转换GPT格式)的虚拟机使用率达到97%,需要扩容,但是又没做lvm 通过平台新增容量1.5T,如下可看到 安装growpart准备扩容: yum install cloud-utils-growpart -y 执行命令growpart报错&#xff…