CN109408428A - 直接内存存取的控制方法、装置及物理层加速卡 - Google Patents

直接内存存取的控制方法、装置及物理层加速卡 Download PDF

Info

Publication number
CN109408428A
CN109408428A CN201811270595.7A CN201811270595A CN109408428A CN 109408428 A CN109408428 A CN 109408428A CN 201811270595 A CN201811270595 A CN 201811270595A CN 109408428 A CN109408428 A CN 109408428A
Authority
CN
China
Prior art keywords
channel
queue
dma
channel queue
state
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
Application number
CN201811270595.7A
Other languages
English (en)
Other versions
CN109408428B (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.)
Comba Network Systems Co Ltd
Original Assignee
Comba Telecom Technology Guangzhou Ltd
Comba Telecom Systems China Ltd
Comba Telecom Systems Guangzhou Co Ltd
Tianjin Comba Telecom Systems 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 Comba Telecom Technology Guangzhou Ltd, Comba Telecom Systems China Ltd, Comba Telecom Systems Guangzhou Co Ltd, Tianjin Comba Telecom Systems Co Ltd filed Critical Comba Telecom Technology Guangzhou Ltd
Priority to CN201811270595.7A priority Critical patent/CN109408428B/zh
Publication of CN109408428A publication Critical patent/CN109408428A/zh
Application granted granted Critical
Publication of CN109408428B publication Critical patent/CN109408428B/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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control

Landscapes

  • Engineering & Computer Science (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

本发明涉及一种直接内存存取的控制方法、装置及物理层加速卡,其中,直接内存存取的控制方法包括以下步骤:获取通道队列的业务包请求;检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。本发明实施例能够实现物理层加速的DMA过程,提高数据吞吐量和数据传输效率。

Description

直接内存存取的控制方法、装置及物理层加速卡
技术领域
本发明涉及移动通信传输技术领域,特别是涉及一种直接内存存取的控制方法、装置及物理层加速卡。
背景技术
随着移动互联网的快速发展,特别5G(5th-Generation,第五代移动通信技术)通信技术的发展,要求具有深度覆盖、高安全性、超高可靠性、超低时延、极致数据速率和极致容量等通信特性。而极致1数据速率和超低时延的通信特性,对物理层处理提出了更高的要求,采用常规的CPU(Central Processing Unit,中央处理器)很难满足物理层的处理需求。
在实现过程中,发明人发现传统技术中至少存在如下问题:传统的CPU对5G物理层的DMA(Direct Memory Access,直接内存存取)处理过程中,数据传输速率慢,数据吞吐量低。
发明内容
基于此,有必要针对传统的CPU对5G物理层的DMA处理过程中,数据吞吐量较低和数据传输效率低的问题,提供一种直接内存存取的控制方法、装置及物理层加速卡。
为了实现上述目的,本发明实施例提供了一种直接内存存取的控制方法,包括以下步骤:
获取通道队列的业务包请求;
检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;
若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
在其中一个实施例中,根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁的步骤包括:
根据检测到的通道队列的流控状态和DMA收发状态对通道队列进行DMA传输通道仲裁;
当通道队列的流控状态为未触发状态,或/和,DMA收发状态为无应答状态时,则确定DMA传输通道通过仲裁。
在其中一个实施例中,根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁的步骤包括:
当存在多个通道队列发送的业务包请求时,根据多个通道队列的优先级依次选取一个通道队列;
根据选取的通道队列的流控状态和DMA收发状态对选取的通道队列进行通道仲裁。
在其中一个实施例中,当存在多个通道队列发送的业务包请求时,根据多个通道队列的优先级依次选取一个通道队列;根据选取的通道队列的流控状态和DMA收发状态对选取的通道队列进行通道仲裁的步骤包括:
当选取的通道队列的DMA收发状态为无应答状态、或通道队列流控状态为未触发状态时,则确定通道队列通过仲裁,结束本轮通道仲裁;
当选取的通道队列的DMA收发状态为应答状态、或通道队列流控状态为触发状态时,确定选取的通道队列未通过仲裁,选取下一优先级的通道队列进行通道仲裁。
在其中一个实施例中,获取通道队列的业务包请求的步骤之前包括:
根据业务包请求选取相应的通道队列,并将业务包请求缓存至选取出的通道队列。
在其中一个实施例中,根据业务包请求选取相应的通道队列的步骤之后,以及将业务包请求缓存至选取出的通道队列的步骤之前包括:
确定选取的通道队列的状态为未占用状态。
在其中一个实施例中,选择通道队列相应的DMA传输通道传输业务包请求的业务包数据的步骤包括:
将业务包数据划分为各突发数据,并依据突发传输规则通过DMA传输通道依次传输各突发数据。
在其中一个实施例中,业务包请求包括业务包身份信息。
另一方面,本发明实施例还提供了一种直接内存存取的控制装置,包括:
业务包请求获取单元,用于获取通道队列的业务包请求;
检测单元,用于检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
通道仲裁单元,用于根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;
数据传输单元,用于若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
另一方面,本发明实施例还提供了一种物理层加速卡,包括处理器;处理器执行计算机程序时实现上述任一项直接内存存取的控制方法的步骤。
在其中一个实施例中,处理器为DMA控制器。
另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项直接内存存取的控制方法的步骤。
上述技术方案中的一个技术方案具有如下优点和有益效果:
在数据传输过程中,为了能够满足物理层加速的高吞吐量和低时延的DMA要求。可依据DMA通道仲裁策略,根据业务包请求对业务包数据进行传输,进而实现对数据传输的高效传输。具体的,获取通道队列的业务包请求;检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据,进而实现基于物理层加速的DMA实现过程,提高了数据吞吐量和数据传输效率。
附图说明
图1为一个实施例中直接内存存取的控制方法的应用环境示意图;
图2为一个实施例中直接内存存取的控制方法的第一流程示意图;
图3为一个实施例中通道仲裁步骤的第一流程示意图;
图4为一个实施例中通道仲裁步骤的第二流程示意图;
图5为一个实施例中直接内存存取的控制方法的第一流程示意图;
图6为一个实施例中直接内存存取的控制方法的第三流程示意图;
图7为一个实施例中直接内存存取的控制方法的业务通道管理方框示意图;
图8为一个实施例中直接内存存取的控制方法的方框示意图;
图9为一个实施例中直接内存存取的控制装置的结构示意图;
图10为一个实施例中物理层加速卡的结构示意图;
图11为一个实施例中物理层加速卡的功能方框示意图。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本申请提供的直接内存存取的控制方法,可以应用于如图1所示的应用环境中。其中,物理层加速卡102通过PCIE与服务器104进行通信;物理层加速卡102获取通道队列的业务包请求;检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。其中,物理层加速卡102包含的处理器可以是FPGA。
在一个实施例中,如图2所示,提供了一种直接内存存取方法,以该方法应用于图1中的物理层加速卡102为例进行说明,包括以下步骤:
步骤S210,获取通道队列的业务包请求。
其中,通道队列指的是缓存数据的队列,通道队列可用来存储记录业务包请求。业务包请求指的是读取业务包的请求。
具体地,物理层加速卡在进行物理层加速过程中,需要进行DMA控制时,可获取通道队列的业务包请求。例如存在8个通道队列(依次为通道队列0至通道队列7),若通道队列0缓存有业务包请求,则从通道队列0中获取相应的业务包请求;若通道队列1缓存有业务包请求,则从通道队列1中获取相应的业务包请求,以此类推。
步骤S220,检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级。
其中,流控状态指的是流量控制状态。通道队列的流控状态指的是通道队列是否触发流控状态,例如在通道队列缓存空间达到预设值时,可触发流控状态。DMA收发状态指的是DMA接收状态或DMA发送状态,需要说明的是DMA的接收和发送可并行处理,但DMA的接收和接收(或发送和发送)只可串行处理。通道优先级指的是通道队列的优先级,例如存在8个通道队列(依次为通道队列0至通道队列1),其中通道队列0的优先级高于通道队列1的优先级。
具体地,在获取到业务包请求后,检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级。例如,可根据以下检测条件的任意一种或任意组合:通道队列的流控状态DMA收发状态和通道队列优先级进行检测。
步骤S230,根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁。
具体地,可根据检测到的以下检测条件的任意一种或任意组合:通道队列的流控状态DMA收发状态和通道队列优先级,对通道队列进行通道仲裁。例如,可根据检测到的通道队列优先级对通道队列进行通道仲裁;也可根据检测到的DMA收发状态和通道队列优先级进行通道仲裁。
步骤S240,若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
其中,通道仲裁的结果为通过指的是通道仲裁成功。DMA传输通道指的是传输数据的通道;DMA传输通道可以是传输读取业务包数据的通道,也可以是传输写入业务包数据的通道。业务包数据可以是业务包的参数,业务包数据可包括业务包个数、业务包长度和业务包地址等参数。业务包数据还可以是业务包的业务功能数据,例如,业务包数据可以是Polar(极化)编码业务包、PDSCH(Physical Downlink Shared Channel,物理下行共享信道)业务包、PUSCH(Physical Uplink Shared Channel,物理上行共享信道)业务包或Polar(极化)解码业务包。
进一步的,可通过查询各通道队列是否有业务包请求,当通道队列有业务包请求时,可获取该业务包请求。可通过该业务包请求对应的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁,在通道仲裁通过时,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
在一个具体的实施例中,如图3所示,为通道仲裁步骤的第一流程示意图。根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁的步骤包括:
步骤S310,根据检测到的通道队列的流控状态和DMA收发状态对通道队列进行DMA传输通道仲裁。
具体地,可检测通道队列的流控状态和DMA收发状态,根据检测到的通道队列的流控状态和DMA收发状态对通道队列进行DMA传输通道仲裁。
步骤S320,当通道队列的流控状态为未触发状态,或/和,DMA收发状态为无应答状态时,则确定DMA传输通道通过仲裁。
其中,通道队列的流控状态为未触发状态指的时通道队列不需要进行流量控制;DMA收发状态为无应答状态指的是DMA可进行正常接收或发送数据。
具体地,当通道队列的流控状态为未触发状态或DMA收发状态为无应答状态时,则确定DMA传输通道通过仲裁,进而可通过该DMA传输通道传输业务包请求的业务包数据。在其它实施例中,当通道队列的流控状态为未触发状态和DMA收发状态为无应答状态时,则确定DMA传输通道通过仲裁,进而可通过该DMA传输通道传输业务包请求的业务包数据。
在一个具体的实施例中,如图4所示,为通道仲裁步骤的第二流程示意图。根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁的步骤包括:
步骤S410,当存在多个通道队列发送的业务包请求时,根据多个通道队列的优先级依次选取一个通道队列。
步骤S420,根据选取的通道队列的流控状态和DMA收发状态对选取的通道队列进行通道仲裁。
具体地,当多个通道队列分别缓存有业务包请求时,可根据多个通道队列的优先级(即通道优先级)依次选取一个通道队列,根据选取的通道队列的流控状态和DMA收发状态对选取的通道队列进行通道仲裁,进而到该通道队列通过通道仲裁时,可通过该DMA传输通道传输业务包请求的业务包数据。
进一步的,当存在多个通道队列发送的业务包请求时,根据多个通道队列的优先级依次选取一个通道队列;根据选取的通道队列的流控状态和DMA收发状态对选取的通道队列进行通道仲裁的步骤包括:
当选取的通道队列的DMA收发状态为无应答状态、或通道队列流控状态为未触发状态时,则确定通道队列通过仲裁,结束本轮通道仲裁。
当选取的通道队列的DMA收发状态为应答状态、或通道队列流控状态为触发状态时,确定选取的通道队列未通过仲裁,选取下一优先级的通道队列进行通道仲裁。
其中,DMA收发状态为应答状态可根据反馈的应答信息,指示DMA不能进行正常接收或发送数据。DMA通道队列的流控状态为触发状态指的时通道队列需要进行流量控制。
具体地,当选取的通道队列的DMA收发状态为无应答状态、或通道队列流控状态为未触发状态时,则确定通道队列通过仲裁,结束本轮通道仲裁,进而选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。当选取的通道队列的DMA收发状态为应答状态、或通道队列流控状态为触发状态时,确定选取的通道队列未通过仲裁,即在本轮仲裁后不处理对应该通道队列的业务包请求,选取下一优先级的通道队列进行通道仲裁。
上述实施例中,在数据传输过程中,为了能够满足物理层加速的高吞吐量和低时延的DMA要求。可依据DMA通道仲裁策略,根据业务包请求对业务包数据进行传输,进而实现对数据传输的高效传输。具体的,获取通道队列的业务包请求;检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据,进而实现基于物理层加速的DMA实现过程,提高了数据吞吐量和数据传输效率。
在一个实施例中,如图5所示,提供了一种直接内存存取的控制方法,以该方法应用于图1中的物理层加速卡为例进行说明,包括以下步骤:
步骤S510,根据业务包请求选取相应的通道队列,并将业务包请求缓存至选取出的通道队列。
步骤S520,获取通道队列的业务包请求。
步骤S530,检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级。
步骤S540,根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁。
步骤S550,若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
其中,上述步骤S520、步骤S530、步骤S540和步骤S550的具体内容过程可参考上文内容,此处不再赘述。
具体地,可根据业务包请求相应的通道队列,并将业务包请求缓存至通道队列。进而可通过查询通道队列中是否缓存有业务包请求,在查询到相应的通道队列存在业务包请求时,可获取该业务包请求。可通过该业务包请求对应的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁,在通道仲裁通过时,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
在一个具体的实施例中,根据业务包请求选取相应的通道队列的步骤之后,以及将业务包请求缓存至选取出的通道队列的步骤之前包括:
确定选取的通道队列的状态为未占用状态。
其中,通道队列可用来缓存业务包请求,例如,通道队列可用来缓存业务包参数。通道队列还可用来缓存业务包数据。
具体地,将业务包请求缓存至相应的通道队列之前,可先检测通道队列的状态。在检测到通道队列为未占用状态时,可将业务包请求缓存至该通道队列;在检测到通道队列为占用状态时,可等待至该通道队列被释放后,将业务包请求缓存至该通道队列。处理器可从通道队列中获取业务包请求,并根据业务包请求,选择相应的DMA传输通道,传输对应业务包请求的业务包数据。
进一步的,检测到通道队列为空状态时,可将业务包请求缓存至该通道队列;在检测到通道队列为满状态时,可等待至该通道队列被释放为空时,将业务包请求缓存至该通道队列。
上述实施例中,在数据传输过程中,为了能够满足物理层加速的高吞吐量和低时延的DMA要求。可依据DMA仲裁策略,根据业务包请求对业务包数据进行传输,进而实现对数据传输的高效传输。实现基于物理层加速的DMA实现过程,提高了数据吞吐量和数据传输效率。
在一个实施例中,如图6所示,提供了一种直接内存存取的控制方法,以该方法应用于图1中的物理层加速卡为例进行说明,包括以下步骤:
步骤S610,获取通道队列的业务包请求。
步骤S620,检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级。
步骤S630,根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁。
步骤S640,若通道仲裁的结果为通过,将业务包数据划分为各突发数据,并依据突发传输规则通过DMA传输通道依次传输各突发数据。
其中,突发传输指的是两个设备之间进行数据传送的一种模式,也可将其称为突发模式下的数据传输。突发是指在同一行中相邻的存储单元连续进行数据传输的方式。突发数据指的是将若干个数据组成一个数据块进行传输的数据。例如,业务包数据包含100个数据单元,将10个数据组成一个数据块,则突发数据的大小为10个数据单元。其中,上述步骤S610、步骤S620和步骤S630的具体内容过程可参考上文内容,此处不再赘述。
具体地,在通道仲裁通过时,刻将业务包数据划分为各突发数据,基于突发传输规则,并通过DMA传输通道依次传输各突发数据,从而可提高了传输效率。
上述实施例中,在数据传输过程中,为了能够满足物理层加速的高吞吐量和低时延的DMA要求。可依据DMA仲裁策略,根据读业务包请求对业务包数据进行传输,进而实现对数据传输的高效传输,实现基于物理层加速的DMA实现过程,提高了数据吞吐量和数据传输效率。
在一个实施例中,业务包请求包括业务包身份信息。
其中,业务包身份信息指的是识别业务包的信息。业务包身份信息可以是业务包的地址信息。
具体地,在获取到业务包请求时,可根据业务包请求获取业务包身份信息,其中,业务包身份信息可用来指示相应的业务包数据的存储地址。根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁,通道仲裁的结果为通过,选择相应的DMA传输通道,进而通过该DMA传输通道实现数据传输的连通,实现通过选择的DMA传输通道传输对应业务包身份信息的业务包数据。
在一个实施例中,提供了一种直接内存存取的控制方法,如图7所示,为直接内存存取的控制方法的业务通道管理方框示意图。为了说明业务及通道管理的具体工作过程,将业务通道管理的实现过程划分为以下功能模块,包括通道选择管理模块和8个队列管理模块(队列管理0至队列管理7)。还包括5个业务模块(业务模块0至业务模块4)和8个通道队列(通道队列0至通道队列7),其中,队列管理模块与通道队列一一对应管理,及队列管理0对应管理通道队列0。通道选择管理模块可用来选择通道队列,完成业务模块请求及业务模块请求到对应通道队列的交换。队列管理模块可用来记录对应通道队列的状态,例如,队列空满状态和队列写入状态等。
具体地,业务通道管理的具体工作过程为:
例如,当业务模块0请求连通通道队列1时,检测通道队列1是否被占用,若没有其他业务模块在请求通道队列1,则通道选择管理模块锁定通道队列1,并拉高业务模块0的dma_rsp(DMA请求回复信号);将对应业务模块0的业务参数写入通道队列1,并将业务模块的业务包身份信息添加到通道队列1;直至业务参数写入完毕,释放通道队列1的锁定,同时拉低业务模块0的dma_rsp。若通道队列1被占用,则等到通道队列1被释放后,通道选择管理模块锁定通道队列1,并拉高业务模块0的dma_rsp。对应业务模块1至4的请求过程与上述业务模块0的请求过程类似,在此不再重复赘述。
需要说明的是,图7所示是以5个业务模块和8个通道队列对业务通道管理的具体工作过程进行说明。在其他实施例中,可增加或减少业务模块和通道队列数量,同样可实现业务通道管理的具体工作过程,故在此不再重复赘述。
在一个实施例中,提供了一种直接内存存取的控制方法,如图8所示,直接内存存取的控制方法的方框示意图。为了说明DMA实现的具体工作过程,将DMA实现过程划分为以下功能模块,包括DMA控制模块、5个业务模块(业务模块0至业务模块4)和8个通道队列(通道队列0至通道队列7)。DMA控制模块包括DMA读交换模块、DMA写交换模块、DMA通道仲裁模块和8个通道队列状态管理模块(通道队列0状态管理模块至通道队列7状态管理)。其中,通道队列状态管理模块与通道队列一一对应管理,即通道队列0状态管理模块对应管理通道队列0。DMA读交换模块对应连接EP_RX(PIO(Process Input Output,程序输入输出)模式下的数据接收模块);DMA写交换模块对应连接EP_TX(PIO模式下的数据发送模块)。通道队列状态管理模块分别连接DMA_RX(DMA数据接收模块)和DMA_TX(DMA数据发送模块)。通道队列状态管理模块可用来完成对通道队列请求的获取、请求状态的维护和DMA突发的控制等。DMA_RX和DMA_TX,可用来完成DMA收发时序。DMA通道仲裁模块可用来仲裁通道优先级、请求状态、业务模块的流控状态等。DMA读交换模块可用来根据仲裁结果,选择读DMA通道及对应的业务模块。DMA写交换模块可用来根据仲裁结果,选择写DMA通道及对应的业务模块。
具体地,可通过通道队列状态管理模块查询对应的通道队列(例如,通道队列0状态管理模块查询通道队列0),是否有请求(读业务包请求或写业务包请求),如果有,则获取该请求;通道队列状态管理模块若接收到读业务包请求,则输出读DMA状态;通道队列状态管理模块若接收到写业务包请求,则输出写DMA状态;DMA通道仲裁模块根据当前各通道队列的收发状态和业务模块的流控状态,确定可以传输突发数据的通道,并指示通道队列状态管理模块,可以传输突发数据;将突发数据传输到DMA读交换模块或DMA写交换模块,切换到对应通道和业务模块的连通;通道队列状态管理模块触发搬移一个突发数据,并启动对应的DMA_RX或DMA_TX;DMA_RX或DMA_TX搬移完一个突发数据后,触发DMA通道仲裁模块。如果在出现当前请求出现流控标志、或其他更高优先级的队列有传输请求,则切换到其他高优先级的通道进行搬移数据,如果没有,同时当前请求没有完成,则继续搬移对应当前请求的一个突发数据。
应该理解的是,虽然图2至6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种直接内存存取的控制装置,包括:
业务包请求获取单元910,用于获取通道队列的业务包请求。
检测单元920,用于检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级。
通道仲裁单元930,用于根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁。
数据传输单元940,用于若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
关于直接内存存取的控制装置的具体限定可以参见上文中对于直接内存存取的控制方法的限定,在此不再赘述。上述直接内存存取的控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于物理层加速卡中的处理器中,也可以以软件形式存储于物理层加速卡中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图10所示,提供了一种物理层加速卡,包括处理器;处理器执行计算机程序时实现上述任一项直接内存存取方法的步骤。
具体地,处理器可用于执行以下步骤:
获取通道队列的业务包请求;
检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;
若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
在一个具体的实施例中,处理器为DMA控制器。
在一个实施例中,如图11所示,提供了一种物理层加速卡。根据功能模块的划分,该系统可包括PCIE(Peripheral Component Interconnect Express,一种高速串行计算机扩展总线标准)控制器、PIO(程序输入输出)和PCIE业务通道管理模块。其中,PCIE控制器可用来进行PCIE底层信号处理和协议解析等。PIO为PCIE的驱动接口,可用来PCIE配置、PCIE发送、读取处理、通信上位机写内存及触发信号产生等。PCIE业务通道管理模块可用来实现不同业务的业务管理、通道请求缓冲和DMA通道优先级管理。
具体地,PIO可包括EP_TX单元、EP_RX单元、MEM单元(包括Mem0、Mem1、Mem2和Mem3)和TO_CTRL单元。EP_TX单元可用来读操作的数据发送;EP_RX单元可用来写操作的数据接收;MEM单元可用来对BAR(Base Address Register,基地址寄存器)地址空间的管理;TO_CTRL单元可用来对PCIE核配置和辅助控制。PCIE业务通道管理模块可包括DMA控制模块、业务通道管理模块和若干通道队列(如通道队列0至通道队列7)。其中DMA控制模块可用来实现对应通道队列的请求获取、请求状态的维护、突发数据的DMA读写、通道的DMA仲裁、读写流控和DMA通道及业务模块的选择控制。业务通道管理模块可用来实现业务模块的请求处理,通道队列的交换,支持业务模块与通道队列在不冲突情况下进行并行交换,支持业务模块输入参数至通道队列进行处理,记录业务模块的身份信息,支持各通道队列的队列空满和队列写入状态等管理。
上述实施例中,物理层加速卡具有很好的不同业务扩展性,并能够满足物理层加速过程中的高吞吐量和低时延的DMA要求。同时适配物理层处理业务流控需求,支持多业务PCIE收发的高效传输。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取通道队列的业务包请求;
检测业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
根据检测到的通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对通道队列进行通道仲裁;
若通道仲裁的结果为通过,则选择通道队列相应的DMA传输通道传输业务包请求的业务包数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各除法运算方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种直接内存存取的控制方法,其特征在于,包括以下步骤:
获取通道队列的业务包请求;
检测所述业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
根据检测到的所述通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对所述通道队列进行通道仲裁;
若所述通道仲裁的结果为通过,则选择所述通道队列相应的DMA传输通道传输所述业务包请求的业务包数据。
2.根据权利要求1所述的直接内存存取的控制方法,其特征在于,根据检测到的所述通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对所述通道队列进行通道仲裁的步骤包括:
根据检测到的所述通道队列的流控状态和DMA收发状态对所述通道队列进行DMA传输通道仲裁;
当所述通道队列的流控状态为未触发状态,或/和,所述DMA收发状态为无应答状态时,则确定所述DMA传输通道通过仲裁。
3.根据权利要求1所述的直接内存存取的控制方法,其特征在于,根据检测到的所述通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对所述通道队列进行通道仲裁的步骤包括:
当存在多个通道队列发送的业务包请求时,根据所述多个通道队列的优先级依次选取一个通道队列;
根据选取的通道队列的流控状态和DMA收发状态对所述选取的通道队列进行通道仲裁。
4.根据权利要求3所述的直接内存存取的控制方法,其特征在于,当存在多个通道队列发送的业务包请求时,根据所述多个通道队列的优先级依次选取一个通道队列;根据选取的通道队列的流控状态和DMA收发状态对所述选取的通道队列进行通道仲裁的步骤包括:
当选取的通道队列的DMA收发状态为无应答状态、或所述通道队列流控状态为未触发状态时,则确定所述通道队列通过仲裁,结束本轮通道仲裁;
当选取的通道队列的DMA收发状态为应答状态、或所述通道队列流控状态为触发状态时,确定选取的通道队列未通过仲裁,选取下一优先级的通道队列进行通道仲裁。
5.根据权利要求1所述的直接内存存取的控制方法,其特征在于,获取通道队列的业务包请求的步骤之前包括:
根据业务包请求选取相应的通道队列,并将所述业务包请求缓存至选取出的通道队列。
6.根据权利要求5所述的直接内存存取的控制方法,其特征在于,根据业务包请求选取相应的所述通道队列的步骤之后,以及将所述业务包请求缓存至选取出的通道队列的步骤之前包括:
确定选取的通道队列的状态为未占用状态。
7.根据权利要求1所述的直接内存存取的控制方法,其特征在于,选择所述通道队列相应的DMA传输通道传输所述业务包请求的业务包数据的步骤包括:
将所述业务包数据划分为各突发数据,并依据突发传输规则通过所述DMA传输通道依次传输各所述突发数据。
8.根据权利要求1至7任意一项所述的直接内存存取的控制方法,其特征在于,所述业务包请求包括业务包身份信息。
9.一种直接内存存取的控制装置,其特征在于,包括:
业务包请求获取单元,用于获取通道队列的业务包请求;
检测单元,用于检测所述业务包请求对应的通道队列的流控状态、DMA收发状态、通道优先级;
通道仲裁单元,用于根据检测到的所述通道队列的流控状态,或/和,DMA收发状态,或/和通道队列优先级对所述通道队列进行通道仲裁;
数据传输单元,用于若所述通道仲裁的结果为通过,则选择所述通道队列相应的DMA传输通道传输所述业务包请求的业务包数据。
10.一种物理层加速卡,其特征在于,包括处理器;
所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述直接内存存取的控制方法的步骤。
11.根据权利要求9所述的一种物理层加速卡,其特征在于,所述处理器为DMA控制器。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述直接内存存取的控制方法的步骤。
CN201811270595.7A 2018-10-29 2018-10-29 直接内存存取的控制方法、装置及物理层加速卡 Active CN109408428B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811270595.7A CN109408428B (zh) 2018-10-29 2018-10-29 直接内存存取的控制方法、装置及物理层加速卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811270595.7A CN109408428B (zh) 2018-10-29 2018-10-29 直接内存存取的控制方法、装置及物理层加速卡

Publications (2)

Publication Number Publication Date
CN109408428A true CN109408428A (zh) 2019-03-01
CN109408428B CN109408428B (zh) 2021-05-28

Family

ID=65469625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811270595.7A Active CN109408428B (zh) 2018-10-29 2018-10-29 直接内存存取的控制方法、装置及物理层加速卡

Country Status (1)

Country Link
CN (1) CN109408428B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143258A (zh) * 2019-12-29 2020-05-12 苏州浪潮智能科技有限公司 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质
CN114415959A (zh) * 2022-01-20 2022-04-29 无锡众星微系统技术有限公司 一种sata磁盘动态加速访问方法和装置
WO2022156370A1 (zh) * 2021-01-20 2022-07-28 苏州浪潮智能科技有限公司 一种基于fpga的dma设备及dma数据搬移方法
CN116055409A (zh) * 2023-03-31 2023-05-02 山东云海国创云计算装备产业创新中心有限公司 以太网卡的数据传输方法、装置、网络设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466348A (zh) * 2002-06-15 2004-01-07 华为技术有限公司 高速数据链路控制协议发送处理模块及其数据处理方法
CN102171580A (zh) * 2008-12-24 2011-08-31 熵敏通讯股份有限公司 在被管理网络上的layer-2处的包汇聚和分割
CN102567256A (zh) * 2011-12-16 2012-07-11 龙芯中科技术有限公司 处理器系统及其多通道内存拷贝dma加速器和方法
CN103064808A (zh) * 2011-10-24 2013-04-24 北京强度环境研究所 优先级可调多通道dma控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466348A (zh) * 2002-06-15 2004-01-07 华为技术有限公司 高速数据链路控制协议发送处理模块及其数据处理方法
CN102171580A (zh) * 2008-12-24 2011-08-31 熵敏通讯股份有限公司 在被管理网络上的layer-2处的包汇聚和分割
CN103064808A (zh) * 2011-10-24 2013-04-24 北京强度环境研究所 优先级可调多通道dma控制器
CN102567256A (zh) * 2011-12-16 2012-07-11 龙芯中科技术有限公司 处理器系统及其多通道内存拷贝dma加速器和方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143258A (zh) * 2019-12-29 2020-05-12 苏州浪潮智能科技有限公司 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质
WO2022156370A1 (zh) * 2021-01-20 2022-07-28 苏州浪潮智能科技有限公司 一种基于fpga的dma设备及dma数据搬移方法
CN114415959A (zh) * 2022-01-20 2022-04-29 无锡众星微系统技术有限公司 一种sata磁盘动态加速访问方法和装置
CN114415959B (zh) * 2022-01-20 2023-03-10 无锡众星微系统技术有限公司 一种sata磁盘动态加速访问方法和装置
CN116055409A (zh) * 2023-03-31 2023-05-02 山东云海国创云计算装备产业创新中心有限公司 以太网卡的数据传输方法、装置、网络设备及存储介质

Also Published As

Publication number Publication date
CN109408428B (zh) 2021-05-28

Similar Documents

Publication Publication Date Title
CN109408428A (zh) 直接内存存取的控制方法、装置及物理层加速卡
JP3946873B2 (ja) ディスクアレイ制御装置
CN102096648B (zh) 基于fpga的实现多路突发数据业务缓存的系统及方法
US10225168B2 (en) Interface apparatus and memory bus system
US7426603B2 (en) Memory bus arbitration using memory bank readiness
CN106354544A (zh) 虚拟机创建方法、系统以及主机
US7249214B2 (en) Sliced crossbar architecture with no inter-slice communication
US20150052318A1 (en) Memory apparatuses, computer systems and methods for ordering memory responses
EP1374072B1 (en) Apparatus and method for efficiently sharing memory bandwidth in a network processor
EP2902914B1 (en) Data transmission method and device
CN110109847A (zh) Apb总线多个主设备的仲裁方法、系统及存储介质
CN112100097B (zh) 多测试通道优先级自适应仲裁方法和存储器访问控制器
CN110044636B (zh) 车辆检查装置和车辆检查方法
US11874781B2 (en) Packet processing system, method and device utilizing a port client chain
CN107592250A (zh) 基于航空fc总线多速率自适应测试设备
CN105335323B (zh) 一种数据突发的缓存装置和方法
CN116225992A (zh) 一种支持虚拟化仿真设备的NVMe验证平台及方法
CN102236622A (zh) 提高动态存储器带宽利用率的动态存储器控制器及方法
US20160098212A1 (en) Information processor apparatus, memory control device, and control method
US7865645B2 (en) Bus arbiter, bus device and system for granting successive requests by a master without rearbitration
CN106293491B (zh) 写请求的处理方法和内存控制器
CN105471930B (zh) 一种读取分布式数据的方法、系统和设备
CN106776390A (zh) 多设备访问存储器的实现方法
US6330632B1 (en) System for arbitrating access from multiple requestors to multiple shared resources over a shared communications link and giving preference for accessing idle shared resources
US7581072B2 (en) Method and device for data buffering

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
TA01 Transfer of patent application right

Effective date of registration: 20200108

Address after: 510663 Shenzhou Road, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangdong, 10

Applicant after: Jingxin Communication System (China) Co., Ltd.

Address before: 510663 Shenzhou Road 10, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangzhou, Guangdong

Applicant before: Jingxin Communication System (China) Co., Ltd.

Applicant before: Jingxin Communication System (Guangzhou) Co., Ltd.

Applicant before: Jingxin Communication Technology (Guangzhou) Co., Ltd.

Applicant before: TIANJIN COMBA TELECOM SYSTEMS CO., LTD.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 510663 Shenzhou Road, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangdong, 10

Patentee after: Jingxin Network System Co.,Ltd.

Address before: 510663 Shenzhou Road, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangdong, 10

Patentee before: Comba Telecom System (China) Ltd.

CP01 Change in the name or title of a patent holder