[发明专利]一种实现高速缓存表的方法有效
申请号: | 201710965568.0 | 申请日: | 2017-10-17 |
公开(公告)号: | CN107729053B | 公开(公告)日: | 2020-11-27 |
发明(设计)人: | 沈晓峰 | 申请(专利权)人: | 安徽皖通邮电股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F12/0877 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 230000 *** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 高速缓存 方法 | ||
1.一种实现高速缓存表的方法,其特征在于:选取支持SIMD指令的通用处理器,包括以下步骤:
步骤一:缓存表的存储,使用一个或多个SIMD寄存器用于关键字的匹配,位长根据处理器自带能力选择;使用SIMD寄存器保存结果或者使用内存数组保存结果;
步骤二:缓存的查找,使用SIMD的指令来进行一对多的匹配,查出的索引提取结果返回;
步骤三:缓存的添加,选取第一个无效的表项号,关键字匹配的SIMD寄存器对应表项如果为无效值则认为该表项无效,修改关键字匹配的SIMD寄存器对应表项,保存缓存关键字,并且修改结果数据中对应表项保存缓存结果;
所述步骤二具体为将查表关键字放入SIMD寄存器B,通过SIMD指令,将关键字复制到SIMD寄存器B的各个单元,通过SIMD寄存器B去和保存在SIMD寄存器A中的表关键字信息匹配,结果放到SIMD寄存器B,SIMD寄存器B某个单元的值如果是1表示匹配,是0表示不匹配,获取SIMD寄存器B 最高位连续为0 的个数,经过换算,得到匹配单元的单元号n,再用n去内存或另一个SIMD寄存器D中提取结果。
2.如权利要求1所述的一种实现高速缓存表的方法,其特征在于:还包括步骤四:缓存的删除指定项,修改关键字匹配的SIMD寄存器对应表项为无效值,结果数据可不清除。
3.如权利要求2所述的一种实现高速缓存表的方法,其特征在于:还包括步骤五:缓存的清空,修改关键字匹配的SIMD寄存器为全无效。
4.如权利要求3所述的一种实现高速缓存表的方法,其特征在于:所述步骤一支持关键字大小包括,1字节,2字节,4字节,8字节等,即通用CPU携带的SIMD寄存器支持的单元大小,如果是128位SIMD寄存器这样对应每个寄存器支持的单元数量为16,8,4,2。
5.如权利要求4所述的一种实现高速缓存表的方法,其特征在于:所述步骤三中具体还包括步骤二中查找SIMD寄存器A中无效单元n,将待添加关键字替换该单元中无效值,结果写入n相应于内存或另一个SIMD寄存器D相应单元。
6.如权利要求2所述的一种实现高速缓存表的方法,其特征在于:所述步骤四具体为对于需要删除的单元n,修改SIMD寄存器A中对应单元值为无效值。
7.如权利要求3所述的一种实现高速缓存表的方法,其特征在于:所述步骤五具体为SIMD寄存器A所有单元设置为无效值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽皖通邮电股份有限公司,未经安徽皖通邮电股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710965568.0/1.html,转载请声明来源钻瓜专利网。