CN101867510A - 板级双***互联方法 - Google Patents
板级双***互联方法 Download PDFInfo
- Publication number
- CN101867510A CN101867510A CN201010187319A CN201010187319A CN101867510A CN 101867510 A CN101867510 A CN 101867510A CN 201010187319 A CN201010187319 A CN 201010187319A CN 201010187319 A CN201010187319 A CN 201010187319A CN 101867510 A CN101867510 A CN 101867510A
- Authority
- CN
- China
- Prior art keywords
- data
- pci
- network
- function
- dma
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种将两个(或多个)具有PCI接口的处理器(CPU)进行***间(或芯片间)通信的技术,包括将***通过PCI直接互联的硬件设计以及基于此项应用的虚拟网卡驱动软件,本发明的方法可替代原有基于以太网卡所构建的网络通信,提高了网络带宽,降低网络延迟,缩小电路板空间,降低产品成本,可广泛用于计算机通信,嵌入式应用行业等不同领域。
Description
技术领域
本发明涉及一种***互联方法,特别涉及一种基于PCI总线直接将芯片互联运行而不用改变传统网络应用软件的网络互联方法。可为基于PCI或者PCI-E技术的板级多处理器***互联提供通信方法,可被广泛用于计算机通信,嵌入式***和高性能计算等多个领域。
背景技术
目前,在计算机各领域的应用中经常涉及***间或处理器(CPU)间互联的数据传输应用。传统的通信方式相当多的依赖于以太网卡和以太网网络这种介质来实现。例如CPU通过PCI总线连接以太网卡,通过以太网物理层连接到另外一台主机或者处理器。数据要通过通信两端的网卡进行封包和解包,并经过外部的传输介质如网线或在印制电路板(PCB)上的走线。这样就不能满足在特定应用环境下实现高带宽低延迟网络传输,浪费了对空间限制要求较高的嵌入式产品在PCB上的相应布线空间,增加了电路板尺寸,增加了网卡芯片的成本。
发明内容
本发明所要解决的技术问题是提供一种在特定应用环境下实现高带宽低延迟网络传输,在对空间限制要求较高的嵌入式产品中可以节省在PCB上的相应布线空间,减小电路板尺寸,节省网卡芯片带来的成本增加的板级双***互联方法。
为了解决上述的技术问题,本发明的技术方案是:一种板级双***互联方法,包括以下步骤:
(1)通过PCI总线将两***互联;
(2)将虚拟网卡驱动程序分别运行在两***上,虚拟网卡驱动程序初始化,注册网络设备;
(3)在上层应用程序打开网络设备时,在***两端驱动中的open函数相应的被调用,实现申请中断,开辟DMA缓冲,建立一致性映射;
(4)一***发起的数据传送过程:
a)由协议层调用发送函数,并将要发送的数据通过套接字缓冲数据结构;
b)发送函数将套接字缓冲中的数据拷贝到网卡申请的环形缓冲,并使能DMA控制器开启DMA传输;
c)在一个数据包传输完成后,***端发出PCI中断;
(5)另一***开始接收数据的过程:
a)另一***端收到PCI中断后,启动中断处理函数;
b)在中断处理函数中会将接收缓冲中的数据提交给协议层。
1)PCI总线:
PCI总线是***互联接口的简称。是被广泛应用的芯片间(尤其是CPU和***设备,如南桥,显卡,网卡等)互联的硬件协议。它是一个32位,通常工作在33/66MHz的一个并行总线。在该项专利中正是将PCI总线作为硬件***连接的方式。
2)Linux网络驱动:
网络驱动是连接网卡硬件和Linux内核的软件。它屏蔽了网卡物理层的实现细节,为内核的网络子***提供了通用的接口,以便基于网络的应用程序操作网卡。在此我们实现了基于PCI通信的虚拟网卡驱动,这是此项发明的技术核心。
3)DMA:
DMA技术是直接内存访问技术。是DMA控制器代替CPU直接操作内存来存取数据的一种数据交换机制,这样可以大幅提高***性能。在虚拟网卡驱动的设计中,正是使用DMA技术来实现数据的收发传输。
虚拟网卡驱动程序分别运行在双***的两端。驱动程序首先会向Linux内核注册网络设备,申请中断并初始化DMA寄存器。然受分别实现发送函数和接收函数。发送端通过DMA控制器将用户数据从内存中取出并放到PCI总线上来传送数据;接收端在收到PCI中断后启动DMA读的方法有DMA控制器将数据从PCI内存空间放到接收缓冲。
本发明的方法对产品的硬件设计来说,更加简化双***间通信的复杂程度,提高网络传输的带宽可以满足高速网络应用环境的要求;缩小板卡空间使产品设计可以更多样化;同时削减了网卡芯片本身带来的产品成本开销。
对于软件来说,现有各种网络应用软件不涉及任何修改。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为两个***间的PCI连接框图;
图2为本发明的两***的结构示意图;
图3为本发明的***数据发送流程图;
图4为本发明的***接收数据流程图。
具体实施方式
以国产龙芯2F处理器和一款高清播放芯片Sigma公司的SMP8635两个***间的通信作为例,其硬件的连接方法如图1所示,龙芯2F处理器和高清播放芯片Sigma公司的SMP8635的结构示意图如图2所示。
驱动的初始化过程:
1)首先在硬件设计中将龙芯2F的PCI控制器和SMP8635的PCI接口相连,或者由PCI插槽***;
2)虚拟网卡驱动程序初始化,注册网络设备。注册成功后可以看到ethX设备;
3)在上层应用程序打卡网络设备时,在SMP8635端驱动中的open函数相应的被调用。
实现申请中断,开辟DMA缓冲,建立一致性映射。
SMP8635发起的数据传送过程:
1)由协议层调用发送函数,并将要发送的数据通过套接字缓冲数据结构;
2)发送函数将套接字缓冲中的数据拷贝到网卡申请的环形缓冲,并使能DMA控制器开启DMA传输;
3)在一个数据包传输完成后,SMP8635端发出PCI中断。
龙芯2F开始接收数据的过程
1)龙芯2F端收到PCI中断后启动中断处理函数;
2)在中断处理函数中会将接收缓冲中的数据提交给协议层。
在以上过程中不必涉及传统网卡驱动中对网卡的复杂操作,排除了网卡物理层带来的网络延迟。
如图3所示,龙芯2F数据发送流程如下:
1)龙芯将要发送的数据缓冲区地址(源地址)发送给8635;
2)SMP8635在接收到龙芯的读请求和数据地址之后,设置DMA寄存器准备DMA访问;
3)启动PCI DMA访问,由SMP8635DMA控制器从龙芯地址空间读取数据再写到8635内存空间的目标地址;
4)在SMP8635接收完成后,产生一个PCI INTA#中断给龙芯,说明数据已经收到,可以准备下一次传送。
如图4所示,龙芯2F接收数据流程如下:
1)8635发出一个PCI INTA#中断给龙芯提示接收数据;
2)龙芯传送一个数据接收缓冲区的总线地址给8635;
3)8635设置DMA寄存器,开始DMA传送数据到龙芯内存空间;
4)在8635传送完之后会产生一个PCI中断通知龙芯。
本项发明是一种将两个(或多个)具有PCI接口的处理器(CPU)进行***间(或芯片间)通信的技术。包括将***通过PCI直接互联的硬件设计以及基于此项应用的虚拟网卡驱动软件。旨在解决传统网络传输在特定领域中应用的弊端,优化网络性能,而且原有网络应用程序可以无需修改实现无缝移植。
上述实施例不以任何方式限制本发明,凡是采用等同替换或等效变换的方式获得的技术方案均落在本发明的保护范围内。
Claims (1)
1.一种板级双***互联方法,其特征在于包括以下步骤:
(1)通过PCI总线将两***互联;
(2)将虚拟网卡驱动程序分别运行在两***上,虚拟网卡驱动程序初始化,注册网络设备;
(3)在上层应用程序打开网络设备时,在***两端驱动中的open函数相应的被调用,实现申请中断,开辟DMA缓冲,建立一致性映射;
(4)一***发起的数据传送过程:
a)由协议层调用发送函数,并将要发送的数据通过套接字缓冲数据结构;
b)发送函数将套接字缓冲中的数据拷贝到网卡申请的环形缓冲,并使能DMA控制器开启DMA传输;
c)在一个数据包传输完成后,***端发出PCI中断;
(5)另一***开始接收数据的过程:
a)另一***端收到PCI中断后,启动中断处理函数;
b)在中断处理函数中会将接收缓冲中的数据提交给协议层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010187319A CN101867510A (zh) | 2010-05-31 | 2010-05-31 | 板级双***互联方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010187319A CN101867510A (zh) | 2010-05-31 | 2010-05-31 | 板级双***互联方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101867510A true CN101867510A (zh) | 2010-10-20 |
Family
ID=42959081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010187319A Pending CN101867510A (zh) | 2010-05-31 | 2010-05-31 | 板级双***互联方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101867510A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776398A (zh) * | 2016-12-20 | 2017-05-31 | 广州视源电子科技股份有限公司 | 双***双向控制的方法和装置 |
CN110312266A (zh) * | 2018-03-20 | 2019-10-08 | 成都鼎桥通信技术有限公司 | 终端的多***实现wifi通信的方法和装置 |
CN113691397A (zh) * | 2021-08-12 | 2021-11-23 | 江苏杰瑞信息科技有限公司 | 工业控制数据传输用低延时5g无线透明传输方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303054A (zh) * | 1999-10-28 | 2001-07-11 | 英业达集团(上海)电子技术有限公司 | 虚拟网络装置及其通信方法 |
-
2010
- 2010-05-31 CN CN201010187319A patent/CN101867510A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303054A (zh) * | 1999-10-28 | 2001-07-11 | 英业达集团(上海)电子技术有限公司 | 虚拟网络装置及其通信方法 |
Non-Patent Citations (1)
Title |
---|
《程序员》 20090131 李云华 Linux网卡驱动分析一例 第90-93页 , 第01期 2 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776398A (zh) * | 2016-12-20 | 2017-05-31 | 广州视源电子科技股份有限公司 | 双***双向控制的方法和装置 |
WO2018113112A1 (zh) * | 2016-12-20 | 2018-06-28 | 广州视源电子科技股份有限公司 | 双***双向控制的方法和装置 |
CN110312266A (zh) * | 2018-03-20 | 2019-10-08 | 成都鼎桥通信技术有限公司 | 终端的多***实现wifi通信的方法和装置 |
CN113691397A (zh) * | 2021-08-12 | 2021-11-23 | 江苏杰瑞信息科技有限公司 | 工业控制数据传输用低延时5g无线透明传输方法 |
CN113691397B (zh) * | 2021-08-12 | 2023-10-20 | 江苏杰瑞信息科技有限公司 | 工业控制数据传输用低延时5g无线透明传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152441B2 (en) | Host bus access by add-on devices via a network interface controller | |
JP5917474B2 (ja) | 統合マルチ転送媒体コネクタを利用するシステム及びルーティング方法 | |
JP5475069B2 (ja) | 統一コネクタアーキテクチャ | |
TWI382315B (zh) | 通用串列匯流排矩陣切換系統 | |
EP1750401B1 (en) | USB 1.1 over a high speed link | |
WO2014004021A2 (en) | Tunneling platform management messages through inter-processor interconnects | |
WO2023174146A1 (zh) | 卸载卡命名空间管理、输入输出请求处理***和方法 | |
CN113691397A (zh) | 工业控制数据传输用低延时5g无线透明传输方法 | |
JP4444101B2 (ja) | バスシステム、バスシステム内で用いるためのステーション、及びバスインタフェース | |
US8090893B2 (en) | Input output control apparatus with a plurality of ports and single protocol processing circuit | |
CN111736792B (zh) | 可编程逻辑器件及其控制方法、控制***和视频处理器 | |
CN101867510A (zh) | 板级双***互联方法 | |
CN101122894A (zh) | 一种异步串行通讯控制器件 | |
CN110971621B (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
CN103678244B (zh) | 一种不使用应用处理器的智能设备 | |
US8799519B2 (en) | Network-to-network bridge | |
JP2008502977A (ja) | バス・コントローラのための割り込み方式 | |
CN101044727B (zh) | 使用直插式信用扩充器与主机总线适配器的方法及*** | |
CN101071406A (zh) | 接口可配置的通用串行总线控制器 | |
JP4930554B2 (ja) | 入出力制御装置 | |
KR20070022090A (ko) | 버스 컨트롤러용 인터럽트 기법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101020 |