CN109558107A - 一种共享缓冲区的fc消息接收管理方法 - Google Patents

一种共享缓冲区的fc消息接收管理方法 Download PDF

Info

Publication number
CN109558107A
CN109558107A CN201811472010.XA CN201811472010A CN109558107A CN 109558107 A CN109558107 A CN 109558107A CN 201811472010 A CN201811472010 A CN 201811472010A CN 109558107 A CN109558107 A CN 109558107A
Authority
CN
China
Prior art keywords
message
buffer
msgid
index
software
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
CN201811472010.XA
Other languages
English (en)
Other versions
CN109558107B (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.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
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 Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN201811472010.XA priority Critical patent/CN109558107B/zh
Publication of CN109558107A publication Critical patent/CN109558107A/zh
Application granted granted Critical
Publication of CN109558107B publication Critical patent/CN109558107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明为FC通信节点接收功能单元提供一种基于msgid的消息接收管理方法,依据上层应用消息的业务类型,在主机内存中分别为每种类型业务分配一个接收缓冲区,并在FPGA逻辑中建立相应的管理单元。相同类型的消息共享接收缓冲区及管理单元,由FPGA逻辑为每个消息分别维护一个链表,其中保存消息所在缓冲区中缓冲单元的索引,支持软件基于msgid接收消息。本发明有效满足软件按照msgid发送和接收消息的需求,同时尽可能在有限的FPGA逻辑资源中管理更多数量的msgid,并针对单个消息提高缓冲深度。

Description

一种共享缓冲区的FC消息接收管理方法
技术领域
技术领域属于机载通信网络技术。本发明涉及一种网络通信节点接收功能实现方法,特别涉及一种共享缓冲区的基于链队列实现的FC消息接收管理方法。
背景技术
在机载FC网络通信领域,航空电子环境匿名签署消息协议主要应用于航空电子***中命令、控制、信号处理以及传感器数据传输,其中帧格式中的msgid字段用作全网络***中应用消息的唯一标识,上层应用的发送方基于msgid组织消息发送,接收方依据msgid解析不同语义的消息内容。
为提高效率,降低中间层软件开销,通常在底层网络实现时由FPGA逻辑直接基于msgid管理缓冲单元。由于现代机载航电***ICD消息规模庞大,分配给单个通信节点的应用ICD消息通常达到上百条,在网络底层实现时,如果针对每个msgid建立一个消息队列,在有限的FPGA资源约束下,通常单个msgid只具有很少的缓冲单元数量,当主机处理能力低于瞬时通信带宽时,就有可能出现消息丢弃;相反,若提高单个msgid的缓冲单元数量,则msgid总数又会受到限制,不能满足应用需求。
发明内容
本发明的目的是:为FC通信节点接收功能单元提供一种基于msgid的消息接收管理方法,满足软件按照msgid发送和接收消息的需求,同时尽可能在有限的FPGA逻辑资源中管理更多数量的msgid,并针对单个消息提高缓冲深度。
本发明的技术方案为:按照上层应用消息的业务类型,在主机内存中分别为每种类型业务分配一个接收缓冲区,并在FPGA逻辑中建立相应的管理单元。相同类型的消息共享接收缓冲区及管理单元,由FPGA逻辑为每个消息分别维护一个链表,其中保存消息所在缓冲区中缓冲单元的索引,支持软件基于msgid接收消息。
所述的管理单元包括一个空闲缓冲单元索引FIFO和一个消息链表指针记录区。前者保存逻辑当前可用于接收消息的空闲缓冲单元索引,由驱动软件写入后逻辑读取共同维护;后者由逻辑内部维护,记录区的每个存储单元保存相同msgid消息的下一个缓冲单元索引。
所述的消息链表由头指针、尾指针以及一组共享消息链表指针记录区的链表指针构成。其中,头指针记录同msgid的第一条消息的缓冲单元索引,由逻辑维护,软件只读;尾指针记录同msgid的最后一条消息的缓冲单元索引,由逻辑内部维护,软件不可见;链表指针保存同msgid的下一条消息的缓冲单元索引,由逻辑内部维护,软件不可见。同业务类型消息的链表指针保存在同一个管理单元的消息链表指针记录区中。
本发明的有益效果是:
(1)占用逻辑资源少。相同业务类型的消息共享接收缓冲区及管理单元,在有限的FPGA资源中实现更多的消息管理;
(2)消息接收效率高。底层FPGA逻辑直接针对msgid管理接收缓冲区,软件只需一次读操作便可获取消息所在缓冲区的索引,有效提高读取效率;
(3)业务消息的缓冲区深度弹性伸缩。在单个应用的一段时间窗口内,该业务类型的缓冲区所有的缓冲单元可供某一个msgid使用,有效防止消息溢出丢弃。
附图说明
图1为共享缓冲消息接收管理示意图。
图2为共享缓冲消息接收管理实例示意图一。
图3为共享缓冲消息接收管理实例示意图二。
图4为共享缓冲消息接收管理实例示意图三。
图5为共享缓冲消息接收管理实例示意图四。
具体实施方式
一种共享缓冲区的消息接收管理方法,工作流程如图1所示:
a.初始化时依据msgid配置所有消息及管理单元:各消息的头指针、尾指针以及链表指针记录均置为空;各个业务类型的“空闲缓冲区索引FIFO”填入0到n-1共n个缓冲单元索引;
b.接收消息并保存到一个逻辑可用的缓冲单元:当FPGA逻辑接收到一个FC帧后,解析帧并提取msgid和priority字段,假设msgid为msg_m,priority对应业务类型为type_t;FPGA逻辑从“空闲缓冲单元索引FIFO”中获取一个空闲缓冲单元索引id_e,并将FC帧以DMA方式搬移到业务类型为type_t,缓冲单元索引为id_e的主机缓冲单元中;
c.更新msg_m所的链表尾指针:假设此时消息msg_m的尾指针id_t,如果id_t为空,更新消息msg_m的头指针和尾指针为id_e;如果id_t不为空,头指针不动,尾指针id_t更新为id_e,同时将业务类型为type_t的“消息链表指针记录区”中编号为id_t的链表指针记录更新为id_e;
d.软件接收消息并释放缓冲单元:软件在接收消息msg_m时,通过读msg_m的头指针获取消息所在的缓冲单元索引id_h,并从其对应的缓冲地址中读取消息内容,之后将id_h***到“空闲缓冲单元索引FIFO”中。
e.更新msg_m所对应的链表头指针:软件读操作触发msg_m的头指针后移。读取业务类型type_t的“消息链表指针记录区”中索引为id_h的链表指针,记为id_n,更新头指针id_h为id_n。
下面结合附图,针对支持共512条消息,分为紧急、事件两类消息的具体实例对本发明做进一步的详细说明。
一种共享缓冲区的消息接收管理方法,包括:
1.初始化
图2所示为依据一种共享缓冲的消息接收管理方法实现的具有紧急、事件共2种类型的消息管理单元的初始化状态。每种业务类型消息分别分配一个具有512个缓冲单元的缓冲区、1个长度为512的链表指针记录区以及一个深度为512的FIFO。其中,缓冲单元大小为4KB,索引分别为0~511。
2.逻辑接收消息过程
图3所示为消息接收的某个时刻的状态:共有3条紧急消息0xA依次存储在索引为0、2、3的紧急消息缓冲单元中,0xA的头指针为0,尾指针为3;共有1条紧急消息0xB存储在索引为1的紧急消息缓冲单元中,0xB的头指针和尾指针均为1;共有4条事件消息0xC依次存储在索引为0、1、2、3的事件消息缓冲单元中,0xC的头指针为0,尾指针为3。紧急消息空闲缓冲单元FIFO中,索引为0、1、2、3等的缓冲单元已经被占用而出队列,下一个逻辑可用缓冲单元索引为509;事件消息空闲缓冲单元FIFO中,索引为0、1、2、3等的缓冲单元已经被占用而出队列,下一个可用缓冲单元索引为4。
图4所示为FPGA逻辑接收到一条消息0xA后的管理单元状态,由图3到图4的更新过程为:当FPGA逻辑接收到一个FC帧后,解析帧并提取msgid和priority字段,假设msgid为0xA,priority对应业务类型为紧急消息,FPGA逻辑从“空闲缓冲单元索引FIFO”中出队列,读取到一个空闲缓冲单元索引509,并将FC帧以DMA方式搬移到紧急消息缓冲区中索引为509的缓冲单元中;更新0xA的尾指针为509;更新紧急链表指针记录区中索引为3的内容,由空变为指向索引单元509。
3.软件接收消息过程
图5所示为软件读取一个0xA消息后的管理单元状态,由图4到图5的更新过程为:软件首先读取0xA的头指针内容为0,然后从索引为0的紧急消息缓冲单元中拷贝FC数据帧,最后将0***到“空闲缓冲单元索引FIFO”中,标识索引为0的缓冲单元空闲,可供FPGA逻辑再次接收消息。在软件读取0xA的头指针时,读操作触发FPGA逻辑更新0xA的头指针,使其后移指向下一个缓冲单元,索引为2;同时更新链表指针记录区中索引为0的指针为空。
依据上述过程,软件读取消息0xA所在的缓冲单元索引顺序为0,2,3,509。

Claims (3)

1.一种共享缓冲区的FC消息接收管理方法,其特征在于:按照上层应用消息的业务类型,在主机内存中分别为每种类型业务分配一个消息接收缓冲区,并在FPGA逻辑中建立相应的管理单元,相同类型的消息共享接收缓冲区及管理单元,由FPGA逻辑为每个消息分别维护一个链表,其中保存消息所在缓冲区中缓冲单元的索引,支持软件基于msgid接收消息。
2.如权利要求1所述的一种共享缓冲区的FC消息接收管理方法,其特征在于:所述管理单元包括一个空闲缓冲单元索引FIFO和一个消息链表指针记录区,前者保存逻辑当前可用于接收消息的空闲缓冲单元索引,由驱动软件写入后逻辑读取共同维护;后者由逻辑内部维护,记录区的每个存储单元保存相同msgid消息的下一个缓冲单元索引。
3.如权利要求2所述的一种共享缓冲区的FC消息接收管理方法,其特征在于:所述消息链表由头指针、尾指针以及一组共享消息链表指针记录区的链表指针构成,其中,头指针记录同msgid的第一条消息的缓冲单元索引,由逻辑维护,软件只读;尾指针记录同msgid的最后一条消息的缓冲单元索引,由逻辑内部维护,软件不可见;链表指针保存同msgid的下一条消息的缓冲单元索引,由逻辑内部维护,软件不可见;同业务类型消息的链表指针保存在同一个管理单元的消息链表指针记录区中。
CN201811472010.XA 2018-12-04 2018-12-04 一种共享缓冲区的fc消息接收管理方法 Active CN109558107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811472010.XA CN109558107B (zh) 2018-12-04 2018-12-04 一种共享缓冲区的fc消息接收管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811472010.XA CN109558107B (zh) 2018-12-04 2018-12-04 一种共享缓冲区的fc消息接收管理方法

Publications (2)

Publication Number Publication Date
CN109558107A true CN109558107A (zh) 2019-04-02
CN109558107B CN109558107B (zh) 2023-06-30

Family

ID=65868719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811472010.XA Active CN109558107B (zh) 2018-12-04 2018-12-04 一种共享缓冲区的fc消息接收管理方法

Country Status (1)

Country Link
CN (1) CN109558107B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112260803A (zh) * 2020-11-03 2021-01-22 中航光电科技股份有限公司 一种fc设备接收端通信冗余处理方法

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001004770A2 (en) * 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Method and architecture for optimizing data throughput in a multi-processor environment using a ram-based shared index fifo linked list
CN101268705A (zh) * 2005-07-15 2008-09-17 捷讯研究有限公司 用于提供来自移动设备的ptt数据缓冲支持指示和通过无线网络的ptt数据缓冲控制的方法和设备
CN101504617A (zh) * 2009-03-23 2009-08-12 华为技术有限公司 一种基于处理器共享内存的数据发送、接收方法及装置
CN101853238A (zh) * 2010-06-01 2010-10-06 华为技术有限公司 通信处理器间消息通信方法和***
US20110136526A1 (en) * 2009-12-08 2011-06-09 Electronics And Telecommunications Research Institute Apparatus and method for allocating multicast connection indetifier in wireless access system
CN103049414A (zh) * 2012-12-28 2013-04-17 中国航空工业集团公司第六三一研究所 Fc总线与can总线间数据的转换及传输方法
US20130117764A1 (en) * 2011-11-07 2013-05-09 International Business Machines Corporation Internode Data Communications In A Parallel Computer
CN103368854A (zh) * 2013-07-10 2013-10-23 杭州华三通信技术有限公司 一种rscn报文的通知方法和设备
CN103888293A (zh) * 2014-02-25 2014-06-25 电子科技大学 多通道fc网络数据仿真***的数据通道调度方法
CN104243346A (zh) * 2013-06-12 2014-12-24 英特尔公司 针对网络设备以减小的缓冲器使用进行流控制
CN105550142A (zh) * 2015-12-07 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种高低速转换接口中的数据完整性处理方法
CN105553880A (zh) * 2015-12-24 2016-05-04 北京邮电大学 一种软件定义网络中的数据处理方法及装置
US20170118146A1 (en) * 2015-10-21 2017-04-27 International Business Machines Corporation Using send buffers and receive buffers for sending messages among nodes in a network
CN106776372A (zh) * 2017-02-15 2017-05-31 北京中航通用科技有限公司 基于fpga的仿真数据存取方法及装置
CN108009022A (zh) * 2017-11-06 2018-05-08 联动优势科技有限公司 一种消息处理方法及服务器
US20180246820A1 (en) * 2017-02-24 2018-08-30 Ati Technologies Ulc Multiple linked list data structure

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001004770A2 (en) * 1999-07-13 2001-01-18 Alteon Web Systems, Inc. Method and architecture for optimizing data throughput in a multi-processor environment using a ram-based shared index fifo linked list
CN101268705A (zh) * 2005-07-15 2008-09-17 捷讯研究有限公司 用于提供来自移动设备的ptt数据缓冲支持指示和通过无线网络的ptt数据缓冲控制的方法和设备
CN101504617A (zh) * 2009-03-23 2009-08-12 华为技术有限公司 一种基于处理器共享内存的数据发送、接收方法及装置
US20110136526A1 (en) * 2009-12-08 2011-06-09 Electronics And Telecommunications Research Institute Apparatus and method for allocating multicast connection indetifier in wireless access system
CN101853238A (zh) * 2010-06-01 2010-10-06 华为技术有限公司 通信处理器间消息通信方法和***
US20130117764A1 (en) * 2011-11-07 2013-05-09 International Business Machines Corporation Internode Data Communications In A Parallel Computer
CN103049414A (zh) * 2012-12-28 2013-04-17 中国航空工业集团公司第六三一研究所 Fc总线与can总线间数据的转换及传输方法
CN108600114A (zh) * 2013-06-12 2018-09-28 英特尔公司 针对网络设备以减小的缓冲器使用进行流控制
CN104243346A (zh) * 2013-06-12 2014-12-24 英特尔公司 针对网络设备以减小的缓冲器使用进行流控制
CN103368854A (zh) * 2013-07-10 2013-10-23 杭州华三通信技术有限公司 一种rscn报文的通知方法和设备
CN103888293A (zh) * 2014-02-25 2014-06-25 电子科技大学 多通道fc网络数据仿真***的数据通道调度方法
US20170118146A1 (en) * 2015-10-21 2017-04-27 International Business Machines Corporation Using send buffers and receive buffers for sending messages among nodes in a network
CN105550142A (zh) * 2015-12-07 2016-05-04 中国航空工业集团公司西安航空计算技术研究所 一种高低速转换接口中的数据完整性处理方法
CN105553880A (zh) * 2015-12-24 2016-05-04 北京邮电大学 一种软件定义网络中的数据处理方法及装置
CN106776372A (zh) * 2017-02-15 2017-05-31 北京中航通用科技有限公司 基于fpga的仿真数据存取方法及装置
US20180246820A1 (en) * 2017-02-24 2018-08-30 Ati Technologies Ulc Multiple linked list data structure
CN108009022A (zh) * 2017-11-06 2018-05-08 联动优势科技有限公司 一种消息处理方法及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
余翔湛等: "动态共享内存缓冲池技术", 《哈尔滨工业大学学报》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112260803A (zh) * 2020-11-03 2021-01-22 中航光电科技股份有限公司 一种fc设备接收端通信冗余处理方法
CN112260803B (zh) * 2020-11-03 2022-04-19 中航光电科技股份有限公司 一种fc设备接收端通信冗余处理方法

Also Published As

Publication number Publication date
CN109558107B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
US20220255884A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
US9584332B2 (en) Message processing method and device
CN101504617B (zh) 一种基于处理器共享内存的数据发送方法及装置
CN107613529B (zh) 消息处理方法以及基站
CN109408419B (zh) Dsp硬件抽象层和dsp处理器
US8606975B2 (en) Managing interrupts in a virtualized input/output device supporting multiple hosts and functions
CN101795266A (zh) 航电asm协议控制器
CN103491170B (zh) 电子邮件到达消息提醒的方法及***
CN101459611A (zh) 用于ip san存储的数据传输调度方法、***和设备
CN101278519A (zh) 使用具有附加属性的节点的设备管理方法及其设备管理客户端
CN112698959A (zh) 一种多核通信方法和装置
CN109558107A (zh) 一种共享缓冲区的fc消息接收管理方法
CN111124716A (zh) 一种无人机中多优先级队列消息传输方法
EP2437447B1 (en) Multimedia message forwarding method, device and system thereof
CN102170401B (zh) 一种数据的处理方法和设备
CN110098869B (zh) 一种光纤通道消息传输方法
CN113691466A (zh) 一种数据的传输方法、智能网卡、计算设备及存储介质
CN116450563A (zh) 一种消息接收装置和处理器通信***
CN104486257A (zh) 一种基于afdx网络交换机芯片的分级发送调度电路结构
CN101895470B (zh) 流控信息传递方法和装置
CN115617733A (zh) RapidIO网络报文转换方法、***及设备
CN113268446B (zh) 用于多种机载总线接入的信息处理方法及装置
CN101765085A (zh) 一种对下行非接入层消息无法传递的处理方法和装置
CN109684101B (zh) 一种fc_ae_asm协议处理引擎电路
CN1323524C (zh) 数据在虚拟局域网中定向传播的方法

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