CN101901199B - 一种数据透明传输的方法及系统 - Google Patents

一种数据透明传输的方法及系统 Download PDF

Info

Publication number
CN101901199B
CN101901199B CN201010245507.5A CN201010245507A CN101901199B CN 101901199 B CN101901199 B CN 101901199B CN 201010245507 A CN201010245507 A CN 201010245507A CN 101901199 B CN101901199 B CN 101901199B
Authority
CN
China
Prior art keywords
external interface
data
dma
storing sub
transmission
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
CN201010245507.5A
Other languages
English (en)
Other versions
CN101901199A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201010245507.5A priority Critical patent/CN101901199B/zh
Publication of CN101901199A publication Critical patent/CN101901199A/zh
Priority to PCT/CN2011/074495 priority patent/WO2012013080A1/zh
Application granted granted Critical
Publication of CN101901199B publication Critical patent/CN101901199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

本发明提供了一种数据透明传输的方法及系统,该系统包括处理器、存储器和逻辑模块,其中:所述存储器,包括接收存储单元和发送存储单元;所述逻辑模块,与外部接口相连,用以接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;以及查询所述发送数据存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口;所述处理器,用以将需要发送至所述外部接口的数据存储至所述发送存储单元中;以及查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据。该系统提供了数据透明传输的功能,有效解决了嵌入式系统中接口资源不足的问题。

Description

