数据储存装置与数据处理方法与流程

文档序号:18266945发布日期:2019-07-27 09:15阅读:165来源:国知局
本发明有关于一种数据处理方法,可有效提升数据储存装置的存取效能,并且大幅缩短搜寻出所需的实体地址的时间。
背景技术
::随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合sd/mmc规格、cf规格、ms规格与xd规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedmultimediacard,缩写为emmc)以及通用快闪存储器储存(universalflashstorage,缩写为ufs)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。在数据储存装置操作的过程中通常会在本身的缓冲存储器中储存一实体地址至逻辑地址对照表或是至少一个逻辑地址至实体地址对照表,而在存储器控制器接收到一读取命令时可以从上述对照表搜寻出所需的实体地址。然而,随着区块的大小增加及所包含的数据页也跟着变多的情形下,上述对照表的大小也会大幅增加,因此搜寻出所需的实体地址的时间也会增加许多,因此影响到数据储存装置的存取效能。有鉴于此,本发明提出一种数据处理方法,可有效提升数据储存装置的存取效能,并且大幅缩短搜寻出所需的实体地址的时间。技术实现要素:本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器控制器耦接存储器装置,用以存取存储器装置,并建立一实体地址至逻辑地址对照表以及一逻辑地址群组记录表。实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址。逻辑地址群组记录表标注了多个逻辑地址群组的状态。每一个逻辑地址群组的状态用来表示实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组之中的任一逻辑地址。逻辑地址群组记录表包含多个维度的群组位元,逻辑地址群组记录表利用多个群组位元区别不同的逻辑地址群组。当存储器控制器接收用以要求将一第一特定逻辑地址的数据写入至存储器装置的一写入命令时,存储器控制器根据第一特定逻辑地址决定出第一特定逻辑地址于各维度所对应的群组位元,并且对应地设定等群组位元的一数位值。本发明揭示一种数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置以及一存储器控制器,存储器控制器耦接存储器装置,用以存取存储器装置,该方法包括:建立一实体地址至逻辑地址对照表,其中实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址;建立一逻辑地址群组记录表,其中逻辑地址群组记录表标注了多个逻辑地址群组的状态,每一个逻辑地址群组的状态用来表示实体地址至逻辑地址对照表中是否有记录位于逻辑地址群组之中的任一逻辑地址,并且其中逻辑地址群组记录表包含多个维度的群组位元,逻辑地址群组记录表利用多个群组位元区别不同的逻辑地址群组;接收用以要求将一第一特定逻辑地址的数据写入至存储器装置的一写入命令;以及根据第一特定逻辑地址决定出第一特定逻辑地址于各维度所对应的群组位元,并且对应地设定等群组位元的一数位值。附图说明图1是显示根据本发明的一实施例所述的存储器装置的示意图。图2是显示根据本发明的一实施例所述的存储器装置及对应的实体地址至逻辑地址对照表的示意图。图3是显示根据本发明的一实施例所述的逻辑地址至实体地址对照表的示意图。图4是显示根据本发明的一实施例所述的逻辑地址群组记录表所记录的逻辑地址群组示意图。图5是显示根据本发明的一实施例所述的逻辑地址群组记录表示意图。图6是显示根据本发明的一实施例所述的于数据储存装置应用多维度的逻辑地址群组记录表的对应数据处理方法流程图。图7a与7b是显示根据本发明的一实施例所述的二维逻辑地址群组记录表的各维度的群组位元与逻辑地址群组编号示意图。图8a与8b是显示根据本发明的一实施例所述的三维逻辑地址群组记录表的各维度的群组位元与逻辑地址群组编号示意图。图9是显示根据本发明一实施例所述的存取存储器装置的流程图。符号说明100-数据储存装置;110-存储器控制器;112-微处理器;112m-只读存储器;112c-程序码;114-控制逻辑;116-缓冲存储器;118-界面逻辑;120-存储器装置;130-主机装置;132-编码器;134-解码器;200-实体地址至逻辑地址对照表;210、220-快闪存储器芯片;310_1、310_2-逻辑地址至实体地址对照表;400、500-逻辑地址群组记录表;b_0、b_m-存储器区块;bit_0、bit_1、bit_2、bit_3、bit_4、bit_5、bit_6、bit_7、*bit_0、*bit_1、*bit_2、*bit_3、*bit_4、*bit_5、*bit_6、*bit_7、*bit_7、**bit_0、**bit_1、**bit_2、**bit_3-群组位元;lba_0、lba_1、lba_2、lba_5、lba_6、lba_7、lba_100、lba_255、lba_256、lba_257、lba_258、lba_350、、lba_500、lba_511-逻辑地址;p0、p1、p2、p3、p4、p5、pn-数据页;section_0、section_1、section_2、section_7、section_8、section_9、section_10、section_15、section_16、section_17、section_18、section_31、section_56、section_57、section_58、section_63-逻辑地址群组。具体实施方式为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(flashmemory)模组,以及一存储器控制器110,且存储器控制器110用来存取(access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(readonlymemory,rom)112m、一控制逻辑114、一缓冲存储器116、与一界面逻辑118。只读存储器112m用来储存一程序码112c,而微处理器112则用来执行程序码112c以控制对存储器装置120的存取。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(errorcorrectioncode),ecc),而解码器134用来将从存储器装置120所读出的数据进行解码。于典型状况下,存储器装置120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含多个存储器区块(block),而该控制器(例如,透过微处理器112执行程序码112c的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(page),其中该控制器(例如,透过微处理器112执行程序码112c的存储器控制器110)对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。实作上,透过微处理器112执行程序码112c的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用界面逻辑118来与一主机装置(hostdevice)130沟通。缓冲存储器116是以随机存取存储器(randomaccessmemory,ram)来实施。例如,缓冲存储器116可以是静态随机存取存储器(staticram,sram),但本发明不限于此。在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合sd/mmc、cf、ms、xd标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合通用快闪存储器储存(universalflashstorage,ufs)或嵌入式多媒体记忆卡(embeddedmultimediacard,emmc)规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。图2是显示根据本发明的一实施例所述的存储器装置及对应的实体地址至逻辑地址对照表的示意图。根据本发明的一实施例,存储器装置120可包含多个快闪存储器芯片,例如快闪存储器芯片210、220,每一个快闪存储器芯片包含了多个存储器区块b_0~b_m,而每一个存储器区块包含了n个数据页p0~pn,其中n为一正整数。在以下的说明中,存储器控制器110是将数据循序写入到快闪存储器芯片210的存储器区块b_0的数据页,然而,需注意的是,上述的"存储器区块"在实作上也可以是包含了多个芯片的位于不同平面(plane)的多个存储器区块(一般称为"超级区块"),举例来说,假设快闪存储器芯片210、220均包含了两个平面(plane),而存储器区块b_0及b_m是位于不同的平面,则快闪存储器芯片210的存储器区块b_0、b_m以及快闪存储器芯片220的存储器区块b_0、b_m可以构成一个超级区块。为了便于说明,以下段落关于存储器装置的存取系以存储器区块b_0为例做说明,但本领域技术人员可推知其同样适用于超级区块。在数据写入至存储器区块b_0时,微处理器112会建立一实体地址至逻辑地址对照表(以下称p2l对照表)200,并将此p2l对照表200储存于缓冲存储器116之中,其中p2l对照表200包含存储器区块b_0中的连续的数据页的实体地址p0~pn,以及所对应的逻辑地址。详细来说,存储器控制器110首先将来自主机装置130且具有逻辑地址lba_5的数据写入至数据页p0中,接着,依序将来自主机装置130且具有逻辑地址lba_500、lba_350、lba_6、lba_7、lba_100的数据分别写入至数据页p1~p5。此外,在存储器区块b_0的所有数据页p0~pn都完成数据写入之后,微处理器112可将p2l对照表200储存至存储器模组120。需注意的是,在本实施例中,逻辑地址的序号代表着其顺序,而连续的序号代表着连续的逻辑地址。如上述,随着存储器装置的容量增加,其所包含的存储器区块及数据页的数量也跟着变多的情形下,上述p2l对照表200的大小也会大幅增加,因此根据p2l对照表200搜寻出所需的实体地址的时间也会增加许多,进而影响到数据储存装置的存取效能。有鉴于此,本发明提出一种多维度的逻辑地址群组记录表架构及于数据储存装置应用此多维度的逻辑地址群组记录表的对应数据处理方法,可有效提升数据储存装置的存取效能、节省记录表所占用的存储器空间,并且大幅提升判断实体地址的精准度及缩短搜寻出所需的实体地址的时间。根据本发明的一实施例,除上述p2l对照表外,微处理器112可另外建立一逻辑地址群组记录表(logicaladdresssectiontable),亦可称目前存储器区块命中记录表(currentblockhittable,缩写为cbht),并储存在缓冲存储器116中,其中逻辑地址群组记录表标注了多个逻辑地址群组的状态,其中每一个逻辑地址群组的该状态用来表示p2l对照表200中是否有记录位于该逻辑地址群组之中的任一逻辑地址,即,目前接收数据的存储器区块(例如,目前存储器区块,诸如上述之存储器区块b_0)是否存有该逻辑地址群组之中的任一逻辑地址的数据。如此一来,每当存储器控制器110接收到一读取命令以要求读取该存储器装置中的一数据时,可先根据对应的逻辑地址群组于逻辑地址群组记录表所对应的状态决定是否搜寻p2l对照表200。当读取地址所属的逻辑地址群组于逻辑地址群组记录表所对应的状态指示出p2l对照表200记录有位于该逻辑地址群组之中的任一逻辑地址,则存储器控制器110可进一步搜寻p2l对照表200。当读取地址所属的逻辑地址群组于逻辑地址群组记录表所对应的状态指示出p2l对照表200并未记录位于该逻辑地址群组之中的任一逻辑地址,则存储器控制器110无须搜寻p2l对照表200,而改为搜寻其他对照表(以下将有更详细的介绍),以缩短搜寻出所需的实体地址的时间。根据本发明的一实施例,每一个逻辑地址群组包含了一逻辑地址范围,且该逻辑地址范围系相同于该存储器装置所使用的一逻辑地址至实体地址对照表的范围。一般而言,存储器装置120中会储存一个全域逻辑地址至实体地址对照表(以下称gl2p对照表),该全域逻辑地址至实体地址对照表包含有多个局部逻辑地址至实体地址对照表(以下称l2p对照表),而每一个l2p对照表都包含了一逻辑地址范围的映射资讯。于一使用情境中,存储器区块可依据其使用状态区分为目前区块(currentblock)、数据区块(datablock)以及空闲区块(spareblock)。当主机装置130写入数据至数据储存装置100时,微处理器112可从空闲区块中选取一个存储器区块作为目前区块,并且将数据写入该目前区块,并且在缓冲存储器116中维护该目前区块的p2l对照表。当目前区块写满时,微处理器112可将目前区块的p2l对照表储存到存储器装置120,并且依据p2l对照表更新存储器装置120中的多个l2p对照表。接着,目前区块的使用状态会转换为数据区块。图3是显示根据本发明的一实施例所述的逻辑地址至实体地址对照表的示意图。图示的l2p对照表310_1、310_2包含了连续的逻辑地址及对应的实体地址,其中第一个l2p对照表310_1用来储存逻辑地址lba_0~lba_255所对应到的实体地址(需注意,不一定每一个逻辑地址相对应的实体地址都存在,例如,当一逻辑位置相对应的实体地址不存在时可以"0xffffff"表示)、第二个l2p对照表310_2用来储存逻辑地址lba_256~lba_511所对应到的实体地址、第三个l2p对照表用来储存lba_512~lba_767所对应到的实体地址、…以此类推。因此,于本发明的一实施例中,第一逻辑地址群组(例如,section_0)可包含逻辑地址范围lba_0~lba_255,亦即,当逻辑地址lba_0~lba_255之中有任一逻辑地址被记录于p2l对照表200中时,存储器控制器110可对应地设定第一逻辑地址群组于逻辑地址群组记录表所对应的状态,用以藉由此状态指示出p2l对照表200记录有位于第一逻辑地址群组之中的至少一逻辑地址。根据本发明的一实施例,所述的逻辑地址群组记录表为一多维度的记录表,其包含多个维度的群组位元(sectionbit)。所述的逻辑地址群组记录表利用多个群组位元区别不同的逻辑地址群组。图4是显示根据本发明的一实施例所述的逻辑地址群组记录表中所记录的逻辑地址群组示意图。根据本发明的一实施例,逻辑地址群组记录表400包含至少一第一维度之一或多个群组位元以及一第二维度之一或多个群组位元,例如第一维度的群组位元bit_0、bit_1、bit_2、…bit_7,以及第二维度的群组位元*bit_0、*bit_1、*bit_2、…*bit_7。各维度所使用的群组位元数量可依设计的需求任意地被选择,因此,并不限于本范例中所使用的8个位元。一般而言,当存储器容量越大时,若使用的位元数越多,存储器控制器110可正确判断出所欲读取的逻辑地址所对应的实体地址资讯是否被储存于p2l对照表的精准度越高。根据本发明的一实施例,逻辑地址群组记录表利用这些群组位元所对应的数位值来表示各逻辑地址群组的状态,其中第一维度的群组位元用以表示多个逻辑地址群组编号相差一固定值的逻辑地址群组的状态,第二维度的群组位元用以表示多个具有连续逻辑地址群组编号的逻辑地址群组的状态。举例而言,第一维度的群组位元bit_0用以表示逻辑地址群组section_0、section_8、section_16…等的状态(其中的数字即代表逻辑地址群组编号),群组位元bit_1用以表示逻辑地址群组section_1、section_9、section_17…等的状态,并以此类推。第二维度的群组位元*bit_0用以表示逻辑地址群组section_0~section_7的状态,群组位元*bit_1用以表示逻辑地址群组section_8~section_15…等的状态,并以此类推。因此,第一维度的群组位元bit_x结合第二维度的群组位元*bit_n用以表示逻辑地址群组section_(8n+x)的状态,其中n与x可为0或一正整数,其数值范围取决于各维度所使用的群组位元数量,藉此区别不同的逻辑地址群组。需注意的是图4所示的逻辑地址群组记录表400仅是一个范例说明,而非是作为本发明的限制。只要逻辑地址群组记录表400可以利用多维度的群组位元来表达p2l对照表200中是否有记录位于各个逻辑地址群组之中的任一逻辑地址,其细节内容可以有不同的变化,而这些设计上的变化均应隶属于本发明的范畴。此外,需注意的是图4所示的逻辑地址群组数量仅是为了简化说明而呈现的一个范例,存储器装置120所包含的逻辑地址群组数量实际上取决于存储器装置120的容量。根据本发明的一实施例,第一维度的群组位元bit_x与第二维度的群组位元*bit_n的数位值可被设定为"0"或"1",逻辑地址群组记录表利用这些群组位元所被设定的数位值来表示这些群组位元所对应的逻辑地址群组的状态。举例而言,当群组位元bit_0的数位值被设定为一既定数值,例如,数值"1"时,表示p2l对照表200中有记录逻辑地址群组section_0、section_8、section_16…等之中的任一逻辑地址群组所包含的任一逻辑地址。同理,当群组位元*bit_0的数位值被设定为一既定数值,例如,数值"1"时,表示p2l对照表200中有记录逻辑地址群组section_0~section_7之中的任一逻辑地址群组所包含之任一逻辑地址。另一方面,当群组位元bit_0的数位值被设定为另一既定数值,例如,数值"0"时,表示p2l对照表200中并未记录逻辑地址群组section_0、section_8、section_16…等之中的任一逻辑地址群组所包含的任一逻辑地址。同理,当群组位元*bit_0的数位值被设定为一既定数值,例如,数值"0"时,表示p2l对照表200中并未记录逻辑地址群组section_0~section_7之中的任一逻辑地址群组所包含的任一逻辑地址。换言之,当群组位元bit_0与*bit_0的数位值均被设定为数值"1"时,表示p2l对照表200中有记录逻辑地址群组section_0所包含的任一逻辑地址。图5是显示根据本发明的一实施例所述的逻辑地址群组记录表示意图。逻辑地址群组记录表500例示出逻辑地址群组记录表所纪录的内容,其中(*bit,bit)显示出各群组位元的数位值。根据本发明的一实施例,当逻辑地址群组记录表中一特定逻辑地址群组所对应的所有群组位元的数位值均被设定为数值"1"时,例如,图中所示的状态(1,1),表示p2l对照表200中有记录该特定逻辑地址群组所包含的任一逻辑地址。图6是显示根据本发明的一实施例所述的于数据储存装置应用此多维度的逻辑地址群组记录表的对应数据处理方法流程图。首先,存储器控制器110建立一实体地址至逻辑地址对照表(步骤s602)。如上述,实体地址至逻辑地址对照表包含了连续的实体地址及其对应的逻辑地址。接着,存储器控制器110建立一多维度的逻辑地址群组记录表(步骤s604)。多维度的逻辑地址群组记录表标注了多个逻辑地址群组的状态,每一个逻辑地址群组的该状态用来表示该实体地址至逻辑地址对照表中是否有记录位于该逻辑地址群组之中的任一逻辑地址。多维度的逻辑地址群组记录表包含多个维度的群组位元,并利用这些群组位元区别不同的逻辑地址群组。接着,每当接收用以要求将一特定逻辑地址的数据写入至该存储器装置的一写入命令时(步骤s606),存储器控制器110根据此特定逻辑地址决定出此逻辑地址于各维度所对应的群组位元,并且对应地设定这些群组位元的一数位值(步骤s608)。根据本发明的一实施例,逻辑地址包含多个位元,于步骤s608中,存储器控制器110可根据不同的位元计算出逻辑地址于不同维度所对应的群组位元为何,再对应地设定这些群组位元的数位值。举例而言,存储器控制器110可先根据一特定逻辑地址的位元取得此特定逻辑地址所对应的一逻辑地址群组编号,再根据此逻辑地址群组编号判断出此特定逻辑地址至少各维度所对应的一群组位元为何。图7a与7b是显示根据本发明的一实施例所述的二维逻辑地址群组记录表的各维度的群组位元与逻辑地址群组编号示意图。根据本发明的一实施例,假设一个逻辑地址包含14个位元,而一个逻辑地址群组被设定为包含了256个逻辑地址,则存储器控制器110可先将逻辑地址的最末的8个位元舍弃,直接获得此逻辑地址所对应的逻辑地址群组编号。即,自最低有效位元(lsb)至最高有效位元(msb)的方向直接选择8个位元舍弃之,以获得对应的逻辑地址群组编号。经舍弃部分位元后,此逻辑地址剩余的位元(二进位表示)经转换后即为图中所示的逻辑地址群组编号(十进位表示)。接着,假设第一维度使用k个群组位元,其中k为一正整数,则存储器控制器110可将此逻辑地址的群组编号模除(moduleoperation,表示为mod)k,所得之余数即为此逻辑地址所对应的第一维度的群组位元。举例而言,假设群组编号模除k(section_nomodk)之后所得的余数为0,表示此逻辑地址于第一维度的群组位元为bit_0,若群组编号模除k(section_nomodk)之后所得的余数为1,表示此逻辑地址于第一维度的群组位元为bit_1,并以此类推。接着,假设第一维度使用k个群组位元,第二维度使用l个群组位元,其中l为一正整数,则存储器控制器110可将此逻辑地址的群组编号先除以k,再将所得的商数模除l,所得的余数即为此逻辑地址所对应的第二维度的群组位元。举例而言,假设群组编号模先除以k之后所得的商数再模除l所得的余数为0,表示此逻辑地址于第一维度的群组位元为*bit_0,若群组编号先除以k之后所得的商数再模除l所得的余数为1,表示此逻辑地址于第一维度的群组位元为*bit_1,并依此类推。上述的操作,实际上等同于直接取逻辑地址的部分位元进行转换,两者可得到相同的结果。更具体的说,存储器控制器110可直接取这些位元之一第一部分进行二进位至十进位转换,即可得此逻辑地址于第一维度的群组位元,以及直接取这些位元之一第二部分进行二进位至十进位转换,即可得此逻辑地址于第二维度的群组位元。举例而言,假设一特定逻辑地址为11001000001111,其所对应的逻辑地址群组编号为50。存储器控制器110藉由直接将(自最低有效位元(lsb)至最高有效位元(msb)的方向选择)第9~11个位元010进行二进位至十进位转换后,可得此逻辑地址第一维度的群组位元为2,以及将第12~14个位元110进行二进位至十进位转换后,可得此逻辑地址第二维度的群组位元为6,其结果与上述计算相等。换言之,根据本发明的一实施例,于实作上,可根据逻辑地址的位元数量决定出逻辑地址群组记录表欲使用的维度数量,以及各维度需使用多少个群组位元。于上述范例中,将逻辑地址舍弃最末的8个位元后所剩余的6个位元进一步分成两个部分,各部分包含3个位元,即,使用两个维度建立逻辑地址群组记录表,并且各维度包含了2^3=8个群组位元。图8a与8b是显示根据本发明的一实施例所述的三维逻辑地址群组记录表的各维度的群组位元与逻辑地址群组编号示意图。于此实施例中,假设一个逻辑地址包含14个位元,而一个逻辑地址群组被设定为包含了256个逻辑地址,则存储器控制器110可先将逻辑地址的最末的8个位元舍弃,直接获得此逻辑地址所对应的逻辑地址群组编号。接着,假设第一维度使用k个群组位元,第二维度使用l个群组位元,第三维度使用m个群组位元,其中k、l、m为一正整数,则存储器控制器110可将此逻辑地址的群组编号模除k,所得的余数即为此逻辑地址所对应的第一维度的群组位元。接着,存储器控制器110可将此逻辑地址的群组编号先除以k,再将所得的商数模除l,所得的余数即为此逻辑地址所对应的第二维度的群组位元。接着,存储器控制器110可将此逻辑地址的群组编号先除以k,再将所得的商数除以l,再将所得的商数模除m,所得的余数即为此逻辑地址所对应的第三维度的群组位元。以逻辑地址群组编号为50的逻辑地址为例,假设第一维、第二维度及第三维度均使用4个群组位元,存储器控制器110可将群组编号50模除4,所得的余数为2,此即为第一维度的群组位元。存储器控制器110再将此群组编号50先除以4,再将所得的商数12模除4,所得的余数为0,此即为第二维度的群组位元。存储器控制器110再将此群组编号50先除以4,再将所得的商数12除以4,再将所得的商数3模除4,所得的余数为3,此即为第三维度的群组位元。上述的操作亦等同于直接取逻辑地址的部分位元进行转换,两者可得到相同的结果。更具体的说,存储器控制器110可直接取这些位元的一第一部分进行二进位至十进位转换,即可得此逻辑地址于第一维度的群组位元,直接取这些位元的一第二部分进行二进位至十进位转换,即可得此逻辑地址于第二维度的群组位元,以及直接取这些位元的一第三部分进行二进位至十进位转换,即可得此逻辑地址于第三维度的群组位元,并以此类推。举例而言,假设一特定逻辑地址为11001000001111,其所对应的逻辑地址群组编号为50。存储器控制器110藉由直接将(自最低有效位元(lsb)至最高有效位元(msb)的方向选择)第9~10个位元10进行二进位至十进位转换后,可得此逻辑地址第一维度的群组位元为2,将第11~12个位元00进行二进位至十进位转换后,可得此逻辑地址第二维度的群组位元为0,以及第13~14个位元11进行二进位至十进位转换后,可得此逻辑地址第二维度的群组位元为3,其结果与上述计算相等。当逻辑地址群组记录表欲使用的维度数量大于3时,亦可依循上述计算方式得出各维度的群组位元。图9是显示根据本发明一实施例所述的存取存储器装置的流程图。流程可起始于存储器控制器110接收来自主机装置130的至少一写入命令,以将多笔数据写入至存储器装置120的一区块中,例如,存储器区块b_0。在步骤s902中,存储器控制器110将数据写入至存储器区块,并同步建立/更新p2l对照表与逻辑地址群组记录表,例如p2l对照表200与逻辑地址群组记录表500。如上述,存储器控制器110可根据写入命令所包含的第一特定逻辑地址取得第一特定逻辑地址于各维度所对应的群组位元。在步骤s904中,存储器控制器110接收到来自主机装置130的一读取命令,以要求自存储器装置120中读取具有一第二特定逻辑地址的数据。接着,在步骤s906中,存储器控制器110判断该第二特定逻辑地址所对应的一逻辑地址群组的状态。举例而言,存储器控制器110判断该第二特定逻辑地址所属的一逻辑地址群组的多个群组位元的数位值是否均被设定为一既定数值,例如,数值"1"。如上述,存储器控制器110可根据读取命令所包含的第二特定逻辑地址取得第二特定逻辑地址于各维度所对应的群组位元,并确认这些群组位元于逻辑地址群组记录表中所记录的数位值。若是,流程进入步骤s908;若否,则流程进入步骤s912。值得注意的是,根据本发明的其他实施例,于步骤s906中,存储器控制器110亦可逐一判断第二特定逻辑地址于各维度所对应的群组位元的数位值是否被设定为既定数值。若有任一维度的群组位元的数位值未被设定为既定数值,则流程进入步骤s912。根据本发明的一实施例,当第二特定逻辑地址(读取地址)所对应的逻辑地址群组的多个群组位元的数位值于逻辑地址群组记录表均被设定为一既定数值时,表示此读取地址所对应的逻辑地址群组的状态为p2l对照表记录有位于该逻辑地址群组之中的任一逻辑地址。因此,存储器控制器110根据各群组位元的数位值判断p2l对照表中是否有记录位于该第二特定逻辑地址所对应的一逻辑地址群组之中的任一逻辑地址,以决定是否搜寻p2l对照表。在步骤s908中,存储器控制器110搜寻p2l对照表,并判断第二特定逻辑地址是否位于p2l对照表中。若是,流程进入步骤s910;若否,则流程进入步骤s912。在步骤s910中,存储器控制器110可以直接地从储存在缓冲存储器116中的p2l对照表中来搜寻出第二特定逻辑地址所对应的实体地址,并根据所搜寻到的实体地址以自存储器装置120中找到储存在该实体地址的数据。在步骤s912中,由于第二特定逻辑地址所对应的逻辑地址群组的多个群组位元的数位值并未均被设定为一既定数值,因此代表着p2l对照表中并未储存有关于第二特定逻辑地址的资讯(亦即,存储器区块b_0未包含具有第二特定逻辑地址的数据),因此,存储器控制器110便不需要对p2l对照表进行搜寻的操作,而直接地判断缓冲存储器116上是否具有包含第二特定逻辑地址的l2p对照表。举例来说,假设第二特定逻辑地址为lba_700,则存储器控制器110判断缓冲存储器116中是否储存具有lba_512~lba_767相关资讯的l2p对照表,若是,流程进入步骤s914;若否,流程进步入步骤s916。在步骤s914中,由于缓冲存储器116储存具有lba_512~lba_767相关资讯的l2p对照表,故存储器控制器110可以直接自此l2p对照表中读取搜寻出第二特定逻辑地址lba_700所对应的实体地址,并根据所搜寻到的实体地址以自存储器装置120中读取储存在该实体地址的数据。在步骤s916中,由于缓冲存储器116不具有lba_512~lba_767相关资讯的l2p对照表,故存储器控制器110自存储器装置120中读取具有lba_512~lba_767相关资讯的l2p对照表并储存到缓冲存储器116中。接着,在步骤s918中,存储器控制器110自载入的l2p对照表中读取搜寻出特定逻辑地址lba_700所对应的实体地址,并根据所搜寻到的实体地址以自存储器装置120中读取储存在该实体地址的数据。后续流程可以回到步骤s902以继续将数据写入区块b_0并同步建立/更新p2l对照表与逻辑地址群组记录表,或是进入步骤s904以接收下一个读取命令。另外,若是存储器控制器110继续对区块b_0进行数据写入,则由于所写入的数据有可能是先前写入数据的更新数据(亦即,具有相同的逻辑地址),因此,为了避免后续的查找错误,一旦区块b_0有数据写入,先前因为读取命令所载入的一或多个l2p对照表会被设为无效,亦即缓冲存储器116中的l2p对照表会被标记为无效或是删除。参考以上的实施例所述,当存储器控制器110接收到读取命令的时候,会直接参考储存在缓冲存储器116中的逻辑地址群组记录表来判断读取命令所包含的逻辑地址是否有可能包含在缓冲存储器116的p2l对照表中,而若是逻辑地址群组记录表指出读取命令所包含的逻辑地址不存在于p2l对照表时,存储器控制器110便不需要对p2l对照表进行搜寻,而可以直接从缓冲存储器116的l2p对照表、或是自存储器装置120所载入的l2p对照表来取得所需的实体地址。因此,本发明的实施例可以确实降低无效搜寻p2l对照表的次数,故可以加速快闪存储器控制器的读取速度,增进系统效能。此外,于本发明的实施例中,逻辑地址群组记录表所使用的维度数量,以及各维度需使用群组位元数量均可弹性地选择,如此可进一步减少逻辑地址群组记录表于缓冲存储器116所占用的空间。如上述,于本发明的实施例中,可根据逻辑地址的位元数量(即,存储器装置120的存储器容量大小)决定出逻辑地址群组记录表欲使用的维度数量,以及各维度需使用的群组位元数量。举例而言,若存储器装置120所包含的逻辑地址可被区分为64个逻辑地址群组,则若仅以一个维度的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,需要使用64个群组位元。当存储器装置120的存储器容量增加,一个维度的逻辑地址群组记录表所需的群组位元数量也会随之线性地增加。若如本发明的图7a与7b所示的实施例,使用两个维度的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,则仅需使用16个群组位元(即,8+8=16),相较于一个维度的逻辑地址群组记录表,所需的群组位元数量已大幅减少。若如本发明的图8a与8b所示的实施例,使用三个维度的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,则仅需使用12个群组位元(即,4+4+4=12),相较于一个维度的逻辑地址群组记录表,所需的群组位元数量更进一步地被减少。同理,若使用更多维度(例如,四个、五个…等)的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,则所需使用的群组位元可再被减少。当存储器装置120的存储器容量越大时,藉由使用多维度逻辑地址群组记录表以降低缓冲存储器116所占用的空间的效益更加明显。此外,若以相等数量的群组位元来建立不同维度的逻辑地址群组记录表,则维度数量越多,逻辑地址群组记录表的精准度越高。举例而言,当缓冲存储器116的空间仅允许使用16个群组位元建立逻辑地址群组记录表,而存储器装置120所包含的逻辑地址可被区分为64个逻辑地址群组时,则若仅以一个维度的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,将导致每四个逻辑地址群组必须共用一个群组位元,此时逻辑地址群组记录表的精准度仅为25%。若以两个(或以上)维度的逻辑地址群组记录表来表示此64个逻辑地址群组的状态,则各逻辑地址群组都可对应于一组唯一的群组位元,此时逻辑地址群组记录表的精准度为100%。换言之,当可使用的群组位元数量相同时,维度越高的逻辑地址群组可区别的逻辑地址群组越多,精准度越高。因此,藉由本发明提出一种多维度的逻辑地址群组记录表架构及于数据储存装置应用此多维度的逻辑地址群组记录表的对应数据处理方法,可有效提升数据储存装置的存取效能、节省记录表所占用的存储器空间,并且大幅提升判断实体地址的精准度及缩短搜寻出所需的实体地址的时间。申请专利范围中用以修饰元件的"第一"、"第二"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本
技术领域
:者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1