UCIE协议介绍--芯粒间互联标准

2024-01-23 11:52

本文主要是介绍UCIE协议介绍--芯粒间互联标准,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UCIE协议介绍--芯粒间互联标准

  • 1 背景
  • 2 UCIE协议介绍
    • 2.1 协议层
    • 2.2 适配层
    • 2.3 物理层
    • 2.4 D2D接口
  • 3 Transmission
    • 3.1 SideBand数据包
    • 3.2 SideBand包格式
      • 3.2.1 MRd/Mwr/CfgRd/CfgWr
      • 3.2.2 Completion
      • 3.2.3 Message
    • 3.3 FDI接口信号
  • 4 链路训练
    • 4.1 PHY LSM状态介绍

1 背景

为什么发展出芯片互联技术,从而才会有芯片互联的协议标准推出;UCIE:Universal Chiplet Internet Express.
面临:1.摩尔定律失效,不能无限制趋于小;2.降低成本,方便复用,多制程Die封装;
想象成搭积木拼接的样子,有的大粒度的积木,有的小粒度的积木,进行拼接起来
类比来看:UCIE考验的是芯粒之间进行封装;
UCIE创立的宗旨就是建立Chiplet生态开放生态;

2 UCIE协议介绍

UCIE协议是一个规范标准,是基于分层的协议,其协议层各司其职,便于通用和复用,明确每层要支持的功能;
按照层级可分为:PHY层、Adapter层和Protocal层;PHY层和Adapter层之间接口为RDI;Adapter层和Protocol层之间接口为FDI;
图片: https://uploader.shimo.im/f/70xQGAADMu14EuN0.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MDU5MjY4MTgsImZpbGVHVUlEIjoiMWxxN3JqdjRHR2lOUUQzZSIsImlhdCI6MTcwNTkyNjUxOCwiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjoyOTYyNDI0NH0.8MUW7NE4n-sWM9x9h9fiRk4cZvIyO1s14JjWymn5wWs

2.1 协议层

区分协议概念VS Mode概念

  • UCIE协议层支持PCIE6.0、CXL2.0/3.0协议,同时还支持Steaming协议(用来映射其他传输协议);支持自定义协议适配
  • Raw Mode:PCIE6.0、CXL2.0/3.0都支持一种模式叫Raw Mode,用于自定义的Streaming协议只支持RAW Mode,在这模式下,所有64B或者256B数据都由协议层来负责填充,bypass适配层,CRC、FEC和Retry都由协议层来处理;
  • Flit Mode:适配层要对协议层进行添加做2B hdr和2B CRC;协商过程中,适配层通过FDI接口把这些信息作为Link Trainning的一部分传给协议层;

2.2 适配层

当协议层发送64B Flit数据,会在前加上2B hdr(Protocol ID,Stack ID)和后面加上2B CRC值;对于256B Flit需要额外增加2B CRC;
适配层主要功能:CRC、FEC、Retry;CRC最多可以检测3bit错误;

2.3 物理层

物理层分为逻辑物理层和电气物理层;我们只需要关注逻辑物理层:即Lane概念;
数据包是通过Byte形式发出的,一个Byte占用一个Lane使用4个clk传输;Main_band采用DDR的双沿采样;
在这里插入图片描述

2.4 D2D接口

一个标准封装的UCIE module信号线即为下图所示:MainBand有16个TX Data Lane和16个RX Data Lane(先进封装对应64Lane);SideBand是一个x1 Data Lane;
在这里插入图片描述
在这里插入图片描述
Module UCIE 可以允许x1, x2和x4的配置,即MainBand+SideBand;

3 Transmission

UCIe 提供了两大数据通路:Mainband 及 Sideband。Mainband 用来传输业务数据流,Sideband 用来来处理一些 链路训练、链路管理、参数交换及寄存器访问 等非数据传输业务。Sideband 作为 Mainband 的 Back Channel,能够简化UCIE中的链路训练、链路管理和D2D参数交换,简化数据链路的建立过程、提升 Mainband 的带宽利用率、简化 Mainband 设计复杂度。
除了常规意义上的 Die 间 UCIe Link Sideband,UCIe 还有 FDI Sideband 及 RDI Sideband,在不同层次间传递边带信息。
UCIe 支持类似于 PCIe 的 4 种数据包,包括配置读写、内存读写、Completion 及 Message。

  • 对MB来说 DDR双沿采样:传输业务数据流,比如256B Flit数据传输,对于标准封装x16来说:8个UI传输1个Byte,现在16Lane:256B = 1Byte/(8UI*1Lane) * 16Lane * 128UI;
  • 对SB来说 单沿采样(SB clk固定为800M):Serial frame/packet(没有明确区分),Sideband的一个帧是64bit数据,第一帧是64bit header,间隔至少32bits的’0’(无时钟), 然后是第二帧64bit data。如果数据是32bits,第二个数据帧需要MSB补零形成64bits.
    在这里插入图片描述
    UCIe Sideband 在 D2D 参数交换、链路训练、链路管理及寄存器访问方面发挥着不可或缺的作用,但无论是实现哪一方面功能,UCIe Sideband 能够做的方式就是:① 寄存器访问;② Message 传递;
  • 寄存器访问:
  • Message传递:

3.1 SideBand数据包

UCIe Sideband 支持 4 种不同的数据包:① 配置读写(CfgRd/Wr)、② 内存读写(MRd/Wr)、③ 完成(Cpl/Cpld)及 ④ 消息(Msg/MsgD)。
分类:

  • 配置读写及内存读写都是用于寄存器访问,区别在于寄存器位于配置空间还是 MMIO 空间。若访问 UCIe 配置空间内的寄存器,比如 Host Die 访问 EP UCIe Link DVSEC 内的寄存器,则采用 CfgRd/Wr;若访问其他 MMIO 区域的寄存器,比如 D2D Adapter 内的寄存器,则采用 MRd/Wr。 根据寄存器数据位宽的不同,寄存器访问请求又可以分为 32bit 及 64bit。
  • Completion 一般对应寄存器访问请求的 Response。根据是否携带数据及返回数据的位宽不同,Completion 可以分为不带数据的 Cpl 及携带数据的 CplD,CplD 又分 32bit 数据及 64bit 数据。这里的 32/64bit 跟 PCIe 稍有不同,PCIe 中 32/64 bit 是指地址位宽,在 UCIe 中是指寄存器数据位宽。
  • Message 一般用于 D2D 间参数交换、链路训练、链路管理及其他 Vendor 自定义的场景。根据是否携带数据,消息分为 Msg 及 MsgD。
    跟 PCIe TLP Header 的 FMT+Type 字段类似,UCIe 通过 Sideband Packet 中的操作码(Opcode)来区分是哪种类型的 Sideband 数据包、是否携带数据、地址数据的位宽。

3.2 SideBand包格式

每一笔 Sideband Message 都由 64bit Header + 32 或 64bit Data 组成。若 Data 为 32bit,需要高位补 0 到 64bit。发送串行数据时,每 64bit 为 1 个 Packet,相邻 Packet 之间插入 32bit 0 以分隔不同的 Packet。每个 Clock Cycle 发送 1bit Sideband 数据,下降沿采样。
在这里插入图片描述
以位宽 32bit 的 FDI/RDI Sideband 数据接口为例,介绍下 Sideband 的数据格式。

3.2.1 MRd/Mwr/CfgRd/CfgWr

寄存器访问请求的SideBand帧格式如下图所示:
重点介绍的几个字段:

  • srcid 及 dstid 表明了 Sideband 寄存器请求的来源及目的地(协议层、Adapter、物理层,Local、Remote);
  • tag 是 Requester 添加的标签,用以将 Outstanding 请求跟响应相对应;
    在这里插入图片描述

3.2.2 Completion

Completion 的 Sideband 帧格式如图 3 所示,其跟寄存器访问请求大同小异,其中有几点不同:

  • Status,表明当前 Completion 的状态,包括 Success、UR、CA、Stall 四种状态。
  • Completion 在 FDI 上的去向不依赖于 dstid 而是依赖于 tag。没有 addr 地址字段。
    在这里插入图片描述

3.2.3 Message

带 Data Payload 和不带 Data 的 Message Sideband 帧格式如下图所示。比较关键的几个字段位 MsgCode、MsgSubcode、MsgInfo
在这里插入图片描述
在这里插入图片描述

3.3 FDI接口信号

MainBand

SideBand

Link State Management

4 链路训练

UCIE中很重要的链路训练–UCIE LSM即链路状态机理解;UCIE采用分层的LSM:FDI FSM、RDI FSM和PHY LSM。
其中FDI/RDI LSM用于UCIE链路管理,PHY LSM主要用于UCIE链路初始化及训练

4.1 PHY LSM状态介绍

在这里插入图片描述
UCIE PHY LSM包含10大状态,各状态及主要功能如下:

  • RESET,复位状态,是系统复位后或 UCIe 退出 TRAINERROR 后的状态。
  • SBINIT,Sideband 初始化,在该状态对 Sideband 进行初始化,选择可用的 SB Lane。
  • MBINIT,Mainband 初始化,在该状态对 Mainband 进行初始化、修复坏的 MB Lane。该状态下 Mainband 处于最低速。
  • MBTRAIN,Mainband 训练,在该状态对 Mainband 的 Clock、Valid、Data 等 Lane 进行训练,使得 UCIe 链路工作在链路两端设备协商* 好的最高速或协商速率之下物理所能达到的最高速。跟 PCIe 不同,PCIe 是从 Gen1 最低速开始一点点往最高速进行训练的,但 UCIe 除了在初始化的时候为最低速,其在 MBTRAIN 状态对 Mainband 进行训练时一次切速到最高速进行训练,训练失败的话再进行降速或者减宽。
  • LINKINIT,链路管理状态,用以 D2D Adapter 完成初始链路管理。该状态时,进行 RDI Bring Up。
  • ACTIVE,UCIe 的正常工作状态,该状态时进行 Mainband 的数据传输,对应 PCIe 的 L0 状态。
  • L1/L2低功耗状态,处于这两种状态下的 UCIe Module 功耗较低,处于 L2 状态的 UCIe Module 比 L1 睡眠程度更深、功耗更低。L1 可以直接退出到 MBTRAIN 状态,免去 SBINIT 及 MBINIT 的过程,但 L2 只能退出到 RESET 状态,重新进行链路的初始化。
  • PHYRETRAIN,需要重新对链路进行链路初始化及训练时,进入该状态。
  • TRAINERROR,链路训练失败后进入该状态。

PHY 的初始化及训练过程中,Sideband、Mainband 是分开进行初始化和训练的。首先对 Sideband 进行初始化,使 Sideband 进入正常工作状态,便于后续初始化及训练过程中在 UCIe Link 上传递 Sideband Msg;然后进行 Mainband 初始化,UCIe Link 两侧的 Module 进行参数交换及协商、链路修复等工作,使 Mainband 能够工作在最低速(4 GT/s)。
Timeout机制:除了RESET和TRAINEERROR之外,所有状态都有个8ms超时退出机制

【Ref】
[1] https://new.qq.com/rain/a/20220616A073AH00
[2] https://developer.aliyun.com/article/1073772
[3] https://blog.csdn.net/weixin_40357487/article/details/127362477

这篇关于UCIE协议介绍--芯粒间互联标准的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636329

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

C++——stack、queue的实现及deque的介绍

目录 1.stack与queue的实现 1.1stack的实现  1.2 queue的实现 2.重温vector、list、stack、queue的介绍 2.1 STL标准库中stack和queue的底层结构  3.deque的简单介绍 3.1为什么选择deque作为stack和queue的底层默认容器  3.2 STL中对stack与queue的模拟实现 ①stack模拟实现

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

C 标准库 - `<float.h>`

C 标准库 - <float.h> 概述 <float.h> 是 C 标准库中的一个头文件,它定义了与浮点数类型相关的宏。这些宏提供了关于浮点数的属性信息,如精度、最小和最大值、以及舍入误差等。这个头文件对于需要精确控制浮点数行为的程序非常有用,尤其是在数值计算和科学计算领域。 主要宏 <float.h> 中定义了许多宏,下面列举了一些主要的宏: FLT_RADIX:定义了浮点数的基数。

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

FreeRTOS-基本介绍和移植STM32

FreeRTOS-基本介绍和STM32移植 一、裸机开发和操作系统开发介绍二、任务调度和任务状态介绍2.1 任务调度2.1.1 抢占式调度2.1.2 时间片调度 2.2 任务状态 三、FreeRTOS源码和移植STM323.1 FreeRTOS源码3.2 FreeRTOS移植STM323.2.1 代码移植3.2.2 时钟中断配置 一、裸机开发和操作系统开发介绍 裸机:前后台系