中文 英语

不同方式使用内存

优化复杂的芯片需要对整个系统架构做出决策,而内存是一个关键变量。

受欢迎程度

芯片架构师们开始重写关于如何选择、配置和使用不同类型内存的规则,特别是针对带有AI和一些高级soc的芯片。

基于应用程序和内存工作负载的特征等因素,芯片制造商现在在选择内存时有许多选择和权衡,因为不同类型的内存在不同的工作负载下比其他内存工作得更好。同样重要的还有存储器的位置、进出存储器的数据路径,以及需要存储和处理的数据量和类型。

“该行业正在大规模生产几种类型的存储器,旨在满足不同类型应用程序的关键需求,”Steven Woo说,该公司副总裁,系统和解决方案组,和杰出的发明家Rambus实验室.“在某些情况下,哪种内存最适合某个应用程序是很明显的,而在另一些情况下,可能有几个不同的内存可能适合某个特定的工作。应用程序工作负载的特征可能有助于决定最终选择哪种类型的内存。在其他情况下,价格、可用性和实现复杂性等因素可能会影响内存类型的选择。

一般来说,LPDDR用于移动和低功耗应用,DDR用于主流计算和许多消费应用,GDDR用于图形和高性能计算应用,如AI、机器学习、ADAS(高级驾驶辅助系统)和超级计算。HBM与此同时,它是为了实现最高性能、最节能的处理。

工作负载通常取决于延迟、带宽、容量和功耗,但在新芯片设计中,这些因素之间的相互作用越来越多。其中任何一个或所有这些都可能使如何选择、组织和配置内存以最大化性能或最小化功耗的决策复杂化。

Woo说:“内存有许多配置选项,其中一些在配置寄存器中可编程(例如,设备延迟),而另一些则在单独的设备中提供(例如x8和x16的设备宽度)。”“一些工作负载对延迟高度敏感,应该对配置寄存器进行编程,以最小化访问时间。其他工作负载可能对带宽很敏感,因此应该组织和配置设备以实现最高吞吐量。在某些应用程序中,选择哪种变体以及如何配置它可能相当复杂。选择取决于在特定处理器上运行的特定应用程序工作负载的最佳选择。”

内存也可以以非传统的方式使用,这使得选择更加复杂。

“随着许多用于计算和分析的新算法和新策略的出现,内存几乎正成为一种有趣的实用工具,”微软公司营销副总裁迈克·吉安法格纳(Mike Gianfagna)说eSilicon.“它几乎就像另一个电路构件,而不仅仅是芯片外或芯片上存储信息的方式。这是一个与算法密切相关的实用程序。”

因此,虽然内存一直是任何设计的关键部分,但可以追溯到冯·诺依曼结构在20世纪40年代,人们更注重选择、配置,在某些情况下,改变这些记忆的功能。

eSilicon人工智能战略和产品高级总监Carlos Macián表示:“多年来,eSilicon必须使自己与众不同的最重要方式之一是为特定的ASIC需求定制内存。”“在最近,重点更多的是,‘这种特定的ASIC可以从这种特定的内存配置中受益,’然后优化它,使其达到特定的宽高比,特定的区域或特定的功率,超出了现有编译器的能力,因为这对产品的最终QoR有巨大的影响。”


图1:冯·诺依曼基本方法。

是什么改变了
但由于芯片上有如此多的内存——在某些情况下,它占了大型soc面积的一半——微小的变化会产生巨大的影响。这在人工智能应用程序,小内存通常分散在具有高度特定处理元素的芯片周围,以便更快地处理大量数据。现在的挑战是尽量减少数据的移动。

Macián表示:“正是通过人工智能市场和人工智能架构的出现,近内存计算或内存计算的想法才得以复兴。”“一旦这个想法重新回到桌面上,人们就开始寻找将同样的概念用于RISC-V处理器等产品的方法。显然,所有的处理器都有内存,选择正确的内存对于在任何芯片中获得处理器的良好实现都是非常重要的。现在,处理器开发人员要求内存在实际从内存中检索数据之前对地址执行一些操作,以简化内存周围的电路。我们在这里谈论的是在内存中或内存附近进行大量的计算,但通过关键元素和关键操作,可以极大地简化围绕它的逻辑。”

AI芯片与其他架构的区别在于一个相对简单的主要计算元素——乘法累积(MAC)块。该块在ASIC中被并行化并重复数千次。Macian解释说,由于这种复制,例如,在面积或功率方面的任何微小改进都会对芯片产生巨大的整体影响。

为了充分利用这些设备,AI芯片架构师也依赖于微架构。变化正在悄悄地渗透到设计的各个层面,在某些情况下,挑战了标准的设计方法,比如内存是否需要小、快和低功耗。

“不同公司所遵循的微架构是不同的,这些决定推动了与片上存储器的交互,”该公司产品营销总监Prasad Saggurti说Synopsys对此.“通常,快内存比慢内存更大,功率更高,但人们在内存层次方法中所做的是让快内存更小,更接近处理器,然后用一个更大、更慢、更低功率的内存,以及L2缓存、L3缓存等等来掩盖它。现在,由于人工智能和人工智能,不同的方法正在出现机器学习.有一些操作会经常发生,所以你可以做内存中或近内存计算。特别是如果有像嵌入式视觉或某种面部识别这样的东西,就会发生某些转换,所以这些记忆可以与某些类型的操作相一致。你不只是读一个数据,然后把它带回CPU,做你的操作,然后再写。你可以在内存中或非常接近内存的地方进行读-修改-写操作,这样你就不需要回到CPU来做这件事了。”

