CN110908928A - 搜寻最后写入页的方法及装置 - Google Patents
搜寻最后写入页的方法及装置 Download PDFInfo
- Publication number
- CN110908928A CN110908928A CN201910980068.3A CN201910980068A CN110908928A CN 110908928 A CN110908928 A CN 110908928A CN 201910980068 A CN201910980068 A CN 201910980068A CN 110908928 A CN110908928 A CN 110908928A
- Authority
- CN
- China
- Prior art keywords
- super
- page
- channel
- mark
- pages
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请涉及一种搜寻最后写入页的方法及装置,所述方法包括:获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量;根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号;将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;根据所述编号范围确定最后写入页。根据上述方法利用多个通道同时搜寻同一个超级块内最后写入页,并分析最后写入页的位置,可大幅度减少搜寻所需的时间,以此缩短存储器读取数据的时间。
Description
技术领域
本申请涉及存储器技术领域,尤其涉及一种搜寻最后写入页的方法及装置。
背景技术
当存储器设备开机时,FW(Firmware固件)会在数据块(Nand Flash Block)中搜寻上一次最后写入页,用于重建FTL(Flash translation layer)表或寻找最后一笔FW记录的系统数据。通常有三种寻找最后写入页的方法:第一种,FW从数据块中的第一页向下寻找最后写入页;第二种,FW从数据块中的最后一页向上寻找最后写入页;第三种,以二分搜寻算法的方式搜寻数据块中的最后写入页。但以上方法所花的搜寻时间久,导致存储器读取数据的时间久,因此需要提供一种能够缩短搜寻最后写入页的方法,缩短存储器读取数据的时间。
发明内容
为了解决上述技术问题,本申请提供了一种搜寻最后写入页的方法及装置。
第一方面,本申请提供了一种搜寻最后写入页的方法,应用于存储器设备,所述存储器设备包括存储器和控制器,所述方法包括:
获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;
将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
根据所述编号范围确定最后写入页。
可选地,所述将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应,包括:
判断超级页的数量除以通道数之后是否有余数;
当超级页的数量除以通道数之后没有余数时,将所有的超级页按照顺序平均分配至多个通道,得到多个群组,各个群组按照倒序与各个通道相对应,
当超级页的数量除以通道数之后有余数时,将所有超级页划分为可整除部分和余数部分,将可整除部分的超级页按照顺序平均分配至多个通道,得到多个群组,将余数部分的超级页放入最后一个群组中,各个群组按照倒序与各个通道相对应。
可选地,所述根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围,包括:
令多个通道同时读取各自对应的群组内编号为中位数的超级页;
判断是否存在编号为中位数的超级页未读取到有效数据的群组,所述有效数据包括存储数据和校正码;
当所有群组内编号为中位数的超级页都读取到有效数据,则:
将第一通道中读取到有效数据的超级页的编号赋值给第一标记,将第一通道中超级页编号值最大的编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
可选地,当存在编号为中位数的超级页未读取到有效数据的群组时,则:
判断是否所有群组内编号为中位数的超级页都未读取到有效数据;
当所有群组内编号为中位数的超级页都没有读取到有效数据时,将第一群组内超级页编号最小的编号赋值给第一标记,将第一群组内超级页编号为中位数的编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
可选地,当部分群组内编号为中位数的超级页未读取到有效数据时,则:
在所有读到有效数据的群组内,将编号最大的群组内,超级页编号为中位数的超级页编号赋值给第一标记,在所有读不到有效数据的群组内,将编号最小的群组内,超级页的编号为中位数的超级页编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
可选地,所述根据所述编号范围确定最后写入页,包括:
判断所述第一标记与所述第二标记之间的差值是否大于预设值;
当所述第一标记与所述第二标记之间的差值小于或等于预设值时,则:
令所述第一通道至最后通道按照第二标记对应的超级页依次递减至第一标记对应的超级页的顺序读取数据,即所述第一通道读取第二标记对应的超级页,最后通道读取第一标记对应的超级页;
判断所述第一通道是否读取有效数据;
当所述第一通道读取到有效数据时,所述有效数据对应的超级页为最后写入页。
可选地,当所述第一通道未读取到有效数据时,则:
判断最后通道是否读取到有效数据;
当最后通道未读取到有效数据时,所述第一标记对应的超级页为最后写入页。
可选地,当最后通道读取到有效数据时,则:
将所有通道中所有都读取到有效数据的超级页的最大编号赋值给第三标记,令所述第一通道读取所述第三标记对应的超级页编号加一的超级页;
判断所述第一通道是否读取到有效数据;
当所述第一通道读取到有效数据时,所述第三标记对应的超级页编号加一的超级页为最后写入页;
当所述第一通道未读取到有效数据时,则第三标记对应的超级页为最后写入页。
可选地,当所述第一标记与所述第二标记之间的差值大于预设值时,则:
将第一标记对应编号的超级页设为起始超级页,将所述第二标记对应编号的超级页设为最后一个超级页;
重新判断所述第一标记至所述第二标记之间超级页的数量与通道数相除后是否有余数。
第二方面,本申请提供了一种快速搜寻最后写入页的装置,所述装置包括:
获取单元,用于获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
编号单元,用于根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;
分配单元,用于将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
限定范围单元,用于根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
最后写入页确定单元,用于根据所述编号范围确定最后写入页。
本发明的有益效果:
本发明公开了一种搜寻最后写入页的方法,所述方法包括:获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;根据所述编号范围确定最后写入页。根据上述方法利用多个通道同时搜寻同一个超级块内最后写入页,并分析最后写入页的位置,可大幅度减少搜寻所需的时间,以此缩短存储器读取数据的时间。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中搜寻最后写入页的方法的流程示意图;
图2为一个实施例中超级块的组成原理示意图;
图3为一个实施例中超级页的组成原理示意图;
图4为一个实施例中超级页分配的流程示意图;
图5为一个实施例中一种确定编号范围方法的流程示意图;
图6为一个实施例中一种确定编号范围方法的流程示意图;
图7为一个实施例中一种确定编号范围方法的流程示意图;
图8为一个实施例中差值判断的流程示意图;
图9为一个实施例中差值等于预设值的原理示意图;
图10为一个实施例中差值小于预设值的原理示意图;
图11为一个实施例中判断最后通道是否读取到有效数据的流程示意图;
图12为一个实施例中中间通道判断有效数据的流程示意图;
图13为一个实施例中差值大于预设值的流程示意图;
图14为一个实施例中快速搜寻最后写入页的装置。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中搜寻最后写入页的方法的流程示意图,图2为一个实施例中超级块的组成原理示意图,图3为一个实施例中超级页的组成原理示意图,在本发明实施例中,参照图1-图3,提供了一种搜寻最后写入页的方法,应用于存储器设备,所述存储器设备包括存储器和控制器,所述方法包括:
S110、获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,如图2所示,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
S120、根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,如图3所示,所述超级页由超级块内各个通道下索引编号相同的页组成;
S130、将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
S140、根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
S150、根据所述编号范围确定最后写入页。
本发明公开了一种搜寻最后写入页的方法,所述方法包括:获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;根据所述编号范围确定最后写入页。根据上述方法利用多个通道同时搜寻同一个超级块内最后写入页,并分析最后写入页的位置,可大幅度减少搜寻所需的时间,以此缩短存储器读取数据的时间。
在本发明实施例中,图4为一个实施例中超级页分配的流程示意图,参照图1-图4,所述将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应,即步骤S130包括:
S131、判断超级页的数量除以通道数之后是否有余数;
S132、当超级页的数量除以通道数之后没有余数时,将所有的超级页按照顺序平均分配至多个通道,得到多个群组,各个群组按照倒序与各个通道相对应,
S133、当超级页的数量除以通道数之后有余数时,将所有超级页划分为可整除部分和余数部分,将可整除部分的超级页按照顺序平均分配至多个通道,得到多个群组,将余数部分的超级页放入最后一个群组中,各个群组按照倒序与各个通道相对应。
假设一个超级块A内有X个超级页,X个超级页的编号为0至X-1,假设通道数为N,设其实超级页的编号为E0(E0=0),最后的超级页的编号为E1(E1=X-1),将E0至E1连续的超级页由小到大的顺序编号,依照通道数N平均分配,得到N个群组,群组为S1,S2,S3,…,Sn-1,Sn,每个群组内分配到超级页的个数为Q或Q+R。
(E1-E0+1)÷N=Q….R
R=0时,S1=S2=……=Sn-1=Sn=Q;
R≠0时,S1=S2=……=Sn-1,Sn=Q+R;
第一通道对应的Sn群组,Sn内超级页的编号为E0+(N-1)Q~E1;
第二通道对应的Sn-1群组,Sn-1内超级页的编号为E0+(N-2)Q~E0+(N-1)Q-1;
……
第N通道对应的S1群组,S1内超级页的编号为E0~E0+Q-1。
在本发明实施例中,图5为一个实施例中一种确定编号范围方法的流程示意图,参照图5,所述根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围,即步骤S140包括:
S141、令多个通道同时读取各自对应的群组内编号为中位数的超级页;
S142、判断是否存在编号为中位数的超级页未读取到有效数据的群组,所述有效数据包括存储数据和校正码;
当所有群组内编号为中位数的超级页都读取到有效数据时,则:
S14211、将第一通道中读取到有效数据的超级页的编号赋值给第一标记,将第一通道中超级页编号值最大的编号赋值给第二标记;
S14212、根据所述第一标记和所述第二标记确定最后写入页的编号范围。
令多个通道同时读取各自对应的群组内编号为中位数的超级页:
Sn群组读取超级页的编号为[E0+(N-1)Q+E1]/2;
Sn-1群组读取超级页的编号为[E0+(N-2)Q+E0+(N-1)Q-1]/2;
……
S1群组内读取超级页的编号为(E0+E0+Q-1)/2;
然后判断各个群组中是否读取到有效数据;
将第一通道中读取到有效数据的超级页的编号赋值给第一标记M0,将第一通道中超级页编号值最大的编号赋值给第二标记M1。
在本发明实施例中,图6为一个实施例中一种确定编号范围方法的流程示意图,参照图6,当存在编号为中位数的超级页未读取到有效数据的群组时,即步骤S142之后还包括:
S14221、判断是否所有群组内编号为中位数的超级页都未读取到有效数据;
S14222、当所有群组内编号为中位数的超级页都没有读取到有效数据时,将第一群组内超级页编号最小的编号赋值给第一标记M0,将第一群组内超级页编号为中位数的编号赋值给第二标记M1;
S14223、根据所述第一标记M0和所述第二标记MO确定最后写入页的编号范围。
在本发明实施例中,图7为一个实施例中一种确定编号范围方法的流程示意图,当部分群组内编号为中位数的超级页未读取到有效数据时,即步骤S142之后还包括:
S14231、在所有读到有效数据的群组内,将编号最大的群组内,超级页编号为中位数的超级页编号赋值给第一标记MO,在所有读不到有效数据的群组内,将编号最小的群组内,超级页的编号为中位数的超级页编号赋值给第二标记M1;
S14232、根据所述第一标记M0和所述第二标记M1确定最后写入页的编号范围。
在本发明实施例中,图8为一个实施例中差值判断的流程示意图,图9为一个实施例中差值等于预设值的原理示意图,图10为一个实施例中差值小于预设值的原理示意图,参照图8-图10,所述根据所述编号范围确定最后写入页,即步骤S150包括:
S151、判断所述第一标记M0与所述第二标记M1之间的差值是否大于预设值;
当所述第一标记M0与所述第二标记M1之间的差值小于或等于预设值时,则:
S15111、令所述第一通道至最后通道按照第二标记M1对应的超级页依次递减至第一标记M0对应的超级页的顺序读取数据,即所述第一通道读取第二标记M1对应的超级页,最后通道读取第一标记M0对应的超级页;
S15112、判断所述第一通道是否读取有效数据;
S15113、当所述第一通道读取到有效数据时,所述有效数据对应的超级页为最后写入页。
判断是否满足M1-M0+1>N;
如图9所示,当M1-M0+1=N时,令第一通道读取M1对应的超级页,第二通道读取M1-1对应的超级页,…,第N-1通道读取M0-1对应的超级页,第N通道读取M0对应的超级页,如图10所示,当M1-M0+1<N时,由各个通道读取编号M1至M0对应的超级页,读取M0对应的超级页之后的通道也读取M0对应的超级页;
判断第一通道是否在M1对应的超级页中读取到有效数据;
若第一通道在M1对应的超级页中读取到有效数据时,则M1对应的超级页为最后输入页。
在本发明实施例中,图11为一个实施例中判断最后通道是否读取到有效数据的流程示意图,当所述第一通道未读取到有效数据时,即步骤S15112之后还包括:
S151121、判断最后通道是否读取到有效数据;
S151122、当最后通道未读取到有效数据时,所述第一标记M0对应的超级页为最后写入页。
判断最后通道在M0对应的超级页中是否读取到有效数据;
当最后通道在M0对应的超级页中未读取到有效数据时,所述M0对应的超级页为最后输入页。
在本发明实施例中,图12为一个实施例中中间通道判断有效数据的流程示意图,参照图12,当最后通道读取到有效数据时,即步骤S151121之后还包括:
S151123、将所有通道中所有都读取到有效数据的超级页的最大编号赋值给第三标记,令所述第一通道读取所述第三标记对应的超级页编号加一的超级页;
S151124、判断所述第一通道是否读取到有效数据;
S151125、当所述第一通道读取到有效数据时,所述第三标记对应的超级页编号加一的超级页为最后写入页;
S151126、当所述第一通道未读取到有效数据时,则第三标记对应的超级页为最后写入页。
当最后通道读取到有效数据时将所有通道中所有都读取到有效数据的超级页的最大编号赋值给第三标记Y,令所述第一通道读取Y+1对应的超级页;
判断所述第一通道在Y+1对应的超级页中是否读取到有效数据;
若第一通道读取到有效数据时,所述Y+1对应的超级页为最后写入页;
若第一通道未读取到有效数据时,所述Y对应的超级页为最后写入页。
在本发明实施例中,图13为一个实施例中差值大于预设值的流程示意图,参照图13,当所述第一标记与所述第二标记之间的差值大于预设值时,即步骤S151之后还包括:
S15121、将第一标记对应编号的超级页设为起始超级页,将所述第二标记对应编号的超级页设为最后一个超级页;
S15122、重新判断所述第一标记至所述第二标记之间超级页的数量与通道数相除后是否有余数。
当M1-M0+1>N时,将M0对应编号的超级页作为起始超级页,将M1对应编号的超级页作为最后一个超级页,即E0=M0,E1=M1;
重新将E0至E1的超级页按照通道数分配,缩短最后写入页的判断范围。
在本发明实施例中,图14为一个实施例中快速搜寻最后写入页的装置,参照图14,提供了一种快速搜寻最后写入页的装置,所述装置包括:
获取单元210,用于获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
编号单元220,用于根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;
分配单元230,用于将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
限定范围单元240,用于根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
最后写入页确定单元250,用于根据所述编号范围确定最后写入页。
在本发明实施例中,所述分配单元230包括:
数量判断单元,用于判断超级页的数量除以通道数之后是否有余数;
平均分配单元,用于当超级页的数量除以通道数之后没有余数时,将所有的超级页按照顺序平均分配至多个通道,得到多个群组,各个群组按照倒序与各个通道相对应,
余数分配单元,用于当超级页的数量除以通道数之后有余数时,将所有超级页划分为可整除部分和余数部分,将可整除部分的超级页按照顺序平均分配至多个通道,得到多个群组,将余数部分的超级页放入最后一个群组中,各个群组按照倒序与各个通道相对应。
在本发明实施例中,所述限定范围单元240包括:
读取单元,用于令多个通道同时读取各自对应的群组内编号为中位数的超级页;
第一读取判断单元,用于判断是否存在编号为中位数的超级页未读取到有效数据的群组,所述有效数据包括存储数据和校正码;
第一赋值单元,用于当所有群组内编号为中位数的超级页都读取到有效数据,将第一通道中读取到有效数据的超级页的编号赋值给第一标记,将第一通道中超级页编号值最大的编号赋值给第二标记;
第一编号范围确定单元,用于根据所述第一标记和所述第二标记确定最后写入页的编号范围。
在本发明实施例中,所述限定范围单元240还包括:
第二读取判断单元,用于当存在编号为中位数的超级页未读取到有效数据的群组时,判断是否所有群组内编号为中位数的超级页都未读取到有效数据;
第二赋值单元,用于当所有群组内编号为中位数的超级页都没有读取到有效数据时,将第一群组内超级页编号最小的编号赋值给第一标记,将第一群组内超级页编号为中位数的编号赋值给第二标记;
第二编号范围确定单元,用于根据所述第一标记和所述第二标记确定最后写入页的编号范围。
在本发明实施例中,所述限定范围单元240还包括:
第三赋值单元,用于当部分群组内编号为中位数的超级页未读取到有效数据时,在所有读到有效数据的群组内,将编号最大的群组内,超级页编号为中位数的超级页编号赋值给第一标记,在所有读不到有效数据的群组内,将编号最小的群组内,超级页的编号为中位数的超级页编号赋值给第二标记;
第三编号范围确定单元,用于根据所述第一标记和所述第二标记确定最后写入页的编号范围。
在本发明实施例中,所述最后写入页确定单元250包括:
差值判断单元,用于判断所述第一标记与所述第二标记之间的差值是否大于预设值;
范围读取单元,用于当所述第一标记与所述第二标记之间的差值小于或等于预设值时,令所述第一通道至最后通道按照第二标记对应的超级页依次递减至第一标记对应的超级页的顺序读取数据,即所述第一通道读取第二标记对应的超级页,最后通道读取第一标记对应的超级页;
第一通道读取单元,用于判断所述第一通道是否读取有效数据;
第一获取最后写入页单元,当所述第一通道读取到有效数据时,所述有效数据对应的超级页为最后写入页。
在本发明实施例中,所述最后写入页确定单元250还包括:
最后通道读取单元,用于当所述第一通道未读取到有效数据时,判断最后通道是否读取到有效数据;
第二获取最后写入页单元,用于当最后通道未读取到有效数据时,所述第一标记对应的超级页为最后写入页。
在本发明实施例中,所述最后写入页确定单元250还包括:
中间通道读取单元,用于当最后通道读取到有效数据时,将所有通道中所有都读取到有效数据的超级页的最大编号赋值给第三标记,令所述第一通道读取所述第三标记对应的超级页编号加一的超级页;
重新判断单元,用于判断所述第一通道是否读取到有效数据;
第三获取最后写入页单元,用于当所述第一通道读取到有效数据时,所述第三标记对应的超级页编号加一的超级页为最后写入页;
第四获取最后写入页单元,用于当所述第一通道未读取到有效数据时,则第三标记对应的超级页为最后写入页。
在本发明实施例中,所述装置还包括:
缩小范围单元,用于当所述第一标记与所述第二标记之间的差值大于预设值时,将第一标记对应编号的超级页设为起始超级页,将所述第二标记对应编号的超级页设为最后一个超级页;
重新分配单元,用于重新判断所述第一标记至所述第二标记之间超级页的数量与通道数相除后是否有余数。
本发明公开了一种搜寻最后写入页的方法及装置,所述方法包括:获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;根据所述编号范围确定最后写入页。根据上述方法利用多个通道同时搜寻同一个超级块内最后写入页,并分析最后写入页的位置,可大幅度减少搜寻所需的时间,以此缩短存储器读取数据的时间。
所述装置包括:获取单元210,用于获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;编号单元220,用于根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;分配单元230,用于将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;限定范围单元240,用于根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;最后写入页确定单元250,用于根据所述编号范围确定最后写入页。利用多个通道同时搜寻同一个超级块内最后写入页,并分析最后写入页的位置,可大幅度减少搜寻所需的时间,以此缩短存储器读取数据的时间。
图1为一个实施例中搜寻最后写入页的方法的流程示意图,图4为一个实施例中超级页分配的流程示意图,图5为一个实施例中一种确定编号范围方法的流程示意图,图6为一个实施例中一种确定编号范围方法的流程示意图,图7为一个实施例中一种确定编号范围方法的流程示意图,图8为一个实施例中差值判断的流程示意图,图11为一个实施例中判断最后通道是否读取到有效数据的流程示意图,图12为一个实施例中中间通道判断有效数据的流程示意图,图13为一个实施例中差值大于预设值的流程示意图。应该理解的是,虽然图1、图4-图8以及图11-图13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图4-图8以及图11-图13中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种搜寻最后写入页的方法,其特征在于,应用于存储器设备,所述存储器设备包括存储器和控制器,所述方法包括:
获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;
将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
根据所述编号范围确定最后写入页。
2.根据权利要求1所述的方法,其特征在于,所述将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应,包括:
判断超级页的数量除以通道数之后是否有余数;
当超级页的数量除以通道数之后没有余数时,将所有的超级页按照顺序平均分配至多个通道,得到多个群组,各个群组按照倒序与各个通道相对应,
当超级页的数量除以通道数之后有余数时,将所有超级页划分为可整除部分和余数部分,将可整除部分的超级页按照顺序平均分配至多个通道,得到多个群组,将余数部分的超级页放入最后一个群组中,各个群组按照倒序与各个通道相对应。
3.根据权利要求2所述的方法,其特征在于,所述根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围,包括:
令多个通道同时读取各自对应的群组内编号为中位数的超级页;
判断是否存在编号为中位数的超级页未读取到有效数据的群组,所述有效数据包括存储数据和校正码;
当所有群组内编号为中位数的超级页都读取到有效数据,则:
将第一通道中读取到有效数据的超级页的编号赋值给第一标记,将第一通道中超级页编号值最大的编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
4.根据权利要求3所述的方法,其特征在于,当存在编号为中位数的超级页未读取到有效数据的群组时,则:
判断是否所有群组内编号为中位数的超级页都未读取到有效数据;
当所有群组内编号为中位数的超级页都没有读取到有效数据时,将第一群组内超级页编号最小的编号赋值给第一标记,将第一群组内超级页编号为中位数的编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
5.根据权利要求4所述的方法,其特征在于,当部分群组内编号为中位数的超级页未读取到有效数据时,则:
在所有读到有效数据的群组内,将编号最大的群组内,超级页编号为中位数的超级页编号赋值给第一标记,在所有读不到有效数据的群组内,将编号最小的群组内,超级页的编号为中位数的超级页编号赋值给第二标记;
根据所述第一标记和所述第二标记确定最后写入页的编号范围。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述根据所述编号范围确定最后写入页,包括:
判断所述第一标记与所述第二标记之间的差值是否大于预设值;
当所述第一标记与所述第二标记之间的差值小于或等于预设值时,则:
令所述第一通道至最后通道按照第二标记对应的超级页依次递减至第一标记对应的超级页的顺序读取数据,即所述第一通道读取第二标记对应的超级页,最后通道读取第一标记对应的超级页;
判断所述第一通道是否读取有效数据;
当所述第一通道读取到有效数据时,所述有效数据对应的超级页为最后写入页。
7.根据权利要求6所述的方法,其特征在于,当所述第一通道未读取到有效数据时,则:
判断最后通道是否读取到有效数据;
当最后通道未读取到有效数据时,所述第一标记对应的超级页为最后写入页。
8.根据权利要求7中所述的方法,其特征在于,当最后通道读取到有效数据时,则:
将所有通道中所有都读取到有效数据的超级页的最大编号赋值给第三标记,令所述第一通道读取所述第三标记对应的超级页编号加一的超级页;
判断所述第一通道是否读取到有效数据;
当所述第一通道读取到有效数据时,所述第三标记对应的超级页编号加一的超级页为最后写入页;
当所述第一通道未读取到有效数据时,则第三标记对应的超级页为最后写入页。
9.根据权利要求6所述的方法,其特征在于,当所述第一标记与所述第二标记之间的差值大于预设值时,则:
将第一标记对应编号的超级页设为起始超级页,将所述第二标记对应编号的超级页设为最后一个超级页;
重新判断所述第一标记至所述第二标记之间超级页的数量与通道数相除后是否有余数。
10.一种快速搜寻最后写入页的装置,其特征在于,所述装置包括:
获取单元,用于获取所述控制器与所述存储器连接的通道数以及所述存储器内超级块的数量,所述超级块由各个通道下索引编号相同的数据块组成,所述超级块用于指示存储器中资源存储情况,所述资源存储情况包括存储器内数据块群组总数;
编号单元,用于根据所述超级块获取超级页的数量,并对所有超级页按照顺序编号,所述超级页由超级块内各个通道下索引编号相同的页组成;
分配单元,用于将编号后的所述超级页按照通道数分配,获得多个群组,各个群组按照倒序与各个通道相对应;
限定范围单元,用于根据所有通道对各自对应的群组同时读取有效数据,确定最后写入页的编号范围;
最后写入页确定单元,用于根据所述编号范围确定最后写入页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980068.3A CN110908928B (zh) | 2019-10-15 | 2019-10-15 | 搜寻最后写入页的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910980068.3A CN110908928B (zh) | 2019-10-15 | 2019-10-15 | 搜寻最后写入页的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908928A true CN110908928A (zh) | 2020-03-24 |
CN110908928B CN110908928B (zh) | 2022-03-11 |
Family
ID=69815443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910980068.3A Active CN110908928B (zh) | 2019-10-15 | 2019-10-15 | 搜寻最后写入页的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908928B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020051482A1 (en) * | 1995-06-30 | 2002-05-02 | Lomp Gary R. | Median weighted tracking for spread-spectrum communications |
US20040059720A1 (en) * | 2002-09-23 | 2004-03-25 | Rodriguez Alex Omar | Broadcast network platform system |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN104477458A (zh) * | 2014-12-08 | 2015-04-01 | 张君 | 基于灌装液体食品生产的高效信号传输方法 |
-
2019
- 2019-10-15 CN CN201910980068.3A patent/CN110908928B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020051482A1 (en) * | 1995-06-30 | 2002-05-02 | Lomp Gary R. | Median weighted tracking for spread-spectrum communications |
US20040059720A1 (en) * | 2002-09-23 | 2004-03-25 | Rodriguez Alex Omar | Broadcast network platform system |
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN103325417A (zh) * | 2012-03-23 | 2013-09-25 | 三星电子株式会社 | 非易失性存储器件、非易失性存储系统、及其编程方法 |
CN104477458A (zh) * | 2014-12-08 | 2015-04-01 | 张君 | 基于灌装液体食品生产的高效信号传输方法 |
Non-Patent Citations (2)
Title |
---|
R. MOTWANI: "Hierarchical Constrained Coding for Floating-Gate to Floating-Gate Coupling Mitigation in Flash Memory", 《2011 IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE - GLOBECOM》 * |
欧洋: "基于新型存储介质的软硬件优化关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110908928B (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7788441B2 (en) | Method for initializing and operating flash memory file system and computer-readable medium storing related program | |
US20080120488A1 (en) | Apparatus and method of managing nonvolatile memory | |
US20130238835A1 (en) | Burning system and method | |
US8433844B2 (en) | Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof | |
CN103116536B (zh) | 存储装置的容量检测方法 | |
US10083181B2 (en) | Method and system for storing metadata of log-structured file system | |
KR101150654B1 (ko) | 비휘발성 메모리 상의 데이터 관리 방법 및 기계 판독 가능한 매체 | |
CN107506618A (zh) | 高通量测序序列的存储方法和查询方法 | |
CN110908928B (zh) | 搜寻最后写入页的方法及装置 | |
EP1607984A1 (en) | Method for managing bad memory blocks in a nonvolatile memory device, and nonvolatile memory device implementing the management method | |
CN110543279A (zh) | 一种数据存储、处理方法、装置及系统 | |
US20110107056A1 (en) | Method for determining data correlation and a data processing method for a memory | |
CN101944065B (zh) | 一种基于扇区的闪存坏块屏蔽方法 | |
CN111078137B (zh) | 清理存储空间的方法 | |
CN107132994A (zh) | 一种延长可擦写芯片寿命的方法和装置 | |
US8990614B2 (en) | Performance of a system having non-volatile memory | |
CN105205062A (zh) | 数据存储方法、数据读取方法和装置 | |
US7613894B2 (en) | Power loss recovery in non-volatile memory | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
US8782353B2 (en) | Information processing device having data field and operation methods of the same | |
CN115237819A (zh) | 一种数据存储、数据读取方法及装置 | |
US9153323B2 (en) | Systems and methods for generating soft information in NAND flash | |
CN111949558B (zh) | 一种垃圾数据回收方法、装置和存储设备 | |
US20090043770A1 (en) | Method of Realizing Commands Synchronization in Supporting Multi-Threading Non-Volitale Memory File System | |
CN106897315A (zh) | Kv项有效性获取方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |