用于控制存储器分配的方法和设备技术

技术编号:9143096 阅读:118 留言:0更新日期:2013-09-12 04:39
用于控制存储器分配的方法和设备。本发明专利技术涉及对存储器进行分配和释放,所述存储器被组织成包含存储器块组,所述存储器块组中的每一个包含存储器块。存在第一数据实体(101),其指示在每一个存储器块组中的空闲存储器块的数量。对于每一个存储器块组,存在第二数据实体(102、103、......、105),其指示有关存储器块组的哪些存储器块是空闲的。当接收对分配存储器块的请求时,基于第一数据实体,搜索包含空闲存储器块的存储器块组,并且基于与该存储器块组有关的第二数据实体,从该存储器块组搜索空闲存储器块。第一数据实体和第二数据实体构成紧凑数据结构,因此可以有效利用高速缓冲存储器。

【技术实现步骤摘要】
用于控制存储器分配的方法和设备
本专利技术涉及用于控制存储器的存储器块的分配的方法和设备,该存储器被组织成包含多个存储器块组,该多个存储器块组中的每一个包含多个存储器块。此外,本专利技术涉及用于控制存储器的存储器块的分配的计算机程序。
技术介绍
在包括存储器和处理器的许多电子设备中,存在以下需要:出于一些使用目的,分配存储器的部分,并且随后当对于这些使用目的,不再需要它们时,释放所分配的部分。诸如路由器、交换机和网桥的网络元件是上述类型的电子设备的示例。网络元件接收数据帧,存储并处理所接收的数据帧,以及最后将数据帧转送到将该网络元件连接到其他网络元件的数据传送链路。许多网络元件包括一个或多个这样的存储器,其被组织成包含多个存储器块组,该多个存储器块组中的每一个包含多个存储器块。可以分配单个存储器块,例如用于存储数据帧或数据帧的部分,其正排队等候被处理或转送。控制存储器块的分配的进程从使用存储器的另一个进程接收对分配一个或多个存储器块的请求,并且响应于该请求,返回识别所分配的一个或多个存储器块的一个或多个地址。当不再需要所分配的存储器块时,使用存储器的进程返回识别可以被释放来等待进一步使用的存储器块的一个或多个地址。用于控制存储器块的分配的进程频繁处于使用中,因此,该进程应当使得有效利用高速缓冲存储器。在用于控制存储器分配的典型方法中,然而,情况并非如此,因为指示空闲和所分配的存储器块的位置的指针与存储器块协同被安放,因此,这些指针以分布式方式位于存储器的地址空间中。因此,在连续分配或释放操作中使用的数据项在地址空间中可能相互位于相对很远的地方。因此,典型的是,高速缓冲存储器包含仅被使用一两次的数据,以及在对该数据的下一使用之前,许多其他数据被使用并且被加载到高速缓冲存储器,因此,首先提及的数据可能在其下一使用之前从高速缓冲存储器被退出。作为必然的结果,没有有效利用高速缓冲存储器。
技术实现思路
下面提供了简化的
技术实现思路
,以提供对各个专利技术实施例的一些方面的基本理解。该
技术实现思路
不是本专利技术的全面概述。其并不意在识别本专利技术的关键性或决定性元素,也不意在详述本专利技术的范围。下面的
技术实现思路
仅以简化方式提供了本专利技术的一些构思,作为本专利技术的示例性实施例的更详细描述的前奏。依据本专利技术的第一方面,提供了用于控制存储器的新设备,该存储器被组织成包含多个存储器块组,该多个存储器块组中的每一个包含多个存储器块。根据本专利技术的该设备包括处理器,其被配置成:-维护包含第一数据项的第一数据实体,使得对于存储器块组中的每一个都存在第一数据项,每一个第一数据项指示在与该第一数据项有关的存储器块组中存在多少空闲存储器块,以及-维护第二数据实体,使得对于存储器块组中的每一个都存在第二数据实体,以及每一个第二数据实体包含第二数据项,使得在每一个第二数据实体中的第二数据项的数量是至少在与该第二数据实体有关的存储器块组中的存储器块的数量,以及当与该第二数据实体有关的存储器块组的存储器块中的一个或多个空闲时,该第二数据实体的第二数据项中的一个或多个包含从与该第二数据实体有关的存储器块组的所有存储器块中识别空闲存储器块的指示符。该处理器被进一步配置成响应于接收对分配空闲存储器块的请求,执行下面的动作:-从第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块,-从第二数据实体中选择这样的第二数据实体,其与和所搜索的第一数据项有关的存储器块组有关,-从所选择的第二数据实体选择这样的第二数据项,其携载空闲存储器块的指示符,-至少部分基于(i)指示具有至少一个空闲存储器块的存储器块组的所搜索的第一数据项以及(ii)空闲存储器块的指示符,来形成识别待被分配的空闲存储器块的地址,以及-更新所搜索的第一数据项以与在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量已减少一的情况相对应。在根据本专利技术的有利和示例性实施例的设备中,处理器被进一步配置成响应于接收识别待从分配释放的存储器块的地址,执行下面的动作:-确定包含待被释放的存储器块的存储器块组,-通过将一加到所确定的存储器块组的空闲存储器块的数量,来更新与所确定的存储器块组有关的第一数据项,-确定从所确定的存储器块组的所有存储器块中识别待被释放的存储器块的指示符,-从与所确定的存储器块组有关的第二数据实体确定这样的第二数据项,其不包含是空闲的任何其他存储器块的指示符,以及-将所确定的第二数据项设置成包含从所确定的存储器块组的所有存储器块中识别待被释放的存储器块的指示符。在每个分配和释放操作中使用包含第一数据项的上述第一数据实体。因此,在每一个分配或释放操作,可以以非常高的概率从高速缓冲存储器找到第一数据实体。并且,可以将第二数据实体安排成构成紧凑数据集,因为每一个第二数据项可以是仅几比特的数据元素。因此,在每一个分配或释放操作,同样,可以以良好概率从高速缓冲存储器找到与考虑中的存储器块组有关的第二数据实体。例如,在有例如48个存储器块组,每一个包含例如15个存储器块的情况下,每一个第一数据项可以是四比特,以及同样,每一个第二数据项可以是四比特。在该示例性情况下,第一数据实体的大小是48×4比特,其是24字节,以及每一个第二数据实体的大小是15×4比特,其小于8字节。在高速缓存行是例如32字节的情况下,第一数据实体适合单个高速缓存行,以及四个第二数据实体适合单个高速缓存行。整个数据结构,即第一数据实体和48个第二数据实体,适合仅13个高速缓存行。因此,在分配和释放操作时,高速缓存缺失是极不可能的,因此,可以有效利用高速缓冲存储器。依据本专利技术的第二方面,提供了用于控制存储器的新方法,所述存储器被组织成包含多个存储器块组,该多个存储器块组中的每一个包含多个存储器块。根据本专利技术的方法包括:-维护包含第一数据项的第一数据实体,使得对于存储器块组中的每一个都存在第一数据项,每一个第一数据项指示在与该第一数据项有关的存储器块组中存在多少空闲存储器块,以及-维护第二数据实体,使得对于存储器块组中的每一个都存在第二数据实体,以及每一个第二数据实体包含第二数据项,使得在每一个第二数据实体中的第二数据项的数量是至少在与该第二数据实体有关的存储器块组中的存储器块的数量,以及当与该第二数据实体有关的存储器块组的存储器块中的一个或多个空闲时,该第二数据实体的第二数据项中的一个或多个包含从与该第二数据实体有关的存储器块组的存储器块中识别空闲存储器块的指示符。该方法进一步包括响应于接收对分配空闲存储器块的请求,执行下面的动作:-从第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块,-从第二数据实体中选择这样的第二数据实体,其与和所搜索的第一数据项有关的存储器块组有关,-从所选择的第二数据实体选择这样的第二数据项,其携载空闲存储器块的指示符,-至少部分基于(i)指示具有至少一个空闲存储器块的存储器块组的所搜索的第一数据项以及(ii)空闲存储器块的指示符,来形成识别待被分配的空闲存储器块的第一地址,以及-更新所搜索的第一数据项以与在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量已减少一的情况相对应。根据本专利技术的有利和示例性实施例的方法本文档来自技高网
...
用于控制存储器分配的方法和设备

【技术保护点】
一种用于控制存储器的设备,所述存储器被组织成包含多个存储器块组,所述多个存储器块组中的每一个包含多个存储器块,所述设备包括用于接收对从所述存储器的所述存储器块中分配空闲存储器块的请求的处理器(201),其特征在于:所述处理器被配置成:?维护包含第一数据项的第一数据实体(101),使得对于所述存储器块组中的每一个都存在第一数据项,每一个第一数据项指示在与该第一数据项有关的存储器块组中存在多少空闲存储器块,以及?维护第二数据实体(102?105),使得对于所述存储器块组中的每一个都存在第二数据实体,以及每一个第二数据实体包含第二数据项,使得在每一个第二数据实体中的所述第二数据项的数量是至少在与该第二数据实体有关的存储器块组中的存储器块的数量,以及当与该第二数据实体有关的存储器块组的存储器块中的一个或多个空闲时,该第二数据实体的所述第二数据项中的一个或多个包含从与该第二数据实体有关的存储器块组的存储器块中识别所述空闲存储器块的指示符,其中所述处理器被配置成响应于接收对分配空闲存储器块的所述请求,执行下面的动作:?从所述第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块,?从所述第二数据实体中选择这样的第二数据实体,其与和所搜索的第一数据项有关的存储器块组有关,?从所选择的第二数据实体选择这样的第二数据项,其携载空闲存储器块的指示符,?至少部分基于指示具有至少一个空闲存储器块的所述存储器块组的所搜索的第一数据项以及所述空闲存储器块的所述指示符,来形成识别待被分配的所述空闲存储器块的第一地址,以及?更新所搜索的第一数据项以与在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量已减少一的情况相对应。...

【技术特征摘要】
2012.02.03 FI 201251181.一种用于控制存储器的设备,所述存储器被组织成包含多个存储器块组,所述多个存储器块组中的每一个包含多个存储器块,所述设备包括用于接收对从所述存储器的所述存储器块中分配空闲存储器块的请求的处理器(201),其特征在于:所述处理器被配置成:-维护包含第一数据项的第一数据实体(101),使得对于所述存储器块组中的每一个都存在第一数据项,每一个第一数据项指示在与该第一数据项有关的存储器块组中存在多少空闲存储器块,以及-维护第二数据实体(102-105),使得对于所述存储器块组中的每一个都存在第二数据实体,以及每一个第二数据实体包含第二数据项,使得在每一个第二数据实体中的所述第二数据项的数量是至少在与该第二数据实体有关的存储器块组中的存储器块的数量,以及当与该第二数据实体有关的存储器块组的存储器块中的一个或多个空闲时,该第二数据实体的所述第二数据项中的一个或多个包含从与该第二数据实体有关的存储器块组的存储器块中识别所述空闲存储器块的指示符,其中所述处理器被配置成响应于接收对分配空闲存储器块的所述请求,执行下面的动作:-从所述第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块,-从所述第二数据实体中选择这样的第二数据实体,其与和所搜索的第一数据项有关的存储器块组有关,-从所选择的第二数据实体选择这样的第二数据项,其携载空闲存储器块的指示符,-至少部分基于指示具有至少一个空闲存储器块的所述存储器块组的所搜索的第一数据项以及所述空闲存储器块的所述指示符,来形成识别待被分配的所述空闲存储器块的第一地址,以及-更新所搜索的第一数据项以与在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量已减少一的情况相对应。2.根据权利要求1所述的设备,其中所述处理器被配置成响应于接收识别待从分配释放的存储器块的第二地址,执行下面的动作:-确定包含待被释放的所述存储器块的存储器块组,-更新与所确定的存储器块组有关的所述第一数据项以与在所确定的存储器块组中的空闲存储器块的数量已增加一的情况相对应,-确定从所确定的存储器块组的存储器块中识别待被释放的所述存储器块的指示符,-从与所确定的存储器块组有关的所述第二数据实体确定这样的第二数据项,其不包含从所确定的存储器块组的存储器块中识别与待被释放的所述存储器块不同且为空闲的任何存储器块的指示符,以及-将所确定的第二数据项设置成包含从所确定的存储器块组的存储器块中识别待被释放的所述存储器块的所述指示符。3.根据权利要求1所述的设备,其中所述处理器被配置成:-将所述第二数据实体中的每一个维护为属于所涉及的第二数据实体的所述第二数据项的排序列表,-从所选择的第二数据实体选择自所述排序列表的末端或始端的第N个第二数据项,以从所选择的第二数据实体选择这样的第二数据项,其携载所述空闲存储器块的所述指示符,N是在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量。4.根据权利要求2所述的设备,其中所述处理器被配置成:-将所述第二数据实体中的每一个维护为属于所涉及的第二数据实体的所述第二数据项的排序列表,-从所选择的第二数据实体选择自所述排序列表的末端或始端的第N个第二数据项,以从所选择的第二数据实体选择这样的第二数据项,其携载所述空闲存储器块的所述指示符,N是在与所搜索的第一数据项有关的存储器块组中的空闲存储器块的数量。5.根据权利要求1-4中的任何一个所述的设备,其中所述处理器被配置成执行下面的动作,以从所述第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块:-将所述第一数据实体维护为逻辑环,使得每一个第一数据项在所述逻辑环中具有前继和后继,-维护指针,所述指针从所述逻辑环指示这样的第一数据项,其与包含先前分配的存储器块的所述存储器块组有关,以及-从所述指针所指示的所述第一数据项开始,在所述逻辑环上前进,直到找到这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块。6.根据权利要求1-4中的任何一个所述的设备,其中所述处理器被配置成执行下面的动作,以从所述第一数据实体搜索这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块:-将所述第一数据实体维护为排序列表,使得每一个第一数据项在所述排序列表中具有前继和/或后继,以及-从所述排序列表的始端开始,在所述排序列表上前进,直到找到这样的第一数据项,其指示在与该第一数据项有关的存储器块组中存在一个或多个空闲存储器块。7.根据权利要求1-4中的任何一个所述的设备,其中所述处理器被配置成维护连续编号的所述存储器块组和在每一个存储器块组内的连续编号的存储器块,以及所述处理器被配置成根据下面的公式形成识别待被分配的所述空闲存储器块的所述第一地址:Addr1=kBG1×SBG+kB1×SB+C,其中Addr1是所述第一地址,kBG1是与所搜索的第一数据实体有关的存储器块组的编号,kB1是待被分配的所述空闲存储器块的编号,SBG是两个连续存储器块组的相互对应地址的差,SB是在与所搜索的第一数据实体有关的存储器块组中的两个连续存储器块的相互对应地址的差,以及C是偏移控制参数,当SBG=SB=0时,其是值Addr1。8.根据权利要求7所述的设备,其中所述处理器被配置成根据下面的公式,确定包含待被释放的所述存储器块的所述存储器块组的编号:的整数部分,以及根据下面的公式,确定待被释放的所述存储器块的编号:2其中Addr2是识别待被释放的所述存储器块的所述第二地址,kBG2是包含待被释放的所述存储器块的所述存储器块组的编号,以及kB2是待被释放的所述存储器块的编号。9.根据权利要求1-4中的任何一个所述的设备,其中所述处理器被配置成:-维护所述第一数据实体,使得所述第一数据实体包含48个第一数据项,其每一个包含四比特,以及-维护所述第二数据实体,使得每一个第二数据实体包括15个第二...

【专利技术属性】
技术研发人员:维莱·哈利沃里茱哈马蒂·库西萨里
申请(专利权)人:特拉博斯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1