CN113360422A - 一种异构系统中实时操作系统设备收发数据的方法及装置 - Google Patents
一种异构系统中实时操作系统设备收发数据的方法及装置 Download PDFInfo
- Publication number
- CN113360422A CN113360422A CN202110788603.2A CN202110788603A CN113360422A CN 113360422 A CN113360422 A CN 113360422A CN 202110788603 A CN202110788603 A CN 202110788603A CN 113360422 A CN113360422 A CN 113360422A
- Authority
- CN
- China
- Prior art keywords
- real
- operating system
- time operating
- dma
- address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/282—Cycle stealing DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明提供了一种异构系统中实时操作系统的设备收发数据的方法及装置,当异构系统中非实时操作系统启动VT‑d设备管理异构系统的设备时,所述方法包括:在异构系统的启动过程中,基于配置的实时操作系统的配置参数,由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系;所述实时操作系统基于所述映射关系与所述实时操作系统设备进行数据交互。所述方法及装置实现实时操作系统独立管理包括PCIe在内的外部设备。
Description
技术领域
本发明涉及操作系统领域,尤其涉及一种异构系统中实时操作系统设备收发数据的方法及装置。
背景技术
现如今虚拟化技术已经渗透到社会关键行业核心计算业务中,虚拟化的出现改变了传统的单一计算机架构,虚拟化的高可用性和快速迁移功能有效保证了关键系统的计算机业务连续,有效的降低了由计算机故障导致的业务中断。虚拟化应用到工业控制领域可有效的确保工控机的高可用性,降低由于工控机损坏而导致的业务中断,帮助客户将多个分散的系统整合至一台机器、进行集中管理,不仅可以降低工业和自动化设计制造商的生产成本,还能帮助它们以更快、更高效的方式将产品推向市场,并提高灵活性减少占用空间。
由于工业行业的诸多应用都对实时性及运行能力有着很高的要求,为相关虚拟化解决方案的整合带来巨大挑战。现有技术主要借助多台虚拟机。部分虚拟机运行实时操作系统,其上运行实时应用程序。部分虚拟机运行非实时操作系统,其上运行非实时应用程序。现有虚拟化技术中,一般由虚拟机管理软件虚拟一套独立于实际硬件的虚拟硬件环境(包括虚拟网卡、虚拟硬盘)给虚拟机使用,影响实时操作系统的实时性,不能满足工业环境。
针对上述问题提出了非对称多处理架构(Asymmetric Multi-Processing,简称AMP)的异构系统,AMP架构中不同处理核上运行多种操作系统环境,包括虚拟机运行环境非实时操作系统和实时操作系统运行环境,两个系统协同工作实现工业应用的设计目标。
在运行实时操作系统和非实时操作系统的异构系统中外部设备根据实时操作系统需求分配给实时操作系统独占使用,外部设备由实时操作系统直接驱动。但是在开启硬件辅助虚拟化的情况下,高速串行计算机扩展总线设备(peripheral componentinterconnect express,简称PCIe)由硬件辅助虚拟化技术中的英特尔直接I/O访问的虚拟化设备(Intel Virtualization Technology for Direct I/O,简称VT-d)统一管理,为了满足异构系统中的非实时操作系统的虚拟机的设备透传,VT-d设备由非实时操作系统初始化并管理,导致实时操作系统无法独立管理PCIe设备,使其实时操作系统无法正常使用PCIe设备。
发明内容
有鉴于此,本发明实施例提供了一种异构系统中实时操作系统的设备收发数据的方法及装置,通过设置实时操作系统的设备的主机物理地址与DMA地址的映射关系,使当启动VT-d设备管理异构系统的设备时,实时操作系统的设备能够从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
第一方面,本发明实施例提供了一种异构系统中实时操作系统的设备收发数据的方法,当异构系统中非实时操作系统启动VT-d设备管理异构系统的设备时,在异构系统的启动过程中,基于配置的实时操作系统的配置参数,由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系;所述实时操作系统基于所述映射关系与所述实时操作系统设备进行数据交互。
由上,VT-d设备无法自动实现实时操作系统的设备的主机物理地址与DMA地址的映射关系,通过配置从而建立实时操作系统的设备对应内存的主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据。
在第一方面的一种可能实施方式中,当由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系时,非实时操作系统在启动时解析DMA启动参数,获取所述DMA地址,所述DMA启动参数基于所述配置参数而确定的;非实时操作系统在启动实时操作系统时,解析配置数据,获取所述主机物理地址,设定实时操作系统设备的所述主机物理地址,所述配置数据基于所述配置参数而确定的;非实时操作系统调用VT-d的重映射接口,把所述DMA地址映射成所述主机物理地址。
由上,非实时操作系统调用VT-d设备的重映射接口实现主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据,从而实现主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据。且通过配置数据可灵活设置非实时操作系统的设备的DMA地址与非实时操作系统的设备的DMA地址位于不同范围。
在第一方面的一种可能实施方式中,实时操作系统把所述DMA地址赋予实时操作系统设备。
由上,建立实时操作系统的设备的主机物理地址与DMA地址的映射关系后,实时操作系统把所述DMA地址赋予实时操作系统设备,从而使实时操作系统可以使用该映射关系实现数据交互。
在第一方面的一种可能实施方式中,所述配置实时操作系统的设备的主机物理地址与DMA地址的映射关系还包括:实时操作系统的IDE配置所述主机物理地址,并生成所述DMA启动参数和所述配置数据,其中,所述DMA启动参数至少包括所述DMA地址,所述配置数据至少包括所述主机物理地址,所述DMA启动参数的所述DMA地址与所述主机物理地址基于配置规则一一对应。
由上,基于实时操作系统的所述IDE准确配置生成所述DMA启动参数和所述配置数据,使非实时操作系统准确获取所述DMA地址和所述主机物理地址。基于确定规则使所述DMA地址和所述主机物理地址一一对应,使非实时操作系统准确而灵活建立所述DMA地址和所述主机物理地址的映射关系。
在第一方面的一种可能实施方式中,所述实时操作系统的设备至少包括PCIe设备。
由上,使用上述方法配置PCIe设备时的所述DMA地址和所述主机物理地址的映射关系,使实时操作系统对PCIe设备实现独立管理。
第二方面,本发明实施例提供了一种异构系统中实时操作系统的设备收发数据的装置,当异构系统中非实时操作系统启动VT-d设备管理异构系统的设备时,所述装置包括:配置模块,用于在异构系统的启动过程中,基于配置的实时操作系统的配置参数,由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系;收发模块,用于所述实时操作系统基于所述映射关系与所述实时操作系统设备进行数据交互。
由上,VT-d设备无法自动实现实时操作系统的设备的主机物理地址与DMA地址的映射关系,通过配置从而建立实时操作系统的设备对应内存的主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据。
在第二方面的一种可能实施方式中,所述配置模块包括:DMA地址获取模块,用于非实时操作系统解析DMA启动参数,获取所述DMA地址,其中,所述DMA启动参数基于所述配置参数而生成的;物理地址获取模块,用于非实时操作系统解析配置数据,获取所述主机物理地址,以用于在启动实时操作系统时设置实时操作系统的设备的所述主机物理地址,所述配置数据是基于所述配置参数而生成的;地址映射模块,用于非实时操作系统调用VT-d设备的重映射接口,把所述DMA地址映射成所述主机物理地址。
由上,非实时操作系统调用VT-d设备的重映射接口实现主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据,从而实现主机物理地址与DMA地址的映射关系,实现实时操作系统的设备从所述主机物理地址收发数据。且通过配置数据可灵活设置非实时操作系统的设备的DMA地址与非实时操作系统的设备的DMA地址位于不同范围。
在第二方面的一种可能实施方式中,所述配置模块还包括:DMA地址设定模块,用于实时操作系统把所述DMA地址赋予各实时操作系统的设备。
由上,建立实时操作系统的设备的主机物理地址与DMA地址的映射关系后,实时操作系统把所述DMA地址赋予实时操作系统设备,从而使实时操作系统可以使用该映射关系实现数据交互。
在第二方面的一种可能实施方式中,所述配置模块还包括:IDE配置模块,用于实时操作系统的IDE配置所述主机物理地址,并生成所述DMA启动参数和所述配置数据,其中,所述DMA启动参数至少包括所述DMA地址,所述配置数据至少包括所述主机物理地址,所述DMA启动参数的所述DMA地址与所述主机物理地址基于配置规则一一对应。
由上,基于实时操作系统的所述IDE准确配置生成所述DMA启动参数和所述配置数据,使非实时操作系统准确获取所述DMA地址和所述主机物理地址。基于确定规则使所述DMA地址和所述主机物理地址一一对应,使非实时操作系统准确而灵活建立所述DMA地址和所述主机物理地址的映射关系。
在第二方面的一种可能实施方式中,所述实时操作系统的设备至少包括PCIe设备。
由上,使用上述方法配置PCIe设备时的所述DMA地址和所述主机物理地址的映射关系,使实时操作系统对PCIe设备实现独立管理。
第三方面,本发明实施例提供了一种计算设备,包括,
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行本发明第一方面任一所述实施方式。
第四方面,提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机执行申请第一方面任一所述实施方式。
附图说明
图1A为本发明各实施例应用的异构系统的结构示意图;
图1B为DMA地址映射方法的原理示意图;
图2为本发明的一种异构系统中实时操作系统的设备收发数据的方法实施例的流程示意图;
图3为本发明的一种异构系统中实时操作系统的设备DMA地址配置方法实施例的流程示意图;
图4为本发明的一种异构系统中实时操作系统的设备收发数据的装置实施例的结构示意图;
图5为本发明的一种异构系统中实时操作系统的设备DMA地址配置装置实施例的流程示意图;
图6为本发明各实施例的一种计算设备的结构示意图。
具体实施方式
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三等”或模块A、模块B、模块C等,仅用于区别类似的对象,或用于区别不同的实施例,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明具体实施方式进行进一步详细说明之前,对本发明实施例中涉及的名词和术语,以及其在本发明中相应的用途\作用\功能等进行说明。本发明各实施例涉及的名词和术语适用于如下的解释。
1、DMA、DMA地址和主机物理地址,DMA为直接存储器访问(Direct Memory Access,DMA)技术,将设备待传输数据从DMA地址复制到主机物理地址,为内存和设备开辟一条直接传输数据的高速通道,同时该动作由DMA控制器在DMA总线周期直接完成,提高了CPU的效率。所述主机物理地址是为所述设备分配的内存地址,DMA地址是在DMA总线上为所述设备分配的地址。
2、VT-d设备,一种英特尔虚拟化技术设备,为英特尔直接I/O访问的虚拟化设备(Intel Virtualization Technology for Direct I/O,简称VT-d),用于支持直接I/O访问的虚拟化技术。VT-d提供DMA地址映射功能,把设备的DMA地址映射为物理内存相应的主机物理地址,使向该设备I/O流量的流动更加迅速。
3、PCIe,一种高速串行计算机扩展总线标准(peripheral componentinterconnect express,简称PCIe),属于高速串行点对点双通道高带宽传输,计算机系统为该总线所连接的设备分配专门的物理内存,该物理内存与所连接的设备分配独享通道带宽,不共享总线带宽,主要支持端对端的可靠性传输。
4、AMP,非对称多处理架构(Asymmetric Multi-Processing,简称AMP)的异构系统,包括实时操作系统和非实时操作系统,且实时操作系统和非实时操作系统使用不同的CPU核。
图1A示出了本发明各实施例应用的异构系统的结构。
示例地,图1A该架构包括4个处理器核(Core0、Core1、Core2和Core3),其中,Core0和Core1为对称多处理架构(Symmetric Multi Processing,简称SMP),通过Linux+KVM(Kernel-based Virtual Machine)虚拟机运行环境而运行非实时操作系统Window和Linux,Core2和Core3同样为SMP架构,通过Intewell(北京东土科技股份有限公司的工业互联网操作系统)内核而运行实时操作系统(Real Time Operation System,简称RTOS)。
示例地,非实时操作系统通过Linux+KVM调用VT-d设备,对非实时操作系统虚拟机的设备的DMA地址与主机物理地址进行了映射,但无法对实时操作系统的设备进行映射,本申请各实施例对其中实时操作系统的设备的DMA地址与主机物理地址进行了映射。
图1B示出了DMA地址映射方法,非实时操作系统的虚拟机管理器对其VT-d进行初始化,提供DMA映射功能。每个虚拟机都会有自己独立的DMA地址,对应图1B中的域(Domain),该DMA地址不同于主机物理地址(Host Physical Address,简称HPA),其可能是客户机物理地址(Guest Physical Address,简称GPA)或进程处理相关的虚拟地址(application Virtual Address,简称VA),DMA将DMA地址映射为对应的相应的主机物理地址。
示例地,图1B中设备1(Device1)被分配在域1(Domain 1),其对应的DMA地址为4000h,其主机物理地址是6000h,设备2(Device2)被分配在域2(Domain 2),其对应的DMA地址为4000h,其主机物理地址是3000h,因为域1与域2是对立的,二者DMA地址可以相同,但在真实内存中主机物理地址是不同的。设备1与域1的DMA地址4000h间传输数据,就是与主机物理地址6000h传输数据,设备2与域2的DMA地址4000h间传输数据,就是与主机物理地址3000h传输数据。
本发明各实施例提供了一种异构系统中实时操作系统的设备收发数据的方法及装置,当启动VT-d设备管理异构系统的设备时,通过设置实时操作系统的设备的主机物理地址与DMA地址的映射关系,实时操作系统的设备能够从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
下面结合图2至图3介绍本发明的一种异构系统中实时操作系统的设备收发数据的方法的各实施例。
【一种异构系统中实时操作系统的设备收发数据的方法实施例】
图2示出了本发明的一种异构系统中实时操作系统的设备收发数据的方法实施例的流程,其包括:
S110、在异构系统的启动过程中,非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系。
其中,非实时操作系统获取实时操作系统的设备的DMA地址和实时操作系统的设备的主机物理地址,通过调用VT-d设备的重映射接口,把所述主机物理地址映射成所述DMA地址,即建立所述主机物理地址与DMA地址的映射关系;实时操作系统启动时把所述DMA地址赋予实时操作系统的设备,所述主机物理地址为实时操作系统启动时获取的实时操作系统的设备对应的物理内存地址。
其中,所述主机物理地址和所述DMA地址基于提前配置的实时操作系统的配置参数。
示例地,一种具体的实时操作系统的设备为PCIe设备,在实时操作系统的对应内存里为其分配对应的物理内存,对应的地址为主机物理地址,实时操作系统的CPU与PCIe设备数据交互时,都是与该主机物理地址进行交互;PCIe设备与实时操作系统交互数据时通过其DMA地址与主机物理地址之间的通道交互数据。在异构系统的启动过程中,非实时操作系统不会建立实时操作系统的PCIe设备的主机物理地址与DMA地址的映射关系,需要通过本步骤来建立二者之间的映射关系。本步骤同样适合实时操作系统的外部高速缓存设备建立其主机物理地址与DMA地址的映射关系。
其中,本步骤的详细方法和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例,这里不再赘述。
S120、基于所述映射关系实时操作系统的设备与实时操作系统之间实现数据交互。
具体地,DMA控制器基于所述映射关系建立实时操作系统的设备DMA地址与主机物理地址之间的数据通道。实时操作系统的设备通过该数据通道,实现从所述主机物理地址对应的内存收发数据。
示例地,当实时操作系统的设备需要向所述主机物理地址对应的内存收发数据时,实时操作系统的设备向DMA控制器申请控制权,DMA控制器向CPU申请总线控制权,当CPU同意DMA控制器的申请且交出总线控制权,DMA控制器获得总线控制权,进入DMA总线周期;DMA控制器基于所述映射关系把实时操作系统的设备所述主机物理地址与所述DMA地址对应起来,建立实时操作系统的设备与所述主机物理地址之间的数据通道;通过该数据通道时,实时操作系统的设备与实时操作系统实现数据交互;在DMA总线周期结束后,DMA控制器交换总线控制权,实时操作系统的CPU获取总线控制权继续运行当前程序。综上,一种异构系统中实时操作系统的设备收发数据的方法实施例,当启动VT-d设备管理异构系统的设备时,通过设置实时操作系统的设备的主机物理地址与DMA地址的映射关系,实时操作系统的设备基于所述映射关系能够从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
【一种异构系统中实时操作系统的设备DMA地址配置方法实施例】
图3示出了本发明的一种异构系统中实时操作系统的设备DMA地址配置方法实施例的流程,其包括:
S1110、通过实时操作系统的IDE配置实时操作系统的设备的主机物理地址和设备信息,生成DMA启动参数和配置数据。
其中,所述DMA启动参数至少包括实时操作系统的设备的DMA地址,且与实时操作系统的设备的主机物理地址基于设定的规则一一对应。
其中,所述配置数据至少包括实时操作系统的设备的主机物理地址和所述设备信息,所述设备信息用于启动实时操作系统的设备。
其中,所述DMA启动参数和所述配置数据下传至所述异构系统对应的硬盘约定区域,便于非实时操作系统获取。
S1120、非实时操作系统初始化VT-d。
其中,非实时操作系统初始化VT-d,划分非实时操作系统与实时操作系统的主机物理地址范围,使二者地址互相隔离。
S1130、非实时操作系统解析所述DMA启动参数,获取实时操作系统的设备的DMA地址。
S1140、非实时操作系统解析所述配置数据,获取实时操作系统的设备的主机物理地址,并在启动实时操作系统时设定实时操作系统的设备的主机物理地址。
其中,非实时操作系统在启动实时操作系统时,通过运行实时操作系统的驱动程序,设定实时操作系统的设备在计算机内存中使用的主机物理地址。
S1150、非实时操作系统把所述主机物理地址映射成所述DMA地址。
其中,非实时操作系统调用VT-d的重映射接口把所述主机物理地址映射成所述DMA地址。
S1160、实时操作系统初始化实时操作系统的设备,把所述DMA地址赋予实时操作系统的设备。
其中,把所述DMA地址赋予实时操作系统的设备,用于实时操作系统的设备实现基于所述DMA地址收发数据,从所述主机物理地址收发数据。
综上,一种异构系统中实时操作系统的设备DMA地址配置方法实施例通过实时操作系统的IDE配置包括实时操作系统的设备的主机物理地址的文件和包括DMA地址的文件,非实时操作系统基于上述文件获取所述主机物理地址和DMA地址,调用VT-d的重映射接口建立二者映射关系,使实时操作系统的设备能够通过所述映射关系从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
下面基于图4至图5介绍本发明的一种异构系统中实时操作系统的设备收发数据的各装置实施例。
【一种异构系统中实时操作系统的设备收发数据的实施例】
图4示出了一种异构系统中实时操作系统的设备收发数据的实施例的结构,其包括以下模块:
配置模块410,用于在异构系统的启动过程中,非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系。。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备收发数据的方法实施例的步骤S110。
数据交互模块420,用于实时操作系统的设备基于所述映射关系与所述实时操作系统交互数据。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备收发数据的方法实施例的步骤S120。
综上,一种异构系统中实时操作系统的设备收发数据的装置实施例,当启动VT-d设备管理异构系统的设备时,通过设置实时操作系统的设备的主机物理地址与DMA地址的映射关系,实时操作系统的设备能够从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
【一种异构系统中实时操作系统的设备DMA地址配置装置实施例】
图5示出了一种异构系统中实时操作系统的设备DMA地址配置装置实施例的结构,其包括以下模块:
IDE配置模块4110,用于通过实时操作系统的IDE配置实时操作系统的设备的主机物理地址和设备信息,生成DMA启动参数和配置数据。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1110。
初始化模块4120、用于非实时操作系统初始化VT-d。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1120。
DMA地址获取模块4130,用于非实时操作系统解析所述DMA启动参数,获取实时操作系统的设备的DMA地址。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1130
物理地址获取模块4140,用于非实时操作系统解析所述配置数据,获取实时操作系统的设备的主机物理地址,并在启动实时操作系统时设定实时操作系统的设备的主机物理地址。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1140
地址映射模块4150,用于非实时操作系统把所述主机物理地址映射成所述DMA地址。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1150
DMA地址设定模块4160,用于实时操作系统初始化实时操作系统的设备,把所述DMA地址赋予实时操作系统的设备。其原理和有益技术效果请参考一种异构系统中实时操作系统的设备DMA地址配置方法实施例的步骤S1160
综上,一种异构系统中实时操作系统的设备DMA地址配置装置实施例通过实时操作系统的IDE配置包括实时操作系统的设备的主机物理地址的文件和包括DMA地址的文件,非实时操作系统基于上述文件获取所述主机物理地址和DMA地址,调用VT-d的重映射接口建立二者映射关系,使实时操作系统的设备能够通过所述映射关系从其对应的主机物理地址收发数据,实现实时操作系统独立管理其包括PCIe设备在内的设备。
【计算设备】
本发明还提供的一种计算设备,下面图6详细介绍。
该计算设备600包括,处理器610、存储器620、通信接口630、总线640。
应理解,该图所示的计算设备600中的通信接口630可以用于与其他设备之间进行通信。
其中,该处理器610可以与存储器620连接。该存储器620可以用于存储该程序代码和数据。因此,该存储器620可以是处理器610内部的存储单元,也可以是与处理器610独立的外部存储单元,还可以是包括处理器610内部的存储单元和与处理器610独立的外部存储单元的部件。
可选的,计算设备600还可以包括总线640。其中,存储器620、通信接口630可以通过总线640与处理器610连接。总线640可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(EFStended Industry StandardArchitecture,EISA)总线等。所述总线640可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本发明实施例中,该处理器610可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器610采用一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
该存储器620可以包括只读存储器和随机存取存储器,并向处理器610提供指令和数据。处理器610的一部分还可以包括非易失性随机存取存储器。例如,处理器610还可以存储设备类型的信息。
在计算设备600运行时,所述处理器610执行所述存储器620中的计算机执行指令执行各方法实施例的操作步骤。
应理解,根据本发明实施例的计算设备600可以对应于执行根据本发明各实施例的方法中的相应主体,并且计算设备600中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
【计算介质】
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行各方法实施例的操作步骤。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括,具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,均属于本发明保护范畴。
Claims (10)
1.一种异构系统中实时操作系统设备收发数据的方法,其特征在于,当异构系统中非实时操作系统启动VT-d设备管理异构系统的设备时,所述方法包括:
在异构系统的启动过程中,基于配置的实时操作系统的配置参数,由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系;
所述实时操作系统基于所述映射关系与所述实时操作系统设备进行数据交互。
2.根据权利要求1所述方法,其特征在于,所述由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系包括:
非实时操作系统在启动时解析DMA启动参数,获取所述DMA地址,所述DMA启动参数基于所述配置参数而确定的;
非实时操作系统在启动实时操作系统时,解析配置数据,获取所述主机物理地址,设定实时操作系统设备的所述主机物理地址,所述配置数据基于所述配置参数而确定的;
非实时操作系统调用VT-d的重映射接口,把所述DMA地址映射成所述主机物理地址。
3.根据权利要求2所述方法,其特征在于,所述由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系还包括:
实时操作系统把所述DMA地址赋予实时操作系统设备。
4.根据权利要求2所述方法,其特征在于,所述由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系之前还包括:
通过实时操作系统的IDE配置所述配置参数,所述配置参数包括所述主机物理地址和配置规则,所述DMA地址基于所述配置规则与所述主机物理地址一一对应;
实时操作系统的IDE基于所述配置参数生成所述DMA启动参数和所述配置数据,其中,所述DMA启动参数至少包括所述DMA地址,所述配置数据至少包括所述主机物理地址。
5.根据权利要求1至4任一所述方法,其特征在于,所述实时操作系统设备至少包括PCIe设备。
6.一种异构系统中实时操作系统设备收发数据的装置,其特征在于,其特征在于,当异构系统中非实时操作系统启动VT-d设备管理异构系统的设备时,所述装置包括:
配置模块,用于在异构系统的启动过程中,基于配置的实时操作系统的配置参数,由非实时操作系统建立实时操作系统设备对应内存的主机物理地址与DMA地址的映射关系;
收发模块,用于所述实时操作系统基于所述映射关系与所述实时操作系统设备进行数据交互。
7.据权利要求6所述装置,其特征在于,所述配置模块包括:
DMA地址获取模块,用于非实时操作系统解析DMA启动参数,获取所述DMA地址,其中,所述DMA启动参数基于所述配置参数而生成的;
物理地址获取模块,用于非实时操作系统解析配置数据,获取所述主机物理地址,以用于在启动实时操作系统时设置实时操作系统的设备的所述主机物理地址,所述配置数据是基于所述配置参数而生成的;
地址映射模块,用于非实时操作系统调用VT-d设备的重映射接口,把所述DMA地址映射成所述主机物理地址。
8.据权利要求7所述装置,其特征在于,所述配置模块还包括:
DMA地址设定模块,用于实时操作系统把所述DMA地址赋予各实时操作系统的设备。
9.一种计算设备,其特征在于,包括:
总线;
通信接口,其与所述总线连接;
至少一个处理器,其与所述总线连接;以及
至少一个存储器,其与所述总线连接并存储有程序指令,所述程序指令当被所述至少一个处理器执行时使得所述至少一个处理器执行权利要求1至5任一所述方法。
10.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机执行权利要求1至5任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788603.2A CN113360422B (zh) | 2021-07-13 | 2021-07-13 | 一种异构系统中实时操作系统设备收发数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110788603.2A CN113360422B (zh) | 2021-07-13 | 2021-07-13 | 一种异构系统中实时操作系统设备收发数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360422A true CN113360422A (zh) | 2021-09-07 |
CN113360422B CN113360422B (zh) | 2022-02-18 |
Family
ID=77539171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110788603.2A Active CN113360422B (zh) | 2021-07-13 | 2021-07-13 | 一种异构系统中实时操作系统设备收发数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360422B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253904A (zh) * | 2021-12-24 | 2022-03-29 | 科东(广州)软件科技有限公司 | 一种异构系统的构建方法及装置 |
CN114879593A (zh) * | 2022-05-07 | 2022-08-09 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
CN115390989A (zh) * | 2022-08-24 | 2022-11-25 | 科东(广州)软件科技有限公司 | 非实时操作系统的实时数据获取方法、装置、电子设备 |
CN115599502A (zh) * | 2022-10-17 | 2023-01-13 | 麒麟软件有限公司(Cn) | 基于虚拟机监控器的rtos网络共享方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086285A1 (en) * | 2011-09-30 | 2013-04-04 | Oracle International Corporation | Sharing iommu mappings across devices in a dma group |
CN104956342A (zh) * | 2013-02-05 | 2015-09-30 | Arm有限公司 | 使用存储器保护单元来支持客户操作系统的虚拟化 |
CN107273199A (zh) * | 2012-03-29 | 2017-10-20 | 英特尔公司 | 用于管理虚拟化环境中的中断的体系结构和方法 |
CN112732183A (zh) * | 2020-12-30 | 2021-04-30 | 科东(广州)软件科技有限公司 | 异构系统存储设备的访问方法、装置、设备及存储介质 |
CN112783601A (zh) * | 2020-12-30 | 2021-05-11 | 科东(广州)软件科技有限公司 | 一种异构系统的中断处理方法、装置、设备及存储介质 |
-
2021
- 2021-07-13 CN CN202110788603.2A patent/CN113360422B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130086285A1 (en) * | 2011-09-30 | 2013-04-04 | Oracle International Corporation | Sharing iommu mappings across devices in a dma group |
CN107273199A (zh) * | 2012-03-29 | 2017-10-20 | 英特尔公司 | 用于管理虚拟化环境中的中断的体系结构和方法 |
CN104956342A (zh) * | 2013-02-05 | 2015-09-30 | Arm有限公司 | 使用存储器保护单元来支持客户操作系统的虚拟化 |
CN112732183A (zh) * | 2020-12-30 | 2021-04-30 | 科东(广州)软件科技有限公司 | 异构系统存储设备的访问方法、装置、设备及存储介质 |
CN112783601A (zh) * | 2020-12-30 | 2021-05-11 | 科东(广州)软件科技有限公司 | 一种异构系统的中断处理方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
袁霞等: "基于AM335X与WinCE7.0平台的内存配置方法及应用", 《软件导刊》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253904A (zh) * | 2021-12-24 | 2022-03-29 | 科东(广州)软件科技有限公司 | 一种异构系统的构建方法及装置 |
CN114879593A (zh) * | 2022-05-07 | 2022-08-09 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
CN114879593B (zh) * | 2022-05-07 | 2023-03-14 | 科东(广州)软件科技有限公司 | 实时系统运行plc控制器的方法、装置、设备及存储介质 |
CN115390989A (zh) * | 2022-08-24 | 2022-11-25 | 科东(广州)软件科技有限公司 | 非实时操作系统的实时数据获取方法、装置、电子设备 |
CN115390989B (zh) * | 2022-08-24 | 2023-08-11 | 科东(广州)软件科技有限公司 | 非实时操作系统的实时数据获取方法、装置、电子设备 |
CN115599502A (zh) * | 2022-10-17 | 2023-01-13 | 麒麟软件有限公司(Cn) | 基于虚拟机监控器的rtos网络共享方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113360422B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113360422B (zh) | 一种异构系统中实时操作系统设备收发数据的方法及装置 | |
US9154451B2 (en) | Systems and methods for sharing devices in a virtualization environment | |
JP6564838B2 (ja) | インダストリアル・インターネットオペレーティングシステムに基づくマルチオペレーティングシステム運行方法および装置 | |
KR101807310B1 (ko) | 호스트 usb 어댑터 가상화 | |
US20160170785A1 (en) | Managing virtual machine instances utilizing an offload device | |
US11169846B2 (en) | System and method for managing tasks and task workload items between address spaces and logical partitions | |
WO2019095154A1 (zh) | 一种调度加速资源的方法、装置及加速系统 | |
CN113778612A (zh) | 基于微内核机制的嵌入式虚拟化系统实现方法 | |
US11082485B2 (en) | Swapping non-virtualizing and self-virtualizing devices | |
CN116320469B (zh) | 一种虚拟化视频编解码系统及方法、电子设备和存储介质 | |
JP2020053013A (ja) | 要求処理方法及び装置 | |
US10785120B2 (en) | Systems and methods for extending link layer discovery over virtual Ethernet bridges | |
CN113886018A (zh) | 虚拟机资源分配方法、装置、介质及设备 | |
US8447912B2 (en) | Paging memory from random access memory to backing storage in a parallel computer | |
CN116257320B (zh) | 一种基于dpu虚拟化配置管理方法、装置、设备及介质 | |
CN113157624A (zh) | 一种串口通信方法、装置、设备及存储介质 | |
US11113088B2 (en) | Generating and managing groups of physical hosts associated with virtual machine managers in an information handling system | |
US10439934B2 (en) | Systems and methods for addressing multiple physical and virtual functions in network controller-sideband interface | |
CN115827517A (zh) | 控制方法、设备及计算设备 | |
US11704146B2 (en) | Network transparency on virtual machines using socket impersonation | |
US11307889B2 (en) | Schedule virtual machines | |
US20160191617A1 (en) | Relocating an embedded cloud for fast configuration of a cloud computing environment | |
CN110704163A (zh) | 一种服务器及其虚拟化存储方法和装置 | |
US20140047450A1 (en) | Utilizing A Kernel Administration Hardware Thread Of A Multi-Threaded, Multi-Core Compute Node Of A Parallel Computer | |
US20220334863A1 (en) | Storage system, installation method, and recording medium |
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 |