CN118151626A - 一种测试系统 - Google Patents

一种测试系统 Download PDF

Info

Publication number
CN118151626A
CN118151626A CN202410146029.4A CN202410146029A CN118151626A CN 118151626 A CN118151626 A CN 118151626A CN 202410146029 A CN202410146029 A CN 202410146029A CN 118151626 A CN118151626 A CN 118151626A
Authority
CN
China
Prior art keywords
target
data
protocol
operation instruction
shared memory
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.)
Pending
Application number
CN202410146029.4A
Other languages
English (en)
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.)
Kunyi Electronic Technology Shanghai Co Ltd
Original Assignee
Kunyi Electronic Technology Shanghai 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 Kunyi Electronic Technology Shanghai Co Ltd filed Critical Kunyi Electronic Technology Shanghai Co Ltd
Publication of CN118151626A publication Critical patent/CN118151626A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24065Real time diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明实施例提供了一种测试系统,涉及测试技术领域。测试系统包括;至少一个I/O单元、多个装置以及配置有共享存储器的共享内存单元;多个装置包括至少一个实时计算装置与至少一个I/O处理装置,I/O处理装置连接对应的I/O单元,I/O单元直接或间接连接到被测件;装置用于基于CXL协议,利用共享内存单元对共享存储器进行操作,且至少部分装置之间通过共享内存单元对共享存储器的操作共享目标数据,目标数据为对被测件进行测试时需要在装置间共享的数据。本发明利用CXL技术解决内存一致性问题,实现了系统内不同装置间数据的共享。

Description

一种测试系统
技术领域
本发明涉及测试技术领域,具体涉及一种测试系统。
背景技术
在汽车、新能源车等车辆中,整车的电子电气架构越来越复杂,从电子控制单元(Electronic Control Unit,ECU)的数量、数据带宽、CPU和GPU的处理能力,相比于之前都有一个数量级的变化。
硬件在环测试(Hardware-in-the-Loop,HIL)能够提前对车辆中的各种域控、ECU、CPU等控制器的功能提前进行验证,以缩短控制器的开发周期。
在现有的HIL测试系统中,会利用HIL测试系统中具有数据存储、处理能力的设备(例如实时机,或称工控机,Real-time Parameter Controls,RTPC)与I/O卡执行测试任务完成对被测件的测试;通常来说,工控机的数量只有一台,所有I/O卡都需要与该工控机通信,然而,随着测试需求的越来越多样、复杂,单一的工控机已不能满足测试需求;HIL测试系统集群化已经是一个明显的趋势,集群化的测试系统就需要解决设备间数据共享过程中的一致性问题。
发明内容
本发明的目的是提供了一种测试系统,测试系统中需要共享数据的多个装置之间基于CXL协议,并通过共享内存单元进行数据的共享,需要共享数据的多个装置之间共享数据时的数据读写过程满足CXL协议;利用CXL技术解决内存一致性问题,实现了系统内不同装置间内存的共享。
为实现上述目的,本发明提供了一种测试系统,包括:至少一个I/O单元、多个装置以及配置有共享存储器的共享内存单元;所述多个装置包括至少一个实时计算装置与至少一个I/O处理装置,所述I/O处理装置连接对应的所述I/O单元,所述I/O单元直接或间接连接到被测件;所述装置用于基于CXL协议,利用所述共享内存单元对所述共享存储器进行操作,且至少部分所述装置之间通过所述共享内存单元对所述共享存储器的操作共享目标数据,所述目标数据为对所述被测件进行测试时需要在所述装置间共享的数据。
附图说明
图1是根据本发明第一实施例中的测试系统的示意图;
图2是根据本发明第一实施例中的装置中的互联协议模块的示意图;
图3是根据本发明第一实施例中的测试系统的示意图,其中内存操作单元包括:多个第二传输控制模块与内存读写模块;
图4是根据本发明第一实施例中的第一装置中的CA模块通过内存操作单元的HA模块向共享存储器中写入数据的示意图;
图5是根据本发明第一实施例中的第二装置中的CA模块通过内存操作单元的HA模块到共享存储器中读取数据的示意图;
图6是根据本发明第一实施例中的内存操作单元的HA模块利用窥探机制与指定装置之间进行数据传输的示意图;
图7是根据本发明第一实施例中的测试系统的内存操作单元扩展连接三个计算资源池与三个I/O池的示意图;
图8是根据本发明第二实施例中的测试系统的示意图;
图9是根据本发明第二实施例中的测试系统中的多个CXL交换机之间连接的一种示例图;
图10是根据本发明的测试系统中装置与共享存储器的连接示意图,其中第四装置包括:指定模块与目标存储器;
图11是根据本发明的测试系统中第三装置向第四装置共享目标数据的示意图,其中第三装置与第四装置中均配置有目标存储器;
图12是根据本发明的测试系统中第三装置向第四装置共享目标数据的示意图,其中第三装置中未配置有目标存储器、第四装置中配置有目标存储器;
图13是本发明第一实施例中的测试系统为HIL系统的示意图;
图14是本发明第一实施例中的测试系统为HIL系统的示意图,控制模块的数量为多个,每个控制模块与对应的I/O单元采用级联的方式连接;
图15是本发明第一实施例中的测试系统为HIL系统的示意图,控制模块的数量为多个,每个控制模块分别与对应的各I/O单元直接连接。
具体实施方式
以下将结合附图对本发明的各实施例进行详细说明,以便更清楚理解本发明的目的、特点和优点。应理解的是,附图所示的实施例并不是对本发明范围的限制,而只是为了说明本发明技术方案的实质精神。
在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
在整个说明书中对“一个实施例”或“一实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一实施例”中的出现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
如该说明书和所附权利要求中所用的单数形式“一”和“所述”包括复数指代物,除非文中清楚地另外规定。应当指出的是术语“或”通常以其包括“或/和”的含义使用,除非文中清楚地另外规定。
在以下描述中,为了清楚展示本发明的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“上”、“下”等词语理解为方便用语,而不应当理解为限定性词语。
本发明的第一实施方式涉及一种测试系统,请参考图1,包括:至少一个I/O单元1、多个装置2以及共享内存单元3。多个装置2包括至少一个实时计算装置与至少一个I/O处理装置,I/O处理装置连接对应的I/O单元1,I/O单元1直接或间接连接到被测件。其中的装置可以是电路,也可以是包含该电路的电路板,还可以是包含该电路板及用于装载电路板的壳体(或支架)的构造。
本实施例中,多个装置2均连接到共享内存单元3由此通过共享内存单元3将多个装置2之间进行星型连接,即将实时计算装置与I/O处理装置之间进行星型连接。另外,多个装置2之间也可以建立相互的通信连接,例如通过以太网连接,又或者各装置2均连接到PCM设备,以实现所有的装置2间的相互通信连接,在多个装置2之间进行部分数据的传输,例如在各装置2之间传输测试所需的配置信息。
装置2用于基于CXL协议,利用共享内存单元3对共享存储器进行操作,且至少部分装置2之间通过共享内存单元3对共享存储器的操作共享目标数据,目标数据为对被测件进行测试时需要在装置2间共享的数据。其中的至少部分装置2可以是完成当前测试任务所需的全部装置2,也可以是预配置的完成当前测试任务所需的多个装置2中需要进行数据共享的部分装置2。目标数据包括测试过程中需在至少两个装置之间传递的数据,可以是需在实时计算装置与I/O处理装置之间传递的数据,也可以是需要至少两个实时计算装置之间传递的数据,还可以是需在两个I/O处理装置之间传递的数据。
在本实施例中,可以基于CXL协议,利用共享内存单元对共享存储器进行操作,而测试系统中需要共享数据的多个装置之间则通过共享内存单元对共享存储器的操作共享目标数据,由此需要共享数据的多个装置2之间共享数据的过程满足CXL协议;利用CXL技术解决内存一致性问题,实现了系统内不同装置间数据的共享。
本实施例中,装置2通过基于目标协议的连接线连接到共享内存单元3,目标协议非CXL协议。也就是说,装置2与共享内存单元3之间是基于非CXL协议进行交互的,目标协议为以下任意之一:Aurora协议、以太网、IB协议、自定义协议,所有装置2可以采用相同的目标协议,也是按照装置2的类型来选定相应的目标协议。
进一步的,可以配置各装置2通过网络连接线连接到共享内存单元3中的内存操作单元32。其中的网络连接线为网线或者光纤等能够进行数据传输的连接线,适合长距离的信号传输,弥补了CXL协议在远距离通信上的天然缺陷。
在一个例子中,共享内存单元3包括:通信连接的共享存储器31与内存操作单元32,各装置2之间或间接连接到内存操作单元32,图1中以各装置2直接连接到内存操作单元32为例。其中共享存储器31可以为单个DDR、DIMM存储器或者包括多个DDR、DIMM存储器的存储池,部分或全部DDR存储器可设于一个机柜中,DDR存储器也可以是跨机柜的,例如分布于不同机柜。
多个装置2中的任意目标装置用于:产生基于CXL协议的目标操作指令,基于目标协议处理目标操作指令,得到目标报文,并通过连接线将目标报文传递至共享内存单元3。对于目标装置来说,其在需要向共享存储器31中写入或读取数据时,产生相应的基于CXL协议的目标操作指令,然后将目标操作指令由CXL协议转换为目标协议,得到一个目标报文,目标装置将目标报文通过连接线发送至共享内存单元3的内存操作单元32。
共享内存单元3用于:接收到目标报文时,基于目标协议,自目标报文得到目标操作指令,并基于目标操作指令,对共享存储器进行操作。共享内存单元3的内存操作单元32在接收到目标装置所发送的目标报文后,基于目标装置与内存操作单元32之间连接线所使用的目标协议对目标报文进行解析,得到目标操作指令,随后执行目标操作指令,对共享存储器31进行操作。
在一个例子中,共享内存单元3还用于:产生目标操作指令的响应数据,基于目标协议处理响应数据,得到响应报文,并通过连接线将响应报文传递至相应的装置2。比如,目标操作指令用于从共享存储器31中读取数据,则内存操作单元32执行该目标操作指令后,从共享存储器31中读取的数据即为响应数据。
又比如,目标操作指令用于向共享存储器31中写入数据,则内存操作单元32执行该目标操作指令后,若数据写入成功,则可以生成表征数据写入成功的响应数据;若数据写入失败,则可以生成表征数据写入失败的响应数据;当然,内存操作单元32在执行该目标操作指令后也可以不发送表征数据写入成功或失败的响应数据,由发送目标操作指令的目标装置通过内存操作单元32从共享存储器31中与目标操作指令对应的地址读取数据,将读取的数据与其想写入的数据进行对比来确认数据写入成功还是失败。
目标装置还用于:接收到响应报文时,基于目标协议,自响应报文得到响应数据。
也就是说,在装置2内部完成CXL协议与目标协议之间的协议转换,共享内存单元3中的内存操作单元32也可以完成CXL协议与目标协议之间的协议转换,即装置2与内存操作单元32所交互的是基于目标协议的数据或指令,装置2与内存操作单元32内部均可以处理基于CXL协议的数据或指令。
下面结合图2至图5对本实施例中的测试系统进行详细说明:
测试系统中的多个装置包括至少一个实时计算装置与至少一个I/O处理装置,各装置中包括:COX互连协议模块。
互连协议模块用于将获取到的原始操作指令转换为基于CXL协议的目标操作指令,基于目标协议处理目标操作指令,得到目标报文,并通过连接线将目标报文传递至共享内存单元;原始操作指令用于在共享存储器读取或写入目标数据。
互连协议模块还用于接收到响应报文时,基于目标协议,自响应报文得到响应数据。
比如装置为实时计算装置,实时计算装置在测试过程中运行有对应的测试仿真模型,其在需要使用其他的实时计算装置或I/O处理装置所写入到共享存储器的数据A时,生成一个用于从共享存储器读取所需数据A的原始操作指令,互连协议模块则将该原始操作指令转换为基于CXL协议的目标操作指令,基于目标协议处理目标操作指令,得到目标报文,并通过连接线将目标报文传递至共享内存单元3的内存操作单元32,内存操作单元32在接收到目标装置所发送的目标报文后,基于目标装置与内存操作单元32之间连接线所使用的目标协议对目标报文进行解析,得到目标操作指令,随后执行目标操作指令,从共享存储器31中读取出数据A,以数据A作为响应数据,基于目标协议处理响应数据,得到响应报文,并通过连接线将响应报文传递至实时计算装置的互连协议模块,互连协议模块则基于目标协议对响应报文进行解析,自响应报文得到数据A。
又比如,装置为I/O处理装置,则I/O处理装置的互连协议模块从其所连接的I/O单元接收到数据B,数据B可以来源于I/O单元所连接的被测件或者是由I/O单元所产生的;I/O处理装置产生一个用于向共享存储器31中写入数据B的原始操作指令,I/O处理装置的互连协议模块则将该原始操作指令转换为基于CXL协议的目标操作指令,基于目标协议处理目标操作指令,得到目标报文,并通过连接线将目标报文传递至共享内存单元3的内存操作单元32,内存操作单元32在接收到目标装置所发送的目标报文后,基于目标装置与内存操作单元32之间连接线所使用的目标协议对目标报文进行解析,得到目标操作指令,随后执行目标操作指令,向共享存储器31中写入数据B。
由上可知,装置中的互联协议模块用于实现装置内目标协议与CXL协议之间的转换,以使各装置可与内存共享单元之间基于目标协议进行通信。其中,互连协议模块可支持的目标协议为以下任意之一:Aurora协议、Ethereum以太网协议、InfiniBand无限带宽协议或者是自定义协议。
进一步的,如图2所示,互连协议模块包括:内容管理模块201(Cache Agent,CA)与第一传输控制模块202(XTC模块1),第一传输控制模块202通过基于目标协议的连接线连接到共享内存单元3的内存操作单元32。
内容管理模块201用于将获取到的原始操作指令转换为基于CXL协议的目标操作指令。
第一传输控制模块202用于基于目标协议处理目标操作指令,得到目标报文,并通过连接线将目标报文传递至共享内存单元3的内存操作单元32。
第一传输控制模块202还用于接收到响应报文时,基于目标协议,自响应报文得到基于CXL协议的响应数据。
内容管理模块201还用于从基于CXL协议的响应数据中得到对应于原始操作指令的数据。
请参考图3,在测试系统,包括多个实时计算装置,每个实时计算装置包括:通信连接的处理单元与互连协议模块212,处理单元为CPU处理器等具备处理能力的单元,互联协议模块212包括:内容管理模块CA与第一传输控制模块(记作XTC模块1);多个实时计算装置可以被池化形成一个或多个计算资源池,在实时计算装置中互连协议模块212可基于FPGA电路或者ASCI电路来实现。
I/O处理装置中包括I/O控制器,I/O控制器作为I/O处理装置中的互连协议模块,用于实现互连协议模块的功能,每个I/O处理装置与其所连接的I/O单元1形成了I/O池,I/O控制器包括:内容管理模块CA与第一传输控制模块,(记作XTC模块1),I/O池中的各I/O单元1分别与内容管理模块CA通信连接,各I/O单元1的命令汇入CA模块,以发起对共享存储器进行操作的操作指令,各I/O单元1用于实现多功能输入输出接口(即图中的MULTI-IOS接口)。
图3中,各实时计算装置的处理单元与I/O池中的I/O处理装置的I/O控制器通过PCM设备通信连接,即实现实时计算装置与I/O处理装置之间的通信连接,交互所需的信息,包括但不限于HIL测试所需的配置信息;另外,图3中仅示意性画出了一个计算资源池与一个I/O池,可根据需求添加计算资源池与I/O池。
内存操作单元32包括:多个第二传输控制模块(记作XTC模块2)与内存读写模块(Home Agent,HA模块),装置与第二传输控制模块一一对应且通信连接,即各实时计算装置中的XTC模块1以及I/O处理装置中的XTC模块1分别与XTC模块2一一对应且通过基于目标协议的连接线通信连接。
第二传输控制模块用于接收到目标报文时,基于目标协议,自目标报文得到目标操作指令。其中,对于来源于不同装置的目标报文,第二传输控制模块可基于目标报文所来源的装置使用不同的目标协议进行解析,得到基于CXL协议的目标操作指令,并发送至内存读写模块。
内存读写模块用于执行基于CXL协议的目标操作指令对共享存储器31进行操作。
内存读写模块还用于产生目标操作指令的响应数据,并发送至第二传输控制模块。
第二传输控制模块用于基于目标协议处理响应数据,得到响应报文,并通过连接线将响应报文传递至相应的装置。
在测试系统中,内存操作单元32的HA模块连接到共享存储器31,负责共享存储器31的读写操作,用于维护共享存储器31的内存一致性。各装置(可以为实时计算装置或I/O处理装置)与共享内存单中的内存操作单元32之间进行指令与数据的交互,下面以多个装置中的任意目标装置为例进行说明:
目标装置在需要向共享存储器31中写入第一目标数据时:
目标装置用于:产生基于CXL协议的第一目标操作指令,基于目标协议处理第一目标操作指令,得到第一目标报文,并通过连接线将第一目标报文传递至共享内存单元,第一目标操作指令用于向共享存储器中写入第一目标数据;共享内存单元用于:接收到第一目标报文时,基于目标协议,自第一目标报文得到第一目标操作指令,并执行第一目标操作指令向共享存储器中写入第一目标数据。
具体的,请参考图4,以目标装置为实时计算装置为例,实时计算装置中的处理单元中所运行的测试仿真模型在测试过程中生成了需要共享至多个装置中至少一个第一装置的第一目标数据,第一装置可以为实时计算装置或I/O处理装置。
实时计算装置(目标装置)的处理单元先生成一个用于获取共享存储器31中第一目标操作地址的写入权限的权限获取请求,以尝试获取共享存储器31中第一目标操作地址的操作权限;权限获取请求被传输至互联协议模块212的CA模块,CA模块将该权限获取请求转换为基于CXL协议的目标操作指令Re1,该目标操作指令为一个读取指令,用于独占第一目标操作地址的写入权限;目标操作指令Re1经过XTC模块1基于目标协议进行封装后得到目标报文Me1,目标报文Me1经过网线或者光纤被传输至内存操作单元32的XTC模块2,XTC模块2则从目标报文Me1中解析出基于CXL协议的目标操作指令Re1,随后由HA模块执行目标操作指令Re1,并在确定目标装置获取共享存储器31的第一目标操作地址的写入权限成功后,生成一个基于CXL协议的响应信息,该响应信息用于表征目标装置获取共享存储器31的第一目标操作地址的写入权限成功,基于CXL协议的响应信息由XTC模块2基于目标协议封装到响应报文Rs1中并发送至目标装置的XTC模块1,XTC模块1基于目标协议从响应报文Rs1中解析出基于CXL协议的响应信息,由CA模块从基于CXL协议的响应信息中解析出对应于权限获取请求的数据后发送至处理单元。
处理单元在确定获取共享存储器31的第一目标操作地址的写入权限成功后,生成用于向共享存储器31的第一目标地址中写入第一目标数据的原始操作指令,该原始操作指令被传输至目标装置中互联协议模块212的CA模块,该CA模块将该原始操作指令转换为基于CXL协议的目标操作指令Re2,基于CXL协议的目标操作指令Re2经过XTC模块1基于目标协议进行封装后得到目标报文Me2,目标报文Me2经过网线或者光纤被传输至内存操作单元32的XTC模块2,XTC模块2则从目标报文Me2中解析出基于CXL协议的目标操作指令Re2,随后由HA模块执行目标操作指令Re2,将第一目标数据写入到共享存储器31中;后续各第一装置在需要时可通过内存操作单元32从共享存储器31中读取至少部分第一目标数据。
目标装置在需要从共享存储器31中读取第二目标数据时:
目标装置用于:产生基于CXL协议的第二目标操作指令,基于目标协议处理第一目标操作指令,得到第二目标报文,并通过连接线将第二目标报文传递至共享内存单元,第二目标操作指令用于从共享存储器中读取第二目标数据;共享内存单元用于:接收到第二目标报文时,基于目标协议,自第二目标报文得到第二目标操作指令,并执行第二目标操作指令从共享存储器中读取第二目标数据;以第二目标数据作为第二目标操作指令的响应数据。
具体的,请参考图5,以目标装置为I/O处理装置为例,I/O处理装置在在测试过程中需要从共享存储器31的第二目标地址中读取第二目标数据,第二目标数据为其他的装置(可以为实时计算装置或I/O处理装置)需共享给第二装置的目标数据,第二目标数据为基于前述的数据写入过程写入到共享存储器31中的。
测试过程中,I/O处理装置(目标装置)的CA模块所连接I/O单元1中的指定I/O单元所发送的需要第二目标数据的数据获取请求,该第二目标数据可以是指定I/O单元所需的数据,也可以是指定I/O单元所连接的测试件所需的数据;CA模块则根据该数据获取请求,生成用于从共享存储器31中的第二目标地址读取第二目标数据的第二目标操作指令,即基于CXL协议的第二目标操作指令Re3,第二目标操作指令Re3经过XTC模块1基于目标协议进行封装后得到第二目标报文Me3,第二目标报文Me3经过网线或者光纤被传输至内存操作单元32的XTC模块2,XTC模块2则从第二目标报文Me3中解析出基于CXL协议的第二目标操作指令Re3,随后由HA模块执行第二目标操作指令Re3,从共享存储器31的第二目标地址中读取得到基于CXL协议的第二目标数据,并以该第二目标数据作为响应数据,由XTC模块2将第二目标数据封装到响应报文Rs2中并发送至I/O处理装置(目标装置)的XTC模块1,XTC模块1基于目标协议从响应报文Rs2中解析出基于CXL协议的第二目标数据,由CA模块基于第二目标数据得到第二目标操作指令对应的数据后发送至指定I/O单元。其中,HA模块也可以先回复一个表征是否可读取第二目标数据的响应报文给目标装置的CA模块,后续再反馈第二目标数据给目标装置。
目标装置通过共享内存单元的侦听机制获取目标地址的写入权限:
目标装置用于:产生基于CXL协议的第三目标操作指令,基于目标协议处理第三目标操作指令,得到第三目标报文,并通过连接线将第三目标报文传递至共享内存单元,第三目标操作指令用于获取共享存储器中的目标地址的写入权限。
共享内存单元用于:接收到第三目标报文时,基于目标协议,自第三目标报文得到第三目标操作指令;确定是否需要发出侦听请求;若需要发出侦听请求,向多个装置中的至少一个指定装置发送侦听请求,并在接收到指定装置反馈的侦听响应信息后,执行第三目标操作指令。
上述过程即为目标装置与指定装置之间共享数据时的冲突解决机制,利用HA模块的侦听机制(snooping),保障装置之间数据的一致性,使得装置间数据能够进行准确有效的交互。
在上述过程中,指令装置分为两类,一类是获取了目标地址写入权限的指定装置,即当前独占了目标地址的指定装置,记作第一指定装置,第一指定装置仅有一个;另一类是共享目标地址中数据的指定装置,记作第二指定装置,第二指定装置可以为一个或多个,其可以为实时计算装置或I/O处理装置。
请参考图6,示意性画出了目标装置与一个指定装置。目标装置的处理单元先生成一个用于获取共享存储器31中第三目标操作地址的写入权限的权限获取请求,以尝试获取共享存储器31中第三目标操作地址的操作权限;权限获取请求被传输至互联协议模块212的CA模块,CA模块将该权限获取请求转换为基于CXL协议的第三目标操作指令Re4,第三目标操作指令Re4为一个读取指令,用于独占第三目标操作地址的写入权限;目标操作指令Re1经过XTC模块1基于目标协议进行封装后得到目标报文Me4,目标报文Me4经过网线或者光纤被传输至内存操作单元32的XTC模块2,XTC模块2则从目标报文Me4中解析出第三目标操作指令Re4,并发送HA模块,HA模块中配置有侦听机制(snooping),HA模块在执行第三目标操作指令Re4之前,还需确定是否需要发出侦听请求,即确定当前是否有关联于共享存储器31中第三目标地址的装置,这里所指的关联包括当前独占该第三目标地址或者当前共享该第三目标地址中数据的装置,将这些装置记作指定装置。
若存在关联于第三目标地址的指定装置,则确定需要发出侦听请求,生成侦听请求,利用XTC模块2将该侦听请求封装到侦听报文Ze1中发送至各指定装置(图6中仅示意性画出一个指定装置),各指定装置在接收到侦听报文Ze1后,从侦听报文Ze1中解析出侦听请求时,会将侦听响应信息封装到侦听响应报文Ye1中并反馈给XTC模块2,由XTC模块2从侦听响应报文Ye1解析出侦听响应信息并发送至HA模块,HA模块基于侦听响应信息,确定第三目标地址的写入权限是否可被独占,HA模块会在处理完所有的侦听响应信息后,确定第三目标地址的写入权限可被独占,执行第三目标操作指令Re4,生成表征目标装置获取第三目标地址的写入权限成功的响应信息,由XTC模块2将表征目标装置获取第三目标地址的写入权限成功的响应信息封装到响应报文Rs3中反馈给目标装置;该目标装置接收到响应报文Rs3后,将用于向共享存储器31中的第三目标地址写入第三目标数据的目标操作指令封装至目标报文Me5发送至内存操作单元32,具体过程与前述类似,在此不再赘述。
此外,HA模块可对相应地址(例如目标地址)的状态信息进行维护,例如,可利用简单的字符记录下相应地址的状态信息,状态信息为第一状态信息时,可用于表示相应地址处于当前被独占的状态,状态信息为第二状态信息时,可用于表示相应地址当前被共享的状态,状态信息还可以为非第一状态信息、第二状态信息的其他状态信息,进而,HA模块可基于状态信息执行上述处理,例如,可基于目标地址的状态信息,确定是否需要发出侦听请求,例如若目标地址的状态信息为第一状态信息时,发出侦听请求,再例如,在返回写入权限成功响应信息之后,可以将目标地址的状态信息确定为第一状态信息,进而,当其他装置在发起其CXL指令时,可基于这个第一状态信息确定需要发出侦听请求。可见,HA模块任意需要基于目标地址是否独占、是否共享等判断而做的处理,均可基于所维护的目标地址的状态信息来执行。
若至少一个指定装置中存在获取了第三目标地址写入权限的第一指定装置,则第一指定装置在接收到侦听请求后,用于:
若已完成向第三目标地址中写入数据的操作,即第一指定装置在获取了第三目标地址的写入权限之后,立即生成了用于向共享存储器31的第三目标地址写入待写入数据的操作指令,并封装到目标报文中发送至给了内存操作单元32,也就说共享存储器31的第三目标地址已被第一指定装置写入了相应的数据,此时第一指定装置生成表征已完成数据写入的第一侦听响应信息,并将该第一侦听响应信息封装到侦听响应报文中发送至XTC模块2,由XTC模块2从侦听响应报文解析出第一侦听响应信息并发送至HA模块。
若未完成向第三目标地址中写入数据的操作,即第一指定装置在获取了第三目标地址的写入权限之后,等待HA模块发送来的侦听请求触发数据写入,在接收到侦听请求后,生成包含用于向第三目标地址写入指定数据的指定操作指令的第二侦听响应信息,并将第二侦听响应信息封装到侦听响应报文中发送至XTC模块2,由XTC模块2从侦听响应报文解析出第二侦听响应信息并发送至HA模块。
若指定装置中仅包含第一指定装置,内存操作管理模块22用于:
在接收到第一侦听响应信息时,确定第一指定装置已完成向第三目标地址中的数据写入,直接执行第三目标操作指令Re4
在接收到第二侦听响应信息时,确定第一指定装置未完成向第三目标地址中的数据写入,从第二侦听响应信息中解析出指定操作指令,HA模块先执行指定操作指令向第三目标地址中写入指定数据,再执行第三目标操作指令Re4,此时共享存储器31中的第三目标地址被目标装置独占,由XTC模块2将表征目标装置获取第三目标地址的写入权限成功的响应信息封装到响应报文中反馈给目标装置。
若至少一个指定装置中还存在共享第三目标地址中数据的第二指定装置,则第二指定装置用于在接收到侦听请求后,生成表征停止共享第三目标地址中数据的第三侦听响应信息,即第二指定装置在接收到侦听请求后,获悉第三目标地址中将要写入新的数据,则暂时停止共享第三目标地址中的数据,生成表征停止共享第三目标地址中数据的第三侦听响应信息,将第三侦听响应信息封装到侦听响应报文中发送至XTC模块2,由XTC模块2从侦听响应报文解析出第三侦听响应信息并发送至HA模块。
HA模块用于在接收到第一侦听响应信息与第三侦听响应信息时,执行执行第三目标操作指令Re4,即内存操作管理单元222在所有的第二指定装置反馈第三侦听响应信息,以及第一指定装置反馈第一侦听响应信息时,确定没有第二指定装置仍在共享第三目标地址中的数据,且第一指定装置已完成了向第三目标地址中的数据写入后,直接执行执行第三目标操作指令Re4
HA模块用于在接收到第二侦听响应信息与各第二指定装置反馈的第三侦听响应信息后,确定没有第二指定装置仍在共享第三目标地址中的数据,但第一指定装置尚未完成向第三目标地址中的数据写入,则先从第二侦听响应信息中解析出指定操作指令,HA模块先执行指定操作指令向第三目标地址中写入指定数据,再执行第三目标操作指令Re4,此时共享存储器31中的第三目标地址被第一指定装置独占,将表征第一指定装置获取第三目标地址的写入权限成功的响应信息封装到响应报文中反馈给目标装置。
在上述过程中,由指定装置中CA模块完成对侦听请求的响应。
图7中仅以指定装置的数量为一个举例,若指定装置的数量为多个,则内存操作单元仍按照上述的方式处理各指定装置的响应信息,具体方式类似,在此不再赘述。
在本实例中,对实时计算装置和I/O单元进行了资源池化,池化可以让测试系统拥有更多的实时计算装置和I/O单元;计算资源池与I/O池通过网线或者光纤连接到内存操作单元,对共享存储器进行访问,如需扩展计算资源池或I/O池,则只需要增加相应的计算资源池或I/O池,并完成计算资源池或I/O池与内存操作单元的连接即可,可以提供足够多的实时计算装置和I/O资源,用以完成高复杂度的测试需求,或者是多个测试需求进行并发执行,减少测试时间;如图5所示,内存操作单元可接入3个计算资源池与3个I/O池,同样的共享存储器的内存容量的扩展则在内存操作单元侧进行相应的扩展,接入内存操作单元即可。
CXL的全称是Compute Express Link,支持内存一致性协议,其支持设备包括诸如ASIC、FPGA、SmartNIC(智能网卡)、GPU等,以及实现DRAM内存扩展。
在集群化的测试系统中,实时计算装置和I/O单元的数量都是在成规模的突破,本实施例通过共享内存(即共享存储器)来实现实时计算装置和I/O单元之间的交互。基于CXL协议,内存操作单元能够很好的处理来源于实时计算装置和I/O单元的内存操作请求,CXL协议能够保证各个实时计算装置和I/O单元之间的数据一致性。
本申请中提供了利用CXL协议进行集群化系统中的装置间数据共享的问题的,而CXL协议,具备高带宽,低时延的特点,CXL协议的使用可以确保各个装置之间数据的一致性,使得装置间数据能够进行准确有效的交互。
在基于CXL协议解决了内存一致性问题的基础上,通过网线或者光纤连接弥补了CXL协议因共享PCIe的物理层造成的不适用远距离的链接的缺陷,实现了基于CXL协议共享内存间的远距离通信,可以在距离较远的装置之间保持内存一致性(比如位于不同机柜的装置之间),并且对于测试系统的扩展具有很好的支持。
本申请第二实施例涉及一种测试系统,第二实施例与第一实施例相比,主要不同之处在于:第一实施例中各装置通过基于目标协议的连接线连接到共享内存单元,本实施例中各装置通过CXL交换机连接到共享内存单元。
请参考图8,测试系统包括:I/O单元1、多个装置2、配置有共享存储器的共享内存单元3以及至少一个CXL交换机4。多个装置2包括至少一个实时计算装置与至少一个I/O处理装置,I/O处理装置连接对应的I/O单元,I/O单元直接或间接连接到被测件;各装置2通过CXL交换机4连接到共享内存单元3。
CXL交换机4可在共享内存单元3与各装置2之间传输基于CXL协议的数据;所传输的数据包括但不限于CXL指令、CXL数据等;也就是说,各装置2在内部完成协议的转换,再由CXL交换机4在各装置2与共享内存单元3之间完成基于CXL协议的数据交互。
本实施例中,利用CXL交换机在装置与共享内存单元之间交互基于CXL协议的数据,则需要进行数据共享的装置之间可以通过共享内存单元对共享存储器的操作实现数据的共享,数据共享的过程中满足CXL协议,由此可利用CXL技术解决内存一致性问题,实现了测试系统内不同装置间数据的共享。
本实施例中,共享内存单元3包括:共享存储器31与内存操作单元32,各装置2通过CXL交换机4连接到内存操作单元32。
内存操作单元32用于从CXL交换机4接收CXL指令,并执行CXL指令对共享存储器31进行对应的操作指令的操作。
需要说明的是,图8中以CXL交换机4的数量为一个举例,CXL交换机4的数量也可以为多个,每个装置2有其对应的CXL交换机4,并通过对应的CXL交换机4连接到共享内存单元3,由于CXL交换机4的接口数量众多,由此可实现装置2的灵活扩展。
在一个例子中,还可以将多个装置2中的实时计算装置21进行池化得到计算资源池,即每个计算资源池包括多个实时计算装置21;同样的,也可以将I/O处理装置22与其连接的多个I/O单元1进行池化,得到I/O池。
每个I/O池中的I/O处理装置连接到CXL交换机4的一个CXL接口,每个计算资源池中的多个实时计算装置连接CXL交换机4的一个CXL接口。由上,以I/O池与计算资源池为单位来管理测试系统中的实时计算装置21与I/O处理装置22,在需要增加实时计算装置21和/或I/O处理装置22时,只需增加相应的池并完成与CXL交换机4的连接即可,更加方便且快速。在其他未图示的例子中,一个CXL交换机也可以仅连接一个或多个I/O池而不连接计算资源池,一个CXL交换机也可以仅连接一个或多个计算资源池而不连接I/O池。
对实时计算装置和I/O单元进行了资源池化,池化可以让测试系统拥有更多的实时计算装置和I/O单元;计算资源池与I/O池通过CXL交换机4连接到共享内存单元,对共享内存单元中的共享存储器进行访问,如需扩展计算资源池或I/O池,则只需要增加相应的计算资源池或I/O池,并完成计算资源池或I/O池与CXL交换机4的连接即可,可以提供足够多的实时计算装置和I/O资源,用以完成高复杂度的测试需求,或者是多个测试需求进行并发执行,减少测试时间;同样的共享存储器的内存容量的扩展则在共享内存单元中进行相应的扩展,接入共享内存单元即可。
进一步的,CXL交换机的数量也可以是多个,多个CXL交换机呈树状连接,即第一层的CXL交换机分别连接到对应的一个或多个装置2(也可以是I/O池和/或计算资源池),每一层的CXL交换机直接或间接连接到下一层的CXL交换机,直至连接到最后一层的一个CXL交换机,该CXL交换机则连接到内存操作单元32。对于其中的每个CXL交换机来说,其按照预先配置的链路表与数据中所包含的指示信息来进行数据转发,指示信息表征了接收该数据的装置或者该数据所来源的装置的标识信息,由此CXL交换机可以将来源于装置的数据转发至内存操作单元32,并将来源于内存操作单元32的数据转发至接收到数据的装置,从而保证了内存操作单元32与装置之间可以进行数据交互。
例如,请参考图9,测试系统包括4个CXL交换机,分别记作CXL交换机CS5、CXL交换机CS6、CXL交换机CS7以及CXL交换机CS8,CXL交换机CS5、CXL交换机CS6、CXL交换机CS7以及CXL交换机CS8分别连接到I/O池和计算资源池,CXL交换机CS6分别与CXL交换机CS5以及CXL交换机CS7通信连接,CXL交换机CS5以及CXL交换机CS7还分别连接到CXL交换机CS8。
下面结合对本实施例中的测试系统进行详细说明:
测试系统中的多个装置包括至少一个实时计算装置与至少一个I/O处理装置。
I/O处理装置至少包括:第一内容管理模块(Cache Agent,CA);目标数据包括第一目标数据;第一内容管理模块用于通过CXL交换机4将基于第一操作指令得到的CXL指令发送至共享内存单元3的内存操作单元32,第一操作指令用于在共享存储器31中读取或写入第一目标数据。
进一步的,I/O处理装置22还包括:多个协议转换模块与多路选择模块,协议转换模块连接到I/O单元1,协议转换模块与I/O单元1一一对应且通信连接,各I/O单元1分别连接到被测件,多路协议转换模块连接到多路选择模块,多路选择模块则连接到第一内容管理模块,第一内容管理模块连接到CXL交换机4。
协议转换模块用于将第一操作指令转换得到CXL指令;不同的I/O单元1基于不同的协议,例如CAN总线协议、Aurora协议,Ethereum以太网协议,InfiniBand无限带宽协议或者是自定义协议,协议转换模块则可将其所连接的I/O单元1的协议转换为CXL协议,将实现I/O单元1发送的第一操作指令转换为CXL指令,由此能够实现与多种类型的I/O单元1的连接,即可满足各种类型的I/O单元1的连接需求。
多路选择模块即为多路选择器MUX,其可按照预设的选择方式从多所连接的多路协议转换模块中选择一路协议转换模块所输出的CXL指令发送至第一内容管理模块。
第一内容管理模块针对由各I/O单元1的第一操作指令所转换得到CXL指令,基于设定的仲裁算法,将各CXL指令依次发出,通过CXL交换机4发送至内存操作单元32。
以第一操作指令为用于从共享存储器31中的第一目标地址读取第一目标数据的操作指令为例。其中的第一目标数据为指定I/O单元所需的数据,也可以是指定I/O单元所连接的测试件所需的数据。
多路协议转换模块连接分别连接到多个I/O单元,多路选择模块选通其中指定I/O单元所连接的协议转换模块,将由来源于指定I/O单元的第一操作指令转换得到的CXL指令Rce1发送至第一内容管理模块,第一内容管理模块按照设定的仲裁算法,将该CXL指令Rce1发送至CXL交换机4,由CXL交换机4将该CXL指令Rce1转发至内存操作单元32,内存操作单元32则执行该CXL指令Rce1,从共享存储器31中的第一目标地址读取出第一目标数据,并将该第一目标数据转换为CXL数据Sce1,再将该CXL数据Sce1通过CXL交换机4发送至第一内容管理模块,第一内容管理模块再通过多路选择模块、连接到指定I/O单元的协议转换模块,将CXL数据Se1转换得到的第一目标数据发送至指定I/O单元。
实时计算装置21包括处理单元与第二内容管理模块(Cache Agent,CA);处理单元为CPU处理器等具备处理能力的单元;目标数据包括第二目标数据。处理单元用于获取第二操作指令;第二操作指令用于在共享存储器31中读取或写入第二目标数据。第二内容管理模块用于将第二操作指令转换为CXL指令,并通过CXL交换机4发送至共享内存单元3的内存操作单元32。
以第二操作指令为用于向共享存储器31中的第二目标地址写入第二目标数据的操作指令为例;在测试过程中实时计算装置21中的处理单元生成了需要共享至多个装置2中至少一个目标装置的第二目标数据,目标装置可以为实时计算装置或I/O处理装置。
实时计算装置21在需要向共享存储器31中的第二目标地址写入第二目标数据,处理单元先生成一个用于获取共享存储器31中第二目标操作地址的写入权限的操作指令,以尝试获取共享存储器31中第二目标操作地址的写入权限;处理单元将该操作指令发送至第二内容管理模块,第二内容管理模块则将该操作指令转换得到用于获取共享存储器31中第二目标操作地址的写入权限的CXL指令Rce2,该CXL指令Rce2为一个读取指令,用于独占第二目标操作地址的写入权限;第二内容管理模块将CXL指令Rce2通过CXL交换机4发送至内存操作单元32,内存操作单元32执行CXL指令Rce2,并在确定实时计算装置21获取共享存储器31中第二目标操作地址的写入权限成功后,生成一个表征实时计算装置21获取共享存储器31中第二目标操作地址的写入权限成功的CXL响应信息,并通过CXL交换机4反馈给第二内容管理模块,由第二内容管理模块将CXL响应信息转换得到与处理单元相同协议的响应信息后,发送至处理单元,处理单元在确定获取共享存储器31中第二目标操作地址的写入权限成功后,生成用于向共享存储器31中的第二目标地址写入第二目标数据的操作指令,该操作指令与上述的用于获取共享存储器31中第二目标操作地址的写入权限的操作指令的具体发送方式类似,即由该用于向共享存储器31中的第二目标地址写入第二目标数据的操作指令转换得到的CXL指令Rci2被通过CXL交换机4发送至内存操作单元32,内存操作单元32执行该CXL指令Ri2,向共享存储器31中的第二目标地址写入第二目标数据。后续各目标装置在需要时从共享存储器31中读取至少部分第二目标数据。
在一个例子中,内存操作单元包括:依次通信连接的指令收发模块(CAE)、内存操作管理模块(Home Agent,HA模块)以及内存控制器。指令收发模块连接到CXL交换机,内存控制器还连接到共享存储器。
指令收发模块用于接收各装置发送的CXL指令;内存操作管理模块用于确定所接收的CXL指令的执行顺序,并将各CXL指令依次发送至内存控制器。内存操作管理模块中设定了CXL指令的裁决规则,例如先入先出、先写后读等等,内存操作管理模块按照该裁决规则确定所接收的CXL指令的执行顺序,将所有的CXL指令按顺序发送到内存控制器。内存控制器用于执行CXL指令对共享存储器进行操作,可以是数据写入操作,也可以是数据读取操作。
进一步的,内存操作管理模块在将所接收到的CXL指令中的第一CXL指令发送至内存控制器之前,确定是否存在与第一CXL指令冲突的至少一个第二CXL指令,第二CXL指令为用于向第一CXL指令所操作的共享存储器31中的第一指定地址写入数据的CXL指令。若确定存在与第一CXL指令冲突的至少一个第二CXL指令,则基于预设的冲突解决方案,从第一CXL指令与至少一个第二CXL指令中选定一个指定CXL指令发送至内存控制器;若确定不存在与第一CXL指令冲突的至少一个第二CXL指令,则将第一CXL指令发送至内存控制器。其中,内存操作管理模块中预设了冲突解决方案,例如为先入先出,或者先写后读,又或者按照CXL指令所来源的装置2的优先级来选取,直至第一CXL指令被发送至内存控制器。若当前不存在第二CXL指令,则直接将第一CXL指令发送至内存控制器。
在一个例子中,内存操作管理模块中还设置了侦听机制(snooping),若当前所有待发出的CXL指令中存在用于请求共享存储器31中的目标地址的写入权限的第三CXL指令,其在将该第三CXL指令发送至内存控制器时,还需确定是否需要发出侦听请求,即确定当前是否有关联于共享存储器31中目标地址的装置2,这里所指的关联包括当前独占该目标地址或者当前共享该目标地址中数据的装置2,将这些装置2记作指定装置,指定装置可以是实时计算装置21或者I/O处理装置22。
若存在关联于目标地址的指定装置,则确定需要发出侦听请求,生成CXL侦听请求,利用指令收发模块将CXL侦听请求通过CXL交换机4发送至多个装置2中的各指定装置,各指定装置在接收到侦听请求时,会向内存操作管理模块反馈侦听响应信息,内存操作管理模块则基于接收到的指定装置反馈的侦听响应信息,确定目标地址的写入权限是否可被独占,内存操作管理模块会在处理完所有的侦听响应信息后,确定目标地址的写入权限可被独占,将第三CXL指令发送至内存控制器,内存控制器在执行第三CXL指令后,将表征发送第三CXL指令的装置2获取目标地址的写入权限成功的响应信息反馈给发送第三CXL指令的装置2;该装置2接收到表征获取目标地址的写入权限成功的响应信息后,将用于向共享存储器31中的目标地址写入第三数据的CXL指令发送至内存操作单元32,具体过程与前述类似,在此不再赘述。
在上述过程中,指令装置分为两类,一类是获取了目标地址写入权限的指定装置,即当前独占了目标地址的指定装置,记作第一指定装置,第一指定装置仅有一个;另一类是共享目标地址中数据的指定装置,记作第二指定装置,第二指定装置可以为一个或多个。
此外,内存操作管理模块可对相应地址(例如目标地址)的状态信息进行维护,任意需要基于目标地址是否独占、是否共享等判断而做的处理,均可基于所维护的目标地址的状态信息来执行。
若至少一个指定装置中存在获取了目标地址写入权限的第一指定装置,则第一指定装置在接收到侦听请求后,用于:若已完成向目标地址中写入数据的操作,即第一指定装置在获取了目标地址的写入权限之后,立即生成了用于向共享存储器的目标地址写入待写入数据的操作指令,并发送至了内存操作管理模块,也就说共享存储器的目标地址已被第一指定装置写入了相应的数据,此时第一指定装置生成表征已完成数据写入的第一侦听响应信息,并将该第一侦听响应信息发送至CXL交换机,由CXL交换机将该第一侦听响应信息通过指令收发模块发送至内存操作管理模块。
若未完成向目标地址中写入数据的操作,即第一指定装置在获取了目标地址的写入权限之后,等待内存操作管理模块发送来的侦听请求触发数据写入,在接收到侦听请求后,生成包含用于向目标地址写入指定数据的第四CXL指令的第二侦听响应信息,并将第二侦听响应信息发送至CXL交换机,由CXL交换机将该第二侦听响应信息通过指令收发模块发送至内存操作管理模块。
若指定装置中仅包含第一指定装置,内存操作管理模块22用于:在接收到第一侦听响应信息时,确定第一指定装置已完成向目标地址中的数据写入,直接将第三CXL指令发送至内存控制器。
在接收到第二侦听响应信息时,确定第一指定装置未完成向目标地址中的数据写入,从第二侦听响应信息中解析出第四CXL指令,内存操作管理模块先将第四CXL指令先发送至内存控制器,内存控制器先执行第四CXL指令向目标地址中写入指定数据,再将第三CXL指令发送至内存控制器,内存控制器再执行第三CXL指令,此时共享存储器31中的目标地址被第一指定装置独占,将表征第一指定装置获取目标地址的写入权限成功的响应信息反馈给发送第一指定装置。
若至少一个指定装置中还存在共享目标地址中数据的第二指定装置,则第二指定装置用于在接收到侦听请求后,生成表征停止共享目标地址中数据的第三侦听响应信息,即第二指定装置在接收到侦听请求后,获悉目标地址中将要写入新的数据,则暂时停止共享目标地址中的数据,生成表征停止共享目标地址中数据的第三侦听响应信息,利用CXL交换机4将第三侦听响应信息经过指令收发模块发送至内存操作管理模块。
内存操作管理模块用于在接收到第一侦听响应信息与第三侦听响应信息时,将第三CXL指令发送至内存控制器,即内存操作管理单元222在所有的第二指定装置反馈第三侦听响应信息,以及第一指定装置反馈第一侦听响应信息时,确定没有第二指定装置仍在共享目标地址中的数据,且第一指定装置已完成了向目标地址中的数据写入后,直接将第三CXL指令发送至内存控制器。
内存操作管理模块用于在接收到第二侦听响应信息与各第二指定装置反馈的第三侦听响应信息后,确定没有第二指定装置仍在共享目标地址中的数据,但第一指定装置尚未完成向目标地址中的数据写入,则先将第四CXL指令先发送至内存控制器,再将第三CXL指令发送至内存控制器。
在上述过程中,若指定装置为实时计算装置21,则由实时计算装置21中的第二内容管理模块完成对侦听请求的响应;若指定装置为I/O处理装置22,则由I/O处理装置22中的第一内容管理模块完成对侦听请求的响应。
进一步的,第一实施例与第二实施例中的测试系统还可以实现下述的过程。
测试系统所包含的多个装置2包括至少一个实时计算装置与至少一个I/O处理装置;I/O处理装置连接到至少一个I/O单元,I/O单元直接或间接连接到被测件,整个测试系统同时所连接的被测件可以是一个,也可以是多个。其中,一个I/O处理装置可以与一个或多个I/O单元交互数据。
多个装置中任意的第三装置获取用于对共享存储器31进行目标操作的操作指令,并将操作指令发送到内存操作单元;目标操作用于向共享存储器31写入目标数据;目标数据为在对被测件进行测试的过程中,第四装置中配置有目标存储器。其中,第三装置是多个装置中的任意一个装置,其可以是实时计算装置或I/O处理装置;第三装置在需要向第四装置传递目标数据时,生成一个用于向共享存储器31中写入目标数据的操作指令,目标数据即为在测试过程中,需要在第三装置与第四装置之间传递的数据。
第四装置也可以是实时计算装置21或I/O处理装置22,第四装置的数量可以为一个或多个,若第四装置的数量为多个,则其中可以包含实时计算装置和/或I/O处理装置;即目标数据可以是需要在多个实时计算装置21之间传递的数据,或者在实时计算装置与I/O处理装置之间传递的数据,又或者在多个I/O处理装置之间传递的数据。
内存操作单元在接收到操作指令后,令目标数据被存储于多个装置中至少一个选定装置的目标存储器,至少一个选定装置包括第四装置。
也就是说,内存操作单元可以直接向各选定装置的目标存储器中写入目标数据,也可以将操作指令转发至各选定装置,由各选定装置执行操作指令来将目标数据存储至其被被配置的目标存储器中。选定装置中包括了需接收目标数据的第四装置,则第四装置的目标存储器中也存储了目标数据。第四装置在测试过程中,若需要使用到部分或者全部的目标数据时,则可以直接从第四装置的目标存储器中读取所需的至少部分目标数据。比如,第四装置可以从本地的目标存储器中读取所有测试所需的数据,然不限于此,也可以是从本地的目标存储器中读取部分测试所需的数据,另一部分测试所需的数据通过内存操作单元到共享存储器中读取。
另外,内存操作单元还会接收到的执行操作指令,将目标数据写入到共享存储器中。由此,多个装置中的至少一个第五装置用于:通过内存操作单元从共享存储器中读取测试所需的至少部分目标数据。第五装置是多个装置中的任意一个装置,其可以是配置有目标存储器的装置,也可以是没有配置目标存储器的装置。
本实施例中,可以在测试系统所包含的所有的装置中的部分或者全部装置中配置目标存储器;比如部分装置需频繁读取某些固定数据,则可以在这部分装置中配置目标存储器,将这些固定数据存储分别存储在各装置的目标存储器中。其中,目标存储器可以理解为装置的本地内存,本地内存可以是设于装置内的存储器,也可以是外接于装置的存储器,只要在本地实现数据的写入与读取,均可理解为本地内存。
内存操作单元用于在操作指令对应的目标数据满足预设条件时,令目标数据被存储于多个装置中至少一个选定装置的目标存储器。即在测试过程中,内存操作单元是否将所接收到的操作指令(或者操作指令对应的目标数据)发送至选定装置,取决于操作指令对应的目标数据是否满足预设条件,预设条件限定了目标数据是否需被发送选定装置。
在本实施例中,多个装置中任意的第三装置在向内存操作单元发送操作指令时,也可以参照第一实施例中或第二实施例中装置2基于CXL协议,利用共享内存单元3对共享存储器进行操作类似的方式,比如参照第一实施例,各装置通过基于目标协议的连接线连接到内存操作单元,即第三装置通过基于目标协议的连接线连接到内存操作单元,第三装置产生基于CXL协议的操作指令(用于向共享存储器中写入目标数据),基于目标协议处理该操作指令,得到目标报文,并通过连接线将目标报文发送至内存操作单元,内存操作单元则在接收到目标报文时,基于目标协议,自目标报文得到基于CXL协议的操作指令,并基于该操作指令,对共享存储器进行操作。内存操作单元在需将目标数据发送至选定装置时,可以采用如下任意一种方式:1、内存操作单元直接包含目标数据的报文(也可以是原目标报文)通过原基于目标协议的连接线发送至选定装置;2、内存操作单元与各装置之间还通过另一专用的连接线通信连接,则内存操作单元将包含目标数据的报文(也可以是原目标报文)通过该专用的连接线发送至选定装置,该专用的连接线也可以是以下任意之一:Aurora协议、以太网、IB协议、自定义协议。选定装置在接收到包含目标数据的报文时,从报文中解析出目标数据(或者用于写入目标数据的操作指令),并将目标数据存储到本地的目标存储器。
比如参照第二实施例,各装置通过CXL交换机连接到共享内存单元,即第三装置通过CXL交换机连接到共享内存单元,比如第三装置为实时计算装置,包括:处理单元与第二内容管理模块,处理单元生成了需要共享至至少一个第四装置的目标数据,获取目标地址写入权限的相关过程与前述类似在此不再赘述,在获取共享存储器31的目标地址的写入权限成功后,处理单元生成用于在共享存储器31的目标地址中写入目标数据的操作指令,由第三装置的第二内容管理模块将操作指令转换得到的CXL指令通过CXL交换机发送至内存操作单元,内存操作单元执行该CXL指令,向共享存储器中的目标地址写入目标数据。内存操作单元在需将目标数据发送至选定装置时,可以采用如下任意一种方式:1、内存操作单元直接将CXL指令通过CXL交换机转发至选定装置,选定装置在接收到CXL指令时,其中的内容管理模块(例如选定装置为实时计算装置,则为其中的第二内容管理模块;或者选定装置为I/O处理装置,则为其中的第一内容管理模块)从CXL指令中解析出操作指令并执行将目标数据存储到本地的目标存储器;2、内存操作单元与各装置之间还通过另一专用的连接线通信连接,则内存操作单元将包含目标数据的报文通过该专用的连接线发送至选定装置,该专用的连接线也可以是以下任意之一:Aurora协议、以太网、IB协议、自定义协议;选定装置在接收到包含目标数据的报文时,从报文中解析出目标数据(或者用于写入目标数据的操作指令),并将目标数据存储到本地的目标存储器。
在一个例子中,第三装置在获取需要共享到第四装置的目标数据时,可以先判断目标数据是否满足预设条件,并将表征目标数据是否满足预设条件的指示信息与用于向共享存储器写入目标数据的操作指令一同发送至内存操作单元,内存操作单元则可以基于该指示信息确定目标数据是否满足预设条件,并在接收到表征目标数据满足预设条件的第一指示信息,确定需要将目标数据发送至选定装置;在接收到表征目标数据不满足预设条件的指示信息时,确定不需要将目标数据发送至选定装置。
在另一个例子中,内存操作单元在接收到操作指令时,自主判断目标数据是否满足预设条件,在判定目标数据满足预设条件时,确定需要将目标数据发送至选定装置;在判定目标数据不满足预设条件时,确定不需要将目标数据发送至选定装置。比如,内存操作单元在接收到每个操作指令时,先判断该操作指令为写入操作指令,若是,再判断操作指令是否满足预设条件。
在上述两种方式中,预设条件包括以下任意之一或任意组合:
目标数据来源于至少一个实时计算装置中的第一选定装置或者实时计算装置的第一指定端口;目标数据需被发送至至少一个实时计算装置中的第二选定装置或者实时计算装置的第二指定端口;目标数据为需要在实时计算装置之间传递的数据;目标数据来源于至少一个I/O单元中的第一指定I/O单元或者I/O单元的第三指定端口;目标数据需被发送至至少一个I/O单元中的第二指定I/O单元或者I/O单元的第四指定端口;目标数据用于被写入到指定地址;比如,目标数据用于被写入到共享存储器的存储地址被划分得到多个地址段中的任意一个指定地址段。具体的,共享存储器中的存储地址被划分为多个存储地址段,每个存储地址段被配置了相应的属性,该属性用于限定该指向该存储地址段的数据是否可以被存储至选定装置的目标存储器;指定地址段即为指向该指定地址段的数据可以被存储至选定装置的目标存储器。进一步的,还可以将共享存储器中的存储地址划分得到与测试系统中所有的装置一一对应的多个存储地址段,建立二者的绑定关系,由此可以通过对存储地址段的配置,实现向某一个或多个装置定向进行目标数据的本地存储的功能。
目标数据为包含预设标识的数据;目标数据位于第一预设数据名单内;目标数据位于第二预设数据名单外;目标数据的获取频率小于预设频率阈值;目标数据需被发送至多个第四装置。
需要说明的是,上述多种预设条件,在不冲突的情况下可以互相组合使用。
在一个实施例中,内存操作单元还用于:拒绝将目标数据或操作指令传递至预设端口,以使目标数据无法经预设端口而被写入到多个装置中预设装置的目标存储器。测试系统中包括N个装置(N大于1),多个装置为N个装置中被划分用于执行当前测试任务的装置,可以为N个装置的全部或者部分。此外,测试系统也可以并行执行多个当前测试任务,进而,针对不同当前测试任务,所划分出的多个装置可以是不同的,也可以是重合的,甚至相同的,这与装置提供的计算资源、用户的需求相关联。
内存操作单元在确定目标数据需要被发送至选定装置时,还需确定接收操作指令或者操作指令对应的目标数据的选定装置;即确定操作指令或者操作指令对应的目标数据需要被广播到哪些选定装置进行本地存储,选定装置均是配置有目标存储器的装置,其中包括目标数据需要传递至的第四装置。
在一种示例中,内存操作单元用于在确定目标数据需要被发送至选定装置时,从多个装置中确定出至少一个选定装置,并将目标数据发送至这些选定装置。
在另一种示例中,第三装置在获取操作指令后,从多个装置中确定出至少一个选定装置,并将表征第三装置确定出的至少一个选定装置的第二指示信息发送至内存操作单元,即第二指示信息中指定了接收目标数据的对象,内存操作单元32可从第二指示信息中获取目标数据需要被发送至的选定装置,并将目标数据发送至这些选定装置。
在上述两种方式中,第三装置或者内存操作单元从多个装置中确定出至少一个选定装置方式为以下任意之一:
至少一个选定装置为多个装置中的所有装置,将所有用于执行当前测试任务的装置均作为选定装置;至少一个选定装置均为实时计算装置;第三装置为实时计算装置,至少一个选定装置包括多个装置中的所有I/O处理装置;第三装置为I/O处理装置,至少一个选定装置包括多个装置中的所有实时计算装置;至少一个选定装置包括多个装置中与目标数据对应的装置;
需要说明的是,上述多种选定选定装置的方式,在不冲突的情况下可以互相组合使用。
对于各选定装置,其在接收到内存操作单元所发送的操作指令或者操作指令对应的目标数据时,可以直接在本地的目标存储器中存储目标数据,或者其也可以判断目标数据是否为所需的数据,仅对所需的目标数据进行本地存储。
在一个例子中,选定装置被配置为禁止对选定装置的目标存储器执行写入操作,或者:配置为禁止对选定装置的目标存储器的目标地址空间执行写入操作,目标地址空间包括用于存储目标数据的存储地址。
进一步的,至少一个选定装置还包括第三装置;第三装置还用于:从第三装置的目标存储器读取目标数据。也就是说,第三装置中配置了目标存储器,则其在测试过程中需要读取目标测试所需的目标数据时,也需要从本地的目标存储器中来进行读取。
对于第四装置来说,其会在本地的目标存储器中存储目标数据;若第四装置所需的所有数据均被存储至本地的目标存储器,则第四装置在需要读取目标数据时,均可从本地的目标存储器中进行存储;若第四装置所需的数据仅部分被存储到了本地的目标存储器,则第四装置在需要读取测试所需的指定数据时,先确定是否从第四装置的目标存储器中读取指定数据,若确定从第四装置的目标存储器中读取指定数据,则从目标存储器中读取指定数据;若确定不从第四装置的目标存储器中读取指定数据,则通过内存操作单元从共享存储器中读取指定数据。
其中,第四装置判断指定数据从本地的目标存储器中读取还是从共享存储器中读取的方式如下:
在指定数据位于预设数据范围内时,确定从第四装置的目标存储器中读取指定数据,即各装置中提前预设好了可以从本地内存读取的数据,然后据此决定测试所需的数据从哪里读取,比如按照数据类型来设定,某一种或多种类型的数据均被配置从本地的目标存储器中读取,其他类型的指定数据均被配置通过内存操作单元32从共享存储器中读取;此时也需要跟前面目标数据的预设条件来配合使用,比如需配置这些类型的数据被发送至选定装置,又或者不对目标数据的类型进行限定。
在指定数据为存储到目标存储器中的目标数据时,确定从第四装置的目标存储器中读取指定数据,即各装置会记录其在本地的目标存储器中存储的数据,确定这些数据从本地读取,在需要读取指定数据时,先判断指定数据是否为已存储到本地的数据,若是,则从本地的目标存储器中读取指定数据;若否,则从共享存储器中读取指定数据。
在当前时间位于指定数据的指定时间范围内时,确定从第四装置的目标存储器中读取指定数据。即指定数据在被第四装置存储到本地的目标存储器后,为指定数据配置了有效的指定时间范围,比如指定数据被存储到本地后的30秒内,若在这30秒内,第四装置需读取该指定数据,可从本地内存中读取;若超过30秒,则第四装置需要到共享存储器中读取指定数据。另外,在指定数据超过对应的指定时间范围后,则可以删除指定数据;并且,不同的指定数据可以被配置不同的指定时间范围,这可以基于指定数据的获取频率来设定,获取频率表征的指定数据的时间间隔,配置该指定时间范围小于或等于该时间间隔即可。
示例性的,也可以按照如下的方式来配置:对于测试系统中的每个装置来说,其在需要读取测试所需的指定数据时,若装置中配置有目标存储器且目标存储器中已被写入目标数据,则从目标存储器中读取指定数据;若装置中未配置有目标存储器或者装置中配置的目标存储器中未被写入目标数据,则通过内存操作单元从共享存储器中读取指定数据。也就是测试系统中的每个装置,若其在本地存储了目标数据,则只从本地读取测试所需的指定数据;若其未在本地存储目标数据,则需通过内存操作单元从共享存储器中读取指定数据。
在一个例子中,请参考图10,配置有目标存储器的第四装置包括:相互通信连接的指定模块2011与目标存储器2012;指定模块2011用于自内存操作单元32接收操作指令或目标数据,将目标数据发往第四装置的目标存储器进行存储,并从目标存储器2012中读取测试所需的至少部分目标数据。
在一些示例中,指定模块2011可以是FPGA电路或者ASIC电路,即由FPGA、ASIC来实现目标数据到目标存储器2012的存储与读取。
在另一个例子中,指定模块2011包括:数据传递单元与处理单元,数据传递单元分别与处理单元与目标存储器2012通信连接;其中,处理单元可以为CPU处理器。数据传递单元用于自内存操作单元32接收操作指令或目标数据,将目标数据发往第四装置的目标存储器进行存储。处理单元21用于从第四装置的目标存储器中读取测试所需的至少部分目标数据。数据传递单元例如为IO hub集线器;可用于进行操作指令的传递(主要指将操作指令传递到内存操作单元),以及内存操作单元所读取出的数据的传递(主要指将读取出的数据传递到对应的装置),在此基础上数据传递单元还可以对接入的操作指令、输出的操作指令的传递顺序进行仲裁,以及在其所连接的本地目标存储器中存储数据。
在些实施例中,以第三装置A与第四装置B中均设置有目标存储器为例,请参考图11;其中,第三装置A包括:指定模块与目标存储器;第四装置B包括:指定模块与目标存储器。
第三装置A若存在目标数据X需要共享至第四装置B,第三装置A的指定模块先生成一个用于将目标数据X写入共享存储器31的操作指令RX,并将操作指令RX发送至内存操作单元32,内存操作单元32在接收到操作指令RX后,获取需要接收该操作指令RX的选定装置,选定装置包括多个第四装置B与第三装置A,内存操作单元32可以同时将操作指令RX(或者目标数据X)发送至第四装置B的指定模块,第四装置B的指定模块可直接将目标数据X存储到其所连接的目标存储器;后续第四装置B在需要使用目标数据X时,其指定从本地的目标存储器进行读取;比如图11中的第四装置B中包括一个I/O处理装置,I/O处理装置的指定模块连接到多个I/O单元,目标数据X可以是该I/O处理装置所连接的指定I/O单元所需的数据,也可以是指定I/O单元所连接的测试件所需的数据,该I/O处理装置可从本地目标存储器中读取出目标数据X并发送到指定I/O单元。
在一些实施例中,请参考图12,以第三装置A中未配置有目标存储器,即仅包含指定模块;第四装置B包括指定模块与目标存储器,第三装置A也可以将目标数据K存储到实时计算装置21中的目标存储器中,具体过程如下:
第三装置A需要将目标数据K共享至第四装置B时,生成一个用于将目标数据K写入共享存储器31的操作指令RK,并将操作指令RK发送至内存操作单元32,内存操作单元32在接收到操作指令RK后,获取需要接收该操作指令RK的选定装置,由于第三装置A中未配置目标存储器,则图12中内存操作单元32仅将操作指令RK(或者目标数据K)发送至第四装置B,第四装置B中的指定模块可直接将目标数据K存储到其所连接的目标存储器;后续第四装置B在需要使用目标数据K时,其指定模块从本地的目标存储器读取目标数据K。比如第三装置A为I/O处理装置,则其指定模块连接到多个I/O单元,目标数据K可以是指定I/O单元所生成的数据,也可以是指定I/O单元所连接的测试件所生成的数据。
需要说明的是,本实施例以及之后的实施例的附图中仅为示例性给出需要在传递的目标数据第三装置与第四装置,以及测试系统中装置的数量,并不以此为限,且对第三装置、第四装置的类型(即第三装置可以为实时计算装置或I/O处理装置,每个第四装置可以为实时计算装置或I/O处理装置)、装置中指定模块的结构不作任何限制。另外,附图中的线条一表示写入数据的路径、线条二表示内存操作单元向选定装置发送操作指令或者操作指令对应的目标数据的路径、线条三表示读取数据的路径。
本实施例中,对于无法从本地的目标存储器读取的数据或者没有配置本地目标存储器的装置,均需通过内存操作单元从共享存储器来读取所需的数据,下面分别进行说明,其中以第三装置和第四装置中均未配置本地目标存储器为例,即便第三装置和第四装置中均配置了本地目标存储器,也可以采用下述的方式从共享存储器来读取所需的数据。
第三装置将数据A1共享至第四装置,具体过程例如为:第三装置的指定模块在测试过程中可以产生需要发送至给第四装置的数据A1,并产生用于数据A1写入共享存储器31的操作指令RA1(可以是一个或多个操作指令),指定模块将操作指令RA1给到内存操作单元32,进而内存操作单元32可通过执行操作指令RA1将数据A1写入共享存储器31。
数据A1被写入共享存储器31之后,第四装置在需要读取数据A1时,其指定模块产生用于读取数据A1的操作指令RdA1(可以为一个或多个操作指令),并将操作指令RdA1给到内存操作单元32,进而,内存操作单元32可通过执行操作指令RdA1自共享存储器31将数据A1读取出来返回给第四装置的指定模块,由此第四装置完成数据A1的获取。
需要说明的是,本申请的测试系统中可以按需求来配置内存操作单元是否将目标数据发送至选定装置中进行本地存储;比如:内存操作单元仅将在至少两个实时计算装置之间共享的目标数据发送至需使用该目标数据的实时计算装置中进行本地存储,这些目标数据可以是实时计算装置中运行的测试模型之间需交互的数据;对实时计算装置需与I/O处理装置之间共享的目标数据,则不发送至I/O处理装置中进行本地存储。
在本申请中的第一或第二实施例中,内存操作单元接收来源于多个装置中任意一个装置(记作目标装置)的操作指令,操作指令用于向共享存储器写入目标数据或者读取共享存储器中至少部分已有的目标数据,内存操作单元执行目标装置发送的操作指令,若该操作指令用于向共享存储器写入目标数据,则该操作指令中包含所需写入的目标数据,内存操作单元执行该操作指令,将操作指令中包含的目标数据写入到共享存储器中;若该操作指令用于读取共享存储器中的至少部分已有的目标数据,则该操作指令中包含了所需读取的目标数据的标识信息,标识信息表征了该目标数据所源自的装置,内存操作单元执行该操作指令,读取与操作指令中的标识信息对应的目标数据,并将读取的目标数据反馈到发送该操作指令的目标装置;或者,该操作指令中包含了所需读取的目标数据位于共享存储器中的位置信息(例如为地址范围),内存操作单元执行该操作指令,读取共享存储器中该操作指令的位置信息指示的目标数据,并将读取的目标数据反馈到发送该操作指令的目标装置。
在一个例子中,测试系统中的各装置通过PCIe总线连接到内存操作单元,即内存操作单元通过PCIe连接器连接到各装置上,由此各装置可以将需要共享的目标数据映射为共享存储器中的一段地址,各装置可以通过访问本地内存数据的方式从共享存储器中读取数据,由此实现了各装置对同一个存储器数据的读写访问,实现了多个装置之间的目标数据的共享。
其中,内存操作单元用作标准PCIe设备,其能够将来多个装置中的目标装置的操作指令转换为高速串行信号,并通过高速串行总线将表征该操作指令的高速串行信号传输至内存操作单元,由内存操作单元执行该操作指令对共享存储器进行目标数据的读写操作。
一种实施例中,内存操作单元可采用FPGA实现。
上述第一实施例或第二实施例中的测试系统可以为HIL系统,下面以第一实施例中的测试系统为例,请参考图13,HIL系统包括:上述的共享内存单元3、工控机池5、至少一个控制模块6以及I/O池7。
工控机池5可以包括至少一个工控机51,I/O池7可以包括至少一个I/O单元1,各工控机51、I/O单元1可以设置在不同的机柜中,也可以设置在同一机柜中。具体的,工控机池5中工控机51的数量可以是固定的,也可以是可扩展的,工控机池5中的工控机51可设于同一机柜,也可设于不同机柜,I/O池7中I/O单元1的数量可以是固定的,也可以是可扩展的,I/O池7中的I/O单元1可设于同一机柜,也可以设置在不同的机柜中。
其中,工控机即为一种形式的实时计算装置,可以为板卡设于工控机柜,或者是一个单独的设备;控制模块即为一种形式的I/O处理装置。
一种举例中,工控机池5中包括可配置数量的至少一个工控机51(图中以工控机池5中设置了4个工控机51为例),即工控机池5中的工控机51的数量是可扩展的,其数量可以根据需求来配置的。其中,工控机池5中的工控机51之间相互通信连接,例如,除了利用共享内存单元实现数据共享之外,还可通过以太网通信连接在一起,以传递目标数据之外的其他数据。
一种举例中,I/O池7中包括可配置数量的至少一个I/O单元1(图中以I/O池7中设置了3个I/O单元1为例),即I/O池7中的I/O单元1的数量是可扩展的,其数量可以根据需求来配置的。其中,I/O池7中的I/O单元1之间相互通信连接。
控制模块6与工控机池5中的工控机51之间通信连接,控制模块6还分别与I/O池7中的各I/O单元1通信连接。其中,控制模块6可以为包括I/O控制器的计算机。
控制模块6与各I/O单元1连接为同一EtherCAT网络,其中,I/O单元1与控制模块6以级联的方式连接,并基于EtherCAT进行通信,采用EtherCAT基本能满足低延时的需求。此外,I/O单元也可插接到控制模块,例如通过控制模块的数据总线(例如PCIe总线)等连接至控制模块。
其中的工控机51,可理解为HIL系统中的实时仿真机RTPC的部分或全部。工控机51与控制模块6可以分别是不同的计算机,也可以是不同的电路板、电路等。
其中的I/O单元1,可理解为输入/输出单元。
具体的可理解为:I/O单元1满足以下至少之一:
能够相对于被测件8实现数据的输入;
能够相对于被测件8实现数据的输出;
能够相对于工控机51实现数据的输入;
能够相对于工控机51实现数据的输出;
其中,I/O单元1相对于被测件8所输入和/或输出的数据A,与I/O单元1相对于工控机所输入和/或输出的数据B,可以是相关的,也可以是无关的。
具体的,数据A与数据B可以是相同内容的不同形式的数据,例如自工控机51接收某内容的数字信号,发给被测件8的是同一内容的模拟信号,或者反过来,再例如,自工控机51接收注入故障前的信号,发给被测件8的是I/O单元1注入故障后的信号;
数据A与数据B也可以是相同内容相同形式的数据;
数据A与数据B还可以是不同内容的数据,例如数据A与与数据B分别为触发I/O单元1产生某Sign1信号的触发信号与该Sign1信号,再例如,I/O单元1需要自工控机51获取某条件信号才能仿真出需要发送给被测件8的Sing2信号,此时条件信号与Sign2信号分别为数据A与数据B;
I/O单元1可以指电路,也可以指电路板,还可以指含电路板及其他装配件的装置。
一种举例中,其中的I/O单元1既可经控制模块与工控机交互,也可直接或经交换矩阵与被测件(例如车辆的控制器)交互。
I/O单元1可以仅实现输入和/或输出功能,部分示例中,也可在输入和/或输出过程中对所传输的信号进行处理,例如做信号转换、故障模拟、信息仿真、信号生成、通断控制等。可见,不论是否还集成了其他功能,均可作为I/O单元1的一种实现方式。
其中的I/O单元1可以是I/O板卡,例如可以是支持以下至少之一功能的板卡:数字信号输入,模拟信号输入,数字信号输出,模拟信号输出,PWM信号输入,PWM信号输出,高边功率输出和低边功率输出。其中可进一步实现高速信号的采集和输出,此外,可根据需求实现板卡资源的灵活配置,该技术带来的板卡精度和采样频率指标都达到了行业领先水平。
其中的I/O板卡例如以下至少之一所示:AD PWM-IN板卡、DAC板卡、FIU板卡、PWM-OUT板卡、RELAY-IO板卡、RC板卡、PSI5&DSI3&SENT板卡、多总线板卡(Flexray/CANFD/LIN)、Eth(车载以大网)板卡等;
其中的I/O板卡还可例如以下至少之一专用板卡:电流输出板卡、热电偶板卡、电池模拟器、温度模拟器、电机板卡、IO_HUB板卡。
在一个例子中,HIL系统还可包括集群服务器,或者:多个装置中至少个装置(例如其中的一个实时计算装置)用于作为集群服务器,集群服务器用于确定各测试任务下的数据传输信息(例如数据传输关系),例如目标测试任务下的数据传输关系信息,数据传输关系信息用于确定出:用于执行目标测试任务的实时计算装置与I/O单元,例如,执行相应测试任务时,互相直接或间接共享目标数据的实时计算装置与I/O单元,再例如,执行相应测试任务时,互相直接或间接共享目标数据的实时计算装置,又例如,执行相应测试任务时,互相直接或间接共享目标数据的I/O单元。
在HIL系统执行目标测试任务时,目标数据是基于数据传输关系而在实时计算装置、I/O处理装置、I/O单元之间传输的。
在HIL系统中,由HIL系统中的集群服务器针对当前测试任务,确定至少部分I/O单元1与至少部分工控机51之间的数据传输关系。其中,集群服务器可以连接到各工控机51的一个计算机,或者任一工控机51被配置为集群服务器。
其中的数据传输关系可理解为:用于确定出在执行相应测试任务时,需要直接或间接互相共享数据的工控机51与I/O单元1,进一步的,至少可表示出:一个或多个工控机51(即至少部分工控机51)与一个或多个I/O单元1(即至少部分I/O单元1)之间允许传输数据的一种关系,即用于划定出允许传输数据的工控机51、I/O单元1。
一种举例中,数据传输关系可进一步确定其中工控机51传输而来的数据该同步至哪个工控机51,工控机51传输而来的数据该同步至哪个I/O单元1,即详细定义出工控机51与I/O单元1间的映射关系,再进一步的,数据传输关系可细致定义出工控机51中端口与I/O单元1的端口、通道间的映射关系;其中的端口可以指硬件端口,也可以指软件端口、地址等(例如工控机中运行的某模型的某个输出端口、输入端口);进而,在描述出映射关系的情况下,也即能够表示出允许传输数据的工控机51、I/O单元1。
另一举例中,数据传输关系主要用于划定允许传输数据的工控机51、I/O单元1的范围,至于每次传输数据时其中的工控机要传输至哪个I/O单元1、被测件或端口(I/O单元1或被测件8的端口),I/O单元1传输而来的数据要传输至哪个工控机51或工控机51的哪个端口,可由其他手段决定。
此外,若控制模块6为多个,不同控制模块6连接不同I/O单元1,则一种举例中,数据传输关系可理解为:至少用于在工控机51及控制模块6所连接的I/O单元1中,划定出允许传输数据的工控机51、I/O单元1的范围。
针对不同任务,可确定出不同的数据传输关系,不同任务可同时执行,也可先后执行。
集群服务器在确定至少部分I/O单元1与至少部分工控机51之间的数据传输关系后,基于该数据传输关系有多种方式完成I/O单元1与工控机51之间的数据传输,以集群服务器确定出了K个工控机51与L个I/O单元1之间的数据传输关系为例。
在一个例子中,集群服务器将该数据传输关系分别发送到K个工控机51,由此工控机51基于该数据传输关系,在需要获取目标数据时,可以知道去哪个I/O单元1的哪个I/O通道获取目标数据;在需要向被测件发送目标数据时,可以知道将目标数据发送到哪个I/O单元1的哪个I/O通道;而控制模块6与I/O单元1之间的连接关系是固定的,由此工控机51可以知道从哪个控制模块6获取所需的目标数据,也可以知道将目标数据发送到哪个控制模块6。具体的:各工控机51在需要向被测件发送下发信息时,基于该数据传输关系,指定用于接收各下发信息的I/O单元1,然后由控制模块6将各下发信息经过指定的I/O单元1发送到被测件。另外,被测件在需要向工控机51发送上报信息时,控制模块6通过L个I/O单元1接收上报信息,I/O单元1可以标记发送各上报信息的I/O单元1,由此各工控机51基于上述的数据传输关系接收来源于指定的I/O单元1的上报信息。
假设需要在一个工控机51和一个控制模块6所连接的I/O单元1之间进行数据传输,将工控机51记作A装置、控制模块6记作B装置。
例如,每个装置(包括上述的工控机51与控制模块6)的存储器中预设好每个装置的地址空间,A装置要把需要共享的目标数据传输给B装置时,可以将目标数据写到B装置的存储器中对应的地址空间,B装置可以定期从存储器中自己对应的地址空间获取数据,此时,若B装置要将获取的数据分发给I/O单元1,一种方案下,A装置可以在共享的目标数据中写入I/O单元1(或其I/O通道)的标识,B装置根据这个获取(或其I/O通道)的数据中所包含的标识进行分配;另一种方案下,B装置的不同I/O单元1可对应分配不同的地址子空间,A装置可以在共享目标数据时指示将目标数据写到相应的地址子空间,B装置只需从地址子空间读取出来就给到相应的I/O单元1。
A装置从B装置获取目标数据时,也可以基于数据传输关系,直接从B装置的相应地址空间或地址子空间拿数据,然后根据数据传输关系给到相应模型的相应端口;其中所说的模型可以指运行在A装置中的测试仿真模型。或者,
A装置从B装置获取目标数据时,还可以由B装置将目标数据写到A装置的相应地址空间,A装置可以定期从存储器中自己对应的地址空间拿到目标数据,此时,如果要将目标数据给到相应的模型及其端口;一种方案下,B装置可以在共享的目标数据中写入I/O单元1(或其I/O通道)的标识,A装置根据这个标识,以及数据传输关系知道I/O单元1(或其I/O通道)来的数据该给到哪个模型的哪个端口。
在另一个例子中,集群服务器将该数据传输关系分别发送到L个I/O单元1所连接的一个或多个控制模块6,各工控机51在需要向被测件发送下发信息时,直接将下发信息发送到控制模块6,由控制模块6基于该数据传输关系,将各下发信息经过指定的工控机51发送到被测件。同理,被测件在需要向工控机51发送上报信息时,控制模块6通过L个I/O单元1接收上报信息,控制模块6基于上述的数据传输关系,将来源于各I/O单元1的上报信息发送到指定的工控机51。
例如在执行某个测试任务的过程中,K个工控机51与L个I/O单元1用于对被测件8进行测试,L个I/O单元1连接到被测件8;数据传输关系限定了工控机51与I/O单元1之间的目标数据的流向,即源自被测件8或I/O单元1的需发送至工控机51的上报信息传输到I/O单元1后,各I/O单元1将上报信息发送到控制模块6,该数据传输关系决定了控制模块将源自各I/O单元的上报信息所需发送到的工控机51(或其端口);以及目标工控机产生的需发送至被测件8或I/O单元1的下发信息传输到控制模块后,该数据传输关系决定了控制模块将源自于各工控机51的下发信息发送到被测件8或I/O单元1,其中,被测件8可以通过不同的引脚接收不同信息。其中,工控机51在向控制模块6传输下发信息时,可以在下发信息中加入自身的身份标识或者接收该数据的I/O单元1的身份标识;I/O单元1在向控制模块6传输上报信息时,可以在上报信息中加入自身的身份标识或者接收该上报信息的工控机51的身份标识;由此控制模块6基于信息中所携带的标识与数据传输关系在工控机51与I/O单元1之间进行数据转发。
可见,利用控制模块6可实现工控机51与I/O单元1之间交互路径的可选择。
其中所涉及的端口可以指硬件端口,也可以指软件端口、端口地址等(例如工控机中运行的某模型的某个输出端口、输入端口)。
控制模块6可自集群服务器获取部分或全部数据传输关系,亦或用于确定数据传输关系的其他信息,该过程例如可经以太网获取。其中的集群服务器连接到各工控机51,用于向各工控机51传输测试相关的数据,以及配置控制模块6的数据传输关系。
此外,在同一时间,单个控制模块6所连接的I/O单元1,可能都用于同一测试任务,也可能部分用于一个测试任务,另部分用于其他测试任务,控制模块6可以分别或一并获取所需的数据传输关系。
此外,被测件与I/O单元之间也可设有其他转接电路、接口等等,例如DB9接口、EDAC接口、BOB模块等等。
需要说明的是,图13中以控制模块6的数量为一个举例,然不限于此,控制模块6的数量也可以为多个,每个控制模块6对应一个或多个I/O单元1,每个I/O单元1仅对应一个控制模块6,各控制模块6连接于对应的I/O单元1;针对当前测试任务,每个控制模块6可确定出与自身所对应的数据传输关系,以任意一个控制模块6为例,该控制模块6所确定的数据传输关系限定了至少部分工控机51与所有的目标I/O单元之间的数据传输关系,目标I/O单元为与该控制模块6所对应的I/O单元,即控制模块6确定了各目标I/O单元传输而来的数据该同步至哪个工控机51,工控机51传输而来的数据该同步至哪个目标I/O单元。其中,每个控制模块6与对应的I/O单元1可以采用级联的方式连接,如图14所示,以控制模块6的数量为2个、每个控制模块6对应于3个I/O单元1为例;或者每个控制模块6分别与对应的各I/O单元1直接连接,如图15所示,以控制模块6的数量为2个、每个控制模块6对应于多个I/O单元1为例。
本实施例中,各I/O单元1直接或间接连接到被测件8,被测件8的数量可以为一个或多个。在图13至图15中,以I/O单元1与被测件8直接连接为例,即被测件8通过连接器直接连接到各I/O单元1的端口上,实现信号的传输;不同I/O单元1可以连接到被测件8不同的引脚上,以传输不同的信息。在另一个例子中,还可以在HIL系统中设置交换矩阵,交换矩阵连接在I/O单元1与被测件8之间,即各I/O单元1通过交换矩阵间接连接到对应的被测件8。
从中可见,为了实现工控机、I/O单元、被测件间相对应的通信,实现目标数据的传输,在设有交换矩阵的情况下,既要对交换矩阵进行配置,也要对控制模块的数据传输关系进行配置。进而在工控机与被测件间实现测试所需的数据传输,例如工控机中仿真模型的端口与被测件的端口之间的数据传输。该方式下,被测件接入时的连接方式更灵活自由,只需要根据实际接入情况配置交换矩阵,例如在配置好控制模块6后,若未设置交换矩阵,则需要根据配置结果找到被测件该接入到哪些I/O单元,如何连接,在设置交换矩阵的情况下,则可更自由地将被测件接入到交换矩阵,然后只需对交换矩阵进行配置即可达成测试所需的数据传输。
多个装置2包括:HIL系统中的工控机51与控制模块6,即工控机51与控制模块6均连接到共享内存单元3的内存操作单元32,由此通过共享内存单元3将各工控机51与控制模块6之间进行星型连接。工控机51可以理解为一种形式的实时计算装置、控制模块6则是一种形式的I/O处理装置。
此外,一种示例中,目标数据可以包括主要在实时计算装置之间(例如第一实时计算装置与第二实时计算装置之间)共享的指定目标数据,实时计算装置往往配置有本地存储器(例如缓存DDR),为避免实时计算装置自共享内存单元读取数据的效率不高的问题,以第一实时计算装置、第二实时计算装置为例,共享内存单元还可用于:自第一实时计算装置收到写入的操作指令(用于在共享存储器写入指定目标数据的操作指令)时,在执行操作指令将指定目标数据写入共享存储器的同时,还可将该指定目标数据或对应的操作指令广播给第二实时计算装置,第二实时计算装置可将对应的指定目标数据存储在本地存储器,在需要使用指定目标数据时,第二实时计算装置可以直接自本地存储器读取出来,且其内容是与共享存储器保持一致的。该过程可有效提高实时计算装置读取数据的效率。当然,若I/O处理装置也配置有本地存储器,也可利用类似方式在本地读取数据。
需要说明的是,上述以测试系统为HIL系统为例,然不限于此,该测试系统也可以是其他应用场景中所使用的系统,例如测试系统可以是仿真注入系统,可实现虚拟视频的仿真注入,此时,实时计算装置也可能不仅仅是工控机,还可能是用于生成仿真视频图像的计算机(可理解为仿真服务器),可以通过I/O单元所连接的被测件中仿真注入虚拟视频。此外,测试系统所测试的被测件可以是ECU,也可以是被测台架,可以是用于车辆的ECU、测试台架等,也可以是无人机、航空器、船舶等的控制器、测试台架。
以上已详细描述了本发明的较佳实施例,但应理解到,若需要,能修改实施例的方面来采用各种专利、申请和出版物的方面、特征和构思来提供另外的实施例。
考虑到上文的详细描述,能对实施例做出这些和其它变化。一般而言,在权利要求中,所用的术语不应被认为限制在说明书和权利要求中公开的具体实施例,而是应被理解为包括所有可能的实施例连同这些权利要求所享有的全部等同范围。

Claims (13)

1.一种测试系统,其特征在于,包括:至少一个I/O单元、多个装置以及配置有共享存储器的共享内存单元;所述多个装置包括至少一个实时计算装置与至少一个I/O处理装置,所述I/O处理装置连接对应的所述I/O单元,所述I/O单元直接或间接连接到被测件;
所述装置用于基于CXL协议,利用所述共享内存单元对所述共享存储器进行操作,且至少部分所述装置之间通过所述共享内存单元对所述共享存储器的操作共享目标数据,所述目标数据为对所述被测件进行测试时需要在所述装置间共享的数据。
2.根据权利要求1所述的测试系统,其特征在于,所述装置通过基于目标协议的连接线连接到所述共享内存单元,所述目标协议非所述CXL协议。
3.根据权利要求2所述的测试系统,其特征在于,所述连接线为网线或者光纤。
4.根据权利要求2所述的测试系统,其特征在于,目标协议为以下任意之一:Aurora协议、以太网、IB协议、自定义协议。
5.根据权利要求2所述的测试系统,其特征在于,所述多个装置中的任意目标装置用于:产生基于所述CXL协议的目标操作指令,基于所述目标协议处理所述目标操作指令,得到目标报文,并通过所述连接线将所述目标报文传递至所述共享内存单元;
所述共享内存单元用于:接收到所述目标报文时,基于所述目标协议,自所述目标报文得到所述目标操作指令,并基于所述目标操作指令,对所述共享存储器进行操作。
6.根据权利要求5所述测试系统,其特征在于,
所述共享内存单元还用于:产生所述目标操作指令的响应数据,基于所述目标协议处理所述响应数据,得到响应报文,并通过所述连接线将所述响应报文传递至相应的装置;
所述目标装置还用于:接收到所述响应报文时,基于所述目标协议,自所述响应报文得到所述响应数据。
7.根据权利要求6所述的测试系统,其特征在于,所述装置包括:互连协议模块;
所述互连协议模块用于:将获取到的原始操作指令转换为基于所述CXL协议的所述目标操作指令,基于所述目标协议处理所述目标操作指令,得到目标报文,并通过所述连接线将所述目标报文传递至所述共享内存单元;所述原始操作指令用于在所述共享存储器读取或写入所述目标数据;
所述互连协议模块还用于接收到所述响应报文时,基于所述目标协议,自所述响应报文得到所述响应数据。
8.根据权利要求7所述的测试系统,其特征在于,所述互连协议模块包括:内容管理模块与第一传输控制模块;
所述内容管理模块用于将获取到的原始操作指令转换为基于所述CXL协议的所述目标操作指令;
所述第一传输控制模块用于基于所述目标协议处理所述目标操作指令,得到目标报文,并通过所述连接线将所述目标报文传递至所述共享内存单元;
所述第一传输控制模块还用于接收到所述响应报文时,基于所述目标协议,自所述响应报文得到基于所述CXL协议的所述响应数据;
所述内容管理模块还用于从所述基于CXL协议的所述响应数据中得到对应于所述原始操作指令的数据。
9.根据权利要求8所述的测试系统,其特征在于,所述共享内存单元包括:多个第二传输控制模块与内存读写模块,所述装置与所述第二传输控制模块一一对应且通过所述连接线连接;
所述第二传输控制模块用于接收到所述目标报文时,基于所述目标协议,自所述目标报文得到所述目标操作指令;
所述内存读写模块用于执行所述目标操作指令对所述共享存储器进行操作;
所述内存读写模块还用于产生所述目标操作指令的响应数据;
所述第二传输控制模块用于基于所述目标协议处理所述响应数据,得到响应报文,并通过所述连接线将所述响应报文传递至相应的装置。
10.根据权利要求5或6所述的测试系统,其特征在于,
所述目标装置用于:产生基于所述CXL协议的第一目标操作指令,基于所述目标协议处理所述第一目标操作指令,得到第一目标报文,并通过所述连接线将所述第一目标报文传递至所述共享内存单元,所述第一目标操作指令用于向所述共享存储器中写入第一目标数据;
所述共享内存单元用于:接收到所述第一目标报文时,基于所述目标协议,自所述第一目标报文得到所述第一目标操作指令,并执行所述第一目标操作指令向所述共享存储器中写入所述第一目标数据。
11.根据权利要求6所述的测试系统,其特征在于,所述目标装置用于:产生基于所述CXL协议的第二目标操作指令,基于所述目标协议处理所述第二目标操作指令,得到第二目标报文,并通过所述连接线将所述第二目标报文传递至所述共享内存单元,所述第二目标操作指令用于从所述共享存储器中读取第二目标数据;
所述共享内存单元用于:
接收到所述第二目标报文时,基于所述目标协议,自所述第二目标报文得到所述第二目标操作指令,并执行所述第二目标操作指令从所述共享存储器中读取所述第二目标数据;
以所述第二目标数据作为所述第二目标操作指令的响应数据。
12.根据权利要求5所述的测试系统,其特征在于,
所述目标装置用于:产生基于所述CXL协议的第三目标操作指令,基于所述目标协议处理所述第三目标操作指令,得到第三目标报文,并通过所述连接线将所述第三目标报文传递至所述共享内存单元,所述第三目标操作指令用于获取所述共享存储器中的目标地址的写入权限;
所述共享内存单元用于:接收到所述第三目标报文时,基于所述目标协议,自所述第三目标报文得到所述第三目标操作指令;
确定是否需要发出侦听请求;
若需要发出侦听请求,向所述多个装置中的至少一个指定装置发送侦听请求,并在接收到所述指定装置反馈的侦听响应信息后,执行第三目标操作指令。
13.根据权利要求1所述的测试系统,其特征在于,所述测试系统为HIL测试系统。
CN202410146029.4A 2023-03-06 2024-02-01 一种测试系统 Pending CN118151626A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN202310214698 2023-03-06
CN2023102146986 2023-03-06
CN202311414735 2023-10-27
CN2023114304340 2023-10-27
CN2023114147354 2023-10-27
CN202311430434 2023-10-27

