加载逻辑到物理映射表到存储器控制器的缓存的制作方法

文档序号:28328572发布日期:2022-01-05 01:55阅读:153来源:国知局
1.本发明涉及存储器
技术领域
:,尤其涉及一种将逻辑到物理映射表加载到存储器控制器(memorycotroller)的缓存的方法、存储器系统(memorysystem)的数据操作方法、存储器控制器以及存储器系统。
背景技术
::2.随机读取(randomread,rr)性能对用于个人电脑及其服务器的固态硬盘(solidstatedrive,ssd)以及用于手机和各种嵌入式系统中的通用闪存技术(universalflashstorage,ufs)至关重要。3.随机读一般包括两个步骤:存储器控制器根据主机所请求的用户数据对应的逻辑地址(logicalblockaddress,lba)以及逻辑到物理地址映射表(logicaltophysicalmappingtable,l2ptable)查询到上述用户数据在存储器存储单元阵列中的物理地址(physicalpageaddress,ppa),然后,存储器控制器根据上述物理地址从存储单元阵列上读出上述用户数据并发送至主机。4.通常情况下,上述逻辑到物理地址映射表被保存至存储器控制器的ram(randomaccessmemory,随机存取存储器,包括:staticrandomaccessmemory,静态随机存取存储器sram以及dynamicrandomaccessmemory,动态随机存取存储器dram)中。但是,由于存储装置的地址空间(也即,内存空间)在不断增大,上述逻辑到物理地址映射表在被保存至存储器控制器的ram时,会占用存储器控制器较大的内存,进而会影响随机读取的性能以及存储器的性能。技术实现要素:5.一方面,本发明提供了一种将逻辑到物理映射表加载到存储器控制器的缓存的方法,包括:6.根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在所述逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续;7.若是,选择所述多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;8.将所述基准物理地址以及所述基准物理地址偏移量作为所述多个目标逻辑地址对应于所述多个目标物理地址的映射关系,保存至所述缓存。9.根据本公开一实施例的方法,其中,所述方法具体包括:10.将所述基准物理地址以及所述基准物理地址偏移量作为所述多个目标逻辑地址对应于所述多个目标物理地址的映射关系,保存至所述缓存的第一缓存区;以及,11.若否,保存所述多个目标逻辑地址与所述多个目标物理地址的映射关系至所述缓存的第二缓存区。12.根据本公开一实施例的方法,其中,所述基准物理地址为所述多个目标物理地址中的第一个或最后一个。13.根据本公开一实施例的方法,其中,所述基准物理地址偏移量的数量对应于地址值连续的目标物理地址的数量。14.根据本公开一实施例的方法,其中,所述逻辑到物理映射表包括多个子映射表,每个所述子映射表包括多个段,每个所述段中保存有多个物理地址,所述多个目标逻辑地址对应至少一个所述段。15.根据本公开一实施例的方法,其中,当所述多个目标逻辑地址对应多个所述段时,所述根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在所述逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续的步骤,具体包括:16.根据当前获取的逻辑到物理映射表,判断多个目标逻辑地址在所述逻辑到物理映射表的每个所述段中对应的多个目标物理地址的地址值是否连续。17.根据本公开一实施例的方法,其中,所述选择所述多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量的步骤,具体包括:18.当所述多个目标逻辑地址在所述逻辑到物理映射表的其中一个段中对应的多个目标物理地址的地址值连续时,将所述其中一个段中的一个目标物理地址作为基准物理地址,并根据所述其中一个段中的其余目标物理地址的地址值设定基准物理地址偏移量。19.根据本公开一实施例的方法,其中,通过加速判断电路判断多个目标逻辑地址在所述逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续。20.另一方面,本发明还提供了一种存储器系统的数据操作方法,包括:21.响应于数据请求指令,获取逻辑到物理映射表;22.根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在所述逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续;23.若是,选择所述多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;24.将所述基准物理地址以及所述基准物理地址偏移量作为所述多个目标逻辑地址对应于所述多个目标物理地址的映射关系,保存至存储器控制器的缓存;25.基于所述缓存所加载的映射关系,从存储装置中读取相应的数据。26.另一方面,本发明还提供了一种存储器控制器,包括:27.处理单元;28.对应于所述处理单元而设置的缓存;29.加速判断电路,其被配置为,根据获取的逻辑到物理映射表判断多个目标逻辑地址在所述逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续;30.其中,所述处理单元被配置为,31.从所述加速判断电路获取表示所述多个目标物理地址的地址值被确定为连续的第一指令;32.基于所述第一指令选择所述多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;以及,33.将所述基准物理地址以及所述基准物理地址偏移量作为所述多个目标逻辑地址对应于所述多个目标物理地址的映射关系,保存至所述缓存中。34.根据本公开一实施例的存储器控制器,其中,所述加速判断电路通过硬件形式的加法器实现。35.根据本公开一实施例的存储器控制器,其中,所述存储器控制器适用于顺序写操作模式。36.根据本公开一实施例的存储器控制器,其中,所述缓存为静态随机存取存储器。37.另一方面,本发明还提供了一种存储器系统,包括:38.一个或多个存储装置;39.上述任一所述的存储器控制器,其中,所述存储器控制器与所述存储装置耦接。40.根据本公开一实施例的存储器系统,其中,所述存储装置包括三维nand闪存存储器。附图说明41.为了更清楚地说明本发明的技术方案,下面将对根据本发明而成的各实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。42.图1示出了根据本公开一实施例所提供的存储器系统的结构示意图。43.图2示出了根据本公开一实施例所提供的存储器控制器的结构示意图。44.图3示出了根据本公开一实施例所提供的将逻辑到物理映射表加载到存储器控制器的缓存的方法的流程示意图。45.图4示出了根据本公开一实施例所提供的将逻辑到物理映射表加载到存储器控制器的缓存的方法的进一步流程示意图。46.图5a至图5c示出了根据本公开一实施例所提供的将逻辑到物理映射表加载到存储器控制器的缓存的方法的应用场景示意图。47.图6示出了根据本公开一实施例所提供的存储器系统的数据操作方法的流程示意图。48.本发明的实施方式49.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开实施例一部分实施例,而不是全部的实施例。基于本公开实施例中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开实施例保护的范围。50.在本公开实施例的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本公开实施例和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本公开实施例的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本公开实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。51.在本公开实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本公开实施例中的具体含义。52.下文的公开提供了许多不同的实施方式或例子用来实现本公开实施例的不同结构。为了简化本公开实施例的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本公开实施例。此外,本公开实施例可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。本公开实施例可以解决现有的逻辑到物理地址映射表(以下简称为“l2p表”)占用存储器控制器较大的缓存的空间问题。53.请参阅图1,图1示出了根据本公开一实施例所提供的存储器系统100的结构示意图,如图1所示,该存储器系统100包括:一个或多个存储装置(memorydevice)110,以及与存储装置110耦接的存储器控制器120。54.具体的,存储装置110可以包括一个或多个存储管芯(die),每个存储管芯包括存储阵列和相应的外围电路;存储管芯具体可以但不限于为闪存存储器,例如三维(3d)nand闪存存储器(flashmemorydevice)。存储器控制器120中配置有相应的固件(firmware),该固件可以在存储器控制器120中运行,从而能够实现例如ftl、读、写、擦除等功能或操作,也能够实现下文实施例的将逻辑到物理映射表加载到存储器控制器的缓存的方法以及存储器系统的数据操作方法。存储器控制器120具体可以包括前端接口装置、后端接口装置、一个或多个处理单元(例如cpu核等),前端接口装置配置有多个通道基于例如pcie等协议来与主机300交互通信,后端接口装置配置有多个通道基于例如onfi协议分别与各个存储装置110交互通信。55.进一步地,请参阅图2,图2示出了根据本公开一实施例所提供的存储器控制器120的结构示意图,如图2所示,存储器控制器120包括:处理单元121、对应于处理单元121而设置的缓存122,以及加速判断电路123。56.加速判断电路123被配置为可以执行下文所述的“根据获取的逻辑到物理映射表判断多个目标逻辑地址在逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续”的步骤。具体的,加速判断电路123可以通过硬件电路形式的加法器实现该步骤的操作。需要说明的是,上述是否连续的判断相对容易通过硬件电路(即加速判断电路123)实现,相对比通过存储器控制器120运行相应的固件来实现上述连续判断,其速度和效率非常快,且不会给存储器控制器120带来额外负担,并且占用的面积也非常小。57.处理单元121通过执行相应的固件来实现下文所述的以下步骤:58.从加速判断电路123获取表示多个目标物理地址的地址值被确定为连续的第一指令;59.基于第一指令选择多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;以及,60.将基准物理地址以及基准物理地址偏移量作为多个目标逻辑地址对应于多个目标物理地址的映射关系,保存至缓存122中。61.具体的,缓存122为静态随机存取存储器(staticrandomaccessmemory,sram)。62.在一实施例中,存储器控制器120可以适用于顺序写(sequentialwrite)操作模式。需要说明的是,在存储器控制器120通过顺序写操作模式而将数据保存至存储装置110时,该数据在存储装置110中的物理地址(physicalpageaddress,ppa)的地址值基本是连续的。这样,更大比例的目标物理地址的地址值连续,能更好地实现本发明实施例的效果,例如,压缩效果好、占用缓存空间小。63.请参阅图3,图3示出了根据本公开一实施例所提供的将逻辑到物理映射表加载到存储器控制器的缓存的方法的流程示意图,如图3所示,该方法的具体流程可以如下:64.判断步骤s101:根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续;65.设定步骤s102:若是,选择多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;66.压缩保存步骤s103:将基准物理地址以及基准物理地址偏移量作为多个目标逻辑地址对应于多个目标物理地址的映射关系,保存至缓存。67.容易理解的是,上述判断步骤s101可以由上文所述的加速判断电路123所执行的,在该步骤中,当存储器控制器120的加速判断电路123判断出多个目标逻辑地址对应的多个目标物理地址的地址值是连续的,此时,加速判断电路123会生成第一指令,该第一指令指示多个目标物理地址的地址值被确定为是连续的。68.进一步地,当存储器控制器120的处理单元121从加速判断电路123获取到了上述第一指令,处理单元121会基于该第一指令而执行上述设定步骤s102以及压缩保存步骤s103。69.需要说明的是,通过顺序写操作模式所保存的数据的物理地址基本是连续的,所以,在存储器控制器120的缓存122中保存上述目标数据所对应的多个目标逻辑地址到多个目标物理地址的映射关系时,只需在该缓存122中保存多个目标物理地址中的基准物理地址以及根据其余目标物理地址的地址值设定的基准物理地址偏移量,之后,根据上述基准物理地址以及基准物理地址偏移量就可推算出所有目标物理地址的地址值。70.容易理解的是,在这种压缩保存的方式下,目标数据所对应的逻辑地址到物理地址的映射关系所占用的存储器控制器120的缓存122的空间可以被有效地减小。举例来说,若目标物理地址地数量为1024个且连续,一个目标物理地址会占用4byte内存,在未被压缩保存的方式下,这1024个目标物理地址会占用1024*4byte=4kb内存,而在压缩保存的方式下,1024个目标物理地址被基准物理地址以及基准物理地址偏移量所取代,只会占用例如4byte内存,压缩比可达到1024,如图5a所示。物理地址具体可以为物理页地址(physicalpageaddress,ppa)。71.具体地,上述基准物理地址可以为多个目标物理地址中的第一个或最后一个,上述基准物理地址偏移量的数量对应于地址值连续的目标物理地址的数量。举例来说,若目标物理地址一共有8个且它们的地址值依次连续,基准物理地址为第1个的情况下,其余目标物理地址相对于基准物理地址的基准物理地址偏移量为+7,基准物理地址为第8个的情况下,其余目标物理地址相对于基准物理地址的基准物理地址偏移量为‑7。72.将理解,基准物理地址的选择不是限制性的,其可以选择连续的目标物理地址中的某一个为基准物理地址,基准物理地址偏移量的数量也可以相应地变化;例如,若目标物理地址一共有8个且它们的地址值依次连续,可以选择基准物理地址为第3个,其余目标物理地址相对于基准物理地址的基准物理地址偏移量为‑2以及+5。73.需要说明的是,如图5b所示,l2p表可以包括多个子映射表(例如n个子映射表,n大于或等于2),每个子映射表包括多个(例如4个)段(segment),每个段中保存有多个物理地址,上述多个目标逻辑地址所对应的多个目标物理地址会落入至少一个段中,在上述判断步骤s101中,当上述多个目标逻辑地址所对应的多个目标物理地址落入多个段中时,存储器控制器120的加速判断电路123会分别判断落入不同段中的目标物理地址的地址值是否连续,例如,上述判断步骤s101具体可以包括:74.根据当前获取的逻辑到物理映射表,判断多个目标逻辑地址在逻辑到物理映射表的每个段中对应的多个目标物理地址的地址值是否连续。75.具体地,加速判断电路123可以以多个目标物理地址中任意连续几个的地址值是否依次相差1为依据来执行上述判断步骤s101。76.具体地,可以对l2p表的子映射表以及段的大小进行设定,通常情况下,将子映射表的大小设定得较大、且将段的大小设定得较小会更有利于存储器控制器120对存储装置110中的数据进行读取的性能,例如,每个子映射表的大小为16kb,每个段的大小为1kb,此时,每个子映射表中包括16个段,每个段中包括256个物理地址。77.进一步地,落入不同段中的目标物理地址的地址值可能是连续的、也可能是不连续的,当落入一个段中的目标物理地址的地址值连续时,存储器控制器120的处理单元121会将这个段中的目标物理地址进行压缩保存,例如,上述设定步骤s102具体可以包括:78.当多个目标逻辑地址在逻辑到物理映射表的其中一个段中对应的多个目标物理地址的地址值连续时,将其中一个段中的一个目标物理地址作为基准物理地址,并根据其中一个段中的其余目标物理地址的地址值设定基准物理地址偏移量。79.需要说明的是,存储器控制器120可能并不会对所有需要保存至存储装置110的数据进行顺序写,对于不是通过顺序写操作模式所保存的数据,其对应的所有逻辑地址到物理地址的映射关系会被全部加载到存储器控制器120的缓存122。进一步地,可以在存储器控制器120的缓存122中设计第一缓存区以及第二缓存区,当将l2p表加载到缓存122时,基准物理地址以及基准物理地址偏移量保存于第一缓存区中,第二缓存区用于在多个目标物理地址的地址值不连续时,保存多个目标逻辑地址与多个目标物理地址的映射关系。80.具体地,请参阅图4,图4示出了根据本公开一实施例所提供的将逻辑到物理映射表加载到存储器控制器的缓存的方法的进一步流程示意图,如图4所示,在上述判断步骤s101之后,还包括:81.普通保存步骤s104:若否,保存多个目标逻辑地址与多个目标物理地址的映射关系至缓存的第二缓存区。82.进一步地,当存储器控制器120将所要保存至存储装置110的数据执行顺序写操作模式的情况较多时,可以将第一缓存区设计得较大,例如,第一缓存区占缓存122整体容量的80%,如图5c所示。83.需要说明的是,通常情况下,缓存122整体容量为1mb,每个物理地址会占用4byte内存,且每个物理地址显示一页(onepage,一般情况下,一页数据为4kb)用户数据区,在一般的加载l2p表至缓存122的方法中,缓存122最多可以显示1mb/4byte*4kb=1gb用户数据区。而在本公开实施例中,当第一缓存区占缓存122整体容量的80%、且一个段中具有1024个物理地址时,在数据全部以连续写入的方式进行保存时,每个物理地址显示1024页用户数据区,即4mb,该第一缓存区最多可以显示1mb*80%/4byte*4mb=819.2gb用户数据区,极大地提高了存储器控制器120的缓存122的利用率。84.本公开实施例提供了一种将逻辑到物理映射表加载到存储器控制器的缓存的方法,包括:根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续,若是,选择多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量,之后,将基准物理地址以及基准物理地址偏移量作为多个目标逻辑地址对应于多个目标物理地址的映射关系,保存至缓存,本公开实施例提供的该方法,由于会将因通过顺序写操作模式而在存储装置中具有连续的地址值的多个目标物理地址的数据所对应的逻辑地址到物理地址的映射关系进行压缩,只将多个目标物理地址中的基准物理地址以及根据其余目标物理地址的地址值而设定的基准物理地址偏移量保存至缓存,从而有效地减小了l2p表所占用的存储器控制器的缓存的空间,提高了存储器控制器的缓存的利用率。85.请参阅图6,图6示出了根据本公开一实施例所提供的存储器系统100的数据操作方法的流程示意图,如图6所示,该存储器系统的数据操作方法的具体流程可以如下:86.获取步骤s201:响应于数据请求指令,获取逻辑到物理映射表;87.判断步骤s202:根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续;88.设定步骤s203:若是,选择多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量;89.保存步骤s204:将基准物理地址以及基准物理地址偏移量作为多个目标逻辑地址对应于多个目标物理地址的映射关系,保存至存储器控制器的缓存;90.读取步骤s205:基于缓存所加载的映射关系,从存储装置中读取相应的数据。91.需要说明的是,在获取步骤s201中,l2p表可以从存储装置110的存储单元阵列中获取,也可以从该存储器系统100所耦接的主机的ram(randomaccessmemory,随机存取存储器)中获取。进一步地,通过上述步骤对该存储器系统100所进行的数据操作方法可以是数据读取(read)操作,也可以是垃圾收集(garbagecollection)操作。92.本公开实施例提供了一种存储器系统的数据操作方法,包括:响应于数据请求指令,获取逻辑到物理映射表,根据当前获取的逻辑到物理映射表判断多个目标逻辑地址在逻辑到物理映射表中对应的多个目标物理地址的地址值是否连续,若是,选择多个目标物理地址中的一个作为基准物理地址,并根据其余目标物理地址的地址值设定基准物理地址偏移量,之后,将基准物理地址以及基准物理地址偏移量作为多个目标逻辑地址对应于多个目标物理地址的映射关系,保存至存储器控制器的缓存,并基于缓存所加载的映射关系,从存储装置中读取相应的数据,本公开实施例提供的存储器系统的数据操作方法,由于会将因通过顺序写操作模式而在存储装置中具有连续的地址值的多个目标物理地址的数据所对应的逻辑地址到物理地址的映射关系进行压缩,只将多个目标物理地址中的基准物理地址以及根据其余目标物理地址的地址值而设定的基准物理地址偏移量保存至缓存,从而有效地减小了l2p表所占用的存储器控制器的缓存的空间,提高了存储器控制器的缓存的利用率。93.除上述实施例外,本公开实施例还可以有其他实施方式。凡采用等同替换或等效替换形成的技术方案,均落在本公开实施例要求的保护范围。94.综上所述,虽然本公开实施例已将优选实施例揭露如上,但上述优选实施例并非用以限制本公开实施例,本领域的普通技术人员,在不脱离本公开实施例的精神和范围内,均可作各种更动与润饰,因此本公开实施例的保护范围以权利要求界定的范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1