一种闪存存储器的混合映射方法技术

技术编号:11195266 阅读:63 留言:0更新日期:2015-03-26 00:53
一种闪存存储器的混合映射方法,属于固态存储领域,解决现有映射方法存在的处理随机写请求并行度不足的问题,从而提升闪存存储器的性能。本发明专利技术包括初始设置步骤、缓存操作步骤、数据读操作步骤及数据写操作步骤,通过引入虚拟存储块的概念,当发生数据写操作时,仅当缓存中替换出来的页连续,且能够写入顺序写日志块中时,仍然按照传统闪存存储器的方式写入,在其他情况下,均可以将其写入虚拟存储块中的一个大页内,由于一个大页中的多个物理页支持并行地写入,因此节省了数据写操作的时间,从而提升了闪存存储器的性能。

【技术实现步骤摘要】
一种闪存存储器的混合映射方法
本专利技术属于固态存储领域,具体涉及一种固态存储设备(闪存)的混合映射方法。
技术介绍
闪存是一种具有高密度,大容量,非易失性等特点的新型存储介质,与磁介质相比,它具有较低的读写延时和较低的能耗,越来越广泛的应用于各种领域。闪存分为或非(NOR)型和与非(NAND)型两种。1988年英特尔公司开发出或非型闪存,1989年,东芝公司开发出与非型闪存。本专利技术适用于与非型闪存,如无特别说明,本专利技术所述闪存均指与非型闪存。闪存存储器是使用闪存芯片作为主要存储介质的存储器,其结构如图1所示,闪存存储器包括固态盘控制器、片上内存和多个闪存芯片。固态盘控制器负责管理和控制整个固态盘的运行,其中包括微处理器、主机接口控制器、片上内存控制器及多个相互独立的通道控制器;微处理器是闪存存储器的计算和处理单元,负责管理各部件的运行;主机接口控制器负责与主机进行通信;片上内存控制器用于控制片上内存的读写;在一个闪存存储器中,可以有多个通道(2N个),通道与通道之间相互独立,每个通道下连接着若干个(2M个)闪存芯片,并由一个通道控制器进行控制。闪存芯片的内部结构如图2所示,一个闪存芯片包含多个晶圆(die),每个存晶圆包含多个(通常为2个)分组(plane),每个分组包含多个物理块(block),每个物理块包含多个页(page)。闪存介质必须先擦除后写入,页是闪存芯片中读操作和写操作的基本单位,物理块是闪存芯片中擦除操作的基本单位。在闪存中读操作可以任意读取任何一页的内容,但是对某一物理块中包含的页的写操作必须从其第一页开始顺序进行。例如,在图1中,如果闪存中晶圆0,分组0,物理块0中的页5已经被写入,则在擦除物理块0之前,其内部的页0~页4都不能被写入了。为了方便描述本专利技术,作如下约定:闪存存储器中的通道数为2N,每个通道下包含的闪存芯片数为2M,每个闪存芯片包含的晶圆数为2P,每个晶圆包含的分组数为2Q,每个分组下包含的物理块个数为2R,每个物理块下包含的物理页个数为2S。其中,N、P、Q、R、S均为非负的整数,且S>N+P+Q;M为正整数。2011年在会议ProceedingsoftheinternationalconferenceonSupercomputing上公开的论文“PerformanceImpactandInterplayofSSDParallelismthroughAdvancedCommands,AllocationStrategyandDataGranularity”提出:在操作闪存存储器时,可以利用闪存存储器的结构特点并行地对闪存进行读写操作。闪存存储器可以开发四个层次的并行性:通道并行性,相同通道不同闪存芯片间的并行性,相同闪存芯片不同晶圆间的并行性,相同晶圆不同分组间的并行性。开发通道并行性要求操作对象处于不同的通道中,开发相同通道不同闪存芯片间的并行性要求操作对象处于同一通道中的不同闪存芯片中,开发相同闪存芯片不同晶圆间的并行性要求操作对象处于同一闪存芯片中的不同晶圆之中,开发相同晶圆不同分组间的并行性要求操作对象处于同一晶圆中的不同分组中,且在分组中的页号相等。现代闪存芯片支持通过两种方式开发其内部并行性:晶圆间并行和分组间并行。晶圆间并行允许并行地操作同一闪存芯片中不同晶圆内的数据,分组间并行允许并行地操作同一晶圆内、不同分组中同一页号的数据。在闪存存储器中,采用软件的方式使操作系统能够采用传统操作磁盘的方式操作闪存存储器,该软件就是闪存转换层(flashtranslationlayer,FTL)。闪存转换层主要包括垃圾回收、损耗均衡和地址映射三个功能。其中地址映射的功能是将主机发来的请求中的页的逻辑页号转换成闪存存储器中页的物理页号。地址映射可以分为三类:页映射、块映射和混合映射。页映射使用一张映射表存放逻辑页地址到物理页地址之间的转化关系,其优点是转化速度快,但是缺点是映射表很大,需要占用大量缓存空间;块映射使用一张映射表存放逻辑块地址到物理块地址之间的转化关系,相比于页映射,其映射表空间较小,但其对闪存的寿命和性能具有较大的负面影响。混合映射是页映射和块映射的综合。在混合映射中,闪存物理块的用途被分为两类:数据块和日志块。数据块用来存放数据,日志块用来存放更新数据。对数据块,使用块映射方式进行地址映射,对日志块,使用页映射方式进行地址映射。混合映射方法需要进行地址映射时,先在页映射表中查找是否有对该地址逻辑页号的映射,如果有,则利用该映射将逻辑页号转化为物理页号;否则,在块映射表中查找对该地址逻辑块序号的映射,利用该映射将逻辑块序号转化为物理块序号,块内页号不变。混合映射方法在对某个页中的数据进行写操作时,首先利用地址映射查找到原数据页的物理页号,将原数据页标记为无效页,最后将待写入的数据写入日志块中的一个页中。为了清楚地理解本专利技术,以下对有关概念加以解释:有效页:当一个空白物理页被写入数据后,用该物理页对应的状态寄存器中一个状态位标记它为有效页,表示该物理页中的数据是有效数据;无效页:当闪存物理页中的数据不再有用时,用该物理页对应的状态寄存器中一个状态位标记它为无效页;空白页:当闪存存储器中的一片物理页没有数据时,该物理页为空白页,用该物理页对应的状态寄存器中一个状态位标记;擦除操作:将指定的物理块中所有的内容消除并重新置位,将该物理块中所有物理页变为空白页;逻辑页号:闪存存储器接收到的读写请求中的地址,以页为单位,为多位的二进制数值,以Lp表示,Lp/(2S)的整数部分是该逻辑页号的逻辑块序号,Lp对2S取余是该逻辑页号的块内页号。物理页号:用于在闪存存储器上标识每个物理页的地址,为(N+M+P+Q+R+S)位的二进制数值,以Pp表示,Pp/(2S)的整数部分是该物理页号的物理块序号,Pp对2S取余是该物理页号的块内页号。物理页解析操作:当已知一个物理页的物理页号之后,如果要对该物理页进行读写操作,需要获得该物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号。通过物理页号获得物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号的操作称作物理页解析操作。在现有的闪存存储器中,二进制的物理页号自左向右的N、M、P、Q、R、S位分别为其标识的物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号。在本专利技术中的物理页解析操作与现有的闪存存储器有所区别,见本专利技术关于地址映射部分的描述。映射表:闪存存储器中的一种数据结构,供闪存转换层完成地址映射功能。映射表分为页映射表和块映射表两种,页映射表中存放逻辑页号到物理页号之间的映射关系,块映射表中存放逻辑块序号到物理块序号之间的映射关系。对页/块映射表可以进行如下操作:1、利用页/块映射表查找一个逻辑页/块号是否存在于页/块映射表中;2、如果一个逻辑页号/块号存在于页/块映射表中,将其转化为物理页号/块序号;3、删除一个逻辑页/块号对一个物理页号/块序号的映射关系;4、利用页/块映射表记录一个逻辑页/块号到一个物理页号/块序号的映射关系,如果原来已经存在对这个逻辑页/块号的映射,则将原来的映射删除。缓存:片上内存中的一片区域。由于片上内存的读写速度比闪存快,因此闪存存储器把闪存芯片中的一部分数据及它们本文档来自技高网...

