KR20210063432A - 메모리에서의 데이터 재배치 - Google Patents

메모리에서의 데이터 재배치 Download PDF

Info

Publication number
KR20210063432A
KR20210063432A KR1020217015011A KR20217015011A KR20210063432A KR 20210063432 A KR20210063432 A KR 20210063432A KR 1020217015011 A KR1020217015011 A KR 1020217015011A KR 20217015011 A KR20217015011 A KR 20217015011A KR 20210063432 A KR20210063432 A KR 20210063432A
Authority
KR
South Korea
Prior art keywords
physical
memory
units
data stored
unit
Prior art date
Application number
KR1020217015011A
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 마이크론 테크놀로지, 인크
Publication of KR20210063432A publication Critical patent/KR20210063432A/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/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/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
    • 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/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
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 개시는 메모리에서 데이터 재배치를 위한 장치들, 방법들, 및 시스템들을 포함한다. 실시예는 제어기, 및 메모리 셀들의 복수의 물리적 유닛들을 가진 메모리를 포함한다. 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖고, 제 1 수의 물리적 유닛들은 그 안에 저장된 데이터를 갖고, 제 2 수의 물리적 유닛들은 그 안에 저장된 데이터가 없으며, 제 2 수의 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 물리적 어드레스는 시퀀스에서의 상이한 연속적 물리적 어드레스이다. 제어기는 시퀀스에서의 물리적 어드레스가 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 제 1 수의 물리적 유닛들의 물리적 유닛에 저장된 데이터를 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치할 수 있다.

Description

