CN113407243B - 一种配置和调度虚拟i/o模块的方法和装置 - Google Patents

一种配置和调度虚拟i/o模块的方法和装置 Download PDF

Info

Publication number
CN113407243B
CN113407243B CN202010188710.7A CN202010188710A CN113407243B CN 113407243 B CN113407243 B CN 113407243B CN 202010188710 A CN202010188710 A CN 202010188710A CN 113407243 B CN113407243 B CN 113407243B
Authority
CN
China
Prior art keywords
virtual
module
configuration file
modules
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010188710.7A
Other languages
English (en)
Other versions
CN113407243A (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.)
NR Electric Co Ltd
Original Assignee
NR Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NR Electric Co Ltd filed Critical NR Electric Co Ltd
Priority to CN202010188710.7A priority Critical patent/CN113407243B/zh
Publication of CN113407243A publication Critical patent/CN113407243A/zh
Application granted granted Critical
Publication of CN113407243B publication Critical patent/CN113407243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • 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
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种配置和调度虚拟I/O模块的方法和装置,所述方法包括:基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件;根据所述配置文件生成一个或多个虚拟I/O模块实例;根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列;以及按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度。通过本发明的配置和调度虚拟I/O模块的方法和装置,通过软件配置在同一个物理硬件上虚拟一个或多个通信I/O模块,在不影响该物理硬件自身运算功能的前提下,由该物理硬件实现多个连接、不同的第三方通信规约的通信功能。

Description

一种配置和调度虚拟I/O模块的方法和装置
技术领域
本发明涉及自动控制领域,特别是涉及一种配置和调度虚拟I/O模块的方法和装置。
背景技术
在自动控制领域,为了便于生产管理和差异化定价,I/O(Input/Output,输入/输出)模块的硬件与软件通常绑定,一个硬件通常只完成一个专用功能,不通用。但该绑定模式对用户而言,造成了性能和接口的浪费,特别是计算机技术发展带来元器件性能大幅度提升的当下。对于那些想提升生产制造自动化水平又苦于自动控制系统构建成本的用户而言,能否在复用现有硬件资源基础上,实现不同I/O功能的扩展,成为用户对设备厂商对提高资源利用率的新要求。
发明内容
由于硬件开发周期普遍较长,一旦功能的修改涉及到硬件,造成硬件设计方案迭代,则极易引起设备厂家投入过高,甚至与产出不成正比。对设备厂家而言,也需要寻求一种方式降低对硬件开发的要求,尽可能从软件方面实现用户需求的变化,并为在不改变现有软硬件体系的情况下,为后续升级扩展留有足够的余量。
在现有技术中,以处理器模块为例,处理器模块的性能在完成逻辑运算之外,运算能力完全有富余,其正常工作的时候自带的以太网口数据报文量也留有足够裕量,那么完全可以通过软件和配置在现有的处理器模块上虚拟一个或多个通信I/O模块,在不影响逻辑运算功能的前提下由其实现多个连接、不同的第三方通信规约的以太网通信功能。
为此,我们提出一种配置和调度虚拟I/O模块的方法和装置,实现在同一组态软件框架内在同一物理硬件上支持不同的信号处理、输入和输出功能。
根据本发明的第一个方面,提供一种配置和调度虚拟I/O模块的方法,其包括:
基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件;
根据所述配置文件生成一个或多个虚拟I/O模块实例;
根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列;以及
按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度。
根据本发明的第二个方面,提供一种配置和调度虚拟I/O模块的装置,其包括:
配置单元,用于基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件;
生成单元,用于根据所述配置文件生成一个或多个虚拟I/O模块实例;
形成单元,用于根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列;以及
调度单元,用于按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度。
通过本发明的配置和调度虚拟I/O模块的方法和装置,通过软件配置在同一个物理硬件上虚拟一个或多个通信I/O模块,在不影响该物理硬件自身运算功能的前提下,由该物理硬件实现多个连接、不同的第三方通信规约的通信功能。通过本发明的方法和装置,在复用现有硬件资源的基础上,实现不同I/O功能的扩展,获得更好的硬件资源利用率。
附图说明
为进一步清楚解释本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。
在下面的附图中:
图1是虚拟I/O模块系统组成示意图。
图2是根据本发明实施例的配置和调度虚拟I/O模块的方法的流程图。
图3是根据本发明实施例的配置和调度虚拟I/O模块的装置的示意图。
具体实施方式
以下通过特定的具体实施例来说明本发明所公开的实施方式,本领域技术人员可由本说明书所公开的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以施行或应用,本说明书中的各项细节也可基于不同观点与应用,在不悖离本发明的构思下进行各种修改与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸的描绘。以下的实施方式将进一步详细说明本发明的相关技术内容,但所公开的内容并非用以限制本发明的保护范围。
图1是虚拟I/O模块系统组成示意图。如图1所示,该系统包括组件101、组件102和组件103。组件101为一种物理硬件,具体为为带处理器功能的物理硬件,所有软件功能基于该硬件实现。在一个具体的实施例中,该物理硬件是一种处理器模块。该物理硬件需具备足够的性能和资源容量以满足一个以上虚拟I/O模块实例的运行要求。
组件102为虚拟I/O模块,该模块复用组件101的硬件资源和软件资源,没有硬件实体,作为一个逻辑上的存在位于组件101内。该虚拟I/O模块根据需求实现不同的I/O功能,包括外部输入信号获取、信号的预处理及诊断以及信号处理结果的输出。虚拟I/O模块在组件101内可有多个不同的类型和数量,但其类型和数量受限于组件101的硬件资源和软件资源。在一个具体实施例中,硬件资源包括物理硬件的处理器(例如,CPU)的处理能力以及内存空间,软件资源包括该物理硬件对上通讯的信号量上限等。
组件103为硬件接口,位于组件101内,属于其硬件组成。所有虚拟I/O模块共享此硬件接口,因此虚拟I/O模块的功能实现受限于该硬件接口类型。外部输入信号获取以及信号处理结果的输出均通过此硬件接口实现。
在上述虚拟I/O模块系统描述的基础上,根据一个方面,本发明提供一种基于该虚拟I/O模块系统的配置和调度虚拟I/O模块的方法。
图2是根据本发明实施例的配置和调度虚拟I/O模块的方法的流程图。如图2所示,该方法包括如下步骤。
步骤S201,基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件。
存在一种控制器或控制单元,通过控制组态软件对一个物理硬件进行配置,形成配置文件。其中,该物理硬件可以是一种处理器模块。需要说明的是,组态软件对虚拟IO模块的配置方式与其对普通IO模块的配置方式类似或相同,所形成的配置文件的格式也类似或相同。基于组态软件对物理硬件的配置过程,包括配置了哪些虚拟I/O模块(包括虚拟I/O模块的类型和数量),这些虚拟I/O模块在什么地方(即占用哪些槽位),为各个虚拟I/O模块配置哪些功能以及为实现这些功能设置正确的运行参数等,然后,根据对物理硬件的配置过程形成配置文件。
根据本发明的一个实施例,配置一个或多个虚拟I/O模块并设置预定的参数包括根据所述物理硬件的资源限制,配置一种类型或多种不同类型以及不同数量的虚拟I/O模块。其中,所述资源包括硬件资源和软件资源。具体来说,一个物理硬件有硬件资源和软件资源,如上所述,硬件资源包括物理硬件的处理器(例如,CPU)的处理能力以及内存空间,软件资源包括该物理硬件对上通讯的信号量上限等。控制组态软件对物理硬件进行虚拟I/O模块,需要考虑物理硬件本身的资源限制,当配置的虚拟I/O模块所需的资源超过物理硬件的资源限制时,就停止配置虚拟I/O模块。另外,虚拟I/O模块的类型是根据实际功能需求而确定的,不同实际功能需对应不同应用功能,也就是说,虚拟I/O模块的类型是根据应用功能而确定的。例如,希望物理硬件上实现MobusTCP通讯功能,那么就在该物理硬件上配置对应的虚拟IO模块;再如,希望物理硬件上实现GOOSE通讯功能,那么就在该物理硬件上配置对应的虚拟IO模块。另外,配置文件中设置的参数与应用功能有关,针对不同的应用功能设置不同的参数。例如,对于MobusTCP这种应用功能,需要设置的参数包括访问对象的IP地址、访问对象数据存放的地址等;而对于GOOSE这种应用功能,需要设置的参数包括访问对象的MAC地址,访问数据COID编号等。
步骤S202,根据所述配置文件生成一个或多个虚拟I/O模块实例。
在控制器或控制模块的控制下,物理硬件读取通过组态软件生成并下载的配置文件,然后校验配置文件的完整性和有效性。具体来说,所述根据所述配置文件生成一个或多个虚拟I/O模块实例包括:解析所述配置文件;以及根据从所解析的配置文件所获取的参数生成虚拟I/O模块实例。其中,解析所述配置文件的过程包括:通过组态软件生成的配置文件校验码以及配置文件内的参数区域校验码对配置文件校验,校验的时候先校验配置文件的,通过读取整个配置文件进行校验码计算和比对,通不过报错停止;然后读取参数区的校验码,对参数进行校验,通不过报错,停止解析。
根据一个具体实施例,所述解析所述配置文件包括:将从所述配置文件中获取的配置信息进行匹配,所述配置信息包括:虚拟I/O模块的型号、版本、输入信息、输出信息和预定的参数。
解析过程中会对配置文件中虚拟I/O模块的型号、版本以及输入、输出及参数等信息进行匹配校验,避免配置不匹配(比如版本升级)引起的实例化失败及运行异常。例如,当前物理硬件支持2种虚拟IO型号,但整个系统可以支持5种,如果配置的其他类型,则与当前物理硬件不匹配,因此需校验,确保错误的配置不被执行;版本、输入、输出和参数这个主要是防止升级后同一型号不匹配,该不匹配可能带来功能上的错误。
步骤S203,根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列。
如上所述,配置文件中记录了虚拟I/O模块在什么地方(即占用哪些槽位),现在物理硬件中的管理进程需要根据配置文件,将虚拟I/O模块实例放置在对应的槽位上,并且虚拟I/O模块实例所放置的槽位的位置不会重复。例如,配置文件在同一硬件上配置了2种虚拟IO模块,第一种包括2个虚拟IO模块,分别在#1、#3槽,第二种包括3个虚拟IO模块,分别在#2、#4、#5槽。那么,在该步骤中,物理硬件中的管理进程可以将对应的这5个虚拟IO模块实例根据配置文件的配置放置在#1、#2、#3、#4、#5槽,所形成的执行队列可以是按照这#1、#2、#3、#4、#5槽的顺序依次执行。
根据一个优选的是实施例,可以根据虚拟I/O模块的优先级将所述虚拟I/O模块加入执行队列。具体来说,所述根据所述配置文件将所述虚拟I/O模块实例进行排序,形成执行队列包括:根据所述配置文件获取所述一个或多个虚拟I/O模块的运算调度周期;根据所述运算调度周期确定对应的各个虚拟I/O模块实例的优先级,其中,所述运算调度周期越短的虚拟I/O模块相对应的虚拟I/O模块实例的优先级越高;以及根据所述优先级将所述虚拟I/O模块实例进行排序,形成执行队列。
其中,运算调度周期是根据虚拟I/O模块功能及输入、输出刷新率的要求确定,也就是解析配置文件时从配置文件可以获取到当前配置的虚拟IO模块的运算调度周期。
为确保各虚拟I/O模块充分利用现有的软硬件资源,运算调度周期越短(即运算速度越快)的虚拟I/O模块对应的任务优先级越高,即对应的虚拟I/O模块实例的优先级越高。根据本发明的一个实施例,可以将优先级相同的虚拟I/O模块实例放在一起,具体来说,根据配置文件可以获知各个虚拟I/O模块的槽位号,将具有相同运算调度周期(即具有相同运算速度)的虚拟I/O模块实例各自的槽位号放置在同一优先级任务队列形成执行队列,然后依次执行。如上面记载的例子,配置文件在同一硬件上配置了2种虚拟IO模块,第一种包括2个虚拟IO模块,运算调度周期为10ms,将其优先级设为1,分别在#1、#3槽,第二种包括3个虚拟IO模块,运算调度周期为50ms,将其优先级设为2,分别在#2、#4、#5槽。那么,第一种虚拟IO模块实例的优先级就高于第二种的,最后可以有两个任务队列,一个对应10ms运算调度周期的,按#1、#3的顺序执行;一个对应50ms运算调度周期的,按#2、#4、#5的顺序执行。在一个优选的实施例中,优先级越高的虚拟I/O模块实例对应的任务队列越早执行。那么,在上面的例子中,优先执行10ms运算调度周期对应的任务队列,然后执行50ms运算调度周期对应的任务队列,所形成的执行顺序是#1、#3、#2、#4、#5。
步骤S204,按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度。
如上所述,解析配置文件时从配置文件可以获取到当前配置的虚拟IO模块的运算调度周期,即每个虚拟IO模块都有对应的运算调度周期。那么,物理硬件中的管理进程对加入执行队列的所述虚拟I/O模块实例进行调度就要按照周期的方式进行。所以,所述按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度包括:根据所述运算调度周期对所述执行队列中的所述虚拟I/O模块实例进行调度。如上文所述,运算调度周期是根据虚拟I/O模块功能及输入、输出刷新率的要求确定。
通过本发明的配置和调度虚拟I/O模块的方法,通过软件配置在同一个物理硬件上虚拟一个或多个通信I/O模块,在不影响该物理硬件自身运算功能的前提下,由该物理硬件实现多个连接、不同的第三方通信规约的通信功能。通过本发明的方法,在复用现有硬件资源的基础上,实现不同I/O功能的扩展,获得更好的硬件资源利用率。
根据另一个方面,本发明还提供一种基于该虚拟I/O模块系统的配置和调度虚拟I/O模块的装置。
图3是根据本发明实施例的配置和调度虚拟I/O模块的装置的示意图。如图3所示,该装置包括如下单元。
配置单元301,用于基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件。
存在一种控制器或控制单元,通过控制组态软件对一个物理硬件进行配置,形成配置文件。其中,该物理硬件可以是一种处理器模块。需要说明的是,组态软件对虚拟IO模块的配置方式与其对普通IO模块的配置方式类似或相同,所形成的配置文件的格式也类似或相同。基于组态软件对物理硬件的配置过程,包括配置了哪些虚拟I/O模块(包括虚拟I/O模块的类型和数量),这些虚拟I/O模块在什么地方(即占用哪些槽位),为各个虚拟I/O模块配置哪些功能以及为实现这些功能设置正确的运行参数等,然后,根据对物理硬件的配置过程形成配置文件。
根据本发明的一个实施例,配置单元301包括:配置子单元,用于根据所述物理硬件的资源限制,配置一种类型或多种不同类型以及不同数量的虚拟I/O模块。其中,所述资源包括硬件资源和软件资源。具体来说,一个物理硬件有硬件资源和软件资源,如上所述,硬件资源包括物理硬件的处理器(例如,CPU)的处理能力以及内存空间,软件资源包括该物理硬件对上通讯的信号量上限等。控制组态软件对物理硬件进行虚拟I/O模块,需要考虑物理硬件本身的资源限制,当配置的虚拟I/O模块所需的资源超过物理硬件的资源限制时,就停止配置虚拟I/O模块。另外,虚拟I/O模块的类型是根据实际功能需求而确定的,不同实际功能需对应不同应用功能,也就是说,虚拟I/O模块的类型是根据应用功能而确定的。例如,希望物理硬件上实现MobusTCP通讯功能,那么就在该物理硬件上配置对应的虚拟IO模块;再如,希望物理硬件上实现GOOSE通讯功能,那么就在该物理硬件上配置对应的虚拟IO模块。另外,配置文件中设置的参数与应用功能有关,针对不同的应用功能设置不同的参数。例如,对于MobusTCP这种应用功能,需要设置的参数包括访问对象的IP地址、访问对象数据存放的地址等;而对于GOOSE这种应用功能,需要设置的参数包括访问对象的MAC地址,访问数据COID编号等。
生成单元302,用于根据所述配置文件生成一个或多个虚拟I/O模块实例。
在控制器或控制模块的控制下,物理硬件读取通过组态软件生成并下载的配置文件,然后校验配置文件的完整性和有效性。具体来说,生成单元302包括:解析子单元,用于解析所述配置文件;以及生成子单元,用于根据从所解析的配置文件所获取的参数生成虚拟I/O模块实例。其中,解析所述配置文件的过程包括:通过组态软件生成的配置文件校验码以及配置文件内的参数区域校验码对配置文件校验,校验的时候先校验配置文件的,通过读取整个配置文件进行校验码计算和比对,通不过报错停止;然后读取参数区的校验码,对参数进行校验,通不过报错,停止解析。
根据一个具体实施例,所述解析子单元包括:匹配次单元,用于将从所述配置文件中获取的配置信息进行匹配,所述配置信息包括:虚拟I/O模块的型号、版本、输入信息、输出信息和预定的参数。
解析过程中会对配置文件中虚拟I/O模块的型号、版本以及输入、输出及参数等信息进行匹配校验,避免配置不匹配(比如版本升级)引起的实例化失败及运行异常。例如,当前物理硬件支持2种虚拟IO型号,但整个系统可以支持5种,如果配置的其他类型,则与当前物理硬件不匹配,因此需校验,确保错误的配置不被执行;版本、输入、输出和参数这个主要是防止升级后同一型号不匹配,该不匹配可能带来功能上的错误。
形成单元303,用于根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列。
如上所述,配置文件中记录了虚拟I/O模块在什么地方(即占用哪些槽位),现在物理硬件中的管理进程需要根据配置文件,将虚拟I/O模块实例放置在对应的槽位上,并且虚拟I/O模块实例所放置的槽位的位置不会重复。例如,配置文件在同一硬件上配置了2种虚拟IO模块,第一种包括2个虚拟IO模块,分别在#1、#3槽,第二种包括3个虚拟IO模块,分别在#2、#4、#5槽。那么,在该步骤中,物理硬件中的管理进程可以将对应的这5个虚拟IO模块实例根据配置文件的配置放置在#1、#2、#3、#4、#5槽,所形成的执行队列可以是按照这#1、#2、#3、#4、#5槽的顺序依次执行。
根据一个优选的是实施例,可以根据虚拟I/O模块的优先级将所述虚拟I/O模块加入执行队列。具体来说,所述形成单元303包括:获取子单元,用于根据所述配置文件获取所述一个或多个虚拟I/O模块的运算调度周期;确定子单元,用于根据所述运算调度周期确定对应的各个虚拟I/O模块实例的优先级,其中,所述运算调度周期越短的虚拟I/O模块相对应的虚拟I/O模块实例的优先级越高;以及形成子单元,用于根据所述优先级将所述虚拟I/O模块实例进行排序,形成执行队列。
其中,运算调度周期是根据虚拟I/O模块功能及输入、输出刷新率的要求确定,也就是解析配置文件时从配置文件可以获取到当前配置的虚拟IO模块的运算调度周期。
为确保各虚拟I/O模块充分利用现有的软硬件资源,运算调度周期越短(即运算速度越快)的虚拟I/O模块对应的任务优先级越高,即对应的虚拟I/O模块实例的优先级越高。根据本发明的一个实施例,可以将优先级相同的虚拟I/O模块实例放在一起,具体来说,根据配置文件可以获知各个虚拟I/O模块的槽位号,将具有相同运算调度周期(即具有相同运算速度)的虚拟I/O模块实例各自的槽位号放置在同一优先级任务队列形成执行队列,然后依次执行。如上面记载的例子,配置文件在同一硬件上配置了2种虚拟IO模块,第一种包括2个虚拟IO模块,运算调度周期为10ms,将其优先级设为1,分别在#1、#3槽,第二种包括3个虚拟IO模块,运算调度周期为50ms,将其优先级设为2,分别在#2、#4、#5槽。那么,第一种虚拟IO模块实例的优先级就高于第二种的,最后可以有两个任务队列,一个对应10ms运算调度周期的,按#1、#3的顺序执行;一个对应50ms运算调度周期的,按#2、#4、#5的顺序执行。在一个优选的实施例中,优先级越高的虚拟I/O模块实例对应的任务队列越早执行。那么,在上面的例子中,优先执行10ms运算调度周期对应的任务队列,然后执行50ms运算调度周期对应的任务队列,所形成的执行顺序是#1、#3、#2、#4、#5。
调度单元304,用于按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度。
如上所述,解析配置文件时从配置文件可以获取到当前配置的虚拟IO模块的运算调度周期,即每个虚拟IO模块都有对应的运算调度周期。那么,物理硬件中的管理进程对加入执行队列的所述虚拟I/O模块实例进行调度就要按照周期的方式进行。所以,所述调度单元304包括:调度子单元,用于根据所述运算调度周期对所述执行队列中的所述虚拟I/O模块实例进行调度。如上文所述,运算调度周期是根据虚拟I/O模块功能及输入、输出刷新率的要求确定。
通过本发明的配置和调度虚拟I/O模块的装置,通过软件配置在同一个物理硬件上虚拟一个或多个通信I/O模块,在不影响该物理硬件自身运算功能的前提下,由该物理硬件实现多个连接、不同的第三方通信规约的通信功能。通过本发明的装置,在复用现有硬件资源的基础上,实现不同I/O功能的扩展,获得更好的硬件资源利用率。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (2)

