评估 权衡你正在考虑的技术、产品和项目的利弊。

SPI NAND主机端错误修正

错误码校正是维护SPI NAND闪存可靠性和延长内存寿命的关键技术。通过查看三个主要领域来比较集成ECC和基于主机的ECC。

下载这个演讲:SPI NAND主机端错误修正

00:00萨尔曼·拉希德:今天,我将讨论SLC NAND市场的趋势,特别是串行NAND的演变。Macronix是代码存储、闪存市场的领导者,包括NOR和NAND产品。而串行NAND是一种正在被嵌入式市场接受的新兴产品。

今天,我将讨论串行接口,也称为SPI接口,in-NOR闪存已广泛使用多年,这也是为什么它在NAND产品中也越来越流行的原因。有了串行NAND,系统设计者可以使用相同的硬件从NOR切换到NAND,而不是完全重新设计并行NAND系统。正如本封面幻灯片所示,Macronix认为使用串行NAND的应用程序的未来方向最终将需要主机来管理ECC,而不是闪存,这将是我演讲的主要重点。

01:06 SR:好了,现在我已经解释了串行接口的好处,让我们讨论一下是什么推动了这种设计从NOR到NAND和新兴的串行NAND趋势。推动这些趋势的三个因素是,第一,成本。由于采用了串结构,在相同的处理节点上,NAND阵列几乎比NOR阵列小60%,与NOR相比,flash还可以缩小到更低的几何形状。这意味着NAND可以以更低的成本支持更高的密度。

01:45 SR:第二,性能。在今天的设计中,非易失性存储器通常用于存储代码,在系统启动期间,代码被下载到RAM中执行。这就是所谓的存储和向下应用程序。尽管NAND读性能比NOR慢,但对于这些存储和下载应用程序来说已经足够了。然而,与使用基于主机ECC的串行NAND相比,使用片上ECC的串行NAND会有性能损失。

第三,易用性。如前所述,由于串行NAND设备与串行NOR在相同的内存占用中可用,因此不需要PCB布局。在稍后的演示中,我还将讨论使用带有片上ECC的串行NAND所面临的挑战,以及使用带有基于主机ECC的串行NAND所具有的灵活性。在接下来的几张幻灯片中,我将更详细地解释每一个因素。

02:55 SR:现在,让我们更仔细地看看串行NAND设计和成本。串行NAND器件是基于标准的并行NAND芯片,带有附加的控制逻辑来模拟串行接口和处理ECC。这通常通过以下两种方式之一实现。第一,通过在NAND器件本身下添加控制逻辑,这是一个单片模具,这将增加模具的尺寸和成本。第二,在NAND芯片上堆叠一个控制器芯片,使之成为一个多芯片解决方案。显然,多芯片封装有一个成本加法器,所以它通常比一个单片解决方案。

然而,为了获得最具成本效益的串行NAND解决方案,还有第三个选择。我们可以将ECC功能从NAND上卸载,就像并行NAND一样,并将其转移到主机IC上。一个典型的8位ECC引擎可以使用大约50K的附加门来实现,对于入门级主机,例如MCU或SoC,这是一个微不足道的门数量。通过在主机上添加ECC引擎,主机成本可能会略有上升,但这将大大低于带片上ECC的NAND设备的模具尺寸影响。

04:29 SR:到目前为止,我把注意力集中在串行NAND的成本效益上,现在让我们考虑性能方面。我已经提到很多设计都是基于存储和下载架构的。这意味着系统无法直接从闪存执行代码(也称为XIP),因此它将代码从NAND读入DRAM并从DRAM执行。

所示图表说明了不同非易失性存储器的读取性能。假设所有设备都以相似的时钟速度运行,不闪烁最快的读吞吐量约为每秒66兆字节。右边两个条形图展示了带片上ECC的NAND器件的读性能,即NAND器件在读取数据之前计算出ECC。这种NAND架构是最慢的,大约每秒27兆字节,比NOR低60%。但如果由主机进行ECC计算,则读速度可提高到56mb / s,与NOR flash读性能非常相似。

