一种3D闪存的控制方法及控制系统与流程

文档序号:12363560阅读:256来源:国知局
一种3D闪存的控制方法及控制系统与流程

本发明涉及存储技术领域,尤其涉及一种3D闪存的控制方法及控制系统。



背景技术:

由于3D闪存具有高存储容量的特点,因此受到越来越多行业的青睐,但是现有上层操作系统对某一范围的逻辑地址空间进行频繁更新操作,在现有的3D闪存管理技术中,随着某一逻辑地址中的数据不断更新,其对应的物理块链不断增长,而在同一块链中的其他空闲物理页却得不到使用,严重影响芯片的空间利用率。特别是在现有3D闪存芯片的物理空间的组织形式上,比如令log_page为逻辑页号,每个物理块中有page_per_block个物理页,当log_page需要更新时,需要分配一个空闲物理块给物理块链,并在新分配的空闲物理块的第offset物理页上写入更新的数据。在极端情况下,若log_page号逻辑页频繁进行更新,则对应的物理块链将大大增长,而物理块链的实际空间利用率却极小,即物理块链中存在大量未被使用的空闲物理页。



技术实现要素:

本发明旨在解决现有技术中在某些逻辑页频繁进行更新时,对应的物理块链将大大增长,而物理块链的实际空间利用率却极小的技术问题,提供一种3D闪存的控制方法及控制系统。

本发明的实施例提供一种3D闪存的控制方法,所述控制方法包括以下步骤:在进行数据的读/写操作时,根据读/写数据的逻辑页号得到逻辑块号和块内页偏移号;

根据预设的映射表得到所述逻辑块号对应物理块链的入口物理块号;

在所述入口物理块号对应物理块所在的当前物理块链中由前往后查找所述块内页偏移号对应物理页是否空闲或是否存在有效数据,如果是,进行数据的写入或读出;

如果否,在进行写操作时从当前物理块链最后一个物理块开始由后往前查找空闲物理页或获取空闲物理块加入当前的物理块链中,进入进行数据的写入的步骤;在进行读操作时从当前物理块链最后一个物理块开始由后往前查找有效数据并当没有查找到有效数据时提示无数据可读。

本发明的控制方法与现有技术相比,有益效果在于:通过在当前物理块链中由前往后查找所述块内页偏移号对应物理页以及在当前物理块链中由后往前查找所述块内页偏移号对应物理页以写入或读出数据,既保证了物理块链中物理空间的有效利用,又避免了对存储空间管理的复杂性。

本发明的实施例还提供一种3D闪存的控制系统,所述控制系统包括:生成模块,映射关系建立模块,确定模块,写入操作模块,读出操作模块,读出查找模块,写入查找分配模块和结束操作模块;

生成模块,用于在进行数据的读/写操作时,根据读写数据的逻辑页号得到逻辑块号和块内页偏移号;

映射关系建立模块,用于根据预设的映射表得到所述逻辑块号对应物理块链的入口物理块号;

确定模块,用于在所述入口物理块号对应物理块所在的当前物理块链中由前往后查找所述块内页偏移号对应物理页是否空闲或是否存在有效数据,如果是,在进行读操作时,进入读出操作模块,在进行写操作时,进入写入操作模块,如果否,在进行读操作时,进入读出查找模块,在进行写操作时,进入写入查找分配模块;

读出操作模块,用于进行有效数据的读出;

写入操作模块,用于进行数据的写入;

读出查找模块,用于当前物理块链最后一个物理块开始由后往前查找有效数据,当查找到有效数据时,进入读出操作模块,否则进入结束操作模块;

写入查找分配模块,用于从当前物理块链最后一个物理块开始由后往前查找空闲物理页或获取空闲物理块加入当前的物理块链,进入写入操作模块。

本发明的控制系统与现有技术相比,有益效果在于:通过在当前物理块链中由前往后查找所述块内页偏移号对应物理页以及在当前物理块链中由后往前查找所述块内页偏移号对应物理页以写入或读出数据,既保证了物理块链中物理空间的有效利用,又避免了对存储空间管理的复杂性。