Publications (1)

Publication Number Publication Date
CN118151626A true CN118151626A (zh) 2024-06-07

Family

ID=91284307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410146029.4A Pending CN118151626A (zh) 2023-03-06 2024-02-01 一种测试系统

Country Status (1)

Country Link
CN (1) CN118151626A (zh)

Similar Documents

Publication Publication Date Title
CN117311313B (zh) 一种测试方法及系统、计算处理端以及可读存储介质
CN118012007A (zh) 一种测试系统
US12056528B2 (en) System for cooperation of disaggregated computing resources interconnected through optical circuit, and method for cooperation of disaggregated resources
US20200167302A1 (en) Communications for field programmable gate array device
CN105630727A (zh) 多SoC节点之间的访问方法、装置和系统
Kwon et al. Gen-z memory pool system architecture
CN117609137A (zh) 一种基于复杂片内多种高速接口通信测试系统
CN118151626A (zh) 一种测试系统
CN112256426A (zh) 具有总线仲裁器的主从通信系统及通信方法
CN109491949B (zh) 基于Zynq的动态可重构框架及方法
CN116483259A (zh) 一种数据处理方法以及相关装置
JP2014170361A (ja) 情報処理装置、バス分割方法、及びバス分割プログラム
CN115934436A (zh) 一种光通信总线测试板卡
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN117891236A (zh) 一种测试系统
KR20180129146A (ko) 컴퓨터간 메모리 공유 장치 및 방법
CN115114192A (zh) 存储器接口、功能核、众核系统和存储数据访问方法
TW201405315A (zh) 支援雙主控裝置的資料路由系統
CN220673779U (zh) 一种车载以太网仿真装置
CN114301853B (zh) 一种支持混合拓扑结构的车载光纤交换机
CN116048893B (zh) 光纤总线接口的测试方法及相关设备
US9336174B1 (en) Dynamic interface model
CN115905036A (zh) 一种数据访问系统、方法及相关设备
CN118159919A (zh) 测试系统
CN118503174A (zh) 硬盘连接拓扑识别方法、主板、硬盘背板和可读存储介质

Legal Events

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