具有斷電保護(hù)功能的存儲(chǔ)設(shè)備、斷電保護(hù)方法及計(jì)算系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)設(shè)備,具體涉及一種具有斷電保護(hù)功能的存儲(chǔ)設(shè)備、斷電保護(hù)方法及計(jì)算系統(tǒng)。
【背景技術(shù)】
[0002]關(guān)于固態(tài)硬盤(SSD)和NAND:
[0003]當(dāng)前,NAND閃存技術(shù)的發(fā)展推動(dòng)了 SSD產(chǎn)業(yè)。如圖1所示,SSD與主機(jī)之間使用高速串行接口如SATA,PICe等技術(shù)。內(nèi)部由用于存儲(chǔ)數(shù)據(jù)的一組NAND芯片,用于支持計(jì)算和緩存數(shù)據(jù)的DDR DRAM(內(nèi)存),以及一個(gè)主控芯片(SSD Controller)組成。有時(shí)候還需要斷電保護(hù)系統(tǒng)。
[0004]在手機(jī)等設(shè)備中使用的存儲(chǔ)卡(SD或MicroSD卡,eMMC)架構(gòu)類似。只不過用少量集成在控制芯片中的SRAM取代了 DRAM芯片組。
[0005]NAND是一種整塊讀寫的存儲(chǔ)設(shè)備,最小可讀取的單元叫頁(page),最小可擦除的單元叫塊(block),一個(gè)塊往往由很多頁組成,塊擦除后里面的頁可以進(jìn)行單獨(dú)的寫入操作。寫入操作很慢,比讀取慢得多,而擦除操作又比寫入更加慢得多。
[0006]NAND的這種讀寫方式是由其存儲(chǔ)介質(zhì)的特性決定的。NAND和所有閃存一樣,使用的Floating Gate存儲(chǔ)單元。雖然把電荷栗入比較耗時(shí),把電荷放掉的時(shí)間遠(yuǎn)比把電荷打進(jìn)去的時(shí)間長,于是只能設(shè)計(jì)成整個(gè)Block所有的存儲(chǔ)單元一起擦除(放電),然后再開始寫入(對(duì)某些單元進(jìn)行電荷栗入,其他單元不變)。
[0007]由于NAND寫入速度慢,現(xiàn)代NAND芯片都把芯片分成多個(gè)Plane,不同的Plane可以進(jìn)行平行的讀寫、擦除操作。因此,內(nèi)部也必須有一些RAM做緩存。
[0008]由于NAND的讀寫速度比DRAM慢得多,還可以利用一部分DRAM空間作讀、寫的緩存(Cache),提高整個(gè)SSD的性能。然而引入寫緩存產(chǎn)生了新的問題:一旦發(fā)生斷電,DRAM緩存中尚未寫入NAND的內(nèi)容會(huì)丟失,造成系統(tǒng)丟失數(shù)據(jù)甚至整個(gè)文件系統(tǒng)的損壞。所以必須同時(shí)使用昂貴的、體積大的斷電保護(hù)系統(tǒng)(一般由電池或者大量的電容器組成)。
[0009]關(guān)于MRAM:
[0010]MRAM是一種新的內(nèi)存和存儲(chǔ)技術(shù),可以像SRAM/DRAM—樣快速隨機(jī)讀寫,還可以像Flash閃存一樣在斷電后永久保留數(shù)據(jù)。
[0011]MRAM的經(jīng)濟(jì)性相當(dāng)好,單位容量占用的硅片面積比SRAM有很大的優(yōu)勢(shì),比在此類芯片中經(jīng)常使用的NOR Flash也有優(yōu)勢(shì),比嵌入式NOR Flash的優(yōu)勢(shì)更大。MRAM的性能也相當(dāng)好,讀寫時(shí)延接近最好的SRAM,功耗則在各種內(nèi)存和存儲(chǔ)技術(shù)最好。而且MRAM不像DRAM以及Flash,與標(biāo)準(zhǔn)CMOS半導(dǎo)體工藝不兼容,MRAM可以和邏輯電路集成到一個(gè)芯片中。
[0012]使用MRAM作為存儲(chǔ)設(shè)備中的寫緩存,既能提高寫入速度,又能省掉斷電保護(hù)系統(tǒng),當(dāng)采用一些策略將經(jīng)常進(jìn)行寫操作的NAND頁盡量留在寫緩存中,可以減少寫回NAND芯片的次數(shù),延長產(chǎn)品的使用壽命。
[0013]然而在沒有備份電源的情況下,如果在把數(shù)據(jù)從MRAM寫回NAND時(shí)發(fā)生斷電,那么存入NAND中的將是不完整的或壞的數(shù)據(jù)。實(shí)際上,由于現(xiàn)代的NAND芯片大部分內(nèi)部都有RAM緩存,即使數(shù)據(jù)已經(jīng)全部輸入到NAND芯片中,突然發(fā)生斷電依然可能破壞數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0014]有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是提供一種具有斷電保護(hù)功能的存儲(chǔ)設(shè)備,能夠在不使用備份電源的條件下,發(fā)生斷電時(shí)保持?jǐn)?shù)據(jù)的完整性。
[0015]如果在寫入一個(gè)NAND頁的過程中發(fā)生斷電,重新上電后把同樣的數(shù)據(jù)寫回這個(gè)NAND頁是就能夠保證數(shù)據(jù)的完整性。由此,本發(fā)明提供了一種具有斷電保護(hù)功能的存儲(chǔ)設(shè)備,確保在發(fā)生突然斷電的情況下,不會(huì)發(fā)生數(shù)據(jù)的丟失或損壞。
[0016]本發(fā)明還提供一種斷電保護(hù)方法。
[0017]本發(fā)明提供一種存儲(chǔ)設(shè)備,包括主機(jī)接口、主控芯片、MRAM以及一個(gè)或多個(gè)NAND芯片,主控芯片包括CPU ;MRAM包括:
[0018]寫緩存或讀寫緩存,按照與NAND芯片中NAND頁同樣大小的頁組織起來,寫入存儲(chǔ)設(shè)備的數(shù)據(jù)首先寫入寫緩存或讀寫緩存中,之后再寫回到所述NAND芯片中;
[0019]緩存頁表,用于存儲(chǔ)緩存頁對(duì)應(yīng)的NAND頁的物理地址;
[0020]MRAM還包括寫回緩存頁表,用于記錄即將寫回NAND芯片的緩存頁,如果所述緩存頁寫回NAND芯片完成,清除寫回緩存頁表的相應(yīng)記錄;如果緩存頁寫回NAND芯片的過程中發(fā)生斷電,上電時(shí)將緩存頁重新寫回NAND芯片。
[0021]注意,一般情況下,一個(gè)NAND頁在發(fā)生寫入后再次寫入會(huì)發(fā)生錯(cuò)誤。但是發(fā)生部分寫入后再次寫入同樣的內(nèi)容是不會(huì)有問題的。
[0022]進(jìn)一步地,存儲(chǔ)設(shè)備采用并行寫操作方式,將多個(gè)緩存頁同時(shí)寫回NAND芯片,在所述MRAM中記錄所述多個(gè)緩存頁中的每一個(gè)緩存頁。
[0023]進(jìn)一步地,在MRAM中記錄即將擦除的塊,如果塊成功擦除,清除塊的記錄,如果塊擦除的過程中發(fā)生斷電,上電時(shí)重新擦除所述塊。
[0024]本發(fā)明還提供一種上述存儲(chǔ)設(shè)備的斷電保護(hù)方法,包括以下步驟:
[0025](a)在MRAM中記錄即將寫回NAND芯片的緩存頁;
[0026](b)將緩存頁寫回NAND芯片;
[0027](c)判斷緩存頁寫回NAND芯片是否完成,如果完成,清除MRAM中緩存頁的相應(yīng)記錄然后釋放所述緩存頁;
[0028](d)上電時(shí)檢查即將寫回NAND芯片的緩存頁的相應(yīng)記錄,如果存在未清除的即將寫回NAND芯片的緩存頁的相應(yīng)記錄,將緩存頁重新寫回NAND芯片,并清除MRAM中緩存頁的相應(yīng)記錄然后釋放所述緩存頁。
[0029]進(jìn)一步地,步驟(a)在MRAM中記錄即將寫回NAND芯片的緩存頁的方法為:設(shè)置緩存頁表中緩存頁的寫入標(biāo)記,或者在MRAM中設(shè)置操作頁表,在操作頁表中添加緩存頁的記錄。
[0030]進(jìn)一步地,步驟(c)中判斷緩存頁寫回NAND芯片是否完成的方法為:讀取NAND芯片的相關(guān)寄存器,或者接收NAND芯片產(chǎn)生的中斷信號(hào)。
[0031]進(jìn)一步地,步驟(d)將緩存頁重新寫回NAND芯片的方法包括以下步驟:
[0032](dl)檢查緩存頁表,是否存在具有寫入標(biāo)記的緩存頁;或者檢查操作頁表,是否存在即將寫回NAND芯片的緩存頁的相應(yīng)記錄;
[0033](d2)如果在緩存頁表中存在具有寫入標(biāo)記的緩存頁,或者在操作頁表中存在即將寫回NAND芯片的緩存頁的相應(yīng)記錄,將緩存頁重新寫回NAND芯片。
[0034]進(jìn)一步地,斷電保護(hù)方法還包括以下步驟:
[0035](e)在MRAM中記錄即將擦除的塊;
[0036](f)擦除所述塊;
[0037](g)判斷塊擦除是否完成,如果完成,清除MRAM中塊的相應(yīng)記錄;
[0038](h)上電時(shí)檢查即將擦除的塊的相應(yīng)記錄,如果存在未清除的即將擦除的塊的相應(yīng)記錄,將塊重新擦除,并清除MRAM中塊的相應(yīng)記錄。
[0039]本發(fā)明提供一種計(jì)算系統(tǒng),包括存儲(chǔ)設(shè)備、CPU以及DRA