CN117093438A - 测试*** - Google Patents
测试*** Download PDFInfo
- Publication number
- CN117093438A CN117093438A CN202311126340.4A CN202311126340A CN117093438A CN 117093438 A CN117093438 A CN 117093438A CN 202311126340 A CN202311126340 A CN 202311126340A CN 117093438 A CN117093438 A CN 117093438A
- Authority
- CN
- China
- Prior art keywords
- memory
- operation instruction
- subunit
- memory operation
- instruction
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 241
- 230000015654 memory Effects 0.000 claims abstract description 528
- 238000003860 storage Methods 0.000 claims abstract description 95
- 230000005540 biological transmission Effects 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 15
- 230000003993 interaction Effects 0.000 abstract description 9
- 230000003247 decreasing effect Effects 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 239000011159 matrix material Substances 0.000 description 16
- 238000004891 communication Methods 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- LMDZBCPBFSXMTL-UHFFFAOYSA-N 1-ethyl-3-(3-dimethylaminopropyl)carbodiimide Chemical compound CCN=C=NCCCN(C)C LMDZBCPBFSXMTL-UHFFFAOYSA-N 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric 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/0213—Modular 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Tests Of Electronic Circuits (AREA)
- Multi Processors (AREA)
Abstract
本发明实施例提供了一种测试***,涉及测试技术领域。该***包括:共享内存单元与多个装置;共享内存单元包括:多个内存操作子单元与多个存储器,多个装置包括至少一个实时计算装置与至少一个I/O装置,实时计算装置与I/O装置均能产生操作指令,多个内存操作子单元中的任一第一内存操作子单元用于:获取当前操作指令;在当前操作指令为用于对第一内存操作子单元所连接的第一存储器的存储地址进行操作的第一操作指令时,通过执行第一操作指令,与第一存储器交互对应于第一操作指令的第一目标数据。本发明有助于在测试***中灵活扩展I/O装置与实时计算装置的规模,便于增减内存容量和带宽,对于大规模的I/O装置与实时计算装置之间的数据交互,对器件的要求更低。
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测试***趋向于集群化进行发展,在集群化的HIL测试***中,首先需要解决的就是内存共享的问题。
发明内容
本发明的目的是提供了一种测试***,即将一个大的共享内存单元划分为了多个共享内存节点,多个内存操作子单元之间可以直接或间接的通信连接,即实现了集中式共享内存的分布式内存方案,从而有助于在测试***中灵活扩展I/O装置与实时计算装置的规模,便于增减内存容量和带宽,对于大规模的I/O装置与实时计算装置之间的数据交互,对器件的要求更低。
为实现上述目的,本发明提供了一种测试***,所述测试***为HIL***,包括共享内存单元与多个装置;所述共享内存单元包括:多个内存操作子单元与多个存储器,每个所述内存操作子单元连接到至少一个所述存储器;所述多个装置包括至少一个实时计算装置与至少一个I/O装置,所述I/O装置直接或间接连接到至少一个被测件;所述实时计算装置与所述I/O装置均能产生操作指令,所述操作指令用于表示相应的存储地址需要进行操作;各所述装置之间通过所述共享内存单元对存储器的操作而传输目标数据;所述目标数据包括HIL测试过程中需在所述实时计算装置与所述I/O装置之间传递的数据;所述多个内存操作子单元中的任一第一内存操作子单元用于:获取当前操作指令;在所述当前操作指令为用于对所述第一内存操作子单元所连接的第一存储器的存储地址进行操作的第一操作指令时,通过执行所述第一操作指令,与所述第一存储器交互对应于所述第一操作指令的第一目标数据。
在一个实施例中,所述第一内存操作子单元还用于:在所述当前操作指令为用于对所述多个存储器中的第二存储器的存储地址进行操作的第二操作指令时,将所述第二操作指令发送到所述第一内存操作子单元之外的其他所述内存操作子单元,以使所述第二操作指令最终被传递至所述第二存储器连接的第二内存操作子单元,以利用所述第二内存操作子单元执行所述第二操作指令。
在一个实施例中,所述多个内存操作子单元依次级联;所述第一内存操作子单元具体用于:接收级联的所述内存操作子单元发送的所述当前操作指令;和/或:在所述当前操作指令为所述第二操作指令时,将所述第二操作指令发送至级联的所述内存操作子单元。
在一个实施例中,依据所述多个内存操作子单元级联的次序,所述多个内存操作子单元对应的所述存储器的存储地址的依次变大或变小;所述第一内存操作子单元用于在所述当前操作指令为所述第二操作指令时,将所述第二操作指令所需操作的存储地址与所述第一内存操作子单元连接的所述存储器的存储地址进行对比,确定将所述第二操作指令发送至上一级的所述内存操作子单元或下一级的所述内存操作子单元,并进行发送。
在一个实施例中,所述第一内存操作子单元具体用于:在所述当前操作指令为所述第二操作指令时,基于所述第二操作指令,在所述多个内存操作单元中确定所述第二内存操作子单元;在预设的若干传输路径信息中,确定所述第一内存操作子单元与所述第二内存操作子单元的传输路径信息;每个所述传输路径信息表征了所述操作指令自相应的一个所述内存操作子单元的一个端口传递至另一所述内存操作子单元的一个端口的路径;基于所述第一内存操作子单元与所述第二内存操作子单元的传输路径信息,发出所述第二操作指令,以使所述第二内存操作子单元能够获取并执行所述第二操作指令。
在一个实施例中,任意两个所述内存操作子单元之间均通过相应端口直接连接,所述若干传输路径信息为表征所述多个内存操作子单元之间的连接关系的连接路由表。
在一个实施例中,若所述第一操作指令的数量为多个,则所述第一内存操作子单元还用于将从所述装置获取到的所述第一操作指令与从所述内存操作子单元获取到的所述第一操作指令的到达次序进行对比后,依次进行执行。
在一个实施例中,所述第一内存操作子单元用于将从所述装置获取到的所述第一操作指令按照到达次序进行排序;所述第一内存操作子单元还用于将排序后的所述第一操作指令与从所述内存操作子单元获取到的所述第一操作指令的到达次序进行对比后,依次进行执行。
在一个实施例中,若所述第一操作指令的数量为多个,则所述第一内存操作子单元用于根据各所述第一操作指令的时间戳,确定多个所述第一操作指令的到达次序。
在一个实施例中,发出所述当前操作指令的当前装置用于:若所述当前操作指令的操作为写操作,则向所述当前装置所连接的所述内存操作子单元发送所述当前操作指令之前,判断获取所述当前操作指令所操作的存储地址的操作权限是否成功;并在获取所述操作权限成功时,将所述当前操作指令发送到所述当前装置所连接的所述内存操作子单元;在确定所述当前操作指令被执行成功,或者写入的数据量达到设定的数据写入量时,释放所述操作权限。
在一个实施例中,所述测试***还包括:分别设置在各所述内存操作子单元中的至少一个状态寄存器;每个所述状态寄存器与其所位于的所述内存操作子单元的所述存储器中的存储地址对应;所述当前装置用于:读取与所述当前操作指令所操作的存储地址对应的所述状态寄存器所指示的存储地址状态;若所述存储地址状态指示所述当前操作指令所操作的存储地址处于可写状态,将所述存储地址状态修改为指示所述当前操作指令所操作的存储地址处于不可写状态,确定获取所述操作权限成功;若所述存储地址状态指示所述当前操作指令所操作的存储地址处于不可写状态,确定获取所述操作权限失败。
在一个实施例中,所述第一内存操作子单元用于在执行用于写入所述第一目标数据的所述第一操作指令,将所述第一目标数据写入所述第一存储器后,以所述第一目标数据的写入结果作为响应数据反馈至发送所述第一操作指令的所述装置,或者从所述第一存储器中读取所述第一目标数据作为响应数据反馈至发送所述第一操作指令的所述装置;所述第一内存操作子单元用于在执行用于读取所述第一目标数据的所述第一操作指令,自所述第一存储器读取出所述第一目标数据后,以读取出的所述第一目标数据作为响应数据反馈至发送所述第一操作指令的所述装置。
附图说明
图1是根据本发明第一实施例中的测试***的示意图,其中测试***中任意两个内存操作子单元之间均通过相应端口直接连接;
图2是根据本发明第一实施例中的测试***的示意图,其中测试***中多个内存操作子单元依次级联;
图3是图2中测试***的内存共享单元包括三个内存操作子单元的示意图;
图4是根据本发明第一实施例中的测试***为HIL***的示意图;
图5是根据本发明第二实施例中的内存操作子单元进行两级仲裁的示意图;
图6是根据本发明第二实施例中的测试***中的内存操作子单元的一种结构示意图;
图7是根据本发明第三实施例中的测试***的示意图。
具体实施方式
以下将结合附图对本发明的各实施例进行详细说明,以便更清楚理解本发明的目的、特点和优点。应理解的是,附图所示的实施例并不是对本发明范围的限制,而只是为了说明本发明技术方案的实质精神。
在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
在整个说明书中对“一个实施例”或“一实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一实施例”中的出现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
如该说明书和所附权利要求中所用的单数形式“一”和“所述”包括复数指代物,除非文中清楚地另外规定。应当指出的是术语“或”通常以其包括“或/和”的含义使用,除非文中清楚地另外规定。
在以下描述中,为了清楚展示本发明的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“上”、“下”等词语理解为方便用语,而不应当理解为限定性词语。
在集群化的HIL测试***中,各工控机与I/O装置之间通过集中式内存的方式连接,工控机与I/O装置之间通过访问集中式内存进行信息交互,一般采用CC一致性协议来实现,但是这种技术往往掌握在CPU厂商手中,并没有开放使用。已有的开放协议,例如AXI/CXL,虽然支持一致性,但是所支持的器件类型受限,不适用于大规模内存级联的场景。基于上述技术问题,申请人提出了本申请的技术方案。
本发明第一实施方式涉及一种测试***,例如为HIL硬件在环测试***,可用于对车辆(包括但不限于新能源车辆、燃油车等)中的ECU、域控制器等被测件DUT进行测试,车辆常见的被测件例如整车控制器、电池管理***的控制器、电驱控制器、车身控制器、底盘悬架控制器、辅助驾驶的控制器等,测试项目包括但不限于多种场景下的运行稳定性测试、控制算法测试等。
该测试***包括:多个装置与共享内存单元,共享内存单元包括:多个内存操作子单元与多个存储器,每个内存操作子单元连接到至少一个存储器,各存储器仅连接到一个内存操作子单元。内存操作子单元之间直接或间接通信连接,每个内存操作子单元连接到一个或多个装置。
本实施例中共享内存单元中的多个内存操作子单元之间的连接方式可以有多种,例如依次级联连接、两两相互连接以及树状连接等。
测试***中的多个装置包括至少一个实时计算装置与至少一个I/O装置,I/O装置直接或间接连接到至少一个被测件;实时计算装置与I/O装置均能产生操作指令,操作指令用于表示相应的存储地址需要进行操作;各装置之间通过共享内存单元对存储器的操作而传输目标数据;目标数据包括HIL测试过程中需在实时计算装置与I/O装置之间传递的数据。
其中,实时计算装置可以是配置有CPU的计算机设备,或者一块配置有CPU的电路板等,同理I/O装置中的控制模块也可以是配置有CPU、MCU或FPGA的计算机设备,或者一块配置有CPU、MCU或FPGA的电路板等。
以多个内存操作子单元中的任意一个内存操作子单元(记作第一内存操作子单元)为例:第一内存操作子单元用于:
获取当前操作指令;
在当前操作指令为用于对第一内存操作子单元所连接的第一存储器的存储地址进行操作的第一操作指令时,通过执行第一操作指令,与第一存储器交互对应于第一操作指令的第一目标数据。
具体的,第一内存操作子单元可以从所连接的装置或者其他内存操作子单元获取待执行的当前操作指令,当前操作指令可用于写入或读取数据。随后确定当前操作指令是否用于对第一内存操作子单元所连接的第一存储器的存储地址进行操作。例如,第一内存操作子单元可以通过将当前操作指令所操作的存储地址与第一存储器的存储地址范围进行对比,若当前操作指令所操作的存储地址在该第一存储器的存储地址范围内,则确定出当前操作指令为第一操作指令;若当前操作指令所操作的存储地址在该第一存储器的存储地址范围外,则确定当前操作指令为第二操作指令。
若当前操作指令为用于对第一内存操作子单元所连接的第一存储器的存储地址进行操作的第一操作指令,第一内存操作子单元可以立即执行或者到了设定时机后执行该第一操作指令,对第一存储器进行操作,与第一存储器交互对应于第一操作指令的第一目标数据。其中,若第一存储器包含多个存储器;第一操作指令可以用于对第一内存操作子单元所连接的第一存储器中的一个或多个存储器进行操作,或者针对某个存储器中的一段内存进行操作。
第一操作指令可以是写入或读取第一目标数据的操作指令;若第一操作指令为写入第一目标数据的操作指令,则第一内存操作子单元从第一操作指令中获取第一目标数据,并将第一目标数据写入到第一存储器,并在将第一目标数据写入第一存储器后,以第一目标数据的写入结果(例如写入成功、写入失败)作为响应数据反馈至发送第一操作指令的装置,或者从第一存储器中读取第一目标数据作为响应数据反馈至发送第一操作指令的装置。
若第一操作指令为读取第一目标数据的操作指令,则第一内存操作子单元执行第一操作指令,从第一存储器中读取第一目标数据,并在自第一存储器读取出第一目标数据后,以读取出的第一目标数据作为响应数据反馈至发送第一操作指令的装置。
另外,响应数据可以按照第一操作指令被传输至第一内存操作子单元相反的路径被返回至发送第一操作指令的装置。
其中,若发送该第一操作指令的装置为第一内存操作子单元所连接的装置,则第一内存操作子单元可以直接将第一目标数据发送至该装置;若发送该第一操作指令的装置不是第一内存操作子单元所连接的装置,则第一内存操作子单元可以在第一目标数据中加入用于接收第一目标数据的装置的身份ID信息,例如为编号或者地址;随后再通过直接或间接连接的其他内存操作子单元将该第一目标数据反馈至发出第一操作指令的装置。例如,第一内存操作子单元在获取每个响应数据后,先判断该响应数据所指向的装置(即发出第一操作指令的装置)是否为自身所连接的装置,若是,则第一内存操作子单元可以直接将响应数据发送至该装置;若不是,则第一内存操作子单元确定出接收该响应数据的装置(即发出第一操作指令的装置)所连接的第二内存操作子单元,将响应数据直接或间接发送第二内存操作子单元,由第二内存操作子单元将反馈至发出第一操作指令的装置。
在一个例子中,若第一操作子单元中的第一操作指令的数量为多个,则第一内存操作子单元还用于将从装置获取到的第一操作指令与从内存操作子单元获取到的第一操作指令的到达次序进行对比后,依次进行执行。例如第一操作子单元记录获取到的每个操作指令的时间戳,由此能够确定出各第一操作指令的到达次序。其中的时间戳可用于表示产生相应操作指令的时间。
在另一个例子中,第一内存操作子单元用于按照到达次序将所接收到的操作指令进行排队,并依次判断操作指令为第二操作指令或第一操作指令。即第一内存操作子单元按照各操作指令的到达顺序依次进行执行或者转发,以使得各操作指令被及时的转发或执行。
需要说明的是,第一内存操作子单元接收到的一个操作指令所指示操作的存储器可以为同一个内存操作子单元所连接的一个或多个存储器;还可以是不同内存操作子单元所连接的多个存储器,此时第一内存操作子单元在执行该操作指令的同时,将该操作指令转发到该操作指令所操作的其他存储器所连接的内存操作子单元。
第一内存操作子单元在当前操作指令为用于对多个存储器中的第二存储器的存储地址进行操作的第二操作指令时,将第二操作指令发送到第一内存操作子单元之外的其他内存操作子单元,以使第二操作指令最终被传递至第二存储器连接的第二内存操作子单元,以利用第二内存操作子单元执行第二操作指令。其中,第一内存操作子单元具体用于:
在当前操作指令为第二操作指令时,基于第二操作指令,在多个内存操作单元中确定第二内存操作子单元;例如每个内存操作子单元中预存了所有的内存操作子单元所能操作的存储地址范围,由此第一内存操作子单元可以通过将当前操作指令所操作的存储地址与所有的内存操作子单元所能操作的存储地址范围分别进行对比,确定出当前操作指令为第二操作指令时所操作的存储器连接到的多个内存操作子单元中的第二内存操作子单元。
第一内存操作子单元中预设了若干传输路径信息,每个传输路径信息表征了操作指令自相应的一个内存操作子单元的一个端口传递至另一内存操作子单元的一个端口的路径,由此在确定出第二内存操作子单元后,可以从这若干传输路径信息中,确定第一内存操作子单元与第二内存操作子单元的传输路径信息,确定出的传输路径信息即表征了在第二操作指令如何从第一内存操作子单元传输到第二内存操作子单元,由此第一内存操作子单元可以基于第一内存操作子单元与第二内存操作子单元的传输路径信息,发出第二操作指令,其中第二操作指令中可以携带该传输路径信息,由此每个接收到第二操作指令的内存操作子单元可以基于该传输路径信息传输第二操作指令,直至第二操作指令被传输至第二内存操作子单元,由此第二内存操作子单元能够获取并执行第二操作指令。
在一个例子中,请参考图1,该测试***包括:多个装置1与共享内存单元2,共享内存单元2包括:多个内存操作子单元21(以内存操作子单元21为三个为例)与多个存储器22,任意两个内存操作子单元21之间均通过相应端口直接连接,每个内存操作子单元21连接到至少一个存储器22,各存储器22仅连接到一个内存操作子单元21。
每个内存操作子单元21连接到多个装置1,每个装置1连接到单个内存操作子单元21,各装置1直接或间接连接到内存操作子单元21,图1中以各装置1直接连接到内存操作子单元21为例;其中存储器22可以为单个DDR存储器或者包括多个DDR存储器的存储池,部分或全部DDR存储器可设于一个机柜中,DDR存储器也可以是跨机柜的,例如分布于不同机柜。
上述的若干传输路径信息为表征多个内存操作子单元21之间的连接关系的连接路由表,连接路由表即包含了任意两个设备之间的端口是如何连接,由此第一内存操作子单元可以通过查询该连接路由表,确定出第一内存操作子单元与第二内存操作子单元的传输路径信息。
下面以测试***中的多个内存操作子单元依次级联为例进行说明。
请参考图2,该测试***包括:多个装置1与共享内存单元2,共享内存单元2包括:多个内存操作子单元21与多个存储器22,多个内存操作子单元21依次级联,每个内存操作子单元21连接到至少一个存储器22,各存储器22仅连接到一个内存操作子单元21。
每个内存操作子单元21连接到多个装置1,每个装置1连接到单个内存操作子单元21,各装置1直接或间接连接到内存操作子单元21,图2中以各装置1直接连接到内存操作子单元21为例;其中存储器22可以为单个DDR存储器或者包括多个DDR存储器的存储池,部分或全部DDR存储器可设于一个机柜中,DDR存储器也可以是跨机柜的,例如分布于不同机柜。
图2的测试***可以为HIL***,此时多个装置1包括:HIL***中所包括的多个工控机与至少一个I/O装置,I/O装置用于直接或间接连接到被测件,每个I/O装置包括:控制模块以及分别与控制模块通信连接的多个I/O单元,I/O单元用于直接或间接连接到被测件。其中的工控机即为一种形式的实时计算装置。
此时,每个内存操作子单元21连接到的多个装置1包括至少一个工控机与至少一个I/O装置,如图3所示,以包括三个内存操作子单元21的内存共享单元2为例,每个内存操作子单元21连接到X个I/O装置、Y个工控机以及M个存储器22,其中X≥1、Y≥1、M≥1,且X、Y、M均为整数。
本实施例中,多个装置1均连接到共享内存单元2,由此通过共享内存单元2将多个装置1之间进行星型连接,即将工控机与I/O装置之间进行星型连接。
在本实施例中,每个内存操作子单元21与其所连接的存储器22以及装置1(包括工控机与I/O装置)可以看做一个共享内存节点,即将一个大的共享内存单元划分为了多个共享内存节点,通过多个内存操作子单元21的依次级联,将多个共享内存节点之间进行级联,即实现了集中式共享内存内的级联方案,每个共享内存节点可以支持多个I/O装置、多个工控机且可以外挂多个存储器22;由此在测试***中,可通过新增共享内存节点灵活扩展I/O装置与工控机的规模,便于增减内存容量和带宽,对于大规模的I/O装置与工控机之间的数据交互,对器件的要求更低。其中,I/O装置与工控机之间所传输的数据是基于内存操作子单元对存储器的操作结果传输的。
下面针对级联的多个共享内存节点之间的目标数据传输进行详细说明,其中以多个内存操作子单元中的一个内存操作子单元(第一内存操作子单元)为例。
第一内存操作子单元从连接的从装置1或者级联的内存操作子单元21接收当前操作指令,当前操作指令可能来源于其所连接的装置1(本共享内存节点)或者级联的其他内存操作单元21(即其他共享内存节点);第一内存操作子单元先判断当前操作指令是否用于对本共享内存节点内的存储器进行操作,若该操作指令用于对本共享内存节点内的存储器进行操作,即该操作指令为第一操作指令,则可以直接第一操作指令,与第一存储器交互对应于第一操作指令的第一目标数据。
若当前操作指令不是用于对本共享内存节点内的存储器进行操作,即当前操作指令为第二操作指令,则将第二操作指令发送至级联的内存操作子单元;比如,每个内存操作子单元21中存储了所有的内存操作子单元21所对应的存储器22的存储地址范围,由此第一内存操作子单元可以通过对比,确定出该第二操作指令向上级的内存操作子单元21进行传输,或者向下级的内存操作子单元21进行传输,一个第二操作指令可能被传输一次或多次。
在一个例子中,依据多个内存操作子单元级联的次序,多个内存操作子单元对应的存储器的存储地址的依次变大或变小。第一内存操作子单元用于在当前操作指令为第二操作指令时,将第二操作指令所需操作的存储地址与第一内存操作子单元连接的存储器的存储地址进行对比,确定将第二操作指令发送至上一级的内存操作子单元或下一级的内存操作子单元,并进行发送,可见,此时内存操作子单元也可以仅存储自身的存储地址范围。举例来说,多个内存操作子单元21中级联的首个内存操作子单元21至最后一个内存操作子单元21,按照顺序从小到大进行存储器22的地址分配。由此,第一内存操作子单元在第二操作指令所需操作的存储地址比第一内存操作子单元所连接的第一存储器的存储地址范围低时,将该第二操作指令发送到上一级的内存操作子单元21;在第二操作指令所需操作的存储地址比第一内存操作子单元所连接的第一存储器的存储地址范围高时,将该第二操作指令发送到下一级的内存操作子单元21。
即将一个大的共享内存单元划分为了多个共享内存节点,通过多个内存操作子单元的依次级联,将多个共享内存节点之间进行级联,即实现了集中式共享内存内的级联方案,每个共享内存节点可以支持多个I/O装置、多个工控机且可以外挂多个存储器。
本实施例中,每个内存操作子单元21所接收到的操作指令(来源于装置1或者其他的内存操作子单元21),均由其中一个装置1产生并发出,以发送一个当前操作指令的当前装置为例,该当前装置用于:
若当前操作指令的操作为写操作,则向当前装置所连接的内存操作子单元21发送当前操作指令之前,判断获取当前操作指令所操作的存储地址的操作权限是否成功;并在获取操作权限成功时,将当前操作指令发送到当前装置所连接的内存操作子单元21。具体的,当前装置在生成的当前操作指令为用于写入数据的操作指令时,先尝试获取当前操作指令所操作的存储地址的操作权限,该操作权限即为向当前操作指令所操作的存储地址写入数据的权限;若获取操作权限成功,当前装置将当前操作指令发送到当前装置所连接的内存操作子单元21;若获取操作权限失败,当前装置则可以在间隔设定时间后再次尝试获取当前操作指令所操作的存储地址的操作权限。
测试***还包括:分别设置在各内存操作子单元21中的至少一个状态寄存器;每个状态寄存器与其所位于的内存操作子单元21的存储器中的存储地址对应;每个内存操作子单元21中的状态寄存器的数量可以为一个或多个,一个状态寄存器可以对应于其所位于的内存操作子单元21的一个存储器的全部存储地址,或者对应于其所位于的内存操作子单元21的存储器中的一段存储地址,又或者对应于其所位于的内存操作子单元21的多个存储器的全部存储地址,具体可以按需进行划分,由此每个内存操作子单元21中的存储器的每段存储地址均有其对应的状态寄存器,各状态寄存器用于表征其所对应的存储器的存储地址的存储地址状态,即其所对应的存储器的存储地址的操作权限;例如状态寄存器为0时,表征其所对应的存储器的存储地址的存储地址状态为可写状态,即其所对应的存储器的存储地址的操作权限未被任一装置1所获取;状态寄存器为1时,表征其所对应的存储器的存储地址的存储地址状态为不可写状态,即其所对应的存储器的存储地址的操作权限已被一个装置1所获取。由此,通过硬件锁的方式,管理存储器的存储地址的操作权限,并各装置在获取了操作权限后,才能向内存操作子单元发出操作指令,避免操作指令的拥堵,有助于提升测试***整体的数据交互效率。
在一个例子中,当前装置在需要获取当前操作指令所操作的存储地址的操作权限时,先读取与当前操作指令所操作的存储地址对应的状态寄存器所指示的存储地址状态;若存储地址状态指示当前操作指令所操作的存储地址处于可写状态,将存储地址状态修改为指示当前操作指令所操作的存储地址处于不可写状态,确定获取操作权限成功,比如当前装置读取与当前操作指令所操作的存储地址对应的状态寄存器的值为0(指示存储地址状态为可写状态),当前装置将状态寄存器的值改写为1(指示存储地址状态为不可写状态),当前装置获取操作权限成功;随后将当前操作指令发送到当前装置所连接的内存操作子单元21,由内存操作子单元21继续对当前操作指令进行处理,具体可参见前述内容在此不再赘述。若存储地址状态指示当前操作指令所操作的存储地址处于不可写状态,确定获取操作权限失败,则可以在间隔设定时间后再次尝试获取当前操作指令所操作的存储地址的操作权限。
在另一个例子中,当前装置在需要获取当前操作指令所操作的存储地址的操作权限时,直接尝试向与当前操作指令所操作的存储地址对应的目标状态寄存器中写入第一预设值(例如为1),若目标状态寄存器中当前为第一预设值,则当前设备无法向目标状态寄存器中写入第一预设值,若目标状态寄存器中当前为第二预设值(例如为0),则当前设备可向目标状态寄存器中写入第一预设值。随后当前设备读取目标状态寄存器中的值,以确定目标状态寄存器中是否被当前装置写入第一预设值,若在该状态寄存器中读取到被当前装置写入第一预设值,则确定获取当前操作指令所操作的存储地址的操作权限成功;若未在该状态寄存器中读取到被当前装置写入第一预设值,则确定获取当前操作指令所操作的存储地址的操作权限失败,则可以在间隔设定时间后再次尝试向与当前操作指令所操作的存储地址对应的目标状态寄存器中写入第一预设值。
另外,当前装置在确定当前操作指令被执行成功,或者写入的数据量达到设定的数据写入量时,释放操作权限;释放当前操作指令所操作的存储地址的操作权限的方式例如为:将与当前操作指令所操作的存储地址对应的状态寄存器所指示的存储地址状态修改为可写状态。
在一个例子中,当前操作指令在被一个内存操作子单元21(可能是当前装置所连接的内存操作子单元21,也可能是其他的内存操作子单元21)执行后,其可以在执行当前操作指令向当前操作指令所操作的存储地址中写入数据后,读取该存储地址中的数据,若读取到当前操作指令所要写入的目标数据,则确定当前操作指令被执行成功;若未读取到当前操作指令所要写入的目标数据,则确定当前操作指令未被执行成功;由执行当前操作指令的内存操作子单元21向当前装置反馈执行结果,或者当前装置也可以直接通过读取当前操作执行所需操作的存储地址中的数据来确定当前操作执行是否被执行成功。
在另一个例子中,还可以配置内存操作子单元21每次可向存储器中写入数据的上限值即数据写入量。内存操作子单元21在执行当前操作指令时,在确定写入的数据量达到设定的数据写入量时,便停止写入数据,由内存操作子单元21向当前装置反馈当前操作指令中数据的写入量达到设定的数据写入量的提示信息;或者,当前装置通过读取当前操作指令所需操作的存储地址中的数据来确定写入的数据量是否达到设定的数据写入量,当前操作指令中剩余未写入的数据,由当前装置在下一次获取当前操作指令所需操作的存储地址的操作权限后继续写入,写入的数据量的上限值仍然为设定的数据写入量。
在一个例子中,各装置1通过PCIe总线连接到共享内存单元2,即共享内存单元2通过PCIe连接器连接到各装置1上,由此各装置1可以将需要共享的目标数据映射为存储器22中的一段地址,各装置1可以通过访问本地内存数据的方式从存储器22中读取数据,由此实现了各装置1对同一个存储器数据的读写访问,实现了多个装置1之间的目标数据的共享。
其中,共享内存单元2用作标准PCIe设备,其能够将来自多个装置1中的任意一个设备的操作指令转换为高速串行信号,并通过高速串行总线将表征该操作指令的高速串行信号传输至各内存操作子单元21,由各内存操作子单元21执行该操作指令对存储器22进行目标数据的读写操作。
一种实施例中,内存操作子单元21可采用FPGA实现。
在一个例子中,上述的测试***为HIL***,请参考图4,HIL***包括:上述的共享内存单元2、工控机池3以及多个I/O装置4。其中,工控机池3可以包括至少一个工控机31,各工控机31、I/O装置4可以设置在不同的机柜中,也可以设置在同一机柜中。具体的,工控机池3中工控机31的数量可以是固定的,也可以是可扩展的,工控机池3中的工控机31可设于同一机柜,也可设于不同机柜,多个I/O装置4可设于同一机柜,也可以设置在不同的机柜中。
一种举例中,工控机池3中包括可配置数量的至少一个工控机31(图中以工控机池3中设置了4个工控机31为例),即工控机池3中的工控机31的数量是可扩展的,其数量可以根据需求来配置的。其中,工控机池3中的工控机31之间相互通信连接。
图4中以共享内存单元2包括3个内存操作子单元21与6个存储器22为例,每个内存操作子单元21对应连接到2个存储器22,每个内存操作子单元21连接到一个I/O装置4,每个I/O装置4包括一个控制模块41与2个I/O单元42。其中,控制模块41可以为包括I/O控制器的计算机,每个I/O装置4中的I/O单元42的数量是可扩展的,其数量可以根据需求来配置的。
控制模块41与工控机池3中的工控机31之间通信连接,控制模块41还分别与其所属的I/O装置4中的I/O单元42通信连接。控制模块41与各I/O单元42之间通过同一EtherCAT网络通信连接,其中,I/O单元42与控制模块41以级联的方式连接,并基于EtherCAT进行通信,采用EtherCAT基本能满足低延时的需求。此外,I/O单元42也可插接到控制模块41,例如通过控制模块41的数据总线(例如PCIe总线)等连接至控制模块41。
其中的工控机31,可理解为HIL***中的实时仿真机RTPC的部分或全部。即本说明书所涉及的实时计算装置。工控机31与控制模块41可以分别是不同的计算机,也可以是不同的电路板、电路等。
其中的I/O单元42,可理解为输入/输出单元。
具体的可理解为:I/O单元42满足以下至少之一:
能够相对于被测件5实现数据的输入;
能够相对于被测件5实现数据的输出;
能够相对于工控机31实现数据的输入;
能够相对于工控机31实现数据的输出;
其中,I/O单元42相对于被测件5所输入和/或输出的数据A,与I/O单元42相对于工控机所输入和/或输出的数据B,可以是相关的,也可以是无关的。
具体的,数据A与数据B可以是相同内容的不同形式的数据,例如自工控机31接收某内容的数字信号,发给被测件5的是同一内容的模拟信号,或者反过来,再例如,自工控机31接收注入故障前的信号,发给被测件5的是I/O单元42注入故障后的信号;
数据A与数据B也可以是相同内容相同形式的数据;
数据A与数据B还可以是不同内容的数据,例如数据A与与数据B分别为触发I/O单元42产生某Sign1信号的触发信号与该Sign1信号,再例如,I/O单元42需要自工控机31获取某条件信号才能仿真出需要发送给被测件5的Sing2信号,此时条件信号与Sign2信号分别为数据A与数据B;
I/O单元42可以指电路,也可以指电路板,还可以指含电路板及其他装配件的装置。
一种举例中,其中的I/O单元42既可经控制模块41与工控机31交互,也可直接或经交换矩阵与被测件5(例如车辆的控制器)交互。
I/O单元42可以仅实现输入和/或输出功能,部分示例中,也可在输入和/或输出过程中对所传输的信号进行处理,例如做信号转换、故障模拟、信息仿真、信号生成、通断控制等。可见,不论是否还集成了其他功能,均可作为I/O单元42的一种实现方式。
其中的I/O单元42可以是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板卡。
进而,I/O单元可理解为包含一个或多个I/O通道,I/O单元也可以理解为I/O板卡的I/O通道。
在HIL***中,可以由HIL***中的集群控制模块针对当前测试任务,确定至少部分I/O单元42与至少部分工控机31之间的数据传输关系。其中,集群控制模块可以连接到各工控机31的一个计算机,或者任一工控机31被配置为集群控制模块。
其中的数据传输关系可理解为:用于确定出在执行相应测试任务时,需要直接或间接互相共享数据的工控机31与I/O单元42;
进一步的,至少可表示出:一个或多个工控机31(即至少部分工控机31)与一个或多个I/O单元42(即至少部分I/O单元42)之间允许传输数据的一种关系,即用于划定出允许传输数据的工控机31、I/O单元42。
一种举例中,数据传输关系可进一步确定其中工控机31传输而来的数据该同步至哪个工控机31,工控机31传输而来的数据该同步至哪个I/O单元42,即详细定义出工控机31与I/O单元42间的映射关系,再进一步的,数据传输关系可细致定义出工控机31中端口与I/O单元42的端口间的映射关系;其中的端口可以指硬件端口,也可以指软件端口、地址等(例如工控机中运行的某模型的某个输出端口、输入端口);进而,在描述出映射关系的情况下,也即能够表示出允许传输数据的工控机31、I/O单元42。
另一举例中,数据传输关系主要用于划定允许传输数据的工控机31、I/O单元42的范围,至于每次传输数据时其中的工控机要传输至哪个I/O单元42、被测件或端口(I/O单元42或被测件5的端口),I/O单元42传输而来的数据要传输至哪个工控机31或工控机31的哪个端口,可由其他手段决定。
此外,若控制模块41为多个,不同控制模块41连接不同I/O单元42,则一种举例中,数据传输关系可理解为:至少用于在工控机31及控制模块41所连接的I/O单元42中,划定出允许传输数据的工控机31、I/O单元42的范围。
针对不同任务,可确定出不同的数据传输关系,不同任务可同时执行,也可先后执行。
集群控制模块在确定至少部分I/O单元42与至少部分工控机31之间的数据传输关系后,基于该数据传输关系有多种方式完成I/O单元42与工控机31之间的数据传输,以集群控制模块确定出了K个工控机31与L个I/O单元42之间的数据传输关系为例。
在一个例子中,集群控制模块将该数据传输关系分别发送到K个工控机31,由此工控机31基于该数据传输关系,在需要获取目标数据时,可以知道去哪个I/O单元42的哪个I/O通道获取目标数据;在需要向被测件发送目标数据时,可以知道将目标数据发送到哪个I/O单元42的哪个I/O通道;而控制模块41与I/O单元42之间的连接关系是固定的,由此工控机31可以知道从哪个控制模块41获取所需的目标数据,也可以知道将目标数据发送到哪个控制模块41。具体的:各工控机31在需要向被测件发送下发信息时,基于该数据传输关系,指定用于接收各下发信息的I/O单元42,然后由控制模块41将各下发信息经过指定的I/O单元42发送到被测件。另外,被测件在需要向工控机31发送上报信息时,控制模块41通过L个I/O单元42接收上报信息,I/O单元42可以标记发送各上报信息的I/O单元42,由此各工控机31基于上述的数据传输关系接收来源于指定的I/O单元42的上报信息。
假设需要在一个工控机31和一个控制模块41所连接的I/O单元42之间进行数据传输,将工控机31记作A设备、控制模块41记作B设备。
例如,每个设备(包括上述的工控机31与控制模块41)的存储器中预设好每个设备的地址空间,A设备要把需要共享的目标数据传输给B设备时,可以将目标数据写到B设备的存储器中对应的地址空间,B设备可以定期从存储器中自己对应的地址空间获取数据,此时,若B设备要将获取的数据分发给I/O单元42,一种方案下,A设备可以在共享的目标数据中写入I/O单元42(或其I/O通道)标识,B设备根据这个获取的数据中所包含的标识进行分配;另一种方案下,B设备的不同I/O单元42(或其I/O通道)可对应分配不同的地址子空间,A设备可以在共享目标数据时指示将目标数据写到相应的地址子空间,B设备只需从地址子空间读取出来就给到相应的I/O单元42。
A设备从B设备获取目标数据时,也可以基于数据传输关系,直接从B设备的相应地址空间或地址子空间拿数据,然后根据数据传输关系给到相应模型的相应端口;其中所说的模型可以指运行在A设备中的测试仿真模型。或者,
A设备从B设备获取目标数据时,还可以由B设备将目标数据写到A设备的相应地址空间,A设备可以定期从存储器中自己对应的地址空间拿到目标数据,此时,如果要将目标数据给到相应的模型及其端口;一种方案下,B设备可以在共享的目标数据中写入I/O单元42(或其I/O通道)的标识,A设备根据这个标识,以及数据传输关系知道I/O单元42(或其I/O通道)来的数据该给到哪个模型的哪个端口。
在另一个例子中,集群控制模块将该数据传输关系分别发送到L个I/O单元42所连接的一个或多个控制模块41,各工控机31在需要向被测件发送下发信息时,直接将下发信息发送到控制模块41,由控制模块41基于该数据传输关系,将各下发信息经过指定的工控机31发送到被测件。同理,被测件在需要向工控机31发送上报信息时,控制模块41通过L个I/O单元42接收上报信息,控制模块41基于上述的数据传输关系,将来源于各I/O单元42的上报信息发送到指定的工控机31。
例如在执行某个测试任务的过程中,K个工控机与L个I/O单元用于对被测件5进行测试,L个I/O单元连接到被测件4;数据传输关系限定了工控机31与I/O单元42之间的目标数据的流向,即源自被测件5或I/O单元42的需发送至工控机31的上报信息传输到I/O单元42后,各I/O单元42将上报信息发送到控制模块41,该数据传输关系决定了控制模块将源自各I/O单元的上报信息所需发送到的工控机31(或其端口);以及目标工控机产生的需发送至被测件5或I/O单元42的下发信息传输到控制模块后,该数据传输关系决定了控制模块将源自于各工控机31的下发信息发送到被测件5或I/O单元42,其中,被测件5可以通过不同的引脚接收不同信息。其中,工控机31在向控制模块41传输下发信息时,可以在下发信息中加入自身的身份标识或者接收该数据的I/O单元42的身份标识;I/O单元42在向控制模块传输上报信息时,可以在上报信息中加入自身的身份标识或者接收该上报信息的工控机31的身份标识;由此控制模块41可以在工控机31与I/O单元42之间进行数据转发。
可见,利用控制模块41可实现工控机31与I/O单元42之间交互路径的可选择。
需要说明的是,图4中以每个I/O装置4均设置有一个控制模块41为一个举例,然不限于此,每个I/O装置4还可以设置多个控制模块41,每个控制模块41对应一个或多个I/O单元42,每个I/O单元42仅对应一个控制模块4,各控制模块41连接于对应的I/O单元42;针对当前测试任务,每个控制模块41可确定出与自身所对应的数据传输关系,以任意一个控制模块41为例,该控制模块41所确定的数据传输关系限定了至少部分工控机31与所有的目标I/O单元之间的数据传输关系,目标I/O单元为与该控制模块41所对应的I/O单元,即控制模块41确定了各目标I/O单元传输而来的数据该同步至哪个工控机31,工控机31传输而来的数据该同步至哪个目标I/O单元。其中,在每个I/O装置4中,每个控制模块41与各I/O单元42可以采用级联的方式连接,或者每个控制模块41分别与各I/O单元42直接连接。
本实施例中,各I/O单元42直接或间接连接到被测件5,被测件5的数量可以为一个或多个。在图4中,以I/O单元42与被测件5直接连接为例,即被测件5通过连接器直接连接到各I/O单元42的端口上,实现信号的传输;不同I/O单元42可以连接到被测件5不同的引脚上,以传输不同的信息。在另一个例子中,还可以在HIL***中设置交换矩阵,交换矩阵连接在I/O单元42与被测件5之间,即各I/O单元42通过交换矩阵间接连接到对应的被测件5。其中,可以设置所有的I/O装置4中的I/O单元42均通过同一个交换矩阵连接到被测件5,或者设置同一个共享内存节点中的I/O单元42通过同一个交换矩阵连接到被测件5,又或者设置同一个I/O装置4中的I/O单元42通过同一个交换矩阵连接到被测件5。
从中可见,为了实现工控机、I/O装置、被测件间相对应的通信,实现目标数据的传输,在设有交换矩阵的情况下,既要对交换矩阵进行配置,也要对控制模块的数据传输关系进行配置。进而在工控机与被测件间实现测试所需的数据传输,例如工控机中仿真模型的端口与被测件的端口之间的数据传输。该方式下,被测件接入时的连接方式更灵活自由,只需要根据实际接入情况配置交换矩阵,例如在配置好控制模块后,若未设置交换矩阵,则需要根据配置结果找到被测件该接入到哪些I/O装置,如何连接,在设置交换矩阵的情况下,则可更自由地将被测件接入到交换矩阵,然后只需对交换矩阵进行配置即可达成测试所需的数据传输。
多个装置1包括:HIL***中的工控机31与I/O装置4,即各工控机31与I/O装置4均连接到共享内存单元2的内存操作子单元22,而内存操作子单元22之间级联,由此通过共享内存单元2将各工控机31与I/O装置4之间进行星型连接。
在HIL***的测试过程中,内存操作子单元21接收来源于工控机31与控制模块41中任一指定装置的操作指令,操作指令用于向存储器22写入至少部分目标数据或者读取存储器22中的至少部分目标数据,内存操作子单元21执行指定设备发送的操作指令,若该操作指令用于向存储器22写入至少部分目标数据,则该操作指令中包含所需写入的目标数据,内存操作子单元21执行该操作指令,将操作指令中包含的目标数据写入到存储器22;若该操作指令用于读取存储器22中的至少部分目标数据,则该操作指令中包含所需读取的目标数据的标识信息,标识信息表征了该目标数据所源自的工控机31或I/O装置4,内存操作子单元21执行该操作指令,读取与操作指令中的标识信息对应的目标数据,并将该目标数据反馈到发送该操作指令的指定设备。
基于上述过程,能够将各工控机31产生的目标数据同步到I/O装置4,以及将I/O装置4接收到的来源于被测件5的目标数据同步到各工控机31。其中,目标数据包括工控机31产生的需发送至被测件5的下发信息,和/或:需经控制模块发送至工控机31的上报信息。(例如可以是源自被测件的,其中的源自表示上报信息的内容关联于或决定于被测件发出的信号)。
目标数据进一步还可包括需在工控机之间共享或在控制模块之间共享的数据。
I/O装置4与工控机31之间所传输的目标数据是基于存储器22的操作结果获取到的,即工控机31在产生需发送至被测件5的下发信息后,向内存操作子单元21发送用于写入该下发信息的操作指令,内存操作子单元21判断该操作指令是第二操作指令或第一操作指令,若该操作指令为第二操作指令,则将该第二操作指令通过级联转发至目标内存操作子单元;若该操作指令为第一操作指令,则执行该第一操作指令,将下发信息写入到存储器22,后续I/O装置4通过向内存操作子单元21发送用于读取该下发信息的操作指令,从存储器22中读取该下发信息,并发送到被测件5。类似的,I/O装置4接收到被测件5发送的上报信息后,向内存操作子单元21发送用于写入该上报信息的操作指令,内存操作子单元21重复上述过程,将上报信息写入到操作指令所指示操作的存储器22中,后续工控机31通过向内存操作子单元21发送用于读取该上报信息的操作指令,从存储器22中读取该上报信息。
此外,被测件与I/O单元之间也可设有其他转接电路、接口等等,例如DB9接口、EDAC接口、BOB模块等等。
本实施例的HIL测试***中的多个装置之间通过共享内存单元进行星型连接,共享内存单元中的多个内存操作子单元级联连接,各装置可以将需要共享的目标数据同步到共享内存单元的存储器中,各装置也可以从存储器中读取所需的目标数据,由此实现了多个装置被对同一个物理存储器数据的读写操作,能够保证多个装置之间数据一致性,具有共享效率高、准确性好以及延迟低的优点。
本发明的第二实施例涉及一种测试***,本实施例相对于第一实施例来说,主要区别之处在于:第一内存操作子单元对操作命令进行两级仲裁,具体如下:
第一内存操作子单元用于将从装置获取到的第一操作指令按照到达次序进行排序。
第一内存操作子单元还用于将排序后的第一操作指令与从连接的其他内存操作子单元21获取到的第一操作指令的到达次序进行对比后,依次进行执行。
在一个例子中,请参考图5,在第一内存操作子单元中,一级仲裁用于针对来源于各装置1的第一操作指令进行仲裁,即针对来源于与第一内存操作子单元直接通信连接的装置1的第一操作指令进行仲裁,按照到达第一内存操作子单元的次序进行排列后,再依次输出进行二级仲裁。
二级仲裁则针对于经过一级仲裁后的第一操作指令、来源于与第一内存操作子单元通信连接的其他内存操作子单元21的第一操作指令同时进行仲裁,将所有的待执行第一操作指令按照到达第一内存操作子单元的次序进行排列,得到所有的第一操作指令的执行顺序,随后在依次执行,对存储器22进行操作。
在一个例子中,每个操作指令中可以包含装置1发送该操作指令的时间戳,由此第一内存操作子单元用于根据各第一操作指令的时间戳,确定各第一操作指令的到达次序,以实现上述的两级仲裁。
在一个例子中,如图6所示,每个内存操作子单元21可以包括:依次连接的一级仲裁模块211、二级仲裁模块212以及执行模块213,执行模块213连接到本共享内存节点内的存储器22。
一级仲裁模块211用于接收直接连接的各装置1发送的第一操作指令、对这些第一操作指令进行排序后,再依次输出到二级仲裁模块212。
二级仲裁模块212用于接收一级仲裁模块211发送的第一操作指令、其他的内存操作子单元21的第一操作指令进行仲裁,将所有的待执行第一操作指令按照到达内存操作子单元21的次序进行排列,并依次输出到执行模块213,执行模块213则按照接收到第一操作指令的顺序,依次执行各第一操作指令,对存储器22进行操作,与存储器22进行目标数据的交互。
需要说明的是,图6仅示出了内存操作子单元21与操作指令两级仲裁相关的模块,内存操作子单元21还可以包含其他模块以执行内存操作子单元21的其他功能,在此不再赘述。
本发明的第三实施例涉及一种测试***,本实施例相对于第一实施例来说,主要区别之处在于:本实施例提供了共享内存单元中的内存操作子单元的另一种实现方式。
请参考图7,每个内存操作子单元21包括:多个内存访问单元214与内存控制单元215;多个装置1与多个内存访问单元214一一对应,各装置1通过对应的内存访问单元214连接到内存控制单元215,内存控制单元215还连接到本共享内存节点内的存储器22。多个内存操作子单元21中的内存控制单元215之间依次级联。需要说明的是,本实施例以图2所示的测试***为例,然不限于此,本实施例中的内存操作子单元也可以应用于图1的测试***。
其中,各装置1通过PCIe总线连接到对应的内存访问单元214,即内存访问单元214的一端通过PCIe插接到对应的装置1,内存访问单元214的另一端通过高速串行总线连接到内存控制单元215。
本实施例中,内存控制单元215用于通过内存访问单元214接收所连接的装置1发送的操作指令,并从级联的其他内存操作子单元21的内存控制单元215接收操作指令。
对于每个内存操作单元21中的内存控制单元215来说,在接收到操作指令时,先判断该操作指令是否用于对本共享内存节点内的目标存储器进行操作,若该操作指令不是用于对本共享内存节点内的目标存储器进行操作,即该操作指令为第二操作指令;若该操作指令用于对本共享内存节点内的目标存储器进行操作,即该操作指令为第一操作指令。
针对第二操作指令,内存控制单元215获取与该第二操作指令所指示操作的存储器22所连接的内存控制单元215记作目标内存控制单元,随后通过级联将该第二操作指令发送至的目标内存控制单元。
针对第一操作指令,内存控制单元215可以立即执行或者到了设定时机后执行该第一操作指令,对目标存储器进行操作,与该目标存储器交互与第一操作指令对应的目标数据,随后向发送该第一操作指令的装置1反馈响应数据。
其中,内存控制单元215如何传输第二操作指令以及如何执行第一操作指令与第一实施例中类似,在此不再赘述。
在上述实施例中,可由HIL测试***中的集群控制模块来确定执行当前的第一测试任务的工控机池3中K个工控机31与L个I/O单元42的数据传输关系。其中,集群控制模块的数量可以为一个或多个;每个测试任务可以针对一个或多个同一类型的被测件进行测试,第一测试任务所测试的第一被测件即为图4中的被测件5,第一被测件的数量可以为一个或多个。其中,L个I/O单元42可以来源于一个或多个I/O装置4。
具体的,对于当前待执行的第一测试任务,集群控制模块可以先从工控机池3中划定用于执行该第一测试任务的K个工控机31、从I/O装置4中划定用于执行该第一测试任务的L个I/O单元42,即得到用于执行该第一测试任务的K个工控机31与L个I/O单元42,随后建立K个工控机31与L个I/O单元42之间的数据传输关系。其中,若工控机池3中的工控机31和/或I/O装置4中的I/O单元42存在资源不足的情况,也可以相应的进行横向扩展,即增加新的共享内存节点,将该新增的共享内存节点中的内存操作子单元21与现有的内存操作子单元21级联即可。
集群控制模块可以在确定K个工控机31与L个I/O单元42之间的数据传输关系后,将该数据传输关系分别发送到K个工控机31;各工控机31在需要向第一被测件发送下发信息时,基于该数据传输关系,指定用于接收各下发信息的I/O单元42,与L个I/O单元42连接的控制模块41将各下发信息经过指定的I/O单元42发送到第一被测件。另外,第一被测件在需要向工控机31发送上报信息时,至少一个控制模块41通过L个I/O单元42接收上报信息,I/O单元42可以标记发送各上报信息的I/O单元42,由此各工控机31基于上述的数据传输关系接收来源于指定的I/O单元42的上报信息。
或者,
集群控制模块可以在确定K个工控机31与L个I/O单元42之间的数据传输关系后,将该数据传输关系反馈到与L个I/O单元42连接的控制模块41;各工控机31在需要向第一被测件发送下发信息时,直接将下发信息发送到与L个I/O单元42连接的控制模块41,由控制模块41基于该数据传输关系,将各下发信息经过指定的I/O单元42发送到第一被测件。同理,第一被测件在需要向工控机31发送上报信息时,至少一个控制模块41通过L个I/O单元42接收上报信息,至少一个控制模块41基于上述的数据传输关系,将来源于各I/O单元42的上报信息发送到指定的工控机31。
另外,被划分出L个I/O单元42被配置与第一被测件通信连接,例如在划分出L个I/O单元42后,将L个I/O单元42与各第一被测件进行直接连接,或者I/O单元42与第一被测件之间连接有交换矩阵,由集群控制模块配置该交换矩阵中连接到L个I/O装置连接的第一端口与连接到第一被测件的第二端口之间形成连接通道,建立L个I/O单元42与第一被测件之间的通信连接,从而交换矩阵5能够通过被配置的连接通道在L个I/O单元42与第一被测件之间传输目标数据。
集群控制模块还用于将第一测试任务的任务信息发送到K个工控机31,从而工控机31可以基于第一测试任务的任务信息产生需发送至第一被测件的下发信息。其中,第一测试任务的任务信息中包含测试所需的仿真模型、测试参数以及测试用例等。
集群控制模块还用于确定第一测试任务的测试需求信息,测试需求信息至少用于表征出执行第一测试任务所需的CPU的数量信息(或者工控机的信息),以及I/O单元42的数量信息。其中,数量信息为数量值或数量范围;另外,测试需求信息还可以包括测试所需占用的内存、存储器的占用空间等,即选取CPU与I/O单元42还需要考虑其所能够使用的内存与存储器的占用空间是否满足测试需求,其中,对工控机的选取也可理解为对CPU的选取。
一种具体举例中,测试需求信息还可用于表征出所需的内存、GPU、总线接口、传感器接口、仿真板卡等等的数量和/或类型等的信息。
另一种具体举例中,测试需求信息还可用于表征出CPU或工控机的各种参数、GPU、内存等型号、品牌、属性等各种信息。
集群控制模块确定第一测试任务的测试需求信息的方式,包括但不限于以下几种:
在一个例子中,集群控制模块用于根据第一测试任务的任务信息确定执行第一测试任务所需的CPU的数量信息(或者工控机的信息),以及I/O单元的数量信息,得到测试需求信息;例如,基于第一测试任务的任务信息推算执行该第一测试任务的资源消耗,由此能够确定第一测试任务的测试需求信息;或者,基于第一测试任务的任务信息查询测试历史数据,从测试历史数据中查找之前执行相同的第一测试任务的测试需求信息作为该第一测试任务的测试需求信息。其中,任务信息包括以下至少之一或任意组合:测试用例、测试的仿真模型以及测试参数。
在一个例子中,集群控制模块用于从接收到的第一测试任务的设定参数中获取执行第一测试任务所需的CPU的数量N(或者工控机的信息)与I/O单元的数量L,设定参数包括:被配置的执行第一测试任务所需的CPU的数量信息,以及I/O装置的数量信息。例如,集群控制模块连接到上位机,用户可以在上位机中对每个第一测试任务进行设定参数的配置,并将配置第一测试任务的设定参数发送到集群控制模块,由此集群控制模块能够从设定参数中获取第一测试任务的测试需求信息,即设定参数可以是用户指定的。
在一个例子中,集群控制模块基于所接收到的第一测试任务的任务信息进行预测试,基于预测试过程的测试情况确定出该第一测试任务的测试需求信息。例如,从第一测试任务的任务信息中选取一个或多个测试的仿真模型,预测试为针对该仿真模型进行测试,从工控机池1中选取一个工控机31用于运行该仿真模型,并选取一个I/O单元42与选取的工控机31一起进行预测试,获取预测试过程中的测试信息,并基于该测试信息确定出该第一测试任务的测试需求信息,测试信息包括以下任意之一或任意组合:测试时间、工控机31的运行状态、I/O单元42的运行状态等,其中运行状态包括但不限于:CPU占用率、内存占用率等。又或者,预测试为利用当前处于空闲状态的所有或指定数量的工控机31与处于空闲状态的所有或指定数量的I/O单元42在一定时间内执行该第一测试任务,再获取测试过程中的测试信息,并基于该测试信息确定出该第一测试任务的测试需求信息。
集群控制模块用于基于测试需求信息,从当前处于空闲状态的CPU中选取N个CPU、从当前处于空闲状态的I/O单元42中选取L个I/O单元42,N为大于或等于1的任意整数。其中,所指的处于空闲状态是指当前无正在执行或者待执行的第一测试任务,另外集群控制模块还会将所检测到工控机池1中新扩展的工控机31以及新扩展共享内存节点中的I/O单元42均确定为空闲状态。
以从当前处于空闲状态的CPU中选取N个CPU为例,集群控制模块可以从第一测试任务的测试需求信息中读取执行该第一测试任务所需的CPU的数量信息,若数量信息为数量值,则可以直接从处于空闲状态的CPU中选取该数量值的CPU,也可以从处于空闲状态的CPU中选取大于该数量值的N个CPU;若数量信息为数量范围,可以先获取处于空闲状态的CPU的数量,若处于空闲状态的CPU的数量大于或等于该数量范围值的下限值,则可以在该数量范围内选取一个数量值,选取的数量值小于或等于处于空闲状态的CPU的数量,继而再从处于空闲状态的CPU中选取该数量值的CPU;例如,在确保从数量范围内选取的数量值小于或等于处于空闲状态的CPU的数量的前提下,优先选择最大的一个数量值,由此能够选取数量更多的CPU来执行第一测试任务,提供一定的冗余处理能力。
其中,K个工控机31中的每个工控机31包括N个CPU中的至少一个CPU。在一个例子中,在从当前处于空闲状态的CPU中选取N个CPU,可以优先从一个工控机31中选取CPU、在单个工控机31中不存在处于空闲状态的CPU后,若仍然未选取出N个CPU,再从下一个工控机31中选取CPU,直至选取N个CPU。
从当前处于空闲状态的I/O单元42中选取L个I/O单元42的具体方式与前述选取CPU的方式相似,在此不再赘述。
另外,若测试需求信息还可以包括测试所需占用的内存、存储器的占用空间,则在选取CPU和I/O单元42,还可以参照测试所需占用的内存、存储器的占用空间,即需确保挑选出的CPU和I/O单元42满足内存、存储器的占用空间等要求。
集群控制模块还用于利用N个CPU与L个I/O单元42,执行第一测试任务对第一被测件进行测试,并在第一测试任务执行完毕后,释放执行第一测试任务的N个CPU与L个I/O单元42,以使被释放的CPU与I/O单元42重新进入空闲状态。
具体的,在测试过程中,各工控机31利用所包含的被选取出的CPU(或可理解为第一目标工控机)执行相应的测试部分,各第一目标工控机中用于测试的CPU能够生成需发送到第一被测件的下发信息,并将下发信息发送到L个I/O单元42所连接的控制模块41,由各控制模块41将各CPU的下发信息经过指定的I/O单元42发送到第一被测件。测试过程中,第一被测件能够生成需要向第一目标工控机发送的上报信息,各控制模块41通过L个I/O单元42接收上报信息,各控制模块41将来源于各I/O单元42的上报信息发送到指定的第一目标工控机的CPU。
在执行第一测试任务结束时,例如达到设定的测试时间或者满足设定的循环次数后,集群控制模块释放执行该第一测试任务的K个第一目标工控机中的N个CPU与L个I/O单元42,被释放CPU以及I/O单元42均重新进入空闲状态。
本实施例中,集群控制模块还用于:在第一测试任务执行完毕之前,基于另一第二测试任务的测试需求信息,利用多个工控机31的CPU中的J个CPU与多个I/O单元42中的M个I/O单元42,执行第二测试任务对另一第二被测件进行测试,以使第二被测件与J个CPU之间通过M个I/O单元42交互;J、M均为大于或等于1的任意整数;其中,J个CPU与N个CPU为多个工控机的CPU中的不同CPU,L个I/O单元42与M个I/O单元42为多个I/O单元42中的不同I/O单元42。
和/或:
释放执行第一测试任务的N个CPU与L个I/O单元42之后,基于另一第三测试任务的测试需求信息,从当前处于空闲状态的CPU中选取Z个CPU、从当前处于空闲状态的I/O单元42中选取T个I/O单元42,并利用Z个CPU与T个I/O单元42,执行第三测试任务对第三被测件进行测试,以使第三被测件与Z个CPU之间通过T个I/O单元42交互;Z、T均为大于或等于1的任意整数;其中Z个CPU与N个CPU具有重合的CPU,和/或:L个I/O单元42与T个I/O单元42具有重合的I/O单元42。
其中,第二测试任务所测试的第二被测件以及第三测试任务所测试的第三被测件均为图4中的被测件5。
本说明书中,对CPU的选取的具体实现手段可以是对工控机(即RTPC)进行选取。
具体的,待执行的测试任务数量为多个,多个测试任务可以针对相同类型的被测件5进行测试,也可以是针对不同类型的被测件5进行测试,多个测试任务依次排列在任务队列中。
在一个例子中,若在第一测试任务执行过程中,任务队列中还存在待执行的测试任务,获取任务队列中的另一测试任务即第二测试任务,若当前处于空闲状态的CPU与当前处于空闲状态的I/O单元42满足第二测试任务的测试需求,基于第二测试任务的测试需求信息确定出对应于第二测试任务的J个CPU与多个I/O单元42中的M个I/O单元42,并利用J个CPU与M个I/O单元42,执行第二测试任务对另一第二被测件进行测试,以使第二被测件与J个CPU之间通过M个I/O单元42交互;J、M均为大于或等于1的任意整数。其中,J个CPU与N个CPU为多个工控机31的CPU中的不同CPU,L个I/O单元42与M个I/O单元42为多个I/O单元42中的不同I/O单元42,即在第一测试任务执行过程中,可以选取未参与执行第一测试任务的CPU与I/O单元42执行另一第二测试任务,即实现了多个测试任务并行执行测试。其中,单个工控机31中包含的多个CPU可以同时被划分用于并行执行不同的测试任务,例如单个工控机31中的多个CPU被分为两个CPU组,这两个CPU组分别用于执行两个不同的测试任务。
其中的第二测试任务为区别于第一测试任务的其他测试任务,其中的第二被测件为区别于第一被测件的其他被测件。第一测试任务与第二测试任务可以是同一用户的,也可以是不同用户的。针对第二测试任务确定CPU、I/O单元42及进行测试的流程可参照本说明书其他实施例的相关描述理解,在此不再赘述。
从中可见,在第一测试任务执行过程中,还可并行执行其他测试任务,有效保障测试的高效执行。
在另一个例子中,在第一测试任务执行完毕,释放执行第一测试任务的N个CPU与L个I/O单元42之后,任务队列中还存在待执行的测试任务,获取任务队列中的另一测试任务即第三测试任务,基于另一第三测试任务的测试需求信息,从当前处于空闲状态的CPU中选取Z个CPU、从当前处于空闲状态的I/O单元42中选取T个I/O单元42,并利用Z个CPU与T个I/O单元42,执行第三测试任务对第三被测件进行测试,以使第三被测件与Z个CPU之间通过T个I/O单元42交互;Z、T均为大于或等于1的任意整数;其中Z个CPU与N个CPU具有重合的CPU,和/或:L个I/O单元42与T个I/O装置具有重合的I/O单元42;即被释放的CPU与I/O单元42可以用于执行其他的测试任务。
其中的第三测试任务为区别于第一测试任务的其他测试任务,其中的第三被测件可以为第一被测件,也可以为区别于第一被测件的其他被测件。第一测试任务与第三测试任务可以是同一用户的,也可以是不同用户的。针对第三测试任务确定CPU、I/O单元及进行测试的流程可参照本说明书其他实施例的相关描述理解,在此不再赘述。
从中可见,在第一测试任务结束后,其所使用过的CPU、I/O单元42等还可用于执行其他测试任务,有效保障资源的充分有效利用。
以上已详细描述了本发明的较佳实施例,但应理解到,若需要,能修改实施例的方面来采用各种专利、申请和出版物的方面、特征和构思来提供另外的实施例。
考虑到上文的详细描述,能对实施例做出这些和其它变化。一般而言,在权利要求中,所用的术语不应被认为限制在说明书和权利要求中公开的具体实施例,而是应被理解为包括所有可能的实施例连同这些权利要求所享有的全部等同范围。
Claims (11)
1.一种测试***,其特征在于,所述测试***为HIL***,包括共享内存单元与多个装置;所述共享内存单元包括:多个内存操作子单元与多个存储器,每个所述内存操作子单元连接到至少一个所述存储器;
所述多个装置包括至少一个实时计算装置与至少一个I/O装置,所述I/O装置直接或间接连接到至少一个被测件;所述实时计算装置与所述I/O装置均能产生操作指令,所述操作指令用于表示相应的存储地址需要进行操作;各所述装置之间通过所述共享内存单元对存储器的操作而传输目标数据;所述目标数据包括HIL测试过程中需在所述实时计算装置与所述I/O装置之间传递的数据;所述多个内存操作子单元中的任一第一内存操作子单元用于:
获取当前操作指令;
在所述当前操作指令为用于对所述第一内存操作子单元所连接的第一存储器的存储地址进行操作的第一操作指令时,通过执行所述第一操作指令,与所述第一存储器交互对应于所述第一操作指令的第一目标数据。
2.根据权利要求1所述的测试***,其特征在于,所述第一内存操作子单元还用于:
在所述当前操作指令为用于对所述多个存储器中的第二存储器的存储地址进行操作的第二操作指令时,将所述第二操作指令发送到所述第一内存操作子单元之外的其他所述内存操作子单元,以使所述第二操作指令最终被传递至所述第二存储器连接的第二内存操作子单元,以利用所述第二内存操作子单元执行所述第二操作指令。
3.根据权利要求2所述的测试***,其特征在于,所述多个内存操作子单元依次级联;
所述第一内存操作子单元具体用于:
接收级联的所述内存操作子单元发送的所述当前操作指令;和/或:
在所述当前操作指令为所述第二操作指令时,将所述第二操作指令发送至级联的所述内存操作子单元。
4.根据权利要求3所述的测试***,其特征在于,依据所述多个内存操作子单元级联的次序,所述多个内存操作子单元对应的所述存储器的存储地址的依次变大或变小;
所述第一内存操作子单元用于在所述当前操作指令为所述第二操作指令时,将所述第二操作指令所需操作的存储地址与所述第一内存操作子单元连接的所述存储器的存储地址进行对比,确定将所述第二操作指令发送至上一级的所述内存操作子单元或下一级的所述内存操作子单元,并进行发送。
5.根据权利要求2所述的测试***,其特征在于,所述第一内存操作子单元具体用于:
在所述当前操作指令为所述第二操作指令时,基于所述第二操作指令,在所述多个内存操作单元中确定所述第二内存操作子单元;
在预设的若干传输路径信息中,确定所述第一内存操作子单元与所述第二内存操作子单元的传输路径信息;每个所述传输路径信息表征了所述操作指令自相应的一个所述内存操作子单元的一个端口传递至另一所述内存操作子单元的一个端口的路径;
基于所述第一内存操作子单元与所述第二内存操作子单元的传输路径信息,发出所述第二操作指令,以使所述第二内存操作子单元能够获取并执行所述第二操作指令。
6.根据权利要求5所述的测试***,其特征在于,任意两个所述内存操作子单元之间均通过相应端口直接连接,所述若干传输路径信息为表征所述多个内存操作子单元之间的连接关系的连接路由表。
7.根据权利要求1所述的测试***,其特征在于,若所述第一操作指令的数量为多个,则所述第一内存操作子单元还用于将从所述装置获取到的所述第一操作指令与从所述内存操作子单元获取到的所述第一操作指令的到达次序进行对比后,依次进行执行。
8.根据权利要求1所述的测试***,其特征在于,所述第一内存操作子单元用于将从所述装置获取到的所述第一操作指令按照到达次序进行排序;
所述第一内存操作子单元还用于将排序后的所述第一操作指令与从所述内存操作子单元获取到的所述第一操作指令的到达次序进行对比后,依次进行执行。
9.根据权利要求1所述的测试***,其特征在于,若所述第一操作指令的数量为多个,则所述第一内存操作子单元用于根据各所述第一操作指令的时间戳,确定多个所述第一操作指令的到达次序。
10.根据权利要求1所述的测试***,其特征在于,发出所述当前操作指令的当前装置用于:
若所述当前操作指令的操作为写操作,则向所述当前装置所连接的所述内存操作子单元发送所述当前操作指令之前,判断获取所述当前操作指令所操作的存储地址的操作权限是否成功;并在获取所述操作权限成功时,将所述当前操作指令发送到所述当前装置所连接的所述内存操作子单元;
在确定所述当前操作指令被执行成功,或者写入的数据量达到设定的数据写入量时,释放所述操作权限。
11.根据权利要求1所述的测试***,其特征在于,所述第一内存操作子单元用于在执行用于读取所述第一目标数据的所述第一操作指令,自所述第一存储器读取出所述第一目标数据后,以读取出的所述第一目标数据作为响应数据反馈至发送所述第一操作指令的所述装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2023102146986 | 2023-03-06 | ||
CN202310214698 | 2023-03-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117093438A true CN117093438A (zh) | 2023-11-21 |
Family
ID=88705917
Family Applications (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310273314.8A Pending CN117075572A (zh) | 2023-03-06 | 2023-03-17 | 测试*** |
CN202310265202.8A Pending CN117082078A (zh) | 2023-03-06 | 2023-03-17 | 设备间数据同步方法、***以及设备 |
CN202310265212.1A Pending CN117075570A (zh) | 2023-03-06 | 2023-03-17 | 数据处理方法、设备及*** |
CN202310265228.2A Pending CN117075571A (zh) | 2023-03-06 | 2023-03-17 | 测试方法及***、设备以及可读存储介质 |
CN202310993990.2A Pending CN117076216A (zh) | 2023-03-06 | 2023-08-08 | 通道分配方法及设备 |
CN202311126340.4A Pending CN117093438A (zh) | 2023-03-06 | 2023-09-01 | 测试*** |
CN202311125925.4A Pending CN117148817A (zh) | 2023-03-06 | 2023-09-01 | 一种测试*** |
CN202311128871.7A Pending CN117076344A (zh) | 2023-03-06 | 2023-09-01 | 数据共享方法、装置、***以及可读存储介质 |
CN202311125989.4A Active CN117081706B (zh) | 2023-03-06 | 2023-09-01 | 数据共享方法、装置及*** |
CN202311243702.8A Pending CN117311313A (zh) | 2023-03-06 | 2023-09-25 | 一种测试方法及***、计算处理端以及可读存储介质 |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310273314.8A Pending CN117075572A (zh) | 2023-03-06 | 2023-03-17 | 测试*** |
CN202310265202.8A Pending CN117082078A (zh) | 2023-03-06 | 2023-03-17 | 设备间数据同步方法、***以及设备 |
CN202310265212.1A Pending CN117075570A (zh) | 2023-03-06 | 2023-03-17 | 数据处理方法、设备及*** |
CN202310265228.2A Pending CN117075571A (zh) | 2023-03-06 | 2023-03-17 | 测试方法及***、设备以及可读存储介质 |
CN202310993990.2A Pending CN117076216A (zh) | 2023-03-06 | 2023-08-08 | 通道分配方法及设备 |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311125925.4A Pending CN117148817A (zh) | 2023-03-06 | 2023-09-01 | 一种测试*** |
CN202311128871.7A Pending CN117076344A (zh) | 2023-03-06 | 2023-09-01 | 数据共享方法、装置、***以及可读存储介质 |
CN202311125989.4A Active CN117081706B (zh) | 2023-03-06 | 2023-09-01 | 数据共享方法、装置及*** |
CN202311243702.8A Pending CN117311313A (zh) | 2023-03-06 | 2023-09-25 | 一种测试方法及***、计算处理端以及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (10) | CN117075572A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117724449A (zh) * | 2023-12-15 | 2024-03-19 | 昆易电子科技(上海)有限公司 | 一种仿真装置与测试*** |
CN117724447B (zh) * | 2023-12-15 | 2024-05-31 | 昆易电子科技(上海)有限公司 | 一种仿真装置的数据处理方法、测试仿真装置及仿真*** |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515289B (zh) * | 2009-03-25 | 2011-01-05 | 中国工商银行股份有限公司 | 一种对通用数据文件进行检查的装置及方法 |
US8291135B2 (en) * | 2010-01-15 | 2012-10-16 | Vmware, Inc. | Guest/hypervisor interrupt coalescing for storage adapter virtual function in guest passthrough mode |
CN102148719B (zh) * | 2010-02-09 | 2013-07-24 | 奇点新源国际技术开发(北京)有限公司 | 一种基于子***集成的自动化测试*** |
DE102010043661A1 (de) * | 2010-11-09 | 2012-05-10 | Dspace Digital Signal Processing And Control Engineering Gmbh | Vorrichtung zum Testen und HIL-Simulator |
US8914673B2 (en) * | 2012-02-20 | 2014-12-16 | Microsoft Corporation | Distributed testing within a serial testing infrastructure |
US8856256B1 (en) * | 2013-03-13 | 2014-10-07 | CoralTree Inc. | System and method for file sharing and updating |
CN103577275B (zh) * | 2013-10-24 | 2017-07-07 | 华为技术有限公司 | 一种数据校验的方法、设备和*** |
EP2990892B1 (de) * | 2014-09-01 | 2019-05-22 | dSPACE digital signal processing and control engineering GmbH | Verfahren zum Verbinden einer Eingabe/Ausgabe-Schnittstelle eines für das Testen eines Steuergeräts eingerichteten Testgeräts |
US9384086B1 (en) * | 2015-11-30 | 2016-07-05 | International Business Machines Corporation | I/O operation-level error checking |
CN105955239B (zh) * | 2016-05-26 | 2018-08-21 | 上海南土信息科技有限公司 | 一种基于共享内存的通用测试平台快速构建方法 |
IT201700024221A1 (it) * | 2017-03-03 | 2018-09-03 | Sisvel Tech S R L | Methods and apparatuses for encoding and decoding superpixel borders |
CN107800787B (zh) * | 2017-10-23 | 2020-10-16 | 图斯崆南京科技有限公司 | 一种分布式大数据实时交换共享的计算机网络*** |
CN108763083A (zh) * | 2018-05-30 | 2018-11-06 | 平安普惠企业管理有限公司 | 自动化测试方法、装置、计算机设备及存储介质 |
WO2020055616A1 (en) * | 2018-09-14 | 2020-03-19 | Rambus Inc. | Memory system with error detection |
CN111209244B (zh) * | 2018-11-21 | 2022-05-06 | 上海寒武纪信息科技有限公司 | 数据处理装置及相关产品 |
US11010510B2 (en) * | 2019-04-30 | 2021-05-18 | Disney Enterprises, Inc. | Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations |
CN110166328B (zh) * | 2019-07-05 | 2021-07-16 | 南方电网科学研究院有限责任公司 | 一种需求响应设备的测试装置 |
CN110618910A (zh) * | 2019-08-27 | 2019-12-27 | 中国第一汽车股份有限公司 | 一种测试***及方法 |
KR102217002B1 (ko) * | 2019-11-18 | 2021-02-18 | (주)파워닉스 | Hil 테스트를 위한 제어 시스템 및 방법 |
CN113110367B (zh) * | 2020-01-13 | 2022-05-31 | 广州汽车集团股份有限公司 | 发动机硬件在环测试方法及*** |
CN113127285B (zh) * | 2021-06-17 | 2021-10-08 | 北京燧原智能科技有限公司 | 一种错误数据调试方法、装置、芯片及计算机设备 |
CN113407401B (zh) * | 2021-06-18 | 2023-12-05 | 北京汇钧科技有限公司 | 一种自动化测试方法及装置、电子设备及存储介质 |
CN113960443B (zh) * | 2021-09-23 | 2024-06-07 | 瑞芯微电子股份有限公司 | 一种io静态参数测试方法及*** |
CN114238077A (zh) * | 2021-11-19 | 2022-03-25 | 航天信息股份有限公司 | 一种自动化测试任务编排***及方法 |
CN114385431A (zh) * | 2022-01-13 | 2022-04-22 | 北京全路通信信号研究设计院集团有限公司 | 一种板卡测试的方法、装置、电子设备及存储介质 |
CN114461472A (zh) * | 2022-01-21 | 2022-05-10 | 中国船舶重工集团公司第七0九研究所 | 一种基于ate的gpu核心全速功能测试方法 |
CN114927110B (zh) * | 2022-06-27 | 2024-03-15 | 青岛信芯微电子科技股份有限公司 | 一种背光控制方法、显示设备、芯片***及介质 |
CN115495239A (zh) * | 2022-09-19 | 2022-12-20 | 广州文远知行科技有限公司 | 测试资源复用方法、装置、存储介质及计算机设备 |
CN115604144B (zh) * | 2022-09-27 | 2024-07-12 | 北京百度网讯科技有限公司 | 测试方法及装置、电子设备和存储介质 |
CN115640174A (zh) * | 2022-09-28 | 2023-01-24 | 超聚变数字技术有限公司 | 内存故障预测方法、***、中央处理单元及计算设备 |
CN115712572A (zh) * | 2022-11-23 | 2023-02-24 | 浙江大华技术股份有限公司 | 任务的测试方法、装置、存储介质及电子装置 |
CN115587055A (zh) * | 2022-12-12 | 2023-01-10 | 奉加微电子(昆山)有限公司 | 总线的传输方法、***、设备及存储介质 |
-
2023
- 2023-03-17 CN CN202310273314.8A patent/CN117075572A/zh active Pending
- 2023-03-17 CN CN202310265202.8A patent/CN117082078A/zh active Pending
- 2023-03-17 CN CN202310265212.1A patent/CN117075570A/zh active Pending
- 2023-03-17 CN CN202310265228.2A patent/CN117075571A/zh active Pending
- 2023-08-08 CN CN202310993990.2A patent/CN117076216A/zh active Pending
- 2023-09-01 CN CN202311126340.4A patent/CN117093438A/zh active Pending
- 2023-09-01 CN CN202311125925.4A patent/CN117148817A/zh active Pending
- 2023-09-01 CN CN202311128871.7A patent/CN117076344A/zh active Pending
- 2023-09-01 CN CN202311125989.4A patent/CN117081706B/zh active Active
- 2023-09-25 CN CN202311243702.8A patent/CN117311313A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN117148817A (zh) | 2023-12-01 |
CN117081706A (zh) | 2023-11-17 |
CN117076216A (zh) | 2023-11-17 |
CN117075570A (zh) | 2023-11-17 |
CN117081706B (zh) | 2024-05-31 |
CN117075572A (zh) | 2023-11-17 |
CN117075571A (zh) | 2023-11-17 |
CN117311313A (zh) | 2023-12-29 |
CN117082078A (zh) | 2023-11-17 |
CN117076344A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117093438A (zh) | 测试*** | |
CN207115097U (zh) | 一种fpga异构加速卡 | |
US7240268B2 (en) | Test component and method of operation thereof | |
CN105008943A (zh) | 对在fpga块内分组创建加速的测试仪 | |
CA1246743A (en) | Array for simulating computer functions for large computer systems | |
CN112286746A (zh) | 针对axi从设备接口的通用验证平台及方法 | |
CN101320344B (zh) | 一种多核或众核处理器功能验证设备及方法 | |
CN111176926B (zh) | 一种基于双口sram的ip核仿真***及仿真方法 | |
CN111290986A (zh) | 一种基于神经网络的总线互联*** | |
CN104598161B (zh) | 数据读取、写入方法和装置及数据存储结构 | |
CN113033785B (zh) | 芯片、神经网络训练***、内存管理方法及装置、设备 | |
Kwon et al. | Gen-z memory pool system architecture | |
CN110727611B (zh) | 一种带状态监测的可配置一致性验证*** | |
CN108804380A (zh) | 矢量运算硬件加速器多核级联的周期精确模型 | |
CN113496108B (zh) | 一种应用于仿真的cpu模型 | |
WO2021139733A1 (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
CN110851393B (zh) | 一种带有Aurora接口的USB转换控制板卡及方法 | |
CN106326172A (zh) | 一种APB总线slave接口扩展电路及其使用方法 | |
CN118159919A (zh) | 测试*** | |
CN118012007A (zh) | 一种测试*** | |
CN117891236A (zh) | 一种测试*** | |
CN118151626A (zh) | 一种测试*** | |
CN109144583A (zh) | 基于国产平台的主板信息获取方法、装置、***及设备 | |
CN113868179B (zh) | 一种LPC_DPRam的通信装置及数据转换方法 | |
CN114444423B (zh) | 基于验证平台的数据处理方法、***及电子设备 |
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 |