一种3d闪存的控制方法及控制系统的制作方法

文档序号:9910945阅读:388来源:国知局
一种3d闪存的控制方法及控制系统的制作方法
【技术领域】
[0001]本发明属于存储技术领域,尤其涉及一种3D闪存的控制方法及控制系统。
【背景技术】
[0002]普通的存储芯片多为平面结构,数据只能前后左右移动,存储能力有限。3D内存芯片(Hybrid Memory Cube,HMC),又名混合立方内存芯片,在存储芯片堆叠时使用了 IBM的TSV(through-siliconvia,过孔娃)技术,相同面积的芯片将获得10倍于传统芯片的存储容量。与此同时,由于采用了某些内建机制,传输数据消耗的能量将减少70%,传输速度也将提升到标准DDR3芯片的15倍左右。
[0003]由于3D闪存的高存储容量,受到越来越多行业的青睐,但现有的3D闪存在管理技术中,上层操作系统会针对某一特定逻辑地址空间进行频繁数据读写操作。由于3D闪存管理技术的局限性,受到频繁读写的逻辑地址空间对应的某一物理区域的局部温度会不断升高,从而导致芯片稳定性下降,存储数据发生错误。
[0004]现有技术中出现此问题主要涉及到3D闪存管理技术中如下三个方面的技术细节:
[0005]1、空闲块分配策略:当前空闲块分配策略为线性分配策略,按照空闲块物理地址从小到大,顺次将物理地址空间中的空闲块分配出去。当到达最后一块物理块后,管理程序回到物理地址起始位置,重新扫描芯片,寻找空闲块。此策略导致频繁访问的数据集中堆放,从而使局部快速升温,热量无法及时散出,从而引起芯片不稳定,产生数据错误。
[0006]2、物理块回收和擦除策略:当前技术使用两个块,分别为基本块和替换块。基本块中log_page对应的块内页号为log_page % Pages_per_Block,其中,log_page为系统给出的逻辑页地址,Pages_per_Block为每个物理块中页的总数量,%表示取余数。当数据发生更新时,新数据顺序存储在替换块中。若替换块写满,则对两个物理块进行擦除回收。当更新操作较为频繁时,将会引起大量物理块擦除回收操作,提高芯片温度。
[0007]3、缺少对温度的监测机制:当对某一连续逻辑地址空间进行频繁读写操作时,将提升该逻辑区域对应物理区域的温度,导致芯片不稳定。目前技术并未针对这个问题给予解决的办法。

【发明内容】

