国产精品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>

      一種存儲設備中的多級ECC方法與流程

      文檔序號:40443095發(fā)布日期:2024-12-24 15:17閱讀:14來源:國知局
      一種存儲設備中的多級ECC方法與流程

      本發(fā)明涉及存儲,具體地說是一種存儲設備中的多級ecc方法。


      背景技術:

      1、隨著存儲技術的進步,固態(tài)硬盤(solid-state?drives,ssd)已逐漸成為個人、企業(yè)以及數(shù)據(jù)中心數(shù)據(jù)存儲的主要媒介,相對于傳統(tǒng)的機械磁盤(hard-disk?drives,hdd),極大地緩解了存儲端的壓力并釋放了整體系統(tǒng)的性能潛力。近年來,固態(tài)硬盤內(nèi)也開始使用透明壓縮的方案,通過在硬盤內(nèi)集成數(shù)據(jù)壓縮功能,進一步降低了數(shù)據(jù)對物理存儲空間的占用。

      2、ssd的主要存儲介質(zhì)是nand。通常情況下,寫入nand的數(shù)據(jù)塊,一般都會對應一個多個邏輯塊地址(logical?block?address,lba),每個邏輯塊地址對應固定的大小,如512b或者4kb。lba的大小,由主機在對ssd進行格式化的時候指明。由于nand不能進行原址更新,因此數(shù)據(jù)寫入nand之后,其lba和物理塊地址(physical?block?address,pba)之間的映射不是固定的,所以ssd中需要閃存轉(zhuǎn)換層(flash?translation?layer,ftl)來記錄和維護lba與pba之間的映射關系。

      3、當前ssd的設計中,lba和pba的映射,一般采用固定大小的映射單位,如4kb。為了最大化ssd的性能,該映射表一般保存在ssd內(nèi)部的ddr中。當lba的大小小于映射單位的大小且主機端的寫請求為非對齊(即寫請求的初始lba或者結(jié)尾lba,與映射單位沒有對齊)時,在ssd內(nèi)部就需要執(zhí)行讀-改-寫(read-modify-write,rmw)操作來解決lba和映射單位之間的不匹配問題,如,當lba大小為512b且映射單位大小為4kb時,若主機端執(zhí)行一個512b的寫操作,則ssd內(nèi)部需要先從映射表中查找該512b數(shù)據(jù)所在的lba所對應的4kb?pba,然后從pba中讀取4kb數(shù)據(jù),并使用主機端寫入的512b數(shù)據(jù)替換掉原先對應位置的512b數(shù)據(jù),最后將整個4kb數(shù)據(jù)寫入nand,并更新映射表。此外,ssd一般會使用定長的ecc(errorcorrection?coding)碼字來對數(shù)據(jù)進行保護,例如采用(4kb原始數(shù)據(jù)+0.5kb校驗數(shù)據(jù))的ldpc碼字來保護4kb的用戶數(shù)據(jù)。此時,若要讀取512b的數(shù)據(jù),則需要將整個4.5kb的ldpc碼字從nand中讀取出來,經(jīng)過解碼后返回所需的512b數(shù)據(jù),此時就會造成讀放大問題,而且ldpc解碼引擎也會帶來更多的功耗;當寫入512b數(shù)據(jù)時,ssd同樣需要將對應的4kb用戶數(shù)據(jù)從nand中讀取出來,經(jīng)過ldpc解碼后用新的512b數(shù)據(jù)替換掉舊的512b數(shù)據(jù),然后重新經(jīng)過ldpc編碼后寫入nand,此時還會造成寫放大問題,以及l(fā)dpc編解碼引擎的功耗問題。

      4、在實際的某些場景中,應用對ssd的讀寫訪問大多數(shù)都是小的數(shù)據(jù)塊,如200b或者400b,因此往往會涉及大量的讀改寫操作,從而降低了ssd和應用的性能。一種解決小數(shù)據(jù)塊訪問性能的方法,是在硬盤的不同分區(qū)內(nèi)使用不同粒度的映射單位,使得映射單位的粒度盡量貼近主機訪問數(shù)據(jù)的粒度,但由于ecc編碼引擎仍然是較大的粒度,所以仍然存在讀放大問題以及ecc編解碼引擎的功耗問題。


      技術實現(xiàn)思路

      1、本發(fā)明為克服現(xiàn)有技術的不足,提供一種存儲設備中的多級ecc方法,采用更短的碼字來減小讀放大問題以及ecc編解碼引擎的功耗。

      2、為實現(xiàn)上述目的,設計一種存儲設備中的多級ecc方法,將存儲設備內(nèi)部劃分為單ecc碼字區(qū)域、多ecc碼字區(qū)域,并將多ecc碼字區(qū)域內(nèi)劃分短ecc碼字、長ecc碼字。

      3、劃分單ecc碼字區(qū)域、多ecc碼字區(qū)域的劃分條件為數(shù)據(jù)塊lba地址的映射單位粒度;當數(shù)據(jù)塊lba地址的映射單位粒度較大時,劃分為單ecc碼字區(qū)域,當數(shù)據(jù)塊lba地址的映射單位粒度較小時,劃分為多ecc碼字區(qū)域。

      4、所述的單ecc碼字區(qū)域內(nèi)的數(shù)據(jù)塊,具有單一長度的ecc碼字且ecc碼字較長;多ecc碼字區(qū)域內(nèi)的數(shù)據(jù)塊,具有不同的ecc碼字長度。

      5、所述的多ecc碼字區(qū)域內(nèi),短ecc碼字中的用戶數(shù)據(jù)長度采用存儲設備中的最小地址映射單位。

      6、所述的多ecc碼字區(qū)域內(nèi),多個完整的短ecc碼字組成了長ecc碼字的用戶數(shù)據(jù)部分。

      7、所述的多ecc碼字區(qū)域內(nèi),短ecc碼字的碼率低于長ecc碼字的碼率,長ecc碼字的長度與單ecc碼字區(qū)域中ecc碼字的長度相同。

      8、當主機端寫入數(shù)據(jù)時,包括如下步驟:

      9、s1,獲取數(shù)據(jù)塊的大小,判斷該數(shù)據(jù)塊被劃分至單ecc碼字區(qū)域或多ecc碼字區(qū)域,如果被劃分至單ecc碼字區(qū)域,對該數(shù)據(jù)塊進行長ecc碼字的編碼并寫入存儲介質(zhì);如果被劃分至多碼字ecc區(qū)域,進行步驟s2,

      10、s2,確定寫請求中數(shù)據(jù)塊的lba所對應的長ecc碼字以及長ecc碼字所對應的pba,讀取長ecc碼字并進行解碼;

      11、s3,對寫請求lba中的數(shù)據(jù)進行短ecc碼字的編碼,編碼后替換長ecc碼字中對應的短ecc碼字;

      12、s4,對長ecc碼字進行重新編碼,并將編碼后的長ecc碼字寫入存儲介質(zhì);

      13、s5,根據(jù)數(shù)據(jù)寫入的物理位置更新地址映射表。

      14、當主機端讀取數(shù)據(jù)時,包括如下步驟:

      15、s1,獲取數(shù)據(jù)塊的大小,判斷該數(shù)據(jù)塊被劃分至單ecc碼字區(qū)域或多ecc碼字區(qū)域,如果被劃分至單ecc碼字區(qū)域,對該數(shù)據(jù)塊進行長ecc碼字的解碼;如果被劃分至多碼字ecc區(qū)域,進行步驟s2;

      16、s2,確定讀請求中數(shù)據(jù)塊的lba所包含的短ecc碼字及其對應的pba;

      17、s3,讀取相應的短ecc碼字并進行解碼,如果解碼正確,則返回對應的用戶數(shù)據(jù);如果解碼失敗,則進行步驟s4,

      18、s4,讀取包含解碼失敗的短ecc碼字的長ecc碼字,并進行長ecc碼字的解碼;

      19、s5,從解碼后的長ecc碼字中返回解碼失敗的短ecc碼字所對應的用戶數(shù)據(jù)。

      20、當主機端讀取數(shù)據(jù)時,若短ecc碼字的解碼引擎已完全飽和,即數(shù)據(jù)讀取的速度已達到短ecc碼字的解碼引擎的上限,則可以輔助以長ecc碼字的解碼引擎,來進一步提升解碼的吞吐。

      21、當主機端讀取多ecc碼字區(qū)域的數(shù)據(jù)時,若一個長ecc碼字中一次數(shù)據(jù)讀取的比例較高時,則可以直接讀取長ecc碼字進行解碼。

      22、本發(fā)明同現(xiàn)有技術相比,具有以下有益效果:

      23、1.在小數(shù)據(jù)塊訪問時,降低了數(shù)據(jù)的讀放大問題以及ecc編解碼所產(chǎn)生的功耗。

      24、2.使用長短兩級的ecc方法,減少了更多ecc碼字長度帶來的硬件開銷問題。

      25、3.通過在多ecc碼字區(qū)域使用與單ecc碼字區(qū)域相同的長ecc碼字,保證了ecc最終的糾錯能力不受短ecc碼字的影響。



      技術特征:

      1.一種存儲設備中的多級ecc方法,其特征在于:將存儲設備內(nèi)部劃分為單ecc碼字區(qū)域、多ecc碼字區(qū)域,其中多ecc碼字區(qū)域內(nèi)劃分短ecc碼字、長ecc碼字。

      2.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:劃分單ecc碼字區(qū)域、多ecc碼字區(qū)域的劃分條件為數(shù)據(jù)塊lba地址的映射單位粒度;當數(shù)據(jù)塊lba地址的映射單位粒度較大時,劃分為單ecc碼字區(qū)域,當數(shù)據(jù)塊lba地址的映射單位粒度較小時,劃分為多ecc碼字區(qū)域。

      3.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:所述的單ecc碼字區(qū)域內(nèi)的數(shù)據(jù)塊,具有單一長度的ecc碼字且ecc碼字較長,多ecc碼字區(qū)域內(nèi)的數(shù)據(jù)塊,具有不同的ecc碼字長度。

      4.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:所述的多ecc碼字區(qū)域內(nèi),短ecc碼字中的用戶數(shù)據(jù)長度采用存儲設備中的最小地址映射單位。

      5.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:所述的多ecc碼字區(qū)域內(nèi),多個完整的短ecc碼字組成了長ecc碼字的用戶數(shù)據(jù)部分。

      6.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:所述的多ecc碼字區(qū)域內(nèi),短ecc碼字的碼率低于長ecc碼字的碼率,長ecc碼字的長度與單ecc碼字區(qū)域中ecc碼字的長度相同。

      7.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:當主機端寫入數(shù)據(jù)時,包括如下步驟:

      8.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:當主機端讀取數(shù)據(jù)時,包括如下步驟:

      9.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:當主機端讀取數(shù)據(jù)時,若短ecc碼字的解碼引擎已完全飽和,即數(shù)據(jù)讀取的速度已達到短ecc碼字的解碼引擎的上限,則可以輔助以長ecc碼字的解碼引擎,來進一步提升解碼的吞吐。

      10.根據(jù)權利要求1所述的一種存儲設備中的多級ecc方法,其特征在于:當主機端讀取多ecc碼字區(qū)域的數(shù)據(jù)時,若一個長ecc碼字中一次數(shù)據(jù)讀取的比例較高時,則可以直接讀取長ecc碼字進行解碼。


      技術總結(jié)
      本發(fā)明涉及存儲技術領域,具體地說是一種存儲設備中的多級ECC方法。將存儲設備內(nèi)部劃分為單ECC碼字區(qū)域、多ECC碼字區(qū)域,并將多ECC碼字區(qū)域內(nèi)劃分短ECC碼字、長ECC碼字。同現(xiàn)有技術相比,具有以下有益效果:在小數(shù)據(jù)塊訪問時,降低了數(shù)據(jù)的讀放大問題以及ECC編解碼所產(chǎn)生的功耗。使用長短兩級的ECC方法,減少了更多ECC碼字長度帶來的硬件開銷問題。通過在多ECC碼字區(qū)域使用與單ECC碼字區(qū)域相同的長ECC碼字,保證了ECC最終的糾錯能力不受短ECC碼字的影響。

      技術研發(fā)人員:鄭寧,高忠義,蔡雪梅
      受保護的技術使用者:銳鉦(杭州)科技有限公司
      技術研發(fā)日:
      技術公布日:2024/12/23
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1