TW201921245A - 用於支持錯誤更正碼的裝置及其測試方法 - Google Patents
用於支持錯誤更正碼的裝置及其測試方法 Download PDFInfo
- Publication number
- TW201921245A TW201921245A TW107133098A TW107133098A TW201921245A TW 201921245 A TW201921245 A TW 201921245A TW 107133098 A TW107133098 A TW 107133098A TW 107133098 A TW107133098 A TW 107133098A TW 201921245 A TW201921245 A TW 201921245A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- error
- memory
- bit
- correction code
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一種根據本發明概念的實例性實施例的支持用於記憶體測試的測試模式的裝置可包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生寫入資料並藉由更正接收資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將讀取資料提供至錯誤更正碼引擎作為接收資料,並在測試模式中將藉由對讀取資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至錯誤更正碼引擎作為接收資料。
Description
本發明概念是有關於用於支持錯誤更正碼的裝置,且更具體而言是有關於用於支持錯誤更正碼的裝置及/或其測試方法。
錯誤更正碼(error correction code,ECC)系統可用於更正在已通過有雜訊通道(noisy channel)的資料中出現的錯誤。舉例而言,錯誤更正碼系統可用於更正在經由通訊通道接收到的資料中出現的錯誤,或可用於更正在自記憶體讀取的資料中出現的錯誤。根據錯誤更正碼系統,可產生對原始資料添加冗餘的碼字,且可藉由更正在已通過有雜訊通道的資料中出現的錯誤來恢復所述原始資料。錯誤更正碼系統可具有可更正錯誤數量,且可更正錯誤數量愈大,用以實施錯誤更正碼系統的資源便愈多,且被添加至錯誤更正碼的冗餘亦可增加。因此,可出現於有雜訊通道中的錯誤的數量可僅限於給定錯誤更正碼系統可更正的錯誤數量範圍。舉例而言,若有雜訊通道是錯誤更正碼系統中的記憶體,則可需要驗證可能出現於記憶體中的錯誤數量是否處於給定錯誤更正碼系統可更正的錯誤數量的範圍內。
本發明概念提供用於支持錯誤更正碼(ECC)的裝置,且更具體而言提供用於支持錯誤更正碼以容易地判斷有雜訊通道是否具有錯誤更正碼系統可更正的錯誤數量範圍的裝置及/或其測試方法。
根據實例性實施例,一種支持用於記憶體測試的測試模式的裝置可包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生所述寫入資料並藉由更正接收資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將所述讀取資料提供至所述錯誤更正碼引擎作為所述接收資料,並在所述測試模式中將藉由對所述讀取資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述錯誤更正碼引擎作為所述接收資料。
根據實例性實施例,一種支持用於記憶體測試的測試模式的裝置可包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生經編碼資料並藉由更正所述讀取資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將所述經編碼資料提供至所述記憶體作為所述寫入資料,並在所述測試模式中將藉由對所述經編碼資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述記憶體作為所述寫入資料。
根據實例性實施例,一種對包括錯誤更正碼(ECC)引擎及記憶體且被配置成更正N位元或少於N位元的錯誤位元的裝置進行測試的方法(其中N是正整數)可包括:藉由由所述錯誤更正碼引擎對輸入資料進行編碼而產生寫入資料;將所述寫入資料寫入所述記憶體中,讀取所述寫入資料,並輸出讀取資料;以及藉由由所述錯誤更正碼引擎更正所述讀取資料的錯誤而產生輸出資料,其中所述寫入所述寫入資料及所述輸出所述讀取資料包括:將所述寫入資料及所述讀取資料中的至少一者中的少於N位元的至少一個位元反轉。
圖1是根據本發明概念的實例性實施例用於支持錯誤更正碼(ECC)的裝置10的方塊圖。更詳細而言,圖1示出包括記憶體300的裝置10,記憶體300是錯誤更正碼系統中的有雜訊通道。如圖1中所示,裝置10可包括錯誤更正碼引擎100、錯誤插入電路200及/或記憶體300。
裝置10可以是包括用於儲存輸入資料D_IN並使用所儲存的資料作為輸出資料D_OUT的記憶體300的任何裝置10。在一些實例性實施例中,裝置10可以是但不限於系統晶片(system-on-chip,SoC),諸如應用處理器(AP)。在一些實例性實施例中,裝置10可以是但不限於用於根據外部命令而儲存輸入資料D_IN並輸出輸出資料D_OUT的半導體記憶體裝置,諸如動態隨機存取記憶體(dynamic random access memory,DRAM)、快閃記憶體等。在一些實例性實施例中,裝置10可以是但不限於用於因應於主機請求而儲存輸入資料D_IN並輸出輸出資料D_OUT的記憶體系統,諸如固態驅動器(solid state drive,SSD)、記憶卡等。
錯誤更正碼引擎100可藉由對輸入資料D_IN進行編碼而產生經編碼資料D_ENC,並可藉由對接收資料D_RX進行解碼而產生輸出資料D_OUT。裝置10中的記憶體300可能是有雜訊通道。舉例而言,雜訊出現的原因可能是但不限於:在記憶體300中儲存資料的記憶體胞元有缺陷,及/或設置於記憶體300中的寫入資料D_WR的移動路徑或自記憶體300所輸出的讀取資料D_RD的移動路徑有缺陷。裝置10可包括錯誤更正碼引擎100,且錯誤更正碼引擎100可藉由對將儲存於記憶體300中的輸入資料D_IN添加冗餘而產生經編碼資料D_ENC,且可藉由基於自記憶體300接收到的接收資料D_RX中的冗餘來更正錯誤而產生輸出資料D_OUT。在一些實例性實施例中,可以碼字為單位將經編碼資料D_ENC提供至記憶體300,所述碼字包括輸入資料D_IN(或自輸入資料D_IN產生的資料)的一部分及冗餘。
錯誤更正碼引擎100可以各種方式執行編碼及解碼。舉例而言,錯誤更正碼引擎100可基於但不限於錯誤更正碼(諸如,AN碼、BCH碼、漢明(Hamming)碼、極化碼(Polar code)、Turbo碼等)來執行編碼及解碼。在一些實例性實施例中,錯誤更正碼引擎100可包括處理器及用於儲存由處理器執行的指令的記憶體,或者在一些實例性實施例中可包括藉由邏輯合成而設計的邏輯電路。
錯誤更正碼引擎100可具有可更正錯誤數量。舉例而言,當錯誤更正碼引擎100是根據2位元更正型錯誤更正碼系統來設計時,錯誤更正碼引擎100可偵測並更正接收資料D_RX中少於或等於2個位元的錯誤,舉例而言,1位元錯誤及2位元錯誤。在一些實例性實施例中,錯誤更正碼引擎100可偵測到接收資料D_RX中的錯誤數量超出錯誤更正碼引擎100可更正的錯誤數量,或者可產生指示無法進行錯誤更正的訊號。
隨著錯誤更正碼引擎100可更正的錯誤數量增加,為產生經編碼資料D_ENC而添加至輸入資料D_IN的冗餘可增加,且用於儲存輸入資料D_IN的記憶體300的儲存容量可減小。此外,隨著錯誤更正碼引擎100可更正的錯誤數量增加,錯誤更正碼引擎100所耗用的資源(諸如,面積、電力及/或時間)亦可增加。因此,錯誤更正碼引擎100可被設計成具有可更正錯誤數量,所述可更正錯誤數量是基於有雜訊通道(亦即,在記憶體300中出現的位元錯誤率(bit error rate,BER))而確定。舉例而言,當記憶體300的預期位元錯誤率是0.2且由錯誤更正碼引擎100處理的資料單元是10位元資料單元時,可將錯誤更正碼引擎100可更正的錯誤數量設計成2個位元或更多個位元。當錯誤更正碼引擎100具有N位元可更正錯誤數量(N > 0)時,錯誤更正碼系統可被稱為N位元更正型錯誤更正碼系統,且錯誤更正碼引擎100可被稱為N位元更正型錯誤更正碼引擎100。
錯誤插入電路200可在錯誤更正碼引擎100與記憶體300之間根據模式訊號C_MODE選擇性地插入錯誤。如圖1中所示,錯誤插入電路200可自錯誤更正碼引擎100接收經編碼資料D_ENC並將寫入資料D_WR提供至記憶體300。錯誤插入電路200亦可自記憶體300接收讀取資料D_RD並將接收資料D_RX提供至錯誤更正碼引擎100。模式訊號C_MODE可指示裝置10的模式,且裝置10可根據模式訊號C_MODE而在正常模式及測試模式中運作。錯誤插入電路200可包括處理器及用於儲存由處理器執行的指令的記憶體,或者在一些實例性實施例中可包括藉由邏輯合成而設計的邏輯電路。
錯誤插入電路200可包括至少一個位元錯誤電路BE。位元錯誤電路BE可接收指示一個位元的值的輸入訊號IN,並可輸出指示一個位元的值的輸出訊號OUT。如圖1中所示,位元錯誤電路BE可包括反相器INV及開關SW,且輸出訊號OUT可與輸入訊號IN相同或者可與藉由對輸入訊號IN進行反轉而獲得的訊號相同。在一些實例性實施例中,可基於被輸入至錯誤插入電路200的模式訊號C_MODE來對位元錯誤電路BE的開關SW進行控制。舉例而言,當模式訊號C_MODE指示正常模式時,可對開關SW進行控制以使輸出訊號OUT與輸入訊號IN一致。舉例而言,當模式訊號C_MODE指示測試模式時,可對開關SW進行控制以使輸出訊號OUT與藉由對輸入訊號IN進行反轉而獲得的訊號一致。當輸出與輸入訊號IN一致的輸出訊號OUT時,可表示位元錯誤電路BE被禁用,且當輸出藉由對輸入訊號IN進行反轉而獲得的輸出訊號OUT時,可表示位元錯誤電路BE被啟用。
在測試模式中,錯誤插入電路200可使用位元錯誤電路BE來將錯誤插入至由錯誤插入電路200接收到的資料中。在一些實例性實施例中,錯誤插入電路200可因應於模式訊號C_MODE指示測試模式而藉由將至少一個位元錯誤插入至由錯誤更正碼引擎100提供的經編碼資料D_ENC中來產生寫入資料D_WR,如稍後在下文參考圖2A所述。在一些實例性實施例中,因應於模式訊號C_MODE指示測試模式,錯誤插入電路200亦可藉由將至少一個位元錯誤插入至自記憶體300提供的讀取資料D_RD中來產生接收資料D_RX,如稍後在下文參考圖2B所述。此外,在一些實例性實施例中,錯誤插入電路200可因應於模式訊號C_MODE指示測試模式而將至少一個位元錯誤分別插入至經編碼資料D_ENC及讀取資料D_RD中。
如此,在測試模式中,錯誤插入電路200可插入至少一個位元錯誤,且因此可驗證記憶體300是可接受的還是有缺陷的。導致記憶體300出現錯誤的缺陷可不僅包括在記憶體300的製造製程期間出現的初始缺陷,而且亦包括隨後在運送及/或使用記憶體300或包括記憶體300的裝置10的週期期間出現的缺陷。因此,在記憶體300或裝置10的製造製程期間,可依據錯誤更正碼引擎100可更正的錯誤數量來驗證記憶體300是否具有特定錯誤容限(error margin)。舉例而言,當錯誤更正碼引擎100對應於3位元更正型錯誤更正碼系統時,記憶體300可被製造成具有1位元錯誤容限。因此,即使因記憶體300的缺陷而出現1位元錯誤,記憶體300仍可正常使用。因此,在記憶體300或裝置10的製造製程中,可對記憶體300進行測試以便僅運送具有2位元錯誤或更少位元錯誤的記憶體300,亦即,具有1位元錯誤容限的記憶體300。亦即,可在製造製程期間對記憶體300或裝置10進行測試以使錯誤能由3位元更正型錯誤更正碼引擎100更正,以在使用者使用裝置10時即使出現1位元錯誤仍不會導致裝置10出問題。
錯誤插入電路200可藉由插入與記憶體300的錯誤容限對應的錯誤數量來人為地減少錯誤更正碼引擎100可更正的錯誤更正碼系統的錯誤數量。舉例而言,當裝置10包括3位元更正型錯誤更正碼引擎100且錯誤插入電路200插入1位元錯誤時,則可認為記憶體300始終包含1位元錯誤,且因此裝置10可對應於2位元錯誤更正碼系統。另外,在測試模式中,錯誤插入電路200可在錯誤更正碼引擎100與記憶體300之間使用具有簡單結構的位元錯誤電路BE(如圖1中所示)來插入錯誤。可根據錯誤更正碼引擎100是否成功進行了錯誤更正來確定記憶體300或裝置10是可接受的還是有故障。舉例而言,當記憶體300被製造成具有1位元錯誤容限時,錯誤插入電路200可在測試模式中插入1位元錯誤並確定錯誤更正碼引擎100是否成功地更正了錯誤來對記憶體300或裝置10進行測試。因此,記憶體300在包括記憶體300且支持錯誤更正碼的裝置10中可容易地得到驗證,且因此可提高裝置10的生產率。儘管圖1示出記憶體300的實例作為有雜訊通道,但應瞭解,根據本發明概念的實例性實施例可容易地驗證對可由具有其他雜訊的通道(例如,通訊通道)預測的錯誤數量提供額外容限的錯誤更正碼系統。
記憶體300可接收及儲存寫入資料D_WR並可自所儲存的寫入資料D_WR輸出讀取資料D_RD。記憶體300可包括用於儲存資料的多個記憶體胞元。在一些實例性實施例中,記憶體300可包括非揮發性記憶體(例如,電性可抹除可程式化唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)、快閃記憶體、相變隨機存取記憶體(phase change random access memory,PRAM)、電阻式隨機存取記憶體(resistance random access memory,RRAM)、奈米浮動閘極記憶體(nano floating gate memory,NFGM)、聚合物隨機存取記憶體(polymer random access memory,PoRAM)、磁性隨機存取記憶體(magnetic random access memory,MRAM)或鐵電式隨機存取記憶體(ferroelectric random access memory,FRAM))。在一些實例性實施例中,記憶體300可包括揮發性記憶體(例如,動態隨機存取記憶體、靜態隨機存取記憶體、行動動態隨機存取記憶體、雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous DRAM,DDR SDRAM)、低功率雙倍資料速率(low power double data rate,LPDDR)同步靜態隨機存取記憶體、圖形雙倍資料速率(graphic double data rate,GDDR)同步靜態隨機存取記憶體或蘭巴斯動態隨機存取記憶體(rambus RDRAM))。
圖2A及圖2B是說明根據本發明概念的實例性實施例的圖1所示裝置10的實例的方塊圖。如上文參考圖1所述,圖2A的裝置10a及圖2B的裝置10b可根據自外部提供的模式訊號C_MODE各自支持正常模式及測試模式。在下文中,在圖2A及圖2B中,與圖1中相同的參考編號標示相同的元件,且因此,本文將不再對其進行詳細說明。
參考圖2A,裝置10a可包括錯誤更正碼引擎100a、錯誤插入電路200a及記憶體300a。錯誤插入電路200a可將在正常模式中自錯誤更正碼引擎100a提供的經編碼資料D_ENC提供至記憶體300a作為寫入資料D_WR,及/或可將藉由將至少一個位元錯誤插入至經編碼資料D_ENC中而產生的寫入資料D_WR提供至記憶體300a。錯誤更正碼引擎100a可接收自記憶體300a輸出的讀取資料D_RD,且因此在測試模式中圖1的讀取資料D_RD與接收資料D_RX可彼此一致。
在測試模式中,可將輸入資料D_IN儲存於記憶體300a中,且然後可由自記憶體300a輸出的讀取資料D_RD來產生輸出資料D_OUT。舉例而言,在執行將相同輸入資料D_IN依序儲存於整個記憶體300a中的操作之後,可由自整個記憶體300a依序輸出的讀取資料D_RD產生輸出資料D_OUT。在一些實例性實施例中,可將輸入資料D_IN與由錯誤更正碼引擎100a產生的輸出資料D_OUT進行比較,且當輸入資料D_IN與輸出資料D_OUT彼此不一致時,可確定記憶體300a有缺陷。在一些實例性實施例中,當錯誤更正碼引擎100a不能更正讀取資料D_RD的錯誤(亦即,讀取資料D_RD中的錯誤超出錯誤更正碼引擎100a可更正的錯誤數量)時,錯誤更正碼引擎100a可輸出指示此情況的訊號。此外,可根據自錯誤更正碼引擎100a輸出的訊號來確定記憶體300a是否有缺陷。
錯誤插入電路200a可改變在測試模式中所插入的至少一個位元錯誤的位置。舉例而言,錯誤插入電路200a可將藉由將至少一個位元錯誤插入至經編碼資料D_ENC中而產生的寫入資料D_WR寫入至記憶體300a的特定區域中,且可藉由讀取儲存於記憶體300a的特定區域中的資料來輸出讀取資料D_RD。接下來,錯誤插入電路200a可將包括至少一個位元錯誤的寫入資料D_WR寫入與相同的經編碼資料D_ENC的先前位置不同的位置中,相同的經編碼資料D_ENC的先前位置與之前記憶體300a的先前區域相同的區域中,且可讀取儲存於與記憶體300a的先前區域相同的區域中的資料,藉此輸出讀取資料D_RD。當實際上由記憶體300a導致的真正位元錯誤出現於由錯誤插入電路200a所插入的位元錯誤中時,由錯誤插入電路200a插入的位元錯誤不能用作記憶體300a的錯誤容限。因此,可在對同一區域及同一經編碼資料D_ENC的位元錯誤插入位置做出改變的同時,重複進行寫入所產生的寫入資料D_WR及輸出讀取資料D_RD的操作。稍後將在下文參考圖3A及圖3B以及圖4闡述對由錯誤插入電路200b所插入的位元錯誤的位置做出改變的實例。
參考圖2B,裝置10b可包括錯誤更正碼引擎100b、錯誤插入電路200b及記憶體300b。錯誤插入電路200b可將在正常模式中自記憶體300b提供的讀取資料D_RD提供至錯誤更正碼引擎100b作為接收資料D_RX,及/或可在測試模式中將藉由將至少一個位元錯誤插入至讀取資料D_RD中而產生的接收資料D_RX提供至錯誤更正碼引擎100b。記憶體300b可接收自錯誤更正碼引擎100b輸出的寫入資料D_WR。根據圖2B的實例,在測試模式中圖1的經編碼資料D_ENC與寫入資料D_WR可彼此一致。
如上文參考圖2B所述,錯誤插入電路200b可改變在測試模式中所插入的至少一個位元錯誤的位置。舉例而言,錯誤插入電路200b可將藉由將至少一個位元錯誤插入至讀取資料D_RD(所述讀取資料D_RD是藉由讀取被寫入寫入資料D_WR的區域而輸出)中而產生的接收資料D_RX提供至錯誤更正碼引擎100b。此後,錯誤插入電路200b可為錯誤更正碼引擎100b提供包括至少一個位元錯誤的接收資料D_RX,所述至少一個位元錯誤在與先前位置不同的位置處被插入至藉由讀取與之前相同的區域而輸出的讀取資料D_RD中。在圖2A的裝置10a中,可藉由根據位元錯誤的位置將寫入資料D_WR寫入至相同區域多次並讀取所寫入資料多次來多次輸出讀取資料D_RD。然而,在圖2B的裝置10b中,可藉由將寫入資料D_WR寫入至相同區域一次並讀取寫入資料多次來多次輸出讀取資料D_RD。此外,如稍後將在下文參考圖6B所闡述,在圖2B的裝置10b中,可對記憶體300b的相同區域執行讀取操作一次。
在下文中,將主要參考以下實例闡述本發明概念的實例性實施例:在測試模式中錯誤插入電路200a將藉由將位元錯誤插入至經編碼資料D_ENC中而產生的寫入資料D_WR儲存於記憶體300a中,但並不僅限於此。本發明概念的實例性實施例亦可應用於包括圖2B的裝置10b以及圖2A及圖2B的錯誤插入電路200a及錯誤插入電路200b全部的裝置。
圖3A及圖3B是說明根據本發明概念的實例性實施例的圖1所示錯誤插入電路200的實例的方塊圖。更詳細而言,圖3A及圖3B說明圖2A的錯誤插入電路200a的實例。如上文參考圖2A所述,在測試模式中,圖3A的錯誤插入電路200a'及圖3B的錯誤插入電路200a"可將至少一個位元錯誤插入至n位元經編碼資料D_ENC中來產生n位元寫入資料D_WR(n>0)。在下文中,將參考圖2A對圖3A及圖3B加以闡述,且本文不再對將圖3A及圖3B進行贅述。
參考圖3A,錯誤插入電路200a'可包括位元選擇電路210'及m個位元錯誤電路220'(n>m>0)。m個位元錯誤電路220'可包括多個位元錯誤電路BE1至BEm。位元選擇電路210'可接收模式訊號C_MODE,並可將選擇訊號SEL的最多達m個位元分別提供至m個位元錯誤電路220'。因應於模式訊號C_MODE指示正常模式,位元選擇電路210'可產生選擇訊號SEL以使全部m個位元錯誤電路220'被禁用,亦即,直接輸出經編碼資料D_ENC的位元訊號作為寫入資料D_WR的位元訊號。另一方面,因應於模式訊號C_MODE指示測試模式,位元選擇電路210'可產生選擇訊號SEL以使m個位元錯誤電路220'中的至少一者被啟用,亦即,輸出藉由對經編碼資料D_ENC的位元訊號進行反轉而獲得的位元訊號作為寫入資料D_WR的位元訊號。
如圖3A中所說明,m個位元錯誤電路220'可被排列成與經編碼資料D_ENC的n個位元當中的m個位元對應。圖3A中所示的m個位元錯誤電路220'的排列僅為示例性的,且與圖3A中所示的排列不同,m個位元錯誤電路220'可例如自經編碼資料D_ENC的最高有效位元(MSB)開始按照m位元D_ENC[n:n-m+1]順序進行排列,或者可自經編碼資料D_ENC的最高有效位元開始按照m位元D_ENC[m:1]順序進行被排列。
在測試模式中,位元選擇電路210'可同時啟用m個位元錯誤電路220'當中與記憶體300a的錯誤容限對應的位元數目的位元錯誤電路。舉例而言,若記憶體300a中所需的錯誤容限是一個位元,則位元選擇電路210'可啟用m個位元錯誤電路220'中的一者。另外,位元選擇電路210'可更換將被啟用的位元錯誤電路。舉例而言,位元選擇電路210'可產生選擇訊號SEL,使得當將同一經編碼資料D_ENC連續K次寫入至記憶體300a的同一區域中時,啟用不同的K個位元錯誤電路。如稍後在下文參考圖4所述,可基於錯誤更正碼引擎100a可更正的位元數目及記憶體300a的錯誤容限來確定自同一經編碼資料D_ENC產生的寫入資料D_WR被寫入記憶體300a的同一區域中的次數K。
參考圖3B,錯誤插入電路200a"可包括位元選擇電路210"及n個位元錯誤電路220"。亦即,錯誤插入電路200a"可包括分別與經編碼資料D_ENC的n個位元對應的n個位元錯誤電路220"。n個位元錯誤電路220"可包括多個位元錯誤電路BE1至BEn。位元選擇電路210"可接收模式訊號C_MODE,並可將選擇訊號SEL的n個位元分別提供至n個位元錯誤電路220''。位元選擇電路210"可因應於模式訊號C_MODE指示正常模式而產生選擇訊號SEL,使得全部n個位元錯誤電路220"被禁用。另一方面,位元選擇電路210"可因應於模式訊號C_MODE指示測試模式而產生選擇訊號SEL,使得n個位元錯誤電路220"中的至少一者被啟用。
圖4是根據本發明概念的實例性實施例在測試模式中圖2A所示寫入資料D_WR的實例的視圖。更詳細而言,圖4示出自同一經編碼資料D_ENC產生且被連續寫入圖2A的記憶體300a中的寫入資料D_WR。在圖4的實例中,圖2A的錯誤更正碼引擎100a可對應於2位元更正型錯誤更正碼系統,且記憶體300a中所需的錯誤容限可為1位元。因此,錯誤插入電路200a可藉由對經編碼資料D_ENC中的1個位元進行反轉而產生被插入1位元錯誤的寫入資料D_WR。在圖4中,陰影部分表示由錯誤插入電路200a反轉的位元。在下文中,將參考圖2A對圖4加以闡述。
可基於錯誤更正碼引擎100a可更正的位元數目及記憶體300a的錯誤容限來確定自同一經編碼資料D_ENC產生的寫入資料D_WR被寫入記憶體300a的同一區域中的次數K。如圖4的實例所示,當N為2且記憶體300a的錯誤容限為1位元時,輸出包括由記憶體300a的缺陷導致的兩個或更多個真正位元錯誤的讀取資料D_RD的記憶體300a可被確定為有缺陷。當由錯誤插入電路200a產生的位元錯誤被插入至與由記憶體300a的缺陷導致的真正位元錯誤相同的位置中時,由於因真正位元錯誤被所插入的位元錯誤更正或所插入的位元錯誤與真正位元錯誤作為一個位元錯誤包括於讀取資料D_RD中而使讀取資料D_RD包括較真正位元錯誤少的位元錯誤,因而插入位元錯誤的效果可被消除。因此,在錯誤更正碼引擎100a處理讀取資料D_RD的過程中,可正常更正讀取資料D_RD的錯誤且可確定被確定為有缺陷的記憶體300a是可接受的。為防止由錯誤插入電路200a插入的位元錯誤被排列於與真正位元錯誤相同的位置中,錯誤插入電路200a可改變位元錯誤被插入的位置。在圖4的實例中,為確定輸出包括兩個真正位元錯誤的讀取資料D_RD的記憶體300a有缺陷,錯誤插入電路200a可依序地產生在三個不同位置處包括位元錯誤的寫入資料D_WR。
參考圖4,寫入資料D_WR可包括x位元數目個資料位元及y位元數目個同位位元(n=x+y),且錯誤插入電路200a可藉由對資料位元中的第一資料位元D1進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第一資料位元D1進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。
然後,錯誤插入電路200a可藉由對資料位元的第三資料位元D3進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第三資料位元D3進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。
最後,錯誤插入電路200a可藉由對資料位元的第五資料位元D5進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第五資料位元D5進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。應瞭解,圖4中被插入位元錯誤的位置僅是實例,且可將位元錯誤插入至三個不同位置中的任一者中。
當使用n位元更正型錯誤更正碼引擎100a且記憶體300a的錯誤容限是1位元時,對記憶體300a的相同區域進行寫入操作及讀取操作的重複次數K可與n+1一致。在一些實例性實施例中,若寫入資料或讀取資料的位元數目相對大,亦即,若由錯誤更正碼引擎100a處理的資料單元的大小相對大,則插入於不同位置處的所有位元錯誤不可能皆與真正位元錯誤在相同位置處。因此,錯誤插入電路200a可執行少於三次(例如,兩次)寫入操作及讀取操作,而非執行三次寫入操作及讀取操作。舉例而言,在圖4的實例中,第一資料位元D1及第三資料位元D3兩者中不可能皆存在真正位元錯誤,因此可藉由僅執行兩次寫入操作及讀取操作來縮短記憶體300a或裝置10a的測試時間。
圖5是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。更詳細而言,圖5示出在測試模式中測試圖2A的裝置10a的方法。在下文中,將參考圖2A對圖5加以闡述。
在操作S110中,可執行初始化操作。舉例而言,如圖5中所示,可將變數i設定為1,且變數i可指示為在經編碼資料D_ENC中的不同位置處插入位元錯誤所執行的操作次數,亦即,執行後續一系列操作(S121至S126)的次數。
在操作S121中,可執行對經編碼資料D_ENC的至少一個位元進行反轉的操作。舉例而言,錯誤插入電路200a可因應於模式訊號C_MODE指示測試模式而藉由對經編碼資料D_ENC的至少一個位元進行反轉來產生寫入資料D_WR。
在操作S122中,可執行將寫入資料D_WR寫入至記憶體300a的操作,且在操作S123中,可執行自記憶體300a讀取所寫入資料的操作。可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料而自記憶體300a輸出讀取資料D_RD。
在操作S124中,可更正讀取資料D_RD的錯誤。舉例而言,錯誤更正碼引擎100a可自記憶體300a接收讀取資料D_RD,並可更正讀取資料D_RD中的錯誤。然後,在操作S125中,可確定錯誤更正是否成功。舉例而言,錯誤更正碼引擎100a可具有可更正位元數目,且因此在讀取資料D_RD所包含的錯誤超出可更正位元數目時,錯誤更正可失敗。若錯誤更正失敗,則隨後可執行操作S130,且在操作S130中,可執行確定記憶體300a有缺陷的操作。另一方面,若錯誤更正成功,則隨後可執行操作S126。
在操作S126中,可判斷變數i是否等於K。亦即,可判斷寫入操作及讀取操作是否已被執行K次。如上文參考圖4所述,可基於錯誤更正碼引擎100a可更正的錯誤數量及記憶體300a的錯誤容限來確定K。若變數i等於K,則隨後可執行操作S140,且在操作S140中,可執行確定記憶體300a可接受的操作。另一方面,若變數i不等於K,則在操作S127中可將變數i增大1,且然後可隨後執行操作S121。在操作S121中,可對處於與先前經反轉位元的位置不同的位置處的位元進行反轉。
圖6A及圖6B是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。更詳細而言,圖6A及圖6B示出在測試模式中測試圖2B的裝置10b的方法。在下文中,將參考圖2B對圖6A及圖6B加以闡述。此外,與圖2B中相同的參考編號標示相同元件,且因此本文將不再對圖6A及圖6B進行贅述。
參考圖6A,在操作S210中,可執行初始化操作。舉例而言,如圖6A中所示,可將變數i設定為1,且變數i可指示為在讀取資料D_RD的不同位置處插入位元錯誤所執行的操作次數,亦即,執行一系列操作(S231至S235)的次數。
在操作S220中,可寫入寫入資料D_WR。如圖6A中所說明,用於對記憶體300b的特定區域進行驗證的寫入資料D_WR可被寫入一次,且可重複進行藉由讀取所儲存的寫入資料D_WR來輸出讀取資料D_RD的操作,如稍後在下文所述。如此,與圖5的實例相比,在圖6A及圖6B的實例中寫入操作的次數可減少,且因此測試記憶體300b所花費的時間可相對縮短。
在操作S231中,可讀取所儲存的寫入資料D_WR。可藉由讀取儲存於記憶體300b的被寫入寫入資料D_WR的區域中的資料而自記憶體300b輸出讀取資料D_RD。
在操作S232中,可對讀取資料D_RD的至少一個位元進行反轉。舉例而言,錯誤插入電路200b可因應於模式訊號C_MODE指示測試模式而藉由對讀取資料D_RD的至少一個位元進行反轉來產生接收資料D_RX。
在操作S233中,可更正接收資料D_RX的錯誤。舉例而言,錯誤更正碼引擎100b可自錯誤插入電路200b接收接收資料D_RX,並可更正接收資料D_RX中的錯誤。然後,在操作S234中,可判斷錯誤更正是否成功。舉例而言,錯誤更正碼引擎100b可具有可更正位元數目,且因此在接收資料D_RX所包含的錯誤超出可更正位元數目時,錯誤更正可失敗。若錯誤更正失敗,則隨後可執行操作S240,且在操作S240中,可執行確定記憶體300b有缺陷的操作。另一方面,若錯誤更正成功,則隨後可執行操作S235。
在操作S235中,可判斷變數i是否等於K。亦即,可判斷讀取操作是否已被執行K次。如上文參考圖4所述,可基於錯誤更正碼引擎100b可更正的錯誤數量及記憶體300b的錯誤容限來確定K。若變數i等於K,則隨後可執行操作S250,且在操作S250中,可執行確定記憶體300b可接受的操作。另一方面,若變數i不等於K,則在操作S236中可將變數i增大1,且然後可隨後執行操作S231。在操作S231中,可對處於與先前經反轉位元的位置不同的位置處的位元進行反轉。
參考圖6B,與圖6A的實例相比,對寫入資料D_WR的寫入操作可被執行一次以對記憶體300b的特定區域進行驗證,且對所儲存的寫入資料D_WR的讀取操作亦可被執行一次。亦即,由於藉由重複地讀取所儲存的寫入資料D_WR而輸出的讀取資料D_RD是相同的,因此可重複執行由錯誤插入電路200b進行的僅改變位元錯誤在讀取資料D_RD中的位置的操作。
如圖6B中所說明,圖6B的操作可與圖6A的對應操作相同或類似。然而,若在圖6B的操作S235'中變數i不等於K,則在操作S236'中可將變數i增大1,且在操作S236'之後可執行操作S232'而非操作S231'。因此,操作S220'中寫入寫入資料D_WR的操作及操作S231'中讀取所寫入資料的操作可各自被執行一次,且在操作S232'中,可重複執行對讀取資料D_RD的至少一個位元進行反轉的操作。因此,與圖6A的實例相比,根據圖6B的實例,對記憶體300b進行讀取操作的次數可減少。
圖7A至圖7C是說明根據本發明概念的實例性實施例的位元選擇電路的實例的方塊圖。如上文參考圖3A及圖3B所述,圖7A至圖7C的位元選擇電路210a、位元選擇電路210b及位元選擇電路210c可接收模式訊號C_MODE並可輸出選擇訊號SEL。在下文中,將參考圖1對圖7A至圖7C加以闡述,且本文將不再對圖7A至圖7C中重複的說明進行贅述。
參考圖7A,位元選擇電路210a可包括位元圖案211。位元選擇電路210a可因應於模式訊號C_MODE指示測試模式而產生選擇訊號SEL,以使位元錯誤根據位元圖案211而出現於某一位置處。舉例而言,如上文參考圖4所述,當位元錯誤被插入於三個不同位置中時,位元圖案211可包括三種不同圖案。
參考圖7B,位元選擇電路210b可包括隨機數產生器212。因應於模式訊號C_MODE指示測試模式,位元選擇電路210b可產生選擇訊號SEL,以使位元錯誤根據由隨機數產生器212產生的隨機數而出現於一位置處。在一些實例性實施例中,隨機數產生器212可以是偽隨機數產生器。
參考圖7C,位元選擇電路210c可更接收設定訊號C_SET。設定訊號C_SET可例如由自圖1中的裝置10外部接收到的訊號產生,且可包括關於位元選擇電路210c的設定資訊。在一些實例性實施例中,設定訊號C_SET可針對記憶體300的同一區域確定錯誤更正操作次數,亦即K。舉例而言,若錯誤更正碼引擎100可更正的錯誤數量是固定的,則可根據設定訊號C_SET對K做出改變以調整記憶體300的錯誤容限。另外,如上文參考圖4所述,為縮短測試時間,可例如根據設定訊號C_SET來對K做出改變,以使其等於或小於與錯誤更正碼引擎100可更正的錯誤數量對應的數目。
圖8是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。舉例而言,圖8的方法可表示在測試模式中測試圖1的裝置10的方法。在圖8中,圖1中的經編碼資料D_ENC與寫入資料D_WR可被統稱為寫入資料,且讀取資料D_RD與接收資料D_RX可被統稱為讀取資料。舉例而言,在圖1中「藉由將錯誤插入至經編碼資料D_ENC中來產生寫入資料D_WR」可被稱為「將錯誤插入至寫入資料中」,且「藉由將錯誤插入至讀取資料D_RD中來產生接收資料D_RX」可被稱為「將錯誤插入至讀取資料中」。在下文中,將參考圖1對圖8加以闡述。
在操作S20中,可藉由對輸入資料進行編碼而產生寫入資料。舉例而言,圖1的錯誤更正碼引擎100可藉由對輸入資料D_IN添加冗餘來產生寫入資料。
在操作S40中,可將寫入資料寫入記憶體300中,並可自記憶體300輸出讀取資料。舉例而言,可將寫入資料寫入記憶體300的特定區域中,且可藉由讀取儲存於被寫入寫入資料的區域中的資料來輸出讀取資料。錯誤插入電路200可將錯誤插入至將被寫入記憶體300中的資料(亦即,寫入資料)中,或可將錯誤插入至自記憶體300讀取的資料(亦即,讀取資料)中。此外,在一些實例性實施例中,錯誤插入電路200可將錯誤插入至寫入資料及讀取資料兩者中。如圖8中所說明,操作S40可包括操作S42。
在操作S42中,可對寫入資料及/或讀取資料的至少一個位元進行反轉。舉例而言,錯誤插入電路200可包括位元錯誤電路BE,且可藉由啟用至少一個位元錯誤電路BE來對寫入資料及/或讀取資料的至少一個位元進行反轉。被禁用的位元錯誤電路BE可輸出輸入位元訊號。
在操作S60中,可藉由更正讀取資料的錯誤來產生輸出資料D_OUT。舉例而言,圖1的錯誤更正碼引擎100可藉由更正讀取資料的錯誤來產生輸出資料D_OUT。
在操作S80中,可偵測記憶體300的缺陷。在一些實例性實施例中,如上文參考圖5等所述,可根據在操作S60中錯誤更正是否成功來偵測記憶體300的缺陷。在一些實例性實施例中,如稍後在下文參考圖9所述,可基於在操作S60中所產生的輸出資料來偵測記憶體300中的缺陷。
圖9是說明根據本發明概念的實例性實施例圖8所示操作S80的實例的流程圖。如上文參考圖8所述,可偵測記憶體的缺陷。如圖9中所說明,操作S80'可包括多個操作S82、S84及S86,且可參考圖1及圖8對圖9加以闡述。
在一些實例性實施例中,可由測試裝置執行操作S80',所述測試裝置在圖1的裝置10外部將輸入資料D_IN提供至裝置10並接收輸出資料D_OUT。測試裝置可使用模式訊號C_MODE來將裝置10設定至測試模式。可將輸入資料D_IN提供至被設定為測試模式的裝置10,並接收與所提供輸入資料D_IN對應的輸出資料D_OUT。
在操作S82中,可判斷輸入資料D_IN與輸出資料D_OUT彼此是否一致。舉例而言,測試裝置可判斷被提供至裝置10的輸入資料D_IN與對應的輸出資料D_OUT彼此是否一致。可在藉由編碼過程將輸入資料D_IN儲存於記憶體300中之後從自記憶體300讀取的資料接收經錯誤更正輸出資料D_OUT,並且測試裝置可將輸入資料D_IN與輸出資料D_OUT進行比較。如上文參考圖式所述,錯誤可被插入至自輸入資料D_IN編碼而來的資料中,且錯誤可被插入至自記憶體300讀取的資料中。
若在錯誤被插入的情況下輸入資料D_IN與輸出資料D_OUT仍彼此一致,則可確定記憶體300具有足夠的錯誤容限且在操作S84中記憶體300是接受的。另一方面,若輸入資料D_IN與輸出資料D_OUT彼此不一致,則可確定記憶體300的錯誤容限不足,且在操作S86中可確定記憶體300有缺陷。
圖10是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。更詳細而言,圖10示出作為有雜訊通道的記憶體裝置20,記憶體裝置20包括胞元陣列21。
記憶體裝置20可接收命令CMD及位址ADDR,且可接收或傳送資料DATA。舉例而言,記憶體裝置20可自記憶體控制器接收諸如寫入命令、讀取命令等命令CMD以及對應於命令CMD的位址ADDR。另外,記憶體裝置20可自記憶體控制器接收資料DATA(亦即,輸入資料)或將資料DATA(亦即,輸出資料)提供至記憶體控制器。儘管圖10單獨示出命令CMD、位址ADDR及資料DATA,但在一些實例性實施例中,命令CMD、位址ADDR及資料DATA中的至少兩者可經由同一通道傳送。如圖10中所示,記憶體裝置20可包括胞元陣列21、讀取/寫入電路22、錯誤插入電路23、錯誤更正碼引擎24、列解碼器25_1、行解碼器25_2、位址暫存器26_1、資料暫存器26_2、控制邏輯27及輸入/輸出電路28。
胞元陣列21可包括多個記憶體胞元且可儲存資料。由於胞元陣列21中包含缺陷,因此可出現由讀取/寫入電路22自胞元陣列21讀取的資料不同於被寫入胞元陣列21中的資料的錯誤。為更正所述錯誤,錯誤更正碼引擎24可藉由對與寫入命令CMD一起接收到的資料DATA(亦即,輸入資料)進行編碼來產生資料,並可因應於讀取命令CMD而產生藉由更正自胞元陣列21讀取的資料中的錯誤所產生的資料DATA(亦即,輸出資料)。
錯誤插入電路23可自輸入/輸出電路28接收模式訊號C_MODE,並可因應於模式訊號C_MODE指示測試模式而將錯誤插入至在讀取/寫入電路22與錯誤更正碼引擎24之間傳送的資料。此外,錯誤插入電路23可改變錯誤被插入的位置。由錯誤插入電路23插入的錯誤數量可對應於胞元陣列21的錯誤容限。因此,可容易地驗證胞元陣列21是否具有足夠的錯誤容限,且因此可容易偵測到記憶體裝置20中的缺陷。
列解碼器25_1可根據自位址暫存器26_1提供的列位址來啟用連接至胞元陣列21的多個字線中的至少一者。行解碼器25_2可根據自位址暫存器26_1提供的行位址來選擇自連接至經啟用字線的記憶體胞元輸出的訊號中的一些訊號。
位址暫存器26_1可自輸入/輸出電路28接收及儲存位址ADDR。資料暫存器26_2可儲存自輸入/輸出電路28接收到的資料,且可將所儲存的資料提供至錯誤更正碼引擎24。另外,資料暫存器26_2可儲存自錯誤更正碼引擎24接收到的資料,且可將所儲存的資料提供至輸入/輸出電路28。
控制邏輯27可根據由輸入/輸出電路28接收到的命令CMD來產生用於操作記憶體裝置20的控制訊號,且控制訊號可被分別提供至記憶體裝置20中所包括的組件。
輸入/輸出電路28可自記憶體裝置20外部接收命令CMD、位址ADDR及資料DATA並輸出資料DATA。在一些實例性實施例中,輸入/輸出電路28可對命令CMD進行解碼並將解碼結果提供至控制邏輯27。
圖11是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。更詳細而言,圖11示出記憶體系統30及與記憶體系統30進行通訊的主機40,記憶體系統30包括作為有雜訊通道的記憶體裝置32。
記憶體系統30可經由介面50與主機40進行通訊。使記憶體系統30與主機40彼此進行通訊的介面50可使用電性訊號及/或光學訊號,且可由但不限於以下各項來實施:串行先進技術附接(serial advanced technology attachment,SATA)介面、串行先進技術附接快速(SATA express,SATAe)介面、串行附接小型(serial attached small,SAS)電腦系統介面、周邊組件互連快速(peripheral component interconnect express,PCIe)介面、非揮發性記憶體快速(nonvolatile memory-express,NVMe)介面、先進主機控制器介面(advanced host controller interface,AHCI)或上述各種介面的組合。
在一些實例性實施例中,記憶體系統30可藉由可移除地耦合至主機40來與主機40進行通訊。記憶體裝置32可以是非揮發性記憶體,如電阻式記憶體,且記憶體系統30可被稱為儲存系統。舉例而言,記憶體系統30可由但不限於以下各項來實施:固態驅動器或固態磁碟(solid-state disk,SSD)、內嵌式固態磁碟(embedded SSD,eSSD)、多媒體卡(multimedia card,MMC)、內嵌式多媒體卡(embedded multimedia card,eMMC)等。
如圖11中所說明,記憶體系統30可包括控制器31及至少一個記憶體裝置32。所述至少一個記憶體裝置32可接收自控制器31接收到的命令CMD及位址ADDR,且可接收或傳送資料DATA。
控制器31可因應於經由介面50自主機40接收到的請求來控制至少一個記憶體裝置32。舉例而言,控制器31可因應於寫入請求而將與所述寫入請求一起接收到的資料寫入所述至少一個記憶體裝置32中,或者可因應於讀取請求而將儲存於所述至少一個記憶體裝置32中的資料提供至主機40。如圖11中所示,控制器31可包括錯誤插入電路31_1及錯誤更正碼引擎31_2。
在一些實例性實施例中,錯誤插入電路31_1可將錯誤插入至藉由由錯誤更正碼引擎31_2在測試模式中對請求自主機40寫入的資料進行編碼而獲得的資料中,並且可將被插入錯誤的資料提供至所述至少一個記憶體裝置32作為寫入資料。在一些實例性實施例中,錯誤插入電路31_1可在測試模式中將錯誤插入至因應於主機40的讀取請求而自至少一個記憶體裝置32讀取的資料中,並且可將被插入錯誤的資料提供至錯誤更正碼引擎31_2。此外,錯誤插入電路31_1可改變錯誤被插入的位置。由錯誤插入電路31_1插入的錯誤數量可與所述至少一個記憶體裝置32的錯誤容限對應。因此,可容易地驗證所述至少一個記憶體裝置32是否具有充足的錯誤容限。
雖然已參考本發明概念的實例性實施例具體地示出及闡述了本發明概念,但應理解,可在不背離以下申請專利範圍的精神及範疇的情況下做出各種形式及細節上的改變。
10、10a、10b‧‧‧裝置
20、32‧‧‧記憶體裝置
21‧‧‧胞元陣列
22‧‧‧讀取/寫入電路
23、31_1、200、200a、200a'、200a''、200b‧‧‧錯誤插入電路
24‧‧‧錯誤更正碼引擎
25_1‧‧‧列解碼器
25_2‧‧‧行解碼器
26_1‧‧‧位址暫存器
26_2‧‧‧資料暫存器
27‧‧‧控制邏輯
28‧‧‧輸入/輸出電路
30‧‧‧記憶體系統
31‧‧‧控制器
31_2、100、100a、100b‧‧‧錯誤更正碼引擎
40‧‧‧主機
50‧‧‧介面
210'、210''、210a、210b、210c‧‧‧位元選擇電路
211‧‧‧位元圖案
212‧‧‧隨機數產生器
220'、220''、BE、BE1至BEm、BEn‧‧‧位元錯誤電路
300、300a、300b‧‧‧記憶體
ADDR‧‧‧位址
CMD‧‧‧命令/寫入命令/讀取命令
C_MODE‧‧‧模式訊號
C_SET‧‧‧設定訊號
D1‧‧‧第一資料位元
D2、D4、Dx、P1-Py‧‧‧位元位置
D3‧‧‧第三資料位元
D5‧‧‧第五資料位元
DATA‧‧‧資料
D_ENC‧‧‧經編碼資料
D_IN‧‧‧輸入資料
D_OUT‧‧‧輸出資料
D_RD‧‧‧讀取資料
D_RX‧‧‧接收資料
D_WR‧‧‧寫入資料
IN‧‧‧輸入訊號
INV‧‧‧反相器
OUT‧‧‧輸出訊號
S20、S40、S42、S60、S80、S80'、S82、S84、S86、S110、S121、S122、S123、S124、S125、S126、S127、S130、S140、S210、S210'、S220、S220'、S231、S231'、S232、S232'、S233、S233'、S234、S234'、S235、S235'、S236、S236'、S240、S240'、S250、S250'‧‧‧操作
SEL‧‧‧選擇訊號
SW‧‧‧開關
結合附圖閱讀以下詳細說明,將會更清楚地理解本發明概念的實例性實施例,在附圖中:
圖1是根據本發明概念的實例性實施例用於支持錯誤更正碼(ECC)的裝置的方塊圖。
圖2A及圖2B是說明根據本發明概念的實例性實施例的圖1所示裝置的實例的方塊圖。
圖3A及圖3B是說明根據本發明概念的實例性實施例的圖1所示錯誤插入電路的實例的方塊圖。
圖4是根據本發明概念的實例性實施例在測試模式中圖2A所示寫入資料的實例的視圖。
圖5是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。
圖6A及圖6B是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。
圖7A至圖7C是說明根據本發明概念的實例性實施例的位元選擇電路的實例的方塊圖。
圖8是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。
圖9是說明根據本發明概念的實例性實施例的圖8所示操作S80的實例的流程圖。
圖10是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。
圖11是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。
Claims (10)
- 一種支持用於記憶體測試的測試模式的裝置,所述裝置包括: 記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料; 錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生所述寫入資料並藉由更正接收資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及 錯誤插入電路,被配置成在正常模式中將所述讀取資料提供至所述錯誤更正碼引擎作為所述接收資料,並在所述測試模式中將藉由對所述讀取資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述錯誤更正碼引擎作為所述接收資料。
- 如申請專利範圍第1項所述的裝置,其中所述錯誤插入電路更被配置成在所述測試模式中將自所述記憶體連續輸出的所述讀取資料中的所述至少一個位元的位置改變K次,其中K是等於或大於2的整數。
- 如申請專利範圍第2項所述的裝置,其中K等於(N+1)。
- 如申請專利範圍第2項所述的裝置,其中K等於或小於N且是基於由所述錯誤更正碼引擎處理的資料的大小來確定。
- 如申請專利範圍第2項所述的裝置,其中所述錯誤插入電路更被配置成根據自所述裝置的外部接收到的設定訊號來確定K。
- 一種支持用於記憶體測試的測試模式的裝置,所述裝置包括: 記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料; 錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生經編碼資料並藉由更正所述讀取資料中所包括的N個位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及 錯誤插入電路,被配置成在正常模式中將所述經編碼資料提供至所述記憶體作為所述寫入資料,並在所述測試模式中將藉由對所述經編碼資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述記憶體作為所述寫入資料。
- 如申請專利範圍第6項所述的裝置,其中所述錯誤插入電路更被配置成在所述測試模式中將連續地寫入該記憶體中的所述經編碼資料中的所述至少一個位元的位置改變K次,其中K是大於或等於2的整數。
- 一種對包括錯誤更正碼(ECC)引擎及記憶體且被配置成更正N位元或少於N位元的錯誤位元的裝置進行測試的方法,其中N是正整數,所述方法包括: 藉由由所述錯誤更正碼引擎對輸入資料進行編碼而產生寫入資料; 將所述寫入資料寫入所述記憶體中,讀取所述寫入資料,並輸出讀取資料;以及 藉由由所述錯誤更正碼引擎更正所述讀取資料的錯誤而產生輸出資料, 其中 寫入所述寫入資料及輸出所述讀取資料包括:將所述寫入資料及所述讀取資料中的至少一者中的少於N位元的至少一個位元反轉。
- 如申請專利範圍第8項所述的方法,更包括: 基於所述輸入資料及所述輸出資料來偵測所述記憶體的缺陷。
- 如申請專利範圍第8項所述的方法,其中產生所述輸出資料包括:由所述錯誤更正碼引擎偵測對所述讀取資料中的錯誤位元的更正是否成功,以及 基於所述更正是否成功來偵測所述記憶體的缺陷。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20170121878 | 2017-09-21 | ||
??10-2017-0121878 | 2017-09-21 | ||
KR10-2017-0121878 | 2017-09-21 | ||
KR10-2018-0020017 | 2018-02-20 | ||
KR1020180020017A KR102661931B1 (ko) | 2017-09-21 | 2018-02-20 | 오류 정정 코드를 지원하는 장치 및 그것의 테스트 방법 |
??10-2018-0020017 | 2018-02-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201921245A true TW201921245A (zh) | 2019-06-01 |
TWI808098B TWI808098B (zh) | 2023-07-11 |
Family
ID=65898792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107133098A TWI808098B (zh) | 2017-09-21 | 2018-09-20 | 用於支持錯誤更正碼的裝置及其測試方法 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102661931B1 (zh) |
TW (1) | TWI808098B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112287A (zh) * | 2023-09-07 | 2023-11-24 | 上海合芯数字科技有限公司 | 备用校验纠错方法、装置、服务器及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210112845A (ko) | 2020-03-06 | 2021-09-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그의 테스트 동작 방법 |
US11468962B2 (en) | 2021-03-03 | 2022-10-11 | Micron Technology, Inc. | Performing memory testing using error correction code values |
KR20220144129A (ko) | 2021-04-19 | 2022-10-26 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것을 포함하는 반도체 시스템 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156403B2 (en) * | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
JP2012073678A (ja) * | 2010-09-27 | 2012-04-12 | Fujitsu Ltd | 擬似エラー発生装置 |
WO2013044005A1 (en) * | 2011-09-22 | 2013-03-28 | Violin Memory, Inc. | System and method for correcting errors in data using a compound code |
EP2677429A1 (en) * | 2012-06-18 | 2013-12-25 | Renesas Electronics Europe Limited | Error correction |
JP6005566B2 (ja) * | 2013-03-18 | 2016-10-12 | 株式会社東芝 | 情報処理システム、制御プログラムおよび情報処理装置 |
DE102015210651B4 (de) * | 2015-06-10 | 2022-10-27 | Infineon Technologies Ag | Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit |
US9842021B2 (en) * | 2015-08-28 | 2017-12-12 | Intel Corporation | Memory device check bit read mode |
US9910090B2 (en) * | 2016-03-08 | 2018-03-06 | International Business Machines Corporation | Bypassing an encoded latch on a chip during a test-pattern scan |
US9923579B2 (en) * | 2016-03-08 | 2018-03-20 | International Business Machines Corporation | Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry |
-
2018
- 2018-02-20 KR KR1020180020017A patent/KR102661931B1/ko active IP Right Grant
- 2018-09-20 TW TW107133098A patent/TWI808098B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112287A (zh) * | 2023-09-07 | 2023-11-24 | 上海合芯数字科技有限公司 | 备用校验纠错方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20190033410A (ko) | 2019-03-29 |
TWI808098B (zh) | 2023-07-11 |
KR102661931B1 (ko) | 2024-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10803971B2 (en) | Device for supporting error correction code and test method thereof | |
KR101750662B1 (ko) | 데이터 에러 교정용 회로, 장치, 및 방법 | |
TWI442407B (zh) | 在固態儲存系統中之資料回復 | |
US8321765B2 (en) | Method of reading data in non-volatile memory device | |
KR102204390B1 (ko) | 빠른 불량 셀 구제 동작의 메모리 장치 | |
US9727412B2 (en) | Memory device having error notification function | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
US10824523B2 (en) | Data storage device and operating method thereof | |
US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
US20130318418A1 (en) | Adaptive error correction for phase change memory | |
US20080082870A1 (en) | Parallel bit test device and method using error correcting code | |
KR20170112630A (ko) | 반도체장치 및 반도체시스템 | |
US10579472B2 (en) | Semiconductor devices | |
KR20180038339A (ko) | 셀어레이 불량 테스트 방법 및 이를 수행하는 반도체장치 | |
TWI808098B (zh) | 用於支持錯誤更正碼的裝置及其測試方法 | |
US10514980B2 (en) | Encoding method and memory storage apparatus using the same | |
US10554228B1 (en) | Error correction device and electronic device including the same | |
KR20180134120A (ko) | 반도체시스템 | |
US10025652B2 (en) | Error location pointers for non volatile memory | |
US10439642B2 (en) | Error correction method of data storage device | |
US20220035704A1 (en) | Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices | |
US10379786B2 (en) | Semiconductor devices | |
TW201820345A (zh) | 包括行冗餘的儲存裝置 |