KR101466694B1 - Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 - Google Patents
Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 Download PDFInfo
- Publication number
- KR101466694B1 KR101466694B1 KR1020070086515A KR20070086515A KR101466694B1 KR 101466694 B1 KR101466694 B1 KR 101466694B1 KR 1020070086515 A KR1020070086515 A KR 1020070086515A KR 20070086515 A KR20070086515 A KR 20070086515A KR 101466694 B1 KR101466694 B1 KR 101466694B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data
- block
- memory
- detection information
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims abstract description 159
- 238000012937 correction Methods 0.000 claims abstract description 24
- 208000011580 syndromic disease Diseases 0.000 claims description 44
- 239000011159 matrix material Substances 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 claims description 34
- 230000004083 survival effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims 26
- 238000004891 communication Methods 0.000 claims 6
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
ECC 회로, ECC 회로를 구비하는 메모리 시스템 및 오류 정정 방법이 개시된다. 상기 메모리 시스템은 다수의 메모리 장치를 포함하는 메모리 블락; 및 상기 메모리 블락과 호스트 간에 데이터의 전송을 제어하기 위한 컨트롤러를 구비하며, 상기 컨트롤러는 각각이 호스트로부터 수신되는 데이터를 인코딩하여 상기 다수의 메모리 장치들 중 대응하는 메모리 장치로 출력하는 다수의 ECC 인코더 블락; 및 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 검사하여 정정하기 위한 ECC 디코더 블락을 구비하며, 상기 ECC 디코더 블락은 각각이 상기 다수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 데이터를 계산하는 다수의 오류 검출기; 및 상기 다수의 오류 검출기로부터 출력되는 데이터들을 선택적으로 수신하여 상기 다수의 메모리 장치 각각으로부터 출력된 데이터의 오류 정보를 파이프 라인 방식으로 계산하기 위한 오류 정정기를 구비하는 ECC 회로를 포함한다.
ECC 회로, 메모리 시스템, 메모리 카드, 플래시 카드
Description
본 발명은 ECC 회로 및 ECC 회로를 구비하는 메모리 시스템에 관한 것으로 보다 상세하게는 ECC 회로의 추가 없이 읽기/쓰기 성능을 최적화하기 위한 ECC 회로 및 이를 구비하는 메모리 시스템에 관한 것이다.
도 1은 일반적인 메모리 장치의 개략적인 블락도를 나타내고, 도 2는 도 1에 도시된 ECC 회로의 개략적인 블락도를 나타낸다.
도 1과 도 2를 참조하면, 상기 메모리 시스템(10)은 컨트롤러(100), 및 메모리 블락(200)을 구비한다. 상기 컨트롤러(100)는 호스트 인터페이스(110), 제1 버퍼 메모리 블락(120), 제2 버퍼 메모리 블락, CPU(150), 및 플래시 메모리 인터페이스 블락(140)을 포함한다.
일반적으로 상기 메모리 시스템(10)은 호스트로부터 입력되는 데이터나 상기 메모리 블락(200)으로부터 출력되는 데이터의 오류를 검출하고 정정하여 정확한 데이터를 전송하기 위하여 다수의 ECC 회로 블락(145)을 포함하여 제작된다.
일반적으로, 상기 ECC 회로 블락(145)은 상기 플래시 메모리 인터페이스 블 락(140)에 구비되어 상기 메모리 블락(200)으로부터 리드(read)되거나, 상기 메모리 블락(200)으로 라이트(write) 되는 데이터의 오류를 검사하고, 상기 검사 결과에 기초하여 상기 리드 또는 라이트 되는 데이터의 오류 정보를 상기 CPU(150)로 출력하게 된다.
상기 CPU(150)는 상기 ECC 회로 블락(145)으로부터 출력되는 오류 정보에 기초하여 상기 메모리 블락(200)으로부터 출력된 데이터가 저장되는 버퍼 메모리 블락(120)에 액세스하여 상기 오류 정보에 상응하는 데이터 비트의 오류를 수정하게 된다.
그런데, 상기 메모리 시스템(10)은 용량의 증가와 상기 메모리 시스템(10)의 리드/라이트 속도를 증가시키기 위하여 상기 메모리 블락(200)에 구비되는 다수의 메모리 장치들(211, 212, ..., 213)과 상기 다수의 메모리 장치들(211, 212, ..., 213) 각각에 접속되는 다수의 채널들(CH0, CH1, ..., CH N)을 통하여 상기 플래시 메모리 인터페이스 블락(140)과 인터페이스한다.
일반적인 메모리 시스템(10)에서는 상기 다수의 채널들(CH0, CH1, ..., CH N)을 통하여 리드/라이트 되는 데이터의 오류를 검사하기 위해서는 상기 다수의 채널들(CH0, CH1, ..., CHN) 수에 상응하는 ECC 회로들(141, 142, ..., 143)을 구비해야만 한다. 따라서, 상기 메모리 장치들(211, 212, ..., 213)의 수가 더욱 증가하게 되고 상기 채널 수(CH0, CH1, ..., CHN)가 증가하게 되면 상기 ECC 회로(141, 142, ..., 143)의 수도 더욱 증가하게 된다.
도 2에 도시된 바와 같이, 상기 ECC 회로들(141, 142, ..., 143) 각각은 ECC 인코더 블락(161, 171, ..., 181), 및 오류 검출기(162, 172, ..., 182)과 오류 정정기(163, 173, ..., 183)를 포함하는 ECC 디코더 블락들(165, 175, ..., 185)을 구비한다.
그런데, 상기 ECC 회로들(141, 142, ..., 143)에서 상기 ECC 디코더 블락(165, 175, ..., 185)의 크기(또는 사이즈)는 큰 부분을 차지한다. 특히 상기 오류 정정기(163, 173, ..., 183)의 크기는 상기 오류 검출기(162, 172, ..., 182), 및 ECC 인코더 블락(161, 171, ..., 181)에 비하여 매우 큰 부분을 차지한다.
따라서, 상기 메모리 시스템(10)의 채널 수가 증가할 경우 상기 ECC 회로(141, 142, ..., 143))의 크기(사이즈)도 비례하여 커지게 된다. 즉, 상기 오류 정정기(163, 173, ..., 183)를 구성하고 있는 게이트-카운트(gate-count)가 증가하게 됨으로써 상기 메모리 시스템(10)의 제조 비용이 크게 증가하는 문제가 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 메모리 용량의 증가에 따른 채널의 증가에도 메모리 시스템의 크기(사이즈)가 커지지 않고, 또한 제조 비용의 상승을 방지할 수 있는 ECC 회로 및 이를 구비하는 메모리 시스템을 제공하는 것이다.
본 발명에 따른 메모리 시스템은 다수의 메모리 장치를 포함하는 메모리 블락; 및 상기 메모리 블락과 호스트 간에 데이터의 전송을 제어하기 위한 컨트롤러를 구비하며, 상기 컨트롤러는 각각이 호스트로부터 수신되는 데이터를 인코딩하여 상기 다수의 메모리 장치들 중 대응하는 메모리 장치로 출력하는 다수의 ECC 인코더 블락; 및 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 검사하여 정정하기 위한 ECC 디코더 블락을 구비하며, 상기 ECC 디코더 블락은 각각이 상기 다수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 데이터(예컨대, 신드롬 또는 브랜치 매트릭스)를 계산하는 다수의 오류 검출기; 및 상기 다수의 오류 검출기로부터 출력되는 데이터들을 선택적으로 수신하여 상기 다수의 메모리 장치 각각으로부터 출력된 데이터의 오류 정보를 파이프 라인 방식으로 계산하기 위한 오류 정정기를 구비하는 ECC 회로를 포함한다.
상기 다수의 오류 검출기들 각각은 대응하는 메모리 장치로부터 출력되는 데 이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 신드롬 계산 블록을 구비할 수 있다.
상기 오류 정정기는 수신된 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 KES(key equation solver)블락; 상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 'chien search' 알고리즘을 수행하는 CS(chien searching) 블락; 및 상기 'chien search' 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 'error evaluate'를 수행하는 EE(error evaluator)블락을 구비할 수 있다.
상기 다수의 오류 검출기들 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 브랜치 매트릭스(branch metrics)를 계산하여 출력하는 BMC(Branch matics calculator) 블락을 구비하고, 상기 오류 정정기는, 상기 브랜치 매트릭스 계산 결과를 수신하고, 미리 저장된 상태 매트릭스 값을 더하여 새로운 상태 매트릭스 값을 산출하는 ACS(Add-Compare-Select) 블락; 상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 상기 미리 저장된 상태 매트릭스 값을 업데이트하는 SMM(State Metrics Memory) 블락; 및 상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 이용하여 서바이벌 패스를 산출하여 저장하는 SPM(Survivor Path Memory) 블락을 구비할 수 있다.
상기 ECC 회로는 상기 다수의 오류 검출기를 통하여 출력되는 데이터를 수신하여 상기 수신된 데이터들 중 어느 하나를 선택적으로 상기 오류 정정기로 출력하기 위한 입력 신호 선택 블락을 더 구비할 수 있다.
상기 컨트롤러는 상기 다수의 메모리 장치로부터 출력되는 데이터를 일시 저장하기 위한 다수의 버퍼 메모리들; 및 상기 다수의 버퍼 메모리들에 액세스하여 상기 ECC 회로로부터 출력되는 오류 정보에 기초하여 상기 다수의 버퍼 메모리들에 저장된 데이터의 오류를 정정하는 오류 정정 로직을 더 구비할 수 있다.
상기 컨트롤러는 상기 다수의 버퍼 메모리들 중에서 제1 버퍼 메모리로부터 오류가 정정된 데이터를 상기 호스트로 출력하는 동안, 상기 다수의 버퍼 메모리들 중에서 제2 버퍼 메모리에 저장된 데이터의 오류를 정정할 수 있다.
상기 컨트롤러는 상기 제2 버퍼 메모리가 저장된 데이터의 오류를 정정하는 동안, 상기 대응되는 메모리 장치로부터 출력되는 데이터를 수신하여 제3 버퍼 메모리에 저장한다.
본 발명에 따른 오류 정정 방법은 오류 검출기가 다수의 메모리 장치 각각으로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 데이터(예컨대, 신드롬 또는 브랜치 매트릭스)을 계산하는 단계; 및 오류 정정기가 상기 다수의 오류 검출기들로부터 출력되는 데이터들을 선택적으로 수신하여 상기 다수의 메모리 장치 각각으로부터 출력된 데이터의 오류 정보를 계산하는 단계를 구비한다.
상기 오류 정보를 계산하는 단계는 KES(Key equation solver) 블락이 제1 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구하는 단계; CS(Chien searching) 블락이 상기 제1 데이터에 대하여 구해진 오류 방정식의 계수를 이용하여 상기 오류 방정식의 해를 구하기 위한 'chien search' 알고리즘을 수행하는 동안, 상기 KES 블락이 제2 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구 하는 단계; 및 EE(Error Evaluator) 블락이 상기 제1 데이터의 'chien search' 결과를 수신하여 상기 제1 데이터의 오류 위치를 구하는 동안 CS 블락이 상기 제2 데이터에 대한 'chien search'를 수행하는 단계를 구비한다.
상기 오류 정정 방법은 입력 선택 회로가 상기 다수의 오류 검출기로부터 출력되는 신드롬 데이터들 중 어느 하나를 선택하여 상기 오류 정정기로 출력하는 단계를 더 구비한다.
상기 오류 정정 방법은 오류 정정 로직이 상기 오류 정정기로부터 출력되는 상기 오류 정보에 기초하여 리드된 데이터가 저장된 버퍼 메모리에 액세스하여 저장된 데이터의 오류를 정정하는 단계를 더 구비한다.
상기 오류 정정 방법은 제1 버퍼 메모리가 상기 메모리 각각의 메모리 장치로부터 출력되는 제1 데이터를 수신하는 단계; 상기 제1 버퍼 메모리가 상기 수신된 데이터의 오류를 정정하는 동안 제2 버퍼 메모리가 상기 메모리 장치로부터 출력되는 제2 데이터를 수신하는 단계; 및 상기 제1 버퍼 메모리가 상기 정정된 데이터를 상기 호스트로 출력하는 동안 상기 제2 버퍼 메모리는 수신된 제2 데이터의 오류 정보를 수정하고, 제3 버퍼 메모리는 수신되는 제3 데이터를 수신하는 단계를 더 구비한다.
상기 오류 정정 방법은 오류 정정 로직이 상기 버퍼 메모리로부터 출력되는 데이터와 상기 ECC 디코더 블락으로부터 출력되는 상기 오류 정보에 기초하여 수신된 데이터의 오류를 정정하여 출력하는 단계를 더 구비한다.
본 발명에 따른 메모리 시스템은 ECC 회로에 포함되는 ECC 디코더 블락을 채널의 증가에 무관하게 하나의 디코더만을 사용함으로써 상기 ECC 회로의 크기를 줄일 수 있고, 결국 상기 메모리 시스템의 제조 비용의 증가를 방지할 수 있는 효과가 있다.
또한, 본 발명에 따른 메모리 시스템은 상기 ECC 디코더 블락을 파이프 라인 방식으로 동작시키고 forward chien searching 기법을 적용함으로써 각각의 채널을 통하여 출력되는 데이터의 레이턴시(latency)를 줄이고 전송 비율(through-put)을 향상시킴으로써 고속의 데이터 전송을 할 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재번호를 나타낸다.
도 3은 본 발명의 실시예에 따른 메모리 시스템의 개략적인 블락도를 나타낸다. 도 3을 참조하면, 상기 메모리 시스템(20)은 컨트롤러 블락(300), 및 메모리 블락(200)을 구비한다. 상기 컨트롤러 블락(300)은 호스트 인터페이스 블락(310), 메모리 인터페이스 블락(320), 제1 버퍼 메모리 블락(330), 및 CPU(340)를 구비할 수 있다.
상기 호스트 인터페이스 블락(310)은 호스트로 출력되는 데이터, 및 상기 호스트로부터 수신되는 데이터와 커맨드들을 상기 호스트와 인터페이스한다.
상기 메모리 블락(200)은 다수의 메모리 장치들(211, 212, ..., 213)을 구비하고, 상기 다수의 메모리 장치들(211, 212, ..., 213) 각각에 접속된 다수의 채널들(CH0, CH1, ..., CHN)을 통하여 상기 리드 또는 라이트되는 데이터를 상기 컨트롤러 블락(300)과 송수신한다.
상기 다수의 메모리 장치들(211, 212, ..., 213) 각각은 NAND 플래시 칩, NOR 플래시 칩, 또는 DRAM 칩으로 구현될 수 있다.
상기 제1 버퍼 메모리 블락(330)은 상기 시스템 버스를 통하여 상기 호스트로부터 입력되는 라이트 데이터, 또는 상기 다수의 메모리 장치들로부터 독출되어 상기 메모리 인터페이스 블락으로부터 출력되는 리드 데이터를 일시 저장한다.
또한, 상기 제1 버퍼 메모리 블락(330)은 상기 메모리 블락(200)으로부터 리드된 데이터를 수신하여 저장하고, 상기 리드된 데이터에 오류가 있을 경우, 상기 호스트로의 전송을 중지하고, 상기 메모리 인터페이스 블락(320)에 구비된 ECC 회로(322)의 오류 정보에 기초하여 상기 리드된 데이터의 오류의 수정이 완료된 후에 상기 호스트로 오류가 정정된 리드 데이터를 출력하게 된다.
상기 메모리 시스템(20)은 제2 버퍼 메모리 블락(350)을 더 구비할 수 있다. 상기 제2 버퍼 메모리 블락(350)은 상기 메모리 블락(200)으로부터 독출되는 시스템 데이터를 저장하고, 저장된 상기 시스템 데이터를 업데이트하여 상기 메모리 장치들로 출력한다.
또한, 상기 제1 버퍼 메모리 블락(330)과 마찬가지로, 상기 독출된 시스템 데이터에 오류가 있을 경우, 상기 시스템 데이터의 업데이트를 중지하고, 상기 메모리 인터페이스 블락(320)에 구비된 ECC 회로 블락(322)으로부터 출력되는 오류 정보에 기초하여 상기 독출된 시스템 데이터의 오류의 수정이 완료된 후에 상기 시스템 데이터의 업데이트를 수행하여 상기 업데이트된 시스템 데이터를 상기 메모리 블락(200)으로 출력한다.
상기 제1 버퍼 메모리 블락(330)과 상기 제2 버퍼 메모리 블락(350)은 다수의 버퍼 메모리들로 구현될 수 있다. 또한, 상기 제1 버퍼 메모리 블락(330)과 상기 제2 버퍼 메모리 블락(350)은 싱글 포트 SRAM(SPSRAM), 또는 듀얼 포트 SRAM(DPSRAM)으로 구현될 수 있다.
상기 CPU(340)는 상기 메모리 인터페이스 블락(320)으로부터 출력되는 오류 정보에 기초하여 상기 버퍼 메모리 블락(330)에 저장된 데이터에 액세스하여 상기 오류를 정정한다.
상기 데이터의 오류를 정정하기 위하여 상기 CPU(340)가 상기 제1 버퍼 메모리 블락(330)에 액세스하여 오류를 정정하는 것으로 기술하였으나, 상기 메모리 인터페이스 블락(320)에 구비되는 DMA(Direct Memory Acess; 321)를 이용하여 상기 데이터의 오류를 정정하도록 구현될 수 있다.
또한, 도시하지는 않았지만 상기 메모리 시스템(200)의 시스템 버스(355)와 상기 버퍼 메모리 블락(330) 사이에 별도의 오류 정정 로직(미도시)을 구비함으로써 상기 CPU(340), 또는 DMA(321)가 상기 버퍼 메모리 블락(330)에 액세스하지 않 고도 상기 메모리 블락(200)으로부터 출력되는 데이터의 오류를 정정할 수 있다.
상기 메모리 인터페이스 블락(320)은 상기 메모리 블락(200)으로부터 리드된 데이터 또는 상기 메모리 블락(200)으로 라이트할 데이터를 인터페이스한다.
상기 메모리 인터페이스 블락(320)은 상기 메모리 블락(200)으로 라이트할 데이터를 수신하여 상기 라이트할 데이터를 인코딩하여 상기 메모리 블락(200)으로 출력하고, 또한, 상기 메모리 블락(200)으로부터 리드된 데이터를 디코딩하고 오류 정보를 계산하여 상기 CPU(340)로 출력한다.
상기 메모리 인터페이스 블락(320)은 DMA 블락(321), 및 ECC 회로 블락(322)을 구비한다. 상기 DMA 블락(321)은 상기 호스트로부터 수신되어 상기 제1 버퍼 메모리 블락(330)에 일시 저장된 라이트 데이터를 액세스하여 상기 메모리 블락(200)으로 저장한다.
상기 ECC 회로 블락(322)은 호스트로부터 입력된 라이트할 데이터를 인코딩하거나, 상기 메모리 블락(200)으로부터 리드되는 데이터를 디코딩하여 오류 정보를 계산하여 출력한다.
도 4는 도 3에 도시된 ECC 회로의 일 실시예를 나타낸다. 좀더 자세히 설명하면, 상기 ECC 회로 블락(322)이 블락 코드(Block code) 방식을 이용하여 구현된 예를 나타내는 도면이다.
도 3과 도 4를 참조하면, 상기 ECC 회로 블락(322)은 제1 인코더 블락(323), 제2 인코더 블락(324), 및 ECC 디코더 블락(329)을 구비한다.
본 발명의 실시예에서는 설명의 용이함을 위하여 도 3에 도시된 메모리 블 락(200)이 두 개의 메모리 장치들(211, 212)과 두개의 채널들(CH0, CH1)로 구현된 경우를 예로 들어 설명하고자 한다.
상기 제1 인코더 블락(323), 및 상기 제2 인코더 블락(324) 각각은 수신되는 데이터를 인코딩하여 각각 상응하는 메모리 장치(211 또는 212)로 출력한다. 예컨대, 제1 및 제2 인코더 블락(323, 324)은 각각 수신되는 데이터를 이용하여 CRC 데이터(혹은, 신드롬 데이터)를 생성할 수 있다.
상기 ECC 디코더 블락(329)는 제1 오류 검출기(325), 및 제2 오류 검출기 (326), 및 입력 신호 선택 블락(327), 및 오류 정정기(328)를 구비한다.
도 4를 참조하여 설명하는 실시예에서는 상기 제1 오류 검출기(325), 및 상기 제2 오류 검출기(326) 각각은 제1 신드롬 계산 블락(325), 및 제2 신드롬 계산 블락(326)으로 구현될 수 있다.
상기 제1 신드롬 계산 블락(325), 및 상기 제2 신드롬 계산 블락(326) 각각은 상기 각각의 메모리 장치(211, 212)로부터 리드된 데이터를 수신하여 상기 리드된 데이터의 오류 발생 유무를 검사하기 위한 신드롬을 계산하여 출력한다.
이때, 상기 각각의 신드롬 계산 블락(325, 326)의 신드롬 계산 결과에 기초하여 상기 각각의 메모리 장치(211, 212)로부터 리드된 데이터에 오류가 발생한 경우, 상기 제1 버퍼 메모리 블락(330)은 상기 리드되어 저장된 데이터를 호스트로 전송하는 것을 중지하고, 상기 컨트롤러 블락(300)은 오류 정정 모드로 진입한다.
상기 입력 신호 선택 블락(327)은 상기 제1 신드롬 계산 블락(325), 및 상기 제2 신드롬 계산 블락(326) 각각으로부터 계산되어 출력되는 신드롬 계산 결과를 수신하고, 수신된 계산 결과 중에서 어느 하나를 선택하여 순차적으로 출력한다.
상기 오류 정정기(328)는 상기 입력 신호 선택 블락(327)으로부터 출력되는 신드롬 계산 결과를 수신하고, 수신된 신드롬 계산 결과에 기초하여 상기 각각의 메모리 장치로부터 리드된 데이터의 오류 정보를 계산하여 CPU(340)로 출력하고, 상기 CPU(340)는 오류 정정기(328)로부터 출력된 오류 정보에 기초하여 상기 제1 버퍼 메모리(330)에 저장된 데이터의 오류를 수정한다.
결국, 도 1과 도 2를 참조하여 설명한 일반적인 ECC 회로 블락(140)에 비교하여 본 발명에 따른 ECC 회로 블락(322)은 하나의 ECC 디코더 블락(329)만을 구비하여 상기 2개의 메모리 장치(211, 212)로부터 동시에 출력되는 데이터에 오류가 발생시 상기 데이터의 오류를 정정할 수 있다.
상기 오류 정정기(328)는 KES(Key Equation Solver; 31) 블락, CS(Chien Searching; 32) 블락, 및 EE(Error Evaluator; 33) 블락을 구비한다.
상기 KES 블락(31)은 수신되는 데이터에 대한 오류 위치 방정식의 계수를 계산하고, 상기 CS 블락(32)은 미리 정해진 알고리즘(예컨대, 'chien searching' 알고리즘)을 이용하여 상기 오류 위치 방정식의 해를 구한다. 상기 EE 블락(33)은 상기 CS 블락(32)에 의하여 계산된 해를 이용하여 상기 수신된 데이터의 오류 위치를 표시한다.
상기 디코더 블락(328)은 상기 선택 블락(327)으로부터 출력되는 신드롬 계산 결과의 빠른 처리를 위하여 파이프 라인 모드로 동작한다.
상기 오류 정정기(328)는 상기 KES 블락(31), 상기 CS 블락(32), 및 EE 블 락(33)을 파이프 라인 모드로 동작시키기 위한 디코더 컨트롤러(34)를 더 구비할 수 있다.
도 5는 본 발명의 실시예에 따른 ECC 디코더 블락(329)의 동작을 설명하기 위한 타이밍 도이다.
도 3 내지 도 5를 참조하면, 상기 각각의 신드롬 계산 블락들(325, 326)은 각각의 메모리 장치들(211, 212)로부터 출력되어 각각의 채널들(CH0, CH1)을 통하여 수신되는 리드된 데이터를 수신하여 상기 리드된 데이터의 오류 여부를 검사하기 위한 신드롬을 계산한다.
상기 신드롬 계산 결과에 기초하여 상기 각각의 메모리 장치들(211, 212)로부터 리드된 데이터에 오류가 발생한 경우, 상기 컨트롤러(300)는 상기 제1 버퍼 메모리 블락(330)에 저장되어 있는 리드된 데이터 중에서 오류가 있는 데이터가 호스트로 출력되는 것을 중지하고, 오류 수정 모드로 들어간다.
본 발명의 실시예에서는 2개의 채널(CH0, CH1)을 통하여 리드된 데이터들이 모두 오류가 발생한 경우를 예로 들어 설명하고자 한다.
상기 2개의 채널(CH0, CH1)을 통하여 리드된 데이터에서 모두 오류가 발생하게 되면, 상기 입력 신호 선택 블락(327)은 상기 제1 신드롬 계산 블락(325), 및 상기 제2 신드롬 계산 블락(326)으로부터 출력되는 신드롬 계산 결과(신드롬 데이터)를 수신하여 먼저 제1 데이터(#1)에 대한 신드롬 데이터를 상기 디코더 블락(328)으로 출력한다.
상기 디코더 블락(328)은 상기 신드롬 데이터를 수신하여 오류 수정 모드로 진입하게 된다. 상기 디코더 블락(328)이 오류 수정 모드로 진입하게 되면, 상기 KES 블락(31)은 도 3에 도시된 제1 버퍼 메모리(330)에 미리 저장된 제1 데이터(#1)에 대하여 산출된 신드롬 데이터를 이용하여 미리 결정된 오류 위치 방정식의 계수를 산출하는 'key equation' 을 수행한다.
상기 KES 블락(31)의 동작이 완료되면, 상기 CS 블락(32)은 상기 KES 블락(31)의 계산 결과(예컨대, 산출된 오류 위치 방정식의 계수)를 이용하여 상기 제1 데이터(#1)에 대한 오류 위치 방정식의 해를 구하는 'chien search' 알고리즘을 수행한다.
이때, 상기 CS 블락(32)이 제1 데이터(#1)에 대한 'chien search' 알고리즘을 수행하는 동안, 상기 입력 신호 선택 블락(327)은 상기 제2 데이터(#2)에 대한 신드롬 계산 결과를 상기 KES 블락(31)으로 출력하게 된다.
상기 KES 블락(31)은 상기 제2 데이터(#2)에 대한 신드롬 데이터에 기초하여 상기 제2 데이터에 대한 오류 위치 방정식의 계수를 산출하는 'key equation'을 수행한다.
상기 CS 블락(32)의 동작이 완료되면, 상기 EE 블락(33)은 상기 제1 데이터(#1)에 대한 'chien search' 알고리즘 결과를 이용하여 제1 데이터에 대한 오류 위치를 표시하기 위한 미리 정해진 알고리즘(이하, 'error evaluate' 알고리즘이라 함)을 수행하여 그 결과를 출력한다.
상기 EE 블락(33)으로부터 출력되는 제1 데이터(#1)에 대한 오류 정보(즉, 오류 위치 정보)에 기초하여 상기 CPU(340)는 제1 버퍼 메모리 블락(330)에 저장된 제1 데이터(#1)에 대한 오류를 수정하고, 상기 제1 버퍼 메모리 블락(330)은 수정된 리드 데이터를 호스트로 출력하게 된다.
이때, 상기 CS 블락(32)이 상기 제1 데이터(#1)에 대한 'chien search' 동작이 완료되면, 상기 CS 블락(32)은 상기 제2 데이터(#2)에 대한 'key equation' 결과를 수신하고, 상기 제1 버퍼 메모리(330)에 저장되어 있는 제2 데이터(#2)에 대한 'chien search' 알고리즘을 수행한다.
상기 CS 블락(32)이 제2 데이터(#2)에 대한 'chien search' 동작을 수행하는 하게 되면, 상기 KES 블락(31)은 상기 제1 채널(CH0)로부터 출력되는 제3 데이터(#3)에 대한 신드롬 데이터를 수신하여 제3 데이터(#3)에 대한 오류 방정식의 계수를 구하기 위한 'key equation'을 수행한다.
상기 CS 블락(32)의 동작이 완료되면, 상기 EE 블락(33)은 상기 제2 데이터(#2)에 대한 'chien search' 결과에 기초하여 'error evaluate' 알고리즘을 수행함으로써 상기 제2 데이터에 대한 오류 정보를 계산하여 출력하고, 상기 오류 정보에 기초하여 상기 CPU(340)는 제1 버퍼 메모리 블락(330)에 저장된 제2 데이터(#2)에 대한 오류를 수정하고, 상기 제1 버퍼 메모리 블락(330)은 수정된 리드 데이터를 호스트로 출력하게 된다.
상기 제1 데이터(#1) 및 제3 데이터(#3)는 제1 채널(CH0)을 통하여 제1 메모리 장치(211)으로부터 리드된 데이터일 수 있고, 상기 제2 데이터(#2)는 제2 채널(CH1)을 통해 제2 메모리 장치(212)로부터 리드된 데이터일 수 있다.
도 5에 예시된 상기 오류 정정기(328)는 리드된 데이터의 상위 바이트에서 하위 바이트로 'chien search'를 수행하는 'backward chien searching' 기법을 사용하는 경우를 일 예로 들어 설명하였으나, 상기 디코더 블락(328)을 리드된 데이터의 하위 바이트에서 상위 바이트로 'chien search' 알고리즘을 수행하는 'forward chien searching' 기법을 사용하여 구현될 수 있다.
상기 'forward chien searching' 기법을 사용할 경우, 상기 오류의 정정을 CPU(340)가 상기 제1 버퍼 메모리 블락(330)에 액세스하여 수행할 수도 있고 DMA 블락이 수행할 수도 있으며, 상기 제1 버퍼 메모리 블락(330)과 버스(BUS) 사이에 상기 오류를 정정하기 위한 별도의 오류 정정 회로(미도시)를 구비하여 구현할 수 있다.
즉, 이상 도 5를 참조하여 상술한 바와 같이, 상기 본 발명에 따른 ECC 회로 블락(322)은 하나의 디코더 블락(328)만을 구비하고, 상기 오류 정정기(328)에 구비된 KES 블락(31), CS 블락(32), 및 EE 블락(33)을 독립적으로 파이프 라인 모드로 동작시키게 된다.
따라서, 상기 오류 정정기(328)은 상기 각각의 메모리 장치(211, 212)로부터 리드되는 데이터에 대한 오류 정보를 빠르고 효과적으로 계산할 수 있다. 또한, 상기 ECC 회로(322)에서 상기 ECC 디코더 블락(328)이 차지하는 크기(사이즈)를 줄일 수 있게 된다.
도 6은 도 3에 도시된 ECC 회로의 다른 실시예를 나타내는 도면이다. 좀더 상세히 설명하면, 상기 ECC 회로 블락(322)이 비터비 코드 디코더 방식을 이용하여 구현된 예를 나타내는 도면이다.
도 3과 도 6을 참조하면, 상기 ECC 회로 블락(362)은 제1 인코더 블락(363), 제2 인코더 블락(364), 및 ECC 디코더 블락(369)을 구비한다.
본 발명의 실시예에서는 설명의 용이함을 위하여 도 3에 도시된 메모리 블락(200)이 두 개의 메모리 장치(211, 212)와 두 개의 채널(CH0, CH1)로 구현된 경우를 예로 들어 설명하고자 한다.
상기 제1 인코더 블락(363), 및 상기 제2 인코더 블락(364) 각각은 수신되는 데이터를 인코딩하여 각각 상응하는 메모리 장치(211 또는 212)로 출력한다.
상기 ECC 디코더 블락(369)은 제1 오류 검출기(365), 및 제2 오류 검출기(366), 및 입력 신호 선택 블락(367), 및 오류 정정기(368)를 구비한다.
상기 ECC 디코더 블락(369)이 비터비 코드 디코더로 구현된 경우, 상기 오류 검출기들(365, 366)은 BMC(Branch Metrics Calculator) 블락으로 구현되고, 상기 오류 정정기(368)는 ACS(Add-Compare-Select) 블락(41), SMM(State Metrics Memory) 블락(42), 및 SPM(Survivor Path Memory) 블락(43)을 포함하여 구현될 수 있다.
상기 BMC 블락들(41, 42) 각각은 상기 다수의 메모리 장치들(211, 212)로부터 출력되는 리드 데이터의 브랜치 매트릭스를 계산하여 출력한다.
상기 입력 신호 선택 블락(367)은 상기 오류 검출기들(예컨대, BMC 블락들) 각각으로부터 계산되어 출력되는 브랜치 매트릭스 계산 결과를 수신하고, 수신된 계산 결과 중에서 어느 하나를 선택하여 순차적으로 출력한다.
상기 ACS 블락(41)은 브랜치 매트릭스 계산 결과를 수신하고, SMM 블락(42) 에 미리 저장된 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값으로 출력한다.
상기 SMM 블락(42)은 상기 ACS 블락(41)으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 저장된 상태 매트릭스를 업데이트 한다.
상기 SPM 블락(43)은 상기 ACS 블락(41)으로부터 출력되는 상태 매트릭스 중에서 살아남은 경로(즉, 서바이벌 패스)만을 저장하여 출력함으로써 상기 리드 데이터의 오류를 정정하여 출력한다.
도 7은 도 6에 도시된 디코더 블락의 파이프 라인 동작을 설명하기 위한 타이밍 도이다. 도 6와 도 7을 참조하면, 상기 BMC 블락(365,366)은 상기 메모리 장치들(211, 212)로부터 출력되어 상기 다수의 채널을 통하여 수신되는 리드 데이터의 브랜치 매트릭스(Branch Metrics)를 계산하여 출력한다.
상기 각각의 채널(CH 0, CH 1)을 통하여 리드된 데이터에서 오류가 발생하게 되면, 상기 입력 신호 선택 블락(367)은 상기 각각의 BMC 블락들(61, 62)로부터 출력되는 브랜치 매트릭스 계산 결과를 수신하여 먼저 제1 데이터(#1)에 대한 브랜치 매트릭스 계산 결과를 상기 오류 정정기(368)로 출력한다.
상기 오류 정정기(368)는 상기 브랜치 매트릭스 계산 결과를 수신하여 오류 정정 모드로 진입하게 된다. 상기 오류 정정기(368)가 오류 정정 모드로 진입하게 되면, 상기 ACS 블락(65)은 수신된 제1 데이터(#1)에 대한 브랜치 매트릭스 계산 결과와 상기 SMM 블락(42)에 미리 저장된 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값으로 출력한다.
상기 ACS 블락(41)와 SMM 블락(42)의 동작이 완료되면, 상기 SPM 블락(43)은 상기 제1 데이터(#1)에 대한 서바이벌 패스를 구하기 시작한다.
이때, 상기 ACS 블락(41)과 상기 SMM 블락(42)은 제2 데이터(#2)에 대한 브랜치 매트릭스 값을 수신하여 ACS 블락(41)과 상기 SMM 블락(42)이 제2 데이터(#2)에 대한 브랜치 매트릭스 계산 결과와 상기 SMM 블락(42)에 저장된 제2 데이터(#2)에 대한 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값을 출력한다.
상기 SPM 블락(43)이 제1 데이터(#1)에 대한 서바이벌 패스를 구하여 출력을 완료하면, 상기 SPM 블락(43)은 제2 데이터(#2)에 대한 서바이벌 패스를 구하여 출력한다.
즉, 상기 디코더 블락(225)은 제1 채널(#1)과 제2 채널(#2)을 통하여 수신되는 리드 데이터를 파이프 라인 모드로 오류를 검출하고 정정하여 출력하게 된다.
따라서, 상기 오류 정정기(368)은 상기 각각의 메모리 장치(211, 212)로부터 리드되는 데이터에 대한 오류 정보를 빠르고 효과적으로 계산할 수 있다. 또한, 상기 ECC 회로 블락(322)에서 상기 디코더 블락(329)이 차지하는 크기를 줄일 수 있게 된다.
도 4 내지 도 7을 참조하여 상기 디코더 블락(329)이 블락 코드(Block code) 디코더와 비터비 코드(Viterbi code) 디코더로 구현된 예를 설명하였으나, 상기 디코더 블락(329)은 컨캐이트네이티드 코드(concatenated code) 디코더로 구현될 수 있다.
도 8은 도 3에 도시된 제1 버퍼 메모리 블락에서의 동작을 설명하기 개략적인 블락도인다.
도 8을 참조하면, 상기 버퍼 메모리들 각각(BUFFER 1, BUFFER 2)은 상기 상응하는 메모리 장치들(211, 212)로부터 출력되는 리드 데이터를 수신하여 저장한다.
그런데, 도 4와 도 5를 참조하여 설명한 바와 같이, 상기 각각의 채널에서 오류가 발생한 경우 상기 각각의 버퍼 메모리들(BUFFER 1, BUFFER 2)은 상기 저장된 리드 데이터를 호스트로 출력하는 것을 멈추고, 상기 컨트롤러 블락(300)은 오류 정정 모드로 진입하게 된다.
상기 메모리 시스템(20)가 오류 정정 모드로 진입하게 되면, 도 5를 참조하여 설명한 바와 같이 상기 디코더 블락(329)은 상기 제1 메모리 장치(211)로부터 출력되는 제1 데이터에 대한 오류 정보를 계산하고, 상기 제1 데이터가 저장된 제1 버퍼 메모리(BUFFER 1)에 액세스하여 상기 오류 정보에 기초하여 오류를 정정하게 된다.
상기 제1 버퍼 메모리(BUFFER 1)가 상기 제1 데이터의 오류를 정정하여 상기 정정된 제1 데이터를 호스트로 출력하는 동안 상기 디코더 블락(329)은 제2 메모리 장치(212)으로부터 출력되는 제2 데이터에 대한 오류 정보를 계산하고, 상기 제2 데이터가 저장된 제2 버퍼 메모리(BUFFER 2)에 액세스하여 상기 오류 정보에 기초하여 제2 데이터에 대한 오류를 정정한다.
상기 오류가 정정된 제1 데이터가 호스트로의 전송이 완료되면, 연속하여 오 류가 정정된 상기 제2 데이터가 호스트로 전송되게 된다. 따라서, 상기 제1 버퍼 메모리 블락(330)은 상기 저장된 데이터를 출력시간의 지연 없이 연속적으로 상기 호스트로 출력할 수 있다.
결국, 본 발명에 따른 메모리 시스템은 데이터를 출력하는데 있어서의 지연 시간을 줄임으로써 빠른 데이터 출력을 할 수 있다.
또한, 상기 제1 버퍼 메모리 블락(330)에 구비되는 버퍼 메모리 컨트롤 블락(미도시)에 별도의 오류 정정 로직(380)을 구현하여, 제1 버퍼 메모리(BUFFER 1) 및 제2 버퍼 메모리(BUFFER 2)로부터 출력되는 데이터와 상기 출력 신호 선택 블락(DEMUX; 370)으로부터 출력되는 오류 정보에 기초하여 오류를 정정함으로써 상기 CPU(또는 DMA)가 상기 제1 버퍼 메모리 블락(330)에 직접 액세스하지 않고 오류를 수정할 수 있다. 상기 출력 신호 선택 블락(DEMUX; 370)은 오류 정정기(328)로부터 출력되는 오류 정보를 다수의 버퍼 메모리 블락들(330) 중에서 선택되는 버퍼 메모리 블락으로 출력할 수 있다.
상기 오류 정정 로직(360)은 배타적 논리합 회로(XOR) 또는 인버터 회로 등으로 구현될 수 있다.
또한, 상기 제1 버퍼 메모리 블락(330)은 제3 버퍼 메모리(미도시)를 구비하여, 상기 제1 버퍼 메모리(BUFFER 1)가 수정된 제1 데이터(#1)를 호스트로 전송하고, 상기 제2 버퍼 메모리(BUFFER 2)가 제2 데이터(#2)에 대한 오류를 수정하는 동안, 상기 제3 버퍼 메모리(미도시)는 상기 메모리 장치로부터 출력되는 제3 데이터(#3)를 저장할 수 있다.
결국, 본 발명에 따른 메모리 시스템(20)는 상기 메모리 블락(200)으로부터 출력되는 데이터를 처리하는데 있어서, 시간의 지연 없이 순차적으로 연속적인 데이터 전송이 가능하게 된다. 결국 상기 메모리 시스템(20)로부터 상기 호스트로의 전송 속도가 높아지는 효과가 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 ECC 회로 및 이를 구비하는 메모리 시스템에 의하면, 채널의 증가에 무관하게 하나의 디코더만을 사용함으로써,상기 ECC 회로의 크기를 줄일 수 있고, 결국 상기 메모리 시스템의 제조 비용의 증가를 방지할 수 있는 효과가 있다.
도 1은 일반적인 메모리 시스템의 개략적인 블락도이다.
도 2는 도 1에 도시된 ECC 회로의 개략적인 블락도이다.
도 3은 본 발명의 실시예에 따른 메모리 시스템의 개략적인 블락도이다.
도 4는 도 3에 도시된 ECC 회로의 일 실시예를 나나태는 블락도이다.
도 5는 도 4에 도시된 ECC 회로의 동작을 설명하기 위한 타이밍 도이다.
도 6은 도 3에 도시된 ECC 회로의 다른 실시예를 나타내는 블락도이다.
도 7은 도 6에 도시된 ECC 회로의 동작을 설명하기 위한 타이밍 도이다.
도 8은 도 3에 도시된 제1 버퍼 메모리 블락에서의 동작을 설명하기 블락도이다.
Claims (18)
- 제1 메모리 장치 및 제2 메모리 장치로부터 출력되는 데이터의 오류를 검사하여 정정하기 위한 ECC 회로에 있어서,상기 제1 메모리 장치로부터 제1 통신 채널을 통해 수신한 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 제1 오류 검출기;상기 제2 메모리 장치로부터 제2 통신 채널을 통해 수신한 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 제2 오류 검출기;상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 입력 선택 블락; 및상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 오류 정정기를 구비하는 ECC 회로.
- 제1항에 있어서,상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 신드롬 계산 블록을 구비하고,상기 오류 정정기는,상기 신드롬 데이터의 오류 방정식의 계수를 산출하는 KES(key equation solver)블락;상기 KES 블락의 계산 결과를 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 CS(chien searching) 블락; 및상기 CS 블락의 상기 미리 정해진 알고리즘의 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 산출하는 EE(error evaluator)블락을 구비하는 ECC 회로.
- 제1항에 있어서,상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 브랜치 매트릭스(branch metrics)를 계산하여 출력하는 BMC(Branch matics calculator) 블락을 구비하고,상기 오류 정정기는,상기 브랜치 매트릭스 계산 결과를 수신하고, 미리 저장된 상태 매트릭스 값을 더하여 새로운 상태 매트릭스 값을 산출하는 ACS(Add-Compare-Select) 블락;상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 상기 미리 저장된 상태 매트릭스 값을 업데이트하는 SMM(State Metrics Memory) 블락; 및상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 이용하여 서바이벌 패스를 산출하여 저장하는 SPM(Survivor Path Memory) 블락을 구비하는 ECC 회로.
- 삭제
- 제1 메모리 장치 및 제2 메모리 장치를 포함하는 메모리 블락; 및상기 제1 메모리 장치로부터 제1 데이터를 수신하기 위한 제1 통신 채널 및 상기 제2 메모리 장치로부터 제2 데이터를 수신하기 위한 제2 통신 채널을 포함하는 컨트롤러를 구비하며,상기 컨트롤러는,상기 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 제1 오류 검출기;상기 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 제2 오류 검출기;상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 입력 선택 블락; 및상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 오류 정정기를 구비하는 메모리 시스템.
- 제5항에 있어서,상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 신드롬 계산 블록을 구비하고,상기 오류 정정기는,상기 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 KES(key equation solver)블락;상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 CS(chien searching) 블락; 및상기 CS 블락의 상기 미리 정해진 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 EE(error evaluator)블락을 구비하는 메모리 시스템.
- 제5항에 있어서,상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 브랜치 매트릭스(branch metrics)를 계산하여 출력하는 BMC(Branch matics calculator) 블락을 구비하고,상기 오류 정정기는,상기 브랜치 매트릭스 계산 결과를 수신하고, 미리 저장된 상태 매트릭스 값을 더하여 새로운 상태 매트릭스 값을 산출하는 ACS(Add-Compare-Select) 블락;상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 상기 미리 저장된 상태 매트릭스 값을 업데이트하는 SMM(State Metrics Memory) 블락; 및상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 이용하여 서바이벌 패스를 산출하여 저장하는 SPM(Survivor Path Memory) 블락을 구비하는 메모리 시스템.
- 삭제
- 제5항에 있어서,상기 컨트롤러는,상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 출력되는 데이터를 일시 저장하기 위한 다수(2이상)의 버퍼 메모리들; 및상기 다수의 버퍼 메모리들에 액세스하여 상기 오류 정정기로부터 출력되는 오류 정보에 기초하여 상기 다수의 버퍼 메모리들에 저장된 데이터의 오류를 정정하는 오류 정정 로직을 더 구비하는 메모리 시스템.
- 제9항에 있어서,상기 컨트롤러는,상기 다수의 버퍼 메모리들 중에서 제1 버퍼 메모리로부터 오류가 정정된 데이터를 호스트로 출력하는 동안, 상기 다수의 버퍼 메모리들 중에서 제2 버퍼 메모리에 저장된 데이터의 오류를 정정하는 메모리 시스템.
- 제10항에 있어서,상기 컨트롤러는,상기 제2 버퍼 메모리가 저장된 데이터의 오류를 정정하는 동안, 상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 출력되는 데이터를 수신하여 제3 버퍼 메모리에 저장하는 메모리 시스템.
- 제9항에 있어서,상기 컨트롤러는,상기 오류 정정기로부터 출력되는 상기 오류 정보를 상기 다수의 버퍼 메모리들로 선택적으로 출력하는 출력 선택 회로를 더 구비하는 메모리 시스템.
- 제1 오류 검출기가 제1 메모리 장치로부터 제1 통신 채널을 통해 수신한 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 단계;제2 오류 검출기가 제2 메모리 장치로부터 제2 통신 채널을 통해 수신한 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 단계;입력 선택 회로가 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 단계; 및오류 정정기가 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 단계를 구비하는 오류 정정 방법.
- 제13항에 있어서,상기 제1 오류 검출 정보를 생성하는 단계 또는 상기 제2 오류 검출 정보를 생성하는 단계는다수의 신드롬 계산 블락들 각각이 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 단계를 구비하고,상기 오류 정보를 계산하는 단계는,KES(Key equation solver) 블락이 상기 제1 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구하는 단계;CS(Chien searching) 블락이 상기 제1 데이터에 대하여 구해진 오류 방정식의 계수를 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 동안, 상기 KES 블락이 상기 제2 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구하는 단계; 및EE(Error Evaluator) 블락이 상기 제1 데이터에 대한 상기 미리 정해진 알고리즘 수행 결과를 수신하여 상기 제1 데이터의 오류 위치를 구하는 동안 CS 블락이 상기 제2 데이터에 대한 상기 미리 정해진 알고리즘을 수행하는 단계를 구비하는 오류 정정 방법.
- 삭제
- 제13항에 있어서,상기 오류 정정 방법은,오류 정정 로직이 상기 오류 정정기로부터 출력되는 상기 오류 정보에 기초하여 리드된 데이터가 저장된 버퍼 메모리에 액세스하여 저장된 데이터의 오류를 정정하는 단계를 더 구비하는 오류 정정 방법.
- 제16항에 있어서,상기 오류 정정 방법은,제1 버퍼 메모리가 상기 제1 데이터를 수신하는 단계;상기 제1 버퍼 메모리가 상기 수신된 데이터의 오류를 정정하는 동안 제2 버퍼 메모리가 상기 제2 데이터를 수신하는 단계; 및상기 제1 버퍼 메모리가 상기 정정된 데이터를 호스트로 출력하는 동안 상기 제2 버퍼 메모리는 수신된 제2 데이터의 오류 정보를 수정하고, 제3 버퍼 메모리는 상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 수신되는 제3 데이터를 수신하는 단계를 더 구비하는 오류 정정 방법.
- 제16항에 있어서,상기 오류 정정 방법은,상기 오류 정정 로직이 상기 버퍼 메모리로부터 출력되는 데이터와 상기 오류 정정기로부터 출력되는 상기 오류 정보에 기초하여 수신된 데이터의 오류를 정정하여 출력하는 단계를 더 구비하는 오류 정정 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070086515A KR101466694B1 (ko) | 2007-08-28 | 2007-08-28 | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 |
US12/198,992 US8713417B2 (en) | 2007-08-28 | 2008-08-27 | Multi-channel memory system including error correction decoder architecture with efficient area utilization |
TW097132986A TWI456388B (zh) | 2007-08-28 | 2008-08-28 | 包含具有效區域利用之錯誤修正解碼器的多通道記憶體系統 |
JP2008219946A JP5424596B2 (ja) | 2007-08-28 | 2008-08-28 | 面積効率が高いエラー訂正デコーダ構造を含むマルチチャンネルメモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070086515A KR101466694B1 (ko) | 2007-08-28 | 2007-08-28 | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090021743A KR20090021743A (ko) | 2009-03-04 |
KR101466694B1 true KR101466694B1 (ko) | 2014-11-28 |
Family
ID=40409400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070086515A KR101466694B1 (ko) | 2007-08-28 | 2007-08-28 | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8713417B2 (ko) |
JP (1) | JP5424596B2 (ko) |
KR (1) | KR101466694B1 (ko) |
TW (1) | TWI456388B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102669845B1 (ko) | 2023-11-16 | 2024-05-28 | 주식회사 에이피랩스 | SoC 버스 오류 검출과 메모리 오류 정정 장치 및 방법 |
Families Citing this family (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8370603B2 (en) * | 2008-12-23 | 2013-02-05 | Apple Inc. | Architecture for address mapping of managed non-volatile memory |
US20100251076A1 (en) * | 2009-03-27 | 2010-09-30 | Chao-Yi Wu | Storage controller having soft decoder included therein, related storage control method thereof and system using the same |
US8595572B2 (en) | 2009-04-08 | 2013-11-26 | Google Inc. | Data storage device with metadata command |
US8639871B2 (en) | 2009-04-08 | 2014-01-28 | Google Inc. | Partitioning a flash memory data storage device |
US8438453B2 (en) * | 2009-05-06 | 2013-05-07 | Apple Inc. | Low latency read operation for managed non-volatile memory |
US8321647B2 (en) | 2009-05-06 | 2012-11-27 | Apple Inc. | Multipage preparation commands for non-volatile memory systems |
US8495332B2 (en) * | 2009-07-24 | 2013-07-23 | Apple Inc. | Controller for optimizing throughput of read operations |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) * | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8489907B2 (en) | 2009-09-16 | 2013-07-16 | Apple Inc. | Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller |
US8838877B2 (en) * | 2009-09-16 | 2014-09-16 | Apple Inc. | File system derived metadata for management of non-volatile memory |
US8413015B2 (en) * | 2009-09-21 | 2013-04-02 | Sandisk Technologies Inc. | Nonvolatile memory controller with scalable pipelined error correction |
KR101157516B1 (ko) * | 2010-05-04 | 2012-06-21 | (주)희스테크 | 데이터 처리 효율을 향상시킨 bch 코덱 |
JP2012155541A (ja) * | 2011-01-26 | 2012-08-16 | Toshiba Corp | データ記憶装置、メモリ制御装置及びメモリ制御方法 |
KR101800445B1 (ko) | 2011-05-09 | 2017-12-21 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
KR101892251B1 (ko) | 2011-05-09 | 2018-08-29 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
JP2013137708A (ja) * | 2011-12-28 | 2013-07-11 | Toshiba Corp | メモリコントローラ、データ記憶装置およびメモリ制御方法 |
KR101990971B1 (ko) | 2012-01-30 | 2019-06-19 | 삼성전자 주식회사 | 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법 |
US20140122973A1 (en) * | 2012-03-12 | 2014-05-01 | Ravi H. Motwani | Distributed codeword portions |
US9043669B1 (en) * | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
US9418700B2 (en) * | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
CN102930902A (zh) * | 2012-07-27 | 2013-02-13 | 北京航空航天大学 | 一种同时纠正固定错误与随机错误的纠错编码算法 |
US8954817B2 (en) | 2012-07-31 | 2015-02-10 | Kabushiki Kaisha Toshiba | Storage apparatus and controller |
TWI486963B (zh) | 2012-11-08 | 2015-06-01 | Jmicron Technology Corp | 錯誤檢查及校正方法以及錯誤檢查及校正電路 |
CN103824598B (zh) * | 2012-11-19 | 2017-02-22 | 联芸科技(杭州)有限公司 | 错误检查及校正方法以及错误检查及校正电路 |
KR101997794B1 (ko) | 2012-12-11 | 2019-07-09 | 삼성전자주식회사 | 메모리 제어기 및 그것을 포함한 메모리 시스템 |
CN109065096A (zh) | 2012-12-21 | 2018-12-21 | 慧与发展有限责任合伙企业 | 具有错误校正逻辑的存储模块 |
US9043674B2 (en) * | 2012-12-26 | 2015-05-26 | Intel Corporation | Error detection and correction apparatus and method |
US9280412B2 (en) * | 2013-03-12 | 2016-03-08 | Macronix International Co., Ltd. | Memory with error correction configured to prevent overcorrection |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9128834B2 (en) * | 2013-09-24 | 2015-09-08 | International Business Machines Corporation | Implementing memory module communications with a host processor in multiported memory configurations |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US11755255B2 (en) | 2014-10-28 | 2023-09-12 | SK Hynix Inc. | Memory device comprising a plurality of memories sharing a resistance for impedance matching |
US10067903B2 (en) | 2015-07-30 | 2018-09-04 | SK Hynix Inc. | Semiconductor device |
KR102358177B1 (ko) | 2015-12-24 | 2022-02-07 | 에스케이하이닉스 주식회사 | 제어회로 및 제어회로를 포함하는 메모리 장치 |
US9754684B2 (en) * | 2014-11-06 | 2017-09-05 | Samsung Electronics Co., Ltd. | Completely utilizing hamming distance for SECDED based ECC DIMMs |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10908995B2 (en) | 2017-09-29 | 2021-02-02 | Nvidia Corporation | Securing against errors in an error correcting code (ECC) implemented in an automotive system |
DE102018123761A1 (de) * | 2017-09-29 | 2019-04-04 | Nvidia Corporation | Sicherung gegen fehler in einem fehlerkorrekturcode (ecc), der in einem kraftfahrzeugsystem implementiert ist |
US10886947B2 (en) | 2018-12-20 | 2021-01-05 | Toshiba Memory Corporation | Efficient decoding of n-dimensional error correction codes |
US10908996B2 (en) | 2019-02-22 | 2021-02-02 | Intel Corporation | Distribution of a codeword across individual storage units to reduce the bit error rate |
US11237902B2 (en) * | 2019-03-15 | 2022-02-01 | Innogrit Technologies Co., Ltd. | Systems and methods for an ECC architecture with memory mapping |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970050872A (ko) * | 1995-12-31 | 1997-07-29 | 구자홍 | 오류정정 장치 |
JPH10154940A (ja) * | 1996-11-22 | 1998-06-09 | Asahi Kasei Micro Syst Kk | リード・ソロモン符号の復号回路 |
JP2004524636A (ja) | 2001-04-24 | 2004-08-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビット変更を可能にする、フラッシュメモリにおける使用のための、改良されたエラー修正方式 |
JP2006244259A (ja) * | 2005-03-04 | 2006-09-14 | Tokyo Institute Of Technology | 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2439433A1 (fr) * | 1978-10-19 | 1980-05-16 | Cii Honeywell Bull | Systeme de lecture de caracteres |
JPS5845613A (ja) * | 1981-09-11 | 1983-03-16 | Hitachi Ltd | Pcmレコ−ダ |
US4689792A (en) * | 1985-09-03 | 1987-08-25 | Texas Instruments Incorporated | Self test semiconductor memory with error correction capability |
EP0329789B1 (en) * | 1987-06-30 | 1995-02-08 | Matsushita Electric Industrial Co., Ltd. | Galois field arithmetic unit |
JP3782840B2 (ja) * | 1995-07-14 | 2006-06-07 | 株式会社ルネサステクノロジ | 外部記憶装置およびそのメモリアクセス制御方法 |
US6024486A (en) * | 1996-06-05 | 2000-02-15 | Compaq Computer Corporation | Data error detection and correction |
WO2000079405A1 (fr) * | 1999-06-21 | 2000-12-28 | Hitachi, Ltd. | Processeur de donnees |
US6708248B1 (en) * | 1999-07-23 | 2004-03-16 | Rambus Inc. | Memory system with channel multiplexing of multiple memory devices |
JP3590310B2 (ja) * | 1999-12-07 | 2004-11-17 | シャープ株式会社 | 連接畳込み符号復号器 |
US6999521B1 (en) * | 1999-12-23 | 2006-02-14 | Lucent Technologies Inc. | Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques |
US6735725B1 (en) * | 2000-09-29 | 2004-05-11 | Nortel Networks Limited | Method and apparatus for performance management of a multiplexed transmission system |
EP1202148A1 (en) * | 2000-10-31 | 2002-05-02 | Hewlett-Packard Company, A Delaware Corporation | Virus check on altered data |
US6493836B2 (en) * | 2000-11-30 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus for scheduling and using memory calibrations to reduce memory errors in high speed memory devices |
US6631494B2 (en) * | 2000-12-07 | 2003-10-07 | Maxtor Corporation | Ameliorating the adverse impact of burst errors on the operation of ISI detectors |
US6920600B2 (en) * | 2002-01-23 | 2005-07-19 | Thomson Licensing S.A. | Dual chien search blocks in an error-correcting decoder |
US7418730B2 (en) * | 2002-12-17 | 2008-08-26 | International Business Machines Corporation | Automatic client responses to worm or hacker attacks |
US7293201B2 (en) * | 2003-01-17 | 2007-11-06 | Microsoft Corporation | System and method for active diagnosis and self healing of software systems |
US7865809B1 (en) * | 2004-03-11 | 2011-01-04 | Super Talent Electronics, Inc. | Data error detection and correction in non-volatile memory devices |
KR100594241B1 (ko) * | 2004-01-29 | 2006-06-30 | 삼성전자주식회사 | 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로 |
KR100609038B1 (ko) * | 2004-05-06 | 2006-08-09 | 주식회사 하이닉스반도체 | 직렬 입/출력 인터페이스를 가진 멀티-포트 메모리 소자 |
JP2006224259A (ja) | 2005-02-18 | 2006-08-31 | Sodick Co Ltd | ワイヤガイドアッセンブリおよびワイヤカット放電加工装置 |
US7681004B2 (en) * | 2005-06-13 | 2010-03-16 | Addmm, Llc | Advanced dynamic disk memory module |
US7430701B2 (en) * | 2005-06-16 | 2008-09-30 | Mediatek Incorporation | Methods and systems for generating error correction codes |
KR20080054412A (ko) * | 2005-09-27 | 2008-06-17 | 엔엑스피 비 브이 | 에러 검출/보정 회로 및 방법과, 전자 메모리 소자 또는메모리 모듈 |
KR100721582B1 (ko) * | 2005-09-29 | 2007-05-23 | 주식회사 하이닉스반도체 | 직렬 입/출력 인터페이스를 가진 멀티 포트 메모리 소자 |
US7568135B2 (en) * | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
US8042027B1 (en) * | 2007-01-16 | 2011-10-18 | Marvell International Ltd. | BM/LLR computation for multi-dimensional TCM/BCM |
KR100921748B1 (ko) * | 2007-06-04 | 2009-10-15 | 삼성전자주식회사 | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 |
US7584308B2 (en) * | 2007-08-31 | 2009-09-01 | International Business Machines Corporation | System for supporting partial cache line write operations to a memory module to reduce write data traffic on a memory channel |
US8086936B2 (en) * | 2007-08-31 | 2011-12-27 | International Business Machines Corporation | Performing error correction at a memory device level that is transparent to a memory channel |
KR101437517B1 (ko) * | 2007-10-23 | 2014-09-05 | 삼성전자주식회사 | 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 |
-
2007
- 2007-08-28 KR KR1020070086515A patent/KR101466694B1/ko active IP Right Grant
-
2008
- 2008-08-27 US US12/198,992 patent/US8713417B2/en active Active
- 2008-08-28 JP JP2008219946A patent/JP5424596B2/ja active Active
- 2008-08-28 TW TW097132986A patent/TWI456388B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970050872A (ko) * | 1995-12-31 | 1997-07-29 | 구자홍 | 오류정정 장치 |
JPH10154940A (ja) * | 1996-11-22 | 1998-06-09 | Asahi Kasei Micro Syst Kk | リード・ソロモン符号の復号回路 |
JP2004524636A (ja) | 2001-04-24 | 2004-08-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ビット変更を可能にする、フラッシュメモリにおける使用のための、改良されたエラー修正方式 |
JP2006244259A (ja) * | 2005-03-04 | 2006-09-14 | Tokyo Institute Of Technology | 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102669845B1 (ko) | 2023-11-16 | 2024-05-28 | 주식회사 에이피랩스 | SoC 버스 오류 검출과 메모리 오류 정정 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US8713417B2 (en) | 2014-04-29 |
JP2009054159A (ja) | 2009-03-12 |
JP5424596B2 (ja) | 2014-02-26 |
KR20090021743A (ko) | 2009-03-04 |
TW200910087A (en) | 2009-03-01 |
US20090063934A1 (en) | 2009-03-05 |
TWI456388B (zh) | 2014-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101466694B1 (ko) | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 | |
KR100921748B1 (ko) | Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법 | |
US6639865B2 (en) | Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device | |
KR101437517B1 (ko) | 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 | |
JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
US8479085B2 (en) | Memory system with error correction decoder architecture having reduced latency and increased throughput | |
US9037941B2 (en) | Systems and methods for error checking and correcting for memory module | |
US6976194B2 (en) | Memory/Transmission medium failure handling controller and method | |
US10498362B2 (en) | Low power error correcting code (ECC) system | |
US20120144261A1 (en) | Error checking and correcting circuit, memory system compising error checking and correcting circuit, and related methods of operation | |
US7984363B2 (en) | Integrated circuit device including a circuit to generate error correction code for correcting error bit for each of memory circuits | |
KR20080112252A (ko) | 에러 보정 디바이스 및 그 방법 | |
WO2023221342A1 (zh) | Ddr双列直插式存储模块、存储***及其操作方法 | |
US20080163036A1 (en) | Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device | |
KR101747794B1 (ko) | 에러 정정 디코더 및 그것의 에러 정정 방법 | |
US8370699B2 (en) | Semiconductor memory apparatus for reducing bus traffic between NAND flash memory device and controller | |
US7075851B2 (en) | Semiconductor memory device inputting/outputting data and parity data in burst operation | |
JP2011257966A (ja) | キャッシュ装置及び情報処理装置 | |
KR20140018095A (ko) | 에러 검출 정정 회로 및 메모리 장치 | |
JP2023032878A (ja) | 半導体記憶装置 | |
JP7178465B1 (ja) | 半導体記憶装置 | |
US11088711B2 (en) | Memory apparatus and data accessing method thereof | |
US20240103967A1 (en) | Memory Decoder Providing Optimized Error Detection and Correction for Data Distributed Across Memory Channels | |
KR20140039980A (ko) | 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 | |
US20150303945A1 (en) | Chien search device, storage device, and chien search method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181031 Year of fee payment: 5 |