1.一种配置和调度虚拟I/O模块的方法,其包括:
基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件;
根据所述配置文件生成一个或多个虚拟I/O模块实例;
根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列;以及
按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度;
其中,所述配置一个或多个虚拟I/O模块并设置预定的参数包括:
根据所述物理硬件的资源限制,配置一种类型或多种不同类型以及不同数量的虚拟I/O模块,其中,所述资源包括硬件资源和软件资源;
所述根据所述配置文件生成虚拟I/O模块实例包括:
解析所述配置文件;以及
根据从所解析的配置文件所获取的参数生成虚拟I/O模块实例;
所述解析所述配置文件包括:
将从所述配置文件中获取的配置信息进行匹配,所述配置信息包括:
虚拟I/O模块的型号、版本、输入信息、输出信息和所述预定的参数;
所述根据所述配置文件将所述虚拟I/O模块实例进行排序,形成执行队列包括:
根据所述配置文件获取所述一个或多个虚拟I/O模块的运算调度周期;
根据所述运算调度周期确定对应的各个虚拟I/O模块实例的优先级,其中,所述运算调度周期越短的虚拟I/O模块相对应的虚拟I/O模块实例的优先级越高;以及
根据所述优先级将所述虚拟I/O模块实例进行排序,形成执行队列;
所述按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度包括:
根据所述运算调度周期对所述执行队列中的所述虚拟I/O模块实例进行调度。
2.一种配置和调度虚拟I/O模块的装置,其包括:
配置单元,用于基于同一物理硬件,配置一个或多个虚拟I/O模块并设置预定的参数,以生成配置文件;
生成单元,用于根据所述配置文件生成一个或多个虚拟I/O模块实例;
形成单元,用于根据所述配置文件将所述一个或多个虚拟I/O模块实例进行排序,形成执行队列;以及
调度单元,用于按照周期方式对所述执行队列中的所述虚拟I/O模块实例进行调度;
其中,所述配置单元包括:
配置子单元,用于根据所述物理硬件的资源限制,配置一种类型或多种不同类型以及不同数量的虚拟I/O模块,其中,所述资源包括硬件资源和软件资源;
所述生成单元包括:
解析子单元,用于解析所述配置文件;以及
生成子单元,用于根据从所解析的配置文件所获取的参数生成虚拟I/O模块实例;
所述解析子单元包括:
配置次单元,用于将从所述配置文件中获取的配置信息进行匹配,所述配置信息包括:虚拟I/O模块的型号、版本、输入信息、输出信息和所述预定的参数;
所述形成单元包括:
获取子单元,用于根据所述配置文件获取所述一个或多个虚拟I/O模块的运算调度周期;
确定子单元,用于根据所述运算调度周期确定对应的各个虚拟I/O模块实例的优先级,其中,所述运算调度周期越短的虚拟I/O模块相对应的虚拟I/O模块实例的优先级越高;以及
形成子单元,用于根据所述优先级将所述虚拟I/O模块实例进行排序,形成执行队列;
所述调度单元包括:
调度子单元,用于根据所述运算调度周期对所述执行队列中的所述虚拟I/O模块实例进行调度。
CN202010188710.7A 2020-03-17 2020-03-17 一种配置和调度虚拟i/o模块的方法和装置 Active CN113407243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010188710.7A CN113407243B (zh) 2020-03-17 2020-03-17 一种配置和调度虚拟i/o模块的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010188710.7A CN113407243B (zh) 2020-03-17 2020-03-17 一种配置和调度虚拟i/o模块的方法和装置

