CN107797941A - 针对查找树的缓存着色内存分配方法和装置 - Google Patents

针对查找树的缓存着色内存分配方法和装置 Download PDF

Info

Publication number
CN107797941A
CN107797941A CN201610805579.8A CN201610805579A CN107797941A CN 107797941 A CN107797941 A CN 107797941A CN 201610805579 A CN201610805579 A CN 201610805579A CN 107797941 A CN107797941 A CN 107797941A
Authority
CN
China
Prior art keywords
node
color
layer
internal memory
coloring
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
Application number
CN201610805579.8A
Other languages
English (en)
Other versions
CN107797941B (zh
Inventor
贺鹏
杨馥榕
谢高岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201610805579.8A priority Critical patent/CN107797941B/zh
Publication of CN107797941A publication Critical patent/CN107797941A/zh
Application granted granted Critical
Publication of CN107797941B publication Critical patent/CN107797941B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例提供一种针对查找树的缓存着色内存分配方法和装置,此方法包括:构造第一查找树;确定第一查找树具有N层结点;获取N层结点中每层中具有的结点的个数;根据N层结点中每层中具有的结点的个数,从内存的着色颜色中为每层结点分配对应的颜色;各层结点所分配的对应的颜色各不相同;根据每层结点对应的颜色和颜色对应的内存,生成缓存着色后的第二查找树。根据第二查找树中每层结点对应的颜色在为每层结点的结点分配内存时,只分配会被映射到对应着色颜色的内存,由于内存与Cache之间存在映射关系,可以保证不同层结点的结点之间不会相互竞争Cache,从而提高了查找性能。

Description

针对查找树的缓存着色内存分配方法和装置
技术领域
本发明实施例涉及存储技术领域,尤其涉及一种针对查找树的缓存着色内存分配方法和装置。
背景技术
在现代计算机层次化的存储结构中,Cache是位于主存和CPU寄存器之间的一层缓存。Cache通常由容量较小、速度较快的SRAM构成,通过缓存CPU所需要的热点数据,减少CPU对于主存的访问,提高访存的效率、弥补CPU计算速度和主存访问速度之间的差距,有利于提升计算机系统的整体性能。为了减少主存与Cache之间数据交换的开销,并且充分利用计算机程序的空间局部性(Spatial Locality),Cache和主存之间数据交换的单位通常是多个连续的字节组成的Cache行(Cache Line),比如64字节、128字节等等,所以从Cache的视角考虑,可以认为Cache Line是Cache和主存的基本组成单位。Cache中存放的数据是主存数据的一份拷贝,所以需要一种机制来标识Cache中存放的数据与主存数据的对应关系,即Cache与主存的映射关系。由于Cache的容量往往远小于主存,所以不能将主存中所有的数据同时缓存在Cache中,当主存中有新的Cache Line需要缓存到Cache中,而所有能缓存该Cache Line的位置全被占用时,就需要将某一个位置的Cache Line替换出去,留出空闲的位置来缓存新的Cache Line;因此,使得数据查找性能下降。
发明内容
本发明实施例提供一种针对查找树的缓存着色内存分配方法和装置,用于提高查找性能。
第一方面,本发明实施例提供一种针对查找树的缓存着色内存分配方法,包括:
构造第一查找树;
确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取所述N层结点中每层中具有的结点的个数;
根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
可选地,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
可选地,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
可选地,所述根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,包括:
获取所述N层结点中的结点的个数之和为X;
根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;
从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
可选地,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,H为操作系统页大小。
第二方面,本发明实施例提供一种针对查找树的缓存着色内存分配装置,包括:
构造模块,用于构造第一查找树;
确定模块,用于确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取模块,用于获取所述N层结点中每层中具有的结点的个数;
分配模块,用于根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
生成模块,用于根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
可选地,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
可选地,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
可选地,所述分配模块,具体用于:获取所述N层结点中的结点的个数之和为X;根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
可选地,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,操作系统页大小。
本实施例提供的针对查找树的缓存着色内存分配方法和装置,通过构造第一查找树,确定所述第一查找树具有N层结点,获取所述N层结点中每层中具有的结点的个数,根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。根据第二查找树中每层结点对应的颜色在为每层结点的结点分配内存时,只分配会被映射到对应着色颜色的内存,由于内存与Cache之间存在映射关系,可以保证不同层结点的结点之间不会相互竞争Cache,从而提高了查找性能
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明针对查找树的缓存着色内存分配方法实施例一的流程图;
图2为本发明针对查找树的缓存着色内存分配装置实施例一的结构示意图;
图3为本发明针对查找树的缓存着色内存分配装置实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明各实施例可以应用于使用组相连和线性映射Cache的内存系统。
图1为本发明针对查找树的缓存着色内存分配方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
S101、构造第一查找树。
本实施例可以采用现有技术的内存分配方法构建查找树,该查找树称为第一查找树。
S102、确定所述第一查找树具有N层结点。
所述N为大于或等于1的整数。
本实施例可以根据第一查找树的深度,将第一查找树按深度均分为N层结点,从而可以确定第一查找树具有N层结点。
S103、获取所述N层结点中每层中具有的结点的个数。
本实施例可以统计获取上述N层结点中每层结点中具有的结点的个数,即获取第一层结点具有的结点的个数、获取第二层结点具有的结点的个数、……、获取第N层结点具有的结点的个数。
S104、根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色。
所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同。
本实施例中,在获取N层结点中每层结点中具有的结点的个数,从内存的着色颜色中为每层结点分配对应的颜色,其中,每层结点分配的对应的颜色的种类为至少一种,每层结点分配的对应的颜色组成一个颜色组,则为N层结点分配了N组颜色组,这N组颜色组中两两颜色组之间并不存在相同的颜色;而且N组颜色组中的颜色种类之和等于内存的着色颜色的种类数之和。将内存按照着色颜色进行分组,分组后每组对应于一层结点,且每组的颜色种类数等于对应的一层结点的颜色种类数,每组颜色均不相交。
其中,Cache的颜色种类数是在选择好对哪一级Cache(如L3Cache)进行缓存着色之后根据缓存着色的原理静态确定的。可以申请若干内存(比如可以通过Linux自身提供的大页面机制获得2MB或者1GB的物理地址连续的内存),并通过一定手段(比如通过/proc文件系统)获取上述申请的内存的物理地址,根据缓存着色的原理和上述确定的Cache的颜色种类数,只要知道上述申请的内存中各个页面的物理地址,就可以确定各个页面的颜色,即内存中哪些物理地址对应的着色颜色,内存的着色颜色种类数即为上述确下的Cache的颜色种类数。
可选地,为每层结点分配的对应的颜色的种类数为至少一种,并且,对于每层结点而言,从内存的着色颜色中为该层结点分配的该至少一种颜色在该内存的着色颜色中是连续的。
可选地,相邻各层分配的对应的颜色在内存的着色颜色中是连续的。
其中,上述S104的一种可能的实现方式包括:
S1041、获取所述N层结点中的结点的个数之和为X。
S1042、根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数。
S1043、从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
本实施例中,可以将内存的着色颜色的种类数(也就是Cache的颜色种类数,按照各层的结点个数比例进行划分,得到各层对应的颜色种类数;然后根据各层的颜色种类数,将内存(的页面)按照颜色分成N组,N组颜色与N层结点一一对应,即每组颜色对应查找树中的一层结点。
例如:所选的Cache只有8个颜色,也就是内存的着色颜色的种类数为8,而且第一查找树包括3层结点,即第一层结点的结点个数为2,第二层结点的结点个数为4,第三层结点的结点个数为2,因此,各层结点的比例是1:2:1,所以颜色分配的结果为2(8*1/4),4(8*1/2),2(8*1/4),各层的颜色种类数之和为8。假设上述8种颜色依次为1-8号色,则为第一层结点分配的颜色为1号色和2号色,为第二层结点分配的颜色为3-6号色,为第三层结点分配的颜色为7号色和8号色。
S105、根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
本实施例中,根据N层结点中每层结点对应的颜色和该颜色对应的内存,生成查找树,该查找树称为第二查找树。也就是根据第二查找树中的各个结点的颜色,为将各个结点分配该颜色对应的内存。其中,为所述第二查找树中的每个结点分配的内存的颜色与所述每个结点对应的颜色相同。
其中,在生成第二查找树的过程中,构造第一查找树的每个结点之前可以得到每个结点的深度信息,从而根据第一查找树的分层关系获得每个结点所属的层次(即属于哪一层结点);在为各个结点分配内存时,可以根据各个结点所属的层次,从该层结点对应的颜色的内存中为该结点分配内存;可以认为每层结点分配的内存的着色颜色与该层结点对应的颜色属于同一颜色组。第二查找树就是一颗按照层次进行缓存着色的查找树。
其中,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,H为操作系统页大小。
上述H可以为4K(4096Byte),即一个颜色表示Cache中的4K/Cache_line个组。上述H也可以为8K、16K,本实施例对H不做限定。需要说明的是,H的取值区间最大不能超过(Cache的大小/(组相连个数*64)),最小不能超过(Cache_line(一般取值为64B)*组相连个数)),其中,组相连个数、Cache line大小均为Cache系统的规格,可以通过操作系统或者查找CPU参数获得。
本实施例提供的针对查找树的缓存着色内存分配方法,通过构造第一查找树,确定所述第一查找树具有N层结点,获取所述N层结点中每层中具有的结点的个数,根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。根据第二查找树中每层结点对应的颜色在为每层结点的结点分配内存时,只分配会被映射到对应着色颜色的内存,由于内存与cache之间存在映射关系,可以保证不同层结点的结点之间不会相互竞争Cache,从而提高了查找性能,降低Cache中的数据被替换的概率。
需要说明的是,关于缓存着色的实现原理与现有技术类似,此处不再赘述。
以本发明实施例应用于一具体例子进行说明,本发明实施例可以针对TreeBitmap算法进行加速,Tree Bitmap算法是Cisco的专利IP查找算法,其本质是对一颗多比特树通过比特位图的方式进行压缩。运行平台为Intel(R)Xeon(R)CPU E5-4603,其L2Cache为256KB、8路组相联,因此一共有512个Sets,按照4K每页计算,一共8个Cache页颜色。
在本实施例中,首先按照Tree Bitmap算法对FIB构建Tree Bitmap树,本实现中单个节点为24字节大,使用核心路由表共计350K条前缀路由,共使用5.16MB内存。本实施例中,将树结构分为三层。第1层到第3层内存占用分别为1.81MB,3.25MB和0.1MB。
本实施例中将8个Cache页划分为2:5:1的比例,即第一层的使用2个颜色,第二层使用5个颜色,第三层使用1个颜色。
由于本实施例中,一共有8个颜色,对应8*4K=32K的内存空间。生成第二查找树以后,第一层的任意内存的物理地址A1都满足A1%32K∈[0,8K-1],第二层任意内存的物理地址A2都满足A2%32K∈[8K,28K-1],第三层任意内存的物理地址A3都满足A3%32K∈[28K,32K-1]。采用本实施例的方案后的查找性能提升了50%。
图2为本发明针对查找树的缓存着色内存分配装置实施例一的结构示意图,如图2所示,本实施例的装置可以包括:构造模块11、确定模块12、获取模块13、分配模块14和生成模块15。
构造模块11,用于构造第一查找树;
确定模块12,用于确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取模块13,用于获取所述N层结点中每层中具有的结点的个数;
分配模块14,用于根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
生成模块15,用于根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
可选地,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
可选地,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
可选地,所述分配模块14,具体用于:获取所述N层结点中的结点的个数之和为X;根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
可选地,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,操作系统页大小。
本实施例的装置,可以用于执行本发明上述各方法实施例的技术方案,其实现原理类似,此处不再赘述。
本实施例提供的针对查找树的缓存着色内存分配装置,通过构造第一查找树,确定所述第一查找树具有N层结点,获取所述N层结点中每层中具有的结点的个数,根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。根据第二查找树中每层结点对应的颜色在为每层结点的结点分配内存时,只分配会被映射到对应着色颜色的内存,由于内存与Cache之间存在映射关系,可以保证不同层结点的结点之间不会相互竞争Cache,从而提高了查找性能。
图3为本发明针对查找树的缓存着色内存分配装置实施例二的结构示意图,如图3所示,本实施例的装置可以包括:存储器21和处理器22,其中,存储器21用于存储执行上述方法的代码,处理器22用于调用所述代码执行:
构造第一查找树;
确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取所述N层结点中每层中具有的结点的个数;
根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
可选地,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
可选地,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
可选地,所述处理器22在根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色时,具体用于:
获取所述N层结点中的结点的个数之和为X;
根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;
从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
可选地,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,H为操作系统页大小。
本实施例的装置,可以用于执行本发明上述各方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例提供的针对查找树的缓存着色内存分配装置,通过构造第一查找树,确定所述第一查找树具有N层结点,获取所述N层结点中每层中具有的结点的个数,根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。根据第二查找树中每层结点对应的颜色在为每层结点的结点分配内存时,只分配会被映射到对应着色颜色的内存,由于内存与Cache之间存在映射关系,可以保证不同层结点的结点之间不会相互竞争Cache,从而提高了查找性能。
在上述实施例中,应理解,处理器可以是中央处理单元(英文:CentralProcessing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:DigitalSignal Processor,简称:DSP)、专用集成电路(英文:Application Specific IntegratedCircuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读内存(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种针对查找树的缓存着色内存分配方法,其特征在于,包括:
构造第一查找树;
确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取所述N层结点中每层中具有的结点的个数;
根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
2.根据权利要求1所述的方法,其特征在于,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
3.根据权利要求1或2所述的方法,其特征在于,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色,包括:
获取所述N层结点中的结点的个数之和为X;
根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;
从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,H为操作系统页大小。
6.一种针对查找树的缓存着色内存分配装置,其特征在于,包括:
构造模块,用于构造第一查找树;
确定模块,用于确定所述第一查找树具有N层结点,所述N为大于或等于1的整数;
获取模块,用于获取所述N层结点中每层中具有的结点的个数;
分配模块,用于根据所述N层结点中每层中具有的结点的个数,从内存的着色颜色中为所述每层结点分配对应的颜色;所述N层结点分配对应的颜色的种类数之和为内存的着色颜色的种类数之和;各层结点所分配的对应的颜色各不相同;
生成模块,用于根据所述每层结点对应的颜色和所述颜色对应的内存,生成缓存着色后的第二查找树。
7.根据权利要求6所述的装置,其特征在于,每层结点分配的对应的颜色的种类数为至少一种,其中,所述至少一种颜色在所述内存的着色颜色中是连续的。
8.根据权利要求6或7所述的装置,其特征在于,相邻各层分配的对应的颜色在所述内存的着色颜色中是连续的。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述分配模块,具体用于:获取所述N层结点中的结点的个数之和为X;根据第k层结点中的结点的个数为Xk,确定为第k层结点分配的颜色的种类数为Yk,所述Yk=(Xk/X)×Y,其中,所述Y为内存的着色颜色的种类数之和;所述k为大于等于1且小于等于所述N的整数;从所述内存的着色颜色中获取连续的Yk种颜色为所述第k层结点分配的对应的颜色。
10.根据权利要求6-9任意一项所述的装置,其特征在于,所述第k层结点中每个结点对应的在所述内存中的物理地址为Ak
其中,
ij为第j层结点分配的对应的颜色的种类数,H为操作系统页大小。
CN201610805579.8A 2016-09-06 2016-09-06 针对查找树的缓存着色内存分配方法和装置 Active CN107797941B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610805579.8A CN107797941B (zh) 2016-09-06 2016-09-06 针对查找树的缓存着色内存分配方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610805579.8A CN107797941B (zh) 2016-09-06 2016-09-06 针对查找树的缓存着色内存分配方法和装置

Publications (2)

Publication Number Publication Date
CN107797941A true CN107797941A (zh) 2018-03-13
CN107797941B CN107797941B (zh) 2020-07-07

Family

ID=61529923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610805579.8A Active CN107797941B (zh) 2016-09-06 2016-09-06 针对查找树的缓存着色内存分配方法和装置

Country Status (1)

Country Link
CN (1) CN107797941B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置
CN109710542A (zh) * 2018-12-28 2019-05-03 北京像素软件科技股份有限公司 一种满n叉树构建方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001040996A1 (en) * 1999-12-01 2001-06-07 The Trustees Of Columbia University In The City Of New York Cache sensitive search (css) tree indexing system and method
US20090171954A1 (en) * 2007-12-27 2009-07-02 Li Liu Frequent pattern array
CN101894048A (zh) * 2010-05-07 2010-11-24 中国科学院计算技术研究所 一种基于阶段分析的缓存动态划分方法和系统
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
CN105701165A (zh) * 2015-12-30 2016-06-22 广东欧珀移动通信有限公司 浏览器模式切换方法及切换装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001040996A1 (en) * 1999-12-01 2001-06-07 The Trustees Of Columbia University In The City Of New York Cache sensitive search (css) tree indexing system and method
US20090171954A1 (en) * 2007-12-27 2009-07-02 Li Liu Frequent pattern array
CN101894048A (zh) * 2010-05-07 2010-11-24 中国科学院计算技术研究所 一种基于阶段分析的缓存动态划分方法和系统
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
CN105701165A (zh) * 2015-12-30 2016-06-22 广东欧珀移动通信有限公司 浏览器模式切换方法及切换装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109492005A (zh) * 2018-11-07 2019-03-19 郑州云海信息技术有限公司 一种b+树读缓存方法及相关装置
CN109710542A (zh) * 2018-12-28 2019-05-03 北京像素软件科技股份有限公司 一种满n叉树构建方法及装置

Also Published As

Publication number Publication date
CN107797941B (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN105893269B (zh) 一种Linux系统下内存管理方法
US4980822A (en) Multiprocessing system having nodes containing a processor and an associated memory module with dynamically allocated local/global storage in the memory modules
US8373699B2 (en) Method and apparatus for parallel ray-tracing employing modular space division
CN105229980B (zh) 利用可变关键字大小的精确匹配查找的方法及设备
CN103218208B (zh) 用于实施成形的存储器访问操作的系统和方法
US20080122845A1 (en) Dynamic Determination of Optimal Spatial Index Mapping to Processor Thread Resources
US9041713B2 (en) Dynamic spatial index remapping for optimal aggregate performance
CN105518631B (zh) 内存管理方法、装置和系统、以及片上网络
EP2472412B1 (en) Explicitly regioned memory organization in a network element
US8957902B2 (en) Method and apparatus for interprocessor communication employing modular space division
CN103907099B (zh) 高速缓存一致性计算机系统中未缓存的短地址转换表
US6745292B1 (en) Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
CN112100185B (zh) 区块链数据平衡负载的索引系统及方法
CN108287840A (zh) 一种基于矩阵哈希的数据存储和查询方法
US9798674B2 (en) N-ary tree for mapping a virtual memory space
CN110297787A (zh) I/o设备访问内存的方法、装置及设备
US6480943B1 (en) Memory address interleaving and offset bits for cell interleaving of memory
CN107797941A (zh) 针对查找树的缓存着色内存分配方法和装置
US9965827B2 (en) Graphics processing system for and method of storing and querying vertex attribute data in a cache
CN104899159B (zh) 高速缓冲存储器Cache地址的映射处理方法和装置
CN109582601B (zh) 缓存存储装置
US7424576B2 (en) Parallel cachelets
US11567661B2 (en) Virtual memory management method and processor
US10366008B2 (en) Tag and data organization in large memory caches
CN108121671A (zh) 集成电路

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
GR01 Patent grant
GR01 Patent grant