KR101795629B1 - 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 - Google Patents
호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 Download PDFInfo
- Publication number
- KR101795629B1 KR101795629B1 KR1020110013272A KR20110013272A KR101795629B1 KR 101795629 B1 KR101795629 B1 KR 101795629B1 KR 1020110013272 A KR1020110013272 A KR 1020110013272A KR 20110013272 A KR20110013272 A KR 20110013272A KR 101795629 B1 KR101795629 B1 KR 101795629B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file
- area
- hot
- file system
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
호스트에서 파일 시스템 관리 방법이 개시된다. 상기 호스트에서 파일 시스템 관리 방법은 파일에 데이터를 쓰기 위한 요청을 수신하는 단계, 상기 파일의 파일 메타 정보를 이용하여 상기 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류하는 단계, 및 상기 분류 결과에 따라 상기 데이터를 제1영역 또는 제2영역에 저장하는 단계를 포함한다.
Description
본 발명의 개념에 따른 실시 예는 호스트에서 파일 시스템에 관한 것으로, 특히 파일 메타 정보(file meta information)를 이용하여 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류함으로써 저장 시스템의 성능을 향상시킬 수 있는 상기 호스트에서 상기 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들에 관한 것이다.
파일 시스템은 파일들과 상기 파일들의 데이터를 저장하고 조직한다. 상기 파일 시스템은 상기 데이터를 저장하고 조직하기 위해 여러 가지 연산들을 수행한다. 상기 파일 시스템의 성능이 낮을 때, 상기 연산들의 횟수와 시간은 증가할 수 있다. 이는 저장 장치의 소비 전력의 증가와 사용 가능 시간의 감소를 유발할 수 있다. 따라서 상기 파일 시스템의 성능 향상이 필요하다.
본 발명이 이루고자 하는 기술적인 과제는 파일 메타 정보를 이용하여 데이터를 핫 데이터 또는 콜드 데이터로 분류함으로써 저장 시스템의 성능을 향상시킬 수 있는 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 호스트에서 파일 시스템 관리 방법은 파일에 데이터를 쓰기 위한 요청을 수신하는 단계, 상기 파일의 파일 메타 정보를 이용하여 상기 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류하는 단계, 및 상기 분류 결과에 따라 상기 데이터를 제1영역 또는 제2영역에 저장하는 단계를 포함한다.
상기 파일 메타 정보는 파일 오프셋(file offset)과 파일 사이즈를 포함한다.
상기 호스트에서 파일 시스템 관리 방법은 상기 데이터가 저장된 상기 제1영역의 주소와 상기 제2영역의 주소 중 어느 하나와 쓰기 명령을 저장 장치로 전송하는 단계를 더 포함한다.
상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류하는 단계는 상기 파일 메타 정보에 따라 상기 데이터가 상기 파일을 업데이트(update)하는지 또는 상기 데이터를 상기 파일에 첨부(append)하는지를 결정하는 단계, 및 상기 결정 결과에 따라 상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류하는 단계를 포함한다.
상기 데이터가 상기 파일을 업데이트할 때, 상기 데이터는 상기 핫 데이터로 분류된다.
상기 데이터를 상기 파일에 첨부할 때, 상기 데이터는 상기 콜드 데이터로 분류된다.
실시 예에 따라 상기 호스트에서 파일 시스템 관리 방법은 상기 데이터가 상기 핫 데이터로 분류될 때, 상기 파일의 업데이트 히스토리 정보에 따라 상기 핫 데이터를 제1핫 데이터 또는 제2핫 데이터로 분류하는 단계, 및 상기 분류 결과에 따라, 상기 제2핫 데이터를 제3영역에 저장하는 단계를 더 포함한다.
상기 업데이트 히스토리 정보는 업데이트 카운트를 포함한다.
실시 예에 따라 상기 호스트에서 파일 시스템 관리 방법은 상기 데이터가 상기 콜드 데이터로 분류될 때, 상기 파일 메타 정보에 따라 상기 데이터를 파일별로 분류하는 단계, 및 상기 분류 결과에 따라 상기 데이터를 상기 제1영역 또는 제3영역에 저장하는 단계를 더 포함한다.
실시 예에 따라 상기 호스트에서 파일 시스템 관리 방법은 상기 데이터가 상기 핫 데이터로 분류될 때, 상기 파일 메타 정보에 따라 상기 데이터를 파일별로 분류하는 단계, 및 상기 분류 결과에 따라 상기 데이터를 상기 제2영역 또는 제3영역에 저장하는 단계를 더 포함한다.
상기 호스트에서 파일 시스템이 로그-구조 파일 시스템(log-structured file system)일 때, 상기 제1영역과 상기 제2영역 각각은 제1로그와 제2로그를 의미한다.
본 발명의 실시 예에 따른 호스트는 파일에 데이터를 쓰기 위해 요청하는 사용자 어플리케이션, 및 상기 파일의 파일 메타 정보를 이용하여 상기 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류하고, 상기 분류 결과에 따라 상기 데이터를 제1영역 또는 제2영역에 저장하는 파일 시스템을 포함한다.
상기 호스트는 상기 데이터가 저장된 상기 제1영역의 주소와 상기 제2영역의 주소 중 어느 하나와 쓰기 명령을 저장 장치로 전송하는 호스트 드라이버를 더 포함한다.
상기 파일 시스템은 상기 파일 메타 정보에 따라 상기 데이터가 상기 파일을 업데이트(update)하는지 상기 데이터를 상기 파일에 첨부(append)하는지를 결정하고, 상기 결정 결과에 따라 상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류한다.
실시 예에 따라 상기 파일 시스템은 상기 데이터가 상기 콜드 데이터로 분류될 때, 상기 파일 메타 정보에 따라 상기 데이터를 파일별로 분류하고, 상기 분류 결과에 따라 상기 데이터를 상기 제1영역 또는 제3영역에 저장한다.
실시 예에 따라 상기 파일 시스템은 상기 데이터가 상기 핫 데이터로 분류될 때, 상기 파일의 업데이트 히스토리 정보에 따라 상기 데이터를 제1핫 데이터, 또는 제2핫 데이터로 분류하고, 상기 분류 결과에 따라 상기 제2핫 데이터를 제3영역에 저장한다.
본 발명의 실시 예에 따라 저장 시스템은 상기 호스트, 및 상기 호스트로부터 상기 주소와 상기 쓰기 명령을 수신받아 상기 데이터를 저장영역에 쓰는 저장 장치를 포함한다.
본 발명의 실시 예에 따른 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들은 파일 메타 정보를 이용하여 데이터를 핫 데이터 또는 콜드 데이터로 분류함으로써 저장 시스템의 성능을 향상시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 소프트웨어 블록도를 나타낸다.
도 2는 도 1에 도시된 호스트에서 파일 시스템 관리 방법을 설명하기 위한 다이어그램을 나타낸다.
도 3은 도 1에 도시된 호스트의 동작을 설명하기 위한 흐름도이다.
도 4는 도 1에 도시된 호스트의 클리너 프로세스(cleaner process)를 설명하기 위한 다이어그램을 나타낸다.
도 5는 도 1에 도시된 호스트의 동작에 따른 클리닝 오버헤드(cleaning overhead)를 나타내는 시뮬레이션 결과를 나타낸다.
도 6은 도 1에 도시된 호스트의 동작에 따른 시스템 성능을 나타내는 시뮬레이션 결과를 나타낸다.
도 7은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 하드웨어 블록도를 나타낸다.
도 8은 본 발명의 실시 예에 따른 호스트를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 1은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 소프트웨어 블록도를 나타낸다.
도 2는 도 1에 도시된 호스트에서 파일 시스템 관리 방법을 설명하기 위한 다이어그램을 나타낸다.
도 3은 도 1에 도시된 호스트의 동작을 설명하기 위한 흐름도이다.
도 4는 도 1에 도시된 호스트의 클리너 프로세스(cleaner process)를 설명하기 위한 다이어그램을 나타낸다.
도 5는 도 1에 도시된 호스트의 동작에 따른 클리닝 오버헤드(cleaning overhead)를 나타내는 시뮬레이션 결과를 나타낸다.
도 6은 도 1에 도시된 호스트의 동작에 따른 시스템 성능을 나타내는 시뮬레이션 결과를 나타낸다.
도 7은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 하드웨어 블록도를 나타낸다.
도 8은 본 발명의 실시 예에 따른 호스트를 포함하는 전자 장치의 일 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 소프트웨어 블록도를 나타내며, 도 2는 도 1에 도시된 호스트에서 파일 시스템 관리 방법을 설명하기 위한 다이어그램을 나타낸다.
도 1과 도 2를 참조하면, 저장 시스템(10)은 호스트(20)와 저장 장치(60)를 포함한다.
호스트(20)는 사용자의 요구(예컨대, 데이터 쓰기 요구, 데이터 읽기 요구, 또는 데이터 삭제 요구)에 응답하여 저장 장치(60)에 데이터를 쓰기, 읽기, 또는 삭제하도록 저장 장치(60)를 제어한다.
호스트(20)는 사용자 어플리케이션(30), 파일 시스템(40), 및 호스트 드라이버(50)를 포함한다.
사용자 어플리케이션(30)은 상기 사용자의 요구에 응답하여 저장 장치(60)에 파일 접근을 요구하기 위해 소프트웨어 또는 펌웨어를 포함한다.
사용자 어플리케이션(30)은 파일과 디렉토리들(directories)을 생성(create)하고, 리네임(rename)하고, 혹은 삭제(delete)하고, 파일들로부터 데이터를 읽거나 또는 상기 파일들에 데이터를 쓰기 위해 파일 시스템(40)으로 명령들을 전송한다.
파일 시스템(40)은 파일들(예컨대, F1, F2, F3,..., 및 Fl)과 파일들(F1, F2, F3, ..., 및 Fl)의 데이터(예컨대, C1, H1, H2, C2, 및 H3)를 저장하고 조직(organize)한다. 파일 시스템(40)은 저장 장치(60)를 파일들과 디렉토리들의 세트를 포함하는 논리적 볼륨(logical volume)으로 인식(regard)한다.
실시 예에 따라, 파일 시스템(40)은 FAT(file allocation table), FAT32, exFAT, NTFS(new technology file system), 또는 ext2/3/4 로 구현될 수 있다. 파일 시스템(40)은 파일 시스템마다 서로 다른 구조를 가진다.
상기 사용자가 파일(예컨대, F1, F2, F3,..., 또는 Fl)에 데이터(예컨대, C1, H1, H2, C2 또는 H3)를 쓰고자할 때, 파일 시스템(40)은 사용자 어플리케이션(30)으로부터 파일(F1, F2, F3,..., 또는 Fl)에 데이터(C1, H1, H2, C2 또는 H3)를 쓰기 위한 요청(request) 또는 명령을 수신한다.
파일(F1, F2, F3,..., 또는 Fl)은 데이터(C1, H1, H2, C2 또는 H3)의 집합이다.
파일(F1, F2, F3,..., 또는 Fl)은 파일 메타 정보(file meta information)를 포함한다. 상기 파일 메타 정보는 파일(F1, F2, F3,..., 또는 Fl)에 관한 정보이다. 예컨대, 상기 파일 메타 정보는 파일 사이즈, 파일 오프셋(file offset), 파일 아이디, 부모 아이디, 파일 이름, 및 부모 이름 등을 포함한다. 상기 파일 오프셋은 파일(F1, F2, F3,..., 또는 Fl)의 현재 위치를 가리킨다.
상기 파일 메타 정보는 파일 메타 데이타(file metadata)로 호칭될 수 있다.
데이터(C1, H1, H2, C2 또는 H3)는 쓰기 액세스 빈도에 따라 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 나뉠 수 있다.
예컨대, 상기 핫 데이터는 액세스 시간의 약 90%가 선택되는 데이터로 정의되며, 상기 콜드 데이터는 액세스 시간의 약 10%가 선택되는 데이터로 정의된다.
파일 시스템(40)은 파일(F1, F2, F3,..., 또는 Fl)의 파일 메타 정보(예컨대, 파일 사이즈와 파일 오프셋(file offset))를 이용하여 데이터(C1, H1, H2, C2 또는 H3)를 핫 데이터(hot data) 또는 콜드 데이터(cold) 데이터로 분류한다.
우선, 파일 시스템(40)은 파일(F1, F2, F3,..., 또는 Fl)의 파일 메타 정보를 이용하여 데이터(C1, H1, H2, C2 또는 H3)가 파일(F1, F2, F3,..., 또는 Fl)을 업데이트(update)하는지 또는 데이터(C1, H1, H2, C2 또는 H3)를 파일(F1, F2, F3,..., 또는 Fl)에 첨부하는지를 결정한다.
예컨대, 파일(F2 또는 Fl)의 파일 사이즈가 10MB이고, 파일 시스템(40)이 사용자 어플리케이션(30)으로부터 파일(F2, 또는 Fl) 내의 위치, 예컨대, 5MB 위치에 데이터(H1, H2, 또는 H3)를 쓰라는 요청을 수신할 때, 파일 시스템(40)은 데이터(H1, H2, 또는 H3)가 파일(F2 또는 Fl)을 업데이트하는 것으로 결정한다.
파일(F1 또는 F3)의 파일 사이즈가 10MB이고, 파일 시스템(40)이 사용자 어플리케이션(30)으로부터 파일(F1 또는 F3)의 밖의 위치, 예컨대 11MB 위치에 데이터(C1 또는 C2)를 쓰라는 요청을 수신할 때, 파일 시스템(40)은 데이터(C1 또는 C2)를 파일(F1 또는 F3)에 첨부(append)하는 것으로 결정한다.
데이터(H1, H2, 또는 H3)가 파일(F2 또는 Fl)을 업데이트할 때, 파일 시스템(40)은 데이터(H1, H2, 또는 H3)를 상기 핫 데이터로 분류하고, 데이터(C1 또는 C2)를 파일(F1 또는 F3)에 첨부할 때, 파일 시스템(40)은 데이터(C1 또는 C2)를 상기 콜드 데이터로 분류한다.
데이터(C1 또는 C2)가 상기 콜드 데이터로 분류될 때, 파일 시스템(40)은 데이터(C1 또는 C2)를 상기 콜드 데이터로서 영역(예컨대, R11 또는 R12)에 저장할 수 있다.
데이터(H1, H2, 또는 H3)가 상기 핫 데이터로 분류될 때, 파일 시스템(40)은 데이터(H1, H2, 또는 H3)를 상기 핫 데이터로서 제2영역(예컨대, R21, 또는 Ri1)에 저장할 수 있다.
복수의 영역들(R11, R12, ..., 및 Rik)은 논리적 볼륨(logical volume)을 의미한다. 예컨대, 파일 시스템(40)이 로그-기반 파일 시스템(log-structured file system)일 때, 복수의 영역들(R11, R12, ..., 및 Rik) 각각은 로그(log)를 의미한다.
호스트(20)는 데이터를 콜드 데이터 또는 핫 데이터로 분류하여 서로 다른 영역들(R11, R12, ..., 및 Rik)에 저장함으로써 저장 시스템(10)의 성능을 향상시킬 수 있다.
실시 예에 따라 파일 시스템(40)은 상기 파일 메타 정보(예컨대, 파일 아이디, 부모 아이디, 파일 이름, 또는 부모 이름 등)를 이용하여 상기 콜드 데이터로 분류된 데이터(C1와 C2)를 파일별(F1와 F3)로 분류할 수 있다.
예컨대, 상기 파일 메타 정보에 따라 데이터(C1)는 파일(F1)로 데이터(C2)는 파일(F3)로 분류될 수 있다.
파일 시스템(40)은 파일(F1)에 속하는 데이터(C1)를 영역(R11)에 저장할 수 있다. 파일 시스템(40)은 파일(F3)에 속하는 데이터(C2)를 영역(R12)에 저장할 수 있다. 영역들(R11, R12, 및 R1n)은 상기 콜드 데이터를 저장하기 위한 영역이다.
마찬가지로, 파일 시스템(40)은 상기 파일 메타 정보를 이용하여 상기 핫 데이터로 분류된 데이터(H1, H2, 및 H3)를 파일별(F2와 Fl)로 분류할 수 있다.
예컨대, 상기 파일 메타 정보에 따라 데이터(H1와 H2)는 파일(F2)로 데이터(H3)는 파일(Fl)로 분류될 수 있다.
파일 시스템(40)은 파일(F2)에 속하는 데이터(H1와 H2)를 영역(R21)에 저장할 수 있다. 파일 시스템(40)은 파일(Fl)에 속하는 데이터(H3)를 영역(Ri1)에 저장할 수 있다.
영역들(R21, R22, R2m, Ri1, Ri2, 및 Rik)는 상기 핫 데이터를 저장하기 위한 영역이다.
파일 시스템(40)은 서로 다른 파일에 속하는 데이터를 서로 다른 로그에 저장함으로써 데이터가 섞이는 것을 방지한다.
실시 예에 따라 파일 시스템(40)은 파일의 업데이트 히스토리 정보에 따라 상기 핫 데이터로 분류된 데이터(H1, H2, 및 H3)를 제1핫 데이터와 제2핫 데이터로 다시 분류할 수 있다.
상기 업데이트 히스토리 정보는 상기 파일의 업데이트 카운트를 포함한다.
상기 제2핫 데이터는 상기 제1핫 데이터보다 더 자주 업데이트되는 데이터를 의미한다. 상기 제2핫 데이터는 가장 핫한 데이터(the hottest data)일 수 있다.
예컨대, 파일(F2)의 상기 업데이트 카운트가 문턱값보다 클 때, 파일 시스템(40)은 데이터(H1와 H2)를 상기 제2핫 데이터로 분류한다.
파일(Fl)의 상기 업데이트 카운트가 상기 문턱값보다 작을 때, 파일 시스템(40)은 데이터(H3)를 상기 제1핫 데이터로 분류한다.
실시 예에 따라, 상기 핫 데이터는 복수의 핫 데이터들로 분류될 수 있다.
상기 제2핫 데이터(H1와 H2)는 영역(R21)에 저장되고, 상기 제1핫 데이터(H3)는 영역(Ri1)에 저장될 수 있다.
영역들(R21, R22,..., 및 R2m)은 상기 제2핫 데이터를 저장하기 위한 영역이고, 영역들(Ri1, Ri2,..., 및 Rik)은 상기 제1핫 데이터를 저장하기 위한 영역이다.
호스트 드라이버(50)는 쓰기 명령, 데이터, 및 상기 데이터가 저장될 영역의 주소를 저장 장치(60)로 전송한다.
호스트 드라이버(50)는 저장 장치(60)와 통신을 수행하기 위해 통신 프로토콜을 부가한다. 호스트(20)와 저장 장치(60) 사이에 데이터를 전송하기 위해 다양한 타입의 데이터 버스들이 이용될 수 있다.
저장 장치(60)는 저장 컨트롤러(70)와 저장 영역(80)을 포함한다.
저장 컨트롤러(70)는 저장 장치(60)의 동작, 예컨대, 호스트(20)로부터 수신된 데이터(C1, H1, H2, C2 또는 H3)와 쓰기 명령에 응답하여 저장 영역(80)에 데이터(C1, H1, H2, C2 또는 H3)를 저장하도록 제어한다.
저장 영역(80)은 호스트(20)로부터 출력되는 데이터를 쓰기 위한 휘발성 또는 불휘발성 메모리를 의미한다.
저장 영역(80)이 플래시 메모리로 구현될 때, 저장 컨트롤러(70)는 플래시 변환 계층(flash translation layer, FTL)을 포함한다.
상기 FTL은 호스트(20)로부터 출력되는 논리적 주소와 저장 영역(80)의 물리적 주소를 맵핑(mapping)한다.
도 3은 도 1에 도시된 호스트의 동작을 설명하기 위한 흐름도이다.
도 1 내지 도 3을 참조하면, 어플리케이션(30)은 파일(F1, F2, F3,..., 또는 Fl)에 데이터(C1, H1, H2, C2 또는 H3)를 쓰기 위한 요청(request)을 파일 시스템(40)에 전송한다(S10).
파일 시스템(40)은 파일(F1, F2, F3,..., 또는 Fl)의 파일 메타 정보를 이용하여 데이터(C1, H1, H2, C2 또는 H3)가 파일(F1, F2, F3,..., 또는 Fl)을 업데이트(update)하는지 데이터(C1, H1, H2, C2 또는 H3)를 파일(F1, F2, F3,..., 또는 Fl)에 첨부하는지를 결정한다(S20).
데이터(H1, H2, 또는 H3)가 파일(F2 또는 Fl)을 업데이트할 때, 파일 시스템(40)은 데이터(H1, H2, 또는 H3)를 핫 데이터로 분류하고, 데이터(C1 또는 C2)를 파일(F1 또는 F3)에 첨부할 때, 파일 시스템(40)은 데이터(C1 또는 C2)를 콜드 데이터로 분류한다.
데이터(C1)가 상기 콜드 데이터로 분류될 때, 파일 시스템(40)은 데이터(C1)를 상기 콜드 데이터로서 영역(예컨대, R11)에 저장할 수 있다(S30).
파일 시스템(40)은 파일의 업데이트 히스토리 정보에 따라 상기 핫 데이터로 분류된 데이터(H1, H2, 및 H3)를 제1핫 데이터와 제2핫 데이터로 다시 분류할 수 있다(S40).
상기 업데이트 히스토리 정보는 상기 파일의 업데이트 카운트를 포함한다.
파일(Fl)의 상기 업데이트 카운트가 상기 문턱값보다 작을 때, 파일 시스템(40)은 데이터(H3)를 상기 제1핫 데이터로 분류한다.
파일(F2)의 상기 업데이트 카운트가 문턱값보다 클 때, 파일 시스템(40)은 데이터(H1와 H2)를 상기 제2핫 데이터로 분류한다.
파일 시스템(40)은 제1핫 데이터(H3)를 영역(Ri1)에 저장한다(S50).
파일 시스템(40)은 제2핫 데이터(H1와 H2)를 영역(R21)에 저장한다(S60).
호스트 드라이버(50)는 쓰기 명령, 데이터, 및 상기 데이터가 저장된 영역의 주소를 저장 장치(60)로 전송한다(S70).
도 4는 도 1에 도시된 호스트의 클리너 프로세스를 설명하기 위한 다이어그램을 나타난다.
도 1 내지 도 4를 참조하면, 파일 시스템(40)이 로그-구조 파일 시스템(log-structured file system)일 때, 파일 시스템(40)은 새로운 데이터를 쓰기 위해 이용가능한 큰 크기의 프리 영역(large extents of free space)이 항상 있도록 보장하여야 한다.
상기 프리 영역은 로그들(예컨대, R12, R22, 및 Ri2)로 호칭될 수 있다.
로그들(R12, R22, 및 Ri2) 각각은 각각 데이터를 저장하기 위한 복수의 페이지들을 포함한다.
도 4(a)를 참조하면, 콜드 데이터(C1, C2, 및 C3)가 로그(R22)에 저장되고, 핫 데이터(H1와 H2)가 로그(Ri2)에 저장된다. 로그(R12)는 빈 로그이다.
파일 시스템(40)이 콜드 데이터로 분류된 새로운 데이터(C4와 C5)를 로그(R22)에 저장하려고 할 때, 로그(R22)는 콜드 데이터(C4와 C5)를 저장하기 위한 프리 영역을 가지고 있지 않다. 따라서 클리너 프로세스(cleaner process)가 필요하다. 상기 클리너 프로세스는 다른 로그들에 저장된 유효 데이터를 압축함으로써 계속해서 빈 로그를 생성하는 과정을 의미한다.
도 4(b)를 참조하면, 파일 시스템(40)은 로그(R22)에 저장된 유효 데이터(C1, C2, 및 C3)를 로그(R12)로 이동시킨다.
도 4(c)를 참조하면, 새로운 데이터(C4와 C5)가 로그(R12)에 저장된다.
파일 시스템(40)이 핫 데이터로 분류된 새로운 데이터(H3, H4, 및 H5)를 로그(Ri2)에 저장하려고 할 때, 로그(Ri2)는 핫 데이터(H3, H4, 및 H5)를 저장하기 위한 프리 영역을 가지고 있지 않다. 따라서 마찬가지로 상기 클리너 프로세스(cleaner process)가 필요하다
도 4(d)를 참조하면, 파일 시스템(40)은 로그(Ri2)에 저장된 유효 데이터(H1와 H2)를 로그(R22)로 이동시킨다.
도 4(e)를 참조하면, 새로운 데이터(H3, H4, 및 H5)가 로그(R22)에 저장된다.
도 4(f)를 참조하면, 데이터(H2, H3, 및 H4)가 유효하지 않은 데이터가 될 수 있다.
도 4(g)를 참조하면, 새로운 핫 데이터를 로그에 저장하기 위해 상기 클리너 프로세스가 수행된다. 따라서 로그(R22)에 저장된 데이터(H1와 H2)가 로그(Ri2)로 이동한다.
따라서 파일 시스템(40)은 데이터를 핫 데이터와 콜드 데이터로 분류하여 서로 다른 로그들 각각에 저장하도록 함으로써 저장 시스템(10)의 성능이 향상될 수 있다.
도 5는 도 1에 도시된 호스트의 동작에 따른 클리닝 오버헤드(cleaning overhead)를 나타내는 시뮬레이션 결과를 나타낸다.
도 1 내지 도 5를 참조하면, 파일 시스템(40)은 로그 구조 파일 시스템이라 가정한다.
LFS는 핫 데이터와 콜드 데이터를 구별하지 않고 하나의 로그(예컨대, R11)에 상기 핫 데이터와 상기 콜드 데이터를 저장할 때 클리너 프로세서의 시뮬레이션 결과를 나타낸다.
MLFS1, MLFS2, 및 MLFS3 각각은 핫 데이터와 콜드 데이터를 구별하여 복수의 로그들에 나누어 상기 핫 데이터와 상기 콜드 데이터를 저장할 때 클리너 프로세서의 시뮬레이션 결과를 나타낸다. MLFS1은 로그들(R11과 R21)을 포함한다. 로그(R11)는 콜드 데이터를 저장하기 위한 로그이다. 로그(R21)는 핫 데이터를 저장하기 위한 로그이다.
MLFS2는 로그들(R11, R21, 및 Ri1)을 포함한다. 로그(R11)는 콜드 데이터를 저장하기 위한 로그이다. 로그들(R21와 Ri1)은 핫 데이터를 저장하기 위한 로그들이다.
MLFS3은 로그들(R11, R21, R22, ..., 및 R2m(m은 8), 및 Ri1)을 포함한다. 로그(R11)는 콜드 데이터를 저장하기 위한 로그이다. 로그들(R21, R22, ..., 및 R2m(m은 8))은 핫 데이터를 저장하기 위한 로그들이다.
로그(Ri1)는 상기 핫 데이터보다 자주 액세스되는 핫 데이터를 저장하기 위한 로그이다.
도 5의 x축은 유효한 데이터를 나타내는 이용(utilization)을, y축은 클리너 프로세서에 의해 이동되는 페이지들의 숫자를 나타낸다.
도 5를 참조하면, 상기 유효가 80%일 때, MLF3의 클리닝 오버헤드(cleaning overhead)는 LFS보다 45.1% 감소함을 알 수 있다.
도 6은 도 1에 도시된 호스트의 동작에 따른 시스템 성능을 나타내는 시뮬레이션 결과를 나타낸다.
도 6의 x축은 유효한 데이터를 나타내는 이용(utilization)을, y축은 대역폭을 나타낸다.
도 6을 참조하면, 상기 유효가 80%일 때, MLF3의 시스템 성능은 LFS보다 56.4% 증가함을 알 수 있다.
도 7은 본 발명의 실시 예에 따른 호스트를 포함하는 저장 시스템의 개략적인 하드웨어 블록도를 나타낸다.
도 1 내지 도 7를 참조하면, 호스트(20)는 데이터를 처리 또는 저장할 수 있는 CE(consumer equipment)를 모두 포함한다. 예컨대, CE는 하드 디스크 레코더(HDD recoder), 휴대 전화, 스마트폰, PDA(personal digital assistant), 컴퓨터(예컨대, PC, 노트북 등), 네비게이터 장치(navigator device), 가정 자동화 시스템(home automatic system), 음악 재생기(MP3 플레이어), 캠코더(camcorder), 영상 재생기(DVIX 플레이어 등), 스토리지 서버(storage server), 또는 PMP(portable multimedia player) 등을 포함한다.
호스트(20)는 호스트 CPU(21), 메모리(23), 및 인터페이스(25)를 포함한다.
호스트 CPU(21)는 버스(22)에 의해 메모리(23), 및 인터페이스(25)와 연결된다.
호스트 CPU(21)는 메모리(23)에 저장된 프로그램 코드(예컨대, 본 발명의 실시 예에 따른 파일 시스템 관리 방법을 실행할 수 있는 프로그램 코드)를 리드하고, 이를 실행시켜 상기 파일 시스템 관리 방법을 수행할 수 있다.
메모리(23)는 불휘발성 메모리 또는 휘발성 메모리로 구현될 수 있다.
호스트 CPU(21)에 의해 연산된 영역의 주소, 데이터, 및 쓰기 명령은 인터페이스(25)를 통하여 저장 장치(60)로 전송된다.
저장 장치(60)는 저장 컨트롤러(70)와 저장 영역(80)을 포함한다. 저장 장치(60)는 메모리 카드 또는 SSD(solid state drive)로 구현될 수 있다.
실시 예에 따라 저장 장치(60)는 호스트(20)에 임베디드(embedded)되거나 외부 주변 장치로서 플러그(plug)될 수 있다.
저장 컨트롤러(70)는 CPU(71), 메모리(73), 주변 회로(75), 및 인터페이스(77)를 포함한다.
CPU(71)는 저장 장치(70)의 동작, 예컨대, 호스트(20)로부터 인터페이스(77)를 통해 수신된 데이터와 쓰기 명령에 응답하여 저장 영역(80)에 데이터를 저장하도록 저장 영역(80)을 제어한다.
메모리(73)는 호스트(20)로부터 수신된 데이터와 쓰기 명령을 임시적으로 저장한다.
주변 회로(75)는 저장 영역(80)에 데이터를 쓰기 위해 필요한 모든 회로를 포함한다. 예컨대, 저장 영역(80)이 하드 디스크 드라이브인 때, 주변 회로(75)는 도시되지 않은 스핀들 모터, 보이스 코일 모터, 및 자기 헤드 등 모든 장치들을 포함한다.
저장 영역(80)은 하드 디스크 드라이브(hard disk drive), ROM(read only memory), PROM(programmable read only memory), EPROM(erasable programmable read only memory), EEPROM(electrically erasable programmable read only memory), 플래시 메모리(flash memory), FRAM(ferroelectircs random access memory), MRAM(magnetic random access memory), PRAM(phase change random access memory), NRAM(nano random access memory), SONOS(silicon-oxide-nitride-oxide-silicon), 저항 메모리(resistive memory) 또는 레이스 트랙 메모리(racetrack memory)로 구현될 수 있다.
도 8은 본 발명의 실시 예에 따른 호스트를 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 8를 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 무선 인터넷 장치로서 구현될 수 있는 전자 장치(800)는 프로세서(810), 저장 영역(830)을 제어하는 저장 컨트롤러(820), 및 입력 장치(840)를 포함한다.
프로세서(810)는 사용자가 입력 장치(840)를 통해 입력된 데이터를 파일에 쓰기하는 요청을 수신하여, 본 발명의 실시 예에 따른 파일 시스템 관리 방법을 수행한다.
입력 장치(840)는 프로세서(810)의 동작을 제어하기 위한 제어 신호들 또는 프로세서(810)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(810)는 여러 가지 연산들을 수행하여 데이터가 저장된 영역의 주소와 쓰기 명령을 저장 컨트롤러(820)로 전송할 수 있다.
저장 영역(830)은 저장 컨트롤러(820)의 제어 신호에 응답하여 상기 데이터를 라이트한다.
저장 영역(830)에 저장된 데이터는 프로세서(810)의 제어 하에 디스플레이(850)를 통하여 디스플레이될 수 있다.
무선 송수신기(860)는 안테나를 통하여 무선 신호들을 주거나 받을 수 있다.
예컨대, 무선 송수신기(860)는 상기 안테나를 통하여 수신된 무선 신호들을 프로세서(191)가 처리할 수 있는 신호들로 변환할 수 있다. 따라서 프로세서(810)는 무선 송수신기(860)로부터 출력된 신호들을 처리하고, 처리된 신호들을 본 발명의 실시 예에 따른 파일 시스템 관리 방법을 통해 저장 영역(830)에 저장하거나 또는 디스플레이(850)를 통하여 디스플레이할 수 있다.
또한 무선 송수신기(860)는 프로세서(810)로부터 출력된 신호들을 무선 신호들로 변환하고, 변환된 무선 신호들을 상기 안테나를 통하여 외부로 출력할 수 있다.
프로세서(810)는 저장 영역(830)로부터 출력된 데이터, 무선 송수신기(860)로부터 출력된 무선 신호들, 또는 입력 장치(840)로부터 출력된 데이터가 디스플레이(850)를 통하여 디스플레이될 수 있도록 디스플레이(850)의 동작을 제어할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 저장 시스템 71: CPU
20: 호스트 73: 메모리
30: 사용자 어플리케이션 75: 주변 회로
40: 파일 시스템 77: 인터페이스
50: 호스트 드라이버 800: 전자 장치
60: 저장 장치 810: 프로세서
70: 저장 컨트롤러 820: 저장 컨트롤러
80: 저장 영역 830: 저장 영역
21: 호스트 CPU 840: 입력 장치
22: 버스 850: 디스플레이
23: 메모리 860: 무선 송수신기
25: 인터페이스
20: 호스트 73: 메모리
30: 사용자 어플리케이션 75: 주변 회로
40: 파일 시스템 77: 인터페이스
50: 호스트 드라이버 800: 전자 장치
60: 저장 장치 810: 프로세서
70: 저장 컨트롤러 820: 저장 컨트롤러
80: 저장 영역 830: 저장 영역
21: 호스트 CPU 840: 입력 장치
22: 버스 850: 디스플레이
23: 메모리 860: 무선 송수신기
25: 인터페이스
Claims (10)
- 파일에 데이터를 쓰기 위한 요청을 수신하는 단계;
상기 파일의 파일 메타 정보를 이용하여 상기 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류하는 단계; 및
상기 분류 결과에 따라 상기 데이터를 제1영역 또는 제2영역에 저장하는 단계를 포함하고,
상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류하는 단계는,
상기 파일 메타 정보에 따라 상기 데이터가 상기 파일을 업데이트(update)하는지 상기 데이터를 상기 파일에 첨부(append)하는지를 결정하는 단계; 및
상기 결정 결과에 따라 상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류하는 단계를 포함하는 호스트에서 파일 시스템 관리 방법. - 제1항에 있어서, 상기 호스트에서 파일 시스템 관리 방법은,
상기 데이터가 저장된 상기 제1영역의 주소와 상기 제2영역의 주소 중 어느 하나와 쓰기 명령을 저장 장치로 전송하는 단계를 더 포함하는 호스트에서 파일 시스템 관리 방법. - 삭제
- 제1항에 있어서, 상기 데이터가 상기 파일을 업데이트할 때, 상기 데이터는 상기 핫 데이터로 분류되는 호스트에서 파일 시스템 관리 방법.
- 제1항에 있어서, 상기 데이터를 상기 파일에 첨부할 때, 상기 데이터는 상기 콜드 데이터로 분류되는 호스트에서 파일 시스템 관리 방법.
- 제1항에 있어서, 상기 호스트에서 파일 시스템 관리 방법은,
상기 데이터가 상기 핫 데이터로 분류될 때,
상기 파일의 업데이트 히스토리 정보에 따라 상기 핫 데이터를 제1핫 데이터 또는 제2핫 데이터로 분류하는 단계; 및
상기 분류 결과에 따라, 상기 제2핫 데이터를 제3영역에 저장하는 단계를 더 포함하는 호스트에서 파일 시스템 관리 방법. - 제1항에 있어서, 상기 호스트에서 파일 시스템 관리 방법은,
상기 데이터가 상기 콜드 데이터로 분류될 때, 상기 파일 메타 정보에 따라 상기 데이터를 파일별로 분류하는 단계; 및
상기 분류 결과에 따라 상기 데이터를 상기 제1영역 또는 제3영역에 저장하는 단계를 더 포함하는 호스트에서 파일 시스템 관리 방법. - 제1항에 있어서, 상기 호스트에서 파일 시스템 관리 방법은,
상기 데이터가 상기 핫 데이터로 분류될 때, 상기 파일 메타 정보에 따라 상기 데이터를 파일별로 분류하는 단계; 및
상기 분류 결과에 따라 상기 데이터를 상기 제2영역 또는 제3영역에 저장하는 단계를 더 포함하는 호스트에서 파일 시스템 관리 방법. - 제1항에 있어서, 상기 호스트에서 파일 시스템이 로그-구조 파일 시스템(log-structured file system)일 때, 상기 제1영역과 상기 제2영역 각각은 제1로그와 제2로그를 의미하는 호스트에서 파일 시스템 관리 방법.
- 파일에 데이터를 쓰기 위해 요청하는 사용자 어플리케이션; 및
상기 파일의 파일 메타 정보를 이용하여 상기 데이터를 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 분류하고, 상기 분류 결과에 따라 상기 데이터를 제1영역 또는 제2영역에 저장하는 파일 시스템을 포함하고,
상기 파일 시스템은, 상기 파일 메타 정보에 따라 상기 데이터가 상기 파일을 업데이트(update)하는지 상기 데이터를 상기 파일에 첨부(append)하는지를 결정하고, 상기 결정 결과에 따라 상기 데이터를 상기 핫 데이터 또는 상기 콜드 데이터로 분류하는 호스트.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110013272A KR101795629B1 (ko) | 2011-02-15 | 2011-02-15 | 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 |
US13/304,579 US8438195B2 (en) | 2011-02-15 | 2011-11-25 | File system operating method and devices using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110013272A KR101795629B1 (ko) | 2011-02-15 | 2011-02-15 | 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120093608A KR20120093608A (ko) | 2012-08-23 |
KR101795629B1 true KR101795629B1 (ko) | 2017-11-13 |
Family
ID=46637718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110013272A KR101795629B1 (ko) | 2011-02-15 | 2011-02-15 | 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8438195B2 (ko) |
KR (1) | KR101795629B1 (ko) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101920500B1 (ko) * | 2012-06-29 | 2018-11-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US9514174B2 (en) | 2012-06-30 | 2016-12-06 | Microsoft Technology Licensing, Llc | Classification of data in main memory database systems |
US9489293B2 (en) * | 2012-08-17 | 2016-11-08 | Netapp, Inc. | Techniques for opportunistic data storage |
CN104956313B (zh) * | 2013-01-29 | 2018-02-09 | 马维尔国际贸易有限公司 | 用于基于数据分类将数据存储至固态存储设备的方法和装置 |
KR102023351B1 (ko) * | 2013-03-19 | 2019-11-04 | 삼성전자 주식회사 | 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 |
US9223843B1 (en) | 2013-12-02 | 2015-12-29 | Amazon Technologies, Inc. | Optimized log storage for asynchronous log updates |
US20160054943A1 (en) * | 2014-08-22 | 2016-02-25 | Kabushiki Kaisha Toshiba | Information processing apparatus |
US9959060B1 (en) * | 2014-09-16 | 2018-05-01 | SK Hynix Inc. | Data separation during host write with storage allocated based on traffic profiles |
CN104391661A (zh) * | 2014-12-12 | 2015-03-04 | 西安三星电子研究有限公司 | 向固态硬盘写入数据的方法及设备 |
KR102523967B1 (ko) * | 2016-03-25 | 2023-04-21 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템 |
US10534720B2 (en) * | 2016-05-26 | 2020-01-14 | Vmware, Inc. | Application aware memory resource management |
CN107728930A (zh) * | 2016-08-10 | 2018-02-23 | 中国移动通信集团重庆有限公司 | 一种数据存取方法及系统 |
US10437800B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
US10437799B2 (en) * | 2016-12-02 | 2019-10-08 | International Business Machines Corporation | Data migration using a migration data placement tool between storage systems based on data access |
TWI647567B (zh) * | 2017-12-13 | 2019-01-11 | 國立中正大學 | 使用記憶體位址定位冷熱存取區間之方法 |
KR102709146B1 (ko) | 2018-08-09 | 2024-09-25 | 삼성전자주식회사 | 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치 |
CN110069218A (zh) * | 2019-04-22 | 2019-07-30 | 珠海全志科技股份有限公司 | 冷热数据分离方法、装置、计算机设备及存储介质 |
KR20210068699A (ko) * | 2019-12-02 | 2021-06-10 | 삼성전자주식회사 | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 |
KR20210083448A (ko) | 2019-12-26 | 2021-07-07 | 삼성전자주식회사 | 비지도 학습 기법을 사용하는 스토리지 장치 및 그것의 메모리 관리 방법 |
KR20210097353A (ko) | 2020-01-30 | 2021-08-09 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
CN114528326A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 一种数据管理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004957A1 (en) * | 2002-09-16 | 2006-01-05 | Hand Leroy C Iii | Storage system architectures and multiple caching arrangements |
US20110035548A1 (en) | 2008-02-12 | 2011-02-10 | Kimmel Jeffrey S | Hybrid media storage system architecture |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7363420B2 (en) | 2003-12-15 | 2008-04-22 | Nortel Networks Limited | Method and file structures for managing data on a flash disk |
JP2007133683A (ja) | 2005-11-10 | 2007-05-31 | Sony Corp | メモリシステム |
KR20080033649A (ko) | 2006-10-12 | 2008-04-17 | 삼성전자주식회사 | 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법 |
KR101498673B1 (ko) | 2007-08-14 | 2015-03-09 | 삼성전자주식회사 | 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 |
-
2011
- 2011-02-15 KR KR1020110013272A patent/KR101795629B1/ko active IP Right Grant
- 2011-11-25 US US13/304,579 patent/US8438195B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060004957A1 (en) * | 2002-09-16 | 2006-01-05 | Hand Leroy C Iii | Storage system architectures and multiple caching arrangements |
US20110035548A1 (en) | 2008-02-12 | 2011-02-10 | Kimmel Jeffrey S | Hybrid media storage system architecture |
Also Published As
Publication number | Publication date |
---|---|
US8438195B2 (en) | 2013-05-07 |
KR20120093608A (ko) | 2012-08-23 |
US20120209893A1 (en) | 2012-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101795629B1 (ko) | 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들 | |
US9244619B2 (en) | Method of managing data storage device and data storage device | |
US20140310449A1 (en) | Virtualization of Storage Devices | |
US20140281338A1 (en) | Host-driven garbage collection | |
KR20200022118A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
US9176863B2 (en) | Memory controller controlling a nonvolatile memory | |
EP2954400A1 (en) | Readdressing memory for non-volatile storage devices | |
WO2008130800A1 (en) | Composite solid state drive identification and optimization technologies | |
US9740630B2 (en) | Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices | |
US8898414B2 (en) | Storage devices and methods of driving storage devices | |
US11042328B2 (en) | Storage apparatus and method for autonomous space compaction | |
CN111796760A (zh) | 存储器系统及其操作方法 | |
CN113110799A (zh) | 用于针对损耗均衡操作选择牺牲块的控制器和方法 | |
KR20130081526A (ko) | 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들 | |
CN113282234B (zh) | 存储装置、存储系统、及其操作方法 | |
US20170153842A1 (en) | Data allocation in hard drives | |
KR20200132047A (ko) | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 | |
US20240330175A1 (en) | Storage device for classifying data based on stream class number, storage system, and operating method thereof | |
CN114371812A (zh) | 控制器及其操作方法 | |
US9524236B1 (en) | Systems and methods for performing memory management based on data access properties | |
US11662932B2 (en) | Tiered storage system with defragmentation based on weighted flash fragmentation factor | |
CN112825025A (zh) | 控制器及其操作方法 | |
US11474735B2 (en) | Operation method of storage device, and operation method of storage system including host device and storage device | |
WO2017173298A1 (en) | Systems and methods for enabling modifications of multiple data objects within a file system volume | |
CN100444166C (zh) | Fat文件系统中基于位置的接口访问方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |