KR20120081351A - Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 - Google Patents
Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 Download PDFInfo
- Publication number
- KR20120081351A KR20120081351A KR1020110002653A KR20110002653A KR20120081351A KR 20120081351 A KR20120081351 A KR 20120081351A KR 1020110002653 A KR1020110002653 A KR 1020110002653A KR 20110002653 A KR20110002653 A KR 20110002653A KR 20120081351 A KR20120081351 A KR 20120081351A
- Authority
- KR
- South Korea
- Prior art keywords
- pages
- block
- size
- physical block
- logical block
- 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
- 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
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러 및 상기 메모리 컨트롤러에 의해 제어되는 복수의 메모리 블록을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 메모리 블록에 대응되는 물리적 블록을 설정하고, 이에 대한 맵핑 대상인 가상의 논리적 블록을 설정하며, 상기 논리적 블록의 크기와 상기 물리적 블록의 크기를 비대칭으로 설정한다.
Description
본 발명은 비휘발성 메모리 장치 및 그의 제어 방법에 관한 것으로서, 보다 구체적으로는 FTL을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법에 관한 것이다.
일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 PC(Personal Computer)에서 HDD(Hard Disk Drive)를 대신하여 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)가 출시되고 있어 급속도로 HDD 시장을 잠식할 것으로 전망되고 있다.
통상적으로 이러한 SSD와 같은 반도체 스토리지 시스템에서 데이터 파일을 제어하는 것은, 데이터 파일을 식별할 수 있는 논리적 어드레스(logical address)가 지정하는 페이지에 실제 데이터를 라이트, 삭제 및 갱신하는 것으로 이루어진다. 보다 구체적으로, 논리적 어드레스와 데이터 저장 영역의 물리적 어드레스(physical address)를 FTL(Flash Translation Layer)변환으로 맵핑시킨다.
이후, 호스트(미도시)의 명령에 따라 논리적 어드레스를 참조하면, 논리적 어드레스와 맵핑된 물리적 어드레스가 지정하는 해당 위치에 데이터를 라이트, 삭제 및 리드할 수 있다. 물리적 어드레스란, 실질적인 메모리 영역의 페이지, 또는 서브 블록의 위치 정보이다.
이러한 논리적 블록과 물리적 블록의 맵핑 관계에 있어서, 논리적 블록에 라이트가 빈번히 발생되어 물리적 블록을 다 사용한 경우, 새로운 물리적 블록을 할당해야 한다. 특히, 랜덤 라이트가 자주 발생하는 시스템의 경우, 하나의 랜덤 라이트 작업을 위해, 대응되는 물리적 블록에 대한 가비지 컬렉션(garbage collection) 또는 머지(merge) 작업을 시도해야 할 경우가 있다. 이러한 가비지 컬렉션 및 머지 수행 시간은 상당히 오래 걸리는 작업이므로 시스템의 자원을 효율적으로 사용하지 못하게 된다.
본 발명의 기술적 과제는 FTL을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 일 실시예에 따른 비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러 및 상기 메모리 컨트롤러에 의해 제어되는 복수의 메모리 블록을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 메모리 블록에 대응되는 물리적 블록을 설정하고, 이에 대한 맵핑 대상인 가상의 논리적 블록을 설정하며, 상기 논리적 블록의 크기와 상기 물리적 블록의 크기를 비대칭으로 설정한다.
본 발명의 기술적 과제를 달성하기 위하여, 다른 실시예에 따른 비휘발성 메모리 장치는, 호스트 인터페이스, 상기 호스트 인터페이스와 연결된 메모리 컨트롤러 및 상기 메모리 컨트롤러에 의해 제어되는 복수의 메모리 블록을 포함하는 메모리 영역을 포함하고, 상기 메모리 컨트롤러는 상기 복수의 메모리 블록에 대응되는 물리적 블록을 설정하고, 이에 대한 맵핑 대상인 가상의 논리적 블록 설정 시, 가비지 컬렉션 및 머지 수행 후에는 상기 물리적 블록에 항상 맵핑되지 않은 페이지들을 포함하도록 제어한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 비휘발성 메모리 장치의 제어 방법은, 논리적 블록의 크기를 물리적 블록의 크기보다 작게 할당하는 단계, 상기 논리적 블록의 크기를 기준으로 맵핑을 수행하는 단계, 상기 논리적 블록에 대응되는 물리적 블록의 페이지에 라이트 가능한지 판단하는 단계 및 상기 판단 결과에 따라 라이트 수행 페이지를 서로 다르게 할당하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 맵핑될 논리적 블록 및 물리적 블록의 크기를 서로 다르게 함으로써 머지 수행 빈도를 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도,
도 2 및 도 3은 도 1에 따른 논리적 블록과 물리적 블록을 도식화한 블록도, 및
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 제어 방법을 나타낸 플로우 차트이다.
도 2 및 도 3은 도 1에 따른 논리적 블록과 물리적 블록을 도식화한 블록도, 및
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 제어 방법을 나타낸 플로우 차트이다.
이하, 본 발명의 실시예에 의한 본 발명의 일 실시예에 따른 비휘발성 메모리 장치 및 제어 방법을 설명하기 위한 블록도 또는 플로우 차트에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
또한, 각 블록도는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 블록도이다. 여기서, 비휘발성 메모리 장치는 낸드 플래시 메모리를 이용한 메모리 장치로 예시하기로 한다.
도 1을 참조하면, 비휘발성 메모리 장치(100)는 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.
우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결된다. 호스트 인터페이스(110)는 외부 호스트 (미도시)와 버퍼부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA) 및 SCSI, Express Card, PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.
버퍼부(120)는 호스트 인터페이스(110)로부터의 출력 신호들을 버퍼링하거나, 논리적 어드레스 및 물리적 어드레스간의 맵핑 정보 및 메모리 영역의 블록 할당 정보, 블록의 삭제 횟수 및 외부로부터 수신된 데이터를 임시 저장한다. 버퍼부(120)는 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)을 이용한 버퍼일 수 있다.
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.
한편, 메모리 컨트롤러(140)는 통상과 같이 호스트 인터페이스(110)로부터의 입력 데이터와 라이트 명령어를 수신하여 입력 데이터가 메모리 영역(150)에 라이트 될 수 있도록 제어한다. 이와 마찬가지로, 메모리 컨트롤러(140)는 호스트 인터페이스(110)로부터의 리드 명령어를 수신하면, 메모리 영역(150)으로부터의 데이터를 리드하여 외부로 출력되도록 제어한다.
특히, 본 발명의 일 실시예에 따른 메모리 컨트롤러(140)는 논리적 블록과 물리적 블록 맵핑 시, 논리적 블록의 사이즈와 물리적 블록의 사이즈가 비대칭이 되도록 한다. 즉, 논리적 블록의 사이즈를 물리적 블록의 사이즈보다 작게 할당하여 FTL을 수행한다. 따라서, 페이지 맵핑은 논리적 블록의 유효 페이지 수를 기준으로 이루어진다.
또한, 논리적 블록에 대해 랜덤 라이트가 자주 발생되어 중복으로 참조되는 페이지가 있다 하더라도, 상대적으로 더 큰 사이즈의 물리적 블록에 의해 머지 및 가비지 컬렉션 작업 발생을 소정 억제할 수 있다. 이에 대한 자세한 설명은 도면과 함께 후술하기로 한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다. 여기서, 메모리 영역(150)은 낸드(NAND) 플래시 메모리일 수 있다. 본 발명의 일 실시 예에서는 낸드(NAND) 플래시 메모리의 셀은 SLC(Single Level Cell) 또는 MLC(Multi Level Cell) 일 수 있다. 이러한 메모리 영역(150)은 복수의 페이지를 포함하는 복수의 블록으로 구성된 칩이 복수개 구비될 수 있다.
도 2는 도 1에 따른 논리적 블록 및 물리적 블록을 구현한 블록도이고, 도 3은 실제적인 논리적 블록과 물리적 블록의 맵핑 관계를 나타낸 블록도이다.
도 2 및 도 3을 참조하여, 본 발명의 일 실시예에 따른 맵핑 방법에 대해 자세히 설명하기로 한다.
논리적 블록 그룹은 복수개의 논리적 블록(LB0, LB1..)을 포함한다.
각각의 논리적 블록(LB0, LB1..)은 각각의 논리적 어드레스(logical address; 미도시)를 갖고 있다.
한편, 물리적 블록 그룹은 복수개의 물리적 블록(PB0, PB1..)을 포함한다.
물리적 블록(PB0, PB1..)은 논리적 블록(LB0, LB1..)에 비해 상대적으로 크기가 크다. 예를 들어, 논리적 블록(LB0, LB1..)이 A 크기를 갖는다면, 물리적 블록(PB0, PB1..)은 A+a의 크기를 갖는다.
[수학식 1]
물리적 블록의 크기 = 논리적 블록의 크기 + a
다시 말하면, 본 발명의 일 실시예에 따른 논리적 블록(LB0, LB1..)과 물리적 블록(PB0, PB1..)은 종래와는 달리 서로 다른 크기를 갖도록 설정된다.
그리하여, 맵핑시에도 논리적 블록(LB0, LB1..)의 크기를 기준으로 맵핑을 수행한다. 즉 논리적 블록(LB0, LB1..)내의 페이지 수를 기준으로 물리적 블록(PB0, PB1..)의 페이지들을 맵핑한다. 여기서, 물리적 블록(PB0, PB1..)의 크기는 메모리 영역(도 1의 150 참조)을 구성하는 실질적인 메모리 블록의 크기에 대응된다. 예컨대, 메모리 영역(도 1의 150 참조)내 메모리 블록들이 256개의 페이지를 포함한다면, 물리적 블록(PB0, PB1..)들도 각각 256개의 페이지를 포함하는 것이다. 하지만, 본 발명의 일 실시예에 따른 논리적 블록(LB0, LB1..)들은 256개보다 적은 수의 페이지들을 포함하도록 구현된다.
계속해서 살펴보면, 도 3에 도시된 바와 같이, 논리적 어드레스(미도시)가 지정하는 페이지에 실제 데이터를 라이트, 삭제 및 갱신하는 것으로 이루어진다. 보다 구체적으로, 논리적 블록의 페이지 수만큼 물리적 블록의 페이지들과 FTL(Flash Translation Layer)변환으로 맵핑시킨다. 이후, 호스트(미도시)의 명령에 따라 논리적 어드레스(미도시)를 참조하면, 논리적 어드레스와 맵핑된 물리적 어드레스가 지정하는 해당 위치에 데이터를 라이트, 삭제 및 리드할 수 있다.
여기서, 맵핑 관계 대상의 논리적 블록과 물리적 블록간의 실질적 포함된 페이지의 수에 차이가 난다. 즉, 각각의 물리적 블록(PB0, PB1..)은 수학식 1에서의 a만큼의 여유분의 페이지들(EX)을 더 포함한다. 따라서, 랜덤한 라이트가 발생되어 논리적 블록에서 자주 참조되는 페이지가 발생되어 물리적 블록에 잦은 라이트 작업이 발생되어 더 이상 맵핑된 물리적 블록의 페이지가 모두 사용되었다 하더라도, 여전히 물리적 블록에는 여유 페이지가 존재하므로 이를 이용하도록 한다. 자세히 설명하면, 맵핑 관계의 물리적 블록의 페이지들이 모두 사용되었다면, 해당 논리적 블록의 페이지를 여유 페이지에 카피할 수 있다. 즉, 물리적 블록에는 맵핑되지 않고 대기상태인 여유 페이지가 항상 존재하므로, 여유 페이지만큼의 가비지 컬렉션 및 머지 발생 빈도를 억제할 수 있다. 만약, 물리적 블록의 여유 페이지마저도 데이터가 라이트되었다면 이 경우에는 가비지 컬렉션 또는 머지를 수행해야 한다. 이 때, 물리적 블록의 카피 대상 페이지 수는, 실질적으로 유효 데이터들을 저장한 유효 페이지의 수이고, 이는 결국 중복적으로 참조되었던 논리적 페이지에 대응되는 무효 페이지를 제외한, 논리적 블록 크기만큼의 유효 페이지수와 일치할 것이다. 따라서, 이들 물리적 블록에 대해 새로운 프리 블록(물리적 블록)으로의 머지 작업이 수행된다 해도, 논리적 블록 크기에 대응되는 페이지 외에 항상 여유 페이지가 존재하게 된다.
종래에는, 논리적 블록과 물리적 블록의 크기를 1:1 대응으로 동일하게 맵핑했다.
그리하여, 데이터를 저장 및 갱신하다가 머지 작업이 필요한 경우, 유효 페이지들을 가비지 컬렉션하여 새로운 페이지에 업데이트 할 때, 모든 유효 페이지의 수가 새로운 페이지의 수와 동일할 경우가 발생한다. 이러한 경우, 새로운 데이터를 저장하려고 할 때마다 즉, 랜덤 라이트가 발생될 때마다, 해당 블록에 대한 가비지 컬렉션을 새로이 수행해야 하는 비효율적인 작업이 발생할 수 있다. 심한 경우, 복수개의 블록들이 유효 데이터로 가득 채워진 경우, 1회의 라이트시에도 복수개의 블록들에 대해 머지 작업을 수행해야 할 경우가 발생할 수 있었다. 이와 같이, 랜덤 라이트가 자주 발생하는 시스템에서, 이런 머지 및 가비지 컬렉션이 자주 발생한다면 블록의 삭제 작업도 빈번해진다. 이는 시스템을 노화시키고 수명을 단축하게 되는 결과를 초래하였다.
하지만, 본 발명의 일 실시예에 따르면, 머지 또는 가비지 컬렉션 후에도, 항상 여유 페이지들이 존재하도록 맵핑을 수행하므로, 랜덤 라이트가 지속적으로 발생되더라도 여유 페이지들을 효율적으로 이용함으로써 머지 및 가비지 컬렉션의 수행 빈도를 낮출 수 있다.
또한, 본 발명의 일 실시예에 따른 종래보다 작아진 논리적 블록의 크기를 기준으로 맵핑을 수행하여 맵핑 테이블의 크기가 작아짐으로써 맵핑 테이블의 저장 영역의 크기도 감소시킬 수 있다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 장치의 동작을 나타낸 순서도이다.
다시 도 1 내지 도 4를 참조하면, 우선, 논리적 블록의 크기(사이즈)를 물리적 블록의 크기보다 작게 할당한다(S10).
즉, 논리적 블록(LB0, LB1..)내 포함되는 페이지 수를 물리적 블록(PB0, PB1..)내 포함된 페이지 수보다 적도록 설정한다.
그리하여, 논리적 블록(LB0, LB1..)의 페이지 수를 기준으로 물리적 블록(PB0, PB1..)과 맵핑을 수행한다(S20).
논리적 블록(LB0, LB1..)의 페이지간에 맵핑된 물리적 블록(PB0, PB1..)의 페이지에 라이트 가능한지 판단한다(S30).
판단 결과, 라이트가 가능하면 물리적 블록의 해당 페이지에 라이트를 수행한다(S40).
만약, 판단 결과, 라이트가 가능하지 않다면 해당 물리적 블록내 여유 페이지(EX)로 대상 논리적 블록의 페이지를 카피한다(S50).
만약, 여유 블록(EX)에서, 추적된 여유 페이지에 유효 데이터가 존재하면, 이전 유효 페이지의 다음 페이지를 라이트할 페이지로 설정하여 라이트를 수행한다(S60).
이와 같이, 본 발명의 일 실시예에 따르면, 블록을 구성하는 실제 물리적 블록의 크기보다 논리적 블록의 크기를 작게 설정함으로써, 머지 및 가비지 컬렉션 수행 빈도를 억제한다. 그리하여, 랜덤 라이트가 지속적으로 발생하는 시스템에서, 추가의 자원이나 추가의 비용없이 시스템의 성능을 향상시킬 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 호스트 인터페이스 120: 버퍼부
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역
Claims (14)
- 호스트 인터페이스;
상기 호스트 인터페이스와 연결된 메모리 컨트롤러; 및
상기 메모리 컨트롤러에 의해 제어되는 복수의 메모리 블록을 포함하는 메모리 영역을 포함하고,
상기 메모리 컨트롤러는 상기 복수의 메모리 블록에 대응되는 물리적 블록을 설정하고, 이에 대한 맵핑 대상인 가상의 논리적 블록을 설정하며, 상기 논리적 블록의 크기와 상기 물리적 블록의 크기를 비대칭으로 설정하는 비휘발성 메모리 장치. - 제 1항에 있어서,
상기 메모리 컨트롤러는,
상기 논리적 블록의 크기를 상기 물리적 블록의 크기보다 작게 설정하는 비휘발성 메모리 장치. - 제 2항에 있어서,
상기 물리적 블록은 복수개의 페이지를 포함하며, 상기 논리적 블록은 상기 물리적 블록내 포함된 페이지 수보다 적은 수의 페이지를 포함하는 비휘발성 메모리 장치. - 제 3항에 있어서,
상기 메모리 컨트롤러는,
상기 논리적 블록의 페이지 수를 기준으로 맵핑을 수행하는 비휘발성 메모리 장치. - 제 3항에 있어서,
상기 메모리 컨트롤러는,
상기 물리적 블록에 맵핑되지 않았던 페이지들을 이용하여 상기 논리적 블록의 데이터에 대해 라이트 가능하도록 제어하는 비휘발성 메모리 장치. - 호스트 인터페이스;
상기 호스트 인터페이스와 연결된 메모리 컨트롤러; 및
상기 메모리 컨트롤러에 의해 제어되는 복수의 메모리 블록을 포함하는 메모리 영역을 포함하고,
상기 메모리 컨트롤러는 상기 복수의 메모리 블록에 대응되는 물리적 블록을 설정하고, 이에 대한 맵핑 대상인 가상의 논리적 블록 설정 시, 가비지 컬렉션 및 머지 수행 후에는 상기 물리적 블록에 항상 맵핑되지 않은 페이지들을 포함하도록 제어하는 비휘발성 메모리 장치. - 제 6항에 있어서,
상기 메모리 컨트롤러는,
상기 논리적 블록의 크기와 상기 물리적 블록의 크기를 비대칭으로 설정하는 비휘발성 메모리 장치. - 제 7항에 있어서,
상기 메모리 컨트롤러는,
상기 논리적 블록의 크기를 상기 물리적 블록의 크기보다 작게 설정하는 비휘발성 메모리 장치. - 제 8항에 있어서,
상기 물리적 블록은 복수개의 페이지를 포함하며, 상기 논리적 블록은 상기 물리적 블록내 포함된 페이지 수보다 적은 수의 페이지를 포함하는 비휘발성 메모리 장치. - 제 8항에 있어서,
상기 메모리 컨트롤러는,
상기 논리적 블록의 페이지 수를 기준으로 맵핑을 수행하는 비휘발성 메모리 장치. - 제 10항에 있어서,
상기 메모리 컨트롤러는,
가비지 컬렉션 및 머지 작업 수행 시, 상기 맵핑에 의해 항상 상기 물리적 블록내 유효 페이지 수가 논리적 블록의 페이지 수 미만이 되도록 제어하는 비휘발성 메모리 장치. - 논리적 블록의 크기를 물리적 블록의 크기보다 작게 할당하는 단계;
상기 논리적 블록의 크기를 기준으로 맵핑을 수행하는 단계;
상기 논리적 블록에 대응되는 물리적 블록의 페이지에 라이트 가능한지 판단하는 단계; 및
상기 판단 결과에 따라 라이트 수행 페이지를 서로 다르게 할당하는 단계를 포함하는 비휘발성 메모리 장치의 제어 방법. - 제 12항에 있어서,
상기 논리적 블록의 크기를 상기 물리적 블록의 크기보다 작게 할당하는 것은 상기 논리적 블록의 페이지 수를 상기 물리적 블록의 페이지 수보다 적도록 설정하는 메모리 장치의 제어 방법. - 제 12항에 있어서,
상기 판단 결과에 의해, 해당 물리적 블록의 여유 페이지를 이용하여 라이트를 수행하는 것을 더 포함하는 비휘발성 메모리 장치의 제어 방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110002653A KR20120081351A (ko) | 2011-01-11 | 2011-01-11 | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
US13/337,479 US20120179859A1 (en) | 2011-01-11 | 2011-12-27 | Nonvolatile memory apparatus performing ftl function and method for controlling the same |
TW101100568A TW201229756A (en) | 2011-01-11 | 2012-01-06 | Nonvolatile memory apparatus performing FTL function and method for controlling the same |
CN2012100055077A CN102708058A (zh) | 2011-01-11 | 2012-01-10 | 执行ftl功能的非易失性存储装置及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110002653A KR20120081351A (ko) | 2011-01-11 | 2011-01-11 | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20120081351A true KR20120081351A (ko) | 2012-07-19 |
Family
ID=46456126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110002653A KR20120081351A (ko) | 2011-01-11 | 2011-01-11 | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120179859A1 (ko) |
KR (1) | KR20120081351A (ko) |
CN (1) | CN102708058A (ko) |
TW (1) | TW201229756A (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140122774A1 (en) * | 2012-10-31 | 2014-05-01 | Hong Kong Applied Science and Technology Research Institute Company Limited | Method for Managing Data of Solid State Storage with Data Attributes |
US20140181430A1 (en) * | 2012-12-26 | 2014-06-26 | Unisys Corporation | Equalizing wear on storage devices through file system controls |
US9747202B1 (en) * | 2013-03-14 | 2017-08-29 | Sandisk Technologies Llc | Storage module and method for identifying hot and cold data |
US9575884B2 (en) * | 2013-05-13 | 2017-02-21 | Qualcomm Incorporated | System and method for high performance and low cost flash translation layer |
US9965345B2 (en) | 2014-09-24 | 2018-05-08 | Macronix International Co., Ltd. | Health management of non-volatile memory |
US9483413B2 (en) | 2014-10-24 | 2016-11-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
KR20160070920A (ko) * | 2014-12-10 | 2016-06-21 | 에스케이하이닉스 주식회사 | 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
CN106326134B (zh) * | 2015-06-30 | 2019-10-01 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
CN107562639B (zh) * | 2016-07-01 | 2020-08-11 | 北京忆恒创源科技有限公司 | 擦除块读请求处理方法与装置 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN107918530A (zh) * | 2018-01-12 | 2018-04-17 | 江苏华存电子科技有限公司 | 一种非易失性存储器的磨损均衡方法和装置 |
KR20190106008A (ko) * | 2018-03-07 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템, 그것의 동작 방법 및 전자 장치 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702821B2 (en) * | 2005-09-15 | 2010-04-20 | Eye-Fi, Inc. | Content-aware digital media storage device and methods of using the same |
WO2007058617A1 (en) * | 2005-11-17 | 2007-05-24 | Chee Keng Chang | A controller for non-volatile memories, and methods of operating the memory controller |
KR100902008B1 (ko) * | 2007-02-09 | 2009-06-12 | 삼성전자주식회사 | 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템 |
US20110035540A1 (en) * | 2009-08-10 | 2011-02-10 | Adtron, Inc. | Flash blade system architecture and method |
-
2011
- 2011-01-11 KR KR1020110002653A patent/KR20120081351A/ko not_active Application Discontinuation
- 2011-12-27 US US13/337,479 patent/US20120179859A1/en not_active Abandoned
-
2012
- 2012-01-06 TW TW101100568A patent/TW201229756A/zh unknown
- 2012-01-10 CN CN2012100055077A patent/CN102708058A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN102708058A (zh) | 2012-10-03 |
US20120179859A1 (en) | 2012-07-12 |
TW201229756A (en) | 2012-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20120081351A (ko) | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 | |
JP6568387B2 (ja) | ストレージコントローラ及びストレージ装置 | |
US9053007B2 (en) | Memory system, controller, and method for controlling memory system | |
KR101143397B1 (ko) | 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법 | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US20100030948A1 (en) | Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system | |
KR102387935B1 (ko) | 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치 | |
JP2009048613A (ja) | ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法 | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
KR20120060236A (ko) | 파워 인터럽트 관리 | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
US11150819B2 (en) | Controller for allocating memory blocks, operation method of the controller, and memory system including the controller | |
KR20110024832A (ko) | 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR101103061B1 (ko) | 반도체 스토리지 시스템 및 그 제어 방법 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR101027687B1 (ko) | 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법 | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E601 | Decision to refuse application |