一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器的制造方法
【專利摘要】本發(fā)明涉及一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,首先綠色與非器件驅(qū)動(dòng)器應(yīng)用程序查詢交流線路和電池組狀態(tài),然后當(dāng)發(fā)生電源失效時(shí)把處理器狀態(tài)的映像和高速緩存和恢復(fù)例程存入DRAM。然后,當(dāng)電池組電源可用時(shí),把DRAM映像存入持續(xù)模式用的閃存存儲(chǔ)器。DRAM中的映像可以是部分映像,包括登記項(xiàng)、沖洗的高速緩存、處理器環(huán)境、RAM盤、寫高速緩存和恢復(fù)環(huán)境。在掉電模式下,該GND驅(qū)動(dòng)器限制DRAM的使用,而且只有DRAM數(shù)據(jù)中的高速緩存才可以在掉電時(shí)刪除。GND驅(qū)動(dòng)器攔截主機(jī)對(duì)閃存的訪問,并按數(shù)據(jù)類型進(jìn)行分類。DRAM中高速緩存的分頁(yè)文件和臨時(shí)文件任選地寫入閃存。
【專利說明】一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器
[0001]
【技術(shù)領(lǐng)域】
[0002]本發(fā)明涉及不同的電池組和后備電源系統(tǒng)共同工作的固態(tài)驅(qū)動(dòng)器,尤其是涉及一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器。
【背景技術(shù)】
[0003]帶有旋轉(zhuǎn)磁盤的硬盤正在日益被利用半導(dǎo)體閃存存儲(chǔ)器的更可靠的固態(tài)驅(qū)動(dòng)器(SSD)代替。東芝Fujio Masuoka博士 1987年發(fā)明的與非閃存存儲(chǔ)器,使用在浮動(dòng)?xùn)艠O上存儲(chǔ)電荷的電可擦除可編程只讀存儲(chǔ)器(EEPROM)單元。單元一般用雪崩電流編程,然后利用穿過氧化物薄層的量子力學(xué)隧道(效應(yīng))擦除??上У氖牵诰幊袒虿脸^程中某些電子可能在氧化物薄層中被捕捉。假定編程電壓恒定,這些被捕捉的電子在隨后的編程周期中減少了該單元中貯存的電荷。往往要提高編程電壓來補(bǔ)償被捕捉的電子。
[0004]增大閃存存儲(chǔ)器的密度和尺寸時(shí),該單元的尺寸及其可靠性和壽命已經(jīng)全都降低。閃存存儲(chǔ)器保證能夠承受的編程-擦除周期數(shù)約為100,000周期,在正常的讀寫條件下這被認(rèn)為是一個(gè)很長(zhǎng)的壽命了。但較小的閃存單元已經(jīng)經(jīng)歷高得令人不安的損耗。較新式的閃存存儲(chǔ)器規(guī)格標(biāo)明,對(duì)于二級(jí)單元小于10,000編程-擦除周期,而對(duì)于三級(jí)單元(TLC)約為600。若當(dāng)前的趨勢(shì)繼續(xù),則未來的閃存存儲(chǔ)器可能只允許300編程-擦除周期。這樣低的耐久性可能嚴(yán)重地限制閃存存儲(chǔ)器可能的用途,并已經(jīng)嚴(yán)重沖擊固態(tài)盤(SSD)應(yīng)用。
[0005]相關(guān)的閃存技術(shù)在將來可能具有較低的耐久性。閃存驅(qū)動(dòng)器可以用各種各樣的技術(shù)來補(bǔ)償所涉及的閃存存儲(chǔ)器較低的損耗允差。例如,可以用該閃存驅(qū)動(dòng)器上的DRAM (動(dòng)態(tài)隨機(jī)存儲(chǔ)器緩沖區(qū))起回寫高速緩存的作用,當(dāng)主機(jī)向同一數(shù)據(jù)地址完成寫入時(shí),減少向所涉及的閃存存儲(chǔ)器的寫入次數(shù)。
[0006]因?yàn)镈RAM有易失性,掉電時(shí)數(shù)據(jù)便丟失??梢杂貌煌碾姵亟M、超級(jí)電容和萬用電源(UPS (不間斷電源))系統(tǒng)來維持向DRAM供電,并提供電力把內(nèi)容存入非易失存儲(chǔ)器??梢岳迷谌魏谓o定的系統(tǒng)上都可能存在的不同的備份系統(tǒng)的軟件驅(qū)動(dòng)器是需要的。
[0007]連接到一個(gè)標(biāo)準(zhǔn)固態(tài)驅(qū)動(dòng)器(SSD)或超級(jí)耐久的閃存驅(qū)動(dòng)器的主機(jī)用的綠色與非器件(GND)應(yīng)用和驅(qū)動(dòng)器,需要使用先進(jìn)的管理技術(shù)來減少閃存的寫入次數(shù),因而減少的所涉及的閃存存儲(chǔ)器上的編程-擦除周期。操作超級(jí)耐久閃存驅(qū)動(dòng)器的主機(jī)上的GND應(yīng)用和驅(qū)動(dòng)器需要帶有幾個(gè)可能的電源備份系統(tǒng)中的一個(gè)或多個(gè)。另外,還要求把該處理器的狀態(tài)和DRAM的內(nèi)容存入非易失存儲(chǔ)器,然后在上電引導(dǎo)時(shí)間,甚至在無意間交流供電線路掉電的情況下也能使用它們。
[0008]本申請(qǐng)涉及“Endurance and Retention Flash Controller with ProgrammableBinary-Levels-Per-Cell Bits Identifying Pages or Blocks as having Triple,Multi,或Single-Level Flash-Memory Cells”(帶有可編程二進(jìn)制水平每單兀(Binary-Levels-Per-Cel)位識(shí)別頁(yè)或塊作為具有三級(jí)、多級(jí)或單級(jí)閃存單元的耐久性和保持力閃存控制器),美國(guó)專利序號(hào)N0.13/788,989,2013年3月7日歸檔。
[0009]本申請(qǐng)涉及“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(帶有數(shù)據(jù)類型拆分、兀頁(yè)分組和臨時(shí)文件向RAM盤轉(zhuǎn)向用的二級(jí)攔截以提高閃存耐久性的虛擬存儲(chǔ)器件(VMD)應(yīng)用/驅(qū)動(dòng)器)”,美國(guó)專利,序列號(hào)N0.13/730,797,2012年12月28日歸檔。
[0010]本申請(qǐng)涉及“Super-EnduranceSolid-State Drive with Endurance TranslationLayer (ETL) and Diversion of Temp Files for Reduced Flash Wear (帶有耐久性平移層(ETL)和臨時(shí)文件轉(zhuǎn)向以減少閃存損耗的超級(jí)耐久固態(tài)驅(qū)動(dòng)器)”美國(guó)專利序列號(hào)N0.13/540,569,2012 年 7 月 2 日歸檔。
[0011]本申請(qǐng)涉及“High Performance and Endurance Non-volatile Memory BasedStorage Systems (基于高性能和耐久性非易失存儲(chǔ)器的存儲(chǔ)系統(tǒng))”,美國(guó)專利序列號(hào)N0.12/141,879,2008 年 6 月 18 日歸檔。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的上述技術(shù)問題主要是通過下述技術(shù)方案得以解決的:
一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,包括:
一持續(xù)處理器映像發(fā)生器:當(dāng)持續(xù)模式掉電例程被激活,用以產(chǎn)生主機(jī)處理器映像時(shí),該持續(xù)處理器映像發(fā)生器把來自主機(jī)處理器狀態(tài)和來自處理器高速緩存存儲(chǔ)器的數(shù)據(jù)拷貝到易失存儲(chǔ)器;
一持續(xù)恢復(fù)映像:當(dāng)持續(xù)模式掉電例程被激活時(shí),存儲(chǔ)在該易失存儲(chǔ)器中的恢復(fù)映像。
[0013]一持續(xù)映像發(fā)生器:當(dāng)持續(xù)模式掉電例程被激活時(shí),把來自主機(jī)易失存儲(chǔ)器的數(shù)據(jù)拷貝到閃存存儲(chǔ)器中;以產(chǎn)生持續(xù)恢復(fù)映像。
[0014]其中:
當(dāng)電源充足時(shí),持續(xù)模式被激活和執(zhí)行。能夠用于激活和執(zhí)行持續(xù)模式;所述激活是指持續(xù)模式掉電例程被激活;
一恢復(fù)映像加載器:在掉電后,當(dāng)持續(xù)模式例程再次被激活時(shí),從閃存存儲(chǔ)器把該持續(xù)恢復(fù)映像讀到主機(jī)易失存儲(chǔ)器,并從該易失存儲(chǔ)器執(zhí)行該持續(xù)恢復(fù)映像,以恢復(fù)主機(jī)處理器映像。
[0015]在上述的的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一持續(xù)模式電源/電池組監(jiān)視器:當(dāng)檢測(cè)出掉電時(shí),它從備份電源讀出電源狀態(tài)線,并為電池組讀出電池組狀態(tài);
一掉電例程模塊,當(dāng)該電池組狀態(tài)指出電力低于一個(gè)閾值并表明掉電時(shí),掉電例程模塊被激活并啟動(dòng)掉電例程。
[0016]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一持續(xù)模式寫高速緩存,用以把主機(jī)寫入數(shù)據(jù)存入一個(gè)動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。
[0017]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一持續(xù)模式RAM盤:用以把數(shù)據(jù)存入一個(gè)動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。[0018]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一用戶接口:用以接收用戶選擇,當(dāng)用戶選擇禁止持續(xù)模式時(shí),啟用該掉電例程并禁止持續(xù)模式例程。
[0019]持續(xù)模式例程能正常使用時(shí)被使用者disable掉,在那狀況下,掉電時(shí)持續(xù)模式例程不會(huì)被激活。
[0020]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一分組引擎:用以把存于數(shù)據(jù)寫高速緩存的數(shù)據(jù)分組進(jìn)入元頁(yè)。
[0021]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一持續(xù)模式模塊:具有一組策略,用以觸發(fā)無效數(shù)據(jù)從該易失存儲(chǔ)器中的高速緩存寫入該閃存存儲(chǔ)器;
該閃存存儲(chǔ)器是指持續(xù)映像發(fā)生器工作中涉及的閃存存儲(chǔ)器,持續(xù)模式并非只做前述使CPU在掉電后時(shí)恢復(fù)中回到當(dāng)時(shí)的狀態(tài),還包括存在DRAM中的資料與meta資料,這里的策略是指資料與元資料特意不馬上寫入flash中,但是又因電池能量不足,怕到時(shí)不能完全的寫入flash使用。
[0022]其中該組策略包括高速緩存中的閾值電平無效數(shù)據(jù)、時(shí)間周期、由該用戶指定的特殊數(shù)據(jù)類型或?qū)憹M的高速緩存。
[0023]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一高層文件過濾器驅(qū)動(dòng)器:用以在主機(jī)上執(zhí)行,以便攔截向閃存驅(qū)動(dòng)器的高層主機(jī)寫
A ;
一低層文件過濾器驅(qū)動(dòng)器:用以在主機(jī)上執(zhí)行,攔截低層文件系統(tǒng)主機(jī)寫入到閃存驅(qū)動(dòng)器,并把該低層文件系統(tǒng)主機(jī)寫入發(fā)送到數(shù)據(jù)拆分管理器,以便對(duì)主機(jī)寫入數(shù)據(jù)進(jìn)行分類;該閃存驅(qū)動(dòng)器是指持續(xù)映像發(fā)生器工作中涉及的閃存存儲(chǔ)器。
[0024]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一加密引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成加密數(shù)據(jù)。
[0025]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,一壓縮引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成壓縮數(shù)據(jù)和加壓映射表。
[0026]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一去冗余引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成無冗余映射表。
[0027]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一事務(wù)管理器:用于事件登錄,指示數(shù)據(jù)寫入閃存存儲(chǔ)器的開始和完成;
一據(jù)恢復(fù)管理器:用以讀出由該事務(wù)管理器登錄的事件,以便在電源恢復(fù)之后撤銷或重做向閃存存儲(chǔ)器的寫入。
[0028]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一配置設(shè)置管理器:用來改變?cè)O(shè)置,以改善閃存耐久性和性能,該設(shè)置包括驅(qū)動(dòng)索引、搜索索引、頁(yè)面文件大小、系統(tǒng)恢復(fù)、休眠、寫高速緩存、預(yù)取指、超級(jí)取指、資源回收箱大小、登錄、可靠性監(jiān)視器、和RAM盤中的至少一個(gè)設(shè)置或多個(gè)設(shè)置。
[0029]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,所述的持續(xù)恢復(fù)映像還包括:
一處理器間DRAM:受該主機(jī)處理器控制,它保存一個(gè)不同的數(shù)據(jù)類型在易失存儲(chǔ)器的開始位置及其長(zhǎng)度清單;
一個(gè)標(biāo)志模塊:指示在該易失存儲(chǔ)器特定的數(shù)據(jù)類型需要包括進(jìn)持續(xù)恢復(fù)映像中。
[0030]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一電源/電池組監(jiān)視器:該電源/電池組監(jiān)視器從備份電源讀出電源狀態(tài)線,并當(dāng)電源狀態(tài)線指出掉電時(shí),激活掉電例程。
[0031]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一文件類型標(biāo)識(shí)符:用以為該GND驅(qū)動(dòng)器接收的主機(jī)寫入并生成數(shù)據(jù)類型;
一數(shù)據(jù)拆分管理器:根據(jù)該文件類型標(biāo)識(shí)符產(chǎn)生的數(shù)據(jù)類型,對(duì)主機(jī)寫數(shù)據(jù)進(jìn)行分
類;
一數(shù)據(jù)寫高速緩存:用以貯存具有一個(gè)用戶數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù);
一元數(shù)據(jù)高速緩存:用以貯存具有元數(shù)據(jù)數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù);
一分頁(yè)高速緩存:用以貯存具有分頁(yè)文件數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù);
一臨時(shí)高速緩存:用以貯存具有臨時(shí)數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù)。
[0032]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一用戶選定的關(guān)閉監(jiān)視器:用于監(jiān)視用戶所選定的關(guān)閉類型;
一開關(guān)用戶選擇例程模塊:用于暫停當(dāng)前的用戶對(duì)話,并從易失存儲(chǔ)器把高速緩存和緩沖區(qū)沖洗至SSD ;
一注銷選擇例程模塊:用于暫停全部用戶對(duì)話,并把高速緩存和緩沖區(qū)從該易失存儲(chǔ)器沖洗至SSD ;
一鎖定選擇例程模塊:用于為口令輸入顯示一個(gè)屏幕并等待用戶輸入口令來恢復(fù);一重新啟動(dòng)選擇例程模塊:用于關(guān)掉用戶定義的除關(guān)鍵系統(tǒng)業(yè)務(wù)外的其他全部應(yīng)用,然后重新引導(dǎo)系統(tǒng);
一靜止選擇例程模塊:用于使該主機(jī)處于低電力狀態(tài),但是不處于關(guān)閉狀態(tài);
一休眠選擇例程模塊:用于暫停除該SSD外的全部應(yīng)用、以及暫停全部業(yè)務(wù)和裝置;其中把一個(gè)休眠映像寫入該SSD,然后暫停該SSD ;具體是只,先暫停除該SSD外的全部應(yīng)用、以及暫停全部業(yè)務(wù)和裝置后,然后把一個(gè)休眠映像寫入該SSD,然后暫停該SSD ;和把一個(gè)休眠映像寫入該SSD,然后暫停該SSD ;和一關(guān)閉選擇例程模塊:用于暫停全部對(duì)話、應(yīng)用和裝置。
[0033]在上述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括:
一持續(xù)模式RAM盤,用以把數(shù)據(jù)存入動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。
[0034]一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,其特征在于,包括:
一分組引擎:用以對(duì)存入元頁(yè)的數(shù)據(jù)進(jìn)行分組;
一處理模塊:當(dāng)激活掉電模式例程時(shí)被激活;并且該處理模塊暫停全部應(yīng)用、業(yè)務(wù)和裝置;
其中電源掉電時(shí)主機(jī)易失存儲(chǔ)器中的全部數(shù)據(jù)丟失;
一恢復(fù)映像裝入器,當(dāng)上次掉電時(shí)上次激活掉電模式例程時(shí),該恢復(fù)映像裝入器把引導(dǎo)映像從閃存存儲(chǔ)器讀到該主機(jī)易失存儲(chǔ)器,并從該主機(jī)易失存儲(chǔ)器執(zhí)行該引導(dǎo)映像,以便將其存入主機(jī)處理器映像。
[0035]在上述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,還包括: 一加密引擎:用于耦合接收被攔截的高層主機(jī)寫入數(shù)據(jù),以便生成加密數(shù)據(jù)。
[0036]在上述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,還包括:
一壓縮引擎,用于耦合接收被攔截的高層主機(jī)寫入數(shù)據(jù),以便生成壓縮數(shù)據(jù)和壓縮映射表。
[0037]在上述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,包括:
一分組引擎,用以把數(shù)據(jù)分組進(jìn)入元頁(yè);
根據(jù)SSD不同的結(jié)構(gòu)管理不同尺寸元頁(yè)的多個(gè)方案,用以增強(qiáng)該SSD的性能和耐久
性;
與該SSD的通信協(xié)議;
一參數(shù)選擇器,用以選擇參數(shù),包括元頁(yè)大小參數(shù),當(dāng)SSD提供標(biāo)準(zhǔn)SSD ID時(shí),該參數(shù)選擇器為標(biāo)準(zhǔn)SSD選擇標(biāo)準(zhǔn)參數(shù),當(dāng)該SSD不提供標(biāo)準(zhǔn)SSD ID時(shí),該參數(shù)選擇器為該SSD選擇優(yōu)化參數(shù),并提供該SSD的硬件結(jié)構(gòu)和功能能力的信息。
[0038]在上述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,還包括:
一參數(shù)測(cè)試器:用以執(zhí)行一組預(yù)定的測(cè)試,以便利用測(cè)試參數(shù)來測(cè)試該SSD,并根據(jù)測(cè)
試結(jié)果為該SSD選擇參數(shù),這里,預(yù)定的測(cè)試是用戶自定義的,如果系統(tǒng)所接的SSD是不知的結(jié)構(gòu),driver可以用不同的假定參數(shù)值去測(cè)試SSD,由測(cè)試結(jié)果來決定那一種參數(shù)最適合這個(gè)SSD。
[0039]在上述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,還包括:
一分區(qū)對(duì)齊引擎:用以設(shè)置分區(qū)偏移量,以便與多個(gè)與非頁(yè)大小和與非刪除塊大小和文件分配單元簇的大小對(duì)齊。
[0040]一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,包括:
一主機(jī)接口,用以從主機(jī)GND驅(qū)動(dòng)器接收主機(jī)讀出和主機(jī)寫入:帶有加密、壓縮、元頁(yè)分組的能力;
一控制器:用以響應(yīng)由該主機(jī)接口接收的主機(jī)讀和主機(jī)寫:控制對(duì)閃存存儲(chǔ)器和對(duì)SEED DRAM緩沖區(qū)的訪問,該控制器把主機(jī)數(shù)據(jù)寫至該SEED DRAM緩沖區(qū);
一 SEED動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器緩沖區(qū):用以貯存主機(jī)耐久性平移層;和 一閃存接口:用以訪問閃存存儲(chǔ)器或閃存存儲(chǔ)器件。
[0041]在上述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括:
一糾錯(cuò)碼管理器:用以生成ECC碼,以便附在寫入該閃存存儲(chǔ)器的分組元頁(yè)后面; 一壞頁(yè)管理器:用以跟蹤該閃存存儲(chǔ)器的壞頁(yè);
一損耗分級(jí)器:用以向刪除計(jì)數(shù)低的閃存存儲(chǔ)器的空塊指定新的數(shù)據(jù),或把刪除計(jì)數(shù)低的塊數(shù)據(jù)移至空刪除計(jì)數(shù)高的塊。
[0042]在上述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,還包括:
一種數(shù)據(jù)類型:從主機(jī)GND驅(qū)動(dòng)器接收的文件類型標(biāo)識(shí)符的數(shù)據(jù)類型;
一數(shù)據(jù)拆分管理器:用以根據(jù)由該文件類型標(biāo)識(shí)符產(chǎn)生的數(shù)據(jù)類型對(duì)主機(jī)寫數(shù)據(jù)進(jìn)行分類;
一數(shù)據(jù)寫高速緩存:用以儲(chǔ)存具有用戶數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù);
一元數(shù)據(jù)高速緩存:用以貯存具有元數(shù)據(jù)數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù); 一分頁(yè)高速緩存:用以貯存具有分頁(yè)文件數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù);
一臨時(shí)高速緩存:用以貯存具有臨時(shí)數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù)。
[0043]在上述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,還包括:
一SEED動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器緩沖區(qū):受所述控制器控制;
一DRAM緩沖區(qū)中的備用/交換區(qū);
其中所述控制器使用該DRAM緩沖區(qū)中的備用/交換區(qū)來在該閃存存儲(chǔ)器內(nèi)合并有效的數(shù)據(jù)與新的來自主機(jī)的數(shù)據(jù),以便當(dāng)重寫一個(gè)寫滿的頁(yè)或該閃存存儲(chǔ)器中現(xiàn)有的塊上的部分頁(yè)面時(shí),產(chǎn)生結(jié)合的數(shù)據(jù),通過把新的數(shù)據(jù)寫入該DRAM緩沖區(qū)中涉及該閃存存儲(chǔ)器中現(xiàn)有塊的備用塊,并當(dāng)針對(duì)該閃存存儲(chǔ)器中不同的塊,該備用塊是附加的新的數(shù)據(jù)所需要時(shí),把該備用塊與新的數(shù)據(jù)和來自該閃存存儲(chǔ)器中現(xiàn)有塊的數(shù)據(jù)結(jié)合,寫入該閃存存儲(chǔ)器中的交換塊,并針對(duì)該閃存存儲(chǔ)器中現(xiàn)有塊的頁(yè),把頁(yè)面狀態(tài)標(biāo)記為垃圾頁(yè)面。
[0044]在上述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,還包括:
該帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD上的備份電源當(dāng)該主機(jī)關(guān)斷時(shí)向SEED SSD 供電;
其中在該DRAM緩沖區(qū)中的備用/交換區(qū)用于該閃存存儲(chǔ)器作為備用塊。
[0045]在上述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括:
當(dāng)該主機(jī)關(guān)斷時(shí),主機(jī)上的電源備份向該SEED SSD供電或在該SEED SSD上的備份電源向該SEED SSD供電;
在小功率狀態(tài)下的處理器和當(dāng)主機(jī)關(guān)斷時(shí)保持有效的定時(shí)器;
其中DRAM和閃存存儲(chǔ)器沒有電力提供;
其中當(dāng)定時(shí)器達(dá)到一個(gè)時(shí)間閾值時(shí),該定時(shí)器喚醒該處理器并向該DRAM和該閃存存儲(chǔ)器提供電力;
以此處理器檢查閃存塊的寫入日期并當(dāng)保持時(shí)間超過保持極限時(shí)刷新閃存塊。
[0046]—種主板上的非易失存儲(chǔ)器控制器,其特征在于,包括:
一閃存接口:用以在閃存存儲(chǔ)器上刪除塊和寫頁(yè),其中塊在尺寸上可以有多個(gè)頁(yè);
一動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)接口 ;
一來自主機(jī)處理器輸入信號(hào),用于關(guān)斷電源或失效時(shí)的持續(xù)模式,指出主機(jī)已經(jīng)把處理器狀態(tài)及其高速緩存沖洗進(jìn)DRAM,該NVM控制器接過DRAM模塊總線信號(hào)和閃存接口的控制,用以把數(shù)據(jù)從DRAM備份到該閃存存儲(chǔ)器;
一來自主機(jī)處理器輸入信號(hào),用于上電重新引導(dǎo)時(shí)的持續(xù)模式,指出該主機(jī)正在等待NVM控制器重新從該閃存存儲(chǔ)器裝入DRAM ;
一輸出信號(hào),控制外部開關(guān)來選擇DRAM;和閃存接口信號(hào),不是來自該主機(jī),就是來自NVM控制器;
一輸出信號(hào),指示上電引導(dǎo)映像從NVM控制器重新裝入主機(jī)處理器的操作成功或失
效;
其中該NVM控制器在關(guān)斷電源或失效時(shí),在完成從DRAM備份到該閃存存儲(chǔ)器之后,暫停全部操作;
其中上電重新引導(dǎo)時(shí)完成從該閃存存儲(chǔ)器恢復(fù)到DRAM之后,該NVM控制器暫停全部操作。
[0047]需要注意的是,一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD是SEED SSD外掛在系統(tǒng)(motherboard)上,非易失存儲(chǔ)器控制器是敘述NVM controller與flash也安裝在 motherboard 上。
[0048]在上述的一種主板上的非易失存儲(chǔ)器控制器,還包括:
其中該外部開關(guān)集成進(jìn)該NVM控制器。
[0049]在上述的一種主板上的非易失存儲(chǔ)器控制器,還包括:
一處理間DRAM:受控于該主機(jī)處理器,它保存一個(gè)不同數(shù)據(jù)類型在易失存儲(chǔ)器的開始位置和長(zhǎng)度的清單。
[0050]在上述的一種主板上的非易失存儲(chǔ)器控制器,其中該外部開關(guān)集成進(jìn)主機(jī)處理器。
[0051]在上述的一種主板上的非易失存儲(chǔ)器控制器,其中該外部開關(guān)集成進(jìn)該主機(jī)處理器的芯片組。
[0052]因此,本發(fā)明具有如下優(yōu)點(diǎn):1.提供斷電/掉電時(shí)把處理器狀態(tài)存入DRAM,然后把DRAM內(nèi)容存入非易失存儲(chǔ)器的途徑,上電重新引導(dǎo)時(shí),DRAM可以重新裝入并恢復(fù)處理器狀態(tài);2.主機(jī)或閃存驅(qū)動(dòng)器SSD器件上的DRAM緩沖區(qū)可以存儲(chǔ)不必永久貯存的并因而不必寫入閃存的數(shù)據(jù),提高器件的耐久性也提高器件的讀取速度;3.通過阻止向該閃存存儲(chǔ)器不必要的寫入,可以減少相關(guān)閃存器件的損耗。在主機(jī)上執(zhí)行的綠色與非器件(GND)應(yīng)用程序和GND驅(qū)動(dòng)器可以在寫入到達(dá)閃存存儲(chǔ)器以前,阻止該次寫入或?qū)⑵浣Y(jié)合,于是降低向該閃存存儲(chǔ)器的寫入頻率。
【專利附圖】
【附圖說明】
[0053]圖1是主機(jī)上GND應(yīng)用和驅(qū)動(dòng)器的方框示意圖,它在主機(jī)和具有低耐久性閃存存儲(chǔ)器的超級(jí)耐久閃存驅(qū)動(dòng)器上都建立和管理多個(gè)高速緩存和RAM盤。
[0054]圖2A-B表示更詳細(xì)的示意圖,突出主機(jī)上的SSD驅(qū)動(dòng)器。
[0055]圖3A是一個(gè)帶有耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)的方框示意圖。
[0056]圖3B是帶有一個(gè)在eMMC中儲(chǔ)存數(shù)據(jù)的耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)的方框示意圖。
[0057]圖3C是帶有耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)eMMC的方框示意圖。
[0058]圖4A-C是表示掉電和持續(xù)方式、為通過GND驅(qū)動(dòng)器寫入而進(jìn)行的數(shù)據(jù)拆分和分組的流程圖。
[0059]圖5A-C是為針對(duì)掉電和持續(xù)方式通過GND驅(qū)動(dòng)器讀出而進(jìn)行的數(shù)據(jù)分類和解分組的流程圖。
[0060]圖6是帶有備份電源的主板示意圖。
[0061]圖7是帶有NVM控制器電源隔離的主板示意圖。
[0062]圖8表示在處理器間的存儲(chǔ)器中登記項(xiàng)。
[0063]圖9是帶有RAID耐久性控制器的PCIe SEED SSD的方框示意圖。
[0064]圖10是一個(gè)前端備份電源的示意圖。
[0065]圖11表示主板上NVM控制器用的內(nèi)部電源樹。[0066]圖12A-C突出NVM控制器和NVM控制器用的隔離電源開關(guān)。
[0067]圖13表示帶有集成開關(guān)的NVM控制器。
[0068]圖14A-B顯示主機(jī)上DRAM持續(xù)方式用的掉電例程。
[0069]圖15A-B顯示PCIe RAID控制器的DRAM持續(xù)方式用的掉電例程。
[0070]圖16A-B顯示主機(jī)上DRAM持續(xù)方式用的引導(dǎo)裝入例程。
[0071]圖17A-B顯示PCIe RAID控制器DRAM持續(xù)方式用的上電重新引導(dǎo)例程。
[0072]圖18A-B顯示由本機(jī)SSD執(zhí)行的GND應(yīng)用例程。
[0073]圖19是SSD投入使用的驅(qū)動(dòng)器用的定期例程。
[0074]圖20A-B顯示由USB器件執(zhí)行的GND應(yīng)用例程。
[0075]圖21A-B是USB投入使用的驅(qū)動(dòng)器用的定期例程。
[0076]圖22A-B顯示帶有電池組、持續(xù)和正常掉電模式的筆記簿電源監(jiān)測(cè)器的操作。
[0077]圖23A-B顯示帶有電池組備份、持續(xù)和正常掉電模式的臺(tái)式機(jī)電源監(jiān)測(cè)器的操作。
[0078]圖24A-B顯示帶有UPS備份、持續(xù)和正常掉電模式的服務(wù)器電源監(jiān)測(cè)器的操作。
[0079]圖25A-C顯示帶有電池組、持續(xù)和正常掉電模式的PCIe RAID控制器用的電源監(jiān)測(cè)器例程。
[0080]圖26A-D顯示涉及登錄的例程。
[0081]圖27是當(dāng)NVM控制器把映像存入其DRAM時(shí),在主機(jī)上執(zhí)行的引導(dǎo)裝入程序的示意圖。
[0082]圖28A-B顯示通過激活隔離開關(guān)以備份IPDRAM所指向的數(shù)據(jù),取得主板控制權(quán)的NVM控制器。
[0083]圖29A-B突出在GND驅(qū)動(dòng)器初始化過程中的模式選擇。
[0084]圖30A-C顯示當(dāng)UPS或電池組備份可用時(shí)GND驅(qū)動(dòng)器的掉電例程。
[0085]圖31A-B顯示當(dāng)UPS或電池組備份可用時(shí)GND驅(qū)動(dòng)器用的上電重新引導(dǎo)例程。
[0086]圖32A-E顯示采用GND驅(qū)動(dòng)器時(shí)不同的window退出程序。
[0087]圖33A-B顯示GND驅(qū)動(dòng)器參數(shù)初始化程序。
【具體實(shí)施方式】
[0088]下面通過實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。
[0089]實(shí)施例:
本發(fā)明涉及閃存驅(qū)動(dòng)器的改進(jìn)。它還提供斷電/掉電時(shí)把處理器狀態(tài)存入DRAM,然后把DRAM內(nèi)容存入非易失存儲(chǔ)器的途徑。上電重新引導(dǎo)時(shí),DRAM可以重新裝入并恢復(fù)處理器狀態(tài)。呈現(xiàn)以下的描述是為了使本專業(yè)普通技術(shù)人員能夠根據(jù)特定的應(yīng)用環(huán)境及其要求實(shí)現(xiàn)和利用本發(fā)明。推薦實(shí)施例的不同的修改對(duì)本專業(yè)的技術(shù)人員將是顯而易見的,而這里定義的一般原則可以應(yīng)用于其他實(shí)施例。因此,本發(fā)明不打算限于所表示和描述的特定的實(shí)施例,而是與這里公開的原則和在新型特征最廣闊的范圍一致。
[0090]通過阻止向該閃存存儲(chǔ)器不必要的寫入,可以減少相關(guān)閃存器件的損耗。在主機(jī)上執(zhí)行的綠色與非器件(GND)應(yīng)用程序和GND驅(qū)動(dòng)器可以在寫入到達(dá)閃存存儲(chǔ)器以前,阻止該次寫入或?qū)⑵浣Y(jié)合,于是降低向該閃存存儲(chǔ)器的寫入頻率。提供足夠的備份電力時(shí),該GND把主機(jī)的寫入轉(zhuǎn)向主機(jī)DRAM和/或SSD DRAM上的高速緩存和RAM盤。
[0091]主機(jī)或閃存驅(qū)動(dòng)器SSD器件上的DRAM緩沖區(qū)可以存儲(chǔ)不必永久貯存的并因而不必寫入閃存的數(shù)據(jù)。DRAM不僅比較快,而且耐久性高得多的,因?yàn)樗梢灾貙懸话偃f次以上。
[0092]典型的主機(jī)建立許多暫時(shí)性文件,諸如在互聯(lián)網(wǎng)瀏覽過程中,或當(dāng)運(yùn)行某個(gè)巨大的并非關(guān)鍵的應(yīng)用程序時(shí)。
[0093]本發(fā)明人認(rèn)識(shí)到這些文件不需要寫入閃存,減少閃存的損耗。
[0094]典型的系統(tǒng)還頻繁的重寫某些類型的數(shù)據(jù)。這樣頻繁重寫的數(shù)據(jù)最好貯存在主機(jī)上的或者在閃存驅(qū)動(dòng)器內(nèi)的DRAM緩沖區(qū)中,并按照一個(gè)策略(諸如根據(jù)消逝的時(shí)間、分配的容量等)或掉電(用戶關(guān)閉電源或發(fā)生電源失效)時(shí)拷入閃存存儲(chǔ)器。只在掉電才把這樣頻繁重寫的數(shù)據(jù)存入閃存,還可以顯著地減少該閃存器件的損耗。大部分元數(shù)據(jù)尺寸小并像FAT表一樣組合在一起。每次更新都只涉及寫入該閃存頁(yè)的一個(gè)非常小的部分。把元數(shù)據(jù)存入DRAM可以隨著時(shí)間減少不必要的閃存寫入。
[0095]這樣頻繁重寫的數(shù)據(jù)可以包括隨著新的事件頻繁更新的登錄文件。一般系統(tǒng)崩潰之后檢查最近的拷貝。該文件分配表(FAT)是另一個(gè)頻繁重寫的位置,因?yàn)楫?dāng)文件建立或擴(kuò)展時(shí)它便被更新。該FAT表占存儲(chǔ)器相對(duì)較小的部分,但若每次FAT更新都拷入閃存,則它的頻繁訪問可以明顯增大損耗。文件描述塊(FDB)是一個(gè)頻繁重寫的類似的結(jié)構(gòu),諸如當(dāng)在windows explorer簡(jiǎn)單地訪問和顯示文件清單時(shí)便重寫“訪問日其月”。FDB/FAT保存該主機(jī)文件系統(tǒng)的元數(shù)據(jù)。與DRAM緩沖區(qū)一起使用的不同的表具有建立來把文件系統(tǒng)存入DRAM和閃存的元數(shù)據(jù)。
[0096]按照策略或在掉電時(shí),由閃存驅(qū)動(dòng)器建立的壞塊表、刪除計(jì)數(shù)器、垃圾收集、備用和交換塊、映射表及其他文件需要存入閃存。按照策略或在掉電時(shí),該閃存系統(tǒng)元文件也可以貯存在DRAM緩沖區(qū)中,并拷入閃存,以減少閃存損耗。上面指出的表和元文件在上電時(shí)貯存在閃存存儲(chǔ)器中。它們?cè)谄骷跏蓟瘯r(shí)裝入DRAM緩沖區(qū)。隨后的主機(jī)數(shù)據(jù)讀/寫改變?cè)摂?shù)據(jù)的內(nèi)容。發(fā)生掉電時(shí),無效表和元文件需要寫入或備份入閃存。若為了一個(gè)特別的應(yīng)用程序需要一個(gè)精確恢復(fù)點(diǎn),則在寫高速緩存、FIFO(先進(jìn)先出)緩沖區(qū)、數(shù)據(jù)入緩沖區(qū)、耐久性備用和交換塊及閃存驅(qū)動(dòng)器中的其他緩沖區(qū)的主機(jī)數(shù)據(jù),在電源失效時(shí)也可以拷入閃存,以便允許系統(tǒng)恢復(fù)。
[0097]當(dāng)主機(jī)主要的DRAM存儲(chǔ)器映像傳統(tǒng)上移入硬盤或閃存驅(qū)動(dòng)器時(shí),該系統(tǒng)針對(duì)存儲(chǔ)器管理使用分頁(yè)文件。若在電源失效時(shí)丟失,則頁(yè)面交換文件并非關(guān)鍵,因?yàn)樵撓到y(tǒng)無論如何都需要重新引導(dǎo),而存儲(chǔ)器管理和分頁(yè)系統(tǒng)將被重新初始化,擦除任何貯存的分頁(yè)文件。這些分頁(yè)文件也可以貯存在DRAM緩沖區(qū)中,而在掉電時(shí)不必拷入閃存,于是減少閃存損耗。
[0098]主機(jī)對(duì)閃存驅(qū)動(dòng)器的請(qǐng)求往往遵循數(shù)據(jù)類型的一般順序。例如,主機(jī)可以首先訪問FAT,然后訪問FDB,然后讀出或?qū)懭胍粋€(gè)數(shù)據(jù)文件。這種重現(xiàn)的順序可以協(xié)助超級(jí)耐久閃存驅(qū)動(dòng)器對(duì)數(shù)據(jù)類型進(jìn)行分類。該FAT總是在一個(gè)取決于OS類型(Windows,Linux,Apple0S,Android等)的預(yù)定的存儲(chǔ)位置上。于是訪問該地址范圍就是FAT類型訪問。在FAT之后就要訪問FDB。然后,接著訪問用戶數(shù)據(jù)。因而用戶數(shù)據(jù)可以繼FAT和FDB訪問之后被識(shí)另O。該FDB可以由超級(jí)耐久閃存驅(qū)動(dòng)器檢查,以便發(fā)現(xiàn)文件的擴(kuò)展名,使得可以檢測(cè)出.tmp文件,并以不同于用戶數(shù)據(jù)文件的方式進(jìn)行處理。
[0099]在一個(gè)不在數(shù)據(jù)類型之間進(jìn)行區(qū)分的典型的閃存驅(qū)動(dòng)器中,每一種類型的文件都會(huì)使閃存損耗。這樣的不可知系統(tǒng)均等地處理所有數(shù)據(jù)。任何東西寫入閃存,至少當(dāng)它在DRAM緩沖區(qū)中的項(xiàng)目,假如有的話,都被來自主機(jī)的數(shù)據(jù)的具有同一高速緩存索引號(hào)的其他數(shù)據(jù)逐出到DRAM緩沖區(qū)。通過識(shí)別數(shù)據(jù)類型及其對(duì)該主機(jī)的目的,然后在正常運(yùn)行過程中只把實(shí)際的用戶數(shù)據(jù)寫入閃存,和然后按照一個(gè)策略在電源失效時(shí)只把關(guān)鍵數(shù)據(jù)寫入閃存,便可以達(dá)到明顯地減少閃存寫入的目的。
[0100]通過數(shù)據(jù)打包可以達(dá)到進(jìn)一步減少閃存損耗。例如,閃存中不滿一整頁(yè)的數(shù)據(jù)(部分頁(yè)數(shù)據(jù))可以與其他部分頁(yè)數(shù)據(jù)一起貯存在閃存中的一個(gè)單頁(yè)中,而不是貯存在許多單獨(dú)的頁(yè)上。多信道系統(tǒng)可以具有一個(gè)較大的單位,諸如元頁(yè),每個(gè)信道一頁(yè),或信道數(shù)乘以頁(yè)面大小。通過打包進(jìn)入元頁(yè),而不是進(jìn)入較小的頁(yè),可以進(jìn)一步減少閃存損耗。
[0101]在不友善的環(huán)境中,DRAM緩沖區(qū)可能有軟件差錯(cuò)。額外超量配置的DRAM可以用于ECC奇偶位來提高可靠性。
[0102]每種技術(shù)帶來的閃存損耗節(jié)約都可以提供不同的改進(jìn),但一起使用時(shí)這些技術(shù)可以明顯提高閃存的耐久性。利用這些技術(shù),GND應(yīng)用程序和GND驅(qū)動(dòng)器可以提供更高的閃存驅(qū)動(dòng)器耐久性。若無意間掉電,DRAM內(nèi)容將會(huì)丟失,不僅當(dāng)前數(shù)據(jù)丟失,還可能使SSD崩潰并丟失全部寶貴的數(shù)據(jù)。可以利用不同形式的備份電源來保證DRAM內(nèi)容可以保持在非易失存儲(chǔ)器中。另外,帶有足夠的備份電力,在DRAM內(nèi)容存入非易失存儲(chǔ)器以前,可以把處理器的狀態(tài)存入DRAM。該DRAM內(nèi)容的存儲(chǔ)可以在處理器控制下進(jìn)行,它要求更多電力,或利用NVM控制器來進(jìn)行這項(xiàng)工作,并禁止多數(shù)耗電量大的電路。
[0103]圖1是王機(jī)上的GND應(yīng)用和驅(qū)動(dòng)器的方框不意圖,該王機(jī)在王機(jī)上和在具有低耐久性閃存存儲(chǔ)器的超級(jí)耐久閃存驅(qū)動(dòng)器上都建立和管理多個(gè)高速緩存和RAM盤。主機(jī)300有一個(gè)處理器,它執(zhí)行程序,諸如用戶應(yīng)用程序182和操作系統(tǒng)(OS)諸如Windows,Linux,Apple OS或Android等內(nèi)核178的指令。當(dāng)主電源失效時(shí),備份電源176向主機(jī)300提供電力,使主機(jī)300能夠把來自RAM盤的關(guān)鍵數(shù)據(jù)188存入超級(jí)增強(qiáng)耐久性器件(SEED) SSD200,以便當(dāng)電源失效時(shí)存儲(chǔ)在與非閃存存儲(chǔ)器196中。備份電源176可以使用電池組或不間斷電源(UPS)等。這給主機(jī)處理器以時(shí)間來關(guān)閉應(yīng)用程序和在掉電模式下適當(dāng)?shù)仃P(guān)斷所附裝置的電源?;蛘撸诔掷m(xù)模式下,該處理器在DRAM中保存其狀態(tài)、高速緩存,并準(zhǔn)備恢復(fù)環(huán)境,然后把DRAM內(nèi)容存入非易失硬盤。SEED SSD 200有它自己的電源備份195,當(dāng)主電源失效時(shí)允許SEED SSD 200把關(guān)鍵數(shù)據(jù)寫入與非閃存存儲(chǔ)器196。電源備份195可以利用電容、超級(jí)電容或電池組。作為另一方案,若備份電源176有足夠的電力來優(yōu)雅地關(guān)閉該系統(tǒng),則在SEED SSD 200中不需要電源備份195,諸如當(dāng)主機(jī)300是筆記簿或智能電話時(shí)。
[0104]SSD應(yīng)用程序180是一個(gè)在主機(jī)300上執(zhí)行的應(yīng)用程序。SSD應(yīng)用程序180和SSD驅(qū)動(dòng)器100可以用來使SEED SSD 200容易裝入。SSD應(yīng)用程序180和SSD驅(qū)動(dòng)器100可以分開和/或存儲(chǔ)不想永久地貯存在閃存的數(shù)據(jù),諸如臨時(shí)文件、分頁(yè)文件等。SSD驅(qū)動(dòng)器100可以管理RAM盤188來儲(chǔ)存這樣的暫時(shí)性數(shù)據(jù)。RAM盤188可以是主機(jī)DRAM的一部分。
[0105]SSD驅(qū)動(dòng)器100可以使用主機(jī)CPU來執(zhí)行諸如壓縮/解壓引擎242和加密/解密引擎240等任務(wù)。去復(fù)份引擎243找出和刪除重復(fù)的數(shù)據(jù)文件拷貝,以減少寫入負(fù)載。來自用戶應(yīng)用程序182的數(shù)據(jù),也就是說由OS內(nèi)核178寫入的數(shù)據(jù),用高層文件過濾器190攔截,并傳送到SSD驅(qū)動(dòng)器100,以便在發(fā)送至文件系統(tǒng)驅(qū)動(dòng)器266以前進(jìn)行壓縮和/或加密。然后,低層文件過濾器驅(qū)動(dòng)器268再次截取數(shù)據(jù),以便由SSD驅(qū)動(dòng)器100進(jìn)一步處理,諸如存入RAM盤188。
[0106]最后準(zhǔn)備好要寫入SEED SSD 200的數(shù)據(jù)從SSD驅(qū)動(dòng)器100發(fā)送到卷管理器270,它管理存儲(chǔ)卷,諸如SEED SSD 200等。SEED SSD 200中的SEED控制器192,可以存儲(chǔ)SSD DRAM緩沖區(qū)194中的數(shù)據(jù),然后在掉電時(shí)或當(dāng)SSD DRAM緩沖區(qū)194寫滿時(shí),存入與非閃存存儲(chǔ)器 196。
[0107]SSD應(yīng)用程序180中的SSD家庭清掃(housecleaning) 181完成諸如垃圾收集、刪除老舊無用文件等不同的高層功能。SSD家庭清掃181可以定期執(zhí)行,諸如每日、每周或當(dāng)SSD驅(qū)動(dòng)器100管理RAM盤188時(shí)。配置設(shè)置186和登錄庫(kù)和OS設(shè)置184可以由OS內(nèi)核178或其他程序進(jìn)行,以定義RAM盤188的尺寸或其他系統(tǒng)變量,和管理SSD應(yīng)用程序180和SSD驅(qū)動(dòng)器100推薦的功能。
[0108]配置設(shè)置186和登錄庫(kù)和OS設(shè)置184可以有不同的設(shè)置,它可以改善閃存耐久性和性能。例如,設(shè)置可以啟用或禁止寫高速緩存、驅(qū)動(dòng)器索引、搜索索引、清除碎片、主機(jī)休目民、預(yù)取指、超級(jí)取指和視窗操作系統(tǒng)(windows)寫高速緩存緩沖區(qū)沖洗。預(yù)取指、索引、休眠和清除碎片可能附帶地導(dǎo)致閃存寫入,并因而降低耐久性。禁止寫高速緩存和寫高速緩存緩沖區(qū)沖洗,因?yàn)镚ND驅(qū)動(dòng)器具有它自己的寫高速緩存和沖洗功能。因而,可以通過禁止這些特征使閃存耐久性得以改善。
[0109]圖1所示的某些任選組件對(duì)異常掉電形勢(shì)有用。電源保持接通時(shí),電源管理305儲(chǔ)存能量,并在掉電時(shí)向主機(jī)300供電。CPU寄存器和高速緩存控制器301把CPU寄存器和高速緩存寫入主機(jī)DRAM,然后當(dāng)?shù)綦姇r(shí)寫入SEED SSD 200。在另一個(gè)實(shí)施例中,SEED SSD303連接至主機(jī)300的另一個(gè)SSD,諸如通過一個(gè)PCIe端口、USB端口、NVMe端口等。在又一個(gè)實(shí)施例中,SEED SSD 303可以位于DRAM模塊中并受存儲(chǔ)器控制器309控制。CPU寄存器和高速緩存控制器301把CPU寄存器和高速緩存寫入主機(jī)DRAM,并在該替代方案中,然后在掉電時(shí)寫入SEED SSD 200或SEED SSD 303。開關(guān)311,當(dāng)預(yù)先設(shè)定時(shí),隔離主機(jī)300上不必要的組件,使它們不接收備份電力,因而為關(guān)鍵組件延長(zhǎng)備份電力周期。可以存在存儲(chǔ)器控制器309,以便在異常關(guān)斷電源和電力恢復(fù)過程中在主機(jī)DRAM和SEED SSD 303之間轉(zhuǎn)移數(shù)據(jù)?;蛘?,存儲(chǔ)器控制器309可以集成在主機(jī)300的處理器中。
[0110]以下是GND驅(qū)動(dòng)器通過配置和OS設(shè)置改善耐久性和性能的細(xì)節(jié):
1.禁止驅(qū)動(dòng)器索引:SSD驅(qū)動(dòng)查找快速,約0.1ms,使得無需索引。
[0111]2.禁止驅(qū)動(dòng)器搜索索引:
禁止搜索索引可以幫助增大SSD的性能和壽命。禁止該選項(xiàng)避免視窗(windows)嘗試為搜索目的而跟蹤每個(gè)文件。缺點(diǎn)是SSD搜索可能較慢。
[0112]3.縮小分頁(yè)文件大小:
把頁(yè)文件留在SSD上,但將其設(shè)置為固定和合理的大小。
[0113]該操作系統(tǒng)將分配一個(gè)與所安裝的DRAM —樣大的頁(yè)文件,對(duì)于DRAM尺寸大的機(jī)器,它開始相當(dāng)迅速吞食SSD空間。頁(yè)文件在SSD上性能很好,取決于系統(tǒng)中DRAM的數(shù)量。可以將其設(shè)置為I或2GB大小(固定的,最小和最大同值)。應(yīng)該在SSD上的可用空間和有多少DRAM可用和正常使用值之間取得平衡。[0114]4.禁止系統(tǒng)恢復(fù):
該系統(tǒng)恢復(fù)特征允許針對(duì)軟件安裝、驅(qū)動(dòng)器及其他更新能夠卷回。禁止該特征可以釋放幾百兆字節(jié)和幾千兆字節(jié)之間。它可以減小系統(tǒng)恢復(fù)可以使用的硬盤空間數(shù)量,或者冒著不能從系統(tǒng)改變所引起問題中自動(dòng)恢復(fù)的風(fēng)險(xiǎn)將其完全關(guān)閉。但若該特征被禁止,則用戶應(yīng)使用某些其他形式的備份,諸如建立硬盤映像備份。
[0115]5.禁止休眠:
通過在視窗(Windows)中禁止休眠特征可以釋放SSD空間(多達(dá)DRAM的數(shù)量)。通過默認(rèn),該休眠文件(hiberfil.sys)的尺寸與該計(jì)算機(jī)上安裝的DRAM數(shù)量相同。自然,禁止休眠將使用戶無法利用該節(jié)電模式。禁止該休眠特征將相應(yīng)地失去快速引導(dǎo)和停機(jī)。對(duì)于SSD它并沒有提供實(shí)際的好處,因?yàn)樗?0-20秒快速裝入時(shí)間,在某些情況下等于休眠。但是用戶可以通過從該關(guān)閉菜單選擇它來選擇啟用休眠功能。
[0116]6.禁止寫高速緩存和利用GND驅(qū)動(dòng)器高速緩存。當(dāng)備份電源可用時(shí)該GND驅(qū)動(dòng)器將充分利用其高速緩存。
[0117]關(guān)閉寫高速緩存緩沖區(qū)沖洗可以增強(qiáng)SSD的性能。
[0118]7.禁止預(yù)取指:
SSD具有極低的查找次數(shù)而且沒有轉(zhuǎn)動(dòng)延遲,于是訪問次數(shù)不取決于特定段的位置。因此預(yù)取指失去其主要目的。另外,減少寫入SSD是優(yōu)化其性能的一部分,于是應(yīng)該禁止預(yù)取指。
[0119]8.高速緩存引導(dǎo)只進(jìn)行超級(jí)取指:
較好的途徑將是只設(shè)定高速緩存引導(dǎo)文件。超級(jí)取指確實(shí)有一個(gè)目的,而且僅僅將其完全關(guān)閉將只增大某些硬盤空間,而且只有在高速緩存文件在被禁止之后刪除時(shí)才如此。禁止超級(jí)取指將導(dǎo)致繁忙的機(jī)器減慢,因?yàn)樗鼘?yīng)用從硬盤交換到RAM。正因?yàn)樗且粋€(gè)SSD,并不意味著交換不出現(xiàn)或不會(huì)被察覺。
[0120]9.縮小資源回收箱的大小:
把資源回收箱設(shè)置為固定的和小的尺寸。視窗(Windows)將把該尺寸設(shè)置為SSD大小的10%。利用較小的,諸如300MB可能有助于釋放空間并減少SSD的寫入。
[0121]10.減少登錄:
操作系統(tǒng)(OS)寫入大量的事件登錄。除某些必要的登錄(事件登錄應(yīng)用、安全、系統(tǒng)、安全必要件)外,可以安全地使定期進(jìn)行驅(qū)動(dòng)器寫入的某些登錄停止。
[0122]11.視窗(Windows)可靠性監(jiān)視:
若OS在SSD上,則該監(jiān)視程序提供一個(gè)硬件和軟件問題隨著時(shí)間的概觀。它在事件(出現(xiàn))時(shí)和每小時(shí)寫入驅(qū)動(dòng)器。監(jiān)測(cè)的活動(dòng)可能使穩(wěn)定的系統(tǒng)減慢。
[0123]12.使用GND驅(qū)動(dòng)器上的RAM盤:
a) RAM盤對(duì)于所有PC(至少那些已有DRAM備用者)都是一個(gè)好主意。把全部臨時(shí)檔案夾、互聯(lián)網(wǎng)瀏覽器、火狐(Firefox)和Tbird高速緩存、視窗(Windows)事件登錄等記入RAM盤。針對(duì)掉電模式在沒有備份電源的情況下那些臨時(shí)文件在掉電時(shí)會(huì)丟失。不需要寫入硬盤的臨時(shí)文件可以安全地在掉電時(shí)丟失。
[0124]b)若RAM盤的內(nèi)容讀/寫到SSD上的一個(gè)映像文件,則RAM盤只會(huì)增加引導(dǎo)和關(guān)閉次數(shù)。重要的是判定哪些要寫回SSD。以外,在RAM盤中貯存臨時(shí)文件會(huì)提高系統(tǒng)性能,某些頻繁使用的應(yīng)用軟件可以貯存在RAM盤上,以減少那些應(yīng)用的啟動(dòng)時(shí)間。在系統(tǒng)關(guān)掉之后RAM盤上的數(shù)據(jù)將丟失。每次上電引導(dǎo)時(shí)都需要把該應(yīng)用軟件拷到RAM盤上。若用批文件拷貝,則時(shí)間將是漫長(zhǎng)的,因?yàn)橛刑喑叽缧〉奈募L問。利用映像文件是有幫助的。但若該映像文件包括帶有全部不同的數(shù)據(jù)和應(yīng)用軟件,則該映像文件大小將會(huì)太大,并且要用長(zhǎng)時(shí)間裝入RAM盤。在這種情況下,可以使用多個(gè)RAM盤來分開數(shù)據(jù),而頻繁使用的應(yīng)用軟件存入不同的RAM盤。于是,可以裝入和執(zhí)行帶有頻繁的應(yīng)用軟件的RAM盤,以節(jié)省引導(dǎo)時(shí)間。另外,掉電時(shí),該類型的RAM盤棄置即可。
[0125]c)有電池組備份電源可用時(shí),RAM盤可以用來存儲(chǔ)數(shù)據(jù)。電源失效或關(guān)斷時(shí)不僅臨時(shí)文件需要保持。只有當(dāng)計(jì)算機(jī)關(guān)閉(并把.1mg(文件)寫回SSD)時(shí)或者電源失效或關(guān)斷時(shí)才需要把RAM盤存入SSD。
[0126]下面通過實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。
[0127]圖2A-B顯示一個(gè)突出主機(jī)上的GND驅(qū)動(dòng)器的更詳細(xì)的示意圖。在圖2A中,OS內(nèi)核寫入并被高層文件過濾器驅(qū)動(dòng)器190 (圖1)攔截的主機(jī)數(shù)據(jù)傳送到GND驅(qū)動(dòng)器100,以便在被發(fā)送到文件系統(tǒng)驅(qū)動(dòng)器266之前,由壓縮引擎242壓縮和/或由加密引擎240加密。去復(fù)份引擎243找出和刪除重復(fù)的數(shù)據(jù)文件拷貝,以減少寫入負(fù)載。然后,低層文件過濾器驅(qū)動(dòng)器268再次攔截該數(shù)據(jù),以便由GND驅(qū)動(dòng)器100進(jìn)行更多的處理。
[0128]文件優(yōu)先級(jí)分類264根據(jù)低層文件過濾器驅(qū)動(dòng)器268指定的數(shù)據(jù)類型或由LBA指出對(duì)該數(shù)據(jù),諸如針對(duì)元數(shù)據(jù)(FAT,F(xiàn)DB),臨時(shí)文件、分頁(yè)文件或用戶數(shù)據(jù))進(jìn)行分類,。臨時(shí)文件包括視窗(windows)暫時(shí)性文件、互聯(lián)網(wǎng)瀏覽器暫時(shí)性文件等?;蛘撸瑢?duì)于諸如服務(wù)器等某些用途,該功能可以任選地加以禁止。操作被任務(wù)優(yōu)先級(jí)分配器260賦予一個(gè)優(yōu)先級(jí),使得優(yōu)先級(jí)較高的任務(wù)可以先于優(yōu)先級(jí)較低的任務(wù)執(zhí)行。性能調(diào)整器256可以定期調(diào)整這些優(yōu)先級(jí),以改善性能。然后,目標(biāo)分配器254把該數(shù)據(jù)發(fā)送到RAM盤驅(qū)動(dòng)器250,以便依數(shù)據(jù)類型而定,存入RAM盤188 (圖11 ),或數(shù)據(jù)寫高速緩存20。
[0129]寫入SSD的數(shù)據(jù)在發(fā)送到卷管理器270和SEED SSD 200以前可以由分組器134分組。分區(qū)管理器172和硬盤類驅(qū)動(dòng)器174可以指定該數(shù)據(jù)路由到選定的分區(qū)或硬盤。硬盤最小端口驅(qū)動(dòng)器138管理所連接的SSD的廠家規(guī)定的功能。解分組器136對(duì)從SEED SSD200取出的數(shù)據(jù)在被傳送到數(shù)據(jù)讀高速緩存132之前進(jìn)行解分組。
[0130]事務(wù)系統(tǒng)262保證該數(shù)據(jù)完全寫入SEED SSD 200?;謴?fù)管理器216確定哪些寫業(yè)務(wù)由于異常斷電而沒有完成,并協(xié)助該應(yīng)用進(jìn)行必要的重做或反重做,使數(shù)據(jù)正確。調(diào)度程序218管理事務(wù)系統(tǒng)262來管理和記錄對(duì)諸如開始、取消和提交等SSD業(yè)務(wù)的寫入。
[0131]當(dāng)電源監(jiān)測(cè)器248檢測(cè)到掉電時(shí),激活RAM盤沖洗/恢復(fù)管理器126,以便把來自數(shù)據(jù)寫高速緩存20和RAM盤188的數(shù)據(jù)轉(zhuǎn)移到SEED SSD 200,以便存入閃存存儲(chǔ)器。當(dāng)沖洗完成時(shí),沖洗/恢復(fù)管理器126向SEED SSD 200和備份電源176或電源管理305 (全部在圖1)發(fā)出售主命令。備份電源,若有的話,關(guān)斷該系統(tǒng)的電源,而只向SEED SSD 200供電。若使用電源管理305,則它將繼續(xù)向DRAM、SEED SSD 303、開關(guān)311和存儲(chǔ)器控制器309供電。沖洗/恢復(fù)管理器126可以在掉電之前定期把數(shù)據(jù)寫高速緩存20和RAM盤188的內(nèi)容沖洗到SEED SSD 200。
[0132]安全244可以在允許訪問SEED SSD 200或由GND驅(qū)動(dòng)器100高速緩存的數(shù)據(jù)之前,執(zhí)行口令核實(shí)處理。智能數(shù)據(jù)監(jiān)測(cè)器246把來自SEED SSD 200的S.M.A.R.T.監(jiān)測(cè)信息發(fā)送到SSD應(yīng)用程序180。智能數(shù)據(jù)監(jiān)測(cè)器246、電源/CPU監(jiān)測(cè)器248、安全244和RAM盤驅(qū)動(dòng)器250是任選的。
[0133]不同的節(jié)電模式249可以如圖2B所示得到支持。PRST模式251支持持續(xù)模式,在此模式下當(dāng)主電源失效或用戶選擇關(guān)機(jī)時(shí),保存數(shù)據(jù)和處理器狀態(tài)。當(dāng)用戶選擇關(guān)機(jī)和GND驅(qū)動(dòng)器的持續(xù)模式被用戶禁止使用時(shí),掉電模式253以一種受控的方式關(guān)閉系統(tǒng)電源。它將關(guān)閉全部尚未完成的事情并完全關(guān)閉計(jì)算機(jī)。切換用戶模式261,注銷當(dāng)前用戶并顯示一個(gè)屏幕,以便讓新的用戶以其名字和口令登錄。注銷模式259把用戶從該系統(tǒng)注銷,使得其他用戶隨后可以登錄。鎖定模式263鎖定屏幕并提示輸入口令。重啟模式265除諸如GND驅(qū)動(dòng)器等關(guān)鍵系統(tǒng)業(yè)務(wù)外,關(guān)閉全部應(yīng)用,和然后再次重新將其打開。休眠模式257使該系統(tǒng)處于低電力休眠模式,這允許較快的喚醒時(shí)間。靜止模式255使該系統(tǒng)處于關(guān)斷電源狀態(tài),同時(shí)把喚醒映像存入非易失存儲(chǔ)器。
[0134]圖3A是帶有耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)的方框示意圖。在這替代方案中,SEED SSD 200’直接接口到與非閃存存儲(chǔ)器342。SEED SSD 200’可以在沒有主機(jī)GND驅(qū)動(dòng)器的情況下獨(dú)立工作??梢詫?shí)現(xiàn)駐留在主機(jī)GND驅(qū)動(dòng)器上的某些功能。
[0135]SEED SSD 200’具有主機(jī)接口 16,利用諸如PCIe、SATA或萬用串行總線(USB)、NVMe、雷電(ThunderboIt)、eMMC、iSSD等與主機(jī)300(圖11 )通信。來自主機(jī)接口 16的主機(jī)數(shù)據(jù)發(fā)送到耐久性控制器360。
[0136]DRAM接口 12在耐久性控制器DRAM 340中讀出和寫入數(shù)據(jù)。耐久性控制器DRAM340可以存儲(chǔ)一個(gè)或多個(gè)RAM盤、高速緩存、S.M.A.R.T.信息、固件及其他緩沖區(qū)和表。DRAM340還可以存儲(chǔ)安全信息、壞頁(yè)管理用的表、映射表、刪除計(jì)數(shù)表、備用和交換塊及其他緩沖區(qū)和表。
[0137]刷新管理器202可以定期刷新低層SSD閃存存儲(chǔ)器342中的數(shù)據(jù)。沖洗恢復(fù)管理器43利用沖洗出去的數(shù)據(jù)管理恢復(fù)操作。臨時(shí)管理器348控制臨時(shí)數(shù)據(jù)。安全346管理安全功能。編程/刪除管理器41可以減慢頁(yè)面寫和塊刪除時(shí)間,以幫助延長(zhǎng)閃存單元氧化物層的壽命。較慢頁(yè)面寫/塊刪除時(shí)間可以應(yīng)用于TLC閃存,以便以縮短保持時(shí)間為代價(jià)增大耐久性。
[0138]多通道閃存接口 14在閃存存儲(chǔ)器342中編程數(shù)據(jù)頁(yè)和刪除塊,該閃存可以組織成幾個(gè)通道。ECC管理器338產(chǎn)生低層糾錯(cuò)碼(ECC),以便附在寫數(shù)據(jù)后面,和把所貯存的與重新產(chǎn)生的ECC比較,以便在讀出時(shí)糾錯(cuò)。另外,它管理需要額外ECC保護(hù)的閃存頁(yè),為那些頁(yè)生成ECC,和管理存儲(chǔ)和需要時(shí)取回ECC數(shù)據(jù)。壞頁(yè)管理器206跟蹤壞頁(yè)在閃存存儲(chǔ)器342中的位置。該可以延長(zhǎng)各塊的壽命,因?yàn)樵谠搲K中可能只有一頁(yè)是壞的,而其他頁(yè)可以繼續(xù)使用。更復(fù)雜的壞塊管理可以在總體上減少閃存驅(qū)動(dòng)器的損耗。
[0139]損耗分級(jí)器40可以提供兩個(gè)損耗分級(jí)方法。一個(gè)方法是動(dòng)態(tài)地從可用空塊中選擇損耗分級(jí)計(jì)數(shù)最低的塊,以便寫入數(shù)據(jù)。另一方法是基于損耗分級(jí)計(jì)數(shù)閾值。一旦達(dá)到該閾值,閃存數(shù)據(jù)塊便從一個(gè)物理塊(損耗分級(jí)計(jì)數(shù)低的)移動(dòng)到閃存存儲(chǔ)器342中其他空的物理塊中(損耗分級(jí)計(jì)數(shù)高的)。
[0140]本地命令隊(duì)列(NCQ)管理器52可以對(duì)來自主機(jī)300的主機(jī)命令重新排序,并管理一個(gè)通過主機(jī)接口 16接收的主機(jī)命令隊(duì)列。該管理器把主機(jī)命令裝入隊(duì)列,在這里對(duì)寫入進(jìn)行重新排序并加以結(jié)合,以便減少閃存寫入。[0141]RAID控制器50跨越與非閃存存儲(chǔ)器342的幾個(gè)通道寫入新數(shù)據(jù),并可以復(fù)制數(shù)據(jù),以便提供冗余和數(shù)據(jù)恢復(fù)。
[0142]進(jìn)行更新,以便由表管理器48管理映射表中的邏輯到物理的映射。另外,貯存在每個(gè)邏輯塊或頁(yè)上的數(shù)據(jù)類型,一旦被數(shù)據(jù)拆分管理器204識(shí)別和分類,表管理器48便對(duì)其進(jìn)行跟蹤,以便跟蹤臨時(shí)文件、分頁(yè)文件、FAT、FDB和用戶數(shù)據(jù)文件。作為另一方案,主機(jī)300可以通過售主命令把數(shù)據(jù)類型的信息送到SEED SSD 200,于是數(shù)據(jù)拆分管理器204不再重復(fù)GND驅(qū)動(dòng)器100所完成的工作?;蛘?,對(duì)于某些狀態(tài),該功能可以任選地被禁止。
[0143]修剪管理器42處理來自文件系統(tǒng)或主機(jī)300 OS的修剪命令。修剪命令指出該主機(jī)不再需要一個(gè)扇區(qū)并可以擦除或刪除。該被修剪的頁(yè)面在該頁(yè)面狀態(tài)表中被標(biāo)記為垃圾頁(yè)面,諸如‘100b’或‘101b’。進(jìn)行后臺(tái)垃圾收集時(shí),若該塊被識(shí)別為刪除候選,則該頁(yè)面不會(huì)被拷貝到新的塊。此刻修剪命令完成。修剪管理器42完成諸如跟蹤一個(gè)塊中哪個(gè)扇區(qū)和頁(yè)不再需要等系統(tǒng)開銷。垃圾收集器還可以用來跟蹤準(zhǔn)備好刪除的塊。一旦一個(gè)整塊不再需要,修剪管理器42便激活垃圾收集器或其他刪除機(jī)制,刪除該塊,以便該塊可以再用。去復(fù)份引擎243找出和刪除重復(fù)的數(shù)據(jù)文件拷貝,以減少寫入裝入。
[0144]S.M.A.R.T.功能39處理來自主機(jī)300的S.M.A.R.T.命令或售主命令,諸如監(jiān)視和控制糾錯(cuò)、損耗、壞塊及其他閃存存儲(chǔ)器管理。S.M.A.R.T.代表自檢測(cè)、分析和報(bào)告技術(shù)(Self-Monitoring, Analysis and Reporting Technology)。主機(jī)可以使用 S.M.A.R.T.命令組來監(jiān)視諸如上電時(shí)間、損耗分級(jí)計(jì)數(shù)等來自SSD器件的某些重要數(shù)據(jù)。主機(jī)可以使用該數(shù)據(jù)來診斷和識(shí)別SSD的壽命預(yù)期。它還可以使用該信息來根據(jù)該用法確定保證范圍。主機(jī)可以在經(jīng)歷實(shí)際損壞之前更換SSD驅(qū)動(dòng)器。在冗余獨(dú)立磁盤陣列(RAID)中,主機(jī)可以使用S.M.A.R.T.命令來避免比較昂貴的RAID 5配置。
[0145]事務(wù)管理器356保證數(shù)據(jù)完全寫入或傳送到與非閃存。超量配置208在與非閃存存儲(chǔ)器342中保留和管理備用塊。安全刪除管理器18完成較高安全性刪除操作,諸如向一個(gè)塊寫全零或全1,以便必要時(shí)去除數(shù)據(jù)。
[0146]電源備份195提供備份電源,使得當(dāng)?shù)綦姇r(shí)SEED SSD 200’可以來自耐久性控制器DRAM 340的數(shù)據(jù)寫入與非閃存存儲(chǔ)器342。
[0147]圖3B是帶有在eMMC中儲(chǔ)存數(shù)據(jù)的耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)的方框示意圖。在該替代方案中,SEED SSD 200’有接口通向包含閃存存儲(chǔ)器的增強(qiáng)多媒體卡(eMMC)343。
[0148]SEED SSD 200’具有主機(jī)接口 16,利用諸如PCIe、SATA或通用串行總線(USB)、NVMe、雷電(Thunderbolt)、eMMC、iSSD等總線與主機(jī)300(圖1)通信。來自主機(jī)接口 16的主機(jī)數(shù)據(jù)發(fā)送至耐久性控制器360’。
[0149]DRAM接口 12把數(shù)據(jù)讀出和寫入耐久性控制器DRAM 340。耐久性控制器DRAM 340可以存儲(chǔ)一個(gè)或多個(gè)RAM盤、高速緩存、S.M.A.R.T.信息、固件及其他緩沖區(qū)和表。DRAM 340還可以存儲(chǔ)安全信息及其他緩沖區(qū)和表。
[0150]沖洗恢復(fù)管理器43利用沖洗出去的數(shù)據(jù)管理恢復(fù)操作。臨時(shí)管理器348控制臨時(shí)數(shù)據(jù)。安全346管理安全功能??梢杂脡嚎s/解壓引擎242和加密/解密引擎240對(duì)數(shù)據(jù)進(jìn)行操作。ECC/LDPC管理器339管理需要額外ECC保護(hù)的閃存頁(yè)、為那些頁(yè)生成ECC和管理存儲(chǔ)和需要時(shí)取回ECC數(shù)據(jù)。可以使用低密度奇偶檢驗(yàn)(LDPC),而不用ECC。[0151]多通道eMMC接口 17對(duì)eMMC 343中數(shù)據(jù)進(jìn)行編程,它可以組織成幾個(gè)通道。本地命令隊(duì)列(NCQ)管理器52可以對(duì)來自主機(jī)300的主機(jī)命令進(jìn)行重新排序,并管理通過主機(jī)接口 16接收的主機(jī)命令隊(duì)列。該管理器把主機(jī)命令裝入命令隊(duì)列,在這里寫入被重新排序和結(jié)合,以便減少閃存寫入。RAID控制器50跨越幾個(gè)eMMC 343通道寫入新數(shù)據(jù)并可以復(fù)制數(shù)據(jù),以便提供冗余和數(shù)據(jù)恢復(fù)。
[0152]表管理器48跟蹤貯存在每個(gè)邏輯塊或頁(yè)上的數(shù)據(jù)類型,使得臨時(shí)文件、分頁(yè)文件、FAT、FDB、和用戶數(shù)據(jù)文件一旦被數(shù)據(jù)拆分管理器204識(shí)別和分類,便對(duì)其進(jìn)行跟蹤。作為另一方案,主機(jī)可以把數(shù)據(jù)類型信息通過售主命令送到SEED SSD,于是數(shù)據(jù)拆分管理器204不再重復(fù)GND驅(qū)動(dòng)器100完成的工作。或者,對(duì)于某些狀態(tài)該功能可以任選地被禁止。
[0153]修剪管理器42處理來自文件系統(tǒng)或主機(jī)300 OS的修剪命令。該修剪命令指出,該主機(jī)不再需要一個(gè)扇區(qū),它可以被擦除或刪除。修剪管理器42將該修剪信息發(fā)送至eMMC343。去復(fù)份引擎243找出和刪除數(shù)據(jù)文件的重復(fù)拷貝,以減少寫入負(fù)載。
[0154]S.M.A.R.T.功能39處理來自主機(jī)300的S.M.A.R.T.命令或售主命令,諸如監(jiān)視和控制糾錯(cuò)、損耗、壞塊及其他閃存存儲(chǔ)器管理。S.M.A.R.T.功能39將修正來自eMMC 343的S.M.A.R.T.信息。主機(jī)可以使用S.M.A.R.T.命令組來監(jiān)視來自SSD器件的某些重要數(shù)據(jù),諸如上電時(shí)間、損耗分級(jí)計(jì)數(shù)等。主機(jī)可以使用該數(shù)據(jù)來診斷和識(shí)別該SSD的壽命預(yù)期。它還可以使用該信息來根據(jù)該用法確定保證范圍。主機(jī)可以在經(jīng)歷實(shí)際損壞之前更換SSD驅(qū)動(dòng)器。在冗余獨(dú)立磁盤陣列(RAID)中,主機(jī)可以使用S.M.A.R.T.命令來避免比較昂貴的RAID 5配置。
[0155]事務(wù)管理器356保證數(shù)據(jù)完全寫入或傳送到eMMC 343。超量配置208保留和管理eMMC 343中的備用塊。安全刪除管理器18完成安全性較高的刪除操作,諸如向一個(gè)塊寫全零或全1,以便必要時(shí),去除數(shù)據(jù)。
[0156]電源備份195提供備份電源,使得掉電時(shí)SEED SSD 200’可以把耐久性控制器DRAM340的數(shù)據(jù)寫入eMMC 343。
[0157]圖3C是帶有耐久性控制器的超級(jí)增強(qiáng)耐久性器件(SEED)eMMC的方框示意圖。在這替代方案中,SEED eMMC 205直接接口至與非閃存存儲(chǔ)器342。
[0158]eMMC主機(jī)接口 19使用eMMC協(xié)議與主機(jī)300 (圖1)通信。來自eMMC主機(jī)接口 19的主機(jī)數(shù)據(jù)發(fā)送至耐久性控制器360"。
[0159]SEED SRAM 345可以存儲(chǔ)S.M.A.R.T.信息、固件、壞頁(yè)管理用的表、映射表、刪除計(jì)數(shù)表、備用和交換塊及其他緩沖區(qū)和表。
[0160]刷新管理器202可以定期刷新低層SSD閃存存儲(chǔ)器342中的數(shù)據(jù)。多通道閃存接口 14在閃存存儲(chǔ)器342中編程數(shù)據(jù)頁(yè)和刪除塊,它可以組織成幾個(gè)通道。ECC管理器338產(chǎn)生低層糾錯(cuò)碼(ECC),以便附在寫數(shù)據(jù)后面,并把貯存的ECC與重新產(chǎn)生的ECC比較,以便在讀出時(shí)檢測(cè)和糾錯(cuò)。另外,它還管理需要額外ECC保護(hù)的閃存頁(yè)、為那些頁(yè)生成ECC和管理存儲(chǔ)和需要時(shí)取回ECC數(shù)據(jù)。壞頁(yè)管理器206跟蹤閃存存儲(chǔ)器342中壞頁(yè)的位置。它可以延長(zhǎng)各塊的壽命,因?yàn)樵谠搲K中可能只有一頁(yè)是壞的,而其他頁(yè)可以繼續(xù)使用。更復(fù)雜的壞塊管理可以在總體上減少閃存驅(qū)動(dòng)器的損耗。
[0161]損耗分級(jí)器40可以提供兩種損耗分級(jí)方法。一種方法是動(dòng)態(tài)地從可用空塊中選擇損耗分級(jí)計(jì)數(shù)最低的塊來寫入數(shù)據(jù)。另一方法基于損耗分級(jí)計(jì)數(shù)閾值。一旦達(dá)到該閾值,閃存的數(shù)據(jù)塊便從閃存存儲(chǔ)器342中一個(gè)物理塊(損耗分級(jí)計(jì)數(shù)低的)移動(dòng)到其他空物理塊(損耗分級(jí)計(jì)數(shù)高的)。
[0162]編程/刪除管理器41可以減慢頁(yè)寫入和塊刪除時(shí)間,以便幫助延長(zhǎng)該閃存單元的氧化物層的壽命。較慢頁(yè)寫入/塊刪除時(shí)間可以應(yīng)用于TLC閃存,以便以縮短保持時(shí)間為代價(jià)增強(qiáng)耐久性。
[0163]S.M.A.R.T.功能39處理來自主機(jī)300的S.M.A.R.T.命令或售主命令,諸如監(jiān)視和控制糾錯(cuò)、損耗、壞塊及其他閃存存儲(chǔ)器管理。S.M.A.R.T.代表Self-Monitoring,Analysis and Reporting Technology (自檢測(cè)、分析和報(bào)告技術(shù))。主機(jī)可以使用S.M.A.R.T.命令組來監(jiān)視來自SSD器件的某些重要數(shù)據(jù),諸如上電時(shí)間、損耗分級(jí)計(jì)數(shù)等。主機(jī)可以使用該數(shù)據(jù)來診斷和識(shí)別該SSD的壽命預(yù)期。它還可以使用該信息來根據(jù)該用法確定保證范圍。主機(jī)可以在經(jīng)歷實(shí)際的損壞之前更換SSD驅(qū)動(dòng)器。在冗余獨(dú)立磁盤陣列(RAID)中,主機(jī)可以使用S.M.A.R.T.命令來避免比較昂貴的RAID 5配置。
[0164]事務(wù)管理器356保證數(shù)據(jù)完全寫入或傳送到與非閃存。超量配置208保留和管理與非閃存存儲(chǔ)器342中的備用塊。安全刪除管理器18完成安全性較高的刪除操作,諸如向一個(gè)塊寫全零或全1,以便必要時(shí)去除數(shù)據(jù)。RAID控制器50跨越與非閃存存儲(chǔ)器的幾個(gè)通道寫入新數(shù)據(jù),并可以復(fù)制數(shù)據(jù),以便提供冗余和數(shù)據(jù)恢復(fù)。
[0165]圖4A-C是表示為通過GND驅(qū)動(dòng)器100寫入進(jìn)行數(shù)據(jù)拆分和分組的流程圖。主機(jī)向數(shù)據(jù)拆分管理器108發(fā)送寫入命令,另外,它還接收由壓縮/加密引擎106,若它被啟用,壓縮或加密之后的主機(jī)寫數(shù)據(jù)。加密或加壓文件用的壓縮表項(xiàng)或元頁(yè)分組表可以在元數(shù)據(jù)高速緩存120中修改。
[0166]GND驅(qū)動(dòng)器100 (圖2)內(nèi)的數(shù)據(jù)拆分管理器108按數(shù)據(jù)類型,諸如通過檢驗(yàn)文件擴(kuò)展名或通過FAT和FDB分析,對(duì)主機(jī)寫數(shù)據(jù)進(jìn)行分類。臨時(shí)文件貯存在RAMa _01中的臨時(shí)文件區(qū)124中,帶有一個(gè)表項(xiàng)在元數(shù)據(jù)高速緩存120中修改。當(dāng)關(guān)斷電源或電源失效時(shí),臨時(shí)文件區(qū)124存入SEED SSD 200的持續(xù)模式DRAM映像203。或者,響應(yīng)用戶選擇,臨時(shí)文件不存入持續(xù)模式DRAM映像203。
[0167]分頁(yè)文件貯存在高速緩存內(nèi)的分頁(yè)區(qū)38中,并通過分頁(yè)文件分組處理116,與其他包含同樣分頁(yè)文件數(shù)據(jù)類型的頁(yè)分組進(jìn)入元頁(yè)。該分組后的頁(yè)將發(fā)送至SEED SSD 200,若在正常運(yùn)行過程中,高速緩存中的分頁(yè)文件區(qū)38沒有足夠的空間,則貯存在SSD驅(qū)動(dòng)器卷201中。分組文件用的表項(xiàng)可以在元數(shù)據(jù)高速緩存120中修改。當(dāng)關(guān)斷電源或電源失效時(shí),高速緩存內(nèi)分頁(yè)文件區(qū)38中未儲(chǔ)存的數(shù)據(jù)和元頁(yè)分組116貯存在持續(xù)模式的DRAM映像203中,不在SEED SSD 200的SSD驅(qū)動(dòng)器卷201中?;蛘?,通過用戶選擇,分頁(yè)文件不貯存在持續(xù)模式DRAM映像203中。
[0168]諸如FAT和FDB登記項(xiàng)等元數(shù)據(jù)文件貯存在元數(shù)據(jù)高速緩存120中。FDB可以是由FDB元頁(yè)分組處理114分組進(jìn)入元頁(yè)。若在正常運(yùn)行過程中,高速緩存內(nèi)的元數(shù)據(jù)120沒有足夠的空間,則該分組后的頁(yè)將發(fā)送至SEED SSD 200,并貯存在SSD驅(qū)動(dòng)器卷201。分組文件用的表項(xiàng)可以在元數(shù)據(jù)高速緩存120中修改。當(dāng)關(guān)斷電源或電源失效時(shí),高速緩存內(nèi)元數(shù)據(jù)120中未儲(chǔ)存的數(shù)據(jù)和元頁(yè)分組114貯存在持續(xù)模式DRAM映像203中,不存入SEEDSSD 200的SSD驅(qū)動(dòng)器卷201。[0169]用戶文件貯存在數(shù)據(jù)寫高速緩存20中,并與包含同一用戶或非臨時(shí)文件數(shù)據(jù)類型的其他頁(yè)一起,由元頁(yè)用戶文件分組處理113分組存入元頁(yè)。若在正常運(yùn)行過程中,在高速緩存中數(shù)據(jù)寫入20沒有足夠的空間,則該分組后的頁(yè)將發(fā)送至SEED SSD 200,并存入SSD驅(qū)動(dòng)器卷201。分組文件用的表項(xiàng)可以在元數(shù)據(jù)高速緩存120中修改。當(dāng)關(guān)斷電源或電源失效時(shí),高速緩存內(nèi)的數(shù)據(jù)寫20中未儲(chǔ)存的數(shù)據(jù)和元頁(yè)分組113貯存在持續(xù)模式DRAM映像203中,不存入SEED SSD 200的SSD驅(qū)動(dòng)器卷201。
[0170]圖4B表示當(dāng)關(guān)斷電源或電源失效時(shí)在持續(xù)模式過程中附加的寫入。RAM盤205拷貝至持續(xù)模式DRAM映像203,但不拷貝至SSD驅(qū)動(dòng)器卷201。處理器間(IP)的信息貯存在IPDRAM 213中,并拷入持續(xù)模式DRAM映像203,但不拷入SSD驅(qū)動(dòng)器卷201。當(dāng)關(guān)斷電源或電源失效,和持續(xù)模式被啟用時(shí),SSD驅(qū)動(dòng)器100將諸如處理器環(huán)境207、CPU高速緩存209和恢復(fù)環(huán)境213等信息沖洗進(jìn)主機(jī)300的DRAM,并在把DRAM數(shù)據(jù)存入持續(xù)模式DRAM映像203之前,更新IPDRAM 213。為了完成把數(shù)據(jù)寫入持續(xù)模式DRAM映像203,需要電池組或其他備份電源,以保持有效一段時(shí)間。然后,當(dāng)主電源恢復(fù)時(shí),該數(shù)據(jù)可以由持續(xù)模式DRAM映像203取出。請(qǐng)注意,由GND驅(qū)動(dòng)器處理的寫數(shù)據(jù)可以經(jīng)過壓縮、加密或分組處理。
[0171]圖4C表示帶有掉電模式,不是主機(jī)300沒有備份電源176,就是用戶選擇選項(xiàng)1204選擇掉電模式1210(圖29A, B)。
[0172]綠色或低功率閃存器件可以使用與非閃存存儲(chǔ)器。GND驅(qū)動(dòng)器不會(huì)利用DRAM高速緩存20,38和120來避免當(dāng)?shù)綦姇r(shí)關(guān)鍵數(shù)據(jù)的丟失。SSD驅(qū)動(dòng)器卷201在由元頁(yè)用戶文件分組處理113分組的元頁(yè)中接收用戶或非臨時(shí)文件數(shù)據(jù)類型。另外,SSD驅(qū)動(dòng)器卷201還接收被分頁(yè)文件分組處理116分組為元頁(yè)的分頁(yè)文件數(shù)據(jù)類型,和被FDB元頁(yè)分組處理114分組為元頁(yè)的FDB。在正常運(yùn)行過程中,一旦元頁(yè)寫滿,所有這三個(gè)元頁(yè)分組便都從主機(jī)300被發(fā)送至SSD驅(qū)動(dòng)器卷201。掉電時(shí)未完成的元頁(yè)分組可能丟失?;蛘?,若SEED SSD具有DRAM區(qū),用于這三個(gè)元頁(yè)分組的鏡像映像,則掉電時(shí)數(shù)據(jù)的丟失可以減到最少。關(guān)斷電源和電源失效時(shí),貯存在狀11盤_01臨時(shí)文件區(qū)124的臨時(shí)文件丟失。
[0173]圖5A-C是表示針通過GND驅(qū)動(dòng)器為掉電和持續(xù)方式讀出的數(shù)據(jù)進(jìn)行分類和解分組的流程圖。主機(jī)向數(shù)據(jù)拆分管理器108發(fā)送一個(gè)讀命令,該管理器在用壓縮/加密引擎解壓或解密之后還向主機(jī)發(fā)出讀數(shù)據(jù)。GND驅(qū)動(dòng)器100(圖2)內(nèi)的數(shù)據(jù)拆分管理器108按數(shù)據(jù)類型對(duì)主機(jī)讀數(shù)據(jù)進(jìn)行分類,并根據(jù)該數(shù)據(jù)類型對(duì)數(shù)據(jù)進(jìn)行選擇。
[0174]在圖5A中,最近該用戶數(shù)據(jù)可能已經(jīng)寫入數(shù)據(jù)寫高速緩存20,并仍然可從其中獲得。該數(shù)據(jù)可以貯存在SEED SSD 200的SSD驅(qū)動(dòng)器卷201,而且必須首先用用戶數(shù)據(jù)元頁(yè)解分組處理113解分組,并進(jìn)入數(shù)據(jù)寫高速緩存20。貯存在SSD驅(qū)動(dòng)器卷201的FAT/FDB數(shù)據(jù)在放入元數(shù)據(jù)高速緩存120之前,首先由FAT/FDB元頁(yè)解分組處理114解分組。
[0175]貯存在SEED SSD 200的SSD驅(qū)動(dòng)器卷201的分頁(yè)文件首先用分頁(yè)文件元頁(yè)解分組處理116解分組,并裝入高速緩存中的分頁(yè)區(qū)38。
[0176]臨時(shí)文件不貯存在閃存存儲(chǔ)器中,而被數(shù)據(jù)拆分管理器108從狀11盤_01中的臨時(shí)文件區(qū)124讀出。在上電重新引導(dǎo)過程中利用持續(xù)模式,當(dāng)關(guān)斷電源或電源失效時(shí),那些貯存在持續(xù)模式DRAM映像203的高速緩存20,38,120和元頁(yè)分組113,114,116,裝回它們?cè)贒RAM中的同一位置。
[0177]圖5B表示在持續(xù)模式和上電重新引導(dǎo)過程中附加的讀類型。RAM盤205可以從持續(xù)模式DRAM映像203拷貝。處理器間(IP)的信息可以從持續(xù)模式DRAM映像203拷貝至IPDRAM 213。諸如處理器環(huán)境207、CPU高速緩存209和恢復(fù)環(huán)境213等沖洗出去的信息從持續(xù)模式DRAM映像203拷貝。
[0178]圖5C表示掉電模式,SSD驅(qū)動(dòng)器卷201提供由元頁(yè)用戶文件分組處理113分組的元頁(yè)中的用戶或非臨時(shí)文件數(shù)據(jù)類型。SSD驅(qū)動(dòng)器卷201還提供被分頁(yè)文件分組處理116分組進(jìn)入元頁(yè)的分頁(yè)文件數(shù)據(jù)類型,和被FDB元頁(yè)分組處理114分組進(jìn)入元頁(yè)的FDB。一旦向RAM盤存儲(chǔ)器提供的電力耗盡,貯存在狀11盤_01臨時(shí)文件區(qū)124中的臨時(shí)文件便丟失。
[0179]圖6是帶有備份電源的主板示意圖。主板361’具有電源區(qū)358’帶有從備份電源351接收電力PWR的主機(jī)電源輸入67。備份電源351接收交流電源輸入,并具有一個(gè)內(nèi)部電池組,以便在交流電源掉電時(shí)供電PWR—段時(shí)間。當(dāng)交流電源掉電時(shí),從備份電源351向CPU 76發(fā)送一個(gè)掉電信號(hào)。然后CPU 76可以啟動(dòng)掉電例程??梢约せ钚酒M80內(nèi)的DRAM控制器84,從安裝在DRAM插槽354內(nèi)的DRAM讀出數(shù)據(jù),并利用存儲(chǔ)接口 82把該數(shù)據(jù)寫入SSD 357中的閃存存儲(chǔ)器。SSD電源由主板361’從主機(jī)電源輸入67提供。或者,DRAMCTLR(DRAM控制器)84可以駐留在CPU 76中,而不在芯片組80內(nèi)。備份電源351可以有直流電源DC PWR,代替交流電源AC PWR。
[0180]圖7是帶有NVM控制器的電源隔離的主板的示意圖。主板361具有隔離的電源區(qū)358,它可以用開關(guān)60,62與其他組件隔離。
[0181]諸如萬用電源等主電源向隔離電源區(qū)358提供不間斷電源。電源64向全部組件供電。當(dāng)關(guān)斷電源或電源失效時(shí),CPU 350檢測(cè)到掉電。SSD驅(qū)動(dòng)器100將使用一段非常短的時(shí)間進(jìn)行沖洗,并準(zhǔn)備諸如處理器環(huán)境207、CPU高速緩存209和恢復(fù)環(huán)境213等信息,然后向主機(jī)300的DRAM更新IPDRAM 213。此后,它將向NVM控制器70發(fā)送CPU HALT (停止)信號(hào),以便啟動(dòng)DRAM 354內(nèi)容向SSD 357的存儲(chǔ)處理。CPU 350將停止,而主機(jī)300將掉電,電源區(qū)358除外。收到CPU HALT信號(hào)之后,NVM控制器70激活開關(guān)控制,以便使開關(guān)60斷開芯片組80中DRAM控制器84,并使開關(guān)62斷開芯片組80中的存儲(chǔ)接口 82。或者,芯片組80可以集成進(jìn)CPU 350。
[0182]然后,NVM控制器70利用它的DRAM控制器74從DRAM插槽354中的DRAM讀出數(shù)據(jù),并使用其SSD存儲(chǔ)接口 72把該數(shù)據(jù)寫入SSD 357。若使用IPDRAM方案,則只把IPDRAM213指向的部分DRAM內(nèi)容354備份進(jìn)SSD,而不是備份整個(gè)DRAM內(nèi)容。
[0183]因?yàn)镃PU 350和芯片組80被開關(guān)60,62隔離,所以它們可以掉電,保存電力使得NVM控制器70可以把DRAM數(shù)據(jù)拷入SSD 357。剩余UPS電力可以只由NVM控制器70及隔離電源區(qū)358內(nèi)的其他組件使用。
[0184]上電重新引導(dǎo)時(shí),CPU 350將向NVM控制器70發(fā)送一個(gè)CPU INIT (初始化)信號(hào),而且CPU 350不訪問DRAM 354或SSD 357,但將等待NVM控制器完成數(shù)據(jù)向DRAM 354的裝入。然后,該NVM控制器將通過控制開關(guān)60和62接管DRAM和SSD總線信號(hào)。此后它將把持續(xù)模式DRAM映像裝入DRAM 354。一旦裝入完成,它將向CPU 350發(fā)出SUCCESS/FAIL(成功/失敗)信號(hào),以便指明任務(wù)完成,并釋放DRAM和SSD總線信號(hào),把控制交回CPU/芯片組。CPU 350將進(jìn)行上電引導(dǎo)處理。
[0185]圖8表示處理器間的存儲(chǔ)器(IH)RAM 213)針對(duì)只把選定的DRAM內(nèi)容存入持續(xù)模式DRAM映像203的情況的登記項(xiàng)。第一字節(jié)可以是簽名,諸如0x55AA。每個(gè)記錄都有一個(gè)用以決定這組資料是否在掉電時(shí)需要備份儲(chǔ)存DEF,也就是說OxOO指示該記錄所指向的數(shù)據(jù)在掉電時(shí)不必備份,0x01指示需要備份所指向的數(shù)據(jù),或OxFF用于IPDRAM中最后有效的記錄。更詳細(xì)可以利用剩余號(hào)碼0x02至OxFE實(shí)現(xiàn),以便識(shí)別不同類型的數(shù)據(jù),諸如0x02用于處理器環(huán)境207,0x03針對(duì)數(shù)據(jù)寫高速緩存20等。另外,每個(gè)記錄都包含一個(gè)指針,指示主機(jī)DRAM中的起始地址,而長(zhǎng)度字段指示有關(guān)數(shù)據(jù)的總長(zhǎng)度。每個(gè)記錄都總共有10字節(jié)。對(duì)于512字節(jié)的扇區(qū),它可以保存51個(gè)記錄。OxFF記錄不必位于最后記錄。
[0186]掉電時(shí),NVM控制器70 (圖7)或CPU 76 (圖6)執(zhí)行的掉電例程可以讀出IPDRAM的每個(gè)記錄(在DRAM的部分存儲(chǔ)的情況下),并決定當(dāng)DEF字段不是0x00或OxFF時(shí)是否把該數(shù)據(jù)從DRAM拷貝至SSD。IPDRAM將位于DRAM的一個(gè)固定的已知地址上,使得不是CPU76 (圖6),就是CPU 350和NVM控制器70 (圖7)將訪問同一位置,而不會(huì)引起混亂。
[0187]圖9是帶有RAID耐久性控制器的PCIe SEED SSD的方框示意圖。當(dāng)關(guān)斷電源或電源失效時(shí),該P(yáng)CIe SEED SSD控制器將實(shí)現(xiàn)持續(xù)模式。在這替代方案中,PCIe SEED SSD 200”直接接口到由RAID控制器50訪問的SSD 364,它冗余地儲(chǔ)存數(shù)據(jù)。
[0188]PCIe SEED SSD 200”具有主機(jī)接口 16,它利用外圍組件快速互聯(lián)(peripheralcomponent Interconnect express (PCIe))總線與主機(jī) 300(圖1)通信。來自主機(jī)接口 16的主機(jī)數(shù)據(jù)發(fā)送至耐久性控制器360。
[0189]DRAM接口 12在 SSD耐久性平移層(Endurance Translation Layer (ETL))DRAM 368中讀出和寫入數(shù)據(jù)。DRAM 368可以存儲(chǔ)一個(gè)或多個(gè)RAM盤、高速緩存、S.M.A.R.T.信息、固件、安全信息及其他緩沖區(qū)和表。
[0190]刷新管理器202可以定期刷新SSD 364中的數(shù)據(jù)。沖洗恢復(fù)管理器43利用沖洗出去的數(shù)據(jù)管理恢復(fù)操作。安全346管理安全功能。
[0191]本地命令隊(duì)列(NCQ)管理器52可以對(duì)來自主機(jī)300的主機(jī)命令進(jìn)行重新排序,并管理通過主機(jī)接口 16接收的主機(jī)命令隊(duì)列。該管理器把主機(jī)命令裝入命令隊(duì)列,在這里對(duì)寫入重新排序并加以結(jié)合,以便減少閃存寫入。
[0192]RAID控制器50跨越SSD 364的幾個(gè)通道寫入新數(shù)據(jù),并可以復(fù)制數(shù)據(jù),以便提供冗余和數(shù)據(jù)恢復(fù)。
[0193]表管理器48跟蹤貯存在每個(gè)邏輯塊或頁(yè)上的數(shù)據(jù)類型,以便臨時(shí)文件、分頁(yè)文件、FAT、FDB和用戶數(shù)據(jù)文件一旦被該數(shù)據(jù)拆分管理器識(shí)別和分類,便對(duì)其進(jìn)行跟蹤。
[0194]S.M.A.R.T.功能39處理來自主機(jī)300的S.M.A.R.T.命令或售主命令,諸如監(jiān)視和控制糾錯(cuò)、損耗、壞塊及其他閃存存儲(chǔ)器管理。S.M.A.R.T.代表Self-Monitoring,Analysis and Reporting Technology (自檢測(cè),分析和報(bào)告技術(shù))。主機(jī)可以使用S.M.A.R.T.命令組來監(jiān)視來自SSD器件的某些重要數(shù)據(jù),諸如上電時(shí)間、損耗分級(jí)計(jì)數(shù)等。主機(jī)可以使用該數(shù)據(jù)來診斷和識(shí)別該SSD的壽命預(yù)期。它還可以使用該信息來根據(jù)該用法確定保證范圍。主機(jī)可以在經(jīng)歷實(shí)際損壞之前更換SSD驅(qū)動(dòng)器。在RAID中,主機(jī)可以使用
S.M.A.R.T.命令來避免比較昂貴的RAID 5配置。
[0195]事務(wù)管理器356保證該數(shù)據(jù)完全寫入或傳送到SSD 364。電源備份195提供備份電源,以便PCIe SEED SSD 200”可以在掉電時(shí)把持續(xù)模式數(shù)據(jù)從SSD ETL DRAM 368寫入備份SSD 366 或 SSD 364。
[0196]圖10是前端備份電源的示意圖。來自供電線路的交流電網(wǎng)電源被功率整流器420整流,并用電容388和電阻392濾波,以便通過二極管394向電池組380充電。升壓器422向DC-DC(直流-直流)逆變器372提供一個(gè)升壓后的電壓,當(dāng)?shù)綦姍z測(cè)器418檢測(cè)到交流電網(wǎng)掉電時(shí)向功率開關(guān)382提供備份電源。否則,功率開關(guān)382把交流電網(wǎng)電源連接至主機(jī)375上的電源376。電源376可以提供各種各樣的電壓,諸如12v,5v和3.3v。來自備份電源419中的掉電檢測(cè)器418的掉電信號(hào)也可以被引導(dǎo)到主機(jī)375。
[0197]圖11表示主板上的內(nèi)部電源樹。一個(gè)12V主板電源經(jīng)電容388和電阻392濾波,以便通過二極管394向電池組380充電。電池組380可以是一個(gè)電池組或超級(jí)電容,掉電時(shí)它通過電感396和齊納二極管398提供本機(jī)備份電源。把來自電池組380的小于12V轉(zhuǎn)換為恒定的12V輸出的分步直-直轉(zhuǎn)換器370通過晶體管390接收備份電源,并向電容402充電,以便調(diào)節(jié)向功率開關(guān)382提供的備份電源。濾波電容402對(duì)分步DC-DC轉(zhuǎn)換器370輸出進(jìn)行濾波。
[0198]當(dāng)功率開關(guān)信號(hào)PWR_SW有效時(shí),功率開關(guān)382選擇12V主板電源,但當(dāng)?shù)綦姇r(shí)選擇備份電源。被功率開關(guān)382選定的該12V電源進(jìn)一步被其他DC-DC轉(zhuǎn)換器406,408,410,412,414,416改變,以便向涉及把DRAM備份至SSD方案的主板提供所需要的電力。
[0199]圖12A-C突出NVM控制器用的隔離電源開關(guān)。圖12A表示NVM控制器430,收到電源VNVMX和接地,和往來于CPU的不同的控制信號(hào)。DC-DC轉(zhuǎn)換器406向NVM控制器70、開關(guān)60,62等提供不同的電壓電平的電源。DC-DC轉(zhuǎn)換器408,410,412為DRAM有關(guān)電源提供不同電壓電平的電源。DC-DC轉(zhuǎn)換器414,416根據(jù)SSD接口是何種類型而被選擇,并提供不同電壓電平的電源。
[0200]NVM控制器430向圖12B,12C中的開關(guān)432,434產(chǎn)生開關(guān)控制(信號(hào))SW_CTL。開關(guān)432,434在CPU和NVM輸入信號(hào)之間進(jìn)行選擇,以便連接至DRAM或SSD。對(duì)于存儲(chǔ)器模塊的一個(gè)信道,在該實(shí)施例中,需要12個(gè)14位開關(guān)434,或需要單個(gè)集成160位開關(guān)432 (圖12B)。
[0201]圖13表示帶有集成開關(guān)的NVM控制器。起圖7中NVM控制器70作用的NVM控制器428具有起圖7開關(guān)60,62的作用的集成開關(guān)426。內(nèi)部NVM DRAM和SSD總線直接連接至集成開關(guān)426而不要求外部引腿?;蛘撸琋VM控制器428可以集成進(jìn)CPU或芯片組。在那種情況下,它將簡(jiǎn)化PCB設(shè)計(jì),并若CPU的其他部分可以在關(guān)斷電源或失效持續(xù)模式的過程中切斷電源,則降低對(duì)備份電源的要求。
[0202]圖14A-B顯示主機(jī)上DRAM持續(xù)模式用的掉電例程。參見圖3A。當(dāng)收到掉電中斷和數(shù)據(jù)完整性位被置位時(shí),步驟503,把處理器環(huán)境存入DRAM,步驟507,把一個(gè)指向所存數(shù)據(jù)的指針和長(zhǎng)度存入IPDRAM 213。把CPU高速緩存沖洗至DRAM,步驟509,并使高速緩存失效。在IPDRAM建立一個(gè)所保存的數(shù)據(jù)的項(xiàng)目。
[0203]在DRAM建立恢復(fù)環(huán)境,步驟513,并建立一個(gè)恢復(fù)環(huán)境用的IPDRAM項(xiàng)目。然后,把IPDRAM內(nèi)容寫入SEED SSD 200的持續(xù)模式DRAM映像203,步驟515。
[0204]在圖14B中,讀出IPDRAM內(nèi)容,從第一記錄啟動(dòng),步驟585。當(dāng)?shù)谝蛔止?jié)是FF時(shí),步驟575,則已經(jīng)達(dá)到IPDRAM記錄的末尾。在持續(xù)模式DRAM映像203中置位拷貝成功標(biāo)志,步驟579。所拷貝的DRAM映像可以作為映像文件加以貯存,或者一個(gè)SSD分區(qū)至少與DRAM的尺寸匹配。
[0205]對(duì)于其他記錄,步驟575,從下一個(gè)項(xiàng)目讀出所指向的數(shù)據(jù)起始地址的指針及其長(zhǎng)度,步驟577。從DRAM讀出所指向的數(shù)據(jù),寫入持續(xù)模式DRAM映像203和利用售主命令存入SSD,步驟581。
[0206]圖15A-B顯示PCIe RAID控制器的DRAM持續(xù)模式用的掉電例程。當(dāng)從主機(jī)電源輸入用的電源監(jiān)測(cè)器收到掉電中斷時(shí),把處理器環(huán)境存入DRAM,步驟564。把高速緩存沖洗至DRAM,步驟566并使之失效。
[0207]在DRAM中建立恢復(fù)環(huán)境,步驟568。在DRAM中把沖洗成功標(biāo)志置位,步驟570。然后,把IPDRAM內(nèi)容寫入SSD,步驟572。由PCIe控制器保存IPDRAM。
[0208]在圖15B中,讀出IPDRAM內(nèi)容,從第一記錄啟動(dòng),步驟584。當(dāng)?shù)谝蛔止?jié)是FF時(shí),步驟574,則已經(jīng)達(dá)到IPDRAM的末尾。在DRAM中置位拷貝成功標(biāo)志,步驟578。使耐久性RAID控制器的操作停止,步驟582。
[0209]對(duì)于其他記錄,步驟574,從下一個(gè)項(xiàng)目讀出所指向數(shù)據(jù)的起始地址的指針及其長(zhǎng)度,步驟576。從DRAM讀出所指向的數(shù)據(jù)并利用售主命令存入SSD,步驟580。
[0210]圖16A-B顯示主機(jī)上DRAM持續(xù)模式用的引導(dǎo)裝入例程。參見圖3A。收到引導(dǎo)裝入初始化信號(hào)時(shí),從SSD讀出先前貯存的映像,步驟550。該映像是持續(xù)模式DRAM映像203。
[0211]讀出IPDRAM內(nèi)容,從第一記錄啟動(dòng),步驟552。當(dāng)?shù)谝蛔止?jié)是OxFF時(shí),步驟554,則已經(jīng)達(dá)到IPDRAM的末尾。先前保存的全部DRAM內(nèi)容裝回它們?cè)贒RAM中原來的位置??刂铺粱謴?fù)環(huán)境,步驟558,由CPU執(zhí)行。
[0212]對(duì)于其他記錄,步驟556,從下一個(gè)項(xiàng)目讀出所指向數(shù)據(jù)的起始地址的指針及其長(zhǎng)度,步驟556。利用售主命令從SSD讀出所指向的數(shù)據(jù),然后在來自IPDRAM項(xiàng)目的指針的位置上寫入DRAM,步驟560。
[0213]在圖16B中,所保存的沖洗出去的高速緩存恢復(fù)至CPU內(nèi)核層,步驟540,并利用它們的驅(qū)動(dòng)器對(duì)全部外圍設(shè)備進(jìn)行初始化,步驟542。掉電時(shí)仍然有效的任何處理都使之失效或取消,步驟544。設(shè)置數(shù)據(jù)完整性標(biāo)志,步驟546,CPU恢復(fù)正常運(yùn)行,步驟548。該數(shù)據(jù)完整性標(biāo)志用于:若在進(jìn)到步驟546之前再次掉電,則避免不必要地寫入持續(xù)模式映像。
[0214]圖17A-B顯示PCIe RAID控制器DRAM持續(xù)模式用的上電重新引導(dǎo)例程。參見圖9。當(dāng)PCIe RAID控制器收到上電中斷信號(hào)時(shí),全部下游SSD初始化,步驟586。讀出持續(xù)模式DRAM映像并檢查以前的“拷貝成功標(biāo)志”是否成功。不成功時(shí),步驟594,則在沒有持續(xù)模式的情況下完成正常上電引導(dǎo),步驟596。成功時(shí),步驟594,從SSD,不是從備份SSD 366,就是從SSD 364,讀出先前貯存的持續(xù)模式DRAM映像,步驟598。該映像是持續(xù)模式DRAM映像 203。
[0215]在圖17B中,讀出ITORAM內(nèi)容,從第一記錄啟動(dòng),步驟592。當(dāng)?shù)谝蛔止?jié)是OxFF時(shí),步驟604,已經(jīng)達(dá)到IPDRAM的末尾??刂铺粱謴?fù)環(huán)境,步驟608,由RAID控制器執(zhí)行。恢復(fù)任何為耐久性RAID控制器保存的處理器環(huán)境,步驟590,并把保存的沖洗出去的高速緩存恢復(fù)到耐久性RAID控制器,步驟610。該耐久性RAID控制器恢復(fù)正常運(yùn)行,步驟592。
[0216]對(duì)于其他記錄,步驟604,從下一個(gè)項(xiàng)目讀出所指向數(shù)據(jù)的起始地址指針及其長(zhǎng)度,步驟606。利用售主命令從SSD讀出所指向的數(shù)據(jù),然后在來自IPDRAM項(xiàng)目的指針?biāo)傅奈恢蒙蠈懭隓RAM,步驟588。
[0217]圖18A-B顯示由本機(jī)SSD投入和執(zhí)行的GND應(yīng)用程序和GND驅(qū)動(dòng)器。當(dāng)用戶執(zhí)行該GND應(yīng)用程序,和該程序沒有重復(fù)時(shí),步驟612,裝入設(shè)置文件,步驟614。像掉電之前一樣地安裝同一 SSD器件時(shí),步驟616,清除老RAM盤,步驟618。獲得DRAM的尺寸,步驟620。
[0218]在圖18B中,當(dāng)RAM盤驅(qū)動(dòng)器在運(yùn)行存儲(chǔ)器中仍未存在時(shí),步驟622,安裝RAM盤驅(qū)動(dòng)器,步驟624。
[0219]啟動(dòng)CPU監(jiān)測(cè)器,步驟626,把數(shù)據(jù)從SSD同步至RAM盤,步驟628。啟用定時(shí)器,步驟630。初始化建立完成。
[0220]圖19是GND驅(qū)動(dòng)器維持其狀態(tài)用的定期例程。當(dāng)前一附圖步驟630中為該定時(shí)器觸發(fā)定時(shí)器中斷時(shí),在該主機(jī)上執(zhí)行該例程。禁止該定時(shí)器,以避免該例程被再次調(diào)用,步驟632。當(dāng)用戶請(qǐng)求該程序退出,步驟634,而且RAM盤沒有改變時(shí),步驟636時(shí),使GND驅(qū)動(dòng)器退出。若從上次時(shí)間到之前RAM盤發(fā)生變化,步驟636,則把RAM盤中的無效數(shù)據(jù)沖洗至SSD,并在GND驅(qū)動(dòng)器退出之前清除RAM盤數(shù)據(jù),步驟644。
[0221]當(dāng)用戶不請(qǐng)求該程序退出時(shí),步驟634,按照所符合的策略判據(jù),把RAM盤數(shù)據(jù)的改變,諸如其數(shù)量大于一個(gè)閾值,諸如高速緩存的80%的無效數(shù)據(jù)更新至SSD,步驟638,或?qū)τ谝欢纬浞珠L(zhǎng)的時(shí)間周期,諸如I小時(shí)的數(shù)據(jù),或一個(gè)預(yù)定類別的數(shù)據(jù),或者直至主機(jī)掉電的數(shù)據(jù),都不同步至SSD。若需重新同步,則作出判決。當(dāng)RAM盤需要重新同步時(shí),步驟640,把無效數(shù)據(jù)沖洗至SSD,步驟646。啟用計(jì)時(shí)器,以便檢查下一個(gè)狀態(tài),步驟642。重新同步及其策略可以由用戶選定。
[0222]圖20A-B顯示從USB器件投入和執(zhí)行的GND應(yīng)用程序和GND驅(qū)動(dòng)器。當(dāng)插入U(xiǎn)SB器件并執(zhí)行自動(dòng)運(yùn)行,而且該程序沒有由于再插入而重復(fù)時(shí),步驟652,裝入設(shè)置文件,步驟654。當(dāng)同一個(gè)USB器件拔出以前被安裝時(shí),步驟656,清除老RAM盤,步驟658。獲得DRAM的尺寸,步驟660。
[0223]在圖20B中,當(dāng)在運(yùn)行存儲(chǔ)器中仍不存在RAM盤驅(qū)動(dòng)器時(shí),步驟662,安裝RAM盤驅(qū)動(dòng)器,步驟664。
[0224]啟動(dòng)CPU監(jiān)測(cè)器,步驟666,把數(shù)據(jù)從USB器件同步至RAM盤,步驟668。啟用計(jì)時(shí)器,步驟660。
[0225]圖21A-B是一個(gè)USB器件驅(qū)動(dòng)器用的定期例程。當(dāng)前一附圖的步驟660的定時(shí)器觸發(fā)定時(shí)器中斷時(shí),在該主機(jī)上執(zhí)行該例程。禁止該定時(shí)器,以避免該例程被再次調(diào)用,步驟 672。
[0226]當(dāng)用戶不請(qǐng)求該程序退出,步驟674,而且USB器件被拔出時(shí),步驟676,向該用戶顯示一個(gè)報(bào)警,(要求)把USB器件插回去,步驟678。否則,當(dāng)正如在步驟638所指出的,RAM盤需要重新同步時(shí),步驟680,把該無效數(shù)據(jù)沖洗到USB,步驟686。啟用計(jì)時(shí)器,以便檢查下一個(gè)狀態(tài),步驟682。
[0227]在圖21B中,當(dāng)用戶請(qǐng)求該程序退出,步驟674,而且該RAM盤沒有改變時(shí),步驟688,則把DevEject例程拷貝到RAM盤,步驟702,然后利用DevEject命令使目標(biāo)USB器件退出,步驟704。向用戶顯示以指出可以拔去USB器件,步驟706。持續(xù)顯示該消息,直至用戶拔去USB器件為止,步驟708。
[0228]RAM盤已經(jīng)改變時(shí),步驟688,把RAM盤中的無效數(shù)據(jù)沖洗到USB并清除RAM盤的數(shù)據(jù),步驟684。在執(zhí)行DevEject例程之前,步驟704,將其拷貝至RAM盤,步驟702。
[0229]圖22A-B顯示帶有電池組,持續(xù)和正常掉電模式的筆記簿電源監(jiān)測(cè)器的操作。當(dāng)筆記簿接通,步驟710,而且電網(wǎng)電源維持接通時(shí),步驟714,該電源監(jiān)測(cè)器繼續(xù)向筆記簿電池組充電,步驟716,該筆記簿正常操作,步驟718。
[0230]當(dāng)筆記簿接通,步驟710,但是電網(wǎng)掉電,步驟714,該電池組電源電平尚未降低到第一閾值,1wl以下時(shí),步驟720,然后當(dāng)電網(wǎng)電源接通,步驟726時(shí),電源監(jiān)測(cè)器繼續(xù)向筆記簿電池組充電,步驟716,而該筆記簿正常操作,步驟718。當(dāng)電網(wǎng)電源掉電時(shí),步驟726,該筆記簿電源監(jiān)測(cè)器循環(huán)回到初始步驟。
[0231]當(dāng)該筆記簿接通,步驟710,但電網(wǎng)掉電,步驟714,而且電池組電源電平低于1wl時(shí),步驟720,顯示一個(gè)報(bào)警消息,步驟722。當(dāng)電池組電源電平降低到low2以下時(shí),步驟724,在圖22B中當(dāng)?shù)綦姵掷m(xù)模式起作用時(shí),步驟730,把持續(xù)模式用于掉電,步驟736。在CPU停止之前,步驟734,該例程等待DRAM拷貝至SSD,步驟738。
[0232]當(dāng)?shù)綦姵掷m(xù)模式不起作用,步驟730,以掉電模式發(fā)生掉電時(shí),步驟732,使CPU停止,步驟734。
[0233]在圖22A中,當(dāng)筆記簿關(guān)斷時(shí),步驟710,除該監(jiān)視器和定時(shí)器電路的一小部分外,向處于休眠模式的SSD供電,并當(dāng)該定時(shí)器到點(diǎn),應(yīng)該定期,諸如每周刷新其閃存存儲(chǔ)器時(shí),將其喚醒,步驟712。在圖22B中,當(dāng)電網(wǎng)電源接通時(shí),步驟740,該電源監(jiān)測(cè)器繼續(xù)向筆記簿電池組充電,步驟742,而且該筆記簿電源監(jiān)測(cè)器循環(huán)回到初始步驟。
[0234]圖23A-B顯示帶有電池組備份,持續(xù)和正常掉電模式的臺(tái)式機(jī)電源監(jiān)測(cè)器的操作。當(dāng)該臺(tái)式機(jī)重新引導(dǎo)時(shí),步驟750,而電網(wǎng)電源接通,步驟758,該電源監(jiān)測(cè)器繼續(xù)向該臺(tái)式機(jī)的電池組充電,步驟760,而該臺(tái)式機(jī)正常操作,步驟762,直至該臺(tái)式機(jī)關(guān)斷電源為止,步驟764。
[0235]當(dāng)該臺(tái)式機(jī)不重新引導(dǎo),步驟750,但電網(wǎng)掉電時(shí),步驟754,該臺(tái)式機(jī)電源監(jiān)測(cè)器循環(huán)回到初始步驟。當(dāng)電網(wǎng)電源沒有掉電時(shí),步驟754,向SSD提供電力,以便刷新閃存存儲(chǔ)器,步驟752。該電源繼續(xù)向臺(tái)式機(jī)電池組充電,步驟756,而該臺(tái)式機(jī)電源監(jiān)測(cè)器循環(huán)回到初始步驟。
[0236]當(dāng)該臺(tái)式機(jī)重新引導(dǎo),步驟750,但電網(wǎng)掉電時(shí),步驟758,則在圖23B中把持續(xù)模式用于掉電,步驟776。在使CPU停止之前,步驟774,該例程等待DRAM拷貝至SSD,步驟778。
[0237]當(dāng)該臺(tái)式機(jī)斷電,步驟764,而掉電持續(xù)模式起作用時(shí),步驟770,把持續(xù)模式用于掉電,步驟776。在使CPU停止之前,步驟774,該例程等待DRAM拷貝至SSD,步驟778。
[0238]當(dāng)?shù)綦姵掷m(xù)模式不起作用,步驟770,發(fā)生正常掉電時(shí),步驟772,則使CPU停止,步驟 774。
[0239]圖24A-B顯示帶有UPS備份、持續(xù)和正常掉電模式的服務(wù)器電源監(jiān)測(cè)器的操作。當(dāng)該服務(wù)器重新引導(dǎo),步驟780,而且電網(wǎng)電源接通時(shí),步驟788,則該電源監(jiān)測(cè)器繼續(xù)向服務(wù)器UPS電池組充電,步驟790,而該服務(wù)器正常操作,步驟792,直至該服務(wù)器斷電,步驟794。
[0240]當(dāng)服務(wù)器不重新引導(dǎo),步驟780,但電網(wǎng)掉電時(shí),步驟784,該服務(wù)器電源監(jiān)測(cè)器循環(huán)回到初始步驟。當(dāng)電網(wǎng)電源沒有掉電時(shí),步驟784,向SSD提供電力以刷新其閃存存儲(chǔ)器,步驟782。該電源繼續(xù)向該服務(wù)器電池組充電,步驟786,該服務(wù)器電源監(jiān)測(cè)器循環(huán)回到初始步驟。
[0241]當(dāng)該服務(wù)器重新引導(dǎo),步驟780,但電網(wǎng)掉電時(shí),步驟788,則在圖24B中該服務(wù)器電池組向該服務(wù)器供電,步驟814。若該服務(wù)器電池組不低,步驟812,但電網(wǎng)電源已恢復(fù),步驟810,則該例程循環(huán)回到圖24A的步驟788。
[0242]當(dāng)服務(wù)器電池組低時(shí),步驟812,則把持續(xù)模式用于掉電,步驟806。在使CPU停止之前,步驟804,該例程等待DRAM拷貝至SSD,步驟808。
[0243]當(dāng)服務(wù)器斷電,步驟794,而掉電持續(xù)模式起作用時(shí),步驟800,把持續(xù)模式用于掉電,步驟806。在使CPU停止之前,步驟804,該例程等待DRAM拷貝至SSD,步驟808。
[0244]當(dāng)?shù)綦姵掷m(xù)模式不起作用,步驟800,以掉電模式發(fā)生正常掉電時(shí),步驟802,使CPU停止,步驟804。
[0245]圖25A-C顯示帶有電池組、持續(xù)和正常掉電模式的PCIe RAID控制器用的電源監(jiān)測(cè)器例程。當(dāng)PCIe RAID控制器具有來自主機(jī)300 PCIe接口的電網(wǎng)電源時(shí),步驟828,則該電源監(jiān)測(cè)器持續(xù)向本機(jī)電池組充電,步驟820,而PCIe RAID控制器正常操作,步驟822。
[0246]當(dāng)?shù)絇CIe RAID控制器的供電線路掉電時(shí),步驟824,則在圖25B中當(dāng)?shù)綦姵掷m(xù)模式起作用時(shí),步驟830,把持續(xù)模式用于掉電,步驟836。在使PCIe RAID控制器停止之前,步驟834,該例程等待DRAM拷貝至SSD,步驟838。
[0247]當(dāng)?shù)綦姵掷m(xù)模式不起作用,步驟830,以掉電模式發(fā)生正常掉電時(shí),步驟832,使該P(yáng)CIe RAID控制器停止,步驟834。
[0248]在圖25C中,當(dāng)電網(wǎng)電源掉電時(shí),步驟828,用本機(jī)電池組向DRAM、SSD及其他涉及持續(xù)模式的組件供電,步驟840。把持續(xù)模式用于掉電,步驟846。把DRAM數(shù)據(jù)拷貝至SSD,步驟848,使PCIe RAID控制器停止,步驟844。用本機(jī)電池組向SSD供電,步驟842。一旦本機(jī)電池組掉電,步驟850,用SSD電容向SSD供電,步驟826。一旦這些SSD電容掉電,SSDDRAM中的數(shù)據(jù)丟失。
[0249]圖26A-D顯示涉及登錄的例程。圖26A是從SEED SSD中的DRAM高速緩存寫入閃存存儲(chǔ)器的登錄流程圖。當(dāng)SEED SSD把來自SSD DRAM緩沖區(qū)的數(shù)據(jù)傳送至與非閃存存儲(chǔ)器時(shí),start2鍵或標(biāo)志寫入登錄分組表,步驟694。向閃存寫入數(shù)據(jù)采取元頁(yè)形式,步驟696。諸如分組、壓縮等用的不同的元數(shù)據(jù)表,以及其他元數(shù)據(jù)從SSD DRAM緩沖區(qū)的有關(guān)ETL表區(qū)傳輸至閃存存儲(chǔ)器,步驟698。把compd2標(biāo)志登錄進(jìn)登錄分組表,步驟695。當(dāng)?shù)卿洷韺憹M時(shí),步驟699,把該登錄分組表寫入閃存存儲(chǔ)器,步驟697。“startl”標(biāo)志登錄數(shù)據(jù)向DRAM移動(dòng)的開始,而“start2”登錄數(shù)據(jù)寫入閃存的開始,“Compd2”登錄數(shù)據(jù)向閃存移動(dòng)的完成,"abortI"登錄該數(shù)據(jù)在同一 LBA上被新數(shù)據(jù)覆蓋寫入。
[0250]圖26B是清除登錄區(qū)的流程圖。它在檢查點(diǎn)登錄插入之后執(zhí)行。為檢查選定序列號(hào),步驟1536,將其與一個(gè)為清洗目的插入的檢查點(diǎn)的序列號(hào)比較,步驟1538。當(dāng)該序列號(hào)在該檢查點(diǎn)的前面時(shí),步驟1538,而為此序列登錄了 Compd2標(biāo)志,步驟1540,則清除涉及該序列號(hào)的全部登錄項(xiàng),步驟1544,因?yàn)樵撔蛄械臄?shù)據(jù)已被成功地提交閃存存儲(chǔ)器。當(dāng)該序列具有已登錄的abortl標(biāo)志時(shí),步驟1542,則清除涉及該序列號(hào)的全部登錄項(xiàng),因?yàn)樵瓉淼腖BA數(shù)據(jù)已被DRAM中序列號(hào)較大的新數(shù)據(jù)覆蓋寫入,不再需要移向閃存存儲(chǔ)器,步驟1544。當(dāng)在該檢查點(diǎn)之前沒有剩余更多序列號(hào)要檢查時(shí),步驟1546,清除檢查點(diǎn)的登錄項(xiàng),步驟1548。
[0251]圖26C表示下次上電時(shí)在SSD上完成的異常掉電檢查。為一個(gè)選定的序列號(hào)掃描登錄項(xiàng),步驟1550。當(dāng)找到標(biāo)志compd2,步驟1556,或標(biāo)志abortl時(shí),步驟1558,清除涉及該序列號(hào)的登錄項(xiàng),步驟1569,而若還有其他序列號(hào),則選定其他序列號(hào),步驟1552,重復(fù)該處理。
[0252]既找不到compd2,又找不到abortl標(biāo)志,步驟1556,1558,但找到標(biāo)志start2時(shí),步驟1560,則讀出該LBA的數(shù)據(jù),并產(chǎn)生檢查和,并與該登錄的檢查和比較,步驟1564。當(dāng)該檢查和匹配時(shí),步驟1568,清除涉及該序列號(hào)的登錄項(xiàng),步驟1569,因?yàn)楸M管異常掉電,該數(shù)據(jù)已被正確地寫入。
[0253]當(dāng)檢查和發(fā)生不匹配,步驟1568,或找不到標(biāo)志start2時(shí),步驟1560,則在異常掉電過程中把涉及該序列LBA報(bào)告給主機(jī),作為一次失敗的數(shù)據(jù)寫入,步驟1562。清除涉及該序列號(hào)的登錄項(xiàng),步驟1569,而若還剩余其他序列號(hào),則選定其他序列號(hào),步驟1552,并重
復(fù)該處理。
[0254]圖26D表示主機(jī)下次上電時(shí)在該主機(jī)上完成的異常掉電檢查。從SSD (步驟1562)接收失效數(shù)據(jù)寫入及其LBA位置的清單,并將其讀出,步驟1580,在該清單上選定一個(gè)失效的LBA,步驟1582。把該登錄表上的業(yè)務(wù)號(hào)和該LBA對(duì)比,看它們是否相關(guān),步驟1584。該LBA不相關(guān)時(shí),步驟1586,可以選定該清單中其他的LBA,步驟1582。該LBA相關(guān),步驟1586,而且找到compd標(biāo)志時(shí),步驟1588,則重做該業(yè)務(wù)。檢查寫入業(yè)務(wù)登錄中的每個(gè)LBA,并以該登錄中記錄的新數(shù)值更新,步驟1592。找不到compd標(biāo)志時(shí),步驟1588,則復(fù)原該業(yè)務(wù)。檢查該寫入業(yè)務(wù)登錄中的每個(gè)LBA,并以該登錄中記錄的老數(shù)值更新,步驟1590。當(dāng)在該清單中還有更多失效的LBA時(shí),步驟1594,則可以選定該清單上的其他LBA,步驟1582。
[0255]圖27是當(dāng)NVM控制器負(fù)責(zé)把持續(xù)模式DRAM映像存入其SSD和從其中取出時(shí),在主機(jī)上執(zhí)行的引導(dǎo)裝入程序的示意圖。在步驟530,主機(jī)300在上電引導(dǎo)時(shí)發(fā)送一個(gè)信號(hào)給NVM控制器,諸如圖7的信號(hào)CPU_INIT。該NVM控制器從SSD裝入恢復(fù)映像,而該主機(jī)控制器等待,步驟532。該主機(jī)等待NVM控制器發(fā)來成功或失效信號(hào),諸如利用信號(hào)圖7的SUCCESS/FAIL。該NVM控制器把恢復(fù)映像從它的DRAM拷貝至CPU的DRAM。根據(jù)SUCCESS/FAIL信號(hào),該CPU可以讀出恢復(fù)映像。當(dāng)恢復(fù)映像被成功傳輸時(shí),步驟534,則該主機(jī)CPU跳到恢復(fù)映像的恢復(fù)環(huán)境213,并在那里開始運(yùn)行,步驟538。然后,如圖16B所示,該處理繼續(xù)。
[0256]當(dāng)恢復(fù)映像裝入失敗時(shí),步驟534,則由該主機(jī)執(zhí)行正常默認(rèn)非持續(xù)模式上電引導(dǎo)例程,步驟536。
[0257]圖28A-B顯示通過激活隔離開關(guān),使NVM控制器取得對(duì)主板上的DRAM和SSD的控制,來備份IPDRAM所指向的數(shù)據(jù)。在以持續(xù)模式掉電過程中,該主機(jī)沖洗和準(zhǔn)備處理器環(huán)境207、CPU高速緩存209和恢復(fù)環(huán)境213,然后發(fā)出沖洗完成信號(hào),諸如通過激活圖7的信號(hào)CPUJiALT至該NVM控制器。然后,NVM控制器通過向隔離開關(guān)60 (圖7)激活開關(guān)控制信號(hào)SW_CTL,把CPU和芯片組與DRAM和SSD隔離。這些開關(guān)隔離DRAM和SSD總線以便供NVM控制器使用,步驟854。給CPU的電源掉電,但是NVM控制器激活電源開關(guān)控制信號(hào)PWR_SW_CTL,以便從超級(jí)電容或本機(jī)電池組取得電力,步驟856。該隔離電源區(qū)包括NVM控制器、DRAM和SSD,于是與CPU和芯片組吸取的電力相比,吸取較少電力。
[0258]NVM控制器讀出IPDRAM的內(nèi)容,步驟858,并利用售主命令針對(duì)上電重新引導(dǎo)信息把該IPDRAM的內(nèi)容寫入SSD,步驟860。
[0259]在圖28B中,該NVM控制器讀出該IPDRAM的內(nèi)容,從第一記錄啟動(dòng),步驟884。當(dāng)?shù)谝蛔止?jié)是OxFF時(shí),步驟874,則已經(jīng)達(dá)到該IPDRAM的末尾。在該SSD中置位拷貝成功標(biāo)志,步驟878。然后,可以使NVM控制器停止操作。
[0260]對(duì)于其他記錄,步驟874,從下一個(gè)項(xiàng)目讀出指向數(shù)據(jù)起始地址的指針及其長(zhǎng)度,步驟876。從DRAM讀出所指向的數(shù)據(jù)并利用售主命令存入SSD,步驟880。
[0261]圖29A-B突出GND驅(qū)動(dòng)器初始化過程中的模式選擇。在該主機(jī)引導(dǎo)的過程中當(dāng)該GND驅(qū)動(dòng)器初始化時(shí),確定在上次掉電過程中所使用的供電模式。當(dāng)該用戶進(jìn)行選擇,步驟1204,但不使用持續(xù)模式時(shí),步驟1206,則該GND驅(qū)動(dòng)器把該模式設(shè)置為掉電模式,步驟1210。該恢復(fù)映像應(yīng)該在SSD閃存存儲(chǔ)器中。
[0262]使用持續(xù)模式,步驟1206,而且在上次掉電過程中備份電源可用時(shí),步驟1202則該GND驅(qū)動(dòng)器把該模式設(shè)置為持續(xù)模式,步驟1208?;謴?fù)映像應(yīng)該在DRAM中可用。
[0263]使用持續(xù)模式,步驟1206,而且在上次掉電過程中備份電源不可用時(shí),步驟1202,則該GND驅(qū)動(dòng)器把該模式設(shè)置為修改的持續(xù)模式,步驟1211。由于可用電力少只有少量的DRAM被使用。DRAM中的恢復(fù)映像可能由于備份電源掉電而丟失。
[0264]當(dāng)該用戶在提示時(shí)不作選擇,步驟1204,而且在上次掉電過程中備份電源可用時(shí),步驟1205,則該GND驅(qū)動(dòng)器把該模式設(shè)置為持續(xù)模式,步驟1208?;謴?fù)映像應(yīng)該在DRAM中可用。在上次掉電過程中備份電源不可用時(shí),步驟1205,則該GND驅(qū)動(dòng)器把該模式設(shè)置為掉電模式,步驟1210。
[0265]圖30A-C顯示UPS或電池組備份可用時(shí)該GND驅(qū)動(dòng)器用的掉電例程。電源監(jiān)測(cè)器例程查詢UPS或電池組的狀態(tài),步驟1212,諸如通過從電源讀取交流電網(wǎng)狀態(tài)(在線或離線),并從電源讀取電池組標(biāo)志,當(dāng)電池組能量保持66%或更大時(shí)該標(biāo)志可以指示高,而當(dāng)剩余33%時(shí)指示低,當(dāng)剩余5%時(shí)指示危急,指示充電,沒有電池組存在等。
[0266]當(dāng)該狀態(tài)是交流離線時(shí),步驟1214,從該電池組、UPS或其他電源獲得該電池組狀態(tài),步驟1216。電池組容量高時(shí),步驟1218,則關(guān)閉可以正常進(jìn)行,如圖30B所示。該登錄庫(kù)設(shè)置也可以針對(duì)正常關(guān)閉進(jìn)行配置,步驟1220。否則,該GND驅(qū)動(dòng)器連續(xù)地運(yùn)行而且不關(guān)閉,但該GND驅(qū)動(dòng)器關(guān)閉不必要的應(yīng)用程序和業(yè)務(wù),步驟1222,以便保存電池組電力。然后,該GND驅(qū)動(dòng)器持續(xù),諸如定期地監(jiān)視電池組狀態(tài),步驟1216。
[0267]在圖30B中,該電池組電平降低到關(guān)閉閾值以下,步驟1218,或該登錄庫(kù)配置成關(guān)閉GND驅(qū)動(dòng)器,步驟1220。當(dāng)持續(xù)(PRST)模式不起作用時(shí),步驟1226,則設(shè)置該電力保存完成標(biāo)志,步驟1230,并關(guān)閉全部程序,包括該GND驅(qū)動(dòng)器,并關(guān)斷該主機(jī)電源,步驟1236。
[0268]當(dāng)持續(xù)模式起作用,步驟1226,而且數(shù)據(jù)完整性標(biāo)志沒有設(shè)置時(shí),步驟1228,則把全部裝置設(shè)定為DX狀態(tài),在這里各裝置停止活動(dòng),并等待關(guān)斷電源,步驟1232。關(guān)閉全部程序,包括該GND驅(qū)動(dòng)器并關(guān)斷該主機(jī)電源,步驟1236。
[0269]當(dāng)持續(xù)模式起作用,步驟1226,而且數(shù)據(jù)完整性標(biāo)志設(shè)置時(shí),步驟1228,則所有其他裝置都設(shè)定為DX狀態(tài),步驟1234。
[0270]在圖30C中,該主機(jī)DRAM內(nèi)容倒入非易失存貯器NVS文件,諸如持續(xù)模式DRAM映像203或帶有SSD中映像的文件,步驟1240。把倒入成功標(biāo)志寫入該SSD,步驟1242,并使數(shù)據(jù)完整性標(biāo)志復(fù)位,步驟1244。該SSD設(shè)定為DX狀態(tài),步驟1248。關(guān)閉所有程序,包括該GND驅(qū)動(dòng)器,并關(guān)斷該主機(jī)電源,步驟1246。
[0271]圖31A-B顯示當(dāng)UPS或電池組備份可用時(shí)該GND驅(qū)動(dòng)器用的上電重新引導(dǎo)例程。電源監(jiān)測(cè)器例程查詢UPS或電池組的狀態(tài),步驟1262,諸如通過從電源讀取交流線路狀態(tài)(在線或離線)。當(dāng)該狀態(tài)是交流在線時(shí),步驟1264,從該電池組、UPS或其他電源獲得該電池組狀態(tài),步驟1266。該電池組容量不低時(shí),步驟1268,則在該主機(jī)上執(zhí)行上電自檢(POST)例程,步驟1270。裝入初始的存儲(chǔ)器映像并讀出存儲(chǔ)器映射,步驟1272。
[0272]在圖31B中,倒入成功標(biāo)志被設(shè)置時(shí),步驟1276,則可以從SSD讀出該SSD中的NVS文件,并裝入主機(jī)DRAM,步驟1280。然后,該主機(jī)執(zhí)行喚醒例程,步驟1288。設(shè)置該數(shù)據(jù)完整性標(biāo)志,步驟1290,并為下次掉電使該倒入成功和上電安全完成標(biāo)志復(fù)位,步驟1292。
[0273]當(dāng)?shù)谷氤晒?biāo)志沒有被設(shè)置,步驟1276,但上電安全完成標(biāo)志被設(shè)置時(shí),步驟1278,則從SSD裝入該OS (操作系統(tǒng))映像,步驟1282,并可以執(zhí)行喚醒例程,步驟1288,并完成以下步驟1290,1292
倒入成功標(biāo)志沒有設(shè)置,步驟1276,而且上電安全完成標(biāo)志也沒有設(shè)置時(shí),步驟1278,則裝入OS恢復(fù)程序,步驟1284,并裝入OS恢復(fù)程序產(chǎn)生的恢復(fù)OS映像,步驟1286。然后執(zhí)行喚醒例程,步驟1288,并完成以下步驟1290,1292。
[0274]圖32A-E顯示用戶選擇退出帶有控制中的GND驅(qū)動(dòng)器的視窗(windows)程序。在圖32A中,當(dāng)用戶進(jìn)行切換時(shí),步驟1650,關(guān)閉全部用戶對(duì)話,步驟1654。把高速緩存和緩沖區(qū)沖洗至SSD,步驟1658,該用戶準(zhǔn)備好進(jìn)行新的用戶切換,步驟1656。用戶選擇注銷時(shí),步驟1600,關(guān)閉全部用戶對(duì)話,步驟1604。把高速緩存和緩沖區(qū)沖洗至SSD,步驟1608,并注銷該用戶,步驟1606。
[0275]在圖32B中,當(dāng)該用戶選定鎖定時(shí),步驟1660,向該用戶提示(輸入)他的口令,步驟1664。鎖定該系統(tǒng),步驟1666。當(dāng)用戶選擇休眠時(shí),步驟1670,暫停全部用戶對(duì)話,步驟1674。進(jìn)入休眠模式,步驟1676。
[0276]在圖32C中,當(dāng)不激活休眠時(shí),步驟1602,除該SSD外關(guān)閉全部用戶對(duì)話,步驟1610。把高速緩存沖洗至SSD,步驟1612,并且不允許新的高速緩存。關(guān)閉全部用戶模式應(yīng)用程序,步驟1614,并關(guān)閉全部業(yè)務(wù),步驟1616。繼續(xù)在圖32E中,關(guān)閉內(nèi)核(程序),步驟1630,并關(guān)閉該SSD,步驟1636。重新引導(dǎo)標(biāo)志設(shè)置時(shí),步驟1640,則該系統(tǒng)重新引導(dǎo),步驟1638,否則關(guān)閉該系統(tǒng),步驟1642。
[0277]選定休眠時(shí),步驟1602,則在圖32D中繼續(xù)處理。暫停全部應(yīng)用,步驟1620。除該GND驅(qū)動(dòng)器業(yè)務(wù)外暫停全部業(yè)務(wù),步驟1622。查詢?nèi)垦b置,步驟1624,并用售主命令通知該SSD準(zhǔn)備暫停,步驟1626。除該SSD外暫停全部裝置,步驟1628。把休眠文件寫入該SSD,步驟1632。該SSD暫停操作,步驟1634,并進(jìn)入休眠,步驟1644。
[0278]圖33A-B顯示GND驅(qū)動(dòng)器參數(shù)初始化程序。當(dāng)該SSD不是已知類型時(shí),步驟1702,則利用幾個(gè)預(yù)定的測(cè)試來測(cè)試所連接的SSD,步驟1704。分析研究該測(cè)試結(jié)果并優(yōu)化參數(shù),步驟1706。
[0279]該SSD是已知類型時(shí),步驟1702,則查詢?cè)揝SD,步驟1708。該SSD是標(biāo)準(zhǔn)類型時(shí),步驟1710,從該SSD獲得標(biāo)準(zhǔn)SSD的ID (識(shí)別符),步驟1712。為標(biāo)準(zhǔn)SSD選定匹配該標(biāo)準(zhǔn)SSD的ID的參數(shù),包括該SSD分區(qū)對(duì)齊方式的調(diào)整,步驟1714。利用向該SSD發(fā)送的售主命令來禁止由GND驅(qū)動(dòng)器100完成的某些重復(fù)的功能,諸如壓縮、加密、數(shù)據(jù)拆分,步驟1720。
[0280]該SSD不是標(biāo)準(zhǔn)類型時(shí),步驟1710,向該SSD發(fā)送售主命令,以便取得有關(guān)所連接的SSD的不同的信息,諸如信道號(hào)、閃存存儲(chǔ)器ID(識(shí)別每個(gè)閃存存儲(chǔ)器的容量、頁(yè)大小、塊大小、面、SLC/MLC/TLC),DRAM大小、固件版本等,步驟1716。針對(duì)該SSD優(yōu)化諸如元頁(yè)大小等參數(shù),以便優(yōu)化性能,它包括SSD分區(qū)對(duì)齊方式的調(diào)整,步驟1718。向該SSD發(fā)送售主命令來禁止在不同的層次上完成的某些重復(fù)的功能,諸如壓縮、加密和數(shù)據(jù)拆分,步驟1720。[0281 ] 針對(duì)SSD分區(qū)對(duì)齊方式,把SSD分為由多個(gè)頁(yè)組成的塊,和每個(gè)閃存塊在重寫之前必須被完全刪除。若該SSD控制器由于分區(qū)不對(duì)齊而不得不執(zhí)行不必要的塊刪除操作,則寫入速度將大受影響。適當(dāng)?shù)姆謪^(qū)對(duì)齊方式是最關(guān)鍵的屬性之一,它可以大大提升SSD的I/O性能和由于減少讀-修改-寫操作而延長(zhǎng)其預(yù)期壽命。
[0282]事實(shí)上,為了達(dá)到最好性能,該分區(qū)偏移量應(yīng)該與多個(gè)與非頁(yè)面大小(一般為8KB)、與非刪除塊大小(一般為2MB)和文件分配單元(在NTFS中默認(rèn)簇大小4KB)對(duì)齊。
[0283]下面介紹本發(fā)明涉及的綠色與非器件(GND)驅(qū)動(dòng)器。
[0284]總體上,當(dāng)電源掉電時(shí),具有持續(xù)模式的GND驅(qū)動(dòng)器需要電池組電源備份。當(dāng)電源異常掉電或被該用戶的選擇關(guān)閉時(shí),它將被激活。關(guān)斷電源或失效時(shí),CPU狀態(tài)、高速緩存和恢復(fù)例程將首先被存入DRAM,然后把DRAM的內(nèi)容存入SSD。上電重新引導(dǎo)時(shí),重新把以前的DRAM內(nèi)容從SSD裝入DRAM。在這個(gè)模式下,和正常運(yùn)行時(shí),全部GND驅(qū)動(dòng)器功能都未被啟動(dòng)。
[0285]對(duì)于耐久性加持續(xù)模式,在正常運(yùn)行過程中,啟動(dòng)某些GND驅(qū)動(dòng)器。該GND驅(qū)動(dòng)器將在該主機(jī)和SSD之間對(duì)數(shù)據(jù)讀寫進(jìn)行加密/解密。另外,它還對(duì)該主機(jī)和SSD之間的數(shù)據(jù)讀寫完成壓縮/解壓另外,它對(duì)從主機(jī)向SSD的寫入數(shù)據(jù)進(jìn)行去復(fù)份。
[0286]數(shù)據(jù)管理器的數(shù)據(jù)分解器把數(shù)據(jù)分成不同的類型,諸如用戶數(shù)據(jù)、元數(shù)據(jù)、分頁(yè)和臨時(shí)。每種類型的數(shù)據(jù)都有它自己的寫高速緩存和元頁(yè)分組。它將部分頁(yè)面數(shù)據(jù)在發(fā)送至SSD之前組合成元頁(yè),并對(duì)從SSD至主機(jī)的元頁(yè)數(shù)據(jù)進(jìn)行解分組。對(duì)于諸如服務(wù)器等環(huán)境,可以禁止數(shù)據(jù)管理器的數(shù)據(jù)分解器。
[0287]ITORAM可以用來識(shí)別DRAM數(shù)據(jù)選定的部分,以便把該數(shù)據(jù)從DRAM存入CPU控制的SSD。對(duì)于性能加持續(xù)模式,可以完全啟用寫高速緩存和RAM盤功能。
[0288]電源掉電時(shí)具有掉電模式的綠色與非器件驅(qū)動(dòng)器可以沒有電池組電源備份。當(dāng)電源異常掉電或被用戶選擇關(guān)閉時(shí),它將被激活。在正常運(yùn)行過程中,全部GND驅(qū)動(dòng)器功能未被啟用。若意想不到地發(fā)生掉電而且不存在電池組備份電源,則仍然在DRAM中處理的寫入數(shù)據(jù)將丟失。對(duì)于該耐久性加掉電模式,該備份電源可能不可用,諸如對(duì)于臺(tái)式PC機(jī)。該GND驅(qū)動(dòng)器將利用該主機(jī)DRAM有限的一部分。正常運(yùn)行時(shí),GND驅(qū)動(dòng)器將對(duì)該主機(jī)和SSD之間讀寫的數(shù)據(jù)進(jìn)行加密/解密。另外,它還完成該主機(jī)和SSD之間讀寫數(shù)據(jù)的壓縮/解壓。另外,它對(duì)從主機(jī)寫入SSD的數(shù)據(jù)進(jìn)行去復(fù)份。
[0289]該數(shù)據(jù)管理器的數(shù)據(jù)分解器把該數(shù)據(jù)分成不同的類型,諸如用戶數(shù)據(jù)、元數(shù)據(jù),分頁(yè)和臨時(shí)。每一種類型的數(shù)據(jù)將具有它自己的寫高速緩存和元頁(yè)分組。它在部分頁(yè)面數(shù)據(jù)發(fā)送至該SSD之前將其組合到元頁(yè),并對(duì)從SSD送往主機(jī)的元頁(yè)數(shù)據(jù)進(jìn)行解分組。ITORAM可以用來識(shí)別DRAM數(shù)據(jù)的選定部分,以便把來自DRAM的數(shù)據(jù)存入受控于CPU的SSD。RAM盤可以用來改善臨時(shí)數(shù)據(jù)的性能,諸如暫時(shí)性互聯(lián)網(wǎng),可以在意外掉電時(shí)使用。
[0290]在備份電源可用的環(huán)境下,諸如筆記簿、便攜式裝置或智能電話,可以使用性能加掉電模式。正常運(yùn)行時(shí)可以使用寫高速緩存和RAM盤。上述六種方式可以使用事務(wù)管理器來保證數(shù)據(jù)完全寫入或傳送到該SSD。這六種模式也可以使用設(shè)置,諸如索引、搜索索引、清除碎片、主機(jī)休眠、預(yù)取指、超級(jí)取指、寫高速緩存和寫高速緩存緩沖區(qū)沖洗,以便優(yōu)化該系統(tǒng),以達(dá)到最佳的耐久性和性能結(jié)果。另外,該GND驅(qū)動(dòng)器還可以集成到OS和BIOS環(huán)境中并使該系統(tǒng)更健壯。
[0291]替代的實(shí)施例
本發(fā)明人設(shè)想了幾個(gè)其他實(shí)施例。例如,可以使用許多電源、電池組、超級(jí)電容等類型并進(jìn)行不同的組合??梢杂酶鞣N各樣的方法實(shí)現(xiàn)隔離開關(guān)。在主板上可以有一個(gè)以上的隔離電源區(qū)。
[0292]盡管上面已經(jīng)描述了把寫滿的元頁(yè)移到該SEED、SSD或閃存,但也可以在完全寫滿之前移動(dòng)幾乎寫滿的元頁(yè)。因而,寫滿可以指在某個(gè)寫滿閾值內(nèi),諸如元頁(yè)大小減去512字節(jié)。
[0293]可能采用數(shù)據(jù)類型位及其他狀態(tài)字段、指針等的許多編碼。數(shù)據(jù)類型狀態(tài)位不必是一個(gè)項(xiàng)目?jī)?nèi)的第一位。登記項(xiàng)可以鏈接到其他表中的登記項(xiàng),諸如具有一個(gè)分立的表,用于標(biāo)記或有效位。臨時(shí)文件可以有各種各樣的擴(kuò)展名,而新的擴(kuò)展名可以被加到搜索清單中。由眾所周知的程序,諸如字處理器和互聯(lián)網(wǎng)瀏覽程序建立的臨時(shí)文件具有眾所周知的文件擴(kuò)展名,但任何時(shí)候都可以增加附加的擴(kuò)展名。這些附加文件擴(kuò)展名可以通過固件更新至SEED和SSD驅(qū)動(dòng)器用的控件軟件,用軟件更新到SSD應(yīng)用程序180和VMD驅(qū)動(dòng)器100。
[0294]ETL每個(gè)部分所使用的DRAM緩沖區(qū)的尺寸可以由該SSD控制器的固件固定。另外,ETL的每個(gè)部分還可以由控制器固件自動(dòng)地或手工根據(jù)用法或用戶的喜好動(dòng)態(tài)地調(diào)整。由于DRAM緩沖區(qū)的大小有限,不能在其中同時(shí)容納ETL的全部功能。不同的ETL功能可以與實(shí)際的工作環(huán)境相適應(yīng)。該控制器可以調(diào)整每個(gè)ETL所使用的尺寸,以便優(yōu)化DRAM緩沖區(qū)。適應(yīng)性調(diào)整可以根據(jù)該器件所使用的模式定期完成。
[0295]對(duì)于TLC閃存器件,DRAM緩沖區(qū)可以用諸如相變化存儲(chǔ)器(PCM)、鐵電隨機(jī)存取存儲(chǔ)器(FRAM)、磁阻 RAM(MRAM) ,Memristor, PRAM,電阻式 RAM(RRAM)、Racetrack 存儲(chǔ)器和納米R(shí)AM(NRAM)等NVRAM代替。NVRAM的優(yōu)點(diǎn)是全部ETL支持的表等可以保持在NVRAM中(不必放在閃存存儲(chǔ)器中)及以其他閃存存儲(chǔ)器為目的地的數(shù)據(jù)(諸如數(shù)據(jù)寫高速緩存等),甚至在關(guān)斷電源時(shí)仍能維持,于是甚至當(dāng)電源突然關(guān)閉時(shí)也不再需要備份電源電路。tmp(臨時(shí))等和映射表,和讀高速緩存和映射表可以在掉電或下次上電初始化時(shí)任選地棄置。除MLC外,NVRAM的缺點(diǎn)是成本高。對(duì)于MLC,缺點(diǎn)是速度緩慢和寫入/刪除次數(shù)有限。MLC可以通過分配TLC只具有強(qiáng)頁(yè)編程的一部分從TLC衍生。一些ETL功能可以在SEED SSD 200中的SRAM中實(shí)現(xiàn)。
[0296]在TLC閃存器件中,DRAM緩沖區(qū)也可以用諸如DRAM+SRAM,DRAM+MLC、DRAM+PCRAM或DRAM+MRAM的組合代替。當(dāng)使用DRAM緩沖區(qū)的組合,諸如DRAM+MLC時(shí),ETL支持的功能在DRAM中管理,但是它們的某些存入MLC。最后可以棄置DRAM緩沖區(qū)中的一些數(shù)據(jù),諸如電源關(guān)斷時(shí)不移到MLC的臨時(shí)數(shù)據(jù)和映射表,和讀高速緩存和映射表。當(dāng)電源關(guān)斷時(shí)需要保持的表和數(shù)據(jù),諸如塊刪除計(jì)數(shù)表、頁(yè)面狀態(tài)表、S.M.A.R.T.數(shù)據(jù)收集器等,當(dāng)電源突然關(guān)閉時(shí)需要貯存至MLC。拷貝至MLC比拷貝到TLC閃存存儲(chǔ)器快。在服務(wù)器應(yīng)用的情況下,臨時(shí)數(shù)據(jù)和映射表,和讀高速緩存和映射表不能棄置;當(dāng)電源突然關(guān)閉時(shí)那些區(qū)域?qū)⒗秒娫磦浞荽嫒隡LC。另一個(gè)途徑是確保DRAM的ETL中有意義的數(shù)據(jù)拷入MLC。在關(guān)斷電源的情況下,數(shù)據(jù)中的有效拷貝可以保持在MLC中。上電時(shí),ETL中的數(shù)據(jù)可以從MLC裝回DRAM0該拷貝方法可以通過記錄較小的差異進(jìn)行修改,這將減少數(shù)據(jù)拷貝次數(shù),并因此減少寫入MLC的次數(shù)。
[0297]DRAM和MLC或DRAM和SLC不必使用不同類型的閃存存儲(chǔ)器196,342,諸如SLC、MLC、TLC、QLC、PLC、3DNAND等。反而,該MLC可以通過分配TLC只具有強(qiáng)頁(yè)編程的一部分從TLC衍生。該SLC可以通過分配MLC、TLC、QLC、PLC等中只有強(qiáng)頁(yè)編程的一部分,由MLC、TLC,QLC,PLC等衍生。例如,增強(qiáng)TLC閃存可以通過利用諸如用作SLC(強(qiáng)頁(yè)面)的TLC的1/4和TLC的提醒物(弱頁(yè)面)配置成SLC (帶有強(qiáng)頁(yè))的一部分實(shí)現(xiàn)?;騎LC的一部分配置成MLC (強(qiáng)頁(yè)面),而提醒物配置成TLC (弱頁(yè)面)。另外,編程/刪除管理器41 (圖14)可以減慢頁(yè)面寫和塊刪除時(shí)間,以幫助延長(zhǎng)該閃存單元氧化物層的壽命。較慢頁(yè)面寫/塊刪除時(shí)間可以應(yīng)用于增強(qiáng)TLC閃存,以便以減少保持時(shí)間為代價(jià)增大耐久性。利用刷新管理器202可以延長(zhǎng)保持時(shí)間。由于該增強(qiáng)TLC閃存包括SLC(強(qiáng)頁(yè)面)和TLC(弱頁(yè)面)和帶有不同保持時(shí)間,刷新管理器202可以跟蹤塊作為SLC(強(qiáng)頁(yè)面)或TLC(弱頁(yè)面)的用法,然后相應(yīng)地調(diào)整刷新時(shí)間。作為另一方案,增強(qiáng)TLC閃存可以用配置成SLC(強(qiáng)頁(yè)面)用法的TLC 一部分,諸如用作SLC(強(qiáng)頁(yè)面)的TLC的1/4實(shí)現(xiàn)。類似地,MLC可以用作SLC(強(qiáng)頁(yè)面)/MLC (弱頁(yè)面)的組合,而QLC可以用作諸如SLC (強(qiáng)頁(yè)面)/QLC (弱頁(yè)面)、MLC (強(qiáng)頁(yè)面)/QLC (強(qiáng)頁(yè)面)、TLC (強(qiáng)頁(yè)面)/QLC (強(qiáng)頁(yè)面)的組合或SLC/MLC/TLC/QLC的任何結(jié)合。作為另一方案,MLC可以用作SLC(強(qiáng)頁(yè)面)等。另外,上述功能也可以在SEED SSD 200中實(shí)現(xiàn)。
[0298]這里描述的耐久性技術(shù)試圖解決與非閃存存儲(chǔ)器的耐久性問題。有幾種非易失存儲(chǔ)器,諸如MRAM、PCM、RRAM、Memristors, NRAM等,它們利用競(jìng)爭(zhēng)技術(shù)來代替與非閃存存儲(chǔ)器。
[0299]超級(jí)耐久閃存驅(qū)動(dòng)器可以與硬盤驅(qū)動(dòng)器(HDD)結(jié)合,帶有作為高速緩存的超級(jí)耐久閃存驅(qū)動(dòng)器和作為存儲(chǔ)器的HDD。超級(jí)耐久閃存驅(qū)動(dòng)器具有高的耐久性,而且是比高速緩存更適用??梢詾樵摶旌掀骷纳瓶傮w性能。確保DRAM的ETL中有意義的數(shù)據(jù)的另一個(gè)途徑是拷貝至HDD。在關(guān)斷電源的情況下,ETL中數(shù)據(jù)的有效拷貝可以保存在HDD中。上電時(shí),ETL中的那些數(shù)據(jù)可以從HDD裝回DRAM。該拷貝方法可以通過記錄較小的差異修改,這將減少拷貝數(shù)據(jù)的數(shù)量,并因此減少至HDD的寫入。
[0300]OS的引導(dǎo)映像可以是預(yù)先裝入DRAM緩沖區(qū),以加速主機(jī)上電引導(dǎo)。一旦上電引導(dǎo)過程結(jié)束,便釋放DRAM緩沖區(qū),供隨后的正常運(yùn)行使用。該主機(jī)進(jìn)入休眠模式或待機(jī)模式時(shí),無效的DRAM緩沖區(qū)可以寫入閃存存儲(chǔ)器。當(dāng)該主機(jī)的用戶注銷時(shí),該無效的DRAM緩沖區(qū)可以寫入閃存存儲(chǔ)器。
[0301]寫數(shù)據(jù)的分組不限于以一頁(yè)作為一個(gè)單元。數(shù)據(jù)可以分組進(jìn)入一個(gè)較大的單元,諸如多頁(yè)(元頁(yè))和整塊等。
[0302]盡管已經(jīng)把主機(jī)訪問的數(shù)據(jù)類型分類描述為來自該主機(jī)的邏輯地址與一個(gè)或多個(gè)地址范圍的比較,但這個(gè)比較可以只把邏輯地址的一部分與代表該地址范圍的范圍加以比較。另外,數(shù)據(jù)類型可以通過針對(duì)某種形式,諸如FAT形式或FDB形式,分析主機(jī)寫數(shù)據(jù)進(jìn)行識(shí)別。另外,早期主機(jī)按順序?qū)懭肟梢葬槍?duì)其數(shù)據(jù)格式進(jìn)行檢查。該FAT文件系統(tǒng)已經(jīng)用作示例。FDB/FAT是FAT文件系統(tǒng)的元數(shù)據(jù)。其他文件系統(tǒng),諸如LINUX、Apple OS和Android等都有它們自己的元數(shù)據(jù),帶有不同的名字,但卻等效。
[0303]每個(gè)塊都可以分為多頁(yè)區(qū)。例如,一個(gè)塊可以有16頁(yè)和4個(gè)區(qū),每個(gè)區(qū)4頁(yè)。在這替代的實(shí)施方案中,一些映射可以針對(duì)區(qū)而不是針對(duì)單個(gè)的頁(yè)或塊作為另一方案,在一種特殊情況下可以每區(qū)有一頁(yè)。采用區(qū)模式比采用頁(yè)模式需要較少的映射登記項(xiàng),因?yàn)槊總€(gè)區(qū)有多個(gè)頁(yè)。
[0304]來自該主機(jī)的邏輯扇區(qū)地址(LSA)的高幾位可以選擇簇或區(qū)。映射表中的全部登記項(xiàng)都可以針對(duì)同一區(qū)。當(dāng)來自LSA的該區(qū)號(hào)與映射表中所有登記項(xiàng)的區(qū)號(hào)匹配時(shí),該來自LSA的LBA選擇映射表的一項(xiàng)。也可以使用混合或多級(jí)映射表。因?yàn)獒槍?duì)FAT1/2,LBA的范圍是已知的,所以表內(nèi)容數(shù)據(jù)類型位“100”可以省略。The映射表可以具有塊或頁(yè)的粒度。
[0305]拷貝塊來重定位較不常采用頁(yè)映射,因?yàn)樵陧?yè)模式下比在塊模式下較少違反非SLC閃存的順序?qū)懭胍?guī)則。這增強(qiáng)該閃存系統(tǒng)的耐久性并提高性能。
[0306]該映射表可以位于擴(kuò)展地址空間,并可以使用大于用戶地址空間最大地址的虛擬地址或非法地址。頁(yè)可以保留主機(jī)內(nèi)的頁(yè)順序,或者可以重映射至任何頁(yè)位置。在另一個(gè)實(shí)施例中,諸如針對(duì)數(shù)據(jù)中心應(yīng)用,分頁(yè)和臨時(shí)文件可以作為正常用戶數(shù)據(jù)處理,以簡(jiǎn)化控制器操作,但以閃存的耐久性為代價(jià)。利用DRAM緩沖區(qū)而不是閃存存儲(chǔ)器作為耐久性備用/交換緩沖區(qū),該耐久性備用/交換區(qū)域可以提供擴(kuò)展的超量配置。關(guān)斷電源時(shí),需要備份電源來把備用/交換數(shù)據(jù)寫入閃存。該備份電源可以是電容、超級(jí)電容、電池組或UPS。在主機(jī)已經(jīng)提供壓縮功能的情況下可以任選地關(guān)閉壓縮功能。在其他實(shí)施例中,該控制器可以把分頁(yè)文件作為用戶數(shù)據(jù)文件處理,以簡(jiǎn)化控制器功能。
[0307]對(duì)這些框圖可以作許多改動(dòng)。諸如EEPROM等ROM可以連接到一個(gè)控制器或其一部分,和針對(duì)虛擬存儲(chǔ)處理器被專用于貯存固件。該固件還可以存入主閃存模塊。主機(jī)接口總線可以是串行AT附加(SATA)總線、外圍組件快速互聯(lián)(PCIe)總線、緊湊閃存(CF)總線或萬用串行總線(USB)、NVMe、固件(Firewire) 1394總線、光纖信道(FC)總線、不同的以太網(wǎng)總線等。SCFD可以只包括SLC或MLC閃存,或可以結(jié)合SLC/MLC閃存。
[0308]閃存存儲(chǔ)器可以嵌入主板或SSD電路板或可以處于分立模塊上??梢栽黾与娙?、緩沖區(qū)、電阻及其他組件。該控制器可以集成在主板上或在一個(gè)分立的電路板或模塊上。閃存存儲(chǔ)器可以與該控制器或與粗與非閃存存儲(chǔ)器芯片集成在一起,作為單芯片器件或插入模塊或電路板。
[0309]利用多級(jí)控制器,諸如控制器的總統(tǒng)—州長(zhǎng)配置(president-governorarrangement)、對(duì)于損耗分級(jí)、壞塊管理、再映射、高速緩存、電源管理等,SEED中的控制器可以比單級(jí)控制所要求的簡(jiǎn)單一些。在該控制器中可以使用成本較低的硬件,諸如利用8051處理器作控制器或虛擬存儲(chǔ)處理器或事務(wù)管理器,而不是功能更強(qiáng)大的處理器,諸如先進(jìn)RISC機(jī)器ARM-9 CPU內(nèi)核。針對(duì)某些應(yīng)用,可以考慮功能更強(qiáng)大的處理器。
[0310]不同數(shù)目和安排的閃存存儲(chǔ)塊可以連接至該SEED。與其使用一個(gè)LBA存儲(chǔ)總線接口或差分串行分組總線,還不如使用其他串行總線,諸如同步雙數(shù)據(jù)速率(DDR)、0NF1、切換與非、差分串行分組數(shù)據(jù)總線、傳統(tǒng)的閃存接口等。
[0311]模式邏輯可以只在上電時(shí)檢測(cè)一個(gè)引腿的狀態(tài),而不是檢測(cè)一個(gè)專用引腿的狀態(tài)。引腿狀態(tài)的某種結(jié)合或狀態(tài)序列可以用來初始化一個(gè)模式改變,或內(nèi)部寄存器,諸如配置登錄可以設(shè)置該模式。多總線協(xié)議芯片可以有一個(gè)附加的個(gè)性化引腿,用來選擇使用哪一種串行總線接口,或可以具有可編程寄存器,把模式設(shè)置為集線器或開關(guān)模式。[0312]可以以各種各樣的方法實(shí)現(xiàn)事務(wù)管理器、控制器、處理和功能。功能和處理可以用(PU或其他處理器編程和執(zhí)行,或可以用專用硬件、固件或某些結(jié)合實(shí)現(xiàn)。可以代替該功能的許多分區(qū)。該SEED控制器可以是硬件或,或者可以包括固件或軟件或其結(jié)合。
[0313]使用奇偶校驗(yàn)/ECC帶有多個(gè)閃存通道,和把數(shù)據(jù)段剝成多個(gè)NVM塊,大大改善總體系統(tǒng)的可靠性。例如,第九閃存芯片可以與閃存存儲(chǔ)器接口一起使用。其他八個(gè)芯片的奇偶位寫入第九閃存芯片,以便在八個(gè)閃存芯片之一遭到致命的讀出差錯(cuò)時(shí),為數(shù)據(jù)提供額外的保護(hù)。但是,可能要求CPU引擎與DDR/SDRAM高速緩存一起使用,以便滿足復(fù)雜的ECC/奇偶計(jì)算和生成的計(jì)算能力要求。其他好處是,即使一個(gè)閃存塊或閃存模塊損壞,數(shù)據(jù)仍舊可以復(fù)原,或該SEED可以初始化“故障恢復(fù)”或“自動(dòng)重建”處理,來插入一個(gè)新的閃存模塊,并恢復(fù)或重建該“丟失”或“損壞”的數(shù)據(jù)。系統(tǒng)的總體容錯(cuò)得以顯著改善。
[0314]通過把電子注入閃存單元的浮動(dòng)?xùn)艠O可以將其編程。閃存存儲(chǔ)器控制頁(yè)面寫入時(shí)的電子注入,使得它停留的兩個(gè)基準(zhǔn)電壓電平內(nèi)。該與非閃存結(jié)構(gòu)的位線連接到一串32個(gè)單元,而每個(gè)單元還連接到32條不同的字線。一個(gè)單元寫入數(shù)據(jù)之后,對(duì)相鄰單元的讀和寫都將導(dǎo)致對(duì)該單元的干擾。該干擾將向該單元的浮動(dòng)?xùn)艠O注入電子或由其中去除。另外,長(zhǎng)的時(shí)間周期將影響該單元浮動(dòng)?xùn)艠O上的電子數(shù)目。由于浮動(dòng)?xùn)艠O上電子數(shù)量的改變,于是當(dāng)讀出時(shí)輸出電壓電平將偏移。若輸出電壓電平的偏移跨越基準(zhǔn)電壓邊界,則讀出結(jié)果將是錯(cuò)的。
[0315]加寬或收窄數(shù)據(jù)總線,而閃存芯片可以用諸如帶有16或32位數(shù)據(jù)通道代替。替代的總線體系結(jié)構(gòu)帶有疊壘或分段總線可以在SEED的內(nèi)部或外部使用??梢栽谠揝EED內(nèi)使用兩個(gè)或多個(gè)內(nèi)部總線以增大處理量。更復(fù)雜的開關(guān)組織可以代替內(nèi)部或外部總線。
[0316]可以用各種各樣的方法完成數(shù)據(jù)剝離,諸如可以用奇偶位和糾錯(cuò)碼(ECC)。分組重新排序可以根據(jù)數(shù)據(jù)安排加以調(diào)整,用以避免針對(duì)重疊存儲(chǔ)位置重新排序。該SEED可以與其他組件集成在一起,或者可以是一個(gè)獨(dú)立的芯片。
[0317]可以增加附加的流水線或臨時(shí)緩沖區(qū)和先進(jìn)先出(FIFO)堆棧??梢栽诿總€(gè)信道中設(shè)置單獨(dú)的頁(yè)緩沖區(qū)??梢栽黾訒r(shí)鐘源。
[0318]單一封裝、單一芯片或多芯片封裝可以包含閃存存儲(chǔ)器和/或SEED或SSD的多個(gè)通道中的一個(gè)或多個(gè)。本發(fā)明不限于SCFD的用法。SCFD可以是用任何類型的帶有非易失性閃存存儲(chǔ)器的非易失性器件和控制器代替。
[0319]基于MLC的閃存器件可以具有四個(gè)MLC閃存芯片,帶有兩個(gè)并行數(shù)據(jù)通道,但也可以用不同的組合來形成其他閃存模塊,例如,四個(gè),八個(gè)或更多數(shù)據(jù)通道,或八個(gè),16個(gè)或更多MLC芯片。該閃存器件和通道可以接成鏈、分支或陣列。例如,4個(gè)閃存器件的分支對(duì)于該SEED可以連接成一條鏈??梢园丫奂蚍謪^(qū)方案的其他尺寸用于對(duì)該存儲(chǔ)器的不同的訪問。
[0320]主機(jī)可以臺(tái)式PC機(jī)主板或其他PC平臺(tái),諸如服務(wù)器、筆記簿、網(wǎng)絡(luò)本(Netbook)、平板輸入器、智能電話、移動(dòng)通信裝置、個(gè)人數(shù)字助理(PDA)、數(shù)字?jǐn)z像機(jī)、生產(chǎn)工具或測(cè)試器、結(jié)合器裝置或其他裝置。主機(jī)總線或主機(jī)裝置接口可以是SATA、PCIE、雷電(Thunderbolt)、SD、USB、NVMe、eMMC、iSSD或其他主機(jī)總線,而閃存模塊的內(nèi)部總線可以是PATA ;利用多個(gè)SD/MMC的多通道SSD、緊湊閃存(CF) ,USB或其他并行接口。閃存模塊可以是標(biāo)準(zhǔn)PCB或可以是多芯片模塊封裝在TSOP,BGA, LGA, COB, PIP, SIP, CSP, POP上或多芯片封裝(MCP)和可以包括粗與非(raw-NAND)閃存存儲(chǔ)器芯片或粗與非閃存存儲(chǔ)器芯片可以是在分立的閃存芯片中,或其他類型NVMNVM,諸如雙穩(wěn)電路、ONFI, eMMC、iSSD,3D NAND。SEED SSD可以使用帶有RAID的eMMC,而eMMC可以使用SEED結(jié)構(gòu)。內(nèi)部總線可以完全或部分地共享或可以是單獨(dú)的總線。SSD系統(tǒng)可以使用帶有其他組件,諸如LED指示器、電容、電阻等的印刷電路板。可以在一級(jí)或多級(jí)上增加電源管理。該SEED SSD可以與或不與VMD驅(qū)動(dòng)器一起工作。PCIe RAID DRAM高速緩存卡可以包含一個(gè)VMD驅(qū)動(dòng)器和多個(gè)SEED結(jié)構(gòu)化 SSD。
[0321]方向術(shù)語(yǔ),諸如上面、下面、向上、向下、頂部、底部等是相對(duì)的和隨著系統(tǒng)或數(shù)據(jù)旋轉(zhuǎn)可變的,翻轉(zhuǎn)過來等。這些術(shù)語(yǔ)針對(duì)描述器件是有用的,但不想絕對(duì)化。
[0322]NVM閃存存儲(chǔ)器可以在閃存模塊中,后者可以有一個(gè)封裝在一個(gè)單一的芯片封裝中的控制器和閃存片芯,它們不是可以集成在PCBA上,就是直接在主板上,以便進(jìn)一步簡(jiǎn)化裝配、降低制造成本和減少總厚度。另外,閃存芯片還可以與其他實(shí)施例配合使用,包括開放巾貞卡(open frame card)。
[0323]與其使用一個(gè)只用于閃存存儲(chǔ)的控制器,還不如可以增加一些附加的特征。例如,音樂播放器可以包括一個(gè)從存入閃存存儲(chǔ)器的MP3數(shù)據(jù)播放音頻用的控制器??梢园岩粋€(gè)音頻插口加到該裝置上,以便允許用戶插入耳機(jī)來傾聽音樂。可以把諸如藍(lán)牙發(fā)送器等無線發(fā)送器加到該裝置上,以便連接至無線耳機(jī),而不用音頻插口。也可以增加諸如IrDA用的紅外發(fā)送器。還可以增加藍(lán)牙無線電收發(fā)兩用機(jī)至無線鼠標(biāo)、PDA、鍵盤、打印機(jī)、數(shù)字?jǐn)z像機(jī)、MP3播放器或其他無線電裝置上。該藍(lán)牙無線電收發(fā)兩用機(jī)可以代替該連接器,作為初級(jí)連接器。藍(lán)牙適配器器件可以具有連接器、RF(射頻)無線電收發(fā)兩用機(jī)、基帶控制器、天線、閃存存儲(chǔ)器(EEPROM)、電壓調(diào)節(jié)器、晶體、LED (發(fā)光二極管)、電阻、電容和電感。這些組件可以在包入塑料或金屬罩之前設(shè)置在PCB上。
[0324]數(shù)據(jù)的尺寸,諸如扇區(qū)、頁(yè)、塊可以多樣化。一個(gè)扇區(qū)可以有512字節(jié),一頁(yè)可以有16個(gè)扇區(qū),而一塊可以有128頁(yè),正如許多實(shí)施例中的一個(gè)。
[0325]作為另一方案,ETL中的寫數(shù)據(jù)可以用閃存控制器打包和一對(duì)一地登錄到數(shù)據(jù)寫高速緩存,作為一個(gè)頁(yè)單元。增加報(bào)頭,以顯示該數(shù)據(jù)與主機(jī)LBA的關(guān)系。單獨(dú)打包的表把來自該主機(jī)的LBA映射到數(shù)據(jù)寫高速緩存元頁(yè)單元中數(shù)據(jù)和報(bào)頭位置的偏移量。該數(shù)據(jù)寫高速緩存的尺寸可以有兩個(gè)以上元頁(yè)單元的容量。當(dāng)該數(shù)據(jù)寫高速緩存寫滿或消逝的時(shí)間已到時(shí),一個(gè)選定的元頁(yè)單元將從該數(shù)據(jù)寫高速緩存移至閃存存儲(chǔ)器。該打包的表把來自該主機(jī)的LBA映射到數(shù)據(jù)和報(bào)頭在該閃存存儲(chǔ)器元頁(yè)單元中位置的偏移量。在覆蓋寫入來自主機(jī)的老數(shù)據(jù)時(shí),若該打包的數(shù)據(jù)仍在數(shù)據(jù)寫高速緩存中,則可以通過上移該打包數(shù)據(jù)加以棄置,把老舊數(shù)據(jù)附后寫入數(shù)據(jù)寫高速緩存,并更新該打包的表。否則,若該打包的數(shù)據(jù)是在閃存存儲(chǔ)器中,則把新的和老的數(shù)據(jù)加以比較,并產(chǎn)生差異(delta)數(shù)據(jù),以顯示該差異。該差異數(shù)據(jù)及其報(bào)頭將附在該數(shù)據(jù)寫高速緩存后面。該新的報(bào)頭還將包括以前的老舊數(shù)據(jù)的位置。該打包的表將把該LBA映射到差異數(shù)據(jù)位置。
[0326]發(fā)明背景段落可以包含有關(guān)本發(fā)明的問題或環(huán)境的背景信息,而不是通過其他來描述先有技術(shù)。因而包括在該背景材料段落中的材料不是由 申請(qǐng)人:承認(rèn)先有技術(shù)。
[0327]這里描述的任何方法或處理是機(jī)器實(shí)現(xiàn)的或計(jì)算機(jī)實(shí)現(xiàn)的,而且是想要由機(jī)器、計(jì)算機(jī)或其他器件完成,而不是想要在沒有這樣的機(jī)器輔助的情況下完全用人完成。所產(chǎn)生的實(shí)際的結(jié)果可以包括報(bào)告或其他機(jī)器在顯示裝置,諸如計(jì)算機(jī)監(jiān)視器、投影裝置、音頻產(chǎn)生裝置和有關(guān)多媒體裝置上產(chǎn)生的顯示,并可以包括也是由機(jī)器產(chǎn)生的打印的硬拷貝。其他機(jī)器的計(jì)算機(jī)控制是其他實(shí)際結(jié)果。
[0328]本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說明。本發(fā)明所屬【技術(shù)領(lǐng)域】的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。
[0329]盡管本文較多地使用了相關(guān)計(jì)算機(jī)術(shù)語(yǔ),但并不排除使用其它術(shù)語(yǔ)的可能性。使用這些術(shù)語(yǔ)僅僅是為了更方便地描述和解釋本發(fā)明的本質(zhì);把它們解釋成任何一種附加的限制都是與本發(fā)明精神相違背的。
【權(quán)利要求】
1.一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,包括: 一持續(xù)處理器映像發(fā)生器:當(dāng)持續(xù)模式掉電例程被激活,用以產(chǎn)生主機(jī)處理器映像時(shí),該持續(xù)處理器映像發(fā)生器把來自主機(jī)處理器狀態(tài)和來自處理器高速緩存存儲(chǔ)器的數(shù)據(jù)拷貝到易失存儲(chǔ)器; 一持續(xù)恢復(fù)映像:當(dāng)持續(xù)模式掉電例程被激活時(shí),存儲(chǔ)在該易失存儲(chǔ)器中的恢復(fù)映像; 一持續(xù)映像發(fā)生器:當(dāng)持續(xù)模式掉電例程被激活時(shí),把來自主機(jī)易失存儲(chǔ)器的數(shù)據(jù)拷貝到閃存存儲(chǔ)器中;以產(chǎn)生持續(xù)恢復(fù)映像; 其中: 當(dāng)電源充足時(shí),持續(xù)模式被激活和執(zhí)行;能夠用于激活和執(zhí)行持續(xù)模式;所述激活是指持續(xù)模式掉電例程被激活; 一恢復(fù)映像加載器:在掉電后,當(dāng)持續(xù)模式例程再次被激活時(shí),從閃存存儲(chǔ)器把該持續(xù)恢復(fù)映像讀到主機(jī)易失存儲(chǔ)器,并從該易失存儲(chǔ)器執(zhí)行該持續(xù)恢復(fù)映像,以恢復(fù)主機(jī)處理器映像。
2.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一持續(xù)模式電源/電池組監(jiān)視器:當(dāng)檢測(cè)出掉電時(shí),它從備份電源讀出電源狀態(tài)線,并為電池組讀出電池組狀態(tài); 一掉電例程模塊,當(dāng)該電池組狀態(tài)指出電力低于一個(gè)閾值并表明掉電時(shí),掉電例程模塊被激活并啟動(dòng)掉電例程。
3.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一持續(xù)模式寫高速緩存,用以把主機(jī)寫入數(shù)據(jù)存入一個(gè)動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。
4.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一持續(xù)模式RAM盤:用以把數(shù)據(jù)存入一個(gè)動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。
5.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一用戶接口:用以接收用戶選擇,當(dāng)用戶選擇禁止持續(xù)模式時(shí),啟用該掉電例程并禁止持續(xù)模式例程; 持續(xù)模式例程能正常使用時(shí)被使用者disable掉,在那狀況下,掉電時(shí)持續(xù)模式例程不會(huì)被激活。
6.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一分組引擎:用以把存于數(shù)據(jù)寫高速緩存的數(shù)據(jù)分組進(jìn)入元頁(yè)。
7.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一持續(xù)模式模塊:具有一組策略,用以觸發(fā)無效數(shù)據(jù)從該易失存儲(chǔ)器中的高速緩存寫入該閃存存儲(chǔ)器;其中該組策略包括高速緩存中的閾值電平無效數(shù)據(jù)、時(shí)間周期、由該用戶指定的特殊數(shù)據(jù)類型或?qū)憹M的高速緩存。
8.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一高層文件過濾器驅(qū)動(dòng)器:用以在主機(jī)上執(zhí)行,以便攔截向閃存驅(qū)動(dòng)器的高層主機(jī)寫A ; 一低層文件過濾器驅(qū)動(dòng)器:用以在主機(jī)上執(zhí)行,攔截低層文件系統(tǒng)主機(jī)寫入到閃存驅(qū)動(dòng)器,并把該低層文件系統(tǒng)主機(jī)寫入發(fā)送到數(shù)據(jù)拆分管理器,以便對(duì)主機(jī)寫入數(shù)據(jù)進(jìn)行分類。
9.根據(jù)權(quán)利要求8所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一加密引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成加密數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,還包括: 一壓縮引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成壓縮數(shù)據(jù)和加壓映射表。
11.根據(jù)權(quán)利要求8所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一去冗余引擎:耦合來接收被攔截的高層主機(jī)寫入,以便生成無冗余映射表。
12.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一事務(wù)管理器:用于事件登錄,指示數(shù)據(jù)寫入閃存存儲(chǔ)器的開始和完成; 一據(jù)恢復(fù)管理器:用以讀出由該事務(wù)管理器登錄的事件,以便在電源恢復(fù)之后撤銷或重做向閃存存儲(chǔ)器的寫入。
13.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一配置設(shè)置管理器:用來改變?cè)O(shè)置,以改善閃存耐久性和性能,該設(shè)置包括驅(qū)動(dòng)索引、搜索索引、頁(yè)面文件大小、系統(tǒng)恢復(fù)、休眠、寫高速緩存、預(yù)取指、超級(jí)取指、資源回收箱大小、登錄、可靠性監(jiān)視器、和RAM盤中的至少一個(gè)設(shè)置或多個(gè)設(shè)置。
14.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,所述的持續(xù)恢復(fù)映像還包括: 一處理器間DRAM:受該主機(jī)處理器控制,它保存一個(gè)不同的數(shù)據(jù)類型在易失存儲(chǔ)器的開始位置及其長(zhǎng)度清單; 一個(gè)標(biāo)志模塊:指示在該易失存儲(chǔ)器特定的數(shù)據(jù)類型需要包括進(jìn)持續(xù)恢復(fù)映像中。
15.根據(jù)權(quán)利要求2所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一電源/電池組監(jiān)視器:該電源/電池組監(jiān)視器從備份電源讀出電源狀態(tài)線,并當(dāng)電源狀態(tài)線指出掉電時(shí),激活掉電例程。
16.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一文件類型標(biāo)識(shí)符:用以為該GND驅(qū)動(dòng)器接收的主機(jī)寫入并生成數(shù)據(jù)類型;一數(shù)據(jù)拆分管理器:根據(jù)該文件類型標(biāo)識(shí)符產(chǎn)生的數(shù)據(jù)類型,對(duì)主機(jī)寫數(shù)據(jù)進(jìn)行分類; 一數(shù)據(jù)寫高速緩存:用以貯存具有一個(gè)用戶數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù); 一元數(shù)據(jù)高速緩存:用以貯存具有元數(shù)據(jù)數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù); 一分頁(yè)高速緩存:用以貯存具有分頁(yè)文件數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù); 一臨時(shí)高速緩存:用以貯存具有臨時(shí)數(shù)據(jù)類型的主機(jī)寫入數(shù)據(jù)。
17.根據(jù)權(quán)利要求1所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一用戶選定的關(guān)閉監(jiān)視器:用于監(jiān)視用戶所選定的關(guān)閉類型; 一開關(guān)用戶選擇例程模塊:用于暫停當(dāng)前的用戶對(duì)話,并從易失存儲(chǔ)器把高速緩存和緩沖區(qū)沖洗至SSD ; 一注銷選擇例程模塊:用于暫停全部用戶對(duì)話,并把高速緩存和緩沖區(qū)從該易失存儲(chǔ)器沖洗至SSD ; 一鎖定選擇例程模塊:用于為口令輸入顯示一個(gè)屏幕并等待用戶輸入口令來恢復(fù); 一重新啟動(dòng)選擇例程模塊:用于關(guān)掉用戶定義的 除關(guān)鍵系統(tǒng)業(yè)務(wù)外的其他全部應(yīng)用,然后重新引導(dǎo)系統(tǒng); 一靜止選擇例程模塊:用于使該主機(jī)處于低電力狀態(tài),但是不處于關(guān)閉狀態(tài); 一休眠選擇例程模塊:用于暫停除該SSD外的全部應(yīng)用、以及暫停全部業(yè)務(wù)和裝置;其中把一個(gè)休眠映像寫入該SSD,然后暫停該SSD ;和把一個(gè)休眠映像寫入該SSD,然后暫停該SSD ;和一關(guān)閉選擇例程模塊:用于暫停全部對(duì)話、應(yīng)用和裝置。
18.權(quán)利要求1的所述的一種具有綠能數(shù)據(jù)持續(xù)模式的器件驅(qū)動(dòng)器,其特征在于,還包括: 一持續(xù)模式RAM盤,用以把數(shù)據(jù)存入動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器。
19.一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,其特征在于,包括: 一分組引擎:用以對(duì)存入元頁(yè)的數(shù)據(jù)進(jìn)行分組; 一處理模塊:當(dāng)激活掉電模式例程時(shí)被激活;并且該處理模塊暫停全部應(yīng)用、業(yè)務(wù)和裝置; 其中電源掉電時(shí)主機(jī)易失存儲(chǔ)器中的全部數(shù)據(jù)丟失; 一恢復(fù)映像裝入器,當(dāng)上次掉電時(shí)上次激活掉電模式例程時(shí),該恢復(fù)映像裝入器把引導(dǎo)映像從閃存存儲(chǔ)器讀到該主機(jī)易失存儲(chǔ)器,并從該主機(jī)易失存儲(chǔ)器執(zhí)行該引導(dǎo)映像,以便將其存入主機(jī)處理器映像。
20.根據(jù)權(quán)利要求19所述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,其特征在于,還包括: 一加密引擎:用于耦合接收被攔截的高層主機(jī)寫入數(shù)據(jù),以便生成加密數(shù)據(jù)。
21.根據(jù)權(quán)利要求19所述的一種帶有掉電模式的無需要安裝驅(qū)動(dòng)的閃存驅(qū)動(dòng)器,其特征在于,還包括: 一壓縮引擎,用于耦合接收被攔截的高層主機(jī)寫入數(shù)據(jù),以便生成壓縮數(shù)據(jù)和壓縮映射表。
22.—種帶有與SSD匹配的方案的綠色與非器件驅(qū)動(dòng)器,其特征在于,包括: 一分組引擎,用以把數(shù)據(jù)分組進(jìn)入元頁(yè); 根據(jù)SSD不同的結(jié)構(gòu)管理不同尺寸元頁(yè)的多個(gè)方案,用以增強(qiáng)該SSD的性能和耐久性; 與該SSD的通信協(xié)議; 一參數(shù)選擇器,用以選擇參數(shù),包括元頁(yè)大小參數(shù),當(dāng)SSD提供標(biāo)準(zhǔn)SSD ID時(shí),該參數(shù)選擇器為標(biāo)準(zhǔn)SSD選擇標(biāo)準(zhǔn)參數(shù),當(dāng)該SSD不提供標(biāo)準(zhǔn)SSD ID時(shí),該參數(shù)選擇器為該SSD選擇優(yōu)化參數(shù),并提供該SSD的硬件結(jié)構(gòu)和功能能力的信息。
23.根據(jù)權(quán)利要求22所述的一種帶有與SSD匹配的方案的綠色與非器件驅(qū)動(dòng)器,其特征在于,還包括: 一參數(shù)測(cè)試器:用以執(zhí)行一組預(yù)定的測(cè)試,以便利用測(cè)試參數(shù)來測(cè)試該SSD,并根據(jù)測(cè)試結(jié)果為該SSD選擇參數(shù)。
24.根據(jù)權(quán)利要求22所述的一種帶有與SSD匹配的方案的綠色與非器件驅(qū)動(dòng)器,還包 括: 一分區(qū)對(duì)齊引擎:用以設(shè)置分區(qū)偏移量,以便與多個(gè)與非頁(yè)大小和與非刪除塊大小和文件分配單元簇的大小對(duì)齊。
25.一種帶有權(quán)利要求19所述的綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,包括: 一主機(jī)接口,用以從主機(jī)GND驅(qū)動(dòng)器接收主機(jī)讀出和主機(jī)寫入:帶有加密、壓縮、元頁(yè)分組的能力; 一控制器:用以響應(yīng)由該主機(jī)接口接收的主機(jī)讀和主機(jī)寫:控制對(duì)閃存存儲(chǔ)器和對(duì)SEED DRAM緩沖區(qū)的訪問,該控制器把主機(jī)數(shù)據(jù)寫至該SEED DRAM緩沖區(qū); 一 SEED動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器緩沖區(qū):用以貯存主機(jī)耐久性平移層;和 一閃存接口:用以訪問閃存存儲(chǔ)器或閃存存儲(chǔ)器件。
26.根據(jù)權(quán)利要求25所述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括: 一糾錯(cuò)碼管理器:用以生成ECC碼,以便附在寫入該閃存存儲(chǔ)器的分組元頁(yè)后面; 一壞頁(yè)管理器:用以跟蹤該閃存存儲(chǔ)器的壞頁(yè); 一損耗分級(jí)器:用以向刪除計(jì)數(shù)低的閃存存儲(chǔ)器的空塊指定新的數(shù)據(jù),或把刪除計(jì)數(shù)低的塊數(shù)據(jù)移至空刪除計(jì)數(shù)高的塊。
27.根據(jù)權(quán)利要求25所述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括: 一種數(shù)據(jù)類型:從主機(jī)GND驅(qū)動(dòng)器接收的文件類型標(biāo)識(shí)符的數(shù)據(jù)類型; 一數(shù)據(jù)拆分管理器:用以根據(jù)由該文件類型標(biāo)識(shí)符產(chǎn)生的數(shù)據(jù)類型對(duì)主機(jī)寫數(shù)據(jù)進(jìn)行分類; 一數(shù)據(jù)寫高速緩存:用以儲(chǔ)存具有用戶數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù); 一元數(shù)據(jù)高速緩存:用以貯存具有元數(shù)據(jù)數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù); 一分頁(yè)高速緩存:用以貯存具有分頁(yè)文件數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù); 一臨時(shí)高速緩存:用以貯存具有臨時(shí)數(shù)據(jù)類型的主機(jī)寫數(shù)據(jù)。
28.根據(jù)權(quán)利要求25所述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括: 一 SEED動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器緩沖區(qū):受所述控制器控制; 一 DRAM緩沖區(qū)中的備用/交換區(qū); 其中所述控制器使用該DRAM緩沖區(qū)中的備用/交換區(qū)來在該閃存存儲(chǔ)器內(nèi)合并有效的數(shù)據(jù)與新的來自主機(jī)的數(shù)據(jù),以便當(dāng)重寫一個(gè)寫滿的頁(yè)或該閃存存儲(chǔ)器中現(xiàn)有的塊上的部分頁(yè)面時(shí),產(chǎn)生結(jié)合的數(shù)據(jù),通過把新的數(shù)據(jù)寫入該DRAM緩沖區(qū)中涉及該閃存存儲(chǔ)器中現(xiàn)有塊的備用塊,并當(dāng)針對(duì)該閃存存儲(chǔ)器中不同的塊,該備用塊是附加的新的數(shù)據(jù)所需要時(shí),把該備用塊與新的數(shù)據(jù)和來自該閃存存儲(chǔ)器中現(xiàn)有塊的數(shù)據(jù)結(jié)合,寫入該閃存存儲(chǔ)器中的交換塊,并針對(duì)該閃存存儲(chǔ)器中現(xiàn)有塊的頁(yè),把頁(yè)面狀態(tài)標(biāo)記為垃圾頁(yè)面。
29.根據(jù)權(quán)利要求28所述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括: 該帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD上的備份電源當(dāng)該主機(jī)關(guān)斷時(shí)向SEED SSD 供電; 其中在該DRAM緩沖區(qū)中的備用/交換區(qū)用于該閃存存儲(chǔ)器作為備用塊。
30.根據(jù)權(quán)利要求25所述的一種帶有綠色與非器件驅(qū)動(dòng)器的超級(jí)增強(qiáng)耐久性SSD,其特征在于,還包括: 當(dāng)該主機(jī)關(guān)斷時(shí),主機(jī)上的電源備份向該SEED SSD供電或在該SEED SSD上的備份電源向該SEED SSD供電 ; 在小功率狀態(tài)下的處理器和當(dāng)主機(jī)關(guān)斷時(shí)保持有效的定時(shí)器; 其中DRAM和閃存存儲(chǔ)器沒有電力提供; 其中當(dāng)定時(shí)器達(dá)到一個(gè)時(shí)間閾值時(shí),該定時(shí)器喚醒該處理器并向該DRAM和該閃存存儲(chǔ)器提供電力; 以此處理器檢查閃存塊的寫入日期并當(dāng)保持時(shí)間超過保持極限時(shí)刷新閃存塊。
31.一種主板上的非易失存儲(chǔ)器控制器,其特征在于,包括: 一閃存接口:用以在閃存存儲(chǔ)器上刪除塊和寫頁(yè),其中塊在尺寸上可以有多個(gè)頁(yè); 一動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)接口 ; 一來自主機(jī)處理器輸入信號(hào),用于關(guān)斷電源或失效時(shí)的持續(xù)模式,指出主機(jī)已經(jīng)把處理器狀態(tài)及其高速緩存沖洗進(jìn)DRAM,該NVM控制器接過DRAM模塊總線信號(hào)和閃存接口的控制,用以把數(shù)據(jù)從DRAM備份到該閃存存儲(chǔ)器; 一來自主機(jī)處理器輸入信號(hào),用于上電重新引導(dǎo)時(shí)的持續(xù)模式,指出該主機(jī)正在等待NVM控制器重新從該閃存存儲(chǔ)器裝入DRAM ; 一輸出信號(hào),控制外部開關(guān)來選擇DRAM;和閃存接口信號(hào),不是來自該主機(jī),就是來自NVM控制器; 一輸出信號(hào),指示上電引導(dǎo)映像從NVM控制器重新裝入主機(jī)處理器的操作成功或失效; 其中該NVM控制器在關(guān)斷電源或失效時(shí),在完成從DRAM備份到該閃存存儲(chǔ)器之后,暫停全部操作; 其中上電重新引導(dǎo)時(shí)完成從該閃存存儲(chǔ)器恢復(fù)到DRAM之后,該NVM控制器暫停全部操作。
32.根據(jù)權(quán)利要求31所述的一種主板上的非易失存儲(chǔ)器控制器,其特征在于,還包括: 其中該外部開關(guān)集成進(jìn)該NVM控制器。
33.根據(jù)權(quán)利要求31所述的一種主板上的非易失存儲(chǔ)器控制器,其特征在于,還包括: 一處理間DRAM:受控于該主機(jī)處理器,它保存一個(gè)不同數(shù)據(jù)類型在易失存儲(chǔ)器的開始位置和長(zhǎng)度的清單。
34.根據(jù)權(quán)利要求31所述的一種主板上的非易失存儲(chǔ)器控制器,其特征在于,其中該外部開關(guān)集成進(jìn)主機(jī)處理器。
35.根據(jù)權(quán)利要求31所述的一種主板上的非易失存儲(chǔ)器控制器,其特征在于,其中該外部開 關(guān)集成進(jìn)該主機(jī)處理器的芯片組。
【文檔編號(hào)】G06F1/32GK103995578SQ201410117893
【公開日】2014年8月20日 申請(qǐng)日期:2014年3月26日 優(yōu)先權(quán)日:2013年6月26日
【發(fā)明者】俞一康, 馬治剛, 陳希孟, 嚴(yán)毅旭 申請(qǐng)人:晶天電子(深圳)有限公司