27

LJgibbs · 8月26日

新思白皮书 使用多通道体系结构优化LPDDR4的性能和功耗导读

本期我们学习新思的一篇关于 LPDDR4 多通道体系结构优化的白皮书。原文有官方的中文译文版本,本文在此基础上做一些翻译优化(原中文版本不太流畅)和内容调整,并附上少量作者的个人见解,作为原文的导读文章。

原文链接:使用多通道体系结构优化LPDDR4的性能和功耗

申明:本文可能含有一些 AI 辅助创作。

作者: Marc Greenberg DDR IP, Synopsys产品市场营销主管

引言

LPDDR4 是用于移动应用的最新双数据率同步DRAM,它是当今高端便携产品中常见的 DRAM 类型,应用 于如Samsung Galaxy S6 智能手机,Apple iPhone 6S ,以及数种(编者注:当年)最新发布的设备。除了移动应用之外, 预计 LPDDR4 会像其前任 LPDDR3 那样应用于平板电脑、轻薄笔记本电脑中,会采用“底层存储器”配置,即 DRAM 以物理方式焊接在主板上。

LPDDR4 在占用很小的 PCB 面积,和体积的情况下提供了巨大的带宽;在 3200Mbps 的数据速率下,当两片裸片(Die)封装在一起时,单个 15 毫米 x 15 毫米 LPDDR4 封装可提供 25.6 GByte/s 的带宽。LPDDR4 在 LPDDR2和 LPDDR3 的成功基础之上,增加了新的特性并引入了一些结构变化。

本白皮书中阐明了 LPDDR4 与以前所有 JEDEC DRAM 规格的差异之处。讨论了下述方面:

  • 设计人员为何选择 LPDDR4
  • LPDDR4 体系结构的亮点
  • 如何配置最合适 LPDDR4 通道
  • 如何处理具有多通道连接的 2 /4 片 Die 封装
  • 通过系统级芯片(SOC)分割共享通道的优点
  • 如何优化通道以实现最低功耗

为什么是 LPDDR4?

LPDDR4 包含多项特性,这使得 SOC 设计团队能够降低或者分离 DRAM 器件的功耗。对于诸如 PC 和服务器等桌面设备, 通常使用安装在位宽为 64 比特地双列直插内存模块(DIMM,说人话,内存条)上的 DDR 器件。内存条方案能够提高 DRAM 容量,但需要长且负载较重的连接线,与较短的走线相比,它消耗的功率更高。对于使用 LPDDR2、LPDDR3 和 LPDDR4 的系统,每条总线上的内存器件比 DDR2、DDR3和DDR4 器件数量更少,连接线也更短,因而消耗的功率更低。

设计团队能够使用 LPDDR4 DRAM 的功耗节约特性。这些特性包括更低的电压和I/O电容;通过地址复用实现的更小位宽的命令和地址总线;移除 DRAM 片上 DLL;能够更快地进出低功耗待机模式;以及更快、更加简单的工作频率切换。

最后,LPDDR4 DRAM 具有温度感知刷新特性,这有助于使 DRAM 的刷新率与 DRAM 物理单元此时的刷新要求匹配,尤其是在低功耗自刷新待机模式下。在待机模式下可自动启用该特性,类似地,在主动模式下可读取片上的温度,使得 LPDDR4 控制器能够调节其自刷新率,与 LPDDR4 器件的热状态和温度相符。

LPDDR4 采用了针对移动装置的应用模型

在实际应用中,移动用户仅在较少的时间段内才会用到 LPDDR4 的最高工作频率。此时,用户或是采集或显示高清晰 (4K)视频,或是玩具有高图形要求的游戏,或是处理图形,或是引导或加载新的软件。 在部分时间段内,内存会降至LPDDR3速度级别。这一性能水平足以支持文本、呼叫、网页浏览、照片、简单游戏:所有这些功能对 CPU 或 GPU 没过高要求。 而在大部分时间段内,移动设备并不使用,它或是在口袋内、或是在床边,此时 DRAM断电或处于低速模式下。仅一个 内存通道处于活动状态下,用于执行“始终在线、始终连接”任务。在该模式下,设备执行后台任务,如保持电池接触, 接收消息,接收/显示推送通知,邮件同步,以及时间显示。 然而,正是由于设备的最高性能,很多移动用户升级了其设备,所以这也是厂商十分重视设备最高性能的原因(图1)。

