KR20080083474A - 플래시 메모리를 기반으로 한 메모리 시스템 - Google Patents

플래시 메모리를 기반으로 한 메모리 시스템 Download PDF

Info

Publication number
KR20080083474A
KR20080083474A KR1020070024090A KR20070024090A KR20080083474A KR 20080083474 A KR20080083474 A KR 20080083474A KR 1020070024090 A KR1020070024090 A KR 1020070024090A KR 20070024090 A KR20070024090 A KR 20070024090A KR 20080083474 A KR20080083474 A KR 20080083474A
Authority
KR
South Korea
Prior art keywords
information
program operation
data
copyback
flash memory
Prior art date
Application number
KR1020070024090A
Other languages
English (en)
Other versions
KR100918707B1 (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 KR1020070024090A priority Critical patent/KR100918707B1/ko
Priority to US11/748,063 priority patent/US7941586B2/en
Priority to JP2008059901A priority patent/JP5427360B2/ja
Publication of KR20080083474A publication Critical patent/KR20080083474A/ko
Application granted granted Critical
Publication of KR100918707B1 publication Critical patent/KR100918707B1/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

여기에 제공되는 메모리 시스템은 플래시 메모리와; 중앙처리장치와; 그리고 카피백 프로그램 동작시 상기 중앙처리장치에 의해서 설정되는 어드레스 및 제어 레지스터들을 구비하며, 펌웨어의 개입없이 상기 레지스터들에 저장된 정보에 따라 상기 플래시 메모리의 카피백 프로그램 동작을 하드웨어적으로 제어하는 플래시 컨트롤러를 포함한다.

Description

플래시 메모리를 기반으로 한 메모리 시스템{FLASH MEMORY-BASED MEMORY SYSTEM}
도 1은 본 발명에 따른 플래시 메모리를 기반으로 한 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 어드레스 레지스터를 보여주는 도면이다.
도 3은 도 1에 도시된 제어 레지스터를 보여주는 도면이다.
도 4는 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작을 설명하기 위한 타이밍도이다.
도 5는 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작시 데이터 흐름을 보여주는 도면이다.
도 6은 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작을 설명하기 위한 타이밍도이다.
도 7은 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작시 데이터 흐름을 보여주는 도면이다.
도 8은 카피백 프로그램 동작시 수행하는 에러 검출 및 정정 동작을 설명하기 위한 도면이다.
도 9는 본 발명에 따른 메모리 시스템의 2-플랜 카피백 프로그램 동작을 설 명하기 위한 도면이다.
도 10은 본 발명에 따른 메모리 시스템의 2-플랜 카피백 프로그램 동작의 다른 실시예를 설명하기 위한 도면이다.
도 11은 본 발명의 다른 실시예에 따른 플래시 메모리를 개략적으로 보여주는 블록도이다.
도 12 내지 도 13은 도 11에 도시된 플래시 메모리 장치에 반복 명령 및 반복 데이터를 제공하는 방법들을 설명하기 위한 도면들이다.
* 도면의 주요 부분에 대한 부호 설명 *
100: 플래시 메모리 200: 플래시 컨트롤러
210, 400: 램 220: 어드레스 레지스터
230: 제어 레지스터 240: ECC
250: 스테이트 머신 300: 중앙처리장치
본 발명은 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리를 기반으로 한 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 데이터의 읽기/쓰기를 자유롭게 할 수 있지만 전원을 끊으면 내용이 사라져 버리는 RAM과, 한번 쓴 내용은 삭제되지 않지만 전원을 끊더라도 내용이 사라지지 않는 ROM을 포함하며, 플래시 메모리 장치는 양쪽의 요소들 을 겸비한 메모리이다. 플래쉬 메모리 장치를 카드형으로 패키지 한 것은 메모리 카드(또는 플래시 메모리 카드)라 불리며, 디지털 카메라나 휴대용 뮤직 플레이어 등 디지털 기기의 기억매체로서 급속히 보급되고 있다. 또한, 플래시 메모리 장치의 패키지에 USB 커넥터를 부착한 USB 메모리는 플로피디스크를 대신하는 PC용의 간편한 데이터 교환용 미디어로서 기대 받고 있다. 최근에는 PC의 마더보드 상에 플래시 메모리 장치를 장착하여, BIOS 기억용으로 사용 하는 예도 있다.
플래시 메모리의 용량이 증가함에 따라, 플래시 메모리를 기반으로 한 메모리 시스템(예를 들면, 메모리 카드)의 성능은 플래시 메모리를 관리하는 데 필요한 동작들에 의해서 제한되고 있다. 예를 들면, 플래시 메모리는 카피백 프로그램 동작, 머지 동작, 등을 필요로 한다. 카피백 프로그램 동작이란 임의의 페이지의 데이터를 다른 페이지로 복사하는 동작을 의미하고, 머지 동작은 임의의 메모리 블록에 속하는 유효한 페이지들의 데이터를 다른 메모리 블록으로 복사하는 동작을 의미한다. 이러한 동작들은 일련의 명령, 어드레스, 그리고 데이터의 생성을 필요로 하며, 이는 펌웨어의 제어하에 행해질 것이다. 잘 알려진 바와 같이, 펌웨어의 개입 시간이 증가하면 할 수록 메모리 시스템의 성능은 더욱 저하될 것이다.
본 발명의 목적은 동작 성능을 향상시킬 수 있는 플래시 메모리를 기반으로 한 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 하드웨어를 통해 카피백 동작을 제어할 수 있는 플래시 메모리를 기반으로 한 메모리 시스템을 제공하는 것이다.
본 발명의 예시적인 실시예들은 플래시 메모리와; 중앙처리장치와; 그리고 카피백 프로그램 동작시 상기 중앙처리장치에 의해서 설정되는 어드레스 및 제어 레지스터들을 구비하며, 펌웨어의 개입없이 상기 레지스터들에 저장된 정보에 따라 상기 플래시 메모리의 카피백 프로그램 동작을 하드웨어적으로 제어하는 플래시 컨트롤러를 포함하는 메모리 시스템을 제공할 것이다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 플래시 메모리의 카피백 프로그램 동작이 종료되었는 지의 여부를 인터럽트를 통해 상기 중앙처리장치에 알려준다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 카피백 프로그램 동작 동안 일련의 명령, 어드레스, 그리고 데이터를 펌웨어의 개입없이 생성하도록 구성된다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 카피백 프로그램 동작 동안 소오스 데이터에 대한 에러 정정 및 검출 동작을 수행하도록 구성된다.
예시적인 실시예에 있어서, 상기 소오스 데이터로부터 에러가 검출되지 않을 때, 상기 플래시 컨트롤러는 상기 어드레스 레지스터에 설정된 정보에 따라 목적지 어드레스 및 명령을 상기 플래시 메모리로 출력한다.
예시적인 실시예에 있어서, 상기 소오스 데이터로부터 에러가 검출될 때, 상기 플래시 컨트롤러는 에러-정정된 데이터와 함께 상기 어드레스 레지스터에 설정된 정보에 따라 목적지 어드레스 및 명령을 상기 플래시 메모리로 출력한다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 제어 레지스터에 설정된 정보에 따라 상기 플래시 메모리의 카피백 프로그램 동작을 반복적으로 수행한다.
예시적인 실시예에 있어서, 상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 동일 플랜에서 페이지 데이터가 복사된다.
예시적인 실시예에 있어서, 상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 상이한 플랜들에서 페이지 데이터가 동시에 복사된다.
예시적인 실시예에 있어서, 상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 제 1 플랜에서 제 2 플랜으로 페이지 데이터가 복사된다.
예시적인 실시예에 있어서, 상기 제어 레지스터는 하드웨어 카피백 프로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, ECC 자동 정정 정보, 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 목적지 어드레스 증가/감소 정보, 그리고 플랜 선택 정보와 같은 제어 정보를 포함한다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 제어 레지스터의 하드웨어 카피백 프로그램 개시 정보가 설정될 때 상기 카피백 프로그램 동작을 제어한다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 하드웨어 카피백 반복 횟수 정보, 상기 소오스 어드레스 증가/감소 정보, 그리고 목적지 어드레스 증가/감소 정보에 따라 카피백 프로그램 동작을 반복적으로 수행한다.
예시적인 실시예에 있어서, 메모리 시스템은 상기 플래시 메모리에 저장될 데이터를 임시 저장하는 제 1 램을 더 포함한다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러, 상기 중앙처리장치, 그리고 상기 제 1 램은 시스템 버스에 전기적으로 연결된다.
예시적인 실시예에 있어서, 상기 플래시 컨트롤러는 상기 카피백 프로그램 동작시 상기 플래시 메모리로부터 읽혀진 소오스 데이터를 임시 저장하도록 구성된 제 2 램과; 상기 소오스 데이터에 대한 에러를 검출 및 정정하도록 구성된 에러 검출 정정 회로와; 그리고 상기 어드레스 및 제어 레지스터들에 설정된 정보에 따라 상기 카피백 프로그램 동작에 필요한 일련의 명령 및 어드레스를 생성하도록 구성된 스테이트 머신을 더 포함한다.
예시적인 실시예에 있어서, 상기 제 2 램은 상기 시스템 버스와 전기적으로 분리된다.
예시적인 실시예에 있어서, 상기 메모리 시스템은 메모리 카드를 포함한다.
본 발명의 다른 예시적인 실시예들은 복수의 페이지들을 포함하는 메모리 셀 어레이와; 상기 메모리 셀 어레이에 대한 읽기 및 프로그램 동작들을 수행하도록 구성된 읽기/프로그램 회로와; 반복 데이터를 저장하도록 구성된 반복 레지스터와; 그리고 상기 반복 레지스터에 저장된 상기 반복 데이터에 따라 카피백 프로그램 동작을 반복적으로 수행하도록 상기 읽기/프로그램 회로를 제어하는 제어 로직을 포함하는 플래시 메모리 장치를 제공할 것이다.
예시적인 실시예에 있어서, 상기 반복 데이터는 상기 카피백 반복 횟수 정보, 상기 소오스 어드레스 증가/감소 정보, 그리고 상기 목적지 어드레스 증가/감 소 정보를 포함한다.
예시적인 실시예에 있어서, 상기 반복 레지스터는 소오스 페이지에 대한 읽기 동작이 수행 이전에 반복 명령과 함께 입력되는 상기 반복 데이터로 설정된다.
예시적인 실시예에 있어서, 상기 반복 레지스터는 소오스 페이지에 대한 읽기 동작이 수행된 후 목적지 어드레스에 대한 프로그램 동작이 수행되기 이전에 반복 명령과 함께 입력되는 상기 반복 데이터로 설정된다.
예시적인 실시예에 있어서, 상기 반복 레지스터는 상기 반복 데이터를 저장하도록 구성된 불 휘발성 저장 회로로 구성된다.
예시적인 실시예에 있어서, 반복 명령이 입력될 때, 상기 제어 로직은 카피백 프로그램 동작을 반복적으로 수행하도록 상기 반복 레지스터에 저장된 상기 반복 데이터에 따라 상기 읽기/프로그램 회로를 제어한다.
예시적인 실시예에 있어서, 상기 반복 명령은 소오스 페이지에 대한 읽기 동작이 수행 이전에 입력된다.
예시적인 실시예에 있어서, 상기 반복 명령은 소오스 페이지에 대한 읽기 동작이 수행된 후 그리고 목적지 어드레스에 대한 프로그램 동작이 수행되기 이전에 입력된다.
예시적인 실시예에 있어서, 상기 반복 명령은 소오스 어드레스의 입력을 나타내는 명령들과 목적지 어드레스의 입력을 나타내는 명령들 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 반복 데이터는 소오스 어드레스의 입력을 나타내는 명령들과 목적지 어드레스의 입력을 나타내는 명령들의 조합에 따라 상기 반복 레지스터에 설정된다.
예시적인 실시예에 있어서, 플래시 메모리 장치는 상기 카피백 프로그램 동작의 반복시 에러를 검출하도록 구성되는 에러 검출 블록을 더 포함한다.
예시적인 실시예에 있어서, 상기 카피백 프로그램 동작의 반복시 에러가 검출될 때, 상기 제어 로직은 상기 카피백 프로그램 동작을 종료하고 상태 읽기 명령에 따라 페일된 페이지 정보를 외부로 출력한다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 플래시 메모리를 기반으로 한 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명의 예시적인 실시예들에 따른 플래시 메모리를 기반으로 한 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 예시적인 실시예들에 따른 플래시 메모리를 기 반으로 한 메모리 시스템은 플래시 메모리(100), 플래시 컨트롤러(200), 중앙처리장치(300), 그리고 램(400)을 포함하며, 이러한 구성들(200, 300, 400)은 시스템 버스에 전기적으로 연결되어 있다. 플래시 컨트롤러(200)는 중앙처리장치(300)의 제어에 응답하여 플래시 메모리(100)를 제어할 것이다. 특히, 플래시 컨트롤러(200)는 플래시 메모리(100)의 카피백 프로그램 동작을 하드웨어적으로 처리하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다. 플래시 컨트롤러(200)는 램(210), 어드레스 레지스터(220), 제어 레지스터(230), ECC(240), 그리고 스테이트 머신(250)을 포함할 것이다. 램(210)은 카피백 프로그램 동작시 플래시 메모리(100)로부터 읽혀진 소오스 데이터를 임시 저장하는 데 사용되며, 한 페이지의 데이터를 저장하기에 충분한 용량을 가질 것이다. 어드레스 레지스터(220)는 중앙처리장치(300)로부터 제공되는 소오스 어드레스 및 목적지 어드레스를 저장하는 사용될 것이다. 동일한 플랜에서 카피백 프로그램 동작이 수행되는 경우, 도 2a에 도시된 바와 같이, 어드레스 레지스터(220)에는 동일한 플랜에 속하는 소오스 어드레스 및 목적지 어드레스가 저장될 것이다. 이에 반해서, 상이한 플랜들에서 카피백 프로그램 동작이 수행되는 경우, 도 2b에 도시된 바와 같이, 어드레스 레지스터(220)에는 각 플랜에 속하는 소오스 어드레스 및 목적지 어드레스가 저장될 것이다.
계속해서 도 1을 참조하면, 제어 레지스터(230)는 중앙처리장치(300)로부터 제공되는 카피백 프로그램 동작을 위한 제어 정보를 저장하는 데 사용될 것이다. 예를 들면, 도 3에 도시된 바와 같이, 제어 레지스터(230)에는 하드웨어 카피백 프 로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, ECC 자동 정정 정보, 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 목적지 어드레스 증가/감소 정보, 플랜 선택 정보, 등이 저장될 것이다. ECC(240)는 플래시 메모리(100)에서 램(210)으로 전송되는 데이터에 대한 에러를 검출하고, 검출 결과에 따라 에러를 정정하며, 정정된 데이터를 플래시 메모리(100)로 전송할 것이다. 스테이트 머신(250)은 제어 레지스터(230)에 저장된 제어 정보에 따라 카피백 프로그램 동작의 전반적인 동작을 제어하도록 구성될 것이다. 스테이트 머신(250)은 카피백 프로그램 동작이 완료될 때 중앙처리장치(300)에 인터럽트를 발생할 것이다.
중앙처리장치(300)는 카피백 프로그램 동작이 요구될 때 어드레스 레지스터(220) 및 제어 레지스터(230)를 설정하고, 스테이트 머신(250)으로부터 인터럽트가 발생할 때까지 대기한다. 이는 중앙처리장치(300)가 카피백 프로그램 동작에 필요한 정보로 레지스터들(220, 230)을 설정한 후 카피백 프로그램 동작에 관여하지 않음을 의미한다. 램(400)은 플래시 메모리(100)에 저장될 데이터를 임시 저장하는 데 사용될 것이다. 램(400)의 일부는, 또한, 워크 메모리로서 사용될 수 있다.
이 실시예에 있어서, 플래시 컨트롤러(200), 중앙처리장치(300), 그리고 램(400)은 플래시 메모리(100)를 제어하는 메모리 컨트롤러를 구성할 것이다. 플래시 컨트롤러(200)의 램(210)은 시스템 버스와 전기적으로 분리될 것이다.
본 발명에 따른 메모리 시스템은 플래시 메모리(100)의 카피백 프로그램 동작을 소프트웨어 대신 하드웨어를 통해 자동적으로 수행하도록 구성될 것이다. 이 는 소프트웨어(또는 펌웨어)가 개입하는 시간이 감소되게 하며, 그 결과 전반적인 성능을 향상시키는 것이 가능하다. 카피백 프로그램 동작은 하나의 페이지에서 다른 페이지로 데이터를 옮기기 위한 것으로, 이는 이 분야에 잘 알려진 머지 동작시 하나의 메모리 블록에 속하는 페이지들 각각에 대해서 수행되어야 한다. 그러한 까닭에, 소프트웨어(또는 펌웨어)가 개입하는 시간을 더욱 감소시키는 것이 가능하며, 그 결과 전반적인 성능을 더욱 향상시키는 것이 가능하다.
도 4는 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작을 설명하기 위한 타이밍도이고, 도 5는 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작시 데이터 흐름을 보여주는 도면이다. 이하, 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
카피백 프로그램 동작이 요구될 때, 중앙처리장치(300)는 플래시 컨트롤러(200)의 어드레스 및 제어 레지스터들(220, 230)을 설정할 것이다. 예를 들면, 어드레스 레지스터(220)는 소오스 어드레스와 목적지 어드레스로 설정되며, 제어 레지스터(230)는 필요한 제어 정보로 설정될 것이다. 설명의 편의상, 하나의 페이지에 대한 카피백 프로그램 동작이 동일한 플랜 내에서 수행된다고 가정하자. 또한, 하드웨어 카피백 프로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, 그리고 ECC 자동 정정 정보만이 제어 정보로서 제어 레지스터(230)에 설정된다고 가정하자.
일단 하드웨어 카피백 프로그램 개시 정보가 설정되면, 도 4에 도시된 바와 같이, 00h 명령, 소오스 어드레스, 그리고 35h 명령이 순차적으로 플래시 컨트롤 러(200)에서 플래시 메모리(100)로 출력될 것이다. 이후, 읽기 시간(tR) 동안, 소오스 페이지의 데이터가 페이지 버퍼에 의해서 읽혀질 것이다(도 5에서, ①로 표기됨). 읽기 시간(tR)이 경과한 후, 페이지 버퍼에 저장된 데이터는 일정 단위로 플래시 컨트롤러(200)의 램(210)으로 전송될 것이다(도 5에서, ②로 표기됨). ECC 자동 정정 정보이 설정되어 있기 때문에, 램(210)으로 전송되는 데이터에 대한 에러 검출 동작이 수행될 것이다. 만약 에러가 검출되지 않으면, 도 4에 도시된 바와 같이, 플래시 컨트롤러(200)는 85h 명령, 목적지 어드레스, 그리고 10h 명령을 순차적으로 플래시 메모리(100)로 출력할 것이다. 플래시 메모리(100)는 10h 명령의 입력에 따라 페이지 버퍼에 저장된 데이터를 목적지 페이지에 프로그램할 것이다(도 5에서, ③로 표기됨). 즉, tPROG 시간 동안 프로그램 동작이 수행될 것이다. 프로그램 동작이 완료된 후, 스테이트 머신(250)은 프로그램 동작이 페일되었는 지 또는 패스되었는 지의 여부를 확인할 것이다. 스테이트 머신(250)은 확인 결과에 따라 제어 레지스터(230)의 인터럽트 상태 정보를 프로그램 패스/페일로 설정하고, 인터럽트를 발생할 것이다. 이후, 중앙처리장치(300)는 인터럽트에 응답하여 인터럽트 상태 정보를 확인할 것이다.
카피백 프로그램 동작이 완료되었는 지의 여부를 확인하는 동작은 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, R/nB 핀의 로우-하이 천이시에 상태 읽기 명령(70h)을 플래시 메모리(100)로 출력함으로써 프로그램 동작의 패스/페일을 확인하는 것이 가능하다. 또는, 연속적 카피백 프로그램 동작들이 요구되는 경우, 카피백 프로그램 동작이 개시되기 이전 에 상태 읽기 명령(70h)을 플래시 메모리(100)로 출력함으로써 이전의 카피백 프로그램 동작의 패스/페일을 확인하는 것이 가능하다. 설명의 편의상, 도 4에는 전자의 경우에 대한 상태 읽기 동작이 도시되어 있다.
도 6은 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작을 설명하기 위한 타이밍도이고, 도 7은 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작시 데이터 흐름을 보여주는 도면이며, 도 8은 카피백 프로그램 동작시 수행하는 에러 검출 및 정정 동작을 설명하기 위한 도면이다. 이하, 본 발명에 따른 메모리 시스템의 카피백 프로그램 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
카피백 프로그램 동작이 요구될 때, 중앙처리장치(300)는 플래시 컨트롤러(200)의 어드레스 및 제어 레지스터들(220, 230)을 설정할 것이다. 예를 들면, 어드레스 레지스터(220)는 소오스 어드레스와 목적지 어드레스로 설정되며, 제어 레지스터(230)는 필요한 제어 정보로 설정될 것이다. 설명의 편의상, 하나의 페이지에 대한 카피백 프로그램 동작이 동일한 플랜 내에서 수행된다고 가정하자. 또한, 하드웨어 카피백 프로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, 그리고 ECC 자동 정정 정보만이 제어 정보로서 설정된다고 가정하자.
일단 하드웨어 카피백 프로그램 개시 정보가 설정되면, 도 4에 도시된 바와 같이, 00h 명령, 소오스 어드레스, 그리고 35h 명령이 순차적으로 플래시 컨트롤러(200)에서 플래시 메모리(100)로 출력될 것이다. 이후, 읽기 시간(tR) 동안, 소오스 페이지의 데이터가 페이지 버퍼에 의해서 읽혀질 것이다(도 5에서, ①로 표기됨). 읽기 시간(tR)이 경과한 후, 페이지 버퍼에 저장된 데이터는 일정 단위로 플 래시 컨트롤러(200)의 램(210)으로 전송될 것이다(도 5에서, ②로 표기됨). ECC 자동 정정 정보이 설정되어 있기 때문에, 램(210)으로 전송되는 데이터에 대한 에러 검출 동작이 수행될 것이다. 에러 검출 동작을 좀 더 구체적으로 설명하면 다음과 같다.
도 8을 참조하면, ECC(240)는 플래시 메모리(100)에서 램(210)로 전송되는 데이터에 대한 에러를 검출할 것이다. 만약 에러가 검출되면, ECC(240)는 에러가 발생한 데이터를 램(210)으로부터 읽고 읽혀진 데이터에 대한 에러를 정정할 것이다. 또한, ECC(240)는 에러가 발생하였음을 스테이트 머신(250)에 알림과 동시에 에러가 발생한 데이터의 위치 정보를 스테이트 머신(250)으로 전송할 것이다. 에러가 발생함에 따라, 먼저, 스테이트 머신(250)은 85h 명령과 목적지 어드레스를 플래시 메모리(100)로 전송할 것이다. 이어서, 도 6에 도시된 바와 같이, 스테이트 머신(250)은 에러-정정된 데이터의 열 어드레스를 플래시 메모리(100)로 전송하고, ECC(240)는 에러-정정된 데이터(즉, 랜덤 데이터)를 플래시 메모리(100)로 전송할 것이다(도 7에서, ③로 표기됨).
플래시 메모리(100)는 10h 명령의 입력에 따라 페이지 버퍼에 저장된 데이터를 목적지 페이지에 프로그램할 것이다(도 7에서, ④로 표기됨). 즉, tPROG 시간 동안 프로그램 동작이 수행될 것이다. 프로그램 동작이 완료된 후, 스테이트 머신(250)은 프로그램 동작이 페일되었는 지 또는 패스되었는 지의 여부를 확인할 것이다. 스테이트 머신(250)은 확인 결과에 따라 제어 레지스터(230)의 인터럽트 상태 정보를 프로그램 패스/페일로 설정하고, 인터럽트를 발생할 것이다. 이후, 중앙 처리장치(300)는 인터럽트에 응답하여 인터럽트 상태 정보를 확인할 것이다. 이러한 인터럽트 상태 정보는 프로그램 패스/페일 정보 뿐만 아니라 ECC 에러 정보를 포함할 것이다.
앞서 설명된 바와 같이, 플래시 메모리의 카피백 프로그램 동작이 소프트웨어의 개입없이 하드웨어 즉, 플래시 컨트롤러(200)의 제어에 따라 자동적으로 수행될 것이다.
도 4에서는 단지 한 페이지에 대한 카피백 프로그램 동작이 설명되었다. 하지만, 복수의 페이지들에 대한 카피백 프로그램 동작들이 앞서 언급된 바와 같은 방식으로 하드웨어의 제어에 따라 자동적으로 수행될 수 있음은 자명하다. 예를 들면, 제어 레지스터(230)의 제어 정보가 복수의 페이지들에 대한 카피백 프로그램 동작들이 연속적으로 수행되도록 중앙처리장치(300)에 의해서 설정될 것이다. 좀 더 구체적으로 설명하면,
하드웨어 카피백 프로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, 그리고 ECC 자동 정정 정보와 더불어 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 그리고 목적지 어드레스 증가/감소 정보가 추가로적으로 제어 정보로서 제어 레지스터(230)에 설정될 것이다. 이러한 경우, 하나의 페이지 즉, 소오스 어드레스(어드레스 레지스터에 설정된 어드레스)에 대응하는 페이지의 데이터가 목적지 어드레스(어드레스 레지스터에 설정된 어드레스)에 대응하는 페이지로 카피백 프로그램될 것이다. 일단 카피백 프로그램 동작이 프로그램 패스로서 종료되면, 스테이트 머신(250)의 제어에 따라 소오스 어드레스 및 목적지 어드레스가 1만큼 증가/감소될 것이다. 증가/감소된 소오스 어드레스의 페이지에 대한 카피백 프로그램 동작은 앞서 언급된 것과 실질적으로 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략될 것이다. 하드웨어 카피백 반복 횟수 정보만큼 카피백 프로그램 동작이 반복적으로 수행될 것이다.
플래시 메모리(100)가 2개의 플랜들로 구성되는 경우, 2-플랜 카피백 프로그램 동작 역시 앞서 설명된 방식과 동일하게 플래시 컨트롤러(200)에 의해서 자동적으로 수행될 것이다. 예를 들면, 중앙처리장치(300)에 의해서 도 2b에 도시된 어드레스 레지스터(220)가 제 1 플랜의 소오스 및 목적지 어드레스들과 제 2 플랜의 소오스 및 목적지 어드레스들이 설정될 것이다. 이러한 경우, 제어 레지스터(230)의 플랜 선택 정보는 2개의 플랜들이 동시에 선택되도록 설정될 것이다. 어드레스 및 제어 레지스터들(220, 230)이 설정된 후, 각 플랜의 소오스 페이지의 데이터가 페이지 버퍼로 동시에 옮겨질 것이다(도 9에서, ①로 표기됨). 그 다음에, 제 1 플랜의 페이지 버퍼에 저장된 데이터가 플래시 컨트롤러(200)의 램(210)으로 전송될 것이다. 이때, 앞서 언급된 바와 같이, ECC(240)에 의해서 전송 데이터에 대한 에러가 검출될 것이다(도 9에서, ②로 표기됨). 이어서, 제 2 플랜의 페이지 버퍼에 저장된 데이터가 플래시 컨트롤러(200)의 램(210)으로 전송될 것이다. 마찬가지로, ECC(240)에 의해서 전송 데이터에 대한 에러가 검출될 것이다(도 9에서, ②로 표기됨). 에러가 검출되는 경우, 앞서 언급된 바와 같이, 각 플랜으로 에러 정정된 데이터는 목적지 어드레스들과 함께 플래시 컨트롤러(200)의 제어에 따라 대응하는 페이지 버퍼로 로드될 것이다(도 9에서, ③로 표기됨). 이후, 페이지 버퍼들에 저 장된 데이터는 대응하는 목적지 페이지들에 각각 프로그램될 것이다.
제 1 플랜의 소오스 페이지에서 읽혀진 데이터를 다른 플랜의 목적지 페이지에 카피백 프로그램하는 것이 가능하다. 예를 들면, 도 10을 참조하면, 중앙처리장치(300)에 의해서 도 2b에 도시된 어드레스 레지스터(220)가 제 1 플랜의 소오스 어드레스와 제 2 플랜의 목적지 어드레스가 설정될 것이다. 이러한 경우, 제어 레지스터(230)에는 다른 플랜 선택 정보가 추가적으로 제공될 것이다. 어드레스 및 제어 레지스터들(220, 230)이 설정된 후, 제 1 플랜의 소오스 페이지의 데이터가 페이지 버퍼로 옮겨질 것이다(도 10에서, ①로 표기됨). 그 다음에, 제 1 플랜의 페이지 버퍼에 저장된 데이터가 플래시 컨트롤러(200)의 램(210)으로 전송될 것이다. 이때, 앞서 언급된 바와 같이, ECC(240)에 의해서 전송 데이터에 대한 에러가 검출될 것이다(도 10에서, ②로 표기됨). 에러가 검출되는 경우, 램(210)에 저장된 데이터 중 에러가 있는 데이터는 ECC(240)에 의해서 정정될 것이다. 이후, 램(210)에 저장된 데이터는 목적지 어드레스와 함께 제 2 플랜의 페이지 버퍼에 로드될 것이다(도 10에서, ③로 표기됨). 이후, 제 2 플랜의 페이지 버퍼에 저장된 데이터는 목적지 페이지에 프로그램될 것이다(도 10에서, ④로 표기됨).
도 11은 본 발명의 다른 실시예에 따른 플래시 메모리를 개략적으로 보여주는 블록도이다.
도 11을 참조하면, 플래시 메모리(500)는 메모리 셀 어레이(510), 행 디코더 회로(520), 페이지 버퍼 회로(530), 열 디코더 회로(540), 제어 로직(550), 그리고 반복 레지스터(560)를 포함할 것이다. 메모리 셀 어레이(510), 행 디코더 회 로(520), 페이지 버퍼 회로(530), 열 디코더 회로(540), 그리고 제어 로직(550)은 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있기 때문에 그것에 대한 설명은 그러므로 생략될 것이다. 반복 레지스터(560)에는 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 그리고 목적지 어드레스 증가/감소 정보가 저장될 것이다. 반복 레지스터(560)에 저장된 정보에 따라 즉, 하드웨어 카피백 반복 횟수 정보만큼 카피백 프로그램 동작이 반복적으로 수행될 것이다. 카피백 프로그램 동작은 이 분야의 통상적인 지식을 습득한 자들에게 자명하며, 그것에 대한 설명은 그러므로 생략될 것이다. 플래시 메모리 장치(100)는 에러 검출 블록(570)을 더 포함할 것이다. 에러 검출 블록(570)은 카피백 프로그램 동작 동안 에러가 발생하였는 지의 여부를 검출하도록 구성될 것이다. 카피백 프로그램 동작 동안 에러가 검출될 때, 제어 로직(550)은 프로그램 동작을 종료시킬 것이다. 프로그램 동작이 종료된 후, 제어 로직(550)은 상태 읽기 동작을 통해 페일된 페이지 정보를 외부(예를 들면, 메모리 컨트롤러)로 출력할 것이다.
반복 정보를 반복 레지스터(560)에 설정하는 방식들은 다양하게 구현될 수 있다. 먼저, 도 12a를 참조하면, 소오스 어드레스에 대응하는 페이지로부터 읽기 동작이 수행된 후, 반복 명령(RPT CMD)와 반복 데이터가 메모리 컨트롤러에서 플래시 메모리 장치(100)로 제공될 수 있다. 여기서, 반복 데이터는 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 그리고 목적지 어드레스 증가/감소 정보를 포함할 것이다. 입력된 반복 데이터는 반복 레지스터(560)에 저장될 것이다. 반복 명령(RPT CMD)과 반복 데이터의 입력은 다양하게 변경될 수 있다. 예 를 들면, 도 12b에 도시된 바와 같이, 반복 명령(RPT CMD)와 반복 데이터는 목적지 어드레스의 입력 후 그리고 프로그램 동작의 시작전에 메모리 컨트롤러에서 플래시 메모리 장치(100)로 제공될 수 있다. 입력된 반복 데이터는 반복 레지스터(560)에 저장될 것이다. 또는, 12c에 도시된 바와 같이, 반복 명령(RPT CMD)와 반복 데이터는 소오스 어드레스의 입력 후 그리고 읽기 동작의 시작전에 메모리 컨트롤러에서 플래시 메모리 장치(100)로 제공될 수 있다. 입력된 반복 데이터는 반복 레지스터(560)에 저장될 것이다. 도면에는 도시되지 않았지만, 소오스 어드레스의 입력전에 반복 명령 및 반복 데이터가 입력될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 12에서 설명된 것과 달리, 반복 데이터 없이 반복 명령(RPT CMD)만이 플래시 메모리 장치(100)에 제공될 수도 있다. 이러한 경우, 반복 데이터는 미리 플래시 메모리 장치(100)에 설정될 것이다. 예를 들면, 반복 레지스터(560)는 미리 결정된 반복 데이터를 저장하도록 불 휘발성 특성을 갖는 저장 장치로 구현될 것이다. 따라서, 반복 명령이 입력되는 경우, 플래시 메모리 장치(100)는 반복 레지스터(560)에 미리 설정된 반복 데이터에 따라 카피백 프로그램 동작을 수행할 것이다. 반복 명령(RPT CMD)이 입력되는 시점은 다양하게 구현될 수 있다. 예를 들면, 도 13a를 참조하면, 소오스 어드레스에 대응하는 페이지로부터 읽기 동작이 수행된 후, 반복 명령(RPT CMD)이 메모리 컨트롤러에서 플래시 메모리 장치(100)로 제공될 수 있다. 또는, 도 13b에 도시된 바와 같이, 반복 명령(RPT CMD)은 목적지 어드레스의 입력 후 그리고 프로그램 동작의 시작전에 메모리 컨트롤러에서 플래시 메모 리 장치(100)로 제공될 수 있다. 또는, 12c에 도시된 바와 같이, 반복 명령(RPT CMD)은 소오스 어드레스의 입력 후 그리고 읽기 동작의 시작전에 메모리 컨트롤러에서 플래시 메모리 장치(100)로 제공될 수 있다. 도면에는 도시되지 않았지만, 소오스 어드레스의 입력전에 반복 명령이 입력될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 13에서 설명된 반복 명령은 도 13에 도시된 명령들(00h, 35h, 10h, 등) 중 어느 하나를 이용하여 구현될 수도 있다. 예를 들면, 00h을 11h로 변경함으로써 반복 명령을 플래시 메모리 장치(100)로 제공하는 것이 가능하다. 이러한 경우, 반복 레지스터(560)에는 미리 설정된 반복 데이터가 저장될 것이다. 명령들의 조합으로 반복 데이터를 제공하는 것이 가능하다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 플래시 메모리의 카피백 프로그램 동작을 소프트웨어 대신 하드웨어를 통해 자동적으로 수행함으로써 소프트웨어(또는 펌웨어)가 개입하는 시간을 줄일 수 있다. 결과적으로, 메모리 시스템의 전반적인 성능을 향상시키는 것이 가능하다.

Claims (30)

  1. 플래시 메모리와;
    중앙처리장치와; 그리고
    카피백 프로그램 동작시 상기 중앙처리장치에 의해서 설정되는 어드레스 및 제어 레지스터들을 구비하며, 펌웨어의 개입없이 상기 레지스터들에 저장된 정보에 따라 상기 플래시 메모리의 카피백 프로그램 동작을 하드웨어적으로 제어하는 플래시 컨트롤러를 포함하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 플래시 컨트롤러는 상기 플래시 메모리의 카피백 프로그램 동작이 종료되었는 지의 여부를 인터럽트를 통해 상기 중앙처리장치에 알려주는 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 플래시 컨트롤러는 상기 카피백 프로그램 동작 동안 일련의 명령, 어드레스, 그리고 데이터를 펌웨어의 개입없이 생성하도록 구성되는 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 플래시 컨트롤러는 상기 카피백 프로그램 동작 동안 소오스 데이터에 대한 에러 정정 및 검출 동작을 수행하도록 구성되는 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 소오스 데이터로부터 에러가 검출되지 않을 때, 상기 플래시 컨트롤러는 상기 어드레스 레지스터에 설정된 정보에 따라 목적지 어드레스 및 명령을 상기 플래시 메모리로 출력하는 메모리 시스템.
  6. 제 4 항에 있어서,
    상기 소오스 데이터로부터 에러가 검출될 때, 상기 플래시 컨트롤러는 에러-정정된 데이터와 함께 상기 어드레스 레지스터에 설정된 정보에 따라 목적지 어드레스 및 명령을 상기 플래시 메모리로 출력하는 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 플래시 컨트롤러는 상기 제어 레지스터에 설정된 정보에 따라 상기 플래시 메모리의 카피백 프로그램 동작을 반복적으로 수행하는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 동일 플랜에서 페이지 데이터가 복사되는 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 상이한 플랜들에서 페이지 데이터가 동시에 복사되는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 카피백 프로그램 동작 동안 상기 플래시 메모리의 제 1 플랜에서 제 2 플랜으로 페이지 데이터가 복사되는 메모리 시스템.
  11. 제 1 항에 있어서,
    상기 제어 레지스터는 하드웨어 카피백 프로그램 개시 정보, 인터럽트 인에이블 정보, 인터럽트 상태 정보, ECC 자동 정정 정보, 하드웨어 카피백 반복 횟수 정보, 소오스 어드레스 증가/감소 정보, 목적지 어드레스 증가/감소 정보, 그리고 플랜 선택 정보와 같은 제어 정보를 포함하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 플래시 컨트롤러는 상기 제어 레지스터의 하드웨어 카피백 프로그램 개시 정보가 설정될 때 상기 카피백 프로그램 동작을 제어하는 메모리 시스템.
  13. 제 11 항에 있어서,
    상기 플래시 컨트롤러는 상기 하드웨어 카피백 반복 횟수 정보, 상기 소오스 어드레스 증가/감소 정보, 그리고 목적지 어드레스 증가/감소 정보에 따라 카피백 프로그램 동작을 반복적으로 수행하는 메모리 시스템.
  14. 제 1 항에 있어서,
    상기 플래시 메모리에 저장될 데이터를 임시 저장하는 제 1 램을 더 포함하는 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 플래시 컨트롤러, 상기 중앙처리장치, 그리고 상기 제 1 램은 시스템 버스에 전기적으로 연결되는 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 플래시 컨트롤러는
    상기 카피백 프로그램 동작시 상기 플래시 메모리로부터 읽혀진 소오스 데이터를 임시 저장하도록 구성된 제 2 램과;
    상기 소오스 데이터에 대한 에러를 검출 및 정정하도록 구성된 에러 검출 정정 회로와; 그리고
    상기 어드레스 및 제어 레지스터들에 설정된 정보에 따라 상기 카피백 프로그램 동작에 필요한 일련의 명령 및 어드레스를 생성하도록 구성된 스테이트 머신을 더 포함하는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 제 2 램은 상기 시스템 버스와 전기적으로 분리되는 메모리 시스템.
  18. 제 1 항에 있어서,
    상기 메모리 시스템은 메모리 카드를 포함하는 메모리 시스템.
  19. 복수의 페이지들을 포함하는 메모리 셀 어레이와;
    상기 메모리 셀 어레이에 대한 읽기 및 프로그램 동작들을 수행하도록 구성된 읽기/프로그램 회로와;
    반복 데이터를 저장하도록 구성된 반복 레지스터와; 그리고
    상기 반복 레지스터에 저장된 반복 데이터에 따라 카피백 프로그램 동작을 반복적으로 수행하도록 상기 읽기/프로그램 회로를 제어하는 제어 로직을 포함하는 플래시 메모리 장치.
  20. 제 19 항에 있어서,
    상기 반복 데이터는 상기 카피백 반복 횟수 정보, 상기 소오스 어드레스 증가/감소 정보, 그리고 상기 목적지 어드레스 증가/감소 정보를 포함하는 플래시 메모리 장치.
  21. 제 20 항에 있어서,
    상기 반복 레지스터는 소오스 페이지에 대한 읽기 동작이 수행 이전에 반복 명령과 함께 입력되는 상기 반복 데이터로 설정되는 플래시 메모리 장치.
  22. 제 20 항에 있어서,
    상기 반복 레지스터는 소오스 페이지에 대한 읽기 동작이 수행된 후 목적지 어드레스에 대한 프로그램 동작이 수행되기 이전에 반복 명령과 함께 입력되는 상기 반복 데이터로 설정되는 플래시 메모리 장치.
  23. 제 20 항에 있어서,
    상기 반복 레지스터는 상기 반복 데이터를 저장하도록 구성된 불 휘발성 저장 회로로 구성되는 플래시 메모리 장치.
  24. 제 23 항에 있어서,
    반복 명령이 입력될 때, 상기 제어 로직은 카피백 프로그램 동작을 반복적으로 수행하도록 상기 반복 레지스터에 저장된 상기 반복 데이터에 따라 상기 읽기/프로그램 회로를 제어하는 플래시 메모리 장치.
  25. 제 24 항에 있어서,
    상기 반복 명령은 소오스 페이지에 대한 읽기 동작이 수행 이전에 입력되는 플래시 메모리 장치.
  26. 제 24 항에 있어서,
    상기 반복 명령은 소오스 페이지에 대한 읽기 동작이 수행된 후 그리고 목적지 어드레스에 대한 프로그램 동작이 수행되기 이전에 입력되는 플래시 메모리 장치.
  27. 제 24 항에 있어서,
    상기 반복 명령은 소오스 어드레스의 입력을 나타내는 명령들과 목적지 어드레스의 입력을 나타내는 명령들 중 어느 하나인 플래시 메모리 장치.
  28. 제 19 항에 있어서,
    상기 반복 데이터는 소오스 어드레스의 입력을 나타내는 명령들과 목적지 어드레스의 입력을 나타내는 명령들의 조합에 따라 상기 반복 레지스터에 설정되는 플래시 메모리 장치.
  29. 제 19 항에 있어서,
    상기 카피백 프로그램 동작의 반복시 에러를 검출하도록 구성되는 에러 검출 블록을 더 포함하는 플래시 메모리 장치.
  30. 제 29 항에 있어서,
    상기 카피백 프로그램 동작의 반복시 에러가 검출될 때, 상기 제어 로직은 상기 카피백 프로그램 동작을 종료하고 상태 읽기 명령에 따라 페일된 페이지 정보를 외부로 출력하는 플래시 메모리 장치.
KR1020070024090A 2007-03-12 2007-03-12 플래시 메모리를 기반으로 한 메모리 시스템 KR100918707B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070024090A KR100918707B1 (ko) 2007-03-12 2007-03-12 플래시 메모리를 기반으로 한 메모리 시스템
US11/748,063 US7941586B2 (en) 2007-03-12 2007-05-14 Flash memory device and memory system controlling a copy-back program operation in hardware
JP2008059901A JP5427360B2 (ja) 2007-03-12 2008-03-10 フラッシュメモリに基づくメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070024090A KR100918707B1 (ko) 2007-03-12 2007-03-12 플래시 메모리를 기반으로 한 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20080083474A true KR20080083474A (ko) 2008-09-18
KR100918707B1 KR100918707B1 (ko) 2009-09-23

Family

ID=39763818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070024090A KR100918707B1 (ko) 2007-03-12 2007-03-12 플래시 메모리를 기반으로 한 메모리 시스템

Country Status (3)

Country Link
US (1) US7941586B2 (ko)
JP (1) JP5427360B2 (ko)
KR (1) KR100918707B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140017413A (ko) * 2012-07-31 2014-02-11 에스케이하이닉스 주식회사 저항성 메모리 장치

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9152496B2 (en) * 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
TW200935433A (en) * 2008-02-15 2009-08-16 Asmedia Technology Inc Method for reducing data error when flash memory storage device using copy back command
US7719876B2 (en) * 2008-07-31 2010-05-18 Unity Semiconductor Corporation Preservation circuit and methods to maintain values representing data in one or more layers of memory
US8145985B2 (en) * 2008-09-05 2012-03-27 Freescale Semiconductor, Inc. Error detection schemes for a unified cache in a data processing system
US8291305B2 (en) * 2008-09-05 2012-10-16 Freescale Semiconductor, Inc. Error detection schemes for a cache in a data processing system
US8825912B2 (en) * 2008-11-12 2014-09-02 Microchip Technology Incorporated Dynamic state configuration restore
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
KR101575248B1 (ko) * 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
KR101201838B1 (ko) * 2009-12-24 2012-11-15 에스케이하이닉스 주식회사 프로그램 시간을 감소시킨 비휘발성 메모리 장치
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US20110296131A1 (en) * 2010-05-31 2011-12-01 Samsung Electronics Co., Ltd Nonvolatile memory system and the operation method thereof
KR101148352B1 (ko) * 2010-11-02 2012-05-21 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
US8909982B2 (en) * 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8976604B2 (en) * 2012-02-13 2015-03-10 Macronix International Co., Lt. Method and apparatus for copying data with a memory array having redundant memory
TWI457760B (zh) * 2012-02-23 2014-10-21 Macronix Int Co Ltd 具有冗餘記憶體之記憶體陣列的資料複製方法及裝置
CN103295647B (zh) * 2012-03-02 2016-02-10 旺宏电子股份有限公司 具有冗余存储器的存储器阵列的数据复制方法及装置
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10169225B2 (en) * 2015-01-23 2019-01-01 Silicon Motion, Inc. Memory system and memory-control method with a programming status
US10387046B2 (en) * 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10915448B2 (en) 2017-08-22 2021-02-09 Seagate Technology Llc Storage device initiated copy back operation
KR102415218B1 (ko) * 2017-11-24 2022-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
TWI679537B (zh) 2018-03-09 2019-12-11 深圳大心電子科技有限公司 資料移動方法及儲存控制器
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11036633B2 (en) * 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory apparatus
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802553A (en) 1995-12-19 1998-09-01 Intel Corporation File system configured to support variable density storage and data compression within a nonvolatile memory
KR100263672B1 (ko) 1997-05-08 2000-09-01 김영환 가변적인 페이지 크기를 지원하는 어드레스 변환장치
JP2001006379A (ja) * 1999-06-16 2001-01-12 Fujitsu Ltd 複写、移動機能を有するフラッシュメモリ
US6614685B2 (en) 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
JP2003186739A (ja) * 2001-12-13 2003-07-04 Seiko Epson Corp 半導体記憶装置、制御装置及び半導体記憶装置の制御方法
US7181611B2 (en) * 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
JP4563715B2 (ja) * 2003-04-29 2010-10-13 三星電子株式会社 パーシャルコピーバック動作モードを有するフラッシュメモリ装置
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7159069B2 (en) * 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
KR100572328B1 (ko) * 2004-07-16 2006-04-18 삼성전자주식회사 배드 블록 관리부를 포함하는 플래시 메모리 시스템
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
JP2006244017A (ja) 2005-03-02 2006-09-14 Matsushita Electric Ind Co Ltd データコピー方法
JP4910426B2 (ja) 2005-03-03 2012-04-04 パナソニック株式会社 不揮発性記憶装置の書込み方法
KR100626393B1 (ko) 2005-04-07 2006-09-20 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 멀티-페이지 카피백 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140017413A (ko) * 2012-07-31 2014-02-11 에스케이하이닉스 주식회사 저항성 메모리 장치

Also Published As

Publication number Publication date
US20080229000A1 (en) 2008-09-18
US7941586B2 (en) 2011-05-10
JP2008226245A (ja) 2008-09-25
JP5427360B2 (ja) 2014-02-26
KR100918707B1 (ko) 2009-09-23

Similar Documents

Publication Publication Date Title
KR100918707B1 (ko) 플래시 메모리를 기반으로 한 메모리 시스템
US10049005B2 (en) Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof
JP5547741B2 (ja) データをメモリ装置に再入力することなくページをプログラムするためのページバッファプログラムコマンド及び方法
JP4550439B2 (ja) Ecc制御装置
TWI744632B (zh) 半導體設備及在一記憶體裝置上執行操作之方法
US20090307537A1 (en) Flash storage device with data correction function
US20070170268A1 (en) Memory cards, nonvolatile memories and methods for copy-back operations thereof
JP2008504637A (ja) フラッシュメモリ装置における内部プログラミング中の同時の外部読出動作
JP2004005699A (ja) Nandフラッシュメモリインタフェース装置
JP4643729B2 (ja) インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
JP2004005613A (ja) 専用フラッシュコントローラを使用してフラッシュベースストレージシステムの性能を改善するための方法
KR102319402B1 (ko) 복수의 채널들을 통해 반도체 메모리 장치들을 제어하는 메모리 시스템
JP2008090433A (ja) メモリコントローラ、メモリシステム及びデータ転送方法
WO2015117493A1 (zh) 一种flash的控制方法和控制器
TWI534607B (zh) 記憶體控制電路單元、記憶體儲存裝置與資料傳輸方法
US20060020764A1 (en) Information processing apparatus including non-volatile memory device, non-volatile memory device and methods thereof
US8055978B2 (en) Semiconductor memory system performing data error correction using flag cell array of buffer memory
JP4173863B2 (ja) メモリカードおよびその初期化設定方法
JP2006004367A (ja) メモリカード及び半導体装置
US20100146224A1 (en) Request processing device, request processing system, and access testing method
JP3178914B2 (ja) 半導体ファイル装置
US20100329027A1 (en) Nonvolatile memory device and method of operating the same
EP2730993B1 (en) Reset method and network device
JP2011118922A (ja) 半導体記憶装置の読出し・書き込み方法
JP4739296B2 (ja) 外部記憶装置およびそのメモリアクセス制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20120831

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150831

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 10