ARM-A架构入门基础(四)Cache

news2024/11/25 16:26:21

14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》

1. 定义

Cache是ARM中一块可高速访问的内存块,每块cache包含:

  1. 主要的内存地址信息;
  2. 缓存数据。

2. Cache模型

在这里插入图片描述

速度方面:L1 cache > L2 cache > L3 cache
容量方面:L1 cache < L2 cache < L3 cache

多级Cache工作流程:
当CPU试图从某地址载入数据时,首先从L1 cache中查询是否命中,如果命中则把数据返回给CPU,如果L1 cache缺失,则继续从L2 cache中查找。当L2 cache命中时,数据会返回给L1 cache及CPU。如果L2 cache中也缺失,很遗憾,我们需要从主存中加载数据,将数据返回给L2 cache、L1 cache和CPU。这种多级cache的工作方式称为inclusive cache(某一地址的数据可能存在多级缓存中)。与inclusive cache对应的是exclusive cache,这种cache保证某一地址的数据缓存只会存在于多级cache的其中一级,也就是说任意地址的数据不可能同时在L1和L2 cache中。

3. 术语和基本概念

在这里插入图片描述

Tag是存储在缓存中的内存地址的一部分,用于标识与一行数据关联的主内存地址。64位地址的顶部位告诉缓存信息来自主存的位置,称为标记。虽然计算中不包括用于保存标记值的RAM,但总缓存大小是它可以保存的数据量的度量。但是,标记确实会占用缓存中的物理空间。
为每个标记地址保存一个字的数据效率很低,因此通常会将多个位置分组在同一个标记下。这个逻辑块通常被称为Cache Line,指的是缓存中最小的可加载单元,即来自主存的连续字块。缓存线包含缓存数据或指令时称为有效,不包含缓存数据或指令时称为无效。
与每行数据关联的是一个或多个状态位。通常,您有一个有效位,将该行标记为包含可使用的数据。这意味着地址标签代表一些实际值。在数据缓存中,还可能有一个或多个脏位,用于标记缓存线(或缓存线的一部分)是否包含与主内存内容不同(更新)的数据。
索引是内存地址的一部分,用于确定可以在缓存的哪些行中找到地址。地址或索引的中间位标识行。索引用作缓存RAM的地址,不需要存储作为标记的一部分。本章后面将详细介绍这一点。
路径是缓存的细分,每条路径大小相同,索引方式相同。一个集合由共享特定索引的所有方式的缓存线组成。
这意味着地址底部的几个位(称为偏移量)不需要存储在标记中。需要一整行的地址,而不是该行中的每个字节的地址,因此五或六个最低有效位始终为0。

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

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

相关文章

从json中获取嵌套对象值(Oracle中的json_value和MySQL中的JSON_EXTRACT) 以及Oracle和MySQL处理日期语法的不同

从json中获取嵌套对象值&#xff08;Oracle中的json_value和MySQL中的JSON_EXTRACT&#xff09; 以及Oracle和MySQL处理日期语法的不同1. 从json中获取嵌套对象值1.1 Oracle 的 json_value1.2 MySQL 的 JSON_EXTRACT2. 日期问题2.1 MySQL2.1.1 获取指定日期2.1.1.1 DATE_SUB() …

高等数学(第七版)同济大学 习题10-4 (后7题)个人解答

高等数学&#xff08;第七版&#xff09;同济大学 习题10-4&#xff08;后7题&#xff09; 函数作图软件&#xff1a;Mathematica 8.设球占有闭区域Ω{(x,y,z)∣x2y2z2≤2Rz}&#xff0c;它在内部各点处的密度的大小等于该点到坐标原点的距离的平方&#xff0c;试求这球的质心…

九、Sentinel熔断与限流

Sentinel实现熔断与限流 Sentinel介绍 官网 https://github.com/alibaba/Sentinel 中文 https://github.com/alibaba/Sentinel/wiki/介绍 是什么 一句话解释&#xff0c;之前的Hystrix 能干嘛 去哪下 https://github.com/alibaba/Sentinel/releases 怎么玩 https://sp…

vue学习笔记:还不会上传文件,10分钟教会你使用input file上传文件

最近在写一个用户上传MP3文件到服务器的小案例&#xff0c;我写一个这样的界面&#xff1a; 当用户点击input的时候&#xff0c;其实这里并不是input的样式&#xff0c;而是一个div将代替了input的原生样式&#xff0c;这样比较好看一点&#xff1a; <div class"addre…

Pycharm 安装配置 pyQt5 图文操作(全)

目录前言1. 安装模块2. Pycharm 配置 pyQt52.1 配置QtDesigner2.2 配置PyUic2.3 配置pyrcc3. pyQt5界面前言 Qt是开源的GUI库&#xff0c;自带的QtDesigner 可以轻松构建界面&#xff0c;而且有非常全面的工具代码库和APIpyQt 是 Qt 库的Python版本&#xff0c;目前最新版本是…

数据库--------代数运算和关系运算

