TWI808098B - Device for supporting error correction code and test method thereof - Google Patents

Device for supporting error correction code and test method thereof Download PDF

Info

Publication number
TWI808098B
TWI808098B TW107133098A TW107133098A TWI808098B TW I808098 B TWI808098 B TW I808098B TW 107133098 A TW107133098 A TW 107133098A TW 107133098 A TW107133098 A TW 107133098A TW I808098 B TWI808098 B TW I808098B
Authority
TW
Taiwan
Prior art keywords
data
memory
error
bit
engine
Prior art date
Application number
TW107133098A
Other languages
Chinese (zh)
Other versions
TW201921245A (en
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 南韓商三星電子股份有限公司
Publication of TW201921245A publication Critical patent/TW201921245A/en
Application granted granted Critical
Publication of TWI808098B publication Critical patent/TWI808098B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices

Abstract

A device for supporting a test mode for memory testing according to an example embodiment of the inventive concepts may include a memory configured to receive and store writing data and output reading data from the stored writing data; an error correction code (ECC) engine configured to generate the writing data by encoding input data and to generate output data by correcting error bits of N bits or less included in receiving data when N is a positive integer; and an error insertion circuit configured to provide the reading data to the ECC engine as the receiving data in a normal mode and to provide data obtained by inverting at least one bit of less than N bits of the reading data to the ECC engine as the receiving data in the test mode.

Description

用於支持錯誤更正碼的裝置及其測試方法Device for supporting error correction code and testing method thereof

本發明概念是有關於用於支持錯誤更正碼的裝置,且更具體而言是有關於用於支持錯誤更正碼的裝置及/或其測試方法。The inventive concepts are related to devices for supporting error correction codes, and more particularly to devices for supporting error correction codes and/or testing methods thereof.

錯誤更正碼(error correction code,ECC)系統可用於更正在已通過有雜訊通道(noisy channel)的資料中出現的錯誤。舉例而言,錯誤更正碼系統可用於更正在經由通訊通道接收到的資料中出現的錯誤,或可用於更正在自記憶體讀取的資料中出現的錯誤。根據錯誤更正碼系統,可產生對原始資料添加冗餘的碼字,且可藉由更正在已通過有雜訊通道的資料中出現的錯誤來恢復所述原始資料。錯誤更正碼系統可具有可更正錯誤數量,且可更正錯誤數量愈大,用以實施錯誤更正碼系統的資源便愈多,且被添加至錯誤更正碼的冗餘亦可增加。因此,可出現於有雜訊通道中的錯誤的數量可僅限於給定錯誤更正碼系統可更正的錯誤數量範圍。舉例而言,若有雜訊通道是錯誤更正碼系統中的記憶體,則可需要驗證可能出現於記憶體中的錯誤數量是否處於給定錯誤更正碼系統可更正的錯誤數量的範圍內。An error correction code (ECC) system can be used to correct errors in data that has passed through a noisy channel. For example, an error-correcting code system can be used to correct errors in data received over a communication channel, or in data read from memory. According to an error-correcting code system, codewords can be generated that add redundancy to original data, and the original data can be restored by correcting errors that occur in data that have passed through a noisy channel. An error correcting code system can have a correctable error count, and the larger the correctable error count, the more resources are available to implement the error correcting code system, and the redundancy added to the error correcting code can also increase. Therefore, the number of errors that can occur in a noisy channel can be limited to the range of the number of errors that can be corrected by a given error correction code system. For example, if the noisy channel is a memory in an ECC system, it may be necessary to verify that the number of errors that may occur in the memory is within the range of the number of errors that can be corrected by a given ECC system.

本發明概念提供用於支持錯誤更正碼(ECC)的裝置,且更具體而言提供用於支持錯誤更正碼以容易地判斷有雜訊通道是否具有錯誤更正碼系統可更正的錯誤數量範圍的裝置及/或其測試方法。The inventive concept provides an apparatus for supporting error correction codes (ECC), and more specifically, an apparatus for supporting error correction codes to easily determine whether a noisy channel has a range of the number of errors correctable by an error correction code system and/or a testing method thereof.

根據實例性實施例,一種支持用於記憶體測試的測試模式的裝置可包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生所述寫入資料並藉由更正接收資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將所述讀取資料提供至所述錯誤更正碼引擎作為所述接收資料,並在所述測試模式中將藉由對所述讀取資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述錯誤更正碼引擎作為所述接收資料。According to an exemplary embodiment, an apparatus supporting a test mode for a memory test may include: a memory configured to receive and store write data and output read data from the stored write data; an error correction code (ECC) engine configured to generate the write data by encoding input data and generate output data by correcting error bits of N bits or less included in the received data, where N is a positive integer; and an error insertion circuit configured to provide the read data to the An error correction code engine serves as the received data, and data obtained by inverting at least one bit less than N bits of the read data is provided to the error correction code engine as the received data in the test mode.

根據實例性實施例,一種支持用於記憶體測試的測試模式的裝置可包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生經編碼資料並藉由更正所述讀取資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將所述經編碼資料提供至所述記憶體作為所述寫入資料,並在所述測試模式中將藉由對所述經編碼資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述記憶體作為所述寫入資料。According to an exemplary embodiment, an apparatus supporting a test mode for a memory test may include: a memory configured to receive and store write data and output read data from the stored write data; an error correction code (ECC) engine configured to generate encoded data by encoding input data and generate output data by correcting error bits of N bits or less included in the read data, where N is a positive integer; and an error insertion circuit configured to provide the encoded data in a normal mode. to the memory as the write data, and providing data obtained by inverting at least one bit less than N bits of the encoded data to the memory in the test mode as the write data.

根據實例性實施例,一種對包括錯誤更正碼(ECC)引擎及記憶體且被配置成更正N位元或少於N位元的錯誤位元的裝置進行測試的方法(其中N是正整數)可包括:藉由由所述錯誤更正碼引擎對輸入資料進行編碼而產生寫入資料;將所述寫入資料寫入所述記憶體中,讀取所述寫入資料,並輸出讀取資料;以及藉由由所述錯誤更正碼引擎更正所述讀取資料的錯誤而產生輸出資料,其中所述寫入所述寫入資料及所述輸出所述讀取資料包括:將所述寫入資料及所述讀取資料中的至少一者中的少於N位元的至少一個位元反轉。According to an exemplary embodiment, a method of testing a device including an error correction code (ECC) engine and a memory configured to correct error bits of N bits or less (wherein N is a positive integer) may include: generating write data by encoding input data by the error correction code engine; writing the write data into the memory, reading the write data, and outputting the read data; and generating output data by correcting an error of the read data by the error correction code engine, wherein the writing the write data data and said outputting said read data includes inverting at least one bit less than N bits of at least one of said write data and said read data.

圖1是根據本發明概念的實例性實施例用於支持錯誤更正碼(ECC)的裝置10的方塊圖。更詳細而言,圖1示出包括記憶體300的裝置10,記憶體300是錯誤更正碼系統中的有雜訊通道。如圖1中所示,裝置10可包括錯誤更正碼引擎100、錯誤插入電路200及/或記憶體300。FIG. 1 is a block diagram of an apparatus 10 for supporting error correction code (ECC) according to an exemplary embodiment of the inventive concept. In more detail, FIG. 1 shows device 10 including memory 300, which is a noisy channel in an ECC system. As shown in FIG. 1 , the device 10 may include an error correction code engine 100 , an error insertion circuit 200 and/or a memory 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)、記憶卡等。The device 10 may be any device 10 comprising a memory 300 for storing input data D_IN and using the stored data as output data D_OUT. In some example embodiments, device 10 may be, but is not limited to, a system-on-chip (SoC), such as an application processor (AP). In some exemplary embodiments, the device 10 may be, but not limited to, a semiconductor memory device for storing input data D_IN and outputting output data D_OUT according to external commands, such as dynamic random access memory (DRAM), flash memory, and the like. In some exemplary embodiments, the device 10 may be, but not limited to, a memory system for storing the input data D_IN and outputting the output data D_OUT in response to a host request, such as a solid state drive (SSD), a memory card, and the like.

錯誤更正碼引擎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產生的資料)的一部分及冗餘。The ECC engine 100 can generate encoded data D_ENC by encoding input data D_IN, and can generate output data D_OUT by decoding received data D_RX. The memory 300 in the device 10 may be a noisy channel. For example, the reason for the noise may be but not limited to: the memory cell storing data in the memory 300 is defective, and/or the movement path of the write data D_WR set in the memory 300 or the movement path of the read data D_RD output from the memory 300 is defective. The device 10 may include an error correction code engine 100 , and the error correction code engine 100 may generate encoded data D_ENC by adding redundancy to input data D_IN to be stored in the memory 300 , and may generate output data D_OUT by correcting errors based on redundancy in received data D_RX received from the memory 300 . In some exemplary embodiments, the encoded data D_ENC may be provided to the memory 300 in units of codewords, the codewords including a part of the input data D_IN (or data generated from the input data D_IN) and redundancy.

錯誤更正碼引擎100可以各種方式執行編碼及解碼。舉例而言,錯誤更正碼引擎100可基於但不限於錯誤更正碼(諸如,AN碼、BCH碼、漢明(Hamming)碼、極化碼(Polar code)、Turbo碼等)來執行編碼及解碼。在一些實例性實施例中,錯誤更正碼引擎100可包括處理器及用於儲存由處理器執行的指令的記憶體,或者在一些實例性實施例中可包括藉由邏輯合成而設計的邏輯電路。Error correcting code engine 100 may perform encoding and decoding in various ways. For example, the ECC engine 100 can perform encoding and decoding based on but not limited to ECC codes (such as AN codes, BCH codes, Hamming codes, Polar codes, Turbo codes, etc.). In some exemplary embodiments, the ECC engine 100 may include a processor and a memory for storing instructions executed by the processor, or in some exemplary embodiments may include a logic circuit designed by logic synthesis.

