一種具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)及讀寫方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及固態(tài)硬盤,尤其涉及一種具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)及讀寫方法。
【背景技術(shù)】
[0002]當(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)。
[0003]NAND是一種整塊讀寫的存儲(chǔ)設(shè)備,最小可讀取的單元叫頁(yè)(page),最小可擦除的單元叫塊(block),一個(gè)塊往往由很多頁(yè)組成,塊擦除后里面的頁(yè)可以進(jìn)行單獨(dú)的寫入操作。寫入操作很慢,比讀取慢得多,而擦除操作又比寫入更加慢得多。
[0004]如圖2所示,手機(jī)與計(jì)算機(jī)的文件操作方式如下:
[0005](I)應(yīng)用軟件向操作系統(tǒng)發(fā)出打開、關(guān)閉、讀、寫文件指令;
[0006](2)操作系統(tǒng)中的文件系統(tǒng)部分把讀、寫文件的指令轉(zhuǎn)化為讀、寫存儲(chǔ)塊的指令;
[0007](3)NAND驅(qū)動(dòng)與管理軟件接受讀寫存儲(chǔ)塊區(qū)的指令,進(jìn)行緩存、寫均衡等優(yōu)化,向芯片發(fā)出讀page,寫block等指令。
[0008]在手機(jī)中,NAND驅(qū)動(dòng)與管理軟件通常作為與操作系統(tǒng)緊密相關(guān)的軟件模塊,在主機(jī)芯片上運(yùn)行;在計(jì)算機(jī)中,NAND驅(qū)動(dòng)與管理軟件通常在固態(tài)硬盤的主控芯片上運(yùn)行。
[0009]NAND閃存的一個(gè)問題是NAND具有有限的壽命。里面的每一個(gè)頁(yè)經(jīng)過一定次數(shù)的擦寫以后,就會(huì)永久失效不能繼續(xù)使用。目前的產(chǎn)業(yè)發(fā)展趨勢(shì)是NAND的容量和數(shù)據(jù)密度增長(zhǎng)非???,但卻是以降低壽命為代價(jià)??刹翆懘螖?shù)從最初的10萬次降低到目前的3000次左右。
[0010]由于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)(一般由電池或者大量的電容器組成)。而邏輯-物理地址對(duì)照表,在發(fā)生斷電后,是可以利用NAND中的數(shù)據(jù)重新構(gòu)造的,盡管很費(fèi)時(shí)間。
[0011]從以上介紹可以看出,SSD的設(shè)計(jì)遇到了兩難:如果不使用寫緩存,產(chǎn)品的寫入性能大打折扣;如果使用寫緩存,必須同時(shí)使用昂貴又占體積的斷電保護(hù)設(shè)備,造成費(fèi)效比很差。
[0012]MRAM是一種新的內(nèi)存和存儲(chǔ)技術(shù),可以像SRAM/DRAM—樣快速隨機(jī)讀寫,還可以像Flash閃存一樣在斷電后永久保留數(shù)據(jù)。MRAM的經(jīng)濟(jì)性相當(dāng)好,單位容量占用的硅片面積比SRAM有很大的優(yōu)勢(shì),比在此類芯片中經(jīng)常使用的NOR Flash也有優(yōu)勢(shì),比嵌入式NORFlash的優(yōu)勢(shì)更大。MRAM的性能也相當(dāng)好,讀寫時(shí)延接近最好的SRAM,功耗則在各種內(nèi)存和存儲(chǔ)技術(shù)最好。而且MRAM不像DRAM以及Flash那樣與標(biāo)準(zhǔn)CMOS半導(dǎo)體工藝不兼容。MRAM可以和邏輯電路集成到一個(gè)芯片中。
[0013]使用速度快并且斷電后保持內(nèi)容的MRAM用作讀寫緩存可以解決這個(gè)問題,一種混合使用DRAM和MRAM的固態(tài)硬盤,如圖3所示,或者僅使用MRAM的固態(tài)硬盤,如圖4所示,由于MRAM可以像Flash閃存一樣在斷電后永久保留數(shù)據(jù),可以不使用昂貴的、體積大的斷電保護(hù)系統(tǒng),因而降低了固態(tài)硬盤的成本。
[0014]但未來相當(dāng)長(zhǎng)一段時(shí)間內(nèi),MRAM會(huì)比DRAM貴很多。使用大量的MRAM同樣會(huì)顯著增加產(chǎn)品的成本。
[0015]為了提高整體性能,讀和寫都需要緩存;而MRAM最大的價(jià)值在于用作寫緩存,緩存越大,產(chǎn)品性能就越好,因此需要找到一個(gè)費(fèi)效比高的緩存辦法。
[0016]因此,本領(lǐng)域的技術(shù)人員致力于開發(fā)一種費(fèi)效比高的緩存結(jié)構(gòu),既能夠保證讀寫性能,又能夠使得成本最優(yōu)。
【發(fā)明內(nèi)容】
[0017]有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是提供一種具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng),既能夠保證讀操作性能,又能夠在保證數(shù)據(jù)在意外斷電情況下安全的同時(shí)大大提高了數(shù)據(jù)寫入的速度;還能夠使得成本最優(yōu)。
[0018]本發(fā)明還提供采用本發(fā)明的具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)的讀方法與寫方法。
[0019]本發(fā)明提供一種存儲(chǔ)系統(tǒng),包括主機(jī)內(nèi)存與固態(tài)硬盤,固態(tài)硬盤包括主控芯片、NAND芯片與MRAM,主機(jī)內(nèi)存包括讀緩存,MRAM包括寫緩存。
[0020]本發(fā)明提供的存儲(chǔ)系統(tǒng),首先主機(jī)內(nèi)存包括讀緩存,能夠保證良好的讀操作性能,由于固態(tài)硬盤接口的速度通常比主機(jī)內(nèi)存接口速度慢,使用主機(jī)內(nèi)存中的讀緩存比使用固態(tài)硬盤內(nèi)部的DRAM/MRAM中的讀緩存,讀操作速度更快;其次使用MRAM作為寫緩存,在保證數(shù)據(jù)在意外斷電情況下數(shù)據(jù)安全的同時(shí),也大大提高了數(shù)據(jù)寫入的速度;使用主機(jī)內(nèi)存做讀緩存,就可以使得有限的MRAM空間盡可能多地用作寫緩存,使得成本最優(yōu)。
[0021]使用MRAM作為NAND寫緩存,不但速度快,而且因?yàn)樵谕话l(fā)斷電的情況下更加安全,節(jié)省了昂貴的斷電保護(hù)系統(tǒng)。使用MRAM作為寫緩存還減少了 NAND的寫次數(shù),起到了保護(hù)它并延長(zhǎng)使用壽命的作用。
[0022]總之,這是一個(gè)費(fèi)效比很好的方案。
[0023]進(jìn)一步地,主機(jī)內(nèi)存還包括讀緩存表,讀緩存表用于存儲(chǔ)讀緩存中每一頁(yè)是否空閑以及非空閑時(shí)對(duì)應(yīng)的NAND頁(yè)地址。
[0024]進(jìn)一步地,MRAM還包括寫緩存表,寫緩存表用于存儲(chǔ)寫緩存中每一頁(yè)是否空閑以及非空閑時(shí)對(duì)應(yīng)的NAND頁(yè)地址。
[0025]進(jìn)一步地,MRAM通過DDR DRAM接口與固態(tài)硬盤的主控芯片連接。
[0026]進(jìn)一步地,MRAM集成于固態(tài)硬盤的主控芯片中。
[0027]本發(fā)明提供采用本發(fā)明的具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)的讀方法,包括以下步驟:
[0028](I)收到讀取NAND頁(yè)指令;
[0029](2)根據(jù)NAND頁(yè)地址,在讀緩存表中搜索NAND頁(yè)是否在主機(jī)內(nèi)存的讀緩存中,如果在讀緩存中,從相應(yīng)的讀緩存頁(yè)中讀取NAND頁(yè)的數(shù)據(jù),執(zhí)行步驟(7);如果不在讀緩存中,執(zhí)行步驟⑶;
[0030](3)根據(jù)NAND頁(yè)地址,在寫緩存表中搜索NAND頁(yè)是否在MRAM的寫緩存中,如果在寫緩存中,從寫緩存中讀取NAND頁(yè)的數(shù)據(jù),執(zhí)行步驟(5);如果不在寫緩存中,執(zhí)行步驟
(4);
[0031 ] (4)從NAND芯片中讀取NAND頁(yè)的數(shù)據(jù);
[0032](5)如果讀緩存中沒有空閑讀緩存頁(yè),清理讀緩存;
[0033](6)將讀取的NAND頁(yè)的數(shù)據(jù)寫入空閑讀緩存頁(yè);
[0034](7)讀操作結(jié)束。
[0035]本發(fā)明還提供采用本發(fā)明的具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)的寫方法,包括以下步驟:
[0036](I)收到寫NAND頁(yè)指令;
[0037](2)根據(jù)NAND頁(yè)地址,在讀緩存表中搜索NAND頁(yè)是否在主機(jī)內(nèi)存的讀緩存中,如果在讀緩存中,將數(shù)據(jù)寫入讀緩存中相應(yīng)的讀緩存頁(yè)中;
[0038](3)根據(jù)NAND頁(yè)地址,在寫緩存表中搜索NAND頁(yè)是否在MRAM的寫緩存中,如果在寫緩存中,將數(shù)據(jù)寫入寫緩存中相應(yīng)的寫緩存頁(yè)中,執(zhí)行步驟(6);如果不在寫緩存中,執(zhí)行步驟⑷;
[0039](4)將數(shù)據(jù)寫入寫緩存的空閑寫緩存頁(yè)中,將寫緩存表中寫緩存頁(yè)相應(yīng)記錄的是否空閑更新為非空閑;
[0040](5)如果寫緩存的空閑寫緩存頁(yè)少于第一預(yù)警值,清理寫緩存;
[0041](6)寫操作結(jié)束。
[0042]與現(xiàn)有技術(shù)相比,本發(fā)明提供的具有二級(jí)緩存結(jié)構(gòu)的存儲(chǔ)系統(tǒng)及讀寫方法具有以下有益效果:
[0043](I)首先讀操作性能更好,由于固態(tài)硬盤接口的速度通常比主機(jī)內(nèi)存接口速度慢,使用主機(jī)內(nèi)存中的讀緩存比使用固態(tài)硬盤內(nèi)部的DRAM/MRAM中的讀緩存,讀操作速度更快;
[0044](2)其次使用MRAM作為寫緩存,在保證數(shù)據(jù)在意外斷電情況下安全的同時(shí),也大大提高了數(shù)據(jù)寫入的速度;
[0045](3)使用主機(jī)內(nèi)存中的讀緩存,就可以使得有限的MRAM空間盡可能多地用作寫緩存。使得成本最優(yōu);
[0046](4)使用MRAM作為NAND寫緩存,不但速度快,而且因?yàn)樵谕话l(fā)斷電的情況下更加安全,節(jié)省了昂貴的斷電保護(hù)系統(tǒng),同時(shí)也降低了功耗;使用MRAM作為寫緩存還減少了NAND的寫次數(shù),起到了保護(hù)它并延長(zhǎng)使用壽命的作用。
[0047]總之,這是一個(gè)費(fèi)效比很好的方案。
[0048]以下將結(jié)合附圖對(duì)本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說明,以充分地了解本發(fā)明的目的、特征和效果。
【附圖說明】
[0049]圖1是現(xiàn)有技術(shù)中固態(tài)硬盤的結(jié)構(gòu)示意圖;
[0050]圖2是現(xiàn)有技術(shù)中文件操作流程圖;
[0051]圖3是混合使用DRAM和MRAM的固態(tài)硬盤的結(jié)構(gòu)示意圖;
[0052]圖4是使用MRAM的固態(tài)硬盤的結(jié)構(gòu)示意圖;
[0053]圖5是本發(fā)明的一個(gè)實(shí)施例的具有二級(jí)緩存結(jié)構(gòu)的存