D1 The AArch64 System Level Programmers' Model 中文翻译
D1 The AArch64 System Level Programmers’ ModelAArch64 系统级程序员模型 译者注: 本文档是 ARM Architecture Reference Manual for A-profile architecture 中 Chapter D1 的完整中文翻译。原文来自 ARM DDI 0487 文档。翻译过程中尽量保留技术细节和术语一致性。 D1.1 异常级别(Exception levels) D1.1 Exception levelsRFYTFG 架构定义了四个异常级别:EL0、EL1、EL2 和 EL3。 RVPSDB EL3 是最高的异常级别,EL0 是最低的。因此,EL3 高于 EL2,EL2 高于 EL1,EL1 高于 EL0。 RNXCRB 处理单元(PE)必须实现 EL1 和 EL0。 RKPZJW 具有 FEAT_RME 特性的处理单元必须实现 EL3 和 EL2。在不具有 FEAT_RME 特性的处理单元中,以下全部适用: EL3 是否实现由实现定义(IMPLEMENTATION DEFINED)。 EL...
D7 The AArch64 System Level Memory Model 中文翻译
D7 The AArch64 System Level Memory ModelAArch64 系统级内存模型 译者注: 本文档是 ARM Architecture Reference Manual for A-profile architecture 中 Chapter D7 的完整中文翻译。原文来自 ARM DDI 0487 文档。翻译过程中尽量保留技术细节和术语一致性。 D7.1 关于内存系统架构(About the memory system architecture)D7.1 关于内存系统架构 ARM架构支持不同的内存系统微架构和内存层次结构的实现方案,具体取决于所实现系统的需求。在这方面,内存系统架构描述了一个进行实现的设计空间。架构并未规定内存系统的特定形式。关键概念以抽象的方式呈现,使得可以在做出实现选择的同时,能够开发通用的软件例程,而这些例程无需针对特定的内存系统微架构形式。以下关于分层内存系统概念的更多信息,请参见Memory hierarchy。 如果实现了FEAT_MTE2,则除非《Memory Tagging Extension》中另有规定,否则适...
ARM架构验证Co-Simulation盲区系统化分析方法论
背景:在前序工作《ARM架构验证中ISA仿真无法覆盖的测试点分析》中,我们通过关键词扫描(P0/P1/P2)识别了40个co-simulation blind spot。过程中发现了一个核心问题——EPDn盲区被遗漏了。根因是关键词”TLB miss”不在扫描模式中。这触发了更深层的思考:关键词扫描永远有漏,我们需要一个不依赖特定关键词的系统化方法论。 本文定义从架构规范结构出发的盲区分析方法:从关键词驱动的第一层扫描,到架构不变式驱动的第二层结构扫描,再到章节深度分析的第三层。这套方法论的目标是让盲区发现过程可重复、可审计、可改进。 1. Co-Simulation Blind Spot 的充分条件1.1 通用条件一个架构行为是 co-simulation blind spot 当且仅当: 架构规范将行为的定义建立在 ISA 仿真器无法复现的微架构状态或事件之上。 即:规范定义的行为路径选择依赖一个条件 C,ISA 总是取路径 P1(因为 ISA 没有 μarch 状态),而 RTL 可以取 P2(因为 RTL 有 μarch 状态),且 P1 与...
AMBA CHI Architecture Spec 解读 — B1 Introduction
AMBA CHI Architecture Spec 解读 — B1 IntroductionAMBA CHI(Coherent Hub Interface)是 ARM 推出的高性能片上互联协议,从 AMBA ACE 演进而来,面向 16+ 核的缓存一致性多核 SoC 设计。本文基于 IHI 0050 H(2025年9月发布的最新版),解读第一章 B1 Introduction。 一、CHI 是什么?CHI 的全称是 Coherent Hub Interface。它定义了 SoC 中各个组件(CPU、GPU、DMA、内存控制器)之间如何通过互联网络进行通信,核心能力是: 硬件缓存一致性 — 多核共享内存时,硬件自动保证各核看到的数据一致 高带宽低延迟 — 基于 Flit(flow control unit)的包交换,而非 ACE 的通道握手 灵活的拓扑 — 支持 Mesh、Ring、Crossbar 等多种互联拓扑 事务化接口 — 所有通信以”事务”为单位,包括读写、原子操作、缓存注入等 对比 ACE/AXI 的主要改进: 维度 ACE/AXI...
AMBA CHI Architecture Spec 解读 — B2 Transactions
AMBA CHI Architecture Spec 解读 — B2 TransactionsB2 Transactions 是 CHI Spec 中最长的章节(139页),定义了 CHI 协议的核心通信单元——事务(Transaction)。理解了 B2,就理解了 CHI 的”词汇表”和”语法”。 一、章节结构总览B2 分为 10 个子节: 节 标题 核心内容 B2.1 Channels overview 4条物理通道(REQ/WDAT/SRSP/CRSP/RDAT/SNP) B22 Channel fields REQ/RSP/SNP/DAT 各通道的字段定义 B2.3 Transaction structure 8大类事务的完整消息流图 ⭐ B2.4 Transaction identifier fields 16种标识符字段详解 B2.5 Transaction identifier field flows 各种事务中标识符如何在节点间传递 B2.6 Mu...
ARM D4章 嵌入式跟踪扩展(Embedded Trace Extension)完整中文翻译
Chapter D4嵌入式跟踪扩展(The Embedded Trace Extension)原文:ARM DDI 0487, The Embedded Trace Extension完整中文翻译版 — 原文逐句翻译,保留全部ARM标签ID本章描述嵌入式跟踪扩展(Embedded Trace Extension,简称ETE)。包含以下章节: D4.1 关于嵌入式跟踪扩展 D4.2 编程人员模型 D4.3 跟踪元素 D4.4 指令和异常分类 D4.5 关于ETE跟踪单元 D4.6 资源操作 D4.1 关于嵌入式跟踪扩展(About the Embedded Trace Extension)IJTPNL FEAT_ETE 描述了一个跟踪单元(trace unit)的操作。跟踪单元提供在 PE 上运行的软件控制流的详细信息,这些信息可用于辅助调试或优化。跟踪单元提供过滤功能,允许将信息定位到特定的代码区域或操作时段。 ILVKQS FEAT_ETE 与 ETMv4 架构有重叠部分,同时也为新的架构特性提供支持。有关 ETMv4 架构的更多信息,参见 Arm 嵌入式跟踪宏单元架构规...
ARM AArch64 应用程序级程序员模型中文翻译
Chapter B1 AArch64应用程序级程序员模型(The AArch64 Application Level Programmer’s Model)B1.1 关于应用程序级模型(About the application-level model)Chapter B1AArch64 应用程序级程序员模型(The AArch64 Application Level Programmers’ Model) 本章描述了 AArch64 应用程序级程序员模型。它包含以下几节: 关于应用程序级程序员模型。 AArch64 执行状态下的寄存器。 进程状态 PSTATE。 可伸缩向量扩展与可伸缩矩阵扩展(SVE 和 SME)。 软件控制特性与 EL0。 B1.1 关于应用程序级程序员模型(About the Application level programmers’ model)本章包含应用程序开发所需的程序员模型信息。 本章所提供的信息与为操作系统或更高级系统软件下支持应用程序执行所需的系统信息是有所区别的。然而,仍需要对系统信息有一定了解,才能将应用程序级程序员模型置于正确的...
ARM AArch64 应用程序级内存模型中文翻译
Chapter B2 AArch64应用程序级内存模型(The AArch64 Application Level Memory Model)B2.1 关于Arm内存模型(About the Arm memory model)B2.1 关于Arm内存模型 Arm架构是一种弱有序(weakly ordered)内存架构,它允许内存访问的观察(observation)和完成(completion)顺序与程序顺序(program order)不同。本章后续各节提供了内存模型的完整定义。 本节包含以下内容: 地址空间(Address space)。 内存类型概述(Memory type overview)。 SVE内存模型(SVE memory model)。 SME内存模型(SME memory model)。 B2.1.1 地址空间(Address space)地址计算使用64位寄存器执行。 然而,监管软件(supervisory software)可以将顶部八个地址位配置为用作标签(tag),如地址标记(Address tagging)中所述。如果这样配置,地址位[63:56...
ARM架构验证中ISA仿真无法覆盖的测试点分析(完整版)
背景:在CPU TOP验证中,通常使用ISA(指令集仿真器)+ RTL(寄存器传输级)协同仿真(co-simulation)的方法:同一段程序在ISA和RTL上同时运行,对比结果来验证架构行为正确性。但有些行为是ISA仿真器无法建模的,导致co-sim无法给出有意义的比对结果。本文基于ARM DDI 0487 Architecture Reference Manual,系统梳理这些盲区。 一、TLB 架构 (D8 + K1)1.1 Fault 缓存不对称性(D8.15.1)不同类型的页表fault在TLB中的缓存行为完全不同: Fault类型 是否被TLB缓存 Spec Tag Translation fault 不缓存 RMLNTS, IXFTPJ Address size fault 不缓存 RGGQPR, IPBYZQ Access flag fault 不缓存 IPNQBP, ITQXPT Permission fault 会被缓存 RJVXRH, IWJLXV Spec原文(Permission fault): “A translat...
CPU验证领域Self-Check方法大全
作者: AI Assistant日期: 2025-05-21标签: CPU Verification Self-Check RISC-V Formal Verification SBST SQED 一、什么是 Self-Check?Self-Check(自检) 是指在 CPU 验证过程中,测试本身就能自动判断结果是否正确,而无需人工查看波形(VCD)或日志文件。 核心思想转变: 12345❌ 传统方法: 执行测试 → 转储波形/VCD → 人工盯着看 → 发现问题✅ Self-Check 方法: 执行测试(内嵌断言/比较逻辑) → 自动报 PASS/FAIL 一个好的 self-check 框架能让验证效率提升 数个数量级,是工业级 CPU 验证的基石。 二、验证层级全景图CPU 验证的 self-check 方法覆盖从指令级到系统级的多个层级: 12345678910111213┌─────────────────────────────────────────────┐│ 系统级 Self-Check │...