AMBA CHI架构以及规范中使用的术语 翻译笔记(1)

本章介绍了CHI架构以及在整个规范中使用的术语。它包含以下部分:

  • B1.1架构概述
  • B1.2拓扑结构
  • B1.3术语
  • B1.4事务分类
  • B1.5共同性概览
  • B1.6组件命名
  • B1.7读数据源

B1.1架构概述

CHI 架构是一种可扩展、一致性的枢纽接口及片上互连结构,可供多个组件使用。CHI 架构支持根据性能、功耗及面积系统需求,组件连接采用灵活的拓扑结构。

B1.1.1 组件

基于 CHI 的系统组件可包括:

  • 独立处理器
  • 处理器集群
  • 图形处理器
  • 内存控制器
  • I/O 桥接器
  • PCIe 子系统
  • 互连组件

B1.1.2 关键特性

该架构的核心特性包括:

  • 可扩展架构,支持从小型到大型系统的模块化设计;
  • 独立分层架构,包含协议层、网络层与链路层,各层具备独立功能;
  • 基于数据包的通信机制;
  • 所有事务均由基于互连架构的主节点处理,该主节点协调所需的嗅探器、缓存及内存访问资源;
  • CHI 一致性协议支持以下功能:1)64 字节缓存行的一致性颗粒;2)用于缓存扩展的窥探过滤器及目录机制;3)同时支持 MESI 和 MOESI 缓存模型,可从任意缓存状态转发数据。-- 额外的部分及空缓存行状态;
  • CHI 事务集包括:1) 丰富的事务类型,可实现性能、面积及功耗优化的系统缓存实现;2)支持互连中的原子操作与同步机制;3)支持高效执行独占访问;4)支持高效的数据移动与定位事务,确保数据及时传输至预期使用点附近;5)通过分布式虚拟内存(DVM)操作实现虚拟内存管理;
  • 采用请求重试与资源规划协议进行资源管理;
  • 支持端到端服务质量(QoS);
  • 支持 ARM 内存标记扩展(MTE);
  • 支持 ARM 领域管理扩展(RME);
  • 可配置数据宽度,以满足系统需求;
  • 按交易逐次支持 ARM TrustZone™;
  • 采用生产者-消费者有序模型,优化具有一致性写入特性的事务流程;
  • 实现跨组件及互连结构的错误报告与传播,以保障系统可靠性与完整性;
  • 利用数据污染机制及按字节错误指示机制,处理子缓存行数据错误;
  • 在组件接口上实现功耗感知信号控制:1)启用 flit 级时钟门控;2)定义组件激活与停用顺序,以控制时钟门及功耗门;3)提供协议活动状态指示,用于功耗与时钟控制。

B1.1.3架构层

功能被划分为以下层级:协议层、网络层、链路层。

表 B1.1 描述了各层的主要功能。

|-----|--------|---------------------------------------------------------------------------------------------------------------|
| 层级 | 通信颗粒度 | 主要功能 |
| 协议层 | 事务 | 协议层是 CHI 架构中最顶层的层,协议层的功能包括: -- 在协议节点上生成并处理请求与响应; -- 在包含缓存的协议节点上定义允许的缓存状态转换; -- 为每种请求类型定义事务流程; -- 管理协议层级的流量控制。 |
| 网络层 | 数据包/分组 | 网络层的功能包括: -- 将协议消息分组化; -- 确定将数据包通过互连网络路由至目标目的地所需的源节点与目标节点 ID,并将这些信息添加到数据包中。 |
| 链路层 | 微片数据单元 | 链路层的功能是: -- 在网络设备之间提供流量控制; -- 管理链路通道,以在整个网络中实现无死锁的交换。 |

B1.2拓扑结构

CHI 架构原则上与拓扑结构无关。但本规范仍包含若干与拓扑结构相关的优化措施,以提升实现的效率。