一种数据透明传输的方法及系统
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及嵌入式系统中一种数据透明传输的方法。
背景技术
随着电信级设备向着高集成化、微型化方向的发展,在设备中一块单板上集成的功能越来越多,单板上的器件越来越多,需要的各种类型的接口数量也越来越多。
现有的嵌入式设备数据传输的方法是通过以太网、外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线、串行外设接口(SerialPeripheral Interface,简称SPI)、本地总线(Local Bus)等方式来传输不同类型的数据,如果传输数据类型的不同,需要不同的数据传输接口,如果嵌入式系统中没有足够的接口资源来传输对应接口类型的数据时,会造成数据无法传输到嵌入式设备。
发明内容
本发明提供了一种数据透明传输的方法及系统,在处理器的接口与其它各种接口(例如,以太网接口、SPI接口、SGMII(Serial Gigabit MediaIndependent Interface)接口、I2C(Inter-Integrated Circuit)接口等)之间提供一个数据透明传输的功能,在数据传输的过程中,不需要处理器的参与,有效解决了嵌入式系统中接口资源不足的问题。
为了解决上述技术问题,本发明提出一种数据透明传输的系统,包括处理器、存储器和逻辑模块,其中:
所述存储器,包括接收存储单元和发送存储单元;
所述逻辑模块,与外部接口相连,用以接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;以及查询所述发送数据存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口;
所述处理器,用以将需要发送至所述外部接口的数据存储至所述发送存储单元中;以及查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据。
进一步地,上述系统还可具有以下特点:
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
进一步地,上述系统还可具有以下特点:
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
进一步地,上述系统还可具有以下特点:
所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连;
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
进一步地,上述系统还可具有以下特点:
所述逻辑模块包括依次相连的接口处理模块、DMA模块、PCIE收发处理模块以及PCIE IP核,所述接口处理模块还与所述PCIE收发处理模块经PCIE地址数据总线相连,其中:
所述接口处理模块,用于与一个或者多个外部接口相连接,在接收到各外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA模块;产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA模块;在从所述PCIE地址数据总线接收到用以指示某一外部接口的发送地址存储子单元中有存储位置信息和数据长度信息的应答时,产生并发送控制所述处理器根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据的DMA读请求;以及在从所述PCIE地址数据总线接收到需要发送至某一外部接口的数据后,将该数据发送至对应的外部接口,产生并发送控制所述处理器将该外部接口对应的发送地址存储子单元清空的DMA写请求;
所述DMA模块,包括DMA请求队列单元和DMA命令产生单元,其中:所述DMA请求队列单元用于对接收到的DMA读写请求进行排序;所述DMA命令产生单元用于按照所述DMA请求队列单元中的DMA读写请求的排序顺序生成对应的DMA读写命令,并将所述DMA命令发送至所述PCIE收发处理器;
所述PCIE收发处理器,用以将所述DMA模块发送来的DMA读写命令发送至所述PCIE IP核;将所述PCIE IP核发送来的控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答经所述PCIE地址数据总线发送至所述接口处理模块;在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口数据并将其发送至所述PCIE IP核;以及在接收到所述PCIE IP核发送来的需要发送至某一外部接口的数据后,将其经所述PCIE地址数据总线发送至所述接口处理模块;
所述PCIE IP核,集成有物理层,数据链路层,事务层的功能,用以在接收到所述PCIE收发处理器发送来的DMA读写请求后,将其发送至所述处理器;在接收到所述处理器发送来的查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答发送至所述PCIE收发处理器;在接收到所述PCIE收发处理器发送来的某一外部接口的数据后,将发送至所述处理器;以及在接收到所述处理器发送来的需要发送至某一外部接口的数据后,将其发送至所述PCIE收发处理器。
进一步地,上述系统还可具有以下特点:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
为了解决上述技术问题,本发明还提出一种应用上述系统进行数据透明传输的方法,该系统包括处理器、以及与所述处理器相连的存储器和逻辑模块,所述存储器,包括接收存储单元和发送存储单元,该方法包括:
所述逻辑模块与外部接口相连,接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;所述处理器查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据;以及
所述处理器将需要发送至所述外部接口的数据存储至所述发送存储单元中;所述逻辑模块查询所述发送存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口。
进一步地,上述方法还可具有以下特点:
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
进一步地,上述方法还可具有以下特点:
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
进一步地,上述方法还可具有以下特点:
该系统中所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连,其中:
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
进一步地,上述方法还可具有以下特点:
所述逻辑模块包括依次相连的接口处理模块、DMA模块、PCIE收发处理器以及PCIE IP核,所述接口处理模块还与所述PCIE收发处理器经PCIE地址数据总线相连,所述DMA模块包括DMA请求队列单元和DMA命令产生单元,该方法包括:
所述接口处理模块接收一个或者多个外部接口发送来的数据,在接收到某一外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA写请求后将其加入DMA请求队列,在该DMA写请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA写命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口的数据,将获取到的数据以及所述DMA写命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA写命令,将该外部接口的数据写入该外部接口对应的接收数据存储子单元中,并将该外部接口的数据的存储位置信息和数据长度信息写入该外部接口对应的接收地址存储子单元中;
所述接口处理模块产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读命令后,将该DMA读命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA读命令,查询所述存储器中各外部接口对应的发送地址存储子单元,经所述PCIE IP核和所述PCIE收发处理器和所述PCIE地址数据总线向所述接口处理模块返回所述DMA读请求对应的应答;所述接口处理模块在接收到指示某一外部接口对应的发送地址存储子单元中有存储位置信息和数据长度信息的应答后,产生并发送控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读命令后,将该DMA读命令经PCIE IP核和所述处理器的PCIE接口发送至所述处理器,所述处理器执行该DMA读命令,根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,并将读取到的数据经所述处理器的PCIE接口、PCIE IP核、所述PCIE收发处理器以及所述PCIE地址数据总线发送至所述接口处理模块;所述接口处理模块在接收到需要发送至某一外部接口的数据后,将其发送至对应的外部接口。
进一步地,上述方法还可具有以下特点:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
本发明提供的一种数据透明传输的方法及系统,在处理器的接口与其它各种接口(例如,以太网接口、SPI接口、SGMII接口、I2C接口等)之间提供一个数据透明传输的功能,在数据传输的过程中,不需要处理器的参与,有效解决了嵌入式系统中接口资源不足的问题。
附图说明
图1是本发明实施例PCIE接口透明数据传输的系统方框图;
图2是本发明实施例发送数据存储子单元中用以指示存储位置信息的字段;
图3是本发明实施例接收数据存储子单元中用以指示存储位置信息的字段;
图4是本发明实施例逻辑模块的组成方框图;
图5是本发明实施例PCIE接口透明数据传输的方法流程图。
具体实施方式
本发明提供了一种PCIE数据透明传输的方法及系统,用以在处理器的接口和其它各种接口之间提供一个数据透明传输的功能。
下面将结合附图来详细说明本发明具体实施方案。
参见图1,该图示出了本发明实施例PCIE接口透明数据传输的系统,包括处理器、存储器和逻辑模块,其中:
所述存储器,包括接收存储单元(Rx_Mem)和发送存储单元(Tx_Mem)。
所述逻辑模块,与外部接口相连,用以接收外部接口发送来的数据,并将其存储至所述接收存储单元中;以及查询所述发送存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口。
所述处理器,用以将需要发送至外部接口的数据存储至所述发送存储单元中;以及查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据。
进一步地:
所述外部接口的数量为一个或者多个,即所述外部接口可以包括接口0、接口1、......、接口N。
所述存储器,包括与一个或者多个外部接口(接口0、接口1、......、接口N)中的每一个一一对应的接收存储子单元(Rx0_Mem、Rx1_Mem、......、RxN_Mem)和发送存储子单元(Tx0_Mem、Tx1_Mem、......、TxN_Mem)。
所述逻辑模块,在将外部接口发送来的数据存储至所述接收存储单元中时,是将接收到的接口0、接口1、......、接口N发送来的数据,分别存储在接口0、接口1、......、接口N对应的接收存储子单元Rx0_Mem、Rx1_Mem、......、RxN_Mem中,以供处理器处理;以及查询各外部接口(接口0、接口1、......、接口N)对应的发送存储子单元(Tx0_Mem、Tx1_Mem、......、TxN_Mem),在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并经对应的外部接口发送出去。
所述处理器,所述处理器主要完成对存储器中的Rx0_Mem、Rx1_Mem、......、RxN_Mem、Tx0_Mem、Tx1_Mem、......、TxN_Mem的数据处理。即,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
进一步地:
各外部接口对应的接收存储子单元(Rx0_Mem、Rx1_Mem......RxN_Mem)进一步包括接收数据存储子单元(Rx0_Data_Mem、Rx1_Data_Mem......RxN_Data_Mem)和接收地址存储子单元(Rx0_Info_Mem、Rx1_Info_Mem......RxN_Info_Mem);各外部接口对应的发送存储子单元(Tx0_Mem、Tx1_Mem......TxN_Mem)进一步包括发送数据存储子单元(Tx0_Data_Mem、Tx1_Data_Mem......TxN_Data_Mem)和发送地址存储子单元(Tx0_Info_Mem、Tx1_Info_Mem......TxN_Info_Mem);
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
其中,所述存储器中各外部接口对应的发送地址存储子单元承载的信息可以如图2所示,其中,Tx Length字段表示所述存储器中Tx0_Data_Mem、Tx1_Data_Mem、......、TxN_Data_Mem单元中存储的数据的长度;Tx StartAddress Ptr表示Tx0_Data_Mem、Tx1_Data_Mem、......、TxN_Data_Mem单元中数据的起始存储地址。
其中,所述存储器中各外部接口对应的接收地址存储子单元承载的信息可以如图3所示,其中,Rx Length字段表示所述存储器中Rx0_Data_Mem、Rx1_Data_Mem、......、RxN_Data_Mem单元中存储数据的长度;Rx StartAddress Ptr表示Rx0_Data_Mem、Rx1_Data_Mem、......、RxN_Data_Mem单元中数据的起始存储地址。
进一步地:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
随着高速外设组件互连(Peripheral Component Interconnect Express,简称PCIE)标准的不断完善,越来越多的嵌入式设备集成PCIE接口,PCIE具有速率高,电路连接简单,技术兼容性好,在通信及其他数据传输中应用越来越多,因此,下面以具有PCIE接口的处理器为例说明本发明透明传输方案:所述处理器经PCIE接口与所述逻辑模块相连。
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送DMA写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
其中,所述逻辑模块如图4所示,包括依次相连的接口处理模块、直接存储器存取(DMA)模块、PCIE收发处理器以及PCIE IP核(IntellectualProperty core),所述接口处理模块还与所述PCIE收发处理器经PCIE地址数据总线相连,其中:
接口处理模块具有对接口0收发处理、接口1收发处理、一直到接口N的数据收发处理、DMA请求的产生、PCIE地址数据总线的处理等功能;DMA模块包括DMA的请求队列和DMA命令产生模块,分别完成接口0到接口N的DMA读写请求排序和DMA的命令的生成功能;PCI Express收发处理模块主要完成DMA命令的处理、PCIE IP CORE接口数据的处理;PCIE IPCORE由逻辑芯片厂家提供,集成了物理层,数据链路层,事务层的功能。进一步地,所述PCIE收发处理器还具有数据包的拆分与合并功能,以适应所述PCIE IP核的需求。
下面进一步说明所述逻辑模块中上述各模块如何共同协作,实现本发明透明传输功能:
所述接口处理模块,用于与一个或者多个外部接口相连接,在接收到各外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA模块;产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA模块;在从所述PCIE地址数据总线接收到用以指示某一外部接口的发送地址存储子单元中有存储位置信息和数据长度信息的应答时,产生并发送控制所述处理器根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据的DMA读请求;以及在从所述PCIE地址数据总线接收到需要发送至某一外部接口的数据后,将该数据发送至对应的外部接口,产生并发送控制所述处理器将该外部接口对应的发送地址存储子单元清空的DMA写请求;
所述DMA模块,包括DMA请求队列单元和DMA命令产生单元,其中:所述DMA请求队列单元用于对接收到的DMA读写请求进行排序;所述DMA命令产生单元用于按照所述DMA请求队列单元中的DMA读写请求的排序顺序生成对应的DMA读写命令,并将所述DMA命令发送至所述PCIE收发处理器;
所述PCIE收发处理器,用以将所述DMA模块发送来的DMA读写命令发送至所述PCIE IP核;将所述PCIE IP核发送来的控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答经所述PCIE地址数据总线发送至所述接口处理模块;在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口数据并将其发送至所述PCIE IP核;以及在接收到所述PCIE IP核发送来的需要发送至某一外部接口的数据后,将其经所述PCIE地址数据总线发送至所述接口处理模块;
所述PCIE IP核,集成有物理层,数据链路层,事务层的功能,用以在接收到所述PCIE收发处理器发送来的DMA读写请求后,将其发送至所述处理器;在接收到所述处理器发送来的查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答发送至所述PCIE收发处理器;在接收到所述PCIE收发处理器发送来的某一外部接口的数据后,将发送至所述处理器;以及在接收到所述处理器发送来的需要发送至某一外部接口的数据后,将其发送至所述PCIE收发处理器。
基于所述逻辑模块上述功能,所述处理器只需要执行接收到的DMA读写命令即可。所述处理器不需要参与透明传输控制,通过对所述存储器中Rx0_Info_Mem、Rx0_Data_Mem、Tx0_Info_Mem、Tx0_Data_Mem,Rx1_Info_Mem、Rx1_Data_Mem、Tx1_Info_Mem、Tx1_Data_Mem,......,RxN_Info_Mem、RxN_Data_Mem、TxN_Info_Mem、TxN_Data_Mem数据的处理即可从存储器上读取到外部接口发送来的数据,将需要发送的数据存储在存储器上供本发明所述逻辑模块发送至对应接口。
进一步地:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
进一步地,本发明实施例数据透明传输的系统还可以包括一交换器(图中未示出),其中:
所述交换器主要是一个桥接作用,完成处理器的接口数据和逻辑模块的接口数据的转发功能,其可以将所述处理器与一个或者多个所述逻辑模块相连接,以实现接口扩展。
参见图5,该图示出了采用上述系统来执行数据透明传输的方法,包括步骤:
步骤S501:所述逻辑模块与外部接口相连,接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;
步骤S502:所述处理器查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据;
步骤S503:所述处理器将需要发送至外部接口的数据存储至所述发送存储单元中;
步骤S504:所述逻辑模块查询所述发送存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口。
上述步骤之间没有先后次序要求,可同时执行,本发明在此不做限制。例如,在逻辑模块将接收到的接口数据写入存储器时,所述处理器也可以同时将需要发送的数据写入至所述存储器。
进一步地:
进一步地,所述外部接口的数量为一个或者多个,即所述外部接口可以包括接口0、接口1、......、接口N。所述存储器,包括与一个或者多个外部接口(接口0、接口1、......、接口N)中的每一个一一对应的接收存储子单元(Rx0_Mem、Rx1_Mem、......、RxN_Mem)和发送存储子单元(Tx0_Mem、Tx1_Mem、......、TxN_Mem)。
所述逻辑模块,在将外部接口发送来的数据存储至所述接收存储单元中时,是将接收接口0、接口1、......、接口N发送来的数据,分别存储在接口0、接口1、......、接口N对应的接收存储子单元Rx0_Mem、Rx1_Mem、......、RxN_Mem中,以供处理器处理;以及查询各外部接口(接口0、接口1、......、接口N)对应的发送存储子单元(Tx0_Mem、Tx1_Mem、......、TxN_Mem),在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并经对应的外部接口发送出去。
所述处理器,所述处理器主要完成对存储器中的Rx0_Mem、Rx1_Mem、......、RxN_Mem、Tx0_Mem、Tx1_Mem、......、TxN_Mem的数据处理。即,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
进一步地:
各外部接口对应的接收存储子单元(Rx0_Mem、Rx1_Mem......RxN_Mem)进一步包括接收数据存储子单元(Rx0_Data_Mem、Rx1_Data_Mem......RxN_Data_Mem)和接收地址存储子单元(Rx0_Info_Mem、Rx1_Info_Mem......RxN_Info_Mem);各外部接口对应的发送存储子单元(Tx0_Mem、Tx1_Mem......TxN_Mem)进一步包括发送数据存储子单元(Tx0_Data_Mem、Tx1_Data_Mem......TxN_Data_Mem)和发送地址存储子单元(Tx0_Info_Mem、Tx1_Info_Mem......TxN_Info_Mem);
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
其中,各外部接口对应的发送地址存储子单元承载的信息可以如图2所示,其中,Tx Length字段表示所述存储器中Tx0_Data_Mem、Tx1_Data_Mem、......、TxN_Data_Mem单元中存储的数据的长度;Tx StartAddress Ptr表示Tx0_Data_Mem、Tx1_Data_Mem、......、TxN_Data_Mem单元中数据的起始存储地址。
其中,各外部接口对应的接收地址存储子单元承载的信息可以如图3所示,其中,Rx Length字段表示所述存储器中Rx0_Data_Mem、Rx1_Data_Mem、......、RxN_Data_Mem单元中存储数据的长度;Rx StartAddress Ptr表示Rx0_Data_Mem、Rx1_Data_Mem、......、RxN_Data_Mem单元中数据的起始存储地址。
采用上述方法,通过对存储有需要发送至外部接口的数据的存储位置信息和长度信息的发送地址存储子单元进行查询即可判断出处理器是否有需要发送至某一外部接口的数据,以及通过对存储有接收到的外部接口的数据的存储位置信息和长度信息的接收地址存储子单元进行查询即可判断出是否有某一外部接口的数据已经存储至存储器可供处理器使用了。
进一步地:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
下面以具有PCIE接口的处理器为例说明本发明透明传输方法,该系统中所述处理器至少具有一PCIE接口,所述处理器经所述PCIE接口与所述逻辑模块相连,该方法包括:
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送DMA写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
进一步地:
所述逻辑模块包括依次相连的接口处理模块、直接存储器存取(DMA)模块、PCIE收发处理器以及PCIE IP核,所述接口处理模块还与所述PCIE收发处理器经PCIE地址数据总线相连,所述DMA模块包括DMA请求队列单元和DMA命令产生单元,其中:
所述接口处理模块接收一个或者多个外部接口发送来的数据,在接收到某一外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA写请求后将其加入DMA请求队列,在该DMA写请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA写命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口的数据,将获取到的数据以及所述DMA写命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA写命令,将该外部接口的数据写入该外部接口对应的接收数据存储子单元中,并将该外部接口的数据的存储位置信息和数据长度信息写入该外部接口对应的接收地址存储子单元中;
所述接口处理模块产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读命令后,将该DMA读命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA读命令,查询所述存储器中各外部接口对应的发送地址存储子单元,经所述PCIE IP核和所述PCIE收发处理器和所述PCIE地址数据总线向所述接口处理模块返回所述DMA读请求对应的应答;所述接口处理模块在接收到指示某一外部接口对应的发送地址存储子单元中有存储位置信息和数据长度信息的应答后,产生并发送控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读命令后,将该DMA读命令经PCIE IP核和所述处理器的PCIE接口发送至所述处理器,所述处理器执行该DMA读命令,根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,并将读取到的数据经所述处理器的PCIE接口、PCIE IP核、所述PCIE收发处理器以及所述PCIE地址数据总线发送至所述接口处理模块;所述接口处理模块在接收到需要发送至某一外部接口的数据后,将其发送至对应的外部接口。
进一步地:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
进一步地,还以一交换模块将所述处理器与一个或者多个所述逻辑模块相连接,以实现接口扩展。所述交换器主要是一个桥接作用,完成处理器的接口数据和逻辑模块的接口数据的转发功能,其可以将所述处理器与一个或者多个所述逻辑模块相连接,以实现接口扩展。
采用本发明实施例上述方法,主要由所述逻辑模块承担透明传输处理,处理器只需要执行接收到的DMA读写命令即可,不需要参与透明传输控制,即,处理器通过对所述存储器中Rx0_Info_Mem、Rx0_Data_Mem、Tx0_Info_Mem、Tx0_Data_Mem,Rx1_Info_Mem、Rx1_Data_Mem、Tx1_Info_Mem、Tx1_Data_Mem,......,RxN_Info_Mem、RxN_Data_Mem、TxN_Info_Mem、TxN_Data_Mem数据的处理即可从存储器上读取到外部接口发送来的数据,将需要发送的数据存储在存储器上供本发明所述逻辑模块发送至对应接口。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种数据透明传输的系统,其特征在于,包括处理器、存储器和逻辑模块,其中:
所述存储器,包括接收存储单元和发送存储单元;
所述逻辑模块,与外部接口相连,用以接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;以及查询所述发送数据存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口;
所述处理器,用以将需要发送至所述外部接口的数据存储至所述发送存储单元中;以及查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据;
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连;
所述逻辑模块包括依次相连的接口处理模块、DMA模块、PCIE收发处理模块以及PCIE IP核,所述接口处理模块还与所述PCIE收发处理模块经PCIE地址数据总线相连,其中:
所述接口处理模块,用于与一个或者多个外部接口相连接,在接收到各外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA模块;产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA模块;在从所述PCIE地址数据总线接收到用以指示某一外部接口的发送地址存储子单元中有存储位置信息和数据长度信息的应答时,产生并发送控制所述处理器根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据的DMA读请求;以及在从所述PCIE地址数据总线接收到需要发送至某一外部接口的数据后,将该数据发送至对应的外部接口,产生并发送控制所述处理器将该外部接口对应的发送地址存储子单元清空的DMA写请求;
所述DMA模块,包括DMA请求队列单元和DMA命令产生单元,其中:所述DMA请求队列单元用于对接收到的DMA读写请求进行排序;所述DMA命令产生单元用于按照所述DMA请求队列单元中的DMA读写请求的排序顺序生成对应的DMA读写命令,并将所述DMA命令发送至所述PCIE收发处理器;
所述PCIE收发处理器,用以将所述DMA模块发送来的DMA读写命令发送至所述PCIE IP核;将所述PCIE IP核发送来的控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答经所述PCIE地址数据总线发送至所述接口处理模块;在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口数据并将其发送至所述PCIE IP核;以及在接收到所述PCIE IP核发送来的需要发送至某一外部接口的数据后,将其经所述PCIE地址数据总线发送至所述接口处理模块;
所述PCIE IP核,集成有物理层,数据链路层,事务层的功能,用以在接收到所述PCIE收发处理器发送来的DMA读写请求后,将其发送至所述处理器;在接收到所述处理器发送来的查询各外部接口对应的发送地址存储子单元的DMA读请求对应的应答发送至所述PCIE收发处理器;在接收到所述PCIE收发处理器发送来的某一外部接口的数据后,将发送至所述处理器;以及在接收到所述处理器发送来的需要发送至某一外部接口的数据后,将其发送至所述PCIE收发处理器。
2.如权利要求1所述系统,其特征在于:
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
3.如权利要求2所述的系统,其特征在于:
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
4.如权利要求3所述的系统,其特征在于:
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
5.如权利要求3-4中任何一项所述的系统,其特征在于:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
6.一种应用权利要求1所述的系统进行数据透明传输的方法,该系统包括处理器、以及与所述处理器相连的存储器和逻辑模块,所述存储器,包括接收存储单元和发送存储单元,该方法包括:
所述逻辑模块与外部接口相连,接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;所述处理器查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据;以及
所述处理器将需要发送至所述外部接口的数据存储至所述发送存储单元中;所述逻辑模块查询所述发送存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口;
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
该系统中所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连;
所述逻辑模块包括依次相连的接口处理模块、DMA模块、PCIE收发处理器以及PCIE IP核,所述接口处理模块还与所述PCIE收发处理器经PCIE地址数据总线相连,所述DMA模块包括DMA请求队列单元和DMA命令产生单元,该方法包括:
所述接口处理模块接收一个或者多个外部接口发送来的数据,在接收到某一外部接口的数据后,产生并发送控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA写请求后将其加入DMA请求队列,在该DMA写请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA写命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中的DMA写命令后,经所述PCIE地址数据总线获取所述接口处理模块接收到的该外部接口的数据,将获取到的数据以及所述DMA写命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA写命令,将该外部接口的数据写入该外部接口对应的接收数据存储子单元中,并将该外部接口的数据的存储位置信息和数据长度信息写入该外部接口对应的接收地址存储子单元中;
所述接口处理模块产生并发送控制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在接收到制所述处理器查询各外部接口对应的发送地址存储子单元的DMA读命令后,将该DMA读命令经所述PCIE IP核和所述处理器的PCIE接口发送至所述处理器;所述处理器执行该DMA读命令,查询所述存储器中各外部接口对应的发送地址存储子单元,经所述PCIE IP核和所述PCIE收发处理器和所述PCIE地址数据总线向所述接口处理模块返回所述DMA读请求对应的应答;所述接口处理模块在接收到指示某一外部接口对应的发送地址存储子单元中有存储位置信息和数据长度信息的应答后,产生并发送控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读请求至所述DMA请求队列单元;所述DMA请求队列单元接收到该DMA读请求后将其加入DMA请求队列,在该DMA读请求出队时将其发送至所述DMA命令产生单元,由所述DMA命令产生单元产生相应的DMA读命令后发送至所述PCIE收发处理器;所述PCIE收发处理器在控制所述处理器根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中获取数据的DMA读命令后,将该DMA读命令经PCIE IP核和所述处理器的PCIE接口发送至所述处理器,所述处理器执行该DMA读命令,根据该存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,并将读取到的数据经所述处理器的PCIE接口、PCIE IP核、所述PCIE收发处理器以及所述PCIE地址数据总线发送至所述接口处理模块;所述接口处理模块在接收到需要发送至某一外部接口的数据后,将其发送至对应的外部接口。
7.如权利要求6所述的方法,其特征在于:
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
8.如权利要求7所述的方法,其特征在于:
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
9.如权利要求8所述的方法,其特征在于,
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
10.如权利要求8-9所述的方法,其特征在于:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
CN201010245507.5A 2010-07-30 2010-07-30 一种数据透明传输的方法及系统 Active CN101901199B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201010245507.5A CN101901199B (zh) 2010-07-30 2010-07-30 一种数据透明传输的方法及系统
PCT/CN2011/074495 WO2012013080A1 (zh) 2010-07-30 2011-05-23 一种数据透明传输的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010245507.5A CN101901199B (zh) 2010-07-30 2010-07-30 一种数据透明传输的方法及系统

Publications (2)

Publication Number Publication Date
CN101901199A CN101901199A (zh) 2010-12-01
CN101901199B true CN101901199B (zh) 2015-04-01

Family

ID=43226744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010245507.5A Active CN101901199B (zh) 2010-07-30 2010-07-30 一种数据透明传输的方法及系统

Country Status (2)

Country Link
CN (1) CN101901199B (zh)
WO (1) WO2012013080A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901199B (zh) * 2010-07-30 2015-04-01 中兴通讯股份有限公司 一种数据透明传输的方法及系统
RU2633126C2 (ru) * 2013-02-28 2017-10-11 Интел Корпорейшн Усиление механизма перечисления и/или конфигурации одного протокола межсоединений для другого протокола межсоединений
CN104580009B (zh) * 2015-01-28 2018-08-21 华为技术有限公司 芯片转发数据的方法及装置
CN104765701B (zh) * 2015-03-24 2018-05-29 华为技术有限公司 数据访问方法及设备
CN109992543A (zh) * 2019-04-02 2019-07-09 山东超越数控电子股份有限公司 一种基于zyzq-7000的pci-e数据高效传输方法
CN112328520B (zh) * 2020-09-30 2022-02-11 郑州信大捷安信息技术股份有限公司 一种pcie设备、基于pcie设备的数据传输方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671443A (en) * 1995-02-21 1997-09-23 International Business Machines Corporation Direct memory access acceleration device for use in a data processing system
CN1851678A (zh) * 2006-06-08 2006-10-25 杭州华为三康技术有限公司 一种在内存和数字信号处理器之间传送数据的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101222430B (zh) * 2008-01-24 2011-01-19 中兴通讯股份有限公司 一种高速多协议数据传输系统和方法
CN101901199B (zh) * 2010-07-30 2015-04-01 中兴通讯股份有限公司 一种数据透明传输的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5671443A (en) * 1995-02-21 1997-09-23 International Business Machines Corporation Direct memory access acceleration device for use in a data processing system
CN1851678A (zh) * 2006-06-08 2006-10-25 杭州华为三康技术有限公司 一种在内存和数字信号处理器之间传送数据的方法

Also Published As

Publication number Publication date
CN101901199A (zh) 2010-12-01
WO2012013080A1 (zh) 2012-02-02

Similar Documents

Publication Publication Date Title
CN101901199B (zh) 一种数据透明传输的方法及系统
CN109033004B (zh) 一种基于Aurora总线的双机内存数据共享系统
US20040151170A1 (en) Management of received data within host device using linked lists
CN102420877B (zh) 一种多模式高速智能异步串口通信模块及实现方法
CN102480426B (zh) 基于pcie交换总线的通信方法及一种pcie交换系统
CN113391589B (zh) 一种无人机异构设备统一接入与协议转换板卡
CN100421424C (zh) 一种基于PCI Express总线的集中式路由器
US7596148B2 (en) Receiving data from virtual channels
CN103218337A (zh) 基于wishbone总线实现主与主、从与从通信的片上系统和方法
CN101110779B (zh) 一种经快速输入输出端口到以太网端口数据传输的方法
CN111625376B (zh) 通过代理进行队列通信的方法与消息系统
US10178018B2 (en) Transmission and reception devices
CN109165185B (zh) 一种基于FPGA的PCIe信号的转换方法及装置
CN101494616B (zh) 通信协议中分组长度的灵活性的实现
CN101122894A (zh) 一种异步串行通讯控制器件
JP5731108B2 (ja) 中継手段、中継システム、中継方法およびプログラム
CN101447988A (zh) 一种基于fpga的千兆数据通信卡
US7313146B2 (en) Transparent data format within host device supporting differing transaction types
CN109992550B (zh) 基于cpci总线的多类型信息处理装置及方法
KR101794200B1 (ko) 리눅스 기반 패킷 프로세서를 이용하는 분산 패킷 전송 네트워크의 프로토콜 패킷 송수신 방법
CN110765044B (zh) 数据包传输装置及系统
CN101441661A (zh) 一种在多个嵌入式系统之间共享文件资源的系统及方法
CN104850517A (zh) 一种dma传输报文数据的方法及装置
CN105635003B (zh) 一种基于dma的基带信号处理系统
CN108664333B (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