CN117369906B - Pcie验证平台、方法、装置、存储介质及电子设备 - Google Patents

Pcie验证平台、方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN117369906B
CN117369906B CN202311670243.1A CN202311670243A CN117369906B CN 117369906 B CN117369906 B CN 117369906B CN 202311670243 A CN202311670243 A CN 202311670243A CN 117369906 B CN117369906 B CN 117369906B
Authority
CN
China
Prior art keywords
configuration
vip
pcie
verification
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311670243.1A
Other languages
English (en)
Other versions
CN117369906A (zh
Inventor
杜秀权
邓松
李宏伟
屈银东
王岩
邓涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Nanfei Microelectronics Co ltd
Original Assignee
Chengdu Nanfei Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Nanfei Microelectronics Co ltd filed Critical Chengdu Nanfei Microelectronics Co ltd
Priority to CN202311670243.1A priority Critical patent/CN117369906B/zh
Publication of CN117369906A publication Critical patent/CN117369906A/zh
Application granted granted Critical
Publication of CN117369906B publication Critical patent/CN117369906B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

本发明提供一种Pcie验证平台、方法、装置、存储介质及电子设备,属于验证技术领域。Pcie验证平台包括:驱动组件、采集组件、配置组件和多个VIP访问组件,仿真人员在进行Pcie验证之前将驱动组件、采集组件、配置组件和多个VIP访问组件进行实例化,即可搭建支持多主机多功能和单根虚拟化、将Pcie视作数据通道的验证平台。通过模拟多个主机,每个主机运行多个虚拟机系统,每个系统独立向硬件发起访问并处理来自硬件的访问的场景,满足多主机多功能、单根虚拟化功能的测试需求,解决了多个主机软件并行访问多个功能设备场景和硬件多个功能设备并行访问多个主机的仿真问题,满足多种验证场景。

Description

Pcie验证平台、方法、装置、存储介质及电子设备
技术领域
本发明涉及验证技术领域,具体地涉及一种Pcie验证平台、一种Pcie验证方法、一种Pcie验证装置、一种机器可读存储介质及一种电子设备。
背景技术
Pcie (peripheral component interconnect express) 是一种高速串行计算机扩展总线标准,不同于以前的IO总线,Pcie采用串行的,点到点的互联方法来实现两个设备间的通信;可以支持电源管理,错误报告,端到端的可靠性传输,热插拔以及服务质量等功能。
请参看图1,图1为支持单主机单功能的验证平台示意图。常规的Pcie验证平台方案,主要适用于单主机/单一物理功能场景,对于单根I/O 虚拟化功能验证的支持性欠缺。现有的Pcie验证平台专注于对单主机,单一设备功能场景下仿真模型的构建。不能满足单根I/O 虚拟化,多主机多功能验证平台的验证需求,因此存在一定欠缺性。
因此,现有的Pcie验证平台方案存在无法模拟多个主机软件并行访问多个功能设备场景和硬件多个功能设备访问多个主机场景的问题。
发明内容
本发明实施例的目的是提供一种Pcie验证平台、一种Pcie验证方法、一种Pcie验证装置、一种机器可读存储介质及一种电子设备,该Pcie验证平台解决了模拟多个主机软件并行访问多个功能设备场景和硬件多个功能设备并行访问多个主机场景的问题。
为了实现上述目的,本申请第一方面提供一种Pcie验证平台,包括:驱动组件、采集组件、配置组件和多个VIP访问组件;
所述配置组件用于在进行Pcie验证之前,获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
所述驱动组件用于在进行Pcie验证之前,在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;还用于在进行Pcie验证时,获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
所述各个VIP访问组件用于在进行Pcie验证之前,分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;还用于在进行Pcie验证时,分别基于所述业务流报文,与对应的设备功能进行数据交互;
所述采集组件用于采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
在本申请实施例中,所述采集组件包括数据流对比单元、出口采集单元和入口采集单元;
所述入口采集单元用于在进行Pcie验证时,从所述驱动组件采集所述业务流报文;
所述出口采集单元用于在进行Pcie验证时,采集Pcie硬件的输出数据;
所述数据流对比单元用于将所述业务流报文与所述Pcie硬件的输出数据进行对比,得到对比结果。
在本申请实施例中,所述配置组件还用于基于所述基础配置信息生成全局配置文件和局部配置文件,并采用分级管理和内容映射的方式对所述全局配置文件和局部配置文件中的配置信息进行管理。
在本申请实施例中,所述驱动组件还用于对所述多个VIP访问组件的内存进行控制。
在本申请实施例中,各个VIP访问组件分别设置有Pcie插入错误访问端口,所述Pcie插入错误访问端口用于在进行Pcie验证时,实现异常场景测试。
在本申请实施例中,所述基础配置信息还包括硬件基础配置信息,所述Pcie验证平台还包括寄存器模型管理组件;
所述寄存器模型管理组件用于在进行Pcie验证之前,从所述配置组件读取所述硬件基础配置信息,并基于所述硬件基础配置信息,通过DBI总线对所述Pcie硬件的基本属性进行配置。
本申请第二方面提供一种Pcie验证方法,用于上述的Pcie验证平台,所述Pcie验证方法包括:
在进行Pcie验证之前,执行以下步骤:
由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
在进行Pcie验证时,执行以下步骤:
由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
本申请第三方面提供一种Pcie验证装置,用于上述的Pcie验证平台,所述Pcie验证装置包括:
配置生成模块,用于使得在进行Pcie验证之前,由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
第一配置模块,用于使得在进行Pcie验证之前,由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
第一下发模块,用于使得在进行Pcie验证之前,由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
第二下发模块,用于使得在进行Pcie验证时,由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
交互模块,用于使得在进行Pcie验证时,由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
采集模块,用于使得由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
本申请第四方面提供一种电子设备,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的Pcie验证方法。
本申请第五方面提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令在被处理器执行时使得所述处理器被配置成执行上述的Pcie验证方法。
通过上述技术方案,通过设置驱动组件、采集组件、配置组件和多个VIP访问组件,所述配置组件用于在进行Pcie验证之前,获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;所述驱动组件用于在进行Pcie验证之前,在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;还用于在进行Pcie验证时,获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;所述各个VIP访问组件用于在进行Pcie验证之前,分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;还用于在进行Pcie验证时,分别基于所述业务流报文,与对应的设备功能进行数据交互;所述采集组件用于采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。仿真人员在进行Pcie验证之前将驱动组件、采集组件、配置组件和多个VIP访问组件进行实例化,即可搭建支持多主机多功能和单根虚拟化、将Pcie视作数据通道的验证平台。通过模拟多个主机,每个主机运行多个虚拟机系统,每个系统独立向硬件发起访问并处理来自硬件的访问的场景,满足多主机多功能、单根虚拟化功能的测试需求,解决了多个主机软件并行访问多个功能设备场景和硬件多个功能设备并行访问多个主机的仿真问题,满足多种验证场景。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1为支持单主机单功能的验证平台示意图;
图2为支持多主机多功能、单根虚拟化的验证平台示意图;
图3示意性示出了根据本申请实施例的Pcie验证平台的总体框架图;
图4示意性示出了根据本申请实施例的驱动组件的框架图;
图5示意性示出了根据本申请实施例的采集组件的框架图;
图6示意性示出了根据本申请实施例的VIP访问组件的框架图;
图7示意性示出了根据本申请实施例的配置组件的框架图;
图8示意性示出了根据本申请实施例的一种Pcie验证方法的流程示意图;
图9示意性示出了根据本申请实施例的一种Pcie验证装置的结构框图;
图10示意性示出了根据本申请实施例的计算机设备的内部结构图。
附图标记说明
410-配置生成模块;420-第一配置模块;430-第一下发模块;440-第二下发模块;450-交互模块;460-采集模块;A01-处理器;A02-网络接口;A03-内存储器;A04-显示屏;A05-输入装置;A06-非易失性存储介质;B01-操作系统;B02-计算机程序。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
需要说明的是,本发明提到的VIP (Verification Ip,VIP)是指一套符合标准Pcie协议的仿真组件,为验证平台提供时序处理、串并转换等功能,是验证平台的一部分。硬件实际指的是芯片的功能模块的逻辑表述,最终会成为芯片电路的组成部分。多主机是Pcie 模块的一种设计模式,例如X16的Pcie 接口可通过配置应用在1*X16/2*X8/4*X4场景下,对应单主机/双主机/四主机模式。多功能是指Pcie 设备存在多个物理功能(PF)。单根虚拟化(Single Root I/O Virtualization ,SRIOV)是Pcie协议的一项拓展功能,允许单一物理Pcie物理功能通过配置空间创建多个虚拟功能(VF)。
请参看图2和图3,本实施例提供一种Pcie验证平台,包括:驱动组件、采集组件、配置组件和多个VIP访问组件;其中:
所述配置组件用于在进行Pcie验证之前,获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
所述驱动组件用于在进行Pcie验证之前,在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;还用于在进行Pcie验证时,获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
所述各个VIP访问组件用于在进行Pcie验证之前,分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;还用于在进行Pcie验证时,分别基于所述业务流报文,与对应的设备功能进行数据交互;
所述采集组件用于采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
在本实施例中,请参看图7,所述配置组件负责管理验证平台的全局配置,将仿真所需配置归纳于同一集合,便于创建全局可见的视图。具体地,配置组件获取最小限度的配置信息并以此计算出各个功能的基本属性、必要的Pcie协议配置等。所述配置组件可以将配置以配置文件的方式存储,配置文件有输入输出,一些最小限度的配置信息需要用户指定,然后配置组件按照Pcie协议计算出各个功能的基本信息。在初始化的时候需要给配置文件输入一些基本信息,即基础配置信息,配置文件根据这些基本信息算出更多的细节,即得到配置报文,包括:1、确定需要使能的功能数量,2、各个物理功能和虚拟功能在内存中分配到的用于访问硬件的映射空间的地址;3、各个功能MSIX 和MSI 中断分配信息;4、物理功能和虚拟功能的关联信息;5、各个功能分配到的窗口信息;6、主机数量和Pcie速率信息;7、VIP 工作模式的配置,并根据这些信息计算出各个功能的基本属性。用户构造业务报文的时候,可以根据需要查询被计算出来的各个功能的基本信息。配置组件内部还包含了VIP配置信息,VIP 访问组件需要根据这些配置去配置VIP 的功能。需要说明的是,每次仿真开始前,配置组件都会根据输入重新计算各个功能的基本信息、全局性的配置信息、VIP 配置信息等。
配置组件还根据输入的基础配置信息转化成配置Pcie的配置报文,以配置Pcie的功能,这里的配置报文是对硬件进行配置。比如:使能多少个虚拟功能都是这种配置报文完成的,实际上是配置硬件功能。配置组件根据基础配置信息生成符合Pcie协议的配置报文,然后经由驱动组件发送给VIP 访问组件,最终到达硬件内部完成配置。
在本实施例中,请参看图4,驱动组件负责多主机场景下,实现对多个功能设备的软件并行访问逻辑,是验证平台的驱动引擎。驱动组件会主动访问硬件的物理功能和虚拟功能,单次仿真用户设定的逻辑会产生多个业务流报文,产生过程需要多次查询配置组件,业务流报文被归纳到不同主机的发送队列中,驱动组件会将业务流报文转化为符合Pcie协议的MEM报文并补充协议要求的相关细节,然后由驱动组件自动发送到VIP 组件,从VIP 组件进入硬件实现对物理功能和虚拟功能的访问,然后由硬件作出反应。用户逻辑将约束业务流报文的产生过程,Pcie平台根据Pcie 协议处理配置报文的生成过程和业务流报文转化为MEM报文的过程,根据输入配置计算符合Pcie协议的配置信息,并通过调度管理多主机并行访问多个功能以及多个设备功能并行访问多个主机的竞争行为。
其中,驱动组件读访问必须获得读响应(即读到的数据),常规的软件写法,会造成读必须等到响应回来之后才能发起下一次读请求,无法模拟软件密集连续读的场景。因此,所述驱动组件还设置了软件读访问硬件避免阻塞的方法,包括以下两种方法:
方法一、发起读访问和接收读响应的任务分为两个端口执行,通过Pcie标准报文中的tag关联读请求和响应,以确定获得的数据与发出的读请求的对应性。
方法二、模拟真实软件多线程执行的逻辑,每一次软件读请求都是一个独立的线程,发出读请求后该线程置起不再阻塞其他任务,通过VIP 自带的获得响应的函数阻塞该线程的结束,当该线程获得对应的响应后,结束任务并返回响应数据。
为了模拟多主机多功能驱动的场景,需要构筑多组软件下发队列,维护本主机中软件将要下发的报文,产生报文的过程和驱动过程完全分离。
为了模拟多主机多功能并行访问硬件的场景,产生报文和驱动报文的过程都需要表现为多线程并行运行的形式,最终产生的报文将集中到主机软件下发队列等待发送(软件读写实际上对应的是同一个接口,因此将维护在同一个队列)。软件读任务端口封装了两种获得响应的方法,一种是通过端口持续获得,另一种是通过多线程的方式发起软件读,每个线程自带读响应返回结果。两种方式都可以避免直到上一个读请求完成后才能发起下一个读请求的拥塞问题。
内存初始化进程负责对主机内存的控制,功能包括①初始化过程中自动为每一个物理功能和虚拟功能分配用于映射BAR的内存空间;②初始化过程在指定内存中放入指定格式的描述符和报文内容;③后门访问内存。
在本实施例中,请参看图6,VIP 访问组件封装多组Pcie VIP,主体功能包括启动链路训练、配置报文驱动和采集任务端口、业务流报文驱动和采集任务端口,链路状态查询任务端口、插入错误任务端口等,VIP实际上是模拟主机的内存和访问Pcie的功能。比如:4个VIP 代表4台主机,每台主机都需要配置硬件内部属于自己的Pcie控制器的功能,相当于仿真环境模拟了4 台主机,每台主机在芯片硬件中都对应了一个Pcie控制器,主机需要通过配置报文去配置自己对应的这一部分硬件资源,这是通过配置报文完成的。VIP 的配置的初始化在启动链路训练和下发配置报文之前,VIP 访问组件查询配置组件中VIP配置,修改VIP对应参数。VIP访问组件需要处理配置类事务层报文的BDF字段,以实现对各个设备功能的配置。在初始化过程中,内存控制进程自动为每一个设备功能在内存中分配bar空间,该过程也可以由用户指定分配结果,驱动组件会根据每个设备功能的base bar信息发起对特定设备功能的访问。
为了减少用户态逻辑对于Pcie 协议底层的依赖,VIP 控制组件将事务层报文的驱动封装成函数形式,大多数事务层报文字段(如fisrt_dw_be,last_dw_be 等字段)由组件自动计算完成,并自动完成字节倒序等控制,实现对齐1字节驱动逻辑,在驱动组件中只需要控制最关键的payload,length 等字段即可驱动业务流报文。
为了支持单根虚拟化,每个主机配置了独立的配置文件,这些配置文件属于配置文件合集的一部分,初始化过程中内存初始化进程会为每一个设备功能自动分配内存空间,并将设备功能的关键信息储存在最小的设备功能配置文件,在驱动过程中查询这些配置文件,即可查询到多个主机的每一个设备功能信息,实现对任意主机任意设备功能的访问。
在本实施例中,请参看图5,采集组件负责各场景下主机采集到的多个设备功能上送报文的处理,包括但不限于硬件写(内存写和中断)、硬件读、软件访问硬件的读响应等。采集组件会采集各个VIP访问组件输出的处理结果,包括软件读访问硬件返回的读响应,也会采集物理功能和虚拟功能访问内存的报文。
上述实现过程中,通过设置驱动组件、采集组件、配置组件和多个VIP访问组件,所述配置组件用于在进行Pcie验证之前,获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;所述驱动组件用于在进行Pcie验证之前,在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;还用于在进行Pcie验证时,获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;所述各个VIP访问组件用于在进行Pcie验证之前,分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;还用于在进行Pcie验证时,分别基于所述业务流报文,与对应的设备功能进行数据交互;所述采集组件用于采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。仿真人员在进行Pcie验证之前将驱动组件、采集组件、配置组件和多个VIP访问组件进行实例化,即可搭建支持多主机多功能和单根虚拟化、将Pcie视作数据通道的验证平台。通过模拟多个主机,每个主机运行多个虚拟机系统,每个系统独立向硬件发起访问并处理来自硬件的访问的场景,满足多主机多功能、单根虚拟化功能的测试需求,解决了多个主机软件并行访问多个功能设备场景和硬件多个功能设备并行访问多个主机的仿真问题,满足多种验证场景。
在一些实施例中,请参看图5,所述采集组件包括数据流对比单元、出口采集单元和入口采集单元;所述入口采集单元用于在进行Pcie验证时,从所述驱动组件采集所述业务流报文;所述出口采集单元用于在进行Pcie验证时,采集Pcie硬件的输出数据;所述数据流对比单元用于将所述业务流报文与所述Pcie硬件的输出数据进行对比,得到对比结果。
在本实施例中,为了模拟多主机多功能的场景,需要构筑多组硬件上送队列,维护本主机中硬件上送的报文,接收报文的过程和处理过程完全分离。每一组硬件上送队列包括:硬件写报文队列、硬件读返回报文队列、软件读响应队列、中断队列。在用户态逻辑中,这些队列中的报文根据内容进一步被细化成描述符队列、报文队列等。为了模拟硬件访问多个主机的场景,接收报文和处理进程都需要表现成多线程,从不同的VIP 控制组件采集到的事务层报文会被加上主机号的标记,据此判断当前请求在访问哪一个主机。保序控制进程用来监测软件下发的读请求与收到的读响应是否保序。在采集组件中还可以看到硬件读和硬件写报文的requester_id,据此判断当前请求来自于哪一个设备功能。中断管理进程检测当前请求是否属于中断请求,支持msi和msix混合场景,并给每一个中断分配中断号,将中断信息提供给用户态逻辑。
需要说明的是,数据流对比单元被集成到采集组件,可通过配置选择性使能检查功能,集成测试时,如果希望降低环境复杂度可关闭其功能。
入口采集单元用于对软件下发报文入口采集,负责采集驱动组件产生的软件下发报文并做格式转换,出口采集单元用于对软件下发报文出口采集,负责采集硬件中Pcie 输出的数据并做格式转换,两者采集到的数据送往数据流对比单元,可检查仿真过程中Pcie通道传递数据的完整性。需要说明的是,入口采集单元和出口采集单元只采集总线信号,不会产生驱动。上述Pcie硬件的输出数据包括进入芯片(inbound)和远离芯片(outbound)的数据。
为了检查Pcie 读写保序特性,数据流对比单元的逻辑如下:入口采集单元送来的报文送往期望队列的末尾,出口采集单元送来的报文送往实际队列的末尾,因为驱动发生在硬件产生输出之前,因此期望队列的深度总是超过实际队列。当实际队列中存在报文时,处理实际队列的第一个报文(队列头)。因为软件密集驱动请求时,相邻的写请求报文可能超过读请求报文,因此存在两种情况:
①、当实际队列的第一个报文为写请求时,搜索期望队列的第一个写请求(不一定在队列头,可能在队列任何位置),与实际队列的队列头报文比对,比对的期望报文和实际报文都从队列删除;
②、当实际队列的第一个报文为读请求时,将期望队列的第一个请求(因为读请求不允许超越写请求,因此期望队列的第一个请求必定是读请求),与实际队列的队列头报文比对,比对的期望报文和实际报文都从队列删除。
通过数据流对比单元实现了一种Pcie 数据流检查机制,可以检查Pcie IP(功能集成代码)数据传递的完整性。还可以覆盖检查Pcie 协议读写请求保序要求,在Pcie严格保序的条件下,相邻的写请求可以超越读请求,但是读请求不能允许超越写请求。
在一些实施例中,所述配置组件还用于基于所述基础配置信息生成全局配置文件和局部配置文件,并采用分级管理和内容映射的方式对所述全局配置文件和局部配置文件中的配置信息进行管理。
在本实施例中,请参看图7,配置组件分为全局性配置和局部配置。全局性配置和局部配置的内容是存在交集且关联配置存在相互影响,在初始化阶段通过映射的方式(映射的实现方法是通过句柄的传递,同一对象被赋予多个句柄)指定了局部配置和局部配置、局部配置和全局配置中内容的对应关系,这种结构降低了多主机多功能和单根虚拟化验证平台中配置的下发和查询的复杂性。首先对于配置信息在层级上进行分级分组,最小配置单位中的基本信息可以根据层级进行索引,其次通过映射将全局性的配置和属于单个主机和单个设备功能的配置关联到一起(映射的优势在于被映射的信息内容始终同步,且能根据软件需求灵活生成软件视图)。这种配置结构能完整记录下仿真期间硬件内部配置,同时能查询到指定主机指定设备功能的配置信息与全局性配置的联系,降低配置下发和配置查询的复杂性。
上述分级管理是指将单个功能,包括物理功能和虚拟功能,看做一个整体并统一编号,在单个功能中补充其基本属性作为配置的最小配置结构。然后依次将最小配置结构按照主机归属进行分级分组。最小配置结构中一些基本属性对于全局是需要独立视图进行审查的,因此在全局配置下创建总表,将这些基本属性按照一定方式映射到总表中,在全局视图中可以对于这些关键信息进行灵活的配置和查询。各个总表中内容和最小配置结构的内容始终是同步的,这体现了映射的优势。局部配置中层级最高的一层为主机配置,记录每个主机所有的配置内容。在全局配置中存在一类配置文件记录每一个物理功能和虚拟功能的配置信息,降低了驱动组件中想要实现对特定设备功能驱动的难度。
上述内容映射的实现方法可以是传递句柄,不同的句柄指向的对象是相同的,因此内容始终同步,其本质是描述对应关系,同一配置内容在不同视图中拥有不同的寻址方法,从任何一个视图修改指定的配置文件,对于其他视图都是同步的。复杂系统中经常需要转换视图对硬件进行配置、查询,查找指定的配置文件的难易程度在不同视图中的寻址方法相关,视图的建立应该按照实际的软件需求。在验证平台中选择合适的视图对指定配置进行查询和修改,降低了支持多主机多功能和单根虚拟化的验证平台的配置管理复杂性。视图本质上是对配置结构的特定数据选择性取用并组成表项,同一条表项在不同视图中具有不同寻址方法,降低了软件管理多级配置结构的复杂性。映射还需要关联关键值,将物理功能、虚拟功能进行统一编号,将统一功能编号作为关键值。
初始化配置过程:将所有的物理功能和虚拟功能进行统一编号,为每个功能创建一份配置文件,配置中包含每个功能的关键信息,使用数组的下标对应每一个功能编号。按照主机归属,创建主机配置,将对应的功能的所有信息映射到各自的主机配置下。创建全局配置,将全部功能的信息映射到全局的设备功能总表中。为了软件视图统一,将msix、msi、pf_vf关联配置、系统性配置等设备功能配置中的信息汇总到全局配置下。全局配置通过功能编号进行关联。
上述局部配置一方面和全局配置映射起来,方便软件查询,另一方面一些局部配置又彼此映射,比如每一个设备功能的配置文件中的vf_enable (指示当前设备功能是否被使能)和Pcie 配置空间的配置文件关联起来,方便生成符合Pcie 协议的配置空间报文。
为了支持每一个设备功能混合使能msix和msi功能,为每一个设备功能准备了一组msix配置和msi配置,用来记录他们分配的中断向量,所有设备功能的msix 配置都会映射到全局的msix 配置内容上。
在配置过程,先通过配置msix_base_table 将中断向量分配给每一个设备功能,并分配中断号。然后给每一个设备功能的msi和msix内容做初始化,并把他们映射到总的msix配置上去。然后结合每一个设备功能配置信息的base_bar 等完成配置过程。
在查询过程中,直接查询总的msix配置即可获得特定设备功能的中断配置信息,捕获中断信息,并通过中断号的形式向用户逻辑汇报。
需要说明的是,每一个设备功能的配置信息包括但不限于host_id,vf_id、bdf_num、func_en,is_vf、msix_enable、bar_base[6]、bar_size[6]、msi_entry_num、msix_entry_num、msix_table等信息,所有的设备功能配置都映射到总表中,方便软件进行查询。
根据Pcie 配置空间结构特点,配置空间配置结构由类嵌套组成,最底层的四字节配置内容由结构体组成,可以指定物理功能或者虚拟功能的指定域段进行配置和读取。
上述实现过程中,全局性配置易于初始化和查询,局部性配置易于结合关联配置下发配置报文。通过映射关联全局配置与局部配置起来能结合这两种配置的优势,一方面可以实现多个主机,多个设备功能的独立配置,另一方面能通过统一的视图方便软件查阅,适合多主机多功能和单根虚拟化验证平台配置信息的储存。
在一些实施例中,所述驱动组件还用于对所述多个VIP访问组件的内存进行控制。
在本实施例中,VIP访问组件封装了模拟真实系统的内存控制进程,自动为每一个物理功能和虚拟功能分配用于映射BAR的内存空间,自动管理PIO 和DMA 内存分区,为软件提供后门访问内存方法,便于用户态的内存管理。
上述实现过程中,VIP访问组件提供了主机内存的访问方法,包括硬件使用的前门访问方法和验证环境使用的后门方法,通过对后门方法进行封装,实现一字节写入和读取功能。通过封装内存自动分区管理机制,提供后门访问内存方法,降低用户态进行内存管理的难度,提升平台工作效率。
在一些实施例中,各个VIP访问组件分别设置有Pcie插入错误访问端口,所述Pcie插入错误访问端口用于在进行Pcie验证时,实现异常场景测试。
在本实施例中,为Pcie协议本身的验证深度预留了拓展性,提供了Pcie 插入错误访问端口,易于实现异常场景测试。
在一些实施例中,所述基础配置信息还包括硬件基础配置信息,所述Pcie验证平台还包括寄存器模型管理组件;所述寄存器模型管理组件用于在进行Pcie验证之前,从所述配置组件读取所述硬件基础配置信息,并基于所述硬件基础配置信息,通过DBI总线对所述Pcie硬件的基本属性进行配置。
在本实施例中,在链路训练开始前,硬件的有一些基本属性的配置只能通过DBI总线完成,比如:主机数量增加时每个主机分到的Pcie 物理lane数量将减少,需要配置每个主机对应的lane number。 DBI 总线的配置相当于硬件启动前从只读存储器加载基本配置的过程。
请参看图8,本实施例还提供一种Pcie验证方法,用于上述的Pcie验证平台,所述Pcie验证方法包括以下步骤:
在进行Pcie验证之前,执行以下步骤:
步骤210:由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
步骤220:由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
步骤230:由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
在本实施例中,上述配置报文是对Pcie硬件进行配置,配置的通路是1、配置组件生成配置报文2、驱动组件发送配置报文到VIP访问组件3、VIP 访问组件把配置报文进行信号转换经由连线模块送到Pcie硬件内部。
上述配置的过程会给Pcie硬件配置一些基础的信息进去,基于Pcie协议配置过程的复杂性,配置组件对底层进行了一系列封装,通过输入的最小限度的配置信息,补充符合协议的配置报文的细节,自动完成对硬件的配置过程。
在进行Pcie验证时,执行以下步骤:
步骤240:由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
步骤250:由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
步骤260:由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
在本实施例中,驱动组件负责多主机场景下,实现对多个功能设备的软件并行访问逻辑,是验证平台的驱动引擎。驱动组件会主动访问硬件的物理功能和虚拟功能,单次仿真用户设定的逻辑会产生多个业务流报文,产生过程需要多次查询配置组件。
为了支持多主机,每一组VIP访问组件代表一个主机,组件中包含内存模型,自动完成对于硬件读写访问的响应。为了支持多设备功能单根虚拟化,VIP访问组件需要处理配置类事务层报文的BDF字段,以实现对各个设备功能的配置。在初始化过程依赖于内存控制进程为每一个设备功能在内存中分配bar空间,驱动组件会根据每个设备功能的base bar信息发起对特定设备功能的访问。VIP访问组件需要知晓配置文件合集的信息,从这些信息中①获得VIP配置去修改VIP 配置参数;②获得配置空间信息通过配置类事务层报文完成对Pcie 的配置(这一部分是Pcie 协议要求的);③获得硬件配置信息通过存储器访问类事务层报文完成对Pcie 以外的硬件的配置过程,比如说msix table的配置过程。为了降低集成验证平台对于Pcie协议底层的依赖,配置文件为不影响Pcie通路验证的参数提供了默认配置,并且配置过程自动化完成,降低了集成难度。VIP访问组件还提供了启动链路训练和查阅链路训练状态的方法。VIP访问组件提供了寄存器模型接口,以实现在集成验证平台中通过Pcie接口配置硬件内部寄存器的功能。VIP访问组件提供了一系列驱动方法和采集方法,驱动方法实现了配置报文读写、业务流报文读写、插入错误、链路状态查询的功能,采集方法实现了采集软件读响应、硬件写请求、硬件读请求和硬件读响应的功能。为了降低集成验证平台对于Pcie协议底层的依赖,事务层报文的细节被组件自动化计算,驱动组件只需要关注少量核心参数。
需要说明的是,配置组件是一系列配置的集合,所有的配置信息维护在同一集合下,对整个仿真环境是可见的,配置组件中封装了多个子集,部分用于生成配置报文,部分用于生成业务流报文,内容上相互关联,一些配置信息被映射到多个子集中,因为映射是通过传递句柄完成的,因此被指向的内容始终同步。
采集组件负责各场景下主机采集到的多个设备功能上送报文的处理,包括但不限于软件读响应、硬件写请求、硬件读请求与读响应等。采集组件会采集各个VIP访问组件输出的处理结果,软件读访问硬件返回的读响应,也会采集物理功能和虚拟功能访问内存的报文。
上述实现过程中,通过在进行Pcie验证之前,由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;在进行Pcie验证时,由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。仿真人员通过在进行Pcie验证之前将驱动组件、采集组件、配置组件和多个VIP访问组件进行例化即可获得支持多主机多功能和单根虚拟化、将Pcie视作数据通道的验证平台,模拟多个主机,每个主机运行多个虚拟机系统,每个系统独立向硬件发起访问并处理来自硬件的访问的场景,以实现支持多主机多功能、单根虚拟化功能,解决了模拟多个主机软件并行访问多个功能设备场景和硬件多个功能设备访问多个主机场景的问题,满足多种验证场景。
基于同样的发明构思,本实施例提供一种Pcie验证装置,用于上述的Pcie验证平台,请参看图9,所述Pcie验证装置包括配置生成模块410、第一配置模块420、第一下发模块430、第二下发模块440、交互模块450和采集模块460,其中:
配置生成模块410,用于使得在进行Pcie验证之前,由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
第一配置模块420,用于使得在进行Pcie验证之前,由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
第一下发模块430,用于使得在进行Pcie验证之前,由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
第二下发模块440,用于使得在进行Pcie验证时,由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
交互模块450,用于使得在进行Pcie验证时,由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
采集模块460,用于使得由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
所述Pcie验证装置包括处理器和存储器,上述配置生成模块410、第一配置模块420、第一下发模块430、第二下发模块440、交互模块450和采集模块460等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来模拟多个主机软件并行访问多个功能设备场景和硬件多个功能设备访问多个主机场景。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种机器可读存储介质,其上存储有程序,该程序被处理器执行时实现所述Pcie验证方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述Pcie验证方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、显示屏A04、输入装置A05和存储器(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A06。该非易失性存储介质A06存储有操作系统B01和计算机程序B02。该内存储器A03为非易失性存储介质A06中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序被处理器A01执行时以实现一种Pcie验证方法。该计算机设备的显示屏A04可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置A05可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的Pcie验证装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该Pcie验证装置的各个程序模块,比如,图9所示的配置生成模块410、第一配置模块420、第一下发模块430、第二下发模块440、交互模块450和采集模块460。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的Pcie验证方法中的步骤。
图10所示的计算机设备可以通过如图9所示的Pcie验证装置中的配置生成模块410执行步骤210。计算机设备可通过第一配置模块420执行步骤220,计算机设备可通过第一下发模块430执行步骤230,计算机设备可通过第二下发模块440执行步骤240,计算机设备可通过交互模块450执行步骤250,计算机设备可通过采集模块460执行步骤260。
本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现上述的Pcie验证方法。处理器执行指令时实现以下步骤:
在进行Pcie验证之前,执行以下步骤:
由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
在进行Pcie验证时,执行以下步骤:
由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种Pcie验证平台,其特征在于,包括:驱动组件、采集组件、配置组件和多个VIP访问组件;
所述配置组件用于在进行Pcie验证之前,获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
所述驱动组件用于在进行Pcie验证之前,在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;还用于在进行Pcie验证时,获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
所述各个VIP访问组件用于在进行Pcie验证之前,分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;还用于在进行Pcie验证时,分别基于所述业务流报文,与对应的设备功能进行数据交互;
所述采集组件用于采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
2.根据权利要求1所述的Pcie验证平台,其特征在于,所述采集组件包括数据流对比单元、出口采集单元和入口采集单元;
所述入口采集单元用于在进行Pcie验证时,从所述驱动组件采集所述业务流报文;
所述出口采集单元用于在进行Pcie验证时,采集Pcie硬件的输出数据;
所述数据流对比单元用于将所述业务流报文与所述Pcie硬件的输出数据进行对比,得到对比结果。
3.根据权利要求1所述的Pcie验证平台,其特征在于,所述配置组件还用于基于所述基础配置信息生成全局配置文件和局部配置文件,并采用分级管理和内容映射的方式对所述全局配置文件和局部配置文件中的配置信息进行管理。
4.根据权利要求1所述的Pcie验证平台,其特征在于,所述驱动组件还用于对所述多个VIP访问组件的内存进行控制。
5.根据权利要求1所述的Pcie验证平台,其特征在于,各个VIP访问组件分别设置有Pcie插入错误访问端口,所述Pcie插入错误访问端口用于在进行Pcie验证时,实现异常场景测试。
6.根据权利要求1所述的Pcie验证平台,其特征在于,所述基础配置信息还包括硬件基础配置信息,所述Pcie验证平台还包括寄存器模型管理组件;
所述寄存器模型管理组件用于在进行Pcie验证之前,从所述配置组件读取所述硬件基础配置信息,并基于所述硬件基础配置信息,通过DBI总线对所述Pcie硬件的基本属性进行配置。
7.一种Pcie验证方法,其特征在于,用于权利要求1-6中任一项所述的Pcie验证平台,所述Pcie验证方法包括:
在进行Pcie验证之前,执行以下步骤:
由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
在进行Pcie验证时,执行以下步骤:
由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
8.一种Pcie验证装置,其特征在于,用于权利要求1-6中任一项所述的Pcie验证平台,所述Pcie验证装置包括:
配置生成模块,用于使得在进行Pcie验证之前,由配置组件获取基础配置信息,并基于所述基础配置信息生成配置报文;其中,所述配置报文符合Pcie协议,所述基础配置信息包括VIP配置信息;
第一配置模块,用于使得在进行Pcie验证之前,由各个VIP访问组件分别从所述配置组件读取VIP配置信息,并基于所述VIP配置信息配置VIP功能,在配置VIP功能完成后,启动链路训练;
第一下发模块,用于使得在进行Pcie验证之前,由所述驱动组件在链路训练完成后,从所述配置组件读取所述配置报文,并将所述配置报文通过各个VIP访问组件下发至Pcie硬件,以使所述Pcie硬件配置设备功能;
第二下发模块,用于使得在进行Pcie验证时,由所述驱动组件获取业务流报文,并将所述业务流报文下发至所述各个VIP访问组件;
交互模块,用于使得在进行Pcie验证时,由所述各个VIP访问组件分别基于所述业务流报文,与对应的设备功能进行数据交互;
采集模块,用于使得由采集组件采集所述各个VIP访问组件输出的处理结果和/或Pcie硬件的输出数据。
9.一种电子设备,其特征在于,该电子设备包括:
至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现权利要求7所述的Pcie验证方法。
10.一种机器可读存储介质,该机器可读存储介质上存储有指令,其特征在于,该指令在被处理器执行时使得所述处理器被配置成执行根据权利要求7所述的Pcie验证方法。
CN202311670243.1A 2023-12-07 2023-12-07 Pcie验证平台、方法、装置、存储介质及电子设备 Active CN117369906B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311670243.1A CN117369906B (zh) 2023-12-07 2023-12-07 Pcie验证平台、方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311670243.1A CN117369906B (zh) 2023-12-07 2023-12-07 Pcie验证平台、方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN117369906A CN117369906A (zh) 2024-01-09
CN117369906B true CN117369906B (zh) 2024-02-09

Family

ID=89396925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311670243.1A Active CN117369906B (zh) 2023-12-07 2023-12-07 Pcie验证平台、方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN117369906B (zh)

Citations (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824729A (zh) * 2016-03-11 2016-08-03 深圳航天科技创新研究院 一种具备通用性的虚拟验证平台及实现方法
CN106453615A (zh) * 2016-11-11 2017-02-22 郑州云海信息技术有限公司 一种网络通讯协议地址配置方法及系统
CN107203484A (zh) * 2017-06-27 2017-09-26 北京计算机技术及应用研究所 一种基于FPGA的PCIe与SRIO总线桥接系统
CN107391116A (zh) * 2017-06-28 2017-11-24 武汉斗鱼网络科技有限公司 一种组件帮助弹窗渲染方法及装置
CN108270818A (zh) * 2016-12-30 2018-07-10 中国移动通信集团公司 一种微服务架构系统及其访问方法
CN108365967A (zh) * 2018-01-02 2018-08-03 珠海兴业新材料科技有限公司 动态配置通讯参数的方法、系统、终端及计算机可读存储介质
CN108614901A (zh) * 2016-12-09 2018-10-02 青岛璐琪信息科技有限公司 一种pcie验证方法
CN108718244A (zh) * 2017-12-20 2018-10-30 北京时代民芯科技有限公司 一种用于多业务融合的参考系统及方法
CN108984221A (zh) * 2017-05-31 2018-12-11 北京京东尚科信息技术有限公司 一种多平台用户行为日志的采集方法和装置
CN109271177A (zh) * 2018-08-21 2019-01-25 郑州云海信息技术有限公司 一种自动加载PCIE Switch产品配置参数的方法和系统
CN109412884A (zh) * 2018-08-21 2019-03-01 平安科技(深圳)有限公司 组件的性能数据采集方法、装置及存储介质、服务器
CN109542484A (zh) * 2018-11-20 2019-03-29 济南浪潮高新科技投资发展有限公司 一种在线更新fpga配置芯片的方法及系统
CN109558282A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 一种pcie链路检测方法、系统及电子设备和存储介质
CN109669727A (zh) * 2018-12-12 2019-04-23 浪潮(北京)电子信息产业有限公司 一种服务器的配置方法、系统及相关组件
CN109889375A (zh) * 2019-01-23 2019-06-14 中国银行股份有限公司 业务报文校验方法、装置及计算机存储介质
CN109979500A (zh) * 2019-02-28 2019-07-05 深圳市大迈科技有限公司 一种基础硬件盒、扩展硬件盒及硬件盒组件、终端设备
CN110109979A (zh) * 2018-01-16 2019-08-09 北京京东尚科信息技术有限公司 一种配置表单选项方法和装置
CN110213078A (zh) * 2019-04-26 2019-09-06 深圳市珍爱云信息技术有限公司 业务平台搭建方法、装置、计算机设备和存储介质
CN110262790A (zh) * 2019-07-04 2019-09-20 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110445856A (zh) * 2019-07-31 2019-11-12 南京联迪信息系统股份有限公司 一种支持多协议接入的物联网通讯组件管控系统及方法
CN110765028A (zh) * 2019-12-27 2020-02-07 中科寒武纪科技股份有限公司 验证环境的可视化搭建方法、装置及存储介质
CN110851376A (zh) * 2019-10-21 2020-02-28 天津大学 一种基于FPGA的PCIe接口设计方法
CN111045964A (zh) * 2019-12-06 2020-04-21 思尔芯(上海)信息科技有限公司 一种基于pcie接口高速传输方法、存储介质及终端
CN111104348A (zh) * 2019-12-24 2020-05-05 江苏芯盛智能科技有限公司 PCIe初始化流程的仿真方法、装置及相关设备
CN111416736A (zh) * 2020-03-12 2020-07-14 北京星网锐捷网络技术有限公司 网络设备的配置管理方法、装置、计算设备及存储介质
CN111694685A (zh) * 2020-05-09 2020-09-22 苏州浪潮智能科技有限公司 一种pcie设备故障定位方法及装置
CN111859830A (zh) * 2020-06-30 2020-10-30 山东云海国创云计算装备产业创新中心有限公司 一种验证计划及报告的生成方法、装置、设备及存储介质
CN111949568A (zh) * 2020-07-31 2020-11-17 新华三半导体技术有限公司 一种报文处理方法、装置及网络芯片
CN112015744A (zh) * 2020-08-18 2020-12-01 广州市百果园信息技术有限公司 配置数据访问方法、装置、设备、配置中心及存储介质
CN112131147A (zh) * 2020-09-21 2020-12-25 成都海光微电子技术有限公司 一种控制器验证方法、装置、系统、电子设备及存储介质
CN112527705A (zh) * 2020-11-05 2021-03-19 山东云海国创云计算装备产业创新中心有限公司 一种PCIe DMA数据通路的验证方法、装置及设备
CN112631915A (zh) * 2020-12-24 2021-04-09 苏州浪潮智能科技有限公司 一种pcie设备软件仿真的方法、系统、设备及介质
CN113326670A (zh) * 2021-05-31 2021-08-31 上海阵量智能科技有限公司 原型验证系统、方法、处理单元、及设备
CN113868174A (zh) * 2021-10-11 2021-12-31 摩尔线程智能科技(北京)有限责任公司 验证平台搭建方法、装置及存储介质
CN114818599A (zh) * 2022-04-29 2022-07-29 深圳云豹智能有限公司 芯片仿真验证系统
CN115146568A (zh) * 2022-09-01 2022-10-04 南京芯驰半导体科技有限公司 一种基于uvm的芯片验证系统及验证方法
CN116028292A (zh) * 2023-02-28 2023-04-28 珠海星云智联科技有限公司 用于远程直接内存访问仿真验证的仿真验证系统及方法
CN116056126A (zh) * 2022-12-20 2023-05-02 哲库科技(上海)有限公司 仿真测试方法、装置、计算机设备和计算机可读存储介质
CN116401984A (zh) * 2022-12-09 2023-07-07 平头哥(上海)半导体技术有限公司 基于虚拟机的片上系统仿真方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697166B2 (en) * 2014-11-21 2017-07-04 International Business Machines Corporation Implementing health check for optical cable attached PCIE enclosure
US10606773B2 (en) * 2017-01-04 2020-03-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for low latency access of memory between computing devices
US11070527B2 (en) * 2018-12-07 2021-07-20 Intel Corporation Securing platform link with encryption
US20200167506A1 (en) * 2019-09-27 2020-05-28 Intel Corporation Security Architecture for Partial Reconfiguration of a Configurable Integrated Circuit Die
US11831674B2 (en) * 2020-10-16 2023-11-28 Cisco Technology, Inc. Detecting man-in-the-middle attacks in management component transport protocol network server systems
US11928191B2 (en) * 2021-01-11 2024-03-12 Dell Products L.P. System and method for authorization scope extension for security protocol and data model capable devices

Patent Citations (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824729A (zh) * 2016-03-11 2016-08-03 深圳航天科技创新研究院 一种具备通用性的虚拟验证平台及实现方法
CN106453615A (zh) * 2016-11-11 2017-02-22 郑州云海信息技术有限公司 一种网络通讯协议地址配置方法及系统
CN108614901A (zh) * 2016-12-09 2018-10-02 青岛璐琪信息科技有限公司 一种pcie验证方法
CN108270818A (zh) * 2016-12-30 2018-07-10 中国移动通信集团公司 一种微服务架构系统及其访问方法
CN108984221A (zh) * 2017-05-31 2018-12-11 北京京东尚科信息技术有限公司 一种多平台用户行为日志的采集方法和装置
CN107203484A (zh) * 2017-06-27 2017-09-26 北京计算机技术及应用研究所 一种基于FPGA的PCIe与SRIO总线桥接系统
CN107391116A (zh) * 2017-06-28 2017-11-24 武汉斗鱼网络科技有限公司 一种组件帮助弹窗渲染方法及装置
CN108718244A (zh) * 2017-12-20 2018-10-30 北京时代民芯科技有限公司 一种用于多业务融合的参考系统及方法
CN108365967A (zh) * 2018-01-02 2018-08-03 珠海兴业新材料科技有限公司 动态配置通讯参数的方法、系统、终端及计算机可读存储介质
CN110109979A (zh) * 2018-01-16 2019-08-09 北京京东尚科信息技术有限公司 一种配置表单选项方法和装置
CN109271177A (zh) * 2018-08-21 2019-01-25 郑州云海信息技术有限公司 一种自动加载PCIE Switch产品配置参数的方法和系统
CN109412884A (zh) * 2018-08-21 2019-03-01 平安科技(深圳)有限公司 组件的性能数据采集方法、装置及存储介质、服务器
CN109542484A (zh) * 2018-11-20 2019-03-29 济南浪潮高新科技投资发展有限公司 一种在线更新fpga配置芯片的方法及系统
CN109558282A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 一种pcie链路检测方法、系统及电子设备和存储介质
CN109669727A (zh) * 2018-12-12 2019-04-23 浪潮(北京)电子信息产业有限公司 一种服务器的配置方法、系统及相关组件
CN109889375A (zh) * 2019-01-23 2019-06-14 中国银行股份有限公司 业务报文校验方法、装置及计算机存储介质
CN109979500A (zh) * 2019-02-28 2019-07-05 深圳市大迈科技有限公司 一种基础硬件盒、扩展硬件盒及硬件盒组件、终端设备
CN110213078A (zh) * 2019-04-26 2019-09-06 深圳市珍爱云信息技术有限公司 业务平台搭建方法、装置、计算机设备和存储介质
CN110262790A (zh) * 2019-07-04 2019-09-20 平安科技(深圳)有限公司 组件生成方法、装置、存储介质及终端设备
CN110445856A (zh) * 2019-07-31 2019-11-12 南京联迪信息系统股份有限公司 一种支持多协议接入的物联网通讯组件管控系统及方法
CN110851376A (zh) * 2019-10-21 2020-02-28 天津大学 一种基于FPGA的PCIe接口设计方法
CN111045964A (zh) * 2019-12-06 2020-04-21 思尔芯(上海)信息科技有限公司 一种基于pcie接口高速传输方法、存储介质及终端
CN111104348A (zh) * 2019-12-24 2020-05-05 江苏芯盛智能科技有限公司 PCIe初始化流程的仿真方法、装置及相关设备
CN110765028A (zh) * 2019-12-27 2020-02-07 中科寒武纪科技股份有限公司 验证环境的可视化搭建方法、装置及存储介质
CN111416736A (zh) * 2020-03-12 2020-07-14 北京星网锐捷网络技术有限公司 网络设备的配置管理方法、装置、计算设备及存储介质
CN111694685A (zh) * 2020-05-09 2020-09-22 苏州浪潮智能科技有限公司 一种pcie设备故障定位方法及装置
CN111859830A (zh) * 2020-06-30 2020-10-30 山东云海国创云计算装备产业创新中心有限公司 一种验证计划及报告的生成方法、装置、设备及存储介质
CN111949568A (zh) * 2020-07-31 2020-11-17 新华三半导体技术有限公司 一种报文处理方法、装置及网络芯片
CN112015744A (zh) * 2020-08-18 2020-12-01 广州市百果园信息技术有限公司 配置数据访问方法、装置、设备、配置中心及存储介质
CN112131147A (zh) * 2020-09-21 2020-12-25 成都海光微电子技术有限公司 一种控制器验证方法、装置、系统、电子设备及存储介质
CN112527705A (zh) * 2020-11-05 2021-03-19 山东云海国创云计算装备产业创新中心有限公司 一种PCIe DMA数据通路的验证方法、装置及设备
CN112631915A (zh) * 2020-12-24 2021-04-09 苏州浪潮智能科技有限公司 一种pcie设备软件仿真的方法、系统、设备及介质
CN113326670A (zh) * 2021-05-31 2021-08-31 上海阵量智能科技有限公司 原型验证系统、方法、处理单元、及设备
CN113868174A (zh) * 2021-10-11 2021-12-31 摩尔线程智能科技(北京)有限责任公司 验证平台搭建方法、装置及存储介质
CN114818599A (zh) * 2022-04-29 2022-07-29 深圳云豹智能有限公司 芯片仿真验证系统
CN115146568A (zh) * 2022-09-01 2022-10-04 南京芯驰半导体科技有限公司 一种基于uvm的芯片验证系统及验证方法
CN116401984A (zh) * 2022-12-09 2023-07-07 平头哥(上海)半导体技术有限公司 基于虚拟机的片上系统仿真方法及系统
CN116056126A (zh) * 2022-12-20 2023-05-02 哲库科技(上海)有限公司 仿真测试方法、装置、计算机设备和计算机可读存储介质
CN116028292A (zh) * 2023-02-28 2023-04-28 珠海星云智联科技有限公司 用于远程直接内存访问仿真验证的仿真验证系统及方法

Also Published As

Publication number Publication date
CN117369906A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
CN102650976B (zh) 一种支持单根io虚拟化用户级接口控制装置及其方法
CN112416840B (zh) 一种计算资源的远程映射方法、装置、设备及存储介质
WO2017066944A1 (zh) 一种存储设备访问方法、装置和系统
CN109791536A (zh) 可配置逻辑平台
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
CN105408875B (zh) 在存储器接口上的分布式过程执行和文件系统
WO2019233322A1 (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
US10782995B2 (en) Flexible physical function and virtual function mapping
CN108549610A (zh) 一种NVMe扩展的实现方法及固态硬盘
CN110532208B (zh) 一种数据处理方法、接口转换结构及数据处理设备
CN111931442B (zh) Fpga内嵌flash控制器及电子装置
CN112650558B (zh) 数据处理方法、装置、可读介质和电子设备
CN116069711B (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
CN108829525A (zh) 可信平台遥测机制
CN112612523A (zh) 一种嵌入式设备驱动系统及方法
CN114281252A (zh) 非易失性高速传输总线NVMe设备的虚拟化方法及设备
CN115658586A (zh) 资源管理芯片、方法、电子设备及可读存储介质
US11704263B2 (en) Configurable multi-function PCIe endpoint controller in an SoC
CN117032812B (zh) 服务器的管理方法、设备、装置、存储介质和电子设备
WO2021223744A1 (zh) 实现热迁移的方法、芯片、板卡和存储介质
CN117369906B (zh) Pcie验证平台、方法、装置、存储介质及电子设备
CN115202808A (zh) 一种用于虚拟化环境中片上系统的dma方法及系统
CN113485643B (zh) 用于数据存取的方法及数据写入的控制器
WO2022062510A1 (zh) 实现热迁移的设备及方法
US11216211B1 (en) Emulated block storage for devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant