KR20140112303A - 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 - Google Patents

불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20140112303A
KR20140112303A KR1020130026881A KR20130026881A KR20140112303A KR 20140112303 A KR20140112303 A KR 20140112303A KR 1020130026881 A KR1020130026881 A KR 1020130026881A KR 20130026881 A KR20130026881 A KR 20130026881A KR 20140112303 A KR20140112303 A KR 20140112303A
Authority
KR
South Korea
Prior art keywords
data
category
memory device
file
nonvolatile memory
Prior art date
Application number
KR1020130026881A
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 KR1020130026881A priority Critical patent/KR20140112303A/ko
Priority to US14/202,554 priority patent/US20140281172A1/en
Publication of KR20140112303A publication Critical patent/KR20140112303A/ko

Links

Images

Classifications

    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

본 발명은 불휘발성 메모리에 관한 것이다. 보다 상세히는, 본 발명은 플래시 전환 계층을 포함하는 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템에 관한 것이다. 본 발명에 의한 호스트로부터 쓰기 요청된 데이터 및 그것의 카테고리 정보를 제공받는 불휘발성 메모리 장치는, 플래시 변환 계층을 로드하기 위한 메모리, 상기 메모리에 로드된 플래시 변환 계층을 실행하기 위한 컨트롤러 및 제 1 및 제 2 메모리 영역을 포함하는 불휘발성 메모리를 포함하고, 상기 플래시 변환 계층은 상기 카테고리 정보를 참조하여, 상기 제 1 및 제 2 메모리 영역 중 하나의 영역에 상기 쓰기 요청된 데이터가 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 물리 주소로 매핑하며, 상기 카테고리 정보는, 상기 쓰기 요청된 데이터의 논리 주소 할당 방식을 포함하는 저장 특성을 기초로 하여 결정된다. 본 발명에 의한 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템은 가비지 컬렉션 동작이 감소되어, 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.

Description

불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템{NONVOLITILE MEMORY DEVICE, ELELCTRIC DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME}
본 발명은 불휘발성 메모리에 관한 것이다. 보다 상세히는, 본 발명은 플래시 전환 계층을 포함하는 불휘발성 메모리 장치, 전자 장치, 그리고 그것을 포함하는 컴퓨팅 시스템에 관한 것이다.
불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
특히, 플래시 메모리 장치(Flash Memory Device)는 RAM과 유사하게 데이터를 다시 쓸 수 있고, ROM과 유사하게 한번 쓰여진 데이터는 전원의 공급이 없더라도 계속 저장할 수 있다. 그러나 플래시 메모리 장치는 종래의 하드 디스크나 반도체 메모리 장치와 다른 고유의 데이터 처리 특성을 가지고 있다. 플래시 메모리 장치는 이전에 쓰여진 데이터를 직접 갱신(in-place update)할 수 없는 제약을 가지고 있으므로, 이러한 제약을 극복하기 위한 기술이 요구된다.
본 발명의 목적은 가비지 컬렉션 동작을 감소시켜, 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있는 불휘발성 메모리 장치, 전자 장치, 그리고 그것을 포함하는 컴퓨팅 시스템을 제공하는 것이다.
본 발명에 의한 호스트로부터 쓰기 요청된 데이터 및 그것의 카테고리 정보를 제공받는 불휘발성 메모리 장치는, 플래시 변환 계층을 로드하기 위한 메모리, 상기 컨트롤러 메모리에 로드된 플래시 변환 계층을 실행하기 위한 컨트롤러 및 제 1 및 제 2 메모리 영역을 포함하는 불휘발성 메모리를 포함하고, 상기 플래시 변환 계층은 상기 카테고리 정보를 참조하여, 상기 제 1 및 제 2 메모리 영역 중 하나의 영역에 상기 쓰기 요청된 데이터가 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 물리 주소로 매핑하며, 상기 카테고리 정보는, 상기 쓰기 요청된 데이터의 논리 주소 할당 방식을 포함하는 저장 특성을 기초로 하여 결정된다.
실시 예에 있어서, 상기 저장 특성은 상기 쓰기 요청된 데이터의 업데이트 빈도 및 생명 주기를 더 포함한다.
실시 예에 있어서, 상기 쓰기 요청된 데이터가 분류되는 카테고리는 미리 지정된 시간 보다 짧은 생명 주기를 가지는 파일들을 포함하는 제 1 카테고리 및 미리 지정된 빈도 보다 업데이트 빈도가 높은 파일을 포함하는 제 2 카테고리를 포함하며, 상기 플래시 변환 계층은 상기 카테고리 정보를 참조하여, 상기 쓰기 요청된 데이터가 상기 제 1 카테고리로 분류되면 상기 제 1 메모리 영역에, 상기 제 2 카테고리로 분류되면 상기 제 2 메모리 영역에 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 물리 주소로 매핑한다.
실시 예에 있어서, 상기 제 1 카테고리는 임시 파일을 포함한다.
실시 예에 있어서, 상기 제 2 카테고리는 데이터 베이스 파일 및 메타 데이터를 포함한다.
실시 예에 있어서, 상기 불휘발성 메모리는 제 3 메모리 영역을 더 포함하고, 상기 쓰기 요청된 데이터가 분류되는 카테고리는 라운드-로빈 형식으로 논리 주소가 할당되는 파일을 포함하는 제 3 카테고리를 더 포함하며, 상기 플래시 변환 계층은 상기 쓰기 요청된 데이터가 상기 제 3 카테고리로 분류되면 상기 제 3 메모리 영역에 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 물리 주소로 매핑한다.
실시 예에 있어서, 상기 제 3 카테고리는 파일 시스템의 저널 파일을 포함한다.
본 발명에 의한 불휘발성 메모리 장치와 연결되는 전자 장치는 상기 불휘발성 메모리 장치에 저장될 데이터의 저장 특성을 기초로 하여 쓰기 요청할 데이터를 미리 지정된 카테고리로 분류하고, 분류한 카테고리 정보를 상기 쓰기 요청할 데이터와 함께 불휘발성 메모리 장치에 제공하기 위한 카테고리 분류 드라이버, 상기 카테고리 분류 드라이버를 저장하기 위한 메모리 및 상기 카테고리 분류 드라이버를 실행하기 위한 컨트롤러를 포함하되, 상기 카테고리 분류 드라이버는 복수의 카테고리를 미리 지정하며, 상기 복수의 카테고리 중 적어도 하나에는 라운드-로빈 형식으로 논리 주소가 지정되는 파일이 포함된다.
실시 예에 있어서, 상기 복수의 카테고리는 미리 지정된 시간 보다 짧은 생명 주기를 가지는 파일을 포함하는 제 1 카테고리, 미리 지정된 빈도 보다 업데이트 빈도가 높은 파일을 포함하는 제 2 카테고리 및 라운드-로빈 형태로 논리 주소가 지정되는 파일을 포함하는 제 3 카테고리를 포함한다.
실시 예에 있어서, 상기 제 1 카테고리는 임시 파일을 포함한다.
실시 예에 있어서, 상기 제 2 카테고리는 데이터 베이스 파일 및 메타 데이터를 포함하고, 상기 제 3 카테고리는 파일 시스템의 저널 파일을 포함한다.
실시 예에 있어서, 상기 카테고리 분류 드라이버는 상기 파일 시스템의 저널 블록 정보를 참조하여 상기 쓰기 요청된 데이터를 상기 미리 지정된 카테고리로 분류한다.
실시 예에 있어서, 상기 카테고리 분류 드라이버는 운영 체제의 아이노드를 이용하여 상기 쓰기 요청할 데이터를 상기 미리 지정된 카테고리로 분류한다.
실시 예에 있어서, 상기 카테고리 분류 드라이버는 상기 아이노드를 이용하여 상기 쓰기 요청할 데이터의 파일 이름 및 부모 디렉토리를 인식하고, 상기 인식된 파일 이름 및 부모 디렉토리를 참조하여 상기 쓰기 요청할 데이터를 상기 미리 지정된 카테고리로 분류한다.
실시 예에 있어서, 상기 전자 장치는 상기 불휘발성 메모리 장치와 eMMC 인터페이스 규격을 이용하여 정보를 교환하며, 상기 카테고리 정보는 상기 eMMC 인터페이스 규격의 context ID를 이용하여 상기 불휘발성 메모리 장치에 제공된다.
본 발명에 의한 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템은 가비지 컬렉션 동작이 감소되어, 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.
도 1은 본 발명의 실시예에 의한 컴퓨팅 시스템을 도시하는 블록도이다.
도 2는 불휘발성 메모리 장치가 데이터 쓰기 동작을 수행하는 과정을 설명하기 위한 도면이다.
도 3은 다양한 어플리케이션에 대하여, 어플리케이션 수행 중 쓰기 요청이 발생되는 데이터의 종류(type)별 쓰기 분포를 도시하는 그래프이다.
도 4는 저널 데이터의 저장 특성을 설명하기 위한 그래프이다.
도 5는 메타 데이터의 저장 특성을 설명하기 위한 그래프이다.
도 6은 도 1의 컴퓨팅 시스템의 소프트웨어 계층을 도시하는 도면이다.
도 7은 본 발명의 데이터 분류 동작을 더 자세하게 설명하기 위한 도면이다.
도 8은 도 6의 플래시 변환 계층의 일실시예를 도시하는 계층도이다.
도 9는 본 발명에 의한 불휘발성 메모리 장치의 데이터 저장 동작을 설명하기 위한 도면이다.
도 10은 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 생성된 코스트 블록(Zero Cost Block)의 수를 도시하는 그래프이다.
도 11은 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 플래시 변환 계층에 요구되는 수행 시간을 도시하는 그래프이다.
도 12는 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 물리 블록에 대한 소거 동작의 수를 도시하는 그래프이다.
도 13은 본 발명의 실시예에 의한 불휘발성 메모리 장치의 데이터 처리 방법을 도시하는 순서도이다.
도 14는 본 발명의 실시예에 의한 컴퓨팅 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 15는 본 발명의 실시예에 의한 불휘발성 메모리 장치를 메모리 카드(memory card)에 적용한 블록도이다.
도 16은 도 15의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
도 1은 본 발명의 실시예에 의한 컴퓨팅 시스템(1)을 도시하는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(1)은 호스트(10) 및 불휘발성 메모리 장치(20)를 포함한다.
컴퓨팅 시스템(1)은 데이터의 구역성(Locality)을 기초로, 데이터를 미리 지정된 카테고리(category)로 분류한다. 컴퓨팅 시스템(1)의 불휘발성 메모리 장치(20)는 각 카테고리에 대응되는 복수의 물리 영역을 포함한다. 컴퓨팅 시스템(1)은 데이터를 분류된 카테고리에 응답하여 불휘발성 메모리 장치(20)의 대응되는 영역에 저장한다.
컴퓨팅 시스템(1)은 데이터의 구역성에 따라 데이터가 저장되는 공간을 물리적으로 구분하므로 가비지 콜렉션 동작을 감소시킬 수 있다. 컴퓨팅 시스템(1)은 데이터 처리시 요구되는 가비지 콜렉션 동작이 적으므로 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.
호스트(10)는 프로세서(11) 및 메인 메모리(12)를 포함한다. 호스트(10)는 불휘발성 메모리 장치(20)에 액세스할 수 있도록 구성된다. 호스트(10)는 미리 설정된 동작을 수행할 때 생성되는 데이터를 불휘발성 메모리 장치(20)에 저장할 수 있다. 혹은, 호스트(10)는 불휘발성 메모리 장치(20)에 저장된 데이터에 기반하여 미리 설정된 동작을 수행할 수 있다.
프로세서(11)는 호스트(10)의 제반 동작을 제어하도록 구성된다. 예를 들면, 프로세서(11)는 운영 체제(OS, operating system), 어플리케이션(application) 등과 같은 다양한 소프트웨어를 구동할 수 있다. 또한 프로세서(11)는 컴퓨팅 시스템(1)을 제어하기 위한 다양한 펌웨어를 구동할 수 있다. 호스트(10)는 프로세서(11)에 의하여 구동되는 소프트웨어 또는 펌웨어의 제어에 따라 메모리 시스템(20)에 액세스할 수 있다. 메인 메모리(12)는 소프트웨어 또는 펌웨어를 구동하기 위한 공간을 제공한다. 메인 메모리(12)는 램(RAM)일 수 있다. 그러나 메인 메모리(12)의 종류 혹은 구성은 이에 한정되지 않는다.
불휘발성 메모리 장치(20)는 호스트(10)에서 처리되는 다양한 데이터를 저장하도록 구성된다. 불휘발성 메모리 장치(20)는 컨트롤러(21) 및 복수의 불휘발성 메모리들(22_1~22_N)을 포함한다.
컨트롤러(21)는 호스트(10)의 요청에 응답하여, 복수의 불휘발성 메모리들(22_1~22_N)에 엑세스 할 수 있다. 컨트롤러(21)는 호스트(10)의 요청에 응답하여 복수의 불휘발성 메모리들(22_1~22_N)에 대한 읽기, 쓰기, 그리고 소거 동작을 제어할 수 있다.
컨트롤러(21)는 복수의 불휘발성 메모리들(22_1~22_N)과 호스트(10) 사이에 인터페이스를 제공한다. 또한 컨트롤러(21)는 복수의 불휘발성 메모리들(22_1~22_N)을 제어하기 위한 펌웨어(firmware)를 구동한다. 컨트롤러(21)는 컨트롤러 프로세서(21a) 및 컨트롤러 메모리(21b)를 포함한다.
컨트롤러 프로세서(21a)는 컨트롤러(21)의 제반 동작을 제어하도록 구성된다. 예를 들면, 컨트롤러 프로세서(21a)는 복수의 불휘발성 메모리들(22_1~22_N)을 제어하기 위한 펌웨어를 구동한다. 컨트롤러 메모리(21b)는 컨트롤러(21)의 동작 메모리, 호스트(10)와 복수의 불휘발성 메모리들(22_1~22_N) 사이의 버퍼 메모리, 그리고 복수의 불휘발성 메모리들(22_1~22_N)의 캐시 메모리로 동작할 수 있다.
복수의 불휘발성 메모리들(22_1~22_N)은 컨트롤러(21)의 제어에 따라 데이터를 저장한다. 불휘발성 메모리들(22_1~22_N)의 종류는 한정되지 않는다. 예를 들어, 불휘발성 메모리들(22_1~22_N)은 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리(Flaash Memory), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등일 수 있다.
컨트롤러(21) 및 호스트(10)는 미리 설정된 프로토콜에 기반하여 데이터를 교환할 수 있다. 예를 들면, 컨트롤러(21) 및 호스트(10)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나에 기반하여 데이터를 교환할 수 있다.
쓰기 요청이 발생되면, 호스트(11)는 쓰기 요청된 데이터와 데이터의 논리 어드레스(Logical Address: LA)를 불휘발성 메모리 장치(20)로 전달한다. 불휘발성 메모리 장치(20)는 호스트의 요청에 응답하여 데이터를 복수의 불휘발성 메모리들(22_1~22_N)에 저장한다.
불휘발성 메모리 장치(20)에서, 데이터 읽기 및 쓰기 동작들은 페이지 단위로 수행될 수 있다. 또한 불휘발성 메모리 장치(20)에서, 소거 동작은 블록 단위로 수행될 수 있다. 불휘발성 메모리 장치(20)의 컨트롤러(21)는 섹터(Sector) 단위로 데이터를 처리하는 호스트(11)와 페이지 및 블록 단위로 데이터를 처리하는 불휘발성 메모리 장치(20)가 호환될 수 있도록 인터페이싱을 제공한다.
보다 구체적으로, 컨트롤러(21)는 플래시 변환 계층(Flash Translation Layer: 이하, FTL)을 포함한다. 플래시 변환 계층(FTL)은 데이터에 대한 쓰기 요청이 발생되었을 때, 호스트로부터 제공된 논리 어드레스(LA)를 불휘발성 메모리들(22_1~22_N)의 물리 어드레스(PA)로 맵핑(Mapping)한다.
플래시 변환 계층(FTL)은 상술된 맵핑 동작을 이용하여, 호스트(10)의 파일 시스템(File System)과 불휘발성 메모리들(22_1~22_N) 사이에서, 불휘발성 메모리들(22_1~22_N)의 삭제 연산을 감추기 위한 인터페이싱을 제공한다. 플래시 변환 계층(FTL)에 의하여 쓰기 전 소거(Erase-before-Write) 및 소거 단위와 쓰기 단위의 불일치라는 불휘발성 메모리들(22_1~22_N)의 단점이 보완될 수 있다. 플래시 변환 계층(FTL)에 관하여는 도 5 및 도 7을 참조하여 더 자세히 설명될 것이다.
한편, 데이터의 저장 특성(Characteristic)은 쓰기 요청되는 데이터의 지역성에 따라 달라질 수 있다. 저장 특성은 데이터의 업데이트 빈도, 소거 빈도, 할당되는 논리 주소의 특성 등을 포함한다. 본 발명의 컴퓨팅 시스템(1)은 데이터의 지역성에 응답하여 데이터가 쓰여지는 영역을 구분하여 관리하여, 개선된 데이터 처리 성능, 특히 개선된 쓰기 성능을 얻을 수 있다.
도 2는 불휘발성 메모리 장치가 데이터 쓰기 동작을 수행하는 과정을 설명하기 위한 도면이다. 불휘발성 메모리 장치(도 1 참조, 20)의 불휘발성 메모리들(도 1 참조, 22_1~22_N)은 데이터를 저장하기 위한 제 1 물리 블록(PB1) 및 제 2 물리 블록(PB2)을 포함한다. 본 실시예에서는 예시적으로, 하나의 물리 블록은 4개의 페이지로 구성된다.
도 1에서 설명된 바와 같이, 호스트(도 1 참조, 10)로부터 데이터에 대한 쓰기 요청이 발생되면, 불휘발성 메모리 장치(20)는 데이터의 논리 어드레스를 물리 어드레스로 매핑한다. 불휘발성 메모리 장치(20)는 매핑된 물리 어드레스에 대응되는 물리 블록에 데이터를 쓴다.
(a) 단계에서, 제 1 데이터(A) 및 제 2 데이터(B)에 대한 쓰기 요청이 발생된다. 불휘발성 메모리 장치(20)는 매핑된 물리 어드레스에 대응되는 영역, 예를 들어 제 1 물리 블록(PB1)에 제 1 데이터(A) 및 제 2 데이터(B)를 쓴다. 제 1 데이터(A) 및 제 2 데이터(B)는 제 1 물리 블록(PB1)의 페이지들에 순차적으로 저장될 수 있다.
(b) 단계에서, 호스트(10)로부터 제 2 데이터(B)를 제 3 데이터(B1)로 변경하는 업데이트 요청 및 제 4 데이터(C)에 대한 쓰기 요청이 발생된다. 불휘발성 메모리 장치(20)는 제 1 물리 블록(PB1)의 나머지 페이지들에 제 3 데이터(B1) 및 제 4 데이터(C)를 쓰고, 제 2 데이터(B)를 무효화(Invalidate)한다.
(c) 단계에서, 호스트(10)로부터 제 3 데이터(B1)를 제 5 데이터(B2)로 변경하는 업데이트 요청이 발생된다. 불휘발성 메모리 장치(20)는 제 1 물리 블록(PB1)에 빈 페이지(Empty Page)가 없음을 검출하고, 새로운 물리 블록인 제 2 물리 블록(PB2)을 할당한다.
불휘발성 메모리 장치(20)는 재할당된 제 2 물리 블록(PB2)의 페이지들에 제 1 물리 블록(PB1)의 유효한(Valid) 데이터를 복사한다. 유효한 데이터는 가장 최근의 변경되지 않은 데이터들을 의미한다. 불휘발성 메모리 장치(20)는 제 2 물리 블록(PB2)의 빈 페이지에 제 5 데이터(B2)를 쓰고, 제 1 물리 블록(PB1)의 모든 데이터를 무효화한다.
(d) 단계에서, 불휘발성 메모리 장치(20)는 무효인 데이터만 포함하는 무효 블록(Invalid Block)인 제 1 물리 블록(PB1)을 소거한다.
(a) 내지 (d) 단계에서 설명된 바와 같이, 불휘발성 메모리 장치(20)에 저장되는 데이터들이 자주 소거 혹은 업데이트 되는 경우 많은 복사 동작 및 소거 동작이 요구된다. 특히, 제 1 및 제 4 데이터(A,C)는 데이터의 저장 특성이 제 2 데이터(B)와 서로 다름에도 제 2 데이터(B)에 대한 업데이트 동작에 의하여 함께 복사되어야 할 수 있다. 불휘발성 메모리 장치(20)는 저장 특성에 응답하여 데이터를 분류하여 저장 동작을 수행하여, 상술된 불이익을 감소시킬 수 있다.
도 3은 다양한 어플리케이션에 대하여, 어플리케이션 수행 중 쓰기 요청이 발생되는 데이터의 종류(type)별 쓰기 분포를 도시하는 그래프이다. 어플리케이션은 유투브(Youtube), 브라우저(Browser), 페이스북(Facebook) 등을 포함한다. 데이터의 종류는 크게 메타 데이터(Metadata), 저널(Journal) 데이터, 데이터베이스(DB: Database) 데이터, 데이터베이스 임시(DB-Temp: Database Temporary) 데이터, 캐시(Cache) 데이터, XML(eXtensible Markup Language) 및 기타 데이터로 분류하였다.
도 3을 참조하면, 데이터의 쓰기 요청 발생 수는 종류별로 다양하다. 특히, 저널 데이터에 대한 쓰기 요청이 가장 많이 발생된다. 즉, 저널 데이터는 업데이트 빈도 수가 높다고 예측할 수 있다.
도 4는 저널 데이터의 저장 특성을 설명하기 위한 그래프이다. 도 4에서, 가로축은 쓰기 요청 인덱스(index)를 나타낸다. 세로축은 각 쓰기 요청시 저널 데이터에 할당된 논리 주소(Logical Address)를 나타낸다.
도 4를 참조하면, 저널 데이터의 논리 주소는 쓰기 요청에 응답하여 특정 논리 주소 구간에 선형으로 반복하여 할당된다. 저널 데이터는 특정 논리 주소 구간에 라운드-로빈(round-robin) 형태로 오버라이트(overwrite)되는 특성을 가지기 때문이다. 따라서 저널 데이터가 저장되는 물리 블록을 다른 데이터와 분리하여 관리하면, 저널 데이터가 저장되는 물리 블록은 순차적으로 모든 페이지가 무효화될 것이므로 불필요한 복사 및 가비지 콜렉션 동작이 요구되지 않을 수 있다.
도 5는 메타 데이터의 저장 특성을 설명하기 위한 그래프이다. 도 5에서, 가로축은 쓰기 요청 인덱스(index)를 나타낸다. 세로축은 각 쓰기 요청시 메타 데이터에 할당된 논리 주소(Logical Address)를 나타낸다.
도 5를 참조하면, 메타 데이터의 논리 주소는 쓰기 요청에 응답하여 특정 논리 주소에 반복하여 할당된다. 즉, 메타 데이터에 할당되는 논리 주소는 공간 지역성(Spatial Locality) 및 시간 지역성(Temporal Locality)가 모두 높다. 메타 데이터에는 특정 논리 주소 영역이 할당되며, 메타 데이터는 소거 및 생성 빈도수가 높기 때문이다. 따라서 메타 데이터가 저장되는 물리 블록을 다른 데이터와 분리하여 관리하면, 메타 데이터가 저장되는 물리 블록은 단시간에 모든 페이지가 무효화될 것이므로 불필요한 복사 및 가비지 콜렉션 동작이 요구되지 않을 수 있다.
도 4 및 도 5를 참조하여 설명된 바와 같이, 데이터의 종류에 따라 데이터의 저장 특성은 달라질 수 있다. 본 발명의 컴퓨팅 시스템은 저장 특성에 따라 데이터를 특정 카테고리로 분류하고, 카테고리에 응답하여 데이터가 저장되는 영역을 구분하여 관리하므로 데이터 처리 효율이 개선된다.
도 6은 도 1의 컴퓨팅 시스템의 소프트웨어 계층을 도시하는 도면이다. 도 1 및 도 6을 참조하면, 컴퓨팅 시스템(도 1 참조, 1)은 어플리케이션(110), 파일 시스템(120), 카테고리 분류 드라이버(130), 플래시 변환 계층(140) 및 불휘발성 메모리(150)를 포포함한다. 불휘발성 메모리(150)는 도 1의 복수의 불휘발성 메모리들(22_1~22_N)에 대응된다.
컴퓨팅 시스템(1)은 저장 특성에 따라 데이터를 미리 지정된 카테고리로 분류한다. 각 카테고리는 대응되는 ID를 가진다. 컴퓨팅 시스템(1)은 데이터의 ID를 참조하여, 각 ID에 할당된 물리 영역에 데이터를 저장한다.
어플리케이션(110)은 컴퓨팅 시스템(1)에서 구동되는 다양한 응용 프로그램들을 나타낸다. 예시적으로, 어플리케이션(110)은 컴퓨팅 시스템(1)에서 구동되는 문서 편집기, 스프레드시트, 데이터베이스, 인터넷 탐색기, 음성 재생기, 또는 화상 재생기 등일 수 있다. 어플리케이션(110)은 호스트(도 1 참조, 10)의 프로세서(도 1 참조, 11)에 의해 구동될 수 있다.
파일 시스템(120)은 불휘발성 메모리 장치(도 1 참조, 20)의 저장 공간을 관리하고, 불휘발성 메모리 장치(20)에 저장되는 데이터를 관리한다. 예를 들면, 어플리케이션(110)은 파일 시스템(120)을 통해 불휘발성 메모리 장치(20)에 저장된 데이터에 액세스한다. 예시적으로, 파일 시스템(150)은 FAT, FAT32, NTFS, HFS, JSF2, XFS, ODS-5, UDF, ZFS, UFS (Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 할 수 있다. 파일 시스템(120)은 호스트(10)의 프로세서(11)에 의해 구동될 수 있다.
카테고리 분류 드라이버(130)는 어플리케이션(110)에서 데이터에 대한 쓰기 요청이 발생되면, 데이터를 미리 지정된 카테고리로 분류한다. 데이터는 지역성 및 저장 특성에 따라 분류될 수 있다. 카테고리 분류 드라이버는 호스트(10)로부터 불휘발성 메모리 장치(20)로 데이터가 전송될 때, 데이터의 카테고리에 대응되는 ID가 데이터와 함께 전송되도록 한다.
플래시 변환 계층(140)은 파일 시스템(120) 및 불휘발성 메모리(150) 사이의 인터페이싱을 수행한다. 예를 들면, 플래시 변환 계층(140)은 파일 시스템(120)의 논리 어드레스(LA) 및 불휘발성 메모리(150)의 물리 어드레스(PA) 사이의 매핑을 수행한다. 플래시 변환 계층(140)은 쓰기 요청이 발생되면, 카테고리 분류 드라이버(130)에서 생성된 ID를 참조하여, 데이터에 ID에 대응되는 영역의 물리 어드레스(PA)를 할당한다.
또한, 플래시 변환 계층(140)은 불휘발성 메모리 장치(20)의 배경 동작을 제어한다. 예를 들면, 플래시 변환 계층(140)은 불휘발성 메모리 장치(20)의 머지(merge), 가비지 컬렉션(garbage collection), 마모도 관리(wear leveling) 등을 제어한다. 본 실시예에서는 플래시 변환 계층이라는 용어를 사용하고 있으나, 불휘발성 메모리 장치(20)가 다른 불휘발성 메모리 장치로 대체될 때,플래시 변환 계층(140) 또한 대응하는 호스트 드라이버로 대체될 수 있다.
플래시 변환 계층(140)은 컨트롤러(도 1 참조, 21)의 컨트롤러 프로세서(도 1 참조, 21a)에 의해 구동될 수 있다. 플래시 변환 계층(140)은 불휘발성 메모리(150)에 저장될 수 있다. 컨트롤러(21)는 불휘발성 메모리(150)로부터 플래시 변환 계층(140)을 읽고, 읽어진 플래시 변환 계층(140)을 구동할 수 있다. 혹은 컨트롤러(21)는 플래시 변환 계층(140)을 저장하는 불휘발성 메모리를 추가적으로 포함할 수 있다.
도 7은 본 발명의 데이터 분류 동작을 더 자세하게 설명하기 위한 도면이다. 도 7을 참조하면, 도 6에서 설명된 바와 같이, 운영 체제(OS: Operating System) 레벨의 소프웨어 계층은 어플리케이션(110), 파일 시스템(120) 및 카테고리 분류 드라이버(130)를 포함한다.
어플리케이션(110)은 수행 중 파일이 변경 혹은 생성되어야 하는 경우, 파일에 대한 쓰기 요청을 발생시킨다. 어플리케이션(110)은 쓰기 요청되는 파일의 정보(File)를 파일 시스템(120)에 제공한다.
파일 시스템(120)은 쓰기 요청된 파일의 데이터(Data) 및 논리 어드레스(LA)를 쓰기 명령(CMD)과 함께 제공한다.
카테고리 분류 드라이버(130)는 쓰기 요청된 파일을 저장 특성 혹은 지역성을 기초로 미리 지정된 카테고리로 분류한다. 카테고리 분류 드라이버(130)는 파일 시스템(120)에서 제공되는 쓰기 명령(CMD), 파일의 데이터(Data) 및 논리 어드레스(LA)에 카테고리에 대응되는 ID를 추가하여 플래시 변환 계층(도 6 참조, 140)에 제공한다. 본 실시예에서, 카테고리 분류 드라이버(130)는 파일을 4개의 카테고리로 분류할 수 있다.
제 1 카테고리는 생성 및 삭제 빈도가 높은, 즉 짧은 생명 주기(Life Cycle)를 가지는 파일들을 포함한다. 파일의 생명 주기가 짧은지 여부는 기는 미리 지정된 생명 주기와 비교되어 결정될 수 있다. 제 1 카테고리는 임시 파일(Temporary File)을 포함할 수 있다.
제 1 카테고리로 분류되는 파일들은 단시간(short period)에 무효화될 확률이 높다. 특히 임시 파일들은 임시 파일이 보관되는 일정 기간이 도과하면 삭제될 수 있으므로 무효화 확률이 높다. 제 1 카테고리로 분류되는 파일을 저장하는 물리 블록은 단시간에 무효 블록(Invalid Block)이 될 수 있으므로, 남아 있는 유효 페이지에 대한 복사 동작 없이 블록을 소거할 수 있어 효율적이다.
제 2 카테고리는 업데이트 빈도가 높은 파일들을 포함한다. 파일의 업데이트 빈도가 높은지 짧은지 여부는 미리 지정된 업데이트 빈도수와 비교되어 결정될 수 있다. 제 2 카테고리는 데이터베이스 파일(Database File) 및 메타 데이터(Metadata)를 포함할 수 있다.
제 2 카테고리로 분류되는 파일들은 지속적으로 쓰기 요청되므로 기존에 쓰여진 데이터는 무효화될 확률이 높다. 제 2 카테고리로 분류되는 파일들에 의한 무효화 확률은 제 1 카테고리로 분류되는 파일 보다는 낮을 수 있다. 제 2 카테고리로 분류되는 파일을 저장하는 물리 블록은 단시간에 무효 블록(Invalid Block)이 될 수 있으므로, 남아 있는 유효 페이지에 대한 복사 동작 없이 블록을 소거할 수 있어 효율적이다.
제 3 카테고리는 라운드-로빈 형태로 논리 주소가 할당되는 파일들을 포함한다. 제 3 카테고리는 저널(Journal)을 포함할 수 있다.
제 3 카테고리로 분류되는 파일들은 특정 논리 주소 영역에 순차적으로 덮어쓰기(Overwrite)되므로, 제 1 카테고리로 분류되는 파일을 저장하는 물리 페이지는 순차적으로 무효화된다. 제 1 카테고리로 분류되는 파일을 저장하는 물리 블록은 시간의 경과에 응답하여 무효 블록(Invalid Block)이 되므로, 남아 있는 유효 페이지에 대한 복사 동작 없이 블록을 소거할 수 있어 효율적이다.
제 4 카테고리로 분류되는 파일들은 제 1 내지 제 3 카테고리로 분류되지 않는 파일들이다. 제 4 카테고리로 분류되는 파일들은 일반적인 데이터와 동일하게 관리된다.
본 실시예에서 카테고리 분류 드라이버(130)는 파일을 4개의 카테고리로 분류하였으나, 이는 예시적인 것으로 본 발명은 이에 한정되지 않는다. 예를 들어, 카테고리 분류 드라이버(130)는 데이터베이스 파일(Database File) 및 메타 데이터(Metadata)를 다른 카테고리로 분류하여 파일을 5개의 카테고리로 분류할 수 있다.
파일을 분류하기 위하여, 카테고리 분류 드라이버(130)는 운영 체제의 아이노드(Inode)를 참조할 수 있다. 카테고리 분류 드라이버(130)는 운영 체제의 아이노드를 참조하여 쓰기 요청된 파일의 이름 및 부모 디렉토리(Parent Directory)를 추출할 수 있다. 카테고리 분류 드라이버는 파일의 이름과 부모 디렉토리를 참조하여 파일을 분류할 수 있다. 예를 들어, cache 혹은 database 디렉토리에 저장되거나 이름에 "db-"가 포함되는 파일은 임시 파일이므로 제 1 카테고리로 분류될 수 있다.
또한 파일을 분류하기 위하여, 카테고리 분류 드라이버(130)는 파일 시스템에서 저널 블록 정보를 참조할 수 있다. 카테고리 분류 드라이버는 저널 블록 정보를 참조하여 저널을 분류할 수 있다. 그러나 카테고리 분류 드라이버(130)의 파일 분류 방법이 상술된 실시예에 한정되는 것은 아니다.
카테고리 분류 드라이버(130)는 각 카테고리에 대응되는 ID를 할당할 수 있다. 예를 들어, 제 n 카테고리에는 n번의 ID를 할당할 수 있다. 카테고리 분류 드라이버(130)는 플래시 변환 계층(140)으로 쓰기 데이터가 제공될 때, 대응되는 ID를 함께 전송한다.
ID는 추가적으로 전송되는 정보이므로, 호스트(도 1 참조, 10)로부터 불휘발성 메모리 장치(도 1 참조, 20)로 전송되기 위해서는 추가적인 인터페이스가 사용될 수 있다. 혹은 불휘발성 메모리 장치(20)가 eMMC 4.5와 같은 추가적인 정보 전송을 허용하는 인터페이스를 사용하는 경우, ID는 추가적인 인터페이스 사용 없이도 전송될 수 있다. 예를 들어, 호스트(10)는 eMMC 4.5에서 제공되는 ContextID를 본 발명의 ID 영역으로 할당하여 사용할 수 있다.
도 8은 도 6의 플래시 변환 계층의 일실시예를 도시하는 계층도이다. 도 6을 참조하면, 플래시 변환 계층(140)은 파일 시스템 인터페이스(141), ID 분류기(142), 데이터 매퍼(143), 배드 블록 매니저(144), 에러 수정기(145) 및 불휘발성 메모리 인터페이스(146)를 포함한다.
파일 시스템 인터페이스(141)는 플래시 변환 계층(140)과 파일 시스템(도 6 참조, 120) 사이의 인터페이스를 제공한다.
ID 분류기(142)는 쓰기 요청이 발생하면, 데이터와 함께 제공된 ID를 인식한다. 데이터 매퍼(143)는 ID 분류기(142)에서 인식된 ID에 응답하여 데이터를 대응되는 물리 주소로 매핑한다.
데이터 매퍼(143)는 데이터가 저장되는 물리 블록 내에 공백 페이지(empty page)가 없고 물리 블록 내에 무효(invalid) 페이지가 있는 경우에는, 새로운 물리 블록을 할당한다. 또한, 데이터 매퍼(143)는 할당된 물리 블록에 이전의 물리 블록에 저장된 유효한 페이지를 복사하며, 할당된 물리 블록의 공백 페이지를 물리 주소로 매핑한다. 또한, 데이터 매퍼(143)는 물리 블록에 저장된 유효한 페이지를 복사한 후에 이전 물리 블록에 대한 삭제 연산을 수행할 수 있다.
데이터 매퍼(143)는 데이터가 저장되는 물리 블록 내에 공백 페이지가 없고 물리 블록 내의 페이지들이 모두 유효한(valid) 경우에는 새로운 물리 블록을 할당하고, 할당된 물리 블록의 빈 페이지를 물리 주소로 매핑한다. 즉, 데이터 매퍼(143)는 데이터를 쓸 수 있는 빈 페이지의 물리 주소를 제공한다.
배드 블록 매니저(144)는 데이터 매퍼(143)에 의하여 매핑된 물리 주소에 대응하는 물리 블록이 배드 블록(bad block)을 포함하는 경우에는, 매핑된 물리 주소를 배드 블록이 없는 새로운 물리 블록의 물리 주소로 번역(translation)한다.배드 블록 매니저(144)는 배드 블록을 포함하는 물리 블록내의 페이지만 제외하고 물리 블록 내의 나머지 페이지만을 사용하도록 설계할 수도 있다.
에러 수정기(145)는 어플리케이션이 데이터를 쓰는 경우 데이터에 에러 정정 코드(ECC)를 추가한다. 에러 수정기(145)는 이후 읽기 동작시 발생하는 오류를 정정할 수 있게 한다.
불휘발성 메모리 인터페이스(146)는 플래시 변환 계층(140)과 불휘발성 메모리(도 6 참조, 150) 사이의 인터페이스를 제공한다.
상술된 플래시 변환 계층(140)은 데이터를 분류된 카테고리에 응답하여 불휘발성 메모리 장치(20)의 대응되는 영역에 저장한다. 플래시 변환 계층(140)을 이용하여, 본 발명의 컴퓨팅 시스템(도 1 참조, 1)은 데이터의 구역성에 따라 데이터가 저장되는 공간을 물리적으로 구분하므로 가비지 콜렉션 동작을 감소시킬 수 있다. 컴퓨팅 시스템(1)은 데이터 처리시 요구되는 가비지 콜렉션 동작이 적으므로 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.
도 9는 본 발명에 의한 불휘발성 메모리 장치의 데이터 저장 동작을 설명하기 위한 도면이다. 본 실시예에서, ID는 호스트(도 1 참조, 10)로부터 ContextID의 형태로 전송된다. 데이터에 대한 쓰기 요청이 발생되면, 불휘발성 메모리 장치(도 1 참조, 20)는 데이터와 함께 제공되는 ID를 인식한다.
불휘발성 메모리 장치(20)는 복수의 불휘발성 메모리들(도 1 참조, 22_1~22_N)을 포함한다. 복수의 불휘발성 메모리들(22_1~22_N)은 제 1 영역 내지 제 5 영역(AREA1~AREA5)을 포함할 수 있다. 각 영역을은 복수의 물리 블록들을 포함할 수 있다. 각 영역은 각 ID에 대응된다. 예를 들어, 제 1 영역(AREA1)은 ID 0에 대응될 수 있다.
불휘발성 메모리 장치(20)는 제공된 데이터를 ID를 참조하여 할당된 영역에 저장한다. 예를 들어, 불휘발성 메모리 장치(20)는 ID 1을 가지는 데이터의 물리 주소를 제 2 영역(AREA)에 포함되는 영역에 매핑하고, 데이터를 제 2 영역(AREA)에 저장한다.
본 발명의 불휘발성 메모리 장치(20)는 데이터의 구역성에 따라 데이터가 저장되는 공간을 물리적으로 구분하므로 가비지 콜렉션 동작을 감소시킬 수 있다. 불휘발성 메모리 장치(20)는 데이터 처리시 요구되는 가비지 콜렉션 동작이 적으므로 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.
도 10 내지 도 12는 본 발명에 의한 플래시 변환 계층을 적용하여 다양한 어플리케이션을 실행한 결과를 도시하는 그래프이다.
도 10은 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 생성된 제로 코스트 블록(Zero Block Cost)의 수를 도시하는 그래프이다. 제로 코스트 블록은 모든 페이지가 무효화되어 무효 블록(Invalid Block)으로 전환되어, 복사 동작 없이 소거될 수 있는 블록이다. 제로 코스트 블록의 수가 많을 수록 요구되는 복사 동작의 수가 감소되므로 높은 효율을 가진다.
도 11은 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 플래시 변환 계층에 요구되는 수행 시간을 도시하는 그래프이다. 본 발명에 의한 플래시 변환 계층을 적용하면 가비지 콜렉션 동작이 감소되므로, 수행 시간이 개선될 수 있다.
도 12는 기존의 플래시 변환 계층(HC-FTL) 및 본 발명에 의한 플래시 변환 계층을 적용하여 어플리케이션을 실행했을 때, 물리 블록에 대한 소거 동작의 수를 도시하는 그래프이다. 본 발명에 의한 플래시 변환 계층을 적용하면, 무효화 페이지가 특정 물리 블록들로 집중되어 가비지 콜렉션 동작이 감소되므로, 소거 동작의 수가 감소될 수 있다.
도 13은 본 발명의 실시예에 의한 불휘발성 메모리 장치의 데이터 처리 방법을 도시하는 순서도이다.
S110 단계에서, 호스트로부터 쓰기 요청이 제공된다. 호스트는 불휘발성 메모리 장치로 쓰기 커멘드, 쓰기 요청된 데이터의 파일 데이터, 논리 어드레스 및 카테고리에 대응되는 ID를 제공할 수 있다.
S120 단계에서, 쓰기 요청된 데이터의 카테고리가 ID를 이용하여 인식된다. 데이터는 지역성 및 저장 특성에 따라 미리 지정된 카테고리로 분류될 수 있다. 예를 들어, 데이터는 생성 및 삭제 빈도가 높은, 즉 짧은 생명 주기(Life Cycle)를 가지는 파일들을 포함하는 제 1 카테고리, 업데이트 빈도가 높은 파일들을 포함하는 제 2 카테고리, 라운드-로빈 형태로 논리 주소가 할당되는 파일들을 포함하는 제 3 카테고리, 그리고 나머지 파일들을 포함하는 제 4 카테고리로 분류될 수 있다.
S130 단계에서, 인식된 데이터의 카테고리를 참조하여, 제공된 데이터의 논리 어드레스가 각 카테고리에 할당된 물리 영역의 물리 어드레스에 매핑된다. 예를 들어, 불휘발성 메모리 장치는 제 1 내지 제 4 카테고리에 대응되는 제 1 내지 제 4 영역을 포함할 수 있다. 불휘발성 메모리 장치의 플래시 변환 계층은 데이터가 카테고리에 대응되는 영역에 저장되도록 매핑할 수 있다.
S140 단계에서, S130 단계의 매핑 결과를 참조하여, 데이터가 할당된 영역에 쓰여진다.
본 발명의 실시예에 의한 불휘발성 메모리 장치는, 데이터를 저장 특성에 기초하여 분류된 카테고리에 따라 데이터가 저장되는 영역을 구분하여 관리하므로 데이터 처리 효율이 개선된다.
도 14는 본 발명의 실시예에 의한 컴퓨팅 시스템(1)을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 14를 참조하면, SSD 시스템(1000)은 호스트(1100)와 SSD(1200)를 포함한다. 호스트(1100)는 호스트 인터페이스(1121), 호스트 컨트롤러(1120), 그리고 디램(1130)을 포함한다.
호스트(1100)는 SSD(1200)에 데이터를 쓰거나, SSD(1200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(1120)는 커맨드, 어드레스, 제어 신호, 파일의 카테고리를 나타내는 ID 등의 신호(SGL)를 호스트 인터페이스(1121)를 통해 SSD(1200)로 전송한다. 디램(1130)은 호스트(1100)의 메인 메모리이다.
SSD(1200)는 호스트 인터페이스(1211)를 통해 호스트(1100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 1221)를 통해 전원을 입력받는다. SSD(1200)는 복수의 불휘발성 메모리(1201~120n), SSD 컨트롤러(1210), 그리고 보조 전원 장치(1220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(1201~120n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(1201~120n)는 SSD(1200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(1201~120n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(1210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(1210)는 호스트 인터페이스(1211)를 통해 호스트(1100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. 또한 신호(SGL)에는 쓰기 요청된 파일의 카테고리를 나타내는 ID가 포함될 수 있다.
SSD 컨트롤러(1210)는 호스트(1100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다.
보조 전원 장치(1220)는 전원 커넥터(1221)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1220)는 호스트(1100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(1220)는 SSD(1200) 내에 위치할 수도 있고, SSD(1200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(1220)는 메인 보드에 위치하며, SSD(1200)에 보조 전원을 제공할 수도 있다.
SSD 시스템(1000)은 쓰기 요청된 데이터의 구역성에 따라 데이터가 저장되는 공간을 물리적으로 구분하므로, 가비지 콜렉션 동작을 감소시킬 수 있다. SSD 시스템(1000)은 데이터 처리시 요구되는 가비지 콜렉션 동작이 적으므로 적은 소거 동작 및 빠른 속도로 데이터를 처리할 수 있다.
도 15는 본 발명의 실시예에 의한 불휘발성 메모리 장치를 메모리 카드(memory card)에 적용한 블록도이다. 메모리 카드(2000)는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 15를 참조하면, 메모리 카드(2000)는 외부와의 인터페이스를 수행하는 인터페이스부(2100), 버퍼 메모리를 갖고 메모리 카드(2000)의 동작을 제어하는 컨트롤러(2200), 본 발명의 실시예들에 따른 불휘발성 메모리 장치(2300)를 적어도 하나 포함할 수 있다. 컨트롤러(2200)는 프로세서로서, 불휘발성 메모리 장치(2300)의 쓰기 동작 및 읽기 동작을 제어할 수 있다. 컨트롤러(2200)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 비휘발성 메모리 장치(2300) 및 인터페이스부(2100)와 커플링되어 있다.
인터페이스부(2100)는 쓰기 요청시, 외부로부터 데이터의 카테고리에 대응되는 ID를 제공받는다. 컨트롤러(2200)는 플래시 변환 계층을 이용하여, 데이터의 카테고리에 응답하여 데이터가 쓰여지는 영역을 구분하여 관리할 수 있다. 메모리 카드(2000)는 개선된 데이터 처리 성능, 특히 개선된 쓰기 성능을 얻을 수 있다.
도 16은 도 15의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다. 도 16을 참조하면, 메모리 카드(2000)는 (a) 비디오 카메라, (b) 텔레비전, (c) 오디오 장치, (d) 게임장치, (e) 전자 음악 장치, (f) 휴대폰, (g) 컴퓨터, (h) PDA(Personal Digital Assistant), (i) 보이스 레코더(voice recorder), (j) PC 카드 등에 사용될 수 있다.
본 발명에 따른 불휘발성 메모리 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 불휘발성 메모리 장치는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 호스트, 불휘발성 메모리 장치 및 컨트롤러의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
110: 어플리케이션
120: 파일 시스템
130: 카테고리 분류 드라이버
140: 플래시 변환 계층
150: 불휘발성 메모리 장치

Claims (10)

  1. 호스트로부터 쓰기 요청된 데이터 및 그것의 카테고리 정보를 제공받는 불휘발성 메모리 장치에 있어서:
    플래시 변환 계층을 로드하기 위한 메모리;
    상기 메모리에 로드된 플래시 변환 계층을 실행하기 위한 컨트롤러; 및
    제 1 및 제 2 메모리 영역을 포함하는 불휘발성 메모리를 포함하고,
    상기 플래시 변환 계층은 상기 카테고리 정보를 참조하여, 상기 제 1 및 제 2 메모리 영역 중 하나의 영역에 상기 쓰기 요청된 데이터가 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 물리 주소로 매핑하며,
    상기 카테고리 정보는, 상기 쓰기 요청된 데이터의 논리 주소 할당 방식을 포함하는 저장 특성을 기초로 하여 결정되는 불휘발성 메모리 장치.
  2. 제 1항에 있어서,
    상기 저장 특성은 상기 쓰기 요청된 데이터의 업데이트 빈도 및 생명 주기를 더 포함하는 불휘발성 메모리 장치.
  3. 제 2항에 있어서,
    상기 쓰기 요청된 데이터가 분류되는 카테고리는
    미리 지정된 시간 보다 짧은 생명 주기를 가지는 파일들을 포함하는 제 1 카테고리; 및
    미리 지정된 빈도 보다 업데이트 빈도가 높은 파일을 포함하는 제 2 카테고리를 포함하며,
    상기 플래시 변환 계층은 상기 카테고리 정보를 참조하여, 상기 쓰기 요청된 데이터가 상기 제 1 카테고리로 분류되면 상기 제 1 메모리 영역에, 상기 제 2 카테고리로 분류되면 상기 제 2 메모리 영역에 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 물리 주소로 매핑하는 불휘발성 메모리 장치.
  4. 제 3항에 있어서,
    상기 제 1 카테고리는 임시 파일을 포함하는 불휘발성 메모리 장치.
  5. 제 3항에 있어서,
    상기 불휘발성 메모리는 제 3 메모리 영역을 더 포함하고,
    상기 쓰기 요청된 데이터가 분류되는 카테고리는 라운드-로빈 형식으로 논리 주소가 할당되는 파일을 포함하는 제 3 카테고리를 더 포함하며,
    상기 플래시 변환 계층은 상기 쓰기 요청된 데이터가 상기 제 3 카테고리로 분류되면 상기 제 3 메모리 영역에 저장되도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 물리 주소로 매핑하는 불휘발성 메모리 장치.
  6. 제 5항에 있어서,
    상기 제 3 카테고리는 파일 시스템의 저널 파일을 포함하는 불휘발성 메모리 장치.
  7. 불휘발성 메모리 장치와 연결되는 전자 장치에 있어서:
    상기 불휘발성 메모리 장치에 저장될 데이터의 저장 특성을 기초로 하여 쓰기 요청할 데이터를 미리 지정된 카테고리로 분류하고, 분류한 카테고리 정보를 상기 쓰기 요청할 데이터와 함께 불휘발성 메모리 장치에 제공하기 위한 카테고리 분류 드라이버;
    상기 카테고리 분류 드라이버를 저장하기 위한 메모리; 및
    상기 카테고리 분류 드라이버를 실행하기 위한 컨트롤러를 포함하되,
    상기 카테고리 분류 드라이버는 복수의 카테고리를 미리 지정하며, 상기 복수의 카테고리 중 적어도 하나에는 라운드-로빈 형식으로 논리 주소가 지정되는 파일이 포함되는 전자 장치.
  8. 제 7항에 있어서,
    상기 복수의 카테고리는 미리 지정된 시간 보다 짧은 생명 주기를 가지는 파일을 포함하는 제 1 카테고리;
    미리 지정된 빈도 보다 업데이트 빈도가 높은 파일을 포함하는 제 2 카테고리; 및
    라운드-로빈 형태로 논리 주소가 지정되는 파일을 포함하는 제 3 카테고리를 포함하는 전자 장치.
  9. 제 8항에 있어서,
    상기 제 2 카테고리는 데이터 베이스 파일 및 메타 데이터를 포함하고, 상기 제 3 카테고리는 파일 시스템의 저널 파일을 포함하는 전자 장치.
  10. 제 8항에 있어서,
    상기 전자 장치는 상기 불휘발성 메모리 장치와 eMMC 인터페이스 규격을 이용하여 정보를 교환하며, 상기 카테고리 정보는 상기 eMMC 인터페이스 규격의 context ID를 이용하여 상기 불휘발성 메모리 장치에 제공되는 전자 장치.
KR1020130026881A 2013-03-13 2013-03-13 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템 KR20140112303A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130026881A KR20140112303A (ko) 2013-03-13 2013-03-13 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
US14/202,554 US20140281172A1 (en) 2013-03-13 2014-03-10 Nonvolatile memory device, electronic device and computing system including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130026881A KR20140112303A (ko) 2013-03-13 2013-03-13 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20140112303A true KR20140112303A (ko) 2014-09-23

Family

ID=51533847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130026881A KR20140112303A (ko) 2013-03-13 2013-03-13 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템

Country Status (2)

Country Link
US (1) US20140281172A1 (ko)
KR (1) KR20140112303A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017021804A (ja) * 2015-07-13 2017-01-26 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法
US11249951B2 (en) 2015-07-13 2022-02-15 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
CN114911415A (zh) * 2021-02-08 2022-08-16 丰田自动车株式会社 电子控制单元、方法以及存储介质
KR20220125895A (ko) * 2021-03-05 2022-09-15 동국대학교 산학협력단 Ssd 멀티스트림 운용을 위한 스트림 분할 방법
US11507318B2 (en) 2020-10-20 2022-11-22 Research & Business Foundation Sungkyunkwan University Storage device, for allocating physical space for logical address before receiving write request, operating method thereof, and storage system including the same

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9513815B2 (en) * 2013-12-19 2016-12-06 Macronix International Co., Ltd. Memory management based on usage specifications
KR102397582B1 (ko) 2015-06-22 2022-05-13 삼성전자주식회사 데이터 저장 장치, 이를 포함하는 데이터 처리 시스템, 및 이의 작동 방법
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
KR102449192B1 (ko) 2015-09-10 2022-09-29 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
US9880772B2 (en) * 2015-09-21 2018-01-30 Micron Technology, Inc. Systems and methods for providing file information in a memory system protocol
KR20170060206A (ko) * 2015-11-23 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102706118B1 (ko) 2016-09-22 2024-09-19 삼성전자주식회사 직렬로 연결되는 스토리지 장치들의 상이한 특성들을 보상하도록 구성되는 전자 장치, 및 그것에 포함되는 스토리지 장치
KR20180038109A (ko) 2016-10-05 2018-04-16 삼성전자주식회사 모니터링 회로를 포함하는 전자 장치 및 그것에 포함되는 스토리지 장치
KR102588113B1 (ko) * 2016-11-07 2023-10-16 삼성전자주식회사 스토리지 장치를 포함하는 사용자 장치 및 그것의 트림 관리 방법
US10891239B2 (en) * 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
KR102549545B1 (ko) * 2018-03-22 2023-06-29 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10552316B2 (en) * 2018-06-29 2020-02-04 Micron Technology, Inc. Controlling NAND operation latency

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078508A1 (en) * 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
JP4596902B2 (ja) * 2004-12-10 2010-12-15 株式会社日立製作所 ストレージ管理装置、計算機システム、ストレージ管理方法及びストレージ管理プログラム
US8135900B2 (en) * 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US8850114B2 (en) * 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US9183136B2 (en) * 2012-05-16 2015-11-10 Hitachi, Ltd. Storage control apparatus and storage control method
US8910017B2 (en) * 2012-07-02 2014-12-09 Sandisk Technologies Inc. Flash memory with random partition

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017021804A (ja) * 2015-07-13 2017-01-26 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法
US11249951B2 (en) 2015-07-13 2022-02-15 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US11989160B2 (en) 2015-07-13 2024-05-21 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US11507318B2 (en) 2020-10-20 2022-11-22 Research & Business Foundation Sungkyunkwan University Storage device, for allocating physical space for logical address before receiving write request, operating method thereof, and storage system including the same
CN114911415A (zh) * 2021-02-08 2022-08-16 丰田自动车株式会社 电子控制单元、方法以及存储介质
KR20220125895A (ko) * 2021-03-05 2022-09-15 동국대학교 산학협력단 Ssd 멀티스트림 운용을 위한 스트림 분할 방법

Also Published As

Publication number Publication date
US20140281172A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US10789162B2 (en) Memory system and method for controlling nonvolatile memory
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
KR20140112303A (ko) 불휘발성 메모리 장치, 전자 장치 그리고 그것을 포함하는 컴퓨팅 시스템
US10055147B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US9489297B2 (en) Pregroomer for storage array
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8626987B2 (en) Flash memory system and defragmentation method
CN114840138A (zh) 基于存储器装置的区域的文件系统存储分配
KR20170125178A (ko) Raid 스토리지 장치 및 그것의 관리 방법
US10956071B2 (en) Container key value store for data storage devices
US11747979B2 (en) Electronic device, computer system, and control method
KR20200068941A (ko) 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR20200016075A (ko) 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
KR100854032B1 (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US11200178B2 (en) Apparatus and method for transmitting map data in memory system
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
US20100318726A1 (en) Memory system and memory system managing method
US20170351428A1 (en) Performance penalty avoidance for solid state drive
CN112684976A (zh) 用于执行迁移操作的存储器系统及其操作方法
KR20200122685A (ko) 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법
CN112306898A (zh) 存储设备、其操作方法及包括其的电子设备
KR102691776B1 (ko) 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치
KR20210158043A (ko) 스트림 분류 번호에 따른 데이터 분류 스토리지 장치 및 그 동작 방법
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법

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