著录项信息
专利名称 | 存储器储存装置、存储器控制器与数据写入方法 |
申请号 | CN201110235831.3 | 申请日期 | 2011-08-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-03-06 | 公开/公告号 | CN102955751A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F13/16 | IPC分类号 | G;0;6;F;1;3;/;1;6;;;G;0;6;F;1;2;/;0;8查看分类表>
|
申请人 | 群联电子股份有限公司 | 申请人地址 | 中国台湾苗栗县竹南镇群义路1号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 群联电子股份有限公司 | 当前权利人 | 群联电子股份有限公司 |
发明人 | 赵伟程 |
代理机构 | 北京同立钧成知识产权代理有限公司 | 代理人 | 臧建明 |
摘要
一种存储器储存装置、存储器控制器与数据写入方法。此存储器储存装置包括缓冲存储器与可复写式非易失性存储器芯片,可复写式非易失性存储器芯片包括缓存单元与多个实体区块。此方法包括将接收自主机系统的第一数据暂存至缓冲存储器,利用第一数据传输指令将缓冲存储器中的第一数据传送至缓存单元后,产生写入完成信息以提供给主机系统,并将缓存单元中的第一数据写入至上述实体区块中的第一实体区块。若期间检测到发生数据写入失败,利用第二数据传输指令将保留在缓存单元的第一数据写入至上述实体区块中的第二实体区块。
1.一种数据写入方法,用于一存储器储存装置,该存储器储存装置包括一缓冲存储器与一可复写式非易失性存储器芯片,该可复写式非易失性存储器芯片包括一缓存单元与多个实体区块,该方法包括:
将接收自一主机系统的一第一数据暂存至该缓冲存储器;
利用一第一数据传输指令将该缓冲存储器中的该第一数据传送至该缓存单元后,产生一写入完成信息用以提供给该主机系统;
将该缓存单元中的该第一数据写入至该些实体区块中的一第一实体区块;
判断该缓存单元中的该第一数据写入至该第一实体区块是否失败;以及若是,则利用一第二数据传输指令,将保留在该缓存单元的该第一数据写入至该些实体区块中的一第二实体区块,其中该第一数据传输指令不同于该第二数据传输指令,且该第二数据传输指令不清除该缓存单元中的该第一数据;
在将该缓冲存储器中的该第一数据传送至该缓存单元之后,该可复写式非易失性存储器芯片处于一忙碌状态;
若该可复写式非易失性存储器芯片处于该忙碌状态,将接收自该主机系统的一第二数据暂存至该缓冲存储器并等待该可复写式非易失性存储器芯片离开该忙碌状态;以及响应于该可复写式非易失性存储器芯片离开该忙碌状态,利用该第一数据传输指令将该缓冲存储器中的该第二数据传送至该缓存单元。
2.根据权利要求1所述的数据写入方法,其中该数据写入失败是指一实体页面的写入失败。
3.根据权利要求1所述的数据写入方法,其中在将保留在该缓存单元的该第一数据写入至该第二实体区块的步骤之后,该方法还包括:
将该第一实体区块中的至少一有效数据以及被写入至该第二实体区块的该第一数据写入至该些实体区块中的一第三实体区块,其中该至少一有效数据是在该第一数据被写入至该第一实体区块之前便已被写入至该第一实体区块的数据。
4.根据权利要求1所述的数据写入方法,其中该第一数据传输指令是先清除原储存于该缓存单元中的数据,再将该第一数据传送至该缓存单元。
5.根据权利要求1所述的数据写入方法,其中在将该缓冲存储器中的该第一数据传送至该缓存单元后,该方法还包括:
清除该缓冲存储器。
6.一种存储器控制器,用于管理一存储器储存装置中的一可复写式非易失性存储器芯片,该存储器控制器包括:
一主机系统接口,用以耦接一主机系统;
一存储器接口,用以耦接该可复写式非易失性存储器芯片,其中该可复写式非易失性存储器芯片包括一缓存单元与多个实体区块;
一缓冲存储器;以及
一存储器管理电路,耦接至该主机系统接口、该存储器接口与该缓冲存储器,该存储器管理电路用以将接收自该主机系统的一第一数据暂存至该缓冲存储器,利用一第一数据传输指令将该缓冲存储器中的该第一数据传送至该缓存单元,并命令该可复写式非易失性存储器芯片将该缓存单元中的该第一数据写入至该些实体区块中的一第一实体区块,其中该存储器管理电路在该第一数据传送至该缓存单元后,产生一写入完成信息用以提供给该主机系统,
该可复写式非易失性存储器芯片在将该缓存单元中的该第一数据写入至该第一实体区块的期间,检测是否发生一数据写入失败,
若是,则该存储器管理电路利用一第二数据传输指令命令该可复写式非易失性存储器芯片将保留在该缓存单元的该第一数据写入至该些实体区块中的一第二实体区块,其中该第一数据传输指令不同于该第二数据传输指令,且该第二数据传输指令不清除该缓存单元中的该第一数据,
在将该缓冲存储器中的该第一数据传送至该缓存单元之后,该可复写式非易失性存储器芯片处于一忙碌状态,
若该可复写式非易失性存储器芯片处于该忙碌状态,该存储器管理电路将接收自该主机系统的一第二数据暂存至该缓冲存储器并等待该可复写式非易失性存储器芯片离开该忙碌状态,
响应于该可复写式非易失性存储器芯片离开该忙碌状态,该存储器管理电路利用该第一数据传输指令将该缓冲存储器中的该第二数据传送至该缓存单元。
7.根据权利要求6所述的存储器控制器,其中该数据写入失败是指一实体页面的写入失败。
8.根据权利要求6所述的存储器控制器,其中该存储器管理电路命令该可复写式非易失性存储器芯片将该第一实体区块中的至少一有效数据以及被写入至该第二实体区块的该第一数据写入至该些实体区块中的一第三实体区块,其中该至少一有效数据是在该第一数据被写入至该第一实体区块之前便已被写入至该第一实体区块的数据。
9.根据权利要求6所述的存储器控制器,其中该存储器管理电路利用该第一数据传输指令先清除原储存于该缓存单元中的数据,再将该第一数据传送至该缓存单元。
10.根据权利要求6所述的存储器控制器,其中该存储器管理电路在将该缓冲存储器中的该第一数据传送至该缓存单元后,清除该缓冲存储器。
11.一种存储器储存装置,包括:
一可复写式非易失性存储器芯片,包括一缓存单元与多个实体区块;
一连接器,用以耦接一主机系统;以及
一存储器控制器,耦接至该可复写式非易失性存储器芯片与该连接器,该存储器控制器包括一缓冲存储器,
其中该存储器控制器用以将接收自该主机系统的一第一数据暂存至该缓冲存储器,利用一第一数据传输指令将该缓冲存储器中的该第一数据传送至该缓存单元,并命令该可复写式非易失性存储器芯片将该缓存单元中的该第一数据写入至该些实体区块中的一第一实体区块,其中该存储器控制器在该第一数据传送至该缓存单元后,产生一写入完成信息用以提供给该主机系统,
该可复写式非易失性存储器芯片在将该缓存单元中的该第一数据写入至该第一实体区块的期间,检测是否发生一数据写入失败,
若是,则该存储器控制器利用一第二数据传输指令命令该可复写式非易失性存储器芯片将保留在该缓存单元的该第一数据写入至该些实体区块中的一第二实体区块,其中该第一数据传输指令不同于该第二数据传输指令,且该第二数据传输指令不清除该缓存单元中的该第一数据,
在将该缓冲存储器中的该第一数据传送至该缓存单元之后,该可复写式非易失性存储器芯片处于一忙碌状态,
若该可复写式非易失性存储器芯片处于该忙碌状态,该存储器控制器将接收自该主机系统的一第二数据暂存至该缓冲存储器并等待该可复写式非易失性存储器芯片离开该忙碌状态,
响应于该可复写式非易失性存储器芯片离开该忙碌状态,该存储器控制器利用该第一数据传输指令将该缓冲存储器中的该第二数据传送至该缓存单元。
12.根据权利要求11所述的存储器储存装置,其中该数据写入失败是指一实体页面的写入失败。
13.根据权利要求11所述的存储器储存装置,其中该存储器控制器命令该可复写式非易失性存储器芯片将该第一实体区块中的至少一有效数据以及被写入至该第二实体区块的该第一数据写入至该些实体区块中的一第三实体区块,其中该至少一有效数据是在该第一数据被写入至该第一实体区块之前便已被写入至该第一实体区块的数据。
14.根据权利要求11所述的存储器储存装置,其中该存储器控制器利用该第一数据传输指令先清除原储存于该缓存单元中的数据,再将该第一数据传送至该缓存单元。
15.根据权利要求11所述的存储器储存装置,其中该存储器控制器在将该缓冲存储器中的该第一数据传送至该缓存单元后,清除该缓冲存储器。
存储器储存装置、存储器控制器与数据写入方法\n技术领域\n[0001] 本发明涉及一种存储器储存装置的错误处理方法,且尤其涉及一种处理写入失败的方法与实行该方法的存储器储存装置与存储器控制器。\n背景技术\n[0002] 闪速存储器(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等特性,故被广泛地应用于各种电子装置。市面上如记忆卡、随身碟或固态硬盘等储存装置也是以闪速存储器作为其中的储存媒体。\n[0003] 图1是传统闪速存储器储存装置的概要方框图。如图1所示,主机系统110是通过连接器121与闪速存储器储存装置120耦接,从而读取储存在闪速存储器储存装置120中的数据,或将数据写入至闪速存储器储存装置120。一般来说,当主机系统110要将数据写入闪速存储器储存装置120时,所欲写入的数据会先被写入存储器控制器123的缓冲存储器1231。接着,存储器控制器123将缓冲存储器1231中的数据传送至闪速存储器芯片125的缓冲区1251,并命令闪速存储器芯片125将缓冲区1251中的数据写入至存储单元1253。\n在闪速存储器芯片125将表示数据已被正确写入存储单元1253的信息回复给存储器控制器123之后,存储器控制器123才会通知主机系统110数据写入动作已经完成。其中,当闪速存储器芯片125表示数据已写入有误时,存储器控制器123会将错误信息告知主机系统\n110,并请求主机系统110再传送此笔数据至存储器控制器123。而在主机系统110接到存储器控制器123的通知之前,并不能对闪速存储器储存装置120下达其他指令。故主机系统110将花费时间在等待数据正确写入至存储单元1253,这将降低主机系统110与闪速存储器储存装置120间的数据处理速度。因此如何在节省成本的考量下,提高数据处理速度便是此领域技术人员所致力的目标。\n发明内容\n[0004] 有鉴于此,本发明提供一种数据写入方法、存储器控制器以及存储器储存装置,能有效地处理将数据写入存储器储存装置时所发生的错误。\n[0005] 本发明提出一种数据写入方法,用于存储器储存装置,此存储器储存装置包括缓冲存储器与可复写式非易失性存储器芯片,此可复写式非易失性存储器芯片包括缓存单元与多个实体区块。此方法包括将接收自主机系统的第一数据暂存至缓冲存储器,利用第一数据传输指令将缓冲存储器中的第一数据传送至缓存单元后,产生写入完成信息用以提供给主机系统。以及将缓存单元中的第一数据写入至上述实体区块中的第一实体区块,并且判断缓存单元中的第一数据写入至第一实体区块是否失败。若发生数据写入失败,则利用第二数据传输指令将保留在缓存单元的第一数据写入至上述实体区块中的第二实体区块。\n其中,第一数据传输指令不同于第二数据传输指令,且第二数据传输指令不清除缓存单元中的第一数据。\n[0006] 从另一观点来看,本发明提出一种存储器控制器,用于管理存储器储存装置中的可复写式非易失性存储器芯片,此存储器控制器包括主机系统接口、存储器接口、缓冲存储器,以及存储器管理电路。其中,主机系统接口用以耦接主机系统。存储器接口用以耦接可复写式非易失性存储器芯片,此可复写式非易失性存储器芯片包括缓存单元与多个实体区块。存储器管理电路耦接至主机系统接口、存储器接口与缓冲存储器,存储器管理电路用以将接收自主机系统的第一数据暂存至缓冲存储器,利用第一数据传输指令将缓冲存储器中的第一数据传送至缓存单元后,并命令可复写式非易失性存储器芯片将缓存单元中的第一数据写入至上述实体区块中的第一实体区块。其中,存储器管理电路在第一数据传送至缓存单元后,产生写入完成信息用以提供给主机系统。而可复写式非易失性存储器芯片在将缓存单元中的第一数据写入至第一实体区块的期间,检测是否发生数据写入失败。若发生数据写入失败,则存储器管理电路利用第二数据传输指令命令可复写式非易失性存储器芯片将保留在缓存单元的第一数据写入至上述实体区块中的第二实体区块。其中,第一数据传输指令不同于第二数据传输指令,且第二数据传输指令不清除缓存单元中的第一数据。\n[0007] 从又一观点来看,本发明提出一种存储器储存装置,包括可复写式非易失性存储器芯片、连接器,以及存储器控制器。其中,可复写式非易失性存储器芯片包括缓存单元与多个实体区块。连接器用以耦接主机系统。存储器控制器耦接至可复写式非易失性存储器芯片与连接器,存储器控制器包括缓冲存储器。其中,存储器控制器用以将接收自主机系统的第一数据暂存至缓冲存储器,并利用第一数据传输指令将缓冲存储器中的第一数据传送至缓存单元,以及命令可复写式非易失性存储器芯片将缓存单元中的第一数据写入至上述实体区块中的第一实体区块。其中,存储器控制器在第一数据传送至缓存单元后,便产生写入完成信息用以提供给主机系统。而可复写式非易失性存储器芯片在将缓存单元中的第一数据写入至第一实体区块的期间,检测是否发生数据写入失败。若发生数据写入失败,则存储器控制器命令可复写式非易失性存储器芯片将保留在缓存单元的第一数据写入至上述实体区块中的第二实体区块。其中,第一数据传输指令不同于第二数据传输指令,且第二数据传输指令不清除缓存单元中的第一数据。\n[0008] 基于上述,本发明能利用两种不同的数据传输指令将数据写入可复写式非易失性存储器芯片的实体区块。在发生数据写入失败的情况下,利用不清除可复写式非易失性存储器芯片的缓存单元的数据传输指令来快速地将保留在缓存单元中的数据写入至另一实体区块。此外,本发明让主机系统能在一写入指令实际完成之前,便预先下达另一写入指令,从而提升存储器储存装置的数据写入速度。\n[0009] 为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。\n附图说明\n[0010] 图1是传统闪速存储器储存装置的概要方框图。\n[0011] 图2A是根据本发明一范例实施例显示的使用存储器储存装置的主机系统的示意图。\n[0012] 图2B是根据本发明范例实施例所显示的计算机、输入/输出装置与存储器储存装置的示意图。\n[0013] 图2C是根据本发明另一范例实施例所显示的主机系统与存储器储存装置的示意图。\n[0014] 图3是图2A所示的存储器储存装置的概要方框图。\n[0015] 图4是根据本发明一范例实施例显示的存储器控制器的概要方框图。\n[0016] 图5是根据本发明一范例实施例所显示的可复写式非易失性存储器芯片的概要方框图。\n[0017] 图6、7是根据本发明一范例实施例所显示的存储器管理电路对可复写式非易失性存储器芯片下达指令的示意图。\n[0018] 图8A~8C是根据本发明一范例实施例显示的可复写式非易失性存储器芯片的运作示意图。\n[0019] 图9是根据本发明一范例实施例显示的数据写入方法的流程图。\n[0020] 附图标记:\n[0021] 110、2000:主机系统\n[0022] 120:闪速存储器储存装置\n[0023] 121、202:连接器\n[0024] 123、204:存储器控制器\n[0025] 1231、2047:缓冲存储器\n[0026] 125:闪速存储器芯片\n[0027] 1251:缓冲区\n[0028] 1253:存储单元\n[0029] 2100:计算机\n[0030] 2102:微处理器\n[0031] 2104:随机存取存储器\n[0032] 2106:输入/输出装置\n[0033] 2108:系统总线\n[0034] 2110:数据传输接口\n[0035] 2202:鼠标\n[0036] 2204:键盘\n[0037] 2206:显示器\n[0038] 2208:打印机\n[0039] 2212:随身碟\n[0040] 2214:记忆卡\n[0041] 2216:固态硬盘\n[0042] 2310:数码相机\n[0043] 2312:SD卡\n[0044] 2314:MMC卡\n[0045] 2316:记忆棒\n[0046] 2318:CF卡\n[0047] 2320:嵌入式储存装置\n[0048] 200:存储器储存装置\n[0049] 206:可复写式非易失性存储器芯片\n[0050] 2041:主机系统接口\n[0051] 2043:存储器管理电路\n[0052] 2045:存储器接口\n[0053] 3002:错误检查与校正电路\n[0054] 3004:电源管理电路\n[0055] 510(0)~510(N)、510(a)、510(b)、510(c):实体区块\n[0056] 520:缓存单元\n[0057] 600:第一数据传输指令\n[0058] 700:第二数据传输指令\n[0059] C1、C2、C3:指令\n[0060] ADD、ADD’:实体地址\n[0061] DATA:数据\n[0062] S910~S960:本发明的一实施例所述的数据写入方法的各步骤\n具体实施方式\n[0063] 一般而言,存储器储存装置(亦称,存储器储存系统)包括存储器芯片与控制器(亦称,控制电路)。通常存储器储存装置会与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。另外,亦有存储器储存装置是包括嵌入式存储器与可执行于主机系统上以实质地作为此嵌入式存储器的控制器的软件。\n[0064] 图2A是根据本发明一范例实施例所显示的使用存储器储存装置的主机系统的示意图。\n[0065] 主机系统2000包括计算机2100与输入/输出(Input/Output,I/O)装置2106。\n计算机2100包括微处理器2102、随机存取存储器(Random Access Memory,RAM)2104、系统总线2108以及数据传输接口2110。输入/输出装置2106包括如图2B所示的鼠标2202、键盘2204、显示器2206与打印机2208。必须了解的是,图2B所示的装置非限制输入/输出装置2106,输入/输出装置2106可还包括其他装置。\n[0066] 在本发明范例实施例中,存储器储存装置200是通过数据传输接口2110与主机系统2000的其他元件耦接。藉由微处理器2102、随机存取存储器2104以及输入/输出装置\n2106的运作,主机系统2000可将数据写入至存储器储存装置200,或从存储器储存装置200中读取数据。例如,存储器储存装置200可以是如图2B所示的记忆卡2214、随身碟2212、或固态硬盘(Solid State Drive,SSD)2216。\n[0067] 一般而言,主机系统2000为可储存数据的任意系统。虽然在本范例实施例中主机系统2000是以计算机系统来作说明,然而,在本发明另一范例实施例中,主机系统2000亦可以是手机、数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机2310时,存储器储存装置则为其所使用的安全数码(Secure Digital,SD)卡2312、多媒体记忆(Multimedia Card,MMC)卡2314、记忆棒(Memory Stick)2316、小型闪速(Compact Flash,CF)卡2318或嵌入式储存装置2320(如图2C所示)。嵌入式储存装置2320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。\n[0068] 图3是图2A所示的存储器储存装置200的方框图。请参照图3,存储器储存装置\n200包括连接器202、存储器控制器204与可复写式非易失性存储器芯片206。\n[0069] 连接器202耦接至存储器控制器204,并且用以耦接主机系统2000。在本范例实施例中,连接器202所支援的传输接口种类为串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口。然而在其他范例实施例中,连接器202的传输接口种类也可以是通用串行总线(Universal Serial Bus,USB)接口、多媒体储存卡(Multimedia Card,MMC)接口、平行高级技术附件(Parallel Advanced Technology Attachment,PATA)接口、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394接口、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)接口、安全数字(Secure Digital,SD)接口、记忆棒(Memory Stick,MS)接口、小型闪速(Compact Flash,CF)接口,或整合驱动电子(Integrated Drive Electronics,IDE)接口等任何适用的接口,在此并不加以限制。\n[0070] 存储器控制器204会执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并根据主机系统2000的主机指令在可复写式非易失性存储器芯片206中进行数据的写入、读取与抹除等运作。其中,存储器控制器204还特别用以根据本范例实施例的数据写入方法而能处理在写入数据时发生错误的情况。本范例实施例的数据写入方法将于后配合图示再作说明。\n[0071] 可复写式非易失性存储器芯片206耦接至存储器控制器204。举例来说,可复写式非易失性存储器芯片206为多阶存储单元(Multi Level Cell,MLC)NAND闪速存储器芯片,但本发明不限于此,可复写式非易失性存储器芯片206也可以是单阶存储单元(Single Level Cell,SLC)NAND闪速存储器芯片、其他闪速存储器芯片或任何具有相同特性的存储器芯片。\n[0072] 图4是根据本发明一范例实施例所显示的存储器控制器的概要方框图。请参照图\n4,存储器控制器204包括主机系统接口2041、存储器管理电路2043、存储器接口2045,以及缓冲存储器2047。\n[0073] 主机系统接口2041耦接至存储器管理电路2043,并通过连接器202以耦接主机系统2000。主机系统接口2041用以接收与识别主机系统2000所传送的指令与数据。据此,主机系统2000所传送的指令与数据会通过主机系统接口2041而传送至存储器管理电路2043。在本范例实施例中,主机系统接口2041对应连接器202而为SATA接口,而在其他范例实施例中,主机系统接口2041也可以是USB接口、MMC接口、PATA接口、IEEE 1394接口、PCI Express接口、SD接口、MS接口、CF接口、IDE接口或符合其他接口标准的接口。\n[0074] 存储器管理电路2043用以控制存储器控制器204的整体运作。具体来说,存储器管理电路2043具有多个控制指令,在存储器储存装置200运作时,上述控制指令会被执行以实现本范例实施例的数据写入方法。\n[0075] 在一范例实施例中,存储器管理电路2043的控制指令是以固件型式来实作。例如,存储器管理电路2043具有微处理器单元(未显示)与只读存储器(未显示),且上述控制指令是被烧录在只读存储器中。当存储器储存装置200运作时,上述控制指令会由微处理器单元来执行以完成本范例实施例的数据写入方法。\n[0076] 在本发明另一范例实施例中,存储器管理电路2043的控制指令亦可以程序码型式储存于可复写式非易失性存储器芯片206的特定区域(例如,可复写式非易失性存储器芯片206中专用于存放系统数据的系统区)中。此外,存储器管理电路2043具有微处理器单元(未显示)、只读存储器(未显示)及随机存取存储器(未显示)。其中,只读存储器具有驱动码段,并且当存储器控制器204被使能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器芯片206中的控制指令载入至存储器管理电路2043的随机存取存储器中。之后,微处理器单元会运转上述控制指令以执行本范例实施例的数据写入方法。此外,在本发明另一范例实施例中,存储器管理电路2043的控制指令亦可以一硬件型式来实作。\n[0077] 存储器接口2045耦接至存储器管理电路2043,以使存储器控制器204与可复写式非易失性存储器芯片206相耦接。据此,存储器控制器204可对可复写式非易失性存储器芯片206进行相关运作。也就是说,欲写入至可复写式非易失性存储器芯片206的数据会经由存储器接口2045转换为可复写式非易失性存储器芯片206所能接受的格式。\n[0078] 存储器控制器204还包括缓冲存储器2047。缓冲存储器2047可以是静态随机存取存储器(Static Random Access Memory,SRAM)、或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等,本发明并不加以限制。缓冲存储器2047耦接至存储器管理电路\n2043,用以暂存来自于主机系统2000的数据,或暂存来自于可复写式非易失性存储器芯片\n206的数据。\n[0079] 在本发明的另一范例实施例中,错误检查与校正电路3002耦接至存储器管理电路2043,用以执行错误检查与校正程序以确保数据的正确性。具体而言,当存储器管理电路2043接收到来自主机系统2000的写入指令时,错误检查与校正电路3002会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),且存储器管理电路2043会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器芯片206。之后当存储器管理电路2043从可复写式非易失性存储器芯片206中读取数据时,会同时读取此数据对应的错误检查与校正码,且错误检查与校正电路3002会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。\n[0080] 在本发明又一范例实施例中,存储器控制器204还包括电源管理电路3004。电源管理电路3004耦接至存储器管理电路2043,用以控制存储器储存装置200的电源。\n[0081] 图5是根据本发明一范例实施例所显示的可复写式非易失性存储器芯片的概要方框图。如图5所示,可复写式非易失性存储器芯片206包括多个实体区块510(0)~\n510(N)与一缓存单元520。其中,N为正整数且每一实体区块包括多个实体页面。在本范例实施例中,缓存单元520的大小例如是与一个实体页面的大小相等。由于可复写式非易失性存储器芯片206的写入是以实体页面为单位,而抹除是以实体区块为单位,因此可复写式非易失性存储器芯片206所包括的实体区块510(0)~510(N)会以轮替方式来储存数据。详言之,存储器控制器204中的存储器管理电路2043会将可复写式非易失性存储器芯片206中的实体区块510(0)~510(N)逻辑地分组为数据区、闲置区、系统区与取代区。\n[0082] 逻辑上属于数据区与闲置区的实体区块是用以储存来自于主机系统2000的数据。具体来说,属于数据区的实体区块是被视为已储存数据的实体区块,而属于闲置区的实体区块是用以替换数据区的实体区块。换句话说,闲置区的实体区块为空或可使用的实体区块(无记录数据或标记为已没用的无效数据)。当从主机系统2000接收到写入指令与欲写入的数据时,存储器管理电路2043会从闲置区中提取实体区块,并且将数据写入至所提取的实体区块中,以替换数据区的实体区块。\n[0083] 逻辑上属于系统区的实体区块是用以记录系统数据。举例来说,系统数据包括关于可复写式非易失性存储器芯片206的制造商与型号等信息。\n[0084] 逻辑上属于取代区的实体区块是用以在数据区、闲置区或系统区中的实体区块损毁时,取代损坏的实体区块。具体而言,倘若取代区中仍存有正常的实体区块且数据区的实体区块损坏时,存储器管理电路2043会从取代区中提取正常的实体区块来更换数据区中损坏的实体区块。\n[0085] 为了让主机系统2000能对可复写式非易失性存储器芯片206进行存取,存储器管理电路2043会配置数个逻辑区块以映射数据区中的实体区块。其中每一逻辑区块包括多个逻辑页面,而逻辑区块中的逻辑页面会依序映射数据区的实体区块中的实体页面。\n[0086] 详言之,存储器管理电路2043将所配置的该些逻辑区块提供给主机系统2000,并维护逻辑区块-实体区块映射表(logical block-physical block mapping table)以记录逻辑区块与属于数据区的实体区块的映射关系。因此,当主机系统2000欲存取一逻辑存取地址时,存储器管理电路2043会将此逻辑存取地址转换为对应的逻辑区块的逻辑页面,再通过逻辑区块-实体区块映射表找到其所映射的实体页面来进行存取。\n[0087] 缓存单元520则是用以暂存在存储器控制器204与可复写式非易失性存储器芯片\n206的实体区块之间传输的数据。在本范例实施例中,当主机系统2000下达写入指令而欲将一数据写入存储器储存装置200,此写入数据首先会被暂存至存储器控制器204中的缓冲存储器2047。尔后,存储器管理电路2043会将缓冲存储器2047中的写入数据传送至缓存单元520,并命令可复写式非易失性存储器芯片206将缓存单元520中的写入数据写入(program)至实体区块510(0)~510(N)中的某一实体区块。\n[0088] 具体来说,存储器管理电路2043会对可复写式非易失性存储器芯片206下达如图\n6所示的第一数据传输指令600。请参阅图6,第一数据传输指令600是由指令C1、实体地址ADD、数据DATA,以及指令C2所组成。其中,为了将写入数据传送至缓存单元520,存储器管理电路2043会先通过指令C1清空缓存单元520(亦即,原本储存在缓存单元520中的数据都会被清除)。而实体地址ADD则是写入数据要被写入的起始实体地址,存储器管理电路\n2043可根据来自主机系统2000的写入指令所对应的逻辑存取地址以及逻辑区块-实体区块映射表来转换出起始实体地址。数据DATA则是写入数据的内容。而指令C2则是用以命令可复写式非易失性存储器芯片206根据实体地址ADD将已被传送至缓存单元520的写入数据写入到实体区块510(0)~510(N)中的某一实体区块。\n[0089] 可复写式非易失性存储器芯片206在接收到指令C2后,便会开始进行将缓存单元\n520中的写入数据写入至实体区块的动作。倘若在此过程中没有发生数据写入失败(亦即,写入数据被正确地写入至某一实体区块),可复写式非易失性存储器芯片206会产生处理无误的信息信息,以让存储器管理电路2043得知写入成功。详言之,在本范例实施例中,在写入数据已被正确写入实体区块后,可复写式非易失性存储器芯片206可修改状态暂存器(status register)的内容或改变等待/忙碌脚位(ready/busy pin)的状态来表示写入成功。尔后,存储器管理电路2043要确认写入状态时,会下达指令去读取状态暂存器或等待/忙碌脚位,而根据此时状态暂存器的内容或等待/忙碌脚位的状态来判断写入成功,至此完成主机系统2000所下达写入指令。\n[0090] 然而,倘若可复写式非易失性存储器芯片206在将缓存单元520中的写入数据写入至实体区块的过程中检测到有发生数据写入失败,可复写式非易失性存储器芯片206会产生错误信息以让存储器管理电路2043于确认写入状态时得知。随后,存储器管理电路\n2043会命令可复写式非易失性存储器芯片206将仍保留在缓存单元520中的写入数据写入至实体区块510(0)~510(N)中的另一个实体区块。举例来说,存储器管理电路2043会对可复写式非易失性存储器芯片206下达如图7所示的第二数据传输指令700。如图7所示,第二数据传输指令700是由指令C3、实体地址ADD’,以及指令C2所组成。其中,指令C3表示不清除缓存单元520,因此先前就已被传送到缓存单元520的写入数据将会继续保留在缓存单元520中。也就是说,存储器管理电路2043不需要再次传送写入数据。而实体地址ADD’表示这次要将写入数据写入的起始实体地址。指令C2则是命令可复写式非易失性存储器芯片206根据实体地址ADD’将缓存单元520中的写入数据写入至实体区块510(0)~\n510(N)中的另一实体区块。\n[0091] 在本范例实施例中,可复写式非易失性存储器芯片206会因应存储器管理电路\n2043所下达的第一数据传输指令,将缓存单元520中的写入数据写入至实体区块510(0)~\n510(N)中的某一实体区块。期间倘若发生数据写入失败,存储器管理电路2043会对可复写式非易失性存储器芯片206下达不会清除缓存单元520的第二数据传输指令,从而利用仍保留在缓存单元520中的写入数据继续完成数据写入的动作。\n[0092] 值得一提的是,本范例实施例所述的数据写入失败可是指一个实体页面的写入失败,其中写入失败可指数据写入不成功或写入的数据有误。一旦检测到数据写入失败,包含发生写入失败的实体页面的实体区块将不能继续用来写入数据。因此,此实体区块中的所有有效数据(亦即,在写入数据被写入至此实体区块之前,便已被写入至此实体区块的数据)应被写入到其他实体区块。\n[0093] 图8A~8C是根据本发明一范例实施例显示的可复写式非易失性存储器芯片的运作示意图。如图8A所示,假设可复写式非易失性存储器芯片206正因应存储器管理电路\n2043的命令而将缓存单元520中的写入数据写入至实体区块510(a)中的第18个实体页面。倘若此时发生数据写入失败,可复写式非易失性存储器芯片206会产生错误信息以供存储器管理电路2043确认。存储器管理电路2043在确认错误信息后,例如会以图7所示的指令来对可复写式非易失性存储器芯片206下达命令。此时如图8B所示,可复写式非易失性存储器芯片206再次因应存储器管理电路2043的命令而将保留在缓存单元520中的写入数据写入至另一实体区块(例如,实体区块510(b)中的第0个实体页面)。在存储器管理电路2043检测可复写式非易失性存储器芯片206提供的状态信息而确认上述动作完成之后,存储器管理电路2043会命令可复写式非易失性存储器芯片206将实体区块510(a)中的所有有效数据(亦即,记录在第0-17个实体页面中的数据),以及被写入至实体区块\n510(b)的第0个实体页面的写入数据一并写入到另一个实体区块(例如图8C的实体区块\n510(c)所示)。在完成上述动作后,实体区块510(a)与实体区块510(b)可被关联至闲置区以供后续使用。\n[0094] 在本范例实施例中,一旦存储器管理电路2043将缓冲存储器2047中的写入数据传送至缓存单元520,存储器管理电路2043便会产生一写入完成信息用以提供给主机系统\n2000,由此快速地回应主机系统2000已完成其下达的写入指令。但必须特别说明的是,在存储器管理电路2043将缓冲存储器2047中的写入数据传送至缓存单元520后,可复写式非易失性存储器芯片206便会处于忙碌(busy)状态,而主机系统2000在可复写式非易失性存储器芯片206处于忙碌状态时,并不能存取可复写式非易失性存储器芯片206中的数据。\n[0095] 但由于存储器管理电路2043在将缓冲存储器2047中的写入数据传送至缓存单元\n520后便会清除缓冲存储器2047,因此倘若主机系统2000在可复写式非易失性存储器芯片\n206仍处于忙碌状态时下达了新写入指令,存储器管理电路2043会先将新写入指令所对应的写入数据先暂存至缓冲存储器2047。之后,当可复写式非易失性存储器芯片206离开忙碌状态,存储器管理电路2043再利用第一数据传输指令将缓冲存储器2047中的新写入数据写入至可复写式非易失性存储器芯片206。\n[0096] 为了方便说明,以下将已被传送至缓存单元520的写入数据称之为第一数据。在可复写式非易失性存储器芯片206将缓存单元520中的第一数据写入至某一实体区块的期间,倘若主机系统2000下达了新写入指令而欲将第二数据写入至可复写式非易失性存储器芯片206,存储器管理电路2043会将接收自主机系统2000的第二数据暂存在缓冲存储器\n2047,并等待可复写式非易失性存储器芯片206离开忙碌状态(亦即,完成将第一数据写入至一实体区块的动作),接着才利用第一数据传输指令先清除原储存于缓存单元520中的第一数据,再将缓冲存储器2047中的第二数据传送至缓存单元520。由于将第二数据写入至可复写式非易失性存储器芯片206的实体区块的方式与前述实施例相同或相似,故在此不再赘述。\n[0097] 图9是根据本发明一范例实施例显示的数据写入方法的流程图。\n[0098] 请参阅图9,当主机系统2000欲将第一数据写入至存储器储存装置200,首先如步骤S910所示,存储器管理电路2043通过主机系统接口2041以及连接器202接收来自主机系统的第一数据,并将第一数据暂存至缓冲存储器2047。\n[0099] 接着在步骤S920中,存储器管理电路2043在利用第一数据传输指令将缓冲存储器2047中的第一数据传送至可复写式非易失性存储器芯片206的缓存单元520后,便产生一写入完成信息用以提供给主机系统2000,据此加快回复主机系统2000的速度。\n[0100] 接下来如步骤S930所示,可复写式非易失性存储器芯片206因应存储器管理电路\n2043的命令将缓存单元520中的第一数据写入至第一实体区块。\n[0101] 如步骤S940所示,判断可复写式非易失性存储器芯片206写入第一数据是否失败。\n[0102] 若没有发生数据写入失败,表示第一数据已被正确地写入第一实体区块,故结束本范例实施例的数据写入方法的流程。然而,倘若有发生数据写入失败,接着如步骤S950所示,存储器管理电路2043利用第二数据传输指令命令可复写式非易失性存储器芯片206将保留在缓存单元520的第一数据写入至第二实体区块。在本范例实施例中,第一数据传输指令不同于第二数据传输指令,且第二数据传输指令不清除缓存单元520中的第一数据。\n[0103] 在另一范例实施例中,最后可再如步骤S960所示,可复写式非易失性存储器芯片\n206可将第一实体区块中的所有有效数据以及被写入至第二实体区块的第一数据一并写入至第三实体区块。据此完成数据写入方法的流程。\n[0104] 综上所述,本发明所述的数据写入方法、存储器控制器以及存储器储存装置在发生数据写入失败时,利用特殊的数据传输指令不去清除暂存在可复写式非易失性存储器芯片的缓存单元中的写入数据,而以缓存单元中的写入数据继续完成数据写入动作。如此一来,便不需要增大存储器控制器中缓冲存储器的容量,而能兼具处理速度与成本的考量来处理写入数据时所发生的错误。\n[0105] 虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许更动与润饰,而不脱离本发明的精神和范围。
法律信息
- 2015-11-18
- 2013-04-03
实质审查的生效
IPC(主分类): G06F 13/16
专利申请号: 201110235831.3
申请日: 2011.08.17
- 2013-03-06
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-05-18
|
2010-12-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |