CN111123736A - 用于使用硬件抽象软件层的***的通用虚拟化平台 - Google Patents

用于使用硬件抽象软件层的***的通用虚拟化平台 Download PDF

Info

Publication number
CN111123736A
CN111123736A CN201910962065.7A CN201910962065A CN111123736A CN 111123736 A CN111123736 A CN 111123736A CN 201910962065 A CN201910962065 A CN 201910962065A CN 111123736 A CN111123736 A CN 111123736A
Authority
CN
China
Prior art keywords
proxy
hardware system
physical hardware
virtual machine
physical
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
CN201910962065.7A
Other languages
English (en)
Inventor
J·N·霍特拉
A·R·亨特
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.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of CN111123736A publication Critical patent/CN111123736A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

用于使用硬件抽象软件层的***的通用虚拟化平台。提出了用于通过在代理虚拟机中在对应仿真的代理物理硬件***上执行硬件***应用软件来测试物理硬件***的技术。这些技术包括:获得与物理硬件***的各方面匹配的代理物理硬件***;在虚拟化***中构造代理虚拟机;使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真;在代理虚拟机中执行硬件抽象软件层;由虚拟化***的硬件抽象软件层在代理虚拟机中在代理物理硬件***上使用存储器映射至少一个适配器执行硬件***应用软件;以及使用虚拟化***通过在代理物理硬件***上在代理虚拟机中执行硬件***应用软件来测试物理硬件***。

Description

用于使用硬件抽象软件层的***的通用虚拟化平台
技术领域
本公开涉及建模和虚拟化。具体地,本公开提供通过使用硬件抽象软件层对专用硬件***进行高保真仿真。
背景技术
在复杂电子***和装置的工程、开发和测试期间,物理硬件及其规范可为有限的资源。因此,参与这些***的开发的开发者(例如,科学家、工程师、软件开发者和测试者)在***和装置的开发中可能无法访问物理硬件直至很晚。例如,在硬件***的规范和设计完成与硬件***的第一早期版本可用于开发和测试之间常常存在大量的产品开发时间。
利用物理硬件的规范的知识,有时可使用虚拟化平台来解决物理硬件本身的有限可用性,该虚拟化平台可以是执行物理硬件的软件的嵌入式计算装置(例如,航空电子计算机)。然而,如果不是实际访问,使用这种虚拟化平台需要至少了解物理硬件的规范。这些物理硬件规范可能不容易获得以允许虚拟化平台的构造。例如,由于知识产权问题,或者仅仅因为没有合同义务提供该信息,硬件供应商有时不愿意提供必要的硬件细节。有时可协商公布必要硬件信息,但这会花费数月时间并且常常伴随着限制性成本和许可考虑因素。
发明内容
根据各种实施方式,提出了一种通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的方法。该方法包括:获得与物理硬件***的各方面匹配的代理物理硬件***;在虚拟化***中从代理物理硬件***构造代理虚拟机;使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真;在代理虚拟机中执行硬件抽象软件层;通过虚拟化***的硬件抽象软件层使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器在代理物理硬件***上在代理虚拟机中执行硬件***应用软件;以及使用虚拟化***通过在代理物理硬件***上在代理虚拟机中执行硬件***应用软件来测试物理硬件***。
上述实施方式的各种可选特征包括以下。硬件抽象软件层可包括ARINC 653操作***。至少一个适配器可在硬件抽象软件层中执行。至少一个适配器可在代理虚拟机中执行。至少一个适配器可包括在软件抽象层中执行的第一适配器以及在代理虚拟机中执行的第二适配器。物理硬件***可包括航空电子***,其包括多个线路可更换单元。该方法可包括:基于测试修改物理硬件***以生成修改的物理硬件***;以及部署修改的物理硬件***。获得与物理硬件***匹配的代理物理硬件***可包括获得至少具有与物理硬件***的处理器相同的处理器的代理物理硬件***。在虚拟化***中从代理物理硬件***构造代理虚拟机可包括至少对代理物理硬件***的处理器进行仿真。获得与物理硬件***匹配的代理物理硬件***可继续,而无需访问物理硬件***的规范。该方法可包括使用虚拟化***来模拟至少一个载具物理硬件***与训练载具物理硬件***的用户。
根据各种实施方式,提出了一种用于通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的***。该***包括:代理物理硬件***,其与物理硬件***的各方面匹配;以及虚拟化***,其包括从代理物理硬件***构造的代理虚拟机,其中代理虚拟机对代理物理硬件***的硬件组件进行仿真并执行硬件抽象软件层,该硬件抽象软件层使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器在代理虚拟机中执行硬件***应用软件。
上述实施方式的各种可选特征包括以下。硬件抽象软件层可包括ARINC 653操作***。至少一个适配器可在硬件抽象软件层中执行。至少一个适配器可在代理虚拟机中执行。至少一个适配器可包括在软件抽象层中执行的第一适配器以及在代理虚拟机中执行的第二适配器。物理硬件***可包括航空电子***,其包括多个线路可更换单元。该***可包括基于使用虚拟化***测试物理硬件***而修改的经修改后的物理硬件***。代理物理硬件***可至少具有与物理硬件***的处理器相同的处理器。从代理物理硬件***构造的代理虚拟机可至少对代理物理硬件***的处理器进行仿真。
根据各种实施方式,提出了一种通过训练人操作在代理虚拟机中在仿真代理物理硬件***上执行硬件***应用软件来训练人操作物理硬件***的方法,该仿真代理物理硬件***与物理硬件***对应。该方法包括:获得与物理硬件***的各方面匹配的代理物理硬件***;在虚拟化***中从代理物理硬件***构造代理虚拟机;使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真;在代理虚拟机中执行硬件抽象软件层;通过虚拟化***的硬件抽象软件层使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器在代理物理硬件***上在代理虚拟机中执行硬件***应用软件;以及通过训练人操作在代理物理硬件***上在代理虚拟机中执行硬件***应用软件来使用虚拟化***训练人操作物理硬件***。
上述实施方式的各种可选特征包括以下。物理硬件***可包括载具物理硬件***。载具可包括飞行器,虚拟化***可包括飞行模拟器。
附图说明
附图被并入本说明书中并构成本说明书的一部分,附图示出本教导并与说明书一起用于说明本公开的原理。
图1示出例示了用于实现根据本公开的各方面的***和处理的在硬件抽象软件层中执行物理至代理适配器的环境的示例的***框图。
图2示出例示了用于实现根据本公开的各方面的***和处理的在代理虚拟机层中具有物理至代理适配器的环境的示例的***框图。
图3示出例示了根据本公开的各方面的物理硬件***的示例的***框图。
图4示出例示了根据本公开的各方面的代理物理硬件***的示例的***框图。
图5示出例示了根据本公开的各方面的虚拟化***的示例的***框图。
图6示出根据本公开的实施方式的存储器映射的示例。
图7例示了通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的示例性处理700的处理流程图。
图8例示了根据本公开的虚拟机器构造方面的在虚拟化***中从代理物理硬件***构造代理虚拟机的示例性处理的流程图。
图9例示了根据本公开的实施方式的对代理物理硬件装置的组件进行仿真的示例性处理的处理流程图。
应该注意,附图的一些细节已简化并且被绘制以方便理解本教导,而非维持严格的结构准确性、细节和比例。
具体实施方式
现在将详细参照所公开的示例,其示出于附图中。只要可能,贯穿附图将使用相同的标号来表示相同或相似的部分。在以下描述中,参照形成其一部分并作为例示示出特定示例的附图。以足够的细节描述这些示例以使得本领域技术人员能够实践它们,并且将理解,可利用其它示例并且在不脱离本公开的范围的情况下可进行改变。因此,以下描述仅是示例性的。
在对物理硬件进行仿真并在虚拟机上执行物理硬件软件应用(例如,可执行软件)的典型虚拟机器构造中,必须知道关于特定平台的硬件的许多细节:存储器映射、中断表、固件寄存器等。然而,硬件抽象软件层,如Aeronautical Radio Incorporated(ARINC)653标准架构(美国马里兰州安纳波利斯-前罗克韦尔柯林斯),抽象运行物理硬件的软件应用的底层硬件平台的大多数细节。具体地,一些实施方式利用例如ARINC 653所提供的硬件抽象软件层来创建针对许多不同的平台工作的单个通用虚拟化平台。这些实施方式可用于开发和测试例如航空电子线路可更换单元(LRU)和其它专用硬件装置。具体地,根据一些实施方式,可在虚拟化平台上执行软件应用(有时作为未修改的二进制文件)。
为了避免需要硬件访问或硬件规范访问,一些实施方式以仿真的硬件代替代理物理硬件。在这些实施方式中,选择要仿真的代理硬件***以与实际硬件***的各方面匹配。使用这种代理硬件***避免了需要硬件访问或了解其规范。这部分地允许一些实施方式提供在不了解物理硬件的大多数细节的情况下允许软件应用在虚拟机中未修改地运行的通用虚拟化平台。
实施方式提供了许多优点。例如,创建通用虚拟化平台通过避免多个虚拟平台的构造来允许成本节省。作为另一示例,一些实施方式在产品开发中非常早地提供虚拟平台,因此允许物理平台及其软件应用的提早开发和测试活动。继而,提早使用虚拟化平台允许在产品开发中提早发现设计缺陷。这种提早问题发现提供了显著的成本节省。如果与飞行测试相对在实验室测试中检测到问题,则可实现一个数量级的成本节省。同样,如果与实验室测试相对在要求/设计中检测到问题,则可实现另一数量级的成本节省。因此,一些实施方式提供用于程序的要求/设计阶段中的问题发现,这允许实现两个数量级的成本节省。
此外,实施方式可用于创建高保真训练器,例如机组人员训练器和维护训练器。这些实施方式提供相同的构造易度,横跨平台重用,并且不再需要逆向工程硬件(例如,用于训练器构造)。
总之,一些实施方式简化了通用虚拟机和虚拟化平台的创建。一些实施方式为详细硬件信息未知的对应硬件平台提供虚拟机,而不必诉诸于耗时的逆向工程活动。一些实施方式允许在产品开发循环中提早开发这些虚拟化平台。本文中详细呈现了这些和其它优点。
图1示出例示了用于实现根据本公开的各方面的***和处理的环境100的示例的***框图,其中在硬件抽象软件层132中执行物理至代理适配器软件134。环境100可包括物理硬件***102、代理物理硬件***105和虚拟化***110。物理硬件***102可包括一个或更多个计算机实现的硬件组件和一个或更多个通信信道。例如,物理硬件***102可以是航空电子LRU,如任务计算机、导航单元、通信单元、引擎管理单元、机组接口单元、威胁检测单元、电子对抗单元、门店管理单元、工业控制单元等。另外,例如,物理硬件***102可以是包括包含上述航空电子单元中的一些或全部的功能的一个或更多个模块的集成航空电子单元。
尽管上面描述图1作为现有物理硬件***102,但将理解,物理硬件***102可以是正在开发的新***,因此,还未完全实现或生产。在实现方式中,物理硬件***102可以是包括在软件和/或硬件中部分地实现的预原型单元。例如,物理硬件***102可以是由临时计算装置(例如,实验板***、测试台***和/或商业现货***)执行的软件。
选择代理物理硬件***105以与物理硬件***102的各方面匹配。这种代理物理硬件***105可与根据本文所呈现的各种标准的物理硬件***匹配。代理物理硬件***105可支持诸如ARINC 653的软件抽象层。另外,代理物理硬件***105可具有与物理硬件***102相同的处理器和输入/输出类型。此外,对于包括ARINC 653的代理物理硬件***105,代理物理硬件***105还可具有易于获得的ARINC 653板级支持包(BSP)。因此,如果其至少支持软件抽象层,则物理代理硬件***105与物理硬件***102的各方面匹配。附加匹配标准可包括具有相同的处理器类型、具有相同的输入/输出类型和具有BSP中的任一个或组合。
作为具体示例,实施方式可利用Abaco Systems所提供的SBC612,其是商业现货(COTS)单板计算机(SBC)。SBC612具有PowerPC P4080处理器以及与物理硬件***102的一些实施方式类似的已经构建的Wind River VxWorks ARINC 653BSP。
虚拟化***110可以是包括可对其它装置进行仿真的硬件和软件的计算***。在实现方式中,虚拟化***110可以是一个或更多个通用计算机(例如,服务器或台式计算机),其托管对物理硬件***(例如,代理物理硬件***105)及其硬件和软件接口(例如,外设、数据链路、中断行为和定时要求)进行仿真的一个或更多个代理虚拟机130。另外,代理虚拟机130执行硬件***应用软件136(例如,在分区中运行的软件可执行文件),即,由物理硬件***102执行的硬件***应用软件的精确或基本上精确的拷贝(例如,图像)。在实现方式中,虚拟化***110可包括例如管理程序或虚拟机监测软件。例如,虚拟化***110可使用QUICK EMULATOR(“QEMU”),其是执行硬件虚拟化的开源软件应用。
代理虚拟机130可以是代理物理硬件***105在虚拟化***110内的仿真。用于创建虚拟机130的信息可从代理物理硬件***105以及从硬件***应用软件136和描述代理物理硬件***105的文档147获得。例如,硬件***应用软件136可以是物理硬件***102(例如,航空电子LRU)的应用代码。硬件***应用软件136还可包括物理硬件***102中所包括的硬件组件和通信链路的源代码(例如,应用逻辑)、接口代码(例如,定时和格式化)和/或中断逻辑。代理操作***、硬件抽象软件层、BSP、装置驱动器和引导加载器145将替换代理物理硬件***上的类似功能。物理至适配器代理软件134用于实现该替换,而无需修改硬件***应用软件136。代理硬件***文档147可以是定义代理物理硬件***105的硬件组件和通信链路的操作要求和操作细节的信息。例如,文档147可以是技术规范和基础软件。任何可用物理硬件***文档149也可用于代理虚拟机构造。然而,文档149常常在范围方面受限或者在代理虚拟机场景中不可用。
硬件抽象软件层132与代理物理硬件***105上找到的硬件抽象软件层153相同或相似。如图1所示,物理至代理适配器软件134在代理虚拟机130的硬件抽象软件层132(可以是ARINC 653)中执行。与代理物理硬件***105相比,物理至代理适配器软件134适应物理硬件***102中的差异。具体地,物理至代理适配器软件134在硬件***应用软件136和代理虚拟机130之间映射输入/输出数据。对于硬件抽象软件层132是ARINC 653操作***的实施方式,物理至代理适配器软件134可将从硬件***应用软件136生成和接收的内部ARINC653输入/输出消息映射到代理虚拟机130中的虚拟输入/输出。
代理虚拟机130可在其生产之前、期间和之后用于物理硬件***102的工程、开发和测试。例如,在物理硬件***102的实际生产之前,代理物理硬件***105可由代理虚拟机130仿真以开发和调试预期在物理硬件***102中实现的生产前软件。因此,硬件和软件的开发和测试可并行进行。另外,在物理硬件***102的开发期间当几个(如果有的话)物理硬件单元可用时,开发者可改为利用代理虚拟机130工作。由于代理虚拟机130与物理硬件***102基本上匹配,所以参与物理硬件***102的开发和生产的各个开发者可在其相应的工作站(例如,相应虚拟化***110)处实现代理虚拟机130的拷贝。由代理虚拟机130提供的高保真仿真允许提早发现问题并且将在开发期间提供可观的成本节省。在代理虚拟机130中实现的更新的程序代码151可被反馈到物理硬件***102中(当可用时),以增加开发速率。此外,在物理硬件***102投入使用之后,代理虚拟机130可用于支持、测试和更新物理硬件***102。例如,在飞行器事故调查中,飞行器中使用的软件的具体构建可被成像(例如,作为硬件***应用软件136)并使用虚拟化***110在代理虚拟机130中执行。此外,代理虚拟机130可用于训练器(例如,在飞行模拟***中)。
图2示出例示了用于实现根据本公开的各方面的***和处理的环境101的示例的***框图,其中在代理虚拟机130层中执行物理至代理适配器软件135。类似图1的物理至代理适配器软件134,与代理物理硬件***105相比,图2的物理至代理适配器软件135适应物理硬件***102中的差异。就像图1的代理适配器软件134,代理适配器软件135在硬件***应用软件136和代理虚拟机130之间映射输入/输出数据。由于代理适配器软件135在代理虚拟机130的虚拟化层中实现,所以适配器可用于处理操作***和硬件行为中的差异,这在代理适配器软件134在硬件抽象层132中的情况下是不可能的。这种差异可包括消息格式差异(例如,消息字段排列和/或内容),替代和打标代码部分,将硬件装置访问重新路由至可比的仿真的硬件装置(例如,定时器)。这可执行以调和物理硬件***102与具有物理硬件以及可能的硬件抽象软件层和OS差异的代理硬件***105之间的差异以使硬件***软件应用136未修改地或以有限修改在代理硬件***105上运行。
物理至代理适配器软件135可采取各种形式。作为一个示例,其可以是虚拟化层中的虚设硬件装置,驱动器软件与之交互以发送输入/输出数据。作为另一示例,其可观察仿真的指令执行以确定何时尝试输入/输出,然后拦截那些调用并将它们发送出虚拟机的虚拟输入/输出并生成适当响应以满足发送/接收成功的应用层软件。
要注意,一些实施方式可包括在如参照图1示出和描述的硬件抽象软件层132中执行的物理至代理适配器软件134以及在如参照图2示出和描述的代理虚拟机130层中执行的物理至代理适配器软件135二者。在这些实施方式中,在硬件抽象软件层132中执行的物理至代理适配器软件134可映射输入/输出消息,而在代理虚拟机130层中执行的物理至代理适配器软件135可转换预期用于如上面参照图2描述的不同硬件抽象层软件实现方式132的消息。
图3示出例示了根据本公开的各方面的物理硬件***102的示例的***框图。物理硬件***102可与先前描述的相同或相似。
物理硬件***102可包括任何类型的计算***,包括能够执行安装在其上的计算机程序指令的通用和/或专用硬件(例如,个人计算机、服务器、专用计算装置等)。将理解,物理硬件***102仅代表各种可能等同计算装置。在这种程度上,在实施方式中,由物理硬件***102提供的功能可以是用于各种应用(例如,工业控制和/或自动化)的通用和/或专用硬件和/或计算机程序指令的任何组合。在实现方式中,物理硬件***102可以是诸如航空电子LRU的专用装置。
物理硬件***102可包括各种组件,包括一个或更多个处理器325、一个或更多个存储器装置331、一个或更多个存储装置333(例如,存储器装置或存储***)、一个或更多个输入/输出装置335(I/O装置)和一个或更多个网络接口337(例如,网络接口装置)。处理器325可包括微处理器、微芯片和/或专用集成电路。存储器装置331可包括在程序指令的执行期间采用的一个或更多个本地存储装置(例如,随机存取存储器(RAM)和高速缓存存储器)。存储装置333可包括存储信息和程序指令的计算机可读非易失性硬件装置。例如,存储装置333可以是一个或更多个闪存驱动器、非易失性存储器和/或硬盘驱动器。输入/输出装置335可包括使得个人能够与物理硬件***102交互的任何装置(例如,用户接口)和/或使得物理硬件***102能够使用任何类型的通信链路与一个或更多个其它计算装置通信的任何装置。例如,输入/输出装置335可以是触摸屏显示器、指点装置、键盘等。网络接口337可包括被配置为经由网络通信链路(例如,***通信总线341)发送和接收数据的任何收发器装置。
另外,物理硬件***102可包括一个或更多个通信信道345(例如,数据总线),处理器325、存储器装置331、存储装置333、输入/输出装置335和网络接口装置337可通过其通信。此外,物理硬件***102可包括中断控制器349,其可以是用于管理处理器325、存储器装置331、存储装置333、输入/输出装置335和/或网络接口装置337在通信信道345上的通信的可编程装置,包括允许向其中断指派优先级别。
处理器325执行可存储在存储器装置331和/或存储装置333中的计算机程序指令(例如,操作***和/或应用程序)。例如,一个或更多个处理器325可执行引导加载器355和硬件***应用软件136的程序指令。引导加载器355可包括通过加载器操作***来发起物理硬件***102的操作的程序指令。硬件***应用软件136可包括专用程序指令(例如,航空电子软件)。
图4示出例示了根据本公开的各方面的代理物理硬件***105的示例的***框图。根据指定的标准选择代理物理硬件***105以与物理硬件***(例如,物理硬件***102)的各方面匹配。这种标准可包括支持相同(或相似)的硬件抽象软件层153、具有相同的处理器类型、具有相同的输入/输出类型和具有BSP、装置驱动器和引导加载器中的任一个或组合。因此,代理物理硬件***105包括一个或更多个处理器425(可与物理硬件***102的处理器325相同)、一个或更多个存储器装置431(可与存储器装置331相同或不同)、一个或更多个存储装置433(可与存储装置333相同或不同)、一个或更多个输入/输出装置435(可与输入/输出装置335相同或不同)以及一个或更多个网络接口装置437(可与网络接口装置337相同或不同)。如物理硬件***102中一样,代理物理硬件***105可包括一个或更多个通信信道445(可与通信信道345相同或不同)、中断控制器449(可与中断控制器349相同或不同)以及引导加载器455(可与引导加载器355相同或不同)。如本文所用,处理器425、存储器装置431、存储装置433、输入/输出装置435、网络接口装置437、通信信道445和中断控制器449是硬件组件的示例。利用对物理硬件***102的硬件***应用软件136的一些修改,硬件***应用软件136可在代理物理硬件***105上运行。选择代理物理硬件***105以包括可使用虚拟化***(例如,虚拟化***110)由虚拟硬件(例如,代理虚拟机130)仿真的硬件。根据本公开的各方面,完成代理物理硬件***105选择和代理虚拟机130创建以支持在对硬件***应用软件136很少或没有修改的情况下代理虚拟机130上的硬件***应用软件136执行。
图5示出例示了虚拟化***110的示例的***框图,其可与上述(例如,图1和/或图2的虚拟化***110)相同或相似。虚拟化***110包括执行本文所公开的处理和功能的硬件和软件。虚拟化***110可包括任何类型的计算***,包括能够执行安装在其上的计算机程序指令以执行所公开的技术的通用和/或专用硬件的组合。
虚拟化***110包括计算装置503、输入/输出(输入/输出)装置513和存储装置515。输入/输出装置513可包括使得个人能够与计算装置503交互的任何装置(例如,用户接口)和/或使得计算装置503能够使用任何类型的通信链路与一个或更多个其它计算装置通信的任何装置。例如,输入/输出装置513可以是触摸屏显示器、指点装置、键盘等。
存储装置515可包括存储信息和程序指令的计算机可读非易失性硬件存储装置。例如,存储装置515可以是一个或更多个闪存驱动器和/或硬盘驱动器。根据本公开的各方面,存储装置515可存储硬件***程序代码(例如,硬件***应用软件136)、代理物理硬件***105的一个或更多个存储器映射519、中断逻辑521和装置库523。硬件***应用软件136可以是物理硬件***(例如,物理硬件***102)的应用软件。在实现方式中,程序代码基本上镜像物理硬件***102的程序代码。存储器映射519从存储器接口的角度描述物理硬件***的组件之间的连接。在实现方式中,存储器映射519包括定义代理硬件***105的存储器431中的硬件组件的存储器块的位置的信息。例如,存储器映射519可将代理物理硬件***105的硬件组件的存储器寄存器的信息的位置表示为相对于起始存储器地址的偏移。中断逻辑521可以是描述物理硬件***的中断功能的信息,如下所述。装置库523可以是描述一个或更多个物理硬件***(例如,代理物理硬件***105)的仿真的计算机可读信息和指令的储存库,其可预先创建并存储以供将来使用。
在实施方式中,计算装置503包括一个或更多个处理器539(例如,微处理器、微芯片或专用集成电路)、一个或更多个存储器装置541(例如,RAM、只读存储器(ROM))、一个或更多个输入/输出接口543和一个或更多个网络接口装置545。存储器装置541可包括在程序指令的执行期间采用的本地存储器(例如,随机存取存储器和高速缓存存储器)。另外,计算装置503包括该计算装置503与输入/输出装置513和存储装置515通信的至少一个通信信道544(例如,数据总线)。处理器539执行可存储在存储器装置541和/或存储装置515中的计算机程序指令(例如,操作***和/或应用程序)。
处理器539还可执行虚拟化应用551(例如,QEMU)和训练器、测试和/或评价软件555的计算机程序指令。虚拟化应用551可与先前描述的相同或相似。例如,虚拟化应用551可包括管理程序或虚拟机监测软件。根据本公开的各方面,虚拟化应用551可使用程序代码517、存储器映射519、中断逻辑521和/或装置库523提供虚拟机(例如,代理虚拟机130)。
训练器、测试和/或评价软件555可以是包括被配置为测试、评价和/或验证软件的计算机可读指令和信息的应用或程序。例如,训练器、测试和/或评价软件555可执行测试例程,该测试例程验证硬件装置的程序代码响应于预定场景表现如预期。另外,训练器、测试和/或评价软件555可执行测试恶意软件的攻击媒介的网络安全例程。例如,训练器、测试和/或评价软件555可记录指令执行时虚拟机的完整状态(寄存器、存储器、硬件状态等)以允许受损***的观察和分析。训练器、测试和/或评价软件555可用于为物理***102的用户(例如,机组人员或维护训练器)提供训练器。
要注意,计算装置503代表可执行本文所描述的处理的各种可能的等同计算装置。在这种程度上,在实施方式中,由计算装置503提供的功能可以是通用和/或专用硬件和/或计算机程序指令的任何组合。在所公开的实施方式中,程序指令和硬件可分别使用标准编程和工程技术来创建。
图6例示了根据本公开的实现方式的虚拟化***的存储器映射601和地址空间602的示例。存储器映射601将物理硬件***(例如,代理物理硬件***105)的硬件组件603的存储器地址和虚拟化***(例如,虚拟化***110)的存储器位置605(例如,存储器装置541的存储器块)关联。可从代理物理硬件***105的文档(例如,文档147)提取包括存储器映射601的信息。虚拟化机器(例如,代理虚拟机130)的地址空间602可以是基于存储器映射601生成的存储器构造。例如,地址空间602可包括与虚拟化***内的仿真的组件(例如,代理物理硬件***105的组件)的位置对应的寄存器存储器地址和范围。在实现方式中,可存在通常可在存储器映射中找到的三种类型的存储器:易失性存储器(例如,RAM)、非易失性存储器(例如,闪存)和存储器映射的输入/输出。例如,易失性存储器可用于在软件执行期间检索和存储信息。例如,非易失性存储器(例如,NV存储器)可用于存储用于执行的软件指令和配置信息。存储器映射的输入/输出可用于在硬件组件之间交换信息,这可违背硬件组件的行为和响应。
图7至图9中的流程图例示了根据与本公开一致的各种实现方式的***、方法和计算机程序产品的可能实现方式的功能和操作的示例。图7至图9的流程图中的各个方框可表示模块、片段或程序指令部分,其包括一个或更多个计算机可执行指令以用于实现所示的功能和操作。在一些另选实现方式中,流程图的特定方框中所示的功能和/或操作可不按图7至图9所示的顺序发生。例如,根据所涉及的功能,连续示出的两个方框可基本上同时执行,或者方框有时可按相反的顺序执行。还将注意,流程图的各个方框和方框的组合可由或使用执行指定的功能或行为的基于专用硬件的***或专用硬件和计算机指令的组合实现。
图7例示了通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的示例性处理700的处理流程图。方框701包括获得与规范和/或访问有时不可用或受限的物理硬件***(例如,物理硬件***102)的各方面匹配的代理物理硬件***(例如,代理物理硬件***105)。方框703包括使用虚拟化***(例如,执行虚拟化软件(例如,虚拟化应用551)的计算装置503)从代理物理硬件***(例如,代理物理硬件***105)构造虚拟机(例如,代理虚拟机130),例如如下面参照图8所示出和描述的。例如,用户(例如,开发者)可在虚拟化***110上从物理硬件***102执行程序代码(例如,硬件***应用软件136)。方框705包括在703处构造的虚拟机中对代理物理硬件***的硬件组件进行仿真,例如如下面关于图9所示出和描述的。在703处构造的虚拟机和/或在705仿真的硬件组件可被存储(在例如装置库523中)以供将来参考以及在其它实现方式(例如,包括一个或更多个硬件组件的其它虚拟机)中使用。方框707包括在代理虚拟机中执行硬件抽象软件层(例如,ARINC 653)。
方框709包括使用在705处仿真的硬件组件在703处构造的代理虚拟机中执行硬件***应用软件。执行可包括在711使用再现代理物理硬件***所使用的存储器位置的存储器映射。这可包括使用存储器映射(例如,存储器映射601)来配置虚拟化机器(例如,代理虚拟机130)的地址空间以使代理物理硬件***和/或仿真的硬件组件的地址空间匹配。709的执行还可包括经由使用存储器映射注册在711处配置的存储器位置在虚拟机和/或仿真的硬件组件之间交换信息。例如,物理硬件***和硬件组件的存储器寄存器的存储器地址和范围可向虚拟机注册,并且用于实现针对虚拟机和仿真的硬件组件找到的各个存储器寄存器的功能。通过这样做,虚拟机和仿真的硬件组件可通过以与物理硬件***的硬件组件相同的方式读取和写入信息来经由虚拟机的存储器构造通信。709的执行还可包括在715使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器。这种映射可使用物理至代理适配器软件(例如,物理至代理适配器软件134和/或物理至代理适配器软件135)来执行。这种物理至代理适配器软件可在硬件抽象软件层中执行以映射输入/输出消息,如上面参照图1所示出和描述的。另选地,或另外,这种物理至代理适配器软件可在代理虚拟机中执行以转换预期用于不同硬件抽象层软件的消息,如上面参照图2所示出和描述的。
方框719包括使用虚拟化***测试物理硬件***。更具体地,虚拟化***使用虚拟机执行物理硬件***102和/或硬件组件的测试(例如,测试和评价)。测试和评价可包括软件调试、操作测试、集成测试、网络安全测试等。方框723包括开发者基于在719处执行的测试和评价来修改硬件***应用软件和/或物理硬件***102中的至少一个。方框727包括部署硬件***应用软件和/或物理硬件***的修改。例如,修改的软件可被部署到物理硬件***的投入使用的生产单元。另外,对硬件和/或软件的修改可被反馈到物理硬件的模拟、生产前单元或原型的设计中。
图8例示了根据本公开的虚拟机器构造方面的在虚拟化***中从代理物理硬件***构造800代理虚拟机的示例性处理的流程图。方框803包括收集要仿真的代理物理硬件***(例如,代理物理硬件***105)的硬件信息。信息可由开发者收集。在803处收集的信息可包括硬件组件的规范以及描述存储器寄存器的配置的功能描述、硬件框图、物理硬件***的***架构、存储器映射、中断连接、板极支持包等。另外,开发者可收集关于代理物理硬件***的软件的信息。在一些实现方式中,收集软件信息包括反编译或反汇编存储在物理硬件***上的代码。
方框807包括基于在803处收集的信息确定代理物理硬件***的组件以进行仿真。在实现方式中,开发者识别代理物理硬件***的如下的硬件组件,即,所述硬件组件在***存储器映射上不可见,因此软件不可直接访问并且未必需要仿真。例如,可不对经由物理硬件***的存储器映射(例如,存储器映射601)不可见的高速缓存存储器或桥进行仿真。
方框811包括开发者以本文中先前(例如,图6)描述的相同或相似的方式使用在803处收集的信息确定在807处确定的组件的存储器映射。存储器映射指示代理物理硬件***的组件及其在代理物理硬件***的存储器中的对应位置。分析存储器映射可包括识别代理物理硬件***的存储器装置和/或存储装置、代理物理硬件***的硬件装置(例如,输入/输出控制器、定时器、桥、中断控制器、块装置、控制寄存器等)。
方框815包括使用虚拟化软件(例如,虚拟化应用551)生成在807处确定的组件的仿真。方框819包括在与在811处确定的存储器映射存储器映射对应的存储器位置中注册仿真的组件(每方框815)。例如,开发者可将区域(例如,存储器空间605)分配给表示代理物理硬件***的虚拟机(例如,代理虚拟机130),并将仿真的组件指派给区域内的块(例如,在地址空间602中),如本文中先前关于图6描述的。
方框823包括开发者使用在803处收集的信息确定代理物理硬件***的中断设计。例如,开发者识别使用中断的硬件组件并确定硬件组件和中断控制器之间的中断连接。另外,显示输入/输出控制器和中断控制器之间的布线的硬件示意图可用于通过追踪示意图中追踪的中断线到其它硬件组件来为虚拟机建立中断连接。另选地,用于代理物理硬件***105的板极支持包或装置驱动器中的软件可用于确定中断连接。这样做允许识别代理物理硬件***的不同组件的中断。方框827包括开发者将虚拟机组件的输入/输出(方框815)链接到仿真的输入/输出控制器。作为示例,虚拟机中的以太网控制器可连接到虚拟网络接口卡(NIC)(例如,TAP装置等)。
图9是根据本公开的实施方式的使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真(900)的处理的流程图。方框901包括开发者收集要仿真的代理物理硬件***(例如,代理物理硬件***105)的硬件信息。信息可与本文中先前所描述的(例如,图8,803)相同或相似。方框903包括开发者基于在901处收集的信息来分析代理硬件***功能。例如,开发者可分析文档(例如,文档147)并识别硬件寄存器、中断功能、延迟响应(例如,使用虚拟机虚拟定时器)和外部虚拟机连接(虚拟NIC、虚拟ARINC 429等)。
方框907包括在虚拟机中对响应于存储器访问的硬件组件的行为进行仿真。这种仿真可包括对代理物理硬件***的处理器进行仿真(例如,如果虚拟化***的处理器不同于代理虚拟机的处理器)。方框911包括虚拟机对硬件组件的中断行为进行仿真。方框915包括对硬件组件的延迟响应行为进行仿真。例如,对硬件组件寄存器的存储器访问可使得装置寄存器被修改以使得指定的行为或中断可用信号通知给硬件组件以使得活动发生。在通过以太网控制器的传输的一些情况下,用于经由以太网传输的分组可通过将它写到存储器位置来排队以用于传输。这样做可触发***软件对以太网控制器的中断以使得以太网分组从虚拟机发送。在以太网接收的一些情况下,分组将从外部装置(例如,虚拟NIC)到达虚拟机,该分组将被存储在内部队列中,然后在一些情况下,该分组将使用直接存储器访问引擎传送至***RAM,以将以太网分组从以太网控制器内部存储器传送至***RAM,在传送完成之后,将从以太网控制器用信号通知中断以使得***软件知道以太网分组已到达并在***存储器中可用。例如,延迟响应可通过变化串行数据的速度来对接口上的给定波特率进行仿真。方框919包括将仿真的组件链接到外部装置的仿真。即,方框919包括将虚拟机链接到代理物理硬件***外部的一个或更多个仿真的装置。例如,可在仿真的装置的外部输入/输出与网络装置的仿真之间创建链接,硬件组件可利用该链接与代理物理硬件***通信。方框921包括将代理虚拟机的行为与物理硬件***的行为进行比较。物理硬件***应用软件的成功执行是位于代理虚拟机层、硬件抽象软件层或二者中的代理虚拟机和物理至代理适配器软件的成功的良好度量。
此外,本公开包括根据以下条款的示例:
条款1.一种通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的方法,该方法包括:获得与物理硬件***的各方面匹配的代理物理硬件***;在虚拟化***中从代理物理硬件***构造代理虚拟机;使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真;在代理虚拟机中执行硬件抽象软件层;由虚拟化***的硬件抽象软件层使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器在代理物理硬件***上在代理虚拟机中执行硬件***应用软件;以及使用虚拟化***通过在代理物理硬件***上在代理虚拟机中执行硬件***应用软件来测试物理硬件***。
条款2.根据条款1所述的方法,其中,硬件抽象软件层包括ARINC 653操作***。
条款3.根据条款1所述的方法,其中,所述至少一个适配器在硬件抽象软件层中执行。
条款4.根据条款1所述的方法,其中,所述至少一个适配器在代理虚拟机中执行。
条款5.根据条款1所述的方法,其中,所述至少一个适配器包括在软件抽象层中执行的第一适配器以及在代理虚拟机中执行的第二适配器。
条款6.根据条款1所述的方法,其中,物理硬件***包括航空电子***,其包括多个线路可更换单元。
条款7.根据条款1所述的方法,所述方法还包括:基于所述测试修改物理硬件***以生成修改的物理硬件***;以及部署修改的物理硬件***。
条款8.根据条款1所述的方法,其中,获得与物理硬件***匹配的代理物理硬件***的步骤包括获得至少具有与物理硬件***的处理器相同的处理器的代理物理硬件***。
条款9.根据条款1所述的方法,其中,在虚拟化***中从代理物理硬件***构造代理虚拟机的步骤包括至少对代理物理硬件***的处理器进行仿真。
条款10.根据条款1所述的方法,其中,获得与物理硬件***匹配的代理物理硬件***的步骤在不访问物理硬件***的规范的情况下进行。
条款11.根据条款1所述的方法,所述方法还包括使用虚拟化***模拟至少一个载具物理硬件***以训练载具物理硬件***的用户。
条款12.一种通过在代理虚拟机中在对应仿真代理物理硬件***上执行硬件***应用软件来测试物理硬件***的***,该***包括:与物理硬件***的各方面匹配的代理物理硬件***;以及包括从代理物理硬件***构造的代理虚拟机的虚拟化***,其中,代理虚拟机对代理物理硬件***的硬件组件进行仿真并执行硬件抽象软件层,该硬件抽象软件层在代理虚拟机中使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器来执行硬件***应用软件。
条款13.根据条款12所述的***,其中,硬件抽象软件层包括ARINC 653操作***。
条款14.根据条款12所述的***,其中,所述至少一个适配器在硬件抽象软件层中执行。
条款15.根据条款12所述的***,其中,所述至少一个适配器在代理虚拟机中执行。
条款16.根据条款12所述的***,其中,所述至少一个适配器包括在软件抽象层中执行的第一适配器以及在代理虚拟机中执行的第二适配器。
条款17.根据条款12所述的***,其中,物理硬件***包括航空电子***,其包括多个线路可更换单元。
条款18.根据条款12所述的***,所述***还包括基于使用虚拟化***测试物理硬件***而修改的经修改后的物理硬件***。
条款19.根据条款12所述的***,其中,代理物理硬件***至少具有与物理硬件***的处理器相同的处理器。
条款20.根据条款12所述的***,其中,从代理物理硬件***构造的代理虚拟机至少对代理物理硬件***的处理器进行仿真。
条款21.一种通过训练人操作在代理虚拟机中在仿真代理物理硬件***上执行硬件***应用软件来训练人操作物理硬件***的方法,仿真的代理物理硬件***与物理硬件***对应,该方法包括:获得与物理硬件***的各方面匹配的代理物理硬件***;在虚拟化***中从代理物理硬件***构造代理虚拟机;使用虚拟化***在代理虚拟机中对代理物理硬件***的硬件组件进行仿真;在代理虚拟机中执行硬件抽象软件层;由虚拟化***的硬件抽象软件层使用再现代理物理硬件***所使用的存储器位置的存储器映射并使用在代理虚拟机和硬件***应用软件之间映射数据的至少一个适配器在代理物理硬件***上在代理虚拟机中执行硬件***应用软件;以及通过训练人操作在代理物理硬件***上在代理虚拟机中执行硬件***应用软件来使用虚拟化***训练人操作物理硬件***。
条款22.根据条款21所述的方法,其中,物理硬件***包括载具物理硬件***。
条款23.根据条款22所述的方法,其中,载具包括飞行器,并且其中,虚拟化***包括飞行模拟器。
本公开不限于本申请中描述的特定实施方式,其旨在作为各方面的例示。对于本领域技术人员而言将显而易见,可在不脱离其精神和范围的情况下进行许多修改和变化。除了本文列举的那些之外,对于本领域技术人员而言在本公开的范围内功能上等同的方法和设备将从以上描述显而易见。这些修改和变化旨在落入所附权利要求的范围内。本公开仅由所附权利要求的术语以及授权给这些权利要求的完整等同范围限制。还将理解,本文所使用的术语仅是为了描述特定实施方式,而非旨在限制。
关于本文中基本上任何复数和/或单数术语的使用,本领域技术人员可根据上下文和/或应用适当地将复数转换为单数和/或将单数转换为复数。为了清晰起见,本文中可明确地阐述各种单数/复数变换。
本领域技术人员将理解,通常,本文中,特别是所附权利要求书(例如,所附权利要求书的主体)中所使用的术语通常旨在作为“开放”术语(例如,术语“包括”应该被解释为“包括但不限于”,术语“具有”应该被解释为“至少具有”,术语“包含”应该被解释为“包含但不限于”,等等)。本领域技术人员将进一步理解,如果意在引入的权利要求陈述的具体数量,则这种意图将在权利要求中明确地陈述,在没有这种陈述的情况下,不存在这种意图。例如,为帮助理解,以下所附权利要求可包含使用介绍性短语“至少一个”和“一个或更多个”以引入权利要求陈述。然而,这些短语的使用不应被解释为暗示由不定冠词引入的权利要求陈述将包含这种引入的权利要求陈述的任何特定权利要求限制为仅包含一个这种陈述的实施方式,即使当相同的权利要求包括介绍性短语“一个或更多个”或“至少一个”以及不定冠词时(例如,不定冠词应该被解释为意指“至少一个”或“一个或更多个”);对于用于引入权利要求陈述的定冠词的使用也是如此。另外,即使明确陈述了引入的权利要求陈述的具体数量,本领域技术人员将认识到,这种陈述应该被解释为意指至少所陈述的数量(例如,没有其它修饰语的“两个陈述”的裸陈述意指至少两个陈述或者两个或更多个陈述)。此外,在使用类似于“A、B和C等中的至少一个”的惯用语的情况下,通常,这种构造旨在为本领域技术人员将理解该惯用语的含义(例如,“具有A、B和C中的至少一个的***”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等的***)。在使用类似于“A、B或C等中的至少一个”的惯用语的情况下,通常,这种构造旨在为本领域技术人员将理解该惯用语的含义(例如,“具有A、B或C中的至少一个的***”将包括但不限于仅具有A、仅具有B、仅具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B和C等的***)。本领域技术人员将进一步理解,无论在说明书、权利要求书还是附图中,实际上呈现两个或更多个另选术语的任何转折性词语和/或短语应该被理解为可以想到包括术语中的一个、术语中的任一个或两个术语的可能性。例如,短语“A或B”将被理解为包括“A”或“B”或“A和B”的可能性。另外,在根据Markush群组描述本公开的特征或方面的情况下,本领域技术人员将认识到,本公开也由此根据Markush群组的任何个体成员或成员的子组描述。
尽管本文中公开了各种方面和实施方式,但对于本领域技术人员而言其它方面和实施方式将显而易见。本文所公开的各种方面和实施方式是为了例示,而非旨在限制,真正的范围和精神由随附权利要求书指示。

Claims (14)

1.一种通过在代理虚拟机(130)中在对应仿真代理物理硬件***(105)上执行硬件***应用软件(136)来测试物理硬件***(102)的方法(700,800,900),该方法包括以下步骤:
获得(701)与所述物理硬件***的各方面匹配的代理物理硬件***(105);
在虚拟化***(110)中从所述代理物理硬件***构造(703,800)所述代理虚拟机;
使用所述虚拟化***在所述代理虚拟机中对所述代理物理硬件***的硬件组件(425,431,433,435,437,445,449)进行仿真(705,900);
在所述代理虚拟机中执行(707)硬件抽象软件层(132);
由所述虚拟化***的所述硬件抽象软件层使用再现所述代理物理硬件***所使用的存储器位置的存储器映射(601)并使用在所述代理虚拟机和所述硬件***应用软件之间映射数据的至少一个适配器(134,135)在所述代理物理硬件***上在所述代理虚拟机中执行(709)所述硬件***应用软件;以及
使用所述虚拟化***通过在所述代理物理硬件***上在所述代理虚拟机中执行所述硬件***应用软件来测试(719)所述物理硬件***。
2.根据权利要求1所述的方法,其中,所述硬件抽象软件层包括ARINC 653操作***。
3.根据权利要求1所述的方法,其中,所述至少一个适配器包括在所述软件抽象层中执行的第一适配器(134)以及在所述代理虚拟机中执行的第二适配器(135)。
4.根据权利要求1所述的方法,其中,所述物理硬件***包括航空电子***,该航空电子***包括多个线路可更换单元。
5.根据权利要求1所述的方法,该方法还包括:
基于所述测试修改(723)所述物理硬件***以生成修改的物理硬件***;以及
部署(727)所述修改的物理硬件***。
6.根据权利要求1所述的方法,其中,获得与所述物理硬件***匹配的所述代理物理硬件***的步骤包括获得至少具有与所述物理硬件***的处理器(325)相同的处理器(425)的代理物理硬件***(105)。
7.根据权利要求1所述的方法,其中,在所述虚拟化***中从所述代理物理硬件***构造所述代理虚拟机的步骤包括至少对所述代理物理硬件***的处理器(425)进行仿真(907)。
8.根据权利要求1所述的方法,其中,获得与所述物理硬件***匹配的所述代理物理硬件***的步骤在不访问所述物理硬件***的规范的情况下进行。
9.根据权利要求1所述的方法,该方法还包括使用所述虚拟化***模拟至少一个载具物理硬件***以训练所述载具物理硬件***的用户。
10.一种通过在代理虚拟机(130)中在对应仿真代理物理硬件***(105)上执行硬件***应用软件(136)来测试物理硬件***(102)的***,该***包括:
与所述物理硬件***的各方面匹配的代理物理硬件***(105);以及
包括从所述代理物理硬件***构造的代理虚拟机的虚拟化***(110),其中,所述代理虚拟机对所述代理物理硬件***的硬件组件(425,431,433,435,437,445,449)进行仿真并执行(707)硬件抽象软件层(132),该硬件抽象软件层(132)在所述代理虚拟机中使用再现所述代理物理硬件***所使用的存储器位置的存储器映射(601)并使用在所述代理虚拟机和所述硬件***应用软件之间映射数据的至少一个适配器(134,135)来执行所述硬件***应用软件。
11.根据权利要求10所述的***,其中,所述硬件抽象软件层包括ARINC 653操作***。
12.根据权利要求10所述的***,其中,所述至少一个适配器包括在所述软件抽象层中执行的第一适配器(134)以及在所述代理虚拟机中执行的第二适配器(135)。
13.根据权利要求10所述的***,其中,下列中的至少一个成立:
所述物理硬件***包括航空电子***,该航空电子***包括多个线路可更换单元;
所述代理物理硬件***(105)至少具有与所述物理硬件***的处理器(325)相同的处理器(425);以及
从所述代理物理硬件***构造的所述代理虚拟机至少对所述代理物理硬件***的处理器(425)进行仿真(907)。
14.根据权利要求10所述的***,该***还包括基于使用所述虚拟化***测试所述物理硬件***而修改的经修改后的物理硬件***。
CN201910962065.7A 2018-10-31 2019-10-11 用于使用硬件抽象软件层的***的通用虚拟化平台 Pending CN111123736A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/176,855 US11347531B2 (en) 2018-10-31 2018-10-31 Generalized virtualization platform for systems using hardware abstraction software layers
US16/176,855 2018-10-31

Publications (1)

Publication Number Publication Date
CN111123736A true CN111123736A (zh) 2020-05-08

Family

ID=67953524

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910962065.7A Pending CN111123736A (zh) 2018-10-31 2019-10-11 用于使用硬件抽象软件层的***的通用虚拟化平台

Country Status (9)

Country Link
US (1) US11347531B2 (zh)
EP (1) EP3647956B1 (zh)
JP (1) JP7321839B2 (zh)
KR (1) KR20200050376A (zh)
CN (1) CN111123736A (zh)
AU (1) AU2019246793B2 (zh)
BR (1) BR102019018994A2 (zh)
CA (1) CA3053003A1 (zh)
RU (1) RU2019126462A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3961389A1 (en) * 2020-08-26 2022-03-02 The Boeing Company Virtual machine for developing and testing target code for hardware designs
CN112764981B (zh) * 2021-01-22 2023-03-14 山东云海国创云计算装备产业创新中心有限公司 一种协同测试***及方法
CN113823145A (zh) * 2021-11-25 2021-12-21 成都运达科技股份有限公司 动车组联动仿真培训***及方法
JP2023128052A (ja) * 2022-03-02 2023-09-14 株式会社東芝 情報処理システム

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004554A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for development of emulated devices in a virtual machine environment
US20080127181A1 (en) * 2006-06-30 2008-05-29 Microsoft Corporation Use of fixed-function device as general-purpose platform through virtualization
US7814495B1 (en) * 2006-03-31 2010-10-12 V Mware, Inc. On-line replacement and changing of virtualization software
CN102571474A (zh) * 2010-12-30 2012-07-11 北京首信科技股份有限公司 虚拟化的Radius测试***及方法
CN102915236A (zh) * 2011-06-28 2013-02-06 波音公司 使用硬件抽象执行软件应用程序的方法和***
CN102968377A (zh) * 2012-12-13 2013-03-13 中国航空无线电电子研究所 一种基于虚拟机技术的机载软件***测试通用平台
US20130091500A1 (en) * 2011-10-10 2013-04-11 William J. Earl Paravirtualized virtual gpu
US20130166271A1 (en) * 2010-07-06 2013-06-27 Torkel Danielsson Simulating and testing avionics
CN103780674A (zh) * 2013-11-13 2014-05-07 南京中兴新软件有限责任公司 一种基于硬件模拟的虚拟机通信方法和装置
US20170177460A1 (en) * 2015-12-17 2017-06-22 Intel Corporation Monitoring the operation of a processor
US20180285134A1 (en) * 2017-03-31 2018-10-04 The Boeing Company Emulation of hardware components

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615384B2 (en) 2007-10-31 2013-12-24 The Boeing Company Method and apparatus for simulating aircraft data processing systems
US8732700B2 (en) * 2008-12-18 2014-05-20 Vmware, Inc. Virtualization system with a remote proxy
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US9323576B2 (en) 2014-02-04 2016-04-26 The Boeing Company Removal of idle time in virtual machine operation
US9696878B2 (en) * 2014-07-21 2017-07-04 Honeywell International Inc. System and method for abstracting a display
US10579283B1 (en) * 2017-04-27 2020-03-03 EMC IP Holding Company LLC Elastic virtual backup proxy
US20200026428A1 (en) * 2018-07-23 2020-01-23 EMC IP Holding Company LLC Smart auto-backup of virtual machines using a virtual proxy

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060004554A1 (en) * 2004-06-30 2006-01-05 Microsoft Corporation Systems and methods for development of emulated devices in a virtual machine environment
US7814495B1 (en) * 2006-03-31 2010-10-12 V Mware, Inc. On-line replacement and changing of virtualization software
US20080127181A1 (en) * 2006-06-30 2008-05-29 Microsoft Corporation Use of fixed-function device as general-purpose platform through virtualization
US20130166271A1 (en) * 2010-07-06 2013-06-27 Torkel Danielsson Simulating and testing avionics
CN102571474A (zh) * 2010-12-30 2012-07-11 北京首信科技股份有限公司 虚拟化的Radius测试***及方法
CN102915236A (zh) * 2011-06-28 2013-02-06 波音公司 使用硬件抽象执行软件应用程序的方法和***
US20130091500A1 (en) * 2011-10-10 2013-04-11 William J. Earl Paravirtualized virtual gpu
CN102968377A (zh) * 2012-12-13 2013-03-13 中国航空无线电电子研究所 一种基于虚拟机技术的机载软件***测试通用平台
CN103780674A (zh) * 2013-11-13 2014-05-07 南京中兴新软件有限责任公司 一种基于硬件模拟的虚拟机通信方法和装置
US20170177460A1 (en) * 2015-12-17 2017-06-22 Intel Corporation Monitoring the operation of a processor
US20180285134A1 (en) * 2017-03-31 2018-10-04 The Boeing Company Emulation of hardware components
CN108694070A (zh) * 2017-03-31 2018-10-23 波音公司 硬件组件的仿真

Also Published As

Publication number Publication date
EP3647956B1 (en) 2023-02-01
KR20200050376A (ko) 2020-05-11
AU2019246793A1 (en) 2020-05-14
CA3053003A1 (en) 2020-04-30
US11347531B2 (en) 2022-05-31
BR102019018994A2 (pt) 2020-05-26
AU2019246793B2 (en) 2024-05-02
EP3647956A1 (en) 2020-05-06
US20200133705A1 (en) 2020-04-30
JP2020071870A (ja) 2020-05-07
RU2019126462A (ru) 2021-02-24
JP7321839B2 (ja) 2023-08-07

Similar Documents

Publication Publication Date Title
EP3382536B1 (en) Emulation of hardware components
AU2019246793B2 (en) Generalized virtualization platform for systems using hardware abstraction software layers
CN112035299B (zh) 用基于存储器的通信协议进行仿真设备测试的***和方法
US20190034318A1 (en) Hardware-Software Co-Verification for Debugging Firmware on a Hardware Simulator
US20100280817A1 (en) Direct pointer access and xip redirector for emulation of memory-mapped devices
CN116681013B (zh) 网络芯片的仿真验证方法、平台、装置、设备及介质
CN109271231B (zh) 测试物理硬件装置的方法和仿真物理硬件装置的***
CN112764981B (zh) 一种协同测试***及方法
EP3839731A1 (en) Apparatus and method to assign threads to a plurality of processor cores for virtualization of a hardware configuration
CN116611375A (zh) 软硬件协同仿真平台及软硬件测试方法
Ericsson et al. Challenges from research to deployment of industrial distributed control systems
US7447618B2 (en) Method and system for ASIC simulation
Kleinert et al. Hardware-software co-simulation for medical x-ray control units
CN117971400A (zh) 一种网卡设备仿真***、方法、电子设备及存储介质
Kanaya et al. NEMIANA: cross-platform execution migration for debugging
Callanan et al. A study in rapid prototyping: Leveraging software and hardware simulation tools in the bringup of system-on-a-chip based platforms
CN114116116A (zh) 针对硬件设计开发和测试目标代码的虚拟机
Hicks Using an in-kernel emulator for TPS development and testing
KR20240009773A (ko) 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 포트 가상화 장치 및 방법
Yantchev et al. Virtualization Based Development
KR20140000993A (ko) 가상 보드 플랫폼, 시스템-온-칩 시뮬레이션 장치, 시스템-온-칩 시뮬레이션 방법 및 시스템-온-칩 검증 방법

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