CN1331070C - 数据通信的方法及设备 - Google Patents
数据通信的方法及设备 Download PDFInfo
- Publication number
- CN1331070C CN1331070C CNB2004100056588A CN200410005658A CN1331070C CN 1331070 C CN1331070 C CN 1331070C CN B2004100056588 A CNB2004100056588 A CN B2004100056588A CN 200410005658 A CN200410005658 A CN 200410005658A CN 1331070 C CN1331070 C CN 1331070C
- Authority
- CN
- China
- Prior art keywords
- data
- processor
- dma
- address
- destination
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种数据通信的方法及设备,用于在具有主从关系的处理器之间进行通信。其中方法为:在通过总线连接的主处理器和从处理器之间映射共享内存;主处理器和从处理器分别在所述共享内存中设置接收数据的地址;发送数据时,源端从所述共享内存中获取目的端接收数据的地址,并将数据写入该地址对应的存储介质内,目的端则从该地址中获取数据。
Description
技术领域
本发明涉及数据通信技术,尤其涉及数据通信的方法及其设备。
背景技术
在数据通信领域,数据的发送和接收一直是业界关注的领域,它是数据通信的基础。在以往的数据通信领域,大家关注的通常是远距离,或者设备之间的数据通信问题,数据的传递通常是通过设备间的物理链路、中继设备等进行传输。对于近距离的数据传输,特别是设备内部的数据传输,大家或者秘而不宣,或者没有普遍应用。
申请号为“98800800”的中国专利公开了名称为“数据传送方法和数据传送设备”,其技术方案为:通过级别对等的两个处理器的直接存储器访问(DMA)通信机制来实现数据的传递,这两个处理器相互独立,没有直接的关联关系。这两个处理器使用各自独立的数据总线进行数据传输,并且处理器之间的数据交互是通过一个总线中继器来实现的。
上述技术方案适用于两个对等的中央处理器(CPU)之间进行通信,然而对于具有主从关系的CPU之间的通信,这种方式因为需要通过中断器进行转换处理,所以会导致数据传递的及时性差、数据传输的速度和效率低。
发明内容
本发明提供一种数据通信的方法及其设备,以解决现有技术在具有主从关系的两个处理器间传送数据时存在及时性差和速度低的问题。
实现发明的技术方案:
一种数据通信的方法,该方法为:
在通过总线连接的主处理器和从处理器之间映射共享内存;
所述主处理器与所述从处理器之间采用直接存储器访问DMA方式中的串链方式传输数据,且所述共享内存中设置有数据段信息,用于表明源端DMA控制器发送的数据由多少个独立的数据段构成;
主处理器和从处理器分别在所述共享内存中设置接收数据的地址;发送数据时,源端从所述共享内存中获取目的端接收数据的地址,并将数据写入该地址对应的存储介质内,目的端则从该地址中获取数据。
其中:
主处理器和从处理器通过私有地址访问所述共享内存。
源端在发送数据前判断目的端是否准备好接收数据,当目的端未准备好接收数据时将数据缓存,并在目的端准备好接收数据时再发送。
所述共享内存中设置有表示主、从处理器接收数据状态的状态标识,源端在发送数据前从共享内存获取目的端的状态标识来判断目的端是否准备好接收数据。
源端通过特殊中断方式来判断目的端是否准备好接收数据。
所述数据发送采用直接存储器访问(DMA)方式。
当采用DMA方式中的串链方式传输数据时,所述共享内存中还设置有数据段信息,用于表明源端DMA控制器发送的数据由多少个独立的数据段构成。
一种数据传输设备,包括总线,通过总线连接的处理器、内存介质和直接存储器访问(DMA)控制器,其特征在于,所述处理器包括具有主从关系并且通过所述总线相连的主处理器和从处理器,该主、从处理器分别连接有所述DMA控制器,并且所述内存介质包含允许主处理器和从处理器访问的共享存储区,所述共享存储区中设置有用于表明源端DMA控制器发送的数据由多少个独立的数据段构成的数据段信息;在传输数据时,源端的DMA控制器从所述共享存储区内获取目的端的地址。
本方案提供了一种主从CPU之间大量、快速传递数据的有效方法,该方法可以提高CPU之间数据收发效率,有效降低CPU的使用率(即节约资源),同时在一定程度上保证了数据发送的及时性。
附图说明
图1为本发明的数据传输设备的结构示意图;
图2为DAM串链方式示意图;
图3为接收数据前的初始化流程图;
图4为发送数据的流程图;
图5为接收数据的流程图;
图6为定时触发的发送数据流程图。
具体实施方式
参阅图1所示,传输设备包括总线,通过总线连接的主处理器(主CPU)、从CPU、内存介质和直接存储器访问(DMA)控制器。主、从处理器之间通过公共总线相连,并且可以通过直接或者间接的方式向对方发送中断;通过公共总线,CPU可以访问外挂于CPU的外部存储介质,进行数据的读写操作。
对于主CPU而言,它将一部分外挂于公共总线上的内存介质的地址空间映射给从CPU的内存空间,允许从CPU对其进行读写;主CPU对该映射内存空间仍然可以读写。对于非映射给从CPU的存储介质地址空间,从CPU不能访问。
从CPU具有独立的内存地址空间,对于映射到从CPU的存储器介质,从CPU通过其私有地址进行访问,即对于同一个内存介质的某个区域(字节),存在两个地址:一个是主CPU的地址,另一个是从CPU的地址。图1中,内存介质J1中的存储空间J2(阴影部分)是由主CPU映射给从CPU的存储介质,主CPU可以访问内存介质J1的全部存储介质空间,从CPU只能访问存储空间J2,对于内存介质J1之内并且在存储空间J2以外的内存空间,从CPU不可访问。
数据传送使用CPU提供的DMA方式,而DMA传送存在“串链”和“非串链”两种方式。所谓“串链”方式就是在一次DMA发送中存在多个不同地址和长度的数据。“非串链”方式每次DMA中只发送一个地址和长度的数据。“非串链”方式可以看作DMA“串链”方式的一个特例。
本发明通过在共享内存中设置主处理器和从处理器接收数据的地址,在发送数据时,源端从共享内存中获取目的端接收数据的地址,然后将数据写入该地址对应的存储介质内,目的端则从该地址中获取数据。
在发送数据时,为了使源端能够获知目的端是否准备好接收数据,在共享内存介质中设置两个DMA传送控制字K1和K2:控制字K1用于标识主CPU接收数据的状态,控制字K2用于标识从CPU接收数据的状态。在控制字K1和K2中包含以下信息:
状态字段:该字段用于表示当前CPU是否做好了接收数据的准备,至少表示“就绪”和“忙”两种状态。
数据的个数:用于表明DMA发送过来的数据由几个独立的数据段构成。当然,对于“非串链”方式而言,这个字段可以省略。
在共享内存介质中还设置两个地址表L1和L2。地址表L1用于存储主CPU可以接收数据的起始地址,地址表L2用于存储从CPU可以接收数据的起始地址。因为DMA传输是在公共总线上的整个系统范围的数据传输过程,因此这两个地址表中的地址都需要存储绝对地址,即主CPU使用的存储介质的地址。
对于DMA方式的数据传输,需要知道源地址、目的地址和数据长度三个基本要素,请参阅图2所示。根据这三个基本要素,同时知道有多少个这样的数据段需要传送,CPU就可以使用DMA机制来完成数据的传送过程。
具备了状态控制字和地址表之外,将DMA“串链”的数据段个数加以限定,定义为每次DMA最多可以传送数据段的预定值为N,这个N值可以根据实际情况来设定。之所以做这样的限定,首先从内存管理的角度看,不可能无限制地为DMA准备可以接收数据的地址;其次,从数据传递的及时性方面考虑,同样需要一个数据段个数的限制。
数据段个数的限制同时也解决了DMA触发时机的问题,即具备了状态控制字和地址列表,在可以进行DMA传送的条件下,DMA触发时机为:
A、在需要传送的数据段的个数为N或者大于N的情况下,触发DMA传送;
B、在有数据段需要DMA传送,且不满足方法一的情况下,如果距离前一次DMA发送的时间满足一定的时间间隔(比如10毫秒),则触发DMA操作。
对于控制字的判断处理:在数据发送之前,首先判断对端CPU是否将控制字设置为“就绪”状态,对于“就绪”态,首先将控制字的“就绪”态更改为“忙”态,然后进行触发时机的判断处理;控制字如果是“忙”态,则将需要发送的数据进行缓存,等待对端CPU将控制字设置为“就绪”态。
在触发DMA操作之后,源端CPU通过中断的形式通知目的端CPU有数据需要接收,这时目的端CPU的中断服务程序将执行数据接收处理,并为下一次DMA数据接收做好准备。
参阅图3所示,主、从处理器的初始化流程如下:
步骤300:初始化系统变量。
步骤310:申请空闲内存空间,用于DMA数据接收。
步骤320:初始化DMA控制字状态为“就绪”。
参阅图4所示,发送数据的流程如下:
步骤400:应用程序进行数据处理。
步骤410:判断发送的数据段数量据是否大于预定值,如果是则进行步骤420,否则进行步骤430。
步骤420:判断接收端控制字状态是否为“就绪”,如果是则进行440,否则进行步骤430。
步骤430:将数据缓存,等待发送并结束流程。
步骤440:将需要发送的数据“串链”处理。
步骤450:触发DMA传送数据。
步骤460:将控制字状态设置为“忙”。
步骤470:向接收端发送中断,通知目的端接收数据并结束流程。
参阅图5所示,接收数据的流程如下:
步骤500:清除中断。
步骤510:根据DMA控制字中的数据段个数地址表中顺序读取数据。
步骤520:申请相应个数的空闲空间进行补充,以准备接收下次的数据。
步骤530:将控制字的状态设备为“就绪”并结束该流程。
参阅图6所示,定时触发DMA数据发送的流程如下:
步骤600:判断是否有数据需要DMA发送,如果是则进行步骤610,否则结束该流程。
步骤610:判断目的端的控制字状态是否为“就绪”,如果是则进行步骤620,否则结束该流程。
步骤620:进行DMA数据发送处理。
步骤630:判断DMA发送是否完成,如果是则进行步骤620,否则进行步骤640。
步骤640:向接收端发送中断,通知目的端数据到达并结束流程。
在本发明中,从处理器不限于一个,可以为多个,主处理器与每一从主处理器之间均建立有共享内存,其工作原理相同。
本发明利用共享内存来传递主、从处理器的状态信号和接收数据地址,能够保证数据发送的及时性,可以提高CPU之间数据收发效率,是主从CPU之间大量、快速传递数据的有效方法。
Claims (10)
1、一种数据通信的方法,其特征在于包括步骤:
在通过总线连接的主处理器和从处理器之间映射共享内存,所述主处理器与所述从处理器之间采用直接存储器访问DMA方式中的串链方式传输数据,且所述共享内存中设置有数据段信息,用于表明源端DMA控制器发送的数据由多少个独立的数据段构成;
主处理器和从处理器分别在所述共享内存中设置接收数据的地址;
发送数据时,源端从所述共享内存中获取目的端接收数据的地址,并将数据写入该地址对应的存储介质内,目的端则从该地址中获取数据。
2、如权利要求1所述的方法,其特征在于,主处理器和从处理器通过私有地址访问所述共享内存。
3、如权利要求1所述的方法,其特征在于,源端在发送数据前判断目的端是否准备好接收数据,如果目的端未准备好接收数据时将数据缓存,并在目的端准备好接收数据时再发送。
4、如权利要求3所述的方法,其特征在于,所述共享内存中设置有表示主、从处理器接收数据状态的状态标识,源端在发送数据前从共享内存获取目的端的状态标识来判断目的端是否准备好接收数据。
5、如权利要求3或4所述的方法,其特征在于,源端通过特殊中断方式来判断目的端是否准备好接收数据。
6、如权利要求1至4之一项所述的方法,其特征在于,所述数据发送采用DMA方式。
7、如权利要求6所述的方法,其特征在于,当需要传送的数据段的数量不少于预定值时,触发DMA传送;当需要传送的数据段的数量不大于预定值且距离前一次DMA发送的时间间隔达到设定值时,触发DMA传送。
8、一种数据传输设备,包括总线,通过总线连接的处理器、内存介质和直接存储器访问(DMA)控制器,其特征在于,所述处理器包括具有主从关系并且通过所述总线相连的主处理器和从处理器,该主、从处理器分别连接有所述DMA控制器,并且所述内存介质包含允许主处理器和从处理器访问的共享存储区,所述共享存储区中设置有用于表明源端DMA控制器发送的数据由多少个独立的数据段构成的数据段信息;在传输数据时,源端的DMA控制器从所述共享存储区内获取目的端的地址。
9、如权利要求8所述的数据传输设备,其特征在于,所述主、从处理器以私有地址访问所述共享存储区。
10、如权利要求8或9所述的数据传输设备,其特征在于,所述从处理器为多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100056588A CN1331070C (zh) | 2004-02-21 | 2004-02-21 | 数据通信的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100056588A CN1331070C (zh) | 2004-02-21 | 2004-02-21 | 数据通信的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1658176A CN1658176A (zh) | 2005-08-24 |
CN1331070C true CN1331070C (zh) | 2007-08-08 |
Family
ID=35007673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100056588A Expired - Fee Related CN1331070C (zh) | 2004-02-21 | 2004-02-21 | 数据通信的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1331070C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164369A (zh) * | 2013-02-22 | 2013-06-19 | 深圳市硅格半导体有限公司 | 数据传输的控制方法及装置 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100454241C (zh) * | 2006-02-28 | 2009-01-21 | 华为技术有限公司 | 一种在共享内存中存储c++对象的方法及装置 |
CN1964286B (zh) * | 2006-12-13 | 2012-02-29 | 杭州华三通信技术有限公司 | 具有双cpu的主控设备 |
CN102281421B (zh) * | 2010-06-12 | 2015-11-25 | 无锡中星微电子有限公司 | 一种视频图像数据的播放方法和播放装置 |
CN102760109B (zh) * | 2012-06-15 | 2016-03-30 | 华为技术有限公司 | 数据的通信方法、装置及系统 |
CN104199702A (zh) * | 2014-09-08 | 2014-12-10 | 吴健辉 | 一种软件版本加载方法 |
CN105302489B (zh) * | 2015-10-30 | 2018-03-13 | 致象尔微电子科技(上海)有限公司 | 一种异构多核远程嵌入式存储器系统与方法 |
CN106527968A (zh) * | 2016-09-21 | 2017-03-22 | 苏州市广播电视总台 | 一种基于文件直通技术的文件传输方法 |
CN108011913B (zh) * | 2016-12-29 | 2021-08-20 | 北京车和家信息技术有限责任公司 | 数据传输方法、车机显示装置、车辆多媒体设备及系统 |
CN107832240B (zh) * | 2017-10-27 | 2020-06-09 | 北京腾凌科技有限公司 | 一种基于信息记录结构体的dma数据交互方法和装置 |
CN107995129B (zh) * | 2017-11-30 | 2021-12-17 | 锐捷网络股份有限公司 | 一种nfv报文转发方法和装置 |
CN108566552B (zh) * | 2018-04-20 | 2021-05-25 | 四川长虹网络科技有限责任公司 | 适用于数字机顶盒的多媒体播放方法及系统 |
CN110647493B (zh) * | 2018-06-26 | 2022-04-01 | 大唐移动通信设备有限公司 | 一种数据传输方法、处理器和pcie系统 |
CN111339000B (zh) * | 2020-02-24 | 2021-07-06 | 深圳震有科技股份有限公司 | Amp系统内存文件传输方法及装置 |
CN113434089B (zh) * | 2021-06-29 | 2022-08-16 | 苏州科达科技股份有限公司 | 数据搬移方法、装置及pcie系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0294487A1 (en) * | 1986-12-23 | 1988-12-14 | Fanuc Ltd. | System for controlling coprocessors |
US5167028A (en) * | 1989-11-13 | 1992-11-24 | Lucid Corporation | System for controlling task operation of slave processor by switching access to shared memory banks by master processor |
US5446841A (en) * | 1991-06-15 | 1995-08-29 | Hitachi, Ltd. | Multi-processor system having shared memory for storing the communication information used in communicating between processors |
US5913227A (en) * | 1997-03-24 | 1999-06-15 | Emc Corporation | Agent-implemented locking mechanism |
-
2004
- 2004-02-21 CN CNB2004100056588A patent/CN1331070C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0294487A1 (en) * | 1986-12-23 | 1988-12-14 | Fanuc Ltd. | System for controlling coprocessors |
US5167028A (en) * | 1989-11-13 | 1992-11-24 | Lucid Corporation | System for controlling task operation of slave processor by switching access to shared memory banks by master processor |
US5446841A (en) * | 1991-06-15 | 1995-08-29 | Hitachi, Ltd. | Multi-processor system having shared memory for storing the communication information used in communicating between processors |
US5913227A (en) * | 1997-03-24 | 1999-06-15 | Emc Corporation | Agent-implemented locking mechanism |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164369A (zh) * | 2013-02-22 | 2013-06-19 | 深圳市硅格半导体有限公司 | 数据传输的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1658176A (zh) | 2005-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2126705B1 (en) | Serial advanced technology attachment (sata) and serial attached small computer system interface (scsi) (sas) bridging | |
CN1331070C (zh) | 数据通信的方法及设备 | |
TWI239187B (en) | System and method for managing and validating remote keys which correspond to outstanding data transactions | |
CN108733601B (zh) | NVMe-oF以太网SSD中的低延迟直接访问块存储 | |
CN107995129B (zh) | 一种nfv报文转发方法和装置 | |
US9137179B2 (en) | Memory-mapped buffers for network interface controllers | |
US8949486B1 (en) | Direct memory access to storage devices | |
US8521934B1 (en) | Multi-port context-based host controller | |
US5151895A (en) | Terminal server architecture | |
CN100440184C (zh) | 一种能同时进行读写操作的dma控制器及传输方法 | |
CN103959255A (zh) | 跨多个内存口使用选择性复制降低内存访问延迟的系统及方法 | |
JPH07288535A (ja) | プロセッサ・チャネル及び交換機構の間に設けられたアダプタ装置 | |
US9015380B2 (en) | Exchanging message data in a distributed computer system | |
CN101727414A (zh) | 用于在计算机系统中传递中断的技术 | |
US7962676B2 (en) | Debugging multi-port bridge system conforming to serial advanced technology attachment (SATA) or serial attached small computer system interface (SCSI) (SAS) standards using idle/scrambled dwords | |
WO2017023612A1 (en) | Emulating a remote direct memory access ('rdma') link between controllers in a storage array | |
JP2006252358A (ja) | ディスクアレイ装置及びその共有メモリ装置、ディスクアレイ装置の制御プログラム及び制御方法 | |
US5923852A (en) | Method and system for fast data transmissions in a processing system utilizing interrupts | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
JP2008541276A (ja) | 同時読み出し応答確認拡張ダイレクト・メモリ・アクセス・ユニット | |
US20110106990A1 (en) | Efficient handling of queued-direct i/o requests and completions | |
US6332171B1 (en) | Self-contained queues with associated control information for receipt and transfer of incoming and outgoing data using a queued direct input-output device | |
KR20030083572A (ko) | 상위버스와 하위버스를 가지며, 네트워크에서의 데이터액세스의 제어를 행하는 마이크로 컴퓨터 시스템 | |
JP2000339267A (ja) | Pciバス制御システム | |
US7930438B2 (en) | Interrogate processing for complex I/O link |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070808 Termination date: 20130221 |