KR20200133817A - 호스트 논리적-대-물리적 정보 리프레시 - Google Patents

호스트 논리적-대-물리적 정보 리프레시 Download PDF

Info

Publication number
KR20200133817A
KR20200133817A KR1020207033214A KR20207033214A KR20200133817A KR 20200133817 A KR20200133817 A KR 20200133817A KR 1020207033214 A KR1020207033214 A KR 1020207033214A KR 20207033214 A KR20207033214 A KR 20207033214A KR 20200133817 A KR20200133817 A KR 20200133817A
Authority
KR
South Korea
Prior art keywords
area
information
memory
invalid
sub
Prior art date
Application number
KR1020207033214A
Other languages
English (en)
Inventor
기유세페 카리엘로
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20200133817A publication Critical patent/KR20200133817A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L2P 정보를 저장 시스템으로부터 호스트 장치로 제공하기 위한 장치들 및 기술들이 본원에 개시되며, L2P 정보는 변경된 L2P 영역 및 관련 서브 영역 정보, 로드될 L2P 영역 및 관련 서브 영역 정보, 및 유효하지 않은 L2P 영역 및 관련 서브 영역 정보를 포함한다.

Description

호스트 논리적-대-물리적 정보 리프레시
우선권 주장
이 출원은 2018년 4월 23일자로 출원된 미국 임시 특허 출원 일련번호 제62/661,283호에 대한 우선권의 이점을 주장하며, 이는 그 전체가 참조로서 본원에 통합된다.
메모리 디바이스들은 호스트 시스템(예를 들어, 컴퓨터 또는 기타 전자 장치)에 대한 데이터의 전자 저장소를 제공하는 반도체 회로들이다. 메모리 디바이스들은 휘발성 또는 비휘발성일 수 있다. 비휘발성 메모리는 데이터를 유지하기 위해 전원 공급을 필요로 하며, 그 중에서도, 랜덤 액세스 메모리(RAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM) 또는 동기식 동적 랜덤 액세스 메모리(SDRAM)와 같은 디바이스들을 포함한다. 비휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 유지할 수 있으며, 그 중에서도, 플래시 메모리, 읽기 전용 메모리(ROM), 전기적으로 소거 가능한 프로그램 가능 ROM(EEPROM), 소거 가능한 프로그램 가능 ROM(EPROM)와, 상 변환 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM) 또는 자기 저항성 랜덤 액세스 메모리(MRAM)와 같은 저항 가변 메모리와 같은 디바이스들을 포함한다.
호스트 시스템들(예를 들어, 호스트들)은 일반적으로 호스트 프로세서, 호스트 프로세서를 지원하기 위한 제1 양의 호스트 메모리(예를 들어, 메인 주 메모리, 종종 DRAM과 같은 휘발성 메모리), 및 메인 메모리 외에 또는 그와 분리하여 데이터를 유지하기 위해 추가 저장소를 제공하는 하나 이상의 저장 시스템(예를 들어, 종종 플래시 메모리와 같은 비휘발성 메모리)를 포함한다.
솔리드 스테이트 드라이브(SSD)와 같은 저장 시스템은 메모리 컨트롤러 및 다수의(예를 들어, 다중) 다이들 또는 논리 장치(LUN)들을 포함하는 하나 이상의 메모리 디바이스들을 포함할 수 있다. 특정 예들에서, 각 다이는 다수의 메모리 어레이들 및 다이 로직 또는 다이 프로세서와 같은, 그 위의 주변 회로부를 포함할 수 있다. 메모리 컨트롤러는 통신 인터페이스(예를 들어, 양방향 병렬 또는 직렬 통신 인터페이스)를 통해 호스트 장치(예를 들어, 호스트 프로세서 또는 인터페이스 회로부)와 통신하도록 구성된 인터페이스 회로부를 포함할 수 있다. 메모리 컨트롤러는 메모리 디바이스들과 호스트 장치 사이에서 데이터(예를 들어, 오류 데이터 또는 어드레스 데이터 등과 같은, 사용자 데이터 및 관련 무결성 데이터)를 전송하기 위한 읽기 또는 쓰기 동작들, 메모리 디바이스들로부터 데이터를 소거하기 위한 소거 동작들과 같은, 메모리 동작들 또는 인스트럭션들과 관련하여 호스트 장치로부터 명령들 또는 동작들을 수신하고, 드라이브 관리 동작들(예를 들어, 데이터 이동, 가비지 수집, 블록 폐기) 등을 수행할 수 있다.
소프트웨어(예를 들어, 프로그램), 인스트럭션들, 운영 체제(OS) 및 기타 데이터는 일반적으로 저장 시스템들에 저장되고 호스트 프로세서에 의해 사용하기 위해 메인 메모리에 의해 액세스된다. 메인 메모리(예를 들어, RAM)는 일반적으로 저장 시스템의 대부분의 메모리 디바이스들(예를 들어, SSD 등과 같은 비휘발성)보다 더 빠르고, 더 비싸며, 이들과 다른 유형의 메모리 장치(예를 들어, 휘발성)이다. 메인 메모리 외에도, 호스트 시스템들은 종종 메인 메모리보다 빠르고, 특정 예들에서는 호스트 프로세서의 속도에 가깝거나 이를 초과하는 속도로 동작하도록 구성되지만 밀도가 낮고 비용이 높은, 정적 메모리 그룹(예를 들어, 캐시, 종종 SRAM)과 같은 다양한 형태의 휘발성 메모리를 포함할 수 있다.
도면들에서, 이는 반드시 일정한 비례로 그려질 필요는 없으며, 유사한 도면 부호들은 다른 측면에서 유사한 구성요소들을 설명할 수 있다. 다른 문자 접미사를 갖는 유사한 숫자들은 유사한 구성요소들의 다른 예들을 나타낼 수 있다. 도면들은 제한하는 것은 아니나, 일반적으로 본 문서에서 논의된 다양한 실시예들을 예시한다.
도 1은 호스트 장치 및 저장 시스템을 포함하는 예시적인 시스템을 예시한다.
도 2a 및 2b는 호스트측 L2P 맵 미스 및 호스트측 L2P 맵 히트를 갖는 예시적인 읽기 요청 타이밍도들을 예시한다.
도 3은 L2P 정보를 호스트 장치에 제공하는 예시적인 방법을 예시한다.
도 4는 3D NAND 아키텍처 반도체 메모리 어레이의 예시적인 개략도를 예시한다.
도 5는 메모리 디바이스의 예시적인 블록도를 예시한다.
도 6은 본원에 논의된 기술들(예를 들어, 방법론들) 중 임의의 하나 이상이 수행될 수 있는 예시적인 기계의 블록도를 예시한다.
최신 메모리 장치, 특히 NAND 플래시 장치 등과 같은 비휘발성 메모리 디바이스들은 예컨대, 저장된 데이터를 리프레시하거나 아니면 메모리 디바이스의 데이터를 관리(예를 들어, 가비지 수집, 마모 평준화, 드라이브 관리, 등)하기 위해 데이터를 자주 재배치한다. 특정 예들에서, 저장된 데이터의 논리적 블록 어드레스(LBA)는 고정된 상태로 유지되는 반면, 저장된 데이터의 물리적 어드레스(PA)는 변경될 수 있다. LBA와 물리적 어드레스 간의 관계는 예컨대, 특정 LBA가 지정된 저장 시스템의 물리적 어드레스에 대한 액세스 속도를 높이기 위해, 일반적으로 저장 시스템의 휘발성 메모리(예를 들어, 정적 랜덤 액세스 메모리(SRAM)와 같은 정적 메모리, 캐시 등)에서, 논리적-대-물리적(L2P) 정보(예를 들어, L2P 맵, 테이블 등)를 사용하여 유지될 수 있다.
읽기 명령이 발생하면, L2P 정보(예를 들어, L2P 맵, 테이블 등)를 참조하여 요청된 데이터를 찾을 수 있다. 그러나, L2P 정보의 크기는 일반적으로 메모리 컨트롤러의 사용 가능한 휘발성 메모리보다 크다. 요청된 L2P 정보가 현재 휘발성 메모리에 로드되지 않은 경우 미스가 발생한다. 이러한 경우에, 저장 시스템(예를 들어, 메모리 컨트롤러의 펌웨어(FW) 등)은 일부 L2P 정보(예를 들어, L2P 테이블 청크 등)를 폐기하거나 비휘발성 메모리(예를 들어, NAND)로 플러시하고 비휘발성 메모리(예를 들어, NAND)로부터 요청된 L2P 정보(예를 들어, L2P 테이블 청크 등)를 로드하여 휘발성 메모리(예를 들어, SRAM)에 공간을 확보할 수 있으며, 읽기 명령에 레이턴시를 추가하고 시스템 성능에 영향을 줄 수 있다.
읽기 명령들 또는 기타 메모리 동작들과 같은 시스템 성능을 향상시키기 위해, L2P 정보의 일부는 호스트 메모리와 같은 호스트 장치에 저장될 수 있다. 호스트 장치는 읽기 버퍼 명령을 사용하여 저장 시스템에 L2P 정보를 요청하고, 이에 대한 응답으로 저장 시스템으로부터 L2P 정보를 수신하며, 호스트 메모리에서 L2P 정보를 관리할 수 있다. 호스트 장치는 읽기 명령을 사용하여 저장 시스템에 물리적 어드레스를 제공할 수 있으며, 요청된 정보를 제공하기 위해 저장 시스템에서 L2P 액세스 시간을 줄이고, 장치 레이턴시를 더욱 줄이고 시스템 성능을 높일 수 있다.
전체 L2P 맵이 호스트 장치에서 관리되는 경우, 100 % L2P 정보 적중률에 도달될 수 있지만, 새로운 호스트 쓰기 및 데이터의 내부 재배치(예를 들어, 가비지 수집)로 인해 호스트 장치에 저장된 어드레스들 중 일부가 유효하지 않게 될 수 있어, L2P 정보가 저장 시스템에서 업데이트되어야 할 수 있다. L2P 정보 적중률이 허용 가능한 임계값 미만으로 떨어지거나, L2P 미스의 수가 임계값에 도달하면, 저장 시스템은 호스트 메모리의 L2P 정보가 예컨대, 플래그, 비트맵, 하나 이상의 응답 미트 또는 응답 바이트를 사용하는 것과 같이, 업데이트되어야 함을 호스트 장치에 알릴 수 있으며, 호스트 장치는 업데이트된 L2P 정보를 요청할 수 있다. 일 예에서, L2P 정보는 호스트 인식 성능 부스터(HPB) 정보를 포함할 수 있다.
일 예에서, 저장 시스템의 제어 회로부(예를 들어, 범용 플래시 메모리(UFS) 디바이스 등과 같은 저장 시스템의 메모리 또는 장치 컨트롤러)는 하나 이상의 영역들 또는 서브 영역들에서 비휘발성 메모리의 일부를 관리하도록 구성될 수 있다. L2P 영역들 및 서브 영역들은 논리 공간의 범위일 수 있다. 예를 들어, 64GB 저장 시스템은 64 개의 1GB 영역들로 분할될 수 있다. 1GB 영역은 16 개의 64 MB의 서브 영역들로 분할될 수 있다. 각 LBA가 4kB의 데이터라면, 서브 영역은 16,384 개의 연속 LBA로 형성될 수 있고, 영역은 262,144 개의 연속 LBA로 형성될 수 있다. 이러한 숫자, 범위 및 크기는 예시적인 것이며, 다른 예들에서는 다른 숫자, 범위 및 크기가 사용될 수 있다. 활성 영역들 또는 서브 영역들은 현재 제어 회로부에 의해 관리되는 영역들 또는 서브 영역들을 포함할 수 있다.
본 발명자들은 그 중에서도, 시스템 성능 및 효율성을 증가시키도록 구성된 개선된 호스트 L2P 정보 리프레시 프로토콜을 인식했다.
도 1은 통신 인터페이스(I/F)(115)(예를 들어, 양방향 병렬 또는 직렬 통신 인터페이스)를 통해 통신하도록 구성된 호스트 장치(105) 및 저장 시스템(110)을 포함하는 예시적인 시스템(예를 들어, 호스트 시스템)(100)을 예시한다. 일 예에서, 통신 인터페이스(115)는 호스트 인터페이스로 지칭될 수 있다. 호스트 장치(105)는 호스트 프로세서(106)(예를 들어, 호스트 중앙 처리 장치(CPU) 또는 메모리 관리 장치(MMU), 인터페이스 회로부와 기타 프로세서 또는 처리 회로부 등)를 포함할 수 있다. 특정 예들에서, 호스트 장치(105)는 호스트 프로세서(HOST PROC)(106)의 동작을 지원하기 위해, 메인 메모리(MAIN MEM)(108)(예를 들어, DRAM 등) 및 선택적으로 정적 메모리(STATIC MEM)(109)를 포함할 수 있다.
저장 시스템(110)은 범용 플래시 메모리(UFS) 디바이스, 내장형 MMC(eMMCTM 장치, 또는 하나 이상의 다른 메모리 디바이스들을 포함할 수 있다. 예를 들어, 저장 시스템(110)이 UFS 장치를 포함하는 경우, 통신 인터페이스(115)는 하나 이상의 JEDEC(Joint Electron Device Engineering Council) 표준(예를 들어, 일반적으로 JEDEC UFS 호스트 컨트롤러 인터페이스(UFSHCI) 3.0으로 지칭되는, JEDEC 표준 D223D(JESD223D) 등)에 정의된 것과 같은, 직렬 양방향 인터페이스를 포함할 수 있다. 다른 예에서, 저장 시스템(110)이 eMMC 장치를 포함하는 경우, 통신 인터페이스(115)는 다수의 병렬 양방향 데이터 라인들(예를 들어, DAT[7:0]) 및 하나 이상의 JEDEC 표준들(예를 들어, 일반적으로 JEDEC eMMC 표준 5.1로 지칭되는, JEDEC 표준 D84-B51(JESD84-A51) 등)에 정의된 바와 같은 하나 이상의 명령 라인들을 포함할 수 있다. 다른 예들에서, 저장 시스템(110)은 하나 이상의 다른 메모리 디바이스들을 포함할 수 있거나, 통신 인터페이스(115)는 호스트 장치(105) 및 저장 시스템(110)에 따라 하나 이상의 다른 인터페이스를 포함할 수 있다.
저장 시스템(110)은 메모리 컨트롤러(MEM CTRL)(111), 비휘발성 메모리 디바이스(112), 및 선택적으로 메모리 컨트롤러(111)의 동작들을 지원하는 제한된 양의 정적 메모리(119)를 포함할 수 있다. 메모리 컨트롤러(111)는 호스트(105)로부터 인스트럭션들을 수신할 수 있으며, 비취발성 메모리 디바이스(112)의 메모리 셀들 중 하나 이상으로 데이터를 전송하거나(예를 들어, 쓰거나 소거하거나) 이들로부터 데이터를 전송하는(예를 들어, 읽는) 것과 같이, 비휘발성 메모리 디바이스(112)와 통신할 수 있다. 메모리 컨트롤러(111)는 그 중에서도, 다수의 컴포넌트들 또는 집적 회로들과 같은 회로부 또는 펌웨어, 하나 이상의 메모리 관리 기능들(예를 들어, 웨어 레벨링, 가비지 수집, 오류 카운트, 블록 에이지, 소거 카운트 등)을 제공하는 메모리 매니저를 포함할 수 있다. 일 예에서, 메모리 컨트롤러(111)는 하나 이상의 관리 테이블들에서 L2P 매핑 데이터를 유지할 수 있다.
일 예에서, 비휘발성 메모리 디바이스(112)는 각각이 비휘발성 메모리(NVM)(113)(예를 들어, 하나 이상의 비휘발성 메모리 셀 그룹들) 및 장치 컨트롤러(CTRL)(114) 또는 그 위의 기타 주변 회로부(예를 들어, 장치 로직 등)을 포함하고, 통신 인터페이스(115)와 분리된 내부 저장 시스템 통신 인터페이스(예를 들어, ONFI(Open NAND Flash Interface) 버스 등)를 통해 메모리 컨트롤러(111)에 의해 제어되는, 하나 이상의 스택된 플래시 메모리 디바이스들(예를 들어, 비휘발성 메모리 디바이스(112) 아래에 스택된 대시들로 예시됨) 등과 같은 다수의 비휘발성 메모리 디바이스들(예를 들어, 다이들 또는 LUN들)를 포함할 수 있다.
비 휘발성 메모리(113)(예를 들어, 하나 이상의 3D NAND 아키텍처 반도체 메모리 어레이들)는 예를 들어, 다수의 장치들, 평면들, 블록들, 물리적 페이지들에 배열된 다수의 메모리 셀들을 포함할 수 있다. 단일 레벨 셀(SLC)은 두 개의 프로그래밍된 상태들(예를 들어, 1 또는 0) 중 하나에서 셀당 1 비트의 데이터를 나타낼 수 있다. 다중 레벨 셀(MLC)는 다수의 프로그래밍된 상태들(예를 들어, 2n, 여기서 n은 데이터의 비트 수임)에서 셀당 2 비트 이상의 데이터를 나타낼 수 있다. 특정 예들에서, MLC는 4 가지 프로그래밍된 상태들 중 하나에서 2 비트의 데이터를 저장할 수 있는 메모리 셀을 지칭할 수 있다. 트리플 레벨 셀(TLC)은 8개의 프로그래밍된 상태들 중 하나에서 셀당 3 비트의 데이터를 나타낼 수 있다. 쿼드 레벨 셀(QLC)는 16개의 프로그래밍된 상태들 중 하나에서 셀당 4 비트의 데이터를 나타낼 수 있다. 다른 예들에서, MLC는 TLC 및 QLC 등을 포함하여 셀당 1 비트 이상의 데이터를 저장할 수 있는 모든 메모리 셀을 지칭할 수 있다. 일례로, TLC 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터, 블록당 1536 페이지들, 평면당 548 개의 블록들 및 디바이스당 4개의 평면들을 포함할 수 있다. 다른 예로서, MLC 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터, 블록당 1024개의 페이지들, 평면당 548 개의 블록들 및 디바이스당 4개의 평면들을 포함할 수 있지만, 해당 TLC 메모리 디바이스로서 더 적고(예를 들어, 절반) 더 많은(예를 들어, 두 배) 프로그램/소거(P/E) 사이클들이 필요하다. 다른 예들은 다른 개수 또는 배열을 포함할 수 있다.
호스트 장치(105) 및 저장 시스템(110) 각각은 통신 인터페이스(115)를 통해 통신될 데이터나 신호들을 전송, 수신 또는 처리하도록 구성된 다수의 수신기, 버퍼, 드라이버 또는 기타 인터페이스 회로들(예를 들어, 데이터 제어 유닛들, 샘플링 회로들 또는 기타 중간 회로들)을 포함할 수 있다.
도 2a는 제1 레이턴시를 갖는 호스트측 L2P 맵 미스를 갖는 예시적인 읽기 요청 타이밍도를 예시한다. 201에서, 호스트 장치는 호스트 메모리로부터 L2P 엔트리를 읽을 수 있고 읽기 명령을 저장 시스템의 메모리 컨트롤러에 제공할 수 있다. 202에서, 저장 시스템은 저장 시스템의 메모리 어레이(예를 들어, 비휘발성 메모리 디바이스 등) 상의 특정 PA를 참조하여, L2P 정보를 포함한 읽기 명령을 수신할 수 있다. 203에서, PA가 오래되거나 저장 시스템의 LBA와 일치하지 않는 경우(예를 들어, 호스트측 L2P 맵 미스), 메모리 컨트롤러는 메모리 어레이에 L2P 정보를 요청할 수 있다.
204에서, 메모리 어레이는 요청된 L2P 정보를 검색할 수 있다. 205에서, 메모리 컨트롤러는 검색된 L2P 정보를 읽는다. 206에서, 메모리 컨트롤러는 검색된 L2P 정보로 표시된 정확한 PA를 사용하여 읽기 명령과 연관된 사용자 데이터를 요청할 수 있다. 207에서, 메모리 어레이는 요청된 사용자 데이터를 검색한다. 208에서, 메모리 컨트롤러는 요청된 사용자 데이터를 호스트 장치에 제공할 수 있다.
도 2b는 레이턴시가 도 2a의 예시적인 읽기 요청 타이밍도(200)와 대조적으로 상당히 감소된, 호스트측 L2P 맵 히트를 갖는 예시적인 읽기 요청 타이밍도를 예시한다. 211에서, 호스트 장치는 호스트 메모리로부터 L2P 엔트리를 읽을 수 있고 읽기 명령을 저장 시스템의 메모리 컨트롤러에 제공할 수 있다. 212에서, 저장 시스템은 저장 시스템의 메모리 어레이 상의 특정 PA를 참조하여, L2P 정보를 포함한 읽기 명령을 수신할 수 있다.
216에서, 메모리 컨트롤러는 메모리 어레이 상의 PA에서 읽기 명령과 연관된 사용자 데이터를 요청한다. 217에서, 메모리 어레이는 요청된 사용자 데이터를 검색한다. 218에서, 저장 시스템은 요청된 사용자 데이터를 호스트 장치에 제공할 수 있다.
특정 예들에서, 저장 시스템 정보는 데이터 구조의 호스트 장치에 제공될 수 있다. 예를 들어, UFS 장치는 호스트 장치 또는 UFS 장치와 인터페이스하도록 구성된 하나 이상의 다른 회로들 또는 장치들에 장치 디스트립터 데이터 구조(예를 들어, UFS_장치_디스크립터)를 제공할 수 있다. L2P 지원은 장치 디스트립터의 1비트 이상의 하나 이상의 필드들(예를 들어, bUFSFeaturesSupport 필드 등)을 사용하여 표시될 수 있다.
UFS 장치의 예에서, 호스트 장치는 L2P 읽기 버퍼 명령을 사용하여 저장 시스템에 L2P 정보를 요청할 수 있으며, DATA IN UFS 프로토콜 정보 유닛(UPIU)의 데이터 세그먼트 영역을 사용하여 저장 시스템으로부터 L2P 정보를 수신할 수 있다. L2P 맵 데이터는 CDB 포맷의 장치로부터 로딩될 수 있다. L2P 영역 또는 서브 영역의 요청된 필드가 유효하지 않은 경우, 저장 시스템은 명령을 종료하고 확인 조건 상태, 불법적인 요청으로 설정된 감지 키 및 유효하지 않은 필드로 설정된 추가 감지 코드와 함께 응답 정보 유닛을 전송할 수 있다.
일 예에서, 명령들에 대한 데이터 구조는 연산 코드(예를 들어, L2P 읽기 버퍼 명령(F9h)), 버퍼 ID(예를 들어, 00h 리저브드, 01h 읽기 L2P 엔트리들, 기타 리저브드 등), L2P 영역(예를 들어, 최상위 비트(MSB)에서 최하위 비트(LSB) 등), L2P 서브 영역(예를 들어, MSB에서 LSB 등), 할당 길이 및 제어(예를 들어, 00h)를 포함할 수 있다. 운영 코드, 버퍼 ID 및 제어는 단일 바이트 엔트리들을 포함할 수 있고, L2P 영역 및 서브 영역들은 2 바이트 엔트리들을 포함할 수 있으며, 할당 길이는 3 바이트를 포함 수 있다. 일 예에서, 할당 길이는 읽기 청크 크기(예를 들어, 4K 바이트)에 대한 L2P 서브 영역 크기에 L2P 엔트리 크기(예를 들어, 8 바이트)를 곱하여 계산될 수 있다.
L2P 읽기 명령은 일부 예들에서, LBA 정보, LBA의 해당 PA 정보를 포함하는 L2P 엔트리, 및 연속 논리 데이터 블록들의 전송 길이를 포함하는, 호스트-저장 L2P 정보를 포함할 수 있다. 특정 L2P 프로토콜들은 단일 4K 바이트의 데이터 블록을 지원한다. 다른 것들은 서로 다른 데이터 크기를 지원하거나, 단일 L2P 읽기 명령에서 여러 블록들을 지원한다. 저장 시스템은 L2P 정보가 L2P 업데이트 필요 플래그(예를 들어, 상태 값의 단일 비트 등)와 같은 하나 이상의 플래그들을 사용하여 업데이트되어야 함을 호스트 장치에 알릴 수 있다.
저장 시스템이 응답 정보 유닛에서 L2P 정보가 업데이트되어야 한다고 호스트 장치에 알릴 때, 감지 데이터 영역은 어떤 L2P 영역이 활성 상태여야 하는지 비활성 상태여야 하는지를 나타내는 데 사용될 수 있다. 일 예에서, 단일 응답 정보 유닛은 L2P 읽기 버퍼를 사용하는 것과 같이 호스트 장치가 읽을 수 있는 최대 2개의 L2P 서브 영역들을 나타내거나, 호스트 장치가 L2P 메모리로부터 제거될 수 있는 최대 2개의 영역들을 나타낼 수 있다.
예시적인 응답 정보 유닛은 특정 예들에서 엔드-투-엔드(E2E) 순환 중복 검사(CRC) 헤더 및 하나 이상의 다른 필드들을 포함하는 감지 데이터 영역을 포함할 수 있다. 제1 예에서, L2P 감지 데이터는 다음의 바이트들을 포함할 수 있다:
제1 예시적인 L2P 감지 데이터
바이트 설명
[k:k+1] 감지 데이터 길이 (12h)
[k+2] 디스크립터 유형 (80h - SPC의 벤더별 감지 데이터 디스크립터 포맷)
[k+3] 추가 길이 (11h)
[k+4] L2P 유형 (0h: 없음; 1h: L2P 영역 업데이트에 대한 요청; 기타: 리저브드
[k+5] 리저브드
[k+6] 활성 L2P 영역 카운트 (1은 [k+8:k+11]만이 유효함을 의미함)
[k+7] 비활성 L2P 영역 카운트 (1은 [k+16:k+17]만이 유효함을 의미함)
[k+8:k+9] 활성 L2P 영역 0 (L2P 읽기 버에의 의해 읽을 제1 L2P 영역)
[k+10:k+11] [k+8:k+9]의 L2P 서브 영역 (L2P 읽기 버퍼에 의해 읽을 제1 L2P 서브 영역)
[k+12:k+13] 활성 L2P 영역 1 (L2P 읽기 버퍼에 의해 읽을 제2 L2P 영역 및 L2P 서브 영역)
[k+14:k+15] [k+12:k+13]의 L2P 서브 영역 (L2P 읽기 버퍼에 의해 읽을 제2 L2P 서브 영역)
[k+16:k+17] 비활성 L2P 영역 0 (호스트 메모리로부터 제거할 제1 L2P 영역)
[k+18:k+19] 비활성 L2P 영역 1 (호스트 메모리로부터 제거할 제2 L2P 영역)
그러나, 호스트 메모리 가용성과 현재 또는 보류중인 워크로드에 따라, 저장 시스템이 아닌 비활성 L2P 영역들을 결정하는 것이 호스트 디바이스에 유리할 수 있다. L2P 데이터를 보다 효율적으로 관리하기 위해, 비활성 L2P 영역 1 데이터 필드는 비활성 L2P 서브 영역으로 대체될 수 있다. 제2 예에서, L2P 감지 데이터는 다음을 포함할 수 있다:
제2 예시적인 L2P 감지 데이터
바이트 설명
[k:k+7] 제1 예에서와 같이 L2P 감지 데이터
[k+8:k+11] 변결된 L2P 영역(들) 및 서브 영역(들)
[k+12:k+15] 로딩될 L2P 영역(들) 및 서브 영역(들)
[k+16:k+19] 유효하지 않은 L2P 영역(들) 및 서브 영역(들)
제3 예에서, 하나 이상의 바이트들은 변경된, 로드될, 및 유효하지 않은 L2P 영역(들) 및 서브 영역(들)([k+8:k+19])에 대한 레지스터당 1 비트와 같은, 유효성 플래그들을 포함할 수 있다:
제3 예시적인 L2P 감지 데이터
바이트 설명
[k:k+5] 제1 예에서와 같이 L2P 감지 데이터
[k+6] 유효성 플래그들
[k+7] 리저브드
[k+8:k+11] 변경된 L2P 영역(들) 및 서브 영역(들)
[k+12:k+15] 로딩될 L2P 영역(들) 및 서브 영역(들)
[k+16:k+19] 유효하지 않은 L2P 영역(들) 및 서브 영역(들)
표 2 및 3의 [k+8:k9] 바이트들은 호스트 장치에 대한 하나 이상의 변경된 L2P 영역들(예를 들어, MSB에서 LSB로)을 나타낼 수 있으며, [k+10:k:11] 바이트들은 [k+8:k+9]의 L2P 영역(들)(예를 들어, MSB에서 LSB로)과 관련된 하나 이상의 변경된 L2P 서브 영역들을 나타낼 수 있다. 마찬가지로, [k+12:k+13] 바이트들은 호스트 장치로 로딩될 하나 이상의 L2P 영역들(예를 들어, MSB에서 LSB로)을 나타내고, [k+14:k+15] 바이트들은 호스트 장치로 로딩될 [k+12:k+13]의 L2P 영역(들)(예를 들어, MSB에서 LSB로)과 연관된 하나 이상의 L2P 서브 영역들을 나타낼 수 있다. 일 예에서, 로드될 L2P 정보는 호스트 장치에 로드될 준비가 되었지만 아직 호스트 장치에 로드되지 않은 저장 시스템의 L2P 정보를 지칭할 수 있다. 유효하지 않은 L2P 영역(들) 및 서브 영역(들)[k+16:k+19]은 L2P 영역 인덱스를 포함하는 1 바이트; L2P 서버 영역 MSB 및 LSB를 각각 포함하는 2 바이트; 및 플래그들 또는 기타 정보를 포함하는 1 바이트로 최적화될 수 있다. 일 예에서, 비트 0은 전체 영역 수정자일 수 있는 반면, 다른 비트들은 하나 이상의 다른 재구성 가능한 기능 유닛들(RFU들)을 포함할 수 있다. 다른 예들에서, 변경된 L2P 영역(들) 및 서브 영역(들)[k+8:k+11] 및 로드될 L2P 영역(들) 및 서브 영역(들)[k+12:k+15] 중 하나 또는 둘 다는 따라서 변경된 L2P 영역 인덱스의 경우 1 바이트, 변경된 L2P 영역과 관련된 변경된 L2P 서브 영역(들)의 경우 2 바이트, 및 플래그들 또는 기타 정보의 경우 1 바이트로 구성될 수 있다. 일 예에서, 저장 시스템은 전체 L2P 영역이 L2P 서브 영역 서브 필드의 비트(또는 특수 값)를 사용하여 다시로드해야 함을 나타낼 수 있다. 저장 시스템은 호스트 장치에 의해 읽거나 요청되는 데이터를 기반으로 호스트 장치에 대한 변경된 영역(들) 및 서브 영역(들)의 통신 우선 순위를 지정할 수 있다.
또한, 서브 영역들의 크기가 문제가 될 수 있다. 서브 영역들이 너무 크면(예를 들어, 256MB 등), 저장 시스템이 데이터를 관리함에 따라 리프레시 비율 및 계산 비용이 증가하고, 호스트 장치의 L2C 맵을 리프레시하는 것과 관련된 트래픽이 시스템 효율성 및 성능에 영향을 미친다. 서브 영역들의 크기를 제한하고, 이에 따라 서브 영역들의 수를 늘리는 것은 L2C 맵을 리프레시하는 것과 관련된 트래픽 및 L2P 테이블을 암호화하는 계산 비용이 감소되어, 특정 예들에서 L2C 리프레시의 수를 증가(또는 크게 증가)시키지 않고, 성능 및 전력 소모를 개선할 수 있다. 일 예에서, 서브 영역들의 크기는 4K 바이트로 설정될 수 있다. 많은 영역들이 오래되거나 변경된 것으로 표시되면, 모든 L2P 영역들이 로드될 수 있어, 큰 데이터 전송 효율성을 활용할 수 있다.
유효; 변경; 로드될; 및 유효하지 않은 상태와 같은 L2P 정보의 네 가지 상태들은 저장 시스템에서 L2P 정보(예를 들어, 테이블 또는 맵 청크)의 수명 주기를 반영한다. 유효 L2P 데이터는 변경, 삭제 또는 다시 로드될 필요가 없다. 그러나, 호스트 쓰기 또는 매핑 해제(예를 들어, 내부 리프레시 등)에서, L2P 맵의 영향을 받는 부분이 유효하지 않게 될 수 있다. 펌웨어(FW)는 임시 데이터 구조(예를 들어, 변경 목록)에 최근 변경 사항들을 기록하여, 유효 상태에서 변경된 상태로의 L2P 정보의 전환을 야기할 수 있다. 변경된 L2P 영역 및 관련 서브 영역 정보에는 더 이상 유효하지 않지만 비휘발성 메모리로부터 이를 로드하지 않고도 저장 시스템에서 여전히 사용할 수 있는 이전에 호스트 장치에 제공되었던 L2P 정보를 포함할 수 있다. 반대로, 유효하지 않은 L2P 정보는 저장 시스템이 비휘발성 메모리로부터 L2P 정보를 로드하여 메모리 동작(예를 들어, 읽기 명령 등)을 완료해야 할 수 있다. 변경 목록에 있을 때, 펌웨어가 L2P 엔트리 필드의 어드레스를 폐기하고 변경 목록으로부터 올바른 어드레스를 사용할 수 있으므로, 서브 영역에서 L2P 읽기에 대한 최적 레이턴시가 계속 제공될 수 있다. 특정 예들에서, 펌웨어는 SRAM으로부터 변경된 PA를 복구할 수 있다.
PA가 변경 목록에서 L2P 맵(또는 L2P 맵의 일부(예를 들어, L2P 청크))으로 이동되고 호스트 장치로 전송하기 위해 암호화되면, L2P 정보의 상태가 로드될 것이다. 특정 예들에서, L2P 정보는 변경 목록이 해제되어야 할 경우, 펌웨어가 변경시 SRAM에 이미 L2P 세그먼트를 갖고 있는 경우, 또는 변경된 상태가 호스트 장치에 제공된 후에 로드될 것으로 식별될 수 있으며, L2P 읽기 버퍼 명령이 예상된다.
변경된 L2P 맵(또는 L2P 맵의 일부(예를 들어, L2P 청크))이 메모리 어레이(예를 들어, NAND)로 플러시되고 해당 L2P 서브 영역에서 읽기 레이턴시가 최적화될 수 없는 경우(예를 들어, 펌웨어가 호스트 장치에 의해 제공된 어드레스를 신뢰할 수 없고 변경 목록 또는 저장 시스템의 SRAM의 어드레스들을 확인할 수 없을 경우), L2P 정보의 상태(예를 들어, 영역 및 관련 서브 영역(들))는 유효하지 않게 될 수 있다. 유효하지 않는 L2P 영역 및 관련 서브 영역 정보는 이전에 호스트 장치에 제공된 이제 유효하지 않은 L2P 영역(들) 및 서브 영역(들)에 대한 정보를 포함할 수 있다.
본 발명자들은 그 중에서도, L2P 영역의 크기를 2 바이트에서 1 바이트로 감소시키는 명령들을 위한 개선된 데이터구조를 인식했다. 특정 예들에서, 데이터 구조에서 단 하나의 바이트만 확보하면, 한 번에 최대 256 개의 추가 서브 영역들을 전송할 수 있다. 일 예에서, 버퍼 ID는 읽기 L2P 상태(02h) ID를 포함할 수 있다. 일 예에서, 할당 크기 바이트/비트는 네 가지 가능한 상태들(예를 들어, 활성, 변경됨, 로드 예정 및 비활성 등)를 포함할 수 있다. 또한, 호스트 장치는 예를 들어, 읽기 명령들의 지연 시간, 감지된 오류, 보류 중이거나 가능성이 있는 동작들의 목록 등에 따라, 호스트 장치가 필요하다고 판단할 때까지 새 어드레스를 읽지 않도록 결정할 수 있다. 일 예에서, 응답 정보 유닛은 정보 카테고리들 중 하나가 비어 있는 경우에도, 위의 정보, 영역들, 서브 영역들 또는 필드들을 포함할 수 있다. 예를 들어, L2P 영역 또는 서브 영역이 이전에 호스트 장치에 제공된 L2P 정보에 대해 변경되지 않았거나 무효화되지 않았지만, 추가 L2P 정보가 로드될 준비가 된 경우, 변경된 유효하지 않은 영역 및 관련 서브 영역 정보가 비어 있는 로드될 정보를 나타내는 응답 정보 유닛이 호스트 장치에 제공될 수 있다.
도 3은 호스트 장치에 L2P 정보를 제공하는 예시적인 방법(300)을 예시한다. 301에서, 논리적-대-물리적(logical-to-physical; L2P) 맵은 메모리 컨트롤러와 메모리 어레이를 포함하는 저장 시스템에서 유지될 수 있다. L2P 맵은 메모리 어레이에 있는 데이터의 논리 블록 어드레스(LBA)와 메모리 어레이에 있는 데이터의 물리적 어드레스(PA) 간의 관계를 포함할 수 있다. 302에서, L2P 정보는 호스트 장치에 제공될 수 있으며, L2P 정보는 각 L2P 영역이 하나 이상의 서브 영역들을 영역을 포함하는 하나 이상의 L2P 영역들을 사용하여 구성될 수 있다.
303에서, 특정 예들에서, 호스트 장치에 제공된 L2P 정보로부터 메모리 어레이 상의 데이터의 PA를 포함하는, 메모리 요청이 메모리 제어기에 의해 호스트 장치로부터 수신될 수 있다. PA가 정확하다면(호스트측 L2P 맵 히트), 도 2b에 예시된 타이밍도는 요청된 데이터를 읽는 데 필요한 시간을 예시할 수 있다.
304에서, 업데이트된 L2P 정보를 포함하는 수신된 호스트 메모리 요청에 대한 응답이 제공될 수 있으며, 업데이트된 L2P 정보는, 변경된 L2P 영역 및 관련 서브 영역 정보; 로드될 L2P 영역 및 관련 서브 영역 정보; 및 유효하지 않은 L2P 영역 및 관련 서브 영역 정보를 포함한다. 일 예에서, 응답은 변경된 L2P 영역 및 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 로드될 L2P 영역 및 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및 유효하지 않은 L2P 영역 및 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는 응답 정보 유닛을 포함할 수 있다.
일 예에서, 저장 시스템이 L2P 정보가 변경되지 않았거나, 로드될 L2P 정보가 없거나, 유효하지 않은 L2P 정보가 압다고 판단하면, 응답의 일부로 이러한 표시들을 제공할 수 있다. 일 예에서, 업데이트된 L2P 정보는 이전에 호스트 장치에 제공된 L2P 정보와 관련하여 결정될 수 있으므로, 호스트 장치에 한번 제공된 정보는 다시 제공될 필요가 없다.
도 4는 블록들(예를 들어, 블록 A(401A), 블록 B(410B) 등) 및 서브 블록들(예를 들어, 서브 블록 A0(401A0), 서브 블록 An(401An), 서브 블록 B0(401B0), 서브 블록 Bn(401Bn) 등)에 구성된, 복수의 메모리 셀 스트링들(예를 들어, 제1 내지 제3 A0 메모리 스트링들(405A0 - 407A0), 제1 내지 제3 An 메모리 스트링들(405An - 407An), 제1 내지 제3 B0 메모리 스트링들(405B0 - 407B0), 제1 내지 제3 Bn 메모리 스트링들(405Bn - 407Bn) 등)을 포함하는 3D NAND 아키텍처 반도체 메모리 어레이(400)의 예시적인 개략도를 예시한다. 메모리 어레이(400)는 블록, 장치 또는 메모리 디바이스 또는 저장 시스템의 다른 유닛에서 일반적으로 발견되는 더 많은 수의 유사한 구조들의 일부를 나타낸다.
각 메모리 셀 스트링은 소스 라인(SRC)(435)이나 소스측 선택 게이트(SGS)(예를 들어, 제1 내지 제3 A0 SGS(431A0-433A0), 제1 내지 제3 An SGS(431An-433An), 제1 내지 제3 B0 SGS(431B0-433B0), 제1 내지 제3 Bn SGS(431Bn-433Bn) 등)와 드레인측 선택 게이트(SGD)(예를 들어, 제1 내지 제3 A0 SGD(426A0-428A0), 제1 내지 제3 An SGD(426An-428An), 제1 내지 제3 B0 SGD(426B0-428B0), 제1 내지 제3 Bn SGD(426Bn-428Bn) 등) 사이에 드레인에 소스가 Z 방향으로 적층된 다수의 전하 저장 트랜지스터들(예를 들어, 플로팅 게이트, 전하 트랩핑 구조 등)의 타이어들을 포함한다. 3D 메모리 어레이의 각 메모리 셀 스트링은 X 방향을 따라 데이터 라인들(예를 들어, 비트 라인들(BL)(BL0-BL3)(420-422)으로, Y 방향을 따라 물리 페이지들로 배열될 수 있다.
물리 페이지 내에서, 각 타이어는 메모리 셀들의 행을 나타내고, 각 메모리 셀 스트링은 열을 나타낸다. 서브 블록은 하나 이상의 물리 페이지들을 포함할 수 있다. 블록은 다수의 서브 블록들(또는 물리적 페이지들)(예를 들어, 128, 256, 384 등)을 포함할 수 있다. 본원에서는 2개의 블록들을 갖는 것으로 도시되어 있지만, 각 블록은 2개의 서브 블록들을 가지며, 각 서브 블록은 단일 물리 페이지를 가지며, 각 물리 페이지는 3개의 메모리 셀 스트링들을 가지며, 각 스트링은 8 타이어의 메모리 셀들을 가지며, 다른 실시예들에서, 메모리 어레이(400)는 더 많거나 더 적은 블록들, 서브 블록들, 물리 페이지들, 메모리 셀 스트링들, 메모리 셀들 또는 타이어들을 포함할 수 있다. 예를 들어, 각 메모리 셀 스트링은 원하는 대로, 더 많거나 적은 타이어들(예를 들어, 16, 32, 64, 128 등)뿐만 아니라 저장 트랜지스터들 위 또는 아래에 있는 하나 이상의 추가 반도체 물질 타이어들(예를 들어, 선택 게이트, 데이터 라인 등)을 포함할 수 있다.
메모리 어레이(400)의 각 메모리 셀은 액세스 라인(예를 들어, 워드 라인들(WL) WL00-WL70(410A-417A), WL01-WL71(410B-417B) 등)에 결합된(예를 들어, 전기적으로 또는 동작 가능하게 연결된) 제어 게이트(CG)를 포함할 수 있으며, 이는 원하는 대로, 특정 타이어 또는 타이어의 일부에 걸쳐 제어 게이트(CG)들을 집합적으로 결합시킨다. 3D 메모리 어레이의 특정 타이어들, 및 이에 따른 스트링 내의 특정 메모리 셀들은 각각의 액세스 라인들을 사용하여 액세스되거나 제어될 수 있다. 선택 게이트 그룹들은 다양한 선택 라인들을 사용하여 액세스될 것이다. 예를 들어, 제1 내지 제3 A0 SGD(426A0-428A0)는 A0 SGD 라인(SGDA0)(425A0)을 사용하여 액세스될 수 있고, 제1 내지 제3 SGD(426An-428An)은 An SGD 라인(SGDAn)(425An)을 사용하여 액세스될 수 있으며, 제1 내지 제3 B0 SGD(426B0-428B0)은 B0 SGD 라인(SGDB0)(425B0)을 사용하여 액세스될 수 있고, 제1 내지 제3 Bn SGD(426Bn-428Bn)는 Bn SGD 라인(SGDBn)(425Bn)을 사용하여 액세스될 수 있다. 제1 내지 제3 A0 SGS(431A0-433A0) 및 제1 내지 제3 An SGS(431An-433An)은 게이트 선택 라인(SGS0)(430A)를 사용하여 액세스될 수 있으며, 제1 내지 제3 B0 SGS(431B0-433B0) 및 제1 내지 제3 Bn SGS(431Bn-433Bn)은 게이트 선택 라인(SGS1)(430B)을 사용하여 액세스될 수 있다.
일 예에서, 메모리 어레이(400)는 각 메모리 셀의 제어 게이트(CG)들 또는 어레이의 각각의 타이어의 선택 게이트(또는 CG들 또는 선택 게이트들의 일부)에 결합하도록 구성된 다수 레벨의 반도체 물질(예를 들어, 폴리실리콘 등)를 포함할 수 있다. 어레이 내의 특정 메모리 셀 스트링들은 비트 라인(BL)들 및 선택 게이트들 등의 조합을 사용하여 액세스, 선택 또는 제어될 수 있으며, 특정 스트링의 하나 이상의 타이어들에서의 특정 메모리 셀들은 하나 이상의 액세스 라인들(예를 들어, 워드 라인들)을 사용하여 액세스, 선택 또는 제어될 수 있다.
NAND 아키텍처 반도체 메모리 어레이에서, 선택된 메모리 셀의 상태는 선택된 메모리 셀을 포함하는 특정 데이터 라인과 관련된 전류 또는 전압 변동을 감지함으로써 액세스될 수 있다. 메모리 어레이(400)는 하나 이상의 드라이버들을 사용하여(예를 들어, 제어 회로, 하나 이상의 프로세서들, 디지털 로직 등에 의해) 액세스될 수 있다. 일 예에서, 하나 이상의 드라이버들은 특정 메모리 셀 또는 메모리 셀 세트에서 수행되기 원하는 동작 유형에 따라, 하나 이상의 데이터 라인들(예를 들어, 비트 라인들(BL0-BL2)), 액세스 라인들(예를 들어, 워드 라인들(WL0-WL7)) 또는 선택 게이트들에 특정 전위를 구동함으로써 특정 메모리 셀 또는 메모리 셀 세트를 활성화할 수 있다.
동작 시, 데이터는 일반적으로 저장 시스템(110)에 페이지로 기록되거나 그로부터 페이지로 판독되고 블록으로 소거된다. 그러나, 하나 이상의 메모리 동작들(예: 읽기, 쓰기, 소거 등)은 원하는 대로 더 크거나 더 작은 메모리 셀 그룹에서 수행될 수 있다. 예를 들어, 오프로드 유닛으로부터의 태그가 지정된 데이터의 부분 업데이트는 효율적으로 다시 기록되는지를 보장하도록 데이터 이동 또는 가비지 수집 동안 수집될 수 있다. 메모리 장치의 데이터 전송 크기는 일반적으로 페이지로 지칭되는 반면, 호스트 장치의 데이터 전송 크기는 일반적으로 섹터로 지칭된다. 데이터 페이지는 다수의 바이트의 사용자 데이터(예를 들어, 다수의 데이터 섹터를 포함한 데이터 페이로드) 및 해당 메타데이터를 포함할 수 있지만, 페이지 크기는 종종 사용자 데이터를 저장하는 데 사용되는 다수의 바이트만을 지칭한다. 일 예로서, 4 kB의 페이지 크기를 갖는 데이터 데이지는 4 kB의 사용자 데이터(예를 들어, 512 B의 섹터 크기를 가정하는 8개의 섹터들)뿐만 아니라 무결성 데이터(예를 들어, 오류 검출 또는 정정 코드 데이터), 어드레스 데이터(예를 들어, 논리 어드레스 데이터 등) 또는 사용자 데이터와 관련된 다른 메타데이터와 같은 사용자 데이터에 대응되는 다수의 바이트들(예를 들어, 32 B, 54 B, 224 B 등)의 보조 또는 메타데이터를 포함할 수 있다.
메모리 셀에 데이터를 프로그래밍 또는 기록하기 위해, 프로그래밍 전압(Vpgm)(예를 들어, 하나 이상의 프로그래밍 펄스들 등)은 선택된 워드 라인들(예를 들어, WL40)에 인가될 수 있으며, 이에 따라 선택된 워드 라인들에 결합된 각 메모리 셀의 제어 게이트에 인가될 수 있다. 프로그래밍 펄스들은 예를 들어 15V 또는 그 근처에서 시작될 수 있으며, 특정 예들에서, 각 프로그래밍 펄스 어플리케이션 동안 크기가 증가할 수 있다. 프로그램 전압이 선택된 워드 라인들에 인가되는 동안, 접지 전위(예를 들어, Vss)와 같은 전위가 프로그래밍을 위해 타겟팅된 메모리 셀들의 데이터 라인들(예를 들어, 비트 라인들) 및 기판들(및 이에 따른 소스들과 드레인들 사이의 채널들)에 인가될 수 있어, 채널들에서 타겟팅된 메모리 셀들의 플로팅 게이트들로 전하 전달(예를 들어, 직접 주입 또는 파울러 노드하임(FN) 터널링 등)이 발생될 수 있다.
반대로, 패스 전압(Vpass)이 프로그래밍을 위해 타겟팅되지 않은 메모리 셀들을 갖는 하나 이상의 워드 라인들에 인가될 수 있거나, 금지 전압(예를 들어, Vcc)이 프로그래밍을 위해 타겟팅되지 않은, 예를 들어 전하가 채널들에서 이러한 비타겟팅된 메모리 셀들의 플로팅 게이트들로 전달되는 것을 금지하기 위한 메모리 셀들을 갖는 데이터 라인들(예를 들어, 비트 라인들)에 인가될 수 있다. 패스 전압은, 예를 들어, 프로그래밍을 위해 타겟팅된 워드 라인에 인가된 패스 전압들의 근접성에 따라 가변적일 수 있다. 금지 전압은 접지 전위(예를 들어, Vss)에 대한 외부 소스 또는 전원(예를 들어, 배터리, AC 대 DC 컨버터 등)으로부터의 전압과 같은 공급 전압(Vcc)을 포함할 수 있다.
일 예로서, 프로그래밍 전압(예를 들어, 15V 이상)이 WL40와 같은 특정 워드 라인에 인가되는 경우, 비타겟팅된 메모리 셀들의 프로그래밍을 금지하거나, 프로그래밍을 위해 타겟팅되지 않은 이러한 메모리 셀들에 저장된 값을 유지하기 위해 10 V의 패스 전압이 WL30, WL50 등과 같은 하나 이상의 다른 워드 라인들에 인가될 수 있다. 인가된 프로그램 전압과 비타겟팅된 메모리 셀들 사이의 거리가 증가함에 따라, 비타겟팅된 메모리 셀들을 프로그래밍하는 것을 억제하는데 필요한 패스 전압이 감소될 수 있다. 예를 들어, 15 V의 프로그래밍 전압이 WL40에 인가되는 경우, 10 V의 패스 전압이 WL30 및 WL50에 인가될 수 있고, 8 V의 패스 전압이 WL20 및 WL60에 인가될 수 있으며, 7 V의 패스 전압이 WL10 및 WL70 등에 인가될 수 있다. 다른 예들에서, 패스 전압들 또는 워드 라인들의 수 등은 더 높거나 낮을 수 있거나, 더 많거나 적을 수 있다.
데이터는 종종 작은 유닛으로 저장 시스템에 임의로 저장된다. 단일 유닛으로 액세스되더라도, 데이터는 소규모로 랜덤 4-16 k 단일 파일 읽기들(예를 들어, 동작들의 60 % - 80 %는 16k보다 작음)이 수신될 수 있다. 데이터가 하나의 순차적 응집 유닛으로 저장되어야 함을 표시하는 것은 사용자와 커널 어플리케이션들에게 어렵다. 파일 시스템들은 일반적으로 순차 검색 공간이 아니라 공간 사용을 최적화하도록 설계된다. 데이터 라인들(예를 들어, 제1, 제2 또는 제3 비트 라인들(BL0-BL2)(420-422)) 중 하나 이상에 결합된 감지 증폭기들은 특정 데이터 라인에 전압 또는 전류를 감지함으로써 각각의 데이터 라인들의 각 메모리 셀의 상태를 검출할 수 있다.
하나 이상의 프로그래밍 펄스들(예를 들어, Vpgm)의 인가들 사이에서, 검증 동작이 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달했는지를 결정하기 위해 수행될 수 있다. 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달했다면, 추가 프로그래밍이 금지될 수 있다. 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달하지 않았다면, 추가 프로그래밍 펄스들이 인가될 수 있다. 특정 수(예를 들어, 최대 수)의 프로그래밍 펄스 후 선택된 메모리 셀이 의도된 프로그래밍된 상태에 도달하지 않은 경우, 선택된 메모리 셀 또는 이러한 선택된 메모리 셀과 관련된 스트링, 블록 또는 페이지는 결함으로 표시될 수 있다.
메모리 셀 또는 메모리 셀 그룹을 소거하기 위해(예를 들어, 소거가 일반적으로 블록들 또는 서브 블록들로 수행됨), 소거 전압(Vers)(예를 들어, 일반적으로 Vpgm)은 (예를 들어, 하나 이상의 비트 라인들, 선택 게이트들 등을 사용하여) 소거를 위해 타겟팅된 메모리 셀들의 기판(및 이에 따른 소스들과 드레인들 사이의 채널들)에 인가될 수 있는 반면, 타겟팅된 메모리 셀들의 워드 라인들은 접지 전위(예를 들어, Vss)와 같은 전위로 유지되어, 타겟팅된 메모리 셀들의 플로팅 게이트들에서 채널들로 전하 전달(예를 들어, 직접 주입 또는 파울러 노드하임(FN) 터널링 등)이 발생될 수 있다.
도 5는 복수의 메모리 셀들(504)을 갖는 메모리 어레이(502) 및 메모리 어레이(502)와의 통신을 제공하거나 메모리 어레이(502) 상에서 하나 이상의 메모리 동작들을 수행하기 위한 하나 이상의 회로들 또는 컴포넌트들을 포함하는 저장 시스템(500)의 예시적인 블록도를 예시한다. 단일 메모리 어레이(502)로 도시되었지만, 다른 예들에서, 하나 이상의 추가 메모리 어레이들, 다이들 또는 LUN들이 여기에 포함될 수 있다. 특정 예들에서, 다수의 다이들 또는 LUN들을 갖는 저장 시스템에서, 저장 시스템(500)은 각 다이 또는 LUN에 대한 회로들 및 컴포넌트들의 블록도를 나타낼 수 있다. 저장 시스템(500)는 행 디코더(512), 열 디코더(514), 감지 증폭기들(520), 페이지 버퍼(522), 선택기(524), 입력/출력(I/O) 회로(526) 및 메모리 제어 유닛(530)을 포함할 수 있다.
메모리 어레이(502)의 메모리 셀들(504)은 제1 및 제2 블록들(502A, 502B)과 같은 블록들로 배열될 수 있다. 각 블록은 서브 블록들을 포함할 수 있다. 예를 들어, 제1 블록(502A)은 제1 및 제2 서브 블록들(502A0, 502An)을 포함할 수 있고, 제2 블록(502B)은 제1 및 제2 서브 블록들(502B0, 502Bn)을 포함할 수 있다. 각 서브 블록은 다수의 물리 페이지들을 포함할 수 있으며, 각 페이지는 다수의 메모리 셀들(504)을 포함한다. 본원에서는 2개의 블록들을 갖는 것으로 예시되었지만, 각 블록은 2개의 서브 블록들을 가지며, 각 서브 블록은 다수의 메모리 셀들(504)을 가지며, 다른 예들에서, 메모리 어레이(502)는 더 많거나 적은 블록들, 서브 블록들, 메모리 셀들 등을 포함할 수 있다. 다른 예들에서, 메모리 셀들(504)은 다수의 행들, 열들, 페이지들, 서브 블록들, 블록들 등으로 배열될 수 있으며, 예를 들어 액세스 라인들(506), 제1 데이터 라인들(510), 또는 하나 이상의 선택 게이트들, 소스 라인들 등을 사용하여 액세스될 수 있다.
메모리 제어 유닛(530)은, 예를 들어, 원하는 동작(예를 들어, 쓰기, 읽기, 소거 등)을 나타내는 하나 이상의 클록 신호들이나 제어 신호들, 또는 하나 이상의 어드레스 라인들(516) 상에서 수신된 어드레스 신호들(A0-AX)을 포함하여, 제어 라인들(532) 상에서 수신된 하나 이상의 신호들 또는 인스트럭션들에 따라 저장 시스템(500)의 메모리 동작들을 제어할 수 있다. 저장 시스템(500) 외부의 하나 이상의 장치들은 제어 라인들(532) 상의 제어 신호들 또는 어드레스 라인(516) 상의 어드레스 신호들의 값들을 제어할 수 있다. 저장 시스템(500) 외부의 장치들의 예들은 이에 제한되는 것은 아니나, 호스트, 메모리 컨트롤러, 프로세서, 또는 도 5에 도시되지 않은 하나 이상의 회로들 또는 컴포넌트들을 포함할 수 있다.
저장 시스템(500)은 액세스 라인들(506) 및 제1 데이터 라인들(510)을 사용하여 메모리 셀들(504) 중 하나 이상에 데이터를 전송(예를 들어, 기록 또는 소거)하거나 이로부터 데이터를 전송(예를 들어, 읽기)할 수 있다. 행 디코더(512) 및 열 디코더(514)는 어드레스 라인들(516)로부터 어드레스 신호들(A0-AX)을 수신 및 디코딩할 수 있고, 메모리 셀들(504) 중 어느 것이 액세스될 지를 결정할 수 있으며, 신호들을 전술한 바와 같은 액세스 라인들(506)(예를 들어, 복수의 워드 라인들(WL0-WLm) 중 하나 이상) 또는 제1 데이터 라인들(510)(예를 들어, 복수의 비트 라인들(BL0-BLn) 중 하나 이상) 중 하나 이상에 제공할 수 있다.
저장 시스템(500)은 제1 데이터 라인들(510)을 이용한 메모리 셀들(504) 상의 데이터의 값들을 결정(예를 들어, 읽기)하거나, 또는 상기 메모리 셀들(504)에 기록될 데이터의 값들을 결정하도록 구성된 감지 증폭기들(520)과 같은 감지 회로부를 포함할 수 있다. 예를 들어, 선택된 메모리 셀(504) 스트링에서, 감지 증폭기들(520) 중 하나 이상은 선택된 스트링을 통해 데이터 라인들(510)로 메모리 어레이(502)에 흐르는 판독 전류에 응답하여 선택된 메모리 셀(504)에서 로직 레벨을 판독할 수 있다.
저장 시스템(500) 외부의 하나 이상의 장치들은 I/O 라인들(DQ0-DQN)(508), 어드레스 라인들(516)(A0-AX) 또는 제어 라인들(532)을 사용하여 저장 시스템(500)과 통신할 수 있다. 입력/출력(I/O) 회로(526)는 예를 들어, 제어 라인들(532) 및 어드레스 라인들(516)에 따라, I/O 라인들(508)을 사용하여, 페이지 버퍼(522) 또는 메모리 어레이(502)의 내부 또는 외부로와 같은 저장 시스템(500)의 내부 또는 외부로 데이터 값들을 전송할 수 있다. 페이지 버퍼(522)는 데이터가 메모리 어레이(502)의 관련 부분들로 프로그래밍되기 전에 저장 시스템(500) 외부의 하나 이상의 장치들로부터 수신된 데이터를 저장할 수 있거나, 데이터가 저장 시스템(500) 외부의 하나 이상의 장치들로 전송되기 전에 메모리 어레이(502)로부터 판독된 데이터를 저장할 수 있다.
열 디코더(514)는 어드레스 신호들(A0-AX)을 수신하여 하나 이상의 열 선택 신호들(CSEL1-CSELn)로 디코딩할 수 있다. 선택기(524)(예를 들어, 선택 회로)는 열 선택 신호들(CSEL1-CSELn)을 수신하고 메모리 셀들(504)로부터 판독되거나 메모리 셀들(504)로 프로그래밍 될 데이터의 값들을 나타내는 페이지 버퍼(522)에서 데이터를 선택할 수 있다. 선택된 데이터는 제2 데이터 라인들(518)을 사용하여 페이지 버퍼(522)와 I/O 회로(526) 사이에서 전달될 수 있다.
메모리 제어 유닛(530)은 외부 소스 또는 전원(예를 들어, 내부 또는 외부 배터리, AC 대 DC 컨버터 등)으로부터 공급 전압(Vcc)(534) 및 음의 전원(Vss)(536)(예를 들어, 접지 전위)과 같은 양 또는 음의 공급 신호들을 수신할 수 있다. 특정 예들에서, 메모리 제어 유닛(530)은 양 또는 음의 공급 신호드을 내부적으로 제공하기 위한 레귤레이터(528)를 포함할 수 있다.
도 6은 본원에 논의된 기술들(예를 들어, 방법론들) 중 임의의 하나 이상이 (예를 들어, 도 1 등에 도시된 바와 같이) 수행될 수 있을 때 예시적인 기계(예를 들어, 호스트 시스템)의 블록도를 예시한다. 대안적인 실시예들에서, 기계(600)는 독립형 장치로 동작할 수 있거나 다른 기계들에 연결(예를 들어, 네트워킹)될 수 있다. 네트워킹된 배치에서, 기계(600)는 서버 기계, 클라이언트 기계의 용량에서 또는 서버-클라이언트 네트워크 환경들의 둘 모두에서 동작할 수 있다. 일 예에서, 기계(600)는 피어 투 피어(P2P)(또는 다른 분산된) 네트워크 환경에서 피어 기계로서 작용할 수 있다. 기계(600)는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱박스(STB), 개인용 디지털 보조 장치(PDA), 모바일 폰, 웹 기기, IoT 장치, 자동차 시스템 또는 해당 기계에 의해 수행될 조치들을 명시하는 인스트럭션들(순차적 또는 다른 방식)을 실행할 수 있는 임의의 기계일 수 있다. 또한, 단일 기계만이 예시되어 있지만, "기계"라는 용어는 또한 클라우드 컴퓨팅, SaaS(Software as a Service), 기타 컴퓨터 클러스터 구성과 같이, 본원에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위해 인스트럭션 세트(또는 복수 세트)를 개별적으로 또는 공통으로 실행하는 임의의 기계 컬렉션을 포함하는 것으로 간주해야 한다.
본원에 설명된 바와 같은 예들은 로직, 컴포넌트들, 장치들, 패키지들 또는 메커니즘들을 포함하거나 이들에 의해 동작할 수 있다. 회로부는 하드웨어(예를 들어, 단순 회로들, 게이트들, 로직 등)를 포함하는 유형의 엔터티들로 구현된 회로 컬렉션(예를 들어, 세트)이다. 회로부 멤버쉽은 시간이 지남에 따라 플렉서블하고 기본 하드웨어 변동성이 있을 수 있다. 회로부들은 동작 시 단독으로 또는 조합하여 특정 작업들을 수행할 수 있는 멤버들을 포함한다. 예에서, 회로부의 하드웨어는 특정 동작(예를 들어, 하드 와이어)을 수행하도록 변경할 수 없게 설계될 수 있다. 예에서, 회로부의 하드웨어는 특정 동작의 인스트럭션들을 인코딩하기 위해 물리적으로 변형된(예를 들어, 불변 질량 입자의 자기적, 전기적, 이동 가능한 배치 등) 컴퓨터 판독 가능 매체를 포함하는 가변적으로 연결된 물리 컴포넌트들(예를 들어, 실행 유닛, 트랜지스터, 간단 회로 등)을 포함할 수 있다. 물리 컴포넌트들을 연결 시, 하드웨어 구성의 기본 전기적 특성들은 예를 들어, 절연체에서 도체로 또는 그 반대로 변경된다. 인스트럭션들은 참여 하드웨어(예를 들어, 실행 유닛 또는 로딩 메커니즘)가 작동 중에 특정 작업들의 일부를 수행하기 위해 가변 연결들을 통해 하드웨어에서 회로부의 멤버들을 생성할 수 있게 한다. 따라서, 컴퓨터 판독 가능 매체는 장치가 동작할 때 회로부의 다른 컴포넌트들에 통신 가능하게 연결된다. 일 예에서, 물리 컴포넌트들 중 어느 것도 하나 이상의 회로부의 하나 이상의 멤버에 사용될 수 있다. 예를 들어, 동작 하에서, 실행 유닛들은 한 시점에서 제1 회로부의 제1 회로에서 사용될 수 있고, 제1 회로부의 제2 회로에 의해, 또는 다른 시간에 제2 회로부의 제3 회로에 의해 재사용될 수 있다.
기계(예를 들어, 컴퓨터 시스템, 호스트 시스템 등)(600)는 처리 장치(602)(예를 들어, 하드웨어 프로세서, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합 등), 메인 메모리(604)(예를 들어, 읽기 전용 메모리(ROM), 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM) 등), 정적 메모리(606)(예를 들어, 정적 랜덤 액세스 메모리(SRAM) 등) 및 저장 시스템(618)을 포함할 수 있으며, 이들 중 일부 또는 전부는 통신 인터페이스(예를 들어, 버스)(630)를 통해 서로 통신할 수 있다.
처리 장치(602)는 마이크로프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 범용 프로세싱 장치들을 나타낸다. 보다 구체적으로, 프로세싱 장치는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 또는 인스트럭션 세트들을 구현하는 프로세서, 또는 인스트럭션 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 장치(602)는 또한 주문형 반도체(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 장치들일 수 있다. 처리 장치(602)는 본원에 논의된 동작들 및 단계들을 수행하기 위한 인스트럭션들(626)을 수행하도록 구성된다. 컴퓨터 시스템(600)은 네트워크(620)를 통해 통신하기 위한 네트워크 인터페이스 장치(608)를 더 포함할 수 있다.
저장 시스템(618)는 본원에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 하나 이상의 인스트력션 세트 또는 소프트웨어(626)가 저장되는 기계 판독 가능 저장 매체(컴퓨터 판독 가능 매체라고도 함)를 포함할 수 있다. 인스트럭션들(626)은 또한 기계 판독 가능 저장 매체를 구성하는 컴퓨터 시스템(600), 메인 메모리(604) 및 프로세싱 장치(602)에 의한 실행 동안 메인 메모리(604) 내에 또는 처리 장치(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다.
"기계 판독 가능 저장 매체"라는 용어는 기계에 의해 실행되는 인스트럭션 세트를 저장 또는 인코딩할 수 있고 기계가 본 개시의 방법들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 간주되어야 한다. 따라서, "기계 판독 가능 저장 매체"라는 용어는, 이에 제한되는 것은 아니나, 솔리드 스테이트 메모리들, 광학 매체 및 자기 매체를 포함하는 것으로 간주되어야 한다. 일 예에서, 매스 기계 판독 가능 매체는 복수의 입자들을 이 불변(예를 들어, 휴지) 매스(mass)를 갖는 기계 판독 가능 매체를 포함한다. 따라서, 매스 기계 판독 가능 매체는 일시적 전파 신호들이 아니다. 매스 기계 판독 가능 매체의 특정 예들은, 반도체 메모리 장치들(예를 들어, 전기적으로 프로그래밍 가능 읽기 전용 메모리(EPROM), 전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리(EEPROM)) 및 플래시 메모리 디바이스들과 같은 비휘발성 메모리; 내부 하드 디스크들 및 이동식 디스크들과 같은 자기 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함할 수 있다.
기계(600)는 디스플레이 유닛, 영숫자 입력 장치(예를 들어, 키보드) 및 사용자 인터페이스(UI) 내비게이션 장치(예를 들어, 마우스)를 더 포함할 수 있다. 일 예에서, 디스플레이 유닛, 입력 장치 또는 UI 네비게이션 장치 중 하나 이상은 터치 스크린 디스플레이일 수 있다. 기계는 신호 생성 장치(예를 들어, 스피커) 또는 위성 위치확인 시스템(GPS) 센서, 나침반, 가속도계 또는 하나 이상의 다른 센서와 같은 하나 이상의 센서들이다. 기계(600)는 하나 이상의 주변 장치들(예를 들어, 프린터, 카드 리더기 등)을 통신 또는 제어하기 위한 직렬(예를 들어, 범용 직렬 버스(USB), 병렬 또는 다른 유선 또는 무선(예: 적외선(IR), 근거리 통신(NFC) 등) 연결과 같은 출력 컨트롤러를 포함할 수 있다.
인스트럭션들(626)(예를 들어, 소프트웨어, 프로그램, 운영 체제(OS) 등) 또는 다른 데이터는 저장 시스템(618)에 저장되고, 처리 장치(602)에 의해 사용하기 위해 메인 메모리(604)에 의해 액세스될 수 있다. 메인 메모리(604)(예를 들어, DRAM)는 일반적으로 빠르지만 휘발성이며, 따라서 "오프" 상태에 있는 동안을 포함하는 장기 저장에 적합한 저장 시스템(618)(예를 들어, SSD)와는 다른 유형의 저장 장치이다. 사용자 또는 기계(600)에 의해 사용 중인 인스트럭션들(626) 또는 데이터는 일반적으로 처리 장치(602)에 의해 사용하기 위해 메인 메모리(604)에 로드된다. 메인 메모리(604)가 가득 찬 경우, 저장 시스템(618)으로부터의 가상 공간은 메인 메모리(604)를 보충하기 위해 할당될 수 있다; 그러나, 저장 시스템(618)은 일반적으로 메인 메모리(604)보다 느리고, 기록 속도는 일반적으로 판독 속도보다 적어도 2배 느리기 때문에, 가상 메모리의 사용은 (메인 메모리(604), 예를 들어 DRAM과는 대조적으로) 저장 시스템 레이턴시로 인해 사용자 경험을 크게 감소시킬 수 있다. 또한, 가상 메모리에 대한 저장 시스템(618)의 사용은 저장 시스템(618)의 사용 가능한 수명을 크게 줄일 수 있다.
인스트럭션들(624)은 다수의 전송 프로토콜들(예를 들어, 프레임 릴레이, 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터 그램 프로토콜(UDP), 하이퍼 텍스트 전송 프로토콜(HTTP) 등) 중 어느 하나를 사용하여 네트워크 인터페이스 장치(608)를 통해 전송 매체를 사용하여 네트워크(620)를 통해 전송되거나 수신될 수 있다. 예시적인 통신 네트워크들은 그 중에서도, 근거리 통신망(LAN), 광역 통신망(WAN), 패킷 데이터 네트워크(예를 들어, 인터넷), 이동 전화 네트워크(예를 들어, 셀룰러 네트워크), POTS(Plain Old Telephone) 네트워크들, 무선 데이터 네트워크들(예를 들어, Wi-Fi®로 알려진 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준 패밀리, WiMax®로 알려진 IEEE 802.16 표준 패밀리), IEEE 802.15.4 표준 패밀리, 피어 투 피어(P2P) 네트워크들을 포함할 수 있다. 일 예에서, 네트워크 인터페이스 장치(608)는 네트워크(620)에 연결하기 위한 하나 이상의 물리적 잭들(예를 들어, 이더넷, 동축 또는 폰 잭들) 또는 하나 이상의 안테나들을 포함할 수 있다. 일 예에서, 네트워크 인터페이스 장치(608)는 단일 입력 다중 출력(SIMO), 다중 입력 다중 출력(MIMO) 또는 다중 입력 단일 출력(MISO) 기술들 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나들을 포함할 수 있다. "전송 매체"라는 용어는 기계(600)에 의해 실행을 위한 인스트럭션들을 저장, 인코딩 또는 전송할 수 있는 임의의 무형 매체를 포함하며, 이러한 소프트웨어의 통신을 용이하게 하기 위해 디지털 또는 아날로그 통신 신호들 또는 다른 무형 매체를 포함하도록 해야 한다.
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조들을 포함한다. 도면들은 예시로서 본 발명이 실시될 수 있는 특정 실시예들을 도시한다. 이러한 실시예들은 본원에서 "예들"로도 지칭된다. 이러한 예들은 도시되거나 설명된 것 외에 요소들을 포함할 수 있다. 그러나, 본 발명자들은 또한 도시되거나 설명된 요소들만이 제공되는 예들을 고려한다. 게다가, 본 발명자들은 또한 특정 예(또는 이의 하나 이상의 측면들)와 관련하여, 또는 본원에 도시되거나 설명된 다른 예들(또는 이의 하나 이상의 측면들)과 관련하여 도시되거나 설명된 이러한 요소들(또는 이의 하나 이상의 측면들)의 임의의 조합 또는 순열을 사용하는 예들을 고려한다.
이 문서에서, "a" 또는 "an"이라는 용어는 특허 문서들에서 일반적으로 사용되는 것으로서, "적어도 하나" 또는 "하나 이상"의 다른 예들이나 사용들과 무관하게 하나 이상을 포함하는 데 사용된다. 이 문서에서, "또는" 이라는 용어는 달리 지시되지 않는 한, 비배타적인 것을 지칭하거나, "A 또는 B"가 "A이지만 B가 아닌", "B이지만 A가 아닌" 및 "A 및 B"를 포함할 수 있도록 하는 데 사용된다. 첨부된 청구범위에서, "포함하는(including)" 및 "in which"이라는 용어는 "포함하는(comprising)" 및 "wherein" 이라는 각각의 용어들의 일반 영어와 동등한 의미로 사용된다. 또한, 다음의 청구범위에서, "포함하는(including)" 및 "포함하는(comprising)" 이라는 용어들은 오픈 엔디드(open-ended)이다. 청구 범위에서 이러한 용어 뒤에 나열된 것 외에 요소들을 포함하는 시스템, 장치, 물품 또는 프로세스는 여전히 그 청구항의 범위에 속하는 것으로 간주된다. 게다가, 하기의 청구범위에서, "제1", "제2" 및 "제3" 등의 용어들은 단지 라벨들로서 사용되며, 대상들에 수치 적 요건들을 부과하려는 의도는 아니다.
다양한 예들에서, 본원에 설명된 컴포넌트들, 컨트롤러들, 프로세서들, 유닛들, 엔진들 또는 표들은 그 중에서도, 물리적 장치 상에 저장된 물리적 회로 또는 펌웨어를 포함할 수 있다. 본원에 사용된 바와 같이, "프로세서"는 제한하는 것은 아니나, 마이크로 프로세서, 마이크로 컨트롤러, 그래픽 프로세서, 디지털 신호 프로세서(DSP), 또는 프로세서 또는 다중 코어 장치 그룹을 포함하는 임의의 다른 유형의 프로세서 또는 처리 회로와 같은 모든 유형의 계산 회로를 의미한다.
본원에 사용된 바와 같은 메모리 셀을 동작시키는 것은 메모리 셀로부터 판독하거나 이에 기록하거나 이를 소거하는 것을 포함한다. 메모리 셀을 의도된 상태로 배치하는 동작은 본원에서 "프로그래밍"으로 지칭되며, 메모리 셀에 기록하거나 이로부터 소거하는 것 둘 다를 포함할 수 있다(예를 들어, 메모리 셀은 소거된 상태로 프로그래밍될 수 있다).
본 개시의 하나 이상의 실시예들에 따르면, 저장 시스템의 내부 또는 외부에 위치된 메모리 컨트롤러(예: 프로세서, 컨트롤러, 펌웨어 등)는 마모량 주기 또는 마모 상태(예를 들어, 마모 사이클 기록, 발생하는 저장 시스템의 동작들을 카운팅, 개시되는 저장 시스템의 동작들을 추적, 마모 상태에 대응되는 저장 시스템 특성을 평가 등)를 결정(예를 들어, 선택, 설정, 조정, 계산, 변경, 삭제, 통신, 적응, 도출, 정의, 활용, 수정, 적용 등)할 수 있다.
본 개시의 하나 이상의 실시예들에 따르면, 메모리 액세스 장치는 각 메모리 동작에 의해 저장 시스템에 마모 사이클 정보를 제공하도록 구성될 수 있다. 저장 시스템 제어 회로부(예를 들어, 제어 로직)는 마모 사이클 정보에 대응되는 저장 시스템 성능 변화들을 보상하도록 프로그래밍될 수 있다. 저장 시스템은 마모 사이클 정보를 수신하고, 마모 사이클 정보에 응답하여 하나 이상의 동작 파라미터들(예를 들어, 값, 특성)을 결정할 수 있다.
요소가 다른 요소 "상"에 있거나, "연결되어" 있거나 "결합되어" 있는 것으로 지칭될 때, 이는 직접 다른 요소 상에 있거나, 연결되거나 결합되거나, 중간 요소들이 존재할 수 있음을 이해하게 될 것이다. 반대로, 요소가 다른 요소 "바로 위에" 있거나, "직접 연결되어" 있거나 "직접 결합되어" 있는 것으로 지칭될 때, 중간 요소들 또는 층들이 존재하지 않는다. 두 요소들이 도면들에 이들을 연결하는 선으로 도시되어 있는 경우, 달리 지시되지 않는 한, 두 요소들은 결합되거나 직접 결합될 수 있다.
본원에 설명된 방법 예들은 적어도 부분적으로 기계, 장치 또는 컴퓨터로 구현될 수 있다. 일부 예들은 상기 예들에서 설명된 바와 같은 방법들을 수행하기 위해 전자 장치를 구성하도록 동작 가능한 인스트럭션들로 인코딩된 컴퓨터 판독 가능 매체, 장치 판독 가능 매체 또는 기계 판독 가능 매체를 포함할 수 있다. 이러한 방법들의 구현은 마이크로코드, 어셈블리 언어 코드, 고급 언어 코드 등과 같은 코드를 포함할 수 있다. 이러한 코드는 다양한 방법들을 수행하기 위한 컴퓨터 판독 가능 인스트럭션들을 포함할 수 있다. 코드는 컴퓨터 프로그램 제품들의 일부를 형성할 수 있다. 또한, 코드는 실행 동안 또는 다른 시간과 같이, 하나 이상의 휘발성 또는 비휘발성의 유형 컴퓨터 판독 가능 매체에 유형적으로 저장될 수 있다. 이러한 유형의 컴퓨터 판독 가능 매체의 예들은 제한하는 것은 아니나, 하드 디스크, 착탈식 자기 디스크, 착탈식 광 디스크(예를 들어, 콤팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 솔리드 스테이트 드라이브(SSD), 범용 플래시 메모리(UFS) 디바이스, eMMC(embedded MMC) 장치 등을 포함할 수 있다.
예 1에서, 주제(예를 들어, 시스템)은, 메모리 컨트롤러 및 메모리 어레이를 포함하는 저장 시스템을 포함하며, 상기 저장 시스템은 논리적-대-물리적(L2P) 맵의 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하고, L2P 정보를 호스트 장치로 제공하도록 구성되며, 상기 메모리 컨트롤러는 변경된 L2P 영역 및 관련 서브 영역 정보; 로드될 L2P 영역 및 관련 서브 영역 정보; 및 유효하지 않은 L2P 영역 및 관련 서브 영역 정보를 포함하는 호스트 메모리 요청에 대한 응답을 제공하도록 구성된다.
예 2에서, 예 1의 주제는 응답이 필드들을 포함하는 응답 정보 유닛을 포함하도록 선택적으로 구성될 수 있으며, 상기 필드들은, 변경된 L2P 영역 및 상기 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 로드될 L2P 영역 및 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및 유효하지 않은 L2P 영역 및 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는 응답 정보 유닛을 포함할 수 있다.
예 3에서, 예 1 내지 2 중 어느 하나 이상의 주제는 변경된 L2P 영역 및 관련 서브 영역 정보가 이전에 호스트 장치에 제공된 L2P 정보에 대해 변경되도록 선택적으로 구성될 수 있으며, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 이전에 호스트 장치에 제공된 L2P 정보에 대해 유효하지 않다.
예 4에서, 예 1 내지 3 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역은 단일 L2P 영역을 포함하도록 선택적으로 구성될 수 있다.
예 5에서, 예 1 내지 4 중 어느 하나 이상의 주제는 서브 영역 크기가 4K 바이트이고 영역은 다수의 서브 영역들을 포함하도록 선택적으로 구성될 수 있다.
예 6에서, 예 1 내지 5 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는, 1 바이트의 유효하지 않은 L2P 영역 인덱스; 및 2 바이트의 유효하지 않은 L2P 서브 영역 인덱스를 포함하도록 선택적으로 구성될 수 있다.
예 7에서, 예 1 내지 6 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보를 포함하도록 선택적으로 구성될 수 있다.
예 8에서, 예 1 내지 7 중 어느 하나 이상의 주제는 호스트 장치를 선택적으로 포함할 수 있으며, 호스트 장치는 저장 시스템에 L2P 정보를 요청하고, 수신하고 저장하도록 구성되고 L2P 읽기 버퍼 명령을 사용하여 저장 시스템에 L2P 정보를 요청하도록 구성된다.
예 9에서, 주제(예를 들어, 시스템)은, 메모리 컨트롤러 및 메모리 어레이를 포함하는 저장 시스템을 포함하며, 상기 저장 시스템은 논리적-대-물리적(L2P) 맵의 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하고, L2P 정보를 호스트 장치로 제공하도록 구성되고, 상기 메모리 컨트롤러는 호스트 메모리 요청에 대한 응답을 제공하도록 구성되며, 상기 응답은 필드들을 포함하는 응답 정보 유닛을 포함하며, 상기 필드들은 변경된 L2P 영역 및 관련 서브 영역 필드; 로드될 L2P 영역 및 관련 서브 영역 필드; 및 유효하지 않은 L2P 영역 및 관련 서브 영역 필드를 포함한다.
예 10에서, 예 9의 주제는 변경된 L2P 영역 및 관련 서브 영역 필드가 이전에 호스트 장치에 제공된 L2P 정보에 대해 변경된 L2P 영역 및 관련 서브 영역 정보를 포함하고, 로드될 L2P 영역 및 관련 서브 영역 필드가 이전에 호스트 장치에 제공된 L2P 정보에 대해 로드될 L2P 영역 및 관련 서브 영역 정보를 포함하고, 유효하지 않은 L2P 영역 및 관련 서브 영역 필드가 이전에 호스트 장치에 제공된 L2P 정보에 대해 유효하지 않은 L2P 영역 및 관련 서버 영역을 포함하도록 선택적으로 구성될 수 있다.
예 11에서, 예 9 내지 10 중 어느 하나 이상의 주제는 서브 영역 크기가 4K 바이트이고 영역은 다수의 서브 영역들을 포함하도록 선택적으로 구성될 수 있다.
예 12에서, 예 9 내지 11 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 필드가 기본적으로, 1 바이트의 유효하지 않은 L2P 영역 인덱스; 2 바이트의 유효하지 않은 L2P 서브 영역 인덱스; 및 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보로 구성되도록 선택적으로 구성될 수 있다.
예 13에서, 주제(예를 들어, 방법)는 메모리 컨트롤러 및 메모리 어레이를 포함하는 저장 시스템을 사용하여, 논리적-대-물리적(L2P) 맵의 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하는 단계; 및 상기 저장 시스템에 의해, 변경된 L2P 영역 및 관련 서브 영역 정보; 로드될 L2P 영역 및 관련 서브 영역 정보; 및 유효하지 않은 L2P 영역 및 관련 서브 영역 정보를 포함하는 호스트 메모리 요청에 대한 응답을 제공하는 단계를 포함한다.
예 14에서, 예 13의 주제는 응답이 필드들을 포함하는 응답 정보 유닛을 포함하도록 선택적으로 구성될 수 있으며, 상기 필드들은, 변경된 L2P 영역 및 상기 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 로드될 L2P 영역 및 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및 유효하지 않은 L2P 영역 및 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는 응답 정보 유닛을 포함할 수 있다.
예 15에서, 예 13 내지 14 중 어느 하나 이상의 주제는 변경된 L2P 영역 및 관련 서브 영역 정보가 이전에 호스트 장치에 제공된 L2P 정보에 대해 변경되도록 선택적으로 구성될 수 있으며, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 이전에 호스트 장치에 제공된 L2P 정보에 대해 유효하지 않다.
예 16에서, 예 13 내지 15 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역은 단일 L2P 영역을 포함하도록 선택적으로 구성될 수 있다.
예 17에서, 예 13 내지 16 중 어느 하나 이상의 주제는 서브 영역 크기가 4K 바이트이고 영역은 다수의 서브 영역들을 포함하도록 선택적으로 구성될 수 있다.
예 18에서, 예 13 내지 17 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는, 1 바이트의 유효하지 않은 L2P 영역 인덱스; 및 2 바이트의 유효하지 않은 L2P 서브 영역 인덱스를 포함하도록 선택적으로 구성될 수 있다.
예 19에서, 예 13 내지 18 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보를 포함하도록 선택적으로 구성될 수 있다.
예 20에서, 예 13 내지 19 중 어느 하나 이상의 주제는, 호스트 장치에 의해, L2P 읽기 버퍼 명령을 사용하여 상기 저장 시스템에 L2P 정보를 요청하는 단계; 및 상기 호스트 장치에 의해, 상기 저장 시스템으로부터 수신된 L2P 정보를 수신 및 저장하는 단계를 선택적으로 포함한다.
예 21에서, 주제(예를 들어, 적어도 하나의 비일시적 장치 판독 가능 저장 매체)는 저장 시스템의 메모리 컨트롤러에 의해 실행 시, 메모리 컨트롤러가, 논리적-대-물리적(L2P) 맵의 저장 시스템의 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하는 단계; 및 변경된 L2P 영역 및 관련 서브 영역 정보; 로드될 L2P 영역 및 관련 서브 영역 정보; 및 유효하지 않은 L2P 영역 및 관련 서브 영역 정보를 포함하는 호스트 메모리 요청에 대한 응답을 제공하는 단계를 포함하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
예 22에서, 예 21의 주제는 호스트 메모리 요청에 대한 응답을 제공하는 단계는, 필드들을 포함하는 응답 정보 유닛을 제공하는 단계를 포함하며, 상기 필드들은, 변경된 L2P 영역 및 상기 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 로드될 L2P 영역 및 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및 유효하지 않은 L2P 영역 및 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는 응답 정보 유닛을 포함할 수 있다.
예 23에서, 예 21 내지 22 중 어느 하나 이상의 주제는 변경된 L2P 영역 및 관련 서브 영역 정보가 이전에 호스트 장치에 제공된 L2P 정보에 대해 변경되도록 선택적으로 구성될 수 있으며, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 이전에 호스트 장치에 제공된 L2P 정보에 대해 유효하지 않다.
예 24에서, 예 21 내지 23 중 어느 하나 이상의 주제는 서브 영역 크기가 4K 바이트이고 영역은 다수의 서브 영역들을 포함하도록 선택적으로 구성될 수 있다.
예 25에서, 예 21 내지 24 중 어느 하나 이상의 주제는 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는, 1 바이트의 유효하지 않은 L2P 영역 인덱스; 2 바이트의 유효하지 않은 L2P 서브 영역 인덱스; 및 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보를 포함하도록 선택적으로 구성될 수 있다.
예 26에서, 주제(예를 들어, 시스템 또는 장치)는 예 1 내지 25의 기능들 또는 방법들 중 어느 하나 이상의 어느 일부를 수행하기 "위한 수단들", 또는 기계에 의해 수행 시, 상기 기계가 예 1 내지 25의 기능들 또는 방법들 중 어느 하나 이상의 어느 일부를 수행하도록 하는 인스트럭션들을 포함하는 적어도 하나의 "비일시적 기계 판독 가능 매체"을 포함하도록 예 1 내지 25의 예들의 어느 하나 이상의 어느 일부 또는 어느 일부의 조합을 선택적으로 결합할 수 있다.
상기 설명은 제한하는 것이 아닌 예시적인 것으로 의도된다. 예를 들어, 상기 설명된 예들(또는 이들의 하나 이상의 측면들)은 서로 조합하여 사용될 수 있다. 다른 실시예들은 상기 설명을 검토 시 본 기술 분야의 통상의 숙련자에 의해서와 같이, 사용될 수 있다. 청구 범위의 범위 또는 의미를 해석하거나 제한하는 데 사용되지 않을 것이라는 이해와 함께 제출된다. 또한, 상기 상세한 설명에서, 다양한 특징들은 본 개시를 간소화하기 위해 함께 그룹화될 수 있다. 이는 청구되지 않은 개시된 기능이 모든 청구 범위에 필수적임을 의도하는 것으로 해석되어서는 안된다. 오히려, 본 발명의 주제는 특정 개시된 실시예의 모든 특징들보다 적을 수 있다. 따라서, 아래의 청구범위는 각 청구 범위는 그 자체가 별도의 실시예로서 유효한 상태로 상세한 설명에 통합되며, 이러한 실시예들은 다양한 조합 또는 순열로 서로 조합될 수 있는 것으로 고려된다. 본 발명의 범위는 이러한 청구 범위가 부여되는 등가물들의 전체 범위와 함께, 첨부된 청구 범위를 참조하여 결정되어야 한다.

Claims (16)

  1. 시스템에 있어서,
    메모리 컨트롤러 및 메모리 어레이를 포함하는 저장 시스템으로서, 상기 저장 시스템은 논리적-대-물리적(L2P) 맵의 상기 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하고, L2P 정보를 호스트 장치에 제공하도록 구성되는, 상기 저장 시스템; 및
    변경된 L2P 영역 및 관련 서브 영역 정보;
    로드될 L2P 영역 및 관련 서브 영역 정보; 및
    유효하지 않은 L2P 영역 및 관련 서브 영역을 포함하는 호스트 메모리 요청에 대한 응답을 제공하기 위한 수단을 포함하는, 시스템.
  2. 제1항에 있어서, 상기 응답은 필드들을 포함하는 응답 정보 유닛을 포함하며, 상기 필드들은,
    변경된 L2P 영역 및 상기 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드;
    로드될 L2P 영역 및 상기 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및
    유효하지 않은 L2P 영역 및 상기 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는, 시스템.
  3. 제1항에 있어서, 상기 변경된 L2P 역역 및 관련 서브 영역 정보는 이전에 상기 호스트 장치에 제공된 상기 L2P 정보에 대해 변경되고,
    상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 이전에 상기 호스트 장치에 제공된 상기 L2P 정보에 대해 유효하지 않은, 시스템.
  4. 제1항에 있어서, 상기 유효하지 않은 L2P 영역은 단일 L2P 영역을 포함하는, 시스템.
  5. 제1항에 있어서, 서브 영역 크기는 4K 바이트이고,
    영역은 다수의 서브 영역들을 포함하는, 시스템.
  6. 제1항에 있어서, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는,
    1 바이트의 유효하지 않은 L2P 영역 인덱스; 및
    2 바이트의 유효하지 않은 L2P 서브 영역 인덱스를 포함하는, 시스템.
  7. 제6항에 있어서, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보를 포함하는, 시스템.
  8. 제1항에 있어서, 상기 호스트 장치를 포함하며,
    상기 호스트 장치는 상기 저장 시스템에 L2P 정보를 요청하고, 상기 저장 시스템으로부터 이를 수신 및 저장하도록 구성되고,
    상기 호스트 장치는 L2P 읽기 버퍼 명령을 사용하여 상기 저장 시스템에 L2P 정보를 요청하도록 구성되고,
    상기 호스트 메모리 요청에 대한 상기 응답을 제공하기 위한 상기 수단은 상기 호스트 메모리 요청에 대한 상기 응답을 제공하도록 구성된 상기 메모리 컨트롤러를 포함하는, 시스템.
  9. 방법에 있어서,
    메모리 컨트롤러 및 메모리 어레이를 포함하는 저장 시스템을 사용하여, 논리적-대-물리적(L2P) 맵의 메모리 어레이에 저장된 데이터의 논리적 블록 어드레스(LBA)와 물리적 어드레스(PA) 사이의 관계를 유지하는 단계; 및
    상기 저장 시스템에 의해,
    변경된 L2P 영역 및 관련 서브 영역 정보;
    로드될 L2P 영역 및 관련 서브 영역 정보; 및
    유효하지 않은 L2P 영역 및 관련 서브 영역을 포함하는 호스트 메모리 요청에 대한 응답을 제공하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 응답은 필드들을 포함하는 응답 정보 유닛을 포함하며, 상기 필드들은,
    변경된 L2P 영역 및 상기 변경된 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드;
    로드될 L2P 영역 및 상기 로드될 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드; 및
    유효하지 않은 L2P 영역 및 상기 유효하지 않은 L2P 영역과 관련 서브 영역 정보를 포함하는 관련 서브 영역 필드를 포함하는, 방법.
  11. 제9항에 있어서, 상기 변경된 L2P 영역 및 관련 서브 영역 정보는 이전에 상기 호스트 장치에 제공된 상기 L2P 정보에 대해 변경되고,
    상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 이전에 상기 호스트 장치에 제공된 상기 L2P 정보에 대해 유효하지 않은, 방법.
  12. 제9항에 있어서, 상기 유효하지 않은 L2P 영역은 단일 L2P 영역을 포함하는, 방법.
  13. 제9항에 있어서, 서브 영역 크기는 4K 바이트이고,
    영역은 다수의 서브 영역들을 포함하는, 방법.
  14. 제9항에 있어서, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는,
    1 바이트의 유효하지 않은 L2P 영역 인덱스; 및
    2 바이트의 유효하지 않은 L2P 서브 영역 인덱스를 포함하는, 방법.
  15. 제14항에 있어서, 상기 유효하지 않은 L2P 영역 및 관련 서브 영역 정보는 1 바이트의 유효하지 않은 L2P 플래그들 또는 다른 정보를 포함하는, 방법.
  16. 제9항에 있어서,
    상기 호스트 장치에 의해, L2P 읽기 버퍼 명령을 사용하여 상기 저장 시스템에 L2P 정보를 요청하는 단계; 및
    상기 호스트 장치에 의해, 상기 저장 시스템으로부터 수신된 L2P 정보를 수신 및 저장하는 단계를 포함하는, 방법.
KR1020207033214A 2018-04-23 2019-04-22 호스트 논리적-대-물리적 정보 리프레시 KR20200133817A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862661283P 2018-04-23 2018-04-23
US62/661,283 2018-04-23
PCT/US2019/028501 WO2019209707A1 (en) 2018-04-23 2019-04-22 Host logical-to-physical information refresh

Publications (1)

Publication Number Publication Date
KR20200133817A true KR20200133817A (ko) 2020-11-30

Family

ID=68293578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207033214A KR20200133817A (ko) 2018-04-23 2019-04-22 호스트 논리적-대-물리적 정보 리프레시

Country Status (5)

Country Link
US (2) US11487652B2 (ko)
JP (1) JP2021522579A (ko)
KR (1) KR20200133817A (ko)
CN (1) CN112166420B (ko)
WO (1) WO2019209707A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941246B2 (en) 2021-06-07 2024-03-26 SK Hynix Inc. Memory system, data processing system including the same, and operating method thereof
US12056356B2 (en) 2022-08-04 2024-08-06 SK Hynix Inc. Storage device, electronic device including the same, and operating method thereof

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019209707A1 (en) 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh
US11138108B2 (en) * 2019-08-22 2021-10-05 Micron Technology, Inc. Logical-to-physical map synchronization in a memory device
KR20210156090A (ko) * 2020-06-17 2021-12-24 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210157537A (ko) * 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
TWI758944B (zh) * 2020-06-23 2022-03-21 慧榮科技股份有限公司 資料處理方法及對應之資料儲存裝置
CN113835617B (zh) 2020-06-23 2024-09-06 慧荣科技股份有限公司 数据处理方法及对应的数据储存装置
CN113946279A (zh) * 2020-07-16 2022-01-18 慧荣科技股份有限公司 主机效能加速模式的数据读取方法及装置
US11960438B2 (en) * 2020-09-08 2024-04-16 Rambus Inc. Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture
KR20220049215A (ko) * 2020-10-14 2022-04-21 삼성전자주식회사 메모리 장치, 호스트 장치 및 이들을 포함하는 메모리 시스템
US20230359538A1 (en) * 2021-03-16 2023-11-09 Micron Technology, Inc. Performance benchmark for host performance booster
WO2022193130A1 (en) * 2021-03-16 2022-09-22 Micron Technology, Inc. Managing regions of a memory system
JP2022147448A (ja) * 2021-03-23 2022-10-06 キオクシア株式会社 メモリシステム及びデータ管理方法
US11995349B2 (en) * 2022-10-04 2024-05-28 Silicon Motion, Inc. Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding
US11994985B2 (en) * 2022-10-04 2024-05-28 Silicon Motion, Inc. Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information encoding and decoding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0127029B1 (ko) * 1994-10-27 1998-04-01 김광호 메모리카드와 그 기록, 재생 및 소거방법
JP5291311B2 (ja) * 2007-08-31 2013-09-18 株式会社アイ・オー・データ機器 Usbストレージシステムおよびデータ転送制御用のプログラム
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
JP2013033337A (ja) * 2011-08-01 2013-02-14 Toshiba Corp 情報処理装置及び半導体記憶装置
US9003102B2 (en) * 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
WO2013094007A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 負荷分散システム
US9323667B2 (en) * 2012-04-12 2016-04-26 Violin Memory Inc. System and method for managing trim operations in a flash memory system using mapping tables and block status tables
US9003025B2 (en) * 2012-07-05 2015-04-07 International Business Machines Corporation User identification using multifaceted footprints
US9098400B2 (en) * 2012-10-31 2015-08-04 International Business Machines Corporation Dynamic tuning of internal parameters for solid-state disk based on workload access patterns
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
US9514057B2 (en) * 2013-12-04 2016-12-06 Sandisk Technologies Llc Storage module and method for managing logical-to-physical address mapping
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
US10540275B2 (en) * 2014-12-22 2020-01-21 Sony Corporation Memory controller, information processing system, and memory extension area management method
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
US10229051B2 (en) * 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
WO2019209707A1 (en) 2018-04-23 2019-10-31 Micron Technology, Inc. Host logical-to-physical information refresh

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941246B2 (en) 2021-06-07 2024-03-26 SK Hynix Inc. Memory system, data processing system including the same, and operating method thereof
US12056356B2 (en) 2022-08-04 2024-08-06 SK Hynix Inc. Storage device, electronic device including the same, and operating method thereof

Also Published As

Publication number Publication date
WO2019209707A1 (en) 2019-10-31
US20220004489A1 (en) 2022-01-06
US11487652B2 (en) 2022-11-01
CN112166420A (zh) 2021-01-01
CN112166420B (zh) 2024-04-05
US20230062372A1 (en) 2023-03-02
JP2021522579A (ja) 2021-08-30

Similar Documents

Publication Publication Date Title
CN112166420B (zh) 用于刷新逻辑到物理信息的系统和方法
CN111984553B (zh) 主机装置物理地址编码
US11650931B2 (en) Hybrid logical to physical caching scheme of L2P cache and L2P changelog
US11720489B2 (en) Scheme to improve efficiency of device garbage collection in memory devices
CN110471788B (zh) 异步功率损耗影响的数据结构
CN111433753B (zh) 动态l2p高速缓存
CN113396383B (zh) 存储装置中顺序数据优化的子区域
US11386005B2 (en) Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache
US11132044B2 (en) Dynamic P2L asynchronous power loss mitigation
US20240118831A1 (en) Managed nand data compression
CN112041931B (zh) 跟踪逻辑块地址的数据温度
CN113439266B (zh) 使用行程长度编码算法的映射表压缩
CN111966614A (zh) 内部通信接口管理
CN114365097A (zh) 受管理存储器系统中的写入缓冲器控制
US12072809B2 (en) Memory system, memory controller, and operation method of memory system for loading and updating mapping information to host memory area
CN112445717B (zh) 用于取消映射技术的元数据分组

Legal Events

Date Code Title Description
E601 Decision to refuse application