CN101266828B - 混合型闪存存储装置及其操作方法 - Google Patents

混合型闪存存储装置及其操作方法 Download PDF

Info

Publication number
CN101266828B
CN101266828B CN2008100863000A CN200810086300A CN101266828B CN 101266828 B CN101266828 B CN 101266828B CN 2008100863000 A CN2008100863000 A CN 2008100863000A CN 200810086300 A CN200810086300 A CN 200810086300A CN 101266828 B CN101266828 B CN 101266828B
Authority
CN
China
Prior art keywords
flash memory
mentioned
data
page
write
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.)
Active
Application number
CN2008100863000A
Other languages
English (en)
Other versions
CN101266828A (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.)
Xiangshuo Science & Technology Co Ltd
Asmedia Technology Inc
Original Assignee
Xiangshuo Science & Technology Co Ltd
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 Xiangshuo Science & Technology Co Ltd filed Critical Xiangshuo Science & Technology Co Ltd
Priority to CN2008100863000A priority Critical patent/CN101266828B/zh
Publication of CN101266828A publication Critical patent/CN101266828A/zh
Application granted granted Critical
Publication of CN101266828B publication Critical patent/CN101266828B/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 storage device)及其控制方法,且特别涉及一种混合型(hybrid)闪存存储装置及其控制方法。
背景技术
众所周知,闪存(flash memory)具有抗冲击(shock)、非易失性(nonvolatile)、与高存储密度等优点。因此,闪存搭配控制电路所形成的闪存存储装置(flashmemory storage device)已经广泛的被使用。例如,U盘(thumb drive)、小型闪存存储装置(compact flash,简称CF卡)、安全数字存储装置(secure digital,简称SD卡)、多媒体卡存储装置(multi media card,简称MMC卡)等等。
一般来说,市面上的与非门闪存(Nand-Flash memory)可区分为二种,亦即,单电平记忆胞型与非门闪存(Signal Level Cell Nand-Flash,以下简称SLC型闪存)以及多电平记忆胞型与非门闪存(Multi Level Cell Nand-Flash,以下简称MLC型闪存)。所谓的SLC型闪存就是在单一记忆胞(memory cell)中可以存取一个位(bit);反之,MLC型闪存就是在单一记忆胞中可以存取一个以上的位。
上述两种闪存是利用不同的制造方法所制造的,虽然都具有非易失性的特性,但是其处理效能以及特性仍有显著的不同。以下归纳出SLC型闪存与MLC型闪存的差异。
(I)SLC型闪存的每一页(Page)具有可重复写入(multi-write)数据的特性,且可由任意页数写入。(II)SLC型闪存数据写入的正确性(reliability andmaintainability)很高,因此不需要太复杂的错误修正码(error correction code)。(III)SLC型闪存的使用寿命(available)长。(IV)SLC型闪存的区块擦除时间(block erase time)以及页写入时间(page programming time)较短。(V)SLC型闪存的价格较高。
(I)MLC型闪存的每一页(Page)仅有一次写入数据的特性,且必须由低页数依序写入。(II)MLC型闪存数据写入的错误率高,因此需要复杂的错误修正码(error correction code)来除错。(III)MLC型闪存的使用寿命短。(IV)MLC型闪存的区块擦除时间以及页写入时间较长。(V)MLC型闪存的价格较低,且在相同面积里MLC型闪存具有较高的数据密度(high density)。
请参照图1A,其所示为已知闪存存储装置架构图。闪存存储装置10中包括一微控制器(micro controller)20与存储器模块(memory modular)40。一般来说,主机(host,未图示)则可利用一主机总线(host bus)22来存取闪存存储装置10内的数据。当然,主机总线22可为一小型闪存存储装置(compactflash,简称CF)总线、安全数字存储装置(secure digital,简称SD)总线、多媒体卡存储装置(multi media card,简称MMC)总线、通用串行总线(universalserial bus,简称USB)、或者IEEE1394总线等。
再者,当主机将数据写入存储器模块40时,微控制器20会发出一写入指令至存储器模块40并将写入数据写入存储器模块40。反之,当主机读取存储器模块40内的数据时,微控制器20会发出一读取指令至存储器模块40,因此,存储器模块40会输出读取数据至微控制器20并输出上述读取数据。
再者,请参照图1B与图1C,其所示为已知闪存存储装置中的存储器模块示意图。由于SLC型闪存与MLC型闪存的差异,因此,已知闪存存储装置10中的存储器模块40皆是由相同型的闪存所组成。也就是说,如图1B所示,存储器模块40可以是多个SLC型闪存42-1~42-N所组成。或者,如图1C所示,存储器模块40可以是多个MLC型闪存44-1~44-N所组成。
不论存储器模块40是由SLC型闪存42-1~42-N所组成或者由MLC型闪存44-1~44-N所组成,于存储器模块40中还可以划分成很多的区块(block),每个区块中又包括多个页(Page)。因此,微控制器20中有一存储器映射表(memory mapping table),上述存储器映射表中有指针(pointer),其记录逻辑区块地址(logical block address,以下简称LBA)与物理区块地址(physicalblock address,以下简称PBA)之间的关系。一般来说,主机发出的读写命令皆是读写特定LBA的数据,因此利用存储器映射表即可以确定存储器模块40中实际的PBA,并对PBA中的数据进行读取或者写入。
请参照图2,其为存储器映射表示意图。举例来说,假设主机发出读取指令欲读取LBA 0内的数据,根据微控制器20中的存储器映射表35,数据实际存储的地址在存储器模块40的PBA 5,因此,存储器模块40的PBA 5中的数据可以被读出,并输出闪存存储装置10至主机。
由于SLC型闪存与MLC型闪存的差异,因此构建完成的闪存存储装置10在写入动作时也会有所差异。以下举例说明:假设每一个区块中有四个页(Page),亦即第零页(Page 0)、第一页(Page 1)、第二页(Page 2)、第三页(Page3)。再者,微控制器20会在存储器模块40中选择至少一个未使用区块(freeblock)作为写入数据的暂时区块(log block)。
请参照图3A~G,其所示为由SLC型闪存所构建的闪存存储装置于写入数据时的示意图。假设(I)主机发出一写入命令至LBA 0并且由第一页(Page 1)开始写入二页的数据D1’、D2’;(II)主机发出一写入命令至LBA 0并且由第零页(Page 0)开始写入一页的数据D0’;以及,(III)主机发出一写入命令至LBA 3并且由第三页(Page 3)开始写入四页的数据D7’、D8’、D9’、D10’。
如图3A所示,当闪存存储装置尚未收到写入命令前,由微控制器20中的存储器映射表35可知,LBA 0可对应到存储器模块40的PBA 1,而PBA1中第零页(Page 0)已经存储D0数据、第一页(Page 1)已经存储D1数据、第二页(Page 2)已经存储D2数据、第三页(Page 3)已经存储D3数据;LBA 3可对应到存储器模块40的PBA 7,而PBA 7中第零页(Page 0)已经存储D4数据、第一页(Page 1)已经存储D5数据、第二页(Page 2)已经存储D6数据、第三页(Page 3)已经存储D7数据;LBA 4可对应到存储器模块40的PBA 4,而PBA 4中第零页(Page 0)已经存储D8数据、第一页(Page 1)已经存储D9数据、第二页(Page 2)已经存储D10数据、第三页(Page 3)已经存储D11数据。再者,上述存储器模块40有二个暂时区块(log block),第一暂时区块(log block1)被设定在PBA 5,第二暂时区块(log block 2)被设定在PBA 3;而PBA0、PBA2与PBA6即为未使用区块(free block)。
如图3B所示,闪存存储装置收到(I)主机发出一写入命令至LBA 0并且由第一页(Page 1)开始写入二页的数据D1’、D2’。此时,这些数据(D1’、D2’)会先被放置在第一暂时区块(log block 1)。由于SLC型闪存可由任意页数写入,因此,数据D1’、D2’会被写入第一暂时区块(log block 1)的第一页(Page 1)与第二页(Page 2)。
如图3C所示,闪存存储装置收到(II)主机发出一写入命令至LBA 0并且由第零页(Page 0)开始写入一页的数据D0’。由于LBA 0的写入数据被放在第一暂时区块(log block 1)中且SLC型闪存可由任意页数写入,因此数据D0’可被放置在第一暂时区块(log block 1)的第零页(Page 0)。
当闪存存储装置收到(III)主机发出一写入命令至LBA 3并且由第三页(Page 3)开始写入四页的数据D7’、D8’、D9’、D10’。很明显地,D7’数据必须写入LBA 3第三页(Page 3),而D8’、D9’、D10’必须写入LBA4第零页(Page 0)、第一页(Page 1)与第二页(Page 2)。
因此,如图3D所示,先将LBA 3的数据D7’写入第二暂时区块(log block2)的第三页(Page 3)。此时,由于存储器模块40已经没有可使用的暂时区块(log block),所以,必须执行更换暂时区块动作(flush out log block)。也就是说,再次由存储器模块40中寻找未使用区块(free block)来作为第一暂时区块(log block 1)。
因此,如图3E所示,微控制器20会先进行一合并程序(mergingprocedure)46。所谓的合并程序46就是由PBA 1的第三页(Page 3)中取出数据D3,接着,将数据D3与第一暂时区块(log block 1)中的数据合并,使得第一暂时区块(log block 1)中第零页(Page 0)存储数据D0’,第一页(Page 1)存储数据D1’,第二页(Page 2)存储数据D2’,第三页(Page 3)中存储数据D3。
接着,如图3F所示,将存储器映射表35中的LBA 0对应到存储器模块40的PBA 5。因此,旧的第一暂时区块(log block 1)即可成为LBA0。接着,微控制器20由多个未使用区块中择一成为新的第一暂时区块(log block 1),例如,PBA 0。而由于原PBA 1中所有的数据已经被取代了,利用一区块擦除指令(block erase command)可以将PBA 1中的数据擦除并且使得PBA 1成为未使用区块(free block)并完成更换暂时区块动作。
如图3G所示,由于新第一暂时区块(log block 1)已经形成,因此,D8’、D9’、D10’可以写入新第一暂时区块(log block 1)第零页(Page 0)、第一页(Page1)与第二页(Page 2)。
请参照图4A~4G,其为由MLC型闪存所构建的闪存存储装置于写入数据时的示意图。假设(I)主机发出一写入命令至LBA 0并且由第一页(Page 1)开始写入二页的数据D1’、D2’;(II)主机发出一写入命令至LBA 0并且由第零页(Page 0)开始写入一页的数据D0’;以及,(III)主机发出一写入命令至LBA 3并且由第三页(Page 3)开始写入四页的数据D7’、D8’、D9’、D10’。
如图4A所示,当闪存存储装置尚未收到写入命令前,由微控制器20中的存储器映射表可知,LBA 0可对应到存储器模块40的PBA 1,而PBA 1中第零页(Page 0)已经存储D0数据、第一页(Page 1)已经存储D1数据、第二页(Page 2)已经存储D2数据、第三页(Page 3)已经存储D3数据;LBA 3可对应到存储器模块40的PBA 7,而PBA 7中第零页(Page 0)已经存储D4数据、第一页(Page 1)已经存储D5数据、第二页(Page 2)已经存储D6数据、第三页(Page 3)已经存储D7数据;LBA 4可对应到存储器模块40的PBA 4,而PBA4中第零页(Page 0)已经存储D8数据、第一页(Page 1)已经存储D9数据、第二页(Page 2)已经存储D10数据、第三页(Page 3)已经存储D11数据。再者,上述存储器模块40有二个暂时区块(log block),第一暂时区块(log block 1)被设定在PBA 5,第二暂时区块(log block 2)被设定在PBA 3;而PBA0、PBA2与PBA6即为未使用区块(free block)。
如图4B所示,闪存存储装置收到(I)主机发出一写入命令至LBA 0并且由第一页(Page 1)开始写入二页的数据D1’、D2’。此时,这些数据D1’、D2’会被放置在第一暂时区块(log block 1)。由于MLC型闪存的页数必须依序写入,因此,数据D1’、D2’会被写入第一暂时区块(log block 1)的第零页(Page 0)与第一页(Page 1)。
如图4C所示,闪存存储装置收到(II)主机发出一写入命令至LBA 0并且由第零页(Page 0)开始写入一页的数据D0’。由于LBA 0的写入数据被放在第一暂时区块(log block 1)中且MLC型闪存必须依序写入,因此数据D0’被放置在第一暂时区块(log block 1)的第二页(Page 2)。
当闪存存储装置收到(III)主机发出一写入命令至LBA 3并且由第三页(Page 3)开始写入四页的数据D7’、D8’、D9’、D10’。很明显地,D7’数据必须写入LBA 3第三页(Page 3),而D8’、D9’、D10’必须写入LBA4第零页(Page 0)、第一页(Page 1)与第二页(Page 2)。
因此,如图4D所示,先将LBA 3的数据D7’写入第二暂时区块(log block2)的第零页(Page 0)。此时,由于存储器模块40已经没有可使用的暂时区块(log block),所以,必须执行更换暂时区块动作(flush out log block)。也就是说,再次由存储器模块40中寻找未使用区块(free block)来作为第一暂时区块(log block 1)。
由于第一暂时区块(log block 1)内的数据页数排列不正确,因此,微控制器20会先进行一排序与合并程序(merging and sorting procedure)47,以及一未使用区块写入程序(write to free block procedure)48。
如图4E所示,排序与合并程序47即是接收PBA 1中的数据D3以及第一暂时区块(log block 1)中的数据D1’、D2’、D0’,并且依照页数的顺序排序并合并成为D0’、D1’、D2’、D3。而未使用区块写入程序48即是将排序与合并程序完成的数据写入未使用区块中,例如PBA 6。
接着,如图4F所示,将存储器映射表35中的LBA 0对应到存储器模块40的PBA 6。因此,微控制器20由多个未使用区块中选择一个成为新的第一暂时区块(log block 1),例如,PBA 0。而由于原PBA 1与PBA 5中所有的数据已经被取代了,利用二区块擦除指令(block erase command)可以将PBA1与PBA 5中的数据擦除并且使得PBA 1与PBA 5成为未使用区块(free block)并完成更换暂时区块动作。
如图4G所示,由于新第一暂时区块(log block 1)已经形成,因此,D8’、D9’、D10’可以写入新第一暂时区块(log block 1)第零页(Page 0)、第一页(Page1)与第二页(Page 2)。
由上述可知,由于MLC型闪存的页数必须依序写入,因此在执行更换暂时区块动作时微控制器20必须执行一排序与合并程序47以及一空白区块写入程序48。再者,由于SLC型闪存的页数可以任意写入,因此在执行更换暂时区块动作时仅利用一合并程序46即可。简单的说,MLC型闪存在写入数据的处理上较SLC型闪存复杂的多。
发明内容
本发明提出一种混合型闪存存储装置,包含:一微控制器,连接至一主机总线用以接收一主机的一写入数据;以及,一存储器模块,连接至上述微控制器,且上述存储器模块包括至少一第一型闪存以及至少一第二型闪存;其中,当上述写入数据大小小于一特定数据量时,将上述写入数据写入上述第一型闪存中的一第一暂时区块;以及,当上述写入数据大小大于上述特定数据量时,将上述写入数据写入上述第二型闪存中的一第二暂时区块,其中,将上述写入数据写入上述第二型闪存中的上述第二暂时区块时,上述写入数据包括起始页时,直接将上述写入数据写入上述第二暂时区块,上述写入数据未包括起始页时,利用合并程序,将排列在上述写入数据之前包括起始页的所有数据写入上述第二暂时区块。
本发明更提出一种混合型闪存存储装置的控制方法,上述混合型闪存存储装置包括由至少一第一型闪存以及至少一第二型闪存所组成的一存储器模块,上述控制方法包括下列步骤:接收由一主机发出的一写入数据;当上述写入数据大小小于一特定数据量时,将上述写入数据写入上述第一型闪存中的一第一暂时区块;以及,当上述写入数据大小大于上述特定数据量时,将上述写入数据写入上述第二型闪存中的一第二暂时区块,其中,将上述写入数据写入上述第二型闪存中的上述第二暂时区块时,上述写入数据包括起始页时,直接将上述写入数据写入上述第二暂时区块,上述写入数据未包括起始页时,利用合并程序,将排列在上述写入数据之前包括起始页的所有数据写入上述第二暂时区块。
由上述说明可知,本发明中,当微控制器执行更换暂时区块动作时,不用执行已知的排序程序以及未使用区块写入程序,因此可以大幅提高存储器模块的效率。
再者,本发明不限定于SLC型与MLC型闪存所组成的混合型闪存存储装置。本领域技术人员都知道,不论SLC型与MLC型闪存于制造完成之后都会被进一步分类为第一等级(first grade)产品与第二等级(second grade)产品。第一等级的闪存寿命较长并且品质较好,也就是说,第一等级的闪存允许反复写入与读取的次数较多且数据错误率低;反之,第二等级的闪存寿命较短品质较差,也就是说,允许反复写入与读取的次数较少且数据错误率低。
也就是说,本发明也可以利用不同等级的闪存所组合而成的混合型闪存存储装置。当写入数据的大小(size)小于上述特定数据量时,则将写入数据写入第一等级的闪存;反之,当写入数据的大小(size)大于上述特定数据量时,则将写入数据写入第二等级的闪存。因此,第二等级的闪存的写入次数会少于第一等级的写入次数,并且保障上述混合型闪存存储装置的寿命。
附图说明
图1A为已知闪存存储装置架构图。
图1B、C为已知闪存存储装置中的存储器模块示意图。
图2为存储器映射表示意图。
图3A~3G为由SLC型闪存所构建的闪存存储装置于写入数据时的示意图。
图4A~4G为由MLC型闪存所构建的闪存存储装置于写入数据时的示意图。
图5为本发明混合型闪存存储装置架构图。
图6A~6I所示为本发明混合型闪存存储装置于写入数据时的示意图。
具体实施方式
请参照图5,其为本发明混合型闪存存储装置架构图。闪存存储装置100中包括一微控制器120与存储器模块140。其中,上述存储器模块140中包括SLC型闪存142-1~142-N与MLC型闪存144-1~144-M。也就是说,相较于已知的闪存存储装置,本发明混合型(hybrid)闪存存储装置中的存储器模块是由SLC型闪存142-1~142-N与MLC型闪存146-1~145-M所组成。
一般来说,主机110可利用一主机总线122来存取闪存存储装置100内的数据。当然,主机总线122可为小型闪存存储装置总线、安全数字存储装置总线、多媒体卡存储装置总线、通用串行总线、或者IEEE1394总线。
再者,当主机110将数据写入存储器模块140时,微控制器120会发出一写入指令至存储器模块140,并将写入数据写入存储器模块140。反之,当主机读取存储器模块140内的数据时,微控制器120会发出一读取指令至存储器模块140,因此,存储器模块140会输出读取数据至微控制器120后输出至主机110。
再者,而存储器模块140中的SLC型闪存142-1~142-N与MLC型闪存146-1~145-M可以划分成很多的区块(block),每个区块中又包括多个页(Page)。因此,微控制器120内会有一存储器映射表,上述存储器映射表中有指针(pointer),其记录LBA与PBA之间的关系。
为了要达到MLC型闪存价格较低以及高密度的优势以及SLC型闪存写入数据的处理较简单的特性,本发明结合SLC型闪存与MLC型闪存记忆并且于SLC型闪存与MLC型闪存中皆划分暂时区块(log block)。也就是说,微控制器120会根据主机的写入命令以及数据的LBA来决定写入数据要放置在SLC型闪存的暂时区块(log block)或者MLC型闪存记忆的暂时区块(logblock)。
根据本发明的实施例,假设主机发出写入命令相对应的写入数据大小(size)大于一特定数据量,例如一页的数据量,则上述写入数据则写入MLC型闪存记忆的暂时区块(log block);反之,假设主机发出写入命令相对应的写入数据大小(size)小于上述特定数据量,则上述写入数据则写入SLC型闪存记忆的暂时区块(log block)。
以下举例说明:假设每一个区块中有四个页(Page),亦即第零页(Page 0)、第一页(Page 1)、第二页(Page 2)、第三页(Page 3)。再者,微控制器120会在存储器模块140的SLC型闪存中定义一第一暂时区块(log block 1)与MLC型闪存中定义一第二暂时区块(log block 2)。
请参照图6A~6I,其为本发明混合型闪存存储装置于写入数据时的示意图。在此我们以已知使用相同例子作说明,以作为实际读取方式的差别。如图6A所示,存储器模块140中至少包括SLC型闪存的区块sPBA 0~sPBA 3以及MLC型闪存记忆的区块mPBA 4~mPBA7。再者,当闪存存储装置尚未收到写入命令前,由微控制器120中的存储器映射表135可知,LBA 0可对应到存储器模块140的sPBA 1,而sPBA 1中第零页(Page 0)已经存储D4数据、第一页(Page 1)已经存储D5数据、第二页(Page 2)已经存储D6数据、第三页(Page 3)已经存储D7数据;LBA 1可对应到存储器模块140的mPBA 4,而mPBA 4中第零页(Page 0)已经存储D8数据、第一页(Page 1)已经存储D9数据、第二页(Page 2)已经存储D10数据、第三页(Page 3)已经存储D11数据;LBA 2可对应到存储器模块140的sPBA 0,而sPBA 0中第零页(Page 0)已经存储D12数据、第一页(Page 1)已经存储D13数据、第二页(Page 2)已经存储D14数据、第三页(Page 3)已经存储D15数据;LBA 3可对应到存储器模块140的mPBA 7,而mPBA 7中第零页(Page 0)已经存储D0数据、第一页(Page1)已经存储D1数据、第二页(Page 2)已经存储D2数据、第三页(Page 3)已经存储D3数据。再者,根据本发明的实施例,上述存储器模块140有两个暂时区块(log block),第一暂时区块(log block 1)被设定在sPBA 3,第二暂时区块(log block 2)被设定在mPBA 5。也就是说,于SLC型闪存中定义一第一暂时区块(log block 1)以及MLC型闪存中定义一第二暂时区块(log block 2),再者,SLC型闪存中的sPBA 2与MLC型闪存中mPBA 6则为未使用区块(freeblock)。如图6B所示,闪存存储装置收到(I)主机发出一写入命令至LBA 3并且由第一页(Page 1)开始写入一页的数据D1’。由于数据D1’大小为一页,因此数据D1’会先被放置在第一暂时区块(log block 1)。由于SLC型闪存可由任意页数写入,因此,数据D1’会被写入第一暂时区块(log block 1)的第一页(Page 1)。
如图6C所示,闪存存储装置收到(II)主机发出一写入命令至LBA 3并且由第零页(Page 0)开始写入一页的数据D0’。由于LBA 0的写入数据被放在第一暂时区块(log block 1)中且SLC型闪存可由任意页数写入,因此数据D0’可被放置在第一暂时区块(log block 1)的第零页(Page 0)。
接着,如图6D所示,闪存存储装置收到(III)主机发出一写入命令至LBA0并且由第一页(Page 1)开始写入三页的数据D5’、D6’、D7’。很明显地,由于数据D5’、D6’、D7’的大小总合已超过上述特定数据量。因此,这些数据(D5’、D6’、D7’)必须被放置在第二暂时区块(log block 2)。由于MLC型闪存必须依序写入,因此,本发明利用微控制器120先行执行合并程序142。也就是说,此合并程序142会将LAB 0中第0页(起始页)的数据D4与写入数据(D5’、D6’、D7’)先进行合并,且依照页数排序后才写入第二暂时区块(log block 2)。
由于全部的第二暂时区块(log block 2)中已经存储数据,因此如图6E所示,微控制器120执行更换暂时区块动作。也就是说,将存储器映射表135中的LBA 0对应到存储器模块mPBA 5,且定义新的第二暂时区块(log block2)于未使用区块(free block)mPBA 6,且利用区块擦除指令(block erasecommand)将sPBA 1中的数据擦除并且使得sPBA 1成为未使用区块(freeblock)。
接着,如图6F所示,闪存存储装置收到(IV)主机发出一写入命令至LBA1并且由第零页(Page 0)开始写入三页的数据D8’、D9’、D10’;很明显地,由于数据D8’、D9’、D10’的大小总合已超过上述特定数据量。因此,这些数据(D8’、D9’、D10’)必须被放置在第二暂时区块(log block 2)。再者,这些数据(D8’、D9’、D10’)已经包括上述区块的第0页(Page 0),也就是起始页(initial page),因此,微控制器120可以直接将这些数据写入第二暂时区块(log block)而不需要执行合并程序142。
当闪存存储装置收到(V)主机发出一写入命令至LBA 2并且由第一页(Page 1)开始写入一页的数据D13’。很明显地,写入数据D13’大小为一页,因此数据D1’会被放置在第一暂时区块(log block 1)。然而,由于第一暂时区块(log block 1)已经存储数据,因此必须执行更换暂时区块动作。也就是说,再次于存储器模块140的SLC型闪存中定义未使用区块(free block)来作为新的第一暂时区块(log block 1)。
因此,如图6G所示,利用合并单元146将mPBA 7第二、三页(Page 2、3)的数据D2、D3与第一暂时区块(log block 1)中的数据合并,使得第一暂时区块(log block 1)中第零页(Page 0)存储数据D0’,第一页(Page 1)存储数据D1’,第二页(Page 2)存储数据D2,第三页(Page 3)中存储数据D3。
如图6H所示,将存储器映射表135中的LBA 3对应到存储器模块140的sPBA 3。因此,微控制器120可在存储器模块140中定义一未使用区块为新的第一暂时区块(log block 1),例如,sPBA 1。再者,由于原mPBA 7中所有的数据已经被取代了,利用一区块擦除指令(block erase command)可以将mPBA 7中的数据擦除并且使得mPBA 7成为未使用区块。
如图6I所示,由于新第一暂时区块(log block 1)已经形成,且D13’可放置在第一暂时区块(log block 1)的第一页。
由上述说明可知,当主机发出写入命令相对应的数据大小(size)超过特定数据量时,这些数据必须写入MLC闪存,并且微控制器120利用合并程序,使得排列在上述写入数据之前包括一起始页的所有数据依序写入上述第二暂时区块。因此,当微控制器120执行更换暂时区块动作(flush out log block)时,不用执行已知的排序程序以及未使用区块写入程序,因此可以大幅提高存储器模块140的效率。
再者,本发明不限定于SLC型与MLC型闪存所组成的混合型闪存存储装置。本领域技术人员都知道,不论SLC型与MLC型闪存于制造完成之后都会被进一步分类为第一等级(first grade)产品与第二等级(second grade)产品。第一等级的闪存寿命较长并且品质较好,也就是说,第一等级的闪存允许反复写入与读取的次数较多且数据错误率低;反之,第二等级的闪存寿命较短品执较差,也就是说,允许反复写入与读取的次数较少且数据错误率低。
也就是说,本发明也可以利用不同等级的闪存所组合而成的混合型闪存存储装置。当写入数据的大小(size)小于上述特定数据量时,则将写入数据写入第一等级的闪存;反之,当写入数据的大小(size)大于上述特定数据量时,则将写入数据写入第二等级的闪存。因此,第二等级的闪存的写入次数会少于第一等级的写入次数,并且保障上述混合型闪存存储装置的寿命。
综合以上技术说明,本发明所述的混合型闪存存储装置及其操作方法确实解决了先前技术中所产生的缺点,进而完成发展本发明的最主要的目的,再者,本发明的本领域技术人员作出的任何改动与修饰,都不脱离权利要求书所欲保护的范围。

Claims (8)

1.一种混合型闪存存储装置,其特征在于包含:
微控制器,连接至主机总线,用以接收主机的写入数据;以及
存储器模块,连接至上述微控制器,包括一第一型闪存以及一第二型闪存;
其中,当上述写入数据大小小于特定数据量时,将上述写入数据写入上述第一型闪存中的第一暂时区块;当上述写入数据大小大于上述特定数据量时,将上述写入数据写入上述第二型闪存中的第二暂时区块,
其中,将上述写入数据写入上述第二型闪存中的上述第二暂时区块时,上述写入数据包括起始页时,直接将上述写入数据写入上述第二暂时区块,上述写入数据未包括起始页时,利用合并程序,将排列在上述写入数据之前包括起始页的所有数据写入上述第二暂时区块。
2.根据权利要求1所述的混合型闪存存储装置,其特征在于,上述第一型闪存为单电平记忆胞型闪存,且上述第二型闪存为多电平记忆胞型闪存。
3.根据权利要求1所述的混合型闪存存储装置,其特征在于,上述第一型闪存为第一等级闪存,且上述第二型闪存为第二等级闪存。
4.根据权利要求1所述的混合型闪存存储装置,其特征在于,上述混合型闪存存储装置为U盘、小型闪存存储装置、安全数字存储装置、或者多媒体卡存储装置。
5.一种混合型闪存存储装置的控制方法,上述混合型闪存存储装置包括由一第一型闪存以及一第二型闪存所组成的存储器模块,上述控制方法包括下列步骤:
接收由主机发出的写入数据;
当上述写入数据大小小于特定数据量时,将上述写入数据写入上述第一型闪存中的第一暂时区块;以及
当上述写入数据大小大于上述特定数据量时,将上述写入数据写入上述第二型闪存中的第二暂时区块,
其中,将上述写入数据写入上述第二型闪存中的上述第二暂时区块时,上述写入数据包括起始页时,直接将上述写入数据写入上述第二暂时区块,上述写入数据未包括起始页时,利用一合并程序,将排列在上述写入数据之前包括起始页的所有数据写入上述第二暂时区块。
6.根据权利要求5所述的混合型闪存存储装置的控制方法,其特征在于,上述第一型闪存为单电平记忆胞型闪存,且上述第二型闪存为多电平记忆胞型闪存。
7.根据权利要求5所述的混合型闪存存储装置的控制方法,其特征在于,上述第一型闪存为第一等级闪存,且上述第二型闪存为第二等级闪存。
8.根据权利要求5所述的混合型闪存存储装置的控制方法,其特征在于,上述混合型闪存存储装置为U盘、小型闪存存储装置、安全数字存储装置、或者多媒体卡存储装置。
CN2008100863000A 2008-03-25 2008-03-25 混合型闪存存储装置及其操作方法 Active CN101266828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100863000A CN101266828B (zh) 2008-03-25 2008-03-25 混合型闪存存储装置及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100863000A CN101266828B (zh) 2008-03-25 2008-03-25 混合型闪存存储装置及其操作方法

