KR20200028493A - 메모리 내 데이터 복원 작업의 수행 - Google Patents

메모리 내 데이터 복원 작업의 수행 Download PDF

Info

Publication number
KR20200028493A
KR20200028493A KR1020207006441A KR20207006441A KR20200028493A KR 20200028493 A KR20200028493 A KR 20200028493A KR 1020207006441 A KR1020207006441 A KR 1020207006441A KR 20207006441 A KR20207006441 A KR 20207006441A KR 20200028493 A KR20200028493 A KR 20200028493A
Authority
KR
South Korea
Prior art keywords
data
memory
group
mapping
groups
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020207006441A
Other languages
English (en)
Other versions
KR102407659B1 (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 마이크론 테크놀로지, 인크
Publication of KR20200028493A publication Critical patent/KR20200028493A/ko
Application granted granted Critical
Publication of KR102407659B1 publication Critical patent/KR102407659B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0658Controller construction arrangements

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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시내용은 메모리에서 데이터 복원 작업을 수행하기 위한 장치 및 방법을 포함한다. 실시형태는 메모리, 및 제어기에 저장된 제1 표 및 제2 표를 사용하여 메모리에 저장된 데이터에서 데이터 복원 작업을 수행하도록 구성된 제어기를 포함하고, 제1 표는 메모리에 저장된 데이터와 연관된 이전의 오류율의 이전의 평가에 기초하는 메모리에 저장된 데이터의 현재의 맵핑을 포함하고, 그리고 제2 표는 메모리에 저장된 데이터와 연관된 현재의 오류율의 현재의 평가에 기초하는 메모리에 저장된 데이터의 새로운 맵핑을 포함한다.

Description

메모리 내 데이터 복원 작업의 수행
본 개시내용은 일반적으로 반도체 메모리 및 방법, 더 구체적으로, 메모리 내 데이터 복원 작업의 수행에 관한 것이다.
메모리 디바이스는 보통 컴퓨터 또는 다른 전자 디바이스에서 내부의, 반도체, 집적 회로 및/또는 외부의 외장형 디바이스로서 제공된다. 휘발성 메모리 및 비휘발성 메모리를 포함하는 많은 상이한 유형의 메모리가 있다. 휘발성 메모리는 전력이 휘발성 메모리의 데이터를 유지하게 요구할 수 있고 그리고 특히, 랜덤-액세스 메모리(random-access memory: RAM), 동적 랜덤 액세스 메모리(dynamic random access memory: DRAM), 및 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random access memory: SDRAM)를 포함할 수 있다. 비휘발성 메모리는 전력 공급되지 않을 때 저장된 데이터를 유지함으로써 영구적 데이터를 제공할 수 있고 그리고 특히, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(read only memory: ROM), 및 저항 가변 메모리, 예컨대, 상변화 랜덤 액세스 메모리(phase change random access memory: PCRAM), 3D 상변화 재료 및 스위치(Phase Change Material and Switch: PCMS), 저항성 랜덤 액세스 메모리(resistive random access memory: RRAM), 자기 랜덤 액세스 메모리(magnetic random access memory: MRAM), 및 프로그램 가능한 전도성 메모리를 포함할 수 있다.
메모리 디바이스가 함께 결합되어 솔리드 스테이트 드라이브(solid state drive: SSD)를 형성할 수 있다. SSD는 다양한 다른 유형의 비휘발성 및 휘발성 메모리 중에서, 비휘발성 메모리(예를 들어, 3D PCMS, NAND 플래시 메모리 및/또는 NOR 플래시 메모리)를 포함할 수 있고, 그리고/또는 휘발성 메모리(예를 들어, DRAM 및/또는 SRAM)를 포함할 수 있다. 플래시 메모리 디바이스는 예를 들어, 전하 저장 구조체, 예컨대, 부동 게이트에서 데이터를 저장하는 메모리 셀을 포함할 수 있고 그리고 다양한 전자 적용을 위한 비휘발성 메모리로서 활용될 수도 있다. 플래시 메모리 디바이스는 보통 높은 메모리 밀도, 높은 신뢰도, 및 낮은 전력 소비를 허용하는 1-트랜지스터 메모리 셀을 사용한다.
어레이 아키텍처 내 메모리 셀은 타깃(예를 들어, 목적하는) 데이터 상태로 프로그래밍될 수 있다. 예를 들어, 싱글 레벨 셀(sinale level cell: SLC)은 이진 단위(1 또는 0)로 표현될 수 있는, 2개의 상이한 데이터 상태 중 타깃된 데이터 상태로 프로그래밍될 수 있다. 일부 메모리 셀은 2개 초과의 데이터 상태(예를 들어, 1111, 0111, 0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100, 0000, 1000, 1010, 0010, 0110 및 1110) 중 타깃된 데이터 상태로 프로그래밍될 수 있다. 이러한 셀은 멀티 스테이트 메모리 셀, 멀티유닛 셀, 또는 멀티레벨 셀(multilevel cell: MLC)로서 지칭될 수도 있다. 각각의 셀이 1 초과의 숫자(예를 들어, 1 초과의 비트)를 나타낼 수 있으므로, MLC는 메모리 셀의 수를 증가시키는 일 없이 더 높은 밀도의 메모리를 제공할 수 있다.
그러나, 다양한 내부의 기구 및/또는 외부의 기구는 오류가 메모리 셀의 상태가 감지(예를 들어, 판독)될 때 발생하게 할 수도 있다. 예를 들어, 이러한 기구는 메모리 셀이 타깃 상태와는 다른 상태(예를 들어, 셀이 프로그래밍되는 데이터 상태와는 상이한 데이터 상태)에 있다는 것이 감지되게 할 수도 있다. 이것은 메모리에 저장된 데이터의 품질을 감소시킬 수도 있고, 이는 시정 조치가 취해지지 않는다면, 메모리의 수명을 감소시킬 수도 있고/있거나 메모리가 고장나게 할 수도 있다.
예를 들어, 오류 정정 코드(error correction code: ECC) 방안 및/또는 리던던트 어레이 독립 디스크(redundant array independent disc: RAID) 방안과 같은, 오류 검출 방안 및 정정 방안은 이러한 오류를 정정하도록 활용될 수 있다. 그러나, 이러한 방안의 능력은 제한될 수도 있다. 예를 들어, 이러한 방안은 오직 특정한(예를 들어, 유한한) 수량(예를 들어, 수 또는 분포)의 잘못된 데이터를 검출 및 정정할 수도 있고; 이 제한을 초과한다면, 잘못된 데이터는 정정 가능하지 않을 수도 있고, 그리고 손상 및/또는 손실될 수도 있다.
도 1은 본 개시내용의 실시형태에 따른, 메모리 디바이스의 형태인 장치의 블록도.
도 2는 본 개시내용의 실시형태에 따른, 메모리 디바이스의 형태인 장치의 블록도.
도 3은 본 개시내용의 실시형태에 따른, 적어도 하나의 메모리 시스템을 포함하는 전산 시스템의 형태인 장치의 블록도.
도 4a 및 도 4b는 본 개시내용의 실시형태에 따른, 데이터 복원 작업을 수행하도록 사용되는 표의 예를 예시하는 도면.
도 5는 본 개시내용의 실시형태에 따른, 데이터 복원 작업을 수행하도록 사용되는 표의 예를 예시하는 도면.
도 6은 본 개시내용의 실시형태에 따른, 메모리의 작동 시 사용되는 표의 예를 예시하는 도면.
도 7은 본 개시내용의 실시형태에 따른, 메모리를 작동시키기 위한 방법을 예시하는 도면.
도 8은 본 개시내용의 실시형태에 따른, 메모리를 작동시키기 위한 방법을 예시하는 도면.
도 9는 본 개시내용의 실시형태에 따른, 메모리를 작동시키기 위한 방법을 예시하는 도면.
본 개시내용은 메모리에서 데이터 복원 작업을 수행하기 위한 장치 및 방법을 포함한다. 실시형태는 메모리, 및 제어기에 저장된 제1 표 및 제2 표를 사용하여 메모리에 저장된 데이터에서 데이터 복원 작업을 수행하도록 구성된 제어기를 포함하고, 제1 표는 메모리에 저장된 데이터와 연관된 이전의 오류율의 이전의 평가에 기초하는 메모리에 저장된 데이터의 현재의 맵핑을 포함하고, 그리고 제2 표는 메모리에 저장된 데이터와 연관된 현재의 오류율의 현재의 평가에 기초하는 메모리에 저장된 데이터의 새로운 맵핑을 포함한다.
본 개시내용의 실시형태는 메모리를 연속적으로 재평가하고 그리고 데이터를 재프로그래밍(예를 들어, 재기입)함으로써 메모리에 저장된 데이터에서 데이터 복원 작업을 연속적으로 수행하도록 작동될 수 있어서 데이터가 최상의 이용 가능한 메모리(예를 들어, 데이터와 연관된 가장 낮은 오류율을 가진 메모리)에 항상 저장된다. 이것이 메모리에 저장된 데이터와 연관된 전체 오류율을 낮출 수 있고, 이에 의해 오류 검출 및 오류 검출의 정정 능력(예를 들어, 한계) 및 메모리에 의해 활용되는 정정 방안(예를 들어, ECC 방안 및/또는 RAID 방안)이 초과되지 않는 것을 보장한다. 이와 같이, 본 개시내용에 따라 데이터 복원 작업을 수행하는 것은 메모리에 저장된 데이터의 품질을 증가시킬 수 있고, 이는 메모리의 수명을 증가시킬 수도 있고/있거나 메모리가 고장나는 것을 방지할 수도 있다.
본 개시내용의 실시형태는 또한 메모리의 자원(예를 들어, 전력, 속도, 및/또는 저장 공간)의 효율적인 사용을 보장할 수 있다. 예를 들어, 메모리에서 수행되는 달리 미관련된 감지 작업은 오류 평가(예를 들어, 오류 분포의 대조)와 데이터 복원(예를 들어, 이동될 데이터의 검색) 둘 다를 위한 단일의 작업(예를 들어, 판독-검증 작업)과 결합될 수 있다. 대조적으로, 이전의 방식은 이러한 작업을 메모리에서 수행될 2개의 분리된 감지 작업으로 분할할 수도 있고, 이는 추가의 저장 공간(예를 들어, 오버헤드)을 사용할 수도 있고 그리고 메모리의 추가의 마모(예를 들어, 판독 방해)를 발생시킬 수도 있다.
게다가, 본 개시내용에 따른 데이터 복원 작업이 수행되는 속도는 조정 가능할 수 있고, 이는 결국 데이터 복원 작업을 위해 필요한 저장 공간의 대응하는 증가 또는 감소를 발생시킬 수 있다(예를 들어, 증가된 속도는 오버헤드의 대응하는 증가를 발생시킬 수도 있고, 그 역도 가능하다). 이와 같이, 본 개시내용에 따른 데이터 복원 작업은 예를 들어, 서비스 필요조건의 품질과 같은, 특정한 시스템 필요조건으로 조정될 수 있다.
게다가, 본 개시내용에 따른 데이터 복원 작업은 클라이언트(예를 들어, 사용자 및/또는 호스트) 액세스와 관계없이, 메모리의 백그라운드에서 작동될 수 있다. 이것은 클라이언트 액세스가 대기 시간-감소 작업, 시간 소모 데이터 정정 작업 및/또는 복원 작업을 발생시킬 가능성을 감소시킴으로써 메모리의 성능(예를 들어, 서비스의 품질)을 향상시킬 수도 있다. 대조적으로, 이전의 방식은 오류 검출 및/또는 정정을 위한 클라이언트 액세스에 의존할 수도 있고, 이는 증가된 대기 시간을 발생시킬 수도 있다.
게다가, 본 개시내용에 따른 데이터 복원 작업은 미세립될 수도 있다. 예를 들어, 메모리의 단일의 신뢰할 수 없는 부분(예를 들어, 섹터)이 예를 들어, RAID 재구축과 같은, 광범위한 정정 및/또는 복원을 요구한다면, 이 메모리 부분이 전부 복원될 수도 있고, 이에 의해 과잉의 클라이언트 대기 시간을 감소시킨다.
게다가, 본 개시내용에 따른 데이터 복원 작업은 새로 평가된 메모리 상태를 반영하도록 업데이트된 메모리 맵핑을 나타낼 수 있다. 예를 들어, 본 개시내용에 따른 데이터 복원 작업이 메모리의 정확도를 연속적으로 평가할 수 있고, 그리고 메모리 내 데이터 저장을 조정할 수 있어서 이 평가를 반영한다. 대조적으로, 이전의 방식은 시간-기반(예를 들어, 제로-시간 기반) 맵핑 평가 및/또는 데이터 저장 평가를 사용할 수도 있고, 그리고/또는 변경 불가능한 맵핑 결정 및/또는 저장 결정을 행할 수도 있다.
게다가, 본 개시내용에 따른 데이터 복원 작업을 수행하는 것은 3D 상변화 재료 및 스위치(PCMS) 메모리에 유용한 주기적인 메모리 리프레시를 충족시킬 수 있다. 예를 들어, 본 개시내용에 따른 데이터 복원 작업은 이러한 메모리의 가소성을 유지할 수 있고, 따라서 복원 작업의 일부로서 메모리의 저장된 데이터를 연속적으로 재기입함으로써, 메모리의 오류율을 낮출 수 있다.
게다가, 플래시 메모리의 맥락에서, 본 개시내용에 따른 데이터 복원 작업은 예를 들어, 감지 작업 동안 오류를 감소(예를 들어, 최소화)시키기 위한 메모리의, 감지 증폭기의 캘리브레이션과 같은, 트림 설정(trim setting)을 연속적으로 평가 및 관리(예를 들어, 튜닝)하는 기능을 충족시킬 수 있다. 대조적으로, 이전의 방식은 트림 설정을 튜닝하기 위한 클라이언트 액세스에 의존할 수도 있고, 이에 의해 증가된 대기 시간을 발생시킨다.
본 명세서에서 사용될 때, "단수 표현"은 어떤 것의 1개 이상을 나타낼 수 있고, 그리고 "복수"는 이러한 것의 1개 초과를 나타낼 수 있다. 예를 들어, 메모리 셀은 하나 이상의 메모리 셀을 나타낼 수 있고, 그리고 복수의 메모리 셀은 2개 이상의 메모리 셀을 나타낼 수 있다. 부가적으로, 특히, 도면 내 참조 부호에 대하여, 본 명세서에서 사용될 때 부호 "E" 및 "N"은 특정한 특징부의 하나 이상을 나타내고 그래서 부호는 본 개시내용의 실시형태에 포함될 수 있다.
본 명세서의 도면은 처음의 숫자 또는 숫자들이 도면의 도면 번호에 대응하고 그리고 나머지 숫자가 도면 내 소자 또는 컴포넌트를 식별하는, 번호매김 변환을 따른다. 상이한 도면 간에서 유사한 소자 또는 컴포넌트는 유사한 숫자의 사용에 의해 식별될 수도 있다.
도 1은 본 개시내용의 실시형태에 따른, 메모리 디바이스의 형태인 장치의 블록도를 예시한다. 본 명세서에서 사용될 때, "장치"는 예를 들어, 회로 또는 회로망, 다이 또는 다이스(dice), 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은, 임의의 다양한 구조체 또는 구조체의 조합을 나타낼 수 있지만, 이들로 제한되지 않는다.
메모리 디바이스는 3차원 메모리 엔티티, 예컨대, 도 1에 예시된 3차원 메모리 엔티티(137)를 포함할 수 있다. 3차원 메모리 엔티티는 복수의 2차원 메모리 엔티티(135-1, 135-2,..., 135-E))를 포함할 수 있다. 2차원 메모리 엔티티(135)는 메모리 소자, 예컨대, 메모리 셀의 어레이일 수 있지만, 명료성을 위해 단 하나의 각각의 메모리 소자(138-1, 138-2,..., 138-E))가 각각의 2차원 메모리 엔티티(135)를 위해 예시된다. 2차원 메모리 엔티티(135)는 메모리 소자의 어레이를 포함하는 다이스 또는 칩과 같은 물리적 메모리 엔티티일 수 있다. 2차원 메모리 엔티티는 이들이 3차원 메모리 엔티티(137)보다 더 작은 차원을 가지므로 2차원으로서 지칭된다. 2차원 메모리 엔티티(135)가 3차원 물리 객체이지만, 이들은 2차원 메모리 엔티티(135)의 군이 3차원 메모리 엔티티(137)로서 지칭되는, 더 큰 차원의 메모리 엔티티를 형성할 수 있으므로, 2차원으로서 지칭된다. 2차원 메모리 엔티티는 메모리 셀의 1개 초과의 평면의 어레이를 포함할 수도 있다.
2차원 메모리 엔티티(135)는 이들이 메모리 소자보다 더 큰 차원을 가지므로 2차원으로서 지칭된다. 2차원 메모리 엔티티(135)는 적어도 2개 물리적 차원으로 배열된 복수의 메모리 소자(예를 들어, 적어도 하나의 메모리 어레이)를 포함한다. 메모리 소자는 개별적으로 1차원 메모리 소자로서 지칭될 수 있다(다시, 이들이 3차원 물리 객체로서 존재할지라도). 복수의 3차원 메모리 소자(137)의 집단은 4차원 메모리 소자(도 1에 구체적으로 예시되지 않음)로서 지칭될 수 있다. 복수의 4차원 메모리 소자의 집단은 5차원 메모리 소자 등으로 지칭될 수 있다.
도 1에 구체적으로 예시되지 않지만, 메모리 디바이스는 제어기, 예를 들어, 도 3과 관련되어 본 명세서에 더 설명된 제어기(308)에 연결될 수 있다. 제어기(308)는 본 명세서에 더 설명될 바와 같이, 메모리 디바이스에 저장된 데이터에서, 예를 들어, 데이터 스크러빙 작업 및/또는 이동 작업과 같은, 데이터 복원 작업을 수행할 수 있다.
도 1에 도시된 바와 같이, 메모리 디바이스는 제1 레졸루션(139) 및 이것과 연관된 제2 레졸루션(141)을 가질 수 있다. 제1 레졸루션(139)은 데이터의 페이지로서 지칭될 수 있다. 일부 실시형태에서, 제1 레졸루션(139)은 선택된 3차원 메모리 엔티티(137)에 포함된 각각의 2차원 메모리 엔티티(135-1, 135-2,..., 135-E)로부터 각각의 메모리 소자(138-1, 138-2,..., 138-E)를 포함할 수 있다.
도 1은 또한 2차원 메모리 소자(135)의 각각에 대한 제2 레졸루션(141-1, 141-2,..., 141-E)의 각각의 예의 예시를 포함한다. 제2 레졸루션(141)은 2차원 메모리 엔티티(135)의 부분일 수 있다. 예를 들어, 2차원 메모리 엔티티(135-1)와 관련하여 예시된 제2 레졸루션(141-1)은 메모리 엔티티의 부분이다. 제2 레졸루션(141)이 2차원 메모리 엔티티(135)의 1/4인 것으로 예시되지만, 실시형태는 임의의 특정한 부분으로 제한되지 않는다.
집합적으로, 제2 레졸루션(141)에 대응하는 2차원 메모리 엔티티(135)의 부분은 3차원 메모리 엔티티(137)의 부분(143)을 이룬다. 예를 들어, 3D PCMS 메모리의 경우에, 2차원 메모리 엔티티(135)가 타일(tile)로서 지칭될 수 있고, 3차원 메모리 엔티티(137)가 슬라이스(slice)로서 지칭될 수 있고, 3차원 메모리 엔티티(137)의 부분(143)이 파셀(parcel)로서 지칭될 수 있고, 그리고 메모리 소자(138)가 비트로서 지칭될 수 있다. 게다가, 데이터의 복수의 페이지는 섹터를 형성할 수 있다. 예를 들어, 섹터는 페이지(예를 들어, 섹터를 형성하는 데이터의 페이지는 슬라이스 내에서 인접할 필요가 없고, 그리고/또는 상이한 슬라이스에 위치될 수도 있음)의 임의의 군을 포함하는 논리적 구성물일 수 있다. 섹터는 사용자(예를 들어, 호스트(302)의 사용자)에게 액세스 가능한 데이터 단위일 수도 있고, 그리고/또는 데이터 단위를 지칭할 수도 있다.
메모리 장치는 스페어 메모리 엔티티(spare memory entity), 예컨대, 스페어 2차원 메모리 엔티티(135) 및/또는 3차원 메모리 엔티티(137)(예를 들어, 스페어 슬라이스 및/또는 스페어 파셀(spare parcel))를 포함할 수도 있다. 비제한적인 실시예로서, 메모리 다이 상의 슬라이스의 1/16은 스페어로서 비축될 수 있다. 이러한 스페어 메모리 엔티티는 데이터의 임의의 섹터에 할당되지 않은 메모리의 하나 이상의 페이지를 포함할 수 있다. 이 스페어 메모리 엔티티는 본 명세서에 더 설명될 바와 같이, 오류 관리 및/또는 데이터 복원 공정의 일부만큼 오류나기 쉬운 것으로 식별되는 다른 메모리 엔티티에 대한 대체물로서 사용될 수 있다.
도 2는 본 개시내용의 실시형태에 따른, 메모리 디바이스(210)의 형태인 장치의 블록도를 예시한다. 도 2에 예시된 실시형태에서, 메모리 디바이스(210)는 3D 상변화 재료 및 스위치(PCMS) 메모리 디바이스이다. 3D PCMS 메모리 디바이스는 다차원 메모리 디바이스의 예이다.
3D PCMS 디바이스는 "적층" 구조를 가진 메모리 소자를 포함할 수 있다. 메모리 소자는 스위치 소자 및 저장 소자(예를 들어, 스위치 소자는 저장 소자와 직렬로 연결됨)를 포함할 수 있다. 스위치 소자는, 특히, 다이오드, 전계 효과 트랜지스터(field effect transistor: FET), 양극성 접합 트랜지스터(bipolar junction transistor: BJT), 오보닉 메모리 스위치(ovonic memory switch: OMS), 또는 오보닉 문턱값 스위치(ovonic threshold switch: OTS)일 수 있다. 실시형태에서, 메모리 소자는 저장 소자와 메모리 소자 둘 다로서 기능할 수 있고, 그리고 본 명세서에서 스위치 및 저장 재료(switch and storage material: SSM)로서 지칭될 수도 있는 메모리 재료를 포함할 수 있다. SSM은 칼코겐화물 합금을 포함할 수도 있지만, 실시형태는 그렇게 제한되지 않는다.
실시형태에서, 각각의 메모리 셀과 연관된 스위치 소자 및 저장 소자는 직렬로 연결된 2-단자 디바이스일 수 있다. 예를 들어, 스위치 소자는 2-단자 OTS(예를 들어, 전극의 쌍 사이에 형성된 칼코겐화물 합금)일 수 있고, 그리고 저장 소자는 2-단자 상변화 저장 소자(예를 들어, 전극의 쌍 사이에 형성된 상변화 재료(PCM))일 수 있다. PCM과 직렬로 OTS를 포함하는 메모리 셀은 PCMS 메모리 셀로서 지칭될 수 있다. 실시형태에서, 전극은 메모리 셀의 스위치 소자와 저장 소자 사이에 공유될 수 있다. 또한, 실시형태에서, 메모리 셀은 전도성 라인을 포함하는 상단 전극 또는 하단 전극을 가질 수 있다.
메모리 디바이스(210)는 3D PCMS 메모리 디바이스에 대해 타일로서 지칭될 수 있는, 복수의 2차원 메모리 소자를 포함할 수 있다. 타일은 어레이 내 메모리 소자의 1개 초과의 데크(deck)(예를 들어, 예시된 바와 같은 하부 데크(224-1) 및 상부 데크(224-2)와 같음)를 포함할 수 있다. 타일은 도면에 식별된 바와 같이, 폭(226) 및 높이(228)를 가질 수 있다. 타일은 하위-타일(230-1, 230-2, 230-3, 230-4)로 분할될 수 있다. 실시형태에서, 하위-타일은 타일의 1/4일 수 있다.
각각의 메모리 소자(구체적으로 예시되지 않음)는 액세스 라인과 감지 라인의 조합에 의해 처리될 수 있다. 액세스 라인은 또한 워드 라인 또는 선택 라인으로서 지칭될 수도 있다. 감지 라인은 또한 비트 라인 또는 데이터 라인으로서 지칭될 수도 있다. 실시예로서, 타일은 데크당 2048개의 감지 라인(218-1, 218-2) 및 4096개의 액세스 라인을 포함할 수 있다. 그러나, 메모리 디바이스(210)는 특정한 수의 액세스 라인(222) 및/또는 감지 라인(218)으로 제한되지 않는다. 액세스 라인은 액세스 라인 디코더(222-1, 222-2, 222-3)에 연결될 수 있다. 감지 라인은 감지 라인 디코더(220-1, 220-2)에 연결될 수 있다. 액세스 라인 디코더(222) 및 감지 라인 디코더(220)는 제어기(구체적으로 예시되지 않음), 예컨대, 도 3과 관련되어 본 명세서에 더 설명된 제어기(308)에 연결될 수 있다.
도 3은 본 개시내용의 실시형태에 따른, 적어도 하나의 메모리 시스템(304)을 포함하는 전산 시스템(300)의 형태인 장치의 블록도를 예시한다. 본 명세서에서 사용될 때, 메모리 시스템(304), 제어기(308), 또는 메모리 디바이스(310)는 또한 따로따로 "장치"로서 간주될 수도 있다. 메모리 시스템(304)은 예를 들어, 솔리드 스테이트 드라이브(SSD)일 수 있고, 그리고 호스트 인터페이스(306), 제어기(308)(예를 들어, 프로세서 및/또는 다른 제어 회로망), 및 저장 용적을 메모리 시스템(304)에 제공하는, 하나 이상의 메모리 디바이스(310-1,..., 310-N)(예를 들어, 솔리드 스테이트 메모리 디바이스, 예컨대, 3D PCMS 메모리 디바이스)를 포함할 수 있다.
도 3에 예시된 바와 같이, 제어기(308)는 복수의 채널을 통해 호스트 인터페이스(306)에 그리고 메모리 디바이스(310)에 연결될 수 있고 그리고 데이터를 메모리 시스템(304)과 호스트(302) 간에 전송하도록 사용될 수 있다. 인터페이스(306)는 표준화된 인터페이스의 형태일 수 있다. 예를 들어, 메모리 시스템(304)이 전산 시스템(300)에서 데이터 저장을 위해 사용될 때, 인터페이스(306)는 다른 연결기 및 인터페이스 중에서, 사타(serial advanced technology attachment: SATA), PCI 익스프레스(peripheral component interconnect express: PCIe), 또는 범용 직렬 버스(universal serial bus: USB)일 수 있다. 그러나, 일반적으로, 인터페이스(306)는 메모리 시스템(304)과 인터페이스(306)를 위한 호환성 리셉터를 가진 호스트(302) 간에서 제어 신호, 어드레스 신호, 데이터 신호, 및 다른 신호를 지나가게 하기 위한 접점을 제공할 수 있다.
호스트(302)는 다양한 다른 유형의 호스트 중에서, 호스트 시스템, 예컨대, 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 휴대폰, 또는 메모리 카드 판독기일 수 있다. 호스트(302)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있고 그리고 복수의 메모리 액세스 디바이스(예를 들어, 복수의 프로세서)를 포함할 수 있다.
제어기(308)는 다른 작업 중에서, 데이터 감지(예를 들어, 판독) 작업, 프로그램(예를 들어, 기입) 작업, 및 소거 작업을 제어하도록 메모리 디바이스(310)와 통신할 수 있다. 구체적으로 예시되지 않았지만, 일부 실시형태에서, 제어기(308)는 제어기(308)를 메모리 디바이스(310)에 연결시키는 각각의 채널을 위한 이산형 메모리 채널 제어기를 포함할 수 있다. 제어기(308)는 예를 들어, 복수의 메모리 디바이스(310)에 대한 액세스를 제어하고/하거나 호스트(302)와 메모리 디바이스(310) 간의 데이터 전송을 용이하게 하기 위해 하드웨어 및/또는 펌웨어(예를 들어, 하나 이상의 집적 회로) 및/또는 소프트웨어의 형태인 복수의 컴포넌트를 포함할 수 있다.
메모리 디바이스(310)는 메모리 소자(예를 들어, 메모리 셀)의 복수의 어레이를 포함할 수 있다. 예를 들어, 메모리 디바이스(310)는 이전에 본 명세서에서 설명된 바와 같이 타일로 배열된 메모리 소자를 포함하는, 도 2와 관련되어 설명된 메모리 디바이스(210)와 유사한 3D PCMS 메모리 디바이스일 수 있다. 그러나, 실시형태는 메모리 어레이 또는 어레이 아키텍처의 특정한 유형으로 제한되지 않는다.
작동 시, 데이터는 예를 들어, 데이터의 물리적 페이지로서 메모리 시스템의 메모리 디바이스(예를 들어, 시스템(304)의 메모리 디바이스(310))에 기입될 수 있고/있거나 메모리 시스템의 메모리 디바이스로부터 판독될 수 있다. 하나의 실시예로서, 3D PCMS 메모리 디바이스는 슬라이스 내 타일의 수량의 각각으로부터 1비트일 수 있는, 페이지당 데이터의 바이트의 특정한 수량을 저장하도록 구성될 수도 있다. 데이터는 섹터(예를 들어, 호스트 섹터)로서 지칭되는 데이터 세그먼트로 호스트(예를 들어, 호스트(302))로/로부터 전송될 수 있다. 데이터의 섹터는 다양한 상이한 기반 시스템 입도에 재맵핑될 수 있는 논리 입도이다.
도 3에 예시된 실시형태에서, 제어기(308)는 오류 정정 컴포넌트(312)(예를 들어, 오류 코더, 예컨대, 오류 정정 코드(ECC) 엔진) 및 데이터 복원 컴포넌트(314)를 포함할 수 있다. 오류 정정 컴포넌트(312) 및 데이터 복원 컴포넌트(314)는 이산형 컴포넌트, 예컨대, 응용 주문형 집적 회로(application specific integrated cricuit: ASIC)일 수 있거나 또는 컴포넌트는 제어기(308)의 다른 부분으로부터 분리된 이산형 물리적 형태를 반드시 갖진 않는 제어기(308) 내 회로망에 의해 기능적으로 제공되게 반영될 수도 있다. 도 3에서 제어기(308) 내 컴포넌트로서 예시되지만, 오류 정정 컴포넌트(312) 및 데이터 복원 컴포넌트(314)는 제어기(308)의 외부에 있을 수 있거나 또는 제어기(308) 내에 위치된 컴포넌트 및 제어기(308)의 외부에 위치된 컴포넌트를 갖는다. 예를 들어, 오류 정정 컴포넌트(312)는 제어기(308)에 위치된 오류 정정 코딩 회로 및 제어기(308)의 외부에 위치된 오류 정정 코딩 회로를 포함할 수 있다. 다양한 기능이 오류 정정 컴포넌트(312) 및 데이터 복원 컴포넌트(314)에 대해 설명될 수도 있지만, 다양한 기능은 제어기(308)에 의해 동일하게 수행될 수도 있다. 제어기(308)는 다른 작업 중에서, 메모리 디바이스(310)에 저장된 데이터에서, 예를 들어, 데이터 스크러빙 작업 및/또는 이동 작업과 같은, 데이터 복원 작업을 수행하도록 구성될 수 있다.
도 3에 도시된 바와 같이, 데이터 복원 컴포넌트는 도 3에 예시된 바와 같은, 제1 표(316-1) 및 제2 표(316-2)를 포함할 수 있다. 표(316-1 및 316-2)는 본 명세서에서 보수 표(repair table)로서 지칭될 수도 있고, 그리고 본 명세서에서 더 설명될 바와 같이, 제어기(308)에 의해 생성될 수도 있고 그리고 제어기(308)의 비휘발성 메모리에 저장(예를 들어, 지속)될 수도 있다. 현재의 보수 표로서 지칭될 수도 있는, 보수 표 중 하나의 보수 표(예를 들어, 표(316-1))는 데이터와 연관된 이전의 오류율의 이전의 평가(예를 들어, 순위 매김)에 기초하는 메모리 디바이스(310)에 저장된 데이터의 현재의(예를 들어, 활성) 맵핑을 포함할 수도 있다. 새로운 보수 표로서 지칭될 수도 있는, 다른 보수 표(예를 들어, 표(316-2))는 데이터와 연관된 현재의 오류율의 현재의 평가에 기초하는 데이터의 새로운(예를 들어, 후속의) 맵핑을 포함할 수도 있다.
본 명세서에서 사용될 때, 맵핑은 구성 메모리 소자(예를 들어, 페이지 및 비트)로부터 사용자-액세스 가능한 데이터 단위(예를 들어, 섹터)의 구성을 나타낼 수 있다. 예를 들어, 보수 표의 맵핑은 메모리 디바이스(310)에 저장된, 예를 들어, 데이터의 섹터 또는 파셀과 같은, 데이터의 군의 물리적 맵핑에 대해 논리적일 수도 있다. 보수 표의 예, 그리고 보수 표에 포함된 데이터 맵핑의 예는 본 명세서에서 (예를 들어, 도 4a 및 도 4b 및 도 5와 관련되어) 더 설명될 것이다.
실시형태에서, 제어기(308)는 보수 표(316-1 및 316-2)를 사용하여 (예를 들어, 데이터가 더 오류-저항성 메모리를 지지하여 오류나기 쉬운 메모리를 방지함으로써 최상의 이용 가능한 메모리에 저장되는 것을 보장하도록) 메모리 디바이스(310)에 저장된 데이터(예를 들어, 데이터의 군)에서 데이터 복원 작업을 수행할 수 있다. 예를 들어, 제어기(308)는 현재의 보수 표의 현재의 데이터 맵핑을 사용하여 (예를 들어, 이동의 제1 패스의 부분으로서 메모리에 저장된 데이터를 감지하도록) 메모리 디바이스(310)에서 감지 작업을 수행할 수 있고, 그리고 이어서 새로운 보수 표의 새로운 데이터 맵핑을 사용하여 (예를 들어, 이동의 제2 패스의 부분으로서 메모리에 대한 감지된 데이터를 프로그래밍하도록) 메모리 디바이스(310)에서 프로그램 작업을 수행할 수 있다.
예를 들어, 현재의 보수 표의 현재의 데이터 맵핑은 데이터(예를 들어, 데이터의 군)를 메모리 디바이스(310) 내 제1 물리적 위치(예를 들어, 어드레스)에 맵핑할 수도 있고, 그리고 새로운 보수 표의 새로운 데이터 맵핑은 데이터를 메모리 디바이스(310) 내 제2 물리적 위치에 맵핑할 수도 있다. 제2 물리적 위치(예를 들어, 감지된 데이터가 프로그래밍되는 위치)는 제1 물리적 위치(예를 들어, 데이터가 감지되는 위치)와는 상이할 수도 있고, 그리고/또는 제1 위치보다 해당 위치와 연관된 더 낮은 오류율을 가질 수도 있다. 예를 들어, 제1 물리적 위치는 메모리 내 사용자-액세스 가능한 위치(예를 들어, 페이지)일 수도 있고 그리고 제2 물리적 위치는 메모리 내 스페어 위치(예를 들어, 스페어 페이지)일 수도 있거나, 또는 그 역도 가능하다.
메모리 디바이스(310)에 저장된 데이터와 연관된 이전의 오류율 및 현재의 오류율은 예를 들어, 데이터에서 수행된 오류 정정 작업과 연관된 비트 오류율일 수 있다. 본 명세서에서 사용될 때, 비트 오류율은 감지 작업 동안 감지된 데이터의 총량(예를 들어, 샘플 크기)에 의해 분할된 감지 작업 동안 메모리로부터 감지된 잘못된 데이터의 양에 대응하는 잘못된 비트의 수량을 나타낼 수 있다.
메모리 디바이스(310)에 저장된 데이터와 연관된 이전의 오류율 및 현재의 오류율은 오류 정정 컴포넌트(308)를 사용하여 결정될 수 있고, 그리고 이전의 오류율 및 현재의 오류율의 평가는 제어기(308)에 의해 수행될 수 있다. 예를 들어, 오류 정정 컴포넌트(308)는 메모리 디바이스(310)에 저장된 데이터(예를 들어, 감지 작업 동안 감지된 데이터)의 복수의 군에서 오류 정정 작업을 수행할 수 있고, 그리고 각각의 각자의 군에서 수행된 오류 정정 작업과 연관된 오류율(예를 들어, 비트 오류율)을 결정할 수 있다. 이어서 제어기(308)는 각각의 각자의 군과 연관된 오류율에 기초하여 데이터의 군을 순위 매길 수 있다. 예를 들어, 제어기(308)는 가장 높은 오류율로부터 가장 낮은 오류율의 순서로 군을 순위 매길 수 있다.
이어서 제어기(308)는 순위 매김에 기초한 맵핑에 의해 현재의 보수 표를 생성할 수 있다. 예를 들어, 제어기(308)는 순위 매김 시 가장 높은 것으로 순위 매겨지는(예를 들어, 최악의 오류율을 가진), 메모리 내 스페어 위치의 수와 같은, 복수의 군 중에 데이터의 군이 있는지를 결정할 수 있고, 그리고 이 군을 스페어 위치에 대응하는 메모리 내 물리적 위치에 맵핑할 수 있다. 데이터의 다른 군이 사용자-액세스 가능한 위치에 대응하는 메모리 내 물리적 위치에 맵핑될 수 있다. 이어서 현재의 보수 표의 맵핑은 메모리 디바이스(310)에서 수행되는 초기의 작업(예를 들어 프로그램 작업 및/또는 감지 작업)을 위해 사용될 수 있다.
현재의 보수 표를 생성하는 것에 후속하여(예를 들어, 메모리 디바이스(310)의 후속 작업 동안), 제어기(308)는 오류율의 후속 평가를 수행할 수 있고, 그리고 이 후속 평가에 기초하여 새로운 보수 표를 생성할 수 있다. 예를 들어, 오류 정정 컴포넌트(308)는 데이터의 복수의 군에서 후속의 오류 정정 작업을 수행할 수 있고, 그리고 각각의 각자의 군에서 수행되는 후속의 오류 정정 작업과 연관된 후속의(예를 들어, 새로운) 오류율을 결정할 수 있다. 이어서 제어기(308)는 각각의 각자의 군과 연관된 후속의 오류율에 기초하여 데이터의 군을 (예를 들어, 가장 높은 것으로부터 가장 낮은 순서로) 재순위 매길 수 있다.
예를 들어, 제어기(308)는 재순위 매김 시 가장 높은 것으로 순위 매겨지는(예를 들어, 최악의 오류율을 가진), 메모리 내 스페어 위치의 수와 같은, 복수의 군 중에 데이터의 군이 있는지를 결정할 수 있고, 그리고 이어서 이 각각의 가장 높게 순위 매겨진 군의 각각에 대해, 군이 또한 원래의 순위 매김 시 가장 높은 것으로 순위 매겨지도록 결정된 복수의 군 중에 있는지를 결정할 수 있다. 원래의 순위 매김 시 가장 높게 순위 매겨진 군 중에 또한 있는 것으로 결정된 이 각각의 가장 높게 순위 매겨진 군의 각각에 대해(예를 들어, 원래 최악의 오류율을 가졌고, 그리고 지금 여전히 최악의 오류율을 가진 이 군), 제어기(308)는 이들이 현재의 보수 표에 맵핑되었던 메모리 내 동일한 물리적 위치에 데이터의 이 군을 맵핑할 수 있다(예를 들어, 이 군은 새로운 표 내 스페어 위치에 맵핑된 채로 있을 것이다). 이 군은 고정된 군으로서 지칭될 수 있다. 원래의 순위 매김 시 가장 높게 순위 매겨진 군 중에 또한 없었던 이 각각의 가장 높게 순위 매겨진 군의 각각에 대해(예를 들어, 최악의 오류율을 가진 군 중에 원래 없었지만, 지금은 있는 이 군), 제어기(308)는 이들이 현재의 보수 표에 맵핑되었던 위치와는 상이한 메모리 내 물리적 위치에 데이터의 이 군을 맵핑할 수 있다(예를 들어, 이 군은 이들이 현재의 표에 맵핑되었던 사용자-액세스 가능한 위치 대신에, 새로운 표 내 스페어 위치에 이제 맵핑될 것이다). 이 군은 추가된 군으로서 지칭될 수 있다.
제어기(308)는 또한 재순위 매김 시 가장 높게 순위 매겨진 군 중에 없는 데이터의 각각의 각자의 군에 대해, 군이 원래의 순위 매김 시 가장 높은 것으로 순위 매겨지도록 결정되었던 복수의 군 중에 있는지를 결정할 수 있다. 원래의 순위 매김 시 가장 높게 순위 매겨지도록 결정되었던 이 각각의 군 중 각각에 대해(예를 들어, 최악의 오류율을 원래 가졌지만, 지금은 그렇지 않은 이 군), 제어기(308)는 군이 현재의 보수 표에 맵핑되었던 위치와 상이한 메모리 내 물리적 위치에 데이터의 이 군을 맵핑할 수 있다(예를 들어, 이 군은 군이 이제 추가된 군에 의해 대체되는 바와 같이, 군이 현재의 표에 맵핑되는 스페어 위치 대신에, 새로운 표 내 사용자-액세스 가능한 위치에 맵핑될 것이다). 이 군은 삭제된 군으로서 지칭될 수 있다. 원래의 순위 매김 또는 재순위 매김 시 가장 높게 순위 매겨진 군 중에 있는 것으로 결정되지 않았던 각각의 군 중 각각에 대해(최악의 오류율을 가진 군 중에 없었던 이 군), 제어기(308)는 이 군을 군이 현재의 보수 표에 맵핑되었던 메모리 내 동일한 물리적 위치에 맵핑할 수 있다(예를 들어, 이 군은 새로운 표 내 사용자-액세스 가능한 위치에 맵핑될 것이다).
메모리 내 스페어 위치 전부가 메모리에 저장된 데이터를 갖는 경우에(예를 들어, 풀(full) 상태임), 메모리 내 스페어 위치에 군을 추가하는 것은 스페어 위치로부터 군을 대체하는 것을 필요하게 할 것이다. 그러나, 대체될 군(예를 들어, 삭제된 군)은 추가된 군에 의해 단순히 중복 기입되지 않을 수 있고; 그렇지 않으면 이의 데이터는 손실될 것이다. 오히려, 대체될 군은 추가된 군이 복사되기 전에 군의 스페어 위치로부터 먼저 복사되어야 하고, 이는 본 명세서에 설명된 바와 같이, 데이터 복원 작업의 2개의 패스를 수행하도록 2개의 보수 표를 활용함으로써 달성될 수 있다.
이어서 제어기(308)는 이전에 본 명세서에서 설명된 바와 같이, 현재의 보수 표 및 새로운 보수 표의 맵핑을 사용하여 메모리 디바이스(310)에 저장된 데이터에서 데이터 복원 작업을 수행할 수 있다. 일단 데이터 복원 작업이 수행된다면, 새로운 보수 표는 현재의 보수 표의 역할을 할 수도 있고, 그리고 현재의 보수 표로서 지칭될 수도 있고, 그리고 현재의 보수 표였던 보수 표는 사용되지 않을 수도 있다. 이전에 설명된 작업 사이클은 "새로운" 보수 표로서 기능하도록 미사용된 표 공간에서 새로 업데이트된 맵핑을 생성하는 제어기(308)에 의해, 반복될 수 있다.
예를 들어, 데이터 복원 작업을 수행하는 것에 후속하여, 제어기(308)는 새로운 오류율 평가를 수행할 수 있고, 그리고 이 새로운 평가에 기초하여 이제-새로운 보수 표로서 기능하도록 업데이트된 맵핑을 생성할 수 있다. 예를 들어, 오류 정정 컴포넌트(308)는 데이터의 복수의 군에서 오류 정정 작업을 계속해서 수행할 수 있고 그리고 이 작업과 연관된 오류율을 결정할 수 있다. 이어서 제어기(308)는 이 오류율에 기초하여 데이터의 군의 추가의(예를 들어, 새로운) 재순위 매김을 수행할 수 있고, 그리고 이전의 순위 매김 및 이전에 본 명세서에서 설명된 보수 표 생성 과정과 유사한 방식으로, 재순위 매김에 기초하여 (예를 들어, 표의 이전의 맵핑을 대신하도록) 이제-새로운 보수 표를 위한 업데이트된 맵핑을 생성할 수 있다.
이어서 제어기(308)는 이전에 본 명세서에서 설명되었지만 반전된 표의 역할을 하는 방식과 유사한 방식으로, 2개의 보수 표를 사용하여 또 다른 데이터 복원 작업을 수행할 수 있다. 이 사이클이 이러한 방식으로 현재의 보수 표와 새로운 보수 표 사이에서 교번하는 표(316-1 및 316-2)(예를 들어, 데이터를 감지하도록 사용되는 것과 데이터를 프로그래밍하도록 사용되는 것 사이에서 교번함)를 사용하여, 메모리 시스템(304)의 수명 내내 연속적으로 수행될 수 있어서, 최악의 오류율을 가진 데이터 군(예를 들어, 페이지)이 메모리의 스페어 부분에 연속적으로 귀속된다.
메모리 시스템(304)은 새로 업데이트된 맵핑이 생성되는 동안 표(316-1 및 316-2)를 위한 휘발성 기억장치를 사용할 수도 있지만, 표 중 단 하나의 표(예를 들어, 현재의 보수 표)는 데이터 복원 작업 사이의 간격 동안 휘발성 기억장치에 존재할 수도 있다. 게다가, 메모리 시스템(304)은 표(316-1 및 316-2)를 위한 비휘발성 기억장치를 사용할 수도 있다. 예를 들어, 시스템은 본 명세서에서 더 설명될 바와 같이, 전력 손실로부터 보호하도록 데이터 복원 작업을 시작하기 전에 새로운(예를 들어, 새로 생성된) 보수 표를 비휘발성 기억장치에 저장할 수도 있다. 게다가, 예를 들어, 어떤 표가 현재의 보수 표를 나타내고 그리고 어떤 표가 새로운 보수 표를 나타내는지를 나타내는, 타임스탬프 또는 단조적으로 증가되는 시퀀스 번호와 같은 메타데이터는 전력 손실로부터 보호하도록 비휘발성 기억장치에 저장될 수도 있다.
도 4a 및 도 4b는 본 개시내용의 실시형태에 따른, 데이터 복원 작업을 수행하도록 사용되는 표의 예를 예시한다. 예를 들어, 도 4a에 예시된 표(416-1)는 이전에 본 명세서에서(예를 들어, 도 3과 관련되어) 설명된 현재의 보수 표의 예일 수 있고, 그리고 도 4b에 예시된 표(416-2)는 이전에 본 명세서에서(예를 들어, 도 3과 관련되어) 설명된 새로운 보수 표의 예일 수 있다. 도 4a 및 도 4b에 예시된 예는 풀-레졸루션 보수 표로서 지칭될 수 있다.
도 4a 및 도 4b에 도시된 바와 같이, 표(416-1 및 416-2)는 복수의 항목(예를 들어, 구성요소)(450 및 451)을 각각 포함할 수 있다. 각각의 각자의 항목은 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)에 저장된 데이터의 상이한 군(예를 들어, 상이한 섹터 및/또는 파셀)에 대응할 수 있다. 예를 들어, 표(416-1)는 N개의 항목을 포함할 수 있고, 항목(450-0)은 데이터의 제0 군에 대응하고, 항목(450-1)은 데이터의 제1 군에 대응하고, 항목(450-2)은 데이터의 제2 군에 대응하고, 등이며, 항목(450-N)은 데이터의 제N 군에 대응한다. 유사하게, 표(416-2)는 동일한 수(예를 들어, N개)의 항목을 포함할 수 있고, 항목(451-0)은 데이터의 제0 군에 대응하고, 항목(451-1)은 데이터의 제1 군에 대응하고, 항목(451-2)은 데이터의 제2 군에 대응하고, 등이며, 항목(451-N)은 데이터의 제N 군에 대응한다.
도 4a 및 도 4b에 도시된 바와 같이, 표(416-1 및 416-2) 내 각각의 각자의 항목(450 및 451)은 각각 데이터의 각각의 군에 대한 논리 어드레스 및 물리적 어드레스를 포함할 수 있다. 예를 들어, 도 4a 및 도 4b에 예시된 예에서, 항목(450-0 및 451-0) 둘 다는 군 0에 대해 동일한 논리 어드레스(예를 들어, 0) 및 동일한 물리적 어드레스(예를 들어, 0)를 갖는다. 예에 계속해서, 항목(450-1 및 451-1) 둘 다는 군 1에 대해 동일한 논리 어드레스(예를 들어, 1)를 갖지만, 군 1에 대해 상이한 물리적 어드레스(예를 들어, 각각 1 및 N-2)를 갖는다.
이와 같이, 표(416-1 및 416-2) 내 각각의 각자의 항목(450 및 451) 각각은 데이터의 각각의 군에 대한 논리 대 물리적 맵핑을 나타낼 수 있다. 특정한 군에 대한 물리적 어드레스가 표 둘 다에서 동일하다면, 이 군은 각각의 표 내 각각의 항목에 의해 동일한 물리적 위치에 맵핑된다. 특정한 군에 대한 물리적 어드레스가 각각의 표에서 상이하다면, 이 군은 각각의 표 내 각각의 항목에 의해 상이한 물리적 위치에 맵핑된다. 논리 어드레스는 항목의 지표를 나타낼 수 있고, 그리고 물리적 어드레스는 항목의 내용(예를 들어, 값)을 나타낼 수 있다.
데이터의 군 중 적어도 하나의 군은 사용자 데이터(예를 들어, 메모리 내 사용자-액세스 가능한 위치에 저장된 데이터)를 포함할 수 있고, 그리고 데이터의 군 중 적어도 하나의 군은 스페어 데이터(예를 들어, 메모리 내 스페어 위치에 저장된 데이터)를 포함할 수 있다. 예를 들어, 도 4a 및 도 4b에 예시된 예에서, 표(416-1 및 416-2)의 부분(452)의 항목은 사용자 데이터의 군에 대응할 수 있고, 그리고 표(416-1 및 416-2)의 부분(454)의 항목은 스페어 데이터의 군에 대응할 수 있다.
예를 들어, 도 4a는 메모리의 초기의 상태에 대한 풀-레졸루션 보수 표(416-1)를 예시한다. 표(416-1) 내 모든 군은 메모리 내 스페어 위치에 맵핑된 군(N-2, N-1, 및 N)으로, 맵핑된 아이덴티티이다(예를 들어, 이 군은 최악의 오류율을 가진 것으로 추정됨). 부분(454)을 포함하는 이 군이 표(416-1)의 끝에 배치되지만, 본 개시내용의 실시형태는 이렇게 제한되지 않는다(예를 들어, 스페어 위치에 대응하는 군은 표 내 어디든 배치될 수도 있다).
도 4b는 본 개시내용에 따른 데이터 복원 작업이 수행된 후 도 4a의 보수 표의 예를 예시한다. 이 예에서, 군(1, 3, 및 N)이 최악의 오류율을 갖는 것이 결정된다. 따라서, 군(1 및 3)의 데이터는 이제 표(416-2) 내 스페어 부분(454)의 군(N-2 및 N-1)에 맵핑(예를 들어, 재지향)되고, 반면에 군(N)의 데이터는 도 4b에 예시된 바와 같이, 맵핑된 아이덴티티이다. 정반대로, 군(N-2 및 N-1)이 더 이상 최악의 오류율을 갖지 않으므로, 이 군의 데이터는 도 4b에 예시된 바와 같이, 표(416-2) 내 데이터 부분(452)의 군(1 및 3)에 맵핑된다. 이러한 방식으로, 최악의 오류율을 가진 군은 표의 스페어 부분(454)에 항상 위치된다.
후속의 데이터 액세스(예를 들어, 메모리의 후속 작업 동안)는 이제 표(416-2)를 통해 필터링될 수도 있다. 예를 들어, 논리 군(1)의 데이터에 액세스하기 위한 시도는 물리적 군(N-2)으로 재지향될 것이고, 반면에 논리 군(N-2)의 데이터에 액세스하기 위한 시도는 물리적 군(1)으로 재지향될 것이다.
도 5는 본 개시내용의 실시형태에 따른, 데이터 복원 작업을 수행하도록 사용되는 표(516-2)의 예를 예시한다. 예를 들어, 도 5에 예시된 표(516-2)는 이전에 본 명세서에서(예를 들어, 도 3과 관련되어) 설명된 새로운 보수 표의 예일 수 있다. 도 5에 예시된 예는 비트맵-기반 보수 표로서 지칭될 수 있다.
도 5에 도시된 바와 같이, 표(516-2)는 복수의 항목(예를 들어, 구성요소)(556)을 포함할 수 있다. 각각의 각자의 항목은 도 4b와 관련되어 이전에 설명된 표(416-2)의 항목과 유사한 방식으로, 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)에 저장된 데이터의 상이한 군(예를 들어, 상이한 섹터 및/또는 파셀)에 대응할 수 있다. 게다가, 도 4b와 관련되어 이전에 설명된 방식과 유사한 방식으로, 데이터의 군 중 적어도 하나의 군은 사용자 데이터를 포함할 수 있고, 그리고 데이터의 군 중 적어도 하나의 군은 스페어 데이터를 포함할 수 있다. 예를 들어, 도 5에 예시된 예에서, 표(516-2)의 부분(558) 내 항목은 사용자 데이터의 군에 대응할 수 있고, 그리고 표(516-2)의 부분(560) 내 항목은 스페어 데이터의 군에 대응할 수 있다.
도 5에 도시된 바와 같이, 표(516-2)의 부분(560) 내 각각의 각자의 항목은 도 4b와 관련되어 이전에 설명된 방식과 유사한 방식으로, 데이터의 군에 대한 논리 어드레스 및 물리적 어드레스를 포함할 수 있다. 예를 들어, 도 5에 예시된 예에서, 항목(556-N-2)은 군(N-2)에 대해 N-2의 논리 어드레스 및 1의 물리적 어드레스를 갖고, 항목(556-N-1)은 군(N-1)에 대해 N-1의 논리 어드레스 및 3의 물리적 어드레스를 갖고, 그리고 항목(556-N)은 군(N)에 대해 N의 논리 및 물리적 어드레스를 갖는다. 이와 같이, 표(516-2)의 부분(560) 내 각각의 각자의 항목은 데이터의 각각의 군에 대한 논리 대 물리적 맵핑을 나타낼 수 있고, 이는 이전에 본 명세서에서 설명된 바와 같은, 재지향된 맵핑(예를 들어, 메모리 내 상이한 물리적 위치에 대한)일 수도 있다.
도 5에 도시된 바와 같이, 표(516-2)의 부분(558 내 각각의 각자의 항목은 또한 데이터의 각각의 군에 대한 논리 어드레스를 포함할 수 있다. 그러나, 도 5에 예시된 바와 같이, 물리적 어드레스 대신에, 표의 이 부분 내 각각의 각자의 항목은 데이터의 각각의 군이 메모리 내 상이한 물리적 위치로(예를 들어, 이전의 표에 나타낸 것과 상이한 물리적 어드레스로) 재지향되는지를 나타내는 비트 값(예를 들어, 플래그)을 포함할 수도 있다. 예를 들어, 표(516-2)의 데이터 부분(558)은 군당 1비트로, 비트맵으로 요약될 수도 있다: 도 5에 예시된 바와 같이, 0은 아이덴티티 맵핑된 군을 나타내고,그리고 1은 재지향된 군을 나타낸다. 표(516-2)의 데이터 부분(558)을 이러한 방식으로 비트맵으로 압축함으로써, 표(516-2)의 크기는 (예를 들어, 표(416-2)의 크기와 비교할 때) 감소될 수도 있다.
예를 들어, 도 5에 예시된 예에서, 항목(556-1 및 556-3)의 비트 값(예를 들어, 1)은 군(1 및 3)이 메모리 내 상이한 물리적 위치로 재지향되는 것(예를 들어, 이 군은 메모리의 데이터 부분으로부터 메모리의 스페어 부분으로 재지향됨)을 나타낸다. 명료성을 위해 이 재지향은 도 4b와 관련되어 이전에 설명된 재지향과 동일하다.
후속의 데이터 액세스(예를 들어, 메모리의 후속 작업 동안)는 이제 표(516-2)를 통해 필터링되지 않을 수도 있고, 그리고 재지향된 데이터 군의 액세스는 재지향된 데이터를 찾기 위한 스페어 부분(560)의 검색을 포함할 수도 있다. 예를 들어, 논리 군(3)의 데이터에 액세스하기 위한 시도는 표(516-2)의 비트맵 내 설정된(예를 들어, 1) 비트 값과 만날 것이다. 이것은 군(N-1)에서 발견되는, 값 "3"에 대한 스페어 부분(560)의 검색을 트리거링(trigger)할 것이고, 그리고 따라서 액세스는 이 물리적 어드레스를 목표로 할 것이다. 반면에, 논리 군(0)의 데이터에 액세스하기 위한 시도는 비트맵 내 클리어(예를 들어, 0) 비트 값과 만날 것이고, 따라서 부가적인 검색의 필요 없이 물리적 군(0)에 액세스하도록 진행될 것이다.
도 6은 본 개시내용의 실시형태에 따른, 메모리의 작동 시 사용되는 표(662)의 예를 예시한다. 예를 들어, 표(662)는 예를 들어, 데이터 복원 작업 동안 수행되는 프로그램 작업 및/또는 감지 작업과 같은, 메모리에서 수행되는 프로그램 작업 및/또는 감지 작업 동안 이 표 중 어떤 표가 사용되어야 하는지를 결정하기 위해, 도 3과 관련되어 이전에 설명된 표(316-1 및 316-2)와 함께 사용될 수도 있다. 표(662)는 예를 들어, 도 3과 관련되어 이전에 설명된 메모리 디바이스(310) 외부의 휘발성 메모리(예를 들어, RAM 또는 DRAM)에 저장될 수도 있다.
표(662)는 구성 비트가 메모리 디바이스(310) 내 단일의 군(예를 들어, 섹터)과 각각 연관되는 비트맵일 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 표(662)는 복수의 항목(예를 들어, 구성요소)(664)을 포함할 수 있다. 각각의 각자의 항목은 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)에 저장된 데이터의 상이한 군(예를 들어, 상이한 섹터)에 대응할 수 있고, 그리고 도 6에 예시된 바와 같이, 각각의 군과 연관된 위상 비트를 포함할 수 있다. 즉, 각각의 군은 군과 연관된 위상 비트를 가질 수 있다.
본 명세서에서 이전에 설명된 바와 같이, 표(316-1 및 316-2)는 현재의 보수 표와 새로운 보수 표 사이에서 교번할 수 있다(예를 들어, 이들의 각각의 맵핑은 프로그램 작업 및 감지 작업을 위해 사용되는 맵핑 사이에서 교번할 수 있음). 이 표 중 어떤 표(예를 들어, 어떤 표의 맵핑)가 데이터를 프로그래밍하거나, 또는 저장된 데이터를 감지할 때 사용되어야 하든, 데이터의 군은 표(662) 내 군의 위상 비트의 값에 기초하여 결정될(예를 들어, 값으로 나타날) 수 있다. 예를 들어, 군과 연관된 위상 비트가 클리어(예를 들어, 0)일 때, 제1 표(예를 들어, 표(316-1))는 데이터를 군에 대해 프로그래밍하거나, 또는 군에 저장된 데이터를 감지할 때 사용되어야 하고, 그리고 섹터와 연관된 위상 비트가 설정될 때(예를 들어, 1), 제2 표(예를 들어, 표(316-2))가 사용되어야 한다. 표(662) 내 모든 위상 비트는 메모리의 초기화 및/또는 작동 시작 시 0으로 클리어될 수 있다.
도 7은 본 개시내용의 실시형태에 따른, 메모리, 예컨대, 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)를 작동시키기 위한 방법(768)을 예시한다. 방법(768)은 예를 들어, 도 3과 관련되어 이전에 설명된 제어기(308)를 사용하여 수행될 수 있고, 그리고 메모리에서 수행되는 다른 병행 작업(예를 들어 클라이언트 액세스)에 대해 원자적으로 수행될 수도 있다.
블록(770)에서, 방법(768)은 메모리에 저장된 데이터의 군(예를 들어, 섹터)에서 수행될 데이터 복원(예를 들어, 이동) 작업을 개시시키는 단계를 포함한다. 블록(772)에서, 방법(768)은 도 3과 관련되어 이전에 설명된 표(316-1 및 316-2) 중 제1 표를 사용하여 군에 저장된 데이터를 감지(예를 들어, 판독)하는 단계를 포함한다. 데이터를 감지하도록 사용되는 표는 현재의 보수 표로서 현재 기능하는 표일 수 있다. 데이터를 감지하도록 어떤 표가 사용되는지(예를 들어, 어떤 표가 현재의 보수 표인지)의 결정은 도 6과 관련되어 이전에 설명된 바와 같이, 데이터의 군과 연관된 위상 비트의 값에 기초하여 이루어질 수 있다. 실시형태에서, 데이터는 버퍼에서 감지될 수도 있다.
블록(774)에서, 방법(768)은 표(316-1 및 316-2) 중 제2(예를 들어, 다른) 표(예를 들어, 군과 연관된 위상 비트에 의해 현재의 보수 표인 것으로 나타나지 않은 표)를 사용하여 메타데이터를 산출하는 단계를 포함한다. 메타데이터는 예를 들어, 데이터의 군을 위한 메타데이터 스페어 인코딩을 포함할 수도 있다. 예를 들어, 메모리 내 군의 공간(예를 들어, 풋프린트) 내 지정된 스페어 비트는 최악의 오류율을 갖도록 이전에 결정된 군으로부터 복제된 데이터와 함께 모일 수도 있고, 따라서 군에 저장된 데이터는 군의 데이터가 고정될지라도, 군 내에서(예를 들어, 군의 슬라이스 내에서) 오류율을 변경하는 것에 기인하여 변경될 수도 있다. 메타데이터는 또한 예를 들어, 전력 손실이 데이터 복원 작업 동안 발생하는 경우 사용을 위해, 군과 연관된 위상 비트의 표현을 포함할 수도 있다.
블록(776)에서, 방법(768)은 군에 저장된 데이터(예를 들어, 블록(772)에서 감지된 데이터)를 제2 표를 사용하여(예를 들어, 새로운 보수 표로서 현재 기능하는 표를 사용하여) 메모리에 대해 프로그래밍(예를 들어, 기입)하는 단계를 포함한다. 즉, 어떤 표가 데이터를 프로그래밍하도록 사용되는지(예를 들어, 어떤 표가 현재의 보수 표인지)의 결정은 또한 도 6과 관련되어 이전에 설명된 바와 같이, 데이터의 군과 연관된 위상 비트의 값에 기초하여 이루어질 수 있다.
데이터가 프로그래밍되는 메모리 내 위치는 메모리 내 상이한 물리적 위치, 예컨대, 본 명세서에서 이전에 설명된 바와 같이, 데이터가 감지되는 군의 오류율보다 더 낮은 오류율을 가진 위치(예를 들어, 페이지)일 수도 있다. 이와 같이, 데이터는 본 명세서에서 이전에 설명된 바와 같이, 더 높은 오류율을 가진 군으로부터 더 낮은 오류율을 가진 군으로 재지향될 수 있다. 블록(778)에서(예를 들어, 데이터가 메모리에 대해 프로그래밍될 때), 방법(768)은 데이터가 감지되는 군과 연관된 위상 비트의 값을 인버팅(inverting)하는 단계를 포함할 수 있다.
도 8은 본 개시내용의 실시형태에 따른, 메모리, 예컨대, 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)를 작동시키기 위한 방법(880)을 예시한다. 방법(880)은 예를 들어, 도 3과 관련되어 이전에 설명된 제어기(308)를 사용하여 수행될 수 있고, 그리고 데이터 복원 작업 또는 클라이언트 액세스 동안 메모리에 저장된 데이터의 군(예를 들어, 섹터)에서 수행되는 프로그램 작업 및/또는 감지 작업의 부분일 수 있다(예를 들어, 상기 작업을 위한 규칙을 제공할 수 있다).
블록(882)에서, 방법(880)은 메모리에 저장된 데이터의 군(예를 들어, 섹터)에서 수행될 프로그램 작업 또는 감지 작업을 개시시키는 단계를 포함한다. 도 8에 도시되지 않았지만, 프로그램 또는 감지 작업이 섹터에서 수행되는 데이터 복원 작업의 부분으로서 개시된다면, 메모리와 연관된 글로벌 위상 비트(예를 들어, 전체 메모리와 연관되는 단일의 위상 비트)의 값이 인버팅될 수 있어서, 글로벌 위상 비트의 인버팅된 값이 섹터와 연관된 위상 비트의 값과 일치되지 않는다. 프로그램 또는 감지 작업이 데이터 복원 작업(예를 들어, 작업은 정상적인 클라이언트 액세스의 부분임)의 부분으로서 개시되지 않는다면, 글로벌 위상 비트의 값이 인버팅되지 않고, 따라서 섹터와 연관된 위상 비트의 값과 일치된다. 따라서, 글로벌 위상 비트의 값은 데이터 복원 작업이 현재 수행되는지를 나타낼 수 있다.
블록(884)에서, 방법(880)은 섹터에 대한 위상 비트의 값이 글로벌 위상 비트의 값과 일치되는지를 결정하는 단계를 포함한다. 섹터와 연관된 위상 비트의 값은 예를 들어, 도 6과 관련되어 이전에 설명된 표(662)에 의해 제공될 수 있다.
섹터에 대한 위상 비트 값이 글로벌 위상 비트 값(예를 들어, 프로그램 또는 감지 작업이 클라이언트 액세스의 부분으로서 개시되는 것을 나타냄)과 일치된다고 결정한다면, 프로그램 또는 감지 작업은 섹터에 대한 위상 비트의 값에 기초하여(예를 들어, 값을 나타내는) 적합한 보수 표(예를 들어, 표의 맵핑)를 사용하여 블록(886)에서 수행될 수 있고, 그리고 방법(880)이 블록(888)에서 종료될 수 있다. 따라서, 클라이언트 액세스의 부분으로서 개시되는 프로그램 작업 및 감지 작업에 대해, 작업은 글로벌 위상 비트의 값에 상관없이 섹터의 위상 비트의 값으로 나타낸 보수 표를 사용할 것이다.
섹터에 대한 위상 비트 값이 글로벌 위상 비트 값과 일치되지 않는다고 결정한다면, 블록(882)에서 개시된 작업이 프로그램 작업 또는 감지 작업인지가 블록(890)에서 결정된다. 작업이 감지 작업이라면, 감지 작업은 섹터에 대한 위상 비트의 값에 기초하여(예를 들어, 값을 나타내는) 적합한 보수 표(예를 들어, 표의 맵핑)를 사용하여 블록(886)에서 수행될 수 있고, 그리고 방법(880)이 블록(888)에서 종료될 수 있다. 따라서, 데이터 복원(예를 들어, 이동) 작업의 부분으로서 개시된 감지 작업에 대해, 그리고 섹터의 위상 비트가 글로벌 위상 비트의 인버팅 후 글로벌 위상 비트와 일치되지 않는다면, 작업은 섹터의 위상 비트의 값을 나타내는 보수 표를 사용할 것이다.
블록(882)에서 개시되는 작업이 프로그램 작업이라면, 섹터에 대한 위상 비트의 값은 블록(892)에서 인버팅될 수 있고, 그리고 섹터에 대한 메타데이터는 블록(894)에서 인버팅된 위상 비트 값에 기초하여 산출될 수 있다. 메타데이터는 예를 들어, 데이터의 섹터를 위한 메타데이터 스페어 인코딩을 포함할 수도 있고, 그리고 도 7과 관련되어 이전에 설명된 방식과 유사한 방식으로 산출될 수 있다. 프로그램 작업은 섹터에 대한 위상 비트의 인버팅된 값에 기초하여(예를 들어, 값을 나타내는) 적합한 보수 표(예를 들어, 표의 맵핑)를 사용하여 블록(886)에서 수행될 수 있고, 그리고 방법(880)이 블록(888)에서 종료될 수 있다. 따라서, 데이터 복원(예를 들어, 이동) 작업의 부분으로서 개시된 감지 작업에 대해, 그리고 섹터의 위상 비트가 글로벌 위상 비트의 인버팅 후 글로벌 위상 비트와 일치되지 않는다면, 작업은 먼저 섹터의 위상 비트의 값을 인버팅할 것이고, 그리고 이어서 메타데이터 스페어를 인코딩할 것이고 그리고 섹터의 위상 비트의 이제-인버팅된 값으로 나타낸 보수 표를 사용하여 프로그래밍을 수행할 것이다.
도 8에 도시되지 않았지만, 전력 손실이 데이터 복원 작업이 메모리에서 수행되는 동안 발생한다면, 데이터 복원 작업이 가장 최근에 수행되었던 메모리의 섹터에 대한 논리 어드레스 및 글로벌 위상 비트의 현재 값은 전력 손실의 발생을 검출할 때 비휘발성 메모리(예를 들어, 보수 표가 지속되는 동일한 비휘발성 메모리)에 신속하게 저장(예를 들어, 지속)될 수 있다. 전력(예를 들어, 그리고 보수 표)이 나중에 복원될 때, 저장된 논리 어드레스 이하(예를 들어, 전력 손실 전에 데이터 복원 작업이 가장 최근에 수행되었던 섹터에 대한 논리 어드레스 이하)의 논리 어드레스를 가진 메모리의 각각의 각자의 섹터와 연관된 위상 비트의 값이 글로벌 위상 비트의 값으로 설정될 수 있고, 그리고 다른 섹터(예를 들어, 저장된 논리 어드레스 초과의 논리 어드레스를 가진 각각의 각자의 섹터)와 연관된 위상 비트의 값이 글로벌 위상 비트의 인버팅된 값으로 설정될 수 있다. 따라서, 데이터 복원 작업은 전력 손실이 발생될 때 섹터에서 재개될 수 있다.
도 9는 본 개시내용의 실시형태에 따른, 메모리, 예컨대, 도 3과 관련되어 이전에 설명된 메모리 디바이스(310)를 작동시키기 위한 방법(995)을 예시한다. 방법(995)은 예를 들어, 도 3과 관련되어 이전에 설명된 제어기(308)를 사용하여 수행될 수 있다.
방법(995)은 전력 손실이 발생하고 그리고 추가의 정보(예를 들어, 도 8과 관련되어 설명된 바와 같은 글로벌 위상 비트 값 및 섹터 논리 어드레스)가 전력 손실 동안 지속되지 않는다면 데이터 복원 작업이 메모리에서 수행되는 것을 재개하기 위한 방법일 수 있다. 예를 들어, 전력이 전력 손실에 후속하여 복원될 때, 순차적 감지 작업은 제2 표의 새로운 맵핑을 사용하여(예를 들어, 새로운 보수 표로서 현재 기능하는 표의 맵핑을 사용하여) 각각의 각자의 섹터를 순차적으로(예를 들어, 차례대로) 감지하도록 메모리에 저장된 데이터의 군(예를 들어, 섹터)에서 (예를 들어, 데이터 복원 작업이 수행되는 동일한 순차적 순서로) 수행될 수 있다. 이 감지 작업 중 하나의 감지 작업이 실패될 때, 데이터의 각각의 섹터를 감지하기 위한 감지 작업이 제1 표의 현재의 맵핑을 사용하여(예를 들어, 현재의 보수 표로서 현재 기능하는 표의 맵핑을 사용하여) 수행될 수 있고, 그리고 이 감지 작업이 성공적이라면, 이것은 전력 손실이 발생될 때 데이터 복원 작업이 이루어지는 섹터를 나타내고, 따라서 데이터 복원 작업이 섹터에서 재개될 수 있다.
예를 들어, 전력이 블록(911)에서 복원될 때, 방법(995)은 제2(예를 들어, 새로운) 보수 표에서 섹터에 대한 맵핑을 사용하여 시퀀스에서 데이터의 제1 섹터를 감지하기 위한 감지 작업을 블록(913)에서 수행하는 단계, 및 감지 작업이 성공 또는 실패인지를 블록(915)에서 결정하는 단계를 포함한다. 감지 작업이 성공 또는 실패인지는 예를 들어, 감지 작업 동안 발생되는 오류의 수 및/또는 오류가 정정 가능한지에 기초하여 결정될 수 있다(예를 들어, 감지 작업은 본 명세서에서 이전에 설명된 바와 같이, 오류의 수가 메모리의 오류 정정 능력을 초과한다면 감지 작업이 실패될 수도 있음).
감지 작업이 성공이라면, 제1 섹터와 연관된 위상 비트의 값이 글로벌 위상 비트의 값과 일치되는지가 블록(969)에서 결정된다. 섹터와 연관된 위상 비트의 값은 예를 들어, 도 6과 관련되어 이전에 설명된 표(662)에 의해 제공될 수 있고, 그리고 글로벌 위상 비트는 도 8과 관련되어 이전에 설명된 글로벌 위상 비트일 수 있다.
블록(913)에서 수행된 감지 작업이 블록(915)에서 성공인 것으로 결정되고, 그리고 섹터 위상 비트의 값과 글로벌 위상 비트의 값이 블록(969)에서 일치한 것으로 결정된다면, 제1 섹터는 전력 손실이 발생되기 전에 성공적으로 이동되었고 그리고 시퀀스가 다음의 섹터로 이동될 수 있다고 추정될 수 있다. 예를 들어, 블록(967)에서 데이터의 더 많은 섹터가 감지되는지가 결정될 수 있고, 그리고 더 많은 섹터가 감지된다면, 방법(995)은 블록(999)에서 시퀀스에서 데이터의 다음의(예를 들어, 제2) 섹터로 이동될 수 있고, 그리고 블록(913)에서 제2 표를 사용하여 섹터를 감지하도록 진행될 수 있다. 더 많은 섹터가 감지되지 않는다고 블록(967)에서 결정된다면(예를 들어, 시퀀스는 모든 데이터 섹터에서 수행됨), 모든 섹터가 성공적으로 이동된다고 추정될 수 있고, 그리고 방법(995)은 블록(997)에서 종료될 수 있다.
블록(913)에서 수행된 감지 작업이 블록(915)에서 실패인 것으로 결정된다면, 또는 섹터 위상 비트의 값과 글로벌 위상 비트의 값이 블록(969)에서 일치되지 않는다고 결정된다면, 데이터의 제1 섹터는 아직 성공적으로 이동되지 않은 것으로 추정될 수 있다. 따라서, 감지 작업이 제1(예를 들어, 현재의) 보수 표에서 섹터에 대한 맵핑을 사용하여 제1 섹터를 감지하도록 블록(925)에서 수행될 수 있고, 그리고 감지 작업이 성공 또는 실패인지가 블록(927)에서 결정될 수 있다.
블록(925)에서 (예를 들어, 현재의 보수 표를 사용하여) 수행된 감지 작업이 성공이라면, 제1 섹터와 연관된 위상 비트의 값이 글로벌 위상 비트의 값과 일치되는지가 블록(929)에서 결정된다. 이 위상 비트 값이 일치된다면, 전력 손실이 발생될 때 데이터 복원 작업이 이루어지는 섹터가 위치된다고 추정될 수 있고, 따라서 데이터 복원 작업은 블록(945)에서 섹터(예를 들어, 제1 섹터)에서 재개될 수 있다. 게다가, 도 9에 도시되지 않았지만, 섹터 이전의 시퀀스에서 모든 섹터에 대한 위상 비트가 설정된 값(예를 들어, 1)으로 설정될 수 있고, 그리고 시퀀스에서 모든 계속되는 섹터에 대한 위상 비트가 클리어 값(예를 들어, 0)으로 설정될 수 있다.
블록(925)에서 수행되는 감지 작업이 블록(927)에서 실패인 것으로 결정된다면, 또는 섹터 위상 비트의 값과 글로벌 위상 비트의 값이 블록(929)에서 일치하지 않는다고 결정된다면(예를 들어, 제1 섹터가 보수 표를 사용하여 성공적으로 감지될 수 없다면), 이 섹터의 데이터가 손실되었다고 추정될 수 있다. 따라서, 섹터가 블록(965)에서 불량한 것으로 플래깅될 수 있어서 이 섹터는 시퀀스에서 스킵되고, 그리고 방법(995)이 시퀀스에서 다음의 섹터로 이동될 수 있다(예를 들어, 데이터의 더 많은 섹터가 블록(967)에서 감지되는지를 결정하고, 블록(999)에서 시퀀스에서 데이터의 다음의 섹터로 이동하고, 그리고 블록(913)에서 제2 표를 사용하여 이 섹터를 감지하도록 진행됨).
특정한 실시형태가 본 명세서에서 예시 및 설명되었지만, 당업자는 동일한 결과를 달성하도록 계산된 배열이 도시된 특정한 실시형태를 위해 대체될 수 있다는 것을 이해할 것이다. 본 개시내용은 본 개시내용의 복수의 실시형태의 조정 또는 변경을 포함하는 것으로 의도된다. 위의 설명이 제한적인 방식이 아닌, 예시적인 방식으로 이루어진다는 것이 이해된다. 위의 실시형태의 조합, 및 본 명세서에 구체적으로 설명되지 않은 다른 실시형태는 위의 설명을 읽을 때 당업자에게 분명해질 것이다. 본 개시내용의 복수의 실시형태의 범위는 위의 구조체 및 방법이 사용되는 다른 적용을 포함한다. 따라서, 본 개시내용의 복수의 실시형태의 범위는 이러한 청구항으로 불리는 등가물의 전체 범위와 함께, 첨부된 청구항을 참조하여 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징은 본 개시내용을 간소화하기 위해 단일의 실시형태에서 함께 분류된다. 본 개시내용의 이 방법은 본 개시내용의 개시된 실시형태가 각각의 청구항에서 분명히 언급된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영한 것으로 해석되지 않아야 한다. 오히려, 다음의 청구항이 반영될 때, 본 발명의 주제는 단일의 개시된 실시형태의 모든 특징 미만이다. 따라서, 다음의 청구항은 각각의 청구항이 별개의 실시형태로서 자체에 기초하는, 상세한 설명에 포함된다.

Claims (20)

  1. 장치로서,
    메모리; 및
    제어기에 저장된 제1 표 및 제2 표를 사용하여 상기 메모리에 저장된 데이터에서 데이터 복원 작업을 수행하도록 구성된 상기 제어기를 포함하되,
    상기 제1 표는 상기 메모리에 저장된 상기 데이터와 연관된 이전의 오류율의 이전의 평가에 기초하는 상기 메모리에 저장된 상기 데이터의 현재의 맵핑을 포함하고; 그리고
    상기 제2 표는 상기 메모리에 저장된 상기 데이터와 연관된 현재의 오류율의 현재의 평가에 기초하는 상기 메모리에 저장된 상기 데이터의 새로운 맵핑을 포함하는, 장치.
  2. 제1항에 있어서, 상기 제어기는 다음의 작업에 의해 상기 메모리에 저장된 상기 데이터에서 상기 데이터 복원 작업을 수행하도록 구성되는, 장치:
    상기 제1 표에 포함된 상기 데이터의 상기 현재의 맵핑을 사용하여 상기 메모리에서 감지 작업을 수행하는 작업; 및
    상기 제2 표에 포함된 상기 데이터의 상기 새로운 맵핑을 사용하여 상기 메모리에서 프로그램 작업을 수행하는 작업.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 표에 포함된 상기 데이터의 상기 현재의 맵핑은 상기 메모리 내 제1 물리적 위치에 대한 상기 데이터의 맵핑을 포함하고; 그리고
    상기 제2 표에 포함된 상기 데이터의 상기 새로운 맵핑은 상기 제1 물리적 위치와는 상이한 상기 메모리 내 제2 물리적 위치에 대한 상기 데이터의 맵핑을 포함하는, 장치.
  4. 제3항에 있어서, 상기 제2 물리적 위치는 상기 제1 물리적 위치보다 해당 위치와 연관된 더 낮은 오류율을 갖는, 장치.
  5. 제3항에 있어서, 상기 제2 물리적 위치는 상기 메모리 내 스페어 위치인, 장치.
  6. 메모리를 작동시키기 위한 방법으로서,
    다음의 작업에 의해 상기 메모리에 저장된 데이터에서 데이터 복원 작업을 수행하는 단계를 포함하되, 상기 작업은,
    상기 데이터의 제1 맵핑을 사용하여 상기 메모리에 저장된 상기 데이터를 감지하는 작업으로서,
    상기 제1 맵핑은 상기 데이터와 연관된 이전의 오류율의 이전의 평가에 기초하는 상기 메모리에 저장된 상기 데이터의 현재의 맵핑이고; 그리고
    상기 제1 맵핑은 제1 표에 저장되는, 상기 감지하는 작업; 및
    상기 데이터의 제2 맵핑을 사용하여 상기 메모리에 대해 감지된 데이터를 프로그래밍하는 작업으로서,
    상기 제2 맵핑은 상기 데이터와 연관된 현재의 오류율의 현재의 평가에 기초하는 상기 메모리에 저장된 상기 데이터의 새로운 맵핑이고; 그리고
    상기 제2 맵핑은 제2 표에 저장되는, 상기 프로그래밍하는 작업을 포함하는, 메모리를 작동시키기 위한 방법.
  7. 제6항에 있어서, 상기 방법은, 상기 데이터가 감지되고 그리고 상기 데이터가 감지되는 상기 메모리 내 상기 물리적 위치보다 해당 위치와 연관된 더 낮은 오류율을 갖는 상기 메모리 내 물리적 위치와 상이한 상기 메모리 내 물리적 위치에 대해 상기 감지된 데이터를 프로그래밍하는 단계를 포함하는, 메모리를 작동시키기 위한 방법.
  8. 제6항에 있어서, 상기 메모리에 저장된 상기 데이터에서 상기 데이터 복원 작업을 수행하는 단계는,
    상기 메모리에 저장된 상기 데이터와 연관된 위상 비트의 값에 기초하여 상기 메모리에 저장된 상기 데이터를 감지하기 위한 상기 제1 맵핑을 사용하도록 결정하는 것; 및
    상기 위상 비트의 값에 기초하여 상기 메모리에 대해 상기 감지된 데이터를 프로그래밍하기 위한 상기 제2 맵핑을 사용하도록 결정하는 것을 포함하는, 메모리를 작동시키기 위한 방법.
  9. 제6항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 상기 감지된 데이터를 사용하여 상기 메모리에 저장된 상기 데이터와 연관된 상기 현재의 오류율의 상기 현재의 평가를 수행하는 단계를 포함하는, 메모리를 작동시키기 위한 방법.
  10. 장치로서,
    메모리; 및
    제어기에 저장된 제1 표 및 제2 표를 사용하여 상기 메모리에 저장된 데이터의 복수의 군에서 데이터 복원 작업을 수행하도록 구성된 상기 제어기를 포함하되,
    상기 제1 표는 각각의 각자의 군과 연관된 이전의 오류율의 이전의 평가에 기초하는 데이터의 군의 현재의 맵핑을 포함하고; 그리고
    상기 제2 표는 각각의 각자의 군과 연관된 현재의 오류율의 현재의 평가에 기초하는 상기 데이터의 군의 새로운 맵핑을 포함하는, 장치.
  11. 제10항에 있어서,
    상기 제1 표 및 상기 제2 표 각각은 복수의 항목을 포함하고, 각각의 각자의 항목은 상기 데이터의 복수의 군 중 상이한 군에 대응하고; 그리고
    각각의 각자의 항목은,
    데이터의 각각의 군에 대한 논리 어드레스; 및
    데이터의 각각의 군에 대한 물리적 어드레스를 포함하는, 장치.
  12. 제10항에 있어서,
    상기 제2 표는 제1 복수의 항목 및 제2 복수의 항목을 포함하고, 상기 제1 복수의 항목 및 상기 제2 복수의 항목 중 각각의 각자의 항목은 상기 데이터의 복수의 군 중 상이한 군에 대응하고;
    상기 제1 복수의 항목 중 각각의 각자의 항목은,
    데이터의 각각의 군에 대한 논리 어드레스; 및
    데이터의 각각의 군이 상기 메모리 내 상이한 물리적 위치로 재지향되는지를 나타내는 값을 포함하고; 그리고
    상기 제2 복수의 항목 중 각각의 각자의 항목은,
    데이터의 각각의 군에 대한 논리 어드레스; 및
    데이터의 각각의 군에 대한 물리적 어드레스를 포함하는, 장치.
  13. 제10항 내지 제12항 중 어느 한 항에 있어서, 상기 제어기는 전력이 상기 데이터 복원 작업을 수행하는 동안 발생되는 전력 손실에 후속하여 복원될 때,
    상기 제2 표에 포함된 상기 데이터의 군의 상기 새로운 맵핑을 사용하여 상기 데이터의 각각의 각자의 군을 순차적으로 감지하기 위한 순차적 감지 작업을 수행하고;
    상기 데이터의 군 중 하나의 군을 감지하기 위한 감지 작업이 실패될 때, 상기 제1 표에 포함된 상기 데이터의 군의 상기 현재의 맵핑을 사용하여 상기 데이터의 군을 감지하기 위한 감지 작업을 수행하고; 그리고
    상기 제1 표의 상기 현재의 맵핑을 사용하여 상기 데이터의 군을 감지하기 위한 상기 감지 작업이 성공적일 때 상기 데이터 복원 작업을 재개하도록 구성되는, 장치.
  14. 메모리를 작동시키는 방법으로서,
    메모리에 저장된 데이터의 복수의 군 중 각각의 각자의 군과 연관된 오류율을 결정하는 단계;
    각각의 각자의 군과 연관된 결정된 오류율에 기초하여 상기 데이터의 군을 순위 매김하는 단계;
    순위 매김에 기초하는 상기 데이터의 군의 맵핑을 포함하는 제1 표를 생성하는 단계;
    상기 제1 표를 생성하는 것에 후속하여 데이터의 각각의 각자의 군과 연관된 상기 오류율을 결정하는 단계;
    상기 제1 표를 생성하는 것에 후속하여 결정된 각각의 각자의 군과 연관된 상기 오류율에 기초하여 상기 데이터의 군을 재순위 매김하는 단계;
    재순위 매김하는 것에 기초하는 상기 데이터의 군의 맵핑을 포함하는 제2 표를 생성하는 단계; 및
    상기 데이터의 군에서 데이터 복원 작업을,
    상기 제1 표의 상기 맵핑을 사용하여 데이터의 각각의 각자의 군을 감지하고; 그리고
    상기 제2 표의 상기 맵핑을 사용하여 상기 메모리에 대해 감지된 데이터를 프로그래밍함으로써 수행하는 단계를 포함하는, 메모리를 작동시키는 방법.
  15. 제14항에 있어서, 상기 제2 표를 생성하는 것은,
    데이터의 군이 상기 재순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있는지를 결정하는 것;
    상기 재순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 상기 데이터의 군이 또한 상기 순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있는지를 결정하는 것;
    또한 상기 재순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 없는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 상기 제2 표에서, 데이터의 군이 상기 제1 표에 맵핑되는 상기 메모리 내 물리적 위치와 상이한 상기 메모리 내 물리적 위치에 데이터의 군을 맵핑하는 것; 및
    또한 상기 순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 상기 제2 표에서, 데이터의 군이 상기 제1 표에 맵핑되는 상기 메모리 내 물리적 위치와 동일한 상기 메모리 내 물리적 위치에 데이터의 군을 맵핑하는 것을 포함하는, 메모리를 작동시키는 방법.
  16. 제15항에 있어서, 상기 제2 표를 생성하는 것은,
    상기 재순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 없는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 데이터의 군이 상기 순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있다고 결정하는 것;
    상기 순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 없는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 상기 제2 표에서, 데이터의 군이 상기 제1 표에 맵핑되는 상기 메모리 내 물리적 위치와 동일한 상기 메모리 내 물리적 위치에 데이터의 군을 맵핑하는 것; 및
    상기 순위 매김 시 가장 높게 순위 매겨진 복수의 군 중에 있는 것으로 결정된 데이터의 각각의 각자의 군에 대해, 상기 제2 표에서, 데이터의 군이 상기 제1 표에 맵핑되는 상기 메모리 내 물리적 위치와 상이한 상기 메모리 내 물리적 위치에 데이터의 군을 맵핑하는 것을 포함하는, 메모리를 작동시키는 방법.
  17. 제14항에 있어서, 상기 방법은 상기 데이터 복원 작업의 성능을 개시시킬 때 상기 메모리와 연관된 글로벌 위상 비트의 값을 인버팅(inverting)하여, 상기 글로벌 위상 비트의 인버팅된 값이 상기 데이터의 군과 연관된 위상 비트의 값과 일치되지 않는 단계를 포함하는, 메모리를 작동시키는 방법.
  18. 제17항에 있어서, 상기 데이터의 군에서 상기 데이터 복원 작업을 수행하는 것은,
    상기 데이터의 군과 연관된 상기 위상 비트의 상기 값에 기초하여 데이터의 각각의 각자의 군을 감지하도록 상기 제1 표의 상기 맵핑의 사용을 결정하는 것;
    상기 메모리에 대해 감지된 데이터의 프로그래밍을 개시시킬 때 상기 데이터의 군과 연관된 상기 위상 비트의 상기 값을 인버팅하는 것; 및
    상기 데이터의 군과 연관된 상기 위상 비트의 인버팅된 값에 기초하여 상기 메모리에 대해 상기 감지된 데이터를 프로그래밍하도록 상기 제2 표의 상기 맵핑의 사용을 결정하는 것을 포함하는, 메모리를 작동시키는 방법.
  19. 제17항에 있어서, 상기 방법은,
    상기 데이터 복원 작업을 수행하는 동안 전력 손실을 검출하는 단계;
    상기 전력 손실을 검출할 때, 상기 데이터 복원 작업이 가장 최근에 수행되는 상기 데이터의 군에 대한 논리 어드레스 및 글로벌 위상 비트의 값을 저장하는 단계; 및
    전력이 복원될 때,
    상기 데이터 복원 작업이 상기 글로벌 위상 비트의 값으로 가장 최근에 수행되는 상기 데이터의 군에 대한 상기 논리 어드레스 이하인 논리 어드레스를 가진 상기 데이터의 군과 연관된 상기 위상 비트의 값을 설정하고;
    상기 데이터 복원 작업이 상기 글로벌 위상 비트의 값으로 인버팅 값으로 가장 최근에 수행되는 상기 데이터의 군에 대한 상기 논리 어드레스 초과인 논리 어드레스를 가진 상기 데이터의 군과 연관된 상기 위상 비트의 값을 설정하고; 그리고
    상기 데이터 복원 작업을 재개하는 단계를 포함하는, 메모리를 작동시키는 방법.
  20. 제14항에 있어서, 상기 방법은,
    상기 데이터 복원 작업을 수행하는 것에 후속하여 데이터의 각각의 각자의 군과 연관된 상기 오류율을 결정하는 단계;
    상기 데이터 복원 작업을 수행하는 것에 후속하여 결정된 각각의 각자의 군과 연관된 상기 오류율에 기초하여 상기 데이터의 군의 추가의 재순위 매김을 수행하는 단계;
    상기 추가의 재순위 매김에 기초하여 상기 제1 표에서 상기 데이터의 군의 상기 맵핑을 업데이트하는 단계; 및
    추가의 데이터 복원 작업을 상기 데이터의 군에서,
    상기 제2 표의 상기 맵핑을 사용하여 데이터의 각각의 각자의 군을 감지하고; 그리고
    상기 제1 표의 업데이트된 맵핑을 사용하여 상기 메모리에 대해 감지된 데이터를 프로그래밍함으로써 수행하는 단계를 포함하는, 메모리를 작동시키는 방법.
KR1020207006441A 2017-08-07 2018-08-06 메모리 내 데이터 복원 작업의 수행 Active KR102407659B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/670,544 US10445195B2 (en) 2017-08-07 2017-08-07 Performing data restore operations in memory
US15/670,544 2017-08-07
PCT/US2018/045343 WO2019032439A1 (en) 2017-08-07 2018-08-06 REALIZATION OF DATA RESTORATION OPERATIONS IN MEMORY

Publications (2)

Publication Number Publication Date
KR20200028493A true KR20200028493A (ko) 2020-03-16
KR102407659B1 KR102407659B1 (ko) 2022-06-10

Family

ID=65230525

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207006441A Active KR102407659B1 (ko) 2017-08-07 2018-08-06 메모리 내 데이터 복원 작업의 수행

Country Status (5)

Country Link
US (3) US10445195B2 (ko)
EP (1) EP3665579A4 (ko)
KR (1) KR102407659B1 (ko)
CN (1) CN110998544A (ko)
WO (1) WO2019032439A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055167B2 (en) 2018-05-14 2021-07-06 Micron Technology, Inc. Channel-scope proximity disturb and defect remapping scheme for non-volatile memory
US10838831B2 (en) 2018-05-14 2020-11-17 Micron Technology, Inc. Die-scope proximity disturb and defect remapping scheme for non-volatile memory
US11048597B2 (en) 2018-05-14 2021-06-29 Micron Technology, Inc. Memory die remapping
US10810097B2 (en) 2018-11-07 2020-10-20 Micron Technology, Inc. Client-assisted phase-based media scrubbing
US11068359B2 (en) * 2019-06-26 2021-07-20 EMC IP Holding Company LLC Stream level uninterrupted restore operation using data probe
US10929311B2 (en) 2019-06-26 2021-02-23 EMC IP Holding Company LLC Stream level uninterrupted backup operation using data probe
US11334458B2 (en) * 2020-08-27 2022-05-17 Micron Technology, Inc. Completing memory repair operations interrupted by power loss
US12243606B2 (en) * 2020-12-31 2025-03-04 Ap Memory Technology Corporation Semiconductor device, memory system and method of controlling semiconductor device thereof
US11740899B2 (en) * 2021-08-31 2023-08-29 Micron Technology, Inc. In-memory associative processing system
US12561066B2 (en) * 2022-07-25 2026-02-24 Micron Technology, Inc. Data storage during power state transition of a memory system
CN115470049B (zh) * 2022-11-15 2023-02-28 浪潮电子信息产业股份有限公司 一种元数据修复方法、装置、电子设备及存储介质
US20240312509A1 (en) * 2023-03-14 2024-09-19 SK Hynix Inc. Buffer chip, semiconductor package including buffer chip and memory chip, and memory module
US12293085B2 (en) * 2023-06-20 2025-05-06 SanDisk Technologies, Inc. Data storage device and method for improving asynchronous independent plane read (AIPR) utilization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100039181A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 예비 영역을 가지는 반도체 메모리 장치
US20160147623A1 (en) * 2014-11-20 2016-05-26 Samsung Electronics Co., Ltd. Rank and page remapping logic in a volatile memory
US20170132125A1 (en) * 2015-11-06 2017-05-11 SK Hynix Inc. Selective data recycling in non-volatile memory

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
KR100457812B1 (ko) * 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US8019925B1 (en) * 2004-05-06 2011-09-13 Seagate Technology Llc Methods and structure for dynamically mapped mass storage device
US7916421B1 (en) 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8200922B2 (en) * 2008-12-17 2012-06-12 Netapp, Inc. Storage system snapshot assisted by SSD technology
US20100332894A1 (en) 2009-06-30 2010-12-30 Stephen Bowers Bit error threshold and remapping a memory device
US8589726B2 (en) * 2011-09-01 2013-11-19 Infinidat Ltd. System and method for uncovering data errors
US20140075093A1 (en) * 2012-09-12 2014-03-13 Infineon Technologies Ag Method and system for implicit or explicit online repair of memory
US9406403B2 (en) 2013-06-25 2016-08-02 Advanced Micro Devices, Inc. Spare memory external to protected memory
US9354994B2 (en) * 2014-02-18 2016-05-31 International Business Machines Corporation Preemptive relocation of failing data
WO2016003449A1 (en) * 2014-07-01 2016-01-07 Hewlett-Packard Development Company, L.P. Memory controller
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
KR102252378B1 (ko) * 2014-10-29 2021-05-14 삼성전자주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9983808B2 (en) 2014-12-10 2018-05-29 California Institute Of Technology NAND flash reliability with rank modulation
KR20160070920A (ko) * 2014-12-10 2016-06-21 에스케이하이닉스 주식회사 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US20160350010A1 (en) * 2015-05-31 2016-12-01 Vmware, Inc. Providing block size compatibility with a storage filter
US9875053B2 (en) * 2015-06-05 2018-01-23 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US20180189144A1 (en) * 2015-06-16 2018-07-05 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Apparatus and method for memory storage to protect data-loss after power loss
US10552335B2 (en) * 2015-09-25 2020-02-04 Beijing Lenovo Software Ltd. Method and electronic device for a mapping table in a solid-state memory
US9983963B2 (en) * 2015-11-09 2018-05-29 Alibaba Group Holding Limited System and method for exploiting hard disk drive capacity reserve and extending operating life thereof
TWI551991B (zh) * 2015-11-20 2016-10-01 群聯電子股份有限公司 記憶體管理方法與系統及其記憶體儲存裝置
TWI591482B (zh) * 2016-01-30 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
US20170300422A1 (en) * 2016-04-14 2017-10-19 Micron Technology, Inc. Memory device with direct read access
US10540102B2 (en) * 2016-09-30 2020-01-21 Amazon Technologies, Inc. Physical media aware spacially coupled journaling and replay
KR102790818B1 (ko) * 2016-11-24 2025-04-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10359955B2 (en) * 2017-02-23 2019-07-23 Western Digital Technologies, Inc. Data storage device configured to perform a non-blocking control update operation
KR102319189B1 (ko) * 2017-06-21 2021-10-28 삼성전자주식회사 스토리지 장치, 이를 포함하는 스토리지 시스템 및 스토리지 장치의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100039181A (ko) * 2008-10-07 2010-04-15 삼성전자주식회사 예비 영역을 가지는 반도체 메모리 장치
US20160147623A1 (en) * 2014-11-20 2016-05-26 Samsung Electronics Co., Ltd. Rank and page remapping logic in a volatile memory
US20170132125A1 (en) * 2015-11-06 2017-05-11 SK Hynix Inc. Selective data recycling in non-volatile memory

Also Published As

Publication number Publication date
US20190278670A1 (en) 2019-09-12
CN110998544A (zh) 2020-04-10
EP3665579A1 (en) 2020-06-17
EP3665579A4 (en) 2021-04-21
US20210271573A1 (en) 2021-09-02
WO2019032439A1 (en) 2019-02-14
US10445195B2 (en) 2019-10-15
US20190042375A1 (en) 2019-02-07
US11599430B2 (en) 2023-03-07
KR102407659B1 (ko) 2022-06-10
US11036593B2 (en) 2021-06-15

Similar Documents

Publication Publication Date Title
KR102407659B1 (ko) 메모리 내 데이터 복원 작업의 수행
CN114730598B (zh) 利用分区命名空间简缩ssd中的逻辑到物理表指针
US10002042B2 (en) Systems and methods of detecting errors during read operations and skipping word line portions
US10475518B2 (en) Memory system, memory system control method, and program
US20160299812A1 (en) Device-Specific Variable Error Correction
US20180039535A1 (en) Proactive corrective actions in memory based on a probabilistic data structure
EP2483785A2 (en) Stripe-based memory operation
WO2015034901A1 (en) Method and system for migrating data between flash memory devices
US20160299844A1 (en) Mapping Logical Groups of Data to Physical Locations In Memory
US11928356B2 (en) Source address memory managment
US11715541B2 (en) Workload adaptive scans for memory sub-systems
US12468590B2 (en) Adaptive wear leveling for endurance compensation
US11048580B2 (en) Data duplication in a non-volatile memory
TWI660361B (zh) 用於多維記憶體之選擇性錯誤率資訊
US20240419543A1 (en) Proximity based parity data management
CN113126899A (zh) 完全多平面操作启用
US20200264953A1 (en) Error correction in data storage devices
US12164779B2 (en) Deck based media management operations in memory devices
US20260024594A1 (en) Dynamic read disturb handling using selective scanning
US20260064525A1 (en) Host managed data recovery operations
CN121002486A (zh) 动态可配置低密度奇偶校验码
CN120199311A (zh) 存储器维护操作

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20200304

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20211125

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20220427

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220607

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220608

End annual number: 3

Start annual number: 1

PG1601 Publication of registration