谢长生:用不可靠构建可靠

谢长生:华中科技大学 武汉光电国家研究中心 教授
简单的说,从SLC到MLC,再到TLC, NAND芯片越来越不可靠,但是对系统要求是要它更可靠。

怎么用不可靠构建可靠?

从这几个方面和大家交流,第一是要从原理上定义存储的可靠性。从理论面看一个东西,首先是科学,然后是应用,中国自古以来就缺乏科学,例如我们发明了火药但没有发展化学,我们发明了指南针但没有研究磁铁,哲学上面有八卦但是没有搞二进制,科学一直是我们比较缺乏的。因此,我想从原理方面定义可靠性谈一点体会。

我们知道: 1948年香农发表了划时代的论文“通讯的数学理论”,指出可靠通讯的根本任务,就是在接收端精确地复现发送端的信息,在一个有噪声的信道上面传递信息,传递和发送的内容一模一样,这就是可靠的通信。

因为信道是有噪声的,因此就要降低噪声、可编码,最后保证接收端和发送端的信息是精确的、一模一样的。

存储有没有这种理论?

通讯的数学理论我们有了,但是存储的数学理论在哪里?好象没有。

但是搞存储的人好象发现存储可以借用通讯的理念,这个道理是什么?因为信息的传递分为跨越空间、时间的传递,通讯跨越空间的传递,例如我现在打一个电话到北京,这就是信息跨越空间。相比,存储可类比为2000年前写的书,现在看到了,这是跨越时间的传递。

如果我们把通讯的理论改变一下,从空间变到时间,这样就可以指导存储,这就是它的道理,这个理论的适用更广。信息传递是二维的,比如说我们发一个短信或者微信,首先是跨过空间传到你的手机,如果你没有看到,同时没有存储你就看不到了,它是二维。可靠的信息传递必须同时有时间、空间的跨越。

我们用扩展的香农的理论分析存储,这时候我们就发现其科学道理很清楚了:什么是可靠的存储?读出的信息完全复现写入的信息,但是它是经过一个信道,这个信道不是跨越空间的信道,而是跨越时间的信道。如果我们把通讯理论向时间轴上拓展,它就变成存储的理论。

对于存储介质的基本要求是时间稳态,要在时间上保持,但是时间信道是有噪声的,我们刻在石头上、写在竹简上、刻在光盘上的东西会有时间信道的噪声,会随着时间的老化而磨损、受损,这些都是属于时间信道的噪声。

我们今天讲闪存,闪存的存储原理是电荷要保持时间稳态,把电子拉到浮栅里面它就是“0”,没有电荷的时候就是“1”。如今,闪存的容量越来越大,这就是为什么闪存会逐渐取代硬盘。

闪存现在基本上采用三条技术路线,一个是减小线宽,第二是单元多bit,第三是3D堆叠,这几个因素对可靠性带来的影响是什么?

线宽变窄了每个单元就变小了,单元电荷就变少了,电荷少了泄露后对电位的影响就特别大。窄了以后干扰也大,隧道氧化层变薄。用一个单元存多个bit,图上蓝色的是TPC的比率,它会越来越多,如此其读、写、擦出的时间都变长,变得越来越不可靠。3D堆叠可以减缓线宽,但是会产生层间的干扰,这也是一个问题。

如今越来越不可靠的闪存介质,时间信道的噪声越来越大,如此,我们怎么用越来越不可靠的介质构建一个可靠的系统?这就是今天的主题。

在香农的理论框架下,首先要想办法减少噪声,如果一个信道完全没有噪声,写进去读出来就是完全一样的。但是现在噪声越来越大,所以我们第一点是要尽量降低时间信道的噪声,如果降到不能再降了还有噪声就要用有效的编码来保证可靠性。

有了理论框架这个问题就不是很复杂了。

第一降低信道噪声。

第二采用编码。

通讯的信号随着距离的增加而衰减,信噪比增加。降低噪声采用的措施是中继和放大,我们分析一下,闪存介质是一个不简单又不优美的介质,电荷泄露要考虑的因素很复杂,所以很多情况下就要分析和处理的情况太多,很复杂。

当然,这也为各厂家显示技术实力提供了舞台,同样的介质不同的厂家的固态盘产品会有较大的差别,路遥知马力,后期的性能、铺靠性、寿命有很大的差别。

时间信道的噪声是闪存不可靠的来源。

第一是工艺缺陷,第二是电荷泄露,最重要的就是擦写磨损,P/E是最需要注意的,还有读写的干扰。 磨损均衡,最好的效果是均衡地让每一块寿命都耗尽,直至彻底失效,第二是减小写放大,第三是减小位间和层间干扰,第四是用Chorge Trap(电荷捕获)代替金属浮栅,减少泄露。

降低信道噪声更细致的技术,第一考察块之间的不均衡性,强块和弱块区别对待,进一步挖掘介质潜力,挖掘空间分布的潜力。

