存储控制的方法、记忆装置、存储器控制器及存储服务器与流程

文档序号:19946609发布日期:2020-02-18 09:30阅读:190来源:国知局
本发明关于数据存储,尤指一种用于在一存储服务器中进行存储控制的方法以及装置,例如,所述存储服务器的一容错式磁盘阵列(redundantarrayofindependentdisks,raid)可被实施为一全闪存阵列(allflasharray)。
背景技术
::当一传统的容错式磁盘阵列(redundantarrayofindependentdisks,简称为“raid”)以多个固态硬盘(solidstatedrive,ssd)来实施时,写入放大索引(writeamplificationindex,wai)相当高,特别是在一全闪存阵列(allflasharray)存储服务器。例如,三个数据组(dataset)可通过两个校验码组(parity-codeset)来保护,且写入一数据组的运作在传统的raid中可能需要三个读取运作以及三个写入运作以确保传统的raid能妥善地运作,其中其写入放大索引等于三。由于在所述多个固态硬盘的每一者中的存取闪存的管理相当复杂,其写入放大索引会达到二。于是,系统的整体写入放大索引会是上述两个写入放大索引的乘积,诸如六(即写入放大索引等于六)。因此,需要一种新颖的方法以及相关架构,以在没有副作用或较不会带来副作用的情况下解决这些问题。技术实现要素:因此,本发明的一目的在于公开一种用于在一存储服务器中进行存储控制的方法以及装置,以解决上述问题。本发明的另一目的在于公开一种用于在一存储服务器中进行存储控制的方法以及装置,以在没有副作用或较不会带来副作用的情况下达到最佳(optimal)效能。本发明的至少一实施例公开一种用于在一存储服务器中进行存储控制的方法,其中所述方法是应用于所述存储服务器。所述方法可包括:针对设置于所述存储服务器的多个记忆装置中的任一记忆装置,分配(assign)所述记忆装置中的多个通道中的一通道以供对应于在所述存储服务器上执行的多个线程(thread)中的一线程的存取控制,其中所述存储服务器组态(configure)所述多个记忆装置以形成所述存储服务器的一容错式磁盘阵列(redundantarrayofindependentdisks,raid);以及于将一系列的逻辑存取单元(logicalaccessunit,lau)存储至所述容错式磁盘阵列的期间,依据一预定安排规则将信息写入所述多个记忆装置的各组页面(page)以作为于所述系列的逻辑存取单元中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置,其中所述各组页面中的一组页面代表所述多个记忆装置中的一对应的记忆装置的多组页面中的一组。本发明的至少一实施例公开一种用来依据上述方法来控制所述记忆装置的运作的存储器控制器,其中所述记忆装置可包括所述存储器控制器以及一非挥发性存储器(non-volatilememory,nvmemory),且所述非挥发性存储器可包括分别对应于所述多个通道的多组非挥发性存储器组件。所述存储器控制器是用来分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。尤其是,所述存储器控制器是用来将所述多个通道中的所述通道分配为用于所述线程的一专用通道。本发明的至少一实施例公开一种依据上述方法来运作的所述记忆装置。所述记忆装置可包括一非挥发性存储器,其中所述非挥发性存储器包括分别对应于所述多个通道的多组非挥发性存储器组件;且所述记忆装置可还包括用来控制所述记忆装置的运作的一存储器控制器,其中所述存储器控制器分别通过所述多个通道来对所述多组非挥发性存储器组件进行存取运作。本发明的至少一实施例公开一种依据上述方法来运作的所述存储服务器。所述存储服务器可包括用来设置所述多个记忆装置的一接口电路,且还包括用来控制所述存储服务器的运作的一处理电路。于将所述系列的逻辑存取单元存储至所述容错式磁盘阵列的期间,所述处理电路依据所述预定安排规则将所述信息写入所述多个记忆装置的所述各组页面以作为于所述系列的逻辑存取单元中的所述逻辑存取单元中的所述多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。本发明的方法以及相关装置能确保所述存储服务器在各种情况下均能妥善地运作。例如,所述方法提供用于存储控制的多个控制方案来提升所述存储服务器的效能。相较于现有技术,依据本发明来实施的存储服务器能具有较佳的效能以及更小的写入放大索引,其中其整体写入放大索引可等于二。附图说明图1为依据本发明一实施例的一存储服务器的示意图。图2绘示对应于多个线程的raid存取的一个例子。图3绘示分配记忆装置中的多个通道中的一者以供对应于一线程的存取控制的一个例子。图4为依据本发明一实施例绘示的于所述存储服务器的所述raid中的某些逻辑存取单元。图5为依据本发明一实施例绘示的关于所述存储服务器的所述raid的不同类型的地址之间的某些映射关系。图6为依据本发明一实施例绘示的针对图3所示的记忆装置的内部管理的某些实施细节。图7为依据本发明一实施例绘示的图3所示的记忆装置中的某些依序的(sequential)运作。图8为依据本发明一实施例绘示的多个可用实体区块地址(usablephysicalblockaddresses,u_pbas)与多个闪存实体区块地址(flashphysicalblockaddress,f_pba)之间的某些映射关系。图9为依据本发明一实施例的一种用于在一存储服务器中进行存储控制的方法的工作流程。其中,附图标记说明如下:100存储服务器110处理电路110p程序模块111闪存阵列控制112数据缓冲器113重复数据删除114卷控制121、122接口电路130存储装置300记忆装置310存储器控制器320非挥发性存储器ce0、ce1、…、ce7芯片启用信号ch(0)、…、ch(7)通道disk(0)、disk(1)、dusk(2)、disk(3)、disk(4)、…、disk(n-1)记忆装置th(0)、…、th(7)线程p0,0、p0,1、p0,2、p0,3、p0,4、p0,5、…、p0,12、…、p1,0、p1,1、p1,2、p1,3、p1,4、p1,5、…、p1,12、…、p2,0、p2,1、p2,2、p2,3、p2,4、p2,5、…、p2,12、…、p3,0、p3,1、p3,2、p3,3、p3,4、p3,5、…、p3,12、…、p4,0、p4,1、p4,2、p4,3、p4,4、p4,5…、p4,12、…、pn,0、pn,1、pn,2、pn,3、pn,4、pn,5、pn,6、pn,7、pn,8、pn,9、pn,10、pn,11、pn,12、pn,13、pn,14、pn,15、pn,16、pn,17、pn,18、pn,19、pn,20、pn,21、pn,22、pn,23、…磁盘虚拟实体页面地址d1、d2、d3、d4、d5、d6、d7、d8、d9、d10、d11、d12、d13、d14、d15、d16、d17、d18、…、d37、d38、d39数据p1、p2、p3、p4、p5、p6、…、p13、…q1、q2、q3、q4、q5、q6、…、q13、…校验码lau(0)、lau(1)、…逻辑存取单元s_lba(d1)、s_lba(d2)、s_lba(d3)、s_lba(d4)、s_lba(d5)、s_lba(d7)、s_lba(d8)、…、s_lba(p1)、s_lba(q1)系统逻辑区块地址a1、a2、a3、a4、a5、a6、a7、a8、…u_pba(a1)、u_pba(a2)、u_pba(a3)、u_pba(a4)、u_pba(a5)、u_pba(a6)、u_pba(a7)、u_pba(a8)、…、u_pba(a1)’、u_pba(a2)’、u_pba(a3)’、u_pba(a4)’、u_pba(a5)’、u_pba(a6)’、u_pba(a7)’、u_pba(a8)’、…可用实体区块地址s10、s20、s30步骤具体实施方式本发明的实施例公开用于在一存储服务器中进行存储控制的方法以及装置,且所述装置可包括所述存储服务器的至少一部分(例如一部分或全部)。例如,所述装置可包括所述存储服务器的一部分(例如,执行对应于所述方法的程序模块的一处理电路、所述存储服务器中的一相关容错式磁盘阵列(redundantarrayofindependentdisks,简称为“raid”)、所述raid的一记忆装置、及/或所述记忆装置中的一存储器控制器)。又例如,所述装置可包括所述记忆装置。又例如,所述装置可包括所述存储服务器的整体。图1为依据本发明一实施例的一存储服务器100的示意图。存储服务器100可包括用来控制存储服务器100的运作的一处理电路110(例如,至少一处理器、以及相关电路诸如随机存取存储器(randomaccessmemory,ram)及总线等)、一接口电路121诸如用于将存储服务器100耦接到至少一网络的一网络接口电路、以及用于将多个存储装置或记忆装置(例如,一或多个硬式磁盘驱动器(harddiskdrive,hdd)及/或一或多个固态硬盘(solidstatedrive,ssd))耦接至存储服务器100的另一接口电路122。例如,这些存储装置或记忆装置可包括用来当作存储服务器100的一系统碟的一存储装置130、以及一组记忆装置诸如n个记忆装置disk(0)、disk(1)、…、及disk(n-1),其中符号“n”可代表大于一的正整数。依据本实施例,执行程序模块110p的处理电路110可用来依据所述方法控制存储服务器100的运作,接口电路121诸如所述网络接口电路可用来提供有线或无线网络连接,以及接口电路122可符合一特定标准(例如串行高级技术附件(serialadvancedtechnologyattachment,简称为“串行ata”或“sata”)标准、外设组件互连(peripheralcomponentinterconnect,pci)标准、快捷外设互连(peripheralcomponentinterconnectexpress,pcie)标准等中的任一者),并且可依据所述特定标准进行通讯。另外,执行程序模块110p的处理电路110可通过接口电路122存取存储装置130以及记忆装置disk(0)、disk(1)、…、及disk(n-1),并且可组态(configure)记忆装置disk(0)、disk(1)、…、及disk(n-1)以形成存储服务器100的一raid。为便于理解,于图1所示的架构中的存储服务器100以及相关电路/模块/装置(例如,执行程序模块110p的处理电路110、所述raid、以及记忆装置disk(0)、disk(1)、…、及disk(n-1)中的任一者)可分别作为上述存储服务器及其相关电路/模块/装置(例如,执行对应于所述方法的程序模块的所述处理电路、所述存储服务器中的相关raid以及所述记忆装置)的例子。如图1所示,程序模块110p可包括各种类型的模块/子模块,诸如存储作业(storagework)及其子模块、连网(networking)、健康监控(healthmonitoring)、用户/系统管理控制(user/administrationcontrol)以及故障转移(failover),且所述存储作业可包括卷控制(volumecontrol)114(其可包括快照(snapshot)、服务质量(qualityofservice,可简称qos)、以及包括有区块(block)、文件系统以及对象(object)的数据类型服务(datatypeservice),其中上述数据类型服务可用来提供如区块、文件系统及对象的各种数据类型的服务)、重复数据删除(deduplication,可简称dedupe)113、数据缓冲器112(其可包括快取(caching)以及压缩)、以及闪存阵列控制111,其中这些模块/子模块的名字可分别指出其相关功能。图2绘示对应于运行于存储服务器100上的多个线程(thread)的raid存取的一个例子。一线程能被视为能由一排程器(scheduler)独立管理的最小的被编程指令(instruction)的序列(最小指令序列)。为便于理解,假设n=5,且记忆装置disk(0)、disk(1)、…、及disk(n-1)可包括记忆装置disk(0)、disk(1)、…、及disk(4),但本发明不限于此。当多个线程诸如线程{th(0),…,th(7)}正在运行于处理电路110以存取所述raid,线程{th(0),…,th(7)}中的每一者通常会存取disk(0)、disk(1)、…、及disk(4)的全部。于是,记忆装置disk(0)、disk(1)、…、及disk(4)中的每一者可被线程{th(0),…,th(7)}的全部(也就是全体的线程{th(0),…,th(7)})存取。本发明的方法以及装置能妥善地控制存取运作,以分别在各种状况下达到最佳效能。更进一步的细节将于后续段落说明。图3绘示分配(assign)记忆装置300中的多个通道诸如的通道{ch(0),…,ch(m-1)}中的一者以供对应于一线程的存取控制的一个例子,其中符号“m”可代表大于一的正整数。为便于理解,假设m=8,且通道{ch(0),…,ch(m-1)}可包括通道{ch(0),…,ch(7)},但本发明不限于此。记忆装置300可作为记忆装置disk(0)、disk(1)、…、及disk(n-1)中的任一记忆装置disk(n)的例子,其中符号“n”可代表在区间[0,n-1]内的正整数。依据本实施例,记忆装置300可包括一存储器控制器310以用来控制记忆装置300的运作,且可还包括一非挥发性存储器(non-volatilememory,nvmemory)320(例如一闪存(flashmemory))以用来存储数据。例如,非挥发性存储器320可包括一或多个非挥发性存储器组件(例如,一或多个闪存裸晶、或一或多个闪存芯片),诸如分别对应于通道{ch(0),…,ch(m-1)}(例如m=8)的多组非挥发性存储器组件。存储器控制器310可依据本发明的方法来控制记忆装置300的运作,以分别通过通道{ch(0),…,ch(m-1)}对所述多组非挥发性存储器组件进行存取运作(例如读取或写入)。尤其是,存储器控制器310可分配通道{ch(0),…,ch(m-1)}中的任一通道ch(m)以作为用于一线程诸如线程th(m)的一专用通道(例如,符号“m”可代表在区间[0,m-1]内的正整数)。例如,在m=0的情况下,存储器控制器310可将通道ch(0)分配给线程th(0),并且也可将关联的(尤其,分配到的)所述组非挥发性存储器组件(例如对应于通道ch(0)的所述组非挥发性存储器组件,诸如通过通道ch(0)的芯片启用(chipenable,ce)信号{ce0,ce1,…,ce7}来控制的所述组非挥发性存储器组件)分配给线程th(0)。m的数值可予以变化,且其余可依此类推。类似地,在m=7的情况下,存储器控制器310可将通道ch(7)分配给线程th(7),并且也可将关联的(尤其,分配到的)所述组非挥发性存储器组件(例如对应于通道ch(7)的所述组非挥发性存储器组件,诸如通过通道ch(7)的芯片启用信号{ce0,ce1,…,ce7}来控制的所述组非挥发性存储器组件)分配给线程th(7)。请注意,一个通道能被分配给两个以上的线程,只要所述通道是分配来专用于所述两个以上的线程即可。类似地,一或多个通道能被分配给一个线程。另外,线程与通道之间的映射关系能依据需求动态地设定。图4为依据本发明一实施例绘示的于存储服务器100的所述raid中的某些逻辑存取单元(logicaladdressunit,lau)。为便于理解,假设n=5(例如在raid中有记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4)),且在记忆装置300中的一逻辑存取单元的大小以及区块、页面(page)等相关的大小可分别等于某些预定值(例如,所述逻辑存取单元可包括(12*n)个页面,其于所述逻辑存取单元中12个页面每磁盘(pageperdisk),一单阶细胞(singlelevelcell,slc)区块可包括三个页面,且一四阶细胞(quadruplelevelcell,qlc)可包括12个页面),但本发明不限于此。依据本实施例,处理电路110(例如运行其上的闪存阵列控制111)可控制所述raid接续地存储多个页面的数据诸如数据组(例如d1、d2、d3、d4、d5、d6等数据;于图4中绘示为数据页面诸如带有数据的页面,以便于理解)以及相关的多个页面的校验码(例如p1、q1、p2、q2等校验码;于图4中绘示为校验码页面诸如带有校验码的页面,以便于理解),并且以记忆装置disk(3)及disk(4)中的两个页面的校验码(例如p1及q1)来保护记忆装置disk(0)、disk(1)及disk(2)中的三个页面的数据组(例如d1、d2及d3)。例如,处理电路110(例如运行其上的闪存阵列控制111)可将于如图4所示的这多行(row)页面中的一特定行内的三个页面的数据组(例如第一行页面的d1、d2及d3)写入所述raid并且通过利用各自的错误更正码(errorcorrectioncode,ecc)编码方法来依据于所述特定行中的所述三个页面的数据组产生两个页面的校验码(例如p1及q1),并且将对应于所述特定行的所述两个页面的校验码(例如p1及q1)写入所述raid。尤其是,处理电路110(例如运行其上的闪存阵列控制111)可对多个其它行(例如下一行以及后续的行,诸如图4所示的所述多行页面当中的其它行)进行类似的运作以接续地将所述多个其它行写入所述raid,且因此可将一系列的逻辑存取单元{lau(0),lau(1),…}写入所述raid,但本发明不限于此。另外,当将在所述系列的逻辑存取单元中的一群页面诸如上列这些页面写入所述raid时,处理电路110(例如运行其上的闪存阵列控制111)可分别为所述群页面记录多个系统逻辑区块地址(systemlogicblockaddress,s_lba)与多个磁盘虚拟实体页面地址(diskpseudophysicalpageaddress,d_p_ppa)之间的多个关系以用于所述群页面的存取控制。例如,闪存阵列控制111的至少一上层(例如一或多个上层,诸如数据缓冲器112、重复数据删除113、及/或卷控制114)可传送所述多个系统逻辑区块地址至闪存阵列控制111以要求分别在所述多个系统逻辑区块地址存取信息,并且闪存阵列控制111可将所述多个磁盘虚拟实体页面地址(例如{p0,0,p1,0,p2,0,p3,0,p4,0}、{p0,1,p1,1,p2,1,p3,1,p4,1}等)分配给对应的记忆装置以供于所述raid中的所述多个磁盘虚拟实体页面地址存取这些页面,其中闪存阵列控制111可以用写入重定向(redirect-on-write,row)的方式进行这些运作,但本发明不限于此。请参考图4,为了便于理解,磁盘虚拟实体页面地址{p0,0,p1,0,p2,0,p3,0,p4,0}、{p0,1,p1,1,p2,1,p3,1,p4,1}等在图4中是分别以标记“@”绘示于这些行的数据及校验码页面{d1,d2,d3,p1,q1}、{d4,d5,d6,p2,q2}等的旁边,以指出这些页面是分别存储于{p0,0,p1,0,p2,0,p3,0,p4,0},{p0,1,p1,1,p2,1,p3,1,p4,1}等。例如,处理电路110(例如运行其上的闪存阵列控制111)可将页面{{d1,d2,d3,p1,q1},{d4,d5,d6,p2,q2},…}的所述多个系统逻辑区块地址与磁盘虚拟实体页面地址{{p0,0,p1,0,p2,0,p3,0,p4,0},{p0,1,p1,1,p2,1,p3,1,p4,1},…}之间的所述多个关系记录于至少一系统逻辑区块地址对磁盘虚拟实体页面地址表(s_lba-to-d_p_ppatable)(例如一或多个系统逻辑区块地址对磁盘虚拟实体页面地址表)。依据某些实施例,上述至少一系统逻辑区块地址对磁盘虚拟实体页面地址表可包括一单一系统逻辑区块地址对磁盘虚拟实体页面地址表,其中所述单一系统逻辑区块地址对磁盘虚拟实体页面地址表可用来存储页面{{d1,d2,d3,p1,q1},{d4,d5,d6,p2,q2},…}的所述多个系统逻辑区块地址与磁盘虚拟实体页面地址{{p0,0,p1,0,p2,0,p3,0,p4,0},{p0,1,p1,1,p2,1,p3,1,p4,1},…}之间的所述多个关系的全部。依据某些实施例,上述至少一系统逻辑区块地址对磁盘虚拟实体页面地址表可包括一主要系统逻辑区块地址对磁盘虚拟实体页面地址表,其包括分别对应于记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4)的一组系统逻辑区块地址对磁盘虚拟实体页面地址子表,其中所述组系统逻辑区块地址对磁盘虚拟实体页面地址子表中的每一系统逻辑区块地址对磁盘虚拟实体页面地址子表可用来存储页面{{d1,d2,d3,p1,q1},{d4,d5,d6,p2,q2},…}的所述多个系统逻辑区块地址与磁盘虚拟实体页面地址{{p0,0,p1,0,p2,0,p3,0,p4,0},{p0,1,p1,1,p2,1,p3,1,p4,1},…}之间的所述多个关系的一部分,诸如对应于记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4)中的一者的部分,但本发明不限于此。图5为依据本发明一实施例绘示的关于存储服务器100的所述raid的不同类型的地址之间的某些映射关系。针对每一通道(例如通道ch(m)),执行闪存阵列控制111的处理电路110可记录页面{d1,d2,d3,p1,q1,d4,…}的系统逻辑区块地址{s_lba(d1),s_lba(d2),s_lba(d3),s_lba(p1),s_lba(q1),s_lba(d4),…}与磁盘虚拟实体页面地址{p0,0,p1,0,p2,0,p3,0,p4,0,p0,1,…}之间的这些关系,并且可在系统逻辑区块地址{s_lba(d1),s_lba(d2),s_lba(d3),s_lba(p1),s_lba(q1),s_lba(d4),…}与磁盘虚拟实体页面地址{p0,0,p1,0,p2,0,p3,0,p4,0,p0,1,…}之间进行转译以存取磁盘层(例如记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4))。为便于理解,图5的左下角附近所示的系统逻辑区块地址对磁盘虚拟实体页面地址表可作为上述单一系统逻辑区块地址对磁盘虚拟实体页面地址表的一个例子,并且图5右半部所示的这一系列的系统逻辑区块地址对磁盘虚拟实体页面地址表及其组合的整体可分别作为所述组系统逻辑区块地址对磁盘虚拟实体页面地址子表以及上述主要系统逻辑区块地址对磁盘虚拟实体页面地址表的例子,但本发明不限于此。依据某些实施例,执行闪存阵列控制111的处理电路110可自图5左下角附近所示的系统逻辑区块地址对磁盘虚拟实体页面地址表取得图5右半部所示的所述系列的系统逻辑区块地址对磁盘虚拟实体页面地址表的各自的表内容,以产生对应于记忆装置disk(n)的系统逻辑区块地址对磁盘虚拟实体页面地址子表,诸如所述系列的系统逻辑区块地址对磁盘虚拟实体页面地址表中的用于记忆装置disk(0)(例如n=0)的第0个系统逻辑区块地址对磁盘虚拟实体页面地址表、用于记忆装置disk(1)(例如n=1)的第1个系统逻辑区块地址对磁盘虚拟实体页面地址表等。请注意,在用于记忆装置disk(n)的第n个系统逻辑区块地址对磁盘虚拟实体页面地址表中,磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}中的多个虚拟实体页面地址(pseudophysicalpageaddresses,p_ppas)能被依序地安排或排列,并且这些虚拟实体页面地址可对应于在磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}的标记的下标中的次要索引(secondaryindex){0,1,2,…}。如在图5中以虚线描绘的矩形中所示,于{p0,0,p0,1,p0,2,…}(n=0)的下标中的这一序列的次要索引{0,1,2,…}以及于{p1,0,p1,1,p1,2,…}(n=1)的下标中的这一序列的次要索引{0,1,2,…}可指出磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}(例如n=0、1、…等)中的所述多个虚拟实体页面地址能被依序地安排或排列。因此,执行闪存阵列控制111的处理电路110在存取记忆装置disk(n)时能在所述raid中对记忆装置disk(n)进行依序的存取控制。图6为依据本发明一实施例绘示的针对图3所示的记忆装置300的内部管理的某些实施细节。如图6左上角附近所示,磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}(例如n=0、1、…等)中的任一磁盘虚拟实体页面地址可包括一磁盘号码(标示为“disk#”)、一区块号码(标示为“block#”)以及一页面号码(标示为“page#”),且在所述磁盘虚拟实体页面地址中的所述虚拟实体页面地址可包括所述区块号码(标示为“block#”)以及所述页面号码(标示为“page#”)。例如,所述磁盘虚拟实体页面地址可包括多个位,其中所述磁盘号码(标示为“disk#”)、所述区块号码(标示为“block#”)以及所述页面号码(标示为“page#”)可分别包括一最高位(mostsignificantbit,msb)、多个次要(secondary)位或较高位、以及多个剩余位或较低位,但本发明不限于此。依据本实施例,针对每一通道(例如通道ch(m)),存储器控制器310可自磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}取得多个虚拟实体页面地址区块号码(标示为“p_ppablock#”)(例如,磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}的所述多个虚拟实体页面地址中的这些区块号码(标示为“block#”)),并且可将所述多个虚拟实体页面地址区块号码(标示为“p_ppablock#”)与多个可用实体区块地址(usablephysicalblockaddresses,u_pbas)之间的多个关系记录至一基于区块的(block-based)映射表诸如图6所示的映射表,尤其是,也可将所记录的虚拟实体页面地址区块号码所对应的这些区块的每一者的相关的区块类型记录下来。例如,存储器控制器310可自相对应的磁盘虚拟实体页面地址(诸如所述基于区块的映射表中的对应行的表内容的左手边附近所示的磁盘虚拟实体页面地址)取得虚拟实体页面地址区块号码{a1,a2,a3,a4,a5,a6,a7,a8,…},并且可记录虚拟实体页面地址区块号码{a1,a2,a3,a4,a5,a6,a7,a8,…}、区块类型(例如符号“s”,其可代表单阶细胞区块)、以及可用实体区块地址{u_pba(a1),u_pba(a2),u_pba(a3),u_pba(a4),u_pba(a5),u_pba(a6),u_pba(a7),u_pba(a8),…},以指出所述多个虚拟实体页面地址区块号码(标示为“p_ppablock#”)与所述多个可用实体区块地址之间的所述多个关系。存储器控制器310可自单阶细胞区块将信息收集至四阶细胞区块中,以达到较佳的存取效能。例如,自处理电路110传送的某数据d应被存储于这些记忆装置中。数据d应先被存储至一存储器的多个单阶细胞区块中,接着存储器控制器310可在之后将于所述多个单阶细胞中的数据d复制至一四阶细胞区块中。存储器控制器310可更新所述基于区块的映射表,尤其,可记录区块类型(例如符号“q”,其可代表四阶细胞区块)以及可用实体区块地址{u_pba(a1)’,u_pba(a2)’,u_pba(a3)’,u_pba(a4)’,u_pba(a5)’,u_pba(a6)’,u_pba(a7)’,u_pba(a8)’,…},以指出所述多个虚拟实体页面地址区块号码(标示为“p_ppablock#”)与所述多个可用实体区块地址之间的最新的关系。图7为依据本发明一实施例绘示的图3所示的记忆装置300中的某些依序的存取运作(例如写入运作以及抹除运作)。针对每一通道(例如通道ch(m)),存储器控制器310可依序地将某些页面(例如数据及校验码页面诸如上述者)写入多个单阶细胞区块,并且可通过将信息自所述多个单阶细胞区块收集至多个四阶细胞区块来依序地进行压缩,尤其是,可于压缩(收集)后依序地抹除所述多个单阶细胞区块,其中写入运作(例如写入所述多个单阶细胞区块)以及抹除运作(例如抹除所述多个单阶细胞区块)能在各自的循环中依序地进行。另外,存储器控制器310可依序地将收集自所述多个单阶细胞区块的所述信息写入所述多个四阶细胞区块,并且可依序地对所述多个四阶细胞区块进行存储器控制器310所触发的压缩运作,尤其,可于存储器控制器310所触发的压缩运作之后依序地抹除所述多个四阶细胞区块,其中写入运作(例如写入所述多个四阶细胞区块)以及抹除运作(例如抹除所述多个四阶细胞区块)能在各自的循环中依序地进行。由于有多个线程分别被分配去这些磁盘的专用的通道,对应于所述多个线程的存取运作通常使得所述数据均匀地被写入至对应于通道ch(m)的所述组非挥发性存储器中,基于本发明的方法以及装置,依序的控制确实是可行的(workable)。图8为依据本发明一实施例绘示的多个可用实体区块地址与多个闪存实体区块地址(flashphysicalblockaddress,f_pba)之间的某些映射关系。由于可能有某些损坏的区块(为便于理解,标示为“x”),存储器控制器310可记录所述多个可用实体区块地址与所述多个闪存实体区块地址之间的某些映射关系,并且依据所述多个可用实体区块地址来使用多个可用区块。另外,存储器控制器310可将所述多个可用区块安排至一数据区(dataregion)以及一备用区(spareregion)。例如,存储器控制器310可利用于所述数据区中的某些区块来存储用户数据,并且可利用于所述备用区中的某些区块来进行内部管理,但本发明不限于此。依据某些实施例,针对一第一线程(例如线程{th(0),…,th(7)}中的一者),当所述上层要求于一系统逻辑区块地址写入第一信息,闪存阵列控制111可将所述系统逻辑区块地址转译为一磁盘虚拟实体页面地址,并且将一主装置写入命令以及所述磁盘虚拟实体页面地址传送至所述磁盘层(例如记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4))。以记忆装置300作为记忆装置disk(0)、disk(1)、…、及disk(n-1)(例如n=5)中的记忆装置disk(n)的一个例子,存储器控制器310可自所述磁盘虚拟实体页面地址取得一虚拟实体页面地址,并且将一运作命令诸如一写入命令传送至非挥发性存储器320,以在非挥发性存储器320中的且较佳在对应于所述第一线程的一通道中的所述虚拟实体页面地址写入所述第一信息。例如,存储器控制器310可将所述磁盘虚拟实体页面地址转译为一可用实体区块地址,并且将所述可用实体区块地址转译为一闪存实体区块地址,以将所述第一信息写入于所述闪存实体区块地址的对应页面中,但本发明不限于此。另外,针对一第二线程(例如线程{th(0),…,th(7)}中的另一者),当所述上层要求在一系统逻辑区块地址写入第二信息,闪存阵列控制111可将所述系统逻辑区块地址转译为一磁盘虚拟实体页面地址,并且将一主装置写入命令以及所述磁盘虚拟实体页面地址传送至所述磁盘层(例如记忆装置disk(0)、disk(1)、disk(2)、disk(3)及disk(4))。以记忆装置300作为记忆装置disk(0)、disk(1)、…、及disk(n-1)(例如n=5)中的记忆装置disk(n)的一个例子,存储器控制器310可自所述磁盘虚拟实体页面地址取得一虚拟实体页面地址,并且将一运作命令诸如一写入命令传送至非挥发性存储器320,以在非挥发性存储器320中的且较佳在对应于所述第二线程的一通道中的所述虚拟实体页面地址写入所述第二信息。例如,存储器控制器310可将所述磁盘虚拟实体页面地址转译为一可用实体区块地址,并且将所述可用实体区块地址转译为一闪存实体区块地址,以将所述第二信息写入于所述闪存实体区块地址的对应页面中,但本发明不限于此。依据某些实施例,当所述上层要求于一系统逻辑区块地址读取信息(例如所述第一信息、所述第二信息等),闪存阵列控制111以及存储器控制器310可以用类似的方式分别进行地址转译运作。为简明起见,这些实施例中类似的细节在此不赘述。图9为依据本发明一实施例的用于在所述存储服务器中进行存储控制的上述方法的工作流程。所述方法能应用于存储服务器100(其包括有执行对应于所述方法的程序模块110p的处理电路110),其中记忆装置disk(0)、disk(1)、…、及disk(n-1)(例如多个固态硬盘)可被设置于存储服务器100以形成所述raid诸如一全闪存阵列(allflasharray,afa),且执行对应于所述方法的程序模块110p的处理电路110可依据所述方法控制存储服务器100的运作。例如,记忆装置disk(0)、disk(1)、…、及disk(n-1)中的每一记忆装置,诸如上述记忆装置disk(n),可包括用于控制所述记忆装置的运作的一存储器控制器以及用于存储数据的一非挥发性存储器(例如一闪存),诸如图3所示的存储器控制器310以及非挥发性存储器320。在步骤s10中,存储服务器100(例如处理电路110)可组态设置于存储服务器100的多个记忆装置,诸如记忆装置disk(0)、disk(1)、…、及disk(n-1),以形成存储服务器100的所述raid。在步骤s20中,针对记忆装置disk(n)诸如记忆装置300,存储器控制器310可分配所述记忆装置中的多个通道中的一通道,诸如通道{ch(0),…,ch(m-1)}中的通道ch(m),以供对应于在存储服务器100上执行的多个线程中的一线程(诸如th(m))的存取控制。以记忆装置300为记忆装置disk(n)的一个例子,于记忆装置300中的非挥发性存储器320可包括分别对应于通道{ch(0),…,ch(m-1)}的所述多组非挥发性存储器组件,其中所述多组非挥发性存储器组件的每一组是专用于通道{ch(0),…,ch(m-1)}中的一者。在步骤s30中,于将所述系列的逻辑存取单元{lau(0),lau(1),…}存储至所述raid的期间,存储服务器100(例如处理电路110)可依据一预定安排规则(诸如图4所示安排的安排规则)将信息写入所述多个记忆装置的各组页面以作为于所述系列的逻辑存取单元{lau(0),lau(1),…}中的一逻辑存取单元中的多个页面,以藉助于分配所述多个通道中的所述通道给所述线程来使得所述各组页面分别被依序写入所述多个记忆装置。例如,所述各组页面可分别代表于所述逻辑存取单元中的各列(column)页面,诸如图4中于多个逻辑存取单元(例如lau(0)、lau(1)等)中的一者中的五列页面。依据所述预定安排规则,处理电路110可将所述信息轮流(例如,如图4所示,重复地从记忆装置disk(0)至记忆装置disk(4)来进行)写入至于所述逻辑存取单元中的所述各列页面。以逻辑存取单元lau(0)为步骤s30中所述的这个逻辑存取单元的一个例子,所述信息可包括多个页面的数据(例如d1、d2、d3、d4、d5、d6等)以及相关的多个页面的校验码(例如p1、q1、p2、q2等),以及于所述逻辑存取单元中的所述各列页面可包括一第一组的列以及一第二组的列(例如,在此逻辑存取单元中的五列页面中的在左手边的这一组三列页面以及在右手边的这一组两列页面)以供分别存储所述多个页面的数据以及所述相关的多个页面的校验码。依据本实施例,于将所述系列的逻辑存取单元{lau(0),lau(1),…}的一群页面写入所述raid的期间,处理电路110(例如运行其上的闪存阵列控制111)可分别为所述群页面记录所述多个系统逻辑区块地址与所述多个磁盘虚拟实体页面地址之间的关系,以供进行所述系列的逻辑存取单元{lau(0),lau(1),…}的存取控制,并且可分配所述多个磁盘虚拟实体页面地址(例如{p0,0,p1,0,p2,0,p3,0,p4,0}、{p0,1,p1,1,p2,1,p3,1,p4,1}等)至所述多个记忆装置中的一组对应的记忆装置,以用来存取于所述raid中的于所述多个磁盘虚拟实体页面地址的某些页面,尤其,可将页面{{d1,d2,d3,p1,q1},{d4,d5,d6,p2,q2},…}的所述多个系统逻辑区块地址与磁盘虚拟实体页面地址{{p0,0,p1,0,p2,0,p3,0,p4,0},{p0,1,p1,1,p2,1,p3,1,p4,1},…}之间的关系记录于上述至少一系统逻辑区块地址对磁盘虚拟实体页面地址表,其中上述至少一系统逻辑区块地址对磁盘虚拟实体页面地址表的多个子集合可用来维护分别对应于所述多个记忆装置的存取控制。针对记忆装置disk(n)诸如记忆装置300,存储器控制器310可进行记忆装置300的某些内部管理运作,诸如:解析(parse)于所述多个磁盘虚拟实体页面地址的一磁盘虚拟实体页面地址中的一虚拟实体页面地址,诸如图6所示的于磁盘虚拟实体页面地址{pn,0,pn,1,pn,2,…}(例如n=0、1等)的任一者中的一虚拟实体页面地址,以从所述虚拟实体页面地址取得一区块号码(标示为“block#”);以及于因应所述磁盘虚拟实体页面地址进行存取的期间,依据如图6所示的所述区块号码(标示为“block#”)更新于记忆装置300中的所述基于区块的映射表,以用来进行对应于所述磁盘虚拟实体页面地址的存取控制。因此,因应所述磁盘虚拟实体页面地址,记忆装置300(例如存储器控制器310)能在不参照一基于页的(page-based)映射表的情况下存取对应于所述磁盘虚拟实体页面地址的一页面。另外,记忆装置300(例如,存储器控制器310)可分别通过所述多个通道(诸如通道{ch(0),…,ch(m-1)})对所述多组非挥发性存储器进行存取运作(例如读取或写入)。由于记忆装置300(例如存储器控制器310)分配所述通道以供对应于所述线程的存取控制的用途,并且由于存储服务器100(例如处理电路110)依据所述预定安排规则(诸如图4所示安排的安排规则)写入所述信息,所述各组页面能藉助于分配所述多个通道中的所述通道给所述线程以分别被依序写入所述多个记忆装置,其中所述各组页面中的一组页面可代表所述多个记忆装置中的一对应的记忆装置的多组页面中的一组。针对所述多个通道中的每一通道(诸如通道ch(m)),记忆装置300(例如存储器控制器310)可依序将某些信息页面(例如数据页面或校验码页面)写入多个单阶细胞区块(诸如图7所示的多个单阶细胞区块),通过从所述多个单阶细胞区块将信息收集至多个四阶细胞区块来依序进行压缩,以及于压缩(例如此收集运作)之后依序抹除所述多个单阶细胞区块,尤其,可依序将从所述多个单阶细胞区块收集的所述信息写入所述多个四阶细胞区块,依序对所述多个四阶细胞区块进行压缩,以及依序抹除所述多个四阶细胞区块。于是,写入所述多个单阶细胞区块以及抹除所述多个单阶细胞区块能依序于各自的循环中进行,如图7左半部中的这些循环所示,并且写入所述多个四阶细胞区块以及抹除所述多个四阶细胞区块能依序于各自的循环中进行,如图7右半部中的这些循环所示。为了简明起见,本实施例与前述实施例相仿的内容在此不重复赘述。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1