KR20160028228A - 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법 - Google Patents

플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법 Download PDF

Info

Publication number
KR20160028228A
KR20160028228A KR1020140117023A KR20140117023A KR20160028228A KR 20160028228 A KR20160028228 A KR 20160028228A KR 1020140117023 A KR1020140117023 A KR 1020140117023A KR 20140117023 A KR20140117023 A KR 20140117023A KR 20160028228 A KR20160028228 A KR 20160028228A
Authority
KR
South Korea
Prior art keywords
data
area
page
program
memory
Prior art date
Application number
KR1020140117023A
Other languages
English (en)
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 KR1020140117023A priority Critical patent/KR20160028228A/ko
Publication of KR20160028228A publication Critical patent/KR20160028228A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

본 발명의 일실시예에 따른 플래시 메모리 장치는, 하나 이상의 메모리 블록을 포함하는 셀 영역을 포함하고, 각각의 메모리 블록은 다수 개의 페이지들을 포함하는 메모리부, 외부로부터 하나 이상의 상기 페이지에 대한 데이터 프로그램 명령에 응답하여, 상기 페이지에 프로그램 하기 위한 유효데이터가 저장되는 유효데이터영역 및 무효데이터가 저장되는 패드영역을 포함하는 페이지 버퍼 및 상기 데이터 프로그램 명령에 응답하여, 상기 패드영역에 저장된 상기 무효데이터를 유지하고, 상기 유효데이터영역에 상기 유효데이터를 저장하는 것을 제어하는 컨트롤 로직을 포함하는 것을 특징으로 한다.

Description

플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법{Flash memory device, memory system and operating method thereof}
본 발명은 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법에 관한 것으로서, 자세하게는 페이지 버퍼의 패드영역에 데이터 프로그램을 수행하는 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법에 관한 것이다.
모바일(Mobile) 시스템 및 여러 가지 응용 시스템의 개발에 따라 불휘발성 메모리인 플래시(flash) 메모리의 요구가 증가되고 있다. 전기적으로 소거 및 프로그램이 가능한 불휘발성 메모리 장치인 플래시 메모리는, 전원이 공급되지 않는 상태에서도 데이터를 보존할 수 있는 특징을 가지고 있으며, 또한 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같이 액세스 타임(Access Time)이 빠른 특징을 갖는다.
플래시 메모리의 페이지 레이아웃의 특성상 데이터가 저장되고 남은 영역에는 데이터가 저장되지 않고 남겨지게 된다. 이러한 영역은, F-Poly Coupling 현상에 의하여, 플래시 메모리에 대한 프로그램, 리드 동작 등에 방해요소가 된다. 그 결과, 플래시 메모리의 에러 발생 확률을 높이게 되는 문제가 발생한다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 플래시 메모리 장치의 데이터가 저장되지 않는 페이지 영역에 따라 발생하는 F-Poly Coupling 현상을 방지하며, 플래시 메모리 장치 및 시스템의 성능 향상을 도모할 수 있는 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 플래시 메모리 장치는, 하나 이상의 메모리 블록을 포함하는 셀 영역을 포함하고, 각각의 메모리 블록은 다수 개의 페이지들을 포함하는 메모리부, 외부로부터 하나 이상의 상기 페이지에 대한 데이터 프로그램 명령에 응답하여, 상기 페이지에 프로그램 하기 위한 유효데이터가 저장되는 유효데이터영역 및 상기 페이지에 프로그램 하기 위한 무효데이터가 저장되는 패드영역을 포함하는 페이지 버퍼 및 상기 데이터 프로그램 명령에 응답하여, 상기 패드영역에 저장된 상기 무효데이터를 유지하고, 상기 유효데이터영역에 상기 유효데이터를 저장하는 것을 제어하는 컨트롤 로직을 포함하는 것을 특징으로 한다.
바람직하게는, 상기 유효데이터는, 상기 프로그램 또는 리드 동작 수행시 필요한 유저 데이터(User data) 및 에러 검출에 필요한 패리티 비트를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 컨트롤 로직은, 상기 무효데이터를 상기 패드영역에 대응하는 적어도 하나의 메모리 셀에 프로그램하여 상기 메모리 셀이 오프 셀(Off-cell)이 되도록 상태(state)를 변경해주는 것을 특징으로 한다.
또한 바람직하게는, 상기 컨트롤 로직은, 제1 프로그램 동작 수행시, 상기 유효데이터영역에는 제1 데이터, 상기 패드영역에는 제2 데이터의 저장 동작을 제어하고, 상기 유효데이터영역에 대응하는 상기 다수의 페이지들 중 제1 페이지의 적어도 하나의 메모리 셀에 상기 제1 데이터가 프로그램되고, 상기 패드영역에 대응하는 상기 제1 페이지의 적어도 하나의 메모리 셀에 상기 제2 데이터가 프로그램되도록 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 컨트롤 로직은, 제2 프로그램 동작 수행시, 상기 유효데이터영역에는 제3 데이터의 저장을 제어하고, 상기 유효데이터영역에 대응하는 상기 다수의 페이지들 중 제2 페이지의 적어도 하나의 메모리 셀에 상기 제3 데이터가 프로그램되고, 상기 패드영역에 대응하는 상기 제2 페이지의 적어도 하나의 메모리 셀에 상기 제2 데이터가 프로그램되도록 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 컨트롤 로직은, 상기 메모리부의 소거 동작 수행시, 상기 유효데이터영역 및 상기 패드영역에 저장된 데이터를 클리어(Clear)하는 것을 특징으로 한다.
또한 바람직하게는, 상기 다수의 페이지들 중 리드 페이지는, 상기 유효데이터에 해당하는 제1 데이터 및 상기 무효데이터에 해당하는 제2 데이터를 저장하고, 상기 컨트롤 로직은, 상기 리드 동작시에, 상기 리드 페이지의 상기 제1 데이터를 상기 유효데이터영역으로, 상기 제2 데이터를 상기 패드영역으로 저장하는 동작을 제어하는 것을 특징으로 한다.
또한 바람직하게는, 상기 컨트롤 로직은, 상기 각각의 메모리 블록에 대한 상기 소거 동작 수행시, 상기 유효데이터영역 및 상기 패드영역에 저장된 데이터의 소거를 제어하는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 플래시 메모리 시스템은, 다수의 메모리 블록들을 포함하는 메모리 셀 어레이를 포함하는 플래시 메모리 장치 및 상기 플래시 메모리 장치의 프로그램, 리드 및 소거 동작을 제어하고, 외부 호스트로부터의 하나 이상의 페이지에 대한 제1 데이터 프로그램 요청에 응답하여 제1 유효데이터 및 무효데이터를 포함하는 제1 프로그램 데이터를 생성하여, 상기 제1 프로그램 데이터 및 제1 데이터 프로그램 명령을 상기 플래시 메모리 장치로 전송하는 메모리 컨트롤러를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 메모리 컨트롤러는 상기 플래시 메모리 장치를 제어하기 위한 소프트웨어를 갖는 낸드 레이어(NAND Layer)를 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 낸드 레이어는, 상기 제1 프로그램 데이터의 생성을 제어하는 프로그램 데이터 생성 모듈을 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 메모리 블록은, 적어도 하나의 페이지를 포함하며, 상기 페이지는 상기 유효데이터가 프로그램되는 제1 영역과 상기 무효데이터가 프로그램되는 제2 영역을 포함하고, 상기 제2 영역은, 상기 외부 호스트로부터 수신된 어드레스에 의해 맵핑되지 않는 상기 페이지 영역인 것을 특징으로 한다.
또한 바람직하게는, 상기 무효데이터는, 상기 제2 영역이 포함하는 적어도 하나의 메모리 셀이 오프 셀(Off-cell)이 되도록 상태(state)를 변경해주는 데이터 값을 가지는 것을 특징으로 한다.
또한 바람직하게는, 상기 플래시 메모리 장치는, 유효데이터영역 및 패드영역을 포함하는 페이지 버퍼를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 유효데이터영역에는, 상기 제1 유효데이터가 저장되고, 상기 패드영역에는, 상기 무효데이터가 저장되며, 상기 메모리 컨트롤러는, 상기 외부 호스트로부터의 상기 하나 이상의 페이지에 대한 제2 데이터 프로그램 요청에 응답하여 상기 제2 유효데이터를 포함하는 제2 프로그램 데이터를 생성하여, 상기 제2 프로그램 데이터 및 제2 데이터 프로그램 명령을 상기 플래시 메모리 장치에 전송하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제2 데이터 프로그램 명령에 의하여,
상기 제2 데이터 프로그램 명령에 의하여, 상기 유효데이터영역은, 제2 유효데이터를 저장하고, 상기 패드영역은, 상기 무효데이터의 저장을 유지하는 것을 특징으로 한다.
또한 바람직하게는, 상기 메모리 컨트롤러는, 상기 메모리 블록들 중 제1 메모리 블록에 프로그램된 데이터를 상기 메모리 블록들 중 상기 제2 메모리 블록에 복사(Copy)하는 복사 동작 수행을 제어하며, 상기 프로그램된 데이터는 상기 제1 유효데이터 및 무효데이터를 포함하는 것을 특징으로 한다.
한편, 본 발명의 일실시예에 따른 플래시 메모리 시스템의 동작방법은, 메모리 컨트롤러로부터 제1 페이지에 대한 데이터 프로그램 명령을 수신하는 단계, 유효데이터영역 및 패드영역을 포함하는 페이지 버퍼에 있어서, 제1 유효데이터는 유효데이터영역에 저장하는 단계, 무효데이터는 패드영역에 저장하는 단계, 상기 제1 페이지의 제1 영역에 상기 제1 유효데이터를 프로그램하는 단계 및 상기 제1 페이지의 제2 영역에 상기 무효데이터를 프로그램하는 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 상기 메모리 컨트롤러로부터 제2 페이지에 대한 데이터 프로그램 명령을 수신하는 단계, 제2 유효데이터를 상기 유효데이터영역에 저장하는 단계, 상기 제2 페이지의 제1 영역에 상기 제2 유효데이터를 프로그램하는 단계 및 상기 제2 페이지의 제2 영역에 상기 무효데이터를 프로그램하는 단계;를 더 포함하는 것을 특징으로 한다.
또한 바람직하게는, 상기 메모리 컨트롤러는 호스트로부터의 데이터 프로그램 요청에 응답하여 상기 제1 유효데이터 및 상기 무효데이터를 포함하는 프로그램 데이터를 생성하고, 플래시 메모리 장치에 제공하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 플래시 메모리 장치의 페이지 버퍼의 패드영역에도 데이터를 저장하여, 데이터가 저장되고 남은 영역의 메모리 셀들에 프로그램함으로써, 상기 메모리 셀들의 상태(State)를 바꿔 F-Poly Couping 현상을 방지한다, 또한 패드영역에 매번 데이터를 저장하지 않고, 패드영역에 저장된 데이터를 유지하여, 플래시 메모리 장치 및 시스템의 성능의 하락을 방지하는 효과가 있다.
도1 은 본 발명의 일실시예에 따른 플래시 메모리 장치 및 이를 포함하는 메모리 시스템을 나타내는 블록도이다.
도2a 는 도1 의 페이지 버퍼(PB), 도2b는 메모리부(MU)의 일예를 나타내는 블록도이다.
도3 은 프로그램 수행 동작시의 페이지 버퍼를 나타내는 블록도이다.
도4a 및 도4 b 는 플래시 메모리 장치내의 프로그램 동작을 나타내는 블록도이다.
도5 는 플래시 메모리 장치내의 리드 동작을 나타내는 블록도이다.
도6 은 메모리 시스템에서의 메모리 컨트롤러가 프로그램 데이터를 생성하는 것을 나타낸 블록도이다.
도7a , 7b, 7c 는 도6 의 메모리 컨트롤러가 생성하는 프로그램 데이터의 종류를 나타낸 도면이다.
도8 은 플래시 메모리 장치의 메모리 블록간 복사 동작을 나타내는 블록도이다.
도9 는 본 발명의 일실시예에 따른 플래시 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도10 는 본 발명의 다른 실시예에 따른 플래시 메모리 시스템의 동작방법을 나타낸 플로우 차트이다.
도11 는 본 발명의 또 다른 실시예에 따른 플래시 메모리 시스템의 동작방법을 나타낸 플로우 차트이다.
도12 는 본 발명의 실시예들에 따른 플래시 메모리 장치를 포함한 컴퓨터 시스템을 나타내는 도면이다.
도13 은 본 발명의 일 실시예에 따른 메모리 카드를 나타내는 도면이다.
도14 는 본 발명의 실시예에 따른 반도체 저장 시스템(MSYS)이 솔리드 스테이트 드라이브(SSD: Solid State Drive)인 경우를 나타내는 도면이다.
도15 는 본 발명의 일 실시예에 따른, 반도체 저장 시스템(MSYS)을 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도1 은 본 발명의 일실시예에 따른 플래시 메모리 장치 및 이를 포함하는 메모리 시스템을 나타내는 블록도이다. 이하에서는, 페이지를 이루는 메모리 셀에 대한 프로그램 동작과 구분하기 위하여, 페이지 버퍼에 대한 프로그램 동작은 저장 동작으로 일컫는다. 또한, 이하에서는 프로그램 동작 수행시, 페이지를 구성하는 메모리 셀들 중 호스트로부터 수신한 데이터를 프로그램하는 메모리 셀들의 영역을 제1 영역으로 지칭할 수 있으며, 페이지를 구성하는 메모리 셀들 중 프로그램 동작 후에, 프로그램되지 않고 남은 메모리 셀들의 영역을 제2 영역으로 지칭할 수 있다. 페이지를 이루는 메모리 셀들 중 외부로부터 수신한 어드레스에 의하여 맵핑되어 데이터가 프로그램되는 영역을 제1 영역으로 정의하며, 외부로부터 수신한 어드레스에 의하여 맵핑되지 않아 데이터가 프로그램되지 않는 영역을 제2 영역으로 정의한다. 페이지 버퍼는 유효데이터영역 및 패드영역을 포함하며, 유효데이터영역에는 유효데이터가 저장되며, 유효데이터는 유효데이터영역에 대응되는 제1 영역에 프로그램된다. 패드영역에는 무효데이터가 저장되며, 무효데이터는 패드영역에 대응되는 제2 영역에 프로그램된다.
도1 에 도시된 바와 같이, 메모리 시스템(1000)은 플래시 메모리 장치(1200)와 메모리 컨트롤러(1100)를 포함할 수 있다. 또한, 메모리 컨트롤러(1100)은 프로그램, 리드 및 소거 동작 등을 제어할 수 있다. 플래시 메모리 장치(1200)는 메모리 컨트롤러(1100)의 프로그램, 리드 및 소거 동작 등의 제어에 따라, 메모리 장치(1200)내의 프로그램, 리드 및 소거 동작 등을 제어하는 컨트롤 로직(CL), 다수의 플래시 메모리 셀이 배치된 셀 영역을 포함하는 메모리부(MU) 및 SRAM(Static random access memory), MRAM(Magnetic random access memory) 등으로 구현될 수 있는 페이지 버퍼(PB)를 포함할 있다. 상기 셀 영역은 하나 이상의 메모리 블록을 포함하며, 각각의 메모리 블록은 다수 개의 페이지를 포함할 수 있다. 각각의 페이지 단위로, 페이지를 이루는 메모리 셀들 중 유효데이터가 프로그램되는 제1 영역 및 무효데이터가 프로그램되는 제2 영역을 포함할 수 있다. 유효데이터는 사용자에 의해 이용되는 유저 데이터(User data) 및 그 이외의 정보를 포함할 수 있다. 본 발명의 일실시예에 따라, 그 이외의 정보는 패리티 정보일 수 있으며, 데이터 리드시 함께 리드되어 데이터 판독 동작에 사용된다. 패드영역에 저장되는 무효데이터를 패드영역에 대응하는 메모리 셀에 프로그램 하였을 때, 상기 메모리 셀의 상태(state)를 오프 셀(Off-cell)이 되도록 변경할 수 있다.
상기와 같은 구성들의 명칭은 본 발명에 적용될 수 있는 하나의 예를 나타낸 것으로서, 상기 메모리 컨트롤러(1100)와 플래시 메모리 장치(1200)가 별도의 반도체 칩(또는 별도의 반도체 장치)으로 구현될 수 있다. 또한, 메모리 시스템(1000)은 SD(Secure digital), MMC(Multimedia card) 등의 메모리 카드로 구현될 수 있다.
한편, 메모리 시스템(1000)과 호스트(2000)는 ATA, SATA, USB, SCSI, ESDI, PCE-express, 또는 IDE 인터페이스와 같은 표준 인터페이스 (standardized interface)에 의해서 연결될 수 있으며, 이외에도 다른 인터페이스 방식을 적용하여 연결이 가능하다. 또한, 호스트(2000)는 PDA(personal digital assistance), 컴퓨터, 디지털 오디오 플레이어, 디지털 카메라, 모바일 터미널 등의 메모리 시스템(1000)를 사용하는 어떠한 장치이어도 무방하다.
플래시 메모리 장치(1200)는 하드 디스크 등의 다른 저장장치와는 달리 프로그램/리드 동작의 단위와 소거 동작의 단위가 서로 다르며, 또한 이미 데이터가 프로그램된 영역에 겹쳐 쓰기(over write)가 되지 않으므로 프로그램, 리드 및 소거 동작에 대한 별도의 관리가 필요하다. 낸드 레이어(NAND Layer:이하 NL)는 플래시 메모리 장치의 동작을 위한 시스템 소프트웨어로서, 낸드 레이어(NL)는 플래시 메모리 장치(1200)의 동작시 메모리 컨트롤러(1100)의 소정의 램(RAM, 미도시)에 로드되어 메모리 장치(1200)를 구동하기 위한 각종 동작을 수행한다.
도1 에 도시된 바와 같이, 낸드 레이어(NL)는 메모리 장치(1200)를 구동하기 위한 하나 이상의 소프트웨어 모듈을 포함할 수 있으며, 예컨대 낸드 레이어(NL)는 커맨드 발생 모듈(CMD Generation) 및 프로그램 데이터 생성 모듈(PD Generation) 등을 포함할 수 있다. 커맨드 발생 모듈(CMD Generation)은 패드영역에 무효데이터를 저장하는 동작 등을 제어할 수 있고, 프로그램 데이터 생성 모듈(PD Generation)은 유효데이터 및 무효데이터를 포함할 수 있는 프로그램 데이터를 생성할 수 있다. 호스트(2000)로부터 메모리 동작이 요청되면, 메모리 컨트롤러(1100)는 그 내부에 구비되는 프로세서(미도시)의 제어하에서 낸드 레이어(NL)를 램(RAM)이나 레지스터(Register)에 로드하고, 호스트(2000)의 요청에 따라 낸드 레이어(NL)가 동작하도록 함으로써 메모리 동작을 제어할 수 있다.
커맨드 발생 모듈(CMD Generation)은, 본 발명의 실시예에 따라 페이지 버퍼(PB)의 패드영역에 무효데이터를 저장하고, 패드영역에 저장된 무효데이터를 유지하며, 무효데이터를 패드영역에 대응하는 페이지의 메모리 셀들의 제2 영역에 프로그램하는 동작 등을 수행하기 위한 커맨드를 생성할 수 있다. 또한 상기 생성된 커맨드는 메모리 장치(1200)에 제공될 수 있다.
플래시 메모리 장치(1000)의 프로그램 및 리드의 동작 단위로서 페이지(page)가 정의될 수 있다. 페이지(page)는 동일한 워드라인에 공통하게 연결되는 다수의 플래시 메모리 셀을 포함하는 개념으로서, 이에 따라 프로그램 데이터 생성 모듈(PD Generation)은, 페이지의 크기에 기반한 프로그램 데이터를 생성할 수 있다. 프로그램 데이터는 유효데이터 및 무효데이터를 포함할 수 있으며, 유효데이터는 사용자에 의해 이용되는 유저 데이터(User data) 및 그 이외의 정보를 포함할 수 있다. 무효데이터는 패드영역에 대응하는 메모리 셀에 프로그램 하였을 때, 상기 메모리 셀이 오프 셀(Off-cell)이 되도록 상태(state)를 변경할 수 있는 데이터일 수 있다. 유저 데이터는 호스트(2000)로부터 수신할 수 있으며, 일예로써, 그외의 정보에 해당되는 패리티 비트는 메모리 컨트롤러(1100)에서 생성될 수 있다. 무효데이터는 메모리 컨트롤러(1100)에서 생성함으로써, 이를 기반으로 프로그램 데이터를 생성할 수 있다.
커맨드 발생 모듈(CMD Generation) 및 프로그램 데이터 생성 모듈(PD Generation) 중 적어도 하나가 활성되어, 패드영역에 무효데이터를 저장하는 동작 등을 할수 있다. 상기 도1 에 도시된 메모리 시스템보다 구체적인 동작은 후술하기로 한다.
도2a 는 도1 의 페이지 버퍼(PB), 도2b는 메모리부(MU)의 일예를 나타내는 블록도이다.
도2a 에 도시된 바와 같이 페이지 버퍼(PB)는 제1 내지 3 유효데이터영역(VDA_1~VDA_3) 및 제1 내지 4 패드영역(PA_1~PA_4)를 포함할 수 있다. 다만 이에 국한되지 않고, 발명의 일실시예로써, 유효데이터의 크기, 주소 등에 따라, 크기 및 개수, 위치 등이 다양한 패드영역을 형성할 수 있다. 도2b 에 도시된 바와 같이 메모리부(MU)는 하나 이상의 메모리 블록(Block)을 포함하고, 그 중의 n번째 메모리 블록(nth Block)은 다수 개의 페이지(Page1~Page n)를 포함할 수 있다. 제1 페이지(Page1)는 다수의 메모리 셀로 구성된 제1 영역(A1~A3) 및 또 다른 다수의 메모리 셀로 구성된 제2 영역(B1~B4)를 포함할 수 있으며, 다른 페이지들도 이와 같은 구성을 가질 수 있다. 다만, 이에 국한되지 않고, 발명의 일실시예로써, 유효데이터의 크기, 주소 등에 따라, 크기 및 개수, 위치 등이 다양한 제2 영역을 형성할 수 있다.
편의상, 도2a 의 제1 내지 3 유효데이터영역(VDA_1~VDA~3)는 통합하여 하나의 유효데이터영역(Valid DATA Area)로 지칭하고, 제1 내지 4 패드영역(PA_1~PA_4)은 통합하여 하나의 패드영역(Pad Area)로 지칭한다. 또한, 도2b 의 A1~A3영역은 제1 영역(1 st Area), B1~B4영역은 제2 영역(2 nd Area)으로 지칭한다.
페이지 버퍼(PB)의 유효데이터영역(Valid DATA Area)에 대응하는 제1 페이지(Page 1)의 메모리 셀 영역은 제1 영역(1 st Area)에 해당할 수 있으며, 패드영역(Pad Area)에 대응하는 제1 페이지(Page_1)의 메모리 셀 영역은 제2 영역(2 nd Area)에 해당할 수 있다. 유효데이터영역에 저장되고, 제1 영역(1 st Area)에 프로그램 되는 유효데이터의 크기에 따라, 제2 영역(2 nd Area)과 패드영역(Pad Area) 크기가 달라질 수 있다. 또한, 메모리 컨트롤러으로부터 수신한 데이터의 크기 및 주소 등에 따라, 제1 영역(1 st Area) 및 제2 영역(2st Area)에 해당하는 메모리 셀 영역이 달라질 수 있으며, 본 발명의 다른 실시예로써, 제1 영역(1 st Area) 또는 제2 영역(2 st Area)에 해당하는 메모리 셀들은 다양한 형태로 분포될 수 있다.
유효데이터는 페이지 버퍼(PB)의 유효데이터영역(Valid DATA Area)에 저장될 수 있으며, 제1 페이지(Page 1)의 제1 영역(1 st Area)에 해당되는 메모리 셀들에 프로그램될 수 있다. 무효데이터는 패드영역(Pad Area)에 저장될 수 있으며, 제1 페이지(Page 1)의 제2 영역(2 st Area)에 해당되는 메모리 셀들에 프로그램될 수 있다. 이는 일실시예로써, 제n 페이지(Page n)에도 제1 페이지(Page 1)와 같은 본 발명의 사상이 적용될 수 있다. 또한, 상기와 같은 본 발명의 사상은 싱글레벨 셀(Single Level Cell, SLC), 멀티레벨 셀(Multi Level Cell, MLC), 및 트리플 레벨 셀(Tripple Level Cell, MLC) 등 다양한 경우에 적용될 수 있다.
도3 은 프로그램 수행 동작시의 페이지 버퍼를 나타내는 블록도이다.
도1 에 언급하였듯이, 먼저 도1 의 커맨드 발생 모듈(CMD Generation)만 활성된 경우를 전제하여 이하 서술하도록 한다. 이하에서는, 페이지를 이루는 메모리 셀에 대한 프로그램 동작과 구분하기 위하여, 페이지 버퍼에 대한 프로그램 동작은 저장 동작으로 일컫는다.
도3 의 (a)를 참조하면, 메모리 컨트롤러로부터 소거 동작 명령을 수신하여, 페이지 버퍼(PB)가 클리어(Clear)된 상태를 나타낸다. 이 때에는, 패드영역(PA) 및 유효데이터영역(VDA)에는 데이터가 저장되지 않은 상태이다. 도3의 (b)를 참조하면, 메모리 컨트롤러로부터 제1 프로그램 동작 명령 및 제1 데이터(1 st DATA)를 수신할 수 있다. 이 때, 제1 데이터(1 st DATA)는 유효데이터일 수 있으며, 유저 데이터 및 그 이외의 정보를 포함하는 할 수 있다. 컨트롤 로직은 유효데이터영역(VDA)에 제1 데이터(1 st DATA)를 저장하도록 제어할 수 있다. 도3의 (c)를 참조하면, 컨트롤 로직은 제2 데이터(2 nd DATA)를 패드영역(PA)에 저장하도록 제어할 수 있다. 제2 데이터(2 nd DATA)는 무효데이터일 수 있으며, 제2 데이터(2 nd DATA)는 커맨드 발생 모듈(CMD Generation)의 동작에 의하여 생성된 커맨드에 기반하여, 컨트롤 로직이 정한 데이터일 수 있다. 이렇게 페이지 버퍼(PB)에 저장된 제1 데이터(1 st DATA)는 유효데이터영역(VDA)에 대응하는 페이지의 제1 영역에 프로그램되고, 제2 데이터(2 nd DATA)는 패드영역(PA)에 대응하는 페이지의 제2 영역에 프로그램된다.
도3의 (d)를 참조하면, 컨트롤 로직은 메모리 컨트롤러로부터 제2 프로그램 동작 명령 및 제3 데이터(3 rd DATA)를 수신할 수 있다. 이 때, 제3 데이터(3 rd DATA)는 유효데이터일 수 있으며, 유저 데이터 및 그 이외의 정보를 포함할 수 있다. 컨트롤 로직은 페이지 버퍼(PB)의 소거 동작을 생략하고, 바로 유효데이터영역(VDA)에 제3 데이터(3 rd DATA)를 저장하도록 제어할 수 있다. 이를 통해, 패드영역(PA)의 저장된 제2 데이터(2 nd DATA)를 유지함으로써, 반복적인 패드영역(Pad Area)에 대한 데이터 저장 동작을 피할수 있어, 플래시 메모리 장치 및 시스템의 성능을 향상시킬 수 있다.
도1 에 언급하였듯이, 다음은 도1 의 커맨드 발생 모듈(CMD Generation) 및 프로그램 데이터 모듈(PD Generation)이 동작하는 경우를 전제하여 이하 서술하도록 한다.
도3 의 (a)를 참조하면, 메모리 컨트롤러로부터 소거 동작 명령을 수신하여, 페이지 버퍼(PB)가 소거(Clear)된 상태를 나타낸다. 이 때에는, 패드영역(PA) 및 유효데이터영역(VDA)에는 데이터가 저장되지 않은 상태이다. (b) 및 (c)를 참조하면, 메모리 컨트롤러로부터 제1 프로그램 동작 명령 및 제1 프로그램 데이터(미도시)를 수신할 수 있다. 이 때, 제1 프로그램 데이터(미도시)는 메모리 컨트롤러에서 생성된 것으로, 제1 데이터(1 st DATA) 및 제2 데이터(2 nd DATA)를 포함할 수 있다. 제1 데이터(1 st DATA)는 유효데이터일 수 있으며, 유저 데이터 및 그 이외의 정보를 포함하는 할 수 있다. 제2 데이터(2 nd DATA)는 무효데이터일 수 있다. 컨트롤 로직은 유효데이터영역(VDA)에 제1 데이터(1 st DATA)를 저장하도록 제어할 수 있으며, 제2 데이터(2 nd DATA)를 패드영역(PA)에 저장하도록 제어할 수 있다. (b)(c)의 도시된 것에 국한되지 않으며, 제1 데이터(1 st DATA) 및 제2 데이터(2 nd DATA)는 동시에 페이지 버퍼(PB)에 저장될 수 있으며, 제2 데이터(2 nd DATA)가 먼저 저장될 수도 있다. (d)를 참조하면, 컨트롤 로직은 메모리 컨트롤러로부터 제2 프로그램 동작 명령 및 제2 프로그램 데이터(미도시)를 수신할 수 있다. 이 때, 제2 프로그램 데이터(미도시)는 제3 데이터(3 rd DATA)를 포함할 수 있으며, 이는 유효데이터일 수 있으며, 유저 데이터 및 그 이외의 정보를 포함할 수 있다. 도1 의 프로그램 데이터 생성 모듈(PD Generation)를 비활성되도록 하여, 제2 프로그램 데이터(미도시)는 제1 프로그램 데이터(미도시)와 다르게 무효데이터를 포함하지 않을 수 있다. 컨트롤 로직은 페이지 버퍼(PB)의 소거 동작을 생략하고, 바로 유효데이터영역(VDA)에 제3 데이터(3 rd DATA)를 저장하도록 제어할 수 있다. 이를 통해, 패드영역(PA)의 저장된 제2 데이터(2 nd DATA)를 유지함으로써, 반복적인 패드영역(Pad Area)에 대한 데이터 저장 동작을 피할수 있어, 플래시 메모리 장치 및 시스템의 성능을 향상시킬 수 있다.
본 발명의 일실시예로, 상기한 컨트롤 로직의 제어 동작은 메모리 컨트롤러에 의하여 제어될 수 있다.
도4a 및 도4 b 는 플래시 메모리 장치내의 프로그램 동작을 나타내는 블록도이다.
도4a 를 참조하면, 플래시 메모리 장치(1200)는 컨트롤 로직(CL), 페이지 버퍼(PB) 및 메모리부(MU)를 포함할 수 있다. 도3 의 (c)와 같이 페이지 버퍼(PB)는 유효데이터에 해당하는 제1 데이터(1 st DATA)가 저장된 유효데이터영역(VDA) 및 무효데이터에 해당하는 제2 데이터(2 nd DATA)가 저장된 패드영역(PA)를 포함할 수 있으며, 이에 관련한 서술은 도3의 (c)에 대한 설명으로 서술한바 생략한다.. 메모리부(MU)는 유효데이터영역(VDA)에 대응하는 다수의 메모리 셀들로 구성된 제1 영역(1 st Area) 및 패드영역(PA)에 대응하는 또 다른 다수의 메모리 셀들로 구성된 제2 영역(2 nd Area)를 포함하는 제1 페이지(page 1)을 포함할 수 있다.
컨트롤 로직(CL)은 페이지 버퍼(PB)에 제1 신호(PC1)를 제공할 수 있다. 이를 기반으로, 유효데이터영역(VDA)에 저장된 제1 데이터(1 st DATA)를 제1 페이지(page 1)의 제1 영역(1 st Area)에 프로그램하고 패드영역(PA)에 저장된 제2 데이터(2 nd DATA)를 제2 페이지(page 2)의 제2 영역(2 nd Area)에 프로그램 하도록 제어할 수 있다.
도4b 를 참조하면, 도3 의 (d)와 같이 페이지 버퍼(PB)는 유효데이터에 해당하는 제3 데이터(3 rd DATA)가 저장된 유효데이터영역(VDA) 및 무효데이터에 해당하는 제2 데이터(2 nd DATA)가 저장된 패드영역(PA)를 포함할 수 있으며, 이에 관련한 서술은 도3의 (d)에 대한 설명으로 서술한바 생략한다. 메모리부(MU)는 유효데이터영역(VDA)에 대응하는 다수의 메모리 셀들로 구성된 제1 영역(1 st Area) 및 패드영역(PA)에 대응하는 또 다른 다수의 메모리 셀들로 구성된 제2 영역(2 nd Area)를 포함하는 제2 페이지(page 2)를 포함할 수 있다.
컨트롤 로직(CL)은 페이지 버퍼(PB)에 제2 신호(PC2)를 제공할 수 있다. 이를 기반으로, 유효데이터영역(VDA)에 저장된 제3 데이터(3 rd DATA)를 제2 페이지(Page 2)의 제1 영역(1 st Area)에 프로그램하고 패드영역(PA)에 저장된 제2 데이터(2 nd DATA)를 제2 페이지(Page 2)의 제2 영역(2 nd Area)에 프로그램 하도록 제어할 수 있다. 다만, 이에 국한되지 않으며, 메모리부(MU)는 다수의 메모리 블록을 포함할 수 있으며, 각각의 메모리 블록에 포함된 다수의 페이지에 본 발명의 사상을 적용할 수 있을 것이다.
위와 같이, 페이지 버퍼(PB)의 패드영역(PA)에 무효데이터를 반복적으로 저장 동작을 수행하지 않고, 메모리부(MU)의 페이지(Page)의 메모리 셀에 바로 프로그램함으로써, 플래시 메모리 장치의 성능을 향상시킬 수 있으며, 도1 에서 언급하였듯이, 제2 영역(2 nd Area)에 해당하는 메모리 셀들을 오프 셀(off-cell)이 되도록 상태를 변경해줄 수 있는 무효데이터를 프로그램함으로써, 플래시 메모리 장치의 에러 발생을 줄일 수 있는 효과가 있다.
도5 는 플래시 메모리 장치내의 리드 동작을 나타내는 블록도이다.
도5 를 참조하면, 플래시 메모리 장치(1200)는 컨트롤 로직(CL), 페이지 버퍼(PB) 및 메모리부(MU)를 포함할 수 있다. 메모리 컨트롤러로부터 데이터 리드 명령 등을 수신하여, 컨트롤 로직(CL)은 페이지 버퍼(PB)에 클리어 신호(CC)를 제공하여, 페이지 버퍼(PB)에 저장된 데이터를 클리어할 수 있다. 메모리부(MU)는 유효데이터에 해당하는 제1 데이터(1 st DATA)가 프로그램된 메모리 셀들을 포함하는 제1 영역(1 st Area) 및 무효데이터에 해당하는 제2 데이터(2 nd DATA)가 프로그램된 메모리 셀들을 포함하는 제2 영역(2 nd Area)를 포함하는 제1 페이지(Page 1)을 포함할 수 있다. 이 때, 컨트롤 로직(CL)은 메모리부(MC)에 리드 신호(RC)를 제공하여, 제1 영역(1 st Area)상의 제1 데이터(1 st DATA)를 페이지 버퍼(PB)의 유효데이터영역(VDA)에 저장할 수 있고, 제2 영역(2 nd Area)상의 제2 데이터(2 nd DATA)를 패드영역(PA)에 저장할 수 있다.
도6 은 메모리 시스템에서의 메모리 컨트롤러가 프로그램 데이터를 생성하는 것을 나타낸 블록도이다.
도6 을 참조하면, 메모리 시스템(1000)은 메모리 컨트롤러(1100) 및 플래시 메모리 장치(1200)를 포함할 수 있다. 메모리 컨트롤러(1100)는 도1 에서 언급하였듯이, 프로그램 데이터 생성 모듈(PD Generation)을 포함하는 낸드 레이어(NL)을 포함할 수 있으며, 플래시 메모리 장치(1200)는 도1 과 같이 페이지 버퍼(PB), 컨트롤 로직(CL) 및 메모리부(MU)를 포함할 수 있다.
메모리 컨트롤러(1100)는 외부로부터, 예를 들면, 호스트로부터 데이터 프로그램 요청(Request) 및 소정의 데이터(ODATA)를 수신할 수 있다. 이 후, 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 무효데이터 및 유효데이터를 포함하는 프로그램 데이터(NDATA)를 생성할 수 있다. 상기 유효데이터는 소정의 데이터(ODATA) 및 그 외의 정보를 포함할 수 있으며, 그 외의 정보는 패리티 비트에 해당할 수 있다. 메모리 컨트롤러(1100)는 프로그램 데이터(NDATA) 및 도3 등에서 서술한 동작 수행을 명령하는 커맨드(CMD)를 플래시 메모리 장치(1200)에 제공할 수 있다.
도7a , 7b, 7c 는 도6 의 메모리 컨트롤러가 생성하는 프로그램 데이터의 종류를 나타낸 도면이다.
도7a 를 참조하면, 제1 데이터 프로그램 요청 수신시, 도6의 메모리 컨트롤러는 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 무효데이터(NVD) 및 제1 유효데이터(1 st VD)를 포함하는 제1 프로그램 데이터(NDATA 1)를 생성할 수 있다. 무효데이터(NVD)는 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 데이터 값이 정해질 수 있다. 제1 프로그램 데이터(NDATA 1)를 플래시 메모리 장치에 제공하여, 페이지 버퍼(PB)의 패드영역(PA) 및 유효데이터영역(VDA)에 각각 무효데이터(NVD) 및 제1 유효데이터(1 st VD)를 저장할 수 있다.
도7b 를 참조하면, 제2 데이터 프로그램 요청 수신시, 도6 의 메모리 컨트롤러는 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 무효데이터(NVD) 및 제2 유효데이터(2 nd VD)를 포함하는 제2 프로그램 데이터(NDATA 2)를 생성할 수 있다. 무효데이터(NVD)는 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 생성될 수 있다. 제2 프로그램 데이터(NDATA 2)를 플래시 메모리 장치에 제공하여, 페이지 버퍼(PB)의 패드영역(PA) 및 유효데이터영역(VDA)에 각각 무효데이터(NVD) 및 제2 유효데이터(2 nd VD)를 저장할 수 있다.
도7c 를 참조하면, 제2 데이터 프로그램 요청 수신시, 도6 의 메모리 컨트롤러는 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 무효데이터(NVD)의 데이터 값을 정하지 않으며, 무효데이터(NVD)를 포함하지 않고 제2 유효데이터(2 nd VD)를 포함하는 제2 프로그램 데이터'(NDATA' 2)를 생성할 수 있다. 제2 프로그램 데이터'(NDATA' 2)를 플래시 메모리 장치에 제공하여, 도7(a) 에서 페이지 버퍼(PB)의 패드영역(PA)에 저장된 무효데이터(NVD)를 유지하고, 유효데이터영역(VDA)에 제2 프로그램 데이터'(NDATA'2)가 포함하는 제2 유효데이터(2 nd VD)를 저장할 수 있다. 도7a , 7b ,7c 에서 언급한 저장 동작은 메모리 컨트롤러의 명령에 따라서, 플래시 메모리 장치내의 컨트롤 로직이 제어할 수 있다.
도7c 는 도7a 에서 생성되어 페이지 버퍼(PB)에 저장되었던 무효데이터를, 다시 생성하지 않고, 패드영역(PA)에 저장된 무효데이터를 유지하여, 반복적인 패드영역(PA)에 저장 동작을 지양함으로써, 플래시 메모리 장치 및 시스템에 성능 향상 효과를 얻을 수 있다.
도8 은 플래시 메모리 장치의 메모리 블록간 복사 동작을 나타내는 블록도이다.
도8 을 참조하면, 플래시 메모리 장치는 제1 메모리 블록(Block 1) 및 제2 메모리 블록(Block 2)를 포함할 수 있다. 일실시예로서, 제1 메모리 블록(Block 1)의 제1 페이지(page 1)의 제1 영역에 해당하는 메모리 셀들에는 유효데이터에 해당하는 제1 데이터(1 st DATA)가 프로그램되고, 제2 영역에 해당하는 메모리 셀들에는 무효데이터에 해당하는 제2 데이터(2 nd DATA)가 프로그램될 수 있다. 이와 같이 제1 페이지(page 1) 이외의 페이지들(page 2~n)의 제1 영역에 해당하는 메모리 셀들에는 유효데이터, 제2 영역에 해당하는 메모리 셀들에는 무효데이터가 저장될 수 있다. 각 페이지(page 1~n)의 제2 영역의 메모리 셀들에 프로그램되는 제2 데이터(2 nd DATA)는 모두 같은 데이터 값을 가질 수 있다. 상술하였듯이, 무효데이터는 제2 영역에 해당하는 메모리 셀들에 프로그램 되었을때, 오프 셀이 되도록 상태를 변경시켜줄 수 있는 데이터에 해당할 수 있다. 본 발명의 일실시예로, 메모리 컨트롤러는 플래시 메모리 장치의 제1 메모리 블록(Block 1)의 데이터 소거 명령을 제공하기 전에, 제1 메모리 블록(Block 1)의 각 페이지에 저장된 데이터가 포함하는 유효데이터 및 무효데이터를 모두 제2 메모리 블록(Block 2)의 각각의 페이지에 프로그램하여, 복사 동작을 수행할 수 있다.
이를 통하여, 복사 동작에서도 페이지 버퍼의 패드영역에 대응하는 제2 영역의 메모리 셀들에 무효데이터를 프로그램함으로써, 플래시 메모리 장치 및 시스템의 에러 발생 확률을 낮출 수 있다.
도9 는 본 발명의 일실시예에 따른 플래시 메모리 시스템의 동작방법을 나타내는 플로우차트이다.
도9 에 도시된 바와 같이, 플래시 메모리 장치는 메모리 컨트롤러로부터 플래시 메모리 장치의 제1 페이지에 대한 데이터 프로그램 명령을 수신한다(S100). 데이터 프로그램 명령과 메모리 컨트롤러가 포함하는 낸드 레이어(NAND Layer)내의 커맨드 생성 모듈(CMD Generation)의 동작에 의하여, 컨트롤 로직은 메모리 컨트롤러로부터 수신한 제1 유효데이터를 페이지 버퍼의 유효데이터영역에 저장한다(S110). 또한, 컨트롤 로직은 무효데이터를 설정하여, 페이지 버퍼의 패드영역에 저장한다(S120). 컨트롤 로직은, 페이지 버퍼를 통하여, 유효데이터영역에 대응하는 제1 페이지의 제1 영역의 메모리 셀들에 제1 유효데이터를 프로그램한다(S130). 또한, 컨트롤 로직은, 페이지 버퍼를 통하여, 패드영역에 대응하는 제1 페이지의 제2 영역의 메모리 셀들에 무효데이터를 프로그램한다.(S140). 무효데이터는 제2 영역의 메모리 셀들에 프로그램 하였을 때, 오프 셀(Off cell)로 만들 수 있는 데이터에 해당할 수 있다. 상기와 같은 단계들은 제1 페이지 이외에도 각각의 페이지에 대하여 수행될 수 있다. 다만, 이의 단계 순서에 국한되지 않으며, 각각의 단계가 동시에 수행될 수 있다.
도10 는 본 발명의 다른 실시예에 따른 플래시 메모리 시스템의 동작방법을 나타낸 플로우 차트이다.
도10 을 참조하면, 도9 에 도시된 동작을 거친 후에, 플래시 메모리 장치는 메모리 컨트롤러로부터 플래시 메모리 장치의 제2 페이지에 대한 데이터 프로그램 명령을 수신한다(S200). 데이터 프로그램 명령과 메모리 컨트롤러가 포함하는 낸드 레이어(NAND Layer)내의 커맨드 생성 모듈(CMD Generation)의 동작에 의하여, 컨트롤 로직은 메모리 컨트롤러로부터 수신한 제2 유효데이터를 페이지 버퍼의 유효데이터영역에 저장한다(S210). 또한, 패드영역에 저장된 무효데이터를 유지한다. 컨트롤 로직은, 페이지 버퍼를 통하여, 유효데이터영역에 대응하는 제2 페이지의 제1 영역의 메모리 셀들에 제2 유효데이터를 프로그램한다(S220). 또한, 컨트롤 로직은, 페이지 버퍼를 통하여, 패드영역에 대응하는 제2 페이지의 제2 영역의 메모리 셀들에 패드영역에 계속하여 저장된 무효데이터를 프로그램한다(S230). 무효데이터는 제2 영역의 메모리 셀들에 프로그램 하였을 때, 오프 셀(Off cell)로 만들 수 있는 데이터에 해당할 수 있다. 상기와 같은 단계들은 제2 페이지 이외에도 각각의 페이지에 대하여 수행될 수 있다. 다만, 이의 단계 순서에 국한되지 않으며, 각각의 단계가 동시에 수행될 있다.
도11 는 본 발명의 또 다른 실시예에 따른 플래시 메모리 시스템의 동작방법을 나타낸 플로우 차트이다.
도11 을 참조하면, 메모리 컨트롤러가 호스트로부터 데이터 프로그램 요청을 수신한다(S300). 이 때, 메모리 컨트롤러가 도2에 언급한대로, 프로그램 데이터 생성 모듈(PD Generation)의 동작에 의하여, 무효데이터가 생성되어, 페이지 버퍼의 패드영역에 저장되어 있는지 여부의 Y조건을 판단한다(S310). 일예로서, 단계 S300 이전에 또 다른 데이터 프로그램 요청을 수신하여, 무효데이터를 생성할 수 있다. 유효데이터와 생성한 무효데이터를 포함하는 프로그램 데이터를 생성하여, 페이지 버퍼에 프로그램 데이터를 저장한 경우에는 메모리 컨트롤러는 다시 무효데이터를 포함한 프로그램 데이터를 생성하지 않고, 데이터 프로그램 요청에 응답하여 유효데이터만을 포함하는 프로그램 데이터를 생성한다(S320). 단계 S320은 프로그램 데이터 생성 모듈(PD Generation)을 오프(off)로 제어함으로써, 수행할 수 있다. 또한, 단계 S300 이전에 데이터 소거 요청을 수신한 경우 또는 페이지 버퍼의 패드영역에 무효데이터가 저장되어 있지 않는 경우에는, 메모리 컨트롤러는 무효데이터를 생성하여, 유효데이터와 생성한 무효데이터를 포함하는 프로그램 데이터를 생성한다(S330)
도12 는 본 발명의 실시예들에 따른 플래시 메모리 장치를 포함한 컴퓨터 시스템을 나타내는 도면이다.
도12 를 참조하면, 컴퓨터 시스템(2000)은 시스템 버스(2500)에 전기적으로 연결되는 중앙 처리 장치(2100), 사용자 인터페이스(2200), 플래시 메모리 장치(2400) 그리고 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(2300)을 포함할 수 있다. 사용자 인터페이스(2200)는 통신 네트워크로 데이터를 전송하거나 통신 네크워크로부터 데이터를 수신하기 위한 인터페이스일 수 있다. 사용자 인터페이스(2200)는 유무선 형태일 수 있고, 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 사용자 인터페이스(2200) 또는 모뎀(2300)을 통해 제공되거나 중앙 처리 장치(2100)에 의해서 처리된 데이터는 플래시 메모리 장치(2400)에 저장될 수 있다.
플래시 메모리 장치(2400)은 디램과 같은 휘발성 메모리 소자 및/또는 플래쉬 메모리와 같은 비휘발성 메모리 소자를 포함할 수 있다. 플래시 메모리 장치(2400)는 도1 에 도시된 것과 같이, 본 발명의 실시예들에 따른 페이지 버퍼(PB), 컨트롤 로직(CL) 및 메모리부(MU)를 포함하여, 프로그램 동작 수행시, 페이지 버퍼(PB)의 패드영역에 무효데이터를 저장하고, 메모리부(MU)가 포함하는 프로그램 대상 페이지 중 패드영역에 대응하는 영역의 메모리 셀들에 무효데이터를 프로그램함으로써, 플래시 메모리 장치(2400)의 에러 발생 확률을 줄일 수 있는 효과를 얻을 수 있다.
본 발명에 따른 컴퓨터 시스템(2000)이 모바일 장치인 경우, 컴퓨터 시스템(400)의 동작 전압을 공급하기 위한 배터리(도시하지 않음)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨터 시스템(2000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIP), 그리고 입출력 장치 등이 더 제공될 수 있다.
본 발명에 따른 컴퓨터 시스템(200)이 무선 통신을 수행하는 장비인 경우, 컴퓨터 시스템(1100)은 CDMA(Code Division Multiple Access), GSM(Global System for Mobile communication), NADC(North American Multiple Access), CDMA2000 과 같은 통신 시스템에서 사용될 수 있다.
도13 은 본 발명의 일 실시예에 따른 메모리 카드를 나타내는 도면이다. 메모리 카드(3000)는 모바일 기기나 데스크 탑 컴퓨터와 같은 전자기기에 연결하여 사용할 수 있는 휴대용 저장장치가 될 수 있다. 도 13 에 도시된 바와 같이, 메모리 카드(3000)는 메모리 컨트롤러(3040), 메모리 장치(3060) 및 포트 영역(3020)을 구비할 수 있다. 메모리 카드(3000)는 포트 영역(3020)을 통해서 외부의 호스트(미도시)와 통신할 수 있고, 메모리 컨트롤러(3040)는 메모리 장치(3060)를 제어할 수 있다. 메모리 컨트롤러(3040)는 프로그램을 저장하는 ROM(미도시)으로부터 프로그램을 읽어서 수행할 수 있다. 도 13의 메모리 컨트롤러(3040) 및 메모리 장치(3060)는 전술된 도 1 등의 메모리 컨트롤러(3040) 및 메모리 장치(3060)일 수 있다.
도14 는 본 발명의 실시예에 따른 반도체 저장 시스템(MSYS)이 솔리드 스테이트 드라이브(SSD: Solid State Drive)인 경우를 나타내는 도면이다.
도14 를 참조하면, 본 발명의 실시예에 따른 솔리드 스테이트 드라이브는 SSD 컨트롤러(SCTL) 및 메모리 장치(MEM)를 포함한다. 메모리 장치(MEM)는 본 발명의 일 실시예에 따른 도1의 플래시 메모리 장치를 포함할 수 있다. SSD 컨트롤러(SCTL)는 버스(BUS)로 연결되는 프로세서(PROS), 램(RAM), 캐쉬 버퍼(CBUF) 및 도1 의 메모리 컨트롤러에 해당하는 메모리 컨트롤러(CTRL)를 포함할 수 있다. 프로세서(PROS)는 호스트의 요청(명령, 어드레스, 데이터)에 응답하여 메모리 컨트롤러(CTRL)가 메모리 장치(MEM)와 데이터를 송수신 및 상술한 본 발명의 일실시예에 따른 동작 수행 제어한다. 본 발명의 실시예에 따른 솔리드 스테이트 드라이브의 프로세서(PROS) 및 메모리 컨트롤러(CTRL)는 하나의 ARM 프로세서로 구현될 수도 있다. 프로세서(PROS)의 동작에 필요한 데이터는 램(RAM)에 로딩될 수 있다.
호스트 인터페이스(HOST I/F)는 호스트의 요청을 수신하여 프로세서(PROS)로 전송하거나, 메모리 장치(MEM)로부터 전송된 데이터를 호스트로 전송한다. 호스트 인터페이스(HOST I/F)는 USB(Universal Serial Bus), MMC(Man Machine Communication), PCI-E(Peripheral Component Interconnect-Express), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Device Interface), 그리고 IDE(Intelligent Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜로, 호스트와 인터페이스 할 수 있다. 메모리 장치(MEM)로 전송하고자 하거나, 메모리 장치(MEM)로부터 전송된 데이터는 캐쉬 버퍼(CBUF)에 임시로 저장될 수 있다. 캐쉬 버퍼(CBUF)는 SRAM 등일 수 있다.
도15 는 본 발명의 일 실시예에 따른, 반도체 저장 시스템(MSYS)을 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
도15 을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 서버 시스템(SSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 서버(SERVER) 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함하도록 포함할 수 있다. 이때, 도 15의 SSD는 도 14의 SSD일 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (10)

  1. 하나 이상의 메모리 블록을 포함하는 셀 영역을 포함하고, 각각의 메모리 블록은 다수 개의 페이지들을 포함하는 메모리부;
    외부로부터 하나 이상의 상기 페이지에 대한 데이터 프로그램 명령에 응답하여, 상기 페이지에 프로그램 하기 위한 유효데이터가 저장되는 유효데이터영역 및 상기 페이지에 프로그램 하기 위한 무효데이터가 저장되는 패드영역을 포함하는 페이지 버퍼; 및
    상기 데이터 프로그램 명령에 응답하여, 상기 패드영역에 저장된 상기 무효데이터를 유지하고, 상기 유효데이터영역에 상기 유효데이터를 저장하는 것을 제어하는 컨트롤 로직을 포함하는 플래시 메모리 장치.
  2. 제1 항에 있어서,
    상기 컨트롤 로직은,
    상기 무효데이터를 상기 패드영역에 대응하는 적어도 하나의 메모리 셀에 프로그램하여 상기 메모리 셀이 오프 셀(Off-cell)이 되도록 상태(state)를 변경해주는 것을 특징으로 하는 플래시 메모리 장치.
  3. 제1 항에 있어서,
    상기 컨트롤 로직은,
    제1 프로그램 동작 수행시, 상기 유효데이터영역에는 제1 데이터, 상기 패드영역에는 제2 데이터의 저장 동작을 제어하고,
    상기 유효데이터영역에 대응하는 상기 다수의 페이지들 중 제1 페이지의 적어도 하나의 메모리 셀에 상기 제1 데이터가 프로그램되고, 상기 패드영역에 대응하는 상기 제1 페이지의 적어도 하나의 메모리 셀에 상기 제2 데이터가 프로그램되도록 제어하는 것을 특징으로 하는 플래시 메모리 장치.
  4. 제3 항에 있어서,
    상기 컨트롤 로직은,
    제2 프로그램 동작 수행시, 상기 유효데이터영역에는 제3 데이터의 저장을 제어하고,
    상기 유효데이터영역에 대응하는 상기 다수의 페이지들 중 제2 페이지의 적어도 하나의 메모리 셀에 상기 제3 데이터가 프로그램되고, 상기 패드영역에 대응하는 상기 제2 페이지의 적어도 하나의 메모리 셀에 상기 제2 데이터가 프로그램되도록 제어하는 것을 특징으로 하는 플래시 메모리 장치.
  5. 제1 항에 있어서,
    상기 컨트롤 로직은,
    상기 메모리부의 소거 동작 수행시, 상기 유효데이터영역 및 상기 패드영역에 저장된 데이터를 클리어(Clear)하는 것을 특징으로 하는 플래시 메모리 장치.
  6. 다수의 메모리 블록들을 포함하는 메모리 셀 어레이를 포함하는 플래시 메모리 장치; 및
    상기 플래시 메모리 장치의 프로그램, 리드 및 소거 동작을 제어하고, 외부 호스트로부터의 하나 이상의 페이지에 대한 제1 데이터 프로그램 요청에 응답하여 제1 유효데이터 및 무효데이터를 포함하는 제1 프로그램 데이터를 생성하여, 상기 제1 프로그램 데이터 및 제1 데이터 프로그램 명령을 상기 플래시 메모리 장치로 전송하는 메모리 컨트롤러를 포함하는 플래시 메모리 시스템.
  7. 제6 항에 있어서,
    상기 메모리 컨트롤러는 상기 플래시 메모리 장치를 제어하기 위한 소프트웨어를 갖는 낸드 레이어(NAND Layer)를 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
  8. 제6 항에 있어서,
    상기 메모리 블록은, 적어도 하나의 페이지를 포함하며,
    상기 페이지는 상기 유효데이터가 프로그램되는 제1 영역과 상기 무효데이터가 프로그램되는 제2 영역을 포함하고,
    상기 제2 영역은,
    상기 외부 호스트로부터 수신된 어드레스에 의해 맵핑되지 않는 상기 페이지 영역인 것을 특징으로 하는 플래시 메모리 시스템.
  9. 제8 항에 있어서,
    상기 무효데이터는,
    상기 제2 영역이 포함하는 적어도 하나의 메모리 셀이 오프 셀(Off-cell)이 되도록 상태(state)를 변경해주는 데이터 값을 가지는 것을 특징으로 하는 플래시 메모리 시스템.
  10. 제6 항에 있어서,
    상기 플래시 메모리 장치는,
    유효데이터영역 및 패드영역을 포함하는 페이지 버퍼를 더 포함하는 것을 특징으로 하는 플래시 메모리 시스템.
KR1020140117023A 2014-09-03 2014-09-03 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법 KR20160028228A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140117023A KR20160028228A (ko) 2014-09-03 2014-09-03 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140117023A KR20160028228A (ko) 2014-09-03 2014-09-03 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법
US14/744,104 US20160062688A1 (en) 2014-09-03 2015-06-19 Flash memory device, flash memory system, and operating method

Publications (1)

Publication Number Publication Date
KR20160028228A true KR20160028228A (ko) 2016-03-11

Family

ID=55402537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140117023A KR20160028228A (ko) 2014-09-03 2014-09-03 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법

Country Status (2)

Country Link
US (1) US20160062688A1 (ko)
KR (1) KR20160028228A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200137313A (ko) * 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 저장 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
JP5674630B2 (ja) * 2011-12-02 2015-02-25 株式会社東芝 暗号化演算装置を搭載する不揮発性半導体記憶装置
KR102219293B1 (ko) * 2014-07-28 2021-02-23 삼성전자 주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
TWI545572B (zh) * 2014-12-12 2016-08-11 群聯電子股份有限公司 記憶胞程式化方法、記憶體控制電路單元與記憶體儲存裝置

Also Published As

Publication number Publication date
US20160062688A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
KR102430798B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20150058697A1 (en) Storage device, controller and memory controlling method
KR20180118329A (ko) 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법
US10902924B2 (en) Memory system varying pass voltage based on erase count of target memory block and operating method thereof
KR20170099618A (ko) 데이터 저장 장치
US20220137883A1 (en) Apparatus and method for processing data in memory system
US10621036B2 (en) Memory system and operation method thereof
CN107102817B (zh) 非易失性存储设备
US10877697B2 (en) Data storage device and operating method thereof
KR20160144564A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20190087072A (ko) 데이터 저장 장치, 그것의 동작 방법 및 비휘발성 메모리 장치
KR20190035280A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN114242144A (zh) 存储装置
US20180157415A1 (en) Apparatus and method for controlling memory device
US11366736B2 (en) Memory system using SRAM with flag information to identify unmapped addresses
KR20190040598A (ko) 컨트롤러 및 컨트롤러의 동작방법
US10930350B2 (en) Memory device for updating micro-code, memory system including the memory device, and method for operating the memory device
KR20160028228A (ko) 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작방법
US10545689B2 (en) Data storage device and operating method thereof
CN108461099B (zh) 半导体存储装置
KR20200008273A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20190042970A (ko) 메모리 시스템 및 그의 동작방법
KR20180101760A (ko) 저장 장치, 데이터 처리 시스템 및 이의 동작 방법
KR20180041932A (ko) 반도체 메모리 장치 및 그 동작 방법
US10726887B2 (en) Memory device and operating method of the memory device

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid