国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種固態(tài)硬盤及其存取方法

      文檔序號:6368817閱讀:200來源:國知局
      專利名稱:一種固態(tài)硬盤及其存取方法
      技術領域
      本發(fā)明涉及數(shù)據(jù)存儲領域,具體地,涉及ー種存儲器及其存取方法。
      背景技術
      基于NAND閃存(Flash Memory)的固態(tài)硬盤(SSD)業(yè)已成為遍及消費電子領域到高端企業(yè)級系統(tǒng)等多種不同應用的存儲解決方案。其原因在于相比于傳統(tǒng)的硬盤,SSD具有訪問速度快,功耗低,可靠性高,抗震性好,尺寸小,非易失等優(yōu)點。此外,每字節(jié)閃存的價格也在逐漸降低,這意味著硬盤在不久的將來很可能被SSD所取代。為了將閃存芯片封裝成固態(tài)硬盤,需要在SSD中増加一個介于文件系統(tǒng)和閃存芯片之間的軟件或固件實現(xiàn)的閃存轉換層(Flash Translation Layer, FTL)。其原因在于閃存的讀寫以頁(例如,2-4K字節(jié))為單位,而且,寫操作通常比讀操作慢ー個數(shù)量級。同 時,由于閃存不允許覆蓋寫,因此寫操作之前必須先進行擦除操作。擦除操作以塊(例如,64-128個頁)為粒度,因此與寫操作相比更加耗吋。這些固有特性極大地降低了閃存的寫帶寬。另外,閃存的壽命也受限于擦除操作的次數(shù),通常每個閃存塊只能進行I萬 I百萬次擦除。FTL主要用于將來自于文件系統(tǒng)的寫請求重定向到處于擦除狀態(tài)的閃存區(qū)更新塊,從而弱化“寫前擦除”條件的限制。另外,F(xiàn)TL還可以完成邏輯地址到物理地址的映射,垃圾回收等功能。盡管現(xiàn)有的很多FTL算法可以一定程度上減少寫操作導致的擦除操作的次數(shù),提高SSD的性能。但是這些方案大多無法減少寫入SSD的數(shù)據(jù)總量,并且當沒有處于擦除狀態(tài)的空閑塊可以重定向某個覆蓋寫(Overwrite)操作時,就必須進行擦除操作。為了減少每次實際寫入和讀出閃存固態(tài)盤的數(shù)據(jù)量,現(xiàn)有技術中也存在一些帶有數(shù)據(jù)壓縮功能的FTL,例如2010年8月17日提交的、申請?zhí)枮?01010254409. 8的、名稱為“帶有數(shù)據(jù)壓縮功能的閃存轉換層及實現(xiàn)方法”的中國專利申請公開了ー種帶有數(shù)據(jù)壓縮功能的閃存轉換層及實現(xiàn)方法。其中的FTL主要由壓縮器、解壓器、緩沖區(qū)、地址映射管理模塊、垃圾回收模塊和損耗均衡模塊組成。當對閃存進行寫操作時,首先將數(shù)據(jù)寫入緩沖區(qū),當緩沖區(qū)滿后再寫入對應的數(shù)據(jù)頁中,這減少了毎次實際寫入和讀出閃存固態(tài)盤的數(shù)據(jù)量,從而提高閃存固態(tài)盤的整體讀寫性能。但是,該申請中需要對傳統(tǒng)的映射表結構進行擴展,以標識數(shù)據(jù)在閃存中的存儲位置、以及數(shù)據(jù)在緩沖區(qū)的起始位置和長度等,這樣增加了復雜的數(shù)據(jù)結構,相應地增加了數(shù)據(jù)讀寫過程的復雜度,而且其地址映射方案只能采用頁級映射方式。

      發(fā)明內(nèi)容
      因此,本發(fā)明的目的在于克服上述現(xiàn)有技術的缺陷,提供一種固態(tài)硬盤和其存取方法,在保證數(shù)據(jù)讀寫過程開銷低的前提下,提高閃存的寫操作的帶寬,減少對閃存進行擦除操作的次數(shù)。 本發(fā)明的目的是通過以下技術方案實現(xiàn)的
      一方面,本發(fā)明提供了ー種固態(tài)硬盤,該固態(tài)硬盤包括閃存轉換層和閃存,所述閃存的物理頁包括數(shù)據(jù)區(qū)和后備區(qū),所述閃存轉換層包括壓縮器和解壓器,所述壓縮器用于將文件系統(tǒng)發(fā)送來的數(shù)據(jù)壓縮后寫入閃存,并且將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;所述解壓器用于根據(jù)閃存物理頁的后備區(qū)中所保存的與壓縮數(shù)據(jù)相關的信息從閃存中讀出的數(shù)據(jù),并對其進行解壓后返回給文件系統(tǒng),所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下一物理頁的頁號。

      上述固態(tài)硬盤中,所述閃存的物理頁的數(shù)據(jù)區(qū)大小可以為256字節(jié)。上述固態(tài)硬盤中,所述物理頁的后備區(qū)可以保存下列與壓縮數(shù)據(jù)相關的信息· FLAG :占用2個比特位,其中一個比特位代表壓縮或未壓縮,另ー個比特位表示壓縮數(shù)據(jù)使用I頁或需要跨頁;· EPPN :若壓縮數(shù)據(jù)需要跨頁,則該字段EPPN用來指示下一物理頁的頁號;· LEN :記錄該物理頁內(nèi)有效數(shù)據(jù)的長度。上述固態(tài)硬盤中,所述閃存轉換層還包括映射表,所述映射表可以采用混合映射機制。上述固態(tài)硬盤中,所述壓縮器可以將小于ー個物理頁大小的壓縮數(shù)據(jù)寫入ー個物理頁中并將與該壓縮數(shù)據(jù)相關的信息保存在該物理頁的后備區(qū)中。上述固態(tài)硬盤中,所述壓縮器在壓縮數(shù)據(jù)超過ー個物理頁大小時,可以將壓縮數(shù)據(jù)中前面的相當于ー個物理頁大小的部分寫入ー個物理頁中,并設置該物理頁后備區(qū)中的FLAG、EPPN、LEN字段,所述EPPN字段指示下一物理頁的頁號,然后,將該壓縮數(shù)據(jù)的剰余部分寫入到所述EPPN指示的物理頁中并設置該物理頁后備區(qū)中的FLAG、EPPN、LEN字段。上述固態(tài)硬盤中,壓縮數(shù)據(jù)的剩余部分所寫入的物理頁可以是按照頁級映射的方式進行管理的。又ー個方面,本發(fā)明提供ー種對上述固態(tài)硬盤寫入數(shù)據(jù)的方法,該方法包括步驟(I),接收來自上層文件系統(tǒng)的待寫入數(shù)據(jù)并對其進行壓縮以得到壓縮數(shù)據(jù);步驟(2),將壓縮數(shù)據(jù)寫入閃存中,并且將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;上述方法中,所述步驟(2)可以包括以下步驟當壓縮數(shù)據(jù)的長度小于ー個物理頁大小時,直接將該壓縮后數(shù)據(jù)寫入該物理頁,并將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下一物理頁的頁號;當壓縮數(shù)據(jù)的長度大于ー個物理頁大小吋,將該壓縮數(shù)據(jù)前面的相當于物理頁大小的部分寫入ー個物理頁中,確定要保存壓縮數(shù)據(jù)的剩余部分的另ー個物理頁的頁號以及將與壓縮數(shù)據(jù)相關的信息保存在所寫入的物理頁的后備區(qū)中;然后將壓縮數(shù)據(jù)的剩余部分寫入該另ー個物理頁中并將與該部分壓縮數(shù)據(jù)相關的信息保存在該頁的后備區(qū)中。上述方法中,壓縮數(shù)據(jù)的剩余部分所寫入的物理頁可以是按照頁級映射的方式進行管理的。
      又一方面,本發(fā)明提供了ー種從上述固態(tài)硬盤讀取數(shù)據(jù)的方法,該方法包括步驟(a)接收上層文件系統(tǒng)發(fā)出的讀取數(shù)據(jù)請求;步驟(b)根據(jù)映射表確定保存所要讀取的數(shù)據(jù)的物理頁,并獲取物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息;步驟(C)根據(jù)與壓縮數(shù)據(jù)相關的信息,讀取數(shù)據(jù)并將其解壓縮后返回給文件系統(tǒng)。其中,在步驟(C)可以包 括以下步驟如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且僅保存在該物理頁中,則根據(jù)該物理頁內(nèi)有效數(shù)據(jù)長度讀取該頁內(nèi)對應長度的數(shù)據(jù),將讀取的數(shù)據(jù)解壓縮并傳回上層文件系統(tǒng);如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且需要跨頁存儲,則讀取該物理頁的數(shù)據(jù),井根據(jù)該物理頁后備區(qū)中保存的跨頁存儲時下ー物理頁的頁號訪問下ー個物理頁,以及根據(jù)所訪問的下ー個物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息讀取該頁內(nèi)保存的數(shù)據(jù),將該數(shù)據(jù)拼接在所讀取的前一物理頁的數(shù)據(jù)之后得到完整數(shù)據(jù),最后將拼接后的數(shù)據(jù)解壓縮后返回給文件系統(tǒng)。與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于通過閃存轉換層對數(shù)據(jù)進行壓縮以及將壓縮數(shù)據(jù)的相關信息保存在物理頁的后備區(qū)中,可以減少毎次實際寫入和讀出閃存固態(tài)盤的數(shù)據(jù)量,同時減少了由于寫操作所引起的擦除操作的次數(shù),延長了固態(tài)盤的壽命。而且,數(shù)據(jù)的讀寫過程簡單方便,沒有增加復雜的數(shù)據(jù)結構,也沒有増加緩沖區(qū),無需對傳統(tǒng)閃存轉換層中的映射表進行任何修改,保證數(shù)據(jù)讀寫過程開銷低。


      圖I是根據(jù)本發(fā)明實施例的固態(tài)硬盤的結構示意圖;圖2是根據(jù)本發(fā)明實施例的物理頁的后備區(qū)與現(xiàn)有的物理頁后備區(qū)的對比示意圖;圖3是根據(jù)本發(fā)明優(yōu)選實施例的混合映射機制下的數(shù)據(jù)存儲示意圖;圖4是根據(jù)本發(fā)明實施例的固態(tài)硬盤的寫數(shù)據(jù)流程示意圖。
      具體實施例方式為了使本發(fā)明的目的,技術方案及優(yōu)點更加清楚明白,以下結合附圖通過具體實施例對本發(fā)明進ー步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。圖I示出了根據(jù)本發(fā)明實施例的固態(tài)硬盤的結構示意圖。如圖I所示,該固態(tài)硬盤包括閃存轉換層和閃存(例如,NAND閃存)。所述閃存轉換層FTL主要包括壓縮器、解壓器、映射表等。其中,如圖I中斜線陰影部分所示,壓縮器用于將文件系統(tǒng)發(fā)送來的數(shù)據(jù)壓縮后寫入閃存并將與該壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;解壓器用于根據(jù)閃存物理頁后備區(qū)中所保存的壓縮數(shù)據(jù)相關的信息從閃存中讀出的數(shù)據(jù)并對其進行解壓后返回給文件系統(tǒng)。閃存的物理頁通常包括數(shù)據(jù)區(qū)和后備區(qū)(Spare),在后備區(qū)中包括空閑的字節(jié),這些空閑字節(jié)中的一部分可以用于存儲與壓縮數(shù)據(jù)相關的信息,所述與壓縮數(shù)據(jù)相關的信息包括所寫入的數(shù)據(jù)是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、該物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下ー物理頁的頁號等。本領域普通技術人員應理解,為簡明起見,在圖I中并沒有示出例如涉及閃存轉換層中負責回收無效閃存的垃圾回收器的模塊、負責均衡對各閃存塊擦除次數(shù)的損耗均衡器等其他模塊。繼續(xù)參考圖1,在本發(fā)明的實施例中,該固態(tài)硬盤在FTL中采用了對上層文件系統(tǒng)透明的壓縮技術,上層文件系統(tǒng)發(fā)來的待寫入數(shù)據(jù)需要經(jīng)壓縮后再寫入相應的閃存頁(即物理頁)中,而上層文件系統(tǒng)要讀取的數(shù)據(jù)則需要經(jīng)解壓縮后才返回文件系統(tǒng)。這樣,如果所選擇的壓縮算法有較大的壓縮比(例如,50% ),那么固態(tài)硬盤的效率將獲得大幅度提聞。在本發(fā)明的優(yōu)選實施例中,所選用的壓縮算法應該具有較高的效率(例如,具有低解壓延遲和高壓縮帶寬),并盡量將文件系統(tǒng)需寫入的數(shù)據(jù)壓縮至ー個閃存頁內(nèi)。此外,對于可壓縮性差的數(shù)據(jù)也可以進行跨頁存儲。對于讀取頻繁的數(shù)據(jù),為了避免解壓縮所帯來的額外延遲,可以不進行壓縮。當然,也可以將全部數(shù)據(jù)不加區(qū)分地進行壓縮。例如,由于上層文件系統(tǒng)讀寫數(shù)據(jù)的基本単元(sector)為512字節(jié)。因此在ー個優(yōu)先實施例中,在固態(tài)硬盤中可以選擇使用其物理頁的數(shù)據(jù)區(qū)大小為256字節(jié)的閃存。這樣,閃存頁的大小至少為文件系統(tǒng)讀寫基本単元的一半,故每次壓縮數(shù)據(jù)最多僅占據(jù)2個閃存頁。例如,在該實施例中,可以使用X-Match算法完成對寫入數(shù)據(jù)的壓縮和讀出數(shù)據(jù)的解壓縮。本領域普通技術人員應理解,除了采用X-Match算法來完成壓縮和解壓縮,也可以采用其他壓縮算法,例如LZULZ77等。壓縮器在將壓縮數(shù)據(jù)寫入物理頁中的同時,在該物理頁的后備區(qū)中保存關于該壓縮數(shù)據(jù)的相關信息,例如,是否是壓縮的數(shù)據(jù)、物理頁內(nèi)有效數(shù)據(jù)的長度、是否需要跨頁存儲以及跨頁存儲時下ー物理頁的頁號等。解壓器參考在物理頁的后備區(qū)中保存關于該壓縮數(shù)據(jù)的相關信息,從閃存中讀取完整的壓縮數(shù)據(jù)。圖2詳細示出了根據(jù)本發(fā)明一個實施例的物理頁的后備區(qū)與現(xiàn)有的物理頁后備區(qū)的對比示意圖。如圖2所示,在根據(jù)本發(fā)明的實施例的后備區(qū)中増加了以下數(shù)據(jù)項的存儲籲FLAGU^S):壓縮數(shù)據(jù)狀態(tài)的標識。在該實施例中,其占用2個比特位,其中一個比特位代表壓縮/未壓縮(O表示未壓縮,I表示壓縮),另ー個比特為表示壓縮數(shù)據(jù)使用頁數(shù)(O表示使用I頁,I表示需要跨頁)。應指出,在本實施例中是以物理頁的大小至少為文件系統(tǒng)讀寫基本単元的一半為例進行說明的,因此,毎次壓縮數(shù)據(jù)最多僅占據(jù)2個閃存頁?!?EPPN :若數(shù)據(jù)需要跨頁存儲,EPPN用來指示下一物理頁的頁號?!?LEN:表明該頁內(nèi)有效數(shù)據(jù)的長度。由于壓縮后數(shù)據(jù)的長度不確定,所以通過LEN來記錄頁內(nèi)有效數(shù)據(jù)的長度。繼續(xù)參考圖1,映射表也是閃存轉換層的ー個重要組成部分,主要用于完成將來自于文件系統(tǒng)的邏輯地址轉換為閃存的物理地址。但是,在本發(fā)明的實施例中,由于在物理頁的后備區(qū)中已經(jīng)存儲了關于壓縮數(shù)據(jù)的相關信息,因此無須對現(xiàn)有的映射表結構進行任何更改,可以利用現(xiàn)有的地址映射方案,例如頁級映射、塊級映射、混合映射等。其中,頁級映射可以將邏輯頁號映射為任意的物理頁號,雖然可以實現(xiàn)對閃存設備的緊湊有效使用,但是會導致映射表規(guī)模過大。在塊級映射中,邏輯塊號被映射為相應的物理塊號,而邏輯頁號在塊內(nèi)的偏移量則是固定的。盡管這可以降低映射表的容量,但是由于給定的邏輯頁只能映射到相應閃存塊的某個特定物理頁中,因此找到這ー頁的概率降低,導致垃圾回收的開銷增加。而混合映射是將閃存塊劃分為數(shù)據(jù)塊和更新塊,其中占大多數(shù)的數(shù)據(jù)塊使用塊級映射,而更新塊則使用頁級映射,在數(shù)據(jù)塊中的物理頁都是按塊級映射方式進行管理,而在更新塊中的物理頁都是按照頁級映射進行管理。所有對數(shù)據(jù)塊的覆蓋寫都重定位到更新塊中,當沒有空閑更新塊可用時,垃圾回收器負責將更新塊與數(shù)據(jù)塊合并,因此可以在提高閃存空間利用率的同時保持映射表的容量適中。在混合映射機制中,映射表包括塊地址映射表(BMT),其以邏輯塊地址為下標,索引得到其對應的物理塊地址;以及頁地址映射表(PMT),其以邏輯頁地址為下標,索引得到其對應的物理頁地址。圖3示出了根據(jù)本發(fā)明一個優(yōu)選實施例的在混合映射機制下的數(shù)據(jù)存儲示意圖。當上層文件系統(tǒng)每發(fā)出ー個寫操作時,壓縮器將待寫入的數(shù)據(jù)進行壓縮后并將其存入相應的物理頁中。如果壓縮后的數(shù)據(jù)小于物理頁大小,壓縮器直接將其寫入ー個物理頁中,并將關于該壓縮數(shù)據(jù)的相關信息保存到該物理頁的后備區(qū)中(例如將FLAG置為10并設置LEN等等)。但是如果壓縮后的數(shù)據(jù)超過ー個物理頁大小時,壓縮器將壓縮數(shù)據(jù)中前面的相當于ー個物理頁大小的部分寫入ー個物理頁中,例如,將壓縮數(shù)據(jù)的前256字節(jié)寫入ー個物理 頁。同時,確定要用于保存壓縮數(shù)據(jù)的剩余部分的空閑(即處于擦除狀態(tài))的下ー個物理頁的頁號,并在當前所寫入的物理頁的后備區(qū)中通過設置FLAG、EPPN、LEN字段來保存與該壓縮數(shù)據(jù)相關的信息,例如,將FLAG置為11,EPPN字段保存所確定的下ー個物理頁的頁號等。然后,將該壓縮數(shù)據(jù)的剰余部分寫入到所述EPPN字段所指示的物理頁中并設置該物理頁后備區(qū)中的FLAG、EPPN、LEN字段(例如將FLAG置為10并設置LEN等等)。如圖3所示,上層文件系統(tǒng)有A、B、C、D四個要寫入數(shù)據(jù),其邏輯地址分別為5、10、12和19。經(jīng)壓縮后數(shù)據(jù)大小分別變?yōu)?51字節(jié)、510字節(jié)、320字節(jié)和128字節(jié),先后被存儲到A1、B11、B12、C11、C12、D1物理頁中。其中,對于數(shù)據(jù)A和D,其經(jīng)壓縮后小于256字節(jié),所以僅需ー個物理頁來存儲。由于B和C經(jīng)壓縮后仍然大于256字節(jié),故需要占用兩個物理頁,例如,第一頁位于按照塊映射的數(shù)據(jù)區(qū),第二頁則位于按照頁映射的EData區(qū)。其中,數(shù)據(jù)區(qū)為如上所述的混合映射機制下數(shù)據(jù)塊,而Edata區(qū)可以為如上所述的混合映射機制下的更新塊,或者也可以是在閃存中劃分出的按照頁映射管理的存儲區(qū)域,用于存儲壓縮數(shù)據(jù)的剩余部分。在本發(fā)明的又一個實施例中,提供了對上述固態(tài)硬盤寫入數(shù)據(jù)的方法,主要包括以下步驟接收來自上層文件系統(tǒng)的待寫入數(shù)據(jù)并對其進行壓縮以得到壓縮數(shù)據(jù)。當壓縮數(shù)據(jù)的長度小于ー個物理頁大小時,直接將該壓縮后數(shù)據(jù)寫入該物理頁,并將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下一物理頁的頁號。當壓縮數(shù)據(jù)的長度大于ー個物理頁大小吋,將該壓縮數(shù)據(jù)前面的相當于物理頁大小的部分寫入ー個物理頁中,確定要保存壓縮數(shù)據(jù)的剩余部分的另ー個物理頁的頁號以及將與壓縮數(shù)據(jù)相關的信息保存在所寫入的物理頁的后備區(qū)中;然后將壓縮數(shù)據(jù)的剩余部分寫入該另ー個物理頁中并將與該部分壓縮數(shù)據(jù)相關的信息保存在該頁的后備區(qū)中。其中壓縮數(shù)據(jù)的剰余部分所寫入的物理頁是按照頁級映射的方式進行管理的。在本發(fā)明的又一個實施例中,提供了從上述的固態(tài)硬盤讀取數(shù)據(jù)的方法,主要包括以下步驟接收上層文件系統(tǒng)發(fā)出的讀取數(shù)據(jù)請求。根據(jù)映射表確定保存所要讀取的數(shù)據(jù)的物理頁,并讀取該物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息,所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下ー物理頁的頁號。如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且僅保存在該物理頁中,則根據(jù)物理頁內(nèi)有效數(shù)據(jù)長度讀取該頁內(nèi)對應長度的數(shù)據(jù),將讀取的數(shù)據(jù)解壓縮并傳回上層文件系統(tǒng)。如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且需要跨頁存儲,則讀取該物理頁的數(shù)據(jù),并根據(jù)跨頁存儲時下一物理頁的頁號訪問下ー個物理頁,以及根據(jù)所訪問的下ー個物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息讀取該頁內(nèi)保存的數(shù)據(jù),將該數(shù)據(jù)拼接在所讀取的前一物理頁的數(shù)據(jù)之后得到完整數(shù)據(jù),最后將拼接后的數(shù)據(jù)解壓縮后返回給文件系統(tǒng)。
      更具體地,下面詳細描述根據(jù)本發(fā)明優(yōu)選實施例的固態(tài)硬盤的數(shù)據(jù)存取過程。其中讀數(shù)據(jù)過程包括以下步驟(a)接收上層文件系統(tǒng)發(fā)出的包括要讀取數(shù)據(jù)的邏輯地址LA的指令,井分別計算邏輯塊號Ibn和塊內(nèi)偏移量bo ;(b)以Ibn為下標讀取地址轉換表BMT,以BMT[lbn]的值為物理塊號,以bo為塊內(nèi)偏移得到數(shù)據(jù)首頁的物理頁號。讀取該物理頁的后備區(qū)的FLAG標志;(C)若FLAG標志為10,則說明數(shù)據(jù)壓縮后存儲在唯一頁中,根據(jù)后備區(qū)的LEN字段的值讀取該頁內(nèi)對應長度的數(shù)據(jù),將讀取的數(shù)據(jù)解壓縮并傳回上層文件系統(tǒng);(d)若FLAG標志為11,則說明數(shù)據(jù)存儲在兩頁中,讀取第一頁的數(shù)據(jù),井根據(jù)后備區(qū)的EPPN字段訪問第二頁數(shù)據(jù);(e)根據(jù)第二頁后備區(qū)的LEN字段的值讀取該頁內(nèi)對應長度的數(shù)據(jù),將該數(shù)據(jù)拼接在第一頁的數(shù)據(jù)之后得到完整數(shù)據(jù),最后將拼接后的數(shù)據(jù)解壓縮后返回給上層文件系統(tǒng)。(f)若FLAG標志為01則說明數(shù)據(jù)未經(jīng)壓縮且存儲于兩個閃存頁中,這類似于傳統(tǒng)的未引入壓縮機制的閃存轉換層,直接按原有流程進行數(shù)據(jù)的讀寫操作即可;而FLAG標志為00則是非法的,原因在于在本實施例中未壓縮數(shù)據(jù)必然占據(jù)兩個閃存頁(文件系統(tǒng)的讀寫單位為512字節(jié),而閃存的物理頁的數(shù)據(jù)區(qū)約為256字節(jié))。圖4示出了根據(jù)本發(fā)明優(yōu)選實施例的固態(tài)硬盤的寫數(shù)據(jù)流程示意圖,下面參考圖4,詳細描述寫數(shù)據(jù)過程,該寫過程包括如下步驟(I)接收上層文件系統(tǒng)發(fā)出的包括待寫入數(shù)據(jù)及其邏輯地址LA的指令,井分別計算邏輯塊號Ibn和塊內(nèi)偏移量bo ;(2)將要寫入的數(shù)據(jù)進行壓縮,得到壓縮后數(shù)據(jù)長度CLEN ;(3)以Ibn為下標讀取塊地址映射表BMT,以BMT [lbn]的值為物理塊號pbn,以bo為塊內(nèi)偏移得到要寫入數(shù)據(jù)的物理頁號,并確定該邏輯地址是第一次寫入還是寫更新;(4)若是第一次被寫入,當CLEN < = 256字節(jié)時,直接將壓縮數(shù)據(jù)寫入物理塊pbn中bo所確定的頁中,同時更新后備區(qū)的LEN及FLGA標記;(5)當CLEN > 256字節(jié)時,先將壓縮數(shù)據(jù)的首256字節(jié)寫入pbn和bo所確定的頁中并設置該頁的后備區(qū)的各個相關字段(LEN、FLGA以及EPPN字段),例如可以通過映射表PMT [LA]選擇及確定EData區(qū)中某個空閑的(即處于擦除狀態(tài)的)物理頁的物理頁號,將剩余部分寫入EData區(qū)的該物理頁中,同時更新該頁后備區(qū)的FLAG,LEN字段。這里Edata區(qū)的管理采用頁級映射,由PMT完成邏輯頁號到物理頁號的轉換。(6)若是寫更新操作,則可采用與上述相類似的操作將新的壓縮數(shù)據(jù)寫入到處于擦除狀態(tài)的更新塊中,超出部分仍然寫入Edata區(qū)中。本領域普通技術人員可以理解,除了上面優(yōu)選實施例所采用的混合映射機制,在其他實施例中也可以采用例如頁級映射和塊級映射等其他映射機制。本領域技術人員也應理解,在上述實施例的固態(tài)硬盤中選擇使用閃存頁的數(shù)據(jù)區(qū)大小為256字節(jié)的閃存僅是較佳的一種選擇,在其他實施例中,也可以選擇閃存頁的數(shù)據(jù)區(qū)大小為128、64、32等字節(jié)的閃存。這樣每次壓縮數(shù)據(jù)分別例如最多占據(jù)4、8、16個閃存頁等,但都適用于本發(fā)明的上述方法,同樣不需要増加任何復雜的數(shù)據(jù)結構或緩存區(qū),也不需要對映射表進行任何改變。與現(xiàn)有技術相比,本發(fā)明實施例中通過閃存轉換層對數(shù)據(jù)進行壓縮以及將壓縮數(shù)據(jù)的相關信息保存在物理頁的后備區(qū)中,可以減少毎次實際寫入和讀出閃存固態(tài)盤的數(shù)據(jù)量,同時減少了由于寫操作所引起的擦除操作的次數(shù),延長了固態(tài)盤的壽命。而且,數(shù)據(jù)的讀寫過程簡單方便,沒有増加復雜的數(shù)據(jù)結構,也沒有増加緩沖區(qū),無需對傳統(tǒng)閃存轉換層中的映射表進行任何修改,保證數(shù)據(jù)讀寫過程開銷低。
      雖然本發(fā)明已經(jīng)通過優(yōu)選實施例進行了描述,然而本發(fā)明并非局限于這里所描述的實施例,在不脫離本發(fā)明范圍的情況下還包括所作出的各種改變以及變化。
      權利要求
      1.一種固態(tài)硬盤,所述固態(tài)硬盤包括閃存轉換層和閃存,所述閃存的物理頁包括數(shù)據(jù)區(qū)和后備區(qū),所述閃存轉換層包括壓縮器和解壓器,所述壓縮器用于將文件系統(tǒng)發(fā)送來的數(shù)據(jù)壓縮后寫入閃存,并且將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;所述解壓器用于根據(jù)閃存物理頁的后備區(qū)中所保存的與壓縮數(shù)據(jù)相關的信息從閃存中讀出的數(shù)據(jù),并對其進行解壓后返回給文件系統(tǒng),所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下一物理頁的頁號。
      2.根據(jù)權利要求I所述的固態(tài)硬盤,其中,所述閃存的物理頁的數(shù)據(jù)區(qū)大小為256字節(jié)。
      3.根據(jù)權利要求2所述的固態(tài)硬盤,其中,所述物理頁的后備區(qū)中保存下列與壓縮數(shù)據(jù)相關的信息 FLAG :占用2個比特位,其中一個比特位代表壓縮或未壓縮,另一個比特位表示壓縮數(shù)據(jù)使用I頁或需要跨頁; EPPN :若壓縮數(shù)據(jù)需要跨頁,則該字段EPPN用來指示下一物理頁的頁號; LEN :記錄該物理頁內(nèi)有效數(shù)據(jù)的長度。
      4.根據(jù)權利要求3所述的固態(tài)硬盤,其中所述閃存轉換層還包括映射表,所述映射表采用混合映射機制。
      5.根據(jù)權利要求3或4所述的固態(tài)硬盤,其中所述壓縮器將小于一個物理頁大小的壓縮數(shù)據(jù)寫入一個物理頁中并將與該壓縮數(shù)據(jù)相關的信息保存在該物理頁的后備區(qū)中。
      6.根據(jù)權利要求5所述的固態(tài)硬盤,其中所述壓縮器在壓縮數(shù)據(jù)超過一個物理頁大小時,將壓縮數(shù)據(jù)中前面的相當于一個物理頁大小的部分寫入一個物理頁中,并設置該物理頁后備區(qū)中的FLAG、EPPN、LEN字段,所述EPPN字段指示下一物理頁的頁號,然后,將該壓縮數(shù)據(jù)的剩余部分寫入到所述EPPN指示的物理頁中并設置該物理頁后備區(qū)中的FLAG、EPPN、LEN字段。
      7.根據(jù)權利要求6所述的固態(tài)硬盤,其中壓縮數(shù)據(jù)的剩余部分所寫入的物理頁是按照頁級映射的方式進行管理的。
      8.—種對上述任一權利要求所述的固態(tài)硬盤寫入數(shù)據(jù)的方法,所述方法包括 步驟(I),接收來自上層文件系統(tǒng)的待寫入數(shù)據(jù)并對其進行壓縮以得到壓縮數(shù)據(jù); 步驟(2),將壓縮數(shù)據(jù)寫入閃存中,并且將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中。
      9.根據(jù)權利要求8的方法,所述步驟(2)包括以下步驟 當壓縮數(shù)據(jù)的長度小于一個物理頁大小時,直接將該壓縮后數(shù)據(jù)寫入該物理頁,并將與壓縮數(shù)據(jù)相關的信息保存在所寫入的閃存物理頁的后備區(qū)中;所述與壓縮數(shù)據(jù)相關的信息包括是否是壓縮的數(shù)據(jù)、是否需要跨頁存儲、物理頁內(nèi)有效數(shù)據(jù)的長度以及跨頁存儲時下一物理頁的頁號; 當壓縮數(shù)據(jù)的長度大于一個物理頁大小時,將該壓縮數(shù)據(jù)前面的相當于物理頁大小的部分寫入一個物理頁中,確定要保存壓縮數(shù)據(jù)的剩余部分的另一個物理頁的頁號以及將與壓縮數(shù)據(jù)相關的信息保存在所寫入的物理頁的后備區(qū)中;然后將壓縮數(shù)據(jù)的剩余部分寫入該另一個物理頁中并將與該部分壓縮數(shù)據(jù)相關的信息保存在該頁的后備區(qū)中。
      10.根據(jù)權利要求8或9所述的方法,其中壓縮數(shù)據(jù)的剩余部分所寫入的物理頁是按照頁級映射的方式進行管理的。
      11.一種從權利要求1-7之一所述的固態(tài)硬盤讀取數(shù)據(jù)的方法,所述方法包括 步驟(a)接收上層文件系統(tǒng)發(fā)出的讀取數(shù)據(jù)請求; 步驟(b)根據(jù)映射表確定保存所要讀取的數(shù)據(jù)的物理頁,并獲取物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息; 步驟(c)根據(jù)與壓縮數(shù)據(jù)相關的信息,讀取數(shù)據(jù)并將其解壓縮后返回給文件系統(tǒng)。
      12.根據(jù)權利要求11所述的方法,在步驟(c)包括以下步驟 如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且僅保存在該物理頁中,則根據(jù)該物理頁內(nèi)有效數(shù)據(jù)長度讀取該頁內(nèi)對應長度的數(shù)據(jù),將讀取的數(shù)據(jù)解壓縮并傳回上層文件系統(tǒng); 如果所要讀取的數(shù)據(jù)是壓縮的數(shù)據(jù)并且需要跨頁存儲,則讀取該物理頁的數(shù)據(jù),并根據(jù)該物理頁后備區(qū)中保存的跨頁存儲時下一物理頁的頁號訪問下一個物理頁,以及根據(jù)所訪問的下一個物理頁的后備區(qū)中與壓縮數(shù)據(jù)相關的信息讀取該頁內(nèi)保存的數(shù)據(jù),將該數(shù)據(jù)拼接在所讀取的前一物理頁的數(shù)據(jù)之后得到完整數(shù)據(jù),最后將拼接后的數(shù)據(jù)解壓縮后返回給文件系統(tǒng)。
      全文摘要
      本發(fā)明提供一種固態(tài)硬盤,其通過閃存轉換層對數(shù)據(jù)進行壓縮以及將壓縮數(shù)據(jù)的相關信息保存在閃存物理頁的后備區(qū)中,可以減少每次實際寫入和讀出閃存固態(tài)盤的數(shù)據(jù)量,同時減少了由于寫操作所引起的擦除操作的次數(shù),延長了固態(tài)盤的壽命。而且,數(shù)據(jù)的讀寫過程簡單方便,沒有增加復雜的數(shù)據(jù)結構,也沒有增加緩沖區(qū),無需對傳統(tǒng)閃存轉換層中的映射表進行任何修改,保證數(shù)據(jù)讀寫過程開銷低。
      文檔編號G06F12/02GK102662856SQ20121012919
      公開日2012年9月12日 申請日期2012年4月27日 優(yōu)先權日2012年4月27日
      發(fā)明者張立新, 李龍, 隋秀峰 申請人:中國科學院計算技術研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1