TWI810871B - 交錯式raid編碼法 - Google Patents

交錯式raid編碼法 Download PDF

Info

Publication number
TWI810871B
TWI810871B TW111111958A TW111111958A TWI810871B TW I810871 B TWI810871 B TW I810871B TW 111111958 A TW111111958 A TW 111111958A TW 111111958 A TW111111958 A TW 111111958A TW I810871 B TWI810871 B TW I810871B
Authority
TW
Taiwan
Prior art keywords
check code
calculate
tuples
write
address
Prior art date
Application number
TW111111958A
Other languages
English (en)
Other versions
TW202338607A (zh
Inventor
張柏堅
王韻昌
Original Assignee
睿寬智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 睿寬智能科技有限公司 filed Critical 睿寬智能科技有限公司
Priority to TW111111958A priority Critical patent/TWI810871B/zh
Application granted granted Critical
Publication of TWI810871B publication Critical patent/TWI810871B/zh
Publication of TW202338607A publication Critical patent/TW202338607A/zh

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

NAND快閃記憶體所用的交錯式RAID編碼法包括初始化地址及寫次數,等一個主機寫32K位元組到該NAND快閃記憶體,同步執行二子程序。在第一子程序,判斷寫次數(從0開始)是偶數或奇數,並判斷字元線是偶數或奇數。若寫次數及字元線都是偶數或都是奇數,則用前16K位元組計算校驗碼0並用後16K元組計算校驗碼1,否則用前16K元組計算校驗碼1並用後16K元組計算校驗碼0。在第二子程序,把全部資料寫入該NAND快閃記憶體的該地址並把寫次數加1。然後,用寫次數決定下一個地址供下回合的第二子程序之用。然後,判斷寫次數是否為2n-1。若寫次數非2n-1,則回到等主機把資料寫入該NAND快閃記憶體的步驟。若寫次數是2n-1,則把前16K位元組的校驗碼0及後16K元組的校驗碼1寫到該NAND快閃記憶體的該地址。然後,把寫次數加1,用寫次數重新計算地址,並回到等主機把資料寫入該NAND快閃記憶體的步驟。

Description

交錯式RAID編碼法
本發明關於記憶體的資料的保護,尤其關於一種交錯式RAID編碼法,其控制SBLK的數量並避免字元線(“Word Line”:“WL”)短路(“short”)的問題。
為保護記憶體的資料,原只設計每頁(“Page”)的ECC(“Error-Correcting Code”),但隨著製程微縮,且結構由平面轉向立體,只用ECC不足以保護資料。最終,有人參考既有的硬碟的設計,提出RAID(“Redundant Array of Independent Disks”),也有人稱之為RAIN(“Redundant Array of Independent NAND”)。
RAID是一種保護資料的方式,用多儲存校驗碼(“Parity”)還原遺失的資料。保護的通則是(2n-1):1。但7:1的成本過高,故不常見此比例。常見的比例是15:1或31:1。這16或32塊(“Block”)被稱為RAID block(“RBLK”),可能包含數個stripe block(“SBLK”)。
如表1所示,31份有效資料,多儲存1份冗餘資料,可容許遺失32份資料中的一份資料。在表1中,”P0”代表”Plane 0”,”P1”代表”Plane 1”。
隨NAND快閃記憶體演進,現在一個晶粒(“Die”:“CE”)所囊括的空間越來越大,相同容量的記憶體所需的晶粒的量愈來愈少。為避免浪費太多使用者空間,最佳狀況是維持31:1。因此,比同時用好幾個SBLK維持31:1,這情況會導致FTL管理不易,GC增加難度。
目前,在存取NAND快閃記憶體時,為了保證存取到最大頻寬,經常會定義存取單位SBLK為CH*CE*PL,在這個存取單位下,只要以此單位做存取,就保證每次存取用這個單位能達到最大頻寬,並保證主機存取的效能。
參考圖2,以下將描述一般RAID編碼法。
在S10,初始化多個變數。在此,設CH=0,CE=0,page=0,寫次數(“write count”)=0,並把校驗碼0(“parity 0”)及校驗碼1(“parity 1”)都寫為0。然後,到S12。
在S12,等一個主機把資料寫入該NAND快閃記憶體。該NAND快閃記憶體收到32K位元組後,到S14。
在S14,分派資料。把一部分資料(前16K位元組)送到S16,把其餘資料(後16K位元組)送到S18,並把全部資料(32K位元組)送到S20。
在S16,計算校驗碼0。
在S18,計算校驗碼1。
在S20,寫全部資料到該地址ch/ce/page,單位是NVML(32K位元組),並把寫次數加1。然後,到S22。
在S22,用寫次數決定下一個地址ch/ce/page,供下回合的S20或S26所用。然後,到S24。
在S24,判斷寫次數是否2n-1(例如25-1),亦即是否第2n 筆NVML。若是,則到S26。若否,則回到S12。
在S26,把在S16與S18所算資料寫入該地址ch/ce/page。然後,到S28。
在S28,用寫次數重新計算該地址ch/ce/page,並清校驗碼0及校驗碼1,就是把校驗碼0及校驗碼1都寫為0。然後,回到S12。
然而,前述之NAND結構3D化導致若干問題,例如字元線短路。這些問題使習知的做法難順利進行。
有鑑於上述習知技藝之問題,本發明之目的是提供一種NAND快閃記憶體所用的交錯式RAID編碼法,其控制SBLK數量,並避免字元線短路的問題。
為達成上述目的,該交錯式RAID編碼法包括包括初始化地址及寫次數,等一個主機把32K位元組的資料寫入該NAND快閃記憶體,同步執行二子程序。在第一子程序,判斷寫次數是偶數或奇數,並判斷字元線是偶數或奇數。若寫次數及字元線都是偶數或都是奇數,則用前16K位元組計算校驗碼0並用後16K元組計算校驗碼1,否則用前16K元組計算校驗碼1並用後16K元組計算校驗碼0。在第二子程序,寫全部資料到該NAND快閃記憶體的該地址並把寫次數加1,用寫次數決定下一個地址供下回合的第二子程序之用,判斷寫次數是否2n-1。若寫次數非2n-1,則回到等主機把資料寫入該NAND快閃記憶體的步驟。若寫次數是2n-1,則把前16K位元組的校驗碼0及後16K元組的校驗碼1寫入該地址。然後,把寫次數加1,用寫次數重新計算該地址,並回到等該主機把資料寫入該NAND快閃記憶體的步驟。
S10:初始化變數
S12:主機寫32K位元組
S14:分派資料
S16:計算校驗碼0
S18:計算校驗碼1
S20:寫全部資料並把寫次數加1
S22:用寫次數決定下一個地址
S24:寫次數是否2n-1
S26:把校驗碼寫入該地址
S28:用寫次數重新計算該地址
S30:寫次數是否偶數
S32:字元線是否偶數
S34:字元線是否奇數
S36:用前16K元組計算校驗碼0
S38:用後16K元組計算校驗碼1
S40:用前16K元組計算校驗碼1
S42:用後16K元組計算校驗碼0
〔圖1〕是本發明的較佳實施例的交錯式RAID編碼法的流程圖。
〔圖2〕是習知的RAID編碼法。
如圖1所示,本發明的較佳實施例的交錯式RAID編碼法包括2部分。第一部分是以最佳方式(以NVML為單位)把資料寫入RAID。第二部分是解決方法一所帶來的字元線短路的問題。
在減少每一個RBLK所含SBLK的情況下,增加一群WL,並在同個SBLK內操作多於1個字元線/頁,使RAID達到較佳比例31:1。
本方法的交錯式RAID編碼法可控制SBLK數量,避免字元線短路的問題,又不須上層提供操作單一頁,並透過簡單的通用公式可在每一個NVML個別算出本次應位於哪一個RBLK的哪一頁(“pagc”)。
在S10,初始化多個變數。在此,設CH=0,CE=0,page=0,寫次數=0,並清校驗碼0及校驗碼1,就是把校驗碼0及校驗碼1都寫為0。然後,到S12。
在S12,等一個主機把32K位元組的資料寫入該NAND 快閃記憶體。然後,到S14。
在S14,分派資料。然後,分成兩路,其一到S20,其二到S30。
在S30,判斷寫次數是否偶數。若是,則到S32。若否,則到S34。
在S32,判斷字元線是否偶數。若字元線是偶數,則分為兩路,其一到S36,其二到S38。若字元線是奇數,則分為兩路,其一到S40,其二到S42。
在S34,判斷字元線是否奇數。若字元線是奇數,則分為兩路,其一到S36,其二到S38。若字元線是偶數,則分為兩路,其一到S40,其二到S42。
在S36,用前16K元組計算校驗碼0。
在S38,用後16K元組計算校驗碼1。
可同時或先後執行S36及S38。不論如何,須在S26以前執行S36及S38。
在S40,用前16K元組計算校驗碼1。
在S42,用後16K元組計算校驗碼0。
可同時或先後執行S40及S42。不論如何,須在S26以先執行S40及S42。
在S20,寫全部資料到該NAND快閃記憶體的該地址ch/ce/page,單位是NVML(32K位元組),並把寫次數(“write count”)加1。然後,到S22。
在S22,用寫次數決定下一個地址ch/ce/page,以便在下回合的S20使用。然後,到S24。
在S24,判斷寫次數是否2n-1(例如25-1=31),就是判斷是否為第2n(例如32)筆NVML。若是,則到S26。若,否則回 到S12。
在S26,把在S36與S38所算資料或在S40與S42所算資料寫入該地址ch/ce/page。然後,到S28。
在S28,用寫次數重新計算該地址ch/ce/page,並清校驗碼0及校驗碼1,就是把校驗碼0及校驗碼1都寫為0。然後,回到S12。
本發明的交錯式RAID編碼法呈現若干優點。其一,RBLK只須用等量或較少的SBLK。其二,無字元線短路的問題。其三,可用NVML(2 plane pages)為單位寫入。
以上僅為描述本發明的較佳實施方式,非用以限定本發明的範圍。本技術領域內的一般技術人員根據上述實施例所作的均等變化,以及本領域內技術人員熟知的改變,仍在本發明的範圍內。
S10:初始化變數
S12:等主機寫32K位元組
S14:分派資料
S20:寫全部資料並把寫次數加1
S22:用寫次數決定下一個地址
S24:寫次數是否2n-1
S26:把校驗碼寫入該地址
S28:用寫次數重新計算該地址
S30:寫次數是否偶數
S32:字元線是否偶數
S34:字元線是否奇數
S36:用前16K元組計算校驗碼0
S38:用後16K元組計算校驗碼1
S40:用前16K元組計算校驗碼1
S42:用後16K元組計算校驗碼0

Claims (6)

  1. 一種交錯式RAID編碼法,包括以下步驟:初始化一個地址(S10);初始化一個寫次數(S10);清校驗碼0及校驗碼1(S10)等一個主機把32K位元組的資料寫入該NAND快閃記憶體(S12);同步執行第一子程序(S30)及第二子程序(S20);其中該第一子程序包括以下步驟:判斷寫次數是偶數或奇數(S30);判斷字元線是偶數或奇數(S32,S34);若寫次數及字元線都是偶數或都是奇數,則用前16K位元組計算校驗碼0(S36),並用後16K元組計算校驗碼1(S38);若否,則用前16K元組計算校驗碼1(S40),並用後16K元組計算校驗碼0(S42);其中該第二子程序包括以下步驟:寫全部資料到該地址,並把寫次數加1(S20);用寫次數決定下一個地址,供下回合的第二子程序之用;判斷寫次數是否為2n-1;若寫次數非2n-1,則回到等該主機寫32K位元組到該NAND快閃記憶體的步驟(S12); 若寫次數是2n-1,則把前16K位元組的校驗碼0及後16K元組的校驗碼1寫入該地址;把寫次數加1,用寫次數重新計算該地址,並清奇偶校驗碼為0(S28);回到等該主機把資料寫入該NAND快閃記憶體的步驟(S12)。
  2. 如請求項1所述之之交錯式RAID編碼法,其中該第一子程序包括以下步驟:判斷寫次數是否偶數(S30);若寫次數是偶數,則判斷字元線是否偶數(S32);若字元線是偶數,則用前16K元組計算校驗碼0(S36)並用後16K元組計算校驗碼1(S38),若字元線是奇數,則用前16K元組計算校驗碼1(S40)及並用後16K元組計算校驗碼0(S42);若寫次數是奇數,則判斷字元線是否奇數;若字元線是奇數,則用前16K元組計算校驗碼0(S36)並用後16K元組計算校驗碼1(S38);若字元線是偶數,則用前16K元組計算校驗碼1(S40)並用後16K元組計算校驗碼0(S42)。
  3. 如請求項1所述之交錯式RAID編碼法,其中該初始化一個地址的步驟包括設CH=0,CE=0,page=0。
  4. 如請求項1所述之交錯式RAID編碼法,其中n是不小於4的正整數。
  5. 如請求項1所述之交錯式RAID編碼法,其中該第一子程序包括同步用前16K元組計算校驗碼0(S36)並用後16K元組計算校驗碼1(S38)。
  6. 如請求項1所述之交錯式RAID編碼法,其中該第一子程序包括同步用前16K元組計算校驗碼1(S40)並用後16K元組計算校驗碼0(S42)。
TW111111958A 2022-03-29 2022-03-29 交錯式raid編碼法 TWI810871B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111111958A TWI810871B (zh) 2022-03-29 2022-03-29 交錯式raid編碼法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111111958A TWI810871B (zh) 2022-03-29 2022-03-29 交錯式raid編碼法

Publications (2)

Publication Number Publication Date
TWI810871B true TWI810871B (zh) 2023-08-01
TW202338607A TW202338607A (zh) 2023-10-01

Family

ID=88585511

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111111958A TWI810871B (zh) 2022-03-29 2022-03-29 交錯式raid編碼法

Country Status (1)

Country Link
TW (1) TWI810871B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245083A1 (en) * 2006-04-04 2007-10-18 Margolus Norman H Erasure Coding Technique For Scalable And Fault Tolerant Storage System
US9003264B1 (en) * 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
TW202145013A (zh) * 2015-07-02 2021-12-01 美商英特爾股份有限公司 高速互連符號流前向錯誤更正設備、機器可讀儲存媒體、及方法
US20220083657A1 (en) * 2019-11-22 2022-03-17 Pure Storage, Inc. Independent Security Threat Detection and Remediation by Storage Systems in a Synchronous Replication Arrangement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070245083A1 (en) * 2006-04-04 2007-10-18 Margolus Norman H Erasure Coding Technique For Scalable And Fault Tolerant Storage System
US9003264B1 (en) * 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
TW202145013A (zh) * 2015-07-02 2021-12-01 美商英特爾股份有限公司 高速互連符號流前向錯誤更正設備、機器可讀儲存媒體、及方法
US20220083657A1 (en) * 2019-11-22 2022-03-17 Pure Storage, Inc. Independent Security Threat Detection and Remediation by Storage Systems in a Synchronous Replication Arrangement

Also Published As

Publication number Publication date
TW202338607A (zh) 2023-10-01

Similar Documents

Publication Publication Date Title
US10997065B2 (en) Memory system and operating method thereof
EP3607449B1 (en) Garbage collection
US10140041B1 (en) Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object
US8397023B2 (en) System and method for handling IO to drives in a memory constrained environment
US10222990B2 (en) Optimistic read operation
JP5823875B2 (ja) 固体メモリフォーマッティング
US8463992B2 (en) System and method for handling IO to drives in a raid system based on strip size
US9542101B2 (en) System and methods for performing embedded full-stripe write operations to a data volume with data elements distributed across multiple modules
US20180203631A1 (en) Storage system
CN111538676B (zh) 数据储存装置及其数据存取方法
JP2015510213A (ja) 物理ページ、論理ページ、およびコードワードの対応
US20160283319A1 (en) Data storage device and encoding method thereof
US20090172244A1 (en) Hierarchical secondary raid stripe mapping
CN112463647A (zh) 使用散列来减小前向映射表的大小
CN111857572B (zh) Tlc固态硬盘的数据写入方法、装置、设备及存储介质
CN111752852A (zh) 数据存储装置及数据存储装置的操作方法
CN114741330A (zh) 储存装置、快闪存储器控制器及其控制方法
US8533549B2 (en) Memory system and computer system
TWI810871B (zh) 交錯式raid編碼法
CN114974366A (zh) 储存装置、快闪存储器控制器及其控制方法
CN113628655A (zh) 用以存取闪存模块的方法、闪存控制器与电子装置
US11934264B2 (en) ECC parity biasing for Key-Value data storage devices
US10783034B2 (en) Memory system and control method
CN112445422A (zh) 存储器控制器、存储装置以及存储器控制器的操作方法
CN114415968B (zh) 存储系统及其数据写入方法