CN113836048A - 一种基于fpga内存动态分配的数据交换方法及装置 - Google Patents
一种基于fpga内存动态分配的数据交换方法及装置 Download PDFInfo
- Publication number
- CN113836048A CN113836048A CN202111093096.7A CN202111093096A CN113836048A CN 113836048 A CN113836048 A CN 113836048A CN 202111093096 A CN202111093096 A CN 202111093096A CN 113836048 A CN113836048 A CN 113836048A
- Authority
- CN
- China
- Prior art keywords
- message
- cache unit
- level cache
- forwarding
- level
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 50
- 230000009191 jumping Effects 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 7
- 239000000126 substance Substances 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 241000272814 Anser sp. Species 0.000 description 2
- 230000032683 aging Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA内存动态分配的数据交换方法及装置,采用现场可编程FPGA器件实现以太网二层交换处理业务,采用内存动态分配策略,即使用FPGA内部RAM实现一级缓存单元和二级缓存单元作为转发报文缓存,一级缓存单元缓存二层交换处理后的以太网报文,二级缓存单元动态分配给有报文突发传输的某一个端口。一般情况只使用一级缓存单元作为转发报文缓存,当某端口瞬时流量过大时就申请占用二级缓存单元,报文发完后释放二级缓存单元,二级缓存单元动态分配给瞬时流量大的端口,合理高效的使用了FPGA内部缓存,省掉了常规报文缓存策略需要挂载的SDRAM。
Description
技术领域
本发明涉及通讯及电力系统自动化技术领域,尤其涉及一种基于FPGA内存动态分配的数据交换方法及装置。
背景技术
随着变电站数字化和智能化的不断发展,对网络通信的多样化和个性化需求要求越来越多,传统的网络交换芯片的局限性越来越明显。适用于1000kV及以下各种电压等级的母线保护装置,包含主机箱和子机箱,主机箱要通过网络完成SV采样和GOOSE跳闸等功能,子单元为主机箱的扩展,也要完成SV和GOOSE的数据接收以及和主机通信,该母线保护装置的网络拓扑结构如图1所示,子机通过交换机端口5和主机外部级联通信,子机交换机端口1至端口4和外部网络通信,端口1至端口4是点对点通信报文流量是可控的,端口5是端口1至端口4的汇聚口,瞬时流量可能会很大,交换机需要处理好端口5的报文突发传输。
以太网交换机是一种用于信号转发的网络设备,可以为接入交换机的任意两个网络节点提供独享的信号通路。工作于OSI参考模型的第二层数据链路层的交换机,即二层交换机,没有IP路由功能,仅处理数据链路层的交换业务。当前实现网络交换有两种策略,一是使用现成的网络芯片;二是使用现场可编程器件FPGA实现网络交换功能。在网络拓扑结构改变时,网络交换芯片无法改变自身结构,使用会受到局限;目前使用FPGA实现的网络交换都会使用外置SRAM存储器,用于临时储存转发的网络包,硬件成本和实现复杂度高。
发明内容
基于现有技术的上述情况,本发明的目的在于提供一种基于FPGA内存动态分配的数据交换方法及装置,采用内存动态分配策略以解决级联口的报文缓存问题,其中缓存仅使用FPGA内部RAM实现,降低了硬件成本和实现的复杂度。
为达到上述目的,根据本发明的一个方面,提供了一种基于FPGA内存动态分配的数据交换方法,包括步骤:
S1、接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
S2、将所述转发报文存放至一级缓存单元;
S3、判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理。
进一步的,所述一级缓存单元和二级缓存单元均由FPGA内存提供。
进一步的,所述二级缓存单元可动态分配。
进一步的,所述判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理包括:
S31、查询所述目的端口是否占用二级缓存单元,若是,则跳转至步骤S36;若否,则执行步骤S34;
S34、判断所述目的端口的发送缓存是否已满,若是,则执行步骤S35;若否,则跳转至步骤S38;
S35、判断二级缓存单元是否空闲,若是,则执行步骤S36;若否,则报文数据溢出;
S36、将所述转发报文存放至二级缓存单元;
S37、当所述二级缓存单元为非空时,等待直至所述目的端口的发送缓存有空间;
S38、将所述报文数据写入该目的端口的发送缓存并发送。
进一步的,还包括:
若所述二级缓存单元不为非空,则释放所述二级缓存单元的空间。
根据本发明的另一个方面,提供了一种基于FPGA内存动态分配的数据交换装置,包括报文接收模块、报文存储模块、以及报文处理模块;其中,
所述报文接收模块用于接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
所述报文存储模块用于将所述转发报文存放至一级缓存单元;
所述报文处理模块用于判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理。
进一步的,所述一级缓存单元和二级缓存单元均由FPGA内存提供。
进一步的,所述二级缓存单元可动态分配。
进一步的,所述报文处理模块判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理包括:
S31、查询所述目的端口是否占用二级缓存单元,若是,则跳转至步骤S36;若否,则执行步骤S34;
S34、判断所述目的端口的发送缓存是否已满,若是,则执行步骤S35;若否,则跳转至步骤S38;
S35、判断二级缓存单元是否空闲,若是,则执行步骤S36;若否,则报文数据溢出;
S36、将所述转发报文存放至二级缓存单元;
S37、当所述二级缓存单元为非空时,等待直至所述目的端口的发送缓存有空间;
S38、将所述报文数据写入该目的端口的发送缓存并发送
进一步的,所述报文处理模块还用于若所述二级缓存单元不为非空,则释放所述二级缓存单元的空间。
综上所述,本发明提供了一种基于FPGA内存动态分配的数据交换方法及装置,采用现场可编程FPGA器件实现以太网二层交换处理业务,采用内存动态分配策略,即使用FPGA内部RAM实现一级缓存单元和二级缓存单元作为转发报文缓存,一级缓存单元缓存二层交换处理后的以太网报文,二级缓存单元动态分配给有报文突发传输的某一个端口。一般情况只使用一级缓存单元作为转发报文缓存,当某端口瞬时流量过大时就申请占用二级缓存单元,报文发完后释放二级缓存单元,二级缓存单元动态分配给瞬时流量大的端口,合理高效的使用了FPGA内部缓存,省掉了常规报文缓存策略需要挂载的SDRAM。本发明通过采用内存动态分配策略以解决级联口的报文缓存问题,其中缓存仅使用FPGA内部RAM实现,降低了硬件成本和实现的复杂度。
本发明相对于现有技术具有如下有益的技术效果:
(1)本发明MAC层模块是FPGA内部逻辑实现的,可以根据需要灵活配置网口的个数,可移植性和通用性好;
(2)通过现场可编程逻辑FPGA器件实现二层以太网交换业务处理,解决传统的以太网交换芯片功能复杂、固化难升级等缺点,难满足个性化需求,可以通过FPGA软件定制实现满足电力保护装置需要的以太网交换处理功能;
(3)本发明提出的内存动态分配策略,报文转发存储使用FPGA内部资源RAM实现,省掉了常规报文存储外挂SDRAM,降低了硬件成本和设计复杂度;
(4)本发明的MAC地址表和报文转发存储都在FPGA内部实现,方便数据存储和读取,网络数据传输路径短,报文的转发延时小,增强了数据传输的实时性,提高了保护装置的可靠性。
附图说明
图1是现有技术母线保护装置的网络拓扑结构图;
图2是本发明基于FPGA内存动态分配的数据交换方法的流程图;
图3是二层网络交换业务处理示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
鉴于电力系统网络通信的特点,大部分网口为点对点通信,仅有一个网口作为级联口和主机通信有报文突发传输,本发明的实施例中提出一种内存动态分配策略解决级联口的报文缓存问题,缓存仅使用FPGA内部RAM实现,降低了硬件成本和实现的复杂度。
下面将结合附图对本发明的技术方案进行详细说明。根据本发明的一个实施例,提供了一种基于FPGA内存动态分配的数据交换方法。本实施例所提供的该方法所基于的硬件结构主要包含网口物理电路、FPGA芯片和外部FLASH。网口物理电路负责网口物理层数据处理,以RMII接口和FPGA互联,外部FLASH存放FPGA程序。现场可编程逻辑FPGA芯片完成百兆MAC层报文接收和发送,网络报文的二层转发处理,以及使用FPGA内部RAM临时存储转发的网络包。以太网数据交互的网络拓扑结构包括MAC层模块和二层网络交换业务处理,MAC层模块和二层网络交换业务处理均使用FPGA实现,每个MAC层模块由MAC发送模块和MAC接收模块组成,网络交换业务处理由接收业务控制、数据处理单元、MAC地址表模块、一级缓存单元、二级缓存单元和发送处理控制组成,其中MAC模块的个数根据需要灵活配置。
MAC层模块以RMII接口和网络物理层芯片通信,MAC接收模块将外部输入的网络数据报文缓存到接收缓存;接收业务控制轮询读取每个MAC端口接收缓存的报文,并把接收的端口号作为源端口号封装到接收报文传递给数据处理单元;数据处理单元是网络交换的核心模块,解析出报文目的MAC地址、源MAC地址和源端口号传递给MAC地址表模块,MAC地址表模块完成MAC地址表学习、老化和查找,MAC地址表模块输出报文要转发的目的端口,实现二层网络交换业务,数据处理单元将目的端口封装到报文里,传递给一级缓存单元;一级缓存单元存储经过交换处理的报文,根据各网络端口的流量状态,将转发报文传递给发送处理控制或者缓存到二级缓存单元;二级缓存单元有两种状态,即空闲态和工作态,网络流量正常时,二级缓存单元处于空闲态,当某一端口有突发传输时,该端口申请使用二级缓存单元,将来不及传输的转发报文存放到二级缓存单元,此时二级缓存单元处于工作态,不允许其他端口再申请使用,该端口的转发报文发送完,释放二级缓存单元,二级缓存单元返回空闲态;发送处理控制要读取一级缓存单元和二级缓存单元的转发报文,解析出报文的目的端口号,将转发报文写入相应端口的发送缓存,并实时查询发送缓存的状态,将发送缓存的状态反馈给一级缓存单元;MAC发送模块读取发送缓存里报文,逐帧发送出去,完成报文转发。也就是说,本实施例所涉及的以太网交换功能和报文存储均由FPGA实现,使用FPGA器件实现以太网交换业务处理,替换传统以太网交换专用芯片,并提出一种内存动态分配策略,在转发报文存储方面省掉了常规的挂载外置SRAM存储,仅使用FPGA的RAM实现报文缓存。该内存动态分配策略通过使用两级缓存实现,缓存均在使用FPGA内部RAM资源实现。本实施例所提供方法的流程图如图2所示,包括以下步骤:
S1、接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
S2、将所述转发报文存放至一级缓存单元;
S3、判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理,该步骤进一步可以有如下步骤实现:
S31、查询所述目的端口是否占用二级缓存单元,若是,则跳转至步骤S36;若否,则执行步骤S34;
S34、判断所述目的端口的发送缓存是否已满,若是,则执行步骤S35;若否,则跳转至步骤S38;
S35、判断二级缓存单元是否空闲,若是,则执行步骤S36;若否,则报文数据溢出;
S36、将所述转发报文存放至二级缓存单元;
S37、当所述二级缓存单元为非空时,等待直至所述目的端口的发送缓存有空间;
S38、将所述报文数据写入该目的端口的发送缓存并发送。
还包括:若所述二级缓存单元不为非空,则释放所述二级缓存单元的空间。
其中,所述一级缓存单元和二级缓存单元均由FPGA内存提供,并所述二级缓存单元可动态分配。
首先接收到的以太网报文经过数据处理单元处理后,将得到要转发的目的端口A封装到报文里,然后将转发的报文放到一级缓存单元,一级缓存单元查询端口A是否已经占用二级缓存,如端口A未占用二级缓存,再判定端口A发送缓存是否满,端口A发送缓存未满的话则直接写入;如端口A发送缓存满,则申请使用二级缓存,当前二级缓存空闲的话则申请成功,二级缓存进入工作态,如申请不成功当前报文溢出;如端口A已占用二级缓存,端口A的转发报文都存储到二级缓存,等待端口A的发送缓存有空间时,转发报文从二级缓存读取到端口A的发送缓存,直至二级缓存的报文发完,端口A释放二级缓存,二级缓存进入空闲态。二级缓存是为了缓解某一个端口突发传输发送缓存溢出问题,二级缓存可以动态的分配,当二级缓存处于空闲态时,发送缓存满的端口可以申请使用二级缓存,二级缓存处于工作态时不接受其它端口申请使用。
作为一种具体实施方式,内存动态分配以太网交换业务在智能站母线保护装置子单元设备中的实现硬件可以选用紫光发FPGA芯片PGL22G、百兆网口以太网PHY芯片YT8512H和FPGA程序存储FLASH芯片SGC25N016D,均为国产芯片。本实施例中FPGA芯片PGL22G通过RMII接口和以太网PHY芯片,其中MAC的个数是可根据需要配置,本文设置5个MAC作为示例说明,FPGA实现百兆网口MAC层模块、二层网络交换业务以及转发报文的缓存。
图3中示出了二层网络交换业务处理示意图,其总体设计由二层网络交换业务和转发报文的内存动态存储组成,均由FPGA软件实现,FPGA内部功能实现可以划分为多个独立模块,主要包含MAC层模块和二层网络交换业务,每个MAC模块由MAC发送模块和MAC接收模块组成,二层网络交换业务由接收业务控制、数据处理单元、MAC地址表模块、一级缓存单元和二级缓存单元和发送处理控制组成。MAC层模块由MAC接收模块和MAC发送模块组成,MAC层模块的对外是标准的RMII接口,主要功能实现FPGA和外部网口物理层芯片数据交互,完成网络报文接收和发送。MAC层的接收模块接收网络数据包,过滤掉CRC错误的报文,并把有效的数据包存放到接收缓存,等待接收业务控制读取。MAC发送模块实时检测发送缓存是否有数据,将发送缓存中的转发报文发送出去。接收业务控制查询MAC层的接收缓存,一次读取接收缓存完整的一帧,并记录该报文来自哪个端口,作为源端口号封装到接收报文,用于MAC地址表学习,接收业务控制需要对5个MAC的5个接收缓存的调度处理,依次读取每个队列的接收网络数据包,处理一帧接收报文后处理转到下一个缓存。数据处理单元是网络交换的核心模块,要做报文解析,解析出报文目的MAC地址、源MAC地址和源端口号,并传递给MAC地址学习模块,源MAC地址和源端口号给MAC地址表模块用于MAC地址学习,目的MAC地址用于MAC地址表查找输出该报文要转发的目的端口号,并将目的端口号封装到报文里传递给一级缓存单元。MAC地址表模块主要有两个功能,存储MAC地址表和处理以太网二层交换。MAC地址表由FPGA内部RAM提供,存储和读取是在FPGA内部完成,每个MAC的信息以MAC地址表项的格式存储在MAC地址表,MAC地址表项内容包括表项有效位、老化计数器、MAC物理地址和端口号。MAC地址表模块接收数据处理单元传递过来的源MAC地址和源端口号,用源MAC地址的Hash值作为索引存入存储MAC地址表,用来维护MAC地址表更新;同时根据数据处理单元传递过来的目的MAC地址的Hash值作为索引,查找要转发输出的目的端口号,实现以太网二层交换业务。
一级缓存单元缓存数据处理单元输出的已经完成交换查找的报文,一级缓存配置8KB大小由FPGA内部RAM提供,一级缓存单元的输出有两个路径,即二级缓存单元和MAC发送缓存。一级缓存单元要先判定当前报文的发送口是否已经占用了二级缓存单元,如果当前端口已经占用了二级缓存单元,则报文直接写入二级缓存单元,否则直接写入发送缓存区。二级缓存单元可动态分配给某端口的解决突发报文缓存问题,当同一时间段多个网口都往同一个网口转发报文时,当前网口的发送缓存区可能会满,此时当前网口可以申请使用二级缓存单元,二级缓存配置32K大小由FPGA内部RAM提供,二级缓存同一时间只能由一个网口使用,只有当前网口缓存报文发送完释放后才由下一个端口申请使用。发送业务控制接收一级缓存单元和二级缓存单元的数据,根据目的端口号报文写入相应端口发送缓存。发送业务控制实时监视每个端口的发送缓存状态,并反馈给一级缓存单元。二级缓存处于空闲态时,发送业务控制将从一级缓存单元读取报文写入相应端口发送缓存区;二级缓存处于工作态时,除了要读取一级缓存,等待占用二级缓存的端口发送缓存非满时,发送业务控制将从二级缓存单元读取转发报文。
根据本发明的另一个实施例,提供了一种基于FPGA内存动态分配的数据交换装置,包括报文接收模块、报文存储模块、以及报文处理模块;其中,
所述报文接收模块用于接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
所述报文存储模块用于将所述转发报文存放至一级缓存单元;
所述报文处理模块用于判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理。
该装置实现各项功能的具体方式与本发明的第一个实施例相同,在此不再赘述。
综上所述,本发明涉及一种基于FPGA内存动态分配的数据交换方法及装置,采用现场可编程FPGA器件实现以太网二层交换处理业务,采用内存动态分配策略,即使用FPGA内部RAM实现一级缓存单元和二级缓存单元作为转发报文缓存,一级缓存单元缓存二层交换处理后的以太网报文,二级缓存单元动态分配给有报文突发传输的某一个端口。一般情况只使用一级缓存单元作为转发报文缓存,当某端口瞬时流量过大时就申请占用二级缓存单元,报文发完后释放二级缓存单元,二级缓存单元动态分配给瞬时流量大的端口,合理高效的使用了FPGA内部缓存,省掉了常规报文缓存策略需要挂载的SDRAM。本发明通过采用内存动态分配策略以解决级联口的报文缓存问题,其中缓存仅使用FPGA内部RAM实现,降低了硬件成本和实现的复杂度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用于说明本发明的技术方案而非对其保护范围的限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本发明后依然可对发明的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在发明待批的权利要求保护范围之内。
Claims (10)
1.一种基于FPGA内存动态分配的数据交换方法,其特征在于,包括步骤:
S1、接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
S2、将所述转发报文存放至一级缓存单元;
S3、判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理。
2.根据权利要求1所述的方法,其特征在于,所述一级缓存单元和二级缓存单元均由FPGA内存提供。
3.根据权利要求2所述的方法,其特征在于,所述二级缓存单元可动态分配。
4.根据权利要求3所述的方法,其特征在于,所述判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理包括:
S31、查询所述目的端口是否占用二级缓存单元,若是,则跳转至步骤S36;若否,则执行步骤S34;
S34、判断所述目的端口的发送缓存是否已满,若是,则执行步骤S35;若否,则跳转至步骤S38;
S35、判断二级缓存单元是否空闲,若是,则执行步骤S36;若否,则报文数据溢出;
S36、将所述转发报文存放至二级缓存单元;
S37、当所述二级缓存单元为非空时,等待直至所述目的端口的发送缓存有空间;
S38、将所述报文数据写入该目的端口的发送缓存并发送。
5.根据权利要4所述的方法,其特征在于,还包括:
若所述二级缓存单元不为非空,则释放所述二级缓存单元的空间。
6.一种基于FPGA内存动态分配的数据交换装置,其特征在于,包括报文接收模块、报文存储模块、以及报文处理模块;其中,
所述报文接收模块用于接收以太网报文,从中解析出转发目的端口并将其封装至转发报文中;
所述报文存储模块用于将所述转发报文存放至一级缓存单元;
所述报文处理模块用于判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理。
7.根据权利要求6所述的装置,其特征在于,所述一级缓存单元和二级缓存单元均由FPGA内存提供。
8.根据权利要求7所述的装置,其特征在于,所述二级缓存单元可动态分配。
9.根据权利要求8所述的装置,其特征在于,所述报文处理模块判断二级缓存单元的占用情况,并根据判断结果对该转发报文进行处理包括:
S31、查询所述目的端口是否占用二级缓存单元,若是,则跳转至步骤S36;若否,则执行步骤S34;
S34、判断所述目的端口的发送缓存是否已满,若是,则执行步骤S35;若否,则跳转至步骤S38;
S35、判断二级缓存单元是否空闲,若是,则执行步骤S36;若否,则报文数据溢出;
S36、将所述转发报文存放至二级缓存单元;
S37、当所述二级缓存单元为非空时,等待直至所述目的端口的发送缓存有空间;
S38、将所述报文数据写入该目的端口的发送缓存并发送。
10.根据权利要求9所述的装置,其特征在于,所述报文处理模块还用于若所述二级缓存单元不为非空,则释放所述二级缓存单元的空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093096.7A CN113836048A (zh) | 2021-09-17 | 2021-09-17 | 一种基于fpga内存动态分配的数据交换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111093096.7A CN113836048A (zh) | 2021-09-17 | 2021-09-17 | 一种基于fpga内存动态分配的数据交换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113836048A true CN113836048A (zh) | 2021-12-24 |
Family
ID=78959887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111093096.7A Pending CN113836048A (zh) | 2021-09-17 | 2021-09-17 | 一种基于fpga内存动态分配的数据交换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836048A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822494A (zh) * | 2020-12-30 | 2021-05-18 | 稿定(厦门)科技有限公司 | 双缓冲编码系统及其控制方法 |
EP4270191A1 (en) * | 2022-04-29 | 2023-11-01 | Schneider Electric Industries SAS | Embedded system and message processing method |
CN117792484A (zh) * | 2024-02-26 | 2024-03-29 | 南京典格通信科技有限公司 | 一种5g卫星通信地面终端业务报文传输方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780252A (zh) * | 2004-11-18 | 2006-05-31 | 华为技术有限公司 | 分组转发设备的缓存资源管理方法 |
CN102404213A (zh) * | 2011-11-18 | 2012-04-04 | 盛科网络(苏州)有限公司 | 报文缓存管理方法及系统 |
CN103685028A (zh) * | 2013-11-30 | 2014-03-26 | 许继电气股份有限公司 | 多类型端口相互通信的方法及装置 |
CN103701718A (zh) * | 2013-12-19 | 2014-04-02 | 华南理工大学 | 变电站通信网络交换机动态缓存分配方法 |
CN105119768A (zh) * | 2015-06-26 | 2015-12-02 | 华为技术有限公司 | 一种现场可编程门阵列fpga及数据存储方法 |
WO2016078341A1 (zh) * | 2014-11-19 | 2016-05-26 | 中兴通讯股份有限公司 | 一种缓存分配方法、装置及网络处理器 |
CN106302242A (zh) * | 2016-09-28 | 2017-01-04 | 南京中新赛克科技有限责任公司 | 一种基于fpga实现报文处理系统及方法 |
CN106961396A (zh) * | 2017-03-21 | 2017-07-18 | 中国南方电网有限责任公司电网技术研究中心 | 基于fpga片内缓存实现sv报文处理的方法和装置 |
-
2021
- 2021-09-17 CN CN202111093096.7A patent/CN113836048A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1780252A (zh) * | 2004-11-18 | 2006-05-31 | 华为技术有限公司 | 分组转发设备的缓存资源管理方法 |
CN102404213A (zh) * | 2011-11-18 | 2012-04-04 | 盛科网络(苏州)有限公司 | 报文缓存管理方法及系统 |
CN103685028A (zh) * | 2013-11-30 | 2014-03-26 | 许继电气股份有限公司 | 多类型端口相互通信的方法及装置 |
CN103701718A (zh) * | 2013-12-19 | 2014-04-02 | 华南理工大学 | 变电站通信网络交换机动态缓存分配方法 |
WO2016078341A1 (zh) * | 2014-11-19 | 2016-05-26 | 中兴通讯股份有限公司 | 一种缓存分配方法、装置及网络处理器 |
CN105119768A (zh) * | 2015-06-26 | 2015-12-02 | 华为技术有限公司 | 一种现场可编程门阵列fpga及数据存储方法 |
CN106302242A (zh) * | 2016-09-28 | 2017-01-04 | 南京中新赛克科技有限责任公司 | 一种基于fpga实现报文处理系统及方法 |
CN106961396A (zh) * | 2017-03-21 | 2017-07-18 | 中国南方电网有限责任公司电网技术研究中心 | 基于fpga片内缓存实现sv报文处理的方法和装置 |
Non-Patent Citations (2)
Title |
---|
MICHAL KEKELY 等: "General memory efficient packet matching FPGA architecture for future high-speed networks", MICROPROCESSORS AND MICROSYSTEMS, vol. 73 * |
何宇航 等: "基于FPGA的智能变电站网络报文处理装置设计", 工业控制计算机, vol. 29, no. 5 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822494A (zh) * | 2020-12-30 | 2021-05-18 | 稿定(厦门)科技有限公司 | 双缓冲编码系统及其控制方法 |
EP4270191A1 (en) * | 2022-04-29 | 2023-11-01 | Schneider Electric Industries SAS | Embedded system and message processing method |
CN117792484A (zh) * | 2024-02-26 | 2024-03-29 | 南京典格通信科技有限公司 | 一种5g卫星通信地面终端业务报文传输方法 |
CN117792484B (zh) * | 2024-02-26 | 2024-05-10 | 南京典格通信科技有限公司 | 一种5g卫星通信地面终端业务报文传输方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113836048A (zh) | 一种基于fpga内存动态分配的数据交换方法及装置 | |
CN108809854B (zh) | 一种用于大流量网络处理的可重构芯片架构 | |
CN111104775B (zh) | 一种片上网络拓扑结构及其实现方法 | |
CN110545152B (zh) | 一种以太网中具有实时传输功能的上位机及以太网系统 | |
US9444737B2 (en) | Packet data processor in a communications processor architecture | |
CN111464505B (zh) | 消息处理方法、设备、装置、存储介质及处理器 | |
KR20140048815A (ko) | Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열 | |
WO2022040847A1 (zh) | 通信数据处理方法及装置 | |
CN109408424A (zh) | 一种基于PCIe接口的SpaceFibre总线数据采集方法 | |
JP3214454B2 (ja) | プログラム内蔵方式パケット処理装置 | |
US9336162B1 (en) | System and method for pre-fetching data based on a FIFO queue of packet messages reaching a first capacity threshold | |
CN114513472A (zh) | 网络拥塞控制方法及装置 | |
US5748633A (en) | Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device | |
CN101707599A (zh) | 故障录波系统中基于dsp的以太网通信方法 | |
CN107332794A (zh) | 一种面向时间触发通信的动态锁定时槽方法 | |
CN114531488A (zh) | 一种面向以太网交换器的高效缓存管理系统 | |
CN114095901A (zh) | 通信数据处理方法及装置 | |
CN107995315B (zh) | 业务板间信息的同步方法、装置、存储介质及计算机设备 | |
US12013804B2 (en) | Integrated circuit, data processing device and method | |
WO2023130835A1 (zh) | 一种数据交换方法及装置 | |
GB2399662A (en) | Data processing unit for inserting event data representing an asynchronous event into a synchronous data stream | |
US20220200905A1 (en) | Heterogeneous link data translation and distribution method, system and device, and storage medium | |
WO2023030195A1 (zh) | 缓存管理方法和装置、控制程序及控制器 | |
JP2009512345A (ja) | 衝突型データネットワークのキャパシティーを増大させるシステムと方法 | |
CN110297785A (zh) | 一种基于fpga的金融数据流控装置和流控方法 |
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 |