KR20080100750A - Apparatus for reading data and method using the same - Google Patents
Apparatus for reading data and method using the same Download PDFInfo
- Publication number
- KR20080100750A KR20080100750A KR1020070075857A KR20070075857A KR20080100750A KR 20080100750 A KR20080100750 A KR 20080100750A KR 1020070075857 A KR1020070075857 A KR 1020070075857A KR 20070075857 A KR20070075857 A KR 20070075857A KR 20080100750 A KR20080100750 A KR 20080100750A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- voltage
- memory cell
- threshold voltage
- boundary
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
Landscapes
- Read Only Memory (AREA)
Abstract
Description
본 발명은 데이터 읽기에 관한 것으로, 더욱 상세하게는 메모리 셀에 프로그램된 데이터를 두 경계 전압들을 이용하여 읽고 디코딩하여 메모리 셀의 데이터를 결정하는 데이터 읽기 장치 및 그 방법에 관한 것이다.The present invention relates to data reading, and more particularly, to a data reading apparatus and method for determining data of a memory cell by reading and decoding data programmed in a memory cell using two boundary voltages.
플래시 메모리 셀은 데이터를 프로그램할 때 플래시 메모리 셀의 문턱 전압 크기를 프로그램할 데이터에 맞게 조절한다. 즉, 플래시 메모리 셀의 문턱 전압 크기가 플래시 메모리 셀에 프로그램된 데이터를 의미한다.When programming data, the flash memory cell adjusts the threshold voltage of the flash memory cell to fit the data to be programmed. That is, the threshold voltage of the flash memory cell refers to data programmed into the flash memory cell.
플래시 메모리 셀에 프로그램된 데이터를 읽기 위해서는 플래시 메모리 셀의 문턱 전압과 기 설정된 하나 이상의 기준 전압 즉, 리드 레벨을 비교하여 플래시 메모리 셀의 데이터를 읽는다. 예를 들어, 플래시 메모리 셀이 SLC(single level cell) 방식으로 동작하고 기준 전압이 A라 가정하면, 읽혀진 플래시 메모리 셀의 문턱 전압이 기준 전압 A보다 작으면 플래시 메모리 셀에 프로그램된 데이터를 1로 읽고, 읽혀진 플래시 메모리 셀의 문턱 전압이 기준 전압 A보다 크면 플래시 메모리 셀에 프로그램된 데이터를 0으로 읽는다.To read data programmed in the flash memory cell, the data of the flash memory cell is read by comparing a threshold voltage of the flash memory cell with one or more preset reference voltages, that is, a read level. For example, assuming that a flash memory cell operates in a single level cell (SLC) scheme and that the reference voltage is A, if the threshold voltage of the read flash memory cell is less than the reference voltage A, the data programmed in the flash memory cell is set to 1. When the threshold voltage of the read and read flash memory cell is greater than the reference voltage A, the data programmed into the flash memory cell is read as zero.
하지만, 데이터가 프로그램된 플래시 메모리 셀의 문턱 전압은 차지 로스(charge loss) 및 플로팅 폴리 커플링(floating poly coupling) 등과 같은 여러 요인에 의해 다른 레벨의 문턱 전압으로 변하게 되는데, 플래시 메모리 셀의 문턱 전압이 기준 전압 부근까지 변하는 경우 읽혀진 플래시 메모리 셀의 데이터에 대한 신뢰도가 떨어지게 된다.However, the threshold voltage of a flash memory cell in which data is programmed is changed to a threshold voltage of a different level by various factors such as charge loss and floating poly coupling. If the voltage is changed to near this reference voltage, the reliability of the data of the read flash memory cell is lowered.
즉, 기준 전압 부근의 문턱 전압을 갖는 메모리 플래시 셀은 프로그램된 데이터가 1이지만 읽혀진 데이터는 0인 경우가 발생하고, 프로그램된 데이터가 0이지만 읽혀진 데이터는 1인 경우가 발생하여 기준 전압 부근에서 많은 오류가 발생하게 된다.In other words, a memory flash cell having a threshold voltage near a reference voltage may have a programmed data of 1 but a read data of 0, and a programmed data of 0 but a read data of 1 may occur. An error will occur.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 플래시 메모리 셀의 데이터를 나타내는 스테이트들 사이의 신뢰성이 떨어지는 전압 영역을 설정하고, 플래시 메모리 셀의 문턱 전압이 신뢰성이 떨어지는 전압 영역에 위치한 경우 판정 불가능 값으로 출력하는 데이터 읽기 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the problems of the prior art as described above, and sets an unreliable voltage region between states representing data of a flash memory cell, and the threshold voltage of the flash memory cell is less reliable. An object of the present invention is to provide a data reading method for outputting an undetermined value when located in an area.
또한, 본 발명은 데이터 읽기 방법을 통해 읽혀진 플래시 메모리 셀들의 데이터들을 디코딩하여 판정 불가능 값이 포함된 메모리 셀들의 데이터들을 결정함으로써, 읽혀진 메모리 셀들의 데이터에 대한 신뢰성을 높이는 것을 목적으로 한다.In addition, an object of the present invention is to increase the reliability of the data of the read memory cells by decoding the data of the flash memory cells read through the data reading method and determining the data of the memory cells including the undeterminable value.
또한, 본 발명은 플래시 메모리 셀의 문턱 전압이 변하여 판정 불가능 값이 출력되더라도 디코딩 과정을 통해 신뢰성이 높은 데이터로 결정하는 것을 목적으로 한다.In addition, an object of the present invention is to determine the high reliability data through the decoding process even if the threshold voltage of the flash memory cell is changed to output an undeterminable value.
상기의 목적을 달성하고 종래기술의 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따른 데이터 읽기 방법은 메모리 셀의 문턱 전압과 제1 경계 전압을 비교하는 단계, 상기 문턱 전압과 상기 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교하는 단계 및 상기 문턱 전압과 상기 제1 경계 전압의 비교 결과 및 상기 문턱 전압과 상기 제2 경계 전압의 비교 결과를 기초로 상기 메모리 셀의 데이터를 판정하는 단계를 포함한다.In order to achieve the above object and solve the problems of the prior art, the data reading method according to an embodiment of the present invention comprises the steps of comparing the threshold voltage and the first threshold voltage of the memory cell, the threshold voltage and the first boundary Comparing the second threshold voltage having a voltage level higher than the voltage; and comparing the threshold voltage with the first threshold voltage, and comparing the threshold voltage with the second threshold voltage. Determining.
이때, 상기 메모리 셀의 데이터를 판정하는 단계는 상기 문턱 전압이 상기 제1 경계 전압 및 상기 제2 경계 전압 사이의 전압이면 상기 메모리 셀의 데이터를 기 설정된 판정 불가능 값으로 판정할 수 있다.In this case, the determining of the data of the memory cell may determine the data of the memory cell as a predetermined non-determinable value if the threshold voltage is a voltage between the first and second threshold voltages.
이때, 상기 메모리 셀은 MLC(multi level cell) 방식의 메모리 셀이거나 SLC(single level cell) 방식의 메모리 셀일 수 있다.In this case, the memory cell may be a multi-level cell (MLC) type memory cell or a single level cell (SLC) type memory cell.
이때, 상기 제1 경계 전압 및 상기 제2 경계 전압은 상기 메모리 셀에 프로그램된 데이터를 구분하는 경계 영역들 사이의 기 결정된 두 전압들일 수 있다.In this case, the first boundary voltage and the second boundary voltage may be two predetermined voltages between boundary regions separating data programmed in the memory cell.
이때, 상기 데이터 읽기 방법은 판정된 복수 개의 메모리 셀들의 데이터들을 디코딩하는 단계 및 상기 디코딩을 통해 상기 메모리 셀들에 프로그램된 데이터들을 결정하는 단계를 더 포함할 수 있다.In this case, the data reading method may further include decoding data of the determined plurality of memory cells and determining data programmed in the memory cells through the decoding.
이때, 상기 디코딩하는 단계는 상기 메모리 셀들의 데이터들을 이용하여 거리 디코딩을 수행할 수 있다.In this case, the decoding may be a distance decoding using the data of the memory cells.
이때, 상기 디코딩하는 단계는 상기 메모리 셀들의 데이터들을 이용하여 신드롬을 계산하고, 상기 계산된 신드롬을 이용하여 디코딩을 수행할 수 있다.In this case, the decoding may include calculating a syndrome using data of the memory cells and decoding using the calculated syndrome.
본 발명의 일 실시예에 따른 데이터 읽기 장치는 메모리 셀, 상기 메모리 셀의 문턱 전압과 제1 경계 전압 및 상기 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교하고, 비교 결과에 따른 결과 값을 생성하는 전압 비교부 및 상기 전압 비교부로부터 입력된 상기 결과 값을 기초로 상기 메모리 셀의 데이터를 판정하는 데이터 읽기부를 포함한다.According to an embodiment of the present invention, a data reading apparatus compares a memory cell, a threshold voltage of the memory cell with a first threshold voltage, and a second threshold voltage having a voltage level higher than the first threshold voltage, A voltage comparator for generating a result value and a data read part for determining data of the memory cell based on the result value input from the voltage comparator.
이때, 상기 데이터 읽기 장치는 상기 데이터 읽기부에 의해 판정된 복수 개 의 메모리 셀들의 데이터들을 입력받아 디코딩하는 디코딩부 및 상기 디코딩부에 의해 디코딩된 상기 메모리 셀들의 데이터들을 입력받고, 상기 디코딩된 메모리 셀들의 데이터들을 통해 상기 메모리 셀들에 프로그램된 데이터들을 결정하는 데이터 결정부를 더 포함할 수 있다.In this case, the data reading device receives a decoding unit for receiving and decoding data of a plurality of memory cells determined by the data reading unit, and receives data of the memory cells decoded by the decoding unit, and receives the decoded memory. The apparatus may further include a data determiner configured to determine data programmed into the memory cells through data of cells.
본 발명의 일 실시예에 따른 데이터 읽기 장치 및 그 방법은, 플래시 메모리 셀의 데이터를 나타내는 스테이트들 사이의 신뢰성이 떨어지는 전압 영역을 설정하고, 플래시 메모리 셀의 문턱 전압이 신뢰성이 떨어지는 전압 영역에 위치한 경우 판정 불가능 값으로 출력하는 데이터 읽기 방법을 제공할 수 있다.According to an embodiment of the present invention, a data reading device and method thereof may be configured to set an unreliable voltage region between states representing data of a flash memory cell, and to set a threshold voltage of a flash memory cell in an unreliable voltage region. In this case, a data reading method for outputting an undetermined value can be provided.
또한, 본 발명은 데이터 읽기 방법을 통해 읽혀진 플래시 메모리 셀들의 데이터들을 디코딩하여 판정 불가능 값이 포함된 메모리 셀들의 데이터들을 결정함으로써, 읽혀진 메모리 셀들의 데이터에 대한 신뢰성을 높일 수 있다.In addition, the present invention can increase the reliability of the data of the read memory cells by decoding the data of the flash memory cells read through the data reading method and determining the data of the memory cells including the undeterminable value.
또한, 본 발명은 플래시 메모리 셀의 문턱 전압이 변하여 판정 불가능 값이 출력되더라도 디코딩 과정을 통해 신뢰성이 높은 데이터로 결정할 수 있다.In addition, according to the present invention, even when the threshold voltage of the flash memory cell is changed and an undeterminable value is output, the data may be determined to have high reliability through the decoding process.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 데이터 읽기 장치에 대한 구성 블록도이다.1 is a block diagram illustrating a data reading apparatus according to an embodiment of the present invention.
도 1을 참조하면 데이터 읽기 장치는 전압 비교부(120) 및 데이터 읽기 부(130)를 포함한다.Referring to FIG. 1, a data reading apparatus includes a
전압 비교부(120)는 메모리 셀(110)의 문턱 전압과 제1 경계 전압 및 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교하여 결과 값을 생성한다.The
이때, 제1 경계 전압 및 제2 경계 전압은 메모리 셀에 프로그램된 데이터(0 또는 1)를 나타내는 스테이트들 사이의 프로그램된 데이터를 구분하는 경계 영역에 포함된 기 결정된 두 전압들일 수 있다. 여기서, 프로그램된 데이터를 구분하는 경계 영역은 데이터를 읽을 때 읽은 데이터를 신뢰할 수 없는 영역으로, 프로그램된 데이터를 구분하는 경계 영역은 적어도 하나 이상이 된다. 즉, 메모리 셀이 SLC(single level cell) 방식으로 동작하는 경우에는 프로그램된 데이터를 구분하는 경계 영역은 하나가 되고, 메모리 셀이 MLC(multi level cell) 방식으로 동작하는 경우에는 프로그램된 데이터를 구분하는 경계 영역은 둘 이상이 된다.In this case, the first boundary voltage and the second boundary voltage may be two predetermined voltages included in a boundary region that divides the programmed data between states representing data (0 or 1) programmed in the memory cell. Here, the boundary area for dividing the programmed data is an untrusted area for reading the data, and the boundary area for dividing the programmed data is at least one. In other words, when the memory cell operates in a single level cell (SLC) scheme, there is one boundary area that separates the programmed data, and when the memory cell operates in a multi level cell (MLC) scheme, the programmed data is divided. There is more than one boundary area.
여기서, 제1 경계 전압 및 제2 경계 전압은 메모리 셀로부터 데이터를 읽을 때 읽은 데이터를 신뢰할 수 없는 경계 영역의 최소 전압 및 최대 전압이 된다.Here, the first boundary voltage and the second boundary voltage become minimum and maximum voltages of the boundary region in which the read data is unreliable when reading data from the memory cell.
이때, 경계 영역은 상황에 따라 달라질 수 있지만, 차지 로스 및 플로팅 폴리 커플링 등에 의한 영향을 고려하여 설정될 수 있다.In this case, the boundary region may vary depending on the situation, but may be set in consideration of the influence due to the charge loss and the floating poly coupling.
이때, 메모리 셀(110)은 플래시 메모리 셀일 수 있고, NAND 플래시 메모리 셀 또는 NOR 플래시 메모리 셀일 수 있다.In this case, the
이때, 메모리 셀(110)은 MLC(multi level cell) 방식의 메모리 셀이거나 SLC(single level cell) 방식의 메모리 셀일 수 있다.In this case, the
데이터 읽기부(130)는 전압 비교부(120)로부터 생성된 결과 값을 입력받고, 그 입력된 결과 값을 기초로 메모리 셀의 데이터를 판정한다. 즉, 데이터 읽기부(130)는 결과 값을 기초로 메모리 셀의 데이터를 읽는다.The
이때, 데이터 읽기부(130)는 메모리 셀(110)의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이의 전압이면 메모리 셀의 데이터를 판정 불가능 값으로 판정할 수 있다. 즉, 데이터 읽기부(130)는 전압 비교부(120)로부터 입력된 결과 값이 메모리 셀의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이의 전압을 나타내는 결과 값이면 메모리 셀의 데이터를 0으로 확신하거나 1로 확신할 수 없기 때문에 0 또는 1이 아닌 특정 값으로 판정한다.In this case, if the threshold voltage of the
여기서, 데이터 읽기부(130)에 의해 읽혀진 메모리 셀의 데이터가 판정 불가능 값으로 읽혀진 경우 판정 불가능 값은 본 발명에 따른 디코딩 과정을 통해 정확한 데이터로 결정된다.Here, when the data of the memory cell read by the
도 2는 본 발명에 따른 데이터 읽기 장치를 설명하기 위한 일 예시도이다. 2 is an exemplary view for explaining a data reading apparatus according to the present invention.
여기서, 도2는 4 레벨로 동작하는 메모리 셀의 MSB(most significant bit) 데이터와 LSB(least significant bit) 데이터 중 LSB 데이터를 나타낸 것이다.2 shows LSB data of most significant bit (MSB) data and least significant bit (LSB) data of a memory cell operating at four levels.
도 2를 참조하면, 메모리 셀의 LSB 데이터 0과 1을 구분하는 경계 영역 사이의 두 경계 전압들을 이용하여 메모리 셀의 LSB 데이터를 읽는다.Referring to FIG. 2, the LSB data of the memory cell is read using two boundary voltages between the boundary regions separating the
즉, 메모리 셀의 데이터 11과 10 사이인 메모리 셀의 LSB 데이터 1과 0 사이의 제1 경계 전압(VSEN_1A) 및 제2 경계 전압(VSEN_1B) 그리고 메모리 셀의 데이터 00과 01 사이인 메모리 셀의 LSB 데이터 0과 1 사이의 제1 경계 전압(VSEN_3A) 및 제2 경계 전압(VSEN_3B)을 이용하여 메모리 셀의 LSB 데이터를 읽는다.That is, the first boundary voltage VSEN_1A and the second boundary voltage VSEN_1B between
예를 들어, LSB 데이터를 읽기 위한 메모리 셀의 문턱 전압이 VSEN_1A보다 작거나 VSEN_3B보다 큰 경우에는 LBS 데이터를 1로 읽고, 메모리 셀의 문턱 전압이 VSEN_1B와 VSEN_3A사이의 전압인 경우에는 LSB 데이터를 0으로 읽는다.For example, when the threshold voltage of a memory cell for reading LSB data is less than VSEN_1A or greater than VSEN_3B, the LBS data is read as 1, and when the threshold voltage of the memory cell is a voltage between VSEN_1B and VSEN_3A, the LSB data is 0. Read with
반면, 메모리 셀의 문턱 전압이 VSEN_1A와 VSEN_1B사이의 전압이거나 VSEN_3A와 VSEN_3B사이의 전압인 경우에는 LSB 데이터를 0 또는 1이 아닌 특정 값으로 읽는다.On the other hand, when the threshold voltage of the memory cell is a voltage between VSEN_1A and VSEN_1B or a voltage between VSEN_3A and VSEN_3B, the LSB data is read as a specific value other than 0 or 1.
즉, 본 발명은 메모리 셀이 차지 로스 또는 플로팅 폴리 커플링 등에 의해 메모리 셀에 프로그램된 문턱 전압이 변하게 되어 메모리 셀의 데이터를 0 또는 1로 정확하게 읽을 수 없는 경우 판정 불가능한 값으로 읽고, 판정 불가능한 값을 디코딩 과정을 이용하여 0 또는 1로 결정한다.That is, according to the present invention, when the threshold voltage programmed in the memory cell is changed due to charge loss or floating polycoupling, and the data of the memory cell cannot be read accurately as 0 or 1, the present invention reads as an undeterminable value and cannot determine the value. Is determined to be 0 or 1 using the decoding process.
도 3은 본 발명의 다른 일 실시예에 따른 데이터 읽기 장치에 대한 구성 블록도이다.3 is a block diagram illustrating a data reading apparatus according to another embodiment of the present invention.
도 3을 참조하면, 데이터 읽기 장치는 전압 비교부(320), 데이터 읽기부(330), 디코딩부(340) 및 데이터 결정부(350)를 포함한다.Referring to FIG. 3, the data reader includes a voltage comparator 320, a data reader 330, a decoder 340, and a data determiner 350.
전압 비교부(320)는 메모리(310)를 구성하는 메모리 셀들 각각의 문턱 전압들과 제1 경계 전압 및 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교하여 결과 값을 생성한다.The voltage comparator 320 compares the threshold voltages of each of the memory cells constituting the
이때, 제1 경계 전압 및 제2 경계 전압은 메모리 셀들 각각에 프로그램된 데이터들 각각을 구분하는 경계 영역 사이의 기 결정된 두 전압들일 수 있다.In this case, the first boundary voltage and the second boundary voltage may be two predetermined voltages between boundary regions that divide each of the data programmed in each of the memory cells.
여기서, 제1 경계 전압 및 제2 경계 전압은 메모리 셀로부터 데이터를 읽을 때 읽은 데이터를 신뢰할 수 없는 경계 영역의 최소 전압 및 최대 전압이 된다.Here, the first boundary voltage and the second boundary voltage become minimum and maximum voltages of the boundary region in which the read data is unreliable when reading data from the memory cell.
이때, 메모리 셀들은 플래시 메모리 셀들일 수 있고, NAND 플래시 메모리 셀들 또는 NOR 플래시 메모리 셀들일 수 있다.In this case, the memory cells may be flash memory cells, and may be NAND flash memory cells or NOR flash memory cells.
이때, 메모리 셀들은 MLC(multi level cell) 방식의 메모리 셀들이거나 SLC(single level cell) 방식의 메모리 셀들일 수 있다.In this case, the memory cells may be multi-level cell (MLC) type memory cells or single cell (SLC) type memory cells.
데이터 읽기부(330)는 전압 비교부(320)로부터 생성된 결과 값을 입력받고, 그 입력된 결과 값을 기초로 메모리 셀들의 데이터들을 판정한다.The data reader 330 receives a result value generated from the voltage comparator 320 and determines data of the memory cells based on the input result value.
이때, 데이터 읽기부(330)는 결과 값이 메모리 셀의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이의 전압에 상응하는 결과 값이면 메모리 셀의 데이터를 판정 불가능 값으로 판정할 수 있다. 즉, 데이터 읽기부(330)는 신뢰할 수 없는 메모리 셀의 데이터에 대해서는 0 또는 1이 아닌 특정 값으로 판정한다.In this case, the data read unit 330 may determine the data of the memory cell as an undeterminable value if the result value corresponds to a result value corresponding to a voltage between the first and second threshold voltages of the memory cell. That is, the data reading unit 330 determines that the data of the unreliable memory cell is a specific value other than 0 or 1.
디코딩부(340)는 데이터 읽기부(330)에 의해 판정된 메모리 셀들의 데이터들을 디코딩한다.The decoding unit 340 decodes data of memory cells determined by the data reading unit 330.
이때, 디코딩부(340)는 데이터 읽기부(330)에 의해 판정된 메모리 셀들의 데이터들 중 판정 불가능 값의 데이터를 제외한 데이터들을 이용하여 거리 디코딩을 수행할 수 있다.In this case, the decoding unit 340 may perform distance decoding using data other than data of an undeterminable value among data of memory cells determined by the data reading unit 330.
이때, 디코딩부(340)는 데이터 읽기부(330)에 의해 판정된 메모리 셀들의 데이터들 중 판정 불가능 값의 데이터에 대한 각 경우를 고려한 신드롬 계산을 이용하여 디코딩을 수행할 수 있다.In this case, the decoding unit 340 may decode by using syndrome calculation considering each case of data of the undeterminable value among the data of the memory cells determined by the data reading unit 330.
데이터 결정부(350)는 디코딩부(340)에 의한 디코딩 결과를 이용하여 메모리 셀들에 프로그램된 데이터를 결정한다.The data determiner 350 determines the data programmed in the memory cells by using the decoding result of the decoder 340.
이때, 데이터 결정부(350)는 디코딩부(340)가 거리 디코딩을 통해 디코딩을 수행하는 경우 거리 디코딩에 의해 계산된 거리를 기초로 메모리 셀들에 프로그램된 데이터를 결정할 수 있다.In this case, the data determiner 350 may determine the data programmed in the memory cells based on the distance calculated by the distance decoding when the decoding unit 340 performs the decoding through the distance decoding.
거리 디코딩을 이용한 데이터 결정 과정에 대한 일 예를 도 4를 참조하여 설명하면 다음과 같다.An example of a data determination process using distance decoding will be described with reference to FIG. 4.
도 4는 메모리 셀들에 프로그램되는 코드 워드로서 해밍 코드가 사용되고 메모리 셀들로부터 읽혀진 코드 워드가 "1010XX1"인 경우 가능한 프로그램 코드 워드와 읽혀진 코드 워드의 거리를 나타낸 것이다.4 shows the distance between a possible program code word and a read code word when a Hamming code is used as the code word programmed into the memory cells and the code word read from the memory cells is "1010XX1".
여기서, X는 판정 불가능 값을 의미한다.Here, X means an undeterminable value.
도 4를 참조하면, 디코딩부(340)는 해밍 코드에 대한 가능한 프로그램 코드 워드들과 읽혀진 코드 워드 "1010XX1"의 거리 계산을 판정 불가능 값에 해당하는 위치의 데이터를 제외하여 수행한다.Referring to FIG. 4, the decoding unit 340 performs distance calculation between the possible program code words for the Hamming code and the read code word "1010XX1", excluding the data at a position corresponding to an undeterminable value.
즉, 읽혀진 코드 워드에서 판정 불가능 값에 해당하는 위치의 데이터를 제외한 나머지 위치의 데이터들만을 이용한 거리 계산을 통해 읽혀진 코드 워드와 가능한 프로그램 코드 워드들 간의 거리를 계산한다. 예를 들어, 두 번째 가능한 프로그램 코드 워드(410) "1010001"과 읽혀진 코드 워드 "1010XX1"의 거리를 계산하면 읽혀진 코드 워드에서 판정 불가능 값을 제외한 나머지 데이터들이 두 번째 가능한 프로그램 코드 워드의 데이터들과 동일하기 때문에 거리는 0이 된다. 또한, 세 번 째 가능한 프로그램 코드 워드 "1110010"과 읽혀진 코드 워드 "1010XX1"의 거리를 계산하면 읽혀진 코드 워드에서 판정 불가능 값을 제외한 나머지 데이터들 중 왼쪽 두 번째 비트와 오른쪽 첫 번째 비트가 세 번째 가능한 프로그램 코드 워드 데이터들과 다르기 때문에 거리는 2가 된다.That is, the distance between the read code word and the possible program code words is calculated through distance calculation using only the data of the remaining positions except the data of the position corresponding to the undeterminable value in the read code word. For example, calculating the distance between the second possible
이와 같은 거리 계산 과정을 통해 읽혀진 코드 워드와 가능한 프로그램 코드 워드들 사이의 거리들이 계산되면 데이터 결정부(350)는 계산된 거리들 중 가장 작은 값을 갖는 코드 워드를 검출하고, 그 검출된 코드 워드를 프로그램 코드 워드로 결정한다. 즉, 도 4에서 계산된 거리가 0인 코드 워드 "1010001"을 프로그램 코드 워드로 결정한다. 이 경우 읽혀진 코드 워드의 판정 불가능 값들이 모두 0이 되어 메모리 셀들에 저장된 데이터들을 "1010001"로 결정하게 된다.When distances between the code word read through the distance calculation process and possible program code words are calculated, the data determination unit 350 detects the code word having the smallest value among the calculated distances, and the detected code word. Is determined as the program code word. That is, the code word "1010001" whose distance calculated in FIG. 4 is 0 is determined as the program code word. In this case, all of the undeterminable values of the read code word become 0, and the data stored in the memory cells are determined as "1010001".
이때, 데이터 결정부(350)는 디코딩부(340)가 신드롬 계산을 이용하여 디코딩을 수행하는 경우 계산된 신드롬을 기초로 메모리 셀들에 프로그램된 데이터를 결정할 수 있다.In this case, the data determiner 350 may determine the data programmed in the memory cells based on the calculated syndrome when the decoding unit 340 performs decoding using the syndrome calculation.
신드롬 계산에 의한 디코딩을 통해 데이터 결정 과정에 대한 일 예를 도 5를 참조하여 설명하면 다음과 같다.An example of a data determination process through decoding by syndrome calculation will be described with reference to FIG. 5.
도 5는 메모리 셀들에 프로그램되는 코드 워드로서 해밍 코드가 사용되고 메모리 셀들로부터 읽혀진 코드 워드가 "1010X1X21"인 경우의 신드롬을 나타낸 것이다.FIG. 5 shows a syndrome when a Hamming code is used as the code word programmed into the memory cells and the code word read from the memory cells is "1010X1X21".
여기서, X1 및 X2는 판정 불가능 값들을 의미한다.Here, X1 and X2 mean undeterminable values.
도 5를 참조하면, 디코딩부(340)는 읽혀진 코드 워드 "1010X1X21"에 대한 신 드롬 계산을 수행한다. 여기서, 읽혀진 코드 워드에 대한 신드롬 계산 과정은 이 기술 분야에 종사하는 당업자에게 있어서 자명하기에 설명을 생략한다.Referring to FIG. 5, the decoding unit 340 performs syndrome calculation on the read code word “1010X1X21”. Here, the syndrome calculation process for the read code word is obvious to those skilled in the art and will not be described.
신드롬 계산에 의한 신드롬(s)은 " X1[0 1 1] + X2[1 1 1]"이 된다.The syndrome s by the syndrome calculation becomes "X1 [0 1 1] + X2 [1 1 1]".
디코딩부(340)에 의해 계산된 신드롬(s)은 판정 불가능 값들 X1 및 X2의 가능한 값들 00, 01, 10 및 11 각각에 대한 신드롬들은 000, 111, 011 및 100이 된다.The syndrome s calculated by the decoding unit 340 is the syndromes for the
데이터 결정부(350)는 디코딩부(340)에 의해 계산된 신드롬들을 기초로 에러 패턴들(e)을 확인하고, 읽혀진 코드 워드 및 에러 패턴들을 기초로 메모리 셀들에 프로그램된 코드 워드를 결정한다. 즉, 데이터 결정부(350)는 판정 불가능 값들 각각에 대응하는 읽혀진 코드 워드들 및 에러 패턴들을 기초로 가능한 프로그램 코드 워드들(cp)을 계산하고, 그 계산된 가능한 프로그램 코드 워드들 중 빈도수가 가장 높은 가능한 프로그램 코드 워드인 "1010001"을 프로그램 코드 워드로 결정하여 메모리 셀들에 저장된 데이터들을 "1010001"로 결정한다.The data determiner 350 checks the error patterns e based on the syndromes calculated by the decoder 340, and determines the code word programmed in the memory cells based on the read code word and the error patterns. That is, the data determination unit 350 calculates possible program code words cp based on the read code words and error patterns corresponding to each of the undeterminable values, and the frequency of the calculated possible program code words is the most. A high possible program code word "1010001" is determined as the program code word to determine the data stored in the memory cells as "1010001".
도 6은 본 발명의 일 실시예에 다른 데이터 읽기 방법에 대한 동작 흐름도이다.6 is an operation flowchart for a data reading method according to an embodiment of the present invention.
도 6을 참조하면, 데이터 읽기 방법은 메모리 셀의 문턱 전압과 제1 경계 전압 및 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교한다(S610).Referring to FIG. 6, the data read method compares a threshold voltage of a memory cell with a second boundary voltage having a voltage level higher than the first boundary voltage and the first boundary voltage (S610).
이때, 제1 경계 전압 및 제2 경계 전압은 메모리 셀에 프로그램될 수 있는 데이터인 0 또는 1을 구분하는 경계 영역 사이의 기 결정된 두 전압들일 수 있다.In this case, the first boundary voltage and the second boundary voltage may be two predetermined voltages between boundary regions for dividing 0 or 1 which are data that can be programmed in the memory cell.
여기서, 프로그램된 데이터를 구분하는 경계 영역의 수는 메모리 셀의 동작 방식에 따라 달라질 수 있다. 예컨대, 메모리 셀이 SLC(single level cell) 방식으로 동작하는 경우 프로그램된 데이터를 구분하는 경계 영역은 하나가 되고, 메모리 셀이 MLC(multi level cell) 방식으로 동작하는 경우에는 프로그램된 데이터를 구분하는 경계 영역은 둘 이상이 된다.Here, the number of boundary regions that divide the programmed data may vary according to an operation method of the memory cell. For example, when the memory cell operates in a single level cell (SLC) scheme, there is one boundary area for dividing the programmed data. When the memory cell operates in a multi level cell (MLC) scheme, the boundary region that divides the programmed data is divided. There is more than one boundary area.
여기서, 제1 경계 전압 및 제2 경계 전압은 메모리 셀에 프로그램된 데이터를 0으로 판단하는 영역 및 프로그램된 데이터를 1로 판단하는 영역 사이에서 데이터를 읽을 때 읽은 데이터를 신뢰할 수 없는 경계 영역의 최소 전압 및 최대 전압이 된다.Here, the first boundary voltage and the second boundary voltage are the minimum of the boundary region in which the read data is unreliable when reading data between the region in which the data programmed into the memory cell is determined to be 0 and the region in which the programmed data is determined to be 1. Voltage and maximum voltage.
이때, 경계 영역은 상황에 따라 달라질 수 있지만, 차지 로스 및 플로팅 폴리 커플링 등에 의한 영향을 고려하여 설정될 수 있다.In this case, the boundary region may vary depending on the situation, but may be set in consideration of the influence due to the charge loss and the floating poly coupling.
이때, 메모리 셀은 플래시 메모리 셀일 수 있고, 바람직하게는 NAND 플래시 메모리 셀 또는 NOR 플래시 메모리 셀일 수 있다.In this case, the memory cell may be a flash memory cell, and preferably, may be a NAND flash memory cell or a NOR flash memory cell.
이때, 메모리 셀은 MLC(multi level cell) 방식의 메모리 셀이거나 SLC(single level cell) 방식의 메모리 셀일 수 있다.In this case, the memory cell may be a multi level cell (MLC) type memory cell or a single level cell (SLC) type memory cell.
메모리 셀의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이에 위치하는 지 판단하고(S620), 판단 결과 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이에 위치하면 메모리 셀의 데이터를 판정 불가능 값으로 읽는다(S630).It is determined whether the threshold voltage of the memory cell is located between the first threshold voltage and the second threshold voltage (S620). If the threshold voltage is between the first threshold voltage and the second threshold voltage, the data of the memory cell is determined. Read as an impossible value (S630).
반면, 단계 S620 판단 결과 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이에 위치하지 않으면 메모리 셀의 데이터를 해당 문턱 전압이 위치한 전압 영역으 로 설정된 데이터로 읽는다(S640). 예컨대, 도 2를 참조하면, 문턱 전압이 VSEN_1A보다 작거나 VSEN_3B보다 큰 경우에는 메모리 셀의 LSB 데이터를 1로 읽는다.On the other hand, if the threshold voltage is not located between the first and second threshold voltages as a result of determining in step S620, the data of the memory cell is read as data set to the voltage region in which the threshold voltage is located (S640). For example, referring to FIG. 2, when the threshold voltage is smaller than VSEN_1A or larger than VSEN_3B, the LSB data of the memory cell is read as one.
도 7은 본 발명의 다른 일 실시예에 따른 데이터 읽기 방법에 대한 동작 흐름도이다.7 is a flowchart illustrating a data reading method according to another embodiment of the present invention.
도 7을 참조하면, 데이터 읽기 방법은 메모리를 구성하는 메모리 셀들 각각의 문턱 전압들과 제1 경계 전압 및 제1 경계 전압보다 높은 전압 레벨을 가지는 제2 경계 전압을 비교한다(S710).Referring to FIG. 7, in the data reading method, threshold voltages of each of the memory cells constituting a memory are compared with a first boundary voltage and a second boundary voltage having a voltage level higher than the first boundary voltage (S710).
이때, 제1 경계 전압 및 제2 경계 전압은 메모리 셀들 각각에 프로그램된 데이터들 각각을 구분하는 경계 영역 사이의 기 결정된 두 전압들일 수 있다.In this case, the first boundary voltage and the second boundary voltage may be two predetermined voltages between boundary regions that divide each of the data programmed in each of the memory cells.
여기서, 제1 경계 전압 및 제2 경계 전압은 메모리 셀에 프로그램된 데이터를 0으로 판단하는 영역 및 프로그램된 데이터를 1로 판단하는 영역 사이에서 데이터를 읽을 때 읽은 데이터를 신뢰할 수 없는 경계 영역의 최소 전압 및 최대 전압이 된다.Here, the first boundary voltage and the second boundary voltage are the minimum of the boundary region in which the read data is unreliable when reading data between the region in which the data programmed into the memory cell is determined to be 0 and the region in which the programmed data is determined to be 1. Voltage and maximum voltage.
이때, 메모리 셀들은 플래시 메모리 셀들일 수 있고, 바람직하게는 NAND 플래시 메모리 셀들 또는 NOR 플래시 메모리 셀들일 수 있다.In this case, the memory cells may be flash memory cells, and may preferably be NAND flash memory cells or NOR flash memory cells.
이때, 메모리 셀들은 MLC 방식의 메모리 셀들이거나 SLC 방식의 메모리 셀들일 수 있다.In this case, the memory cells may be MLC type memory cells or SLC type memory cells.
메모리 셀들의 문턱 전압들이 제1 경계 전압 및 제2 경계 전압 사이에 위치하는 지 판단하고(S720), 메모리 셀들 각각에 대한 판단 결과 메모리 셀의 문턱 전 압이 제1 경계 전압 및 제2 경계 전압 사이에 위치하면 해당 메모리 셀의 데이터를 판정 불가능 값으로 읽는다(S730).It is determined whether the threshold voltages of the memory cells are located between the first boundary voltage and the second boundary voltage (S720), and as a result of the determination of each of the memory cells, the threshold voltage of the memory cells is between the first boundary voltage and the second boundary voltage. If it is located at, the data of the corresponding memory cell is read as an undeterminable value (S730).
반면, 메모리 셀들 각각에 대한 단계 S720 판단 결과 메모리 셀의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이에 위치하지 않으면 해당 메모리 셀의 데이터를 해당 메모리 셀의 문턱 전압이 위치한 전압 영역으로 설정된 데이터로 읽는다(S740). On the other hand, if the threshold voltage of the memory cell is not located between the first and second threshold voltages as a result of the determination of step S720 for each of the memory cells, the data of the memory cell is set to a voltage region in which the threshold voltage of the memory cell is located. Read in (S740).
읽혀진 메모리 셀들의 데이터들을 디코딩하고, 디코딩 과정을 통해 판정 불가능 값이 포함된 메모리 셀들의 데이터들을 결정한다(S750).The data of the read memory cells are decoded and the data of the memory cells including the undeterminable value are determined through the decoding process (S750).
이때, 읽혀진 메모리 셀들의 데이터들은 읽혀진 메모리 셀들의 데이터들 중 판정 불가능 값의 데이터를 제외한 데이터들을 이용하여 거리 디코딩을 수행할 수 있다.At this time, the data of the read memory cells may perform distance decoding using data other than data of an undeterminable value among the read data of the memory cells.
이때, 읽혀진 메모리 셀들의 데이터들은 읽혀진 메모리 셀들의 데이터들 중 판정 불가능 값의 데이터에 대한 각 경우를 고려한 신드롬 계산을 이용하여 디코딩을 수행할 수 있다.In this case, the data of the read memory cells may be decoded by using a syndrome calculation considering each case of undeterminable data among the read data of the memory cells.
도 8은 도 7에 도시한 단계 S750에 대한 일 실시예 동작 흐름도이다.FIG. 8 is a flowchart illustrating an embodiment of operation S750 shown in FIG. 7.
도 8을 참조하면, 메모리 셀들의 데이터들을 결정하는 단계는 메모리 셀들의 데이터들이 읽혀진 코드 워드와 기 결정된 가능한 프로그램 코드 워드들의 거리들을 계산한다(S810).Referring to FIG. 8, in the determining of the data of the memory cells, the distances of the code word from which the data of the memory cells are read and the predetermined possible program code words are calculated (S810).
이때, 가능한 프로그램 코드 워드들은 메모리 셀들에 데이터들을 프로그램할 때 사용하는 코드에 따라 달라질 수 있다.In this case, the possible program code words may vary depending on the code used to program the data in the memory cells.
여기서, 거리들을 계산하는 단계(S810)는 읽혀진 코드 워드에 포함된 판정 불가능 값을 제외한 데이터들을 이용하여 수행된다. 즉, 읽혀진 코드 워드가 7 bits이고 판정 불가능 값이 2 bits인 경우 5 bits의 데이터들을 이용하여 가능한 프로그램 코드 워드들과의 거리를 계산한다.Here, the calculating of the distances (S810) is performed using data except for the undeterminable value included in the read code word. That is, when the read code word is 7 bits and the undeterminable value is 2 bits, the distance from the possible program code words is calculated using 5 bits of data.
계산된 거리들 중 가장 작은 값을 갖는 거리의 가능한 프로그램 코드 워드를 검출한다(S820). 즉, 가능한 프로그램 코드 워드들 중 가능성이 가장 높은 코드 워드를 검출한다.A possible program code word having the smallest value among the calculated distances is detected (S820). That is, the most probable code word among the possible program code words is detected.
검출된 가능한 프로그램 코드 워드를 메모리 셀들에 저장된 프로그램 코드 워드로 결정하여 메모리 셀들의 데이터들을 결정한다(S830).The detected possible program code word is determined as the program code word stored in the memory cells to determine the data of the memory cells (S830).
도 9는 도 7에 도시한 단계 S750에 대한 다른 일 실시예 동작 흐름도이다.9 is a flowchart illustrating another operation of step S750 illustrated in FIG. 7.
도 9를 참조하면, 메모리 셀들의 데이터들을 결정하는 단계는 메모리 셀들의 데이터들인 읽혀진 코드 워드에 대한 신드롬을 계산한다(S910).Referring to FIG. 9, the determining of the data of the memory cells calculates a syndrome for the read code word that is the data of the memory cells (S910).
계산된 신드롬에 포함된 판정 불가능 값 각각의 경우에 대한 신드롬들을 검출한다(S920). 예컨대, 수신 코드 워드에 두 개의 판정 불가능 값들이 포함된 경우 4 개의 신드롬들을 검출한다.The syndromes for each case of the undeterminable value included in the calculated syndrome are detected (S920). For example, four syndromes are detected when two undeterminable values are included in a received code word.
검출한 신드롬들을 기초로 신드롬들 각각에 상응하는 에러 패턴들을 확인한다(S930).Based on the detected syndromes, error patterns corresponding to each of the syndromes are checked (S930).
에러 패턴들 및 읽혀진 코드 워드를 기초로 가능한 프로그램 코드 워드들을 계산한다(S940). 예컨대, 해밍 코드를 이용하여 메모리 셀들에 데이터들을 프로그램한 경우 판정 불가능 값들 각각에 0 또는 1을 적용한 읽혀진 코드 워드와 해당 에러 패턴의 덧셈 연산을 통해 가능한 프로그램 코드 워드를 계산한다.Possible program code words are calculated based on the error patterns and the read code word (S940). For example, when data are programmed into memory cells using a Hamming code, a program code word is calculated by adding a read code word to which 0 or 1 is applied to each of the undetermined values and an error operation of the corresponding error pattern.
계산된 가능한 코드 워드들 중 빈도수가 가장 높은 가능한 프로그램 코드 워드를 메모리 셀들에 저장된 프로그램 코드 워드로 결정하여 메모리 셀들의 데이터들을 결정한다(S950).The program code word having the highest frequency among the calculated possible code words is determined as the program code word stored in the memory cells to determine the data of the memory cells (S950).
도 10은 도 2와 비교할 때, 본 발명의 또 다른 일실시예에 따라 연성 결정값(soft decision value)을 추가적으로 정의하는 일도면이다. 이하, 도 10을 참조(도 1 및 도 2 보조 참조)하여, 본 발명에 따른 데이터 읽기 장치의 또 다른 일실시예를 설명하면 다음과 같다.FIG. 10 is a diagram further defining a soft decision value according to another embodiment of the present invention when compared with FIG. 2. Hereinafter, another embodiment of a data reading apparatus according to the present invention will be described with reference to FIG. 10 (see FIGS. 1 and 2).
도 1 및 도 2에 대한 설명에서, 본 발명의 일실시예로서, 데이터 읽기부(130)는 전압 비교부(120)로부터 생성된 결과값을 입력 받고, 그 입력된 결과값을 기초로 메모리 셀의 데이터를 판정하고, 이 때 메모리 셀(110)의 문턱 전압이 제1 경계 전압 및 제2 경계 전압 사이의 전압이면 메모리 셀의 데이터를 판정 불가능 값으로 판정할 수 있다고 설명하였다.1 and 2, as an embodiment of the present invention, the
다만, 본 발명의 다른 일실시예로서, 신뢰도에 따라 연성 결정값(soft decision value)을 생성하고, 필요에 따라 신뢰할 수 없는 구간에 대한 추가적인 리딩 오퍼레이션(reading operation)을 수행하여, 보다 정확한 연성 결정값을 생성하도록 하는 것이 가능하다. 따라서, 데이터의 디코딩 이전 단계에서도, 신뢰할 수 없는 구간에서 읽힌 데이터의 정확도를 높이는 프로세스를 수행함으로써, 최종적으로 메모리 셀의 데이터가 보다 정확하게 결정될 수 있는 장점이 있다.However, as another embodiment of the present invention, a soft decision value is generated according to reliability, and an additional reading operation is performed for an unreliable section as needed, thereby making more accurate soft decision. It is possible to generate a value. Therefore, even before the decoding of the data, by performing the process of increasing the accuracy of the data read in the unreliable interval, there is an advantage that the data of the memory cell can be finally determined more accurately.
예를 들어, 메모리 셀의 문턱 전압이 (제1 경계 전압)와 (제2 경계 전압) 사이의 전압일 수 있으므로, 보다 정확한 문턱 전압의 위치를 파악하기 위하여, 도 10에 도시된 바와 같이 리딩 오퍼레이션을 추가적으로 실시하여 상기 문턱 전압이 제1 경계 전압에 근사한 경우, 상기 문턱 전압이 제2 경계 전압 보다 제1 경계 전압에 더 근사하다는 정보가 포함되도록, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터를 특정 연성 결정값으로 판정한다.For example, since the threshold voltage of the memory cell may be a voltage between the (first boundary voltage) and the (second boundary voltage), in order to determine a more accurate position of the threshold voltage, as shown in FIG. In addition, when the threshold voltage is close to the first threshold voltage, the data read
반면, 상기 리딩 오퍼레이션을 추가적으로 실시하여 상기 문턱 전압이 제2 경계 전압에 근사한 경우, 상기 문턱 전압이 제1 경계 전압 보다 제2 경계 전압에 더 근사하다는 정보가 포함되도록, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터를 특정 연성 결정값으로 판정한다.On the other hand, if the threshold voltage is approximated to the second threshold voltage by additionally performing the reading operation, the
보다 구체적으로 예를 들어, 도 10에 도시된 바와 같이, 임의의 메모리 셀의 LSB 데이터가 1일 때의 연성 결정값이 11로 설계되었고 LSB 데이터가 0 일 때의 연성 결정값이 ‘00’으로 설계된 경우, 상기 메모리 셀의 문턱 전압이 제2 경계 전압 보다 제1 경계 전압에 더 근사한 경우, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터에 대한 연성 결정값으로 ‘10’을 읽는다. 반면, 상기 메모리 셀의 문턱 전압이 제1 경계 전압 보다 제2 경계 전압에 더 근사한 경우, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터에 대한 연성 결정값으로 ‘01’을 읽는다.More specifically, for example, as shown in FIG. 10, the soft decision value when the LSB data of any memory cell is 1 is designed to 11 and the soft decision value when the LSB data is 0 is set to '00'. In the design, when the threshold voltage of the memory cell is closer to the first boundary voltage than the second boundary voltage, the
따라서, 문턱 전압이 제1 경계 전압과 제2 경계 전압사이에 존재하는 경우, 즉 신뢰할 수 없는 구간에 존재하는 경우에도, 상기 문턱 전압이 어느 경계 전압에 근사한지에 대한 정보를 읽어서, 디코딩함으로써, 데이터의 정확도를 보다 제고할 수 있는 본 발명의 특유의 장점이 있다.Therefore, even when the threshold voltage is present between the first and second threshold voltages, i.e., when the threshold voltage is present in an unreliable section, the information on which threshold voltage is close to the threshold voltage is read and decoded, thereby providing data. There is a unique advantage of the present invention that can further improve the accuracy of.
한편, 다른 제1 경계 전압(VSEN _3A)과 제2 경계 전압(VSEN _3B)에 대해서도 상술한 동일한 설명이 적용되고, 이에 대한 설명을 생략하여도 당업자라면 전술한 설명을 통해 본 발명을 충분히 이해할 수 있는 바, 중복되는 설명은 생략하도록 하겠다.Meanwhile, the same descriptions described above also apply to the other first threshold voltage V SEN _3A and the second threshold voltage V SEN _3B , and even if the description is omitted, those skilled in the art will fully understand the present invention through the above description. As can be appreciated, duplicate descriptions will be omitted.
도 11은 도 2와 비교할 때, 본 발명의 또 다른 일실시예에 따라 연성 결정값(soft decision value)을 추가적으로 정의하는 다른 일도면이다. 이하, 도 11을 참조(도 1, 도 2 및 도 10 보조 참조)하여, 본 발명에 따른 데이터 읽기 장치의 또 다른 일실시예를 설명하면 다음과 같다. 참고적으로, 도 11과 도 10을 비교할 때, 도 10은 연성 결정값을 2비트로 정의한 것이고, 도 11은 연성 결정값을 3비트로 정의한 것인 바, 상세한 설명은 생략하여도 전술한 도 10에 대한 설명을 통해 당업자라면 본 발명을 용이하게 이해할 수가 있다.FIG. 11 is another diagram further defining a soft decision value according to another embodiment of the present invention when compared with FIG. 2. Hereinafter, another embodiment of a data reading apparatus according to the present invention will be described with reference to FIG. 11 (see FIGS. 1, 2, and 10). For reference, when comparing FIG. 11 and FIG. 10, FIG. 10 defines a soft determination value as 2 bits, and FIG. 11 defines a soft determination value as 3 bits, and detailed description thereof will be omitted. Those skilled in the art can easily understand the present invention through the description.
보다 구체적으로 예를 들어, 도 11에 도시된 바와 같이, 임의의 메모리 셀의 LSB 데이터가 1일 때의 연성 결정값이 ‘111’로 설계되었고 LSB 데이터가 0일 때의 연성 결정값이 ‘000’으로 설계된 경우, 상기 메모리 셀의 문턱 전압이 제2 경계 전압 보다 제1 경계 전압에 더 근사한 특정 범위에 속하는 경우, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터에 대한 연성 결정값으로 ‘110’을 읽는다. 반면, 상기 메모리 셀의 문턱 전압이 제1 경계 전압 보다 제2 경계 전압에 더 근사한 특정 범위에 속하는 경우, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터에 대한 연성 결정값으로 ‘100’을 읽는다. 한편, 상기 메모리 셀의 문턱 전 압이 제1 경계 전압과 제2 경계 전압과 동일한 정도의 특정 범위에 속하는 경우에는, 상기 데이터 읽기부(130)는 상기 메모리 셀의 데이터에 대한 연성 결정값으로 ‘101’을 읽는다.More specifically, for example, as shown in FIG. 11, the soft determination value when the LSB data of any memory cell is 1 is designed as '111' and the soft determination value when the LSB data is 0 is '000'. When the threshold voltage of the memory cell belongs to a specific range that is closer to the first threshold voltage than the second threshold voltage, the
지금까지, 2비트와 3비트의 연성 결정값을 예시하여 설명하였지만, 본 발명의 권리범위가 이에 한정되는 것은 아니며, 다른 수치의 비트의 연성 결정값을 설계하는 것도 가능하다.The soft decision values of two bits and three bits have been described so far, but the scope of the present invention is not limited thereto, and it is also possible to design soft decision values of bits having other numerical values.
본 발명에 따른 데이터 읽기 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 상기 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The data reading method according to the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. The medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the present invention has been described with reference to limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
도 1은 본 발명의 일 실시예에 따른 데이터 읽기 장치에 대한 구성 블록도이다.1 is a block diagram illustrating a data reading apparatus according to an embodiment of the present invention.
도 2는 본 발명에 따른 데이터 읽기 장치를 설명하기 위한 일 예시도이다. 2 is an exemplary view for explaining a data reading apparatus according to the present invention.
도 3은 본 발명의 다른 일 실시예에 따른 데이터 읽기 장치에 대한 구성 블록도이다.3 is a block diagram illustrating a data reading apparatus according to another embodiment of the present invention.
도 4는 메모리 셀들에 프로그램되는 코드 워드로서 해밍 코드가 사용되고 메모리 셀들로부터 읽혀진 코드 워드가 "1010XX1"인 경우 가능한 프로그램 코드 워드와 읽혀진 코드 워드의 거리를 나타낸 것이다.4 shows the distance between a possible program code word and a read code word when a Hamming code is used as the code word programmed into the memory cells and the code word read from the memory cells is "1010XX1".
도 5는 메모리 셀들에 프로그램되는 코드 워드로서 해밍 코드가 사용되고 메모리 셀들로부터 읽혀진 코드 워드가 "1010X1X21"인 경우의 신드롬을 나타낸 것이다.FIG. 5 shows a syndrome when a Hamming code is used as the code word programmed into the memory cells and the code word read from the memory cells is "1010X1X21".
도 6은 본 발명의 일 실시예에 다른 데이터 읽기 방법에 대한 동작 흐름도이다.6 is an operation flowchart for a data reading method according to an embodiment of the present invention.
도 7은 본 발명의 다른 일 실시예에 따른 데이터 읽기 방법에 대한 동작 흐름도이다.7 is a flowchart illustrating a data reading method according to another embodiment of the present invention.
도 8은 도 7에 도시한 단계 S750에 대한 일 실시예 동작 흐름도이다.FIG. 8 is a flowchart illustrating an embodiment of operation S750 shown in FIG. 7.
도 9는 도 7에 도시한 단계 S750에 대한 다른 일 실시예 동작 흐름도이다.9 is a flowchart illustrating another operation of step S750 illustrated in FIG. 7.
도 10은 도 2와 비교할 때, 본 발명의 또 다른 일실시예에 따라 연성 결정값(soft decision value)을 추가적으로 정의하는 일도면이다.FIG. 10 is a diagram further defining a soft decision value according to another embodiment of the present invention when compared with FIG. 2.
도 11은 도 2와 비교할 때, 본 발명의 또 다른 일실시예에 따라 연성 결정값(soft decision value)을 추가적으로 정의하는 다른 일도면이다.FIG. 11 is another diagram further defining a soft decision value according to another embodiment of the present invention when compared with FIG. 2.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
120, 320: 전압 비교부120, 320: voltage comparator
130, 330: 데이터 읽기부130, 330: data reading section
340: 디코딩부340: decoding unit
350: 데이터 결정부350: data determination unit
Claims (27)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010508281A JP5385261B2 (en) | 2007-05-14 | 2008-01-15 | Data reading apparatus and method |
PCT/KR2008/000239 WO2008140171A1 (en) | 2007-05-14 | 2008-01-15 | Apparatus for reading data and method using the same |
US12/007,921 US7800954B2 (en) | 2007-05-14 | 2008-01-17 | Apparatus for reading data and method using the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20070046622 | 2007-05-14 | ||
KR1020070046622 | 2007-05-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080100750A true KR20080100750A (en) | 2008-11-19 |
Family
ID=40287177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070075857A KR20080100750A (en) | 2007-05-14 | 2007-07-27 | Apparatus for reading data and method using the same |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5385261B2 (en) |
KR (1) | KR20080100750A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8116141B2 (en) | 2008-10-27 | 2012-02-14 | Samsung Electronics Co., Ltd. | Method analyzing threshold voltage distribution in nonvolatile memory |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013041634A (en) * | 2011-08-11 | 2013-02-28 | Fujitsu Ltd | Nonvolatile semiconductor memory device |
JP2017107620A (en) * | 2015-12-07 | 2017-06-15 | ルネサスエレクトロニクス株式会社 | Semiconductor device and nonvolatile memory |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56143599A (en) * | 1980-04-10 | 1981-11-09 | Toshiba Corp | Check system for fault of p-rom |
JPH02146200A (en) * | 1988-11-28 | 1990-06-05 | Nec Corp | Eeprom device |
JPH03142800A (en) * | 1989-10-27 | 1991-06-18 | Nec Corp | Electrically erasable and writable programmable read only memory |
JP3450456B2 (en) * | 1994-08-31 | 2003-09-22 | 株式会社東芝 | Semiconductor storage device |
FR2728380A1 (en) * | 1994-12-20 | 1996-06-21 | Sgs Thomson Microelectronics | METHOD FOR WRITING DATA IN A CORRESPONDING ELECTRICALLY PROGRAMMABLE MEMORY AND MEMORY |
JPH08297987A (en) * | 1995-04-26 | 1996-11-12 | Toshiba Corp | Nonvolatile semiconductor memory |
JPH10222989A (en) * | 1996-09-18 | 1998-08-21 | Nippon Steel Corp | Multiple-value semiconductor storage, its writing method and reading method, and storage medium |
JPH10255487A (en) * | 1997-03-10 | 1998-09-25 | Fujitsu Ltd | Semiconductor memory |
JP2002230984A (en) * | 2001-02-05 | 2002-08-16 | Fujitsu Ltd | Non-volatile semiconductor memory |
JP2003100095A (en) * | 2001-09-21 | 2003-04-04 | Hitachi Ltd | Semiconductor integrated circuit device |
JP2003297099A (en) * | 2002-03-29 | 2003-10-17 | Mitsubishi Electric Corp | Nonvolatile semiconductor memory device |
US6751766B2 (en) * | 2002-05-20 | 2004-06-15 | Sandisk Corporation | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data |
JP3745709B2 (en) * | 2002-06-28 | 2006-02-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Encoding device, decoding device, encoding method, decoding method, program, program recording medium, and data recording medium |
JP2005011386A (en) * | 2003-06-16 | 2005-01-13 | Renesas Technology Corp | Error correction apparatus |
US7372731B2 (en) * | 2003-06-17 | 2008-05-13 | Sandisk Il Ltd. | Flash memories with adaptive reference voltages |
JP2005078721A (en) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | Error correcting method and memory circuit |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
JP2005173860A (en) * | 2003-12-10 | 2005-06-30 | Sony Corp | Data storage device, method for processing stored data, and computer program |
JP4534639B2 (en) * | 2004-07-15 | 2010-09-01 | ソニー株式会社 | Semiconductor memory device |
JP2006331497A (en) * | 2005-05-24 | 2006-12-07 | Denso Corp | Semiconductor device |
JP2006338789A (en) * | 2005-06-02 | 2006-12-14 | Renesas Technology Corp | Nonvolatile semiconductor memory device |
JP4796360B2 (en) * | 2005-09-07 | 2011-10-19 | 富士通セミコンダクター株式会社 | Redundant replacement method, semiconductor memory device, and information processing device |
KR100804793B1 (en) * | 2005-10-07 | 2008-02-20 | 삼성전자주식회사 | Method for updating Check Node in Low Density Parity Check Decoder |
-
2007
- 2007-07-27 KR KR1020070075857A patent/KR20080100750A/en not_active Application Discontinuation
-
2008
- 2008-01-15 JP JP2010508281A patent/JP5385261B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8116141B2 (en) | 2008-10-27 | 2012-02-14 | Samsung Electronics Co., Ltd. | Method analyzing threshold voltage distribution in nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
JP5385261B2 (en) | 2014-01-08 |
JP2010527094A (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367389B2 (en) | Recovery strategy that reduces errors misidentified as reliable | |
KR101413137B1 (en) | Memory device and memory programming method | |
US9990247B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
US8898553B1 (en) | Log-likelihood-ratio (LLR) table calibration | |
TWI594256B (en) | Method for performing memory access management, and associated memory device and controller thereof | |
JP5502064B2 (en) | Memory device and data determination method | |
KR100907218B1 (en) | Apparatus for controlling read level and method using the same | |
JP5324652B2 (en) | Memory device and error control code decoding method | |
US8797795B2 (en) | Methods and apparatus for intercell interference mitigation using modulation coding | |
JP2011514618A (en) | Memory device and method | |
JP2013122804A (en) | Semiconductor storage device | |
US20140026003A1 (en) | Flash memory read error rate reduction | |
US10176867B2 (en) | Estimation of level-thresholds for memory cells | |
JP2011519107A (en) | Apparatus and method for hybrid detection of memory data | |
KR20090093695A (en) | Apparatus for determining number of bits of data storing in memory | |
JP2011512611A (en) | Memory data detection device for controlling a reference voltage based on an error of stored data | |
US11024391B1 (en) | System and method for estimating uninformed log-likelihood ratio (LLR) for NAND flash memories | |
US7800954B2 (en) | Apparatus for reading data and method using the same | |
US10963338B1 (en) | System and method for decoder assisted dynamic log-likelihood ratio (LLR) estimation for NAND flash memories | |
US10607709B1 (en) | System and method for efficient read-flow by inter-cell interference decoupling for NAND flash memories | |
KR20080100750A (en) | Apparatus for reading data and method using the same | |
KR100892583B1 (en) | Apparatus for programming a data of memory cell considering floating poly coupling and method using the same | |
US10614897B1 (en) | System and method for high performance sequential read by decoupling of inter-cell interference for NAND flash memories | |
US9009576B1 (en) | Adaptive LLR based on syndrome weight | |
KR101267798B1 (en) | Apparatus for controlling read level and method using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |