TWI723515B - 記憶體裝置及其資料存取方法 - Google Patents
記憶體裝置及其資料存取方法 Download PDFInfo
- Publication number
- TWI723515B TWI723515B TW108130982A TW108130982A TWI723515B TW I723515 B TWI723515 B TW I723515B TW 108130982 A TW108130982 A TW 108130982A TW 108130982 A TW108130982 A TW 108130982A TW I723515 B TWI723515 B TW I723515B
- Authority
- TW
- Taiwan
- Prior art keywords
- indicator
- write
- logic level
- memory device
- error correction
- Prior art date
Links
Images
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用於記憶體裝置的資料存取方法。資料存取方法包含:基於位址資訊對記憶體裝置執行讀取操作以獲得碼字和指示符,其中指示符對應於碼字;使得第一錯誤碼校正(ECC)操作或第二ECC操作在碼字上運行以用於生成錯誤校正資料,其中,第一ECC操作比第二ECC操作校正較少的位元。
Description
本發明是有關於一種記憶體裝置及其資料存取方法,且特別是有關於一種具有多個錯誤校正碼(ECC)機制的記憶體裝置。
在習知技術中,針對非揮發性記憶體,例如為BCH操作的ECC機制可在每個碼字上運行。但是,在統計中,大部分碼字只需要零個或少量的校正位元。也就是說,在習知技術中,由於僅具有一個ECC機制,即使大部分碼字不需要這樣,記憶體裝置始終使用最高的功率來讀取或寫入每個碼字。此外,在習知技術中,即使大部分碼字不要需要這樣,同位檢查位元仍需要針對單一個ECC機制進行最大次數的切換。
本發明提供一種用於降低操作功率的記憶體裝置及其資料存取方法。
本發明的資料存取方法,包含:基於位址資訊對記憶體裝置執行讀取操作以獲得碼字和指示符,其中指示符對應於碼字;使得第一錯誤校正碼(ECC)操作或第二ECC操作運行在碼字上以用於生成錯誤校正資料,其中,第一ECC操作比第二ECC操作校正較少的位元。
本發明還提供包含記憶胞陣列和控制器的記憶體裝置。控制器耦接記憶胞陣列,且配置以執行上述資料存取方法。
基於上述,本發明根據碼字的訊息位元的錯誤位元數目,來啟用第一ECC操作和第二ECC操作的其中之一。也就是說,不必使用最大功率以在每個碼字上運行ECC操作,可節省記憶體裝置的功率消耗。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
210:第一ECC操作
220:第二ECC操作
500:記憶體裝置
510:記憶胞陣列
520:控制器
S110、S120、S310、S320、S330、S340、S351、S352、S410、S420、S430、S440、S450、S460、S470、S480:步驟
ADD:位址資訊
CW:碼字
ECD:錯誤校正資料
IND:指示符
UCW:更新的碼字
圖1繪示本發明的實施例的資料存取方法的流程圖。
圖2繪示本發明的另一實施例的資料存取方法的示意圖。
圖3繪示本發明的另一實施例的資料存取方法的示意圖。
圖4繪示本發明的另一實施例的資料存取方法的示意圖。
圖5繪示本發明的實施例的記憶體裝置的方塊圖。
參看圖1,圖1中的資料存取方法適應於記憶體裝置,且記憶體裝置可以是非揮發性記憶體,例如快閃記憶體。步驟S110基於位址資訊對記憶體裝置執行讀取操作以獲得碼字和指示符。詳細地說,在執行讀取操作之前,可由記憶體裝置接收具有位址資訊的資料存取命令。接著,讀取操作可基於位址資訊在記憶體裝置上運行。在本實施例中,基於位址資訊,可在記憶體裝置中預存指示符。此外,通過讀取操作讀出的碼字包含多個訊息位元和多個同位檢查位元。
步驟S120根據指示符,以使第一錯誤碼(ECC)操作或第二ECC操作運行在碼字上以生成錯誤校正資料,其中第一ECC操作比第二ECC操作校正較少的位元。詳細地說,可根據指示符啟動第一ECC操作和第二ECC操作中的其中之一。舉例來說,指示符可為具有一個位元的數位信號。在本實施例中,如果指示符處於第一邏輯準位,則可啟動具有較少錯誤位元校正能力的第一ECC操作;且如果指示符處於第二邏輯準位,則可啟動帶具更多錯誤位元校正能力的第二ECC操作。第一邏輯準位與第二邏輯準位互補,其中第一邏輯準位可以是邏輯準位1,且第二邏輯準位可以是邏輯準位0。
在本發明實施例中,指示符可根據對應碼字的可能錯誤位元數目來設置,並基於位址資訊預存在記憶體裝置中。如果對應碼字的錯誤位元數目小於預設參考,則指示符可設置為第一邏
輯準位;且如果對應碼字的錯誤位元數目不小於預設參考,則指示符可設置為第二邏輯準位。
此處可見,在本發明實施例中,針對每個碼字啟動合適的ECC操作。也就是說,記憶體裝置不需要始終對具有最大功率的碼字執行ECC操作。可節省記憶體裝置的功率消耗。
參看圖2,碼字CW和對應的指示符IND可基於位址資訊ADD被讀出。碼字CW可包含多個訊息位元和多個同位檢查位元。
另一方面,可對指示符IND的邏輯準位進行檢查。如果指示符IND為邏輯準位1,則可啟動第一ECC操作(ECC1)210以運行在碼字CW上。在此實施例中,舉例來說,第一ECC操作210可由第一ECC編碼器執行(第一ECC編碼器可具有4組),且第一ECC操作210可基於漢明(12,8)碼來運行。
相反的,如果指示符IND為邏輯準位0,則可啟動第二ECC操作(ECC2)220以運行在碼字CW。在此實施例中,舉例來說,第二ECC操作220可由第二ECC編碼器執行,且第二ECC操作可基於BCH(50,32)碼來運行。
在本實施例中,第一ECC操作比第二ECC操作校正更少的錯誤位元,且記憶體裝置執行第一ECC操作比執行第二ECC操作消耗更少的功率。
記憶體裝置通過根據指示符IND選擇第一ECC操作210的輸出或第二ECC操作的輸出進一步輸出錯誤校正資料ECD。詳
細地說,如果指示符為邏輯準位1,則可選擇第一ECC操作210的輸出以生成錯誤校正資料ECD。相反的,如果指示符為邏輯準位0,則可選擇第第二ECC操作220的輸出以生成錯誤校正資料ECD。
當存取多個碼字時,記憶體裝置可適應性地選擇合適的ECC操作以運行在每個碼字上。可節省記憶體裝置的功率消耗。
此處請注意,在一些實施例中,至少一個第三ECC操作可添加到資料存取流程中。第三ECC操作可比第二ECC操作220校正更多錯誤位元。在這種情況下,指示符IND可具有2位元。舉例來說,如果指示符為邏輯準位00,則可啟動第二ECC操作;如果指示符為邏輯準位01,則可啟動第一ECC操作;且如果指示符為邏輯準位10,則可啟動第三ECC操作。當然,指示符與被啟動的ECC操作之間的關係可由記憶體裝置的設計者定義,在此並無特殊限制。
在此實施例中,第二ECC操作220的輸出的資料大小可以是4位元組,且第一ECC操作210的輸出的資料大小可不大於4位元組。
參看圖3,步驟S310接收記憶體裝置的寫入命令。接著,步驟S320對記憶體裝置執行預讀取流程。在預讀取流程中,讀取操作可基於寫入命令的位址資訊執行,且指示符IND可通過預讀取流程獲得。步驟S330確定指示符IND是否為邏輯準位1,如果指示符IND不是邏輯準位1,則保持指示符邏輯準位0並且執行
步驟S352。相反的,如果指示符IND為邏輯準位1,則可通過寫入驗證讀取流程檢查通過預讀取操作的讀出碼字,且在步驟S340中可檢查錯誤位元的數目。在寫入驗證讀取流程中,讀出寫入記憶體裝置的寫入碼字,且將讀出碼字與寫入驗證讀取流程的寫入碼字進行比較。
如果錯誤位元的數目等於0,則指示符IND保持為邏輯準位1,並且執行步驟S351。相反的,如果錯誤位元的數目不等於0,則指示符IND調整為邏輯準位0,並且執行步驟S352。當指示符IND為邏輯準位1時,步驟S351基於漢明(12,8)碼啟用第一ECC操作(ECC1)。當指示符IND為邏輯準位0時,步驟S352基於BCH(50,32)碼啟用第二ECC操作(ECC2)。
在步驟S351或步驟S352執行完成後,可生成多個更新的訊息位元和多個更新的同位檢查位元,而更新的訊息位元和更新的同位檢查位元形成更新的碼字UCW。基於寫入命令的位址資訊,可將更新的碼字UCW和對應的指示符IND寫入記憶體裝置。可完成資料寫入操作。
在此,由於指示符IND將僅進行一次寫入(無循環的問題),因此可提供用於將指示符IND寫入記憶體裝置的第一寫入脈衝,並且在寫入操作期間可提供用於將更新的碼字UCW寫入記憶體裝置的第二寫入脈衝,其中第一寫入脈衝與第二寫入脈衝不同。
此處應注意的是,當更新的訊息位元和更新的同位檢查位元寫入記憶體裝置時,更新的訊息位元和更新的同位檢查位元
可分別地與多個原始訊息位元和多個原始同位檢查位元進行比較,並且更新的訊息位元和更新的同位檢查位元可基於較少位元變化機制寫入。可通過步驟S330中的預讀取操作獲得原始訊息位元和原始同位檢查位元。較少位元變化機制可由本領域的技術人員熟知的機制來實施,所述較少位元變化機制可減少每次資料寫入操作中時,被程式化的記憶胞的數目。
參看圖4,步驟S410接收具有位址資訊的記憶體裝置的寫入命令。接著,步驟S420對記憶體裝置執行預讀取流程。在預讀取流程中,讀取操作可基於寫入命令的位址資訊執行,並且指示符IND可通過預讀取流程獲得。步驟S430確定指示符IND是否為邏輯準位0,如果指示符IND不是邏輯準位0,則運行步驟S440。相反的,如果指示符IND為邏輯準位0,則執行步驟S480。
在步驟S440中,如果錯誤位元的數目大於0,則執行步驟S450以啟用基於漢明(12,8)碼的第一ECC操作(ECC1)。如果錯誤位元的數目不大於0,則執行步驟S460。
在步驟S460中,執行寫入驗證讀取流程。在步驟460中,讀出寫入記憶體裝置的寫入碼字,並將讀出碼字與用於寫入驗證讀取流程的寫入碼字進行比較。如果讀出碼字和寫入碼字相同,則寫入命令已完成。相反的,如果讀出碼字和寫入碼字不同,則執行步驟S480。
在步驟S480中,指示符IND設定為邏輯準位0,且針對基於BCH(50,32)碼的ECC操作啟用第二ECC操作(ECC2)。
第二ECC操作可比第一ECC操作校正更多的錯誤位元。可確保碼字的精確性。
在執行步驟S450或步驟S480後,可生成多個更新的訊息位元和多個更新的同位檢查位元,並且更新的訊息位元和更新的同位檢查位元形成更新的碼字UCW。基於寫入命令的位址資訊,可將更新的碼字UCW和對應的指示符IND寫入記憶體裝置。可完成資料寫入操作。此處應注意的是,當更新的訊息位元和更新的同位檢查位元寫入記憶體裝置時,更新的訊息位元和更新的同位檢查位元可基於如上所提到的較少位變化機制寫入。
參看圖5,記憶體裝置500可為非易失性記憶體。舉例來說,記憶體裝置500可為快閃記憶體。記憶體裝置500包含記憶胞陣列510和控制器520。記憶胞陣列510包含多個記憶胞。控制器520配置以執行在先前實施例中提到的資料存取方法的步驟。在上述實施例中已經描述步驟的詳細操作,這裡不再重複描述。
關於控制器520。控制器520可為具有計算功能的處理器。或者,控制器520還可為通過使用硬體描述語言(hardware description language;HDL)或由所屬領域相關技術員熟知的任何數位電路設計方法設計的硬體電路,並通過現場可程式設計閘陣列(field programmable gate array;FPGA)、複雜可程式設計邏輯裝置(complex programmable logic device;CPLD)或專用積體電路(application-specific integrated circuit;ASIC)實現。
綜上所述,通過針對每個碼字選擇合適的ECC操作可減
少記憶體裝置的功率消耗。此外,通過使用較少位變化機制來寫入碼字,可進一步減少記憶體裝置的功率消耗,並可增加記憶胞(即,快閃記憶體儲單元)的使用壽命。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
S110~S120:步驟。
Claims (14)
- 一種用於記憶體裝置的資料存取方法,包括:基於位址資訊對所述記憶體裝置執行讀取操作以獲得碼字及指示符,其中所述指示符對應於所述碼字;使得第一錯誤校正碼操作或第二錯誤校正碼操作在所述碼字上運行以用於生成錯誤校正資料,其中,所述第一錯誤校正碼操作比所述第二錯誤校正碼操作校正較少的位,所述碼字包括多個訊息位元以及對應的多個同位檢查位元;基於所述位址資訊接收資料寫入命令;在預讀取及寫入驗證讀取流程期間檢查所述碼字的第一錯誤位元數目以獲得檢查結果;根據所述檢查結果設置所述指示符;根據所述指示符在所述訊息位元上運行所述第一錯誤校正碼操作或所述第二錯誤校正碼操作以生成多個更新的訊息位元及多個更新的同位檢查位元;以及基於所述位址資訊執行用於將所述更新的訊息位元、所述更新的同位檢查位元以及所述指示符寫入所述記憶體裝置的寫入操作。
- 如申請專利範圍第1項所述的資料存取方法,其中在寫入驗證讀取流程期間根據所述碼字的第二錯誤位元數目來設置所述指示符。
- 如申請專利範圍第1項所述的資料存取方法,其中在所述預讀取及所述寫入驗證讀取流程期間檢查所述碼字的錯誤位元數目以獲得所述檢查結果的步驟包括:基於所述位址資訊執行所述預讀取流程以獲得讀出碼字;以及對所述讀出碼字執行所述寫入驗證讀取流程以獲得所述檢查結果。
- 如申請專利範圍第1項所述的資料存取方法,其中執行用於基於所述位址資訊將所述更新的訊息位元、所述更新的同位檢查位元以及所述指示符寫入所述記憶體裝置的所述寫入操作的步驟包括:根據所述第一錯誤位元數目將所述更新的訊息位元、所述更新的同位檢查位元以及所述指示符寫入所述記憶體裝置。
- 如申請專利範圍第1項所述的資料存取方法,其中第一邏輯準位為邏輯準位1且第二邏輯準位為邏輯準位0,且所述資料存取方法更包括:如果所述第一錯誤位元數目等於0,則將所述指示符設置為所述第一邏輯準位;如果所述第一錯誤位元數目大於0,則將所述指示符設置為所述第二邏輯準位,其中所述第一邏輯準位與所述第二邏輯準位互補; 當所述指示符為所述第一邏輯準位時,基於所述位址資訊在所述寫入操作之後執行寫入驗證讀取操作;如果檢查的錯誤位元數目大於0,則將所述指示符更新為所述第二邏輯準位;以及在所述更新的訊息位元上啟用並執行所述第二錯誤校正碼操作。
- 如申請專利範圍第1項所述的資料存取方法,其中所述第一錯誤校正碼操作基於4組漢明(12,8)碼運行,且所述第二錯誤校正碼操作基於1組BCH(50,32)碼運行。
- 如申請專利範圍第1項所述的資料存取方法,更包括:提供第一寫入脈衝以在所述寫入操作期間將所述指示符寫入所述記憶體裝置;以及提供第二寫入脈衝以在所述寫入操作期間將所述更新的訊息位元寫入所述記憶體裝置,其中所述第一寫入脈衝不同於所述第二寫入脈衝。
- 一種記憶體裝置,包括:記憶胞陣列;以及控制器,耦接所述記憶胞陣列,配置以:基於位址資訊對所述記憶體裝置執行讀取操作以獲得碼字及指示符,其中所述指示符對應於所述碼字;以及使得第一錯誤校正碼操作或第二錯誤校正碼操作在所述碼字上運行以用於生成錯誤校正資料, 其中,所述第一錯誤校正碼操作比所述第二錯誤校正碼操作校正較少的位元,所述碼字包括多個訊息位元及對應的多個同位檢查位元,且所述控制器更配置以:基於所述位址資訊接收資料寫入命令;在預讀取及寫入驗證讀取流程期間檢查所述碼字的第一錯誤位元數目以獲得檢查結果;根據所述檢查結果設置所述指示符;根據所述指示符在所述訊息位元上運行所述第一錯誤校正碼操作或所述第二錯誤校正碼操作以生成多個更新的訊息位元及多個更新的同位檢查位元;以及執行用於基於所述位址資訊將所述更新的訊息位元、所述更新的同位檢查位元以及所述指示符寫入所述記憶胞陣列的寫入操作。
- 如申請專利範圍第8項所述的記憶體裝置,其中所述控制器根據所述碼字的第二錯誤位元數目設置所述指示符。
- 如申請專利範圍第8項所述的記憶體裝置,其中所述控制器更配置以:基於所述位址資訊執行所述預讀取流程以獲得所述碼字;以及對所述碼字執行所述寫入驗證讀取流程以獲得所述檢查結果。
- 如申請專利範圍第8項所述的記憶體裝置,其中所述控制器根據所述第一錯誤位元數目將所述更新的訊息位元、所述更新的同位檢查位元以及所述指示符寫入所述記憶胞陣列。
- 如申請專利範圍第8項所述的記憶體裝置,其中如果所述第一錯誤位元數目等於0,則所述控制器將所述指示符設置為第一邏輯準位;如果所述第一錯誤位元數目大於0,則所述控制器將所述指示符設置為第二邏輯準位,其中所述第一邏輯準位與所述第二邏輯準位互補,其中所述第一邏輯準位為邏輯準位1且所述第二邏輯準位為邏輯準位0,且所述控制器更配置以:當所述指示符為所述第一邏輯準位時,基於所述位址資訊在所述寫入操作之後執行寫入驗證讀取操作;如果檢查的錯誤位元數目大於0,則將所述指示符更新為所述第二邏輯準位;以及在所述更新的訊息位元上啟用並執行所述第二錯誤校正碼操作。
- 如申請專利範圍第8項所述的記憶體裝置,其中所述第一錯誤校正碼操作基於4組漢明(12,8)碼運行,且所述第二錯誤校正碼操作基於1組BCH(50,32)碼運行。
- 如申請專利範圍第8項所述的記憶體裝置,其中所述控制器更配置以:提供第一寫入脈衝以在所述寫入操作期間將所述指示符寫入 所述記憶體裝置;以及提供第二寫入脈衝以在所述寫入操作期間將所述更新的訊息位元寫所述入記憶體裝置,其中所述第一寫入脈衝不同於所述第二寫入脈衝。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108130982A TWI723515B (zh) | 2019-08-29 | 2019-08-29 | 記憶體裝置及其資料存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108130982A TWI723515B (zh) | 2019-08-29 | 2019-08-29 | 記憶體裝置及其資料存取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202109545A TW202109545A (zh) | 2021-03-01 |
TWI723515B true TWI723515B (zh) | 2021-04-01 |
Family
ID=76035357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108130982A TWI723515B (zh) | 2019-08-29 | 2019-08-29 | 記憶體裝置及其資料存取方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI723515B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201001426A (en) * | 2008-06-24 | 2010-01-01 | Sandisk Il Ltd | Method and apparatus for error correction according to erase counts of a solid-state memory |
TW201423756A (zh) * | 2012-11-01 | 2014-06-16 | Samsung Electronics Co Ltd | 記憶體模組、具有該模組的記憶體系統、以及其讀取與寫入方法 |
US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
TWI512452B (zh) * | 2010-10-27 | 2015-12-11 | Lsi Corp | 資料儲存系統 |
US20160350187A1 (en) * | 2015-05-27 | 2016-12-01 | Quantum Corporation | Cloud-Based Solid State Device (SSD) With Dynamically Variable Error Correcting Code (ECC) System |
-
2019
- 2019-08-29 TW TW108130982A patent/TWI723515B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201001426A (en) * | 2008-06-24 | 2010-01-01 | Sandisk Il Ltd | Method and apparatus for error correction according to erase counts of a solid-state memory |
TWI512452B (zh) * | 2010-10-27 | 2015-12-11 | Lsi Corp | 資料儲存系統 |
US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
TW201423756A (zh) * | 2012-11-01 | 2014-06-16 | Samsung Electronics Co Ltd | 記憶體模組、具有該模組的記憶體系統、以及其讀取與寫入方法 |
US20160350187A1 (en) * | 2015-05-27 | 2016-12-01 | Quantum Corporation | Cloud-Based Solid State Device (SSD) With Dynamically Variable Error Correcting Code (ECC) System |
Also Published As
Publication number | Publication date |
---|---|
TW202109545A (zh) | 2021-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7137569B2 (ja) | 誤り訂正符号メモリ | |
US10963335B2 (en) | Data storage device and adaptive data-reading method thereof | |
US8589763B2 (en) | Cache memory system | |
US9323602B2 (en) | Error correction with extended CAM | |
US10521293B2 (en) | Memory device for performing parallel read-modify-write operation | |
US10592333B2 (en) | Dual-mode error-correction code/write-once memory codec | |
US20120079346A1 (en) | Simulated error causing apparatus | |
KR20170059219A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법 | |
US20190088349A1 (en) | Device for supporting error correction code and test method thereof | |
JP2005242797A (ja) | エラー訂正回路 | |
KR20170135691A (ko) | 복수의 데이터 비트와 복수의 어드레스 비트로 이루어진 블록용 에러 코드 발생장치 및 방법 | |
US9690649B2 (en) | Memory device error history bit | |
US9396064B2 (en) | Error correction with secondary memory | |
JP4793741B2 (ja) | 誤り訂正回路、誤り訂正方法 | |
CN110535476B (zh) | Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质 | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
CN114913900A (zh) | 静态ecc纠错的nand错误处理方法、装置、计算机设备及存储介质 | |
TW201921245A (zh) | 用於支持錯誤更正碼的裝置及其測試方法 | |
TWI723515B (zh) | 記憶體裝置及其資料存取方法 | |
US20170116060A1 (en) | Error location pointers for nvm | |
CN112540866B (zh) | 存储器装置及其数据存取方法 | |
US11088711B2 (en) | Memory apparatus and data accessing method thereof | |
US6711712B2 (en) | Method and apparatus for error detection/correction | |
CN115220790A (zh) | 数据处理方法、处理器以及电子设备 | |
CN114333968A (zh) | 存储器的控制方法、存储器控制器及电子装置 |