KR101784816B1 - 비휘발성 메모리 시스템 - Google Patents

비휘발성 메모리 시스템 Download PDF

Info

Publication number
KR101784816B1
KR101784816B1 KR1020110082339A KR20110082339A KR101784816B1 KR 101784816 B1 KR101784816 B1 KR 101784816B1 KR 1020110082339 A KR1020110082339 A KR 1020110082339A KR 20110082339 A KR20110082339 A KR 20110082339A KR 101784816 B1 KR101784816 B1 KR 101784816B1
Authority
KR
South Korea
Prior art keywords
data
memory
user data
plan
buffer
Prior art date
Application number
KR1020110082339A
Other languages
English (en)
Other versions
KR20130019999A (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 KR1020110082339A priority Critical patent/KR101784816B1/ko
Priority to US13/563,048 priority patent/US8984212B2/en
Publication of KR20130019999A publication Critical patent/KR20130019999A/ko
Application granted granted Critical
Publication of KR101784816B1 publication Critical patent/KR101784816B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메모리 시스템이 개시된다. 본 발명의 실시 예에 따른 메모리 시스템은, 제1 메모리, 제2 메모리를 포함하는 메모리 장치 및 상기 메모리 장치에 데이터를 저장하는 것을 관리하는 제어부를 포함하고, 상기 제어부는, 상기 제1 메모리에 N(N은 1보다 큰 자연수)번째 사용자 데이터를 저장하면서 상기 제2 메모리에 N-1번째 메타 데이터를 저장하거나 또는 상기 제1 메모리에 N-1번째 상기 메타 데이터를 저장하면서 상기 제2 메모리에 상기 N번째 사용자 데이터를 저장하고, 상기 N번째 사용자 데이터 저장 시간과 상기 N-1번째 메타 데이터 저장 시간이 일부 또는 전부 중첩되도록 제어한다.

Description

비휘발성 메모리 시스템{A non-volitile memory system}
본 발명은 비휘발성 메모리 시스템에 관한 것으로서, 보다 상세하게는 사용자 데이터와 메타 데이터를 물리적으로 분리된 저장영역에 저장함으로써, 사용자 데이터와 메타 데이터를 기입하는 시간을 중첩시켜 데이터 저장 시간을 단축할 수 있는 비휘발성 메모리 시스템에 대한 것이다.
비휘발성 반도체 장치로서 휴대용 전자 기기 등에 주로 사용되는 플래시 메모리가 있다. 플래시 메모리는 일반적으로 페이지 단위로 읽기 또는 기입이 이루어지며, 갱신을 위해 다시 기입하기 위해서는 먼저 다수의 페이지로 구성된 블록 단위로 소거 동작을 수행해야 하므로 덮어쓰기가 불가능하다. 덮어쓰기가 불가능한 메모리 장치에서는 호스트가 엑세스를 요청하는 논리 주소를 실제 메모리의의 물리 주소에 맵핑한다. 이때, 논리 주소와 물리 주소의 맵핑 정보를 포함한 데이터를 메타 데이터라고 한다. 메타 데이터는 그 특성상 메모리에 사용자 데이터의 기입이 완료된 후 저장되어야 한다. 따라서 사용자가 기입을 요구한 데이터 이외에 최소 한 페이지 이상의 메타 데이터 기입에 따른 소요 시간이 발생한다. 이것은, 호스트의 기입 요청에 대한 응답 속도를 지연시켜 메모리 시스템의 성능을 감소시키는 요인이 된다.
본 발명은 메타 데이터 기입 시간을 사용자 데이터 기입 시간과 일부 또는 전부 중첩하도록 제어하는 비휘발성 메모리 시스템을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시 예에 따른 메모리 시스템은 제1 메모리 및 제2 메모리를 포함하는 메모리 장치 및 상기 메모리 장치에 데이터를 저장하는 것을 관리하는 제어부를 포함하고, 상기 제어부는, 상기 제1 메모리에 N(N은 1보다 큰 자연수)번째 사용자 데이터를 저장할 때 상기 제2 메모리에 N-1번째 메타 데이터를 저장하거나 또는 상기 제1 메모리에 N-1번째 상기 메타 데이터를 저장할 때 상기 제2 메모리에 상기 N번째 사용자 데이터를 저장하면서, 상기 N번째 사용자 데이터 저장 시간과 상기 N-1번째 메타 데이터 저장 시간이 일부 또는 전부 중첩되도록 제어한다.
바람직하게는, 상기 N-1번째 메타 데이터는, N-1번째 사용자 데이터의 논리 주소와 물리 주소에 대한 맵핑 정보를 포함할 수 있다.
바람직하게는, 상기 제어부는, 상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서 및 상기 N번째 사용자 데이터 및 상기 N-1번째 메타 데이터를 임시로 저장하는 데이터 버퍼를 포함하고, 상기 메모리 장치는, 상기 제1 메모리 및 상기 제2 메모리에 데이터를 전송하기 위한 데이터 버스를 더 포함하고, 상기 프로세서는, 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 메모리에 상기 N번째 사용자 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 메모리에 상기 N-1번째 메타 데이터를 전송하거나 또는 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 메모리에 상기 N-1번째 메타 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 메모리에 상기 N번째 사용자 데이터를 전송하도록 제어할 수 있다.
바람직하게는, 상기 프로세서는 상기 제1 메모리 또는 상기 제2 메모리에 N-1번째 사용자 데이터를 저장한 후, 상기 N-1번째 사용자 데이터에 대한 정보를 포함하는, 상기 N-1번째 메타 데이터를 상기 데이터 버퍼에 임시로 저장하도록 제어할 수 있다.
바람직하게는, 상기 제어부는, 상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서 및 상기 N번째 사용자 데이터 및 상기 N-1번째 메타 데이터를 임시로 저장하는 제1 데이터 버퍼 및 제2 데이터 버퍼를 포함하고, 상기 메모리 장치는, 상기 제1 메모리에 데이터를 전송하기 위한 제1 데이터 버스 및 상기 제2 메모리에 데이터를 전송하기 위한 제2 데이터 버스를 더 포함할 수 있다.
바람직하게는, 상기 프로세서는, 상기 제1 데이터 버퍼 및 상기 제2 데이터 버퍼에 임시로 저장되어 있는 상기 N번째 사용자 데이터와 상기 N-1번째 메타 데이터를 상기 제1 데이터 버스 및 상기 제2 데이터 버스 각각을 통하여 동시에 상기 제1 메모리 및 상기 제2 메모리에 전송할 수 있다.
바람직하게는, 상기 프로세서는, 상기 제1 메모리 또는 상기 제2 메모리에 N번째 사용자 데이터를 저장한 후, 상기 N번째 사용자 데이터에 대한 정보를 포함하는, 상기 N번째 메타 데이터를 상기 제1 데이터 버퍼 또는 상기 제2 데이터 버퍼에 임시로 저장하도록 제어할 수 있다.
바람직하게는, 상기 제어부는, 상기 제1 메모리 및 상기 제2 메모리 중 상기 N-1번째 사용자 데이터가 저장된 메모리에 상기 N-1번째 메타 데이터를 저장할 수 있다.
바람직하게는, 상기 메모리는 플래시 메모리일 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또다른 실시예에 따른 메모리 시스템은 동시에 기입이 진행될 수 있는 제1 플랜 및 제2 플랜을 포함하는 비휘발성 메모리를 적어도 하나 이상 포함하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치에 데이터를 저장하는 것을 관리하는 제어부를 포함하고, 상기 제어부는, 상기 제1 플랜에 사용자 데이터를 저장할 때 상기 제2 플랜에 상기 사용자 데이터보다 앞서 메모리에 저장된 사용자 데이터에 대한 주소 정보를 포함하고 있는 메타 데이터를 저장하거나 또는 상기 제1 플랜에 상기 메타 데이터를 저장할 때 상기 제2 플랜에 상기 사용자 데이터를 저장하면서, 상기 사용자 데이터 저장 시간과 상기 메타 데이터 저장 시간이 일부 또는 전부 중첩되도록 제어할 수 있다.
바람직하게는, 상기 제어부는, 상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서 및 상기 사용자 데이터 및 상기 메타 데이터를 임시로 저장하는 데이터 버퍼를 포함하고, 상기 메모리 장치는, 상기 메모리에 데이터를 전송하기 위한 데이터 버스를 더 포함하고, 상기 프로세서는, 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 플랜에 상기 사용자 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 플랜에 상기 메타 데이터를 전송하거나 또는 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 플랜에 상기 메타 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 플랜에 상기 사용자 데이터를 전송하도록 제어할 수 있다.
바람직하게는, 상기 메모리는 플래시 메모리이고, 상기 제1 플랜 및 상기 제2 플랜은 워드 라인을 공유할 수 있다.
본 발명에 의하면 물리적으로 구분된 저장 영역에 각각 사용자 데이터와 메타 데이터를 저장하면서, 사용자 데이터와 메타 데이터를 기입하는 시간의 일부 또는 전부를 중첩되게 하여 데이터 저장시간을 감소 시킴으로써 저장 장치의 성능을 향상 시킬 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 데이터 저장 방법을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 블록도이다.
도 3은 플래시 메모리의 구조를 보여주는 도면이다.
도 4는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이다.
도 5는 메모리 시스템에서 논리 주소를 물리 주소로 변환하는 방법을 설명하기 위한 도면이다.
도 6은 메모리 시스템에서 생성되는 메타 데이터의 구조의 일 예를 보여주는 도면이다.
도 7은 본 발명의 실시예에 따른 메모리 시스템의 데이터 저장 방법을 설명하기 위한 도면이다.
도 8a는 도 7의 메모리 시스템의 데이터 저장 방법의 일 예를 나타낸 흐름도이다.
도 8b는 도 7의 메모리 시스템의 데이터 저장 방법의 다른 예를 나타낸 흐름도이다.
도 9는 도 7의 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸 도면이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템의 데이터 저장 방법을 설명하기 위한 도면이다.
도 11는 도 10의 메모리 시스템의 데이터 저장 방법의 일 예를을 나타낸 흐름도이다.
도 12는 도 10의 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸 도면이다.
도 13은 본 발명의 또 다른 실시 예에 따른 메모리 시스템의 데이터 저장 방법을 설명하기 위한 도면이다.
도 14a는 도 13의 메모리 시스템의 데이터 저장 방법의 일 예를 나타낸 흐름도이다.
도 14b는 도 13의 메모리 시스템의 데이터 저장 방법의 다른 예를 나타낸 흐름도이다.
도 15는 도 13의 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸 도면이다.
도 16은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 나타내는 도면이다.
도 17은 본 발명의 실시 예에 따른 메모리 카드를 나타내는 도면이다.
도 18은 본 발명의 실시 예에 따른 SSD를 나타내는 도면이다.
도 19는 본 발명의 실시 예에 따른 저장 장치를 포함하는 서버 시스템과, 서버 시스템을 포함하는 네트워크 시스템을 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 “포함한다(comprise)” 및/또는 “포함하는(comprising)”은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 “및/또는”은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열의 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 데이터 저장 방법을 설명하기 위한 블록도이다.
도 1을 참조하면, 제1 저장 영역(1)과 제2 저장 영역(2)에 사용자 데이터와 메타 데이터를 저장한다. 제1 저장 영역(1)과 제2 저장 영역(2)은 각각 메모리 칩일수 있고 또는 하나의 메모리 칩에 포함된 독립된 저장 영역일 수 있다. 다만 이에 한정되는 것은 아니다. 복수의 저장 영역(1, 2)에 사용자 데이터와 메타 데이터를 저장할 수 있으므로, 사용자 데이터와 메타 데이터는 각각 제1 저장 영역(1)과 제2 저장 영역(2)에 저장되면서, 데이터가 저장되는 시간이 중첩될 수 있다. 예를들어, N-1번째 메타 데이터는 제1 저장 영역(1)에 저장되고, N번째 사용자 데이터는 제2 저장 영역(2)에 저장되면서, N-1번째 메타 데이터가 저장되는 시간과 N번째 사용자 데이터가 저장되는 시간이 전부 또는 일부 중첩될 수 있다.
도 1의 데이터 저장 방법을 도 2내지 도 6을 참조하여 구체적으로 후술하기로 한다.
도 2는 본 발명의 실시예에 따른 메모리 시스템의 블록도이다.
도 2를 참조하면, 메모리 시스템(100)은 제어부(110) 및 메모리 장치(120)를 포함한다. 메모리 시스템(100)은 솔리드 스테이트 드라이브(SSD; solid state drive)일 수 있다. 다만, 메모리 시스템(100)이 솔리드 스테이트 드라이브에 한정되는 것은 아니다.
제어부(110)는 호스트로부터 수신한 명령을 수행하며, 메모리 장치(120)에 데이터를 기입하거나 메모리 장치(120)로부터 데이터를 독출하는 작업을 제어한다.
제어부(110)는 프로세서(111), 호스트 인터페이스(112), 메모리 컨트롤러(113) 및 데이터 버퍼(114)를 포함한다.
프로세서(111)는 제어부(110)의 전반적인 동작을 제어하도록 구성된다. 호스트 인터페이스(112)는 메모리 시스템(100)과 접속되는 호스트의 데이터 교환 프로토콜을 구비하고 메모리 시스템(100)과 호스트를 상호 연결한다. 호스트 인터페이스(112)는 SATA(Serial Advanced Technology Attachment) 또는 SAS(Serial Attached Small Computer System) 인터페이스일 수 있다. 그러나 이는 예시일뿐 이에 제한되는 것은 아니다.
메모리 컨트롤러(113)는 메모리 장치(110)와 인터페이싱한다. 메모리 컨트롤러(113)는 메모리 장치(110)와 커맨드, 어드레스, 데이터 등을 주고 받는데 사용된다. 즉, 메모리 컨트롤러(123)는 독출 동작 시에는 독출 커맨드 및 어드레스를 제공하고, 기입 동작 시에는 기입 커맨드, 어드레스, 그리고 데이터를 제공한다.
데이터 버퍼(114)는 호스트로부터 전송된 데이터 및 제어부에서 생성된 데이터를 메모리 장치(120)에 저장하기 위하여 임시로 저장하거나 호스트로 전송될 데이터를 임시로 저장하는 역할을 수행한다. 또한, 데이터 버퍼(114)는 플래시 변환 레이어(Flash Translation Layer; FTL)와 같은 펌웨어를 구동하는 데 사용될 수도 있다. 데이터 버퍼(114)는 DRAM, SRAM등으로 구현될 수 있다.
비록 도면에는 도시되지 않았지만, 비휘발성 메모리 시스템(100)은 호스트와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM, 메모리 장치(120)에 저장될 데이터를 인코딩하고 메모리 장치(120)로부터 독출된 데이터를 디코딩하기 위한 ECC엔진등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
메모리 장치(120)는 비휘발성 메모리인 제1 메모리(121) 및 제2 메모리(122)를 포함한다. 각각의 메모리(121, 122)는 메모리 칩일 수 있다. 메모리 장치(110)는 2개의 메모리(111, 112)를 포함하는 것으로 도시되어 있으나, 이는 예시일 뿐, 메모리 장치(110)에 포함되는 메모리의 개수를 제한하는 것은 아니다.
메모리 장치(120)의 복수의 메모리(121, 122) 각각에는 사용자 데이터와 메타 데이터가 기입될 수 있다. 사용자 데이터는 호스트로부터 메모리 장치에 저장이 요청된 데이터로 메모리 장치에 기입되어 저장된 후, 호스트의 요청에 따라 메모리 장치로부터 독출 되어 호스트에게 제공될 수 있다. 메타 데이터란 사용자 데이터 또는 메모리 장치(120)를 관리하기 위하여 메모리 시스템(100)에서 생성된 데이터이다. 메타 데이터에 대한 자세한 사항은 도 2 내지 도 4를 참조하여 후술하기로 한다.
메모리 장치(120)의 제1 메모리(121)와 제2 메모리(122)에 기입되는 사용자 데이터와 메타 데이터는 저장시간이 일부 또는 전부 중첩될 수 있다. 여기에서 데이터 저장 시간이란 데이터를 메모리에 전송하는 시간 및 셀 어레이(도 2 참조)에 기입하는 시간을 포함한 시간으로 정의하기로 한다.
도 1에서 제1 메모리(121) 및 제2 메모리(122)의 같은 행에 쓰여진 데이터(WN, WN-1, WN-2,…)는 저장 시간이 일부 또는 전부 중첩되는 데이터이다. 예를 들어, N번째 사용자 데이터가 제1 메모리(111)에 저장되는 시간과 N-1번째 메타 데이터가 제2 메모리(112)에 저장되는 시간은 일부 또는 전부 중첩될 수 있다. 또한, N-1번째 사용자 데이터가 제2 메모리(112)에 저장되는 시간과 N-2번째 메타 데이터가 제1 메모리(111)에 저장되는 시간은 일부 또는 전부 중첩될 수 있다.
복수의 메모리(111, 112) 각각은 바람직하게는 비휘발성 메모리 중에서도 낸드 플래시 메모리로 구성된다. 그러나, 이에 한정되는 것이 아니라 다른 종류의 비휘발성 메모리도 적용될 수 있다.
낸드 플래시 메모리인 복수의 메모리(111, 112) 각각은 도 3에 도시된 구조의 메모리일 수 있다. 도 3을 참조하면, 낸드 플래시 메모리(111)는 셀 어레이(10), 페이지 버퍼(20), 제어 회로(30) 및 로우 디코더(40)를 포함한다.
셀 어레이(10)는 트랜지스터에 일정 전압을 인가하는 방식으로 데이터가 기입되는 영역이다. 셀 어레이(10)는 워드라인들(WL0~WLm-1) 및 비트라인들(BL0~BLn-1)이 교차한 곳에 형성된 메모리 셀들을 포함한다. 여기에서, m 및 n은 자연수이다. 도 3에서는 하나의 메모리 블록이 도시되어 있으나 셀 어레이(10)는 복수의 메모리 블록들을 포함할 수 있다. 각각의 메모리 블록들은 각 워드 라인들(WL0~WLm-1)에 대응되는 복수의 페이지들을 포함하고 있다. 그리고 페이지들 각각은 해당 워드라인에 연결된 복수의 메모리 셀들을 포함한다.
메모리 셀 어레이(110)는 셀 스트링(cell string) 구조를 갖는다. 각각의 셀 스트링은 스트링 선택 라인(String Selection Line; SSL)에 연결되는 스트링 선택 트랜지스터(SST), 복수의 워드라인들(WLO ~ WLm-1)에 각각 연결된 복수의 메모리 셀들(MC0 ~ MCm-1), 그리고 접지 라인(Ground Section Line; GSL)에 연결된 접지 선택 트랜지스터(GST)를 포함한다. 여기에서, 스트링 선택 트랜지스터(SST)는 비트라인과 스트링 채널 사이에 연결되고, 접지 선택 트랜지스터(GST)는 스트링 채널과 공통 소스 라인(Common Source Line; CSL) 사이에 연결된다.
페이지 버퍼(20)는 복수의 비트라인들(BL0~BLn-1)을 통해 셀 어레이(10)에 연결된다. 페이지 버퍼(20)는 선택된 워드라인에 연결된 메모리 셀들에 기입할 데이터를 임시로 저장하거나 또는 선택된 워드라인에 연결된 메모리 셀들로부터 독출된 데이터를 임시로 저장한다
제어 회로(30)는 기입 또는 독출 동작 그리고 소거 동작에 필요한 각종 전압을을 생성하고 제어 신호들(CTRL)을 수신하여 메모리(111)의 제반 동작을 제어한다.
로우 디코더(40)는 선택 라인들(SSL, GSL) 및 복수의 워드라인들(WL0~WLm-1)을 통해 셀 어레이(10)에 연결된다. 로우 디코더(20)는 기입 동작 또는 독출 동작 시 어드레스를 입력받고, 입력된 어드레스에 따라 어느 하나의 워드라인을 선택한다. 여기에서 선택된 워드라인에는 기입 동작이 수행되거나 또는 독출 동작이 수행될 메모리 셀들이 연결되어 있다.
도 3의 낸드 플래시 메모리(111)에서 데이터의 기입 및 독출은 페이지 단위로 수행되고, 전기적 소거는 블록 단위로 이루어진다. 또한, 기입 전에 블록의 전기적 소거 작업이 요구된다. 따라서, 덮어쓰기가 불가능하다.
덮어쓰기가 불가능한 장치에서는 사용자 데이터를 사용자가 원하는 물리적 영역에 기입할 수 없다. 따라서 사용자로부터 기입 또는 독출을 위하여 엑세스를 요청받는 경우, 사용자로부터 기입 또는 독출이 요청된 영역을 논리 어드레스로, 실제로 데이터가 저장되어있는 또는 데이터가 저장될 물리적 영역을 물리 어드레스로 분류하여 사용자 데이터에 대한 논리 어드레스를 물리 어드레스에 맵핑시킨다.
이하에서, 도 34내지 도 5를 참조하여 메모리 시스템에서 맵핑테이블을 이용하여 어드레스를 변환하는 과정을 설명하기로 한다.
도 4는 메모리 시스템의 소프트웨어 구조를 보여주는 블록도이고, 도 5는 어드레스 맵핑 테이블을 이용하여 논리 어드레스를 물리 어드레스로 변환하는 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 메모리 시스템은 애플리케이션(410), 파일 시스템(420), 플래시 변환 계층(430), 그리고 플래시 메모리(440)순으로 소프트웨어 계층 구조를 갖는다.
애플리케이션(410)은 사용자의 입력에 응답하여 사용자 데이터를 가공하는 소프트웨어를 의미한다. 예를 들어, 애플리케이션(410)은 워드 프로세서와 같은 문서 처리 소프트웨어, 스프레드 시트와 같은 계산 소프트웨어, 웹 브라우저와 같은 문서 뷰어가 될 수 있다. 애플리케이션(410)은 사용자의 입력에 응답하여 사용자 데이터를 처리하고, 처리된 사용자 데이터를 메모리에 저장하기 위한 명령을 파일 시스템(420)에 전달한다. 애플리케이션(410)은 메모리 시스템(100) 외부의 호스트에 위치 할 수 있다.
파일 시스템(420)은 저장 장치에 사용자 데이터를 저장하기 위해 사용되는 구조 또는 소프트웨어를 의미한다. 파일 시스템(420)은 애플리케이션(410)으로부터의 명령에 응답하여, 사용자 데이터가 저장될 영역을 할당한다. 파일 시스템(420)의 일종으로 FAT(File Allocation Table) 파일 시스템, NTFS 등이 있다.
플래시 변환 계층(430)은 애플리케이션(410) 또는 파일 시스템(420)으로부터 사용자 데이터에 대한 논리 어드레스(LA; Logical Address)를 입력받고, 이를 물리 어드레스(PA; Physical Address)로 변환한다. 사용자 데이터의 논리 어드레스에 대한 물리 어드레스의 맵핑 관계는 메타 데이터로 저장될 수 있다. 플래시 변환 계층(430)은 메타 데이터로부터 논리 어드레스에 대한 물리 어드레스의 맵핑 테이블을 얻을 수 있다. 물리 어드레스(PA)는 플래시 메모리(430)로 제공된다. 파일 시스템(420) 및 플래시 변환 계층(430)은 도 2의 프로세서(111)에 의하여 운용된다.
도 5를 참조하면, 파일 시스템(420)은 엑세스 될 사용자 데이터에 대응하는 논리 어드레스(LA)를 플래시 변환 계층(430)에 전달한다. 플래시 변환 계층(430)은 파일 시스템(320)으로부터 논리 어드레스(LA)를 입력받고, 맵핑 테이블을 사용하여 물리 어드레스(PA)로 변환한다. 그리고 물리 어드레스(PA)를 플래시 메모리(340)에 전달한다. 예시적으로, 파일 시스템(420)은 논리 페이지 번호(LP1~LP3)를 플래시 변환 계층(430)에 전달하고, 플래시 변환 계층(430)은 맵핑 테이블을 참조하여 물리 페이지 번호(PP2~PP4)를 플래시 메모리(440)에 전달한다. 플래시 메모리(440)는 물리 페이지 번호들(PP2~PP4)을 어드레스로 갖는 플래시 메모리(440)내의 물리적 영역에서 사용자 데이터를 출력하거나 또는 호스트로부터 전송된 사용자 데이터를 저장한다.
도 5에서는 페이지 맵핑 방법이 예로서 설명되었지만 이에 한정되는 것은 아니다. 블록 맵핑, 혼합 맵핑 등의 다양한 맵핑 방법들이 적용될 수 있다.
도 6은 메타 데이터들의 구조의 일예를 보여주는 도면이다.
메타 데이터는 사용자 데이터와 메모리 장치(120, 도 2 참조)의 관리를 위한 관리 정보이다. 프로세서(111, 도2 참조)는 메타 데이터를 참조하여 메모리 장치(120)를 효율적으로 관리할 수 있다.
도 6을 참조하면, 메타 데이터들은 맵핑정보, 기입 횟수 및 물리 페이지 정보를 포함한다. 그러나 이는 예시일뿐, 이에 한정되는 것이다.
맵핑 정보는 논리 어드레스와 물리 어드레스 사이의 대응 관계를 정의한다. 예시적으로 논리 페이지 1(LP1)을 물리 페이지 2(PP2)에, 논리 페이지 2(LP2)를 물리 페이지 3(PP3)에, 논리 페이지 3(LP3)을 물리 페이지 4(PP4)에 대응시킨다. 프로세서(111)는 플래시 변환 계층(430)을 운용하여 맵핑 정보를 참조하여 논리 어드레스를 물리 어드레스로 변환한다.
기입 횟수는 메모리 내의 페이지가 몇번 기입 되었는지를 나타낸다. 플래쉬 메모리(440)는 기입 횟수가 제한되어 있다 따라서, 기입 횟수를 참조하여 특정 영역에만 기입이 집중되지 않도록 관리한다.
물리 페이지 정보는 각각의 페이지에 저장된 데이터의 유효성을 나타낸다. 프로세서(111)는 물리 페이지 정보를 참조하여 페이지가 유효 페이지인지 또는 무효 페이지인지 여부를 판단할 수 있다. 도 5을 참조하면, 예시적으로 물리 페이지 정보는 물리 페이지 1(PP1)이 유효 페이지(valid page)이고, 물리 페이지 2(PP2)가 무효 페이지(invalid page)임을 나타낸다.
메타 데이터가 소실되었을 경우 플래시 메모리(440)에 저장된 사용자 데이터가 어디에 위치하고 있는지를 파악하기 위하여 사용자 데이터가 저장된 영역을 모두 스캔해야 하는 상황이 발생한다. 또한, 메모리 장치(120)의 관리가 어려워진다. 따라서 파워 오프시 데이터가 손실되지 않도록 메타 데이터를 비휘발성 메모리에 저장하여야 한다. 그리고, 메타 데이터는 사용자 데이터가 저장된 위치, 페이지의 기입 횟수등을 반영하여야 하므로 사용자 데이터가 메모리 장치(120)에 기입되고 난 이후 메모리 장치(120)에 기입되어야 한다. 하지만 이로인해 사용자 데이터가 저장되는 시간외에 메타 데이터가 저장되는 시간이 추가되어야 한다. 덮어쓰기가 불가능한 비휘발성 메모리를 포함한 메모리 시스템에서 메타 데이터 저장시간은 메모리 시스템의 성능을 감소시키는 요인중에 한가지가 된다. 이때, 도 1의 데이터 저장 방법에 따라 메모리에 저장이 완료된 사용자 데이터에 대한 메타 데이터의 저장 시간을 다음으로 저장될 사용자 데이터의 저장 시간과 중첩시키면 전체 데이터를 저장하기 위해 소모하는 시간을 감소시킬 수 있다. 따라서 메모리 시스템의 성능을 향상시킬 수 있다.
다시 도 2 내지 도 5를 참조하면, 플래시 변환 계층(430)은 호스트로부터 기입이 요청된 사용자 데이터에 대하여 파일 시스템(420)으로부터 논리 주소를 전송받고 사용자 데이터가 기입될 물리 영역, 즉 물리 주소를 할당한 후, 이를 맵핑 테이블로 저장한다. 상기 맵핑 테이블은 메타 데이터에 포함될 수 있다. 사용자 데이터에 대한 메타 데이터를 데이터 버퍼(114)에 임시로 저장한 후, 사용자 데이터에 대한 기입이 수행될 때마다 메타 데이터도 비휘발성 저장 장치인 메모리 장치(120)에 저장한다.
도 2에서, 메타 데이터 저장 시간을 최소화 하기 위하여 물리적으로 구분된 제1 메모리(121)와 제2 메모리(122)에 각각 사용자 데이터와 메타 데이터를 저장하면서, 저장하는 시간을 중첩되게 한다. 예를들어, N번째 사용자 데이터를 제1 메모리(121)에 저장하면서, 제2 메모리(122)에 N-1번째 메타 데이터를 저장한다. N번째 사용자 데이터에 대한 메타 데이터는 제어부(110)의 데이터 버퍼(114)에 임시 저장되어, 다음 사용자 데이터가 제1 메모리(121)또는 제2 메모리(122)에 저장될 때, 제2 메모리(122)또는 제1 메모리(121)에 저장될 것이다.
이때, 메타 데이터는 대응되는 사용자 데이터와 같은 메모리에 저장 되는 것이 바람직할 수 있다. 사용자 데이터와 상기 사용자 데이터의 주소 정보를 포함하고 있는 메타 데이터가 같은 메모리에 저장되어 있으면, 사용자 데이터에 엑세스 하기 위하여 하나의 메모리만 엑세스 하면 되므로 데이터 처리 속도가 빨라 질 수 있다. 따라서 복수의 메모리(121,122)에 저장된 사용자 데이터 각각에 대응하는 메타 데이터는 각 사용자 데이터가 저장된 메모리와 동일한 메모리에 저장하는 것이 효율적이다. 다만, 이는 실시 예일 뿐 본원발명이 이에 제한되는 것은 아니다.
다음으로, 도 7 내지 도 9를 참조하여 본 발명의 실시예에 따른 메모리 시스템에서 단일 전송 경로를 통하여 데이터를 저장하는 경우를 설명하기로 한다.
도 7은 본 발명의 실시예에 따른 메모리 시스템의 데이터 전송방법을 설명하기 위한 도면이다. 설명의 편의를 위하여 제어부(110)와 메모리들(121,122)을 간략히 도시하였다. 제어부(110)와 메모리들(121,122)의 구조는 도 2와 도 3을 참조하여 상기에서 설명한바 생략하기로 한다.
도 7을 참조하면, 메모리 시스템(100)은 제어부(110)와 메모리 장치(120) 사이에 데이터를 전송하기 위한 경로인, 데이터 버스(130)를 포함한다. 제1 메모리(121) 및 제2 메모리(122)는 데이터 버스(130)를 통하여 데이터 버퍼(114)로부터 사용자 데이터 또는 메타 데이터를 전송받는다. 제1 메모리(121)와 제2 메모리(122)가 데이터 버스(130)를 공유하므로 동시에 데이터를 전송 받을 수는 없다. 따라서, 순차적으로 하나의 메모리에 데이터를 전송한 후 다른 메모리에 데이터를 전송할 수 있다. 예를들어, 제1 메모리(121)에 N번째 사용자 데이터를 전송한 후, 제2 메모리(122)에 N-1번째 메타 데이터를 전송할 수 있다. N-1번째 메타 데이터는 N-1번째 사용자 데이터의 주소 정보를 포함하고 있는 메타 데이터이다. 제1 메모리(121)에 전송된 N번째 사용자 데이터는 페이지 버퍼(20_1)에 임시로 저장된다. 제2 메모리(122)에 N-1번째 메타 데이터를 전송할 때, 제1 메모리(121)에서는 이미 전송된 N번째 사용자 데이터를 셀 어레이(10_1)에 기입한다. 제2 메모리(122)에 N-1번째 메타 데이터 전송이 완료되면, 제2 메모리(122)의 셀 어레이(10_2)에 전송된 N-1번째 메타 데이터를 기입한다. 제2 메모리(122)에 N-1번째 메타 데이터를 전송하고, 기입하는 시간은 제1 메모리(121)에 N번째 사용자 데이터를 기입하는 시간과 중첩될 것이다.
도 8a 및 도 8b는 도 7의 메모리 시스템의 데이터 저장 방법의 실시예를 나타낸 흐름도이다.
도 7의 제어부(110)에 포함된 데이터 버퍼(114)에는 호스트로부터 전송된 N번째 사용자 데이터와 이미 메모리 장치(120)에 기입된 N-1번째 사용자 데이터에 대해 생성된 N-1번째 메타 데이터가 임시로 저장되어 있다.
도 8a는 N번째 사용자 데이터의 전송이 완료된 후 기입될 때, N-1번째 메타 데이터가 전송되어 기입되는 경우의 데이터 저장 방법을 나타낸다.
도 8a를 참조하면, S110 단계에서, 제1 메모리(121)에 N번째 사용자 데이터를 전송한다. 제어부(110)는 N번째 사용자 데이터를 데이터 버스(130)를 통하여 제1 메모리(121)에 전송한다. 이때, 전송된 N번째 사용자 데이터는 제1 메모리(121)의 페이지 버퍼(20_1)에 임시로 저장된다.
S120 단계에서, 제1 메모리(121)의 셀 어레이(10_1)에 페이지 버퍼(10_1)에 임시 저장되어 있는 N번째 사용자 데이터를 기입하는 것과 동시에, 제2 메모리(112)에 N-1번째 메타 데이터를 전송한다. 제2 메모리에 전송된 N-1번째 메타 데이터는 제2 메모리의 페이지 버퍼(20_2)에 임시로 저장된다.
S130 단계에서, 제2 메모리(120)의 셀 어레이(10_2)에 N-1번째 메타 데이터가 기입된다.
S140, S150단계에서, 기입이 완료된 제1 메모리(121)와 제2 메모리(121)는 각각 기입 완료 신호를 발생한다. 제1 메모리(121)는 제2 메모리(122)보다 먼저 데이터를 기입하기 시작하였으므로 제2 메모리(122)보다 먼저 데이터의 기입이 완료되어 기입 완료 신호를 발생한다. 제어부(110)는 제1 메모리(121) 및 제2메모리(122)로부터 발생한 기입 완료 신호에 대응하여 다음으로 저장될 데이터인 N+1번째 사용자 데이터 및 N번째 메타 데이터를 저장하기 위하여 메모리 장치(120, 도1 참조)를 제어한다.
도 8b는 N-1번째 메타 데이터의 전송이 완료된 후 기입될 때, N번째 사용자 데이터가 전송되어 기입되는 경우의 데이터 저장 방법을 나타낸다.
도 8b를 참조하면, S110_a 단계에서, 제1 메모리(121)에 N-1번째 메타 데이터를 전송한다. 이때, 전송된 N-1번째 메타 데이터는 제1 메모리(121)의 페이지 버퍼(20_1)에 임시로 저장된다.
S120_a 단계에서, 제1 메모리(121)의 셀 어레이(10_1)에 페이지 버퍼(10_1)에 임시 저장되어 있던 N-1번째 메타 데이터를 기입하는 것과 동시에, 제2 메모리(112)에 N번째 사용자 데이터를 전송한다. 제2 메모리에 전송된 N번째 사용자 데이터는 제2 메모리의 페이지 버퍼(20_2)에 임시로 저장된다.
S130_a 단계에서, 제2 메모리(120)의 셀 어레이(10_2)에 N번째 사용자 데이터가 기입된다.
S140_a, S150_a단계에서, 기입이 완료된 제1 메모리(121)와 제2 메모리(121)는 각각 기입 완료 신호를 발생한다. 제1 메모리(121)는 제2 메모리(122)보다 먼저 데이터를 기입하기 시작하였으므로 제2 메모리(122)보다 먼저 데이터의 기입이 완료되어 기입 완료 신호를 발생한다. 제어부(110)는 제1 메모리(121) 및 제2메모리(122)로부터 발생한 기입 완료 신호에 대응하여 다음으로 저장될 데이터인 N번째 메타 데이터 및 N+1번째 사용자 데이터를 저장하기 위하여 메모리 장치(120)를 제어한다.
도 9는 도 7 의 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸다. 도 9를 참조하면, 제1 메모리(121)에 N번째 사용자 데이터가 전송된 후, N번째 사용자 데이터를 기입함과 동시에 제2 메모리(122)에 N-1번째 메타 데이터가 전송된다. 플래시 메모리는 페이지 단위로 기입 동작이 수행되므로 제 1 메모리(121) 및 제2 (122)메모리에 데이터가 기입되는 시간이 동일하다고 가정하면, 제1 메모리(121)의 N번째 사용자 데이터의 기입이 완료된 후, 메타 데이터 전송시간만큼의 구간인 t1의 시간이 더 흐른후 제2 메모리(122)에 N-1번째 메타 데이터 기입이 완료될 것이다. 따라서, 호스트는 N-1번째 메타 데이터가 제2 메모리에 저장되는 시간 중 제2 메모리에 N번째 사용자 데이터가 기입되는 시간과 중첩되는 시간을 제외한 나머지 시간인 t1을 n-1번째 메타 데이터를 저장하기 위한 시간으로 인식할 것이다.
다음으로, 도 10 내지 도 12를 참조하여 본 발명의 다른 실시예에 따른 메모리 시스템에서 복수의 전송 경로를 통하여 데이터를 저장하는 경우를 설명하기로 한다.
도 10은 본 발명의 다른 실시예에 따른 메모리 시스템에서 데이터 저장 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 메모리 시스템(100_a)은 제어부(110_a)와 메모리 장치(120)를 포함하며, 제어부(110_a)와 메모리 장치(120) 사이에 데이터를 전송하기 위한 경로인, 제1 데이터 버스(130_a) 및 제2 데이터 버스(130_b)를 포함한다. 제어부(110_a)는 두개의 데이터 버스를 포함하는 것으로 도시되어 있지만 이에 제한되는 것은 아니다.
제어부(110_a)는 제1 데이터 버퍼(114_a) 및 제2 데이터 버퍼(114_b)를 포함한다. 제1 데이터 버퍼(114_a) 및 제2 데이터 버퍼(114_b)는 각각 제1 버스(130_a) 와 제2 데이터 버스(130_b)를 통하여 제1 메모리(121)와 제2 메모리(122)에 데이터를 전송할 수 있다. 즉, 제1 메모리(121)와 제2 메모리(122)는 데이터 버스를 공유하지 않고 각각 다른 데이터 버스를 통하여 동시에 데이터를 전송받는다. 예를들어, 제어부(110_a)의 제1 데이터 버퍼(114_a) 와 제2 데이터 버퍼(114_b) 에 임시로 저장되어 있는 N번째 사용자 데이터와 N-1번째 메타 데이터를 각각 제1 메모리(121)와 제2 메모리(122)에 저장하는 경우, N번째 사용자 데이터는 제1 데이터 버스(130_a)를 통해, N-1번째 메타 데이터는 제2 데이터 버스(130_b)를 통해 동시에 각각 제1 메모리(121)와 제2 메모리(122)로 전송되고, 전송이 완료된 후 각각의 셀 어레이들(10_1,10_2)에 기입될 것이다.
도 10에서 제1 데이터 버스(130_a)는 제1 데이터 버퍼와(114_a) 제1 메모리(111) 사이에 위치하고, 제2 데이터 버스(130_b)는 제2 데이터 버퍼(114_b)와 제2 메모리(112) 사이에 위치하는 것으로 도시되어 있다. 이것은 제1 메모리(121)와 제2 메모리(122)가 각각 다른 데이터 버스를 통하여 데이터를 전송받을 수 있음을 나타내는 것이지, 제1 메모리(121)는 오직 제1 데이터 버퍼(114_a)로부터 그리고 제2 메모리(122)는 오직 제2 데이터 버퍼(114_b)로부터만 데이터를 전송받을 수 있음을 의미하는 것은 아니다. 즉, 제1 메모리(121)가 제1 데이터 버스를 통하여 제1 데이터 버퍼(114_a)로부터 데이터를 전송받는 경우, 동시에 제2 메모리(122)는 제2 데이터 버스(130_b)를 통하여 제2 데이터 버퍼(114_b)로부터 데이터를 전송받을 수 있다. 또한, 제1 메모리(121)가 제1 데이터 버스(130_a)를 통하여 제2 데이터 버퍼(114_b)로부터 데이터를 전송받는 경우, 동시에 제2 메모리(122)는 제2 데이터 버스(130_b)를 통하여 제1 데이터 버퍼(114_a)로부터 데이터를 전송받을 수 있다.
도 11은 도 10의 메모리 시스템의 데이터 저장 방법을 나타낸 흐름도이다.
도 11을 참조하면, S210 단계에서, 제1 메모리(121)에 N번째 사용자 데이터를 전송함과 동시에 제2 메모리(122)에 N-1번째 메타 데이터를 전송한다. 예를들어, 도 10을 참조하면, 제1 데이터 버퍼(114_a)로부터 N번째 사용자 데이터를, 제2 데이터 버퍼(114_b)로부터 N-1번재 메타 데이터를 전송받는 경우, 제1 메모리(121)와 제2 메모리(122)는 데이터 버스를 공유하지 않고 각각 별개의 데이터 버스(130_a, 130_b)를 통하여 데이터를 전송받을 수 있다. 제 1 메모리(121)는 제1 데이터 버퍼(114_a)로부터 N번째 사용자 데이터를, 제2 메모리(122)는 제2 데이터 버퍼(114_b)로부터 N-1번째 메타 데이터를 전송받을 수 있으며, 상기 N번째 사용자 데이터와 N-1번째 메타 데이터의 전송은 동시에 일어날 수 있다.
S220 단계에서, 제1 메모리(121)에 N번째 사용자 데이터를, 제2 메모리(122)에 N-1번째 메타 데이터를 기입한다. 즉, 제1 메모리(121)와 제2 메모리(122)에 동시에 S210 단계에서 전송된 데이터를 기입한다.
S230 단계에서, 제1 메모리(121)와 제2 메모리(122)는 기입 완료 신호를 발생한다. 제1 메모리(121)와 제2 메모리(122)에 데이터의 기입이 동시에 수행되고 페이지 단위로 기입이 일어나므로 기입이 완료되는 시간이 동일할 것이다.
도 12는 도 10 및 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸다. 도 12에서는 한 페이지의 데이터에 대한 전송시간 및 데이터 기입시간은 메모리마다 다르지 않고 동일할 것임을 가정하고 데이터 저장시간을 도시하였다. 도 12를 참조하면, 제1 메모리(121)와 제2 메모리(122)에 데이터가 전송되는 시점, 데이터를 기입하는 시점 및 데이터의 기입이 완료되는 시점이 동일하다. 제2 메모리(122)에 N-1번째 메타 데이터가 저장되기 위해 소모되는 시간이 제1 메모리(121)에 N번째 사용자 데이터가 저장되는 시간에 전부 중첩된다. 따라서, 호스트는 사용자 데이터를 저장하는 시간 외에 메타 데이터가 저장되는 시간을 별개로 인식하지 못한다.
다음으로, 도 13 내지 도 15를 참조하여 본 발명의 또다른 실시 예에 따른 메모리 시스템에서 물리적으로 하나인 메모리에 복수개의 독립적인 저장 영역이 존재할 때 데이터를 저장하는 경우를 설명하기로 한다.
도 13은 본 발명의 또 다른 실시 예에 따른 메모리 시스템에서 데이터 저장 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 시스템(100_b)은 제어부(110)와 메모리 장치(120_b) 및 데이터 버스(130)를 포함한다. 메모리 장치(120_b)는 독립적인 저장 영역인 제1 플랜(11)과 제2 플랜(12)을 포함하는 메모리(123)를 포함한다. 도 13의 메모리(123)은 하나의 메모리 칩일 수 있다. 제1 플랜(11)과 제 2 플랜(12)은 하나의 메모리 칩에 존재하는 독립적인 저장 영역으로, 메모리 (123)의 데이터 전송 단자를 공유하면서, 동시에 데이터가 기입될 수 있는 영역이다. 메모리(123)가 낸드 타입 플래시 메모리인 경우, 제1 플랜(11)과 제2 플랜(12)은 하나의 메모리(123)에서 워드라인을 공유하면서 동시에 기입이 수행될 수 있는 저장 영역이다. 도 12에서 메모리 장치(120_b)는 하나의 메모리(123)를 포함하고 메모리(123)에는 두개의 플랜(11, 12)이 포함되는 것으로 도시되어 있지만 이에 한정되는 것은 아니다.
제1 플랜(11)과 제2 플랜(12)은 각각 페이지 버퍼(10_a, 10_b) 및 셀 어레이(10_a, 10_b)를 구비하고 있으므로 각각 데이터를 전송받아 기입할 수 있다. 제1 플랜(11)과 제2 플랜(12)은 단일 메모리(123)에 포함되어 있으므로 하나의 데이터 버스(130)를 통하여 데이터 버퍼(114)로부터 사용자 데이터 또는 메타 데이터를 전송받는다. 데이터 버스(130)를 공유하므로 동시에 데이터를 전송받을 수는 없다. 예를 들어, 제1 플랜(11)과 제2 플랜(12)에 N번째 사용자 데이터와 N-1번째 메타 데이터를 저장하는 경우, 제어부(110)는 순차적으로 제1 플랜(11)에 N번째 사용자 데이터를 전송한 후, 제2 플랜(12)에 N-1번째 메타 데이터를 전송하거나 또는 제2 플랜(12)에 N-1번째 메타 데이터를 전송한 후, 제1 플랜(11)에 N번째 사용자 데이터를 전송할 수 있다. 전송받은 데이터는 페이지 버퍼(20_a, 20_b)에 임시로 저장된다. 제1 플랜(11) 과 제2 플랜(12)의 각각의 셀 어레이(10_a, 10_b)에 데이터를 기입하는 동작은 동시에 진행되므로 N번째 사용자 데이터와 N-1번째 메타 데이터의 기입 시간이 중첩될 수 있다.
도 14a 및 도 14b는 는 도 13의 데이터 저장 방법을 나타낸 흐름도이다.
도 14a및 도 14b는 도 13의 메모리 시스템의 저장 방법의 실시례를 나타낸다. 도 14a는 N번째 사용자 데이터의 전송이 완료된 후, N-1번째 메타 데이터가 전송되는 경우의 데이터 저장 방법을 나타낸다.
도 14a를 참조하면, S310 단계에서, 메모리(123)의 제1 플랜(11)에 N번째 사용자 데이터를 전송한다. 도 13의 제어부(110)는 N번째 사용자 데이터를 데이터 버스(130)을 통하여 제1 플랜(11)에 전송한다. 전송된 N번째 사용자 데이터는 제1 플랜(11)의 페이지 버퍼(20_a)에 임시로 저장된다.
S320 단계에서, 제 2 플랜(12)에 N-1번째 메타 데이터가 전송된다. 전송된 N-1번째 메타 데이터는 제2 플랜(12)의 페이지 버퍼(20_b)에 임시로 저장된다.
S330 단계에서, 제1 플랜(11)과 제2 플랜(12)의 셀 어레이(10_a, 10_b) 각각에 데이터의 기입이 수행된다. 즉, 제1 플랜(11)의 셀 어레이(10_a)에는 N번째 사용자 데이터가, 제2 플랜(12)의 셀 어레이(10_b)에는 N-1번째 메타 데이터가 기입된다.
S340 단계에서, 제1 플랜(11)과 제2 플랜(12) 각각에 N번째 사용자 데이터와 N-1번째 메타 데이터의 기입이 모두 완료되면 메모리(113)는 기입 완료 신호를 발생한다. 제어부(110)는 메모리(113)의 기입 완료 신호에 대응하여 다음으로 저장될 N+1번째 사용자 데이터 및 N번째 메타 데이터를 저장하기 위하여 메모리 장치(120_b)를 제어한다.
도 14b는 N-1번째 메타 데이터의 전송이 완료된 후, N번째 사용자 데이터가 전송되는 경우의 데이터 저장 방법을 나타낸다.
도 14b를 참조하면, S310_a 단계에서, 메모리(123)의 제1 플랜(11)에 N-1번째 메타 데이터를 전송한다. 전송된 N-1번째 메타 데이터는 제1 플랜(11)의 페이지 버퍼(20_a)에 임시로 저장된다.
S320 단계에서, 제 2 플랜(12)에 N번째 사용자 데이터가 전송된다. 전송된 N번째 사용자 데이터는 제2 플랜(12)의 페이지 버퍼(20_b)에 임시로 저장된다.
S330 단계에서, 제1 플랜(11)과 제2 플랜(12)의 셀 어레이(10_a, 10_b) 각각에 데이터의 기입이 수행된다. 즉, 제1 플랜(11)의 셀 어레이(10_a)에는 N-1번째 메타 데이터가, 제2 플랜(12)의 셀 어레이(10_b)에는 N번째 사용자 데이터가 동시에 기입된다.
S340 단계에서, 제1 플랜(11)과 제2 플랜(12) 각각에 N-1번째 메타 데이터와 N번째 사용자 데이터의 기입이 모두 완료되면 메모리(123)는 기입 완료 신호를 발생한다. 제어부(110)는 메모리(123)의 기입 완료 신호에 대응하여 다음으로 저장될 N+1번째 사용자 데이터 및 N번째 메타 데이터를 저장하기 위하여 메모리 장치(120_b)를 제어한다.
도 15는 도 13의 메모리 시스템의 데이터 저장 방법에 따른 데이터 저장 시간을 나타낸다. 도15를 참조하면, 제1 플랜(11)에 N번째 사용자 데이터가 전송된 후, 제2 플랜(12)에 N-1번째 메타 데이터가 전송된다. 제2 플랜(12)에 N-1번째 메타 데이터의 전송이 완료되면 메모리(123) 각각의 플랜(11, 12)에 데이터의 기입이 수행된다. 여기서, 데이터의 기입은 페이지 버퍼(20_a, 20_b)에 임시로 저장된 데이터를 셀 어레이(10_a, 10_b)에 기입하는 것을 의미한다. 제1 플랜(11)에 N번째 사용자 데이터를 전송하는 시간과 제2 플랜(12)에 N-1번째 메타 데이터를 전송하는 시간은 중첩되지 않는다. 그러나 제1 플랜(11)에 N번째 사용자 데이터를 기입하는 시간과 제2 플랜(12)에 N-1번째 메타 데이터를 기입하는 시간은 전부 중첩된다. 호스트는 N번째 사용자 데이터를 기입하는 시간외에 N-1번째 메타 데이터를 기입하는 시간을 인식할 수 없다. 따라서, N-1번째 메타 데이터를 전송하는 시간인 t2만을 메타 데이터를 저장하기 위한 시간으로 인식할 것이다.
도 9와 도 15를 참조하면, 단일 데이터를 전송하는 시간이 동일하다면, 도 9의 t1과 도 15의 t2는 동일할 것이다. 따라서, 도 9와 도 15에서 호스트가 인식하는 메타 데이터 저장시간은 동일하다고 볼 수 있다.
도 16은 본 발명의 실시 예에 따른 컴퓨팅 시스템 장치를 나타내는 블럭도이다.
본 발명의 실시예에 따른 컴퓨팅 시스템 장치(1000)은 버스(1600)에 전기적으로 연결된 프로세서(1200), 메모리(1300), 사용자 인터페이스(1400) 및 반도체 메모리 시스템(1100)을 구비한다. 반도체 메모리 시스템(1100)은 메모리 컨트롤러(1110) 및 메모리 장치(1120)를 포함한다. 메모리 장치(1120)에는 프로세서(1200)에 의해서 처리된 또는 처리될 데이터가, 메모리 컨트롤러(1110)를 통해 저장될 것이다. 도 16의 메모리 시스템(1100)에 포함되는 메모리 장치(1100)와 컨트롤러(1110)은 본 발명의 실시 예에 따른 메모리 시스템(100)과 같을 수 있다. 본 발명의 실시 예에 따른 컴퓨팅 시스템 장치(1000)는 파워 공급 장치(1500)를 더 구비할 수 있다.
본 발명의 실시예에 따른 컴퓨팅 시스템 장치(1000)가 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 파워 공급 장치(1500)는 배터리 일 수 있으며, 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다. 또한, 본 발명의 실시예에 따른 컴퓨팅 시스템 장치(1000)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명한 사항인 바, 더 자세한 설명은 생략한다.
도 17은 본 발명의 실시 예에 따른 메모리 카드를 나타내는 블럭도이다.
도 17을 참조하면, 본 발명의 실시 예에 따른 메모리 카드(2000)는, 컨트롤러(2020) 및 메모리 장치(2010)를 구비한다. 컨트롤러(2020)는 입출력 수단(2030)을 통해 수신되는 외부의 호스트의 요청에 응답하여 메모리 장치(2010)로의 데이터 기입 또는 메모리 장치(2010)로부터의 데이터 독출을 제어한다. 본 발명의 실시 예에 따른 메모리 카드(2000)의 컨트롤러(2020)는 상기와 같은 제어 동작을 수행하기 위해, 각각 호스트 및 메모리 장치(2010)와의 인터페이스를 수행하는 인터페이스부들(미도시), 및 램(RAM) 등을 구비할 수 있다. 본 발명의 실시예에 따른 메모리 카드(2000)는 도 2등의 메모리 시스템(100)으로 구현될 수 있다.
도 17의 메모리 카드(2000)는 컴팩트 플래시 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 메모리 스틱(Memory Stick), 및 USB 플래시 메모리 드라이버 등으로 구현될 수 있다.
도 18은 본 발명의 실시예에 따른 솔리드 스테이트 드라이브(SSD: Solid State Drive)를 나타내는 도면이다.
도 18을 참조하면, 본 발명의 실시예에 따른 SSD(3000)는 SSD 컨트롤러(3020) 및 메모리 장치(3010)를 포함한다. SSD 컨트롤러(3020)는 프로세서(3021), 램(3022), 호스트 인터페이스(3023), 캐쉬 버퍼(3024) 및 메모리 컨트롤러(3025)를 구비할 수 있다. 프로세서(3021)는 호스트(미도시)의 요청(명령, 어드레스, 데이터)에 응답하여 메모리 컨트롤러(3025)가 메모리 장치(3010)와 데이터를 송수신하도록 제어한다. 본 발명의 실시 예에 따른 SSD의 프로세서(3021) 및 메모리 컨트롤러(3025)는 하나의 ARM 프로세서로 구현될 수도 있다. 프로세서(3021)의 동작에 필요한 데이터는 램(3022)에 로딩될 수 있다.
호스트 인터페이스(3023)는 호스트의 요청을 수신하여 프로세서(3022)로 전송하거나, 메모리 장치(3010)로부터 전송된 데이터를 호스트로 전송한다. 호스트 인터페이스(3023)는 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) 등과 같은 다양한 인터페이스 프로토콜로, 호스트와 인터페이스 할 수 있다. 메모리 장치(3010)로 전송하고자 하거나, 메모리 장치(3010)로부터 전송된 데이터는 캐쉬 버퍼(3024)에 임시로 저장될 수 있다. 캐쉬 버퍼(3024)는 SRAM 등일 수 있다.
도 19는 SSD를 포함하는 서버 시스템 및 네트워크 시스템을 나타내는 도면이다.
도 19를 참조하면, 본 발명의 실시 예에 따른 네트워크 시스템(4000)은 네트워크를 통해 연결되는 서버 시스템(4100) 및 다수의 단말들(4200_1~4200_n)을 포함할 수 있다. 본 발명의 실시 예에 따른 서버 시스템(4100)은 네트워크에 연결되는 다수의 단말들(4200_1~4200_n)로부터 수신되는 요청을 처리하는 서버(4120) 및 단말들(4200_1~4200_n)로부터 수신되는 요청에 대응되는 데이터를 저장하는 SSD를 포함할 수 있다. 이때, 도 19의 SSD(4110)는 도 18의 SSD(3000)일 수 있다. 즉, 도 19의 SSD(4110)는 SSD 컨트롤러(3020) 및 메모리 장치(3010)를 포함하고, SSD(4110)는 도 1의 방법에 따라 데이터를 저장할 것이다.
한편, 상기에서 설명된 본 발명에 따른 플래시 메모리 시스템은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 시스템은 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다
100: 메모리 시스템 110: 제어부
120: 메모리 장치 111: 프로세서
114: 데이터 버퍼