均衡是另一种折衷方案,它已开始用于DDR4和更高的数据速率。

专注于信号完整性解决方案的产品工程架构师Ken Willis说:“一个重要的考虑因素是需要什么类型的均衡来实现这些新型内存接口的开放。节奏.“关键之一是建立物理系统拓扑的虚拟原型,这样你就可以进行权衡和模拟。权衡的一个新部分是如何将均衡纳入信号完整性分析。物理和拓扑的权衡是关于阻抗,线长,通过配置,现在一个额外的维度是均衡,以优化所有新的内存接口的设计——基本上从DDR4开始。每个人现在做的每件事都有一个额外的均衡变量。这是我们必须做出的权衡之一。”

GPU角色的演进
驱动人工智能的引擎之一是GPU。GPU价格低廉,易于获得,可用于高度并行的操作,如处理训练数据。但gpu并不是特别节能,有几十家初创公司和成熟的芯片制造商正在研究人工智能芯片,预计这些芯片的性能将比gpu提高几个数量级。

尽管如此,gpu对于设计团队来说还是非常熟悉的。Saggurti说:“相比之下,很多数据路径是相似的,所以我们最终会在gpu中看到大量的单端口内存。”“我们看到了很多双端口内存,很多fifo。我们在AI CPU芯片中没有看到太多fifo,但我们看到了很多单端口静态存储器.这就导致了以前服务器芯片上10或20兆的SRAM。现在我们看到微架构需要大量的内存,因为它们不想离开芯片去做任何事情。他们想把所有的数据都保存在芯片上,所以现在一块芯片上可能有1到2千兆的SRAM。SRAM的面积百分比不断增加,但功率百分比也在不断增加。”

这种对权力的日益关注需要大量的分析。Saggurti说:“我们为特定的PPA提供SRAM是不够的。“对我们来说,做可靠性分析也很重要,以了解5西格玛边际是否足够,或者是否应该到6西格玛。考虑到很多内部自计时的sram在统计上被期望以某种方式表现,内存是否应该被减慢?当内存达到1千兆或2千兆时,发生这种情况的可能性只有百万分之一,因此需要进行更多不同的分析,并进行具体的设计分析。”

在这一点上,这些新的架构方法将如何发展还不得而知,但过去被认为是最简单的方法正在被修改。在所有情况下,内存都是一个关键变量。

“直到最近,你都有一个相当标准的内存架构,你可以在SoC中使用,”Neil Hand,营销总监,设计验证技术Mentor是西门子旗下的企业.“如果你在制造一部手机,你有缓存,你有主存,你没有太多创造性的东西可以做。但当你开始研究像人工智能这样的新型计算架构时,标准架构只是众多架构之一。”

以RISC-V为例,汉德说,设计架构师正在构建新的计算架构,因为有机会玩有趣的内存配置。“这并不新鲜。在DSP方面,人们一直在使用各种DSP ip进行奇怪的内存配置,人们从中获得的许多优势,无论是音频处理器还是网络处理器,都来自于这些处理器内存的独特配置。”

挑战在于了解这些记忆对系统级的影响。

“你怎么决定?”这就是我们的能力所在虚拟样机早期的架构探索开始变得非常重要,因为你现在可以很早就对设计进行实验,并在非常粗略的水平上说什么内存架构将会工作,”汉德说。“是不是有很多不同的便签记忆?它是否像人工智能架构一样,在你读取地址时,内存会修改地址?是在记忆中做数学吗?有一些内存供应商正在考虑做特定于人工智能的内存,其中处理被内置到内存中——如果你知道你的目标是什么,这是一个非常酷的想法。”

我们需要的是一种进行体系结构探索的方法,以查看各种可能选择的影响。这可以包括从虚拟建模到其他仿真工具的所有内容。

“我增加了更多的处理器,我有了这么大的内存,但现在我的内存已经饱和了互连汉德说。“一旦你开始改变传统的内存架构,一切就会重新相互联系起来。如果你想想上一波由移动驱动的soc,大多数soc的外观和感觉都是一样的。他们正在运行广泛的通用应用程序——在操作系统之上的操作系统,运行游戏或各种其他应用程序。当你开始走向人工智能、自动驾驶、物联网、工业时,它们变成了高度专业化的计算,所以现在对不同的计算架构产生很大兴趣的原因是,你可以将它们专门用于计算。但它也同样适用于内存架构、结构和noc,以及soc的所有这些不同部分。现在,您可以对它们进行配置,并针对您的应用范围进行专门化。”

结论
越来越清楚的是,内存不再只是一个清单项目,仅仅用更多的内存来解决问题并不总是提高性能或降低功耗的最佳方法。我们面临的挑战是,如何在系统级别上为越来越具体的应用程序、用例和数据类型工作,在这些情况下,内存的位置、类型以及如何使用这些内存电路会产生重大影响。

有关的故事

内存计算的挑战成为焦点

内存中的处理

如何选择正确的记忆

定义边缘内存需求

技术讲座:HBM vs. GDDR6



留下回复


(注:此名称将公开显示)

Baidu