錯誤更正碼引擎100可具有可更正錯誤數量。舉例而言,當錯誤更正碼引擎100是根據2位元更正型錯誤更正碼系統來設計時,錯誤更正碼引擎100可偵測並更正接收資料D_RX中少於或等於2個位元的錯誤,舉例而言,1位元錯誤及2位元錯誤。在一些實例性實施例中,錯誤更正碼引擎100可偵測到接收資料D_RX中的錯誤數量超出錯誤更正碼引擎100可更正的錯誤數量,或者可產生指示無法進行錯誤更正的訊號。The error correcting code engine 100 may have a number of correctable errors. For example, when the ECC engine 100 is designed according to the 2-bit correction type ECC system, the ECC engine 100 can detect and correct errors of less than or equal to 2 bits in the received data D_RX, for example, 1-bit errors and 2-bit errors. In some exemplary embodiments, the ECC engine 100 may detect that the number of errors in the received data D_RX exceeds the number of errors that the ECC engine 100 can correct, or may generate a signal indicating that error correction cannot be performed.

隨著錯誤更正碼引擎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。As the number of errors correctable by the ECC engine 100 increases, the redundancy added to the input data D_IN to generate the encoded data D_ENC may increase, and the storage capacity of the memory 300 for storing the input data D_IN may decrease. Furthermore, as the number of errors correctable by the ECC engine 100 increases, the resources (such as area, power, and/or time) consumed by the ECC engine 100 may also increase. Therefore, the ECC engine 100 can be designed with a correctable error amount determined based on the noisy channel (ie, the bit error rate (BER) occurring in the memory 300 ). For example, when the expected bit error rate of the memory 300 is 0.2 and the data unit processed by the ECC engine 100 is a 10-bit data unit, the number of errors correctable by the ECC engine 100 can be designed to be 2 bits or more. When the error correction code engine 100 has an N-bit correctable error number (N>0), the error correction code system can be called an N-bit correction type error correction code system, and the error correction code engine 100 can be called an N-bit correction type error correction code engine 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可包括處理器及用於儲存由處理器執行的指令的記憶體,或者在一些實例性實施例中可包括藉由邏輯合成而設計的邏輯電路。The error insertion circuit 200 can selectively insert errors between the ECC engine 100 and the memory 300 according to the mode signal C_MODE. As shown in FIG. 1 , the error insertion circuit 200 can receive the encoded data D_ENC from the ECC engine 100 and provide the write data D_WR to the memory 300 . The error insertion circuit 200 can also receive the read data D_RD from the memory 300 and provide the received data D_RX to the ECC engine 100 . The mode signal C_MODE can indicate the mode of the device 10, and the device 10 can operate in the normal mode and the test mode according to the mode signal C_MODE. The error insertion circuit 200 may include a processor and a memory for storing instructions executed by the processor, or may include a logic circuit designed by logic synthesis in some example embodiments.

錯誤插入電路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被啟用。The error insertion circuit 200 may include at least one bit error circuit BE. The bit error circuit BE can receive an input signal IN indicating a value of a bit, and can output an output signal OUT indicating a value of a bit. As shown in FIG. 1, the bit error circuit BE may include an inverter INV and a switch SW, and the output signal OUT may be the same as the input signal IN or may be the same as a signal obtained by inverting the input signal IN. In some exemplary embodiments, the switch SW of the bit error circuit BE may be controlled based on the mode signal C_MODE input to the error insertion circuit 200 . For example, when the mode signal C_MODE indicates the normal mode, the switch SW can be controlled to make the output signal OUT coincide with the input signal IN. For example, when the mode signal C_MODE indicates the test mode, the switch SW can be controlled to make the output signal OUT consistent with the signal obtained by inverting the input signal IN. When the output signal OUT consistent with the input signal IN is output, it may indicate that the bit error circuit BE is disabled, and when the output signal OUT obtained by inverting the input signal IN is output, it may indicate that the bit error circuit BE is enabled.

在測試模式中,錯誤插入電路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中。In the test mode, the error insertion circuit 200 may use the bit error circuit BE to insert errors into the data received by the error insertion circuit 200 . In some exemplary embodiments, the error insertion circuit 200 may generate the write data D_WR by inserting at least one bit error into the encoded data D_ENC provided by the error correction code engine 100 in response to the mode signal C_MODE indicating a test mode, as described later below with reference to FIG. 2A . In some exemplary embodiments, in response to the mode signal C_MODE indicating the test mode, the error insertion circuit 200 may also generate the received data D_RX by inserting at least one bit error into the read data D_RD provided from the memory 300 , as described later with reference to FIG. 2B . Furthermore, in some exemplary embodiments, the error insertion circuit 200 may insert at least one bit error into the encoded data D_ENC and the read data D_RD respectively in response to the mode signal C_MODE indicating the test mode.

如此,在測試模式中,錯誤插入電路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出問題。Thus, in the test mode, the error insertion circuit 200 can insert at least one bit error, and thus can verify whether the memory 300 is acceptable or defective. Defects that lead to memory 300 errors may include not only initial defects that occur during the manufacturing process of memory 300 , but also defects that occur later during the cycle of shipping and/or using memory 300 or device 10 including memory 300 . Therefore, during the manufacturing process of the memory 300 or the device 10 , whether the memory 300 has a specific error margin can be verified according to the number of errors correctable by the ECC engine 100 . For example, when the ECC engine 100 corresponds to a 3-bit ECC system, the memory 300 can be manufactured with a 1-bit error tolerance. Therefore, even if a 1-bit error occurs due to a defect of the memory 300, the memory 300 can still be used normally. Therefore, during the manufacturing process of memory 300 or device 10, memory 300 may be tested to ship only memory 300 with 2-bit errors or less, ie, memory 300 with 1-bit error tolerance. That is, the memory 300 or the device 10 can be tested during the manufacturing process so that errors can be corrected by the 3-bit error correction code engine 100, so that even a 1-bit error will not cause problems with the device 10 when the user uses the device 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的實例作為有雜訊通道,但應瞭解,根據本發明概念的實例性實施例可容易地驗證對可由具有其他雜訊的通道(例如,通訊通道)預測的錯誤數量提供額外容限的錯誤更正碼系統。The error insertion circuit 200 can artificially reduce the number of errors of the ECC system correctable by the ECC engine 100 by inserting the number of errors corresponding to the error tolerance of the memory 300 . For example, when the device 10 includes a 3-bit correction type ECC engine 100 and the error insertion circuit 200 inserts 1-bit errors, then the memory 300 can be considered to always contain 1-bit errors, and thus the device 10 can correspond to a 2-bit ECC system. In addition, in the test mode, the error insertion circuit 200 can use a bit error circuit BE (as shown in FIG. 1 ) with a simple structure to insert errors between the error correction code engine 100 and the memory 300 . Whether the memory 300 or the device 10 is acceptable or faulty can be determined according to whether the error correction code engine 100 has successfully performed error correction. For example, when the memory 300 is manufactured to be 1-bit error tolerant, the error insertion circuit 200 may test the memory 300 or the device 10 in the test mode by inserting 1-bit errors and determining whether the error correction code engine 100 successfully corrects the error. Therefore, the memory 300 can be easily verified in the device 10 including the memory 300 and supporting the error correction code, and thus the productivity of the device 10 can be improved. Although FIG. 1 shows an example of memory 300 as a noisy channel, it should be appreciated that an error correction code system that provides additional tolerance to the number of errors predictable by an otherwise noisy channel (e.g., a communication channel) can be readily verified according to example embodiments of inventive concepts.

記憶體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))。The memory 300 can receive and store the write data D_WR and can output the read data D_RD from the stored write data D_WR. The memory 300 may include a plurality of memory cells for storing data. In some exemplary embodiments, the memory 300 may include non-volatile memory (for example, electrically erasable programmable read-only memory (EEPROM), flash memory, phase change random access memory (phase change random access memory, PRAM), resistive random access memory (resistance random access memory) memory, RRAM), nano floating gate memory (nano floating gate memory, NFGM), polymer random access memory (polymer random access memory, PoRAM), magnetic random access memory (magnetic random access memory, MRAM) or ferroelectric random access memory (ferroelectric random access memory, FRAM)). In some exemplary embodiments, the memory 300 may include a volatile memory (for example, DRAM, SRAM, mobile DRAM, double data rate synchronous DRAM (DDR SDRAM), low power double data rate (low power double data rate, LPDDR) synchronous SRAM, graphic double data rate (graphic do uble data rate (GDDR) synchronous static random access memory or Rambus dynamic random access memory (rambus RDRAM)).

圖2A及圖2B是說明根據本發明概念的實例性實施例的圖1所示裝置10的實例的方塊圖。如上文參考圖1所述,圖2A的裝置10a及圖2B的裝置10b可根據自外部提供的模式訊號C_MODE各自支持正常模式及測試模式。在下文中,在圖2A及圖2B中,與圖1中相同的參考編號標示相同的元件,且因此,本文將不再對其進行詳細說明。2A and 2B are block diagrams illustrating an example of device 10 shown in FIG. 1, according to an example embodiment of the inventive concept. As described above with reference to FIG. 1 , the device 10 a of FIG. 2A and the device 10 b of FIG. 2B can respectively support the normal mode and the test mode according to the mode signal C_MODE provided from the outside. Hereinafter, in FIGS. 2A and 2B , the same reference numerals as in FIG. 1 designate the same elements, and therefore, detailed description thereof will not be given herein.

參考圖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可彼此一致。Referring to FIG. 2A, the device 10a may include an error correction code engine 100a, an error insertion circuit 200a, and a memory 300a. The error insertion circuit 200a may provide the encoded data D_ENC provided from the error correction code engine 100a in the normal mode to the memory 300a as the write data D_WR, and/or may provide the write data D_WR generated by inserting at least one bit error into the encoded data D_ENC to the memory 300a. The ECC engine 100a can receive the read data D_RD output from the memory 300a, and thus the read data D_RD and the received data D_RX of FIG. 1 can be consistent with each other in the test mode.

在測試模式中,可將輸入資料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是否有缺陷。In the test mode, the input data D_IN can be stored in the memory 300a, and then the output data D_OUT can be generated from the read data D_RD output from the memory 300a. For example, after the operation of sequentially storing the same input data D_IN in the entire memory 300a is performed, the output data D_OUT can be generated from the read data D_RD sequentially output from the entire memory 300a. In some exemplary embodiments, the input data D_IN may be compared with the output data D_OUT generated by the ECC engine 100a, and when the input data D_IN and the output data D_OUT are inconsistent with each other, it may be determined that the memory 300a is defective. In some exemplary embodiments, when the error correction code engine 100a cannot correct errors in the read data D_RD (that is, the errors in the read data D_RD exceed the number of errors correctable by the error correction code engine 100a), the error correction code engine 100a may output a signal indicating this situation. In addition, it can be determined whether the memory 300a is defective according to the signal output from the ECC engine 100a.

錯誤插入電路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所插入的位元錯誤的位置做出改變的實例。The error insertion circuit 200a can change the position of at least one bit error inserted in the test mode. For example, the error insertion circuit 200a may write the write data D_WR generated by inserting at least one bit error into the encoded data D_ENC into a specific area of the memory 300a, and may output the read data D_RD by reading the data stored in the specific area of the memory 300a. Next, the error insertion circuit 200a may write the write data D_WR including at least one bit error in a location different from the previous location of the same encoded data D_ENC in the same area as the previous area of the previous memory 300a, and may read data stored in the same area as the previous area of the memory 300a, thereby outputting the read data D_RD. When the actual bit errors caused by the memory 300a appear in the bit errors inserted by the error insertion circuit 200a, the bit errors inserted by the error insertion circuit 200a cannot be used as the error tolerance of the memory 300a. Therefore, the operation of writing the generated write data D_WR and outputting the read data D_RD can be repeated while changing the bit error insertion position of the same area and the same encoded data D_ENC. Examples of making changes to the positions of bit errors inserted by the error insertion circuit 200b will be explained later below with reference to FIGS. 3A and 3B and FIG. 4 .

參考圖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可彼此一致。Referring to FIG. 2B, the device 10b may include an error correction code engine 100b, an error insertion circuit 200b, and a memory 300b. The error insertion circuit 200b may provide the read data D_RD provided from the memory 300b in the normal mode to the error correction code engine 100b as the reception data D_RX, and/or may provide the reception data D_RX generated by inserting at least one bit error into the read data D_RD to the error correction code engine 100b in the test mode. The memory 300b can receive the write data D_WR output from the ECC engine 100b. According to the example of FIG. 2B , the encoded data D_ENC and the written data D_WR of FIG. 1 may be consistent with each other in the test mode.

如上文參考圖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的相同區域執行讀取操作一次。As described above with reference to FIG. 2B , the error insertion circuit 200b can change the position of at least one bit error inserted in the test mode. For example, the error insertion circuit 200b may provide the received data D_RX generated by inserting at least one bit error into the read data D_RD output by reading the area written into the write data D_WR to the ECC engine 100b. Thereafter, the error insertion circuit 200b may provide the error correction code engine 100b with the received data D_RX including at least one bit error inserted into the read data D_RD output by reading the same area as before at a position different from the previous position. In the device 10 a of FIG. 2A , the read data D_RD can be output multiple times by writing the write data D_WR to the same area multiple times according to the bit error position and reading the written data multiple times. However, in the device 10b of FIG. 2B, the read data D_RD may be output multiple times by writing the write data D_WR to the same area once and reading the write data multiple times. In addition, as will be explained later with reference to FIG. 6B , in the device 10 b of FIG. 2B , the read operation can be performed once on the same area of the memory 300 b.

在下文中,將主要參考以下實例闡述本發明概念的實例性實施例:在測試模式中錯誤插入電路200a將藉由將位元錯誤插入至經編碼資料D_ENC中而產生的寫入資料D_WR儲存於記憶體300a中,但並不僅限於此。本發明概念的實例性實施例亦可應用於包括圖2B的裝置10b以及圖2A及圖2B的錯誤插入電路200a及錯誤插入電路200b全部的裝置。Hereinafter, an exemplary embodiment of the inventive concept will be explained mainly with reference to the following example: the error insertion circuit 200a stores the write data D_WR generated by inserting bit errors into the encoded data D_ENC in the memory 300a in the test mode, but is not limited thereto. Exemplary embodiments of the inventive concept may also be applied to a device including all of the device 10 b of FIG. 2B and the error insertion circuit 200 a and the error insertion circuit 200 b of FIGS. 2A and 2B .

圖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 and 3B are block diagrams illustrating an example of the error insertion circuit 200 shown in FIG. 1, according to an example embodiment of the inventive concept. In more detail, FIGS. 3A and 3B illustrate an example of the error insertion circuit 200a of FIG. 2A. As mentioned above with reference to FIG. 2A , in the test mode, the error insertion circuit 200 a ′ of FIG. 3A and the error insertion circuit 200 a ″ of FIG. 3B can insert at least one bit error into the n-bit encoded data D_ENC to generate n-bit written data D_WR (n>0). In the following, FIG. 3A and FIG. 3B will be described with reference to FIG. 2A , and no further description will be given here.

參考圖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的位元訊號。Referring to FIG. 3A , the error insertion circuit 200 a ′ may include a bit selection circuit 210 ′ and m bit error circuits 220 ′ (n>m>0). The m bit error circuits 220' may include a plurality of bit error circuits BE1 to BEm. The bit selection circuit 210' can receive the mode signal C_MODE, and provide up to m bits of the selection signal SEL to m bit error circuits 220' respectively. In response to the mode signal C_MODE indicating the normal mode, the bit selection circuit 210' can generate the selection signal SEL to disable all the m bit error circuits 220', that is, directly output the bit signal of the encoded data D_ENC as the bit signal of the write data D_WR. On the other hand, in response to the mode signal C_MODE indicating the test mode, the bit selection circuit 210' can generate the selection signal SEL to enable at least one of the m bit error circuits 220', that is, output the bit signal obtained by inverting the bit signal of the encoded data D_ENC as the bit signal of the written data 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]順序進行被排列。As illustrated in FIG. 3A, m bit error circuits 220' may be arranged to correspond to m bits out of n bits of encoded data D_ENC. The arrangement of the m-bit error circuits 220' shown in FIG. 3A is only exemplary, and unlike the arrangement shown in FIG. 3A, the m-bit error circuits 220' may be arranged in m-bit D_ENC[n:n-m+1] order starting from the most significant bit (MSB) of the encoded data D_ENC, or may be arranged in m-bit D_ENC[m:1] order starting from the most significant bit of the encoded data D_ENC.

在測試模式中,位元選擇電路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。In the test mode, the bit selection circuit 210' can simultaneously enable bit error circuits corresponding to the error tolerance of the memory 300a among the m bit error circuits 220'. For example, if the required error tolerance in the memory 300a is one bit, the bit selection circuit 210' can enable one of the m bit error circuits 220'. In addition, the bit selection circuit 210' can replace the bit error circuit to be enabled. For example, the bit selection circuit 210 ′ can generate the selection signal SEL so that when the same encoded data D_ENC is continuously written K times into the same area of the memory 300 a, different K bit error circuits are enabled. As described later below with reference to FIG. 4 , the number of times K of writing data D_WR generated from the same encoded data D_ENC to be written into the same area of the memory 300a can be determined based on the number of bits correctable by the error correction code engine 100a and the error tolerance of the memory 300a.

參考圖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"中的至少一者被啟用。Referring to FIG. 3B, the error insertion circuit 200a" may include a bit selection circuit 210" and n bit error circuits 220". That is, the error insertion circuit 200a" may include n bit error circuits 220" respectively corresponding to n bits of the encoded data D_ENC. The n bit error circuits 220" may include a plurality of bit error circuits BE1 to BEn. The bit selection circuit 210" can receive the mode signal C_MODE, and can provide n bits of the selection signal SEL to n bit error circuits 220" respectively. The bit selection circuit 210" can generate the selection signal SEL in response to the mode signal C_MODE indicating the normal mode, so that all n bit error circuits 220" are disabled. On the other hand, the bit selection circuit 210" can generate the selection signal S in response to the mode signal C_MODE indicating the test mode EL such that at least one of the n bit error circuits 220" is enabled.

圖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加以闡述。FIG. 4 is a view of an example of writing data D_WR shown in FIG. 2A in a test mode according to an exemplary embodiment of inventive concepts. Referring to FIG. In more detail, FIG. 4 shows the written data D_WR generated from the same encoded data D_ENC and continuously written into the memory 300 a of FIG. 2A . In the example of FIG. 4, the ECC engine 100a of FIG. 2A may correspond to a 2-bit correction ECC system, and the required error tolerance in the memory 300a may be 1 bit. Therefore, the error insertion circuit 200a can generate the write data D_WR with 1-bit error inserted by inverting 1 bit in the encoded data D_ENC. In FIG. 4, shaded portions represent bits inverted by the error insertion circuit 200a. Hereinafter, FIG. 4 will be explained with reference to FIG. 2A.

可基於錯誤更正碼引擎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。The number K of writing data D_WR generated from the same encoded data D_ENC to be written into the same area of the memory 300a can be determined based on the number of bits correctable by the ECC engine 100a and the error tolerance of the memory 300a. As shown in the example of FIG. 4, when N is 2 and the error tolerance of the memory 300a is 1 bit, the memory 300a outputting read data D_RD including two or more true bit errors caused by the defect of the memory 300a can be determined to be defective. When the bit error generated by the error insertion circuit 200a is inserted into the same position as the real bit error caused by the defect of the memory 300a, since the real bit error is corrected by the inserted bit error or the inserted bit error and the real bit error are included in the read data D_RD as one bit error so that the read data D_RD includes less bit errors than the real bit error, the effect of the inserted bit error can be eliminated. Therefore, during the processing of the read data D_RD by the error correction code engine 100a, the errors of the read data D_RD can be corrected normally and the memory 300a determined to be defective can be determined to be acceptable. In order to prevent the bit errors inserted by the error insertion circuit 200a from being arranged in the same position as the real bit errors, the error insertion circuit 200a may change the position where the bit errors are inserted. In the example of FIG. 4 , in order to determine that the memory 300a outputting the read data D_RD including two true bit errors is defective, the error insertion circuit 200a may sequentially generate the write data D_WR including bit errors at three different positions.

參考圖4,寫入資料D_WR可包括x位元數目個資料位元及y位元數目個同位位元(n=x+y),且錯誤插入電路200a可藉由對資料位元中的第一資料位元D1進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第一資料位元D1進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。Referring to FIG. 4, the write data D_WR may include x number of data bits and y number of parity bits (n=x+y), and the error insertion circuit 200a may insert bit errors by inverting the first data bit D1 among the data bits. The write data D_WR obtained by inverting the first data bit D1 of the encoded data D_ENC may be written in the memory 300a, and the read data D_RD may be provided to the ECC engine 100a by reading the data stored in the area of the memory 300a where the write data D_WR is written.

然後,錯誤插入電路200a可藉由對資料位元的第三資料位元D3進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第三資料位元D3進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。Then, the error insertion circuit 200a may insert bit errors by inverting the third data bit D3 of the data bits. The write data D_WR obtained by inverting the third data bit D3 of the encoded data D_ENC may be written in the memory 300a, and the read data D_RD may be provided to the ECC engine 100a by reading the data stored in the area of the memory 300a where the write data D_WR is written.

最後,錯誤插入電路200a可藉由對資料位元的第五資料位元D5進行反轉來插入位元錯誤。可將藉由對經編碼資料D_ENC的第五資料位元D5進行反轉而獲得的寫入資料D_WR寫入記憶體300a中,且可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料來將讀取資料D_RD提供至錯誤更正碼引擎100a。應瞭解,圖4中被插入位元錯誤的位置僅是實例,且可將位元錯誤插入至三個不同位置中的任一者中。Finally, the error insertion circuit 200a can insert bit errors by inverting the fifth data bit D5 of the data bits. The write data D_WR obtained by inverting the fifth data bit D5 of the encoded data D_ENC may be written in the memory 300a, and the read data D_RD may be provided to the ECC engine 100a by reading the data stored in the area of the memory 300a where the write data D_WR is written. It should be appreciated that the locations where bit errors are inserted in FIG. 4 are examples only, and that bit errors may be inserted into any of three different locations.

當使用n位元更正型錯誤更正碼引擎100a且記憶體300a的錯誤容限是1位元時,對記憶體300a的相同區域進行寫入操作及讀取操作的重複次數K可與n+1一致。在一些實例性實施例中,若寫入資料或讀取資料的位元數目相對大,亦即,若由錯誤更正碼引擎100a處理的資料單元的大小相對大,則插入於不同位置處的所有位元錯誤不可能皆與真正位元錯誤在相同位置處。因此,錯誤插入電路200a可執行少於三次(例如,兩次)寫入操作及讀取操作,而非執行三次寫入操作及讀取操作。舉例而言,在圖4的實例中,第一資料位元D1及第三資料位元D3兩者中不可能皆存在真正位元錯誤,因此可藉由僅執行兩次寫入操作及讀取操作來縮短記憶體300a或裝置10a的測試時間。When the n-bit correcting ECC engine 100a is used and the error tolerance of the memory 300a is 1 bit, the number of repetitions K of writing and reading operations to the same area of the memory 300a may be equal to n+1. In some exemplary embodiments, if the number of bits for writing data or reading data is relatively large, that is, if the size of the data unit processed by the error correction code engine 100a is relatively large, it is unlikely that all bit errors inserted at different locations are at the same location as true bit errors. Therefore, the error insertion circuit 200a may perform less than three (eg, two) write operations and read operations instead of performing three write operations and read operations. For example, in the example of FIG. 4 , it is impossible for both the first data bit D1 and the third data bit D3 to have a true bit error, so the test time of the memory 300a or the device 10a can be shortened by only performing two write operations and a read operation.

圖5是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。更詳細而言,圖5示出在測試模式中測試圖2A的裝置10a的方法。在下文中,將參考圖2A對圖5加以闡述。FIG. 5 is a flowchart illustrating a method of testing a device for supporting error correction codes according to an exemplary embodiment of the inventive concept. Referring to FIG. In more detail, FIG. 5 illustrates a method of testing the device 10a of FIG. 2A in a test mode. Hereinafter, FIG. 5 will be explained with reference to FIG. 2A.

在操作S110中,可執行初始化操作。舉例而言,如圖5中所示,可將變數i設定為1,且變數i可指示為在經編碼資料D_ENC中的不同位置處插入位元錯誤所執行的操作次數,亦即,執行後續一系列操作(S121至S126)的次數。In operation S110, an initialization operation may be performed. For example, as shown in FIG. 5, the variable i may be set to 1, and the variable i may indicate the number of operations performed to insert bit errors at different positions in the encoded data D_ENC, that is, the number of times the subsequent series of operations (S121 to S126) are performed.

在操作S121中,可執行對經編碼資料D_ENC的至少一個位元進行反轉的操作。舉例而言,錯誤插入電路200a可因應於模式訊號C_MODE指示測試模式而藉由對經編碼資料D_ENC的至少一個位元進行反轉來產生寫入資料D_WR。In operation S121, an operation of inverting at least one bit of the encoded data D_ENC may be performed. For example, the error insertion circuit 200a may generate the write data D_WR by inverting at least one bit of the encoded data D_ENC in response to the mode signal C_MODE indicating the test mode.

在操作S122中,可執行將寫入資料D_WR寫入至記憶體300a的操作,且在操作S123中,可執行自記憶體300a讀取所寫入資料的操作。可藉由讀取儲存於記憶體300a的被寫入寫入資料D_WR的區域中的資料而自記憶體300a輸出讀取資料D_RD。In operation S122, an operation of writing the write data D_WR to the memory 300a may be performed, and in operation S123, an operation of reading the written data from the memory 300a may be performed. The read data D_RD can be output from the memory 300a by reading the data stored in the area of the memory 300a where the write data D_WR is written.

在操作S124中,可更正讀取資料D_RD的錯誤。舉例而言,錯誤更正碼引擎100a可自記憶體300a接收讀取資料D_RD,並可更正讀取資料D_RD中的錯誤。然後,在操作S125中,可確定錯誤更正是否成功。舉例而言,錯誤更正碼引擎100a可具有可更正位元數目,且因此在讀取資料D_RD所包含的錯誤超出可更正位元數目時,錯誤更正可失敗。若錯誤更正失敗,則隨後可執行操作S130,且在操作S130中,可執行確定記憶體300a有缺陷的操作。另一方面,若錯誤更正成功,則隨後可執行操作S126。In operation S124, an error in reading the data D_RD may be corrected. For example, the error correction code engine 100a can receive the read data D_RD from the memory 300a, and can correct errors in the read data D_RD. Then, in operation S125, it may be determined whether error correction is successful. For example, the error correction code engine 100a may have a correctable bit number, and therefore, when the error contained in the read data D_RD exceeds the correctable bit number, the error correction may fail. If the error correction fails, then operation S130 may be performed, and in operation S130, an operation of determining that the memory 300a is defective may be performed. On the other hand, if the error correction is successful, then operation S126 may be performed.

在操作S126中,可判斷變數i是否等於K。亦即,可判斷寫入操作及讀取操作是否已被執行K次。如上文參考圖4所述,可基於錯誤更正碼引擎100a可更正的錯誤數量及記憶體300a的錯誤容限來確定K。若變數i等於K,則隨後可執行操作S140,且在操作S140中,可執行確定記憶體300a可接受的操作。另一方面,若變數i不等於K,則在操作S127中可將變數i增大1,且然後可隨後執行操作S121。在操作S121中,可對處於與先前經反轉位元的位置不同的位置處的位元進行反轉。In operation S126, it may be determined whether the variable i is equal to K. That is, it can be determined whether the write operation and the read operation have been performed K times. As described above with reference to FIG. 4 , K can be determined based on the number of errors correctable by the ECC engine 100a and the error tolerance of the memory 300a. If the variable i is equal to K, then operation S140 may be performed, and in operation S140, an operation of determining that the memory 300a is acceptable may be performed. On the other hand, if the variable i is not equal to K, the variable i may be increased by 1 in operation S127, and then operation S121 may be subsequently performed. In operation S121, a bit at a position different from that of a previously inverted bit may be inverted.

圖6A及圖6B是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。更詳細而言,圖6A及圖6B示出在測試模式中測試圖2B的裝置10b的方法。在下文中,將參考圖2B對圖6A及圖6B加以闡述。此外,與圖2B中相同的參考編號標示相同元件,且因此本文將不再對圖6A及圖6B進行贅述。6A and 6B are flowcharts illustrating a method of testing a device for supporting error correction codes according to an example embodiment of the inventive concept. In more detail, FIGS. 6A and 6B illustrate a method of testing the device 10b of FIG. 2B in the test mode. Hereinafter, FIG. 6A and FIG. 6B will be explained with reference to FIG. 2B . In addition, the same reference numerals as in FIG. 2B designate the same elements, and thus, repeated descriptions of FIGS. 6A and 6B will not be repeated herein.

參考圖6A,在操作S210中,可執行初始化操作。舉例而言,如圖6A中所示,可將變數i設定為1,且變數i可指示為在讀取資料D_RD的不同位置處插入位元錯誤所執行的操作次數,亦即,執行一系列操作(S231至S235)的次數。Referring to FIG. 6A, in operation S210, an initialization operation may be performed. For example, as shown in FIG. 6A, the variable i may be set to 1, and the variable i may indicate the number of operations performed to insert bit errors at different positions of the read data D_RD, that is, the number of times a series of operations (S231 to S235) are performed.

在操作S220中,可寫入寫入資料D_WR。如圖6A中所說明,用於對記憶體300b的特定區域進行驗證的寫入資料D_WR可被寫入一次,且可重複進行藉由讀取所儲存的寫入資料D_WR來輸出讀取資料D_RD的操作,如稍後在下文所述。如此,與圖5的實例相比,在圖6A及圖6B的實例中寫入操作的次數可減少,且因此測試記憶體300b所花費的時間可相對縮短。In operation S220, the write data D_WR may be written. As illustrated in FIG. 6A, the write data D_WR for verifying a specific area of the memory 300b may be written once, and the operation of outputting the read data D_RD by reading the stored write data D_WR may be repeated, as described later below. In this way, compared with the example of FIG. 5 , the number of write operations can be reduced in the example of FIGS. 6A and 6B , and thus the time spent testing the memory 300 b can be relatively shortened.

在操作S231中,可讀取所儲存的寫入資料D_WR。可藉由讀取儲存於記憶體300b的被寫入寫入資料D_WR的區域中的資料而自記憶體300b輸出讀取資料D_RD。In operation S231, the stored write data D_WR may be read. The read data D_RD can be output from the memory 300b by reading the data stored in the area of the memory 300b where the write data D_WR is written.

在操作S232中,可對讀取資料D_RD的至少一個位元進行反轉。舉例而言,錯誤插入電路200b可因應於模式訊號C_MODE指示測試模式而藉由對讀取資料D_RD的至少一個位元進行反轉來產生接收資料D_RX。In operation S232, at least one bit of the read data D_RD may be inverted. For example, the error insertion circuit 200b can generate the received data D_RX by inverting at least one bit of the read data D_RD in response to the mode signal C_MODE indicating the test mode.

在操作S233中,可更正接收資料D_RX的錯誤。舉例而言,錯誤更正碼引擎100b可自錯誤插入電路200b接收接收資料D_RX,並可更正接收資料D_RX中的錯誤。然後,在操作S234中,可判斷錯誤更正是否成功。舉例而言,錯誤更正碼引擎100b可具有可更正位元數目,且因此在接收資料D_RX所包含的錯誤超出可更正位元數目時,錯誤更正可失敗。若錯誤更正失敗,則隨後可執行操作S240,且在操作S240中,可執行確定記憶體300b有缺陷的操作。另一方面,若錯誤更正成功,則隨後可執行操作S235。In operation S233, errors of the received data D_RX may be corrected. For example, the error correction code engine 100b can receive the received data D_RX from the error insertion circuit 200b, and can correct errors in the received data D_RX. Then, in operation S234, it may be judged whether error correction is successful. For example, the error correction code engine 100b may have a number of correctable bits, and thus when the received data D_RX contains errors exceeding the number of correctable bits, the error correction may fail. If the error correction fails, then operation S240 may be performed, and in operation S240, an operation of determining that the memory 300b is defective may be performed. On the other hand, if the error correction is successful, then operation S235 may be performed.

在操作S235中,可判斷變數i是否等於K。亦即,可判斷讀取操作是否已被執行K次。如上文參考圖4所述,可基於錯誤更正碼引擎100b可更正的錯誤數量及記憶體300b的錯誤容限來確定K。若變數i等於K,則隨後可執行操作S250,且在操作S250中,可執行確定記憶體300b可接受的操作。另一方面,若變數i不等於K,則在操作S236中可將變數i增大1,且然後可隨後執行操作S231。在操作S231中,可對處於與先前經反轉位元的位置不同的位置處的位元進行反轉。In operation S235, it may be determined whether the variable i is equal to K. That is, it can be determined whether the read operation has been performed K times. As described above with reference to FIG. 4 , K can be determined based on the number of errors correctable by the ECC engine 100b and the error tolerance of the memory 300b. If the variable i is equal to K, then operation S250 may be performed, and in operation S250, an operation of determining that the memory 300b is acceptable may be performed. On the other hand, if the variable i is not equal to K, the variable i may be increased by 1 in operation S236, and then operation S231 may be subsequently performed. In operation S231, the bit at a position different from that of the previously inverted bit may be inverted.

參考圖6B,與圖6A的實例相比,對寫入資料D_WR的寫入操作可被執行一次以對記憶體300b的特定區域進行驗證,且對所儲存的寫入資料D_WR的讀取操作亦可被執行一次。亦即,由於藉由重複地讀取所儲存的寫入資料D_WR而輸出的讀取資料D_RD是相同的,因此可重複執行由錯誤插入電路200b進行的僅改變位元錯誤在讀取資料D_RD中的位置的操作。Referring to FIG. 6B , compared with the example of FIG. 6A , the write operation to the write data D_WR can be performed once to verify a specific area of the memory 300b, and the read operation to the stored write data D_WR can also be performed once. That is, since the read data D_RD output by repeatedly reading the stored write data D_WR is the same, the operation of changing only the position of a bit error in the read data D_RD by the error insertion circuit 200b can be repeatedly performed.

如圖6B中所說明,圖6B的操作可與圖6A的對應操作相同或類似。然而,若在圖6B的操作S235'中變數i不等於K,則在操作S236'中可將變數i增大1,且在操作S236'之後可執行操作S232'而非操作S231'。因此,操作S220'中寫入寫入資料D_WR的操作及操作S231'中讀取所寫入資料的操作可各自被執行一次,且在操作S232'中,可重複執行對讀取資料D_RD的至少一個位元進行反轉的操作。因此,與圖6A的實例相比,根據圖6B的實例,對記憶體300b進行讀取操作的次數可減少。As illustrated in FIG. 6B, the operations of FIG. 6B may be the same or similar to the corresponding operations of FIG. 6A. However, if the variable i is not equal to K in operation S235' of FIG. 6B, the variable i may be increased by 1 in operation S236', and operation S232' may be performed instead of operation S231' after operation S236'. Therefore, the operation of writing the write data D_WR in operation S220' and the operation of reading the written data in operation S231' may each be performed once, and in operation S232', the operation of inverting at least one bit of the read data D_RD may be repeatedly performed. Therefore, compared with the example of FIG. 6A , according to the example of FIG. 6B , the number of read operations to the memory 300 b can be reduced.

圖7A至圖7C是說明根據本發明概念的實例性實施例的位元選擇電路的實例的方塊圖。如上文參考圖3A及圖3B所述,圖7A至圖7C的位元選擇電路210a、位元選擇電路210b及位元選擇電路210c可接收模式訊號C_MODE並可輸出選擇訊號SEL。在下文中,將參考圖1對圖7A至圖7C加以闡述,且本文將不再對圖7A至圖7C中重複的說明進行贅述。7A to 7C are block diagrams illustrating examples of bit selection circuits according to example embodiments of inventive concepts. As described above with reference to FIG. 3A and FIG. 3B , the bit selection circuit 210 a , the bit selection circuit 210 b , and the bit selection circuit 210 c of FIGS. 7A to 7C can receive the mode signal C_MODE and output the selection signal SEL. Hereinafter, FIG. 7A to FIG. 7C will be explained with reference to FIG. 1 , and repeated explanations in FIG. 7A to FIG. 7C will not be repeated herein.

參考圖7A,位元選擇電路210a可包括位元圖案211。位元選擇電路210a可因應於模式訊號C_MODE指示測試模式而產生選擇訊號SEL,以使位元錯誤根據位元圖案211而出現於某一位置處。舉例而言,如上文參考圖4所述,當位元錯誤被插入於三個不同位置中時,位元圖案211可包括三種不同圖案。Referring to FIG. 7A , the bit selection circuit 210 a may include a bit pattern 211 . The bit selection circuit 210 a can generate a selection signal SEL in response to the mode signal C_MODE indicating a test mode, so that bit errors appear at a certain position according to the bit pattern 211 . For example, as described above with reference to FIG. 4, bit pattern 211 may include three different patterns when bit errors are inserted in three different locations.

參考圖7B,位元選擇電路210b可包括隨機數產生器212。因應於模式訊號C_MODE指示測試模式,位元選擇電路210b可產生選擇訊號SEL,以使位元錯誤根據由隨機數產生器212產生的隨機數而出現於一位置處。在一些實例性實施例中,隨機數產生器212可以是偽隨機數產生器。Referring to FIG. 7B , the bit selection circuit 210 b may include a random number generator 212 . In response to the mode signal C_MODE indicating the test mode, the bit selection circuit 210b can generate the selection signal SEL so that a bit error occurs at a position according to the random number generated by the random number generator 212 . In some example embodiments, random number generator 212 may be a pseudo-random number generator.

參考圖7C,位元選擇電路210c可更接收設定訊號C_SET。設定訊號C_SET可例如由自圖1中的裝置10外部接收到的訊號產生,且可包括關於位元選擇電路210c的設定資訊。在一些實例性實施例中,設定訊號C_SET可針對記憶體300的同一區域確定錯誤更正操作次數,亦即K。舉例而言,若錯誤更正碼引擎100可更正的錯誤數量是固定的,則可根據設定訊號C_SET對K做出改變以調整記憶體300的錯誤容限。另外,如上文參考圖4所述,為縮短測試時間,可例如根據設定訊號C_SET來對K做出改變,以使其等於或小於與錯誤更正碼引擎100可更正的錯誤數量對應的數目。Referring to FIG. 7C , the bit selection circuit 210c can further receive the setting signal C_SET. The setting signal C_SET may, for example, be generated by a signal received from outside the device 10 in FIG. 1 , and may include setting information about the bit selection circuit 210c. In some exemplary embodiments, the setting signal C_SET can determine the number of error correction operations, ie, K, for the same area of the memory 300 . For example, if the number of errors correctable by the ECC engine 100 is fixed, K can be changed according to the setting signal C_SET to adjust the error tolerance of the memory 300 . In addition, as described above with reference to FIG. 4 , in order to shorten the test time, K can be changed, for example, according to the setting signal C_SET so that it is equal to or smaller than the number corresponding to the number of errors correctable by the ECC engine 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加以闡述。FIG. 8 is a flowchart illustrating a method of testing a device for supporting error correction codes according to an exemplary embodiment of the inventive concept. For example, the method of FIG. 8 may represent a method of testing device 10 of FIG. 1 in test mode. In FIG. 8 , the encoded data D_ENC and the written data D_WR in FIG. 1 may be collectively referred to as the written data, and the read data D_RD and the received data D_RX may be collectively referred to as the read data. For example, "generating write data D_WR by inserting errors into encoded data D_ENC" in FIG. 1 may be referred to as "inserting errors into write data", and "generating reception data D_RX by inserting errors into read data D_RD" may be referred to as "inserting errors into read data". Hereinafter, FIG. 8 will be explained with reference to FIG. 1 .

在操作S20中,可藉由對輸入資料進行編碼而產生寫入資料。舉例而言,圖1的錯誤更正碼引擎100可藉由對輸入資料D_IN添加冗餘來產生寫入資料。In operation S20, write data may be generated by encoding the input data. For example, the ECC engine 100 in FIG. 1 can generate written data by adding redundancy to the input data D_IN.

在操作S40中,可將寫入資料寫入記憶體300中,並可自記憶體300輸出讀取資料。舉例而言,可將寫入資料寫入記憶體300的特定區域中,且可藉由讀取儲存於被寫入寫入資料的區域中的資料來輸出讀取資料。錯誤插入電路200可將錯誤插入至將被寫入記憶體300中的資料(亦即,寫入資料)中,或可將錯誤插入至自記憶體300讀取的資料(亦即,讀取資料)中。此外,在一些實例性實施例中,錯誤插入電路200可將錯誤插入至寫入資料及讀取資料兩者中。如圖8中所說明,操作S40可包括操作S42。In operation S40 , write data can be written into the memory 300 , and read data can be output from the memory 300 . For example, write data can be written in a specific area of the memory 300, and the read data can be output by reading data stored in the area where the write data is written. The error insertion circuit 200 can insert errors into data to be written into the memory 300 (ie, write data), or can insert errors into data read from the memory 300 (ie, read data). Furthermore, in some example embodiments, the error insertion circuit 200 can insert errors into both write data and read data. As illustrated in FIG. 8, operation S40 may include operation S42.

在操作S42中,可對寫入資料及/或讀取資料的至少一個位元進行反轉。舉例而言,錯誤插入電路200可包括位元錯誤電路BE,且可藉由啟用至少一個位元錯誤電路BE來對寫入資料及/或讀取資料的至少一個位元進行反轉。被禁用的位元錯誤電路BE可輸出輸入位元訊號。In operation S42, at least one bit of the write data and/or read data may be inverted. For example, the error insertion circuit 200 may include a bit error circuit BE, and at least one bit of the write data and/or the read data may be inverted by enabling at least one bit error circuit BE. The disabled bit error circuit BE can output the input bit signal.

在操作S60中,可藉由更正讀取資料的錯誤來產生輸出資料D_OUT。舉例而言,圖1的錯誤更正碼引擎100可藉由更正讀取資料的錯誤來產生輸出資料D_OUT。In operation S60, the output data D_OUT may be generated by correcting errors in the read data. For example, the error correction code engine 100 in FIG. 1 can generate output data D_OUT by correcting errors in read data.

在操作S80中,可偵測記憶體300的缺陷。在一些實例性實施例中,如上文參考圖5等所述,可根據在操作S60中錯誤更正是否成功來偵測記憶體300的缺陷。在一些實例性實施例中,如稍後在下文參考圖9所述,可基於在操作S60中所產生的輸出資料來偵測記憶體300中的缺陷。In operation S80, defects of the memory 300 may be detected. In some exemplary embodiments, as described above with reference to FIG. 5 , etc., the defect of the memory 300 can be detected according to whether the error correction is successful in operation S60. In some exemplary embodiments, as described later below with reference to FIG. 9 , defects in the memory 300 may be detected based on the output data generated in operation S60.

圖9是說明根據本發明概念的實例性實施例圖8所示操作S80的實例的流程圖。如上文參考圖8所述,可偵測記憶體的缺陷。如圖9中所說明,操作S80'可包括多個操作S82、S84及S86,且可參考圖1及圖8對圖9加以闡述。FIG. 9 is a flowchart illustrating an example of operation S80 shown in FIG. 8 according to an exemplary embodiment of the inventive concept. As described above with reference to FIG. 8, memory defects can be detected. As illustrated in FIG. 9 , operation S80 ′ may include a plurality of operations S82 , S84 and S86 , and FIG. 9 may be explained with reference to FIGS. 1 and 8 .

在一些實例性實施例中,可由測試裝置執行操作S80',所述測試裝置在圖1的裝置10外部將輸入資料D_IN提供至裝置10並接收輸出資料D_OUT。測試裝置可使用模式訊號C_MODE來將裝置10設定至測試模式。可將輸入資料D_IN提供至被設定為測試模式的裝置10,並接收與所提供輸入資料D_IN對應的輸出資料D_OUT。In some example embodiments, operation S80' may be performed by a test device that provides input data D_IN to device 10 and receives output data D_OUT outside device 10 of FIG. 1 . The test device can use the mode signal C_MODE to set the device 10 into the test mode. The input data D_IN can be provided to the device 10 set in the test mode, and the output data D_OUT corresponding to the provided input data D_IN can be received.

在操作S82中,可判斷輸入資料D_IN與輸出資料D_OUT彼此是否一致。舉例而言,測試裝置可判斷被提供至裝置10的輸入資料D_IN與對應的輸出資料D_OUT彼此是否一致。可在藉由編碼過程將輸入資料D_IN儲存於記憶體300中之後從自記憶體300讀取的資料接收經錯誤更正輸出資料D_OUT,並且測試裝置可將輸入資料D_IN與輸出資料D_OUT進行比較。如上文參考圖式所述,錯誤可被插入至自輸入資料D_IN編碼而來的資料中,且錯誤可被插入至自記憶體300讀取的資料中。In operation S82, it may be determined whether the input data D_IN and the output data D_OUT are consistent with each other. For example, the test device can determine whether the input data D_IN provided to the device 10 and the corresponding output data D_OUT are consistent with each other. The error-corrected output data D_OUT may be received from the data read from the memory 300 after the input data D_IN is stored in the memory 300 by an encoding process, and the test device may compare the input data D_IN with the output data D_OUT. As described above with reference to the drawings, errors can be inserted into the data encoded from the input data D_IN, and errors can be inserted into the data read from the memory 300 .

若在錯誤被插入的情況下輸入資料D_IN與輸出資料D_OUT仍彼此一致,則可確定記憶體300具有足夠的錯誤容限且在操作S84中記憶體300是接受的。另一方面,若輸入資料D_IN與輸出資料D_OUT彼此不一致,則可確定記憶體300的錯誤容限不足,且在操作S86中可確定記憶體300有缺陷。If the input data D_IN and the output data D_OUT are still consistent with each other even though the error is inserted, it can be determined that the memory 300 has sufficient error tolerance and the memory 300 is acceptable in operation S84. On the other hand, if the input data D_IN and the output data D_OUT are inconsistent with each other, it may be determined that the error tolerance of the memory 300 is insufficient, and it may be determined that the memory 300 is defective in operation S86.

圖10是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。更詳細而言,圖10示出作為有雜訊通道的記憶體裝置20,記憶體裝置20包括胞元陣列21。FIG. 10 is a block diagram illustrating an example of a device for supporting error correction codes according to an example embodiment of the inventive concept. In more detail, FIG. 10 shows a memory device 20 as a noisy channel, and the memory device 20 includes a cell array 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。The memory device 20 can receive the command CMD and the address ADDR, and can receive or transmit the data DATA. For example, the memory device 20 may receive a command CMD such as a write command, a read command, and an address ADDR corresponding to the command CMD from the memory controller. In addition, the memory device 20 can receive data DATA (ie, input data) from the memory controller or provide the data DATA (ie, output data) to the memory controller. Although FIG. 10 shows the command CMD, the address ADDR, and the data DATA separately, in some example embodiments, at least two of the command CMD, the address ADDR, and the data DATA may be transmitted through the same channel. As shown in FIG. 10 , the memory device 20 may include a cell array 21, a read/write circuit 22, an error insertion circuit 23, an error correction code engine 24, a column decoder 25_1, a row decoder 25_2, an address register 26_1, a data register 26_2, a control logic 27, and an input/output circuit 28.

胞元陣列21可包括多個記憶體胞元且可儲存資料。由於胞元陣列21中包含缺陷,因此可出現由讀取/寫入電路22自胞元陣列21讀取的資料不同於被寫入胞元陣列21中的資料的錯誤。為更正所述錯誤,錯誤更正碼引擎24可藉由對與寫入命令CMD一起接收到的資料DATA(亦即,輸入資料)進行編碼來產生資料,並可因應於讀取命令CMD而產生藉由更正自胞元陣列21讀取的資料中的錯誤所產生的資料DATA(亦即,輸出資料)。The cell array 21 can include a plurality of memory cells and can store data. Since the cell array 21 contains defects, an error may occur that the data read from the cell array 21 by the read/write circuit 22 is different from the data written into the cell array 21 . To correct the error, the error correction code engine 24 may generate data by encoding data DATA (ie, input data) received together with the write command CMD, and may generate data DATA (ie, output data) generated by correcting errors in data read from the cell array 21 in response to the read command CMD.

錯誤插入電路23可自輸入/輸出電路28接收模式訊號C_MODE,並可因應於模式訊號C_MODE指示測試模式而將錯誤插入至在讀取/寫入電路22與錯誤更正碼引擎24之間傳送的資料。此外,錯誤插入電路23可改變錯誤被插入的位置。由錯誤插入電路23插入的錯誤數量可對應於胞元陣列21的錯誤容限。因此,可容易地驗證胞元陣列21是否具有足夠的錯誤容限,且因此可容易偵測到記憶體裝置20中的缺陷。The error insertion circuit 23 can receive the mode signal C_MODE from the input/output circuit 28 , and can insert errors into the data transmitted between the read/write circuit 22 and the error correction code engine 24 in response to the mode signal C_MODE indicating a test mode. Furthermore, the error insertion circuit 23 can change the position where errors are inserted. The number of errors inserted by error insertion circuit 23 may correspond to the error tolerance of cell array 21 . Therefore, it can be easily verified whether the cell array 21 has sufficient error tolerance, and thus defects in the memory device 20 can be easily detected.

列解碼器25_1可根據自位址暫存器26_1提供的列位址來啟用連接至胞元陣列21的多個字線中的至少一者。行解碼器25_2可根據自位址暫存器26_1提供的行位址來選擇自連接至經啟用字線的記憶體胞元輸出的訊號中的一些訊號。The column decoder 25_1 can enable at least one of the plurality of word lines connected to the cell array 21 according to the column address provided from the address register 26_1 . The row decoder 25_2 can select some of the signals output from the memory cells connected to the enabled word line according to the row address provided from the address register 26_1.

位址暫存器26_1可自輸入/輸出電路28接收及儲存位址ADDR。資料暫存器26_2可儲存自輸入/輸出電路28接收到的資料,且可將所儲存的資料提供至錯誤更正碼引擎24。另外,資料暫存器26_2可儲存自錯誤更正碼引擎24接收到的資料,且可將所儲存的資料提供至輸入/輸出電路28。The address register 26_1 can receive and store the address ADDR from the input/output circuit 28 . The data register 26_2 can store the data received from the I/O circuit 28 and can provide the stored data to the ECC engine 24 . In addition, the data register 26_2 can store the data received from the ECC engine 24 and provide the stored data to the input/output circuit 28 .

控制邏輯27可根據由輸入/輸出電路28接收到的命令CMD來產生用於操作記憶體裝置20的控制訊號,且控制訊號可被分別提供至記憶體裝置20中所包括的組件。The control logic 27 can generate control signals for operating the memory device 20 according to the command CMD received from the input/output circuit 28 , and the control signals can be respectively provided to components included in the memory device 20 .

輸入/輸出電路28可自記憶體裝置20外部接收命令CMD、位址ADDR及資料DATA並輸出資料DATA。在一些實例性實施例中,輸入/輸出電路28可對命令CMD進行解碼並將解碼結果提供至控制邏輯27。The input/output circuit 28 can receive the command CMD, the address ADDR and the data DATA from outside the memory device 20 and output the data DATA. In some example embodiments, input/output circuitry 28 may decode command CMD and provide the decoded result to control logic 27 .

圖11是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。更詳細而言,圖11示出記憶體系統30及與記憶體系統30進行通訊的主機40,記憶體系統30包括作為有雜訊通道的記憶體裝置32。FIG. 11 is a block diagram illustrating an example of a device for supporting error correction codes according to an example embodiment of the inventive concept. In more detail, FIG. 11 shows a memory system 30 and a host 40 communicating with the memory system 30. The memory system 30 includes a memory device 32 as a noisy channel.

記憶體系統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)或上述各種介面的組合。The memory system 30 can communicate with the host 40 through the interface 50 . The interface 50 that enables the memory system 30 and the host 40 to communicate with each other can use electrical signals and/or optical signals, and can be implemented by, but not limited to, the following: serial advanced technology attachment (SATA) interface, serial advanced technology attachment express (SATA express, SATAe) interface, serial attached small (serial attached small, SAS) computer system interface, peripheral component interconnection express (per ipheral component interconnect express (PCIe) interface, nonvolatile memory-express (nonvolatile memory-express, NVMe) interface, advanced host controller interface (advanced host controller interface, AHCI) or a combination of the above interfaces.

在一些實例性實施例中,記憶體系統30可藉由可移除地耦合至主機40來與主機40進行通訊。記憶體裝置32可以是非揮發性記憶體,如電阻式記憶體,且記憶體系統30可被稱為儲存系統。舉例而言,記憶體系統30可由但不限於以下各項來實施:固態驅動器或固態磁碟(solid-state disk,SSD)、內嵌式固態磁碟(embedded SSD,eSSD)、多媒體卡(multimedia card,MMC)、內嵌式多媒體卡(embedded multimedia card,eMMC)等。In some exemplary embodiments, the memory system 30 can communicate with the host 40 by being removably coupled to the host 40 . The memory device 32 may be a non-volatile memory, such as a resistive memory, and the memory system 30 may be referred to as a storage system. For example, the memory system 30 may be implemented by but not limited to: a solid-state drive or a solid-state disk (solid-state disk, SSD), an embedded solid-state disk (embedded SSD, eSSD), a multimedia card (multimedia card, MMC), an embedded multimedia card (embedded multimedia card, eMMC), and the like.

如圖11中所說明,記憶體系統30可包括控制器31及至少一個記憶體裝置32。所述至少一個記憶體裝置32可接收自控制器31接收到的命令CMD及位址ADDR,且可接收或傳送資料DATA。As illustrated in FIG. 11 , the memory system 30 may include a controller 31 and at least one memory device 32 . The at least one memory device 32 can receive the command CMD and the address ADDR received from the controller 31, and can receive or transmit the data DATA.

控制器31可因應於經由介面50自主機40接收到的請求來控制至少一個記憶體裝置32。舉例而言,控制器31可因應於寫入請求而將與所述寫入請求一起接收到的資料寫入所述至少一個記憶體裝置32中,或者可因應於讀取請求而將儲存於所述至少一個記憶體裝置32中的資料提供至主機40。如圖11中所示,控制器31可包括錯誤插入電路31_1及錯誤更正碼引擎31_2。The controller 31 can control at least one memory device 32 in response to a request received from the host 40 through the interface 50 . For example, the controller 31 may write the data received together with the write request into the at least one memory device 32 in response to the write request, or may provide the data stored in the at least one memory device 32 to the host 40 in response to the read request. As shown in FIG. 11 , the controller 31 may include an error insertion circuit 31_1 and an error correction code engine 31_2 .

在一些實例性實施例中,錯誤插入電路31_1可將錯誤插入至藉由由錯誤更正碼引擎31_2在測試模式中對請求自主機40寫入的資料進行編碼而獲得的資料中,並且可將被插入錯誤的資料提供至所述至少一個記憶體裝置32作為寫入資料。在一些實例性實施例中,錯誤插入電路31_1可在測試模式中將錯誤插入至因應於主機40的讀取請求而自至少一個記憶體裝置32讀取的資料中,並且可將被插入錯誤的資料提供至錯誤更正碼引擎31_2。此外,錯誤插入電路31_1可改變錯誤被插入的位置。由錯誤插入電路31_1插入的錯誤數量可與所述至少一個記憶體裝置32的錯誤容限對應。因此,可容易地驗證所述至少一個記憶體裝置32是否具有充足的錯誤容限。In some exemplary embodiments, the error insertion circuit 31_1 may insert errors into data obtained by encoding the data requested to be written from the host 40 in the test mode by the error correction code engine 31_2, and may provide the error-inserted data to the at least one memory device 32 as write data. In some exemplary embodiments, the error insertion circuit 31_1 can insert errors into the data read from at least one memory device 32 in response to the read request of the host 40 in the test mode, and can provide the error-inserted data to the error correction code engine 31_2. In addition, the error insertion circuit 31_1 can change the position where errors are inserted. The number of errors inserted by the error insertion circuit 31_1 may correspond to the error tolerance of the at least one memory device 32 . Therefore, it can be easily verified whether the at least one memory device 32 has sufficient error tolerance.

雖然已參考本發明概念的實例性實施例具體地示出及闡述了本發明概念,但應理解,可在不背離以下申請專利範圍的精神及範疇的情況下做出各種形式及細節上的改變。While the inventive concepts have been particularly shown and described with reference to exemplary embodiments thereof, it should be understood that various changes in form and details may be made without departing from the spirit and scope of the following claims.

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‧‧‧開關10, 10a, 10b‧‧‧Devices 20, 32‧‧‧memory device 21‧‧‧cell array 22‧‧‧Read/write circuit 23, 31_1, 200, 200a, 200a', 200a'', 200b‧‧‧wrong insertion circuit 24‧‧‧Error Correction Code Engine 25_1‧‧‧column decoder 25_2‧‧‧Row Decoder 26_1‧‧‧address register 26_2‧‧‧data register 27‧‧‧Control Logic 28‧‧‧Input/Output Circuit 30‧‧‧memory system 31‧‧‧Controller 31_2, 100, 100a, 100b‧‧‧Error Correction Code Engine 40‧‧‧host 50‧‧‧Interface 210', 210'', 210a, 210b, 210c‧‧‧bit selection circuit 211‧‧‧bit patterns 212‧‧‧Random Number Generator 220', 220'', BE, BE1 to BEm, BEn‧‧‧bit error circuit 300, 300a, 300b‧‧‧memory ADDR‧‧‧address CMD‧‧‧command/write command/read command C_MODE‧‧‧mode signal C_SET‧‧‧set signal D1‧‧‧first data bit D2, D4, Dx, P1-Py‧‧‧bit position D3‧‧‧The third data bit D5‧‧‧fifth data bit DATA‧‧‧data D_ENC‧‧‧encoded data D_IN‧‧‧Input data D_OUT‧‧‧output data D_RD‧‧‧Read data D_RX‧‧‧receive data D_WR‧‧‧write data IN‧‧‧input signal INV‧‧‧Inverter OUT‧‧‧output signal 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', S2 32. S232', S233, S233', S234, S234', S235, S235', S236, S236', S240, S240', S250, S250'‧‧‧operation SEL‧‧‧select signal SW‧‧‧Switch

結合附圖閱讀以下詳細說明,將會更清楚地理解本發明概念的實例性實施例,在附圖中: 圖1是根據本發明概念的實例性實施例用於支持錯誤更正碼(ECC)的裝置的方塊圖。 圖2A及圖2B是說明根據本發明概念的實例性實施例的圖1所示裝置的實例的方塊圖。 圖3A及圖3B是說明根據本發明概念的實例性實施例的圖1所示錯誤插入電路的實例的方塊圖。 圖4是根據本發明概念的實例性實施例在測試模式中圖2A所示寫入資料的實例的視圖。 圖5是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。 圖6A及圖6B是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。 圖7A至圖7C是說明根據本發明概念的實例性實施例的位元選擇電路的實例的方塊圖。 圖8是說明根據本發明概念的實例性實施例測試用於支持錯誤更正碼的裝置的方法的流程圖。 圖9是說明根據本發明概念的實例性實施例的圖8所示操作S80的實例的流程圖。 圖10是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。 圖11是說明根據本發明概念的實例性實施例用於支持錯誤更正碼的裝置的實例的方塊圖。Exemplary embodiments of the inventive concept will be more clearly understood from the following detailed description when read in conjunction with the accompanying drawings, in which: FIG. 1 is a block diagram of an apparatus for supporting error correction code (ECC) according to an exemplary embodiment of the inventive concept. Referring to FIG. 2A and 2B are block diagrams illustrating an example of the device shown in FIG. 1, according to an example embodiment of the inventive concept. 3A and 3B are block diagrams illustrating an example of the error insertion circuit shown in FIG. 1, according to an example embodiment of the inventive concept. FIG. 4 is a view of an example of writing data shown in FIG. 2A in a test mode according to an exemplary embodiment of the inventive concept. FIG. 5 is a flowchart illustrating a method of testing a device for supporting error correction codes according to an exemplary embodiment of the inventive concept. Referring to FIG. 6A and 6B are flowcharts illustrating a method of testing a device for supporting error correction codes according to an example embodiment of the inventive concept. 7A to 7C are block diagrams illustrating examples of bit selection circuits according to example embodiments of inventive concepts. FIG. 8 is a flowchart illustrating a method of testing a device for supporting error correction codes according to an exemplary embodiment of the inventive concept. FIG. 9 is a flowchart illustrating an example of operation S80 shown in FIG. 8 according to an exemplary embodiment of the inventive concept. FIG. 10 is a block diagram illustrating an example of a device for supporting error correction codes according to an example embodiment of the inventive concept. FIG. 11 is a block diagram illustrating an example of a device for supporting error correction codes according to an example embodiment of the inventive concept.

10‧‧‧裝置 10‧‧‧Devices

100‧‧‧錯誤更正碼引擎 100‧‧‧Error Correction Code Engine

200‧‧‧錯誤插入電路 200‧‧‧Wrong insertion into the circuit

300‧‧‧記憶體 300‧‧‧memory

BE‧‧‧位元錯誤電路 BE‧‧‧bit error circuit

C_MODE‧‧‧模式訊號 C_MODE‧‧‧mode signal

D_ENC‧‧‧經編碼資料 D_ENC‧‧‧encoded data

D_IN‧‧‧輸入資料 D_IN‧‧‧Input data

D_OUT‧‧‧輸出資料 D_OUT‧‧‧output data

D_RD‧‧‧讀取資料 D_RD‧‧‧Read data

D_RX‧‧‧接收資料 D_RX‧‧‧receive data

D_WR‧‧‧寫入資料 D_WR‧‧‧write data

IN‧‧‧輸入訊號 IN‧‧‧input signal

INV‧‧‧反相器 INV‧‧‧Inverter

OUT‧‧‧輸出訊號 OUT‧‧‧output signal

SW‧‧‧開關 SW‧‧‧Switch

Claims (6)

一種支持用於記憶體測試的測試模式的裝置,所述裝置包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生所述寫入資料並藉由更正接收資料中所包括的N位元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成在正常模式中將所述讀取資料提供至所述錯誤更正碼引擎作為所述接收資料,並在所述測試模式中將藉由對所述讀取資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述錯誤更正碼引擎作為所述接收資料,其中所述錯誤插入電路更被配置成在所述測試模式中將自所述記憶體連續輸出的所述讀取資料中的所述至少一個位元的位置改變K次,其中K是等於或大於2的整數,且K等於或小於N且是基於由所述錯誤更正碼引擎處理的資料的大小來確定。 A device supporting a test mode for memory testing, the device comprising: a memory configured to receive and store write data and output read data from the stored write data; an error correction code (ECC) engine configured to generate the write data by encoding input data and generate output data by correcting error bits of N bits or less included in the received data, where N is a positive integer; and an error insertion circuit configured to provide the read data to the error correction in a normal mode A code engine serves as the received data, and provides data obtained by inverting at least one bit less than N bits of the read data to the error correction code engine as the received data in the test mode, wherein the error insertion circuit is further configured to change a position of the at least one bit in the read data continuously output from the memory in the test mode K times, wherein K is an integer equal to or greater than 2, and K is equal to or smaller than N and is determined based on the size of data processed by the error correction code engine. 一種支持用於記憶體測試的測試模式的裝置,所述裝置包括:記憶體,被配置成接收及儲存寫入資料並自所儲存的所述寫入資料輸出讀取資料;錯誤更正碼(ECC)引擎,被配置成藉由對輸入資料進行編碼而產生經編碼資料並藉由更正所述讀取資料中所包括的N個位 元或少於N位元的錯誤位元而產生輸出資料,其中N是正整數;以及錯誤插入電路,被配置成直接自所述錯誤更正碼引擎接收所述經編碼資料,其中所述錯誤插入電路更被配置成在正常模式中將所述經編碼資料提供至所述記憶體作為所述寫入資料,並在所述測試模式中將藉由對所述經編碼資料的少於N位元的至少一個位元進行反轉而獲得的資料提供至所述記憶體作為所述寫入資料。 A device supporting a test mode for memory testing, the device comprising: a memory configured to receive and store write data and output read data from the stored write data; an error correction code (ECC) engine configured to generate encoded data by encoding input data and by correcting N bits included in the read data and an error insertion circuit configured to receive the encoded data directly from the error correction code engine, wherein the error insertion circuit is further configured to provide the encoded data to the memory as the write data in a normal mode, and provide data obtained by inverting at least one bit less than N bits of the encoded data to the memory in the test mode as the write data. 如申請專利範圍第2項所述的裝置,其中所述錯誤插入電路更被配置成在所述測試模式中將連續地寫入該記憶體中的所述經編碼資料中的所述至少一個位元的位置改變K次,其中K是大於或等於2的整數。 The device according to claim 2, wherein the error insertion circuit is further configured to change the position of the at least one bit in the encoded data continuously written into the memory K times in the test mode, wherein K is an integer greater than or equal to 2. 一種對包括錯誤更正碼(ECC)引擎及記憶體且被配置成更正N位元或少於N位元的錯誤位元的裝置進行測試的方法,其中N是正整數,所述方法包括:藉由由所述錯誤更正碼引擎對輸入資料進行編碼而產生經編碼資料;將寫入資料寫入所述記憶體中,讀取所述寫入資料,並輸出讀取資料;以及藉由由所述錯誤更正碼引擎更正所述讀取資料的錯誤而產生輸出資料,其中 寫入所述寫入資料包括:直接自所述錯誤更正碼引擎獲得所述經編碼資料,寫入所述寫入資料更包括:在正常模式中提供所獲得的資料作為所述寫入資料,並且在測試模式中藉由將所述所獲得的資料中的少於N位元的至少一個位元反轉而產生所述寫入資料。 A method of testing a device comprising an error correcting code (ECC) engine and memory configured to correct error bits of N bits or less, where N is a positive integer, comprising: generating encoded data by encoding input data by the error correcting code engine; writing write data into the memory, reading the write data, and outputting read data; and generating output data by correcting errors of the read data by the error correcting code engine, wherein Writing the write data includes directly obtaining the encoded data from the ECC engine, and writing the write data further includes providing the obtained data as the write data in a normal mode, and generating the write data by inverting at least one bit less than N bits of the obtained data in a test mode. 如申請專利範圍第4項所述的方法,更包括:基於所述輸入資料及所述輸出資料來偵測所述記憶體的缺陷。 The method described in claim 4 of the claimed invention further includes: detecting a defect of the memory based on the input data and the output data. 如申請專利範圍第4項所述的方法,其中產生所述輸出資料包括:由所述錯誤更正碼引擎偵測對所述讀取資料中的錯誤位元的更正是否成功,以及基於所述更正是否成功來偵測所述記憶體的缺陷。 The method described in claim 4, wherein generating the output data includes: detecting by the error correction code engine whether correction of error bits in the read data is successful, and detecting defects of the memory based on whether the correction is successful.
TW107133098A 2017-09-21 2018-09-20 Device for supporting error correction code and test method thereof TWI808098B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2017-0121878 2017-09-21
KR20170121878 2017-09-21
??10-2017-0121878 2017-09-21
??10-2018-0020017 2018-02-20
KR10-2018-0020017 2018-02-20
KR1020180020017A KR20190033410A (en) 2017-09-21 2018-02-20 Apparatus supporting error correction code and method for testing the same

Publications (2)

Publication Number Publication Date
TW201921245A TW201921245A (en) 2019-06-01
TWI808098B true TWI808098B (en) 2023-07-11

Family

ID=65898792

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107133098A TWI808098B (en) 2017-09-21 2018-09-20 Device for supporting error correction code and test method thereof

Country Status (2)

Country Link
KR (1) KR20190033410A (en)
TW (1) TWI808098B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210112845A (en) 2020-03-06 2021-09-15 에스케이하이닉스 주식회사 Memory device and test operation thereof
US11468962B2 (en) 2021-03-03 2022-10-11 Micron Technology, Inc. Performing memory testing using error correction code values
KR20220144129A (en) 2021-04-19 2022-10-26 에스케이하이닉스 주식회사 Memory apparatus and semiconductor system including the same
CN117112287A (en) * 2023-09-07 2023-11-24 上海合芯数字科技有限公司 Standby verification error correction method, device, server and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024905A1 (en) * 2006-05-12 2009-01-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
TW201218206A (en) * 2010-09-27 2012-05-01 Fujitsu Ltd Simulated error causing apparatus
WO2013189896A1 (en) * 2012-06-18 2013-12-27 Renesas Electronics Europe Limited Error correction
TW201437802A (en) * 2013-03-18 2014-10-01 Toshiba Kk Information processing system, control program, and information processing device
US20140337687A1 (en) * 2011-09-22 2014-11-13 Violin Memory Inc. System and method for correcting errors in data using a compound code
US20170063394A1 (en) * 2015-08-28 2017-03-02 Intel Corporation Memory device on-die error checking and correcting code
US20170261555A1 (en) * 2016-03-08 2017-09-14 International Business Machines Corporation Bypassing an encoded latch on a chip during a test-pattern scan
US20170261557A1 (en) * 2016-03-08 2017-09-14 International Business Machines Corporation Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024905A1 (en) * 2006-05-12 2009-01-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
TW201218206A (en) * 2010-09-27 2012-05-01 Fujitsu Ltd Simulated error causing apparatus
US20140337687A1 (en) * 2011-09-22 2014-11-13 Violin Memory Inc. System and method for correcting errors in data using a compound code
WO2013189896A1 (en) * 2012-06-18 2013-12-27 Renesas Electronics Europe Limited Error correction
TW201437802A (en) * 2013-03-18 2014-10-01 Toshiba Kk Information processing system, control program, and information processing device
US20170063394A1 (en) * 2015-08-28 2017-03-02 Intel Corporation Memory device on-die error checking and correcting code
US20170261555A1 (en) * 2016-03-08 2017-09-14 International Business Machines Corporation Bypassing an encoded latch on a chip during a test-pattern scan
US20170261557A1 (en) * 2016-03-08 2017-09-14 International Business Machines Corporation Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry

Also Published As

Publication number Publication date
TW201921245A (en) 2019-06-01
KR20190033410A (en) 2019-03-29

Similar Documents

Publication Publication Date Title
US10803971B2 (en) Device for supporting error correction code and test method thereof
KR101750662B1 (en) Circuits, apparatuses, and methods for correcting data errors
TWI808098B (en) Device for supporting error correction code and test method thereof
KR101645906B1 (en) Stopping criteria for layered iterative error correction
US8321765B2 (en) Method of reading data in non-volatile memory device
US20190068222A1 (en) Data storage apparatus and operating method thereof
TWI442407B (en) Data recovery in a solid state storage system
TWI606447B (en) Apparatus and method for detecting and mitigating bit-line opens in flash memory
US10824523B2 (en) Data storage device and operating method thereof
US8869007B2 (en) Three dimensional (3D) memory device sparing
US20080168319A1 (en) Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
US20130318418A1 (en) Adaptive error correction for phase change memory
US10162703B2 (en) Methods of correcting data errors and semiconductor devices used therein
US10579472B2 (en) Semiconductor devices
KR20180038339A (en) Semiconductor device for executing a test method checking a cell allay failure
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US20080082870A1 (en) Parallel bit test device and method using error correcting code
CN116745849A (en) Memory device protection
KR102333140B1 (en) Data storage device and operating method thereof
US10917111B2 (en) Error correction code unit and error correction method
KR20180134120A (en) Semiconductor system
US20170116060A1 (en) Error location pointers for nvm
KR20170143084A (en) Semiconductor device and semiconductor system
US11921578B2 (en) Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices
TW201820345A (en) Memory device including column redundancy