KR20190019429A - 메모리 시스템 및 그의 동작방법 - Google Patents

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

Info

Publication number
KR20190019429A
KR20190019429A KR1020170104298A KR20170104298A KR20190019429A KR 20190019429 A KR20190019429 A KR 20190019429A KR 1020170104298 A KR1020170104298 A KR 1020170104298A KR 20170104298 A KR20170104298 A KR 20170104298A KR 20190019429 A KR20190019429 A KR 20190019429A
Authority
KR
South Korea
Prior art keywords
memory
memory block
hot
cold
detected
Prior art date
Application number
KR1020170104298A
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 KR1020170104298A priority Critical patent/KR20190019429A/ko
Priority to US15/965,450 priority patent/US10795609B2/en
Publication of KR20190019429A publication Critical patent/KR20190019429A/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/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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0614Improving the reliability of storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication 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/0653Monitoring storage devices or systems
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/7211Wear leveling

Abstract

본 기술은 메모리 시스템 및 그 동작방법에 관한 것으로서, 복수의 메모리 블록들을 포함하는 메모리 장치, 상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 라이트 동작 관리부, 상기 복수의 메모리 블록들 중 라이트 동작이 수행된 제1 메모리 블록의 상기 라이트 동작 횟수에 해당하는 제1 카운트 값을 바탕으로 핫 메모리 블록을 검출하는 제1 검출부, 상기 제1 메모리 블록에 인접하는 제2 메모리 블록들의 상기 라이트 동작 횟수에 해당하는 제2 카운트 값을 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부, 및 상기 제1 및 제2 검출부들에 의해 상기 핫 및 콜드 메모리 블록들이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 제어부를 제공한다.

Description

메모리 시스템 및 그의 동작방법{MEMORY SYSTEM AND OPERATION METHOD FOR THE SAME}
본 발명은 비휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리 장치에 있어 인접한 영역들 간의 디스터번스(disturbance)를 줄이는 메모리 시스템 및 그 동작방법에 관한 것이다.
메모리 장치는 크게 휘발성 메모리 장치(volatile memory device)와 비휘발성 메모리 장치(nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 쓰기 및 읽기 속도가 빠르지만 전원 공급이 차단되면 저장된 데이터가 소실된다. 휘발성 메모리 장치에는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등이 있다. 반면, 비휘발성 메모리 장치는 쓰기 및 읽기 속도가 상대적으로 느리지만 전원 공급이 차단되더라도 저장된 데이터를 유지한다. 따라서 전원 공급 여부와 관계없이 유지되어야 할 데이터를 저장하기 위해 비휘발성 메모리 장치가 사용된다. 비휘발성 메모리 장치에는 ROM(Read Only Memory), MROM(Mask ROM), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash memory), PCRAM(Phase change Random Access Memory), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등이 있다.
도 1은 비휘발성 메모리 장치의 메모리 셀 어레이를 나타낸 도면이다. 도 1은 비휘발성 메모리 장치의 일례로 PCRAM을 도시하고 있다. 그러나 본 발명이 이에 한정되는 것은 아니다.
셀 어레이는 비트라인(BL)과 워드라인(WL)이 교차하는 영역에 단위 메모리 셀(MC)을 포함한다. PCRAM의 단위 메모리 셀(MC)은 상 변화 저항 소자(PCR: Phase Change Resistor)와 PN 다이오드 소자(D: Diode)를 포함할 수 있다. 상 변화 저항 소자(PCR)는 상부 전극과 하부 전극 사이에 삽입된 위상 변화층(phase change material)으로 이루어져, 전압과 전류가 인가되면 위상 변화층에 고온이 유기되어 저항의 변화에 따라 전기 전도 상태가 변할 수 있다.
상 변화 저항 소자(PCR)의 한쪽 전극은 비트라인(BL)과 연결되고, 다른 한쪽 전극은 PN 다이오드(D)의 P형 영역에 연결된다. PN 다이오드(D)의 N형 영역은 워드라인(WL)에 연결된다.
이러한 셀 어레이에서 라이트 동작 시 선택된 워드라인(WL2)에는 로우 전압(접지전압 VSS)이 인가되고, 선택된 비트라인(BL2)에는 라이트 데이터에 대응하는 구동 전압(Vd)이 인가된다. 이때, 선택되지 않은 비트라인(BL1, BL3)은 플로팅(floating) 상태가 되고, 선택되지 않은 워드라인(WL1, WL3)은 고전압(펌핑전압 VPPX) 레벨을 유지하게 된다.
앞서 설명한 바와 같이, 선택된 워드라인(WL2) 및 비트라인(BL2)에 인가되는 전압에 의해 대응하는 교차점에 배치되는 메모리 셀(MC)에는 전류가 흐르게 되고, 이로 인해 열이 발생하게 된다. 예를 들어, 일정 시간 동안 흐르는 저전류에 의해 저온 가열 상태가 되어, 해당 메모리 셀(MC)의 상 변화 저항 소자(PCR)는 결정화, 즉, 세트(set) 상태가 될 수 있다. 또는, 일정 시간 동안 흐르는 고전류에 의해 고온 가열 상태가 되어, 해당 메모리 셀(MC)의 상 변화 저항 소자(PCR)는 비결정화, 즉, 리셋(reset) 상태가 될 수 있다.
하지만, 라이트 동작 시, 타겟 메모리 셀에서 발생된 열이 인접 메모리 셀들에도 영향을 미치게 된다. 결국, 특정 메모리 셀에 반복되는 라이트 동작이 인접 메모리 셀들의 데이터를 변화시켜 기입 방해(disturbance)를 야기할 수 있다.
이처럼, 비휘발성 메모리 장치의 메모리 셀들 역시 다양한 영향에 의해서 처음 프로그래밍된 상태에서 변동(drift)이 일어날 수 있다. 이러한 영향은 기입 방해, 판독 방해, 전하 드리프트, 온도 강하, 축적된 기록/소거 사이클 변화, 마모, 등을 포함할 수 있다. 따라서, 비휘발성 메모리 장치를 포함하는 메모리 시스템은 프로그래밍 변동에 의해서 프로그램된 데이터의 신뢰성이 떨어지기 이전에, 기존 셀들을 리프레시하거나 새로운 셀들에 데이터를 기록하기 위한 리라이트 동작을 수행한다.
본 발명은 반복적인 라이트 동작을 확인하여 그로 인해 메모리 장치의 인접한 영역들 사이에 발생하는 디스터번스를 줄이고, 데이터의 신뢰성을 높일 수 있는 메모리 시스템 및 그 동작방법을 제공하고자 한다.
본 발명의 일 실시예에 따른 메모리 시스템은, 복수의 메모리 블록들을 포함하는 메모리 장치; 상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 라이트 동작 관리부; 상기 복수의 메모리 블록들 중 라이트 동작이 수행된 제1 메모리 블록의 상기 라이트 동작 횟수에 해당하는 제1 카운트 값을 바탕으로 핫 메모리 블록을 검출하는 제1 검출부; 상기 제1 메모리 블록에 인접하는 제2 메모리 블록들의 상기 라이트 동작 횟수에 해당하는 제2 카운트 값을 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부; 및 상기 제1 및 제2 검출부들에 의해 상기 핫 및 콜드 메모리 블록들이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 제어부;를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작방법은, 라이트 동작에 따라 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 단계; 상기 복수의 메모리 블록들 중 상기 라이트 동작이 수행된 제1 메모리 블록의 상기 라이트 동작 횟수에 해당하는 제1 카운트 값을 바탕으로 핫 메모리 블록을 검출하는 단계; 상기 제1 메모리 블록에 인접하는 제2 메모리 블록들의 상기 라이트 동작 횟수에 해당하는 제2 카운트 값을 바탕으로 콜드 메모리 블록을 검출하는 단계; 및 상기 핫 메모리 블록 및 상기 콜드 메모리 블록이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 단계;를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템은, 복수의 메모리 블록들로 구성된 다수의 메모리 영역들을 포함하는 메모리 장치; 상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 바탕으로, 상기 복수의 메모리 블록들 중 라이트 동작이 수행된 제1 메모리 블록과 상기 제1 메모리 블록에 인접하는 제2 메모리 블록을 각각 핫 메모리 블록 및 콜드 메모리 블록으로 검출하는 메모리 블록 검출부; 및 상기 메모리 블록 검출부에 의해 상기 핫 및 콜드 메모리 블록들이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 제어부;를 포함할 수 있다.
본 기술은 메모리 장치를 동일한 크기의 복수의 메모리 블록들로 나누고, 라이트 동작이 빈번히 이루어지는 핫 메모리 블록과 주변 메모리 블록들 간의 마모 정도를 바탕으로 각각의 데이터를 다른 메모리 블록으로 이동시켜 준다. 특히, 특정 메모리 블록에 라이트 동작이 상대적으로 많이 수행될 경우 주변 메모리 블록에 미치는 영향을 줄이기 위해, 인접한 메모리 블록들 간에 라이트 동작 횟수 차이에 따라 해당 메모리 블록들의 데이터를 이동시킨다.
이때, 라이트 동작 횟수가 기준 횟수 이상 차이 나는 메모리 블록들이 상대적으로 라이트 동작이 많이 수행된 영역에 포함될 경우, 라이트 동작 횟수가 적은 메모리 블록, 즉, 콜드 메모리 블록의 데이터를 이동시키고, 상대적으로 라이트 동작이 적게 수행된 영역에 포함될 경우, 라이트 동작 횟수가 많은 메모리 블록, 즉, 핫 메모리 블록의 데이터를 이동시킬 수 있다. 따라서, 하나의 메모리 영역 내에 라이트 동작에 따른 마모가 비슷한 메모리 블록들을 모집할 수 있어, 인접한 메모리 블록들 간의 영향을 더욱 줄일 수 있다.
도 1은 비휘발성 메모리 장치의 메모리 셀 어레이를 도시한 도면.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 도시한 블록도.
도 3a 및 도 3b는 도 2에 도시된 맵핑 테이블에 저장되는 목록을 도시한 도면.
도 4a 및 도 4b는 도 2에 도시된 메모리 장치에서 데이터 이동을 설명하기 위한 도면.
도 5는 본 발명의 실시예에 따른 메모리 시스템의 동작을 도시한 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 도시한 블록도이다. 도 2를 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210), 및 메모리 장치(220)를 포함할 수 있다.
메모리 컨트롤러(210)는 호스트(미도시)로부터의 요청에 응답하여, 메모리 장치(220)의 제반 동작을 제어할 수 있다. 예컨대, 메모리 컨트롤러(210)는, 호스트로부터 제공된 데이터(DATA)를 메모리 장치(220)에 저장하고, 메모리 장치(220)로부터 리드된 데이터(DATA)를 호스트로 제공한다. 이를 위해, 메모리 컨트롤러(210)는 커맨드(CMD)/어드레스(ADD)를 생성하여 메모리 장치(220)의 라이트(write), 리드(read), 및 이레이즈(erase), 등의 동작을 제어할 수 있다.
뿐만 아니라, 메모리 컨트롤러(210)는 메모리 장치(220)에 대해 여러 종류의 배경(background) 동작을 제어할 수 있다. 메모리 장치(220)에 대한 고집적 요구가 증가함에 따라, 앞서 설명한 것과 같이, 라이트 동작에 따른 워드 라인들 또는 메모리 셀들 사이에 간섭이 증가할 수 있다. 이로 인한 디스터번스로 메모리 셀들의 데이터가 변할 수 있다. 이를 방지하기 위해, 메모리 컨트롤러(210)는 메모리 장치(220)에 수행되는 라이트 동작을 바탕으로 디스터번스가 발생할 수 있는 영역들을 감지할 수 있다. 이 같은 영역들을 희생(victim) 영역으로 선정하고 해당 데이터를 리프레시(refresh) 또는 리라이트(rewrite)할 수 있다. 메모리 컨트롤러(210)의 이와 같은 동작에 대해서는 아래에 보다 더 구체적으로 설명하고자 한다.
메모리 장치(220)는 PCRAM을 포함할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, MRAM, RRAM, FRAM, 등의 비휘발성 메모리를 포함할 수 있다. 즉, 메모리 장치(220)는 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있으며, 라이트 동작을 통해 호스트로부터 제공된 데이터(DATA)를 저장하고, 리드 동작을 통해 저장된 데이터(DATA)를 호스트로 제공한다. 그리고, 메모리 장치(220)는 메모리 셀들로 이루어진 복수의 메모리 블록들(262)을 포함할 수 있다. 메모리 장치(220)는 복수의 메모리 블록들(262)이 그룹화된 다수의 메모리 영역들(260)을 포함할 수 있다.
도 2를 참조하면, 본 발명의 실시예에 따른 메모리 컨트롤러(210)는 라이트 동작 관리부(230), 메모리 블록 검출부(240), 및 제어부(250)를 포함할 수 있다.
라이트 동작 관리부(230)은 복수의 메모리 블록들(262)에 수행되는 라이트 동작 횟수를 확인하고 업데이트할 수 있다. 이를 위해, 라이트 동작 관리부(230)는 카운팅부(232) 및 맵핑 테이블(234)을 포함할 수 있다. 카운팅부(232)는 복수의 메모리 블록들(262)에 대한 라이트 동작 횟수를 카운트하고, 맵핑 테이블(234)은 복수의 메모리 블록들(262) 각각의 어드레스에 대응하여 카운팅부(232)에 의해 카운트된 라이트 동작 횟수를 저장할 수 있다.
또한, 라이트 동작 관리부(230)는 복수의 메모리 블록들(262)에 대해 카운트된 라이트 동작 횟수를 합산하고, 합산된 값을 복수의 메모리 블록들(262)의 개수로 나눠 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수를 계산할 수 있다. 계산된 평균 라이트 동작 횟수 역시 맵핑 테이블(234)에 저장될 수 있다.
라이트 동작 관리부(230)는 복수의 메모리 블록들(262)에 수행되는 라이트 동작 횟수를 바탕으로 다수의 메모리 영역들(260)을 핫 메모리 영역 또는 콜드 메모리 영역으로 구분할 수 있다. 이를 위해, 라이트 동작 관리부(230)는 다수의 메모리 영역들(260) 각각에 포함된 메모리 블록들(262)의 카운트된 라이트 동작 횟수를 합산하여 다수의 메모리 영역들(260) 각각의 전체 라이트 동작 횟수를 계산할 수 있다. 라이트 동작 관리부(230)는 계산된 전체 라이트 동작 횟수를 맵핑 테이블(234)에 저장하고, 전체 라이트 동작 횟수가 제2 기준 값 이상인지 아닌지에 따라 다수의 메모리 영역들(260)을 핫 메모리 영역 또는 콜드 메모리 영역으로 구분할 수 있다. 다수의 메모리 영역들(260)을 핫 메모리 영역 또는 콜드 메모리 영역으로 구분함에 따라, 다수의 메모리 영역들(260)의 플래그 정보(FLAG)가 다르게 설정될 수 있다.
메모리 블록 검출부(240)는 라이트 동작 관리부(230)에 의해 업데이트 되는 복수의 메모리 블록들(262)의 라이트 동작 횟수를 바탕으로, 복수의 메모리 블록들(262) 중 라이트 동작이 수행된 제1 메모리 블록과 상기 제1 메모리 블록에 인접하는 제2 메모리 블록을 각각 핫 메모리 블록 및 콜드 메모리 블록으로 검출할 수 있다. 메모리 블록 검출부(240)는 제1 검출부(242) 및 제2 검출부(244)를 포함할 수 있다.
복수의 메모리 블록들(262)에 라이트 동작이 수행되면, 라이트 동작 관리부(230)는 복수의 메모리 블록들(262)에 대한 라이트 동작 횟수, 즉, 카운트(CNT)를 업데이트하고 맵핑 테이블(234)에 저장할 수 있다. 그러면, 제1 검출부(242)는 복수의 메모리 블록들(262) 중 라이트 동작이 수행된 메모리 블록, 예를 들면, 제1 메모리 블록에 해당하는 카운트(CNT)를 바탕으로 핫 메모리 블록을 검출할 수 있다. 구체적으로, 제1 메모리 블록의 카운트(CNT)가 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수보다 제1 기준 값 이상이면, 제1 검출부(242)는 제1 메모리 블록을 핫 메모리 블록으로 검출할 수 있다.
제1 검출부(242)에 의해 핫 메모리 블록이 검출되면, 제2 검출부(244)는 제1 메모리 블록에 인접하는 메모리 블록들, 예를 들면, 제2 메모리 블록들에 해당하는 카운트(CNT)를 바탕으로 콜드 메모리 블록을 검출할 수 있다. 구체적으로, 제2 메모리 블록들 중 카운트(CNT)가 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수보다 제1 기준 값 미만인 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다.
메모리 블록 검출부(240)에 의해 핫 메모리 블록 및 콜드 메모리 블록이 검출되면, 제어부(250)는 검출된 핫 메모리 블록 또는 검출된 콜드 메모리 블록의 데이터를 이동시킬 수 있다. 제1 및 제2 검출부들(242 및 244)에서 각각 핫 및 콜드 메모리 블록들이 검출되면, 메모리 블록 검출부(240)는 검출 신호(DET)를 활성화할 수 있다. 메모리 블록 검출부(240)에 의해 검출 신호(DET)가 활성화되면, 제어부(250)는 맵핑 테이블(234)로부터 플래그 정보(FLAG)를 확인할 수 있다.
플래그 정보(FLAG)를 바탕으로 검출된 핫 및 콜드 메모리 블록들이 핫 메모리 영역에 포함되면, 제어부(250)는 검출된 콜드 메모리 블록의 데이터를 다수의 메모리 영역들(260) 중 콜드 메모리 영역의 비어있는 메모리 블록, 즉, 프리(free) 메모리 블록으로 이동시킬 수 있다. 반대로, 플래그 정보(FLAG)를 바탕으로 검출된 핫 및 콜드 메모리 블록들이 콜드 메모리 영역에 포함되면, 제어부(250)는 검출된 핫 메모리 블록의 데이터를 다수의 메모리 영역들(260) 중 핫 메모리 영역의 프리 메모리 블록으로 이동시킬 수 있다.
본 발명의 실시예에 따른 메모리 시스템(200)의 동작을 도 3 및 도 4를 참조하여 보다 더 구체적으로 설명하고자 한다. 또한, 도 2의 메모리 시스템(200)은 일 실시에에 따라 도시된 것으로 본 발명이 이에 한정되는 것은 아니다. 예를 들어, 도 2에는 맵핑 테이블(234)이 라이트 동작 관리부(230)에 포함되는 것으로 도시되었으나, 본 발명의 실시에에 따라, 맵핑 테이블(234)은 메모리 컨트롤러(210) 또는 메모리 컨트롤러(210)의 다른 구성 요소들에 포함될 수 있다.
도 3a 및 3b는 메모리 컨트롤러(210)의 동작에 따라 도 2에 도시된 맵핑 테이블(234)에 저장되는 목록을 나타내는 도면이다. 도 3a는 핫 메모리 블록 및 콜드 메모리 블록이 핫 메모리 영역으로부터 검출된 경우를 나타내고, 도 3b는 핫 메모리 블록 및 콜드 메모리 블록이 콜드 메모리 영역으로부터 검출된 경우를 나타낸다. 도 3a 및 도 3b는 메모리 장치(220)의 다수의 메모리 영역들(260) 중 제1 내지 제3 메모리 영역들(RA1 내지 RA3)을 일례로 도시하고 있다.
우선, 도 2 및 도 3a를 참조하면, 맵핑 테이블(234)은 메모리 블록들(BA1 내지 BA4) 각각에 대한 라이트 동작 횟수를 카운트한 값(CNT)을 저장하고 있다. 메모리 블록들(BA1 내지 BA4)에 라이트 동작이 수행되면, 라이트 동작 관리부(230)는 해당하는 카운트 값(CNT)을 하나씩 증가시킬 수 있다.
이 때, 라이트 동작 관리부(230)는 복수의 메모리 블록들(BA1 내지 BA4)에 대한 카운트 값(CNT)을 합산하고, 합산된 카운트 값을 복수의 메모리 블록들(BA1 내지 BA4)의 개수로 나눠 복수의 메모리 블록들(BA1 내지 BA4)의 평균 라이트 동작 횟수(AVG)를 계산할 수 있다. 도 3a에서는 일 실시예에 따라, 복수의 메모리 블록들(BA1 내지 BA4)의 평균 라이트 동작 횟수(AVG)가 '50'으로 계산되어 맵핑 테이블(234)에 저장된 것을 확인할 수 있다. 복수의 메모리 블록들(BA1 내지 BA4)에 라이트 동작이 수행될 때마다, 즉, 복수의 메모리 블록들(BA1 내지 BA4)에 대한 카운트 값(CNT)이 업데이트 될 때마다, 라이트 동작 관리부(230)는 평균 라이트 동작 횟수(AVG)를 계산하여 업데이트할 수 있다.
또한, 복수의 메모리 블록들(BA1 내지 BA4)에 라이트 동작이 수행될 때마다, 라이트 동작 관리부(230)는 메모리 영역들(RA1 내지 RA3)에 수행된 전체 라이트 동작 횟수(TOTAL)를 업데이트할 수 있다. 라이트 동작 관리부(230)는 라이트 동작이 수행된 메모리 블록의 카운트 값(CNT)을 증가시키면서, 해당하는 메모리 영역의 전체 라이트 동작 횟수(TOAL) 역시 증가시켜 업데이트를 수행할 수 있다. 도 3a에서는 일 실시예에 따라, 제1, 제2, 및 제3 메모리 영역들(RA1, RA2, 및 RA3)에 대해 각각 전체 라이트 동작 횟수(TOATL)가 '1200', '1100', 및 '700'으로 저장된 것을 확인할 수 있다.
더 나아가, 라이트 동작 관리부(230)는 메모리 영역들(RA1 내지 RA3)의 전체 라이트 동작 횟수(TOTAL)를 기준 값과 비교할 수 있다. 비교 결과 전체 라이트 동작 횟수(TOTAL)가 기준 값 이상이면, 해당 메모리 영역은 핫 메모리 영역으로 구분되고, 비교 결과 전체 라이트 동작 횟수(TOTAL)가 기준 값 미만이면, 해당 메모리 영역은 콜드 메모리 영역으로 구분될 수 있다. 도 3a에서 기준 값이 '1000'이라고 가정하면, 제1 및 제2 메모리 영역들(RA1 및 RA2)은 각각 전체 라이트 동작 횟수(TOTAL)가 '1200', 및 '1100'에 해당하므로 핫 메모리 영역으로 구분될 수 있다. 반면, 제3 메모리 영역(RA3)은 전체 라이트 동작 횟수(TOTAL)가 '700'에 해당하므로 콜드 메모리 영역으로 구분될 수 있다. 라이트 동작 관리부(230)는 핫 메모리 영역, 즉, 제1 및 제2 메모리 영역들(RA1 및 RA2)과 콜드 메모리 영역, 즉, 제3 메모리 영역(RA3)의 플래그 정보(FLAG)를 각각 '1' 및 '0'으로 설정할 수 있다.
다시, 도 3a를 참조하면, 복수의 메모리 블록들(262) 중 어느 하나의 메모리 블록, 예를 들면, 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)에 라이트 동작이 수행되면, 라이트 동작 관리부(230)는 맵핑 테이블(234)을 업데이트할 수 있다. 즉, 제3 메모리 블록(BA3)의 카운트 값(CNT)과 함께 평균 라이트 동작 횟수(AVG), 전체 라이트 동작 횟수(TOTAL), 및 플래그 정보(FLAG), 등(빗금친 부분)이 업데이트될 수 있다.
그 이후, 제1 검출부(242)는 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)의 카운트 값(CNT)을 확인하여 핫 메모리 블록을 검출할 수 있다. 확인된 카운트 값(CNT)이 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG) 보다 기준 값 이상 크면, 제1 검출부(242)는 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)을 핫 메모리 블록으로 검출할 수 있다. 도 3a에서 기준 값이 '10'이라고 가정하면, 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)의 카운트 값(CNT)은 '65'이고 평균 라이트 동작 횟수(AVG)는 '50'이므로, 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)이 핫 메모리 블록으로 검출될 수 있다.
제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)이 핫 메모리 블록으로 검출되면, 제2 검출부(244)는 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)에 인접한 메모리 블록, 즉, 제2 및 제4 메모리 블록들(BA2 및 BA4)의 카운트 값(CNT)을 확인하여 콜드 메모리 블록을 검출할 수 있다. 핫 메모리 블록 검출과 유사하게 확인된 카운트 값(CNT)이 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG) 보다 기준 값 이상 작으면, 제2 검출부(244)는 제2 메모리 영역(RA2)의 제2 및 제4 메모리 블록들(BA2 및 BA4)을 콜드 메모리 블록으로 검출할 수 있다. 도 3a에서 기준 값이 '10'이라고 가정하면, 제2 메모리 영역(RA2)의 제2 및 제4 메모리 블록들(BA2 및 BA4)의 카운트 값(CNT)은 각각 '45' 및 '35'이고 평균 라이트 동작 횟수(AVG)는 '50'이므로, 제2 메모리 영역(RA2)의 제4 메모리 블록(BA3)이 콜드 메모리 블록으로 검출될 수 있다.
제2 메모리 영역(RA2)의 제3 및 제4 메모리 블록들(BA3 및 BA4)이 각각 핫 및 콜드 메모리 블록들로 검출됨에 따라, 제어부(250)는 검출된 제3 메모리 블록(BA3) 또는 제4 메모리 블록들(BA4)의 데이터를 이동시킬 수 있다. 이때, 제2 메모리 영역(RA2)의 플래그 정보(FLAG)를 바탕으로, 제어부(250)는 제2 메모리 영역(RA2)이 핫 메모리 영역임을 확인할 수 있다. 따라서, 제어부(250)는 콜드 메모리 블록으로 검출된 제4 메모리 블록(BA4)의 데이터를 콜드 메모리 영역, 즉, 제3 메모리 영역(RA3)으로 이동(copy)시킬 수 있다. 특히, 제4 메모리 블록(BA4)의 데이터는 제3 메모리 영역(RA3)의 프리 메모리 블록인 제3 또는 제4 메모리 블록(BA3 또는 BA4)에 저장될 수 있다.
다음으로, 도 3b를 참조하면, 핫 메모리 블록 및 콜드 메모리 블록이 콜드 메모리 영역으로부터 검출된 경우를 살펴볼 수 있다. 도 3b에 있어서 도 3a와 동일하게 설정된 부분에 대한 설명은 생략하기로 한다. 즉, 도 3a와는 다르게 도 3b의 제2 메모리 영역(RA2)의 전체 라이트 동작 횟수(TOATL)가 '900'으로 저장된 것을 확인할 수 있다. 따라서, 제2 메모리 영역(RA2)의 플래그 정보(FLAG)가 '0'으로 설정되고, 제2 메모리 영역(RA2)은 콜드 메모리 영역으로 구분될 수 있다.
도 3a에서와 같이, 제2 메모리 영역(RA2)의 제3 메모리 블록(BA3)에 라이트 동작이 수행되면, 메모리 블록 검출부(242)는 제2 메모리 영역(RA2)의 제3 및 제4 메모리 블록들(BA3 및 BA4)을 각각 핫 및 콜드 메모리 블록들로 검출할 수 있다. 따라서, 제어부(250)는 검출된 제3 메모리 블록(BA3) 또는 제4 메모리 블록들(BA4)의 데이터를 이동시킬 수 있다.
이때, 제2 메모리 영역(RA2)의 플래그 정보(FLAG)를 바탕으로, 제어부(250)는 제2 메모리 영역(RA2)이 콜드 메모리 영역임을 확인할 수 있다. 결국, 제어부(250)는 핫 메모리 블록으로 검출된 제3 메모리 블록(BA3)의 데이터를 핫 메모리 영역, 즉, 제1 메모리 영역(RA1)으로 이동시킬 수 있다. 특히, 제3 메모리 블록(BA3)의 데이터는 제1 메모리 영역(RA3)의 프리 메모리 블록인 제2 또는 제4 메모리 블록(BA2 또는 BA4)에 저장될 수 있다.
도 4a 및 도 4b는 메모리 컨트롤러(210)의 동작에 따라 도 2에 도시된 메모리 장치(220)에서 데이터 이동을 나타내는 도면이다. 도 4a는 핫 메모리 블록 및 콜드 메모리 블록이 핫 메모리 영역으로부터 검출된 경우를 나타내고, 도 4b는 핫 메모리 블록 및 콜드 메모리 블록이 콜드 메모리 영역으로부터 검출된 경우를 나타낸다. 도 4a 및 도 4b는 메모리 장치(220)의 다수의 메모리 영역들(260) 중 제1 내지 제3 메모리 영역들(RA1 내지 RA3)을 일례로 도시하고 있다.
우선, 4a를 참조하면, 제1 및 제2 메모리 영역들(RA1 및 RA2)이 핫 메모리 영역으로 구분되고, 제3 메모리 영역(RA3)이 콜드 메모리 영역으로 구분된 것을 확인할 수 있다. 또한, 제2 메모리 영역(RA2)에서 라이트 동작이 수행되는 제1 메모리 블록에 인접하여 8개의 제2 메모리 블록들이 배치되어 있다.
제1 메모리 블록이 핫 메모리 블록으로 검출되고, 8개의 제2 메모리 블록들이 모두 콜드 메모리 블록으로 검출된 경우, 제2 메모리 영역(RA2)이 핫 메모리 영역이므로 제2 메모리 블록들의 데이터가 콜드 메모리 영역으로 이동될 수 있다. 도 4a에서는 제2 메모리 블록들의 데이터가 제3 메모리 영역(RA3)의 프리 메모리 블록들로 이동된 것을 확인할 수 있다.
다음으로, 4b를 참조하면, 제1 메모리 영역(RA1)이 핫 메모리 영역으로 구분되고, 제2 및 제3 메모리 영역들(RA2 및 RA3)이 콜드 메모리 영역으로 구분되어 있다, 그리고, 제2 메모리 영역(RA2)에서 라이트 동작이 수행되는 제1 메모리 블록에 인접하여 8개의 제2 메모리 블록들이 배치되어 있다.
제1 메모리 블록이 핫 메모리 블록으로 검출되고, 8개의 제2 메모리 블록들이 모두 콜드 메모리 블록으로 검출된 경우, 제2 메모리 영역(RA2)이 콜드 메모리 영역이므로 제1 메모리 블록의 데이터가 핫 메모리 영역으로 이동될 수 있다. 도 4b에서는 제1 메모리 블록의 데이터가 제1 메모리 영역(RA1)의 프리 메모리 블록들로 이동된 것을 확인할 수 있다.
도 5는 본 발명의 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 순서도이다.
1) 라이트 동작 업데이트(S510).
라이트 동작 관리부(230)은 복수의 메모리 블록들(262)에 라이트 동작이 수행될 때마다 복수의 메모리 블록들(262)에 대한 라이트 동작 횟수를 업데이트할 수 있다. 즉, 라이트 동작 관리부(230)는 카운팅부(232)를 포함하여, 복수의 메모리 블록들(262)에 대한 라이트 동작 횟수를 카운트할 수 있다. 라이트 동작 관리부(230)는 복수의 메모리 블록들(262)에 대해 카운트된 라이트 동작 횟수를 합산하고, 합산된 값을 복수의 메모리 블록들(262)의 개수로 나눠 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수를 계산할 수 있다.
더 나아가, 라이트 동작 관리부(230)는 다수의 메모리 영역들(260) 각각에 포함됨 메모리 블록들(262)의 카운트된 라이트 동작 횟수를 합산하여 다수의 메모리 영역들(260) 각각의 전체 라이트 동작 횟수를 계산할 수 있다. 라이트 동작 관리부(230)는 다수의 메모리 영역들(260) 각각의 전체 라이트 동작 횟수를 제2 기준 값과 비교할 수 있다. 비교 결과, 다수의 메모리 영역들(260) 중 전체 라이트 동작 횟수가 제2 기준 값 이상인 메모리 영역은 핫 메모리 영역으로 구분되고, 전체 라이트 동작 횟수가 제2 기준 값 미만인 메모리 영역은 콜드 메모리 영역으로 구분될 수 있다.
2) 카운트 확인 및 핫 메모리 블록 검출(S520~S540)
메모리 블록 검출부(240)는 복수의 메모리 블록들(262) 중 라이트 동작이 수행된 제1 메모리 블록의 라이트 동작 횟수에 해당하는 제1 카운트 값(CNT1)을 바탕으로 핫 메모리 블록을 검출할 수 잇다. 복수의 메모리 블록들(262)에 라이트 동작이 수행되어 라이트 동작 관리부(230)가 라이트 동작 횟수를 업데이트하면, 메모리 블록 검출부(240)의 제1 검출부(242)는 라이트 동작이 수행된 제1 메모리 블록의 제1 카운트 값(CNT1)을 확인할 수 있다(S520).
제1 검출부(242)는 제1 카운트 값(CNT1)과 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG)를 비교할 수 있다. 비교 결과, 제1 카운트 값(CNT1)이 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG)보다 제1 기준 값(RF1) 이상 크면(YES, S530), 제1 메모리 블록은 핫 메모리 블록으로 검출될 수 있다(S540).
3) 카운트 확인 및 콜드 메모리 블록 검출(S550~S570)
메모리 블록 검출부(240)는 복수의 메모리 블록들(262) 중 제1 메모리 블록과 인접한 제2 메모리 블록들의 라이트 동작 횟수에 해당하는 제2 카운트 값(CNT2)을 바탕으로 콜드 메모리 블록을 검출할 수 잇다. 제1 검출부(242)가 제1 메모리 블록을 핫 메모리 블록으로 검출하면, 메모리 블록 검출부(240)의 제2 검출부(244)는 제2 메모리 블록의 제2 카운트 값(CNT2)을 확인할 수 있다(S550).
제2 검출부(244)는 제2 카운트 값(CNT2)과 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG)를 비교할 수 있다. 비교 결과, 제2 카운트 값(CNT2)이 복수의 메모리 블록들(262)의 평균 라이트 동작 횟수(AVG)보다 제1 기준 값(RF1) 이상 작으면(YES, S560), 제2 검출부(244)는 해당 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다(S570).
4) 데이터 이동(S580)
메모리 블록 검출부(240)에 의해 핫 메모리 블록 및 콜드 메모리 블록이 검출되면, 제어부(250)는 검출된 핫 메모리 블록 또는 컴출된 콜드 메모리 블록의 데이터를 이동시킬 수 있다. 이를 위해, 제어부(250)는 맵핑 테이블(234)에 저장된 플래그 정보(FLAG)를 확인할 수 있다. 플래그 정보(FLAG)를 바탕으로 핫 및 콜드 메모리 블록들이 핫 메모리 영역으로부터 검출되었으면, 제어부(250)는 검출된 콜드 메모리 블록의 데이터를 또 다른 콜드 메모리 영역의 프리 메모리 블록으로 이동시킬 수 있다. 또는, 플래그 정보(FLAG)를 바탕으로 핫 및 콜드 메모리 블록들이 콜드 메모리 영역으로부터 검출되었으면, 제어부(250)는 검출된 핫 메모리 블록의 데이터를 또 다른 핫 메모리 영역의 프리 메모리 블록으로 이동시킬 수 있다.
결국, 본 발명의 실시예에 따라 계속적으로 데이터 이동을 수행하게 되면, 메모리 장치의 핫 메모리 영역에서 검출된 핫 메모리 블록은 그대로 유지되고, 콜드 메모리 영역에서 검출된 핫 메모리 블록은 핫 메모리 영역으로 이동하게 된다. 반대로, 콜드 메모리 영역에서 검출된 콜드 메모리 블록은 그대로 유지되고, 핫 메모리 영역에서 검출된 콜드 메모리 블록은 콜드 메모리 영역으로 이동하게 된다. 따라서, 상대적으로 라이트 동작이 많이 수행된 핫 메모리 블록들끼리 서로 모일 수 있고, 상대적으로 라이트 동작이 적게 수행된 콜드 메모리 블록들끼리 서로 모일 수 있다. 결국, 메모리 장치의 인접한 메모리 블록들 사이에 라이트 동작 빈도 차이로 인해 디스터번스가 발생하는 것을 줄일 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 이상에서 설명한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 여러 가지 치환, 변형 및 변경으로 다양한 실시예가 가능함을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 복수의 메모리 블록들을 포함하는 메모리 장치;
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 라이트 동작 관리부;
    상기 복수의 메모리 블록들 중 라이트 동작이 수행된 제1 메모리 블록의 상기 라이트 동작 횟수에 해당하는 제1 카운트 값을 바탕으로 핫 메모리 블록을 검출하는 제1 검출부;
    상기 제1 메모리 블록에 인접하는 제2 메모리 블록들의 상기 라이트 동작 횟수에 해당하는 제2 카운트 값을 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부; 및
    상기 제1 및 제2 검출부들에 의해 상기 핫 및 콜드 메모리 블록들이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 제어부;를 포함하는,
    메모리 시스템.
  2. 제1항에 있어서,
    상기 라이트 동작 관리부가 상기 복수의 메모리 블록들에 대한 라이트 라이트 동작 횟수를 업데이트할 때, 상기 제1 검출부는, 상기 제1 카운트 값이 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수보다 제1 기준 값 이상 크면, 상기 제1 메모리 블록을 상기 핫 메모리 블록으로 검출하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 제1 검출부가 상기 제1 메모리 블록을 상기 핫 메모리 블록으로 검출할 때, 상기 제2 검출부는, 상기 제2 메모리 블록들 중 상기 제2 카운트 값이 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수보다 제1 기준 값 이상 작은 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 메모리 시스템.
  4. 제1항에 있어서,
    상기 라이트 동작 관리부는,
    상기 복수의 메모리 블록들에 대한 상기 라이트 동작 횟수를 카운트하는 카운팅부; 및
    상기 복수의 메모리 블록들의 어드레스와 상기 카운트된 라이트 동작 횟수의 관계를 저장하는 맵핑 테이블;을 포함하는 메모리 시스템.
  5. 제4항에 있어서,
    상기 라이트 동작 관리부는 상기 복수의 메모리 블록들에 대한 상기 카운트된 라이트 동작 횟수를 합산하고, 상기 합산된 라이트 동작 횟수를 상기 복수의 메모리 블록들의 개수로 나눠 얻어진 값을 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수로 상기 맵핑 테이블에 저장하는 메모리 시스템.
  6. 제1항에 있어서,
    상기 메모리 장치는 상기 복수의 메모리 블록들이 그룹화된 다수의 메모리 영역들을 포함하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 라이트 동작 관리부는 상기 다수의 메모리 영역들 각각의 전체 라이트 동작 횟수가 제2 기준 값 이상인지 아닌지에 따라 상기 다수의 메모리 영역들을 핫 메모리 영역 또는 콜드 메모리 영역으로 구분하는 메모리 시스템.
  8. 제7항에 있어서,
    상기 핫 및 콜드 메모리 블록들이 상기 핫 메모리 영역으로부터 검출되면, 상기 제어부는 상기 검출된 콜드 메모리 블록의 데이터를 상기 콜드 메모리 영역의 프리 메모리 블록으로 이동하고,
    상기 핫 및 콜드 메모리 블록들이 상기 콜드 메모리 영역으로부터 검출되면, 상기 제어부는 상기 검출된 핫 메모리 블록의 데이터를 상기 핫 메모리 영역의 프리 메모리 블록으로 이동하는 메모리 시스템.
  9. 제7항에 있어서,
    상기 라이트 동작 관리부는,
    상기 복수의 메모리 블록들에 대한 상기 라이트 동작 횟수를 카운트하는 카운팅부; 및
    상기 복수의 메모리 블록들의 어드레스와 상기 카운트된 라이트 동작 횟수의 관계를 저장하는 맵핑 테이블;을 포함하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 라이트 동작 관리부는 상기 메모리 영역들 각각에 포함된 메모리 블록들에 대한 상기 카운트된 라이트 동작 횟수를 합산하여 얻어진 값을 상기 메모리 영역들 각각의 전체 라이트 동작 횟수로 상기 맵핑 테이블에 저장하는 메모리 시스템.
  11. 라이트 동작에 따라 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 단계;
    상기 복수의 메모리 블록들 중 상기 라이트 동작이 수행된 제1 메모리 블록의 상기 라이트 동작 횟수에 해당하는 제1 카운트 값을 바탕으로 핫 메모리 블록을 검출하는 단계;
    상기 제1 메모리 블록에 인접하는 제2 메모리 블록들의 상기 라이트 동작 횟수에 해당하는 제2 카운트 값을 바탕으로 콜드 메모리 블록을 검출하는 단계; 및
    상기 핫 메모리 블록 및 상기 콜드 메모리 블록이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 단계;를 포함하는,
    메모리 시스템의 동작방법.
  12. 제11항에 있어서,
    상기 핫 메모리 블록을 검출하는 단계는,
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수가 업데이트되면, 상기 제1 카운트 값을 확인하는 단계;
    상기 확인된 제1 카운트 값과 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수를 비교하는 단계; 및
    상기 비교 결과, 상기 확인된 제1 카운트 값이 상기 평균 라이트 동작 횟수보다 제1 기준 값 이상 크면, 상기 제1 메모리 블록을 상기 핫 메모리 블록으로 검출하는 단계;를 포함하는 메모리 시스템의 동작방법.
  13. 제12항에 있어서,
    상기 콜드 메모리 블록을 검출하는 단계는,
    상기 제1 메모리 블록이 상기 핫 메모리 블록으로 검출되면, 상기 제2 카운트 값을 확인하는 단계;
    상기 확인된 제2 카운트 값과 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수를 비교하는 단계; 및
    상기 비교 결과, 상기 제2 메모리 블록들 중 상기 확인된 제2 카운트 값이 상기 평균 라이트 동작 횟수보다 제1 기준 값 이상 작은 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 단계;를 포함하는 메모리 시스템의 동작방법.
  14. 제11항에 있어서,
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 단계는,
    상기 복수의 메모리 블록들에 대한 상기 라이트 동작 횟수를 카운트하는 단계;
    상기 복수의 메모리 블록들에 대한 상기 카운트된 라이트 동작 횟수를 합산하는 단계; 및
    상기 합산된 라이트 동작 횟수를 상기 복수의 메모리 블록들의 개수로 나눠 상기 복수의 메모리 블록들의 평균 라이트 동작 횟수를 획득하는 단계;를 포함하는 메모리 시스템의 동작방법.
  15. 제11항에 있어서,
    상기 메모리 시스템은 상기 복수의 메모리 블록들이 그룹화된 다수의 메모리 영역들을 포함하는 메모리 시스템의 동작방법.
  16. 제15항에 있어서,
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 단계는,
    상기 다수의 메모리 영역들 각각의 전체 라이트 동작 횟수를 제2 기준 값과 비교하는 단계;
    상기 비교 결과, 상기 다수의 메모리 영역들 중 상기 전체 라이트 동작 횟수가 상기 제2 기준 값 이상인 메모리 영역을 핫 메모리 영역으로 구분하는 단계; 및
    상기 비교 결과, 상기 다수의 메모리 영역들 중 상기 전체 라이트 동작 횟수가 상기 제2 기준 값 미만인 메모리 영역을 콜드 메모리 영역으로 구분하는 단계;를 포함하는 메모리 시스템의 동작방법.
  17. 제16항에 있어서,
    상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 단계는,
    상기 핫 메모리 블록 및 상기 콜드 메모리 블록이 상기 핫 메모리 영역으로부터 검출되면, 상기 검출된 콜드 메모리 블록의 데이터를 상기 콜드 메모리 영역의 프리 메모리 블록으로 이동하는 단계; 및
    상기 핫 메모리 블록 및 상기 콜드 메모리 블록이 상기 콜드 메모리 영역으로부터 검출되면, 상기 검출된 핫 메모리 블록의 데이터를 상기 핫 메모리 영역의 프리 메모리 블록으로 이동하는 단계;를 포함하는 메모리 시스템의 동작방법.
  18. 제16항에 있어서,
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 업데이트하는 단계는,
    상기 복수의 메모리 블록들에 대한 상기 라이트 동작 횟수를 카운트하는 단계; 및
    상기 메모리 영역들 각각에 포함된 메모리 블록들에 대한 상기 카운트된 라이트 동작 횟수를 합산하여 상기 메모리 영역들 각각의 전체 라이트 동작 횟수를 획득하는 단계;를 더 포함하는 메모리 시스템의 동작방법.
  19. 복수의 메모리 블록들로 구성된 다수의 메모리 영역들을 포함하는 메모리 장치;
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 바탕으로, 상기 복수의 메모리 블록들 중 라이트 동작이 수행된 제1 메모리 블록과 상기 제1 메모리 블록에 인접하는 제2 메모리 블록을 각각 핫 메모리 블록 및 콜드 메모리 블록으로 검출하는 메모리 블록 검출부; 및
    상기 메모리 블록 검출부에 의해 상기 핫 및 콜드 메모리 블록들이 검출되면, 상기 검출된 핫 메모리 블록 또는 상기 검출된 콜드 메모리 블록의 데이터를 이동하는 제어부;를 포함하는,
    메모리 시스템.
  20. 제19항에 있어서,
    상기 복수의 메모리 블록들에 대한 라이트 동작 횟수를 바탕으로, 상기 다수의 메모리 영역들을 핫 메모리 영역 또는 콜드 메모리 영역으로 구분하는 라이트 동작 관리부를 더 포함하고,
    상기 제어부는,
    상기 핫 및 콜드 메모리 블록들이 상기 핫 메모리 영역으로부터 검출되면, 상기 검출된 콜드 메모리 블록의 데이터를 상기 콜드 메모리 영역의 프리 메모리 블록으로 이동하고,
    상기 핫 및 콜드 메모리 블록들이 상기 콜드 메모리 영역으로부터 검출되면, 상기 검출된 핫 메모리 블록의 데이터를 상기 핫 메모리 영역의 프리 메모리 블록으로 이동하는 메모리 시스템.
KR1020170104298A 2017-08-17 2017-08-17 메모리 시스템 및 그의 동작방법 KR20190019429A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170104298A KR20190019429A (ko) 2017-08-17 2017-08-17 메모리 시스템 및 그의 동작방법
US15/965,450 US10795609B2 (en) 2017-08-17 2018-04-27 Memory system and operating method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170104298A KR20190019429A (ko) 2017-08-17 2017-08-17 메모리 시스템 및 그의 동작방법

Publications (1)

Publication Number Publication Date
KR20190019429A true KR20190019429A (ko) 2019-02-27

Family

ID=65361403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170104298A KR20190019429A (ko) 2017-08-17 2017-08-17 메모리 시스템 및 그의 동작방법

Country Status (2)

Country Link
US (1) US10795609B2 (ko)
KR (1) KR20190019429A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI657446B (zh) * 2018-05-29 2019-04-21 華邦電子股份有限公司 電阻式記憶體及寫入方法
US10585795B2 (en) * 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
TWI688958B (zh) * 2019-08-23 2020-03-21 群聯電子股份有限公司 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置
CN112445416B (zh) * 2019-09-02 2022-11-22 群联电子股份有限公司 冷区域判断方法、存储器控制电路单元与存储器存储装置
US20230342060A1 (en) * 2022-04-26 2023-10-26 Micron Technology, Inc. Techniques for data transfer operations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR20130076429A (ko) 2011-12-28 2013-07-08 삼성전자주식회사 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치
US20160188455A1 (en) * 2014-12-29 2016-06-30 Sandisk Technologies Inc. Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated

Also Published As

Publication number Publication date
US10795609B2 (en) 2020-10-06
US20190056888A1 (en) 2019-02-21

Similar Documents

Publication Publication Date Title
US10937519B2 (en) Memory devices, memory systems and methods of operating memory devices
KR20190019429A (ko) 메모리 시스템 및 그의 동작방법
US9047983B2 (en) Temperature compensation of conductive bridge memory arrays
KR102633029B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 읽기 방법
US9349479B1 (en) Boundary word line operation in nonvolatile memory
KR102264162B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
US9659658B2 (en) Nonvolatile memory device, storage device including the nonvolatile memory device, and operating method of the storage device
CN105304114A (zh) 存储装置和操作存储系统的方法
KR102178832B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
WO2019059970A1 (en) IDENTIFICATION OF NON-VOLATILE MEMORY CELLS FOR DATA REFRESHMENT
US20160180945A1 (en) Efficient scanning of nonvolatile memory blocks
US11120872B2 (en) Resistive memory devices and methods of operating resistive memory devices
US20160148678A1 (en) Cross-point memory device including multi-level cells and operating method thereof
CN107886987B (zh) 存储系统及其操作方法
US10170181B2 (en) Variable resistance memory device including bidirectional switch, memory system including the same, and operating method thereof
US11043268B2 (en) Resistive memory devices and methods of operating resistive memory devices including adjustment of current path resistance of a selected memory cell in a resistive memory device
US10839897B1 (en) Set/reset methods for crystallization improvement in phase change memories
KR20130098003A (ko) 수직형 저항 메모리 장치의 읽기 방법
KR20210047606A (ko) 메모리 장치
KR102136846B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법
KR20210100404A (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 프로그램 방법
US20160042811A1 (en) Resistive memory device and operating method thereof
TW201637020A (zh) 用於調整特殊應用積體電路中之電壓之平均電壓帶偵測及使用
KR20200071371A (ko) 데이터 비교 기록을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR20200032466A (ko) 비휘발성 메모리 장치 및 비휘발성 메모리 장치에 저장된 데이터를 무효화하는 동작 방법