目录 传统的集合运算专门的关系运算例题1例题2关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。 传统的集合运算 并(∪): 差(-): 交(∩): 笛卡尔积():R的每一行S的矩阵 示例:

A-Level化学例题解析及练习(分子间作用力和沸点)

今日知识点&#xff1a;Intermolecular forces and boiling points 例题 Q: Nitrogen, N2, and carbon monoxide, CO, both have Mr 28. The boiling point of N2 is 77 K. The boiling point of CO is 82 K.What could be responsible for this difference in boiling point…

[附源码]计算机毕业设计JAVA校园共享单车系统

[附源码]计算机毕业设计JAVA校园共享单车系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…

LinkedList源码分析

LinkedList源码分析 注意:本笔记分析对象为 Java8 版本,随版本不同,源码会发生变化。 基本介绍与类图 LinkedList 同时实现了 List 接口和 Deque 对口,也就是收它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(stack)。 这样看来,linke…

能力提高篇--协调能力【对接】

作为一名安防技术支持工程师&#xff0c;正常情况下我们的日常主要为解决问题&#xff0c;然而对于重大项目或者复杂项目&#xff0c;更多的情况下我们的职责为收集客户需求&#xff0c;拉通研发侧评估&#xff0c;确认需求&#xff0c;确认程序交付时间&#xff0c;测试和最终…

基于jsp+mysql+ssm协同办公系统-计算机毕业设计

项目介绍 本公司文档协同办公管理系统采用SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架开发,主要包括系统用户管理模块、用户信息模块、文件信息管理、个人事务管理、资料信息管理、登录模块、和退出模块等多个模块. 本系统主要包含了等系统用户管理、用户信息管理…

蓝桥杯---动态规划(1)

动态规划专题&#xff08;1&#xff09;1.糖果&#xff08;状压dp&#xff09;2.调手表&#xff08;状压dp)3.矩阵计数(状压dp)4.蒙德里安的梦想&#xff08;状压dp模板题&#xff09;5.跳跃&#xff08;动态规划&#xff0c;搜索&#xff09;5.字符排序&#xff08;逆序对&…

如何定位慢查询SQL以及优化

&#x1f468;‍&#x1f4bb;个人主页&#xff1a; 才疏学浅的木子 &#x1f647;‍♂️ 本人也在学习阶段如若发现问题&#xff0c;请告知非常感谢 &#x1f647;‍♂️ &#x1f4d2; 本文来自专栏&#xff1a; MySQL ❤️ 支持我&#xff1a;&#x1f44d;点赞 &#x1f33…

个人健康监测小程序开发,多元化健康生态管理平台

生活水平的提升让人们对身体健康的关注度越来越高&#xff0c;健康生活的意识越来越浓烈。现在很多人的身体都处于一种亚健康的状态&#xff0c;因此需要定时进行体检&#xff0c;及时了解自身健康状况。但是由于工作或者其他原因&#xff0c;很多人都难以抽出时间到医院进行定…

Web3中文|“你们眼中的互联网革命,是我生活的日常”

来源 | coindesk 编译 | BoweniNFTnews.com 中心化产品会发生单点故障。 10月4日&#xff0c;社交网站Facebook遭遇六小时的网络中断&#xff0c;从其子公司 Instagram 和 Whatsapp 到其实体工厂都受到影响。 据称这是该社交网站有史以来最严重的一次服务中断。相关消息显示…

数据结构(7)树形结构——红黑树(概念、插入过程、删除过程)

7.1.概述 平衡二叉树是要求任意结点的左右子树高度差不超过1&#xff0c;因此在AVL中用旋转来保证树的绝对平衡&#xff0c;但是这些旋转操作步骤繁多很耗时间&#xff0c;所以在面对经常会有数据插入的场景时&#xff0c;AVL不是一个性能优秀的选择。这时候反过来思考一个问题…

图神经网络简介

本篇文章是我在2022年阅读完distill上一篇文章"A Gentle Introduction to Graph Neural Networks"后自己的一些心得。 目录 一、不同类型的数据如何以图的形式保存 二、图结构可以处理的问题 三、图机器学习的挑战 四、图神经网络 一、不同类型的数据如何以图的…

【智能优化算法-算术算法】基于算术优化算法 (MAOA)求解多目标优化问题附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

Java并发编程—java中守护线程和用户线程

一、概念&#xff1a; ​ 守护线程&#xff1a;是一种特殊的线程&#xff0c;在后台默默地完成一些系统性的服务&#xff0c;比如垃圾回收线程 ​ 用户线程&#xff1a;是系统的工作线程&#xff0c;它会完成这个程序需要完成的业务操作&#xff1b;我们使用 Thread类创建的线…

求先序遍历序列中第(1<=k<=二叉树中结点个数)个结点的值

本题本质上就是一个遍历算法的实现&#xff0c;只不过用一个全局变量的来记录访问的序号&#xff0c;求其他遍历序列的第k个结点也采用相似的方法。二叉树的遍历算法可以引申出大量的算法题&#xff0c;因此考生务必熟练掌握二叉树的遍历算法。 C语言代码&#xff1a; //本题本…