附图说明

图1是本发明3D闪存的控制方法在进行数据的写操作时一个实施例的流程示意图;

图2是本发明3D闪存的控制方法中查找空闲物理页算法一个实施例的流程示意图;

图3是本发明3D闪存的控制方法中空闲物理页分配算法一个实施例一个实施例的流程示意图;

图4是本发明3D闪存的控制方法中物理块擦除回收策略一个实施例的流程示意图;

图5是本发明3D闪存的控制方法在进行数据的读操作时一个实施例的流程示意图;

图6是本发明3D闪存的控制系统一个实施例的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本发明的3D闪存的控制方法主要某些逻辑页频繁进行更新时,对应的物理块链将大大增长,而物理块链的实际空间利用率却极小,主要从两个方面进行改进:一、对物理块链的组织形式进行改进,实现物理块链空间的充分利用。二、改进物理块的擦除回收策略,减小因擦除回收操作而造成的较长的响应时间。

图1是本发明一个实施例3D闪存的控制方法在进行数据的写操作时的流程示意图。如图1所示,在进行数据的写操作时,所述控制方法包括以下步骤:

步骤S1,在进行数据的写操作时,根据读写数据的逻辑页号得到逻辑块号和块内页偏移号;

步骤S2,根据预设的映射表得到所述逻辑块号对应物理块链的入口物理块号;

步骤S3,在所述入口物理块号对应物理块所在的当前物理块链中由前往后查找所述块内页偏移号对应物理页是否空闲,如果是,进入步骤S4,如果否,进入步骤S5;

步骤S4,进行数据的写入;

步骤S5,从当前物理块链最后一个物理块开始由后往前查找空闲物理页或获取空闲物理块加入当前的物理块链中,进入步骤S4。

在具体实施中,对于3D闪存芯片,所述3D闪存芯片可分为若干层,每层可分为若干行,而每行中有若干物理块,每个物理块有若干个物理页。

在步骤S1中,操作系统首先发出写操作请求,存储管理系统计算相应的逻辑块号log_block和块内页偏移号offset,比如每个物理块中有page_per_block=36个物理页,而写数据的逻辑页号log_page=38,其对应的逻辑块号log_block为log_page/page_per_block=38/36=1,其对应的块内页偏移号offset为log_page%page_per_block=38%36=2,接着存储管理系统查看逻辑块号到物理块号的映射表,获得对应物理块链的入口物理块的物理块号phy_block。

在步骤S3中,若phy_block中的第offset物理页空闲,则向该物理页中写入数据;否则从当前物理块链的头部开始,沿着当前物理块链链由前向后查看每个物理块的第offset物理页是否空闲,若找到空闲物理页,则写入数据,若无空闲页,则转入图3。

在步骤S4中,进行数据的写入具体为:在所述块内页偏移号对应物理页或空闲物理页中进行数据的写入。

在具体实施中,如图2所示,步骤S3中,所述查找所述当前物理块链中各个替换块是否有空闲物理页的步骤,具体包括:

步骤S31,在所述入口物理块号对应物理块中查找所述块内页偏移号对应物理页是否空闲,如果是,进入步骤S32,如果否,进入步骤S33;

步骤S32,在所述块内页偏移号对应物理页中写入数据;

步骤S33,顺次从前往后查找当前物理块链中的物理块是否存在空闲的所述块内页偏移号对应物理页,如果是,步骤S4,如果否,进入步骤S5。

在具体实施中,当当前物理块链中所有的物理块的第offset物理页均存有数据时,存储管理系统寻找空闲物理页的具体操作流程如图3所示,步骤S5,具体包括:

步骤S51,判断当前物理块链的长度是否到达预设的长度,如果是,进入步骤S53,如果否,则进入步骤S52;

步骤S52,获取空闲物理块加入当前的物理块链,进入步骤S4;

