TWI779209B - 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法 - Google Patents

具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法 Download PDF

Info

Publication number
TWI779209B
TWI779209B TW108122762A TW108122762A TWI779209B TW I779209 B TWI779209 B TW I779209B TW 108122762 A TW108122762 A TW 108122762A TW 108122762 A TW108122762 A TW 108122762A TW I779209 B TWI779209 B TW I779209B
Authority
TW
Taiwan
Prior art keywords
memory
codeword
memory location
written
redundant
Prior art date
Application number
TW108122762A
Other languages
English (en)
Other versions
TW202101470A (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 TW108122762A priority Critical patent/TWI779209B/zh
Publication of TW202101470A publication Critical patent/TW202101470A/zh
Application granted granted Critical
Publication of TWI779209B publication Critical patent/TWI779209B/zh

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本揭露是有關於一種具有動態資料修復機制的記憶體存放裝置。記憶體存放裝置包含連接介面、記憶體陣列以及記憶體控制電路。記憶體控制電路至少進行以下操作:自連接介面接收包括用戶資料以及用戶資料的位址的寫入命令;將用戶資料編碼成包括用戶資料以及同位元的碼字;在記憶體陣列的第一記憶體位置中寫入所述碼字以作為寫入碼字;執行寫入碼字的讀取程序以判斷所述寫入碼字是否被錯誤寫入;以及響應於判斷寫入碼字被錯誤寫入,儲存用戶資料的冗餘碼字在第二記憶體位置中。

Description

具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法
本揭露是有關於一種具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法。
一般來說,可根據特定錯誤修正碼(error correcting codes;ECC)方案將待寫入到可重寫非易失性記憶體(non-volatile memory;NVM)的用戶資料編碼成碼字。碼字通常包含待存儲的用戶資料、對應於特定ECC方案的奇偶校驗位以及任選各種其它的旗標位元。讀取自可重寫非易失性記憶體的碼字還可通過對應解碼程式來處理以恢復為原始用戶資料。
當NVM接近生命週期結束時,在寫入過程期間可發生錯誤。當發生錯誤時NVM將需要一種方式來修復寫入在NVM上的用戶資料以延伸NVM的使用壽命。
當NVM仍在工廠進行測試時,如果檢測到錯誤,則可以實施沒有任何時間限制的重寫過程。此外,NVM可以在NVM仍在工廠時重寫整行或整列。
然而,一旦NVM離開工廠並且完全可操作,NVM就被工廠規格綁定,以在每次寫入週期期間在工廠規格內完成寫入過程。此外,重寫整行或整列不是一種選項,因為這樣做會抹除已經儲存的其他用戶資料。因此,NVM在完全可操作時使用的更複雜的資料修復機制可用於動態修復即時上的錯誤。
因此,本揭露是有關於一種具有動態資料修復機制和動態資料修復方法的記憶體存放裝置。
在一個方面,本揭露涉及一種具有動態資料修復機制的記憶體存放裝置,記憶體存放裝置包括從外部連接到主機系統的元件的連接介面;記憶體陣列;以及連接到所述連接介面以及所述記憶體陣列的記憶體控制電路,並至少配置為:自連接介面接收包括用戶資料以及用戶資料的位址的寫入命令;將用戶資料編碼成包括用戶資料以及同位元的碼字;在記憶體陣列的第一記憶體位置中寫入所述碼字以作為寫入碼字;執行寫入碼字的讀取程序以判斷寫入碼字是否被錯誤寫入;以及響應於判斷寫入碼字被錯誤寫入,儲存用戶資料的冗餘碼字在第二記憶體位置中。
在一個方面,本揭露涉及一種使用記憶體存放裝置執行動態資料修復的方法,所述方法包括:自連接介面接收包括用戶資料以及用戶資料的位址的寫入命令;將用戶資料編碼成包括用戶資料以及同位元的碼字;在記憶體陣列的第一記憶體位置中寫入所述碼字以作為寫入碼字;執行寫入碼字的讀取程序以判斷寫入碼字是否被錯誤寫入;以及響應於判斷寫入碼字被錯誤寫入,儲存用戶資料的冗餘碼字在第二記憶體位置中。
為了使上述特徵和本揭露的優點易於理解,下面將詳細描述伴隨圖的示例性實施例。應理解,前面的一般性描述和以下的詳細描述都是示例性的,並且旨在對要求保護的本揭露內容進行進一步說明。
然而,應該理解,該概述可以不包含本揭露的所有方面和實施例,因此不意味著以任何方式進行限製或限制。而且,本揭露將包括對本領域技術人員顯而易見的改進和修飾。
現將詳細地對本發明的目前優選實施例進行參考,其實例在附圖中加以說明。只要可能,相同的參考標號在附圖及描述中用以指代相同或相似部分。
為了滿足上述挑戰,本揭露在記憶體存放裝置完全可操作之後提供用於記憶體存放裝置的資料修復機制以便即時地動態修復錯誤。由於記憶體存放裝置已經離開工廠並且完全可操作,因此記憶體存放裝置必須能夠在根據工廠規格定義的預定時間內完成寫入操作。因此,如果記憶體存放裝置遇到錯誤,則記憶體存放裝置必須能夠在不影響正常操作的情況下於預定時間內修復錯誤,以使得其符合規格設置的標準。
通常,在記憶體存放裝置離開工廠並且完全可操作之後,很難檢測到記憶體存放裝置是否有任何故障記憶單元,除非執行寫入操作跟隨著隨後的讀取操作。為了檢測寫入操作中的錯誤,將需要隨後的讀取操作,否則不能得知錯誤。如果記憶體存放裝置仍在工廠,則在錯誤的情況下可以執行重寫入操作,而不受產品規格的限制。即使檢測到錯誤,也可能難以按照產品規格的要求在預定期間內修復錯誤。
然而,本揭露提供在記憶體存放裝置的動態修復錯誤的即時解決方案。發明概念中的一個包括在特定錯誤修正碼(ECC)方案下通過編碼用戶資料和同位元執行寫入操作到碼字中,然後將其寫入記憶體位置。在寫入操作完成之後,執行讀取操作以驗證寫入操作已成功寫入碼字。換句話說,寫入記憶體位置的用戶資料應與其原始值匹配,否則發生錯誤。在讀取操作已經顯示寫入操作未將碼字成功寫入記憶體位置的情況下,記憶體存放裝置將嘗試修復操作以修復錯誤。修復操作應在產品規格定義的預定時間之前完成。預定時間是寫入操作的上限。因此,無論是否執行修復操作,寫入操作必須在預定時間之前完成。
為了完成對於已經離開工廠並且正由用戶使用的記憶體存放裝置在預定時間之前的寫入操作,本揭露提供是在即時上動態修復記憶體存放裝置的機制。修復機制涉及以每個字為基礎修復記憶體存放裝置。通常,修復操作將涉及替換整行或整列。然而,一旦記憶體存放裝置由用戶使用中時這麼做是不實際的,因為這將抹除現有的用戶資料。在寫入操作失敗之後,該機制將涉及將碼字在每個字基礎上寫入到不同於先前位置的另一位置。換句話說,碼字將以一個單元被寫入資料字中的冗餘碼字的另一位置。冗餘碼字可以包括用戶資料的部分位址以及用戶資料的完整位址。
用戶資料的位址或部分位址是否儲存在與冗餘碼字相同的碼字下或是與其不相關,可取決於位址是否適合相同的碼字。如果位址太長並且超過冗餘碼字的長度,那麼位址將被儲存為單獨的碼字。此外,只要可以找到用戶資料的位置,就不必儲存用戶資料的整個位址。如果沒有記錄但可以知道用戶資料的區塊位址、行位址或列位址,則部分位址可能就足夠了。例如,如果用戶資料的位址儲存在與冗餘碼字相同的行中,則可能不需要用戶資料的行位址,因為行位址是已知的。如果用戶資料的位址儲存在與碼字相同的列或相同的區塊中,則應用相同的基本原理。
為了解釋上述發明概念,本揭露提供具有動態資料修復機制和的記憶體存放裝置以及用於記憶體存放裝置的動態資料修復方法。本揭露提供如圖1所示的記憶體存放裝置。參考圖1,記憶體存放裝置100包括連接介面110、記憶體控制電路130和記憶體陣列150。在一個實施例中,記憶體存放裝置100是可重寫的非易失性記憶體,而記憶體陣列150包括多個可重寫的非易失性記憶體單元。
在一個實施例中,連接介面110配置成通過串列高級技術附件(Serial Advanced Technology Attachment;SATA)標準來連接到主機系統(未繪示)的元件。在其它實施例中,連接介面110可遵從平行高級技術附件(Parallel Advanced Technology Attachment;PATA)標準、電氣與電子工程師協會(Institute of Electrical and Electronic Engineers;IEEE)1394標準或其它合適的標準,本發明不限於此。在一個實施例中,連接介面110可與記憶體控制電路單元130一起封裝在一個晶片中或置於具有記憶體控制電路單元130的晶片外部。
記憶體控制電路130連接到連接介面110和記憶體陣列150,且配置成執行以硬體形式或以韌體形式實施的多個邏輯閘或控制命令且在記憶體陣列150中根據主機系統的命令來執行如數據寫入、讀取或抹除的操作。
在一個實施例中,記憶體存放裝置100是採用ECC方案的可重寫NVM,其中記憶體控制電路130進一步包含ECC編碼器131,所述ECC編碼器用於編碼通過連接介面110接收的資料字從而產生隨後將此碼字寫入到相同的記憶體陣列150中。記憶體陣列150連接到包含多個記憶體單元(例如,可重寫非易失性記憶體單元)的記憶體控制電路130。在一個實施例中,主機系統將寫入命令傳輸到記憶體存放裝置100以將資料寫入到其上,且接著回應於寫入命令,記憶體控制電路130將寫入資料編碼成碼字且將碼字存儲在記憶體陣列150中。
在示例性實施例中的一個中,記憶體控制電路130可配置成至少從連接介面110接收包含位址和資料的寫入命令。接著,記憶體控制電路130下具有同位元的用戶資料可由記憶體控制電路130編碼作為碼字。記憶體控制電路130在記憶體陣列150的第一記憶體位置中可寫入碼字,作為寫入碼字;記憶體控制電路130可執行寫入碼字的讀取程序以判斷寫入碼字是否被錯誤寫入。響應於已經判斷寫入碼字被錯誤寫入,記憶體控制電路130將以每個字為基礎儲存用戶資料的冗餘碼字在第二記憶體位置中。用戶資料的位址是用戶資料的字線位址。以每個字為基礎儲存的意思是,用戶資料以一個單元儲存在單碼字中,而不是以一個單元儲存在記憶體陣列150的整行或整列中,因此即時的動態資料修復將以一個單元修復一個字資料,以使得記憶體存放裝置能夠按照工廠規格的要求完成寫入操作。
記憶體控制電路130基於是否已經超過預定義的位元錯誤數以判斷寫入碼字是否被錯誤寫入。基於所使用的特定EEC方案,預定義的位元錯誤數可以是例如從1位元到4位元的數。如果超過了預定義的位元錯誤數,則認為對第一記憶體位置的寫入操作失敗。
如果記憶體控制電路130已經判斷寫入碼字被錯誤寫入,那麼記憶體控制電路130可透過使用強寫入操作來重寫第一記憶體位置,該強寫入操作涉及長寫入時間、更高寫入電壓和/或更高讀取驗證電平。另外,如果記憶體控制電路130已經判斷寫入的碼字被錯誤寫入,則在必須基於記憶體存放裝置100的產品規格所需的預定時間完成寫入操作之前需要完成儲存冗餘碼字。
響應於連接介面110接收另一命令,可以暫停記憶體存放裝置100的整個寫入操作。在接收或實施另一命令之後,可以恢復寫入操作。
如果第一記憶體位置的位元已損壞,則冗餘碼字的用戶資料可用作旗標或奇偶校驗,表示冗餘碼字的存在或第一記憶體位置已損壞。如果第一記憶體位置再次變好,那麼儲存冗餘碼字的第二記憶體位置可被釋放以用於其他用途。第一記憶體位置是否再次變好可以通過從第一記憶體位置讀取內容以與要寫入第一記憶體位置的預期原始內容進行比較來判斷。此外,一旦第一記憶體位置被損壞以使進入第一記憶體位置的寫入操作故障,則可以通過應用在冗餘碼字上的恢復演算法來恢復寫入碼字。當儲存器存放裝置100處於功率上升操作期間或當儲存器存放裝置100處於閒置狀態而正在接收恢復命令時,可以應用恢復演算法。
寫入冗餘碼字到第二記憶體位置可以在易失性記憶體或記憶體陣列150中進行。如果第一記憶體位置的錯誤導致寫入操作不能在產品規格所要求的預定時間內完成,那麼冗餘碼字可以儲存到易失性記憶體中以在將來傳輸到記憶體陣列150。否則,寫入冗餘碼字到第二記憶體位置將發生在記憶體陣列150中。可以在儲存器存放裝置100正常操作或處於斷電過程時寫入冗餘碼字到第二記憶體位置。
圖2是說明根據本揭露的示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的流程圖。在步驟S201中,記憶體控制電路130自連接介面接收包括用戶資料的寫入命令。在步驟S202中,記憶體控制電路130將用戶資料編碼成包括用戶資料以及同位元的碼字。在步驟S203中,記憶體控制電路130在記憶體陣列150的第一記憶體位置中寫入所述碼字以作為寫入碼字。在步驟S204中,記憶體控制電路130執行寫入碼字的讀取程序以判斷寫入碼字是否被錯誤寫入。在步驟S205中,響應於判斷寫入碼字被錯誤寫入,記憶體控制電路130以每個字為基礎儲存用戶資料的冗餘碼字在第二記憶體位置中。
值得注意的是,用於記憶體存放裝置的執行動態資料修復方法是實施於所述記憶體存放裝置結束製造之後,且已經由用戶使用了。在示例性實施例中的一個,冗餘碼字的儲存還將包含儲存用戶資料的位址,且位址可以是第一記憶體位置的字線位址。冗餘碼字以逐字為基礎儲存而不是整行或列儲存。位址可以是部分位址或完整位址。如果位址是部分位址,則位址可以是行位址、列位址或區塊位址。位址可以在冗餘碼字內一起儲存或者與冗餘碼字分開儲存。位址是儲存在冗餘碼字內還是與冗餘碼字分開可以基於位址和用戶資料是否可適合在相同的寫入碼字內或相同的冗餘碼字內。冗餘碼字的內容可以與寫入碼字相同。冗餘碼字的位址可由EEC編碼或不由EEC編碼。
在示例性實施例中的一個中,執行寫入的碼字的讀取程序以判斷寫入的碼字是否被錯誤寫入將包括判斷來自讀取程序的位元錯誤數是否超過預定數。如果位元錯誤數超過預定數,則可以認為寫入的碼字被錯誤寫入。
在示例性實施例中的一個中,動態資料修復的方法可以在自連接介面接收命令時暫停,該另一命令可能操作動態資料修復的方法,如同將冗餘碼字儲存在第二記憶體位置的操作。
在示例性實施例之一中,只要儲存器存放裝置需要存取寫入碼字或冗餘碼字的內容,就可以同時讀取第一記憶體位置和第二記憶體位置。
圖3是說明根據本揭露的第一示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。參考圖3,假設記憶體控制電路(例如記憶體控制電路130)實施由 BCH(50,32,7) 修改的ECC編碼器303,其中假設ECC編碼器303將資料字編碼為碼字。例如,資料字可以是32位元,碼字可以是50位元。碼字可以包含資料字(即用戶資料)、同位元和可選的一些旗標位元。在接收到寫入資料命令時,ECC編碼器303將使用特定ECC碼將資料字編碼為50位元碼字。在將50位元碼字寫入記憶體陣列(例如記憶體陣列150)的第一記憶體位置時,記憶體控制電路(例如記憶體控制電路130)將執行讀取驗證程序以判斷已寫入的50位元碼字的資料完整性。
假設記憶體陣列(例如記憶體陣列150)接近其生命週期結束,那麼位元錯誤將可能發生。如果50位元碼字寫入到第一記憶體位置失敗,那麼記憶體控制電路(例如記憶體控制電路130)將嘗試到儲存冗餘資料字至第二記憶體位置中,以編碼成為50位元冗餘碼字。對於這個示例性實施例,冗餘資料字可包含用戶資料301和位址位元302,以指出用戶資料301的位置,假設用戶資料301和位址位元302都適應在相同的32位信息位元。換句話說,32位元的冗餘資料字(301及302)將包含原始用戶資料301的複製資料字結合用戶資料301的至少一部分或全部的位址位元302。而後上述冗餘資料字(301及302)可通過特定的ECC碼進行編碼,其可以是如範例所示的BCH編碼器/解碼器303。冗餘資料字(301及302)將被編碼入冗餘碼字中,冗餘碼字包含冗餘資料字304的位元和同位元305的位元。冗餘碼字(304及305)可以是50位元或是更多位元,也可由BCH編碼器/解碼器303解碼以復原冗餘資料字(301及302)。
在另一種變化中,冗餘資料字的位址位元302不由編碼器303編碼,因此冗餘碼字(304 及305)的位址位元將未由編碼器303編碼。在另一種變化中,冗餘碼字(304 及305)的位址位元將是用戶資料301的行位址、列位址或區塊位址,因為只要可以僅使用部分地址找到第一記憶體位置,就不需要用戶資料301的完整位址。
圖4是說明根據本揭露的示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。在步驟S401中,記憶體存放裝置(例如記憶體存放裝置100)將通過連接介面(例如連接介面110)接收寫入命令,其包括待寫入在記憶體陣列(例如記憶體陣列150)的信息位元或資料字以及待寫入的資料字的位址。位址將指示記憶體陣列(例如記憶體陣列150)用於寫入資料字的位置。可從元件接收寫入命令,例如主機的中央處理器、行動電話、筆記型電腦、PC等的用戶端裝置。在接收到寫入命令之後,在步驟S402中,通過記憶體控制電路(例如記憶體控制電路130)實施的ECC編碼器(例如ECC編碼器131或ECC編碼器320)將配置成根據ECC編碼器(例如ECC編碼器131或ECC編碼器320)所使用的特定ECC方案將資料字編碼成碼字。接下來,在步驟S403中,記憶體控制電路(例如記憶體控制電路130)將配置成通過將可變迴圈數的值設定為零來使可變迴圈數初始化。接下來,在步驟S404中,記憶體控制電路(例如記憶體控制電路130)將配置成執行寫入操作以將碼字寫入到記憶體陣列(例如記憶體陣列150)中且隨後對已寫入到記憶體陣列(例如記憶體陣列150)中的碼字執行讀取操作以評估碼字的完整性。每一碼字以字為單元被寫入。
在評估寫入碼字的完整性之後,在步驟S405中,記憶體控制電路(例如記憶體控制電路130)將配置為判斷寫入碼字是否已通過完整性檢查。如果寫入碼字已通過完整性檢查,則在步驟S406中,認定碼字被成功寫入。
在步驟S407中,假設寫入碼字未通過完整性檢查如位元錯誤數超過預定數時,則記憶體控制電路(例如記憶體控制電路130)將配置為判斷可變迴圈數是否已達到預定最大循環數值。如果可變迴圈數尚未達到預定最大循環數值,那麼在步驟S408中,可變迴圈數的值將逐一遞增,且程式將從步驟S404繼續。如果可變迴圈數已達到預定最大循環數值,即讀寫迭代數已經超過最大循環數值所定義的最大值,那麼在步驟S409中,記憶體控制電路(例如記憶體控制電路130)將配置為判斷來自寫入碼字的錯誤位元數目是否已超出ECC位元的最大數目或是否已超出錯誤檢測位元的最大數目。如果來自寫入碼字的錯誤位元數目小於或等於ECC位元的最大數目且也小於或等於錯誤檢測位元的最大數目,則不會觸發動態資料修復的方法。但是,如果在步驟S409中,來自寫入碼字的錯誤位元的數大於ECC位元的最大數目或大於錯誤檢測位元的最大數目,則在步驟S410中,將執行動態資料修復的方法。此外,在步驟S410中,從寫入命令接收的資料字將被複製為冗餘字。
圖5是說明根據本揭露的第二示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。參看圖5,假設記憶體控制電路(例如記憶體控制電路130)基於BCH (50, 32, 7)編碼器/解碼器505實施ECC方案,將32位元資料字(即用戶資料)編碼至已編碼碼字(可以是類似圖3的50位元碼字)。一旦接收寫入資料命令,ECC編碼器303將使用特定ECC碼將32位元資料字編碼成50位元碼字,於此範例中是BCH編碼器/解碼器505。碼字將包含至少資料字和同位元。在寫入碼字之後,記憶體控制電路(例如記憶體控制電路130)可執行讀取校驗程式以判斷碼字的資料完整性。
或者,與圖3的示例相反,圖5的這個示例所示的記憶體存放裝置可以編碼並隨後儲存用戶資料501和用戶資料501的位址503為兩個單獨的碼字(506/507以及508/509)。如果用戶資料501和用戶資料501的位址503不能放入相同的冗餘碼字,則該示例性實施例優於圖3的示例性實施例。假設是這種情況,編碼器505將用戶資料501編碼入儲存在第二記憶體位置的冗餘碼字(506及507)。冗餘碼字將包括用戶資料506和同位元507,並且用戶資料506理論上會與原始用戶資料501匹配。用戶資料501的位址503將由編碼器505編碼入冗餘位址碼字(508及509),冗餘位址碼字(508及509)儲存在與冗餘碼字(506及507)分開的在第三記憶體位置中。冗餘位址碼字包含匹配原始位址503的位址508以及相應的同位元509。
記憶體控制電路(例如記憶體控制電路130)可判斷第一記憶體位置是否再次有效。如果第一記憶體位置視為有效的,那麼包含冗餘碼字(506及507)的第二記憶體位置以及包含冗餘位置碼字(508及509)的第三記憶體位置將被釋放並用於不同的用途。
在另一種變化中,用戶資料501的位址位元503不由編碼器505編碼,因此位址位元503未由編碼器編碼。在另一種變化中,位址位元503可以是用戶資料501的行位址、列位址或區塊位址,因為只要可以僅使用部分位址找到第一記憶體位置,就不需要原始用戶資料501的完整位址。
有鑑於前述描述,本揭露適合在記憶體存放裝置中使用,並且在記憶體存放裝置已經運行之後,於產品規格所需的時間窗口內動態地修復儲存在記憶體存放裝置中的資料錯誤。如此一來,記憶體存放裝置可以動態修復錯誤而不影響產品效能。
除非明確地如此描述,否則在本揭露的公開實施例的詳細描述中使用的元件、動作或指令應當被解釋為絕對重要的或本揭露必不可少的。而且,如這裡所使用的,每個不定冠詞「一」和「一個」可以包括一個以上的物品。如果僅打算使用一個項目,則將使用術語「單一」或類似語言。此外,如本文所使用的術語「任何」後面是多個項目和/或多個類別的項目的列表旨在包括「任何」、「任何組合」、「任何倍數」和/或「物品的倍數和/或物品類別的任意組合、單獨或與其他物品和/或其他類別的物品一起使用」。此外,如這裡所使用的,術語「組」旨在包括任何數個項目,包括零。此外,如本文所用,術語「數」旨在包括任何數,包括零。
對於所屬領域的技術人員將顯而易見的是,在不脫離本發明的範圍或精神的情況下可對本發明的結構進行各種修改以及變化。鑒於前述內容,希望本發明涵蓋屬於所附權利要求書和其等效物的範圍內的本發明的修改及變化。
100:記憶體存放裝置 110:連接介面 130:記憶體控制電路 131:ECC編碼器 150:記憶體陣列 301:用戶資料 302:位址位元 303、505:BCH編碼器/解碼器 304:冗餘資料字 305:同位元 501:冗餘資料字 503:位址 506、507:冗餘碼字 508、509:冗餘位址碼字 S201~S205、S401~S410:步驟
圖1是說明根據本揭露的示範性實施例繪示的具有動態資料修復機制的記憶體存放裝置的示意區塊圖。 圖2是說明根據本揭露的示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的流程圖。 圖3是說明根據本揭露的第一示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。 圖4是說明根據本揭露的示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。 圖5是說明根據本揭露的第二示範性實施例繪示的用於記憶體存放裝置的動態資料修復方法的示意圖。
S201~S205:步驟

Claims (15)

  1. 一種記憶體存放裝置,具有動態資料修復機制,所述記憶體存放裝置包括:連接介面,外部連接到主機系統的元件;記憶體陣列,包括第一記憶體位置及第二記憶體位置;以及記憶體控制電路,連接到所述連接介面以及所述記憶體陣列且配置成至少進行以下操作:自所述連接介面接收包括用戶資料以及所述用戶資料的位址的寫入命令;將所述用戶資料編碼成包括所述用戶資料以及同位元的碼字;在所述第一記憶體位置中寫入所述碼字以作為寫入碼字;執行所述寫入碼字的讀取程序以判斷所述寫入碼字是否被錯誤寫入;以及響應於判斷所述寫入碼字被錯誤寫入,以每個字為基礎暫時儲存所述用戶資料的冗餘碼字在所述第二記憶體位置中,其中所述第二記憶體位置為響應於所述寫入命令無法在基於工廠規格的所需時間內完成的易失性記憶體,或者,所述第二記憶體位置為響應於所述寫入命令能夠在基於所述工廠規格的所述所需時間內完成的所述記憶體陣列的部分。
  2. 如申請專利範圍第1項所述的記憶體存放裝置,其中儲存所述用戶資料的所述冗餘碼字在所述第二記憶體位置中包括:儲存所述位址的部分在所述第二記憶體位置中。
  3. 如申請專利範圍第1項所述的記憶體存放裝置,其中儲存所述用戶資料的所述冗餘碼字在所述第二記憶體位置中包括:儲存所述位址的全部在所述第二記憶體位置中。
  4. 如申請專利範圍第2項所述的記憶體存放裝置,其中儲存所述部分位址在所述第二記憶體位置中包括:儲存所述部分位址在與所述冗餘碼字分開的位置。
  5. 如申請專利範圍第2項所述的記憶體存放裝置,其中儲存所述部分位址在所述第二記憶體位置中包括:儲存所述部分位址在所述冗餘碼字中。
  6. 如申請專利範圍第1項所述的記憶體存放裝置,其中所述記憶體控制器電路配置為執行所述寫入碼字的所述讀取程序以判斷所述寫入碼字是否被錯誤寫入包括:判斷所述讀取程序中的錯誤位元數是否超過預定數;以及響應於判斷所述錯誤位元數已超過所述預定數,確認所述寫入碼字被錯誤寫入。
  7. 如申請專利範圍第1項所述的記憶體存放裝置,其中所述記憶體控制器電路進一步配置為:執行儲存在所述記憶體陣列的所述第一記憶體位置的所述寫入碼字的另一讀取程序;以及 響應於判斷所述另一讀取程序尚未失敗,釋放所述第二記憶體位置。
  8. 如申請專利範圍第1項所述的記憶體存放裝置,其中在所述記憶體陣列中的所述第一記憶體位置已損壞的情況下,將所述冗餘碼字的所述用戶資料用作旗標或奇偶校驗,以表示所述的存在或所述第一記憶體位置已損壞,並且,記憶體控制電路還配置以進行以下操作:在所述第一記憶體位置已損壞的情況下,通過從所述第一記憶體位置中所讀取的內容以與要寫入所述第一記憶體位置的預期原始內容進行比較來判斷所述第一記憶體位置是否再次變好,當判斷所述第一記憶體位置再次變好時,釋放儲存所述冗餘碼字的所述第二記憶體位置,在所述第一記憶體位置已損壞的情況下,通過應用在所述冗餘碼字上的恢復演算法來恢復所述寫入碼字,其中,所述碼字、所述寫入碼字與所述冗餘碼字的容量是50位元。
  9. 如申請專利範圍第1項所述的記憶體存放裝置,其中所述記憶體控制器電路配置為儲存所述冗餘碼字更包括:自所述連接介面接收另一命令;以及響應於接收所述另一命令,暫停儲存所述冗餘碼字。
  10. 一種使用記憶體存放裝置執行動態資料修復的方法,所述方法包括: 自連接介面接收包括用戶資料以及所述用戶資料的位址的寫入命令;將所述用戶資料編碼成包括所述用戶資料以及同位元的碼字;在記憶體陣列的第一記憶體位置中寫入所述碼字以作為寫入碼字;執行所述寫入碼字的讀取程序以判斷所述寫入碼字是否被錯誤寫入;以及響應於判斷所述寫入碼字被錯誤寫入,儲存所述用戶資料的冗餘碼字在所述記憶體陣列的第二記憶體位置中,其中響應於判斷所述寫入碼字被錯誤寫入,儲存所述用戶資料的所述冗餘碼字在所述第二記憶體位置中包括:以每個字為基礎暫時儲存所述用戶資料的所述冗餘碼字在所述第二記憶體位置中,所述第二記憶體位置為響應於所述寫入命令無法在基於工廠規格的所需時間內完成的易失性記憶體;或者以所述每個字為基礎儲存所述用戶資料的所述冗餘碼字在所述第二記憶體位置中,所述第二記憶體位置為響應於所述寫入命令能夠在基於所述工廠規格的所述所需時間內完成的所述記憶體陣列的部分。
  11. 如申請專利範圍第10項所述的方法,更包括:儲存所述位址的部分在所述第二記憶體位置中。
  12. 如申請專利範圍第11項所述的方法,其中儲存所述部分位址在所述第二記憶體位置中包括:儲存所述部分位址在與所述冗餘碼字分開的位置。
  13. 如申請專利範圍第11項所述的方法,其中儲存所述部分位址在所述第二記憶體位置中包括:儲存所述部分位址在所述冗餘碼字中。
  14. 如申請專利範圍第10項所述的方法,其中執行所述寫入碼字的所述讀取程序以判斷所述寫入碼字是否被錯誤寫入包括:判斷所述讀取程序中的錯誤位元數是否超過預定數;以及響應於判斷所述錯誤位元數已超過所述預定數,確認所述寫入碼字被錯誤寫入。
  15. 如申請專利範圍第10項所述的方法,還包括:在所述記憶體陣列中的所述第一記憶體位置已損壞的情況下,將所述冗餘碼字的所述用戶資料用作旗標或奇偶校驗,以表示所述的存在或所述第一記憶體位置已損壞;在所述第一記憶體位置已損壞的情況下,通過從所述第一記憶體位置中所讀取的內容以與要寫入所述第一記憶體位置的預期原始內容進行比較來判斷所述第一記憶體位置是否再次變好;當判斷所述第一記憶體位置再次變好時,釋放儲存所述冗餘碼字的所述第二記憶體位置;以及在所述第一記憶體位置已損壞的情況下,通過應用在所述冗 餘碼字上的恢復演算法來恢復所述寫入碼字,其中,所述碼字、所述寫入碼字與所述冗餘碼字的容量是50位元。
TW108122762A 2019-06-28 2019-06-28 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法 TWI779209B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW108122762A TWI779209B (zh) 2019-06-28 2019-06-28 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW108122762A TWI779209B (zh) 2019-06-28 2019-06-28 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法

Publications (2)

Publication Number Publication Date
TW202101470A TW202101470A (zh) 2021-01-01
TWI779209B true TWI779209B (zh) 2022-10-01

Family

ID=75234523

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108122762A TWI779209B (zh) 2019-06-28 2019-06-28 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法

Country Status (1)

Country Link
TW (1) TWI779209B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW512357B (en) * 2001-06-21 2002-12-01 Kuen-Sheng Shiu DRAM with automatic inspection and repair functions
CN101329918A (zh) * 2008-07-30 2008-12-24 中国科学院计算技术研究所 存储器内建自修复系统及自修复方法
CN101414480A (zh) * 2007-10-19 2009-04-22 财团法人工业技术研究院 相变存储单元控制装置及增加相变存储单元可靠度的方法
TW201432702A (zh) * 2012-12-27 2014-08-16 Lsi Corp 經由冗餘陣列之非揮發性記憶體程式錯誤修復
WO2016044265A1 (en) * 2014-09-16 2016-03-24 Kove Ip, Llc Dynamically provisionable and allocatable external memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW512357B (en) * 2001-06-21 2002-12-01 Kuen-Sheng Shiu DRAM with automatic inspection and repair functions
CN101414480A (zh) * 2007-10-19 2009-04-22 财团法人工业技术研究院 相变存储单元控制装置及增加相变存储单元可靠度的方法
CN101329918A (zh) * 2008-07-30 2008-12-24 中国科学院计算技术研究所 存储器内建自修复系统及自修复方法
TW201432702A (zh) * 2012-12-27 2014-08-16 Lsi Corp 經由冗餘陣列之非揮發性記憶體程式錯誤修復
WO2016044265A1 (en) * 2014-09-16 2016-03-24 Kove Ip, Llc Dynamically provisionable and allocatable external memory

Also Published As

Publication number Publication date
TW202101470A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
TWI522804B (zh) 快閃記憶體控制器以及資料儲存裝置以及快閃記憶體控制方法
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US8726126B2 (en) Non-regular parity distribution detection via metadata tag
US9043678B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
US8397107B1 (en) Data storage device employing data path protection using both LBA and PBA
US8635510B2 (en) Non-systematic coded error correction
US20070170268A1 (en) Memory cards, nonvolatile memories and methods for copy-back operations thereof
US8645776B2 (en) Run-time testing of memory locations in a non-volatile memory
US7613982B2 (en) Data processing apparatus and method for flash memory
US7450436B2 (en) Device recoverable purge for flash storage device
US8341491B2 (en) System and method for providing data integrity in a non-volatile memory system
TW201911329A (zh) 資料寫入方法及使用其的記憶體儲存裝置
KR20100082710A (ko) 데이터 메모리 디바이스 및 인터페이스 에러 검출 및 처리 논리를 갖는 제어기
US20080072119A1 (en) Allowable bit errors per sector in memory devices
TW201543496A (zh) 資料處理方法、記憶體控制電路單元以及記憶體儲存裝置
US11010245B2 (en) Memory storage apparatus with dynamic data repair mechanism and method of dynamic data repair thereof
US20200159613A1 (en) Device and method for generating error correction information
TWI779209B (zh) 具有動態資料修復機制的記憶體存放裝置及其動態資料修復的方法
CN112151104B (zh) 存储器存放装置及其动态数据修复的方法
CN111124742B (zh) Flash数据校验方法及Flash控制器、存储介质、设备
US20070088905A1 (en) System and method for purging a flash storage device
US20070101049A1 (en) Redundant purge for flash storage device
CN111712803A (zh) 在存储器系统处存储关键数据
KR102404257B1 (ko) 에러보정코드를 이용한 오류보정 기능을 가지는 비동기용 대용량 메모리 모듈 및 에러보정코드를 이용한 비동기용 대용량 메모리 모듈의 오류보정방법
US20070101048A1 (en) Verified purge for flash storage device

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent