KR20170099437A - 메모리 시스템 및 이의 동작 방법 - Google Patents

메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20170099437A
KR20170099437A KR1020160021167A KR20160021167A KR20170099437A KR 20170099437 A KR20170099437 A KR 20170099437A KR 1020160021167 A KR1020160021167 A KR 1020160021167A KR 20160021167 A KR20160021167 A KR 20160021167A KR 20170099437 A KR20170099437 A KR 20170099437A
Authority
KR
South Korea
Prior art keywords
memory
area
logical
region
read
Prior art date
Application number
KR1020160021167A
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 KR1020160021167A priority Critical patent/KR20170099437A/ko
Priority to US15/192,786 priority patent/US9996292B2/en
Priority to CN201610855655.6A priority patent/CN107102816B/zh
Publication of KR20170099437A publication Critical patent/KR20170099437A/ko

Links

Images

Classifications

    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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]
    • 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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

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)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 시스템은, 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역, 및 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역을 포함하는 비휘발성 메모리; 및 상기 비휘발성 메모리를 제어하기 위한 메모리 콘트롤러를 포함하고, 상기 메모리 콘트롤러는 다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수를 카운트하는 리드/라이트 카운터; 상기 리드/라이트 카운터의 카운팅 결과를 이용해 상기 다수의 논리적 클러스터들을 상기 노멀 영역, 상기 핫 영역 및 상기 콜드 영역 중 하나의 영역으로 맵핑하기 위한 영역 선택기; 및 상기 영역 선택기에 의해 맵핑된 맵핑 정보를 저장하기 위한 클러스터 맵핑 테이블을 포함할 수 있다.

Description

메모리 시스템 및 이의 동작 방법 {MEMORY SYSTEM AND OPERATION METHOD OF THE SAME}
본 특허 문헌은, 비휘발성 메모리와 메모리 콘트롤러를 포함하는 메모리 시스템에 관한 것이다.
일반적으로 반도체 메모리는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등과 같은 휘발성 메모리 장치(volatile memory)와 PROM(Programmable Read Only Memory), EPROM(Erasable PROM), EEPROM(Electrically EPROM), 플래시 메모리(flash memory) 등과 같은 비휘발성 메모리(nonvolatile memory)로 구분된다. 휘발성 메모리와 비휘발성 메모리를 구분하는 가장 큰 특징은 일정 시간 이후 메모리 셀에 저장된 데이터의 보존 여부이다.
다시 말하면, 휘발성 메모리는 일정 시간 이후 메모리 셀에 저장된 데이터가 보존되지 않지만, 비휘발성 메모리는 일정 시간 이후 메모리 셀에 저장된 데이터가 보존된다. 따라서, 휘발성 메모리의 경우 데이터를 보존하기 위하여 리프레시(refresh) 동작이 필수로 이루어져야 하며, 비휘발성 메모리의 경우 이러한 리프레시 동작이 필요 없다. 비휘발성 메모리의 이러한 특징은 저전력화 및 고집적화에 적합하기 때문에 요즈음 휴대용 장치의 저장 매체로 널리 사용되고 있다.
한편, 비휘발성 메모리 장치 중 플래시 메모리 장치는 프로그래밍 동작(programming operation)과 소거 동작(erasing operation)을 통해 메모리 셀에 데이터를 저장한다. 여기서, 프로그램(라이트) 동작은 메모리 셀을 구성하는 트랜지스터의 플로팅 게이트(floating gate)에 전자를 축적하기 위한 동작을 의미하며, 소거 동작은 트랜지스터의 플로팅 게이트에 축적된 전자를 기판으로 방출하기 위한 동작을 의미한다. 플래시 메모리 장치는 이러한 동작을 통해 플로팅 게이트에 전자를 축적 또는 방출하고 각 메모리 셀은 '0' 데이터 또는 '1' 데이터에 대응하는 데이터 분포도를 가지게 된다.
이어서, 위에서 설명하였듯이 하나의 메모리 셀에는 '0' 또는 '1' 의 데이터가 저장된다. 즉, 하나의 메모리 셀에는 하나의 비트 데이터가 저장되며 이 메모리 셀을 싱글 레벨 셀(single level cell)이라 한다. 요즘에는 하나의 메모리 셀에 하나 이상의 비트 데이터를 저장하는 방식이 채택되고 있으며, 이 메모리 셀을 멀티 레벨 셀(multi level cell)이라 한다. 싱글 레벨 셀의 경우 메모리 셀에 저장된 '0', '1' 의 데이터를 판단하기 위하여 하나의 판단 전압이 필요하며, 멀티 레벨 셀의 경우 메모리 셀에 저장된 예컨대, '00', '01', '10', '11' 의 데이터를 판단하기 위하여 다수의 판단 전압이 필요하다.
싱글 레벨 셀의 경우 메모리 셀의 데이터를 리드하거나 메모리 셀에 데이터를 라이트하는데 비교적 적은 시간이 소모되지만, 멀티 레벨 셀의 경우 메모리 셀의 데이터를 리드하거나 메모리 셀에 데이터를 라이트하는데 싱글 레벨 셀의 경우보다 몇 배 이상의 시간이 소모된다.
본 발명의 실시예들은 멀티 레벨 셀 방식의 비휘발성 메모리의 용량을 손해보지 않으면서도, 비휘발성 메모리의 성능을 높이는 기술을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역, 및 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역을 포함하는 비휘발성 메모리; 및 상기 비휘발성 메모리를 제어하기 위한 메모리 콘트롤러를 포함하고, 상기 메모리 콘트롤러는 다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수를 카운트하는 리드/라이트 카운터; 상기 리드/라이트 카운터의 카운팅 결과를 이용해 상기 다수의 논리적 클러스터들을 상기 노멀 영역, 상기 핫 영역 및 상기 콜드 영역 중 하나의 영역으로 맵핑하기 위한 영역 선택기; 및 상기 영역 선택기에 의해 맵핑된 맵핑 정보를 저장하기 위한 클러스터 맵핑 테이블을 포함할 수 있다.
상기 핫 영역과 상기 콜드 영역은 메모리 셀들을 공유하고, 공유된 메모리 셀들의 MSB의 집합이 상기 핫 영역이고, 상기 공유된 메모리 셀들의 LSB의 집합이 상기 콜드 영역일 수 있다.
상기 영역 선택기는 라이트 동작의 회수가 높은 논리적 클러스터를 상기 노멀 영역으로 맵핑하고, 라이트 동작의 회수가 낮고 리드 동작의 회수가 높은 논리적 클러스터를 상기 핫 영역으로 맵핑하고, 라이트 동작의 회수가 낮고 리드 동작의 회수가 낮은 논리적 클러스터를 상기 콜드 영역으로 맵핑할 수 있다.
상기 영역 선택기는 라이트 동작의 회수가 제1임계값 이상인 논리적 클러스터를 상기 노멀 영역으로 맵핑하고, 라이트 동작의 회수가 상기 제1임계값 미만인 클러스터 중 리드 동작의 회수가 제2임계값 이상이면서 (리드 동작 회수/라이트 동작 회수)가 제3임계값 이상인 논리적 클러스터를 상기 핫 영역으로 맵핑하고, 라이트 동작의 회수가 상기 제1임계값 미만인 클러스터 중 리드 동작의 회수가 제2임계값 이상이면서 (리드 동작 회수/라이트 동작 회수)가 제3임계값 미만인 논리적 클러스터를 상기 콜드 영역으로 맵핑할 수 있다.
상기 다수의 논리적 클러스트들은 초기값으로 상기 노멀 영역으로 맵핑될 수 있다.
상기 메모리 콘트롤러는 상기 영역 선택기에 의해 영역 맵핑이 변경된 논리적 클러스터의 데이터를 변경된 영역으로 이미그레이션하기 위한 이미그레이션 매니저를 더 포함할 수 있다.
상기 리드/라이트 카운터에 의해 카운팅된 다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수는 일정 주기마다 감소될 수 있다.
상기 비휘발성 메모리 내에서 상기 노멀 영역, 상기 핫 영역 및 상기 콜드 영역의 용량은 조절 가능할 수 있다.
상기 다수의 논리적 클러스터들 각각은 하나 이상의 논리적 블록들을 포함할 수 있다.
상기 메모리 콘트롤러는 호스트와의 통신을 위한 호스트 인터페이스; 플래시 변환 계층; 및 상기 비휘발성 메모리와의 통신을 위한 메모리 인터페이스를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 콘트롤러와 비휘발성 메모리를 포함하는 메모리 시스템의 동작 방법은, 호스트로부터 특정 논리 페이지에 대한 리드 동작이 요청되는 단계; 상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리 클러스터가 맵핑된 상기 비휘발성 메모리 내의 영역이 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역인지, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역인지, 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역인지를 판단하는 단계; 상기 노멀 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 노멀 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 MSB와 LSB를 리드하는 단계; 상기 핫 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 핫 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 MSB를 리드하는 단계; 상기 콜드 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 콜드 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 LSB를 리드하는 단계; 및 상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리적 클러스터에 대한 리드 동작 카운트 값을 증가시키는 단계를 포함할 수 있다.
상기 동작 방법은, 상기 메모리 콘트롤러가, 논리적 클러스터들의 상기 비휘발성 메모리 내의 영역들에 대한 맵핑의 변경이 필요한지 확인하는 단계; 상기 메모리 콘트롤러가, 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑하는 단계; 및 상기 메모리 콘트롤러의 제어에 따라 상기 비휘발성 메모리 내에서, 맵핑이 변경된 논리적 클러스터의 데이터를 이미그레이션하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 메모리 콘트롤러와 비휘발성 메모리를 포함하는 메모리 시스템의 동작 방법은, 호스트로부터 특정 논리 페이지에 대한 라이트 동작이 요청되는 단계; 상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리 클러스터가 맵핑된 상기 비휘발성 메모리 내의 영역이 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역인지, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역인지, 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역인지를 판단하는 단계; 상기 노멀 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 노멀 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 MSB와 LSB를 라이트하는 단계; 상기 핫 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 핫 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 MSB를 라이트하는 단계; 상기 콜드 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 콜드 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 LSB를 리드하는 단계; 및 상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리적 클러스터에 대한 라이트 동작 카운트 값을 증가시키는 단계를 포함할 수 있다.
상기 동작 방법은, 상기 메모리 콘트롤러가, 논리적 클러스터들의 상기 비휘발성 메모리 내의 영역들에 대한 맵핑의 변경이 필요한지 확인하는 단계; 상기 메모리 콘트롤러가, 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑하는 단계; 및 상기 메모리 콘트롤러의 제어에 따라 상기 비휘발성 메모리 내에서, 맵핑이 변경된 논리적 클러스터의 데이터를 이미그레이션하는 단계를 더 포함할 수 있다.
본 발명의 실시예들에 따르면, 멀티 레벨 셀 방식의 비휘발성 메모리의 용량을 손해보지 않으면서도, 비휘발성 메모리의 성능을 높일 수 있다.
도 1은 비휘발성 메모리에서의 노멀 영역, 핫 영역 및 콜드 영역을 설명하기 위한 도면.
도 2는 본 발명의 일실시예에 따른 메모리 시스템(200)의 구성도.
도 3은 메모리 시스템(200)의 리드 동작을 도시한 도면.
도 4는 메모리 시스템(200)의 라이트 동작을 도시한 도면.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성 요소들에 참조 번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
먼저, 이해를 돕기 위해 하기 실시예들에서 사용되는 용어에 대해 알아보기로 한다.
페이지(Page): 페이지는 비휘발성 메모리에서 리드(read)와 라이트(write, 프로그램이라고도 함) 동작의 단위일 수 있다. 논리적(logical) 페이지와 물리적(physical) 페이지가 존재할 수 있는데, 하나의 논리적 페이지는 비휘발성 메모리 내의 하나의 물리적 페이지에 맵핑될 수 있다.
블록(Block): 블록은 비휘발성 메모리에서 이레이즈(erase) 동작의 단위일 수 있다. 하나의 블록에는 다수개의 페이지가 포함될 수 있다. 논리적 블록과 물리적 블록이 존재할 수 있는데, 하나의 논리적 블록은 비휘발성 메모리 내의 하나의 물리적 블록에 맵핑될 수 있다.
논리적 클러스터(Cluster): 논리적 클러스터는 적어도 하나 이상의 논리적 블록의 집합일 수 있다. 하기의 실시예들에서는 논리적 클러스터들 마다의 리드 및 라이트 동작 회수가 카운트되고, 이에 의해 논리적 클러스터들이 여러 영역들 중 하나의 영역으로 맵핑될 수 있다.
노멀 영역(Normal Region): 노멀 영역은 멀티 레벨 셀 방식의 비휘발성 메모리에서 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 동시에 억세스되는 영역일 수 있다. 노멀 영역은 일반적인 멀티 레벨 셀(MLC: Multi Level Cell) 방식의 비휘발성 메모리와 동일하게 동작할 수 있다.
핫 영역(Hot Region): 핫 영역은 멀티 레벨 셀 방식의 비휘발성 메모리에서 MSB만이 억세스되는 영역일 수 있다. 핫 영역의 리드시에는 빠르게 리드 가능한 MSB만이 억세스되므로, 싱글 레벨 셀 방식의 비휘발성 메모리와 같은 빠른 동작이 가능할 수 있다.
콜드 영역(Cold Region): 콜드 영역은 멀티 레벨 셀 방식의 비휘발성 메모리에서 LSB만이 억세스되는 영역일 수 있다. 콜드 영역에서는 LSB만이 억세스되므로, 콜드 영역은 핫 영역 보다 느리게 동작할 수 있다.
도 1은 비휘발성 메모리에서의 노멀 영역, 핫 영역 및 콜드 영역을 설명하기 위한 도면이다. 설명의 편의를 위해, 도 1에서는 비휘발성 메모리가 8개의 메모리 셀들을 포함하고 페이지 사이즈가 2비트라고 가정하기로 한다.
노멀 영역(110)은 4개의 메모리 셀들(MC0~MC3)을 포함할 수 있다. 하나의 메모리 셀에는 2비트의 데이터가 저장 가능하므로, 노멀 영역(110)에서는 메모리 셀들(MC0~MC3) 각각이 하나의 페이지일 수 있다.
핫 영역(120)은 4개의 메모리 셀들(MC4~MC7)의 MSB들을 포함할 수 있다. 핫 영역에서는 메모리 셀(MC4)과 메모리 셀(MC5)의 MSB가 하나의 페이지이고, 메모리 셀(MC6)과 메모리 셀(MC7)의 MSB가 하나의 페이지일 수 있다.
콜드 영역(130)은 4개의 메모리 셀들(MC4~MC7)의 LSB들을 포함할 수 있다. 콜드 영역에서는 메모리 셀(MC4)과 메모리 셀(MC5)의 LSB가 하나의 페이지이고, 메모리 셀(MC6)과 메모리 셀(MC7)의 LSB가 하나의 페이지일 수 있다.
핫 영역(120)과 콜드 영역(130)은 동일한 메모리 셀들(MC4~MC7)을 공유할 수 있으며, 공유하는 메모리 셀들(MC4~MC7)의 MSB가 핫 영역(120)이되고 LSB가 콜드 영역(130)이 될 수 있다. 그러므로, 핫 영역(120)과 콜드 영역(130)은 동일한 용량을 가질 수 있다.
메모리 셀에 저장되는 2비트의 데이터 중 MSB와 LSB는 상대적인 개념일 수 있는데, 메모리 셀에 저장되는 2비트의 데이터 중 한 번에 리드 가능한 비트를 MSB라 하고 그렇지 않은 비트를 LSB라 하기로 한다. 즉, 메모리 셀에 저장된 2비트의 데이터 중 빠르게 리드하는 것이 가능한 비트가 MSB이고 그렇지 않은 비트가 LSB가 될 수 있다.
도 1에서는 비휘발성 메모리가 8개의 메모리 셀을 포함하고 페이지 사이즈가 2비트인 것을 예시했지만, 이는 간단한 설명을 위한 것이며, 비휘발성 메모리는 수십에서 수백 Gb(Giga bit) 이상의 용량을 가지고 페이지 사이즈가 4KB(Kilo Byte) 이상일 수 있음은 당연하다.
도 2는 본 발명의 일실시예에 따른 메모리 시스템(200)의 구성도이다.
도 2를 참조하면, 메모리 시스템(200)은, 메모리 콘트롤러(210)와 비휘발성 메모리(250)를 포함할 수 있다.
비휘발성 메모리(250)는 노멀 영역, 핫 영역 및 콜드 영역을 포함할 수 있다. 앞서 설명한 바와 같이, 노멀 영역은 MSB와 LSB가 동시에 억세시되는 영역, 핫 영역은 MSB만 억세스되는 영역, 콜드 영역은 LSB만 억세스되는 영역일 수 있다.
메모리 콘트롤러(210)는 비휘발성 메모리(250)를 제어할 수 있다. 메모리 콘트롤러(210)는 호스트 인터페이스(host interface)(211), 플래시 변환 계층(FTL: Flash Translation Layer)(213), 메모리 인터페이스(memory interface)(215), 리드/라이트 카운터(read/write counter)(217), 영역 선택기(region selector)(219), 클러스터 맵핑 테이블(cluster mapping table)(221) 및 이미그레이션 매니저(immigration manager)(223)를 포함할 수 있다.
호스트 인터페이스(211)는 호스트(HOST)와 메모리 콘트롤러(210) 간의 통신을 위한 인터페이스일 수 있다.
플래시 변환 계층(213)은 비휘발성 메모리(250)를 관리하는 모듈일 수 있다. 비휘발성 메모리(250)는 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 비휘발성 메모리(250)에 데이터를 쓰기 위해서는 이레이즈 동작이 선행되고, 라이트 되는 데이터의 단위(페이지)보다 이레이즈 되는 데이터의 단위(블록)이 크다는 특징이 있다. 비휘발성 메모리(250)의 이러한 특징으로 인해 기존의 하드 디스크용 파일 시스템(file system)을 그대로 사용하는 것이 어려운데, 플래시 변환 계층(213)이 파일 시스템과 비휘발성 메모리(250) 간의 호환된 동작이 가능하게 할 수 있다.
메모리 인터페이스(215)는 메모리 콘트롤러(210)와 비휘발성 메모리(250) 간의 통신을 위한 인터페이스일 수 있다.
리드/라이트 카운터(217)는 다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수를 카운팅할 수 있다. 다수의 논리적 클러스터들 각각은 다수의 논리적 블록들을 포함할 수 있다. 리드/라이트 카운터(217)에 의해 카운팅된 논리적 클러스터들 마다의 리드 및 라이트 동작 회수는 영역 선택기(219)에서 사용될 수 있다. 지나치게 오래된 정보를 무시할 수 있도록, 리드/라이트 카운터(217)에서 논리적 클러스터들의 리드 및 라이트 동작의 회수는 일정 주기마다 감소될 수 있다. 예를 들어, 일정 시간이 경과 할 때마다 리드 및 라이트 동작의 회수가 20%씩 감소하거나, 리드 및 라이트 동작의 회수가 일정 값씩 감소 될 수 있다.
영역 선택기(219)는 리드/라이트 카운터(217)의 카운팅 결과를 이용해 다수의 논리적 클러스터들을 비휘발성 메모리(250)의 노멀 영역, 핫 영역 및 콜드 영역 중 하나의 영역으로 맵핑할 수 있다. 영역 선택기(219)는 다음의 [표 1]과 같은 조건으로 논리적 클러스터들을 영역들로 맵핑할 수 있다.

리드 동작 회수
많음 적음
라이트 동작 회수
많음 노멀 영역 노멀 영역
적음 핫 영역 콜드 영역
표 1을 참조하면, 라이트 동작 회수가 많은 논리적 클러스터들은 노멀 영역으로 맵핑될 수 있다. MSB만 억세스하거나 LSB만 억세스하는 방식은 라이트 동작에서는 오히려 속도가 느려질 수 있으므로 라이트 동작 회수가 많은 논리적 클러스터들은 노멀 영역으로 맵핑되는 것이다.
라이트 동작의 회수가 적고 리드 동작의 회수가 많은 논리적 클러스터들은 핫 영역으로 맵핑될 수 있다. 핫 영역에서는 MSB만 억세스되므로 리드 동작이 매우 빠르게 수행될 수 있다.
라이트 동작의 회수가 적고 리드 동작의 회수도 적은 논리적 클러스터들은 콜드 영역으로 맵핑될 수 있다. 라이트 동작과 리드 동작의 회수가 적은 논리적 클러스터들은 억세스 회수가 적으므로 콜드 영역으로 맵핑되더라도 비휘발성 메모리의 동작 성능을 거의 저하시키지 않을 수 있다.
리드 동작과 라이트 동작의 많고 적음에는 절대적인 기준이 적용될 수도 있고, 상대적인 기준이 적용될 수도 있다. 하기 (1)에서 (3)은 리드 동작과 라이트 동작의 많고 적음의 분류 기준의 예시를 나타낸다.
(1) 라이트 동작 회수가 많고 적음은 임계값 A(예, 1000번)를 기준으로 결정될 수 있다. 라이트 동작의 회수가 임계값 A 이상인 논리적 클러스터들은 라이트 동작 회수가 많은 논리적 클러스터가 되어 노멀 영역으로 맵핑될 수 있다. 그리고, 라이트 동작의 회수가 임계값 A 미안인 논리적 클러스터들은 라이트 동작 회수가 적은 클러스터가 될 수 있다.
(2) 라이트 동작의 회수가 임계값 A 미안인 논리적 클러스터들 중 리드 동작의 회수가 B(예, 500번) 이상이면서 리드 동작 회수를 라이트 동작 회수로 나눈 값이 임계값 C(예, 5) 이상인 논리적 클러스터들, 즉 (리드 동작 회수/라이트 동작 회수)가 임계값 C 이상인 논리적 클러스터들, 은 라이트 동작 회수가 적으면서 리드 동작 회수가 많은 논리적 클러스터가 되어 핫 영역으로 맵핑될 수 있다.
(3) 라이트 동작의 회수가 임계값 A 미안인 논리적 클러스터들 중 리드 동작의 회수가 B(예, 500번) 이상이면서 (리드 동작 회수/라이트 동작 회수)가 임계값 C 미만인 논리적 클러스터들은 라이트 동작 회수가 적으면서 리드 동작 회수가 적은 논리적 클러스터가 되어 콜드 영역으로 맵핑될 수 있다.
논리적 클러스터들은 초기값으로는 노멀 영역으로 맵핑되고, (1) 내지 (3)의 조건 만족시에 맵핑된 영역이 변경될 수 있다. 영역 선택기(219)는 주기적으로 (1) 내지 (3)의 조건의 만족 여부를 체크해 논리적 클러스터들의 영역들에 대한 맵핑을 변경할 수 있다.
클러스터 맵핑 테이블(221)은 영역 선택기(219)에 의해 맵핑된 맵핑 정보를 저장할 수 있다.
이미그레이션 매니저(223)는 영역 선택기(219)에 의해 영역에의 맵핑이 변경된 논리적 클러스터가 존재하는 경우에 해당 클러스터의 데이터를 새롭게 맵핑된 영역으로 이미그레이션할 수 있다.
비휘발성 메모리(250)에서 노멀 영역, 핫 영역 및 콜드 영역은 억세스를 어떠한 방식으로 하는지에 따라 나누어지는 것이므로, 메모리 시스템(200)의 동작 중에도 이들 영역들의 용량이 변경될 수 있다. 예를 들어, 메모리 시스템(200)의 동작 중에 노멀 영역이 줄어들고 핫 영역과 콜드 영역이 늘어나거나, 핫 영역과 콜드 영역이 줄어들고 노멀 영역이 늘어날 수 있다.
메모리 시스템(200)에서는 리드 동작은 빈번하게 수행되면서 라이트 동작은 상대적으로 덜 수행되는 논리적 클러스터들이 핫 영역에 맵핑되는 것에 의해, 해당 논리적 클러스터들에 대한 리드 동작이 싱글 레벨 셀 방식의 비휘발성 메모리에서처럼 빠르게 수행되고, 메모리 시스템(200)의 퍼포먼스가 향상될 수 있다.
도 3은 메모리 시스템(200)의 리드 동작을 도시한 도면이다.
도 3을 참조하면, 먼저 호스트(HOST)로부터 메모리 콘트롤러(210)로 특정 논리 페이지에 대한 리드 동작이 요청될 수 있다(S301).
클러스터 맵핑 테이블(221)을 이용해, 리드 동작이 요청된 논리 페이지가 속하는 논리적 클러스터가 맵핑된 비휘발성 메모리(250) 내의 영역이 노멀 영역인지, 핫 영역인지 또는 콜드 영역인지가 판단될 수 있다(S303).
단계(S303)에서 판단된 영역에서, 리드 동작이 요청된 논리 페이지에 대응하는 물리 페이지로부터 데이터가 리드될 수 있다(S305). 단계(S303)에서 판단된 영역이 노멀 영역인 경우에는, 리드 동작이 요청된 논리 페이지에 대응하는 메모리 셀들로부터 MSB와 LSB가 모두 리드될 수 있다. 단계(S303)에서 판단된 영역이 핫 영역인 경우에는, 리드 동작이 요청된 논리 페이지에 대응하는 메모리 셀들로부터 MSB가 리드될 수 있다. 단계(S303)에서 판단된 영역이 콜드 영역인 경우에는, 리드 동작이 요청된 논리 페이지에 대응하는 메모리 셀들로부터 LSB가 리드될 수 있다.
리드 동작이 수행된 이후에, 리드/라이트 카운터(217)는 리드 동작이 수행된 논리 페이지가 속하는 논리적 클러스터의 리드 동작 회수를 증가시킬 수 있다(S307).
이후에, 영역 선택기(219)에 의해 논리적 클러스터들의 비휘발성 메모리(250) 내의 영역들에 대한 맵핑의 변경이 필요한지가 확인될 수 있다(S309).
맵핑의 변경이 필요하다고 판단되는 경우에는, 영역 선택기(219)가 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑할 수 있다(S311).
그리고, 이미그레이션 매니저(223)에 의해 맵핑이 변경된 논리적 클러스터의 데이터가 이미그레이션될 수 있다(S313).
도 4는 메모리 시스템(200)의 라이트 동작을 도시한 도면이다.
도 4를 참조하면, 먼저 호스트(HOST)로부터 메모리 콘트롤러(210)로 특정 논리 페이지에 대한 라이트 동작이 요청될 수 있다(S401).
클러스터 맵핑 테이블(221)을 이용해, 라이트 동작이 요청된 논리 페이지가 속하는 논리적 클러스터가 맵핑된 비휘발성 메모리(250) 내의 영역이 노멀 영역인지, 핫 영역인지 또는 콜드 영역인지가 판단될 수 있다(S403).
단계(S403)에서 판단된 영역에서, 라이트 동작이 요청된 논리 페이지에 대응하는 물리 페이지에 라이트 데이터가 라이트될 수 있다(S405). 단계(S403)에서 판단된 영역이 노멀 영역인 경우에는, 라이트 동작이 요청된 논리 페이지에 대응하는 메모리 셀들의 MSB와 LSB에 라이트 데이터가 라이트될 수 있다. 단계(S403)에서 판단된 영역이 핫 영역인 경우에는, 라이트 동작이 요청된 논리 페이지에 대응하는 메모리 셀들의 MSB에 라이트 데이터가 라이트될 수 있다. 단계(S403)에서 판단된 영역이 콜드 영역인 경우에는, 라이트 동작이 요청된 논리 페이지에 대응하는 메모리 셀들의 LSB에 라이트 데이터가 라이트될 수 있다.
라이트 동작이 수행된 이후에, 리드/라이트 카운터(217)는 리드 동작이 수행된 논리 페이지가 속하는 논리적 클러스터의 라이트 동작 회수를 증가시킬 수 있다(S407).
이후에, 영역 선택기(219)에 의해 논리적 클러스터들의 비휘발성 메모리 내의 영역들에 대한 맵핑의 변경이 필요한지가 확인될 수 있다(S409).
맵핑의 변경이 필요하다고 판단된 경우에는, 영역 선택기(219)가 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑할 수 있다(S411).
그리고, 이미그레이션 매니저(223)에 의해 맵핑이 변경된 논리적 클러스터의 데이터가 이미그레이션될 수 있다(S413).
본 발명의 기술사상은 상기 바람직한 실시예들에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
200: 메모리 시스템
210: 메모리 콘트롤러
250: 비휘발성 메모리

