一种基于虚拟网卡的双cpu系统通信方法

文档序号:6369639阅读:220来源:国知局
专利名称:一种基于虚拟网卡的双cpu系统通信方法
技术领域
本发明涉及计算机操作系统领域,具体涉及一种基于虚拟网卡的双CPU系统通信方法。
背景技术
多CPU设计在电子设备中已经广泛采用。例如在普通手机移动设备中就存在一个主CPU用来运行程序和控制,一个从CPU用于基带通信。在多CPU的系统中,主CPU和从CPU需要通过某种接口进行连接,使二者能够进行通信和数据交换,以达成协同工作。在潜入式移动设备中,经常采用的方式是将从CPU当作一个终端设备连接到主CPU,主CPU通过终端读写操作与从CPU进行通信。这种方式具有简单、技术成熟等优点,但它只适合于小数
据量通信,通常在潜入式移动设备中采用。

发明内容
发明目的针对现有技术中存在的问题与不足,提供一种可以保持高的带宽和小的延时的基于虚拟网卡的双CPU系统通信方法。本发明基于高速PCI总线的双CPU通信方法,将每个CPU的PCI接口虚拟为以太网卡,采用网络协议进行通信,可以有效满足大数据
量通信要求。技术方案一种基于虚拟网卡的双CPU系统通信方法,包括如下步骤第一步,将目标系统中进行计算和控制的通用CPU作为主CPU,将目标系统中进行媒体处理和IO处理的专用CPU作为从CPU ;所述主CPU和从CPU通过PCI接口连接;第二步,将主CPU的PCI接口虚拟为一个以太网卡,命名为第一以太网卡ethO ;在软件上,需要实现虚拟网卡驱动,其基本功能就是接收和发送数据包。对于发送首先主CPU在内存中准备好待发送数据,然后通过PCI访问告知从CPU数据准备好,由从CPU在PCI总线上发起DMA访问;所述DMA数据传输结束后,从CPU向主CPU发起中断,主CPU发送数据过程结束;对于接收主CPU首先准备好接收缓冲区,然后通过PCI访问告知从CPU缓冲区准备好,从CPU端如果有数据过来,将直接向主CPU发起DMA访问;在数据包写入主缓冲区后,从CPU向主CPU发出中断,主CPU接收数据过程结束;第三步,将从CPU的PCI接口虚拟成一个以太网卡,命名为第二以太网卡ethl ;从CPU的发送数据对应主CPU的接收过程,而接收过程对应于主CPU的发送数据过程,具体过程可以查看第二步;第四步,在主CPU上运行VNCServer,主CPU上的图形操作系统连接到本地的VNCServer ;第五步,在从CPU上运行VNCViewer,VNCViewer通过虚拟网络连接到主CPU端的VNCServer ;VNCViewer将来自VNCServer端的输入输出(10)、图形绘制请求在从CPU端执行,并将结果返回给主CPU系统;
第六步,主CPU系统所运行的运行应用程序APP,如果需要进行输入输出和图形显示,贝1J向VNCServer发送请求。这些请求由VNCServer发送到VNCViewer,并最终在从CPU系统上完成。工作原理本发明基于目标系统有两个CPU :—个主CPU,具有较强的计算和控制能力;一个从CPU,具有较强的媒体处理能力和IO处理能力。主CPU用于执行应用软件,t匕如浏览器、Office软件等需要较高计算能力的软件。从CPU用于处理IO以及图形渲染,视频解码等多媒体功能。主CPU有一个PCI接口,可以连接PCI设备。从CPU也包含一个PCI接口,可以当作PCI设备与主CPU连接。有益效果与现有技术相比,本发明所提供的基于虚拟网卡的双CPU系统通信方法实现成本低,性能好,将两端的PCI接口均虚拟成一个网卡,这样就可以利用成熟的网络协议,减少系统的复杂度。因为两CPU是直接通过PCI相连,直接采用DMA进行通信,可以保持高的带宽和小的延时。


图I为本发明实施例的用于实现基于虚拟网卡的双CPU系统通信方法的总体结构图;图2为本发明实施例的主CPU发送和从CPU接收的流程图;图3为本发明实施例的主CPU接收和从CPU发送的流程图。
具体实施例方式下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。TCP/IP的网络协议很成熟,相关的软件支持也最齐全。将两CPU的PCI接口直接相连,将两端的PCI接口均虚拟成一个网卡。这样就可以利用成熟的网络协议,减少系统的复杂度。因为两CPU是直接通过PCI相连,直接采用DMA进行通信,可以保持高的带宽和小的延时。本实施例公开的基于虚拟网卡的双CPU系统通信方法,如图1-3所示包括如下步骤第一步,将目标系统中进行计算和控制的通用CPU作为主CPU,将目标系统中进行媒体处理和IO处理的专用CPU作为从CPU ;所述主CPU和从CPU通过PCI接口连接;第二步,将主CPU的PCI接口虚拟为一个以太网卡,命名为第一以太网卡ethO。对于发送首先在内存中准备好待发送数据,然后通过PCI访问告知从CPU数据准备好,由从CPU在PCI总线上发起DMA访问;所述DMA数据传输结束后,从CPU向主CPU发起中断,主CPU发送数据过程结束;对于接收主CPU首先准备好接收缓冲区,然后通过PCI访问告知从CPU缓冲区准备好,从CPU端如果有数据过来,将直接向主CPU发起DMA访问;在数据包写入主缓冲区后,从CPU向主CPU发出中断,主CPU接收数据过程结束;第三步,将从CPU的PCI接口虚拟成一个以太网卡,命名为第二以太网卡ethl ;
从CPU的发送数据对应主CPU的接收过程,而接收过程对应于主CPU的发送数据过程;第四步,在主CPU上运行VNCServer,主CPU上的图形操作系统连接到本地的VNCServer ;
第五步,在从CPU上运行VNCViewer, VNCViewer通过虚拟网络连接到VNCServer ;VNCViewer将来自VNCServer端的10、图形绘制请求在从CPU端执行;第六步,主CPU运行应用程序APP,应用程序APP和VNCServer通信,进行图形的绘制,输入输出的处理。
权利要求
1.一种基于虚拟网卡的双CPU系统通信方法,其特征在于,包括如下步骤 第一歩,将目标系统中进行计算和控制的通用CPU作为主CPU,将目标系统中进行媒体处理和IO处理的专用CPU作为从CPU ;所述主CPU和从CPU通过PCI接ロ连接; 第二步,将主CPU的PCI接ロ虚拟为ー个以太网卡,命名为第一以太网卡ethO ;对于发送首先主CPU在内存中准备好待发送数据,然后通过PCI访问告知从CPU接收数据,从CPU接收到通知后,向主CPU发出DMA读请求,将数据从主CPU搬运到从CPU ; 对于接收主CPU首先准备好接收缓冲区,并将缓冲区地址通过PCI访问告知从CPU,当从CPU端有数据时,向主CPU发起DMA写操作;将数据从主CPU搬运到主CPU ; 第三步,将从CPU的PCI接ロ虚拟成ー个以太网卡,命名为第二以太网卡ethl ; 从CPU的发送数据对应主CPU的接收过程,而接收过程对应于主CPU的发送数据过程; 第四步,在主CPU上运行VNCServer,主CPU上的图形操作系统连接到本地的VNCServer ; 第五步,在从CPU上运行VNCViewer, VNCViewer通过虚拟网络连接到VNCServer ;VNCViewer将来自VNCServer端的10、图形绘制请求在从CPU端执行; 第六步,主CPU运行应用程序APP,应用程序APP和VNCServer通信,进行图形的绘制,输入输出的处理。
2.如权利要求I所述的基于虚拟网卡的双CPU系统通信方法,其特征在于主CPU发送数据的步骤中,所述DMA数据传输结束后,从CPU向主CPU发起中断,主CPU发送数据过程结束。
3.如权利要求I所述的基于虚拟网卡的双CPU系统通信方法,其特征在于主CPU接收数据的步骤中,在数据包写入主缓冲区后,从CPU向主CPU发出中断,主CPU接收数据过程结束。
4.如权利要求I所述的基于虚拟网卡的双CPU系统通信方法,其特征在于JACPU的数据接收和发送对应与主CPU的数据发送和接收,并且通过从CPU的DMA访问完成数据的接收和发送过程。
全文摘要
本发明公开了一种基于虚拟网卡的双CPU系统通信方法,方法基于的目标系统有两个CPU一个为通用CPU,具有较强的计算和控制能力;一个为专用CPU,具有较强的媒体处理能力和IO处理能力。通用CPU用于执行需要较强计算能力的应用软件。专用CPU用于处理IO以及图形渲染、视频解码等多媒体功能。通用CPU有一个PCI 接口,可以连接PCI 设备。专用CPU上也包含一个PCI接口,可做为一个PCI 设备与主CPU连接。将通用CPU和专用CPU的PCI接口分别虚拟为一个以太网卡,从而实现基于虚拟网卡的双CPU系统通信。本设计的优点在于可利用成熟的网络协议,降低系统的复杂度;同时CPU之间通过PCI总线相连,采用DMA进行通信,可以保持高的带宽和小的延时。
文档编号G06F15/17GK102708091SQ20121014910
公开日2012年10月3日 申请日期2012年5月15日 优先权日2012年5月15日
发明者吴少刚, 张斌, 张福新, 晏华 申请人:江苏中科梦兰电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1