KR20250075409A - Memory device that changes type of codeword stored in memory area and operation method thereof - Google Patents
Memory device that changes type of codeword stored in memory area and operation method thereof Download PDFInfo
- Publication number
- KR20250075409A KR20250075409A KR1020240011276A KR20240011276A KR20250075409A KR 20250075409 A KR20250075409 A KR 20250075409A KR 1020240011276 A KR1020240011276 A KR 1020240011276A KR 20240011276 A KR20240011276 A KR 20240011276A KR 20250075409 A KR20250075409 A KR 20250075409A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- codeword
- type
- area
- memory area
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
메모리 장치는 복수의 메모리 유닛들을 포함하는 메모리 미디어 및 각각 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하고 복수이 메모리 영역들에 코드워드를 저장하는 컨트롤러를 포함할 수 있다. 컨트롤러는 제1 타입을 가지는 하나 이상의 제1 코드워드들을 복수의 메모리 영역들 중 타깃 메모리 영역에 저장하고, 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛을 탐색하고, 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛이 탐색될 때 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상을 제2 타입을 가지는 하나의 제2 코드워드로 변환하고, 변환된 제2 코드워드를 메모리 미디어에 라이트할 수 있다.A memory device may include a memory medium including a plurality of memory units, and a controller configured to set a plurality of memory areas, each of which includes at least one of the plurality of memory units, and store a codeword in the plurality of memory areas. The controller may store at least one first codeword having a first type in a target memory area among the plurality of memory areas, search for a defective memory unit among the memory units included in the target memory area, and when a defective memory unit is searched for among the memory units included in the target memory area, convert at least one of the first codewords stored in the target memory area into a second codeword having a second type, and write the converted second codeword to the memory medium.
Description
본 발명의 실시예들은 메모리 영역에 저장되는 코드워드의 타입을 변경하는 메모리 장치 및 그 방법에 관한 것이다.Embodiments of the present invention relate to a memory device and method for changing the type of a codeword stored in a memory area.
휘발성 메모리(e.g. SRAM, DRAM)는 전원 공급이 차단될 때 저장된 데이터가 소멸되고, 비휘발성 메모리(e.g. NAND Flash, PRAM, MRAM)는 전원 공급이 차단되어도 저장된 데이터가 유지된다.Volatile memory (e.g. SRAM, DRAM) loses stored data when power is cut off, while nonvolatile memory (e.g. NAND Flash, PRAM, MRAM) retains stored data even when power is cut off.
한편, 휘발성 메모리의 제조 과정 또는 사용 과정에서 휘발성 메모리의 일부 영역에 불량이 발생할 가능성이 높아질 수 있다. 만약 해당 영역에 저장된 코드워드에 발생한 에러를 기존의 ECC(Error Correction code)를 사용하여 정정할 수 없다고 판단되는 경우, 휘발성 메모리는 불량이 발생할 가능성이 높은 영역에 대해서는 에러 정정 성능을 높일 필요가 있다.Meanwhile, during the manufacturing process or use of volatile memory, there may be an increased possibility of defects occurring in some areas of volatile memory. If it is determined that an error occurring in a codeword stored in the area cannot be corrected using the existing ECC (Error Correction code), the volatile memory needs to improve error correction performance for areas where defects are likely to occur.
본 발명의 실시예들은 불량이 발생할 가능성이 높은 영역에 대한 에러 정정 능력을 향상시킬 수 있는 메모리 장치 및 그 방법을 제공할 수 있다.Embodiments of the present invention can provide a memory device and method thereof capable of improving error correction capability for an area where defects are likely to occur.
일 측면에서, 본 발명의 실시예들은 i) 복수의 메모리 유닛들을 포함하는 메모리 미디어 및 ii) 각각 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하고, 복수의 메모리 영역들에 코드워드를 저장하는 컨트롤러를 포함하는 메모리 장치를 제공할 수 있다. 이때, 컨트롤러는, 제1 타입을 가지는 하나 이상의 제1 코드워드들을 복수의 메모리 영역들 중 타깃 메모리 영역에 저장하고, 타깃 메모리 영역에 포함된 메모리 유닛들 중에 불량 메모리 유닛을 탐색하고, 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛이 탐색될 때 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상을 제2 타입을 가지는 하나의 제2 코드워드로 변환하고 변환된 제2 코드워드를 메모리 미디어에 라이트할 수 있다.In one aspect, embodiments of the present invention may provide a memory device including i) a memory media including a plurality of memory units, and ii) a controller that sets a plurality of memory areas, each of which includes at least one of the plurality of memory units, and stores a codeword in the plurality of memory areas. At this time, the controller may store at least one first codeword having a first type in a target memory area among the plurality of memory areas, search for a defective memory unit among the memory units included in the target memory area, and when a defective memory unit is searched for among the memory units included in the target memory area, convert at least one of the first codewords stored in the target memory area into a second codeword having a second type, and write the converted second codeword to the memory media.
다른 측면에서, 본 발명의 실시예들은 i) 각각 메모리 미디어에 포함된 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하는 단계, ii) 제1 타입을 가지는 하나 이상의 제1 코드워드들을 복수의 메모리 영역들 중 타깃 메모리 영역에 저장하는 단계, iii) 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛을 탐색하는 단계 및 iv) 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛이 탐색될 때, 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상을 제2 타입을 가지는 하나의 제2 코드워드로 변환하고 변환된 제2 코드워드를 메모리 미디어에 라이트하는 단계를 포함하는 메모리 장치의 동작 방법을 제공할 수 있다.In another aspect, embodiments of the present invention can provide a method of operating a memory device, including the steps of: i) setting a plurality of memory areas, each of which includes at least one of a plurality of memory units included in a memory medium; ii) storing at least one first codeword having a first type in a target memory area among the plurality of memory areas; iii) searching for a defective memory unit among the memory units included in the target memory area; and iv) when a defective memory unit is searched for among the memory units included in the target memory area, converting at least one of the first codewords stored in the target memory area into a second codeword having a second type and writing the converted second codeword to the memory medium.
또 다른 측면에서, 본 발명의 실시예들은 i) 복수의 메모리 유닛들을 포함하는 메모리 미디어 및 ii) 제1 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제1 에러 검출 및 정정 회로 및 제2 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제2 에러 검출 및 정정 회로를 포함하는 컨트롤러를 포함하는 메모리 장치를 제공할 수 있다. 이때, 컨트롤러는 각각 상기 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하고, 복수의 메모리 영역들 중 제1 메모리 영역에 제1 타입을 가지는 하나 이상의 제1 코드워드들을 저장하고, 복수의 메모리 영역들 중 제2 메모리 영역에 제2 타입을 가지는 하나 이상의 제2 코드워드들을 저장하고, 제1 코드워드들에 대한 에러 정정을 제1 에러 검출 및 정정 회로를 통해 수행하고, 제2 코드워드들에 대한 에러 정정을 상기 제2 에러 검출 및 정정 회로를 통해 수행하고, 제2 메모리 영역에 포함된 메모리 유닛들 중 하나 이상을 불량 메모리 유닛으로 결정할 수 있다.In another aspect, embodiments of the present invention may provide a memory device including i) a memory medium including a plurality of memory units, and ii) a controller including a first error detection and correction circuit that detects an error bit position for a first type of codeword and performs error correction, and a second error detection and correction circuit that detects an error bit position for a second type of codeword and performs error correction. At this time, the controller may set a plurality of memory areas each including at least one of the plurality of memory units, store at least one first codeword having a first type in a first memory area among the plurality of memory areas, store at least one second codeword having a second type in a second memory area among the plurality of memory areas, perform error correction for the first codewords through the first error detection and correction circuit, perform error correction for the second codewords through the second error detection and correction circuit, and determine at least one of the memory units included in the second memory area as a defective memory unit.
본 발명의 실시예들에 의하면, 불량이 발생할 가능성이 높은 영역에 대한 에러 정정 능력을 향상시킬 수 있다.According to embodiments of the present invention, error correction capability for areas where defects are likely to occur can be improved.
도 1은 본 발명의 실시예들에 따른 메모리 장치의 구조의 일 예를 나타낸 도면이다.
도 2는 본 발명의 실시예들에 따른 메모리 장치의 동작의 일 예를 나타내는 순서도이다.
도 3은 본 발명의 실시예들에 따른 메모리 장치가 제2 코드워드를 라이트하는 동작의 일 예를 나타낸 도면이다.
도 4는 본 발명의 실시예들에 따른 메모리 장치가 메모리 유닛이 불량 메모리 유닛인지 여부를 판단하는 동작의 일 예를 나타낸 순서도이다.
도 5는 본 발명의 실시예들에 따른 메모리 장치가 제2 코드워드를 생성하는 동작의 일 예를 나타낸 도면이다.
도 6은 본 발명의 실시예들에 따른 메모리 장치가 제2 코드워드를 K개의 제1 코드워드들이 저장된 위치에 오버라이트하는 동작의 일 예를 나타낸 도면이다.
도 7은 본 발명의 실시예들에 따른 메모리 장치가 제2 코드워드를 생성하는 동작의 다른 예를 나타낸 도면이다.
도 8은 본 발명의 실시예들에 따른 메모리 장치의 구조의 다른 예를 나타낸 도면이다.
도 9는 본 발명의 실시예들에 따른 메모리 장치가 타깃 메모리 영역에 저장된 코드워드에 대한 에러 정정을 수행하는 동작의 일 예를 나타낸 도면이다.
도 10은 본 발명의 실시예들에 따른 메모리 장치가 타깃 메모리 영역에 저장된 코드워드에 대한 에러 정정을 수행하는 동작의 다른 예를 나타낸 도면이다.
도 11은 본 발명의 실시예들에 따른 메모리 장치가 테이블을 기초로 코드워드의 타입을 판단하는 동작을 나타낸 도면이다.
도 12는 본 발명의 실시예들에 따른 메모리 장치의 구조의 다른 예를 나타낸 도면이다.
도 13은 본 발명의 실시예들에 따른 메모리 장치의 동작 방법을 나타낸 도면이다.FIG. 1 is a drawing showing an example of the structure of a memory device according to embodiments of the present invention.
FIG. 2 is a flowchart illustrating an example of the operation of a memory device according to embodiments of the present invention.
FIG. 3 is a diagram illustrating an example of an operation of a memory device according to embodiments of the present invention to write a second codeword.
FIG. 4 is a flowchart illustrating an example of an operation of a memory device according to embodiments of the present invention to determine whether a memory unit is a defective memory unit.
FIG. 5 is a diagram illustrating an example of an operation of a memory device according to embodiments of the present invention to generate a second codeword.
FIG. 6 is a diagram illustrating an example of an operation of a memory device according to embodiments of the present invention in which a second codeword is overwritten at a location where K first codewords are stored.
FIG. 7 is a diagram illustrating another example of an operation of a memory device according to embodiments of the present invention to generate a second codeword.
FIG. 8 is a drawing showing another example of the structure of a memory device according to embodiments of the present invention.
FIG. 9 is a diagram illustrating an example of an operation in which a memory device according to embodiments of the present invention performs error correction on a codeword stored in a target memory area.
FIG. 10 is a diagram illustrating another example of an operation in which a memory device according to embodiments of the present invention performs error correction on a codeword stored in a target memory area.
FIG. 11 is a diagram illustrating an operation of a memory device according to embodiments of the present invention to determine the type of a codeword based on a table.
FIG. 12 is a drawing showing another example of the structure of a memory device according to embodiments of the present invention.
FIG. 13 is a diagram illustrating an operating method of a memory device according to embodiments of the present invention.
이하에서는, 본 발명의 실시예들을 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
도 1은 본 발명의 실시예들에 따른 메모리 장치(100)의 구조의 일 예를 나타낸 도면이다.FIG. 1 is a drawing showing an example of the structure of a memory device (100) according to embodiments of the present invention.
도 1을 참조하면, 메모리 장치(100)는 메모리 미디어(110) 및 컨트롤러(120)를 포함할 수 있다.Referring to FIG. 1, a memory device (100) may include memory media (110) and a controller (120).
메모리 미디어(110)는 복수의 메모리 유닛들(VMU)를 포함할 수 있다. 복수의 메모리 유닛들(VMU)은 각각 데이터를 저장할 수 있다.The memory media (110) may include a plurality of memory units (VMUs). Each of the plurality of memory units (VMUs) may store data.
컨트롤러(120)는 메모리 미디어(110)에 대해 복수의 메모리 영역들(MEM_AREA)를 설정할 수 있다. 복수의 메모리 영역들(MEM_AREA)은 각각 복수의 메모리 유닛들(VMU) 중 하나 이상을 포함할 수 있다.The controller (120) can set a plurality of memory areas (MEM_AREA) for the memory media (110). Each of the plurality of memory areas (MEM_AREA) can include one or more of a plurality of memory units (VMU).
컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA)에 코드워드(codeword)를 저장할 수 있다. 코드워드는 설정된 제1 단위 크기(e.g. 64byte)의 데이터 및 제2 단위 크기(e.g. 16byte)의 패리티를 포함할 수 있다. 코드워드에 포함된 데이터는 하나 이상의 심볼들로 구성될 수 있다.The controller (120) can store a codeword in a plurality of memory areas (MEM_AREA). The codeword can include data of a set first unit size (e.g. 64 bytes) and parity of a second unit size (e.g. 16 bytes). The data included in the codeword can be composed of one or more symbols.
코드워드의 타입에 따라 코드워드에 대한 에러 정정 능력은 달라질 수 있다. 예를 들어, 코드워드가 18개의 패리티를 포함하는 경우 해당 코드워드의 랜덤한 위치에 발생한 9개의 심볼 에러 또는 지정된 위치에 발생한 18개의 심볼 에러를 정정할 수 있다.Depending on the type of codeword, the error correction capability for the codeword may vary. For example, if the codeword includes 18 parities, 9 symbol errors occurring at random locations in the codeword or 18 symbol errors occurring at specified locations can be corrected.
본 발명의 실시예들에서, 컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA) 중 타깃 메모리 영역(TGT_MEM_AREA)에 하나 이상의 제1 코드워드들(CW1)을 저장할 수 있다. 제1 코드워드는 제1 타입(TYPE_1)을 가지는 코드워드이다.In embodiments of the present invention, the controller (120) may store one or more first codewords (CW1) in a target memory area (TGT_MEM_AREA) among a plurality of memory areas (MEM_AREA). The first codeword is a codeword having a first type (TYPE_1).
도 1에서, 하나의 제1 코드워드(CW1)는 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU)에 분산되어 저장될 수 있다. 단, 하나의 제1 코드워드(CW1)가 반드시 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU)에 분산될 필요는 없으며, 하나의 제1 코드워드(CW1)가 하나의 메모리 유닛에 저장될 수도 있다.In FIG. 1, one first codeword (CW1) may be distributed and stored in memory units (VMU) included in a target memory area (TGT_MEM_AREA). However, one first codeword (CW1) does not necessarily have to be distributed in memory units (VMU) included in the target memory area (TGT_MEM_AREA), and one first codeword (CW1) may be stored in one memory unit.
본 발명의 실시예들에서, 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 대한 에러 정정 성능을 높이기 위해서, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입을 변경할 수 있다. 이하, 도 2에서 이에 대해 상세히 설명한다.In embodiments of the present invention, the controller (120) may change the type of a codeword stored in the target memory area (TGT_MEM_AREA) in order to improve error correction performance for the target memory area (TGT_MEM_AREA). This will be described in detail below in FIG. 2.
컨트롤러(120)는 전술한 동작을 실행하기 위해서 메모리 미디어(110)와 다양한 커맨드 신호 및 데이터 신호를 교환할 수 있다.The controller (120) can exchange various command signals and data signals with the memory media (110) to execute the aforementioned operations.
한편, 전술한 메모리 미디어(110) 는 다양한 방식으로 구현될 수 있다.Meanwhile, the aforementioned memory media (110) can be implemented in various ways.
일 예로, 메모리 미디어(110)는 복수의 뱅크들을 포함하는 동적 랜덤 액세스 메모리 미디어로 구현될 수 있다. 메모리 미디어(110)는 복수의 뱅크들에 데이터를 저장하고 복수의 뱅크들에 저장된 데이터를 리드할 수 있다.For example, the memory media (110) may be implemented as a dynamic random access memory media including a plurality of banks. The memory media (110) may store data in the plurality of banks and read data stored in the plurality of banks.
메모리 미디어(110)는 저장된 데이터를 유지하기 위해서 주기적인 리프레시 동작을 실행할 수 있다. 만약, 메모리 미디어(110)에 대한 공급 전원이 차단되면 메모리 미디어(110)에 저장된 데이터는 소실된다.The memory media (110) can perform periodic refresh operations to maintain stored data. If the power supply to the memory media (110) is cut off, the data stored in the memory media (110) is lost.
복수의 뱅크들은 각각 복수의 매트릭스를 포함할 수 있다. 이때, 메모리 유닛들(VMU) 각각은 하나의 뱅크, 복수의 매트릭스들 또는 하나의 매트릭스 등으로 구성될 수 있다.Each of the multiple banks may include multiple matrices. In this case, each of the memory units (VMUs) may be composed of one bank, multiple matrices, or one matrix.
다른 예로, 메모리 미디어(110)는 복수의 칩들을 포함하는 동적 랜덤 액세스 메모리 미디어로 구현될 수 있다. 메모리 미디어(110)의 포함된 복수의 칩들은 각각 복수의 뱅크들을 포함하고, 복수의 뱅크들 각각은 복수의 매트릭스를 포함할 수 있다. 이때, 메모리 유닛들(VMU) 각각은 하나의 칩, 하나의 뱅크, 복수의 매트릭스들 또는 하나의 매트릭스 등으로 구성될 수 있다.As another example, the memory media (110) may be implemented as a dynamic random access memory media including a plurality of chips. Each of the plurality of chips included in the memory media (110) may include a plurality of banks, and each of the plurality of banks may include a plurality of matrices. In this case, each of the memory units (VMUs) may be configured as one chip, one bank, a plurality of matrices, or one matrix.
또 다른 예로, 메모리 미디어(110)는 비휘발성 메모리 미디어(e.g. NAND flash)로 구현될 수도 있다. 이때, 메모리 유닛들(VMU) 각각은 메모리 미디어(110)에 포함된 다이(die), 플래인(plane) 또는 메모리 블록으로 구성될 수 있다.As another example, the memory media (110) may be implemented as non-volatile memory media (e.g. NAND flash). In this case, each of the memory units (VMUs) may be composed of a die, a plane, or a memory block included in the memory media (110).
한편, 컨트롤러(120) 역시 다양한 방식으로 구현될 수 있다.Meanwhile, the controller (120) can also be implemented in various ways.
일 예로, 컨트롤러(120)는 전술한 동작을 실행하기 위한 논리 게이트들을 포함하는 집적회로로 구현될 수 있다. 컨트롤러(120)는 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등으로 구현될 수 있다.For example, the controller (120) may be implemented as an integrated circuit including logic gates for executing the above-described operations. The controller (120) may be implemented as an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or the like.
다른 예로, 컨트롤러(120)는 복수의 동작 요청들을 처리하는 동작을 제어하는 연산을 수행하는 프로세서 및 복수의 동작 요청들을 처리하기 위해 필요한 데이터를 저장할 수 있는 워킹 메모리를 포함할 수도 있다.As another example, the controller (120) may include a processor that performs operations to control operations that process a plurality of operation requests and a working memory that can store data necessary to process the plurality of operation requests.
이 경우, 프로세서는 펌웨어를 실행하여 컨트롤러(120)의 동작을 제어할 수 있다. 프로세서는 컨트롤러(120)의 제반 동작을 제어하고 논리 연산을 수행하기 위해서 펌웨어를 구동할 수 있다. 펌웨어는 컨트롤러(120)를 구동하기 위해서 컨트롤러(120) 내에서 실행되는 프로그램으로서, 전술한 제반 동작 및 논리 연산을 실행하기 위한 코드가 정의된 바이너리 데이터를 포함할 수 있다In this case, the processor can control the operation of the controller (120) by executing the firmware. The processor can drive the firmware to control the overall operation of the controller (120) and perform logical operations. The firmware is a program that is executed within the controller (120) to drive the controller (120), and can include binary data in which the code for executing the aforementioned overall operation and logical operations is defined.
펌웨어는 컨트롤러(120) 내부 또는 외부에 위치하는 저장 공간(e.g. 워킹 메모리, ROM, 플래시)에 저장될 수 있다. 프로세서는 저장 공간에 저장된 펌웨어의 전체 또는 일부를 로드할 수 있다.The firmware may be stored in a storage space (e.g. working memory, ROM, flash) located inside or outside the controller (120). The processor may load all or part of the firmware stored in the storage space.
워킹 메모리는 컨트롤러(120)가 복수의 동작 요청들을 처리하기 위해 필요한 데이터(e.g. 복수의 동작 요청들, 펌웨어)를 저장할 수 있다. 일 예로, 워킹 메모리는 별도의 휘발성 메모리(e.g. SRAM)를 포함할 수 있다.The working memory may store data (e.g., multiple operation requests, firmware) required for the controller (120) to process multiple operation requests. As an example, the working memory may include a separate volatile memory (e.g., SRAM).
도 2는 본 발명의 실시예들에 따른 메모리 장치(100)의 동작의 일 예를 나타내는 순서도이다.FIG. 2 is a flowchart showing an example of the operation of a memory device (100) according to embodiments of the present invention.
도 2를 참조하면, 메모리 장치(100)의 컨트롤러(120)는 전술한 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중 불량 메모리 유닛을 탐색할 수 있다(S210).Referring to FIG. 2, the controller (120) of the memory device (100) can search for a defective memory unit among the memory units (VMU) included in the aforementioned target memory area (TGT_MEM_AREA) (S210).
불량 메모리 유닛은 물리적 불량 등의 요인으로 인해서 저장된 코드워드에 에러가 발생할 수 있다고 예측된 메모리 유닛으로 정의될 수 있다. 컨트롤러(120)는 메모리 유닛들(VMU)을 불량 메모리 유닛과 정상 메모리 유닛으로 구분할 수 있다.A defective memory unit may be defined as a memory unit in which an error may occur in a stored codeword due to factors such as a physical defect. The controller (120) may distinguish memory units (VMUs) into defective memory units and normal memory units.
그리고 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중에 불량 메모리 유닛이 탐색되었는지 여부를 판단할 수 있다(S220). 이를 위해, 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들 각각에 대해 불량 메모리 유닛인지 여부를 판단할 수 있다. 이하, 도 4에서 이에 대해 자세히 설명한다.And the controller (120) can determine whether a defective memory unit has been detected among the memory units (VMU) included in the target memory area (TGT_MEM_AREA) (S220). To this end, the controller (120) can determine whether each of the memory units included in the target memory area (TGT_MEM_AREA) is a defective memory unit. This will be described in detail in FIG. 4 below.
타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중에 불량 메모리 유닛이 존재한다고 판단될 때(S220-Y), 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들 중 하나 이상을 하나의 제2 코드워드로 변환하고(S230), 변환된 제2 코드워드를 메모리 미디어(110)에 라이트할 수 있다(S240). 이하, 도 3에서 이에 대해 자세히 설명한다.When it is determined that a defective memory unit exists among the memory units (VMU) included in the target memory area (TGT_MEM_AREA) (S220-Y), the controller (120) may convert one or more of the first codewords stored in the target memory area (TGT_MEM_AREA) into one second codeword (S230) and write the converted second codeword to the memory media (110) (S240). This will be described in detail below with reference to FIG. 3.
이때, 제2 코드워드는 제2 타입을 가질 수 있다. 즉, 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입을 제1 타입에서 제2 타입으로 변환할 수 있다.At this time, the second codeword may have a second type. That is, the controller (120) may convert the type of the codeword stored in the target memory area (TGT_MEM_AREA) from the first type to the second type.
이 경우, 복수의 메모리 영역들(MEM_AREA) 중 타깃 메모리 영역(TGT_MEM_AREA)에는 제2 타입의 제2 코드워드가 저장되고, 타깃 메모리 영역(TGT_MEM_AREA)을 제외한 나머지 메모리 영역들에는 제1 타입의 제1 코드워드가 저장될 수 있다.In this case, a second codeword of the second type may be stored in a target memory area (TGT_MEM_AREA) among a plurality of memory areas (MEM_AREA), and a first codeword of the first type may be stored in the remaining memory areas excluding the target memory area (TGT_MEM_AREA).
반면, 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중에 불량 메모리 유닛이 존재하지 않는다고 판단될 때(S220-N), 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들을 변환하지 않고 그대로 유지할 수 있다(S250).On the other hand, when it is determined that there is no defective memory unit among the memory units (VMU) included in the target memory area (TGT_MEM_AREA) (S220-N), the controller (120) can maintain the first codewords stored in the target memory area (TGT_MEM_AREA) as is without converting them (S250).
도 3은 본 발명의 실시예들에 따른 메모리 장치(100)가 제2 코드워드(CW2)를 라이트하는 동작의 일 예를 나타낸 도면이다.FIG. 3 is a diagram showing an example of an operation of a memory device (100) according to embodiments of the present invention to write a second codeword (CW2).
도 3을 참조하면, 메모리 장치(100)의 컨트롤러(120)는 제2 타입(TYPE_2)을 가지는 제2 코드워드(CW2)를 타깃 메모리 영역(TGT_MEM_AREA)에 라이트할 수 있다.Referring to FIG. 3, the controller (120) of the memory device (100) can write a second codeword (CW2) having a second type (TYPE_2) to a target memory area (TGT_MEM_AREA).
이때, 제2 코드워드(CW2)는 전술한 제1 코드워드(CW1)와 마찬가지로 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU)에 분산되어 저장될 수 있다.At this time, the second codeword (CW2) can be distributed and stored in memory units (VMU) included in the target memory area (TGT_MEM_AREA) similar to the first codeword (CW1) described above.
도 3에서 제2 코드워드(CW2)가 복수의 메모리 영역들(MEM_AREA) 중 타깃 메모리 영역(TGT_MEM_AREA)에 저장되는 것을 예로 들어 설명하였으나, 메모리 미디어(110)에서 제2 코드워드(CW2)가 저장되는 위치가 반드시 타깃 메모리 영역(TGT_MEM_AREA)으로 한정되지는 않는다. In FIG. 3, the second codeword (CW2) is stored in the target memory area (TGT_MEM_AREA) among the multiple memory areas (MEM_AREA) as an example, but the location in the memory media (110) where the second codeword (CW2) is stored is not necessarily limited to the target memory area (TGT_MEM_AREA).
일 예로, 컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA) 중 타깃 메모리 영역(TGT_MEM_AREA)이 아닌 다른 메모리 영역에 제2 코드워드(CW2)를 저장할 수도 있다.For example, the controller (120) may store the second codeword (CW2) in a memory area other than the target memory area (TGT_MEM_AREA) among the multiple memory areas (MEM_AREA).
도 4는 본 발명의 실시예들에 따른 메모리 장치(100)가 메모리 유닛이 불량 메모리 유닛인지 여부를 판단하는 동작의 일 예를 나타낸 순서도이다.FIG. 4 is a flowchart illustrating an example of an operation of a memory device (100) according to embodiments of the present invention to determine whether a memory unit is a defective memory unit.
도 4를 참조하면, 메모리 장치(100)의 컨트롤러(120)는 해당 메모리 유닛의 로우 어드레스 페일 카운트 및 컬럼 어드레스 페일 카운트를 계산할 수 있다(S410). Referring to FIG. 4, the controller (120) of the memory device (100) can calculate the row address fail count and the column address fail count of the corresponding memory unit (S410).
로우 어드레스 페일 카운트는 해당 메모리 유닛에서 페일이 발생한 로우의 개수로 결정될 수 있고, 컬럼 어드레스 페일 카운트는 해당 메모리 유닛에서 페일이 발생한 컬럼의 개수로 결정될 수 있다. 컨트롤러(120)는 해당 메모리 유닛에 대한 누적 에러 정보를 기초로 로우 어드레스 페일 카운트 및 컬럼 어드레스 페일 카운트를 계산할 수 있다.The row address fail count may be determined by the number of rows in which a fail occurred in the corresponding memory unit, and the column address fail count may be determined by the number of columns in which a fail occurred in the corresponding memory unit. The controller (120) may calculate the row address fail count and the column address fail count based on accumulated error information for the corresponding memory unit.
그리고 컨트롤러(120)는 메모리 유닛의 로우 어드레스 페일 카운트가 제1 임계값 이상인지 판단한다(S420).And the controller (120) determines whether the row address fail count of the memory unit is greater than or equal to the first threshold value (S420).
로우 어드레스 페일 카운트가 제1 임계값 이상일 때(S420-Y), 컨트롤러(120)는 메모리 유닛의 컬럼 어드레스 페일 카운트가 제2 임계값 이상인지 판단한다(S430).When the row address fail count is greater than or equal to the first threshold value (S420-Y), the controller (120) determines whether the column address fail count of the memory unit is greater than or equal to the second threshold value (S430).
컬럼 어드레스 페일 카운트가 제2 임계값 이상일 때(S430-Y), 컨트롤러(120)는 해당 메모리 유닛을 불량 메모리 유닛으로 판단할 수 있다(S440).When the column address fail count is greater than or equal to the second threshold value (S430-Y), the controller (120) can determine the corresponding memory unit as a defective memory unit (S440).
반면, 메모리 유닛의 로우 어드레스 페일 카운트가 제1 임계값 미만이거나(S420-N), 컬럼 어드레스 페일 카운트가 제2 임계값 미만일 때(S430-N), 컨트롤러(120)는 해당 메모리 유닛을 불량이 발생하지 않은 정상 메모리 유닛으로 판단할 수 있다(S450).On the other hand, when the row address fail count of the memory unit is less than the first threshold value (S420-N) or the column address fail count is less than the second threshold value (S430-N), the controller (120) can determine the memory unit as a normal memory unit in which no defect has occurred (S450).
이하, 메모리 장치(100)가 하나 이상의 제1 코드워드들(CW1)을 하나의 제2 코드워드(CW2)로 변환하는 구체적인 방법에 대해 설명한다.Below, a specific method in which the memory device (100) converts one or more first codewords (CW1) into one second codeword (CW2) is described.
도 5는 본 발명의 실시예들에 따른 메모리 장치(100)가 제2 코드워드(CW2)를 생성하는 동작의 일 예를 나타낸 도면이다.FIG. 5 is a diagram illustrating an example of an operation in which a memory device (100) according to embodiments of the present invention generates a second codeword (CW2).
도 5를 참조하면, 메모리 장치(100)의 컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들(CW1) 중 K개(K는 2 이상의 자연수)를 병합(merge)하여 하나의 제2 코드워드(CW2)로 변환할 수 있다. 이때, 제2 코드워드(CW2)의 크기는 제1 코드워드의 크기의 K배일 수 있다.Referring to FIG. 5, the controller (120) of the memory device (100) can merge K (K is a natural number greater than or equal to 2) of the first codewords (CW1) stored in the target memory area (TGT_MEM_AREA) and convert them into one second codeword (CW2). At this time, the size of the second codeword (CW2) can be K times the size of the first codeword.
일 예로, 제1 코드워드가 64바이트의 데이터 및 16비트의 패리티로 구성될 때, 컨트롤러(120)는 2개의 제1 코드워드들을 병합하여 128바이트의 데이터 및 32비트의 패리티로 구성되는 하나의 제2 코드워드를 생성할 수 있다.For example, when the first codeword is composed of 64 bytes of data and 16 bits of parity, the controller (120) can merge two first codewords to generate one second codeword composed of 128 bytes of data and 32 bits of parity.
K개의 제1 코드워드들을 하나의 제2 코드워드(CW2)로 병합할 때, 컨트롤러(120)는 K개의 제1 코드워드들을 타깃 메모리 영역(TGT_MEM_AREA)으로부터 리드하고 K개의 제1 코드워드들에 저장된 데이터를 기초로 하나의 병합 데이터를 생성하고 병합 데이터에 대한 패리티를 재구성할 수 있다. 그리고, 컨트롤러(120)는 병합 데이터와 병합 데이터에 대한 패리티를 기초로 제2 코드워드(CW2)를 생성하고 생성된 제2 코드워드(CW2)를 메모리 미디어(110)에 라이트할 수 있다.When merging K first codewords into one second codeword (CW2), the controller (120) can read the K first codewords from the target memory area (TGT_MEM_AREA), generate one merged data based on the data stored in the K first codewords, and reconstruct parity for the merged data. Then, the controller (120) can generate a second codeword (CW2) based on the merged data and the parity for the merged data, and write the generated second codeword (CW2) to the memory media (110).
제2 코드워드(CW2)는 제1 코드워드(CW1)보다 패리티의 크기가 크므로 에러 정정 능력이 높다. 따라서, 제2 코드워드(CW2)의 일부분이 불량 메모리 유닛에 저장되어도 컨트롤러(120)는 에러 검출 및 정정 회로를 통해 제2 코드워드(CW2)에 발생한 에러를 보다 높은 확률로 정정할 수 있다. 이를 통해, 불량 메모리 유닛을 포함하여 불량 발생 가능성이 높은 타깃 메모리 영역(TGT_MEM_AREA)에 대한 에러 정정 능력이 향상될 수 있다.The second codeword (CW2) has a larger parity size than the first codeword (CW1), so it has a higher error correction capability. Accordingly, even if a part of the second codeword (CW2) is stored in a defective memory unit, the controller (120) can correct an error that occurred in the second codeword (CW2) with a higher probability through an error detection and correction circuit. Through this, the error correction capability for a target memory area (TGT_MEM_AREA) with a high possibility of defect occurrence, including a defective memory unit, can be improved.
이하, 변환된 제2 코드워드(CW2)가 라이트되는 위치에 대해 설명한다.Below, the location where the converted second codeword (CW2) is written is described.
도 6은 본 발명의 실시예들에 따른 메모리 장치(100)가 제2 코드워드(CW1)를 K개의 제1 코드워드들(CW1)이 저장된 위치에 오버라이트하는 동작의 일 예를 나타낸 도면이다.FIG. 6 is a diagram illustrating an example of an operation of a memory device (100) according to embodiments of the present invention in which a second codeword (CW1) is overwritten at a location where K first codewords (CW1) are stored.
도 6을 참조하면, 컨트롤러(120)는 제2 코드워드(CW2)를 타깃 메모리 영역(TGT_MEM_AREA)에서 병합된 K개의 제1 코드워드들(CW1)이 저장된 위치에 오버라이트할 수 있다.Referring to FIG. 6, the controller (120) can overwrite the second codeword (CW2) in the location where the merged K first codewords (CW1) are stored in the target memory area (TGT_MEM_AREA).
도 6에서, K개의 제1 코드워드들(CW1)은 타깃 메모리 영역(TGT_MEM_AREA)에서 오프셋 A와 오프셋 B 사이의 영역에 분산되어 저장되어 있다.In Fig. 6, the K first codewords (CW1) are distributed and stored in the area between offset A and offset B in the target memory area (TGT_MEM_AREA).
이때, 컨트롤러(120)는 K개의 제1 코드워드들(CW1)을 합병하여 생성한 제2 코드워드(CW2)를 K개의 제1 코드워드들(CW1)이 저장된 위치인 오프셋 A와 오프셋 B 사이에 오버라이트할 수 있다.At this time, the controller (120) can overwrite the second codeword (CW2) generated by merging the K first codewords (CW1) between offset A and offset B, which are the locations where the K first codewords (CW1) are stored.
도 7은 본 발명의 실시예들에 따른 메모리 장치(100)가 제2 코드워드(CW1)를 생성하는 동작의 다른 예를 나타낸 도면이다.FIG. 7 is a diagram showing another example of an operation in which a memory device (100) generates a second codeword (CW1) according to embodiments of the present invention.
도 7을 참조하면, 메모리 장치(100)의 컨트롤러(120)는, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들(CW1) 중 하나 이상에 대하여, 심볼 당 크기를 감소시켜 전체 심볼 개수를 증가시키는 동작, CRC(cyclic redundancy check)를 제거하는 동작 및 패리티의 크기를 증가시키는 동작 중 적어도 하나를 수행하여 제2 코드워드(CW2)로 변환할 수 있다.Referring to FIG. 7, the controller (120) of the memory device (100) may perform at least one of an operation of reducing the size per symbol to increase the total number of symbols, an operation of removing a cyclic redundancy check (CRC), and an operation of increasing the size of parity for one or more of the first codewords (CW1) stored in the target memory area (TGT_MEM_AREA), thereby converting them into a second codeword (CW2).
도 8은 본 발명의 실시예들에 따른 메모리 장치(100)의 구조의 다른 예를 나타낸 도면이다.FIG. 8 is a drawing showing another example of the structure of a memory device (100) according to embodiments of the present invention.
도 8을 참조하면, 메모리 장치(100)의 컨트롤러(120)는 제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)를 추가로 포함할 수 있다.Referring to FIG. 8, the controller (120) of the memory device (100) may additionally include a first error detection and correction circuit (ECC_1) and a second error detection and correction circuit (ECC_2).
제1 에러 검출 및 정정 회로(ECC_1)는 전술한 제1 타입(TYPE_1)의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 회로이다.The first error detection and correction circuit (ECC_1) is a circuit that detects the error bit location for the codeword of the first type (TYPE_1) described above and performs error correction.
제2 에러 검출 및 정정 회로(ECC_2)는 전술한 제2 타입(TYPE_2)의 에러 비트 위치를 검출하고 에러 정정을 수행하는 회로이다.The second error detection and correction circuit (ECC_2) is a circuit that detects the error bit location of the second type (TYPE_2) described above and performs error correction.
제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)는 에러 정정 코드로 입력된 코드워드에 대한 데이터를 디코딩하도록 구현될 수 있으며, 다양한 코드 디코더로 구현될 수 있다. 예를 들어, 비체계적 코드 디코딩을 수행하는 디코더 또는 체계적 코드 디코딩을 수행하는 디코더가 이용될 수 있다.The first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) can be implemented to decode data for a codeword input as an error correction code, and can be implemented as various code decoders. For example, a decoder that performs non-systematic code decoding or a decoder that performs systematic code decoding can be used.
제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)는 데이터에 대한 비트 에러율(Bit Error Rate, BER)을 산출하고, 입력된 데이터에 대한 에러 정정 가능 여부를 판단할 수 있다. The first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) can calculate a bit error rate (BER) for data and determine whether errors in the input data can be corrected.
제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)는 예를 들어, 비트 에러율(BER)이 설정된 기준값(reference value)보다 높은 경우 해당 데이터를 정정 불가능(Uncorrectable or Fail)으로 판단할 수 있다. 반면에, 비트 에러율(BER)이 기준값보다 낮은 경우 해당 데이터를 정정 가능(Correctable or Pass)으로 판단할 수 있다.The first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) can determine the corresponding data as uncorrectable (or Fail) if, for example, the bit error rate (BER) is higher than a set reference value. On the other hand, the data can be determined as correctable (or Pass) if the bit error rate (BER) is lower than the reference value.
제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)는 에러를 정정 가능한 경우 에러 정정된 데이터를 출력할 수 있다.The first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) can output error-corrected data if the error is correctable.
본 발명의 실시예들에서, 제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)의 에러 정정 능력은 서로 상이할 수 있다. 즉, 제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)는 최대 에러 허용 비트 수가 서로 상이할 수 있다.In embodiments of the present invention, the error correction capabilities of the first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) may be different from each other. That is, the first error detection and correction circuit (ECC_1) and the second error detection and correction circuit (ECC_2) may have different maximum error tolerant bit numbers.
본 발명의 실시예들에서, 컨트롤러(120)는 코드워드의 타입에 따라 해당 코드워드의 에러 정정에 사용되는 에러 검출 및 정정 회로를 다르게 결정할 수 있다. 이하 도 9 내지 도 10에서 이에 대해 자세히 설명한다.In embodiments of the present invention, the controller (120) may determine an error detection and correction circuit used for error correction of a codeword differently depending on the type of the codeword. This will be described in detail in FIGS. 9 and 10 below.
도 9는 본 발명의 실시예들에 따른 메모리 장치(100)가 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드에 대한 에러 정정을 수행하는 동작의 일 예를 나타낸 도면이다.FIG. 9 is a diagram illustrating an example of an operation in which a memory device (100) according to embodiments of the present invention performs error correction on a codeword stored in a target memory area (TGT_MEM_AREA).
도 9를 참조하면, 메모리 장치(100)의 컨트롤러(120)는, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입이 제1 타입(TYPE_1)일 때, 코드워드에 대한 에러 정정을 제1 에러 검출 및 정정 회로(ECC_1)를 통해 수행할 수 있다.Referring to FIG. 9, the controller (120) of the memory device (100) can perform error correction for the codeword through the first error detection and correction circuit (ECC_1) when the type of the codeword stored in the target memory area (TGT_MEM_AREA) is the first type (TYPE_1).
도 10은 본 발명의 실시예들에 따른 메모리 장치(100)가 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드에 대한 에러 정정을 수행하는 동작의 다른 예를 나타낸 도면이다.FIG. 10 is a diagram illustrating another example of an operation in which a memory device (100) according to embodiments of the present invention performs error correction on a codeword stored in a target memory area (TGT_MEM_AREA).
도 10을 참조하면, 메모리 장치(100)의 컨트롤러(120)는, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입이 제2 타입(TYPE_2)일 때, 코드워드에 대한 에러 정정을 제2 에러 검출 및 정정 회로(ECC_2)를 통해 수행할 수 있다.Referring to FIG. 10, the controller (120) of the memory device (100) can perform error correction for the codeword through the second error detection and correction circuit (ECC_2) when the type of the codeword stored in the target memory area (TGT_MEM_AREA) is the second type (TYPE_2).
도 11은 본 발명의 실시예들에 따른 메모리 장치(100)가 테이블을 기초로 코드워드의 타입을 판단하는 동작을 나타낸 도면이다.FIG. 11 is a diagram illustrating an operation of a memory device (100) according to embodiments of the present invention to determine the type of a codeword based on a table.
도 11을 참조하면, 메모리 장치(100)의 컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA) 각각에 매핑되는 코드워드의 타입을 지시하는 매핑 정보를 저장하는 스토리지 유닛(SU)을 추가로 포함할 수 있다.Referring to FIG. 11, the controller (120) of the memory device (100) may additionally include a storage unit (SU) that stores mapping information indicating the type of a codeword mapped to each of a plurality of memory areas (MEM_AREA).
일 예로, 스토리지 유닛(SU)은 별도의 레지스터, 휘발성 메모리(e.g. SRAM), 비휘발성 메모리(e.g. NAND Flash, NOR Flash, PRAM, MRAM) 등으로 구현될 수 있다.For example, a storage unit (SU) may be implemented as a separate register, volatile memory (e.g. SRAM), non-volatile memory (e.g. NAND Flash, NOR Flash, PRAM, MRAM), etc.
매핑 정보는 테이블, 리스트, 배열, 해시 등 다양한 자료 구조를 통해 구현될 수 있다. 매핑 정보는 특정 메모리 영역을 식별하기 위한 식별자(e.g. 주소, 인덱스)와 해당 식별자에 매핑되는 코드워드의 타입을 지시할 수 있다.Mapping information can be implemented through various data structures such as tables, lists, arrays, and hashes. Mapping information can indicate an identifier (e.g. address, index) for identifying a specific memory area and the type of codeword mapped to the identifier.
컨트롤러(120)는 타깃 메모리 영역(TGT_MEM_AREA)에 대응하는 식별자(ID)를 수신할 때, 매핑 정보에서 식별자에 매핑되는 코드워드의 타입을 탐색할 수 있다.When the controller (120) receives an identifier (ID) corresponding to a target memory area (TGT_MEM_AREA), it can search for the type of codeword mapped to the identifier in the mapping information.
그리고 컨트롤러(120)는 탐색된 코드워드의 타입을 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입으로 결정할 수 있다.And the controller (120) can determine the type of the searched codeword as the type of the codeword stored in the target memory area (TGT_MEM_AREA).
이상에서, 메모리 장치(100)가 복수의 메모리 영역들(MEM_AREA) 중 특정 메모리 영역에 저장되는 코드워드의 타입을 변경하는 동작에 대해 설명하였다.Above, the operation of changing the type of a codeword stored in a specific memory area among a plurality of memory areas (MEM_AREA) by the memory device (100) has been described.
이와 같이 특정 메모리 영역에 저장되는 코드워드의 타입이 변경되면, 메모리 장치(100)는 2개의 서로 다른 타입을 가지는 코드워드를 저장할 수 있다. 이하, 도 12에서 이에 대해 자세히 설명한다.When the type of a codeword stored in a specific memory area is changed in this way, the memory device (100) can store codewords having two different types. This will be described in detail below in FIG. 12.
도 12는 본 발명의 실시예들에 따른 메모리 장치(100)의 구조의 다른 예를 나타낸 도면이다.FIG. 12 is a drawing showing another example of the structure of a memory device (100) according to embodiments of the present invention.
도 12를 참조하면, 도 1과 마찬가지로 메모리 장치(100)의 메모리 미디어(110)는 복수의 메모리 유닛들(VMU)을 포함할 수 있다.Referring to FIG. 12, similarly to FIG. 1, the memory media (110) of the memory device (100) may include a plurality of memory units (VMUs).
그리고 메모리 장치(100)의 컨트롤러(120)는 도 8과 마찬가지로 제1 에러 검출 및 정정 회로(ECC_1) 및 제2 에러 검출 및 정정 회로(ECC_2)를 포함할 수 있다.And the controller (120) of the memory device (100) may include a first error detection and correction circuit (ECC_1) and a second error detection and correction circuit (ECC_2) as in FIG. 8.
그리고 컨트롤러(120)는 도 1과 마찬가지로 복수의 메모리 영역들(MEM_AREA)을 설정할 수 있다.And the controller (120) can set multiple memory areas (MEM_AREA) as in Fig. 1.
컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA) 중 제1 메모리 영역(MEM_AREA_1)에 제1 타입(TYPE_1)을 가지는 하나 이상의 제1 코드워드들(CW1)을 저장할 수 있다.The controller (120) can store one or more first codewords (CW1) having a first type (TYPE_1) in a first memory area (MEM_AREA_1) among a plurality of memory areas (MEM_AREA).
그리고 컨트롤러(120)는 복수의 메모리 영역들(MEM_AREA) 중 제2 메모리 영역(MEM_AREA_2)에 제2 타입(TYPE_2)을 가지는 하나 이상의 제2 코드워드들(CW2)을 저장할 수 있다. 이때, 컨트롤러(120)는 제2 메모리 영역(MEM_AREA_2)에 포함된 메모리 유닛들 중 하나 이상을 불량 메모리 유닛이라고 결정할 수 있다.And the controller (120) can store one or more second codewords (CW2) having a second type (TYPE_2) in a second memory area (MEM_AREA_2) among a plurality of memory areas (MEM_AREA). At this time, the controller (120) can determine one or more of the memory units included in the second memory area (MEM_AREA_2) to be a defective memory unit.
도 13은 본 발명의 실시예들에 따른 메모리 장치(100)의 동작 방법을 나타낸 도면이다.FIG. 13 is a drawing showing an operating method of a memory device (100) according to embodiments of the present invention.
도 13을 참조하면, 메모리 장치(100)의 동작 방법은, 복수의 메모리 영역들(MEM_AREA)을 설정하는 단계(S1310)를 포함할 수 있다. 복수의 메모리 영역들(MEM_AREA) 각각은 메모리 미디어(110)에 포함된 복수의 메모리 유닛들(VMU) 중 하나 이상을 포함할 수 있다.Referring to FIG. 13, the operating method of the memory device (100) may include a step (S1310) of setting a plurality of memory areas (MEM_AREA). Each of the plurality of memory areas (MEM_AREA) may include one or more of a plurality of memory units (VMU) included in the memory media (110).
그리고 메모리 장치(100)의 동작 방법은, 제1 타입(TYPE_1)을 가지는 하나 이상의 제1 코드워드들(CW1)을 복수의 메모리 영역들(MEM_AREA) 중 타깃 메모리 영역(TGT_MEM_AREA)에 저장하는 단계(S1320)를 포함할 수 있다.And the operating method of the memory device (100) may include a step (S1320) of storing one or more first codewords (CW1) having a first type (TYPE_1) in a target memory area (TGT_MEM_AREA) among a plurality of memory areas (MEM_AREA).
그리고 메모리 장치(100)의 동작 방법은, 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중 불량 메모리 유닛을 탐색하는 단계(S1330)를 포함할 수 있다.And the operating method of the memory device (100) may include a step (S1330) of searching for a defective memory unit among the memory units (VMU) included in the target memory area (TGT_MEM_AREA).
일 예로, S1330 단계는, 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중에서 로우 어드레스 페일 카운트가 제1 임계값 이상이고 컬럼 어드레스 페일 카운트 제2 임계값 이상인 메모리 유닛을 불량 메모리 유닛으로 판단할 수 있다.For example, step S1330 may determine a memory unit (VMU) included in a target memory area (TGT_MEM_AREA) in which a row address fail count is greater than or equal to a first threshold value and a column address fail count is greater than or equal to a second threshold value as a defective memory unit.
그리고 메모리 장치(100)의 동작 방법은, 타깃 메모리 영역(TGT_MEM_AREA)에 포함된 메모리 유닛들(VMU) 중 불량 메모리 유닛이 탐색될 때, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들(CW1) 중 하나 이상을 제2 타입(TYPE_2)을 가지는 하나의 제2 코드워드(CW2)로 변환하고 변환된 제2 코드워드(CW2)를 메모리 미디어(110)에 라이트하는 단계(S1340)를 포함할 수 있다.And the operating method of the memory device (100) may include a step (S1340) of converting at least one of the first codewords (CW1) stored in the target memory area (TGT_MEM_AREA) into one second codeword (CW2) having a second type (TYPE_2) and writing the converted second codeword (CW2) to the memory media (110) when a defective memory unit is searched for among the memory units (VMU) included in the target memory area (TGT_MEM_AREA).
일 예로, S1340 단계는, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들(CW1) 중 K개(K는 2 이상의 자연수)를 병합하여 하나의 제2 코드워드(CW2)로 변환할 수 있다. 이때, 제2 코드워드(CW2)의 크기는 제1 코드워드의 크기의 K배일 수 있다. S1340 단계는, 변환된 제2 코드워드(CW2)를 타깃 메모리 영역(TGT_MEM_AREA)에서 K개의 제1 코드워드들(CW1)이 저장된 위치에 오버라이트할 수 있다.For example, step S1340 may convert K (K is a natural number greater than or equal to 2) of the first codewords (CW1) stored in the target memory area (TGT_MEM_AREA) into one second codeword (CW2). At this time, the size of the second codeword (CW2) may be K times the size of the first codeword. Step S1340 may overwrite the converted second codeword (CW2) in the location where the K first codewords (CW1) are stored in the target memory area (TGT_MEM_AREA).
다른 예로, S1340 단계는, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 제1 코드워드들(CW1) 중 하나 이상에 대해, 심볼 당 크기를 감소시켜 전체 심볼 개수를 증가시키는 동작, CRC를 제거하는 동작 및 패리티의 크기를 증가시키는 동작 중 적어도 하나를 수행하여 제2 코드워드(CW2)로 변환할 수 있다.As another example, step S1340 may perform at least one of an operation of increasing the total number of symbols by reducing the size per symbol, an operation of removing a CRC, and an operation of increasing the size of a parity for one or more of the first codewords (CW1) stored in the target memory area (TGT_MEM_AREA) to convert them into a second codeword (CW2).
한편, 메모리 장치(100)의 동작 방법은, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입을 결정하는 단계 및 결정된 코드워드의 타입이 제1 타입(TYPE_1)일 때 제1 에러 검출 및 정정 회로(ECC_1)를 통해 코드워드에 대한 에러 정정을 수행하고, 결정된 코드워드의 타입이 제2 타입(TYPE_2)일 때 제2 에러 검출 및 정정 회로(ECC_2)를 통해 코드워드에 대한 에러 정정을 수행하는 단계를 추가로 포함할 수 있다.Meanwhile, the operating method of the memory device (100) may additionally include a step of determining the type of a codeword stored in a target memory area (TGT_MEM_AREA), and a step of performing error correction on the codeword through a first error detection and correction circuit (ECC_1) when the type of the determined codeword is a first type (TYPE_1), and a step of performing error correction on the codeword through a second error detection and correction circuit (ECC_2) when the type of the determined codeword is a second type (TYPE_2).
이때, 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입을 결정하는 단계는, 타깃 메모리 영역에 대응하는 식별자를 수신하는 단계, 복수의 메모리 영역들(MEM_AREA) 각각에 매핑되는 코드워드의 타입을 지시하는 매핑 정보에서 식별자에 매핑되는 코드워드의 타입을 탐색하는 단계 및 탐색된 코드워드의 타입을 타깃 메모리 영역(TGT_MEM_AREA)에 저장된 코드워드의 타입으로 결정하는 단계를 포함할 수 있다.At this time, the step of determining the type of the codeword stored in the target memory area (TGT_MEM_AREA) may include the steps of receiving an identifier corresponding to the target memory area, searching for the type of the codeword mapped to the identifier in mapping information indicating the type of the codeword mapped to each of the plurality of memory areas (MEM_AREA), and determining the type of the searched codeword as the type of the codeword stored in the target memory area (TGT_MEM_AREA).
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 또한, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이므로 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an illustrative description of the technical idea of the present invention, and those skilled in the art will appreciate that various modifications and variations may be made without departing from the essential characteristics of the present invention. In addition, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to explain it, and therefore the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within a scope equivalent thereto should be interpreted as being included in the scope of the rights of the present invention.
Claims (17)
각각 상기 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하고,
상기 복수의 메모리 영역들에 코드워드를 저장하는 컨트롤러;를 포함하고,
상기 컨트롤러는,
제1 타입을 가지는 하나 이상의 제1 코드워드들을 상기 복수의 메모리 영역들 중 타깃 메모리 영역에 저장하고,
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛을 탐색하고,
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛이 탐색될 때 상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상을 제2 타입을 가지는 하나의 제2 코드워드로 변환하고 상기 변환된 제2 코드워드를 상기 메모리 미디어에 라이트하는 메모리 장치.
A memory medium comprising a plurality of memory units; and
Setting up a plurality of memory areas, each of which includes at least one of the plurality of memory units,
A controller for storing codewords in the plurality of memory areas;
The above controller,
Store one or more first codewords having a first type in a target memory area among the plurality of memory areas,
Search for a defective memory unit among the memory units included in the above target memory area,
A memory device that converts one or more of the first codewords stored in the target memory area into one second codeword having a second type when a defective memory unit is detected among the memory units included in the target memory area, and writes the converted second codeword to the memory media.
상기 컨트롤러는,
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중에서 로우 어드레스 페일 카운트가 제1 임계값 이상이고 컬럼 어드레스 페일 카운트가 제2 임계값 이상인 메모리 유닛을 불량 메모리 유닛으로 판단하는 메모리 장치.
In the first paragraph,
The above controller,
A memory device that determines a memory unit among the memory units included in the target memory area, in which a row address fail count is greater than or equal to a first threshold value and a column address fail count is greater than or equal to a second threshold value, as a defective memory unit.
상기 컨트롤러는,
상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 K개를 병합하여 하나의 제2 코드워드로 변환하고,
상기 K는 2 이상의 자연수인 메모리 장치.
In the first paragraph,
The above controller,
Among the first codewords stored in the above target memory area, K are merged and converted into one second codeword,
A memory device in which K is a natural number greater than or equal to 2.
상기 제2 코드워드의 크기는 상기 제1 코드워드의 크기의 K배인 메모리 장치.
In the third paragraph,
A memory device in which the size of the second codeword is K times the size of the first codeword.
상기 컨트롤러는,
상기 변환된 제2 코드워드를 상기 타깃 메모리 영역에서 상기 병합된 K개의 제1 코드워드들이 저장된 위치에 오버라이트하는 메모리 장치.
In the third paragraph,
The above controller,
A memory device that overwrites the converted second codeword in the target memory area at a location where the merged K first codewords are stored.
상기 컨트롤러는,
상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상에 대해, 심볼 당 크기를 감소시켜 전체 심볼 개수를 증가시키는 동작, CRC를 제거하는 동작 및 패리티의 크기를 증가시키는 동작 중 적어도 하나를 수행하여 상기 제2 코드워드로 변환하는 메모리 장치.
In the first paragraph,
The above controller,
A memory device that converts one or more of the first codewords stored in the target memory area into the second codeword by performing at least one of an operation of reducing the size per symbol to increase the total number of symbols, an operation of removing a CRC, and an operation of increasing the size of a parity.
상기 제1 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제1 에러 검출 및 정정 회로 및 상기 제2 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제2 에러 검출 및 정정 회로를 추가로 포함하고,
상기 컨트롤러는,
상기 타깃 메모리 영역에 저장된 코드워드의 타입을 결정하고,
상기 타깃 메모리 영역에 저장된 코드워드의 타입이 제1 타입일 때, 상기 코드워드에 대한 에러 정정을 상기 제1 에러 검출 및 정정 회로를 통해 수행하고,
상기 타깃 메모리 영역에 저장된 코드워드의 타입이 제2 타입일 때, 상기 코드워드에 대한 에러 정정을 상기 제2 에러 검출 및 정정 회로를 통해 수행하는 메모리 장치.
In the first paragraph,
It further comprises a first error detection and correction circuit for detecting an error bit position for the first type of codeword and performing error correction, and a second error detection and correction circuit for detecting an error bit position for the second type of codeword and performing error correction,
The above controller,
Determine the type of codeword stored in the above target memory area,
When the type of the codeword stored in the target memory area is the first type, error correction for the codeword is performed through the first error detection and correction circuit,
A memory device that performs error correction for the codeword through the second error detection and correction circuit when the type of the codeword stored in the target memory area is the second type.
상기 컨트롤러는,
상기 복수의 메모리 영역들 각각에 매핑되는 코드워드의 타입을 지시하는 매핑 정보를 저장하는 스토리지 유닛을 추가로 포함하고,
상기 타깃 메모리 영역에 대응하는 식별자를 수신할 때, 상기 매핑 정보에서 상기 식별자에 매핑되는 코드워드의 타입을 탐색하고,
상기 탐색된 코드워드의 타입을 상기 타깃 메모리 영역에 저장된 코드워드의 타입으로 결정하는 메모리 장치.
In Article 7,
The above controller,
It further includes a storage unit that stores mapping information indicating the type of codeword mapped to each of the plurality of memory areas,
When receiving an identifier corresponding to the target memory area, the type of the codeword mapped to the identifier is searched for in the mapping information,
A memory device that determines the type of the searched codeword as the type of the codeword stored in the target memory area.
제1 타입을 가지는 하나 이상의 제1 코드워드들을 상기 복수의 메모리 영역들 중 타깃 메모리 영역에 저장하는 단계;
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛을 탐색하는 단계; 및
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중 불량 메모리 유닛이 탐색될 때, 상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상을 제2 타입을 가지는 하나의 제2 코드워드로 변환하고 상기 변환된 제2 코드워드를 상기 메모리 미디어에 라이트하는 단계;를 포함하는 메모리 장치의 동작 방법.
A step of setting up a plurality of memory areas, each of which includes at least one of a plurality of memory units included in a memory medium;
A step of storing one or more first codewords having a first type in a target memory area among the plurality of memory areas;
A step of searching for a defective memory unit among the memory units included in the target memory area; and
A method of operating a memory device, comprising: when a defective memory unit is detected among memory units included in the target memory area, converting at least one of the first codewords stored in the target memory area into a second codeword having a second type and writing the converted second codeword to the memory media.
상기 불량 메모리 유닛을 탐색하는 단계는,
상기 타깃 메모리 영역에 포함된 메모리 유닛들 중에서 로우 어드레스 페일 카운트가 제1 임계값 이상이고 컬럼 어드레스 페일 카운트 제2 임계값 이상인 메모리 유닛을 불량 메모리 유닛으로 판단하는 메모리 장치의 동작 방법.
In Article 9,
The steps for searching for the above bad memory unit are:
An operating method of a memory device, wherein a memory unit among memory units included in the target memory area, in which a row address fail count is greater than or equal to a first threshold value and a column address fail count is greater than or equal to a second threshold value, is determined to be a defective memory unit.
상기 제2 코드워드를 상기 휘발성 메모리에 라이트하는 단계는,
상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 K개를 병합하여 하나의 제2 코드워드로 변환하고,
상기 K는 2 이상의 자연수인 메모리 장치의 동작 방법.
In Article 9,
The step of writing the second codeword to the volatile memory is:
Among the first codewords stored in the above target memory area, K are merged and converted into one second codeword,
An operating method of a memory device wherein the above K is a natural number greater than or equal to 2.
상기 제2 코드워드의 크기는 상기 제1 코드워드의 크기의 K배인 메모리 장치의 동작 방법.
In Article 11,
A method of operating a memory device in which the size of the second codeword is K times the size of the first codeword.
상기 제2 코드워드를 상기 휘발성 메모리에 라이트하는 단계는,
상기 제2 코드워드를 상기 타깃 메모리 영역에서 상기 병합된 K개의 제1 코드워드들이 저장된 위치에 오버라이트하는 메모리 장치의 동작 방법.
In Article 11,
The step of writing the second codeword to the volatile memory is:
A method of operating a memory device for overwriting the second codeword in the target memory area at a location where the merged K first codewords are stored.
상기 제2 코드워드를 상기 휘발성 메모리에 라이트하는 단계는,
상기 타깃 메모리 영역에 저장된 제1 코드워드들 중 하나 이상에 대해, 심볼 당 크기를 감소시켜 전체 심볼 개수를 증가시키는 동작, CRC를 제거하는 동작 및 패리티의 크기를 증가시키는 동작 중 적어도 하나를 수행하여 상기 제2 코드워드로 변환하는 메모리 장치의 동작 방법.
In Article 9,
The step of writing the second codeword to the volatile memory is:
An operating method of a memory device that converts one or more of the first codewords stored in the target memory area into the second codeword by performing at least one of an operation of reducing the size per symbol to increase the total number of symbols, an operation of removing a CRC, and an operation of increasing the size of a parity.
상기 타깃 메모리 영역에 저장된 코드워드의 타입을 결정하는 단계; 및
상기 결정된 코드워드의 타입이 제1 타입일 때 상기 제1 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제1 에러 검출 및 정정 회로를 통해 상기 코드워드에 대한 에러 정정을 수행하고, 상기 결정된 코드워드의 타입이 제2 타입일 때 상기 제2 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제2 에러 검출 및 정정 회로를 통해 상기 코드워드에 대한 에러 정정을 수행하는 단계;를 추가로 포함하는 메모리 장치의 동작 방법.
In Article 9,
A step of determining the type of codeword stored in the target memory area; and
A method of operating a memory device further comprising: a step of performing error correction on a codeword through a first error detection and correction circuit that detects an error bit position for a codeword of the first type and performs error correction when the type of the determined codeword is the first type; and a step of performing error correction on a codeword through a second error detection and correction circuit that detects an error bit position for a codeword of the second type and performs error correction when the type of the determined codeword is the second type.
상기 타깃 메모리 영역에 저장된 코드워드의 타입을 결정하는 단계는,
상기 타깃 메모리 영역에 대응하는 식별자를 수신하는 단계;
상기 복수의 메모리 영역들 각각에 매핑되는 코드워드의 타입을 지시하는 매핑 정보에서 상기 식별자에 매핑되는 코드워드의 타입을 탐색하는 단계; 및
상기 탐색된 코드워드의 타입을 상기 타깃 메모리 영역에 저장된 코드워드의 타입으로 결정하는 단계;를 포함하는 메모리 장치의 동작 방법.
In Article 15,
The step of determining the type of codeword stored in the above target memory area is:
A step of receiving an identifier corresponding to the target memory area;
A step of searching for the type of the codeword mapped to the identifier in mapping information indicating the type of the codeword mapped to each of the plurality of memory areas; and
A method of operating a memory device, comprising: a step of determining the type of the searched codeword as the type of the codeword stored in the target memory area.
제1 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제1 에러 검출 및 정정 회로 및 제2 타입의 코드워드에 대한 에러 비트 위치를 검출하고 에러 정정을 수행하는 제2 에러 검출 및 정정 회로를 포함하는 컨트롤러;를 포함하고,
상기 컨트롤러는,
각각 상기 복수의 메모리 유닛들 중 하나 이상을 포함하는 복수의 메모리 영역들을 설정하고,
상기 복수의 메모리 영역들 중 제1 메모리 영역에 제1 타입을 가지는 하나 이상의 제1 코드워드들을 저장하고,
상기 복수의 메모리 영역들 중 제2 메모리 영역에 제2 타입을 가지는 하나 이상의 제2 코드워드들을 저장하고,
상기 제1 코드워드들에 대한 에러 정정을 상기 제1 에러 검출 및 정정 회로를 통해 수행하고,
상기 제2 코드워드들에 대한 에러 정정을 상기 제2 에러 검출 및 정정 회로를 통해 수행하고,
상기 제2 메모리 영역에 포함된 메모리 유닛들 중 하나 이상을 불량 메모리 유닛으로 결정하는 메모리 장치.
A memory medium comprising a plurality of memory units; and
A controller including a first error detection and correction circuit for detecting an error bit position for a codeword of a first type and performing error correction, and a second error detection and correction circuit for detecting an error bit position for a codeword of a second type and performing error correction;
The above controller,
Setting up a plurality of memory areas, each of which includes at least one of the plurality of memory units,
Store one or more first codewords having a first type in a first memory area among the plurality of memory areas,
Store one or more second codewords having a second type in a second memory area among the plurality of memory areas,
Error correction for the above first codewords is performed through the above first error detection and correction circuit,
Error correction for the above second codewords is performed through the second error detection and correction circuit,
A memory device that determines one or more of the memory units included in the second memory area as a defective memory unit.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/653,742 US12524307B2 (en) | 2023-11-21 | 2024-05-02 | Memory device that changes type of codeword stored in memory area and method for operating the same |
| CN202410793512.1A CN120032699A (en) | 2023-11-21 | 2024-06-19 | Memory device and operation method thereof |
| DE102024130127.9A DE102024130127A1 (en) | 2023-11-21 | 2024-10-17 | MEMORY DEVICE THAT CHANGES THE TYPE OF THE CODEWORD STORED IN THE MEMORY AREA AND METHOD FOR OPERATING THE SAME |
| TW113142684A TW202522496A (en) | 2023-11-21 | 2024-11-07 | Memory device and method for operating the same |
| EP24214383.2A EP4571517A3 (en) | 2023-11-21 | 2024-11-21 | Memory device that changes type of codeword stored in memory area and method for operating the same |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020230161741 | 2023-11-21 | ||
| KR20230161741 | 2023-11-21 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20250075409A true KR20250075409A (en) | 2025-05-28 |
Family
ID=95932585
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020240011276A Pending KR20250075409A (en) | 2023-11-21 | 2024-01-25 | Memory device that changes type of codeword stored in memory area and operation method thereof |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20250075409A (en) |
-
2024
- 2024-01-25 KR KR1020240011276A patent/KR20250075409A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10108509B2 (en) | Dynamic enabling of redundant memory cells during operating life | |
| US9201718B2 (en) | Data recovery in a solid state storage system | |
| US9021339B2 (en) | Data reliability schemes for data storage systems | |
| US6990622B2 (en) | Method for error correction decoding in an MRAM device (historical erasures) | |
| US7107508B2 (en) | Manufacturing test for a fault tolerant magnetoresistive solid-state storage device | |
| US9270296B1 (en) | Method and system for soft decoding through single read | |
| US8869007B2 (en) | Three dimensional (3D) memory device sparing | |
| US20130318418A1 (en) | Adaptive error correction for phase change memory | |
| US20120110419A1 (en) | Data Structure for Flash Memory and Data Reading/Writing Method Thereof | |
| CN102725738A (en) | System and method to correct data errors using a stored count of bit values | |
| US9396817B2 (en) | Self-repairing memory and method of use | |
| US20160350179A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
| US9836351B2 (en) | Method for decoding bits in a solid state drive, and related solid state drive | |
| KR102866396B1 (en) | Nonvolatile memory bad row management | |
| KR102024033B1 (en) | Method and apparatus for controlling memory in mobile communication system | |
| US20030172339A1 (en) | Method for error correction decoding in a magnetoresistive solid-state storage device | |
| US7747926B2 (en) | Methods and apparatus for a memory device with self-healing reference bits | |
| KR20250075409A (en) | Memory device that changes type of codeword stored in memory area and operation method thereof | |
| EP4571517A2 (en) | Memory device that changes type of codeword stored in memory area and method for operating the same | |
| US20260074006A1 (en) | Error correction device, error correction method, and semiconductor memory system | |
| US20250245101A1 (en) | Memory control method and memory storage device | |
| KR20250159411A (en) | Memory system that sets fail flag for fail memory unit and operation method thereof | |
| Yang | Improving memory ECC via defective memory columns | |
| CN103514961A (en) | Self-repairing memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20240125 |
|
| PG1501 | Laying open of application |
