CN118018503A - 缓存管理方法、装置、电子设备和计算机可读存储介质 - Google Patents
缓存管理方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN118018503A CN118018503A CN202410148206.2A CN202410148206A CN118018503A CN 118018503 A CN118018503 A CN 118018503A CN 202410148206 A CN202410148206 A CN 202410148206A CN 118018503 A CN118018503 A CN 118018503A
- Authority
- CN
- China
- Prior art keywords
- pointer
- release state
- cpu
- dma
- instruction
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 117
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000011084 recovery Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 5
- 239000000725 suspension Substances 0.000 claims description 4
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 208000000044 Amnesia Diseases 0.000 description 1
- 208000026139 Memory disease Diseases 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006984 memory degeneration Effects 0.000 description 1
- 208000023060 memory loss Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明实施例提供的缓存管理方法、装置、电子设备和计算机可读存储介质,涉及通信技术领域,该方法包括:接收到指针资源,指针资源由DMA和/或CPU处于继续释放状态时释放,根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量,将当前指针资源数量与指针资源阈值进行比较,若当前指针资源数量大于指针资源阈值,则配置DMA处于暂停释放状态,并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态。通过设置指针资源阈值,当当前指针资源数量大于指针资源阈值时,控制CPU和DMA停止释放指针资源,避免出现BPP管理模块释放指针回写DDR被堵住的情况,从而可以防止指针丢失,内存丢失。
Description
技术领域
本发明涉及通信技术领域,具体而言,涉及一种缓存管理方法、装置、电子设备和计算机可读存储介质。
背景技术
报文的转发大体分为两类,一类是使用专用的交换芯片来指导报文进行转发,比如路由器,交换机等,简称为硬转发;另一类是通过通用平台仅使用(Central ProcessingUnit,CPU)来指导报文进行转发,简称为软转发。
网络交换技术中通常会使用CPU和直接内存访问(Direct Memory Access,DMA)协同完成软转发。在转发报文时,需要申请一段连续的物理内存空间用来存储软转发需处理的报文。
现有技术中,网络环境中会有大量报文处理,总线上会有频繁的读写操作,在硬件管理软转发内存的模式下,当出现突发流量导致读写带宽超过总线能力时,会出现硬件中的缓存指针池(Buffer Pointer Pool,BPP)管理模块释放指针回写双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR)被堵住的情况,如果此时CPU/DMA还在不断释放指针,则会导致指针丢失,进而导致内存丢失。
发明内容
本发明的目的在于提供一种缓存管理方法、装置、电子设备和计算机可读存储介质,以解决BPP管理模块释放指针回写DDR被堵住的情况下,导致指针丢失,进而导致内存丢失的问题。
第一方面,本发明提供一种缓存管理方法,应用于交换芯片的BPP管理模块,所述BPP管理模块分别与所述交换芯片的DMA以及CPU通信连接;所述方法包括:
接收到指针资源;所述指针资源由所述DMA和/或所述CPU处于继续释放状态时释放;所述继续释放状态用于指示继续释放所述指针资源;
根据所述指针资源对所述BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量;
将所述当前指针资源数量与指针资源阈值进行比较;
若所述当前指针资源数量大于所述指针资源阈值,则配置所述DMA处于暂停释放状态;并向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态;所述暂停释放状态用于指示停止释放所述指针资源。
在可选的实施方式中,所述方法还包括:
若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则配置所述DMA处于继续释放状态;并向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态;所述继续释放状态用于指示继续释放所述指针资源。
在可选的实施方式中,所述BPP管理模块中设置有暂停信号位以及指令位;所述配置所述DMA处于暂停释放状态的步骤,包括:
将所述暂停信号位配置为所述暂停释放状态,以配置所述DMA处于暂停释放状态;
所述向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态的步骤,包括:
将所述指令位配置为所述暂停释放状态,并向所述CPU发送所述中断指令;
所述配置所述DMA处于继续释放状态的步骤,包括:
将所述暂停信号为配置为所述继续释放状态,以配置所述DMA处于继续释放状态;
所述向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态的步骤,包括:
将所述指令位配置为所述继续释放状态,并向所述CPU发送所述恢复指令。
在可选的实施方式中,所述指令位包括中断指令位。
在可选的实施方式中,所述指令位包括中断指令位以及恢复指令位。
第二方面,本发明提供一种缓存管理装置,应用于交换芯片的BPP管理模块,所述BPP管理模块分别与所述交换芯片的DMA以及CPU通信连接;所述装置包括:
指针资源接收模块,用于接收到指针资源;所述指针资源由所述DMA和/或所述CPU处于继续释放状态时释放;所述继续释放状态用于指示继续释放所述指针资源;
当前指针资源数量获取模块,用于根据所述指针资源对所述BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量;
比较模块,用于将所述当前指针资源数量与指针资源阈值进行比较;
状态配置模块,用于若所述当前指针资源数量大于所述指针资源阈值,则配置所述DMA处于暂停释放状态;并向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态;所述暂停释放状态用于指示停止释放所述指针资源。
在可选的实施方式中,所述状态配置模块还用于若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则配置所述DMA处于继续释放状态;并向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态。
在可选的实施方式中,所述BPP管理模块中设置有暂停信号位以及指令位;
所述状态配置模块还用于若所述当前指针资源数量大于所述指针资源阈值,则将所述暂停信号位配置为所述暂停释放状态,以配置所述DMA处于暂停释放状态;将所述指令位配置为所述暂停释放状态,并向所述CPU发送所述中断指令;
所述状态配置模块还用于若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则将所述暂停信号为配置为所述继续释放状态,以配置所述DMA处于继续释放状态;将所述指令位配置为所述继续释放状态,并向所述CPU发送所述恢复指令。
第三方面,本发明提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行的计算机程序以实现前述实施方式任一所述的缓存管理方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的缓存管理方法。
本发明实施例提供的缓存管理方法、装置、电子设备和计算机可读存储介质,应用于交换芯片的BPP管理模块,BPP管理模块分别与交换芯片的DMA以及CPU通信连接,该方法包括:接收到指针资源,指针资源由DMA和/或CPU处于继续释放状态时释放,根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量,将当前指针资源数量与指针资源阈值进行比较,若当前指针资源数量大于指针资源阈值,则配置DMA处于暂停释放状态,并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态,暂停释放状态用于指示停止释放指针资源。通过设置指针资源阈值,当当前指针资源数量大于指针资源阈值时,控制CPU和DMA停止释放指针资源,避免出现BPP管理模块释放指针回写DDR被堵住的情况,从而可以防止指针丢失,内存丢失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的缓存管理方法的一种应用环境示意图;
图2示出了本发明实施例提供的缓存管理方法的一种流程示意图;
图3示出了本发明实施例提供的DMA释放指针资源的一种流程示意图;
图4示出了本发明实施例提供的CPU释放指针资源的一种流程示意图;
图5示出了本发明实施例提供的缓存管理装置的模块框图;
图6示出了本发明实施例提供的电子设备的方框示意图。
图标:100-电子设备;110-交换芯片;111-BPP管理模块;112-DMA;120-CPU;130-DDR;140-存储器;150-通信模块;200-缓存管理装置;210-指针资源接收模块;220-当前指针资源数量获取模块;230-比较模块;240-状态配置模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
请参阅图1,图1示出了本发明实施例提供的缓存管理方法的一种应用环境示意图。电子设备中包括交换芯片110、CPU120以及DDR130,交换芯片110包括BPP管理模块111;
其中,BPP管理模块111分别与交换芯片110的DMA112以及CPU120通信连接,以实现BPP管理模块111与DMA112以及CPU120之间的数据交互。
交换芯片110与DDR130通信连接,以实现BPP管理模块111与DMA112以及DDR130之间的数据交互。
具体的,CPU120在DDR130中创建BPP来管理DDR130的缓存(Buffer)中每块内存,每个指针资源对应一块缓存,BPP管理模块111中针对BPP中的指针资源维护一个数据缓冲器(First Input First Output,FIFO)。
在进行报文转发的过程中,BPP管理模块111从DDR130的BPP中批量申请指针资源存储到FIFO中,以供CPU120/DMA112收发包时存储报文使用,若CPU120/DMA112处理完报文需要释放指针资源,则批量还到FIFO中,当FIFO快满的时候再将内部的指针资源批量还到DDR130中。BPP管理模块的指针资源的数量就是FIFO中指针资源的数量。
然而,在实际应用中,网络环境中会有大量数据通信处理,总线上会有频繁的读写操作,当出现突发大流量数据导致读写带宽超过总线能力时,会出现硬件中BPP管理模块111释放指针资源回写DDR130被堵住的情况,此时CPU120/DMA112还在不断向BPP管理模块111释放指针资源,会出现BPP管理模块111接收到的指针资源的数量超过BPP管理模块111可维护的指针资源的总数的情况,因此会导致指针资源溢出,溢出的指针资源丢失,进而导致内存丢失。
因此,为了解决上述问题,本申请核心的技术方案在于:引入一种指针资源阈值,对于CPU120/DMA112的状态的维护与指针资源的释放进行控制,保证在BPP管理模块111的指针资源的数量大于指针阈值时,控制CPU120/DMA112处于暂停释放状态,停止释放指针资源,从而避免上述硬件中BPP管理模块111释放指针资源回写DDR130被堵住情况的发生。
具体的,下面提供一种应用上述缓存管理机制可能的实现方式,请参阅图2,图2示出了本发明实施例提供的缓存管理方法的一种流程示意图。该缓存管理方法可以应用于如上文图1所示交换芯片的BPP管理模块,BPP管理模块分别与交换芯片的DMA以及CPU通信连接,下面以BPP管理模块为例,说明本实施例的具体流程。下面针对图2所示的流程进行详细的阐述,该缓存管理方法具体可以包括以下步骤:
步骤S140:接收到指针资源;
其中,指针资源由DMA和/或CPU处于继续释放状态时释放,继续释放状态用于指示继续释放指针资源。
在DMA和/或CPU处理完报文后释放对应的指针资源,将该指针资源还到BPP管理模块中,BPP管理模块接收由DMA和/或CPU释放的指针资源。
在一些实施方式中,在DMA和CPU中设置释放条件,DMA可以获取BPP管理模块的状态,当BPP管理模块的状态满足DMA中设置的释放条件时,DMA才释放指针资源,BPP管理模块接收DMA释放的指针资源,CPU可以获取BPP管理模块的状态,当BPP管理模块的状态满足CPU中设置的释放条件时,CPU才释放指针资源,BPP管理模块接收CPU释放的指针资源。释放条件可以为BPP管理模块中可使用性能以及工作状态等,在此不做限定。DMA和CPU中设置的释放条件可以相同也可以不同。
例如,DMA和CPU中设置的释放条件均为BPP管理模块可以正常工作,若DMA获取BPP管理模块的工作状态为正常工作状态,则DMA释放指针资源,BPP管理模块接收到DMA释放的指针资源;若CPU获取BPP管理模块的工作状态为异常工作状态,则CPU不释放指针资源,BPP管理模块接收不到CPU释放的指针资源。
步骤S150:根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量。
BPP管理模块接收到DMA/CPU释放的指针资源后,根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量。DMA/CPU释放的指针资源的数量可以为一个也可以为多个,在此不做限定。
例如,BPP管理模块的指针资源的数量为10,BPP管理模块接收到DMA释放的一个指针资源,BPP管理模块根据该指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量为11。
步骤S160:将当前指针资源数量与指针资源阈值进行比较。
BPP管理模块中可以预先设置并存储有指针资源阈值,BPP管理模块可以将当前指针资源与指针阈值进行比较,根据比较结果配置CPU和DMA释放指针资源的状态。
其中,指针资源阈值可以根据BPP管理模块中可以管理的指针资源的数量设置,指针资源阈值也可以根据实际应用时BPP管理模块的运行状态设置,在此不做限定。
步骤S170:若当前指针资源数量大于指针资源阈值,则配置DMA处于暂停释放状态;并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态。
其中,暂停释放状态用于指示停止释放指针资源。
可以理解的是,当前指针资源数量大于指针资源阈值时,说明BPP管理模块不能维护当前指针资源数量的指针资源,不能再继续接收DMA和/或CPU释放的指针资源,因此需要控制DMA和CPU停止释放指针资源。
本发明实施例提供的缓存管理方法,接收到指针资源,指针资源由DMA和/或CPU处于继续释放状态时释放,根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量,将当前指针资源数量与指针资源阈值进行比较,若当前指针资源数量大于指针资源阈值,则配置DMA处于暂停释放状态,并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态,暂停释放状态用于指示停止释放指针资源。通过设置指针资源阈值,当当前指针资源数量大于指针资源阈值时,控制CPU和DMA停止释放指针资源,避免出现BPP管理模块释放指针回写DDR被堵住的情况,从而可以防止指针丢失,内存丢失。
在一些实施方式中,继续参见图2,在步骤S160之后,还包括:
步骤S180:若当前指针资源数量小于或等于指针资源阈值,且DMA以及CPU均为暂停释放状态,则配置DMA处于继续释放状态;并向CPU发送恢复指令,以使CPU根据恢复指令配置为继续释放状态。当前指针资源数量小于或等于指针资源阈值,且DMA以及CPU均为暂停释放状态,其意味着BPP管理模块维护的当前指针资源数量还没有超过BPP管理模块可维护指针资源的数量上限,但是DMA和CPU均停止释放指针资源,此时可以控制CPU和DMA继续释放指针资源,配置DMA处于继续释放状态,并向CPU发送恢复指令,以使CPU根据恢复指令配置为继续释放状态。
可选地,为了实现控制DMA和CPU释放指针资源的状态,BPP管理模块中可以设置有暂停信号位以及指令位;进而,对于上述步骤S170和步骤S180,其可以利用暂停信号位以及指令位来实现,具体的:
若当前指针资源数量大于指针资源阈值,则将暂停信号位配置为暂停释放状态,以配置DMA处于暂停释放状态,并将指令位配置为暂停释放状态,并向CPU发送中断指令;
若当前指针资源数量小于或等于指针资源阈值,且DMA以及CPU均为暂停释放状态,则将暂停信号为配置为继续释放状态,以配置DMA处于继续释放状态,并将指令位配置为继续释放状态,并向CPU发送恢复指令。
需要说明的是,DMA以及CPU的状态可以通过读取暂停信号位的状态获得,当暂停信号位为暂停释放状态时,表征DMA以及CPU均为暂停释放状态,由于若当前指针资源数量大于指针资源阈值,则会将暂停信号位以及指令位均配置为暂停释放状态,因此仅读取暂停信号位的状态就可以获取DMA以及CPU的状态。
作为一种实施方式,当暂停信号位为1时,表征暂停信号位为暂停释放状态;当暂停信号位为0时,表征暂停信号位为继续释放状态。当指令位为1时,表征指令位为暂停释放状态,当指令位为0时,表征指令位为继续释放状态。
例如,若当前指针资源数量大于指针资源阈值,则将暂停信号位配置为1,以配置DMA处于暂停释放状态,并将指令位配置为1,向CPU发送中断指令;若当前指针资源数量小于或等于指针资源阈值,则将暂停信号位配置为0,以配置DMA处于继续释放状态,并将指令位配置为0,向CPU发送恢复指令。
作为一种实施方式,指令为可以包括中断指令位,若当前指针资源数量大于指针资源阈值,则将中断指令位配置为暂停释放状态,向CPU发送中断指令;若当前指针资源数量小于或等于指针资源阈值,则将中断指令位配置为继续释放状态,向CPU发送恢复中断指令。
具体地,当中断指令位为1时,表征中断指令位为暂停释放状态,当中断指令位为0时,表征中断指令位为继续释放状态。
例如,若当前指针资源数量大于指针资源阈值,则将中断指令位配置为1,向CPU发送中断指令;若当前指针资源数量小于或等于指针资源阈值,则将中断指令位配置为0,向CPU发送恢复中断指令。
作为另一种实施方式,为了降低软件程序的复杂度,既无需设置一个线程实时监控中断指令位的状态,指令位可以包括中断指令位以及恢复指令位。若中断指令位以及恢复指令位均为继续释放状态,则向CPU发送恢复指令;若中断指令位以及恢复指令位均为暂停释放状态,则向CPU发送中断指令。其中,恢复指令可以为一种清除中断指令,该清除中断指令可以用于清除CPU中指示停止释放指针资源的中断指令。
具体地,当中断指令位为1时,表征中断指令位为暂停释放状态;当中断指令位为0时,表征中断指令位为继续释放状态;当恢复指令位为1时,表征中断指令位为继续释放状态;当恢复指令位为0时,表征中断指令位为暂停释放状态。
例如,若中断指令位为1,且恢复指令位为0,则向CPU发送暂停指令;若中断指令位为0,且恢复指令位为1,则向CPU发送恢复指令。需要说明的是,通过中断指令位和恢复指令位两个标志位主动向CPU发送指令,以通知CPU是否可以释放指针资源的大小情况,就不用设置线程实时监控中断指令位的状态,只要CPU接收到中断指令就停止释放指针资源,CPU接收到恢复指令就继续释放指针资源,可以降低软件程序的复杂度,并且能够提升软转发的性能。
下面结合上述示例提供的各个流程,对本申请可执行的完整方案进行示例性说明,具体的,以DMA进行指针资源释放为例,图3为DMA释放指针资源的过程,具体过程如下:
DMA读取BPP管理模块中暂停信号位的状态;
若暂停信号位为暂停释放状态,则DMA处于暂停释放状态,DMA暂停释放指针资源;
若暂停信号位为继续释放状态,则DMA处于继续释放状态,DMA继续释放指针资源;
BPP管理模块接收DMA释放的指针资源,BPP管理模块根据DMA释放的指针资源对BPP管理模块的指针资源数量进行更新,获得当前指针资源数量;
BPP管理模块将当前指针资源数量与指针资源阈值进行比较;
若当前指针资源数量大于指针资源阈值,则BPP管理模块将暂停信号位配置为暂停释放状态,以配置DMA处于暂停释放状态;并将中断指令位以及恢复指令为均配置为暂停释放状态,并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态;
若当前指针资源数量小于或等于指针资源阈值,且暂停信号位为暂停释放状态,将暂停信号位配置为继续释放状态,以配置DMA处于继续释放状态,并将中断指令位以及恢复指令为均配置为继续释放状态,并向CPU发送恢复指令,以使CPU根据恢复指令配置为继续释放状态。
下面结合上述示例提供的各个流程,对本申请可执行的完整方案进行示例性说明,具体的,以CPU进行指针资源释放为例,图4为CPU释放指针资源的过程,具体过程如下:
CPU读取BPP管理模块的中断指令位以及恢复指令位的状态;
若中断指令位以及恢复指令位均为暂停释放状态,则CPU处于暂停释放状态,CPU停止释放指针资源;
若中断指令位以及恢复指令位均为继续释放状态,则CPU处于继续释放状态,CPU继续释放指针资源;
BPP管理模块接收CPU释放的指针资源,BPP管理模块根据CPU释放的指针资源对BPP管理模块的指针资源数量进行更新,获得当前指针资源数量;
BPP管理模块将当前指针资源数量与指针资源阈值进行比较;
若当前指针资源数量大于指针资源阈值,则BPP管理模块将暂停信号位配置为暂停释放状态,以配置DMA处于暂停释放状态;并将中断指令位以及恢复指令位均配置为暂停释放状态,并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态;
若当前指针资源数量小于或等于指针资源阈值,且暂停信号位为暂停释放状态,则BPP管理模块将暂停信号为配置为继续释放状态,以配置DMA处于继续释放状态,并将中断指令位以及恢复指令位均配置为继续释放状态,并向CPU发送恢复指令,以使CPU根据恢复指令配置为继续释放状态。
本发明实施例提供的缓存管理方法,通过在BPP管理模块中设置指针资源阈值,根据BPP管理模块中的指针资源的数量是否超过指针资源阈值,配置暂停信号位、中断指令位以及恢复中断位的状态,进而控制DMA和CPU释放指针资源的状态,可以有效避免BPP管理模块释放指针资源回写DDR被堵住的情况,从而防止指针丢失,内存丢失,并且通过中断指令位和恢复指令位发送两个指令通知CPU当前指针资源数量是否超过指针资源阈值,可以降低软件程序的复杂度,并且提高软转发的性能。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种缓存管理装置的实现方式。进一步地,请参阅图5,图为本发明实施例提供的一种缓存管理装置的功能模块图。需要说明的是,本实施例所提供的缓存管理装置,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该缓存管理装置200包括:指针资源接收模块210、当前指针资源数量获取模块220、比较模块230以及状态配置模块240,其中:
指针资源接收模块210,用于接收到指针资源;指针资源由DMA和/或CPU处于继续释放状态时释放;所述继续释放状态用于指示继续释放所述指针资源;
当前指针资源数量获取模块220,用于根据指针资源对BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量;
比较模块230,用于将当前指针资源数量与指针资源阈值进行比较;
状态配置模块240,用于若当前指针资源数量大于指针资源阈值,则配置DMA处于暂停释放状态;并向CPU发送中断指令,以使CPU根据中断指令配置为暂停释放状态;暂停释放状态用于指示停止释放指针资源。
进一步地,状态配置模块240具体还用于若当前指针资源数量小于或等于指针资源阈值,且DMA以及CPU均为暂停释放状态,则配置DMA处于继续释放状态;并向CPU发送恢复指令,以使CPU根据恢复指令配置为继续释放状态。
进一步地,BPP管理模块中设置有暂停信号位以及指令位,状态配置模块240具体还用于将暂停信号位配置为暂停释放状态,以配置DMA处于暂停释放状态;将指令位配置为暂停释放状态,并向CPU发送中断指令;将暂停信号为配置为继续释放状态,以配置DMA处于继续释放状态;将指令位配置为继续释放状态,并向CPU发送恢复指令。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参照图6,是本发明实施例提供的电子设备100的方框示意图。电子设备100包括存储器140、CPU120及通信模块150。存储器140、CPU 120以及通信模块150各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器140用于存储程序或者数据。存储器140可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
CPU 120用于读/写存储器中存储的数据或程序,并执行相应地功能。例如,当存储器140中存储的计算机程序被CPU120执行时,可以实现上述各实施例所揭示的缓存管理方法。
通信模块150用于通过网络建立电子设备100与其它设备之间的通信连接,并用于通过网络收发数据。
应当理解的是,图6所示的结构仅为电子设备的结构示意图,电子设备还可包括比图6中所示更多或者更少的组件。图6中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读介质中存储有计算机程序,计算机程序可被处理器执行时实现上述方法实施例中所描述的缓存管理方法。
计算机可读存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种缓存管理方法,其特征在于,应用于交换芯片的BPP管理模块,所述BPP管理模块分别与所述交换芯片的DMA以及CPU通信连接;所述方法包括:
接收到指针资源;所述指针资源由所述DMA和/或所述CPU处于继续释放状态时释放;所述继续释放状态用于指示继续释放所述指针资源;
根据所述指针资源对所述BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量;
将所述当前指针资源数量与指针资源阈值进行比较;
若所述当前指针资源数量大于所述指针资源阈值,则配置所述DMA处于暂停释放状态;并向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态;所述暂停释放状态用于指示停止释放所述指针资源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则配置所述DMA处于继续释放状态;并向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态。
3.根据权利要求2所述的方法,其特征在于,所述BPP管理模块中设置有暂停信号位以及指令位;所述配置所述DMA处于暂停释放状态的步骤,包括:
将所述暂停信号位配置为所述暂停释放状态,以配置所述DMA处于暂停释放状态;
所述向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态的步骤,包括:
将所述指令位配置为所述暂停释放状态,并向所述CPU发送所述中断指令;
所述配置所述DMA处于继续释放状态的步骤,包括:
将所述暂停信号为配置为所述继续释放状态,以配置所述DMA处于继续释放状态;
所述向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态的步骤,包括:
将所述指令位配置为所述继续释放状态,并向所述CPU发送所述恢复指令。
4.根据权利要求3所述的方法,其特征在于,所述指令位包括中断指令位。
5.根据权利要求3所述的方法,其特征在于,所述指令位包括中断指令位以及恢复指令位。
6.一种缓存管理装置,其特征在于,应用于交换芯片的BPP管理模块,所述BPP管理模块分别与所述交换芯片的DMA以及CPU通信连接;所述装置包括:
指针资源接收模块,用于接收到指针资源;所述指针资源由所述DMA和/或所述CPU处于继续释放状态时释放;所述继续释放状态用于指示继续释放所述指针资源;
当前指针资源数量获取模块,用于根据所述指针资源对所述BPP管理模块的指针资源的数量进行更新,获得当前指针资源数量;
比较模块,用于将所述当前指针资源数量与指针资源阈值进行比较;
状态配置模块,用于若所述当前指针资源数量大于所述指针资源阈值,则配置所述DMA处于暂停释放状态;并向所述CPU发送中断指令,以使所述CPU根据所述中断指令配置为所述暂停释放状态;所述暂停释放状态用于指示停止释放所述指针资源。
7.根据权利要求6所述的装置,其特征在于,所述状态配置模块还用于若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则配置所述DMA处于继续释放状态;并向所述CPU发送恢复指令,以使所述CPU根据所述恢复指令配置为所述继续释放状态。
8.根据权利要求7所述的装置,其特征在于,所述BPP管理模块中设置有暂停信号位以及指令位;
所述状态配置模块还用于若所述当前指针资源数量大于所述指针资源阈值,则将所述暂停信号位配置为所述暂停释放状态,以配置所述DMA处于暂停释放状态;将所述指令位配置为所述暂停释放状态,并向所述CPU发送所述中断指令;
所述状态配置模块还用于若所述当前指针资源数量小于或等于所述指针资源阈值,且所述DMA以及所述CPU均为所述暂停释放状态,则将所述暂停信号为配置为所述继续释放状态,以配置所述DMA处于继续释放状态;将所述指令位配置为所述继续释放状态,并向所述CPU发送所述恢复指令。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机程序,所述处理器可执行的计算机程序以实现权利要求1-5任一所述的缓存管理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410148206.2A CN118018503A (zh) | 2024-02-02 | 2024-02-02 | 缓存管理方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410148206.2A CN118018503A (zh) | 2024-02-02 | 2024-02-02 | 缓存管理方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118018503A true CN118018503A (zh) | 2024-05-10 |
Family
ID=90957414
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410148206.2A Pending CN118018503A (zh) | 2024-02-02 | 2024-02-02 | 缓存管理方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118018503A (zh) |
-
2024
- 2024-02-02 CN CN202410148206.2A patent/CN118018503A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107818056B (zh) | 一种队列管理方法及装置 | |
CN110532205B (zh) | 数据传输方法、装置、计算机设备和计算机可读存储介质 | |
US10417062B2 (en) | Method and apparatus of unloading out of memory processing flow to user space | |
EP3439237A1 (en) | Exception monitoring and alarming method and device | |
CN108141471B (zh) | 压缩数据的方法、装置和设备 | |
CN118018503A (zh) | 缓存管理方法、装置、电子设备和计算机可读存储介质 | |
CN113296061A (zh) | 一种同步脉冲信号的传输方法、系统和电子设备 | |
CN110413398B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN110245013B (zh) | 物联网计算资源管理方法与装置 | |
US10409262B2 (en) | Numerical controller for data request with variable data size | |
CN112748883B (zh) | 一种io请求流水线处理设备、方法、系统及存储介质 | |
CN105406989A (zh) | 处理报文的方法、网卡及系统、更新信息的方法及主机 | |
CN111857546A (zh) | 用于处理数据的方法、网络适配器和计算机程序产品 | |
EP3396553A1 (en) | Method and device for processing data after restart of node | |
JP2010049314A (ja) | タスクスケジューリング装置およびタスクスケジューリング方法 | |
CN112181737A (zh) | 消息处理方法、装置、电子设备及介质 | |
CN108616461B (zh) | 一种策略切换方法及装置 | |
JP2007299126A (ja) | 制御装置及び制御装置用プログラム | |
CN117956054B (zh) | 在rdma中实现定时器处理的方法、系统、芯片及存储介质 | |
CN106331036B (zh) | 一种服务器控制方法及装置 | |
CN114095361B (zh) | 设备汇聚维护方法、装置及网络系统 | |
CN116980362B (zh) | 用于spi架构的多任务处理方法及装置 | |
JPH04345248A (ja) | イベント報告装置 | |
CN117149583A (zh) | 一种业务处理方法及装置 | |
JP2019145909A (ja) | データ処理装置、データ処理方法、およびプログラム |
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 |