05:50 SR:现在,我相信您会问自己,“那么,主机端的ECC计算延迟怎么办?”在接下来的几张幻灯片中,我将介绍这一点,并展示读取数据所需的实际时间。

如前一张幻灯片中所述,性能差异取决于ECC的计算方式。在这张幻灯片上,我将显示未检测到错误时的NAND读取延迟,并比较带片上ECC的NAND IC与由主机处理ECC功能的NAND的性能。延迟是通过添加将数据加载到缓冲区、执行ECC和读取数据的时间来计算的。

06:41 SR:上面的图表表示读取数据的时间,其中ECC由主机处理。在这种情况下,从NAND阵列将2K字节的数据加载到NAND缓存需要25微秒,从NAND缓存将前512字节读取到主机并让主机检查ECC需要大约10微秒。因此,主机读取前512字节并检查ECC无错误的总时间为35微秒。

另一方面,下面的图表显示了使用片上ECC的NAND设备读取512字节数据的时间。NAND在一个完整的2k字节页上执行读取操作,因此它必须将整个页的数据加载到缓冲区中,并在将数据读到主机之前对整个页执行ECC。在本例中,未检测到错误的延迟大约为45微秒,比示例慢了近30%。请注意,在这些示例中,我们将NAND设备与2k字节的页面大小进行比较。

08:06 SR:现在,让我们比较检测到错误时的NAND性能。顶部的图表显示了基于主机的ECC的NAND延迟。延迟是通过添加三组计时来计算的:从NAND阵列将2K字节数据加载到NAND缓存的时间,从NAND缓存向主机读取前512字节并检查ECC的时间(10微秒),以及纠正错误所需的时间(10微秒)。通过添加这三个操作,第一个数据将在45微秒内准备好读取。

下面的图表说明了带片上ECC的NAND的延迟。正如前面的幻灯片所解释的,串行NAND读取是在整个页面的基础上执行的。因此,要计算ECC和任何错误修正并加载2K字节的数据,需要70微秒才能读出数据。这是慢66%的性能。

两种ECC计算方法差异如此之大的关键原因是ECC引擎必须处理的数据量。NAND片上ECC引擎必须处理整个页面,而主机可以一次处理四分之一页。另外,与主机相比,NAND较慢的时钟速度也可能对这里的性能有贡献。

09:48 SR:在NAND读取或程序操作期间,可能会发生位干扰。基于主机的ECC的另一个好处是能够使用更强的ECC,并延长NAND设备的寿命。当使用NAND与片上ECC时,设备使用固定水平的ECC运行,例如8位纠错。但是,如果由主机执行纠错,则主机可能具有支持多级ECC的能力。通过使用更强的ECC,例如,12位而不是8位,NAND设备将能够在数据需要刷新或重写之前容忍更高数量的位干扰。这意味着NAND将执行更少的程序擦除周期,并最终体验更长的寿命。

47 SR:这张幻灯片上的两个图表展示了使用12位ECC与所需的8位ECC相比,NAND设备在读取、编程和擦除周期方面的改进。如果ECC增加到12位,NAND设备的预期寿命将等于或大于1.4倍。

为了从NAND卸载ECC,主机必须实现ECC引擎。通过这样做,MCU将吸收一些额外的成本。一个典型的MCU可能有大约300万个门。BCH 8位ECC引擎需要大约50000个门才能实现,这意味着门计数增加了大约1.7%。如果我们在NAND上添加ECC引擎,那么对MCU的芯片尺寸影响将远小于对NAND IC的影响。

54所以SR:而且,从历史上看,NOR flash不需要错误修正。因此,主机,例如MCU,不需要ECC引擎。但是,一些NOR产品可能需要支持错误修正来满足要求ISO 26262 ASIL要求. 这意味着在未来,我们可以看到更多的主机提供处理ECC的能力。