【技术保护点】
一种闪存存储器的混合映射方法,包括初始设置步骤、缓存操作步骤、数据读操作步骤及数据写操作步骤,其特征在于:(1)初始设置步骤:包括下述子步骤:(1.1)将块状态位图中的各个位全部标记为空白;(1.2)在块状态位图后一半位中任选2(N+P+Q)个连续位,需满足它们的二进制位序号中最小位序号自右向左的(N+P+Q)位全部为0,将所述2(N+P+Q)个连续位全部标记为使用,N、P、Q均为非负的整数;将所述2(N+P+Q)个连续位中第一位在块状态位图中的二进制位序号乘以2S‑(N+P+Q)的积,赋予待写大页号,结束;(2)缓存操作步骤,包括下述子步骤:(2.1)接收来自于主机的读命令或写命令,读命令转子步骤(2.2),写命令转子步骤(2.3);读命令包括需要读取数据的逻辑页号,写命令包括需要写入的数据和需要写入的逻辑页号;(2.2)根据读命令中的逻辑页号在缓存中查找是否命中,是则从缓存中直接读出逻辑页号对应的数据传给主机,返回;否则转步骤(3);(2.3)根据写命令中的逻辑页号在缓存中查找是否命中,是则将数据写入缓存中所述逻辑页号对应区域,通知主机写操作完成,返回;否则转子步骤(2.4);(2.4)查看缓存中是否有足够空间容纳所写入的逻辑页号及数据,是则进行子步骤(2.5),否则转子步骤(2.6);(2.5)将写命令中的逻辑页号及数据写入缓存中,通知主机写操作完成,返回;(2.6)根据替换算法一次性从缓存中选择x个页,包括这x页的逻辑页号及数据,x为一个“大页”所包含的物理页个数,转步骤(4);(3)数据读操作步骤:对读命令中所包含待读数据的逻辑页号进行地址映射,获得待读数据的通道号、芯片号、晶圆号、分组号、块号和块内页号,据其读出数据,传给主机,返回;(4)数据写操作步骤,包括下述子步骤:(4.1)判断从缓存中所选择的x个页的逻辑页号是否连续,是则转子步骤(4.2),否则转子步骤(4.6);(4.2)判断连续的x页中最小逻辑页号F是否为2S的整数倍,是则转子步骤(4.3),否则转子步骤(4.4),S为正整数且S>N+P+Q;(4.3)查看块状态位图,在其前一半位中任选一个标记为空白的位,将其标记为使用,并获得该位对应的物理块的二进制物理块序号,将所述二进制物理块序号自左向右的N、M、P、Q、R位分别作为相应物理块的通道号、芯片号、晶圆号、分组号、块号;将所选择的x个页的内容依其逻辑页号自小到大写入所述物理块的前x个物理页,该物理块成为一个顺序写日志块,自左向右将写入物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号组合成其二进制物理页号,转子步骤(4.9);(4.4)在闪存存储器中查找F是否与某个顺序写日志块中的最后一个有效页连续,是则获得所查找到的物理页号L,转子步骤(4.5),否则转子步骤(4.6);(4.5)依次将所述x个页依其逻辑页号自小到大写入物理页号为L+1至L+x的物理页中,二进制物理页号自左向右的N、M、P、Q、R、S位分别为通道号、芯片号、晶圆号、分组号、块号和块内页号,转子步骤(4.9);(4.6)将所述x个页同时分别写入待写大页号所指向大页的物理页中,转子步骤(4.7);所述待写大页号所指向的大页中物理页的芯片号、块号和块内页号分别为二进制待写大页号自左向右的M、R和S位;所述待写大页号所指向大页中的物理页包括闪存存储器中具有所述芯片号、块号和块内页号的所有物理页;所述写入物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号自左向右组合成其二进制物理页号;(4.7)将待写大页号的值加1后赋予待写大页号,然后判断二进制待写大页号自右向左S位是否全部为0,是则转子步骤(4.8),否则,转子步骤(4.9);(4.8)查看块状态位图,在其后一半位中任选2(N+P+Q)个连续的标记为空白的位,需满足它们的二进制位序号中最小位序号自右向左的(N+P+Q)位全部为0,所述2(N+P+Q)个连续位全部标记为使用;将所述2(N+P+Q)个连续位中第一位在块状态位图中的二进制位序号乘以2S‑(N+P+Q)的积,赋予待写大页号,转子步骤(4.9);(4.9)对所述x个页的逻辑页号分别进行地址映射,获得在闪存中的通道号、芯片号、晶圆号、分组号、块号和块内页号,将它们标记为无效页;在页映射表中分别记录下所述x个页的逻辑页号到其写入物理页的物理页号之间的映射关系,清除缓存中所述x个页的逻辑页号及其相应数据,转子步骤(2.5)。...