image.png

LPDDR4 体系结构变化

与前代相比,LPDDR4 规范中定义了多种性能和特性改进。最重要的是,LPDDR4 对体系结构进行了重大改变:LPDDR4 器件采用了每个裸片(Die)上可以有至多 2 个独立通道的布局方案。

每个 DDR2、DDR3 和 DDR4 器件颗粒(Package)提供了一套命令地址输入总线和一套数据总线,最为常见的是单个颗粒中封装一个裸片(Die),而每个 LPDDR2 和 LPDDR3 颗粒可以封装 1- 4 个裸片。

对于 LPDDR4、LPDDR3 和 LPDDR2 颗粒,在封装两个或者四个裸片的情形下,可以提供 2 套独立的命令地址输入和数据总线(通道)。LPDDR2 和 LPDDR3 器件实现了部分多通道,每个颗粒最多可以提供 2 个独立通道。LPDDR4 将该特性发挥到极致,现在每个裸片就可以有最多两个独立通道,这样单个颗粒(封装两个以上 Die)最多将有 4 个通道。

连接多个通道

LPDDR4 体系结构天然具有 2 个通道(图2),每个双通道裸片有 2 套命令地址输入和 2 套数据总线。LPDDR4 的2 裸片封装颗粒则可以提供 4 个独立通道。为了更有效地使用 LPDDR4,设计人员必须理解 LPDDR4 体系结构变化对 SoC 体系结构的影响。

image.png

对于单个通道(如 LPDDR3 的单裸片封装颗粒)的 DRAM 器件,和 SoC 只有一种连接方式,即 SOC 上的命令/地址总线连接到 DRAM 上的命令/地址总线,SOC 数据总线连接到 DRAM 数据总线(图3)。片选 (CS) 信号在访问时使能 DRAM。

image.png

而 SOC 和两个 DRAM 器件,或是具有 2 个独立接口的单个 DRAM 器件 (如 LPDDR4 ) ,共有 4 种可能的配置方式:

  • 并行(前后紧接)
  • 串行(多级)
  • 多通道
  • 共享命令/地址

并行(前后紧接)连接

对于在 DDR2/DDR3/DDR4 方面具有丰富经验的设计人员,最熟悉的配置方式是并行或前后紧接配置。并行配置 (图4)可用于 2 个或多个 DRAM 裸片,也可用于共享同一命令/地址总线的 2 个 LPDDR4 通道。它们采用了相同的片选信号,但每一数据总线具有独立的数据通道。

在这类并行连接中,所有的 DRAM 器件接收相同的命令和地址,但会通过不同的字节线发送其数据。由于可同时访问所有器件,因此两个 DRAM 始终处于相同状态。它们打开相同的内存页面(Page),并访问相同的数据列(Row),但保存在每个 DRAM中的数据不同。

image.png

串行(多级)连接

第二种选择是采用串行或多级配置将器件连接在一起(图5)。这相当于将多个 DIMM 内存条插在 PC 上的同一通道内。两个 DRAM 通过相同的器件命令/ 地址和数据总线和 SoC 连接,但根据命令循环 2 个不同的片选信号选中 2 个不同的 DRAM 器件,以对两个 DRAM 器件的访问进行独立控制。这两个器件可处于不同状态,具有不同的活动内存页面。典型情况下,SOC 负责控制共享数据总线,确保 DRAM 不会同时在数据线上进行数据传输。

编者注:这就是所谓的 “多 rank” 连接方式。

image.png

多通道连接

多通道连接(图6)为 DRAM 的单个通道或者单个 DRAM 器件与 SOC 单独连接,每个器件或通道具有完整的命令/地址总线,数据总线和片选信号,因此每个 DRAM 器件能够彼此完全独立地工作。器件可能处于不同状态,接收不同命令和不同地址,当一器件执行写入操作时,另一器件可执行读取操作。 多通道连接还允许 DRAM 工作在不同功耗状态下。例如,某一块内存可能处于待机自刷新模式,而另一块内存处于完全激活状态。

