CN101901199A - 一种数据透明传输的方法及系统 - Google Patents
一种数据透明传输的方法及系统 Download PDFInfo
- Publication number
- CN101901199A CN101901199A CN2010102455075A CN201010245507A CN101901199A CN 101901199 A CN101901199 A CN 101901199A CN 2010102455075 A CN2010102455075 A CN 2010102455075A CN 201010245507 A CN201010245507 A CN 201010245507A CN 101901199 A CN101901199 A CN 101901199A
- Authority
- CN
- China
- Prior art keywords
- external interface
- data
- units
- storing sub
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
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 (12)
1.一种数据透明传输的系统,其特征在于,包括处理器、存储器和逻辑模块,其中:
所述存储器,包括接收存储单元和发送存储单元;
所述逻辑模块,与外部接口相连,用以接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;以及查询所述发送数据存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口;
所述处理器,用以将需要发送至所述外部接口的数据存储至所述发送存储单元中;以及查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据。
2.如权利要求1所述系统,其特征在于:
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
3.如权利要求2所述的系统,其特征在于:
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
4.如权利要求3所述的系统,其特征在于:
所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连;
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
5.如权利要求4所述的系统,其特征在于:
所述逻辑模块包括依次相连的接口处理模块、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收发处理器。
6.如权利要求3-5中任何一项所述的系统,其特征在于:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
7.一种应用权利要求1所述的系统进行数据透明传输的方法,该系统包括处理器、以及与所述处理器相连的存储器和逻辑模块,所述存储器,包括接收存储单元和发送存储单元,该方法包括:
所述逻辑模块与外部接口相连,接收所述外部接口发送来的数据,并将其存储至所述接收存储单元中;所述处理器查询所述接收存储单元,在查询到所述接收存储单元中有数据需要接收,则获取所述需要接收的数据;以及
所述处理器将需要发送至所述外部接口的数据存储至所述发送存储单元中;所述逻辑模块查询所述发送存储单元,在查询到所述发送存储单元中有数据需要发送时,获取所述需要发送的数据并将其发送至所述外部接口。
8.如权利要求7所述的方法,其特征在于:
所述接收存储单元中包括与每一外部接口一一对应的接收存储子单元,所述发送存储单元中包括与每一个外部接口一一对应的发送存储子单元;所述外部接口的数量为一个或者多个;
所述逻辑模块将外部接口发送来的数据存储至所述接收存储单元中时,是将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中;所述逻辑模块查询所述发送存储单元时,是分别查询各外部接口对应的发送存储子单元,在查询到某一外部接口对应的发送存储子单元中有数据需要发送时,获取所述数据并将其发送至该外部接口;
所述处理器,在将需要发送至所述外部接口的数据存储至所述发送存储单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中;所述处理器在查询所述接收存储单元时,是分别查询各外部接口对应的接收存储子单元,在查询到某一外部接口对应的接收存储子单元中有数据需要接收,则获取所述数据。
9.如权利要求8所述的方法,其特征在于:
所述接收存储子单元包括接收数据存储子单元和接收地址存储子单元;所述发送存储子单元包括发送数据存储子单元和发送地址存储子单元;
所述逻辑模块,在将从各外部接口接收到的数据分别存储在该各外部接口对应的接收存储子单元中时,是将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中,以及还将该各外部接口的数据的存储位置信息和数据长度信息分别存储在该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询各外部接口对应的发送存储子单元时,是分别查询该各外部接口对应的发送地址存储子单元,如果查询到为某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元获取数据,然后将获取到的数据发送至该外部接口,以及还将该外部接口对应的发送地址存储子单元清空;
所述处理器,在分别查询该各外部接口对应的接收存储子单元时,是分别查询该各外部接口对应的接收地址存储子单元,如果查询到某一外部接口对应的接收地址存储子单元中包括存储位置信息和数据长度信息,则根据所述存储位置信息和数据长度信息从该外部接口对应的接收数据存储子单元中读取数据,以及还将该外部接口对应的接收地址存储子单元清空;
所述处理器,在将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送存储子单元中时,是将需要发送至各外部接口的数据分别存储至该各外部接口对应的发送数据存储子单元中,以及还将需要发送至该各外部接口的数据的存储位置信息和数据长度信息分别写入该各外部接口对应的发送地址存储子单元中。
10.如权利要求9所述的方法,其特征在于,该系统中所述处理器至少具有一高速外设组件互连(PCIE)接口,所述处理器经所述PCIE接口与所述逻辑模块相连,其中:
所述逻辑模块,在将该各外部接口的数据分别存储在该各外部接口对应的接收数据存储子单元中时,是向所述处理器发送直接存储器存取(DMA)写请求和该各外部接口的数据,通过DMA写请求控制所述处理器将该各外部接口的数据分别写入该各外部接口对应的接收数据存储子单元中,以及将该各外部接口的数据的长度和存储位置信息写入该各外部接口对应的接收地址存储子单元中;
所述逻辑模块,在分别查询该各外部接口对应的发送地址存储子单元时,是向所述处理器发送DMA读写请求,先通过DMA读请求控制所述处理器查询该各外部接口对应的发送地址存储子单元,并在查询到某一外部接口对应的发送地址存储子单元中包含存储位置信息和数据长度信息时,根据所述存储位置信息和数据长度信息从该外部接口对应的发送数据存储子单元中读取数据,然后通过DMA写请求控制所述处理器清空该外部接口对应的接收地址存储子单元。
11.如权利要求10所述的方法,其特征在于,所述逻辑模块包括依次相连的接口处理模块、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地址数据总线发送至所述接口处理模块;所述接口处理模块在接收到需要发送至某一外部接口的数据后,将其发送至对应的外部接口。
12.如权利要求9-11所述的方法,其特征在于:
所述逻辑模块,在接收到某一外部接口的数据后,先查询该外部接口对应的接收地址存储子单元,如果其为空,才将该外部接口的数据存储至该外部接口对应的接收数据存储子单元中;
所述处理器,在需要发送数据至某一外部接口时,先查询该外部接口对应的发送地址存储子单元,如果其为空,才将需要发送至该外部接口的数据存储至该外部接口对应的发送数据存储子单元中。
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 true CN101901199A (zh) | 2010-12-01 |
CN101901199B 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) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012013080A1 (zh) * | 2010-07-30 | 2012-02-02 | 中兴通讯股份有限公司 | 一种数据透明传输的方法及系统 |
CN104580009A (zh) * | 2015-01-28 | 2015-04-29 | 华为技术有限公司 | 芯片转发数据的方法及装置 |
CN104765701A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 数据访问方法及设备 |
CN104956347A (zh) * | 2013-02-28 | 2015-09-30 | 英特尔公司 | 将一种互连协议的枚举和/或配置机制用于不同的互连协议 |
CN109992543A (zh) * | 2019-04-02 | 2019-07-09 | 山东超越数控电子股份有限公司 | 一种基于zyzq-7000的pci-e数据高效传输方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328520B (zh) * | 2020-09-30 | 2022-02-11 | 郑州信大捷安信息技术股份有限公司 | 一种pcie设备、基于pcie设备的数据传输方法和系统 |
Citations (3)
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 | 杭州华为三康技术有限公司 | 一种在内存和数字信号处理器之间传送数据的方法 |
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901199B (zh) * | 2010-07-30 | 2015-04-01 | 中兴通讯股份有限公司 | 一种数据透明传输的方法及系统 |
-
2010
- 2010-07-30 CN CN201010245507.5A patent/CN101901199B/zh active Active
-
2011
- 2011-05-23 WO PCT/CN2011/074495 patent/WO2012013080A1/zh active Application Filing
Patent Citations (3)
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 | 杭州华为三康技术有限公司 | 一种在内存和数字信号处理器之间传送数据的方法 |
CN101222430A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种高速多协议数据传输系统和方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012013080A1 (zh) * | 2010-07-30 | 2012-02-02 | 中兴通讯股份有限公司 | 一种数据透明传输的方法及系统 |
CN104956347A (zh) * | 2013-02-28 | 2015-09-30 | 英特尔公司 | 将一种互连协议的枚举和/或配置机制用于不同的互连协议 |
CN104956347B (zh) * | 2013-02-28 | 2018-05-22 | 英特尔公司 | 将一种互连协议的枚举和/或配置机制用于不同的互连协议 |
CN104580009A (zh) * | 2015-01-28 | 2015-04-29 | 华为技术有限公司 | 芯片转发数据的方法及装置 |
CN104580009B (zh) * | 2015-01-28 | 2018-08-21 | 华为技术有限公司 | 芯片转发数据的方法及装置 |
CN104765701A (zh) * | 2015-03-24 | 2015-07-08 | 华为技术有限公司 | 数据访问方法及设备 |
CN104765701B (zh) * | 2015-03-24 | 2018-05-29 | 华为技术有限公司 | 数据访问方法及设备 |
CN109992543A (zh) * | 2019-04-02 | 2019-07-09 | 山东超越数控电子股份有限公司 | 一种基于zyzq-7000的pci-e数据高效传输方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012013080A1 (zh) | 2012-02-02 |
CN101901199B (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102648455B (zh) | 服务器和流控制程序 | |
CN101901199B (zh) | 一种数据透明传输的方法及系统 | |
CN113391589B (zh) | 一种无人机异构设备统一接入与协议转换板卡 | |
CN102480426B (zh) | 基于pcie交换总线的通信方法及一种pcie交换系统 | |
CN102420877B (zh) | 一种多模式高速智能异步串口通信模块及实现方法 | |
CN103218337A (zh) | 基于wishbone总线实现主与主、从与从通信的片上系统和方法 | |
TW201832089A (zh) | 多點分支串列匯流排上的多埠多邊頻帶gpio合併技術 | |
CN111723030B (zh) | 存储器系统及存储器系统的控制方法 | |
CN102567278A (zh) | 一种片上多核数据传输方法和装置 | |
CN111625376B (zh) | 通过代理进行队列通信的方法与消息系统 | |
CN100456735C (zh) | 控制缓冲存储器分配与数据流的收发网络控制器及方法 | |
CN105356988A (zh) | 一种基于PCIe的全双工DMA传输方法 | |
US20080313365A1 (en) | Controlling write transactions between initiators and recipients via interconnect logic | |
CN103902472A (zh) | 基于内存芯片互连的内存访问处理方法、内存芯片及系统 | |
CN103106177B (zh) | 多核网络处理器的片上互联结构及其方法 | |
CN102694712B (zh) | 网络系统及网络至网络桥接器 | |
CN109992550B (zh) | 基于cpci总线的多类型信息处理装置及方法 | |
CN101826998B (zh) | 实现交换网片全交换功能测试的方法及交换网片 | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
US7313146B2 (en) | Transparent data format within host device supporting differing transaction types | |
CN108052478B (zh) | 一种基于fpga的桥接装置 | |
CN102147784B (zh) | 塔康接收系统与高速智能统一总线接口方法 | |
KR101794200B1 (ko) | 리눅스 기반 패킷 프로세서를 이용하는 분산 패킷 전송 네트워크의 프로토콜 패킷 송수신 방법 | |
CN101441661A (zh) | 一种在多个嵌入式系统之间共享文件资源的系统及方法 | |
CN101334763B (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 |