KR100845137B1 - 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 - Google Patents

메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 Download PDF

Info

Publication number
KR100845137B1
KR100845137B1 KR1020060097154A KR20060097154A KR100845137B1 KR 100845137 B1 KR100845137 B1 KR 100845137B1 KR 1020060097154 A KR1020060097154 A KR 1020060097154A KR 20060097154 A KR20060097154 A KR 20060097154A KR 100845137 B1 KR100845137 B1 KR 100845137B1
Authority
KR
South Korea
Prior art keywords
memory address
bad block
bad
physical memory
logical
Prior art date
Application number
KR1020060097154A
Other languages
English (en)
Other versions
KR20080030805A (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 KR1020060097154A priority Critical patent/KR100845137B1/ko
Priority to US11/606,900 priority patent/US8161320B2/en
Publication of KR20080030805A publication Critical patent/KR20080030805A/ko
Application granted granted Critical
Publication of KR100845137B1 publication Critical patent/KR100845137B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

메모리 장치의 접근을 제어하는 방법은 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 상기 배드 블록 정보(bad block information)를 얻는 단계 및 상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 단계를 포함한다. 따라서 메모리 장치의 접근을 제어하는 방법은 배드 블록 비트맵을 이용하여 배드 블록을 효율적으로 관리할 수 있다.
배드 블록, 배드 블록 관리, 무효 블록, 무효 블록 관리

Description

메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리 장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는 메모리 장치 컨트롤러{METHOD OF TRANSLATING A BAD BLOCK ADDRESS OF A MEMORY DEVICE, APPARATUS OF TRANSLATIONG A BAD BLOCK ADDRESS OF A MEMORY DEVICE, AND MEMORY DEVICE CONTROLLER HAVING THE SAME}
도 1은 플래시 메모리 장치의 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 접근을 제어하는 장치를 나타내는 블록도이다.
도 3은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 나타내기 위한 플로우차트이다.
도 4는 메모리 장치의 접근을 제어하는 장치(210)의 동작을 설명하기 위한 도면이다.
도 5A는 플래시 메모리 장치 컨트롤러에 의한 쓰기 연산의 성능을 나타내는 그래프이고, 도 5B는 플래시 메모리 장치 컨트롤러에 의한 읽기 연산의 성능을 나타내는 그래프이다.
도 6은 본 발명의 다른 일 실시예에 따른 메모리 장치의 접근을 제어하는 장치를 나타내는 블록도이다.
도 7은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 나타내기 위한 플로우차트이다.
도 8은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 설명하기 위한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
124 : 플래시 번역 레이어 130 : 플래시 메모리 장치
210 : 배드 블록 관리자 212 : 배드 블록 비트맵 참조부
214 : 메모리 매핑부 222 : 배드 블록 비트맵
224 : 블록 매핑 테이블 226 : 리맵 테이블
본 발명은 메모리 장치의 배드 블록 관리에 관한 것으로 특히, 배드 블록 주소를 빠르게 번역할 수 있고 배드 블록을 효율적으로 관리할 수 있는 메모리 장치의 접근을 제어하는 방법, 메모리 장치의 접근을 제어하는 장치 및 이를 포함하는 메모리 장치 컨트롤러에 관한 것이다.
오늘날 반도체 메모리 장치에 대한 기술이 발전함에 따라 종래의 RAM(Random Access Memory) 및 ROM(Read Only Memory)의 장점을 모두 가지는 플래시 메모리 장치(Flash Memory Device)가 출현하게 되었다. 즉, 플래시 메모리 장치는 RAM과 유사하게 데이터를 다시 쓸 수 있고, ROM과 유사하게 한번 쓰여진 데이터는 전원의 공급이 없더라도 계속 저장할 수 있다.
플래시 메모리 장치는 복수의 메모리 블록들을 포함하고 있으며, 메모리 블록들은 각각 복수의 페이지들을 포함한다. 일반적으로 플래시 메모리 장치는 메모리 블록에 대하여 지우기 연산을 수행하고, 페이지에 대하여 읽기 및 쓰기 연산을 수행한다.
플래시 메모리 장치는 이전에 쓰여진 데이터를 직접 갱신(in-place update)할 수 없는 제약을 가지고 있으므로, 플래시 메모리 장치는 데이터를 갱신하기 위하여 새로운 페이지를 할당하여 새로운 페이지에 데이터를 쓴다.
따라서 플래시 메모리 장치는 어플리케이션에서 사용하는 논리적 메모리 주소(logical memory address)와 플래시 메모리 장치에서 사용하는 물리적 메모리 주소(physical memory address)를 매핑하는 블록 매핑 테이블을 포함하여야 하고, 플래시 메모리 장치를 제어하는 플래시 메모리 장치 컨트롤러는 블록 매핑 테이블을 이용하여 논리적 메모리 주소와 물리적 메모리 주소 간의 번역을 수행한다.
한편, 플래시 메모리 장치에 포함된 메모리 블록들 각각은 지우기 연산 횟수의 제한을 가지고 있다. 따라서 메모리 블록에 대한 지우기 및 쓰기 연산 횟수가 소정의 횟수를 초과하거나 플래시 메모리 장치내의 메모리 블록이 물리적 결함을 가지는 경우 메모리 블록은 정상적으로 동작하지 못할 수 있다. 정상적으로 동작하지 못하는 메모리 블록은 배드 블록(bad block) 또는 무효 블록(invalid block)이라고 불린다.
일반적으로 플래시 메모리 장치는 배드 블록이 발생할 경우 배드 블록을 대 체할 수 있는 예약 블록(reserved block)을 포함한다. 따라서 플래시 메모리 장치 컨트롤러는 논리적 메모리 주소를 기초로 번역된 물리적 메모리 주소가 배드 블록에 상응하는 경우 물리적 메모리 주소를 배드 블록이 아닌 물리적 메모리 주소로 재매핑(remap)해야 한다.
본 발명의 목적은 상기 종래 기술의 문제점을 해결하기 위하여 배드 블록을 효율적으로 관리하기 위한 메모리 장치의 접근을 제어하는 방법들을 제공하는데 있다.
본 발명의 다른 목적은 배드 블록을 효율적으로 관리하기 위한 메모리 장치의 접근을 제어하는 장치들을 제공하는 데 있다.
본 발명의 또 다른 목적은 배드 블록을 효율적으로 관리하기 위한 메모리 장치의 접근을 제어하는 장치들을 포함하는 메모리 장치 컨트롤러들을 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명의 메모리 장치의 접근을 제어하는 방법은 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 상기 배드 블록 정보(bad block information)를 얻는 단계 및 상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 단계를 포함한다.
또한, 상기 방법은 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력하는 단계를 더 포함할 수 있다.
상기 예약된 물리적 메모리 주소를 출력하는 단계는 어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻는 단계(obtaining), 상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻는 단계, 상기 얻은 물리적 메모리 주소를 기초로 상기 리맵 테이블을 검색하는 단계 및 상기 얻은 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 단계를 포함할 수 있다.
상기 배드 블록 정보를 얻는 단계는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받는 단계, 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽는 단계 및 상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽는 단계를 포함할 수 있다.
상기 배드 블록 영역을 읽는 단계는 상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽는 단계 및 상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블 록 정보를 읽는 단계를 포함할 수 있다.
예를 들어, 상기 메모리 장치는 플래시 메모리 장치에 상응할 수 있다.
상기 다른 목적을 달성하기 위하여 본 발명의 메모리 장치의 배드 블록 주소를 번역하는 방법은 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 단계 및 상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 단계를 포함한다.
또한, 상기 방법은 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력하는 단계를 더 포함할 수 있다.
상기 배드 블록 정보를 얻는 단계는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받는 단계, 상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻는 단계 및 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻는 단계를 포함할 수 있다.
상기 예약된 물리적 메모리 주소를 출력하는 단계는 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하는 단계 및 상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 단계를 포함할 수 있다.
상기 리맵 테이블을 검색하는 단계는 상기 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽는 단계 및 상기 물리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 단계를 포함할 수 있다.
예를 들어, 상기 메모리 장치는 플래시 메모리 장치에 상응할 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 메모리 장치의 접근을 제어하는 장치는 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 상기 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit) 및 상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 메모리 매핑부(memory mapping unit)를 포함한다.
상기 메모리 매핑부는 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력할 수 있다.
상기 메모리 매핑부는 어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻고, 상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻으며(obtain), 상기 얻은 물리적 메모리 주소를 기초로 상기 리맵 테이블을 검색하여 상기 얻은 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력할 수 있다.
상기 배드 블록 비트맵 참조부는 어플리케이션(application)으로부터 발생된 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽으며, 상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽을 수 있다.
상기 배드 블록 비트맵 참조부는 상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽을 수 있다.
예를 들어, 상기 메모리 장치는 플래시 메모리 장치에 상응할 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 메모리 장치의 접근을 제어하는 장치는 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit) 및 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력한다.
상기 메모리 매핑부는 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력할 수 있다.
상기 메모리 매핑부는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻고, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻을 수 있다.
상기 메모리 매핑부는 상기 얻은 물리적 메모리 주소에 상응하는 상기 배드 블록 정보가 배드 표시를 나타내는 경우에는 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하고, 상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력할 수 있다.
상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 얻은 물리적 메모리 주소를 상기 N으로 나 눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽을 수 있다.
예를 들어, 상기 메모리 장치는 플래시 메모리 장치에 상응할 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 메모리 장치 컨트롤러는 플래시 번역 레이어(FTL, flash translation layer)를 포함하고, 상기 플래시 번역 레이어는 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit) 및 상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 메모리 매핑부(memory mapping unit)를 포함한다.
상기 메모리 매핑부는 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력할 수 있다.
상기 메모리 매핑부는 어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻고, 상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻으며(obtain), 상기 얻은 물리적 메모리 주소를 기초로 상 기 리맵 테이블을 검색하여 상기 얻은 물리적 메모리 주소에 상응하는 상기 매핑된 물리적 메모리 주소를 출력할 수 있다.
상기 배드 블록 비트맵 참조부는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽으며, 상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽을 수 있다.
상기 배드 블록 비트맵 참조부는 상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽을 수 있다.
예를 들어, 상기 메모리 장치 컨트롤러는 플래시 메모리 장치 컨트롤러에 상응할 수 있다.
상기 또 다른 목적을 달성하기 위하여 본 발명의 메모리 장치 컨트롤러는 플래시 번역 레이어(FTL, flash translation layer)를 포함하고, 상기 플래시 번역 레이어는 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block referencing unit) 및 상 기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 메모리 매핑부를 포함한다.
상기 메모리 매핑부는 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력할 수 있다.
상기 메모리 매핑부는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻고, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻을 수 있다.
상기 메모리 매핑부는 상기 얻은 물리적 메모리 주소에 상응하는 상기 배드 블록 정보가 배드 표시를 나타내는 경우에는 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하고, 상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력할 수 있다.
상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 얻은 물리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽을 수 있다.
예를 들어, 상기 메모리 장치 컨트롤러는 플래시 메모리 장치 컨트롤러에 상응할 수 있다.
따라서 본 발명에서는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵을 이용하여 배드 블록 주소를 빠르게 번역할 수 있다. 또한, 본 발명에서는 배드 블록 비트맵을 이용하여 배드 블록을 효율적으로 관리할 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일 치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하 본 발명의 실시예들을 도면과 함께 설명하고자 한다.
도 1은 플래시 메모리 장치의 동작을 설명하기 위한 도면이다.
도 1을 참조하면, 플래시 메모리 장치 컨트롤러(120)는 파일 시스템(122) 및 플래시 번역 레이어(FTL, Flash Translation Layer)(124)를 포함한다.
파일 시스템(122)은 어플리케이션(110)이 플래시 메모리 장치(130)에 데이터를 쓸 수 있도록 일반적인 파일 시스템을 제공한다. 즉, 파일 시스템(122)은 어플리케이션(110)에 의하여 발생된 데이터를 메모리 장치의 종류에 무관하게(independent) 쓸 수 있는 인터페이스를 제공한다.
플래시 번역 레이어(124)는 파일 시스템(122)이 플래시 메모리 장치(130)에 데이터를 쓸 수 있도록 플래시 메모리 장치(130)에 대한 인터페이스를 제공한다. 플래시 번역 레이어(124)의 동작 방식은 후술한다.
도 2는 본 발명의 일 실시예에 따른 메모리 장치의 접근을 제어하는 장치를 나타내는 블록도이다.
도 2를 참조하면, 메모리 장치의 접근을 제어하는 장치(210)는 플래시 번역 레이어(124)에 포함될 수 있고, 배드 블록 비트맵 참조부(bad block bitmap referencing unit)(212) 및 메모리 매핑부(memory mapping unit)(214)를 포함한다.
배드 블록 비트맵 참조부(212)는 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보(bad block information)를 포함하는 배드 블록 비트맵(bad block bitmap)(222)으로부터 논리적 메모리 주소에 상응하는 배드 블록 정보를 얻는다. 예를 들어, 메모리 블록은 지우기 연산의 대상인 데이터 블록에 상응할 수 있고, 읽기 및 쓰기 연산의 대상인 페이지에 상응할 수도 있다.
배드 블록 비트맵 참조부(212)는 어플리케이션(application)으로부터 발생된 논리적 메모리 주소를 입력받고, 입력받은 논리적 메모리 주소에 상응하는 배드 블록 비트맵(222) 내의 배드 블록 영역을 읽으며, 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽는다. 예를 들어, 배드 블록 비트맵 참조부(212)는 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 배드 블록 비트맵(212) 내의 배드 블록 영역을 읽을 수 있고, 입력받은 논리적 메모리 주소를 N으로 나눈 나머지에 상응하는 배드 블록 영역 내의 배드 블록 정보를 읽을 수 있다.
메모리 매핑부(214)는 배드 블록 정보가 배드 표시(bad indication)를 나타내지 않는 경우에는 블록 매핑 테이블(224)로부터 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 출력한다. 즉, 메모리 매핑부(214)는 블록 매핑 테이블(224)을 참조하여 논리적 메모리 주소를 물리적 메모리 주소로 직접 매핑한다.
메모리 매핑부(214)는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블(224)로부터 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)(226)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력한다. 예를 들어, 메모리 매핑부(214)는 어플리케이션(110)으로부터 발생된 논리적 메모리 주소를 얻을 수 있다.
이하, 도 3 및 도 4를 참조하여 메모리 장치의 접근을 제어하는 장치(210)의 동작을 설명하기로 한다.
도 3은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 나타내기 위한 플로우차트이고, 도 4는 메모리 장치의 접근을 제어하는 장치(210)의 동작을 설명하기 위한 도면이다.
메모리 장치의 접근을 제어하는 장치(210)는 어플리케이션(110)이 읽기, 쓰기 및 지우기 연산을 수행할 때 발생하는 논리적 메모리 주소를 입력받는다(단계 S310). 예를 들어, 논리적 메모리 주소는 도 4에 도시된 제1 논리적 메모리 주소(410) 또는 제2 논리적 메모리 주소(420)일 수 있다.
배드 블록 비트맵 참조부(212)는 배드 블록 비트맵(222)으로부터 논리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는다(단계 S320). 예를 들어, 제1 논리적 메모리 주소(410)는 0에 상응하므로, 배드 블록 비트맵 참조부(212)는 배드 블록 비트맵(222)의 0 번째 비트를 얻을 수 있다. 또한, 제2 논리적 메모리 주소(420)는 3에 상응하므로, 배드 블록 비트맵 참조부(212)는 배드 블록 비트맵(222)의 세 번째 비트를 얻을 수 있다.
메모리 매핑부(214)는 배드 블록 정보가 배드 표시(bad indication)를 나타내는지 여부를 조사한다(단계 S330). 예를 들어, 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 제1 논리적 메모리 주소(410)처럼 배드 블록 정보가 비트 '1'에 상응할 수 있고, 배드 블록 정보가 배드 표시(bad indication)를 나타내지 않는 경우에는 제2 논리적 메모리 주소(420)처럼 배드 블록 정보가 비트 '0'에 상응할 수 있다.
메모리 매핑부(214)는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블(224)에서 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻는다(단계 S340). 예를 들어, 제2 논리적 메모리 주소(420)는 논리적 메모리 주소가 3에 상응하므로, 메모리 매핑부(214)는 메모리 매핑 테이블(224)로부터 100에 상응하는 물리적 메모리 주소를 얻을 수 있다.
메모리 매핑부(214)는 메모리 매핑 테이블(224)로부터 얻은 물리적 메모리 주소를 기초로 리맵 테이블(226)을 검색한다(단계 S350). 예를 들어, 제2 논리적 메모리 주소(420)의 물리적 메모리 주소는 100에 상응하므로, 메모리 매핑부(214)는 리맵 테이블(226)로부터 100에 상응하는 물리적 메모리 주소를 검색할 수 있다.
메모리 매핑부(214)는 리맵 테이블(226)로부터 검색된 예약된 물리적 메모리 주소(reserved physical memory address)를 출력한다(단계 S360). 예를 들어, 제2 논리적 메모리 주소(420)의 예약된 물리적 메모리 주소는 20에 상응하므로, 메모리 매핑부(214)는 20에 상응하는 예약된 물리적 메모리 주소(440)를 출력할 수 있다.
메모리 매핑부(214)는 배드 블록 정보가 배드 표시(bad indication)를 나타내지 않는 경우에는 블록 매핑 테이블(224)에서 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 출력한다(단계 S370). 예를 들어, 제1 논리적 메모리 주소(410)는 논리적 메모리 주소가 0에 상응하므로, 메모리 매핑부(214)는 메모리 매핑 테이블(224)로부터 80에 상응하는 물리적 메모리 주소(430)를 출력할 수 있다.
도 5A는 플래시 메모리 장치 컨트롤러에 의한 쓰기 연산의 성능을 나타내는 그래프이고, 도 5B는 플래시 메모리 장치 컨트롤러에 의한 읽기 연산의 성능을 나타내는 그래프이다.
도 5A 및 도 5B에서, 배드 블록 비트맵을 사용하지 않는 시스템과 비교할 경우 쓰기 연산의 성능은 약 6 % 상승하였고, 읽기 연산의 성능은 약 15 % 상승하였다.
도 6은 본 발명의 다른 일 실시예에 따른 메모리 장치의 접근을 제어하는 장치를 나타내는 블록도이다.
도 6을 참조하면, 메모리 장치의 접근을 제어하는 장치(610)는 플래시 번역 레이어(124)에 포함될 수 있고, 메모리 매핑부(memory mapping unit)(612) 및 배드 블록 비트맵 참조부(bad block bitmap referencing unit)(614)를 포함한다.
배드 블록 비트맵 참조부(614)는 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵(222)으로부터 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는다.
예를 들어, 배드 블록 비트맵 참조부(614)는 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 배드 블록 비트맵 내의 배드 블록 영역을 읽을 수 있고, 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 배드 블록 영역 내의 배드 블록 정보를 읽을 수 있다.
메모리 매핑부(612)는 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 물리적 메모리 주소를 기초로 리맵 테이블(remap table)(226)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력한다.
메모리 매핑부(612)는 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 물리적 메모리 주소를 출력한다.
즉, 메모리 매핑부(612)는 어플리케이션(application)으로부터 논리적 메모리 주소를 입력받고, 입력받은 논리적 메모리 주소를 기초로 블록 매핑 테이블(224)로부터 물리적 메모리 주소를 얻은 후, 배드 블록 비트맵 참조부(614)는 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻는다.
메모리 매핑부(612)는 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시를 나타내는 경우에는 얻은 물리적 메모리 주소를 기초로 리맵 테이블(226)을 검색하고, 물리적 메모리 주소에 상응하는 예약된 물리적 메모리 주소를 출력한다.
이하, 도 7 및 도 8을 참조하여 메모리 장치의 접근을 제어하는 장치(610)의 동작을 설명하기로 한다.
도 7은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 나타내기 위한 플로우차트이고, 도 8은 메모리 장치의 접근을 제어하는 장치(210)의 동작을 설명하기 위한 도면이다.
메모리 장치의 접근을 제어하는 장치(610)는 어플리케이션(110)이 읽기, 쓰기 및 지우기 연산을 수행할 때 발생하는 논리적 메모리 주소를 입력받는다(단계 S710). 예를 들어, 논리적 메모리 주소는 도 8에 도시된 제3 논리적 메모리 주소(810) 또는 제4 논리적 메모리 주소(820)일 수 있다.
메모리 매핑부(612)는 입력받은 논리적 메모리 주소를 기초로 블록 매핑 테이블(224)로부터 물리적 메모리 주소를 얻는다(단계 S720). 예를 들어, 제3 논리적 메모리 주소(810)는 0에 상응하므로, 메모리 매핑부(612)는 80에 상응하는 물리적 메모리 주소를 얻을 수 있다. 또한, 제4 논리적 메모리 주소(820)는 3에 상응하므로, 메모리 매핑부(612)는 100에 상응하는 물리적 메모리 주소를 얻을 수 있다.
배드 블록 비트맵 참조부(614)는 얻은 물리적 주소를 기초로 배드 블록 비트맵(222)으로부터 배드 블록 정보를 얻는다(단계 S730). 예를 들어, 제3 논리적 메모리 주소(810)에 상응하는 물리적 메모리 주소는 80에 상응하므로, 배드 블록 비트맵 참조부(614)는 배드 블록 비트맵(222)의 80번째 비트를 얻을 수 있다. 또한, 제4 논리적 메모리 주소(820)에 상응하는 물리적 메모리 주소는 100에 상응하므로, 배드 블록 비트맵 참조부(614)는 배드 블록 비트맵(222)의 100번째 비트를 얻을 수 있다.
메모리 매핑부(612)는 배드 블록 정보가 배드 표시(bad indication)를 나타내는지 여부를 조사한다(단계 S740). 예를 들어, 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 제3 논리적 메모리 주소(810)처럼 배드 블록 정보가 비트 '1'에 상응할 수 있고, 배드 블록 정보가 배드 표시(bad indication)를 나타내지 않는 경우에는 제4 논리적 메모리 주소(820)처럼 배드 블록 정보가 비트 '0'에 상응할 수 있다.
메모리 매핑부(612)는 얻은 물리적 메모리 주소를 기초로 리맵 테이블(226)을 검색한다(단계 S750). 예를 들어, 제4 논리적 메모리 주소(820)의 물리적 메모리 주소는 100에 상응하므로, 메모리 매핑부(612)는 리맵 테이블(226)로부터 100에 상응하는 물리적 메모리 주소를 검색할 수 있다.
메모리 매핑부(612)는 물리적 메모리 주소에 상응하는 예약된 물리적 메모리 주소를 출력한다(단계 S760). 예를 들어, 제4 논리적 메모리 주소(820)의 예약된 물리적 메모리 주소는 20에 상응하므로, 메모리 매핑부(612)는 20에 상응하는 예약된 물리적 메모리 주소(840)를 출력할 수 있다.
메모리 매핑부(612)는 배드 블록 정보가 배드 표시(bad indication)를 나타나지 않는 경우에는 입력받은 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 출력한다(단계 S770). 예를 들어, 제3 논리적 메모리 주소(810)는 논리적 메모리 주소가 0에 상응하므로, 메모리 매핑부(612)는 메모리 매핑 테이블(224)로부터 80에 상응하는 물리적 메모리 주소(830)를 출력할 수 있다.
상술한 바와 같이 본 발명에서는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵을 이용하여 배드 블록 주소를 빠르게 번역할 수 있다.
또한, 본 발명에서는 배드 블록 비트맵을 이용하여 배드 블록을 효율적으로 관리할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (36)

  1. 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 상기 배드 블록 정보(bad block information)를 얻는 단계;
    상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 단계; 및
    상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력하는 단계를 포함하는 메모리 장치의 접근을 제어하는 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 예약된 물리적 메모리 주소를 출력하는 단계는
    어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻는 단계(obtaining);
    상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻는 단계;
    상기 얻은 물리적 메모리 주소를 기초로 상기 리맵 테이블을 검색하는 단계; 및
    상기 얻은 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 배드 블록 정보를 얻는 단계는
    어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받는 단계;
    상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽는 단계; 및
    상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 배드 블록 영역을 읽는 단계는
    상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽는 단계; 및
    상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 단계를 포함하는 것을 특징으 로 하는 방법.
  6. 제1항에 있어서, 상기 메모리 장치는 플래시 메모리 장치에 상응하는 것을 특징으로 하는 방법.
  7. 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 단계;
    상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하는 단계; 및
    상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력하는 단계를 포함하는 메모리 장치의 배드 블록 주소를 번역하는 방법.
  8. 삭제
  9. 제7항에 있어서, 상기 배드 블록 정보를 얻는 단계는
    어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받는 단계;
    상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻는 단계; 및
    상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 예약된 물리적 메모리 주소를 출력하는 단계는
    상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하는 단계; 및
    상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서, 상기 리맵 테이블을 검색하는 단계는 상기 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽는 단계; 및
    상기 물리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제7항에 있어서, 상기 메모리 장치는 플래시 메모리 장치에 상응하는 것을 특징으로 하는 방법.
  13. 논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 상기 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit); 및
    상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하고, 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력하는 메모리 매핑부(memory mapping unit)를 포함하는 메모리 장치의 접근을 제어하는 장치.
  14. 삭제
  15. 제13항에 있어서, 상기 메모리 매핑부는
    어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻고, 상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻 으며(obtain), 상기 얻은 물리적 메모리 주소를 기초로 상기 리맵 테이블을 검색하여 상기 얻은 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 것을 특징으로 하는 장치.
  16. 제13항에 있어서, 상기 배드 블록 비트맵 참조부는
    어플리케이션(application)으로부터 발생된 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽으며, 상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽는 것을 특징으로 하는 장치.
  17. 제16항에 있어서, 상기 배드 블록 비트맵 참조부는
    상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 것을 특징으로 하는 장치.
  18. 제13항에 있어서, 상기 메모리 장치는 플래시 메모리 장치에 상응하는 것을 특징으로 하는 장치.
  19. 논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit); 및
    상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하고, 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력하는 메모리 매핑부를 포함하는 메모리 장치의 접근을 제어하는 장치.
  20. 삭제
  21. 제19항에 있어서, 상기 메모리 매핑부는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻고, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻는 것을 특징으로 하는 장치.
  22. 제21항에 있어서, 상기 메모리 매핑부는 상기 얻은 물리적 메모리 주소에 상응하는 상기 배드 블록 정보가 배드 표시를 나타내는 경우에는 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하고, 상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 것을 특징으로 하는 장치.
  23. 제22항에 있어서, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 얻은 물리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 것을 특징으로 하는 장치.
  24. 제19항에 있어서, 상기 메모리 장치는 플래시 메모리 장치에 상응하는 것을 특징으로 하는 장치.
  25. 플래시 번역 레이어(FTL, flash translation layer)를 포함하고,
    상기 플래시 번역 레이어는
    논리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 논리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block bitmap referencing unit); 및
    상기 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 블록 매핑 테이블에서 상기 논리적 메모리 주소에 상응하는 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하고, 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 블록 매핑 테이블로부터 상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 출력하는 메모리 매핑부(memory mapping unit)를 포함하는 메모리 장치 컨트롤러.
  26. 삭제
  27. 제25항에 있어서, 상기 메모리 매핑부는
    어플리케이션으로부터 발생된 상기 논리적 메모리 주소를 얻고, 상기 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻으며(obtain), 상기 얻은 물리적 메모리 주소를 기초로 상기 리맵 테이블을 검색하여 상기 얻은 물리적 메모리 주소에 상응하는 상기 매핑된 물리적 메모리 주소를 출력하는 것을 특징으로 하는 메모리 장치 컨트롤러.
  28. 제25항에 있어서, 상기 배드 블록 비트맵 참조부는
    어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 비트맵 내의 배드 블록 영역을 읽으며, 상기 읽은 배드 블록 영역으로부터 상기 입력받은 논리적 메모리 주소에 상응하는 상기 배드 블록 정보를 읽는 것을 특징으로 하는 메모리 장치 컨트롤러.
  29. 제28항에 있어서, 상기 배드 블록 비트맵 참조부는 상기 입력받은 논리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 입력받은 논리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 것을 특징으로 하는 메모리 장치 컨트롤러.
  30. 제25항에 있어서, 상기 메모리 장치 컨트롤러는 플래시 메모리 장치 컨트롤러에 상응하는 것을 특징으로 하는 메모리 장치 컨트롤러.
  31. 플래시 번역 레이어(FTL, flash translation layer)를 포함하고,
    상기 플래시 번역 레이어는
    논리적 메모리 주소를 기초로 얻은 물리적 메모리 주소에 상응하는 메모리 블록이 배드 블록인지 여부를 나타내는 배드 블록 정보를 포함하는 배드 블록 비트맵으로부터 상기 물리적 메모리 주소에 상응하는 배드 블록 정보(bad block information)를 얻는 배드 블록 비트맵 참조부(bad block referencing unit); 및
    상기 논리적 메모리 주소에 상응하는 상기 물리적 메모리 주소를 얻고, 상기 얻은 물리적 메모리 주소에 상응하는 배드 블록 정보가 배드 표시(bad indication)를 나타내는 경우에는 상기 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하여 예약된 물리적 메모리 주소(reserved physical memory address)를 출력하고, 상기 배드 블록 정보가 배드 표시를 나타내지 않는 경우에는 상기 물리적 메모리 주소를 출력하는 메모리 매핑부를 포함하는 메모리 장치 컨트롤러.
  32. 삭제
  33. 제31항에 있어서, 상기 메모리 매핑부는 어플리케이션(application)으로부터 상기 논리적 메모리 주소를 입력받고, 상기 입력받은 논리적 메모리 주소를 기초로 상기 블록 매핑 테이블로부터 상기 물리적 메모리 주소를 얻고, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 주소를 기초로 상기 배드 블록 비트맵으로부터 상기 배드 블록 정보를 얻는 것을 특징으로 하는 메모리 장치 컨트롤러.
  34. 제33항에 있어서, 상기 메모리 매핑부는 상기 얻은 물리적 메모리 주소에 상응하는 상기 배드 블록 정보가 배드 표시를 나타내는 경우에는 상기 얻은 물리적 메모리 주소를 기초로 리맵 테이블(remap table)을 검색하고, 상기 물리적 메모리 주소에 상응하는 상기 예약된 물리적 메모리 주소를 출력하는 것을 특징으로 하는 메모리 장치 컨트롤러.
  35. 제34항에 있어서, 상기 배드 블록 비트맵 참조부는 상기 얻은 물리적 메모리 주소를 메모리 주소 연산의 처리 단위를 나타내는 N으로 나눈 몫에 상응하는 상기 배드 블록 비트맵 내의 상기 배드 블록 영역을 읽고, 상기 얻은 물리적 메모리 주소를 상기 N으로 나눈 나머지에 상응하는 상기 배드 블록 영역 내의 상기 배드 블록 정보를 읽는 것을 특징으로 하는 메모리 장치 컨트롤러.
  36. 제31항에 있어서, 상기 메모리 장치 컨트롤러는 플래시 메모리 장치 컨트롤러에 상응하는 것을 특징으로 하는 메모리 장치 컨트롤러.
