KR20160084784A - 드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법 - Google Patents

드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법 Download PDF

Info

Publication number
KR20160084784A
KR20160084784A KR1020150031220A KR20150031220A KR20160084784A KR 20160084784 A KR20160084784 A KR 20160084784A KR 1020150031220 A KR1020150031220 A KR 1020150031220A KR 20150031220 A KR20150031220 A KR 20150031220A KR 20160084784 A KR20160084784 A KR 20160084784A
Authority
KR
South Korea
Prior art keywords
data
attribute
flash memory
mapping
address
Prior art date
Application number
KR1020150031220A
Other languages
English (en)
Other versions
KR101676159B1 (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 한양대학교 산학협력단
Publication of KR20160084784A publication Critical patent/KR20160084784A/ko
Application granted granted Critical
Publication of KR101676159B1 publication Critical patent/KR101676159B1/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 드라이브 컨트롤러가 수행하는 주소 사상 방법에 관한 것이다.
구체적으로는 데이터의 논리 주소에 기초하여 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 데이터를 플래시 메모리에 저장하고, 데이터는 서로 다른 크기의 매핑 단위를 나타내는 주소 사상 방법에 관한 것이다.

Description

드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법{STORAGE APPARATUS INCLUDING DEVICE CONTROLLER, THE DEVICE CONTROLLER FOR PERFORMING ADDRESS MAPPING METHOD}
아래의 설명은 드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법에 관한 것으로 구체적으로는 로그 기반의 호스트로부터 수신한 데이터의 논리 주소를 이용하여 플래시 메모리를 관리하는 주소 사상 방법에 관한 것이다.
플래시 메모리 기반의 저장 장치는 호스트 장치로부터 수신한 데이터를 저장하기 위해 데이터의 논리 주소를 플래시 메모리에 적합한 물리 주소로 변환하여 데이터를 플래시 메모리에 저장한다. 이는 호스트 장치와 저장 장치가 데이터를 저장하기 위해 사용하는 구조가 상이하기 때문이다. 다시 말해, 호스트 장치는 섹터를 기반으로 데이터를 저장하고, 저장 장치는 블록과 페이지를 기반으로 데이터를 저장한다.
그러므로, 저장 장치에 저장되는 데이터의 논리 주소와 물리 주소는 서로 상이한 주소 체계를 나타내며, 저장 장치는 데이터를 식별하기 위해 논리 주소와 물리 주소가 매핑 관계가 표시된 매핑 테이블을 이용한다. 또한, 저장 장치는 매핑 테이블을 이용함에 따라 데이터 간의 상관 관계를 고려하지 않고, 데이터를 플래시 메모리에 분산하여 저장한다.
최근에는 데이터를 보다 효율적으로 관리하기 위하여 하이브리드 주소 사상 방법을 이용한다. 하이브리드 주소 사상 방법은 페이지 매핑과 물리 매핑을 조합하여 사용하는 주소 사상 방법으로써, 페이지 매핑으로 관리되는 논리 주소와, 블록 매핑으로 관리되는 논리 주소가 워크로드에 따라 변경된다. 결국, 저장 장치는 데이터를 저장하기 위한 논리 주소에 따라 서로 다른 매핑 단위를 통해 데이터를 저장한다.
그러나, 하이브리드 주소 사상 방법은 주소 사상 방법으로 관리되는 논리 주소 영역 크기가 가변적이며, 데이터가 저장되는 영역에 할당된 물리 로그 블록의 개수에 따라 전체적인 스토리지 성능이 달라진다. 또한, 저장 장치는 사용되는 매핑 단위에 따라 서로 다른 논리 주소에 데이터가 할당됨에 따라 페이지 매핑 및 블록 매핑과 동일하게 데이터를 분산하여 플래시 메모리에 저장한다.
따라서, 데이터의 상관 관계 및 데이터의 논리 주소를 이용하여 플래시 메모리를 관리할 수 있는 방법이 필요하다.
본 발명은 로그 기반의 호스트 장치가 전달하는 데이터의 논리 주소에 따라 워크로드의 속성을 파악하는 주소 사상 방법을 제공할 수 있다.
본 발명은 논리 주소에 따라 파악한 워크로드의 속성에 따라 서로 다른 매핑 단위를 통해 데이터를 관리하는 주소 사상 방법을 제공할 수 있다.
일실시예에 따른 드라이브 컨트롤러가 수행하는 주소 사상 방법은 로그 기반의 호스트로부터 데이터를 수신하여 상기 데이터의 속성을 판단하는 단계; 및 상기 판단한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 저장되도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 단계를 포함할 수 있다.
일실시예에 따른 판단하는 단계는 상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단할 수 있다.
일실시예에 따른 데이터의 속성은 상기 주소 매핑 정보를 포함하는 메타 데이터 영역 또는 사용자와 관련된 정보를 포함하는 사용자 데이터 영역 중 적어도 하나의 워크로드를 구분할 수 있다.
일실시예에 따른 전달하는 단계는 상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
일실시예에 따른 전달하는 단계는 상기 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 기반으로 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용할 수 있다.
일실시예에 따른 전달하는 단계는 상기 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 플래시 메모리에 연속적으로 저장되도록 데이터를 전달할 수 있다.
일실시예에 따른 전달하는 단계는 상기 로그 기반의 호스트에서 리니어하게 할당된 각각의 데이터를 구분하여 플래시 메모리에 저장하기 위해 블록 단위로 데이터를 저장하도록 전달할 수 있다.
일실시예에 따른 전달하는 단계는 상기 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 플래시 메모리에 연속적으로 저장하도록 데이터를 전달할 수 있다.
일실시예에 따른 전달하는 단계는 상기 호스트에서 할당된 데이터의 논리 주소 및 블록 단위로 플래시 메모리에 저장된 데이터의 물리 주소를 저장하기 위해 페이지 단위로 데이터를 저장할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 로그 기반의 호스트로부터 데이터를 수신하여 상기 데이터의 속성을 판단하고, 상기 판단한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 저장되도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단할 수 있다.
일실시예에 따른 데이터의 속성은 상기 주소 매핑 정보를 포함하는 메타 데이터 영역 또는 사용자와 관련된 정보를 포함하는 사용자 데이터 영역 중 적어도 하나의 워크로드를 구분할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 기반으로 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 데이터를 플래시 메모리에 연속적으로 저장되도록 데이터를 전달할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 데이터를 플래시 메모리에 연속적으로 저장하도록 데이터를 전달할 수 있다.
일실시예에 따른 저장 장치는 로그 기반의 호스트로부터 수신한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 나타내는 상기 데이터를 플래시 메모리에 전달하는 드라이브 컨트롤러 및; 상기 드라이브 컨트롤러로부터 전달된 데이터를 매핑 단위에 따라 플래시 메모리에 저장하는 플래시 메모리 컨트롤러를 포함할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단할 수 있다.
일실시예에 따른 드라이브 컨트롤러는 상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
본 발명의 일실시예에 따른 주소 사상 방법은 데이터의 논리 주소에 따라 워크로드의 속성을 파악함으로써, 데이터가 저장되는 영역에 따라 서로 다른 매핑 단위를 통해 데이터를 관리할 수 있다.
본 발명의 일실시예에 따른 주소 사상 방법은 논리 주소에 따라 사용자 데이터 영역을 블록 단위로 매핑하여 데이터를 관리함으로써, 메타 데이터의 크기를 효과적으로 감소시킬 수 있다.
본 발명의 일실시예에 따른 주소 사상 방법은 로그 기반의 호스트 장치의 사용자 데이터 영역에 대하여 연속 쓰기가 가능함에 따라 플래시 메모리에 대한 가비지 컬렉션의 오버헤더를 최소화할 수 있다.
도 1은 일실시예에 따른 호스트 장치와 저장 장치를 도시한 도면이다.
도 2는 일실시예에 따른 데이터의 논리 주소에 따라 서로 다른 매핑 단위를 통해 데이터를 플래시 메모리에 저장하는 과정을 설명하기 위해 도시한 도면이다.
도 3은 일실시예에 따른 플래시 메모리에 저장되는 데이터의 흐름을 설명하기 위해 도시한 도면이다.
도 4는 일실시예에 따른 주소 사상 방법을 설명하기 위해 도시한 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 호스트 장치와 저장 장치를 도시한 도면이다.
도 1을 참고하면, 저장 장치(102)는 호스트 장치(101)로부터 데이터를 수신할 수 있다. 여기서, 호스트 장치(101)는 로그 기반으로 데이터를 관리하는 장치로써, 데이터에 대한 연속 쓰기가 가능할 수 있다. 일례로, 호스트 장치(101)는 Log-Structured 기반의 파일 시스템을 이용하여 데이터를 관리하는 시스템일 수 있다. 또한, 호스트 장치(101)는 로그 기반으로 데이터를 관리함에 따라 연속적인 논리 주소를 이용해 데이터를 리니어(linear)하게 저장할 수 있다.
구체적으로, 호스트 장치(101)는 로그 기반으로 데이터를 관리함에 따라 로그를 기반으로 데이터가 저장되는 논리 주소에 따라 서로 다른 속성의 워크로드를 나타낼 수 있다. 다시 말해, 호스트 장치(101)는 리니어하게 증가하는 논리 주소를 주소 매핑 정보를 포함하는 메타 데이터 영역과 사용자와 관련된 정보를 포함하는 사용자 데이터 영역으로 구분할 수 있다. 그리고, 호스트 장치(101)는 구분된 각 영역에서 사용되는 논리 주소를 이용하여 데이터를 저장할 수 있다.
일례로, 호스트 장치(101)는 논리 주소의 시작 번호 '0'부터 리니어하게 증가하는 논리 주소를 이용하는 것으로 논리 주소 '0 ~ 10'는 메타 데이터를 저장하는 영역으로 사용하고, '11 ~ 100'는 사용자 데이터 영역을 저장하는 영역으로 사용할 수 있다. 이때, 호스트 장치(101)는 일반적으로 메모리의 대부분을 사용자 데이터를 저장하는데 주로 사용함에 따라 메타 데이터 영역보다 사용자 데이터 영역이 상대적으로 많은 논리 주소의 영역을 차지할 수 있다.
호스트 장치(101)는 논리 주소에 따라 구분된 영역에 대응하여 서로 다른 워크로드를 통해 데이터를 저장 장치(102)에 전달할 수 있다. 다시 말해, 호스트 장치(101)는 저장 장치(102)에 전달하고자 하는 데이터가 저장된 영역에서 사용하는 워크로드를 이용하여 저장 장치(102)에 데이터를 전달할 수 있다.
즉, 호스트 장치(101)는 메타 데이터 영역에 포함된 데이터를 전달하는 워크로드 또는 사용자 데이터 영역에 포함된 데이터를 전달하는 워크로드 중 적어도 하나의 워크로드를 이용하여 저장 장치(102)에 전달하고자 하는 데이터를 전달할 수 있다.
그리고, 저장 장치(102)는 호스트 장치(101)로부터 상기 워크로드를 통해 데이터를 수신함에 따라 워크로드의 속성을 통해 데이터의 속성을 판단할 수 있다. 다시 말해, 저장 장치(102)는 저장 장치(102) 내에 플래시 메모리(105)를 관리하는 디바이스 컨트롤러(103)를 이용하여 호스트 장치(101)로부터 전달된 데이터를 플래시 메모리(105)에 저장할 수 있다.
이 때, 디바이스 컨트롤러(103)는 전달된 데이터의 내용 또는 속성과 무관하게 데이터를 분산하여 플래시 메모리에 저장할 수 있다. 다시 말해, 디바이스 컨트롤러(103)는 호스트 장치(101)로부터 요청된 데이터를 분산하여 플래시 메모리에 매핑함에 따라 저장 장치(102)의 입출력 성능을 저하시키는 결과를 초래할 수 있다. 따라서, 디바이스 컨트롤러(103)는 로그 기반의 호스트 장치(101)에서 데이터를 저장하는 방법을 기반으로 데이터를 플래시 메모리에 저장함에 따라 입출력 성능을 향상시킬 수 있다.
이를 위해서, 디바이스 컨트롤러(103)는 호스트 장치(101)로부터 전달된 데이터의 논리 주소를 통해 데이터의 속성을 판단할 수 있다. 호스트 장치(101)는 리니어하게 증가하는 논리 주소를 기반으로 데이터를 저장하는 영역을 구분하고, 이에 대한 데이터를 디바이스 컨트롤러(103)에 제공할 수 있다. 결국, 디바이스 컨트롤러(103)는 데이터의 논리 주소를 통해 호스트 장치(101)로부터 전달된 데이터의 속성을 파악할 수 있다.
일례로, 논리 주소 '0 ~ 10'는 메타 데이터를 저장하는 영역으로 사용하고, '11 ~ 100'는 사용자 데이터 영역을 저장하는 영역으로 사용한다고 가정할 수 있다. 그리고, 디바이스 컨트롤러(103)는 호스트 장치(101)로부터 수신한 데이터의 논리 주소가 '11'인 경우, 상기 가정한 영역에 따라 사용자 데이터 영역으로 데이터의 속성을 파악할 수 있다.
그리고, 디바이스 컨트롤러(103)는 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 고려하여 서로 다른 매핑 단위를 통해 저장되도록 데이터를 플래시 메모리 컨트롤러(104)에 전달할 수 있다. 그리고, 플래시 메모리 컨트롤러(104)는 디바이스 컨트롤러(103)로부터 전달된 데이터의 매핑 단위를 고려하여 데이터를 리니어하게 플래시 메모리에 저장할 수 있다.
즉, 디바이스 컨트롤러(103)는 호스트 장치(101)로부터 전달된 데이터의 논리 주소에 대응하여 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
결국, 디바이스 컨트롤러(103)는 데이터를 저장함에 있어 워크로드의 특성을 바탕으로 데이터를 서로 다른 매핑 단위를 통해 관리함으로써, 데이터를 처리하기 위한 시간적 지역성을 극대화 시킬 수 있다. 이에 따라, 디바이스 컨트롤러(103)는 리니어하게 증가하는 논리 주소를 이용하는 데이터에 대한 입출력 요청에 대응하여 데이터의 논리 주소에 따른 연속적인 물리 주소를 통해 입출력 요청을 처리함에 따라 저장 장치(102)의 입출력 성능을 향상시킬 수 있다.
도 2는 일실시예에 따른 데이터의 논리 주소에 따라 서로 다른 매핑 단위를 통해 데이터를 플래시 메모리에 저장하는 과정을 설명하기 위해 도시한 도면이다.
도 2를 참고하면, 호스트 장치(201)와 저장 장치(205)는 데이터를 저장하는 영역에 따른 워크로드의 특성에 따라 파티션을 구분하여 데이터를 저장할 수 있다. 다시 말해, 저장 장치(205)는 호스트 장치(201)의 메타 데이터 영역(202)과 사용자 데이터 영역(203)에 대응하여 플래시 메모리의 파티션을 구분할 수 있다. 그리고, 저장 장치(205)는 호스트 장치(201)로부터 서로 다른 워크로드를 통해 전달되는 데이터를 구분하고, 데이터의 속성에 따라 플래시 메모리의 파티션에 연속적으로 데이터를 저장할 수 있다.
자세하게 설명하자면, 로그 기반의 호스트 장치(201)는 리니어하게 증가하는 논리 주소를 이용하여 데이터가 저장될 수 있다. 이때, 호스트 장치(201)는 논리 주소에 따른 시간적 지역성을 고려함에 따라 데이터들에 대한 연속 쓰기(Sequential Write)가 가능할 수 있다.
일례로, 호스트 장치(201)는 리니어하게 증가하는 논리 주소를 기반으로 서로 다른 특성을 갖는 워크로드로 구분할 수 있다. 그리고, 호스트 장치(201)는 워크로드의 특성에 따라 논리 주소를 기반으로 데이터를 연속 쓰기를 수행할 수 있다. 이 때, 데이터는 입출력 요청에 따른 연속 쓰기가 가능할 수 있다.
다시 말해, 호스트 장치(201)는 LBA(Logical Block Address)를 기반으로 '0 ~ 20'까지의 논리 주소를 메타 데이터 영역(202)으로 구분하고, '21 ~ 200'까지의 논리 주소를 사용자 데이터 영역(203)으로 구분할 수 있다. 그리고, 호스트 장치(201)는 영역 별로 구분된 논리 주소를 기반으로 데이터가 마지막으로 저장된 위치에 따라 순차적으로 데이터를 저장할 수 있다.
일례로, DATA(3)을 사용자 데이터 영역(203)에 저장한다고 가정할 수 있다. 호스트 장치(201)는 사용자 데이터 영역(203)에 마지막으로 저장된 데이터의 논리 주소 '35'를 확인하고, 확인된 논리 주소 '35' 다음 위치 즉, 논리 주소 '36'에 DATA(3)을 저장할 수 있다.
그리고, 저장 장치(205)는 호스트 장치(201)에 데이터가 저장된 논리 주소에 대응하여 연속적인 물리 주소를 갖도록 플래시 메모리(206)에 데이터를 저장할 수 있다. 구체적으로, 저장 장치(205)는 호스트 장치(201)의 워크로드의 특성에 따라 플래시 메모리(306) 내에 파티션을 구분할 수 있다.
즉, 저장 장치(205)는 호스트 장치(201)의 메타 데이터 영역(202)과 대응하는 제1 파티션(207) 및 사용자 데이터 영역(203)과 대응하는 제2 파티션(208)으로 구분할 수 있다. 여기서, 파티션은 호스트 장치(201)에서 구분된 데이터의 워크로드에 따라 자유롭게 구분될 수 있다.
이후, 저장 장치(205)는 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 데이터를 저장할 수 있다. 상세하게, 메타 데이터 영역(202)에 저장된 데이터는 호스트 장치(205)의 논리 주소와 저장 장치(206)의 물리 주소를 매핑하기 위한 정보를 포함할 수 있다.
즉, 메타 데이터 영역에 저장된 데이터는 호스트 장치(205)의 논리 주소와 저장 장치(206)의 물리 주소에 대한 주소 매핑 정보만을 포함함에 따라 사용자 데이터 영역(203)에 저장된 데이터보다 데이터가 차지하는 입출력 단위의 크기가 작을 수 있다. 또한, 메타 데이터 영역(202)에 저장된 데이터는 임의 쓰기(Random Write)의 특성을 보일 수 있다. 따라서, 저장 장치(205)는 메타 데이터 영역(202)에 저장된 데이터에 대하여 매핑 단위가 작은 페이지 단위로 주소를 매핑할 수 있다.
반대로, 사용자 데이터 영역(203)에 저장된 데이터는 실제적으로 연산에 필요한 정보를 포함하며, 메타 데이터 영역(202)에 저장된 데이터보다 입출력 단위의 크기가 클 수 있다. 따라서, 저장 장치(205)는 사용자 데이터 영역(203)에 저장된 데이터에 대하여 매핑 단위가 큰 블록 단위로 주소를 매핑할 수 있다. 또한, 저장 장치(205)는 데이터에 대한 접근 빈도에 따라 하이브리드 단위로 주소를 매핑할 수 있다.
여기서, 하이브리드 단위 매핑은 데이터의 접근 빈도에 따라 페이지 단위 또는 블록 단위로 관리하기 위한 매핑 단위를 나타낼 수 있다. 즉, 저장 장치(205)는 특정 데이터에 대하여 자주 접근되는 경우, 해당 논리 주소를 페이지 단위로 매핑할 수 있다. 그리고, 저장 장치(205)는 특정 데이터에 대하여 자주 접근하지 않는 경우, 해당 논리 주소를 블록 단위로 매핑할 수 있다.
결국, 제1 파티션(207)은 페이지 단위로 주소를 매핑하고, 제2 파티션(208)은 블록 단위 또는 하이브리드 단위로 주소를 매핑할 수 있다. 여기서, 저장 장치(205)는 사용자 데이터 영역(203)에 저장된 데이터를 관리함에 따라 블록 단위로 주소를 매핑함에 따라 메타 데이터의 크기를 효과적으로 감소시킬 수 있다.
그리고, 저장 장치(205)는 호스트 장치(201)에서 리니어하게 할당된 각각의 데이터를 구분하여 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용하여 데이터를 저장할 수 있다.
저장 장치(205)는 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 플래시 메모리(206)에 연속적으로 저장할 수 있다. 이 때, 저장 장치(205)는 로그 기반의 호스트에서 리니어하게 할당된 각각의 데이터를 구분하여 플래시 메모리에 저장하기 위해 블록 단위로 데이터를 저장할 수 있다.
또한, 저장 장치(205)는 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 플래시 메모리(206)에 연속적으로 저장할 수 있다. 이 때, 저장 장치(205)는 호스트에서 할당된 데이터의 논리 주소 및 블록 단위로 플래시 메모리(206)에 저장된 데이터의 물리 주소를 저장하기 위해 페이지 단위로 데이터를 저장할 수 있다.
도 3은 일실시예에 따른 플래시 메모리에 저장되는 데이터의 흐름을 설명하기 위해 도시한 도면이다.
도 3을 참고하면, 저장 장치(303)는 디바이스 컨트롤러(304)를 이용하여 호스트 장치(301)로부터 수신한 데이터를 플래시 메모리(307)에 저장할 수 있다.
구체적으로, 디바이스 컨트롤러(304)는 호스트 장치(301)로부터 데이터(302)를 수신할 수 있다. 이 때, 디바이스 컨트롤러(304)는 호스트 장치(301)로부터 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 수신할 수 있다. 여기서, 호스트 장치(301)는 저장 장치(303)와 연동된 형태에 따라 상이한 변수를 통해 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 디바이스 컨트롤러(304)에 전달할 수 있다.
다시 말해, 호스트 장치(301)와 저장 장치(303)는 연동된 형태 즉, 호스트 장치(301)와 저장 장치(303)을 연결하는 인터페이스의 형태에 따라 상이한 변수를 통해 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 전달할 수 있다. 인터페이스는 직접 연결형 인터페이스와 간접 연결형 인터페이스로 구분될 수 있다.
제1 실시예에 따르면, 호스트 장치(301)와 저장 장치(303)는 직접 연결형 인터페이스를 이용할 수 있다.
구체적으로, 호스트 장치(301)와 저장 장치(303)는 PCI(peripheral component interconnect) 케이블에 따른 직접 연결형 인터페이스를 이용하여 데이터(302) 및 데이터의 논리 주소(LBA: 19)를 디바이스 컨트롤러(304)에 전달할 수 있다. 여기서, 직접 연결형 인터페이스는 호스트 장치(301)와 저장 장치(303)를 연결하기 위한 버스 또는 로컬 버스를 의미할 수 있다.
그리고, 직접 연결형 인터페이스는 데이터(302)에 대한 입출력 요청이 발생할 때마다 변수를 생성하여 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 호스트 장치(301)에 전달할 수 있다.
제2 실시예에 따르면, 호스트 장치(301)와 저장 장치(303)는 간접 연결형 인터페이스를 이용할 수 있다.
구체적으로, 호스트 장치(301)와 저장 장치(303)는 SATA(Serial Advanced Technology Attachment) 케이블에 따른 간접 연결형 인터페이스를 이용하여 데이터(302) 및 데이터의 논리 주소(LBA: 19)를 디바이스 컨트롤러(304)에 전달할 수 있다.
그리고, 간접 연결형 인터페이스는 데이터(302)에 대한 입출력 요청이 발생할 때마다 호스트 장치(301)에서 현재 사용되지 않은 변수를 추출하여 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 호스트 장치(301)에 전달할 수 있다.
그리고, 디바이스 컨트롤러(304)는 호스트 장치(301)로부터 전달된 데이터(302) 및 데이터(302)의 논리 주소(LBA: 19)를 기반으로 데이터의 속성을 판단할 수 있다. 디바이스 컨트롤러(304)는 데이터(302)의 논리 주소에 따른 워크로드에 따른 속성을 통해 수신한 데이터(302)가 메타 데이터 인지 또는 사용자 데이터 인지를 판단할 수 있다. 이후, 디바이스 컨트롤러(304)는 데이터(302)의 논리 주소에 대응하여 플래시 메모리(307)에 연속적인 물리 주소를 갖는 데이터(305)를 플래시 메모리 컨트롤러(306)에 전달할 수 있다.
다시 말해, 디바이스 컨트롤러(304)는 데이터(302)의 논리 주소에 따라 동일한 물리 주소에 데이터가 저장될 수 있도록 연속적인 물리 주소를 갖는 데이터(305)를 플래시 메모리 컨트롤러(306)에 전달할 수 있다.
일례로, 디바이스 컨트롤러(304)는 데이터(302)의 논리 주소(LBA: 19)에 대응하여 논리 주소와 동일한 순서를 갖는 연속적인 물리 주소(PBA: X)를 갖도록 데이터(305)를 매핑할 수 있다. 이때, 디바이스 컨트롤러(304)는 데이터(302)의 논리 주소(LBA: 19)가 나타내는 속성에 따라 블록 단위 또는 페이지 단위로 데이터가 매핑될 수 있도록 매핑 단위를 플래시 메모리 컨트롤러(306)에 전달할 수 있다.
결국, 플래시 메모리 컨트롤러(306)는 디바이스 컨트롤러(304)로부터 전달된 데이터(305)의 매핑 단위에 대응하여 플래시 메모리에 저장할 수 있다.
도 4는 일실시예에 따른 주소 사상 방법을 설명하기 위해 도시한 흐름도이다.
단계(401)에서 호스트 장치(101)는 디바이스 컨트롤러(103)에 데이터를 전달할 수 있다. 이 때, 호스트 장치(101)는 데이터의 속성을 디바이스 컨트롤러(103)에서 판단할 수 있도록 데이터 및 데이터의 논리 주소를 동시에 전달할 수 있다.
단계(402)에서 디바이스 컨트롤러(103)는 호스트 장치(101)로부터 데이터 및 데이터의 논리 주소를 수신할 수 있다. 그리고, 디바이스 컨트롤러(103)는 데이터의 논리 주소를 기반으로 데이터의 속성을 판단할 수 있다. 여기서, 디바이스 컨트롤러(103)는 주소 매핑 정보를 포함하는 메타 데이터 영역 또는 사용자와 관련된 정보를 포함하는 사용자 데이터 영역 중 적어도 하나의 워크로드에 따른 데이터의 속성을 판단할 수 있다.
단계(403)에서 디바이스 컨트롤러(103)는 판단한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 저장되도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다. 구체적으로, 디바이스 컨트롤러(103)는 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
그리고, 디바이스 컨트롤러(103)는 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 기반으로 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용해 저장하도록 데이터를 플래시 메모리 컨트롤러에 전달할 수 있다.
디바이스 컨트롤러(103)는 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 플래시 메모리에 연속적으로 저장되도록 데이터를 전달할 수 있다.
그리고, 디바이스 컨트롤러(103)는 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 플래시 메모리에 연속적으로 저장하도록 데이터를 전달할 수 있다.
단계(404)에서 플래시 메모리 컨트롤러(104)는 디바이스 컨트롤러(103)를 통해 전달된 데이터의 매핑 단위를 이용하여 플래시 메모리에 데이터를 저장할 수 있다.
결국, 로그 기반의 호스트 장치(101)와 연동하는 저장 장치는 사용자 데이터 영역을 블록 단위로 주소를 매핑하여 관리함으로써, 주소 사상을 위해 필요한 메타 데이터의 크기를 효과적으로 감소시킬 수 있다. 또한, 저장 장치는 연속 쓰기의 특성을 나타내는 사용자 데이터 영역에 대하여 블록 단위의 주소 매핑을 사용함에 따라 가비지 컬렉션의 오버헤드를 최소화할 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
101: 호스트 장치
102: 저장 장치
103: 디바이스 컨트롤러
104: 플래시 메모리 컨트롤러
105: 플래시 메모리

Claims (19)

  1. 드라이브 컨트롤러가 수행하는 주소 사상 방법에 있어서,
    로그 기반의 호스트로부터 데이터를 수신하여 상기 데이터의 속성을 판단하는 단계; 및
    상기 판단한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 저장되도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 단계
    를 포함하는 주소 사상 방법.
  2. 제1항에 있어서,
    상기 판단하는 단계는,
    상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단하는 주소 사상 방법.
  3. 제2항에 있어서,
    상기 데이터의 속성은,
    상기 주소 매핑 정보를 포함하는 메타 데이터 영역 또는 사용자와 관련된 정보를 포함하는 사용자 데이터 영역 중 적어도 하나의 워크로드를 구분하는 주소 사상 방법.
  4. 제1항에 있어서,
    상기 전달하는 단계는,
    상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 주사 사상 방법.
  5. 제1항에 있어서,
    상기 전달하는 단계는,
    상기 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 기반으로 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용하는 주소 사상 방법.
  6. 제5항에 있어서,
    상기 전달하는 단계는,
    상기 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 플래시 메모리에 연속적으로 저장되도록 데이터를 전달하는 주소 사상 방법.
  7. 제6항에 있어서,
    상기 전달하는 단계는,
    상기 로그 기반의 호스트에서 리니어하게 할당된 각각의 데이터를 구분하여 플래시 메모리에 저장하기 위해 블록 단위로 데이터를 저장하도록 전달하는 주소 사상 방법.
  8. 제5항에 있어서,
    상기 전달하는 단계는,
    상기 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 플래시 메모리에 연속적으로 저장하도록 데이터를 전달하는 주소 사상 방법.
  9. 제8항에 있어서,
    상기 전달하는 단계는,
    상기 호스트에서 할당된 데이터의 논리 주소 및 블록 단위로 플래시 메모리에 저장된 데이터의 물리 주소를 저장하기 위해 페이지 단위로 데이터를 저장하는 주소 사상 방법.
  10. 로그 기반의 호스트로부터 데이터를 수신하여 상기 데이터의 속성을 판단하고,
    상기 판단한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 통해 저장되도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 드라이브 컨트롤러.
  11. 제10항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단하는 드라이브 컨트롤러.
  12. 제11항에 있어서,
    상기 데이터의 속성은,
    상기 주소 매핑 정보를 포함하는 메타 데이터 영역 또는 사용자와 관련된 정보를 포함하는 사용자 데이터 영역 중 적어도 하나의 워크로드를 구분하는 드라이브 컨트롤러.
  13. 제10항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 드라이브 컨트롤러.
  14. 제10항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 데이터의 속성에 따른 매핑 테이블의 크기 및 입출력 단위의 크기를 기반으로 페이지 단위 또는 블록 단위 중 적어도 하나의 매핑 단위를 이용하는 드라이브 컨트롤러.
  15. 제14항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 데이터의 속성이 사용자 데이터 영역으로 구분된 경우, 매핑 테이블의 크기가 작은 블록 단위로 매핑하여 데이터를 플래시 메모리에 연속적으로 저장되도록 데이터를 전달하는 드라이브 컨트롤러.
  16. 제14항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 데이터의 속성이 메타 데이터 영역으로 구분된 경우, 입출력 단위의 크기가 작은 페이지 단위로 매핑하여 데이터를 플래시 메모리에 연속적으로 저장하도록 데이터를 전달하는 드라이브 컨트롤러.
  17. 로그 기반의 호스트로부터 수신한 데이터의 속성에 대응하여 서로 다른 크기의 매핑 단위를 나타내는 상기 데이터를 플래시 메모리에 전달하는 드라이브 컨트롤러 및;
    상기 드라이브 컨트롤러로부터 전달된 데이터를 매핑 단위에 따라 플래시 메모리에 저장하는 플래시 메모리 컨트롤러
    를 포함하는 저장 장치.
  18. 제17항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 호스트에서 할당된 데이터의 논리 주소를 기반으로 데이터를 저장하기 위한 워크로드를 구분하는 데이터의 속성을 판단하는 저장 장치.
  19. 제17항에 있어서,
    상기 드라이브 컨트롤러는,
    상기 데이터의 논리 주소에 기초하여 판단된 데이터의 속성에 따라 연속적인 물리 주소를 갖도록 상기 데이터를 플래시 메모리 컨트롤러에 전달하는 저장 장치.
KR1020150031220A 2015-01-06 2015-03-05 드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법 KR101676159B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150001217 2015-01-06
KR20150001217 2015-01-06

Publications (2)

Publication Number Publication Date
KR20160084784A true KR20160084784A (ko) 2016-07-14
KR101676159B1 KR101676159B1 (ko) 2016-11-14

Family

ID=56499274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150031220A KR101676159B1 (ko) 2015-01-06 2015-03-05 드라이브 컨트롤러를 포함하는 저장 장치 및 상기 드라이브 컨트롤러가 수행하는 주소 사상 방법

Country Status (1)

Country Link
KR (1) KR101676159B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200126491A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130032603A (ko) * 2011-09-23 2013-04-02 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
KR20130043445A (ko) * 2011-10-20 2013-04-30 삼성전자주식회사 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130032603A (ko) * 2011-09-23 2013-04-02 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
KR20130043445A (ko) * 2011-10-20 2013-04-30 삼성전자주식회사 인터페이스 관리 방법 및 이를 이용한 저장 장치에서의 매핑 처리 방법

Also Published As

Publication number Publication date
KR101676159B1 (ko) 2016-11-14

Similar Documents

Publication Publication Date Title
US10713161B2 (en) Memory system and method for controlling nonvolatile memory
US10185656B2 (en) Memory system and method for controlling nonvolatile memory
US20180307598A1 (en) Methods for multi-stream garbage collection
US10216446B2 (en) Method for deduplication in storage system, storage system, and controller
US20140082310A1 (en) Method and apparatus of storage tier and cache management
WO2016086819A1 (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN106909313A (zh) 存储器系统及控制方法
US20140082323A1 (en) Address mapping
US9183142B2 (en) Reducing flash memory write amplification and latency
WO2013097618A1 (zh) 存储虚拟化的装置、存储系统及数据存储方法及系统
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
GB2507410A (en) Storage class memory having low power, low latency, and high capacity
CN106909314A (zh) 存储器系统及控制方法
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
EP3346387B1 (en) Storage system and system garbage collection method
US10929066B1 (en) User stream aware file systems with user stream detection
KR20160105624A (ko) 데이터 처리 시스템 및 그것의 동작 방법
CN105393228B (zh) 读写闪存中数据的方法、装置及用户设备
KR20190044873A (ko) 공용 메모리 영역 및 전용 메모리 영역을 포함하는 데이터 저장 장치
US20140297988A1 (en) Storage device, allocation release control method
US9176675B1 (en) Fast-zeroing in a file system
US10180901B2 (en) Apparatus, system and method for managing space in a storage device
US10482012B1 (en) Storage system and method of operating thereof
KR101626218B1 (ko) 블록 기반의 페이지 매핑 방법
KR101676159B1 (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: 20190905

Year of fee payment: 4