当前位置: 首页 > news >正文

Linux Mem -- Where the mte store and check in the real hardware platform

目录

1 前言

2 MTE tag分类

3 Address tag

4 Memory tag

5 Tag Check

6 Cortex-A710 和 CI-700 系统示例:


1 前言

        ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后,应该会产生如下疑问:MTE tag是被存在在哪里、是怎样进行检查的在实际的硬件平台?是的,带着这个疑问查阅了好多资料,最终在ARM官方找到了答案。如下内容来自Documentation – Arm Developer

2 MTE tag分类

        MTE包含两中类型的tags: address tag 和memory tag,也被叫做lock 和 key。

        Address tag : 做为key角色,添加4 bit的数据到虚拟地址的高位处。这依赖于Aarch64 的TBI(top bit ignore)特性。

        Memory tag:做为lock角色,memory tag也是由4 bit数据组成,关联到16字节对齐的物理内存区域,Arm以16字节的内存区域做为tag粒度。Memory tag的存储实现由硬件实现。

3 Address tag

        当MTE和TBI使能时,虚拟地址的bit[59:56]用来存放address tag。

        MTE架构中也包含一些指令,如IRG、ADDG、SUBG 用于操作address tag。例如:

                IRG Xd, Xn ;给存放在Xn寄存器的地址添加随机逻辑address tag,然后将结果写入到Xd寄存器。

                ADDG Xd, Xn, #<uimm6>, #<uimm4>; 将存放子在Xn寄存器的地址添加立即数 #<uimm6>,然后使用#<uimm4>修改上一步计算后的地址的Address tag,将最终的结果存放到Xd寄存器。

4 Memory tag

        关联到16字节对齐的 4 bit 的memory tag是存放在系统内存,能够被缓存到CPU的处理器cache 或者系统缓存。逻辑上,每16字节的内存有一个4 bit  tag。

        从架构角度,memory tag是不能通过确定地址进行访问,可以通过其关联的数据地址进行访问。

        MTE架构包含一些指令,如STG、STGZ、STG2G、STZ2G 用于存放虚拟地址的address tag到tag storage。以STG X0,[X0]指令为例,该指令用于存放X0寄存器的Allocation tag到tag内存, 该tag内存和X0寄存器的虚拟地址关联,如下图显示:

5 Tag Check

        当MTE使能,使用load/store 方式访问以标记的内存时,tag check硬件将比较要访问的内存地址的address tag 和与内存地址关联、存放在tag storage的 memory tag。

        Tag check 失败时会触发同步数据异常或者异步异常,同步或者异步异常方式取决于SCTLR_Elx.TCF寄存器的配置。

6 Cortex-A710 和 CI-700 系统示例:

        MTE的memory tag 存放在Cortex-A710的L1 data cache、L2cache、DSU L3 cache和CI-700 HN-F系统级cache(SLC :system level cache)。例如在L1 data cache时,4 bit的MTE tag存放在cache line tag ram。

        为了存放memory tag 到 不支持MTE 功能的DDR内存控制器(DMC:DDR memory controller),CI-700 的memory tag slave interface(MTSX)连接不支持memory tag功能的 AXI/ACE-Lite DMC 到 支持MTE的CI-700 。 在MTSX中, MTU(memory tag unit)的分割逻辑将DRAM内存空间分割为两部分:data storage 和 tag storage。

        MTSX可以向AXI/ACE-Lite DMC生成单独的数据和标记请求,这样DMC就可以平等地对待数据存储和标记存储访问,而不需要知道它是数据请求还是标记请求。数据存储和标记存储可以驻留在同一DDRAM中。

        软件需要编写tag 基地址的信息到MTSX地址寄存器,用来告知MTU系统tag storage所在的DDRAM空间。MTU能够使用该信息计算16字节数据地址对应的 4bit memory tag的所在的内存地址。

        MTU也包含一个tag check逻辑单元。默认情况,MTSX也包含一个 Tag Cache(TC)用来存放本地tag。这个配置用于更快的访问tag、减少AXI/ACE-Lite的拥堵。下图显示了MTU分割单元怎样将一个CHI-E MTE传输分割为 AXI/ACE-Lite数据和tag请求,默认Tag cache和Tag check单元怎样工作。