Claims (14)

  1. 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역, 및 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역을 포함하는 비휘발성 메모리; 및
    상기 비휘발성 메모리를 제어하기 위한 메모리 콘트롤러를 포함하고,
    상기 메모리 콘트롤러는
    다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수를 카운트하는 리드/라이트 카운터;
    상기 리드/라이트 카운터의 카운팅 결과를 이용해 상기 다수의 논리적 클러스터들을 상기 노멀 영역, 상기 핫 영역 및 상기 콜드 영역 중 하나의 영역으로 맵핑하기 위한 영역 선택기; 및
    상기 영역 선택기에 의해 맵핑된 맵핑 정보를 저장하기 위한 클러스터 맵핑 테이블을 포함하는
    메모리 시스템.
  2. 제 1항에 있어서,
    상기 핫 영역과 상기 콜드 영역은 메모리 셀들을 공유하고, 공유된 메모리 셀들의 MSB의 집합이 상기 핫 영역이고, 상기 공유된 메모리 셀들의 LSB의 집합이 상기 콜드 영역인
    메모리 시스템.
  3. 제 1항에 있어서,
    상기 영역 선택기는
    라이트 동작의 회수가 높은 논리적 클러스터를 상기 노멀 영역으로 맵핑하고,
    라이트 동작의 회수가 낮고 리드 동작의 회수가 높은 논리적 클러스터를 상기 핫 영역으로 맵핑하고,
    라이트 동작의 회수가 낮고 리드 동작의 회수가 낮은 논리적 클러스터를 상기 콜드 영역으로 맵핑하는
    메모리 시스템.
  4. 제 1항에 있어서,
    상기 영역 선택기는
    라이트 동작의 회수가 제1임계값 이상인 논리적 클러스터를 상기 노멀 영역으로 맵핑하고,
    라이트 동작의 회수가 상기 제1임계값 미만인 클러스터 중 리드 동작의 회수가 제2임계값 이상이면서 (리드 동작 회수/라이트 동작 회수)가 제3임계값 이상인 논리적 클러스터를 상기 핫 영역으로 맵핑하고,
    라이트 동작의 회수가 상기 제1임계값 미만인 클러스터 중 리드 동작의 회수가 제2임계값 이상이면서 (리드 동작 회수/라이트 동작 회수)가 제3임계값 미만인 논리적 클러스터를 상기 콜드 영역으로 맵핑하는
    메모리 시스템.
  5. 제 4항에 있어서,
    상기 다수의 논리적 클러스트들은 초기값으로 상기 노멀 영역으로 맵핑되는
    메모리 시스템.
  6. 제 1항에 있어서,
    상기 메모리 콘트롤러는
    상기 영역 선택기에 의해 영역 맵핑이 변경된 논리적 클러스터의 데이터를 변경된 영역으로 이미그레이션하기 위한 이미그레이션 매니저를 더 포함하는
    메모리 시스템.
  7. 제 1항에 있어서,
    상기 리드/라이트 카운터에 의해 카운팅된 다수의 논리적 클러스터들 마다의 리드 및 라이트 동작 회수는 일정 주기마다 감소되는
    메모리 시스템.
  8. 제 1항에 있어서,
    상기 비휘발성 메모리 내에서 상기 노멀 영역, 상기 핫 영역 및 상기 콜드 영역의 용량은 조절 가능한
    메모리 시스템.
  9. 제 1항에 있어서,
    상기 다수의 논리적 클러스터들 각각은 하나 이상의 논리적 블록들을 포함하는
    메모리 시스템.
  10. 제 6항에 있어서,
    상기 메모리 콘트롤러는
    호스트와의 통신을 위한 호스트 인터페이스;
    플래시 변환 계층; 및
    상기 비휘발성 메모리와의 통신을 위한 메모리 인터페이스를 더 포함하는
    메모리 시스템.
  11. 메모리 콘트롤러와 비휘발성 메모리를 포함하는 메모리 시스템의 동작 방법에 있어서,
    호스트로부터 특정 논리 페이지에 대한 리드 동작이 요청되는 단계;
    상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리 클러스터가 맵핑된 상기 비휘발성 메모리 내의 영역이 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역인지, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역인지, 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역인지를 판단하는 단계;
    상기 노멀 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 노멀 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 MSB와 LSB를 리드하는 단계;
    상기 핫 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 핫 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 MSB를 리드하는 단계;
    상기 콜드 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 콜드 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들로부터 LSB를 리드하는 단계; 및
    상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리적 클러스터에 대한 리드 동작 카운트 값을 증가시키는 단계
    를 포함하는 방법.
  12. 제 11항에 있어서,
    상기 메모리 콘트롤러가, 논리적 클러스터들의 상기 비휘발성 메모리 내의 영역들에 대한 맵핑의 변경이 필요한지 확인하는 단계;
    상기 메모리 콘트롤러가, 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑하는 단계; 및
    상기 메모리 콘트롤러의 제어에 따라 상기 비휘발성 메모리 내에서, 맵핑이 변경된 논리적 클러스터의 데이터를 이미그레이션하는 단계
    를 더 포함하는 방법.
  13. 메모리 콘트롤러와 비휘발성 메모리를 포함하는 메모리 시스템의 동작 방법에 있어서,
    호스트로부터 특정 논리 페이지에 대한 라이트 동작이 요청되는 단계;
    상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리 클러스터가 맵핑된 상기 비휘발성 메모리 내의 영역이 메모리 셀들에 저장된 MSB(Most Significant Bit)와 LSB(Least Significant Bit)가 같이 억세스되는 노멀 영역인지, 메모리 셀들에 저장된 MSB가 억세스되는 핫 영역인지, 메모리 셀들에 저장된 LSB가 억세스되는 콜드 영역인지를 판단하는 단계;
    상기 노멀 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 노멀 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 MSB와 LSB를 라이트하는 단계;
    상기 핫 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 핫 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 MSB를 라이트하는 단계;
    상기 콜드 영역으로 판단된 경우, 상기 비휘발성 메모리 내의 상기 콜드 영역 내에서 상기 특정 논리 페이지에 대응하는 메모리 셀들에 LSB를 리드하는 단계; 및
    상기 메모리 콘트롤러가 상기 특정 논리 페이지가 포함된 논리적 클러스터에 대한 라이트 동작 카운트 값을 증가시키는 단계
    를 포함하는 방법.
  14. 제 13항에 있어서,
    상기 메모리 콘트롤러가, 논리적 클러스터들의 상기 비휘발성 메모리 내의 영역들에 대한 맵핑의 변경이 필요한지 확인하는 단계;
    상기 메모리 콘트롤러가, 맵핑의 변경이 필요하다고 판단된 논리적 클러스터를 변경된 영역으로 맵핑하는 단계; 및
    상기 메모리 콘트롤러의 제어에 따라 상기 비휘발성 메모리 내에서, 맵핑이 변경된 논리적 클러스터의 데이터를 이미그레이션하는 단계
    를 더 포함하는 방법.
KR1020160021167A 2016-02-23 2016-02-23 메모리 시스템 및 이의 동작 방법 KR20170099437A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160021167A KR20170099437A (ko) 2016-02-23 2016-02-23 메모리 시스템 및 이의 동작 방법
US15/192,786 US9996292B2 (en) 2016-02-23 2016-06-24 Memory system and operation method thereof
CN201610855655.6A CN107102816B (zh) 2016-02-23 2016-09-27 存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160021167A KR20170099437A (ko) 2016-02-23 2016-02-23 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20170099437A true KR20170099437A (ko) 2017-09-01

Family

ID=59631175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160021167A KR20170099437A (ko) 2016-02-23 2016-02-23 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US9996292B2 (ko)
KR (1) KR20170099437A (ko)
CN (1) CN107102816B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093292A (ko) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US10665297B2 (en) 2018-08-10 2020-05-26 SK Hynix Inc. Memory systems for memory devices and methods of operating the memory systems

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362229B1 (ko) 2017-08-10 2022-02-11 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
KR20190113437A (ko) * 2018-03-28 2019-10-08 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 컴퓨팅 시스템
KR20200060053A (ko) * 2018-11-22 2020-05-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110970075A (zh) * 2019-12-02 2020-04-07 武汉新芯集成电路制造有限公司 存储结构及其擦除方法
KR20210083448A (ko) 2019-12-26 2021-07-07 삼성전자주식회사 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법
KR20210121527A (ko) * 2020-03-30 2021-10-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8407400B2 (en) 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
CN101794253B (zh) * 2009-02-04 2012-08-22 威刚科技股份有限公司 内存储存装置及其控制方法、热门数据控管模块
TWI400707B (zh) * 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8782370B2 (en) * 2011-05-15 2014-07-15 Apple Inc. Selective data storage in LSB and MSB pages
US9489297B2 (en) * 2013-01-21 2016-11-08 Sandisk Technologies Llc Pregroomer for storage array
CN103455283B (zh) * 2013-08-19 2016-01-20 华中科技大学 一种混合存储系统
CN104714891B (zh) * 2013-12-11 2017-12-15 华为技术有限公司 一种闪存数据管理方法及装置
US9536600B2 (en) * 2014-10-22 2017-01-03 International Business Machines Corporation Simultaneous multi-page commands for non-volatile memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093292A (ko) * 2018-02-01 2019-08-09 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
US10665297B2 (en) 2018-08-10 2020-05-26 SK Hynix Inc. Memory systems for memory devices and methods of operating the memory systems

Also Published As

Publication number Publication date
US9996292B2 (en) 2018-06-12
CN107102816B (zh) 2020-08-11
CN107102816A (zh) 2017-08-29
US20170242609A1 (en) 2017-08-24

Similar Documents

Publication Publication Date Title
KR20170099437A (ko) 메모리 시스템 및 이의 동작 방법
US9645895B2 (en) Data storage device and flash memory control method
US20180373627A1 (en) Memory system having persistent garbage collection
US7953954B2 (en) Flash storage partial page caching
US9870836B2 (en) Memory system and method of controlling nonvolatile memory
US8281061B2 (en) Data conditioning to improve flash memory reliability
US9263142B2 (en) Programming a memory cell using a dual polarity charge pump
US10089031B2 (en) Data storage and operating method thereof
US9627072B2 (en) Variant operation sequences for multibit memory
US8874832B2 (en) AD HOC flash memory reference cells
US20070245068A1 (en) Cycle count storage methods
KR20170035155A (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
JP2014116031A (ja) メモリデバイスを備えた電子システム
JP2008009919A (ja) カードコントローラ
KR20090117787A (ko) 시스템 관리를 위한 mlc 선택된 멀티-프로그램
US20180373431A1 (en) Block management for data streams
US11334272B2 (en) Memory system and operating method thereof
KR102157570B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US11334480B2 (en) Data storage device and non-volatile memory control method
US11507289B2 (en) Storage device, controller and method for operating storage device
US8583858B2 (en) Nonvolatile memory controller and nonvolatile storage device
US9466384B1 (en) Memory device and associated erase method
US9507706B2 (en) Memory system controller including a multi-resolution internal cache
JP2009266125A (ja) メモリシステム
CN117636968A (zh) 用于块条写入的混合写入光标

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application