国产精品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)硬盤的數(shù)據(jù)寫入方法及系統(tǒng)的制作方法

      文檔序號:6371940閱讀:274來源:國知局
      專利名稱:固態(tài)硬盤的數(shù)據(jù)寫入方法及系統(tǒng)的制作方法
      技術領域
      本發(fā)明涉及計算機技術領域,尤其涉及一種固態(tài)硬盤的數(shù)據(jù)寫入方法及系統(tǒng)。
      背景技術
      MLC(Multi-Level Cell,多層單兀)Nand Flash 相對 SLC(Single-Level Cell,單層單元)Nand flash有更高的存儲密度,在固態(tài)硬盤領域有著越來越廣泛的應用。MLCNand Flash 一個存儲單元(memory cell)可以存儲2bits的信息,這2bits分屬于兩個不同的page,這樣的一組page叫couple pages,存低位比特的叫l(wèi)ow page,存高位比特的叫up page,它執(zhí)行寫有以下兩個約束1) Low page必須在up page之前被寫入;2) Up page在寫入過程中被打斷,比如異常掉電,up page的信息會丟失,而且它對應的low page的信息也可能會丟失,而low page不會影響其up page。現(xiàn)有技術通過額外提供備用電源或超級電容,當主電源斷電時,由備用電源供電保證當前正在寫的數(shù)據(jù)成功寫入到Nand Flash中。但這種解決方式需要提供外部的硬件支持,增加了成本和硬件復雜性,仍然無法解決備用電源同樣會失效造成相同的問題;另外,現(xiàn)有技術沒有考慮到MLC Nand Flash獨有的特點,即當前寫命令執(zhí)行過程中異常掉電還可能會破壞此前已經(jīng)寫入到Nand Flash中的數(shù)據(jù)。在固態(tài)硬盤領域,可以允許異常掉電造成當前部分數(shù)據(jù)的丟失,但是不允許異常掉電破壞此前已經(jīng)寫入Nand Flash的數(shù)據(jù)。這種異常掉電造成的影響是MLC Nand Flash獨有的特點。綜上可知,現(xiàn)有的固態(tài)硬盤的數(shù)據(jù)寫入技術,在實際使用上顯然存在不便與缺陷,所以有必要加以改進。

      發(fā)明內容
      針對上述的缺陷,本發(fā)明的目的在于提供一種固態(tài)硬盤的數(shù)據(jù)寫入方法及系統(tǒng),可以確保固態(tài)硬盤當前執(zhí)行的寫命令不會破壞之前已寫入Nand Flash的數(shù)據(jù)。為了實現(xiàn)上述目的,本發(fā)明提供一種固態(tài)硬盤的數(shù)據(jù)寫入方法,所述方法包括將邏輯塊內包含的邏輯頁劃分為若干第一寫入點和第二寫入點,當所述固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點作為所述寫命令的起始寫入點。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述邏輯塊的一個存儲單元包括兩個所述邏輯頁,所述兩個邏輯頁分別被劃分為對應的所述第一寫入點和第二寫入點。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,若所述寫命令的結束寫入點之后排列有第二寫入點,則所述固態(tài)硬盤再次接收寫命令時,將所述第二寫入點之后的首個第一寫入點作為所述寫命令的起始寫入點。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述存儲單元存儲2bit數(shù)據(jù),所述數(shù)據(jù)包括低位數(shù)據(jù)和高位數(shù)據(jù)。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述第一寫入點對應的邏輯頁用于存儲所述低位數(shù)據(jù),所述第二寫入點對應的邏輯頁用于存儲所述高位數(shù)據(jù)。
      根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述固態(tài)硬盤接收到寫命令時,先將所述低位數(shù)據(jù)寫入,再將所述高位數(shù)據(jù)寫入。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述方法還包括將所述邏輯塊中的有效頁搬移到其它邏輯塊中。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法,所述方法還包括固態(tài)硬盤上電時,檢查所述數(shù)據(jù)搬移是否完成;若所述數(shù)據(jù)搬移未完成,則繼續(xù)搬移對應的 邏輯頁,并判斷該邏輯頁是否為所述第二寫入點,若是,則對該邏輯頁對應的第一寫入點進行讀操作,如果所述讀操作失敗,則對該第一寫入點重新做數(shù)據(jù)搬移。本發(fā)明還相應的提供一種固態(tài)硬盤的數(shù)據(jù)寫入系統(tǒng),所述系統(tǒng)包括寫入點劃分模塊,用于將邏輯塊內包含的邏輯頁劃分為若干第一寫入點和第二寫入點;選擇模塊,用于當所述固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點為所述寫命令的起始寫入點。根據(jù)本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入系統(tǒng),所述系統(tǒng)還包括搬移模塊,用于將所述邏輯塊中的有效頁搬移到其它邏輯塊中。本發(fā)明通過將固態(tài)硬盤內邏輯塊包含的邏輯頁劃分為若干第一寫入點和第二寫入點,且優(yōu)選的,第一寫入點為寫入安全點,當固態(tài)硬盤接收寫命令時,選擇其中的一個第一寫入點為所述寫命令的起始寫入點。借此,若固態(tài)硬盤在執(zhí)行寫命令時,發(fā)生異常掉電,不會破壞已經(jīng)寫入到NAND Flash中的數(shù)據(jù)。更好的,本發(fā)明還可以在一個邏輯塊寫入完成后進行數(shù)據(jù)搬移,保證有足夠的寫入空間。


      圖I是本發(fā)明一實施例的固態(tài)硬盤的結構示意圖;圖2是本發(fā)明一實施例的邏輯塊的頁分頁結構示意圖;圖3是本發(fā)明一實施例的數(shù)據(jù)搬移結構示意圖;圖4是本發(fā)明一實施例的上電處理方法流程圖;圖5是本發(fā)明的固態(tài)硬盤的數(shù)據(jù)寫入方法流程圖。
      具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參見圖1,本發(fā)明提供了一種固態(tài)硬盤的數(shù)據(jù)寫入系統(tǒng),該系統(tǒng)100包括寫入點劃分模塊10、選擇模塊20及搬移模塊30。其中寫入點劃分模塊10用于將邏輯塊(block)內包含的邏輯頁(page)劃分為若干第一寫入點和第二寫入點。本發(fā)明的實施例中,固態(tài)硬盤采用的儲存結構為MLCNand Flash,其包括若干邏輯塊,每個邏輯塊包含有若干邏輯頁。當固態(tài)硬盤接收并執(zhí)行寫命令時,是以其中的一邏輯頁為起始寫入點或結束寫入點。
      進一步的,如背景技術中所述,邏輯塊的一個存儲單元包括兩個邏輯頁,有這兩個邏輯頁分別被劃分為對應的所述第一寫入點和第二寫入點,且一個存儲單元可以存儲2bit數(shù)據(jù),該數(shù)據(jù)包括低位數(shù)據(jù)和高位數(shù)據(jù)。在具體的執(zhí)行寫入命令時,按照寫入規(guī)則,低位數(shù)據(jù)被寫入第一寫入點對應的邏輯頁(low page),高位數(shù)據(jù)被寫入第二寫入點對應的邏輯頁(up page),并且這一對數(shù)據(jù)在寫入時,首先將低位數(shù)據(jù)寫入,然后再寫入高位數(shù)據(jù)。選擇模塊20用于當固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點為寫命令的起始寫入點。本發(fā)明背景技術中已經(jīng)描述,Up page在寫入過程中被打斷,比如異常掉電,則該up page的信息會丟失,而且它對應的low page的信息也可能會丟失,而lowpage信息的丟失則不會影響其up page。因此,當固態(tài)硬盤執(zhí)行主機(host)寫命令時,若該寫命令的最后寫入點落在某個page上時,選擇模塊20會選擇跳過隨后的若干個第二寫入點,跳到一個合適的第一寫入點上,作為下次寫命令的起始 寫入點,當然,若該寫命令的最后寫入點之后的page為low page,則無需跳過,直接作為下次寫命令的起始寫入點。本發(fā)明的一實施例中,固態(tài)硬盤一邏輯塊的page分布如圖2所示,需要說明的,其它邏輯塊的實際分布情況因Nand Flash產(chǎn)品而異,并不限于此分布。Flash寫入按page序號從小到大。圖2中page 0,1,4,5,8,9……劃分為第一寫入點,因為寫這些page過程中出現(xiàn)異常掉電不會破壞在它之前的page,這些page都是low page ;與其相對的,page 2,3,6,7,10,11……定義為第二寫入點,因為這些page寫過程中異常掉電可能會破壞與它對應的low page,這些 page 都是 up page。具體應用中,假定當前寫命令最后寫入點落在page 6上,選擇模塊20會選擇跳過page 7、10和11,下一個寫命令將會從page 12開始寫起,因為page 7、10和11屬于第二寫入點,且其low page已被當前寫命令寫入數(shù)據(jù)。同樣的,對于該邏輯塊內每個page作為最后寫入點時,寫分配需要跳過的page情況如下表I所示,表中只列舉了前12個page的情況,后續(xù)的page與此類似。
      ^最后寫入點需要跳過的 ^最后寫入點需要跳過的
      Up PageUp Pagc
      _PO__P2/P3/P6__P6__P7/P10/P11
      Pl__P2/P3/ P6/P7__Pl__P10/P11_
      P2__P3/P6/P7__P8__P10/P11/P14
      P3__P6/P7__P9__P1Q/P11/P14/P15
      P4__P6/P7./P10__PlO__P11/P14/P15
      P5__P6/P7/P10/P11 Pl I__PI4/P15_表I本發(fā)明的系統(tǒng)100保證當前寫命令執(zhí)行過程中的異常掉電不會破壞在此之前所有寫入的數(shù)據(jù)。這種寫分配不會造成額外的寫放大,但是每個邏輯塊內真實可用的page數(shù)量會低于實際page數(shù)量。本發(fā)明可以結合兩種辦法解決該問題1)增加OP(overprovision),即額外提供Nand Flash空間。2)內部數(shù)據(jù)搬遷,通過將多個沒寫滿的block數(shù)據(jù)搬移到另外一個block內。具體的,本發(fā)明可通過搬移模塊30將邏輯塊中的有效頁搬移到其它邏輯塊中。實際應用中,主機讀寫固態(tài)硬盤的同時,搬移模塊30對這些block進行搬遷,將多個沒寫滿的block搬遷到一個block內,及時確保有足夠的Nand Flash空間供主機寫入。而“內部數(shù)據(jù)搬遷”的寫分配按page序號從小到大依次寫入,不會跳過任何page,如圖3所示,將多個“源block”中的page搬移到“目的block”。需要說明的是,該過程也可能會發(fā)生異常斷電,本發(fā)明可采用如圖4所示方法解決,上電時會檢查上次是否發(fā)生異常掉電,若是,則進一步檢查上次“內部數(shù)據(jù)搬遷”是否完成,若沒有,則繼續(xù)搬移該page,并判斷是否為第二寫入點,如果是的話,還要對該page對應的low page進行讀操作,如果失敗,則對該low page也重新做搬遷。更好的,為保證重新做搬遷時源 數(shù)據(jù)仍然存在,本發(fā)明做以下限制只有當“源block”內數(shù)據(jù)已搬遷完畢,并且“目的block”落在安全點上,“源block”才能被擦除,借此保證數(shù)據(jù)的安全性和完整性。參見圖5,本發(fā)明提供了一種固態(tài)硬盤的數(shù)據(jù)寫入方法,其可以通過如圖I所示的系統(tǒng)100實現(xiàn),該方法包括步驟S501,寫入點劃分模塊10將邏輯塊內包含的邏輯頁劃分為若干第一寫入點
      和第二寫入點。固態(tài)硬盤的Nand Flash包括若干block,每個block分布有若干page,這些page由寫入點劃分模塊10劃分為若干第一寫入點和第二寫入點。具體的,Block的一個存儲單元包括兩個page,且這兩個page分別被劃分為對應的第一寫入點(對應page為low page)和第二寫入點(對應page為up page)。每個儲存單元存儲2bit數(shù)據(jù),且該數(shù)據(jù)包括低位數(shù)據(jù)和高位數(shù)據(jù),第一寫入點對應的page用于存儲所述低位數(shù)據(jù),第二寫入點對應的page用于存儲所述高位數(shù)據(jù),當固態(tài)硬盤接收到寫命令時,先將所述低位數(shù)據(jù)寫入,再將所述高位數(shù)據(jù)寫入。步驟S502,固態(tài)硬盤接收寫命令時,選擇模塊20選擇其中的一個第一寫入點作為所述寫命令的起始寫入點。當固態(tài)硬盤執(zhí)行寫命令時,若該寫命令的最后寫入點落在某個page上,選擇模塊20會選擇跳過隨后的若干個第二寫入點,跳到一個合適的第一寫入點上,作為下次寫命令的起始寫入點。優(yōu)選的,若該寫命令的最后寫入點之后的page為low page,則無需跳過,直接作為下次寫命令的起始寫入點。若所述寫命令的結束寫入點之后排列up page,固態(tài)硬盤再次接收寫命令時,選擇模塊20將所述第二寫入點之后的首個第一寫入點作為所述寫命令的起始與入點。更好的是,為保證硬盤數(shù)據(jù)的充分利用,在某block寫完成之后,可以進行數(shù)據(jù)搬移,將當前block中的有效page搬移到其它block中。當然,在此搬移過程中也可能會發(fā)生異常掉電,本發(fā)明通過圖4所示的方法流程進行解決,具體包括上電時會檢查上次是否發(fā)生異常掉電,若是,則進一步檢查上次“內部數(shù)據(jù)搬遷”是否完成,若沒有,則繼續(xù)搬移該page,并判斷是否為第二寫入點,如果是的話,還要對該page對應的low page進行讀操作,如果失敗,則對該Iowpage也重新做搬遷。更好的,為保證重新做搬遷時源數(shù)據(jù)仍然存在,本發(fā)明做以下限制只有當“源block”內數(shù)據(jù)已搬遷完畢,并且“目的block”落在安全點上,“源block”才能被擦除,借此保證數(shù)據(jù)的安全性和完整性。
      綜上所述,本發(fā)明通過將固態(tài)硬盤內邏輯塊包含的邏輯頁劃分為若干第一寫入點和第二寫入點,且優(yōu)選的,第一寫入點為寫入安全點,當固態(tài)硬盤接收寫命令時,選擇其中的一個第一寫入點為所述寫命令的起始寫入點。借此,若固態(tài)硬盤在執(zhí)行寫命令時,發(fā)生異常掉電,不會破壞已經(jīng)寫入到NAND Flash中的數(shù)據(jù)。更好的,本發(fā)明還可以在一個邏輯塊寫入完成后進行數(shù)據(jù)搬移,保證有足夠的寫入空間。當然,本發(fā)明還可有其它多種實施例,在不背 離本發(fā)明精神及其實質的情況下,熟悉本領域的技術人員當可根據(jù)本發(fā)明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
      權利要求
      1.一種固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述方法包括 將邏輯塊內包含的邏輯頁劃分為若干第一寫入點和第二寫入點,當所述固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點作為所述寫命令的起始寫入點。
      2.根據(jù)權利要求I所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述邏輯塊的一個存儲單元包括兩個所述邏輯頁,所述兩個邏輯頁分別被劃分為對應的所述第一寫入點和第二寫入點。
      3.根據(jù)權利要求I所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,若所述寫命令的結束寫入點之后排列有第二寫入點,則所述固態(tài)硬盤再次接收寫命令時,將所述第二寫入點之后的首個第一寫入點作為所述寫命令的起始寫入點。
      4.根據(jù)權利要求2所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述存儲單元存儲2bit數(shù)據(jù),所述數(shù)據(jù)包括低位數(shù)據(jù)和高位數(shù)據(jù)。
      5.根據(jù)權利要求4所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述第一寫入點對應的邏輯頁用于存儲所述低位數(shù)據(jù),所述第二寫入點對應的邏輯頁用于存儲所述高位數(shù)據(jù)。
      6.根據(jù)權利要求4所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述固態(tài)硬盤接收到寫命令時,先將所述低位數(shù)據(jù)寫入,再將所述高位數(shù)據(jù)寫入。
      7.根據(jù)權利要求2所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述方法還包括將所述邏輯塊中的有效頁搬移到其它邏輯塊中。
      8.根據(jù)權利要求7所述的固態(tài)硬盤的數(shù)據(jù)寫入方法,其特征在于,所述方法還包括 固態(tài)硬盤上電時,檢查所述數(shù)據(jù)搬移是否完成; 若所述數(shù)據(jù)搬移未完成,則繼續(xù)搬移對應的邏輯頁,并判斷該邏輯頁是否為所述第二寫入點,若是,則對該邏輯頁對應的第一寫入點進行讀操作,如果所述讀操作失敗,則對該第一寫入點重新做數(shù)據(jù)搬移。
      9.一種固態(tài)硬盤的數(shù)據(jù)寫入系統(tǒng),其特征在于,所述系統(tǒng)包括 寫入點劃分模塊,用于將邏輯塊內包含的邏輯頁劃分為若干第一寫入點和第二寫入占. 選擇模塊,用于當所述固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點作為所述寫命令的起始寫入點。
      10.根據(jù)權利要求9所述的固態(tài)硬盤的數(shù)據(jù)寫入系統(tǒng),其特征在于,所述系統(tǒng)還包括搬移模塊,用于將所述邏輯塊中的有效頁搬移到其它邏輯塊中。
      全文摘要
      本發(fā)明適用于計算機技術領域,提供了一種固態(tài)硬盤的數(shù)據(jù)寫入方法,所述方法包括將邏輯塊內包含的邏輯頁劃分為若干第一寫入點和第二寫入點,當所述固態(tài)硬盤接收寫命令時,選擇其中的一個所述第一寫入點作為所述寫命令的起始寫入點。更好的是,邏輯塊的一個存儲單元包括兩個所述邏輯頁,分別被劃分為第一寫入點和第二寫入點,用于存儲低位數(shù)據(jù)和高位數(shù)據(jù)。借此保證主機的當前寫命令不會破壞之前已寫入邏輯塊內的數(shù)據(jù)。
      文檔編號G06F12/02GK102789422SQ20121020972
      公開日2012年11月21日 申請日期2012年6月25日 優(yōu)先權日2012年6月25日
      發(fā)明者徐偉華, 王猛, 郁志平 申請人:記憶科技(深圳)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1