第二是全生命周期管理,不同的阶段不同对待,刚开始的错误很少,后面磨损的比较厉害了就需要加强,刚才是挖掘空间的潜力,现在是挖掘时间的潜力。

第三减少读干扰和编程干扰的新方法。

第四用编程误码率作为均衡指标,反映更真实的磨损状态。

第五通过新的FLT减小写放大。

第六为位置感知重分布。

我们对3D闪存芯片内部差异性进行了研究,发现差别是很大的,研究成果发表在sigmetrics杂志上。错误模式的研究,研究变成干扰、读干扰、写错误,用合适的pattern进行写入也可以减少磨损。这些细节大家可以看我们的论文。

第一是降低噪声。

二是采用更好的纠错编码。现在的LDPC有很多改进,我们这里做了一些研究,我们设计了一个编码,它可以使码源错误降低30%,还有自适应能力,针对刚开始错误比较少的时候和后期错误比较多的时候,采用不同能力的纠错编码。

我下面还要介绍一下我们一个新的研究,叫耗散结构——动态超可靠系统。什么意思?心跳平均每分钟跳70次,一天跳10万次,一年跳3650万次,70年跳26亿次,但是世界上没有任何一种材料可以经得起26亿次的疲劳测试。

但心脏为什么可以?

心肌并不是高可靠材料,关键在于它是一种耗散结构,就是说它有物质能量不断的进入,保持一个稳定的结构。细胞工作一段时间就新陈代谢了,它永远是很健康的。

它可以新陈代谢,但是总体结构不变,这是一种动态的超可靠系统,如果我们把这个思想用到存储系统上,就是不可靠不要紧,但是有进有出,就可以保持稳定,这是上帝的智慧,或者是大自然的智慧。

耗散存储系统的基本思想,就是快不行的时候把它传译一下,简单的说是这样的,但是我们还要把科学道理讲清楚,把理论建立起来,我们系统的研究了一下。基本思想是在存储单元即将失效之前,将数据转移到新的存储单元,使数据总是在健康的介质中保存。对数据而言,其保存它的介质实现了新陈代谢,从而实现了数据存储的超可靠性。

这与纠错的概念有本质的不同,纠错码和盘镇技术都是存储单元坏了,数据丢了以后,通过编码纠错,算出正确的数据,然后再恢复。而且恢复的时间比较长。对时间使用长的系统,大部分数据都是老化状态了,这时候就比较危险,像磁阵列这样,平均寿命是5年,都快到5年了快几个盘的概率大大上升,所以新系统和老系统在前期和后期的危险性是非常不一样的。

耗散性系统有哪些关键性技术?

第一准确预测存储单元什么时候失效。以前测不准,测早了时间没有到,浪费了资源,晚了数据就丢了。存储单元的颗粒有bit、Byte、word、page、block、die、chip、Drive、note,其中Block和Drive适合用这种方法。

判断的标准是基于当前比较热的机器学习,我们也做了一个工作,通过深度学习算法训练,这是我们对3D闪存的预测,横坐标是P/E,纵坐标是保持的时间。我们预测的准确率初步的超过了92%,预测负载准确率超过98%,我们的研究还有很大的空间。

如果通过介质预测什么时候坏,通过负载预测什么时候进行转移,通过这两个预测就可以知道介质什么时候坏。预测准了,我们设计了一个预警转移技术,这是工作区域,把新盘放到这里,假如我预测它一个星期以后要坏,我可以有一个星期的时间转移数据,预测以后我就把数据迁移到新盘中,一旦迁移完了我就告诉它这个盘的任务完成了,就到旁边的池子里,完全淘汰了。

淘汰以后就把新盘拔下来放进去,这样就形成新陈代谢,保证非常好的可靠性。这样就更加没有性能降级的说法了,不需要恢复数据,整体保持在健康的状态下。这非常适合用于数据中心,免维护的,一旦进入淘汰池了换掉就完了,而且新介质的速度、可靠性比老盘要高,不断得用新盘换旧盘,系统和容量都产生了净化,所以我们叫可净化的耗材存储技术,这个技术以后可以用机器人来实现,实现了超高的可靠性,这些都是理论,我们需要和广大的企业合作,把它用到实践当中。

总结一下,闪存芯片随着工艺制程、单元多bit、3D堆叠技术的进步,容量的迅速提高,但可靠性越来越差。如何用不可靠的芯片来构建可靠的系统,是每一个系统设计者必须面对的问题。在香农的理论框架下,主要是通过降低时间通道的噪声和采用更强的纠错编码进行。建立耗散存储系统超可靠体系框架,使存储数据实现新陈代谢,可实现数据存储系统的超高可靠。(本文根据武汉光电国家研究中心教授谢长生教授,在2018全球存储半导体大会暨全球闪存技术峰会的主题演讲,整理而成。未经过本人审阅。)