有一种管理CPU快速存取内存的新流程,使速度提升了两倍之多,耗能减少高达72%。据这种流程的设计师称,实现这类卓越成果需要改变计算机中控制这一关键内存的部件:直接布线至CPU电路进行控制若交由操作系统处理,速度就可大幅提升。
CPU将高速内存缓存作为一种数字暂存区域。缓存主要是保存CPU可能很快用到的指令或是需要处理的数据,是CPU的工作台。从智能手机到服务器,几乎每一个CPU都是用其电路中内置的算法管理进出缓存的比特流的。
但是麻省理工学院的两位研究人员说,随着计算机和便携设备的内存和CPU核数不断增多,完全由CPU来管理缓存也越来越不现实。他们说,操作系统最好能分担这项工作。
这种想法本身并不是全新的概念。在IBM的一些Cell处理器以及索尼的PlayStation 3(基于Cell技术)中,应用程序和操作系统内核就参与了低级CPU内存管理。麻省理工学院的Jigsaw技术的特别之处在于其中立的方法,软件无需太多控制便能配置芯片上的一些内存缓存,从而避免编程成为内存管理的噩梦。
麻省理工学院计算机科学及人工智能实验室助理教授、Jigsaw发明者之一丹尼尔•桑切斯(Daniel Sanchez)说:“几年前,人人都在抱怨,说虽然推出了PlayStation 3,但没有人能把程序编好。”
通常由CPU硬件控制所有的芯片缓存,但这些缓存必须承担任何一项能想象到的工作,从单纯的浮点数运算(对缓存而言是一个小负担)到计算机存储器组的密集搜索和查询(可能会超越它们的极限)。此外,CPU对其所开展的工作类型并无深刻的认识。这意味着利用与图谱搜索(对存储数据之间关系进行的占用内存的搜索)一样的缓存资源就可进行自成一体、包含复杂方程式的数值模拟,几乎不需要访问内存。
因此桑切斯和他的研究生南森•贝克曼(Nathan Beckmann)想,为什么不让操作系统减小缓存规模,进行纯计算,并扩充其设置进行图谱搜索呢?
他们说,第一步是将CPU占用空间的约1%分给一个可实时监控每个核心中缓存活动的简单硬件。有了硬件缓存监视器,Jigsaw就具备了充当CPU缓存空中交通管制员所需的独立监视能力。
桑切斯和贝克曼说,然后最多需要给操作系统内核再增加几千行代码即可。考虑到之前Linux内核提供了1500万行代码,而非官方的数字称,苹果和微软的内核则比这个数字还多几千万行,所以增加几千行并不多。
桑切斯说,Jigsaw其中一个更为突出的特别之处是嵌入操作系统的一个软件模块,研究人员称其为Peekahead。这种模块是根据十多年前北京的计算机科学家们开发的Lookahead缓存改造而成的。Peekahead能预测内核在未来时钟周期内要进行的工作,据此计算最佳CPU缓存配置。
桑切斯说:“如果交由软件管理,那么就必须要注意开销了。”他说设计不当的缓存管理系统可能会将缓存缩小到最佳规模,每秒重复多次,但这样会给CPU造成负担。需要大量CPU时间的CPU效率算法的意义何在?他说:“精确解非常昂贵。所以我们必须找到一个快速完成工作的方法,以保证开销不会超过收益。”
总部位于加利福尼亚山景城的半导体咨询公司林利集团的林利•格温耐普(Linley Gwennap)说,他对Jigsaw印象深刻,但要注意晶圆厂还未完全作好准备。“一般来说,问题是,在一种处理器上奏效的方案,在另一种具有不同硬件设计的处理器上可能不起作用。”他说道,“处理器一有变化,就不得不重新设计软件,客户们对此不太喜欢。”
桑切斯反驳说,软件应用和实用程序不会受到Jigsaw的影响。他说:“只有操作系统代码需要熟悉硬件知识,如缓存不同部分的拓扑结构。”
密歇根大学计算机科学助理教授杰森•玛尔斯(Jason Mars)说,作为概念验证手段,Jigsaw很有效,但他说芯片制造商在他们认为适当之处可能进行调整。
“这项工作的奇妙之处与软硬件之间的协同设计有关。”玛尔斯说,“以往的大部分工作都偏向一个方向。预期在硬件中完成的工作较多,相对灵活性较少。Jigsaw确实创建了一套涵盖了硬件和软件的全面体系。”
原文发布时间为:2018-06-7