Claims (10)

  1. 제1 메모리 및 제2 메모리를 포함하는 메모리 장치; 및
    상기 메모리 장치에 데이터를 저장하는 것을 관리하는 제어부를 포함하고,
    상기 제어부는,
    상기 제1 메모리에 N(N은 1보다 큰 자연수)번째 사용자 데이터를 저장할 때 상기 제2 메모리에 N-1번째 메타 데이터를 저장하거나 또는 상기 제1 메모리에 N-1번째 상기 메타 데이터를 저장할 때 상기 제2 메모리에 상기 N번째 사용자 데이터를 저장하면서,
    상기 N번째 사용자 데이터 저장 시간과 상기 N-1번째 메타 데이터 저장 시간이 일부 또는 전부 중첩되도록 제어하는 것을 특징으로 하는 메모리 시스템.
  2. 제1 항에 있어서, 상기 N-1번째 메타 데이터는,
    N-1번째 사용자 데이터의 논리 주소와 물리 주소에 대한 맵핑 정보를 포함하는 것을 특징으로 하는 메모리 시스템.
  3. 제1 항에 있어서, 상기 제어부는,
    상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서; 및
    상기 N번째 사용자 데이터 및 상기 N-1번째 메타 데이터를 임시로 저장하는 데이터 버퍼를 포함하고,
    상기 메모리 장치는,
    상기 제1 메모리 및 상기 제2 메모리에 데이터를 전송하기 위한 데이터 버스를 더 포함하고,
    상기 프로세서는,
    상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 메모리에 상기 N번째 사용자 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 메모리에 상기 N-1번째 메타 데이터를 전송하도록 제어하는 것을 특징으로 하는 메모리 시스템.
  4. 제 3항에 있어서, 상기 프로세서는,
    상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 메모리에 상기 N-1번째 메타 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 메모리에 상기 N번째 사용자 데이터를 전송하도록 제어하는 것을 특징으로 하는 메모리 시스템.
  5. 제1 항에 있어서, 상기 제어부는,
    상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서; 및
    상기 N번째 사용자 데이터 및 상기 N-1번째 메타 데이터를 임시로 저장하는 제1 데이터 버퍼 및 제2 데이터 버퍼를 포함하고,
    상기 메모리 장치는,
    상기 제1 메모리에 데이터를 전송하기 위한 제1 데이터 버스 및 상기 제2 메모리에 데이터를 전송하기 위한 제2 데이터 버스를 더 포함하고,
    상기 프로세서는,
    상기 제1 데이터 버퍼 및 상기 제2 데이터 버퍼에 임시로 저장되어 있는 상기 N번째 사용자 데이터와 상기 N-1번째 메타 데이터를 상기 제1 데이터 버스 및 상기 제2 데이터 버스 각각을 통하여 동시에 상기 제1 메모리 및 상기 제2 메모리에 전송하는 것을 특징으로 하는 메모리 시스템.
  6. 제1 항에 있어서, 상기 제어부는,
    상기 제1 메모리 및 상기 제2 메모리 중 상기 N-1번째 사용자 데이터가 저장된 메모리에 상기 N-1번째 메타 데이터를 저장하는 것을 특징으로 하는 메모리 시스템.
  7. 제1 항에 있어서,
    상기 메모리는 플래시 메모리인 것을 특징으로 하는 메모리 시스템.
  8. 동시에 기입이 진행될 수 있는 제1 플랜 및 제2 플랜을 포함하는 비휘발성 메모리 및 상기 비휘발성 메모리에 데이를 적어도 하나 이상 포함하는 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치에 데이터를 저장하는 것을 관리하는 제어부를 포함하고,
    상기 제어부는,
    상기 제1 플랜에 사용자 데이터를 저장할 때, 상기 제2 플랜에 상기 사용자 데이터보다 앞서 메모리에 저장된 사용자 데이터에 대한 주소 정보를 포함하고 있는 메타 데이터를 저장하거나 또는 상기 제1 플랜에 상기 메타 데이터를 저장할 때, 상기 제2 플랜에 상기 사용자 데이터를 저장하면서,
    상기 사용자 데이터 저장 시간과 상기 메타 데이터 저장 시간이 일부 또는 전부 중첩되도록 제어하는 것을 특징으로 하는 저장 장치.
  9. 제8 항에 있어서, 상기 제어부는,
    상기 메모리 장치로 데이터를 전송하는 것을 제어하는 프로세서; 및
    상기 메모리에 기입될 데이터를 임시로 저장하는 데이터 버퍼를 포함하고,
    상기 메모리 장치는,
    상기 메모리에 데이터를 전송하기 위한 데이터 버스를 더 포함하고,
    상기 프로세서는,
    상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제1 플랜에 상기 사용자 데이터를 전송한 후, 연이어 상기 데이터 버스를 통하여 상기 데이터 버퍼로부터 상기 제2 플랜에 상기 메타 데이터를 전송하도록 제어하는 것을 특징으로 하는 저장 장치.
  10. 제 8항에 있어서,
    상기 메모리는 플래시 메모리이고,
    상기 제1 플랜 및 상기 제2 플랜은 워드 라인을 공유하는 것을 특징으로 하는 저장 장치.

KR1020110082339A 2011-08-18 2011-08-18 비휘발성 메모리 시스템 KR101784816B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110082339A KR101784816B1 (ko) 2011-08-18 2011-08-18 비휘발성 메모리 시스템
US13/563,048 US8984212B2 (en) 2011-08-18 2012-07-31 Non-volatile memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110082339A KR101784816B1 (ko) 2011-08-18 2011-08-18 비휘발성 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20130019999A KR20130019999A (ko) 2013-02-27
KR101784816B1 true KR101784816B1 (ko) 2017-10-12

Family

ID=47713482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110082339A KR101784816B1 (ko) 2011-08-18 2011-08-18 비휘발성 메모리 시스템

Country Status (2)

Country Link
US (1) US8984212B2 (ko)
KR (1) KR101784816B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102127284B1 (ko) * 2013-07-01 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 관리 방법
KR102485397B1 (ko) 2016-03-17 2023-01-06 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR102471415B1 (ko) 2018-01-17 2022-11-29 에스케이하이닉스 주식회사 반도체 장치
KR20220076803A (ko) 2020-12-01 2022-06-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315976B2 (en) 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US20100070735A1 (en) 2008-09-16 2010-03-18 Micron Technology, Inc. Embedded mapping information for memory devices

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3505093B2 (ja) 1998-09-18 2004-03-08 富士通株式会社 ファイル管理システム
EP1295293A2 (en) 2000-06-09 2003-03-26 Koninklijke Philips Electronics N.V. Method of implicit partitioning the storage space available on a storage medium
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
JP2009187213A (ja) 2008-02-05 2009-08-20 Murata Mach Ltd 画像処理装置と画像処理プログラム
US7873619B1 (en) * 2008-03-31 2011-01-18 Emc Corporation Managing metadata
US9245653B2 (en) * 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315976B2 (en) 2002-01-31 2008-01-01 Lsi Logic Corporation Method for using CRC as metadata to protect against drive anomaly errors in a storage array
US20100070735A1 (en) 2008-09-16 2010-03-18 Micron Technology, Inc. Embedded mapping information for memory devices

Also Published As

Publication number Publication date
KR20130019999A (ko) 2013-02-27
US8984212B2 (en) 2015-03-17
US20130046919A1 (en) 2013-02-21

Similar Documents

Publication Publication Date Title
KR101790165B1 (ko) 메모리 시스템 및 그것의 메타 데이터 관리 방법
KR101888074B1 (ko) 저장 장치 및 불휘발성 메모리 장치, 그리고 그것의 동작 방법
US9747170B2 (en) Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system
KR102467032B1 (ko) 메모리 스케줄링 방법 및 메모리 시스템의 동작방법
KR102078853B1 (ko) 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법
KR20130098642A (ko) 저장 장치
CN103137199A (zh) 存储器系统、数据存储设备、存储卡和固态驱动器
KR20130076430A (ko) 적응적 카피백 방법 및 이를 이용한 저장 장치
US10296233B2 (en) Method of managing message transmission flow and storage device using the method
KR20130084846A (ko) 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
CN111414133A (zh) 操作存储器控制器和存储器系统的方法以及存储器系统
KR101784816B1 (ko) 비휘발성 메모리 시스템
US8239616B2 (en) Semiconductor device comprising flash memory and address mapping method
US11341043B2 (en) Storage device configured to perform an alignment operation and storage system including the same
CN110045917B (zh) 存储器系统及其操作方法
KR20200029085A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US11056177B2 (en) Controller, memory system including the same, and method of operating the memory system
KR20170079825A (ko) 반도체 장치와 연결된 컨트롤러 및 그것의 동작 방법
EP3955102B1 (en) Storage system performing overwrite, host system controlling storage system, and operating method for storage system
CN110364196A (zh) 存储器系统及其操作方法
US20220300196A1 (en) Memory system and method of operating the same
CN110069427A (zh) 存储器控制器以及存储器控制器的操作方法
CN113126895A (zh) 存储装置及其操作方法
US20230130884A1 (en) Method of scheduling commands for memory device and memory system performing the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant