访问哈希表的装置和方法_5

文档序号:8487844阅读:来源:国知局
在命中的哈希表项;和/或 根据所述目标哈希地址,确定所述公共冲突缓存中是否存在命中的哈希表项。
3. 如权利要求2所述的装置,其特征在于,所述主哈希表缓存包括N路缓存,所述N路 缓存之间组相连,其中所述N路缓存中的每个缓存行的目标tag字段包括:第一字段和第二 字段,所述每个缓存行的第一字段为所述每个缓存行存储的哈希表项对应的哈希地址的高 位字段,所述每个缓存行的第二字段为所述每个缓存行存储的哈希表项对应的关键字, 所述第二确定模块具体用于: 以所述目标哈希地址的低位字段为索引,从所述N路缓存中的每路缓存中选出对应的 缓存行,得到N个缓存行; 将所述N个缓存行中的每个缓存行的第一字段与所述目标哈希地址的高位字段进行 比较; 当所述N个缓存行中的每个缓存行的第一字段与所述目标哈希地址的高位字段均不 相同时,确定所述主哈希表缓存中不存在命中的哈希表项; 当所述N个缓存行中存在第一字段与所述目标哈希地址的高位字段相同的目标缓存 行时,比较所述目标缓存行的第二字段与所述访问请求包括的关键字是否相同; 当所述目标缓存行的第二字段与所述访问请求包括的关键字相同时,确定所述主哈希 表缓存中存在命中的哈希表项; 当所述目标缓存行的第二字段与所述访问请求包括的关键字不相同时,确定所述主哈 希表缓存中不存在命中的哈希表项。
4. 如权利要求2所述的装置,其特征在于,所述公共冲突缓存包括全相连结构,所述公 共冲突缓存的缓存行的目标tag字段包括第三字段和第四字段,所述第三字段为所述公共 冲突缓存的缓存行存储的哈希表项对应的哈希地址,所述第四字段为所述公共冲突缓存的 缓存行存储的哈希表项对应的关键字, 所述第二确定模块具体用于: 比较所述目标哈希地址与所述公共冲突缓存中的每个缓存行的tag字段; 当所述公共冲突缓存中各缓存行的tag字段与所述目标哈希地址均不相同时,确定所 述公共冲突缓存中不存在命中的哈希表项; 当所述公共冲突缓存中存在tag字段与所述目标哈希地址相同的目标缓存行时,比较 所述目标缓存行的第四字段与所述访问请求包括的关键字; 当所述目标缓存行的第四字段与所述访问请求包括的关键字相同时,确定所述公共冲 突缓存中存在命中的哈希表项; 当所述目标缓存行的第四字段与所述访问请求包括的关键字不相同时,确定所述公共 冲突哈希缓存中不存在命中的哈希表项。
5. 如权利要求1-4中任一项所述的装置,其特征在于,所述访问请求包括写请求,所述 访问请求中还包括待写入的数据, 所述第一访问模块具体用于: 当所述哈希表缓存中存在命中的哈希表项时,将所述待写入的数据写入所述哈希表缓 存中的命中的哈希表项所在缓存行的data字段。
6. 如权利要求1-4中任一项所述的装置,其特征在于,所述访问请求包括读请求, 所述第一访问模块具体用于: 当所述哈希表缓存中存在命中的哈希表项时,读取所述哈希表缓存中的命中的哈希表 项所在缓存行的data字段的内容。
7. 如权利要求1-6中任一项所述的装置,其特征在于,还包括: 第二访问模块,用于当所述第二确定模块确定所述哈希表缓存中不存在命中的哈希表 项时,根据所述目标哈希地址访问所述内存中的哈希表项。
8. 如权利要求7所述的装置,其特征在于, 所述第二访问模块具体用于: 当所述哈希表缓存中不存在命中的哈希表项时,将当前正在执行的访问请求的下一条 指令的地址写入地址寄存器,并跳转至用于访问内存的指令所在的地址,其中,所述地址寄 存器位于所述处理器中,用于存储所述处理器执行的指令的地址; 根据所述访问内存的指令,访问所述内存; 所述第二访问模块还用于: 当所述内存访问完毕之后,跳转回所述地址寄存器中记录的所述下一条指令的地址, 并执行所述下一条指令。
9. 一种访问哈希表的方法,其特征在于,所述方法包括: 获取访问请求,所述访问请求包括关键字; 根据所述关键字,确定目标哈希地址; 根据所述目标哈希地址,确定所述哈希表缓存中是否存在命中的哈希表项,所述哈希 表缓存位于通用的处理器中,且所述哈希表缓存专门用于缓存内存中的哈希表的至少部分 哈希表项,其中,所述哈希表缓存的每个缓存行用于缓存所述哈希表的一个哈希表项; 当所述哈希表缓存中存在命中的哈希表项时,访问所述哈希表缓存中命中的哈希表 项。
10. 如权利要求9所述的方法,其特征在于,所述哈希表缓存包括主哈希表缓存和公共 冲突缓存,所述公共冲突缓存用于存放所述至少部分哈希表项中的冲突表项, 所述根据所述目标哈希地址,确定所述哈希表缓存中是否存在命中的哈希表项,包 括: 根据所述目标哈希地址,确定所述主哈希表缓存中是否存在命中的哈希表项;和/或 根据所述目标哈希地址,确定所述公共冲突缓存中是否存在命中的哈希表项。
11. 如权利要求10所述的方法,其特征在于,所述主哈希表缓存包括N路缓存,所述N 路缓存之间组相连,其中所述N路缓存中的每个缓存行的目标tag字段包括:第一字段和第 二字段,所述每个缓存行的第一字段为所述每个缓存行存储的哈希表项对应的哈希地址的 高位字段,所述每个缓存行的第二字段为所述每个缓存行存储的哈希表项对应的关键字, 所述根据所述目标哈希地址,确定所述主哈希表缓存中是否存在命中的哈希表项,包 括: 以所述目标哈希地址的低位字段为索引,从所述N路缓存中的每路缓存中选出对应的 缓存行,得到N个缓存行; 将所述N个缓存行中的每个缓存行的第一字段与所述目标哈希地址的高位字段进行 比较; 当所述N个缓存行中的每个缓存行的第一字段与所述目标哈希地址的高位字段均不 相同时,确定所述主哈希表缓存中不存在命中的哈希表项; 当所述N个缓存行中存在第一字段与所述目标哈希地址的高位字段相同的目标缓存 行时,比较所述目标缓存行的第二字段与所述访问请求包括的关键字是否相同; 当所述目标缓存行的第二字段与所述访问请求包括的关键字相同时,确定所述主哈希 表缓存中存在命中的哈希表项; 当所述目标缓存行的第二字段与所述访问请求包括的关键字不相同时,确定所述主哈 希表缓存中不存在命中的哈希表项。
12. 如权利要求10所述的方法,其特征在于,所述公共冲突缓存包括全相连结构,所述 公共冲突缓存的缓存行的目标tag字段包括第三字段和第四字段,所述第三字段为所述公 共冲突缓存的缓存行存储的哈希表项对应的哈希地址,所述第四字段为所述公共冲突缓存 的缓存行存储的哈希表项对应的关键字, 所述根据所述目标哈希地址,确定所述公共冲突缓存中是否存在命中的哈希表项,包 括: 比较所述目标哈希地址与所述公共冲突缓存中的每个缓存行的tag字段; 当所述公共冲突缓存中各缓存行的tag字段与所述目标哈希地址均不相同时,确定所 述公共冲突缓存中不存在命中的哈希表项; 当所述公共冲突缓存中存在tag字段与所述目标哈希地址相同的目标缓存行时,比较 所述目标缓存行的第四字段与所述访问请求包括的关键字; 当所述目标缓存行的第四字段与所述访问请求包括的关键字相同时,确定所述公共冲 突缓存中存在命中的哈希表项; 当所述目标缓存行的第四字段与所述访问请求包括的关键字不相同时,确定所述公共 冲突哈希缓存中不存在命中的哈希表项。
13. 如权利要求9-12中任一项所述的方法,其特征在于,所述访问请求包括写请求,所 述访问请求中还包括待写入的数据, 所述当所述哈希表缓存中存在命中的哈希表项时,访问所述命中的哈希表项,包括: 当所述哈希表缓存中存在命中的哈希表项时,将所述待写入的数据写入所述哈希表缓 存中的命中的哈希表项所在缓存行的data字段。
14. 如权利要求9-12中任一项所述的方法,其特征在于,所述访问请求包括读请求, 所述当所述哈希表缓存中存在命中的哈希表项时,访问所述命中的哈希表项,包括: 当所述哈希表缓存中存在命中的哈希表项时,读取所述哈希表缓存中的命中的哈希表 项所在缓存行的data字段的内容。
15. 如权利要求9-14中任一项所述的方法,其特征在于,还包括: 当所述哈希表缓存中不存在命中的哈希表项时,根据所述目标哈希地址访问所述内存 中的哈希表项。
16. 如权利要求15所述的方法,其特征在于, 所述当所述哈希表缓存中不存在命中的哈希表项时,根据所述目标哈希地址访问所述 内存,包括: 当所述哈希表缓存中不存在命中的哈希表项时,将当前正在执行的访问请求的下一条 指令的地址写入地址寄存器,并跳转至用于访问内存的指令所在的地址,其中,所述地址寄 存器位于所述处理器中,用于存储所述处理器执行的指令的地址; 根据所述访问内存的指令,访问所述内存; 所述方法还包括: 当所述内存访问完毕之后,跳转回所述地址寄存器中记录的所述下一条指令的地址, 并执行所述下一条指令。
【专利摘要】本发明提供一种访问哈希表的装置和方法,所述装置包括:获取模块,用于获取访问请求,所述访问请求包括关键字;第一确定模块,用于根据所述获取模块获取的所述关键字,确定目标哈希地址;第二确定模块,用于根据所述第一确定模块确定的所述目标哈希地址,确定哈希表缓存中是否存在命中的哈希表项,所述哈希表缓存位于通用的处理器中,且所述哈希表缓存专门用于缓存内存中的哈希表的至少部分哈希表项,其中,所述哈希表缓存的每个缓存行用于缓存所述哈希表的一个哈希表项;第一访问模块,用于当所述第二确定模块确定所述哈希表缓存中存在命中的哈希表项时,访问所述哈希表缓存中命中的哈希表项。本发明实施例提高了哈希数据处理的效率。
【IPC分类】G06F17-30
【公开号】CN104809179
【申请号】CN201510179425
【发明人】赵鹏, 刘雷, 曹玮
【申请人】华为技术有限公司, 中国科学院计算技术研究所
【公开日】2015年7月29日
【申请日】2015年4月16日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1