KR101466694B1 - Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 - Google Patents

Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 Download PDF

Info

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
Application number
KR1020070086515A
Other languages
English (en)
Other versions
KR20090021743A (ko
Inventor
조남필
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070086515A priority Critical patent/KR101466694B1/ko
Priority to US12/198,992 priority patent/US8713417B2/en
Priority to TW097132986A priority patent/TWI456388B/zh
Priority to JP2008219946A priority patent/JP5424596B2/ja
Publication of KR20090021743A publication Critical patent/KR20090021743A/ko
Application granted granted Critical
Publication of KR101466694B1 publication Critical patent/KR101466694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response 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 circuit, and storage device having the same, and method there-of}
본 발명은 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. 제1 메모리 장치 및 제2 메모리 장치로부터 출력되는 데이터의 오류를 검사하여 정정하기 위한 ECC 회로에 있어서,
    상기 제1 메모리 장치로부터 제1 통신 채널을 통해 수신한 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 제1 오류 검출기;
    상기 제2 메모리 장치로부터 제2 통신 채널을 통해 수신한 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 제2 오류 검출기;
    상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 입력 선택 블락; 및
    상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 오류 정정기를 구비하는 ECC 회로.
  2. 제1항에 있어서,
    상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 신드롬 계산 블록을 구비하고,
    상기 오류 정정기는,
    상기 신드롬 데이터의 오류 방정식의 계수를 산출하는 KES(key equation solver)블락;
    상기 KES 블락의 계산 결과를 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 CS(chien searching) 블락; 및
    상기 CS 블락의 상기 미리 정해진 알고리즘의 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 산출하는 EE(error evaluator)블락을 구비하는 ECC 회로.
  3. 제1항에 있어서,
    상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 브랜치 매트릭스(branch metrics)를 계산하여 출력하는 BMC(Branch matics calculator) 블락을 구비하고,
    상기 오류 정정기는,
    상기 브랜치 매트릭스 계산 결과를 수신하고, 미리 저장된 상태 매트릭스 값을 더하여 새로운 상태 매트릭스 값을 산출하는 ACS(Add-Compare-Select) 블락;
    상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 상기 미리 저장된 상태 매트릭스 값을 업데이트하는 SMM(State Metrics Memory) 블락; 및
    상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 이용하여 서바이벌 패스를 산출하여 저장하는 SPM(Survivor Path Memory) 블락을 구비하는 ECC 회로.
  4. 삭제
  5. 제1 메모리 장치 및 제2 메모리 장치를 포함하는 메모리 블락; 및
    상기 제1 메모리 장치로부터 제1 데이터를 수신하기 위한 제1 통신 채널 및 상기 제2 메모리 장치로부터 제2 데이터를 수신하기 위한 제2 통신 채널을 포함하는 컨트롤러를 구비하며,
    상기 컨트롤러는,
    상기 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 제1 오류 검출기;
    상기 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 제2 오류 검출기;
    상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 입력 선택 블락; 및
    상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 오류 정정기를 구비하는 메모리 시스템.
  6. 제5항에 있어서,
    상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 신드롬 계산 블록을 구비하고,
    상기 오류 정정기는,
    상기 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 KES(key equation solver)블락;
    상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 CS(chien searching) 블락; 및
    상기 CS 블락의 상기 미리 정해진 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 EE(error evaluator)블락을 구비하는 메모리 시스템.
  7. 제5항에 있어서,
    상기 제1 오류 검출기 및 상기 제2 오류 검출기 각각은 대응하는 메모리 장치로부터 출력되는 데이터의 브랜치 매트릭스(branch metrics)를 계산하여 출력하는 BMC(Branch matics calculator) 블락을 구비하고,
    상기 오류 정정기는,
    상기 브랜치 매트릭스 계산 결과를 수신하고, 미리 저장된 상태 매트릭스 값을 더하여 새로운 상태 매트릭스 값을 산출하는 ACS(Add-Compare-Select) 블락;
    상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 상기 미리 저장된 상태 매트릭스 값을 업데이트하는 SMM(State Metrics Memory) 블락; 및
    상기 ACS 블락으로부터 출력되는 새로운 상태 매트릭스 값을 이용하여 서바이벌 패스를 산출하여 저장하는 SPM(Survivor Path Memory) 블락을 구비하는 메모리 시스템.
  8. 삭제
  9. 제5항에 있어서,
    상기 컨트롤러는,
    상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 출력되는 데이터를 일시 저장하기 위한 다수(2이상)의 버퍼 메모리들; 및
    상기 다수의 버퍼 메모리들에 액세스하여 상기 오류 정정기로부터 출력되는 오류 정보에 기초하여 상기 다수의 버퍼 메모리들에 저장된 데이터의 오류를 정정하는 오류 정정 로직을 더 구비하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 컨트롤러는,
    상기 다수의 버퍼 메모리들 중에서 제1 버퍼 메모리로부터 오류가 정정된 데이터를 호스트로 출력하는 동안, 상기 다수의 버퍼 메모리들 중에서 제2 버퍼 메모리에 저장된 데이터의 오류를 정정하는 메모리 시스템.
  11. 제10항에 있어서,
    상기 컨트롤러는,
    상기 제2 버퍼 메모리가 저장된 데이터의 오류를 정정하는 동안, 상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 출력되는 데이터를 수신하여 제3 버퍼 메모리에 저장하는 메모리 시스템.
  12. 제9항에 있어서,
    상기 컨트롤러는,
    상기 오류 정정기로부터 출력되는 상기 오류 정보를 상기 다수의 버퍼 메모리들로 선택적으로 출력하는 출력 선택 회로를 더 구비하는 메모리 시스템.
  13. 제1 오류 검출기가 제1 메모리 장치로부터 제1 통신 채널을 통해 수신한 제1 데이터의 오류 발생 여부를 판단하기 위한 제1 오류 검출 정보를 생성하는 단계;
    제2 오류 검출기가 제2 메모리 장치로부터 제2 통신 채널을 통해 수신한 제2 데이터의 오류 발생 여부를 판단하기 위한 제2 오류 검출 정보를 생성하는 단계;
    입력 선택 회로가 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 수신하고, 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 출력하는 단계; 및
    오류 정정기가 상기 제1 오류 검출 정보 및 상기 제2 오류 검출 정보를 순차적으로 수신하여 상기 제1 데이터 및 상기 제2 데이터의 오류 정보를 계산하는 단계를 구비하는 오류 정정 방법.
  14. 제13항에 있어서,
    상기 제1 오류 검출 정보를 생성하는 단계 또는 상기 제2 오류 검출 정보를 생성하는 단계는
    다수의 신드롬 계산 블락들 각각이 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 나타내는 신드롬 데이터를 계산하여 출력하는 단계를 구비하고,
    상기 오류 정보를 계산하는 단계는,
    KES(Key equation solver) 블락이 상기 제1 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구하는 단계;
    CS(Chien searching) 블락이 상기 제1 데이터에 대하여 구해진 오류 방정식의 계수를 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 동안, 상기 KES 블락이 상기 제2 데이터에 대한 신드롬 데이터의 오류 방정식의 계수를 구하는 단계; 및
    EE(Error Evaluator) 블락이 상기 제1 데이터에 대한 상기 미리 정해진 알고리즘 수행 결과를 수신하여 상기 제1 데이터의 오류 위치를 구하는 동안 CS 블락이 상기 제2 데이터에 대한 상기 미리 정해진 알고리즘을 수행하는 단계를 구비하는 오류 정정 방법.
  15. 삭제
  16. 제13항에 있어서,
    상기 오류 정정 방법은,
    오류 정정 로직이 상기 오류 정정기로부터 출력되는 상기 오류 정보에 기초하여 리드된 데이터가 저장된 버퍼 메모리에 액세스하여 저장된 데이터의 오류를 정정하는 단계를 더 구비하는 오류 정정 방법.
  17. 제16항에 있어서,
    상기 오류 정정 방법은,
    제1 버퍼 메모리가 상기 제1 데이터를 수신하는 단계;
    상기 제1 버퍼 메모리가 상기 수신된 데이터의 오류를 정정하는 동안 제2 버퍼 메모리가 상기 제2 데이터를 수신하는 단계; 및
    상기 제1 버퍼 메모리가 상기 정정된 데이터를 호스트로 출력하는 동안 상기 제2 버퍼 메모리는 수신된 제2 데이터의 오류 정보를 수정하고, 제3 버퍼 메모리는 상기 제1 메모리 장치 또는 상기 제2 메모리 장치로부터 수신되는 제3 데이터를 수신하는 단계를 더 구비하는 오류 정정 방법.
  18. 제16항에 있어서,
    상기 오류 정정 방법은,
    상기 오류 정정 로직이 상기 버퍼 메모리로부터 출력되는 데이터와 상기 오류 정정기로부터 출력되는 상기 오류 정보에 기초하여 수신된 데이터의 오류를 정정하여 출력하는 단계를 더 구비하는 오류 정정 방법.
KR1020070086515A 2007-08-28 2007-08-28 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 KR101466694B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102669845B1 (ko) 2023-11-16 2024-05-28 주식회사 에이피랩스 SoC 버스 오류 검출과 메모리 오류 정정 장치 및 방법

Families Citing this family (65)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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