KR20190058714A - 메모리 관리 - Google Patents

메모리 관리 Download PDF

Info

Publication number
KR20190058714A
KR20190058714A KR1020197014722A KR20197014722A KR20190058714A KR 20190058714 A KR20190058714 A KR 20190058714A KR 1020197014722 A KR1020197014722 A KR 1020197014722A KR 20197014722 A KR20197014722 A KR 20197014722A KR 20190058714 A KR20190058714 A KR 20190058714A
Authority
KR
South Korea
Prior art keywords
memory array
memory
management unit
data
write
Prior art date
Application number
KR1020197014722A
Other languages
English (en)
Other versions
KR102240261B1 (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 KR20190058714A publication Critical patent/KR20190058714A/ko
Application granted granted Critical
Publication of KR102240261B1 publication Critical patent/KR102240261B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시내용은 하이브리드 메모리 관리에 관련된 장치 및 방법을 포함한다. 예시적인 장치는 제1 메모리 어레이, 다수의 제2 메모리 어레이, 및 기록 동작을 실행하도록 구성된 제1 메모리 어레이 및 다수의 제2 메모리 어레이에 결합된 제어기를 포함할 수 있으며, 여기에서 기록 동작의 실행은 기록 커서에 의해 표시된 위치에서 시작하는 제1 메모리 어레이로 데이터를 기록하며, 기록 동작의 실행을 완료할 때 제1 메모리 어레이에서의 업데이트된 위치에 기록 커서를 위치시키고, 여기에서 업데이트된 위치는 제1 메모리 어레이에서 다음 이용 가능한 위치이다.

Description

메모리 관리
본 개시내용은 일반적으로 메모리 디바이스에 관한 것이며, 보다 특히, 메모리 관리를 위한 장치 및 방법에 관한 것이다.
메모리 디바이스는 통상적으로 컴퓨터 또는 다른 전자 디바이스에서 내부의, 반도체, 집적 회로로서 제공된다. 휘발성 및 비-휘발성 메모리를 포함하는 많은 상이한 유형의 메모리가 있다. 휘발성 메모리는 그의 데이터를 유지하기 위해 전력을 요구할 수 있으며 다른 것 중에서 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(dynamic random access memory: DRAM), 및 동기식 동적 랜덤 액세스 메모리(synchronous dynamic random access memory: SDRAM)를 포함한다. 비-휘발성 메모리는 동력을 공급받지 않을 때 저장된 데이터를 유지함으로써 영속성 데이터를 제공할 수 있으며 다른 것 중에서, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적으로 삭제 가능한 프로그램 가능 ROM(Electrically Erasable Programmable ROM: EEPROM), 삭제 가능한 프로그램 가능 ROM(Erasable Programmable ROM: EPROM), 및 상 변화 랜덤 액세스 메모리(phase change random access memory: PCRAM), 저항성 랜덤 액세스 메모리(resistive random access memory: RRAM), 및 자기저항성 랜덤 액세스 메모리(magnetoresistive random access memory: MRAM)와 같은 저항성 가변 메모리를 포함할 수 있다.
메모리는 또한 광범위한 전자 애플리케이션을 위한 휘발성 및 비-휘발성 데이터 저장 장치로서 이용된다. 비-휘발성 메모리는 예를 들면, 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대 전화, MP3 플레이어와 같은 휴대용 음악 플레이어, 무비 플레이어, 및 다른 전자 디바이스에서 사용될 수 있다. 메모리 셀은 어레이로 배열될 수 있으며, 어레이는 메모리 디바이스에서 사용된다.
도 1은 본 개시내용의 다수의 실시예에 따른 메모리 디바이스를 포함하는 컴퓨팅 시스템의 형태에서의 장치의 블록도이다.
도 2는 본 개시내용의 다수의 실시예에 따른 제어기의 블록도이다.
도 3은 본 개시내용의 다수의 실시예에 따른 메모리 디바이스 상에서 수행된 다수의 동작을 예시한 기능도이다.
도 4A 및 도 4B는 본 개시내용의 다수의 실시예에 따른 제1 관리 유닛 및 제2 관리 유닛을 예시한다.
도 5A 및 도 5B는 본 개시내용의 다수의 실시예에 따른 다수의 관리 유닛을 예시한다.
본 개시내용은 하이브리드 메모리 관리에 관련된 장치 및 방법을 포함한다. 예시적인 장치는 제1 메모리 어레이, 다수의 제2 메모리 어레이, 및 기록 동작을 실행하도록 구성된 제1 메모리 어레이 및 다수의 제2 메모리 어레이에 결합된 제어기를 포함할 수 있으며, 상기 기록 동작의 실행은 기록 커서(write cursor)에 의해 표시된 위치에서 시작하는 제1 메모리 어레이로 데이터를 기록하며, 기록 동작의 실행을 완료할 때 제1 메모리 어레이에서 업데이트된 위치에 기록 커서를 위치시키고, 여기에서 업데이트된 위치는 제1 메모리 어레이에서 다음 이용 가능한 위치이다.
다수의 실시예에서, 기록 동작은 제1 메모리 어레이 및 다수의 제2 메모리 어레이를 포함하는 메모리 디바이스 상에서 실행될 수 있다. 메모리 디바이스는 하이브리드 메모리 디바이스일 수 있으며, 여기에서 제1 메모리 어레이는 저장 클래스 메모리일 수 있고 다수의 제2 메모리 어레이는 NAND 플래시 메모리와 같은, 상이한 유형의 메모리일 수 있다. 기록 동작은 제1 메모리 어레이 및/또는 다수의 제2 메모리 어레이로 데이터를 기록하는 것을 포함할 수 있다. 데이터는 제1 메모리 어레이에 저장된 데이터의 양이 임계 량 미만인 것에 응답하여 제1 메모리 어레이로 기록될 수 있다.
다수의 실시예에서, 제1 메모리 어레이 상에서 실행된 기록 동작은 기록 동작이 시작할 위치를 나타내는 기록 커서에 기초하여 기록될 수 있다. 기록 커서의 위치는 기록 어레이에서 다수의 관리 유닛의 상태에 기초할 수 있으며, 여기에서 각각의 관리 유닛은 유효, 무효, 자유, 또는 사용 안 함의 상태를 가질 수 있다. 기록 커서의 위치는 각각의 기록 동작 후 업데이트되며 자유 상태를 가진 다음 관리 유닛에 위치될 수 있다. 예를 들면, 관리 유닛은 물리적 위치에 기초하여 순차적으로 어드레스를 할당받을 수 있으며 관리 유닛은 관리 유닛의 상태를 결정하고 업데이트된 위치에 기록 커서를 위치시키기 위해 어드레스에 기초하여 순차적으로 반복된다.
다수의 실시예에서, 판독 동작은 제1 메모리 어레이에서 데이터에 대한 관리 유닛 패턴 방해 레벨 및 원시 비트 에러율(raw bit error rate: RBER)을 결정하는 것을 포함할 수 있다. 관리 유닛 패턴 방해 레벨이 임계치를 초과하거나 또는 원시 비트 에러율(RBER)이 임계치를 초과할 때, 이동 동작이 제1 메모리 어레이에서의 새로운 위치로 데이터를 이동시키기 위해 수행될 수 있다. 데이터는 에러 정정(ECC) 동작이 그의 원래 위치로부터 데이터를 판독할 때 에러를 정정할 수 없을 수 있기 때문에 RBER이 임계치를 초과할 때 새로운 위치로 이동될 수 있다. 데이터는 이웃하는 관리 유닛이 적어도 특정한 횟수로 프로그램된 위치로부터 데이터를 판독할 때 에러가 발생할 가능성이 더 높을 수 있기 때문에 관리 유닛 패턴 방해 레벨이 임계치를 초과할 때 새로운 위치로 이동될 수 있다.
본 개시내용의 다음의 상세한 설명에서, 참조가 그 일부를 형성하며, 예시로서 본 개시내용의 하나 이상의 실시예가 어떻게 실시될 수 있는지가 도시되는 수반하는 도면에 대해 참조가 이루어진다. 이들 실시예는 이 기술분야의 통상의 기술자가 본 개시내용의 실시예를 실시할 수 있게 하기 위해 충분히 상세하게 설명되며, 다른 실시예가 이용될 수 있고, 프로세스, 전기적, 및 구조적 변화가 본 개시내용의 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
여기에서 사용된 바와 같이, 특히 도면에서의 참조 번호에 대하여, "X", "Y", "N", "M" 등과 같은 지정자는 그렇게 지정된 다수의 특정한 특징이 포함될 수 있음을 나타낸다. 여기에서 사용된 용어는 단지 특정한 실시예를 설명할 목적을 위한 것이며, 제한적이도록 의도되지 않는다는 것이 또한 이해될 것이다. 여기에서 사용된 바와 같이, 단수형 형태는, 맥락이 달리 명확하게 구술하지 않는다면, 단수형 및 복수형 지시 대상 양쪽 모두를 포함할 수 있다. 또한, "다수의", "적어도 하나", 및 "하나 이상"(예로서, 다수의 메모리 어레이)은 하나 이상의 메모리 어레이를 나타낼 수 있는 반면, "복수의"는 하나 이상의 이러한 것을 나타내도록 의도된다. 더욱이, 단어 "~ 수 있다" 및 "~할 것이다"는 강제적 의미(즉, ~해야 한다)가 아닌, 관대한 의미(즉, ~할 가능성을 가진, ~할 수 있는)로 본 출원 전체에 걸쳐 사용된다. 용어 "포함하다" 및 그의 파생어는 "이에 제한되지 않지만, ~를 포함하는"을 의미한다. 용어 "~에 결합된" 및 "결합한"은 물리적으로 또는 맥락에 대해 적절한 경우 명령 및/또는 데이터로의 액세스 및 그의 움직임(송신)을 위해 직접 또는 간접적으로 연결되는 것으로 의도된다. 용어 "데이터" 및 "데이터 값"은 여기에서 상호 교환 가능하게 사용되며 맥락에 적절한 경우, 동일한 의미를 가질 수 있다.
여기에서의 도면은 첫 번째 숫자 또는 숫자들이 도면 번호에 대응하며 나머지 숫자가 도면에서 요소 또는 구성요소를 식별하는 넘버링 관례를 따른다. 상이한 도면 사이에서의 유사한 요소 또는 구성요소는 유사한 숫자의 사용에 의해 식별될 수 있다. 예를 들면, 108은 도 1에서 요소 "08"을 참조할 수 있으며, 유사한 요소가 도 2에서 208로서 참조될 수 있다. 이해될 바와 같이, 여기에서의 다양한 실시예에서 도시된 요소는 본 개시내용의 다수의 부가적인 실시예를 제공하기 위해 부가되고, 교환되며, 및/또는 제거될 수 있다. 또한, 도면에서 제공된 요소의 비율 및/또는 상대적 스케일은 본 개시내용의 특정한 실시예를 예시하도록 의도되며 제한적인 의미로 취해져서는 안된다.
도 1은 본 개시내용의 다수의 실시예에 따른 메모리 디바이스(106)를 포함하는 컴퓨팅 시스템(100)의 형태에서의 장치의 블록도이다. 여기에서 사용된 바와 같이, "장치"는, 이에 제한되지 않지만, 예를 들면, 회로 또는 회로부, 다이 또는 다이들, 모듈 또는 모듈들, 디바이스 또는 디바이스들, 또는 시스템 또는 시스템들과 같은, 다양한 구조 중 임의의 것 또는 구조의 조합을 나타낼 수 있다. 다수의 실시예에서, 컴퓨팅 시스템(100)은 다수의 메모리 디바이스를 포함할 수 있다. 도 1에 예시된 실시예에서, 메모리 디바이스(106)는 제1 메모리 유형(예로서, 제1 메모리 어레이(110)) 및 제2 메모리 유형(예로서, 다수의 제2 메모리 어레이(112-1,..., 112-N))을 포함할 수 있다. 메모리 디바이스(106)는 하이브리드 메모리 디바이스일 수 있으며, 여기에서 메모리 디바이스(106)는 다수의 제2 메모리 어레이(112-1,..., 112-N)와 상이한 유형의 메모리인 제1 메모리 어레이(110)를 포함한다. 제1 메모리 어레이(110)는 저장 클래스 메모리(SCM)일 수 있으며, 이것은 다수의 제2 메모리 어레이(112-1,..., 112-N)보다 빠른 액세스 시간을 갖기 때문에 메모리 디바이스(106)에 대한 메인 메모리로서 동작하는 비-휘발성 메모리일 수 있다. 제1 메모리 어레이(110)는 다른 유형의 비-휘발성 메모리 중에서, 상 변화 메모리(PCM), 스핀 토크 전달(SST) 메모리, 강유전성(FRAM), 및/또는 저항성(RRAM)일 수 있다. 다수의 제2 메모리 어레이(112-1,..., 112-N)는 메모리 디바이스(106)에 대한 데이터 저장소(예로서, 저장 메모리)로서 동작할 수 있으며, 다른 유형의 메모리 중에서, NAND 플래시 메모리일 수 있다. 예를 들면, 다수의 제2 메모리 어레이(112-1,..., 112-N)는 다른 것 중에서, RAM, ROM, DRAM, SDRAM, PCRAM, RRAM, 및 플래시 메모리일 수 있다.
도 1에 예시된 바와 같이, 호스트(102)는 인터페이스(104)를 통해 메모리 디바이스(106)에 결합될 수 있다. 호스트(104) 및 메모리 디바이스(106)는 인터페이스(104) 상에서 통신할 수 있다(예로서, 명령 및/또는 데이터를 전송할 수 있다). 호스트(102)는 다른 호스트 시스템 중에서, 랩탑 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 디바이스, 이동 전화, PDA, 메모리 카드 판독기, 인터페이스 허브일 수 있으며, 메모리 액세스 디바이스, 예로서 프로세서를 포함할 수 있다. 이 기술분야에서의 통상의 기술자는 "프로세서"가 병렬 프로세싱 시스템, 다수의 코프로세서 등과 같은, 하나 이상의 프로세서를 의도할 수 있다는 것을 이해할 것이다.
메모리 디바이스(106)는 호스트(102) 및 제1 메모리 어레이(110) 및 다수의 제2 메모리 어레이(112-1,..., 112-N)와 통신하기 위해 제어기(108)를 포함한다. 제어기(108)는 제1 메모리 어레이(110) 및 다수의 제2 메모리 어레이(112-1,..., 112-N) 상에서 동작을 수행하기 위해 명령을 전송할 수 있다. 제어기(108)는 다른 동작 중에서, 데이터를 판독하고, 기록하고, 이동시키며, 및/또는 삭제하기 위해 제1 메모리 어레이(110) 및 다수의 제2 메모리 어레이(112-1,..., 112-N)와 통신할 수 있다. 제어기(108)는 메모리 디바이스(106) 상에서 다수의 데이터 흐름을 제어할 수 있다. 예를 들면, 제어기(108)는 제1 메모리 어레이(110)로 데이터를 기록하는 것, 다수의 제2 메모리 어레이(112-1,..., 112-N)로 데이터를 기록하는 것, 제1 메모리 어레이(110)로부터 데이터를 판독하는 것, 다수의 제2 메모리 어레이(112-1,..., 112-N)로부터 데이터를 판독하는 것, 제1 메모리 어레이(110)로부터 다수의 제2 메모리 어레이(112-1,..., 112-N)로 데이터를 이동시키는 것, 및 다수의 제2 메모리 어레이(112-1,..., 112-N)로부터 제1 메모리 어레이(110)로 데이터를 이동시키는 것을 제어할 수 있다.
호스트(102)는 메모리 디바이스(106)와 통신하기 위해 호스트 제어기를 포함한다. 호스트 제어기는 인터페이스(104)를 통해 메모리 디바이스(106)로 명령을 전송할 수 있다. 호스트 제어기는 다른 동작 중에서, 데이터를 판독하고, 기록하며, 삭제하기 위해 메모리 디바이스(106) 및/또는 메모리 디바이스(106) 상에서의 제어기(108)와 통신할 수 있다.
메모리 디바이스(106) 상에서의 제어기(108) 및/또는 호스트(102) 상에서의 호스트 제어기는 제어 회로(예로서, 하드웨어, 펌웨어, 및/또는 소프트웨어)를 포함할 수 있다. 하나 이상의 실시예에서, 메모리 디바이스(106) 상에서의 제어기(108) 및/또는 호스트(102) 상에서의 호스트 제어기는 물리 인터페이스를 포함하는 인쇄 회로 보드에 결합된 애플리케이션 특정 집적 회로(ASIC)일 수 있는 제어 회로를 포함할 수 있다. 또한, 메모리 디바이스(106) 및 호스트(102)는 휘발성 및/또는 비-휘발성 메모리의 버퍼 및 다수의 레지스터를 포함할 수 있다.
도 2는 본 개시내용의 다수의 실시예에 따른 제어기(208)의 블록도이다. 제어기(208)는 호스트 또는 메모리 어레이로 및/또는 그로부터 데이터를 판독하고, 기록하고, 이동시키며, 및/또는 삭제하기 위해 호스트(예로서, 도 1에서 호스트(102)) 및/또는 메모리 어레이(예로서, 도 1에서 제1 메모리 어레이(110) 및/또는 다수의 제2 메모리 어레이(112-1,..., 112-N))와 통신할 수 있다. 제어기(208)는 프론트 엔드 관리기(220), 데이터 및 미디어 관리기(230), 및 백 엔드 관리기(240)를 포함한다.
프론트 엔드 관리기(220)는 호스트로부터 명령을 수신하고 이들 명령을 해석할 수 있다. 프론트 엔드 관리기(220)는 명령과 연관된 데이터의 논리 어드레스의 변환을 수행할 수 있다.
데이터 및 미디어 관리기(230)는 호스트로부터 수신된 명령을 추가로 프로세싱할 수 있다. 데이터 및 미디어 관리기(230)는 데이터 관리기 스케줄러(232), 미디어 변환 층(MTL) 서비스(234), 및 비디어 변환 층(MTL) 관리기(236)를 포함할 수 있다. 데이터 관리기 스케줄러(232)는 호스트로부터 수신된 명령의 각각이 수행될 때를 결정할 수 있다. MTL 서비스(234)는 MTL 관리기(236)에 기능을 제공하기 위해 다수의 애플리케이션 프로그래밍 인터페이스(API) 지시의 세트를 포함할 수 있다. MTL 서비스(234)는 다른 서비스 중에서, 논리 어드레스 대 물리 어드레스 변환을 수행하고, 메모리 어레이로부터 데이터를 판독하며, 및/또는 데이터를 메모리 어레이로 기록하기 위해, API 지시를 포함할 수 있다.
MTL 관리기(236)는 메모리 어레이 상에서 동작을 수행하기 위해 테이블 관리기(238-1), 판독 관리기(238-2), 로드 관리기(238-3), 기록 관리기(238-4), 플러시 관리기(flush manager)(238-5) 및 제거 관리기(238-6)를 포함할 수 있다.
테이블 관리기(238-1)는 메모리 어레이에 저장된 데이터에 대한 논리 어드레스 대 물리 어드레스 매핑을 제공할 수 있다. 테이블 관리기(238-1)에 의해 관리된 정보는 메모리 어레이에 저장될 수 있다. 테이블 관리기(238-1)는 데이터의 위치를 찾기 위해 메모리 어레이에 저장된 논리 대 물리 테이블을 생성하고 저장할 수 있다. 논리 대 물리 테이블은 데이터가 제1 유형의 메모리 및/또는 제2 유형의 메모리 어레이에 저장되는지를 나타내는 비트를 논리 어드레스 대 물리 어드레스 매핑에 포함할 수 있다. 테이블 관리기(238-1)는 또한 메모리 어레이에서 데이터의 위치를 찾기 위해 논리 대 물리 포인터를 생성하고 이를 저장할 수 있다.
판독 관리기(238-2)는 메모리 어레이에서 데이터의 위치를 찾고 판독 명령과 연관된 데이터의 호스트로의 전달을 야기함으로써 판독 명령을 실행할 수 있다. 판독 관리기(238-2)는 또한 제2 유형의 메모리 어레이로부터 판독된 데이터가 제자리에 남아있어야 하는지 및/또는 메모리 디바이스에서 제1 유형의 메모리 어레이로 이동되어야 하는지를 결정할 수 있다. 판독 관리기(238-2)가 데이터가 제1 유형의 메모리 어레이로부터 제2 유형의 메모리 어레이로 이동되어야 한다고 결정하면, 판독 관리기(238-2)는 이러한 동작을 수행하도록 로드 관리기(238-3)에 통지한다.
로드 관리기(238-4)는 제2 유형의 메모리 어레이(예로서, NAND)로부터 제1 유형의 메모리 어레이(예로서, SCM)로 데이터를 이동시키는 것을 실행할 수 있다. 로드 관리기(238-4)는 데이터를 제1 유형의 메모리 어레이로 이동시키며 제2 유형의 메모리 어레이에서 데이터의 원래 버전을 무효화할 수 있다.
기록 관리기(238-4)는 기록 명령과 연관된 데이터를 제1 유형의 메모리 어레이 및/또는 제2 유형의 메모리 어레이로 라우팅함으로써 기록 명령을 실행할 수 있다. 기록 관리기(238-4)는 다수의 기준에 기초하여 제1 유형의 메모리 어레이, 제2 유형의 메모리 어레이, 또는 양쪽 모두로 데이터를 기록할지를 결정할 수 있다. 다수의 기준은 다른 기준 중에서, 기록되는 데이터의 크기, 메모리 어레이에서 이용 가능한 공간의 양, 및/또는 데이터가 메모리 어레이로 기록되는 빈도를 포함할 수 있다.
플러시 관리기(238-5)는 제1 유형의 메모리 어레이(예로서, SCM)로부터 제2 유형의 메모리 어레이(예로서, NAND)로 데이터를 이동시키는 것을 실행할 수 있다. 플러시 관리기(238-5)는 다수의 기준에 기초하여 데이터를 이동시킬 수 있다. 기준은, 예를 들면, 제1 유형의 메모리 어레이가 용량 임계치에 도달하였다는 것일 수 있다. 플러시 관리기(238-5)는 데이터를 제2 유형의 메모리 어레이를 이동시키며 제1 유형의 메모리 어레이에서 데이터의 원래 버전을 무효화시킬 수 있다.
제거 관리기(238-6)는 제1 유형의 메모리 어레이(예로서, SCM)에서의 제1 위치로부터 제1 유형의 메모리 어레이에서의 제2 위치로 데이터를 이동시키는 것을 실행할 수 있다. 제거 관리기(238-6)는 제1 유형의 메모리 어레이에서의 특정한 물리적 위치가 다른 물리적 위치보다 더 자주 기록되지 않도록 웨어 레벨링(wear leveling) 동작으로서 데이터를 이동시킬 수 있다. 제거 관리기(238-6)는 무효 상태를 가진 각각의 관리 유닛 상에서 관리 유닛의 각각의 비트를 특정한 논리 상태로 기록하는 것을 실행할 수 있다. 다수의 실시예에서, 제거 관리기(238-6)는 또 다른 논리 상태보다 많은 전력을 사용하고/하거나 더 높은 대기 시간을 가진 논리 상태로 관리 유닛의 각각의 비트를 프로그램하는 것을 포함할 수 있으며, 따라서 전경 동작(foreground operation)(예로서, 예를 들면 기록 동작)이 실행될 때, 전경 동작은 또 다른 논리 상태보다 많은 전력을 사용하고/하거나 더 높은 대기 시간을 가진 논리 상태로 메모리 셀들을 프로그램할 필요가 없다.
도 3은 본 개시내용의 다수의 실시예에 따른 메모리 디바이스 상에서 수행된 다수의 동작(350)을 예시한 기능도이다. 기록 동작(352)은 메모리 디바이스 상에서 실행될 수 있으며 메모리 디바이스 상에서 제1 메모리 어레이 및/또는 다수의 제2 메모리 어레이로 데이터를 기록하는 것을 포함할 수 있다. 기록 동작(352)은 제1 메모리 어레이 상에서 이용 가능한 자유 공간의 양에 기초하여 데이터를 제1 메모리 어레이로 기록하는 것을 포함할 수 있다. 제1 메모리 어레이 상에서 이용 가능한 자유 공간이 충분히 있다면, 기록 동작은 데이터를 제1 메모리 어레이 및 다수의 제2 메모리 어레이로 기록한다. 제1 메모리 어레이 상에서 이용 가능한 자유 공간이 충분하지 않다면, 기록 동작(352)은 데이터를 단지 다수의 제2 메모리 어레이로만 기록한다.
다수의 실시예에서, 기록 동작(352)은 기록 커서의 위치에 기초하여 데이터를 기록하는 것을 포함할 수 있다. 기록 커서는 기록 동작이 시작할 곳을 나타낼 수 있다. 기록 커서는 각각의 기록 동작 후 다음 자유 관리 유닛이 위치되는 메모리 어레이에서의 새로운 위치로 업데이트될 수 있다. 기록 동작(352)은 전경 동작일 수 있으며, 여기에서 전경 동작은 호스트로부터 요청을 수신할 때 수행된다. 기록 동작(352)은 예를 들면, 도 2에서 로드 관리기(238-3) 및/또는 플러시 관리기(238-5)와 같은, 데이터 관리기에 의해 개시되는 배경 동작일 수 있다.
제거 동작(356)은 메모리 디바이스 상에서 실행될 수 있으며 관리 유닛의 각각의 비트를 특정한 논리 상태로 기록하는 것을 포함할 수 있다. 제거 동작(356)은 무효 상태를 가진 각각의 관리 유닛 상에서 수행될 수 있다. 제거 동작(356)은 배경 동작일 수 있으며, 여기에서 배경 동작은, 전경 동작과 같은, 어떤 다른 동작도 수행되지 않는 동안 수행된다. 예를 들면, 배경 동작은 전경 동작과 같은, 어떤 다른 동작도 배경 동작이 수행되는 특정한 영역(예로서, 블록, 파티션, 메모리 디바이스 등)에서 수행되지 않은 동안 메모리 디바이스의 특정한 영역에서 수행될 수 있다. 전경 동작과 같은, 또 다른 동작은 배경 동작이 수행되는 동안 배경 동작이 수행되는 특정한 영역 외의 다른 영역(예로서, 또 다른 블록, 또 다른 파티션, 및/또는 또 다른 디바이스)에서 수행될 수 있다. 전경 동작은 호스트가 메모리 디바이스가 동작을 수행하도록 요청할 때 배경 문제가 성능 또는 메모리 디바이스의 대기 시간을 감소시키지 않도록 배경 동작에 대해 우선권을 가질 수 있다. 다수의 실시예에서, 제거 동작(356)은 또 다른 논리 상태보다 더 많은 전력을 사용하고/하거나 더 높은 대기 시간을 갖는 논리 상태로 관리 유닛의 각각의 비트를 프로그램하는 것을 포함할 수 있다. 제거 동작(356)은 배경 동작일 수 있으므로, 또 다른 논리 상태보다 더 많은 전력을 사용하고/하거나 더 높은 대기 시간을 갖는 논리 상태로 메모리 셀을 프로그램하는 것은 호스트의 관점에서 메모리의 디바이스의 성능에 영향을 주지 않는다. 제거 동작(356) 후, 제거된 관리 유닛의 상태는 자유일 수 있다. 제거된 관리 유닛은 그 후 제거 동작(356) 동안 메모리 셀이 프로그램된 특정한 논리 상태로부터 변경될 필요가 있는 메모리 셀만을 프로그램함으로써 프로그램될 수 있다. 예를 들면, 제거 동작(356)이 관리 유닛의 각각의 비트를 논리 상태 0으로 프로그램하면, 기록 동작은 단지 논리 상태 1에 있도록 요구되는 메모리 셀만을 프로그램할 필요가 있다. 제거 동작(356)이 관리 유닛의 각각의 비트를 논리 상태 1로 프로그램하면, 기록 동작은 단지 논리 상태 0에 있도록 요구되는 메모리 셀만을 프로그램할 필요가 있다.
판독 동작(354)은 메모리 디바이스 상에서 실행될 수 있으며 데이터에 대한 관리 유닛 패턴 방해 레벨 및/또는 원시 비트 에러율(RBER)을 결정하는 것을 포함할 수 있다. 판독 동작(354)은 또한 예를 들면, 2, 3, 또는 4비트를 포함하도록 프로그램된 메모리 셀과 같은, 메모리 어레이에서의 메모리 셀의 유형 및 메모리 어레이의 유형에 기초하여 판독 신호 임계치를 설정하는 것을 포함할 수 있다. 관리 유닛 패턴 방해 레벨은 관리 유닛이 프로그램되는 이웃하는 관리 유닛에 의해 얼마나 많이 방해를 받았는지와 연관될 수 있다. 일단 관리 유닛 패턴 방해 레벨이 임계치에 도달하였다면, 이동 동작(358)은 메모리 어레이에서 새로운 위치로 데이터를 이동시키기 위해 구현될 수 있다. 이동 동작(358)은 또한 메모리 유닛에 대한 RBER이 임계치를 초과할 때(예로서, 에러 정정(ECC) 동작에 의해 정정될 수 있는 것보다 많은 에러가 있는) 구현될 수 있다. 판독 동작(354)은 RBER 및 관리 유닛 패턴 방해 레벨이 그들 각각의 임계치 미만일 때 메모리 디바이스로부터 호스트로 데이터를 출력하는 것을 포함할 수 있다. 이동 동작(358)은 또한 기록 동작이 적어도 임계 횟수로 이웃하는 관리 유닛 상에서 수행되었을 때 데이터를 새로운 위치로 이동시키기 위해 구현될 수 있다. 이동 동작(358)은 배경 동작일 수 있으며, 여기에서 배경 동작은 전경 동작과 같은, 어떤 다른 동작도 배경 동작이 수행되는 특정한 영역 상에서 수행되지 않는 동안 수행된다.
도 4A 및 도 4B는 본 개시내용의 다수의 실시예에 따른 제1 관리 유닛 및 제2 관리 유닛을 예시한다. 도 4A는 호스트 데이터(462), 메타데이터(464), 및 에러 정정(ECC) 데이터(466)를 포함하는 제1 관리 유닛(460)(예로서, 큰 관리 유닛)을 예시한다. 제1 관리 유닛(460)은 호스트로부터 수신된 데이터에 대해 논리적 상관관계를 가진 호스트 데이터(462)를 포함한다. 도 4B는 MTL 메타데이터(462), 메타데이터(464), 및 에러 정정(ECC) 데이터(466)를 포함하는 제2 관리 유닛(461)(예로서, 작은 관리 유닛)을 예시한다. MTL 메타데이터(462)는 메모리 디바이스에 저장된 데이터(예로서, 호스트 데이터(462))에 대한 논리 대 물리 테이블을 포함할 수 있다.
관리 유닛은 동작 동안 함께 관리되는 어레이에서 메모리 셀의 그룹에 저장된 특정한 양의 데이터이다. 관리 유닛의 크기는 관리 유닛에 저장된 데이터의 유형 및/또는 관리 유닛 상에서 수행된 동작의 유형에 기초하여 달라질 수 있다. 예를 들면, 제1 관리 유닛(460)(예로서, 큰 관리 유닛)은 4KB의 데이터를 포함할 수 있으며 호스트로부터 데이터를 저장할 수 있지만, 제2 관리 유닛(461)(예로서, 작은 관리 유닛)은 64B의 데이터를 포함할 수 있으며 제1 관리 유닛에서의 데이터와 연관된 논리 대 물리 테이블을 저장할 수 있다. 각각의 관리 유닛은 그와 연관된 상태를 가질 수 있다. 예를 들면, 각각의 관리 유닛은 유효, 무효, 자유, 또는 사용 안 함의 상태를 가질 수 있다. 유효 관리 유닛은 가장 최근 버전 데이터를 포함한다. 무효 관리 유닛은 데이터의 가장 최근 버전이 아닌 데이터를 포함한다. "사용 안 함" 관리 유닛은 관리 유닛이 더 이상 데이터를 신뢰 가능하게 저장할 수 없는 것과 같은, 특정한 이유로 데이터를 저장하기 위해 사용되지 않는다. 자유 관리 유닛은 리셋 상태에 있으며 프로그램될(예로서, 기록될) 준비가 된 메모리 셀을 포함한다. 예를 들면, 리셋 상태는 관리 유닛의 모든 메모리 셀이 특정한 논리 상태(예로서, 예를 들면 논리 상태 0 또는 논리 상태 1)로 프로그램되는 경우일 수 있다.
도 5A 및 도 5B는 본 개시내용의 다수의 실시예에 따른 다수의 관리 유닛을 예시한다. 도 5A 및 도 5B에서, 메모리 어레이는 예를 들면, 도 4A 및 도 4B에 관련하여 설명된 관리 유닛과 같은, 관리 유닛(570-0, ..., 570-7)을 포함한다. 도 5A에서, 관리 유닛(570-0 및 570-1)은 유효 상태를 가지며 기록 커서(굵은 윤곽으로 표시된)는 관리 유닛(570-2)이 제1 이용 가능한 자유 관리 유닛이므로 관리 유닛(570-2)에 위치된다. 기록 동작은, 기록 커서가 관리 유닛(570-2)에 위치되는 것으로 인해, 관리 유닛(570-2)에서 시작하는 메모리 어레이로 데이터를 기록함으로써 수행될 수 있다. 기록 동작은 데이터를 관리 유닛(570-2 및 570-3)으로 기록할 수 있다. 예를 들면, 동작은 이용 가능한 자유 관리 유닛인 관리 유닛으로 연속하여 데이터를 기록할 수 있다. 도 5B는 도 5A에 관련하여 상기 설명된 기록 동작을 완료한 후 관리 유닛(570-6)에서 기록 커서의 업데이트된 위치를 예시한다. 관리 유닛(570-6)의 업데이트된 위치에 기록 커서를 위치시킬 때, 관리 유닛(570-4)은 유효 상태를 갖기 때문에 건너뛰어질 수 있으며 관리 유닛(570-5)은 사용 안 함 상태를 갖기 때문에 건너뛰어질 수 있다. 그러므로, 기록 커서의 업데이트된 위치는, 관리 유닛(570-6)이 마지막 기록 동작이 종료된 곳인, 관리 유닛(570-3) 후 다음 이용 가능한 관리 유닛이기 때문에 관리 유닛(570-6)에 있다.
특정 실시예가 여기에서 예시되고 설명되었지만, 이 기술분야에서의 통상의 기술자는 동일한 결과를 달성하기 위해 산출된 배열이 도시된 특정 실시예를 위해 대체될 수 있다는 것을 이해할 것이다. 본 개시내용은 본 개시내용의 다양한 실시예의 적응화 또는 변형을 커버하도록 의도된다. 상기 설명은 제한적인 것이 아닌, 예시적인 방식으로 이루어졌다는 것이 이해될 것이다. 상기 실시예의 조합, 및 여기에서 구체적으로 설명되지 않은 다른 실시예는 상기 설명을 검토할 때 이 기술분야의 숙련자에게 명백할 것이다. 본 개시내용의 다양한 실시예의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 그러므로, 본 개시내용의 다양한 실시예의 범위는, 이러한 청구항이 자격을 부여받은 등가물의 전체 범위와 함께, 첨부된 청구항을 참조하여 결정되어야 한다.
전술한 상세한 설명에서, 다양한 특징은 본 개시내용을 간소화할 목적으로 단일 실시예에서 함께 그룹화된다. 개시의 이러한 방법은 본 개시내용의 개시된 실시예가 각각의 청구항에서 명확하게 나열되는 보다 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되지 않을 것이다. 오히려, 다음의 청구항이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징보다 적게 있다. 따라서, 다음의 청구항은 상세한 설명으로 통합되며, 각각의 청구항은 그 자체가 별개의 실시예로서 성립한다.

Claims (20)

  1. 장치로서,
    제1 메모리 어레이;
    다수의 제2 메모리 어레이; 및
    상기 제1 메모리 어레이 및 상기 다수의 제2 메모리 어레이에 결합된 제어기를 포함하되, 상기 제어기는,
    기록 동작을 실행하는 것으로서, 상기 기록 동작의 실행은 기록 커서(write cursor)에 의해 표시된 위치에서 시작하는 상기 제1 메모리 어레이로 데이터를 기록하는, 상기 기록 동작을 실행하도록; 그리고
    상기 기록 동작의 실행을 완료할 때 상기 제1 메모리 어레이에서 업데이트된 위치에 상기 기록 커서를 위치시키는 것으로서, 상기 업데이트된 위치는 상기 제1 메모리 어레이에서 다음 이용 가능한 위치인, 상기 기록 커서를 위치시키도록 구성된, 장치.
  2. 제1항에 있어서, 상기 기록 동작의 실행은 또한 상기 다수의 제2 어레이로 상기 데이터를 기록하는, 장치.
  3. 제1항에 있어서, 상기 기록 동작은 요청을 수신할 때 상기 장치에 의해 완료되는 전경 동작(foreground operation)인, 장치.
  4. 제1항에 있어서, 상기 제1 메모리 어레이는 순차적으로 어드레스를 할당받은 다수의 관리 유닛을 포함하며, 데이터는 상기 할당된 어드레스 및 상기 기록 커서의 위치에 기초하여 상기 다수의 관리 유닛으로 순차적으로 기록되는, 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 제어기는 또 다른 기록 동작을 실행하도록 구성되며 상기 또 다른 기록 동작의 실행은 상기 기록 커서에 의해 표시된 상기 업데이트된 위치에서 시작하는 상기 제1 메모리 어레이로 데이터를 기록하는, 장치.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 기록 커서는 상기 제1 메모리 어레이에서 다음 자유 관리 유닛을 찾기 위해 유효, 무효, 또는 사용 안 함으로 표시되는 다수의 관리 유닛을 건너뜀으로써 상기 업데이트된 위치에 위치되는, 장치.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 기록 동작의 실행은 다수의 자유 관리 유닛의 어드레스에 기초하여 상기 기록 동작이 완료될 때까지 상기 데이터를 상기 다수의 자유 관리 유닛에서의 상기 제1 메모리 어레이로 순차적으로 계속해서 기록하는 것을 포함하는, 장치.
  8. 장치로서,
    제1 메모리 어레이;
    다수의 제2 메모리 어레이; 및
    상기 제1 메모리 어레이에 그리고 상기 다수의 제2 메모리 어레이에 결합된 제어기를 포함하되, 상기 제어기는,
    무효 상태에서 자유 상태로 다수의 관리 유닛을 조정함으로써 상기 제1 메모리 어레이에서 무효 상태에 있는 상기 다수의 관리 유닛에 대해 제거 동작을 수행하도록 구성된, 장치.
  9. 제8항에 있어서, 상기 다수의 관리 유닛은 상기 자유 상태에 상기 다수의 관리 유닛을 위치시키기 위해 특정한 논리 상태로 프로그램되는, 장치.
  10. 제8항 또는 제9항에 있어서, 상기 제거 동작은 상기 장치가 상기 제거 동작이 수행되는 특정한 영역 상에서 전경 동작을 수행하지 않을 때 상기 장치에 의해 수행되는 배경 동작인, 장치.
  11. 장치로서,
    제1 메모리 어레이;
    다수의 제2 메모리 어레이; 및
    상기 제1 메모리 어레이에 그리고 상기 다수의 제2 메모리 어레이에 결합된 제어기를 포함하되, 상기 제어기는,
    판독 관리 유닛 패턴에 기초하여 다수의 판독 신호를 설정하도록;
    상기 데이터에 대한 관리 유닛 패턴 방해 레벨 및/또는 원시 비트 에러율(raw bit error rate: RBER)을 결정하기 위해 상기 다수의 판독 신호를 사용하여 상기 제1 메모리 어레이에서의 관리 유닛에서 데이터에 대한 판독 동작을 수행하도록;
    상기 RBER이 제1 임계치 미만이고/이거나 상기 관리 유닛 패턴 방해 레벨이 제2 임계치 미만인 것에 응답하여 상기 데이터를 호스트로 출력하도록; 그리고
    상기 RBER이 상기 제1 임계치를 초과하고/하거나 상기 관리 유닛 패턴 방해 레벨이 상기 제2 임계치를 초과하는 것에 응답하여 상기 데이터에 대해 이동 동작을 수행하도록 구성된, 상기 제어기를 포함하는, 장치.
  12. 제11항에 있어서, 상기 관리 유닛 패턴 방해 레벨은 이웃하는 관리 유닛이 프로그램된 횟수에 기초하는, 장치.
  13. 제11항에 있어서, 상기 이동 동작은 상기 제1 메모리 어레이에서 자유인 새로운 관리 유닛으로 상기 데이터를 기록함으로써 상기 데이터를 재배치하는, 장치.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서, 상기 제어기는 상기 RBER이 상기 제1 임계치를 초과하고/하거나 상기 관리 유닛 패턴 방해 레벨이 상기 제2 임계치를 초과하는 것에 응답하여 상기 관리 유닛이 무효임을 나타내도록 구성되는, 장치.
  15. 메모리를 관리하기 위한 방법으로서,
    기록 커서에 의해 표시된 제1 메모리 어레이에서의 위치에서 시작하는 기록 동작을 수행하는 단계로서, 상기 기록 커서는 자유 상태에 있는 관리 유닛에 있는, 상기 기록 동작을 수행하는 단계; 및
    상기 기록 동작의 완료 시 상기 제1 메모리 어레이에서 업데이트된 위치에 상기 기록 커서를 위치시키는 단계를 포함하는, 메모리를 관리하기 위한 방법.
  16. 제15항에 있어서, 상기 업데이트된 위치에 상기 기록 커서를 위치시키는 단계는 상기 제1 메모리 어레이에 다음 자유 관리 유닛을 위치시키는 단계를 포함하는, 메모리를 관리하기 위한 방법.
  17. 제15항에 있어서, 상기 업데이트된 위치에 상기 기록 커서를 위치시키는 단계는 유효, 무효, 또는 사용 안 함 상태에 있는 다수의 관리 유닛을 건너뛰는 단계를 포함하는, 메모리를 관리하기 위한 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 방법은 자유 상태에 다수의 관리 유닛을 위치시킴으로써 상기 제1 메모리 어레이에서 무효 상태에 있는 상기 다수의 관리 유닛에 대해 제거 동작을 수행하는 단계를 포함하는, 메모리를 관리하기 위한 방법.
  19. 메모리를 관리하기 위한 방법으로서,
    제1 메모리 어레이에서의 관리 유닛에서 데이터에 대한 관리 유닛 패턴 방해 레벨 및/또는 원시 비트 에러율(RBER)을 결정하는 단계; 및
    상기 RBER이 제1 임계치 미만이고/이거나 상기 관리 유닛 패턴 방해 레벨이 제2 임계치 미만인 것에 응답하여 상기 데이터를 호스트로 출력하는 단계를 포함하는, 메모리를 관리하기 위한 방법.
  20. 제19항에 있어서, 상기 방법은 상기 RBER이 상기 제1 임계치를 초과하고/하거나 상기 관리 유닛 패턴 방해 레벨이 상기 제2 임계치를 초과하는 것에 응답하여 상기 데이터에 대해 이동 동작을 수행하는 단계를 더 포함하는, 메모리를 관리하기 위한 방법.
KR1020197014722A 2016-11-08 2017-08-28 메모리 관리 KR102240261B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/345,862 US10261876B2 (en) 2016-11-08 2016-11-08 Memory management
US15/345,862 2016-11-08
PCT/US2017/048800 WO2018089083A1 (en) 2016-11-08 2017-08-28 Memory management

Publications (2)

Publication Number Publication Date
KR20190058714A true KR20190058714A (ko) 2019-05-29
KR102240261B1 KR102240261B1 (ko) 2021-04-15

Family

ID=62065661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197014722A KR102240261B1 (ko) 2016-11-08 2017-08-28 메모리 관리

Country Status (6)

Country Link
US (3) US10261876B2 (ko)
EP (1) EP3520106B1 (ko)
KR (1) KR102240261B1 (ko)
CN (1) CN109937449A (ko)
TW (1) TWI644209B (ko)
WO (1) WO2018089083A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
US11169747B2 (en) 2018-10-30 2021-11-09 Micron Technology, Inc. Relocating data to low latency memory
US10942662B2 (en) * 2018-11-30 2021-03-09 International Business Machines Corporation Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization
US11106521B2 (en) * 2019-08-19 2021-08-31 Micron Technology, Inc. Fatal error logging in a memory device
CN111258507A (zh) * 2020-02-11 2020-06-09 上海威固信息技术股份有限公司 一种提高3d ct tlc nand闪存存储设备可靠性的方法
US11626182B2 (en) 2021-08-04 2023-04-11 Micron Technology, Inc. Selective power-on scrub of memory units

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100504401B1 (ko) * 2005-02-01 2005-07-28 주식회사 하이스마텍 비휘발성 메모리의 제어 방법 및 시스템
KR20070007264A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법
US20080155177A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Configuration of Host LBA Interface With Flash Memory
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
KR101042588B1 (ko) * 2005-02-16 2011-06-20 쌘디스크 코포레이션 플래시 메모리들에 직접 데이터 파일 저장
US20150331793A1 (en) * 2014-03-26 2015-11-19 Hitachi, Ltd. Storage system

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604518A (en) * 1994-03-30 1997-02-18 International Business Machines Corporation Memory structure with multiple integrated memory array portions
US6170066B1 (en) * 1995-09-29 2001-01-02 Intel Corporation Power-off recovery management for sector based flash media managers
JPH1069420A (ja) * 1996-08-29 1998-03-10 Sony Corp 情報記録装置、情報記録再生装置、情報記録方法および情報再生方法
US6411546B1 (en) * 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
RU2216796C2 (ru) * 1998-06-24 2003-11-20 Инфинеон Текнолоджиз Аг Электронное запоминающее устройство
US6363008B1 (en) * 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US7139866B2 (en) 2002-12-30 2006-11-21 Micron Technology, Inc. CAM with automatic writing to the next free address
US20050055495A1 (en) 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US7523381B2 (en) 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
EP1960863A2 (en) * 2005-12-13 2008-08-27 SanDisk Corporation Logically-addressed file storage
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
US8850102B2 (en) 2007-08-23 2014-09-30 Nokia Corporation Flash memory with small data programming capability
US20090259819A1 (en) 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
JP5188328B2 (ja) * 2008-08-29 2013-04-24 株式会社日立製作所 半導体装置
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
KR101042197B1 (ko) * 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
KR101070511B1 (ko) * 2009-03-20 2011-10-05 (주)인디링스 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
DE112009004900T5 (de) * 2009-06-10 2012-08-16 Micron Technology, Inc. Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
WO2011099963A1 (en) * 2010-02-10 2011-08-18 Hewlett-Packard Development Company, L.P. Identifying a location containing invalid data in a storage media
CN107093464A (zh) 2010-07-13 2017-08-25 桑迪士克科技有限责任公司 后台存储器系统接口的动态优化
US8949506B2 (en) 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US8626989B2 (en) 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
TWI587136B (zh) 2011-05-06 2017-06-11 創惟科技股份有限公司 快閃記憶體系統及其快閃記憶體無效資料頁資訊之管理方法與回收方法
CN103946819B (zh) 2011-09-30 2017-05-17 英特尔公司 用于非易失性系统存储器的统计耗损均衡
KR20130040486A (ko) * 2011-10-14 2013-04-24 삼성전자주식회사 저장 장치 및 그것을 이용하는 사용자 장치
CN104115132B (zh) 2011-12-22 2018-02-06 英特尔公司 借助于存储器通道关闭的功率节约
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
TWI475385B (zh) * 2012-03-14 2015-03-01 Phison Electronics Corp 程式化記憶胞與資料讀取方法、記憶體控制器與儲存裝置
US9021275B1 (en) 2012-03-30 2015-04-28 Emc Corporation Method and apparatus to exercise and manage a related set of power managed storage devices
US9645177B2 (en) 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US20140129758A1 (en) 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US9081666B2 (en) 2013-02-15 2015-07-14 Seagate Technology Llc Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
US9164832B2 (en) 2013-02-27 2015-10-20 Seagate Technology Llc ECC management for variable resistance memory cells
US9570175B2 (en) * 2013-08-05 2017-02-14 Jonker Llc Incrementally programmable non-volatile memory
TW201510724A (zh) 2013-09-11 2015-03-16 Skymedi Corp 非揮發性儲存裝置及其資料寫入方法
US9236133B2 (en) * 2013-12-13 2016-01-12 Micron Technology, Inc. Adjusted read for partially programmed block
US9361182B2 (en) * 2014-05-20 2016-06-07 Transcend Information, Inc. Method for read disturbance management in non-volatile memory devices
US9239757B2 (en) 2014-05-30 2016-01-19 Sandisk Technologies Inc. Method and apparatus for relocating data in non-volatile memory
US9627072B2 (en) * 2014-11-25 2017-04-18 Macronix International Co., Ltd. Variant operation sequences for multibit memory
WO2016088234A1 (ja) * 2014-12-04 2016-06-09 株式会社 東芝 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置
KR102275710B1 (ko) * 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9842059B2 (en) * 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
US10430085B2 (en) * 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070007264A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법
KR100504401B1 (ko) * 2005-02-01 2005-07-28 주식회사 하이스마텍 비휘발성 메모리의 제어 방법 및 시스템
KR101042588B1 (ko) * 2005-02-16 2011-06-20 쌘디스크 코포레이션 플래시 메모리들에 직접 데이터 파일 저장
US20080155177A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Configuration of Host LBA Interface With Flash Memory
JP2009252255A (ja) * 2008-04-01 2009-10-29 Renesas Technology Corp 不揮発性半導体記憶装置
US20150331793A1 (en) * 2014-03-26 2015-11-19 Hitachi, Ltd. Storage system

Also Published As

Publication number Publication date
TWI644209B (zh) 2018-12-11
WO2018089083A1 (en) 2018-05-17
KR102240261B1 (ko) 2021-04-15
US10261876B2 (en) 2019-04-16
US20210208988A1 (en) 2021-07-08
EP3520106B1 (en) 2021-10-13
TW201818251A (zh) 2018-05-16
US11550678B2 (en) 2023-01-10
US20180129575A1 (en) 2018-05-10
EP3520106A4 (en) 2019-10-09
EP3520106A1 (en) 2019-08-07
US10956290B2 (en) 2021-03-23
CN109937449A (zh) 2019-06-25
US20190108108A1 (en) 2019-04-11

Similar Documents

Publication Publication Date Title
US20200233585A1 (en) Data relocation in hybrid memory
US11550678B2 (en) Memory management
US11209986B2 (en) Memory operations on data
JP5736439B2 (ja) ソリッドステート記憶装置におけるトランスレーションレイヤ
US8559225B2 (en) Nonvolatile memory device and related method of operation
US11456050B2 (en) Relinking scheme in sub-block mode
TWI648739B (zh) 記憶體管理方法與儲存控制器
US11561713B2 (en) Simplified high capacity die and block management
US20160062688A1 (en) Flash memory device, flash memory system, and operating method
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
US11397657B1 (en) Managing memory objects that are assigned a respective designation
US20240231987A1 (en) Storage device, method of operating storage device, and method of operating non-volatile memory
CN111033482A (zh) 高速缓存缓冲器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant