当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于访问密码计算元数据和高速缓存扩展的无冲突散列制造技术

技术编号:31609432 阅读:21 留言:0更新日期:2021-12-29 18:36
实施例涉及用于访问密码计算元数据和高速缓存扩展的无冲突散列。一种装置的实施例包括一个或多个处理器,用以:计算多个散列函数,所述多个散列函数组合了加法、位级重排序、位线性混合、以及宽置换,其中所述多个散列函数中的每一个在加法、位级重排序、宽置换、或位线性混合之一中不同;以及利用所述多个散列函数的结果来访问散列表。的结果来访问散列表。的结果来访问散列表。

【技术实现步骤摘要】
用于访问密码计算元数据和高速缓存扩展的无冲突散列


[0001]本文中描述的实施例总体上涉及计算系统领域,并且更特别地涉及用于访问密码计算元数据和用于高速缓存扩展的无冲突散列。

技术介绍

[0002]密码计算可以指代用于计算机系统安全性的解决方案,该解决方案在处理器组件内部采用密码机制。一些密码计算系统可以在处理器核内部对存储器指针或用户数据采用加密和/或其他密码机制,然后这种数据离开处理器边界并且进入某个外部存储单元或被传送给某个其他设备。这种密码操作通常涉及访问表数据。在密码安全性的上下文中,表数据可以是安全性元数据,它可以包括权限位、策略元数据、消息认证代码(MAC)、完整性检查值等。即使许多密码术操作可以消除很多这种表数据,但是被存储为表数据的很多安全性元数据很可能存在于计算架构中。
附图说明
[0003]在附图的各图中作为示例而不是作为限制来图示这里所描述的实施例,附图中相同的附图标记指代相似的元素。
[0004]图1图示了根据某些实施例的用于访问密码计算元数据和用于高速缓存扩展的无冲突散列的计算设备。
[0005]图2是详细描述了根据本公开的实现方式的用于访问密码计算元数据的无冲突散列的示例散列函数设计的示意图。
[0006]图3图示了根据本公开的实现方式的实现用于访问密码计算元数据的无冲突散列的示例散列函数的流程图。
[0007]图4图示了根据某些实施例的用于从散列表读取密码计算元数据的无冲突散列的示例流程。
[0008]图5图示了根据某些实施例的用于将密码计算元数据插入到散列表的无冲突散列的示例流程。
[0009]图6是图示了根据本公开的实现方式的用于访问密码计算元数据和用于高速缓存扩展的无冲突散列的框图。
[0010]图7图示了根据某些实施例的用于读取路径上的高速缓存扩展的无冲突散列的示例流程。
[0011]图8图示了根据某些实施例的用于写入路径上的高速缓存扩展的无冲突散列的示例流程。
[0012]图9是图示了根据至少一个实施例的示例处理器核和存储器的框图。
[0013]图10是根据至少一个实施例的示例计算机架构的框图。
具体实施方式
[0014]各种实施例涉及例如用于访问密码计算元数据和用于高速缓存扩展的无冲突散列的技术。
[0015]由计算架构执行的许多功能涉及访问表数据。在安全性的上下文中,存储在表中的表数据可以包括安全性元数据,该安全性元数据可以包括权限位、策略元数据、消息认证代码(MAC)、完整性检查值等。即使密码术可以消除许多这种元数据,但它也很可能存在于未来的计算架构中。
[0016]在若干种情况下,表是使用可能包括大量的位(诸如,40位物理地址值)的索引来访问的。当发生这种情况时,大的“平面”表实现方式(潜在地包含所有可能索引值的条目)可能相当昂贵。这是因为这种平面表预先使用保留的大存储器区域。替代地,表可以经由被动态地构建并且由硬件或软件遍历的树结构来实现。树结构比平面表更好地工作,但是在某些情况下,树结构分配与用于平面表的存储器至少一样多的存储器,并且在关键路径中涉及若干次存储器访问。采用散列表的第三种替代方案在传统上已被认为难以在硬件中实现。这是由于对高效处置冲突的利用。散列表算法已经成为数十年来研究的主题。
[0017]已经提出了用以解决散列表中的冲突的许多解决方案,包括开放式寻址、合并散列(coalesced hashing)、布谷鸟散列(Cuckoo hashing)和罗宾汉散列(Robin Hood hashing)。这些解决方案尝试最小化表访问开销或冲突的概率。然而,这些解决方案要么以所采用的散列函数为代价而降低冲突的概率,要么采用复杂的冲突处置机制。这种机制通常涉及关键路径中的若干个表访问,难以在硬件状态机中实现,和/或利用替换表内部的条目的过程。此外,在以低成本来支持任意索引输入集合的同时保持以散列表的最大容量的高百分比(例如80%

90%)加载的散列表仍然是一个挑战。
[0018]本公开的实施例通过提供用于访问密码计算元数据和用于高速缓存扩展的无冲突散列来解决高效散列表的上述挑战。本公开的实现方式的无冲突方法允许构建用于存储和访问包括密码计算元数据的安全性元数据的散列表。本公开的实现方式的无冲突方法不调用任何冲突处置机制或过程,该方法当在硬件中实现时是简单且区域高效的(例如,在10 nm工艺中,总共利用35,988个门以及在关键路径中利用0.4纳秒的预期处理时间),该方法支持平均以1.46

1.74次存储器访问进行插入和读取操作,并且允许表针对任意不同的访问模式以多达其最大容量的大百分比(例如85

93%)来进行操作。本公开的实现方式还可以用于提供扩展的高速缓存访问,但是经由利用多个密码散列函数来并行访问每一个较低级别高速缓存单元从而允许一组较低级别高速缓存用作单个较大的高速缓存单元。本公开的实现方式还可以在安全性上下文之外使用,诸如例如在高效地利用存储和访问表数据的人工智能(AI)的任何架构组件中使用。
[0019]在本公开的实现方式中,多个不同的散列函数(密码散列函数)由散列函数生成器生成,以便访问散列表或用于高速缓存访问扩展。在一个实施例中,多个不同的散列函数是密码性强(cryptographically

strong)的散列函数,其组合了具有进位的加法、位级重排序、对于多个不同散列函数中的每一个而不同的位线性混合、以及宽置换(wide substitution)。在一个实现方式中,多个散列函数是带密钥的散列函数,其共享包括具有进位的加法、位级重排序、以及宽置换的操作,但是利用不同的密钥。由本公开的实现方式所提供的多个不同的散列函数减少了散列中的冲突并且改进了计算架构中的总体存储器
利用。
[0020]图1图示了根据某些实施例的用于访问密码计算元数据和用于高速缓存扩展的无冲突散列的计算设备100。计算设备100一般可以具有计算功能性(例如,数据中心、云服务器、个人数字助理、笔记本计算机、台式计算机、膝上型计算机、移动设备等)、成像功能性(例如,相机、投影仪等)、媒体播放功能性(例如,智能电视/TV、游戏平台、智能电话等)、可穿戴功能性(例如,手表、眼镜、头饰、鞋类、珠宝等)、车辆功能性(例如,汽车、卡车、摩托车等)等等。计算设备100还可以包括用于各种各样的目的的通信功能性。
[0021]在所图示的示例中,计算设备100可以包括处理器120和存储器106。处理器120可以是微处理器、嵌入式处理器、数字信号处理器(DSP)、中央处理单元(CPU)、图形处理单元(GPU)、视觉处理单元(VPU)、网络处理器、硬件加速器、执行代码以实现本文中描述的技术的一个或多个方面的硬件等。例如,处理器120可以包括用以执行操作的一个或多个核(例如,单线程核、每个核包括多于一个硬件线程上下文(或“逻辑处理器”)的多线程核等)。处理器120还可以通信地耦合本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种装置,包括:一个或多个处理器,用以:计算多个散列函数,所述多个散列函数组合了加法、位级重排序、位线性混合、以及宽置换,其中所述多个散列函数中的每一个在加法、位级重排序、宽置换、或位线性混合之一中不同;以及利用所述多个散列函数的结果来访问散列表。2.根据权利要求1所述的装置,其中散列表的每个条目包括多个密钥

值对,并且其中所述多个散列函数的结果被用作散列表的密钥。3.根据权利要求1所述的装置,其中所述多个散列函数中的每个散列函数在它们的位线性混合步骤中不同。4.根据权利要求1所述的装置,其中所述多个散列函数是带密钥的散列函数,其共享包括加法、位级重排序、以及宽置换的操作,但是利用不同的密钥。5.根据权利要求1所述的装置,其中所述一个或多个处理器进一步用以访问存储器层级结构,其中存储器层级结构中的至少一个级别包括多个高速缓存单元,其中通过计算来自所述多个散列函数的不同密码散列函数的输出来访问所述多个高速缓存单元中的每个高速缓存单元。6.根据权利要求5所述的装置,其中并行地计算不同密码散列函数的输出,并且其中使用所述输出作为对所述多个高速缓存单元的索引来并行地访问所述多个高速缓存单元。7.根据权利要求1所述的装置,其中所述多个散列函数进一步组合了具有进位的加法或具有借位的减法之一的序列。8.根据权利要求1所述的装置,其中宽置换包括:实现基于伽罗瓦域(GF)逆转的S盒。9.根据权利要求1所述的装置,其中散列表用以存储与密码计算相对应的元数据。10.一种方法,包括:由处理器来计算多个散列函数,所述多个散列函数组合了加法、位级重排序、位线性混合、以及宽置换,其中所述多个散列函数中的每一个在加法、位级重排序、宽置换、或位线性混合之一中不同;以及由处理器利用所述多个散列函数的结果来访问散列表。11.根据权利要求10所述的方法,其中散列表的每个条目包括多个密钥

值对,并且其中所述多个散列函...

【专利技术属性】
技术研发人员:M
申请(专利权)人:英特尔公司
类型:发明
国别省市:

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

1