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

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

Info

Publication number
KR20190093292A
KR20190093292A KR1020180012744A KR20180012744A KR20190093292A KR 20190093292 A KR20190093292 A KR 20190093292A KR 1020180012744 A KR1020180012744 A KR 1020180012744A KR 20180012744 A KR20180012744 A KR 20180012744A KR 20190093292 A KR20190093292 A KR 20190093292A
Authority
KR
South Korea
Prior art keywords
memory
memory block
memory blocks
blocks
detected
Prior art date
Application number
KR1020180012744A
Other languages
English (en)
Other versions
KR102507646B1 (ko
Inventor
정승규
권정현
홍도선
신원규
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020180012744A priority Critical patent/KR102507646B1/ko
Priority to US16/124,927 priority patent/US10818365B2/en
Priority to CN201811407007.XA priority patent/CN110109611B/zh
Publication of KR20190093292A publication Critical patent/KR20190093292A/ko
Application granted granted Critical
Publication of KR102507646B1 publication Critical patent/KR102507646B1/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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/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/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits

Abstract

본 기술은 메모리 시스템 및 그 동작방법에 관한 것으로서, 복수의 메모리 블록들을 포함하는 메모리 장치, 라이트 동작 시, 상기 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출하는 제1 검출부, 상기 핫 메모리 블록이 검출되면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하고, 상기 검출된 제1 메모리 블록들의 어드레스를 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부, 및 상기 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환하는 웨어-레벨링부를 제공한다.

Description

메모리 시스템 및 그의 동작방법{MEMORY SYSTEM AND OPERATION METHOD FOR THE SAME}
본 발명은 메모리 장치를 포함하는 메모리 시스템에 관한 것으로서, 더욱 상세하게는 메모리 장치의 리드 디스터브(disturb)를 줄이는 메모리 시스템 및 그 동작방법에 관한 것이다.
메모리 장치는 크게 휘발성 메모리 장치(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) 등이 있다. 플래시 메모리 장치는 크게 노어형(NOR-type)과 낸드형(NAND-type)으로 구분된다.
비휘발성 메모리 장치들 중, 예를 들면, 상-변화 랜덤 액세스 메모리(PCRAM)는 제한된 쓰기 내구성(limited write endurance)을 갖는다. 쓰기 내구성은, 저장매체(storage media)가 신뢰성을 잃기 전에 메모리 블록에 가해질 수 있는 쓰기(라이트) 싸이클의 횟수로 정의될 수 있다. 이 쓰기 내구성은, 얼마나 자주 그리고 얼마나 전체적으로 메모리가 사용되는지를 추정함으로써 계산될 수 있다.
따라서, 특정 메모리 셀 영역에 대해서 쓰기 동작이 집중되는 경우에 메모리 장치의 수명이 급격히 감소할 수 있다. 이를 방지하게 위해 메모리 장치의 전체 메모리 셀 영역에서 쓰기 동작이 균등하게 수행될 수 있도록 웨어-레벨링(wear-leveling) 동작을 수행한다. 웨어-레벨링 동작은, 저장매체의 쓰기 내구성을 연장하기 위해 사용되는 기술이다. 이 기술은, 저장매체에 데이터를 기록할 때 각 메모리 셀에 분산 쓰기 작업이 수행되도록 하고, 이로 인해 저장매체의 특정 메모리 셀의 반복 사용을 줄이고, 모든 메모리 셀들이 균등하게 사용될 수 있도록 한다.
한편, 메모리 장치의 집적도가 향상됨에 따라 메모리 셀들 사이의 간격이 점점 좁아지고 있다. 이로 인해 메모리 셀들 사이의 커플링으로 인한 오동작이 문제될 수 있다. 예를 들면, 메모리 장치의 특정 메모리 셀에 읽기(리드) 동작이 반복되는 경우, 인접한 메모리 셀에 스트레스가 축적되어 저장된 데이터가 변하는 리드 디스터브가 발생할 수 있다.
본 발명은 메모리 장치의 리드 동작을 확인하고, 메모리 장치의 영역에 따라 발생하는 리드 디스터브를 줄일 수 있는 메모리 시스템 및 그 동작방법을 제공하고자 한다.
본 발명의 일 실시예에 따른 메모리 시스템은, 복수의 메모리 블록들을 포함하는 메모리 장치; 라이트 동작 시, 상기 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출하는 제1 검출부; 상기 핫 메모리 블록이 검출되면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하고, 상기 검출된 제1 메모리 블록들의 어드레스를 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부; 및 상기 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환하는 웨어-레벨링부를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작방법은, 라이트 동작 시, 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출하는 단계; 상기 핫 메모리 블록이 검출되면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하는 단계; 상기 검출된 제1 메모리 블록들의 어드레스를 바탕으로 콜드 메모리 블록을 검출하는 단계; 및 상기 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작방법은, 복수의 메모리 블록들의 리드 동작 횟수를 확인하는 단계; 상기 복수의 메모리 블록들 중 상기 확인된 리드 동작 횟수가 제2 임계값 미만인 메모리 블록들을 검출하는 단계; 상기 검출된 메모리 블록들 중 어드레스가 상기 복수의 메모리 블록들 중 지정된 메모리 블록들의 어드레스와 일치하지 않는 메모리 블록을 제2 메모리 블록으로 검출하는 단계; 상기 지정된 메모리 블록들 중 상기 확인된 리드 동작 횟수가 제3 임계값 이상인 메모리 블록을 제3 메모리 블록으로 검출하는 단계; 및 상기 검출된 제2 메모리 블록 및 제3 메모리 블록의 데이터를 교환하는 단계를 포함할 수 있다.
본 기술은 라이트 동작 횟수를 바탕으로 메모리 장치의 핫 및 콜드 메모리 블록들을 검출해 교환하면서, 핫 메모리 블록이 메모리 장치의 특정 영역으로 이동하는 것을 막을 수 있다. 따라서, 핫 메모리 블록으로 인해 리드 디스터브 발생하는 것을 방지할 수 있다. 이때, 리드 동작 횟수를 고려하여 핫 메모리 블록이 특정 영역으로 이동하는 것을 선택적으로 결정해 웨어-레벨링 동작의 효율을 높일 수 있다.
또한, 리드 동작 횟수를 바탕으로 콜드 메모리 블록을 메모리 장치의 특정 영역에 배치할 수 있다. 따라서, 리드 동작 시 비트 에러율을 낮추고, ECC 동작이나 스크럽 동작의 횟수를 줄일 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 나타내는 블록도.
도 2는 도 1에 도시된 메모리 컨트롤러를 나타내는 블록도.
도 3a 및 도 3b는 도 1에 도시된 메모리 장치의 메모리 블록들의 이동을 나타내는 도면.
도 4는 본 발명의 일 실시예에 따른 메모리 시스템의 동작을 나타내는 순서도.
도 5는 본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작을 나타내는 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템(100)을 나타내는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110), 및 메모리 장치(120)를 포함할 수 있다.
메모리 컨트롤러(110)는 호스트(미도시)로부터의 요청에 응답하여, 메모리 장치(120)의 동작을 제어할 수 있다. 예컨대, 메모리 컨트롤러(110)는, 호스트로부터 제공된 데이터(DATA)를 메모리 장치(120)에 저장하고, 메모리 장치(120)로부터 리드된 데이터(DATA)를 호스트로 제공한다. 이를 위해, 메모리 컨트롤러(110)는 라이트/리드 커맨드(WT/RD) 및 어드레스(ADD)를 생성하여 메모리 장치(220)의 라이트(write) 및 리드(read) 동작을 제어할 수 있다.
뿐만 아니라, 메모리 컨트롤러(110)는 메모리 장치(120)에 대해 여러 종류의 배경(background) 동작을 제어할 수 있다. 앞서 설명한 것과 같이, 메모리 컨트롤러(110)는 메모리 장치(120)의 전체 메모리 셀 영역에서 라이트 동작이 균등하게 수행될 수 있도록 웨어 레벨링(wear-leveling) 동작을 수행할 수 있다. 또한, 메모리 컨트롤러(110)는 리드 동작으로 인한 리드 디스터브로 메모리 장치(120)의 메모리 셀들의 데이터가 변하는 것을 방지할 수 있다. 메모리 컨트롤러(110)의 이와 같은 동작에 대해서는 도 2를 참조해서 보다 더 구체적으로 설명하고자 한다.
메모리 장치(120)는 PCRAM을 포함할 수 있다. 그러나, 본 발명이 이에 한정되는 것은 아니며, MRAM, RRAM, FRAM, 및 플래시 메모리 등의 비휘발성 메모리 장치를 포함할 수 있다. 도 1은 메모리 장치(120)의 여러 구성들 중 본 발명과 관련되는 구성, 즉, 메모리 셀 영역을 나타내고 있다.
메모리 장치(120)는 매트릭스 형태로 배열되어 복수의 워드 라인들과 복수의 비트 라인들에 연결되는 메모리 셀들(미도시)을 포함할 수 있다. 메모리 장치(120)의 메모리 셀 영역에는 메모리 셀들이 규칙적으로 배열되어 메모리 셀 어레이(130)를 형성할 수 있다. 메모리 셀 어레이(130)에 대응하여, 메모리 셀들에 연결된 워드 라인들을 구동하기 위한 서브 워드 라인 드라이버 영역(SWD, 140) 및 메모리 셀들에 연결된 비트 라인들의 데이터를 감지/증폭하기 위한 비트 라인 센스 앰프 영역(BLSA, 150)이 배치될 수 있다. 도 1은 메모리 장치(120)에 포함되는 복수의 메모리 셀 어레이들을 대표하여 하나의 메모리 셀 어레이(130)에 대해 도시하고 있다.
메모리 셀 어레이(130)에 포함된 복수의 메모리 셀들은 메인 워드 라인들과 각각의 메인 워드 라인에 연결된 복수의 서브 워드 라인들에 계층적으로 연결될 수 있다. 서브 워드 라인 드라이버 영역(140)은 메인 워드 라인 구동 신호 및 로컬 워드 라인 구동 신호에 응답하여 특정 워드 라인을 구동하기 위한 복수의 드라이버들이 배치될 수 있다.
구동된 워드 라인에 연결된 메모리 셀들의 데이터는 비트 라인 센스 앰프 영역(150)에 배치된 복수의 센스 앰프들에 의해 비트 라인들을 통해 감지/증폭될 수 있다. 복수의 센스 앰프들은 데이터에 따라 비트 라인들을 구동하여 메모리 셀들에 데이터를 저장할 수 있다.
메모리 셀 어레이(130)는 복수의 메모리 블록들을 포함할 수 있다. 도 1에 도시된 것처럼, 메모리 셀 어레이(130)와 서브 워드 라인 드라이버 영역(140) 및 비트 라인 센스 앰프 영역(150)의 배치에 따라서, 메모리 블록들은 각각의 영역과의 거리를 바탕으로 구분될 수 있다.
예를 들어, 서브 워드 라인 드라이버 영역(140) 및 비트 라인 센스 앰프 영역(150)을 기준으로, 가장 인접하여 배치된 메모리 블록(N, near), 가장 떨어져서 배치된 메모리 블록(F, far)과 그 사이에 배치된 메모리 블록(M, middle)으로 구분될 수 있다. 이는, 본 발명의 실시예일 뿐이며, 각각의 영역과의 거리를 더욱 세분화하거나 단순화하여 메모리 블록들을 구분할 수 있다.
이때, 서브 워드 라인 드라이버 영역(140) 및 비트 라인 센스 앰프 영역(150)에 인접하여 배치된 메모리 블록의 경우, 각각의 영역에 포함된 드라이버나 센스 앰프의 동작에 의해 영향을 받을 수 있다. 즉, 메모리 블록에 포함된 메모리 셀들의 데이터가 영향을 받을 수 있다. 특히, 서브 워드 라인 드라이버 영역(140) 및 비트 라인 센스 앰프 영역(150)에 모두 인접한 메모리 블록(NN)에 리드 동작이 수행될 때, 서브 워드 라인 드라이버 영역(140) 및 비트 라인 센스 앰프 영역(150)에 모두 먼 메모리 블록(FF) 보다 데이터에 비트 에러가 발생할 확률이 더 높다. 따라서, 이러한 메모리 블록(NN)에 리드 동작이 자주 수행된다면, 리드된 데이터에 발생한 비트 에러로 인해 ECC(Error Correction Code) 동작이나 스크럽(scrub) 동작의 횟수 역시 증가될 수 있다. 복수의 메모리 블록들에 수행되는 리드 동작에 따라서 메모리 블록들을 재배치할 필요가 있다.
도 2는 도 1에 도시된 메모리 컨트롤러(110)를 나타내는 블록도이다. 도 2를 참조하면, 메모리 컨트롤러(110)는 카운팅부(210), 제1 검출부(230), 제2 검출부(240), 및 웨어-레벨링부(250)를 포함할 수 있다.
본 발명의 일 실시예에 따라, 카운팅부(210)는 메모리 장치(120)에 수행되는 라이트 동작을 카운트할 수 있다. 메모리 장치(120)의 복수의 메모리 블록들에 라이트 동작 및 리드 동작이 비례해서 수행되는 경우, 카운팅부(210)는 라이트 동작만을 카운트하여 동작 로드를 줄일 수 있다.
카운팅부(210)는 라이트 커맨드(WT)에 응답하여 카운팅 동작을 수행할 수 있다. 이때, 카운팅부(210)는 라이트 동작이 수행되는 메모리 블록을 나타내는 어드레스(ADD)를 입력받을 수 있다. 라이트 커맨드(WT)에 응답하여, 카운팅부(210)는 라이트 동작이 수행되는 메모리 블록에 해당하는 어드레스(ADD)의 라이트 카운트 값(CNTw)을 증가시킬 수 있다. 따라서, 카운팅부(210)는 복수의 메모리 블록들의 라이트 동작 횟수를 나타내는 라이트 카운트 값(CNTw)을 생성할 수 있다. 카운팅부(210)는 맵 테이블(220)을 포함하고, 복수의 메모리 블록들의 어드레스(ADD)와 라이트 카운트 값(CNTw)의 관계를 저장할 수 있다.
라이트 동작 시, 제1 검출부(230)는 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출할 수 있다. 라이트 커맨드(WT)가 입력되면, 제1 검출부(230)는 카운팅부(210)로부터 라이트 동작이 수행된 메모리 블록의 라이트 카운트 값(CNTw)을 확인할 수 있다. 확인된 라이트 카운트 값(CNTw)이 제1 임계값(TH1) 이상이면, 제1 검출부(230)는 라이트 동작이 수행된 메모리 블록을 핫 메모리 블록으로 검출할 수 있다. 제1 검출부(230)는 라이트 동작이 수행된 메모리 블록의 어드레스(ADD)를 핫 메모리 블록의 어드레스(ADDh)로 출력할 수 있다.
핫 메모리 블록이 검출되면, 제2 검출부(240)는 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출할 수 있다. 제1 검출부(230)로부터 핫 메모리 블록의 어드레스(ADDh)가 입력되면, 제2 검출부(240)는 카운팅부(210)로부터 라이트 카운트 값들(CNTw)을 확인하고, 확인된 라이트 카운트 값(CNTw)이 제2 임계값(TH2) 미만인 메모리 블록들을 제1 메모리 블록들로 검출할 수 있다.
이때, 제2 검출부(240)는 레지스터, 등을 포함하고, 메모리 장치(120)의 특정 영역의 메모리 블록을 나타내는 어드레스(ADDn)를 저장할 수 있다. 어드레스(ADDn)는 메모리 셀 어레이(130)에서 서브 워드 라인 드라이버 영역(140) 및/또는 비트 라인 센스 앰프 영역(150)에 인접한 영역에 해당하는 메모리 블록 어드레스를 포함할 수 있다. 또는, 어드레스(ADDn)는 특정 로우 어드레스(X) 및 컬럼 어드레스(Y)의 조합을 포함할 수 있다.
제2 검출부(240)는 검출된 제1 메모리 블록들의 어드레스(ADD)를 바탕으로 콜드 메모리 블록을 검출할 수 있다. 제2 검출부(240)는 검출된 제1 메모리 블록들의 어드레스(ADD)를 복수의 메모리 블록들 중 지정된 메모리 블록의 어드레스(ADDn)와 비교할 수 있다. 제2 검출부(240)는 검출된 제1 메모리 블록들 중 어드레스(ADD)가 지정된 메모리 블록의 어드레스(ADDn)와 일치하지 않는 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다. 제2 검출부(240)는 검출된 콜드 메모리 블록의 어드레스(ADDc)를 웨어-레벨링부(250)로 출력할 수 있다.
핫 메모리 블록의 어드레스(ADDh) 및 콜드 메모리 블록의 어드레스(ADDc)를 바탕으로, 웨어-레벨링부(250)는 핫 메모리 블록 및 콜드 메모리 블록을 스왑핑(swapping)할 수 있다. 즉, 웨어-레벨링부(250)는 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 서로 교환할 수 있다.
본 발명의 일 실시예에 따르면, 메모리 컨트롤러(110)는 라이트 동작 횟수가 임계값 이상인 핫 메모리 블록과 라이트 동작 횟수가 임계값 미만인 콜드 메모리 블록을 검출해서 웨어-레벨링을 수행할 수 있다. 웨어-레벨링을 수행하면서, 메모리 컨트롤러(110)는 핫 메모리 블록이 드라이버 및 센스 앰프 영역과 인접한 영역으로 이동하는 것을 차단하여, 리드 디스터브가 발생하는 것을 방지할 수 있다.
본 발명의 또 다른 실시예에 따르면, 카운팅부(210)는 메모리 장치(120)에 수행되는 라이트 동작 및 리드 동작을 카운트할 수 있다. 카운팅부(210)는 라이트/리드 커맨드(WT/RD)에 응답하여 카운팅 동작을 수행할 수 있다. 이때, 카운팅부(210)는 라이트 동작 및 리드 동작이 수행되는 메모리 블록을 나타내는 어드레스(ADD)를 입력 받을 수 있다.
라이트 커맨드(WT)에 응답하여, 카운팅부(210)는 라이트 동작이 수행되는 메모리 블록에 해당하는 어드레스(ADD)의 라이트 카운트 값(CNTw)을 증가시킬 수 있다. 또한, 리드 커맨드(RD)에 응답하여, 카운팅부(210)는 리드 동작이 수행되는 메모리 블록에 해당하는 어드레스(ADD)의 리드 카운트 값(CNTr)를 증가시킬 수 있다.
따라서, 카운팅부(210)는 복수의 메모리 블록들의 라이트 동작 횟수 및 리드 동작 횟수를 나타내는 라이트 카운트 값(CNTw) 및 리드 카운트 값(CNTr)을 생성할 수 있다. 카운팅부(210)는 맵 테이블(220)을 포함하고, 복수의 메모리 블록들의 어드레스(ADD)와 라이트 카운트 값(CNTw) 및 리드 카운트 값(CNTr)의 관계를 저장할 수 있다.
앞서 설명한 바와 같이, 라이트 동작 시, 제1 검출부(230)는 핫 메모리 블록을 검출할 수 있다. 핫 메모리 블록이 검출되면, 제2 검출부(240)는 검출된 핫 메모리 블록의 리드 동작 횟수를 확인할 수 있다. 즉, 제1 검출부(230)로부터 핫 메모리 블록의 어드레스(ADDh)가 입력되면, 제2 검출부(240)는 카운팅부(210)로부터 핫 메모리 블록의 어드레스(ADDh)에 해당하는 리드 카운트 값(CNTr)을 확인할 수 있다.
확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 이상일 때, 제2 검출부(240)는 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하고, 검출된 제1 메모리 블록들의 어드레스(ADD)를 바탕으로 콜드 메모리 블록을 검출할 수 있다. 이는 앞서 설명된 동작으로 중복되는 내용은 생략한다.
반면, 확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 미만이면, 제2 검출부(240)는 복수의 메모리 블록들 중 라이트 동작 횟수가 제2 임계값(TH2) 미만인 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다. 즉, 제2 검출부(240)는 카운팅부(210)로부터 라이트 카운트 값들(CNTw)을 확인하고, 확인된 라이트 카운트 값(CNTw)이 제2 임계값(TH2) 미만인 메모리 블록을 바로 콜드 메모리 블록으로 검출할 수 있다.
본 발명의 또 다른 실시예에 따르면, 메모리 컨트롤러(110)는 라이트 동작 횟수가 임계값 이상인 핫 메모리 블록을 검출하고, 검출된 핫 메모리 블록의 리드 동작 횟수를 확인할 수 있다. 리드 동작 횟수 역시 임계값 이상이면, 메모리 컨트롤러(110)는 검출된 핫 메모리 블록이 웨어-레벨링을 통해 드라이버 및 센스 앰프 영역과 인접한 영역으로 이동하는 것을 차단할 수 있다. 리드 동작 횟수가 임계값 미만이면, 메모리 컨트롤러(110)는 검출된 핫 메모리 블록을 영역에 상관없이 이동시켜 웨어-레벨링의 효율을 높일 수 있다.
본 발명의 또 다른 실시예에 따르면, 메모리 컨트롤러(110)는 제3 검출부(260) 및 블록-스왑핑부(270)를 더 포함할 수 있다.
제3 검출부(260)는 복수의 메모리 블록들 중 리드 동작 횟수 및 어드레스를 바탕으로 제2 메모리 블록 및 제3 메모리 블록을 검출할 수 있다. 제3 검출부(260) 역시 레지스터, 등을 포함하고, 메모리 장치(120)의 지정된 메모리 블록들을 나타내는 어드레스(ADDn)를 저장할 수 있다.
우선, 제3 검출부(260)는 카운팅부(210)로부터 리드 카운트 값들(CNTr)을 확인하고, 확인된 리드 카운트 값(CNTr)이 제2 임계값(TH2) 미만인 메모리 블록들을 검출할 수 있다. 제3 검출부(260)는 검출된 블록들의 어드레스(ADD)를 지정된 메모리 블록들의 어드레스(ADDn)와 비교할 수 있다. 제3 검출부(260)는 검출된 메모리 블록들 중 어드레스(ADD)가 지정된 메모리 블록들의 어드레스(ADDn)와 일치하지 않는 메모리 블록을 제2 메모리 블록으로 검출할 수 있다.
또한, 제3 검출부(260)는 지정된 메모리 블록들 중 확인된 리드 동작 횟수가 제3 임계값(TH3) 이상인 메모리 블록을 제3 메모리 블록으로 검출할 수 있다. 즉, 제3 검출부(260)는 지정된 메모리 블록들 중 확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 이상인 메모리 블록을 제3 메모리 블록으로 검출할 수 있다.
제3 검출부(260)가 검출된 제2 메모리 블록 및 제3 메모리 블록의 어드레스들(ADD2 및 ADD3)을 출력하면, 블록-스왑핑부(270)는 제2 메모리 블록 및 제3 메모리 블록을 스왑핑(swapping)할 수 있다. 즉, 블록-스왑핑부(270)는 제2 메모리 블록 및 제3 메모리 블록의 데이터를 교환할 수 있다.
본 발명의 또 다른 실시예에 따르면, 메모리 컨트롤러(110)는 리드 동작 횟수가 임계값 미만인 메모리 블록을 드라이버 및 센스 앰프 영역과 인접한 영역으로 이동시킬 수 있다. 따라서, 드라이버 및 센스 앰프 영역과 인접한 영역에 리드 동작이 빈번이 수행되어 리드 디스터브가 발생하는 것을 방지할 수 있다.
도 3a 및 도 3b는 도 1에 도시된 메모리 장치(120)의 메모리 블록들의 이동을 나타내는 도면이다. 도 3a는 핫 메모리 블록 및 콜드 메모리 블록을 검출해서 웨어-레벨링하는 동작을 나타내고, 도 3b는 제2 메모리 블록 및 제3 메모리 블록을 검출해서 블록-스왑핑하는 동작을 나타낸다. 도 3a 및 도 3b는 메모리 장치(120)가 9개의 메모리 블록들을 포함하는 것을 일례로 도시하고 있다.
우선, 3a를 참조하면, 각각의 메모리 블록에 해당하는 어드레스(X,Y)와 라이트 카운트 값 및 리드 카운트 값이 도시되어 있다. 예를 들면, 어드레스(2,2)에 해당하는 메모리 블록의 라이트 카운트 값은 '50'이고, 리드 카운트 값은 '500'인 것을 확인할 수 있다. 즉, 어드레스(2,2)에 해당하는 메모리 블록에 라이트 동작이 50번, 그리고 리드 동작이 500번 수행된 것을 의미한다.
또한, 도 1에 도시된 것과 같이, 어드레스(0,0)에 해당하는 메모리 블록이 서브 워드 라인 드라이버 영역 및 비트 라인 센스 앰프 영역에 모두 인접한 메모리 블록을 나타낸다. 즉, 어드레스(0,0)가 복수의 메모리 블록들 중 지정된 메모리 블록의 어드레스(ADDn)를 나타내며, 제2 검출부(240)에 저장될 수 있다.
어드레스(X,Y)와 라이트 카운트 값 및 리드 카운트 값의 관계는 카운팅부(210)의 맵 테이블(220)에 저장될 수 있다. 제1 검출부(230) 및 제2 검출부(240)는 맵 테이블(220)을 확인하여 핫 메모리 블록 및 콜드 메모리 블록을 검출할 수 있다. 이때, 제1 임계값(TH1), 제2 임계값(TH2) 및 제3 임계값(TH3)은 각각 (100, 30, 1000)으로 가정할 수 있다.
도 3a의 좌측의 9개의 메모리 블록들 중에서 어느 하나, 예를 들어, 가운데 메모리 블록(1,1)에 라이트 동작이 수행되면, 카운팅부(210)는 대응하는 라이트 카운트 값(99)을 하나 증가시킬 수 있다. 따라서, 가운데 메모리 블록(1,1)의 라이트 카운트 값(100)은 제1 임계값(TH1) 이상이 되고, 제1 검출부(230)는 가운데 메모리 블록(1,1)을 핫 메모리 블록으로 검출할 수 있다.
본 발명의 일 실시예에 따라, 핫 메모리 블록(1,1)이 검출되면, 제2 검출부(240)는 9개의 메모리 블록들의 라이트 카운트 값들을 확인하고, 라이트 카운트 값이 제2 임계값(TH2) 미만인 메모리 블록들((2,1) 및 (0,0))을 제1 메모리 블록들로 검출할 수 있다. 그리고, 검출된 제1 메모리 블록들((2,1) 및 (0,0)) 중 어드레스가 지정된 메모리 블록의 어드레스(0.0)와 일치하지 않는 메모리 블록(2,1)을 콜드 메모리 블록으로 검출 할 수 있다.
웨어-레벨링부(250)는 검출된 핫 메모리 블록(1,1) 및 콜드 메모리 블록(2,1)을 서로 교환하여 이동시킬 수 있다. 도 3a의 우측에는 웨어-레벨링 동작이 완료된 9개의 메모리 블록들을 확인할 수 있다. 본 발명의 일 실시예에 따르면 지정된 메모리 블록(0,0)은 라이트 카운트 값(10)이 작더라도 콜드 메모리 블록으로 검출되는 것을 배제할 수 있다. 따라서, 핫 메모리 블록(1,1)이 지정된 메모리 블록(0,0)으로 이동되어 리드 디스터브가 발생하는 것을 방지할 수 있다.
본 발명의 또 다른 실시예에 따라, 핫 메모리 블록(1,1)이 검출되면, 제2 검출부(240)는 핫 메모리 블록(1,1)의 리드 카운트 값(1000)을 확인할 수 있다. 리드 카운트 값(1000)이 제3 임계값(TH3) 이상이므로, 제2 검출부(240)는 앞서 설명한 방식으로 콜드 메모리 블록(2,1)을 검출하고, 핫 메모리 블록(1,1) 및 콜드 메모리 블록(2,1)이 교환될 수 있다.
만약, 리드 카운트 값(1000)이 제3 임계값(TH3) 미만이라면, 제2 검출부(240)는 지정된 메모리 블록(0,0)도 콜드 메모리 블록(2,1)으로 검출할 수 있고, 핫 메모리 블록(1,1) 및 콜드 메모리 블록(0,0)이 교환될 수 있다. 즉, 핫 메모리 블록(1,1)에 리드 동작이 많이 수행되지 않았기 때문에, 리드 디스터브에 상관없이 웨어 레벨링 동작을 수행할 수 있다.
다음으로, 3b를 참조하면, 각각의 메모리 블록에 해당하는 어드레스(X,Y)와 리드 카운트 값이 도시되어 있다. 그리고, 도 3a와는 달리 어드레스((0,0), (1,0), (0,1))에 해당하는 메모리 블록들이 지정된 메모리 블록들로 포함되고, 제3 임계값(TH3)이 (100)으로 설정될 수 있다.
제3 검출부(260)는 좌측의 9개의 메모리 블록들의 리드 카운트 값들을 확인하고, 리드 카운트 값이 제2 임계값(TH2) 미만인 메모리 블록들((1,1) 및 (1,0))을 검출할 수 있다. 그리고, 검출된 메모리 블록들((1,1) 및 (1,0)) 중 어드레스가 지정된 메모리 블록의 어드레스((0.0), (1,0), (0,1))와 일치하지 않는 메모리 블록(1,1)을 제2 메모리 블록으로 검출 할 수 있다.
또한, 제3 검출부(260)는 지정된 메모리 블록들((0.0), (1,0), (0,1)) 중 확인된 리드 카운트 값이 제3 임계값(TH3) 이상인 메모리 블록(0,0)을 제3 메모리 블록으로 검출할 수 있다. 따라서, 블록-스왑핑부(270)는 검출된 제2 메모리 블록(1,1) 및 제3 메모리 블록(0,0)을 서로 교환하여 이동시킬 수 있다. 도 3a의 우측에는 블록-스왑핑 동작이 완료된 9개의 메모리 블록들을 확인할 수 있다.
본 발명의 실시예에 따르면 메모리 컨트롤러(110)는 복수의 메모리 블록들 중 리드 카운트 값(10)이 작은 제2 메모리 블록(1,1)을 검출하고, 지정된 메모리 블록들((0.0), (1,0), (0,1)) 중 리드 카운트 값(100)이 큰 제3 메모리 블록(0,0)을 검출할 수 있다. 따라서, 리드 동작이 적게 수행된 제2 메모리 블록(1,1)과 지정된 메모리 블록들 중 리드 동작이 많이 수행된 제3 메모리 블록(0,0)을 서로 교환하여 줌으로써 리드 디스터브가 발생하는 것을 방지할 수 있다.
도 4는 본 발명의 일 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 순서도이다.
1) 라이트/리드 동작 카운트(S410).
카운팅부(210)는 메모리 장치(120)에 수행되는 라이트 동작 및 리드 동작을 카운트할 수 있다. 카운팅부(210)는 라이트 커맨드(WT)에 응답하여 라이트 동작이 수행되는 메모리 블록에 해당하는 어드레스(ADD)의 라이트 카운트 값(CNTw)을 증가시키고, 리드 커맨드(RD)에 응답하여 리드 동작이 수행되는 메모리 블록에 해당하는 어드레스(ADD)의 리드 카운트 값(CNTr)을 증가시킬 수 있다. 카운팅부(210)는 복수의 메모리 블록들의 어드레스(ADD)와 라이트 카운트 값(CNTw) 및 리드 카운트 값(CNTr)의 관계를 맵 테이블(220)에 저장할 수 있다.
2) 핫 메모리 블록 검출(S420)
라이트 동작 시, 제1 검출부(230)는 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출할 수 있다. 즉, 라이트 커맨드(WT)가 입력되면, 제1 검출부(230)는 카운팅부(210)로부터 라이트 동작이 수행된 메모리 블록의 라이트 카운트 값(CNTw)을 확인하고, 확인된 라이트 카운트 값(CNTw)을 제1 임계값(TH1)과 비교할 수 있다. 확인된 라이트 카운트 값(CNTw)이 제1 임계값(TH1) 이상이면, 제1 검출부(230)는 라이트 동작이 수행된 메모리 블록을 핫 메모리 블록으로 검출할 수 있다. 이때, 제1 임계값(TH1)은 메모리 셀의 리텐션(retention) 타임과 같이 내구성과 관련된 특성을 저하시키지 않는 한도의 반복된 라이트 동작 횟수일 수 있다.
3) 제1 메모리 블록 검출(S430)
제1 검출부(230)가 핫 메모리 블록을 검출하면, 제2 검출부(240)는 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출할 수 있다. 제1 검출부(230)로부터 핫 메모리 블록의 어드레스(ADDh)가 입력되면, 제2 검출부(240)는 카운팅부(210)로부터 라이트 카운트 값들(CNTw)을 확인하고, 확인된 라이트 카운트 값(CNTw)이 제2 임계값(TH2) 미만인 메모리 블록들을 제1 메모리 블록들로 검출할 수 있다. 이때, 제2 임계값(TH2)은 호스트로부터 자주 이용되지 않는 데이터의 접근 횟수일 수 있다.
4) 콜드 메모리 블록 검출(S440)
제2 검출부(240)는 검출된 제1 메모리 블록들의 어드레스(ADD)를 바탕으로 콜드 메모리 블록을 검출할 수 있다. 제2 검출부(240)는 검출된 제1 메모리 블록들의 어드레스(ADD)를 복수의 메모리 블록들 중 지정된 메모리 블록의 어드레스(ADDn)와 비교할 수 있다. 제2 검출부(240)는 검출된 제1 메모리 블록들 중 어드레스(ADD)가 지정된 메모리 블록의 어드레스(ADDn)와 일치하지 않는 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다.
4) 웨어-레벨링(S450)
웨어-레벨링부(250)는 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환할 수 있다. 핫 메모리 블록의 어드레스(ADDh) 및 콜드 메모리 블록의 어드레스(ADDc)를 바탕으로, 웨어-레벨링부(250)는 핫 메모리 블록 및 콜드 메모리 블록을 스왑핑(swapping)할 수 있다.
5) 리드 동작 횟수 확인(S460)
본 발명의 또 다른 실시예에 따라, 제1 검출부(230)가 핫 메모리 블록을 검출하면, 제2 검출부(240)는 검출된 핫 메모리 블록의 리드 동작 횟수를 확인할 수 있다. 즉, 제1 검출부(230)로부터 핫 메모리 블록의 어드레스(ADDh)가 입력되면, 제2 검출부(240)는 카운팅부(210)로부터 핫 메모리 블록의 어드레스(ADDh)에 해당하는 리드 카운트 값(CNTr)을 확인하고, 확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3)과 비교할 수 있다.
확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 이상일 때(YES, S460), 제1 메모리 블록 검출 단계(S430)로 진행될 수 있다. 이후, 콜드 메모리 블록 검출 단계(S440) 및 웨어-레벨링 단계(S450)의 동작들은 앞서 설명한 것과 같이 수행될 수 있다. 또한, 제3 임계값(TH3)은 리드 디스터브, 등을 발생시킬 수 있는 반복된 리드 동작 횟수일 수 있다.
6) 콜드 메모리 블록 검출(S470)
확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 미만이면(NO, S460), 콜드 메모리 블록 검출 단계(S470)가 바로 수행될 수 있다. 즉, 제2 검출부(240)는 복수의 메모리 블록들 중 라이트 동작 횟수가 제2 임계값(TH2) 미만인 메모리 블록을 콜드 메모리 블록으로 검출할 수 있다. 이후, 웨어-레벨링 단계(S450)의 동작들은 앞서 설명한 것과 같이 수행될 수 있다.
도 5는 본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작을 설명하기 위한 순서도이다.
1) 리드 동작 횟수 확인(S510).
카운팅부(210)는 메모리 장치(120)에 수행되는 리드 동작을 카운트할 수 있다. 카운팅부(210)는 복수의 메모리 블록들의 어드레스(ADD)와 리드 카운트 값(CNTr)의 관계를 맵 테이블(220)에 저장할 수 있다. 제3 검출부(260)는 복수의 메모리 블록들의 리드 동작 횟수를 확인할 수 있다. 제3 검출부(260)는 카운팅부(210)로부터 리드 카운트 값들(CNTr)을 확인할 수 있다.
2) 제2 메모리 블록 검출(S520)
제3 검출부(260)는 복수의 메모리 블록들 중 확인된 리드 동작 횟수가 제2 임계값(TH2) 미만 메모리 블록들을 검출할 수 있다. 즉, 제3 검출부(260)는 복수의 메모리 블록들 중 확인된 리드 카운트 값(CNTr)이 제2 임계값(TH2) 미만인 메모리 블록들을 검출할 수 있다. 이때, 제2 임계값(TH2)은 호스트로부터 자주 이용되지 않는 데이터의 접근 횟수일 수 있다.
제3 검출부(260)는 검출된 메모리 블록들의 어드레스(ADD)를 바탕으로 제2 메모리 블록을 검출할 수 있다. 제3 검출부(260)는 검출된 메모리 블록들의 어드레스(ADD)를 복수의 메모리 블록들 중 지정된 메모리 블록들의 어드레스(ADDn)와 비교할 수 있다. 제3 검출부(260)는 검출된 메모리 블록들 중 어드레스(ADD)가 지정된 메모리 블록의 어드레스(ADDn)와 일치하지 않는 메모리 블록을 제2 메모리 블록으로 검출할 수 있다.
3) 제3 메모리 블록 검출(S530)
제3 검출부(260)는 복수의 메모리 블록들의 지정된 메모리 블록들 중 확인된 리드 동작 횟수가 제3 임계값(TH3) 이상인 메모리 블록을 제3 메모리 블록으로 검출할 수 있다. 지정된 메모리 블록의 어드레스(ADDn)를 바탕으로, 제3 검출부(260)는 지정된 메모리 블록들 중 확인된 리드 카운트 값(CNTr)이 제3 임계값(TH3) 이상인 메모리 블록을 제3 메모리 블록으로 검출할 수 있다. 이때, 제3 임계값(TH3)은 앞서 설명한 리드 디스터브, 등을 발생시킬 수 있는 반복된 리드 동작 횟수이거나 그보다 작을 수 있다.
4) 블록-스왑핑(S540)
블록-스왑핑부(270)는 검출된 제2 메모리 블록 및 제3 메모리 블록의 데이터를 교환할 수 있다. 제3 검출부(260)로부터 입력되는 제2 메모리 블록 및 제3 메모리 블록의 어드레스들(ADD2 및 ADD3)을 바탕으로, 블록-스왑핑부(270)는 제2 메모리 블록 및 제3 메모리 블록을 스왑핑(swapping)할 수 있다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 이상에서 설명한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 여러 가지 치환, 변형 및 변경으로 다양한 실시예가 가능함을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 복수의 메모리 블록들을 포함하는 메모리 장치;
    라이트 동작 시, 상기 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출하는 제1 검출부;
    상기 핫 메모리 블록이 검출되면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하고, 상기 검출된 제1 메모리 블록들의 어드레스를 바탕으로 콜드 메모리 블록을 검출하는 제2 검출부; 및
    상기 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환하는 웨어-레벨링부를 포함하는,
    메모리 시스템.
  2. 제1항에 있어서,
    상기 제1 검출부는 상기 라이트 동작이 수행된 메모리 블록의 라이트 동작 횟수가 제1 임계값 이상이면, 상기 라이트 동작이 수행된 메모리 블록을 상기 핫 메모리 블록으로 검출하는 메모리 시스템.
  3. 제1항에 있어서,
    상기 핫 메모리 블록이 검출되면, 상기 제2 검출부는 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수가 제2 임계값 미만인 메모리 블록들을 상기 제1 메모리 블록들로 검출하는 메모리 시스템.
  4. 제1항에 있어서,
    상기 제2 검출부는 상기 검출된 제1 메모리 블록들의 어드레스를 상기 복수의 메모리 블록들 중 지정된 메모리 블록의 어드레스와 비교하고, 비교 결과, 상기 검출된 제1 메모리 블록들 중 어드레스가 일치하지 않는 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 메모리 시스템.
  5. 제4항에 있어서,
    상기 복수의 메모리 블록들 중 지정된 메모리 블록은 워드 라인 드라이버 영역 또는 비트 라인 센스 앰프 영역에 인접한 메모리 블록을 포함하는 메모리 시스템.
  6. 제1항에 있어서,
    상기 핫 메모리 블록이 검출되면, 상기 제2 검출부는 상기 검출된 핫 메모리 블록의 리드 동작 횟수를 확인하고, 상기 확인된 리드 동작 횟수가 제3 임계값 이상일 때, 상기 제1 메모리 블록 및 상기 콜드 메모리 블록을 검출하는 메모리 시스템.
  7. 제6항에 있어서,
    상기 확인된 리드 동작 횟수가 상기 제3 임계값 미만이면, 상기 제2 검출부는 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수가 제2 임계값 미만인 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 메모리 시스템.
  8. 제1항에 있어서,
    상기 복수의 메모리 블록들 중 리드 동작 횟수 및 어드레스를 바탕으로 제2 메모리 블록 및 제3 메모리 블록을 검출하는 제3 검출부; 및
    상기 검출된 제2 메모리 블록 및 제3 메모리 블록의 데이터를 교환하는 블록-스왑핑부를 더 포함하는 메모리 시스템.
  9. 제8항에 있어서,
    상기 제3 검출부는 상기 복수의 메모리 블록들 중 상기 리드 동작 횟수가 제2 임계값 미만인 메모리 블록들을 검출하고, 상기 검출된 메모리 블록들 중 어드레스가 상기 복수의 메모리 블록들 중 지정된 메모리 블록들의 어드레스와 일치하지 않는 메모리 블록을 상기 제2 메모리 블록으로 검출하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 제3 검출부는 상기 지정된 메모리 블록들 중 상기 리드 동작 횟수가 제3 임계값 이상인 메모리 블록을 상기 제3 메모리 블록으로 검출하는 메모리 시스템.
  11. 제1항에 있어서,
    라이트 및 리드 커맨드에 응답해 상기 라이트 동작 및 리드 동작을 카운트하여, 상기 복수의 메모리 블록들의 상기 라이트 동작 횟수 및 리드 동작 횟수를 나타내는 라이트 카운트 값 및 리드 카운트 값을 생성하는 카운팅부를 더 포함하는 메모리 시스템.
  12. 라이트 동작 시, 복수의 메모리 블록들 중 라이트 동작 횟수를 바탕으로 핫 메모리 블록을 검출하는 단계;
    상기 핫 메모리 블록이 검출되면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수를 바탕으로 제1 메모리 블록들을 검출하는 단계;
    상기 검출된 제1 메모리 블록들의 어드레스를 바탕으로 콜드 메모리 블록을 검출하는 단계; 및
    상기 검출된 핫 메모리 블록 및 콜드 메모리 블록의 데이터를 교환하는 단계를 포함하는,
    메모리 시스템의 동작방법.
  13. 제12항에 있어서,
    상기 핫 메모리 블록을 검출하는 단계는
    상기 라이트 동작이 수행된 메모리 블록의 라이트 동작 횟수를 제1 임계값과 비교하는 단계; 및
    상기 확인된 라이트 동작 횟수가 제1 임계값 이상이면, 상기 라이트 동작이 수행된 메모리 블록을 상기 핫 메모리 블록으로 검출하는 단계를 포함하는 메모리 시스템의 동작방법.
  14. 제12항에 있어서,
    상기 제1 메모리 블록들을 검출하는 단계는,
    상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수가 제2 임계값 미만인 메모리 블록들을 상기 제1 메모리 블록들로 검출하는 단계를 포함하는 메모리 시스템의 동작방법.
  15. 제12항에 있어서,
    상기 콜드 메모리 블록을 검출하는 단계는,
    상기 검출된 제1 메모리 블록들의 어드레스를 상기 복수의 메모리 블록들 중 지정된 메모리 블록의 어드레스와 비교하는 단계; 및
    상기 비교 결과, 상기 검출된 제1 메모리 블록들 중 어드레스가 상기 지정된 메모리 블록의 어드레스와 일치하지 않는 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 단계를 포함하는 메모리 시스템의 동작방법.
  16. 제15항에 있어서,
    상기 복수의 메모리 블록들 중 지정된 메모리 블록은 워드 라인 드라이버 영역 또는 비트 라인 센스 앰프 영역에 인접한 메모리 블록을 포함하는 메모리 시스템의 동작방법.
  17. 제12항에 있어서,
    상기 핫 메모리 블록이 검출되면, 상기 검출된 핫 메모리 블록의 리드 동작 횟수를 제3 임계값과 비교하는 단계를 더 포함하고,
    상기 확인된 리드 동작 횟수가 제3 임계값 이상일 때, 상기 제1 메모리 블록들이 검출되는 메모리 시스템의 동작방법.
  18. 제17항에 있어서,
    상기 확인된 리드 동작 횟수가 상기 제3 임계값 미만이면, 상기 복수의 메모리 블록들 중 상기 라이트 동작 횟수가 제2 임계값 미만인 메모리 블록을 상기 콜드 메모리 블록으로 검출하는 메모리 시스템의 동작방법.
  19. 복수의 메모리 블록들의 리드 동작 횟수를 확인하는 단계;
    상기 복수의 메모리 블록들 중 상기 확인된 리드 동작 횟수가 제2 임계값 미만인 메모리 블록들을 검출하는 단계;
    상기 검출된 메모리 블록들 중 어드레스가 상기 복수의 메모리 블록들 중 지정된 메모리 블록들의 어드레스와 일치하지 않는 메모리 블록을 제2 메모리 블록으로 검출하는 단계;
    상기 지정된 메모리 블록들 중 상기 확인된 리드 동작 횟수가 제3 임계값 이상인 메모리 블록을 제3 메모리 블록으로 검출하는 단계; 및
    상기 검출된 제2 메모리 블록 및 제3 메모리 블록의 데이터를 교환하는 단계를 포함하는,
    메모리 시스템의 동작방법.
  20. 제19항에 있어서,
    상기 복수의 메모리 블록들 중 지정된 메모리 블록들은 워드 라인 드라이버 영역 또는 비트 라인 센스 앰프 영역에 인접한 메모리 블록들을 포함하는 메모리 시스템의 동작방법.
KR1020180012744A 2018-02-01 2018-02-01 메모리 시스템 및 그의 동작방법 KR102507646B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180012744A KR102507646B1 (ko) 2018-02-01 2018-02-01 메모리 시스템 및 그의 동작방법
US16/124,927 US10818365B2 (en) 2018-02-01 2018-09-07 Memory system and operating method thereof
CN201811407007.XA CN110109611B (zh) 2018-02-01 2018-11-23 存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180012744A KR102507646B1 (ko) 2018-02-01 2018-02-01 메모리 시스템 및 그의 동작방법

Publications (2)

Publication Number Publication Date
KR20190093292A true KR20190093292A (ko) 2019-08-09
KR102507646B1 KR102507646B1 (ko) 2023-03-09

Family

ID=67392317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180012744A KR102507646B1 (ko) 2018-02-01 2018-02-01 메모리 시스템 및 그의 동작방법

Country Status (3)

Country Link
US (1) US10818365B2 (ko)
KR (1) KR102507646B1 (ko)
CN (1) CN110109611B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220072656A (ko) * 2020-11-25 2022-06-02 성균관대학교산학협력단 파일 시스템 기반의 블록 할당 장치 및 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI688958B (zh) * 2019-08-23 2020-03-21 群聯電子股份有限公司 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置
US10902929B1 (en) 2019-08-29 2021-01-26 Micron Technology, Inc. Zone swapping for wear leveling memory
CN112445416B (zh) * 2019-09-02 2022-11-22 群联电子股份有限公司 冷区域判断方法、存储器控制电路单元与存储器存储装置
US11797344B2 (en) * 2020-10-30 2023-10-24 Red Hat, Inc. Quiescent state-based reclaiming strategy for progressive chunked queue
US11537306B2 (en) * 2021-03-12 2022-12-27 Micron Technology, Inc. Cold data detector in memory system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140076127A (ko) * 2012-12-12 2014-06-20 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 동작 방법과, 이를 포함하는 데이터 처리 시스템
KR20150042931A (ko) * 2013-10-14 2015-04-22 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
KR20150056621A (ko) * 2012-11-21 2015-05-26 인텔 코포레이션 비휘발성 메모리에 대한 탄력적인 웨어 관리
KR20170099437A (ko) * 2016-02-23 2017-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100538662C (zh) * 2007-07-05 2009-09-09 炬力集成电路设计有限公司 一种基于局部采样的存储器的磨损平衡方法
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
CN101645309B (zh) * 2008-08-05 2013-05-22 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
US20110246701A1 (en) * 2009-03-24 2011-10-06 Hitachi, Ltd. Storage apparatus and its data control method
US9183134B2 (en) * 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
KR20130061967A (ko) 2011-12-02 2013-06-12 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
CN102981971B (zh) * 2012-12-25 2016-06-08 重庆大学 一种快速响应的相变存储器损耗均衡方法
CN102981972A (zh) * 2012-12-25 2013-03-20 重庆大学 一种相变存储器的损耗均衡方法
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
KR102615806B1 (ko) * 2016-05-25 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR20180045089A (ko) * 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR20180045091A (ko) * 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR20180065075A (ko) * 2016-12-06 2018-06-18 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150056621A (ko) * 2012-11-21 2015-05-26 인텔 코포레이션 비휘발성 메모리에 대한 탄력적인 웨어 관리
KR20140076127A (ko) * 2012-12-12 2014-06-20 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 동작 방법과, 이를 포함하는 데이터 처리 시스템
KR20150042931A (ko) * 2013-10-14 2015-04-22 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법
KR20170099437A (ko) * 2016-02-23 2017-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220072656A (ko) * 2020-11-25 2022-06-02 성균관대학교산학협력단 파일 시스템 기반의 블록 할당 장치 및 방법

