过去,ECC一直被用于提高NAND闪存子系统的整体数据可靠性。但是,随着NAND单元不断缩小,每个浮栅内贮存的电子数量越来越少。因此,为弥补更小的存储单元所产生的更高的位误码率,我们必须大幅提高ECC纠错能力,以维持所需的系统可靠性。
随着系统对ECC纠错要求不断提高,实现ECC逻辑所需的逻辑门数量也在增加,同时系统复杂性也随之提高。例如,24位ECC需要大约200,000个逻辑门,而40位ECC则需要大约300,000个逻辑门。据估计,将来先进的ECC算法可能需要近100万个逻辑门(如图1所示)。
很多高性能闪存系统必须使用多通道NAND闪存才能实现理想的性能。在这些系统中,每个通道都有其自己的ECC逻辑。例如,一个10通道固态硬盘(SSD)需要实现10通道的ECC逻辑。假如10路通道中的每一路通道都需要60位ECC,那么仅ECC逻辑就需要300万个逻辑门。
NAND闪存接口选择
1.传统NAND接口
传统的NAND闪存接口是一种异步通信接口,虽然近几年这种接口的速度已提高到50MHz,但是其它特性并没有太大的变化。
开放式NAND闪存接口(ONFI)联盟发布了其第一版ONFI 1.0规范,与最初的规范相比,这个接口规范的最大特点是主处理器能够通过电子方式识别所连接的闪存类型,以及其它重要的技术参数,如时序模式、页面大小、块大小、ECC要求等。该特性被所有的ONFI标准继承下来,并且一直是所有ONFI标准的重要内容。
同步NAND接口的开发是ONFI联盟取得的另一个重要成就,这一接口规范又称为ONFI 2。目前,ONFI 2.2规范通过一个DDR源同步接口支持高达每秒20000万次传输(200MT/s)。通电后该接口可用于异步通信模式。但是,对于更高的性能而言,当从异步模式转换到同步通信模式时,主处理器会提前询问闪存设备是否支持更高速的同步通信接口。
2.Direct NAND解决方案
该方案实现通过将NAND闪存芯片直接连接到主处理器或SSD控制器来管理NAND闪存。ECC算法交由硬件处理,而软件通常执行所有的区块管理和损耗均衡功能。初看起来该方案可能并不理想,但考虑到今天的嵌入式处理器典型运行速度达到数百兆赫兹,很多甚至超过千兆赫兹,这些高性能处理器能够以更快的速度执行区块管理,并利用确定性多线程技术来提高闪存性能。此外,由于主处理器直接管理闪存设备,主处理器软件可以做出实时决定,这有助于避免因意外断电而造成的风险。
如图2所示,ONFI 2.2接口规范(200MT/s)最多可支持16个标准NAND闪存芯片,典型解决方案通常采用两个8片NAND闪存封装。标准8片100-BallBGA封装含有两条独立的NAND总线(DQ[7:0]1和DQ[7:0]2),每条总线连接4片NAND闪存。闪存控制器通过两个芯片使能信号控制每四片堆叠的裸片。典型设计是把两条数据总线即DQ总线连接到一起,为每个封装提供一条8位数据总线。最高配置由两个内置8片裸片的100-Ball BGA封装组成。为选定一个特定的NAND裸片,每个标准100-Ball BGA封装需要提供四个芯片使能(CE#)控制。因此,为支持这种配置,主处理器或SSD控制器需要提供8个芯片使能信号。
3.ClearNAND解决方案
图3显示了两个不同的系统实现:传统的系统中主处理器或SSD控制器与NAND闪存直接相连;另一个系统则采用ClearNAND闪存芯片。两种方案都采用相同的ONFI硬件接口和相似的100-Ball BGA封装,不同之处是后者将一个薄型控制器与NAND闪存裸片整合在一个多芯片封装(MCP)内。ClearNAND 控制器用于实现MCP封装中NAND闪存所需的ECC算法。由于采用相同的ONFI异步或同步接口,设计人员可以轻松地从标准NAND闪存升级到 ClearNAND闪存。
美光公司的ClearNAND 闪存分为标准型和增强型两个版本。标准型ClearNAND闪存主要用于消费电子设备,可实现所需的ECC功能,并提供便于闪存升级的传统异步型ONFI总线。
增强型ClearNAND闪存能够管理ECC算法,并提供多个对于企业应用颇具价值的关键功能。它还支持ONFI 2.2接口的异步和同步通信标准,可用存储容量高达64GB。
通过改善ECC算法,两款ClearNAND闪存都能够实现下一代NAND闪存所需的ECC纠错功能。这使得设计人员无需反复重新设计电路来支持制造商最新的NAND ECC要求。
增强型ClearNAND闪存
图4所示为增强型ClearNAND闪存的架构。它支持1个ONFI 2.2接口和速度高达200MT/s的指令、地址和数据总线。VDDI去耦电容常见于e?MMC产品和内含控制器的其它闪存,用于对内部稳压器进行去耦。为向后兼容传统NAND闪存,VDDI连接放置在一个闲置引脚上。ClearNAND控制器支持两条内部闪存总线,其中一条用于连接偶数编号的逻辑单元(LUN),另一条则连接奇数编号的逻辑单元。这两条独立闪存总线的速度高达200MT/s。此外,每条总线都配有各自的ECC引擎,可在两条总线上同时管理读操作或写操作。可以预见,未来的控制器还将支持面向400MT/s的ONFI 3接口规范。
下面将讨论增强型ClearNAND提供的四项高级功能:卷寻址、电子数据映像、中断功能和内部回写(copyback)。
卷寻址
卷寻址允许一个片选或芯片启动信号(CE#)对16个ClearNAND卷进行寻址。每个 ClearNAND控制器支持在一个MCP封装内堆叠8个裸片。ClearNAND控制器为主处理器或SSD控制器存取操作提供一个缓冲区。
如图5所示,增强型ClearNAND设计将存储容量扩大八倍,同时保持或提升了信号完整性,并减少了所需的有效芯片使能数量。这是因为对于SSD控制器,一个ClearNAND控制器仅代表一个负载,但是在一个MCP封装内最多可支持八个NAND裸片。
卷寻址概念有两层含义。第一层是为每个ClearNAND 封装确定卷地址。卷地址仅在初始化时分配一次,并保存到电源重启为止。第二层含义是卷选择指令本身,在这个新指令后面紧跟一个单字节(实际上只有4位)卷地址。一旦目标地址被选择,该地址就会保持被选状态,直到另一个卷被选择为止。这可以节省很多使能引脚。例如,一个32通道SSD需要8个使能引脚来控制两个8裸片标准NAND封装。上述32通道SSD示例需要总共256个使能引脚,而增强型ClearNAND卷寻址功能对相同数量的NAND闪存进行寻址只需32个使能引脚。此外,这相同的32个使能引脚可寻址容量是现有容量的八倍。
电子数据映像
增强型ClearNAND支持电子数据映像,这允许通过电子方式将数据总线信号顺序重映射为两种配置之一。这个功能对于PCB正反两面都安装ClearNAND闪存的高密度设计非常有用。利用一个特殊的初始化或复位序列,ClearNAND封装能够以电子方式检测闪存是安装在PCB的正面还是背面。例如,通常的做法是在上电后向闪存发送一个复位或FFh指令。为完成电子DQ映像,在执行完FFh指令后,主处理器必须接着执行传统的READ STATUS(70h)指令。安装在PCB正面的闪存检测到FFh-70h命令序列;而安装在PCB背面的闪存则检测到FFh-0Eh命令序列,并向主处理器确认这是背面闪存封装,然后重新将数据总线直接排在正面闪存的后面,这不仅可以改善PCB的布线,还能提高信号完整性。
Ready/Busy#被重新定义为中断
增强型ClearNAND闪存将现有的ready/busy#引脚重新定义为一个中断引脚。如图6所示,interrupt#信号仍是开漏信号,当ClearNAND卷或裸片就绪时,它提供一个实时中断信号。设计人员可以利用这个中断信号向主处理器或SSD控制器提供闪存实时状态。在一条总线上支持多个ClearNAND封装的大型配置中,interrupt#信号线可以连接在一起。当检测到一个中断信号时,主处理器或SSD控制器只要询问每个ClearNAND 封装或卷,即可知道是哪个卷发送的新状态信息。这个中断功能可节省主处理器或SSD控制器上的信号数量,同时提高SSD控制器对状态更新的响应能力。
内部回写
内部回写功能又称为内部数据迁移(internal data move),是增强型ClearNAND 闪存最引人注目的特性之一。闪存的损耗均衡或碎片清理操作是指整理不同的NAND闪存页面和区块内的数据碎片,并将其合并成新的区块或区块序列,这个功能类似老式硬盘的磁盘碎片整理工具。对于这类操作,回写功能可为SSD系统提供巨大的优势。
再来看图2,当使用标准NAND闪存时,将数据碎片从一个区块转移到另一个区块通常需要执行下列操作:
SSD控制器发布一个READ指令和源地址以访问数据源页;SSD控制器从NAND闪存读取数据,同时执行运算和必要的ECC纠错操作,然后实现数据或元数据的更新操作;SSD控制器计算并加入新的ECC信息,然后发布新的PROGRAM指令、目的地址和数据序列,该操作将把数据保存到新的NAND闪存区块内。
在这个连续的操作过程中,当数据从源地址移到目的地址时,总线处于被占用状态,这个操作过程需要很长时间。假设一个8K的存储页,工作在200MT/s的ONFI 2.2同步总线需要大约 41μs来移动数据。因为数据必须移出再移进闪存,所以需要两倍的时间即82μs,但这个时间不包含ECC所花费的时间。在执行这个序列的过程中,ONFI闪存总线始终处于占用状态,不能处理其它任何操作。
与普通闪存不同,增强型ClearNAND闪存支持内部ECC。假如数据的源地址和目的地址都在ClearNAND封装内,采用内部ECC可以在封装内部执行回写操作。SSD控制器仍负责发布指令和地址,以及经修改的数据或元数据。ClearNAND控制器执行数据迁移操作,而不会占用外部的ONFI数据总线。如果SSD控制器能够把损耗均衡和碎片清理功能整合在一个ClearNAND封装内,它将在性能方面具有更强的优势。
图7所示是一个在标识为通道0和通道1的两路ONFI通道上采用增强型ClearNAND闪存的示例。在两个SSD通道上,我们看到有四个内部数据迁移操作同步进行,数据移动并没有占用外部ONFI总线。在必要时,这个特性允许SSD控制器和ONFI总线在ClearNAND封装之间迁移数据。根据用户所使用的架构,某些操作可能需要在ClearNAND封装之间甚至ONFI总线之间进行。利用内部数据迁移操作,可大幅提升碎片清理和损耗均衡操作的性能。