image.png

共享命令/地址(CA)连接

最后一种配置选择更常应用在非 LPDDR 器件中,这是一种具有共享命令/地址(CA)或共享AC(图7)的多通道配置。在该配置下,两个 DRAM 装置接收相同的命令和地址,与串行连接类似,片选决定了哪个 DRAM 器件负责监听特定的时钟周期,因而每一器件可能处于不同状态下。两个通道之间的 DRAM 命令仲裁在 SoC 内部完成,但每一 DRAM 能够独立传输数据。

image.png

双通道连接的各种配置选项的比较

上文讨论的四种配置选项各有其优缺点(图8,编者注:图中串行配置应该有两路独立地 CS 信号连接两个 DRAM 器件)。例如,并行配置仅有 8 个 Bank,任一时刻在 32 位数据总线上可突发传输(Burst)的最小数据量为 64 字节。并行配置不太适合用于堆叠封装(POP)的设计。

image.png

串行连接也不太适合于 POP 实现。它的确能节省一些 DQ 引脚,但由于 DRAM 器件共享了数据总线,它所提供的带宽只有其他解决方案的一半,对于很多设计不是太有吸引力。共享 CA 配置方案适合于 DDR 系统,而多通道连接使得设计团队能够从 LPDDR4 中获取最大收益。

编者注:多通道连接在 DRAM 之间不共享任何信号。共享 CA 连接共享 CA 信号。并行连接共享 CA 和 CS 信号,而串行连接共享 CA,DQ 信号。

管理具有多通道连接的 2/4 Die 封装颗粒

在 LPDDR4 的实现中,最常见的方式是使用封装 2 个 LPDDR4 裸片的颗粒,其可提供 4 个 16 位通道。基于这个颗粒可实现 8 种不同拓扑方案。在将 LPDDR4 器件连接至 SOC 的 8 种可能方式中,有三种比较常见的实现方案:

“真正”的四通道

对于希望基于 LPDDR4 器件实现最大带宽的设计团队,尤其是可以接受 32 Byte burst size 时,可能会考虑真正的4通道实现方案(图9)。与其他实现方案相比,它具有最大的 bank 数目,以及最小的 Burst 块大小。它要求在 SOC 上具有 24 个 CA 引脚,以及 4 个单独的内存控制器以及 PHY 。

image.png

双通道加双并行

双通道加双并行实现在全并行实现和4通道实现之间实现了良好折衷。对于 LPDDR3-LPDDR4 组合(图10),它尤其有用。在使用 LPDDR4 的早期商用 SOC 中,大部分都采用了该配置。

image.png

全并行

全并行实现提供最大 DQ 引脚数目(64),并且只需要 6 个 CA 引脚。然而该系统中仅提供了8个Bank。最小 Burst 块为 128 字节,这将会限制其应用于某些应用中。由于总线负载和芯片级时序收敛方面的原因,可能还需要复制 CA 总线(编者注:应该是 duplicate CA 总线信号用于增加驱动能力)。

图 11 显示了双裸片 4 通道 LPDDR4 多通道实现(左侧)和 4 裸片实现(右侧)的示例。LPDDR4 单个封装颗粒可以有至多 4 个 Die(译注:2 channel x 2 rank),其中包括两个物理通道,每个物理通道又可以连接 2 Rank DRAM 。全并行配置需要在颗粒的 4 个通道的每一通道上串行扩展连接。

image.png

概括而言,推荐的双裸片 LPDDR4 实现为:

  • 双通道加并行,这是LPDDR3用户最熟悉的方案,也是可以实现LPDDR3/LPDDR4 组合的实现方式;
  • 四通道方案,这是最灵活并具有潜在最高性能的方案。

关于共享通道的推荐设计:通过多 Bank 改善 LPDDR4 的性能

类似地,LPDDR4 继承了 DRAM 的很多特性,其存储结构由 Bank 构成,每一 Bank 具有多行 (Row),每一行具有用于存储数据的多个列 (Column)。访问位于相同行内的数据会很快,访问位于不同 Bank 内不同的行内的数据也会很快,但访问位于相同 Bank 内的不同行内的数据则会很慢。

SoC 可以独立访问多个 LPDDR4 独立通道意味着,每一通道上的每个 Bank 可以有不同的活动行(active row)。对于像视频和网络包等在内存中随机分布的小尺寸数据传输类型的应用而言,拥有更多的 Bank 能够避免一些固有的、会限制性能的内存时序参数。 在尽可能多的 Bank 上传输数据能够改善性能是因为它能降低遇到一些必须等待的内存时序参数的概率。

在系统中有更多的 Bank,并延长在每个 Bank上完成命令所需的时间这一方法能够改善性能,是由于降低了因 tRRD、tFAW 和 tRC 内存时序参数所导致延迟的概率:

  • tRC:内存的行周期时间。这是触发同一 Bank 中不同行所需的最小时间。
  • tRRD:行-行延迟。这是触发不同 Bank中 不同行所需的最小时间。
  • tFAW:Four-active 窗口。该时序参数的含义是,在一个tFAW窗口内,不能发出 4 个以上的激活 (active) 命 令。LPDDR4 标准将其设为 tRRD 的 4 倍,因此,对于LPDDR4,tFAW 和 tRRD 实际上是相同的定时约束。对于其他内存,可能会采用 tRRD 和 tFAW 之间的不同关系。

等待 tRC 时序参数会导致很多问题,尤其是在更快的器件中。在 LPDDR4 的最高速度下,tRC 时间超过 100 时钟周期,触发 Bank 中的某一行后,至少在 100 个时钟周期内,tRC 会阻止访问该 Bank 中的其他行,在相当长的时间内禁止再次使用该 Bank。如果具有更多的可用 Bank,会降低访问因 tRC 时间而锁定的 Bank 中新行的访问概率。

设计团队可能希望通过频繁切换 Bank,以避开 tRC 时序参数。tRRD 和 tFAW 会限制频繁更换 Bank 的能力。 图12 示例中 DRAM 的 Four-Active 激活窗口 tFAW,相当于 4 倍的 Row-Row 延迟 tRRD。在 LPDDR4-3200 中,tRRD 时间可达 16 个时钟周期。

image.png

在图 13 中,显示了在并行实现方案下执行的连续传输序列。符号 AC/BA0 表示 Bank0 Active 命令。与其相邻的命令 RD/BA4 表示对 Bank4 的读取命令(假定 Bank4 已在较早时间触发)。每一命令标记代表 4 时钟周期,原因在于 LPDDR4器件的 4 相寻址特性(编者注: LPDDR4 需要 4 个周期选择传输地址)。在实际应用中,该序列会需要延长,这是因为在激活(Active)之后会接着读取、激活、 读取、激活、读取、激活、读取。在这个命令序列下,数据返回时会完全占用 DQ 总线,总线处于满载状态。并行访问模式可以利用 100% 的内存带宽,在800MHZ(DDR1600)下访问器件时才能实现该点。

image.png

图 14 中显示了一种双通道实现,其中执行了相同的序列,独立使用每一命令地址通道。每一命令地址总线的访问模式略有差异:激活、读取、无操作、读取、激活、读取、无操作、读取。命令通道中的空隙可用于其他方面,如设定的预充或按bank刷新,或简单地留作空闲时钟周期。图中数据总线已被完全占用。

image.png

将时钟频率加倍至 1600 MHz(DDR 3200 数据速率)(如图 15 所示)时,tRRD 时间会限制 SOC 发送命令的能力,无法像并行实现的上方示例中那样,发送足够多激活命令至 LPDDR4 器件。序列为:激活、读取、无操作、无操作、激活、读取、无操作、无操作。无操作周期可用于预充或刷新,但内存的激活速度不足以就每一传输向新rank发送连续的 64-bank 传输。(编者注:这里可能表达的是,Active 的速度限制导致无法只用无操作时间就可以向另一个 Rank 发送命令。)

image.png

