西安网站建设gj,建立网站的价格,怎么看网站后台网页尺寸,不显示修改的wordpress目录
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;应该会产生如下疑问#…目录
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 的TBItop 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系统级cacheSLC system level cache。例如在L1 data cache时4 bit的MTE tag存放在cache line tag ram。 为了存放memory tag 到 不支持MTE 功能的DDR内存控制器DMCDDR memory controllerCI-700 的memory tag slave interfaceMTSX连接不支持memory tag功能的 AXI/ACE-Lite DMC 到 支持MTE的CI-700 。 在MTSX中 MTUmemory 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 CacheTC用来存放本地tag。这个配置用于更快的访问tag、减少AXI/ACE-Lite的拥堵。下图显示了MTU分割单元怎样将一个CHI-E MTE传输分割为 AXI/ACE-Lite数据和tag请求默认Tag cache和Tag check单元怎样工作。