Also Published As

Publication number Publication date
CN110109611B (zh) 2023-02-28
US20190237150A1 (en) 2019-08-01
CN110109611A (zh) 2019-08-09
US10818365B2 (en) 2020-10-27
KR102507646B1 (ko) 2023-03-09

Similar Documents

Publication Publication Date Title
KR102507646B1 (ko) 메모리 시스템 및 그의 동작방법
KR101772019B1 (ko) 저항성 메모리 장치 및 저항성 메모리 장치의 리프레시 제어 방법
US10096345B2 (en) Semiconductor devices
US11301319B2 (en) Memory device and memory system having multiple error correction functions, and operating method thereof
US20190057026A1 (en) Data storage device and operating method thereof
US10204700B1 (en) Memory systems and methods of operating semiconductor memory devices
KR102468710B1 (ko) 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템, 및 그의 동작방법
US11556440B2 (en) Memory module, memory system including the same and operation method thereof
US9952789B2 (en) Memory systems and electronic devices including nonvolatile memory modules
CN110164496B (zh) 半导体存储器元件及其读取方法
JP6517385B1 (ja) 半導体記憶装置
KR20200057479A (ko) 리커버리 동작을 수행하는 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 메모리 시스템
KR101773660B1 (ko) 메모리 내부의 자체 에러 검출을 통한 선택적 리프레시를 이용한 메모리 제어 방법, 장치 및 시스템
US10318186B2 (en) Semiconductor device and semiconductor system with word line copy
US11669393B2 (en) Memory device for swapping data and operating method thereof
KR20230162371A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US20230223065A1 (en) Memory device, memory module, and operating method of memory device for processing in memory
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device
KR20230109533A (ko) 인메모리 연산을 위한 메모리 장치, 메모리 모듈, 및 메모리 장치의 동작 방법
KR20090084213A (ko) 보상 센서를 포함하는 메모리 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right