CN106095654A - 性能验证装置、具有性能验证装置的系统以及方法 - Google Patents

性能验证装置、具有性能验证装置的系统以及方法 Download PDF

Info

Publication number
CN106095654A
CN106095654A CN201610270923.8A CN201610270923A CN106095654A CN 106095654 A CN106095654 A CN 106095654A CN 201610270923 A CN201610270923 A CN 201610270923A CN 106095654 A CN106095654 A CN 106095654A
Authority
CN
China
Prior art keywords
core
code
polycaryon processor
model
parallel
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.)
Granted
Application number
CN201610270923.8A
Other languages
English (en)
Other versions
CN106095654B (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN106095654A publication Critical patent/CN106095654A/zh
Application granted granted Critical
Publication of CN106095654B publication Critical patent/CN106095654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本发明提供性能验证装置、具有性能验证装置的系统以及用于生成分配给多个核心的控制器程序的方法。该方法包括创建多核处理器的程序的步骤。创建的步骤包括生成控制模型的步骤、进行仿真的步骤、插入被分配了PE的块的步骤、生成多核代码的步骤、执行多核联合仿真的步骤、和判断在控制周期时间内是否完成了运算的步骤。

Description

性能验证装置、具有性能验证装置的系统以及方法
技术领域
本发明涉及一种对程序的性能进行验证的技术,特别是涉及一种对在多核处理器上执行的程序的性能进行验证的技术。
背景技术
在汽车控制、信号处理等中利用的MBD(Model Based Design,基于模型的设计)工具能够用于从上位的设计阶段到下位的ECU(Electronic Control Unit,电子控制单元)安装阶段,为了测试控制算法而从上位起依次使用MIL(Model In the Loop,模型在环)仿真、SIL(Software In the Loop,软件在环)仿真。而且,在由微型计算机批量产生的代码的测试中,有被称为PIL(Processor In the Loop,处理器在环)仿真的仿真环境,在使用了MBD(Model Based Design)工具的PIL仿真环境下,对为了用于单核处理器而生成的程序代码进行功能验证。例如,专利文献1(JP特开2003-173256号公报)和专利文献2(JP特开2011-154521号公报)披露了使用基于模型的开发手法来生成程序代码的方法和进行性能预测的系统。
在PIL仿真环境中,能够使以数学式的形式来表达控制对象或控制器的动作的Simulink(仿真与链接)模型与微型计算机或微型计算机仿真器连接起来进行仿真。例如,瑞萨电子公司的用于与Simulink模型的联合仿真的嵌入式工具链“ECPILS(注册商标)”、赛普拉斯(Spansion Innovates)公司的“SOFTUNE(注册商标)”等是PIL仿真环境的产品例。
在ECPILS下,经由模拟器(emulator)的微型计算机评估板与由Mathworks公司提供的在PC(Personal Computer,个人电脑)上运行的MATLAB/Simulink模型仿真环境通信,来实现PIL仿真。另外,取代微型计算机评估板,还能够利用在PC上运行的微型计算机仿真器与上述的模型仿真环境通信,来进行联合仿真。
即,在PIL仿真环境中,能够利用微型计算机或者微型计算机仿真器执行由控制器(被称为controller)的模型自动生成的C源代码,通过仿真来验证被称为受控对象(plant)的控制对象物的模型的动作是否能够遵照设计者的意图来控制。
近年来,在汽车控制等方面,因严格的节能油耗标准和限制尾气排放的标准被强化等控制的高度化而导致运算量也大幅度地增加。因此,在发动机室等高温工作环境下也期待有高运算处理能力,另一方面,在高温环境中的微型计算机的工作频率却没有那么大的提高空间。由于微型计算机搭载于车辆上,所以功耗越小则电源供给越少,这是所期待的,而且由于若削减部件数量则能够抑制车辆重量的增加,所以还能够有助于改善油耗。因此,需要使用多核微型计算机来用于对控制处理进行控制的开发环境,其中,多核微型计算机具有可实现的工作频率并且搭载了多个低功耗的CPU(Central ProcessingUnit,中央处理器)核心。
在作为基本的控制方式之一的反馈控制或者闭环控制中,向控制器输入来自传感器的值和目标值,并向执行器输出控制值来控制对象。
闭环控制也被广泛地使用在汽车控制领域。特别是,在例如发动机控制等系统以几十微秒~几毫秒这样非常短的控制周期为基础而设计的系统中,必须以使控制器不超过为了满足各种标准而设计的控制周期时间地决定操作量,并将决定出的操作量输出至执行器的方式,来创建该控制器的程序。因此,在利用多核微型计算机来实现汽车控制的情况下,需要取得包含因多核所特有的现象、例如核心间的通信开销、数据总线上的冲突导致的延迟等在内的准确的执行时间。
在专利文献1~2中披露的现有技术是在使用单核处理器的情况下的基于模型的开发技术。另一方面,在专利文献3(JP特开2014-102734号公报)中披露的现有技术是如下的技术:针对构成控制器的程序的多个任务(task),利用单核执行各任务并计算执行时间,估算将各任务分配给多核中的哪一个核心的时间、和这种分配下的处理时间。
即,现有技术都是仅实现了与单核微型计算机连接的仿真,并不存在针对利用多核运行的并行程序提供PIL仿真的技术。原因之一为,考虑到为了将利用由N个核心构成的多核微型计算机执行的N个程序与在PC上运行的Simulink等的模型仿真器连接来进行仿真,需要复杂的控制工序,这种控制工序与在设计时要求的仿真速度不能同时实现。
因此,在现有技术的单核微型计算机的PIL仿真环境中,无法将由模型设计的控制器生成的代码分配给多个CPU核心,将因分配产生的通信开销等影响包含在内来进行评估,并无法对构成控制器程序的各任务向核心的分配进行规划。
若能实现用于规划向核心的分配的开发环境,则在以上述的非常短的控制周期来设计的实时性明显很高的汽车控制系统中,能够检测在规定周期内利用微型计算机无法进行运算的过渡状态等。因此,需要如下的技术:根据上述检测结果,在系统设计的前级工序确认基于上个周期中的控制值对执行器的控制、通过将该运算处理功能硬件化而使控制速度提高这些要研究的事项。
发明内容
本发明的一个目的是提供一种能够根据控制模型来生成分配给多个核心的控制器程序的性能验证装置。另一个目的是提供一种能够使用根据控制模型而分配给多个核心的控制器程序来验证模型的性能的系统。另一个目的是提供一种用于生成分配给多个核心的控制器程序的方法。
根据一个实施方式,提供一种性能验证装置,其用于生成用来验证控制系统的性能的源代码。该性能验证装置具有:显示装置,运算装置。运算装置具有:选择机构,其用于从在显示装置上显示的控制系统的模型中选择成为在多核处理器中所执行的程序的仿真对象的代码生成范围;指定机构,其用于接受对代码生成范围中所包含的多个处理中的作为并行处理的对象的多个并行执行单位的指定;分配机构,其用于将各并行执行单位与该多核处理器中所包含的各核心建立关联;执行顺序指定机构,其用于对建立了关联的各并行执行单位的执行顺序和核心间同步进行指定;生成机构,其用于基于各并行执行单位和执行顺序,生成成为多核处理器的执行对象的源代码;通信机构,在多核处理器中执行生成代码,该通信机构用于与在模型仿真器中执行的受控对象模型进行联合仿真;和测量机构,其用于在联合仿真中测量在多核处理器中执行的程序的执行时间。
在一种情况下,能够在系统设计的前级工序确认基于上个周期中的控制值对执行器的控制、通过将该运算处理功能硬件化而使控制速度提高这些要研究的事项。
本发明的上述以及其他的目的、特征、方式以及优点将会在以下针对本发明的结合附图的详细说明中公开。
附图说明
图1是示出系统设计的流程的图。
图2是示出被进行了系统设计的处理的流程的流程图。
图3是示出系统模型300的概要的图。
图4是示出作为该装置发挥功能的计算机400的硬件结构的框图。
图5是示出利用性能验证装置500实现的功能的结构的框图。
图6是示出从模型选择子系统的方式的图。
图7是示出将子系统690替换为了代码生成范围710的状态的图。
图8是示出在选择并行单位的情况下的画面的显示状态的图。
图9是示出被指定为并行单位的各块与其他块的关系的图。
图10是示出用于对每一个并行单位指定核心分配的画面(工序3)。
图11是示出用于以多核执行被分配了核心的并行单位以及生成PIL仿真用代码的画面(工序4)。
图12是示出在工序4的处理(5)中生成的并行代码的一个例子的图。
图13是示出监视器8所显示的状态的图。
具体实施方式
以下,参照附图,对本发明的实施方式进行说明。在以下的说明中,对相同的部件标记上相同的附图标记。它们的名称以及功能也相同。因此,不重复对它们的详细说明。
在以下的实施方式中,引用了以下的文献。
非专利文献1:Simulink应用程序的自动并行,第8届IEEE/ACM代码生成及优化国际研讨会论文集,2010.04.28,第151-159页(Automatic parallelization of simulink applications,Proceedings of the8th annual IEEE/ACM international symposium on Code generation andoptimization,2010.04.28,pages:151-159)
非专利文献2:面向硬实时处理的多核任务配置的评估函数设计,信息处理学会研究报告,2011-SLDM-149(16),1-6,2011-03-18
非专利文献3:控制系统的多核(multi/many core)处理器安装,公益社团法人测量自动控制学会会刊“测量与控制”53(12),1111-1116,2014-12
参照图1,针对系统设计的概要进行说明。图1是示出系统设计的流程的图。
在阶段(phase)100进行系统设计。系统设计包括建模、模型仿真、自动代码生成(ACG:Auto Code Generation)等。在阶段100,例如进行MIL仿真或者PIL仿真。在MIL仿真中,由于进行控制的建模,所以控制对象以及控制器的仿真是由在PC上运行的模型仿真器(例如MATLAB)执行的。在这种情况下,重视详细程度和精度,仿真本身以高速执行。但是,不仿真受控对象以及控制器的控制周期的执行时间。在SIL仿真中,确认控制基于根据模型生成的代码库是否成立。例如,根据控制器模型生成的代码由PC执行,并在与上述模型仿真器的联合下执行仿真。在这种SIL仿真中,确认到软件的动作或者处理的规模。
在阶段110进行系统详细设计/开发。例如,进行外围仿真、高精度仿真、编码/调试、单体测试等。在阶段110进行在PIL仿真环境下的仿真。例如,根据控制器模型生成的代码由微型计算机执行,并执行与模型仿真器的联合仿真。这种仿真本身的速度很慢,但是能够掌握微型计算机的处理量。
在阶段120进行系统验证和系统仿真。例如,系统验证能够包括实机测试和参数调整等。
参照图2,针对本实施方式的性能评估系统的控制结构进行说明。图2是示出进行系统设计的处理的流程的流程图。在一种情况下,性能评估系统具有作为性能评估装置运行的计算机和执行由该性能评估装置创建的源代码的多核处理器。
在步骤S210中生成控制模型(建模)。如画面211所示,将分配PE(处理元件)之前的框线图作为模型来显示。
在步骤S220中进行仿真。例如,进行MILS功能验证。
在步骤S230中将被分配了PE的块(block)插入框线图。如画面212所示,在框线图中显示有块和分配给该块的PE。
在步骤S240中生成多核代码。
在步骤S250中执行多核联合仿真。例如,进行核心分配规划。更加具体地,进行SILS功能验证、SILS性能验证、PILS功能验证、PILS性能验证等。
在步骤S260中,判断在控制周期时间内是否完成了运算。在控制周期时间内完成了运算的情况下(步骤S260中为是(YES)),结束处理。在不是这样的情况下(步骤S260中为否(NO)),处理返回至步骤S210,或者返回至步骤230,进行不同的分配。
[系统模型的概要]
参照图3,针对本实施方式的系统模型300进行说明。图3是示出系统模型300的概要的图。
系统模型300具有传感器310、控制器模型320和执行器330。控制器模型320具有第一块321、第二块322和第n块323。第一块321和第二块322分别与PE324建立了关联。第n块323与PE325建立了关联。传感器310的输出被输入至控制器模型320。控制器模型320的输出被输入至执行器330。执行器330的输出被反馈至传感器310。
在图3中,传感器310和执行器330是控制对象,其作为受控对象模型而由PC上的模型仿真器来仿真。控制器模型320在控制设计初始的功能建模工序中由PC上的模型仿真器来仿真。控制器模型320能够通过由MBD开发环境提供的称为编码器(coder)的工具转换为与模型进行等同的动作的源程序。该源程序能够用于验证SIL仿真。而且,控制器模型320也能够转换为面向微型计算机的源程序,而能够用于验证PIL仿真。
在本实施方式中,控制周期是指,从向传感器310的输入到对执行器330输出控制值为止的期间。在这种情况下,对控制器模型320的代码被分别赋予PE324以及PE325。例如,当从输入至控制器模型320的代码中检测到第一块321以及第二块322时,PE324执行这些块中所包含的命令。即使检测到其他块,但若PE324确认出与自身没有建立关联,则不执行任何处理。
同样地,即使检测到第一块321以及第二块322,但若PE325确认是与自身没有建立关联的块,则不执行这些块中所包含的命令。然后,当检测到第n块323时,PE325执行第n块323中所包含的命令。
通信340和343相当于受控对象与微型计算机之间的通信。通信341和342相当于微型计算机内的核心之间的通信。
参照图4,针对本实施方式的装置的结构进行说明。图4是示出该装置400的硬件结构的框图。装置400由计算机410、调试模拟器420以及微型计算机评估板430构成。微型计算机评估板430具有多核处理器10和通信IF(Interface,接口)17。
调试模拟器420是用于与计算机410连接,与搭载于微型计算机评估板430上的多核处理器进行通信,以控制微型计算机的执行,并取得执行结果的装置。调试模拟器420普遍用于使用了微型计算机的控制系统开发中。因此,不重复详细的说明。
计算机410的主要构成要素有:CPU1,执行程序;鼠标2以及键盘3,用于接受计算机410的用户所输入的指示;RAM(RandomAccess Memory,随机访问存储器)4,易失性地保存通过CPU1执行程序而生成的数据、或者经由鼠标2或键盘3输入的数据;硬盘5,非易失性地保存数据;光盘驱动装置6;通信IF(Interface,接口)7;以及监视器8。各构成要素彼此通过总线连接。在光盘驱动装置6上安装有CD-ROM9或者其他光盘。通信IF7包括USB(Universal SerialBus,通用串行总线)接口、有线LAN(Local Area Network局域网)和无线LAN、Bluetooth(蓝牙,注册商标)接口等,但是不限于此。CPU1也可以内置有计时器。
计算机410中的处理由各硬件以及利用CPU1执行的软件来实现。有时这种软件预先保存于硬盘5中。另外,有时软件也被保存于CD-ROM9或者其他的计算机可读取的非易失性的数据记录介质,来作为程序产品流通。或者,有时该软件还作为能够由与互联网或者其他网络连接的信息供应商下载的程序产品来提供。这种软件利用光盘驱动装置6或者其他的数据读取装置从数据记录介质中读取,或者在经由通信IF7下载以后,将其暂时保存于硬盘5中。该软件由CPU1从硬盘5读出,以可执行的程序的形式保存于RAM4。CPU1执行该程序。
构成图4所示的计算机410的各构成要素为一般通用的。因此,本实施方式的最实质的部分也可以说是计算机410所保存的程序。由于计算机410的各硬件的动作是公知的,所以不重复详细的说明。
此外,作为数据记录介质,不限于CD-ROM、FD(Flexible Disk,软盘)和硬盘,也可以是磁带、盒式磁带、光盘(MO(Magnetic OpticalDisc,磁光盘)/MD(Mini Disc,迷你光盘)/DVD(Digital VersatileDisc,数字多功能光盘))、IC(Integrated Circuit,集成电路)卡(包括存储卡)、光卡、掩膜ROM、EPROM(Electronically ProgrammableRead-Only Memory,电子可编程的只读存储器)、EEPROM(Electronically Erasable Programmable Read-Only Memory,电子可擦可编程只读存储器)、快闪ROM等半导体存储器等固定地保持程序的非易失性的数据记录介质。
此处所讲的程序不仅是指能够由CPU直接执行的程序,而且还可以包含源程序形式的程序、进行了压缩处理的程序和加密了的程序等。
参照图5,针对本实施方式的性能验证装置500的结构进一步进行说明。图5是示出由性能验证装置500实现的功能的结构的框图。性能验证装置500可由例如计算机410实现。
性能验证装置500具有输入部510、操作部520、存储部530、运算装置、和相当于显示装置的显示部560。运算装置具有选择部540、并行执行单位指定部542、分配部544、执行顺序指定部546、生成部548和仿真执行部550。运算装置主要由CPU1实现。
输入部510接受对性能验证装置500输入的代码或者其他数据。例如,输入部510由Ethernet(以太网,注册商标)、有线或无线LAN(Local Area Network)或者其他的通信接口实现。
操作部520接受使用者对性能验证装置500的操作。例如,操作部520由鼠标、键盘或者其他的输入设备实现。
存储部530保存有赋予性能验证装置500的数据或者由性能验证装置500所生成的数据等。存储部530由例如非易失性的存储装置(硬盘、快闪存储器等)或者RAM或其他易失性的存储装置实现。
选择部540接受从显示部560上显示的控制系统的模型中选择的作为多核处理器所执行的程序的仿真对象的代码生成范围。在一种情况下,选择部540响应例如赋予操作部520的使用者的命令,来选择代码生成范围。
并行执行单位指定部542响应对操作部520的操作,接受对在选择部540所选择出的代码生成范围中包含的多个处理中作为并行处理的对象的多个处理的指定。以下,将所指定的处理称为“并行执行单位”。
分配部544基于由操作部520接受的操作和由并行执行单位指定部542指定的并行执行单位,将各并行执行单位与该多核处理器所包含的各核心建立关联。将表示建立了关联的状态的数据保存于存储部530。
执行顺序指定部546基于对操作部520的操作和由分配部544建立了关联的数据,来指定该建立了关联的各并行执行单位的执行顺序。
生成部548基于由执行顺序指定部546指定的顺序和各并行执行单位,来生成作为该多核处理器执行的对象的源代码。该源代码包含每个周期与模型仿真器的通信处理,各核心通用该源代码。
仿真执行部550将由生成部548生成的源代码转换为多核处理器可执行的形式,经由调试模拟器等使多核处理器执行转换后的代码,与模型仿真器进行PIL仿真。
显示部560接受输入的控制系统的模型或者生成的源代码的仿真的结果,显示所输入的数据。显示部560由例如液晶监视器或者有机EL(Electro Luminescence,电致发光)监视器等实现。
<实施例1>
实施例1按照以下说明的一系列工序,生成利用多核运行的并行源代码,提供在MIL仿真或者SIL仿真下能够实施功能验证的环境。在这种环境中,根据模型文件由编码器生成的一个源程序被多个核心所共有并执行。
一系列的工序包括例如以下这样的工序。
(工序1)CPU1对选择并指定了被设为PIL仿真的对象的代码生成范围这一情况进行检测。
(工序2)CPU1对在选择范围内指定了并行单位这一情况进行检测。
(工序3)CPU1对将针对每个并行单位进行核心分配的核心指定这一情况进行检测。
(工序4)CPU1检测被分配了核心的并行单位之间的执行顺序控制的指定、以及每个控制周期的周期开始以及周期结束时的核心同步的指定,并生成代码。
(工序5)CPU1通过将模型仿真器上的受控对象模型与多核上的控制器程序联合的PIL仿真,将执行时间信息显示于监视器8上。
在工序1中,用户首先通过PIL仿真,选择想要利用多核微型计算机执行的控制周期范围。
在工序2中,用户将该选择范围划分为可并行执行的单位,并将划分出的单位定义为块。
在工序3中,用户针对并行执行单位的各块,指定执行该块的处理的核心,从而将该块与核心建立关联。以下,将并行执行单位的块称为并行单位块,将被指定了核心分配的块称为核心分配指示块。
执行代码的各核心针对各并行单位块读出由建立了关联的核心分配指示块指定的核心编号(例如PE1、PE2等)、和在多核微型计算机内的各处理器元件(PE)中作为硬件功能而保存的核心编号。各核心对所指定的核心编号与保存的核心编号进行比较。在这两个核心编号一致的情况下,作为用于执行该块的生成代码的条件执行语句,该核心被设定为生成源代码。另一方面,在这两个核心编号不一致的情况下,该核心被设定为不执行该块的生成代码。
而且,在这种对并行单位块的设定中还必须包括在利用多个核心对在一个控制周期内执行的多个块进行并行执行的情况下所需的设定(例如,用于控制执行顺序的设定)。除此之外,还必须包括:在利用多个核心执行与一个控制周期对应的代码串的基础上,将受控对象模型与多核联合时,用于使与一个控制周期对应的开始和完成同步即核心间同步的设定。因此,在工序4中,用户进行用于控制如这样的执行顺序和核心间同步的指定。然后,生成可由多核执行的并行代码。针对所生成的并行代码,在工序5中,CPU1与受控对象模型一起进行联合仿真,并将多核执行时的执行时间信息显示于监视器8。
[模型应用工序]
以下,参照图6~图11,针对将模型例子应用于本实施方式的仿真环境中的情况进行说明。该模型例是例如基于MATLAB/Simulink的模型例。
(代码生成单位的指定)
图6是示出从模型选择子系统的方式的图。在一种情况下,关于工序1,例如,在Simulink环境下,能够使用由Simulink提供的Subsystem(子系统)块功能等来指定编码器的代码生成单位。
例如,监视器8显示块610、620、630、640、650、660、670和680。性能验证装置500的用户操作鼠标来对构成子系统690的区域(代码生成范围)进行指定,该子系统690相当于该模型的一部分。例如,子系统690具有块610、620、630、640和650。子系统690是代码生成的对象。
图7是示出将子系统690替换为代码生成范围710的状态的图。即,监视器8可显示代码生成范围710和块660、670、680。
(并行单位的指定)
图8是示出在选择并行单位的情况下的画面的显示状态的图。在此阶段,将可并行运行的单位分离,对分离出的各个单位设定用于生成核心分配执行代码的占位符。占位符是指为了以后能够插入实际的内容而暂时保留的位置。在本实施方式中,将核心分配控制代码插入占位符,还可以在此基础上插入该单位的计时代码。
并行单位的指定例如通过使用由Simulink提供的EnabledSubsystem(使能子系统)块功能等将可并行运行的单位分离来实现。Enabled Subsystem块能够针对并行单位准备用于生成核心分配控制代码等的占位符。
监视器8基于使用者为上述目的而进行的操作,显示并行单位810、820、830、840和850。使用者可选择代码生成范围710中所包含的各块来分别作为并行单位。
在图8所示的例子中,块610、620、630、640、650分别被指定为并行单位810、820、830、840、850。即,块610、620、630、640、650分别被选择作为多核处理器的各核心的并行处理的对象。
关于并行单位的选择,例如以使像Simulink中的Goto(去向)块和From(来自)块这样构成对的两个以上的块包含于一个并行单位的方式进行选择。因此,例如,在一种情况下,构成对的两个以上的块可以存在于代码生成范围710之外。或者,在另一种情况下,构成对的两个以上的块能包含在同一代码生成范围内。
图9是示出被指定为并行单位的各块与其他块的关系的图。监视器8显示被指定为并行单位的块610、620、630、640、650和输出端口910、920、930、940、950。
(对各个并行单位指定核心的分配)
图10示出用于对每一个并行单位指定核心分配的画面(工序3)。在工序3中,通过使用由Simulink提供的From块功能等,对各并行单位定义核心识别指示,并连接所定义的核心识别指示。利用核心的识别编号(例如PE1、PE2等)对From块指定执行所连接的EnabledSubsystem块的核心。
作为一个例子,在一种情况下,监视器8显示被指定为并行单位的块610、620、630、640、650、示出执行了各块的处理元件(PE)的图标、和其他的输出端口910、920、930、940、950。详细地,块610、块630和块650分别与第一PE(=PE1)1010、1030、1050的图像建立了关联。块620被分配给第二PE(=PE2)的图像1020。块640被分配给第三PE(=PE3)的图像1040。表示这些分配的数据被保存于例如性能验证装置500的硬盘5。
(执行顺序的控制等)
图11示出用于以多核执行被分配了核心的并行单位以及生成PIL仿真用代码的画面(工序4)。即,作为工序4,进行用于控制执行顺序等的如下的处理。
·处理(1):根据有无并行单位的输入以及输出,生成用于控制块之间的执行顺序的等待代码,来作为声明代码和结束代码。
·处理(2):生成用于由多个核心执行与一个控制周期对应的代码串的、使开始和完成同步的代码。
·处理(3):生成用于由指定核心来执行与并行单位对应的代码串的、执行核心辨别真假函数的函数定义代码。
·处理(4):在工序2中准备的占位符,生成作为处理(3)的结果而生成的执行核心辨别真假函数的调用代码,来作为核心分配控制代码。
·处理(5):对于应用了处理(1)~(4)的模型文件,针对在工序1中指定的Subsystem,编码器生成源代码。
在处理(1)中,针对并行单位,当存在分配给其他核心的并行单位的输出信号作为输入信号时,用户描述等待输出侧的并行单位执行的代码来作为声明代码。而且,当存在作为分配给其他核心的并行单位的输入信号的输出信号时,用户描述通知执行完成的代码来作为结束代码。
在一种情况下,监视器8显示块610、620、630、640、650,示出分配给各块的PE的图像1010、1020、1030、1040、1050和其他的输出端口910、920、930、940、950。由于分配给PE2的块620的输出信号是分配给另一核心PE1的块650的输入信号,所以描述了通知执行完成的代码1410来作为结束代码。同样地,由于分配给PE3的块640的输出信号是分配给另一核心PE1的块650的输入信号,所以描述了通知执行完成的代码1410来作为结束代码。由于分配给PE1的块650将分配给其他核心的块620和块640的输出信号作为输入信号,所以描述了等待块620和块640执行完成的代码1420来作为声明代码。由于在分配给PE1的其他块610和块630与分配给其他核心的并行单位之间没有信号,所以在块610和630中均没有描述执行完成通知代码和等待代码。
在处理(2)中,用户针对通过工序1指定的代码生成单位,描述使全部的PE同步的等待代码来作为声明代码以及结束代码。
参照图12,针对并行代码的一个例子进行说明。图12是示出在工序4的处理(5)中生成的并行代码的一个例子的图。
例如,代码1210相当于通过处理(3)生成的函数定义代码的一部分。代码1220以及代码1250相当于通过处理(2)生成的用于使利用多个核心的开始和完成同步的代码的一部分。代码1230相当于通过处理(4)生成的核心分配控制代码的一部分。代码1240相当于通过处理(1)生成的用于维持块之间的执行顺序的等待代码。
在工序5中,以经由PIL仿真用的通信IF执行所生成的并行代码的方式进行设定。由于通过工序4,使得全部核心在每一个控制周期的开始和完成均被同步,所以能够利用多核处理器中的任一个PE来执行与基于PIL仿真用的通信IF的模型仿真器之间的通信。利用该PIL仿真用并行代码,使多核处理器10与在计算机410上运行的模型仿真器进行通信,进行联合仿真,并显示在每一个控制周期内的执行时间。Mathworks公司的rtiostream接口是这种PIL仿真用通信IF的例子。在后面说明画面的显示方式。
此处,再次参照图3,时序图示出通过以上各工序生成的并行源代码的执行例。当将控制器的一个控制周期的开始与从模型仿真器上的传感器发送的输入信号一并通知给多核微型计算机时,多核微型计算机中所包含的多个核心执行由多个核心所共有的一个并行程序。在程序中附件了条件语句,使得各核心将每个核心所具有的核心识别编号与分配给该并行程序中所包含的块的核心识别编号进行比较,并能够对在并行程序中自身应该执行的程序部分进行辨别并执行。例如,在第一核心324(PE1)运行的程序接收模型仿真器上的传感器输出,与第二核心325(=PE2)一并开始进行在控制周期内应该运算的处理。当运算处理完成时,核心324待机直到核心325完成运算处理为止。当核心324和核心325完成各个处理时,核心324经由PIL仿真用通信IF来向模型仿真器通知控制器的一个控制周期的完成,并向执行器330发送控制量。
在以上的应用例中,所生成的并行源代码是以多核微型计算机的多个核心共用同一程序代码并能够执行同一代码的方式来生成的,但也可以生成非共用的不同的程序代码,这些不同的程序代码含有与分别分配给各核心的并行单位对应的代码片段。
而且,在以上的应用例子中,在利用MBD工具GUI(GraphicalUser Interface,图形用户界面)操作各工序的情况下进行了说明,但是也可以预先准备雏形(模型),作为块设置库231来提供各工序以及各处理。例如,在工序4中,能够根据核心识别信息、核心个数等多核微型计算机的规格,来定性地准备作为处理(1)~(4)的由用户操作的内容。因此,也可以以预先准备这些来作为块设置库231并能够通过MBD工具进行利用的方式来提供。
[画面的显示]
参照图13,针对在另一情况下的性能验证装置500的画面的显示方式进行说明。图13是示出监视器8所显示的状态的图。
在一种情况下,监视器8显示控制状况显示区域1310和核心配置指定区域1320、执行时间显示区域1330。各区域的显示方式不限于图13所示的那样。
控制状况显示区域1310显示在使用由性能验证装置500生成的源代码进行了控制仿真的情况下的动作的图表。核心配置指定区域1320显示有示出在先前创建的核心与块的关系的图像。执行时间显示区域1330显示在根据所生成的源代码来执行控制的情况下的时间。
如以上所述,若采用实施例1的性能验证装置500,则能够根据控制模型,生成分配给多个核心的控制器程序,并在每个控制周期执行该控制器程序,能够显示当时在多核微型计算机上的执行时间。
在各核心与利用PC上的模型仿真器运行的受控对象模型逐个进行通信的方法中,核心之间的排他或同步的控制以及与受控对象模型的连接通信的工序变得复杂,使得联合仿真速度下降。与此相对,在与受控对象模型进行联合仿真通信的核心是一个核心的本实施例中,能够仅在多核微型计算机侧管理多核间的排他或同步。
如以上所述,在实施例1中示出了通过GUI操作来指示核心分配的例子、和准备核心分配的块设置库使控制模型设计者在模型上指示每一个块的核心分配的例子,但也可以通过能够根据模型结构提取并行性的软件来生成分配指示。非专利文献1以及非专利文献3是这种并行性提取技术的例子,提出了根据控制模型提取并行性的方法。
<实施例2>
以下,针对实施例2进行说明。在实施例1中,测量了与一个控制周期对应的从开始到最后的等待的整体时间。除了这种方式以外,在另一种情况下,还能够以对控制周期内的从每一个核心的开始到运算处理后的等待开始为止的时间进行测量的方式生成源代码。在这种情况下,能够确认出多个核心中的耗费处理时间很长的核心。
在又一种情况下,还能够以对控制器块的各子块的执行时间进行测量的方式生成代码。在这种情况下,能够得到各子块的执行时间,各子块的执行时间有助于在控制周期内无法进行运算的情况下重新进行核心分配。
即,在基于披露的技术思想的多核PIL仿真环境中,能够显示:
·在多核微型计算机上的控制器程序的各控制周期的执行时间,
·同样地,在各控制周期中的直到每一个核心运算结束为止的执行时间,
·同样地,在各控制周期中的每一个子块的执行时间。
以上述方式得到的信息能够在基于任务执行时间利用进行核心分配的工具来生成获得良好的处理时间的程序时使用。非专利文献2为硬实时限制下的多核任务配置方法和这种核心分配工具的例子。在非专利文献2中,通过在评估函数中使用各任务的WCRT(Worst CaseResponse Time,最大响应时间)的累计值,能够成为在核心之间的相关性、等待时间比例和不均衡率的各项目取得平衡的配置。WCRT是从任务的作业被发布(release)到该作业完成为止的响应时间的最大值,在多核的情况下非常难以计算。在采用本实施方式的PIL仿真环境中,能够比较容易地取得与WCRT对应的值。
另一方面,以取得每一个任务的WCRT的情况那样,在一个控制周期内的测量对象区间的数量越是增加,通常通信工序也增加,仿真时间变长,因此,最好是能够选择性地指定与目的相适应的测量方法。
作为能够选择性进行指定的测量方法的例子,在实施例1中,能够使用微型计算机(计算机410)的中断功能来对测量对象区间的执行时间进行测量。另外,还能够使用微型计算机的跟踪调试功能来进行测量。在这种情况下,根据赋予各跟踪信息的时间戳等来计算出执行时间。
同样地,还能够使用微型计算机的性能计数器功能来对测量对象区间的执行时间进行测量。使用跟踪调试功能或者性能计数器功能的方法与使用中断功能的方法相比,能够减少使控制程序的执行流程中断的次数,因此,能够提高仿真速度。
<实施例3>
以下,针对实施例3进行说明。实施例1以采样频率是一个的传统的单速率信号处理作为例子,说明了利用受控对象模型和多核执行的控制器的PIL仿真方式。在混合有多个采样频率的多速率信号处理中,经常将这些采样频率以频率倍增来进行控制设计。
实施例3是一种利用采样频率倍增的受控对象和控制器的多核PIL仿真方式,按照每一种采样频率将控制器模型内分离,并应用实施例1来控制多个采样频率中的实时要求高的短周期。例如,在作为短周期的采样频率,而具有为最短周期的基本频率A1及为其2倍的周期的频率A2的情况下,按照每一种采样频率将控制器模型内分离为频率A1的组分和频率A2的组分,并分别应用实施例1。在多核微型计算机(多核处理器10)上的控制器程序与在计算机410上的模型仿真器上运行的受控对象模型每在与频率A1对应的一个控制周期进行通信并进行联合仿真,该频率A1是在短周期的采样频率中最大的频率。
在多速率信号处理中,在具有长周期的采样频率的控制中实时要求比较低,经常分配有系统诊断处理等。这种具有长周期的采样频率的控制只要在将实时要件高的控制优先分配给PE之后分配给负荷低的PE即可,因此,在进行上述的短控制周期的PIL仿真时未被包含在PIL仿真对象中。
<实施例4>
以下,针对实施例4进行说明。在以上的实施例中,通过PIL仿真取得的、控制器程序在每一个控制周期的执行时间也可以用于计算机410上的SIL仿真。此时,在多核处理器10中不执行程序,作为该块的执行时间而参照通过PIS仿真取得的执行时间。若采用这种方法,与SIL仿真相比,控制器程序的控制时间的估算精度提高,相比于与多核处理器10进行的PIL仿真,能够实现高速仿真。
(总结)
能够将由被进行了模型设计的控制器生成的代码分配给多个CPU核心,将因分配对通信开销等的影响包括在内来进行评估,对构成控制器程序的各任务向核心的分配进行规划。
针对本发明的实施方式进行了说明,但是本发明披露的实施方式的全部方面都是例示性的,应该理解为非限制性的。本发明的范围由权利要求的范围表示,意在包含与权利要求的范围等同的意思以及在范围内的全部变更。

Claims (11)

1.一种性能验证装置,其用于生成用来验证控制系统的性能的源代码,其特征在于,
具有显示装置和运算装置,
所述运算装置包括:
选择机构,其用于从在所述显示装置上显示的控制系统的模型中,选择成为在多核处理器中所执行的程序的仿真对象的代码生成范围;
指定机构,其用于接受对所述代码生成范围中所包含的多个处理中的作为并行处理的对象的多个并行执行单位的指定;
分配机构,其用于将各所述并行执行单位与该多核处理器中所包含的各核心建立关联;
执行顺序指定机构,其用于对建立了所述关联的各所述并行执行单位的执行顺序和核心间同步进行指定;
生成机构,其用于基于各所述并行执行单位和所述执行顺序,生成成为所述多核处理器的执行对象的源代码;
通信机构,在多核处理器中执行生成代码,所述通信机构为了与在模型仿真器中执行的受控对象模型进行联合仿真而与所述多核处理器进行通信;和
测量机构,其用于在所述联合仿真中测量在多核处理器中执行的程序的执行时间。
2.如权利要求1所述的性能验证装置,其特征在于,
所述源代码包括各核心的识别信息、和作为各核心的处理对象与该核心建立了关联的处理块。
3.如权利要求1所述的性能验证装置,其特征在于,
所述生成机构生成各所述核心共用的源代码。
4.如权利要求1所述的性能验证装置,其特征在于,
还具有用于与所述多核处理器进行通信的输入输出装置,
所述显示装置显示由所述多核处理器执行所述源代码的执行结果。
5.如权利要求1所述的性能验证装置,其特征在于,
所述指定机构构成为将所述多个处理中的具有相关关系的两个以上处理从并行处理的对象中排除。
6.一种系统,用于验证控制系统的性能,其特征在于,
具有如权利要求1所述的性能验证装置和多核处理器,
所述性能验证装置具有用于向所述多核处理器输出所生成的源代码的输出部,
所述源代码被输入至所述多核处理器中所包含的各所述核心。
7.一种方法,用于使计算机生成用来验证控制系统的性能的源代码,其特征在于,包括:
接受从控制系统的模型中选择的成为在多核处理器中所执行的程序的仿真对象的代码生成范围的步骤;
接受对所述代码生成范围中所包含的多个处理中的作为并行处理的对象的多个并行执行单位的指定的步骤;
将各所述并行执行单位与该多核处理器中所包含的各核心建立关联的步骤;
对建立了所述关联的各所述并行执行单位的执行顺序和核心间同步进行指定的步骤;
基于各所述并行执行单位和所述执行顺序,生成成为所述多核处理器的执行对象的源代码的步骤;
在多核处理器中执行生成代码,为了与在模型仿真器中执行的受控对象模型进行联合仿真而与所述多核处理器进行通信的步骤;和
在所述联合仿真中测量在多核处理器中执行的程序的执行时间的步骤。
8.如权利要求7所述的方法,其特征在于,
所述源代码包括各核心的识别信息、和作为各核心的处理对象与该核心建立了关联的处理块。
9.如权利要求7所述的方法,其特征在于,
生成所述源代码的步骤包括生成各所述核心共用的源代码的步骤。
10.如权利要求7所述的方法,其特征在于,还包括:
与所述多核处理器进行通信的步骤,
显示由所述多核处理器执行所述源代码的执行结果的步骤。
11.如权利要求7所述的方法,其特征在于,
所述进行指定的步骤包括将所述多个处理中的具有相关关系的两个以上处理从并行处理的对象中排除的步骤。
CN201610270923.8A 2015-04-28 2016-04-27 性能验证装置、性能验证系统以及性能验证方法 Active CN106095654B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015091968A JP6378128B2 (ja) 2015-04-28 2015-04-28 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム
JP2015-091968 2015-04-28

Publications (2)

Publication Number Publication Date
CN106095654A true CN106095654A (zh) 2016-11-09
CN106095654B CN106095654B (zh) 2021-04-02

Family

ID=57204858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610270923.8A Active CN106095654B (zh) 2015-04-28 2016-04-27 性能验证装置、性能验证系统以及性能验证方法

Country Status (3)

Country Link
US (1) US10372422B2 (zh)
JP (1) JP6378128B2 (zh)
CN (1) CN106095654B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228410A (zh) * 2018-01-24 2018-06-29 北京航空航天大学 一种基于Event-B的多核并发系统验证方法
CN112181757A (zh) * 2020-08-14 2021-01-05 中山大学 一种基于模拟器的细粒度功耗估计方法
CN112400162A (zh) * 2018-07-19 2021-02-23 日立汽车系统株式会社 模拟装置及其方法、以及ecu装置
CN113128143A (zh) * 2021-06-17 2021-07-16 北京燧原智能科技有限公司 Ai处理器的仿真方法、装置、计算机设备及存储介质
CN113212330A (zh) * 2020-01-17 2021-08-06 操纵技术Ip控股公司 用于动态软件管理的系统和方法
CN113759245A (zh) * 2021-09-14 2021-12-07 许昌开普检测研究院股份有限公司 基于统一硬件平台的继电保护静模测试和动模测试方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101856348B1 (ko) * 2016-08-26 2018-06-25 현대자동차주식회사 액츄에이터 제어 데이터 검증 방법
EP3352028A1 (de) 2017-01-23 2018-07-25 dSPACE digital signal processing and control engineering GmbH Verfahren zum test einer steuergerätefunktion eines steuergeräts eines fahrzeugs
JP6890460B2 (ja) * 2017-04-27 2021-06-18 日立Astemo株式会社 車両制御システム検証手法および検証装置および制御装置
JP7017871B2 (ja) * 2017-07-06 2022-02-09 日立Astemo株式会社 車両制御模擬装置
JP6669705B2 (ja) 2017-10-25 2020-03-18 ファナック株式会社 数値制御装置
CN108052311B (zh) * 2017-12-06 2021-05-18 北京航天计量测试技术研究所 一种基于通用体系框架的计量信息系统
CN109636212B (zh) * 2018-12-19 2023-06-16 中国科学技术大学 作业实际运行时间的预测方法
JP7225064B2 (ja) * 2019-09-12 2023-02-20 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム
JP7441861B2 (ja) 2020-01-09 2024-03-01 日立Astemo株式会社 演算装置及び検査方法
US20220075349A1 (en) * 2020-09-08 2022-03-10 Delta Tau Data Systems, Inc. Method and apparatus for multi-core processor management in a motion control system
KR102387137B1 (ko) * 2020-12-23 2022-04-15 재단법인대구경북과학기술원 전자식 변속 제어기의 고장 검출 시스템
WO2022239101A1 (ja) * 2021-05-11 2022-11-17 三菱電機株式会社 ソフトウェア検証装置、ソフトウェア検証方法、および検証プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102171650A (zh) * 2008-11-24 2011-08-31 英特尔公司 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置
CN102754079A (zh) * 2010-02-23 2012-10-24 富士通株式会社 多核处理器系统、控制程序、以及控制方法
JP2014102734A (ja) * 2012-11-21 2014-06-05 Renesas Electronics Corp 性能検証プログラム、性能検証方法及び性能検証装置
CN104049577A (zh) * 2013-03-13 2014-09-17 西门子公司 用于运行工业控制系统的方法以及工业控制系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003173256A (ja) 2001-12-06 2003-06-20 Denso Corp プログラムコード生成装置及びプログラム
US7222218B2 (en) * 2002-10-22 2007-05-22 Sun Microsystems, Inc. System and method for goal-based scheduling of blocks of code for concurrent execution
US8219378B1 (en) * 2007-09-28 2012-07-10 The Mathworks, Inc. Automatic numerical simulation of processor environment
US8694293B2 (en) * 2008-06-30 2014-04-08 Toyota Technical Development Corporation Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus
US9459890B2 (en) * 2008-07-10 2016-10-04 Mentor Graphics Corporation Controlling real time during embedded system development
JP5412305B2 (ja) 2010-01-27 2014-02-12 株式会社日立アドバンストデジタル モデルベースの性能予測システム
JP5755103B2 (ja) * 2011-10-18 2015-07-29 住友重機械工業株式会社 ブロック線図処理装置およびブロック線図の処理方法
US9251308B2 (en) * 2012-07-23 2016-02-02 International Business Machines Corporation Simulation method, system, and program
EP2940586B1 (en) * 2014-04-29 2023-03-01 Hitachi, Ltd. Method and system for testing control software of a controlled system
JP6427054B2 (ja) * 2015-03-31 2018-11-21 株式会社デンソー 並列化コンパイル方法、及び並列化コンパイラ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102171650A (zh) * 2008-11-24 2011-08-31 英特尔公司 用于将顺序程序分解为多个线程、执行所述线程和重构该顺序执行的系统、方法和装置
CN102754079A (zh) * 2010-02-23 2012-10-24 富士通株式会社 多核处理器系统、控制程序、以及控制方法
JP2014102734A (ja) * 2012-11-21 2014-06-05 Renesas Electronics Corp 性能検証プログラム、性能検証方法及び性能検証装置
CN104049577A (zh) * 2013-03-13 2014-09-17 西门子公司 用于运行工业控制系统的方法以及工业控制系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228410A (zh) * 2018-01-24 2018-06-29 北京航空航天大学 一种基于Event-B的多核并发系统验证方法
CN108228410B (zh) * 2018-01-24 2020-09-25 北京航空航天大学 一种基于Event-B的多核并发系统验证方法
CN112400162A (zh) * 2018-07-19 2021-02-23 日立汽车系统株式会社 模拟装置及其方法、以及ecu装置
CN113212330A (zh) * 2020-01-17 2021-08-06 操纵技术Ip控股公司 用于动态软件管理的系统和方法
CN112181757A (zh) * 2020-08-14 2021-01-05 中山大学 一种基于模拟器的细粒度功耗估计方法
CN113128143A (zh) * 2021-06-17 2021-07-16 北京燧原智能科技有限公司 Ai处理器的仿真方法、装置、计算机设备及存储介质
CN113128143B (zh) * 2021-06-17 2021-09-28 北京燧原智能科技有限公司 Ai处理器的仿真方法、装置、计算机设备及存储介质
CN113759245A (zh) * 2021-09-14 2021-12-07 许昌开普检测研究院股份有限公司 基于统一硬件平台的继电保护静模测试和动模测试方法

Also Published As

Publication number Publication date
US20160321037A1 (en) 2016-11-03
US10372422B2 (en) 2019-08-06
CN106095654B (zh) 2021-04-02
JP6378128B2 (ja) 2018-08-22
JP2016207166A (ja) 2016-12-08

Similar Documents

Publication Publication Date Title
CN106095654A (zh) 性能验证装置、具有性能验证装置的系统以及方法
JP6122621B2 (ja) プロジェクトの計画及び管理のシミュレーション及び視覚化
Arrieta et al. Automatic generation of test system instances for configurable cyber-physical systems
US11182132B1 (en) Determining functional equivalence of configurations of a model
US10331548B2 (en) Method and computer system for compiling and testing a control program
CN104573193B (zh) 一种航天器gnc系统快速设计方法
CN104391791B (zh) 嵌入式控制算法的测试方法及装置
CN106502889B (zh) 预测云软件性能的方法和装置
EP1971944A2 (en) Implementing a design flow for a programmable hardware element that includes or is coupled to a processor
CN104866419B (zh) 一种虚拟平台以及应用层软件测试方法及系统
CN110249300A (zh) 内置于数据集成工作流编辑器中的测试用例生成器
CN110377520A (zh) 交易场景的测试方法及装置、电子设备和可读存储介质
US10884715B2 (en) Method for generating source code
CN107615190A (zh) 程序生成装置、程序生成方法及程序生成程序
CN107533473A (zh) 用于仿真的高效波形生成
CN109711002A (zh) 新车型载荷分解方法及装置
US20220309218A1 (en) Method for dividing simulation models up between a processor and an fpga
CN103294482B (zh) 用于PWscf并行计算系统的Web服务封装方法以及系统
US10444745B2 (en) Method for configuring a tester equipped for testing a control unit
US9733911B2 (en) Value transfer between program variables using dynamic memory resource mapping
CN104850478B (zh) 一种建立待测对象模型的方法及虚拟测试方法
US9841954B1 (en) Method and system for automatic code generation
CN104102579B (zh) 一种基于多核或众核嵌入式处理器的网络测量系统及方法
US9870206B2 (en) Replication structure in a graphical programming language
JP5328447B2 (ja) 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体

Legal Events

Date Code Title Description
C06 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