KR101343237B1 - 메모리 블록 선택 - Google Patents
메모리 블록 선택 Download PDFInfo
- Publication number
- KR101343237B1 KR101343237B1 KR1020117023032A KR20117023032A KR101343237B1 KR 101343237 B1 KR101343237 B1 KR 101343237B1 KR 1020117023032 A KR1020117023032 A KR 1020117023032A KR 20117023032 A KR20117023032 A KR 20117023032A KR 101343237 B1 KR101343237 B1 KR 101343237B1
- Authority
- KR
- South Korea
- Prior art keywords
- group
- groups
- super
- blocks
- write operation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 메모리 블록 선택을 위한 방법들 및 장치들을 포함한다. 하나 이상의 실시예들에서, 메모리 제어기는 복수 그룹들의 평면들이 연관된 하나 이상의 메모리 장치들에 결합된 제어 회로를 포함하며, 각 그룹은 슈퍼 블록들로 구성된 적어도 두 평면들의 물리 블록들을 포함하고, 각 슈퍼 블록은 적어도 두 평면들 각각으로부터의 물리 블록을 포함한다. 제어 회로는 기입 동작에 연관된 제 1 미할당 논리 블록 어드레스(LBA)를 수신하고, 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹 내에 특정 자유 슈퍼 블록을 결정하도록 구성된다.
Description
본 발명은 일반적으로 반도체 메모리 장치들, 방법들, 및 시스템들에 관한 것으로, 특히 메모리 블록 선택에 관한 것이다.
메모리 장치들은 전형적으로 컴퓨터들 또는 그외 전자장치들 내에 내부 반도체 집적회로들로서 제공된다. 휘발성 및 비휘발성 메모리를 포함한 많은 서로 다른 유형들의 메모리가 있다. 휘발성 메모리는 자신의 데이터를 유지하기 위해 전력을 필요로 할 수 있으며, 특히 랜덤-액세스 메모리(RAM), 동적 랜덤-액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함한다. 비휘발성 메모리는, 전원이 없을 때, 저장된 정보를 보존함으로써 영속적 데이터를 제공할 수 있고, 특히, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(ROM), 전기적 소거가능 프로그램가능 ROM(EEPROM), 소거가능 프로그램가능 ROM(EPROM), 및 상변화 랜덤 액세스 메모리(PCRAM)를 포함할 수 있다.
메모리 장치들은 함께 결합되어 고체상태 드라이브(SSD : solid state drive)를 형성할 수 있다. 고체상태 드라이브는 여러 다른 유형들의 비휘발성 및 휘발성 메모리 중에서도, 비휘발성 메모리, 예를 들면, NAND 플래시 메모리 및 NOR 플래시 메모리를 포함할 수 있고, 및/또는 휘발성 메모리, 예를 들면, DRAM 및 SRAM을 포함할 수 있다.
SSD는 고체상태 드라이브가 성능, 크기, 무게, 견고성, 동작온도 범위, 및 전력 소비면에서 하드 드라이브들에 비해 잇점들을 가질 수 있기 때문에, 컴퓨터용 주 저장장치로서 하드디스크 드라이브들을 대체하기 위해 사용될 수 있다. 예를 들면, SSD들은 이들이 가동(moving) 부품들이 없어 자기 디스크 드라이브들에 연관된 탐색시간, 레이턴시(latency), 및 그외 전기-기계적 지연들을 개선할 수 있어 자기 디스크 드라이브들과 비교했을 때 우수한 성능을 가질 수 있다. SSD 제조업자들은 내부 배터리 서플라이를 사용하지 않을 수 있는 플래시 SSD들을 만들기 위해 비휘발성 플래시 메모리를 사용할 수 있어, 이에 따라 드라이브를 더 다목적이고 콤팩트하게 할 수 있다.
SSD는 다수의 메모리 장치들, 예를 들면, 다수의 메모리 칩들을 포함할 수 있다(여기에서 사용되는 바와 같이, "다수의" 어떤 것은 하나 이상의 이러한 것들을 지칭할 수 있는데, 예를 들면, 다수의 메모리 장치들은 하나 이상의 메모리 장치들을 지칭할 수 있다). 당업자가 알게 되는 바와 같이, 메모리 칩은 다수의 다이(die)들을 포함할 수 있다. 각각의 다이는 이에 다수의 메모리 어레이들 및 주변 회로를 포함할 수 있다. 메모리 어레이는 다수의 평면들을 포함할 수 있고, 각각의 평면은 다수의 물리 블록(physical block)들의 메모리 셀들을 포함한다. 각각의 물리 블록은 다수의 섹터들의 데이터를 저장할 수 있는 다수의 페이지들의 메모리 셀들을 포함할 수 있다.
SSD 내에서의 메모리 블록 선택은 예를 들면 물리 블록들이 기입되고 소거되는 순서뿐만 아니라, 어느 물리 블록들에 데이터를 기입할지와 어느 물리 블록들을 소거할지를 결정하는 것을 수반할 수 있다. SSD들에서 사용되는 메모리 셀들은 유한 회수의 기입-소거 사이클들로 제한될 수 있는데, 이것은 드라이브의 수명을 결정할 수 있다. 따라서, 메모리 블록 선택 효율 및 할당 효율을 개선하는 것은 SSD의 수명을 증가시킬 수 있다.
도 1은 복수의 물리 블록들을 포함하며 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 메모리 어레이를 도시한 것이다.
도 2는 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 복수 그룹들의 평면들을 구비한 다수의 메모리 장치들을 도시한 것이다.
도 3은 본 발명의 하나 이상의 실시예들에 따른 메모리 시스템의 기능 블록도이다.
도 4a, 도 4b, 도 4c 및 도 4d는 본 발명의 하나 이상의 실시예들에 따른 메모리 블록 선택을 도시한 기능 블록도이다.
도 2는 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 복수 그룹들의 평면들을 구비한 다수의 메모리 장치들을 도시한 것이다.
도 3은 본 발명의 하나 이상의 실시예들에 따른 메모리 시스템의 기능 블록도이다.
도 4a, 도 4b, 도 4c 및 도 4d는 본 발명의 하나 이상의 실시예들에 따른 메모리 블록 선택을 도시한 기능 블록도이다.
본 발명은 메모리 블록 선택을 위한 방법들 및 장치들을 포함한다. 하나 이상의 실시예들에서, 메모리 제어기는 복수 그룹들의 평면들이 연관된 하나 이상의 메모리 장치들에 결합된 제어 회로를 포함하며, 각 그룹은 슈퍼 블록들로 구성된 적어도 두 평면들의 물리 블록들을 포함하고, 각 슈퍼 블록은 적어도 두 평면들 각각으로부터의 물리 블록을 포함한다. 제어 회로는 기입 동작(write operation)에 연관된 제 1 미할당 논리 블록 어드레스(LBA : logical block address)를 수신하고, 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹 내에 특정 자유 슈퍼 블록을 결정하도록 구성된다.
본 발명의 다음 상세한 설명에서, 이의 일부를 이루며 발명의 하나 이상의 실시예들이 어떻게 실시될 수 있는가를 예시로서 도시한 동반된 도면들을 참조한다. 이들 실시예들은 당업자들이 발명의 실시예를 실시할 수 있게 할만큼 충분히 상세히 기술되며, 다른 실시예들이 이용될 수도 있고 본 발명의 범위 내에서 프로세스, 전기적 및 구조적 변경들이 행해질 수 있음을 알아야 한다. 여기에서 사용되는 바와 같이, 특히 도면들에서 참조부호들에 관련하여, "M", "N", "S", "R", "B"로 표시한 것은 이와 같이 표시된 다수의 특정한 특징이 하나 이상의 본 발명의 실시예들에 포함될 수 있음을 나타낸다. 표시한 것들은 동일하거나 다른 수의 특징한 특징들을 나타낼 수 있다.
여기에 도면들에서 표시한 숫자는 앞에 숫자 또는 숫자들은 도면 번호에 대응하는 것이고 그 뒤에 숫자들은 도면에서 구성요소 혹은 부품을 나타낸다. 도면들 간에 유사한 구성요소들 혹은 부품들은 비슷한 숫자들을 사용하여 확인될 수 있다. 예를 들어, 110은 도 1에서 참조요소가 "10"일 수 있고, 유사한 요소는 도 2a에서는 210으로서 참조될 수 있다. 알게 되는 바와 같이, 여기에 여러 실시예들에 보인 구성요소들은 다수의 추가의 본 발명의 실시예들을 제공하기 위해서 추가, 교환, 및/또는 제거될 수 있다. 또한, 알게 되는 바와 같이, 도면들에 제공된 구성요소들의 비율 및 상대적 비례는 본 발명의 실시예들을 예시하려는 것이며 제한의 의미로 취해지지 않아야 한다.
도 1은 복수의 물리 블록들, 104-0(블록 0), 104-1(블록 1),..., 104-B(블록 B)을 포함하며 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 메모리 어레이(102)를 도시한 것이다. 도 1에 도시되지 않았을지라도, 당업자는 메모리 어레이(102)가 이의 동작에 연관된 각종 주변 회로와 함께 특정 반도체 다이 상에 위치될 수 있음을 알 것이다.
도 1에 도시된 예에서, 참조부호 "B"는 어레이(102)가 다수의 물리 블록들을 포함할 수 있음을 나타내기 위해 사용된다. 예를 들어, 어레이(102) 내 물리 블록들의 수는 128 블록들, 512 블록들, 혹은 1,024 블록들일 수 있는데, 그러나 실시예들은 128의 특정 배수 혹은 어레이(102) 내의 임의의 특정한 개수의 물리 블록들로 제한되지 않는다. 또한, 실시예들은 어레이에 사용되는 메모리의 유형, 예를 들면, 비휘발성, 휘발성, 등으로 제한되지 않는다. 도 1에 도시된 실시예에서, 메모리 어레이(102)는 예를 들면, NAND 플래시 메모리 어레이(102)일 수 있다.
이 예에서, 각각의 물리 블록(104-0, 104-1,..., 104-B)은 유닛으로서 함께 소거될 수 있는 메모리 셀들을 포함하는데, 예를 들면, 각각의 물리 블록 내 셀들은 실질적으로 동시에 소거될 수 있다. 예를 들면, 각각의 물리 블록 내 셀들은 단일 동작으로 함께 소거될 수 있다. 각각의 물리 블록, 예를 들면, 104-0, 104-1,..., 104-B는 한 액세스 라인, 예를 들면, 한 워드라인에 결합되는 다수의 물리적 행(row)들, 예를 들면, 106-0, 106-1,..., 106-R의 메모리 셀들을 내포한다. 참조부호 "R"은 물리 블록, 예를 들면, 104-0, 104-1,..., 104-B이 다수의 행들을 포함할 수 있음을 나타내기 위해 사용된다. 일부 실시예들에서, 각각의 물리 블록 내 행들, 예를 들면, 워드라인들의 수는 32일 수 있는데, 그러나 실시예들은 물리 블록당 특정 수의 행들(106-0, 106-1,..., 106-R)로 제한되는 것은 아니다.
당업자가 알게 되는 바와 같이, 각각의 행(106-0, 106-1,..., 106-R)은 하나 이상의 데이터 페이지들을 저장할 수 있다. 페이지는 예를 들어 함께 혹은 기능 그룹의 메모리 셀들로서 프로그램 및/또는 판독되는 다수 셀들을 프로그래밍 및/또는 판독하는 한 유닛을 말한다. 도 1에 도시된 실시예에서, 각각의 행(106-0, 106-1,..., 106-R)은 한 페이지의 데이터를 저장한다. 그러나, 본 발명의 실시예들은 이것으로 제한되지 않는다. 예를 들면, 본 발명의 일부 실시예들에서, 각각의 행은 복수의 데이터 페이지들을 저장할 수 있다.
본 발명의 하나 이상의 실시예들에서, 그리고 도 1에 도시된 바와 같이, 행들(106-0, 106-1,..., 106-R)에 연관된 페이지는 다수 물리 섹터들(108-0, 108-1,..., 108-S)의 데이터에 따라 데이터를 저장할 수 있다. 참조부호 "S"는 한 행, 예를 들면, 106-0, 106-1,..., 106-R이 다수의 물리 섹터들을 포함할 수 있음을 나타내기 위해 사용된다. 각각의 물리 섹터(108-0, 108-1,..., 108-S)는 논리 섹터에 대응할 수 있고, 사용자 데이터뿐만 아니라 오류 정정 부호(ECC : error correction code) 정보, 및 논리 블록 어드레스(LBA) 정보와 같은 오버헤드(overhead) 정보를 포함할 수 있다. 당업자가 알게 되는 바와 같이, 논리 블록 어드레싱은 한 논리 섹터의 정보를 식별하기 위해 호스트에 의해 흔히 사용되는 수법이다. 예를 들어, 한 논리 섹터는 다수 바이트의 데이터, 예를 들면, 256 바이트, 512 바이트, 또는 1,024 바이트를 나타내는 정보를 저장할 수 있다. 실시예들은 이들 예들로 제한되지 않는다.
물리 블록들(104-0, 104-1,..., 104-B), 행들(106-0, 106-1,..., 106-R), 섹터들(108-0, 108-1,..., 108-S), 및 페이지들에 대해 다른 형식들 및/또는 구성들이 가능한 것에 유의한다. 예를 들면, 물리 블록들(104-0, 104-1,..., 104-B)의 행들(106-0, 106-1,..., 106-R)은 예를 들어 512 바이트 초과 혹은 미만의 데이터를 포함할 수 있는 단일 논리 섹터를 포함할 수 있다.
도 2는 본 발명의 하나 이상의 실시예들에 따라 동작될 수 있는 복수 그룹들의 평면들을 갖는 다수의 메모리 장치들을 도시한 도면이다. 여기에 기술된 하나 이상의 실시예들에 따라, 물리 블록들의 메모리 셀들의 평면들은 메모리 블록 선택 목적을 위해 그룹(group)들로 구성된다. 하나 이상의 실시예들에서, 그룹은 하나 이상의 서로 다른 메모리 어레이들로부터 다수의 평면(plane)들을 포함할 수 있다. 하나 이상의 실시예들에서, 그룹에 대응하는 하나 이상의 평면들은 서로 다른 메모리 장치들로부터 올 수 있다.
도 2에 도시된 실시예는 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3)을 포함한다. 메모리 장치들(230-0, 230-1, 230-2, 230-3)의 조합을 도 3에 관련하여 여기에서 더욱 기술되는 메모리 유닛(325)과 같은 메모리 유닛이라 칭할 수 있다. 하나 이상의 실시예들에서, 메모리 장치들(230-0, 230-1, 230-2, 230-3)은 고체상태 드라이브(SSD)의 메모리 유닛을 형성한다.
메모리 장치들(230-0, 230-1, 230-2, 230-3)은 각각이 칩당 복수의 다이들을 포함하는 반도체 메모리 칩일 수 있다. 당업자는 한 특정의 칩 상에 각각의 다이가 메모리 어레이의 동작에 연관된 각종 주변 회로(도 2에 도시되지 않음)과 함께 메모리 어레이를 포함할 수 있음을 알 것이다.
도 2에 도시된 실시예에서, 각각의 메모리 장치(230-0, 230-1, 230-2, 230-3)는 2개의 메모리 어레이들(202-0, 202-1)(각각, 다이 0 및 다이 1로서 도시됨)을 포함한다. 각각의 메모리 어레이(202-0, 202-1)는 도 1에 관련하여 기술된 어레이(102)와 같은 플래시 메모리 어레이일 수 있다. 예를 들면, 각각의 메모리 어레이(202-0, 202-1)는 도 1에 도시된 블록들(104-0, 104-2,..., 104-B)과 같은 복수의 물리 블록들의 메모리 셀들을 포함한다.
당업자가 알게 되는 바와 같이, 어레이의 물리 블록들, 예를 들면, 202-0, 202-1은 복수의 평면들로 구성될 수 있다. 예를 들면, 도 2에 도시된 실시예에서, 메모리 어레이들 각각은 제 1 평면(평면 0)의 물리 블록들 및 제 2 평면(평면 1)의 물리 블록들로 분할된다. 그러나, 본 발명의 실시예들은 어레이당 특정 수의 평면들로 제한되지 않는다. 예를 들면, 여러 실시예들에서 메모리 어레이는 단지 한 평면을 포함할 수도 있고, 혹은 2를 초과하는 평면들을 포함할 수도 있다.
도 2에 도시된 실시예에서, 메모리 장치들(230-0, 230-1, 230-2, 230-3)에 연관된 물리 블록 평면들은 2개의 그룹들, 예를 들면, 240-0(그룹 0) 및 240-1(그룹 1)로 구성된다. 도 2에 도시된 실시예에서, 각각의 그룹(240-0, 240-1)은 4개의 메모리 어레이들 각각으로부터 평면들 각각을 포함한다. 예를 들어, 그룹(240-0)은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각 내에 어레이(202-0)(다이 0)의 평면들(평면 0 및 평면 1)을 포함한다. 그룹(240-1)은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각 내에 어레이(202-1)(다이 1)의 평면들(평면 0 및 평면 1)을 포함한다.
실시예들은 도 2에 도시된 예로 제한되지 않는다. 예를 들면, 하나 이상의 실시예들에서, 그룹은 단일 어레이 내에 한 집단의 평면들을 포함할 수 있다. 예를 들어, 한 그룹은 장치(230-0)의 어레이(202-0)의 평면 0 및 평면 1을 포함할 수 있고, 또 다른 그룹은 장치(230-0)의 어레이(202-1)의 평면 0 및 평면 1을 포함할 수 있고, 또 다른 그룹은 장치(230-1)의 어레이(202-0)의 평면 0 및 평면 1을 포함할 수 있다.
일부 실시예들에서, 그룹은 단일 메모리 장치의 서로 다른 어레이들 내에 다수의 평면들을 포함할 수 있다. 예를 들어, 한 그룹은 장치(230-0)의 어레이(202-0)의 평면 0 및 어레이(202-1)의 평면 0을 포함할 수 있고, 또 다른 그룹은 장치(230-0)의 어레이(202-0)의 평면 1 및 어레이(202-1)의 평면 1을 포함할 수 있다. 또 다른 예를 들어 한 그룹은 장치(230-0)의 어레이(202-0)의 평면 0 및 평면 1과 어레이(202-1)의 평면 0 및 평면 1을 포함할 수 있고, 또 다른 그룹은 장치(230-1)의 어레이(202-0)의 평면 0 및 평면 1과 어레이(202-1)의 평면 0 및 평면 1을 포함할 수 있다.
어레이들, 예를 들면, 202-0 및 202-1이 복수의 평면들을 포함하는 실시예들에서, 일 그룹의 평면들은, 일부 실시예들에서, 서로 다른 메모리 장치들의 하나 이상의 어레이들 각각으로부터 한 평면을 포함한다. 예를 들면, 도 2에 관련하여, 하나 이상의 실시예들에서, 다수의 그룹들 각각은 4개의 각각의 메모리 장치들 내에 4개의 메모리 어레이들 각각으로부터 한 집단의 한 평면을 포함할 수 있다. 예를 들면, 한 그룹은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각의 내에 어레이(202-0)(다이 0)의 평면 0을 포함할 수 있다. 제 2 그룹은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각의 내에 어레이(202-0)(다이 0)의 평면 1을 포함할 수 있다. 제 3 그룹은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각의 내에 어레이(202-1)(다이 1)의 평면 0을 포함할 수 있고, 제 4 그룹은 4개의 메모리 장치들(230-0, 230-1, 230-2, 230-3) 각각의 내에 어레이(202-1)(다이 1)의 평면 1을 포함할 수 있다.
하나 이상의 실시예들에서, 그리고 도 2에 도시된 바와 같이, 그룹들(240-0, 240-1) 각각은 이에 연관된 다수의 슈퍼 블록(super block)들, 예를 들면, 슈퍼 블록 0, 슈퍼 블록 1,..., 슈퍼 블록 N을 갖는다. 여기에서 사용되는 바와 같이, 슈퍼 블록은 대응하는 그룹 내에 각각의 평면으로부터 물리 블록을 포함하는 한 집단의 물리 블록들을 지칭할 수 있다. 하나 이상의 실시예들에서, 슈퍼 블록은 복수의 메모리 장치들에 걸친 범위일 수 있다. 예를 들면, 슈퍼 블록은 대응하는 그룹 내d의 서로 다른 메모리 장치들 내의 적어도 2개의 메모리 어레이들 각각 내의 한 평면으로부터의 한 물리 블록을 포함하는 한 집단의 물리 블록들일 수 있다.
실시예들은 그룹당 특정 수의 슈퍼 블록들로 제한되지 않는다. 예를 들어, 그룹, 예를 들면, 240-0 및 240-1은 그룹당 64, 512, 또는 1,024 슈퍼 블록들을 포함할 수 있다. 도 2에 도시된 실시예에서, 그룹(240-0)에 연관된 슈퍼 블록들(245-0, 245-1,..., 245-N) 각각은 4개의 어레이들(202-0) 각각, 예를 들면, 4개의 각각의 메모리 장치들(230-0, 230-1, 230-2, 230-3)에 연관된 다이 0으로부터 다수의 물리 블록들을 포함하는 각각의 한 집단의 물리 블록들이다. 또한, 그룹(240-1)에 연관된 슈퍼 블록들(245-0, 245-1,..., 245-N) 각각은 4개의 어레이들(202-1) 각각, 예를 들면, 4개의 각각의 메모리 장치들(230-0, 230-1, 230-2, 230-3)에 연관된 다이 1으로부터 다수의 물리 블록들을 포함하는 각각의 한 집단의 물리 블록들이다.
본 발명의 하나 이상의 실시예들에서, 슈퍼 블록은 특정 그룹에 대응하는 다수의 평면들 각각에 대해 평면당 한 집단의 한 물리 블록일 수 있다. 예를 들면, 도 2에 도시된 실시예에서, 슈퍼 블록들(245-0, 245-1,..., 245-N) 각각은 각각의 한 집단의 8개의 물리 블록들 일 수 있다(그룹의 4개의 서로 다른 메모리 장치들(230-0, 230-1, 230-2, 230-3)의 각각의 어레이(202-0)에 대해 평면당 한 블록).
그러나, 하나 이상의 실시예들에서, 슈퍼 블록은 소정의 메모리 어레이, 예를 들면, 202-0 및 202-1 내의 모든 평면으로부터의 물리 블록을 포함할 필요가 없다. 예를 들면, 도 2에 도시된 실시예에서, 슈퍼 블록들(245-0, 245-1,..., 245-N) 각각은 각각의 한 집단의 4개의 물리 블록들, 예를 들면, 그룹의 4개의 서로 다른 메모리 장치들(230-0, 230-1, 230-2, 230-3)의 각각의 어레이(202-0) 내 평면들 중 한 평면으로부터 한 블록, 또는 4개의 서로 다른 메모리 장치들(230-0, 230-1, 230-2, 230-3)의 각각의 어레이(202-1) 내 평면들 중 한 평면으로부터 한 블록일 수 있다.
여러 실시예들에서, 소거 동작은 슈퍼 블록의 물리 블록들에 동시에 수행될 수 있다. 즉, 한 특정의 슈퍼 블록의 한 집단의 물리 블록들은 실질적으로 동시에 소거될 수 있다. 또한, 여러 실시예들에서, 한 특정의 슈퍼 블록에 연관된 물리 블록들의 페이지들은 동시에 이로부터 및 이에 기입될 수 있다.
본 발명의 실시예들은 도 2에 도시된 예로 제한되지 않는다. 예를 들면, 하나 이상의 실시예들에서, 한 그룹은 4개 초과 또는 미만의 메모리 어레이들 내에 다수 평면들의 물리 블록들을 포함할 수 있다. 예를 들어, 도 2에 도시된 실시예는 4개의 그룹들로 구성될 수도 있을 것인데, 제 1 그룹은 메모리 장치들(230-0, 230-1) 내에 평면들의 어레이들(202-0)(다이 0)을 포함할 수도 있을 것이며, 제 2 그룹은 메모리 장치들(230-2, 230-3) 내에 평면들의 어레이들(202-0)(다이 0)을 포함할 수도 있을 것이며, 제 3 그룹은 메모리 장치들(230-0, 230-1) 내에 다수 평면들의 어레이들(202-1)(다이 1)를 포함할 수도 있을 것이며, 제 4 그룹은 메모리 장치들(230-2, 230-3) 내에 평면들의 어레이들(202-1)(다이 1)을 포함할 수도 있을 것이다. 이 예에서, 4개의 그룹들에 연관된 슈퍼 블록들은 2개의 물리 블록들(특정 그룹에 연관된 2개의 어레이들 각각으로부터의 한 물리 블록)을 포함할 수도 있을 것이며, 혹은 4개의 물리 블록들(특정 그룹에 연관된 2개의 어레이들 각각에 대해 평면당 한 물리 블록)을 포함할 수 있을 것이다. 예를 들어, 4개의 물리 블록들의 한 슈퍼 블록(특정 그룹에 연관된 2개의 어레이들 각각에 대해 평면당 한 물리 블록)은 물리 블록당 128 페이지들 및 페이지당(5 KB 페이지들을 가정하고) 8 물리 섹터들로, 슈퍼 블록당 총 4,096 물리 섹터들을 포함할 수 있다. 이 예에서, LBA 범위의 4,096 어드레스들은 특정 4,096 섹터 물리 슈퍼 블록에 매핑(mapping)될 수 있다. 그러나, 본 발명의 실시예들은 특정 페이지 크기, 섹터 크기, 및/또는 물리 블록 크기로 제한되지 않는다. 예를 들어, 실시예들은 슈퍼 블록당 특정 수의 섹터들로 제한되지 않는다.
하나 이상의 실시예들에서, 특정 슈퍼 블록, 예를 들면, 245-0 내지 245-N 내의 물리 블록들은 서로 다른 블록 위치 번호들을 가질 수 있다. 즉, 특정 슈퍼 블록 내의 물리 블록들은 한 소정의 그룹, 예를 들면, 240-0 및 240-1에 대응하는 평면들 내에 서로 다른 위치들에 위치될 수 있다. 일예를 들어, 그룹(240-0)의 슈퍼 블록(245-0)에 대응하는 물리 블록들을 고찰한다. 슈퍼 블록(245-0)에 대응하는 한 집단의 물리 블록들은 장치(230-0)의 어레이(202-0)의 상위 부분 근처에 위치된 물리 블록들을 포함할 수 있고, 장치들(230-1, 230-2, 230-3)의 어레이들(202-0)의 중간 또는 하위 부분 근처에 위치된 물리 블록들을 포함할 수 있다.
도 3에 관련하여 이하 더 기술되는 바와 같이, 고체상태 드라이브와 같은 메모리 시스템은 메모리 액세스 장치로부터 데이터 기입 동작들에 연관된 논리 블록 어드레스(LBA)들을 수신할 수 있는 제어기, 예를 들면, 랩탑, PC, 미디어 플레이어, 디지털 카메라, 등과 같은 호스트 장치의 프로세서를 포함할 수 있다. 제어기는 특정 물리적 위치, 예를 들면, 기입 동작에 대응하는 데이터가 기입될 물리 블록 어드레스(PBA)를 결정할 수 있다. 제어기는 데이터가 기입될 자유 블록의 위치를 결정하는 다양한 방법들을 사용할 수 있다. 예를 들면, LBA들을 자유 PBA들에 매핑하기 위해 하나 이상의 룩업 테이블(LUT : look up table)들이 유지관리될 수 있다.
도 3은 본 발명의 하나 이상의 실시예들에 따라 메모리 시스템(300)의 기능 블록도이다. 하나 이상의 실시예들에서, 시스템(300)은 고체상태 드라이브이다. 즉, 도 3의 실시예는 고체상태 드라이브(300)의 일 실시예의 부품들 및 아키텍처를 도시할 수 있다. 도 3에 도시된 실시예에서, 시스템(300)은 제어기(320), 호스트 인터페이스(324), 어레이 인터페이스(326), 및 고체상태 메모리 유닛(325)을 포함한다.
도 3에 도시된 실시예에서, 메모리 유닛(325)은 다수의 메모리 장치들(330-0, 330-1,..., 330-N)을 포함한다. 예를 들어, 메모리 장치들은 플래시 메모리들, 무엇보다도 예를 들면, NAND 플래시 또는 NOR 플래시 장치들과 같은 비휘발성 메모리 장치들일 수 있다. 메모리 장치들(330-0, 330-1,..., 330-N)은 도 2에 관련하여 기술된 메모리 장치들(230-0, 230-1, 230-2, 230-3)과 같은 메모리 장치들일 수 있다. 도 3에 도시되지 않았을지라도, 하나 이상의 실시예들에서, 메모리 장치들(330-0, 330-1,..., 330-N) 각각은 SSD(300)의 특정 채널에 연관될 수 있다. 즉, 시스템(300)은 다중-채널 시스템일 수 있다.
하나 이상의 실시예들에서, 그리고 도 3에 도시된 바와 같이, 메모리 장치들(330-0, 330-1,..., 330-N) 각각은 다수의 메모리 어레이들(302-0, 302-1, 302-3,..., 302-M)을 포함한다. 메모리 어레이들(302-0, 302-1, 302-3,..., 302-M)은 도 1에 관련하여 기술된 메모리 어레이(102) 혹은 도 2에 관련하여 기술된 메모리 어레이들(202-0, 202-1)과 같은 어레이들일 수 있다. 예를 들면, 메모리 어레이들(302-0, 302-1, 302-3,..., 302-M) 각각은 복수의 물리 블록들의 메모리 셀들을 포함할 수 있다. 하나 이상의 실시예들에서, 메모리 어레이들(302-0, 302-1, 302-3,..., 302-M) 각각은 단일 다이를 나타낼 수 있고, 메모리 장치들(330-0, 330-1,..., 330-N) 각각은 칩당 복수의 다이들을 가진 메모리 칩을 나타낼 수 있다.
하나 이상의 실시예들에서, 메모리 유닛(325) 내의 다수 평면들의 물리 블록들의 메모리 셀들은 도 2에 관련하여 위에 기술된 바와 같이 복수의 그룹들로 구성될 수 있다. 예를 들면, 그룹들은 이와 연관된 다수의 슈퍼 블록들을 가질 수 있다. 슈퍼 블록들은 각각의 다수 집단들의 물리 블록들일 수 있고 각각의 집단은 그룹에 대응하는 다수 평면들로부터 한 물리 블록을 포함한다.
도 3에 도시된 바와 같이, 메모리 유닛(325)은 어레이 인터페이스(326)를 통해 제어기(320)에 결합될 수 있다. 어레이 인터페이스(326)는 메모리 유닛(325)과 제어기(320) 간에 정보를 통신하기 위해 사용될 수 있다. 제어기(320)는 호스트 인터페이스(324)를 통해 메모리 액세스 장치, 예를 들면 호스트 장치(도시되지 않음)의 프로세서에 결합될 수 있다. 호스트 장치는 각종의 다른 컴퓨팅 장치들 중에서도, 개인용 컴퓨터(PC), 랩탑 컴퓨터, 디지털 카메라, 미디어 플레이어, 혹은 셀룰라 전화와 같은 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 메모리 유닛(325)이 컴퓨팅 장치 내 데이터 저장용으로 사용될 때, 호스트 인터페이스(324)는 무엇보다도, 직렬 어드밴스드 기술 탈부착(SATA : serial advanced technology attachment)일 수 있고, 예를 들면, 제어기(320)는 무엇보다도 SATA 제어기 또는 USB 제어기일 수 있다. 즉, 실시예들은 특정 유형의 제어기(320) 및/또는 호스트 인터페이스(324)로 제한되지 않는다.
하나 이상의 실시예들에서, 그리고 도 3에 도시된 바와 같이, 제어기(320)는 제어 회로(322)를 포함한다. 제어 회로(322)는 메모리 시스템(300)의 동작을 위한 다른 제어 회로(도시되지 않음) 중에서도, 프로세서(323), 공간 관리자(327), 메모리(329), 예를 들면, RAM을 포함할 수 있다. 하나 이상의 실시예들에서, 제어기(320)는 메모리 유닛(325)에 데이터를 기입하고 이로부터 데이터를 판독하기 위해 사용된다.
하나 이상의 실시예들에서, 제어기(320)는 호스트 인터페이스(324)를 통해 호스트 장치로부터 논리 블록 어드레스(LBA)들(331)을 수신할 수 있다. 메모리 블록 선택에 대한 종래기술의 방법들과는 반대로, 본 발명의 하나 이상의 실시예들에서, 제어기(320)에 의해 수신된 LBA들(331)은 미할당 LBA들일 수 있다. 즉, 수신된 LBA들(331)은 특정 그룹, 예를 들면, 도 2에 도시된 그룹들(240-0, 240-1)과 같은 일 그룹의 평면들에 사전에 할당되지 않는다. 또한, 여러 실시예들에서, 수신된 LBA들(331)은 특정 슈퍼 블록, 예를 들면, 도 2에 도시된 슈퍼 블록들(245-0 내지 245-N)에 사전-할당되지 않는다.
예를 들면, 하나 이상의 실시예들에서, 제어 회로, 예를 들면, 제어 회로(322)는 제 1 기입 동작에 연관된 제 1 미할당 LBA를 수신하고 제 1 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 선택된 한 그룹 내의 특정 자유 슈퍼 블록을 결정하도록 구성된다. 여기에서 사용되는 바와 같이, 미할당 LBA는 LBA가 기입 동작에 관련하여 수신되었을 때, 기입 동작에 연관된 데이터가 기입될 위치, 예를 들면, 그룹이 미리 결정되지 않게, 특정 그룹에 사전-할당되지 않는 LBA를 말한다.
하나 이상의 실시예들에서, 제어 회로(322)는 제 1 미할당 LBA를 포함하는 일 범위의 LBA들을 복수 그룹들 중 선택된 한 그룹 내에 한 특정의 자유 슈퍼 블록에 할당하도록 구성된다. 여러 실시예들에서, 제어 회로(322)는 제 2 기입 동작 에 연관하여 제 2 LBA를 수신하고, 제 2 LBA가 선택된 슈퍼 블록에 할당된 일 범위의 LBA들 내에 있을 때 제 2 기입 동작에 대응하는 데이터를 동일 선택된 슈퍼 블록에 기입하도록 구성될 수 있다(예를 들면, 제 2 LBA는 기입되지 않거나 액세스되지 않았지만 특정 슈퍼 블록에 사전에 할당된 일 범위의 LBA들 내에 있다).
하나 이상의 실시예들에서, 제 2 LBA는 미할당 LBA일 수 있다(예를 들면, 제 2 LBA는 특정 슈퍼 블록에 사전에 할당된 LBA 범위 내에 있지 않은 LBA일 수 있다). 이러한 실시예들에서, 제어 회로는 제 2 미할당 LBA를 다른 선택된 슈퍼 블록(예를 들면, 제 1 기입 동작에 대응하는 데이터가 기입되는 선택된 슈퍼 블록 이외의 슈퍼 블록)에 할당하도록 구성될 수 있다.
여러 실시예들에서, 제어 회로(322)는 복수 그룹들 각각에 대해, 각각의 그룹 내 가용한 다수의 자유 슈퍼 블록들을 추적하도록 구성된다. 제어 회로(322)는, 적어도 부분적으로, 복수 그룹들 각각에서 가용한 자유 슈퍼 블록들의 수에 기초하여 제 1 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 하나를 선택하도록 구성될 수 있다. 하나 이상의 실시예들에서, 제어 회로는 적어도 부분적으로, 복수 그룹들 각각에 대해 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비에 기초하여 제 1 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 하나를 선택하도록 구성된다.
하나 이상의 실시예들에서, 제어 회로(322)는 제 1 기입 동작에 이어, 이전에 미할당된 LBA에 대응하는 모든 후속 기입 동작들에 연관된 데이터가 각각의 할당된 그룹 내 자유 슈퍼 블록에 기입되게, 복수 그룹들 중 각각의 선택된 그룹을 이전 미할당 LBA에 할당하도록 구성된다.
도 4a 내지 도 4d에 관련하여 이하 더욱 기술되는 바와 같이, 하나 이상의 실시예들에서, 제어 회로(322)는 제 2 기입 동작에 연관된 제 2 LBA, 예를 들면, 후속 기입 동작에 연관된 다른 LBA를 수신하고, 제 2 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹 내의 특정 자유 슈퍼 블록을 결정하도록 구성된다. 제어 회로(322)는 순환순서방식(round-robin)으로 후속 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 하나를 선택하도록 구성될 수 있다. 여러 실시예들에서, 후속 기입 동작에 연관된 복수 그룹들 중 선택된 그룹은 기입 동작에 연관된 복수 그룹들 중 선택된 그룹과는 다르다.
여기에서 사용되는 바와 같이, 제 1 기입 동작 및 제 2 기입 동작이라는 용어들은 서로 다른 기입 동작들, 예를 들면, 특정 기입 동작 및 후속 기입 동작을 나타내기 위해 사용될 수 있다. 즉, 제 1 기입 동작 및 제 2 기입 동작이라는 용어들은 연속한 동작들 혹은 수행의 특정 시간으로 제한되지 않는다.
여러 실시예들에서, 일단 미할당 LBA가 특정 그룹에 할당되면(예를 들면, 제 1 기입 동작에서 복수 그룹들 중 한 선택된 그룹 내에 한 특정 슈퍼 블록 에), 특정 LBA(예를 들면, 이전에 미할당된 LBA)는 제 2 (예를 들면, 후속) 기입 동작에 연관하여 업데이트될 수 있다. 하나 이상의 실시예들에서, 새로운 자유 슈퍼 블록은 제 2 기입 동작에 대응하는 업데이트된 데이터가 슈퍼 블록(예를 들면, 특정 LBA에 대응하는 데이터가 제 1 동작에서 기입되었던 슈퍼 블록과는 다른 슈퍼 블록)에 기입되게, 제 2 기입 동작에 연관하여 이전 미할당 LBA에 할당된다. 하나 이상의 이러한 실시예들에서, 새로운 슈퍼 블록은 특정 LBA에 대응하는 데이터가 제 1 동작에서 기입되었던 슈퍼 블록과 동일한 혹은 다른 그룹에 있을 수 있다.
여기에 기술된 바와 같이, 새로운 슈퍼 블록은 여러 방법들로(예를 들면, 그룹들 각각에 대해 결정된 자유 슈퍼 블록들의 수에 기초하거나, 그룹들 각각에 연관된 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비에 기초하거나, 그룹들 간에 순환순서방식으로, 등), 제 2 기입 동작에 연관하여 선택될 수 있다. 예를 들면, 일부 실시예들에서, 제어 회로(322)는 복수 그룹들 각각에 대해 자유 슈퍼 블록들의 현재의 수를 결정하고, 적어도 부분적으로, 복수 그룹들 각각에 대해 결정된 자유 슈퍼 블록들의 현재의 수에 기초하여, 제 2 기입 동작에 대응하는 데이터를 수신하기 위해 복수 그룹들중 하나를 선택하도록 구성될 수 있다. 여러 실시예들에서, 제 2 기입 동작에 대응하는 데이터는 가장 많은 수의 자유 슈퍼 블록들을 갖는 그룹 내에 한 슈퍼 블록에 기입된다.
예를 들어, 일부 실시예들에서, 슈퍼 블록들 각각은 4,096 LBA들에 대응할 수 있는 4,096 섹터들의 데이터를 저장할 수 있다(예를 들면, 이 예에서 한 LBA가 한 섹터의 데이터에 대응하는 것을 가정하면). 이 예에서, 일 범위의 4,096 LBA들은 슈퍼 블록들 각각에 할당될 수 있다. 여러 실시예들에서, 제어 회로가 특정 슈퍼 블록에 이전에 할당된 LBA 범위 내에 있는 LBA를 수신한다면, LBA에 대응하는 데이터는 동일한 특정 슈퍼 블록에 기입된다. 수신된 LBA가 미할당 LBA(예를 들면, 슈퍼 블록에 이전에 할당된 LBA 범위 밖에 있는 LBA)이라면, 이 LBA에 대응하는 데이터는 새로운(예를 들면, 다른) 슈퍼 블록에 기입된다.
메모리 유닛(325)과 같은 메모리 유닛의 메모리 셀들의 물리 블록들이 도 2에 도시된 그룹들(240-0, 240-1)과 같은 복수 그룹들로 구성되는 메모리 블록 선택에 대한 각종의 종래기술의 방법들에서, 기입 동작에 관련하여, 제어기에 의해 수신되는 각각의 LBA 또는 특정한 한 범위의 LBA들은 특정 그룹에 사전-할당된다. 이러한 종래 방법들에서, 제어기는 특정 LBA를 수신하고, 이어서 데이터가 기입되는 특정 그룹 내에 자유 슈퍼 블록을 발견하기 위해서 LBA가 사전-할당되는 이 특정 그룹을 탐색한다.
그러나, 여러 경우들에 있어서, 호스트 장치에 연관된 운영 시스템 혹은 애플리케이션 프로그램은 업데이트할 수 있는데, 예를 들면, 동일 LBA 또는 LBA 범위에 데이터를 재기입할 수 있다. 예를 들면, 특정 LBA에 대응하는 데이터는 빈번히 업데이트될 수 있다. 이러한 경우들에 있어서, 특정 LBA는 특정 그룹에 사전-할당되기 때문에, 특정 LBA에 대응하는 각각의 후속 기입 동작에 따라 제어기는 동일 그룹 내에 선택된 물리 블록에 데이터를 기입하게 된다. 이러한 종래 기술의 메모리 블록 선택 방법들은 다른 그룹들 내에 물리 블록들이 드물게 사용된 상태에 있을 수 있는 반면 어떤 그룹들 내에 물리 블록들은 프로그램되기 때문에, 예를 들면 빈번히 기입되고 소거되기 때문에 메모리 유닛에 걸쳐 고르지 못한 마모를 초래할 수 있다. 메모리 유닛(325)과 같은 메모리 유닛에 걸쳐 고르지 못한 마모는 과중하게 사용되는 물리 블록들에 연관된 정정불가 기입 오류들 및 소거 오류들과 같은 문제를 야기할 수 있고, 메모리 유닛의 유용한 수명을 감소시킬 수 있다.
하나 이상의 실시예들에서, 제 1 기입 동작에 연관된 데이터가 기입될 특정 그룹 및 제 2 기입 동작에 연관된 데이터가 기입될 특정 그룹의 선택은 순환순서방식으로 수행된다. 즉, 특정 그룹이 제 1 기입 동작에 연관된 데이터를 수신하기 위해 선택된다면, 제 2 기입 동작에 연관된 데이터를 수신하기 위해 다른 그룹이 선택된다. 하나 이상의 실시예들에서, 그룹들 각각이 적어도 한번 데이터를 수신하기 위해 선택될 때까지 후속 기입 동작들에 연관된 데이터를 수신하기 위해 서로 다른 그룹들이 선택될 수 있다.
하나 이상의 실시예들에서, 제어 회로, 예를 들면, 322는 메모리 어레이들의 복수 그룹들 각각에 대해서, 도 2에 관련하여 기술된 각 그룹, 예를 들면, 그룹(240-0, 240-1) 내 가용한 자유 슈퍼 블록들의 수를 추적하도록 구성될 수 있다. 예를 들어, 각각의 그룹 내 자유 슈퍼 블록들의 수 값이 유지관리될 수 있다. 또 다른 예를 들어 하나 이상의 실시예들에서, 각각의 그룹에 대해 가용한 자유 슈퍼 블록들의 수를 나타내는 목록, 예를 들면, 룩업 테이블(LUT)이 유지관리될 수 있다. 수 값 및/또는 목록은 다른 위치들 중에서도, 이를테면 제어기(320)의 메모리(329) 내에 혹은 메모리 유닛(325) 내에 여러 위치들에 저장될 수 있다. 당업자가 알게 되는 바와 같이, 제어 회로(322)의 기능들은 다른 유형들의 하드웨어, 소프트웨어, 및/또는 펌웨어에 의해 수행될 수 있다.
하나 이상의 실시예들에서, 특정 기입 동작에 연관된 데이터가 기입될 특정 그룹 및 후속 기입 동작에 연관된 데이터가 기입될 특정 그룹의 선택은 적어도 부분적으로, 복수 그룹들 각각에서 가용한 자유 슈퍼 블록들의 수에 기초한다. 예를 들면, 여러 실시예들에서, 제 1 기입 동작에 연관된 데이터를 수신하기 위해 가장 많은 수의 자유 슈퍼 블록들을 가진 특정 그룹이 선택된다. 또한, 여러 실시예들에서, 후속 기입 동작에 연관된 데이터를 수신하기 위해 가장 많은 수의 자유 슈퍼 블록들을 가진 특정 그룹이 선택된다. 가장 많은 수의 자유 슈퍼 블록들을 가진 그룹에 기초하여 특정 그룹들이 선택되는 실시예들에서, 선택된 그룹은 특정 기입 동작 및 후속 기입 동작 둘 다에 동일할 수 있다.
하나 이상의 실시예들에서, 특정 기입 동작에 연관된 데이터가 기입될 특정 그룹 및 후속 기입 동작에 연관된 데이터가 기입될 특정 그룹의 선택은 적어도 부분적으로, 복수 그룹들 각각에 대해서 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비(ratio)에 기초한다. 여러 실시예들에서, 제어 회로는 그룹들, 예를 들면, 도 2에 도시된 그룹들(240-0, 240-1) 각각에 대해서 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 초기 비(예를 들면, 초기화시)를 결정하도록 구성될 수 있고, 이어서 자유 슈퍼 블록이 기입될 때 각 그룹에 대해 비들을 업데이트할 수 있다. 예를 들어, 여러 실시예들에서, 제 1 기입 동작에 연관된 데이터를 수신하기 위해서 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 가장 큰 비를 가진 특정 그룹이 선택된다. 또한, 여러 실시예들에서, 후속 기입 동작에 연관된 데이터를 수신하기 위해서 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 가장 큰 비를 가진 특정 그룹이 선택된다. 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 가장 큰 비를 가진 그룹에 기초하여 특정 그룹들이 선택되는 실시예들에서, 선택된 그룹은 특정 기입 동작 및 후속 기입 동작 둘 다에 대해 동일할 수 있다.
하나 이상의 실시예들에서, 제어 회로, 예를 들면 320은 수신된 특정 LBA에 대응하는 데이터가 기입될 선택된 그룹 내 특정 슈퍼 블록을 결정하도록 구성된다. 예를 들면, 선택된 그룹 내 적합한 자유 슈퍼 블록을 결정하기 위해서, 선택된 그룹에 연관된 테이블이 탐색될 수 있다. 하나 이상의 실시예들에서, 제어 회로는 제 1 기입 동작에 이어서, 이전 미할당 LBA에 대응하는 모든 후속 기입 동작들에 연관된 데이터가, 할당된 그룹 내 자유 슈퍼 블록에 기입되게, 복수 그룹들 중 선택된 그룹을 제 1의 특정 미할당 LBA에 할당하도록 구성될 수 있다.
즉, 하나 이상의 실시예들에서, 일단 특정 기입 동작에 관련하여 미할당 LBA가 제어기에 의해 수신되고 이와 연관된 데이터가 선택된 그룹 내 슈퍼 블록에 기입되면, 제어기는 후속 기입 동작들에 관련하여 제어기가 동일 특정 LBA를 수신하였을 때 할당된 그룹에 데이터가 기입되게, 이 특정 LBA를 특정 선택된 그룹에 할당할 수 있다. 일부 이러한 실시예들에서, 일단 다음 특정 기입 동작에 관련하여 제 2 특정 미할당 LBA가 제어기에 의해 수신되고 이에 연관된 데이터가 다른 선택된 그룹, 예를 들면, 제 1 특정 미할당 LBA에 연관된 특정 선택된 그룹과는 다른 선택된 그룹에 기입되면, 제어기는, 후속 기입 동작들에 관련하여 제어기가 제 2 특정 LBA를 수신하였을 때 할당된 다른 그룹에 데이터가 기입되게, 제 2 특정 LBA를 다른 선택된 그룹에 할당할 수 있다.
도 4a, 도 4b, 도 4c, 도 4d는 본 발명의 하나 이상의 실시예들에 따라 메모리 블록 선택을 나타낸 기능 블록도이다. 도 4a에 도시된 실시예에서, 논리 블록 어드레스(431)는 특정 기입 동작에 연관하여 제어기(420)에 의해 수신되는 특정 미할당 LBA(LBA 0)를 나타낸다. 도 4b는 도 4a의 기입 동작, 예를 들면, 제 1 기입 동작에 이어, 다수 그룹들의 평면들(예를 들면, 도 2에 도시된 그룹들(240-0, 240-1)) 내의 물리 슈퍼 블록들(예를 들면, 도 2에 도시된 슈퍼 블록들(245-0 내지 245-N))의 상태를 도시한 것이다.
도 4c에 도시된 실시예에서, 논리 블록 어드레스(431)는 후속되는 기입 동작, 예를 들면, 도 4a 및 도 4b의 동작에 이은 기입 동작에 연관하여 제어기(420)에 의해 수신되는 동일 특정 LBA(LBA 0)를 나타낸다. 즉, 도 4c의 논리 블록 어드레스(431)는 업데이트된 상태의 LBA 0를 나타낸 것으로, 예를 들면, LBA 0에 연관된 데이터는 업데이트된 데이터이다. 유사하게, 도 4d에 도시된 실시예에서, 논리 블록 어드레스(431)는 도 4a 및 도 4b의 동작에 이은 기입 동작에 연관하여 제어기(420)에 의해 수신된 동일 특정 LBA (LBA 0)를 나타낸다. 즉, 도 4d의 논리 블록 어드레스(431)는 업데이트된 상태에 LBA 0를 나타내며, 예를 들면, LBA 0에 연관된 데이터는 업데이트된 데이터이다. 제어기(420)는 도 3에 관련하여 위에 기술된 제어기(320)와 같은 제어기일 수 있다.
도 4a, 도 4b, 도 4c, 도 4d에 도시된 실시예에서, 제어기(420)는 도 3에 관련하여 기술된 메모리 유닛(425), 예를 들면, 메모리 유닛(325)과 같은 메모리 유닛에 결합된다. 예시된 바와 같이, 메모리 유닛(425)은 도시된 바와 같이, 다수의 그룹들, 예를 들면, 그룹 0, 그룹 1, 그룹 2, 및 그룹 3으로 구성된다. 도 4a, 도 4b, 도 4c, 도 4d 에 도시된 그룹들은 도 2에 관련하여 기술된 그룹들(240-0, 240-1)과 같은 다수 그룹들의 평면들일 수 있다. 예를 들면, 도 4a, 도 4b, 도 4c, 도 4d에 도시된 실시예에서, 복수 그룹들 각각은 그룹(예를 들면 그룹들은 도 2에 관련하여 기술된 슈퍼 블록들(245-0, 245-1,..., 245-N)과 같은 슈퍼 블록들을 포함할 수 있다)에 대응하는 적어도 2개의 평면들 각각으로부터 각각의 한 집단의 물리 블록을 포함할 수 있다. 도시된 바와 같이, 각 그룹은 8개의 슈퍼 블록들을 포함한다. 즉, 각 그룹은 위치들(SBO 내지 SB7) 각각에 위치된 슈퍼 블록을 포함한다. 도 2에 관련하여 위에 기술된 바와 같이, 여러 실시예들에서, 슈퍼 블록들은 서로 다른 메모리 어레이들(예를 들면, 202-0, 202-1) 내 및/또는 서로 다른 메모리 장치들(예를 들면, 230-0, 230-1, 230-2, 230-3) 내에 위치된 평면들로부터의 물리 블록들을 포함할 수 있다.
도 4a에 도시된 실시예는 논리 블록 어드레스(431)에 대응하여, 기입 동작, 예를 들면, 제 1 기입 동작시에 그룹들(그룹 0 내지 그룹 3) 각각 내에 슈퍼 블록들의 상태를 도시한 것이지만, 도 4b는 기입 동작 후, 그리고 후속 동작, 예를 들면, 제 2 기입 동작 전에, 그룹들 각각 내에 슈퍼 블록들의 상태를 도시한 것이다. 도 4c에 도시된 실시예는 논리 블록 어드레스(431)에 대응하는, 후속 기입 동작, 예를 들면, 제 2 기입 동작 후에 그룹들 각각 내에 슈퍼 블록들의 상태를 도시한 것이다. 또한, 도 4d에 도시된 실시예는 논리 블록 어드레스(431)에 대응하는, 후속 기입 동작, 예를 들면, 제 2 기입 동작 후에 그룹들 각각 내에 슈퍼 블록들의 상태를 도시한 것이다.
도 4a, 도 4b, 도 4c, 도 4d에 도시된 실시예들에서, "USED" 로서 표시된 슈퍼 블록들은 유효 데이터를 내포하는 슈퍼 블록들을 나타내며, 현재에는 기입 동작들에 연관하여 데이터를 수신하는데 사용될 수 없다. "OLD"로서 표시된 슈퍼 블록들은 오래된 데이터를 내포하는 슈퍼 블록들을 나타내는데, 예를 들면, 슈퍼 블록들은 더 이상 유효하지 않은 데이터를 내포하며, 기입 데이터를 수신하는데 사용가능해지기 전에 소거되어야 한다. "USED" 또는 "OLD"로서 표시되지 않은 슈퍼 블록들은 자유 슈퍼 블록들로서, 예를 들면, 현재 기입 데이터를 수신하는데 사용될 수 있는 소거된 슈퍼 블록들이다.
위에 언급된 바와 같이, 하나 이상의 실시예들에서, 제어 회로, 예를 들면, 제어기(420)의 제어 회로는 특정 LBA, 예를 들면, LBA 0에 대응하는 데이터를 제 1 기입 동작에서 복수 그룹들 중 선택된 그룹 내에 슈퍼 블록들 중 선택된 것에 기입하고, 특정 LBA에 대응하는 업데이트된 데이터를 제 2 기입 동작, 예를 들면, 후속 기입 동작에서 복수 그룹들 중 선택된 그룹 내에 슈퍼 블록들 중 선택된 것에 기입하도록 구성될 수 있다.
위에 언급된 바와 같이, 하나 이상의 실시예들에서, 복수 그룹들, 예를 들면, 그룹 0 내지 그룹 3 각각에 대한 자유 물리 블록들의 수가 추적될 수 있다. 예를 들면, 도 4a에 도시된 바와 같이, 이 예에서, 그룹 0은 4개의 자유 슈퍼 블록들을 갖는 것으로 결정되고, 그룹 1은 4개의 자유 슈퍼 블록들을 갖는 것으로 결정되고, 그룹 2는 5개의 자유 슈퍼 블록들을 갖는 것으로 결정되고, 그룹 3은 6개의 자유 슈퍼 블록들을 갖는 것으로 결정된다. 도 4a에 도시된 실시예에서, 그룹(435)(그룹 3)은 복수 그룹들 각각에서 자유 슈퍼 블록들의 결정된 수에 기초하여 LBA 0(431)에 대응하는 데이터를 수신하기 위해 선택된다.
이 예에서, 그룹 3은 가장 많은 수의 자유 슈퍼 블록들을 가진 그룹이라는 사실에 기초하여 LBA 0(431)에 대응하는 데이터를 수신하기 위해 선택된다. 즉, 도 4a에서, 그룹(435)은 그룹 3이 다른 그룹들에서 가용한 자유 슈퍼 블록들의 수보다 많은 6개의 자유 슈퍼 블록들을 갖기 때문에 선택된다.
하나 이상의 실시예들에서, 제어기(420)는 수신된 LBA, 예를 들면, 도 4a에 도시된 예의 LBA 0(431)을 선택된 그룹, 예를 들면, 그룹(435) 내에 특정 자유 물리 슈퍼 블록에 할당한다. 예를 들면, 선택된 그룹(435)은 연관된 기입 동작에 대응하는 데이터를 수신하는데 적합한 자유 슈퍼 블록를 결정하기 위해 탐색될 수 있다. 도 4a에 도시된 예에서, 수신된 LBA, 예를 들면, LBA 0(431)는 선택된 슈퍼 블록(441)인 그룹 3 내의 위치(SB2)에 위치된 슈퍼 블록에 할당된다. 이에 따라, 도 4a에 예시된 예에 연관된 제 1 기입 동작에 대응하는 데이터는 선택된 그룹(435) 내에 선택된 슈퍼 블록(441)에 대응하는 PBA에 기입될 것이다.
도 4b는 도 4a의 제 1 기입 동작에 이은 그룹 0 내지 그룹 3 내의 슈퍼 블록들의 상태를 도시한 것이다. 이와 같이, 선택된 슈퍼 블록(441)의 상태는 슈퍼 블록(441)이 유효 데이터를 갖고 있지 않고 더 이상 자유 물리 슈퍼 블록이 아니기 때문에 도 4b에서 USED 로서 도시되었다.
도 4c에 도시된 실시예에서, 논리 블록 어드레스(431)는 제 2 기입 동작, 예를 들면, 도 4a 및 도 4b의 기입 동작에 이은 기입 동작에 연관하여 제어기(420)에 의해 수신된 동일 특정 LBA(LBA 0)를 나타낸다. 즉, 도 4c의 논리 블록 어드레스(431)는 업데이트된 상태의 LBA 0를 나타내는 것으로, 예를 들면, LBA 0에 연관된 데이터는 업데이트된 데이터이다. 제어기(420)는 LBA 0(431)에 대응하는 업데이트된 데이터를 제 2 기입 동작, 예를 들면, 후속 기입 동작에서 복수 그룹들 중 선택된 그룹 내에 슈퍼 블록들 중 선택된 것에 기입하도록 구성된다.
하나 이상의 실시예들에서, 그리고 도 4c에 도시된 예에 도시된 바와 같이, 후속 기입 동작에 연관된 업데이트된 데이터를 수신하기 위해 선택된 그룹은 제 1 기입 동작에서 선택된 것과 동일한 그룹일 수 있다. 즉, 하나 이상의 실시예들에서, 일단 특정 LBA가 그룹에 할당되면, 후속 기입 동작에서 특정 LBA에 연관된 업데이트된 데이터는 동일 그룹 내 선택된 슈퍼 블록에 기입되게 이 LBA는 그룹 에 할당된 상태에 있을 수 있다.
예를 들면, 도 4a 및 도 4b에 도시된 예에서, 제 1 기입 동작에 연관된 수신된 LBA, 예를 들면, LBA 0(431)는 그룹 3에 할당되었다. 도 4c에 도시된 예에서, 동일 LBA, 예를 들면, LBA 0(431)는 후속 기입 동작에 관련하여 수신되며, 업데이트된 데이터는 이 예에서 동일 그룹, 예를 들면, 그룹 3 내에 자유 슈퍼 블록에 기입된다. 도 4c에 도시된 예에서, 업데이트된 데이터를 수신하기 위해 선택된 자유 슈퍼 블록은 선택된 그룹(438) 내에 위치(SB3)에 위치된다. 따라서, 선택된 슈퍼 블록(443)은 이제 유효 데이터를 내포하기 때문에, USED로서 표시된다. 도 4c에 도시된 바와 같이, 슈퍼 블록(441) 내에 데이터가 이제 오래된, 예를 들면, 무효이기 때문에, 슈퍼 블록(441)의 상태는 USED에서 OLD로 변경되었다.
하나 이상의 실시예들에서, 그리고 도 4d에 관련하여 이하 기술된 바와 같이, 후속 기입 동작(예를 들면, 제 2 기입 동작)에서 특정 LBA에 대응하는 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹은 이전 기입 동작(예를 들면, 제 1 기입 동작)에서 동일 특정 LBA에 대응하여 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹과는 다를 수 있다. 즉, 하나 이상의 실시예들에서, 일단 특정 LBA가 그룹에 할당되면, 이 LBA는 후속 기입 동작에서 특정 LBA에 연관된 업데이트된 데이터가 다른 그룹 내 선택된 슈퍼 블록에 기입되게 다른 그룹에 할당될 수 있다.
예를 들면, 도 4d에 도시된 실시예에서, 논리 블록 어드레스(432)는 제 2 기입 동작, 예를 들면, 도 4a 및 도 4b의 기입 동작에 이은 기입 동작에 연관하여 제어기(420)에 의해 수신된 동일 특정 LBA(LBA 0)를 나타낸다. 즉, 도 4d의 논리 블록 어드레스(432)는 업데이트된 상태의 LBA 0를 나타내는 것으로, 예를 들면, LBA 0에 연관된 데이터는 업데이트된 데이터이다. 제어기(420)는 제 2 기입 동작, 예를 들면, 후속 기입 동작에서 LBA 0(432)에 대응하는 업데이트된 데이터를 복수 그룹들 중 선택된 그룹 내에 슈퍼 블록들 중 선택된 것에 기입하도록 구성된다.
예를 들면, 도 4a 및 도 4b에 도시된 예에서, 제 1 기입 동작에 연관된 수신된 LBA, 예를 들면, LBA 0(431)가 그룹 3에 할당되었다. 도 4d에 도시된 실시예에서, 동일 LBA, 예를 들면, LBA 0가 후속 기입 동작에 관련하여 수신되고, 업데이트된 데이터는 이 예에서 다른 그룹, 예를 들면, 그룹 2 내에 자유 슈퍼 블록에 기입된다. 도 4d에 도시된 실시예에서, 업데이트된 데이터를 수신하기 위해 선택된 그룹(438) 내에 선택된 자유 슈퍼 블록은 선택된 그룹(438) 내에 위치(SB3)에 위치된다. 따라서, 선택된 슈퍼 블록(447)은 이제 유효 데이터를 내포하기 때문에 USED로서 표시된다. 도 4d에 도시된 바와 같이, 슈퍼 블록(441)의 상태는 슈퍼 블록(441) 내에 데이터가 이제 오래된, 예를 들면, 무효이기 때문에, USED에서 OLD로 변경되었다.
도 4a 내지 도 4d에 도시된 실시예들에서, 그룹들(435, 438)은 복수 그룹들 중 어느 것이 가장 많은 수의 자유 물리 블록들을 갖는가에 기초하여 선택될 수 있다. 즉, 도 4a 및 도 4b에서, 그룹 3이 다른 그룹들 내 가용한 자유 슈퍼 블록들의 수보다 많은 6개의 자유 슈퍼 블록들을 갖기 때문에 그룹(435)이 선택된다. 유사하게, 도 4d에서, 그룹 2가 후속 기입 동작에 앞서, 다른 그룹들 내 가용한 자유 슈퍼 블록들의 수보다 많은 5개의 자유 슈퍼 블록들을 갖기 때문에 그룹(438)이 선택된다.
도 4a 내지 도 4d에 도시된 실시예에서, 수신된 LBA, 예를 들면, LBA O는 복수 그룹들, 예를 들면, 그룹 0 내지 그룹 3 중 특정 그룹에 사전-할당되지 않는다. 즉, LBA 0는 제 1 기입 동작에서 선택된 그룹(435)에 할당되기 전에 특정 그룹에 사전-할당되지 않으며, 예를 들면, LBA 0는 제 1 기입 동작에 앞서 미할당 LBA이다.
도 4d에 도시된 실시예에서, LBA 0는 제 2 기입 동작에서 선택된 그룹(435)에 할당된 상태에 있지 않는다. 특정 LBA에 연관된 후속 기입 동작들을 위한 서로 다른 그룹들을 선택하는 것은 복수 그룹들 간에 더 효율적인 마모-평준화와 같은 잇점들을 갖게 할 수 있다.
위에서 논한 바와 같이, 하나 이상의 실시예들에서, 복수 그룹들 각가 내에 자유 슈퍼 블록들의 수의 값이 유지관리될 수 있고, 도 4a 내지 도 4d에 도시된 실시예에서 특정 수신된 LBA, 예를 들면, LBA 0는, 적어도 부분적으로, 특정 그룹에 연관된 자유 슈퍼 블록들의 수 값에 기초하여 복수 그룹들 중 하나에 할당될 수 있다.
위에 언급된 바와 같이, 하나 이상의 본 발명의 실시예들은 오래된 블록들이 언제 소거되어야 할지를 결정하는 것뿐만 아니라, 복수 그룹들 내에 오래된 데이터를 갖는 물리 블록들을 결정하는 것을 포함할 수 있다. 복수 그룹들 내에 오래된 블록들이 소거되는 방법은 각각 도 3 및 도 4에 도시된 메모리 유닛들(325, 425)과 같은 메모리 유닛의 수명에 영향을 미칠 수 있다.
하나 이상의 실시예들에서, 소거된 오래된 물리 블록들(예를 들면, "OLD"로 표시된 블록들)는 특정 시간들에서 그리고 그룹 단위로 각 그룹 내 가용한 자유 물리 블록들의 수에 추가될 수 있다. 예를 들면, 하나 이상의 실시예들에서, 제어기, 예를 들면, 420은 복수 그룹들 각각에 대해서, 그룹이 어떠한 자유 물리 블록들도 포함하지 않을 때까지 오래된 데이터를 가진 물리 블록들이 소거되는 것을 방지하도록 구성될 수 있다. 예를 들어, 도 4c 및 도 4d에 도시된 그룹들 내 "OLD"로서 표시된 슈퍼 블록들은 특정 그룹이 더 이상 가용한 어떠한 자유 슈퍼 블록들도 갖지 않을 때까지는 소거되는 것이 방지될 수 있다.
또한, 하나 이상의 실시예들에서, 제어기는 복수 그룹들 각각에 대해서, 그룹이 어떠한 자유 슈퍼 블록들도 포함하지 않을 때까지 그룹에 연관된 자유 슈퍼 블록들의 수에 그룹 내 소거된 슈퍼 블록들이 추가되는 것을 방지하도록 구성될 수 있다. 예를 들면, 가용 자유 슈퍼 블록들의 목록이 유지관리되는 실시예들에서, 오래된 블록들이 새로운 기입 데이터를 수신할 수 있게 소거된 이들 새로운 기입 데이터는 특정 그룹이 어떠한 자유 슈퍼 블록들도 포함하지 않을 때까지 가용 자유 슈퍼 블록들의 목록에 추가되는 것이 방지될 수 있다.
하나 이상의 실시예들에서, 특정 그룹 내에 오래된 블록들은 그룹이 여전히 자유 슈퍼 블록들을 갖고 있는 동안에 소거될 수 있다. 일부 이러한 실시예들에서, 소거된 오래된 블록들은 적합한 시간전까지는 자유 슈퍼 블록들의 목록에 추가되지 않을 수 있다. 소거된 오래된 블록들이 자유 슈퍼 블록들의 목록에 즉시 복귀되지 않게 하는 것은 새로이 소거된 오래된 블록들에 LBA가 할당되지 않게 하며 목록 상에 미기입 자유 슈퍼 블록들이 기입되기 전에 이들 블록들이 새로운 기입 데이터를 수신하지 못하게 함으로써 메모리 유닛의 마모를 개선할 수 있다.
하나 이상의 실시예들에서, 소거 동작들은 실질적으로 동시에 특정 슈퍼 블록 내에 물리 블록들 각각을 소거함으로써 수행된다. 예를 들면, 도 2에 관련하여, 그룹(240-0)의 슈퍼 블록(245-0) 내의 물리 블록들 각각은 실질적으로 동시에에 소거될 수 있다. 하나 이상의 실시예들에서, 구(old) 블록들의 소거들은 서로 다른 그룹들에 걸쳐 균일하게 수행될 수 있다. 예를 들면, 도 2에 관련하여, 두 그룹(240-0, 240-1)의 슈퍼 블록(245-1) 내에 물리 블록들은 동시에 소거될 수 있다. 하나 이상의 실시예들에서, 구 블록들의 소거는 순환순서방식으로 수행될 수 있다. 예를 들면, 도 4a에 관련하여, 그룹 0으로부터의 슈퍼 블록이 소거될 수 있고, 그룹 0으로부터의 또 다른 슈퍼 블록은 그룹 1, 그룹 2, 및 그룹 3 각각으로부터 슈퍼 블록이 소거될 때까지 소거되는 것이 방지될 수 있다.
결론
본 발명은 메모리 블록 선택을 위한 방법들 및 장치들을 포함한다. 본 발명의 실시예들은 메모리 유닛들 내에 마모를 개선함으로써 플래시 메모리 유닛들과 같은 메모리 유닛들의 수명을 증가시킬 수 있다. 하나 이상의 실시예들에서, 메모리 제어기는 연관된 복수 그룹들의 평면들을 갖는 하나 이상의 메모리 장치들에 결합된 제어 회로를 포함하며, 각 그룹은 슈퍼 블록들로 구성된 적어도 두 평면들의 물리 블록들을 포함하며, 각 슈퍼 블록은 적어도 두 평면들 각각으로부터 물리 블록을 포함한다. 제어 회로는 기입 동작에 연관된 제 1 미할당 논리 블록 어드레스(LBA)를 수신하고 기입 동작에 연관된 데이터를 수신하기 위해 복수 그룹들 중 선택된 그룹 내에 특정 자유 슈퍼 블록을 결정하도록 구성된다.
특정한 실시예들이 여기에 도시되고 기술되었을지라도, 당업자들은 동일 결과들을 달성하기 위해 계획된 구성이 여기 도시된 구체적 실시예들을 대체할 수 있음을 알 것이다. 본 개시된 바는 본 발명의 하나 이상의 실시예들의 개조 혹은 변형들도 포함한다.
위에 기술된 바는 제약적 형태가 아니라 예시적 형태로 행해졌음을 알아야 한다. 위에 실시예들의 조합, 및 특정하게 여기 기술되지 않은 다른 실시예들의의 조합은 위에 기술된 바를 검토하였을 때 당업자들에게 명백할 것이다. 본 발명의 하나 이상의 실시예들의 범위는 위에 구조들 및 방법들이 사용되는 다른 적용들을 포함한다. 그러므로, 본 발명의 하나 이상의 실시예들의 범위는 이러한 청구항들이 부여하는 일범위의 전체 등가물들과 더불어 첨부된 청구항들에 관련하여 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징들은 효율적 설명을 위해 단일 실시예에 그룹화하였다. 개시된 이 방법은 본 발명의 개시된 실시예들이 각 청구항에 분명하게 인용된 것보다 더 많은 특징들을 사용해야 하는 의도를 반영하는 것으로 해석되지 않아야 한다.
그보다는, 다음 청구항들이 반영하는 바와 같이, 발명의 요체는 개시된 단일 실시예의 모든 특징들 미만의 특징들에 놓여 있다. 따라서, 다음 청구항들은 상세한 설명에 포함되고 각 청구항은 자체가 별도의 실시예를 구성한다.
Claims (34)
- 복수 그룹들의 평면들이 연관된 하나 이상의 메모리 장치들에 결합되고, 각 그룹은 슈퍼 블록들로 구성된 적어도 두 평면들의 물리 블록들을 포함하고, 각 슈퍼 블록은 상기 적어도 두 평면들 각각으로부터의 물리 블록을 포함하는 제어 회로를 포함하는 메모리 제어기로서,
상기 제어 회로는,
기입 동작에 연관된 제 1 미할당 논리 블록 어드레스(LBA : logical block address)를 수신하고,
상기 복수 그룹들 각각에서 가용한 자유 블록들의 유지관리된 수 값에 기초하여, 상기 기입 동작에 연관된 데이터를 수신하기 위해 상기 복수 그룹들 중 선택된 그룹 내에 특정 자유 슈퍼 블록(super block)을 결정하고,
상기 제 1 미할당 LBA에 대응하는 모든 후속 기입 동작들에 연관된 데이터가 각각의 할당된 그룹 내 자유 슈퍼 블록에 기입되도록 상기 복수 그룹들 중 선택된 그룹에 상기 제 1 미할당 LBA를 할당하고,
상기 복수 그룹들 각각에 대해, 각 그룹 내 가용한 자유 슈퍼 블록들의 수를 추적하고,
상기 슈퍼 블록들 중 어느 것이 오래된 데이터를 갖는지를 결정하고,
오래된 데이터를 갖는 슈퍼 블록들이 언제 소거될 것인지를 결정하고,
상기 복수 그룹들 각각에 대해, 상기 그룹이 어떠한 자유 슈퍼 블록들도 포함하지 않을 때까지 오래된 데이터를 갖는 슈퍼 블록들이 소거되지 않도록 구성되는 메모리 제어기. - 삭제
- 삭제
- 청구항 1에 있어서,
상기 제어 회로는 적어도 부분적으로 상기 복수 그룹들에 대해 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비에 기초하여 상기 기입 동작에 연관된 데이터를 수신하기 위해 상기 복수 그룹들 중 한 그룹을 선택하도록 구성되는 메모리 제어기. - 청구항 1 또는 청구항 4에 있어서,
상기 제어 회로는,
후속 기입 동작에 연관된 다른 미할당 LBA를 수신하고,
상기 후속 기입 동작에 연관된 데이터를 수신하기 위해 상기 복수 그룹들 중 선택된 한 그룹 내의 특정 자유 슈퍼 블록을 결정하도록 구성되는 메모리 제어기. - 청구항 5에 있어서,
상기 제어 회로는 순환순서방식으로 상기 후속 기입 동작에 연관된 데이터를 수신하기 위해 상기 복수 그룹들 중 한 그룹을 선택하도록 구성되는, 메모리 제어기. - 청구항 5에 있어서,
상기 후속 기입 동작에 연관된 상기 복수 그룹들 중 상기 선택된 그룹은 상기 기입 동작에 연관된 상기 복수 그룹들 중 상기 선택된 그룹과는 다른, 메모리 제어기. - 청구항 1에 있어서,
상기 제어 회로는,
소거된 슈퍼 블록들을 특정 시간에 그리고 그룹 단위로 각 그룹 내 가용한 자유 슈퍼 블록들의 수에 추가하도록 구성되는, 메모리 제어기. - 청구항 8에 있어서,
상기 제어 회로는, 상기 복수 그룹들 각각에 대해, 상기 그룹이 어떠한 자유 슈퍼 블록들도 포함하지 않을 때까지 상기 그룹 내 가용한 자유 슈퍼 블록들의 수에 상기 소거된 슈퍼 블록들이 추가되지 않도록 구성되는, 메모리 제어기. - 삭제
- 삭제
- 복수 그룹들의 평면들이 연관된 다수의 메모리 장치들에 결합되는 제어 회로를 포함하는 메모리 제어기로서,
각 그룹은,
적어도 두 평면들의 물리 블록들; 및
다수의 슈퍼 블록들 각각이 상기 그룹의 상기 적어도 두 평면들 각각으로부터 물리 블록을 포함하는 각각의 물리 블록들의 집단(collection)을 포함하는 것인, 상기 다수의 슈퍼 블록들을 포함하고,
상기 제어 회로는,
제 1 기입 동작에 연관하여 제 1 미할당 LBA를 수신하고,
상기 복수 그룹들 중 선택된 그룹 내의 선택된 슈퍼 블록에 상기 제 1 미할당 LBA를 할당하고,
상기 제 1 기입 동작에 대응한 데이터를 상기 복수 그룹들 중 상기 선택된 그룹 내의 상기 선택된 슈퍼 블록에 기입하고,
상기 복수 그룹들 각각에 대해, 각 그룹 내 가용한 자유 슈퍼 블록들의 수를 추적하고,
소거된 슈퍼 블록들을, 특정 시간에 그리고 그룹 단위로 각 그룹 내 가용한 자유 슈퍼 블록들의 수에 추가하고,
상기 복수 그룹들 각각에 대해, 상기 그룹이 어떠한 자유 슈퍼 블록도 포함하지 않을 때까지 상기 그룹 내 가용한 자유 슈퍼 블록들의 수에 상기 소거된 슈퍼 블록들이 추가되지 않도록 구성되는 메모리 제어기. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 청구항 12에 있어서,
상기 제어 회로는,
제 2 기입 동작에 관련하여 제 2 미할당 LBA를 수신하고,
상기 제 2 이전 미할당 LBA를 상기 복수 그룹들 중 선택된 한 그룹 내의 선택된 슈퍼 블록에 할당하고,
상기 제 2 기입 동작에 대응한 데이터를 상기 선택된 슈퍼 블록에 기입하도록 구성되는 메모리 제어기. - 청구항 18에 있어서,
상기 제어 회로는,
상기 복수 그룹들 각각에 대해, 자유 슈퍼 블록들의 수를 결정하고,
적어도 부분적으로, 상기 복수 그룹들 각각에 대해 결정된 자유 슈퍼 블록들의 수에 기초하여 상기 제 2 기입 동작에 대응한 상기 데이터를 수신하기 위해 상기 복수 그룹들 중 상기 선택된 그룹을 선택하도록 구성되는, 메모리 제어기. - 복수 그룹들의 평면들이 연관된 다수의 메모리 장치들에 결합되는 제어 회로를 포함하며, 각 그룹은 다수의 슈퍼 블록들이 연관된, 적어도 2개의 메모리 어레이들로부터의 평면을 포함하고, 상기 슈퍼 블록들 각각은 상기 그룹들 각각의 상기 적어도 두 메모리 어레이들 각각으로부터 물리 블록을 포함하는 각각의 물리 블록들의 집단을 포함하는 메모리 제어기로서,
상기 제어 회로는,
제 1 기입 동작에 관련하여 제 1 미할당 논리 블록 어드레스(LBA)를 수신하고,
상기 제 1 미할당 LBA를 포함하는 일 범위의 LBA들을 상기 복수 그룹들 중 선택된 그룹 내의 선택된 슈퍼 블록에 할당하고,
상기 제 1 기입 동작에 대응한 데이터를 상기 복수 그룹들 중 상기 선택된 그룹 내의 상기 선택된 슈퍼 블록에 기입하고,
제 2 기입 동작에 관련하여 제 2 LBA를 수신하고,
상기 제 2 LBA가 상기 선택된 슈퍼 블록에 할당된 상기 일 범위의 LBA들 내에 있을 때 상기 제 2 기입 동작에 대응한 데이터를 상기 선택된 슈퍼 블록에 기입하고,
상기 복수 그룹들 각각에 대해, 각 그룹 내 가용한 자유 슈퍼 블록들의 수를 추적하고,
상기 슈퍼 블록들 중 어느 것이 오래된 데이터를 갖는지를 결정하고,
오래된 데이터를 갖는 슈퍼 블록들이 언제 소거될 것인지를 결정하고,
상기 복수 그룹들 각각에 대해, 상기 그룹이 어떠한 자유 슈퍼 블록들도 포함하지 않을 때까지 오래된 데이터를 갖는 슈퍼 블록들이 소거되지 않도록 구성되는 메모리 제어기. - 청구항 20에 있어서,
상기 제어 회로는 상기 제 2 LBA가 상기 선택된 슈퍼 블록에 할당된 상기 일 범위의 LBA들 내에 없을 때 상기 제 1 기입 동작에 대응한 상기 데이터가 기입되는 상기 선택된 슈퍼 블록과는 다른 선택된 슈퍼 블록에 상기 제 2 미할당 LBA를 할당하도록 구성되는, 메모리 제어기. - 청구항 21에 있어서,
상기 다른 선택된 슈퍼 블록은 상기 복수 그룹들 중 다른 선택된 그룹에 위치된, 메모리 제어기. - 삭제
- 청구항 22에 있어서,
상기 제어 회로는 상기 복수 그룹들 중 가장 많은 수의 자유 슈퍼 블록들을 갖는 다른 선택된 그룹 내의 다른 선택된 슈퍼 블록에 상기 제 2 미할당 LBA를 할당하도록 구성되는 메모리 제어기. - 메모리 시스템에서 블록 선택을 위한 방법으로서,
제 1 기입 동작에 관련하여 제 1 논리 블록 어드레스(LBA)를 수신하는 단계;
상기 제 1 기입 동작에 연관된 데이터를 수신하기 위해 평면들의 복수 그룹들 중 선택된 그룹 내의 자유 슈퍼 블록을 선택하는 단계 - 상기 선택된 그룹은 상기 복수 그룹들 각각에 대해 가용한 자유 블록들의 유지관리된 수 값에 기초하여 결정됨 -;
상기 제 1 기입 동작에 대응한 데이터를, 평면들의 복수 그룹들 중 선택된 그룹 내의 다수의 슈퍼 블록들 중 선택된 자유 슈퍼 블록에 기입하는 단계;
상기 제 1 기입 동작에 응답하여, 이전에 미할당된 LBA에 대응하는 모든 후속 기입 동작들에 연관된 데이터가 상기 할당된 그룹 내 자유 슈퍼 블록에 기입되도록 상기 제 1 LBA를 상기 선택된 그룹에 할당하는 단계;
후속 기입 동작에 연관된 제 2 LBA를 수신하는 단계;
상기 후속 기입 동작에 대응한 데이터를, 상기 복수 그룹들 중 선택된 그룹 내의 선택된 자유 슈퍼 블록에 기입하는 단계;
상기 제 1 기입 동작 후, 상기 제 1 기입 동작에 관련하여 기입된 상기 자유 슈퍼 블록을, 상기 각각의 선택된 그룹에 연관된 가용한 자유 슈퍼 블록들의 제 1 목록으로부터 제거하는 단계;
상기 후속 기입 동작 후, 상기 제 2 기입 동작에 관련하여 기입된 상기 슈퍼 블록을, 상기 각각의 선택된 그룹에 연관된 가용한 자유 슈퍼 블록들의 제 2 목록으로부터 제거하는 단계; 및
상기 그룹들의 각각의 그룹의 슈퍼 블록들 각각이 적어도 한 번 기입될 때까지 상기 제거된 슈퍼 블록들의 각각의 슈퍼 블록이 상기 제 1 및 제 2 목록들의 각각의 목록에 복귀되는 것을 방지하는 단계
를 포함하고,
상기 그룹들 각각은 적어도 2개의 평면들의 집단이며 상기 슈퍼 블록들 각각은 상기 적어도 두 평면들 각각으로부터 각각의 한 물리 블록의 집단이며;
상기 제 1 LBA는 특정 슈퍼 블록에 사전-할당되지 않으며 평면들의 복수 그룹들의 중 특정 그룹에 사전-할당되지 않는, 메모리 시스템에서 블록 선택을 위한 방법. - 삭제
- 청구항 25에 있어서,
상기 제 1 기입 동작에 연관된 상기 선택된 그룹을, 적어도 부분적으로, 선택되지 않은 그룹들 각각에 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비에 비교한 상기 각각의 선택된 그룹 내 자유 슈퍼 블록들 대 기사용 슈퍼 블록들의 비에 기초하여 선택하는 단계를 포함하는, 메모리 시스템에서 블록 선택을 위한 방법. - 삭제
- 삭제
- 청구항 25에 있어서,
상기 후속 기입 동작에 연관된 상기 복수 그룹들 중 상기 선택된 그룹을 선택하는 단계는 상기 제 1 기입 동작에 연관된 상기 복수 그룹들 중 상기 선택된 그룹과는 상이한 그룹을 선택하는 단계를 포함하는, 메모리 시스템에서 블록 선택을 위한 방법. - 삭제
- 청구항 25 또는 청구항 27에 있어서,
각 그룹에 대해서,
상기 그룹 내 자유 슈퍼 블록들의 수를 추적하는 단계;
상기 슈퍼 블록이 기입됨에 이어 자유 슈퍼 블록들의 목록에서 한 슈퍼 블록을 제거하는 단계; 및
상기 슈퍼 블록이 소거됨에 이어 상기 슈퍼 블록을 자유 슈퍼 블록들의 상기 목록에 추가하는 단계를 포함하는, 메모리 시스템에서 블록 선택을 위한 방법. - 청구항 25 또는 청구항 27에 있어서,
특정 슈퍼 블록 내에 모든 상기 물리 블록들을 실질적으로 동시에 소거함으로써 상기 슈퍼 블록들 상에 소거 동작들을 수행하는 단계를 포함하는, 메모리 시스템에서 블록 선택을 위한 방법. - 청구항 33에 있어서,
상기 복수 그룹들 각각으로부터 적어도 한 슈퍼 블록을 실질적으로 동시에 소거함으로써 상기 메모리 시스템 상에 소거 동작들을 수행하는 단계를 포함하는, 메모리 시스템에서 블록 선택을 위한 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/397,402 | 2009-03-04 | ||
US12/397,402 US8239614B2 (en) | 2009-03-04 | 2009-03-04 | Memory super block allocation |
PCT/US2010/000539 WO2010101608A2 (en) | 2009-03-04 | 2010-02-24 | Memory block selection |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110127728A KR20110127728A (ko) | 2011-11-25 |
KR101343237B1 true KR101343237B1 (ko) | 2013-12-18 |
Family
ID=42679245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117023032A KR101343237B1 (ko) | 2009-03-04 | 2010-02-24 | 메모리 블록 선택 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8239614B2 (ko) |
EP (1) | EP2404239B1 (ko) |
JP (1) | JP5458419B2 (ko) |
KR (1) | KR101343237B1 (ko) |
CN (1) | CN102341793B (ko) |
TW (1) | TWI455139B (ko) |
WO (1) | WO2010101608A2 (ko) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8918588B2 (en) * | 2009-04-07 | 2014-12-23 | International Business Machines Corporation | Maintaining a cache of blocks from a plurality of data streams |
JP2011198433A (ja) * | 2010-03-23 | 2011-10-06 | Toshiba Corp | メモリシステム |
US8612804B1 (en) * | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8495338B2 (en) | 2010-12-03 | 2013-07-23 | Micron Technology, Inc. | Transaction log recovery |
US8935466B2 (en) | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
US8762625B2 (en) * | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
US8898373B1 (en) | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021319B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Non-volatile memory management system with load leveling and method of operation thereof |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US8949689B2 (en) | 2012-06-11 | 2015-02-03 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9013922B2 (en) * | 2012-09-20 | 2015-04-21 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US9671962B2 (en) * | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9470720B2 (en) | 2013-03-08 | 2016-10-18 | Sandisk Technologies Llc | Test system with localized heating and method of manufacture thereof |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
US9465732B2 (en) | 2013-03-15 | 2016-10-11 | Sandisk Technologies Llc | Binning of blocks for dynamic linking |
US9043780B2 (en) | 2013-03-27 | 2015-05-26 | SMART Storage Systems, Inc. | Electronic system with system modification control mechanism and method of operation thereof |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
US9898056B2 (en) | 2013-06-19 | 2018-02-20 | Sandisk Technologies Llc | Electronic assembly with thermal channel and method of manufacture thereof |
US9313874B2 (en) | 2013-06-19 | 2016-04-12 | SMART Storage Systems, Inc. | Electronic system with heat extraction and method of manufacture thereof |
US9367353B1 (en) | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
JP6028866B2 (ja) * | 2013-07-16 | 2016-11-24 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
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 |
US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
US9823863B1 (en) * | 2014-06-30 | 2017-11-21 | Sk Hynix Memory Solutions Inc. | Sub-blocks and meta pages for mapping table rebuild |
US20160124639A1 (en) * | 2014-11-05 | 2016-05-05 | SanDisk Technologies, Inc. | Dynamic storage channel |
US20160179401A1 (en) * | 2014-12-17 | 2016-06-23 | Sk Hynix Memory Solutions Inc. | Memory system and the operation method thereof |
US10102146B2 (en) * | 2015-03-26 | 2018-10-16 | SK Hynix Inc. | Memory system and operating method for improving rebuild efficiency |
CN105159843B (zh) * | 2015-10-19 | 2018-07-31 | 深圳芯邦科技股份有限公司 | 一种基于超级块的多通道管理方法与*** |
CN106940623B (zh) * | 2016-01-04 | 2020-06-09 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器储存装置 |
US10031845B2 (en) * | 2016-04-01 | 2018-07-24 | Intel Corporation | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device |
KR102593352B1 (ko) | 2016-05-04 | 2023-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10282111B2 (en) | 2016-07-29 | 2019-05-07 | Western Digital Technologies, Inc. | Adaptive wear levelling |
KR20180039351A (ko) * | 2016-10-10 | 2018-04-18 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작 방법 |
KR102645572B1 (ko) * | 2016-11-29 | 2024-03-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
CN109791517B (zh) * | 2016-12-21 | 2023-09-08 | 密码研究公司 | 保护并行乘法运算免受外部监测攻击 |
EP3602266A4 (en) * | 2017-03-21 | 2020-12-16 | Micron Technology, INC. | DEVICES AND METHODS FOR AUTOMATED DYNAMIC WORDLINE START VOLTAGE |
KR20190031693A (ko) * | 2017-09-18 | 2019-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10977182B2 (en) * | 2017-12-01 | 2021-04-13 | Micron Technology, Inc. | Logical block mapping based on an offset |
US10387243B2 (en) | 2017-12-08 | 2019-08-20 | Macronix International Co., Ltd. | Managing data arrangement in a super block |
US10445230B2 (en) | 2017-12-08 | 2019-10-15 | Macronix International Co., Ltd. | Managing block arrangement of super blocks |
US10372355B2 (en) * | 2017-12-29 | 2019-08-06 | Micron Technology, Inc. | Managing partial superblocks in a NAND device |
KR20190083148A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
KR102620727B1 (ko) * | 2018-04-18 | 2024-01-03 | 에스케이하이닉스 주식회사 | 전자 장치 |
TWI687811B (zh) * | 2018-05-14 | 2020-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及系統資訊的編程方法 |
US10740026B2 (en) * | 2018-05-18 | 2020-08-11 | Micron Technology, Inc. | Time indicator of super block operations |
KR102611566B1 (ko) * | 2018-07-06 | 2023-12-07 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법 |
US11086533B2 (en) * | 2018-08-31 | 2021-08-10 | Wipro Limited | Method and system for optimizing storage space in a storage unit |
US10949123B2 (en) * | 2018-10-18 | 2021-03-16 | Western Digital Technologies, Inc. | Using interleaved writes to separate die planes |
KR20200044460A (ko) * | 2018-10-19 | 2020-04-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
CN111651371B (zh) * | 2019-03-04 | 2023-06-16 | 慧荣科技股份有限公司 | 非对称型平面管理方法以及数据存储装置及其控制器 |
US11693773B2 (en) * | 2019-03-15 | 2023-07-04 | Kioxia Corporation | Systems and methods for implementing a four-dimensional superblock |
TWI769386B (zh) * | 2019-07-04 | 2022-07-01 | 群聯電子股份有限公司 | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 |
US11194516B2 (en) * | 2019-10-08 | 2021-12-07 | Micron Technology, Inc. | Media type selection |
US11461363B2 (en) * | 2020-03-31 | 2022-10-04 | Sap Se | Memory allocation and deallocation mechanism to reduce fragmentation and enhance defragmentation performance |
US11841794B2 (en) | 2020-12-16 | 2023-12-12 | Micron Technology, Inc. | Memory sub-system write sequence track |
KR20220131058A (ko) * | 2021-03-19 | 2022-09-27 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
JP2022147448A (ja) | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリシステム及びデータ管理方法 |
JP2023001573A (ja) * | 2021-06-21 | 2023-01-06 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11640254B2 (en) | 2021-08-25 | 2023-05-02 | Western Digital Technologies, Inc. | Controlled imbalance in super block allocation in ZNS SSD |
KR20230048747A (ko) * | 2021-10-05 | 2023-04-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN114328283B (zh) * | 2021-12-29 | 2022-11-18 | 上海芯存天下电子科技有限公司 | 计数地址获取方法、计数方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8171203B2 (en) * | 1995-07-31 | 2012-05-01 | Micron Technology, Inc. | Faster write operations to nonvolatile memory using FSInfo sector manipulation |
CN1144127C (zh) | 1995-11-10 | 2004-03-31 | 索尼公司 | 信息处理装置及信息处理方法 |
US6034897A (en) | 1999-04-01 | 2000-03-07 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
US6076137A (en) | 1997-12-11 | 2000-06-13 | Lexar Media, Inc. | Method and apparatus for storing location identification information within non-volatile memory devices |
DE60030876T2 (de) | 1999-04-01 | 2007-05-03 | Lexar Media, Inc., Fremont | Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität |
US6141249A (en) * | 1999-04-01 | 2000-10-31 | Lexar Media, Inc. | Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time |
US6901498B2 (en) * | 2002-12-09 | 2005-05-31 | Sandisk Corporation | Zone boundary adjustment for defects in non-volatile memories |
US6865122B2 (en) * | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US20050144363A1 (en) * | 2003-12-30 | 2005-06-30 | Sinclair Alan W. | Data boundary management |
US7631138B2 (en) | 2003-12-30 | 2009-12-08 | Sandisk Corporation | Adaptive mode switching of flash memory address mapping based on host usage characteristics |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
WO2007019198A2 (en) | 2005-08-03 | 2007-02-15 | Sandisk Corporation | Non-volatile memory with scheduled reclaim operations |
JP2007094900A (ja) * | 2005-09-29 | 2007-04-12 | Eastman Kodak Co | アクセス装置 |
CN101346703B (zh) * | 2005-12-21 | 2012-11-21 | Nxp股份有限公司 | 具有可块擦除单元的非易失性存储器 |
JP2007199905A (ja) * | 2006-01-25 | 2007-08-09 | Toshiba Corp | 半導体記憶装置の制御方法 |
US7424587B2 (en) | 2006-05-23 | 2008-09-09 | Dataram, Inc. | Methods for managing data writes and reads to a hybrid solid-state disk drive |
US20080052446A1 (en) | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US20080155175A1 (en) | 2006-12-26 | 2008-06-26 | Sinclair Alan W | Host System That Manages a LBA Interface With Flash Memory |
US8751755B2 (en) * | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US8239614B2 (en) * | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
-
2009
- 2009-03-04 US US12/397,402 patent/US8239614B2/en active Active
-
2010
- 2010-02-24 WO PCT/US2010/000539 patent/WO2010101608A2/en active Application Filing
- 2010-02-24 EP EP10749033.6A patent/EP2404239B1/en active Active
- 2010-02-24 CN CN201080010413.8A patent/CN102341793B/zh active Active
- 2010-02-24 JP JP2011552932A patent/JP5458419B2/ja active Active
- 2010-02-24 KR KR1020117023032A patent/KR101343237B1/ko active IP Right Grant
- 2010-03-04 TW TW099106312A patent/TWI455139B/zh active
-
2012
- 2012-08-06 US US13/567,680 patent/US8751731B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083335A1 (en) * | 2002-10-28 | 2004-04-29 | Gonzalez Carlos J. | Automated wear leveling in non-volatile storage systems |
Also Published As
Publication number | Publication date |
---|---|
EP2404239A4 (en) | 2012-12-05 |
US20100228928A1 (en) | 2010-09-09 |
TWI455139B (zh) | 2014-10-01 |
WO2010101608A3 (en) | 2010-11-25 |
KR20110127728A (ko) | 2011-11-25 |
US8239614B2 (en) | 2012-08-07 |
CN102341793B (zh) | 2015-02-04 |
JP5458419B2 (ja) | 2014-04-02 |
WO2010101608A2 (en) | 2010-09-10 |
JP2012519899A (ja) | 2012-08-30 |
CN102341793A (zh) | 2012-02-01 |
EP2404239B1 (en) | 2018-12-12 |
EP2404239A2 (en) | 2012-01-11 |
US8751731B2 (en) | 2014-06-10 |
TW201040971A (en) | 2010-11-16 |
US20120303931A1 (en) | 2012-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101343237B1 (ko) | 메모리 블록 선택 | |
US8095765B2 (en) | Memory block management | |
US11232041B2 (en) | Memory addressing | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
US8886990B2 (en) | Block management schemes in hybrid SLC/MLC memory | |
US7565478B2 (en) | Scheduling of housekeeping operations in flash memory systems | |
US8838876B2 (en) | Translation layer in a solid state storage device | |
US8898424B2 (en) | Memory address translation | |
KR101086876B1 (ko) | 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법 | |
KR20060130084A (ko) | 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭 | |
CN112463647A (zh) | 使用散列来减小前向映射表的大小 | |
US11113205B2 (en) | Die addressing using a reduced size translation table entry | |
KR101027687B1 (ko) | 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법 | |
JP2022551627A (ja) | 自己適応型ウェアレベリングの方法及びアルゴリズム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161122 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20171120 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191202 Year of fee payment: 7 |