如前所述,并行NAND也有两种形式,带片上ECC和不带ECC。然而,基于主机的ECC是处理并行NAND错误校正的主要方法。所以短期内,我们看到需要NAND芯片上的ECC支持迁移与串行串行NAND闪存,但随着应用程序的发展和串行NAND闪存市场的成熟,我们看到越来越多的需求,以低成本解决方案,更好的性能和更长的寿命。支持这些要求的最佳方法是通过一个内置ECC引擎的主机。

老十三13:到目前为止,我还没有触及的一个话题是标准。在并行NAND市场中,大多数供应商支持ONFI标准。串行NAND没有这样的标准,这可能导致不同供应商之间的规范存在差异。例如,每个厂商可能需要8位ECC纠错,但备用区域受ECC保护的部分或区域可能不同。

因此,要由客户来设计他们的固件,以适应多个供应商之间的这些差异。这是不必要的开销,限制了灵活性选择不同的NAND供应商.然而,如果ECC功能是由主机执行的,应用程序固件不必考虑每个供应商的这些变化。只要主机提供所需的最小错误校正,它就可以支持任何供应商的串行NAND设备。

老十四16:供应商之间不兼容的另一个例子是ECC门限状态寄存器位定义。具有片上ECC的NAND供应商使用这些位来确定何时需要刷新数据并将其移动到新块。这也会带来麻烦,因为每个供应商可能会为这个功能分配不同的寄存器。基于主机的ECC消除了这个问题。

48 SR:因此,总而言之,正如我们在本次演示中所讨论的,有两种方法可以实现串行NAND的ECC。虽然片上ECC是一种选择,但在macro,我们认为基于主机的ECC为我们的客户提供了更大的灵活性和优势。其中一些优势如下。第一,降低系统成本。从串行NOR转移到串行NAND可以节省大量成本。然而,在本演示中,我将讨论从NAND芯片中移除片上ECC所增加的成本节约。节省的成本将超过主机IC的成本增加。

第二,提高性能。NAND闪存读取和ECC操作是基于完全2K字节或4K字节(在某些情况下是页面大小)。因此,使用片上ECC的NAND设备的读性能明显低于使用基于主机的ECC的NAND设备,后者需要512字节的截断。除此之外,主机的时钟速度可以更快,因此检查和纠正ECC的时间会更短。

16:10 SR:第三,提高兼容性。使用片上ECC时,每个NAND厂商可能有不同的ECC覆盖规格。对于需要多来源的应用程序,这可能会使固件更加复杂。主机上安装ECC引擎可以解决此问题。

最后,延长预期寿命。如果主机具有更强的ECC能力,例如,12位与8位相比,NAND设备重写数据的频率将更低。编程和擦除周期的减少有助于延长NAND的寿命。

16:53 SR:本演示文稿概述了Macronix对串行NAND和ECC实现趋势的看法。我希望我已经解释了主机执行ECC与串行NAND执行此功能的优势。显然,需要开发主机支持,这需要一段时间才能成为标准。同时,Macronix提供两种类型的串行NAND产品,即带或不带ECC引擎。

17:26 SR:在结束本演示之前,我想提出一个建议。我们觉得我们正处于一种新趋势的早期阶段,即从带有片上ECC的串行NAND向带有基于主机ECC的串行NAND过渡。为了支持来自不同供应商的多个串行NAND设备,我们建议MCU或SoC在初始引导加载程序中禁用串行NAND的内部ECC,并通过主机ECC引擎直接处理错误更正。通过这种方式,您可以使用多个供应商提供的串行NAND,只需付出最小的努力。

18时10分我希望这个演示对你有用。我的目的是与您分享串行NAND市场的新兴趋势,以便您更好地为您的设计选择正确的产品。如果您有任何问题,可以随时与Macronix联系。我们的联系方式在下面这张幻灯片上。感谢您参加本次网络研讨会。

深入挖掘闪存

搜索灾难复苏
搜索数据备份
搜索汇聚基础设施
关闭
Baidu