CN111352657B - FPGA高速高效流水读取x86数据的方法 - Google Patents

FPGA高速高效流水读取x86数据的方法 Download PDF

Info

Publication number
CN111352657B
CN111352657B CN201811573745.1A CN201811573745A CN111352657B CN 111352657 B CN111352657 B CN 111352657B CN 201811573745 A CN201811573745 A CN 201811573745A CN 111352657 B CN111352657 B CN 111352657B
Authority
CN
China
Prior art keywords
data
message queue
request
sequence number
message
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
CN201811573745.1A
Other languages
English (en)
Other versions
CN111352657A (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.)
Shanghai Dusen Electronic Technology Co ltd
Original Assignee
Shanghai Dusen Electronic Technology Co ltd
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 Shanghai Dusen Electronic Technology Co ltd filed Critical Shanghai Dusen Electronic Technology Co ltd
Priority to CN201811573745.1A priority Critical patent/CN111352657B/zh
Publication of CN111352657A publication Critical patent/CN111352657A/zh
Application granted granted Critical
Publication of CN111352657B publication Critical patent/CN111352657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及数字信息的传输领域,具体为一种高速高效流水读取x86数据的方法。①开设队列;②消息队列A工作;③消息队列B工作;④消息队列C工作;⑤消息队列D工作;⑥状态表E工作;⑦数据缓存F工作;⑧读请求队列G工作。本发明流水作业,实时处理,传输效率高,甄别性强。

Description

FPGA高速高效流水读取x86数据的方法
技术领域
本发明涉及数字信息的传输领域,具体为一种高速高效流水读取x86数据的方法。
背景技术
X86系统具有很高的性能,一般使用sata或以太网高速接口和外部设备进行数据交换。随着用户的高速体验需要,和外部设备进行交互的速率需要更进一步的提升,就要用到PCIE、rapidIO等超高速接口。
FPGA是一种并行执行器件,具有很高的数据处理性能和数据传输性能,可以起到很好的高速接口适配作用,作为X86核心cpu和外部设备高速数据调度中心和预处理中心。
在PCIE和rapidIO中一种非常常用的数据传输模式,是FPGA或外部设备通过读请求访问X86 cpu的内存空间,然后X86内存以dma的方式返回申请读取的数据。但是由于X86系统的复杂性,对读请求的个数和读请求的时间间隔有一定的限制,并且返回的数据包的序号可能是颠倒乱序的,就需要FPGA控制好读请求的时序要求,并顺序排好数据包的顺序。
通过PCIE接口向x86 cpu的内存发起读数据请求,但是可能返回任意乱序的数据包,一般来说,读申请的序号总是既定的连续的,比如从0~31,然后循环往复。PCIE或rapidIO协议中规定这个序号最多是从0~255。但是X86系统为了追求dma处理,返回的得数据包的次序很可能是0、1、5、2、3、4、7、6……,并且数据包也不是等时间间隔的返回。
目前的处理方法是:先申请若干次读请求,然后停下来排序这些返回的数据包,发送完这些数据包,然后再申请接下去若干次读请求。
这种技术的瓶颈在于对返回数据包的时间点和包顺序的不确定性导致了重新排序的困难和效率。一种处理方法是增加每个读请求之间的时间间隔,保证返回的包按正常顺序,但是这样效率比较低。还有一种处理方法是一次性做少量的读请求,然后利用多组缓存,每个缓存存一个对应次序的包,然后判断当所有的缓存里都有数据后,依照固有次序读取这多组缓存,从而达到排序少量乱序包的作用,然后再发下一组少量的读请求,重复这样的过程,但是这样不是流水工作,效率仍旧没有达到最佳。
发明内容
为了克服现有技术的缺陷,提供一种流水作业、实时处理、传输效率高、甄别性强的数据传输方法,本发明公开了一种FPGA高速高效流水读取x86数据的方法。
本发明通过如下技术方案达到发明目的:
一种FPGA高速高效流水读取x86数据的方法,其特征是:按如下步骤依次实施:
① 开设队列:开设四组消息队列、一个状态表E、一个数据缓存F和一个可调节频率的读请求队列G,四组消息队列分别为消息队列A、消息队列B、消息队列C和消息队列D,实现高速高效的流水读数据系统;
② 消息队列A工作:消息队列A维护读请求的序号信息、隶属信息以及其他信息,消息队列A支持不连续的序号信息,只要的序号信息是符合一定排序的即可,比如:0、1、3、7、8、11……,隶属信息即数据包属于哪个转发通道;
③ 消息队列B工作:消息队列B维护非读请求时FPGA向x86 cpu所提交的请求序号(比如2、4、5、6、9、10、12……),消息队列B和消息队列A的并集即为一个连续无跳号的非负整数数列0、1、2、3、4、5、6、7、8、9、19、11、12……,这些请求包括message、doorbell、中断、write_response、write request等各种占用请求包序号的非读请求;
④ 消息队列C工作:消息队列C维护从x86 cpu返回的数据包的序号,非数据包类型的返回序号不进入消息队列C,因此将消息队列C和消息队列A这两个消息队列视为两个集合,则这两个集合所包括的元素内容保持一致而顺序不一定相同;
⑤ 消息队列D工作:消息队列D维护读走已经排好序的部分数据,提供一个状态反馈,如果后级的传输通道不能及时的发送走这些已经排好序的数据,则状态级别被提升,使得读请求暂停发送,这样自动的控制了流速,防止数据溢出;
⑥ 状态表E工作:状态表E维护返回数据包的次序,状态表E的容量根据请求包序号的最大值定制,设请求包序号从0~N循环,请求包序号的最大值为N,则状态表E的容量为N+1,例如:请求包序号是从0~31循环,则状态表E就有32个条目,如果需要达到协议规定的上限即请求包序号是从0~255循环,则可以建立一个256条目的状态表E,状态表E每个条目的状态表示从x86 cpu发给fpga相应序号的数据包是否已经被fpga所拿到,由于状态表E的内容是经过排序的有序条目,只要对状态表E的各个条目从上到下依次按状态处理,就可以实现包的重排序,处理过的状态条目被清空,以腾出空间来流水处理后续的数据包;
⑦ 数据缓存F工作:数据缓存F维护数据,数据缓存F的容量根据请求包序号的最大值定制和每个请求包的大小定制,设请求包序号从0~N循环,请求包序号的最大值为N,每个请求包的大小为Mbyte,则数据缓存F的容量为M(N+1)byte,根据收到的请求包序号,将数据填写到数据缓存F内相应的地址,根据状态表E,顺序读走数据缓存F中的数据包,就完成了自动排序的功能,同时腾出空间以接受新的请求包序号状态和数据包;
⑧ 读请求队列G工作:读请求队列G的请求速率受到四个消息队列A、B、C和D的控制,当消息队列A、B、C中积累的消息无法被状态表E提取时,说明序号中有间断,也就是读请求返回的数据包在PCIE或rapidIO通路中有延迟,还没有给到fpga,此时x86 CPU作业忙,这时读请求暂停;当消息队列D有反馈给出时,说明数据转移通道的出口速率小于PCIE或rapidIO全速搬运数据的速率,就是通常所说的外部设备总线速率小于内部总线速率,这时候读请求也相应暂停;当四个消息队列都没有反馈的时候,说明系统外部出口很通畅,x86CPU工作也不紧张,以PCIE最快频率发送读请求。
所述的FPGA高速高效流水读取x86数据的方法,其特征是:
步骤②时,用消息队列A维护的读请求的序号信息按照序号大小从小至大依次排列,
步骤③时,消息队列B维护的非读请求包括PCIE消息请求、rapidIO门铃请求、rapidIO写请求和PCIE内存写请求。
目前的方式如图1所示:或者用若干个队列,或用一个数据缓存表,当一组请求的所有数据包返回完毕后,才能开始向出口模块的依次传输,然后再发下一组读请求。如果要维护PCIE或rapidIO所要要求的最多256个tid的数据包循环序号,可能需要很多队列逻辑支持。同时流水不够完全。并且一旦读请求的申请序号不连续,中间夹杂其他请求的序号,会很难分配合适的队列。
本发明提出一种使用流水的方式进行最高效率提交读请求,并且能以最高效率重新排序返回数据包的方法。优点是,可以灵活设置读请求的时序,可以实时排序PCIE或rapidIO协议要求的最大读返回数据包,可以根据需求灵活控制使用的缓存资源。这样就可以最充分的利用PCIE或rapid的传输效率。
本发明构造一种系统逻辑,能自动根据系统的状态,以最高效率的发送读请求。FPGA发送读请求、FPGA接收x86的返回数据并实时重排、实时转发已经重排好的部分数据以腾出缓存供新数据的流水作业,这三大功能合为一体。从而达到以最优效率从PCIE或rapidIO接口读取数据。
本发明使用了几个特定的额外序列来区分读请求和非读请求,集中维护状态表、缓存数据、逻辑资源的使用和以往方案各有千秋,达到了流水作业、实时处理、高效率等优良的性能,同时具备支持256个最高包序号循环,以及可以甄别和处理其他夹杂在读请求中非读请求。
附图说明
图1是现有技术的数据传输流程示意图;
图2是本发明所用场景的系统结构图;
图3是本发明所用FPGA内部系统设计结构;
图4是本发明流程中PCIE发送模块流程图;
图5是本发明流程中PCIE接收模块流程图;
图6是本发明流程中中心控制模块的流程图。
具体实施方式
以下通过具体实施例进一步说明本发明。
实施例1
一种FPGA高速高效流水读取x86数据的方法,其特征是:按如下步骤依次实施:
① 开设队列:开设四组消息队列、一个状态表E、一个数据缓存F和一个可调节频率的读请求队列G,四组消息队列分别为消息队列A、消息队列B、消息队列C和消息队列D,实现高速高效的流水读数据系统;
② 消息队列A工作:消息队列A维护读请求的序号信息、隶属信息以及其他信息,消息队列A支持不连续的序号信息,只要序号信息是符合一定排序的即可,比如按照序号大小从小至大依次排列成0、1、3、7、8、11……,隶属信息即数据包属于哪个转发通道;
③ 消息队列B工作:消息队列B维护非读请求时FPGA向x86 cpu所提交的请求序号(比如2、4、5、6、9、10、12……),消息队列B和消息队列A的并集即为一个连续无跳号的非负整数数列0、1、2、3、4、5、6、7、8、9、19、11、12……,消息队列B维护的非读请求包括PCIE消息请求、rapidIO门铃请求、rapidIO写请求和PCIE内存写请求;
④ 消息队列C工作:消息队列C维护从x86 cpu返回的数据包的序号,非数据包类型的返回序号不进入消息队列C,因此将消息队列C和消息队列A这两个消息队列视为两个集合,则这两个集合所包括的元素内容保持一致而顺序不一定相同;
⑤ 消息队列D工作:消息队列D维护读走已经排好序的部分数据,提供一个状态反馈,如果后级的传输通道不能及时的发送走这些已经排好序的数据,则状态级别被提升,使得读请求暂停发送,这样自动的控制了流速,防止数据溢出;
⑥ 状态表E工作:状态表E维护返回数据包的次序,状态表E的容量根据请求包序号的最大值定制,设请求包序号从0~N循环,请求包序号的最大值为N,则状态表E的容量为N+1,例如:请求包序号是从0~31循环,则状态表E就有32个条目,如果需要达到协议规定的上限即请求包序号是从0~255循环,则可以建立一个256条目的状态表E,状态表E每个条目的状态表示从x86 cpu发给fpga相应序号的数据包是否已经被fpga所拿到,由于状态表E的内容是经过排序的有序条目,只要对状态表E的各个条目从上到下依次按状态处理,就可以实现包的重排序,处理过的状态条目被清空,以腾出空间来流水处理后续的数据包;
⑦ 数据缓存F工作:数据缓存F维护数据,数据缓存F的容量根据请求包序号的最大值定制和每个请求包的大小定制,设请求包序号从0~N循环,请求包序号的最大值为N,每个请求包的大小为Mbyte,则数据缓存F的容量为M(N+1)byte,根据收到的请求包序号,将数据填写到数据缓存F内相应的地址,根据状态表E,顺序读走数据缓存F中的数据包,就完成了自动排序的功能,同时腾出空间以接受新的请求包序号状态和数据包;
⑧ 读请求队列G工作:读请求队列G的请求速率受到四个消息队列A、B、C和D的控制,当消息队列A、B、C中积累的消息无法被状态表E提取时,说明序号中有间断,也就是读请求返回的数据包在PCIE或rapidIO通路中有延迟,还没有给到fpga,此时x86 CPU作业忙,这时读请求暂停;当消息队列D有反馈给出时,说明数据转移通道的出口速率小于PCIE或rapidIO全速搬运数据的速率,就是通常所说的外部设备总线速率小于内部总线速率,这时候读请求也相应暂停;当四个消息队列都没有反馈的时候,说明系统外部出口很通畅,x86CPU工作也不紧张,以PCIE最快频率发送读请求。
具体来说:如果返回的数据包序号如消息队列C所示为1、3、0、7、11、8……,而消息队列B中的其他序号为2、4、5、6、9、10、12……,那么状态表E先会更新消息队列B中的条目2、4、5、6、9、10、12……,收到前两个返回的数据包后,数据缓存F先会将数据包1、3存到相应的位置,同时更新状态表E中的条目1、3,然后等待数据包0的返回,一旦收到第三个数据包0,数据缓存F先会将数据0存在最开始相应的位置,同时更新状态表E中的条目0,这样状态表E中从条目0~6已经全部毫无空缺的被更新了,就可以依次清空,同时对数据缓存F中条目0、1、3顺序做传输,而F中本该存2、4、5的地方是空的,也就不用去读取,不做处理。
这样,只要最初的序号有连续,就可以立刻做操作,比如上边提到的序号0~6被清空后,就可以处于就绪状态,准备接收第二轮的序号从0~6的各种请求,从而形成了流水作业,并且如果序号在后的数据包如果先到(如序号1、3),直接存到数据缓存F中即可,等到序号在前的包(如0)都到齐了,就可以立即传输了,做到了最高数据收集速率。
而读请求队列G的请求速率受到消息队列A、B、C、D的控制,当消息队列A、B、C中积累一定的消息无法被状态表E提取时,说明序号中有间断,也就是读请求返回的数据包在PCIE或rapidIO通路中有延迟,还没有给到fpga、说明x86 CPU忙不过来,这时读请求暂停。当消息队列D有反馈给出时,说明数据转移通道的出口速率小于PCIE或rapidIO全速搬运数据的速率,就是通常所说的外部设备总线速率小于内部总线速率,这时候读请求也会相应的暂停。如果这四个消息队列都没有反馈的时候,说明系统外部出口很通畅,x86 CPU工作也不紧张,就会以PCIE最快频率发送读请求。
本实施例所用场景的系统结构如图2所示:x86 CPU系统一般和ssd高速硬盘相连,但也可能和其他专用高速外设相连。比如多路千兆网或光纤的数据分发。本系统最大的利用了PCIE或rapidIO的传输能力,使得x86核心架构能驱动多个高速的外部设备,比如高清视频记录仪,DSP高速处理核心。本实施例实际测量时,可以支持4路千兆以太网的数据收发,每路以太网使用率高达98%,也就是每路900Mbit/sec。
本实施例所用FPGA内部系统设计结构如图3所示:本实施例分为3个主要个部分,以PCIE总线为例,一个是PCIE请求模块,一个是PCIE接收模块,一个是缓存排序中心控制模块。FIFO起到队列的作用,RAM起到表的作用。在PCIE请求模块中的队列A、B,PCIE接收模块的队列C,实现了读数据请求和其他控制请求的分离和甄别。中心控制模块中的RAM E起到了整理包顺序的功能,只有前驱自然数包序号存在时,才可能对后继包序号做操作,不会产生次序的跳跃。同时只要任何一个自然序号排到了,就可以立即处理,不用等待后面的包序号,达到了最高的实时性。同时包排序和包传输同时进行,被处理过的状态就被清空,腾出状态表空间或数据缓存空间供下一循环的数据包使用,进行了流水调度,达到了尽可能少的缓存下的尽可能快的处理。如果按以往的设计,一组比如8个连续序号的包到齐,才可以进行数据向出口以太网传输,才可以开始发下一组8个读请求,效率不如本实施例高。
本实施例具体流程如图4~图6所示,其中,图4是PCIE发送模块流程图,图5是PCIE接收模块流程图,图6是中心控制模块的流程图,图6中可见中左支和右支是并行执行的。
本实施例虽然使用了几个特定的额外序列来区分读请求和非读请求,但集中维护状态表和缓存数据,逻辑资源的使用和以往方案各有千秋。但是达到了流水作业,实时处理,最高效率等优良的性能。同时具备支持256个最高包序号循环,以及可以甄别和处理其他夹杂在读请求中非读请求。