相关文章:

Linux Mem -- Where the mte store and check in the real hardware platform

目录 1 前言 2 MTE tag分类 3 Address tag 4 Memory tag 5 Tag Check 6 Cortex-A710 和 CI-700 系统示例&#xff1a; 1 前言 ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后&#xff0c;应该会产生如下疑问&#…...

连锁企业管理系统的五大核心功能

连锁管理系统对于连锁企业的运营和发展至关重要&#xff0c;以下以核货宝连锁管理系统为例&#xff0c;介绍其五大核心功能&#xff1a; 门店管理功能 门店信息管理&#xff1a;核货宝连锁管理系统可集中管理所有门店的详细信息&#xff0c;包括门店地址、联系方式、营业时间、…...

Docker配置镜像加速-解决黑马商城部署Mysql失败问题

随着 Docker 在容器化应用中的广泛应用&#xff0c;越来越多的开发者选择通过 Docker 来简化开发和部署过程。然而&#xff0c;在使用 Docker 部署应用时&#xff0c;有时会遇到因为镜像下载速度慢或者 MySQL 部署失败等问题&#xff0c;特别是在中国地区&#xff0c;由于网络环…...

Cherno C++ P54 内存:栈与堆

这篇文章我们来谈论一下计算机的内存。在这里&#xff0c;我们着重讨论内存的两个部分&#xff1a;栈与堆。我们需要注意的一点是&#xff0c;这两个概念不是虚拟的&#xff0c;而是在计算机内部真实存在的。它们是我们的CPU当中RAM部分物理上存在的两个区域。我们之所以要重点…...

对项目交接的一些思考

天下大势&#xff0c;分久必合合久必分。这些年交接了很多项目&#xff0c;也从别人那里接手了很多项目。最近又接收了一些项目&#xff0c;但团队接收的效果不是很好&#xff0c;或者说掌握的不全面&#xff0c;所以就在想怎么能够做的更好一些&#xff1f; 团队关系 其实我…...

【PYTORCH】官方的turoria实现中英文翻译

参考 https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html 背景 pytorch官方的是seq2seq是法语到英文&#xff0c;做了一个中文到英文的。 数据集 下载后解压&#xff0c;使用的data\testsets\devset\UNv1.0.devset.zh和UNv1.0.devset.en&#x…...

【算法与数据结构】并查集详解+题目

目录 一&#xff0c;什么是并查集 二&#xff0c;并查集的结构 三&#xff0c;并查集的代码实现 1&#xff0c;并查集的大致结构和初始化 2&#xff0c;find操作 3&#xff0c;Union操作 4&#xff0c;优化 小结&#xff1a; 四&#xff0c;并查集的应用场景 省份…...

【动态路由】系统web url整合系列【springcloud-gateway实现】【不改hosts文件版】组件一:多个Eureka路由过滤器

需求 实现URL web资源整合&#xff0c;实现使用一个web地址访问多个web资源 方案 本方案使用SpringCloud Gateway实现&#xff0c;不需要在hosts文件加添加域名映射&#xff08;也不需要定义一系列域名&#xff09;&#xff0c;通过url路径来将请求转发到不同的Web资源 如&…...

Mybatis-扩展功能

逻辑删除乐观锁 MyBatisPlus从入门到精通-3&#xff08;含mp代码生成器&#xff09; Db静态工具类 Spring依赖循环问题 代码生成器 MybatisPlus代码生成器 枚举处理器 我们这里用int来存储状态 需要注解&#xff0c;很不灵活 希望用枚举类来代替这个Integer 这样的话我…...

基于SpringBoot实现的大学社团平台系统实现功能六

一、前言介绍&#xff1a; 1.1 项目摘要 随着高校社团活动的日益丰富和多样化&#xff0c;学生对于社团管理和参与的需求也在不断增加。传统的社团管理方式往往存在效率低下、信息不透明等问题&#xff0c;无法满足现代学生对于便捷、高效社团管理的需求。因此&#xff0c;利…...

电子电气架构 --- 机器学习推动车载雷达的发展

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...

python从入门到进去

python从入门到进去 第一章、软件和工具的安装一、安装 python 解释器二、安装 pycharm 第二章、初识 python一、注释可分三种二、打印输入语句三、变量1、基本数据类型1.1、整数数据类型 int1.2、浮点数数据类型 float1.3、布尔数据类型 boolean1.4、字符串数据类型 string 2、…...

智能化客户画像构建管理:AI视频监控在大型商场的技术

前言&#xff1a;某商家为了优化卖场服务与营销策略&#xff0c;希望通过非侵入式手段获取客户画像&#xff0c;不仅可以帮助卖场提升服务质量、优化营销策略&#xff0c;还能通过数据驱动的方式提升销售业绩和顾客满意度&#xff0c;为卖场的长期发展奠定坚实的基础。 具体需求…...

php 拼接字符串

php 拼接字符串 .连字符"Hello, $name" 双引号内会解析变量"Hello, {$name}Doe" 使用花括号可以更明确标识变量名sprintf("Hello, %s", $name) 使用sprintfheredoc语法&#xff0c;同样支持变量的解析$html <<<EOT <p>Hello, $…...

Deepseek实用万能提问模板

一&#xff0c;背景需求约束条件 背景:提供与问题相关的时间、地点、人物、事件等信息&#xff0c;帮助 DeepSeek 更好地理解问题的情境。 需求:清晰明确地阐述你希望 DeepSeek完成的任务或提供的信息。 约束条件:可根据具体情况&#xff0c;对回答的范围、格式、字数等进行…...

MySQL、MariaDB 和 TDSQL 的区别

MySQL、MariaDB 和 TDSQL 是三种不同的数据库管理系统&#xff0c;它们在设计理念、功能、性能和使用场景上有一些显著的区别。 以下是对这三者的详细比较和介绍。 1. MySQL 概述 类型&#xff1a;关系型数据库管理系统&#xff08;RDBMS&#xff09;。开发者&#xff1a;最…...

Android车机DIY开发之软件篇(十七) Android模拟器移植Automotive

AndroidProducts.mk 路径&#xff1a; /device/generic/goldfish/pc/AndroidProducts.mk sdk_pc_x86_64.mk路径&#xff1a; /device/generic/goldfish/pc/sdk_pc_x86_64.mk sdk_car_x86_64.mk路径&#xff1a; /device/generic/goldfish/car/sdk_car_x86_64.mk BoardConfig.mk…...

[Unity角色控制专题] (借助ai)详细解析官方第三人称控制器

首先模板链接在这里&#xff0c;你可以直接下载并导入unity即可查看官方为开发者写好一套控制器 本文的ai工具用到了豆包&#xff0c;其灵活程度很高&#xff0c;总结能力也强过我太多 因此大量使用&#xff0c;不喜勿喷 Starter Assets - ThirdPerson | Updates in new Charac…...

【数据结构基础_链表】

1、链表的定义 链表与数组的区分&#xff1a; 数组是一块连续的内存空间&#xff0c;有了这块内存空间的首地址&#xff0c;就能直接通过索引计算出任意位置的元素地址。 数组最大的优势是支持通过索引快速访问元素&#xff0c;而链表就不支持。链表不一样&#xff0c;一条链…...

Java 实现 Redis中的GEO数据结构

Java 实现 Redis中的GEO数据结构 LBS &#xff08;基于位置信息服务&#xff08;Location-Based Service&#xff0c;LBS&#xff09;&#xff09;应用访问的数据是和人 或物关联的一组经纬度信息&#xff0c;而且要能查询相邻的经纬度范围&#xff0c;GEO 就非常适合应用在 …...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

多模态图像修复系统:基于深度学习的图片修复实现

多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...