Publications (2)

Publication Number Publication Date
CN113407243A CN113407243A (zh) 2021-09-17
CN113407243B true CN113407243B (zh) 2022-07-22

Family

ID=77677155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010188710.7A Active CN113407243B (zh) 2020-03-17 2020-03-17 一种配置和调度虚拟i/o模块的方法和装置

Country Status (1)

Country Link
CN (1) CN113407243B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103810023A (zh) * 2014-03-06 2014-05-21 中国科学院信息工程研究所 一种云平台中分布式应用的智能部署方法及系统
CN104636201A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 一种虚拟i/o调度方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636201A (zh) * 2013-11-15 2015-05-20 中国电信股份有限公司 一种虚拟i/o调度方法和系统
CN103810023A (zh) * 2014-03-06 2014-05-21 中国科学院信息工程研究所 一种云平台中分布式应用的智能部署方法及系统

Also Published As

Publication number Publication date
CN113407243A (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
CN106940428B (zh) 芯片验证方法、装置及系统
CN109240924B (zh) 一种应用程序的测试方法及设备
US8984349B2 (en) Method and system for automating the process of testing a device
WO2021238006A1 (zh) 人工智能芯片验证
CN110471834B (zh) 多交易渠道下的信用卡模拟测试方法及相关设备
CN109740222B (zh) 一种针对汽车网联化场景的测试装置和系统
CN106980597B (zh) 片上系统验证方法及验证系统
CN111859832B (zh) 一种芯片仿真验证方法、装置及相关设备
CN109597733A (zh) 一种多功能高效动态芯片验证仿真方法和设备
CN114237676B (zh) 一种fpga逻辑更新方法、装置、设备及可读存储介质
CN105786695A (zh) 数据测试方法及系统
CN116681013B (zh) 网络芯片的仿真验证方法、平台、装置、设备及介质
CN110569154B (zh) 一种芯片接口功能测试方法、系统、终端及存储介质
CN109683964A (zh) Bios软件调试控制方法、系统及服务器
CN113779913B (zh) 一种面向ai多芯片系统的验证平台结构和测试方法
CN113094235B (zh) 一种尾延迟异常云审计系统及方法
CN113407243B (zh) 一种配置和调度虚拟i/o模块的方法和装置
CN115952044A (zh) 一种自动化测试方法及其装置
CN115202949B (zh) 一种芯片信号的监测装置、方法、计算机设备及存储介质
CN115993937A (zh) 一种多进程固态硬盘仿真环境实现方法和装置
CN102750167B (zh) 应用程序启动方法、装置和计算机系统
CN102306109A (zh) 一种实现通讯管理机内部逻辑可编程方法
CN112559336B (zh) 自适应调试异构计算芯片的方法、装置、系统及主板芯片
CN114924963A (zh) 网页兼容性测试的分布式执行方法、装置、设备及介质
CN108984991B (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
GR01 Patent grant
GR01 Patent grant