前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将缓存数据率提升50%,MIT、Intel的研究人员还让宽带利用率提高5倍 | 黑科技

将缓存数据率提升50%,MIT、Intel的研究人员还让宽带利用率提高5倍 | 黑科技

作者头像
镁客网
发布2018-05-30 12:20:13
5550
发布2018-05-30 12:20:13
举报
文章被收录于专栏:镁客网镁客网

该研究团队对现代芯片中发现的内存管理系统略有修改,从而避免元数据繁杂传输过程。

传统的计算机上,微处理芯片是封装在主板上的,其底部装有杜邦线,数据通过线路在微处理器和主存之间传输。

后来,随着晶体管数的增加,微处理器和主存之间的传输速度成为提升计算机性能的主要障碍,因此,近年来,芯片制造商已经开始将动态随机存取存储器(DRAM)作为主存储器的存储器类型。

虽然DRAM可以实现高容量缓存且可以快速得将常用数据存储到本地,但是DRAM与通常用于片上高速缓存的内存类型截然不同,现有的缓存管理方案不能有效的使用它,即DRAM中有部分内存资源是被浪费的。

在刚刚结束的IEEE/ACM International Symposium on Microarchitecture会议上,MIT、Intel和ETH Zurich的研究人员们共同给出了新的高速缓存管理方案,该方案可以将原有计算机主板上的DRAM的高速缓存数据速率提高33%至50%。

下面我们先了解下数据缓存的过程。

元数据与高速缓存

在现代计算机芯片中,当处理器需要特定的数据块时,它将检查其本地缓存以查看数据是否已经存在。其中,在主存储器中的高速缓存数据的地址的“标记”标签是元数据。

元数据主要是描述数据属性的信息,用来支持和指示存储位置、历史数据、资源查找和文件记录等功能。

一般情况下,典型的片上高速缓存有足够的空间用于存储64000个具有64000个标签的数据,而在运行过程中,为了提高效率,处理器不需要搜索所有64000个条目,缓存系统通常使用称为“哈希表”的东西组织数据。当处理器使用特定标签寻找数据时,首先它将标签哈希函数,然后处理器用约定的哈希函数方式处理数据以产生新的数字,该数字表示数据表中的插槽,同时处理器根据新数字查找感兴趣项目的位置。

类似于现有的缓存方案,哈希函数可以为不同的输入产生相同的输出,因此,缓存的散列表通常会在相同的哈希索引下存储两个或三个数据项。虽然经过哈希函数处理的搜索依然很繁琐,然而,搜索给定标签的两个或三个项目比搜索64,000要好得多。

那么在选定的缓存方案下,内存的选择和处理依然会对速率产生明显的影响。

存储器:DRAM和SRAM

DRAM和SRAM之间的区别在于标准缓存中使用的技术存在差异,对于存储的每一位数据,SRAM都使用六个晶体管,DRAM只使用一个,这意味着它更节省空间;但是SRAM有一些内置的处理能力,而DRAM没有。

如当处理器想要搜索数据项的SRAM高速缓存,则会将该标签发送到高速缓存,随后SRAM电路本身会将标签与存储在相应散列位置的项目进行比较,匹配则返回相关联的数据。相比之下,DRAM不能做任何事,只能传送所请求的数据。在DRAM中,处理器首先会要求存储在给定散列位置的第一个标签,如果匹配,则发送关联数据的第二个请求;如果不匹配,它将请求第二个存储的标签,以此类推,直到它找到想要或放弃的数据并转到主内存。

综合优劣,封装中的DRAM具有大带宽的优势,但是传统缓存处理过程会浪费它的带宽。

针对这一问题,该研究团队对现代芯片中发现的内存管理系统略有修改,从而避免元数据繁杂传输过程。

基于DRAM处理方案的改变

我们希望在计算机芯片上运行的任何程序都管理自己的内存使用,程序调用和管理内存的行为就好像它在管理自己的专用内存存储一样。不过事实上,多个程序通常是同时在同一个芯片上运行,并且它们是同时将数据发送到主内存。因此,芯片中的每个核心或处理单元通常会将各个程序使用的虚拟地址映射到存储在主存储器中数据的实际地址表。

于是研究人员利用这一点,在表中的每个条目添加三位数据,其中一位用于指示是否可以在DRAM高速缓存中找到该虚拟地址处的数据,另外两个表示相对于具有相同散列索引的任何其他数据项的位置。

对此,于向耀(音译)解释道:“在这个条目中,物理地址、虚拟地址和其他数据加起来已经占用差不多100位,所以三个额外的位是一个非常小的开销。”

但这种方法有一个问题,如果一个芯片的核心将数据项拉入DRAM高速缓存,其他内核是不会知道的,所以每次更新缓存时,芯片向所有芯片的内核发送消息会消耗大量的时间和带宽。因此,研究团队引入了另一个小电路,称为标签缓冲区,在这个缓冲区中,任何给定的核心都可以记录其缓存的数据项的新位置。

缓冲区很小,只有5千字节,所以它的添加缓冲区是不会占用太多片上存储资源的,并且实验数据显示,与研究人员提供的带宽节省相比,每个存储器访问一次额外地址查找所需的时间是微不足道的。

总结

对于这一改进方案和设计,于向耀(音译)表示:“以前的方案花费太多的流量访问元数据或者只是在内置和非封装DRAM之间移动数据,而不是真正访问数据,并且浪费了大量的带宽,而这个新方案的带宽利用率是原有方案的五倍。”

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 镁客网 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 元数据与高速缓存
  • 存储器:DRAM和SRAM
  • 基于DRAM处理方案的改变
  • 总结
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档