CN102479157B - 用来进行区块管理的方法、记忆装置及其控制器 - Google Patents
用来进行区块管理的方法、记忆装置及其控制器 Download PDFInfo
- Publication number
- CN102479157B CN102479157B CN201010557139.8A CN201010557139A CN102479157B CN 102479157 B CN102479157 B CN 102479157B CN 201010557139 A CN201010557139 A CN 201010557139A CN 102479157 B CN102479157 B CN 102479157B
- Authority
- CN
- China
- Prior art keywords
- channel
- address
- controller
- relation
- page
- 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
Links
Landscapes
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种用来进行区块管理的方法,该方法应用于具有多通道的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,该方法包含有:取得多个地址对信道映像关系中的至少一部分,以供写入运作之用;以及依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存。本发明另提供相关之记忆装置及其控制器。依据本发明所实现的管理可提升具有多通道的闪存的整体的通道带宽;另外,本发明不会有过度使用某一通道的问题,相较于相关技术,本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
Description
技术领域
本发明涉及关于具有多通道的闪存(Flash Memory)的存取(Access),更具体地说,涉及一种用来进行区块管理的方法以及相关的记忆装置及其控制器。
背景技术
近年来由于闪存的技术不断地发展,各种可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)或具备闪存的固态硬盘(Solid State Drive,SSD)被广泛地实施于诸多应用中。因此,这些记忆装置中的闪存的访问控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(Single LevelCell,SLC)与多阶细胞(Multiple Level Cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以透过不同级别的电压在一个晶体管中记录两组(或以上)位信息(00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的可携式记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的访问控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的记忆装置还是有不足之处。例如:相关技术的管理机制无法保证在具有多通道的闪存中的各个信道的信道带宽;又例如:相关技术在进行随机写入之后的循序读取的效能甚差。因此,需要一种新颖的方法来进行区块管理,以增进闪存的存取效能。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述在具有多通道的细胞闪存中的各个信道的信道带宽易导致随机写入之后的循序读取的效能甚差的缺陷,提供一种用来进行区块管理的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明的另一目的在于提供一种用来进行区块管理的方法以及相关的记忆装置及其控制器,以增进闪存(Flash Memory)的存取效能。
本发明解决其技术问题所采用的技术方案之一是:构造一种用来进行区块管理的方法,该方法应用于具有多通道(Channel)的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,该方法包含有:取得多个地址对信道(Address-to-Channel)映像关系中的至少一部分,以供写入运作之用;以及依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式(Page Mode)中将至少一页的数据透过至少一信道写入该闪存。
上述本发明所述的方法,其中该些地址对信道映像关系为逻辑区段地址对信道映像关系。
上述本发明所述的方法,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些通道的映像关系。
上述本发明所述的方法,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及
计算将该平移结果除以一预定除数的余数,作为一信道的索引。
上述本发明所述的方法,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
上述本发明所述的方法,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
上述本发明所述的方法,其中依据该多个地址对信道映像关系中的该至少一地址对信道映像关系在该页模式中将该至少一页的数据透过该至少一信道写入该闪存的步骤另包含:
在该至少一信道未包含该些信道中的全部的信道的状况下,不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
本发明解决其技术问题所采用的技术方案之二是:构造上述方法的同时,也对应地构造一种记忆装置,其包含有:具有多通道的一闪存,该闪存包含分别对应于该些通道的多个区块;以及一控制器,用来存取(Aceess)该闪存以及管理该多个区块。另外,该控制器取得多个地址对信道映像关系中的至少一部分,以供写入运作之用。此外,该控制器依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存。
上述本发明所述的记忆装置,其中该些地址对信道映像关系为逻辑区段地址对信道映像关系。
上述本发明所述的记忆装置,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些通道的映像关系。
上述本发明所述的记忆装置,其中该控制器将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及该控制器计算将该平移结果除以一预定除数的余数,作为一信道的索引。
上述本发明所述的记忆装置,其中该控制器依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
上述本发明所述的记忆装置,其中该控制器自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
上述本发明所述的记忆装置,其中在该至少一信道未包含该些信道中的全部的信道的状况下,该控制器不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
本发明解决其技术问题所采用的技术方案之三是:构造上述方法的同时,也对应地构造一种记忆装置的控制器,该控制器用来存取具有多通道的一闪存,该闪存包含分别对应于该些通道的多个区块,该控制器包含有:一只读存储器(Read Only Memory,ROM),用来储存一程序代码;以及一微处理器,用来执行该程序代码以控制对该闪存的存取以及管理该多个区块。另外,透过该微处理器执行该程序代码的该控制器取得多个地址对信道映像关系中的至少一部分,以供写入运作之用。此外,透过该微处理器执行该程序代码的该控制器依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存。
上述本发明所述的控制器,其中该些地址对信道映像关系为逻辑区段地址对信道映像关系。
上述本发明所述的控制器,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些通道的映像关系。
上述本发明所述的控制器,其中该控制器将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及该控制器计算将该平移结果除以一预定除数的余数,作为一信道的索引。
上述本发明所述的控制器,其中该控制器依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
上述本发明所述的控制器,其中该控制器自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
上述本发明所述的控制器,其中在该至少一信道未包含该些信道中的全部的信道的状况下,该控制器不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
实施本发明的技术方案,具有以下有益效果:依据本发明所实现的管理可提升具有多通道的闪存的整体的通道带宽。
另外,本发明不会有过度使用某一通道的问题,相较于相关技术,本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1A为依据本发明一第一实施例的一种记忆装置的示意图;
图1B为图1A所示的记忆装置在一实施例中各信道上的闪存芯片的记忆区段分布;
图1C为图1A所示的记忆装置在一实施例中的逻辑地址与信道的映像关系;
图2为依据本发明一实施例的一种用来进行区块管理的方法的流程图;
图3A至图3B为图2所示的方法在一实施例中的实施细节;
图4A至图4B为图2所示的方法在另一实施例中的实施细节;
图5A至图5B为图2所示的方法在另一实施例中的实施细节。
【主要组件符号说明】
具体实施方式
请参考图1A,图1A为依据本发明一第一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其为可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)、或固态硬盘(SSD,Solid State Drive)等。记忆装置100包含有:一闪存(Flash Memory)120;以及一控制器,用来存取(Access)闪存120,其中该控制器例如一内存控制器110。依据本实施例,内存控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、至少一缓冲存储器116、与一接口逻辑118。另外,本实施例的只读存储器112M用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存120的存取。请注意到,程序代码112C也得储存在缓冲存储器116或任何形式的内存内。此外,缓冲存储器116包含一缓冲器Buf(1)。例如:缓冲器Buf(1)可为缓冲存储器116中的多个缓冲区域的一缓冲区域。又例如:上述的至少一缓冲存储器116包含多个缓冲存储器,该些缓冲存储器中之一可用来实施缓冲器Buf(1)。
如图1A所示,上述的闪存120包含多个闪存芯片诸如闪存芯片120-0、120-1、...、与120-(N-1),其中闪存120具有多信道(Channel)诸如信道Ch(0)、Ch(1)、...、与Ch(N-1),而该些闪存芯片诸如闪存芯片120-0、120-1、...、与120-(N-1)分别属于该些通道。在典型状况下,闪存120包含分别对应于该些通道的多个区块,而该控制器(例如:透过微处理器112执行程序代码112C的内存控制器110)对每一闪存芯片进行抹除时,最小的抹除单位系以区块为单位来进行抹除。另外,一区块可记录特定数量的页(Page),其中该控制器对每一闪存芯片进行写入时,最小的写入单位系以页为单位来进行写入。而一实体页中包含多个区段,例如8个区段。
实作上,透过微处理器112执行程序代码112C的内存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制每一闪存芯片的存取运作(尤其是对至少一区块或至少一页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Deviee)沟通。
除了能存取闪存120,该控制器还能妥善地管理上述的多个区块。图1B为图1A所示的记忆装置100在一实施例中各信道上的闪存芯片的记忆区段分布。图1C为图1A所示的记忆装置100在一实施例中的逻辑地址与信道的映像关系。依据本实施例,该控制器可运作在「页模式」(Page Mode)的状况下,不论该主装置指定记忆装置100写入的数据的逻辑地址(LogicalAddress)分布在哪些地址,该控制器基于图1C所示的安排,能在进行随机写入之后的循序读取时达到极佳的效能。尤其是,在该控制器运作在「页模式」的状况下,该控制器可将逻辑地址不连续分布(或随机分布)的数据一页一页地写入同一实体区块(Physical Block),也可以将属于同一页的不同版本的更新数据一页一页地写入在一个或多个实体区块中的多个实体页,并记录关于这些实体页当中哪一实体页是最新版本的更新数据的信息。同一实体区块的任意两个实体页所储存的数据的逻辑地址可能相差很大,其逻辑地址差距可能大过于一个实体区块所包含的实体页数量。例如,某一实体区块包含256个实体页,而该实体区块中的一实体页的所储存的数据其逻辑页地址为0x0000,而该实体区块中另一实体页的所储存的数据其逻辑页地址为0x2000,两者的逻辑地址差异大于256。如图1C所示,给定符号「m」代表非负数的整数,逻辑页地址0x0000、0x0004、0x0008......0x(4m)......映像至通道Ch(0)上的闪存芯片120-0,属于上述逻辑地址的数据应储存至信道Ch(0)上的闪存芯片120-0。逻辑页地址0x0001、0x0005、0x0009......0x(4m+1)......映像至通道Ch(1)上的闪存芯片120-1,属于上述逻辑地址的数据应储存至信道Ch(1)上的闪存芯片120-1。逻辑页地址0x0002、0x0006、0x0010......0x(4m+2)......映像至通道Ch(2)上的闪存芯片120-2,属于上述逻辑地址的数据应储存至信道Ch(2)上的闪存芯片120-2。逻辑页地址0x0003、0x0007、0x0011......0x(4m+3)......映像至通道Ch(3)上的闪存芯片120-3,属于上述逻辑地址的数据应储存至信道Ch(3)上的闪存芯片120-3。换言之,单一闪存芯片上,任意两个实体页其所映像的逻辑页地址的差异为该记忆装置中信道总数的整数倍。举例来说,主装置向记忆装置100发出一第一写入指令,命其写入逻辑页地址0x0000的数据D0。内存控制器110收到该第一写入指令便将数据D0写入信道Ch(0)上的闪存芯片120-0的一实体区块(例如第一实体区块)上的一空白记忆页(例如第一实体记忆页)。随后,主装置向记忆装置100发出一第二写入指令,命其写入逻辑页地址0x2000的数据D2000。内存控制器110收到该第二写入指令便将数据D2000写入信道Ch(0)上的闪存芯片120-0的第一实体区块上的另一空白记忆页(例如第二实体记忆页)。逻辑页地址0x0000与0x2000的差异为通道数(在此实施例中通道总数为4)的整数倍。换言之,同一信道上的逻辑页地址的差异与信道数有关。此外,第一实体记忆页与第二实体记忆页为相邻的实体记忆页。且在实体记忆页地址分布上,第二实体记忆页仅次于第一实体记忆页。
在图1B所示的表中,每一列代表分别对应于各个通道Ch(0)、Ch(1)、...、与Ch(N-1)的一组实体页,而图1B所示的数值诸如索引0、1、...、63、...等可代表区段的编号,诸如实体区段地址(Physical Sector Address)。如图1B所示,在本实施例中,每一实体页包含8个实体区段。依据本实施例,具有实体区段地址{0,1,...,7}的实体区段{0,1,...,7}属于通道Ch(0)中的一实体页。具有实体区段地址{8,9,...,15}的实体区段{8,9,...,15}属于通道Ch(1)中的一相对应实体页。具有实体区段地址{16,17,...,23}的实体区段{16,17,...,23}属于通道Ch(2)中的一相对应实体页。具有实体区段地址{24,25,...,31}的实体区段{24,25,...,31}属于通道Ch(3)中的一相对应实体页。依此类推。这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的某些变化例,上述的数量N可为大于1的正整数。依据本实施例的某些变化例,实体区段的编号(或实体区段地址)与信道之间的关系可以予以变化。依据本实施例的某些变化例,每一实体页中的区段的数量可以予以变化。
基于对应于该些通道的区段安排,诸如图1B所示的区段安排,本发明可妥善地管理具有多通道的闪存120的各个实体区块以提升闪存120的存取效能。请参考图2,该控制器所进行的区块管理的相关细节进一步说明如下。
图2为依据本发明一实施例的一种进行区块管理的方法910的流程图。该方法可应用于在图1A至图1C所示的各个实施例(及相关的变化例)中的任一者当中的记忆装置100,尤其是具有多通道的闪存120的控制器诸如上述的控制器(例如:透过微处理器112执行程序代码112C的内存控制器110)。该方法说明如下:
在步骤912中,该控制器取得多个逻辑地址(例如逻辑区段地址或逻辑页地址)对信道(Address-to-Channel)映像关系中的至少一部分(例如:一部分或全部),以供写入运作之用。依据本实施例,该些逻辑地址对信道映像关系可为逻辑区段地址对信道映像关系。
在步骤914中,该控制器依据该多个逻辑地址(例如逻辑区段地址或逻辑页地址)对信道映像关系中的至少一地址对信道映像关系,在该页模式中将至少一页的数据透过至少一信道写入闪存120。例如:在该些逻辑地址对信道映像关系为多个逻辑区段地址对信道映像关系的状况下,该控制器依据该多个逻辑区段地址对信道映像关系中的至少一逻辑区段地址对信道映像关系,在该页模式中将至少一页的数据透过至少一信道写入闪存120。
实作上,该控制器可依据一预定规则进行计算,以取得该些逻辑地址对信道映像关系中的该至少一部分。例如,针对逻辑页地址进行运算,将逻辑页地址0x0000除以通道数目(在此实施例中,通道数目为4)所得的余数为0,则可得知逻辑页地址0x0000所对应的数据应该储存在信道0。而将逻辑页地址0x0001除以通道数目(在此实施例中,通道数目为4)所得的余数为1,则可得知逻辑页地址0x0001所对应的数据应该储存在信道1。此即地址与信道的映像关系。熟悉此项技艺者当得在本发明的教导之下,将不同的逻辑地址(例如逻辑页地址、逻辑区段地址)对应至不同的通道。
这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的某些变化例,记忆装置100中的某一储存器(例如:该控制器中的某一储存器诸如只读存储器112M或缓冲存储器116、或该控制器中任何形式的内存;又例如:闪存120)储存有该些地址对信道映像关系中的该至少一部分,而该控制器可自该储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系,诸如步骤914所述的该至少一地址对信道映像关系。
依据本实施例,给定符号「x」代表逻辑区段地址(例如:x=0、1、...等)且符号「n」代表一信道Ch(n)的索引(例如:n=0、1、...、(N-1)),则该些逻辑区段地址对信道映像关系可表示如下:
n=(x>>XPD)%N;
其中符号「>>」代表位平移的运算符,而符号「%」代表模运算(ModuloOperation)的运算符,且符号「XPD」代表一预定数值。如此,在本实施例中,通道Ch(n)的索引n可通过下列运算取得:将一特定逻辑区段地址诸如逻辑区段地址x向右位平移一预定数量的位,尤其是向右位平移XPD个位,以产生一平移结果,其中预定数值XPD代表该预定数量;以及计算将该平移结果除以一预定除数诸如N的余数,作为通道Ch(n)的索引n。例如:图1C绘示数量N等于4且预定数值XPD等于3的状况。换句话说,上述的运算可视为利用逻辑区段地址换算出其所属的逻辑页地址,再将逻辑页地址除以信道数,所得的余数即为信道索引。请注意到,上述利用将逻辑区段地址平移XPD个位以换算出逻辑页地址的技巧系适用于逻辑区段地址系以二进制方式表示的状况,本发明不以此为限,熟悉此项技艺者当得推知其他表示方式所使用的运算技巧。图3A至图3B为图2所示的方法910在一实施例中的实施细节。如图3A所示,数据310代表基于一写入指令诸如指令CMD(k11)所要写入的数据,其中数据310为属于通道Ch(0)的一逻辑页中的数个区段(例如:区段4、5、6、与7)的数据,且为不满一页的数据。基于步骤912的运作,该控制器判定数据310所涉及的逻辑区段地址x(在本实施例即逻辑区段地址4、5、6、与7)仅仅对应于通道Ch(0),故在进行数据310的写入运作时,该控制器可在其它信道诸如信道Ch(1)、Ch(2)、与Ch(3)进行其它运作。如此,在步骤914所述的至少一信道未包含该些信道Ch(0)、Ch(1)、Ch(2)与Ch(3)中的全部的通道的状况下,该控制器不针对该些信道中的其它信道(例如Ch(1)、Ch(2)、与Ch(3))当中的相对应逻辑页重写旧数据。
如图3B所示,由于数据310并未占满其所属的逻辑页,也就是说,此逻辑页将被部分地更新,故该控制器寻找并取得此逻辑页的其它部分的数据诸如数据312,尤其是未更新前之最新的数据(其以阴影绘示,较易于理解)。于是,在步骤914中,该控制器依据逻辑区段地址4、5、6、与7对应于通道Ch(0)的映射关系,在该页模式中将这一页的数据(即数据310与312)透过至少一信道诸如信道Ch(0)写入闪存120。
实作上,该控制器可将数据310与312暂时地储存在该控制器的至少一缓冲器诸如缓冲器Buf(1)。该控制器可分析指令CMD(k21),以判断是否进行图3B所示的写入运作。于是,该控制器将缓冲器Buf(1)中所暂时地储存的数据310与312透过信道Ch(0)写入闪存120。请注意,暂时地储存数据310不会花费太多时间,这是因为于典型状况下相较于闪存120执行写入运作该主装置传送数据的速度甚快。
图4A至图4B为图2所示的方法910在另一实施例中的实施细节。如图4A所示,数据310与320分别代表基于某些写入指令诸如指令CMD(k21)与CMD(k22)所要写入的资料,其中本实施例的资料310与图3A所示实施例的数据310相同,而数据320为属于通道Ch(1)的一逻辑页中的多个区段(例如:区段12、13、14、与15)的数据,且为不满一页的数据。基于步骤912的运作,该控制器判定数据310所涉及的逻辑区段地址x(在本实施例即逻辑区段地址4、5、6、与7)仅仅对应于通道Ch(0),且判定数据320所涉及的逻辑区段地址x(在本实施例即逻辑区段地址12、13、14、与15)仅仅对应于通道Ch(1),故在进行数据310的写入运作时,该控制器可在其它信道诸如信道Ch(2)与Ch(3)进行其它运作。如此,在步骤914所述的至少一信道未包含该些信道Ch(0)、Ch(1)、Ch(2)与Ch(3)中的全部的通道的状况下,该控制器不针对该些信道中的其它信道(例如Ch(2)与Ch(3))当中的相对应逻辑页重写旧数据。
如前面所述,该控制器可寻找并取得数据312。相仿地,由于数据320并未占满其所属的逻辑页,故该控制器寻找并取得此逻辑页的其它部分的数据诸如数据322。请接着参考图4B。于是,在步骤914中,该控制器依据逻辑区段地址4、5、6、与7对应于通道Ch(0)的映像关系以及逻辑区段地址12、13、14、与15对应于通道Ch(1)的映射关系,在该页模式中将这两页的数据(即数据310与312以及数据320与322)透过至少一信道诸如信道Ch(0)与Ch(1)分别写入闪存120。
在本实施例中,该控制器自该主装置先接收指令CMD(k21),其次接收指令CMD(k22)。实作上,该控制器可将数据310、312、320、与322暂时地储存在该控制器的至少一缓冲器诸如缓冲器Buf(1)。该控制器可分析指令CMD(k21)与CMD(k22),以判断是否进行图4B所示的写入运作。于是,该控制器将缓冲器Buf(1)中所暂时地储存的数据310、312、320、与322同时透过通道Ch(0)与Ch(1)写入闪存120。
请注意,暂时地储存数据310与320不会花费太多时间,这是因为在典型状况下相较于闪存120执行写入运作该主装置传送数据的速度甚快。另外,由于该控制器写入数据310与320时,数据310、312、320、与322的每一个被视为同一组数据中的部分数据(Partial Data),故本实施例可减少对闪存120的写入运作的总次数。因此,相较于相关技术,本发明能够节省对闪存120的写入运作的时间。基于图1C所示的安排,本发明在进行随机写入之后的循序读取的效能甚佳。
依据本实施例的一变化例,数据310被代换为数据310’,其中数据310’为属于通道Ch(1)的一逻辑页中的全部的区段的资料。例如:资料310’包含分别属于区段8、9、10、11、12、13、14、与15的资料D8、D9、D10、D11、D12、D13、D14、与D15,且资料320包含分别属于区段12、13、14、与15的资料D12’、D13’、D14’、与D15’。由于该控制器自该主装置先接收指令CMD(k21),其次接收指令CMD(k22),故该控制器可分析指令CMD(k21)与CMD(k22),并且据以判断数据D8、D9、D10、D11、D12’、D13’、D14’、与D15’为分别属于区段8、9、10、11、12、13、14、与15的最新资料。实作上,该控制器可将数据D8、D9、D10、D11、D12’、D13’、D14’、与D15’暂时地储存在该控制器的至少一缓冲器诸如缓冲器Buf(1),而不需要暂时地储存数据D12、D13、D14、与D15。于是,该控制器将缓冲器Buf(1)中所暂时地储存的数据D8、D9、D10、D11、D12’、D13’、D14’、与D15’透过通道Ch(1)写入闪存120。
请注意,暂时地储存数据D8、D9、D10、D11、D12’、D13’、D14’、与D15’不会花费太多时间,这是因为在典型状况下相较于闪存120执行写入运作该主装置传送数据的速度甚快。另外,由于该控制器只将分别属于区段8、9、10、11、12、13、14、与15的最新资料D8、D9、D10、D11、D12’、D13’、D14’、与D15’写入闪存120,故本变化例可减少对闪存120的写入运作的总次数。因此,相较于相关技术,本发明能够节省对闪存120的写入运作的时间。
图5A至图5B为图2所示的方法910在另一实施例中的实施细节。如图5A所示,资料{310A,310B}、{320A,320B}、与{330A,330B}分别代表基于某些写入指令诸如指令CMD(k31)、CMD(k32)、与CMD(k33)所要写入的资料。在本实施例中,数据310A为属于通道Ch(0)的一逻辑页中的多个区段(例如:区段38与39)的数据,且数据310B为属于通道Ch(1)的一逻辑页中的多个区段(例如:区段40与41)的资料。另外,数据320A为属于通道Ch(1)的一逻辑页中的多个区段(例如:区段46与47)的数据,且数据320B为属于通道Ch(2)的一逻辑页中的多个区段(例如:区段48与49)的资料。此外,数据330A为属于通道Ch(2)的一逻辑页中的多个区段(例如:区段54与55)的数据,且数据330B为属于通道Ch(3)的一逻辑页中的多个区段(例如:区段56与57)的资料。请注意,资料310A、310B、320A、320B、330A、与330B分别为不满一页的数据。基于步骤912的运作,该控制器判定数据310A所涉及的逻辑区段地址x(在本实施例即逻辑区段地址38与39)对应于通道Ch(0),且判定数据310B与320A所涉及的逻辑区段地址x(在本实施例即逻辑区段地址40、41、46、与47)对应于通道Ch(1),并判定数据320B与330A所涉及的逻辑区段地址x(在本实施例即逻辑区段地址48、49、54、与55)对应于通道Ch(2),并且判定数据330B所涉及的逻辑区段地址x(在本实施例即逻辑区段地址56与57)对应于通道Ch(3),故该控制器可同时在所有的信道诸如信道Ch(0)、Ch(1)、Ch(2)与Ch(3)进行写入运作。
相仿地,由于数据310A、310B、320A、320B、330A、与330B并未占满其各自所属的逻辑页,故该控制器寻找并取得这些逻辑页的其它部分的数据诸如数据312A、312B、322B、与332B。在本实施例中,由于该控制器依据指令CMD(k31)、CMD(k32)、与CMD(k33)所代表的写入运作的顺序判断数据310A、310B、320A、320B、330A、与330B没有重迭,故在数据310A、310B、320A、320B、330A、与330B中的任一个不会代换掉另一个。请接着参考图5B。于是,在步骤914中,该控制器依据逻辑区段地址38与39对应于通道Ch(0)的映像关系以及逻辑区段地址40、41、46、与47对应于通道Ch(1)的映像关系,且依据逻辑区段地址48、49、54、与55对应于通道Ch(2)的映像关系以及逻辑区段地址56与57对应于通道Ch(3)的映射关系,在该页模式中将这四页的数据(即数据{310A,312A}、资料{310B,312B,320A}、资料{320B,322B,330A}、以及数据{330B,332B})透过至少一信道诸如所有的信道Ch(0)、Ch(1)、Ch(2)与Ch(3)分别写入闪存120。
在本实施例中,该控制器自该主装置先接收指令CMD(k31),其次接收指令CMD(k32),接着接收指令CMD(k33)。实作上,该控制器可将数据{310A,310B}、{320A,320B}、与{330A,330B}暂时地储存在该控制器的至少一缓冲器诸如缓冲器Buf(1)。该控制器可分析指令CMD(k31)、CMD(k32)、与CMD(k33),以判断是否进行图5B所示的写入运作。
请注意,暂时地储存数据{310A,310B}、{320A,320B}、与{330A,330B}不会花费太多时间,这是因为在典型状况下相较于闪存120执行写入运作该主装置传送数据的速度甚快。另外,由于该控制器写入数据{310A,310B}、{320A,320B}、与{330A,330B}时,资料310A、312A、310B、312B、320A、320B、322B、330A、330B、与332B的每一个被视为同一组数据中的部分数据,故本实施例可减少对闪存120的写入运作的总次数。因此,相较于相关技术,本发明能够节省对闪存120的写入运作的时间。基于图1C所示的安排,本发明在进行随机写入之后的循序读取的效能甚佳。
本发明的好处之一是,依据本发明所实现的管理可提升具有多通道的闪存的整体的通道带宽。另外,基于对应于该些通道的安排,诸如图1C所示的安排,本发明不会有过度使用某一通道的问题。当主装置欲在短时间内写入连续逻辑页地址的数据时,依据本发明,内存控制器会将该些数据分散至不同信道上的闪存芯片,随后,当主装置欲读取该些数据时,内存控制器即可平行地自不同信道的闪存芯片上读取该些数据回复给主装置,从而,访问速度即可显著提升。相较于相关技术,本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (21)
1.一种用来进行区块管理的方法,该方法应用于具有多信道的闪存的控制器,该闪存包含分别对应于该些信道的多个区块,其特征在于,该方法包含有:
取得多个地址对信道映像关系中的至少一部分,以供写入运作之用,所述多个地址对信道映像关系包括:使对应于一特定信道的多个区块上的任意两个实体页所映像的逻辑页地址的差异,为所述闪存中所述信道总数的整数倍;
依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存;
若待写入的数据不满一页,则寻找并取得对应逻辑页的其他部分数据,暂时地将所述待写入的数据和所述其他部分数据储存在至少一缓冲器中,根据所接收的后续指令判断是否进行写入运作。
2.根据权利要求1所述的方法,其特征在于,其中该些地址对信道映像关系还包括逻辑区段地址对信道映像关系。
3.根据权利要求2所述的方法,其特征在于,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些信道的映像关系。
4.根据权利要求2所述的方法,其特征在于,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及
计算将该平移结果除以一预定除数的余数,作为一信道的索引。
5.根据权利要求1所述的方法,其特征在于,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
6.根据权利要求1所述的方法,其特征在于,其中取得该多个地址对信道映像关系中的该至少一部分以供写入运作之用的步骤另包含:
自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
7.根据权利要求1所述的方法,其特征在于,其中依据该多个地址对信道映像关系中的该至少一地址对信道映像关系在该页模式中将该至少一页的数据透过该至少一信道写入该闪存的步骤另包含:
在该至少一信道未包含该些信道中的全部的信道的状况下,不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
8.一种记忆装置,其特征在于,其包含有:
具有多信道的一闪存,该闪存包含分别对应于该些信道的多个区块;以及
一控制器,用来存取该闪存以及管理该多个区块,其中该控制器取得多个地址对信道映像关系中的至少一部分,以供写入运作之用,所述多个地址对信道映像关系包括:使对应于一特定信道的多个区块上的任意两个实体页所映像的逻辑页地址的差异,为所述闪存中所述信道总数的整数倍;
其中该控制器依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存;
若待写入的数据不满一页,则所述控制器寻找并取得对应逻辑页的其他部分数据,并暂时地将所述待写入的数据和所述其他部分数据储存在所述控制器的至少一缓冲器中,根据所述控制器所接收的后续指令判断是否进行写入运作。
9.根据权利要求8所述的记忆装置,其特征在于,其中该些地址对信道映像关系还包括逻辑区段地址对信道映像关系。
10.根据权利要求9所述的记忆装置,其特征在于,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些信道的映像关系。
11.根据权利要求9所述的记忆装置,其特征在于,其中该控制器将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及该控制器计算将该平移结果除以一预定除数的余数,作为一信道的索引。
12.根据权利要求8所述的记忆装置,其特征在于,其中该控制器依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
13.根据权利要求8所述的记忆装置,其特征在于,其中该控制器自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
14.根据权利要求8所述的记忆装置,其特征在于,其中在该至少一信道未包含该些信道中的全部的信道的状况下,该控制器不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
15.一种记忆装置的控制器,该控制器系用来存取具有多信道的一闪存,该闪存包含分别对应于该些信道的多个区块,其特征在于,该控制器包含有:
一只读存储器用来储存一程序代码;以及
一微处理器,连接该只读存储器,用来执行该程序代码以控制对该闪存的存取以及管理该多个区块,其中用于透过该微处理器执行该程序代码的该控制器取得多个地址对信道映像关系中的至少一部分,以供写入运作之用,所述多个地址对信道映像关系包括:使对应于一特定信道的多个区块上的任意两个实体页所映像的逻辑页地址的差异,为所述闪存中所述信道总数的整数倍;
其中用于透过该微处理器执行该程序代码的该控制器依据该多个地址对信道映像关系中的至少一地址对信道映像关系,在页模式中将至少一页的数据透过至少一信道写入该闪存;
若待写入的数据不满一页,则所述控制器寻找并取得对应逻辑页的其他部分数据,并暂时地将所述待写入的数据和所述其他部分数据储存在所述控制器的至少一缓冲器中,根据所述控制器所接收的后续指令判断是否进行写入运作。
16.根据权利要求15所述的控制器,其特征在于,其中该些地址对信道映像关系还包括逻辑区段地址对信道映像关系。
17.根据权利要求16所述的控制器,其特征在于,其中该多个地址对信道映像关系代表多个逻辑区段地址分别对应于该些信道的映像关系。
18.根据权利要求16所述的控制器,其特征在于,其中该控制器将一特定逻辑区段地址向右位平移一预定数量的位,以产生一平移结果;以及该控制器计算将该平移结果除以一预定除数的余数,作为一信道的索引。
19.根据权利要求15所述的控制器,其特征在于,其中该控制器依据一预定规则进行计算,以取得该些地址对信道映像关系中的该至少一部分。
20.根据权利要求15所述的控制器,其特征在于,其中该控制器自一储存器读取该些地址对信道映像关系中的该至少一部分中的至少一地址对信道映像关系。
21.根据权利要求15所述的控制器,其特征在于,其中在该至少一信道未包含该些信道中的全部的信道的状况下,该控制器不针对该些信道中的其它信道当中的相对应逻辑页重写旧数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010557139.8A CN102479157B (zh) | 2010-11-22 | 2010-11-22 | 用来进行区块管理的方法、记忆装置及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010557139.8A CN102479157B (zh) | 2010-11-22 | 2010-11-22 | 用来进行区块管理的方法、记忆装置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479157A CN102479157A (zh) | 2012-05-30 |
CN102479157B true CN102479157B (zh) | 2015-05-27 |
Family
ID=46091809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010557139.8A Active CN102479157B (zh) | 2010-11-22 | 2010-11-22 | 用来进行区块管理的方法、记忆装置及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479157B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861884B (zh) * | 2017-11-06 | 2020-06-02 | 华中科技大学 | 一种提高nand闪存中跨页存储地址映射效率的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727295A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 一种基于虚拟块闪存地址映射的数据写入及读出方法 |
CN101789259A (zh) * | 2009-01-22 | 2010-07-28 | 银灿科技股份有限公司 | 应用于快闪存储器的阶层化分层处理数据的方法及其装置 |
CN101866676A (zh) * | 2009-04-16 | 2010-10-20 | 智微科技股份有限公司 | 用于多通道快闪存储系统的数据存取方法及其数据存取装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112574B2 (en) * | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
US20070294467A1 (en) * | 2006-06-20 | 2007-12-20 | Kwok-Yan Leung | Multi-Channel Flash Memory Data Access Method |
-
2010
- 2010-11-22 CN CN201010557139.8A patent/CN102479157B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727295A (zh) * | 2008-10-31 | 2010-06-09 | 西安奇维测控科技有限公司 | 一种基于虚拟块闪存地址映射的数据写入及读出方法 |
CN101789259A (zh) * | 2009-01-22 | 2010-07-28 | 银灿科技股份有限公司 | 应用于快闪存储器的阶层化分层处理数据的方法及其装置 |
CN101866676A (zh) * | 2009-04-16 | 2010-10-20 | 智微科技股份有限公司 | 用于多通道快闪存储系统的数据存取方法及其数据存取装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102479157A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100547566C (zh) | 基于多通道闪存设备逻辑条带的控制方法 | |
CN100530138C (zh) | 基于多通道闪存设备逻辑条带的自适应控制方法 | |
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
TWI710900B (zh) | 儲存裝置及方法 | |
TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
CN101727295B (zh) | 一种基于虚拟块闪存地址映射的数据写入及读出方法 | |
CN103246609B (zh) | 一种闪存存储设备中冷热数据区分管理的方法及装置 | |
CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
US20120079170A1 (en) | Method for performing block management, and associated memory device and controller thereof | |
CN101458613A (zh) | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 | |
CN103838676B (zh) | 数据存储系统、数据存储方法及pcm桥 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
CN101634967A (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN102246151A (zh) | 存储器装置及其控制方法 | |
CN101620572A (zh) | 非易失性内存及控制方法 | |
CN102609358B (zh) | 聚集静态数据的方法及其固态硬盘 | |
CN101630233A (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN102520885B (zh) | 一种混合硬盘的数据管理系统 | |
CN103885724A (zh) | 基于相变存储器的存储系统结构及其损耗均衡算法 | |
CN103617124A (zh) | 一种闪存管理方法和装置 | |
SG126863A1 (en) | Recording apparatus | |
CN101833514B (zh) | 基于微内存系统在与非型闪存介质实现虚拟内存的方法 | |
CN101441596A (zh) | 提高闪存介质读写速度的方法 | |
CN102479157B (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 |