掌桥专利:专业的专利平台
掌桥专利
首页

一种基于自测节点的互连裸芯自测系统及方法

文献发布时间:2023-06-19 19:28:50


一种基于自测节点的互连裸芯自测系统及方法

技术领域

本发明涉及裸芯级网络领域,具体涉及一种基于自测节点的互连裸芯自测系统及方法。

背景技术

在单片专用集成电路中,所有组件都是在一个硅片上用同一种工艺设计和制造的。随着工艺尺寸的缩小,开发单片专用集成电路的成本和开发周期变得极高。在此情况下,多裸芯(Die)集成是未来开发高性能芯片的必然选择,即将多个功能各异且已通过验证、未被封装的芯片组件互联组装起来,并封装为同一管壳中的芯片整体,形成多芯片模组(Multi-Chip Module,MCM),这些组成MCM的裸芯被称为芯粒(Chiplet),在同一个封装内的每个芯粒可以采用不同工艺、来自不同厂商,因此极大缩短和降低了开发周期和难度。

然而,随着芯片中处理器(Processor)和其他功能单元数量的爆炸式增长,为了充分发挥每个功能单元的作用,构建一个片上片间一体化的高性能网络,实现多个功能单元和多个芯粒之间的高效通信也尤为重要。在过去的20多年里,片上网络(Network-on-Chip,NoC)技术取得了充分的研究和长足发展,尤其是在构建大型复杂系统时,片上网络替代传统总线式互连结构成为了不可或缺的系统部件。而在可扩展互连裸芯上采用的类似于NoC的互连结构被称为裸芯级网络(Network-on-Die,NoD)。NoD继承了NoC的高带宽和高可扩展性,可用于作为多裸芯的互连结构,也可通过扩展级联形成封装级网络(Network-on-Package,NoP),实现更大规模的芯粒互连。

基于NoD/NoP的多裸芯集成微系统具备一定的系统复杂性,其互连结构、各节点的协议转换接口、各节点相连的主机或存储器等都可能在某些情况下出现故障。由于多裸芯集成微系统异构且复杂的特点,使得定位故障变得较为困难。因此,互连裸芯作为集成多裸芯微系统的重要部件,很有必要支持一套自检自测的机制以协助定位故障并提高系统的可测试性。

发明内容

针对现有技术中的上述不足,本发明提供的一种基于自测节点的互连裸芯自测系统及方法实现了不依赖于主机节点的条件下完成对互连裸芯的片上片间路由转发功能,以及从设备节点的基本读写功能的检测,提高了多裸芯集成微系统的可测试性。

为了达到上述发明目的,本发明采用的技术方案为:

提供一种基于自测节点的互连裸芯自测系统,其包括部署在每个互连裸芯上的自测节点;每个自测节点均包括自测发包器和自测响应器;

每个自测发包器均包括可配置寄存器、数据包发送控制器、数据包封装器和数据包解析器;可配置寄存器通过MCU进行配置;可配置寄存器分别与数据包发送控制器、数据包封装器和数据包解析器相连;数据包发送控制器与数据包封装器相连;

数据包发送控制器,用于根据可配置寄存器的配置内容驱动数据包封装器封装请求包;

数据包封装器,用于封装数据包并向从设备节点发送请求包;

数据包解析器,用于接收来自从设备节点的响应包,并将响应包中的必要信息寄存在可配置寄存器;

自测响应器,用于根据自测发包器的写请求包检测互连裸芯是否能正确路由,即检测两节点是否互连互通,并向写请求包发出的节点返回响应包。

进一步地,自测发包器的请求包包括发送至Nand Flash节点的擦除请求包、写请求包和读请求包,发送至DDR存储器节点的写请求包和读请求包,以及发送至自测响应器的写请求包。

进一步地,每个自测响应器均包括请求包解析器和响应包封装器;其中:

请求包解析器,用于对接收到的写请求包进行解析并提取有效信息;

响应包封装器,用于根据有效信息封装写响应包,并将写响应包发送至发出请求包的节点。

进一步地,可配置寄存器包括:

互连裸芯编号寄存器,地址偏移为0x00,用于读取相应地址的数据进行确认;

主地址低位寄存器,地址偏移为0x04,用于记录目的地址的低32bit;

主地址高位寄存器,地址偏移为0x08,用于记录目的地址的高32bit;

控制信息寄存器,地址偏移为0x0c,用于记录事务ID、事件类型和数据长度;

控制信息状态寄存器,地址偏移为0x10,用于记录当前控制信息寄存器的配置是否合法;当其bit为0时,代表当前控制信息配置合法;当其bit为1时,代表当前控制信息配置不合法;

发送建立寄存器,地址偏移为0x24,用作自测发包器的使能位,用于在bit为1、数据包发送控制器状态为空闲态、当前控制信息寄存器的配置为合法时,依据当前的配置信息发送一次请求包;该bit被置1后会自动在下一时钟上升沿恢复为0;

发送状态寄存器,地址偏移为0x28,用作自测发包器状态位,用于记录自测发包器状态;当其bit为0时,表示自测发包器处于空闲状态;当其bit为1时,表示自测发包器处于忙碌状态;

写请求第0字寄存器,地址偏移为0x14,用于记录写请求数据体微片的第0字有效负载;

写请求第1字寄存器,地址偏移为0x18,用于记录写请求数据体微片的第1字有效负载;

写请求第2字寄存器,地址偏移为0x1c,用于记录写请求数据体微片的第2字有效负载;

写请求第3字寄存器,地址偏移为0x20,用于记录写请求数据体微片的第3字有效负载;

写响应信息寄存器,地址偏移为0x2c,用于记录最近一次收到的写响应包事务ID和已收到写响应包次数的计数值;

读确认信息寄存器,地址偏移为0x30,用于记录最近一次收到的读确认包事务ID和已收到读确认包次数的计数值;

读响应信息寄存器,地址偏移为0x34,用于记录最近一次收到的读响应包事务ID、已收到读响应包次数的计数值,以及已收到数据出错的读响应包的次数计数值;

读响应第0字寄存器,地址偏移为0x38,用于记录最近一次收到的读响应包数据体微片的第0字有效负载;

读响应第1字寄存器,地址偏移为0x3c,用于记录最近一次收到的读响应包数据体微片的第1字有效负载;

读响应第2字寄存器,地址偏移为0x40,用于记录最近一次收到的读响应包数据体微片的第2字有效负载;

读响应第3字寄存器,地址偏移为0x44,用于记录最近一次收到的读响应包数据体微片的第3字有效负载;

数据比对寄存器,地址偏移为0x48,用于记录相邻两事务ID的写请求与读响应的有效负载对比结果;其中对比结果00表示写请求数据和读响应数据一致;对比结果01表示写请求数据和读响应数据不一致;对比结果10表示两事务ID关系不正确。

提供一种基于自测节点的互连裸芯自测方法,其包括基于自测节点的互连裸芯自测系统,还包括以下步骤:

S1、通过自测发包器向同一互连裸芯中的自测响应器、DDR存储器节点和NandFlash节点发送请求包,并根据接收到的响应信息判断片内路由转发功能是否正常、DDR存储器节点功能是否正常、Nand Flash节点功能是否正常,实现片内自测;

S2、通过自测发包器向另一互连裸芯中的自测响应器发送写请求包,并通过读取来自另一互连裸芯中的自测响应器的响应信息判断片间传输功能是否正常,实现片间自测。

进一步地,步骤S1中根据接收到的响应信息判断片内路由转发功能是否正常的具体方法为:

通过自测发包器向同一互连裸芯中的自测响应器发送写请求包,判断在写请求包发送后设定时间内是否收到对应的响应信息,若是则判定片内互连结构的路由转发功能正常;否则判定片内互连结构的路由转发功能异常。

进一步地,步骤S1中根据接收到的响应信息判断DDR存储器节点功能是否正常的具体方法为:

当片内路由转发功能正常时,若向同一互连裸芯中的DDR存储器节点发送写请求包或擦除请求包后在设定时间内未收到对应的响应信息、发送读请求包后设定时间内未收到读确认和读响应信息,则判定DDR存储器节点本身存在故障;DDR存储器节点本身故障包括DDR存储器节点的网络接口故障、DDR存储器控制器故障以及DDR存储器故障;

当片内路由转发功能正常时,若对DDR存储器节点的写请求包或擦除请求包均有响应,读请求后也接收到读确认,但没有读响应或是有读响应但其读响应数据有误,则判定DDR存储器控制器故障和/或DDR存储器故障。

进一步地,步骤S1中根据接收到的响应信息判断Nand Flash节点功能是否正常的具体方法为:当片内路由转发功能正常时,若向同一互连裸芯中的Nand Flash节点发送写请求包或擦除请求包后在设定时间内未收到对应的响应信息、发送读请求包后设定时间内未收到读确认和读响应信息,则判定Nand Flash节点本身存在故障;Nand Flash节点本身故障包括Nand Flash节点的网络接口故障、Nand Flash控制器故障以及Nand Flash存储器故障;

当片内路由转发功能正常时,若对Nand Flash节点的写请求包或擦除请求包均有响应,读请求后也接收到读确认,但没有读响应或是有读响应但其读响应数据有误,则判定Nand Flash控制器故障和/或Nand Flash存储器故障。

进一步地,步骤S2中判断片间传输功能是否正常的具体方法为:

当片内路由转发功能正常时,若向另一互连裸芯中的自测响应器发送写请求包后设定时间内收不到对应的写响应,则判定片间传输存在故障。

本发明的有益效果为:

1、本发明解决了基于互连裸芯的多裸芯集成微系统中故障难以定位的问题,实现了在不依赖于主机节点的条件下完成对互连裸芯的片上片间路由转发功能以及从设备节点的基本读写功能的检测,提高了多裸芯集成微系统的可测试性。

2、自测发包器包含可配置的功能寄存器,使得自测过程更为灵活,通过这些功能寄存器寄存的自测反馈信息更好地定位故障发生位置。

附图说明

图1为自测发包器结构框图;

图2为自测响应器结构框图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

如图1和图2所示,该基于自测节点的互连裸芯自测系统包括部署在每个互连裸芯上的自测节点;每个自测节点均包括自测发包器和自测响应器;

每个自测发包器均包括可配置寄存器、数据包发送控制器、数据包封装器和数据包解析器;可配置寄存器通过MCU进行配置;可配置寄存器分别与数据包发送控制器、数据包封装器和数据包解析器相连;数据包发送控制器与数据包封装器相连;

数据包发送控制器,用于根据可配置寄存器的配置内容驱动数据包封装器封装请求包;

数据包封装器,用于封装数据包并向从设备节点发送请求包;

数据包解析器,用于接收来自从设备节点的响应包,并将响应包中的必要信息寄存在可配置寄存器;

自测响应器,用于根据自测发包器的写请求包检测互连裸芯是否能正确路由,即检测两节点是否互连互通,并向写请求包发出的节点返回响应包。

自测发包器由微控制单元MCU通过AMBA总线接口对可配置寄存器进行配置,这些可配置寄存器在完成配置以后会自动驱动数据包发送控制器向从设备节点发送请求包,并接收来自从设备节点的响应包,响应包中的必要信息由部分功能寄存器进行寄存,可由MCU通过AMBA总线接口读取响应信息进行确认,从而判断自测结果。

进一步地,自测发包器的请求包包括发送至Nand Flash节点的擦除请求包、写请求包和读请求包,发送至DDR存储器节点的写请求包和读请求包,以及发送至自测响应器的写请求包。

进一步地,每个自测响应器均包括请求包解析器和响应包封装器;其中:

请求包解析器,用于对接收到的写请求包进行解析并提取有效信息;

响应包封装器,用于根据有效信息封装写响应包,并将写响应包发送至发出请求包的节点。

自测响应器没有配置接口,不需要MCU配置,其自身结构中包含请求包解析逻辑与响应包封装逻辑,会在接收到写请求包时自动进行解析并提取有效信息,之后依据这些信息封装好写响应包,并通过互连结构将写响应包发往对应的自测发包器所在节点。

进一步地,可配置寄存器包括:

互连裸芯编号寄存器,地址偏移为0x00,用于读取相应地址的数据进行确认;其具体内容如表1;

表1:互连裸芯编号寄存器(NoDID寄存器,地址偏移:0x00)

主地址低位寄存器,地址偏移为0x04,用于记录目的地址的低32bit;其具体内容如表2;

表2:主地址低位寄存器(地址偏移:0x04)

主地址高位寄存器,地址偏移为0x08,用于记录目的地址的高32bit;其具体内容如表3;

表3:主地址高位寄存器(地址偏移:0x08)

控制信息寄存器,地址偏移为0x0c,用于记录事务ID、事件类型和数据长度;其具体内容如表4;

表4:控制信息寄存器(地址偏移:0x0c)

控制信息状态寄存器,地址偏移为0x10,用于记录当前控制信息寄存器的配置是否合法;当其bit为0时,代表当前控制信息配置合法;当其bit为1时,代表当前控制信息配置不合法;其具体内容如表5;

表5:控制信息状态寄存器(地址偏移:0x10)

发送建立寄存器,地址偏移为0x24,用作自测发包器的使能位,用于在bit为1、数据包发送控制器状态为空闲态、当前控制信息寄存器的配置为合法时,依据当前的配置信息发送一次请求包;该bit被置1后会自动在下一时钟上升沿恢复为0;其具体内容如表6;

表6:发送建立寄存器(地址偏移:0x24)

发送状态寄存器,地址偏移为0x28,用作自测发包器状态位,用于记录自测发包器状态;当其bit为0时,表示自测发包器处于空闲状态;当其bit为1时,表示自测发包器处于忙碌状态;其具体内容如表7;

表7:发送状态寄存器(地址偏移:0x28)

写请求第0字寄存器,地址偏移为0x14,用于记录写请求数据体微片的第0字有效负载;其具体内容如表8;

表8:写请求第0字寄存器(地址偏移:0x14)

写请求第1字寄存器,地址偏移为0x18,用于记录写请求数据体微片的第1字有效负载;其具体内容如表9;

表9:写请求第1字寄存器(地址偏移:0x18)

写请求第2字寄存器,地址偏移为0x1c,用于记录写请求数据体微片的第2字有效负载;其具体内容如表10;

表10:写请求第2字寄存器(地址偏移:0x1c)

写请求第3字寄存器,地址偏移为0x20,用于记录写请求数据体微片的第3字有效负载;其具体内容如表11;

表11:写请求第3字寄存器(地址偏移:0x20)

写响应信息寄存器,地址偏移为0x2c,用于记录最近一次收到的写响应包事务ID和已收到写响应包次数的计数值;其具体内容如表12;

表12:写响应信息寄存器(地址偏移:0x2c)

读确认信息寄存器,地址偏移为0x30,用于记录最近一次收到的读确认包事务ID和已收到读确认包次数的计数值;其具体内容如表13;

表13:读确认信息寄存器(地址偏移:0x30)

读响应信息寄存器,地址偏移为0x34,用于记录最近一次收到的读响应包事务ID、已收到读响应包次数的计数值,以及已收到数据出错(主要指数据体微片的有效负载前后不一致)的读响应包的次数计数值;其具体内容如表14;

表14:读响应信息寄存器(地址偏移:0x34)

读响应第0字寄存器,地址偏移为0x38,用于记录最近一次收到的读响应包数据体微片的第0字有效负载;其具体内容如表15;

表15:读响应第0字寄存器(地址偏移:0x38)

读响应第1字寄存器,地址偏移为0x3c,用于记录最近一次收到的读响应包数据体微片的第1字有效负载;其具体内容如表16;

表16:读响应第1字寄存器(地址偏移:0x3c)

读响应第2字寄存器,地址偏移为0x40,用于记录最近一次收到的读响应包数据体微片的第2字有效负载;其具体内容如表17;

表17:读响应第2字寄存器(地址偏移:0x40)

读响应第3字寄存器,地址偏移为0x44,用于记录最近一次收到的读响应包数据体微片的第3字有效负载;其具体内容如表18;

表18:读响应第3字寄存器(地址偏移:0x44)

数据比对寄存器,地址偏移为0x48,用于记录相邻两事务ID的写请求与读响应的有效负载对比结果;其中对比结果00表示写请求数据和读响应数据一致;对比结果01表示写请求数据和读响应数据不一致;对比结果10表示两事务ID关系不正确。其具体内容如表19;

表19:数据比对寄存器(地址偏移:0x48)

/>

该基于自测节点的互连裸芯自测方法在基于自测节点的互连裸芯自测系统的基础上还包括以下步骤:

S1、通过自测发包器向同一互连裸芯中的自测响应器、DDR存储器节点和NandFlash节点发送请求包,并根据接收到的响应信息判断片内路由转发功能是否正常、DDR存储器节点功能是否正常、Nand Flash节点功能是否正常,实现片内自测;

S2、通过自测发包器向另一互连裸芯中的自测响应器发送写请求包,并通过读取来自另一互连裸芯中的自测响应器的响应信息判断片间传输功能是否正常,实现片间自测。

步骤S1中根据接收到的响应信息判断片内路由转发功能是否正常的具体方法为:通过自测发包器向同一互连裸芯中的自测响应器发送写请求包,判断在写请求包发送后设定时间内是否收到对应的响应信息,若是则判定片内互连结构的路由转发功能正常;否则判定片内互连结构的路由转发功能异常。

步骤S1中根据接收到的响应信息判断DDR存储器节点功能是否正常的具体方法为:

当片内路由转发功能正常时,若向同一互连裸芯中的DDR存储器节点发送写请求包或擦除请求包后在设定时间内未收到对应的响应信息(对应写响应信息寄存器)、发送读请求包后设定时间内未收到读确认(对应读确认信息寄存器)和读响应信息(对应读响应信息寄存器),则判定DDR存储器节点本身存在故障;DDR存储器节点本身故障包括DDR存储器节点的网络接口故障、DDR存储器控制器故障以及DDR存储器故障;

当片内路由转发功能正常时,若对DDR存储器节点的写请求包或擦除请求包均有响应,读请求后也接收到读确认,但没有读响应或是有读响应但其读响应数据(对应读响应第x字寄存器以及数据对比寄存器)有误,则判定DDR存储器控制器故障和/或DDR存储器故障。

步骤S1中根据接收到的响应信息判断Nand Flash节点功能是否正常的具体方法为:

当片内路由转发功能正常时,若向同一互连裸芯中的Nand Flash节点发送写请求包或擦除请求包后在设定时间内未收到对应的响应信息(对应写响应信息寄存器)、发送读请求包后设定时间内未收到读确认(对应读确认信息寄存器)和读响应信息(对应读响应信息寄存器),则判定Nand Flash节点本身存在故障;Nand Flash节点本身故障包括NandFlash节点的网络接口故障、Nand Flash控制器故障以及Nand Flash存储器故障;

当片内路由转发功能正常时,若对Nand Flash节点的写请求包或擦除请求包均有响应,读请求后也接收到读确认,但没有读响应或是有读响应但其读响应数据(对应读响应第x字寄存器以及数据对比寄存器)有误,则判定Nand Flash控制器故障和/或Nand Flash存储器故障。

步骤S2中判断片间传输功能是否正常的具体方法为:当片内路由转发功能正常时,若向另一互连裸芯中的自测响应器发送写请求包后设定时间内收不到对应的写响应,则判定片间传输存在故障。

在本发明的一个实施例中,发起请求的具体过程为:

1)首先根据NoDID(即互连裸芯编号,用于区别扩展级联的多个互连裸芯),配置NoDID寄存器(互连裸芯编号寄存器,地址偏移:0x00)。配置后可读取该地址的数据进行确认。

2)配置控制信息寄存器(地址偏移:0x0c),配置事务ID、事件类型TTP(支持对NandFlash节点的擦除请求、写请求及读请求,对DDR存储器节点的写请求与读请求,对自测响应器的写请求)以及数据长度LEN。配置后可读取该地址的数据进行确认。

3)配置两个主地址(目的地址)寄存器(地址偏移:0x04、0x08),分别为目的地址的低32位与高32位。

4)若要发起写请求包,则配置四个写请求有效负载字寄存器(地址偏移:0x14、0x18、0x1c、0x20),写入写请求数据微片(Flit,是互连裸芯中的最小流控单位,由若干flit组成一个数据包)共计四个字(128bit)的有效负载,后续若成功发出写请求包,其所有数据体微片的有效负载都会与该配置值一致。若发起的是读请求或擦除请求,则忽略这一步骤。

5)读取控制信息状态寄存器(地址偏移:0x10)判断控制信息是否配置合法。

6)读取发送状态寄存器(地址偏移:0x28)判断发包器是否处于空闲状态。

7)确定控制信息配置合法且发包器处于空闲状态后,将发送建立寄存器(地址偏移:0x24)的bit0置位,即可触发发包器的请求包发送。

接收响应的具体过程为:

1)确认接收到的写响应或擦除响应

本发明中对应擦除请求包的响应包和对应写请求包的响应包均为写响应包,故只需读取写响应信息寄存器(地址偏移:0x2c)以确认响应信息。通过读取该寄存器可以得到已收到的响应包次数和最近一次响应的TID。若已收到写响应包次数的计数值较原值增加了1且最近一次写响应的TID与写请求的TID一致,则说明成功收到了对应该写请求的写响应。

2)确认接收到的读响应

i)读取读响应信息寄存器(地址偏移:0x34)。通过读取该寄存器可以得到已收到的读响应包次数、最近一次读响应的TID以及已收到数据出错的读响应包的次数。若已收到读响应包次数的计数值较原值增加了1,最近一次读响应的TID与读请求的TID一致,且已收到数据出错的读响应包的次数未增加,则说明成功收到了对应该读请求的正确读响应。

ii)读取四个读响应字寄存器(地址偏移:0x38、0x3c、0x40、0x44)。通过读取这些寄存器的值可以得到读响应包的首个数据体微片的128bit有效负载。

iii)若在发起读请求前对同一目的地址发起过同样数据长度的写请求,且TID符合相邻的规则(即读请求TID=写请求TID+1),则可通过读取数据比对寄存器(地址偏移:0x48)得到写请求与读响应数据的对比结果,从而判断读回的数据是否正确。

综上所述,本发明解决了基于互连裸芯的多裸芯集成微系统中故障难以定位的问题,实现了在不依赖于主机节点的条件下完成对互连裸芯的片上片间路由转发功能以及从设备节点的基本读写功能的检测,提高了多裸芯集成微系统的可测试性。

相关技术
  • 一种基于边界声反射的目标强度自测方法和自测系统
  • 基于疾病集的个人自测模型建立方法及自测系统
技术分类

06120115926593