【技术特征摘要】
1.一种闪存存储器的混合映射方法,包括初始设置步骤、缓存操作步骤、数据读操作步骤及数据写操作步骤,其特征在于:(1)初始设置步骤:包括下述子步骤:(1.1)将块状态位图中的各个位全部标记为空白;(1.2)在块状态位图后一半位中任选2(N+P+Q)个连续位,需满足它们的二进制位序号中最小位序号自右向左的(N+P+Q)位全部为0,将所述2(N+P+Q)个连续位全部标记为使用,N、P、Q均为非负的整数;将所述2(N+P+Q)个连续位中第一位在块状态位图中的二进制位序号乘以2S-(N+P+Q)的积,赋予待写大页号,结束;(2)缓存操作步骤,包括下述子步骤:(2.1)接收来自于主机的读命令或写命令,读命令转子步骤(2.2),写命令转子步骤(2.3);读命令包括需要读取数据的逻辑页号,写命令包括需要写入的数据和需要写入的逻辑页号;(2.2)根据读命令中的逻辑页号在缓存中查找是否命中,是则从缓存中直接读出逻辑页号对应的数据传给主机,返回;否则转步骤(3);(2.3)根据写命令中的逻辑页号在缓存中查找是否命中,是则将数据写入缓存中所述逻辑页号对应区域,通知主机写操作完成,返回;否则转子步骤(2.4);(2.4)查看缓存中是否有足够空间容纳所写入的逻辑页号及数据,是则进行子步骤(2.5),否则转子步骤(2.6);(2.5)将写命令中的逻辑页号及数据写入缓存中,通知主机写操作完成,返回;(2.6)根据替换算法一次性从缓存中选择x个页,包括这x页的逻辑页号及数据,x为一个“大页”所包含的物理页个数,转步骤(4);(3)数据读操作步骤:对读命令中所包含待读数据的逻辑页号进行地址映射,获得待读数据的通道号、芯片号、晶圆号、分组号、块号和块内页号,据其读出数据,传给主机,返回;(4)数据写操作步骤,包括下述子步骤:(4.1)判断从缓存中所选择的x个页的逻辑页号是否连续,是则转子步骤(4.2),否则转子步骤(4.6);(4.2)判断连续的x页中最小逻辑页号F是否为2S的整数倍,是则转子步骤(4.3),否则转子步骤(4.4),S为正整数且S>N+P+Q;(4.3)查看块状态位图,在其前一半位中任选一个标记为空白的位,将其标记为使用,并获得该位对应的物理块的二进制物理块序号,将所述二进制物理块序号自左向右的N、M、P、Q、R位分别作为相应物理块的通道号、芯片号、晶圆号、分组号、块号;将所选择的x个页的内容依其逻辑页号自小到大写入所述物理块的前x个物理页,该物理块成为一个顺序写日志块,自左向右将写入物理页的通道号、芯片号、晶圆号、分组号、块号和块内页号组合成其二进制物理页号,转子步骤(4.9);(4.4)在闪存存储器中查找F是否与某个顺序写日志块中的最后一个有效页连续,是则获得所查找到的物理页号L,转子步骤(4.5),否则转子步骤(4.6);(4.5)依次将所述x个页依其逻辑页号自小到大写入物理页号为L+1至L+x的物理页中,二进制物理页号自左向右的N、M、P、Q、R、S位分别为通道号、芯片号、晶圆号、分组号、块号和块内页号,转子步骤(4.9);(4.6)将所述x个页同时分别写入待写大页号所指向大页的物理页中,转子步骤(4.7);所述待写大页号所指向的大页中物理页的芯片号、块号和块内页号分别为二进制待写大页号自左向右的M、R和S位;所述待写大页号所指向大页中的物理页包括闪存存储器中具有所述芯片号、块号和块内页号的所有物理页;...

【专利技术属性】
技术研发人员:王芳何丹童薇冯丹刘景宁覃鸿巍
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1