KR101086857B1 - 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 - Google Patents

데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 Download PDF

Info

Publication number
KR101086857B1
KR101086857B1 KR1020080073019A KR20080073019A KR101086857B1 KR 101086857 B1 KR101086857 B1 KR 101086857B1 KR 1020080073019 A KR1020080073019 A KR 1020080073019A KR 20080073019 A KR20080073019 A KR 20080073019A KR 101086857 B1 KR101086857 B1 KR 101086857B1
Authority
KR
South Korea
Prior art keywords
sector
block
data
page
sectors
Prior art date
Application number
KR1020080073019A
Other languages
English (en)
Other versions
KR20100011698A (ko
Inventor
문양기
이대희
Original Assignee
주식회사 팍스디스크
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 팍스디스크, 주식회사 하이닉스반도체 filed Critical 주식회사 팍스디스크
Priority to KR1020080073019A priority Critical patent/KR101086857B1/ko
Priority to US12/344,756 priority patent/US20100023676A1/en
Priority to TW098103987A priority patent/TW201005520A/zh
Publication of KR20100011698A publication Critical patent/KR20100011698A/ko
Application granted granted Critical
Publication of KR101086857B1 publication Critical patent/KR101086857B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Abstract

반도체 스토리지 시스템이 개시된다. 개시된 반도체 스토리지 시스템은, 플래시 메모리 영역의 메모리 블록을 제 1 블록 및 이에 대응되는 제 2 블록으로 구분하고, 외부 라이트 명령 요청시마다 상기 제 2 블록의 페이지를 새로 할당하고, 상기 할당된 페이지 내 해당 섹터를 섹터 어드레스에 따라 할당하여 라이트 명령을 수행하는 컨트롤러를 포함한다.
플래시 메모리, 로그 블록, 제 위치 방식, 임의 위치 방식

Description

데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법{Control Method of Solid State Storage System for Data Merging}
본 발명은 반도체 스토리지 시스템에 관한 것으로서, 보다 구체적으로는 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법에 관한 것이다.
일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 PC(Personal Computer)에서 HDD(Hard Disk Drive)를 대신하여 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)가 출시되고 있고, 급속도로 HDD 시장을 잠식할 것으로 전망되고 있다.
통상적으로 이러한 SSD와 같은 반도체 스토리지 시스템의 메모리 영역의 어드레스 맵핑 방법으로는 블록 단위 맵핑 방법, 페이지 단위 맵핑 방법, 이들 블록 단위 맵핑과 페이지 단위 맵핑을 함께 사용하는 하이브리드(hybrid) 맵핑 방법이 있다. 블록 단위 맵핑은 물리적인 블록 어드레스와 논리적인 블록 어드레스를 맵핑한다. 페이지 맵핑은 섹터 맵핑이라고 하며, 페이지 단위로 맵핑 테이블을 만들어 물리적인 페이지 어드레스와 논리적인 섹터 어드레스를 맵핑하는 방식이다. 페이지 맵핑을 수행하면 맵핑 테이블 검색에 의해 낸드 플래시 메모리의 실질적인 페이지 어드레스를 알 수 있어 고속으로 동작할 수 있는 장점이 있다. 하지만, 대용량화에 따른 낸드 플래시내 이러한 맵핑 저장 용량의 증가는 피할 수 없다. 블록 맵핑은 낸드 플래시 메모리의 블록 수에 대응되어 테이블을 낸드 플래시내에 저장하여 사용하기 때문에 페이지 맵핑 방식에 비해 상대적으로 맵핑 저장 용량을 줄일 수 있는 것이 특징이다. 그러나, 블록 맵핑은 덮어쓰기(overwrite) 과정에서 비효율적이다. 하이브리드 맵핑은 기본적으로 블록 맵핑을 사용하여 맵핑 저장 용량을 줄이고, 로그 블록에 대해서는 페이지 맵핑을 사용하는 방식이다. 여기서 로그 블록을 사용할 수 있는 맵핑 방식은 주로 페이지 맵핑 방식과 하이브리드 맵핑 방식이다. 설명의 편의상 하이브리드 맵핑 방식을 기준으로 설명한다.
로그 블록 맵핑 방법은 메모리 영역의 메모리 블록을 데이터 블록과 로그 블록으로 구분하고, 논리적 어드레스에 따라 지정된 데이터 블록보다 우선적으로, 맵핑을 통한 로그 블록을 할당하여 데이터를 저장하는 것이다. 보통 데이터 블록은 제 위치 방식 (in-place)로 처리하고, 로그 블록은 호스트로부터 들어오는 순서대로 저장하는 임의 위치 방식(out-of-place)이 있다. 이와 같이, 데이터의 속성에 따른 각각의 위치 전략(place strategy)을 고려한 방식의 로그 블록을 이용하도록 하고 있다.
이에 대한 개념에서 더 나아가, 실제 낸드 플래시 메모리에서는 한 개의 페이지내에 여러 개의 섹터가 존재할 수 있다. 이는 최근 낸드플래시가 보통 페이지당 (2Kbyte + Spare) 용량을 기록할 수 있는 것을 넘어서 (4Kbyte + Spare)용량 또 는 이보다 더 큰 용량의 페이지 단위의 제품들이 개발되고 있다. 그러나, PC 등 호스트 시스템 에서는 보통 섹터의 기본 단위가 512Byte 이기 때문에 실제로 한 개의 페이지는 여러 개의 섹터를 가질 수 있게 되는 것이다.
결국, 로그블록 내에서 보통 페이지 순서대로 기록해 나가는 것이 일반적인 방법인데, 한 개의 페이지 내에서 섹터 단위로 저장 될 때, 섹터들을 정해진 오프셋(Offset)에 저장하는 방식을 편의상 섹터 제 위치 방식(Sector in-place)이고, 섹터들이 페이지 내의 임의의 위치에 저장되는 방식을 섹터 임의 위치방식(Sector out-of-place)라고 한다.
예컨대, 제 위치 방식의 로그 블록은 연속적인 데이터용으로, 임의 위치 방식의 로그 블록은 비연속적이고 랜덤한(random) 데이터용으로 이용될 수 있다.
그러나, 이러한 논리적인 구분에도 불구하고, 임의 위치 방식의 로그 블록에 연속적으로 데이터가 입력될 시, 이에 대한 머지 작업의 제어가 복잡하고 어려운 경우가 발생할 수 있다.
본 발명의 기술적 과제는 섹터 임의 위치 방식과 섹터 제 위치 방식을 조합하여 데이터를 머지하는 반도체 스토리지 시스템을 제공하는 것이다.
본 발명의 다른 기술적 과제는 섹터 임의 위치 방식과 섹터 제 위치 방식을 조합하여 데이터를 머지하는 반도체 스토리지 시스템의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템은, 플래시 메모리 영역의 메모리 블록을 데이터 블록 및 이에 대응되는 로그 블록으로 구분하고, 외부 라이트 명령 요청시마다 상기 로그 블록의 페이지를 새로 할당하고, 상기 할당된 페이지 내 해당 섹터를 기 설정된 섹터의 위치에 따라 할당하여 라이트 명령을 수행하는 MCU(Micro Controller Unit)를 포함한다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템은, 호스트 인터페이스, 데이터 블록 및 이에 대응되는 로그 블록으로 구분되는 메모리 블록을 포함하는 메모리 영역 및 상기 호스트 인터페이스로부터의 명령 발생 순서에 따라 임의 위치 (out-of-place) 방식으로 상기 로그 블록의 페이지를 할당하고, 상기 할당된 페이지 내에서는 해당 섹터를 섹터 제 위치(Sector in-place) 방식으로 할당하여 라이트 명령을 수행하는 MCU(Micro Controller Unit)를 포함한다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 또다른 실시예에 따른 반도체 스토리지 시스템은, 호스트 인터페이스, 데이터 블록 및 이에 대응되는 로그 블록으로 구분되는 메모리 블록을 포함하는 메모리 영역 및 상기 호스트 인터페이스로부터의 라이트 명령에 의해, 상기 데이터 블록 및 로그 블록간의 어드레스 맵핑을 제어하며, 상기 호스트 인터페이스의 명령에 따라 중복되는 섹터에 대해서는 섹터 데이터 저장 위치의 중복을 방지하고, 상기 호스트 인터페이스의 명령에 따라 요청되는 상기 메모리 영역내의 기 그룹핑된 섹터에 대해서는 상기 로그 블록내 동일 페이지에 할당되도록 제어하는 MCU(Micro Controller Unit)를 포함한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 플래시 메모리 영역의 메모리 블록을 데이터 블록 및 이에 대응되는 로그 블록으로 구분하여 제어하는 MCU(Micro Controller Unit)를 포함하는 반도체 스토리지 시스템의 제어 방법은, 상기 MCU는 외부의 라이트 요청에 따라 로그 블록 내 임의 위치(out-of-place) 방식으로 페이지를 할당하여, 상기 페이지내 그룹핑된 기 설정된 섹터의 위치에 따라 해당 섹터를 섹터 제 위치(Sector in-place) 방식으로 할당하는 단계, 데이터 머지 시점이 되면, 상기 데이터 블록 및 상기 로그 블록내 유효한 섹터를 카피하는 단계, 상기 로그 블록 내 상기 유효한 섹터에 대해 카피 백(copy back) 명령 수행이 가능한지 판단하는 단계, 상기 카피 백 명령 수행이 가능하면 카피 백을 수행하고, 가능하지 않으면 상기 MCU는 해당 섹터를 리드 한 후, 새로운 블록에 라이트하는 단계를 포함한다.
본 발명의 일 실시예에 따르면 데이터 머지시, 보다 간단히 머지가 수행되도록 제어할 수 있다. 즉, 명령어 발생 순서에 따라 새로운 페이지를 할당함으로써, 중복되는 명령에 대해서도 섹터가 중복되는 것을 방지할 수 있다. 또한, 낸드 플래시 메모리의 페이지 버퍼를 이용할 수 있는 카피 백 명령을 고려하여, 페이지 내 섹터를 할당시, 페이지 내 그룹핑된 섹터의 기 설정된 위치대로 할당함으로써, 연속적인 섹터에 대해서는 카피 백 명령을 이용할 수 있다. 따라서, 데이터 머지시 보다 고속으로 제어할 수 있으며, 이로써 반도체 스토리지 시스템의 성능이 향상될 수 있다.
이하에서는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템에 대하여 첨부된 도면을 참조하여 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템(100)의 블록도이다.
도 1을 참조하면, 반도체 스토리지 시스템(100)은 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.
우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결되며, 외부 호스트 (미도시)와 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA), SCSI, Express Card 및 PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.
버퍼부(120)는 호스트 인터페이스(110)로부터의 출력 신호들을 버퍼링하거나, 메모리 영역(150)으로부터의 데이터들을 버퍼링한다. 또한, 버퍼부(120)는 MCU(130)로부터의 출력 신호들을 버퍼링함으로써, 호스트 인터페이스(110) 및 메모리 컨트롤러(140)에 제공할 수 있다. 이러한 버퍼부(120)는 통상의 버퍼용 메모리로서 칭할 수 있으며, SRAM(Static Random Access Memory)을 이용한 버퍼로 예시한다.
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다. 특히, 본 발명의 일 실시예에 따른 MCU(130)는 메모리 영역(150)의 어드레스 맵핑 제어시, 제 위치(in-place) 방식과 임의 위치(out-of-place) 방식을 모두 이용하는 하이브리드(hybrid) 맵핑 방식으로 어드레스 맵핑을 제어할 수 있다. 이에 대해서는 후술하기로 한다.
메모리 컨트롤러(140)는 메모리 영역(150)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(미도시)를 선택하고, 라이트, 삭제 또는 리드 명령을 제공한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다.
이때, 메모리 영역(150)내 메모리 블록(미도시)은 데이터 블록 및 로그 블록 을 포함하는 것으로 설정할 수 있다. 여기서, 로그 블록은 일종의 라이트용 버퍼로서, 라이트 명령시 데이터 블록에 저장될 데이터를 대응되는 로그 블록내에 저장한다.
로그 블록의 블록 할당 방식에는 제 위치(in-place) 방식 및 임의 위치(out-of-place) 방식이 있다. 제 위치 방식의 로그 블록은 순차적(sequential) 로그 블록이라고도 하며, 교환 연산(switching operation)을 목적으로 한다. 보다 자세히 설명하면, 라이트 명령이 수행되어야 하는 섹터에 대해, 제 위치 방식의 로그 블록은 기 설정된 위치(정해진 자기 위치)에 할당되도록 제어된다. 이러한 제 위치 방식의 로그 블록은 연속적으로 들어오는 예컨대 음악 파일, 영화 파일 데이터와 같은 순수한 데이터(pure data)용으로 주로 이용된다. 제 위치 방식의 로그 블록이 모두 할당되면, 자기 위치에 해당 섹터가 순차적으로(sequentially) 위치하므로 새로운 블록과 교환(switching)하면 된다.
반면, 임의 위치 방식의 로그 블록은 랜덤(random) 로그 블록이라고도 하며, 머지 연산(merge operation)을 수행한다. 임의 위치 방식의 로그 블록은, 명령이 수행되는 순서대로 섹터가 할당되도록 제어된다. 이러한 임의 위치 방식의 로그 블록은 중복성의 데이터, 또는 비연속적이며 랜덤하게 발생되는 제어 코드 데이터(control code data)용으로 주로 이용된다. 임의 위치 방식의 로그 블록이 모두 할당되면, 로그 블록내 랜덤하게 섹터가 위치하므로 데이터 블록과 로그 블록을 각각 카피하여 새로운 블록으로 머지하는 과정을 수행해야 한다.
한편, 낸드 플래시 메모리 특성상, 동일한 소정의 규칙으로 그룹핑된 그룹, 즉 페이지 단위의 그룹핑된 섹터의 데이터에 대해서는 카피 백 명령을 수행할 수 있다. 카피 백 명령이란, 메모리 영역인 낸드 플래시 메모리 내의 페이지 버퍼를 이용하여, 갱신 대상(target)의 페이지의 데이터를 외부 버퍼부에 버퍼링한 후, 낸드 플래시 메모리 내의 새로운 페이지에 데이터를 저장하는 기능을 말한다. 즉, 카피 백 명령을 통해 데이터의 저장 위치를 단순히 변경하는 것으로서, 동작의 제어가 간단하다. 따라서, 로그 블록내의 할당된 페이지 내에, 기 설정된 서로 다른 페이지의 섹터가 혼재되어 있는 경우는 카피 백 명령을 수행할 수 없다.
다시 말하면, 종래의 임의 위치 방식의 로그 블록으로는, 연속적인 섹터에 대해 카피 백 명령 수행이 어려우므로, 복잡한 머지 작업을 수행하는 경우가 발생할 수 있다.
본 발명의 일 실시예에 따르면, MCU(130)는 호스트 인터페이스(130)의 명령에 따라 로그 블록의 페이지를 할당하고, 로그 블록의 할당된 페이지 내 해당 섹터를 메모리 영역(150)의 동일 페이지내의 그룹핑된 섹터를 기준, 즉 기 설정된 섹터 순열(順列)에 따라 할당할 수 있다. 그리하여, MCU(130)는 연속적인 데이터에 대해 머지 수행이 용이하도록 제어할 수 있다.
다시 말하면, 호스트 인터페이스(110)의 명령 발생 순서에 따라 임의 위치 방식으로 페이지를 할당하고, 할당된 페이지 내에서는 제 위치 방식으로 해당 섹터를 위치시킴으로써, 연속적인 데이터에 대해 머지 수행이 용이하도록 할 수 있다.
이에 대해서, 다음의 실험예들을 참조하여 보다 자세히 설명하기로 한다.
도 2 및 도 3은 데이터 머지 과정을 도시한 개념도이다.
본 발명에 관한 보다 상세한 내용은 다음의 구체적인 실험예들을 통하여 설명하며, 여기에 기재되지 않은 내용은 이 기술 분야에서 숙련된 자이면 충분히 기술적으로 유추할 수 있는 것이므로 설명을 생략한다.
도 2를 우선 설명하면, 본 발명의 일 실시예에 따른 임의 위치 방식 및 제 위치 방식을 모두 이용하여 데이터 머지를 수행한 경우이다.
<실험예1>
우선, 각각의 데이터 블록과 로그 블록은 64개의 페이지를 포함하고, 각각의 페이지는 4개의 섹터를 포함하는 것으로 예시한다. 데이터 블록의 페이지내 섹터는 메모리 영역(도 1의 150 참조)내 메모리 블록(미도시)의 페이지 버퍼를 이용할 수 있는 소정의 규칙으로 그룹핑된 섹터를 나타낸다.
호스트 인터페이스(도 1의 110 참조)가 i) 첫번째 명령에서 섹터 1부터 섹터 3 의 데이터 라이트, ii) 두번째 명령에서 섹터 4부터 섹터 7의 데이터 라이트, iii) 세번째 명령에서 섹터 8부터 섹터 9의 데이터 라이트, iv) 네번째 명령에서 섹터 4부터 섹터 7의 데이터 라이트를 요청한다.
이와 같이 연속적인 데이터에 대한 라이트 요청이 발생할 경우, 본 발명의 일 실시예에 따른 MCU(도 1의 130 참조)의 로그 블록 할당은 다음과 같다.
첫번째 명령에 따라 로그 블록의 첫번째 페이지가 할당되며, 할당된 첫번째 페이지 내 섹터 1부터 섹터 3을 제 위치 방식으로 할당시켜 데이터를 라이트한다.
두번째 명령에 따라, 로그 블록의 두번째 페이지가 할당되고, 할당된 두번째 페이지 내 섹터 4부터 섹터 7을 제 위치 방식으로 할당시켜 데이터를 라이트한다.
세번째 명령에 따라, 로그 블록의 세번째 페이지가 할당되고, 할당된 두번째 페이지 내 섹터 8부터 섹터 9를 제 위치 방식으로 할당시켜 데이터를 라이트한다.
네번째 명령에 따라, 로그 블록의 네번째 페이지가 할당되고, 할당된 두번째 페이지 내 섹터 4부터 섹터 7을 제 위치 방식으로 할당시켜 데이터를 라이트한다.
여기서, 제 위치란, 전술한 페이지 버퍼를 이용할 수 있도록 해당 페이지내 실질적으로 그룹핑된 섹터의 순열(順列)을 의미한다. 따라서, 본 발명의 일 실시예에 따르면, 섹터 할당시, 해당 섹터의 제 위치가 아니면, 빈(vacant) 섹터(또는 영역)이 발생하도록 허용한다.
이후, 로그 블록이 모두 할당되었거나, 소정 명령에 따라 머지 시점이 되면 데이터 블록과 로그 블록의 내용을 새로운 데이터 블록으로 머지(merge)한다.
이때, MCU(130)에 의해 머지하는 과정을 보면, 데이터 블록의 데이터와 로그 블록의 데이터를 각각 카피한다. 우선, 데이터 블록 및 로그 블록 중 어느 블록의 섹터가 유효한지 판단한다. 즉, 로그 블록에 할당된 섹터는 데이터 갱신이 수행된 섹터로서, 유효한 섹터가 된다. 하지만, 로그 블록내 할당되지 않은 섹터는 데이터 블록 내의 대응되는 섹터가 유효한 섹터가 될 수 있다.
그리하여, 섹터0(S0)는 데이터 블록에만 존재하는 데이터 블록내 유효한 섹터이므로, 데이터 블록으로부터 새로운 블록에 카피한다(① 참조). 섹터 1부터 섹터 3(S1-S3)은 로그 블록에 존재하므로 로그 블록으로부터 새로운 블록으로 카피한다(② 참조). 로그 블록내 섹터 4부터 섹터 7은 중복된 섹터이므로 최신의 섹터, 즉 가장 마지막 페이지의 섹터들을 참조한다(③ 참조). 이때, 플래시 메모리 특성 상 동일 페이지의 섹터 그룹에 대해서는 카피 백(copy back) 명령 수행이 가능하다. 따라서, 섹터 4부터 섹터 7(S4-S7)은 기 그룹핑된 섹터 그룹, 즉 동일 페이지 버퍼를 이용할 수 있는 섹터 그룹이므로 이는 카피 백한다(③). 섹터 8부터 섹터 9(S8-S9)는 로그 블록에 존재하므로, 로그 블록으로부터 새로운 블록으로 카피한다(④). 섹터 10부터 섹터 11(S10-S11)은 데이터 블록에만 존재하므로, 데이터 블록으로부터 새로운 블록으로 카피한다(⑤)
도 3은 종래 기술에 따른 임의 위치 방식을 이용하여 데이터 머지를 수행한 경우이다.
<실험예 2>
우선, 실험예 1과 동일한 조건, 즉 각각의 데이터 블록과 로그 블록은 64개의 페이지를 포함하고, 각각의 페이지는 4개의 섹터를 포함하는 것으로 예시한다. 데이터 블록의 페이지내 섹터는 메모리 영역(도 1의 150 참조)내 메모리 블록(미도시)의 페이지 버퍼를 이용할 수 있는 소정의 규칙으로 그룹핑된 섹터를 나타낸다.
호스트 인터페이스(도 1의 110 참조)가 i) 첫번째 명령에서 섹터 1부터 섹터 3 의 데이터 라이트, ii) 두번째 명령에서 섹터 4부터 섹터 7의 데이터 라이트, iii) 세번째 명령에서 섹터 8부터 섹터 9의 데이터 라이트, iv) 네번째 명령에서 섹터 4부터 섹터 7의 데이터 라이트를 요청한다.
이와 같이 연속적인 데이터에 대한 라이트 요청이 발생할 경우, 종래 기술에 따른 MCU(도 1의 130 참조)의 로그 블록 할당은 다음과 같다.
첫번째 명령에 따라 로그 블록의 첫번째 페이지 내 섹터 1부터 섹터 3을 순 차적으로 할당하여 데이터를 라이트한다.
두번째 명령에 따라, 이전에 할당된 섹터에 이어서, 섹터 4부터 섹터 7을 순차적으로 할당시켜 데이터를 라이트한다.
세번째 명령에 따라, 이전에 할당된 섹터에 이어서, 섹터 8부터 섹터 9를 순차적으로 할당시켜 데이터를 라이트한다.
네번째 명령에 따라, 이전에 할당된 섹터에 이어서, 섹터 4부터 섹터 7을 순차적으로 할당시켜 데이터를 라이트한다.
이후, 로그 블록이 모두 할당되었거나, 소정 명령에 따라 머지 시점이 되면 데이터 블록과 로그 블록의 내용을 새로운 데이터 블록으로 머지(merge)한다.
이때, 실험예 2, 즉 종래 기술에 따른 머지 과정을 보면, 데이터 블록의 데이터와 로그 블록의 데이터를 각각 카피한다. 우선, 섹터0(S0)는 데이터 블록에만 존재하는 데이터 블록내 유효한 섹터이므로, 데이터 블록으로부터 새로운 블록에 카피한다(① 참조). 섹터 1부터 섹터 3(S1-S3)은 로그 블록에 존재하므로 로그 블록으로부터 새로운 블록으로 카피한다(② 참조). 로그 블록내 섹터 4부터 섹터 7은 중복된 섹터이므로 최신의 섹터, 즉 가장 마지막 페이지의 섹터들을 참조한다. 이때, 그룹핑된 섹터 그룹에서 섹터 7은 다른 페이지에 할당되었으므로, 섹터 4부터 섹터 6에 대해서 카피한다(③ 참조). 다른 페이지의 섹터 7(S7)을 카피한다(④ 참조). 섹터 8부터 섹터 9(S8-S9)는 로그 블록에 존재하므로, 로그 블록으로부터 새로운 블록으로 카피해야 한다. 이 경우, 섹터 8 및 섹터 9는 서로 다른 페이지에 할당되어 있으므로, 연속 카피가 불가하므로 각각 카피를 한다(⑤ 및 ⑥ 참조). 섹 터 10부터 섹터 11(S10-S11)은 데이터 블록에만 존재하므로, 데이터 블록으로부터 새로운 블록으로 카피한다(⑦ 참조)
상술한 바와 같이 본 발명의 일 실시예에 따르면, 제 위치(in-place) 방식과 임의 위치(out-of-place) 방식을 모두 이용함으로써, 섹터 할당시 보다 간단히 제어할 수 있도록 한다. 즉 페이지내 그룹핑된 섹터 순서(또는 위치)별로 섹터를 할당시킴으로써 간단한 카피백 명령을 사용할 수 있다.
상술한 실험예들에 대한 보다 구체적인 설명을 위해, 각각의 실험예에 따른 머지 수행시의 명령어들에 대해 설명하기로 한다.
도 4를 우선 설명하면, 실험예 1에 따른 임의 위치 방식 및 제 위치 방식을 모두 이용하여 데이터 머지시, 수행되는 명령어를 나타낸다.
다시 도 2를 참조하면, 섹터 0(S0)의 새로운 블록으로 카피한다는 것은 실질적으로 섹터 0(S0)의 데이터를 읽고, 이를 새로운 블록에 라이트 하는 것이다. 도 2의 섹터 1부터 섹터 3(S1-S3)의 카피(② 참조)의 연속적인 섹터 카피는, 리드 시작 섹터부터 종료 섹터까지 한번의 리드 명령으로 연속적으로 리드할 수 있으며, 마찬가지로 한번의 라이트 명령으로 연속된 섹터에 대해 연속적으로 라이트 할 수 있다. 섹터 4부터 섹터 7은 메모리 영역(도 1의 150 참조)의 동일 페이지내 그룹핑된 섹터의 조합과 일치하므로, 본 발명에서는 카피 백(copy back) 명령을 이용하여 간단히 카피(③ 참조)할 수 있다. 이하, 섹터 8부터 섹터 9의 카피(④ 참조) 및 섹터 10부터 11의 카피(⑤ 참조)도 연속 리드 명령, 연속 라이트 명령에 의해 각각 카피할 수 있다.
한편, 도 5는 실험예 2에 따른 임의 위치 방식으로 머지시, 수행되는 명령어를 나타낸다.
카피하는 과정은 동일하므로 이에 대한 중복되는 설명은 피하기로 한다. 도 5에 도시된 바와 같이, 실험예 2에서는 카피 백 명령이 사용되지 않음을 알 수 있다. 다시 도 3을 참조하면, 호스트 인터페이스(도 1의 110 참조)의 명령 발생에 따라, 섹터가 순차적으로 할당된다. 그러므로, 라이트 명령시 연속적인 섹터일지라도 동일 페이지에 모두 할당되지 못하고, 다른 페이지에 분할되어 할당될 경우가 발생할 수 있다. 그리하여, 임의 위치 방식으로만 제어되는 로그 블록에서는 카피 백 명령을 수행하기 어려움을 알 수 있다.
도 6은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 제어 방법을 나타낸 플로우 차트이다.
우선, 호스트 인터페이스(도 1의 110 참조)로부터 라이트 명령이 제공된다(S10).
MCU(도 1의 130 참조)는 해당 명령에 따라, 로그 블록내 임의 위치 방식으로 페이지를 할당한 후, 페이지내 그룹핑된 기 설정된 섹터의 위치에 따라 해당 섹터를 제 위치 방식으로 할당한다(S20)
머지 시점인지 여부를 판단(S30)하여, 머지 시점이 될때까지는 로그 블록내 상기의 단계를 계속 반복하여 섹터를 할당하도록 한다. 이후, 로그 블록이 모두 할당되었거나, 소정의 명령에 따라 머지가 수행되어야 할 경우 머지를 수행한다.
이 경우, MCU(도 1의 130 참조)는 머지 대상인 데이터 블록 내 섹터가 유효 한지 판단(S40)한다. 즉, 로그 블록에서는 갱신되지 않은 섹터가 있다면, 데이터 블록내 해당 섹터를 새로운 블록으로 카피(S50)한다. 전술한 바와 같이, 카피라는 개념은 기존 데이터 블록 또는 기존 로그 블록의 해당 섹터에 대해 리드 명령을 수행하여 데이터를 읽어낸 후, 새로운 블록에 라이트하는 것이다.
하지만, 데이터 블록내 섹터가 유효하지 않다면, 로그 블록내 데이터가 저장된 섹터가 존재한다는 의미이므로, 로그 블록내 섹터를 카피할 준비를 한다.
따라서, MCU(도 1의 130 참조)는 로그 블록내 섹터중 중복된 섹터가 있는지(S60) 판단한다. 중복된 섹터가 있다면 최신의 갱신된 섹터를 선택(S70)하여 해당 섹터에 대해 카피 백 명령 수행이 가능한지 여부를 판단(S80)하며, 중복된 섹터가 없다면, 존재하는 섹터에 대해 카피 백 명령 수행 여부를 판단(S80)한다.
그리하여, MCU(도 1의 130 참조)는 카피 백 명령 수행이 가능하면 카피 백을 수행(S90)하여 새로운 블록으로 카피(S50)하나, 카피 백 명령 수행이 가능하지 않으면 노멀의 카피 동작을 통하여 새로운 블록으로 카피(S50)하도록 제어한다.
데이터 블록과 로그 블록으로부터 각각의 카피 동작을 통하여 머지를 수행한 후, 머지가 완료되면(S100), MCU(도 1의 130 참조)는 기존의 로그 블록 및 데이터 블록을 초기화(S110)시킨다.
이와 같이, 본 발명의 일 실시예에 따르면 데이터 머지시, 보다 간단히 머지가 수행되도록 제어할 수 있다. 즉, 명령어 발생 순서에 따라 새로운 페이지를 할당함으로써, 중복되는 명령에 대해서도 섹터가 중복되는 것을 방지할 수 있다. 또한, 낸드 플래시 메모리의 페이지 버퍼를 이용할 수 있는 카피 백 명령을 고려하 여, 페이지 내 섹터를 할당시, 페이지 내 그룹핑된 섹터의 기 설정된 위치대로 할당함으로써, 연속적인 섹터에 대해서는 카피 백 명령을 이용할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 블록도,
도 2는 도 1의 실험예 1에 따른 데이터 머지 과정을 도시한 개념도,
도 3은 종래 기술의 실험예 2에 따른 데이터 머지 과정을 도시한 개념도,
도 4는 도 2에 따른 데이터 머지 수행시의 명령어,
도 5는 도 3에 따른 데이터 머지 수행시의 명령어, 및
도 6은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 제어 방법을 나타낸 플로우 차트이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 호스트 인터페이스 120: 버퍼부
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역

Claims (8)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 외부의 라이트 요청에 따라 로그 블록 내 임의 위치(out-of-place) 방식으로 페이지를 할당하여, 상기 페이지내 그룹핑된 섹터 어드레스에 따라 해당 섹터를 제 위치(in-place) 방식으로 할당하는 단계;
    데이터 머지시, 데이터 블록 내 섹터가 유효하다고 판단되면 상기 데이터 블록 및 상기 로그 블록의 섹터를 외부 버퍼부를 이용하여 머지하는 단계; 및
    데이터 머지시, 상기 데이터 블록 내 섹터가 유효하지 않다고 판단되면 상기 로그 블록의 섹터에 대해 메모리 영역의 페이지 버퍼를 이용하여 머지하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  7. 제 6항에 있어서,
    상기 외부 버퍼부를 이용하는 머지 단계는,
    상기 데이터 블록 및 상기 로그 블록 내 유효한 섹터를 리드한 후, 상기 외부 버퍼부에 라이트하는 반도체 스토리지 시스템의 제어 방법.
  8. 제 6항에 있어서,
    상기 메모리 영역의 페이지 버퍼를 이용하는 머지 단계는,
    상기 메모리 영역내 동일 페이지 내 그룹핑된 섹터와 상기 로그 블록의 연속된 섹터가 일치하면 카피 백(copy back) 명령을 수행하여 상기 페이지 버퍼내 버퍼링하는 반도체 스토리지 시스템의 제어 방법.
KR1020080073019A 2008-07-25 2008-07-25 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 KR101086857B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080073019A KR101086857B1 (ko) 2008-07-25 2008-07-25 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US12/344,756 US20100023676A1 (en) 2008-07-25 2008-12-29 Solid state storage system for data merging and method of controlling the same according to both in-place method and out-of-place method
TW098103987A TW201005520A (en) 2008-07-25 2009-02-06 Solid state storage system for data merging and method of controlling the same according to both in-place method and out-of-place method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080073019A KR101086857B1 (ko) 2008-07-25 2008-07-25 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법

Publications (2)

Publication Number Publication Date
KR20100011698A KR20100011698A (ko) 2010-02-03
KR101086857B1 true KR101086857B1 (ko) 2011-11-25

Family

ID=41569644

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080073019A KR101086857B1 (ko) 2008-07-25 2008-07-25 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법

Country Status (3)

Country Link
US (1) US20100023676A1 (ko)
KR (1) KR101086857B1 (ko)
TW (1) TW201005520A (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
WO2008070814A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a scalable, composite, reconfigurable backplane
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
KR101465789B1 (ko) * 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
CN102696010B (zh) * 2009-09-08 2016-03-23 才智知识产权控股公司(2) 用于将数据高速缓存在固态存储设备上的装置、系统和方法
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
KR101739556B1 (ko) 2010-11-15 2017-05-24 삼성전자주식회사 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법
US20120239860A1 (en) 2010-12-17 2012-09-20 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9092337B2 (en) 2011-01-31 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing eviction of data
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8966191B2 (en) 2011-03-18 2015-02-24 Fusion-Io, Inc. Logical interface for contextual storage
KR101856506B1 (ko) * 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
TWI451249B (zh) * 2011-12-15 2014-09-01 Phison Electronics Corp 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US8782344B2 (en) 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
KR102050725B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
KR102275710B1 (ko) 2015-02-02 2021-07-09 삼성전자주식회사 오버-라이트가 가능한 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10901889B2 (en) * 2018-07-25 2021-01-26 ScaleFlux, Inc. Using hybrid-software/hardware based logical-to-physical address mapping to improve the data write throughput of solid-state data storage devices
WO2020118650A1 (zh) * 2018-12-14 2020-06-18 华为技术有限公司 快速发送写数据准备完成消息的方法、设备和系统
CN110543435B (zh) * 2019-09-05 2022-02-08 北京兆易创新科技股份有限公司 存储单元的混合映射操作方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100684942B1 (ko) * 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법

Also Published As

Publication number Publication date
KR20100011698A (ko) 2010-02-03
TW201005520A (en) 2010-02-01
US20100023676A1 (en) 2010-01-28

Similar Documents

Publication Publication Date Title
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
JP6732684B2 (ja) 情報処理装置、ストレージデバイスおよび情報処理システム
US9128618B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
US8521949B2 (en) Data deleting method and apparatus
US8560759B1 (en) Hybrid drive storing redundant copies of data on disk and in non-volatile semiconductor memory based on read frequency
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
KR101143397B1 (ko) 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
WO2018132396A1 (en) Directed sanitization of memory
JP6007332B2 (ja) ストレージシステム及びデータライト方法
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US10037149B2 (en) Read cache management
EP2665065A2 (en) Electronic device employing flash memory
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
JP2006018839A (ja) 漸進的マージ方法及びそれを利用したメモリシステム
US8862819B2 (en) Log structure array
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US20090094299A1 (en) Apparatus and method for defragmenting files on a hydrid hard disk
JP2010237907A (ja) ストレージ装置および記録方法
JP2007102436A (ja) ストレージ制御装置およびストレージ制御方法
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
JP2018010452A (ja) 記憶装置、情報処理システム、記憶装置の起動方法及びプログラム
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법

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: 20141021

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151020

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171025

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181022

Year of fee payment: 8