一种具有绿能数据持续模式的器件驱动器的制造方法

文档序号:6542006阅读:299来源:国知局
一种具有绿能数据持续模式的器件驱动器的制造方法
【专利摘要】本发明涉及一种具有绿能数据持续模式的器件驱动器,首先绿色与非器件驱动器应用程序查询交流线路和电池组状态,然后当发生电源失效时把处理器状态的映像和高速缓存和恢复例程存入DRAM。然后,当电池组电源可用时,把DRAM映像存入持续模式用的闪存存储器。DRAM中的映像可以是部分映像,包括登记项、冲洗的高速缓存、处理器环境、RAM盘、写高速缓存和恢复环境。在掉电模式下,该GND驱动器限制DRAM的使用,而且只有DRAM数据中的高速缓存才可以在掉电时删除。GND驱动器拦截主机对闪存的访问,并按数据类型进行分类。DRAM中高速缓存的分页文件和临时文件任选地写入闪存。
【专利说明】一种具有绿能数据持续模式的器件驱动器
[0001]
【技术领域】
[0002]本发明涉及不同的电池组和后备电源系统共同工作的固态驱动器,尤其是涉及一种具有绿能数据持续模式的器件驱动器。
【背景技术】
[0003]带有旋转磁盘的硬盘正在日益被利用半导体闪存存储器的更可靠的固态驱动器(SSD)代替。东芝Fujio Masuoka博士 1987年发明的与非闪存存储器,使用在浮动栅极上存储电荷的电可擦除可编程只读存储器(EEPROM)单元。单元一般用雪崩电流编程,然后利用穿过氧化物薄层的量子力学隧道(效应)擦除。可惜的是,在编程或擦除过程中某些电子可能在氧化物薄层中被捕捉。假定编程电压恒定,这些被捕捉的电子在随后的编程周期中减少了该单元中贮存的电荷。往往要提高编程电压来补偿被捕捉的电子。
[0004]增大闪存存储器的密度和尺寸时,该单元的尺寸及其可靠性和寿命已经全都降低。闪存存储器保证能够承受的编程-擦除周期数约为100,000周期,在正常的读写条件下这被认为是一个很长的寿命了。但较小的闪存单元已经经历高得令人不安的损耗。较新式的闪存存储器规格标明,对于二级单元小于10,000编程-擦除周期,而对于三级单元(TLC)约为600。若当前的趋势继续,则未来的闪存存储器可能只允许300编程-擦除周期。这样低的耐久性可能严重地限制闪存存储器可能的用途,并已经严重冲击固态盘(SSD)应用。
[0005]相关的闪存技术在将来可能具有较低的耐久性。闪存驱动器可以用各种各样的技术来补偿所涉及的闪存存储器较低的损耗允差。例如,可以用该闪存驱动器上的DRAM (动态随机存储器缓冲区)起回写高速缓存的作用,当主机向同一数据地址完成写入时,减少向所涉及的闪存存储器的写入次数。
[0006]因为DRAM有易失性,掉电时数据便丢失。可以用不同的电池组、超级电容和万用电源(UPS (不间断电源))系统来维持向DRAM供电,并提供电力把内容存入非易失存储器。可以利用在任何给定的系统上都可能存在的不同的备份系统的软件驱动器是需要的。
[0007]连接到一个标准固态驱动器(SSD)或超级耐久的闪存驱动器的主机用的绿色与非器件(GND)应用和驱动器,需要使用先进的管理技术来减少闪存的写入次数,因而减少的所涉及的闪存存储器上的编程-擦除周期。操作超级耐久闪存驱动器的主机上的GND应用和驱动器需要带有几个可能的电源备份系统中的一个或多个。另外,还要求把该处理器的状态和DRAM的内容存入非易失存储器,然后在上电引导时间,甚至在无意间交流供电线路掉电的情况下也能使用它们。
[0008]本申请涉及“Endurance and Retention Flash Controller with ProgrammableBinary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple,Multi,或Single-Level Flash-Memory Cells”(带有可编程二进制水平每单兀(Binary-Levels-Per-Cel)位识别页或块作为具有三级、多级或单级闪存单元的耐久性和保持力闪存控制器),美国专利序号N0.13/788,989,2013年3月7日归档。
[0009]本申请涉及“VirtualMemory Device (VMD) Application/Driver withDual-LeveI Interception for Data-Type Splitting, Meta-Page Grouping, and Diversionof Temp Files to Ramdisks for Enhanced Flash Endurance(带有数据类型拆分、兀页分组和临时文件向RAM盘转向用的二级拦截以提高闪存耐久性的虚拟存储器件(VMD)应用/驱动器)”,美国专利,序列号N0.13/730,797,2012年12月28日归档。
[0010]本申请涉及“Super-EnduranceSolid-State Drive with Endurance TranslationLayer (ETL) and Diversion of Temp Files for Reduced Flash Wear (带有耐久性平移层(ETL)和临时文件转向以减少闪存损耗的超级耐久固态驱动器)”美国专利序列号N0.13/540,569,2012 年 7 月 2 日归档。
[0011]本申请涉及“High Performance and Endurance Non-volatile Memory BasedStorage Systems (基于高性能和耐久性非易失存储器的存储系统)”,美国专利序列号N0.12/141,879,2008 年 6 月 18 日归档。

【发明内容】

[0012]本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种具有绿能数据持续模式的器件驱动器,其特征在于,包括:
一持续处理器映像发生器:当持续模式掉电例程被激活,用以产生主机处理器映像时,该持续处理器映像发生器把来自主机处理器状态和来自处理器高速缓存存储器的数据拷贝到易失存储器;
一持续恢复映像:当持续模式掉电例程被激活时,存储在该易失存储器中的恢复映像。
[0013]一持续映像发生器:当持续模式掉电例程被激活时,把来自主机易失存储器的数据拷贝到闪存存储器中;以产生持续恢复映像。
[0014]其中:
当电源充足时,持续模式被激活和执行。能够用于激活和执行持续模式;所述激活是指持续模式掉电例程被激活;
一恢复映像加载器:在掉电后,当持续模式例程再次被激活时,从闪存存储器把该持续恢复映像读到主机易失存储器,并从该易失存储器执行该持续恢复映像,以恢复主机处理器映像。
[0015]在上述的的一种具有绿能数据持续模式的器件驱动器,还包括:
一持续模式电源/电池组监视器:当检测出掉电时,它从备份电源读出电源状态线,并为电池组读出电池组状态;
一掉电例程模块,当该电池组状态指出电力低于一个阈值并表明掉电时,掉电例程模块被激活并启动掉电例程。
[0016]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一持续模式写高速缓存,用以把主机写入数据存入一个动态随机访问存储器。
[0017]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一持续模式RAM盘:用以把数据存入一个动态随机访问存储器。[0018]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一用户接口:用以接收用户选择,当用户选择禁止持续模式时,启用该掉电例程并禁止持续模式例程。
[0019]持续模式例程能正常使用时被使用者disable掉,在那状况下,掉电时持续模式例程不会被激活。
[0020]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一分组引擎:用以把存于数据写高速缓存的数据分组进入元页。
[0021]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一持续模式模块:具有一组策略,用以触发无效数据从该易失存储器中的高速缓存写入该闪存存储器;
该闪存存储器是指持续映像发生器工作中涉及的闪存存储器,持续模式并非只做前述使CPU在掉电后时恢复中回到当时的状态,还包括存在DRAM中的资料与meta资料,这里的策略是指资料与元资料特意不马上写入flash中,但是又因电池能量不足,怕到时不能完全的写入flash使用。
[0022]其中该组策略包括高速缓存中的阈值电平无效数据、时间周期、由该用户指定的特殊数据类型或写满的高速缓存。
[0023]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一高层文件过滤器驱动器:用以在主机上执行,以便拦截向闪存驱动器的高层主机写
A ;
一低层文件过滤器驱动器:用以在主机上执行,拦截低层文件系统主机写入到闪存驱动器,并把该低层文件系统主机写入发送到数据拆分管理器,以便对主机写入数据进行分类;该闪存驱动器是指持续映像发生器工作中涉及的闪存存储器。
[0024]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一加密引擎:耦合来接收被拦截的高层主机写入,以便生成加密数据。
[0025]在上述的一种具有绿能数据持续模式的器件驱动器,一压缩引擎:耦合来接收被拦截的高层主机写入,以便生成压缩数据和加压映射表。
[0026]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一去冗余引擎:耦合来接收被拦截的高层主机写入,以便生成无冗余映射表。
[0027]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一事务管理器:用于事件登录,指示数据写入闪存存储器的开始和完成;
一据恢复管理器:用以读出由该事务管理器登录的事件,以便在电源恢复之后撤销或重做向闪存存储器的写入。
[0028]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一配置设置管理器:用来改变设置,以改善闪存耐久性和性能,该设置包括驱动索引、搜索索引、页面文件大小、系统恢复、休眠、写高速缓存、预取指、超级取指、资源回收箱大小、登录、可靠性监视器、和RAM盘中的至少一个设置或多个设置。
[0029]在上述的一种具有绿能数据持续模式的器件驱动器,所述的持续恢复映像还包括:
一处理器间DRAM:受该主机处理器控制,它保存一个不同的数据类型在易失存储器的开始位置及其长度清单;
一个标志模块:指示在该易失存储器特定的数据类型需要包括进持续恢复映像中。
[0030]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一电源/电池组监视器:该电源/电池组监视器从备份电源读出电源状态线,并当电源状态线指出掉电时,激活掉电例程。
[0031]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一文件类型标识符:用以为该GND驱动器接收的主机写入并生成数据类型;
一数据拆分管理器:根据该文件类型标识符产生的数据类型,对主机写数据进行分
类;
一数据写高速缓存:用以贮存具有一个用户数据类型的主机写入数据;
一元数据高速缓存:用以贮存具有元数据数据类型的主机写入数据;
一分页高速缓存:用以贮存具有分页文件数据类型的主机写入数据;
一临时高速缓存:用以贮存具有临时数据类型的主机写入数据。
[0032]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一用户选定的关闭监视器:用于监视用户所选定的关闭类型;
一开关用户选择例程模块:用于暂停当前的用户对话,并从易失存储器把高速缓存和缓冲区冲洗至SSD ;
一注销选择例程模块:用于暂停全部用户对话,并把高速缓存和缓冲区从该易失存储器冲洗至SSD ;
一锁定选择例程模块:用于为口令输入显示一个屏幕并等待用户输入口令来恢复;一重新启动选择例程模块:用于关掉用户定义的除关键系统业务外的其他全部应用,然后重新引导系统;
一静止选择例程模块:用于使该主机处于低电力状态,但是不处于关闭状态;
一休眠选择例程模块:用于暂停除该SSD外的全部应用、以及暂停全部业务和装置;其中把一个休眠映像写入该SSD,然后暂停该SSD ;具体是只,先暂停除该SSD外的全部应用、以及暂停全部业务和装置后,然后把一个休眠映像写入该SSD,然后暂停该SSD ;和把一个休眠映像写入该SSD,然后暂停该SSD ;和一关闭选择例程模块:用于暂停全部对话、应用和装置。
[0033]在上述的一种具有绿能数据持续模式的器件驱动器,还包括:
一持续模式RAM盘,用以把数据存入动态随机访问存储器。
[0034]一种带有掉电模式的无需要安装驱动的闪存驱动器,其特征在于,包括:
一分组引擎:用以对存入元页的数据进行分组;
一处理模块:当激活掉电模式例程时被激活;并且该处理模块暂停全部应用、业务和装置;
其中电源掉电时主机易失存储器中的全部数据丢失;
一恢复映像装入器,当上次掉电时上次激活掉电模式例程时,该恢复映像装入器把引导映像从闪存存储器读到该主机易失存储器,并从该主机易失存储器执行该引导映像,以便将其存入主机处理器映像。
[0035]在上述的一种带有掉电模式的无需要安装驱动的闪存驱动器,还包括: 一加密引擎:用于耦合接收被拦截的高层主机写入数据,以便生成加密数据。
[0036]在上述的一种带有掉电模式的无需要安装驱动的闪存驱动器,还包括:
一压缩引擎,用于耦合接收被拦截的高层主机写入数据,以便生成压缩数据和压缩映射表。
[0037]在上述的一种带有掉电模式的无需要安装驱动的闪存驱动器,包括:
一分组引擎,用以把数据分组进入元页;
根据SSD不同的结构管理不同尺寸元页的多个方案,用以增强该SSD的性能和耐久
性;
与该SSD的通信协议;
一参数选择器,用以选择参数,包括元页大小参数,当SSD提供标准SSD ID时,该参数选择器为标准SSD选择标准参数,当该SSD不提供标准SSD ID时,该参数选择器为该SSD选择优化参数,并提供该SSD的硬件结构和功能能力的信息。
[0038]在上述的一种带有掉电模式的无需要安装驱动的闪存驱动器,还包括:
一参数测试器:用以执行一组预定的测试,以便利用测试参数来测试该SSD,并根据测
试结果为该SSD选择参数,这里,预定的测试是用户自定义的,如果系统所接的SSD是不知的结构,driver可以用不同的假定参数值去测试SSD,由测试结果来决定那一种参数最适合这个SSD。
[0039]在上述的一种带有掉电模式的无需要安装驱动的闪存驱动器,还包括:
一分区对齐引擎:用以设置分区偏移量,以便与多个与非页大小和与非删除块大小和文件分配单元簇的大小对齐。
[0040]一种带有绿色与非器件驱动器的超级增强耐久性SSD,包括:
一主机接口,用以从主机GND驱动器接收主机读出和主机写入:带有加密、压缩、元页分组的能力;
一控制器:用以响应由该主机接口接收的主机读和主机写:控制对闪存存储器和对SEED DRAM缓冲区的访问,该控制器把主机数据写至该SEED DRAM缓冲区;
一 SEED动态随机存取存储器缓冲区:用以贮存主机耐久性平移层;和 一闪存接口:用以访问闪存存储器或闪存存储器件。
[0041]在上述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括:
一纠错码管理器:用以生成ECC码,以便附在写入该闪存存储器的分组元页后面; 一坏页管理器:用以跟踪该闪存存储器的坏页;
一损耗分级器:用以向删除计数低的闪存存储器的空块指定新的数据,或把删除计数低的块数据移至空删除计数高的块。
[0042]在上述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,还包括:
一种数据类型:从主机GND驱动器接收的文件类型标识符的数据类型;
一数据拆分管理器:用以根据由该文件类型标识符产生的数据类型对主机写数据进行分类;
一数据写高速缓存:用以储存具有用户数据类型的主机写数据;
一元数据高速缓存:用以贮存具有元数据数据类型的主机写数据; 一分页高速缓存:用以贮存具有分页文件数据类型的主机写数据;
一临时高速缓存:用以贮存具有临时数据类型的主机写数据。
[0043]在上述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,还包括:
一SEED动态随机存取存储器缓冲区:受所述控制器控制;
一DRAM缓冲区中的备用/交换区;
其中所述控制器使用该DRAM缓冲区中的备用/交换区来在该闪存存储器内合并有效的数据与新的来自主机的数据,以便当重写一个写满的页或该闪存存储器中现有的块上的部分页面时,产生结合的数据,通过把新的数据写入该DRAM缓冲区中涉及该闪存存储器中现有块的备用块,并当针对该闪存存储器中不同的块,该备用块是附加的新的数据所需要时,把该备用块与新的数据和来自该闪存存储器中现有块的数据结合,写入该闪存存储器中的交换块,并针对该闪存存储器中现有块的页,把页面状态标记为垃圾页面。
[0044]在上述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,还包括:
该带有绿色与非器件驱动器的超级增强耐久性SSD上的备份电源当该主机关断时向SEED SSD 供电;
其中在该DRAM缓冲区中的备用/交换区用于该闪存存储器作为备用块。
[0045]在上述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括:
当该主机关断时,主机上的电源备份向该SEED SSD供电或在该SEED SSD上的备份电源向该SEED SSD供电;
在小功率状态下的处理器和当主机关断时保持有效的定时器;
其中DRAM和闪存存储器没有电力提供;
其中当定时器达到一个时间阈值时,该定时器唤醒该处理器并向该DRAM和该闪存存储器提供电力;
以此处理器检查闪存块的写入日期并当保持时间超过保持极限时刷新闪存块。
[0046]—种主板上的非易失存储器控制器,其特征在于,包括:
一闪存接口:用以在闪存存储器上删除块和写页,其中块在尺寸上可以有多个页;
一动态随机存取存储器(DRAM)接口 ;
一来自主机处理器输入信号,用于关断电源或失效时的持续模式,指出主机已经把处理器状态及其高速缓存冲洗进DRAM,该NVM控制器接过DRAM模块总线信号和闪存接口的控制,用以把数据从DRAM备份到该闪存存储器;
一来自主机处理器输入信号,用于上电重新引导时的持续模式,指出该主机正在等待NVM控制器重新从该闪存存储器装入DRAM ;
一输出信号,控制外部开关来选择DRAM;和闪存接口信号,不是来自该主机,就是来自NVM控制器;
一输出信号,指示上电引导映像从NVM控制器重新装入主机处理器的操作成功或失
效;
其中该NVM控制器在关断电源或失效时,在完成从DRAM备份到该闪存存储器之后,暂停全部操作;
其中上电重新引导时完成从该闪存存储器恢复到DRAM之后,该NVM控制器暂停全部操作。
[0047]需要注意的是,一种带有绿色与非器件驱动器的超级增强耐久性SSD是SEED SSD外挂在系统(motherboard)上,非易失存储器控制器是叙述NVM controller与flash也安装在 motherboard 上。
[0048]在上述的一种主板上的非易失存储器控制器,还包括:
其中该外部开关集成进该NVM控制器。
[0049]在上述的一种主板上的非易失存储器控制器,还包括:
一处理间DRAM:受控于该主机处理器,它保存一个不同数据类型在易失存储器的开始位置和长度的清单。
[0050]在上述的一种主板上的非易失存储器控制器,其中该外部开关集成进主机处理器。
[0051]在上述的一种主板上的非易失存储器控制器,其中该外部开关集成进该主机处理器的芯片组。
[0052]因此,本发明具有如下优点:1.提供断电/掉电时把处理器状态存入DRAM,然后把DRAM内容存入非易失存储器的途径,上电重新引导时,DRAM可以重新装入并恢复处理器状态;2.主机或闪存驱动器SSD器件上的DRAM缓冲区可以存储不必永久贮存的并因而不必写入闪存的数据,提高器件的耐久性也提高器件的读取速度;3.通过阻止向该闪存存储器不必要的写入,可以减少相关闪存器件的损耗。在主机上执行的绿色与非器件(GND)应用程序和GND驱动器可以在写入到达闪存存储器以前,阻止该次写入或将其结合,于是降低向该闪存存储器的写入频率。
【专利附图】

【附图说明】
[0053]图1是主机上GND应用和驱动器的方框示意图,它在主机和具有低耐久性闪存存储器的超级耐久闪存驱动器上都建立和管理多个高速缓存和RAM盘。
[0054]图2A-B表示更详细的示意图,突出主机上的SSD驱动器。
[0055]图3A是一个带有耐久性控制器的超级增强耐久性器件(SEED)的方框示意图。
[0056]图3B是带有一个在eMMC中储存数据的耐久性控制器的超级增强耐久性器件(SEED)的方框示意图。
[0057]图3C是带有耐久性控制器的超级增强耐久性器件(SEED)eMMC的方框示意图。
[0058]图4A-C是表示掉电和持续方式、为通过GND驱动器写入而进行的数据拆分和分组的流程图。
[0059]图5A-C是为针对掉电和持续方式通过GND驱动器读出而进行的数据分类和解分组的流程图。
[0060]图6是带有备份电源的主板示意图。
[0061]图7是带有NVM控制器电源隔离的主板示意图。
[0062]图8表示在处理器间的存储器中登记项。
[0063]图9是带有RAID耐久性控制器的PCIe SEED SSD的方框示意图。
[0064]图10是一个前端备份电源的示意图。
[0065]图11表示主板上NVM控制器用的内部电源树。[0066]图12A-C突出NVM控制器和NVM控制器用的隔离电源开关。
[0067]图13表示带有集成开关的NVM控制器。
[0068]图14A-B显示主机上DRAM持续方式用的掉电例程。
[0069]图15A-B显示PCIe RAID控制器的DRAM持续方式用的掉电例程。
[0070]图16A-B显示主机上DRAM持续方式用的引导装入例程。
[0071]图17A-B显示PCIe RAID控制器DRAM持续方式用的上电重新引导例程。
[0072]图18A-B显示由本机SSD执行的GND应用例程。
[0073]图19是SSD投入使用的驱动器用的定期例程。
[0074]图20A-B显示由USB器件执行的GND应用例程。
[0075]图21A-B是USB投入使用的驱动器用的定期例程。
[0076]图22A-B显示带有电池组、持续和正常掉电模式的笔记簿电源监测器的操作。
[0077]图23A-B显示带有电池组备份、持续和正常掉电模式的台式机电源监测器的操作。
[0078]图24A-B显示带有UPS备份、持续和正常掉电模式的服务器电源监测器的操作。
[0079]图25A-C显示带有电池组、持续和正常掉电模式的PCIe RAID控制器用的电源监测器例程。
[0080]图26A-D显示涉及登录的例程。
[0081]图27是当NVM控制器把映像存入其DRAM时,在主机上执行的引导装入程序的示意图。
[0082]图28A-B显示通过激活隔离开关以备份IPDRAM所指向的数据,取得主板控制权的NVM控制器。
[0083]图29A-B突出在GND驱动器初始化过程中的模式选择。
[0084]图30A-C显示当UPS或电池组备份可用时GND驱动器的掉电例程。
[0085]图31A-B显示当UPS或电池组备份可用时GND驱动器用的上电重新引导例程。
[0086]图32A-E显示采用GND驱动器时不同的window退出程序。
[0087]图33A-B显示GND驱动器参数初始化程序。
【具体实施方式】
[0088]下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0089]实施例:
本发明涉及闪存驱动器的改进。它还提供断电/掉电时把处理器状态存入DRAM,然后把DRAM内容存入非易失存储器的途径。上电重新引导时,DRAM可以重新装入并恢复处理器状态。呈现以下的描述是为了使本专业普通技术人员能够根据特定的应用环境及其要求实现和利用本发明。推荐实施例的不同的修改对本专业的技术人员将是显而易见的,而这里定义的一般原则可以应用于其他实施例。因此,本发明不打算限于所表示和描述的特定的实施例,而是与这里公开的原则和在新型特征最广阔的范围一致。
[0090]通过阻止向该闪存存储器不必要的写入,可以减少相关闪存器件的损耗。在主机上执行的绿色与非器件(GND)应用程序和GND驱动器可以在写入到达闪存存储器以前,阻止该次写入或将其结合,于是降低向该闪存存储器的写入频率。提供足够的备份电力时,该GND把主机的写入转向主机DRAM和/或SSD DRAM上的高速缓存和RAM盘。
[0091]主机或闪存驱动器SSD器件上的DRAM缓冲区可以存储不必永久贮存的并因而不必写入闪存的数据。DRAM不仅比较快,而且耐久性高得多的,因为它可以重写一百万次以上。
[0092]典型的主机建立许多暂时性文件,诸如在互联网浏览过程中,或当运行某个巨大的并非关键的应用程序时。
[0093]本发明人认识到这些文件不需要写入闪存,减少闪存的损耗。
[0094]典型的系统还频繁的重写某些类型的数据。这样频繁重写的数据最好贮存在主机上的或者在闪存驱动器内的DRAM缓冲区中,并按照一个策略(诸如根据消逝的时间、分配的容量等)或掉电(用户关闭电源或发生电源失效)时拷入闪存存储器。只在掉电才把这样频繁重写的数据存入闪存,还可以显著地减少该闪存器件的损耗。大部分元数据尺寸小并像FAT表一样组合在一起。每次更新都只涉及写入该闪存页的一个非常小的部分。把元数据存入DRAM可以随着时间减少不必要的闪存写入。
[0095]这样频繁重写的数据可以包括随着新的事件频繁更新的登录文件。一般系统崩溃之后检查最近的拷贝。该文件分配表(FAT)是另一个频繁重写的位置,因为当文件建立或扩展时它便被更新。该FAT表占存储器相对较小的部分,但若每次FAT更新都拷入闪存,则它的频繁访问可以明显增大损耗。文件描述块(FDB)是一个频繁重写的类似的结构,诸如当在windows explorer简单地访问和显示文件清单时便重写“访问日其月”。FDB/FAT保存该主机文件系统的元数据。与DRAM缓冲区一起使用的不同的表具有建立来把文件系统存入DRAM和闪存的元数据。
[0096]按照策略或在掉电时,由闪存驱动器建立的坏块表、删除计数器、垃圾收集、备用和交换块、映射表及其他文件需要存入闪存。按照策略或在掉电时,该闪存系统元文件也可以贮存在DRAM缓冲区中,并拷入闪存,以减少闪存损耗。上面指出的表和元文件在上电时贮存在闪存存储器中。它们在器件初始化时装入DRAM缓冲区。随后的主机数据读/写改变该数据的内容。发生掉电时,无效表和元文件需要写入或备份入闪存。若为了一个特别的应用程序需要一个精确恢复点,则在写高速缓存、FIFO(先进先出)缓冲区、数据入缓冲区、耐久性备用和交换块及闪存驱动器中的其他缓冲区的主机数据,在电源失效时也可以拷入闪存,以便允许系统恢复。
[0097]当主机主要的DRAM存储器映像传统上移入硬盘或闪存驱动器时,该系统针对存储器管理使用分页文件。若在电源失效时丢失,则页面交换文件并非关键,因为该系统无论如何都需要重新引导,而存储器管理和分页系统将被重新初始化,擦除任何贮存的分页文件。这些分页文件也可以贮存在DRAM缓冲区中,而在掉电时不必拷入闪存,于是减少闪存损耗。
[0098]主机对闪存驱动器的请求往往遵循数据类型的一般顺序。例如,主机可以首先访问FAT,然后访问FDB,然后读出或写入一个数据文件。这种重现的顺序可以协助超级耐久闪存驱动器对数据类型进行分类。该FAT总是在一个取决于OS类型(Windows,Linux,Apple0S,Android等)的预定的存储位置上。于是访问该地址范围就是FAT类型访问。在FAT之后就要访问FDB。然后,接着访问用户数据。因而用户数据可以继FAT和FDB访问之后被识另O。该FDB可以由超级耐久闪存驱动器检查,以便发现文件的扩展名,使得可以检测出.tmp文件,并以不同于用户数据文件的方式进行处理。
[0099]在一个不在数据类型之间进行区分的典型的闪存驱动器中,每一种类型的文件都会使闪存损耗。这样的不可知系统均等地处理所有数据。任何东西写入闪存,至少当它在DRAM缓冲区中的项目,假如有的话,都被来自主机的数据的具有同一高速缓存索引号的其他数据逐出到DRAM缓冲区。通过识别数据类型及其对该主机的目的,然后在正常运行过程中只把实际的用户数据写入闪存,和然后按照一个策略在电源失效时只把关键数据写入闪存,便可以达到明显地减少闪存写入的目的。
[0100]通过数据打包可以达到进一步减少闪存损耗。例如,闪存中不满一整页的数据(部分页数据)可以与其他部分页数据一起贮存在闪存中的一个单页中,而不是贮存在许多单独的页上。多信道系统可以具有一个较大的单位,诸如元页,每个信道一页,或信道数乘以页面大小。通过打包进入元页,而不是进入较小的页,可以进一步减少闪存损耗。
[0101]在不友善的环境中,DRAM缓冲区可能有软件差错。额外超量配置的DRAM可以用于ECC奇偶位来提高可靠性。
[0102]每种技术带来的闪存损耗节约都可以提供不同的改进,但一起使用时这些技术可以明显提高闪存的耐久性。利用这些技术,GND应用程序和GND驱动器可以提供更高的闪存驱动器耐久性。若无意间掉电,DRAM内容将会丢失,不仅当前数据丢失,还可能使SSD崩溃并丢失全部宝贵的数据。可以利用不同形式的备份电源来保证DRAM内容可以保持在非易失存储器中。另外,带有足够的备份电力,在DRAM内容存入非易失存储器以前,可以把处理器的状态存入DRAM。该DRAM内容的存储可以在处理器控制下进行,它要求更多电力,或利用NVM控制器来进行这项工作,并禁止多数耗电量大的电路。
[0103]图1是王机上的GND应用和驱动器的方框不意图,该王机在王机上和在具有低耐久性闪存存储器的超级耐久闪存驱动器上都建立和管理多个高速缓存和RAM盘。主机300有一个处理器,它执行程序,诸如用户应用程序182和操作系统(OS)诸如Windows,Linux,Apple OS或Android等内核178的指令。当主电源失效时,备份电源176向主机300提供电力,使主机300能够把来自RAM盘的关键数据188存入超级增强耐久性器件(SEED) SSD200,以便当电源失效时存储在与非闪存存储器196中。备份电源176可以使用电池组或不间断电源(UPS)等。这给主机处理器以时间来关闭应用程序和在掉电模式下适当地关断所附装置的电源。或者,在持续模式下,该处理器在DRAM中保存其状态、高速缓存,并准备恢复环境,然后把DRAM内容存入非易失硬盘。SEED SSD 200有它自己的电源备份195,当主电源失效时允许SEED SSD 200把关键数据写入与非闪存存储器196。电源备份195可以利用电容、超级电容或电池组。作为另一方案,若备份电源176有足够的电力来优雅地关闭该系统,则在SEED SSD 200中不需要电源备份195,诸如当主机300是笔记簿或智能电话时。
[0104]SSD应用程序180是一个在主机300上执行的应用程序。SSD应用程序180和SSD驱动器100可以用来使SEED SSD 200容易装入。SSD应用程序180和SSD驱动器100可以分开和/或存储不想永久地贮存在闪存的数据,诸如临时文件、分页文件等。SSD驱动器100可以管理RAM盘188来储存这样的暂时性数据。RAM盘188可以是主机DRAM的一部分。
[0105]SSD驱动器100可以使用主机CPU来执行诸如压缩/解压引擎242和加密/解密引擎240等任务。去复份引擎243找出和删除重复的数据文件拷贝,以减少写入负载。来自用户应用程序182的数据,也就是说由OS内核178写入的数据,用高层文件过滤器190拦截,并传送到SSD驱动器100,以便在发送至文件系统驱动器266以前进行压缩和/或加密。然后,低层文件过滤器驱动器268再次截取数据,以便由SSD驱动器100进一步处理,诸如存入RAM盘188。
[0106]最后准备好要写入SEED SSD 200的数据从SSD驱动器100发送到卷管理器270,它管理存储卷,诸如SEED SSD 200等。SEED SSD 200中的SEED控制器192,可以存储SSD DRAM缓冲区194中的数据,然后在掉电时或当SSD DRAM缓冲区194写满时,存入与非闪存存储器 196。
[0107]SSD应用程序180中的SSD家庭清扫(housecleaning) 181完成诸如垃圾收集、删除老旧无用文件等不同的高层功能。SSD家庭清扫181可以定期执行,诸如每日、每周或当SSD驱动器100管理RAM盘188时。配置设置186和登录库和OS设置184可以由OS内核178或其他程序进行,以定义RAM盘188的尺寸或其他系统变量,和管理SSD应用程序180和SSD驱动器100推荐的功能。
[0108]配置设置186和登录库和OS设置184可以有不同的设置,它可以改善闪存耐久性和性能。例如,设置可以启用或禁止写高速缓存、驱动器索引、搜索索引、清除碎片、主机休目民、预取指、超级取指和视窗操作系统(windows)写高速缓存缓冲区冲洗。预取指、索引、休眠和清除碎片可能附带地导致闪存写入,并因而降低耐久性。禁止写高速缓存和写高速缓存缓冲区冲洗,因为GND驱动器具有它自己的写高速缓存和冲洗功能。因而,可以通过禁止这些特征使闪存耐久性得以改善。
[0109]图1所示的某些任选组件对异常掉电形势有用。电源保持接通时,电源管理305储存能量,并在掉电时向主机300供电。CPU寄存器和高速缓存控制器301把CPU寄存器和高速缓存写入主机DRAM,然后当掉电时写入SEED SSD 200。在另一个实施例中,SEED SSD303连接至主机300的另一个SSD,诸如通过一个PCIe端口、USB端口、NVMe端口等。在又一个实施例中,SEED SSD 303可以位于DRAM模块中并受存储器控制器309控制。CPU寄存器和高速缓存控制器301把CPU寄存器和高速缓存写入主机DRAM,并在该替代方案中,然后在掉电时写入SEED SSD 200或SEED SSD 303。开关311,当预先设定时,隔离主机300上不必要的组件,使它们不接收备份电力,因而为关键组件延长备份电力周期。可以存在存储器控制器309,以便在异常关断电源和电力恢复过程中在主机DRAM和SEED SSD 303之间转移数据。或者,存储器控制器309可以集成在主机300的处理器中。
[0110]以下是GND驱动器通过配置和OS设置改善耐久性和性能的细节:
1.禁止驱动器索引:SSD驱动查找快速,约0.1ms,使得无需索引。
[0111]2.禁止驱动器搜索索引:
禁止搜索索引可以帮助增大SSD的性能和寿命。禁止该选项避免视窗(windows)尝试为搜索目的而跟踪每个文件。缺点是SSD搜索可能较慢。
[0112]3.缩小分页文件大小:
把页文件留在SSD上,但将其设置为固定和合理的大小。
[0113]该操作系统将分配一个与所安装的DRAM —样大的页文件,对于DRAM尺寸大的机器,它开始相当迅速吞食SSD空间。页文件在SSD上性能很好,取决于系统中DRAM的数量。可以将其设置为I或2GB大小(固定的,最小和最大同值)。应该在SSD上的可用空间和有多少DRAM可用和正常使用值之间取得平衡。[0114]4.禁止系统恢复:
该系统恢复特征允许针对软件安装、驱动器及其他更新能够卷回。禁止该特征可以释放几百兆字节和几千兆字节之间。它可以减小系统恢复可以使用的硬盘空间数量,或者冒着不能从系统改变所引起问题中自动恢复的风险将其完全关闭。但若该特征被禁止,则用户应使用某些其他形式的备份,诸如建立硬盘映像备份。
[0115]5.禁止休眠:
通过在视窗(Windows)中禁止休眠特征可以释放SSD空间(多达DRAM的数量)。通过默认,该休眠文件(hiberfil.sys)的尺寸与该计算机上安装的DRAM数量相同。自然,禁止休眠将使用户无法利用该节电模式。禁止该休眠特征将相应地失去快速引导和停机。对于SSD它并没有提供实际的好处,因为它的10-20秒快速装入时间,在某些情况下等于休眠。但是用户可以通过从该关闭菜单选择它来选择启用休眠功能。
[0116]6.禁止写高速缓存和利用GND驱动器高速缓存。当备份电源可用时该GND驱动器将充分利用其高速缓存。
[0117]关闭写高速缓存缓冲区冲洗可以增强SSD的性能。
[0118]7.禁止预取指:
SSD具有极低的查找次数而且没有转动延迟,于是访问次数不取决于特定段的位置。因此预取指失去其主要目的。另外,减少写入SSD是优化其性能的一部分,于是应该禁止预取指。
[0119]8.高速缓存引导只进行超级取指:
较好的途径将是只设定高速缓存引导文件。超级取指确实有一个目的,而且仅仅将其完全关闭将只增大某些硬盘空间,而且只有在高速缓存文件在被禁止之后删除时才如此。禁止超级取指将导致繁忙的机器减慢,因为它将应用从硬盘交换到RAM。正因为它是一个SSD,并不意味着交换不出现或不会被察觉。
[0120]9.缩小资源回收箱的大小:
把资源回收箱设置为固定的和小的尺寸。视窗(Windows)将把该尺寸设置为SSD大小的10%。利用较小的,诸如300MB可能有助于释放空间并减少SSD的写入。
[0121]10.减少登录:
操作系统(OS)写入大量的事件登录。除某些必要的登录(事件登录应用、安全、系统、安全必要件)外,可以安全地使定期进行驱动器写入的某些登录停止。
[0122]11.视窗(Windows)可靠性监视:
若OS在SSD上,则该监视程序提供一个硬件和软件问题随着时间的概观。它在事件(出现)时和每小时写入驱动器。监测的活动可能使稳定的系统减慢。
[0123]12.使用GND驱动器上的RAM盘:
a) RAM盘对于所有PC(至少那些已有DRAM备用者)都是一个好主意。把全部临时档案夹、互联网浏览器、火狐(Firefox)和Tbird高速缓存、视窗(Windows)事件登录等记入RAM盘。针对掉电模式在没有备份电源的情况下那些临时文件在掉电时会丢失。不需要写入硬盘的临时文件可以安全地在掉电时丢失。
[0124]b)若RAM盘的内容读/写到SSD上的一个映像文件,则RAM盘只会增加引导和关闭次数。重要的是判定哪些要写回SSD。以外,在RAM盘中贮存临时文件会提高系统性能,某些频繁使用的应用软件可以贮存在RAM盘上,以减少那些应用的启动时间。在系统关掉之后RAM盘上的数据将丢失。每次上电引导时都需要把该应用软件拷到RAM盘上。若用批文件拷贝,则时间将是漫长的,因为有太多尺寸小的文件要访问。利用映像文件是有帮助的。但若该映像文件包括带有全部不同的数据和应用软件,则该映像文件大小将会太大,并且要用长时间装入RAM盘。在这种情况下,可以使用多个RAM盘来分开数据,而频繁使用的应用软件存入不同的RAM盘。于是,可以装入和执行带有频繁的应用软件的RAM盘,以节省引导时间。另外,掉电时,该类型的RAM盘弃置即可。
[0125]c)有电池组备份电源可用时,RAM盘可以用来存储数据。电源失效或关断时不仅临时文件需要保持。只有当计算机关闭(并把.1mg(文件)写回SSD)时或者电源失效或关断时才需要把RAM盘存入SSD。
[0126]下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0127]图2A-B显示一个突出主机上的GND驱动器的更详细的示意图。在图2A中,OS内核写入并被高层文件过滤器驱动器190 (图1)拦截的主机数据传送到GND驱动器100,以便在被发送到文件系统驱动器266之前,由压缩引擎242压缩和/或由加密引擎240加密。去复份引擎243找出和删除重复的数据文件拷贝,以减少写入负载。然后,低层文件过滤器驱动器268再次拦截该数据,以便由GND驱动器100进行更多的处理。
[0128]文件优先级分类264根据低层文件过滤器驱动器268指定的数据类型或由LBA指出对该数据,诸如针对元数据(FAT,FDB),临时文件、分页文件或用户数据)进行分类,。临时文件包括视窗(windows)暂时性文件、互联网浏览器暂时性文件等。或者,对于诸如服务器等某些用途,该功能可以任选地加以禁止。操作被任务优先级分配器260赋予一个优先级,使得优先级较高的任务可以先于优先级较低的任务执行。性能调整器256可以定期调整这些优先级,以改善性能。然后,目标分配器254把该数据发送到RAM盘驱动器250,以便依数据类型而定,存入RAM盘188 (图11 ),或数据写高速缓存20。
[0129]写入SSD的数据在发送到卷管理器270和SEED SSD 200以前可以由分组器134分组。分区管理器172和硬盘类驱动器174可以指定该数据路由到选定的分区或硬盘。硬盘最小端口驱动器138管理所连接的SSD的厂家规定的功能。解分组器136对从SEED SSD200取出的数据在被传送到数据读高速缓存132之前进行解分组。
[0130]事务系统262保证该数据完全写入SEED SSD 200。恢复管理器216确定哪些写业务由于异常断电而没有完成,并协助该应用进行必要的重做或反重做,使数据正确。调度程序218管理事务系统262来管理和记录对诸如开始、取消和提交等SSD业务的写入。
[0131]当电源监测器248检测到掉电时,激活RAM盘冲洗/恢复管理器126,以便把来自数据写高速缓存20和RAM盘188的数据转移到SEED SSD 200,以便存入闪存存储器。当冲洗完成时,冲洗/恢复管理器126向SEED SSD 200和备份电源176或电源管理305 (全部在图1)发出售主命令。备份电源,若有的话,关断该系统的电源,而只向SEED SSD 200供电。若使用电源管理305,则它将继续向DRAM、SEED SSD 303、开关311和存储器控制器309供电。冲洗/恢复管理器126可以在掉电之前定期把数据写高速缓存20和RAM盘188的内容冲洗到SEED SSD 200。
[0132]安全244可以在允许访问SEED SSD 200或由GND驱动器100高速缓存的数据之前,执行口令核实处理。智能数据监测器246把来自SEED SSD 200的S.M.A.R.T.监测信息发送到SSD应用程序180。智能数据监测器246、电源/CPU监测器248、安全244和RAM盘驱动器250是任选的。
[0133]不同的节电模式249可以如图2B所示得到支持。PRST模式251支持持续模式,在此模式下当主电源失效或用户选择关机时,保存数据和处理器状态。当用户选择关机和GND驱动器的持续模式被用户禁止使用时,掉电模式253以一种受控的方式关闭系统电源。它将关闭全部尚未完成的事情并完全关闭计算机。切换用户模式261,注销当前用户并显示一个屏幕,以便让新的用户以其名字和口令登录。注销模式259把用户从该系统注销,使得其他用户随后可以登录。锁定模式263锁定屏幕并提示输入口令。重启模式265除诸如GND驱动器等关键系统业务外,关闭全部应用,和然后再次重新将其打开。休眠模式257使该系统处于低电力休眠模式,这允许较快的唤醒时间。静止模式255使该系统处于关断电源状态,同时把唤醒映像存入非易失存储器。
[0134]图3A是带有耐久性控制器的超级增强耐久性器件(SEED)的方框示意图。在这替代方案中,SEED SSD 200’直接接口到与非闪存存储器342。SEED SSD 200’可以在没有主机GND驱动器的情况下独立工作。可以实现驻留在主机GND驱动器上的某些功能。
[0135]SEED SSD 200’具有主机接口 16,利用诸如PCIe、SATA或万用串行总线(USB)、NVMe、雷电(ThunderboIt)、eMMC、iSSD等与主机300(图11 )通信。来自主机接口 16的主机数据发送到耐久性控制器360。
[0136]DRAM接口 12在耐久性控制器DRAM 340中读出和写入数据。耐久性控制器DRAM340可以存储一个或多个RAM盘、高速缓存、S.M.A.R.T.信息、固件及其他缓冲区和表。DRAM340还可以存储安全信息、坏页管理用的表、映射表、删除计数表、备用和交换块及其他缓冲区和表。
[0137]刷新管理器202可以定期刷新低层SSD闪存存储器342中的数据。冲洗恢复管理器43利用冲洗出去的数据管理恢复操作。临时管理器348控制临时数据。安全346管理安全功能。编程/删除管理器41可以减慢页面写和块删除时间,以帮助延长闪存单元氧化物层的寿命。较慢页面写/块删除时间可以应用于TLC闪存,以便以缩短保持时间为代价增大耐久性。
[0138]多通道闪存接口 14在闪存存储器342中编程数据页和删除块,该闪存可以组织成几个通道。ECC管理器338产生低层纠错码(ECC),以便附在写数据后面,和把所贮存的与重新产生的ECC比较,以便在读出时纠错。另外,它管理需要额外ECC保护的闪存页,为那些页生成ECC,和管理存储和需要时取回ECC数据。坏页管理器206跟踪坏页在闪存存储器342中的位置。该可以延长各块的寿命,因为在该块中可能只有一页是坏的,而其他页可以继续使用。更复杂的坏块管理可以在总体上减少闪存驱动器的损耗。
[0139]损耗分级器40可以提供两个损耗分级方法。一个方法是动态地从可用空块中选择损耗分级计数最低的块,以便写入数据。另一方法是基于损耗分级计数阈值。一旦达到该阈值,闪存数据块便从一个物理块(损耗分级计数低的)移动到闪存存储器342中其他空的物理块中(损耗分级计数高的)。
[0140]本地命令队列(NCQ)管理器52可以对来自主机300的主机命令重新排序,并管理一个通过主机接口 16接收的主机命令队列。该管理器把主机命令装入队列,在这里对写入进行重新排序并加以结合,以便减少闪存写入。[0141]RAID控制器50跨越与非闪存存储器342的几个通道写入新数据,并可以复制数据,以便提供冗余和数据恢复。
[0142]进行更新,以便由表管理器48管理映射表中的逻辑到物理的映射。另外,贮存在每个逻辑块或页上的数据类型,一旦被数据拆分管理器204识别和分类,表管理器48便对其进行跟踪,以便跟踪临时文件、分页文件、FAT、FDB和用户数据文件。作为另一方案,主机300可以通过售主命令把数据类型的信息送到SEED SSD 200,于是数据拆分管理器204不再重复GND驱动器100所完成的工作。或者,对于某些状态,该功能可以任选地被禁止。
[0143]修剪管理器42处理来自文件系统或主机300 OS的修剪命令。修剪命令指出该主机不再需要一个扇区并可以擦除或删除。该被修剪的页面在该页面状态表中被标记为垃圾页面,诸如‘100b’或‘101b’。进行后台垃圾收集时,若该块被识别为删除候选,则该页面不会被拷贝到新的块。此刻修剪命令完成。修剪管理器42完成诸如跟踪一个块中哪个扇区和页不再需要等系统开销。垃圾收集器还可以用来跟踪准备好删除的块。一旦一个整块不再需要,修剪管理器42便激活垃圾收集器或其他删除机制,删除该块,以便该块可以再用。去复份引擎243找出和删除重复的数据文件拷贝,以减少写入装入。
[0144]S.M.A.R.T.功能39处理来自主机300的S.M.A.R.T.命令或售主命令,诸如监视和控制纠错、损耗、坏块及其他闪存存储器管理。S.M.A.R.T.代表自检测、分析和报告技术(Self-Monitoring, Analysis and Reporting Technology)。主机可以使用 S.M.A.R.T.命令组来监视诸如上电时间、损耗分级计数等来自SSD器件的某些重要数据。主机可以使用该数据来诊断和识别SSD的寿命预期。它还可以使用该信息来根据该用法确定保证范围。主机可以在经历实际损坏之前更换SSD驱动器。在冗余独立磁盘阵列(RAID)中,主机可以使用S.M.A.R.T.命令来避免比较昂贵的RAID 5配置。
[0145]事务管理器356保证数据完全写入或传送到与非闪存。超量配置208在与非闪存存储器342中保留和管理备用块。安全删除管理器18完成较高安全性删除操作,诸如向一个块写全零或全1,以便必要时去除数据。
[0146]电源备份195提供备份电源,使得当掉电时SEED SSD 200’可以来自耐久性控制器DRAM 340的数据写入与非闪存存储器342。
[0147]图3B是带有在eMMC中储存数据的耐久性控制器的超级增强耐久性器件(SEED)的方框示意图。在该替代方案中,SEED SSD 200’有接口通向包含闪存存储器的增强多媒体卡(eMMC)343。
[0148]SEED SSD 200’具有主机接口 16,利用诸如PCIe、SATA或通用串行总线(USB)、NVMe、雷电(Thunderbolt)、eMMC、iSSD等总线与主机300(图1)通信。来自主机接口 16的主机数据发送至耐久性控制器360’。
[0149]DRAM接口 12把数据读出和写入耐久性控制器DRAM 340。耐久性控制器DRAM 340可以存储一个或多个RAM盘、高速缓存、S.M.A.R.T.信息、固件及其他缓冲区和表。DRAM 340还可以存储安全信息及其他缓冲区和表。
[0150]冲洗恢复管理器43利用冲洗出去的数据管理恢复操作。临时管理器348控制临时数据。安全346管理安全功能。可以用压缩/解压引擎242和加密/解密引擎240对数据进行操作。ECC/LDPC管理器339管理需要额外ECC保护的闪存页、为那些页生成ECC和管理存储和需要时取回ECC数据。可以使用低密度奇偶检验(LDPC),而不用ECC。[0151]多通道eMMC接口 17对eMMC 343中数据进行编程,它可以组织成几个通道。本地命令队列(NCQ)管理器52可以对来自主机300的主机命令进行重新排序,并管理通过主机接口 16接收的主机命令队列。该管理器把主机命令装入命令队列,在这里写入被重新排序和结合,以便减少闪存写入。RAID控制器50跨越几个eMMC 343通道写入新数据并可以复制数据,以便提供冗余和数据恢复。
[0152]表管理器48跟踪贮存在每个逻辑块或页上的数据类型,使得临时文件、分页文件、FAT、FDB、和用户数据文件一旦被数据拆分管理器204识别和分类,便对其进行跟踪。作为另一方案,主机可以把数据类型信息通过售主命令送到SEED SSD,于是数据拆分管理器204不再重复GND驱动器100完成的工作。或者,对于某些状态该功能可以任选地被禁止。
[0153]修剪管理器42处理来自文件系统或主机300 OS的修剪命令。该修剪命令指出,该主机不再需要一个扇区,它可以被擦除或删除。修剪管理器42将该修剪信息发送至eMMC343。去复份引擎243找出和删除数据文件的重复拷贝,以减少写入负载。
[0154]S.M.A.R.T.功能39处理来自主机300的S.M.A.R.T.命令或售主命令,诸如监视和控制纠错、损耗、坏块及其他闪存存储器管理。S.M.A.R.T.功能39将修正来自eMMC 343的S.M.A.R.T.信息。主机可以使用S.M.A.R.T.命令组来监视来自SSD器件的某些重要数据,诸如上电时间、损耗分级计数等。主机可以使用该数据来诊断和识别该SSD的寿命预期。它还可以使用该信息来根据该用法确定保证范围。主机可以在经历实际损坏之前更换SSD驱动器。在冗余独立磁盘阵列(RAID)中,主机可以使用S.M.A.R.T.命令来避免比较昂贵的RAID 5配置。
[0155]事务管理器356保证数据完全写入或传送到eMMC 343。超量配置208保留和管理eMMC 343中的备用块。安全删除管理器18完成安全性较高的删除操作,诸如向一个块写全零或全1,以便必要时,去除数据。
[0156]电源备份195提供备份电源,使得掉电时SEED SSD 200’可以把耐久性控制器DRAM340的数据写入eMMC 343。
[0157]图3C是带有耐久性控制器的超级增强耐久性器件(SEED)eMMC的方框示意图。在这替代方案中,SEED eMMC 205直接接口至与非闪存存储器342。
[0158]eMMC主机接口 19使用eMMC协议与主机300 (图1)通信。来自eMMC主机接口 19的主机数据发送至耐久性控制器360"。
[0159]SEED SRAM 345可以存储S.M.A.R.T.信息、固件、坏页管理用的表、映射表、删除计数表、备用和交换块及其他缓冲区和表。
[0160]刷新管理器202可以定期刷新低层SSD闪存存储器342中的数据。多通道闪存接口 14在闪存存储器342中编程数据页和删除块,它可以组织成几个通道。ECC管理器338产生低层纠错码(ECC),以便附在写数据后面,并把贮存的ECC与重新产生的ECC比较,以便在读出时检测和纠错。另外,它还管理需要额外ECC保护的闪存页、为那些页生成ECC和管理存储和需要时取回ECC数据。坏页管理器206跟踪闪存存储器342中坏页的位置。它可以延长各块的寿命,因为在该块中可能只有一页是坏的,而其他页可以继续使用。更复杂的坏块管理可以在总体上减少闪存驱动器的损耗。
[0161]损耗分级器40可以提供两种损耗分级方法。一种方法是动态地从可用空块中选择损耗分级计数最低的块来写入数据。另一方法基于损耗分级计数阈值。一旦达到该阈值,闪存的数据块便从闪存存储器342中一个物理块(损耗分级计数低的)移动到其他空物理块(损耗分级计数高的)。
[0162]编程/删除管理器41可以减慢页写入和块删除时间,以便帮助延长该闪存单元的氧化物层的寿命。较慢页写入/块删除时间可以应用于TLC闪存,以便以缩短保持时间为代价增强耐久性。
[0163]S.M.A.R.T.功能39处理来自主机300的S.M.A.R.T.命令或售主命令,诸如监视和控制纠错、损耗、坏块及其他闪存存储器管理。S.M.A.R.T.代表Self-Monitoring,Analysis and Reporting Technology (自检测、分析和报告技术)。主机可以使用S.M.A.R.T.命令组来监视来自SSD器件的某些重要数据,诸如上电时间、损耗分级计数等。主机可以使用该数据来诊断和识别该SSD的寿命预期。它还可以使用该信息来根据该用法确定保证范围。主机可以在经历实际的损坏之前更换SSD驱动器。在冗余独立磁盘阵列(RAID)中,主机可以使用S.M.A.R.T.命令来避免比较昂贵的RAID 5配置。
[0164]事务管理器356保证数据完全写入或传送到与非闪存。超量配置208保留和管理与非闪存存储器342中的备用块。安全删除管理器18完成安全性较高的删除操作,诸如向一个块写全零或全1,以便必要时去除数据。RAID控制器50跨越与非闪存存储器的几个通道写入新数据,并可以复制数据,以便提供冗余和数据恢复。
[0165]图4A-C是表示为通过GND驱动器100写入进行数据拆分和分组的流程图。主机向数据拆分管理器108发送写入命令,另外,它还接收由压缩/加密引擎106,若它被启用,压缩或加密之后的主机写数据。加密或加压文件用的压缩表项或元页分组表可以在元数据高速缓存120中修改。
[0166]GND驱动器100 (图2)内的数据拆分管理器108按数据类型,诸如通过检验文件扩展名或通过FAT和FDB分析,对主机写数据进行分类。临时文件贮存在RAMa _01中的临时文件区124中,带有一个表项在元数据高速缓存120中修改。当关断电源或电源失效时,临时文件区124存入SEED SSD 200的持续模式DRAM映像203。或者,响应用户选择,临时文件不存入持续模式DRAM映像203。
[0167]分页文件贮存在高速缓存内的分页区38中,并通过分页文件分组处理116,与其他包含同样分页文件数据类型的页分组进入元页。该分组后的页将发送至SEED SSD 200,若在正常运行过程中,高速缓存中的分页文件区38没有足够的空间,则贮存在SSD驱动器卷201中。分组文件用的表项可以在元数据高速缓存120中修改。当关断电源或电源失效时,高速缓存内分页文件区38中未储存的数据和元页分组116贮存在持续模式的DRAM映像203中,不在SEED SSD 200的SSD驱动器卷201中。或者,通过用户选择,分页文件不贮存在持续模式DRAM映像203中。
[0168]诸如FAT和FDB登记项等元数据文件贮存在元数据高速缓存120中。FDB可以是由FDB元页分组处理114分组进入元页。若在正常运行过程中,高速缓存内的元数据120没有足够的空间,则该分组后的页将发送至SEED SSD 200,并贮存在SSD驱动器卷201。分组文件用的表项可以在元数据高速缓存120中修改。当关断电源或电源失效时,高速缓存内元数据120中未储存的数据和元页分组114贮存在持续模式DRAM映像203中,不存入SEEDSSD 200的SSD驱动器卷201。[0169]用户文件贮存在数据写高速缓存20中,并与包含同一用户或非临时文件数据类型的其他页一起,由元页用户文件分组处理113分组存入元页。若在正常运行过程中,在高速缓存中数据写入20没有足够的空间,则该分组后的页将发送至SEED SSD 200,并存入SSD驱动器卷201。分组文件用的表项可以在元数据高速缓存120中修改。当关断电源或电源失效时,高速缓存内的数据写20中未储存的数据和元页分组113贮存在持续模式DRAM映像203中,不存入SEED SSD 200的SSD驱动器卷201。
[0170]图4B表示当关断电源或电源失效时在持续模式过程中附加的写入。RAM盘205拷贝至持续模式DRAM映像203,但不拷贝至SSD驱动器卷201。处理器间(IP)的信息贮存在IPDRAM 213中,并拷入持续模式DRAM映像203,但不拷入SSD驱动器卷201。当关断电源或电源失效,和持续模式被启用时,SSD驱动器100将诸如处理器环境207、CPU高速缓存209和恢复环境213等信息冲洗进主机300的DRAM,并在把DRAM数据存入持续模式DRAM映像203之前,更新IPDRAM 213。为了完成把数据写入持续模式DRAM映像203,需要电池组或其他备份电源,以保持有效一段时间。然后,当主电源恢复时,该数据可以由持续模式DRAM映像203取出。请注意,由GND驱动器处理的写数据可以经过压缩、加密或分组处理。
[0171]图4C表示带有掉电模式,不是主机300没有备份电源176,就是用户选择选项1204选择掉电模式1210(图29A, B)。
[0172]绿色或低功率闪存器件可以使用与非闪存存储器。GND驱动器不会利用DRAM高速缓存20,38和120来避免当掉电时关键数据的丢失。SSD驱动器卷201在由元页用户文件分组处理113分组的元页中接收用户或非临时文件数据类型。另外,SSD驱动器卷201还接收被分页文件分组处理116分组为元页的分页文件数据类型,和被FDB元页分组处理114分组为元页的FDB。在正常运行过程中,一旦元页写满,所有这三个元页分组便都从主机300被发送至SSD驱动器卷201。掉电时未完成的元页分组可能丢失。或者,若SEED SSD具有DRAM区,用于这三个元页分组的镜像映像,则掉电时数据的丢失可以减到最少。关断电源和电源失效时,贮存在狀11盘_01临时文件区124的临时文件丢失。
[0173]图5A-C是表示针通过GND驱动器为掉电和持续方式读出的数据进行分类和解分组的流程图。主机向数据拆分管理器108发送一个读命令,该管理器在用压缩/加密引擎解压或解密之后还向主机发出读数据。GND驱动器100(图2)内的数据拆分管理器108按数据类型对主机读数据进行分类,并根据该数据类型对数据进行选择。
[0174]在图5A中,最近该用户数据可能已经写入数据写高速缓存20,并仍然可从其中获得。该数据可以贮存在SEED SSD 200的SSD驱动器卷201,而且必须首先用用户数据元页解分组处理113解分组,并进入数据写高速缓存20。贮存在SSD驱动器卷201的FAT/FDB数据在放入元数据高速缓存120之前,首先由FAT/FDB元页解分组处理114解分组。
[0175]贮存在SEED SSD 200的SSD驱动器卷201的分页文件首先用分页文件元页解分组处理116解分组,并装入高速缓存中的分页区38。
[0176]临时文件不贮存在闪存存储器中,而被数据拆分管理器108从狀11盘_01中的临时文件区124读出。在上电重新引导过程中利用持续模式,当关断电源或电源失效时,那些贮存在持续模式DRAM映像203的高速缓存20,38,120和元页分组113,114,116,装回它们在DRAM中的同一位置。
[0177]图5B表示在持续模式和上电重新引导过程中附加的读类型。RAM盘205可以从持续模式DRAM映像203拷贝。处理器间(IP)的信息可以从持续模式DRAM映像203拷贝至IPDRAM 213。诸如处理器环境207、CPU高速缓存209和恢复环境213等冲洗出去的信息从持续模式DRAM映像203拷贝。
[0178]图5C表示掉电模式,SSD驱动器卷201提供由元页用户文件分组处理113分组的元页中的用户或非临时文件数据类型。SSD驱动器卷201还提供被分页文件分组处理116分组进入元页的分页文件数据类型,和被FDB元页分组处理114分组进入元页的FDB。一旦向RAM盘存储器提供的电力耗尽,贮存在狀11盘_01临时文件区124中的临时文件便丢失。
[0179]图6是带有备份电源的主板示意图。主板361’具有电源区358’带有从备份电源351接收电力PWR的主机电源输入67。备份电源351接收交流电源输入,并具有一个内部电池组,以便在交流电源掉电时供电PWR—段时间。当交流电源掉电时,从备份电源351向CPU 76发送一个掉电信号。然后CPU 76可以启动掉电例程。可以激活芯片组80内的DRAM控制器84,从安装在DRAM插槽354内的DRAM读出数据,并利用存储接口 82把该数据写入SSD 357中的闪存存储器。SSD电源由主板361’从主机电源输入67提供。或者,DRAMCTLR(DRAM控制器)84可以驻留在CPU 76中,而不在芯片组80内。备份电源351可以有直流电源DC PWR,代替交流电源AC PWR。
[0180]图7是带有NVM控制器的电源隔离的主板的示意图。主板361具有隔离的电源区358,它可以用开关60,62与其他组件隔离。
[0181]诸如万用电源等主电源向隔离电源区358提供不间断电源。电源64向全部组件供电。当关断电源或电源失效时,CPU 350检测到掉电。SSD驱动器100将使用一段非常短的时间进行冲洗,并准备诸如处理器环境207、CPU高速缓存209和恢复环境213等信息,然后向主机300的DRAM更新IPDRAM 213。此后,它将向NVM控制器70发送CPU HALT (停止)信号,以便启动DRAM 354内容向SSD 357的存储处理。CPU 350将停止,而主机300将掉电,电源区358除外。收到CPU HALT信号之后,NVM控制器70激活开关控制,以便使开关60断开芯片组80中DRAM控制器84,并使开关62断开芯片组80中的存储接口 82。或者,芯片组80可以集成进CPU 350。
[0182]然后,NVM控制器70利用它的DRAM控制器74从DRAM插槽354中的DRAM读出数据,并使用其SSD存储接口 72把该数据写入SSD 357。若使用IPDRAM方案,则只把IPDRAM213指向的部分DRAM内容354备份进SSD,而不是备份整个DRAM内容。
[0183]因为CPU 350和芯片组80被开关60,62隔离,所以它们可以掉电,保存电力使得NVM控制器70可以把DRAM数据拷入SSD 357。剩余UPS电力可以只由NVM控制器70及隔离电源区358内的其他组件使用。
[0184]上电重新引导时,CPU 350将向NVM控制器70发送一个CPU INIT (初始化)信号,而且CPU 350不访问DRAM 354或SSD 357,但将等待NVM控制器完成数据向DRAM 354的装入。然后,该NVM控制器将通过控制开关60和62接管DRAM和SSD总线信号。此后它将把持续模式DRAM映像装入DRAM 354。一旦装入完成,它将向CPU 350发出SUCCESS/FAIL(成功/失败)信号,以便指明任务完成,并释放DRAM和SSD总线信号,把控制交回CPU/芯片组。CPU 350将进行上电引导处理。
[0185]图8表示处理器间的存储器(IH)RAM 213)针对只把选定的DRAM内容存入持续模式DRAM映像203的情况的登记项。第一字节可以是签名,诸如0x55AA。每个记录都有一个用以决定这组资料是否在掉电时需要备份储存DEF,也就是说OxOO指示该记录所指向的数据在掉电时不必备份,0x01指示需要备份所指向的数据,或OxFF用于IPDRAM中最后有效的记录。更详细可以利用剩余号码0x02至OxFE实现,以便识别不同类型的数据,诸如0x02用于处理器环境207,0x03针对数据写高速缓存20等。另外,每个记录都包含一个指针,指示主机DRAM中的起始地址,而长度字段指示有关数据的总长度。每个记录都总共有10字节。对于512字节的扇区,它可以保存51个记录。OxFF记录不必位于最后记录。
[0186]掉电时,NVM控制器70 (图7)或CPU 76 (图6)执行的掉电例程可以读出IPDRAM的每个记录(在DRAM的部分存储的情况下),并决定当DEF字段不是0x00或OxFF时是否把该数据从DRAM拷贝至SSD。IPDRAM将位于DRAM的一个固定的已知地址上,使得不是CPU76 (图6),就是CPU 350和NVM控制器70 (图7)将访问同一位置,而不会引起混乱。
[0187]图9是带有RAID耐久性控制器的PCIe SEED SSD的方框示意图。当关断电源或电源失效时,该PCIe SEED SSD控制器将实现持续模式。在这替代方案中,PCIe SEED SSD 200”直接接口到由RAID控制器50访问的SSD 364,它冗余地储存数据。
[0188]PCIe SEED SSD 200”具有主机接口 16,它利用外围组件快速互联(peripheralcomponent Interconnect express (PCIe))总线与主机 300(图1)通信。来自主机接口 16的主机数据发送至耐久性控制器360。
[0189]DRAM接口 12在 SSD耐久性平移层(Endurance Translation Layer (ETL))DRAM 368中读出和写入数据。DRAM 368可以存储一个或多个RAM盘、高速缓存、S.M.A.R.T.信息、固件、安全信息及其他缓冲区和表。
[0190]刷新管理器202可以定期刷新SSD 364中的数据。冲洗恢复管理器43利用冲洗出去的数据管理恢复操作。安全346管理安全功能。
[0191]本地命令队列(NCQ)管理器52可以对来自主机300的主机命令进行重新排序,并管理通过主机接口 16接收的主机命令队列。该管理器把主机命令装入命令队列,在这里对写入重新排序并加以结合,以便减少闪存写入。
[0192]RAID控制器50跨越SSD 364的几个通道写入新数据,并可以复制数据,以便提供冗余和数据恢复。
[0193]表管理器48跟踪贮存在每个逻辑块或页上的数据类型,以便临时文件、分页文件、FAT、FDB和用户数据文件一旦被该数据拆分管理器识别和分类,便对其进行跟踪。
[0194]S.M.A.R.T.功能39处理来自主机300的S.M.A.R.T.命令或售主命令,诸如监视和控制纠错、损耗、坏块及其他闪存存储器管理。S.M.A.R.T.代表Self-Monitoring,Analysis and Reporting Technology (自检测,分析和报告技术)。主机可以使用S.M.A.R.T.命令组来监视来自SSD器件的某些重要数据,诸如上电时间、损耗分级计数等。主机可以使用该数据来诊断和识别该SSD的寿命预期。它还可以使用该信息来根据该用法确定保证范围。主机可以在经历实际损坏之前更换SSD驱动器。在RAID中,主机可以使用
S.M.A.R.T.命令来避免比较昂贵的RAID 5配置。
[0195]事务管理器356保证该数据完全写入或传送到SSD 364。电源备份195提供备份电源,以便PCIe SEED SSD 200”可以在掉电时把持续模式数据从SSD ETL DRAM 368写入备份SSD 366 或 SSD 364。
[0196]图10是前端备份电源的示意图。来自供电线路的交流电网电源被功率整流器420整流,并用电容388和电阻392滤波,以便通过二极管394向电池组380充电。升压器422向DC-DC(直流-直流)逆变器372提供一个升压后的电压,当掉电检测器418检测到交流电网掉电时向功率开关382提供备份电源。否则,功率开关382把交流电网电源连接至主机375上的电源376。电源376可以提供各种各样的电压,诸如12v,5v和3.3v。来自备份电源419中的掉电检测器418的掉电信号也可以被引导到主机375。
[0197]图11表示主板上的内部电源树。一个12V主板电源经电容388和电阻392滤波,以便通过二极管394向电池组380充电。电池组380可以是一个电池组或超级电容,掉电时它通过电感396和齐纳二极管398提供本机备份电源。把来自电池组380的小于12V转换为恒定的12V输出的分步直-直转换器370通过晶体管390接收备份电源,并向电容402充电,以便调节向功率开关382提供的备份电源。滤波电容402对分步DC-DC转换器370输出进行滤波。
[0198]当功率开关信号PWR_SW有效时,功率开关382选择12V主板电源,但当掉电时选择备份电源。被功率开关382选定的该12V电源进一步被其他DC-DC转换器406,408,410,412,414,416改变,以便向涉及把DRAM备份至SSD方案的主板提供所需要的电力。
[0199]图12A-C突出NVM控制器用的隔离电源开关。图12A表示NVM控制器430,收到电源VNVMX和接地,和往来于CPU的不同的控制信号。DC-DC转换器406向NVM控制器70、开关60,62等提供不同的电压电平的电源。DC-DC转换器408,410,412为DRAM有关电源提供不同电压电平的电源。DC-DC转换器414,416根据SSD接口是何种类型而被选择,并提供不同电压电平的电源。
[0200]NVM控制器430向图12B,12C中的开关432,434产生开关控制(信号)SW_CTL。开关432,434在CPU和NVM输入信号之间进行选择,以便连接至DRAM或SSD。对于存储器模块的一个信道,在该实施例中,需要12个14位开关434,或需要单个集成160位开关432 (图12B)。
[0201]图13表示带有集成开关的NVM控制器。起图7中NVM控制器70作用的NVM控制器428具有起图7开关60,62的作用的集成开关426。内部NVM DRAM和SSD总线直接连接至集成开关426而不要求外部引腿。或者,NVM控制器428可以集成进CPU或芯片组。在那种情况下,它将简化PCB设计,并若CPU的其他部分可以在关断电源或失效持续模式的过程中切断电源,则降低对备份电源的要求。
[0202]图14A-B显示主机上DRAM持续模式用的掉电例程。参见图3A。当收到掉电中断和数据完整性位被置位时,步骤503,把处理器环境存入DRAM,步骤507,把一个指向所存数据的指针和长度存入IPDRAM 213。把CPU高速缓存冲洗至DRAM,步骤509,并使高速缓存失效。在IPDRAM建立一个所保存的数据的项目。
[0203]在DRAM建立恢复环境,步骤513,并建立一个恢复环境用的IPDRAM项目。然后,把IPDRAM内容写入SEED SSD 200的持续模式DRAM映像203,步骤515。
[0204]在图14B中,读出IPDRAM内容,从第一记录启动,步骤585。当第一字节是FF时,步骤575,则已经达到IPDRAM记录的末尾。在持续模式DRAM映像203中置位拷贝成功标志,步骤579。所拷贝的DRAM映像可以作为映像文件加以贮存,或者一个SSD分区至少与DRAM的尺寸匹配。
[0205]对于其他记录,步骤575,从下一个项目读出所指向的数据起始地址的指针及其长度,步骤577。从DRAM读出所指向的数据,写入持续模式DRAM映像203和利用售主命令存入SSD,步骤581。
[0206]图15A-B显示PCIe RAID控制器的DRAM持续模式用的掉电例程。当从主机电源输入用的电源监测器收到掉电中断时,把处理器环境存入DRAM,步骤564。把高速缓存冲洗至DRAM,步骤566并使之失效。
[0207]在DRAM中建立恢复环境,步骤568。在DRAM中把冲洗成功标志置位,步骤570。然后,把IPDRAM内容写入SSD,步骤572。由PCIe控制器保存IPDRAM。
[0208]在图15B中,读出IPDRAM内容,从第一记录启动,步骤584。当第一字节是FF时,步骤574,则已经达到IPDRAM的末尾。在DRAM中置位拷贝成功标志,步骤578。使耐久性RAID控制器的操作停止,步骤582。
[0209]对于其他记录,步骤574,从下一个项目读出所指向数据的起始地址的指针及其长度,步骤576。从DRAM读出所指向的数据并利用售主命令存入SSD,步骤580。
[0210]图16A-B显示主机上DRAM持续模式用的引导装入例程。参见图3A。收到引导装入初始化信号时,从SSD读出先前贮存的映像,步骤550。该映像是持续模式DRAM映像203。
[0211]读出IPDRAM内容,从第一记录启动,步骤552。当第一字节是OxFF时,步骤554,则已经达到IPDRAM的末尾。先前保存的全部DRAM内容装回它们在DRAM中原来的位置。控制跳至恢复环境,步骤558,由CPU执行。
[0212]对于其他记录,步骤556,从下一个项目读出所指向数据的起始地址的指针及其长度,步骤556。利用售主命令从SSD读出所指向的数据,然后在来自IPDRAM项目的指针的位置上写入DRAM,步骤560。
[0213]在图16B中,所保存的冲洗出去的高速缓存恢复至CPU内核层,步骤540,并利用它们的驱动器对全部外围设备进行初始化,步骤542。掉电时仍然有效的任何处理都使之失效或取消,步骤544。设置数据完整性标志,步骤546,CPU恢复正常运行,步骤548。该数据完整性标志用于:若在进到步骤546之前再次掉电,则避免不必要地写入持续模式映像。
[0214]图17A-B显示PCIe RAID控制器DRAM持续模式用的上电重新引导例程。参见图9。当PCIe RAID控制器收到上电中断信号时,全部下游SSD初始化,步骤586。读出持续模式DRAM映像并检查以前的“拷贝成功标志”是否成功。不成功时,步骤594,则在没有持续模式的情况下完成正常上电引导,步骤596。成功时,步骤594,从SSD,不是从备份SSD 366,就是从SSD 364,读出先前贮存的持续模式DRAM映像,步骤598。该映像是持续模式DRAM映像 203。
[0215]在图17B中,读出ITORAM内容,从第一记录启动,步骤592。当第一字节是OxFF时,步骤604,已经达到IPDRAM的末尾。控制跳至恢复环境,步骤608,由RAID控制器执行。恢复任何为耐久性RAID控制器保存的处理器环境,步骤590,并把保存的冲洗出去的高速缓存恢复到耐久性RAID控制器,步骤610。该耐久性RAID控制器恢复正常运行,步骤592。
[0216]对于其他记录,步骤604,从下一个项目读出所指向数据的起始地址指针及其长度,步骤606。利用售主命令从SSD读出所指向的数据,然后在来自IPDRAM项目的指针所指的位置上写入DRAM,步骤588。
[0217]图18A-B显示由本机SSD投入和执行的GND应用程序和GND驱动器。当用户执行该GND应用程序,和该程序没有重复时,步骤612,装入设置文件,步骤614。像掉电之前一样地安装同一 SSD器件时,步骤616,清除老RAM盘,步骤618。获得DRAM的尺寸,步骤620。
[0218]在图18B中,当RAM盘驱动器在运行存储器中仍未存在时,步骤622,安装RAM盘驱动器,步骤624。
[0219]启动CPU监测器,步骤626,把数据从SSD同步至RAM盘,步骤628。启用定时器,步骤630。初始化建立完成。
[0220]图19是GND驱动器维持其状态用的定期例程。当前一附图步骤630中为该定时器触发定时器中断时,在该主机上执行该例程。禁止该定时器,以避免该例程被再次调用,步骤632。当用户请求该程序退出,步骤634,而且RAM盘没有改变时,步骤636时,使GND驱动器退出。若从上次时间到之前RAM盘发生变化,步骤636,则把RAM盘中的无效数据冲洗至SSD,并在GND驱动器退出之前清除RAM盘数据,步骤644。
[0221]当用户不请求该程序退出时,步骤634,按照所符合的策略判据,把RAM盘数据的改变,诸如其数量大于一个阈值,诸如高速缓存的80%的无效数据更新至SSD,步骤638,或对于一段充分长的时间周期,诸如I小时的数据,或一个预定类别的数据,或者直至主机掉电的数据,都不同步至SSD。若需重新同步,则作出判决。当RAM盘需要重新同步时,步骤640,把无效数据冲洗至SSD,步骤646。启用计时器,以便检查下一个状态,步骤642。重新同步及其策略可以由用户选定。
[0222]图20A-B显示从USB器件投入和执行的GND应用程序和GND驱动器。当插入USB器件并执行自动运行,而且该程序没有由于再插入而重复时,步骤652,装入设置文件,步骤654。当同一个USB器件拔出以前被安装时,步骤656,清除老RAM盘,步骤658。获得DRAM的尺寸,步骤660。
[0223]在图20B中,当在运行存储器中仍不存在RAM盘驱动器时,步骤662,安装RAM盘驱动器,步骤664。
[0224]启动CPU监测器,步骤666,把数据从USB器件同步至RAM盘,步骤668。启用计时器,步骤660。
[0225]图21A-B是一个USB器件驱动器用的定期例程。当前一附图的步骤660的定时器触发定时器中断时,在该主机上执行该例程。禁止该定时器,以避免该例程被再次调用,步骤 672。
[0226]当用户不请求该程序退出,步骤674,而且USB器件被拔出时,步骤676,向该用户显示一个报警,(要求)把USB器件插回去,步骤678。否则,当正如在步骤638所指出的,RAM盘需要重新同步时,步骤680,把该无效数据冲洗到USB,步骤686。启用计时器,以便检查下一个状态,步骤682。
[0227]在图21B中,当用户请求该程序退出,步骤674,而且该RAM盘没有改变时,步骤688,则把DevEject例程拷贝到RAM盘,步骤702,然后利用DevEject命令使目标USB器件退出,步骤704。向用户显示以指出可以拔去USB器件,步骤706。持续显示该消息,直至用户拔去USB器件为止,步骤708。
[0228]RAM盘已经改变时,步骤688,把RAM盘中的无效数据冲洗到USB并清除RAM盘的数据,步骤684。在执行DevEject例程之前,步骤704,将其拷贝至RAM盘,步骤702。
[0229]图22A-B显示带有电池组,持续和正常掉电模式的笔记簿电源监测器的操作。当笔记簿接通,步骤710,而且电网电源维持接通时,步骤714,该电源监测器继续向笔记簿电池组充电,步骤716,该笔记簿正常操作,步骤718。
[0230]当笔记簿接通,步骤710,但是电网掉电,步骤714,该电池组电源电平尚未降低到第一阈值,1wl以下时,步骤720,然后当电网电源接通,步骤726时,电源监测器继续向笔记簿电池组充电,步骤716,而该笔记簿正常操作,步骤718。当电网电源掉电时,步骤726,该笔记簿电源监测器循环回到初始步骤。
[0231]当该笔记簿接通,步骤710,但电网掉电,步骤714,而且电池组电源电平低于1wl时,步骤720,显示一个报警消息,步骤722。当电池组电源电平降低到low2以下时,步骤724,在图22B中当掉电持续模式起作用时,步骤730,把持续模式用于掉电,步骤736。在CPU停止之前,步骤734,该例程等待DRAM拷贝至SSD,步骤738。
[0232]当掉电持续模式不起作用,步骤730,以掉电模式发生掉电时,步骤732,使CPU停止,步骤734。
[0233]在图22A中,当笔记簿关断时,步骤710,除该监视器和定时器电路的一小部分外,向处于休眠模式的SSD供电,并当该定时器到点,应该定期,诸如每周刷新其闪存存储器时,将其唤醒,步骤712。在图22B中,当电网电源接通时,步骤740,该电源监测器继续向笔记簿电池组充电,步骤742,而且该笔记簿电源监测器循环回到初始步骤。
[0234]图23A-B显示带有电池组备份,持续和正常掉电模式的台式机电源监测器的操作。当该台式机重新引导时,步骤750,而电网电源接通,步骤758,该电源监测器继续向该台式机的电池组充电,步骤760,而该台式机正常操作,步骤762,直至该台式机关断电源为止,步骤764。
[0235]当该台式机不重新引导,步骤750,但电网掉电时,步骤754,该台式机电源监测器循环回到初始步骤。当电网电源没有掉电时,步骤754,向SSD提供电力,以便刷新闪存存储器,步骤752。该电源继续向台式机电池组充电,步骤756,而该台式机电源监测器循环回到初始步骤。
[0236]当该台式机重新引导,步骤750,但电网掉电时,步骤758,则在图23B中把持续模式用于掉电,步骤776。在使CPU停止之前,步骤774,该例程等待DRAM拷贝至SSD,步骤778。
[0237]当该台式机断电,步骤764,而掉电持续模式起作用时,步骤770,把持续模式用于掉电,步骤776。在使CPU停止之前,步骤774,该例程等待DRAM拷贝至SSD,步骤778。
[0238]当掉电持续模式不起作用,步骤770,发生正常掉电时,步骤772,则使CPU停止,步骤 774。
[0239]图24A-B显示带有UPS备份、持续和正常掉电模式的服务器电源监测器的操作。当该服务器重新引导,步骤780,而且电网电源接通时,步骤788,则该电源监测器继续向服务器UPS电池组充电,步骤790,而该服务器正常操作,步骤792,直至该服务器断电,步骤794。
[0240]当服务器不重新引导,步骤780,但电网掉电时,步骤784,该服务器电源监测器循环回到初始步骤。当电网电源没有掉电时,步骤784,向SSD提供电力以刷新其闪存存储器,步骤782。该电源继续向该服务器电池组充电,步骤786,该服务器电源监测器循环回到初始步骤。
[0241]当该服务器重新引导,步骤780,但电网掉电时,步骤788,则在图24B中该服务器电池组向该服务器供电,步骤814。若该服务器电池组不低,步骤812,但电网电源已恢复,步骤810,则该例程循环回到图24A的步骤788。
[0242]当服务器电池组低时,步骤812,则把持续模式用于掉电,步骤806。在使CPU停止之前,步骤804,该例程等待DRAM拷贝至SSD,步骤808。
[0243]当服务器断电,步骤794,而掉电持续模式起作用时,步骤800,把持续模式用于掉电,步骤806。在使CPU停止之前,步骤804,该例程等待DRAM拷贝至SSD,步骤808。
[0244]当掉电持续模式不起作用,步骤800,以掉电模式发生正常掉电时,步骤802,使CPU停止,步骤804。
[0245]图25A-C显示带有电池组、持续和正常掉电模式的PCIe RAID控制器用的电源监测器例程。当PCIe RAID控制器具有来自主机300 PCIe接口的电网电源时,步骤828,则该电源监测器持续向本机电池组充电,步骤820,而PCIe RAID控制器正常操作,步骤822。
[0246]当到PCIe RAID控制器的供电线路掉电时,步骤824,则在图25B中当掉电持续模式起作用时,步骤830,把持续模式用于掉电,步骤836。在使PCIe RAID控制器停止之前,步骤834,该例程等待DRAM拷贝至SSD,步骤838。
[0247]当掉电持续模式不起作用,步骤830,以掉电模式发生正常掉电时,步骤832,使该PCIe RAID控制器停止,步骤834。
[0248]在图25C中,当电网电源掉电时,步骤828,用本机电池组向DRAM、SSD及其他涉及持续模式的组件供电,步骤840。把持续模式用于掉电,步骤846。把DRAM数据拷贝至SSD,步骤848,使PCIe RAID控制器停止,步骤844。用本机电池组向SSD供电,步骤842。一旦本机电池组掉电,步骤850,用SSD电容向SSD供电,步骤826。一旦这些SSD电容掉电,SSDDRAM中的数据丢失。
[0249]图26A-D显示涉及登录的例程。图26A是从SEED SSD中的DRAM高速缓存写入闪存存储器的登录流程图。当SEED SSD把来自SSD DRAM缓冲区的数据传送至与非闪存存储器时,start2键或标志写入登录分组表,步骤694。向闪存写入数据采取元页形式,步骤696。诸如分组、压缩等用的不同的元数据表,以及其他元数据从SSD DRAM缓冲区的有关ETL表区传输至闪存存储器,步骤698。把compd2标志登录进登录分组表,步骤695。当登录表写满时,步骤699,把该登录分组表写入闪存存储器,步骤697。“startl”标志登录数据向DRAM移动的开始,而“start2”登录数据写入闪存的开始,“Compd2”登录数据向闪存移动的完成,"abortI"登录该数据在同一 LBA上被新数据覆盖写入。
[0250]图26B是清除登录区的流程图。它在检查点登录插入之后执行。为检查选定序列号,步骤1536,将其与一个为清洗目的插入的检查点的序列号比较,步骤1538。当该序列号在该检查点的前面时,步骤1538,而为此序列登录了 Compd2标志,步骤1540,则清除涉及该序列号的全部登录项,步骤1544,因为该序列的数据已被成功地提交闪存存储器。当该序列具有已登录的abortl标志时,步骤1542,则清除涉及该序列号的全部登录项,因为原来的LBA数据已被DRAM中序列号较大的新数据覆盖写入,不再需要移向闪存存储器,步骤1544。当在该检查点之前没有剩余更多序列号要检查时,步骤1546,清除检查点的登录项,步骤1548。
[0251]图26C表示下次上电时在SSD上完成的异常掉电检查。为一个选定的序列号扫描登录项,步骤1550。当找到标志compd2,步骤1556,或标志abortl时,步骤1558,清除涉及该序列号的登录项,步骤1569,而若还有其他序列号,则选定其他序列号,步骤1552,重复该处理。
[0252]既找不到compd2,又找不到abortl标志,步骤1556,1558,但找到标志start2时,步骤1560,则读出该LBA的数据,并产生检查和,并与该登录的检查和比较,步骤1564。当该检查和匹配时,步骤1568,清除涉及该序列号的登录项,步骤1569,因为尽管异常掉电,该数据已被正确地写入。
[0253]当检查和发生不匹配,步骤1568,或找不到标志start2时,步骤1560,则在异常掉电过程中把涉及该序列LBA报告给主机,作为一次失败的数据写入,步骤1562。清除涉及该序列号的登录项,步骤1569,而若还剩余其他序列号,则选定其他序列号,步骤1552,并重
复该处理。
[0254]图26D表示主机下次上电时在该主机上完成的异常掉电检查。从SSD (步骤1562)接收失效数据写入及其LBA位置的清单,并将其读出,步骤1580,在该清单上选定一个失效的LBA,步骤1582。把该登录表上的业务号和该LBA对比,看它们是否相关,步骤1584。该LBA不相关时,步骤1586,可以选定该清单中其他的LBA,步骤1582。该LBA相关,步骤1586,而且找到compd标志时,步骤1588,则重做该业务。检查写入业务登录中的每个LBA,并以该登录中记录的新数值更新,步骤1592。找不到compd标志时,步骤1588,则复原该业务。检查该写入业务登录中的每个LBA,并以该登录中记录的老数值更新,步骤1590。当在该清单中还有更多失效的LBA时,步骤1594,则可以选定该清单上的其他LBA,步骤1582。
[0255]图27是当NVM控制器负责把持续模式DRAM映像存入其SSD和从其中取出时,在主机上执行的引导装入程序的示意图。在步骤530,主机300在上电引导时发送一个信号给NVM控制器,诸如图7的信号CPU_INIT。该NVM控制器从SSD装入恢复映像,而该主机控制器等待,步骤532。该主机等待NVM控制器发来成功或失效信号,诸如利用信号图7的SUCCESS/FAIL。该NVM控制器把恢复映像从它的DRAM拷贝至CPU的DRAM。根据SUCCESS/FAIL信号,该CPU可以读出恢复映像。当恢复映像被成功传输时,步骤534,则该主机CPU跳到恢复映像的恢复环境213,并在那里开始运行,步骤538。然后,如图16B所示,该处理继续。
[0256]当恢复映像装入失败时,步骤534,则由该主机执行正常默认非持续模式上电引导例程,步骤536。
[0257]图28A-B显示通过激活隔离开关,使NVM控制器取得对主板上的DRAM和SSD的控制,来备份IPDRAM所指向的数据。在以持续模式掉电过程中,该主机冲洗和准备处理器环境207、CPU高速缓存209和恢复环境213,然后发出冲洗完成信号,诸如通过激活图7的信号CPUJiALT至该NVM控制器。然后,NVM控制器通过向隔离开关60 (图7)激活开关控制信号SW_CTL,把CPU和芯片组与DRAM和SSD隔离。这些开关隔离DRAM和SSD总线以便供NVM控制器使用,步骤854。给CPU的电源掉电,但是NVM控制器激活电源开关控制信号PWR_SW_CTL,以便从超级电容或本机电池组取得电力,步骤856。该隔离电源区包括NVM控制器、DRAM和SSD,于是与CPU和芯片组吸取的电力相比,吸取较少电力。
[0258]NVM控制器读出IPDRAM的内容,步骤858,并利用售主命令针对上电重新引导信息把该IPDRAM的内容写入SSD,步骤860。
[0259]在图28B中,该NVM控制器读出该IPDRAM的内容,从第一记录启动,步骤884。当第一字节是OxFF时,步骤874,则已经达到该IPDRAM的末尾。在该SSD中置位拷贝成功标志,步骤878。然后,可以使NVM控制器停止操作。
[0260]对于其他记录,步骤874,从下一个项目读出指向数据起始地址的指针及其长度,步骤876。从DRAM读出所指向的数据并利用售主命令存入SSD,步骤880。
[0261]图29A-B突出GND驱动器初始化过程中的模式选择。在该主机引导的过程中当该GND驱动器初始化时,确定在上次掉电过程中所使用的供电模式。当该用户进行选择,步骤1204,但不使用持续模式时,步骤1206,则该GND驱动器把该模式设置为掉电模式,步骤1210。该恢复映像应该在SSD闪存存储器中。
[0262]使用持续模式,步骤1206,而且在上次掉电过程中备份电源可用时,步骤1202则该GND驱动器把该模式设置为持续模式,步骤1208。恢复映像应该在DRAM中可用。
[0263]使用持续模式,步骤1206,而且在上次掉电过程中备份电源不可用时,步骤1202,则该GND驱动器把该模式设置为修改的持续模式,步骤1211。由于可用电力少只有少量的DRAM被使用。DRAM中的恢复映像可能由于备份电源掉电而丢失。
[0264]当该用户在提示时不作选择,步骤1204,而且在上次掉电过程中备份电源可用时,步骤1205,则该GND驱动器把该模式设置为持续模式,步骤1208。恢复映像应该在DRAM中可用。在上次掉电过程中备份电源不可用时,步骤1205,则该GND驱动器把该模式设置为掉电模式,步骤1210。
[0265]图30A-C显示UPS或电池组备份可用时该GND驱动器用的掉电例程。电源监测器例程查询UPS或电池组的状态,步骤1212,诸如通过从电源读取交流电网状态(在线或离线),并从电源读取电池组标志,当电池组能量保持66%或更大时该标志可以指示高,而当剩余33%时指示低,当剩余5%时指示危急,指示充电,没有电池组存在等。
[0266]当该状态是交流离线时,步骤1214,从该电池组、UPS或其他电源获得该电池组状态,步骤1216。电池组容量高时,步骤1218,则关闭可以正常进行,如图30B所示。该登录库设置也可以针对正常关闭进行配置,步骤1220。否则,该GND驱动器连续地运行而且不关闭,但该GND驱动器关闭不必要的应用程序和业务,步骤1222,以便保存电池组电力。然后,该GND驱动器持续,诸如定期地监视电池组状态,步骤1216。
[0267]在图30B中,该电池组电平降低到关闭阈值以下,步骤1218,或该登录库配置成关闭GND驱动器,步骤1220。当持续(PRST)模式不起作用时,步骤1226,则设置该电力保存完成标志,步骤1230,并关闭全部程序,包括该GND驱动器,并关断该主机电源,步骤1236。
[0268]当持续模式起作用,步骤1226,而且数据完整性标志没有设置时,步骤1228,则把全部装置设定为DX状态,在这里各装置停止活动,并等待关断电源,步骤1232。关闭全部程序,包括该GND驱动器并关断该主机电源,步骤1236。
[0269]当持续模式起作用,步骤1226,而且数据完整性标志设置时,步骤1228,则所有其他装置都设定为DX状态,步骤1234。
[0270]在图30C中,该主机DRAM内容倒入非易失存贮器NVS文件,诸如持续模式DRAM映像203或带有SSD中映像的文件,步骤1240。把倒入成功标志写入该SSD,步骤1242,并使数据完整性标志复位,步骤1244。该SSD设定为DX状态,步骤1248。关闭所有程序,包括该GND驱动器,并关断该主机电源,步骤1246。
[0271]图31A-B显示当UPS或电池组备份可用时该GND驱动器用的上电重新引导例程。电源监测器例程查询UPS或电池组的状态,步骤1262,诸如通过从电源读取交流线路状态(在线或离线)。当该状态是交流在线时,步骤1264,从该电池组、UPS或其他电源获得该电池组状态,步骤1266。该电池组容量不低时,步骤1268,则在该主机上执行上电自检(POST)例程,步骤1270。装入初始的存储器映像并读出存储器映射,步骤1272。
[0272]在图31B中,倒入成功标志被设置时,步骤1276,则可以从SSD读出该SSD中的NVS文件,并装入主机DRAM,步骤1280。然后,该主机执行唤醒例程,步骤1288。设置该数据完整性标志,步骤1290,并为下次掉电使该倒入成功和上电安全完成标志复位,步骤1292。
[0273]当倒入成功标志没有被设置,步骤1276,但上电安全完成标志被设置时,步骤1278,则从SSD装入该OS (操作系统)映像,步骤1282,并可以执行唤醒例程,步骤1288,并完成以下步骤1290,1292
倒入成功标志没有设置,步骤1276,而且上电安全完成标志也没有设置时,步骤1278,则装入OS恢复程序,步骤1284,并装入OS恢复程序产生的恢复OS映像,步骤1286。然后执行唤醒例程,步骤1288,并完成以下步骤1290,1292。
[0274]图32A-E显示用户选择退出带有控制中的GND驱动器的视窗(windows)程序。在图32A中,当用户进行切换时,步骤1650,关闭全部用户对话,步骤1654。把高速缓存和缓冲区冲洗至SSD,步骤1658,该用户准备好进行新的用户切换,步骤1656。用户选择注销时,步骤1600,关闭全部用户对话,步骤1604。把高速缓存和缓冲区冲洗至SSD,步骤1608,并注销该用户,步骤1606。
[0275]在图32B中,当该用户选定锁定时,步骤1660,向该用户提示(输入)他的口令,步骤1664。锁定该系统,步骤1666。当用户选择休眠时,步骤1670,暂停全部用户对话,步骤1674。进入休眠模式,步骤1676。
[0276]在图32C中,当不激活休眠时,步骤1602,除该SSD外关闭全部用户对话,步骤1610。把高速缓存冲洗至SSD,步骤1612,并且不允许新的高速缓存。关闭全部用户模式应用程序,步骤1614,并关闭全部业务,步骤1616。继续在图32E中,关闭内核(程序),步骤1630,并关闭该SSD,步骤1636。重新引导标志设置时,步骤1640,则该系统重新引导,步骤1638,否则关闭该系统,步骤1642。
[0277]选定休眠时,步骤1602,则在图32D中继续处理。暂停全部应用,步骤1620。除该GND驱动器业务外暂停全部业务,步骤1622。查询全部装置,步骤1624,并用售主命令通知该SSD准备暂停,步骤1626。除该SSD外暂停全部装置,步骤1628。把休眠文件写入该SSD,步骤1632。该SSD暂停操作,步骤1634,并进入休眠,步骤1644。
[0278]图33A-B显示GND驱动器参数初始化程序。当该SSD不是已知类型时,步骤1702,则利用几个预定的测试来测试所连接的SSD,步骤1704。分析研究该测试结果并优化参数,步骤1706。
[0279]该SSD是已知类型时,步骤1702,则查询该SSD,步骤1708。该SSD是标准类型时,步骤1710,从该SSD获得标准SSD的ID (识别符),步骤1712。为标准SSD选定匹配该标准SSD的ID的参数,包括该SSD分区对齐方式的调整,步骤1714。利用向该SSD发送的售主命令来禁止由GND驱动器100完成的某些重复的功能,诸如压缩、加密、数据拆分,步骤1720。
[0280]该SSD不是标准类型时,步骤1710,向该SSD发送售主命令,以便取得有关所连接的SSD的不同的信息,诸如信道号、闪存存储器ID(识别每个闪存存储器的容量、页大小、块大小、面、SLC/MLC/TLC),DRAM大小、固件版本等,步骤1716。针对该SSD优化诸如元页大小等参数,以便优化性能,它包括SSD分区对齐方式的调整,步骤1718。向该SSD发送售主命令来禁止在不同的层次上完成的某些重复的功能,诸如压缩、加密和数据拆分,步骤1720。[0281 ] 针对SSD分区对齐方式,把SSD分为由多个页组成的块,和每个闪存块在重写之前必须被完全删除。若该SSD控制器由于分区不对齐而不得不执行不必要的块删除操作,则写入速度将大受影响。适当的分区对齐方式是最关键的属性之一,它可以大大提升SSD的I/O性能和由于减少读-修改-写操作而延长其预期寿命。
[0282]事实上,为了达到最好性能,该分区偏移量应该与多个与非页面大小(一般为8KB)、与非删除块大小(一般为2MB)和文件分配单元(在NTFS中默认簇大小4KB)对齐。
[0283]下面介绍本发明涉及的绿色与非器件(GND)驱动器。
[0284]总体上,当电源掉电时,具有持续模式的GND驱动器需要电池组电源备份。当电源异常掉电或被该用户的选择关闭时,它将被激活。关断电源或失效时,CPU状态、高速缓存和恢复例程将首先被存入DRAM,然后把DRAM的内容存入SSD。上电重新引导时,重新把以前的DRAM内容从SSD装入DRAM。在这个模式下,和正常运行时,全部GND驱动器功能都未被启动。
[0285]对于耐久性加持续模式,在正常运行过程中,启动某些GND驱动器。该GND驱动器将在该主机和SSD之间对数据读写进行加密/解密。另外,它还对该主机和SSD之间的数据读写完成压缩/解压另外,它对从主机向SSD的写入数据进行去复份。
[0286]数据管理器的数据分解器把数据分成不同的类型,诸如用户数据、元数据、分页和临时。每种类型的数据都有它自己的写高速缓存和元页分组。它将部分页面数据在发送至SSD之前组合成元页,并对从SSD至主机的元页数据进行解分组。对于诸如服务器等环境,可以禁止数据管理器的数据分解器。
[0287]ITORAM可以用来识别DRAM数据选定的部分,以便把该数据从DRAM存入CPU控制的SSD。对于性能加持续模式,可以完全启用写高速缓存和RAM盘功能。
[0288]电源掉电时具有掉电模式的绿色与非器件驱动器可以没有电池组电源备份。当电源异常掉电或被用户选择关闭时,它将被激活。在正常运行过程中,全部GND驱动器功能未被启用。若意想不到地发生掉电而且不存在电池组备份电源,则仍然在DRAM中处理的写入数据将丢失。对于该耐久性加掉电模式,该备份电源可能不可用,诸如对于台式PC机。该GND驱动器将利用该主机DRAM有限的一部分。正常运行时,GND驱动器将对该主机和SSD之间读写的数据进行加密/解密。另外,它还完成该主机和SSD之间读写数据的压缩/解压。另外,它对从主机写入SSD的数据进行去复份。
[0289]该数据管理器的数据分解器把该数据分成不同的类型,诸如用户数据、元数据,分页和临时。每一种类型的数据将具有它自己的写高速缓存和元页分组。它在部分页面数据发送至该SSD之前将其组合到元页,并对从SSD送往主机的元页数据进行解分组。ITORAM可以用来识别DRAM数据的选定部分,以便把来自DRAM的数据存入受控于CPU的SSD。RAM盘可以用来改善临时数据的性能,诸如暂时性互联网,可以在意外掉电时使用。
[0290]在备份电源可用的环境下,诸如笔记簿、便携式装置或智能电话,可以使用性能加掉电模式。正常运行时可以使用写高速缓存和RAM盘。上述六种方式可以使用事务管理器来保证数据完全写入或传送到该SSD。这六种模式也可以使用设置,诸如索引、搜索索引、清除碎片、主机休眠、预取指、超级取指、写高速缓存和写高速缓存缓冲区冲洗,以便优化该系统,以达到最佳的耐久性和性能结果。另外,该GND驱动器还可以集成到OS和BIOS环境中并使该系统更健壮。
[0291]替代的实施例
本发明人设想了几个其他实施例。例如,可以使用许多电源、电池组、超级电容等类型并进行不同的组合。可以用各种各样的方法实现隔离开关。在主板上可以有一个以上的隔离电源区。
[0292]尽管上面已经描述了把写满的元页移到该SEED、SSD或闪存,但也可以在完全写满之前移动几乎写满的元页。因而,写满可以指在某个写满阈值内,诸如元页大小减去512字节。
[0293]可能采用数据类型位及其他状态字段、指针等的许多编码。数据类型状态位不必是一个项目内的第一位。登记项可以链接到其他表中的登记项,诸如具有一个分立的表,用于标记或有效位。临时文件可以有各种各样的扩展名,而新的扩展名可以被加到搜索清单中。由众所周知的程序,诸如字处理器和互联网浏览程序建立的临时文件具有众所周知的文件扩展名,但任何时候都可以增加附加的扩展名。这些附加文件扩展名可以通过固件更新至SEED和SSD驱动器用的控件软件,用软件更新到SSD应用程序180和VMD驱动器100。
[0294]ETL每个部分所使用的DRAM缓冲区的尺寸可以由该SSD控制器的固件固定。另外,ETL的每个部分还可以由控制器固件自动地或手工根据用法或用户的喜好动态地调整。由于DRAM缓冲区的大小有限,不能在其中同时容纳ETL的全部功能。不同的ETL功能可以与实际的工作环境相适应。该控制器可以调整每个ETL所使用的尺寸,以便优化DRAM缓冲区。适应性调整可以根据该器件所使用的模式定期完成。
[0295]对于TLC闪存器件,DRAM缓冲区可以用诸如相变化存储器(PCM)、铁电随机存取存储器(FRAM)、磁阻 RAM(MRAM) ,Memristor, PRAM,电阻式 RAM(RRAM)、Racetrack 存储器和纳米RAM(NRAM)等NVRAM代替。NVRAM的优点是全部ETL支持的表等可以保持在NVRAM中(不必放在闪存存储器中)及以其他闪存存储器为目的地的数据(诸如数据写高速缓存等),甚至在关断电源时仍能维持,于是甚至当电源突然关闭时也不再需要备份电源电路。tmp(临时)等和映射表,和读高速缓存和映射表可以在掉电或下次上电初始化时任选地弃置。除MLC外,NVRAM的缺点是成本高。对于MLC,缺点是速度缓慢和写入/删除次数有限。MLC可以通过分配TLC只具有强页编程的一部分从TLC衍生。一些ETL功能可以在SEED SSD 200中的SRAM中实现。
[0296]在TLC闪存器件中,DRAM缓冲区也可以用诸如DRAM+SRAM,DRAM+MLC、DRAM+PCRAM或DRAM+MRAM的组合代替。当使用DRAM缓冲区的组合,诸如DRAM+MLC时,ETL支持的功能在DRAM中管理,但是它们的某些存入MLC。最后可以弃置DRAM缓冲区中的一些数据,诸如电源关断时不移到MLC的临时数据和映射表,和读高速缓存和映射表。当电源关断时需要保持的表和数据,诸如块删除计数表、页面状态表、S.M.A.R.T.数据收集器等,当电源突然关闭时需要贮存至MLC。拷贝至MLC比拷贝到TLC闪存存储器快。在服务器应用的情况下,临时数据和映射表,和读高速缓存和映射表不能弃置;当电源突然关闭时那些区域将利用电源备份存入MLC。另一个途径是确保DRAM的ETL中有意义的数据拷入MLC。在关断电源的情况下,数据中的有效拷贝可以保持在MLC中。上电时,ETL中的数据可以从MLC装回DRAM0该拷贝方法可以通过记录较小的差异进行修改,这将减少数据拷贝次数,并因此减少写入MLC的次数。
[0297]DRAM和MLC或DRAM和SLC不必使用不同类型的闪存存储器196,342,诸如SLC、MLC、TLC、QLC、PLC、3DNAND等。反而,该MLC可以通过分配TLC只具有强页编程的一部分从TLC衍生。该SLC可以通过分配MLC、TLC、QLC、PLC等中只有强页编程的一部分,由MLC、TLC,QLC,PLC等衍生。例如,增强TLC闪存可以通过利用诸如用作SLC(强页面)的TLC的1/4和TLC的提醒物(弱页面)配置成SLC (带有强页)的一部分实现。或TLC的一部分配置成MLC (强页面),而提醒物配置成TLC (弱页面)。另外,编程/删除管理器41 (图14)可以减慢页面写和块删除时间,以帮助延长该闪存单元氧化物层的寿命。较慢页面写/块删除时间可以应用于增强TLC闪存,以便以减少保持时间为代价增大耐久性。利用刷新管理器202可以延长保持时间。由于该增强TLC闪存包括SLC(强页面)和TLC(弱页面)和带有不同保持时间,刷新管理器202可以跟踪块作为SLC(强页面)或TLC(弱页面)的用法,然后相应地调整刷新时间。作为另一方案,增强TLC闪存可以用配置成SLC(强页面)用法的TLC 一部分,诸如用作SLC(强页面)的TLC的1/4实现。类似地,MLC可以用作SLC(强页面)/MLC (弱页面)的组合,而QLC可以用作诸如SLC (强页面)/QLC (弱页面)、MLC (强页面)/QLC (强页面)、TLC (强页面)/QLC (强页面)的组合或SLC/MLC/TLC/QLC的任何结合。作为另一方案,MLC可以用作SLC(强页面)等。另外,上述功能也可以在SEED SSD 200中实现。
[0298]这里描述的耐久性技术试图解决与非闪存存储器的耐久性问题。有几种非易失存储器,诸如MRAM、PCM、RRAM、Memristors, NRAM等,它们利用竞争技术来代替与非闪存存储器。
[0299]超级耐久闪存驱动器可以与硬盘驱动器(HDD)结合,带有作为高速缓存的超级耐久闪存驱动器和作为存储器的HDD。超级耐久闪存驱动器具有高的耐久性,而且是比高速缓存更适用。可以为该混合器件改善总体性能。确保DRAM的ETL中有意义的数据的另一个途径是拷贝至HDD。在关断电源的情况下,ETL中数据的有效拷贝可以保存在HDD中。上电时,ETL中的那些数据可以从HDD装回DRAM。该拷贝方法可以通过记录较小的差异修改,这将减少拷贝数据的数量,并因此减少至HDD的写入。
[0300]OS的引导映像可以是预先装入DRAM缓冲区,以加速主机上电引导。一旦上电引导过程结束,便释放DRAM缓冲区,供随后的正常运行使用。该主机进入休眠模式或待机模式时,无效的DRAM缓冲区可以写入闪存存储器。当该主机的用户注销时,该无效的DRAM缓冲区可以写入闪存存储器。
[0301]写数据的分组不限于以一页作为一个单元。数据可以分组进入一个较大的单元,诸如多页(元页)和整块等。
[0302]尽管已经把主机访问的数据类型分类描述为来自该主机的逻辑地址与一个或多个地址范围的比较,但这个比较可以只把逻辑地址的一部分与代表该地址范围的范围加以比较。另外,数据类型可以通过针对某种形式,诸如FAT形式或FDB形式,分析主机写数据进行识别。另外,早期主机按顺序写入可以针对其数据格式进行检查。该FAT文件系统已经用作示例。FDB/FAT是FAT文件系统的元数据。其他文件系统,诸如LINUX、Apple OS和Android等都有它们自己的元数据,带有不同的名字,但却等效。
[0303]每个块都可以分为多页区。例如,一个块可以有16页和4个区,每个区4页。在这替代的实施方案中,一些映射可以针对区而不是针对单个的页或块作为另一方案,在一种特殊情况下可以每区有一页。采用区模式比采用页模式需要较少的映射登记项,因为每个区有多个页。
[0304]来自该主机的逻辑扇区地址(LSA)的高几位可以选择簇或区。映射表中的全部登记项都可以针对同一区。当来自LSA的该区号与映射表中所有登记项的区号匹配时,该来自LSA的LBA选择映射表的一项。也可以使用混合或多级映射表。因为针对FAT1/2,LBA的范围是已知的,所以表内容数据类型位“100”可以省略。The映射表可以具有块或页的粒度。
[0305]拷贝块来重定位较不常采用页映射,因为在页模式下比在块模式下较少违反非SLC闪存的顺序写入规则。这增强该闪存系统的耐久性并提高性能。
[0306]该映射表可以位于扩展地址空间,并可以使用大于用户地址空间最大地址的虚拟地址或非法地址。页可以保留主机内的页顺序,或者可以重映射至任何页位置。在另一个实施例中,诸如针对数据中心应用,分页和临时文件可以作为正常用户数据处理,以简化控制器操作,但以闪存的耐久性为代价。利用DRAM缓冲区而不是闪存存储器作为耐久性备用/交换缓冲区,该耐久性备用/交换区域可以提供扩展的超量配置。关断电源时,需要备份电源来把备用/交换数据写入闪存。该备份电源可以是电容、超级电容、电池组或UPS。在主机已经提供压缩功能的情况下可以任选地关闭压缩功能。在其他实施例中,该控制器可以把分页文件作为用户数据文件处理,以简化控制器功能。
[0307]对这些框图可以作许多改动。诸如EEPROM等ROM可以连接到一个控制器或其一部分,和针对虚拟存储处理器被专用于贮存固件。该固件还可以存入主闪存模块。主机接口总线可以是串行AT附加(SATA)总线、外围组件快速互联(PCIe)总线、紧凑闪存(CF)总线或万用串行总线(USB)、NVMe、固件(Firewire) 1394总线、光纤信道(FC)总线、不同的以太网总线等。SCFD可以只包括SLC或MLC闪存,或可以结合SLC/MLC闪存。
[0308]闪存存储器可以嵌入主板或SSD电路板或可以处于分立模块上。可以增加电容、缓冲区、电阻及其他组件。该控制器可以集成在主板上或在一个分立的电路板或模块上。闪存存储器可以与该控制器或与粗与非闪存存储器芯片集成在一起,作为单芯片器件或插入模块或电路板。
[0309]利用多级控制器,诸如控制器的总统—州长配置(president-governorarrangement)、对于损耗分级、坏块管理、再映射、高速缓存、电源管理等,SEED中的控制器可以比单级控制所要求的简单一些。在该控制器中可以使用成本较低的硬件,诸如利用8051处理器作控制器或虚拟存储处理器或事务管理器,而不是功能更强大的处理器,诸如先进RISC机器ARM-9 CPU内核。针对某些应用,可以考虑功能更强大的处理器。
[0310]不同数目和安排的闪存存储块可以连接至该SEED。与其使用一个LBA存储总线接口或差分串行分组总线,还不如使用其他串行总线,诸如同步双数据速率(DDR)、0NF1、切换与非、差分串行分组数据总线、传统的闪存接口等。
[0311]模式逻辑可以只在上电时检测一个引腿的状态,而不是检测一个专用引腿的状态。引腿状态的某种结合或状态序列可以用来初始化一个模式改变,或内部寄存器,诸如配置登录可以设置该模式。多总线协议芯片可以有一个附加的个性化引腿,用来选择使用哪一种串行总线接口,或可以具有可编程寄存器,把模式设置为集线器或开关模式。[0312]可以以各种各样的方法实现事务管理器、控制器、处理和功能。功能和处理可以用(PU或其他处理器编程和执行,或可以用专用硬件、固件或某些结合实现。可以代替该功能的许多分区。该SEED控制器可以是硬件或,或者可以包括固件或软件或其结合。
[0313]使用奇偶校验/ECC带有多个闪存通道,和把数据段剝成多个NVM块,大大改善总体系统的可靠性。例如,第九闪存芯片可以与闪存存储器接口一起使用。其他八个芯片的奇偶位写入第九闪存芯片,以便在八个闪存芯片之一遭到致命的读出差错时,为数据提供额外的保护。但是,可能要求CPU引擎与DDR/SDRAM高速缓存一起使用,以便满足复杂的ECC/奇偶计算和生成的计算能力要求。其他好处是,即使一个闪存块或闪存模块损坏,数据仍旧可以复原,或该SEED可以初始化“故障恢复”或“自动重建”处理,来插入一个新的闪存模块,并恢复或重建该“丢失”或“损坏”的数据。系统的总体容错得以显著改善。
[0314]通过把电子注入闪存单元的浮动栅极可以将其编程。闪存存储器控制页面写入时的电子注入,使得它停留的两个基准电压电平内。该与非闪存结构的位线连接到一串32个单元,而每个单元还连接到32条不同的字线。一个单元写入数据之后,对相邻单元的读和写都将导致对该单元的干扰。该干扰将向该单元的浮动栅极注入电子或由其中去除。另外,长的时间周期将影响该单元浮动栅极上的电子数目。由于浮动栅极上电子数量的改变,于是当读出时输出电压电平将偏移。若输出电压电平的偏移跨越基准电压边界,则读出结果将是错的。
[0315]加宽或收窄数据总线,而闪存芯片可以用诸如带有16或32位数据通道代替。替代的总线体系结构带有叠垒或分段总线可以在SEED的内部或外部使用。可以在该SEED内使用两个或多个内部总线以增大处理量。更复杂的开关组织可以代替内部或外部总线。
[0316]可以用各种各样的方法完成数据剥离,诸如可以用奇偶位和纠错码(ECC)。分组重新排序可以根据数据安排加以调整,用以避免针对重叠存储位置重新排序。该SEED可以与其他组件集成在一起,或者可以是一个独立的芯片。
[0317]可以增加附加的流水线或临时缓冲区和先进先出(FIFO)堆栈。可以在每个信道中设置单独的页缓冲区。可以增加时钟源。
[0318]单一封装、单一芯片或多芯片封装可以包含闪存存储器和/或SEED或SSD的多个通道中的一个或多个。本发明不限于SCFD的用法。SCFD可以是用任何类型的带有非易失性闪存存储器的非易失性器件和控制器代替。
[0319]基于MLC的闪存器件可以具有四个MLC闪存芯片,带有两个并行数据通道,但也可以用不同的组合来形成其他闪存模块,例如,四个,八个或更多数据通道,或八个,16个或更多MLC芯片。该闪存器件和通道可以接成链、分支或阵列。例如,4个闪存器件的分支对于该SEED可以连接成一条链。可以把聚集或分区方案的其他尺寸用于对该存储器的不同的访问。
[0320]主机可以台式PC机主板或其他PC平台,诸如服务器、笔记簿、网络本(Netbook)、平板输入器、智能电话、移动通信装置、个人数字助理(PDA)、数字摄像机、生产工具或测试器、结合器装置或其他装置。主机总线或主机装置接口可以是SATA、PCIE、雷电(Thunderbolt)、SD、USB、NVMe、eMMC、iSSD或其他主机总线,而闪存模块的内部总线可以是PATA ;利用多个SD/MMC的多通道SSD、紧凑闪存(CF) ,USB或其他并行接口。闪存模块可以是标准PCB或可以是多芯片模块封装在TSOP,BGA, LGA, COB, PIP, SIP, CSP, POP上或多芯片封装(MCP)和可以包括粗与非(raw-NAND)闪存存储器芯片或粗与非闪存存储器芯片可以是在分立的闪存芯片中,或其他类型NVMNVM,诸如双稳电路、ONFI, eMMC、iSSD,3D NAND。SEED SSD可以使用带有RAID的eMMC,而eMMC可以使用SEED结构。内部总线可以完全或部分地共享或可以是单独的总线。SSD系统可以使用带有其他组件,诸如LED指示器、电容、电阻等的印刷电路板。可以在一级或多级上增加电源管理。该SEED SSD可以与或不与VMD驱动器一起工作。PCIe RAID DRAM高速缓存卡可以包含一个VMD驱动器和多个SEED结构化 SSD。
[0321]方向术语,诸如上面、下面、向上、向下、顶部、底部等是相对的和随着系统或数据旋转可变的,翻转过来等。这些术语针对描述器件是有用的,但不想绝对化。
[0322]NVM闪存存储器可以在闪存模块中,后者可以有一个封装在一个单一的芯片封装中的控制器和闪存片芯,它们不是可以集成在PCBA上,就是直接在主板上,以便进一步简化装配、降低制造成本和减少总厚度。另外,闪存芯片还可以与其他实施例配合使用,包括开放巾贞卡(open frame card)。
[0323]与其使用一个只用于闪存存储的控制器,还不如可以增加一些附加的特征。例如,音乐播放器可以包括一个从存入闪存存储器的MP3数据播放音频用的控制器。可以把一个音频插口加到该装置上,以便允许用户插入耳机来倾听音乐。可以把诸如蓝牙发送器等无线发送器加到该装置上,以便连接至无线耳机,而不用音频插口。也可以增加诸如IrDA用的红外发送器。还可以增加蓝牙无线电收发两用机至无线鼠标、PDA、键盘、打印机、数字摄像机、MP3播放器或其他无线电装置上。该蓝牙无线电收发两用机可以代替该连接器,作为初级连接器。蓝牙适配器器件可以具有连接器、RF(射频)无线电收发两用机、基带控制器、天线、闪存存储器(EEPROM)、电压调节器、晶体、LED (发光二极管)、电阻、电容和电感。这些组件可以在包入塑料或金属罩之前设置在PCB上。
[0324]数据的尺寸,诸如扇区、页、块可以多样化。一个扇区可以有512字节,一页可以有16个扇区,而一块可以有128页,正如许多实施例中的一个。
[0325]作为另一方案,ETL中的写数据可以用闪存控制器打包和一对一地登录到数据写高速缓存,作为一个页单元。增加报头,以显示该数据与主机LBA的关系。单独打包的表把来自该主机的LBA映射到数据写高速缓存元页单元中数据和报头位置的偏移量。该数据写高速缓存的尺寸可以有两个以上元页单元的容量。当该数据写高速缓存写满或消逝的时间已到时,一个选定的元页单元将从该数据写高速缓存移至闪存存储器。该打包的表把来自该主机的LBA映射到数据和报头在该闪存存储器元页单元中位置的偏移量。在覆盖写入来自主机的老数据时,若该打包的数据仍在数据写高速缓存中,则可以通过上移该打包数据加以弃置,把老旧数据附后写入数据写高速缓存,并更新该打包的表。否则,若该打包的数据是在闪存存储器中,则把新的和老的数据加以比较,并产生差异(delta)数据,以显示该差异。该差异数据及其报头将附在该数据写高速缓存后面。该新的报头还将包括以前的老旧数据的位置。该打包的表将把该LBA映射到差异数据位置。
[0326]发明背景段落可以包含有关本发明的问题或环境的背景信息,而不是通过其他来描述先有技术。因而包括在该背景材料段落中的材料不是由 申请人:承认先有技术。
[0327]这里描述的任何方法或处理是机器实现的或计算机实现的,而且是想要由机器、计算机或其他器件完成,而不是想要在没有这样的机器辅助的情况下完全用人完成。所产生的实际的结果可以包括报告或其他机器在显示装置,诸如计算机监视器、投影装置、音频产生装置和有关多媒体装置上产生的显示,并可以包括也是由机器产生的打印的硬拷贝。其他机器的计算机控制是其他实际结果。
[0328]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属【技术领域】的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
[0329]尽管本文较多地使用了相关计算机术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
【权利要求】
1.一种具有绿能数据持续模式的器件驱动器,其特征在于,包括: 一持续处理器映像发生器:当持续模式掉电例程被激活,用以产生主机处理器映像时,该持续处理器映像发生器把来自主机处理器状态和来自处理器高速缓存存储器的数据拷贝到易失存储器; 一持续恢复映像:当持续模式掉电例程被激活时,存储在该易失存储器中的恢复映像; 一持续映像发生器:当持续模式掉电例程被激活时,把来自主机易失存储器的数据拷贝到闪存存储器中;以产生持续恢复映像; 其中: 当电源充足时,持续模式被激活和执行;能够用于激活和执行持续模式;所述激活是指持续模式掉电例程被激活; 一恢复映像加载器:在掉电后,当持续模式例程再次被激活时,从闪存存储器把该持续恢复映像读到主机易失存储器,并从该易失存储器执行该持续恢复映像,以恢复主机处理器映像。
2.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一持续模式电源/电池组监视器:当检测出掉电时,它从备份电源读出电源状态线,并为电池组读出电池组状态; 一掉电例程模块,当该电池组状态指出电力低于一个阈值并表明掉电时,掉电例程模块被激活并启动掉电例程。
3.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一持续模式写高速缓存,用以把主机写入数据存入一个动态随机访问存储器。
4.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一持续模式RAM盘:用以把数据存入一个动态随机访问存储器。
5.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一用户接口:用以接收用户选择,当用户选择禁止持续模式时,启用该掉电例程并禁止持续模式例程; 持续模式例程能正常使用时被使用者disable掉,在那状况下,掉电时持续模式例程不会被激活。
6.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一分组引擎:用以把存于数据写高速缓存的数据分组进入元页。
7.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一持续模式模块:具有一组策略,用以触发无效数据从该易失存储器中的高速缓存写入该闪存存储器;其中该组策略包括高速缓存中的阈值电平无效数据、时间周期、由该用户指定的特殊数据类型或写满的高速缓存。
8.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一高层文件过滤器驱动器:用以在主机上执行,以便拦截向闪存驱动器的高层主机写A ; 一低层文件过滤器驱动器:用以在主机上执行,拦截低层文件系统主机写入到闪存驱动器,并把该低层文件系统主机写入发送到数据拆分管理器,以便对主机写入数据进行分类。
9.根据权利要求8所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一加密引擎:耦合来接收被拦截的高层主机写入,以便生成加密数据。
10.根据权利要求8所述的一种具有绿能数据持续模式的器件驱动器,还包括: 一压缩引擎:耦合来接收被拦截的高层主机写入,以便生成压缩数据和加压映射表。
11.根据权利要求8所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一去冗余引擎:耦合来接收被拦截的高层主机写入,以便生成无冗余映射表。
12.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一事务管理器:用于事件登录,指示数据写入闪存存储器的开始和完成; 一据恢复管理器:用以读出由该事务管理器登录的事件,以便在电源恢复之后撤销或重做向闪存存储器的写入。
13.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一配置设置管理器:用来改变设置,以改善闪存耐久性和性能,该设置包括驱动索引、搜索索引、页面文件大小、系统恢复、休眠、写高速缓存、预取指、超级取指、资源回收箱大小、登录、可靠性监视器、和RAM盘中的至少一个设置或多个设置。
14.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,所述的持续恢复映像还包括: 一处理器间DRAM:受该主机处理器控制,它保存一个不同的数据类型在易失存储器的开始位置及其长度清单; 一个标志模块:指示在该易失存储器特定的数据类型需要包括进持续恢复映像中。
15.根据权利要求2所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一电源/电池组监视器:该电源/电池组监视器从备份电源读出电源状态线,并当电源状态线指出掉电时,激活掉电例程。
16.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一文件类型标识符:用以为该GND驱动器接收的主机写入并生成数据类型;一数据拆分管理器:根据该文件类型标识符产生的数据类型,对主机写数据进行分类; 一数据写高速缓存:用以贮存具有一个用户数据类型的主机写入数据; 一元数据高速缓存:用以贮存具有元数据数据类型的主机写入数据; 一分页高速缓存:用以贮存具有分页文件数据类型的主机写入数据; 一临时高速缓存:用以贮存具有临时数据类型的主机写入数据。
17.根据权利要求1所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一用户选定的关闭监视器:用于监视用户所选定的关闭类型; 一开关用户选择例程模块:用于暂停当前的用户对话,并从易失存储器把高速缓存和缓冲区冲洗至SSD ; 一注销选择例程模块:用于暂停全部用户对话,并把高速缓存和缓冲区从该易失存储器冲洗至SSD ; 一锁定选择例程模块:用于为口令输入显示一个屏幕并等待用户输入口令来恢复; 一重新启动选择例程模块:用于关掉用户定义的 除关键系统业务外的其他全部应用,然后重新引导系统; 一静止选择例程模块:用于使该主机处于低电力状态,但是不处于关闭状态; 一休眠选择例程模块:用于暂停除该SSD外的全部应用、以及暂停全部业务和装置;其中把一个休眠映像写入该SSD,然后暂停该SSD ;和把一个休眠映像写入该SSD,然后暂停该SSD ;和一关闭选择例程模块:用于暂停全部对话、应用和装置。
18.权利要求1的所述的一种具有绿能数据持续模式的器件驱动器,其特征在于,还包括: 一持续模式RAM盘,用以把数据存入动态随机访问存储器。
19.一种带有掉电模式的无需要安装驱动的闪存驱动器,其特征在于,包括: 一分组引擎:用以对存入元页的数据进行分组; 一处理模块:当激活掉电模式例程时被激活;并且该处理模块暂停全部应用、业务和装置; 其中电源掉电时主机易失存储器中的全部数据丢失; 一恢复映像装入器,当上次掉电时上次激活掉电模式例程时,该恢复映像装入器把引导映像从闪存存储器读到该主机易失存储器,并从该主机易失存储器执行该引导映像,以便将其存入主机处理器映像。
20.根据权利要求19所述的一种带有掉电模式的无需要安装驱动的闪存驱动器,其特征在于,还包括: 一加密引擎:用于耦合接收被拦截的高层主机写入数据,以便生成加密数据。
21.根据权利要求19所述的一种带有掉电模式的无需要安装驱动的闪存驱动器,其特征在于,还包括: 一压缩引擎,用于耦合接收被拦截的高层主机写入数据,以便生成压缩数据和压缩映射表。
22.—种带有与SSD匹配的方案的绿色与非器件驱动器,其特征在于,包括: 一分组引擎,用以把数据分组进入元页; 根据SSD不同的结构管理不同尺寸元页的多个方案,用以增强该SSD的性能和耐久性; 与该SSD的通信协议; 一参数选择器,用以选择参数,包括元页大小参数,当SSD提供标准SSD ID时,该参数选择器为标准SSD选择标准参数,当该SSD不提供标准SSD ID时,该参数选择器为该SSD选择优化参数,并提供该SSD的硬件结构和功能能力的信息。
23.根据权利要求22所述的一种带有与SSD匹配的方案的绿色与非器件驱动器,其特征在于,还包括: 一参数测试器:用以执行一组预定的测试,以便利用测试参数来测试该SSD,并根据测试结果为该SSD选择参数。
24.根据权利要求22所述的一种带有与SSD匹配的方案的绿色与非器件驱动器,还包 括: 一分区对齐引擎:用以设置分区偏移量,以便与多个与非页大小和与非删除块大小和文件分配单元簇的大小对齐。
25.一种带有权利要求19所述的绿色与非器件驱动器的超级增强耐久性SSD,包括: 一主机接口,用以从主机GND驱动器接收主机读出和主机写入:带有加密、压缩、元页分组的能力; 一控制器:用以响应由该主机接口接收的主机读和主机写:控制对闪存存储器和对SEED DRAM缓冲区的访问,该控制器把主机数据写至该SEED DRAM缓冲区; 一 SEED动态随机存取存储器缓冲区:用以贮存主机耐久性平移层;和 一闪存接口:用以访问闪存存储器或闪存存储器件。
26.根据权利要求25所述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括: 一纠错码管理器:用以生成ECC码,以便附在写入该闪存存储器的分组元页后面; 一坏页管理器:用以跟踪该闪存存储器的坏页; 一损耗分级器:用以向删除计数低的闪存存储器的空块指定新的数据,或把删除计数低的块数据移至空删除计数高的块。
27.根据权利要求25所述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括: 一种数据类型:从主机GND驱动器接收的文件类型标识符的数据类型; 一数据拆分管理器:用以根据由该文件类型标识符产生的数据类型对主机写数据进行分类; 一数据写高速缓存:用以储存具有用户数据类型的主机写数据; 一元数据高速缓存:用以贮存具有元数据数据类型的主机写数据; 一分页高速缓存:用以贮存具有分页文件数据类型的主机写数据; 一临时高速缓存:用以贮存具有临时数据类型的主机写数据。
28.根据权利要求25所述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括: 一 SEED动态随机存取存储器缓冲区:受所述控制器控制; 一 DRAM缓冲区中的备用/交换区; 其中所述控制器使用该DRAM缓冲区中的备用/交换区来在该闪存存储器内合并有效的数据与新的来自主机的数据,以便当重写一个写满的页或该闪存存储器中现有的块上的部分页面时,产生结合的数据,通过把新的数据写入该DRAM缓冲区中涉及该闪存存储器中现有块的备用块,并当针对该闪存存储器中不同的块,该备用块是附加的新的数据所需要时,把该备用块与新的数据和来自该闪存存储器中现有块的数据结合,写入该闪存存储器中的交换块,并针对该闪存存储器中现有块的页,把页面状态标记为垃圾页面。
29.根据权利要求28所述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括: 该带有绿色与非器件驱动器的超级增强耐久性SSD上的备份电源当该主机关断时向SEED SSD 供电; 其中在该DRAM缓冲区中的备用/交换区用于该闪存存储器作为备用块。
30.根据权利要求25所述的一种带有绿色与非器件驱动器的超级增强耐久性SSD,其特征在于,还包括: 当该主机关断时,主机上的电源备份向该SEED SSD供电或在该SEED SSD上的备份电源向该SEED SSD供电 ; 在小功率状态下的处理器和当主机关断时保持有效的定时器; 其中DRAM和闪存存储器没有电力提供; 其中当定时器达到一个时间阈值时,该定时器唤醒该处理器并向该DRAM和该闪存存储器提供电力; 以此处理器检查闪存块的写入日期并当保持时间超过保持极限时刷新闪存块。
31.一种主板上的非易失存储器控制器,其特征在于,包括: 一闪存接口:用以在闪存存储器上删除块和写页,其中块在尺寸上可以有多个页; 一动态随机存取存储器(DRAM)接口 ; 一来自主机处理器输入信号,用于关断电源或失效时的持续模式,指出主机已经把处理器状态及其高速缓存冲洗进DRAM,该NVM控制器接过DRAM模块总线信号和闪存接口的控制,用以把数据从DRAM备份到该闪存存储器; 一来自主机处理器输入信号,用于上电重新引导时的持续模式,指出该主机正在等待NVM控制器重新从该闪存存储器装入DRAM ; 一输出信号,控制外部开关来选择DRAM;和闪存接口信号,不是来自该主机,就是来自NVM控制器; 一输出信号,指示上电引导映像从NVM控制器重新装入主机处理器的操作成功或失效; 其中该NVM控制器在关断电源或失效时,在完成从DRAM备份到该闪存存储器之后,暂停全部操作; 其中上电重新引导时完成从该闪存存储器恢复到DRAM之后,该NVM控制器暂停全部操作。
32.根据权利要求31所述的一种主板上的非易失存储器控制器,其特征在于,还包括: 其中该外部开关集成进该NVM控制器。
33.根据权利要求31所述的一种主板上的非易失存储器控制器,其特征在于,还包括: 一处理间DRAM:受控于该主机处理器,它保存一个不同数据类型在易失存储器的开始位置和长度的清单。
34.根据权利要求31所述的一种主板上的非易失存储器控制器,其特征在于,其中该外部开关集成进主机处理器。
35.根据权利要求31所述的一种主板上的非易失存储器控制器,其特征在于,其中该外部开 关集成进该主机处理器的芯片组。
【文档编号】G06F1/32GK103995578SQ201410117893
【公开日】2014年8月20日 申请日期:2014年3月26日 优先权日:2013年6月26日
【发明者】俞一康, 马治刚, 陈希孟, 严毅旭 申请人:晶天电子(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1