如何在SMBus与I²C上测试MCTP
MCTP规范是由(DMTF)发布,广泛应用于许多电脑与伺服器架构中,因其定义了系统管理控制器(management controller)如何与受控装置(如PCIe扩充卡、硬碟)进行通讯。MCTP(Management Component Transport Protocol)是一种位元组对齐(byte-aligned)讯息系统,运行在现有的实体层或通讯协定之上。也因此,它被称为[传输层Transport Layer],它只有定义用于管理与控制相关讯息的位元组,而不定义这些位元组如何被实体传送。

如下图所呈现的,灰色区块代表底层实体层(例如PCIe)的典型标头与尾部区段,橙色与绿色区块则是由MCTP定义的资料字节。对底层实体层而言,MCTP封包仅仅是资料(payload)字节,并遵循该实体层采用相同的编码与映射。
如何在SMBus与I²C上测试MCTP
为了进一步说明这个概念,可以想象一个系统主机板上装有一个透过PCIe 插槽连接的固态硬盘(SSD)。在MCTP的架构中,这个SSD被视为一个受控制装置。MCTP控制讯息可以透过PCIe协定本身,在CPU与SSD之间传输。如下图:
如何在SMBus与I²C上测试MCTP
如果你曾经使用过PCIe,就会知道它是一种高效能且非常复杂的总线,因此它更适合用于执行实际的任务模式传输(例如以最高速度从SSD读取大档案),而不是用来进行系统管理。这也是为什么在许多实际应用中,MCTP协定通常运行在其他较简单的实体层之上,例如SMBus或I2C。而现在随着最新的I3C,MCTP协定也可以顺利地运作在I3C实体层上!
如何在SMBus与I²C上测试MCTP
MCTP請求與回應訊息在SMBus/I²C上的處理方式
在这种情况下,所有MCTP封包交易皆以SMBus写入交易(write transaction) 的形式进行,用于在装置间传送请求或回应讯息。因此,总线上的每个装置(即使是控制器)都必须拥有一个地址,以作为交易的目标。如图4所示,MCTP 封包在SMBus/I²C上的格式增加了四个位元组(byte 1到byte 4),用以定义媒介专属标头(medium-specific header):
● byte 1–3(目的从属装置地址、指令码、字节数)为SMBus栏位。
● byte 4(来源从属装置地址)由MCTP新增,用于方便将回应讯息传回给发出请求的装置。
其余字节(byte 5到byte N1)则为典型的传输层标头与资料负载(如图1所示)。值得注意的是,MCTP封包完成后会附加一个封包错误码(PEC, Packet Error Code)字节,这是MCTP协定为确保传输可靠性所要求的。
如何在SMBus与I²C上测试MCTP
MCTP寫入與讀取訊息在 I3C 上的處理方式
如前所述,对于MCTP在SMBus/I²C上的应用,所有交易都是以写入传输(write transfer)的形式进行。然而,在I3C的情况下,封包传输会依通讯方向而有所不同:
● Host device to Slave device:采用主装置发起的写入传输(primary-initiated write transfer)。
● Slave device to Host device:可透过两种模式进行:带内中断模式(IBI mode, In-Band Interrupt)或轮询模式(polling mode)。
在先前的文章中,我们已展示如何在I3C上构建MCTP的写入与读取命令,图 5 为方便起见也附于此。继续阅读可了解SV6E-X如何成为一个简单易用的工具,在I3C以及SMBus/I²C上执行这类测试。
如何在SMBus与I²C上测试MCTP
在SMBus 或 I2C 与 I3C上测试MCTP
Introspect SV6E-X Mid-Frequency Digital Test Module是Introspect的获奖解决方案,用于测试与验证I²C、I3C界面及其衍生协定。它自然也能轻松支援MCTP协定,简单来说,SV6EX可以当作Host device发送MCTP讯息到Slave device,也可以当Salve接收并回应Host的讯息。使用时,封包栏位和错误检查位元(PEC)都会自动处理,使用者不需手动计算。此外,SV6EX也可以作为协定分析仪或示波器使用,这些功能同样适用于MCTP测试。图6和图7分别展示了使用协定分析仪译码 MCTP 传输的范例。

如何在SMBus与I²C上测试MCTP

如何在SMBus与I²C上测试MCTP


结论
透过这篇文章,说明了MCTP协定以及其如何打包在SMBus与I²C或MIPI I3C协定之上,以便从Host向Slave传送讯息,并展示了Slave如何将回应讯息传回Host。最后,我们介绍了Introspect SV6E-X Mid-Frequency Digital Test Module,说明其如何自然地支援 MCTP 测试,使设计、除错与特性分析测试MCTP装置变得更加简单。如果你对于MCTP测试或是I3C feature开发验证与设计上有任何的疑问,也欢迎随时跟我们联系。

相关资讯