中文 英语

错误越多,记忆越正确

随着密度的增加,新技术增加了准确性的成本。

受欢迎程度

当任何类型的存储位元变得越来越小时,由于较低的裕度和过程变化,误码率会增加。这可以通过纠错来处理和纠正比特错误,但随着使用更复杂的纠错码(ECC),它需要更多的硅面积,这反过来又提高了成本。

鉴于这一趋势,迫在眉睫的问题是,在未来的某个时候,纠正错误的成本是否会抵消下一代存储单元节省的成本。简而言之,对更多内存容量的需求持续增长,但内存业务的基本经济状况正在发生变化,这可能对设计中使用的内存类型以及整体芯片架构产生重大影响。

“DRAM的每比特成本扩展正在逐节点地趋平,但对负担得起的高性能内存的需求从未如此之大,”该公司战略产品营销高级总监Scott Hoover表示上的创新.“包括物联网、自动驾驶和5G通信在内的长期驱动因素正在成倍增加数据量和边缘计算需求。”

其他人也同意。“人们总是会有一种动力,想要在每个存储设备上获得更多的比特,”微软存储器接口高级技术营销经理霍华德·大卫(Howard David)说Synopsys对此.“因此,供应商将提出最具成本效益的方法来纠正由于电池尺寸变小而发生的错误。”

控制器在历史上承担了错误纠正的责任。随着存储芯片发挥更大的作用,这种情况正在改变。当使用比特单元收缩以外的技术来增加容量时,控制器必须变得更加复杂。目前,ECC仍然是一种可靠的技术。但是,如果一种特定的存储技术已经无法维持可靠性,那么可能会有替代的存储技术取而代之。

所有的计算体系结构都假定从内存中取出的东西都是正确的。由于内存数据的下游用户不能处理错误,因此由内存子系统来纠正自己的错误,以便系统的其余部分可以指望它是正确的。至少,如果出现不可纠正的错误,内存子系统可以通知数据使用者。

内存错误过去不太常见。一个重要的因素是所谓的“软误差”或“单事件扰动(SEU)”,这是由于与alpha和其他宇宙粒子相互作用而撞击内存造成的。这个错误的来源仍然存在,但它是外部的——它不是内存固有的。

如今,读取和传输数据的过程本身就会产生错误。这是最近才出现的现象,而且随着进程节点和存储单元的发展,它越来越成为一个问题。

虽然不同的内存类型会导致不同的物理错误,但是内存操作的不可靠性会同时影响易失性和非易失性内存。它在不同的时间对每个国家都有影响,因此现有的解决方案因类型而异。但是,从理论上讲,任何内存都不能避免最终产生错误。

错误来源
一般来说,内部错误主要有两种出现的方式。第一个是在读取位单元格时。第二个是在将结果传递给内存控制器时。

读取过程涉及到一些物理现象的感知,如一个电容为DRAM充电,若干电子为闪存,各种电阻为新非易失性记忆(NVMs)。但反过来,每一个都需要检测1和0之间越来越细微的区别。如果来自任何源的噪声在错误的时间命中,则读取值可能会受到干扰。

这类错误可能是暂时的。大卫说:“也许有一点有短暂的错误,如果你再读一遍,就不会有问题了。”“复杂的内存控制器具有重试能力。如果我们发现了一个错误,但又无法改正,我们可以再试一次。”

有一个问题动态随机存取记忆体然而,。由于它具有破坏性读取,因此必须在读取后恢复其内容。例如,如果它包含1,但它错误地将其读取为0,那么它将“恢复”为0,现在这个错误是永久的。

STT-MRAMs物理中有一个固有的随机成分,所以他们已经需要修正错误了。但它也提出了其他内存类型是否存在限制的问题。因此,当边界、电子计数或读取操作的其他方面足够小时,可能必须考虑量子效应,因为量子效应本质上是随机的。

英飞凌RAM设计高级总监David Still表示:“很快,我们就会实现数十到数百个电子的差异化。”“一旦我们得到了一个电子,我们就完成了。”

Doug Mitchell, RAM产品线副总裁英飞凌他指出,很难预测量子效应极限何时会发生。

收缩的替代方案
在某些情况下,位单元的大小已经趋于平稳。3 d与非例如,它的重点不是通过缩小位单元来增加容量,而是通过向3D堆栈中添加层来增加容量。

此外,现有的单元格正在移动,以包含多个位的数据。但这是通过取曾经用于存储单个位的范围并将其分割来实现的。在利润减少的时候,利润就更少了,出错的可能性就更大了。

Objective Analysis的内存分析师Jim Handy说:“从TLC(三层单元)到QLC(四层单元),或者从MLC(多层单元)TLC需要更好的纠错,因为随着每个单元的比特数增加,信噪比会恶化。”

图1:多级单元对一个单比特值取一个给定的感知范围,并进一步细分为两个比特值。每个细分都需要噪声裕度,因此这些裕度比单比特单元的可用裕度要低。资料来源:Bryon Moyer/Semiconductor Engineering

图1:多级单元对一个单比特值取一个给定的感知范围,并进一步细分为两个比特值。每个细分都需要噪声裕度,因此这些裕度比单比特单元的可用裕度要低。资料来源:Bryon Moyer/Semiconductor Engineering

过程变化同时,它也在更大程度上促进了对错误的防范。

AMS的产品管理主管Sathish Balasubramanian说:“从3到7 sigma,过程变化需要精确建模和验证。西门子EDA.“对3-sigma及以上进行强力蒙特卡罗验证是不可可行的,因为我们需要运行数百万/数十亿次模拟。设计人员需要采用更新的方法来验证比特单元的可靠性。”

最后,在其他条件相同的情况下,任何内存都变大了,出错的总体风险就会上升,因为有更多的比特可能被误读。

通信错误
一旦读取,内存值必须传输到内存控制器,内存控制器负责接收来自数据消费者或生成器的所有读写请求,并确保它们可靠地发生。

但通信带宽一直在增加,这使得数据更有可能在传输过程中被损坏。在讨论中的一些高速协议中尤其如此,其中包括PAM-4作为一种信号格式。就像多比特存储单元一样,PAM-4将过去用于单个比特的电压波动分为四个。这降低了信号裕度,增加了比特在到达控制器的途中被损坏的可能性。

“我们看到JEDEC提出的PAM-4数据调制的许多测试挑战,以实现更高速度的接口,”美国存储器市场总监Anthony Lum说效果显著.“PAM-4驱动了对多级电压比较器和高速精度的需求,以及用于写入和读取操作的低抖动时钟。”

图2:PAM-4信令将过去连续的两个单比特符号替换为单个双比特符号。相应的眼图要小得多,这使得打开它们更具挑战性。资料来源:Bryon Moyer/Semiconductor Engineering

图2:PAM-4信令将过去连续的两个单比特符号替换为单个双比特符号。相应的眼图要小得多,这使得打开它们更具挑战性。资料来源:Bryon Moyer/Semiconductor Engineering

有些人把完整的图像——读取一个位单元,然后成功地将它传输到控制器——称为端到端可靠性。

检测和纠正错误
检测错误的最佳位置是在芯片测试期间。在这一点上,最薄弱的部分可以被消除。但即便如此,考虑到比特的数量和通信渠道挑战的增加,这也变得越来越困难。

这就让系统去纠正错误。在早些年,使用的是简单宇称。但是奇偶校验不能纠正错误,如果有偶数个错误,那么它就不能检测到它们。ECC成为了一种更有用的方法,尽管它更复杂。

ECC包含大量处理错误的数学方法。最常见的类型使用汉明码,它可以纠正一个错误并检测两个错误。这种“单错误纠正,双错误检测”方法通常缩写为SECDED。

ECC随着技术的成熟而不断发展。Synopsys的David说:“SoC级别的第一代ECC是SECDED。“第二代可以纠正整个设备。第三代是增加内部ECC,现在第四代可靠性是限制故障(处理旧ECC中的数学异常)。”

虽然主流内存有标准化的ECC方法来确保互操作性,但很多讨论都是关于决定提供多少ECC。“你想做单比特校正吗?”斯蒂尔问。“你想做双位校正吗?”双位错误修正的开销约为25%。你想在128位的单词上做这个,还是64位的单词上做这个?”

关键的是,ECC同时保护数据和错误码位。Synopsys存储器接口IP产品营销总监Brett Murdock表示:“该算法将能够纠正单个位翻转,或者检测写入内存的任何位中是否有两个位翻转。”“这是一个必须具备的功能,因为我们根本无法预测哪些可用的存储位会出现问题。”

划分ECC工作
查看DRAM选项有助于说明芯片和控制器如何通过四种不同的方法相互作用。

最常见的方法是所谓的“边带”ECC。使用这种方法,DRAM上的每个内存芯片都被完全用于存储数据。额外的芯片被添加到DIMM中用于存储错误代码。这扩大了输入总线,因此数据和代码可以同时写入。控制器负责在写入数据时计算代码,并在接收到读值时验证代码。

虽然这适用于某些类型的DRAM,但LPDDR DRAM需要不同的解决方案,因为它使用16位总线。第一个问题是,如果增加边带内存,这将导致更大的总线。其次,代码通常是7位或8位,这使得16位内存结构的使用效率低下。这是通过使用相同的存储芯片来处理数据和代码。

这被称为“内联”ECC。控制器必须执行两组写入或读取操作——一组用于数据,另一组用于代码,这增加了每次访问的延迟。一些控制器可以将多个代码打包在一起以获得顺序数据,从而可以同时读取或写入多个代码。如果顺序数据访问是常见的,这将减少由代码引起的延迟。

在上述每种情况下,都是控制器处理ECC计算。“片上”ECC是DDR5的新功能,它将ECC放置在存储芯片内部。单个错误可以在发送到控制器之前被纠正。然而,如果传输中出现错误,片上ECC将无法捕捉到它。因此,边带ECC可能仍然适用于端到端保护。

最后,“链接”ECC仅保护通信数据。它在链接的两端计算,不涉及任何存储的代码。片上ECC和链路ECC可以结合起来覆盖端到端。

循环冗余检查(CRC)是检查数据是否可靠到达的另一个选项。Lum说:“随着我们发展到具有更高接口速度的高级节点,如DDR6和GDDR6/7, CRC变得非常重要。

图3:四种DRAM ECC。(a)边带ECC,其中代码存储在与数据分开的存储芯片中。(b)直列ECC,其中每个芯片的内部存储器分为数据和代码。对于(a)和(b), ECC工作都在控制器中完成。(c)片内ECC,读取的数据在发送到控制器之前用ECC进行检查。就其本身而言,它不会捕获传输错误。(d)链路ECC,捕捉传输错误,但本身不检测阵列错误。(c)和(d)需要彼此结合或使用另一种技术以提供端到端覆盖。资料来源:Bryon Moyer/Semiconductor Engineering

图3:四种DRAM ECC。(a)边带ECC,其中代码存储在与数据分开的存储芯片中。(b)直列ECC,其中每个芯片的内部存储器分为数据和代码。对于(a)和(b), ECC工作都在控制器中完成。(c)片内ECC,读取的数据在发送到控制器之前用ECC进行检查。就其本身而言,它不会捕获传输错误。(d)链路ECC,捕捉传输错误,但本身不检测阵列错误。(c)和(d)需要彼此结合或使用另一种技术以提供端到端覆盖。资料来源:Bryon Moyer/Semiconductor Engineering

核算成本
ECC方法可以有很大的不同,但是能力越强的方法,其计算成本就越高。如果在硬件上实现,这意味着更多的硅面积。如果在软件中完成,这意味着更多的CPU周期。ECC的成本可能在于存储芯片,控制器,或两者兼而有之。

成本包括存储代码所需的额外内存。根据执行方式的不同,这意味着要么增加内存,要么不能使用整个内存存储数据,因为其中一部分内存将用于错误代码。

ECC电路本身必须进行测试。越来越多地,这是通过内建自测(BiST)端口作为内存阵列测试的扩展。Lum说:“许多ECC技术都趋向于BiST实现。其他人则在测试机上对采集到的ECC数据进行后处理。”

冗余和修复也有助于将坏的比特出生产,尽管他们也带来了模具成本。Still说:“我们已经对修复和冗余与ECC进行了大量的分析,看看我们是否能确定哪一个更适合去除弱比特。”“对于严重的故障,修复是最好的方法,因为这是最简单的方法。我们倾向于最小化我们的修复,只关心硬的部分,然后使用更多的ECC(处理软错误)。”

过去的ECC电路成本已应用于控制器。虽然它仍然是一种成本,但通过将其放在控制器中,该成本将摊销到控制器权限范围内的内存芯片数量上。对于DDR5,成本已经转移到存储芯片本身,因此不再摊销。

此外,还有一个根本性的问题,那就是ECC属于哪里。“系统架构师不希望将ECC内置到他的芯片中,因为他希望能够在系统层面上控制它并识别错误,”Mitchell说。

同时保护比特单元访问和数据传输的需求可能会导致多个ECC实例,进一步增加成本。

较大的内存有较高的错误率,但由于错误纠正代码适用于较小的内存块(如128位),因此会被复制,不应该增加成本的百分比。事实上,对于片上ECC,由于单个ECC电路在更多位上摊销,成本下降。

这就引出了ECC需要如何发展的问题。随着错误变得越来越频繁,那么要么需要更长的代码,要么必须编写更短的代码来保护更短的数据片段——这具有相同的成本效应。如果比特单元访问变得越来越不可靠,那么与ECC相关的开销成本将会增长。

从这里到哪里去?
除了更快的内存连接之外,进程迁移最可能成为更高错误率的来源。出于这个目的,取一个存储单元并使用它来存储多个位具有与物理收缩相同的效果。由于利润减少,出错的可能性更大。

在某些情况下,通过进一步缩小内存可以节省成本,但这将通过最终需要的更强ECC的增加成本来满足。在极端情况下,目前的管理费用高达25%,未来可能还会增长,可以想象,在未来的某一代,节省的成本和增加的成本可能会相互抵消。这将是缩放的终结吗?

对一些人来说,这听起来像是摩尔定律的另一种终结——为此发明了一种终结。内存客户并不关心他们需要的内存是如何工作的。它们只是需要越来越多的可靠内存,而其成本是应用程序能够经济支持的。

ECC技术正在多样化,以在需要它的应用程序中提供更好的保护-在某些情况下以更高的成本或延迟。二进制保护协议(BCP)和低密度奇偶校验码(LDPC)是被选择性使用的例子。

不同的方法可能会影响存储芯片的功率,这本身就会影响可靠性。英飞凌RAM设计首席工程师Chetan Sharma表示:“更低的功耗提高了可靠性,因为它减轻了与内存芯片接口的调节器的负担。”

但这可能是一把双刃剑。夏尔马说:“当我们为了节省电力而沿着线路向下走时,我们是在处理比特单元中的进程。”“一旦你改变了这个过程,你的利润率很有可能会崩溃。为了控制它们,我们尝试在内存周围安装电路,可以提高一点功率,提高计时,并重新获得余量,这样我们仍然可以提供可靠的内存。与此同时,我们正在放宽一些客户可能不需要的规格,这样我们就可以调整内部计时,放松读写周期,获得更高的可靠性。”

NAND闪存通过垂直方向解决了规模挑战。DRAM在未来也可能这样做,尽管技术人员认为目前的架构仍有更多的改进。这为DRAM在触壁之前提供了潜在的更大空间。

其他技术也被引入。斯蒂尔说:“在flash领域,人们开始做磨损平衡之类的事情。“对于各种内存类型,另一种方法是进行擦洗或刷新周期。”

Synopsys的David说:“我们有一个后台清洗功能,我们将带宽保持在0.01%左右——一天几次或每几个小时一次。”“读取整个内存,并纠正任何位错误。”

NOR闪存也不能幸免于这些问题,如果要超越现有技术,就需要解决这些问题。“我们可以用低功耗的垂直双晶体管NOR闪存位电池来改善这一点,”宏宏科技的陆志远(Chih-Yuan Lu)在ITC的一次演示中表示。“我们还可以进行3D堆叠。我们可以在这个结构中放入一个微型加热器,使其续航时间长达1亿次。”

控制器在学习哪些内存行需要频繁刷新方面也可能变得更加复杂。“也许五年后,大部分DRAM将每32毫秒刷新一次,但控制器将建立一个需要两次刷新的行列表,”David说。

英飞凌的Sharma提出了一些其他的方法来处理日益增加的比特单元不可靠性。“[进一步的技术包括]在阵列设计中引入位翻转/交错,分析内存访问模式,使用基于编译器的方法优化内存阵列不同分区的读写时间,”他说。

最终,内存供应商和客户有不同的议程,随着新标准的制定,谈判也在有效地进行。

“用户想要提高性能的东西,而供应商想要降低价格的东西,”大卫观察到。“供应商会抵制每一件增加成本的事情。用户必须证明为什么这个东西是必要的。”

寻找其他解决方案
如果行业在现有技术上穷尽了想法,那么它可能需要转向其他技术。Flash长期以来一直是NVM世界的宠儿,但随着其扩展限制的逼近,其他NVM技术的工作开始了,如PCRAM、MRAM和RRAM(或ReRAM)。

斯蒂尔说:“他们开始寻找比特单元的晶体管以外的东西。”“他们研究电阻元件。他们开始研究磁性开关设备,旋转扭矩和FRAM。他们开始研究磁滞现象和铁材料。”

极化已经作为英特尔的Optane进行了商业化,但成本一直是个问题。MRAM也正在变得可用,尽管所有这些存储器的最大胜利是在嵌入式存储器而不是独立存储器中。

Hoover说:“新材料、集成方案和系统设计一直都非常重要,将来也会继续如此。”

如果一项技术开始接近寿命尽头,研究人员就会寻找新的方法来取代旧的方法。这是一场赌博,因为现有技术的存在时间比最初预期的要长得多,3D NAND就是其中的代表。

这使得新技术处于严重的劣势,因为它们才刚刚开始学习制造技术,与现有技术相比,它们在成本上处于劣势。如果现任者能够建立一个新的、遥远的限制,那么新技术可能不得不被搁置一段时间——也许是永远。

尽管存在种种担忧,但历史和大量新思想似乎正在把这种清算推向遥远的未来。在这一点上,没有人预见到任何时候我们将不得不停下来,环顾四周,并说:“好吧,我想我们已经完成了内存扩展!”

相关的
驯服新奇的NVM非确定性
人们正在竞相寻找一种更容易使用的非易失性闪存替代品。
关于DDR内存中的错误纠正码(ECC),设计师需要知道什么
边带、内联、芯片和链路纠错方案如何工作,以及它们最适合的应用程序。
企业级DRAM可靠性
向下钻取数据如何在内存中移动和修复。



1评论

简•霍普 说:

对单个比特细胞成像有帮助吗?
如果我们可以通过测试系统选择单元的位置,我们可以显示单元部件的物理问题。
成像分辨率可达0.1 nm。森塔鲁斯模拟也可以。而ASML光刻具有亚纳米精度。应用材料公司能以1nm的分辨率看到芯片的表面。

留下回复


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

Baidu