KR20150016915A - 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기 - Google Patents

메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기 Download PDF

Info

Publication number
KR20150016915A
KR20150016915A KR1020140100427A KR20140100427A KR20150016915A KR 20150016915 A KR20150016915 A KR 20150016915A KR 1020140100427 A KR1020140100427 A KR 1020140100427A KR 20140100427 A KR20140100427 A KR 20140100427A KR 20150016915 A KR20150016915 A KR 20150016915A
Authority
KR
South Korea
Prior art keywords
data
memory
block
controller
received
Prior art date
Application number
KR1020140100427A
Other languages
English (en)
Other versions
KR101566849B1 (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
Priority claimed from TW102144911A external-priority patent/TWI502591B/zh
Application filed by 실리콘 모션 인코포레이티드 filed Critical 실리콘 모션 인코포레이티드
Publication of KR20150016915A publication Critical patent/KR20150016915A/ko
Application granted granted Critical
Publication of KR101566849B1 publication Critical patent/KR101566849B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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

메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기가 제공되며, 상기 방법은: 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하는 단계 - 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타냄 - ; 및 특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하는 단계를 포함한다.

Description

메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기{METHOD FOR MANAGING MEMORY APPARATUS, ASSOCIATED MEMORY APPARATUS THEREOF AND ASSOCIATED CONTROLLER THEREOF}
본 출원은 2013년 8월 5일에 출원된 미국 가출원 No. 61/862,094의 이점을 주장하며 상기 문헌은 본 명세서에 원용되어 병합된다.
본 발명은 플래시 메모리의 제어에 관한 것이며, 특히 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 제어기에 관한 것이다.
플래시 메모리 기술이 발전함에 따라, 다양한 포터블 메모리 장치(예를 들어, SD/MMC, CF, MS 및 XD 사양을 충족하는 메모리 카드)가 다양한 응용분야에서 폭넓게 실현되고 있다. 그러므로 이러한 포터블 메모리 장치 내의 플래시 메모리의 액세스 제어는 중요한 문제가 되었다.
예를 들어, 흔히 사용되고 있는 NAND 플래시 메모리는 2가지 타입으로 분류될 수 있는데, 단일 레벨 셀(signle level cell: SLC) 플래시 메모리 및 복수 레벨 셀(multiple level cell: MLC) 플래시 메모리이다. SLC 플래시 메모리 내의 메모리 셀에서 사용되는 각각의 트랜지스터는 논리 값 0 및 1을 나타내는 단지 2개의 전하 값만을 가진다. 또한, MLC 플래시 메모리 내의 메모리 셀로서 사용되고 있는 각각의 트랜지스터의 저장 용량은 완전히 사용되고, MLC 플래시 메모리의 트랜지스터는, 다양한 레벨의 전압을 통해 하나의 트랜지스터에 복수의 비트 정보(예를 들어, 00, 01, 11 및 10)를 기록하기 위해, 더 높은 전압에서 구동된다. 이론적으로, MLC 플래시 메모리의 기록 밀도는 SLC 플래시 메모리의 기록 밀도의 2배를 초과할 수 있다. 이것은 NAND 플래시 메모리를 개발하는 데 어려움을 겪는 관련 산업에서는 희소식이다.
SLC 플래시 메모리와 비교해 보면, MLC 플래시 메모리의 제조 비용이 더 저렴하고, MLC 플래시 메모리는 제한된 공간에서 더 많은 용량을 제공할 수 있다. 그러므로 MLC 플래시 메모리가 시중의 다양한 포터블 메모리 장치에 폭넓게 사용되고 있다. 관련 기술에 따르면, 일부 타입의 MLC 플래시 메모리의 동작이 복잡하기 때문에, 종래의 메모리 제어기에서는 MLC 플래시 메모리 내의 일부의 물리 블록을 SLC 메모리 블록으로 구성하여, 호스트 장치로부터의 기록 데이터를 수신한다. 그렇지만, 이렇게 하면 몇 가지 문제가 생긴다. MLC 플래시 메모리 내의 일부의 물리 블록은 SLC 메모리 블록으로서 구성되므로, MLC 메모리 블록으로 사용될 수 있는 MLC 플래시 메모리의 물리 블록의 양이 더 작아진다. 다른 예에 있어서, 종래의 메모리 제어기는 수신된 데이터를 먼저 SLC 메모리 블록에 일시적으로 기록한 다음, SLC 메모리 블록으로부터 MLC 메모리 블록으로 데이터를 수집하는데, 여기서 이러한 SLC 메모리 블록의 저장 공간이 쉽게 소비된다. 그러므로 메모리 제어기의 작업 부하가 많이 증가한다. 따라서, 역효과를 일으키지 않으면서 전반적인 성능을 향상시키기 위해, 플래시 메모리의 데이터 액세스의 제어를 향상시키는 새로운 방법이 요망된다.
따라서, 본 발명의 목적은 메모리 장치 관리 방법, 그 관련 메모리 장치 및 제어기를 제공하여, 전술한 문제를 해결하는 것이다.
본 발명의 다른 목적은 메모리 장치 관리 방법, 그 관련 메모리 장치 및 제어기를 제공하여, 메모리 장치의 동작 성능을 향상시키는 것이다.
본 발명의 적어도 하나의 양호한 실시예에 따라, 메모리 장치 관리 방법이 제공된다. 메모리 장치는 복수의 블록을 각각 포함하는 적어도 하나의 비휘발성(NV) 메모리 소자를 포함한다. 상기 방법은 상기 메모리 장치의 제어기에 적용되며, 상기 제어기는 적어도 하나의 NV 메모리 소자를 제어하는 데 사용된다. 상기 방법은, 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하는 단계 - 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타냄 - ; 및 특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하는 단계를 포함하며, 여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: MLC) 메모리 블록으로서 구성된다.
전술한 방법을 제공하는 것 외에, 본 발명은 적어도 하나의 비휘발성(NV) 메모리 소자 및 제어기를 포함하는 메모리 장치를 제공한다. 적어도 하나의 비휘발성(NV) 메모리 소자 각각은 복수의 블록을 포함한다. 상기 제어기는 적어도 하나의 NV 메모리 소자를 제어하는 데 사용된다. 상기 제어기는 프로세싱 유닛을 포함하며, 상기 프로세싱 유닛은, 상기 프로세싱 유닛에 매립되어 있거나 상기 프로세싱 유닛의 외부로부터 수신되는 프로그램 코드에 따라 상기 메모리 장치를 관리하도록 배치되어 있으며, 상기 제어기는 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하며, 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타낸다.
특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 제어기는, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하며, 여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: MLC) 메모리 블록으로서 구성된다.
상기 방법 및 메모리 장치를 제공하는 것 외에, 본 발명은 메모리 장치의 제어기도 제공한다. 상기 메모리 장치는 복수의 블록을 각각 포함하는 적어도 하나의 비휘발성(NV) 메모리 소자를 포함한다. 상기 제어기는 프로세싱 유닛을 포함한다. 상기 프로세싱 유닛은, 상기 프로세싱 유닛에 매립되어 있거나 상기 프로세싱 유닛의 외부로부터 수신되는 프로그램 코드에 따라 상기 메모리 장치를 관리하도록 배치되어 있으며, 상기 제어기는 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하며, 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타낸다. 특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 제어기는, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하며, 여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: MLC) 메모리 블록으로서 구성된다.
본 발명에서 제공하는 이점은, 종래기술에 비해, 본 발명의 방법, 메모리 장치 및 제어기에서는 많은 SLC 메모리 블록을 필요로 하지 않고 이에 따라 SLC 메모리 블록이 점유하는 저장 공간을 절감하며, 따라서 MLC 메모리 블록을 더 많이 제공한다는 것이다.
본 발명에서 제공하는 다른 이점은, 종래기술에 비해, 본 발명의 방법, 메모리 장치 및 제어기는 역효과(예를 들어, 저장된 데이터의 오류)를 내지 않으면서 전반적인 성능을 향상시킬 수 있다는 것이다. 특히, 본 발명의 방법, 메모리 장치 및 제어기는 수신된 데이터를 전술한 많은 SLC 메모리 블록에 일시적으로 저장한 다음 전술한 SLC 메모리 블록으로부터 MLC 메모리 블록으로 데이터를 수집하는 시간을 단축할 수 있고, 전술한 SLC 메모리 블록을 빈번하게 삭제하는 시간을 단축할 수 있다는 것이다. 그러므로 종래기술에 비해, 본 발명은 더 우수한 성능을 제공한다.
본 발명의 이러한 목적 및 다른 목적은 다양한 도면 및 도해에 설명되어 있는 양호한 실시예에 대한 이하의 상세한 설명을 읽고난 후 당업자에게 자명하게 될 것이다.
도 1은 본 발명의 제1 실시예에 따른 메모리 장치를 도시하는 도면이다.
도 2는 NV 메모리 소자 중 하나에 대한 내용 배열도로서, 상기 NV 메모리 소자는 본 실시예에서 플래시 칩이다.
도 3은 NV 메모리 소자 중 하나의 메모리 소자의 다른 내용 배열도로서, 상기 메모리 소자는 본 실시예에서 플래시 칩이다.
도 4는 본 발명의 실시예에 따른 메모리 장치 관리 방법을 설명하는 흐름도이다.
도 5는 실시예에서 도 4에 도시된 방법에 포함되어 있는 제어 방식에 대한 도면이다.
도 6은 도 5에 도시된 제어 방식의 과정을 설명하는 흐름도이다.
도 7은 다른 실시예에서 도 4에 도시된 방법에 포함되어 있는 다른 제어 방식에 대한 도면이다.
도 8은 다른 실시예에서 도 4에 도시된 방법에 포함되어 있는 다른 제어 방식에 대한 도면이다.
도 9는 다른 실시예에서 도 4에 도시된 방법에 포함되어 있는 다른 제어 방식에 대한 도면이다.
도 10은 다른 실시예에서 도 4에 도시된 방법에 포함되어 있는 다른 제어 방식에 대한 도면이다.
도 1을 참조하며, 도 1은 본 발명의 제1 실시예에 따른 메모리 장치(100)를 도시하는 도면이다. 메모리 장치(100)는 프로세싱 유닛(110), 휘발성 메모리(120), 전송 인터페이스(130), 복수의 비휘발성(NV) 메모리 소자(140_1, 140_2, ..., 140_N)(단, N은 양의 정수를 나타낸다) 및 버스(150)를 포함한다. 통상적인 조건에서, 전송 인터페이스(130)가 호스트 장치(도 1에 도시되지 않음)에 연결된 후, 호스트 장치는 전송 인터페이스(130)를 통해 메모리 장치(100)에 액세스할 수 있다. 예를 들어, 호스트 장치는 랩톱 컴퓨터 또는 데스크톱 컴퓨터와 같은 퍼스널 컴퓨터일 수 있다.
프로세싱 유닛(100)은 그 안에 매립되어 있거나 프로세싱 유닛(110)의 외부로부터 수신되는 프로그램 코드에 따라 메모리 장치(100)를 관리할 수 있다. 예를 들어, 프로그램 코드는 프로세싱 유닛(110) 내에 매립된 하드웨어 코드일 수 있거나, 구체적으로, 리드-온리 메모리 코드(ROM 코드)일 수 있다. 다른 예에서, 프로그램 코드는 프로세싱 유닛(110)의 외측으로부터 수신되는 펌웨어 코드일 수 있다. 구체적으로, 프로세싱 유닛(110)은 휘발성 메모리(120), 전송 인터페이스(130), NV 메모리 소자(140_1, 140_2, ..., 140_N) 및 버스(150)를 제어하는 데 사용된다. 본 실시예에서 프로세싱 유닛(110)은 고급 RISC 머신(Advanced reduced instruction set computer machine: ARM) 프로세서 또는 ARC(Argonaut RISC Core: ARC) 프로세서일 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 본 발명의 변형예에 따르면, 프로세싱 유닛(110)은 다른 유형의 프로세서일 수도 있다.
또한, 휘발성 메모리(120)는, 글로벌 페이지 어드레스 링킹 테이블, 호스트 장치에 의해 액세스되는 데이터, 및 메모리 장치(100)에 액세스하는 데 필요한 그외 정보를 저장하는 데 사용될 수 있다. 본 실시예에서, 휘발성 메모리(120)는 동적 랜덤 액세스 메모리(DRAM)일 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 본 발명의 변형예에 따르면, 휘발성 메모리(120)는 다른 유형의 휘발성 메모리일 수 있다. 예를 들어, 휘발성 메모리(120)는 정적 랜덤 액세스 메모리(SRAM)를 포함할 수 있다.
본 실시예에 따르면, 도 1에 도시된 전송 인터페이스(130)는 호스트 장치와 메모리 장치(100) 간에 커맨드를 전송하는 데 사용되며, 전송 인터페이스(130)는 SATA(serial advanced technology attachment) 규약, PATA(parallel advanced technology attachment) 규약 또는 USB(universal serial bus)와 같은 특정한 통신 규약을 충족한다. 예를 들어, 메모리 장치(100)는 호스트 장치에 배치되어 있는 SSD이고, 특정한 통신 규약은 SATA 또는 PATA 규약과 같이, 호스트 장치에서 내부 통신을 실행하기 위한 통상적인 통신 규약 중 하나일 수 있다. 다른 예에서, 메모리 장치(100)는 호스트 장치의 외부에 배치되어 있는 SSD이고, 특정한 통신 규약은 USB와 같이, 호스트 장치의 외부에서 수행되는 일부의 통상적인 통신 규약을 실행하는 데 사용될 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 본 발명의 변형예에 따르면, 메모리 장치(100)는 메모리 카드와 같은 포터블 메모리 장치일 수 있으며, 특정한 통신은 SD(secure digital) 규약 또는 CF(compact flash) 규약과 같이, 메모리 카드의 입력/출력(I/O) 인터페이스의 일부의 통상적인 통신을 수행하는 데 사용될 수 있다.
또한, NV 메모리 소자(140_1, 140_2, ..., 140_N)는 데이터를 저장하는 데 사용될 수 있으며, 여기서 NV 메모리 소자(140_1, 140_2, ..., 140_N)는 NAND 플래시 칩일 수 있다(그러나 이에 제한되지는 않는다). 버스(150)는 프로세싱 유닛(110), 휘발성 메모리(120), 전송 인터페이스(130), 및 NV 메모리 소자(140_1, 140_2, ..., 140_N)를 연결하는 데 사용되며, 이러한 소자 간의 통신을 수행하는 데 사용된다. 본 실시예에서, 도 1의 구조 내의 모든 소자는 NV 메모리 소자(140_1, 140_2, ..., 140_N)를 제외하곤, 제어기로서 통합될 수 있으며, 특히 제어기 칩과 같은 집적회로(IC)로서 통합될 수 있다. 제어기는 NV 메모리 소자(140_1, 140_2, ..., 140_N)와 같이, 메모리 장치(100) 내의 적어도 하나의 NV 메모리 소자를 제어하는 데 사용되며, 메모리 장치(100)의 제어기로 볼 수 있다.
도 2를 참조하면, 도 2는 NV 메모리 소자(140_1, 140_2, ..., 140_N) 중 NV 메모리 소자(140_N)의 내용 배치를 도시하고 있으며, 여기서 NV 메모리 소자(140_N)는 본 실시예에서 플래시 칩 CHP(n)일 수 있으며, 인덱스 n은 범위 [0, n] 내의 임의의 정수일 수 있다. 도 2에 도시된 바와 같이, 플래시 칩 DNP(n)과 같이, NV 메모리 소자(140_1, 140_2, ..., 140_N)의 각각의 NV 메모리 소자는 블록 BLK(0), BLK(1), BLK(2), ..., BLK(M)과 같은 복수의 블록을 포함할 수 있으며(단, 기호 M은 양의 정수를 나타낸다), 여기서 각각의 블록은 복수의 섹터를 각각 포함하는 복수의 페이지를 포함한다. 본 실시예에서, 하나의 섹터는 최소의 판독 단위일 수 있다. 환언하면, 하나의 판독 동작 동안, 프로세싱 유닛(110)은 하나의 섹터 또는 복수의 섹터를 판독할 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다.
도 2에 도시된 바와 같이, 플래시 칩 CHP(n)과 같은 NV 메모리 소자(140_n) 내의 블록(예를 들어, 블록 BLK(0))은 단일 레벨 셀(SLC) 메모리 블록으로서 구성되고, 블록 BLK(0)과 같은 블록은 워드-라인 WL0, WL1, WL2, ..., WL63에 각각 대응하는 페이지, Page(0), Page(1), Page(2), ..., Page(0)와 같이, 사전설정된 페이지 수를 포함하고, 여기서 Page(0)와 같은 각각의 페이지는 복수의 섹터 SEC(0), SEC(1), SEC(2), ..., SEC(3)를 포함할 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 도 3에 도시된 실시예와 같이, 본 실시예의 변형예에 따르면, NV 메모리 소자(140_n)(예를 들어, 플래시 칩 CHP(n)) 내의 블록(예를 들어, 블록 BLK(0))이 복수 레벨 셀(MLC) 메모리 블록(예를 들어, 3중 레벨 셀(triple level cell: TLC) 메모리 블록)으로서 구성되는 상황 하에서, 블록(예를 들어, BLK(0))은 복수 세트의 페이지 {Page(0), Page(1), Page(2)}, {Page(3), Page(3), Page(3)}, {Page(6), Page(7), Page(8)}, ..., {Page(189), Page(190), Page(191)}와 같이, 사전설정된 페이지 수를 포함하고, 여기서 Page(0)와 같은 각각의 페이지는 섹터 SEC(0), SEC(1), SEC(2), 및 SEC(3)를 포함할 수 있다.
적어도 NV 메모리 소자 내의 임의의 블록의 각각의 메모리 셀의 저장 용량은 1비트보다 크고, 제어기는 이 블록을 하나의 메모리 셀에 하나의 비트를 저장하는 SLC 메모리 블록 또는 하나의 메모리 셀에 복수의 비트를 저장하는 MLC 메모리 셀로서 기능하도록 선택적으로 구성할 수 있다.
도 4를 참조하면, 도 4는 본 발명의 실시예에 따른 메모리 장치 관리 방법(200)을 도시하는 흐름도이다. 방법(200)은 도 1에 도시된 메모리 장치(100)에 적용될 수 있고, 특히 전술한 제어기(예를 들어, 프로세싱 유닛(110)을 통해 전술한 프로그램 코드를 실행하는 메모리 제어기)에 적용될 수 있으며, 전술한 프로그램 코드를 실행하는 제어기는 도 1에 도시된 NV 메모리 소자(140_1, 140_2, ..., 140_N)와 같이 전술한 적어도 하나의 NV 메모리 소자를 제어하는 데 사용된다. 방법에 대해서는 이하에 설명한다.
단계 210에서, 제어기는 호스트 장치로부터 수신된 데이터를 제어기 내의 휘발성 메모리(120)에 일시적으로 저장하여 상기 휘발성 메모리(120) 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하며, 여기서 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타낸다. 예를 들어, 수신된 데이터 중 일부의 데이터의 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하면, 제어기는 그 일부의 데이터를 적어도 하나의 NV 메모리 소자에 즉시 기록하며, 구체적으로 종래기술에서 설명된 바와 같이 많은 SLC 메모리 블록 내의 하나 이상의 SLC 메모리 블록에 그 수신된 데이터를 일시적으로 기록하는 대신, 적어도 하나의 MLC 메모리 블록에 기록한다. 그러므로 제어기는 전술한 많은 SLC 메모리 블록을 사용할 필요가 없으며, 따라서 종래기술의 문제를 회피한다.
단계 220에서, 특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록(예를 들어, 도 3에 도시된 바와 같이, 192개의 페이지 Page(0), Page(1), ..., Page(192)를 가지는 블록)이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 제어기는 그 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 직접적으로 기록하며, 여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: SLC) 메모리 블록(예를 들어, 도 2에 도시된 바와 같이, 64개의 페이지 Page(0), Page(1), ..., Page(63)를 가지는 블록)으로서 구성된다. 본 실시예의 변형예에 따르면, 상기 특정한 신호는 전원-끄기 커맨드 및 전원 검출 신호 중 적어도 하나(예를 들어, 다음과 같은 조합 중 하나: 전원-끄기 커맨드; 전원 검출 신호; 및 전원-끄기 커맨드 및 전원 검출 신호)를 포함하며, 상기 전원 검출 신호는 전원 손실 발생 및 전원 다운(power down) 발생 중 적어도 하나를 나타내는 데 사용된다. 전원-끄기 커맨드의 예는 호스트 장치에서 발생되는 "클리어 캐시" 커맨드를 포함한다(그러나 이에 제한되지 않는다).
실제로, 특정한 NV 메모리 소자는 도 3에 도시된 실시예에서의 플래시 칩 CHP(n)일 수 있고, 특정한 블록은 블록 BLK(m)과 같이 블록{BLK(0), BLK(1), BLK(2), .., BLK(m)} 중 하나의 블록일 수 있으며, 인덱스 m은 범위 [0, M] 내의 임의의 정수를 나타낼 수 있다. 구체적으로, 다른 블록은 BLK(m')과 같이, 특정한 블록이 아닌 임의의 블록일 수 있으며, 인덱스 m은 범위 [0, M] 내의 임의의 가능한 정수를 나타낼 수 있다. 예를 들어, 다른 블록 및 특정한 블록은 동일한 플래시 칩 내에 위치할 수 있으며, 여기서 인덱스 m'은 인덱스 m과 같지 않다. 다른 예에서, 다른 블록 및 특정한 블록은 다른 칩에 위치할 수 있으며, 여기서 인덱스 m'은 범위 [0, M] 내의 임의의 정수일 수 있다.
본 실시예에 따르면, 특정한 블록 내의 메모리 셀이 복수의 비트를 저장하는 데 사용되는 상황 하에서, 복수의 비트를 메모리 셀에 사전설정된 횟수 PDNT_WR로 반복적으로 기록해야 하고, 이에 따라 복수의 비트의 각각의 비트는 추가의 판독을 위해 메모리 셀에 정확하게 저장된다. 실제로, 휘발성 메모리(120)의 저장 용량은 사전설정된 데이터량 임계값 PDDA_TH와 사전설정된 횟수 PDNT_WR의 적(product)(즉, PDDA_TH*PDNT_WR)보다 크거나 같으며, 이에 따라, 수신된 데이터 중 적어도 일부를 메모리 셀의 반복된 기록 동작에 사용할 수 있다. 예를 들어, 일부의 유형의 MLC 플래시 메모리와 관련해서, 특정한 블록이 TLC 메모리 블록으로서 구성되고, 사전설정된 횟수 PDNT_WR은 3과 같을 수 있으며, 사전설정된 데이터량 임계값 PDDA_TH는 특정한 NV 메모리 셀 내의 워드-라인에 속하는 한 세트의 메모리 셀의 저장 용량과 같을 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다.
본 실시예에서, 제어기는 수신된 데이터를 특정한 블록에 수회 직접적으로 기록하여, 사용자 데이터가 오류 없음이 되도록 보장한다는 것에 주목하라. 구체적으로, 제어기의 제어 하에, 수신된 데이터가 특정한 블록에 기록되는 횟수는 사전설정된 횟수 PDNT_WR에 도달할 것이고, 이에 따라 특정한 블록 내의 특정한 워드-라인에 속하는 특정한 세트의 메모리 셀은 NV 메모리 소자에 정확하게 프로그램되며, 이에 따라 수신된 데이터의 각각의 비트는 추가의 판독을 위해 특정한 세트의 메모리 셀에 정확하게 저장된다.
본 실시예의 변형예에 따르면, 제어기는 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)}, ...를 각각 수신하고, 상기 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)}, ...를 휘발성 메모리(120)에 일시적으로 저장하며, 각각의 복수 세트의 데이터는 복수의 페이지를 포함하고, 각각의 복수 세트의 데이터의 데이터량은 사전설정된 데이터량 임계값 PDDA_TH와 같다. 구체적으로, 제어기는 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)}를 특정한 블록에 각각 직접적으로 기록하기 위해, 전술한 적어도 한 세트의 데이터를 휘발성 메모리(120)로부터 각각 판독하고, 여기서 전술한 적어도 한 세트의 데이터가 특정한 블록에 기록되는 횟수는 사전설정된 횟수 PDNT_WR에 아직 도달하지 않았으며, 단계 220에서 설명된 특정한 데이터는 전술한 적어도 한 세트의 데이터를 포함한다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 본 발명의 일부의 변형예에 따르면, 제어기는 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)}, ...를 휘발성 메모리(120)로부터 판독하여 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)} 중 제1 세트의 데이터 {Data(0), Data(1), Data(2)}를 특정한 블록에 수회 직접적으로 기록하며, 여기서 제1 세트의 데이터 {Data(0), Data(1), Data(2)}를 특정한 블록에 기록하는 횟수는 사전설정된 횟수 PDNT-WR에 도달하며, 이에 따라 특정한 블록 내의 특정한 워드-라인에 속하는 특정한 세트의 메모리 셀은 특정한 NV 메모리 소자에 정확하게 프로그램되며, 따라서 제1 세트의 데이터 {Data(0), Data(1), Data(2)}의 각각의 비트는 추가의 판독을 위해 특정한 세트의 메모리 셀에 정확하게 저장된다.
본 발명의 일부의 변형예에 따르면, 제어기는 페이지 단위로 적용하여, 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)} 중 적어도 한 세트의 데이터의 적어도 하나의 페이지(예를 들어, 하나 또는 복수의 페이지)를 수신하고, 전술한 적어도 하나의 페이지를 휘발성 메모리(120)에 일시적으로 저장할 수 있으며, 특정한 데이터는 상기 한 세트의 데이터의 적어도 하나의 페이지를 포함하며, 상기 한 세트의 데이터의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하기 전에, 상기 한 세트의 데이터는 특정한 블록에 기록되지 않는다. 특정한 신호가 알려준 긴급상황(예를 들어, 전원이 비이상적이거나 또는 메모리 장치(100)가 전원이 꺼지려는 상황)이 무시되면, 제어기는 전술한 적어도 하나의 페이지를 다른 블록으로부터 판독할 수 있고, 상기 다른 블록으로부터 판독된 전술한 적어도 하나의 페이지를 특정한 블록을 기록하기 위해 휘발성 메모리(120)에 일시적으로 저장한다. 이 방법에서, 제어기는 휘발성 메모리(120)에 저장된 최신 정보가 전술한 긴급상황이 발생했을 때의 휘발성 메모리에 저장된 정보와 동일한 것으로 확신할 수 있다. 그러므로 제어기는 전술한 긴급상황에 관계없이 정상적으로 동작할 수 있다.
구체적으로, 상기 한 세트의 데이터가 완전하게 수신되지 않은 상황 하에서(예를 들어, 전술한 한 세트의 데이터의 적어도 하나의 페이지의 데이터량이 상기 한 세트의 데이터의 데이터량보다 작다), 상기 한 세트의 데이터의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하기 전에(즉, 본 실시예에서, 상기 한 세트의 데이터는 이제 완전하게 수신된다), 제어기는 페이지 단위로 적용하여 상기 한 세트의 데이터의 적어도 하나의 다른 페이지(예를 들어, 하나의 다른 페이지 또는 복수의 다른 페이지)를 호스트 디바이스로부터 수신하고, 전술한 한 세트의 데이터의 적어도 하나의 다른 페이지를 휘발성 메모리(120)에 일시적으로 저장할 수 있으며, 제어기는 상기 한 세트의 데이터 중 적어도 일부를 휘발성 메모리(120)로부터 판독하여 상기 한 세트의 데이터를 특정한 블록에 직접적으로 기록할 수 있다.
또한, 상기 한 세트의 데이터가 완전하게 수신되는 상황 하에서(예를 들어, 전술한 한 세트의 데이터의 적어도 하나의 페이지의 데이터량이 상기 한 세트의 데이터의 데이터량과 같거나; 전술한 한 세트의 데이터의 적어도 하나의 페이지의 데이터량이 상기 한 세트의 데이터의 데이터량보다 작고, 상기 제어기는 전술한 한 세트의 데이터의 적어도 하나의 다른 페이지를 더 수신한다), 제어기는 페이지 단위로 적용하여, 복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)} 중 다른 세트의 데이터를 호스트 장치로부터 수신하고, 상기 다른 세트의 데이터의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달할 때까지, 상기 다른 세트의 데이터를 휘발성 메모리(120)에 일시적으로 저장하며, 여기서 상기 다른 세트의 데이터의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하기 전에, 상기 다른 세트의 데이터는 특정한 블록에 기록되지 않는다. 상기 다른 세트의 데이터의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하면, 제어기는 상기 다른 세트의 데이터 중 적어도 일부를 휘발성 메모리(120)로부터 판독하여 상기 다른 세트의 데이터를 특정한 블록에 직접적으로 기록하며, 상기 다른 세트의 데이터를 특정한 블록에 다시 직접적으로 기록한다. 그러므로 상기 다른 세트의 데이터를 특정한 블록에 수회 직접적으로 기록함으로써, 상기 다른 세트의 데이터의 임의의 페이지의 각각의 비트가 추가의 판독을 위해 특정한 블록에 정확하게 저장된다.
도 5를 참조하면, 도 5는 실시예에서 도 4에 도시된 방법에 포함되어 있는 제어 방식을 도시하고, 여기서, 각각의 데이터 Data(0), Data(1), Data(2), Data(3), Data(4), Data(5), {Data(6), ...는 하나의 페이지일 수 있다. 예를 들어, 하나의 페이지의 크기는 16 킬로바이트(KB)일 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다.
본 실시예에서, 제어기는 페이지 단위로 적용하여, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}를 수신하고, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}를 휘발성 메모리(120)에 일시적으로 저장할 수 있으며, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하기 전에, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}는 특정한 블록에 기록되지 않는다. 실제로, 한 세트의 데이터(복수 세트의 데이터 {Data(0), Data(1), Data(2)}, {Data(3), Data(4), Data(5)}, {Data(6), Data(7), Data(8)} 중 한 세트의 데이터)의 총 수신된 데이터량은 휘발성 메모리(120)에 이미 일시적으로 저장되어 있는 본 세트의 데이터의 데이터량일 수 있다. 그렇지만, 이것은 단지 예시적인 목적에 지나지 않으며, 본 발명에 대한 제한이 아니다. 도 5에 도시된 바와 같이, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}의 총 수신된 데이터량이 사전설정된 데이터량 임계값 PDDA_TH에 도달하면, 제어기는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 중 적어도 일부를 휘발성 메모리(120)로부터 판독하여, 제1 세트의 데이터 {Data(0), Data(1), Data(2)}를 블록 BLK(m)과 같은 특정한 블록에 직접적으로 기록한다. 마찬가지로, 제어기는 제2 세트의 데이터 {Data(3), Data(4), Data(5)}에 대해 유사한 동작을 수행한다.
본 실시예에서, 특정한 데이터는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 제2 세트의 데이터 {Data(3), Data(4), Data(5)}를 포함한다는 것에 주목하라. 특정한 신호가 알려준 긴급상황이 발생할 때, 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 제2 세트의 데이터 {Data(3), Data(4), Data(5)}가 특정한 블록에 기록되는 횟수가 사전설정된 횟수 PDNT_WR에 아직 도달하지 않았으므로, 제어기는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 제2 세트의 데이터 {Data(3), Data(4), Data(5)}를 블록 BLK(m')과 같은 다른 블록에 즉시 기록하며, 특히 블록 BLK(m') 내의 일부의 페이지 Page(0), Page(1), Page(2), Page(3), Page(4), 및 Page(5)에 각각 기록한다.
도 6을 참조하면, 도 6은 다른 실시예에서 도 4에 도시된 방법(200)에 포함되어 있는 제어 방식을 도시하고, 여기서, 각각의 데이터 Data(0), Data(1), Data(2), Data(3), Data(4), Data(5), {Data(6), ...는 하나의 페이지일 수 있다. 예를 들어, 제어기는 도 5의 실시예에서의 동작을 수행하였다. 본 실시예에 따르면, 특정한 신호가 알려준 긴급상황이 무시되면, 제어기는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 제2 세트의 데이터 {Data(3), Data(4), Data(5)}를 다른 블록으로부터 판독하고, 다른 블록으로부터 판독된 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 제2 세트의 데이터 {Data(3), Data(4), Data(5)}를 특정한 블록을 기록하기 위해 휘발성 메모리(120)에 일시적으로 기록한다.
도 7을 참조하면, 도 7은 다른 실시예에서 도 4에 도시된 방법(200)에 포함되어 있는 제어 방식을 도시한다. 도 5의 실시예와 비교하면, 본 실시예에서의 특정한 데이터는 제1 세트의 데이터 {Data(0), Data(1), Data(2)}, 제2 세트의 데이터 {Data(3), Data(4), Data(5)} 및 데이터 Data(6)를 포함한다. Data(6)는 제3 세트의 데이터{Data(6), Data(7), Data(8)} 내의 전술한 적어도 하나의 페이지와 같이, 전술한 세트의 데이터 중 전술한 적어도 하나의 페이지로 볼 수 있다. 본 실시예 및 이전에 설명된 실시예/변형예에서의 유사한 부분은 간략화를 위해 여기서 생략한다.
도 8을 참조하면, 도 8은 다른 실시예에서 도 4에 도시된 방법(200)에 포함되어 있는 제어 방식을 도시한다. 도 5의 실시예와 비교하면, 본 실시예에서의 특정한 데이터는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 및 데이터 Data(3) 및 Data(4)를 포함한다. 데이터 Data(3) 및 Data(4)는 제2 세트의 데이터 {Data(3), Data(4), Data(5)} 내의 전술한 적어도 하나의 페이지와 같이, 전술한 세트의 데이터 중 전술한 적어도 하나의 페이지로 볼 수 있다. 본 실시예 및 이전에 설명된 실시예/변형예에서의 유사한 부분은 간략화를 위해 여기서 생략한다.
도 9를 참조하면, 도 9는 다른 실시예에서 도 4에 도시된 방법(200)에 포함되어 있는 제어 방식을 도시한다. 도 5의 실시예와 비교하면, 본 실시예에서의 특정한 데이터는 데이터 Data(0)을 포함한다. Data(0)는 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 내의 전술한 적어도 하나의 페이지와 같이, 전술한 세트의 데이터 중 전술한 적어도 하나의 페이지로 볼 수 있다. 본 실시예 및 이전에 설명된 실시예/변형예에서의 유사한 부분은 간략화를 위해 여기서 생략한다.
도 10을 참조하면, 도 10은 다른 실시예에서 도 4에 도시된 방법(200)에 포함되어 있는 제어 방식을 도시한다. 도 5의 실시예와 비교하면, 본 실시예에서의 특정한 데이터는 데이터 Data(0) 및 데이터 Data(1)을 포함한다. Data(0) 및 Data(1)은 제1 세트의 데이터 {Data(0), Data(1), Data(2)} 내의 전술한 적어도 하나의 페이지와 같이, 전술한 세트의 데이터 중 전술한 적어도 하나의 페이지로 볼 수 있다. 본 실시예 및 이전에 설명된 실시예/변형예에서의 유사한 부분은 간략화를 위해 여기서 생략한다.
당업자라면 장치 및 방법의 다양한 변형 및 대안은 본 발명의 지침을 유지하면서 이루어질 수 있다는 것을 쉽게 이해할 수 있을 것이다. 따라서, 전술한 설명은 첨부된 특허청구범위의 범위 내에서만 제한되는 것으로 파악되어야 한다.

Claims (20)

  1. 메모리 장치 관리 방법에 있어서,
    메모리 장치는 복수의 블록을 각각 포함하는 적어도 하나의 비휘발성(NV) 메모리 소자를 포함하고, 상기 방법은 상기 메모리 장치의 제어기에 적용되며, 상기 제어기는 적어도 하나의 NV 메모리 소자를 제어하도록 배치되며, 상기 방법은,
    호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하는 단계 - 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타냄 - ; 및
    특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하며, 여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치(100)가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: SLC) 메모리 블록으로서 구성되는, 메모리 장치 관리 방법.
  2. 제1항에 있어서,
    상기 특정한 블록 내의 메모리 셀을 사용하여 복수의 비트를 저장하는 상황 하에서, 상기 복수의 비트는 상기 메모리 셀에 사전설정된 횟수로 반복적으로 기록되어야 하며, 이에 따라 상기 메모리 셀은 상기 특정한 NV 메모리 소자에 정확하게 프로그램되며, 따라서 상기 복수의 비트 각각은 추가의 판독을 위해 상기
    메모리 셀에 정확하게 저장되는, 메모리 장치 관리 방법.
  3. 제2항에 있어서,
    상기 수신된 데이터 중 일부의 데이터의 데이터량이 사전설정된 데이터량 임계값에 도달하면, 상기 일부의 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록하는 단계
    를 더 포함하며,
    여기서, 상기 수신된 데이터 중 적어도 일부가 상기 메모리 셀의 반복된 기록 동작에 사용될 수 있도록 하기 위해, 상기 휘발성 메모리의 저장 용량은 상기 사전설정된 데이터량 임계값과 상기 사전설정된 횟수의 적(product)보다 크거나 같은, 메모리 장치 관리 방법.
  4. 제3항에 있어서,
    상기 사전설정된 데이터량 임계값은 상기 특정한 NV 메모리 소자 내의 워드-라인(word-line)에 속하는 한 세트의 메모리 셀의 저장 용량과 같은, 메모리 장치 관리 방법.
  5. 제4항에 있어서,
    상기 복수의 블록 중 임의의 블록은 사전설정된 수의 페이지를 포함하며;
    상기 호스트 장치로부터 복수 세트의 데이터를 각각 수신하고, 상기 복수 세트의 데이터를 상기 휘발성 메모리에 일시적으로 저장하는 단계 - 상기 각각의 복수 세트의 데이터는 복수의 페이지를 포함하고, 각각의 복수 세트의 데이터의 데이터량은 상기 사전설정된 데이터량 임계값과 같음 - ; 및
    상기 복수 세트의 데이터 중 적어도 한 세트의 데이터를 상기 휘발성 메모리로부터 판독하여 상기 적어도 한 세트의 데이터를 상기 특정한 블록에 직접적으로 기록하는 단계
    를 더 포함하며,
    여기서 상기 적어도 한 세트의 데이터가 상기 특정한 블록에 기록되는 횟수는 사전설정된 횟수에 아직 도달하지 않았으며,
    상기 특정한 데이터는 상기 적어도 한 세트의 데이터를 포함하는, 메모리 장치 관리 방법.
  6. 제2항에 있어서,
    상기 복수의 블록 중 임의의 블록은 사전설정된 수의 페이지를 포함하고;
    상기 호스트 장치로부터 복수의 페이지를 포함하는 한 세트의 데이터의 적어도 하나의 페이지를 페이지 단위(page-by-page manner)로 각각 수신하고, 상기 한 세트의 데이터의 적어도 하나의 페이지를 상기 휘발성 메모리에 일시적으로 저장하는 단계 - 상기 특정한 데이터는 상기 한 세트의 데이터의 적어도 하나의 페이지를 포함하고, 상기 한 세트의 데이터의 총 수신된 데이터량이 상기 사전설정된 데이터량 임계값에 도달하기 전에, 상기 한 세트의 데이터는 상기 특정한 블록에 기록되지 않음 - ; 및
    상기 한 세트의 데이터의 적어도 하나의 페이지를 다른 블록으로부터 판독하고, 상기 다른 블록으로부터 판독된 상기 적어도 하나의 페이지를, 상기 특정한 블록을 기록하기 위해, 상기 휘발성 메모리에 일시적으로 저장하는 단계
    를 더 포함하는 메모리 장치 관리 방법.
  7. 제6항에 있어서,
    상기 호스트 장치로부터 상기 한 세트의 데이터의 하나의 다른 페이지를 페이지 단위로 각각 수신하고, 상기 적어도 하나의 다른 페이지를 상기 휘발성 메모리에 일시적으로 저장하는 단계; 및
    상기 한 세트의 데이터의 총 수신된 데이터량이 상기 사전설정된 데이터량 임계값에 도달하면, 상기 한 세트의 데이터의 적어도 일부를 상기 휘발성 메모리로부터 판독하여 상기 한 세트의 데이터를 상기 특정한 블록에 직접적으로 기록하며, 상기 특정한 블록에 제1 세트의 데이터를 2회째 직접적으로 기록하는 단계
    를 더 포함하는 메모리 장치 관리 방법.
  8. 제6항에 있어서,
    복수의 페이지를 포함하는 다른 세트의 데이터의 총 수신된 데이터량이 상기 사전설정된 데이터량 임계값에 도달할 때까지, 상기 호스트 장치로부터 상기 다른 세트의 데이터를 페이지 단위로 각각 수신하고, 상기 다른 세트의 데이터를 상기 휘발성 메모리에 일시적으로 저장하는 단계 - 상기 다른 세트의 데이터의 총 수신된 데이터량이 상기 사전설정된 데이터량 임계값에 도달하기 전에, 상기 다른 세트의 데이터는 상기 특정한 블록에 기록되지 않음 - ; 및
    상기 다른 세트의 데이터의 총 수신된 데이터량이 상기 사전설정된 데이터량 임계값에 도달하면, 상기 다른 세트의 데이터의 적어도 일부를 상기 휘발성 메모리로부터 판독하여 상기 다른 세트의 데이터를 상기 특정한 블록에 직접적으로 기록하며, 상기 다른 세트의 데이터를 상기 특정한 블록에 다시 직접적으로 기록하는 단계
    를 더 포함하며,
    상기 다른 세트의 데이터를 상기 특정한 블록에 수회 직접적으로 기록함으로써, 상기 다른 세트의 데이터의 임의의 페이지의 각각의 비트의 데이터가 추가의 판독을 위해 상기 특정한 블록에 정확하게 저장되는, 메모리 장치 관리 방법.
  9. 제1항에 있어서,
    상기 특정한 신호는 전원-끄기 커맨드 및 전원 검출 신호 중 적어도 하나를 포함하며, 상기 전원 검출 신호는 전원 손실 발생 및 전원 다운(power down) 발생 중 적어도 하나를 나타내는 데 사용되는, 메모리 장치 관리 방법.
  10. 제1항에 있어서,
    상기 적어도 하나의 NV 메모리 소자 내의 임의의 블록의 각각의 메모리 셀의 저장 용량은 1비트보다 큰, 메모리 장치 관리 방법.
  11. 메모리 장치에 있어서,
    복수의 블록을 각각 포함하는 적어도 하나의 비휘발성(NV) 메모리 소자; 및
    상기 적어도 하나의 비휘발성(NV) 메모리 소자를 제어하도록 배치되어 있고 프로세싱 유닛을 포함하는 제어기
    를 포함하며,
    상기 프로세싱 유닛은, 상기 프로세싱 유닛에 매립되어 있거나 상기 프로세싱 유닛의 외부로부터 수신되는 프로그램 코드에 따라 상기 메모리 장치를 관리하도록 배치되어 있으며,
    상기 제어기는 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하며, 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타내며; 그리고
    특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 제어기는, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하며,
    여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: MLC) 메모리 블록으로서 구성되는, 메모리 장치.
  12. 제11항에 있어서,
    상기 특정한 블록 내의 메모리 셀을 사용하여 복수의 비트를 저장하는 상황 하에서, 상기 복수의 비트는 상기 메모리 셀에 사전설정된 횟수로 반복적으로 기록되어야 하며, 이에 따라 상기 메모리 셀은 상기 특정한 NV 메모리 소자에 정확하게 프로그램되며, 따라서 상기 복수의 비트 각각은 추가의 판독을 위해 상기 메모리 셀에 정확하게 저장되는, 메모리 장치.
  13. 제12항에 있어서,
    상기 수신된 데이터 중 일부의 데이터의 데이터량이 사전설정된 데이터량 임계값에 도달하면, 상기 제어기는 상기 일부의 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록하며; 그리고
    상기 수신된 데이터 중 적어도 일부가 상기 메모리 셀의 반복된 기록 동작에 사용될 수 있도록 하기 위해, 상기 휘발성 메모리의 저장 용량은 상기 사전설정된 데이터량 임계값과 상기 사전설정된 횟수의 적보다 크거나 같은, 메모리 장치.
  14. 제13항에 있어서,
    상기 사전설정된 데이터량 임계값은 상기 특정한 NV 메모리 소자 내의 워드-라인에 속하는 한 세트의 메모리 셀의 저장 용량과 같은, 메모리 장치.
  15. 제14항에 있어서,
    상기 복수의 블록 중 임의의 블록은 사전설정된 수의 페이지를 포함하며;
    상기 제어기는 상기 호스트 장치로부터 복수 세트의 데이터를 각각 수신하고, 상기 복수 세트의 데이터를 상기 휘발성 메모리에 일시적으로 저장하며, 여기서 상기 각각의 복수 세트의 데이터는 복수의 페이지를 포함하고, 각각의 복수 세트의 데이터의 데이터량은 상기 사전설정된 데이터량 임계값과 같으며; 상기 제어기는 상기 복수 세트의 데이터 중 적어도 한 세트의 데이터를 상기 휘발성 메모리로부터 판독하여 상기 적어도 한 세트의 데이터를 상기 특정한 블록에 직접적으로 기록하며, 여기서 상기 적어도 한 세트의 데이터가 상기 특정한 블록에 기록되는 횟수는 사전설정된 횟수에 아직 도달하지 않았으며, 상기 특정한 데이터는 상기 적어도 한 세트의 데이터를 포함하는, 메모리 장치.
  16. 메모리 장치의 제어기에 있어서,
    상기 메모리 장치는 복수의 블록을 각각 포함하는 적어도 하나의 비휘발성(NV) 메모리 소자를 포함하고, 상기 제어기는 프로세싱 유닛을 포함하며, 상기 프로세싱 유닛은, 상기 프로세싱 유닛에 매립되어 있거나 상기 프로세싱 유닛의 외부로부터 수신되는 프로그램 코드에 따라 상기 메모리 장치를 관리하도록 배치되어 있으며, 상기 제어기는 호스트 장치로부터 수신되는 데이터를 상기 제어기 내의 휘발성 메모리에 일시적으로 저장하고 상기 휘발성 메모리 내의 데이터를 수신된 데이터로서 활용하며, 상기 수신된 데이터의 데이터량을 동적으로 모니터링하여 상기 수신된 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록할 것인지를 판단하며, 상기 호스트 장치로부터 수신되는 적어도 하나의 기록 커맨드는 상기 호스트 장치가 데이터를 기록하는 것을 요구하는 것을 나타내며; 그리고
    특정한 신호가 수신되고 상기 적어도 하나의 NV 메모리 소자의 특정한 NV 메모리 소자 내의 복수 레벨 셀(Mlutiple Level Cell: MLC) 메모리 블록이 되도록 구성되어 있는 특정한 블록 내의 동일한 위치에 사전설정된 횟수 동안 기록되지 않은 특정한 데이터가 상기 수신된 데이터에 존재하는 것으로 검출되면, 상기 제어기는, 상기 특정한 데이터가 손실되지 않도록 하기 위해, 상기 특정한 데이터를 상기 적어도 하나의 NV 메모리 소자 내의 다른 블록에 즉시 기록하며,
    여기서, 상기 특정한 신호는 상기 제어기의 전력이 비정상적이거나 상기 메모리 장치가 전원이 꺼지는 것을 나타내고, 상기 사전설정된 횟수는 1보다 크며, 상기 다른 블록은 단일 레벨 셀(Single Level Cell: MLC) 메모리 블록으로서 구성되는, 메모리 장치의 제어기.
  17. 제16항에 있어서,
    상기 특정한 블록 내의 메모리 셀을 사용하여 복수의 비트를 저장하는 상황 하에서, 상기 복수의 비트는 상기 메모리 셀에 사전설정된 횟수로 반복적으로 기록되어야 하며, 이에 따라 상기 메모리 셀은 상기 특정한 NV 메모리 소자에 정확하게 프로그램되며, 따라서 상기 복수의 비트 각각은 추가의 판독을 위해 상기 메모리 셀에 정확하게 저장되는, 메모리 장치의 제어기.
  18. 제17항에 있어서,
    상기 수신된 데이터 중 일부의 데이터의 데이터량이 사전설정된 데이터량 임계값에 도달하면, 상기 제어기는 상기 일부의 데이터를 상기 적어도 하나의 NV 메모리 소자에 즉시 기록하며; 그리고
    상기 수신된 데이터 중 적어도 일부가 상기 메모리 셀의 반복된 기록 동작에 사용될 수 있도록 하기 위해, 상기 휘발성 메모리의 저장 용량은 상기 사전설정된 데이터량 임계값과 상기 사전설정된 횟수의 적보다 크거나 같은, 메모리 장치의 제어기.
  19. 제18항에 있어서,
    상기 사전설정된 데이터량 임계값은 상기 특정한 NV 메모리 소자 내의 워드-라인에 속하는 한 세트의 메모리 셀의 저장 용량과 같은, 메모리 장치의 제어기.
  20. 제19항에 있어서,
    상기 복수의 블록 중 임의의 블록은 사전설정된 수의 페이지를 포함하며;
    상기 제어기는, 상기 호스트 장치로부터 복수 세트의 데이터를 각각 수신하고, 상기 복수 세트의 데이터를 상기 휘발성 메모리에 일시적으로 저장하며, 상기 각각의 복수 세트의 데이터는 복수의 페이지를 포함하고, 각각의 복수 세트의 데이터의 데이터량은 상기 사전설정된 데이터량 임계값과 같으며; 상기 제어기는 상기 복수 세트의 데이터 중 적어도 한 세트의 데이터를 상기 휘발성 메모리로부터 판독하여 상기 적어도 한 세트의 데이터를 상기 특정한 블록에 직접적으로 기록하며, 여기서 상기 적어도 한 세트의 데이터가 상기 특정한 블록에 기록되는 횟수는 사전설정된 횟수에 아직 도달하지 않았으며, 상기 특정한 블록은 상기 적어도 한 세트의 데이터를 포함하는, 메모리 장치의 제어기.
KR1020140100427A 2013-08-05 2014-08-05 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기 KR101566849B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361862094P 2013-08-05 2013-08-05
US61/862,094 2013-08-05
TW102144911 2013-12-06
TW102144911A TWI502591B (zh) 2013-08-05 2013-12-06 用來管理一記憶裝置之方法以及記憶裝置與控制器

Publications (2)

Publication Number Publication Date
KR20150016915A true KR20150016915A (ko) 2015-02-13
KR101566849B1 KR101566849B1 (ko) 2015-11-06

Family

ID=52428746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140100427A KR101566849B1 (ko) 2013-08-05 2014-08-05 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기

Country Status (3)

Country Link
US (1) US9507708B2 (ko)
KR (1) KR101566849B1 (ko)
CN (2) CN107741913B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI566253B (zh) * 2015-09-02 2017-01-11 慧榮科技股份有限公司 用來管理一記憶裝置之方法以及記憶裝置與控制器
TWI607309B (zh) 2016-03-16 2017-12-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
KR102593362B1 (ko) 2016-04-27 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI636363B (zh) * 2017-08-08 2018-09-21 慧榮科技股份有限公司 用來於一記憶裝置中進行動態資源管理之方法以及記憶裝置及其控制器
TWI643191B (zh) * 2017-11-13 2018-12-01 慧榮科技股份有限公司 用來控制一記憶裝置的運作之方法、記憶裝置及其控制器以及電子裝置
US20190155507A1 (en) * 2017-11-21 2019-05-23 Silicon Motion Inc. Method for performing system backup in a memory device, associated memory device and controller thereof, and associated electronic device
US11003237B2 (en) * 2018-04-12 2021-05-11 Silicon Motion, Inc. Method for performing power management in a memory device, associated memory device and controller thereof, and associated electronic device
CN110688059A (zh) * 2018-07-06 2020-01-14 光宝电子(广州)有限公司 固态储存装置及其电源失效时的数据处理方法
TWI698749B (zh) * 2019-03-13 2020-07-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US20210255783A1 (en) * 2020-02-19 2021-08-19 Silicon Motion, Inc. Method and apparatus for performing data storage management to enhance data reliability with aid of repeated write command detection

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
SG130988A1 (en) 2005-09-29 2007-04-26 Trek 2000 Int Ltd Portable data storage device incorporating multiple flash memory units
CN100593213C (zh) * 2006-06-20 2010-03-03 亮发科技股份有限公司 具多重分区的存储装置
EP2225643B1 (en) * 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
CN101576859A (zh) * 2008-05-06 2009-11-11 群联电子股份有限公司 非易失性存储器数据写入方法、存储系统及其控制器
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
KR101548175B1 (ko) 2008-11-05 2015-08-28 삼성전자주식회사 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법
US8407400B2 (en) * 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
TWI385527B (zh) 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法
TWI385518B (zh) 2009-03-20 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及儲存系統
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
JP2011145838A (ja) * 2010-01-13 2011-07-28 Toshiba Corp 記憶装置管理装置および記憶装置の管理方法
CN102142277A (zh) * 2010-01-28 2011-08-03 深圳市江波龙电子有限公司 一种存储器及存储器读写控制方法及系统
US8737138B2 (en) * 2010-11-18 2014-05-27 Micron Technology, Inc. Memory instruction including parameter to affect operating condition of memory
US8886990B2 (en) 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US8537613B2 (en) 2011-03-31 2013-09-17 Sandisk Technologies Inc. Multi-layer memory system
US8949508B2 (en) 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
KR101790165B1 (ko) * 2011-08-09 2017-11-20 삼성전자 주식회사 메모리 시스템 및 그것의 메타 데이터 관리 방법
US9176862B2 (en) 2011-12-29 2015-11-03 Sandisk Technologies Inc. SLC-MLC wear balancing

Also Published As

Publication number Publication date
CN107741913B (zh) 2021-09-07
KR101566849B1 (ko) 2015-11-06
CN104346292A (zh) 2015-02-11
US20150039811A1 (en) 2015-02-05
CN104346292B (zh) 2017-10-24
US9507708B2 (en) 2016-11-29
CN107741913A (zh) 2018-02-27

Similar Documents

Publication Publication Date Title
KR101566849B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
KR101561546B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
US10891236B2 (en) Data storage device and operating method thereof
US9570183B1 (en) Method and controller for managing memory device
US10943639B2 (en) Data storage device and operating method thereof
US9123443B2 (en) Memory device, memory management device, and memory management method
CN109960466B (zh) 存储器系统及其操作方法
CN113741798A (zh) 数据存储装置及其操作方法
US10901653B2 (en) Electronic device
US10877853B2 (en) Data storage device and operation method optimized for recovery performance, and storage system having the same
US20190278703A1 (en) Memory system, operating method thereof and electronic device
KR20170109344A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11366736B2 (en) Memory system using SRAM with flag information to identify unmapped addresses
TWI502591B (zh) 用來管理一記憶裝置之方法以及記憶裝置與控制器
US11954351B2 (en) Memory system, operating method thereof, and data processing system for processing duplicate data
US20230031193A1 (en) Memory system and operating method thereof
US10726938B2 (en) Data storage device and operating method thereof
US20220244852A1 (en) Memory system and operating method thereof
KR20180047808A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190099570A (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: 20181029

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190822

Year of fee payment: 5