CN109558107A - 一种共享缓冲区的fc消息接收管理方法 - Google Patents
一种共享缓冲区的fc消息接收管理方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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网络通信领域,航空电子环境匿名签署消息协议主要应用于航空电子系统中命令、控制、信号处理以及传感器数据传输,其中帧格式中的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的下一条消息的缓冲单元索引,由逻辑内部维护,软件不可见;同业务类型消息的链表指针保存在同一个管理单元的消息链表指针记录区中。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260803A (zh) * | 2020-11-03 | 2021-01-22 | 中航光电科技股份有限公司 | 一种fc设备接收端通信冗余处理方法 |
Citations (16)
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 | 英特尔公司 | 针对网络设备以减小的缓冲器使用进行流控制 |
CN105553880A (zh) * | 2015-12-24 | 2016-05-04 | 北京邮电大学 | 一种软件定义网络中的数据处理方法及装置 |
CN105550142A (zh) * | 2015-12-07 | 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 |
-
2018
- 2018-12-04 CN CN201811472010.XA patent/CN109558107B/zh active Active
Patent Citations (17)
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)
Title |
---|
余翔湛等: "动态共享内存缓冲池技术", 《哈尔滨工业大学学报》 * |
Cited By (2)
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 |
---|---|---|
US11916781B2 (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 | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
CN101504617B (zh) | 一种基于处理器共享内存的数据发送方法及装置 | |
CN101459611B (zh) | 用于ip san存储的数据传输调度方法、系统和设备 | |
CN109408419B (zh) | Dsp硬件抽象层和dsp处理器 | |
CN107613529B (zh) | 消息处理方法以及基站 | |
US8606975B2 (en) | Managing interrupts in a virtualized input/output device supporting multiple hosts and functions | |
CN110457251B (zh) | 一种多处理器间的数据通信方法及装置 | |
CN101795266A (zh) | 航电asm协议控制器 | |
CN112698959A (zh) | 一种多核通信方法和装置 | |
CN109558107A (zh) | 一种共享缓冲区的fc消息接收管理方法 | |
CN114244915A (zh) | 一种支持多种协议的数据传输方法、装置及存储介质 | |
EP2437447B1 (en) | Multimedia message forwarding method, device and system thereof | |
CN102170401B (zh) | 一种数据的处理方法和设备 | |
CN101494595A (zh) | 数据报文转发方法、系统以及同轴线路终端、光网络单元 | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN110098869B (zh) | 一种光纤通道消息传输方法 | |
CN113691466A (zh) | 一种数据的传输方法、智能网卡、计算设备及存储介质 | |
CN116450563A (zh) | 一种消息接收装置和处理器通信系统 | |
CN104486257A (zh) | 一种基于afdx网络交换机芯片的分级发送调度电路结构 | |
CN101895470B (zh) | 流控信息传递方法和装置 | |
CN113422741B (zh) | 一种时间触发以太网交换机结构 | |
CN112202781B (zh) | 一种电商大数据量回执报文处理方法、装置和系统 | |
CN109684101B (zh) | 一种fc_ae_asm协议处理引擎电路 |
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 |