图 B1.1 展示了三种选定的拓扑结构示例,用以呈现可用的互连带宽范围及可扩展性选项。

Crossbar 交叉总线拓扑结构易于构建,且天然能提供低延迟的有序网络。交叉总线拓扑结构适用于导线数量相对较少的情况。交叉总线拓扑结构适用于节点数量较少的互连系统。

Ring 环形拓扑在内部互连布线效率与延迟之间提供了权衡。延迟随环上节点数量的增加而线性增长。环形拓扑适用于中等规模的互连系统。

Mesh 网格拓扑结构以需要更多线缆为代价,提供了更大的带宽。网格拓扑结构非常模块化,可以通过增加更多行和列的交换机来轻松扩展至更大规模的系统。网格拓扑结构适用于大规模互连。

B1.3 术语

下列术语在本说明中具有特殊含义:

Transaction:事务执行单一操作。事务要么从内存读取数据,要么向内存写入数据。

Message:消息是协议层中的一个术语,用于定义两个组件之间的交换基本单元(按照协议进行数据交互的最小交换单位)。

示例包括:• 请求

• 数据响应

• 窥探请求

单个数据响应消息可由多个数据包组成。

Packet:数据包是节点间互连通道上的传输基本单元。一条消息可由一个或多个数据包构成,例如,单个数据响应消息可由1至4个数据包组成。每个数据包均包含路由信息(如目的端ID与源端ID),从而支持在互连通道上实现独立路由。

Flit :FLow control unIT(Flit)是最小的流控制单元。一个数据包可由一个或多个 Flit 组成。给定数据包中的所有 Flit 在互连网络中均沿相同路径传输。

注意:对于CHI,所有数据包均由单个flit组成。

Phit :PHysical layer transfer unIT(Phit)是两个相邻网络设备之间的一种传输方式。一个 flit 可由一个或多个 Phit 组成。

注意:对于CHI,所有flit均由单个phit组成。

PoS :Point of Serialization(PoS)是互连网络中的一个特定节点,用于确定来自不同代理的请求之间的顺序。对同一地址的多个内存请求做仲裁与排序,保证程序顺序语义

PoC :Point of Coherence(PoC)是指所有可访问内存的代理均能保证看到同一内存位置副本的临界点。在典型的基于 CHI 的系统中,PoC 即为互连结构中的 HN-F(Fully Coherent Home Node,即全一致性主节点,是 CHI 协议里真正"算一致性"的地方 ,也是整个一致性系统的"大脑"和"交通枢纽")。对某个内存地址而言,所有针对该地址的缓存一致性操作,都必须经过这里仲裁,才能保证所有核看到的数据版本和状态变迁是同一个顺序、同一个结果。

PoE :Point of Encryption(PoE)是指内存系统中,所有已到达该点的写入操作均会被加密的位置。

PoP :Point of Persistence(PoP)是内存系统中位于或位于一致性点之后的一个潜在位置,在该位置下,即使系统断电,对内存的写入操作仍会被保留;而当对内存中受影响区域重新供电时,这些写入操作可被可靠地恢复。

PoDP :Point of Deep Persistence(PoDP)是指内存系统中,即使主电源与备用电池同时失效,数据仍能得以保留的关键点。

PoPA :Point of Physical Aliasing(PoPA)是指在一个物理地址空间(PAS)中对某位置进行的更新,在所有其他物理地址空间中均可见的特定位置。

PoPS :Point of Physical Storage(PoPS)是指内存层次结构中距离 PE 或其他观测点最远、且写入事务可传播至该点的位置,即内存。

.......

B1.4 事务分类

本规范支持的协议事务及其主要分类列于表B1.2中。见P35

B1.5 一致性概述

硬件一致性使系统组件,能够在无需软件缓存维护的情况下,共享内存以维持一致性。

如果两个组件对同一内存位置的写入能被所有组件以相同顺序观察到,则该内存区域是coherent(一致)的。

B1.5.1 一致性模型

