CHI 协议导论与宏观架构

CHI 协议导论与宏观架构

第1章:片上互连技术的演进与CHI的诞生

1.1 从 AMBA AXI 到 ACE:总线式与一致性挑战

在深入 CHI 之前,我们必须理解其诞生的土壤。ARM 的 AMBA(Advanced Microcontroller Bus Architecture)协议家族是这一切的起点。

1.1.1 AHB 与 ASB 时代:共享总线之困

在早期简单的微控制器系统中,AHB(Advanced High-performance Bus)是主流。它是一种共享总线架构,意味着多个主设备(如CPU、DMA)需要通过仲裁来争夺总线的使用权。

工作原理:仲裁器根据优先级决定哪个主设备可以使用总线。获胜的主设备在下一个周期开始传输,其他主设备必须等待。

核心缺陷:

性能瓶颈:任何时刻只有一个主设备能使用总线,无法实现并行传输。当主设备增多时,竞争激烈,延迟急剧增加。

可扩展性差:总线上的每个新设备都会增加负载,影响信号完整性,限制系统规模和最高频率。

1.1.2 AXI时代:点对点与并行性的突破

为克服共享总线瓶颈,ARM 推出了 AXI(Advanced eXtensible Interface)。这是 AMBA 演进史上的一个里程碑。

核心革新:

  1. 点对点互联:主设备和从设备之间通过独立的通道连接,而非共享一根总线。
  2. 分离的通道:读地址、读数据、写地址、写数据、写响应,五个通道相互独立,可以并行工作。
  3. 基于猝发(Burst):一次地址握手可传输一长串数据,提高效率。

优势:AXI极大地提升了系统的并行处理能力和最大带宽,成为高性能SoC的事实标准。

遗留挑战:AXI本身不提供缓存一致性。在一个多核处理器中,如果多个核心缓存了同一内存地址的数据,一个核心的修改无法被其他核心感知,会导致数据不一致的严重错误。

1.1.3 ACE时代:一致性扩展的尝试

为解决多核一致性难题,ARM 在 AXI4 的基础上引入了 ACE(AXI Coherency Extensions) 扩展。

核心思想:在 AXI 的通道上增加与"侦听"相关的信号,使连接到互联的"一致性代理"(如 CPU 核心)能够相互通信,维护缓存一致性。

工作机制:当一个核心(如CPU0)要写入一个共享数据时,互联(通常集成 Snoop Filter)会发起侦听事务,查询其他核心(如CPU1)的缓存。如果其他缓存有这份数据,互联会确保它们将数据写回或置为无效,然后才允许CPU0写入。

局限性:

  1. 架构依赖性强:ACE仍然基于共享总线式的通信模型,扩展性受限。当核心数量继续增加(例如达到几十甚至上百核),侦听流量会成为新的瓶颈。
  2. 复杂度高:ACE信号与AXI信号紧密耦合,设计复杂,时序收敛困难。
  3. 不够灵活:难以适应未来更复杂的拓扑结构(如网格Mesh)。

1.2 网络化片内互连(NoC)的兴起与需求

当 SoC 的规模突破十亿晶体管,集成数十个甚至上百个 IP 时,传统的总线式和交叉开关式互联已不堪重负。NoC(Network-on-Chip) 应运而生。

核心思想:借鉴计算机网络的概念,将数据打包成数据包(Packet),通过一个由路由器和链路组成的网络,进行路由和交换。

关键特征:

  1. 可扩展性:可以像拼乐高一样,通过增加路由器和链路来扩展系统规模。
  2. 并行性:多条消息可以在网络的不同路径上同时传输。
  3. 服务质量(QoS):可以引入优先级、虚拟通道等机制,保证关键流量(如音频、显示)的低延迟。
  4. 模块化:IP设计者只需关注与本地路由器的接口,无需关心全局拓扑。

1.3 CHI 协议的定位:ARM 生态系统中的一致性枢纽

在 NoC 成为大势所趋,而 ACE 又无法满足未来需求的背景下,CHI(Coherent Hub Interface) 协议被设计和推出。

CHI 的根本性革新在于:它从诞生之初就是一个为 NoC 设计的一致性协议,而非在已有总线协议上打补丁。

协议与拓扑解耦:CHI 定义了完整的协议层、网络层、链路层,使其能够灵活运行在各种 NoC 拓扑之上(星型、环型、网格等),而不依赖于特定的物理实现。

