KR102492729B1 - 가변 폭 수퍼 블록 어드레싱 - Google Patents

가변 폭 수퍼 블록 어드레싱 Download PDF

Info

Publication number
KR102492729B1
KR102492729B1 KR1020207019800A KR20207019800A KR102492729B1 KR 102492729 B1 KR102492729 B1 KR 102492729B1 KR 1020207019800 A KR1020207019800 A KR 1020207019800A KR 20207019800 A KR20207019800 A KR 20207019800A KR 102492729 B1 KR102492729 B1 KR 102492729B1
Authority
KR
South Korea
Prior art keywords
block
planes
super block
super
nand
Prior art date
Application number
KR1020207019800A
Other languages
English (en)
Other versions
KR20200096614A (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 KR20200096614A publication Critical patent/KR20200096614A/ko
Application granted granted Critical
Publication of KR102492729B1 publication Critical patent/KR102492729B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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

Abstract

NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 명령들을 포함하는 NAND 디바이스, 방법 및 기계 판독 가능한 매체가 제공된다 방법은 다음을 포함한다: 가변 폭 수퍼 블록 어드레싱을 위한 디바이스들 및 기술들이 여기에 설명된다. 평면들의 수로 지정되는 수퍼 블록 폭이 획득된다. NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리가 생성된다. 여기서, 수퍼 블록 엔트리는 NAND 디바이스로부터의, NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 갖는 블록 집합을 포함할 수 있다. 고유한 블록 인덱스들의 수는 평면들의 수와 동일하고 상이한 평면들에 있다. 수퍼 블록 엔트리를 사용하여 요청 개체로부터 수신되는 요청이 수행된다. 요청을 수행하는 것은 NAND 디바이스의 다수의 다이에 대한 단일 명령 및 다수의 데이터 세그먼트를 제공하는 것을 포함한다. 여기서, 데이터 세그먼트는 다이 및 블록 인덱스의 튜플에 의해 지정되는 블록 집합에서의 블록에 대응한다. 그 다음 요청의 결과가 요청 개체에 리턴된다.

Description

가변 폭 수퍼 블록 어드레싱
메모리 디바이스들은 통상적으로 컴퓨터들 또는 다른 전자 디바이스들에 내부의 반도체 집적 회로들로서 제공된다. 휘발성 및 비휘발성 메모리를 비롯한 많은 상이한 유형의 메모리가 있다.
휘발성 메모리는 그것의 데이터를 유지하는데 전력을 필요로 하고, 다른 것들 중에서도, 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM) 또는 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다.
비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지할 수 있고, 다른 것들 중에서도, 플래시 메모리, 판독 전용 메모리(ROM), 전기적 소거 가능 프로그램 가능 ROM(EEPROM), 정적 RAM(SRAM), 소거 가능 프로그램 가능 ROM(EPROM), 가변 저항 메모리 이를테면 상 변화 랜덤 액세스 메모리(PCRAM), 저항 랜덤 액세스 메모리(RRAM) 및 자기 저항 랜덤 액세스 메모리(MRAM) 또는 3D XPoint™ 메모리를 포함한다.
플래시 메모리는 광범위한 전자 분야의 비휘발성 메모리로서 이용된다. 플래시 메모리는 통상적으로 메모리 밀도를 높이고, 신뢰성을 높이며, 전력 소비를 낮출 수 있는 1-트랜지스터, 플로팅 게이트 또는 전하 트랩 메모리 셀들의 하나 이상의 그룹을 포함한다.
플래시 메모리 어레이 아키텍처들의 두 가지 공통 유형은 NAND 및 NOR 아키텍처들을 포함하며, 각각의 기본 메모리 셀 구성이 배열되는 논리 형태의 이름을 따서 명명된다. 메모리 어레이의 메모리 셀들은 통상적으로 매트릭스로 배열된다. 일례로, 어레이의 로우에서의 각 플로팅 게이트 메모리 셀의 게이트들이 액세스 라인(예를 들어, 워드 라인)에 연결된다. NOR 아키텍처에서, 어레이의 컬럼에서의 각 메모리 셀의 드레인들은 데이터 라인(예를 들어, 비트 라인)에 연결된다. NAND 아키텍처에서, 어레이의 스트링에서의 각 메모리 셀의 드레인들은 소스 라인과 비트 라인 간에 직렬, 소스-드레인으로 함께 연결된다.
NOR 및 NAND 아키텍처 반도체 메모리 어레이들은 모두 그것들의 게이트에 연결된 워드 라인을 선택함으로써 특정 메모리 셀들을 활성화하는 디코더들을 통해 액세스된다. NOR 아키텍처 반도체 메모리 어레이에서, 활성화되면, 선택된 메모리 셀들은 그것들의 데이터 값들을 비트 라인들 상에 두어, 특정 셀이 프로그래밍되는 상태에 따라 상이한 전류가 흐르게 한다. NAND 아키텍처 반도체 메모리 어레이에서, 드레인 측 선택 게이트(SGD, drain-side select gate) 라인에 하이 바이어스 전압이 인가된다. 각 그룹의 선택되지 않은 메모리 셀들의 게이트들에 연결된 워드 라인들은 특정 패스 전압(예를 들어, Vpass)으로 구동되어 각 그룹의 선택되지 않은 메모리 셀들을 패스 트랜지스터들(예를 들어, 그것들에 저장된 데이터 값들에 의해 제한되지 않는 방식으로 전류를 전달하는)로 작동시킨다. 그 다음 전류는 단지 각 그룹의 선택된 메모리 셀들에 의해 제한되는 각 직렬 연결된 그룹을 통해 소스 라인에서 비트 라인으로 흘러, 선택된 메모리 셀들의 현재 인코딩된 데이터 값들을 비트 라인들 상에 둔다.
NOR 또는 NAND 아키텍처 반도체 메모리 어레이에서의 각 플래시 메모리 셀은 개별적으로 또는 집합적으로 하나 또는 다수의 프로그래밍된 상태로 프로그래밍될 수 있다. 예를 들어, 싱글 레벨 셀(SLC)은 두 개의 프로그래밍된 상태 (예를 들어, 1 또는 0) 중 하나를 나타내어, 1 비트의 데이터를 나타낼 수 있다.
그러나, 플래시 메모리 셀들은 또한 둘보다 많은 프로그램 상태 중 하나를 나타낼 수 있어, 각 셀이 하나보다 많은 바이너리 디지트(예를 들어, 하나보다 많은 비트)를 나타낼 수 있기 때문에 메모리 셀들의 수를 증가시키지 않고도 보다 높은 밀도의 메모리들을 제조할 수 있다. 그러한 셀들은 멀티 상태 메모리 셀들, 멀티 디지트 셀들 또는 멀티 레벨 셀들(MLC들)로서 지칭될 수 있다. 특정 예들에서, MLC는 셀마다 2 비트의 데이터(예를 들어, 4개의 프로그래밍된 상태 중 하나)를 저장할 수 있는 메모리 셀을 지칭할 수 있고, 트리플 레벨 셀(TLC)은 셀마다 3 비트의 데이터(예를 들어, 8개의 프로그램된 상태 중 하나)를 저장할 수있는 메모리 셀을 지칭할 수 있으며, 쿼드 레벨 셀(QLC)은 셀마다 4 비트의 데이터를 저장할 수 있다. MLC는 여기서 그보다 넓은 맥락으로, 셀마다 1보다 많은 비트의 데이터를 저장할 수 있는(즉, 두 개 이상의 프로그래밍된 상태를 나타낼 수 있는) 임의의 메모리 셀을 지칭하기 위해 사용된다.
종래의 메모리 어레이들은 반도체 기판의 표면 상에 배열되는 2차원(2D) 구조들이다. 소정의 영역에 대한 메모리 용량을 증가시키고, 비용을 감소시키기 위해, 개별 메모리 셀들의 크기가 감소되었다. 그러나, 개별 메모리 셀들의 크기 감소, 그리고 그에 따라 2D 메모리 어레이들의 메모리 밀도에 대한 기술적 한계가 있다. 이에 반응하여, 메모리 밀도를 더 높이고 메모리 비용은 더 낮추기 위해 3차원(3D) NAND 아키텍처 반도체 메모리 디바이스들과 같은 3D 메모리 구조들이 개발되고 있다.
그러한 3D NAND 디바이스들은 보통 소스에 근접한 하나 이상의 소스측 선택 게이트(SGS)와 비트 라인에 근접한 하나 이상의 드레인측 선택 게이트(SGD) 간에 직렬(예를 들어, 드레인-소스)로 연결되는 저장 셀들의 스트링들을 포함한다. 일례로, SGS들 또는 SGD들은 하나 이상의 전계 효과 트랜지스터(FET) 또는 금속 산화물 반도체(MOS) 구조 디바이스 등을 포함할 수 있다. 일부 예에서, 스트링들은 각각의 워드 라인들을 포함하는 다수의 수직으로 이격된 티어를 통해 수직으로 연장될 것이다. 반도체 구조(예를 들어, 폴리실리콘 구조)는 저장 셀들의 스트링에 인접하여 연장되어 스트링의 저장 셀들에 대한 채널을 형성할 수 있다. 수직 스트링의 예에서, 폴리실리콘 구조는 수직으로 연장되는 필라의 형태일 수 있다. 일부 예에서, 스트링은 "접히고" 그에 따라 U자형 필라에 관해 배열될 수 있다. 다른 예들에서는, 다수의 수직 구조가 서로 적층되어 저장 셀 스트링들의 적층된 어레이들을 형성할 수 있다.
메모리 어레이들 또는 디바이스들은 함께 조합되어 메모리 시스템의 저장 볼륨, 이를테면 고체 상태 드라이브(SSD), 유니버셜 플래시 저장(UFS™) 디바이스, 멀티 미디어 카드(MMC) 고체 상태 저장 디바이스, 내장형 MMC 디바이스(eMMC™) 등을 형성할 수 있다. SSD는 다른 것들 중에서도, 컴퓨터의 주 저장 디바이스로 사용될 수 있으며, 예를 들어, 성능, 크기, 무게, 견고성, 작동 온도 범위 및 전력 소비에 대하여 이동 부분들을 갖는 종래의 하드 드라이브들에 비해 이점들을 갖는다. 예를 들어, SSD들은 탐색 시간, 레이턴시 또는 자기 디스크 드라이브들(예를 들어, 전기 기계적 등)과 연관된 다른 지연을 감소시킬 수 있다. SSD들은 내부 배터리 공급 요건들을 제거하기 위해 플래시 메모리 셀들과 같은 비휘발성 메모리 셀들을 사용함에 따라, 드라이브가 보다 다목적이고 컴팩트하게 된다.
SSD는 다수의 다이 또는 논리 유닛(예를 들어, 논리 유닛 수 또는 LUN)을 포함하여 다수의 메모리 디바이스를 포함할 수 있고, 메모리 디바이스들을 작동시키거나 또는 외부 시스템들과 인터페이싱하는데 필요한 논리 기능들을 수행하는 하나 이상의 프로세서 또는 다른 제어기를 포함할 수 있다. 그러한 SSD들은 다수의 메모리 어레이 및 그 주변 회로를 포함하는 하나 이상의 플래시 메모리 다이를 포함할 수 있다. 플래시 메모리 어레이들은 다수의 물리적 페이지로 편성된 메모리 셀들의 다수의 블록을 포함할 수 있다. 많은 예에서, SSD들은 또한 DRAM 또는 SRAM(또는 다른 형태들의 메모리 다이 또는 다른 메모리 구조들)을 포함할 것이다. SSD는 메모리 디바이스들과 호스트 간에서 데이터(예를 들어, 사용자 데이터 및 관련 무결성 데이터, 이를테면 에러 데이터 및 어드레스 데이터 등)를 전달하기 위한 판독 또는 기록 동작들, 또는 메모리 디바이스들에서 데이터를 소거하기 위한 소거 동작들과 같은 메모리 동작들과 관련하여 호스트로부터 명령들을 수신할 수 있다.
반드시 일정한 비율로 그려진 것은 아닌 도면들에서, 상이한 도면들에서 같은 부호들은 유사한 구성요소들을 기술할 수 있다. 끝에 붙은 첨자들이 상이한 같은 부호들은 유사한 구성요소들의 상이한 인스턴스들을 나타낼 수 있다. 도면들은 일반적으로 제한이 아닌 예로서, 본 문서에서 논의되는 다양한 실시 예를 도시한다.
도 1은 메모리 디바이스를 포함하는 환경의 일례를 도시한다.
도 2는 수퍼 블록들의 일례를 도시한다.
도 3은 가변 폭 수퍼 블록들의 일례를 도시한다.
도 4는 가변 폭 수퍼 블록에 기록하는 것의 일례를 도시한다.
도 5는 가변 폭 수퍼 블록 어드레싱을 위한 방법의 흐름도를 도시한다.
도 6은 하나 이상의 실시 예가 구현될 수 있는 기계의 일례를 도시한 블록도이다.
NAND 디바이스들은 페이지 레벨에서 기록 및 판독 어드레싱 및 블록 레벨에서 소거 어드레싱을 허용하지만, 그렇게 미세 세분화된 해결에는 몇몇 실질적인 어려움이 있다. 이러한 어려움들은 플래시 변환 계층(FTL) 테이블들의 유지 관리를 포함한 다양한 작업 및 동작에 대한 어드레싱 오버헤드를 포함할 수 있다. 이러한 문제들을 해결하기 위해, 블록들이 데이터가 기록되는 단일 논리적 개체로 결집되었다. 전통적으로, 결집된 블록들은 NAND 어레이의 모든 다이에서의 모든 평면으로부터의 블록들을 포함했다. 이러한 배열은 다이에 걸친 기록 명령의 병렬 실행과 같은 몇몇 이점을 제공한다.
결집된 블록 개념을 통해 보다 적은 저장 유닛을 추적하게 되어, FTL 테이블들 및 관리에 대한 부담이 완화된다. 이는 이용 가능한 작업 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 홀딩 시스템 상태)가 제한되는 관리 NAND와 같은 자원 제한 디바이스들에서 중요할 수 있다. 그러나, 다이 카운트 및 평면 카운트가 증가함에 따라, 결집되는 블록 유닛 저장 장치는 커지게 된다. 다음 테이블은 평면 및 다이 카운트가 증가함에 따라 결집되는 블록 유닛들의 크기가 어떻게 증가하는지 보여준다:
B1X B2X
페이지 크기(KB) 16 16
평면들 2 4
블록당 페이지들 2304 5184
평면당 사용자/스페어/리던던트 블록들 456/22/24 204/18/14
4-다이 시스템의 고정 폭 수퍼 블록 크기(MB) 288 1296
결집되는 블록 유닛 크기가 커짐에 따라 몇몇 문제가 발생한다. 예를 들어, 결집된 블록들을 리프레시하는 시간이 길어지게 된다. 또한, 판독 장애 핸들링, 데이터 유지 핸들링 또는 비동기 전력 손실 핸들링을 위해, 하나의 결집된 블록 유닛으로부터 다른 결집된 블록 유닛으로 데이터를 이동시키는데 시간이 보다 오래 걸린다. 이러한 유지 관리 동작들은 이러한 블록들에 관한 NAND 동작들에 영향을 미치고 디바이스에 대한 레이턴시를 증가시킬 수 있다(예를 들어, 디바이스가 호스트 판독 또는 기록 명령에 응답하는데 시간이 보다 오래 걸린다).
NAND 디바이스들 상에서 유지 보수를 수행하는 시간이 증가되는 것 외에도, 결집된 블록 유닛이 관리되는 NAND 디바이스들에서 가장 작은 사실상의 어드레싱 가능한 개체로서 사용될 때 대량의 블록 결집은 또한 저장 장치 낭비를 초래할 수 있다. 예를 들어, 디바이스는 사용자 데이터 또는 메타 데이터 외에, 이를테면 리프레시 저장 장치를 데이터를 복사하는 동안 사용되는 임시 공간으로 예약하는 등의 사용을 위한 공간을 예약할 수 있다―예를 들어, 리프레시를 위해, 데이터가 소스 저장 장치로부터 리프레시 저장 장치로 복사되고, 소스 저장 장치가 소거된 다음, 데이터가 리프레시 저장 장치로부터 소스 저장 장치로 다시 복사된다. 프로그램 에거가 있을 때 다른 예가 발생한다. 여기서, 디바이스는 불량 저장 섹션을 교체하기 위해 예약된 저장 섹션을 사용하여, 불량 저장 섹션(예를 들어, 결집된 블록 유닛)을 정상 저장 섹션으로 교체한다. 불량 블록 교체를 위해 예약된 대량 결집 블록 유닛들은 NAND 디바이스에 대한 사실상의 오버 프로비저닝(OP, over provisioning)을 감소(예를 들어, 더 적은 예비 용량이 사용될 수 있고 여전히 디바이스에 대한 저장 장치 사용 목표를 충족)시킨다. 평면(예를 들어, 테이블 1에서의 B2X)에 단지 약 200개의 블록만 있는 경우, 하나의 블록 예약은 0.5% OP 손실을 의미한다. 적은 OP는 시스템 성능과 내구성에 영향을 미칠 것이다.
가변 폭 수퍼 블록은 위에서 언급된 결집 블록 유닛 문제들을 해결하면서 관리되는 NAND 디바이스에서 효율적인 FTL을 가능하게 할 수 있다. 상술된 결집 블록 유닛은 NAND 어레이에서 모든 다이의 모든 평면에 걸쳐 이어진다. 이러한 결집된 블록 유닛은 때때로 수퍼 블록이라 칭했다. 그러나, 여기서 사용될 때 용어 수퍼 블록과 구별된다. 여기서 사용될 때, 수퍼 블록은 적어도 두 개의 다이에 걸쳐 이어지는 블록들의 조합을 지칭한다. 이러한 다이에 걸치는 블록들은 다이 내에서 동일한 주소를 갖는다. 그에 따라, 다이 Z에서의 블록 A는 다이 Y에서의 블록 A와 조합되어 수퍼 블록을 형성한다. 이러한 정의로 인해, 일부 실시 예는 "수퍼 블록"의 전통적인 사용과 비교할 때 "서브-수퍼 블록"인 것으로 간주될 수 있다. 그에 따라, 결집된 블록 유닛들과 달리, 수퍼 블록은 다이 상의 일부 평면으로부터의 블록들을 생략할 수 있다. 예를 들어, 각각 네 개의 평면을 갖는 두 개의 다이를 갖는 NAND 어레이 상에서, 결집된 블록 유닛은 각 다이(모두 두 개) 상에 각 평면(모두 네 개)으로부터의 블록을 포함할 것인 반면, 수퍼 블록은 각 다이(모두 두 개) 상에 모든 평면보다 적은 평면(예를 들어, 두 개의 평면)으로부터의 블록들을 포함할 수 있다. 수퍼 블록에 사용되는 평면의 수가 그것의 폭이다. 임의의 수의 평면이 수퍼 블록을 구성하는데 사용될 수 있지만, 수퍼 블록 폭에 대해 집합된 블록 유닛의 분율들을 선택하는 것이 유리할 수 있다. 예를 들어, 단일 비트가 결집된 블록 유닛의 폭의 절반인 수퍼 블록을 정의하기 위해 결집된 블록 유닛에 대하여 하이 수퍼 블록 또는 로우 수퍼 블록을 시그널링하는데 사용될 수 있다. 이러한 예에서, 로우 수퍼 블록은 평면 인덱스로 측정되는 평면들의 전반일 수 있고 하이 수퍼 블록은 나머지 평면들이다.
NAND 디바이스에서 수퍼 블록들을 기본 운영 유닛으로 사용하면 보다 효율적인 유지 관리 동작들(예를 들어, 레이턴시 및 동작들을 수행하는 시간 단축) 및 사실상의 디바이스 OP를 가능하게 하면서 결집된 블록 유닛들에 대하여 상술된 효율적인 자원 관리를 제공한다.
수퍼 블록들은 가변 폭들을 가능하게 함으로써 많은 최적화 기회를 제공한다. 큰 수퍼 블록들은 보다 높은 대역폭을 제공하여 순차적인 판독 및 기록 성능을 보다 양호하게 한다. 그러나, 일부 상황에서는 SATA(Serial Advanced Technology Attachment), PCIe(Peripheral Component Interconnect Express) 또는 NVMe(Non-Volatile Memory Express) 호스트 인터페이스들과 같이, NAND 어레이 대역폭이 아닌 호스트 인터페이스에 의해 성능이 저하된다. 이러한 상황들에서는, 호스트로부터의 디바이스 처리량에 영향을 주지 않으면서, 수퍼 블록 폭이 유지 보수 동작 시간과 Op 손실 감소로 줄어든다.
이러한 성능 트레이드 오프를 통해, 저장되는 데이터 유형에 따라 수퍼 블록 폭들이 조정될 수 있다. 예를 들어, 메타 데이터―FTL 테이블 및 다른 시스템 정보 데이터―는 보통 사용자 데이터보다 대역폭 문제들에 덜 민감하다. 그에 따라, 보다 작은 폭의 수퍼 블록들이 메타 데이터를 저장하는데 사용될 수 있는 한편, 전폭(예를 들어, 결집된 블록 유닛 크기) 수퍼 블록들은 사용자 데이터를 저장한다. 추가 세부 사항들 및 예들은 후술된다.
도 1은 통신 인터페이스를 통해 통신하도록 구성된 호스트 디바이스(105) 및 메모리 디바이스(110)를 포함하는 환경(100)의 일례를 도시한다. 호스트 디바이스(105) 또는 메모리 디바이스(110)는 다양한 제품(150), 이를테면 사물 인터넷(IoT) 디바이스들(예를 들어, 냉장고 또는 다른 가전 제품, 센서, 모터 또는 액추에이터, 모바일 통신 디바이스, 자동차, 드론 등)의 처리, 통신 또는 제어를 지원하기 위해 제품(150)에 포함될 수 있다.
메모리 디바이스(110)는 메모리 제어기(115) 및 예를 들어, 다수의 개별 메모리 다이(예를 들어, 3차원(3D) NAND 다이의 스택)를 포함하는 메모리 어레이(120)를 포함한다. 3D 아키텍처 반도체 메모리 기술에서, 수직 구조들이 적층되어, 티어들, 물리적 페이지들의 수, 그리고 그에 따라 메모리 디바이스(예를 들어, 저장 디바이스)의 밀도를 증가시킨다. 일례로, 메모리 디바이스(110)는 호스트 디바이스(105)의 별개의 메모리 또는 저장 디바이스 구성요소일 수 있다. 다른 예들에서, 메모리 디바이스(110)는 호스트 디바이스(105)의 하나 이상의 다른 구성요소와 적층되거나 그 외 포함되는 집적 회로(예를 들어, 시스템 온 칩(SOC) 등)의 일 부분일 수 있다.
메모리 디바이스(110)와 호스트 디바이스(105)의 하나 이상의 다른 구성요소 간에 데이터를 전송하기 위해 하나 이상의 통신 인터페이스, 이를테면 SATA(Serial Advanced Technology Attachment) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, USB(Universal Serial Bus) 인터페이스, UFS(Universal Flash Storage) 인터페이스, eMMC™ 인터페이스 또는 하나 이상의 다른 커넥터 또는 인터페이스가 사용될 수 있다. 호스트 디바이스(105)는 호스트 시스템, 전자 디바이스, 프로세서, 메모리 카드 리더, 또는 메모리 디바이스(110) 외부의 하나 이상의 다른 전자 디바이스를 포함할 수 있다. 일부 예에서, 호스트(105)는 도 6의 기계(600)를 참조하여 논의될 구성요소들의 일부 또는 전부를 갖는 기계일 수 있다.
메모리 제어기(115)는 호스트(105)로부터 명령들을 수신할 수 있고, 이를테면 메모리 어레이(120)의 메모리 셀들, 평면들, 서브-블록들, 블록들 또는 페이지들 중 하나 이상으로(예를 들어, 기록 또는 소거) 또는 그것들로부터(예를 들어, 판독) 데이터를 전달하기 위해 메모리 어레이(120)와 통신할 수 있다. 메모리 제어기(115)는 다른 것들 중에서도, 하나 이상의 구성요소 또는 집적 회로를 포함하는 회로 또는 펌웨어를 포함할 수 있다. 예를 들어, 메모리 제어기(115)는 메모리 어레이(120)에 걸친 액세스를 제어하고 호스트(105)와 메모리 디바이스(110) 간 변환 계층을 제공하도록 구성된 하나 이상의 메모리 제어 유닛, 회로 또는 구성요소를 포함할 수 있다.
메모리 제어기(115)는 수퍼 블록들을 사용하여 플래시 변환 계층(FTL, flash translation layer)을 구현할 수 있다. 메모리 제어기(115)는 수퍼 블록 폭을 획득하도록 마련된다. 메모리 제어기(115)는 폭을 수신할 수 있거나(예를 들어, 호스트(105), 부트-프로세스 등으로부터) 폭을 검색할 수 있다(예를 들어, 어레이(120), 외부 저장 디바이스, 판독 전용 메모리 등으로부터) . 폭은 다수의 다이 평면을 지정한다. 그에 따라, 하나의 폭은 하나의 다이 평면이고, 두 개의 폭은 두 개의 다이 평면인 등이다.
일례에서, 평면들의 수는 백분율로서 지정된다. 여기서, 백분율은 다이에서의 총 평면 수에 대한 것이다. 그에 따라, 다이가 네 개의 평면을 갖는 경우, 25% 폭은 하나의 평면이다. 일례에서, 백분율은 50 퍼센트이다. 일례에서, 평면들의 수는 메모리 디바이스(110)(예를 들어, 어레이(120) 내)의 다이에서의 평면들보다 적다. 즉 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 메모리 디바이스(110)의 모든 다이에 걸쳐 이어지는 완전 수퍼 블록에 대조적이다. 완전 수퍼 블록은 결집된 블록 유닛처럼 동작하지만 메모리 제어기(115)에 의해 획득되어 정의된 폭에 기초하기 때문에 상이하다. 일례에서, 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 수퍼 블록에 저장된다. 이러한 수퍼 블록 폭들의 혼합된 사용은 디바이스 대역폭 및 레이턴시의 유연한 관리 또는 예상되거나 동적으로 측정된(예를 들어, 디바이스 동작 동안) 사용량에 따라 OP 감소를 가능하게 한다.
일례에서, 수퍼 블록은 수퍼 블록 집합 중 하나이다. 여기서, 수퍼 블록 집합은 메모리 디바이스(110)의 모든 다이에 걸쳐 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함한다. 그에 따라, 네 개의 평면이 주어지면, 네 개의 수퍼 블록이 있다. 제1 수퍼 블록은 각 다이의 평면 1에서의 블록을 갖고, 제2 수퍼 블록은 각 다이의 평면 2에서의 블록을 갖고, 제3 수퍼 블록은 각 다이의 평면 3에서의 블록을 가지며, 제4 수퍼 블록은 각 다이의 평면 4에서의 블록을 갖는다. 수퍼 블록에 대한 블록들은 다이에 걸쳐 동일한 다이-내 인덱스를 갖는다. 예를 들어, 수퍼 블록이 다이 0에서의 블록 0을 갖는 경우, 그것은 또한 다이 1, 다이 2 및 다이 3에서의 블록 0도 갖는다. 일례에서, 수퍼 블록은 블록 집합에 해당되는 평면들의 위치에 의해 수퍼 블록 집합에서의 다른 요소들과 구별된다. 여기서, 평면들의 위치는 각 평면이 다이 내에서 번호(예를 들어, 0-N)가 매겨지도록 인덱스로 측정된다. 일례에서, 수퍼 블록 집합은 두 요소를 갖고 평면들의 위치는 하이 인덱스들을 갖는 평면들의 절반에 대응하는 하이 또는 다이 상의 나머지 평면들에 대응하는 로우이다. 위에서 언급했듯이, 이러한 배열 시간은 수퍼 블록이 블록 인덱스(예를 들어, 블록 1) 및 단일 비트에 의해 어드레싱될 수 있게 사용하여 하이 평면들이 수퍼 블록을 구성하는지 또는 로우 평면들이 수퍼 블록을 구성하는지를 나타냄으로써 효율을 제공할 수 있다. 블록 인덱스들이 평면들에 걸치기 때문에, 후속 평면 블록 지정은 집합 분포에 의한 단일 블록 인덱스 지정으로부터 도출될 수 있다. 예를 들어, 평면 0에서의 제1 블록은 0의 인덱스를 가질 수 있는 한편 평면 1에서의 제1 블록은 503의 인덱스를 가질 수 있다. 여기서, 수퍼 블록은 로우 비트(예를 들어, 0으로 설정된) 및 0의 블록 인덱스에 의해 참조될 수 있으며, 이는 예를 들어, 분포에 의해 블록들 0 및 503으로 전환된다.
메모리 제어기(115)는 메모리 디바이스(110)의 변환 테이블(예를 들어, 테이블(13))에 수퍼 블록 엔트리를 생성하도록 마련된다. 여기서, 수퍼 블록 엔트리는 어레이(120)로부터의 블록 집합을 포함한다. 블록 집합은 어레이(120)의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 갖는다. 고유한 블록 인덱스들의 수는 평면들의 수와 동일하고 상이한 평면들에 있다. 그에 따라, 소정의 수퍼 블록은 다이의 상이한 평면들에서의 블록들로 구성되며, 각 블록은 다이에 특정한 인덱스를 갖는다. 동일한 수퍼 블록은 어레이(120)의 다른 모든 다이에서 동일한 인덱스들을 갖는 블록들을 갖는다. 위에서 언급했듯이, 블록 집합의 일부 요소는 하나의 블록 인덱스에 기초하여, 분포 또는 다른 함수에 의해 정의될 수 있다. 그에 따라, 엔트리는 단일 블록 인덱스 및 폭일 수 있고, 분포는 하나의 다이 내의 블록 집합을 포함하는 나머지 블록 인덱스들을 정의하며, 블록 인덱스들은 나머지 다이들에도 적용된다.
메모리 제어기(115)는 호스트(105)와 같은 요청 개체로부터 요청을 수신하도록 마련된다. 일례에서, 요청은 기록이다. 일례에서, 요청은 판독이다. 일례에서, 요청은 리프레시이다. 일례에서, 요청은 가비지 수집이다. 리프레시 또는 가비지 수집 요청들에 대하여, 메모리 제어기(115)는 예를 들어, 트리거, 자기 진단 또는 그 밖에 유사한 것(예를 들어, 메모리 관리자(125)에 의해 수행되는 바와 같은)을 통해 그 자체에서 요청을 수신할 수 있다. 메모리 제어기(115)는 수퍼 블록 엔트리를 사용하여 수행되도록 마련된다. 이를 실현하기 위해, 메모리 제어기(115)는 다수의 데이터 세그먼트와 함께 어레이(120)의 다수의 다이에 단일 명령을 제공하도록 마련된다. 여기서, 다수의 데이터 세그먼트에서의 데이터 세그먼트는 다이 및 블록 인덱스의 튜플에 의해 지정되는 블록 집합에서의 블록에 대응한다. 이러한 병렬 처리는 어레이(120) 처리량을 증가시키고, 그에 따라 메모리 디바이스(110)의 성능을 증가시킨다. 메모리 제어기(115)는 그 다음 요청을 수행한 결과를 요청 개체로 리턴하도록 마련된다.
메모리 관리자(125)는 다른 것들 중에서도, 다양한 메모리 관리 기능과 연관된 다수의 구성요소 또는 집적 회로와 같은 회로 또는 펌웨어를 포함할 수 있다. 본 설명을 위해, 예시적인 메모리 동작 및 관리 기능들이 NAND 메모리의 상황에서 설명될 것이다. 해당 기술분야의 통상의 기술자는 다른 형태들의 비휘발성 메모리가 유사한 메모리 동작들 또는 관리 기능들을 가질 수 있음을 인식할 것이다. 그러한 NAND 관리 기능들은 어 레벨링(예를 들어, 가비지 수집 또는 재생), 에러 검출 또는 정정, 블록 폐기 또는 하나 이상의 다른 메모리 관리 기능을 포함한다. 메모리 관리자(125)는 호스트 명령들(예를 들어, 호스트로부터 수신되는 명령들)을 디바이스 명령들(예를 들어, 메모리 어레이의 동작과 연관된 명령들 등)로 파싱 또는 포맷팅하거나, 또는 어레이 제어기(135) 또는 메모리 디바이스(110)의 하나 이상의 다른 구성요소에 대한 디바이스 명령들(예를 들어, 다양한 메모리 관리 기능을 실현하기 위한)을 생성할 수 있다.
메모리 관리자(125)는 메모리 디바이스(110)의 하나 이상의 구성요소와 연관된 다양한 정보(예를 들어, 메모리 제어기(115)에 연결되는 메모리 어레이 또는 하나 이상의 메모리 셀와 연관된 다양한 정보)를 유지하도록 구성된 관리 테이블 집합(130)을 포함할 수 있다. 예를 들어, 관리 테이블들(130)은 메모리 제어기(115)에 연결되는 메모리 셀들의 하나 이상의 블록에 대한 블록 에이지, 블록 소거 카운트, 에러 이력 또는 하나 이상의 에러 카운트(예를 들어, 기록 동작 에러 카운트, 판독 비트 에러 카운트, 판독 동작 에러 카운트, 소거 에러 카운트 등)에 관한 정보를 포함할 수 있다. 특정 예들에서, 에러 카운트들 중 하나 이상에 대해 검출된 에러들의 수가 임계치를 초과할 경우, 비트 에러를 정정 불가능한 비트 에러라고 지칭 할 수 있다. 관리 테이블(130)은 다른 것들 중에서도 정정 가능한 또는 정정 불가능한 비트 에러들의 카운트를 유지할 수 있다. 일례로, 관리 테이블(103)은 변환 테이블들 또는 L2P 매핑을 포함할 수 있다.
어레이 제어기(135)는 다른 것들 중에서도, 메모리 제어기(115)에 연결되는 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기록하거나, 그것들로부터 데이터를 판독하거나, 또는 그것들을 소거하는 것과 연관된 메모리 동작들을 제어하도록 구성된 회로 또는 구성요소들을 포함할 수 있다. 메모리 동작들은 예를 들어, 호스트(105)로부터 수신되거나, 또는 메모리 관리자(125)에 의해(예를 들어, 웨어 레벨링, 에러 검출 또는 정정 등과 관련하여) 내부적으로 생성되는 호스트 명령들에 기초할 수 있다.
어레이 제어기(135)는 에러 정정 코드(ECC, error correction code) 구성요소(140)를 포함할 수 있으며, 이는 ECC 엔진 또는 메모리 제어기(115)에 연결되는 메모리 디바이스(110)의 하나 이상의 메모리 셀에 데이터를 기록하거나 그것들로부터 데이터를 판독하는 것과 연관된 에러들을 검출 또는 정정하도록 구성된 다른 회로를 포함할 수 있다. 메모리 제어기(115)는 호스트(105)와 메모리 디바이스(110) 간에 전달되는 데이터의 무결성을 유지 또는 저장된 데이터의 무결성을 유지하면서(예를 들어, 리던던트 RAID 저장 장치 등을 사용하여), 데이터의 다양한 동작 또는 저장과 연관된 에러 발생들(예를 들어, 비트 에러들, 동작 에러들 등)을 능동적으로 검출하고 그로부터 복구하도록 구성될 수 있고, 향후 에러들을 방지하기 위해 실패 메모리 자원들(예를 들어, 메모리 셀들, 메모리 어레이들, 페이지들, 블록들 등)을 제거(예를 들어, 폐기)할 수 있다.
메모리 어레이(120)는 예를 들어, 다수의 디바이스, 평면, 서브-블록, 블록 또는 페이지로 배열된 여러 메모리 셀을 포함할 수 있다. 일례로, 48 GB TLC NAND 메모리 디바이스는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1536 페이지, 평면당 548 블록 및 디바이스당 4 이상의 평면을 포함할 수 있다. 다른 예로서, 32 GB MLC 메모리 디바이스(셀당 2 비트의 데이터(즉, 4개의 프로그램 가능 상태)를 저장하는)는 페이지당 18,592 바이트(B)의 데이터(16,384 + 2208 바이트), 블록당 1024 페이지, 평면당 548 블록, 디바이스당 4 평면, 그러나 대응하는 TLC 메모리 디바이스로서 절반의 필요 기록 시간 두 배의 프로그램/소거(P/E) 사이클을 포함할 수 있다 . 다른 예들은 다른 숫자들 또는 배열들을 포함할 수 있다. 일부 예에서, 메모리 디바이스 또는 그 일 부분은 SLC 모드 또는 요구되는 MLC 모드(이를테면 TLC, QLC 등)에서 선택적으로 작동될 수 있다.
작동시, 데이터는 통상적으로 페이지 단위로 NAND 메모리 디바이스(110)에 기록되거나 그로부터 판독되고, 블록 단위로 소거된다. 그러나, 하나 이상의 메모리 동작(예를 들어, 판독, 기록, 소거 등)은 요구되는 바에 따라 보다 크거나 보다 작은 메모리 셀들의 그룹들에 관해 수행될 수도 있다. NAND 메모리 디바이스(110)의 데이터 전달 크기는 통상적으로 페이지로 지칭되는 반면, 호스트의 데이터 전달 크기는 통상적으로 섹터로 지칭된다.
데이터의 페이지는 다수의 바이트의 사용자 데이터(예를 들어, 다수의 섹터의 데이터를 포함하는 데이터 페이로드) 및 그에 대응하는 메타 데이터를 포함할 수 있지만, 페이지의 크기는 보통 사용자 데이터를 저장하깅 위해 사용된 바이트 수만을 지칭한다. 일례로, 4 KB의 페이지 크기를 갖는 데이터의 페이지는 4 KB의 사용자 데이터(예를 들어, 섹터 크기 512 B를 가정하여 8개의 섹터)뿐만 아니라 사용자 데이터에 대응하는 다수의 바이트(예를 들어, 32 B, 54 B, 224 B 등)의 메타 데이터, 이를테면 무결성 데이터(예를 들어, 에러 검출 또는 정정 코드 데이터), 어드레스 데이터(예를 들어, 논리 어드레스 데이터 등), 또는 사용자와 연관된 다른 메타 데이터를 포함할 수 있다.
상이한 유형들의 메모리 셀들 또는 메모리 어레이들(120)은 상이한 페이지 크기들을 제공할 수 있거나, 또는 그것들과 연관된 상이한 양의 메타 데이터를 필요로 할 수 있다. 예를 들어, 상이한 메모리 디바이스 유형들은 상이한 비트 에러율을 가질 수 있으며, 이는 데이터의 페이지의 무결성을 보장하기 위해 필요한 메타 데이터의 양을 상이하게 할 수 있다(예를 들어, 높은 비트 에러율을 갖는 메모리 디바이스는 보다 낮은 비트 에러율을 갖는 메모리 디바이스보다 더 많은 바이트의 에러 수정 코드 데이터를 필요로 할 수 있다). 일례로, 멀티 레벨 셀(MLC) NAND 플래시 디바이스는 대응하는 싱글 레벨 셀(SLC) NAND 플래시 디바이스보다 더 높은 비트 에러율을 가질 수 있다. 그에 따라, MLC 디바이스는 대응하는 SLC 디바이스보다 더 많은 메타 데이터 바이트의 에러 데이터를 필요로 할 수 있다.
도 2는 수퍼 블록들의 일례를 도시한다. 수퍼 블록(245) 및 수퍼 블록(250) 양자는 모든 네 개의 다이의 모든 네 개의 평면에 걸쳐 이어지는 완전 또는 전체 폭 수퍼 블록들이다. 평면들과 다이 사이의 블록 인덱스 관계를 설명하기 위해, 각 수퍼 블록에서의 일부 블록이 도 2에 언급되어 있다. 예를 들어, 수퍼 블록(245)은 각각 평면들(225 및 230)의 블록들(205 및 215)을 포함한다. 위에서 언급했듯이, 블록 인덱스들은 평면들 사이에서 처음부터 다시 시작하지 않을 수 있다. 그에 따라, 205 및 215에 대한 블록 인덱스들은 그것들이 그것들의 각각의 평면들에서 첫 번째 블록들이라 하더라도 상이하다. 그러나, 블록들(205 및 215)은 다이(240)에서 블록들(210 및 220)과 같이 다이(235)에서 동일한 인덱스들을 갖는다. 그에 따라, 블록 집합은 단지 단일 다이 내의 인덱스들을 지정할 필요만 있고, 이러한 인덱스들은 모든 다이에 걸쳐 적용되어 수퍼 블록을 생성한다. 평면 내에서 블록 인덱싱이 재시작되는 예들에서, 수퍼 블록은 단일 인덱스 및 평면 집합에 의해 지정될 수 있다. 또한, 도시된 바와 같이, 각 수퍼 블록(245 및 250)은 다이 및 평면의 고유한 조합이 주어지면 최대 하나의 블록을 갖지만, 다른 예들은 평면마다 다수의 블록을 포함할 수도 있다.
도 3은 가변 폭 수퍼 블록들, 수퍼 블록 A(305) 및 수퍼 블록 B(310) 의 일례를 도시한다. 여기서, 각 수퍼 블록 A(305) 및 수퍼 블록 B(310)은 2의 폭을 갖는다. 수퍼 블록 A(305)는 다이 0(325) 및 다이 1(330)에 걸쳐 하위 평면들(315)(음영 처리됨)로부터의 블록들을 포함한다. 수퍼 블록 B(310)는 다이 0(325) 및 다이 1(330)에 걸쳐 상위 평면들(320)로부터의 블록들을 포함한다. 도시된 예들은 반폭(예를 들어, 50%) 수퍼 블록들이다.
도 4는 가변 폭 수퍼 블록에 기록하는 것의 일례를 도시한다. 블록 특정 데이터 세그먼트들(425)을 제공하면서, 단일(예를 들어, 동일한) 기록 명령(420)을 다이 0(405) 및 다이 1(410)에 제공함으로써 수퍼 블록(415)(점선 내 블록들을 포함하는)이 기록된다. 다이는 기록(420)을 병렬로 수행한다(다이 0(405)에서의 각 블록에 대한 기록은 예를 들어, 순차적일 수 있지만).
도 5는 가변 폭 수퍼 블록 어드레싱을 위한 방법(500)의 흐름도를 도시한다. 방법(500)의 동작들은 여기에 설명된 것과 같은 전자 하드웨어(예를 들어, 회로) 상에서 수행된다.
동작 505에서, 수퍼 블록 폭이 획득(예를 들어, 검색 또는 수신)된다. 일례에서, 폭은 평면들의 수로 지정된다. 일례에서, 평면들의 수는 백분율로서 지정된다. 일례에서, 백분율은 50 퍼센트이다.
일례에서, 평면들의 수는 다이에서의 평면들보다 적다. 일례에서, 완전 수퍼 블록은 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 디바이스의 모든 다이에 걸쳐 이어진다. 일례에서, 사용자 데이터가 완전 수퍼 블록에 저장되고 디바이스 메타 데이터가 수퍼 블록에 저장된다.
일례에서, 수퍼 블록은 수퍼 블록 집합 중 하나이다. 일례에서, 수퍼 블록 집합은 디바이스의 모든 다이에 걸쳐 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함한다. 일례에서, 수퍼 블록은 블록 집합에 해당되는 평면들의 위치에 의해 수퍼 블록 집합에서의 다른 요소들과 구별된다. 일례에서, 수퍼 블록 집합은 두 요소를 갖고 평면들의 위치는 하이 또는 로우이다. 여기서, 하이는 하이 인덱스들을 갖는 평면들의 절반에 대응하고 로우는 다이 상의 나머지 평면들에 대응한다.
동작 510에서, 수퍼 블록 엔트리가 변환 테이블에 생성된다. 일례에서, 수퍼 블록 엔트리는 디바이스로부터의 블록 집합을 포함한다. 여기서 블록 집합은 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 평면들의 수와 동일하고 상이한 평면들에 있다.
동작 515에서, 요청 개체로부터 요청이 수신된다. 일례에서, 요청은 기록이다. 일례에서, 요청은 판독이다. 일례에서, 요청은 리프레시이다. 일례에서, 요청은 가비지 수집이다.
동작 520에서, 수퍼 블록 엔트리를 사용하여 요청이 수행되어 결과가 생성된다. 요청을 수행하기 위해, 디바이스의 다수의 다이에 대한 단일 명령 및 다수의 데이터 세그먼트가 제공된다. 여기서, 다수의 데이터 세그먼트에서의 데이터 세그먼트는 다이 및 블록 인덱스의 튜플에 의해 지정되는 블록 집합에서의 블록에 대응한다.
동작 525에서, 결과가 요청 개체에 리턴된다.
도 6은 여기서 논의된 임의의 하나 이상의 기술(예를 들어, 방법론)이 수행할 수 있는 예시적인 기계(600)의 블록도를 도시한다. 대안적인 실시 예들에서, 기계(600)는 독립형 디바이스로서 작동할 수 있거나 다른 기계들에 연결(예를 들어, 네트워킹)될 수 있다. 네트워킹된 전개에서, 기계(600)는 서버-클라이언트 네트워크 환경들에서 서버 기계, 클라이언트 기계 또는 양자의 역할로 작동할 수 있다. 일례로, 기계(600)는 피어 투 피어(P2P)(또는 다른 분산된) 네트워크 환경에서 피어 기계으로서의 역할을 할 수 있다. 기계(600)는 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 모바일 전화, 웹 기기, IoT 디바이스, 자동차 시스템 또는 해당 기계이 취해질 조치들을 지정하는 명령들을 실행할 수 있는(순차적 또는 그 외) 임의의 기계일 수 있다. 나아가, 단일 기계만이 도시되어 있지만, "기계"라는 용어는 또한 클라우드 컴퓨팅, SaaS(Software as a Service), 기타 컴퓨터 클러스터 구성들과 같이, 여기서 논의된 임의의 하나 이상의 방법론을 수행하기 위한 명령들의 집합(또는 다수의 집합)을 개별적으로 또는 공동으로 실행하는 임의의 기계 집합을 포함하는 것으로 간주된다.
여기서 설명된 바와 같은 예들은 로직, 구성요소들, 디바이스들, 패키지들 또는 메커니즘들을 포함하거나 이에 의해 작동할 수 있다. 회로는 하드웨어(예를 들어, 단순 회로, 게이트, 논리 등)를 포함하는 유형의 개체들로 구현된 회로 집단(예를 들어, 집합)이다. 회로 자격은 시간이 지남에 따라 유연하고 기저 하드웨어 변동이 있을 수 있다. 회로들은 작동시 단독으로 또는 조합하여 특정 작업들을 수행할 수 있는 멤버들을 포함한다. 일례로, 회로의 하드웨어는 불변으로 특정 동작(예를 들어, 하드웨어에 내장된)을 수행하도록 설계될 수 있다. 일례로, 회로의 하드웨어는 특정 작업의 명령들을 인코딩하기 위해 물리적으로 변형된(예를 들어, 자기적으로, 전기적으로, 불변의 질량 입자들의 가동 배치 등) 컴퓨터 판독 가능 매체를 포함하여 물리적 구성들(예를 들어, 실행 유닛들, 트랜지스터들, 단순 회로들 등)에 가변적으로 연결되는 것을 포함할 수 있다. 물리적 구성요소들을 연결할 때, 하드웨어 구성요소의 기저 전기적 속성들은 예를 들어, 절연체에서 도체로 또는 그 반대로 변경된다. 명령들은 참여 하드웨어(예를 들어, 실행 유닛들 또는 로딩 메커니즘)가 작동 중에 특정 작업들의 부분들을 수행하기 위해 가변 연결을 통해 하드웨어에서 회로의 멤버들을 생성할 수 있게 한다. 따라서, 컴퓨터 판독 가능 매체는 디바이스가 작동할 때 회로의 다른 구성요소들에 통신 가능하게 연결된다. 일례로, 임의의 물리적 구성요소들은 하나보다 많은 회로의 하나 이상의 멤버에 사용될 수 있다. 예를 들어, 동작 하에서, 실행 유닛들은 한 시점에 제1 회로의 제1 회로에 사용될 수 있고, 상이한 시간에 제1 회로에서 제2 회로에 의해, 또는 제2 회로에서 제3 회로에 의해 재사용될 수 있다.
기계(예를 들어, 컴퓨터 시스템)(600)(예를 들어, 호스트 디바이스(105), 메모리 디바이스(110) 등)은 하드웨어 프로세서(602)(예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합, 이를테면 메모리 제어기(115) 등), 메인 메모리(604) 및 정적 메모리(606)를 포함할 수 있으며, 이들 중 일부 또는 전부는 인터링크(예를 들어, 버스)(608)를 통해 서로 통신할 수 있다. 기계(600)는 디스플레이 유닛(610), 영숫자 입력 디바이스(612)(예를 들어, 키보드) 및 사용자 인터페이스(UI) 내비게이션 디바이스(614)(예를 들어, 마우스)를 더 포함할 수 있다. 일례로, 디스플레이 유닛(610), 입력 디바이스(612) 및 UI 내비게이션 디바이스(614)는 터치 스크린 디스플레이일 수 있다. 기계(600)는 저장 디바이스(예를 들어, 구동 유닛)(616), 신호 생성 디바이스(618)(예를 들어, 스피커), 네트워크 인터페이스 디바이스(620) 및 하나 이상의 센서(616), 이를테면 GPS(global positioning system) 센서, 나침반, 가속도계 또는 다른 센서를 추가로 포함할 수 있다. 기계(600)는 하나 이상의 주변 디바이스(예를 들어, 프린터, 카드 리더 등)와 통신 또는 제어하기 위해 직렬(예를 들어, USB(universal serial bus), 병렬 또는 다른 유선 또는 무선(예를 들어, 적외선(IR), 근거리 통신(NFC) 등)) 연결과 같은 출력 제어기(628)를 포함할 수 있다.
저장 디바이스(616)는 여기에 설명된 기술들 또는 기능들 중 임의의 하나 이상에 의해 채용되거나 이용되는 하나 이상의 데이터 구조 또는 명령 집합(624)(예를 들어, 소프트웨어)이 저장되는 기계 판독 가능 매체(622)를 포함할 수 있다. 명령들(624)은 또한 기계(600)에 의해 실행되는 동안 메인 메모리(604) 내에, 정적 메모리(606) 내에, 또는 하드웨어 프로세서(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 예를 들어, 하드웨어 프로세서(602), 메인 메모리(604), 정적 메모리(606) 또는 저장 디바이스(616)의 하나 또는 임의의 조합은 기계 판독 가능 매체(622)를 구성할 수 있다.
기계 판독 가능 매체(622)가 단일 매체로서 도시되어 있지만, "기계 판독 가능 매체"라는 용어는 하나 이상의 명령(624)을 저장하도록 구성된 단일 매체 또는 다수의 매체(예를 들어, 중앙 집중식 또는 분산 데이터베이스, 또는 관련 캐시들 및 서버들)를 포함할 수 있다.
"기계 판독 가능 매체"라는 용어는 기계(600)에 의한 실행을 위한 명령들을 저장, 인코딩 또는 전달할 수 있고 기계(600)가 본 개시 내용의 기술들 중 임의의 하나 이상을 수행하게 하거나, 또는 그러한 명령들에 의해 사용되거나 그것들과 연관된 데이터 구조들을 저장, 인코딩 또는 전달할 수 있는 임의의 매체를 포함할 수 있다. 비제한적 기계 판독 가능 매체의 예들은 고체 상태 메모리, 및 광학 및 자기 매체를 포함할 수 있다. 일례로, 대량 기계 판독 가능 매체는 불변(예를 들어, 움직이지 않는) 질량체를 갖는 복수의 입자를 갖는 기계 판독 가능 매체를 포함한다. 따라서, 대량 기계 판독 가능 매체는 일시적 전파 신호들이 아니다. 대량 기계 판독 가능 매체의 구체적인 예들은: 비휘발성 메모리, 이를테면 반도체 메모리 디바이스(예를 들어, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스; 자기 디스크, 이를테면 내부 하드 디스크 및 이동식 디스크; 광-자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.
명령들(624)(예를 들어, 소프트웨어, 프로그램, 운영 체제(OS) 등) 또는 다른 데이터는 저장 디바이스(621) 상에 저장되고, 프로세서(602)에 의해 사용하기 위해 메모리(604)에 의해 액세스될 수 있다. 메모리(604)(예를 들어, DRAM)는 통상적으로 빠르지 만 휘발성이며, 그에 따라 "오프" 조건에 있는 동안을 포함하여 장기 저장에 적합한 저장 디바이스(621)(예를 들어, SSD)와 상이한 유형의 저장 장치이다. 명령들(624) 또는 사용자 또는 기계(600)에 의해 사용되는 데이터는 통상적으로 프로세서(602)에 의한 사용을 위해 메모리(604)에 로딩된다. 메모리(604)가 가득 찰 때, 저장 디바이스(621)로부터의 가상 공간은 메모리(604)를 보충하기 위해 할당될 수 있다; 그러나, 저장 장치(621)는 통상적으로 메모리(604)보다 느리고, 기록 속도는 통상적으로 판독 속도보다 적어도 2배 느리기 때문에, 가상 메모리의 사용은 (메모리(604), 예를 들어 DRAM과는 대조적으로) 저장 디바이스 레이턴시로 인해 사용자 경험을 크게 감소시킬 수 있다. 나아가, 가상 메모리에 저장 디바이스(621)를 사용하면 저장 디바이스(621)의 사용 가능한 수명을 크게 줄일 수 있다.
가상 메모리와 대조적으로, 가상 메모리 압축(예를 들어, Linux® 커널 특징 "ZRAM")은 메모리의 부분을 압축된 블록 저장 장치로서 사용하여 저장 디바이스(621)로의 페이징을 방지한다. 페이징은 그러한 데이터를 저장 디바이스(621)에 기록할 필요가 있을 때까지 압축된 블록에서 발생한다. 가상 메모리 압축은 사용 가능한 메모리(604)의 크기를 증가시키면서, 저장 디바이스(621) 상의 웨어를 감소시킨다.
모바일 전자 디바이스들 또는 모바일 저장 장치에 최적화된 저장 디바이스들은 전통적으로 MMC 고체 상태 저장 디바이스(예를 들어, microSD™(micro Secure Digital) 카드 등)를 포함한다. MMC 디바이스들은 호스트 디바이스와 다수의 병렬 인터페이스(예를 들어, 8-비트 병렬 인터페이스)를 포함하고, 종종 호스트 디바이스에서 분리 가능하고 이와 별개의 구성요소들이다. 대조적으로, eMMC™ 디바이스들은 회로 보드에 부착되어 있고 판독 속도가 직렬 ATA™(Serial AT(Advanced Technology) Attachment 또는 SATA) 기반 SSD 디바이스들에 필적하는 호스트 디바이스의 구성요소로 간주된다. 그러나 가상 또는 증강 현실 디바이스들을 완전히 활성화하고 네트워크 속도를 높이는 등 모바일 디바이스 성능에 대한 요구가 계속 증가하고 있다. 이러한 요구에 부응하여, 저장 디바이스들은 병렬에서 직렬 통신 인터페이스들로 전환되었다. 제어기들 및 펌웨어를 비롯한 UFS(Universal Flash Storage) 디바이스들은 전용 판독/기록 경로들이 있는 저전압 차동 신호(LVDS) 직렬 인터페이스를 사용하여 호스트 디바이스와 통신하여, 나아가 판독/기록 속도를 향상시킨다.
명령들(624)은 또한 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, 인터넷 프로토콜(IP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 하이퍼텍스트 전송 프로토콜(HTTP) 등) 중 어느 하나를 이용하여 네트워크 인터페이스 디바이스(620)를 통해 전송 매체를 사용하여 통신 네트워크(626)을 통해 송신 또는 수신될 수 있다. 예시적인 통신 네트워크들은 다른 것들 중에서도, 근거리 통신망(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) 네트워크.를 포함할 수 있다. 일례로, 네트워크 인터페이스 디바이스(620)는 통신 네트워크(626)에 연결하기 위한 하나 이상의 물리적 잭(예를 들어, 이더넷, 동축 또는 전화 잭) 또는 하나 이상의 안테나를 포함할 수 있다. 일례로, 네트워크 인터페이스 디바이스(620)는 단일 입력 다중 출력(SIMO), 다중 입력 다중 출력(MIMO), 또는 다중 입력 단일 출력(MISO) 기술 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함한다. "전송 매체"라는 용어는 기계(600)에 의한 실행을 위한 명령들을 저장, 인코딩 또는 전달할 수 있는 임의의 무형 매체를 포함하는 것으로 간주되어야 하고, 그러한 소프트웨어의 통신을 가능하게 하기 위해 디지털 또는 아날로그 통신 신호들 또는 다른 무형 매체를 포함한다.
추가 예들:
예 1은 NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 NAND 디바이스이며, 상기 NAND 디바이스는: NAND 어레이; 및 제어기로서: 평면들의 수로 지정되는 수퍼 블록 폭을 획득하고; 상기 NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하되, 상기 수퍼 블록 엔트리는 상기 NAND 어레이로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 어레이의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고 상이한 평면들에 있고; 요청 개체로부터 요청을 수신하고; 다음을 통해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하여 결과를 생성하며: 상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및 다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트; 및 상기 결과를 상기 요청 개체에 리턴하는, 상기 제어기를 포함한다.
예 2에서, 예 1의 대상은 상기 평면들의 수가 백분율로서 지정되는 것을 포함한다.
예 3에서, 예 2의 대상은 상기 백분율이 50 퍼센트인 것을 포함한다.
예 4에서, 예 1-3의 대상은 상기 평면들의 수가 상기 NAND 어레이의 다이에서의 평면들보다 적은 것을 포함한다.
예 5에서, 예 4의 대상은 완전 수퍼 블록이 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 어레이의 모든 다이에 걸쳐 이어지는 것을 포함한다.
예 6에서, 예 5의 대상은 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는 것을 포함한다.
예 7에서, 예 4-6의 대상은 상기 수퍼 블록이 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합이 상기 NAND 어레이의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는 것을 포함한다.
예 8에서, 예 7의 대상은 상기 수퍼 블록이 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는 것을 포함한다.
예 9에서, 예 8의 대상은 상기 수퍼 블록 집합이 두 요소를 갖고 상기 평면들의 위치가 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인 것을 포함한다.
예 10에서, 예 1-9의 대상은 상기 요청이 기록인 것을 포함한다.
예 11에서, 예 1-10의 대상은 상기 요청이 판독인 것을 포함한다.
예 12에서, 예 1-11의 대상은 상기 요청이 리프레시인 것을 포함한다.
예 13에서, 예 1-12의 대상은 상기 요청이 가비지 수집인 것을 포함한다.
예 14는 NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 방법이며, 상기 방법은: 평면들의 수로 지정되는 수퍼 블록 폭을 획득하는 단계; NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하는 단계로서, 상기 수퍼 블록 엔트리는 상기 NAND 디바이스로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고 상이한 평면들에 있는, 상기 수퍼 블록 엔트리를 생성하는 단계; 요청 개체로부터 요청을 수신하는 단계; 다음을 제공하는 것에 의해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하여 결과를 생성하는 단계: 상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및 다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트; 및 상기 결과를 상기 요청 개체에 리턴하는 단계를 포함한다.
예 15에서, 예 14의 대상은 상기 평면들의 수가 백분율로서 지정되는 것을 포함한다.
예 16에서, 예 15의 대상은 상기 백분율이 50 퍼센트인 것을 포함한다.
예 17에서, 예 14-16의 대상은 상기 평면들의 수가 상기 NAND 디바이스의 다이에서의 평면들보다 적은 것을 포함한다.
예 18에서, 예 17의 대상은 완전 수퍼 블록이 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 디바이스의 모든 다이에 걸쳐 이어지는 것을 포함한다.
예 19에서, 예 18의 대상은 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는 것을 포함한다.
예 20에서, 예 17-19의 대상은 상기 수퍼 블록이 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합이 상기 NAND 디바이스의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는 것을 포함한다.
예 21에서, 예 20의 대상은 상기 수퍼 블록이 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는 것을 포함한다.
예 22에서, 예 21의 대상은 상기 수퍼 블록 집합이 두 요소를 갖고 상기 평면들의 위치가 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인 것을 포함한다.
예 23에서, 예 14-22의 대상은 상기 요청이 기록인 것을 포함한다.
예 24에서, 예 14-23의 대상은 상기 요청이 판독인 것을 포함한다.
예 25에서, 예 14-24의 대상은 상기 요청이 리프레시인 것을 포함한다.
예 26에서, 예 14-25의 대상은 상기 요청이 가비지 수집인 것을 포함한다.
예 27은 기계에 의해 실행될 때, 상기 기계가 예 14-26의 임의의 방법을 수행하게 하는 명령들을 포함하는 적어도 하나의 기계 판독 가능한 매체이다.
예 28은 예 14-26의 임의의 방법을 수행하기 위한 수단들을 포함하는 시스템이다.
예 29는 NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 명령들을 포함하는 기계 판독 가능한 매체이며, 상기 명령들은 기계에 의해 실행될 때, 상기 기계로 하여금: 평면들의 수로 지정되는 수퍼 블록 폭을 획득하는 동작들; NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하는 동작들로서, 상기 수퍼 블록 엔트리는 상기 NAND 디바이스로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고 상이한 평면들에 있는, 상기 수퍼 블록 엔트리를 생성하는 동작들; 요청 개체로부터 요청을 수신하는 동작들; 다음을 제공하는 것에 의해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하여 결과를 생성하는 동작들: 상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및 다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트; 및 상기 결과를 상기 요청 개체에 리턴하는 동작들을 수행하게 한다.
예 30에서, 예 29의 대상은 상기 평면들의 수가 백분율로서 지정되는 것을 포함한다.
예 31에서, 예 30의 대상은 상기 백분율이 50 퍼센트인 것을 포함한다.
예 32에서, 예 29-31의 대상은 상기 평면들의 수가 상기 NAND 디바이스의 다이에서의 평면들보다 적은 것을 포함한다.
예 33에서, 예 32의 대상은 완전 수퍼 블록이 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 디바이스의 모든 다이에 걸쳐 이어지는 것을 포함한다.
예 34에서, 예 33의 대상은 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는 것을 포함한다.
예 35에서, 예 32-34의 대상은 상기 수퍼 블록이 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합이 상기 NAND 디바이스의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는 것을 포함한다.
예 36에서, 예 35의 대상은 상기 수퍼 블록이 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는 것을 포함한다.
예 37에서, 예 36의 대상은 상기 수퍼 블록 집합이 두 요소를 갖고 상기 평면들의 위치가 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인 것을 포함한다.
예 38에서, 예 29-37의 대상은 상기 요청이 기록인 것을 포함한다.
예 39에서, 예 29-38의 대상은 상기 요청이 판독인 것을 포함한다.
예 40에서, 예 29-39의 대상은 상기 요청이 리프레시인 것을 포함한다.
예 41에서, 예 29-40의 대상은 상기 요청이 가비지 수집인 것을 포함한다.
예 42는 NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 시스템이며, 상기 시스템은: 평면들의 수로 지정되는 수퍼 블록 폭을 획득하기 위한 수단들; NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하기 위한 수단들로서, 상기 수퍼 블록 엔트리는 상기 NAND 디바이스로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고 상이한 평면들에 있는, 상기 수퍼 블록 엔트리를 생성하기 위한 수단들; 요청 개체로부터 요청을 수신하기 위한 수단들; 다음을 제공하는 것에 의해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하여 결과를 생성하기 위한 수단들: 상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및 다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트; 및 상기 결과를 상기 요청 개체에 리턴하기 위한 수단들을 포함한다.
예 43에서, 예 42의 대상은 상기 평면들의 수가 백분율로서 지정되는 것을 포함한다.
예 44에서, 예 43의 대상은 상기 백분율이 50 퍼센트인 것을 포함한다.
예 45에서, 예 42-44의 대상은 상기 평면들의 수가 상기 NAND 디바이스의 다이에서의 평면들보다 적은 것을 포함한다.
예 46에서, 예 45의 대상은 완전 수퍼 블록이 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 디바이스의 모든 다이에 걸쳐 이어지는 것을 포함한다.
예 47에서, 예 46의 대상은 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는 것을 포함한다.
예 48에서, 예 45-47의 대상은 상기 수퍼 블록이 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합이 상기 NAND 디바이스의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는 것을 포함한다.
예 49에서, 예 48의 대상은 상기 수퍼 블록이 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는 것을 포함한다.
예 50에서, 예 49의 대상은 상기 수퍼 블록 집합이 두 요소를 갖고 상기 평면들의 위치가 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인 것을 포함한다.
예 51에서, 예 42-50의 대상은 상기 요청이 기록인 것을 포함한다.
예 52에서, 예 42-51의 대상은 상기 요청이 판독인 것을 포함한다.
예 53에서, 예 42-52의 대상은 상기 요청이 리프레시인 것을 포함한다.
예 54에서, 예 42-53의 대상은 상기 요청이 가비지 수집인 것을 포함한다.
예 55는 처리 회로에 의해 실행될 때, 상기 처리 회로가 예 1-54 중 임의의 예의 구현을 위한 동작들을 수행하게 하는 명령들을 포함하는 적어도 하나의 기계 판독 가능한 매체이다.
예 56은 예 1-54 중 임의의 예의 구현을 위한 수단들을 포함하는 장치이다.
예 57은 예 1-54 중 임의의 예의 구현을 위한 시스템이다.
예 58은 예 1-54 중 임의의 예의 구현을 위한 방법이다.
상기한 상세한 설명은 상세한 설명의 부분을 형성하는 첨부 도면들에 대한 참조를 포함한다. 도면들은 예로서 본 발명이 실시될 수 있는 구체적인 실시 예들을 도시한다. 이러한 실시 예들은 여기서 "예"라고도 한다. 그러한 예들은 도시되거나 설명된 것 이외의 요소들을 포함할 수 있다. 그러나, 본 발명자들은 또한 도시되거나 설명된 요소들만이 제공되는 예들을 고려한다. 또한, 본 발명자들은 또한 여기서 도시 또는 설명된 특정 예(또는 이의 하나 이상의 양태) 또는 다른 예들(또는 이의 하나 이상의 양태)에 대하여, 도시되거나 설명된 요소들(또는 이의 하나 이상의 양태)의 임의의 조합 또는 치환을 사용하는 예들을 고려한다.
본 문서에서, "한" 또는 "하나의"라는 용어는 특허 문서에서 일반적으로 사용되는 바와 같이, "적어도 하나" 또는 "하나 이상"의 임의의 다른 예 또는 사용과 무관하게 하나보다 많은을 포함하는 것으로 사용된다. 본 문서에서, "또는"이라는 용어는 달리 표기되지 않는 한, 비배타적인 것을 지칭하기 위해 또는 "A 또는 B"가 "A이지만 B는 아닌", "B이지만 A는 아닌" 그리고 "A 및 B"를 포함할 수 있도록 사용된다. 첨부된 청구항들에서, "포함하는" 및 "여기서"라는 용어들은 "포함한" 및 "이때"의 각각의 용어들의 알기 쉬운 영어와 동등한 것으로 사용된다. 또한, 이하의 청구범위에서, "포함하는" 및 "포함한"이라는 용어들은 개방형이며, 즉 청구범위에서 그러한 용어 뒤에 나열된 것 외에 요소들을 포함하는 시스템, 디바이스, 물품 또는 프로세스는 여전히 해당 청구항의 범위 내에 속하는 것으로 간주된다. 또한, 이하의 청구범위에서, "제1", "제2"및 "제3" 등의 용어들은 단지 라벨들로서 사용되며, 그것들의 목적에 수치적 요건들을 부과하도록 의도되지 않는다.
다양한 예에서, 여기에 설명된 구성요소들, 제어기들, 프로세서들, 유닛들, 엔진들 또는 테이블들은 다른 것들 중에서도 물리적 디바이스 상에 저장된 물리적 회로 또는 펌웨어를 포함할 수 있다. 여기서 사용될 때, "프로세서"는 이에 제한되지는 않지만 마이크로 프로세서, 마이크로 제어기, 그래픽 프로세서, 디지털 신호 프로세서(DSP), 또는 프로세서들 또는 멀티 코어 디바이스들의 그룹을 비롯한 임의의 다른 유형의 프로세서 또는 처리 회로와 같은 임의의 유형의 계산 회로를 의미한다.
본 문서에서 사용될 때 "수평"이라는 용어는 임의의 시점에 기판의 실제 배향과 관계 없이, 웨이퍼 또는 다이의 기저와 같이 기판의 통상의 평면 또는 표면에 평행한 평면으로서 정의된다. 수직이라는 용어는 위에서 정의된 바와 같이 수평에 수직인 방향을 지칭한다. "상(on)", "위(over)" 및 "아래(under)"와 같은 전치사들은 기판의 배향에 관계없이 기판의 상부 또는 노출된 표면 상에 있는 통상의 평면 또는 표면에 대하여 정의되며; "상"은 ~ "상"에 놓이는 다른 구조물에 관한 하나의 구조물의 직접 접촉을 제시하도록 의도되는 한편(반대되는 표기가 없는 경우); "위" 및 "아래"라는 용어들은 이에 제한되지는 않지만 그에 따라 구체적으로 식별되지 않는 한 식별된 구조들 간의 직접 접촉을 명시적으로 포함하는 구조들(또는 층들, 특징부들 등)의 상대적 배치를 명시적으로 식별도록 의도된다. 유사하게, 구조가 수평 방향이 아니라 언급된 구조에 관해 수직으로 연장되더라도 그것이 어떤 시점에서 논의 중인 구성의 최외곽 부분인 경우에 구조가 언급된 구조 "위에" 있을 수 있기 때문에, "위" 및 "아래"라는 용어들은 수평 배향들로 제한되지 않는다.
웨이퍼 및 "기판"이라는 용어들은 여기서 일반적으로 그 위에 집적 회로들이 형성되는 임의의 구조를 나타내고, 그리고 또한 집적 회로 제조의 다양한 스테이지들 동안 그러한 구조들을 나타낸다. 따라서, 이하의 상세한 설명은 한정하는 의미로 취해지지 않으며, 다양한 실시 예의 범위는 첨부된 청구항들에 의해서만, 그러한 청구항들에 부여되는 등가물들의 전체 범위와 함께, 정의된다.
본 개시에 따라 여기에 설명된 다양한 실시 예는 메모리 셀들의 수직 구조(예를 들어, 메모리 셀들의 NAND 스트링들)를 이용하는 메모리를 포함한다. 여기서 사용될 때, 방향 형용사들은 메모리 셀들이 형성되는 기판의 표면에 관해 취해질 것이다(즉, 수직 구조는 기판 표면으로부터 연장되는 것으로 간주될 것이고, 수직 구조의 하단은 기판 표면에 가장 가까운 단부로 간주될 것이며, 수직 구조물의 상단은 기판 표면으로부터 가장 먼 단부로 간주될 것이다).
여기서 사용될 때, 수평, 수직, 법선, 평행, 수선 등과 같은 방향 형용사들은 상대적인 배향들을 지칭할 수 있고, 달리 언급되지 않는 한 특정 기하학적 속성들에 대한 엄격한 준수를 요구하지는 않는다. 예를 들어, 여기서 사용될 때, 수직 구조물은 기판의 표면에 엄격히 수선일 필요는 없지만, 대신에 기판의 표면에 대체로 수선일 수 있고, 기판의 표면과 예각을 형성할 수 있다(예를 들어, 60도 - 120도 등).
여기에 설명된 일부 실시 예에서, 상이한 도핑 구성이 소스측 선택 게이트(SGS), 제어 게이트(CG) 및 드레인측 선택 게이트(SGD)에 적용될 수 있으며, 이러한 예에서 이들 각각은 이러한 티어들(예를 들어, 폴리실리콘 등)이 에칭 용액에 노출될 때 상이한 에칭 속도들을 가질 수 있도록 하는 결과, 폴리실리콘으로 형성되거나 적어도 폴리실리콘을 포함할 수 있다. 예를 들어, 3D 반도체 디바이스에서 모놀리식 필라를 형성하는 공정에서, SGS 및 CG는 오목하게 형성할 수 있는 한편, SGD는 덜 오목하거나 오목하지 않을 수 있다. 그에 따라 이러한 도핑 구성들은 에칭 용액(예를 들어, 테트라메틸암모늄 하이드 록사이드(TMCH))을 사용함으로써 3D 반도체 디바이스에서 별개의 티어들(예를 들어, SGS, CG 및 SGD)로의 선택적 에칭을 가능하게 할 수 있다.
메모리 셀이 작동은 여기서 사용될 때, 메모리 셀로부터 판독, 그에 기록 또는 그것을 소거하는 것을 포함한다. 의도된 상태로 메모리 셀을 배치하는 동작은 여기서 "프로그래밍"으로 지칭되고, 메모리 셀에 기록하거나 그로부터 소거하는 것 양자를 포함할 수 있다(예를 들어, 메모리 셀은 소거된 상태로 프로그래밍될 수 있다).
본 개시의 하나 이상의 실시 예에 따르면, 메모리 디바이스의 내부 또는 외부에 위치된 메모리 제어기(예를 들어, 프로세서, 제어기, 펌웨어 등)는 (예를 들어, 웨어 사이클들을 기록, 그것들이 발생할 때 메모리 디바이스의 동작들을 카운팅, 그것이 개시하는 메모리 디바이스의 동작들을 추적, 웨어 상태에 대응하는 메모리 디바이스 특성들을 평가하여 등) 웨어 사이클들의 양 또는 웨어 상태를 결정(예를 들어, 선택, 설정, 조절, 컴퓨팅, 변경, 삭제, 통신, 구성, 유도, 정의, 이용, 수정, 적용 등)할 수 있다.
본 개시의 하나 이상의 실시 예에 따르면, 메모리 액세스 디바이스는 각 메모리 동작마다 웨어 사이클 정보를 메모리 디바이스에 제공하도록 구성될 수 있다. 메모리 디바이스 제어 회로(예를 들어, 제어 로직)는 웨어 사이클 정보에 대응하는 메모리 디바이스 성능 변화를 보상하도록 프로그래밍될 수 있다. 메모리 디바이스는 웨어 사이클 정보를 수신하고 웨어 사이클 정보에 응답하여 하나 이상의 작동 파라미터(예를 들어, 값, 특성)를 결정할 수 있다.
어떤 요소가 다른 요소 "상"에 있거나 "그에 연결"되거나 "그것과 연결"되는 것으로 언급될 때, 그것은 직접 다른 요소 상에 있거나 그에 연결되거나 그것과 연결될 수 있거나 중간에 다른 요소들이 존재할 수 있다는 것이 이해될 것이다. 대조적으로, 어떤 요소가 다른 요소 "바로 상"에 있거나 "그에 바로 연결"되거나 "그것과 바로 연결"되는 것으로 언급될 때, 그것은 중간에 다른 요소들 또는 층들이 존재할 수 없다. 도면들에서 두 개의 요소가 그것들을 연결하는 선으로 도시되어 있는 경우, 달리 표시되지 않는 한, 두 개의 요소는 연결되거나 직접 연결될 수 있다.
여기에 설명된 방법 예들은 적어도 부분적으로 기계 또는 컴퓨터 구현될 수 있다. 일부 예는 상기한 예들에 설명된 바와 같은 방법들을 수행하도록 전자 디바이스를 구성하도록 작동 가능한 명령들로 인코딩된 컴퓨터 판독 가능한 매체 또는 기계 판독 가능한 매체를 포함할 수 있다. 그러한 방법들의 구현은 코드, 이를테면 마이크로 코드, 어셈블리 언어 코드, 상위 레벨 언어 코드 또는 그 밖에 유사한 것을 포함할 수 있다. 그러한 코드는 다양한 방법을 수행하기 위한 컴퓨터 판독 가능한 명령들을 포함할 수 있다. 코드는 컴퓨터 프로그램 제품들의 부분들을 형성할 수 있다. 나아가, 코드는 이를테면 실행 동안 또는 다른 때에, 하나 이상의 휘발성 또는 비휘발성 유형의 컴퓨터 판독 가능한 매체 상에 유형으로 저장될 수 있다. 이러한 유형의 컴퓨터 판독 가능한 매체들의 예들은 하드 디스크, 착탈식 자기 디스크, 착탈식 광 디스크(예를 들어, 컴팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, 랜덤 액세스 메모리( RAM), 판독 전용 메모리(ROM), 고체 상태 드라이브(SSD), 유니버셜 플래시 저장(UFS) 디바이스, 내장형 MMC(eMMC, embedded MMC) 디바이스 및 기타 같은 종류의 것을 포함할 수 있다.
상기 설명은 제한적이 아니라 예시적인 것으로 의도된다. 예를 들어, 상술된 예들(또는 이의 하나 이상의 양태)은 서로 조합하여 사용될 수 있다. 상기 설명을 검토하면 이를테면 해당 기술분야의 통상의 기술자에 의해 다른 실시 예들이 사용될 수 있다. 그것은 청구항들의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않을 것이라는 이해로 제출된다. 또한, 상기 상세한 설명에서, 다양한 특징은 본 개시를 간소화하기 위해 함께 그룹화될 수 있다. 이는 청구되지 않은 개시된 특징이 모든 청구항에 필수적인 것임을 의도하는 것으로 해석되어서는 안 된다. 그보다, 본 발명의 대상은 개시된 특정 실시 예의 모든 특징보다 적을 수 있다. 그에 따라, 이하의 청구항들은 이에 의해 상세한 설명으로 통합되며, 각 청구항은 별개의 실시 예로서 독립되고, 그러한 실시 예들은 다양한 조합 또는 치환으로 서로 조합될 수있는 것으로 고려된다. 본 발명의 범위는 첨부된 청구항들을 참조하여, 그러한 청구항들의 권리가 주어지는 균등물들의 전체 범위와 함께 결정되어야 한다.

Claims (30)

  1. NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 NAND 디바이스로서,
    NAND 어레이; 및
    제어기로서:
    평면들의 수로 지정되는 수퍼 블록 폭을 획득하고;
    상기 NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하되, 상기 수퍼 블록 엔트리는 상기 NAND 어레이로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 어레이의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고, 상기 고유한 블록 인덱스들은 상이한 평면들에 각각 포함되고;
    요청 개체로부터 요청을 수신하고;
    결과를 생성하기 위해:
    상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및
    다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트
    를 통해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하고; 및
    상기 결과를 상기 요청 개체에 리턴하는, 상기 제어기를 포함하는, NAND 디바이스.
  2. 청구항 1에 있어서, 상기 평면들의 수는 백분율로서 지정되는, NAND 디바이스.
  3. 청구항 2에 있어서, 상기 백분율은 50 퍼센트인, NAND 디바이스.
  4. 청구항 1에 있어서, 상기 평면들의 수는 상기 NAND 어레이의 다이에서의 평면들보다 적은, NAND 디바이스.
  5. 청구항 4에 있어서, 완전 수퍼 블록은 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 어레이의 모든 다이에 걸쳐 이어지는, NAND 디바이스.
  6. 청구항 5에 있어서, 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는, NAND 디바이스.
  7. 청구항 4에 있어서, 상기 수퍼 블록은 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합은 상기 NAND 어레이의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는, NAND 디바이스.
  8. 청구항 7에 있어서, 상기 수퍼 블록은 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는, NAND 디바이스.
  9. 청구항 8에 있어서, 상기 수퍼 블록 집합은 두 요소를 갖고 상기 평면들의 위치는 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인, NAND 디바이스.
  10. 청구항 1에 있어서, 상기 요청은 기록, 판독, 리프레시 또는 가비지 수집 중 하나인, NAND 디바이스.
  11. NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 방법으로서,
    평면들의 수로 지정되는 수퍼 블록 폭을 획득하는 단계;
    NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하는 단계로서, 상기 수퍼 블록 엔트리는 상기 NAND 디바이스로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고, 상기 고유한 블록 인덱스들은 상이한 평면들에 각각 포함되는, 상기 수퍼 블록 엔트리를 생성하는 단계;
    요청 개체로부터 요청을 수신하는 단계;
    결과를 생성하기 위해:
    상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및
    다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트
    를 제공하는 것에 의해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하는 단계; 및
    상기 결과를 상기 요청 개체에 리턴하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 평면들의 수는 백분율로서 지정되는, 방법.
  13. 청구항 12에 있어서, 상기 백분율은 50 퍼센트인, 방법.
  14. 청구항 11에 있어서, 상기 평면들의 수는 상기 NAND 디바이스의 다이에서의 평면들보다 적은, 방법.
  15. 청구항 14에 있어서, 완전 수퍼 블록은 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 디바이스의 모든 다이에 걸쳐 이어지는, 방법.
  16. 청구항 15에 있어서, 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는, 방법.
  17. 청구항 14에 있어서, 상기 수퍼 블록은 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합은 상기 NAND 디바이스의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는, 방법.
  18. 청구항 17에 있어서, 상기 수퍼 블록은 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는, 방법.
  19. 청구항 18에 있어서, 상기 수퍼 블록 집합은 두 요소를 갖고 상기 평면들의 위치는 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인, 방법.
  20. 청구항 11에 있어서, 상기 요청은 기록, 판독, 리프레시 또는 가비지 수집 중 하나인, 방법.
  21. NAND에서 가변 폭 수퍼 블록 어드레싱을 위한 명령들을 포함하는 유형의(tangible) 기계 판독 가능한 기록 매체로서, 상기 명령들은 기계에 의해 실행될 때, 상기 기계로 하여금:
    평면들의 수로 지정되는 수퍼 블록 폭을 획득하는 동작;
    NAND 디바이스의 변환 테이블에 수퍼 블록 엔트리를 생성하는 동작으로서, 상기 수퍼 블록 엔트리는 상기 NAND 디바이스로부터의 블록 집합을 포함하고, 상기 블록 집합은 상기 NAND 디바이스의 다수의 다이에 걸쳐 동일한 블록 인덱스들을 가지며, 고유한 블록 인덱스들의 수는 상기 평면들의 수와 동일하고, 상기 고유한 블록 인덱스들은 상이한 평면들에 각각 포함되는, 상기 수퍼 블록 엔트리를 생성하는 동작;
    요청 개체로부터 요청을 수신하는 동작;
    결과를 생성하기 위해:
    상기 NAND 디바이스의 다수의 다이에 대한 단일 명령; 및
    다수의 데이터 세그먼트에서의 데이터 세그먼트가 다이 및 블록 인덱스의 튜플에 의해 지정되는 상기 블록 집합에서의 블록에 대응하는 상기 다수의 데이터 세그먼트
    를 제공하는 것에 의해 상기 수퍼 블록 엔트리를 사용하여 상기 요청을 수행하는 동작; 및
    상기 결과를 상기 요청 개체에 리턴하는 동작
    을 포함하는 동작들을 수행하게 하는, 유형의 기계 판독 가능한 기록 매체.
  22. 청구항 21에 있어서, 상기 평면들의 수는 백분율로서 지정되는, 유형의 기계 판독 가능한 기록 매체.
  23. 청구항 22에 있어서, 상기 백분율은 50 퍼센트인, 유형의 기계 판독 가능한 기록 매체.
  24. 청구항 21에 있어서, 상기 평면들의 수는 상기 NAND 디바이스의 다이에서의 평면들보다 적은, 유형의 기계 판독 가능한 기록 매체.
  25. 청구항 24에 있어서, 완전 수퍼 블록은 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하고 상기 NAND 디바이스의 모든 다이에 걸쳐 이어지는, 유형의 기계 판독 가능한 기록 매체.
  26. 청구항 25에 있어서, 사용자 데이터가 완전 수퍼 블록에 저장되고 NAND 디바이스 메타 데이터가 상기 수퍼 블록에 저장되는, 유형의 기계 판독 가능한 기록 매체.
  27. 청구항 24에 있어서, 상기 수퍼 블록은 수퍼 블록 집합 중 하나이며, 상기 수퍼 블록 집합은 상기 NAND 디바이스의 모든 다이에 걸쳐 상기 다이에서의 모든 평면에 대해 고유한 인덱스의 블록을 포함하는, 유형의 기계 판독 가능한 기록 매체.
  28. 청구항 27에 있어서, 상기 수퍼 블록은 상기 블록 집합에 해당되는 평면들의 위치에 의해 상기 수퍼 블록 집합에서의 다른 요소들과 구별되는, 유형의 기계 판독 가능한 기록 매체.
  29. 청구항 28에 있어서, 상기 수퍼 블록 집합은 두 요소를 갖고 상기 평면들의 위치는 하이 인덱스들을 갖는 상기 평면들의 절반에 대응하는 하이 또는 상기 다이 상의 나머지 평면들에 대응하는 로우인, 유형의 기계 판독 가능한 기록 매체.
  30. 청구항 21에 있어서, 상기 요청은 기록, 판독, 리프레시 또는 가비지 수집 중 하나인, 유형의 기계 판독 가능한 기록 매체.
KR1020207019800A 2017-12-13 2017-12-13 가변 폭 수퍼 블록 어드레싱 KR102492729B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/115869 WO2019113821A1 (en) 2017-12-13 2017-12-13 Variable width superblock addressing

Publications (2)

Publication Number Publication Date
KR20200096614A KR20200096614A (ko) 2020-08-12
KR102492729B1 true KR102492729B1 (ko) 2023-01-27

Family

ID=66818762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207019800A KR102492729B1 (ko) 2017-12-13 2017-12-13 가변 폭 수퍼 블록 어드레싱

Country Status (6)

Country Link
US (2) US11132136B2 (ko)
EP (1) EP3724768A4 (ko)
JP (2) JP7080975B2 (ko)
KR (1) KR102492729B1 (ko)
CN (1) CN112055850B (ko)
WO (1) WO2019113821A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112055850B (zh) 2017-12-13 2024-04-23 美光科技公司 Nand装置及相关方法和机器可读媒体
US11693773B2 (en) * 2019-03-15 2023-07-04 Kioxia Corporation Systems and methods for implementing a four-dimensional superblock
US10872035B1 (en) * 2019-05-29 2020-12-22 Apple Inc. Systems and methods for managing an artificially limited logical space of non-volatile memory
CN115712386A (zh) * 2021-08-23 2023-02-24 华为技术有限公司 超级块管理方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
CN102341792A (zh) 2009-03-04 2012-02-01 美光科技公司 存储器块管理
CN102866956A (zh) 2012-09-14 2013-01-09 上海宝存信息科技有限公司 基于固态存储介质的数据实时跟踪存储系统及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP4737223B2 (ja) * 2008-04-21 2011-07-27 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8838876B2 (en) * 2008-10-13 2014-09-16 Micron Technology, Inc. Translation layer in a solid state storage device
US8447920B1 (en) 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US9332276B1 (en) * 2012-08-09 2016-05-03 Google Inc. Variable-sized super block based direct prediction mode
US9431113B2 (en) * 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9268502B2 (en) * 2013-09-16 2016-02-23 Netapp, Inc. Dense tree volume metadata organization
US9823863B1 (en) 2014-06-30 2017-11-21 Sk Hynix Memory Solutions Inc. Sub-blocks and meta pages for mapping table rebuild
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
KR20160112135A (ko) * 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10007451B2 (en) * 2015-03-20 2018-06-26 SK Hynix Inc. Scalable SPOR algorithm for flash memories
US10180805B2 (en) * 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
CN112055850B (zh) 2017-12-13 2024-04-23 美光科技公司 Nand装置及相关方法和机器可读媒体
US10372355B2 (en) * 2017-12-29 2019-08-06 Micron Technology, Inc. Managing partial superblocks in a NAND device
US10990320B2 (en) * 2019-02-01 2021-04-27 Western Digital Technologies, Inc. Systems and methods to optimally select metablocks
US11693773B2 (en) * 2019-03-15 2023-07-04 Kioxia Corporation Systems and methods for implementing a four-dimensional superblock

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
CN102341792A (zh) 2009-03-04 2012-02-01 美光科技公司 存储器块管理
CN102866956A (zh) 2012-09-14 2013-01-09 上海宝存信息科技有限公司 基于固态存储介质的数据实时跟踪存储系统及方法

Also Published As

Publication number Publication date
JP2021507372A (ja) 2021-02-22
US20220011936A1 (en) 2022-01-13
CN112055850B (zh) 2024-04-23
JP7080975B2 (ja) 2022-06-06
US11132136B2 (en) 2021-09-28
KR20200096614A (ko) 2020-08-12
CN112055850A (zh) 2020-12-08
US11740819B2 (en) 2023-08-29
EP3724768A1 (en) 2020-10-21
US20210181940A1 (en) 2021-06-17
WO2019113821A8 (en) 2020-07-09
JP2022111152A (ja) 2022-07-29
WO2019113821A1 (en) 2019-06-20
EP3724768A4 (en) 2021-07-21

Similar Documents

Publication Publication Date Title
KR102365716B1 (ko) Nand 디바이스에서의 부분 수퍼블록 관리
US11922053B2 (en) NAND logical-to-physical table region tracking
US11714712B2 (en) Extended error correction in storage device
US11341041B2 (en) Synchronizing NAND logical-to-physical table region tracking
US11740819B2 (en) Variable width superblock addressing
US11609819B2 (en) NAND device mixed parity management
US20200210067A1 (en) Adjustable nand write performance
US11663120B2 (en) Controlling NAND operation latency

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right