本申请涉及计算机总线协议验证,尤其涉及一种pcie排序与重排序的验证方法。
背景技术:
1、pcie(peripheral component interconnect express)作为继isa和pci总线之后的第三代i/o总线,已成为连接中央处理器与外部设备的核心互连标准。其采用高速串行点对点架构,相比传统并行总线具有显著优势:支持多通道数据并发传输,提供高达16gt/s的单向链路速率;采用数据包交换机制降低传输延迟;通过差分信号设计实现长距离可靠传输。在存储设备、图形加速卡、高速网卡等对带宽敏感的应用场景中,pcie已成为不可或缺的基础设施。
2、协议规范中明确规定了事务排序规则,这是确保与传统pci/pci-x设备向后兼容的关键机制。排序规则要求具有相同流量类型的非发布(non-posted)请求必须按发起顺序完成,而完成包(completion)允许在特定条件下重排序以优化系统性能。这种复杂的排序机制在避免死锁的同时,需要精确协调请求报文与完成报文之间的时序关系。
3、现有验证技术面临两个主要瓶颈:其一,参考模型通常采用事务级抽象建模,缺乏时钟精确的时序模拟能力,导致无法捕捉被测设备内部由信用控制、端口拥塞等物理层因素触发的动态重排序行为;其二,传统验证方法依赖人工检查报文顺序,难以系统化验证重排序场景下数万种可能的报文组合是否满足协议规定的ro(relaxed ordering)属性约束。这些问题严重制约了高性能pcie设备(如nvme控制器、gpu互联模块)的验证完备性。
4、上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本申请的主要目的在于提供一种pcie排序与重排序的验证方法,旨在提升验证准确性和效率、有效捕捉动态重排序行为。
2、为实现上述目的,本申请提出一种pcie排序与重排序的验证方法,所述的方法包括:
3、通过参考模型接收来自模型模块的输入请求报文,为每个输出报文按顺序生成标签数据,并将标签数据与输出报文作为第一验证数据流输出至比对器;
4、通过被测设备接收所述模型模块的输入请求报文,生成实际输出报文,并将实际输出报文作为第二验证数据流输出至所述比对器;
5、在所述比对器中创建第一队列存储所述第一验证数据流,创建第二队列存储所述第二验证数据流;
6、基于所述第二队列中的实际输出报文,遍历所述第一队列的标签数据以匹配对应报文的顺序位置信息;
7、根据匹配的位置信息,比对所述第一队列的预期报文类型与所述第二队列的实际报文类型,根据pcie协议排序规则输出验证结果。
8、在一实施例中,所述通过参考模型接收来自模型模块的输入请求报文,为每个输出报文按顺序生成标签数据,并将标签数据与输出报文作为第一验证数据流输出至比对器的步骤包括:
9、通过所述模型模块向所述参考模型发送随机生成的请求报文,所述请求报文类型包括p型、np型及cpl型;
10、在所述参考模型中为每个输出报文按产生顺序生成递增序号标签;
11、将所述递增序号标签与对应输出报文绑定为带标签数据包,作为所述第一验证数据流输出至比对器。
12、在一实施例中,所述基于所述第二队列中的实际输出报文,遍历所述第一队列的标签数据以匹配对应报文的顺序位置信息的步骤包括:
13、从所述第二队列中提取首个实际输出报文;
14、遍历所述第一队列中所有带标签数据包,查询与所述实际输出报文内容相同的标签数据;
15、获取该标签数据对应的序号值作为当前报文在预期序列中的位置信息。
16、在一实施例中,所述根据匹配的位置信息,比对所述第一队列的预期报文类型与所述第二队列的实际报文类型,根据pcie协议排序规则输出验证结果的步骤包括:
17、基于所述位置信息,从所述第一队列中获取相同位置的预期报文类型;
18、比对所述预期报文类型与实际输出报文的类型;
19、若类型一致,则判定排序正确;若不一致,执行重排序验证逻辑。
20、在一实施例中,所述重排序验证逻辑包括:
21、当实际输出报文为cpl型且预期报文为p型时,检查所述cpl报文的ro属性值;
22、若ro属性值为1,则判定重排序合法;
23、若ro属性值不为1或实际输出报文为p型而预期为cpl型,则判定验证失败。
24、在一实施例中,所述ro属性值的获取方式为:
25、解析所述cpl报文的头部控制字段;
26、提取所述头部控制字段中第n比特位的值作为ro属性标志位。
27、在一实施例中,所述方法还包括:
28、通过信用管理模块配置所述被测设备的初始信用值及信用更新延时参数,模拟端口阻塞场景以触发重排序行为。
29、在一实施例中,所述通过信用管理模块配置所述被测设备的初始信用值及信用更新延时参数,模拟端口阻塞场景以触发重排序行为的步骤包括:
30、设置初始信用值限制所述被测设备的并发报文处理数量;
31、通过延时参数控制信用恢复响应时间,强制所述被测设备根据pcie协议执行重排序操作。
32、在一实施例中,标签数据包括递增的唯一序号值、对应报文的类型标识符以及报文的源地址与目标地址信息。
33、在一实施例中,所述验证结果包括排序正确标志、合法重排序事件记录以及违反排序规则的错误报文位置及类型信息。
34、本申请提供的一种pcie排序与重排序的验证方法,通过参考模型生成带顺序标签的预期数据流,结合被测设备输出流的动态比对,并引入信用管理模块模拟物理层阻塞场景,解决了现有技术中参考模型时序精度不足及人工验证效率低下的问题,能够提升验证准确性和效率,有效捕捉动态重排序行为。
1.一种pcie排序与重排序的验证方法,其特征在于,所述的方法包括:
2.如权利要求1所述的pcie排序与重排序的验证方法,其特征在于,所述通过参考模型接收来自模型模块的输入请求报文,为每个输出报文按顺序生成标签数据,并将标签数据与输出报文作为第一验证数据流输出至比对器的步骤包括:
3.如权利要求1所述的pcie排序与重排序的验证方法,其特征在于,所述基于所述第二队列中的实际输出报文,遍历所述第一队列的标签数据以匹配对应报文的顺序位置信息的步骤包括:
4.如权利要求3所述的pcie排序与重排序的验证方法,其特征在于,所述根据匹配的位置信息,比对所述第一队列的预期报文类型与所述第二队列的实际报文类型,根据pcie协议排序规则输出验证结果的步骤包括:
5.如权利要求4所述的pcie排序与重排序的验证方法,其特征在于,所述重排序验证逻辑包括:
6.如权利要求5所述的pcie排序与重排序的验证方法,其特征在于,所述ro属性值的获取方式为:
7.如权利要求1所述的pcie排序与重排序的验证方法,其特征在于,所述方法还包括:
8.如权利要求7所述的pcie排序与重排序的验证方法,其特征在于,所述通过信用管理模块配置所述被测设备的初始信用值及信用更新延时参数,模拟端口阻塞场景以触发重排序行为的步骤包括:
9.如权利要求1所述的pcie排序与重排序的验证方法,其特征在于,标签数据包括递增的唯一序号值、对应报文的类型标识符以及报文的源地址与目标地址信息。
10.如权利要求1所述的pcie排序与重排序的验证方法,其特征在于,所述验证结果包括排序正确标志、合法重排序事件记录以及违反排序规则的错误报文位置及类型信息。