KR101437517B1 - 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 - Google Patents

인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 Download PDF

Info

Publication number
KR101437517B1
KR101437517B1 KR1020070106828A KR20070106828A KR101437517B1 KR 101437517 B1 KR101437517 B1 KR 101437517B1 KR 1020070106828 A KR1020070106828 A KR 1020070106828A KR 20070106828 A KR20070106828 A KR 20070106828A KR 101437517 B1 KR101437517 B1 KR 101437517B1
Authority
KR
South Korea
Prior art keywords
data
memory devices
memory
block
controller
Prior art date
Application number
KR1020070106828A
Other languages
English (en)
Other versions
KR20090041231A (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 KR1020070106828A priority Critical patent/KR101437517B1/ko
Priority to TW097140672A priority patent/TWI494923B/zh
Priority to US12/256,784 priority patent/US8667365B2/en
Publication of KR20090041231A publication Critical patent/KR20090041231A/ko
Application granted granted Critical
Publication of KR101437517B1 publication Critical patent/KR101437517B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol

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

인터리빙 기법을 적용한 메모리 시스템, 및 그 방법이 개시된다. 상기 메모리 시스템은 다수의 메모리 장치들; 상기 다수의 메모리 장치들을 제어하는 컨트롤러; 및 상기 다수의 메모리 장치들과 상기 컨트롤러 사이에 접속되는 적어도 하나의 채널을 구비하며, 상기 적어도 하나의 채널은 상기 다수의 메모리 장치들 각각에 공통으로 접속되는 입출력 데이터 라인들과 제어 신호 라인들; 및 상기 다수의 메모리 장치 수에 상응하여 구비되고, 상기 다수의 메모리 장치들 각각을 독립적으로 인에이블 시키기 위한 칩 인에이블 신호 라인들을 구비하며, 상기 컨트롤러는 상기 다수의 메모리 장치들 중 하나로 독출 또는 프로그램 명령을 인가하고, 상기 다수의 메모리 장치들 중 하나가 상기 독출 또는 프로그램 명령에 응답하여 내부적인 독출 또는 프로그램 동작을 수행하는 동안, 상기 다수의 메모리 장치들 중 다른 하나로부터 데이터를 출력하거나, 상기 다수의 메모리 장치들 중 다른 하나로 데이터를 입력한다.
메모리 시스템, 플래시 카드, 메모리 카드

Description

인터리빙 기법을 이용한 메모리 시스템, 및 그 방법{Memory system using the interleaving scheme and method having the same}
본 발명은 데이터 인터리빙 기법을 사용하는 메모리 시스템 및 그 구동 방법에 관한 것으로 보다 상세하게는, 상기 메모리 시스템의 데이터 전송 능력을 향상 시킬 수 있는 메모리 시스템 및 그 구동 방법에 관한 것이다.
일반적인 메모리 시스템은 컨트롤러와 메모리 장치들을 구비한다. 상기 컨트롤러는 상기 메모리 장치들로부터 출력되는 데이터를 저장하는 버퍼 메모리를 포함한다.
상기 메모리 장치들 각각은 메모리 셀 어레이와 상기 메모리 셀 어레이로부터 페이지 단위로 출력되는 데이터를 저장하기 위한 페이지 메모리를 포함한다.
그런데, 데이터 전송 시간의 관점에서, 상기 메모리 셀 어레이로부터 상기 페이지 메모리로 출력되는 데이터의 전송 시간은 상기 페이지 메모리로부터 상기 컨트롤러에 구비되는 버퍼 메모리로의 전송 시간에 비하여 매우 많은 시간이 소요된다.
결국, 상기 메모리 셀과 상기 페이지 버퍼 간의 데이터의 전송 시간은 상기 메모리 시스템의 전송 능력을 나타내는 중요한 요소이다.
도 1은 메모리 용량의 증가에 따른 메모리 셀로부터 페이지 버퍼로의 전송 시간을 도시한 그래프이다. 도 1에 도시된 바와 같이, 기술의 발달로 메모리 장치의 용량은 증가하고, 그에 상응하여 상기 메모리 셀로부터 페이지 버퍼 사이의 데이터 전송 시간, 즉 메모리 셀로부터 페이지 버퍼로 데이터를 독출하는데 걸리는 시간도 증가함을 볼 수 있다.
특히, 하나의 메모리 셀에 다수의 데이터 비트를 저장하는 MLC(Multi Level Cell)로 구현된 메모리 장치에서의 메모리 셀로부터 페이지 버퍼로의 데이터 전송 시간은 하나의 메모리 셀에 하나의 데이터 비트만을 저장하는 SLC(Single Level Cell)에 비하여 매우 긴 시간이 소요된다. 이는 메모리로부터 데이터를 리드하는 경우에 SLC 메모리 셀에 비하여 MLC 메모리 셀에 저장된 데이터의 레벨을 판독하는 횟수가 더 증가하여 긴 시간이 소요되기 때문이다.
예컨대, 16Gbyte MLC 메모리 장치는 16Gbyte SLC 메모리 장치에 비하여 데이터 리드 시 약 3배의 데이터 전송 시간이 소요됨을 볼 수 있다. 또한, 상기 MLC 메모리 장치에서는 메모리 용량이 증가할수록 상기 메모리 셀로부터 상기 페이지 버퍼로의 데이터 전송 시간이 급격히 증가함을 볼 수 있다.
또한, 별도로 도시되지는 않았지만, 페이지 버퍼로부터 메모리 셀로 데이터를 프로그램하는 시간 역시 SLC 메모리 장치에 비하여 MLC 메모리 장치가 더 길며, 메모리 장치의 용량의 증가와 함께 증가되는 경향이 있다.
결국, 이러한 상기 메모리 셀과 상기 페이지 버퍼 사이의 데이터 전송 시간 의 지연은 상기 메모리 시스템의 전체적인 데이터 전송 능력을 떨어뜨리는 원인이 된다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 상기 메모리 시스템에서 상기 메모리 셀 어레이와 페이지 버퍼 간에 많이 소요되는 전송 시간 동안 타 메모리 장치를 액세스함으로써 상기 메모리 시스템의 데이터 전송 능력을 향상 시킬 수 있는 메모리 시스템, 및 그 방법을 제공하는 것이다.
본 발명에 따른 메모리 시스템은 다수의 메모리 장치들; 상기 다수의 메모리 장치들을 제어하는 컨트롤러; 및 상기 다수의 메모리 장치들과 상기 컨트롤러 사이에 접속되는 적어도 하나의 채널을 구비하며, 상기 적어도 하나의 채널은 상기 다수의 메모리 장치들 각각에 공통으로 접속되는 입출력 데이터 라인들과 제어 신호 라인들; 및 상기 다수의 메모리 장치 수에 상응하여 구비되고, 상기 다수의 메모리 장치들 각각을 독립적으로 인에이블 시키기 위한 칩 인에이블 신호 라인들을 구비하며, 상기 컨트롤러는 상기 다수의 메모리 장치들 중 하나로 독출/ 프로그램 명령을 인가하고, 상기 다수의 메모리 장치들 중 하나가 상기 독출/프로그램 명령에 응답하여 내부적인 독출/프로그램 동작을 수행하는 동안, 상기 다수의 메모리 장치들 중 다른 하나로부터 데이터를 출력하거나, 상기 다수의 메모리 장치들 중 다른 하나로 데이터를 입력한다.
상기 다수의 메모리 장치들 각각은 하나의 메모리 셀에 복수의 데이터 비트를 저장하는 MLC(Multi Level Cell) 메모리 어레이로 구현된다.
상기 컨트롤러는 상기 적어도 하나의 채널을 통하여 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 검출하고 정정하기 위한 적어도 하나의 ECC 회로 블락을 구비한다.
상기 ECC 회로 블락은 호스트로부터 입력되는 데이터를 인코딩하여 인코딩된 데이터를 상기 메모리 장치들로 출력하기 위한 ECC 인코딩 블락, 및 ECC 디코딩 블락을 구비하며, 상기 ECC 디코딩 블락은 각각이 상기 복수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 신드롬을 계산하는 복수의 신드롬 계산 블락(SC block); 수신된 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 KES(key equation solver)블락; 상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 'chien search' 알고리즘을 수행하는 CS(chien searching) 블락; 및 상기 'chien search' 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 'error evaluate'를 수행하는 EE(error evaluator)블락을 구비한다.
상기 KES(key equation solver)블락, CS(chien searching) 블락, 및 상기 EE(error evaluator) 블락은 파이프 라인 모드로 동작한다.
상기 복수의 메모리 장치들 각각은 메모리 셀 어레이; 및 상기 메모리 셀 어레이로부터 리드되는 데이터 또는 상기 메모리 셀 어레이로 프로그램되는 데이터를 저장하기 위한 페이지 버퍼를 구비한다.
본 발명에 따른 메모리 시스템의 인터리빙 구동 방법은, (a) 컨트롤러가 다수의 메모리 장치들 중 하나로 독출/프로그램 명령을 인가하는 단계; (b) 상기 메 모리 장치들 중 하나가 상기 독출/프로그램 명령에 응답하여 내부적인 독출 동작을 수행하는 단계; 및 (c) 상기 메모리 장치들 중 하나가 내부적인 독출/프로그램 동작을 수행하는 동안 컨트롤러가 상기 메모리 장치들 중 다른 하나로부터 데이터를 출력하거나, 상기 메모리 장치들 중 다른 하나로 데이터를 입력하는 단계를 구비한다.
상기 (a) 단계는 메모리 셀 어레이에 저장된 데이터가 페이지 버퍼로 출력되거나, 상기 페이지 버퍼에 저장된 라이트할 데이터가 상기 메모리 셀 어레이로 프로그램되는 단계이다.
상기 다수의 메모리 장치들은 하나의 메모리 셀에 복수의 데이터 비트를 저장하는 MLC(Multi Level Cell) 메모리 어레이로 구현된다.
상기 메모리 시스템의 인터리빙 구동 방법은 ECC 회로 블락이 상기 적어도 하나의 채널을 통하여 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 정보를 검출하기 위한 단계를 더 구비한다.
상기 오류 정보를 검출하기 위한 단계는 복수의 신드롬 계산 블락 각각이 상기 복수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 신드롬을 계산하는 단계; KES 블락이 수신된 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 단계; CS 블락이 상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 'chien search' 알고리즘을 수행하는 단계; 및 EE 블락이 상기 'chien search' 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 단계를 구 비한다.
상기 오류 정보를 검출하기 위한 단계는 상기 KES 블락, 상기 CS 블락, 및 상기 EE 블락이 파이프 라인 모드로 동작한다.
본 발명에 따른 메모리 시스템은 칩인에이블 신호를 통한 독립적인 액세스 동작을 통한 인터리빙 기법을 사용함으로써, 대기 시간을 줄여 연속적인 데이터 독출/프로그램 동작을 수행함으로써, 상기 메모리 시스템의 데이터 전송 능력을 향상시킬 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재번호를 나타낸다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 개략적인 블락도이다. 도 2를 참조하면, 상기 메모리 시스템(100)은 다수의 메모리 장치들(110, 120, 130, 및 140), 컨트롤러(150), 및 상기 컨트롤러(150)와 상기 다수의 메모리 장치들(110, 120, 130, 및 140)을 접속시키기 위한 적어도 하나의 채널(180)을 구비한다.
상기 메모리 장치들(110, 120, 130, 및 140) 각각은 페이지 버퍼(111, 121, 131, 및 141), 및 메모리 셀 어레이 블락(112, 122, 132, 및 142)을 구비한다.
상기 메모리 장치들(110, 120, 130, 및 140) 각각은 상기 컨트롤러(150)의 독출 명령에 기초하여 상기 메모리 셀 어레이 블락들(112, 122, 132, 및 142)에 저장된 데이터를 상기 페이지 버퍼(111, 121, 131, 및 141)로 출력하는 내부 독출 동작을 수행한다.
또한, 상기 메모리 장치들(110, 120, 130, 및 140) 각각은 상기 컨트롤러의 프로그램 명령에 기초하여 상기 페이지 버퍼(111, 121, 131, 및 141)에 저장된 프로그램 데이터를 상기 메모리 셀 어레이 블락들(112, 122, 132, 및 142)로 프로그램하는 프로그램 동작을 수행한다.
상기 메모리 셀 어레이 블락들은 MLC(Multi Level Cell) NAND 플래시 메모리로 구현될 수 있다.
상기 적어도 하나의 채널(180)은 입출력 데이터 라인들(181), 제어 신호 라인들(182), 및 칩 인에이블 신호 라인들(183)을 구비한다.
상기 입출력 데이터 라인들(181)은 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 각각에 공통으로 접속되고, 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 적어도 어느 하나로부터 출력되는 데이터를 상기 컨트롤러(150)로 출력하고, 호스트 데이터를 상기 컨트롤러(150)로부터 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로 입력한다.
상기 다수의 제어 신호 라인들(182)은 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 각각에 공통으로 접속되고, 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 어느 하나의 메모리 셀을 액세스하기 위한 제어 신호들(RE, WE, WP, ALE, CLE)을 출력한다.
상기 칩 인에이블 신호 라인(183)들은 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 수에 상응하여 구비된다.
상기 칩인에이블 신호 라인들(183) 각각은 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 각각에 대응하여 접속되고 상기 다수의 메모리 장치들(110, 120, 130, 및 140)을 독립적으로 인에이블시킨다.
상기 컨트롤러(150)는 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 하나로 독출 명령을 인가하고, 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 하나가 상기 독출 명령에 응답하여 내부적인 독출 명령을 수행하는 동안 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 다른 하나로부터 데이터를 출력한다.
또한, 프로그램 동작시에는, 상기 컨트롤러(150)는 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 하나로 프로그램 명령을 인가하고, 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 하나가 상기 프로그램 명령에 응답하여 내부적인 프로그램 명령을 수행하는 동안 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 중 다른 하나로 프로그램 명령을 인가한다.
상기 컨트롤러(150)가 독출 동작시의 예를 들어 설명하면, 상기 제1 메모리 장치(110)가 상기 독출 명령에 응답하여 상기 제1 메모리 장치(110)의 소정의 메모 리 셀 어레이(121)에 저장된 데이터를 제1 버퍼 메모리(111)로 출력하는 동안 상기 컨트롤러(150)는 상기 제2 메모리 장치(120)의 제2 버퍼 메모리(121)에 미리 저장된 데이터를 독출한다.
상기 컨트롤러(150)는 버퍼 메모리 블락(160)을 구비한다. 상기 버퍼 메모리 블락(160)은 상기 적어도 하나의 채널(180)을 통하여 상기 컨트롤러(150)와 상기 다수의 메모리 장치들(110, 120, 130, 및 140) 간에 전송되는 데이터를 저장한다.
또한, 상기 컨트롤러(150)는 ECC 회로 블락(170)을 더 구비하여 상기 호스트로부터 수신된 데이터를 인코딩하여 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로 출력하거나, 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로부터 독출된 데이터의 오류를 검사하고, 정정하여 상기 호스트로 출력한다.
도 3은 도 2에 도시된 ECC 회로 블락의 일 실시예를 나타내는 블락도이다. 좀더 상세히 설명하면, 상기 ECC 회로 블락(170)이 블락 코드(Block code) 디코더 방식을 이용하여 구현된 예를 나타내는 도면이다.
도 2와 도 3을 참조하면, 상기 ECC 회로 블락(170)은 ECC 인코더 블락(171), ECC 디코더 블락(172)을 구비한다.
상기 ECC 인코더 블락(171)은 상기 호스트로부터 수신되는 데이터를 인코딩하여 인코딩된 데이터를 정해진 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로 출력한다.
예컨대, 상기 ECC 인코더 블락(171)은 수신되는 데이터를 이용하여 CRC 데이터(혹은, 신드롬 데이터)를 생성할 수 있다.
상기 ECC 디코더 블락(172)은 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로부터 출력되는 데이터의 오류를 검출하고, 검출된 오류를 수정하여 호스트로 출력한다.
상기 ECC 디코더 블락(172)의 동작을 좀더 상세히 설명하면, 상기 ECC 디코더 블락(172)은 SC(Syndrome computation) 블락(10), KES(Key Equation Solver) 블락(20), CS(Chien Searching) 블락(30), EE(Error Evaluator) 블락(40)을 구비한다.
상기 신드롬 계산 블락(10)은 상기 각각의 메모리 장치들(110, 120, 130, 및 140)로부터 독출된 데이터를 수신하여 상기 독출된 데이터의 오류 발생 유무를 검사하기 위한 신드롬을 계산하여 출력한다.
상기 신드롬 계산 블락(10)의 신드롬 계산 결과에 기초하여 상기 각각의 메모리 장치들(110, 120, 130, 및 140)로부터 리드된 데이터에 오류가 발생한 경우, 상기 버퍼 메모리 블락(160)은 상기 독출되어 저장된 데이터를 호스트로 전송하는 것을 중지하고, 상기 컨트롤러(150)는 오류 정정 모드로 진입한다.
상기 컨트롤러(150)가 오류 정정 모드로 진입하게 되면, 상기 KES 블락(20)은 수신되는 데이터에 대한 오류 위치 방정식의 계수를 계산하고, 상기 CS 블락(30)은 미리 정해진 알고리즘(예컨대, 'chien searching' 알고리즘)을 이용하여 상기 오류 위치 방정식의 해를 구한다. 상기 EE 블락(40)은 상기 CS 블락(30)에 의하여 계산된 해를 이용하여 상기 수신된 데이터의 오류 위치를 표시한다.
상기 KES 블락(20), CS 블락(30), EE 블락(40)은 파이프 라인 모드로 동작함 으로써 상기 호스트로 출력되는 데이터의 전송 비율(through-put)을 증가시킬 수 있다.
도 4는 도 2에 도시된 메모리 시스템의 독출 동작을 설명하기 위한 도면이다. 도 2 내지 도 4를 참조하면, 상기 제1 메모리 장치(110)는 제1 칩 인에이블 신호(/CE0)에 기초하여 제1 페이지 버퍼(111)에 미리 저장된 제1 데이터(#1)를 컨트롤러(150)에 구비되는 버퍼 메모리(160)로 출력한다.
상기 제1 데이터(#1)가 상기 버퍼 메모리(160)로 전송이 완료되면, 상기 컨트롤러(150)는 상기 제5 데이터(#5)에 대한 리드 커맨드와 어드레스를 출력하고, 상기 제1 메모리 장치(110)는 제5 데이터(#5)를 제1 메모리 셀 어레이 블락(112)으로부터 상기 제1 페이지 버퍼(111)로 출력하기 시작한다.
상기 제1 메모리 장치(110)가 상기 제5 데이터(#5)를 상기 제1 페이지 버퍼(111)로 내부적인 독출을 시작하게 되면, 상기 컨트롤러(150)는 제2 칩 인에이블 신호(/CE1)를 상기 제2 메모리 장치(120)로 출력하게 된다.
상기 제2 메모리 장치(120)는 상기 제2 칩인에이블 신호(/CE1)에 응답하여 상기 제2 페이지 버퍼(112)에 미리 저장되어 있던 제2 데이터(#2)를 상기 컨트롤러(150)의 버퍼 메모리(160)로 출력하고, 제6 데이터(#6)를 제2 페이지 버퍼(121)로 출력하기 위한 독출 커맨드를 상기 제2 메모리 장치(120)로 출력한다.
즉, 도 2에 도시된 상기 메모리 장치들(110, 120, 130, 및 140) 중 하나가 내부적인 독출 동작을 수행하는 동안 컨트롤러(150)가 상기 메모리 장치들(110, 120, 130, 및 140) 중 다른 하나로부터 데이터를 독출한다.
또한, 메모리 시스템의 프로그램 동작에서도 마찬가지로 상기 메모리 장치들 중 하나가 내부적인 프로그램 동작을 수행하는 동안 상기 컨트롤러(150)가 상기 메모리 장치들 중 다른 하나로 데이터를 출력한다.
동일한 방법으로, 상기 제3, 및 제4 메모리 장치들(130, 140)도 순차적으로 각각 제3 칩 인에이블 신호(/CE2), 및 제4 칩 인에이블 신호(/CE3)에 기초하여 미리 저장된 제3 데이터(#3), 및 제4 데이터(#4)를 출력하고 상기 컨트롤러(150)는 상기 제7 데이터(미도시) 및 제8 데이터(미도시)에 대한 리드 명령을 출력한다.
도 4에 예시된 바와 같이 상기 각각의 메모리 장치들로부터 출력되는 데이터들(#1, #2, #3, 및 #4)에 대하여 도 3에 도시된 ECC 디코더 블락(172)에 구비되는 신드롬 계산 블락(10)에 의하여 오류를 검출하기 위한 신드롬이 계산되어 출력된다.
상기 신드롬 계산 결과 오류 발생시 컨트롤러는 오류 정정 모드로 들어가고, 도 3에 도시된 디코더 블락은 파이프 라인 모드로 동작함으로써 순차적으로 출력되는 데이터들의 오류 정보를 계산하고, 상기 컨트롤러는 상기 오류 정보에 기초하여 수신된 데이터의 오류를 정정하여 출력하다.
상기 오류 정보를 계산하는 단계를 좀 더 상세히 설명하면, 상기 신드롬 계산 결과에 기초하여 상기 제1 메모리 장치(110)로부터 독출된 제1 데이터에 오류가 발생한 경우, 상기 신드롬 계산 블락(10)은 신드롬 데이터를 상기 KES 블락(20)으로 출력한다.
상기 KES 블락(20)은 버퍼 메모리(160)에 미리 저장된 제1 데이터(#1)에 대 하여 산출된 신드롬 데이터를 이용하여 미리 결정된 오류 위치 방정식의 계수를 산출하는 'key equation'을 수행한다.
이때, 상기 신드롬 계산 블락(10)은 상기 제1 데이터(#1)에 이어 연속하여 입력되는 제2 데이터(#2)에 대한 신드롬을 계산하여 출력한다.
상기 KES 블락(20)의 동작이 완료되면, 상기 CS 블락(30)은 상기 'key equation' 산출 결과를 이용하여 상기 제1 데이터(#1)에 대한 오류 위치 방정식의 해를 구하는 'chien search' 알고리즘을 수행한다.
이때, 상기 CS 블락(30)이 제1 데이터(#1)에 대한 'chien search' 알고리즘을 수행하는 동안, 상기 KES 블락(20)은 상기 제2 데이터(#2)에 대한 신드롬 계산 결과를 수신하고, 상기 제2 데이터(#2)에 대한 신드롬 데이터에 기초하여 제2 데이터(#2)에 대한 오류 위치 방적식의 계수를 산출하는 'key equation'을 수행한다.
상기 CS 블락(30)의 동작이 완료되면, 상기 EE 블락(40)은 상기 제1 데이터(#1)에 대한 'chien search' 알고리즘 결과를 이용하여 제1 데이터(#1)에 대한 오류 위치를 표시하기 위한 'error evaluate' 알고리즘을 수행하여 그 결과를 출력한다.
상기 EE 블락(40)으로부터 출력되는 제1 데이터(#1)에 대한 오류 정보(즉, 오류 위치 정보)에 기초하여 상기 컨트롤러(150)는 버퍼 메모리 블락(160)에 저장된 제1 데이터(#1)에 대한 오류를 수정하고, 상기 버퍼 메모리 블락(160)은 수정된 데이터(Read Data #1)를 호스트로 출력하게 된다.
이때, 상기 CS 블락(30)이 상기 제1 데이터(#1)에 대한 'chien search' 동작 이 완료되면, 상기 CS 블락(30)은 상기 제2 데이터(#2)에 대한 'key equation' 결과를 수신하고, 상기 버퍼 메모리(160)에 저장되어 있는 제2 데이터(#2)에 대한 'chien search' 알고리즘을 수행한다.
상기 CS 블락(30)이 제2 데이터(#2)에 대한 'chien search' 동작을 수행하는 하게 되면, 상기 KES 블락(20)은 연속하여 수신되는 제3 데이터(#3)에 대한 신드롬 데이터를 수신하여 제3 데이터(#3)에 대한 오류 방정식의 계수를 구하기 위한 'key equation'을 수행한다.
상기 CS 블락(30)의 동작이 완료되면, 상기 EE 블락(40)은 상기 제2 데이터(#2)에 대한 'chien search' 결과에 기초하여 'error evaluate' 알고리즘을 수행함으로써 상기 제2 데이터(#2)에 대한 오류 정보를 계산하여 출력하고, 상기 오류 정보에 기초하여 상기 컨트롤러(150)는 버퍼 메모리 블락(160)에 저장된 제2 데이터(#2)에 대한 오류를 수정하고, 상기 버퍼 메모리 블락(160)은 수정된 데이터(Read Data #2)를 호스트로 출력하게 된다.
본 발명의 실시예에서는 상기 각각의 메모리 장치들(110, 120, 130, 및 140) 이 독출 명령을 수신하고, 메모리 셀 어레이(121, 122, 132, 및 142)에 저장된 데이터를 페이지 버퍼(111, 121, 131, 및 141)로 출력하는 시간이 상기 페이지 버퍼(111, 121, 131, 및 141)에서 상기 컨트롤러(150)의 버퍼 메모리(160)로 출력되는 시간보다 약 4배보다 큰 시간을 가지는 메모리 시스템을 예로 들어 설명하였다.
그러나, 상기 메모리 시스템(100)의 스펙에 따라 상기 메모리 셀 어레이 블락(112, 122, 132, 및 142)에 저장된 데이터를 페이지 버퍼들(111, 121, 131, 및 141)로 출력하는 시간과, 상기 페이지 버퍼(111, 121, 131, 및 141)에서 상기 컨트롤러(150)의 버퍼 메모리(160)로 출력되는 시간의 비에 따라, 하나의 채널에 공통으로 접속된 메모리 장치들(110, 120, 130, 및 140) 의 수를 변경함으로써 효율적인 인터리빙 기능을 가지는 메모리 시스템을 구현할 수 있다.
도 5는 도 2에 도시된 ECC 회로의 다른 실시예를 나타내는 도면이다. 좀더 상세히 설명하면, 상기 ECC 회로 블락(170)이 비터비 코드(Viterbi code) 디코더 방식을 이용하여 구현된 예를 나타내는 도면이다.
도 2와 도 5를 참조하면, 상기 ECC 회로 블락(170)은 ECC 인코더 블락(171), ECC 디코더 블락(172)을 구비한다.
상기 ECC 인코더 블락(171)은 상기 호스트로부터 수신되는 데이터를 인코딩하여 인코딩된 데이터를 정해진 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로 출력한다.
상기 ECC 디코더 블락(172)은 상기 다수의 메모리 장치들(110, 120, 130, 및 140)로부터 출력되는 데이터의 오류를 검출하고, 검출된 오류를 수정하여 호스트로 출력한다.
상기 ECC 디코더 블락(172)의 동작을 좀더 상세히 설명하면, 상기 ECC 디코더 블락(172)은 BMC(Branch matrics calculation) 블락(50), ACS(Add-Compare-Select) 블락(60), SMM(State Metrics Memory) 블락(70), 및 SPM(Survivor Path Memory) 블락(80)을 구비한다.
상기 BMC 블락(50)은 상기 각각의 메모리 장치들(110, 120, 130, 140)로부터 독출된 데이터(RD_DATA)를 수신하여 상기 독출된 데이터의 오류 발생 유무를 검사하기 위한 브랜치 매트릭스를 계산하여 출력한다.
상기 ACS 블락(60)은 브랜치 매트릭스 계산 결과를 수신하고, SMM 블락(70)에 미리 저장된 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값으로 출력한다.
상기 SMM 블락(70)은 상기 ACS 블락(60)으로부터 출력되는 새로운 상태 매트릭스 값을 수신하여, 저장된 상태 매트릭스를 업데이트 한다.
상기 SPM 블락(80)은 상기 ACS 블락(60)으로부터 출력되는 상태 매트릭스 중에서 살아남은 경로(즉, 서바이벌 패스)만을 저장하여 출력함으로써 상기 리드 데이터의 오류를 정정하여 디코딩된 라이트 데이터(Decoded_RD_DATA)를 출력한다.
도 6은 도 5에 도시된 ECC 회로 블락의 다른 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 타이밍도이다.
상기 메모리 시스템의 독출 동작은 상기 도 4를 참조하여 설명한 바와 동일하므로, 설명의 간략함을 위하여 상기 오류를 정정하는 단계에 대해서만 설명하고자 한다.
도 5와 도 6을 참조하면, 상기 BMC 블락(50)은 상기 메모리 장치들(110, 120, 130, 140)로부터 출력되는 데이터들(#1, #2, #3, #4)에 대하여 오류를 검출하기 위한 브랜치 매트릭스(Branch Matrics)를 계산하여 출력한다.
상기 메모리 장치들(110, 120, 130, 140)로부터 출력되는 데이터들(#1, #2, #3, #4)에 오류 발생시 컨트롤러(150)는 오류 정정 모드로 들어가고, 도 5에 도시 된 ECC 디코더 블락(172)은 파이프 라인 모드로 동작함으로써 순차적으로 출력되는 데이터들(#1, #2, #3, #4)의 오류 정보를 계산하고, 상기 컨트롤러(150)는 상기 오류 정보에 기초하여 수신된 데이터들(#1, #2, #3, #4)의 오류를 정정하여 출력한다.
상기 ECC 디코더 블락(172)의 파이프 라인 동작을 좀더 자세히 설명하면, 상기 컨트롤러(150)가 오류 정정 모드로 진입하게 되면, 상기 ACS 블락(60)은 수신된 제1 데이터(#1)에 대한 브랜치 매트릭스 계산 결과와 상기 SMM 블락(70)에 미리 저장된 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값으로 출력한다.
상기 ACS 블락(60)와 SMM 블락(70)의 동작이 완료되면, 상기 SPM 블락(80)은 상기 제1 데이터(#1)에 대한 서바이벌 패스를 구하기 시작한다.
이때, 상기 ACS 블락(60)과 상기 SMM 블락(70)은 제2 데이터(#2)에 대한 브랜치 매트릭스 값을 수신하여 ACS 블락(60)과 상기 SMM 블락(70)이 제2 데이터(#2)에 대한 브랜치 매트릭스 계산 결과와 상기 SMM 블락(70)에 저장된 제2 데이터(#2)에 대한 상태 매트릭스 값을 더하여 원래의 데이터 패스에 근접한 값을 새로운 상태 매트릭스 값을 출력한다.
상기 SPM 블락(80)이 제1 데이터(#1)에 대한 서바이벌 패스를 구하여 출력을 완료하면, 상기 SPM 블락(80)은 제2 데이터(#2)에 대한 서바이벌 패스를 구하여 출력한다. 동일한 방법으로, 제3 데이터(#3)와 제4 데이터(#4)도 파이프 라인 모드로 동작하게 된다.
따라서, 상기 ECC 디코더 블락(172)은 상기 각각의 메모리 장치(110,120, 130, 140)로부터 리드되는 데이터에 대한 오류 정보를 빠르고 효과적으로 계산할 수 있다. 또한, 상기 ECC 회로 블락(322)에서 상기 디코더 블락(329)이 차지하는 크기를 줄일 수 있게 된다.
도 3 내지 도 6을 참조하여 상기 ECC 디코더 블락(172)이 블락 코드(Block code) 디코더와 비터비 코드(Viterbi code) 디코더로 구현된 예를 설명하였으나, 상기 ECC 디코더 블락(172)은 컨캐이트네이티드 코드(concatenated code) 디코더로 구현될 수 있다.
도 7은 본 발명의 실시예에 따른 독출 동작시의 인터리빙 동작을 설명하기 위한 타이밍도이고, 도 8은 본 발명의 실시예에 따른 프로그램 동작시의 인터리빙 동작을 설명하기 위한 타이밍도이다.
도 2 내지 도 6를 참조하면, 컨트롤러(150)는 제1 메모리 장치(110)의 제1 페이지 버퍼(111)에 미리 저장된 N(여기서, N은 자연수)번째 데이터를 상기 컨트롤러의 버퍼 메모리(160)로 독출하기 위한 제1 칩인에이블 신호(/CE0)를 출력한다.
상기 제1 메모리 장치(110)가 상기 제1 칩 인에이블 신호(/CE0)에 응답하여 인에이블되면, 상기 컨트롤러(150)는 상기 제1 메모리 장치(110)로 상태 체크 커맨드(201)를 출력하고, 상기 제1 메모리 장치(110)가 레디(ready) 상태일 경우 상기 제1 메모리 장치(110)의 제1 페이지 버퍼(111)에 미리 저장된 데이터를 상기 컨트롤러 (150)의 버퍼 메모리(160)로 출력한다(202).
상기 N번째 데이터가 상기 버퍼 메모리(160)로의 출력이 완료되면, 상기 컨 트롤러(150)는 (N+4)번째로 독출할 데이터에 대한 독출 커맨드와 어드레스(203)를 출력한다.
상기 (N+4)번째로 독출할 데이터에 대한 커맨드와 어드레스 출력이 완료되면 상기 제1 칩인에이블 신호(/CE0)는 디스에이블되고 상기 제1 메모리 장치(110)는 상기 (N+4)번째 데이터가 저장된 메모리 셀 어레이로부터 상기 제1 페이지 버퍼(111)로 내부적으로 전송을 시작하고, 상기 제1 메모리 장치(110)는 비지(busy) 상태로 된다.
상기 제1 메모리 장치(110)가 비지 상태에서 상기 (N+4)번째 데이터를 메모리 셀 어레이(112)로부터 상기 제1 페이지 버퍼(111)로 독출하기 시작하면, 상기 컨트롤러(150)는 상기 제2 칩인에이블 신호(/CE1)를 출력하고, 상기 제2 메모리 장치(120)로 상태 체크 커맨드(204)를 출력한다. 상기 제2 메모리 장치(120)가 레디(ready) 상태일 경우, 상기 제2 메모리 장치(120)는 제2 페이지 버퍼(121)에 미리 저장된 (N+1)번째 데이터를 상기 컨트롤러(150)의 버퍼 메모리(160)로 출력한다.
상기 (N+1)번째 데이터가 상기 버퍼 메모리(160)로의 출력이 완료되면, 상기 컨트롤러(150)는 (N+5)번째 독출할 데이터에 대한 커맨드와 어드레스(206)를 출력한다. 상기 (N+5)번째로 독출할 데이터에 대한 커맨드와 어드레스(160) 출력이 완료되면 상기 제2 칩인에이블 신호(/CE1)는 디스에이블되고 상기 제2 메모리 장치(110)는 상기 (N+5)번째 데이터가 저장된 메모리 셀 어레이로부터 상기 제2 페이지 버퍼(121)로 내부적으로 데이터 전송을 시작하고, 상기 제2 메모리 장치(120)는 비지(busy) 상태로 된다.
제3 메모리 장치(130), 및 제4 메모리 장치(140)의 동작도 상기 제1 메모리 장치(110), 및 제2 메모리 장치(120)의 동작과 동일하므로 설명의 편의를 위하여 생략하고자 한다.
도 2 내지 도 6을 참조하여, 상기 메모리 시스템(100)의 프로그램 동작시의 인터리빙 동작을 설명하면, 상기 컨트롤러(150)는 N번째 데이터(303)를 상기 제1 메모리 장치(110)의 메모리 셀 어레이(112)로 프로그램하기 위한 제1 칩인에이블 신호(/CE0)를 출력한다.
상기 제1 메모리 장치(110)가 상기 제1 칩 인에이블 신호(/CE0)에 응답하여 인에이블되면, 상기 컨트롤러(150)는 상기 제1 메모리 장치(110)로 상태 체크 커맨드(301)를 출력하고, 상기 제1 메모리 장치(110)가 레디(ready) 상태일 경우 컨트롤러(150)는 라이트 커맨드와 어드레스(302)를 출력한다.
상기 컨트롤러(150)는 N번째 데이터(303)를 상기 제1 페이지 버퍼(111)로 출력한다. 상기 제1 메모리 장치(110)는 라이트 커맨드(WR_CMD)에 응답하여 상기 페이지 버퍼(111)에 저장된 데이터를 제1 메모리 셀 어레이(112)의 상기 어드레스(Nth Address, 302)에 해당하는 메모리 셀들에 프로그램하기 시작하고, 상기 제1 메모리 장치(110)는 비지(busy) 상태로 진입하다.
상기 제1 메모리 장치(110)가 N번째 데이터에 대한 프로그램을 시작하게 되면, 상기 제1 칩 인에이블 신호(/CE0)를 디스에이블되고, 상기 컨트롤러(150)는 제 2 칩 인에이블 신호(/CE1)를 상기 제2 메모리 장치(120)로 출력한다.
상기 컨트롤러(150)는 상기 제2 메모리 장치(120)로 상태 체크 커맨드(304)를 출력하고, 상기 제2 메모리 장치(120)가 레디(ready) 상태일 경우 상기 컨트롤러(150)는 (N+1)번째 데이터에 대한 라이트 커맨드와 어드레스(305)를 출력한다.
상기 컨트롤러(150)는 (N+1)번째 데이터(306)를 상기 제2 페이지 버퍼(121)로 출력한다. 상기 제2 메모리 장치(120)는 라이트 커맨드(WR_CMD)에 응답하여 상기 제2 페이지 버퍼(121)에 저장된 데이터를 상기 어드레스((N+1)th Address, 305)에 해당하는 메모리 셀들에 프로그램하기 시작하고, 상기 제2 메모리 장치(120)는 비지(busy) 상태로 진입한다.
제3 메모리 장치(130), 및 제4 메모리 장치(140)의 프로그램 인터리빙 동작도 상기 제1 메모리 장치(110), 및 제2 메모리 장치(120)의 동작과 동일하므로 설명의 편의를 위하여 생략하고자 한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 메모리 용량의 증가에 따른 메모리 셀로부터 페이지 버퍼로의 전송 시간을 도시한 그래프이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 개략적인 블락도를 나타낸다.
도 3은 도 2에 도시된 ECC 회로 블락의 일 실시예를 나타내는 블락도이다.
도 4는 도 3에 도시된 ECC 회로 블락의 일 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 타이밍도이다.
도 5는 도 2에 도시된 ECC 회로 블락의 다른 실시예를 나타내는 블락도이다.
도 6은 도 5에 도시된 ECC 회로 블락의 다른 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 타이밍도이다.
도 7는 본 발명의 실시예에 따른 리드 인터리빙 동작을 설명하기 위한 타이밍도이다.
도 8은 본 발명의 실시예에 따른 프로그램 인터리빙 동작을 설명하기 위한 타이밍도이다.

Claims (14)

  1. 다수의 메모리 장치들;
    상기 다수의 메모리 장치들을 제어하는 컨트롤러; 및
    상기 다수의 메모리 장치들과 상기 컨트롤러 사이에 접속되는 적어도 하나의 채널을 구비하며,
    상기 적어도 하나의 채널은,
    상기 다수의 메모리 장치들 각각에 공통으로 접속되는 입출력 데이터 라인들과 제어 신호 라인들; 및
    상기 다수의 메모리 장치 수에 상응하여 구비되고, 상기 다수의 메모리 장치들 각각을 독립적으로 인에이블 시키기 위한 칩 인에이블 신호 라인들을 구비하며,
    상기 컨트롤러는,
    상기 다수의 메모리 장치들 중 하나로 독출 또는 프로그램 명령을 인가하고, 상기 다수의 메모리 장치들 중 하나가 상기 독출 또는 프로그램 명령에 응답하여 내부적인 독출 또는 프로그램 동작을 수행하는 동안, 상기 다수의 메모리 장치들 중 다른 하나로부터 데이터를 출력하거나, 상기 다수의 메모리 장치들 중 다른 하나로 데이터를 입력하고,
    상기 내부적인 독출 또는 프로그램 동작을 수행하는 상기 다수의 메모리 장치들 중 하나는 디스에이블된 칩 인에이블 신호를 수신하고, 상기 컨트롤러와 데이터를 입출력하는 상기 다수의 메모리 장치들 중 다른 하나는 인에이블된 칩 인에이블 신호를 수신하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 다수의 메모리 장치들 각각은 하나의 메모리 셀에 복수의 데이터 비트 를 저장하는 MLC(Multi Level Cell) 메모리 어레이로 구현된 메모리 시스템.
  3. 제1항에 있어서,
    상기 컨트롤러는,
    상기 적어도 하나의 채널을 통하여 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 검출하고 정정하기 위한 적어도 하나의 ECC 회로 블락을 구비하는 메모리 시스템.
  4. 제3항에 있어서,
    상기 ECC 회로 블락은,
    호스트로부터 입력되는 데이터를 인코딩하여 인코딩된 데이터를 상기 메모리 장치들로 출력하기 위한 ECC 인코딩 블락, 및
    ECC 디코딩 블락을 구비하며,
    상기 ECC 디코딩 블락은,
    각각이 상기 복수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 신드롬을 계산하는 복수의 신드롬 계산 블락(SC block),
    수신된 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 KES(key equation solver)블락;
    상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위 한 미리 정해진 알고리즘을 수행하는 CS(chien searching) 블락; 및
    상기 CS블락의 상기 미리 정해진 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 EE(error evaluator)블락을 구비하는 메모리 시스템.
  5. 제4항에 있어서,
    상기 KES(key equation solver)블락, CS(chien searching) 블락, 및 상기 EE(error evaluator) 블락은 파이프 라인 모드로 동작하는 메모리 시스템.
  6. 제1항에 있어서,
    상기 복수의 메모리 장치들 각각은,
    메모리 셀 어레이; 및
    상기 메모리 셀 어레이로부터 리드되는 데이터 또는 상기 메모리 셀 어레이로 프로그램되는 데이터를 저장하기 위한 페이지 버퍼를 구비하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 내부적인 독출 동작은,
    상기 메모리 셀 어레이에 저장된 데이터가 상기 페이지 버퍼로 독출되는 동작을 포함하고,
    상기 내부적인 프로그램 동작은,
    상기 페이지 버퍼에 저장된 라이트할 데이터가 상기 메모리 셀 어레이로 프로그램되는 동작을 포함하는 메모리 시스템.
  8. (a) 컨트롤러가 다수의 메모리 장치들 중 하나로 독출 또는 프로그램 명령을 인가하는 단계;
    (b) 상기 메모리 장치들 중 하나가 상기 독출 또는 프로그램 명령에 응답하여 내부적인 독출 또는 프로그램 동작을 수행하는 단계; 및
    (c) 상기 메모리 장치들 중 하나가 내부적인 독출 또는 프로그램 동작을 수행하는 동안 상기 컨트롤러가 상기 메모리 장치들 중 다른 하나로부터 데이터를 출력하거나, 상기 메모리 장치들 중 다른 하나로 데이터를 입력하는 단계를 구비하며,
    상기 내부적인 독출 또는 프로그램 동작을 수행하는 상기 다수의 메모리 장치들 중 하나는 디스에이블된 칩 인에이블 신호를 수신하고, 상기 컨트롤러와 데이터를 입출력하는 상기 다수의 메모리 장치들 중 다른 하나는 인에이블된 칩 인에이블 신호를 수신하는 메모리 시스템의 인터리빙 구동 방법.
  9. 제8항에 있어서,
    상기 내부적인 독출 동작은,
    메모리 셀 어레이에 저장된 데이터가 페이지 버퍼로 독출되는 동작을 포함하고,
    상기 내부적인 프로그램 동작은,
    상기 페이지 버퍼에 저장된 라이트할 데이터가 상기 메모리 셀 어레이로 프로그램되는 동작을 포함하는 메모리 시스템의 인터리빙 구동 방법.
  10. 제9항에 있어서,
    상기 다수의 메모리 장치들은,
    하나의 메모리 셀에 복수의 데이터 비트를 저장하는 MLC(Multi Level Cell) 메모리 어레이로 구현된 메모리 시스템의 인터리빙 구동 방법.
  11. 제8항에 있어서,
    상기 메모리 시스템의 인터리빙 구동 방법은,
    ECC 회로 블락이 상기 다수의 메모리 장치들로부터 출력되는 데이터의 오류를 정보를 검출하기 위한 단계를 더 구비하는 메모리 시스템의 인터리빙 구동 방법.
  12. 제11항에 있어서,
    상기 오류 정보를 검출하기 위한 단계는,
    복수의 신드롬 계산 블락 각각이 상기 복수의 메모리 장치들 중 대응하는 메모리 장치로부터 출력되는 데이터의 오류 발생 여부를 판단하기 위한 신드롬을 계산하는 단계;
    KES 블락이 수신된 신드롬 데이터를 이용하여 오류 방정식의 계수들을 구하는 단계;
    CS 블락이 상기 오류 방정식의 계수들을 이용하여 상기 오류 방정식의 해를 구하기 위한 미리 정해진 알고리즘을 수행하는 단계; 및
    EE 블락이 상기 CS 블락의 상기 미리 정해진 알고리즘 수행 결과를 이용하여 상기 메모리 장치로부터 출력된 데이터의 오류 위치를 구하는 단계를 구비하는 메모리 시스템의 인터리빙 구동 방법.
  13. 제12항에 있어서,
    상기 KES 블락, 상기 CS 블락, 및 상기 EE 블락이 파이프 라인 모드로 동작하는 메모리 시스템의 인터리빙 구동 방법.
  14. 제8항에 있어서, 상기 (a) 단계는,
    상기 컨트롤러가 상기 다수의 메모리 장치들 중 하나로 칩 인에이블 신호를 출력하는 단계;
    상기 컨트롤러가 상태 체크 커맨드를 출력하는 단계;
    상기 상태 체크 결과 상기 다수의 메모리 장치들 중 하나가 레디(ready) 상태일 경우 상기 다수의 메모리 장치들 중 하나의 페이지 버퍼에 저장된 데이터를 출력하는 단계;
    상기 데이터의 출력이 완료된 후 다음 데이터를 출력하기 위한 독출 명령 및 어드레스를 상기 다수의 메모리 장치들 중 하나로 출력하는 단계를 구비하는 메모리 시스템의 인터리빙 구동 방법.
KR1020070106828A 2007-10-23 2007-10-23 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법 KR101437517B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070106828A KR101437517B1 (ko) 2007-10-23 2007-10-23 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법
TW097140672A TWI494923B (zh) 2007-10-23 2008-10-23 使用交錯方式的記憶體系統及其方法
US12/256,784 US8667365B2 (en) 2007-10-23 2008-10-23 Flash memory system that uses an interleaving scheme for increasing data transfer performance between a memory device and a controller and a method therof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070106828A KR101437517B1 (ko) 2007-10-23 2007-10-23 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법

Publications (2)

Publication Number Publication Date
KR20090041231A KR20090041231A (ko) 2009-04-28
KR101437517B1 true KR101437517B1 (ko) 2014-09-05

Family

ID=40722941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070106828A KR101437517B1 (ko) 2007-10-23 2007-10-23 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법

Country Status (3)

Country Link
US (1) US8667365B2 (ko)
KR (1) KR101437517B1 (ko)
TW (1) TWI494923B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108492839A (zh) * 2016-02-03 2018-09-04 爱思开海力士有限公司 存储系统
US11386938B2 (en) 2020-08-24 2022-07-12 SK Hynix Inc. Storage device and operating method of the storage device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101466694B1 (ko) * 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
TWI425512B (zh) * 2009-06-16 2014-02-01 Phison Electronics Corp 快閃記憶體控制電路及其儲存系統與資料傳輸方法
DE112010003762B4 (de) * 2009-12-11 2012-12-06 International Business Machines Corporation Flash-Speicher-Steuereinheit
US9218282B2 (en) 2013-10-31 2015-12-22 Micron Technology, Inc. Memory system data management
US9484960B1 (en) * 2015-01-21 2016-11-01 Inphi Corporation Reconfigurable FEC
US9799402B2 (en) * 2015-06-08 2017-10-24 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof
KR102527961B1 (ko) * 2015-07-02 2023-05-04 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 프로그램 방법
KR20190135746A (ko) * 2018-05-29 2019-12-09 삼성전자주식회사 쓰기 버퍼 메모리를 포함하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102645786B1 (ko) * 2019-07-08 2024-03-12 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030082917A (ko) * 2002-04-18 2003-10-23 가부시키가이샤 히타치세이사쿠쇼 반도체기억장치
US20040172581A1 (en) 1995-07-14 2004-09-02 Takayuki Tamura External storage device and memory access control method thereof
US20060059409A1 (en) 2004-09-10 2006-03-16 Hanho Lee Reed-solomon decoder systems for high speed communication and data storage applications

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU3832297A (en) * 1996-02-29 1997-09-16 Hitachi Limited Semiconductor memory device having faulty cells
JP3343201B2 (ja) * 1997-06-12 2002-11-11 株式会社日立製作所 復号回路および情報処理装置
US7243185B2 (en) * 2004-04-05 2007-07-10 Super Talent Electronics, Inc. Flash memory system with a high-speed flash controller
KR100365690B1 (ko) * 2000-08-08 2002-12-26 삼성전자 주식회사 불휘발성 메모리, 복수개의 불휘발성 메모리들을 구비한시스템 , 및 이 시스템의 데이터 리드 방법
TWI227395B (en) * 2003-06-02 2005-02-01 Genesys Logic Inc Method for parallel processing of memory data and error correction code and related device thereof
JP2005166221A (ja) * 2003-12-05 2005-06-23 Canon Inc 情報再生方法及び情報再生装置
JP4428156B2 (ja) * 2004-06-28 2010-03-10 ソニー株式会社 復号装置および方法、プログラム記録媒体、プログラム、並びに記録再生装置
EP1612950A1 (en) * 2004-06-30 2006-01-04 STMicroelectronics S.r.l. Method and system for correcting errors during read and write to non volatile memories
US7379333B2 (en) * 2004-10-28 2008-05-27 Samsung Electronics Co., Ltd. Page-buffer and non-volatile semiconductor memory including page buffer
TW200723709A (en) * 2005-07-21 2007-06-16 Wionics Research Deinterleaver and dual-viterbi decoder architecture
US7617435B2 (en) * 2006-02-23 2009-11-10 Yuwei Zhang Hard-decision iteration decoding based on an error-correcting code with a low undetectable error probability
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
KR100764749B1 (ko) * 2006-10-03 2007-10-08 삼성전자주식회사 멀티-칩 패키지 플래시 메모리 장치 및 그것의 카피 백방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040172581A1 (en) 1995-07-14 2004-09-02 Takayuki Tamura External storage device and memory access control method thereof
KR20030082917A (ko) * 2002-04-18 2003-10-23 가부시키가이샤 히타치세이사쿠쇼 반도체기억장치
US20060059409A1 (en) 2004-09-10 2006-03-16 Hanho Lee Reed-solomon decoder systems for high speed communication and data storage applications

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108492839A (zh) * 2016-02-03 2018-09-04 爱思开海力士有限公司 存储系统
US11301158B2 (en) 2016-02-03 2022-04-12 SK Hynix Inc. Memory system including a memory controller
US11474727B2 (en) 2016-02-03 2022-10-18 SK Hynix Inc. Memory system including a memory controller
US11386938B2 (en) 2020-08-24 2022-07-12 SK Hynix Inc. Storage device and operating method of the storage device

Also Published As

Publication number Publication date
KR20090041231A (ko) 2009-04-28
TWI494923B (zh) 2015-08-01
US20090150751A1 (en) 2009-06-11
US8667365B2 (en) 2014-03-04
TW200926175A (en) 2009-06-16

Similar Documents

Publication Publication Date Title
KR101437517B1 (ko) 인터리빙 기법을 이용한 메모리 시스템, 및 그 방법
KR100921748B1 (ko) Ecc 회로를 포함하는 메모리 시스템 및 그 구동 방법
KR101466694B1 (ko) Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
US10847246B2 (en) Memory systems performing reconfigurable error correction operation using ECC engine with fixed error correction capability
US8065583B2 (en) Data storage with an outer block code and a stream-based inner code
EP2187315B1 (en) Method for accessing data in flash memory and data accessing controller
US7631241B2 (en) Apparatus and method for decoding low density parity check codes
JP3272903B2 (ja) 誤り訂正検出回路と半導体記憶装置
US8812942B2 (en) Interleaving apparatuses and memory controllers having the same
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
TWI781631B (zh) 記憶體系統、記憶體裝置及資料讀出方法
US8370699B2 (en) Semiconductor memory apparatus for reducing bus traffic between NAND flash memory device and controller
US11755209B2 (en) Semiconductor memory device and error detection and correction method
CN110795271A (zh) 对用户数据执行纠错的纠错电路和使用其的纠错方法
CN109714062B (zh) 执行迭代解码的解码器和使用该解码器的存储设备
CN111796774A (zh) 存储器控制方法、存储器存储装置及存储器控制器
JP7178465B1 (ja) 半導体記憶装置
US20100306622A1 (en) Memory system and data transfer method
JP2014134843A (ja) メモリシステム
CN112134572B (zh) Ldpc译码方法、ldpc译码器、芯片以及设备
CN101160729B (zh) 用于并行处理递归数据的定址体系结构
KR20230132697A (ko) 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법
CN113903390A (zh) 存储器和存储器的操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 6