KR20200012026A - 웨어 레벨링 - Google Patents

웨어 레벨링 Download PDF

Info

Publication number
KR20200012026A
KR20200012026A KR1020207002041A KR20207002041A KR20200012026A KR 20200012026 A KR20200012026 A KR 20200012026A KR 1020207002041 A KR1020207002041 A KR 1020207002041A KR 20207002041 A KR20207002041 A KR 20207002041A KR 20200012026 A KR20200012026 A KR 20200012026A
Authority
KR
South Korea
Prior art keywords
memory
wear
host
register
accessed
Prior art date
Application number
KR1020207002041A
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 KR20200012026A publication Critical patent/KR20200012026A/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
    • 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
    • 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/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/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
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/221Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using ferroelectric capacitors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2253Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0027Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a ferroelectric element
    • 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
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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
    • 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
    • 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

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)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

일례의 장치는 메모리 셀 어레이의 제 1 부분, 메모리 셀 어레이의 제 2 부분, 제 1 부분에 대응하는 제 1 레지스터, 및 제 2 부분에 대응하는 제 2 레지스터를 포함한다. 상기 제 1 레지스터는 상기 제 1 부분이 얼마나 자주 액세스되는지 또는 될 것인지에 기초하여 상기 제 1 부분이 웨어 레벨링되어야하는지 여부를 표시하고, 상기 제 2 레지스터는 상기 제 2 부분이 얼마나 자주 액세스되는지 또는 될 것인지에 기초하여 상기 제 2 부분이 웨어 레벨링되어야하는지 여부를 표시한다. 장치는 셋업 명령에 응답하여 제 1 부분 또는 제 2 부분이 웨어 레벨링되는지 여부를 표시하도록 제 1 또는 제 2 레지스터를 설정한다. 그리고 장치는 장치의 전원이 켜질 때 셋업 명령을 수신한다.

Description

웨어 레벨링
본 발명은 일반적으로 컴퓨팅 시스템 및/또는 메모리 시스템과 같은 전자 시스템에 관한 것으로, 보다 구체적으로는 메모리 내에서와 같은 웨어 레벨링(wear leveling)에 관한 것이다.
메모리는 종종 컴퓨터, 휴대폰, 핸드 헬드 장치 등과 같은 전자 시스템에서 구현된다. 휘발성 및 비휘발성 메모리를 포함하는 많은 다른 유형의 메모리가 존재한다. 휘발성 메모리는 데이터를 유지하기 위해 전력을 필요로할 수 있으며, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 지속적 데이터를 제공할 수 있으며, NAND 플래시 메모리, NOR 플래시 메모리, 질화물 판독 전용 메모리(NROM), 상-변화 메모리(예를 들어, 상-변화 랜덤 액세스 메모리), 저항성 메모리(예를 들어, 저항성 랜덤 액세스 메모리), 크로스-포인트 메모리, 강유전성 랜덤 액세스 메모리(FeRAM), 등을 포함할 수 있다. 하드 디스크 드라이브(HDD)는 다른 유형의 메모리의 예일 수 있으며 자기 테이프 및/또는 광 디스크를 포함할 수 있다.
메모리의 내구성은 메모리가 더 이상 데이터를 더 이상 안정적으로 저장할 수 없게 되기 전에(가령, 장애가 나타나기 전까지) 메모리가 지속할 수 있는 기록/소거(예를 들어, 프로그램/소거) 사이클의 수와 같은 기록 횟수로 정의될 수 있다. 될 수 있다. 예를 들어, 비휘발성 메모리는 DRAM보다 내구성이 낮을 수 있다.
일부 예들에서, 비휘발성 메모리들은 메모리 셀들의 페이지들, 메모리 셀들의 블록들 등과 같이, 메모리 셀들의 그룹들로 분할될 수 있다. 예를 들어, 일부 그룹의 메모리 셀들은 다른 그룹의 메모리보다 높은 기록 횟수를 가질 수 있다. 메모리 셀 그룹 중 하나 이상이 높은 기록/소거 사이클 카운트를 갖고 다른 그룹은 낮은 기록/소거 사이클 카운트를 가질 때 메모리는 장애를 일으키기 쉽다.
일부 예들에서, 내구성은 웨어 레벨링을 사용함으로써 개선될 수 있다. 웨어 레벨링은 메모리 셀 그룹 간에 기록 작업을 분산시킬 수 있다. 예를 들어, 높은 기록/소거 사이클 카운트를 가진 그룹들이 웨어 레벨링 중에 낮은 기록/소거 사이클 카운트를 가진 그룹으로 대체될 수 있다.
도 1은 본 개시의 다수의 실시예들에 따른 장치의 예를 도시하는 블록도이다.
도 2는 본 개시의 다수의 실시예들에 따른 장치의 다른 예를 도시하는 블록도이다.
도 3은 본 개시의 다수의 실시예들에 따른 장치의 다른 예를 도시하는 블록도이다.
도 4는 본 개시의 다수의 실시예들에 따른 장치의 다른 예를 도시하는 블록도이다.
도 5a는 본 개시의 다수의 실시예들에 따른 메모리 어레이의 예를 도시한다.
도 5b는 본 개시의 다수의 실시예들에 따른 메모리 셀의 예를 도시한다.
일 예에서, 메모리 어레이의 일부는 해당 부분이 얼마나 자주 액세스되는지 또는 되어야하는지에 기초하여 웨어 레벨링되도록 선택될 수 있다. 이 부분은 웨어 레벨링될 수 있다.
본 개시의 다수의 실시예는 메모리 시스템과 같은 이전 장치에 비해 웨어 레벨링으로 인한 감소된 대역폭 사용 및/또는 감소된 전력 소비와 같은 이점을 제공한다.
다음의 상세한 설명에서, 본 명세서의 일부를 형성하고 특정 예를 도시한 첨부 도면을 참조한다. 도면에서, 유사한 참조 번호는 여러 도면에 걸쳐 실질적으로 유사한 구성 요소를 설명한다. 다른 예들이 이용될 수 있고 본 개시의 범위를 벗어나지 않고 전기 변경이 이루어질 수 있다. 그러므로, 다음의 상세한 설명은 제한적인 의미로 취해지지 않아야하고, 본 개시의 범위는 첨부된 청구 범위 및 그 등가물에 의해서만 정의된다.
일부 기존 메모리에서, 웨어 레벨링은 어레이의 특정 부분의 사용에 관계없이 전체 메모리 어레이에 적용될 수 있다. 예를 들어, 웨어 레벨링을 필요로하지 않는 메모리 어레이의 부분에 웨어 레벨링이 적용될 수 있어, 대역폭 및 전력을 소비할 수 있다. 이 문제는 메모리 밀도가 증가함에 따라 악화될 수 있다.
메모리 어레이는 메모리 셀의 페이지, 메모리 셀의 블록 등과 같은 복수의 메모리 셀 그룹을 포함할 수 있다. 라운드 로빈(round-robin) 방식과 같은 기존의 웨어 레벨링 방식의 예에서, 메모리 셀의 스페어 그룹은 기존 그룹을 대체할 수 있으며, 기존 그룹은 스페어 그룹이 될 수 있다. 예를 들어, 기존 그룹과 연관된 논리 어드레스는 어레이 내 기존 그룹의 위치 대신 어레이 내 스페어 그룹 위치로 다시 매핑될 수 있다.
도 1은 본 개시의 다수의 실시예들에 따른 전자 시스템(100)과 같은 장치의 블록도이다. 전자 시스템(100)은 호스트(103)(예를 들어, 시스템 온 칩(SOC))와 같은 장치(예를 들어, 제어기)에 연결된 메모리(101)(예를 들어, FeRAM)와 같은 메모리 시스템을 포함할 수 있다. 일부 예에서, 호스트(103)는 개인용 컴퓨터, 핸드 헬드 장치, 휴대폰 등에서와 같은 컴퓨팅 시스템의 일부일 수 있다. 호스트(103)는 예를 들어, 컴퓨팅 시스템의, 중앙 처리 장치(CPU)와 같은, 프로세서와 메모리(101) 사이의 인터페이스로서 작용할 수 있다.
"결합된"(coupled)이라는 용어는 전기적으로 결합되거나, 직접 결합되거나, 및/또는 (예를 들어, 직접적인 물리적 접촉에 의해) 중간 개재 요소없이 직접 연결되거나, 또는, 개재 요소를 두고 간접적으로 결합 및/또는 연결되는 것을 포함할 수 있다. 결합된이란 용어는 (가령, 원인 및 결과 관계에서와 같이) 서로 협력하거나 상호작용하는 2개 이상의 요소를 더 포함할 수 있다.
메모리(101)는 메모리 디바이스(102)와 제어기(104), 가령, 메모리 제어기를 포함할 수 있다. 제어기(104)는 예를 들어 프로세서를 포함할 수 있다. 제어기(104)는 연결(105)을 통해 호스트(103)로부터 명령 신호(또는 명령), 어드레스 신호(또는 어드레스) 및 데이터 신호(또는 데이터)를 수신할 수 있고 연결(105)을 통해 호스트(103)에 데이터를 출력할 수 있다.
메모리 디바이스(102)는 메모리 셀의 메모리 어레이(106)를 포함할 수 있다. 일부 예들에서, 메모리 어레이(106)는 뱅크들(예를 들어, 파티션들)과 같은 부분들로 분할될 수 있다. 메모리 어레이(106)는 예를 들어 크로스 포인트 메모리 어레이(예를 들어, 3 차원 크로스 포인트 메모리 어레이), 강유전성 메모리 셀의 어레이, 가령, 도 5a의 어레이(506), 플래시 메모리 어레이(예컨대, NAND 플래시 메모리 어레이), 등을 포함할 수 있다.
메모리 디바이스(102)는 I/O 회로(112)를 이용하여 I/O 연결부(110)를 통해 제공된 어드레스 신호를 래치하기 위한 어드레스 회로(108)를 포함할 수 있다. 어드레스 신호는 메모리 어레이(106)에 액세스하기 위해 행 디코더(114) 및 열 디코더(116)에 의해 수신 및 디코딩될 수 있다.
메모리 디바이스(102)는 일부 예에서 판독/래치 회로(120)일 수 있는 감지/버퍼 회로를 사용하여 메모리 어레이 열의 전압 및/또는 전류 변화를 감지함으로써 메모리 어레이(106)에서 데이터를 판독할 수 있다. 판독/래치 회로(120)는 메모리 어레이(106)로부터 데이터를 판독 및 래치할 수 있다. I/O 회로(112)는 I/O 연결부(110)를 통해 제어기(104)와 양방향 데이터 통신을 위해 포함될 수 있다. 기록 회로(122)는 데이터를 메모리 어레이(106)에 기록하기 위해 포함될 수 있다.
제어 회로(124)는 제어기(104)로부터 제어 접속부(126)에 의해 제공된 신호를 디코딩할 수 있다. 이들 신호는 데이터 판독, 데이터 기록, 및 데이터 소거 동작을 포함한, 메모리 어레이(106) 동작의 제어에 사용되는 칩 인에이블 신호, 기록 인에이블 신호 및 어드레스 래치 신호를 포함할 수 있다.
제어 회로(124)는 예를 들어 제어기(104)에 포함될 수 있다. 제어기(104)는 단독으로 또는 조합하여 다른 회로, 펌웨어, 소프트웨어 등을 포함할 수 있다. 제어기(104)는 (예를 들어, 메모리 어레이(106)와 동일한 다이에 포함된) 내부 제어기, 또는, (예를 들어, 전체적으로 또는 부분적으로, 메모리 어레이(106)와는 별개의 다이에 있는) 외부 제어기 일 수 있다. 예를 들어 내부 제어기는 상태 머신 또는 메모리 시퀀서일 수 있다. 일부 예에서, 제어기(104)가 내부 제어기일 수 있는 경우, 제어기(104)는 메모리 디바이스(102)의 일부일 수 있다.
제어기(104)는 하나 이상의 레지스터(130)(예를 들어, 래치)를 포함할 수 있다. 일부 예들에서, 레지스터(130)의 상태(예를 들어, 값)는 어레이(106)의 대응하는 부분이 웨어 레벨링되도록 선택되는지 여부, 따라서 호스트(103)로부터 제어기(104)에서 연결(105)을 통해 수신된 웨어 레벨링 명령에 응답하여 웨어 레벨링되는지 여부를 나타낼 수 있다. 예를 들어, 레지스터(130)의 상태(예를 들어, 논리 하이 또는 논리 로우)는 호스트(103)로부터 제어기(104)에서 접속부(105)를 통해 수신 된 웨어 레벨링 설정 명령에 응답하여, 어레이(106)의 대응 부분이 웨어 레벨링을 위해 선택되는지 여부, 그리고 따라서 호스트(103)로부터 웨어 레벨링 명령에 응답하여 웨어 레벨링되는지 여부를 표시하도록 설정될 수 있다. 다른 예에서, 레지스터(130)는 어레이(106)의 마지막으로 액세스(기록, 판독 및/또는 소거)된 부분의 어드레스를 저장할 수 있다. 예를 들어, 어레이(106)의 마지막 액세스된 부분(예를 들어, 마지막 액세스된 부분만)이 웨어 레벨링을 위해 선택되어, 웨어 레벨링 명령에 응답하여 웨어 레벨링될 수 있다.
일부 예들에서, 호스트(103)는 어레이(106)의 각각의 부분이 액세스되는 횟수를 추적할 수 있다. 예를 들어, 제어기(104)는 어레이(106)의 각 부분이 기록되는 횟수 또는 어레이(106)의 각 부분에서 수행되는 기록/소거 사이클의 수를 추적할 수 있다. 제어기(104)는 해당 부분에 기록/소거 사이클이 수행되는 횟수(가령, 기록/소거 사이클 수) 또는 해당 부분이 기록되는 횟수와 같이, 어레이(106)의 일부분이 액세스되는 횟수를 카운트하기 위해 하나 이상의 카운터(135)를 포함할 수 있다. 예를 들어, 어레이(106)의 각각의 부분에 대한 카운터(135)가 존재할 수 있다. 카운터(135)의 카운트는 예를 들어 시스템(100)의 전원 공급시에 리셋될 수 있다(예를 들어, 0으로).
일부 예에서, DRAM에 일반적으로 사용될 수 있는 유형과 같은 리프레시 신호(예를 들어, 리프레시 명령)는 접속부(105)에 의해 제공될 수 있다. 예를 들어, 리프레시 명령은 웨어 레벨링 대신에 사용되어, 웨어 레벨링을 개시(예: 트리거)할 수 있다. 전형적인 DRAM 리프레시 동안, 예를 들어, 데이터는 메모리 위치로부터 판독될 수 있고, 판독된 데이터는 그 메모리 위치로 다시 기록될 수 있다.
일부 예에서, 제어기(104)는 어드레스 변환 테이블(137)과 같은 어드레스 변환기를 포함할 수 있다. 예를 들어, 어드레스 변환 테이블(137)은 호스트(103)로부터 수신된 논리 어드레스를 메모리 어레이(106) 내 메모리 셀들의 그룹의 위치(예를 들어, 위치의 물리적 어드레스)로 변환할 수 있다. 일부 예들에서, 메모리 어레이(106)의 각 부분에 대한 전용 어드레스 변환 테이블(137)이 존재할 수 있고, 이는 그 부분에 대응하는 논리 어드레스를 호스트(103)로부터 그 부분에 대한 물리적 어드레스로 변환할 수 있다.
도 2는 본 개시의 많은 실시예들에 따른 전자 시스템(100)의 일부일 수 있는 전자 시스템(200)과 같은 장치의 예의 블록도이다. 예를 들어, 전자 시스템(200)은 호스트(103)의 일부일 수 있는 호스트(203)에 연결된, 메모리(101)의 일부일 수 있는 메모리(201)를 포함할 수 있다. 예를 들어, 메모리(201)는 메모리 디바이스(102)와 같은 메모리 디바이스에 연결되는, 제어기(104)와 같은 제어기를 포함할 수 있다. 일부 예들에서, 메모리(201)의 제어기는 메모리(201)의 메모리 디바이스의 일부일 수 있다(그리고, 예를 들어, 메모리(201)는 메모리 디바이스로 지칭될 수 있음).
메모리(201)는, 메모리 어레이(106)의 일부일 수 있고 뱅크와 같은 복수의 부분(240)(예를 들어, 파티션)으로 분할될 수 있는, 메모리 어레이(206)를 포함할 수 있다. 예를 들어, 메모리 어레이(206)는 부분(240-1 내지 240-4)을 포함할 수 있다. 그러나, 부분(240)의 수는 4 개의 부분으로 제한되지 않을 수 있다. 각각의 부분(240)은 개별적으로 어드레스될 수 있고 개별적으로 액세스될 수 있다. 예를 들어, 각각의 부분(240)은 개별적으로 기록, 판독 및/또는 소거될 수 있다. 일부 예들에서, 읽기 명령 및 쓰기 명령은 부분들(240-1 내지 240-4) 중 특정 부분의 어드레스를 포함할 수 있다. 더욱이, 각각의 부분(240)은 다른 부분(240)과 개별적으로 그리고 독립적으로 웨어 레벨링될 수 있다. 각각의 부분(240)은 예를 들어 메모리 셀의 페이지, 메모리 셀의 블록 등과 같은 복수의 메모리 셀 그룹을 포함할 수 있다.
메모리(201)는 본 개시의 다수의 실시예에 따라 도 1의 레지스터(130)의 일부일 수 있는, 모드 레지스터(가령, 래치)와 같은, 레지스터(230-1 내지 230-4)를 포함할 수 있다. 레지스터들(230-1 내지 230-4) 중 각각은 부분(240-1 내지 240-4) 중 대응하는 부분에 각각 대응할 수 있다.
카운터(235-1 내지 235-4)는 본 개시의 다수의 실시예에 따라 도 1의 카운터(135)의 일부일 수 있다. 그러나 카운터 수는 4 개로 제한되지 않을 수 있다. 일부 예들에서, 호스트(203)의 카운터들(235-1 내지 235-4) 각각은 각각 부분들(240-1 내지 240-4)의 대응하는 부분에 각각 대응할 수 있다. 카운터(235)는 부분들(240-1 내지 240-4) 중 대응하는 부분이 액세스되는 횟수를 카운트할 수 있다. 예를 들어, 대응 부분(240)이 액세스될 때마다 카운트를 증분시킬 수 있는 신호(241)가 카운터(235)로 전송될 수 있다. 예를 들어, 카운트는 대응 부분(240)이 액세스된 횟수를 나타낼 수 있다.
웨어 레벨링은 호스트(203)로부터의 웨어 레벨링 명령 또는 리프레시 명령 일 수 있는 명령(242)에 응답하여 부분(240-1 내지 240-4) 중 선택된 특정 부분에 대해 수행될 수 있다. 일부 예에서, 레지스터(230)의 상태는 명령(242)에 응답하여 부분들(240) 중 해당 부분이 웨어 레벨링되어야하는지 여부를 표시할 수 있다. 예를 들어, 논리 값(1)과 같은 논리 값이, 레지스터(230)에 저장되어, 명령(242)에 응답하여 웨어 레벨링될 부분들(240) 중 대응하는 부분을 선택할 수 있고, 논리 영(0)과 같은 논리 로우가 레지스터(230)에 저장되어, 명령(242)에 응답하여 그 대응 부분(240)이 무시될 것이다(가령, 마모 레벨링되지 않도록 선택됨). 레지스터(230)의 논리적 하이는 (예를 들어, 웨어 레벨링될 대응하는 부분(240)을 선택하기 위해) 대응 부분(240)이 웨어 레벨링됨을 나타냄을 표시하는데 사용될 수 있고, 레지스터(230)의 논리적 로우는 (예를 들어, 웨어 레벨링될 대응 부분(240)을 선택하지 않기 위해) 대응 부분(240)이 웨어 레벨링되지 않음을 나타내는데 사용될 수 있으나, 다른 예에서, 논리적 하이 및 논리적 로우의 역할이 역전될 수 있다.
일부 예들에서, 호스트(203)는 부분들(240) 중 어느 것이 가장 빈번하게 액세스될 수 있는지를 미리 알 수 있다. 예를 들어, 가장 빈번하게 액세스될 수 있는 부분(240)은 명령(242)에 응답하여 웨어 레벨링될 수 있는 반면, 비교적 드물게 액세스될 수 있는 부분은 명령(242)에 응답하여 웨어 레벨링되지 않을 수 있다. 예를 들어, 가장 빈번하게 액세스될 수 있는 부분(240)은 웨어 레벨링되도록 선택될 수 있는 반면, 비교적 드물게 액세스될 수 있는 부분들은 웨어 레벨링되도록 선택되지 않을 수 있다.
일부 예들에서, 호스트(203)는 해당 부분(240)들이 얼마나 자주 액세스도리 것인지에 기초하여 해당 부분(240)에 대해 웨이퍼 레벨링이 수행될 것임을 표시하는 상태(가령, 논리적 하이)로 설정될 레지스터(230)와, 해당 부분(240)이 얼마나 자주 액세스될 것인지에 기초하여 해당 부분(240)에 대해 웨어 레벨링이 수행되지 않을 것임을 표시하는 상태(가령, 논리적 로우)로 설정될 레지스터(230)를 메모리(201)에 나타낼 수 있는 셋업 명령(244)을 메모리(201)에 전송할 수 있다. 레지스터(230)는 이 명령에 응답하여 설정될 수 있다. 예를 들어, 레지스터들(230-1 내지 130-4) 각각은 부분들(240-1 내지 240-4) 중 대응 부분이 얼마나 자주 각각 액세스될 것인지에 기초하여 부분들(240-1 내지 240-4) 중 대응 부분이 웨어 레벨링될 것인지 여부(가령, 부분(240-1 내지 240-4) 중 대응 부분이 웨어 레벨링되도록 선택될지 여부)를 각각 표시할 수 있다. 일부 예에서, 레지스터(230)는 수행될 액세스들의 수(예를 들어, 예상된 수)가 특정 수 이상인 것에 응답하여 대응 부분(240)이 웨어 레벨링될 것임을 표시하도록 설정될 수 있다.
셋업 명령(244)은 예를 들어 시스템(200)이 파워 업될 때마다(예를 들어, 파워 업마다 한번씩) 메모리(201)로 전송될 수 있다. 일부 예들에서, 호스트(203)는 대응 부분(240)에 대해 웨어 레벨링이 수행 될지 여부에 기초하여 레지스터(230)에 상태를 기록할 수 있다.
일부 예들에서, 레지스터(230)의 논리 로우는, 논리 하이를 갖는 레지스터들(230)에 대응하는 부분들(240)만이 명령(242)에 응답하여 웨어 레벨링(되도록 선택)될 수 있도록, 대응 부분(240)이 웨어 레벨링되는 것을 방지하도록(가령, 잠그도록) 작용할 수 있다. 도 2의 예에서, 도 2의 예에서, 레지스터(230-1 및 230-3)의 논리 제로는 명령(242)에 응답하여 부분(240-1 및 240-3)의 웨어 레벨링을 각각 방지하도록 작용하여, 논리값 1을 가진 레지스터들(230-2 및 230-4)에 각각 대응하는 부분들(240-2 및 240-4)만이 명령(242)에 응답하여 웨어 레벨링될 수 있다. 예를 들어, 부분(240-2, 240-4)만이 웨어 레벨링되도록 선택될 수 있다.
호스트(203)는 카운터(235)에서 카운트를 모니터링할 수 있다. 카운터(235)의 카운트가 (예를 들어, 대응하는 부분(240)에 대한 특정 액세스 횟수를 나타내는) 특정 값 이상인 경우, 호스트(203)는 예를 들어, 대응하는 레지스터(230)에 논리 값 1을 메모리(201)로 하여금 저장하게 하는 셋업 명령(244)을 전송함으로써, 또는, 대응하는 레지스터(230)에 논리값 1을 기록함으로써, 대응하는 레지스터(230)를 논리 값 하이로 설정할 수 있다. 도 2의 예에서, 카운터(235-1)의 카운트가 특정 값 이상이 되면, 호스트(203)는 (예를 들어, 값을 변경시킬 수 있는 셋업 명령(244)을 메모리(201)에 전송함으로써, 또는, 논리값 1을 레지스터(230-1)에 기록함으로써) 대응하는 레지스터(230-1)의 값을 논리 0으로부터 논리 1 값으로 변경시킬 수 있다.
일부 예들에서, 호스트(203)는 대응하는 카운터(235)의 카운트로부터 각 부분(240)에 대한 단위 시간당 액세스 수(예를 들어, 액세스 레이트)를 결정할 수 있다. 예를 들어, 호스트(203)는 대응하는 부분(240)에 대한 액세스 레이트에 기초하여 레지스터(230)를 논리값 로우 또는 하이로 설정할 수 있다. 도 2의 예에서, 부분(240-1)에 대한 액세스 레이트가 특정 값 이상으로 증가하는 것에 응답하여, 호스트(203)는 대응하는 레지스터(230-1)의 값을 논리 0에서 논리 1로 변화시킬 수 있고, 부분(240-2)에 대한 액세스 레이트가 특정 값보다 작으면, 호스트(203)는 대응하는 레지스터(230-2)의 값을 논리 1에서 논리 0으로 변경할 수 있다.
도 3은 본 개시의 많은 실시예들에 따른 전자 시스템(100)의 일부일 수 있는 전자 시스템(300)과 같은 장치의 예의 블록도이다. 예를 들어, 전자 시스템(300)은 호스트(103)의 일부일 수 있는 호스트(303)에 연결된 메모리(101)의 일부일 수 있는 메모리(301)를 포함할 수 있다. 예를 들어, 메모리(301)는 메모리 디바이스(102)와 같은 메모리 디바이스에 결합된, 제어기(104)와 같은 제어기를 포함할 수 있다. 일부 예에서, 메모리(301)의 제어기는 메모리(301)의 메모리 디바이스의 일분일 수 있다(그리고, 예를 들어, 메모리(301)는 메모리 디바이스로 지칭될 수 있다).
메모리(301)는, 메모리 어레이(106)의 일부일 수 있고 뱅크(예를 들어, 파티션)와 같은 복수의 부분(340)으로 분할될 수 있는, 메모리 어레이(306)를 포함할 수 있다. 예를 들어, 메모리 어레이(306)는 부분들(340-1 내지 340-4)를 포함할 수 있다. 그러나, 부분(340)의 수는 4 개의 부분으로 제한되지 않을 수 있다. 각각의 부분(340)은 개별적으로 어드레싱될 수 있고 개별적으로 액세스될 수 있다. 예를 들어, 각각의 부분(340)은 개별적으로 기록, 판독 및/또는 소거될 수 있다. 일부 예들에서, 판독 명령 및 기록 명령은 부분들(340-1 내지 340-4) 중 특정 부분의 어드레스를 포함할 수 있다. 더욱이, 각각의 부분(340)은 다른 부분(340)과 개별적으로 그리고 독립적으로 웨어 레벨링될 수 있다. 각각의 부분(340)은 예를 들어 메모리 셀의 페이지, 메모리 셀의 블록 등과 같은 복수의 메모리 셀 그룹을 포함할 수 있다.
카운터(335-1 내지 335-4)는 본 개시의 다수의 실시예에 따른 도 1의 카운터(135)의 일부일 수 있다. 그러나 카운터 수는 4 개로 제한되지 않을 수 있다. 일부 예들에서, 호스트(303)의 카운터들(335-1 내지 335-4) 각각은 각각 부분들(340-1 내지 340-4)의 대응 부분에 각각 대응할 수 있다. 카운터(335)는 부분들(340-1 내지 340-4) 중 대응하는 부분이 액세스되는 횟수를 카운트할 수 있다. 예를 들어, 대응 부분(340)이 액세스될 때마다 카운트를 증가시킬 수 있는 신호(341)가 카운터(335)로 전송될 수 있다. 예를 들어, 카운트는 대응 부분(340)이 액세스된 횟수를 나타낼 수 있다.
웨어 레벨링 명령 또는 리프레시 명령과 같은 명령(342)이 호스트(303)에서 메모리(301)로 전송되어, 부분(340)을 웨어 레벨링(되도록 선택)시킬 수 있다. 예를 들어, 명령(342)은 웨어 레벨링될(가령, ~ 되도록 선택된) 특정 부분(340)의 어드레스를 포함할 수 있다. 이와 같이, 명령(342)은 예를 들어, 부분 지정 명령으로 지칭될 수 있다. 일부 예에서, 명령(343)은 모든 부분(340)보다 적은 어드레스를 포함할 수 있다. 예를 들어, 명령(342)은 가장 빈번하게 액세스될 수 있는 부분(340)의 어드레스를 포함할 수 있다. 예를 들어, 명령(342)에 있는 어드레스를 가진 부분들(340)만이 웨어 레벨링될 수 있음에 유의한다. 예를 들어, 명령(342)에 어드레스가 있는 부분(340)만이 웨어 레벨링을 위해 선택된다
일부 예들에서, 호스트(303)는 부분들(340) 중 어느 부분이 가장 빈번하게 액세스될 수 있는지를 미리 알 수 있고, 명령(342)에서 이들 부분들의 어드레스를 포함할 수 있다. 예를 들어, 이 어드레스를 가진 부분이 얼마나 자주 액세스되는지(가령, ~될 것으로 예상되는지)에 기초하여 어드레스가 포함될 수 있다. 다른 예들에서, 명령(342)의 어드레스들은 해당 부분들이 얼마나 자주 어드레싱될 것인지(가령, ~될 것으로 예상되는지)에 기초하여 웨어 레벨링으로부터 배제될 부분들의 어드레스를 포함할 수 있고, 이 경우, 나타나지 않는 어드레스를 가진 부분들이 명령(342)에 응답하여 웨어 레벨링된다. 예를 들어, 명령은 이들 부분의 어드레스만을 명시적으로 포함시킴으로써 웨어 레벨링될 부분만을 직접적으로 지시할 수 있거나 또는 단지 웨어 레벨링되지 않을 부분들만의 어드레스를 포함시킴으로써 웨어 레벨링될 부분들만을 간접적으로 표시할 수 있어서, 배제된 어드레스만이 웨어 레벨링되게 된다. 이러한 방식으로, 예를 들어, 명령은 웨어 레벨링될 부분만을 직접 또는 간접적으로 선택할 수 있다.
다른 예들에서, 호스트(303)는 카운터들(335)상에서 카운트들을 모니터링할 수 있다. 카운터(335)의 카운트가 (예를 들어, 대응하는 부분(340)에 대한 특정 횟수의 액세스를 나타내는) 특정 값 이상이 되는 것에 응답하여, 호스트(303)는 대응 부분(340)의 어드레스를 명령(342)에 추가할 수 있다.
일부 예들에서, 호스트(303)는 대응하는 카운터(335)의 카운트로부터 각 부분(340)에 대한 단위 시간당 액세스 수(예를 들어, 액세스 레이트)를 결정할 수 있다. 예를 들어, 부분(340)에 대한 액세스 레이트가 특정 값 이상이 됨에 응답하여, 호스트(303)는 그 부분(340)의 어드레스를 명령(342)에 추가할 수 있고, 부분(340)에 대한 액세스 레이트가 특정 값보다 작아지면 호스트(303)는 명령(342)으로부터 그 부분(340)의 어드레스를 제거할 수 있다.
도 4는 본 개시의 많은 실시예들에 따른 전자 시스템(100)의 일부일 수 있는 전자 시스템(400)과 같은 장치의 예의 블록도이다. 예를 들어, 전자 시스템(400)은 호스트(103)의 일부일 수 있는 호스트(403)에 결합된 메모리(101)의 일부일 수 있는 메모리(401)를 포함할 수 있다. 예를 들어, 메모리(401)는 메모리 디바이스(102)와 같은 메모리 디바이스에 결합된, 제어기(104)와 같은 제어기를 포함할 수 있다. 일부 예에서, 메모리(401)의 제어기는 메모리(401)의 메모리 디바이스의 일부분일 수 있다(그리고, 예를 들어, 메모리(401)는 메모리 디바이스로 지칭될 수 있다).
메모리(401)는, 메모리 어레이(106)의 일부일 수 있고 뱅크(예를 들어, 파티션)와 같은 복수의 부분(440)으로 분할될 수 있는, 메모리 어레이(406)를 포함할 수 있다. 예를 들어, 메모리 어레이(406)는 부분(440-1 내지 440-4)을 포함할 수 있다. 그러나, 부분(440)의 수는 4 개의 부분으로 제한되지 않을 수 있다. 각각의 부분(440)은 개별적으로 어드레싱될 수 있고 개별적으로 액세스될 수 있다. 예를 들어, 각각의 부분(440)은 개별적으로 기록, 판독 및/또는 소거될 수 있다. 일부 예들에서, 판독 명령 및 기록 명령은 부분들(440-1 내지 440-4) 중 특정 부분의 어드레스를 포함할 수 있다. 더욱이, 각각의 부분(440)은 다른 부분(440)과 개별적으로 그리고 독립적으로 웨어 레벨링될 수 있다. 각각의 부분(440)은 예를 들어 메모리 셀의 페이지, 메모리 셀의 블록 등과 같은 복수의 메모리 셀 그룹을 포함할 수 있다.
호스트(403)는 웨어-레벨링 명령 또는 리프레시 명령과 같은 명령(442)을 메모리(401)에 전송할 수 있다. 메모리(401)는 예를 들어, 본 개시의 다수의 실시예에 따라 도 1의 레지스터(130)의 일부분일 수 있는 레지스터(430)(가령, 래치)를 포함할 수 있다. 레지스터(430)는 부분들(440)(예를 들어, 부분들 440-1 내지 440-4)의 마지막 액세스 부분(440)의 어드레스를 저장할 수 있다. 메모리(401)는 어드레스가 레지스터(430)에 저장된 후 다음 명령(442)를 수신한 것에 응답하여 레지스터(430)에 어드레스가 있는 부분(440)을 웨어 레벨링할 수 있다. 예를 들어, 메모리(401)는 명령(442)에 응답하여 레지스터(430)에서 어드레스를 판독할 수 있고, 그 어드레스를 갖는 부분(440)의 웨어 레벨링할 수 있다. 예를 들어, 레지스터(430)에 있는 마지막 액세스 부분(440)의 어드레스는 웨어 레벨링을 위해 그 부분을 선택할 수 있다.
예를 들어, 특정 마지막 액세스 부분(440)의 어드레스가 레지스터(430)에 나타나는 횟수(예를 들어, 특정 마지막 액세스 부분(440)의 어드레스가 레지스터(430)에 나타나는 빈도)는 특정 부분(440)이 얼마나 자주 액세스되는지의 측정치(예를 들어, 적어도 통계적으로)인 것으로 예상된다. 예를 들어, 어드레스가 레지스터(430)에서 가장 빈번하게 나타나는 부분(440)이 가장 자주 액세스되었을 가능성이 가장 높고, 레지스터(430)에서 어드레스가 가장 덜 나타나는 부분(440)이 가장 덜 액세스되었을 가능성이 높다. 예를 들어, 어드레스가 레지스터(430)에 있는 부분(440)을 선택하는 것은, 해당 부분(440)에 대한 액세스 횟수가 나머지 부분(440)보다 큰 점에 기초하여 해당 부분(440)을 선택하는 것과 유사할 수 있다. 레지스터(430)에 있는 어드레스를 가진 부분(440)을 선택하는 것은 그 부분이 얼마나 자주 액세스되는지에 기초하여 그 부분을 선택하는 것과 유사할 수 있다.
일부 예들에서, 위에서 논의된 웨어 레벨링은 판독 또는 기록 동작들이 수행되는 동안과 같은 백그라운드 동작들로서 수행될 수 있다. 예를 들어, 호스트로부터의 명령에 응답하여 메모리 어레이의 일부에 대해 수행될 웨어 레벨링은 일부 읽기 또는 쓰기와 같은 보다 높은 우선 순위(예를 들어, 레이턴시 임계) 동작이 수행되어야 한다면 연기될 수 있다.
일부 예들에서, 도 2의 각 부분(240), 도 3의 각 부분(340) 및 도 4의 각 부분(440)과 같은 메모리 어레이의 각 부분은 예를 들어, 자체 배타적인(예를 들어, 다른 모든 그룹에 대해 배타적) 사용중 블록 그룹 세트 및 자체 배타적 스페어 블록 세트를 가질 수 있다. 일부 예들에서, 메모리 어레이의 (예를 들어, 각각의) 일부분에서의 웨어 레벨링은 기존 그룹과 같은 사용중인 메모리 셀 그룹을 대체 여분의 메모리 셀 그룹으로 대체하는 것을 포함할 수 있다. 예를 들어, 메모리 어레이의 일부에서 기존 그룹의 위치(예를 들어, 물리적 어드레스)에 매핑될 수 있는 논리 어드레스는 그 부분에서 대체 스페어 그룹의 위치로 재매핑될 수 있다. 기존 그룹에 대응하는 논리 어드레스는 예를 들어, 메모리 어레이의 일부에 대한 어드레스 변환 테이블(137)과 같은 어드레스 변환 테이블에서 기존 그룹의 물리 어드레스를 대체 스페어 그룹의 어드레스로 변경함으로써 대체 스페어 그룹의 어드레스로 재매핑될 수 있다. 예를 들어, 도 1과 관련하여 위에서 나타낸 바와 같이, 각각의 부분(240, 340 및 440)과 같은 메모리 어레이(106)의 각 부분에 대한 전용 어드레스 변환 테이블(137)이 있을 수 있다.
메모리 어레이의 일부(예를 들어, 각 부분)에서의 웨어 레벨링은 예를 들어 라운드 로빈 동작을 포함할 수 있으며, 여기서 스페어 그룹의 큐 내 제 1 위치의 예비 그룹은 (해당 부분을 위해 배타적으로) 기존 그룹을 대체할 수 있고, 기존 그룹은 예비 그룹의 큐 내 최종 위치에 배치될 수 있다. 후속 웨어 레벨링 작업에서, 큐의 마지막 위치에서 시작하여, 예비 그룹이 큐의 첫 번째 위치에 도달할 때까지 이동하여 궁극적으로 기존 블록을 대체할 수 있다. 예를 들어, 각각의 웨어 레벨링 동안, 마지막 위치의 예비 그룹은 교체된 기존 블록에 의해 제 1 위치를 향해 변위될 수 있다.
도 5a는 본 개시의 다수의 실시예에 따른 강유전성 메모리 어레이와 같은 메모리 어레이(506)의 예를 도시한다. 예를 들어, 메모리 어레이(506)는 메모리 어레이(106, 206, 306 및/또는 406)일 수 있다.
메모리 어레이(506)는 상이한 상태를 저장하도록 프로그램 가능할 수 있는 메모리 셀(508)을 포함할 수 있다. 메모리 셀(508)은 프로그램 가능 상태를 나타내는 전하를 저장하는 커패시터를 포함할 수 있다. 예를 들어, 충전 및 비 충전 커패시터는 각각 2 개의 논리 상태를 나타낼 수 있다. 일부 예에서, 메모리 셀(508)은 강유전성 물질을 갖는 커패시터를 포함할 수 있다. 예를 들어, 강유전성 재료는 자발적 전기 분극을 가질 수 있다(예를 들어, 전기장이 없은 상태에서 0이 아닌 분극을 가질 수 있다). 강유전성 커패시터의 상이한 전하 레벨은 예를 들어 상이한 논리 상태를 나타낼 수 있다.
메모리 셀(508)은 액세스 라인들(510-1 내지 510-M) 각각과 같은 각각의 액세스 라인과, 데이터 라인들(515-1 내지 515-N) 중 하나와 같은 각각의 데이터(예를 들어, 디지트) 라인에 결합될 수 있다. 예를 들어, 메모리 셀(508)은 액세스 라인(510)과 데이터 라인(515) 사이에 연결될 수 있다. 일부 예에서, 액세스 라인(510)은 또한 워드 라인으로 지칭될 수 있고, 데이터 라인(515)은 또한 비트 라인으로 지칭될 수 있다. 액세스 라인들(510) 및 데이터 라인들(515)은 전도성 재료, 예를 들어 구리, 알루미늄, 금, 텅스텐 등, 금속 합금, 다른 전도성 재료 등으로 만들어 질 수 있다.
일부 예들에서, 액세스 라인(510)에 공통으로 연결된 메모리 셀들(508)은 메모리 셀들의 행으로 지칭될 수 있다. 예를 들어, 액세스 라인(510)은 행 디코더(114)에 연결될 수 있고, 데이터 라인은 열 디코더(116)에 연결될 수 있다. 판독 및 기록과 같은 동작은 적절한 액세스 라인(510) 및 데이터 라인(515)을 활성화 또는 선택함으로써(예를 들어, 액세스 라인에 전압을 인가함으로써) 메모리 셀(508) 상에서 수행될 수 있다. 액세스 라인(510)을 활성화시키는 것은 대응하는 행의 메모리 셀(508)을 그들의 각자의 데이터 라인(515)에 전기적으로 연결할 수 있다.
도 5b는 본 개시의 다수의 실시예들에 따른 메모리 셀(508)을 포함하는 예시적인 회로(520)를 도시한다. 회로(520)는 도 5a에 도시된 메모리 셀(508), 액세스 라인(510) 및 데이터 라인(515)의 각각일 수 있는 강유전성 메모리 셀(508A), 액세스 라인(510A) 및 데이터 라인(515A)을 포함할 수 있다.
메모리 셀(508A)은 셀 플레이트(530)와 같은 제 1 플레이트 및 셀 바닥(535)과 같은 제 2 플레이트를 가질 수 있는 커패시터(525)와 같은 로직 저장 구성요소를 포함할 수 있다. 셀 플레이트(530) 및 셀 바닥(535)은 그 사이에 위치된 강유전성 재료(540)를 통해 용량성 결합될 수 있다. 셀 플레이트(530) 및 셀 바닥(535)의 배향은 메모리 셀(508A)의 동작을 변경하지 않고 플립될 수 있다.
회로(520)는 선택 트랜지스터와 같은 선택 디바이스(550)를 포함할 수 있다. 예를 들어, 선택 디바이스(550)의 제어 게이트(552)는 액세스 라인(510A)에 연결될 수 있다. 도 5b의 예에서, 셀 플레이트(530)는 플레이트 라인(555)을 통해 액세스될 수 있고, 셀 바닥(535)은 데이터 라인(515A)을 통해 액세스될 수 있다. 예를 들어, 선택 디바이스(550)는 액세스 라인(510A)이 선택 디바이스(550)를 활성화함에 응답하여, 데이터 라인(515A)을 셀 바닥(535)에 선택적으로 결합시킬 수 있다. 예를 들어, 커패시터(525)는 선택 디바이스(550)가 비활성화될 때 데이터 라인(515A)으로부터 전기적으로 격리될 수 있고, 커패시터(525)는 선택 디바이스(550)가 활성화될 때 데이터 라인(515A)에 전기적으로 연결될 수 있다. 선택 디바이스(550) 활성화는 예를 들어 메모리 셀(508A)을 선택하는 것으로 지칭될 수 있다. 전술한 바와 같이, 커패시터(525)를 충전 또는 방전시킴으로써 다양한 상태가 저장될 수 있다.
특정 예가 본 명세서에서 예시되고 설명되었지만, 당업자는 동일한 결과를 달성하도록 계산된 배열이 도시된 특정 실시예를 대신할 수 있음을 이해할 것이다. 본 개시는 본 개시의 하나 이상의 실시 형태의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 본 발명의 하나 이상의 예의 범위는 첨부된 청구 범위를 참조하여 그러한 청구 범위가 부여되는 전체 범위의 등가물과 함께 결정되어야 한다.

Claims (20)

  1. 장치를 동작시키는 방법으로서,
    메모리 어레이의 일부분이 얼마나 자주 액세스되는지 또는 될 것인지 여부에 기초하여 웨어 레벨링될 메모리 어레이의 부분을 선택하는 단계, 및
    상기 부분을 웨어 레벨링(wear leveling)하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 웨어 레벨링될 부분을 선택하는 단계는 상기 메모리 어레이의 마지막 액세스 부분을 선택하는 단계를 포함하는 방법.
  3. 제 1 항에 있어서, 웨어 레벨링될 부분을 선택하는 단계는 호스트로부터 수신된 명령에 명시된 어드레스를 갖는 메모리 어레이의 부분을 선택하는 단계를 포함하는 방법.
  4. 제 3 항에 있어서, 상기 어드레스를 갖는 부분이 특정 횟수 이상 액세스되었다는 결정에 응답하여 상기 호스트가 상기 명령에 어드레스를 추가하는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서, 상기 웨어 레벨링될 부분을 선택하는 단계는 상기 부분을 웨어 레벨링하도록 상기 부분에 대응하는 제 1 레지스터를 호스트가 설정하고 메모리 어레이의 나머지 부분을 웨어 레벨링하지 않도록 상기 나머지 부분에 대응하는 다수의 제 2 레지스터를 호스트가 설정하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서, 상기 호스트로부터의 명령에 응답하여 상기 제 1 레지스터를 설정하는 단계 및 상기 다수의 제 2 레지스터를 설정하는 단계를 포함하는 방법.
  7. 제 5 항에 있어서, 상기 제 1 레지스터를 설정하는 단계는 상기 부분이 특정 횟수 이상으로 액세스되었다고 호스트가 결정한 것에 대한 응답이고, 나머지 부분을 웨어 레벨링하지 않도록 다수의 제 2 레지스터를 설정하는 단계는 나머지 부분이 특정 횟수 미만으로 액세스되었다고 호스트가 결정한 것에 대한 응답인, 방법.
  8. 장치로서,
    메모리 셀 어레이의 제 1 부분;
    메모리 셀 어레이의 제 2 부분;
    상기 제 1 부분에 대응하는 제 1 레지스터;
    및;
    상기 제 2 부분에 대응하는 제 2 레지스터를 포함하되,
    상기 제 1 레지스터는 상기 제 1 부분이 얼마나 자주 액세스되는지 또는 될 것인지에 기초하여 상기 제 1 부분이 웨어 레벨링되어야하는지 여부를 표시하고;
    상기 제 2 레지스터는 상기 제 2 부분이 얼마나 자주 액세스되는지 또는 될 것인지에 기초하여 상기 제 2 부분이 웨어 레벨링되어야하는지 여부를 표시하는, 장치.
  9. 제 8 항에 있어서, 상기 제 1 레지스터는 상기 제 1 부분이 소정 횟수 이상 액세스되는 것에 응답하여 상기 제 1 부분이 웨어 레벨링될 것임을 표시하는 장치.
  10. 제 8 항에 있어서, 상기 제 1 부분 및 제 2 부분은 서로 독립적으로 웨어 레벨링되는 장치.
  11. 제 8 항에 있어서, 상기 장치는 상기 제 1 부분이 웨어 레벨링되어야 함을 상기 제 1 레지스터가 표시할 때만 상기 제 1 부분을 웨어 레벨링하는 장치.
  12. 제 7 항 내지 제 11 항 중 어느 한 항에 있어서, 상기 장치는 셋업 명령에 응답하여 상기 제 1 부분이 웨어 레벨링될지 여부를 표시하도록 상기 제 1 레지스터를 설정하는 장치.
  13. 제 12 항에 있어서, 상기 장치는 상기 장치의 전원이 켜질 때 상기 셋업 명령을 수신하는 장치.
  14. 장치로서,
    복수의 부분을 포함하는 메모리 어레이; 및
    상기 복수의 부분들 중 마지막 액세스된 부분의 어드레스를 저장하는 레지스터를 포함하되,
    상기 메모리는 상기 어드레스가 상기 레지스터에 저장된 후에 수신된 명령에 응답하여 최종 액세스된 부분을 웨어 레벨링하는, 장치.
  15. 제 14 항에 있어서, 상기 명령은 다음에 웨어 레벨링 명령 또는 마지막 액세스된 부분의 어드레스가 저장된 후에 수신된 다음 웨어 레벨링 명령 또는 다음 리프레시 명령인 장치.
  16. 장치로서,
    호스트; 및
    호스트에 결합되고, 메모리 셀 어레이의 복수의 부분을 포함하는 메모리를 포함하되,
    상기 호스트는 상기 복수의 부분 중 일부분이 얼마나 자주 액세스되는지 또는 될 것인지에 기초하여 상기 복수의 부분 중 어느 부분이 웨어 레벨링될 것인지를 메모리에 표시하는, 장치.
  17. 제 16 항에 있어서,
    상기 호스트는 복수의 부분 중 웨어 레벨링될 부분의 어드레스를 명시함으로써 복수의 부분 중 어느 부분이 웨어 레벨링될 것인지를 표시하는 웨어 레벨링 명령 또는 리프레시 명령을 전송하고;
    상기 메모리는 명령에 응답하여 명령에 명시된 어드레스를 가진 복수의 부분 중 해당 부분을 웨어 레벨링하는, 장치.
  18. 제 16 항 또는 제 17 항에 있어서, 상기 호스트는 상기 해당 부분에 각각 대응하는 메모리의 레지스터로 하여금 해당 부분에 대해서만 웨어 레벨링을 수행하도록 복수의 부분 중 어느 부분이 웨어 레벨링될 것인지를 표시하는 셋업 명령을 전송하는, 장치.
  19. 제 16 항 또는 제 17 항에 있어서, 호스트는 복수의 부분 중 각각의 부분이 얼마나 자주 액세스되는지를 모니터링하는 장치.
  20. 제 16 항 또는 제 17 항에 있어서,
    호스트는 복수의 카운터를 포함하고, 복수의 카운터 중 각각의 카운터는 복수의 부분 중 대응하는 부분에 각각 대응하고;
    호스트는 카운터들 중 각각의 카운터가 해당 부분이 특정 횟수 이상으로 액세스되었음을 나타냄에 응답하여, 카운터들 중 각각의 카운터에 대응하는 복수의 부분들 중 일 부분이 웨어 레벨링될 것임을 나타내는, 장치.
KR1020207002041A 2017-08-04 2018-07-24 웨어 레벨링 KR20200012026A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/669,290 US10198195B1 (en) 2017-08-04 2017-08-04 Wear leveling
US15/669,290 2017-08-04
PCT/US2018/043414 WO2019027727A1 (en) 2017-08-04 2018-07-24 LEVEL OF WEAR

Publications (1)

Publication Number Publication Date
KR20200012026A true KR20200012026A (ko) 2020-02-04

Family

ID=65200314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207002041A KR20200012026A (ko) 2017-08-04 2018-07-24 웨어 레벨링

Country Status (7)

Country Link
US (4) US10198195B1 (ko)
EP (1) EP3662374A4 (ko)
JP (1) JP7092865B2 (ko)
KR (1) KR20200012026A (ko)
CN (1) CN110998543B (ko)
TW (1) TWI672588B (ko)
WO (1) WO2019027727A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US11742038B2 (en) * 2017-08-11 2023-08-29 Advanced Micro Devices, Inc. Method and apparatus for providing wear leveling
US11551990B2 (en) * 2017-08-11 2023-01-10 Advanced Micro Devices, Inc. Method and apparatus for providing thermal wear leveling
US20200081628A1 (en) * 2018-09-12 2020-03-12 Dell Products, Lp Apparatus and Method for Monitoring Insertion and Removal of Devices
US11422826B2 (en) 2020-05-19 2022-08-23 Micron Technology, Inc. Operational code storage for an on-die microprocessor
US11907548B2 (en) * 2020-07-17 2024-02-20 Micron Technology, Inc. Storage of video data and file system metadata
KR20220127067A (ko) * 2021-03-10 2022-09-19 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11875836B2 (en) * 2021-06-04 2024-01-16 Kepler Computing Inc. Apparatus and method for endurance of non-volatile memory banks via wear leveling with linear indexing

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01147732A (ja) * 1987-12-04 1989-06-09 Nec Corp 情報処理装置
US6957308B1 (en) * 2002-07-11 2005-10-18 Advanced Micro Devices, Inc. DRAM supporting different burst-length accesses without changing the burst length setting in the mode register
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
ATE372578T1 (de) 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
JP5016841B2 (ja) * 2006-04-26 2012-09-05 株式会社東芝 不揮発性半導体記憶装置
KR100794664B1 (ko) * 2006-09-01 2008-01-14 삼성전자주식회사 플래시 메모리 장치 및 그것의 리프레쉬 방법
CN101739350B (zh) 2008-11-26 2013-02-13 威刚科技股份有限公司 存储器储存装置及其控制方法
US20100318719A1 (en) 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
CN101729350B (zh) 2009-12-11 2011-08-31 烽火通信科技股份有限公司 Ptn前向兼容mstp的环网业务通道保护实现方法
JP2012014400A (ja) 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US20120110259A1 (en) * 2010-10-27 2012-05-03 Enmotus Inc. Tiered data storage system with data management and method of operation thereof
GB2490991B (en) 2011-05-19 2017-08-30 Ibm Wear leveling
US9104547B2 (en) 2011-08-03 2015-08-11 Micron Technology, Inc. Wear leveling for a memory device
US9158672B1 (en) * 2011-10-17 2015-10-13 Rambus Inc. Dynamic deterministic address translation for shuffled memory spaces
US20140189284A1 (en) * 2011-12-23 2014-07-03 Nevin Hyuseinova Sub-block based wear leveling
US9767032B2 (en) * 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
JP5788369B2 (ja) 2012-09-12 2015-09-30 株式会社東芝 メモリシステム、コンピュータシステム、およびメモリ管理方法
JP2016522513A (ja) * 2013-06-25 2016-07-28 マイクロン テクノロジー, インク. オンデマンドブロック管理
US11030122B2 (en) * 2014-04-08 2021-06-08 Micron Technology, Inc. Apparatuses and methods for securing an access protection scheme
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
US10014060B2 (en) 2015-01-30 2018-07-03 Sandisk Technologies Llc Memory system and method for reducing read disturb errors
US9977606B2 (en) * 2015-10-16 2018-05-22 SK Hynix Inc. Memory system
US9697913B1 (en) 2016-06-10 2017-07-04 Micron Technology, Inc. Ferroelectric memory cell recovery
US10489064B2 (en) 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory

Also Published As

Publication number Publication date
US20200159420A1 (en) 2020-05-21
WO2019027727A1 (en) 2019-02-07
EP3662374A1 (en) 2020-06-10
CN110998543A (zh) 2020-04-10
EP3662374A4 (en) 2021-05-12
US20190042107A1 (en) 2019-02-07
US20190332281A1 (en) 2019-10-31
US11003361B2 (en) 2021-05-11
US20190042109A1 (en) 2019-02-07
CN110998543B (zh) 2023-11-10
US10416903B2 (en) 2019-09-17
US10198195B1 (en) 2019-02-05
US10585597B2 (en) 2020-03-10
JP7092865B2 (ja) 2022-06-28
JP2020529665A (ja) 2020-10-08
TWI672588B (zh) 2019-09-21
TW201911052A (zh) 2019-03-16

Similar Documents

Publication Publication Date Title
CN110998543B (zh) 用于磨损平整的方法和存储器设备
US11586357B2 (en) Memory management
US10372342B2 (en) Multi-level cell solid state device and method for transferring data between a host and the multi-level cell solid state device
US10340016B2 (en) Methods of error-based read disturb mitigation and memory devices utilizing the same
KR101769188B1 (ko) 메모리 장치용 웨어 레벨링 장치 및 방법
JP5728672B2 (ja) ハイブリッドメモリ管理
US11983403B2 (en) Data relocation in memory
US20230019910A1 (en) Limiting hot-cold swap wear leveling
JP2018073240A (ja) 制御回路、半導体記憶装置、及び半導体記憶装置の制御方法
US11481119B2 (en) Limiting hot-cold swap wear leveling
US20230103515A1 (en) Memory system and operating method of memory system
US11972149B2 (en) Storage system and method for optimizing host-activated defragmentation and proactive garbage collection processes
US11397657B1 (en) Managing memory objects that are assigned a respective designation

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)