CN103957233A - 基于处理器分核以及虚拟机的实时通信平台 - Google Patents

基于处理器分核以及虚拟机的实时通信平台 Download PDF

Info

Publication number
CN103957233A
CN103957233A CN201410116628.8A CN201410116628A CN103957233A CN 103957233 A CN103957233 A CN 103957233A CN 201410116628 A CN201410116628 A CN 201410116628A CN 103957233 A CN103957233 A CN 103957233A
Authority
CN
China
Prior art keywords
time
real
module
rtx
communication
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
CN201410116628.8A
Other languages
English (en)
Other versions
CN103957233B (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.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
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 Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201410116628.8A priority Critical patent/CN103957233B/zh
Publication of CN103957233A publication Critical patent/CN103957233A/zh
Application granted granted Critical
Publication of CN103957233B publication Critical patent/CN103957233B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

基于处理器分核以及虚拟机的实时通信平台,涉及网络技术领域,为由Windows操作系统、TCP/IP协议、以太网构建的分布式系统提供实时通信能力。它包括运行于校时主节点的子系统以及运行于校时从节点的子系统;前者包含实时通信协议栈主站模块、时间同步算法主站模块和RTX设备驱动模块;后者包含支持实时虚拟通信机的VMM模块、实时协议栈从站模块以及时间同步算法从站模块。实现使用实时通信平台来完成数据的实时、确定传输;保证应用之间的数据实时有效性,为分布式系统的实时数据交互提供支持;在实时通信的基础上提供了高精度实时时钟功能,通过内置的校时机制提供系统级高精度时间,保证分布式系统内每个节点的时钟一致性,为分布式系统提供一致的时间标尺。

Description

基于处理器分核以及虚拟机的实时通信平台
技术领域
本发明涉及一种实时通信平台,涉及网络技术领域。 
背景技术
众所周知,现在是网络的时代。单独一台计算机并不能提供足够丰富的信息,只有网络互连,资源共享才能够满足人类对信息需求量的日益增长。在网络互连的过程中,通信的质量以及速度就变成了人们关注的话题。 
不仅仅是互联网,本地的局域网也面临着通信质量的问题。例如,一个由多台主机构成一个分布式的网络环境,如何保证各个主机之间通信质量的确定性,如何在现有的通信环境下保证通信的实时性,均是需要解决的问题。 
当前,接入网络最多的终端设备仍然是PC机。而在PC机上运行的操作系统,Windows仍占有绝对大的份额。Windows操作系统是一种非实时的操作系统,它的进程调度、时间服务等核心机制均不具备确定性,因此其通信机制也随着这些不确定而不具备实时性。 
这样,在一个较大的由多台主机构成的分布式网络环境中,各主机间的通信就不具备确定性与实时性。而在大多数的分布式环境中,主机之间传输的一些关键数据均需要保证在一定的期限内,准确无误的完成传输,也就是说,部署的系统对一个实时的、确定的通信环境有着强烈的需求,而当前Windows的通信环境无法保证。本发明就是基于这样的需求与约束,提出了一种基于分核技术的实时通信方案。 
发明内容
本发明的目的是提供一种基于处理器分核以及虚拟机的实时通信平台,以满足基于Windows操作系统、TCP/IP协议、以太网构建的分布式系统的实时通信要求;即为由Windows操作系统、TCP/IP协议、以太网构建的分布式系统提供实时通信能力。 
本发明为解决上述技术问题采取的技术方案是: 
一种基于处理器分核以及虚拟机的实时通信平台,所述实时通信平台应用于由一个校时主节点和多个校时从节点组成的局域的分布式实时系统,所述实时通信平台用于实现分布式系统间各Windows应用程序的实时通信以及各节点间的时钟精确同步;它包括运行于校时主节点的子系统以及运行于校时从节点的子系统; 
运行于校时主节点的子系统工作在RTX环境下,它包含实时通信协议栈主站模块、时 间同步算法主站模块和RTX设备驱动模块, 
实时通信协议栈主站模块用于以RTX下的实时线程形式提供服务,同时使用RTX提供的标准网卡驱动接口完成数据的底层传输;通过RTX提供的IPC机制为时间同步算法主站模块提供实时Socket接口, 
时间同步算法主站模块用于采用IEEE1588PTP精密时钟同步协议对所述实时通信平台的时间同步校时,时间同步算法主站模块实现为RTX下的实时线程形式,线程使用PC机系统的实时时钟作为时钟源;时间同步算法主站模块还用于通过RTX的IPC机制使用实时协议栈提供的服务, 
RTX设备驱动模块包括RTX实时时钟驱动子模块以及RTX实时网卡驱动子模块;RTX实时时钟驱动子模块用于为RTX线程提供访问保存于实时时钟芯片中的时间数据的一致接口;RTX实时网卡驱动子模块用于为RTX线程提供访问网卡的一致接口,所述接口均需要符合RTX驱动程序标准;其中,RTX实时时钟驱动子模块还用于提供本地的时钟信息,作为系统精确时钟源;RTX实时网卡驱动子模块还用于为实时协议栈提供对硬件的操作API; 
运行于校时从节点的子系统包含支持实时虚拟通信机的VMM模块、实时协议栈从站模块以及时间同步算法从站模块; 
实时虚拟通信机模块(实时虚拟通信机VMM)用于对实时通信网卡以及时钟芯片进行设备管理,为校时从节点工作的基础;时间同步算法从站模以及实时协议栈从站模块均运行在实时虚拟通信机模块上; 
实时通信协议栈从站模块将被编译为image文件,直接在实时通信虚拟机上运行,通过接口为Windows应用提供服务,并被一同运行于实时通信虚拟机上的时间同步算法从站模块直接调用,同时,实时协议栈从站模块将直接对网卡进行操作; 
时间同步算法从站模块采用IEEE1588PTP精密时钟同步协议,使用PC机系统的实时时钟作为时钟源;时间同步算法从站模块通过内部接口使用实时协议栈提供的服务,通过硬件I/O指令访问或修改从站时间,确保时间标记精度。 
所述RTX设备驱动模块包括RTX实时网卡设备驱动模块以及RTX时钟设备驱动模块;其中RTX时钟设备驱动模块实现的时钟源有三个:分别为基于主板实时时钟RTC芯片的秒级时钟、基于Windows系统时间的毫秒级时钟以及基于TSC寄存器的纳秒级时钟。 
所述RTX实时网卡设备驱动模块用于在满足RTX驱动开发规范下,对实时网卡芯片进行的驱动开发,所述模块可向上层模块提供实时网卡的操作接口,该模块还用于完成对网 卡的初始化、发送数据、接受数据操作,为实时协议栈提供面向硬件的底层通信能力; 
所述RTX时钟设备驱动模块用于在满足RTX驱动开发规范下,对实时时钟芯片进行的驱动开发,所述模块可向上层模块提供实时时钟的操作接口,该模块还用于完成对时钟信息的获取、更改操作,为分布式系统的各个计算机节点提供高精度、可操作的时钟源。 
所述实时虚拟通信机模块包括VMM初始化功能模块、虚拟存储器管理功能模块和虚拟设备管理功能模块。 
所述VMM初始化功能模块是虚拟机运行的基础,主要用于完成对处理器的分核处理、实时通信网卡绑定到指定处理器核心的处理、核心物理内存的分配、装载虚拟通信机程序以及建立相关的VMCS核心数据结构;通过这些过程,来搭建基本的虚拟机环境,为实时通信以及校时算法的运行提供基本运行支持; 
虚拟存储器管理功能模块主要用于为Windows和通信虚拟机提供存储保护和共享内存机制,一方面,可以对物理内存的访问进行隔离,保证Windows不会越界访问到通信虚拟机的私有内存,同时保证通信虚拟机不会越界访问到Windows的私有内存;另一方面,为二者的通信建立了共享内存,可支持通信虚拟机与Windows的同时访问,完成数据交互; 
虚拟设备管理功能模块主要用于完成Windows和通信虚拟机之间的设备访问隔离,可截获Windows对通信专用网卡的操作(包括设置、发送数据等),使其不影响通信机的工作;还用于截获通信虚拟机对Windows设备的操作,使其不影响Windows的工作。 
本发明的有益效果是: 
本发明通过分核技术、虚拟化技术的使用以及实时通信协议栈的实现,来满足基于Windows操作系统、TCP/IP协议、以太网构建的分布式系统的实时通信要求。此外,本发明还在实时通信的基础上,提供了高精度实时时钟功能,通过内置的校时机制提供系统级高精度时间,为分布式系统提供一致的时间标尺。 
本发明实现了使用实时通信平台来完成数据的实时、确定传输。实时通信平台保证了应用之间的数据实时有效性,为分布式系统的实时数据交互提供支持;同时,在实时通信的基础上提供了高精度实时时钟功能,通过内置的校时机制提供系统级高精度时间,保证分布式系统内每个节点的时钟一致性,为分布式系统提供一致的时间标尺。 
本发明通过处理器分核技术、虚拟化技术的使用,以及实时通信协议栈的实现,可为由Windows操作系统、TCP/IP协议、以太网构建的分布式系统提供实时通信能力,分布式系统上部署的应用可通过本发明进行数据的实时、确定传输。本发明可为实时数据的处理与传输提供专用的处理器核心、专用的实时通信网卡、专用的通信协议栈,以此保障实 时数据的快速、确定、可预测的传输,进而满足分布式系统上应用对实时通信的需求,保证了应用之间的数据实时有效性,为分布式系统的实时数据交互提供支持。此外,本发明还在提供实时通信能力的基础上,提供了高精度实时时钟功能,通过内置的校时机制提供系统级高精度时间,保证分布式系统内每个节点的时钟一致性,为分布式系统提供一致的时间标尺。 
附图说明
图1是本发明所述实时通信平台应用的分布式系统的网络拓扑结构图;图2是本发明实时通信系统(实时通信平台)架构图,图3是本发明实时通信平台中运行于校时主节点的子系统结构图(即实时通信软件主节点子系统结构),图4是本发明实时通信平台中运行于校时从节点的子系统结构图(即实时通信软件从节点子系统结构),图5是利用本发明实现实时通信功能执行的流程框图(即Windows应用程序间的实时通信执行),图6是利用本发明实现时钟精确同步功能执行的流程框图(即时间同步算法的执行);图7为安装利用本发明技术方案形成的软件的主节点测试结果图;图8为安装利用本发明技术方案形成的软件的从节点测试结果图;图9为时钟精度性能测试散点图,图10为windows-windows通信延迟散点图,图11为实时通信软件通信延迟散点图。 
具体实施方式
结合图1~11所示,本实施方式对本发明进行详细描述: 
1、基于处理器分核以及虚拟机的实时通信平台的体系结构以及各模块的功能 
基于本发明技术方案开发的软件主要应用于局域的分布式系统(传统的分布式系统是不具有实时能力的,无法提供实时通信,只有使用基于本发明技术方案开发的软件,才会具有实时通信能力),其网络拓扑结构如图1所示。系统由一个校时主节点和多个校时从节点组成,每个节点有两块以太网网卡,一个用于非实时通信,另一个用于高精度校时等实时通信。本实时通信软件工作在每一个节点上,按照以下2种方式工作来完成功能,提供服务: 
1)在各个节点上,Windows应用程序将会使用本软件所提供的实时协议栈,经由实时通信网卡进行数据的实时交互,实现实时网络通信功能。 
2)校时主节点根据IEEE1588PTP精密时钟同步协议定期(缺省是2秒)通过实时通信信道向校时从节点广播同步报文、跟随报文等校时报文,校时从节点根据收到的时间同步报文修正本地时间,使本地时间与主时钟节点时间保持一致,从而实现系统级高精度实时时钟。 
因此,本软件提供了实时通信功能和高精度实时时钟保障,使Windows应用程序可以具备数据的实时通信能力,同时保证各节点的时钟高度一致。 
实时通信软件按照运行环境的不同,可分为2个组成部分,运行于校时主节点的软件部分以及运行于校时从节点的软件部分。整个实时通信系统架构方案如图2所示,校时主节点与校时从节点通过千兆以太网进行实时通信。 
校时主节点以Windows和RTX扩展为基础平台,包含运行于RTX上的实时通信协议栈、时间同步主站算法、RTX实时时钟驱动、RTX网卡驱动等功能模块。 
校时从节点以分核技术、虚拟机技术为基础,实现基于实时通信虚拟机的Windows实时通信扩展。校时从节点包括运行于实时通信虚拟机中的实时通信协议栈、时间同步从站算法、实时时钟驱动、网卡驱动以及作为Windows驱动程序的虚拟机监控软件VMM等模块。 
由图2可知,在校时主节点中,Windows应用程序可以通过接口调用实时协议栈所提供的服务,进行数据的实时传输,同时Windows应用程序本身工作在Windows操作系统之上,可以通过Windows实时驱动获取实时的时钟源信息;实时协议栈可以利用RTX网卡驱动模块使用实时通信网卡来传输数据;时间同步主站算法可以通过RTX实时时钟驱动获取时钟源信息,同时利用RTX的IPC机制获取实时协议栈所提供的服务,进行时钟数据的实时传输。需要注意的是,Windows应用以及时间同步主站算法所使用的时钟源为同一个,可以保证系统时间的一致性。 
在校时从节点中,实时协议栈以及时间同步从站算法工作在实时虚拟通信机上,时间同步算法可以直接调用协议栈提供的接口进行数据传输;时间同步从站算法根据收到的时间同步信息,可以通过VMM虚拟存储管理模块直接更改从站实时时间芯片,达到从站与主站的时间同步;实时协议栈也可以通过VMM虚拟存储管理模块直接对实时通信网卡进行操作;从站中的Windows应用工作在Windows环境上,通过接口以共享内存的形式,与实时虚拟通信机中的接口进行通信,完成对实时协议栈的调用,进而实现数据的实时传输,与此同时Windows应用程序通过Windows实时时钟驱动使用与虚拟通信机同样的时钟芯片,保证系统时间的一致性。 
这样,通过各模块之间的协同运行,即可完成校时主节点以及从节点中Windows应用的实时数据通信支持以及实时时钟保障。 
1.1主节点各模块概述 
如图3所示,实时通信软件主节点工作在RTX环境下,主要包含实时通信协议栈主站 模块、IEEE1588校时算法主站模块、RTX设备驱动模块。其中,RTX设备驱动模块又可以分为RTX实时网卡设备驱动以及RTX时钟设备驱动。其中RTX时钟驱动模块目前实现的时钟源有三个,分别为基于主板实时时钟RTC芯片的秒级时钟、基于Windows系统时间的毫秒级时钟以及基于TSC寄存器的纳秒级时钟。 
1.1.1实时协议栈主站模块: 
实时通信协议栈主站模块实现为RTX下的实时线程形式,通过RTX提供的IPC机制为时间同步主站算法模块提供实时Socket接口。本软件提供的实时通信协议栈将对传统协议栈进行重新设计,达到更好的传输速度,满足系统的实时性需求。 
传统的TCP/UDP/IP协议栈为广域网的传输环境而设计,然而我们要满足的分布式系统运行于以高速千兆以太网为通信媒介的局域网中,物理环境和广域网有很大不同,这些都导致了传统的网络协议设计无法最佳的满足系统的运行要求。因此,为了达到所需要的实时通信需求,需要重新开发实时协议栈,同时,为了能够使Windows应用程序很好的应用实时协议栈,协议栈的开发还要遵循传统TCP/IP的设计层次与接口规范。 
1.1.2时间同步算法主站模块: 
整个软件的时间同步校时方法采用IEEE1588PTP精密时钟同步协议。时间同步算法主站模块实现为RTX下的实时线程形式。时间同步主站算法线程使用PC机系统的实时时钟作为时钟源。时间同步主站算法通过RTX的IPC机制使用实时协议栈提供的服务。 
该线程在RTX实时子系统RTSS的调度下运行,可以充分利用RTX的实时调度能力,确保校时数据的快速发送与接收,提高时间标记精度。时间同步主站算法线程使用PC机系统的实时时钟作为时钟源,确保时钟源的时间精度。使用PC机系统的实时时钟作为时钟源,还可以使得基于Windows的应用程序与基于RTX的时间同步算法线程共享同一时钟源,保证系统时间的一致性。此外,时间同步算法线程通过RTX的实时时钟驱动访问实时时钟芯片,通过RTX的IPC机制使用实时协议栈提供的服务。 
1.1.3RTX设备驱动模块: 
在本系统中,RTX的设备驱动均在校时主节点上,可分为2部分,包括实时时钟驱动以及RTX实时网卡驱动。RTX实时时钟驱动为RTX线程提供访问保存于实时时钟芯片中的时间数据的一致接口,RTX实时网卡驱动为RTX线程提供访问网卡的一致接口,接口均需要符合RTX驱动程序标准。 
这两种驱动均是为时间同步算法服务。其中,RTX实时时钟驱动将直接为算法提供本地的时钟信息,作为系统精确时钟源;RTX实时网卡驱动主要为实时协议栈提供对硬件的 操作API。 
1.2从节点各模块概述 
如图4所示,实时通信软件从节点子系统主要包含支持实时虚拟通信机的VMM模块、实时协议栈从站模块以及时间同步算法从站模块。同时,从节点子系统内对实时网卡的操作被包含在实时协议栈从站模块中,对时钟芯片的操作被包含在时间同步算法从站模块中。 
1.2.1实时虚拟通信机模块: 
实时虚拟通信机VMM是校时从节点工作的基础。时间同步从站算法以及实时协议栈均是运行在虚拟机上的,同时,VMM对实时通信网卡以及时钟芯片进行设备管理。VMM包括VMM初始化、虚拟存储器管理、虚拟设备管理三个功能模块。 
1.2.2实时协议栈从站模块: 
实时通信协议栈与时间同步算法实现在一个IMAGE文件中,由VMM加载运行。运行于校时从节点的实时协议栈和运行于校时主节点的协议栈,其两者的内部模块组成是一致的。不同的是,运行于校时主节点的实时协议栈将以RTX下实时进程的形式为其他应用提供服务,同时使用RTX提供的标准网卡驱动接口完成数据的底层传输;而运行于校时从节点的实时协议栈将被编译为image文件,直接在实时通信虚拟机上运行,通过接口为Windows应用提供服务,并被一同运行于实时通信虚拟机上的校时算法直接调用,同时,从节点协议栈将直接对网卡进行操作,而无需标准的驱动接口。 
1.2.3时间同步算法从站模块: 
在本系统中,软件的时间同步校时方法采用IEEE1588PTP精密时钟同步协议。由于实时虚拟通信机上没有操作系统,运行于实时虚拟通信机中的实时通信协议与时间同步从站算法实现在一个IMAGE文件中,由VMM加载运行。时间同步从站算法使用PC机系统的实时时钟作为时钟源,确保时钟源的时间精度。使用PC机系统的实时时钟作为时钟源,还可以使得基于Windows的应用程序与基于RTX的时间同步算法线程共享同一时钟源,保证系统时间的一致性。时间同步从站算法通过内部接口使用实时协议栈提供的服务,通过硬件I/O指令访问(或修改)从站时间,确保时间标记精度。 
1.3主从节点各模块之间的执行关系 
实时通信软件主要提供了分布式系统间各Windows应用程序的实时通信功能,以及各节点间的时钟精确同步功能。 
1.3.1实时通信功能执行方案: 
实时通信软件通过分核技术、虚拟化技术以及实时协议栈技术,支持分布式系统中各Windows应用程序间的实时通信。在通信过程中,涉及到实时通信协议栈模块、RTX设备驱动模块、VMM模块以及各接口。软件执行过程如下图5所示。 
图中方框内容表示的是在完成Windows应用程序间实时通信功能中,所涉及的校时主节点与校时从节点中的功能模块;双向箭头表示各个模块之间的相互作用关系,也表示了系统中数据的流向为双向,即不仅可以从校时主节点应用程序向校时从节点应用程序传输数据,相反也可以。 
图中注释部分是以校时主节点向从节点发送数据为例,阐述了各模块之间的相互作用。在校时主节点中,Windows应用程将通过主节点应用接口(注释1),跨系统使用运行在RTX上的实时协议栈进行数据的传输;运行于RTX上的实时协议栈(注释2)也将应用RTX实时通信网卡驱动(注释3)来完成数据的传输。数据在千兆以太网上进行传输(注释4)。 
在校时从节点上,运行于虚拟通信机上的实时协议栈将直接载VMM设备管理的保护下对实时通信网卡进行编程(注释5),当网卡收到数据,则产生中断触发数据接收任务,获取数据。Windows应用程则通过接口(注释7、8)利用VMM的虚拟存储管理共享内存机制调用运行于虚拟通信机上的实时协议栈(注释6),进行数据的传输以及数据的获取。 
1.3.2,时钟精确同步功能执行方案: 
实时通信软件通过虚拟化技术以及实时协议栈技术,支持分布式系统中各节点间的时钟精确同步功能。涉及了时间同步主站、从站算法模块、实时协议栈模块、RTX实时时钟驱动模块、VMM时钟芯片管理模块以及VMM网卡管理模块。如下图6所示。 
图中方框内容表示的是在完成各节点间时间同步功能中,所涉及的校时主节点与校时从节点中的功能模块;图中双向箭头表示各个模块之间的数据流向是双向的,与上节中一致。需要注意的是,在完成整个时间同步过程中,由上节可知,存在主节点向从节点发送校时报文,同时也存在从节点向主节点发送报文,因此,虽然校时是主节点发起的,但是存在着双向的数据通信。 
在校时主节点中,时间同步主站算法模块通过RTX的IPC机制调用实时协议栈RTSS提供的服务完成数据的实时通信(注释2);同时,时间同步主站算法通过RTX实时时钟驱动获取本地时钟作为系统精确时钟源(注释1);运行于RTX上的实时协议栈也将应用RTX实时通信网卡驱动来完成数据在千兆以太网上的传输(注释3、4)。 
在校时从节点上,时间同步从站算法直接调用实时协议栈提供的服务来完成数据的通信(注释6);同时,根据时间同步算法对本地的时钟通过VMM时钟芯片管理模块进行更新(注释7);运行于虚拟通信机上的实时协议栈将直接通过VMM设备管理对实时通信网卡进行编程,完成数据在以太网上的传输(注释4、5)。 
通过以上各个模块之间的相互作用,即可完成各节点间的时间同步功能。 
2、基于本发明技术方案开发的软件具有以下创新点: 
本软件主要应用了处理器分核技术与虚拟机技术,在完成对协议栈实时性改造的基础上,自主实现了一个实时的通信环境,并且在此基础上实现了IEEE1588PTP精确校时协议,为分布式环境下各个主机提供了确定的、实时的通信环境,以及高精度的统一时钟。整个软件系统主要有以下几个创新点: 
2.1针对Windows操作系统无法保证实时性的约束,我们从硬件层面着手,将原本由Windows使用的处理器核心分出来一个,来运行我们的实时通信软件,达到实时通信软件运行不需要依赖Windows操作系统,对处理器核心拥有绝对的操作权,以最大的效率为用户提供服务,以最小的时间消耗传输数据; 
为了实现系统的处理器分核操作,需要对Windows操作系统核心加载进程以及计算机的主板进行相关的编程处理。主要包括:通过更改Windows加载项文件完成Windows对处理器核心的抛出操作(见代码片段1);通过硬件处理器间的中断机制完成对抛出核心的再启动操作(见代码片段2);通过主板级的中断源划分设置完成网卡中断向抛出处理器核心的绑定操作(见代码片段3)等。 
代码片段1 
代码片段2 
代码片段3 
2.2使用硬件虚拟机技术,完成对实时通信机的虚拟,对内存以及设备进行访问保护,同时对共享内存进行管理。在抛出的处理核心上,运行我们自主开发的实时虚拟通信机软件系统模块,此软件系统主要包括:通过实模式下的系统引导程序完成对中断描述符表(IDT)的设置同时切换处理器运行模式至保护模式(见代码片段4);通过保护模式下的引导程序完成对全局描述符表(GDT)的设置进而完成物理地址向虚拟地址的映射(见代码片段5);通过Windows核心驱动的形式完成各引导程序以及中断服务程序的加载与启动;通过对系统划分出共享内存的操作完成虚拟机与Windows环境的通信等(见代码片段6)。 
代码片段4 
代码片段5 
代码片段6 
2.3以LwIP为雏形,对协议栈进行实时性改造。针对现有的TCP机制,完成了包括发送启动管理、拥塞控制、超时重传、数据包确认管理等方面的优化改造;针对UDP机制,增加了轻量级的数据包确认管理、选择重传管理等方面的优化;针对IP机制,完成了分 段与重组管理、差错控制、优先级管理等方面的优化改造。 
同时,在完成协议栈实时性改造的基础上,为了适应本软件的部署环境,还在协议栈最顶层增加了服务通用框架一层,通过信号量、共享内存、多线程等机制的使用,完成了实时协议栈对多服务请求源的同时响应能力。不管服务来自Windows应用,还是RTSS应用,或者是虚拟机应用,实施协议栈均能同时为多个请求源服务。 
2.4在实时通信软件的基础上,实现了IEEE1588PTP精确校时协议,为分布式系统提供了统一的时间标尺。在实现校时协议过程中,软件直接从硬件网卡一层获取硬件时间,达到了时间获取的最佳效果。同时,我们提供了秒级、毫秒级、纳秒级三种时钟源,最精确的条件下,可以保证主从节点间时间误差不超过200us。 
3软件功能以及性能演示 
3.1实时通信与校时算法运行演示: 
按照软件部署的需求,我们在校时通信主节点安装RTX系统,并且在此基础之上运行我们的软件;在从节点中,首先使用分核技术为虚拟通信机分出一个处理器核心,之后运行我们的实时通信软件,效果如下图7、8所示: 
由上述主从节点测试可知,主从节点可以校时,并且每次校时主从差距再200us以内。根据我们测出的100组数据,画出时钟精度散点图,入下图9所示: 
由上图可以看出,每次校时主从差距都能保持在200us以内,平均值在130左右,有上下的起伏,但是整体趋于平稳。 
3.2实时通信的稳定性演示: 
通过测试,我们得出windows-windows环境下的通信延迟散点图如下图10所示: 
由上图10可以看出,在windows-windows环境下,其通信延迟并不很平稳,上下起伏较大,最好水平在145左右,最坏情况在480左右,整体并不是很稳定,没有办法提供一个较为稳定并且快速的通信环境。 
使用我们的实时通信软件,对整个分布式系统进行部署,得出通信延迟散点图如下图11所示: 
由上图11可以看出,在实时通信软件通信环境下,其通信延迟非常平稳,全在182-184之间分布,上下起伏很小,平均值为183。 
根据测试,本实时通信软件能够达到以下的性能指标: 
1)系统时钟源分辨率小于1us; 
2)数据包点对点互联,包大小为1K字节,运行20次,每次500个包,平均RTT小于150us; 
3)低优先级UDP包不能阻塞高优先级UDP包,即高优先级UDP包传输时间与网络负载无关; 
4)系统中所有节点间时钟误差小于200us,且与网络负载无关。 

Claims (5)

1.一种基于处理器分核以及虚拟机的实时通信平台,所述实时通信平台应用于由一个校时主节点和多个校时从节点组成的局域的分布式实时系统,所述实时通信平台用于实现分布式系统间各Windows应用程序的实时通信以及各节点间的时钟精确同步;其特征在于:它包括运行于校时主节点的子系统以及运行于校时从节点的子系统;
运行于校时主节点的子系统工作在RTX环境下,它包含实时通信协议栈主站模块、时间同步算法主站模块和RTX设备驱动模块,
实时通信协议栈主站模块用于以RTX下的实时线程形式提供服务,同时使用RTX提供的标准网卡驱动接口完成数据的底层传输;通过RTX提供的IPC机制为时间同步算法主站模块提供实时Socket接口,
时间同步算法主站模块用于采用IEEE1588PTP精密时钟同步协议对所述实时通信平台的时间同步校时,时间同步算法主站模块实现为RTX下的实时线程形式,线程使用PC机系统的实时时钟作为时钟源;时间同步算法主站模块还用于通过RTX的IPC机制使用实时协议栈提供的服务,
RTX设备驱动模块包括RTX实时时钟驱动子模块以及RTX实时网卡驱动子模块;RTX实时时钟驱动子模块用于为RTX线程提供访问保存于实时时钟芯片中的时间数据的一致接口;RTX实时网卡驱动子模块用于为RTX线程提供访问网卡的一致接口,所述接口均需要符合RTX驱动程序标准;其中,RTX实时时钟驱动子模块还用于提供本地的时钟信息,作为系统精确时钟源;RTX实时网卡驱动子模块还用于为实时协议栈提供对硬件的操作API;
运行于校时从节点的子系统包含支持实时虚拟通信机的VMM模块、实时协议栈从站模块以及时间同步算法从站模块;
实时虚拟通信机模块(实时虚拟通信机VMM)用于对实时通信网卡以及时钟芯片进行设备管理,为校时从节点工作的基础;时间同步算法从站模以及实时协议栈从站模块均运行在实时虚拟通信机模块上;
实时通信协议栈从站模块将被编译为image文件,直接在实时通信虚拟机上运行,通过接口为Windows应用提供服务,并被一同运行于实时通信虚拟机上的时间同步算法从站模块直接调用,同时,实时协议栈从站模块将直接对网卡进行操作;
时间同步算法从站模块采用IEEE1588PTP精密时钟同步协议,使用PC机系统的实时时钟作为时钟源;时间同步算法从站模块通过内部接口使用实时协议栈提供的服务,通过硬件I/O指令访问或修改从站时间,确保时间标记精度。
2.根据权利要求1所述的一种基于处理器分核以及虚拟机的实时通信平台,其特征在于:所述RTX设备驱动模块包括RTX实时网卡设备驱动模块以及RTX时钟设备驱动模块;其中RTX时钟设备驱动模块实现的时钟源有三个:分别为基于主板实时时钟RTC芯片的秒级时钟、基于Windows系统时间的毫秒级时钟以及基于TSC寄存器的纳秒级时钟。
3.根据权利要求2所述的一种基于处理器分核以及虚拟机的实时通信平台,其特征在于:
所述RTX实时网卡设备驱动模块用于在满足RTX驱动开发规范下,对实时网卡芯片进行的驱动开发,所述模块可向上层模块提供实时网卡的操作接口,该模块还用于完成对网卡的初始化、发送数据、接受数据操作,为实时协议栈提供面向硬件的底层通信能力;
所述RTX时钟设备驱动模块用于在满足RTX驱动开发规范下,对实时时钟芯片进行的驱动开发,所述模块可向上层模块提供实时时钟的操作接口,该模块还用于完成对时钟信息的获取、更改操作,为分布式系统的各个计算机节点提供高精度、可操作的时钟源。
4.根据权利要求1、2或3所述的一种基于处理器分核以及虚拟机的实时通信平台,其特征在于:所述实时虚拟通信机模块包括VMM初始化功能模块、虚拟存储器管理功能模块和虚拟设备管理功能模块。
5.根据权利要求4所述的一种基于处理器分核以及虚拟机的实时通信平台,其特征在于:
所述VMM初始化功能模块是虚拟机运行的基础,主要用于完成对处理器的分核处理、实时通信网卡绑定到指定处理器核心的处理、核心物理内存的分配、装载虚拟通信机程序以及建立相关的VMCS核心数据结构;通过这些过程,来搭建基本的虚拟机环境,为实时通信以及校时算法的运行提供基本运行支持;
虚拟存储器管理功能模块主要用于为Windows和通信虚拟机提供存储保护和共享内存机制,一方面,可以对物理内存的访问进行隔离,保证Windows不会越界访问到通信虚拟机的私有内存,同时保证通信虚拟机不会越界访问到Windows的私有内存;另一方面,为二者的通信建立了共享内存,可支持通信虚拟机与Windows的同时访问,完成数据交互;
虚拟设备管理功能模块主要用于完成Windows和通信虚拟机之间的设备访问隔离,可截获Windows对通信专用网卡的操作,使其不影响通信机的工作;还用于截获通信虚拟机对Windows设备的操作,使其不影响Windows的工作。
CN201410116628.8A 2014-03-26 2014-03-26 基于处理器分核以及虚拟机的实时通信平台 Expired - Fee Related CN103957233B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410116628.8A CN103957233B (zh) 2014-03-26 2014-03-26 基于处理器分核以及虚拟机的实时通信平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410116628.8A CN103957233B (zh) 2014-03-26 2014-03-26 基于处理器分核以及虚拟机的实时通信平台

Publications (2)

Publication Number Publication Date
CN103957233A true CN103957233A (zh) 2014-07-30
CN103957233B CN103957233B (zh) 2017-03-15

Family

ID=51334456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410116628.8A Expired - Fee Related CN103957233B (zh) 2014-03-26 2014-03-26 基于处理器分核以及虚拟机的实时通信平台

Country Status (1)

Country Link
CN (1) CN103957233B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829493A (zh) * 2018-06-22 2018-11-16 山东超越数控电子股份有限公司 一种虚拟机时间同步方法与装置
CN109471588A (zh) * 2018-09-13 2019-03-15 北京米文动力科技有限公司 一种同步方法及设备
CN111130895A (zh) * 2019-12-27 2020-05-08 天津瑞能电气有限公司 一种基于dsp的ren协议主站实现方法
CN112583656A (zh) * 2020-11-10 2021-03-30 深圳市有方科技股份有限公司 基于lwip用户态ppp通信功能的调试方法和装置
CN112904932A (zh) * 2021-05-08 2021-06-04 鹏城实验室 时钟同步方法、板卡、计算机存储介质及终端设备
CN114237818A (zh) * 2021-12-01 2022-03-25 科东(广州)软件科技有限公司 虚拟机间共享资源的方法、系统、计算设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107241365A (zh) * 2017-08-14 2017-10-10 中国电子科技集团公司第二十八研究所 一种云平台时间同步方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232457A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于ieee1588协议的高精度实时同步方法
CN101252404A (zh) * 2008-03-31 2008-08-27 重庆大学 基于fpga的分布式网络时钟同步系统及方法
US20110170534A1 (en) * 2010-01-11 2011-07-14 Faro Technologies, Inc. Method and apparatus for synchronizing measurements taken by multiple metrology devices
WO2011085585A1 (zh) * 2010-07-23 2011-07-21 华为技术有限公司 时间同步的方法和设备
CN101364863B (zh) * 2008-09-27 2011-11-02 华为技术有限公司 同步网中主、从时钟侧的时间同步方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232457A (zh) * 2008-02-22 2008-07-30 浙江大学 一种基于ieee1588协议的高精度实时同步方法
CN101252404A (zh) * 2008-03-31 2008-08-27 重庆大学 基于fpga的分布式网络时钟同步系统及方法
CN101364863B (zh) * 2008-09-27 2011-11-02 华为技术有限公司 同步网中主、从时钟侧的时间同步方法
US20110170534A1 (en) * 2010-01-11 2011-07-14 Faro Technologies, Inc. Method and apparatus for synchronizing measurements taken by multiple metrology devices
WO2011085585A1 (zh) * 2010-07-23 2011-07-21 华为技术有限公司 时间同步的方法和设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829493A (zh) * 2018-06-22 2018-11-16 山东超越数控电子股份有限公司 一种虚拟机时间同步方法与装置
CN109471588A (zh) * 2018-09-13 2019-03-15 北京米文动力科技有限公司 一种同步方法及设备
CN109471588B (zh) * 2018-09-13 2021-08-10 北京米文动力科技有限公司 一种同步方法及设备
CN111130895A (zh) * 2019-12-27 2020-05-08 天津瑞能电气有限公司 一种基于dsp的ren协议主站实现方法
CN111130895B (zh) * 2019-12-27 2022-08-09 天津瑞能电气有限公司 一种基于dsp的ren协议主站实现方法
CN112583656A (zh) * 2020-11-10 2021-03-30 深圳市有方科技股份有限公司 基于lwip用户态ppp通信功能的调试方法和装置
CN112583656B (zh) * 2020-11-10 2022-10-04 深圳市有方科技股份有限公司 基于lwip用户态ppp通信功能的调试方法和装置
CN112904932A (zh) * 2021-05-08 2021-06-04 鹏城实验室 时钟同步方法、板卡、计算机存储介质及终端设备
CN114237818A (zh) * 2021-12-01 2022-03-25 科东(广州)软件科技有限公司 虚拟机间共享资源的方法、系统、计算设备及存储介质

Also Published As

Publication number Publication date
CN103957233B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN103957233A (zh) 基于处理器分核以及虚拟机的实时通信平台
CN110932839B (zh) 一种网卡、时间同步方法、设备及计算机存储介质
CN106992830B (zh) 一种fc-ae-1553网络中的时钟同步方法
CN101547083B (zh) 时间同步装置、时间同步系统和时间同步方法
CN108737468A (zh) 云平台服务集群、构建方法及装置
CN102739491B (zh) 一种以太网通信主站实现方法
CN102907058B (zh) 在没有中央控制的网络中提供同步锁定单元传输的装置和方法
CN102186275A (zh) Led灯光远程实时播放同步控制方法及系统
CN107295627A (zh) 时间同步方法、时间同步装置及无线通信协议栈系统
CN106095601A (zh) 一种多进程并发解算差分服务器系统及其实现方法
CN101009546A (zh) 采用不同时间同步协议的网段间实现时间同步的方法
EP3626004B1 (en) Method and apparatus for provision of timing for a communication network
CN109194432A (zh) 一种kvm下多虚拟机时间同步系统
CN113489563B (zh) 一种虚拟机的时钟同步方法和云平台
CN114443226A (zh) 一种基于kubernetes的IDE应用云上部署方法及系统
CN102760114A (zh) 多处理器系统的通信仿真方法、引擎及系统
CN112929206B (zh) 一种云网环境下云物理机配置的方法与装置
CN107241365A (zh) 一种云平台时间同步方法
CN103631752A (zh) 一种众核处理器片上网络实时通信时间戳方法及系统
Tseng et al. NFV deployment strategies in SDN network
CN105515709A (zh) 基于国产FPGA和uclinux操作系统的时间同步装置
Yongchao et al. A real-time communication platform based on processor separation and virtual machine technology
CN112904932A (zh) 时钟同步方法、板卡、计算机存储介质及终端设备
CN114816651A (zh) 一种通信方法、装置以及系统
CN104639273A (zh) 一种适用于lan网络下通信设备的时间同步方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170315