Publications (2)

Publication Number Publication Date
CN101266828A CN101266828A (zh) 2008-09-17
CN101266828B true CN101266828B (zh) 2010-12-01

Family

ID=39989154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100863000A Active CN101266828B (zh) 2008-03-25 2008-03-25 混合型闪存存储装置及其操作方法

Country Status (1)

Country Link
CN (1) CN101266828B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419734B (zh) * 2010-09-27 2016-05-11 北京中星微电子有限公司 一种数据存储的方法及装置
CN102541755B (zh) * 2010-12-29 2015-09-30 深圳市硅格半导体有限公司 闪存存储器及其接收数据的方法
CN106648443B (zh) * 2015-10-30 2019-06-25 群联电子股份有限公司 有效数据合并方法、存储器控制器与存储器存储装置
CN107341681A (zh) * 2016-05-03 2017-11-10 华北理工大学 信息服务***
US10380018B2 (en) 2017-04-04 2019-08-13 Micron Technology, Inc. Garbage collection
CN107527655A (zh) * 2017-09-12 2017-12-29 山东大学 一种闪存存储器混合读写方法及混合读写闪存存储器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039278A (zh) * 2007-03-30 2007-09-19 华为技术有限公司 数据管理方法及***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039278A (zh) * 2007-03-30 2007-09-19 华为技术有限公司 数据管理方法及***

Also Published As

Publication number Publication date
CN101266828A (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
TWI425523B (zh) 混合型快閃儲存裝置及其操作方法
US10853238B2 (en) Unaligned data coalescing
US8131911B2 (en) Data writing method, and flash storage system and controller using the same
US9176865B2 (en) Data writing method, memory controller, and memory storage device
CN109815160B (zh) 最后写入页搜索
CN107391389B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
US9141530B2 (en) Data writing method, memory controller and memory storage device
CN101266828B (zh) 混合型闪存存储装置及其操作方法
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
US20110093649A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
CN115398405A (zh) 具有数据局部性的数据群组的逻辑到物理映射
CN112542186B (zh) 存储器设备和操作存储器设备的方法
CN103870214A (zh) 多层存储块兼具单层存储块性能的方法
CN114968079A (zh) 包括存储器***和主机的电子***
CN103714008A (zh) 数据存储方法、存储器控制器与存储器存储装置
CN103389941A (zh) 存储器格式化方法、存储器控制器及存储器存储装置
CN102543184B (zh) 存储器储存装置、其存储器控制器与数据写入方法
WO2014159396A2 (en) System and method of accessing memory of a data storage device
US8065468B2 (en) Data storing methods and apparatus thereof
US8832358B2 (en) Data writing method, memory controller and memory storage apparatus
US20090182932A1 (en) Method for managing flash memory blocks and controller using the same
US11586379B2 (en) Memory system and method of operating the same
US8713242B2 (en) Control method and allocation structure for flash memory device
CN112017718A (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