Claims (2)

1.一种FPGA高速高效流水读取x86数据的方法,其特征是:按如下步骤依次实施:
①开设队列:开设四组消息队列、一个状态表E、一个数据缓存F和一个可调节频率的读请求队列G,四组消息队列分别为消息队列A、消息队列B、消息队列C和消息队列D;
②消息队列A工作:消息队列A维护读请求的序号信息和读请求的隶属信息;
③消息队列B工作:消息队列B维护非读请求时FPGA向x86 cpu所提交的请求序号,消息队列B和消息队列A的并集即为一个连续无跳号的非负整数数列0、1、2、3、4、5、6、7、8、9、19、11、12……;
④消息队列C工作:消息队列C维护从x86 cpu返回的数据包的序号,非数据包类型的返回序号不进入消息队列C,因此将消息队列C和消息队列A这两个消息队列视为两个集合,则这两个集合所包括的元素内容保持一致;
⑤消息队列D工作:消息队列D维护读走已经排好序的部分数据,提供一个状态反馈,如果后级的传输通道不能及时的发送走这些已经排好序的数据,则状态级别被提升,使得读请求暂停发送;
⑥状态表E工作:状态表E维护返回数据包的次序,状态表E的容量根据请求包序号的最大值定制,设请求包序号从0~N循环,请求包序号的最大值为N,则状态表E的容量为N+1,状态表E每个条目的状态表示从x86 cpu发给fpga相应序号的数据包是否已经被fpga所拿到,由于状态表E的内容是经过排序的有序条目,只要对状态表E的各个条目从上到下依次按状态处理,就可以实现包的重排序,处理过的状态条目被清空,以腾出空间来流水处理后续的数据包;
⑦数据缓存F工作:数据缓存F维护数据,数据缓存F的容量根据请求包序号的最大值定制和每个请求包的大小定制,设请求包序号从0~N循环,请求包序号的最大值为N,每个请求包的大小为Mbyte,则数据缓存F的容量为M(N+1)byte,根据收到的请求包序号,将数据填写到数据缓存F内相应的地址,根据状态表E,顺序读走数据缓存F中的数据包,就完成了自动排序的功能,同时腾出空间以接受新的请求包序号状态和数据包;
⑧读请求队列G工作:读请求队列G的请求速率受到四个消息队列A、B、C和D的控制,当消息队列A、B、C中积累的消息无法被状态表E提取时,说明序号中有间断,也就是读请求返回的数据包在PCIE或rapidIO通路中有延迟,还没有给到fpga,此时x86 CPU作业忙,这时读请求暂停;当消息队列D有反馈给出时,说明数据转移通道的出口速率小于PCIE或rapidIO全速搬运数据的速率,就是通常所说的外部设备总线速率小于内部总线速率,这时候读请求也相应暂停;当四个消息队列都没有反馈的时候,说明系统外部出口很通畅,x86 CPU工作也不紧张,以PCIE最快频率发送读请求。
2.如权利要求1所述的FPGA高速高效流水读取x86数据的方法,其特征是:
步骤②时,用消息队列A维护的读请求的序号信息按照序号大小从小至大依次排列,
步骤③时,消息队列B维护的非读请求包括PCIE消息请求、rapidIO门铃请求、rapidIO写请求和PCIE内存写请求。
CN201811573745.1A 2018-12-21 2018-12-21 FPGA高速高效流水读取x86数据的方法 Active CN111352657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811573745.1A CN111352657B (zh) 2018-12-21 2018-12-21 FPGA高速高效流水读取x86数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811573745.1A CN111352657B (zh) 2018-12-21 2018-12-21 FPGA高速高效流水读取x86数据的方法

Publications (2)

Publication Number Publication Date
CN111352657A CN111352657A (zh) 2020-06-30
CN111352657B true CN111352657B (zh) 2023-04-25

Family

ID=71195174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811573745.1A Active CN111352657B (zh) 2018-12-21 2018-12-21 FPGA高速高效流水读取x86数据的方法

Country Status (1)

Country Link
CN (1) CN111352657B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112000596B (zh) * 2020-07-27 2022-03-29 瑞芯微电子股份有限公司 一种消息信号中断处理的方法和装置
CN112328520B (zh) * 2020-09-30 2022-02-11 郑州信大捷安信息技术股份有限公司 一种pcie设备、基于pcie设备的数据传输方法和系统
CN117675720B (zh) * 2024-01-31 2024-05-31 井芯微电子技术(天津)有限公司 消息报文传输方法、装置、电子设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471264A (zh) * 2002-07-27 2004-01-28 华为技术有限公司 基于动态包传输的动态随机存储器队列调度方法
CN101246460A (zh) * 2008-03-10 2008-08-20 华为技术有限公司 缓存数据写入系统及方法和缓存数据读取系统及方法
CN101656658A (zh) * 2008-08-21 2010-02-24 中兴通讯股份有限公司 一种提高队列管理中出队效率的方法和装置
CN102609378A (zh) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN103631624A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
CN103838513A (zh) * 2012-11-22 2014-06-04 深圳市中兴微电子技术有限公司 内存读写的动态控制方法及装置
CN107256194A (zh) * 2017-06-01 2017-10-17 上海都森电子科技有限公司 数据传输电路及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471264A (zh) * 2002-07-27 2004-01-28 华为技术有限公司 基于动态包传输的动态随机存储器队列调度方法
CN101246460A (zh) * 2008-03-10 2008-08-20 华为技术有限公司 缓存数据写入系统及方法和缓存数据读取系统及方法
CN101656658A (zh) * 2008-08-21 2010-02-24 中兴通讯股份有限公司 一种提高队列管理中出队效率的方法和装置
CN102609378A (zh) * 2012-01-18 2012-07-25 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
CN103838513A (zh) * 2012-11-22 2014-06-04 深圳市中兴微电子技术有限公司 内存读写的动态控制方法及装置
CN103631624A (zh) * 2013-11-29 2014-03-12 华为技术有限公司 读写请求的处理方法和装置
CN107256194A (zh) * 2017-06-01 2017-10-17 上海都森电子科技有限公司 数据传输电路及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A Embedded Real-Time Polymorphic Computing Platform Architecture;Yi Wu等;《2013 International Conference on Mechatronic Sciences, Electric Engineering and Computer (MEC)》;第2326-2330页 *
B.Gonçalves等.ATCA Advanced Control and Data acquisition systems for fusion experiments.《 IEEE Transactions on Nuclear Science 》.2010, *
基于FPGA平台的众核处理器验证系统研究与实现;马艳新;《中国优秀硕士学位论文全文数据库信息科技辑》;I137-8 *
基于FPGA的高速图像采集和处理技术研究与实现;陈许蒙;《中国优秀硕士学位论文全文数据库信息科技辑》(第8期);I138-1802 *

Also Published As

Publication number Publication date
CN111352657A (zh) 2020-06-30

Similar Documents

Publication Publication Date Title
US7330927B1 (en) Apparatus and methodology for a pointer manager
US5758075A (en) Multimedia communication apparatus and methods
CN111352657B (zh) FPGA高速高效流水读取x86数据的方法
US6922749B1 (en) Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US5796732A (en) Architecture for an expandable transaction-based switching bus
JP4024875B2 (ja) 異なるデータ・レートで動作するネットワーク・ポートに関して、共用メモリへのアクセスを調停する方法および装置
US8472457B2 (en) Method and apparatus for queuing variable size data packets in a communication system
US6307789B1 (en) Scratchpad memory
CN1151639C (zh) 连网系统
CN113711551A (zh) 促进网络接口控制器(nic)中的动态命令管理的系统和方法
US5187780A (en) Dual-path computer interconnect system with zone manager for packet memory
US8761204B2 (en) Packet assembly module for multi-core, multi-thread network processors
KR101665035B1 (ko) 서버 노드 상호 연결 디바이스 및 방법
JPH08265270A (ja) 転送路割り当てシステム
KR20110110088A (ko) 관리되는 네트워크를 통해 계층-2에서의 패킷 수집 및 단편화
US9602436B2 (en) Switching device
CN109684269B (zh) 一种pcie交换芯片内核及工作方法
JPH08251101A (ja) 転送路割り当てシステム
JP2002512460A (ja) デジタルデータネットワークにおけるメッセージフローを調整するシステムおよび方法
KR20140046052A (ko) 패킷 재조립 및 재배열 방법, 장치 및 시스템
CN112084136A (zh) 队列缓存管理方法、系统、存储介质、计算机设备及应用
CN110083461A (zh) 一种基于fpga的多任务处理系统及方法
US8725873B1 (en) Multi-server round robin arbiter
JPH08298536A (ja) フレーム時間監視システム
US12068972B1 (en) Shared traffic manager

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method for high-speed and efficient pipeline reading of x86 data using FPGA

Granted publication date: 20230425

Pledgee: Agricultural Bank of China Limited Shanghai Changning Branch

Pledgor: SHANGHAI DUSEN ELECTRONIC TECHNOLOGY CO.,LTD.

Registration number: Y2024980030128