KR20100063495A - 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 - Google Patents
플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 Download PDFInfo
- Publication number
- KR20100063495A KR20100063495A KR1020080122041A KR20080122041A KR20100063495A KR 20100063495 A KR20100063495 A KR 20100063495A KR 1020080122041 A KR1020080122041 A KR 1020080122041A KR 20080122041 A KR20080122041 A KR 20080122041A KR 20100063495 A KR20100063495 A KR 20100063495A
- Authority
- KR
- South Korea
- Prior art keywords
- log
- type
- unit
- block
- logical address
- 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—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
플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법이 개시된다. 본 발명의 실시예에 따른 플래시 메모리를 포함하는 반도체 장치는 상기 반도체 장치의 프로세서의 요청에 따라 서로 다른 타입(type)의 제 1 로그 방식 및 제 2 로그 방식 중 하나를 선택하여 제어 신호로 출력하는 로그 타입 결정부; 상기 제어 신호가 상기 제 1 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 1 타입 로그부; 상기 제어 신호가 상기 제 2 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 2 타입 로그부; 및 상기 제어 신호에 포함되는 컨버젼 요청에 응답하여 상기 제 1 타입 로그부 및 상기 제 2 타입 로그부 중 하나의 로그부에 속하는 로그 블럭을 다른 하나의 로그부의 로그 블럭으로 변환하는 머지부를 구비한다.
Description
본 발명은 반도체 장치에 관한 것으로서, 특히 서로 다른 로그 방식 간의 저장 공간을 효율적으로 할당할 수 있는 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법에 관한 것이다.
플래시 메모리는 프로그램 동작을 수행하기 전에 반드시 소거 동작이 선행되어야 한다. 그런데, 플래시 메모리의 프로그램 및 독출은 페이지 단위로 수행되는 반면, 소거 동작은 블럭 단위로 수행된다. 따라서, 플래시 메모리로의 프로그램 동작시,프로그램하고자 하는 논리주소를 삭제 연산이 수행된 물리주소로 맵핑(mapping)키시는 플래시 변한 계층(FTL: Flash Translation Layer)이 사용된다.
FTL 알고리즘으로 대표적인 것으로 로그 블럭 사상법이 있다. 로그 블럭 사상법은 한정된 수의 로그 블럭을 기입 버퍼로 이용하는 블럭 사상법이다.
본 발명이 이루고자하는 기술적 과제는 서로 다른 로그 방식 간의 저장 공간을 효율적으로 할당할 수 있는 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법을 제공하는 것에 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 플래시 메모리를 포함하는 반도체 장치는 상기 반도체 장치의 프로세서의 요청에 따라 서로 다른 타입(type)의 제 1 로그 방식 및 제 2 로그 방식 중 하나를 선택하여 제어 신호로 출력하는 로그 타입 결정부; 상기 제어 신호가 상기 제 1 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 1 타입 로그부; 상기 제어 신호가 상기 제 2 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 2 타입 로그부; 및 상기 제어 신호에 포함되는 컨버젼 요청에 응답하여 상기 제 1 타입 로그부 및 상기 제 2 타입 로그부 중 하나의 로그부에 속하는 로그 블럭을 다른 하나의 로그부의 로그 블럭으로 변환하는 머지부를 구비한다.
바람직하게는, 상기 제 1 로그 방식은 상기 플래시 메모리로의 프로그램을 위한 논리 주소에 대하여 랜덤하게 로그 블럭을 형성하는 로그 방식이고, 상기 제 2 로그 방식은 상기 플래시 메모리로의 프로그램을 위한 논리 주소에 대하여 순차적으로 로그 블럭을 형성하는 로그 방식일 수 있다.
바람직하게는, 상기 머지부는 하나의 로그부의 로그 블럭에 저장된 페이지를 다른 하나의 로그부의 로그 블럭에 저장하여 변환 동작을 수행할 수 있다. 또는, 상기 머지부는 상기 로그 블럭과 상기 로그 블럭에 대응되는 페이지 주소에 대한 맴핑 정보를 저장하는 맵핑 테이블에서, 하나의 로그부에 대한 제 1 맵핑부에 저장된 맵핑 정보를 다른 하나의 로그부에 대한 제 2 맵핑부에 저장하여 변환 동작을 수행할 수 있다.
바람직하게는, 상기 로그 타입 결정부는 상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하고 연속적인 경우, 상기 논리 주소에 대한 로그 타입을 제 2 타입으로 선택할 수 있다. 반면, 상기 로그 타입 결정부는 상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하나 연속적이지 아니한 경우, 상응하는 로그 블럭의 카피 머지 여부를 판단하고, 카피 머지가 가능하지 아니하다면 상기 컨버젼 요청을 포함하여 상기 제어 신호를 생성할 수 있다.
또한, 상기 로그 타입 결정부는 상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하지 아니하는 경우, 상기 프로그램 데이터의 크기에 따라 상기 제 1 타입을 선택하거나 상기 제 2 타입을 선택할 수 있다. 이때, 상기 로그 타입 결정부는 상기 프로그램 데이터가 소정 크기 이상이면 상기 제 2 타입을 선택하고, 상기 제 2 타입 로그부에 새로운 로그 블럭이 형 성되도록 제어 신호를 설정할 수 있다.
바람직하게는, 상기 제 1 타입 로그부 또는 상기 제 2 타입 로그부의 머지 요청에 응답하여 전송되는 로그 블럭을 저장하는 데이터 블럭이 더 구비될 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 반도체 장치의 일부를 나타내는 블럭도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 반도체 장치(100)는 로그 타입 결정부(110), 제 1 타입 로그부(120), 제 2 타입 로그부(130) 및 데이터 블럭(150)을 구비한다. 이때, 로그 타입 결정부(110), 제 1 타입 로그부(120) 및 제 2 타입 로그부(130)는 도 1의 반도체 장치(100)에 포함되는 컨트롤러(미도시)에 구비될 수 있고, 데이터 블럭(150)은 도 1의 반도체 장치(100)에 포함되는 플래시 메모리(미도시)에 구비될 수 있다. 다만, 이에 한정되는 것은 아니고, 로그 타입 결정부(110), 제 1 타입 로그부(120) 및 제 2 타입 로그부(130)도 플래시 메모리에 구 비될 수도 있다.
로그 타입 결정부(110)는 반도체 장치(100)의 프로세서(미도시)의 요청에 따라, 서로 다른 타입(type)의 로그 스킴(log scheme)들 중 하나를 선택할 수 있다. 예를 들어, 로그 타입 결정부(110)는 논리 주소(LBA)에 랜덤(random)하게 로그 블럭(log block)을 형성하는 제 1 타입 로그 스킴, 및 논리 주소에 순차적으로 로그 블럭을 형성하는 제 2 타입 로그 스킴 중 하나를 선택할 수 있다. 다만, 로그 타입 결정부(110)는 이에 한정되는 것은 아니고 셋 이상의 서로 타입의 로그 스킴 중 하나를 선택할 수도 있다.
로그 타입 결정부(110)는 다양한 팩터(factor)들에 근거하여 로그 타입을 선택할 수 있다. 로그 타입 결정부(110)의 동작 알고리즘에 대하여는 후술된다. 로그 타입 결정부(110)는 선택된 타입에 대한 정보를 나타내는 제어 신호(XCON)를 생성할 수 있다.
제 1 타입 로그부(120)은 제어 신호(XCON)가 제 1 타입이 선택되었음을 나타내는 경우, 논리 주소(LBA) 및 프로그램 데이터(PDTA)를 수신하여 대응되는 로그 블럭에 기입한다. 마찬가지로, 제 2 타입 로그부(130)은 제어 신호(XCON)가 제 2 타입이 선택되었음을 나타내는 경우, 논리 주소(LBA) 및 프로그램 데이터(PDTA)를 수신하여 대응되는 로그 블럭에 기입한다.
각각, 제 1 타입 로그부(120) 및 제 2 타입 로그부(130)에 형성된 로그 블럭들의 예가 도 2에 도시된다.
도 2의 (a)에 도시되는 제 1 타입 로그부(120)에 형성되는 로그 블럭 들(LBLKA1 ~ LBLKA5)은 논리 주소에 랜덤하게 페이지들을 저장한다. 다만, 로그 블럭 LBLKA5와 같이 우연히 논리 주소에 순차적으로 페이지들을 저장하는 경우도 발생할 수 있다. 반면, 도 2의 (b)에 도시되는 제 2 타입 로그부(130)에 형성되는 로그 블럭들(LBLKB1 ~ LBLKB4)은 논리 주소에 순차적으로 페이지들을 저장한다.
그런데, 이렇듯 각 로그 타입에 할당되는 저장 공간이 한정되어 있으면, 특정 로그 타입에 의한 기입 요청이 다른 타입 로그 타입에 대한 것보다 현저히 많은 경우, 다른 로그 타입에 대한 저장 공간은 여유로움에도 불구하고 특정 로그 타입에 대한 저장 공간을 확보하기 위한 소거 동작 등을 수행해야 하는 문제가 발생할 수 있다. 이 경우, 시간적 지연이 발생함으로 장치 전체적으로 볼 때, 동작 속도가 저하될 수 있다.
이와 같은 비효율성을 극복하기 위하여, 도 1의 본 발명의 실시예에 따른 반도체 장치(100)는 도 3과 같은 사상 알고리즘(300)을 채택한다.
도 1 및 도 3을 참조하면, 도 1의 반도체 장치에 포함되는 플래시 메모리로의 프로그램 요청에 대하여, 요청된 논리 주소(LBA)에 대한 로그 타입을 선택(S320)하여 제어 신호(XCON)로 출력한다. 이를 위해, 먼저 요청된 논리 주소(LBA)가 제 2 타입 로그부(130)의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하는지를 판단한다(S321). 예를 들어, 논리 주소 "0x1409"에 대한 프로그램 요청이 있었다면, "0x1409"에 대한 페이지가 기입될 여지가 있는 로그 블럭이 제 2 타입 로그부(130)에 존재하는지를 판단할 수 있다.
이하에서는 설명의 편의를 위해 제 2 타입의 로그 블럭을 "LLB"라 한다. 도 2를 참조하면, "0x1403" 내지 "0x1407"에 대한 페이지를 저장하고 있는 로그 블럭 LBLKB2가 제 2 타입 로그부(130)에 존재함을 알 수 있다. 로그 블럭 LBLKB2는 논리 주소에 대하여 순차적인 제 2 타입의 로그 블럭이므로, "0x1409"는 로그 블럭 LBLKB2에 기입될 여지가 있다.
이 경우(S321의 "Y"), 요청된 논리 주소(LBA)가 해당 로그 블럭에 저장된 페이지의 논리 주소에 연속적인지를 판단한다(S322). 예를 들어, 요청된 논리 주소(LBA)가 "0x1408"이면 로그 블럭 LBLKB2의 "0x1407"에 연속적이므로(S322의 "Y"), 요청된 논리 주소(LBA)에 대한 로그 타입을 제 2 타입으로 선택할 수 있다.
반면, 전술된 예와 같이, 요청된 논리 주소(LBA)가 "0x1409"이면 로그 블럭 LBLKB2의 "0x1407"에 연속적이지 아니하므로(S322의 "N"), 다음 동작을 수행한다.
이때, S321 및 S322와 같은 판단은, 로그 블럭에 포함되는 페이지에 대한 맵핑 테이블(160)을 참조함으로써 가능할 수 있다. 맵핑 테이블(170)은 휘발성 메모리로 구현될 수 있다.
바람직하게는, 본 발명의 실시예에 따른 반도체 장치(100)는 로그 블럭에 저장 가능한 페이지가 일정 개수 이하이면 데이터 블럭(150)으로 카피 머지(copy merge)를 수행할 수 있다. 카피 머지 및 이하에서 설명되는 다양한 머지 동작은 도 1의 머지부(140)에 의할 수 있다. 카피 머지는 널리 알려진 바와 같이, 로그 블럭을 데이터 블럭(150)으로 카피하는 동작을 말한다.
따라서, 도 3의 사상 방법(300)은 요청된 논리 주소(LBA)에 대응되는 로그 블럭이 "LLB"로 존재하나 해당 로그 블럭에 속하는 논리 주소들에 연속적이지 못한 경우(S322의 "N"), 해당 로그 블럭의 저장 공간이 임계값 이하인지를 판단한다(S323).
해당 로그 블럭의 저장 공간이 임계값 이하라면(S323의 "Y") 해당 로그 블럭을 데이터 블럭으로 카피한다(S324). 만약 임계값이 3(해당 로그 블럭에 저장 가능한 페이지 개수가 3)이라면, 전술된 예와 같이, 요청된 논리 주소(LBA)가 "0x1409"에 대응되는 로그 블럭 LBLKB2은 데이터 블럭(150)으로 카피된다. 데이터 블럭으로 카피 머지된 로그 블럭에는 새로운 데이터가 오버라이트(overwrite)될 수 있다.
이 경우, 여전히 "0x1409"에 대하여 로그 블럭으로의 기입 동작이 이루어지지 아니하였으므로, 다시 요청된 논리 주소 "0x1409"에 상응하는 로그 블럭이 "LLB"에 존재하는지를 판단한다(S321). 요청된 논리 주소 "0x1409"에 상응하는 로그 블럭은 이미 데이터 블럭(150)으로 카피되어 "LLB"로 존재하지 아니하므로(S322의 "N"), 요청된 논리 주소에 대한 로그 타입을 "LLB"로 선택할지 여부를 판단한다(S325).
S325는 특히, 현재 프로그램 요청된 데이터의 크기(페이지의 개수)가 n(n은 자연수)개 이하인지 여부를 판단할 수 있다. n의 값은 시스템 사양 등에 근거하여 설정될 수 있다. 프로그램 요청된 데이터의 크기가 n보다 크면(S325의 "N"), 요청된 논리 주소(LBA)에 대한 로그 타입을 제 2 타입로 선택할 수 있다. 프로그램 요청된 데이터의 크기가 n보다 크면(S325의 "N"), 대응되는 논리 주소가 연속적이여서 제 2 타입 로그부로 저장하는 것이 효율적이기 때문이다.
반면, 프로그램 요청된 데이터의 크기가 n보다 작으면(S325의 "Y"), 요청된 논리 주소(LBA)에 대한 로그 타입을 제 1 타입으로 선택할 수 있다. 이하에서는 설명의 편의를 위해 제 1 타입의 로그 블럭을 "GLB"로 나타낸다. 또한, 해당 로그 블럭의 저장 공간이 임계값 이하라면(S323의 "N") 요청된 논리 주소(LBA)에 대한 로그 타입을 제 1 타입으로 선택할 수 있다.
이와 같이, 로그 타입 결정부(110)에 의한 로그 타입이 결정되면(S320), 제어 신호(XCON)에 응답하여 제 1 타입 로그부(120)는 요청된 논리 주소(LBA)에 대하여 제 2 타입으로 로그 블럭에 기입하고(S340), 제 2 타입 로그부(130)는 제 1 타입으로 로그 블럭에 기입한다(S360).
계속해서 도 1 및 도 3을 참조하면, 로그 타입 결정부(110)에 의한 로그 타입이 제 2 타입로 선택되면(S325의 "N" 및 S322의 "Y"), 제 2 타입 로그부(130)는 요청된 논리 주소(LBA)에 대하여 제 2 타입으로 로그 블럭에 기입한다(S340). 이때, 요청된 논리 주소에 대한 제 2 타입 로그부(130)의 로그 블럭의 저장 공간이 존재하는 경우(S322의 "Y"), 해당 로그 블럭에 바로 데이터(PDTA)를 저장하면 된다(S342).
반면, 요청된 논리 주소에 대한 로그 블럭의 저장 공간이 존재하지 아니하는 경우(S325의 "N"), 제 2 타입 로그부(130)는 새로운 로그 블럭을 할당한 후(S344) 대응되는 프로그램 데이터(PDTA)를 기입할 수 있다(S342).
로그 타입 결정부(110)에 의한 로그 타입이 제 1 타입으로 선택되면(S325의 "Y" 및 S323의 "N"), 제 1 타입 로그부(120)는 요청된 논리 주소(LBA)에 대하여 제 1 타입으로 로그 블럭에 기입한다(S360). 이때, 프로그램 요청된 데이터의 크기가 n개의 페이지의 크기보다 크다면(S325의 "Y"), 제 1 타입 로그부(120)의 로그 블럭에 바로 데이터(PDTA)를 저장하면 된다(S362). 프로그램 요청된 데이터의 크기가 n개의 페이지의 크기보다 크다면(S325의 "Y"), 제 2 타입 로그부(130)보다 상대적으로 저장 공간의 여유가 크다고 가정되는 제 1 타입 로그부(120)에 저장하는 것이 효율적일 수 있기 때문이다.
반면, 대응되는 제 2 타입의 로그 블럭의 저장 공간이 임계값보다 큰 경우(S325의 "N"), 해당 로그 블럭을 제 1 타입으로 변환시킨 후(S364), 대응되는 프로그램 데이터(PDTA)를 기입할 수 있다(S362). 이때, 제 2 타입의 로그 블럭("LLB")의 제 2 타입의 로그 블럭("GLB")으로의 변환은 맵핑 테이블에서의 해당 로그 블럭에 대한 포인터 값을 변환시킴으로써 수행될 수 있다.
이렇듯, 본 발명의 실시예에 따른 반도체 장치 및 이에 포함되는 플래시 메모리에서의 사상 방법은 서로 다른 로그 방식 간의 저장 공간을 효율적으로 할당할 수 있다.
계속해서 도 1 및 도 3을 참조하면, 요청된 논리 주소(LBA)에 대한 로그 블럭 할당이 완료되면(S342 또는 S362), 머지부(140)에 의해 로그 블럭들에 대한 머지 또는 컴팩션 동작 등을 수행할 수 있다(S380). 도 3의 S380에 도시되는 심플 머지, 스왑 머지 및 컴팩션 동작은 당업자에게 널리 알려진 사항이므로 이에 대한 더 자세한 설명은 생략한다.
이상에서는 서로 다른 로그 방식 간의 저장 공간의 비율을 가변적으로 할당함으로써, 저장 공간을 효율적으로 할당하는 경우에 대하여 설명하였다. 이와 달 리, 서로 다른 로그 방식에 대한 맴핑 테이블에서의 사상 정보만을 수정함으로써 저장 공간을 효율을 할당하는 실시예가 도 4에 도시된다.
도 2 및 도 4의 (a)를 참조하면, 제 1 타입 로그부(120)에 속하는 로그 블럭 LBLKA5의 어드레스가 "0x0340"으로 시작한다고 가정할 때("0x0340"으로 시작하는 로그 블럭을 로그 블럭 "0x034"라 할 수 있다), 제 1 타입 로그부(120)에 대응되는 맴핑 테이블(GMT)은 로그 블럭 LBLKA5에 대한 페이지 맵핑 정보를 포함한다. 즉, 제 1 타입 로그부(120)에 대응되는 맴핑 테이블(GMT)은 "0x0340"에 논리 주소 "0x138A"의 페이지가 저장되고, "0x0341"에 논리 주소 "0x138B"의 페이지가 저장되며, "0x0342"에 논리 주소 "0x138C"의 페이지가 저장됨을 나타내고 있다.
반면, 제 2 타입 로그부(130)에 대응되는 맴핑 테이블(LMT)은 로그 블럭 LBLKA5가 제 2 타입 로그부(130)에 존재하지 아니하므로 로그 블럭 LBLKA5에 대한 페이지 맵핑 정보를 포함하지 아니한다. 즉, LMT "0x138"의 값이 "0xFFFF"이고, LMT "0x138"의 값이 나타내는 로그 블럭 "0x034"에 대한 페이지 맵핑 테이블인 LPM이 빈 상태로 있다.
이때, 도 4의 (b)와 같이, 맴핑 테이블의 사상 정보만을 변화시킴으로써, "LLB"를 "GLB"로 변환시킬 수 있다(도 3의 S364). 즉, 도 2 및 도 4의 (b)를 참조하면, 제 1 타입 로그부(120)에 대응되는 맴핑 테이블(GMT)에서의 로그 블럭 LBLKA5에 대한 맵핑 정보를 삭제하고(GMT가 빈 상태가 된다), 이를 제 2 타입 로그부(130)에 기입함으로써 로그 블럭 LBLKA5을 "LLB"를 "GLB"로 변환시킬 수 있다. 이때, LMT "0x138"이 "0x340"과 맵핑되고, LPM에 "0xA", "0xB" 및 "0xC"이 기입된 다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 반도체 장치의 일부를 나타내는 블럭도이다.
도 2는 도 1의 제 1 타입 로그부 및 제 2 타입 로그부에 형성된 로그 블럭들의 예를 나타내는 도면이다.
도 3은 도 1의 반도체 장치에서의 사상 알고리즘을 나타내는 순서도이다.
도 4는 도 1의 반도체 장치가 서로 다른 로그 방식에 대한 맴핑 테이블에서의 사상 정보만을 수정하는 동작을 설명하기 위한 도면이다.
Claims (9)
- 플래시 메모리를 포함하는 반도체 장치에 있어서,상기 반도체 장치의 프로세서의 요청에 따라 서로 다른 타입(type)의 제 1 로그 방식 및 제 2 로그 방식 중 하나를 선택하여 제어 신호로 출력하는 로그 타입 결정부;상기 제어 신호가 상기 제 1 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 1 타입 로그부;상기 제어 신호가 상기 제 2 로그 방식이 선택되었음을 나타내는 경우, 상기 플래시 메모리로의 프로그램을 위한 논리 주소 및 프로그램 데이터를 수신하여 대응되는 로그 블럭에 기입하는 제 2 타입 로그부; 및상기 제어 신호에 포함되는 컨버젼 요청에 응답하여 상기 제 1 타입 로그부 및 상기 제 2 타입 로그부 중 하나의 로그부에 속하는 로그 블럭을 다른 하나의 로그부의 로그 블럭으로 변환하는 머지부를 구비하는 것을 특징으로 하는 반도체 장치.
- 제 1 항에 있어서,상기 제 1 로그 방식은,상기 플래시 메모리로의 프로그램을 위한 논리 주소에 대하여 랜덤하게 로그 블럭을 형성하는 로그 방식이고,상기 제 2 로그 방식은,상기 플래시 메모리로의 프로그램을 위한 논리 주소에 대하여 순차적으로 로그 블럭을 형성하는 로그 방식인 것을 특징으로 하는 반도체 장치.
- 제 1 항에 있어서, 상기 머지부는,하나의 로그부의 로그 블럭에 저장된 페이지를 다른 하나의 로그부의 로그 블럭에 저장하여 변환 동작을 수행하는 것을 특징으로 하는 반도체 장치.
- 제 1 항에 있어서, 상기 머지부는,상기 로그 블럭과 상기 로그 블럭에 대응되는 페이지 주소에 대한 맴핑 정보를 저장하는 맵핑 테이블에서, 하나의 로그부에 대한 제 1 맵핑부에 저장된 맵핑 정보를 다른 하나의 로그부에 대한 제 2 맵핑부에 저장하여 변환 동작을 수행하는 것을 특징으로 하는 반도체 장치.
- 제 1 항에 있어서, 상기 로그 타입 결정부는,상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하고 연속적인 경우, 상기 논리 주소에 대한 로그 타입을 제 2 타입으로 선택하는 것을 특징으로 하는 반도체 장치.
- 제 5 항에 있어서, 상기 로그 타입 결정부는,상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하나 연속적이지 아니한 경우, 상응하는 로그 블럭의 카피 머지 여부를 판단하고, 카피 머지가 가능하지 아니하다면 상기 컨버젼 요청을 포함하여 상기 제어 신호를 생성하는 것을 특징으로 하는 반도체 장치.
- 제 5 항에 있어서, 상기 로그 타입 결정부는,상기 논리 주소가 상기 제 2 타입 로그부의 로그 블럭에 저장된 페이지들의 논리 주소에 상응하지 아니하는 경우, 상기 프로그램 데이터의 크기에 따라 상기 제 1 타입을 선택하거나 상기 제 2 타입을 선택하는 것을 특징으로 하는 반도체 장치.
- 제 7 항에 있어서, 상기 로그 타입 결정부는,상기 프로그램 데이터가 소정 크기 이상이면 상기 제 2 타입을 선택하고, 상기 제 2 타입 로그부에 새로운 로그 블럭이 형성되도록 제어 신호를 설정하는 것을 특징으로 하는 반도체 장치.
- 제 1 항에 있어서,상기 제 1 타입 로그부 또는 상기 제 2 타입 로그부의 머지 요청에 응답하여 전송되는 로그 블럭을 저장하는 데이터 블럭가 더 구비하는 것을 특징으로 하는 반 도체 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080122041A KR101469771B1 (ko) | 2008-12-03 | 2008-12-03 | 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 |
US12/629,268 US8239616B2 (en) | 2008-12-03 | 2009-12-02 | Semiconductor device comprising flash memory and address mapping method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080122041A KR101469771B1 (ko) | 2008-12-03 | 2008-12-03 | 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100063495A true KR20100063495A (ko) | 2010-06-11 |
KR101469771B1 KR101469771B1 (ko) | 2014-12-08 |
Family
ID=42223824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080122041A KR101469771B1 (ko) | 2008-12-03 | 2008-12-03 | 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8239616B2 (ko) |
KR (1) | KR101469771B1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10019314B2 (en) | 2016-04-27 | 2018-07-10 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
CN111679787B (zh) | 2016-04-27 | 2023-07-18 | 慧荣科技股份有限公司 | 闪存装置、闪存控制器及闪存存储管理方法 |
CN107590162A (zh) * | 2016-07-08 | 2018-01-16 | 中兴通讯股份有限公司 | 日志文件的存储方法及装置 |
WO2018232089A1 (en) * | 2017-06-14 | 2018-12-20 | Burlywood, LLC | Extent-based data location table management |
CN108920297A (zh) * | 2018-07-13 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种诊断黑盒日志中pcie报错信息的方法和*** |
KR20200022118A (ko) * | 2018-08-22 | 2020-03-03 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US20220229574A1 (en) * | 2021-01-20 | 2022-07-21 | Micron Technology, Inc. | Data migration techniques |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7509474B2 (en) | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
KR100806343B1 (ko) | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
KR100771521B1 (ko) | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
CN101251788A (zh) * | 2008-03-07 | 2008-08-27 | 威盛电子股份有限公司 | 储存单元管理方法及*** |
-
2008
- 2008-12-03 KR KR1020080122041A patent/KR101469771B1/ko active IP Right Grant
-
2009
- 2009-12-02 US US12/629,268 patent/US8239616B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8239616B2 (en) | 2012-08-07 |
US20100138595A1 (en) | 2010-06-03 |
KR101469771B1 (ko) | 2014-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109240938B (zh) | 存储***以及控制非易失性存储器的控制方法 | |
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US7844772B2 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
KR100843135B1 (ko) | 비휘발성 메모리 관리 방법 및 장치 | |
KR102033491B1 (ko) | 플래시 메모리 시스템에서 trim 동작 관리 | |
CN104423894B (zh) | 数据储存装置以及快闪存储器控制方法 | |
KR20100063495A (ko) | 플래시 메모리를 포함하는 반도체 장치 및 이의 어드레스 사상 방법 | |
JP2008192154A (ja) | メモリマッピング方法およびメモリマッピングシステム | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
KR20140035426A (ko) | 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법 | |
US10203899B2 (en) | Method for writing data into flash memory apparatus, flash memory apparatus, and storage system | |
US20120191897A1 (en) | Non-volatile memory system and management method thereof | |
US11232028B2 (en) | Error-checking in namespaces on storage devices | |
TW201915739A (zh) | 資料儲存裝置以及資料儲存方法 | |
TW201126338A (en) | Flash memory device and data access method for flash memories | |
JP2010237907A (ja) | ストレージ装置および記録方法 | |
US20230350798A1 (en) | Namespace management for memory sub-systems | |
US11853208B2 (en) | Storage device and storage method for caching address conversion table | |
CN116795735A (zh) | 固态硬盘空间分配方法、装置、介质及*** | |
KR20150139383A (ko) | 반도체 장치 | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
EP3819771B1 (en) | Data processing method and device, apparatus, and system | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム | |
US20090055574A1 (en) | NAND Flash Memory Device And Related Method Thereof | |
CN108073362B (zh) | 一种延长PairBlock使用寿命的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |