KR101626084B1 - 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법 - Google Patents

멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법 Download PDF

Info

Publication number
KR101626084B1
KR101626084B1 KR1020090114684A KR20090114684A KR101626084B1 KR 101626084 B1 KR101626084 B1 KR 101626084B1 KR 1020090114684 A KR1020090114684 A KR 1020090114684A KR 20090114684 A KR20090114684 A KR 20090114684A KR 101626084 B1 KR101626084 B1 KR 101626084B1
Authority
KR
South Korea
Prior art keywords
data
memory
nonvolatile memory
memory device
memory controller
Prior art date
Application number
KR1020090114684A
Other languages
English (en)
Other versions
KR20110058028A (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 KR1020090114684A priority Critical patent/KR101626084B1/ko
Priority to US12/917,683 priority patent/US8473811B2/en
Priority to CN201010569572.3A priority patent/CN102096647B/zh
Priority to TW099140780A priority patent/TW201142605A/zh
Publication of KR20110058028A publication Critical patent/KR20110058028A/ko
Application granted granted Critical
Publication of KR101626084B1 publication Critical patent/KR101626084B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory

Abstract

본 발명은 메모리 장치들 간에 데이터가 직접 전송될 수 있는 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법에 관한 것이다. 본 발명에 따른 멀티 칩 메모리 시스템은 소스 및 타겟 메모리 장치들, 상기 소스 및 타겟 메모리 장치들의 동작을 제어하는 메모리 컨트롤러, 그리고 상기 소스 및 타겟 메모리 장치들과 상기 메모리 컨트롤러의 데이터 이동을 위한 데이터 버스를 포함한다. 상기 메모리 컨트롤러는 상기 소스 메모리 장치가 읽기 동작을 수행하여 상기 데이터 버스에 데이터를 출력하도록 제어한다. 이와 동시에, 상기 메모리 컨트롤러는 상기 타겟 메모리 장치가 상기 데이터 버스에 공유된 데이터를 쓰도록 제어한다. 본 발명에 의하면, 메모리 컨트롤러로 데이터를 이동하지 않고 메모리 장치들 간에 데이터가 직접 전송될 수 있기 때문에 멀티 칩 메모리 시스템의 데이터 전송 속도가 빨라질 수 있다.
Figure R1020090114684
낸드 플래시 메모리 장치, 멀티 칩 메모리 시스템, 메모리 간 데이터 전송

Description

멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법{MULTI-CHIP MEMORY SYSTEM AND DATA TRANSFER METHOD THEREOF}
본 발명은 멀티 칩 메모리 시스템에 관한 것으로, 더욱 상세하게는 멀티 칩 메모리 시스템의 메모리 장치들 간의 데이터 전송 방법에 관한 것이다.
불휘발성 메모리 장치란, 전기적으로 데이터의 소거(Erase) 및 저장(Program)이 가능하고 전원이 차단되어도 데이터의 보존이 가능한 장치이다. 불휘발성 메모리 장치는 플래시 메모리 장치, 가변 저항 메모리 장치 등을 포함한다. 플래시 메모리 장치는 일반적으로 노어(NOR) 플래시 메모리와 낸드(NAND) 플래시 메모리로 구분된다. 노어 플래시 메모리는 메모리 셀들이 각각 독립적으로 비트 라인과 워드 라인에 연결되는 구조를 갖는다. 따라서, 노어 플래시 메모리는 우수한 랜덤 액세스 시간 특성을 갖는다.
낸드 플래시 메모리는 복수의 메모리 셀들이 직렬로 연결된다. 이러한 구조를 셀 스트링(string) 구조라고 하며, 셀 스트링당 한 개의 비트 라인 컨택(contact)을 필요로 한다. 따라서, 낸드 플래시 메모리는 집적도면에서 우수한 특성을 갖는다. 집적도가 높은 장점 때문에 낸드 플래시 메모리는 엠피쓰리 플레이 어(MP3 Player), 각종 메모리 카드(Memory Card), 솔리드 스테이트 드라이브(Solid State Drive: SSD) 등과 같은 다양한 기기들에서 데이터 저장용 장치로 사용된다.
데이터 저장 용량을 늘리기 위하여 메모리 시스템은 복수의 메모리 장치들을 사용한다. 이러한 멀티 칩 메모리 시스템은 복수의 메모리 장치들이 데이터 버스를 공유하여 메모리 컨트롤러에 연결된다. 멀티 칩 메모리 시스템에서 메모리 장치들 간에 데이터 이동은 소스 메모리 장치로부터 데이터를 메모리 컨트롤러로 읽어오고, 읽어온 소스 데이터를 타겟 메모리 장치에 쓰는 과정을 통하여 이루어지게 된다.
본 발명의 목적은 메모리 장치들 간에 데이터를 직접 전송할 수 있는 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 멀티 칩 메모리 시스템은, 제 1 및 제 2 불휘발성 메모리 장치들; 상기 제 1 및 제 2 불휘발성 메모리 장치들을 제어하는 메모리 컨트롤러; 및 상기 제 1 및 제 2 불휘발성 메모리 장치들과 상기 메모리 컨트롤러 간의 데이터 전송을 위한 데이터 버스를 포함하되, 상기 메모리 컨트롤러는 상기 제 1 불휘발성 메모리 장치에 저장된 데이터를 상기 데이터 버스에 출력하는 동작과 상기 제 2 불휘발성 메모리 장치에 상기 데이터 버스로 출력된 데이터를 입력하는 동작이 동시에 이루어지도록 상기 제 1 및 제 2 불휘발성 메모리 장치들이 제어되 는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 및 제 2 불휘발성 메모리 장치들 사이에 전송되는 데이터는 상기 데이터 버스를 통해 공유된다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치에서 출력된 데이터는 상기 메모리 컨트롤러를 경유하지 않고 상기 제 2 불휘발성 메모리 장치에 직접 제공된다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터를 직접 전송하기 위한 로컬 쓰기 명령과 읽기 제어 신호를 발생하도록 구성된다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치는 상기 읽기 제어 신호에 따라 데이터를 출력하고, 상기 제 2 불휘발성 메모리 장치는 상기 로컬 쓰기 명령이 제공되면 상기 읽기 제어 신호에 따라 데이터를 저장하는 것을 특징으로 한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치 간에 전송되는 데이터의 에러를 검출하고 정정하기 위한 에러 정정 회로를 포함한다.
실시 예에 있어서, 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터가 직접 전송되는 동안 상기 전송되는 데이터에서 에러가 검출되면 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터를 직접 전송하는 동작이 다시 시도된다.
실시 예에 있어서, 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터 가 직접 전송되는 동안 상기 전송되는 데이터에서 에러가 검출되면 상기 에러 정정 회로를 통하여 정정된 데이터는 상기 제 2 불휘발성 메모리 장치에 저장된다.
실시 예에 있어서, 상기 제 1 및 제 2 불휘발성 메모리 장치들은 데이터를 입력 또는 출력하기 위한 데이터 스트로브 신호를 수신하고 발신하는 데이터 스트로브 발생기를 포함하되, 상기 데이터 스트로브 발생기는 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터가 직접 전송되는 동안 상기 데이터 스트로브 신호의 위상을 소정의 오프셋 값으로 조정한다.
실시 예에 있어서, 상기 로컬 쓰기 명령이 제공되면, 상기 제 2 불휘발성 메모리 장치는 쓰기 데이터 스트로브 신호와 동일하도록 입력되는 읽기 데이터 스트로브 신호의 위상을 조정하고 상기 조정된 읽기 데이터 스트로브 신호에 따라 데이터를 저장한다.
본 발명의 다른 실시 예에 따른 멀티 칩 메모리 시스템의 데이터 전송 방법은, 저장된 데이터를 출력하도록 상기 제 1 불휘발성 메모리 장치를 준비시키는 단계; 상기 제 1 불휘발성 메모리 장치에서 전송되는 데이터를 입력하도록 상기 제 2 불휘발성 메모리 장치를 준비시키는 단계; 상기 제 1 및 제 2 불휘발성 메모리 장치로 하나의 제어 신호를 제공하는 단계; 및 입력된 데이터를 저장하도록 상기 제 2 불휘발성 메모리 장치가 제어되는 단계를 포함하며, 상기 제공되는 하나의 제어 신호에 따라 상기 제 1 불휘발성 메모리 장치의 데이터 출력 동작과 상기 제 2 불휘발성 메모리 장치의 상기 데이터 입력 동작은 동시에 수행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 제어 신호는 읽기 제어 신호인 것을 특징으로 한다.
실시 예에 있어서, 상기 제어 신호는 쓰기 제어 신호인 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치로부터 출력되는 데이터의 에러를 검출하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치에서 출력되는 데이터에 에러가 있는 경우, 상기 제 1 불휘발성 메모리 장치를 준비시키는 단계; 상기 제 2 불휘발성 메모리 장치를 준비시키는 단계; 상기 하나의 제어 신호를 제공하는 단계; 및 상기 제 2 불휘발성 메모리 장치가 제어되는 단계를 다시 수행한다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치에서 출력되는 데이터에 에러가 있는 경우, 데이터의 에러를 정정하는 단계; 및 상기 정정된 데이터를 상기 제 2 불휘발성 메모리 장치에 저장하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제어 신호는 데이터 스트로브 신호인 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 또는 제 2 불휘발성 메모리 장치가 상기 데이터 스트로브 신호의 위상을 소정의 오프셋 값으로 조정하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 불휘발성 메모리 장치에서 출력된 데이터는 데이터 버스를 통해 상기 제 2 불휘발성 메모리 장치에 직접 입력된다.
본 발명의 실시 예에 따르면, 메모리 장치들 간에 데이터를 직접 전송하도록 멀티 칩 메모리 시스템을 구현함으로써 멀티 칩 메모리 시스템의 데이터 전송 속도 가 빨라질 수 있다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예를 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예는 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 도면들과 명세서 전체에 걸쳐서 동일한 참조 번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 특정한 용어들이 사용되었으나, 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다.
본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다. 도 1에서는 설명의 간략화를 위하여 네 개의 메모리 장치들로 구성된 멀티 칩 메모리 시스템을 예로 들어 설명하기로 한다.
멀티 칩 메모리 시스템(100, 이하 '메모리 시스템'이라 칭함)은 메모리 컨트롤러(memory controller, 10), 복수의 채널들(channel, 20, 50) 그리고 복수의 불휘발성 메모리 장치들(non volatile memory device, 30, 40, 60, 70)을 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치들(30, 40, 60, 70)은 낸드 플래시 메모리로 구성될 것이다. 하지만, 불휘발성 메모리 장치가 낸드 플래시 메모리에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불휘발성 메모리 장치는 노어 플래시 메모리, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등과 같은 불휘발성 메모리 장치들 중 하나로 구성될 수 있다.
메모리 컨트롤러(10)는 호스트 시스템으로부터 요청된 명령(예를 들면, 데이터의 읽기 또는 쓰기)을 실행하기 위하여 메모리 시스템(100)을 제어한다. 메모리 시스템(100)을 제어하기 위하여, 메모리 컨트롤러(10)에는 통상적으로 펌웨어(firmware)를 구동한다. 비록 도면에는 도시되지 않았지만, 메모리 컨트로러(10)는 펌웨어를 저장하기 위한 램(RAM), 호스트와의 인터페이싱을 위한 호스트 인터페 이스(host interface) 등이 더 포함될 수 있음은 잘 이해될 것이다.
채널들(20, 50)에는 메모리 컨트롤러(10)와 플래시 메모리들(30, 40, 60, 70)이 연결되어 있다. 채널은 데이터 버스(data bus)와 제어 버스(control bus)로 구성될 수 있다. 따라서 채널에 연결된 메모리 컨트롤러(10)와 플래시 메모리들(30, 40, 60, 70)은 데이터 신호 그리고 제어 신호를 공유한다. 본 발명의 실시 예에서는 플래시 메모리들(30, 40)이 연결된 채널(CH0) 그리고 플래시 메모리들(60, 70)이 연결된 채널(CH1)을 포함한다.
플래시 메모리(30)는 인터페이스 로직(33), 제어 로직(35) 그리고 메모리 코어(37)를 포함한다. 인터페이스 로직(33)은 메모리 컨트롤러(10)에서 입력된 제어 신호를 판별하여 판별 결과를 제어 로직(35)에 제공한다. 제어 로직(35)은 제공된 판별 결과에 따라 플래시 메모리(30)의 각 구성 요소(예를 들면, 메모리 코어)를 제어하기 위한 제어 신호 또는 전압을 발생한다. 메모리 코어(37)는 데이터를 저장하기 위한 메모리 셀(도 2의 38 참조) 그리고 메모리 셀에서 데이터를 읽고 쓰기 위한 읽기/쓰기 회로(도2의 39 참조)를 포함한다. 플래시 메모리들(40, 60, 70)은 플래시 메모리(30)와 동일한 구성을 갖는다.
메모리 컨트롤러(10)는 채널들(20, 50)의 제어 버스들을 통하여 플래시 메모리들(30, 40, 60, 70)에 제어 신호를 제공한다. 플래시 메모리들(30, 40, 60, 70)은 제어 신호에 따라 저장된 데이터를 채널들(20, 50)의 데이터 버스들을 통하여 메모리 컨트롤러(10)로 전송한다. 또한 플래시 메모리들(30, 40, 60, 70)은 채널들(20, 50)의 데이터 버스들을 통하여 메모리 컨트롤러(10)에서 전송된 데이터를 저장한다. 제어 신호와 데이터가 채널들(20, 50)을 통하여 플래시 메모리들(30, 40, 60, 70)에 전송되기 때문에, 채널 각각에 연결된 복수의 플래시 메모리들은 대응하는 제어 신호와 데이터를 공유할 수 있다.
본 발명의 실시 예에 따르면, 플래시 메모리(30)에서 출력된 데이터는 데이터 버스(20)를 통해 동일한 데이터 버스(20)에 연결된 플래시 메모리(40)에 공유된다. 따라서 데이터 버스(20)에 실린 데이터는 메모리 컨트롤러(10)로 이동되지 않은 상태에서 플래시 메모리(40)로 직접 제공될 수 있다. 이 때, 플래시 메모리(40)는 메모리 컨트롤러(10)의 제어에 따라 데이터 버스(20)에 실린 데이터에 대한 쓰기 동작을 수행할 것이다. 이러한 동작은 후술되는 도 5를 참조하여 상세히 설명된다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 내부 동작을 설명하기 위한 다이어그램이다.
도 2를 참조하면, 메모리 컨트롤러(10)로부터 로컬 쓰기 명령(local write command)이 플래시 메모리(30)에 제공되면, 제어 로직(35)은 로컬 쓰기 명령에 응답하여 쓰기 동작을 제어할 것이다. 여기에서 로컬 쓰기 명령은 메모리 간에 데이터를 직접 이동하기 위하여 제공되는 명령이다. 즉, 로컬 쓰기 명령은 소스 플래시 메모리(30)에서 출력되어 데이터 버스(20)에 공유된 데이터를 타겟 플래시 메모리(40)에 쓰기위한 명령이다. 특히, 쓰기 동작은 읽기 제어 신호(예를 들면, 리드 인에이블 신호(RE#))에 따라 수행될 것이다. 예를 들면, 로컬 쓰기 동작 시에 인터페이스 로직(33)은 제어 로직(35)의 제어에 따라 리드 인에이블 신호(RE#)를 읽기/ 쓰기 회로(39)에 제어 신호(예를 들면, 클럭 신호)로서 제공한다. 읽기/쓰기 회로(39)는 클럭 신호에 따라 메모리 컨트롤러(10)에서 제공되는 데이터를 입력받고, 입력된 데이터를 메모리 셀(38)에 저장한다.
도 3은 종래 기술에 따른 플래시 메모리의 쓰기 동작에 대한 타이밍 다이어그램이다.
도 3을 참조하면, 메모리 컨트롤러(10)에서 플래시 메모리(40)에 데이터를 쓰기 위하여 제공되는 제어 신호들(CE#, CMD, ADD, WE#), 플래시 메모리(40)의 내부 동작을 나타내는 상태 신호(R/B#) 그리고 플래시 메모리(40)가 데이터 버스(20)에서 입력받는 데이터(Data) 신호가 도시되어 있다.
플래시 메모리(40)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 플래시 메모리(40)가 데이터를 입력받고 메모리 셀에 쓰는 시간 동안(t1~t5) 칩 인에이블 신호(CE#)를 논리 '0'(또는 논리 'low')으로 유지한다.
메모리 컨트롤러(10)는 t1 시간 동안 제 1 쓰기 명령(WR_f)을 플래시 메모리(40)에 제공한다. 메모리 컨트롤러(10)는 t2 시간 동안 데이터가 쓰여질 메모리 셀의 어드레스(ADD)를 플래시 메모리에 제공한다. 데이터가 쓰여질 메모리 셀의 어드레스(ADD)가 제공된 후, 메모리 컨트롤러(10)는 t3 시간 동안 쓰여질 데이터를 입력한다. 이 때, 메모리 컨트롤러(10)는 라이트 인에이블 신호(WE#)를 토글(toggle)한다. 라이트 인에이블 신호(WE#)가 토글될 때마다 쓰여질 데이터가 플래시 메모리(40)에 입력된다. 입력된 데이터는 플래시 메모리(40)의 데이터 입출력 회로(예를 들면, 페이지 버퍼)에 임시로 저장된다.
메모리 컨트롤러(10)는 t4 시간 동안 제 2 쓰기 명령(WR_s)을 플래시 메모리(40)에 제공한다. 제 2 쓰기 명령(WR_s)이 제공되면 플래시 메모리(40)는 t5 시간 동안 데이터 입출력 회로에 저장된 데이터를 메모리 셀에 쓰는 동작을 수행한다. 이러한 시간을 프로그램 시간(tPROG)이라고 한다.
도 4는 종래 기술에 따른 플래시 메모리의 읽기 동작에 대한 타이밍 다이어그램이다.
도 4를 참조하면, 메모리 컨트롤러(10)에서 플래시 메모리(30)에 데이터를 읽기 위하여 제공되는 제어 신호들(CE#, CMD, ADD, RE#), 플래시 메모리(30)의 내부 동작을 나타내는 상태 신호(R/B#) 그리고 플래시 메모리(30)가 데이터 버스(20)에 출력하는 데이터(Data) 신호가 도시되어 있다.
플래시 메모리(30)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 플래시 메모리(30)가 메모리 셀에서 데이터를 읽고 출력하는 시간 동안(t1~t5) 칩 인에이블 신호(CE#)를 논리 '0'(또는 논리 'low')으로 유지한다.
메모리 컨트롤러(10)는 t1 시간 동안 제 1 읽기 명령(RD_f)을 플래시 메모리(30)에 제공한다. 메모리 컨트롤러(10)는 t2 시간 동안 데이터를 읽어올 메모리 셀의 어드레스(ADD)를 플래시 메모리(30)에 제공한다. 메모리 컨트롤러(10)는 t3 시간 동안 제 2 읽기 명령(RD_s)을 플래시 메모리(30)에 제공한다. 제 2 읽기 명령(RD_s)이 제공되면 플래시 메모리(30)는 t4 시간 동안 메모리 셀에 저장된 데이 터를 읽어오는 동작을 수행한다. 이러한 시간을 읽기 시간(tR) 또는 액세스 시간이라고 한다.
플래시 메모리(30)는 t5 시간 동안 메모리 셀에서 읽어온 데이터를 플래시 메모리(30)의 외부로 출력한다. 이 때, 메모리 컨트롤러(10)는 리드 인에이블 신호(RE#)를 토글한다. 리드 인에이블 신호(RE#)가 토글될 때마다 메모리 셀에서 읽어온 데이터는 플래시 메모리(30)의 외부로 출력된다.
도 5는 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 타이밍 다이어그램이다. 도 5에서는 설명의 간략화를 위하여 도 1에 도시된 플래시 메모리들(30, 40, 60, 70) 중 동일 채널(CH0)에 구성된 두 개의 플래시 메모리들(30, 40)로 예를 들어 설명하기로 한다. 또한 이동할 데이터를 저장한 플래시 메모리(30)를 소스(source) 플래시 메모리, 이동되는 데이터를 저장할 플래시 메모리(40)를 타겟(target) 플래시 메모리로 예를 들어 설명하기로 한다.
도 5를 참조하면, 메모리 시스템(100)에서 플래시 메모리들(30, 40) 간에 직접 데이터 전송을 위하여 제공되는 제어 신호들(source CE#, target CE#, CMD, ADD, RE#) 그리고 제어 신호들에 응답하여 소스 플래시 메모리(30)가 데이터 버스(20)에 출력하는 데이터(Data) 신호가 도시되어 있다.
메모리 컨트롤러(10)는 t1 시간 동안 소스 플래시 메모리(30)를 제어한다. 예를 들면, 메모리 컨트롤러(10)는 소스 플래시 메모리(30)에 칩 인에이블 신호(source CE#), 커맨드(CMD) 그리고 어드레스(ADD)를 제공한다.
소스 플래시 메모리(30)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 소스 플래시 메모리(30)가 메모리 셀에서 데이터를 읽고 출력하는 시간 동안(t1 및 t3) 칩 인에이블 신호(source CE#)를 논리 '0'(또는 논리 'low')으로 유지한다. 또한 메모리 컨트롤러(10)는 t1 시간 동안 소스 플래시 메모리(30)가 저장된 데이터를 출력하도록, 제 1 읽기 명령(RD_f), 어드레스(ADD) 그리고 제 2 읽기 명령(RD_s)을 순차적으로 제공한다. 이러한 제어 방법은 이동할 데이터를 저장하고 있는 소스 메모리 장치의 종류에 따라 달라질 수 있다.
메모리 컨트롤러(10)는 t2 시간 동안 타겟 플래시 메모리(40)를 제어한다. 예를 들면, 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)에 칩 인에이블 신호(target CE#), 커맨드(CMD) 그리고 어드레스(ADD)를 제공한다.
타겟 플래시 메모리(40)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)가 데이터를 입력받고 메모리 셀에 쓰는 시간 동안(t2~t4) 칩 인에이블 신호(target CE#)를 논리 '0'(또는 논리 'low')으로 유지한다. 또한 메모리 컨트롤러(10)는 t2 시간 동안 타겟 플래시 메모리(40)가 입력된 데이터를 쓰도록, 제 1 로컬 쓰기 명령(L. WR_f) 그리고 어드레스(ADD)를 순차적으로 제공한다. 이러한 제어 방법은 이동되는 데이터를 저장할 타겟 메모리 장치의 종류에 따라 달라질 수 있다.
메모리 컨트롤러(10)가 타겟 플래시 메모리(40)를 제어하는 시간 t2는 소스 플래시 메모리(30)가 메모리 셀에 저장된 데이터를 읽어오는 동작을 수행하는 시간이다. 즉, 읽기 시간(tR) 또는 액세스 시간이다. 소스 플래시 메모리(30)의 읽기 시간(tR)은 수 십 마이크로 초(μS)일 수 있으며, 이러한 읽기 시간 동안 소스 플래시 메모리(30)의 칩 인에이블 신호(source CE#)를 논리 '1'(또는 논리 'high')로 유지할 수 있다. 또한 소스 플래시 메모리(30)의 읽기 시간(tR) 동안 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)를 제어할 수 있다.
소스 플래시 메모리(30)는 t3 시간 동안 메모리 셀에서 읽혀진 데이터를 외부로 출력한다. 이 때, 메모리 컨트롤러(10)는 리드 인에이블 신호(RE#)를 토글한다. 리드 인에이블 신호(RE#)가 토글될 때 마다 메모리 셀에서 읽어온 데이터는 소스 플래시 메모리(30)의 외부로 출력된다. 출력된 데이터는 데이터 버스(20)를 통해 메모리 컨트롤러(10) 그리고 타겟 플래시 메모리(40)에 공유된다.
이와 동시에, 타겟 플래시 메모리(40)는 t3 시간 동안 데이터 버스(20)를 통해 공유된 데이터를 입력 받는다. 입력된 데이터는 타겟 플래시 메모리(40)의 데이터 입출력 회로(예를 들면, 페이지 버퍼)에 임시로 저장된다. 타겟 플래시 메모리(40)는 로컬 쓰기 명령(L. WR)이 제공되었기 때문에, 리드 인에이블 신호(RE#)가 토글될 때 마다 공유된 데이터가 타겟 플래시 메모리(40)의 데이터 입출력 회로에 저장된다.
메모리 컨트롤러(10)는 t4 시간 동안 제 2 로컬 쓰기 명령(L. WR_s)을 타겟 플래시 메모리(40)에 제공한다. 제 2 로컬 쓰기 명령(L. WR_s)이 제공되면 타겟 플래시 메모리(40)는 데이터 입출력 회로에 저장된 데이터를 메모리 셀에 쓰는 동작 을 수행한다.
t3 시간 동안, 소스 플래시 메모리(30)의 칩 인에이블 신호(source CE#)와 타겟 플래시 메모리(40)의 칩 인에이블 신호(target CE#)는 동시에 활성화 된다. 즉, 메모리 장치 간에 직접 데이터 전송을 위하여, 동일 채널에 연결된 메모리 장치의 칩 인에이블 신호들이 동시에 활성화된다.
도 6은 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 순서도이다.
도 6을 참조하면, 메모리 컨트롤러(10)는 소스 메모리 장치(30)에 제 1 읽기 명령을 제공한다(S110 단계). 메모리 컨트롤러(10)는 데이터를 읽어올 메모리 셀의 어드레스를 소스 메모리 장치(30)에 제공한다(S120 단계). 메모리 컨트롤러(10)는 소스 메모리 장치(30)에 제 2 읽기 명령을 제공한다(S130 단계).
소스 메모리 장치(30)가 메모리 셀에 저장된 데이터를 읽어오는 시간 동안(예를 들면, 읽기 시간(tR) 동안), 메모리 컨트롤러(10)는 타겟 메모리 장치(40)에 제 1 로컬 쓰기 명령과 데이터가 쓰여질 메모리 셀의 어드레스를 제공한다(S140 단계).
소스 메모리 장치(30)가 메모리 셀에 저장된 데이터를 읽어오는 소정의 시간이 지난 후에, 메모리 컨트롤러(10)는 소스 메모리 장치(30)과 타겟 메모리 장치(40)에 하나의 읽기 제어 신호를 제공한다. 예를 들면, 하나의 리드 인에이블 신호(RE#)를 토글한다. 토글되는 리드 인에이블 신호(RE#)에 응답하여, 소스 메모리 장치(30)는 메모리 셀에서 읽어온 데이터를 출력하여 데이터 버스에 공유시키고, 타겟 메모리 장치(40)는 공유된 데이터를 입력한다(S150 단계).
타겟 메모리 장치(40)에 쓰여질 데이터가 입력된 후, 메모리 컨트롤러(10)는 제 2 로컬 쓰기 명령을 제공한다(S160 단계). 제 2 로컬 쓰기 명령이 제공되면 타겟 메모리 장치(40)는 입력된 데이터를 메모리 셀에 쓰는 동작을 수행한다. 본 발명의 실시 예에 따르면, 소스 메모리 장치(30)에서 출력된 데이터는 메모리 컨트롤러(10)를 거치지 않고 타겟 메모리 장치(40)에 입력된다. 즉, 데이터 버스(20)를 통하여 메모리 장치들 간에 데이터가 직접 전송될 수 있다.
도 7은 본 발명의 제 2 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 타이밍 다이어그램이다. 도 7에서는 설명의 간략화를 위하여 도 1에 도시된 플래시 메모리들(30, 40, 60, 70) 중 동일 채널(CH0)에 구성된 두 개의 플래시 메모리들(30, 40)로 예를 들어 설명하기로 한다. 또한 이동할 데이터를 저장한 플래시 메모리(30)를 소스 플래시 메모리, 이동되는 데이터를 저장할 플래시 메모리(40)를 타겟 플래시 메모리로 예를 들어 설명하기로 한다.
도 7을 참조하면, 메모리 시스템(100)에서 플래시 메모리들(30, 40) 간에 직접 데이터 전송을 위하여 제공되는 제어 신호들(source CE#, target CE#, CMD, ADD, WE#) 그리고 제어 신호들에 응답하여 플래시 메모리(30)가 데이터 버스(20)에 출력하는 데이터(Data) 신호가 도시되어 있다.
메모리 컨트롤러(10)는 t1 시간 동안 소스 플래시 메모리(30)를 제어한다. 예를 들면, 메모리 컨트롤러(10)는 소스 플래시 메모리(30)에 칩 인에이블 신 호(source CE#), 커맨드(CMD) 그리고 어드레스(ADD)를 제공한다.
소스 플래시 메모리(30)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 소스 플래시 메모리(30)가 메모리 셀에서 데이터를 읽고 출력하는 시간 동안(t1 및 t3) 칩 인에이블 신호(source CE#)를 논리 '0'(또는 논리 'low')으로 유지한다. 또한 메모리 컨트롤러(10)는 t1 시간 동안 소스 플래시 메모리(30)가 저장된 데이터를 출력하도록, 제 1 로컬 읽기 명령(L. RD_f), 어드레스(ADD) 그리고 제 2 로컬 읽기 명령(L. RD_s)을 순차적으로 제공한다. 이러한 제어 방법은 이동할 데이터를 저장하고 있는 소스 메모리 장치의 종류에 따라 달라질 수 있다.
메모리 컨트롤러(10)는 t2 시간 동안 타겟 플래시 메모리(40)를 제어한다. 예를 들면, 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)에 칩 인에이블 신호(target CE#), 커맨드(CMD) 그리고 어드레스(ADD)를 제공한다.
타겟 플래시 메모리(40)는 칩 인에이블 신호(CE#)가 논리 '0'(또는 논리 'low')일 때 활성화 된다. 따라서 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)가 데이터를 입력받고 메모리 셀에 쓰는 시간 동안(t2~t4) 칩 인에이블 신호(target CE#)를 논리 '0'(또는 논리 'low')으로 유지한다. 또한 메모리 컨트롤러(10)는 t2 시간 동안 타겟 플래시 메모리(40)가 입력된 데이터를 쓰도록, 제 1 쓰기 명령(WR_f) 그리고 어드레스(ADD)를 순차적으로 제공한다. 이러한 제어 방법은 이동되는 데이터를 저장할 타겟 메모리 장치의 종류에 따라 달라질 수 있다.
메모리 컨트롤러(10)가 타겟 플래시 메모리(40)를 제어하는 시간 t2는 소스 플래시 메모리(30)가 메모리 셀에 저장된 데이터를 읽어오는 동작을 수행하는 시간이다. 즉, 읽기 시간(tR) 또는 액세스 시간이다. 소스 플래시 메모리(30)의 읽기 시간(tR)은 수 십 마이크로 초(μS)일 수 있으며, 이러한 읽기 시간 동안 소스 플래시 메모리(30)의 칩 인에이블 신호(source CE#)를 논리 '1'(또는 논리 'high')로 유지할 수 있다. 또한 소스 플래시 메모리(30)의 읽기 시간(tR) 동안 메모리 컨트롤러(10)는 타겟 플래시 메모리(40)를 제어할 수 있다.
소스 플래시 메모리(30)는 t3 시간 동안 메모리 셀에서 읽어온 데이터를 외부로 출력한다. 이 때, 메모리 컨트롤러(10)는 라이트 인에이블 신호(WE#)를 토글한다. 소스 플래시 메모리(30)는 로컬 읽기 명령(L. RD)이 제공되었기 때문에, 라이트 인에이블 신호(WE#)가 토글될 때 마다 메모리 셀에서 읽어온 데이터를 소스 플래시 메모리(30)의 외부로 출력한다. 출력된 데이터는 데이터 버스(20)를 통해 메모리 컨트롤러(10) 그리고 타겟 플래시 메모리(40)에 공유된다. 이와 동시에, 타겟 플래시 메모리(40)는 t3 시간 동안 데이터 버스(20)를 통해 공유된 데이터를 입력 받는다. 입력된 데이터는 타겟 플래시 메모리(40)의 데이터 입출력 회로(예를 들면, 페이지 버퍼)에 임시로 저장된다. 타겟 플래시 메모리(40)에는 라이트 인에이블 신호(WE#)가 토글될 때 마다 공유된 데이터가 타겟 플래시 메모리(40)의 데이터 입출력 회로에 저장된다.
메모리 컨트롤러(10)는 t4 시간 동안 제 2 쓰기 명령(WR_s)을 타겟 플래시 메모리(40)에 제공한다. 제 2 쓰기 명령(WR_s)이 제공되면 타겟 플래시 메모리(40)는 데이터 입출력 회로에 저장된 데이터를 메모리 셀에 쓰는 동작을 수행한다.
t3 시간 동안, 소스 플래시 메모리(30)의 칩 인에이블 신호(source CE#)와 타겟 플래시 메모리(40)의 칩 인에이블 신호(target CE#)는 동시에 활성화 된다. 즉, 메모리 장치 간에 직접 데이터 전송을 위하여, 동일 채널에 연결된 메모리 장치의 칩 인에이블 신호들이 동시에 활성화된다.
도 8은 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다. 도 8에서는 설명의 간략화를 위하여 네 개의 메모리 장치들로 구성된 멀티 칩 메모리 시스템을 예로 들어 설명하기로 한다.
멀티 칩 메모리 시스템(200, 이하 '메모리 시스템'이라 칭함)은 메모리 컨트롤러(memory controller, 110), 복수의 데이터 버스들(data bus, 120, 150) 그리고 복수의 불휘발성 메모리 장치들(130, 140, 160, 170)을 포함한다. 메모리 컨트롤러(110)를 제외한 구성 요소들은 도 1에서 전술한 바와 동일하기 때문에 생략하기로 한다.
메모리 컨트롤러(110)는 컨트롤 로직(control logic, 113) 그리고 에러 정정 회로(error correction code circuit, 115, 이하 'ECC 회로'라 칭함)를 포함한다.
컨트롤 로직(113)은 호스트 시스템으로부터 요청된 명령(예를 들면, 데이터의 읽기 또는 쓰기)을 실행하기 위하여 메모리 시스템(200)을 제어한다. 메모리 시스템(200)을 제어하기 위하여, 컨트롤 로직(113)은 통상적으로 펌웨어를 구동한다. 비록 도면에는 도시되지 않았지만, 메모리 컨트로러(110)에는 펌웨어를 구동하기 위한 램(RAM), 호스트와의 인터페이싱을 위한 호스트 인터페이스(host interface) 등이 더 포함될 수 있음은 잘 이해될 것이다.
ECC 회로(115)는 쓰기 동작 시에 플래시 메모리로 제공되는 데이터로부터 에러 정정 코드 데이터(error correction code data, 이하 'ECC 데이터'라 칭함)를 생성하고, 생성된 ECC 데이터를 플래시 메모리에 제공한다. 플래시 메모리에 제공된 ECC 데이터는 제공된 데이터와 함께 플래시 메모리에 저장된다. 또한 ECC 회로(115)는 읽기 동작 시에 플래시 메모리로부터 전송되는 데이터에 에러가 있는지의 여부를 검출하고 정정한다.
ECC 회로(115)는 플래시 메모리가 멀티 레벨 셀(multi level cell) 방식인 경우 N-비트 에러(N은 2 또는 그 보다 큰 정수)를 정정할 수 있고, 플래시 메모리가 싱글 레벨 셀(single level cell) 방식인 경우 1-비트 에러를 정정할 수 있다.
메모리 시스템(200)에서 플래시 메모리들(130, 140) 간에 데이터가 직접 전송될 때, ECC 회로(115)는 전송되는 데이터로부터 에러가 있는지의 여부를 검출한다. 소스 플래시 메모리(130)에서 출력된 데이터는 데이터 버스(120)를 통해 메모리 컨트롤러(110) 그리고 타겟 플래시 메모리(140)에 공유된다. 이 때, ECC 회로(115)는 공유된 데이터로부터 에러가 있는지의 여부를 검출한다. 에러가 있는 경우, 메모리 컨트롤러(110)는 플래시 메모리들(130, 140) 간에 직접 데이터를 전송하도록 다시 제어할 수 있다. 이러한 동작은 후술되는 도 9를 참조하여 상세히 설명된다.
메모리 시스템(200)에서 플래시 메모리들(130, 140) 간에 데이터가 직접 전송될 때, ECC 회로(115)는 전송되는 데이터로부터 에러가 있는지의 여부를 검출하고 정정한다. 소스 플래시 메모리(130)에서 출력된 데이터는 데이터 버스(120)를 통해 메모리 컨트롤러(110) 그리고 타겟 플래시 메모리(140)에 공유된다. 이 때, ECC 회로(115)는 공유된 데이터로부터 에러가 있는지의 여부를 검출한다. 에러가 있는 경우, ECC 회로(115)는 에러를 정정한다. 또한 메모리 컨트롤러(110)는 에러가 정정된 데이터를 저장하도록 타겟 플래시 메모리(140)를 제어한다. 이러한 동작은 후술되는 도 10a 내지 도 10b를 참조하여 상세히 설명된다.
도 9는 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스템에서 전송 에러 발생 시의 처리 방법을 보여주는 순서도이다.
도 9를 참조하면, 메모리 컨트롤러(110)는 소스 메모리 장치(130)에 제 1 읽기 명령을 제공한다(S310 단계). 메모리 컨트롤러(110)는 데이터를 읽어올 메모리 셀의 어드레스를 소스 메모리 장치(130)에 제공한다(S320 단계). 메모리 컨트롤러(10)는 소스 메모리 장치(130)에 제 2 읽기 명령을 제공한다(S330 단계).
소스 메모리 장치(130)가 메모리 셀에 저장된 데이터를 읽어오는 시간 동안(예를 들면, 읽기 시간(tR) 동안), 메모리 컨트롤러(110)는 타겟 메모리 장치(140)에 제 1 로컬 쓰기 명령과 데이터가 쓰여질 메모리 셀의 어드레스를 제공한다(S340 단계).
소스 메모리 장치(130)가 메모리 셀에 저장된 데이터를 읽어오는 소정의 시간이 지난 후에, 메모리 컨트롤러(110)는 소스 메모리 장치(130)과 타겟 메모리 장치(140)에 하나의 제어 신호를 제공한다. 예를 들면, 리드 인에이블 신호(RE#)를 토글한다. 토글되는 리드 인에이블 신호(RE#)에 응답하여, 소스 메모리 장치(130)는 메모리 셀에서 읽어온 데이터를 출력하여 데이터 버스에 공유시키고, 타겟 메모 리 장치(140)는 공유된 데이터를 입력한다(S350 단계).
이와 동시에, ECC 회로(115)는 공유된 데이터를 입력받아 에러가 있는지의 여부를 검출한다(S360 단계). 소스 메모리 장치(130)에서 출력된 데이터에 에러가 없으면, ECC 회로(115)는 패스(pass) 신호를 발생한다. 메모리 컨트롤러(110)는 패스 신호가 입력되면, 제 2 로컬 쓰기 명령을 제공한다(S370 단계). 제 2 로컬 쓰기 명령이 제공되면 타겟 메모리 장치(140)는 입력된 데이터를 메모리 셀에 쓰는 동작을 수행한다.
반면, 소스 메모리 장치(130)에서 출력된 데이터에 에러가 있으면, ECC 회로(115)는 메모리 컨트롤러(110)에 페일(fail) 신호를 발생한다. 메모리 컨트롤러(110)는 페일 신호가 입력되면, 소스 메모리 장치(130) 그리고 타겟 메모리 장치(140)를 리셋(reset) 시킨다(S380 단계). 그리고 S310 단계부터 플래시 메모리들(130, 140) 간에 직접 데이터 전송 동작을 다시 시작한다.
도 10a 내지 도 10b는 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스템에서 전송 에러 발생 시의 또 다른 처리 방법을 보여주는 순서도이다.
도 10a 내지 도 10b를 참조하면, 메모리 컨트롤러(110)는 소스 메모리 장치(130)에 제 1 읽기 명령을 제공한다(S405 단계). 메모리 컨트롤러(110)는 데이터를 읽어올 메모리 셀의 어드레스를 소스 메모리 장치(130)에 제공한다(S410 단계). 메모리 컨트롤러(10)는 소스 메모리 장치(130)에 제 2 읽기 명령을 제공한다(S415 단계).
소스 메모리 장치(130)가 메모리 셀에 저장된 데이터를 읽어오는 시간 동안 (예를 들면, 읽기 시간(tR) 동안), 메모리 컨트롤러(110)는 타겟 메모리 장치(140)에 제 1 로컬 쓰기 명령과 데이터가 쓰여질 메모리 셀의 어드레스를 제공한다(S420 단계).
소스 메모리 장치(130)가 메모리 셀에 저장된 데이터를 읽어오는 소정의 시간이 지난 후에, 메모리 컨트롤러(110)는 소스 메모리 장치(130)과 타겟 메모리 장치(140)에 하나의 제어 신호를 제공한다. 예를 들면, 리드 인에이블 신호(RE#)를 토글한다. 토글되는 리드 인에이블 신호(RE#)에 응답하여, 소스 메모리 장치(130)는 메모리 셀에서 읽어온 데이터를 출력하여 데이터 버스에 공유시키고, 타겟 메모리 장치(140)는 공유된 데이터를 입력한다(S425 단계).
이와 동시에, ECC 회로(115)는 공유된 데이터를 입력받아 에러가 있는지의 여부를 검출한다(S430 단계). 소스 메모리 장치(130)에서 출력된 데이터에 에러가 없으면, ECC 회로(115)는 패스(pass) 신호를 발생한다. 메모리 컨트롤러(110)는 패스 신호가 입력되면, 제 2 로컬 쓰기 명령을 제공한다(S435 단계). 제 2 로컬 쓰기 명령이 제공되면 타겟 메모리 장치(140)는 입력된 데이터를 메모리 셀에 쓰는 동작을 수행한다.
반면, 소스 메모리 장치(130)에서 출력된 데이터에 에러가 있으면, ECC 회로(115)는 검출된 에러가 정정 가능한지 판단한다(S445 단계). 검출된 에러가 정정이 가능하지 않으면 메모리 컨트롤러(110)는 소스 메모리 장치(130) 그리고 타겟 메모리 장치(140)를 리셋(reset) 시키고(S480 단계), S405 단계부터 플래시 메모리들(130, 140) 간에 직접 데이터 전송 동작을 다시 시작한다.
한편, 검출된 에러가 정정 가능하면, ECC 회로(115)는 입력받은 데이터의 에러를 정정한다(S450 단계). 메모리 컨트롤러(110)는 타겟 메모리 장치(140)를 리셋(reset)시키고, 타겟 메모리 장치(140)에 제 1 쓰기 명령을 제공한다(S455 단계). 또한 메모리 컨트롤러(110)는 데이터가 쓰여질 메모리 셀의 어드레스를 타겟 메모리 장치(140)에 제공한다(S460 단계). 여기에서 데이터가 쓰여질 메모리 셀의 어드레스는 S420 단계에서 제공된 메모리 셀의 어드레스와 동일하다. 다른 예로써, 메모리 컨트롤러(110)에 의해서 선택된 다른 메모리 셀의 어드레스가 제공될 수도 있다.
메모리 컨트롤러(110)는 ECC 회로(115)에서 정정된 데이터를 타겟 메모리 장치(140)에 전송한다(S465 단계). 메모리 컨트롤러(110)는 전송된 데이터를 메모리 셀에 저장하도록 타겟 메모리 장치(140)에 제 2 쓰기 명령을 제공한다(S470 단계). 제 2 쓰기 명령이 제공되면 타켓 메모리 장치(140)는 입력된 데이터를 메모리 셀에 쓰는 동작을 수행한다.
도 11은 본 발명의 제 4 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다. 도 11에서는 설명의 간략화를 위하여 네 개의 메모리 장치들로 구성된 멀티 칩 메모리 시스템을 예로 들어 설명하기로 한다.
멀티 칩 메모리 시스템(300, 이하 '메모리 시스템'이라 칭함)은 메모리 컨트롤러(memory controller, 210), 복수의 데이터 버스들(data bus, 220, 250) 그리고 복수의 불휘발성 메모리 장치들(230, 240, 260, 270)을 포함한다. 불휘발성 메모리 장치들(230, 240, 260, 270)을 제외한 구성 요소들은 도 1에서 전술한 바와 동일하 기 때문에 생략하기로 한다.
플래시 메모리(230)는 인터페이스 로직(231), 제어 로직(233) 그리고 메모리 코어(235)를 포함한다. 제어 로직(233)은 플래시 메모리(230)에 요청되는 명령(예를 들면, 읽기, 쓰기 또는 소거)들에 응답하여 제어 신호 또는 전압을 발생한다. 메모리 코어(235)는 데이터를 저장하기 위한 메모리 셀(도시되지 않음) 그리고 메모리 셀에서 데이터를 읽고, 메모리 셀에 데이터를 쓰기 위한 읽기/쓰기 회로(도시되지 않음)를 포함한다.
인터페이스 로직(231)은 메모리 컨트롤러(210)에서 입력된 제어 신호를 판별하여 제어 로직(233)에 판별 신호를 제공한다. 제어 신호는 칩 인에이블 신호(CE#), 어드레스 래치 인에이블 신호(address latch enable: ALE), 커맨드 래치 인에이블 신호(command latch enable: CLE), 라이트 인에이블 신호(write enalbe: WE#) 그리고 리드 인에이블 신호(read enable: RE#)를 포함할 수 있다.
호스트와 메모리 시스템(300) 사이에 빠른 데이터 전송 속도가 요구 됨에 따라 플래시 메모리(230) 역시 빠른 데이터 입출력 속도가 요구된다. 플래시 메모리(230)는 데이터 입출력 속도를 높이기 위하여 더블 데이터 레이트(double data rate, 이하 'DDR'이라 칭함) 기법을 사용할 수 있다. DDR 기법은 데이터 스트로브 신호(data strobe signal)의 라이징 엣지(rising edge)와 폴링 엣지(falling edge)에 동기되어 데이터가 입력 또는 출력되는 기법이다. 여기에서 데이터 스트로브 신호는 플래시 메모리(230)가 읽기 또는 쓰기 동작 시에 데이터를 입력 또는 출력하기 위한 레퍼런스 클럭(reference clock)으로 이용된다.
본 발명의 실시 예에 따르면 인터페이스 로직(231)은 데이터 스트로브 로직(237)을 더 포함한다. 데이터 스트로브 로직(237)은 외부에서 제공된 데이터 스트로브 신호를 수신하거나, 외부로 데이터 스트로브 신호를 발생하는 역할을 한다. 또한 전술한 로컬 읽기 또는 로컬 쓰기 명령이 제공되면, 데이터 스트로브 신호를 소정의 오프셋(offset) 값으로 조정할 수 있다. 플래시 메모리들(240, 260, 270)은 플래시 메모리(230)와 동일한 구성을 갖는다.
도 12는 본 발명의 제 4 실시 예에 따른 데이터 스트로브 신호를 설명하기 위한 다이어그램이다.
도 12를 참조하면, 읽기 동작 그리고 쓰기 동작 시에 데이터 스트로브 신호에 따른 데이터 신호가 도시되어 있다. 데이터 스트로브 신호가 토글될 때 데이터는 플래시 메모리(230)의 외부로 출력되거나 플래시 메모리(230)로 입력된다. 예를 들면, 데이터 스트로브 신호가 논리 '0'(또는 논리 'low')에서 논리 '1'(또는 논리 'high')로 상태가 변경될 때 데이터는 플래시 메모리(230)의 외부로 출력되거나 플래시 메모리(230)로 입력된다. 또는 데이터 스트로브 신호가 논리 '1'(또는 논리 'high')에서 논리 '0'(또는 논리 'low')으로 상태가 변경될 때 데이터는 플래시 메모리(230)의 외부로 출력되거나 플래시 메모리(230)로 입력된다.
플래시 메모리(230)의 읽기 동작 시에 데이터 스트로브 신호는 데이터 신호의 엣지(edge)에 정렬되어 데이터 신호와 함께 플래시 메모리(230)의 외부로 출력된다. 즉, 데이터 스트로브 신호의 라이징 엣지 또는 폴링 엣지와 데이터 신호의 엣지가 일치한다. 플래시 메모리(230)의 쓰기 동작 시에 데이터 스트로브 신호는 데이터 신호의 중앙(center)에 정렬되어 데이터 신호와 함께 플래시 메모리(230)로 입력된다. 즉, 데이터 스트로브 신호의 라이징 엣지 또는 폴링 엣지와 데이터 신호의 중앙이 일치한다. 따라서 읽기 동작 시의 데이터 스트로브 신호와 쓰기 동작 시의 데이터 스트로브 신호 사이에는 시간 차이(Δt)가 존재하게 된다.
본 발명의 실시 예에 따르면, 플래시 메모리들(230, 240) 간에 직접 데이터를 전송할 때, 소스 플래시 메모리(230)에는 읽기 명령, 데이터 그리고 읽기 데이터 스트로브 신호가 제공된다. 또한 타겟 플래시 메모리(240)에는 로컬 쓰기 명령, 데이터 버스(220)에 공유된 데이터 그리고 데이터 버스(220)에 공유된 읽기 스트로브 신호가 제공된다. 따라서 타겟 플래시 메모리(240)는 데이터 스트로브 로직(237)을 통하여 읽기 스트로브 신호를 소정의 오프셋 값으로 조정하여 로컬 쓰기 동작을 실행한다.
다른 예로써, 플래시 메모리들(230, 240) 간에 직접 데이터를 전송할 때, 소스 플래시 메모리(230)에는 로컬 읽기 명령, 데이터 그리고 쓰기 데이터 스트로브 신호가 제공된다. 또한 타겟 플래시 메모리(240)에는 쓰기 명령, 데이터 버스(220)에 공유된 데이터 그리고 데이터 버스(220)에 공유된 쓰기 데이터 스트로브 신호가 제공된다. 따라서 소스 플래시 메모리(230)는 데이터 스트로브 로직(237)을 통하여 쓰기 스트로브 신호를 소정의 오프셋 값으로 조정하여 로컬 읽기 동작을 실행한다.
도 13은 본 발명의 제 4 실시 예에 따른 데이터 스트로브 로직의 블럭 다이어그램이다.
도 13을 참조하면, 데이터 스트로브 로직(237)은 데이터 스트로브 신호 발생 기(238) 그리고 스트로브 오프셋 로직(239)을 포함한다. 데이터 스트로브 신호 발생기(238)는 데이터 스트로브 신호를 생성하거나 수신한다. 예를 들면, 데이터 스트로브 신호 발생기(238)는 플래시 메모리(230)에서 출력되는 데이터와 동기되어 출력되도록 데이터 스트로브 신호를 생성하여 출력한다. 또한 데이터 스트로브 신호 발생기(238)는 플래시 메모리(230)에 입력되는 데이터와 동기되어 입력되는 데이터 스트로브 신호를 받아들이고 판별한다.
스트로브 오프셋 로직(239)은 로컬 쓰기 명령 또는 로컬 읽기 명령에 따라 활성화되어 입력 또는 출력되는 데이터 스트로브 신호를 소정의 오프셋 값으로 조정한다. 예를 들면, 로컬 쓰기 명령이 제공되면 로컬 쓰기 인에이블 신호(local write enable)가 스트로브 오프셋 로직(239)에 제공되고, 스트로브 오프셋 로직(239)은 입력된 읽기 데이터 스트로브 신호를 소정의 값만큼 지연시킬 수 있다. 지연된 읽기 데이터 스트로브 신호는 쓰기 데이터 스트로브 신호와 동일한 위상이 될 수 있다. 또한 로컬 읽기 명령이 제공되면 로컬 읽기 인에이블 신호(local read enable)가 스트로브 오프셋 로직(239)에 제공되고, 스트로브 오프셋 로직(239)은 입력된 쓰기 데이터 스트로브 신호를 소정의 값만큼 지연시킬 수 있다. 지연된 쓰기 데이터 스트로브 신호는 읽기 데이터 스트로브 신호와 동일한 위상이 될 수 있다.
스트로브 오프셋 로직(239)이 조정하는 오프셋 값은 고정된 값일 수 있다. 다른 예로써, 스트로브 오프셋 로직(239)이 조정하는 오프셋 값은 메모리 컨트롤러(210)가 플래시 메모리를 테스트하여 결정되는 값일 수 있다.
본 발명의 실시 예에 따르면, 소스 플래시 메모리에서 출력된 데이터는 데이터 버스를 통해 동일한 데이터 버스에 연결된 타겟 플래시 메모리에 공유된다. 따라서 데이터 버스에 실린 데이터는 메모리 컨트롤러로 이동되지 않은 상태에서 타겟 플래시 메모리로 직접 제공될 수 있다. 이 때, 타겟 플래시 메모리는 메모리 컨트롤러의 제어에 따라 데이터 버스에 실린 데이터에 대한 쓰기 동작을 수행할 것이다. 이와 같은 방법으로 메모리 장치들 간에 데이터를 직접 전송하는 동작들은 플래시 메모리를 관리하는 데 필요한 동작들에 의해서 발생될 수 있다.
예를 들면, 플래시 메모리의 마모도 관리를 위한 웨어-레벨링(wear-leveling) 동작 중에 발생될 수 있다. 즉, 마모가 많은 메모리 블럭(block)에서 마모가 적은 메모리 블럭으로 데이터를 이동할 때 플래시 메모리들 간에 데이터를 직접 전송하는 동작이 발생할 수 있다. 다른 예로써, 플래시 메모리의 용량을 효율적으로 사용하기 위한 가비지 컬렉션(garbage collection) 동작 중에 발생될 수 있다. 즉, 조각난 데이터가 여러 페이지(page)에 나누어 저장된 경우, 하나의 블럭에 조각난 데이터를 모아서(merge) 저장할 때 플래시 메모리들 간에 데이터를 직접 전송하는 동작이 발생할 수 있다. 이러한 동작들은 메모리 컨트롤러의 제어 하에 행해질 것이다.
메모리 컨트롤러는 메모리 장치들 간에 데이터를 직접 전송하는 동작들을 제어한다. 즉, 메모리 컨트롤러는 동작 모드에 따라 명령 및 제어 신호를 메모리 장치들에 제공한다. 예를 들면, 메모리 컨트롤러는 쓰기 제어 신호에 응답하여 소스 데이터를 읽어내도록 소스 메모리 장치에 명령과 제어 신호를 제공한다. 다른 예로 써, 메모리 컨트롤러는 읽기 제어 신호에 응답하여 소스 데이터를 저장하도록 타겟 메모리 장치에 명령과 제어 신호를 제공한다. 다른 예로써, 메모리 컨트롤러는 소스 및 타겟 메모리 장치들 간에 데이터를 직접 전송하는 동작 중에 에러가 발생하는 경우, 소스 및 타겟 메모리 장치들을 리셋하고, 전송 동작이 다시 수행되도록 소스 및 타겟 메모리 장치들을 제어한다. 또한 메모리 컨트롤러는 에러 정정 회로를 통하여 소스 데이터의 에러를 정정하고, 타겟 메모리 장치가 정정된 데이터를 저장하도록 명령과 제어 신호를 제공한다. 다른 예로써, 메모리 컨트롤러는 명령 및 제어 신호와 함께 데이터를 입력 또는 출력하기 위한 데이터 스트로브 신호를 설정하여 제공한다.
도 14는 본 발명의 실시 예에 따른 플래시 메모리 장치를 포함하는 또 다른 메모리 시스템을 예시적으로 보여주는 블럭도이다.
도 14를 참조하면, 메모리 시스템(1000)은 메모리 컨트롤러(950) 및 불휘발성 메모리 장치들(990 내지 992)을 포함할 수 있다.
메모리 컨트롤러(950)는 호스트(Host, 910) 및 불휘발성 메모리 장치들(990 내지 992)에 연결된다. 호스트(910)로부터의 요청에 응답하여, 메모리 컨트롤러(950)는 불휘발성 메모리 장치들(990 내지 992)을 액세스하도록 구성된다. 예를 들면, 메모리 컨트롤러(950)는 불휘발성 메모리 장치들(990 내지 992)의 읽기, 쓰기 그리고 소거 동작을 제어하도록 구성된다. 또한 메모리 컨트롤러(950)는 불휘발성 메모리 장치들(990 내지 992) 간에 직접 데이터 이동을 제어하도록 구성된다. 메모리 컨트롤러(950)는 불휘발성 메모리 장치들(990 내지 992) 및 호스트(910) 사 이에 인터페이스를 제공하도록 구성된다. 메모리 컨트롤러(950)는 불휘발성 메모리 장치(990)를 제어하기 위한 펌웨어(Firmware)를 구동하도록 구성된다.
메모리 컨트롤러(950)는 램(Random Access Memory: RAM), 중앙처리장치(Central Processing Unit: CPU), 호스트 인터페이스(Host Interface), 에러 정정 블럭(Error Correcting Code: ECC), 그리고 메모리 인터페이스(Memory Interface)와 같은 잘 알려진 구성 요소들을 포함할 수 있다. 램(951)은 중앙처리장치의 동작 메모리(Working Memory)로써 이용될 수 있다. 중앙처리장치(953)는 메모리 컨트롤러(950)의 제반 동작을 제어할 수 있다.
호스트 인터페이스(955)는 호스트(910) 및 메모리 컨트롤러(950) 사이의 데이터 교환을 수행하기 위한 프로토콜(Protocol)을 포함할 수 있다. 예를 들면, 메모리 컨트롤러(950)는 USB(Universal Serial Bus) 프로토콜, MMC(Multimedia Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, SATA(Serial ATA) 프로토콜, SCSI(Small Computer Small Interface) 프로토콜, ESDI(Enhanced Small Disk Interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
에러 정정 블럭(957)은 불휘발성 메모리 장치(990)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다. 에러 정정 블럭(957)은 메모리 컨트롤러(950)의 구성 요소로 제공될 수 있다. 다른 예로써, 에러 정정 블럭(957)은 불 휘발성 메모리 장치(990)의 구성 요소로 제공될 수 있다. 메모리 인터페이스(959)는 불휘발성 메모리 장치들(990 내지 992)과 인터페이싱(Interfacing)할 수 있다. 비록 도면에는 도시되지 않았지만, 메모리 시스템(900)은 호스트(910)와의 인터페이싱을 위한 코드 데이터(Code Data)를 저장하는 ROM(Read Only Memory)등이 더 제공될 수 있음은 잘 이해될 것이다.
메모리 컨트롤러(950) 및 불휘발성 메모리 장치들(990 내지 992)은 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 컨트롤러(950) 및 불휘발성 메모리 장치들(990 내지 992)은 하나의 반도체 장치로 집적되어 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick), 멀티 미디어(Multi Media) 카드(MMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD, SDHC), UFS(Universal Flash Storage) 등을 구성할 수 있다.
다른 예로써, 메모리 시스템(1000)은 반도체 드라이브(Solid State Drive: SSD), 컴퓨터, 휴대용 컴퓨터(Portable Computer), UMPC(Ultra Mobile Personal Computer), 워크스테이션(Work Station), 넷북(Net Book), PDA(Personal Digital Assistant), 웹 타블렛(Web Tablet), 무선 전화기(Wireless Phone), 모바일 폰(Mobile Phone), 디지털 카메라(Digital Camera), 디지털 음성 녹음기(Digital Audio Recorder), 디지털 음성 재생기(Digital Audio Player), 디지털 동영상 녹화기(Digital Video Recorder), 디지털 동영상 재생기(Digital Video Player), 정보 를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크(Home Network)를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크(Computer Network)를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크(Telematics Network)를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 시스템(Computer System)을 구성하는 다양한 구성 요소들 중 하나, RFID(Radio Frequency Identification) 장치 또는 임베디드 시스템(Embedded System)에 적용될 수 있다.
다른 예로써, 불휘발성 메모리 장치들(990 내지 992) 또는 메모리 시스템(1000)은 다양한 형태들의 패키지(Package)로 실장될 수 있다. 예를 들면, 불휘발성 메모리 장치들(990 내지 992) 또는 메모리 시스템(1000)은 POP(Package on Package), Ball grid arrays(BGAs), Chip Scale Packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화 되어 실장될 수 있다.
도 1은 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 내부 동작을 설명하기 위한 다이어그램이다.
도 3은 종래 기술에 따른 플래시 메모리의 쓰기 동작에 대한 타이밍 다이어그램이다.
도 4는 종래 기술에 따른 플래시 메모리의 읽기 동작에 대한 타이밍 다이어그램이다.
도 5는 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 타이밍 다이어그램이다.
도 6은 본 발명의 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 순서도이다.
도 7은 본 발명의 제 2 실시 예에 따른 멀티 칩 메모리 시스템의 메모리 장치 간에 직접 데이터 전송을 보여주는 타이밍 다이어그램이다.
도 8은 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다.
도 9는 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스템에서 전송 에러 발생 시의 처리 방법을 보여주는 순서도이다.
도 10a 내지 도 10b는 본 발명의 제 3 실시 예에 따른 멀티 칩 메모리 시스 템에서 전송 에러 발생 시의 또 다른 처리 방법을 보여주는 순서도이다.
도 11은 본 발명의 제 4 실시 예에 따른 멀티 칩 메모리 시스템의 구성을 보여주는 다이어그램이다.
도 12는 본 발명의 제 4 실시 예에 따른 데이터 스트로브 신호를 설명하기 위한 다이어그램이다.
도 13은 본 발명의 제 4 실시 예에 따른 데이터 스트로브 로직의 블럭 다이어그램이다.
도 14는 본 발명의 실시 예에 따른 플래시 메모리 장치를 포함하는 또 다른 메모리 시스템을 예시적으로 보여주는 블럭도이다.

Claims (10)

  1. 제 1 및 제 2 불휘발성 메모리 장치들;
    상기 제 1 및 제 2 불휘발성 메모리 장치들을 제어하는 메모리 컨트롤러; 및
    상기 제 1 및 제 2 불휘발성 메모리 장치들과 상기 메모리 컨트롤러 간의 데이터 전송을 위한 데이터 버스를 포함하되,
    상기 메모리 컨트롤러는 상기 제 1 불휘발성 메모리 장치에 저장된 데이터를 상기 데이터 버스로 출력하는 제 1 동작과 상기 데이터 버스로 출력된 데이터를 상기 제 2 불휘발성 메모리 장치에 입력하는 제 2 동작이 동시에 이루어지도록 상기 제 1 및 제 2 불휘발성 메모리 장치들을 제어하되, 상기 제 1 불휘발성 메모리 장치에서 출력된 데이터는 상기 메모리 컨트롤러를 경유하지 않고 상기 데이터 버스를 통해 상기 제 2 불휘발성 메모리 장치로 직접 제공되고,
    상기 제 1 및 제 2 동작들은 상기 메모리 컨트롤러로부터 제공되는 하나의 읽기 제어 신호에 함께 응답하여 이루어지고,
    상기 제 1 및 제 2 동작들이 이루어지는 동안, 상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치들의 인에이블 신호를 동시에 활성화 시키는 멀티 칩 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 불휘발성 메모리 장치에서 출력된 데이터가 상기 제 2 불휘발성 메모리 장치로 입력된 후, 상기 메모리 컨트롤러는:
    상기 제 1 불휘발성 메모리 장치의 인에이블 신호를 활성화시키지 않고,
    상기 제 1 불휘발성 메모리 장치로부터 제공된 데이터가 상기 제 2 불휘발성 메모리 장치에 기록되도록, 상기 제 2 불휘발성 메모리 장치로 로컬 쓰기 명령을 제공하는 멀티 칩 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터를 직접 전송하기 위한 로컬 쓰기 명령 및 상기 읽기 제어 신호를 발생하도록 구성된 멀티 칩 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 제 1 불휘발성 메모리 장치는 상기 읽기 제어 신호에 따라 데이터를 출력하고, 상기 제 2 불휘발성 메모리 장치는 상기 로컬 쓰기 명령이 제공되면 상기 읽기 제어 신호에 따라 데이터를 저장하는 멀티 칩 메모리 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 및 제 2 불휘발성 메모리 장치들은 데이터를 입력 또는 출력하기 위한 데이터 스트로브 신호를 수신하고 발신하는 데이터 스트로브 발생기를 포함하되,
    상기 데이터 스트로브 발생기는 상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터가 직접 전송되는 동안 상기 데이터 스트로브 신호의 위상을 소정의 오프셋 값으로 조정하는 멀티 칩 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 로컬 쓰기 명령이 제공되면, 상기 제 2 불휘발성 메모리 장치는 쓰기 데이터 스트로브 신호와 동일하도록 입력되는 읽기 데이터 스트로브 신호의 위상을 조정하고 상기 조정된 읽기 데이터 스트로브 신호에 따라 데이터를 저장하는 멀티 칩 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 및 제 2 불휘발성 메모리 장치 간에 전송되는 데이터의 에러를 검출하고 정정하기 위한 에러 정정 회로를 포함하는 멀티 칩 메모리 시스템.
  8. 제 7 항에 있어서,
    상기 제 1 및 제 2 불휘발성 메모리 장치들 간에 데이터가 직접 전송되는 동안 상기 전송되는 데이터에서 에러가 검출되면 상기 에러 정정 회로를 통하여 정정된 데이터는 상기 메모리 컨트롤러를 통하여 상기 제 2 불휘발성 메모리 장치에 저장되는 멀티 칩 메모리 시스템.
  9. 제 1 및 제 2 불휘발성 메모리 장치들, 및 메모리 컨트롤러를 포함하는 멀티 칩 메모리 시스템의 데이터 전송 방법에 있어서:
    상기 제 1 불휘발성 메모리 장치에서, 상기 제 1 불휘발성 메모리에 저장된 데이터를 출력하기 위한 제 1 동작을 준비하는 단계;
    상기 제 2 불휘발성 메모리 장치에서, 상기 제 1 불휘발성 메모리 장치로부터 출력되는 데이터를 입력받기 위한 제 2 동작을 준비하는 단계;
    상기 제 1 및 제 2 불휘발성 메모리 장치들에서 각각 상기 제 1 및 제 2 동작들이 수행되도록, 상기 메모리 컨트롤러로부터 상기 제 1 및 제 2 불휘발성 메모리 장치들로 하나의 제어 신호를 제공하는 단계; 및
    상기 제 1 불휘발성 메모리 장치로부터 입력받은 데이터가 저장되도록 상기 제 2 불휘발성 메모리 장치를 제어하는 단계를 포함하되,
    상기 제 1 및 제 2 동작들은 상기 메모리 컨트롤러로부터 제공되는 상기 하나의 제어 신호에 함께 응답하여 동시에 수행되고,
    상기 제 1 불휘발성 메모리 장치로부터 출력된 데이터는 상기 메모리 컨트롤러를 경유하지 않고, 상기 제 1 및 제 2 불휘발성 메모리 장치들을 서로 연결하는 데이터 버스를 통해 상기 제 2 불휘발성 메모리 장치로 직접 제공되는 데이터 전송 방법.
  10. 제 9 항에 있어서,
    상기 하나의 제어 신호가 상기 제 1 및 제 2 불휘발성 메모리 장치들로 제공되는 동안, 상기 제 1 및 제 2 불휘발성 메모리 장치들이 동시에 활성화 되는 데이터 전송 방법.
KR1020090114684A 2009-11-25 2009-11-25 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법 KR101626084B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020090114684A KR101626084B1 (ko) 2009-11-25 2009-11-25 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
US12/917,683 US8473811B2 (en) 2009-11-25 2010-11-02 Multi-chip memory system and related data transfer method
CN201010569572.3A CN102096647B (zh) 2009-11-25 2010-11-24 多芯片存储器系统和相关的数据传送方法
TW099140780A TW201142605A (en) 2009-11-25 2010-11-25 Multi-chip memory system and related data transfer method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090114684A KR101626084B1 (ko) 2009-11-25 2009-11-25 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법

Publications (2)

Publication Number Publication Date
KR20110058028A KR20110058028A (ko) 2011-06-01
KR101626084B1 true KR101626084B1 (ko) 2016-06-01

Family

ID=44062988

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090114684A KR101626084B1 (ko) 2009-11-25 2009-11-25 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법

Country Status (4)

Country Link
US (1) US8473811B2 (ko)
KR (1) KR101626084B1 (ko)
CN (1) CN102096647B (ko)
TW (1) TW201142605A (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008063199A1 (en) * 2006-11-20 2008-05-29 Rambus Inc. Memory systems and methods for dynamically phase adjusting a write strobe and data to account for receive-clock drift
CN102411548B (zh) * 2011-10-27 2014-09-10 忆正存储技术(武汉)有限公司 闪存控制器以及闪存间数据传输方法
CN102543189A (zh) * 2012-02-28 2012-07-04 北京忆恒创源科技有限公司 半导体存储器、接口电路及其访问方法
KR101964261B1 (ko) 2012-05-17 2019-04-01 삼성전자주식회사 자기 메모리 장치
KR102012740B1 (ko) 2012-07-18 2019-08-21 삼성전자주식회사 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법
CN103577365A (zh) 2012-07-19 2014-02-12 财团法人工业技术研究院 便携式电子装置
KR102025240B1 (ko) 2013-04-01 2019-11-04 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102077072B1 (ko) * 2013-07-05 2020-02-14 에스케이하이닉스 주식회사 병렬 테스트 장치 및 방법
JP2015056105A (ja) * 2013-09-13 2015-03-23 株式会社東芝 不揮発性半導体記憶装置
KR102138110B1 (ko) * 2013-10-04 2020-07-27 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치 및 그것의 동작 방법
KR102130494B1 (ko) 2014-04-28 2020-07-07 에스케이하이닉스 주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
KR102296740B1 (ko) 2015-09-16 2021-09-01 삼성전자 주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
US10162558B2 (en) 2015-10-30 2018-12-25 Micron Technology, Inc. Data transfer techniques for multiple devices on a shared bus
US10078458B1 (en) * 2016-03-31 2018-09-18 EMC IP Holding Company LLC Method and system for adaptively migrating data in solid state memory
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
US10339050B2 (en) * 2016-09-23 2019-07-02 Arm Limited Apparatus including a memory controller for controlling direct data transfer between first and second memory modules using direct transfer commands
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
JP6395919B1 (ja) * 2017-12-13 2018-09-26 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102513919B1 (ko) * 2018-11-05 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템
US10949117B2 (en) * 2018-09-24 2021-03-16 Micron Technology, Inc. Direct data transfer in memory and between devices of a memory module
KR20200036461A (ko) 2018-09-28 2020-04-07 삼성전자주식회사 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스
CN110209352B (zh) * 2019-05-14 2023-03-14 西安艾可萨科技有限公司 一种存储器的控制方法、存储器控制器、电子设备及存储介质
US10936234B2 (en) * 2019-05-22 2021-03-02 Macronix International Co., Ltd. Data transfer between memory devices on shared bus
JP6982127B2 (ja) 2020-04-20 2021-12-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11749335B2 (en) 2020-11-03 2023-09-05 Jianzhong Bi Host and its memory module and memory controller

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100764749B1 (ko) 2006-10-03 2007-10-08 삼성전자주식회사 멀티-칩 패키지 플래시 메모리 장치 및 그것의 카피 백방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10207825A (ja) * 1997-01-28 1998-08-07 Matsushita Electric Ind Co Ltd データ転送装置
JPH11338782A (ja) 1998-05-27 1999-12-10 Oki Electric Ind Co Ltd 記憶装置及びその欠陥セクタ代替方法
JP4017177B2 (ja) * 2001-02-28 2007-12-05 スパンション エルエルシー メモリ装置
JP4082913B2 (ja) * 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
JP4322021B2 (ja) * 2003-02-06 2009-08-26 株式会社ルネサステクノロジ メモリカード
KR100594280B1 (ko) * 2004-06-23 2006-06-30 삼성전자주식회사 프로그램 동작시 비트라인의 전압을 조절하는 비트라인전압 클램프 회로를 구비하는 플래쉬 메모리장치 및 이의비트라인 전압 제어방법
DK3422583T3 (da) * 2004-08-30 2020-09-28 Google Llc System og fremgangsmåde for at tilvejebringe ikke-flygtig hukommelsesadministration i trådløse telefoner
KR100695890B1 (ko) * 2004-10-29 2007-03-19 삼성전자주식회사 멀티 칩 시스템 및 그것의 데이터 전송 방법
US7426607B2 (en) * 2005-08-05 2008-09-16 Infineon Technologies Ag Memory system and method of operating memory system
JP4528242B2 (ja) * 2005-10-20 2010-08-18 富士通セミコンダクター株式会社 メモリシステムおよびメモリシステムの動作方法
JP2007226380A (ja) * 2006-02-22 2007-09-06 Ricoh Co Ltd 不揮発性メモリカード
US7562180B2 (en) * 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory
KR100843546B1 (ko) * 2006-11-21 2008-07-04 삼성전자주식회사 멀티 칩 패키지 플래시 메모리 장치 및 그것의 상태 신호독출 방법
JP4789263B2 (ja) 2006-11-28 2011-10-12 エヌイーシーコンピュータテクノ株式会社 メモリ制御システム、メモリ制御装置、メモリ制御方法
JP5014821B2 (ja) 2007-02-06 2012-08-29 株式会社日立製作所 ストレージシステム及びその制御方法
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP5363460B2 (ja) * 2008-07-30 2013-12-11 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100764749B1 (ko) 2006-10-03 2007-10-08 삼성전자주식회사 멀티-칩 패키지 플래시 메모리 장치 및 그것의 카피 백방법

Also Published As

Publication number Publication date
KR20110058028A (ko) 2011-06-01
US8473811B2 (en) 2013-06-25
TW201142605A (en) 2011-12-01
CN102096647A (zh) 2011-06-15
US20110126066A1 (en) 2011-05-26
CN102096647B (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
KR101626084B1 (ko) 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
US9274886B2 (en) Data storage device having a reduced error occurrence, operating method thereof, and data processing system including the same
KR101431205B1 (ko) 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법
US8738842B2 (en) Solid state disk controller and data processing method thereof
KR20150124751A (ko) 불휘발성 메모리 시스템
TWI467574B (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
KR102526608B1 (ko) 전자 장치 및 그것의 동작 방법
US9998151B2 (en) Data storage device and operating method thereof
US20180267724A1 (en) Data transfer training method and data storage device performing the same
US10902928B2 (en) Memory system, operation method thereof, and nonvolatile memory device
CN113808649A (zh) 存储器装置及其操作方法
US11442664B2 (en) Memory system and method of operating the same
US10698819B2 (en) Memory system and operating method thereof
CN107066201B (zh) 数据存储装置及其方法
US10754552B2 (en) Data storage device and operating method thereof
CN106816168B (zh) 半导体存储器件
KR102029933B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20190099879A (ko) 메모리 컨트롤러 및 그 동작 방법
US20190227715A1 (en) Memory controller and operating method thereof
US11586379B2 (en) Memory system and method of operating the same
KR20170031311A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9778864B2 (en) Data storage device using non-sequential segment access and operating method thereof
US11782644B2 (en) Memory system and method of operating the same
KR101175250B1 (ko) 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
US20140063956A1 (en) Nonvolatile memory device and operating method thereof

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: 20190429

Year of fee payment: 4