基于数据包的传输:所有事务,包括请求、响应和数据,都被格式化为标准化的数据包(Flit)。这是其能适应网络化传输的基础。

分离的请求与响应路径:请求和响应可以经由不同的路径在网络中传输,进一步提高了并行性和灵活性。

高度可扩展的一致性:通过引入Home Node(HN)作为地址的"协调中心",采用基于目录的一致性模型,极大地减少了维护一致性所需的网络流量,使其能够高效地扩展到数百个节点。

CHI 在 ARM 生态系统中的角色:它是连接计算集群(如Cortex-A/X系列CPU、Mali GPU)、内存子系统、高速外设(如PCIe)和自定义加速器的"神经系统"和"一致性基石"。它确保了在复杂的异构计算场景下,所有参与者能看到同一份正确的数据视图。

1.4 CHI与其它互连协议(如CXL, CCIX)的比较与关系

CHI是片内(on-chip) 互连协议。而当我们需要将一致性域扩展到芯片之外时,就需要诸如CXL(Compute Express Link) 和CCIX这样的片外(off-chip) 一致性协议。

|------|-----------------------------|----------------------------------|---------------------------|
| 特性 | CHI | CXL | CCIX |
| 范围 | 片内(On-Chip) | 片外(Off-Chip),通过PCIe物理层 | 片外(Off-Chip),通过PCIe/其他物理层 |
| 主要应用 | 连接SoC内部的CPU, GPU, 加速器,内存控制器 | CPU与加速器(GPU, FPGA)、内存扩展卡之间的缓存一致性 | 多芯片一致性,特别是在Arm服务器领域 |
| 拓扑 | 依赖于NoC(网格,星型等) | 基于PCIe的层级拓扑 | 更灵活的对称或对等拓扑 |
| 关系 | 基础 | 补充与扩展 | 补充与扩展(目前生态趋于CXL) |

一个典型的现代数据中心SoC可能这样组织:

  • 片内:数十个Arm Neoverse核心通过CHI协议在一个复杂的NoC上互联,共享最后的LLC和内存控制器。
  • 片外:该SoC通过CXL.io(兼容PCIe)连接标准外设,通过CXL.mem扩展内存容量,并通过CXL.cache使得外部AI加速器能够高效、一致地访问主机内存。

总结:CHI 并非凭空出现,它是 ARM 在深刻认识到片上互连从"总线"到"网络"的范式转变后,为引领异构计算时代而打造的全新一代一致性互连协议。它解决了 ACE 在可扩展性、灵活性和效率上的根本瓶颈,为构建从移动设备到云服务器的下一代计算平台奠定了坚实的基础。

第2章:CHI协议核心概念与架构视图

2.1 基础范式:请求-响应分离式事务

CHI 协议彻底告别了总线式的"独占与仲裁"模式,采用了完全解耦的、基于数据包的请求-响应分离式事务。

  • 事务分解:一个完整的事务(例如,CPU读取数据)被分解为三个完全独立的阶段:
  • 请求:由请求节点发出,包含"你想做什么"(操作码、地址等)。
  • 数据:由完成节点发出,包含请求所期望的数据(对于读事务)或确认接收的数据(对于写事务)。
  • 响应:由完成节点发出,包含"事情办得怎么样了"(成功、失败、错误等状态信息)。

关键优势:

  1. 解耦与并行:请求、数据和响应可以在网络中通过不同的路径独立流动,极大地提高了网络利用率和系统并行度。
  2. 流水线化:多个事务的各个阶段可以交织在一起,形成高效的流水线。
  3. 非阻塞:一个RN在发出一个请求后,无需等待其完成,即可发出下一个请求。

2.2 拓扑结构:星型、网格与自定义拓扑的CHI实现

