更高效的内存管理方案可以帮助实现具有数千个

ߣadmin
Դ未知 ڣ2019-08-04 16:22 ()

  在现代的多核芯片中,每个核心(或处理器)都有自己的小内存缓存,用于存储常用数据。但该芯片还有一个更大的共享缓存,所有内核都可以访问。

  如果一个核心尝试更新共享缓存中的数据,则需要知道处理相同数据的其他核心。因此,共享缓存会保留一个目录,其中哪些核心具有哪些数据的副本。

  该目录占用了大量内存:在64核芯片中,它可能占共享缓存的12%。而这个百分比只会随着核心数量的增加而增加。设想具有128,256甚至1,000个内核的芯片将需要一种更有效的方式来维持缓存一致性。

  在10月份的并行架构和编译技术国际会议上,麻省理工学院的研究人员揭示了三十多年来第一个基本的新方法来缓存一致性。而对于现有技术,目录的内存分配与内核数量成正比增加,采用新方法,它根据内核数量的对数增加。

  在128核芯片中,这意味着新技术只需要三分之一的内存。随着英特尔即将在不久的将来推出72核高性能芯片,这不仅仅是假设的优势。但是使用256核芯片,节省的空间可以节省80%,而使用1,000核芯片则可以节省96%。

  当多个核心只是读取存储在同一位置的数据时,没有问题。仅当其中一个核心需要更新共享数据时才会发生冲突。通过目录系统,芯片可以查找哪些内核正在处理该数据,并向它们发送消息,使其本地存储的副本无效。

  “目录保证,当写入发生时,不会存在数据的陈旧副本,”麻省理工学院电子工程和计算机科学研究生,新论文的第一作者俞祥耀说。“发生这种写入后,不会发生对先前版本的读取。因此,在所有先前的物理时间顺序读取之后,对此写入进行排序。“

  余和他的论文顾问 - 麻省理工学院电气工程和计算机科学系Edwin Sibley Webster教授Srini Devadas意识到分布式计算的物理时间顺序并不重要,只要它们的逻辑时间顺序保留下来。也就是说,核心A可以继续处理核心B已被覆盖的数据,前提是系统的其余部分将核心A的工作视为核心B之前的工作。

  Yu和Devadas的方法的独创性在于找到一种简单有效的方法来强制执行全局逻辑时间排序。“我们所做的只是为每个操作分配时间戳,我们确保所有操作都遵循时间戳顺序,”Yu说。

  使用Yu和Devadas的系统,每个核心都有自己的计数器,内存中的每个数据项也都有一个相关的计数器。程序启动时,所有计数器都设置为零。当一个核心读取一个数据时,它会取出一个“租约”,这意味着它会将数据项的计数器递增到,例如,10。只要核心的内部计数器不超过10,它的副本就是数据有效。(具体数字并不重要;重要的是它们的相对价值。)

  但是,当核心需要覆盖数据时,它需要“拥有”它。其他核心可以继续处理其本地存储的数据副本,但如果他们想要扩展其租约,则必须与数据项的所有者协调。正在进行写入的核心将其内部计数器增加到高于数据项计数器的最后一个值的值。

  例如,假设核心A到D都读取了相同的数据,将其内部计数器设置为1并将数据计数器递增到10.核心E需要覆盖数据,因此它需要拥有它并设置其内部计数器它的内部计数器现在指定它在​​比其他核心更晚的逻辑时间运行:它们回到1,它在11处领先。时间跨越的想法是系统的名称 - Tardis,在英国科幻英雄Dr. Who的时间旅行飞船之后。

  现在,如果核心A试图取出数据的新租约,它将发现它由核心E拥有,并向其发送消息。核心E将数据写回共享缓存,核心A读取它,将其内部计数器递增到11或更高。

  除了节省内存空间外,Tardis还消除了向共享数据项的所有核心广播失效消息的需要。Yu说,在大型多核芯片中,这也可以带来性能提升。“我们没有看到这些实验中的性能提升,”Yu说。“但这可能取决于基准” - Yu和Devadas测试Tardis的行业标准程序。“他们是高度优化的,所以他们可能已经消除了这个瓶颈,”Yu说。

  “还有其他人看过这种租赁理念,”英特尔实验室的首席工程师Christopher Hughes说,“但至少据我所知,他们倾向于使用物理时间。你会给某人一个租约然后说好吧,是的,你可以将这些数据用于100个周期,我保证没有其他人会在那段时间内触摸它。 但是你有点限制你的表现,因为如果其他人立即想要改变数据,那么他们必须等待100个周期才能这样做。在这里,没问题,你可以提前计时。据我所知,这是以前从未做过的事情。这是关键的想法,真的很整洁。“

  然而,休斯说,芯片设计师本质上是保守的。“几乎所有批量生产的商业系统都基于基于目录的协议,”他说。“我们不会搞砸他们,因为在改变实施时很容易犯错误。”

  但“他们的计划的部分优势在于它在概念上比目前的[基于目录]方案更简单,”他补充道。“这些家伙所做的另一件事不仅是提出这个想法,而且他们还有一份单独的论文,证明了它的正确性。这对这个领域的人来说非常重要。

Ƽ