异构NAND型固态硬盘及提高其性能的方法
技术领域
本发明涉及半导体器件领域,尤其涉及一种异构NAND型固态硬盘及提高其耐久寿命、数据保持能力的方法。
背景技术
NAND型固态硬盘已经成为目前主流的非易失存储技术,广泛应用于数据中心、个人电脑、手机、智能终端、消费电子等各个领域,而且仍然呈现需求不断增长的局面。NAND型固态硬盘的制造工艺也已经发展到了16nm,从二维的制造工艺向三维的制造工艺转化。目前,128Gb24个单元堆叠的三维NAND芯片以正式投入商业化生产。而16nm128Gb的新型二维NAND芯片,则使用新型的二维单元结构突破传统二维结构尺寸缩小的限制。
一般的NAND存储器可以分为单层单元NAND(SLC,single-level cell)和多层单元NAND(MLC,multi-level cell)。SLC就是一个存储单元存储1bit数据,其特点是成本高、容量小、速度快,可擦写次数(Endurance)高达10万次,比MLC固态硬盘高10倍,数据保持能力(Retention)可长达10年。MLC就是一个存储单元可以存储多个bit数据,目前可以实现每单元存储2bit和3bit数据,其最大特点就是容量大成本低,但是速度慢,耐久寿命也较低,数据保持能力也会下降。由于每个MLC存储单元中存放的资料较多,结构相对复杂,出错的几率会增加,必须进行更多的错误修正(ECC,Error Correction Code),一些数据保持能力较差的多层单元NAND甚至需要进行周期刷新从而保证数据可靠性,这些动作都会导致其性能大幅落后于结构简单的SLC固态硬盘。NAND固态硬盘的耐久寿命定义为可对其进行最多的编程(Program)和擦除(Erase)操作(P/E cycle)次数。由于工艺和阵列损伤会导致阵列中的错误单元呈现非线性的增加趋势。如图1所示的趋势中,过去曾是主流工艺的单层单元NAND存储器在50nm工艺节点下能够达到10万次擦/除操作,而现在作为主流工艺的每单元2bit的多层单元NAND在20nm工艺节点下只能达到3000次擦/写操作,而更先进的3维制造工艺在同样的工艺节点下只能达到几百次擦/写操作,未来这种情况还会更加严重。为了进行更多的错误修正就需要更多的纠错位数,电路也会更加复杂。SLC和MLC NAND固态硬盘的性能对比如表1所示。根据二者之间性能的差异,SLC和MLC NAND固态硬盘在应用中也差别很大:如果对容量要求不是很大,但对速度和数据安全性要求比较高,一般会采用SLC的NAND固态硬盘,比如服务器中的存储设备、军事领域中;如果对数据可靠性要求不高,但对容量和成本要求较高,那么MLC类型的NAND固态硬盘是首选,例如影音存储设备、优盘等。
表1(√代表优势)
目前对于NAND固态硬盘产品来说都采用单一的制程方法,例如一块NAND固态硬盘中全部采用SLC NAND的存储器芯片,或者全部采用MLC NAND的存储存储器芯片,或者全部采取更先进的3D堆叠技术工艺制成的存储器NAND芯片,容量更大,成本更低,但是存储单元的耐写能力和数据保持时间都会显著下降。
是否存在一种存储器件能够结合这几种NAND型固态硬盘的优点,在达到高容量和低成本的前提下,又能够保证存储单元的耐写能力和数据保持能力以及更快的数据擦写速度,这是业界一直在追求的目标。
发明内容
鉴于上述问题,本发明提供一种异构NAND型固态硬盘及其耐久寿命和数据保持能力的提高方法。
本发明解决技术问题所采用的技术方案为:
一种异构NAND型固态硬盘,其中,包括:
存储逻辑控制器和N级NAND存储器芯片组,所述存储逻辑控制器与每级所述NAND存储器芯片组均连接;
每一级所述NAND存储器芯片组中均包含类型相同且数量至少为1个的NAND芯片;
其中,N为大于1的自然数,且每一级NAND存储器芯片组中的存储单元所能存储的位数均比前一级NAND存储器芯片组中的存储单元所能存储的位数大。
所述的异构NAND型固态硬盘,其中,在所述N级NAND存储器芯片组中,第1级所述NAND存储器芯片组中的芯片均为单层单元NAND芯片,所述第N级所述NAND存储器芯片组中的芯片均为3D堆叠NAND存储器芯片,且其余的所述NAND存储器芯片组中的芯片均为多层单元NAND芯片。
所述的异构NAND型固态硬盘,其中,所述存储逻辑控制器与第1级所述NAND存储芯片组集成于同一芯片中,以形成一系统级芯片。
所述的异构NAND型固态硬盘,其中,所述存储逻辑控制器与第1级所述NAND存储芯片组之间通过并口进行数据的传输。
所述的异构NAND型固态硬盘,其中,还包括连通所述存储逻辑控制器与外部的外部接口;
所述外部接口包括SATA、PCI或PCIe中的一种或多种。
所述的异构NAND型固态硬盘,其中,所述第1级NAND存储芯片组存储单元中控制栅采用后栅极(gate last)高电介质金属栅(high-k metal gate)工艺制成。
所述的异构NAND型固态硬盘,其中,所述系统级芯片和其他每一级所述NAND存储芯片组均通过若干微焊点连接至一硅基板上;
所述硅基板上设置有若干引脚,每个所述引脚均通过一焊点连接至一封装衬底中,且通过走线形成球栅阵列封装。
一种提高异构NAND型固态硬盘耐久寿命的方法,应用于如权利要求1~7中任意一项所述的异构NAND型固态硬盘中,其中,包括:
步骤S1:将每一级所述NAND存储器芯片组划分为若干个擦写单元;
步骤S2:当所述存储逻辑控制器在处于空闲状态时,统计所述异构NAND型固态硬盘中的所有擦写单元在一段预设的时间段内的擦写次数,并进行排序,以获取每个擦写单元的擦写频繁度;
步骤S3:将所有擦写单元的擦写频繁度按照从高到低分为N个等级;
步骤S4:按照擦写频繁度等级,将每个擦写单元中的数据转存至与其擦写频繁度等级相等的该级NAND存储器芯片组中,若某一擦写单元已位于其需要转存数据至的该级NAND存储器芯片组中,则不对该擦写单元中的数据进行转存;
其中,每一级所述NAND存储器芯片组的容量均大于与其级数相等的擦写频繁度所对应的所有擦写单元的总容量。
所述的提高异构NAND型固态硬盘耐久寿命的方法,其中,所述预设的时间段由所述存储逻辑控制器进行配置。
所述的提高异构NAND型固态硬盘耐久寿命的方法,其中,根据每个擦写单元的最大可擦写次数,对每个擦写单元设定一数值小于该最大可擦写次数的预警擦写次数;
当对擦写单元进行数据转存时,优先转存至相应的所述NAND存储器芯片组中实际擦写次数与预警擦写次数相差最大的擦写单元,其中,所述实际擦写次数小于所述预警擦写次数。
所述的提高异构NAND型固态硬盘耐久寿命的方法,其中,当对擦写单元进行数据转存时,将同一擦写频繁度等级所对应的所有擦写单元按照擦写次数越高越优先将其数据转存至相应级数的NAND存储器芯片组中的规则进行转存;
当相应级数的NAND存储器芯片组中的存储空间已满时,将后续的擦写单元中的数据转存至下一级/几级NAND存储器芯片组中。
型固态硬盘数据保持能力的方法,应用于所述的异构NAND型固态硬盘中,其中,包括:
步骤S1:预先根据不同的ECC纠错位数制定相应的刷新频率;
步骤S2:将所述N级NAND存储器芯片组划分成若干刷新单元;
步骤S3:获取任意一个所述刷新单元的ECC纠错位数,并根据该ECC纠错位数确定相应的刷新频率的值;
步骤S4:根据该刷新频率的值对包含该刷新单元在内的一个存储空间进行周期性的刷新;
其中,当任意两个或多个所述存储空间之间存在部分重合时,将这些存储空间所对应的刷新频率中的最大值对这些存储空间进行周期性的刷新。
所述的提高异构NAND型固态硬盘数据保持能力的方法,其中,任意相邻的两段存储空间为连续的存储空间。
所述的提高异构NAND型固态硬盘数据保持能力的方法,其中,所述刷新单元的最小单位为页。
所述的提高异构NAND型固态硬盘数据保持能力的方法,其中,步骤S3中,当某个刷新单元被进行读操作时,获取该刷新单元的ECC纠错位数。
所述的提高异构NAND型固态硬盘数据保持能力的方法,其中,步骤S3中,所述存储逻辑控制器根据预先的配置,在一段时间内对所述刷新单元主动进行读操作。
上述技术方案具有如下优点或有益效果:
本发明提出的异构NAND型固态硬盘,不仅包含SLC NAND存储器芯片,也包括MLCNAND存储器芯片,还可以包含3D堆叠的NAND存储器芯片,从而可以综合各自优点,弥补各自缺点,在应用范围上更加广泛。同时,本发明还提出了一种提高异构NAND型固态硬盘耐久寿命的方法,根据存储器中不同部分的使用情况,对其进行针对性的调整,从而使得存储器中的不同区域的擦写情况能够较为平均地分布,进而提高存储器的使用寿命。本发明还提供了一种提高异构NAND型固态硬盘数据保持能力的方法,通过对存储器中的存储空间的刷新周期进行定期的更新,从而优化了器件对数据的保存能力。
附图说明
参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。
图1是单层单元NAND与多层单元NAND的比较趋势示意图;
图2是本发明异构NAND型固态硬盘的结构示意图;
图3是本发明中一种提高异构NAND型固态硬盘耐久寿命的方法的示意图;
图4是本发明中一种提高异构NAND型固态硬盘耐久寿命的流程示意图;
图5是本发明实施例一中的异构NAND型固态硬盘的结构示意图;
图6是本发明中将存储逻辑控制器与单层单元NAND集成到一块芯片上的固态硬盘结构示意图;
图7是本发明中异构NAND型固态硬盘应用到系统中的结构示意图;
图8是本发明中将固态硬盘中最频繁被擦写和最频繁被读取的文件存储至单层单元NAND中的示意图;
图9是本发明中异构NAND型固态硬盘的封装过程示意图:
图10是本发明通过系统读取时判断更新刷新周期来保证数据保持能力的方法示意图;
图11是本发明连续地址空间重叠示意图;
图12是本发明中具体实施例三的示意图;
图13是本发明中通过固态硬盘上多层单元定期采样判断更新刷新周期提高数据保持能力的方法示意图。
具体实施方式
本发明提出一种异构NAND型固态硬盘,主要包括:存储逻辑控制器和N级NAND存储器芯片组,所述存储逻辑控制器与每级所述NAND存储器芯片组均连接;每一级所述NAND存储器芯片组中均包含类型相同且数量至少为1个的NAND芯片;其中,N为大于1的自然数,且每一级NAND存储器芯片组中的存储单元所能存储的位数均比前一级NAND存储器芯片组中的存储单元所能存储的位数大。其内部结构如图2所示,结构包括存储逻辑控制器和N级NAND存储器芯片组(N≥2)。存储逻辑控制器控制着对N级NAND存储单元的读写和擦除,以及对存储单元的损耗均衡控制等操作。其中每级NAND存储器芯片组内包含着同等类型的且数量大于等于一颗的NAND芯片。第N级芯片组内的NAND芯片的数据保持能力和耐写寿命要小于等于第(N-1)级NAND芯片组内的NAND芯片,且第N级芯片组内的NAND芯片对相同大小单元的操作功耗要大于等于第(N-1)级NAND芯片组内的NAND芯片,且第N级芯片组内的NAND芯片读写速度要小于等于第(N-1)级NAND芯片组内的NAND芯片,且第(N-1)级NAND芯片组内的NAND存储总容量要小于等于第N级芯片组内的NAND存储总容量。存储逻辑控制器通过接口(1)、(2)、(3)以及至(N)来控制每一级的NAND存储芯片组,其中,接口(1),(2)直至(N)可以为同一接口,也可以为不同接口。比如,第一级为单层单元(SLC)NAND芯片,第二级可以为每单元2bit多层单元(MLC)NAND芯片,第三级可以为每单元3bit多层单元NAND芯片,依次类推,而第N级可以为目前最先进的3D堆叠NAND存储芯片。几种不同类型的NAND芯片性能对比如表2所示。
表2
本发明所述异构NAND型固态硬盘结构至少应该包含两级NAND存储器芯片组,最优方案至少包含单层单元NAND芯片组,从而可以综合单层单元NAND结构的低功耗、快速读写性能和良好的耐久性能和数据保持能力,以及多层单元NAND或者3D堆叠NAND结构的大容量和低成本的优点。
本发明所述N级NAND存储器芯片组,在耐久寿命(Endurance,即可擦写次数)应当逐级递减,假设第N级NAND存储器芯片组的平均耐久寿命为EN,那么应当有
E1≥E2≥E3≥……≥EN
本发明所述N级NAND存储器芯片组,在数据保持能力(Retention)方面应当逐级递减,假设第N级NAND存储器芯片组中的平均数据保持时间为RN,那么应当有
R1≥R2≥R3≥……≥RN
本发明所述N级NAND存储器芯片组,在总容量方面应当逐级递增,假设第N级NAND存储器芯片组中的NAND存储总容量为VN,那么应当有
V1≤V2≤V3≤……≤VN
本发明所述N级NAND存储器芯片组,在存储器阵列读取速度方面应当逐级递减,假设第N级NAND存储器芯片组中的NAND读取速度为FN,那么应当有
F1≥F2≥F3≥……≥FN
下面将具体阐述一种提高本发明所述异构NAND型固态硬盘耐久寿命的方法。
我们知道,NAND固态硬盘以页(page)为单位读写数据,以块(block)为单位擦除数据。通常情况下,每一页可包含多个可读写字节,另外通常还包含额外字节空间用来存放错误校验码空间,每多个页又形成一个块。由于NAND存储阵列通常都会有一个最大可擦写次数,超过了最大可擦写次数,这个擦写块就成为坏块(bad block)了,再也不能正常工作。该最大可擦写次数与NAND架构和制造工艺相关。为了避免某个NAND存储块被过度擦写,应当在尽量小的影响性能的前提下,将擦写操作均匀分布在每个存储块上。这个过程叫损耗均衡(wear leveling)。为了达到上述损耗均衡的目的,必须记录NAND中每个擦写单元block的擦写次数,该单元可以为NAND控制器可以处理最小数据单位的整数倍,最小为1个块,或者它们的整数倍。
基于上述异构NAND型固态硬盘,本发明提出了一种提高其芯片耐久寿命的方法。我们以NAND中可以记录擦写次数的最小单元的整数倍为单位将每一级NAND划分为若干个部分,并称之为擦写单元,如图3所示。所述擦写单元的大小最小可为1个块,也可为若干块等等。图3中第一级NAND可划分成m1个擦写单元,第二级NAND划分为m2个擦写单元,直至第N级NAND划分成mN个擦写单元。在一定时间内,当固态硬盘中的存储控制器处于空闲状态时,统计该异构NAND型固态硬盘中的所有擦写单元的擦写次数,并根据在该段时间内所有擦写单元的擦写次数进行排序,如表3所示。
1 |
擦写单元P(1) |
2 |
擦写单元P(2) |
3 |
擦写单元P(3) |
…… |
…… |
m<sub>1</sub>+m<sub>2</sub>+……+m<sub>N</sub> |
擦写单元P(m<sub>1</sub>+m<sub>2</sub>+……+m<sub>N</sub>) |
表3
其中擦写单元P(1)、P(2)直至擦写单元P(m1+m2+……+mN)可以是图3中擦写单元1_1至擦写单元N_mN中的任何一个,这种排名可以作为预测的依据,即在该段时间范围内经常被擦写的擦写单元在下一段时间范围内仍然可能被大量擦写,因而将擦写次数最大的k1个擦写单元的内容搬至第一级NAND存储器芯片组内,即k1个擦写单元总容量小于等于第一级NAND存储器芯片组的总容量。同样,将擦写次数次频繁的k2个擦写单元的内容搬至第二级NAND存储器芯片组内,即k2个擦写单元总容量小于等于第二级NAND存储器芯片组的总容量。依次类推,直至将最不频繁被擦写的kN个擦写单元的内容搬至第N级NAND存储器芯片组内,即kN个擦写单元总容量小于等于第N级NAND存储器芯片组的总容量。在擦写次数上,k1≥k2≥……≥kN。所述一段时间根据应用不同可以是一天,一周,或者一个月等等,并可以由存储逻辑控制器或者系统配置。对于每个擦写单元来说,其可擦写次数都是有限的,所以本发明结合已有损耗均衡技术对每个擦写单元设定一个预警擦写次数。例如对于每单元3bit多层单元NAND来说,假定其最大可擦写次数为3000次,那么预警擦写次数可以设定为最大可擦写次数的一半即1500次,也可以设定为最大可擦写次数的三分之一即1000次等。预警擦写次数的设定也可由存储逻辑控制器或者系统进行控制。如果某个擦写单元达到了预警擦写次数,那么直接启动转存,将这部分擦写单元转存至擦写次数远远低于预警擦写次数的NAND芯片中。本发明这种提高NAND固态硬盘耐久寿命的方法具体流程图可如图4所示。
步骤1:一段时间内在固态硬盘中存储控制器处于空闲状态时统计出每级NAND中所有擦写单元的擦写次数,并由高到低进行排序;
步骤2:统计结束后,将该段时期内擦除次数较多的擦写单元数据优先转存至耐写寿命较高的第一级NAND中,如果第一级NAND已满,再考虑转存至第二级NAND中,以此类推,直至所有擦写单元转存结束。
下面举具体实例一来进一步阐述本发明这种提高芯片耐久寿命的方法。
如图5所示的是一个简单的混合异构NAND固态硬盘,包括三级NAND芯片组:第一级为单层单元NAND,最大可擦写次数高达10万次,并包含3个擦写单元A1、A2和A3;第二级为每单元2bitNAND,最大可擦写次数为1万次,并包含6个擦写单元B1、B2、B3、B4、B5和B6;第三级为每单元3bit NAND,最大可擦写次数为5000次,并包含9个擦写单元C1、C2、C3、C4、C5、C6、C7、C8和C9。在一段时间内,例如3天,假设在这段时间内对每个擦写单元的擦写次数统计如表4所示。
表4
由表4中可以看出在这段时间内,擦写次数最多的3个擦写单元为B2、C1和C7。那么在该段时间统计后,对该NAND固态硬盘内数据进行转存操作,将B2、C1和C7这三个频繁被擦写的擦写单元中的数据转存至第一级单层单元NAND固态硬盘中。较频繁被擦写的擦写单元A1、B1、B4、B6、C4、C3应当转存至第二级每单元2bit NAND固态硬盘中,由于B1、B4和B6本身就位于第二级NAND中,因而无需转存,只需将A1、C3和C4分别转存至第二级NAND固态硬盘中。最不频繁被擦写的擦写单元A2、A3、B3、B5、C2、C5、C6、C8和C9应当转存至耐写寿命最差的第三级NAND中,由于C2、C5、C6、C8和C9本身就位于第三级NAND固态硬盘中,因而无需转存,只需将A2、A3、B3和B5分别转存至第三级NAND固态硬盘中。
本发明这种基于异构NAND型固态硬盘结构来提高NAND固态硬盘耐久寿命的方法,不仅仅能够提高多层单元NAND和3D堆叠NAND的耐久寿命,从而有效提高整个固态硬盘的耐久寿命,减少了对多层单元NAND和3D堆叠NAND的擦写次数,还可以提高NAND固态硬盘的存取速度,也可以大大降低操作功耗,这是因为最频繁被擦写的擦写单元转存至第一级单层单元NAND中,由于单层单元NAND具备更快的读写速度和擦除速度,ECC逻辑也更加简单,功耗也低,因而本发明这种异构NAND固态硬盘的性能也会得到进一步提升。
一般来说,NAND固态硬盘存储芯片与逻辑控制芯片的制造工艺不一样,一些NAND固态硬盘大厂均采用专门的生产线,与CMOS逻辑工艺不兼容。以CMOS工艺为主的各晶圆代工厂均无法实现NAND固态硬盘的生产。传统的二维NAND固态硬盘工艺和三维NAND固态硬盘工艺虽然已经到了十几纳米的工艺,但是这仅仅是对于NAND单元阵列而言的,其逻辑控制电路和模拟电路部分仍然采用的是很落后的CMOS工艺,例如只有180nm、130nm。一方面是芯片成本的考虑,先进CMOS制程会增加芯片的制造成本;另一方面是NAND固态硬盘单元的写入需要20V左右的电压,在先进的CMOS工艺上实现高压CMOS管的工艺难度和成本也比较大。美光的新型二维NAND固态硬盘工艺尽管在存储单元区采用了高介电常数金属栅(HKMG)的先进CMOS工艺,但其芯片的逻辑控制电路和模拟电路部分仍然采用的是很落后的CMOS工艺,而且其NAND固态硬盘单元的HKMG工艺采用的是Gate First的工艺集成方法,与目前主流的先进CMOS工艺不兼容。如果采用一种基于Gate Last金属栅工艺的二维NAND型固态硬盘工艺,采用金属栅工艺实现NAND单元的控制栅,而不是传统的多晶硅环绕控制栅,可以实现与高介电常数金属栅先进CMOS工艺的集成,与目前主流的Gate Last CMOS工艺兼容,克服了目前NAND固态硬盘工艺无法与先进标准逻辑工艺兼容的问题,从而使得逻辑控制电路和模拟电路部分速度更快,进而大大提高NAND芯片的读写性能。采用Gate Last CMOS工艺可以实现高速的各种复杂的逻辑功能,又能够得到较大NAND存储空间。
结合上述Gate Last CMOS工艺,本发明存储逻辑控制器还可以和第一级单层单元NAND存储阵列集成到一个芯片中,形成一块系统级(SoC)芯片,结构如图6所示。这种结构的异构NAND型固态硬盘具备以下优势:(1)采用Gate last CMOS工艺使得存储逻辑控制电路可以采用先进的CMOS工艺,因而更快速度的实现各种复杂的逻辑功能,性能大大提高;(2)由于存储逻辑控制器与单层单元NAND阵列位于同一块SoC芯片中,因而二者之间可以采用速度更快带宽更宽的并口数据传输,如图6中的接口(i),而不是传统的图2中所示的NAND芯片与存储器控制器之间的接口(1)比如ONFI等接口,存储逻辑控制器能够更加快速的访问单层单元NAND;(3)采用Gate Last CMOS工艺使得逻辑控制电路和模拟电路部分速度更快,进而大大提高NAND芯片的读写性能。而对于异构NAND型固态硬盘的外部接口来说,由于内部访问速度大大加快,外部接口可以采用数据传输率更高更快的接口,缓解了快速访问的外部接口与较慢的NAND芯片读写速度之间的瓶颈,如图2所示中,外部接口可以做到高速,而对固态硬盘读取速度的真正限制因素在于存储控制器对NAND芯片组的读取速度较慢。因而本发明图6所示的异构NAND固态硬盘性能上能够进一步提升。将异构NAND型固态硬盘应用到系统中如图7所示,包括:设置有高速缓存的中央处理器(CPU)、北桥芯片(NorthBridge)、南桥芯片(South Bridge)、图形处理器(GPU)、内存和异构NAND型固态硬盘;其中,中央处理器通过系统总线或前端总线与北桥芯片连接,北桥芯片分别通过加速图形接口(AGP)与图形处理器连接,通过DDR2或DDR3与内存(DRAM)连接,通过系统总线与南桥芯片连接,南桥芯片通过串行硬件驱动器接口(SATA)与NAND型固态硬盘实现数据的传输。为了进一步提高系统对固态硬盘的读取性能,可以将固态硬盘中最常被调用的文件存储至第一级单层单元NAND中,称之为固态硬盘热文件。固态硬盘热文件是固态硬盘中最频繁被读取的文件,但并不一定是固态硬盘中最频繁被擦写的程序。如图8所示,将固态硬盘中最频繁被擦写的文件存储到单层单元NAND中,提高固态硬盘的整体耐写寿命,降低写功耗,提高写的速度;将固态硬盘中最频繁被读取的文件存储到单层单元NAND中,使得NAND固态硬盘读取功耗大大降低,读取速度也会明显提升。当然,固态硬盘中最频繁被擦写的文件和固态硬盘中最频繁被读取的文件也有可能是同一文件。另外,如果用户仅仅为了实现立即启动(与上述目的有所不同),可将系统最频繁调用的文件或者操作系统文件存储在固态硬盘单层单元NAND中,这种实现方式可以应用到个人电脑或手机设备中。
每次系统上电后都将从固态硬盘中调用系统程序,但这部分程序并不经常被擦写。为了能够使系统启动速度更快,系统在一段时间自学习后,将最常被调用的操作系统程序存储在读取速度最快的第一级单层单元NAND中,当下一次系统启动的时候,由于数据读取速度最快,因而可以进一步实现立即启动。为了提高用户体验感,系统在一段时间的自学习后还可以将用户最经常使用的应用程序存储在第一级单层单元NAND中,用户最经常使用的应用程序称之为系统热程序也有可能是最经常被擦写的部分,将这部分应用程序存储在第一级单层单元NAND中,不仅可以提高NAND固态硬盘的耐久寿命,更可以满足用户的使用习惯,因为用户最经常使用的应用程序信息能够以较快的速度从固态硬盘中被读取出来,因而体验感更佳。从上面阐述看出,存取速度快、功耗低、耐写寿命高的第一级单层单元NAND中可以存储那些固态硬盘中最经常被读取的固态硬盘热文件数据,从而使固态硬盘达到更快功耗更低的性能,也可以存储固态硬盘中最经常被进行擦写的数据,从而有效提高固态硬盘NAND存储阵列的总体耐写寿命。由于单层单元NAND容量有限,用户可以根据不同的应用场合而选择将不同的数据存储至单层单元NAND中。例如,用户想达到更快的读取性能,那么可以将固态硬盘中最经常被读取的程序数据替换出单层单元NAND中那些相对不经常被擦写的数据,从而满足用户对数据读取性能的要求。
下面举具体实施例二来进一步阐述图6所示的异构NAND型固态硬盘。
本发明可以将NAND存储逻辑控制器单层单元NAND存储阵列集成到一个芯片上,从而可以进一步实现读写速度上的提升,而本发明异构型NAND固态硬盘中还包含多层单元NAND存储芯片或者3D堆叠NAND芯片,实现芯片的封装方法可如图9所示。存储逻辑控制器和单层单元NAND集成芯片通过微焊点连接到硅基板上,3D堆叠NAND存储芯片和多层单元NAND芯片也通过微焊点(Microbumps)901连接到硅基板(Silicon Interposer)上,通过硅基板可以完成很多数据运算和交流,节省功耗,增加带宽,并且可以实现更高密度的封装。硅基板上的引脚通过硅通孔(Through-Silicon Vias)902技术连接到C4焊点904。硅通孔技术是通过芯片和芯片之间制作垂直导通实现芯片之间互连的最新技术,TSV技术能够使芯片在三维方向堆叠的密度最大,外形尺寸最小,并且大大改善芯片速度和低功耗的性能。C4焊点连接到封装衬底(Package Substrate)并通过一系列的走线最终形成球栅阵列封装(BGA,ball grid array)905。上述本发明异构NAND型固态硬盘的实现方式能够最大程度的实现数据快速读取,节省功耗,并能够得到更大的存储容量。
下面具体阐述一种提高异构NAND型固态硬盘数据保持能力的方法。
我们知道,多层单元NAND芯片或者3D堆叠NAND芯片中存储单元的数据保持能力要远远低于单层单元NAND芯片,随着工艺更加先进,每个单元存储bit的增加,数据保持能力也在大大降低,例如只有半年、一个月或者更短。因而为了提高含有多层单元NAND或者3D堆叠NAND芯片的数据可靠性,一些多层单元NAND芯片或者3D堆叠NAND芯片需要进行定期刷新来保证数据可靠性和完整性,降低芯片的位错率BER(bit error rate)。传统的方法就是对固态硬盘中的所有多层单元NAND或者3D堆叠NAND芯片以同样的刷新频率F_spec进行定期刷新,这种以固定频率进行刷新的方法弊端非常明显:对于数据保持能力非常好的多层单元NAND存储芯片或者3D堆叠NAND芯片来说,以该频率进行刷新大大浪费了功耗;而对于数据保持能力很差的多层单元NAND存储芯片或者3D堆叠NAND芯片来说,以该频率进行刷新又不能保证数据的完整性和可靠性,多层单元或者3D堆叠NAND芯片性能要在功耗和可靠性之间折中。本发明根据异构NAND型固态硬盘结构,提出一种基于ECC(错误检查纠错)的方法来提高固态硬盘的数据保持能力。
假设本发明中所述异构NAND型固态硬盘中有P块NAND芯片需要进行周期刷新以保证数据完整和可靠性。所述P块芯片可能位于第二级至第N级多层单元NAND芯片或者3D堆叠NAND芯片中,针对每一块芯片都有一张查找对应表,如表5所示,该表能够反映出错误检查纠错(ECC)的位数与刷新频率之间的对应关系。该表可以针对每一个芯片,也可以是针对NAND芯片中的一个最小的刷新单元,即一个页,或者是最小刷新单元的整数倍,例如一个块,一个面,一个分区等等。ECC纠错位数的增加说明多层单元NAND芯片或者3D堆叠NAND芯片中的数据保持能力在变差,那么就需要更高的刷新频率来提高数据保持能力,即表5中的刷新频率应有如下关系:
Freq_1≤Freq_2≤Freq_3≤……≤Freq_N
ECC纠错位数 |
刷新频率 |
1bit |
Freq_1 |
2bit |
Freq_2 |
3bit |
Freq_3 |
…… |
…… |
N bit |
Freq_N |
表5
本发明这种提高异构NAND型固态硬盘数据保持能力的方法分两个方式,一个方式为系统读取所述异构NAND固态硬盘时判断刷新周期,另一方式为固态硬盘中存储控制器定期采样判断刷新周期。以需要周期刷新的P块芯片中的一块芯片P0为例说明。
对NAND阵列读取的最小单位为一个页,每读取一个页ECC逻辑工作并产生纠错位。读取时判断刷新周期就是在对NAND读取时根据ECC纠错位查表得到刷新周期。如图10所示,假设在某一时刻对页M进行读操作,那么随之产生一个ECC纠错位数N,根据表5进行查表,得到该纠错位下的刷新频率Freq_N,然后存储控制器对包含页M所在地址的一段连续地址空间以频率Freq_N进行周期刷新。所述包含页M所在地址的一段连续地址空间应该为页的整数倍空间,大小可以由存储逻辑控制器控制,最小可以只包含页M,也可以为几个页,或者一个块(block),或者几个块,或者为一个面(plane),或者几个面,最大可为整个芯片P0。若包含页M所在地址的一段连续地址空间越小,那么查表得到的刷新频率对该段地址空间就越准确,在该刷新频率下的存储单元数据保持能力也更可靠,但逻辑控制电路也会更复杂,实现上也更难控制。若包含页M所在地址的一段连续地址空间越大,那么逻辑控制电路相对要简单,也更容易实现,但功耗会更大,并且查表得到的刷新频率并不一定适用于整段地址空间,存储单元的数据可靠性和完整性也会降低。因此选取包含页M所在地址的一段连续地址空间大小要在性能上有所折中。如果几段地址空间重叠,重叠部分存储单元的刷新频率应当在特定算法下得出,例如选取刷新频率中较大的一个。如图11所示,读取页X和页Y时,根据ECC纠错位不同查表得到不同的刷新频率F_1和刷新频率F_2,而包含页X的一段连续地址空间和包含页Y的一段连续地址空间之间有重叠,那么对于重叠部分的刷新频率由F_1和F_2通过一定算法得出,一种简单的算法就是选取二者中较大的一个作为刷新频率,且最优方案为两段连续地址空间完全一致。
下面举具体实例三作进一步阐述。
假设ECC纠错位数与刷新频率之间的对应表如表6所示。若某一时刻读取到某页S的数据,ECC检查纠错了4bit,那么对该包含该页的一段连续地址空间以一个月为周期刷新数据。如图12所示,若该连续地址空间可以为一个块大小,那么就需要对该块以一个月为周期刷新数据;若连续地址空间为一个面大小,那么就需要对该面以一个月为周期刷新数据。显然,刷新一个块的功耗要远远低于刷新一个面的功耗,但是控制每一个块以不同的刷新频率进行刷新要比控制一个面以同一个刷新频率进行刷新要复杂的多。因此读取时刷新要在二者之间做出折中,从而选取一个合适的连续地址空间进行刷新。
ECC纠错位数 |
刷新周期 |
1bit |
一年 |
2bit |
半年 |
3bit |
三个月 |
4bit |
一个月 |
5bit |
一周 |
表6
由于读取时判断刷新周期是在对NAND芯片进行读取时才会对其中的某一段地址空间进行周期刷新,如果在一段时间内都没有对NAND进行读取操作就不会有刷新周期判断与更新操作,那么NAND中的某些存储单元的数据就会丢失。比如一块需要定期刷新的NAND芯片在上一次由读取一页或者几个页时判断得到需要以一个月为周期刷新,但由于长时间不再访问,比如半年,导致在这半年内此芯片上的很多存储单元下降到一周就要刷新一次,但仅通过系统读取时判断刷新周期无法做到一周刷新一次。为了避免这种情况发生就需要固态硬盘上存储控制器对芯片进行定期采样判断刷新周期。如图13所示,一段时间内,固态硬盘上存储控制器主动对多层单元NAND芯片或者3D堆叠NAND芯片进行采样读取若N个页,例如页1,页2,页3,……,页N,且这N个页分别位于块1至块h中(假设芯片P0有h个块)。所述一段时间如果越短,那么采样就更加准确,如果更长,那么更省功耗,这可以由存储控制器进行配置。采样读取后根据ECC纠错位数进行查表得到相应的刷新频率F_1,F_2,F_3,……,F_N。那么对包含页1的一段连续地址空间A_1假如为整个芯片地址范围以刷新频率F_1周期刷新数据,对包含页2的一段连续地址空间A_2假如为整个芯片地址范围以刷新频率F_2周期刷新数据,以此类推,直至对包含页N的一段连续地址空间A_N假如为整个芯片地址范围以刷新频率F_N周期刷新数据。由于A_1至A_N完全重叠,根据特定算法,比如取最大值MAX(F_1,F_2,……,F_N),得到更新的芯片刷新周期。为了能够使采样更加准确,还可以从每个块中采样更多页。
本发明这种基于ECC纠错位来确定NAND存储单元的刷新频率的方法相比于传统的单一的刷新频率方法来说,在节省功耗的基础上又能够确保数据保持的可靠性和完整性。
本发明这种异构NAND型固态硬盘结构综合了单层单元NAND存取速度快、耐写寿命长、功耗低以及多层单元NAND和3D堆叠NAND成本低、容量大的优点,应用范围更加广泛。
对于本领域的技术人员而言,阅读上述说明后,各种变化和修正无疑将显而易见。因此,所附的权利要求书应看作是涵盖本发明的真实意图和范围的全部变化和修正。在权利要求书范围内任何和所有等价的范围与内容,都应认为仍属本发明的意图和范围内。