KR101805828B1 - 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러 - Google Patents

스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러 Download PDF

Info

Publication number
KR101805828B1
KR101805828B1 KR1020160033463A KR20160033463A KR101805828B1 KR 101805828 B1 KR101805828 B1 KR 101805828B1 KR 1020160033463 A KR1020160033463 A KR 1020160033463A KR 20160033463 A KR20160033463 A KR 20160033463A KR 101805828 B1 KR101805828 B1 KR 101805828B1
Authority
KR
South Korea
Prior art keywords
address
size
mapping
logical address
target logical
Prior art date
Application number
KR1020160033463A
Other languages
English (en)
Other versions
KR20170109391A (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 KR1020160033463A priority Critical patent/KR101805828B1/ko
Priority to PCT/KR2017/001702 priority patent/WO2017164515A1/ko
Publication of KR20170109391A publication Critical patent/KR20170109391A/ko
Application granted granted Critical
Publication of KR101805828B1 publication Critical patent/KR101805828B1/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
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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
    • 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
    • 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
    • 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
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

스토리지 시스템의 주소 변환 방법은 어플리케이션으로부터 데이터의 타겟 논리 주소를 입력받고, 주소 매핑 테이블을 이용하여 타겟 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하며, 매핑된 물리 주소를 기초로 데이터를 쓴 후에 타겟 논리 주소의 연속성에 기초하여 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 주소 매핑 테이블을 업데이트한다.

Description

스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러{METHOD FOR TRANSLATING ADDRESS OF STORAGE SYSTEM AND MEMORY DEVICE CONTROLLER FOR STORAGE SYSTEM}
본 발명은 스토리지 시스템에 관한 것으로서, 더욱 상세하게는 상기 스토리지 시스템에 포함되는 메모리 장치 컨트롤러 및 상기 스토리지 시스템의 주소 변환 방법에 관한 것이다.
플래시 메모리 장치 및 이를 포함하는 스토리지 시스템은 어플리케이션에서 사용하는 논리적 메모리 주소(logical memory address)와 플래시 메모리 장치에서 사용하는 물리적 메모리 주소(physical memory address)를 매핑하는 매핑 테이블을 포함하여야 하고, 플래시 메모리 장치를 제어하는 메모리 장치 컨트롤러는 상기 매핑 테이블을 이용하여 논리적 메모리 주소와 물리적 메모리 주소 간의 변환을 수행한다.
일반적인 주소 매핑 방법은 페이지 매핑(page mapping) 방법, 블록 매핑(block mapping) 방법, 또는 상기 페이지 매핑과 상기 블록 매핑을 적절히 배합하여 하이브리드 매핑(hybrid mapping) 방법이 있다. 다만, 상기 페이지 매핑 방법은 주소 매핑 테이블의 사이즈가 커져 이를 저장하기 위한 많은 메모리를 필요로 하고, 상기 블록 매핑 방법은 큰 매핑 단위(즉, 매핑 단위(mapping unit))로 인해 데이터 기록 속도의 효율성이 저하된다. 또한, 상기 하이브리드 매핑 방법은 서로 다른 매핑 단위들이 저장된 복수의 주소 매핑 테이블이 필요하므로, 관리의 복잡도가 크고 자료 구조(예를 들어, 주소 매핑 테이블) 검색 시간이 증가한다.
본 발명의 일 목적은 데이터가 기입되는 논리 주소의 연속성에 기초하여 매핑 단위(mapping unit)의 사이즈를 동적으로 변화시키는 스토리지 시스템의 주소 변환 방법을 제공하는 것이다.
본 발명의 다른 목적은 데이터가 기입되는 논리 주소의 연속성에 기초하여 매핑 단위(mapping unit)의 사이즈를 동적으로 변화시키는 스토리지 시스템의 메모리 장치 컨트롤러를 제공하는 것이다.
다만, 본 발명의 목적은 상술한 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여 본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위(target logical address range)를 입력받고, 주소 매핑 테이블(address mapping table)을 이용하여 상기 타겟 논리 주소 범위에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하며, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓴 후에, 상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트할 수 있다.
일 실시예에 의하면, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)를 곱한 값에 상응할 수 있다.
일 실시예에 의하면, 상기 매핑 단위들 각각의 사이즈는 상기 기 설정된 범위 내에서 2k 단위로 동적으로 변하고, 상기 매핑 단위들 전체의 사이즈들이 동일하지 않을 수 있다.
일 실시예에 의하면, 상기 매핑 단위들은 상기 매핑 단위들 각각의 헤드 논리 섹터 주소를 기준으로 분할 또는 융합될 수 있다.
일 실시예에 의하면, 상기 주소 매핑 테이블을 업데이트하는 것은 상기 타겟 논리 주소 범위에 포함되는 논리 주소들을 융합(fusion)하여 상기 타겟 논리 주소 범위를 제1 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소 범위들로 구분하고, 제m(단, m은 n 이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단하며, 상기 제m 서브 타겟 논리 주소 범위가 단일의 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(split)하고, 상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정하여 상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트하는 것을 포함할 수 있다.
일 실시예에 의하면, 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하는 것은 상기 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정하고, 상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출하며, 상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈에 기초하여 제2 최대 사이즈를 산출하고, 상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 결정하는 것을 더 포함할 수 있다.
일 실시예에 의하면, 상기 첫 논리 섹터 주소를 2의 제곱근들의 합으로 표현하였을 때, 상기 제1 최대 사이즈는 상기 2의 제곱근들 중 가장 작은 값에 상응할 수 있다.
일 실시예에 의하면, 상기 서브 사이즈를 2의 제곱근들의 합으로 표현하였을 때, 상기 제2 최대 사이즈는 상기 2의 제곱근들 중 가장 큰 값에 상응할 수 있다.
일 실시예에 의하면, 상기 제1 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소에 상응하고, 상기 제1 타겟 논리 주소 범위를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응할 수 있다.
일 실시예에 의하면, 상기 융합 매핑 단위는 연속적인 논리 주소들 및 상기 논리 주소들에 대응하는 쓰기 가능한 연속적인 물리 주소들을 포함할 수 있다.
일 실시예에 의하면, 상기 현재 매핑 단위를 분할하는 것은 상기 제m 서브 타겟 논리 주소 범위를 포함하는 상기 현재 매핑 단위를 절반으로 분할하여 분할된 현재 매핑 단위들을 생성하고, 상기 분할된 매핑 단위들 중 상기 제m 타겟 논리 주소 범위를 포함하는 하나를 다시 절반으로 분할하는 동작을 반복하는 것을 포함할 수 있다.
일 실시예에 의하면, 상기 분할하는 동작을 반복하는 것은, 상기 분할된 매핑 단위의 사이즈가 상기 제m 서브 타겟 논리 주소 범위의 사이즈와 같으면 상기 분할을 종료하고, 상기 분할된 매핑 단위를 상기 융합 매핑 단위로 결정할 수 있다.
일 실시예에 의하면, 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector)에 상응하고, 상기 최대 매핑 단위 사이즈는 2n(단, n은 자연수) 개의 블록(block)에 상응할 수 있다.
일 실시예에 의하면, 상기 매핑 단위들 각각의 헤드 논리 섹터 주소가 동적으로 변할 수 있다.
본 발명의 일 목적을 달성하기 위하여 본 발명의 실시예들에 따른 스토리지 시스템의 메모리 장치 컨트롤러는 주소 매핑 테이블(address mapping table)을 참조하여 어플리케이션으로부터 수신한 데이터의 타겟 논리 주소 범위(target logical address range)에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하고, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰며, 상기 타겟 논리 주소에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 플래시 변환 레이어(Flash Translation Layer; FTL)를 포함할 수 있다.
일 실시예에 의하면, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)를 곱한 값에 상응할 수 있다.
일 실시예에 의하면, 상기 플래시 변환 레이어는 상기 매핑 단위들 각각의 사이즈를 상기 범위 내에서 2k 단위로 동적으로 변화시킬 수 있다.
본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 따라서, 복수의 주소 매핑 테이블들을 관리하는 기존의 하이브리드 매핑(hybrid mapping) 방식의 매핑 자료 구조 검색 시간이 증가되는 단점이 개선될 수 있다.
본 발명의 실시예들에 따른 스토리지 시스템의 메모리 장치 컨트롤러는 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 또한, 하나의 매핑 테이블의 엔트리 내에 단일 블록 사이즈 이상의 넓은 논리 주소 영역에 대한 물리 주소 정보가 포함될 수 있으므로, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상되고, 데이터 읽기 성능이 향상될 수 있다.
다만, 본 발명의 효과는 상술한 효과에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 본 발명의 실시예들에 따른 스토리지 시스템을 관리하기 위한 메모리 장치 컨트롤러를 나타내는 블록도이다.
도 2a는 도 1의 메모리 장치 컨트롤러에 의해 제어되는 매핑 테이블의 구조의 일 예를 나타내는 도면이다.
도 2b는 도 2a의 매핑 테이블에서 지원되는 매핑 단위들의 일 예를 나타내는 도면이다.
도 3은 본 발명의 실시예들에 따른 메모리 시스템의 주소 변환 방법을 설명하기 위한 순서도이다.
도 4는 도 3의 주소 변환 방법에서 매핑 테이블을 업데이트하는 동작의 일 예를 설명하기 위한 순서도이다.
도 5는 도 4의 매핑 테이블의 업데이트 방법에서 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분하는 일 예를 설명하기 위한 순서도이다.
도 6은 도 5의 서브 타겟 논리 주소 범위들의 일 예를 나타내는 도면이다.
도 7은 도 4의 매핑 테이블의 업데이트 방법에서 융합 매핑 단위를 업데이트하는 동작의 일 예를 나타내는 도면이다.
도 8은 도 4의 매핑 테이블의 업데이트 방법에서 매핑 단위를 분할하는 일 예를 나타내는 순서도이다.
도 9는 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다.
도 10은 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 본 발명의 실시예들에 따른 스토리지 시스템을 관리하기 위한 메모리 장치 컨트롤러를 나타내는 블록도이고, 도 2a는 도 1의 메모리 장치 컨트롤러에 의해 제어되는 주소 매핑 테이블의 구조의 일 예를 나타내는 도면이며, 도 2b는 도 2a의 주소 매핑 테이블에서 지원되는 매핑 단위들의 일 예를 나타내는 도면이다.
도 1 내지 도 2b를 참조하면, 메모리 장치 컨트롤러(100)는 플래시 변환 레이어(Flash Translation Layer; FTL)를 포함할 수 있다.
메모리 장치 컨트롤러(100)를 포함하는 스토리지 시스템은 메모리 장치 컨트롤러(100), 메모리 장치 컨트롤러(100)와 연결되는 어플리케이션(10) 및 플래시 메모리 장치(20)를 포함할 수 있다.
일 실시예에서, 메모리 장치 컨트롤러(100)는 어플리케이션(10)에 의하여 발생된 데이터를 메모리 장치의 종류에 무관하게(independent) 쓸 수 있는 인터페이스를 제공하는 파일 시스템을 더 포함할 수 있다.
플래시 변환 레이어(140)는 플래시 메모리 장치(20)에 데이터를 쓸 수 있도록 플래시 메모리 장치(20)에 대한 인터페이스를 제공할 수 있다. 플래시 변환 레이어(140)는 어플리케이션(10)으로부터 제공되는 데이터의 타겟 논리 주소의 정보를 제공받을 수 있다. 상기 타겟 논리 주소의 정보는 타겟 논리 주소 범위(target logical address range) 및 이에 포함되는 논리 주소의 정보를 포함할 수 있다. 여기서, 상기 타겟 논리 주소 범위는 주소 매핑 테이블(address mapping table)에 설정된 논리 주소들 중 데이터 쓰기 명령에 의해 선택되는 논리 주소들을 포함하는 범위를 의미한다. 플래시 변환 레이어(140)는 주소 매핑 테이블을 참조하여 상기 타겟 논리 주소를 물리적 저장 영역의 물리 주소로 매핑할 수 있다. 플래시 변환 레이어(140)는 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓸 수 있다. 또한, 플래시 변환 레이어(140)는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위들(mapping unit) 중 상기 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트할 수 있다. 상기 물리 주소는 플래시 메모리 장치(20)가 사용하는 물리 주소에 상응할 수 있다. 일 실시예에서, 플래시 변환 레이어(140)는 상기 주소 매핑 테이블을 참조하여 논리적 메모리 주소를 물리적 메모리 주소로 직접 매핑할 수 있다.
일 실시예에서, 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응할 수 있다. 예를 들어, 플래시 메모리 장치(20)의 설정에 따라 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector) 사이즈와 동일한 512 바이트(byte)에 상응하고, 상기 최대 매핑 단위 사이즈는 2n(단, n은 자연수) 개의 메모리 블록(memory block)에 상응할 수 있다. 예를 들어, 하나의 페이지(page)는 8개의 섹터들을 포함하고, 하나의 블록은 128개의 페이지들을 포함할 수 있다. 다만, 이는 예시적인 것으로서, 상기 최소 매핑 단위 사이즈 및 상기 최대 매핑 단위 사이즈는 사용되는 메모리 시스템에 따라 최적의 사이즈로 결정될 수 있다.
도 2a에 도시된 바와 같이, 상기 주소 매핑 테이블은 다양한 사이즈의 매핑 단위들을 포함할 수 있다. 예를 들어, 상기 주소 매핑 테이블 엔트리는 단일 섹터로 구성되는 1섹터 매핑 단위(1-SECTOR UNIT), 2개의 섹터들이 융합된 2섹터 매핑 단위(2-SECTOR UNIT), 4개의 섹터들이 융합된 4섹터 매핑 단위(4-SECTOR UNIT) 등을 포함할 수 있다. 또한, 상기 주소 매핑 테이블은 8개의 섹터들이 융합된 1페이지 매핑 단위(1-PAGE UNIT), 16개의 섹터들(즉, 2개의 페이지들)이 융합된 2페이지 매핑 단위(2-PAGE UNIT)를 포함하고, 2k(단, k는 자연수) 개의 페이지 매핑 단위들이 융합된 슈퍼-페이지(super-page) 매핑 단위들을 포함할 수 있다. 또한, 상기 주소 매핑 테이블은 상기 슈퍼-페이지 단위들이 융합된 블록 단위(1-BLOCK UNIT), 2j(단, j는 자연수) 개의 블록 매핑 단위들이 융합된 슈퍼-블록(super-block) 매핑 단위들을 포함할 수 있다. 상기 매핑 테이블은 섹터 별로 상기 논리 주소 및 이에 대응하는 물리 주소를 포함할 수 있다. 상기 주소 매핑 테이블은 상기 매핑 단위들을 구성하는 복수의 섹터들의 엔트리에 대한 매핑 테이블을 가질 수 있다.
여기서, 2 이상의 섹터들을 포함하는 매핑 단위들(예를 들어, 2섹터 매핑 단위(2-SECTOR UNIT), 4섹터 매핑 단위(4-SECTOR UNIT), 1페이지 매핑 단위(1-PAGE UNIT) 등)은 연속된 논리 주소 및 이에 상응하는 연속된 물리 주소를 보장할 수 있다. 따라서, 상기 2 이상의 섹터들을 포함하는 매핑 단위들은 각각의 헤드 논리 섹터 주소(즉, 도 2a에서 HEAD로 표시)와 이에 연속되는 나머지 논리 섹터 주소(즉, 도 2a에 NON_HEAD로 표시됨)에 의해 정의될 수 있다. 상기 헤드 논리 섹터 주소가 아닌 논리 섹터 주소들(NON_HEAD)은 주소 질의(address query) 시에 물리 주소를 리턴 하는 데에 참조될 수 있다. 예를 들어, 도 2a에 도시된 바와 같이, 2페이지 매핑 단위(2-PAGE UNIT)에 상응하는 데이터가 연속적으로 써지는 경우, 상기 2페이지 매핑 단위(2-PAGE UNIT)의 헤드 논리 섹터 주소에 상응하는 물리 주소로부터 연속하여 2페이지의 데이터가 상기 저장 영역에 기입될 수 있다.
상기 헤드 논리 섹터 주소는 특정 논리 섹터(즉, 데이터 기입에 사용된 논리 섹터 주소)가 포함되는 매핑 단위에 따라 동적으로 변할 수 있다. 예를 들어, 논리 섹터 주소 3(S3)이 포함되는 매핑 단위의 사이즈가 1섹터인 경우, 논리 섹터 주소 3(S3)이 상기 헤드 논리 섹터 주소가 되고, 논리 섹터 3(S3)이 포함되는 매핑 단위의 사이즈가 2섹터인 경우, 논리 섹터 주소 2(S2)가 상기 헤드 논리 섹터 주소가 될 수 있다. 마찬가지로, 논리 섹터 주소 3(S3)이 포함되는 매핑 단위의 사이즈가 4섹터인 경우, 논리 섹터 0(S0)이 상기 헤드 논리 섹터 주소가 될 수 있다. 예를 들어, 기입되는 데이터가 논리 섹터 주소 3(S3)을 지시하는 경우, 섹터 주소 3(S3)에 의해 섹터 주소 3(S3)을 포함하는 매핑 단위의 상기 헤드 논리 섹터 주소가 참조되고, 상기 헤드 논리 섹터 주소와 섹터 주소 3(s3)의 오프셋에 따라 섹터 주소 3(S3)에 대응하는 물리 주소가 리턴될 수 있다
일 실시예에서, 플래시 변환 레이어(140)는 상기 데이터가 지시하는 논리 주소의 연속성에 기초하여 적어도 일부의 매핑 단위들의 사이즈를 상기 최소 매핑 단위 사이즈 내지 상기 최대 매핑 단위 사이즈 범위 내에서 2k 단위로 동적으로 변화시킬 수 있다. 예를 들어, 도 2b에 도시된 바와 같이, 플래시 변환 레이어(140)는 최소 매핑 단위 사이즈인 1섹터 매핑 단위(S)로부터 최대 매핑 단위 사이즈인 j블록 매핑 단위까지 상기 매핑 단위들의 사이즈를 동적으로 변화시킬 수 있다. 즉, 상기 매핑 단위 사이즈는 기입되는 데이터의 연속성에 기초하여 섹터 단위 사이즈(SUB_PAGE), 슈퍼 페이지 사이즈(SUPER_PAGE) 슈퍼 블록 사이즈(SUPER_BLOCK) 등으로 다양하게 변화되고, 논리 주소 별로 사이즈가 고정되지 않는다.
상술한 바와 같이, 본 발명의 실시예들에 따른 메모리 장치 컨트롤러(100)는 다양한 사이즈의 매핑 단위들을 포함하는 단일의 주소 매핑 테이블(즉, 매핑 자료 구조)을 이용하여 주소 매핑을 수행할 수 있다. 또한, 상기 매핑 단위 융합에 의해 하나의 매핑 테이블의 엔트리를 이용하여 블록 사이즈 이상의 넓은 논리 주소 영역에 대한 물리 주소 정보가 기입될 수 있으므로, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상되고, 데이터 읽기 성능이 향상될 수 있다.
플래시 변환 레이어(140)의 구체적인 동작 및 상기 주소 매핑 테이블을 업데이트하는 방법들에 대해서는 도 3 내지 도 10을 참조하여 상술하기로 한다.
도 3은 본 발명의 실시예들에 따른 메모리 시스템의 주소 변환 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 메모리 시스템의 주소 변환 방법은 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위를 입력받고(S100), 주소 매핑 테이블을 이용하여 상기 타겟 논리 주소를 물리적 저장 영역의 물리 주소로 매핑(S200)하며, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓴(S300) 후, 상기 타겟 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트(S400)할 수 있다.
상기 데이터의 상기 타겟 논리 주소 범위가 입력(S100)될 수 있다. 여기서, 상기 타겟 논리 주소 범위는 상기 주소 매핑 테이블에 설정된 논리 주소들 중 데이터 쓰기 명령에 의해 선택되는 논리 주소들을 의미한다. 예를 들어, 상기 타겟 논리 주소 범위에 포함되는 논리 주소는 하나의 섹터 또는 연속된 복수의 섹터들에 상응할 수 있다.
상기 주소 매핑 테이블에 의해 상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소가 상기 물리 주소로 매핑(S200)될 수 있다. 일 실시예에서, 플래시 변환 레이어가 상기 논리 주소를 상기 물리 주소로 직접 매핑할 수 있다. 상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응할 수 있다. 예를 들어, 상기 최소 매핑 단위 사이즈는 하나의 섹터(즉, 서브-페이지 사이즈)에 상응하고, 상기 최대 매핑 단위 사이즈는 2j(단, j는 자연수) 개의 블록(즉, 슈퍼-블록 사이즈)에 상응할 수 있다.
상기 매핑된 물리 주소를 기초로 상기 데이터가 기입(S300)될 수 있다.
상기 타겟 논리 주소 범위에 포함되는 논리 주소의 연속성에 기초하여 상기 매핑 단위들 중 적어도 하나의 사이즈가 동적으로 변화되어 상기 주소 매핑 테이블이 업데이트(S400)될 수 있다. 일 실시예에서, 상기 매핑 단위들 각각의 사이즈는 상기 설정된 범위 내에서 2k 단위로 동적으로 변할 수 있다. 상기 매핑 단위들 각각의 사이즈는 상기 기입된 데이터가 지시하는 논리 주소의 연속성(즉, 상기 타겟 논리 주소 범위의 사이즈)에 기초하여 변할 수 있다.
상기 주소 매핑 테이블의 업데이트(S400)는 상기 타겟 논리 주소 범위에 포함되는 논리 주소들을 융합하여 적어도 하나의 새로운 융합 매핑 단위들을 결정할 수 있다. 상기 융합 매핑 단위들은 상기 타겟 논리 주소들이 분할된 서브 타겟 논리 주소 범위들에 기초하여 결정될 수 있다. 일 실시예에서, 상기 융합 매핑 단위는 기존의 매핑 단위의 사이즈 및 서브 상기 타겟 논리 주소 범위들에 기초하여 분할될 수도 있다. 여기서, 상기 융합 매핑 단위들은 현재 매핑 단위들이 타겟 논리 주소 범위를 구성하는 서브 타겟 논리 주소에 기초한 일련의 융합 및/또는 분할 과정을 거쳐 업데이트된 매핑 단위들을 의미한다. 상술한 바와 같이, 본 발명의 실시예들에 따른 스토리지 시스템의 주소 변환 방법은 다양한 사이즈의 매핑 단위들을 포함하는 하나의 매핑 자료 구조(즉, 주소 매핑 테이블)만을 이용하므로, 복수의 자료 구조를 검색하는 하이브리드 매핑 방식과 비교하여 자료 구조 검색 시간이 더욱 감소될 수 있다.
도 4는 도 3의 주소 변환 방법에서 매핑 테이블을 업데이트하는 동작의 일 예를 설명하기 위한 순서도이다.
도 3 및 도 4를 참조하면, 주소 매핑 테이블을 업데이트(S400)하는 방법은 타겟 논리 주소 범위를 제1 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소 범위들로 구분(S410)하고, 제m(단, m은 n이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단(S420)하며, 상기 제m 서브 타겟 논리 주소 범위가 단일의 상기 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(S430)할 수 있다. 또한, 주소 매핑 테이블을 업데이트(S400)하는 방법은 상기 제m 서브 타겟 논리 주소 범위가 복수의 상기 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정(S440)하며, 상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트(S450)할 수 있다. 상기 타겟 논리 주소 범위에 포함되는 논리 주소들이 융합됨으로써 상기 타겟 논리 주소 범위가 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분(S410)될 수 있다. 상기 1 내지 제n 서브 타겟 논리 주소 범위들은 업데이트되는 융합 매핑 단위의 기초가 된다. 상기 1 내지 제n 서브 타겟 논리 주소 범위들은 각각 2k에 상응하는 사이즈를 가질 수 있다. 상기 논리 주소들을 융합하여 서브 타겟 논리 주소 범위들을 구분하는 방법은 도 5 내지 도 7을 참조하여 설명하기로 한다.
일 실시예에서, 하나의 서브 타겟 논리 주소의 첫 논리 섹터 주소(또는 시작 논리 섹터 주소)는 이에 대응하는 융합 매핑 단위의 헤드 논리 섹터 주소에 상응할 수 있다.
상기 제m 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단(S420)할 수 있다. 상기 판단 과정은 상기 제1 내지 제n 서브 타겟 논리 주소 범위들에 각각 순차적으로 적용될 수 있다. 즉, 상기 판단 과정을 통해 상기 제1 내지 제n 서브 타겟 논리 주소 범위들을 각각 포함하는 현재 매핑 단위의 분할 여부가 판단된다.
상기 제m 서브 타겟 논리 주소 범위가 단일의 상기 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위는 적어도 한 번 분할(S430)될 수 있다. 이 경우, 상기 현재 매핑 단위의 사이즈는 상기 제m 서브 타겟 논리 주소 범위보다 크다. 상기 분할이 완료된 매핑 단위들은 새로운 융합 매핑 단위들로 결정(S440)될 수 있다. 이 때, 상기 융합 매핑 단위들 각각의 첫 논리 섹터 주소는 헤드 논리 섹터 주소로 업데이트될 수 있다. 또한, 상기 융합 매핑 단위들 각각에 대응하는 물리 주소가 업데이트(S450)될 수 있다.
상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들과 중첩되는 경우(또는, 복수의 현재 매핑 단위들에 포함되는 경우), 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 상기 융합 매핑 단위가 결정(S440)될 수 있다. 예를 들어, 상기 제m 서브 타겟 논리 주소 범위가 논리 섹터 주소 8 내지 논리 섹터 주소 15을 포함하면서 8섹터의 사이즈를 갖는 경우, 이에 대응하는 상기 융합 매핑 단위의 사이즈는 8섹터이고, 상기 융합 매핑 단위의 헤드 논리 섹터 주소는 논리 섹터 주소 3에 상응할 수 있다. 상기 융합 매핑 단위들 각각의 첫 논리 섹터 주소는 헤드 논리 섹터 주소로 업데이트될 수 있다. 또한, 상기 융합 매핑 단위들 각각에 대응하는 물리 주소가 업데이트(S450)될 수 있다.
이에 따라, 상기 타겟 논리 주소 범위에 대응하는 현재 매핑 단위들은 상기 서브 타겟 논리 주소 범위들의 사이즈 및 위치에 기초하여 분할 또는 융합될 수 있다. 따라서, 매핑 자료 구조(예를 들어, 주소 매핑 테이블)의 검색 시간이 크게 단축될 수 있다.
도 5는 도 4의 매핑 테이블의 업데이트 방법에서 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분하는 일 예를 설명하기 위한 순서도이고, 도 6은 도 5의 서브 타겟 논리 주소 범위들의 일 예를 나타내는 도면이다.
도 4 내지 도 6을 참조하면, 타겟 논리 주소 범위를 복수의 서브 타겟 논리 주소 범위들로 구분(S410)하는 방법은 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정(S412)하고, 상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출(S414)하며, 상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈(sub-size)에 기초하여 제2 최대 사이즈를 산출(S416)하고, 상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 생성(S418)하는 것을 포함할 수 있다. 상기 S412 내지 S418 단계들이 반복됨으로써 제1 내지 제n 서브 타겟 논리 주소 범위들(STLA1, STLA2, STLA3, STLA4)이 결정될 수 있다.
우선, 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소가 결정(S412)될 수 있다. 일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1)의 첫 논리 섹터 주소(FSA1)는 타겟 논리 주소 범위(TLA)의 첫 논리 섹터 주소(FSA)에 상응할 수 있다. 제2 서브 타겟 논리 주소 범위(STLA2)의 첫 논리 주소(FSA2)는 제1 서브 타겟 논리 주소 범위(STLA1)가 결정된 후에 결정될 수 있다. 제2 서브 타겟 논리 주소 범위(STLA2)의 첫 논리 주소 (FSA2)는 제1 서브 타겟 논리 주소 범위(STLA1)의 마지막 논리 섹터 주소의 다음 논리 섹터 주소(FSA2)에 상응할 수 있다. 또한, 제m 서브 타겟 논리 주소 범위의 첫 논리 주소는 제m-1 서브 타겟 논리 주소 범위가 결정된 후에 결정될 수 있다. 일 실시예에서, 제1 타겟 논리 주소 범위(STLA1)를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응할 수 있다.
이하, 제1 서브 타겟 논리 주소 범위(STLA1)가 결정되는 방법을 중심으로 설명하기로 한다.
제1 서브 타겟 논리 주소 범위(STLA1)의 첫 논리 섹터 주소(FSA1)에 기초하여 제1 최대 사이즈가 산출(S414)될 수 있다. 첫 논리 섹터 주소(FSA1)는 2의 제곱근들의 합으로 표현될 수 있다. 일 실시예에서, 상기 제1 최대 사이즈는 상기 2의 제곱근들 중 가장 작은 값에 상응할 수 있다. 예를 들어, 첫 논리 섹터 주소(FSA1)가 논리 섹터 24(즉, 24 + 23)인 경우, 상기 제1 최대 사이즈는 8섹터일 수 있다. 또는, 첫 논리 섹터 주소(FSA1)가 5(즉, 22 + 20)인 경우, 상기 제1 최대 사이즈는 1섹터(즉, 20)일 수 있다.
제1 서브 타겟 논리 주소 범위(STLA1)의 경우, 타겟 논리 주소 범위(TLA)의 사이즈에 기초하여 상기 제2 최대 사이즈가 산출(S416)될 수 있다. 상기 타겟 논리 주소 범위(TLA)의 사이즈 및 상기 서브 사이즈는 2의 제곱근들의 합으로 표현될 수 있다. 이 때, 상기 제2 최대 사이즈는 상기 서브 사이즈는 상기 2의 제곱근들 중 가장 큰 값에 상응할 수 있다.
제1 서브 타겟 논리 주소 범위(STLA1)의 경우, 상기 서브 사이즈는 타겟 논리 주소 범위(TLA)의 사이즈에 상응할 수 있다. 예를 들어, 도 6의 경우, 타겟 논리 주소 범위(TLA)의 사이즈는 60섹터(즉, 23 + 25 + 24 + 22)이므로, 제1 서브 타겟 논리 주소 범위(STLA1)의 상기 제2 최대 사이즈는 32섹터(즉, 25)일 수 있다.
일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1)를 제외한 제m 서브 타겟 논리 주소 범위의 경우, 상기 서브 사이즈는 타겟 논리 주소 범위(TLA)의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값에 상응할 수 있다. 예를 들어, 제2 서브 타겟 논리 주소 범위(STLA2)의 상기 서브 사이즈는 52섹터(즉, 60 - 23)이고, 제2 서브 타겟 논리 주소 범위(STLA2)의 상기 제2 최대 사이즈는 32섹터(즉, 25)일 수 있다. 나머지 서브 타겟 논리 주소 범위들에 대해서도 동일한 방식으로 상기 제2 최대 사이즈가 산출될 수 있다.
첫 논리 섹터 주소(FSA1)로부터 연속되는 상기 논리 주소들이 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합되어 상기 제m 서브 타겟 논리 주소 범위가 결정(S418)될 수 있다. 도 6에 도시된 바와 같이, 제1 서브 타겟 논리 주소 범위(STLA1)의 상기 제1 최대 사이즈가 8섹터이고 상기 제2 최대 사이즈가 32섹터인 경우, 제1 서브 타겟 논리 주소 범위(STLA1)는 8섹터 사이즈로 융합될 수 있다.
마찬가지로, 제2 서브 타겟 논리 주소 범위(STLA2)는 32섹터 사이즈(즉, 25)로 융합되고, 제3 서브 타겟 논리 주소 범위(STLA3)는 16섹터 사이즈(즉, 24)로 융합되며, 제4 서브 타겟 논리 주소 범위(STLA4)는 4섹터 사이즈(즉, 22)로 융합될 수 있다. 다만, 이는 예시적인 것으로서, 서브 타겟 논리 주소 범위의 사이즈가 이에 한정되는 것은 아니다.
도 6에 도시된 바와 같이, 타겟 논리 주소 범위(TLA)에 대응하는 현재 매핑 테이블(OLD MAP TABLE)의 현재 매핑 단위들(MU1 내지 MU5)은 제1 내지 제4 서브 타겟 논리 주소 범위들(STLA1 내지 STLA4)에 기초하여 융합 매핑 단위들(NMU1 내지 NMU6)로 업데이트될 수 있다. 일 실시예에서, 제1 서브 타겟 논리 주소 범위(STLA1) 가 제1 현재 매핑 단위(MU1) 내에 포함되므로, 제1 현재 매핑 단위(MU1)가 분할될 수 있다. 그 결과, 23 섹터 사이즈를 갖는 제1 및 제2 융합 매핑 단위들(NMU1, NMU2)이 결정될 수 있다. 분할된 매핑 단위의 사이즈가 제1 서브 타겟 논리 주소 범위(STLA1)에 상응하는 사이즈와 같아지면 상기 분할 동작이 종료될 수 있다. 여기서, 제1 현재 매핑 단위(MU1)는 두 번 분할될 수 있다. 마찬가지로, 제5 현재 매핑 단위(MU5)는 제4 서브 타겟 논리 주소 범위(STLA4)의 사이즈에 기초하여 분할될 수 있다.
또한, 도 6에 도시된 바와 같이, 제2 및 제3 서브 타겟 논리 주소 범위들(STLA2, STLA3)에 기초하여 제1 현재 매핑 유닛(MU1)의 일부 내지 제4 현재 매핑 유닛들(MU2, MU3, MU4)이 각각 융합되어 제3 및 제4 융합 매핑 단위들(NMU3, NMU4)이 결정될 수 있다. 제3 융합 매핑 단위(NMU3)는 25섹터 사이즈를 가지고, 제4 융합 매핑 단위(NMU4)는 24섹터 사이즈를 가질 수 있다.
제1 내지 제6 융합 매핑 단위들(NMU1 내지 NMU6) 각각의 헤드 논리 섹터 주소가 업데이트되고, 제1 내지 제6 융합 매핑 단위들(NMU1 내지 NMU6) 각각의 논리 주소들에 대응하는 물리 주소들이 업데이트됨으로써 주소 매핑 테이블이 업데이트될 수 있다.
상술한 바와 같이, 상기 타겟 논리 주소 범위에 대응하는 현재 매핑 단위들은 상기 서브 타겟 논리 주소 범위들의 사이즈 및 위치에 기초하여 분할 또는 융합될 수 있다. 따라서, 매핑 자료 구조(예를 들어, 주소 매핑 테이블)의 검색 시간이 크게 단축될 수 있다.
도 7은 도 4의 매핑 테이블의 업데이트 방법에서 융합 매핑 단위를 업데이트하는 동작의 일 예를 나타내는 도면이다.
도 4 내지 도 7을 참조하면, 하나의 서브 타겟 논리 주소 범위(STLA)에 기초하여 현재 매핑 단위들(MU1, MU2, MU3)이 융합 매핑 단위(NMU)로 융합(또는 업데이트)될 수 있다.
기존의 매핑 테이블에서, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)에 각각 대응하는 물리 주소들(A1, A2, A3)에 데이터가 기입될 수 있다. 타겟 논리 주소 범위(TLA)에 대응하는 새로운 물리 주소의 매핑을 위해 매핑 테이블의 업데이트가 필요하다.
상술한 과정에 의해 결정된 서브 타겟 논리 주소 범위(STLA)와 이에 대응하는 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 비교될 수 있다. 도 7에 도시된 바와 같이, 서브 타겟 논리 주소 범위(STLA)는 4섹터(4S) 사이즈를 갖고, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 서브 타겟 논리 주소 범위(STLA)에 포함될 수 있다. 따라서, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 융합될 수 있다.
서브 타겟 논리 주소 범위(STLA)의 첫 논리 섹터 주소(LA1)에 기초하여 제1 최대 사이즈가 산출될 수 있다. 또한, 서브 타겟 논리 주소 범위(STLA)를 포함하는 타겟 논리 주소 범위의 사이즈에 기초하여 제2 최대 사이즈가 산출될 수 있다. 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)이 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합될 수 있다. 도 7에 도시된 바와 같이, 제1 내지 제3 매핑 단위들(MU1, MU2, MU3)은 4섹터의 새로운 융합 매핑 단위(NMU)로 융합(FUSION)될 수 있다. 융합 매핑 단위(NMU)의 헤드 주소는 제1 논리 주소(LA1)에 상응할 수 있다. 상기 융합 매핑 단위를 결정하는 방법은 도 3 내지 도 6을 참조하여 상술하였으므로, 이에 중복되는 설명은 생략하기로 한다.
융합 매핑 단위(NMU)는 연속적인 논리 주소들(LA1, LA2, LA3) 및 상기 논리 주소들에 대응하는 연속적인 물리 주소들(B)을 포함할 수 있다. 이와 같이, 매핑 단위 융합에 의해 상기 주소 매핑 테이블이 업데이트됨으로써 헤드 논리 섹터 주소의 개수가 줄어들 수 있다(즉, 논-헤드 논리 섹터가 증가함). 따라서, 휘발성 메모리의 제한된 크기 내에서 주소 매핑을 위한 연속되는 데이터의 캐시(cache) 효과가 향상될 수 있다.
도 8은 도 4의 매핑 테이블의 업데이트 방법에서 매핑 단위를 분할하는 일 예를 나타내는 순서도이고, 도 9는 도 8의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다.
도 4, 도 8 및 도 9를 참조하면, 현재 매핑 단위를 분할(S430)하는 방법은 제m 서브 타겟 논리 주소 범위(STLA)를 포함하는 현재 매핑 단위(MU)를 절반으로 분할하여 분할된 현재 매핑 단위들(NMU1, NMU2)을 생성(S432)하고, 분할된 매핑 단위들 중 제m 타겟 논리 주소 범위(STLA)를 포함하는 하나를 다시 절반으로 분할(S436)할 수 있다.
현재 매핑 단위(MU) 내의 소정의 논리 주소(LA2)에 대응하는 물리 주소(A)에 데이터가 기입될 수 있다. 이에 따라, 주소 매핑 테이블의 업데이트가 필요하다. 도 9에 도시된 바와 같이, 제m 서브 타겟 논리 주소 범위(STLA)는 1섹터 사이즈를 가지고, 현재 매핑 단위(MU)는 4섹터 사이즈를 갖는다.
제m 서브 타겟 논리 주소 범위(STLA)가 단일의 현재 매핑 단위(MU) 내에 포함되는 경우, 제m 서브 타겟 논리 주소 범위(STLA)를 포함하는 현재 매핑 단위(MU)가 절반으로 분할(S432)될 수 있다. 따라서, 2섹터 사이즈를 갖는 두 개의 분할된 매핑 단위들(NMU1, NMU2)이 생성될 수 있다.
일 실시예에서, 각각의 분할된 매핑 단위들(NMU1, NMU2)과 서브 타겟 논리 주소 범위(STLA)가 비교될 수 있다. 제1 분할된 매핑 단위(NMU1)는 제m 서브 타겟 논리 주소 범위(STLA)를 포함하지 않으므로, 더 이상 분할되지 않는다. 따라서, 제1 분할된 매핑 단위(NMU1)는 새로운 융합 매핑 단위로 결정될 수 있다.
제2 분할된 매핑 단위(NMU1)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교(S434)될 수 있다. 예를 들어, 제2 분할된 매핑 단위(NMU2)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교될 수 있다.
도 9에 도시된 바와 같이, 제2 분할된 매핑 단위(NMU2)의 사이즈가 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈보다 큰 경우, 제2 분할된 매핑 단위(NMU2)는 제3 분할된 매핑 단위(NMU3)와 제4 분할된 매핑 단위(NMU4)로 분할될 수 있다. 제3 및 제4 분할된 매핑 단위들(NMU3, NMU4)은 각각 1섹터 사이즈를 가질 수 있다. 제4 분할된 매핑 단위(NMU4)는 제m 서브 타겟 논리 주소 범위(STLA)를 포함하지 않으므로, 더 이상 분할되지 않는다. 따라서, 제4 분할된 매핑 단위(NMU4)는 새로운 융합 매핑 단위로 결정될 수 있다.
다시, 제3 분할된 매핑 단위(NMU3)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 비교(S434)될 수 있다. 일 실시예에서, 분할된 매핑 단위의 사이즈가 제m 서브 타겟 논리 주소 범위에 상응하는 사이즈와 같으면 상기 분할이 종료될 수 있다. 도 9에 도시된 바와 같이, 제3 분할된 매핑 단위(NMU3)의 사이즈와 제m 서브 타겟 논리 주소 범위(STLA)의 사이즈가 동일하므로, 상기 분할 동작이 종료될 수 있다. 최종적으로, 제1, 제3 및 제4 분할된 매핑 단위들(NMU1, NMU3, NMU4)이 각각 융합 매핑 단위로 결정될 수 있다.
상기 분할이 종료되면, 상기 분할된 매핑 단위들 각각의 헤드 논리 섹터 주소(LA1, LA2, LA3)에 기초하여 서브 타겟 논리 주소 범위(STLA)에 대응하는 물리 주소가 업데이트될 수 있다. 예를 들어, 서브 타겟 논리 주소 범위(LA2)에 대응하는 물리 주소(A)가 사용되었으므로, 서브 타겟 논리 주소 범위(LA2)에 대응하는 물리 주소의 위치가 'B'의 위치로 업데이트될 수 있다. 이에 따라, 주소 매핑 테이블의 엔트리 및 이에 대응하여 리턴되는 물리 주소가 업데이트될 수 있다.
도 10은 도 5의 매핑 단위를 분할하는 동작의 일 예를 나타내는 도면이다.
도 10을 참조하면, 서브 타겟 논리 주소 범위(STLA)에 기초하여 주소 매핑 테이블에 포함되는 매핑 단위가 반복적으로 분할되어 주소 매핑 테이블이 업데이트될 수 있다.
도 10에 도시된 바와 같이, 서브 타겟 논리 주소 범위(TLA)가 2x 섹터를 갖는 하나의 매핑 단위에 포함될 수 있다. 따라서, 상기 매핑 단위의 분할 동작이 시작될 수 있다. 상기 매핑 단위는 2x-1 섹터 사이즈를 갖는 두 개의 매핑 단위로 분할될 수 있다. 서브 타겟 논리 주소(STLA)가 포함되는 매핑 단위는 반복적으로 분할될 수 있다. 또한, 분할된 매핑 단위에 서브 타겟 논리 주소(STLA)가 중첩되지 않는 경우, 상기 분할된 매핑 단위는 더 이상 분할되지 않는다.
최종적으로, 상기 분할된 매핑 단위의 사이즈가 서브 타겟 논리 주소 범위(STLA)에 상응하는 사이즈와 같으면 상기 분할이 종료될 수 있다. 상기 분할된 매핑 단위는 상기 융합 매핑 단위로 결정될 수 있다. 예를 들어, 서브 타겟 논리 주소 범위(STLA)에 대응하는 매핑 단위는 서브 타겟 논리 주소 범위(STLA)의 사이즈(도 10에서 1섹터 사이즈(1S)로 도시됨.)를 가질 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따른 주소 변환 방법은 하나의 주소 매핑 테이블 사이즈 내에 포함되는 다양한 사이즈의 매핑 단위들을 동적으로 분할 및 융합할 수 있다. 즉, 복수의 주소 매핑 테이블들을 관리하는 기존의 하이브리드 매핑(hybrid mapping) 방식의 매핑 자료 구조 검색 시간이 증가되는 단점이 개선될 수 있다.
본 발명은 논리 주소와 물리 주소 사이의 주소 매핑을 사용하는 스토리지 시스템 및 컴퓨터 시스템들에 적용될 수 있다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 어플리케이션 20: 플래시 메모리
100: 메모리 장치 컨트롤러 140: 플래시 변환 레이어

