本发明专利技术公开了一种缓存管理方法及装置,该方法,应用于现场可编程门阵列FPGA实现航电全双工实时以太网AFDX通信协议的过程中,FPGA管理存储器的场景下,包括:确定存储器可使用的连续地址段的起始地址和结束地址,按照预定义的内存片长度,在所述起始地址和结束地址的范围内对存储器进行分片得到内存片,保存分片得到的内存片的首地址;在接收到内存请求方发送的申请分配信号后,查询是否有可用的内存片,如果有,则按照内存请求方请求内存的大小为内存请求方分配内存片,并将分配的内存片的首地址发送给内存请求方。本发明专利技术能够实现在AFDX通信协议的FPGA实现过程中缓存的有效分配和释放。
【技术实现步骤摘要】
【专利摘要】本专利技术公开了一种缓存管理方法及装置,该方法,应用于现场可编程门阵列FPGA实现航电全双工实时以太网AFDX通信协议的过程中,FPGA管理存储器的场景下,包括:确定存储器可使用的连续地址段的起始地址和结束地址,按照预定义的内存片长度,在所述起始地址和结束地址的范围内对存储器进行分片得到内存片,保存分片得到的内存片的首地址;在接收到内存请求方发送的申请分配信号后,查询是否有可用的内存片,如果有,则按照内存请求方请求内存的大小为内存请求方分配内存片,并将分配的内存片的首地址发送给内存请求方。本专利技术能够实现在AFDX通信协议的FPGA实现过程中缓存的有效分配和释放。【专利说明】一种缓存管理方法及装置
本专利技术涉及航电全双工实时以太网通信协议的实现,尤其涉及一种缓存管理方法及装置。
技术介绍
AFDX (Av1nics Full Duplex Switched Ethernet,航电全双工实时以太网)是空中客车公司根据ARINC664规范,针对确定的飞行器数据网络(Aircraft Data Networks)而实现的技术。目前已被广泛用于互连航空飞行器中的电子系统,如发动机、飞行控制部件、巡航系统等。迄今为止,AFDX已使用在A380,A400M和波音B787项目中。 在该协议的实现过程中,需要大容量的存储器对数据包进行缓存,那么就需要对该大容量存储器的存储空间进行管理,如果使用FPGA (Field Programmable Gate Array,现场可编程门阵列)进行存储器的管理,目前没有合适的方式,或者不适用于AFDX协议实现过程中的数据缓存管理。
技术实现思路
本专利技术要解决的技术问题是提供一种缓存管理方法及装置,能够在AFDX通信协议的FPGA实现过程,实现FPGA管理存储器。 为解决上述技术问题,本专利技术的一种缓存管理方法,应用于现场可编程门阵列FPGA实现航电全双工实时以太网AFDX通信协议的过程中,FPGA管理存储器的场景下,包括: 确定存储器可使用的连续地址段的起始地址和结束地址,按照预定义的内存片长度,在所述起始地址和结束地址的范围内对存储器进行分片得到内存片,保存分片得到的内存片的首地址; 在接收到内存请求方发送的申请分配信号后,查询是否有可用的内存片,如果有,则按照内存请求方请求内存的大小为内存请求方分配内存片,并将分配的内存片的首地址发送给内存请求方。 进一步地,所述保存分片得到的内存片的首地址,包括:将分片得到的内存片的首地址写入管理队列; 所述查询是否有可用的内存片,包括:查询所述管理队列中是否存在内存片的首地址,如果存在,则确定有可用的内存片; 在将分配的内存片的首地址发送给内存请求方后,从所述管理队列中删除已分配的内存片的首地址。 进一步地,所述预定义的内存片长度根据不同FPGA管理的存储器进行确定,同一个FPGA管理的存储器的每个内存片的长度均相同。 进一步地,还包括: 在所述内存请求方请求内存的大小大于一个内存片的大小时,为所述内存请求方分配多个内存片,并且,所述内存请求方建立分配的多个内存片之间的联系。 进一步地,还包括: 在所述内存请求方释放申请到的内存片并将释放的内存片的首地址写入到内存请求方对应的释放队列中后,将内存请求方对应的释放队列中的内存片的首地址写入所述管理队列,并从释放队列中删除。 进一步地,还包括: 在将分配的内存片的首地址发送给内存请求方时,向内存请求方发送地址有效信号,通过地址有效信号向内存请求方指示发送的内存片的首地址有效。 进一步地,一种缓存管理装置,应用于现场可编程门阵列FPGA实现航电全双工实时以太网AFDX通信协议的过程中,FPGA管理存储器的场景下,包括:管理队列初始化模块和内存分配模块,其中: 所述管理队列初始化模块,用于确定存储器可使用的连续地址段的起始地址和结束地址,按照预定义的内存片长度,在所述起始地址和结束地址的范围内对存储器进行分片得到内存片,保存分片得到的内存片的首地址; 所述内存分配模块,用于在接收到内存请求方发送的申请分配信号后,查询是否有可用的内存片,如果有,则按照内存请求方请求内存的大小为内存请求方分配内存片,并将分配的内存片的首地址发送给内存请求方。 进一步地,所述管理队列初始化模块,具体用于将分片得到的内存片的首地址写入管理队列; 所述内存分配模块,具体用于查询所述管理队列中是否存在内存片的首地址,如果存在,则确定有可用的内存片;还用于在将分配的内存片的首地址发送给内存请求方后,从所述管理队列中删除已分配的内存片的首地址。 进一步地,所述预定义的内存片长度根据不同的FPGA管理的存储器进行确定,同一个FPGA管理的存储器的每个内存片的长度均相同。 进一步地,该装置还包括内存释放管理模块,其中: 所述内存释放管理模块,用于在所述内存请求方释放申请到的内存片并将释放的内存片的首地址写入内存请求方对应的释放队列中后,将内存请求方对应的释放队列中的内存片的首地址写入所述管理队列,并从释放队列中删除。 综上所述,本专利技术通过对存储器的可使用的连续地址段进行分片,为内存请求方分配内存片,实现FPGA对存储器的管理,能够实现在AFDX通信协议的FPGA实现过程中缓存的有效分配和释放。 【专利附图】【附图说明】 图1为本专利技术实施方式的缓存管理方法的流程图; 图2为本专利技术实施方式的缓存管理装置的架构图。 【具体实施方式】 为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。 如图1所示,本实施方式的缓存管理方法应用于对AFDX通信协议的FPGA实现过程中的FPGA进行缓存管理的场景下,包括: 步骤101:管理队列初始化,管理队列初始化模块确定可以使用的连续地址段的起始地址和结束地址; 存储器的可以使用的连续地址段是指在此地址段范围内的连续内存空间可以使用。 本实施方式中将实现过程中使用到的不同种类的存储器抽象成为一个通过地址寻址的、带有数据输入输出接口的存储器,这样对于地址的管理将会简化很多程序。 步骤102:按照预定义的内存片长度,对连续地址段进行分片,保存分片得到的内存片的首地址; 保存分片得到的内存片的首地址,包括:将分片得到的内存片的首地址写入管理队列。本实施方式中通过管理队列保存内存片的首地址可以方便的管理内存片,通过内存片的首地址可以方便的定位到相应的内存片,通过管理队列保存内存片的首地址,可以方便的进行内存片使用情况查询以及内存片分配等操作。 对存储器分片的过程直到对起始地址和结束地址范围内的内存空间分片完毕,或者管理队列满,即完成了管理队列的初始化。 分片的过程是一个计算的过程,按照预定义的内存片长度计算出起始地址和结束地址范围内的每个内存片的首地址。 如,对于一个8K的连续地址段,预定义的内存片长度2K,那么可以分片出4个内存片,将4个内存片的首地址顺序写到管理队列中。 本实施方式中考虑到使用FPGA实现存储器管理时,对于零散的或者变长的内存进行管理是很难实现的,所以本文档来自技高网...
【技术保护点】
一种缓存管理方法,其特征在于,应用于现场可编程门阵列FPGA实现航电全双工实时以太网AFDX通信协议的过程中,FPGA管理存储器的场景下,包括:确定存储器可使用的连续地址段的起始地址和结束地址,按照预定义的内存片长度,在所述起始地址和结束地址的范围内对存储器进行分片得到内存片,保存分片得到的内存片的首地址;在接收到内存请求方发送的申请分配信号后,查询是否有可用的内存片,如果有,则按照内存请求方请求内存的大小为内存请求方分配内存片,并将分配的内存片的首地址发送给内存请求方。
【技术特征摘要】
【专利技术属性】
技术研发人员:苗佳旺,杨水华,胡永锋,原中亮,安东明,李鹏英,汪伟,赵伟华,阳坤,郑云龙,吴顺,
申请(专利权)人:北京旋极信息技术股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。