步骤S53,查找当前物理块链最后一个物理块中物理页是否存有所述块内页偏移号对应物理页的数据,如果是进入步骤S55,如果否则进入步骤S54;

步骤S54,确定当前物理块链最后一个物理块中的空闲物理页,进入步骤S4;

步骤S55,将存在所述数据的物理页设置为标记物理页;

步骤S56,从当前物理块链的最后一个物理块开始由后往前查找各个物理块的标记物理页是否为空闲页,如果是进入步骤S4,如果否则进入步骤S57;

步骤S57,对当前物理链块进行擦除回收操作。

也就是说,存储管理系统首先判断当前物理块链长度是否到达预设长度,即最大限定长度,若未达到最大限定长度,则分配空闲物理块,并将其加入当前物理块链中,将数据写入当前物理块链的第一个空闲物理块的offset号物理页。若到达最大长度限定,则查看当前物理块链中最后一个物理块是否有物理页存有offset页的数据,若存在,记该物理页号为r_offset,并从当前物理块链的最后一个物理块开始,由后向前扫描该物理块链,查看当前物理块链中物理块的第r_offset物理页是否为空闲页。若找到空闲的物理页,则分配并写入数据,那么将当前物理块链设计成一个长度有限,可以折回访问的、共享存储空间的块链结构。若当前物理块链中最后一个物理块第r_offset物理页不存在offset的数据,则查看最后一个物理块中是否有空闲物理页,若有空闲物理页,则分配该空闲物理页。若以上操作均未找到空闲的物理页,则对当前物理块链进行擦除回收操作,分配物理块,写入有效数据,完成写请求操作。

在本发明的控制方法中,通过当前物理块链达到一定长度时,某一逻辑页更新的数据将从当前物理块链的尾部,最后一个物理块的某个空闲物理页offset开始,沿着当前物理块链,由后向前进行写入数据。当块链中所有offset物理页均有数据时,则从块链的最后一个物理块的某个空闲物理页r_offset开始,按照上面步骤,重新进行写操作,使得当前物理块链中,从物理块链前部分到物理块链后半部分更新的数据均与实际的逻辑页所对应的块内偏移物理页相对应,从物理块链后半部分到物理块链前半部分,更新的数据均与另外一个逻辑页相对应,那么该方法充分利用当前物理块链中未被使用的物理页,将当前物理块链中所有物理块相同块内偏移物理页动态分割成两个部分,块链的前一部分仍然按照原技术存储数据,块链的后一部分则存储另外物理页的数据,既保证了物理空间的有效利用,又避免了对存储空间管理的复杂性。

在具体实施中,在写操作时,如图4所示,在步骤S2之后,所述控制方法还包括以下步骤:

步骤S6,判断所述入口物理块号是否存在对应的物理块,如果否,步骤S7,如果是,步骤S3;

步骤S7,获取空闲物理块,在空闲物理块的块内页偏移号对应物理页写入数据并在增加映射表项。

通过根据当前物理块链的入口映射表确定是否有相应的逻辑块到当前物理块链的入口物理块的映射表项,如果有,则从物理块连的入口物理块,从前向后顺次寻找空闲物理页。如果没有映射表项,则寻找空闲物理块,构造逻辑块到物理块的映射表项。

由于现有技术中3D闪存芯片的物理块的擦除回收策略,只有在芯片无空闲物理块或空闲物理块长度达到一定阈值时,才进行物理块的擦除回收操作,且选择最长的物理块链进行擦除回收操作。因此,一旦因空闲物理块不足而触发擦除回收操作,则将严重影响系统的单次响应时间,影响芯片的性能。在具体实施中,改进物理块的擦除回收策略,减小因擦除回收操作而造成的较长的响应时间。步骤S56,具体为:

根据所述当前物理链块的更新频率,分配对应的物理层以移转所述当前物理链块中的数据,其中更新频率为预设时间内所述当前物理链块的更新次数。

也就是说,在对芯片进行物理块擦除回收操作中,当当前物理块链到达一定长度后,且该块链中已无空间继续满足对应逻辑页的数据更新时,则对该块链进行擦除回收操作,并根据该块链的更新频率,在合适区域为该块链分配空间以转移数据。

在发明的控制方法中,对于芯片进行物理块擦除回收操作,通过当前物理块链到达一定长度后,且当前物理块链中已无空间继续满足对应逻辑页的数据更新时,才对当前物理块链进行擦除回收操作,提高了块链中空闲物理页的利用率,因此不会出现某一逻辑页频繁更新造成当前物理块链过长而导致物理块链中大量空闲物理页被擦除的情况发生。同时该擦除回收操作的方案可以有效延迟了擦除操作,保证了较短的用户响应时间。而该擦除回收操作并不是在芯片内无空闲物理块时进行擦除操作,可以有效防止单次用户访问时间过长的情况发生。

在具体实施中,在本发明在物理块的读写操作方面,首先保证在当前物理块链允许的最大长度之前,在物理块链中的每个物理块固定物理页中对数据进行更新,当物理块链长度达到最大限度,则从最后一个物理块开始,逆向寻找空闲物理页对数据进行更新。对于读操作的过程中,首先在每个物理块的固定位置的物理页中查看是否存在有效数据,若不存在,再根据写操作的步骤,从最后一个物理块开始,沿着物理块链逆向寻找存储有效数据的物理页,使得本发明的控制方法可以针对更新频率不同的数据采用了更加灵活的读写策略。当数据的更新频率较高时,可以保证了空间利用率,当数据的更新频率较低时,则保证数据具有较高的访问速度。

图5是根据本发明一个实施例3D闪存的控制方法在进行数据的读操作时的流程示意图。如图5所示,在进行数据的读操作时,所述控制方法包括以下步骤:

步骤S510,根据读数据的逻辑页号得到逻辑块号和块内页偏移号;

步骤S520,根据预设的映射表得到所述逻辑块号对应物理块链的入口物理块号;

步骤S530,判断所述入口物理块号对应物理块中所述块内页偏移号对应物理页是否存在有效数据,如果是,进入步骤S540,如果否,进入步骤S550;

步骤S540,进行有效数据的读出;

步骤S550,顺次从前往后查找所述当前物理块链中各个物理块的所述块内页偏移号对应物理页是否存在有效数据,当查找到所述块内页偏移号对应物理页存在有效数据时,进入步骤S540,否则进入步骤S560;

步骤S560,查找当前物理块链最后一个物理块中物理页是否存有所述块内页偏移号对应物理页的数据,如果是,进入步骤S580,如果否,进入步骤S570;

步骤S570,提示无数据可读;

步骤S580,将存在所述数据的物理页设置为标记物理页,进入步骤S590;

步骤S590,从当前物理块链的最后一个物理块开始查看各个物理块的标记物理页以确定是否存在所述块内页偏移号对应物理页的有效数据,如果是,进入步骤S540,如果否,进入步骤S570。

也就是说,操作系统给出逻辑页号log_page,发出读数据请求。存储管理系统首先计算对应的逻辑块号log_block和块内偏移量offset。根据对应的逻辑块号log_block,查找逻辑块到物理块的映射表,获得物理块链的入口物理块号phy_block。存储管理系统查看第phy_block号物理块的第offset物理页中的数据是否为有效数据,若有效,则读出数据即可;若为无效数据,存储管理系统从块链的最后一个物理块的最后一个物理页,从前向后,顺次扫描当前物理块链上各个物理块的物理页,一方面查看物理页中是否存有offset页的数据,另一方面查看该物理页中的数据是否有效,若满足以上两个方面,则读出数据;若直到当前物理块链的最后一个物理块的第offset物理页中依然未查找到有效数据,则查看最后一个物理块中某个物理页r_offset中是否存有offset页的数据,若存有offset页的数据,则从物理块链的最后一个物理块开始,由后向前,查看物理块链中的每一个物理块中的第r_offset物理页,寻找offset页的有效数据。若找到有效数据,则读取数据,完成读操作请求,否则,提示无数据可读。对于有效数据,每个物理页附带有元数据存储区,元数据存储区中存放有标记位用于标记该物理页中的数据是否有效。

在具体实施中,本发明还提供一种实施例的3D闪存的控制系统,如图6所示,所述控制系统包括:生成模块10,映射关系建立模块20,确定模块30,写入操作模块40,读出操作模块50,读出查找模块60,写入查找分配模块70和结束操作模块80;

生成模块10,用于在进行数据的读/写操作时,根据读写数据的逻辑页号得到逻辑块号和块内页偏移号;

映射关系建立模块20,用于根据预设的映射表得到所述逻辑块号对应物理块链的入口物理块号;

确定模块30,用于在所述入口物理块号对应物理块所在的当前物理块链中由前往后查找所述块内页偏移号对应物理页是否空闲或是否存在有效数据,如果是,在进行读操作时,进入读出操作模块50,在进行写操作时,进入写入操作模块40,如果否,在进行读操作时,进入读出查找模块60,在进行写操作时,进入写入查找分配模块70;

读出操作模块50,用于进行有效数据的读出;

写入操作模块40,用于进行数据的写入;

读出查找模块60,用于当前物理块链最后一个物理块开始由后往前查找有效数据,当查找到有效数据时,进入读出操作模块50,否则进入结束操作模块80;

写入查找分配模块70,用于从当前物理块链最后一个物理块开始由后往前查找空闲物理页或获取空闲物理块加入当前的物理块链,进入写入操作模块40。

在具体实施中,对于3D闪存芯片,所述3D闪存芯片可分为若干层,每层可分为若干行,而每行中有若干物理块,每个物理块有若干个物理页。

在生成模块10中,操作系统首先发出写操作请求,生成模块10计算相应的逻辑块号log_block和块内页偏移号offset,比如每个物理块中有page_per_block=36个物理页,而写数据的逻辑页号log_page=38,其对应的逻辑块号log_block为log_page/page_per_block=38/36=1,其对应的块内页偏移号offset为log_page%page_per_block=38%36=2,接着映射关系建立模块20查看逻辑块号到物理块号的映射表,获得对应物理块链的入口物理块的物理块号phy_block。

在确定模块30中,若phy_block中的第offset物理页空闲,则向该物理页中写入数据;否则从当前物理块链的头部开始,沿着当前物理块链链由前向后查看每个物理块的第offset物理页是否空闲,若找到空闲物理页,则写入数据,若无空闲页,进入写入查找分配模块70。

在写入操作模块40中,还用于在所述块内页偏移号对应物理页或空闲物理页中进行数据的写入。

在具体实施中,所述确定模块30包括第一空闲查找单元,写入单元和第二空闲查找单元;

第一空闲查找单元,用于在所述入口物理块号对应物理块中查找所述块内页偏移号对应物理页是否空闲,如果是,进入写入单元,如果否,进入第二空闲查找单元;

写入单元,用于在所述块内页偏移号对应物理页中写入数据;

第二空闲查找单元,用于顺次从前往后查找当前物理块链中的物理块是否存在空闲的所述块内页偏移号对应物理页,如果是,进入写入操作模块40,如果否,进入写入查找分配模块70。

在具体实施中,所述写入查找分配模块70包括:长度判断单元,获取单元,物理页查找单元,空闲页确定单元,物理页标记单元和擦除回收单元;

长度判断单元,用于判断当前物理块链的长度是否到达预设的长度,如果否,进入获取单元,如果是,进入物理页查找单元;

获取单元,用于获取空闲物理块加入当前的物理块链,进入写入操作模块40;

物理页查找单元,用于查找当前物理块链最后一个物理块中物理页是否存有所述块内页偏移号对应物理页的数据,如果否,进入空闲页确定单元,如果是,进入物理页标记单元;

空闲页确定单元,用于确定当前物理块链最后一个物理块中的空闲物理页,进入写入操作模块40;

物理页标记单元,用于将存在所述数据的物理页设置为标记物理页,从当前物理块链的最后一个物理块开始由后往前查找各个物理块的标记物理页是否为空闲页,如果是,进入写入操作模块40,如果否,擦除回收单元;

擦除回收单元,用于对当前物理链块进行擦除回收操作。

也就是说,写入查找分配模块70首先判断当前物理块链长度是否到达预设长度,即最大限定长度,若未达到最大限定长度,则分配空闲物理块,并将其加入当前物理块链中,将数据写入当前物理块链的第一个空闲物理块的offset号物理页。若到达最大长度限定,则查看当前物理块链中最后一个物理块是否有物理页存有offset页的数据,若存在,记该物理页号为r_offset,并从当前物理块链的最后一个物理块开始,由后向前扫描该物理块链,查看当前物理块链中物理块的第r_offset物理页是否为空闲页。若找到空闲的物理页,则分配并写入数据,那么将当前物理块链设计成一个长度有限,可以折回访问的、共享存储空间的块链结构。若当前物理块链中最后一个物理块第r_offset物理页不存在offset的数据,则查看最后一个物理块中是否有空闲物理页,若有空闲物理页,则分配该空闲物理页。若以上操作均未找到空闲的物理页,则对当前物理块链进行擦除回收操作,分配物理块,写入有效数据,完成写请求操作。

在本发明的控制系统中,通过当前物理块链达到一定长度时,某一逻辑页更新的数据将从当前物理块链的尾部,最后一个物理块的某个空闲物理页offset开始,沿着当前物理块链,由后向前进行写入数据。当块链中所有offset物理页均有数据时,则从块链的最后一个物理块的某个空闲物理页r_offset开始,按照上面步骤,重新进行写操作,使得当前物理块链中,从物理块链前部分到物理块链后半部分更新的数据均与实际的逻辑页所对应的块内偏移物理页相对应,从物理块链后半部分到物理块链前半部分,更新的数据均与另外一个逻辑页相对应。那么该方法充分利用当前物理块链中未被使用的物理页,将当前物理块链中所有物理块相同块内偏移物理页动态分割成两个部分,块链的前一部分仍然按照原技术存储数据,块链的后一部分则存储另外物理页的数据,既保证了物理空间的有效利用,又避免了对存储空间管理的复杂性。

在具体实施中,如图6所示,所述控制系统还包括映射判断模块90和物理块获取模块91,

映射判断模块90,用于判断所述入口物理块号是否存在对应的物理块,如果否,进入物理块获取模块91,如果是,进入确定模块60;

物理块获取模块91,用于获取空闲物理块,在空闲物理块的块内页偏移号对应物理页写入数据并在增加映射表项。通过根据当前物理块链的入口映射表确定是否有相应的逻辑块到当前物理块链的入口物理块的映射表项,如果有,则从物理块连的入口物理块,从前向后顺次寻找空闲物理页。如果没有映射表项,则寻找空闲物理块,构造逻辑块到物理块的映射表项。

由于现有技术中3D闪存芯片的物理块的擦除回收策略,只有在芯片无空闲物理块或空闲物理块长度达到一定阈值时,才进行物理块的擦除回收操作,且选择最长的物理块链进行擦除回收操作。因此,一旦因空闲物理块不足而触发擦除回收操作,则将严重影响系统的单次响应时间,影响芯片的性能。在具体实施中,改进物理块的擦除回收策略,减小因擦除回收操作而造成的较长的响应时间。所述擦除回收单元,还用于根据所述当前物理链块的更新频率,分配对应的物理层以移转所述当前物理链块中的数据,其中更新频率为预设时间内所述当前物理链块的更新次数。

也就是说,在对芯片进行物理块擦除回收操作中,当当前物理块链到达一定长度后,且该块链中已无空间继续满足对应逻辑页的数据更新时,则对该块链进行擦除回收操作,并根据该块链的更新频率,在合适区域为该块链分配空间以转移数据。

在发明的控制系统中,对于对芯片进行物理块擦除回收操作,通过当前物理块链到达一定长度后,且当前物理块链中已无空间继续满足对应逻辑页的数据更新时,才对当前物理块链进行擦除回收操作,提高了块链中空闲物理页的利用率,因此不会出现某一逻辑页频繁更新造成当前物理块链过长而导致物理块链中大量空闲物理页被擦除的情况发生。同时该擦除回收操作的方案可以有效延迟了擦除操作,保证了较短的用户响应时间。而该擦除回收操作并不是在芯片内无空闲物理块时进行擦除操作,可以有效防止单次用户访问时间过长的情况发生。

在具体实施中,在本发明在物理块的读写操作方面,首先保证在当前物理块链允许的最大长度之前,在物理块链中的每个物理块固定物理页中对数据进行更新,当物理块链长度达到最大限度,则从最后一个物理块开始,逆向寻找空闲物理页对数据进行更新。对于读操作的过程中,首先在每个物理块的固定位置的物理页中查看是否存在有效数据,若不存在,再根据写操作的步骤,从最后一个物理块开始,沿着物理块链逆向寻找存储有效数据的物理页,使得本发明的控制系统可以针对更新频率不同的数据采用了更加灵活的读写策略。当数据的更新频率较高时,可以保证了空间利用率,当数据的更新频率较低时,则保证数据具有较高的访问速度。

在具体实施中,所述读出查找模块60还包括:数据查找单元和有效数据确定单元;

数据查找单元,用于查找当前物理块链最后一个物理块中物理页是否存有所述块内页偏移号对应物理页的数据,如果否,进入结束操作模块,如果是,进入有效数据确定单元;

有效数据确定单元,用于将存在所述数据的物理页设置为标记物理页,从当前物理块链的最后一个物理块开始查看各个物理块的标记物理页以确定是否存在所述块内页偏移号对应物理页的有效数据,如果是,进入读出操作模块50,如果否,进入结束操作模块80。

也就是说,操作系统给出逻辑页号log_page,发出读数据请求。生成模块10首先计算对应的逻辑块号log_block和块内偏移量offset。根据对应的逻辑块号log_block,查找逻辑块到物理块的映射表,获得物理块链的入口物理块号phy_block。确定模块30查看第phy_block号物理块的第offset物理页中的数据是否为有效数据,若有效,则读出数据即可;若为无效数据,存储管理系统从块链的最后一个物理块的最后一个物理页,从前向后,顺次扫描当前物理块链上各个物理块的物理页,一方面查看物理页中是否存有offset页的数据,另一方面查看该物理页中的数据是否有效,若满足以上两个方面,则读出数据;若直到当前物理块链的最后一个物理块的第offset物理页中依然未查找到有效数据,则查看最后一个物理块中某个物理页r_offset中是否存有offset页的数据,若存有offset页的数据,则从物理块链的最后一个物理块开始,由后向前,查看物理块链中的每一个物理块中的第r_offset物理页,寻找offset页的有效数据。若找到有效数据,则读取数据,完成读操作请求,否则,提示无数据可读。对于有效数据,每个物理页附带有元数据存储区,元数据存储区中存放有标记位用于标记该物理页中的数据是否有效。

本发明的3D闪存的控制方法和控制系统,通过在当前物理块链中由前往后查找所述块内页偏移号对应物理页以及在当前物理块链中由后往前查找所述块内页偏移号对应物理页以写入或读出数据,既保证了物理块链中物理空间的有效利用,又避免了对存储空间管理的复杂性。该技术适用但并不限于存储集群、数据服务器、个人商务存储等方面的3D闪存存储介质。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1