Claims (16)

  1. 어플리케이션(application)으로부터 인가되는 데이터의 타겟 논리 주소 범위(target logical address range)를 입력받는 단계;
    주소 매핑 테이블(address mapping table)을 이용하여 상기 타겟 논리 주소 범위에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하는 단계;
    상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰는 단계;
    상기 타겟 논리 주소 범위에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 단계를 포함하고,
    상기 주소 매핑 테이블을 업데이트하는 단계는
    상기 타겟 논리 주소 범위에 포함되는 논리 섹터 주소들 각각을 2의 제곱근들의 합으로 표현한 값 및 상기 타겟 논리 주소 범위의 사이즈에 기초하여 상기 데이터의 사이즈에 독립적인 제1 서브 타겟 논리 주소 범위(sub-target logical address range) 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소를 순차적으로 산출함으로써 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하는 단계;
    제m(단, m은 n 이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단하는 단계;
    상기 제m 서브 타겟 논리 주소 범위가 단일의 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(split)하는 단계;
    상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정하는 단계; 및
    상기 융합 매핑 단위에 대응하는 물리 주소를 업데이트하는 단계를 포함하며,
    상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응하고,
    상기 매핑 단위들 각각의 사이즈는 상기 기 설정된 범위 내에서 2k 단위로 분할되고 융합되는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서, 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하는 단계는
    상기 제m 서브 타겟 논리 주소 범위의 첫 논리 섹터 주소를 결정하는 단계;
    상기 첫 논리 섹터 주소에 기초하여 제1 최대 사이즈를 산출하는 단계;
    상기 타겟 논리 주소 범위의 사이즈에서 상기 제1 내지 제m-1 서브 타겟 논리 주소 범위들 전체의 사이즈를 뺀 값인 서브 사이즈(sub-size)에 기초하여 제2 최대 사이즈를 산출하는 단계; 및
    상기 첫 논리 섹터 주소로부터 연속되는 상기 논리 주소들을 상기 제1 최대 사이즈와 상기 제2 최대 사이즈 중 더 작은 사이즈로 융합하여 상기 제m 서브 타겟 논리 주소 범위를 결정하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  6. 제 5 항에 있어서, 상기 첫 논리 섹터 주소를 2의 제곱근들의 합으로 표현하였을 때, 상기 제1 최대 사이즈는 상기 2의 제곱근들 중 가장 작은 값에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  7. 제 6 항에 있어서, 상기 서브 사이즈를 2의 제곱근들의 합으로 표현하였을 때, 상기 제2 최대 사이즈는 상기 2의 제곱근들 중 가장 큰 값에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  8. 제 5 항에 있어서, 상기 제1 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 상기 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소에 상응하고,
    상기 제1 서브 타겟 논리 주소 범위를 제외한 상기 제m 서브 타겟 논리 주소 범위의 상기 첫 논리 섹터 주소는 제m-1 서브 타겟 논리 주소 범위의 마지막 논리 섹터 주소의 다음 논리 섹터 주소에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  9. 제 1 항에 있어서, 상기 융합 매핑 단위는 연속적인 논리 주소들 및 상기 논리 주소들에 대응하는 쓰기 가능한 연속적인 물리 주소들을 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  10. 제 1 항에 있어서, 상기 현재 매핑 단위를 분할하는 단계는
    상기 제m 서브 타겟 논리 주소 범위를 포함하는 상기 현재 매핑 단위를 절반으로 분할하여 분할된 현재 매핑 단위들을 생성하는 단계; 및
    상기 분할된 매핑 단위들 중 상기 제m 서브 타겟 논리 주소 범위를 포함하는 하나를 다시 절반으로 분할하는 동작을 반복하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  11. 제 10 항에 있어서, 상기 분할하는 동작을 반복하는 단계는, 상기 분할된 매핑 단위의 사이즈가 상기 제m 서브 타겟 논리 주소 범위의 사이즈와 같으면 상기 분할을 종료하고, 상기 분할된 매핑 단위를 상기 융합 매핑 단위로 결정하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  12. 제 1 항에 있어서, 상기 최소 매핑 단위 사이즈는 하나의 섹터(sector)에 상응하고, 상기 최대 매핑 단위 사이즈는 2n(단, n은 자연수) 개의 블록(block)에 상응하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  13. 제 1 항에 있어서, 상기 매핑 단위들 각각의 헤드 논리 섹터 주소가 동적으로 변하는 것을 특징으로 하는 스토리지 시스템의 주소 변환 방법.
  14. 주소 매핑 테이블(address mapping table)을 참조하여 어플리케이션으로부터 수신한 데이터의 타겟 논리 주소 범위(target logical address range)에 포함되는 논리 주소를 물리적 저장 영역의 물리 주소로 매핑하고, 상기 매핑된 물리 주소를 기초로 상기 데이터를 쓰며, 상기 타겟 논리 주소에 포함되는 상기 논리 주소의 연속성에 기초하여 상기 주소 매핑 테이블의 엔트리(entry)를 구성하는 복수의 매핑 단위(mapping unit)들 중 적어도 하나의 사이즈(size)를 동적으로 변화시켜 상기 주소 매핑 테이블을 업데이트하는 플래시 변환 레이어(Flash Translation Layer; FTL)를 포함하고,
    상기 플래시 변환 레이어는 상기 타겟 논리 주소 범위에 포함되는 논리 섹터 주소들 각각을 2의 제곱근들의 합으로 표현한 값 및 상기 타겟 논리 주소 범위의 사이즈에 기초하여 상기 데이터의 사이즈에 독립적인 제1 서브 타겟 논리 주소 범위(sub-target logical address range) 내지 제n(단, n은 2 이상의 자연수) 서브 타겟 논리 주소를 순차적으로 산출함으로써 상기 타겟 논리 주소 범위를 상기 제1 내지 제n 서브 타겟 논리 주소 범위들로 구분하고, 제m(단, m은 n 이하의 자연수) 서브 타겟 논리 주소 범위가 포함되는 현재 매핑 단위의 개수를 판단한 후, 상기 제m 서브 타겟 논리 주소 범위가 단일의 현재 매핑 단위 내에 포함되는 경우, 상기 현재 매핑 단위를 분할(split)하며, 상기 제m 서브 타겟 논리 주소 범위가 복수의 현재 매핑 단위들에 중첩되는 경우, 상기 제m 서브 타겟 논리 주소 범위의 위치 및 사이즈에 상응하는 융합 매핑 단위를 결정하며,
    상기 주소 매핑 테이블이 지원하는 상기 매핑 단위들 각각의 사이즈는 기 설정된 최소 매핑 단위 사이즈 내지 기 설정된 최대 매핑 단위 사이즈 범위 내에서 상기 최소 매핑 단위 사이즈에 2k(단, k는 0 이상의 정수)을 곱한 값에 상응하고,
    상기 플래시 변환 레이어는 상기 매핑 단위들 각각의 사이즈를 상기 기 설정된 범위 내에서 2k 단위로 분할하고 융합하는 것을 특징으로 하는 스토리지 시스템의 메모리 장치 컨트롤러.
  15. 삭제
  16. 삭제
KR1020160033463A 2016-03-21 2016-03-21 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러 KR101805828B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160033463A KR101805828B1 (ko) 2016-03-21 2016-03-21 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러
PCT/KR2017/001702 WO2017164515A1 (ko) 2016-03-21 2017-02-16 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033463A KR101805828B1 (ko) 2016-03-21 2016-03-21 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러

Publications (2)

Publication Number Publication Date
KR20170109391A KR20170109391A (ko) 2017-09-29
KR101805828B1 true KR101805828B1 (ko) 2017-12-07

Family

ID=59900517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033463A KR101805828B1 (ko) 2016-03-21 2016-03-21 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러

Country Status (2)

Country Link
KR (1) KR101805828B1 (ko)
WO (1) WO2017164515A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687450B2 (en) 2020-05-19 2023-06-27 SK Hynix Inc. Storage device for translating address and operating method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102571629B1 (ko) * 2018-05-23 2023-08-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20200022118A (ko) * 2018-08-22 2020-03-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
CN111143313B (zh) * 2019-12-25 2023-07-25 成都三零嘉微电子有限公司 一种提高混合映射算法的日志块读写性能的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144367A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data run programming
US20110307645A1 (en) * 2010-06-10 2011-12-15 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced host to physical storage mapping using numerical compositions for persistent media

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209461B2 (en) * 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
KR101289931B1 (ko) * 2011-09-23 2013-07-25 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
US9146857B2 (en) * 2012-08-18 2015-09-29 Storart Technology Co. Ltd. Method for mapping management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144367A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data run programming
US20110307645A1 (en) * 2010-06-10 2011-12-15 Hitachi Global Storage Technologies Netherlands B.V. Implementing enhanced host to physical storage mapping using numerical compositions for persistent media

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11687450B2 (en) 2020-05-19 2023-06-27 SK Hynix Inc. Storage device for translating address and operating method thereof

Also Published As

Publication number Publication date
WO2017164515A1 (ko) 2017-09-28
KR20170109391A (ko) 2017-09-29

Similar Documents

Publication Publication Date Title
KR102042643B1 (ko) 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리
US9684462B2 (en) Method and apparatus utilizing non-uniform hash functions for placing records in non-uniform access memory
US7461198B2 (en) System and method for configuration and management of flash memory
KR100843135B1 (ko) 비휘발성 메모리 관리 방법 및 장치
KR101805828B1 (ko) 스토리지 시스템의 주소 변환 방법 및 스토리지 시스템의 메모리 장치 컨트롤러
US10366003B2 (en) Controller, storage device, and computer program product for writing and transfer process
CN104246722A (zh) 用于基于哈希表排除数据重复的存储系统,存储控制器及方法
CN111522507B (zh) 一种低延迟的文件系统地址空间管理方法、系统及介质
US20160170873A1 (en) Information processing device
US7822940B2 (en) Apparatus and method for managing mapping information of nonvolatile memory
US20190370238A1 (en) Method and device for indexing dirty data in storage system page
WO2016106757A1 (zh) 一种存储数据的管理方法、存储管理器及存储系统
EP3093772A1 (en) Data processing method, data writing method, and related apparatus
CN116340198B (zh) 固态硬盘的数据写入方法、其装置及固态硬盘
CN109992527B (zh) 一种全闪存储系统的位图管理方法
KR101735065B1 (ko) 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법
TWI514136B (zh) 快閃記憶裝置及其資料寫入方法
US8214605B2 (en) Method for reading out data from a storage medium
US20230168830A1 (en) Method and apparatus for data access of nand flash file, and storage medium
US20090043770A1 (en) Method of Realizing Commands Synchronization in Supporting Multi-Threading Non-Volitale Memory File System
CN111026890A (zh) 基于索引表的图片数据存储方法、系统、装置和存储介质
CN111881064A (zh) 一种全闪存储系统中访问请求的处理方法、装置及设备
CN107832234B (zh) 一种用于nand flash的日志块快速命中方法
CN111694759B (zh) 快闪存储器管理方法及快闪存储器
CN116627329A (zh) Ssd存储优化的方法、装置、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)