图 B1.2 展示了一个示例性一致性系统,该系统包含三个请求器组件,每个组件均配备本地缓存及一致性协议节点。该协议允许同一内存位置的缓存副本驻留于一个或多个请求器组件的本地缓存中。

一致性协议规定:每当在某个地址位置执行存储操作时,该地址位置上至多只能存在一个数据值的副本。该协议确保所有请求者在任何给定地址位置均能观察到正确的数据值。在每次对某地址位置执行存储操作后,其他请求者可获取该数据的新副本,以供其本地缓存使用,从而允许多个缓存副本共存。

缓存行被定义为一个以 64 字节为对齐单位的内存区域,所有一致性均在缓存行粒度上得到维护。主内存仅需在某个内存位置副本不再被任何缓存保留之前进行更新,一致性协议并不要求主内存始终处于最新状态。

注意:尽管并非强制要求,但在缓存副本仍存在的情况下,允许更新主内存。

一致性协议让请求器组件,能够判定某缓存行是否仅为特定内存位置的唯一副本,或该内存位置还存在其他副本。该协议确保以下特性:

• 若某缓存行仅为唯一副本,请求器组件可修改该缓存行的值,而无需通知系统中其他请求器组件;

• 若某缓存行亦可能存在于其他缓存中,请求器组件则须通过适当的事务操作通知其他缓存。

B1.5.2 缓存状态模型

当某个组件访问缓存行时,该协议定义了多种缓存状态,用以判定是否需要执行相应操作。每个缓存状态均基于以下缓存行特性而确定:

  • 有效/无效(Valid, Invalid):"有效"时,缓存行存在于缓存中;"无效"时,缓存行不存在于缓存中。
  • 唯一/共享(Unique, Shared):"唯一"时,该缓存行仅存在于"唯一"缓存中;"共享"时,该缓存行可存在于多个缓存中,但缓存中可能不存在多个缓存中的该缓存行。
  • 干净/脏(Clean, Dirty):"干净"时,缓存不负责更新主内存;"脏"时,该缓存行相对于主内存已被修改,且该"脏"缓存必须确保主内存最终被更新。
  • 完整/部分/空(Full, Partial, Empty):完整缓存行中所有字节均有效;部分缓存行中部分字节有效,其中部分字节可能无有效字节或全部字节有效;空缓存行中无任何字节有效。

图 B1.3 展示了七状态缓存模型。B4.1 节中的"缓存行状态"提供了关于每个缓存状态的进一步信息。除"Partial"或"Empty"之外的有效缓存状态名称均被视为"Full"状态。

在图 B1.3 中,UC、UD、SC 和 SD 均为"Full"缓存行状态。

B1.6 组件命名

CHI 协议中的组件按节点类型进行分类:

RN 请求节点(Request Node),该节点向互连网络生成协议事务,包括读取与写入操作。请求节点可进一步细分为:

RN-F 全一致性请求节点:

-- 包含硬件级相干缓存;

-- 可生成协议定义的所有事务(除 ReadNoSnpSep 外);

-- 支持所有 Snoop 事务。

RN-D 支持 DVM 的 IO 一致性请求节点:

-- 不包含硬件相干缓存;

-- 可接收 DVM 事务;

-- 可生成由协议定义的事务子集。更多详情请参阅"C3.1 请求节点子集"章节。

RN-I IO 一致性请求节点:

-- 不包含硬件一致性缓存;

-- 不接收 DVM 事务;

-- 仅生成协议定义的事务子集(详见 C3.1 "请求节点子集"章节);

-- 无需执行旁路检查功能。

HN 主节点(Home Node),位于互连网络中,负责接收来自请求节点的协议事务的主节点。主节点还可进一步划分为:

HN-F 全一致性主节点:

-- 预期可接收除 DVMOp 外的所有请求类型;

-- 包含一个一致性处理点(PoC),该节点通过监听所需的 RN-F 节点、汇总事务相关的 Snoop 响应,并向请求节点发送单一响应,从而实现相干性管理;

-- 预期可作为序列化处理点(PoS),负责管理内存请求的顺序;

-- 可包含目录或 Snoop 过滤器,以减少冗余监听操作。

注意:实施特定要求,可包含集成互连缓存。

HN-I 非一致性主节点:

-- 仅处理协议定义的有限子集请求类型;

-- 不包含 PoC,且无法处理可窥探请求;

-- 在收到可窥探请求时,必须返回符合协议规范的响应消息;

-- 预期作为 PoS,负责管理针对 IO 子系统的 IO 请求之间的顺序控制。

MN 杂项节点(Miscellaneous Node):从请求节点接收 DVM 事务,执行所需操作,并返回响应。

SN 从属节点(Subordinate Node),接收来自主节点的请求,执行所需操作,并返回响应。从属节点可进一步划分为:

SN-F 从节点

-- 用于普通内存

-- 可处理非可窥读、可窥写及原子请求(包括其独占变体),以及缓存维护操作(CMO)请求。更多详情请参阅 C3.2 "从节点子集"章节。

SN-I 从属节点

-- 用于外设或常规内存

-- 可处理不可窥探读取、写入及原子请求(包括其独占变体)以及 CMO 请求。更多详情请参阅"C3.2 从属节点子集"章节。

图 B1.4 展示了通过互连链路连接的各种协议节点类型。

B1.7 读数据源

在基于 CHI 的系统中,读取请求可从不同来源获取数据。

图 B1.5 所示的这些来源包括:

• 互连网络中的缓存

• 从属节点

• 对端 RN-F

对于 Home 节点,一种可选方案是要求 RN-F 或从属(subordinate)节点仅向 Home 节点返回数据;随后Home 节点将接收到的数据副本转发给请求方。若数据提供者被配置为将数据响应直接转发至请求方,而非经由 Home 节点中转,则可在读取事务流程中消除获取数据时的一跳(hop,一条报文从源节点到目的节点所经过的链路总数(或中转路由器的个数))。

可采用多种技术来减少完成一次事务所需的跳数。跳数的减少可缩短读取与写入延迟,并提升互连带宽利用率。这些技术可分为以下几类:

直接内存传输(DMT/ Direct Memory Transfer):允许从属节点直接向请求方发送数据的功能特性;

直接缓存传输(DCT/ Direct Cache Transfer):允许对端 RN-F 直接向请求方发送数据的功能特性。在 DCT 读取事务流中,数据提供者需向主节点告知已将数据发送至请求方;在某些情况下,数据提供者还需向主节点发送一份数据副本。

直接写入传输(DWT/ Direct Write-data Transfer):允许请求方节点直接向从属节点发送写入数据的功能特性。

相关推荐
yi0113 小时前
LeetCode 3. 无重复字符的最长子串|不定长滑动窗口:什么时候更新最大值?
笔记·python·算法·leetcode·双指针·滑动窗口
Water_based3 小时前
水性滚涂漆应用于滚喷机小五金件喷涂工艺详解
经验分享·笔记·产品经理
只愿云淡风清3 小时前
正则表达式学习笔记-01 正则表达式的来源
笔记·学习·正则表达式
ljt27249606614 小时前
Vue笔记(十三)--mixin
vue.js·笔记
启观川4 小时前
数据结构与算法 -第 3 章 常用算法-回溯算法
数据结构·笔记·python·算法
启观川13 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
一木 之林13 小时前
Dify学习笔记 01 · 平台入门与实战:部署、五类应用、RAG与MCP(第1-16集)
人工智能·笔记·学习·计算机视觉
weixin_4481199414 小时前
Datawhale Easy Data × AI:构建知识与记忆驱动的 Agent笔记8
人工智能·笔记·react.js
陈年老古董14 小时前
Hive 函数学习笔记(下):窗口函数与经典案例
hive·笔记·学习