当没有发向同一内存页(Page,或者说同一内存行) 的另一 64 字节传输时,SOC 必须等待,直至 tRRD 期满,能再次在内存中触发新页为止。如果传输的时间不足以在移动至新 bank 之前对每一 bank 进行两次读取,该工作模式会将器件的最大性能限制在 50% 带宽下。 与之相比,对于图 15 下方的双通道实现,由于 “激活、读取、无操作、读取” 模式,允许每一通道满足 tRRD 的要求。即使在 DDR 3200 数据率下,总线带宽也能工作在满负荷下。

找出最小的块提取大小

块提取大小指的是可在一个 DRAM 事务(一次突发传输)中传输的最小字节数。由于 LPDDR4 的最小突发传输长度为 16, 采用 LPDDR4 的并行连接可能使 SoC 具有非最优的块提取大小。

最佳方式是使提取大小与 SOC 的单次传输长度需求匹配(比如 CPU 的 cache line 长度),不仅体现在通过总线传输的传输大小方面,也体现在器件的总带宽方面。

对于很多 SOC 和 CPU 的缓存(Cache line),首选块取大小是 32 字节。在偶尔情况下,一些较大的 64 位CPU使用 64 字节缓存(编者注:现在 64 位 CPU 已经是消费电子产品的主流了)。 视频和网络传输通常需要 32 字节或更小的短字节传输。在理想情况下,多通道体系结构应与系统的提取块大小匹配,以优化系统所使用的提取块大小传输的效率。

在图 16 显示的并行实现方案中,LPPDDR4 最小突发长度为 16,有 64 个的并行DQ引脚,因此块提取大小为 128 字节。因为 128 字节超过了 CPU 缓存的大小,因此并行方案适合连续地址的大数据量传输。然而,如果数据访问小于 128 字节且需访问随机地址 (比如 CPU 缓存相关操作),那么并行实现方案的效率不高。

image.png

对于 64 位并行实现方案,另一问题是 SOC 和 DRAM 裸片之间的物理连接。LPDDR4 PoP 封装的管脚分配是每一角一个通道,使得封装包上有4个通道以容纳2或4个裸片。每一通道位于器件的每一角。在理想情况下,SOC 内存控制器和 PHY 布局应与 LPDDR4 的管脚分配匹配。采用该布局,允许将通道 A 映射到通道 A,通道 B 映射到通道B,C 到 C,D 到 D,使得 LPDDR4 PoP 封装内的路径尽可能短,无交叉。该封装布局还有助于并行 4 通道 LPDDR4 接口的物理实现。

用户还应注意传输是否访问内存中的不同页,tRRD 可能会限制较高频率下的有效带宽,如同前述部分中介绍的那样。

正是由于这些原因,与 4 通道实现相比,设计者更倾向于选择 LPDDR4 的多通道实现。

(编者注:此处的表达比较模糊,笔者认为这里是认为独立的四通道更优,其一是因为此时 burst 长度为 16bit * 16 = 32Byte,比并行实现的 128 byte 更灵活。其二是独立四通道实现中,四通道 PHY 可以放置于芯片四边,独立出 DQ/CA pin,而并行实现四通道需要共享 CA,增加了 PoP 封装内的 CA 走线数量和长度)

命令/地址总线

LPDDR4 具有很窄的命令/地址总线(每通道仅 6 位宽,DDR4 为 20 位或以上),因此,即使使用多个命令/地址通道的开销也低于使用其他 DDR 类型的开销。在 LPDDR4 颗粒上独立使用所有 4 个命令/地址总线,能够提供最大的灵活性,可能 还会为整个系统提供最高性能。

LPDDR4 PoP的SOC分割

有多种适用于 LPDDR4 的 SOC 分割方式。图 17 显示了最简单的一种方式。这是一种同构 CPU 体系结构,它具有 4 个 CPU 和 4 个通道。每一 CPU 具有自己的方式以访问自己的独立通道。该体系结构具有下述优点:CPU 不会彼此屏蔽,SOC 总线延迟更短。可独立关闭未使用通道以便节省功耗。

image.png

然而,该体系结构不够灵活。如果通道 A 需使用通道 C 中的一些数据,它无法将内存当作邮箱使用。必须通过 SOC 以某种方式传输数据。这还会使得 CPU 更难于执行与负载平衡相关的共享任务。 另一方法是使每一 CPU 共享每一内存(图18)。这样就能实现更加灵活的分割。对于异构处理,它的工作表现更好,CPU 能够对共享数据进行处理,但需要更多和更长的片上布线资源,这可能需要用到复杂的片上互联系统。这样就能更准确地反映实际芯片的工作方式,尤其是对具有不同 CPU、GPU 和其他处理单元的异构体系结构而言。

image.png

逻辑至物理地址映射

多通道体系结构提供了多种控制逻辑至物理地址映射的选择。考虑如图 19 所示的双通道体系结构。存在多种控制逻辑至物理地址映射的方式。最简单的方式是,双通道存储器映射到不同的 SoC 地址空间(图19)。

image.png

例如,通道 A 可能会存放操作系统,并保持始终在线、始终连通的功能。通道 B 可能包含应用数据,视频缓冲和类似数据。这两个不同的地址空间独立且分离。这有助于功耗控制,比如通道 B 可在不使用时关闭。

另一方式是,采用较小的连续逻辑地址区访问内存的不同通道(图20),对内存映射进行交织处理。例如,通道 A 为字节 0~63,通道 B 为字节 64~127,以此类推,直至遍及整个内存空间。在整个内存上对逻辑空间进行交错处理。该方法有助于在2个不同通道上实现负载平衡,可实现良好性能。然而,由于始终需要两个通道,无法关闭任一通道以降低功耗。

image.png

更进一步的实施方案是使用混合内存映射(图21),其中,每一通道中的不同区可提供交织式访问或非交织访问。该混合方法可能包含一个始终在线、始终连接的内存区,以便获得最高性能而在 2 个通道之间交织的内存区,以及用于高性能程序存储的高地址内存区。

image.png

最后是 Synopsys 的广告时间

针对高性能、低功耗移动SOC的Synopsys LPDDR4 IP解决方案

Synopsys 完整的 LPDDR4 IP 解决方案包括 1 个内嵌 I/O 的 LPDDR4 multiPHY,增强型通用 DDR 内存控制器 (uMCTL2)和协议控制器(uPCTL2),验证IP,建模工具,以及 IP 硬化(IP hardening)和信号完整性分析服务。IP完全支持 LPDDR4 标准,并可灵活配置,以发挥上文所述的多通道体系结构的优点。

Synopsys DDR 内存控制器包含 uMCTL2 内存控制器,它提供了与 SOC 的多端口或单端口连接。可用总线包括 1~16 端口的 AXI3、AXI4 或AHB。对于需要在内存控制器之外做内存传输调度的系统,我们提供了单端口协议控 制器 uPCTL2。

uMCTL2 具有低延迟、高带宽和强大的 QOS 特性,包括 QOS 驱动的仲裁和高性能内存调度算法。内存控制中的低功耗功能具有自动的特点,允许设计团队将重心放在系统设计方面。他能够支持包括 DDR2、DDR3、DDR4、LPDDR2 、LPDDR3 和 LPDDR4 等多种内存标准。对于车载应用和其他高可靠性系统,IP提供了多种可靠性、可用性、可服务性(RAS)特性。 面向 LPDDR4 的 uMCTL2 内存控制器提供了一种基于 CAM 的调度架构,尤其针对 2667-4266 数据速率的器件进行了优化,并 支持多种地址映射机制,为不同使用模式和多内存类型的系统提供了高度灵活性。它具有自动断电功能,自刷新功能以及快速频率转换功能,支持自动温度监测和刷新率调节。

结论

LPDDR4 多通道规范为新颖的系统设计提供了新的机会,尤其是多通道体系结构可以改善系统性能。设计团队需要综合考虑性能、功耗和设计复杂度来部署实现 LPDDR4 架构。

作者:Marc Greenberg
原文:OpenIC 特别兴趣小组

相关文章推荐

更多FPGA干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10604
内容数
561
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息