[0008]本发明所要解决的技术问题在于提供一种3D闪存的控制方法及控制系统,旨在解决现有技术中频繁操作导致芯片温度过高,芯片不稳定,发生数据错误的问题。
[0009]本发明是这样实现的,一种3D闪存的控制方法,包括以下步骤:
[0010]步骤A、在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进行步骤B,否则进行步骤C;
[0011]步骤B、每次寻找到物理块中有空闲页或有效数据页时,侦测该空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
[0012]步骤C、在进行写操作时,则分配新的物理块进行数据的写入;在进行读操作时,则返回无数据提示信息。
[0013]进一步地,所述地址映射关系按以下的步骤进行:
[0014]根据寻块算法,确定下一物理块的块号;
[0015]根据所述下一物理块的块号查找到对应的物理块并检测其是否有空闲,如是则进行温度检测,否则返回上一步骤;
[0016]如温度合适则获取空闲的物理块的块号,并分配空闲的物理块;否则返回寻块算法,确定下一物理块的块号。
[0017]进一步地,所述寻块算法为:
[0018]将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
[0019]根据层数、行数和每行的物理块数,依据公式(I)至(3)将当前空闲物理块号last_^^6_131001<:分解成相应的层号16¥61,行号1;[116和行内块号131001<:,
[0020]level = last_free_block/(line_amount*block_amount)(I),
[0021 ] line = last_free_block/block_amount% line_amount(2),
[0022]block = last_free_bl°ck%block_amount(3);
[0023]令当前物理块和下一个物理块之间相差Ieve l_d is层、I丨116_(1丨8行和1310 01<_(118块,根据公式(4)至(7)计算出下一物理块的块号,
[0024]last_free_block = a+b+c(4),
[0025]a=(level+level_dis)%level_amount*(line_amount*block_amount)(5),
[0026]b=(line+line_dis)%line_amount*block_amount(6),
[0027]c = (block+block_dis) %block_amount(7);
[0028]按照从左至右、从前向后、从上到下,对整个芯片的物理块依次进行扫描,得到所述下一物理块的块号对应的物理块。
[0029]进一步地,所述物理块包括基本块、缓冲块和替换块;在进行写操作时,按照基本块、替换块和缓冲块的顺序依次进行寻找并写入数据;在进行读操作时,按照替换块、缓冲块和基本块的顺序依次进行寻找并读出数据。
[0030]进一步地,所述物理块包括基本块、替换块和缓冲块,在进行写操作时,所述步骤A包括以下步骤:
[0031]步骤AlOl、根据逻辑页号和逻辑块号查找基本块是否可写入数据,如是则查找所述基本块中的空闲页,否则继续查找替换块中是否可写入数据;
[0032]步骤A102、如替换块中可写入数据,则查找所述替换块中的空闲页,否则继续查找缓冲块中是否可写入数据;
[0033]步骤A103、如缓冲块中可写入数据,则查找所述缓冲块中的空闲页,否则分配新的空闲块作为替换块,以当前的缓冲块作为基本块,拷贝原基本块和替换块中最新的有效数据,擦除回收原基本块和替换块,并将更新的数据写入新的基本块或替换块中的相应位置。
[0034]进一步地,所述物理块包括基本块、替换块和缓冲块,在进行读操作时,所述步骤A包括以下步骤:
[0035]步骤A201、根据逻辑页号和逻辑块号查找替换块是否可读出数据,如是则查找所述替换块中的有效数据页,否则继续查找缓冲块中是否可读出数据;
[0036]步骤A202、如缓冲块中可读出数据,则查找所述缓冲块中的有效数据页,否则继续查找基本块中是否可读出数据;
[0037]步骤A20 3、如基本块中可读出数据,则查找所述基本块中的有效数据页,否则返回无数据提示信息,结束查找工作。
[0038]本发明还提供一种3D闪存的控制系统,该控制系统包括:寻址模块、温度侦测模块、写操作分配模块和结束操作模块;
[0039]所述寻址模块用于在进行数据的读/写操作时,按地址映射关系查找与读写数据的逻辑地址对应的物理地址,并寻找所述物理地址对应的物理块是否有空闲页可供写入或是否有有效数据页可读出数据,如有则进入温度侦测模块;否则,进行读操作时进入所述结束操作模块,进行写操作时,进入所述写操作分配模块;
[0040]所述温度侦测模块用于在每次寻找到物理块中有空闲页或有效数据页时,侦测所述空闲页或有效数据页所在的物理块的温度是否符合预置温度,如是,则进行数据的写入或读出,否则等待所述物理块冷却到所述预置温度以下后,再进行写入或读出数据;
[0041]所述写操作分配模块用于在进行写操作时,没有找到空闲的物理块可供写入数据时,分配新的物理块进行数据的写入;
[0042]所述结束操作模块用于在进行读操作时,没有找到有效数据页可读出数据时,返回无数据提示信息并结束操作。
[0043]进一步地,所述寻址模块包括:
[0044]地址映射关系建立单元,用于根据寻块算法,确定下一物理块的块号;
[0045]温度侦测子单元,用于根据所述地址映射关系建立单元确定的物理块的块号查找到对应的物理块并检测其是否有空闲,如空闲则进行温度检测,否则返回所述地址映射关系建立单元,继续寻找下一物理块的块号;
[0046]物理块分配单元,用于在所述温度侦测子单元检测到温度合适时,获取空闲的物理块的块号,并分配空闲的物理块;否则返回所述地址映射关系建立单元,确定下一物理块的块号。
[0047]进一步地,所述地址映射关系建立单元包括:
[0048]3D闪存芯片切分单元,用于将3D闪存分成level_amount层,每层有line_amount行,每行有block_amount物理块;
[0049]号标记单元,用于根据层数、行数和每行的物理块数,依据公式(I)至(3)将当前空闲物理块号1381:_;^66_131001^分解成相应的层号16¥61,行号1;[116和行内块号1310^^,
[0050]level = last_free_block/(line_amoun
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1