CHI协议与物理拓扑解耦,但其设计天然适合网络化拓扑。以下是几种典型拓扑及其在CHI系统中的体现:

  1. 星型拓扑
  • 描述:所有RN和SN都连接到一个中心HN或交叉开关上。
  • 优点:结构简单,延迟可预测(对于单跳)。
  • 缺点:中心节点成为性能和带宽的瓶颈,可扩展性差。
  • 适用场景:小型、低复杂度的系统。
  1. 网格拓扑
  • 描述:节点(RN, HN, SN)通过路由器连接到规则的网格上。数据包在X和Y维度上进行路由。
  • 优点:极高的可扩展性,模块化设计,布局规整。
  • 缺点:跳数增加导致延迟,可能出现热点拥塞。
  • 适用场景:大规模多核处理器、服务器SoC。
  1. 环型拓扑
  • 描述:节点通过环形网络连接。
  • 优点:连线简单。
  • 缺点:延迟随节点数线性增长,带宽受限。
  • 适用场景:某些中等规模或对成本敏感的设计。

CHI的灵活性允许SoC架构师根据其特定的性能、功耗和面积目标,混合和匹配这些拓扑结构,甚至创建自定义的不规则拓扑。

2.3 核心组件详解

CHI协议将系统中的功能单元抽象为几种明确的节点类型,每种类型有明确的职责。

RN - Request Node

  • 角色:事务的发起者。通常是需要访问内存或与其他组件通信的主设备。

关键子类型:

  • RN-F:全功能RN。支持所有一致性请求(读、写、使无效等),通常指CPU集群、GPU计算单元。
  • RN-D:轻型RN。仅支持非一致性或有限的一致性请求,通常指DMA控制器、网络接口等。
  • RN-I:IO一致性RN。支持使无效请求,用于需要感知一致性的IO主设备。

HN - Home Node

  • 角色:系统的协调中心和一致性引擎。它是其管理的地址范围的"家"。

核心职责:

  • 接收请求:接收所有发往其管辖地址范围的请求。
  • 目录查询:查询基于目录的一致性信息,确定数据的当前状态和位置。
  • 请求调度:决定下一步行动:从内存读取、向其他RN发起侦听、或直接提供数据。
  • 组合响应:收集所有必要的信息(如侦听响应、内存数据)后,组织并发送最终响应给原始RN。
  • 典型实现:HN通常与最后一级缓存(LLC)的切片集成在一起。目录信息可以存储在Tag RAM中。

SN - Slave Node

  • 角色:事务的最终完成者。是数据的源头或终点。

关键子类型:

  • SN-F:全功能SN。能够处理所有类型的请求,包括带数据的请求。典型代表是内存控制器。
  • SN-I:简化SN。仅支持所需的最小事务集。

MN - Monitor Node

  • 角色:系统的"观察者"。用于调试、性能分析和系统监测。
  • 功能:它可以被动地监听网络流量,记录特定事件或事务,但绝不主动参与或修改事务。

2.4 一致性模型:为什么需要缓存一致性?MOESI模型在CHI中的体现

为什么需要缓存一致性?

想象一个场景:CPU0和CPU1都从内存中读取了变量X=5到各自的缓存。随后,CPU0将X更新为10。如果系统没有一致性协议,CPU1的缓存中仍然是陈旧的X=5,这将导致程序运行错误。缓存一致性协议就是为了自动解决这种多副本数据不一致的问题。

MOESI模型

MOESI是描述缓存行状态的经典模型,CHI协议基于此模型并进行了细化。

状态 全称 描述 是否脏? 其他副本? CHI协议对应 CHI行为特点
M Modified 已修改 独占且已修改。这是唯一的最新副本,内存中的数据是旧的。 UniqueDirty 需要写回内存;其他请求需从此缓存获取数据
O Owned 拥有 共享但已修改。有多个副本,但本缓存负责在必要时将数据写回内存。内存数据是旧的。 SharedDirty HN(主节点)会指示此节点写回;可服务其他节点的读请求
E Exclusive 独占 独占且干净。这是唯一副本,且与内存一致。 UniqueClean 可直接写入转为M状态;无需与其他缓存协调
S Shared 共享 共享且干净。有多个副本,所有副本都与内存一致。 SharedClean 写入前需使无效其他副本;读操作无需访问内存
I Invalid 无效 缓存行数据不可用,不能作为数据源。 - - Invalid 需从网络或内存重新获取;所有访问都会产生缺失

MOESI状态转换示意图

CHI协议中的关键特性

  1. 状态细化:CHI在MOESI基础上细化为UniqueDirty、SharedDirty、UniqueClean、SharedClean

  2. 分布式所有权:明确指示哪个缓存负责写回操作

  3. 网络化操作:所有状态转换都通过CHI事务在片上网络中进行

  4. 一致性保证:确保所有缓存看到的内存视图一致

典型应用场景

状态 典型应用场景 性能特点
M 频繁写入的私有数据 写入性能最佳,无需通知其他缓存
O 多核共享的写入数据 减少写回次数,提高共享效率
E 即将写入的私有数据 提供快速写入升级路径
S 只读共享数据 提供高读取并行性
I 未缓存或失效数据 强制从正确源获取数据

MOESI模型在CHI协议中的实现确保了大规模多核SoC中缓存一致性的高效维护,同时通过状态细化优化了不同类型数据访问的性能特征。

MOESI缓存一致性模型及其在CHI协议中的对应关系

CHI中的一致性流程(简例)

假设RN-A处于SharedClean状态,它想写入该缓存行。

  1. RN-A向HN发送WriteUnique请求(意图:获取独占权限以便写入)。
  2. HN查询目录,发现RN-B也持有该行(SharedClean)。
  3. HN向RN-B发送Comp(使无效)请求。
  4. RN-B使其缓存行无效,并向HN回复CompAck。
  5. HN收到CompAck后,更新目录,标记RN-A为UniqueDirty,然后向RN-A发送RespSepData响应,授予写入权限。
  6. RN-A收到响应,将状态转为UniqueDirty,然后执行写入。

这个过程完全由协议在硬件层面自动完成,软件无需干预。

2.5 传输层次:协议层、网络层、链路层、物理层

为了实现灵活性与可移植性,CHI协议栈被清晰地划分为四个层次,这与计算机网络中的OSI模型概念相似。

  1. 协议层
  • 职责:定义事务的语义。它关心的是"做什么",而不是"怎么传"。
  • 内容:操作码(Opcode)、地址、缓存状态、事务ID、数据内容等。
  • 接口:与IP核心(如CPU)的接口就在这一层。
  1. 网络层
  • 职责:负责将协议层的消息打包并路由到正确的目的地。

内容:

  • 打包:为协议层消息添加路由头(如TgtID, SrcID),形成数据包。
  • 路由:根据数据包头中的目标ID,决定其在NoC中的下一跳。
  • QoS:为数据包打上优先级标签,管理虚拟通道以避免死锁和保证服务质量。
  1. 链路层
  • 职责:确保数据在相邻节点(如两个路由器之间,或路由器与节点之间)的可靠传输。

核心机制:

  • 流控制:基于信用的机制,防止发送方淹没接收方。
  • 错误检测与重传:通过CRC等技术检测传输错误,并触发局部重传,对上层透明。
  1. 物理层
  • 职责:处理信号的电气特性和时序,将数据包分解为物理传输单元在链路上传输。
  • 内容:并串转换、时钟域跨越、驱动强度、线延迟优化等。
  • 层次化优势:这种分层允许SoC设计团队独立地进行优化。例如,可以升级物理层工艺以提升频率,或者修改网络层拓扑以增加带宽,而无需改变协议层的设计。

本章总结

本章构建了 CHI 协议的宏观蓝图。我们了解到 CHI 通过请求-响应分离实现了高并行度;通过定义清晰的节点角色(RN/HN/SN/MN) 和基于目录的MOESI一致性模型,构建了一个可扩展的、可靠的一致性框架;最后,通过分层的协议栈,将复杂的功能解耦,赋予了实现上的巨大灵活性。

至此,您已经对 CHI 协议"是什么"以及"为什么这样设计"有了系统的认识。从下一章开始,我们将深入协议的细节,首先从CHI协议的版本演进开始,了解其不断发展的特性与优化。

第3章:CHI协议版本演进(CHI.A, CHI.B, CHI.C, CHI-D)

3.1 各版本关键特性对比与演进脉络

CHI协议并非一成不变,它随着工艺的进步和应用需求的演变而不断发展。其演进主线清晰地指向:更高的性能、更低的延迟、更好的能效,以及更强的可扩展性。

下表概括了各主要版本的核心特性与演进重点:

CHI各版本核心特性对比表

特性维度 CHI.A (基础版) CHI.B (演进版) CHI.C (性能版) CHI-D (精简版)
核心焦点 奠定基础,定义架构 功能增强,扩展性优化 性能与能效大幅提升 为特定场景精简
发布时间 ~2011年 ~2013年 ~2016年 ~2019年
关键新特性 1. 基础协议/网络/链路层 2. RN-F/HN-F/SN-F节点模型 3. 基于目录的一致性 4. 基础事务类型 1. 原子操作扩展(AMO) 2. 缓存维护操作增强 3. 更细粒度的QoS 4. 直接数据支持(有限) 5. 持久性支持 1. 直接数据传输(DCT) 2. 部分数据与提前响应 3. 端到端QoS 4. 预取提示 5. 原子操作增强 6. 低功耗状态增强 1. 精简的事务集 2. 简化的数据包格式 3. 针对面积和功耗优化 4. 移除高级特性
性能优化 基础性能 中等优化(提升10-30%) 显著优化(提升40-70%) 基础但高效(针对目标场景)
延迟表现 高延迟(多跳中转) 中等延迟 低延迟(直连路径) 中等延迟但确定
带宽效率 低效(多次中转) 改进 高效(DCT旁路) 适中
功耗特性 高功耗 优化功耗管理 先进低功耗状态 超低功耗设计
面积开销 基础面积 略有增加 增加(性能特性) 最小化面积
主要应用场景 早期多核移动/嵌入式SoC 高性能移动、入门级网络处理器 服务器、高端移动、HPC、汽车ADAS 面积/功耗敏感型IoT、微控制器、边缘设备
代表性芯片 早期Cortex-A系列SoC 中高端智能手机SoC 服务器CPU(如Neoverse)、汽车芯片 Cortex-M系列、物联网芯片

CHI.C性能飞跃关键技术详解

直接数据传输(DCT)对比

部分数据与提前响应机制

演进脉络总结

第一阶段:CHI.A → CHI.B (从"能用"到"好用")
  • 目标:丰富功能,增强系统控制

  • 改进

    • 扩展原子操作,支持更复杂的同步原语

    • 增强缓存维护,提高系统一致性管理能力

    • 细化QoS,支持差异化服务质量

  • 应用影响:满足高性能移动和网络处理器的需求

第二阶段:CHI.B → CHI.C (质的飞跃)
  • 目标:从根本上降低延迟,提升能效

  • 创新

    • DCT:绕过HN,建立RN-SN直接数据通道

    • 部分传输:允许RN提前处理数据

    • 端到端QoS:提供更精细的流量控制

  • 性能提升

    • 典型延迟降低:30-50%

    • 有效带宽提升:25-40%

    • 功耗效率改善:20-35%

第三阶段:CHI.C → CHI-D (差异化精简)
  • 目标:为特定场景提供最优成本效益方案

  • 策略

    • 移除高级特性(DCT、部分传输等)

    • 简化协议栈,减少面积开销

    • 优化低功耗设计

  • 权衡:用性能换取面积和功耗的优化

各版本选择指南

设计考量 推荐版本 理由
高性能计算 CHI.C DCT和部分传输显著降低延迟
服务器/数据中心 CHI.C 高带宽和低延迟是关键需求
高端移动/汽车 CHI.C 平衡性能和能效,支持复杂功能
中端消费电子 CHI.B 成本效益平衡,功能足够
物联网/边缘设备 CHI-D 最小化面积和功耗至关重要
遗留系统升级 CHI.B 相对平滑的迁移路径

未来演进趋势

  1. AI/ML优化:针对神经网络工作负载的特殊优化

  2. CXL集成:与Compute Express Link协议的协同

  3. 安全增强:硬件级安全特性的深度集成

  4. 3D堆叠:支持芯片堆叠架构的互连优化

  5. 异步时钟域:更灵活的时钟和电源域管理

CHI协议的演进反映了半导体行业从单纯追求性能到平衡性能、能效、面积和成本的多维优化趋势,为不同应用场景提供了针对性的互连解决方案。

3.2 CHI.C对性能和能效的提升

CHI.C是迄今为止最重要的一次升级,它引入的特性从根本上优化了事务流。我们重点剖析其中最核心的两项。

3.2.1 直接数据传输

在CHI.B及之前,数据路径通常需要经过Home Node中转。CHI.C引入的DCT允许数据在获得授权后,在RN和SN之间,甚至在两个RN之间直接传输,跳过了HN。

  • 传统路径(CHI.B):RN -> HN -> SN -> HN -> RN
  • DCT路径(CHI.C):RN -> HN (协调) -> SN -> RN

优势:

  • 降低延迟:减少了一到两跳的网络延迟。
  • 减轻HN负担:HN不再需要为数据包提供大量的缓冲区和转发带宽,使其能更专注于请求调度和一致性管理,提升了整体系统效率。
  • 提高有效带宽:数据流不再挤占HN的内部数据路径。
3.2.2 部分数据与提前响应

这项优化允许SN在准备好全部数据之前,就提前返回部分数据和一个提前响应。

应用场景:当SN(如内存控制器)需要从多个DRAM Bank中获取数据时,可能先从一个Bank中拿到一部分数据。

工作方式:

SN将先得到的第一部分数据(称为一个"数据块")立即发送给请求者。

同时,SN发送一个DataSepResp消息,告知请求者"第一部分数据已发出,剩余部分稍后就来"。

请求者收到第一部分数据后即可开始处理(例如,CPU可以开始解码指令),无需等待所有数据到位。

SN发送剩余的数据块。

优势:

显著降低读延迟:对于长猝发读取,有效隐藏了内存访问延迟,使得请求者能够更早地开始工作,提升了系统整体性能。

3.2.3 端到端QoS

CHI.C增强了QoS机制,使其能够从请求源点到终点贯穿整个系统。

  • 机制:RN在发起请求时,会附加一个QoS标签(如QoS Priority)。这个标签在网络中传输时会被保留,HN和SN可以根据这个优先级来处理请求。
  • 优势:确保了高优先级事务(如实时音频/视频处理、中断处理)能够获得低延迟的服务,即使在系统总线繁忙时也是如此。

3.3 CHI-D简介:面向特定应用的精简

并非所有SoC都需要CHI.C提供的全部高性能特性。对于面积和功耗极度敏感的场景(如某些IoT设备、微控制器),CHI-D提供了一个经过精心修剪的版本。

  • CHI-D的设计哲学:在保持CHI架构精髓的前提下,做减法。
  • 精简的事务集:移除了许多高级一致性事务和原子操作,只保留最核心、最必需的集合。
  • 简化的数据包格式:优化了数据包字段,减少了每次传输的比特数,降低了总线开销和功耗。
  • 针对目标优化:整个协议针对较小的系统规模、简单的拓扑进行了优化,移除了与之无关的复杂特性。
  • CHI-D与CHI.C的关系:它们不是取代关系,而是互补关系。SoC架构师可以根据产品的性能、成本和功耗目标,选择合适的协议变体。

需要顶级性能?选择CHI.C。

成本和王功耗是首要考量?选择CHI-D。

本章总结

CHI 协议的版本演进是一部针对不同市场需求不断自我优化的历史。从奠定基础的CHI.A,到功能丰富的 CHI.B,再到性能飞跃的 CHI.C,以及面向成本优化的 CHI-D,每一个版本都代表了ARM 对其互连技术蓝图的持续投入和精准定位。

理解这些版本的差异至关重要,因为它决定了:

  • 对于设计工程师:在架构定义阶段,应选择哪个版本来满足产品需求。
  • 对于验证工程师:需要针对特定版本的特性构造相应的测试场景。

现在,我们已经完成了对 CHI 协议宏观架构和演进历史的介绍。从下一部分开始,我们将进入本专题的核心------第二部分:CHI 协议层深度精解,我们将一层层剥开 CHI 的"洋葱",从最基础的数据包结构开始,深入其每一个细节。

相关推荐
xcg3401233 天前
【阿里云ACE】弹性架构-学习笔记
阿里云·架构·ace
Winter_Sun灬1 个月前
CentOS7 交叉编译 ACE+TAO-6.5.13 安卓 arm64-v8a 静态库
android·ace
比姚明高一截1 个月前
ARM CMN-700 架构设计与实现指南
chi·arm cmn-700
mustfeng3 个月前
CHI协议学习记录
chi
kgduu1 年前
ACE之ACE_Reactor_Notify
ace
dingdingfish1 年前
Oracle ACE是什么缩写?
oracle·database·ace·program
回到地面2 年前
阿里云云计算架构师 ACE认证
阿里云·云计算·ace
CodingCos2 年前
【ARM AMBA5 CHI 入门 12 -- CHI 总线学习 】
chi·home node·rn·hn·sn·ci-700·chi sam