메모리에서의 데이터 재배치
본 개시는 전반적으로 반도체 메모리 및 방법들에 관한 것이며, 보다 상세하게는, 메모리에서의 데이터 재배치(data relocation)에 관한 것이다.
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 디바이스들에서 내부, 반도체, 집적 회로들 및/또는 외부 착탈 가능한 디바이스들로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함한 많은 상이한 유형들의 메모리가 있다. 휘발성 메모리는 그것의 데이터를 유지하기 위해 전력을 요구할 수 있으며 다른 것들 중에서 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수 있다. 비-휘발성 메모리는 동력을 공급받지 않을 때 저장된 데이터를 유지함으로써 영속성 데이터를 제공할 수 있으며 다른 것들 중에서, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 및 상 변화 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기 랜덤 액세스 메모리(MRAM)와 같은 저항성 가변 메모리를 포함할 수 있다.
메모리 디바이스들은 고체 상태 드라이브(SSD), 내장형 멀티미디어카드(e.MMC), 및/또는 범용 플래시 저장(UFS) 디바이스를 형성하기 위해 함께 조합될 수 있다. SSD, e.MMC, 및/또는 UFS 디바이스는, 다양한 다른 유형들의 비-휘발성 및 휘발성 메모리 중에서, 비-휘발성 메모리(예컨대, NAND 플래시 메모리 및/또는 NOR 플래시 메모리)를 포함할 수 있으며, 및/또는 휘발성 메모리(예컨대, DRAM 및/또는 SDRAM)를 포함할 수 있다. 비-휘발성 메모리는 다른 것들 중에서, 개인용 컴퓨터들, 휴대용 메모리 스틱들, 디지털 카메라들, 휴대 전화들, MP3 플레이어들과 같은 휴대용 음악 플레이어들, 영화 플레이어들과 같은 광범위한 전자 애플리케이션들에서 사용될 수 있다.
플래시 메모리 디바이스들은 예를 들어, 부동 게이트와 같은 전하 저장 구조로 데이터를 저장하는 메모리 셀들을 포함할 수 있다. 플래시 메모리 디바이스들은 통상적으로 높은 메모리 밀도들, 높은 신뢰성, 및 낮은 전력 소비를 허용하는 1-트랜지스터 메모리 셀을 사용한다. 저항 가변 메모리 디바이스들은 저장 요소(예컨대, 가변 저항을 가진 저항성 메모리 요소)의 저항 상태에 기초하여 데이터를 저장할 수 있는 저항성 메모리 셀들을 포함할 수 있다.
메모리 셀들은 어레이들로 배열될 수 있으며, 어레이 아키텍처에서 메모리 셀들은 타겟(예컨대, 원하는) 상태로 프로그램될 수 있다. 예를 들어, 전자 전하는 셀을 특정한 데이터 상태로 프로그램하기 위해 플래시 메모리 셀의 전하 저장 구조(예컨대, 부동 게이트) 상에 위치되거나 또는 그로부터 제거될 수 있다. 셀의 전하 저장 구조상에 저장된 전하는 셀의 임계 전압(Vt)을 나타낼 수 있다. 플래시 메모리 셀의 상태는 셀의 전하 저장 구조상에 저장된 전하(예컨대, Vt)를 감지함으로써 결정될 수 있다.
부가적인 예로서, 저항성 메모리 셀들은 저항성 메모리 요소의 저항 레벨을 변경함으로써 타겟 데이터 상태에 대응하는 데이터를 저장하도록 프로그램될 수 있다. 저항성 메모리 셀들은 특정한 지속기간 동안 양의 또는 음의 전기 펄스들(예컨대, 양의 또는 음의 전압 또는 전류 펄스들)와 같은 전기장 또는 에너지의 소스들을 셀들에(예컨대, 셀들의 저항성 메모리 요소에) 인가함으로써 타겟 데이터 상태(예컨대, 특정한 저항 상태에 대응하는)로 프로그램될 수 있다. 저항성 메모리 셀의 상태는 인가된 문의 전압에 응답하여 셀을 통해 전류를 인가함으로써 결정될 수 있다. 셀의 저항 레벨에 기초하여 달라지는, 감지된 전류는 셀의 상태를 나타낼 수 있다.
단일 레벨 메모리 셀(SLC)은 이진 유닛들(1 또는 0)로 표현될 수 있는, 두 개의 상이한 데이터 상태들 중 타겟팅된 것으로 프로그램될 수 있다. 몇몇 플래시 및 저항성 메모리 셀들은 둘 2보다 많은 데이터 상태들(예컨대, 1111, 0111, 0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100, 0000, 1000, 1010, 0010, 0110, 및 1110) 중 타겟팅된 것으로 프로그램될 수 있다. 이러한 셀들은 다중 상태 메모리 셀들, 다중유닛 셀들, 또는 다중레벨 셀들(MLC들)로 불리울 수 있다. MLC들은 각각이 셀이 1보다 많은 숫자들(예컨대, 1보다 많은 비트)을 나타낼 수 있으므로 메모리 셀들의 수를 증가시키지 않고 더 높은 밀도의 메모리들을 제공할 수 있다.
도 1은 본 개시의 실시예에 따른 다수의 물리 블록들을 가진 메모리 어레이의 일 부분의 다이어그램을 예시한다.
도 2는 본 개시의 실시예에 따른 메모리 디바이스의 형태로 호스트 및 장치를 포함한 컴퓨팅 시스템의 블록도이다.
도 3은 본 개시의 실시예에 따른 메모리 셀들의 복수의 물리적 유닛들을 포함한 메모리 셀들의 그룹의 개념적인 예를 예시한다.
도 4는 본 개시의 실시예에 따른 메모리에서 수행된 데이터 재배치 동작들의 시퀀스의 개념적 예를 예시한다.
도 5는 본 개시의 실시예에 따라 데이터가 메모리에 재배치된 물리적 위치를 식별하기 위한 대수적 매핑에 대한 방법을 예시한다.
본 개시는 메모리에서 데이터 재배치를 위한 장치들, 방법들, 및 시스템들을 포함한다. 실시예는 제어기, 메모리 셀들의 복수의 물리적 유닛들을 가진 메모리를 포함한다. 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖고, 제 1 수의 물리적 유닛들은 그 안에 저장된 데이터를 갖고, 제 2 수의 물리적 유닛들은 그 안에 저장된 데이터가 없으며, 제 2 수의 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 물리적 어드레스는 시퀀스에서의 상이한 연속적 물리적 어드레스이다. 제어기는 시퀀스에서 물리적 어드레스는 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 제 1 수의 물리적 유닛들의 물리적 유닛에 저장된 데이터를 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치할 수 있다.
마모-레벨링 동작(예컨대, 기법)은 메모리에 걸친 프로그램(예컨대, 기록) 동작들에 의해 야기될 수 있는 메모리 셀 마모를 더 균일하게 분산시키기 위해, 메모리의 하나의 물리적 위치에 현재 저장되어 있는 데이터를 메모리의 또 다른 물리적 위치로 재배치하기 위한 동작을 포함하며 및/또는 이를 나타낼 수 있다. 마모-레벨링 동작들을 수행하는 것은 메모리의 성능을 증가시킬 수 있으며(예컨대, 속도를 증가시키고, 신뢰성을 증가시키며, 및/또는 전력 소비를 감소시킨다), 및/또는 메모리의 내구성(예컨대, 수명)을 증가시킬 수 있다.
이전의 마모-레벨링 동작들은 메모리에서 데이터를 재배치하기 위해 테이블들을 사용할 수 있다. 그러나, 이러한 테이블들은 클 수 있고(예컨대, 메모리에서 많은 량의 공간을 사용할 수 있고), 복잡할 수 있으며(예컨대, 다량의 리소스들을 사용할 수 있으며) 마모-레벨링 동작들을 느려지게 할 수 있다(예컨대, 메모리에서 대기시간을 야기할 수 있다).
반대로, 본 개시에 따라 데이터를 재배치하기 위한 동작들(예컨대, 마모-레벨링 동작들)은 데이터가 재배치된 물리적 위치를 식별하는데 사용하기 위한 대수적 매핑(예컨대, 논리 및 물리적 어드레스들 간의 대수적 매핑)을 유지할 수 있다. 따라서, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 이전의 마모-레벨링 동작들보다, 메모리에서 적은 공간을 사용할 수 있고, 적은 리소스들을 사용할 수 있으며, 더 빠를 수 있다. 뿐만 아니라, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 이전 마모-레벨링 동작들보다 메모리의 성능 및/또는 내구성에 더 큰 증가(예컨대, 이론적 최대치에 더 가까운)를 제공할 수 있다.
뿐만 아니라, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 메모리에 걸친 현재 작업부하들에 마모를 매칭시키고, 메모리의 현재 요구들에 매칭시키기 위해 메모리의 내구성을 증가시키거나 또는 감소시키고, 그 외 메모리를 마모시킬 특정한 작업부하들의 내구성 요건들을 충족시키며, 및/또는 상이한 유형들의 메모리에 마모 레벨링을 매칭시키기 위해, 유연하며 및/또는 변경 가능(예컨대, 조정 가능)할 수 있다. 반대로, 이전 마모-레벨링 동작들은 이러한 유연성을 갖지 않을 수 있다. 뿐만 아니라, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 메모리의 조기 실패를 야기하는 의도를 가진 타겟팅된 메모리 셀들에 대한 걷잡을 수 없는 작업부하들 및/또는 공격들로부터의 보호를 제공할 수 있다.
뿐만 아니라, 이전의 마모 레벨 동작들은 하드웨어에서 구현 가능하지 않을 수 있다. 반대로, 본 개시에 따라 데이터를 재배치하기 위한 동작들(예컨대, 마모-레벨링 동작들)은 하드웨어에 구현 가능할 수 있다. 예를 들어, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 완전히 하드웨어로서, 또는 하드웨어 및 소프트웨어의 조합으로서 메모리의 제어기에 구현 가능할 수 있다. 따라서, 본 개시에 따라 데이터를 재배치하기 위한 동작들은 메모리의 대기시간에 영향을 주지 않을 수 있으며, 메모리에 부가적인 오버헤드를 부가하지 않을 수 있다.
본 출원에서 사용된, "a", "an", 또는 "다수의"는 어떤 것의 하나 이상을 나타낼 수 있으며, "복수의"는 하나 이상의 이러한 것들을 나타낼 수 있다. 예를 들어, 메모리 디바이스는 하나 이상의 메모리 디바이스들을 나타낼 수 있으며, 복수의 메모리 디바이스들은 둘 이상의 메모리 디바이스들을 나타낼 수 있다. 부가적으로, 본 출원에서 사용된, 지정자들 "R", "B", "S", 및 "N"은 특히 도면들에서의 참조 숫자들에 대하여, 그렇게 지정된 다수의 특정한 피처가 본 개시의 다수의 실시예들과 함께 포함될 수 있다는 것을 나타낸다.
본 출원에서의 도면들은 첫 숫자 또는 숫자들이 도면 도 번호에 대응하며 남아있는 숫자들이 도면에서의 요소 또는 구성요소를 식별하는 넘버링 관례를 따른다. 상이한 도면들 간의 유사한 요소들 또는 구성요소들은 유사한 숫자들의 사용에 의해 식별될 수 있다. 예를 들어, 101은 도 1에서 요소 "01"을 언급할 수 있으며, 유사한 요소는 도 2에서 201로서 언급될 수 있다.
도 1은 본 개시의 실시예에 따른 다수의 물리 블록들을 가진 메모리 어레이(101)의 일 부분의 다이어그램을 예시한다. 메모리 어레이(101)는, 예를 들어, NAND 플래시 메모리 어레이일 수 있다. 부가적인 예로서, 메모리 어레이(101)는, 예를 들어, 다른 것들 중에서, 3-차원 교차-점(3D XPoint) 메모리 어레이, 강유전성 RAM(FRAM) 어레이, 또는 PCRAM, RRAM, 또는 스핀 토크 전달(STT) 어레이와 같은 저항 가변 메모리 어레이와 같은 저장 클래스 메모리(SCM) 어레이일 수 있다. 뿐만 아니라, 도 1에 도시되지 않지만, 메모리 어레이(101)는 그것의 동작과 연관된 다양한 주변 회로부와 함께 특정한 반도체 다이 상에 위치될 수 있다.
도 1에 도시된 바와 같이, 메모리 어레이(101)는 메모리 셀들의 다수의 물리 블록들(107-0(블록 0), 107-1(블록 1), ..., 107-B(블록 B))을 가진다. 메모리 셀들은 단일 레벨 셀들 및/또는 예를 들어, 2 레벨 셀들, 삼중 레벨 셀들(TLC들) 또는 사중 레벨 셀들(QLC들)과 같은, 다중레벨 셀들일 수 있다. 예로서, 메모리 어레이(101)에서 물리 블록들의 수는 128 블록들, 512 블록들, 또는 1,024 블록들일 수 있지만, 실시예들은 2의 특정한 거듭제곱에 또는 메모리 어레이(101)에서 물리 블록들의 임의의 특정한 수에 제한되지 않는다.
메모리 셀들의 다수의 물리 블록들(예컨대, 블록들(101-0, 107-1, ..., 107-B))은 메모리 셀들의 평면에 포함될 수 있으며, 메모리 셀들의 다수의 평면들은 다이 상에 포함될 수 있다. 예를 들어, 도 1에 도시된 예에서, 각각의 물리 블록(107-0 107-1, ..., 107-B)은 단일 다이의 부분일 수 있다. 즉, 도 1에 예시된 메모리 어레이(101)의 부분은 메모리 셀들의 다이일 수 있다.
도 1에 도시된 바와 같이, 각각의 물리 블록(107-0 107-1, ..., 107-B)은 액세스 라인들(예컨대, 워드 라인들)에 결합된 메모리 셀들의 다수의 물리 로우들(예컨대, 103-0, 103-1, ..., 103-R)을 포함한다. 각각의 물리 블록에서 로우들(예컨대, 워드 라인들)의 수는 32일 수 있지만, 실시예들은 물리 블록당 특정 수의 로우들(103-0, 103-1, ..., 103-R)에 제한되지 않는다. 뿐만 아니라, 도 1에 도시되지 않지만, 메모리 셀들은 감지 라인들(예컨대, 데이터 라인들 및/또는 디지트 라인들)에 결합될 수 있다.
이 기술분야의 통상의 기술자가 이해할 바와 같이, 각각의 로우(103-0, 103-1, ..., 103-R)는 메모리 셀들의 다수의 페이지들(예컨대, 물리 페이지들)을 포함할 수 있다. 물리 페이지는 프로그래밍 및/또는 감지의 유닛을 나타낸다(예컨대, 기능 그룹으로서 함께 프로그램되고 및/또는 감지되는 메모리 셀들의 수). 도 1에 도시된 실시예에서, 각각의 로우(103-0, 103-1, ..., 103-R)는 메모리 셀들의 하나의 물리 페이지를 포함한다. 그러나, 본 개시의 실시예들은 그렇게 제한되지 않는다. 예를 들어, 실시예에서, 각각의 로우는 메모리 셀들의 다수의 물리 페이지들을 포함할 수 있다(예컨대, 메모리 셀들의 하나 이상의 짝수 페이지들은 짝수-넘버링된 비트 라인들에 결합되며, 메모리 셀들의 하나 이상의 홀수 페이지들은 홀수 넘버링된 비트 라인들에 결합된다). 부가적으로, 다중레벨 셀들을 포함한 실시예들에 대해, 메모리 셀들의 물리 페이지는 데이터의 다수의 페이지들(예컨대, 논리 페이지들)을 저장할 수 있다(예컨대, 데이터의 상부 페이지 및 데이터의 하부 페이지, 물리 페이지에서 각각의 셀은 데이터의 상부 페이지를 향해 하나 이상의 비트들을 및 데이터의 하부 페이지를 향해 하나 이상의 비트들을 저장한다).
도 1에 도시된 바와 같이, 메모리 셀들의 페이지는 다수의 물리 섹터들(105-0, 105-1, ..., 105-S)(예컨대, 메모리 셀들의 서브세트들)을 포함할 수 있다. 셀들의 각각의 물리 섹터(105-0, 105-1, ..., 105-S)는 데이터의 다수의 논리 섹터들을 저장할 수 있다. 부가적으로, 데이터의 각각의 논리 섹터는 데이터의 특정한 페이지의 일 부분에 대응할 수 있다. 예로서, 특정한 물리 섹터에 저장된 데이터의 제 1 논리 섹터는 데이터의 제 1 페이지에 대응하는 논리 섹터에 대응할 수 있으며, 특정한 물리 섹터에 저장된 데이터의 제 2 논리 섹터는 데이터의 제 2 페이지에 대응할 수 있다. 각각의 물리 섹터(105-0, 105-1, ..., 105-S)는 시스템 및/또는 사용자 데이터를 저장할 수 있으며, 및/또는 에러 정정 코드(ECC) 데이터, 논리 블록 어드레스(LBA) 데이터, 및 메타데이터와 같은, 오버헤드 데이터를 포함할 수 있다.
논리 블록 어드레싱은 데이터의 논리 섹터를 식별하기 위해 호스트에 의해 사용될 수 있는 기법이다. 예를 들어, 각각의 논리 섹터는 고유 논리 블록 어드레스(LBA)에 대응할 수 있다. 부가적으로, LBA는 또한 메모리에서 데이터의 상기 논리 섹터의 물리 위치를 나타낼 수 있는, 물리 블록 어드레스(PBA)와 같은, 물리적 어드레스에 대응할 수 있다(예컨대, 동적으로 매핑할 수 있다). 데이터의 논리 섹터는 다수의 바이트들의 데이터(예컨대, 256바이트, 512바이트, 1,024바이트 또는 4,096바이트)일 수 있다. 그러나, 실시예들은 이들 예들에 제한되지 않는다.
물리 블록들(107-0, 107-1, ..., 107-B), 로우들(103-0, 103-1, ..., 103-R), 섹터들(105-0, 105-1, ..., 105-S), 및 페이지들에 대한 다른 구성이 가능하다는 것이 주의된다. 예를 들어, 물리 블록들(107-0, 107-1, ..., 107-B)의 로우들(103-0, 103-1, ..., 103-R)은 각각 예를 들어, 512바이트보다 많거나 또는 적은 데이터를 포함할 수 있는 단일 논리 섹터에 대응하는 데이터를 저장할 수 있다.
도 2는 본 개시의 실시예에 따른 메모리 디바이스(206)의 형태에서의 장치 및 호스트(202)를 포함한 컴퓨팅 시스템(200)의 블록도이다. 본 출원에서 사용된, "장치"는 이에 제한되지 않지만, 예를 들어, 회로 또는 회로부, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은, 다양한 구조들 중 임의의 것 또는 구조들의 조합들을 나타낼 수 있다. 뿐만 아니라, 실시예에서, 컴퓨팅 시스템(200)은 메모리 디바이스(206)와 유사한 다수의 메모리 디바이스들을 포함할 수 있다.
도 2에 예시된 실시예에서, 메모리 디바이스(206)는 다수의 메모리 어레이들(201-1, 201-2, ..., 201-N)을 가진 메모리(216)를 포함할 수 있다. 메모리 어레이들(201-1, 201-2, ..., 201-N)은 도 1과 관련되어 이전에 설명된 메모리 어레이(101)와 유사할 수 있다. 예를 들어, 메모리 어레이들(201-1, 201-2, ..., 201-N)은 NAND 플래시 메모리 어레이들 및/또는 SCM 어레이들일 수 있다.
메모리 어레이들(201-1, 201-2, ..., 201-N)은 메모리 셀들의 다수의 그룹들(예컨대, 구역들 또는 영역들)을 포함할 수 있다(예컨대, 그것으로 나뉠 수 있다). 각각의 개별 그룹은, 도 1과 관련되어 이전에 설명된 메모리 어레이(101)와 유사한 방식으로, 예를 들어, 메모리 셀들의 복수의 물리 페이지들 및/또는 블록들과 같은, 메모리 셀들의 복수의 물리적 유닛들을 포함할 수 있다. 메모리 셀들의 물리적 유닛(예컨대, 물리 페이지 또는 블록)은 도 1과 관련되어 이전에 설명된 바와 같이, 프로그래밍 및/또는 감지의 유닛을 나타낼 수 있다(예컨대, 기능 그룹으로서 함께 프로그램되고 및/또는 감지되는 다수의 메모리 셀들).
메모리 셀들의 각각의 개별 그룹의 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적인 물리적 어드레스(예컨대, 물리적 어드레스들의 시퀀스에서 상이한 물리적 어드레스)를 가질 수 있다. 각각의 개별 그룹의 제 1 수의 물리적 유닛들은 그 안에 저장된 데이터(예컨대, 사용자 데이터)를 가질 수 있으며, 각각의 개별 그룹의 이들 제 1 수의 물리적 유닛들의 각각의 개별 물리적 유닛은 또한 그것과 연관된 상이한 순차적 논리적 어드레스(예컨대, 논리적 어드레스들의 시퀀스에서의 상이한 논리적 어드레스)를 가질 수 있다. 각각의 개별 그룹의 제 2 수의 (예컨대, 남아있는) 물리적 유닛들은 그 안에 저장된 데이터 또는 그것과 연관된 순차적 논리적 어드레스를 갖지 않을 수 있으며, 각각의 개별 그룹의 제 2 수의 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 물리적 어드레스는 시퀀스에서 상이한 연속적 물리적 어드레스일 수 있다. 각각의 개별 그룹의 제 1 수의 물리적 유닛들은 여기에서 상기 그룹의 사용자 유닛들로서 불리울 수 있으며, 각각의 개별 그룹의 제 2 수의 물리 유닛들은 여기에서 상기 그룹의 스페어 유닛들로서 불리울 수 있다. 메모리 셀들의 그룹의 사용자 유닛들 및 스페어 유닛들을 예시한 예가 여기에서 추가로 설명될 것이다(예컨대, 도 3과 관련되어).
실시예에서, 메모리 셀들의 각각의 개별 그룹의 물리적 유닛들의 각각은 동일한 크기를 가질 수 있다. 예를 들어, 각각의 개별 그룹의 물리적 유닛들의 각각은 동일한 수의 메모리 셀들을 가질 수 있으며, 및/또는 동일한 량의 데이터를 저장할 수 있다. 뿐만 아니라, 메모리 셀들의 각각의 개별 그룹의 스페어 유닛들은 소수(prime number)의 물리적 유닛들을 포함할 수 있으며(예컨대, 각각의 개별 그룹의 스페어 유닛들의 수가 소수일 수 있다), 따라서 각각의 개별 그룹의 사용자 유닛들의 수 및 스페이서 유닛들의 수의 최대 공통 분모는 1이다. 각각의 개별 그룹의 사용자 유닛들의 수와 스페어 유닛들의 수 간의 이러한 소수 수치 관계는 여기에서 추가로 설명될 바와 같이, 그것들이 그룹에 걸쳐 이동할 때(예컨대, 슬라이드) 그룹의 스페어 유닛들의 진동을 방지할 수 있다.
도 2에 예시된 바와 같이, 호스트(202)는 인터페이스(204)를 통해 메모리 디바이스(206)에 결합될 수 있다. 호스트(202) 및 메모리 디바이스(206)는 인터페이스(204) 상에서 통신할 수 있다(예컨대, 명령들 및/또는 데이터를 전송할 수 있다). 호스트(202)는 다른 호스트 시스템들 중에서, 랩탑 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 레코딩 및 재생 디바이스, 이동 전화, PDA, 메모리 카드 판독기, 또는 인터페이스 허브일 수 있으며, 메모리 액세스 디바이스(예컨대, 프로세서)를 포함할 수 있다. 이 기술분야의 통상의 기술자는 "프로세서"가 병렬 프로세싱 시스템, 다수의 코프로세서들 등과 같은, 하나 이상의 프로세서들을 의도할 수 있다는 것을 이해할 것이다.
인터페이스(204)는 표준화된 물리 인터페이스의 형태로 있을 수 있다. 예를 들어, 메모리 디바이스(206)가 컴퓨팅 시스템(200)에서 정보 저장을 위해 사용될 때, 인터페이스(204)는 다른 물리 커넥터들 및/또는 인터페이스들 중에서, 직렬 고급 기술 접속(SATA) 물리 인터페이스, 주변 구성요소 상호연결 고속(PCIe) 물리 인터페이스, 범용 직렬 버스(USB) 물리 인터페이스, 또는 소형 컴퓨터 시스템 인터페이스(SCSI)일 수 있다. 일반적으로, 그러나, 인터페이스(204)는 메모리 디바이스(206) 및 인터페이스(204)를 위한 호환 가능한 리셉터들을 가진 호스트(예컨대, 호스트(202)) 사이에서 제어, 어드레스, 정보(예컨대, 데이터), 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.
메모리 디바이스(206)는 호스트(202)와 및 메모리(216)(예컨대, 메모리 어레이들(201-1, 201-2, ..., 201-N))와 통신하기 위해 제어기(208)를 포함한다. 예를 들어, 제어기(208)는 다른 동작들 중에서, 데이터를 감지하고(예컨대, 판독하고), 프로그램하고(예컨대, 기록하고), 이동하며, 및/또는 삭제하기 위한 동작들을 포함한, 동작들을 메모리 어레이들(201-1, 201-2, ..., 201-N) 상에서 수행하기 위해 명령들을 전송할 수 있다.
제어기(208)는 메모리(216)와 동일한 물리 디바이스(예컨대, 동일한 다이) 상에 포함될 수 있다. 대안적으로, 제어기(208)는 메모리(216)를 포함하는 물리 디바이스에 통신적으로 결합되는 별개의 물리 디바이스 상에 포함될 수 있다. 실시예에서, 제어기(208)의 구성요소들은 분산형 제어기로서 다수의 물리 디바이스들(예컨대, 메모리와 동일한 다이 상에서의 몇몇 구성요소들, 및 상이한 다이 상에서의 몇몇 구성요소들, 또는 보드)에 걸쳐 확산될 수 있다.
호스트(202)는 메모리 디바이스(206)와 통신하기 위해 호스트 제어기(도 2에 도시되지 않음)를 포함할 수 있다. 호스트 제어기는 인터페이스(204)를 통해 메모리 디바이스(206)로 명령들을 전송할 수 있다. 호스트 제어기는 다른 동작들 중에서, 데이터를 판독하고, 기록하며, 및/또는 삭제하기 위해 메모리 디바이스(206) 및/또는 메모리 디바이스(206) 상에서의 제어기(208)와 통신할 수 있다.
메모리 디바이스(206) 상에서의 제어기(208) 및/또는 호스트(202) 상에서의 호스트 제어기는 제어 회로부 및/또는 로직(예컨대, 하드웨어 및 펌웨어)을 포함할 수 있다. 실시예에서, 메모리 디바이스(206) 상에서의 제어기(208) 및/또는 호스트(202) 상에서의 호스트 제어기는 물리 인터페이스를 포함한 인쇄 회로 보드에 결합된 애플리케이션 특정 집적 회로(ASIC)일 수 있다. 또한, 메모리 디바이스(206) 및/또는 호스트(202)는 휘발성 및/또는 비-휘발성 메모리의 버퍼 및 다수의 레지스터들을 포함할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 메모리 디바이스는 회로부(210)를 포함할 수 있다. 도 2에 예시된 실시예에서, 회로부(210)는 제어기(208)에 포함된다. 그러나, 본 개시의 실시예들은 그렇게 제한되지 않는다. 예를 들어, 실시예에서, 회로부(214)는 (예컨대, 제어기(208) 대신에) 메모리(216)에(예컨대, 그것과 동일한 다이 상에) 포함될 수 있다. 회로부(210)는, 예를 들어, 하드웨어 및/또는 소프트웨어를 포함할 수 있다.
회로부(210)는 본 개시에 따라(룩업 테이블 또는 어드레스 변환 테이블과 같은, 테이블을 사용하지 않고) 메모리 어레이들(201-1, 201-2, ..., 201-N)에 저장된 데이터를 재배치하기 위해 마모 레벨링 동작들을 수행할 수 있다. 예를 들어, 회로부(214)는, 메모리 셀들의 그룹에 대해, 물리적 어드레스 시퀀스에서의 물리적 어드레스는 상기 그룹의 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞(예컨대, 그 앞)에 있는 상기 그룹의 사용자 유닛들의 물리적 유닛에 저장된 데이터를 상기 그룹의 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치할 수 있다 (예컨대, 데이터는 시퀀스에서 제 1 스페어 유닛 바로 앞인 사용자 유닛으로부터 시퀀스에서의 마지막 스페어 유닛에 재배치된다). 즉, 데이터가 재배치되는 물리적 유닛과 연관된 물리적 어드레스는 스페어 유닛들과 연관된 순차적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞이며 데이터가 재배치되는 물리적 유닛과 연관된 물리적 어드레스는 스페어 유닛들과 연관된 순차적 물리적 어드레스들 중 마지막 어드레스이다. 이러한 데이터 재배치는 데이터가 재배치된 사용자 유닛이 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스를 갖는 스페어 유닛이 되며, 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 끝에서 두 번째를 갖는 스페어 유닛은 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스를 가진 스페어 유닛이 된다(예컨대, 데이터가 재배치되는 사용자 유닛은 시퀀스에서 제 1 스페어 유닛이 되며, 시퀀스에서 끝에서 두 번째 스페어 유닛은 시퀀스에서 마지막 스페어 유닛이 된다). 이러한 데이터 재배치 동작을 예시한 예는 여기에서 추가로 설명될 것이다(예컨대, 도 4와 관련되어).
실시예에서, 회로부(210)는 트리거링 이벤트에 응답하여 데이터를 재배치하기 위해 이러한 마모 레벨링 동작을 수행할 수 있다. 트리거링 이벤트는, 예를 들어, 메모리(216) 상에서 수행되는(예컨대, 실행되는) 특정 수의 프로그램 동작들일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 회로부(210)는 메모리(216) 상에서 수행되는 프로그램 동작들의 수를 카운트하며 수행되는 특정 수의 프로그램 동작들에 응답하여 데이터의 재배치를 개시하기 위해 신호를 전송하는 카운터(212)(예컨대, 기록 간격 카운터)를 포함할 수 있다. 회로부(210)는 그 후 카운터(212)로부터의 초기화 신호에 응답하여 데이터를 재배치하기 위한 동작을 수행할 수 있으며, 카운터(212)는 데이터가 재배치될 때 0으로 리셋될 수 있다. 데이터 재배치를 트리거할 수 있는 프로그램 동작들의 특정 수는 그룹의 물리적 유닛들의 총 수(예컨대, 사용자 유닛들 및 스페어 유닛들의 합), 및 메모리(216)의 이론적 최대 내구성에 기초하여 선택될 수 있다. 예를 들어, 프로그램 동작들의 특정 수는 그룹의 물리적 유닛들의 총 수가 프로그램 동작들의 특정 수로 나눈 메모리(216)의 이론적 최대 내구성보다 훨씬 작도록 선택될 수 있다.
뿐만 아니라, 도 2에 도시된 바와 같이, 회로부(210)는 레지스터(214)를 포함할 수 있다. 레지스터(214)는 물리적 어드레스 시퀀스에서의 물리적 어드레스가 시퀀스에서 물리적 어드레스들 중 제 1 물리적 어드레스(예컨대, 사용자 유닛들의 논리적 시작 위치)인 그룹의 사용자 유닛과 연관된 논리적 어드레스(예컨대, 논리적 어드레스를 나타내는 값)를 저장할 수 있다. 일단 그룹의 스페어 유닛들이 전체 그룹을 통해 이동하였다면, 레지스터(214)는 하나의 요소만큼 증분될 수 있다.
도 2에 도시되지 않았지만, 명료함을 위해서 및 본 개시의 실시예들을 모호하게 하지 않도록 도시되지 않지만, 메모리 어레이들(201-1, 201-2, ..., 201-N)이 다수의 그룹들의 메모리 셀들을 포함하는(예컨대, 그것으로 나뉘는) 실시예들에서, 제어기(208)는 그것의 개별 그룹상에서 본 개시에 따른 마모 레벨링 동작들을 수행할 수 있는 각각의 개별 그룹에 대한 회로부(210)와 유사한 부가적인(예컨대, 별개의) 회로부를 포함할 수 있다. 예를 들어, 제어기(208)는 그것의 개별 그룹에 대해, 회로부(210)에 대해 설명된 것과 유사한 방식으로, 물리적 어드레스 시퀀스에서의 물리적 어드레스가 해당 그룹의 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 상기 그룹의 사용자 유닛들의 물리적 유닛에 저장된 데이터를 해당 그룹의 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치할 수 있는 각각의 개별 그룹에 대한 별개의 회로부를 포함할 수 있다.
이러한 방식으로(예컨대, 그 자신의 별개의 대응하는 마모 레벨링 회로부를 가진 각각의 개별 그룹을 갖는) 메모리 어레이들(201-1, 201-2, ..., 201-N)을 다수의 그룹들로 나누는 것은 그룹당 사용자 유닛들의 수를 감소시킬 수 있다. 그룹 당 사용자 유닛들의 수를 감소시키는 것은 각각의 개별 그룹의 스페어 유닛들이 메모리 어레이들(201-1, 201-2, ..., 201-N)을 통해 회전하고 및/또는 이동하는 빈도를 증가시킬 수 있으며, 이것은 그것의 이론적 최대치에 더 가깝게 메모리(216)의 내구성을 증가시킬 수 있다. 뿐만 아니라, 메모리(216)에 걸친 마모는 구역 스와핑을 수행함으로써 균등해질 수 있다. 예를 들어, 회로부는 "핫" 구역에 대한 특정한 마모 임계치를 설정하며(예컨대, 확장된 베이스 어드레스 카운터를 사용하여), 구역의 스페어 유닛들이 상기 구역의 물리적 유닛들 모두를 통해 회전하고 및/또는 이동하는 횟수들을 추적함으로써 메모리(216)의 "핫(hot)" 구역(예컨대, 데이터가 프로그램 및/또는 감지 동작들 동안 높은 빈도로 액세스되는 구역)을 메모리(216)의 "콜드(cold)" 구역(예컨대, 데이터가 프로그램 및/또는 감지 동작들 동안 낮은 빈도로 액세스되는 구역)과 스와핑할 수 있다.
실시예에서, 회로부(210)는 그 안에 데이터를 저장하지 않은 그룹의 물리적 유닛들의 수(예컨대, 수량(quantity))를 변경(예컨대, 조정)할 수 있다(예컨대, 그룹의 스페어 유닛들의 수를 변경한다). 예를 들어, 회로부(210)는 메모리(216)의(예컨대, 메모리(216)의 메모리 셀들의) 내구성(예컨대, 수명)을 증가시키기 위해 그룹의 스페어 유닛들의 수를 증가시키거나, 또는 메모리(216)에 더 많은 사용자 데이터를 저장하기 위해(예컨대, 저장할 공간을 만들기 위해) 그룹의 스페어 유닛들의 수를 감소시킬 수 있다. 그룹의 스페어 유닛들의 수는 데이터가 그룹에 재배치되기 전 또는 후 변경될 수 있다.
그룹의 스페어 유닛들의 수는, 예를 들어, 메모리(216)의(예컨대, 메모리(216)의 메모리 셀들의) 평균 내구성(예컨대, 수명)에 기초하여, 변경될 수 있다. 예를 들어, 스페어 유닛들의 수는 메모리(216)의 평균 내구성에 매칭하도록 조정될 수 있다. 부가적인 예로서, 그룹의 스페어 유닛들의 수는 메모리(216)의 작업부하에 기초하여 변경될 수 있다. 예를 들어, 스페어 유닛들의 수는 메모리(216) 상에서, 수행되고 있거나, 또는 수행될 특정한 작업부하들의 내구성 요건들을 충족시키도록 조정될 수 있다. 부가적인 예로서, 그룹의 스페어 유닛들의 수는 메모리(216)의 유형(예컨대, NAND 플래시, SCM 등)에 기초하여 변경될 수 있다. 예를 들어, 스페어 유닛들의 수는 메모리(216)의 유형에 대한 기록 내구성 파라미터들에 기초하여 조정될 수 있다.
일단 데이터가 재배치되었다면, 회로부(210)는 데이터가 재배치된 메모리(216)에서 물리 위치를 식별하기 위해 대수적 매핑을 사용할 수 있다. 예를 들어, 회로부(210)는 데이터가 재배치된 시퀀스에서 스페어 유닛과 연관된 물리적 어드레스를 식별(예컨대, 계산)하기 위해 대수적 매핑(예컨대, 대수적 논리 대 물리 매핑)을 사용할 수 있다. 예를 들어, 회로부(214)는 상기 재배치된 데이터를 감지하기 위한 동작 동안(예컨대, 상기 재배치된 데이터를 판독하기 위한 요청을 호스트(202)로부터 수신할 때) 데이터가 재배치된 시퀀스에서 스페어 유닛과 연관된 물리적 어드레스를 식별하기 위해 대수적 매핑을 사용할 수 있다. 이러한 대수적 매핑은 여기에서 추가로 설명될 것이다(예컨대, 도 5와 관련되어).
뿐만 아니라, 실시예에서, 데이터가 재배치되었다면, 회로부(210)는 사용자 유닛들과 연관된 논리적 어드레스들을 랜덤화할 수 있다. 회로부(210)는 예를 들어, 논리적 어드레스들을 중간 어드레스들에 랜덤하게 매핑시키기 위해, 페이스텔(Feistel) 네트워크, 랜덤 역 이진 매트릭스, 또는 고정 어드레스 비트 스크램블링을 이용하는 정적 어드레스 랜덤화기를 사용함으로써, 사용자 유닛들과 연관된 논리적 어드레스들을 랜덤화할 수 있다. 사용자 유닛들과 연관된 논리적 어드레스들을 랜덤화하는 것은 (예컨대, 공간적으로 별개의) 아주 많이 기록된(예컨대, 핫) 사용자 유닛들(그 외 서로 공간적으로 가까운 경향이 있는)의 공간적 상관관계를 감소시킬 수 있으며, 이것은 메모리(216)의 내구성을 이론적 최대치에 더 가깝게 증가시킬 수 있다.
회로부(210)는 메모리(216)의 수명 전체에 걸쳐 메모리 어레이들(201-1, 201-2, ..., 201-N)에 저장된 데이터를 추가로 재배치하기 위해 부가적인(예컨대, 그 다음) 마모 레벨링 동작들을 수행할 수 있다. 예를 들어, 회로부(210)는 부가적인(예컨대, 그 다음) 트리거링 이벤트에 응답하여 데이터를 재배치하기 위해 부가적인(예컨대, 그 다음) 동작을 수행할 수 있다.
예를 들어, 본 출원에서 이전에 설명된 예시적인 동작 다음에 수행되는 메모리에 데이터를 재배치하기 위한 동작에서, 회로부(210)는 물리적 어드레스 시퀀스에서의 물리적 어드레스들은 데이터가 이전 재배치 동작에 재배치된 사용자 유닛과 연관된 물리적 어드레스 바로 앞(예컨대, 이제 시퀀스에서 스페어 유닛들 중 제 1 스페어 유닛이 된 유닛 바로 앞)에 있는 사용자 유닛들의 물리적 유닛에 저장된 데이터를 스페어 유닛들과 연관된 연속적 물리적 어드레스들의 이전 끝에서 두 번째였던 스페어 유닛의 물리적 어드레스(예컨대, 이제 시퀀스에서 스페어 유닛들의 마지막이 된 스페어 유닛)로 재배치할 수 있다. 이러한 데이터 재배치는 다시 한 번 데이터가 재배치된 사용자 유닛이 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스를 가진 스페어 유닛이 되며, 스페어 유닛들과 연관된 연속적 물리적 어드레스들의 끝에서 두 번째를 가진 스페어 유닛이 스페어 유닛들과 연관된 연속적 물리적 어드레스들의 마지막 어드레스를 가진 스페어 유닛이 되는 것을 야기할 수 있으며, 뒤이은 데이터 재배치 동작들은 유사한 방식으로 계속해서 수행될 수 있다. 이러한 뒤이은 데이터 재배치 동작들의 시퀀스를 예시한 예는 여기에서 추가로 설명될 것이다(예컨대, 도 4와 관련되어).
도 2에 예시된 실시예는 본 개시의 실시예들을 모호하게 하지 않도록 예시되지 않은 부가적인 회로부, 논리, 및/또는 구성요소들을 포함할 수 있다. 예를 들어, 메모리 디바이스(206)는 I/O 회로부를 통해 I/O 커넥터들에 걸쳐 제공된 어드레스 신호들을 래칭하기 위해 어드레스 회로부를 포함할 수 있다. 어드레스 신호들은 메모리 어레이들(201-1, 201-2, ..., 201-N)을 액세스하기 위해, 로우 디코더 및 컬럼 디코더에 의해 수신되고 디코딩될 수 있다. 뿐만 아니라, 메모리 디바이스(206)는, 메모리 어레이들(201-1, 201-2, ..., 201-N)로부터 분리되며 및/또는 그것에 더하여, 예를 들어 DRAM 또는 SDRAM과 같은, 메인 메모리를 포함할 수 있다.
도 3은 본 개시의 실시예에 따른 메모리 셀들의 복수의 물리적 유닛들을 포함하는(예컨대, 그것으로 나뉘는) 메모리 셀들의 그룹의 개념적 예(320)를 예시한다. 도 3에 예시된 예에서, 그룹은 13개 물리적 유닛들(예컨대, 물리적 유닛들(322-0 내지 322-12))을 포함한다. 그러나, 본 개시의 실시예들은 그룹당 특정 수의 물리적 유닛들로 제한되지 않는다. 물리적 유닛들은, 예를 들어, 여기에서 이전에 설명된 바와 같이, 프로그래밍 및/또는 감지의 유닛들일 수 있으며, 각각의 개별 물리적 유닛은, 여기에서 이전에 설명된 바와 같이, 동일한 크기를 가질 수 있다.
도 3에 도시된 바와 같이, 각각의 물리적 유닛(322-0 내지 322-12)은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖는다. 각각의 개별 물리적 유닛에 대한 물리적 어드레스는 상기 물리적 유닛에 대한 괄호에 있는 수로서 도 3에 예시된다(예컨대, 표현된다). 예를 들어, 도 3에 예시된 예에서, 물리적 어드레스들의 시퀀스는 0 내지 12까지 계속되며, 물리적 유닛(322-0)에 대한 물리적 어드레스는 0이고, 물리적 유닛(322-1)에 대한 물리적 어드레스는 1이며, 최대 물리적 유닛(322-12)에 대한 물리적 어드레스는 12이다.
도 3에 예시된 예에서, 물리적 유닛들(322-0 내지 322-9)은 그 안에 저장된 데이터(예컨대, 사용자 데이터)를 갖는다. 이들 물리적 유닛들은 총괄하여 사용자 유닛들(324-1)로 불리울 수 있다. 그룹은 도 3에서 예시된 예에서 10개의 사용자 유닛들을 포함하지만, 본 개시의 실시예들은 그룹당 특정 수의 사용자 유닛들로 제한되지 않는다. 그러나, 그룹은 그룹의 메모리 셀들의 이론적 최대 내구성에 도달하기 전에 그룹의 스페어 유닛들이 그룹을 통해 다수 회 회전하도록 충분한 사용자 유닛들을 포함할 수 있다.
도 3에 도시된 바와 같이, 사용자 유닛들(324-1)의 각각의 개별 사용자 유닛은 상기 물리적 유닛에 대해 괄호 안에 있지 않은 수로 표현된, 그것과 연관된 상이한 순차적 논리적 어드레스를 가진다. 예를 들어, 도 3에 예시된 예에서, 논리적 어드레스들의 시퀀스는 0 내지 9까지 계속되며, 사용자 유닛(322-0)에 대한 논리적 어드레스는 0이고, 사용자 유닛(322-1)에 대한 논리적 어드레스는 1이며, 최대 사용자 유닛(322-9)에 대한 논리적 어드레스는 9이다.
논리적 어드레스가 그룹의 논리적 어드레스 시퀀스에서 첫 번째인 사용자 유닛은 여기에서 베이스 유닛으로서 불리울 수 있다. 예를 들어, 도 3에 예시된 예에서, 사용자 유닛(322-0)은 베이스 유닛이다. 베이스 유닛과 연관된 물리적 어드레스(예컨대, 도 3에 예시된 예에서 0)는 여기에서 추가로 설명될 바와 같이(예컨대, 도 5와 관련하여), 데이터가 재배치된 물리적 위치를 식별하기 위해 대수적 매핑 동안 사용될 수 있다.
도 3에 예시된 예에서, 물리적 유닛들(322-10 내지 322-12)은 그 안에 저장된 데이터가 없다. 뿐만 아니라, 물리적 유닛들(322-10 내지 322-12)은, 이들 물리적 유닛들에서 'X'로 표현된 바와 같이, 그것과 연관된 순차적 논리적 어드레스를 갖지 않는다. 이들 물리적 유닛들은 총괄하여 스페어 유닛들(324-2)로 불리울 수 있으며, 여기에서 이전에 설명된 바와 같이, 소수의 물리적 유닛들(예컨대, 3)을 포함할 수 있다.
도 3에 도시된 바와 같이, 스페어 유닛들(324-2)의 각각의 개별 스페어 유닛과 연관된 물리적 어드레스는 그룹의 물리적 어드레스 시퀀스에서 상이한 연속적 물리적 어드레스이다. 예를 들어, 스페어 유닛(322-10)과 연관된 물리적 어드레스는 10이고, 스페어 유닛(322-11)과 연관된 물리적 어드레스는 11이며, 스페어 유닛(322-12)과 연관된 물리적 어드레스는 12이다.
그룹의 스페어 유닛 시퀀스에서 제 1 스페어 유닛은 여기에서 에지 유닛으로서 불리울 수 있다. 예를 들어, 도 3에 예시된 예에서, 스페어 유닛(322-10)은 에지 유닛이다. 에지 유닛과 연관된 물리적 어드레스(예컨대, 도 3에 예시된 예에서 10)는 여기에서 추가로 설명될 바와 같이(예컨대, 도 5와 관련하여), 데이터가 재배치된 물리적 위치를 식별하기 위해 대수적 매핑 동안 사용될 수 있다.
도 4는 본 개시에 따라 메모리에서 수행된 데이터 재배치 동작들의 시퀀스의 개념적 예(403)를 예시한다. 메모리는, 예를 들어, 도 2와 관련되어 이전에 설명된 메모리(216)일 수 있으며, 메모리 셀들의 복수의 물리적 유닛들을 가진 메모리 셀들의 그룹을 포함할 수 있고, 각각의 유닛은 도 3과 관련되어 이전에 설명된 것과 유사한 방식으로, 그것과 연관된 상이한 순차적인 물리적 어드레스 0 내지 12를 갖는다. 예를 들어, 도 4에 도시된 바와 같이, 도 3과 관련되어 이전에 설명된 것과 유사한 방식으로, 그룹은 각각이 그것과 연관된 상이한 순차적 논리적 어드레스 0 내지 9를 갖는 10개의 사용자 유닛들, 및 그 안에 데이터를 저장하지 않는 3개의 스페어 유닛들 또는 그것과 연관된 순차적인 논리적 어드레스를 포함할 수 있다. 데이터 재배치 동작들은 예를 들어, 도 2와 관련되어 이전에 설명된 회로부(210)에 의해 수행될 수 있다.
도 4에서의 제 1(예컨대, 최상부) 로우(row)는 시퀀스의 제 1 데이터 재배치 동작이 수행되기 전에 그룹의 사용자 유닛들 및 스페어 유닛들의 할당을 도시하며, 도 3과 관련되어 설명된 할당과 유사하다. 예를 들어, 도 4에 도시된 바와 같이, 사용자 유닛들은 그것과 연관된 순차적 물리적 어드레스들의 첫 10개(예컨대, 0 내지 9)를 가지며, 스페어 유닛들은 그것과 연관된 순차적인 물리적 어드레스들의 마지막 3개(예컨대, 10 내지 12)를 가진다.
도 4에서 제 1 로우 아래에 있는 각각의 다음 로우는 시퀀스에서 각각의 개별 데이터 재배치 동작의 수행 후 그룹의 사용자 유닛들 및 스페어 유닛들의 할당을 도시한다. 예를 들어, 도 4에서 제 2 로우는 제 1 데이터 재배치 동작의 수행 후 유닛 할당을 도시하고, 도 4에서의 제 3 로우는 제 2 데이터 재배치의 수행 후 유닛 할당을 도시하며, 도 4에서의 마지막(예컨대, 최하부) 로우까지, 시퀀스에서 마지막 데이터 재배치 도작의 수행 후 유닛 할당을 도시한다.
도 4에서 제 2 로우에 도시된 바와 같이, 시퀀스에서 제 1 데이터 재배치 동작의 수행 후, 물리적 어드레스 시퀀스에서의 물리적 어드레스가 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에(예컨대, 그것의 좌측으로), 사용자 유닛에 저장된 데이터는 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스이었던 것에 재배치되었다. 즉, 물리적 어드레스가 9인 물리적 유닛에 저장되었던 데이터는 물리적 어드레스가 12인 물리적 유닛에 재배치되었다. 따라서, 제 2 로우에 도시된 바와 같이, 데이터가 재배치된 사용자 유닛(예컨대, 물리적 어드레스가 9인 물리적 유닛)은 스페어 유닛 시퀀스에서 제 1 스페어 유닛이 되었으며, 스페어 유닛 시퀀스에서 끝에서 두 번째 스페어 유닛이었던 스페어 유닛(예컨대, 물리적 어드레스가 11인 물리적 유닛)은 스페어 유닛 시퀀스에서 마지막 스페어 유닛이 되었다.
도 4에서 제 3 로우에 도시된 바와 같이, 시퀀스에서 제 2 데이터 재배치 동작의 수행 후, 물리적 어드레스 시퀀스에서의 물리적 어드레스가 제 1 데이터 재배치 동작 후 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 사용자 유닛에 저장되었던 데이터는, 제 1 데이터 재배치 동작 후 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스이었던 것에 재배치되었다. 즉, 물리적 어드레스가 8인 물리적 유닛에 저장되었던 데이터는 물리적 어드레스가 11인 물리적 유닛에 재배치되었다. 따라서, 제 3 로우에 도시된 바와 같이, 제 2 데이터 재배치 동작 동안 데이터가 재배치되었던 사용자 유닛(예컨대, 물리적 어드레스가 8인 물리적 유닛)은 스페어 유닛 시퀀스에서 제 1 스페어 유닛이 되었으며, 제 2 데이터 재배치 동작 전 스페어 유닛 시퀀스에서 끝에서 두 번째 스페어 유닛이었던 스페어 유닛(예컨대, 물리적 어드레스가 10인 물리적 유닛)은 스페어 유닛 시퀀스에서 마지막 스페어 유닛이 되었다.
도 4에서 제 4 로우에 도시된 바와 같이, 시퀀스에서 제 3 데이터 재배치 동작의 수행 후, 물리적 어드레스 시퀀스에서의 물리적 어드레스가 제 2 데이터 재배치 동작 후 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞이었던 사용자 유닛에 저장되었던 데이터는 제 2 데이터 재배치 동작 후 스페어 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스이었던 것에 재배치되었다. 즉, 물리적 어드레스가 7인 물리적 유닛에 저장되었던 데이터는 물리적 어드레스가 10인 물리적 유닛에 재배치되었다. 따라서, 제 4 로우에 도시된 바와 같이, 데이터가 제 3 데이터 재배치 동작 동안 재배치되었던 사용자 유닛(예컨대, 물리적 어드레스가 7인 물리적 유닛)은 스페어 유닛 시퀀스에서 제 1 스페어 유닛이 되었으며, 제 3 데이터 재배치 동작 전 스페어 유닛 시퀀스에서 끝에서 두 번째 스페어 유닛이었던 스페어 유닛(예컨대, 물리적 어드레스가 9인 물리적 유닛)은 스페어 유닛 시퀀스에서 마지막 스페어 유닛이 되었다.
시퀀스의 남아있는 데이터 재배치 동작들은 도 4에서의 남아있는 로우들에서 도시된 바와 같이, 유사한 방식으로 계속될 수 있다. 이와 같이, 데이터 재배치 동작들의 효과는, 스페어 유닛들이 전체 그룹에 걸쳐 회전할 때까지 사용자 유닛들을 통해 스페어 유닛들을 순차적으로 이동(예컨대, 슬라이드)시키는 것이라는 것이 이해될 수 있다. 시퀀스에서 각각의 개별 데이터 재배치 동작은, 여기에서 이전에 설명된 바와 같이(예컨대, 도 2와 관련되어), 별개의 트리거링 이벤트에 응답하여 수행될 수 있다.
도 4에 예시된 예시적인 시퀀스는 13개의 데이터 재배치 동작들을 포함하지만, 본 개시의 실시예들은 그렇게 제한되지 않는다. 예를 들어, 부가적인 데이터 재배치 동작들이 메모리의 수명 전체에 걸쳐 유사한 방식으로 계속해서 수행될 수 있다(예컨대, 뒤이은 트리거링 이벤트들에 응답하여).
도 5는 본 개시의 실시예에 따라 데이터가 메모리에 재배치된 물리적 위치를 식별하기 위한 대수적 매핑에 대한 방법(540)을 예시한다. 메모리는, 예를 들어, 도 2와 관련되어 이전에 설명된 메모리(216)일 수 있으며, 메모리 셀들의 복수의 물리적 유닛들(예컨대, 사용자 유닛들 및 스페어 유닛들)을 가진 메모리 셀들의 그룹을 포함할 수 있고, 각각의 유닛은, 도 2 및 도 3과 관련되어 이전에 설명된 것과 유사한 방식으로, 그것과 연관된 상이한 순차적인 물리적 어드레스를 갖는다. 방법(540)(예컨대, 도 5에 예시된 대수적 매핑)은, 예를 들어, 도 2와 관련되어 이전에 설명된 회로부(210)에 의해 수행될 수 있다.
블록 542에서, 재배치된 데이터에 대한 물리적 어드레스가 결정된다(예컨대, 산출된다). 도 5에 도시된 바와 같이, 재배치된 데이터에 대한 물리적 어드레스(PA)는 다음에 의해 제공된다:
PA = (LA + BASE) % (U + N)
여기에서 LA는 메모리에서 재배치된 데이터의 논리적 어드레스이고, BASE는 그룹의 베이스 유닛과 연관된 물리적 어드레스이고, U는 그룹에서 사용자 유닛들의 수이며, N은 그룹에서 스페어 유닛들의 수이다(예컨대, U+N은 그룹에서 물리적 유닛들의 총 수이다).
블록 544에서, 블록 542에서 산출된 재배치된 데이터에 대한 물리적 어드레스가 그룹의 에지 유닛과 연관된 물리적 어드레스보다 크거나 또는 같은지가 결정된다. 블록 542에서 산출된 물리적 어드레스가 그룹의 에지 유닛과 연관된 물리적 어드레스보다 크거나 또는 같지 않다고 결정되면, 블록 542에서 산출된 물리적 어드레스는 데이터가 메모리에 재배치된 물리적 위치인 것으로 결정되며, 상기 물리적 어드레스는블록 548에서 식별된 물리적 위치(예컨대, 식별된 물리적 어드레스)로서 반환된다.
블록 544에서 블록 542에서 산출된 물리적 어드레스가 그룹의 에지 유닛과 연관된 물리적 어드레스보다 크거나 또는 같다고 결정되면, 블록 542에서 산출된 물리적 어드레스는 데이터가 메모리에 재배치된 물리적 위치가 아니다. 대신에, 방법(540)은 블록 546을 진행되며, 여기에서 재배치된 데이터에 대한 상이한 물리적 어드레스가 결정된다(예컨대, 산출된다). 도 5에 도시된 바와 같이, 이러한 물리적 어드레스(PA)는 블록 542에서 산출된 물리적 어드레스(PA)에 그룹에서의 스페어 유닛들의 수(N)를 더함으로써 산출된다. 블록 546에서 산출된 이러한 물리적 어드레스는 그 후 블록 548에서 데이터가 재배치된 식별된 물리적 위치(예컨대, 식별된 물리적 어드레스)로서 반환된다.
특정 실시예들이 본 출원에서 예시되고 설명되었지만, 이 기술분야에서의 통상의 기술자들은 동일한 결과들을 달성하기 위해 산출된 배열이 도시된 특정 실시예들로 대체될 수 있다는 것을 이해할 것이다. 본 개시는 본 개시의 다수의 실시예들의 적응화들 또는 변화들을 커버하도록 의도된다. 상기 설명은 제한적인 것이 아닌, 예시적인 방식으로 이루어졌다는 것이 이해될 것이다. 상기 실시예들의 조합, 및 본 출원에서 구체적으로 설명되지 않은 다른 실시예들은 상기 설명을 검토할 때 이 기술분야의 숙련자들에게 명백할 것이다. 본 개시의 다수의 실시예들의 범위는 상기 구조들 및 방법들이 사용되는 다른 애플리케이션들을 포함한다. 그러므로, 본 개시의 다수의 실시예들의 범위는 이러한 청구항들이 자격을 부여받은 등가물들의 전체 범위와 함꼐, 첨부된 청구항들을 참조하여 결정되어야 한다.
앞서 말한 상세한 설명에서, 몇몇 특징들은 본 개시를 간소화할 목적으로 단일 실시예에서 함께 그룹핑된다. 본 개시의 이러한 방법은 본 개시의 개시된 실시예들이 각각의 청구항에 명확하게 나열된 것보다 많은 특징들을 사용해야 한다는 의도를 반영한 것으로 해석되지 않을 것이다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모두보다 적은 특징들에 있다. 따라서, 다음의 청구항들은 상세한 설명으로 통합되며, 각각의 청구항은 그 자체로서 별개의 실시예로서 성립한다.

Claims (20)

  1. 장치에 있어서,
    메모리 셀들의 복수의 물리적 유닛들을 가진 메모리로서:
    상기 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖고;
    제 1 수의 상기 물리적 유닛들은 그 안에 저장된 데이터를 가지며; 및
    제 2 수의 상기 물리적 유닛들은 그 안에 저장된 데이터가 없고, 상기 제 2 수의 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 상기 물리적 어드레스는 시퀀스에서의 상이한 연속적 물리적 어드레스인, 상기 메모리; 및
    상기 시퀀스의 물리적 어드레스가 상기 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 상기 제 1 수의 물리적 유닛들의 물리적 유닛에 저장된 상기 데이터를 상기 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치(relocate)하도록 구성된 회로부를 포함하는, 장치.
  2. 청구항 1에 있어서,
    상기 회로부는 그 안에 저장된 데이터가 없는 상기 제 2 수의 물리적 유닛들을 변경하도록 구성되는, 장치.
  3. 청구항 1에 있어서,
    상기 회로부는 상기 데이터가 상기 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스에 재배치된 후 그 안에 저장된 데이터를 가진 상기 제 1 수의 물리적 유닛들과 연관된 논리적 어드레스들을 랜덤화하도록 구성되는, 장치.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 메모리는 부가적인 메모리 셀들의 복수의 물리적 유닛들을 포함하고,
    상기 부가적인 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖고;
    제 1 수의 상기 부가적인 물리적 유닛들은 그 안에 저장된 데이터를 가지며; 및
    제 2 수의 상기 부가적인 물리적 유닛들은 그 안에 저장된 데이터가 없고, 상기 제 2 수의 부가적인 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 상기 물리적 어드레스는 상기 시퀀스에서의 상이한 연속적 물리적 어드레스이며;
    상기 장치는 상기 시퀀스의 물리적 어드레스가 상기 제 2 수의 부가적인 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 상기 제 1 수의 부가적인 물리적 유닛들의 물리적 유닛에 저장된 데이터를 상기 제 2 수의 부가적인 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치하도록 구성된 부가적인 회로부를 포함하는, 장치.
  5. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 회로부는 상기 메모리 상에서 수행되는 다수의 프로그램 동작들을 카운트하도록 구성된 카운터(counter)를 포함하며;
    상기 회로부는 상기 카운터가 상기 메모리 상에서 수행된 메모리 동작들의 특정 수에 이르는 것에 응답하여 상기 데이터의 재배치를 개시하도록 구성되는, 장치.
  6. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 회로부는 물리적 어드레스가 상기 시퀀스에서의 물리적 어드레스들 중 제 1 물리적 어드레스인 제 1 수의 물리적 유닛들의 물리적 유닛과 연관된 논리적 어드레스를 저장하도록 구성된 레지스터를 포함하는, 장치.
  7. 메모리를 동작시키는 방법에 있어서,
    상기 메모리의 제 1 물리적 유닛에 저장된 데이터를 상기 메모리의 제 2 물리적 유닛에 재배치하는 단계로서,
    상기 메모리의 제 1 물리적 유닛은 그 안에 저장된 데이터를 가지며 그것과 연관된 상이한 물리적 어드레스들을 갖는 상기 메모리의 복수의 물리적 유닛들 중 하나이고;
    상기 메모리의 제 2 물리적 유닛은 그 안에 저장된 데이터가 없으며 그것과 연관된 상이한 순차적 물리적 어드레스들을 갖는 상기 메모리의 복수의 물리적 유닛들 중 하나이고;
    상기 메모리의 제 1 물리적 유닛과 연관된 물리적 어드레스는 상기 순차적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞이며;
    상기 메모리의 제 2 물리적 유닛과 연관된 물리적 어드레스는 상기 순차적 물리적 어드레스들 중 마지막 어드레스인, 상기 재배치 단계를 포함하는, 메모리를 동작시키는 방법.
  8. 청구항 7에 있어서,
    상기 방법은 상기 재배치된 데이터를 감지하기 위해 동작 동안 상기 메모리의 제 1 물리적 유닛에 저장된 데이터가 재배치된 상기 제 2 물리적 유닛과 연관된 물리적 어드레스를 식별하도록 대수적 매핑(algebraic mapping)을 사용하는 단계를 포함하는, 메모리를 동작시키는 방법.
  9. 청구항 7 또는 청구항 8에 있어서,
    상기 방법은 특정 수의 프로그램 동작들이 상기 메모리 상에서 수행되는 것에 응답하여 상기 메모리의 제 1 물리적 유닛에 저장된 데이터를 상기 메모리의 제 2 물리적 유닛에 재배치하는 단계를 포함하는, 메모리를 동작시키는 방법.
  10. 청구항 7 또는 청구항 8에 있어서,
    상기 메모리의 제 1 물리적 유닛에 저장된 데이터를 상기 메모리의 제 2 물리적 유닛에 재배치하는 단계는:
    상기 메모리의 제 1 물리적 유닛은 그 안에 저장된 데이터가 없고 그것과 연관된 순차적 물리적 어드레스들 중 제 1 물리적 어드레스를 갖는 상기 메모리의 물리적 유닛이 되며;
    상기 메모리의 제 3 물리적 유닛은 그 안에 저장된 데이터가 없고 그것과 연관된 순차적 물리적 어드레스들 중 마지막 어드레스를 갖는 상기 메모리의 물리적 유닛이 되는 결과로 귀착되고;
    상기 방법은 상기 메모리의 제 4 물리적 유닛에 저장된 데이터를 상기 메모리의 제 3 물리적 유닛에 재배치하는 단계를 더 포함하며, 상기 메모리의 제 4 물리적 유닛과 연관된 물리적 어드레스는 상기 메모리의 제 1 물리적 유닛과 연관된 물리적 어드레스 바로 앞인, 메모리를 동작시키는 방법.
  11. 장치에 있어서,
    메모리 셀들의 복수의 그룹들을 가진 메모리로서:
    상기 그룹들의 각각은 메모리 셀들의 복수의 물리적 유닛들을 포함하고;
    각각의 개별 그룹의 물리적 유닛들의 각각은 그것과 연관된 상이한 순차적 물리적 어드레스를 갖고;
    각각의 개별 그룹의 제 1 수의 물리적 유닛들은 그 안에 저장된 데이터를 가지며;
    각각의 개별 그룹의 제 2 수의 물리적 유닛들은 그 안에 저장된 데이터가 없고, 각각의 개별 그룹의 제 2 수의 물리적 유닛들의 각각의 개별 물리적 유닛과 연관된 물리적 어드레스는 상기 시퀀스에서의 상이한 연속적 물리적 어드레스인, 상기 메모리; 및
    각각의 개별 그룹에 대해, 상기 시퀀스에서의 물리적 어드레스가 상기 그룹의 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞에 있는 상기 그룹의 제 1 수의 물리적 유닛들의 물리적 유닛에 저장된 데이터를 상기 그룹의 제 2 수의 물리적 유닛들과 연관된 연속적 물리적 어드레스들 중 마지막 어드레스로 재배치하도록 구성된 회로부를 포함하는, 장치.
  12. 청구항 11에 있어서,
    상기 회로부는 각각의 개별 그룹에 대한 별개의 회로부를 포함하는, 장치.
  13. 청구항 11에 있어서,
    각각의 개별 그룹의 물리적 유닛들의 각각은 동일한 크기를 갖는, 장치.
  14. 청구항 11에 있어서,
    그 안에 저장된 데이터가 없는 각각의 개별 그룹의 제 2 수의 물리적 유닛들은 소수(prime number)의 물리적 유닛들을 포함하는, 장치.
  15. 청구항 11 내지 청구항 14 중 어느 한 항에 있어서,
    상기 메모리는 3-차원 교차-점 메모리(three-dimensional cross-point memory)를 포함하는, 장치.
  16. 메모리를 동작시키는 방법에 있어서,
    그 안에 저장된 데이터가 없는 상기 메모리의 물리적 유닛들의 수량을 변경하는 단계로서, 상기 그 안에 저장된 데이터가 없는 메모리의 물리적 유닛들은 그것과 연관된 상이한 순차적 물리적 어드레스들을 갖는, 상기 변경하는 단계;
    그 안에 저장된 데이터가 없는 상기 물리적 유닛들의 수량을 변경한 후 상기 메모리의 물리적 유닛에 저장된 데이터를 상기 그 안에 저장된 데이터가 없는 메모리의 물리적 유닛들 중 하나로 재배치하는 단계로서:
    상기 저장된 데이터가 재배치되는 상기 메모리의 물리적 유닛과 연관된 물리적 어드레스는 상기 순차적 물리적 어드레스들 중 제 1 물리적 어드레스 바로 앞이며;
    상기 저장된 데이터가 재배치되는 상기 메모리의 물리적 유닛과 연관된 물리적 어드레스는 상기 순차적 물리적 어드레스들 중 마지막 어드레스인, 상기 재배치 단계를 포함하는, 메모리를 동작시키는 방법.
  17. 청구항 16에 있어서,
    상기 방법은 테이블을 사용하지 않고 상기 메모리의 물리적 유닛에 저장된 데이터를 그 안에 저장된 데이터가 없는 메모리의 물리적 유닛들 중 하나로 재배치하는 단계를 포함하는, 메모리를 동작시키는 방법.
  18. 청구항 16 또는 청구항 17에 있어서,
    상기 방법은 상기 메모리의 평균 내구성에 적어도 부분적으로 기초하여 그 안에 저장된 데이터가 없는 메모리의 물리적 유닛들의 수량을 변경하는 단계를 포함하는, 메모리를 동작시키는 방법.
  19. 청구항 16 또는 청구항 17에 있어서,
    상기 방법은 상기 메모리의 작업부하 및 상기 메모리의 유형에 적어도 부분적으로 기초하여 그 안에 저장된 데이터가 없는 상기 메모리의 물리적 유닛들의 수량을 변경하는 단계를 포함하는, 메모리를 동작시키는 방법.
  20. 청구항 16 또는 청구항 17에 있어서,
    그 안에 저장된 데이터가 없는 상기 메모리의 물리적 유닛들의 수량을 변경하는 단계는:
    그 안에 저장된 데이터가 없는 상기 메모리의 물리적 유닛들의 수량을 증가시키는 단계; 또는
    그 안에 저장된 데이터가 없는 상기 메모리의 물리적 유닛들의 수량을 감소시키는 단계 중 하나를 포함하는, 메모리를 동작시키는 방법.
KR1020217015011A 2018-11-01 2019-10-09 메모리에서의 데이터 재배치 KR20210063432A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/177,985 2018-11-01
US16/177,985 US10795576B2 (en) 2018-11-01 2018-11-01 Data relocation in memory
PCT/US2019/055289 WO2020091962A1 (en) 2018-11-01 2019-10-09 Data relocation in memory

Publications (1)

Publication Number Publication Date
KR20210063432A true KR20210063432A (ko) 2021-06-01

Family

ID=70458103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217015011A KR20210063432A (ko) 2018-11-01 2019-10-09 메모리에서의 데이터 재배치

Country Status (6)

Country Link
US (2) US10795576B2 (ko)
EP (1) EP3874374A4 (ko)
JP (1) JP2022506259A (ko)
KR (1) KR20210063432A (ko)
CN (1) CN112997160A (ko)
WO (1) WO2020091962A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
CN113568562A (zh) * 2020-04-28 2021-10-29 华为技术有限公司 一种存储系统、内存管理方法和管理节点
US20210012844A1 (en) * 2020-09-25 2021-01-14 Intel Corporation Endurance and serviceability in solid state drives
US11966618B2 (en) 2021-08-25 2024-04-23 Western Digital Technologies, Inc. Purposeful super device imbalance for ZNS SSD efficiency
US11960753B2 (en) 2021-08-25 2024-04-16 Western Digital Technologies, Inc. Solution for super device imbalance in ZNS SSD

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
JP2004341989A (ja) * 2003-05-19 2004-12-02 Matsushita Electric Ind Co Ltd メモリカードパックとメモリカード
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US20060282610A1 (en) 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
TWI322957B (en) * 2007-01-23 2010-04-01 Silicon Motion Inc Storage apparatus and method for accessing storage apparatus
US8275928B2 (en) 2008-05-15 2012-09-25 Silicon Motion, Inc. Memory module and method for performing wear-leveling of memory module using remapping, link, and spare area tables
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
JP5192352B2 (ja) 2008-10-30 2013-05-08 株式会社日立製作所 記憶装置及びデータ格納領域管理方法
US8694718B2 (en) 2008-12-30 2014-04-08 Micron Technology, Inc. Wear leveling for erasable memories
US8255613B2 (en) * 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
JP2012014400A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
KR101739556B1 (ko) 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
JP5728292B2 (ja) * 2011-02-04 2015-06-03 株式会社東芝 メモリデバイス及びホストシステム
US9158672B1 (en) * 2011-10-17 2015-10-13 Rambus Inc. Dynamic deterministic address translation for shuffled memory spaces
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
JP5492237B2 (ja) * 2012-03-15 2014-05-14 株式会社東芝 ビデオ配信サーバ、ssd制御方法
US9116792B2 (en) 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
WO2015173966A1 (ja) * 2014-05-16 2015-11-19 富士通株式会社 情報処理装置、書き込み制御回路、書き込み制御方法、及び書き込み制御プログラム
US9471451B2 (en) * 2014-06-18 2016-10-18 International Business Machines Corporation Implementing enhanced wear leveling in 3D flash memories
US9678677B2 (en) * 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
JP2016170703A (ja) 2015-03-13 2016-09-23 富士通株式会社 記憶装置、記憶装置の制御方法、及び情報処理システム
US10120613B2 (en) * 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10228878B1 (en) * 2017-10-30 2019-03-12 Western Digital Technologies, Inc. Wear leveling in non-volatile storage
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory

Also Published As

Publication number Publication date
CN112997160A (zh) 2021-06-18
US11983403B2 (en) 2024-05-14
US10795576B2 (en) 2020-10-06
EP3874374A4 (en) 2022-08-03
US20210019052A1 (en) 2021-01-21
WO2020091962A1 (en) 2020-05-07
JP2022506259A (ja) 2022-01-17
EP3874374A1 (en) 2021-09-08
US20200142589A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US11157417B2 (en) Memory having a static cache and a dynamic cache
US11586357B2 (en) Memory management
US20200233585A1 (en) Data relocation in hybrid memory
KR102174293B1 (ko) 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치
US11983403B2 (en) Data relocation in memory
US10977186B2 (en) Last written page searching
KR20200135549A (ko) 카운터 업데이트 동작을 위한 장치 및 방법
US11113205B2 (en) Die addressing using a reduced size translation table entry
US11194708B2 (en) Data relocation in memory having two portions of data
CN113302582A (zh) 每光标逻辑单元号定序

Legal Events

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