KR1020060097154A 2006-10-02 2006-10-02 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러 KR100845137B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060097154A KR100845137B1 (ko) 2006-10-02 2006-10-02 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US11/606,900 US8161320B2 (en) 2006-10-02 2006-12-01 Apparatus, memory device controller and method of controlling a memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060097154A KR100845137B1 (ko) 2006-10-02 2006-10-02 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러

Publications (2)

Publication Number Publication Date
KR20080030805A KR20080030805A (ko) 2008-04-07
KR100845137B1 true KR100845137B1 (ko) 2008-07-09

Family

ID=39532706

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060097154A KR100845137B1 (ko) 2006-10-02 2006-10-02 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러

Country Status (2)

Country Link
US (1) US8161320B2 (ko)
KR (1) KR100845137B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977610B2 (en) 2015-06-22 2018-05-22 Samsung Electronics Co., Ltd. Data storage device to swap addresses and operating method thereof

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870363B2 (en) * 2007-12-28 2011-01-11 Intel Corporation Methods and arrangements to remap non-volatile storage
JP4551940B2 (ja) * 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
US8156392B2 (en) * 2008-04-05 2012-04-10 Fusion-Io, Inc. Apparatus, system, and method for bad block remapping
KR101543431B1 (ko) * 2008-11-20 2015-08-11 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 액세스 방법
JP6015752B2 (ja) * 2012-05-25 2016-10-26 富士通株式会社 情報処理装置、情報処理プログラム、およびアクセス制御方法
CN103235760B (zh) * 2013-01-31 2016-05-04 苏州国芯科技有限公司 基于CLB总线的高利用率NorFLASH存储接口芯片
CN103942151A (zh) * 2014-04-10 2014-07-23 深圳市硅格半导体有限公司 闪存的数据存储方法及装置
KR102254392B1 (ko) * 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
CN105701021B (zh) * 2014-12-10 2021-03-02 慧荣科技股份有限公司 数据储存装置及其数据写入方法
CN106055279B (zh) * 2016-06-12 2019-05-10 浪潮(北京)电子信息产业有限公司 管理固态硬盘的地址映射表的方法、装置及固态硬盘
KR20180026876A (ko) * 2016-09-05 2018-03-14 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990055972A (ko) * 1997-12-29 1999-07-15 윤종용 블록 재할당 기능을 갖는 플래시 메모리 이용 보조기억장치 및 그 방법
JP2003337757A (ja) 2002-05-17 2003-11-28 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR20040087245A (ko) * 2003-04-04 2004-10-13 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
KR20060006554A (ko) * 2004-07-16 2006-01-19 삼성전자주식회사 배드 블록 관리부를 포함하는 플래시 메모리 시스템
WO2006009322A2 (en) 2004-07-23 2006-01-26 Kabushiki Kaisha Toshiba Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
JP2006185290A (ja) 2004-12-28 2006-07-13 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740349A (en) * 1993-02-19 1998-04-14 Intel Corporation Method and apparatus for reliably storing defect information in flash disk memories
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US8296467B2 (en) * 2000-01-06 2012-10-23 Super Talent Electronics Inc. Single-chip flash device with boot code transfer capability
JP2003045196A (ja) 2001-08-02 2003-02-14 Fujitsu Ltd ブロックアドレス切替機能を有するメモリ回路
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
ATE552592T1 (de) * 2002-06-10 2012-04-15 Koninkl Philips Electronics Nv Verfahren und gerät zum schreiben einer mehrschichtigen optischen platte
KR100457812B1 (ko) 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
JP2004265162A (ja) 2003-03-03 2004-09-24 Renesas Technology Corp 記憶装置およびアドレス管理方法
JP2004280752A (ja) * 2003-03-19 2004-10-07 Sony Corp データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
KR100622349B1 (ko) * 2004-08-04 2006-09-14 삼성전자주식회사 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
JP4586469B2 (ja) * 2004-09-15 2010-11-24 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990055972A (ko) * 1997-12-29 1999-07-15 윤종용 블록 재할당 기능을 갖는 플래시 메모리 이용 보조기억장치 및 그 방법
JP2003337757A (ja) 2002-05-17 2003-11-28 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR20040087245A (ko) * 2003-04-04 2004-10-13 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
KR20060006554A (ko) * 2004-07-16 2006-01-19 삼성전자주식회사 배드 블록 관리부를 포함하는 플래시 메모리 시스템
WO2006009322A2 (en) 2004-07-23 2006-01-26 Kabushiki Kaisha Toshiba Memory card, nonvolatile semiconductor memory, and method of controlling semiconductor memory
JP2006185290A (ja) 2004-12-28 2006-07-13 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977610B2 (en) 2015-06-22 2018-05-22 Samsung Electronics Co., Ltd. Data storage device to swap addresses and operating method thereof
US10579279B2 (en) 2015-06-22 2020-03-03 Samsung Electronics Co., Ltd. Data storage device and data processing system having the same

Also Published As

Publication number Publication date
US8161320B2 (en) 2012-04-17
US20080155317A1 (en) 2008-06-26
KR20080030805A (ko) 2008-04-07

Similar Documents

Publication Publication Date Title
KR100845137B1 (ko) 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US10120752B2 (en) Data storage device and data access-method
US8145829B2 (en) Flash memory device capable of preventing read disturbance
US9530499B2 (en) Semiconductor memory device and information processing device
JP2006221636A (ja) Run単位アドレスマッピングテーブル及びそれの構成方法
JP2006031696A (ja) バッドブロック管理部を含むフラッシュメモリシステム
US20130097362A1 (en) Data writing method, and memory controller and memory storage apparatus using the same
JP2013137770A (ja) Lbaビットマップの使用
US20150317083A1 (en) Synergetic deduplication
JP2010157130A (ja) メモリシステム
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
KR20100094241A (ko) 예비 블록을 포함하지 않는 불휘발성 메모리 장치
US20050281105A1 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US20120198131A1 (en) Data writing method for rewritable non-volatile memory, and memory controller and memory storage apparatus using the same
JP2008009527A (ja) メモリシステム
KR20200116704A (ko) 메모리 시스템 및 그것의 동작방법
US9235501B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US20100318726A1 (en) Memory system and memory system managing method
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2007220107A (ja) 不揮発性メモリのマッピング情報管理装置及び方法
KR20070003673A (ko) 플래시 메모리를 이용한 메모리 카드 및 그 제어 방법
CN105608013A (zh) 一种集成mram的存储卡控制芯片及存储卡
US9582411B2 (en) Memory controller, storage apparatus, information processing system, and control method therefor
JP2004151939A (ja) 記憶装置
US20150067237A1 (en) Memory controller, semiconductor memory system, and memory control method

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 11