CN102045258A - 数据缓存管理方法及装置 - Google Patents
数据缓存管理方法及装置 Download PDFInfo
- Publication number
- CN102045258A CN102045258A CN2010106014688A CN201010601468A CN102045258A CN 102045258 A CN102045258 A CN 102045258A CN 2010106014688 A CN2010106014688 A CN 2010106014688A CN 201010601468 A CN201010601468 A CN 201010601468A CN 102045258 A CN102045258 A CN 102045258A
- Authority
- CN
- China
- Prior art keywords
- target data
- data
- information module
- read
- memory cell
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种数据缓存管理方法及装置。该数据缓存管理方法包括:在写入目标数据时,读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址,若判断获知所述目标数据大于所述第一目标地址对应的存储单元的可用存储空间,则从所述SRAM信息模块获取空闲存储单元的地址指针,将所述目标数据连续写入所述第一目标地址对应的存储空间和所述空闲存储单元,并更新所述SRAM信息模块中存储的第一目标地址;在读取目标数据时,读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址,并从所述第二目标地址对应的存储空间读取所述目标数据。本发明的数据缓存管理方法及装置能够提高大幅提高缓存效率并节省缓存空间。
Description
技术领域
本发明涉及数据通信方法,尤其涉及数据缓存管理方法及装置。
背景技术
流量管理(Traffic Management,以下简称TM)是数据通信系统的核心部分,通过对获取的数据包进行缓存及统计,并在统计的基础上完成输出流量的控制,将所缓存的数据包发送至网络边缘的各个端口和通道。例如一个16Gbps(每秒16Gbit的流量)的数据流,可能包含数十万个通道,这些通道包含:E1、CE1、千兆以太网、百兆以太网等等,因此在TM中就需要有数十万个存储区来保存这数十万个通道的数据,并对他们进行统计,从而控制各通道的数据的输出,实现流量管理,其目的是为了在传输网络发生拥堵的情况下,保障端到端的服务质量(End-to-End Quality ofService,简称端到端QoS)。也就是说保证优先级高的通信链路保持传输畅通,而优先级低的通信链路保证尽力而为传输。
TM通常分为两种:集中式TM和分布式TM。
图1为集中式TM的系统结构示意图。如图1所示,集中式TM是指系统内所有需要传输的数据都经过TM。如图1所示,在该分布式交换系统中应用集中式TM时,所有的数据包处理器(Packet Processor,简称PP)接收到数据包后通过交换结构(Fabric),转发给TM模块;TM模块将所有数据包都保存在基于片外存储设备的缓存(Buffer)中;TM模块根据优先级约定和对缓存中的数据统计,有计划的将数据分发给各个数据包处理器,从而发送出去。
可见,在集中式TM的系统中,TM处于Fabric的核心部分。所有数据包都经过Fabric传输到TM。如果该系统较为复杂,则基于片外存储设备的缓存需要保存数十万个不同种类的数据包,这些数据包形成数十万个数据队列。
在较为复杂的通信环境中,通常应用分布式TM。图2为分布式TM的系统结构示意图。如图2所示,在分布式TM的系统中,对所有数据包的处理不是由单个TM来完成的,而是由多个TM进行分档。在该分布式TM的系统中,TM分为输入TM(Ingress TM,以下简称ITM)和输出TM(Egress TM,以下简称ETM)两部分。在输入路径上,PP将数据转发给ITM;ITM将所有数据包都保存在基于片外存储设备的缓存(Buffer)中;ITM根据ETM的许可信息,将数据包通过Fabric发送给ETM。在输出路径上,ETM通过发给多个ITM许可信息,来控制各个ITM向该ETM发送的数据包量,从而对输出到PP的数据包进行流量管理。
可见,在分布式TM的系统中,多个TM处于各PP和Fabric之间。在分布式TM的系统中,TM接收本地PP的数据包,并转发给Fabric,同时接收从远程PP经由Fabric转发过来的数据包。
由以上分析可以看出,通过数据缓存,实现数据包在极为大量的数据队列中的及时输入和输出,是保障缓存管理效果的关键。
现有技术中解决这一数据缓存问题主要有以下两种方式:
一种是固定深度缓存,即为每个数据通道分配固定深度的缓存单元。应用该方法,极为浪费存储资源,当要缓存的数据通道量越大时,这种方法的缺陷越发严重;
另一种是深度可预设缓存,即预先对缓存深度进行配置。对该方法说明如下:
在这个方案中缓存空间被均分为一个个存储单元(简称Cell,例子中是1024个,每个Cell的大小是16字节),每个Cell都有一个指针,指向该Cell的首地址。通过Cell指针来组织和管理这些Cell。
图3为深度可预设缓存的缓存结构示意图。如图3所示,该缓存结构包括三个列表:通道指针列表、缓存空间列表和链表指针列表。
通道指针列表记录各个通道的缓存的首个Cell的Cell指针。例如,图3中,通道指针列表中,通道1所对应的位置保存着Cell2指针,则表明Cell2是通道1的先入先出(First In First Out,以下简称FIFO)缓存的首个Cell。如果要从通道1中输出数据,则读取Cell2中的数据输出即可。
缓存空间列表记录所有的Cell被哪个通道的缓存所占用。例如,图3中,缓存空间列表的Cell2、3、4和5所对应的位置标记为通道1,则说明通道1的FIFO缓存占用Cell2、3、4和5。
链表指针列表保存各个Cell所链接的下一个Cell指针。例如,图3中,链表指针列表中,Cell2对应的位置保存着Cell3指针,Cell3对应的位置保存着Cell5指针,Cell5对应的位置保存着Cell4指针;Cell4对应的位置保存着Cell2指针,这样组成一个Cell2→Cell3→Cell5→Cell4→Cell2的环形缓存。
可见这个方案存在两个致命缺点:其一是预先配置复杂,另一是在预先配置后,各个缓存的大小是固定的,这大大地影响了灵活性。因此,能够看出,现有技术的缓存管理存在缓存效率低及浪费缓存空间的缺陷。
发明内容
针对上述缺陷,本发明提供一种数据缓存管理方法,包括:
在写入目标数据时,读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址,若判断获知所述目标数据大于所述第一目标地址对应的存储单元的可用存储空间,则从所述SRAM信息模块获取空闲存储单元的地址指针,将所述目标数据连续写入所述第一目标地址对应的存储空间和所述空闲存储单元,并更新所述SRAM信息模块中存储的第一目标地址;
在读取目标数据时,读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址,并从所述第二目标地址对应的存储空间读取所述目标数据。
根据本发明的另一方面,还提供一种数据缓存管理装置,包括读写逻辑模块、SRAM信息模块和DRAM控制模块,其中:
所述读写逻辑模块,用于根据所述数据写入请求/数据读取请求写入目标数据或读取目标数据;在写入目标数据时,从SRAM信息模块获取用于写入目标数据的第一目标地址,若判断获知所述目标数据大于所述第一目标地址对应的存储单元的可用存储空间,则从所述SRAM信息模块获取空闲存储单元的地址指针,将所述目标数据连续写入所述第一目标地址对应的存储空间和所述空闲存储单元,并更新所述SRAM信息模块中存储的第一目标地址;在读取目标数据时,读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址,并从所述第二目标地址对应的存储空间读取所述目标数据;
所述SRAM信息模块,用于存储所述第一目标地址、第二目标地址和所述空闲存储单元的地址指针;
DRAM控制模块,用于在所述读写逻辑模块写入或读取目标数据后,向所述读写逻辑模块提供所述第一目标地址、第二目标地址及所述空闲存储单元的地址,以使所述读写逻辑模块对所述SRAM信息模块进行更新。
根据本发明的数据缓存管理方法及装置,由于在写入数据时,首先获取第一目标地址,该目标地址为在先相应的数据写入的结束地址,并当该目标数据的大小超过SRAM信息模块中记载的用于写入目标数据的当前存储单元中可用存储空间的大小,申请新的存储单元,连续向该当前存储单元及新申请的存储单元中存取目标数据,即实现了将目标数据存储在连续的存储单元中,而非各次进行数据写入时均直接分配新的存储单元,将数据分散地存储在多个存储单元中。通过采用这种数据写入方式,能够大幅缩减相应数据(例如同队列中的数据)所占用的存储单元数量,使得在读出数据时,可减少从SRAM信息模块中查询存储单元的地址指针的操作,无需频繁地进行跨存储单元操作,提高了读取数据的效率,从而提高了数据缓存的效率,能够保障大量数据的及时输入和输出;而且,由于在该数据缓存管理方法及装置中,根据数据量分配相应的存储单元,能够节约缓存空间,避免了缓存空间的浪费。
附图说明
图1为集中式TM的系统结构示意图。
图2为分布式TM的系统结构示意图。
图3为深度可预设缓存的缓存结构示意图。
图4为本发明数据缓存管理方法的写入数据方法流程图。
图5为本发明数据缓存管理方法的读取数据方法流程图。
图6为SRAM信息模块的存储结构示意图。
图7为数据合并功能模块的结构示意图。
图8为根据本发明数据缓存管理方法的读写逻辑模块写入数据流程图。
图9为根据本发明数据缓存管理方法的读写逻辑模块读取数据流程图。
图10为本发明数据缓存管理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的技术方案进行清楚、完整地描述。
本发明数据缓存管理方法包括写入数据方法和读取数据方法。图4为本发明数据缓存管理方法的写入数据方法流程图。图5为本发明数据缓存管理方法的读取数据方法流程图。下面结合参考图4和图5对本发明的数据缓存管理方法进行详细说明。
如图4所示,该数据缓存管理方法的写入数据方法包括:
步骤S101,读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址。
其中,SRAM信息模块中存储有用于写入目标数据的第一目标地址、存储所述目标数据的第二目标地址和空闲存储单元的地址指针。存储目标数据的存储单元为动态随机访问存储体(Dynamic Random Access Memory,以下简称DRAM)中的存储空间。
其中,DRAM均分为多个存储单元。数据缓存管理按照存储单元来分配存储资源,也就是说当某个队列有资源分配请求时,数据缓存管理将一次性分配给该队列一个存储单元。存储单元的大小和存储单元的地址指针的个数以及DRAM的大小有关,例如存储单元的地址指针的个数为256K个,DRAM的大小为2G字节,那么一个存储单元的大小就为8K字节。
步骤S102,若判断获知目标数据大于第一目标地址对应的存储单元的可用存储空间,则从SRAM信息模块获取空闲存储单元的地址指针。
其中,读写逻辑模块中预置有存储单元的大小,读写逻辑模块通过将所要存储的目标数据的大小与第一目标地址对应的存储单元的可用存储空间的大小进行比较,来判断该第一目标地址对应的当前存储单元能否存储全部目标数据。若能,则直接将目标数据从第一目标地址开始、写入到DRAM中;若不能,则向SRAM信息模块申请一个空闲存储单元,并执行步骤S103。
步骤S103,将目标数据连续写入第一目标地址对应的存储空间和空闲存储单元,并更新SRAM信息模块中存储的第一目标地址。
其中,若在上述步骤S102中,读写逻辑模块向SRAM信息模块申请了新的空闲存储单元,则将在步骤S101中获取的第一目标地址和该新的空闲存储单元作为用于存储当前目标数据的存储空间,将目标数据先从第一目标地址开始写入,当第一目标地址所在的存储单元写满时,向新申请的空闲存储单元中连续写入剩余数据。完成数据写入后,更新SRAM信息模块中所存储的对应于该目标数据的第一目标地址。
在上述写入数据流程中,可根据目标数据的大小重复多次执行步骤S102,即,读写逻辑模块申请了空闲存储单元后,将目标数据的大小与第一目标地址对应的存储空间及该空闲存储单元的总大小进行比较,若目标数据的大小仍大于第一目标地址对应的存储空间及该空闲存储单元的总大小,则可再次向SRAM信息模块申请空闲存储单元。
如图5所示,该数据缓存管理方法的读取数据方法包括:
步骤S201,读写逻辑模块从SRAM信息模块获取存储目标数据的第二目标地址。
其中,读写逻辑模块对SRAM信息模块进行查询,获取SRAM信息模块中存储的、存储有目标数据的第二目标地址。该第二目标地址例如为存储有目标数据的首个地址空间。
步骤S202,从第二目标地址对应的存储空间读取目标数据。
其中,读写逻辑模块根据第二目标地址,例如查找到DRAM中存储目标数据的首个字节,并从该字节开始读取出目标数据。该读取过程可以为一次性读取整个存储单元的内容,也可以为连续多次读取该存储单元中不同字节所存储的内容。优选为一次性读取,采用此方式读取可具有很高的效率。
根据上述实施例的数据缓存管理方法,由于首先获取第一目标地址,当该目标数据的大小超过SRAM信息模块中记载的第一目标地址对应的存储单元的可用存储空间的大小时,会申请新的存储单元,连续向该第一目标地址对应的存储单元及新申请的存储单元中存取目标数据,即实现了将目标数据存储在连续的存储单元中,通过采用这种数据写入方式,可大幅缩减目标数据所占用的存储单元数量,使得在读出数据时,可减少从SRAM信息模块中查询存储目标数据的地址的操作,无需频繁地进行跨存储单元操作,提高了读取数据的效率。
进一步地,在上述实施例的数据缓存管理方法中,从所述第二目标地址对应的存储空间读取所述目标数据之后,还包括:将第二目标地址所在的存储单元标识为空闲存储单元。
根据上述实施例的数据缓存管理方法,能够在读取目标数据后,及时释放存储该目标数据的存储单元,以使该存储单元可在后续操作中用于缓存其他数据,充分利用DRAM的存储资源。
进一步地,在上述实施例的数据缓存管理方法中,写入目标数据时,读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址的步骤包括:读写逻辑模块根据目标数据携带的队列标识,从SRAM信息模块获取与队列标识对应的尾部存储单元地址指针和尾部偏移地址。
在读取目标数据时,读写逻辑模块从SRAM信息模块获取第二目标地址的步骤包括:读写逻辑模块根据目标数据携带的队列标识,从SRAM信息模块获取与队列标识对应的头部存储单元的地址指针和头部偏移地址。
图6为SRAM信息模块的存储结构示意图。下面结合图6对上述步骤进行具体说明。如图6所示,SRAM信息模块中存储有以下内容:
链表尾部表T,用于保存队列(例如为256K个队列)的尾部存储单元地址指针;
链表头部表H,用于保存队列(例如为256K个队列)的头部存储单元地址指针;
空闲存储单元表C,用于保存空闲的存储单元标签。这是一个FIFO结构,初始状态下,提供存储单元(例如为512K个),如果对应1GByte的DDR3地址空间,那么一个存储单元对应2K存储空间;
存储单元指针P,包括存储单元指针(例如为512K个),用于保存各指针所对应的存储单元的下一个存储单元的指针;
尾部偏移地址表TS,用于保存队列(例如为256K个队列)的尾部偏移地址,即尾部存储单元的当前的写指针,通过该指针,将数据写入到尾部存储单元;
头部偏移地址表HS,用于保存队列(例如为256K个队列)的头部偏移地址,即头部存储单元的当前的读指针,通过该指针,将数据从头部存储单元读出;
空标识E,用于保存队列(例如为256K个队列)的空标识信息,0表示该队列为空;1表示该队列为非空。
其中,链表尾部表T、链表头部表H、尾部偏移地址表TS和头部偏移地址表HS都不需要进行设置,只需要在读写操作过程中进行更新;空闲存储单元表C、存储单元指针P和空标识E,只要进行初始化操作即可,具体为:存储单元指针P初始化为0,表示没有指向任何存储单元;空标识E初始化为0,标识队列为空。当在基于SRAM工艺的现场可编程门阵列(ProgrammableGate Array,简称FPGA)芯片内部中实现该数据缓存管理方法时,存储单元指针P和空标识E也不需进行初始化操作,因为在初始阶段,各个存储单元的初值均为0;需对空闲存储单元表C进行初始化,其在初始阶段应该存放着所有的空闲存储单元的地址指针,即SRAM信息模块所包含的全部队列信息(例如为256K个)的存储单元的地址指针,即将空闲存储单元表C的256K地址空间依次写为:0~262143,分别标识存储单元0~存储单元262143。可见,在该数据缓存管理方法中,对SRAM信息模块的预先配置极为简单。
具体地,当目标数据为数据队列时,该目标数据携带有与该数据队列唯一对应的队列标识,例如为队列号(Queue ID,以下简称QID)。写入数据时,读写逻辑根据QID对SRAM信息模块进行查询,其查询SRAM信息模块中的链表尾部表T,读取与该QID对应的尾部存储单元地址指针,并查询尾部偏移地址表TS,读取与该QID对应的尾部偏移地址。读写逻辑模块根据该尾部存储单元地址指针,找到DRAM中用于存储该数据队列的尾部存储单元,并根据该尾部偏移地址,找到在该尾部存储单元中可用于当前进行写数据操作的具体地址,该地址为DRAM中所存储的该数据队列的最末字节的下一字节。因此,通过上述步骤,能够使在不同时间写入的、属于同一数据队列的数据连续存储在DRAM中。
进一步地,当写完全部数据后,该数据的尾部即为与该QID对应的队列尾部,将写入数据尾部的存储单元的地址指针,设置为链表尾部表T中与该QID对应的尾部存储单元地址指针(若此次写入数据未向SRAM信息模块申请新的存储单元,则该尾部存储单元地址指针与写入数据前未发生改变,若此次写入数据向SRAM信息模块申请了一个或多个新的存储单元,则该尾部存储单元地址指针发生改变);并根据结束数据写入时写入指针的具体位置来更新尾部偏移地址表TS中的与该QID对应的尾部偏移地址。
读取目标数据时,读写逻辑根据QID对SRAM信息模块进行查询,其查询SRAM信息模块中的链表头部表,读取与该QID对应的头部存储单元地址指针,并查询头部偏移地址表HS,读取与该QID对应的头部偏移地址。读写逻辑模块根据该头部存储单元地址指针和头部偏移地址,找到DRAM中用于存储该数据队列的首个存储地址,将该头部存储单元中的内容全部读出。
进一步地,在读出该头部存储单元中的内容后,可将该头部存储单元标识为空闲存储单元,即将该头部存储单元地址指针存储到SRAM信息模块中的空闲存储单元表C中;并从SRAM信息模块中的存储单元指针P中查找到该头部存储单元的地址指针所对应的下一跳存储单元的地址指针,并将该存储单元的地址指针存储到链表头部表中、与该QID对应的位置,即将该存储单元的地址指针设置为该QID的头部存储单元地址指针。
根据上述实施例的数据缓存管理方法,由于对各队列分别通过头部存储单元地址指针和尾部存储单元地址指针来对其进行标识,从而可以快速的写入或读取数据;并且可以看出,由于在SRAM信息模块中,各个队列都是采用链表的形式进行组织的,流量大的队列,在缓存中数据较多,链表较长;流量小的队列,在缓存中数据较少,链表较短。因此使得缓存空间在各个队列之间灵活分配,流量大的队列占有用较多的缓存单元,流量小的队列占有用较少的缓存单元。
因此,上述实施例的数据缓存管理方法尤其适用于数据队列较多、且各数据队列的流量区别很大的复杂的分布式系统。
进一步地,在上述实施例的数据缓存管理方法中,在读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址之前,还包括:
数据合并/拆分模块对根据目标数据携带的队列标识对目标数据进行暂存,并当目标数据达到预设的输出条件时,将目标数据输出至读写逻辑模块,以进行写入目标数据操作。
具体地,该数据合并/拆分模块是进行数据缓存管理中的用于进行数据暂存的数据暂存模块,通过对数据进行暂存来实现在数据写入过程中的数据合并和在数据读取过程中的数据拆分。
在数据写入过程中,应用逻辑将带有QID信息的数据发送给数据合并/拆分模块;该数据合并/拆分模块将数据缓存在模块内部的暂存数据表中与该QID对应的区域,如果该QID对应的数据在暂存数据表中累计达到一定的量(一个存储单元),或者数据在暂存数据表中存放超过预定的时间,则将数据发送给读写逻辑,并随数据标识QID和数据长度。
在数据读取过程中,从第二目标地址对应的存储空间读取目标数据的步骤之后,还包括:将目标数据发送至数据合并/拆分模块,以对目标数据进行拆分,即数据合并/拆分模块将接收到的一个存储单元左右的数据拆分为数据包,依次按照数据包发送给应用逻辑。
通过这种合并和拆分,能够实现在DRAM接口上的连续的地址操作,从而大大提高DRAM接口的带宽利用率。
在该数据合并/拆分模块中,数据合并是指输入到该模块的数据,被按照QID来进行组织暂存。对应于各QID的数据,存放在一个连续的地址空间中。QID有256K,但在此模块中不需划分256K个数据区来存放各QID对应的数据,由于在实际的业务流量数据中,动态并存的队列数大约只有几百个,因此可将该数据合并/拆分模块中的同一时刻存在于暂存数据表中的队列数设置为1K个。
该数据合并/拆分模块包括数据合并功能模块和数据拆分功能模块。图7为数据合并功能模块的结构示意图。如图7所示,该数据合并功能模块包括:QID与暂存ID对应表;暂存信息表;暂存数据表、空闲暂存ID表、仲裁单元和合并输出单元。其中:
QID与暂存ID对应表用来实现QID到暂存ID的查找。这里实现一个256K×10bit的表项;
空闲暂存ID表用来保存没有被使用的暂存ID;
暂存信息表用来保存特定ID所对应的缓存信息,例如起始指针、尾部指针、数据水线等等;
暂存数据表按照暂存ID,进行数据暂存;
仲裁单元,首先暂存信息表中的各个暂存ID,如果某个暂存ID队列符合输出条件则,则将暂存ID发送给合并输出模块;其次,判定如果某个暂存ID队列为空,则将暂存ID回收发送给空闲暂存ID表;
合并输出单元,根据仲裁单元发送过来的暂存ID,从暂存数据表中读取数据发送给读写逻辑模块。
数据合并的操作过程如下:
步骤S1:获取数据QID,根据QID从QID与暂存ID对应表中查找暂存ID;如果没有找到,则进入步骤S2;如果找到则进入步骤S3;
步骤S2:从空闲暂存ID表中获得一个空闲暂存ID,分配给当前QID,并更新QID与缓存ID对应表;
步骤S3:根据暂存ID,从暂存信息表中获取指针等暂存ID队列信息,并将数据写入到缓存数据表中。
通过数据合并过程,就实现了同一类QID的数据被连续积累在暂存数据表中。在实现了数据合并后,合并输出模块完成合并数据的输出,具体步骤如下:
步骤S4:合并输出模块依次扫描暂存信息表,核实每个暂存ID队列是否符合输出条件;
步骤S5:如果某暂存ID队列的数据超过一个存储单元或者其存储时间超过一定的上限,则将该存储ID输出;
步骤S6:合并输出模块根据这个暂存ID,从暂存数据表中读出数据发送给读写逻辑模块。
进一步地,在上述实施例的数据缓存管理方法中,读写逻辑模块从SRAM信息模块获取目的存储单元的地址的步骤可具体包括:根据目标数据携带的队列标识从SRAM信息模块查询队列标识对应的数据队列是否为空,若为空,则从所述SRAM信息模块中维护的空闲存储单元信息模块中读取空闲存储单元的地址作为第一目标的地址;若为非空,则获取所述数据队列的第一目标地址。
具体地,读写逻辑模块获取目标数据对应的QID,根据该QID对SRAM信息模块中所存储的空标识E进行查询,以获知当前DRAM中所存储的与该QID对应的数据队列是否为空。若E[QID]为0,则表示为空,即该队列在DRAM中不占用缓存空间,此时为该数据队列分配存储单元地址,即SRAM信息模块中的空闲存储单元表C中的某一存储单元地址指针Pw分配给该数据队列,具体为,将该Pw写为与该数据队列的QID对应的尾部存储单元地址指针(即写T[QID]=Pw)及头部存储单元地址指针(即写H[QID]=Pw),尾部偏移地址写0(即写TS[QID]=0),并将E[QID]写为1(即写E[QID]==1);将若E[QID]为1,则表示不为空,此时按照上述实施例的方式获取用于写入目标数据的第一目标地址。
本发明的数据缓存管理方法采用了流水操作,分割了写入数据和读取数据的复杂流程,使得数据缓存管理不会成为数据操作的带宽瓶颈。
图8为根据本发明数据缓存管理方法的读写逻辑模块写入数据流程图。如图8所示,读写逻辑模块得到要写入的目标数据的QID,查询SRAM信息模块中是否存在E[QID]==0,若存在,则从空闲存储单元表C申请存储单元指针Pw,并在SRAM信息模块中对该数据队列进行相应的写操作,即写T[QID]=Pw、写H[QID]=Pw、HS[QID]=0、TS[QID]=0并写E[QID]==1,之后,开始将数据写入与该存储单元对应的DRAM空间。若不存在E[QID]==0,则读取T[QID]的内容到Pw’、读取TS[QID]的内容到Ps’,并判断要写入的目标数据的帧长与Ps’的和是否大于该存储单元的大小,若不大于,则开始将数据写入与该存储单元对应的DRAM空间;若大于,则从空闲存储单元表C申请存储单元指针Pn,并开始将数据写入与Pw’和Pn对应的DRAM空间。
在将数据写入存储单元的过程中,每写入一个数据,判断Ps(或Ps’)是否等于存储单元的大小,若等于,则令Pw(或Pw’)等于Pn,即开始向Pn对应的存储单元写数据,对Ps(或Ps’)执行加1操作,并判断是否全部数据写入完毕;若Ps(或Ps’)不等于存储单元的大小,则直接对Ps(或Ps’)执行加1操作,并判断是否全部数据写入完毕。若判断结果为未完成全部数据的写入,则再次执行将数据写入存储单元的步骤;若判断结果为已完成,则将Pn写入Pw或Pw’)对应的SRAM信息模块,即写T[QID]=Pn,TS[QID]=Ps(或Ps’)。
由上述流程可以看出,输入的数据被写入连续的存储单元中,如果超过当前的存储单元,则申请新的存储单元。这样就提高了DRAM的资源利用率,也提高了读取数据的效率。
图9为根据本发明数据缓存管理方法的读写逻辑模块读取数据流程图。如图9所示,读写逻辑模块得到要读取的目标数据的QID,根据该QID读取H[QID]的内容到头部存储单元地址指针Pr,根据该QID读取HS[QID]的内容到Ps,读取Pr+Ps对应的DRAM地址空间的内容(优选为一个大于2K字节的数据),之后,从SRAM信息模块的存储单元指针P中读取Pr对应的下一跳存储单元Po,并将Pr指针保存到SRAM信息模块的的空闲存储单元表C中。判断是否有Po==0,若是,则写E[QID]=0,并结束流程;若否,则写Po=H[QID],并再次重复该写入数据流程,直至判断获知Po==0。
由上述流程可以看出,对于每个队列,一次性读出整个存储单元的数据,由于连续读取的数据越多,接口带宽的利用率越高,因此采用上述流程进行数据读取可极大地提高DRAM接口的带宽利用率。
根据本发明的另一方面,还提供了一种数据缓存管理装置。该数据缓存管理装置可以设置在FPGA芯片内部,也可以设计在通用芯片器件(Application Specific Integrated Circuit,简称ASIC)芯片内部。图10为本发明数据缓存管理装置的结构示意图。如图10所示,本发明数据缓存装置包括读写逻辑模块10、SRAM信息模块20和DRAM控制模块30。
读写逻辑模块10,用于根据数据写入请求/数据读取请求写入目标数据或读取目标数据;在写入目标数据时,从SRAM信息模块20获取用于写入目标数据的第一目标地址,若判断获知目标数据大于第一目标地址对应的存储单元的可用存储空间,则从SRAM信息模块20获取空闲存储单元的地址指针,将目标数据连续写入第一目标地址对应的存储空间和空闲存储单元,并更新SRAM信息模块中存储的第一目标地址;在读取目标数据时,读写逻辑模块10从SRAM信息模块20获取存储目标数据的第二目标地址,并从第二目标地址对应的存储空间读取目标数据;
SRAM信息模块20,用于存储第一目标地址、第二目标地址和空闲存储单元的地址指针;该SRAM信息模块20可实现在FPGA内部,也可实现在QDRII等这类片外SRAM芯片中。
DRAM控制模块30,用于在所述读写逻辑模块写入或读取目标数据后,向所述读写逻辑模块提供所述第一目标地址、第二目标地址及所述空闲存储单元的地址,以使所述读写逻辑模块对所述SRAM信息模块进行更新。
根据上述实施例的数据缓存管理装置,由于读写逻辑模块10在数据写入时,首先获取第一目标地址,该目标地址为在先相应的数据写入的结束地址,并当该目标数据的大小超过SRAM信息模块20中记载的第一目标地址对应的存储单元中可用存储空间的大小时,会申请新的存储单元,并连续向该第一目标地址对应的存储单元及新申请的存储单元中存取目标数据,实现了将目标数据存储在连续的存储单元中;通过读写逻辑模块10采用的这种数据写入方式,能够大幅缩减相应目标数据所占用的存储单元数量,使得其在读出数据时,可减少从SRAM信息模块20中查询存储单元的地址指针的操作,无需频繁地进行跨存储单元操作,提高了读取数据的效率。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于在从第二目标地址对应的存储空间读取目标数据之后,将第二目标地址所在的存储单元标识为空闲存储单元。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于根据目标数据携带的队列标识,从SRAM信息模块获取与队列标识对应的尾部存储单元地址指针和尾部偏移地址。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于将空闲存储单元的地址指针设置为与队列标识对应的尾部存储单元地址指针,并将完成目标数据的写入的尾部偏移地址设置为与队列标识对应的尾部偏移地址。
进一步地,在上述实施例的数据缓存管理装置中,SRAM信息模块包括:
尾部存储单元信息模块,用于存储数据队列的尾部存储单元地址指针;
尾部偏移地址信息模块,用于存储数据队列的尾部偏移地址;
头部存储单元信息模块,用于存储数据队列的尾部存储单元地址指针;
头部偏移地址信息模块,用于存储数据队列的头部偏移地址;
存储单元信息模块,用于存储各存储单元所对应的下一跳存储单元的地址指针;
空闲存储单元信息模块,用于存储空闲存储单元的地址指针。
进一步地,在上述实施例的数据缓存管理装置中,SRAM信息模块还包括:队列空标识信息模块,用于存储所述数据队列的空标识信息。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于从SRAM信息模块的队列空标识信息模块中,获取目标数据对应的数据队列的空标识信息,若为空,从SRAM信息模块中维护的空闲存储单元信息模块中读取空闲存储单元的地址作为第一目标的地址;若为非空,则获取数据队列的第一目标地址。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于根据目标数据携带的队列标识,从SRAM信息模块获取与队列标识对应的头部存储单元地址指针和头部偏移地址。
进一步地,在上述实施例的数据缓存管理装置中,读写逻辑模块还用于将头部存储单元地址指针写入SRAM信息模块中维护的空闲存储单元信息模块;将头部存储单元的下一跳存储单元的地址指针设置为头部存储单元地址指针。
进一步地,在上述实施例的数据缓存管理装置中,还包括:
数据合并/拆分模块,与读写逻辑模块连接,用于根据目标数据携带的队列标识将对应于数据写入请求的目标数据进行暂存,并当目标数据达到预设的输出条件时,将目标数据输出至读写逻辑模块,以进行写入目标数据操作;还用于将读写逻辑模块响应于数据读取请求所读取的目标数据进行拆分。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (19)
1.一种数据缓存管理方法,其特征在于,包括:
在写入目标数据时,读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址,若判断获知所述目标数据大于所述第一目标地址对应的存储单元的可用存储空间,则从所述SRAM信息模块获取空闲存储单元的地址指针,将所述目标数据连续写入所述第一目标地址对应的存储空间和所述空闲存储单元,并更新所述SRAM信息模块中存储的第一目标地址;
在读取目标数据时,读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址,并从所述第二目标地址对应的存储空间读取所述目标数据。
2.根据权利要求1所述的数据缓存管理方法,其特征在于,从所述第二目标地址对应的存储空间读取所述目标数据之后,还包括:将所述第二目标地址所在的存储单元标识为空闲存储单元。
3.根据权利要求1或2所述的数据缓存管理方法,其特征在于,所述读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址的步骤包括:
所述读写逻辑模块根据所述目标数据携带的队列标识,从所述SRAM信息模块获取与所述队列标识对应的尾部存储单元地址指针和尾部偏移地址。
4.根据权利要求3所述的数据缓存管理方法,其特征在于,更新所述SRAM信息模块中存储的第一目标地址的步骤包括:
将所述空闲存储单元的地址指针设置为与所述队列标识对应的尾部存储单元地址指针,并将完成所述目标数据的写入的尾部偏移地址设置为与所述队列标识对应的尾部偏移地址。
5.根据权利要求1或2所述的数据缓存管理方法,其特征在于,在读写逻辑模块从SRAM信息模块获取用于写入目标数据的第一目标地址之前,还包括:
数据合并/拆分模块对根据所述目标数据携带的队列标识对所述目标数据进行暂存,并当所述目标数据达到预设的输出条件时,将所述目标数据输出至所述读写逻辑模块,以进行写入目标数据操作。
6.根据权利要求1或2所述的数据缓存管理方法,其特征在于,读写逻辑模块从SRAM信息模块获取第一目标地址的步骤包括:
根据所述目标数据携带的队列标识从所述SRAM信息模块查询所述队列标识对应的数据队列是否为空,若为空,则从所述SRAM信息模块中维护的空闲存储单元信息模块中读取空闲存储单元的地址作为第一目标的地址;若为非空,则获取所述数据队列的第一目标地址。
7.根据权利要求2所述的数据缓存管理方法,其特征在于,在读取目标数据时,所述读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址的步骤包括:
所述读写逻辑模块根据所述目标数据携带的队列标识,从所述SRAM信息模块获取与所述队列标识对应的头部存储单元地址指针和头部偏移地址。
8.根据权利要求7所述的数据缓存管理方法,其特征在于,将所述第二目标地址所在的存储单元标识为空闲存储单元的步骤包括:
将所述头部存储单元地址指针写入所述SRAM信息模块中维护的空闲存储单元信息模块;
将所述头部存储单元的下一跳存储单元的地址指针设置为头部存储单元地址指针。
9.根据权利要求1或2所述的数据缓存管理方法,其特征在于,从所述第二目标地址对应的存储空间读取所述目标数据的步骤之后,还包括:
将所述目标数据发送至数据合并/拆分模块,以对所述目标数据进行拆分。
10.一种数据缓存管理装置,其特征在于,包括读写逻辑模块、SRAM信息模块和DRAM控制模块,其中:
所述读写逻辑模块,用于根据所述数据写入请求/数据读取请求写入目标数据或读取目标数据;在写入目标数据时,从SRAM信息模块获取用于写入目标数据的第一目标地址,若判断获知所述目标数据大于所述第一目标地址对应的存储单元的可用存储空间,则从所述SRAM信息模块获取空闲存储单元的地址指针,将所述目标数据连续写入所述第一目标地址对应的存储空间和所述空闲存储单元,并更新所述SRAM信息模块中存储的第一目标地址;在读取目标数据时,读写逻辑模块从SRAM信息模块获取存储所述目标数据的第二目标地址,并从所述第二目标地址对应的存储空间读取所述目标数据;
所述SRAM信息模块,用于存储所述第一目标地址、第二目标地址和所述空闲存储单元的地址指针;
DRAM控制模块,用于在所述读写逻辑模块写入或读取目标数据后,向所述读写逻辑模块提供所述第一目标地址、第二目标地址及所述空闲存储单元的地址,以使所述读写逻辑模块对所述SRAM信息模块进行更新。
11.根据权利要求10所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于在从所述第二目标地址对应的存储空间读取所述目标数据之后,将所述第二目标地址所在的存储单元标识为空闲存储单元。
12.根据权利要求10所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于根据所述目标数据携带的队列标识,从所述SRAM信息模块获取与所述队列标识对应的尾部存储单元地址指针和尾部偏移地址。
13.根据权利要求12所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于将所述空闲存储单元的地址指针设置为与所述队列标识对应的尾部存储单元地址指针,并将完成所述目标数据的写入的尾部偏移地址设置为与所述队列标识对应的尾部偏移地址。
14.根据权利要求10所述的数据缓存管理装置,其特征在于,所述SRAM信息模块包括:
尾部存储单元信息模块,用于存储数据队列的尾部存储单元地址指针;
尾部偏移地址信息模块,用于存储所述数据队列的尾部偏移地址;
头部存储单元信息模块,用于存储所述数据队列的尾部存储单元地址指针;
头部偏移地址信息模块,用于存储所述数据队列的头部偏移地址;
存储单元信息模块,用于存储各存储单元所对应的下一跳存储单元的地址指针;
空闲存储单元信息模块,用于存储所述空闲存储单元的地址指针。
15.根据权利要求14所述的数据缓存管理装置,其特征在于,所述SRAM信息模块还包括:
队列空标识信息模块,用于存储所述数据队列的空标识信息。
16.根据权利要求15所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于从所述SRAM信息模块的队列空标识信息模块中,获取所述目标数据对应的数据队列的空标识信息,若为空,从所述SRAM信息模块中维护的空闲存储单元信息模块中读取空闲存储单元的地址作为第一目标的地址;若为非空,则获取所述数据队列的第一目标地址。
17.根据权利要求11所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于根据所述目标数据携带的队列标识,从所述SRAM信息模块获取与所述队列标识对应的头部存储单元地址指针和头部偏移地址。
18.根据权利要求17所述的数据缓存管理装置,其特征在于,所述读写逻辑模块还用于将所述头部存储单元地址指针写入所述SRAM信息模块中维护的空闲存储单元信息模块;将所述头部存储单元的下一跳存储单元的地址指针设置为头部存储单元地址指针。
19.根据权利要求10所述的数据缓存管理装置,其特征在于,还包括:
数据合并/拆分模块,与所述读写逻辑模块连接,用于根据所述目标数据携带的队列标识将对应于所述数据写入请求的所述目标数据进行暂存,并当所述目标数据达到预设的输出条件时,将所述目标数据输出至所述读写逻辑模块,以进行写入目标数据操作;还用于将所述读写逻辑模块响应于所述数据读取请求所读取的所述目标数据进行拆分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106014688A CN102045258B (zh) | 2010-12-22 | 2010-12-22 | 数据缓存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106014688A CN102045258B (zh) | 2010-12-22 | 2010-12-22 | 数据缓存管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102045258A true CN102045258A (zh) | 2011-05-04 |
CN102045258B CN102045258B (zh) | 2012-12-12 |
Family
ID=43911057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106014688A Active CN102045258B (zh) | 2010-12-22 | 2010-12-22 | 数据缓存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102045258B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855194A (zh) * | 2012-08-08 | 2013-01-02 | 北京君正集成电路股份有限公司 | 数据存储方法和存储器 |
CN105138489A (zh) * | 2015-08-13 | 2015-12-09 | 东南大学 | 网络数据包缓存空间id管理单元 |
CN105933244A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种通道对齐去偏斜的装置和方法 |
CN103914391B (zh) * | 2013-01-07 | 2016-12-28 | 群联电子股份有限公司 | 数据读取方法、存储器控制器与存储器存储装置 |
CN106372008A (zh) * | 2015-07-23 | 2017-02-01 | 福州瑞芯微电子股份有限公司 | 一种数据缓存方法及装置 |
CN108108148A (zh) * | 2016-11-24 | 2018-06-01 | 舒尔电子(苏州)有限公司 | 一种数据处理方法和装置 |
CN108572930A (zh) * | 2017-03-14 | 2018-09-25 | 航天信息股份有限公司 | 缓存控制方法及装置 |
WO2019061270A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳市大疆创新科技有限公司 | 数据缓存装置及控制方法、数据处理芯片、数据处理系统 |
CN109739570A (zh) * | 2018-12-24 | 2019-05-10 | 新华三技术有限公司 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
CN109857342A (zh) * | 2019-01-16 | 2019-06-07 | 盛科网络(苏州)有限公司 | 一种数据读写方法及装置、交换芯片及存储介质 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
CN111045598A (zh) * | 2019-10-10 | 2020-04-21 | 深圳市金泰克半导体有限公司 | 数据存储方法、装置 |
CN111143240A (zh) * | 2019-12-31 | 2020-05-12 | 科华恒盛股份有限公司 | 图像存储方法、系统及终端设备 |
CN111666330A (zh) * | 2019-03-06 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 数据的读写方法和装置 |
CN111953990A (zh) * | 2020-07-07 | 2020-11-17 | 西安万像电子科技有限公司 | 编码方法及装置 |
CN112162701A (zh) * | 2020-09-18 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种存储空间回收方法、装置、设备及计算机存储介质 |
CN112559397A (zh) * | 2019-09-26 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种装置和方法 |
CN113360077A (zh) * | 2020-03-04 | 2021-09-07 | 华为技术有限公司 | 数据存储方法及计算节点 |
CN113411270A (zh) * | 2021-06-07 | 2021-09-17 | 中国人民解放军国防科技大学 | 一种面向时间敏感网络的报文缓冲区管理方法 |
CN113760793A (zh) * | 2020-06-01 | 2021-12-07 | 富泰华工业(深圳)有限公司 | 自动数据传输方法、装置及存储介质 |
CN116893786A (zh) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN101009646A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 按每流排队的物理队列动态共享装置 |
CN101009645A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 基于cam的宽带网络业务流按每流排队的可扩展的装置 |
JP2009054278A (ja) * | 2002-11-18 | 2009-03-12 | Panasonic Corp | データ再生回路及びデータ再生装置 |
-
2010
- 2010-12-22 CN CN2010106014688A patent/CN102045258B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009054278A (ja) * | 2002-11-18 | 2009-03-12 | Panasonic Corp | データ再生回路及びデータ再生装置 |
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN101009646A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 按每流排队的物理队列动态共享装置 |
CN101009645A (zh) * | 2006-12-22 | 2007-08-01 | 清华大学 | 基于cam的宽带网络业务流按每流排队的可扩展的装置 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855194B (zh) * | 2012-08-08 | 2015-05-13 | 北京君正集成电路股份有限公司 | 数据存储方法和存储器 |
CN102855194A (zh) * | 2012-08-08 | 2013-01-02 | 北京君正集成电路股份有限公司 | 数据存储方法和存储器 |
CN103914391B (zh) * | 2013-01-07 | 2016-12-28 | 群联电子股份有限公司 | 数据读取方法、存储器控制器与存储器存储装置 |
CN106372008A (zh) * | 2015-07-23 | 2017-02-01 | 福州瑞芯微电子股份有限公司 | 一种数据缓存方法及装置 |
CN106372008B (zh) * | 2015-07-23 | 2019-11-22 | 福州瑞芯微电子股份有限公司 | 一种数据缓存方法及装置 |
CN105138489A (zh) * | 2015-08-13 | 2015-12-09 | 东南大学 | 网络数据包缓存空间id管理单元 |
CN105138489B (zh) * | 2015-08-13 | 2018-04-10 | 东南大学 | 网络数据包缓存空间id管理单元 |
CN105933244B (zh) * | 2016-04-14 | 2018-11-27 | 浪潮电子信息产业股份有限公司 | 一种通道对齐去偏斜的装置和方法 |
CN105933244A (zh) * | 2016-04-14 | 2016-09-07 | 浪潮电子信息产业股份有限公司 | 一种通道对齐去偏斜的装置和方法 |
CN108108148A (zh) * | 2016-11-24 | 2018-06-01 | 舒尔电子(苏州)有限公司 | 一种数据处理方法和装置 |
CN108572930A (zh) * | 2017-03-14 | 2018-09-25 | 航天信息股份有限公司 | 缓存控制方法及装置 |
CN108572930B (zh) * | 2017-03-14 | 2021-09-10 | 航天信息股份有限公司 | 缓存控制方法及装置 |
WO2019061270A1 (zh) * | 2017-09-29 | 2019-04-04 | 深圳市大疆创新科技有限公司 | 数据缓存装置及控制方法、数据处理芯片、数据处理系统 |
CN109739570A (zh) * | 2018-12-24 | 2019-05-10 | 新华三技术有限公司 | 一种数据读取方法、服务器控制设备、服务器及计算机可读存储介质 |
CN109857342A (zh) * | 2019-01-16 | 2019-06-07 | 盛科网络(苏州)有限公司 | 一种数据读写方法及装置、交换芯片及存储介质 |
CN111666330B (zh) * | 2019-03-06 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据的读写方法和装置 |
CN111666330A (zh) * | 2019-03-06 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 数据的读写方法和装置 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
CN112559397A (zh) * | 2019-09-26 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种装置和方法 |
CN111045598A (zh) * | 2019-10-10 | 2020-04-21 | 深圳市金泰克半导体有限公司 | 数据存储方法、装置 |
CN111045598B (zh) * | 2019-10-10 | 2023-08-15 | 深圳市金泰克半导体有限公司 | 数据存储方法、装置 |
CN111143240A (zh) * | 2019-12-31 | 2020-05-12 | 科华恒盛股份有限公司 | 图像存储方法、系统及终端设备 |
CN113360077A (zh) * | 2020-03-04 | 2021-09-07 | 华为技术有限公司 | 数据存储方法及计算节点 |
CN113360077B (zh) * | 2020-03-04 | 2023-03-03 | 华为技术有限公司 | 数据存储方法、计算节点及存储系统 |
CN113760793A (zh) * | 2020-06-01 | 2021-12-07 | 富泰华工业(深圳)有限公司 | 自动数据传输方法、装置及存储介质 |
CN111953990A (zh) * | 2020-07-07 | 2020-11-17 | 西安万像电子科技有限公司 | 编码方法及装置 |
CN112162701A (zh) * | 2020-09-18 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种存储空间回收方法、装置、设备及计算机存储介质 |
CN112162701B (zh) * | 2020-09-18 | 2023-12-22 | 北京浪潮数据技术有限公司 | 一种存储空间回收方法、装置、设备及计算机存储介质 |
CN113411270A (zh) * | 2021-06-07 | 2021-09-17 | 中国人民解放军国防科技大学 | 一种面向时间敏感网络的报文缓冲区管理方法 |
CN116893786A (zh) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116893786B (zh) * | 2023-09-05 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102045258B (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102045258B (zh) | 数据缓存管理方法及装置 | |
USRE45097E1 (en) | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory | |
US7313142B2 (en) | Packet processing device | |
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
CN101630992B (zh) | 共享内存管理方法 | |
CN100508502C (zh) | 基于cam的宽带网络业务流按每流排队的可扩展的装置 | |
CN101499956B (zh) | 分级缓冲区管理系统及方法 | |
US9753660B2 (en) | System and method for implementing hierarchical distributed-linked lists for network devices | |
US20170017424A1 (en) | System And Method For Enabling High Read Rates To Data Element Lists | |
CN102971997B (zh) | 包括数据分段和数据描述分段的分组缓冲器 | |
CN113411270A (zh) | 一种面向时间敏感网络的报文缓冲区管理方法 | |
US9785367B2 (en) | System and method for enabling high read rates to data element lists | |
WO2018149102A1 (zh) | 一种降低高优先级数据传输时延的方法和装置、存储介质 | |
CN113126911A (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
US7733888B2 (en) | Pointer allocation by prime numbers | |
US9658951B1 (en) | Scalable high bandwidth memory in a network device | |
CN101964751A (zh) | 数据包的传输方法及装置 | |
CN114024844B (zh) | 数据调度方法、数据调度装置及电子设备 | |
US9767014B2 (en) | System and method for implementing distributed-linked lists for network devices | |
US10067690B1 (en) | System and methods for flexible data access containers | |
CN104247352A (zh) | 根据报文大小确定存储在存储器组或存储器设备中的副本数目的存储器架构 | |
US6885591B2 (en) | Packet buffer circuit and method | |
CN102012868B (zh) | 一种应用于epon系统中局端的数据缓存架构 | |
CN102111332B (zh) | 通信系统消息分类输出方法及控制器 | |
US9965211B2 (en) | Dynamic packet buffers with consolidation of low utilized memory banks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160513 Address after: 350015, Fujian Fuzhou bonded area complex building 11, 081 intervals Patentee after: Fujian Zhongrui Network Inc Address before: 100036 Beijing Haidian District City 33 Fuxing Road Cuiwei East 1106 Patentee before: Beijing Xingwang Ruijie Network Technologies Co., Ltd. |