CN103049409B - 一种单向高速数据传输的控制方法 - Google Patents

一种单向高速数据传输的控制方法 Download PDF

Info

Publication number
CN103049409B
CN103049409B CN201210591200.XA CN201210591200A CN103049409B CN 103049409 B CN103049409 B CN 103049409B CN 201210591200 A CN201210591200 A CN 201210591200A CN 103049409 B CN103049409 B CN 103049409B
Authority
CN
China
Prior art keywords
transmission
unit
data
receiving end
tcu
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.)
Active
Application number
CN201210591200.XA
Other languages
English (en)
Other versions
CN103049409A (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.)
AVIC No 631 Research Institute
Original Assignee
AVIC No 631 Research Institute
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 AVIC No 631 Research Institute filed Critical AVIC No 631 Research Institute
Priority to CN201210591200.XA priority Critical patent/CN103049409B/zh
Publication of CN103049409A publication Critical patent/CN103049409A/zh
Application granted granted Critical
Publication of CN103049409B publication Critical patent/CN103049409B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供了一种单向高速数据传输的控制方法,通过增加数据传输的自主性提高数据传输效率,同时提高了硬件利用率和系统实时性。该单向高速数据传输的控制方法包括以下执行环节:接收端将配置数据写入配置寄存器组;接收端启动传输控制器;传输控制状态机启动计算单元;计算单元计算出接收端目的地址后,将其传送给传输单元;传输控制状态机启动传输单元;检测是否有数据需要传输,若有,则向数据接口发出占用请求;数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。

Description

一种单向高速数据传输的控制方法
技术领域
本发明涉及一种数据传输控制方法,特别涉及一种单向高速数据传输的控制方法。
背景技术
在计算机通信领域,目前主要通过多总线结构和DMA控制器来实现通信双方数据的高速传输。多总线结构和DMA控制器不通过CPU,而是直接在存储器间进行数据传输,减少了CPU的开销,不仅减轻了CPU的负担而且大大提高数据传输速率。但是,现阶段主要的DMA控制器——普通DMA控制器和链式DMA控制器在实际应用中还存在一些不足:
⒈普通DMA控制器在每次传输前都需要从CPU获取配置数据,这在一定程度上会影响数据传输速率,链式DMA控制器虽然可以由CPU一次配置多组配置数据,然后在传输过程中由DMA控制器自动读取,但由于配置数据是CPU预先设置,而CPU并不能准确获知所需传输数据的形式,因此预先设置的配置数据也比较少,其传输效率仅比普通DMA控制器稍高;
⒉基于DMA控制器的原理,需要在发起端设置一块较大的缓存来防止数据溢出,这可能会在某些应用场景下造成存储器的浪费。
⒊由于DMA控制器必须等到CPU的指令才能开始传输,如果CPU被优先级高的事务占用,数据的实时性无法得到很好的保证。
发明内容
本发明的目的是提供一种单向高速数据传输的控制方法,该方法通过增加数据传输的自主性提高数据传输效率,同时提高了硬件利用率和系统实时性。
为达到以上目的,本发明是采取如下技术方案予以实现的:
一种单向高速数据传输的控制方法,采用配置寄存器组、本地缓存、参数寄存器组和传输控制器;其中
配置寄存器组由接收端配置,用来储存接收端缓存和传输控制器的配置参数;
发送端缓存(本地缓存),用于存放发送端待传输数据;
参数寄存器组,用于存放待传输数据的长度信息;
传输控制器,包括计算单元、传输单元和传输控制状态机,其中传输控制状态机控制计算单元和传输单元的工作时序,确保两个单元能够协调工作,以完成传输目的地址的计算以及数据的传输;
该单向高速数据传输的控制方法包括以下执行环节:
i.接收端将配置数据写入配置寄存器组;
j.接收端启动传输控制器;
k.传输控制状态机启动计算单元;
l.计算单元计算出接收端目的地址后,将其传送给传输单元;
m.传输控制状态机启动传输单元;
n.检测是否有数据需要传输,若有,则向数据接口发出占用请求;
o.数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;
若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。
与DMA控制器相比,本发明的有益效果是:
a)传输效率高。数据传输完全独立于接收端工作,不会由于接收端处理其它事务而影响数据传输效率。
b)缓存利用率高。能够根据不同的实际应用环境和条件,灵活分配缓存,有效减少缓存浪费,提高缓存的利用率。
c)实时性强。传输控制器实时检测是否达到数据传输条件,一旦条件满足,马上启动数据传输。
d)使用简单。用户只用根据实际应用环境,在启动传输前进行一次数据配置。
附图说明
图1是本发明的技术方案示意图;
图2是本发明技术方案工作流程示意图;
图3是传输控制状态机状态转移示意图;
图4是传输控制器计算单元工作流程示意图;
图5是传输控制器传输单元工作流程示意图。
具体实施方式
本发明创新地提出了一种单向高速数据传输的控制方法,仅在启动前需要CPU配置一次,之后独立于CPU工作,完全避免了CPU的开销,其数据传输效率比DMA控制器更加高效;另外,还能够根据实际应用场景通过配置数据对缓存进行灵活分配,减少缓存浪费,降低系统硬件成本;最后,通过实时检测并自动传输数据,提升系统的实时性。
下面结合附图及具体实例对本发明做进一步的详细说明。
如图1所示,一种单向高速数据传输方法,包括
a)配置寄存器组
配置寄存器组的定义和说明如表1所示。
表1配置寄存器组说明
b)本地缓存(发送端缓存)
根据外部信号和数据接口要求,本地缓存使用一个写端口宽度32bit、读端口宽度64bit、深度4096的双口RAM实现,并将其划分成4个深度为1024的缓存单元,每个缓存单元仅用来缓存一帧数据。
c)参数寄存器组
参数寄存器组使用一个宽度为16bit、深度16的直通FIFO实现,写入的接收数据长度信息由传输控制器读出。外部单元每接收完一帧数据后就将该帧数据的长度信息写入FIFO中,而当传输控制器检测到FIFO不为空时,读出FIFO中的数据并开始传输数据。
d)传输控制器
传输控制器分为计算单元、传输单元和传输控制状态机三部分,其实现方法分别如下:
1)传输控制状态机
传输控制状态机控制计算单元和传输单元的工作时序,确保两个单元能够协调工作。状态转移关系如图3所示,设计了三种状态:空状态(S0)、计算状态(S1)和传输状态(S2)。状态机最初处于空状态,一旦传输控制器被启动就转移到计算状态,完成计算后转移到传输状态,传输结束后若传输控制器关闭则转移到空状态,否则转移到计算状态。
传输控制状态机启动条件为mont_buff_ready_reg的最低位置1,关闭条件为mont_buff_ready_reg的最低位置0。
2)计算单元
计算单元的工作流程如图4所示,具体说明如下:
a.若为第一次传输,则初始化传输地址为主机缓存区的起始地址;
b.若不为第一次传输,检查主机缓存单元剩余长度是否小于2180字节,若小于则切换主机缓存单元,更新mont_buff_tptr_reg的值;
c.若切换主机缓存单元,则将传输地址更新为新缓存单元起始地址,否则将传输地址加上本次传输的字节数作为新的传输地址。
3)传输单元
传输单元的工作流程如图5所示,具体说明如下:
a.检测参数FIFO是否为空,若不空,则有数据需要进行传输;
b.若主机缓存区满(mont_buff_tptr_reg的值加1等于mont_buff_hptr_reg的值),则将本地缓存读指针(内部设置)指向下一个缓存单元,拉高FIFO读使能一个时钟周期,丢弃一帧数据,本次传输完成;
c.若主机缓存区可写,申请占用PCIe接口,并初始化剩余数据寄存器(内部设置)的值为FIFO读出数据;
d.PCIe接口占用被确认后,从本地缓存读指针指向的本地缓存单元中读出数据并通过PCIe接口发出;
e.收到PICe接口发送成功确认后,将剩余数据寄存器的值减去已发送完成的数据字节数;
f.若剩余数据寄存器的值为0,则将本地缓存读指针指向下一个缓存单元,拉高FIFO读使能一个时钟周期,本次传输完成;否则,继续传输缓存单元中的数据直到剩余数据寄存器的值为0。
e)附加寄存器组
另外,还可以配置附加寄存器组,为接收端提供反映传输状态的相关信息。这是根据接收端的需求设置的,不是必需的。比如接收端需要提供主机缓存满指示和主机缓存单元实际使用长度指示功能,则设置主机缓存满标志寄存器和主机缓存单元实际长度寄存器组,附加寄存器组说明如表2所示。
表2附加寄存器组说明

Claims (1)

1.一种单向高速数据传输的控制方法,采用配置寄存器组、本地缓存、参数寄存器组和传输控制器;其中
配置寄存器组由接收端配置,用来储存接收端缓存和传输控制器的配置参数;
发送端缓存,用于存放发送端待传输数据;
参数寄存器组,用于存放待传输数据的长度信息;
传输控制器,包括计算单元、传输单元和传输控制状态机,其中传输控制状态机控制计算单元和传输单元的工作时序,为确保两个单元能够协调工作,传输控制状态机设计了三种状态:空状态、计算状态和传输状态;状态机最初处于空状态,一旦传输控制器被启动就转移到计算状态,完成计算后转移到传输状态,传输结束后若传输控制器关闭则转移到空状态,否则转移到计算状态,以完成传输目的地址的计算以及数据的传输;
若为第一次传输,所述传输目的地址为主机缓存区的起始地址;
若不为第一次传输,检查主机缓存单元剩余长度是否小于特定字节,若小于则切换主机缓存单元,则所述传输目的地址为新缓存单元起始地址;否则,所述传输目的地址为主机缓存区的起始地址加上本次传输的字节数;
该单向高速数据传输的控制方法包括以下执行环节:
a.接收端将配置数据写入配置寄存器组;
b.接收端启动传输控制器;
c.传输控制状态机启动计算单元;
d.计算单元计算出接收端目的地址后,将其传送给传输单元;
e.传输控制状态机启动传输单元;
f.检测是否有数据需要传输,若有,则向数据接口发出占用请求;所述数据接口为PICe接口;
g.PICe数据接口占用请求被确认后,传输单元将数据组合成数据接口要求的格式后传输;
h.若接收端关闭传输控制器,传输控制器退回空状态并清空计算单元和传输单元,否则跳向步骤c。
CN201210591200.XA 2012-12-28 2012-12-28 一种单向高速数据传输的控制方法 Active CN103049409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210591200.XA CN103049409B (zh) 2012-12-28 2012-12-28 一种单向高速数据传输的控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210591200.XA CN103049409B (zh) 2012-12-28 2012-12-28 一种单向高速数据传输的控制方法

Publications (2)

Publication Number Publication Date
CN103049409A CN103049409A (zh) 2013-04-17
CN103049409B true CN103049409B (zh) 2015-04-15

Family

ID=48062055

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210591200.XA Active CN103049409B (zh) 2012-12-28 2012-12-28 一种单向高速数据传输的控制方法

Country Status (1)

Country Link
CN (1) CN103049409B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105490785B (zh) * 2015-12-08 2018-10-26 中国航空工业集团公司西安航空计算技术研究所 一种基于共享缓存的fc网络余度发送控制系统及方法
CN105490780B (zh) * 2015-12-11 2018-09-21 中国航空工业集团公司西安航空计算技术研究所 一种基于rs422协议的可变数据传输方法
CN107193766B (zh) * 2017-05-12 2020-04-10 苏州中科集成电路设计中心有限公司 一种PCIe设备与主机之间的多路有序数据传输方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009188508A (ja) * 2008-02-04 2009-08-20 Toshiba Corp データ送受信装置
CN102945291A (zh) * 2012-08-03 2013-02-27 南京理工大学 基于pci-e的高速图像采集存储卡

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080276029A1 (en) * 2007-05-03 2008-11-06 Haraden Ryan S Method and System for Fast Flow Control

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009188508A (ja) * 2008-02-04 2009-08-20 Toshiba Corp データ送受信装置
CN102945291A (zh) * 2012-08-03 2013-02-27 南京理工大学 基于pci-e的高速图像采集存储卡

Also Published As

Publication number Publication date
CN103049409A (zh) 2013-04-17

Similar Documents

Publication Publication Date Title
WO2020001459A1 (zh) 数据处理方法、远程直接访存网卡和设备
KR101861312B1 (ko) 다중슬롯 링크 계층 플릿에서의 제어 메시징
CN101556565B (zh) 嵌入式处理器的片上高性能dma
US8645596B2 (en) Interrupt techniques
KR101298862B1 (ko) Pci 익스프레스를 통해 ⅰd 기반 스트림을 가능하게 하는 방법 및 장치
CN106257434B (zh) 一种基于增强型外设互连协议总线的数据传输方法及装置
EP2506150A1 (en) Method and system for entirety mutual access in multi-processor
US20140108676A1 (en) Method and system for an os virtualization-aware network interface card
US20180232324A1 (en) Multi-port multi-sideband-gpio consolidation technique over a multi-drop serial bus
CN111090221B (zh) 用于直写式光刻系统中的PCIe DMA数据传输系统及其传输方法
CN110188059B (zh) 数据有效位统一配置的流控式fifo缓存装置及方法
CN116069711B (zh) 直接内存访问控制器、异构设备、内存访问方法及介质
CN102073611B (zh) 一种i2c总线控制系统及方法
CN104239252A (zh) 数据存储系统的数据传输方法、装置及系统
CN115934625B (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
CN103049409B (zh) 一种单向高速数据传输的控制方法
CN103377170B (zh) 异构处理器间spi高速双向对等数据通信系统
CN111290983A (zh) Usb传输设备及传输方法
CN101937413A (zh) 一种i2c总线的通信方法
US20120096195A1 (en) Data transfer device and data transfer method
CN101447988A (zh) 一种基于fpga的千兆数据通信卡
CN110059030A (zh) 一种基于uart串联环路网络的数据传输系统及方法
CN102043750B (zh) 一种微处理器总线结构及微处理器
CN103995786B (zh) 高速缓存一致性消息的传输方法和装置
CN1234550B (zh) 一种输入/输出总线系统

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