数据储存装置以及非挥发式存储器操作方法与流程

文档序号:18101234发布日期:2019-07-06 11:22阅读:152来源:国知局
数据储存装置以及非挥发式存储器操作方法与流程

本发明有关于数据储存装置以及其中非挥发式存储器的操作方法。



背景技术:

非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式随机存取存储器(resistiveram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)…等,用于长时间数据保存。

然而,非挥发式存储器的写入操作可能被非预期断电中断。为确保数据可靠度,数据储存装置的复电程序为本技术领域一项重要课题。



技术实现要素:

本发明在数据储存装置复电时,基于单发完成写入操作(oneshotprogramming)之尺寸进行数据可靠度判断。

根据本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制单元。该非挥发式存储器藉由单发完成写入操作接收数据。各单发完成写入操作写入n页数据。n为大于1的数字。该数据储存装置复电时,控制单元令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的n页数据中的最末页。

本发明另一种实施方式提出一种非挥发式存储器操作方法,包括:令一非挥发式存储器藉由单发完成写入操作接收数据,各单发完成写入操作写入n页数据,n为大于1的数字;以及于该数据储存装置复电时,令该非挥发式存储器断电前使用的一主动区块的一最末页指标指向一回单发完成写入操作写入的n页数据中的最末页。

一种实施方式中,该最末页指标所指空间对应的单发完成写入操作的n页数据须进行错误校验。错误校验失败时,该最末页指标需校正,指向更前一回单发完成写入操作写入的n页数据中的最末页。

一种实施方式中,该最末页指标确定后,该最末页指标所指空间对应的单发完成写入操作的n页数据是否受断电波及也需要再做判断,以搬移之。

一种实施方式中,该最末页指标所指的空间若不接续空页,则不搬移该最末页指标所指空间对应的单发完成写入操作的n页数据。

一种实施方式中,该最末页指标所指空间对应的单发完成写入操作的映射资讯若已封存,则不搬移该最末页指标所指空间对应的单发完成写入操作的n页数据。

一种实施方式中,该最末页指标确定后,该最末页指标所指空间对应的单发完成写入操作的n页数据若已被更新或搬移,则不做搬移。

下文特举实施例,并配合附图,详细说明本发明内容。

附图说明

图1以方块图图解根据本发明一种实施方式所实现的一数据储存装置100,其中包括快闪存储器102以及控制单元104;

图2为流程图,图解根据本发明一种实施方式所实现的一复电程序,其中更包括不可靠数据的判断以及搬移(步骤s208以及s212);

图3以图例说明图2流程;

图4另举一例说明不可靠数据的搬移步骤s212的例外状况;

图5另举一例说明不可靠数据的搬移步骤s212的例外状况。

符号说明

100~数据储存装置;

102~快闪存储器;

104~控制单元;

106~主机:

112~系统内程式码区块池;

114~系统资讯区块池;

116~闲置区块池;

118~数据区块池;

122~微处理器;

124~只读存储器;

126~挥发式存储器;

130、132、134~页;

140~映射资讯;

a_blk~主动区块;

f2h、h2f~映射表;

*a_blk~指标,指向主动区块a_blk;

*seal~指标,指示映射表封存进度;

s202…s212~步骤。

具体实施方式

以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。

非挥发式存储器可以是快闪存储器(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式存储器(resistiveram,rram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)…等,提供长时间数据保存之储存媒体,可用于实现数据储存装置、或应用于数据中心。以下特别以快闪存储器(flashmemory)为例进行讨论。

现今数据储存装置常以快闪存储器为储存媒体,用来实现记忆卡(memorycard)、通用串行总线闪存装置(usbflashdevice)、固态硬碟(ssd)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如emmc)。

以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为一主机(host),操作所使用的数据储存装置,以存取其中快闪存储器。

快闪存储器实现的储存媒体也可用于建构数据中心。例如,伺服器可操作固态硬碟(ssd)阵列形成数据中心。伺服器即可视为一主机(host),操作所连结之固态硬碟,以存取其中快闪存储器。

主机(host)端是以逻辑地址(例如,逻辑区块地址lba或全域主机页编号ghp…等)区别数据。快闪存储器的物理空间则是以区块(blocks)为单位,配置来接收主机要求写入的多个页(pages)数据。为了最佳化使用快闪存储器,快闪存储器的储存空间是动态配置对应主机所识别的逻辑地址。逻辑地址以及储存空间之间的映射资讯需妥善管理。

快闪存储器多种操作都需参考、或可能牵动映射资讯。例如,快闪存储器的读取需要参考映射资讯,快闪存储器的写入则需更新映射资讯。特别是,快闪存储器储存空间需以区块为单位进行抹除(erase)后方能再次使用。由于各区块可承受的抹除次数有上限,快闪存储器的操作有抹写平均(wearleveling)议题需要考量。另外,旧数据更新并非同空间复写。新版的数据被写入闲置空间后,旧空间内容将被标为无效。一区块可能零星留存有效数据,故垃圾回收(garbagecollection)需求相应产生。一区块中留存的零星有效数据可经垃圾回收技术搬移到闲置空间,使得徒留无效数据的区块得以被抹除再利用。上述抹写平均以及垃圾回收技术,都涉及映射资讯的参考或更新。映射资讯的维护为必要。

映射资讯的维护有多种方式。关于正在配置使用的数据接收区块(接收主机要求的写入数据,或作为垃圾回收的收集区块),其动态变化的映射资讯可以映射表f2h动态更新。映射表f2h以物理空间为索引,标注对应的逻辑地址,可在挥发式存储器上进行动态维护。映射表f2h需反向整理入映射表h2f,提供以逻辑地址为索引的映射资讯查询机制。映射表h2f需要以非挥发方式备份在快闪存储器上;即,小表f2h的映射资讯需封存(seal)至大表h2f。此外,当小表f2h封存至大表h2f后,亦可将该小表f2h储存一份在快闪存储器上,以供后续垃圾回收运作时判断数据接收区块各页是否储存有效数据之用。特别是,数据接收区块各页对应的逻辑地址可记录在该页的元数据(metadata)中。如此一来,若有非预期断电事件(suddenpower-offevent)发生,即使挥发式存储的小表f2h未来得及封存至大表h2f即遗失,扫描元数据也可以重建。

关于非预期断电事件(suddenpower-offevent),遭其中断的写入操作将不可靠,甚至影响前后空间的可靠度。例如,刚复电时可正确读出的数据,过一阵子后,就损毁无法读出。如此数据稳定度问题都需要在复电程序中考量。

本发明快闪存储器特别采用一种高密度储存技术,提升单位物理空间的储存密度。例如,相较于单阶储存(slc),多阶储存(mlc)使得单位物理空间得以储存双倍数据,而三阶储存(tlc)使得单位物理空间得以储存三倍数据。本发明所采用的高密度储存技术特别提供一种单发完成写入操作(oneshotprogramming),使单位物理空间的多页数据乃同时写入。甚至,快闪存储器可有单面(1-plane)、双面(2-plane)、甚至更多面的读/写设计,决定单次读/写操作涉及的面的数量(如,单纯涉及单面、或横跨双面、或横跨更多面)。如此一来,单发完成写入操作(oneshotprogramming)是做n页写入,n为大于1的整数,可为level#(共享单位物理空间的数据页数)与plane#(共操作之面数)的乘积:n=level#*plane#。以3d的mlc快闪存储器为例,共享单位物理空间的数据页数为2。双面(2-plane)写入时,n值为2x2,即4。或者,更考虑多晶片致能功能,若可藉由规划晶片致动信号(cesignals)而交错致动的物理空间数量为ce#,则n值计算须更乘以ce#,为level#*plane#*ce#。本发明考量如此单发完成写入操作(oneshotprogramming)特色来进行复电程序。

图1以方块图图解根据本发明一种实施方式所实现的一数据储存装置100,其中包括快闪存储器102以及控制单元104。根据主机106发出的要求,控制单元104操作快闪存储器102回应。快闪存储器102的储存空间经配置使用后,可有多种分类。系统内程式码(in-systemcode,简称isp)区块池112储存系统内程式码(in-systemcode,简称isp)。系统资讯区块池114储存系统资讯。主动区块a_blk则是自闲置区块池116选取使用,用于数据接收,可因应写入要求、或是用作垃圾回收的收集区块。特别是,主动区块a_blk是由前述单发完成写入操作(oneshotprogramming)接收数据。以slc进行双面写入时,主动区块a_blk一次接收两页数据。以mlc进行单面写入时,主动区块a_blk一次接收两页数据。以mlc进行双面写入时,主动区块a_blk一次接收四页数据。以tlc进行单面写入时,主动区块a_blk一次接收三页数据。以tlc进行双面写入时,主动区块a_blk一次接收六页数据。完成数据接收后,主动区块a_blk将推入数据区块池118。系统资讯区块池114所储存的系统资讯可包括映射表h2f,也可记录指标*a_blk显示目前使用哪个物理空间作为主动区块a_blk。

控制单元104包括一微处理器122、一只读存储器124以及一挥发式存储器126。只读存储器124以及挥发式存储器126可与微处理器122整合在一起,或是外接该微处理器122。只读存储器124载有只读程式码。微处理器122可根据只读存储器124所载的只读程式码以及isp区块池112所载的系统内程式码运作该快闪存储器102,期间微处理器122可利用该挥发式存储器126动态整理对应该主动区块a_blk的映射表f2h。挥发式存储器126可能空间有限,映射表f2h可定量封存至映射表h2f。一种实施方式中,映射表f2h是在收到掉电通知(pon,poweroffnotification)时局部封存至快闪存储器102。一种实施方式中,映射表f2h可更在复电(spor)重建后局部封存至快闪存储器102。映射表f2h封存至映射表h2f的进度也可呈系统资讯(如,指标*seal)记录在系统资讯区块池114中。非预期断电事件若发生,挥发式存储器126上尚未封存的映射资讯将遗失。本发明控制单元104对此状况进行复电程序,其中特别将主动区块a_blk的单发完成写入操作(oneshotprogramming)考量其中,加强复电后的数据可靠度。

如图所示,复电程序启动后,控制单元104会检查系统资讯区块池114,根据指标*a_blk以及指标*seal,得知断电打断的主动区块a_blk为何、且主动区块a_blk的映射表f2h至映射表h2f的封存已经进行到何处。根据指标*seal指示,控制单元104起始该主动区块a_blk的元数据(metadata)扫描,顺着主动区块a_blk内空间的使用顺序获得各页对应的逻辑地址,将主动区块a_blk未来得及封存的映射资讯整理在挥发式存储器126,重建映射表f2h。扫描到无内容元数据时,即寻得空页(图中为130)。控制单元104可初始化该主动区块a_blk的一最末页指标指向空页130前一页132。控制单元104会检查该最末页指标所指的页132是否是一回单发完成写入操作(oneshotprogramming)所写入的n页中的最末页。若如图例,页132并非一回单发完成写入操作(oneshotprogramming)所写入的n页中的最末页,控制单元104在主动区块a_blk前推,寻得前一回单发完成写入操作(oneshotprogramming),校正该最末页指标指向页134,并将挥发式存储器126上随复电扫描而收集的映射资讯140舍弃。映射资讯140是复电扫描时取自页134之下一页至页132的元数据。

页132所属的单发完成写入操作(oneshotprogramming)显然受非预期断电事件中断。以上将主动区块a_blk的最末页指标校正到页134的动作,使极可能被非预期断电事件损毁的该回单发完成写入操作(oneshotprogramming)被视为无效。如此一来,数据可靠度大幅提升。

该最末页指标校正到页134后,同回单发完成写入操作(oneshotprogramming)写入的n页数据可一同更被错误校验。倘若n页有任一页无法通过错误校验(如,uecc发生),则表示该回单发完成写入操作(oneshotprogramming)受非预期断电事件损毁。控制单元104在主动区块a_blk前推,寻得更前一回的单发完成写入操作(oneshotprogramming)。该最末页指标经校正,指向所述更前一回单发完成写入操作(oneshotprogramming)写入的n页数据中的最末页。映射表f2h中相应舍弃映射资讯。

图2为流程图,图解根据本发明一种实施方式所实现的一复电程序,其中更包括不可靠数据的判断以及搬移(步骤s208以及s212);以下搭配图1进行说明。步骤s202,控制单元104进行复电程序。根据系统资讯区块池114所载的指标*a_blk,控制单元104寻得被非预期断电事件中断的主动区块a_blk。根据系统资讯区块池114所载的指标*seal,控制单元104获知断电前该主动区块a_blk的映射资讯封存进度。步骤s204,根据封存进度,控制单元104设定该主动区块a_blk的起始扫描页,起始逐页收集元数据中的映射资讯(各页对应的逻辑地址),于挥发式存储器126重建该主动区块a_blk的映射表f2h。控制单元104扫描到空页130(该页元数据无内容)后,进行步骤s206。若空页130前一页132并非n页一组的单发完成写入操作(oneshotprogramming)的最末页,控制单元104会在步骤s206进行主动区块a_blk的最末页校正,使主动区块a_blk的最末页指标指向一回单发完成写入操作(oneshotprogramming)写入的n页数据中的最末页。步骤s208中,控制单元104对主动区块a_blk的最末页指标所关联的n页(同回单发完成写入操作写入)进行错误校验。若有任一页没有办法通过错误校验(如,发生uecc),控制单元104进行步骤s210舍弃映射表f2h所载关于该n页的映射资讯,再次进行步骤s206,前移主动区块a_blk的最末页指标。若步骤s208无发生错误校验失败(如,uecc)事件,控制单元104进行步骤s212,将不可靠数据即时搬移。

图3以图例说明图2流程。复电后,步骤s204进行的元数据扫描可为双面扫描,其中对跨及两面的两页的元数据进行扫描。页0x00以及0x01的元数据所载的逻辑地址会单发更新至映射表f2h。元数据的双面扫描可一路进行到空页0x26。此时,映射表f2h对应更新到页0x24以及0x25的映射资讯。此实施例采mlc双面写入,主动区块a_blk一次接收四页数据的程式化。空页0x26前一页0x25对应的单发完成写入操作涉及页0x24~0x27。页0x25并非n页写入中的最末页0x27。因此,主动区块a_blk的最末页指标藉由步骤s206校正至页0x23,对齐前一回单发完成写入操作的4页0x20~0x23的最末页0x23。根据步骤s208,控制单元104自页0x20逐页完整读取4页0x20~0x23。所读取4页0x20~0x23的数据都会被用各自元数据所储存的校验码(例如,ecccode)校验。若有uecc发生,四页0x20~0x23内容以及映射资讯一起舍弃(步骤s210),主动区块a_blk的最末页指标藉由步骤s206校正至页0x19,对齐更前一回单发完成写入操作的4页0x16~0x19的最末页0x19。即使步骤s208判定无uecc发生,不可靠的数据也可藉步骤s212搬移。例如,倘若页0x20~0x23尚能读出、但不可靠,步骤s212可将之搬移到其他空间。

步骤s212可有多种例外,使数据搬移可略过。一种实施方式中,通过错误校验的该回单发完成写入操作的最末页的下一页若非空页,则代表非预期断电事件并不发生在该回单发完成写入操作,无不可靠数据需要靠步骤s212搬移。参阅图3,倘若主动区块a_blk确定后的(通过错误校验)最末页指标是指到页0x23,则由于页0x23的下一页0x24非空页0x26,故页0x20~0x23可靠,无须在步骤s212搬移。

图4另举一例说明不可靠数据的搬移步骤s212的例外状况。通过错误校验的该回单发完成写入操作的映射资讯若早已封存(小表f2h至大表h2f),则代表非预期断电事件并不发生在该回单发完成写入操作,无不可靠数据需要靠步骤s212搬移。图4显示非预期断电事件发生前,映射表f2h至映射表h2f的封存进度(指标*seal所载)已达页0x23。如此一来,非预期断电事件并不发生在页0x20~0x23的单发完成写入操作。页0x20~0x23可靠,无须在步骤s212搬移。

图5另举一例说明不可靠数据的搬移步骤s212的例外状况。通过错误校验的该回单发完成写入操作的映射资讯若事实上为无效数据(例如,早被抹除或是更新),则也无需要在步骤s212搬移的必要。图5显示主动区块a_blk最末页指标指向页0x23。即使页0x20~0x23通过错误校验,但因为查询结果显示页0x20~0x23皆为无效,故无须在步骤s212搬移。数据有效与否可藉由查询该系统资讯区块池214所储存的系统资讯进行判断。一种实施方式中,快闪存储器102非挥发性储存的映射表f2h以及h2f可用作上述系统资讯,帮助判断数据有/无效。映射表f2h查询到一区块上一页所对应的逻辑区块地址lba后,查询到的lba将以映射表h2f复核。若映射表h2f显示该lba的确对应该区块的该页,则表示所储存为有效数据,反之则为无效数据。或者,复电过程中,控制单元104也可在挥发式存储器126上整理出系统资讯,帮助判断数据有效与否。

一种实施方式中,该控制单元104于确定该最末页指标后,更在判定该最末页指标所指空间所储存数据仍有效、该最末页指标所指的空间接续空页、且该最末页指标所指空间对应的单发完成写入操作的映射数据未封存时,搬移该最末页指标所指空间对应的单发完成写入操作的n页数据。

一种实施方式中,连续数据以及零散数据有各自的数据接收区块,分别标号为c0以及c1。控制单元104复电程序须对两种数据接收区块c0以及c1都进行修复。一种实施方式中,区块c0/c1结束接收数据后,控制单元104会再配置区块c2/c3用作连续/零散数据的接收。区块c0/c1的映射表f2h至映射表h2f封存可安插在区块c2/c3的操作空档。复电程序中,控制单元104若自系统资讯区块池214获知区块c2/c3存在,则步骤s204扫描需包括区块c2/c3扫描。若区块c2/c3不存在,则控制单元104是扫描区块c0/c1重建。

举凡在数据储存装置的复电程序中,根据单发完成写入操作的尺寸(n页)而做的数据可靠度判断,都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及非挥发式存储器操作方法。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1