大数跨境
0
0

UCIe学习和验证笔记

UCIe学习和验证笔记 Equilibria
2025-10-08
0

1. UCIe简介

UCIe (Universal Chiplet Interconnect Express) 全称为:通用芯粒互连技术,是由Chiplet标准联盟提出的高速互联协议标准。


UCIe于2022年1月发布1.0版本,其物理层规范涵盖电气信号、时钟标准等技术参数,兼容2D/2.5D封装并支持3D封装扩展,目前最新已经到了2.0版本。


UCIe的诞生主要有以下几点原因:

  1. 摩尔定律失效:随着制程的进步,芯片的制造变得越来越复杂和昂贵。

摩尔定律的失效意味着制程不能无限制地缩小,目前英伟达芯片的Reticle Size最大达到800mm²,已经接近EUV光刻机的极限(858mm²)。UCIe通过chiplet设计,允许使用不同工艺节点,降低成本并提高良率


2. 芯片互联标准不统一:不同的芯片制造商使用不同的互联接口协议,导致芯片之间的互操作性差。UCIe提供了一个统一的物理层标准,使得不同来源和不同制程的芯粒能够实现互联通信,从而整合分散的生态系统。


3. 设计灵活性和成本效益:传统的单一芯片设计在面对复杂系统时显得不够灵活且成本高昂。UCIe通过chiplet设计,允许设计师像搭积木一样组合不同的功能模块,缩短设计周期并降低开发成本。


4. 带宽和延迟问题:UCIe标准定义了详细的带宽指标和延迟要求,确保chiplet系统在高带宽和低延迟下稳定运行。例如,UCIe的引脚间距为45um(高级封装)和110um(标准封装),最大链路速度可达32GT/s。


2. UCIe组件

UCIe是一种分层协议栈,每一个层执行着相应的子功能,这些层分别为:

1. 协议层

2. D2D适配层

3. 物理层


2.1 协议层

协议层主要和实际的应用有关,其规范了这些不同的协议怎么通过UCIe链路进行传输,主要支持以下几种不同协议:

1. PCIe协议

2. CXL协议

3. 流协议(用户自定义)

4. UCIe管理传输协议


2.2 D2D适配层

D2D适配层作为中间层,通过与协议层以及物理层进行协商,保证数据成功的通过UCIe链路传输出去。该层主要作用为:

1. 可靠的数据传输(执行CRC计算和数据重发,或者执行奇偶校验)

2. 仲裁以及混合 (如支持多协议栈时)

3. 链路状态管理

4. 与远端进行协议和参数协商


2.3 物理层

物理层主要包含以下功能:

1. 链路初始化、训练以及电源管理

2. 数据与lane的映射关系

3, 冗余IO的重映射

4. 发送与接收Sideband消息

5. 训练相关的pattern生成

6. Lane反转

7. 链路宽度降级


3. UCIe封装

3.1 Single-module Standard package


3.2 Single-module Advanced package


4. UCIe link初始化


5. Sideband

Sideband接口主要用于辅助Training过程的一些数据交互以及提供访问远端UCIe寄存器的能力,同时还用于两链路状态的管理以及与远端UCIe参数的交互。


6. Mainband Training


6.1 VALREF

VALVREF Training的作用是帮助接收端寻找最优的参考电压,使其准确的接收到Valid信号,该Training过程会使用最低速的速率进行(4GT/s),大致流程如下:

  1. Local UCIe通过Sideband发送VALVREF start req消息,并等待Remote UCIe应答VALVREF start resp消息。
  2. 接收端会扫描发送端通过Valid信号发送过来的Pattern,并调节Valid的Vref,从而找到最大的眼宽,此时Vref则为最优值
  3. Local UCIe通过Sideband发送VALVREF end req消息,并等待Remote UCIe应答VALVREF end resp。

6.2 DATAVREF

DATAVREF Training和VALVREF一样,只是Training的是DQ,Training过程同样会使用最低速的速率进行(4GT/s),大致流程如下:

  1. Local UCIe通过Sideband发送DATAVREF start req消息,并等待Remote UCIe应答DATAVREF start resp消息。
  2. 接收端会扫描每一条DQ,直到接收到正确的Pattern,同时也会扫描Vref,从而找到最大的眼宽,此时Vref则为最优值
  3. Local UCIe通过Sideband发送DATAVREF end req消息,并等待Remote UCIe应答DATAVREF  end resp。

6.3 SPEEDIDLE

该状态主要用于链路速率的切换,如从DATAVREF状态进入到该状态,在该状态中会将链路速率切换到双方支持的最高速率,该过程会通过Sideband进行协商。


6.4 TXSELCAL

该状态表示UCIe当前正在做一些发送电路相关的一些参数校准,校准的过程是独立完成,不需要依赖Remote端。


在校准过程中,发送端的Data、clock、Valid以及track信号设置为高阻态,接收端的这些信号也运行关闭。如果完成了校准,local UCIe需要通过Sideband发送TXSELFCAL Done req消息给Remote端,Remotei端应答TXSELFCAL Done resp消息。


6.5 RXCLKCAL

RXCLKCAL主要用于校准接收端的clock路径相关参数以及clock to track相关的一些路径参数。


  1. local UCIe通过Sideband发送RXCLKCAL start req消息,Remote UCIe接收到该消息后,开始发送clock与track,随后Remote UCIe通过Sideband应答RXCLKCAL start resp。
  2. 当校准完成后,Local UCIe通过Sideband发送RXCLKCAL done req,Remote UCIe收到该消息后停止发送clock,并且通过Sideband应答RXCLKCAL done resp消息。

6.6 VALTRAINCENTER

为了保证Valid信号稳定可用,还需要进行VALTRAINCENTER流程,该步骤主要是将Valid信号的中心对齐到clock的边沿,从而保证时钟能稳定的采样到有效的Valid信号


  1. Local UCIe通过Sideband发送VALTRAINCENTER start req,Remote UCIe通过Sideband应答 VALTRAINCENTER消息。
  2. 发送端开始通过Valid发送Pattern,接收端收到数据后,与Pattern进行比较,错误数量如果小于设定的阈值时则认为成功。
  3. 可以分析Local UCIe接收到的结果,检测是否符合设计余量。
  4. 通过Sideband发送VALTRAINCENTER done req消息,Remote UCIe接收到该消息后会通过Sideband应答VALTRAINCENTER done resp。

6.7 VALTRAINVREF

VALTRAINVREF主要是用于再一次优化Valid信号接收端的参考电压,步骤和VALVREF过程类似:


  1. Local UCIe通过Sideband发送VALTRAINVREF start req,Remote UCIe接收到后,通过Sideband应答 VALTRAINVREF start resp消息。
  2. Valid信号接收端选择不同的参考电压扫描发送端发送过来的Pattern,从而找到最优参考电压。
  3. Local UCIe通过Sideband发送VALTRAINVERF end req消息,Remote UCIe接收到后,通过Sideband应答VALTRAINVER end resp消息。

6.8 DATATRAINCENTER1

DATATRAINCENTER1主要是用于对齐数据信号与时钟信号,使得在时钟边沿能采样到数据的中心位置。


  1. Local UCIe通过Sideband发送DATATRAINCENTER1 start req,Remote UCIe接收到该消息后,通过Sideband应答DATATRAINCENTER1 start resp消息。
  2. UCIe发送端开始发送数据与时钟,并且扫描数据与时钟之间的相位,将有效数据的边界扫描出来后,将采样点设置在有效数据的中心
  3. Local UCIe通过Sideband发送DATATRAINCENTER1 end req,Remote UCIe接收到该消息后,通过Sideband应答DATATRAINCENTER1 end resp。

6.9 DATATRAINVREF

DATATRAINVREF主要用于调节接收端参考电压,结合上一个步骤,基本可以将采样点调整到眼图中心。


  1. Local UCIe通过Sideband发送DATATRAINVREF start req,Remote UCIe接收到该消息后,通过Sideband应答DATATRAINVREF start resp消息。
  2. UCIe接收端调节不同的参考电压,同时去扫描数据与时钟之间的相位,最终找到最优的参考电压,该电压下眼图最宽
  3. Local UCIe通过Sideband发送DATATRAINVREF end req,Remote UCIe接收到该消息后,通过Sideband应答DATATRAINVREF end resp。

6.10 RXDESKEW

RXDESKEW主要用于调节每一条DQ的相位,保证每条DQ几乎同时到达接收端,提高整体时序裕量。


  1. Local UCIe通过Sideband发送RXDESKEW start req,Remote UCIe接收到该消息后,通过Sideband应答RXDESKEW start resp消息。
  2. UCIe发送端开始发送数据与时钟,并且扫描每一条DQ与时钟之间的相位,将有效数据的边界扫描出来后,即可对齐每条DQ
  3. Local UCIe通过Sideband发送RXDESKEW end req,Remote UCIe接收到该消息后,通过Sideband,应答RXDESKEW end resp。


6.11 DATATRAINCENTER2

DATATRAINCENTER2用于再次对齐数据与时钟的相位,因为上一步骤对每个DQ进行微调后,之前的相位关系可能会有变动。


  1. Local UCIe通过Sideband发送DATATRAINCENTER2 start req,Remote UCIe接收到该消息后,通过Sideband应答DATATRAINCENTER2 start resp消息。
  2. UCIe发送端开始发送数据与时钟,并且扫描数据与时钟之间的相位,将有效数据的边界扫描出来后,将采样点设置在有效数据的中心
  3. Local UCIe过Sideband发送DATATRAINCENTER2 end req,Remote UCIe接收到该消息后,通过Sideband应DATATRAINCENTER2 end resp。


6.12 LINKSPEED

该状态用于去测试UCIe链路在实际速率下数据传输的稳定性。


6.13 REPAIR

该状态主要用于修复有错误的DQ,不同的封装形式采用不同的处理方式。


如果是高级封装,且DQ错误数量在修复范围内,则进入修复流程。高级封装会有冗余的DQ pin,会从损坏的DQ处,整体将左侧或右侧的DQ进行左移或右移,一般采用就近原则,那边移动的DQ少就往哪边移动。


如果是x16或x8标准封装,则没有冗余的DQ pin,这部分采用的repair方式是减少数据位宽。


x16标准封装下,会将数据位宽降为x8,根据损坏的DQ来决定保留DQ0~7,还是DQ8~15。


x8标准封装下,会将数据位宽降为x4,根据损坏的DQ来决定保留DQ0~3,还是DQ4~7。


7. Feature验证

7.1 RZQ Calibration

主要用于校准驱动电阻以及终端电阻的阻值,该校准依赖于外部高精度240欧姆电阻,基于该电阻作为基准,将内部电阻校准到接近目标值。 该步骤的执行不依赖于远端UCIe,在单Die条件下即可完成测试。


7.2 VOS Calibration

主要用于校准接收端参考电压的准确度,校准出相应电压补偿值,使得实际的参考电压相对准确。 VOS Calibration是在接收端执行的步骤,但该流程依赖于发送端提供过来的时钟,所以在实际验证中,该步骤出问题的话,需要比较关注这点。


7.3 Vref Training

Vref Training包含了Vref0和Vref1这两种。


Vref0 Training用于快速找到能正确接收数据的参考电压,该电压值相对粗糙,主要用于保证Write Trainingi能正常进行。 


Vref1 Training会比较细致的寻找到最佳的参考电压,该步骤需要在Write Training:完成后进行,才能得出相对精准的参考电压


7.4 Write Training

主要用于调节DQ的相位,使得在接收端能够接收到正确的数据。


因为在实际生产中,并不能保证每条DQ的线长、线宽、以及阻抗等参数的一致性,所以会导致数据传输到接收端都会有一定的相位偏差,该步骤的作用就是尽可能的消除这些偏差。 Write Training需要在Vref0 Training完成后进行。


7.5 Auto Training

其区别只是将vref Training和Write Training这些流程通过PHY去完成,不需要软件参与,节约一些配置时间。


7.6 Retraining

支持两种Retraining方式:一种是由软件触发的Retraining,另一种是UCIe周期性的自动完成Retraining动作。


Retraining一般在温度变化较大的时候会使用,温度的变化会导致DQ产生相位偏移,相位偏移过大就会导致误码率升高,Retraining可以快速调整DQ相位,确保后续的数据正确传输。


确认UCIe IP是否支持Back pressure,在做Retraining之前需要确保当前链路没有数据在传输,不然会导致数据丢失。


7.7 Track

Track功能可以在数据传输的过程中,检测到当前DQ的相位偏差并完成相位的调节,该功能依赖于Dx pin,如果Dx pin已经被用于替换掉损坏的DQ,则Track功能无法使用。


Track功能相对于Retraining来说,调节的范围较小,不能完全代替Retraining,但其优点是不需要停止数据传输就能完成DQ相位调节。


7.8 On-Die Scope

On-Die Scope(ODS)是一种嵌入在芯片内部的信号监测电路,用于捕捉 SerDes、PCIe、UCIe 等高速接口上的波形,并生成数字“眼图”


它模拟传统示波器的功能,但集成在芯片内部,无需外部探头或示波器探针,避免了探针引入的加载效应和信号失真。


从眼图上可以观察出码间串扰和噪声的影响,体现了数字信号整体的特征,从而估计系统优劣程度。


PI和Vref参数的系统扫描是一步一步执行的。这将生成一个2D图,显示每个DQ的通过点。


1. 按步递增PI参数,覆盖至少1 UI(64步)的范围。

2. 按步递增Vref参数,其中最小步为VDDQ/512,最大取值范围为512。

3. 对于给定的PI和Vref组合,确定通过点并将其绘制在2D图上。


硬件最终会记录4个值到寄存器,x0/x1/y0/y1,由此可以得知眼宽高。


完整的眼图可以更准确人眼信号质量,硬件提供的4个结果可以作为软件诊断使用


7.9 Loopback

芯片生产时,可以通过loopback方式测试UCIe通路是否Pass。


8. 参考资料

https://developer.aliyun.com/article/1073675?spm=a2c6h.12873639.article-detail.36.7ccd5d2c8AOn11


https://developer.aliyun.com/article/1073721


https://www.bilibili.com/video/BV1Uz42167Y7/?vd_source=1a89ca09926ad55a60f1f415bd0dd519&spm_id_from=333.788.videopod.sections

【声明】内容源于网络
0
0
Equilibria
分享在自我迭代过程中掌握的技能树、确立的原则和一些读过的书
内容 31
粉丝 0
Equilibria 分享在自我迭代过程中掌握的技能树、确立的原则和一些读过的书
总阅读37
粉丝0
内容31