CN105677578B - 一种3d闪存的控制方法及控制系统 - Google Patents
一种3d闪存的控制方法及控制系统 Download PDFInfo
- Publication number
- CN105677578B CN105677578B CN201610013153.9A CN201610013153A CN105677578B CN 105677578 B CN105677578 B CN 105677578B CN 201610013153 A CN201610013153 A CN 201610013153A CN 105677578 B CN105677578 B CN 105677578B
- Authority
- CN
- China
- Prior art keywords
- block
- data
- physical
- read
- page
- 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.)
- Active
Links
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
- G06F12/0646—Configuration or reconfiguration
- G06F12/0684—Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明适用于存储技术领域,提供一种3D闪存的控制方法及控制系统,该控制方法包括以下步骤:步骤A、在进行读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并根据物理地址查找物理块是否有空闲页可写入或是否有有效数据页可读出,如有则进行步骤B,否则进行步骤C;步骤B、侦测该空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则对物理块进行冷却等待;步骤C、在写操作时,则分配新的物理块进行数据的写入;在读操作时,则返回无数据提示信息。该3D闪存的控制方法通过读/写前对物理块的温度侦测,从而确保了进行操作的物理块不会因温度过高而产生不可纠正的数据错误。
Description
技术领域
本发明属于存储技术领域,尤其涉及一种3D闪存的控制方法及控制系统。
背景技术
普通的存储芯片多为平面结构,数据只能前后左右移动,存储能力有限。3D内存芯片(Hybrid Memory Cube,HMC),又名混合立方内存芯片,在存储芯片堆叠时使用了IBM的TSV(through-siliconvia,过孔硅)技术,相同面积的芯片将获得10倍于传统芯片的存储容量。与此同时,由于采用了某些内建机制,传输数据消耗的能量将减少70%,传输速度也将提升到标准DDR3芯片的15倍左右。
由于3D闪存的高存储容量,受到越来越多行业的青睐,但现有的3D闪存在管理技术中,上层操作系统会针对某一特定逻辑地址空间进行频繁数据读写操作。由于3D闪存管理技术的局限性,受到频繁读写的逻辑地址空间对应的某一物理区域的局部温度会不断升高,从而导致芯片稳定性下降,存储数据发生错误。
现有技术中出现此问题主要涉及到3D闪存管理技术中如下三个方面的技术细节:
1、空闲块分配策略:当前空闲块分配策略为线性分配策略,按照空闲块物理地址从小到大,顺次将物理地址空间中的空闲块分配出去。当到达最后一块物理块后,管理程序回到物理地址起始位置,重新扫描芯片,寻找空闲块。此策略导致频繁访问的数据集中堆放,从而使局部快速升温,热量无法及时散出,从而引起芯片不稳定,产生数据错误。
2、物理块回收和擦除策略:当前技术使用两个块,分别为基本块和替换块。基本块中log_page对应的块内页号为log_page%Pages_per_Block,其中,log_page为系统给出的逻辑页地址,Pages_per_Block为每个物理块中页的总数量,%表示取余数。当数据发生更新时,新数据顺序存储在替换块中。若替换块写满,则对两个物理块进行擦除回收。当更新操作较为频繁时,将会引起大量物理块擦除回收操作,提高芯片温度。
3、缺少对温度的监测机制:当对某一连续逻辑地址空间进行频繁读写操作时,将提升该逻辑区域对应物理区域的温度,导致芯片不稳定。目前技术并未针对这个问题给予解决的办法。
发明内容
本发明所要解决的技术问题在于提供一种3D闪存的控制方法及控制系统,旨在解决现有技术中频繁操作导致芯片温度过高,芯片不稳定,发生数据错误的问题。
本发明是这样实现的,一种3D闪存的控制方法,包括以下步骤:
步骤A、在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进行步骤B,否则进行步骤C;
步骤B、每次寻找到物理块中有空闲页或有效数据页时,侦测该空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
步骤C、在进行写操作时,则分配新的物理块进行数据的写入;在进行读操作时,则返回无数据提示信息。
进一步地,所述地址映射关系按以下的步骤进行:
根据寻块算法,确定下一物理块的块号;
根据所述下一物理块的块号查找到对应的物理块并检测其是否有空闲,如是则进行温度检测,否则返回上一步骤;
如温度合适则获取空闲的物理块的块号,并分配空闲的物理块;否则返回寻块算法,确定下一物理块的块号。
进一步地,所述寻块算法为:
将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block,
level=last_free_block/(line_amount*block_amount) (1),
line=last_free_block/block_amount%line_amount (2),
block=last_free_block%block_amount (3);
令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block,
current_free_block=a+b+c (4),
a=(level+level_dis)%level_amount*(line_amount*block_amount) (5),
b=(line+line_dis)%line_amount*block_amount (6),
c=(block+block_dis)%block_amount (7);
按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到所述下一物理块的块号对应的物理块。
进一步地,所述物理块包括基本块、缓冲块和替换块;在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据;在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。
进一步地,所述物理块包括基本块、替换块和缓冲块,在进行写操作时,所述步骤A包括以下步骤:
步骤A101、根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据;
步骤A102、如替换块中可写入数据,则查找所述替换块中的空闲页,否则继续查找缓冲块中是否可写入数据;
步骤A103、如缓冲块中可写入数据,则查找所述缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
进一步地,所述物理块包括基本块、替换块和缓冲块,在进行读操作时,所述步骤A包括以下步骤:
步骤A201、根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找所述替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据;
步骤A202、如缓冲块中可读出数据,则查找所述缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
步骤A203、如基本块中可读出数据,则查找所述基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
本发明还提供一种3D闪存的控制系统,该控制系统包括:寻址模块、温度侦测模块、写操作分配模块和结束操作模块;
所述寻址模块用于在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进入温度侦测模块;否则,进行读操作时进入所述结束操作模块,进行写操作时,进入所述写操作分配模块;
所述温度侦测模块用于在每次寻找到物理块中有空闲页或有效数据页时,侦测所述空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
所述写操作分配模块用于在进行写操作时,没有找到空闲的物理块可供写入数据时,分配新的物理块进行数据的写入;
所述结束操作模块用于在进行读操作时,没有找到有效数据页可读出数据时,返回无数据提示信息并结束操作。
进一步地,所述寻址模块包括:
地址映射关系建立单元,用于根据寻块算法,确定下一物理块的块号;
温度侦测子单元,用于根据所述地址映射关系建立单元确定的物理块的块号查找到对应的物理块并检测其是否有空闲,如空闲则进行温度检测,否则返回所述地址映射关系建立单元,继续寻找下一物理块的块号;
物理块分配单元,用于在所述温度侦测子单元检测到温度合适时,获取空闲的物理块的块号,并分配空闲的物理块;否则返回所述地址映射关系建立单元,确定下一物理块的块号。
进一步地,所述地址映射关系建立单元包括:
3D闪存芯片切分单元,用于将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
号标记单元,用于根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block,
level=last_free_block/(line_amount*block_amount) (1),
line=last_free_block/block_amount%line_amount (2),
block=last_free_block%block_amount (3);
物理块号计算单元,令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block,
current_free_block=a+b+c (4),
a=(level+level_dis)%level_amount*(line_amount*block_amount) (5),
b=(line+line_dis)%line_amount*block_amount (6),
c=(block+block_dis)%block_amount (7);
物理块号确认单元,按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到所述下一物理块的块号对应的物理块。
进一步地,所述物理块包括基本块、缓冲块和替换块;在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据;在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。
进一步地,所述物理块包括基本块、替换块和缓冲块,在进行写操作时,所述寻址模块还包括:
基本块写操作单元,根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据;
替换块写操作单元,如替换块中可写入数据,则查找所述替换块中的空闲页,否则继续查找缓冲块中是否可写入数据;
缓冲块写操作单元,如缓冲块中可写入数据,则查找所述缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
进一步地,所述物理块包括基本块、替换块和缓冲块,在进行读操作时,所述寻址模块还包括:
替换块读操作单元,根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找所述替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据;
缓冲块读操作单元,如缓冲块中可读出数据,则查找所述缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
基本块读操作单元,如基本块中可读出数据,则查找所述基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
本发明与现有技术相比,有益效果在于:所述的3D闪存的控制方法在进行读或写操作时,在寻找到可供写入的空闲页或可读出数据的有效数据页时,先对空闲页或有效数据页所在的物理块进行温度侦测,在温度合适时才进行读或写操作,如果温度不合适则对其进行冷却等待,从而确保了进行操作的物理块不会因温度过高而产生不可纠正的数据错误。
附图说明
图1是本发明3D闪存的控制方法的流程示意图;
图2是图1中具体写操作的流程示意图;
图3是图2中寻找基本块进行写操作的流程示意图;
图4是图2中寻找替换块进行写操作的流程示意图;
图5是图2中寻找缓冲块进行写操作的流程示意图;
图6是图1中具体读操作的流程示意图;
图7是图1中按地址映射关系寻找物理块的流程示意图;
图8是本发明3D闪存的控制系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的3D闪存的控制方法主要针对温度上升导致芯片不稳定,发生数据错误这一问题,在现有技术的基础上,主要从三个方面进行改进:一、改进空闲块分配的策略,实现温度均匀扩散,保证芯片温度分布均匀;二、改进物理块的逻辑组织结构,修改物理块回收擦除的策略;三、对温度进行监控,通过对物理块的控温实现预防错误目的。
结合图1至图7所示,一种3D闪存的控制方法,包括以下步骤:步骤A、在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进行步骤B,否则进行步骤C。步骤B、每次寻找到物理块中有空闲页或有效数据页时,侦测该空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待物理块冷却到预置温度以下后,再进行写入或读出数据。预置温度可以是一个具体的点值,也可以是一个范围值,只要在3D闪存允许的温度范围内,都是合适的。步骤C、在进行写操作时,则分配新的物理块进行数据的写入;在进行读操作时,则返回无数据提示信息。
如图7所示,在步骤A中,地址映射关系按以下的步骤进行:
根据寻块算法,确定下一物理块的块号。
根据确定的下一物理块的块号查找到对应的物理块并检测其是否有空闲,如有空闲则进行温度检测,否则返回上一步骤,根据寻块算法,继续确定下一个物理块的块号。
如温度合适则获取空闲的物理块的块号,并分配空闲的物理块进行相应的读/写操作;否则返回寻块算法,继续确定下一物理块的块号。
结合上述的各个实施例,寻块算法具体可以采用如下的方法进行计算物理块的块号:
首先,针对3D闪存,将芯片视作一个长方体,将视作长方体的3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块。
其次,根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block。
level=last_free_block/(line_amount*block_amount) (1),
line=last_free_block/block_amount%line_amount (2),
block=last_free_block%block_amount (3);其中,%表示取余数。
然后,令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block。
current_free_block=a+b+c (4),
a=(level+level_dis)%level_amount*(line_amount*block_amount) (5),
b=(line+line_dis)%line_amount*block_amount (6),
c=(block+block_dis)%block_amount (7),其中,%表示取余数。
按照上述的步骤,并遵循从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,同时,当前被扫描的物理块和下一个被扫描的物理块之间在物理空间上有一定距离间隔,保证物理块的充分散热。当寻找到计算得到的物理块的块号对应的物理块空闲时,侦测该物理块温度,若该物理块温度合适,则分配该块。若该物理块温度不合适,则继续寻找空闲且温度合适的物理块。若经过一轮扫描后,仍然未找到温度合适的物理块,则对整块芯片进行冷却降温,直到当前空闲块温度合适为止,并将空闲块进行分配。
本发明的另一个改进点:物理块的逻辑组织结构。在原技术中,逻辑页号通过相应运算,生成逻辑块号和块内页号,逻辑块号再经过映射表映射,得到相应物理块号,即实际写入/读出数据的物理块。每个逻辑块对应两个物理块,分别为基本块和替换块。对于写操作,数据首先根据块内页号写入基本块中的相应位置,当基本块中某一页发生数据更新时,新数据顺次写入替换块中,而无需根据块内页号再于替换块中寻找相应位置。
本发明在逻辑块中引入了第三个物理块缓冲块,当替换块无空闲页可供存放数据时,新数据写入缓冲块中。当基本块、替换块和缓冲块均无空闲块可用时,缓冲块将充当新的基本块,原基本块和替换块将被回收擦除。
物理块包括基本块、替换块和缓冲块,在进行写操作时,如图3至图5所示,步骤A包括以下步骤:
步骤A101、根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找基本块中的空闲页,否则继续查找替换块中是否可写入数据。
步骤A102、如替换块中可写入数据,则查找替换块中的空闲页,否则继续查找缓冲块中是否可写入数据。
步骤A103、如缓冲块中可写入数据,则查找缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
具体的写入操作,请参照图2,程序首先检查是否有对应的基本块,然后进入图3所示的流程,若无基本块,则分配空闲物理块,并写入数据。若有基本块,则查看是否有空闲页可写入,并查看基本块的温度是否合适。此处遵循的原则是,如果基本块对应有空闲页,就一定将数据写入相应的空闲页,该原则同样适用于替换块和缓冲块。因此,若基本块温度较高,则需等待基本块冷却后,再将数据写入。
当基本块中无空闲页时,程序进入如图4所示的流程,首先查看是否有替换块,若无替换块,则分配空闲块,并写入数据。若有替换块,则查看是否有空闲页,且温度是否合适。若无空闲页,则转向查看是否有缓冲块,若温度不合适,则冷却替换块。
当替换块中无空闲页,程序进入如图5所示的流程。首先查看是否有缓冲块,若无缓冲块,则分配空闲块,写入数据。若有缓冲块,则查看是否有相应的空闲页,且温度是否合适。若无相应的空闲页,则以当前的缓冲块为新的基本块,分配空闲块作为新的替换块,拷贝原基本块和替换块中的最新有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
物理块包括基本块、替换块和缓冲块,在进行读操作时,如图6所示,步骤A包括以下步骤:
步骤A201、根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据。
步骤A202、如缓冲块中可读出数据,则查找缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
步骤A203、如基本块中可读出数据,则查找基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
具体的读出操作,请对照图6,程序首先检测是否有替换块,并在替换块中寻找有效数据页;若无替换块或替换块中无有效数据页,则在缓冲块中寻找有效数据页;若无缓冲块或缓冲块中无有效数据页,则在基本块中寻找有效数据页。当在以上三块中的某一物理块中寻找到有效数据页后,需要侦测该块的温度是否合适,若合适,则读取数据,若不合适,则冷却等待,直到温度合适后,再读取数据。
如图8所示,一种3D闪存的控制系统,包括:寻址模块201、温度侦测模块202、写操作分配模块203和结束操作模块204。寻址模块201用于在进行读/写操作时,按地址映射关系寻找各个物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进入温度侦测模块;否则,进行读操作时进入结束操作模块204,进行写操作时,进入写操作分配模块203。温度侦测模块202用于在每次寻找到物理块中有空闲页或有效数据页时,侦测空闲页或有效数据页所在的物理块的温度是否合适,如温度合适,则进行数据的写入或读出,否则对物理块进行冷却等待。写操作分配模块203用于在进行写操作时,没有找到空闲的物理块可供写入数据时,分配新的物理块进行数据的写入。结束操作模块204用于在进行读操作时,没有找到有效数据页可读出数据时,返回无数据提示信息并结束操作。
寻址模块201包括地址映射关系建立单元、温度侦测子单元和物理块分配单元。地址映射关系建立单元用于根据寻块算法,确定下一物理块的块号。温度侦测子单元用于根据地址映射关系建立单元确定的物理块的块号查找到对应的物理块并检测其是否有空闲,如空闲则进行温度检测,否则返回地址映射关系建立单元,继续寻找下一物理块的块号。物理块分配单元用于在温度侦测子单元检测到温度合适时,获取空闲的物理块的块号,并分配空闲的物理块;否则返回地址映射关系建立单元,确定下一物理块的块号。
寻址模块201在空闲块的分配技术上,使得当前物理块和下一物理块之间在空间上存在一定间隔,从而物理块之间散热更加均匀,热量更容易向外扩散,避免了频繁对某一局部区域操作后,发生热量堆积、局部温度过高的情况。
地址映射关系建立单元包括3D闪存芯片切分单元、号标记单元、物理块号计算单元和物理块号确认单元。3D闪存芯片切分单元用于将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块。号标记单元用于根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block。
level=last_free_block/(line_amount*block_amount) (1),
line=last_free_block/block_amount%line_amount (2),
block=last_free_block%block_amount (3),其中,%表示取余数。
物理块号计算单元用于令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block。
current_free_block=a+b+c (4),
a=(level+level_dis)%level_amount*(line_amount*block_amount) (5),
b=(line+line_dis)%line_amount*block_amount (6),
c=(block+block_dis)%block_amount (7),其中,%表示取余数。
物理块号确认单元用于按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到下一物理块的块号对应的物理块。
物理块包括基本块、缓冲块和替换块。在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据。在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。缓冲块的引入,减少了频繁写入数据的频率,推迟了物理块的擦除回收操作时间,降低物理块的擦除次数。并且,当发生擦除操作时,由于缓冲块作为新的基本块,而缓冲块中存有一定数量的有效数据页,因此在有效数据移动过程中,避免了大量的读写操作,从而降低了物理块温度升高的可能性,延长了闪存寿命。
在进行写操作时,寻址模块201还包括:基本块写操作单元、替换块写操作单元和缓冲块写操作单元。基本块写操作单元根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据。替换块写操作单元如发现替换块中可写入数据,则查找替换块中的空闲页,否则继续查找缓冲块中是否可写入数据。缓冲块写操作单元如发现缓冲块中可写入数据,则查找缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
在进行读操作时,所述寻址模块201还包括:替换块读操作单元、缓冲块读操作单元和基本块读操作单元。替换块读操作单元用于根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据。缓冲块读操作单元如发现缓冲块中可读出数据,则查找缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据。基本块读操作单元如发现基本块中可读出数据,则查找基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
本发明的3D闪存的控制方法及控制系统引入了温度监控机制,在进行读/写操作前,需要对当前被访问的物理块进行温度侦测,避免了由于温度过高产生的数据错误,确保数据的正确性,能从根本上保证了芯片不会因温度过高导致芯片不稳定,而出现数据错误的情况发生。同时,在物理块的逻辑组织结构上,缓冲块的引入,在读/写操作上延迟了擦除时间,减少擦除次数,且在回收擦除过程中,减少了数据读写次数,从而减小温度升高的可能性。并且,在侦测温度的同时,在空闲块的分配上,使相邻两次分配的物理块有一定物理空间间隔,使得物理块之间散热更均匀,热量更容易向外扩散,避免了频繁对某一区域操作后,发生热量堆积、局部温度过高的情况出生。
本发明3D闪存的控制方法及控制系统引入了温度监控机制主要应用在存储高频率访问数据的3D闪存上,这些数据频繁被读取或进行更新修改,且需要较高的准确率。该技术适用但并不限于存储集群、数据服务器、个人商务存储等方面的3D闪存存储介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种3D闪存的控制方法,其特征在于,包括以下步骤:
步骤A、在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进行步骤B,否则进行步骤C;
步骤B、每次寻找到物理块中有空闲页或有效数据页时,侦测该空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
步骤C、在进行写操作时,则分配新的物理块进行数据的写入;在进行读操作时,则返回无数据提示信息。
2.根据权利要求1所述的控制方法,其特征在于,所述地址映射关系按以下的步骤进行:
根据寻块算法,确定下一物理块的块号;
根据所述下一物理块的块号查找到对应的物理块并检测其是否有空闲,如是则进行温度检测,否则返回上一步骤;
如温度合适则获取空闲的物理块的块号,并分配空闲的物理块;否则返回寻块算法,确定下一物理块的块号。
3.根据权利要求2所述的控制方法,其特征在于,所述寻块算法为:
将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block,
level=last_free_block/(line_amount*block_amount)(1),
line=last_free_block/block_amount%line_amount(2),
block=last_free_block%block_amount(3);
令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block,
current_free_block=a+b+c(4),
a=(level+level_dis)%level_amount*(line_amount*block_amount)(5),
b=(line+line_dis)%line_amount*block_amount(6),
c=(block+block_dis)%block_amount(7);
按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到所述下一物理块的块号对应的物理块。
4.根据权利要求1所述的控制方法,其特征在于,所述物理块包括基本块、缓冲块和替换块;在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据;在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。
5.根据权利要求1所述的控制方法,其特征在于,所述物理块包括基本块、替换块和缓冲块,在进行写操作时,所述步骤A包括以下步骤:
步骤A101、根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据;
步骤A102、如替换块中可写入数据,则查找所述替换块中的空闲页,否则继续查找缓冲块中是否可写入数据;
步骤A103、如缓冲块中可写入数据,则查找所述缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
6.根据权利要求1或5所述的控制方法,其特征在于,所述物理块包括基本块、替换块和缓冲块,在进行读操作时,所述步骤A包括以下步骤:
步骤A201、根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找所述替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据;
步骤A202、如缓冲块中可读出数据,则查找所述缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
步骤A203、如基本块中可读出数据,则查找所述基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
7.一种3D闪存的控制系统,其特征在于,该控制系统包括:寻址模块、温度侦测模块、写操作分配模块和结束操作模块;
所述寻址模块用于在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进入温度侦测模块;否则,进行读操作时进入所述结束操作模块,进行写操作时,进入所述写操作分配模块;
所述温度侦测模块用于在每次寻找到物理块中有空闲页或有效数据页时,侦测所述空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
所述写操作分配模块用于在进行写操作时,没有找到空闲的物理块可供写入数据时,分配新的物理块进行数据的写入;
所述结束操作模块用于在进行读操作时,没有找到有效数据页可读出数据时,返回无数据提示信息并结束操作。
8.根据权利要求7所述的控制系统,其特征在于,所述寻址模块包括:
地址映射关系建立单元,用于根据寻块算法,确定下一物理块的块号;
温度侦测子单元,用于根据所述地址映射关系建立单元确定的物理块的块号查找到对应的物理块并检测其是否有空闲,如空闲则进行温度检测,否则返回所述地址映射关系建立单元,继续寻找下一物理块的块号;
物理块分配单元,用于在所述温度侦测子单元检测到温度合适时,获取空闲的物理块的块号,并分配空闲的物理块;否则返回所述地址映射关系建立单元,确定下一物理块的块号。
9.根据权利要求8所述的控制系统,其特征在于,所述地址映射关系建立单元包括:
3D闪存芯片切分单元,用于将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
号标记单元,用于根据层数、行数和每行的物理块数,依据公式(1)至(3)将当前空闲物理块号last_free_block分解成相应的层号level,行号line和行内块号block,
level=last_free_block/(line_amount*block_amount)(1),
line=last_free_block/block_amount%line_amount(2),
block=last_free_block%block_amount(3);
物理块号计算单元,令当前物理块和下一个物理块之间相差level_dis层、line_dis行和block_dis块,根据公式(4)至(7)计算出下一物理块的块号current_free_block,
current_free_block=a+b+c(4),
a=(level+level_dis)%level_amount*(line_amount*block_amount)(5),
b=(line+line_dis)%line_amount*block_amount(6),
c=(block+block_dis)%block_amount(7);
物理块号确认单元,按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到所述下一物理块的块号对应的物理块。
10.根据权利要求7所述的控制系统,其特征在于,所述物理块包括基本块、缓冲块和替换块;在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据;在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。
11.根据权利要求7所述的控制系统,其特征在于,所述物理块包括基本块、替换块和缓冲块,在进行写操作时,所述寻址模块还包括:
基本块写操作单元,根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据;
替换块写操作单元,如替换块中可写入数据,则查找所述替换块中的空闲页,否则继续查找缓冲块中是否可写入数据;
缓冲块写操作单元,如缓冲块中可写入数据,则查找所述缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
12.根据权利要求7或11所述的控制系统,其特征在于,所述物理块包括基本块、替换块和缓冲块,在进行读操作时,所述寻址模块还包括:
替换块读操作单元,根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找所述替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据;
缓冲块读操作单元,如缓冲块中可读出数据,则查找所述缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
基本块读操作单元,如基本块中可读出数据,则查找所述基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610013153.9A CN105677578B (zh) | 2016-01-08 | 2016-01-08 | 一种3d闪存的控制方法及控制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610013153.9A CN105677578B (zh) | 2016-01-08 | 2016-01-08 | 一种3d闪存的控制方法及控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677578A CN105677578A (zh) | 2016-06-15 |
CN105677578B true CN105677578B (zh) | 2018-08-24 |
Family
ID=56299694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610013153.9A Active CN105677578B (zh) | 2016-01-08 | 2016-01-08 | 一种3d闪存的控制方法及控制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677578B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201903B (zh) * | 2016-07-05 | 2019-07-30 | 深圳市领存技术有限公司 | 一种三维闪存擦除控制方法及其系统 |
CN106294195B (zh) * | 2016-07-19 | 2019-06-21 | 深圳市领存技术有限公司 | 一种3d闪存的控制方法和系统 |
CN106155919B (zh) * | 2016-07-26 | 2019-06-11 | 深圳市瑞耐斯技术有限公司 | 一种3d闪存的控制方法及控制系统 |
CN106294203B (zh) * | 2016-08-01 | 2019-06-28 | 深圳市瑞耐斯技术有限公司 | 一种3d闪存的控制方法及控制系统 |
CN106445740A (zh) * | 2016-09-22 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 固态硬盘中nand闪存数据的控制方法及控制系统 |
CN106484629B (zh) * | 2016-10-18 | 2019-06-25 | 深圳大学 | 一种感知制程变异的三维闪存读写控制方法及其系统 |
CN106528446B (zh) * | 2016-11-17 | 2019-08-23 | 深圳市先天海量信息技术有限公司 | 闪存数据的控制方法及控制系统 |
CN108229214A (zh) * | 2016-12-22 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种提高数据安全性的方法和装置 |
CN107239409B (zh) * | 2017-05-08 | 2020-12-29 | 深圳大学 | 一种基于温度的重要数据分配方法及其系统 |
WO2018205085A1 (zh) * | 2017-05-08 | 2018-11-15 | 深圳大学 | 一种基于温度的重要数据分配方法及其系统 |
CN109324979B (zh) * | 2018-08-20 | 2020-10-16 | 华中科技大学 | 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 |
CN109634960B (zh) * | 2018-12-04 | 2021-01-26 | 深圳大学 | 键值数据存储方法、装置、设备以及存储介质 |
CN110007874B (zh) * | 2019-04-15 | 2022-07-05 | 深圳大学 | 一种三维闪存的数据写入方法、装置及可读存储介质 |
CN110597456B (zh) * | 2019-07-29 | 2023-08-25 | 深圳大学 | 基于三维闪存的读写均衡方法、装置及计算机设备 |
CN113643746B (zh) * | 2021-07-02 | 2023-09-26 | 深圳市宏旺微电子有限公司 | 闪存数据的分析方法、装置、终端设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194821A (zh) * | 2010-01-25 | 2011-09-21 | 旺宏电子股份有限公司 | 具有改良串行选择线和位线接触布局的三维存储阵列 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
-
2016
- 2016-01-08 CN CN201610013153.9A patent/CN105677578B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102194821A (zh) * | 2010-01-25 | 2011-09-21 | 旺宏电子股份有限公司 | 具有改良串行选择线和位线接触布局的三维存储阵列 |
CN103218306A (zh) * | 2013-03-29 | 2013-07-24 | 四川长虹电器股份有限公司 | 一种实现基于ubi的动态磨损均衡的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105677578A (zh) | 2016-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677578B (zh) | 一种3d闪存的控制方法及控制系统 | |
US11636038B2 (en) | Method and apparatus for controlling cache line storage in cache memory | |
US10359955B2 (en) | Data storage device configured to perform a non-blocking control update operation | |
CN101105772B (zh) | 控制计算机可读存储器的方法和管理数据单元的装置 | |
EP3121703B1 (en) | Data caching method, cache and computer system | |
JP2020003838A (ja) | メモリシステム | |
CN105930282B (zh) | 一种用于nand flash的数据缓存方法 | |
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN102521160B (zh) | 写缓冲检测器、并行通道写入方法 | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN114546296B (zh) | 一种基于zns固态硬盘的全闪存系统和地址映射方法 | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
KR101061483B1 (ko) | 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법 | |
JP2021033849A (ja) | メモリシステムおよび制御方法 | |
CN106815152A (zh) | 一种优化页级闪存转换层的方法 | |
JP2021033848A (ja) | メモリシステムおよび制御方法 | |
US20230359380A1 (en) | Memory system and method for controlling nonvolatile memory | |
WO2024036985A1 (zh) | 存储系统及其计算存储处理器、固体硬盘和数据读写方法 | |
CN107817945A (zh) | 一种混合内存结构的数据读取方法和系统 | |
US20210191657A1 (en) | Virtual controller memory buffer | |
US8671257B2 (en) | Memory system having multiple channels and method of generating read commands for compaction in memory system | |
CN104298615B (zh) | 一种存储器交换分区损耗的均衡方法 | |
CN109324979A (zh) | 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 | |
US20200089426A1 (en) | Management device, information processing apparatus, and memory control method | |
US9329994B2 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |