CN102043725A - 用于闪存的数据写入方法及其控制器与储存系统 - Google Patents

用于闪存的数据写入方法及其控制器与储存系统 Download PDF

Info

Publication number
CN102043725A
CN102043725A CN 200910206069 CN200910206069A CN102043725A CN 102043725 A CN102043725 A CN 102043725A CN 200910206069 CN200910206069 CN 200910206069 CN 200910206069 A CN200910206069 A CN 200910206069A CN 102043725 A CN102043725 A CN 102043725A
Authority
CN
China
Prior art keywords
data
physical blocks
write
flash
error bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200910206069
Other languages
English (en)
Other versions
CN102043725B (zh
Inventor
游祥雄
黄意翔
吴宗霖
沈育仲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN200910206069.9A priority Critical patent/CN102043725B/zh
Publication of CN102043725A publication Critical patent/CN102043725A/zh
Application granted granted Critical
Publication of CN102043725B publication Critical patent/CN102043725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例提供了一种用于闪存的数据写入方法及其控制器与储存系统,用于将来自于主机系统的数据写入至闪存芯片中,其中此闪存芯片包括多个实体区块。本方法包括从主机系统中接收主机写入指令以及对应此主机写入指令的写入数据,并且执行此主机写入指令。本方法也包括在执行此主机写入指令期间向闪存芯片传送数据程序化指令来将此写入数据写入至实体区块中,以及判断储存于此实体区块中的数据是否存有错误位。因此,本数据写入方法可有效地确保所写入的数据的正确性。

Description

用于闪存的数据写入方法及其控制器与储存系统
技术领域
本发明涉及一种用于闪存的数据写入方法,且特别涉及一种能够有效地确保已正确将数据写入至闪存的用于闪存的数据写入方法以及使用此方法的闪存控制器与闪存储存系统。
背景技术
由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,最适合使用于由电池供电的可携式电子产品上。例如,固态硬盘就是一种以NAND闪存作为储存媒体的储存装置,并且已广泛配置于笔记型计算机中作为主要的储存装置。
闪存储存装置中的闪存具有多个实体区块(physical block),且每一实体区块具有多个实体页面(page),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,闪存依据每一存储单元可储存的位数可区分为单层存储单元(Single Level Cell,SLC)NAND闪存与多层存储单元(Multi Level Cell,MLC)NAND闪存。由于,在单层存储单元NAND闪存中,1个存储单元中所储存电荷是以一个位准来区分识别此存储单元所储存的位是“1”或“0”,因此,在SLC NAND闪存中每一个存储单元仅能储存1个位的数据。
随着闪存制程的进步,目前MLC NAND闪存已被发展出来。具体来说,在多层存储单元NAND闪存中,1个存储单元中所储存的电荷可被区分为多个位准。因此,在MLC NAND闪存中,1个存储单元可储存多个位的数据。因此,在相同存储单元数目下,MLC NAND闪存的页面数会是SLC NAND闪存的页面数的数倍。
由于在MLC NAND闪存中,1个存储单元可储存多个位的数据,因此,MLCNAND闪存的实体区块的程序化可分为多阶段。例如,以2层存储单元为例,实体区块的程序化可分为2阶段。第一阶段是下页(lower page)的程序化部分,其物理特性类似于SLC NAND闪存,在完成第一阶段之后才程序化上页(upper page),其中下页的程序化速度会快于上页。类似地,在8层存储单元或16层存储单元的案例中,存储单元包括更多个实体页面并且会以更多阶段来写入。
在MLC NAND闪存中每一阶段的程序化彼此会有耦合关系,因此,一般来说,MLC NAND闪存的可靠性是较SLC NAND闪存低。也就是说,在MLC NAND闪存中写入数据时发生错误的机率较高。特别是,随着多层存储单元闪存每一存储单元可储存的位数越多,发生错误的机率也越高。因此,如何确保在闪存所写入数据的正确性是此领域技术人员所致力的目标。
发明内容
本发明提供一种用于闪存的数据写入方法,其能够有效地确保写入至闪存的数据的正确性。
本发明提供一种闪存控制器,其能够有效地确保写入至闪存的数据的正确性。
本发明范例实施例提供一种闪存储存系统,其能够有效地确保写入至闪存的数据的正确性。
本发明提出一种用于闪存的数据写入方法,用于将来自于主机系统的数据写入至闪存芯片中,其中此闪存芯片包括多个实体区块。本数据写入方法包括配置一闪存控制器,从主机系统中接收主机写入指令以及对应此主机写入指令的写入数据,并且通过闪存控制器执行此主机写入指令。本数据写入方法也包括在执行此主机写入指令期间向闪存芯片传送一数据程序化指令来将此写入数据写入至其中一个实体区块中,以及在执行此主机写入指令期间向闪存芯片传送一指令来判断储存于此实体区块中的至少部分数据是否存有错误位。
本发明范例实施例提出一种闪存控制器,用于将来自于主机系统的数据写入至闪存芯片中,其中此闪存芯片包括多个实体区块。本闪存控制器包括微处理器单元、闪存接口单元、主机接口单元与内存管理单元。闪存接口单元电性连接至微处理器单元,并且用以电性连接至上述闪存芯片。主机接口单元电性连接至微处理器单元,用以电性连接至主机系统并且从主机系统中接收主机写入指令以及对应此主机写入指令的写入数据。内存管理单元电性连接至微处理器单元,用以在执行此主机写入指令期间向闪存芯片传送一数据程序化指令来将写入数据写入至其中一个实体区块中。此外,内存管理单元在执行此主机写入指令期间向闪存芯片传送一指令来判断储存于此实体区块中的至少部分数据是否存有错误位。
本范例实施例提出一种闪存储存系统,其包括闪存芯片、连接器与闪存控制器。闪存芯片具有多个实体区块。连接器用以至主机系统并且从主机系统中接收主机写入指令以及对应此主机写入指令的写入数据。闪存控制器电性连接至闪存芯片与连接器,用以在执行此主机写入指令期间向闪存芯片传送一数据程序化指令来将写入数据写入至其中一个实体区块中。此外,闪存控制器在执行此主机写入指令期间向闪存芯片传送一指令来判断储存于此实体区块中的至少部分数据是否存有错误位。
基于上述,本发明范例实施例的数据写入方法在执行主机写入指令时会判断写入至闪存中的数据是否存有错误位,由此确保数据的正确性。
下面通过具体实施例并结合附图对本发明做进一步的详细描述。
附图说明
图1A是根据本发明第一范例实施例绘示使用闪存储存装置的主机系统;
图1B是根据本发明范例实施例所绘示的计算机、输入/输出装置与闪存储存装置的示意图;
图1C是根据本发明另一范例实施例所绘示的主机系统与闪存储存装置的示意图;
图1D是绘示图1A所示闪存储存装置的概要方块图;
图2是根据本发明另一范例实施例所绘示的闪存控制器的概要方块图;
图3是根据本发明第一范例实施例所绘示的闪存芯片的方块图;
图4A~4C是根据本发明第一范例实施例所绘示的实体区块的运作示意图;
图5是根据本发明第一范例实施例所绘示用于闪存的数据写入方法的流程图;
图6是根据本发明第二范例实施例所绘示的闪存储存装置的概要方块图;
图7是根据本发明第二范例实施例所绘示用于闪存的数据写入方法的流程图。
附图标记说明:
1000:主机系统;        1100:计算机;
1102:微处理器;        1104:随机存取内存;
1106:输入/输出装置;   1108:系统总线;
1110:数据传输接口;    1202:鼠标;
1204:键盘;            1206:显示器;
1208:打印机;          1212:随身碟;
1214:记忆卡;          1216:固态硬盘;
1310:数位相机;        1312:SD卡;
1314:MMC卡;           1316:记忆棒;
1318:CF卡;            1320:嵌入式储存装置;
100:闪存储存装置;          102:连接器;
104:闪存控制器;            106:闪存芯片;
122-(0)~122(N):实体区块;  202:微处理器单元;
204:内存管理单元;          206:主机接口单元;
208:闪存接口单元;          210:错误校正单元;
292:缓冲存储器;            294:电源管理单元;
350-(0)~350-(H):逻辑区块;
S501、S503、S505、S507、S509、S511、S513、S515、S517、S519、S521、
S523:数据写入步骤;
600:闪存储存装置;          602:连接器;
604:闪存控制器;            606:闪存芯片;
612:微处理器单元;          614:内存管理单元;
616:主机接口单元;          618:闪存接口单元;
620:错误校正单元;
S701、S703、S705、S707、S709、S711、S713、S715、S717、S719、S721、
S723:数据写入步骤。
具体实施方式
闪存储存装置一般而言包括闪存芯片与控制器(也称,控制电路)。通常闪存储存装置会与主机系统一起使用,以使主机系统可将数据写入至闪存储存装置或从闪存储存装置中读取数据。另外,也有闪存储存装置是包括嵌入式闪存与可执行于主机系统上以实质地作为此嵌入式闪存的控制器的软件。
[第一范例实施例]
图1A是根据本发明第一范例实施例绘示使用闪存储存装置的主机系统。
请参照图1A,主机系统1000包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取内存(random access memory,RAM)1104、系统总线1108以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置不是限制输入/输出装置1106,输入/输出装置1106可还包括其它装置。
在本发明实施例中,闪存储存装置100是通过数据传输接口1110与主机系统1000的其它组件电性连接。通过微处理器1102、随机存取内存1104与输入/输出装置1106的处理主机系统1000可将数据写入至闪存储存装置100或从闪存储存装置100中读取数据。例如,闪存储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid State Drive,SSD)1216。
一般而言,主机系统1000为可储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中,主机系统1000也可以是数字相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数位相机1310时,闪存储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统1000的基板上。
图1D是绘示图1A所示闪存储存装置的概要方块图。
请参照图1D,闪存储存装置100包括连接器102、闪存控制器104与闪存芯片106。
连接器102是电性连接至闪存控制器104并且用以电性连接至主机系统1000。在本范例实施例中,连接器102为串行式进阶技术附加装置(Serial Advanced Technology Attachment,SATA)连接器。然而,必须了解的是本发明不限于此,连接器102也可以是并列式进阶技术附加装置(Parallel Advanced Technology Attachment,PATA)连接器、通用序列总线(Universal Serial Bus,USB)连接器、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394连接器、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)连接器、安全数字(secure digital,SD)接口连接器、记忆棒(Memory Sick,MS)接口连接器、多媒体储存卡(Multi Media Card,MMC)接口连接器、小型快闪(Compact Flash,CF)接口连接器、整合式驱动电子接口(Integrated Device Electronics,IDE)连接器或其它适合的连接器。
闪存控制器104会执行以硬件型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在闪存芯片106中进行数据的写入、读取与抹除等运作。闪存控制器104包括微处理器单元202、内存管理单元204、主机接口单元206、闪存接口单元208与错误校正单元210。
微处理器单元202为闪存控制器104的主控单元,用以与内存管理单元204、主机接口单元206、闪存接口单元208与错误校正单元210等协同合作以进行闪存储存装置100的各种运作。
内存管理单元204是电性连接至微处理器单元202,用以执行根据本范例实施例的数据写入机制与区块管理机制,内存管理单元204的运作将于以下配合图式作详细说明。
在本范例实施例中,内存管理单元204是以一韧体型式实作在闪存控制器104中。例如,将包括多个控制指令的内存管理单元204烧录至一程序内存(例如,只读存储器(Read Only Memory,ROM))中并且将此程序内存嵌入在闪存控制器104中,当闪存储存装置100运作时,内存管理单元204的多个控制指令会由微处理器单元202来执行以完成根据本发明实施例的数据写入机制与区块管理机制。
在本发明另一范例实施例中,内存管理单元204的控制指令也可以程序代码型式储存于闪存芯片106的特定区域(例如,闪存芯片中专用于存放系统数据的系统区)中。同样的,当闪存储存装置100运作时,内存管理单元204的多个控制指令会由微处理器单元202来执行。此外,在本发明另一范例实施例中,内存管理单元204也可以一硬件型式实作在闪存控制器104中。
主机接口单元206是电性连接至微处理器单元202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口单元206来传送至微处理器单元202。在本范例实施例中,主机接口单元206是对应连接器102为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元206也可以是PATA接口、USB接口、IEEE1394接口、PCI Express接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存接口单元208是电性连接至微处理器单元202并且用以存取闪存芯片106。也就是说,欲写入至闪存芯片106的数据会通过闪存接口单元208转换为闪存芯片106所能接受的格式。
错误校正单元210是电性连接至微处理器单元202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当内存管理单元204从主机系统1000中接收到主机写入指令时,错误校正单元210会为对应此主机写入指令的写入数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且内存管理单元204会将此写入数据与对应的错误校正码写入至闪存芯片106中。之后,当内存管理单元204从闪存芯片106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正单元210会依据此错误校正码对所读取的数据执行错误校正程序。在本范例实施例中,错误校正单元210的最大错误校正位数为26。也就是说,在数据的错误位数不超过26的情况下,错误校正单元210能够侦测此些错误位并且将数据进行校正。必须了解的是,本发明不限于此,错误校正单元的最大错误校正位数可以是任何适当的数值,例如4个位、16个位或64个位。
在本发明另一范例实施例中,闪存控制器也可还包括其它功能模块。图2是根据本发明另一范例实施例所绘示的闪存控制器的概要方块图。
请参照图2,除了微处理器单元202、内存管理单元204、主机接口单元206与闪存接口单元208之外,闪存控制器104还包括缓冲存储器292与电源管理单元294。
缓冲存储器292是电性连接至微处理器单元202并且用以暂存来自于主机系统1000的数据与指令或来自于闪存芯片106的数据。
电源管理单元294是电性连接至微处理器单元202并且用以控制闪存储存装置100的电源。
闪存芯片106是电性连接至闪存控制器104并且用以储存数据。闪存芯片106具有实体区块122-(0)~122-(N)。实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的存储单元。每一实体区块具有数个实体页面(page)。在本范例实施例中,实体页面为程序化的最小单元。换言之,实体页面为写入数据或读取数据的最小单元。每一实体页面通常包括使用者数据区与冗余区。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误检查与校正码)。在本范例实施例中,闪存芯片106为多层存储单元(Multi Level Cell,MLC)NAND闪存芯片。然而,本发明不限于此,闪存芯片106也可是单层存储单元(Single Level Cell,SLC)NAND闪存芯片。
图3是根据本发明第一范例实施例所绘示的闪存芯片的方块图,并且图4A~4C是根据本发明第一范例实施例所绘示的实体区块的运作示意图。
请参照图4A~4C,闪存芯片106的存储单元仅能从“1”程序化为“0”,因此要更新实体区块内的数据时必须先抹除实体区块内的数据。然而,闪存的写入是以页面为单位,而抹除是以实体区块为单位,所以在本范例实施例中,实体区块会以轮替方式来储存数据。
具体来说,内存管理单元204会将实体区块122-(0)~122-(N)逻辑地分组为系统区(system area)302、数据区(data area)304、备用区(spare area)306与取代区(replacement area)308。
逻辑上属于系统区302的实体区块122-(0)~122-(S)是用以记录系统数据,此系统数据包括关于闪存芯片的制造商与型号、每一闪存芯片的区域数、每一区域的实体区块的数目、每一实体区块的页面数等。
逻辑上属于数据区304的实体区块122-(S+1)~122-(D)用以储存使用者的数据,一般来说就是主机系统1000所存取的逻辑区块所映像的实体区块。也就是说,数据区304的实体区块为储存有效数据的单元。
逻辑上属于备用区306的实体区块122-(D+1)~122-(A)是用以轮替数据区304中的实体区块,因此在备用区306中的实体区块为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区304与备用区306的实体区块会以轮替方式来储存主机系统1000对闪存储存装置100写入的数据。
逻辑上属于取代区308中的实体区块122-(A+1)~122-(N)是替代实体区块。例如,闪存芯片106于出厂时会预留4%的实体区块作为更换使用。也就是说,当系统区302、数据区304与备用区306中的实体区块损毁时,预留于取代区308中的实体区块可用以取代损坏的实体区块(即,坏实体区块(bad block))。因此,倘若取代区308中仍存有可用的实体区块且发生实体区块损毁时,内存管理单元204会从取代区308中提取可用的实体区块来更换损毁的实体区块。倘若取代区308中无可用的实体区块且发生实体区块损毁时,则闪存储存装置100将会被宣告为写入保护(write protect),而无法再写入数据。
由于闪存储存装置100是以轮替方式储存主机系统1000欲储存的数据,因此闪存控制器104会提供逻辑区块350-(0)~350-(H)给主机系统1000以进行数据存取,并且维护逻辑地址-实体地址映像表来记录逻辑区块350-(0)~350-H与实体区块122-(0)~122-(N)之间的映射关系。
例如,当主机系统欲写入数据至逻辑区块350-(0)时,闪存控制器104通过逻辑地址-实体地址映像表得知逻辑区块350-(0)目前是映像逻辑上属于数据区304的实体区块122-(S+1)。因此,内存管理单元204会对实体区块122-(S+1)中的数据进行更新,期间,闪存控制器104会从备用区306中提取实体区块122-(D+1)来轮替数据区304的实体区块122-(S+1)。然而,当内存管理单元204将新数据写入至实体区块122-(D+1)的同时,内存管理单元204不会立刻将实体区块122-(S+1)中的所有有效旧数据搬移至实体区块122-(D+1)而抹除实体区块122-(S+1)。具体来说,内存管理单元204会将实体区块122-(S+1)中欲写入页面之前的有效旧数据(即,实体页面P0与P1)复制至实体区块122-(D+1)(如图4A所示),并且将新数据(即,实体区块122-(D+1)的实体页面P2)写入至实体区块122-(D+1)(如图4B所示)。此时,闪存控制器104即完成写入的动作,并响应主机系统1000已完成写入指令。因为,实体区块122-(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块122-(S+1)中的所有有效旧数据搬移至实体区块122-(D+1)可能会造成无谓的搬移。在此案例中,实体区块122-(S+1)与实体区块122-(D+1)的内容整合起来才是所映像逻辑区块350-0的完整内容。在此,此时实体区块122-(S+1)与实体区块122-(D+1)称为母子区块,而母子区块的组数是依据闪存控制器104中缓冲存储器的大小而定,而暂时地维持此种母子区块瞬时关系的动作称为开启(open)母子区块。
之后,当需要将实体区块122-(S+1)与实体区块122-(D+1)的内容真正合并时,闪存控制器104才会将实体区块122-(S+1)与实体区块122-(D+1)整并为一个实体区块,由此提升区块的使用效率,此合并的动作称为关闭(close)母子区块。
例如,如图4C所示,当主机系统1000传送一写入指令至闪存控制器104以在另一逻辑区块储存数据,并且内存管理单元204判断开启母子区块的组数已达系统设计的上限而需合并实体区块122-(S+1)与实体区块122-(D+1)时,内存管理单元204会将实体区块122-(S+1)中剩余的有效旧数据(即,实体页面P3~PN)复制至实体区块122-(D+1),然后将实体区块122-(S+1)抹除并关联为备用区306,同时,将实体区块122-(D+1)关联为数据区304,并且在逻辑地址-实体地址映像表中将逻辑区块350-0的映像更改为实体区块122-(D+1),由此完成关闭母子区块的动作。
在本范例实施例中,当主机接口单元206接收到来自于主机系统1000的主机写入指令以及对应此主机写入指令的写入数据时,内存管理单元204会向闪存芯片106发送数据程序化指令以将来自于主机系统1000的写入数据写入至实体区块。具体来说,每一逻辑区块350-(0)~350-(H)会包括多个逻辑页面,且每一逻辑页面是由数个逻辑地址所组成,因此当主机系统1000在逻辑地址中存取数据时,内存管理单元204就可依据所存取的逻辑地址所属的逻辑区块来在实体区块的实体页面中实际地读取或写入数据。在本范例实施例中,内存管理单元204是使用逻辑表达式将此主机写入指令中所指示的逻辑地址转换至映像的逻辑区块,并且依据逻辑地址-实体地址映像表来将所映像的逻辑区块映像至实体区块。
特别是,内存管理单元204在将写入数据写入至实体区块的实体页面后,内存管理单元204会向闪存芯片106发送读取指令以将刚刚所写入的数据读取出来,并且错误校正单元210会对所读取的数据执行错误校正程序来判断写入运作是否有发生错误。例如,当内存管理单元204使用数据程序化指令将写入数据写入至实体区块122-(D+1)的实体页面P2之后,内存管理单元204会立即下达读取指令来读取储存于实体区块122-(D+1)的实体页面P2中的数据,并且错误校正单元210会对所读取的数据执行错误校正程序,其中当错误校正单元210判断所读取的数据存有错误位时,则内存管理单元204会判定写入运作有发生错误且储存在实体区块122-(D+1)的实体页面P2中的数据存有错误位。也就是说,在本范例实施例中,在闪存控制器104执行主机写入指令期间,内存管理单元204除了将写入数据写入至闪存芯片106之外,内存管理单元204还会将所写入的数据读取出来以验证数据的正确性。在此,所谓“执行主机写入指令期间”是指从主机系统1000向闪存储存装置100下达主机写入指令到闪存控制器104响应主机系统1000确认信息(即,告知主机系统已完成写入的信息)的一段期间。
例如,在执行主机写入指令期间,当错误校正单元210判断从实体区块122-(D+1)的实体页面P2中所读取的数据存有错误位且此错误位的数目超过错误校正单元210的最大错误校正位数(即,错误校正单元210无法将错误位进行更正)时,内存管理单元204会将实体区块122-(D+1)内其它实体页面中的有效数据搬移至另一个实体区块(例如,实体区块122-(D+2))中,并且将实体区块122-(D+1)标记为坏实体区块。同时,内存管理单元204会向主机系统1000传送一写入错误信息。例如,主机系统1000可依据此写入错误信息,重新传送主机写入指令与对应的写入数据。
此外,在错误校正单元210判断从实体区块122-(D+1)的实体页面P2中所读取的数据存有错误位的例子中,倘若此错误位的数目未超过错误校正单元210的最大错误校正位数(即,错误校正单元210可将错误位进行更正)时,则内存管理单元204会依据错误校正单元210的错误校正结果来判断此错误位的数目是否超过一错误位门坎值。另外,倘若此错误位的数目超过错误位门坎值时,则内存管理单元204会将实体区块122-(D+1)内的所有有效数据搬移至另一个实体区块(例如,实体区块122-(D+2))中,并且将实体区块310(D+1)标记为坏实体区块。在此,错误位门坎值是依据欲达到的可靠度来设定,其可以是任何适当的数值。具体来说,尽管所读取的数据的错误位的数目未超过错误校正单元210的最大错误校正位数,然而,当所储存的数据的错误位的数目过多时,此实体区块也处于相当不可靠的状态,因此,内存管理单元204会将此实体区块标记为坏实体区块。在本范例实施例中,错误位门坎值是设定为错误校正单元210的最大错误校正位数的50%。
再者,例如,在内存管理单元204依据错误校正单元210的错误校正结果判断从实体区块122-(D+1)的实体页面P2中所读取的数据的错误位的数目未超过错误位门坎值的例子中,内存管理单元204会将实体区块122-(D+1)标记为不可靠实体区块。具体来说,内存管理单元204会使用一不可靠实体区块记录表来记录关于实体区块122-(D+1)的信息。特别是,后续当内存管理单元204执行写入运作而以上述轮替方式来储存数据时,被记录于不可靠实体区块记录表中的实体区块将不会优先被使用。例如,内存管理单元204会先使用取代区308中的实体区块来储存数据,并且当坏实体区块过多而无法执行写入运作来写入数据时,内存管理单元204才会使用不可靠实体区块记录表中的实体区块来写入数据。
值得一提的是,在本范例实施例中,当内存管理单元204对实体区块执行写入运作时,内存管理单元204会将刚刚所写入的数据读取出来以确认所写入的数据是否正确。然而,本发明不限于此,在本发明另一范例实施例中,内存管理单元204也可从所写入实体区块一并读取其它页面中所储存的数据,由此确认实体区块的状态。
图5是根据本发明第一范例实施例所绘示用于闪存的数据写入方法的流程图。
请参照图5,在步骤S501中闪存控制器104从主机系统1000中接收主机写入指令与对应此主机写入指令的逻辑地址与写入数据。
在步骤S503中,闪存控制器104的内存管理单元204会依据对应主机写入的逻辑地址所对映的逻辑区块使用数据程序化指令将写入数据写入至闪存芯片106的实体区块的实体页面(例如,实体区块122-(D+1)的实体页面P2)中。
之后,在步骤S505中,内存管理单元204会向闪存芯片106发送读取指令以从刚刚被写入的实体区块(例如,实体区块122-(D+1)的实体页面P2)中读取数据,并且在步骤S507中错误校正单元210会对所读取的数据进行错误校正程序以判断所读取的数据是否存有错误位。
倘若在步骤S507中错误校正单元210判断所读取的数据无存有错误位时,则结束图5所示的数据写入流程。
倘若在步骤S507中错误校正单元210判断所读取的数据存有错误位时,则在步骤S509中内存管理单元204会依据错误校正的结果判断错误位的数目是否超过最大错误校正位数。倘若错误位的数目超过最大错误校正位数时,则在步骤S511中内存管理单元204会将此实体区块内其它正确的数据复制到另一实体区块(例如,实体区块122-(D+2)),并且在步骤S513中将此实体区块(即,在步骤S503中被写入数据的实体区块)标记为坏实体区块。接着,在步骤S515中向主机系统1000传送对应此主机写入指令的写入错误信息并结束图5所示的数据写入流程。
倘若错误位的数目未超过最大错误校正位数时,则在步骤S517中内存管理单元204会依据错误校正的结果判断错误位的数目是否超过错误位门坎值。倘若错误位的数目超过错误位门坎值时,则在步骤S519中内存管理单元204会将此实体区块内所有数据复制到另一实体区块(例如,实体区块310-(D+2))。接着,在步骤S521中将此实体区块(即,在步骤S503中被写入数据的实体区块)标记为坏实体区块并结束图5所示的数据写入流程。
倘若错误位的数目未超过错误位门坎值时,则在步骤S523中内存管理单元204会将此实体区块(即,在步骤S503中被写入数据的实体区块)标记为不可靠实体区块并结束图5所示的数据写入流程。如上所述,例如,在步骤523中内存管理单元204使用不可靠实体区块记录表来记录标记为不可靠实体区块的实体区块的信息。
值得一提的是,在本范例实施例中,在执行主机写入指令时内存管理单元204会从刚刚写入数据的实体页面中读取数据并由错误校正单元210来执行错误校正程序以判断所读取的数据是否存有错误位。然而,本发明不限于此,在本发明另一范例实施例中,内存管理单元204也可将所读取的数据与从主机系统1000中所接收的写入数据来一个位接着一个位来逐一比对,以判断所读取的数据是否存有错误位及其存有的错误位的个数。
[第二范例实施例]
图6是根据本发明第二范例实施例所绘示的闪存储存装置的概要方块图。
闪存存储装置600是通过数据传输接口1110与主机系统1000的其它组件电性连接,并且通过微处理器1102、随机存取内存1104与输入/输出装置1106的运作,主机系统1000可将数据写入至闪存储存装置600或从闪存储存装置600中读取数据。同样的,闪存储存装置600可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘1216,或者是如图1C所示的SD卡1312、MMC卡1314、记忆棒1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
请参照图6,闪存储存装置600包括连接器602、闪存控制器604与闪存芯片606。
连接器602是电性连接至闪存控制器604并且用以电性连接至主机系统1000。在本范例实施例中,连接器602为SATA连接器。然而,必须了解的是本发明不限于此,连接器602也可以是PATA连接器、USB连接器、IEEE 1394连接器、PCI Express连接器、SD接口连接器、MS接口连接器、MMC接口连接器、CF接口连接器、IDE连接器或其它适合的连接器。
闪存控制器604会执行以硬件型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在闪存芯片606中进行数据的写入、读取与抹除等运作。闪存控制器604包括微处理器单元612、内存管理单元614、主机接口单元616与闪存接口单元618。微处理器单元612、主机接口单元616与闪存接口单元618本质上是相同于微处理器单元202、主机接口单元206与闪存接口单元208,在此不重复描述。
内存管理单元614是电性连接至微处理器单元612,用以执行根据本范例实施例的数据写入机制与区块管理机制,内存管理单元614的运作将于以下配合图式作详细说明。
在本范例实施例中,内存管理单元614是以一韧体型式实作在闪存控制器604中。例如,将包括多个控制指令的内存管理单元614烧录至一程序内存(例如,只读存储器(Read Only Memory,ROM))中并且将此程序内存嵌入在闪存控制器604中,当闪存储存装置600运作时,内存管理单元614的多个控制指令会由微处理器单元612来执行以完成根据本发明实施例的数据写入机制与区块管理机制。
在本发明另一范例实施例中,内存管理单元614的控制指令也可以程序代码型式储存于闪存芯片606的特定区域(例如,闪存芯片中专用于存放系统数据的系统区)中。同样的,当闪存储存装置600运作时,内存管理单元614的多个控制指令会由微处理器单元612来执行。此外,在本发明另一范例实施例中,内存管理单元614也可以一硬件型式实作在闪存控制器604中。
闪存芯片606是电性连接至闪存控制器604并且用以储存数据。闪存芯片606是MLC NAND闪存芯片,其具有实体区块122-(0)~122-(N)与错误校正单元620。在第二范例实施例中,实体区块的配置与运作方式是相同于第一范例实施例,在此不再重复描述。
错误校正单元620用以执行错误校正程序以确保数据的正确性。具体来说,当内存管理单元614从主机系统1000中接收到主机写入指令并且将数据写入至闪存芯片606时,错误校正单元620会为所写入的写入数据产生对应的错误检查与校正码,并且所产生的错误检查与校正码会与此写入数据一起写入至实体区块122-(0)~122-(N)中。之后,当内存管理单元614从闪存芯片606中读取数据时错误校正单元620会依据所读取的数据对应的错误校正码来执行错误校正程序,以确认所读取的数据的正确性。在本范例实施例中,错误校正单元620的最大错误校正位数为26。也就是说,在数据的错误位数不超过26的情况下,错误校正单元620能够侦测此些错误位并且将数据进行校正。必须了解的是,本发明不限于此,错误校正单元的最大错误校正位数可以是任何适当的数值,例如4个位、16个位或64个位。
特别是,内存管理单元614在将写入数据写入至实体区块的实体页面后,内存管理单元614会向闪存芯片606发送写入确认指令以判断刚刚所写入的数据是否存有错误位。具体来说,当闪存芯片606接收到写入确认指令时,闪存芯片606会从刚刚所写入实体页面中读取数据,由错误校正单元620执行错误校正程序以判断所储存的数据是否存有错误位,并且闪存芯片606会将错误校正结果传送给内存管理单元614,由此内存管理单元614可依据错误校正单元620的错误校正结果来判断刚刚所写入的数据是否存有错误位。
例如,在执行主机写入指令期间,在错误校正单元620判断从实体区块122-(D+1)的实体页面P2中所读取的数据存有错误位且此错误位的数目超过错误校正单元620的最大错误校正位数(即,错误校正单元620无法将错误位进行更正)的例子中,内存管理单元614会将实体区块122-(D+1)内其它实体页面中的有效数据搬移至另一个实体区块(例如,实体区块122-(D+2))中,并且将实体区块122-(D+1)标记为坏实体区块。同时,内存管理单元614会向主机系统1000传送一写入错误信息。例如,主机系统1000可依据此写入错误信息,重新传送主机写入指令与对应的写入数据。
此外,在错误校正单元620判断从实体区块122-(D+1)的实体页面P2中所读取的数据存有错误位的例子中,倘若此错误位的数目未超过错误校正单元620的最大错误校正位数(即,错误校正单元620可将错误位进行更正)时,则内存管理单元614会依据错误校正单元620的错误校正结果来判断此错误位的数目是否超过上述的错误位门坎值,其中当此错误位的数目超过错误位门坎值时,内存管理单元614会将实体区块122-(D+1)内的所有有效数据搬移至另一个实体区块(例如,实体区块122-(D+2))中,并且将实体区块122-(D+1)标记为坏实体区块。
再者,在内存管理单元614依据错误校正单元620的错误校正结果判断从实体区块122-(D+1)的实体页面P2中所读取的数据的错误位的数目未超过错误位门坎值的例子中,内存管理单元614会将实体区块122-(D+1)标记为上述的不可靠实体区块。
值得一提的是,在本范例实施例中,当内存管理单元614对实体区块执行写入运作时,内存管理单元614会确认所写入的数据是否正确。然而,本发明不限于此,在本发明另一范例实施例中,内存管理单元614也会确认其它页面中所储存的数据是否正确,由此确认实体区块的状态。
图7是根据本发明第二范例实施例所绘示用于闪存的数据写入方法的流程图。
请参照图7,在步骤S701中闪存控制器604从主机系统1000中接收主机写入指令与对应此主机写入指令的逻辑地址与写入数据。
在步骤S703中,闪存控制器604的内存管理单元614会依据对应主机写入的逻辑地址所对映的逻辑区块使用数据程序化指令将写入数据写入至闪存芯片606的实体区块的实体页面(例如,实体区块122-(D+1)的实体页面P2)中。
之后,在步骤S705中,内存管理单元614会向闪存芯片606发送写入确认指令,并且从闪存芯片606中接收到错误校正结果。接着,在步骤S707中内存管理单元614会依据错误校正结果来判断刚刚写入至实体页面(例如,实体区块122-(D+1)的实体页面P2)的数据是否存有错误位。
倘若在步骤S707中依据错误校正结果判断刚刚所写入的数据不存有错误位时,则结束图7所示的数据写入流程。
倘若在步骤S707中判断所写入的数据存有错误位时,则在步骤S709中内存管理单元614会依据错误校正结果判断错误位的数目是否超过最大错误校正位数。倘若错误位的数目超过最大错误校正位数时,则在步骤S711中内存管理单元614会将此实体区块内其它正确的数据复制到另一实体区块(例如,实体区块122-(D+2)),并且在步骤S713中将此实体区块(即,在步骤S703中被写入数据的实体区块)标记为坏实体区块。接着,在步骤S715中向主机系统1000传送对应此主机写入指令的写入错误信息并结束图7所示的数据写入流程。
倘若错误位的数目未超过最大错误校正位数时,则在步骤S717中内存管理单元614会依据错误校正结果判断错误位的数目是否超过错误位门坎值。倘若错误位的数目超过错误位门坎值时,则在步骤S719中内存管理单元614会将此实体区块内所有数据复制到另一实体区块(例如,实体区块122-(D+2))。接着,在步骤S721中将此实体区块(即,在步骤S503中被写入数据的实体区块)标记为坏实体区块并结束图7所示的数据写入流程。
倘若错误位的数目未超过错误位门坎值时,则在步骤S723中内存管理单元614会将此实体区块(即,在步骤S703中被写入数据的实体区块)标记为不可靠实体区块并结束图7所示的数据写入流程。
综上所述,根据本发明范例实施例的数据写入方法会在执行主机写入指令期间判断所写入至实体页面的数据是否存有错误位,基此,可有效地确保所程序化的数据的正确性。此外,当数据存有错误位时,依据发生错误的程度来标记实体区块,由此避免再次使用有问题的实体区块,以提升闪存储存系统的可靠性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (30)

1.一种用于闪存的数据写入方法,用于将来自于一主机系统的数据写入至一闪存芯片中,其中所述闪存芯片包括多个实体区块,所述数据写入方法包括:
配置一闪存控制器;
从所述主机系统中接收一主机写入指令以及对应所述主机写入指令的写入数据,并且通过所述闪存控制器执行所述主机写入指令;
在执行所述主机写入指令期间向所述闪存芯片传送一数据程序化指令来将所述写入数据写入至所述实体区块之中的其中一个实体区块内;以及
在执行所述主机写入指令期间向所述闪存芯片传送一指令来判断储存于所述其中一个实体区块中的至少部分数据是否存有至少一错误位。
2.根据权利要求1所述的用于闪存的数据写入方法,其中所述闪存控制器具有一错误校正单元,
其中向所述闪存芯片传送所述指令来判断储存于所述其中一个实体区块中的至少部分数据是否存有所述至少一错误位的步骤包括:
向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取数据;以及
通过所述错误校正单元依据所读取的数据来判断储存于所述其中一个实体区块中的数据是否具有所述至少一错误位。
3.根据权利要求1所述的用于闪存的数据写入方法,其中判断储存于所述其中一个实体区块中的至少部分数据是否存有至少一错误位的步骤包括:仅判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据是否存有所述至少一错误位。
4.根据权利要求2所述的用于闪存的数据写入方法,其中每一实体区块具有多个实体页面且还包括:
当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目超过所述错误校正单元的最大错误校正位数时,则将储存于所述其中一个实体区块内其它实体页面中的数据搬移至所述实体区块之中的另一个实体区块,将所述其中一个实体区块标记为一坏实体区块。
5.根据权利要求2所述的用于闪存的数据写入方法,其中当所述存有所述至少一错误位的实体区块中的数据为对应所述主机写入指令的写入数据时,通过所述闪存控制器向所述主机系统传送一写入错误信息。
6.根据权利要求2所述的用于闪存的数据写入方法,其中每一实体区块具有多个实体页面且更包括:
当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位,同时所述至少一错误位的数目超过一错误位门坎值且未超过所述错误校正单元的最大错误校正位数时,则将储存于所述其中一个实体区块中的数据搬移至所述实体区块之中的另一个实体区块,并且将所述其中一个实体区块标记为一坏实体区块。
7.根据权利要求2所述的用于闪存的数据写入方法,其中每一实体区块具有多个实体页面且还包括:
当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目未超过一错误位门坎值时,则将所述其中一个实体区块标记为一不可靠实体区块。
8.根据权利要求7所述的用于闪存的数据写入方法,还包括使用一不可靠实体区块记录表来记录所述不可靠实体区块。
9.根据权利要求1所述的用于闪存的数据写入方法,其中向所述闪存芯片传送所述指令来判断储存于所述其中一个实体区块中的数据是否存有所述至少一错误位的步骤包括:
向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取对应所述主机写入指令的写入数据;
比对所读取的数据是否相同于所写入的数据;以及
当所读取的数据相同于所写入的数据时,则判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据不存有所述至少一错误位,并且当所读取的数据不相同于所写入的数据时,则判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据存有所述至少一错误位。
10.根据权利要求1所述的用于闪存的数据写入方法,其中所述闪存芯片具有一错误校正单元,并且
其中向所述闪存芯片传送所述指令来判断储存于所述其中一个实体区块中的数据是否存有所述至少一错误位的步骤包括:
向所述闪存芯片传送一写入确认指令;以及
通过所述错误校正单元依据所述写入确认指令来判断储存于所述其中一个实体区块中的至少部分数据是否具有所述至少一错误位。
11.一种闪存控制器,用于将来自于一主机系统的数据写入至一闪存芯片中,其中所述闪存芯片包括多个实体区块,所述闪存控制器包括:
一微处理器单元;
一闪存接口单元,电性连接至所述微处理器单元,用以电性连接至所述闪存芯片;
一主机接口单元,电性连接至所述微处理器单元,用以电性连接至所述主机系统,并且从所述主机系统中接收一主机写入指令以及对应所述主机写入指令的写入数据;以及
一内存管理单元,电性连接至所述微处理器单元,用以在执行所述主机写入指令期间向所述闪存芯片传送一数据程序化指令来将所述写入数据写入至所述实体区块之中的其中一个实体区块内,
其中所述内存管理单元在执行所述主机写入指令期间向所述闪存芯片传送一指令来判断储存于所述其中一个实体区块中的至少部分数据是否存有至少一错误位。
12.根据权利要求11所述的闪存控制器,还包括一错误校正单元,
其中所述内存管理单元在执行所述主机写入指令期间向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取数据,并且所述错误校正单元依据所读取的数据来判断储存于所述其中一个实体区块中的至少部分数据是否具有所述至少一错误位。
13.根据权利要求11所述的闪存控制器,其中所述内存管理单元仅判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据是否存有所述至少一错误位。
14.根据权利要求12所述的闪存控制器,其中每一实体区块具有多个实体页面,以及
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目超过所述错误校正单元的最大错误校正位数时,则所述内存管理单元将储存于所述其中一个实体区块内其它实体页面中的数据搬移至所述实体区块之中的另一个实体区块,将所述其中一个实体区块标记为一坏实体区块。
15.根据权利要求12所述的闪存控制器,其中当所述存有所述至少一错误位的实体区块中的数据为对应所述主机写入指令的写入数据时,所述内存管理单元向所述主机系统传送一写入错误信息。
16.根据权利要求12所述的闪存控制器,其中每一实体区块具有多个实体页面,以及
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位,同时所述至少一错误位的数目超过一错误位门坎值且未超过所述错误校正单元的最大错误校正位数时,则所述内存管理单元将储存于所述其中一个实体区块中的数据搬移至所述实体区块之中的另一个实体区块,并且将所述其中一个实体区块标记为一坏实体区块。
17.根据权利要求12所述的闪存控制器,其中每一实体区块具有多个实体页面,
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目未超过一错误位门坎值时,则所述内存管理单元将所述其中一个实体区块标记为一不可靠实体区块。
18.根据权利要求17所述的闪存控制器,其中所述内存管理单元使用一不可靠实体区块记录表来记录所述不可靠实体区块。
19.根据权利要求11所述的闪存控制器,其中所述内存管理单元向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取对应所述主机写入指令的写入数据,并且比对所读取的数据是否相同于所写入的数据,
其中当所读取的数据相同于所写入的数据时,则所述内存管理单元判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据不存有所述至少一错误位,并且当所读取的数据不相同于所写入的数据时,则所述内存管理单元判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据存有所述至少一错误位。
20.根据权利要求11所述的闪存控制器,其中所述闪存芯片具有一错误校正单元,
其中所述内存管理单元向所述闪存芯片传送一写入确认指令,并且所述错误校正单元依据所述写入确认指令来判断储存于所述其中一个实体区块中的至少部分数据是否具有所述至少一错误位。
21.一种闪存储存系统,包括:
一闪存芯片,具有多个实体区块;
一连接器,用以电性连接至一主机系统并且从所述主机系统中接收一主机写入指令以及对应所述主机写入指令的写入数据;以及
一闪存控制器,电性连接至所述闪存芯片与所述连接器,用以在执行所述主机写入指令期间向所述闪存芯片传送一数据程序化指令来将所述写入数据写入至所述实体区块之中的其中一个实体区块内,
其中所述闪存控制器在执行所述主机写入指令期间向所述闪存芯片传送一指令来判断储存于所述其中一个实体区块中的至少部分数据是否存有至少一错误位。
22.根据权利要求21所述的闪存储存系统,其中所述闪存控制器还包括一错误校正单元,
其中所述闪存控制器在执行所述主机写入指令期间向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取数据,并且所述错误校正单元依据所读取的数据来判断储存于所述其中一个实体区块中的数据是否具有所述至少一错误位。
23.根据权利要求21所述的闪存储存系统,其中所述闪存控制器仅判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据是否存有所述至少一错误位。
24.根据权利要求22所述的闪存储存系统,其中每一实体区块具有多个实体页面,以及
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目超过所述错误校正单元的最大错误校正位数时,则所述闪存控制器将储存于所述其中一个实体区块内其它实体页面中的数据搬移至所述实体区块之中的另一个实体区块,将所述其中一个实体区块标记为一坏实体区块。
25.根据权利要求22所述的闪存储存系统,其中当所述存有所述至少一错误位的实体区块中的数据为对应所述主机写入指令的写入数据时,所述闪存控制器向所述主机系统传送一写入错误信息。
26.根据权利要求22所述的闪存储存系统,其中每一实体区块具有多个实体页面,以及
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位,同时所述至少一错误位的数目超过一错误位门坎值且未超过所述错误校正单元的最大错误校正位数时,则所述闪存控制器将储存于所述其中一个实体区块中的数据搬移至所述实体区块之中的另一个实体区块,并且将所述其中一个实体区块标记为一坏实体区块。
27.根据权利要求22所述的闪存储存系统,其中每一实体区块具有多个实体页面,
其中当储存于所述其中一个实体区块内的其中一个实体页面中的数据存有所述至少一错误位并且所述至少一错误位的数目未超过一错误位门坎值时,则所述闪存控制器将所述其中一个实体区块标记为一不可靠实体区块。
28.根据权利要求27所述的闪存储存系统,其中所述闪存控制器使用一不可靠实体区块记录表来记录所述不可靠实体区块。
29.根据权利要求21所述的闪存储存系统,其中所述闪存控制器向所述闪存芯片传送一读取指令来从所述其中一个实体区块中读取对应所述主机写入指令的写入数据,并且比对所读取的数据是否相同于所写入的数据,
其中当所读取的数据相同于所写入的数据时,则所述闪存控制器判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据不存有所述至少一错误位,并且当所读取的数据不相同于所写入的数据时,则所述闪存控制器判断储存于所述其中一个实体区块中对应所述主机写入指令的写入数据存有所述至少一错误位。
30.根据权利要求21所述的闪存储存系统,其中所述闪存芯片具有一错误校正单元,
其中所述闪存控制器向所述闪存芯片传送一写入确认指令,并且所述错误校正单元依据所述写入确认指令来判断储存于所述其中一个实体区块中的至少部分数据是否具有所述至少一错误位。
CN200910206069.9A 2009-10-20 2009-10-20 用于闪存的数据写入方法及其控制器与储存系统 Active CN102043725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910206069.9A CN102043725B (zh) 2009-10-20 2009-10-20 用于闪存的数据写入方法及其控制器与储存系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910206069.9A CN102043725B (zh) 2009-10-20 2009-10-20 用于闪存的数据写入方法及其控制器与储存系统

Publications (2)

Publication Number Publication Date
CN102043725A true CN102043725A (zh) 2011-05-04
CN102043725B CN102043725B (zh) 2013-01-09

Family

ID=43909876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910206069.9A Active CN102043725B (zh) 2009-10-20 2009-10-20 用于闪存的数据写入方法及其控制器与储存系统

Country Status (1)

Country Link
CN (1) CN102043725B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377010A (zh) * 2012-04-25 2013-10-30 西部数据技术公司 管理数据存储系统中的不可靠存储器
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN107632902A (zh) * 2016-07-18 2018-01-26 衡宇科技股份有限公司 用于程序化失败时回复数据的方法、控制器及存储系统
CN109558092A (zh) * 2018-12-17 2019-04-02 杭州普创电子有限公司 一种芯片内部flash存储方法及装置
CN109857330A (zh) * 2017-11-30 2019-06-07 宜鼎国际股份有限公司 数据存取效率的预估方法
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN112764670A (zh) * 2019-11-04 2021-05-07 深圳宏芯宇电子股份有限公司 闪存设备及闪存管理方法
CN114077382A (zh) * 2020-08-19 2022-02-22 慧荣科技股份有限公司 数据存储装置及其存储矩阵选择方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071973A1 (en) * 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
CN100349141C (zh) * 2003-06-17 2007-11-14 创惟科技股份有限公司 动态调整非挥发性存储器的冗余区的方法及其相关装置
CN101527169A (zh) * 2008-03-03 2009-09-09 群联电子股份有限公司 闪存数据写入方法及其控制器

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377010B (zh) * 2012-04-25 2018-02-06 西部数据技术公司 管理数据存储系统中的不可靠存储器的系统和方法
CN103377010A (zh) * 2012-04-25 2013-10-30 西部数据技术公司 管理数据存储系统中的不可靠存储器
CN108595345B (zh) * 2012-07-25 2021-11-23 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US10324786B2 (en) 2012-07-25 2019-06-18 Silicon Motion Inc. Method for managing data stored in flash memory and associated memory device and controller
US9811414B2 (en) 2012-07-25 2017-11-07 Silicon Motion Inc. Method for managing data stored in flash memory and associated memory device and controller
CN103577342B (zh) * 2012-07-25 2018-04-17 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN108595345A (zh) * 2012-07-25 2018-09-28 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
CN107632902A (zh) * 2016-07-18 2018-01-26 衡宇科技股份有限公司 用于程序化失败时回复数据的方法、控制器及存储系统
CN109857330A (zh) * 2017-11-30 2019-06-07 宜鼎国际股份有限公司 数据存取效率的预估方法
CN109857330B (zh) * 2017-11-30 2022-02-15 宜鼎国际股份有限公司 数据存取效率的预估方法
CN110058955A (zh) * 2017-12-18 2019-07-26 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN110058955B (zh) * 2017-12-18 2024-04-09 钰创科技股份有限公司 具有错误纠正功能的内存和相关内存系统
CN109558092A (zh) * 2018-12-17 2019-04-02 杭州普创电子有限公司 一种芯片内部flash存储方法及装置
CN112764670A (zh) * 2019-11-04 2021-05-07 深圳宏芯宇电子股份有限公司 闪存设备及闪存管理方法
CN114077382A (zh) * 2020-08-19 2022-02-22 慧荣科技股份有限公司 数据存储装置及其存储矩阵选择方法

Also Published As

Publication number Publication date
CN102043725B (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
TWI408688B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
CN102043725B (zh) 用于闪存的数据写入方法及其控制器与储存系统
CN103377129B (zh) 数据写入方法、存储器控制器与存储器储存装置
TWI476590B (zh) 記憶體管理方法、記憶體控制器與記憶體儲存裝置
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
TWI421870B (zh) 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
CN102890655B (zh) 存储器储存装置、其存储器控制器与有效数据识别方法
CN102902626B (zh) 区块管理方法、存储器控制器与存储器储存装置
CN102890645B (zh) 存储器储存装置、存储器控制器与数据写入方法
CN103678162B (zh) 系统数据储存方法、存储器控制器与存储器储存装置
CN102446137B (zh) 数据写入方法、存储器控制器与存储器储存装置
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
CN103593296A (zh) 数据储存方法、存储器控制器与存储器储存装置
CN103136111A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102866861B (zh) 闪存储存系统、闪存控制器与数据写入方法
CN102122233B (zh) 区块管理与数据写入方法、闪存储存系统与控制器
CN102012788B (zh) 下达读取指令与数据读取方法、闪存控制器与储存系统
TWI521346B (zh) 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
CN102053920B (zh) 数据写入方法及闪存控制器与闪存存储系统
CN112051971A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
CN102467459B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102087632B (zh) 用于闪存的数据储存方法及其控制器与储存系统
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
CN104166558A (zh) 固件码载入方法、存储器控制器与存储器存储装置
CN103488579A (zh) 存储器管理方法、存储器控制器与存储器储存装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant