KR102167167B1 - Ssd 장치를 관리하는 방법 및 그 ssd 장치 - Google Patents

Ssd 장치를 관리하는 방법 및 그 ssd 장치 Download PDF

Info

Publication number
KR102167167B1
KR102167167B1 KR1020180092764A KR20180092764A KR102167167B1 KR 102167167 B1 KR102167167 B1 KR 102167167B1 KR 1020180092764 A KR1020180092764 A KR 1020180092764A KR 20180092764 A KR20180092764 A KR 20180092764A KR 102167167 B1 KR102167167 B1 KR 102167167B1
Authority
KR
South Korea
Prior art keywords
data
storage space
space
stored
information
Prior art date
Application number
KR1020180092764A
Other languages
English (en)
Other versions
KR20200017641A (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 KR1020180092764A priority Critical patent/KR102167167B1/ko
Publication of KR20200017641A publication Critical patent/KR20200017641A/ko
Application granted granted Critical
Publication of KR102167167B1 publication Critical patent/KR102167167B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/1041Resource optimization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 실시예들은 SSD(Solid State Drive) 장치에서 실시간으로 처리되는 대용량/고속의 데이터를 운용하기 위한 파일 관리 방법에 대해 설명한다. 보다 상세하게는 SSD 장치에 실시간으로 처리되는 대용량/고속의 데이터를 저장하고 재생하는 것을 목적으로 하는 파일 관리 방법을 설명하고, SSD 장치에 저장되는 데이터에 대한 메타 정보를 관리하는 방법에 대해 설명하며, 일 실시예는 데이터를 저장하는 SSD 장치에 있어서, SSD 장치의 공간 중 데이터가 저장되지 않은 자유 공간을 관리하는 자유 공간 관리부, SSD 장치의 공간 중 데이터가 저장된 저장 공간을 관리하는 저장 공간 관리부, 데이터 저장 정보 관리 파일을 생성하는 데이터 저장부, 자유 공간에 대한 정보를 기초로 상기 자유 공간에 데이터 쓰기 동작을 수행하는 데이터 쓰기 처리부, 저장 공간에 대한 정보를 기초로 저장 공간에 저장된 데이터에 대한 읽기 동작을 수행하는 데이터 읽기 처리부 및 저장 공간에 저장된 데이터를 재생하는 동작을 수행하는 데이터 재생부를 포함하는 것을 특징으로 하는 SSD 장치를 제공한다.

Description

SSD 장치를 관리하는 방법 및 그 SSD 장치{SSD device and method for managing the SSD device}
본 실시예들은 SSD(Solid State Drive) 장치에서 실시간으로 처리되는 대용량/고속의 데이터를 운용하기 위한 파일 관리 방법에 대해 설명한다. 보다 상세하게는 SSD 장치에 실시간으로 처리되는 대용량/고속의 데이터를 저장하고 재생하는 것을 목적으로 하는 파일 관리 방법을 설명하고, SSD 장치에 저장되는 데이터에 대한 메타 정보를 관리하는 방법에 대해 설명한다.
4차 산업 혁명에 따른 기술 환경의 변화로 인해서, 실시간으로 처리되는 대용량/고속의 데이터를 저장하기 위한 저장 장치 및 그 데이터를 효율적으로 활용하기 위한 데이터 운용 시스템의 중요성이 강조되고 있다.
4차 산업 혁명의 대표적인 기술로는 인공지능, 자율주행차, 가상현실, 사물 인터넷, 5세대 이동통신 등이 있다. 이러한 기술들은 실시간으로 입력되는 대규모의 데이터를 처리해야 한다는 공통점이 있으며, 해당 데이터는 데이터 센터에 저장되며 빅 데이터 기술을 이용하여 분석 및 재해석된다.
이처럼 실시간으로 입력되는 대규모의 데이터는 시간의 흐름에 따라 데이터가 계속적으로 변화하기 때문에, 데이터의 변화 흐름을 파악하고 분석하기 위해서는 다량의 데이터 샘플을 저장하고 재생하는 작업이 필요하다. 그리고 이러한 작업이 원활히 수행되기 위해서는 데이터 입출력 속도가 중요한 저장 장치 시스템이 필요하다.
따라서, 일반 문서 및 멀티미디어 데이터를 저장하는 종래의 파일 시스템 대신에 실시간으로 처리되는 대용량/고속의 데이터를 처리하기에 적합한 파일 관리 방법에 대한 필요성이 증대되고 있다.
본 실시예들은 SSD(Solid State Drive) 장치에서 실시간으로 처리되는 대용량/고속의 데이터를 운용하기 위한 파일 관리 방법 및 SSD 장치에 저장된 데이터의 메타 정보를 효율적으로 관리하는 방법을 제공한다.
전술한 과제를 해결하기 위해 안출된 일 실시예는 데이터를 저장하는 SSD 장치에 있어서, SSD 장치의 공간 중 데이터가 저장되지 않은 자유 공간을 관리하는 자유 공간 관리부, SSD 장치의 공간 중 데이터가 저장된 저장 공간을 관리하는 저장 공간 관리부, 데이터 저장 정보 관리 파일을 생성하는 데이터 저장부, 자유 공간에 대한 정보를 기초로 상기 자유 공간에 데이터 쓰기 동작을 수행하는 데이터 쓰기 처리부, 저장 공간에 대한 정보를 기초로 저장 공간에 저장된 데이터에 대한 읽기 동작을 수행하는 데이터 읽기 처리부 및 저장 공간에 저장된 데이터를 재생하는 동작을 수행하는 데이터 재생부를 포함하는 것을 특징으로 하는 SSD 장치를 제공한다.
또한 일 실시예는 SSD 장치에 저장된 데이터를 관리하는 방법에 있어서, SSD 장치의 공간 중 데이터가 저장되지 않은 자유 공간에 데이터를 저장하는 단계, 자유 공간 및 SSD 장치의 공간 중 데이터가 저장된 저장 공간의 정보를 업데이트하는 단계 및 저장 공간에 저장된 데이터를 재생하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 실시예들에서 제공하는 파일 관리 방법을 적용하여 대용량/고속의 실시간 데이터를 효율적으로 저장하고 검색 및 분석할 수 있다. 또한, 본 실시예들에서 제공하는 메타 정보 관리 방법을 통해서 SSD 장치의 저장 공간을 효율적으로 사용할 수 있다.
도 1은 기존의 RTOS 파일 시스템 계층 구조를 도시한 도면이다.
도 2는 SSD 장치에서 메타 데이터와 저장 데이터를 처리하는 구성의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 SSD 장치의 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 자유 공간의 논리적 구성의 일 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 저장 공간의 논리적 구성의 일 예를 도시한 도면이다.
도 6은 본 발명의 일 실시예에 따른 데이터의 생성/삭제에 따라 SSD 장치에 저장된 데이터가 변하는 과정을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 SSD 장치를 관리하는 방법을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 기존의 RTOS 파일 시스템 계층 구조를 도시한 도면이다.
기존의 RTOS 파일 시스템 계층 구조에서는 파일 접근 시 파일 시스템을 통해 장치 관리자에 접근하거나, 또는 직접 장치 접근 인터페이스를 통해 장치 관리자에 접근할 수 있다. 장치 관리자는 NVMe 장치 드라이버를 통해 SSD의 NVMe 저장 장치에 대한 데이터 읽기/쓰기를 수행할 수 있다. NVMe는 PCIe(PCI-Express)로 연결된 비휘발성 저장장치를 위한 통신 규격을 의미한다.
NVMe 장치 드라이버는 PCIe 인터페이스를 통해 NVMe 컨트롤러를 제어하고 NVMe 컨트롤러는 SSD 장치를 제어하는 구조를 가진다. 일반적으로 NVMe 장치 드라이버는 RTOS의 블럭 장치로 등록되며, RTOS 파일 시스템을 통해서 장치 드라이버가 사용될 수 있다.
그러나 이처럼 OS에서 제공하는 기존의 파일 시스템을 사용하여 NVMe SSD 저장 장치에 접근하는 경우에는 입출력 속도가 대용량/고속의 실시간 데이터를 처리하기 위한 목표치(e.g. 500MPBS)를 만족하지 못하는 경우가 발생할 수 있다. 기존 파일 시스템에서 파일 접근 요청을 해석하여 장치 접근을 시도하는 과정에서 시간이 소요되기 때문이다.
따라서, NVMe SSD 저장 장치에 접근할 때, 기존 파일 시스템을 거치지 않고 직접 표준 입출력 함수를 사용하여 NVMe 장치 드라이버를 제어하는 방법을 사용하여 SSD의 입출력 속도를 높일 수 있다.
이처럼 직접 표준 입출력 함수를 사용하여 NVMe 장치 드라이버를 제어할 경우에는, 기존의 파일 시스템에서 제공하던 데이터 저장 정보 및 속성을 관리하던 기능을 별도로 수행해야 한다. 이를 위해서 도 2와 같이 메타 데이터와 일반 데이터를 구분하여 관리하는 방안을 제안한다.
도 2는 SSD 장치에서 메타 데이터와 저장 데이터를 처리하는 구성의 일 예를 도시한 도면이다.
도 2를 참조하면, SSD에서 데이터를 저장하는 NVMe SSD 저장 장치 영역은 메타 데이터를 저장하는 블록과 일반 데이터를 저장하는 블록으로 구성될 수 있다.
메타 데이터 영역은 일반 데이터에 대한 구성 정보(e.g. 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간 정보, 삭제 유무)를 저장하는 영역을 의미한다. 데이터 영역에 기록된 모든 파일에 대한 읽기/쓰기 동작을 위해서는 메타 데이터 영역으로부터 해당 파일에 대한 정보를 읽어야 한다.
메타 데이터 영역은 크게 그룹(group) 블록, 레코드(record) 블록, 아이노드(inode) 블록으로 구성될 수 있다.
그룹 블록은 전체 저장 공간에 대한 정보를 저장하는 블록이고, 레코드 블록은 파일 시스템에서 제공하는 파일에 대한 속성 및 정보를 저장하는 블록이고, 아이노드 블록은 파일이 저장된 물리적 데이터에 대한 저장 정보를 제공한다.
즉, 파일 시스템 상의 데이터 읽기/쓰기 컨트롤러(data read/write controller)를 통해 메타 데이터/일반 데이터에 대한 읽기/쓰기 요청이 수행된다. 데이터 읽기/쓰기 컨트롤러는 NVMe 드라이버에 데이터 읽기/쓰기 요청을 전달한 후 결과를 수신한다. 그리고 NVMe 드라이버가 NVMe SSD 저장 장치 상에 저장된 메타 데이터 영역(그룹 블록/레코드 블록/아이노드 블록) 및 일반 데이터가 저장된 데이터 블록에 접근하여 데이터 읽기/쓰기 요청을 처리한다.
도 3은 본 발명의 일 실시예에 따른 SSD 장치의 구성을 도시한 도면이다.
도 3을 참조하면, SSD 장치(100)는 자유 공간 관리부(110), 데이터 저장부(120), 데이터 쓰기 처리부(130), 저장 공간 관리부(140), 데이터 재생부(150), 데이터 읽기 처리부(160)를 포함할 수 있다.
자유 공간 관리부(110)는 SSD 장치(100)의 공간, 즉 데이터를 저장할 수 있는 영역 중에서 데이터가 저장되지 않은 상태의 공간인 자유 공간을 관리하는 기능을 수행한다. 자유 공간은 프리(FREE) 공간, 공백(EMPTY) 공간 등으로 호칭될 수 있으며 호칭에 의해 그 의미가 한정되지 아니한다.
이 때, SSD 장치(100)의 공간은 미리 설정된 사이즈 단위의 프레임으로 분할되어 관리된다. 즉 자유 공간 관리부(110)는 전술한 프레임 단위로 자유 공간을 관리할 수 있다.
이 때 하나의 프레임은 논리적 단위로서 반드시 하나의 프레임을 구성하는 물리적 공간이 서로 인접해야 할 필요는 없다. 예를 들어 사이즈가 512 바이트인 프레임이 있다고 가정하면 실제 SSD 장치 상에 해당 프레임이 저장된 물리적 주소가 0x10000000부터 0x100 (256 바이트), 0x10010000부터 0x100 (256 바이트)로 구성되는 것도 가능하다.
만약 자유 공간에 데이터 쓰기(예를 들어, 파일 저장)가 발생하는 경우에는 프레임 단위로 데이터 쓰기가 일어난다. 즉, 프레임 사이즈보다 작은 크기의 파일에 대한 데이터 쓰기 요청이 발생해도 전체 프레임이 할당되고, 프레임의 나머지 부분이 다른 데이터 쓰기를 위해 할당되지 않는다.
자유 공간에 데이터 쓰기가 발생하면 데이터가 써진 프레임은 자유 공간에서 제외되고 해당 프레임은 후술할 저장 공간에 포함된다.
저장 공간 관리부(120)는 SSD 장치(100)의 공간 중에서 데이터가 저장된 상태의 공간인 저장 공간을 관리하는 기능을 수행한다. 저장 공간은 데이터 공간 등으로 호칭될 수 있으며 호칭에 의해 그 의미가 한정되지 아니한다.
저장 공간 관리부(120)는 파일 단위로 저장 공간의 정보를 저장할 수 있다. 또한 각 파일은 미리 설정된 프레임의 집합으로 구성될 수 있다. 따라서, 저장 공간 관리부(120)는 저장 공간에 저장된 데이터를 미리 설정된 프레임 단위로 관리할 수 있으며, 전술한 프레임을 구성하는 물리적 공간이 서로 인접해야 할 필요는 없다.
이 때, 전술한 자유 공간을 구성하는 프레임과 저장 공간의 데이터의 관리 단위인 프레임의 사이즈는 기본적으로 동일하지만 서로 상이할 수도 있다. 즉, 자유 공간에 새로 데이터가 저장된 프레임이 저장 공간으로 전달되는 경우에 저장 공간의 프레임 사이즈에 맞춰 재배치되는 것이 가능하다. 또한 저장 공간에 저장된 데이터가 삭제되어 해당 데이터가 점유한 공간이 다시 자유 공간에 배치되는 경우에는 다시 자유 공간의 프레임 사이즈에 맞춰 재배치될 수 있다.
데이터를 저장할 때, 도 2와 같이 메타 데이터 정보가 별도의 영역에 저장될 수 있다. 이 때, 메타 데이터 정보의 사이즈는 고정된 값으로 설정될 수 있다.
전술한 자유 공간 및 저장 공간을 구성하는 방법으로서 자유 공간 및 저장 공간은 선형 리스트로 구성될 수 있다. 하지만 자유 공간 및 저장 공간을 선형 리스트로 구성하는 대신에 원형 리스트로 구성할 수도 있다.
원형 리스트란 리스트를 구성하는 마지막 노드에서 리스트가 끝나지 않고 마지막 노드 다음에 리스트의 첫번째 노드에 접근할 수 있는 형태의 리스트를 의미한다. 이 때, 리스트를 구성하는 각 노드의 크기는 전술한 논리적 프레임 사이즈가 된다.
이하, 도 4 및 도 5에서 자유 공간 및 저장 공간의 논리적 구성에 대해 설명한다.
도 4는 본 발명의 일 실시예에 따른 자유 공간의 논리적 구성의 일 예를 도시한 도면이다.
만약 자유 공간이 N(N은 임의의 자연수)개의 논리적 프레임으로 구성된다고 가정하면, 일 예로 각 논리적 프레임에 대해 0, 1, 2, ... ,(N-1), N의 인덱스가 할당될 수 있다.(단, 전술한 인덱스는 논리적 프레임의 순서를 나타내기 위해 임의로 선정한 값으로서 구체적인 인덱스 값은 변경될 수 있다.)
자유 공간은 원형 리스트 구조로 구성되는 경우에, 마지막 인덱스 N에 대응되는 노드(또는 논리적 프레임)의 다음 원소는 인덱스 0에 대응되는 노드(또는 논리적 프레임)이 된다.
이 때, 자유 공간 상의 논리적 프레임은 미리 설정된 하나의 방향, 예를 들어 인덱스가 증가하는 방향으로만 접근될 수 있다. 예를 들어 데이터 쓰기 처리부(140)에서 새로운 데이터 쓰기를 위해 자유 공간 상의 논리적 프레임에 접근할 때, 인덱스 K (0<= K < N)에 대응되는 논리적 프레임에 접근한 다음에는 인덱스가 K보다 큰 논리적 프레임은 접근할 수 있지만, 인덱스가 K보다 작은 논리적 프레임에는 접근할 수 없다. 단, 자유 공간이 원형 리스트 구조이기 때문에 인덱스 N에 대응되는 논리적 프레임에 접근한 다음에 인덱스가 0인 논리적 프레임에 접근하는 것은 가능하다.
도 5는 본 발명의 일 실시예에 따른 저장 공간의 논리적 구성의 일 예를 도시한 도면이다. 저장 공간의 논리적 구성 역시 도 4에서 설명한 자유 공간과 유사하다.
만약 저장 공간이 N(N은 임의의 자연수)개의 논리적 프레임으로 구성된다고 가정하면, 일 예로 각 논리적 프레임에 대해 0, 1, 2 ... (N-1), N 의 인덱스가 할당될 수 있다.(단, 전술한 인덱스는 논리적 프레임의 순서를 나타내기 위해 임의로 선정한 값으로서 구체적인 인덱스 값은 변경될 수 있다.)
저장 공간 역시 원형 리스트 구조로 구성될 수 있기 때문에, 마지막 인덱스 N에 대응되는 노드(논리적 프레임)의 다음 원소는 인덱스 0에 대응되는 노드(논리적 프레임)이 된다.
저장 공간 상의 논리적 프레임 역시 미리 설정된 하나의 방향, 예를 들어 인덱스가 증가하는 방향으로만 접근될 수 있다. 예를 들어 데이터 읽기 처리부(150)에서 파일에 저장된 데이터를 읽기 위해 저장 공간 상의 논리적 프레임에 접근할 때, 인덱스 K (0<= K < N)에 대응되는 논리적 프레임에 접근한 다음에는 인덱스가 K보다 큰 논리적 프레임은 접근할 수 있지만, 인덱스가 K보다 작은 논리적 프레임에는 접근할 수 없다. 단, 저장 공간이 원형 리스트 구조이기 때문에 인덱스 N에 대응되는 논리적 프레임에 접근한 다음에 인덱스가 0인 논리적 프레임에 접근하는 것은 가능하다.
전술한 도 4 및 도 5에서 설명한 자유 공간 및 저장 공간의 구성도는 논리적 구성을 의미하며, 실제 SSD 장치 상에서 자유 공간과 저장 공간을 구성하는 물리적 위치는 상이할 수 있다.
데이터 저장부(130)는 전술한 저장 공간에 저장된 데이터에 대한 저장 정보를 관리하기 위한 파일을 생성한다. 데이터 저장부(130)는 자유 공간 관리부(110)에서 관리되는 자유 공간을 리스트 형태로 재구성하여 데이터 저장을 위한 동작을 수행할 수 있다.
데이터 쓰기 처리부(140)는 전술한 자유 공간에 대한 정보를 기초로 하여 자유 공간에 데이터 쓰기 동작(e.g. 파일을 저장하는 동작)을 수행한다. 데이터 쓰기 처리부(140)는 데이터 쓰기 과정에서 자유 공간 관리부(110)에 의해 관리되는 자유 공간의 논리적 프레임 단위의 데이터를 실제 SSD 장치의 쓰기 버퍼 사이즈로 변환하여 처리한다.
데이터 읽기 처리부(150)는 전술한 저장 공간에 대한 정보를 기초로 하여 저장 공간에 저장된 데이터에 대한 읽기 동작을 수행한다. 데이터 읽기 처리부(150)는 데이터 재생부(160)에서 관리되는 저장 데이터의 리스트 정보를 기반으로 저장 공간에 저장된 데이터에 대한 읽기 동작을 수행할 수 있다.
데이터 재생부(160)는 전술한 저장 공간에 저장된 데이터를 재생하는 역할을 수행한다. 데이터 재생부(160)는 재생 요청 파일 정보를 기반으로 저장 공간 관리부(120)에서 관리되는 저장 공간을 리스트 형태로 재구성하여 데이터 재생 동작을 수행한다. 이 때, 데이터를 재생한다는 의미는 데이터를 읽어서 필요한 처리 작업(예를 들어 데이터 분석, 검색 등)을 수행한다는 의미이다.
도 6은 본 발명의 일 실시예에 따른 데이터의 생성/삭제에 따라 SSD 장치에 저장된 데이터가 변하는 과정을 도시한 도면이다.
도 6에서 SSD 장치의 공간은 자유 공간과 저장 공간으로 관리되는데, 자유 공간과 저장 공간은 논리적으로는 각각 원형 리스트로 구성될 수 있지만, 실제 SSD 장치에서는 자유 공간을 구성하는 물리적 공간과 저장 공간을 구성하는 물리적 공간이 서로 인접하거나 섞인 상태일 수 있다. 또한 자유 공간과 저장 공간을 모두 포함하는 하나의 원형 리스트가 존재하고 그 안에서 자유 공간과 저장 공간이 별도의 리스트로 관리될 수 있다.
도 6에서 자유 공간 및 파일이 저장된 공간을 표시하는 방법으로 (오프셋 : 프레임 카운트) 방법을 사용할 수 있다. 일 예로 자유 공간 = 1:8로 표시하는 경우, 자유 공간은 오프셋 1로부터 시작하는 8개의 프레임으로 구성된다는 의미이고, 다른 예로 파일 A = 2:3이라고 표시하는 경우 파일 A는 오프셋 2로부터 시작하는 3개의 프레임에 저장된다는 의미이다.
먼저, SSD 장치의 모든 공간이 자유 공간인 상태에서(자유 공간 = 1:8) A, B, C 파일이 저장될 수 있다. 파일 A = 1:3, 파일 B = 4:3, 파일 C = 7:2가 저장된 경우 SSD 장치의 모든 공간에 파일 데이터가 저장되어 자유 공간은 존재하지 않는 상태가 된다. 이 경우 자유 공간은 empty 상태, 전체 저장 공간은 1:8로 표시할 수 있다.
이후 A 파일이 삭제가 되면 다시 자유 공간이 확보가 되고 자유 공간 = 1:3, 파일 B = 4:3, 파일 C = 7:2로 표시된다. 이 때 새로운 D 파일이 생성되는 경우 자유 공간의 첫번째 프레임인 1 프레임부터 저장되고 파일 B = 4:3, 파일 C = 7:2, 파일 D = 1:2, 자유 공간 = 3:1로 표시된다.
만약 이 때, 파일 C가 삭제되면 파일 B = 4:3, 파일 D = 1:2 이고 자유 공간은 불연속적인 2개의 공간을 리스트로 구성하여 3:1 -> 7:2와 같이 표현될 수 있다. 즉, 오프셋 3부터 1개의 프레임과 오프셋 7부터 2개의 프레임을 더한 총 3개의 프레임 (3,7,8)이 자유 공간이 된다.
여기서 새로운 파일 E가 저장되는 경우 E도 불연속적으로 저장되어 파일 B = 4:3, 파일 D = 1:2, 파일 E = 3:1 -> 7:2로 표현된다.
도 7은 본 발명의 일 실시예에 따른 SSD 장치를 관리하는 방법을 도시한 순서도이다.
이하, 도 3에서 설명한 SSD 장치(100)에 의해 본 방법이 실행되는 것을 예시로 설명한다.
먼저 SSD 장치(100)의 데이터 저장부(130)를 통해, SSD 장치(100)의 공간 중에서 데이터가 저장되지 않은 자유 공간에 데이터를 저장할 수 있다(S710).
S710 단계에서 데이터가 저장되면, 데이터가 저장된 공간은 자유 공간에서 저장 공간으로 이동하게 되므로, SSD 장치(100)의 자유 공간 관리부(110)는 자유 공간의 정보를 업데이트하고 저장 공간 관리부(120)는 저장 공간의 정보를 업데이트하게 된다(S720).
이 때, 자유 공간 및 저장 공간은 도 3에서 설명한 바와 같이 원형 리스트 구조로 구성될 수 있다. 그리고 자유 공간 및 저장 공간은 도 3에서 설명한 논리적 프레임 단위로 관리될 수 있다.
또한, 저장 공간에 저장된 데이터에 대한 메타 데이터 정보가 별도의 영역에 저장될 수 있으며, 메타 데이터 정보의 사이즈는 고정된 크기로 구성될 수 있다.
이후, SSD 장치(100)의 데이터 재생부(160)는 전술한 저장 공간에 저장된 데이터를 재생할 수 있다(S730). 이 때, 저장 공간에 저장된 데이터는 미리 설정된 하나의 방향으로만 접근될 수 있다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: SSD 장치
110: 자유 공간 관리부
120: 저장 공간 관리부
130: 데이터 저장부
140: 데이터 쓰기 처리부
150: 데이터 읽기 처리부
160: 데이터 재생부

Claims (10)

  1. 표준 입출력 함수에 기초하여 데이터를 저장하는 SSD 장치에 있어서,
    SSD 장치의 공간 중 데이터가 저장되지 않은 자유 공간을 관리하는 자유 공간 관리부;
    SSD 장치의 공간 중 데이터가 저장된 저장 공간을 관리하는 저장 공간 관리부;
    데이터 저장 정보 관리 파일을 생성하는 데이터 저장부;
    상기 자유 공간에 대한 정보를 기초로 상기 자유 공간에 데이터 쓰기 동작을 수행하는 데이터 쓰기 처리부;
    상기 저장 공간에 대한 정보를 기초로 상기 저장 공간에 대해 데이터 읽기 동작을 수행하는 데이터 읽기 처리부; 및
    상기 저장 공간에 저장된 데이터를 재생하는 동작을 수행하는 데이터 재생부를 포함하되,
    상기 자유 공간 및 상기 저장 공간은 원형 리스트 구조로 구성되고,
    상기 자유 공간 및 상기 저장 공간은 오프셋과 프레임 카운트의 쌍의 리스트로 표시되고,
    상기 저장 공간에 저장된 데이터에 대한 메타 데이터 정보는 상기 저장 공간에 대한 정보를 저장하는 그룹 블록, 상기 저장 공간에 기록된 파일에 대한 속성 및 정보를 저장하는 레코드 블록 및 상기 파일이 저장된 물리적 데이터에 대한 저장 정보를 제공하는 아이노드 블록으로 구성되는 것을 특징으로 하는 SSD 장치.
  2. 제 1항에 있어서,
    상기 자유 공간 및 상기 저장 공간은 하나의 원형 리스트 안에 포함되는 것을 특징으로 하는 SSD 장치.
  3. 제 2항에 있어서,
    상기 저장 공간에 저장된 데이터에 대한 메타 데이터 정보는 고정된 사이즈로 구성되는 것을 특징으로 하는 SSD 장치.
  4. 제 2항에 있어서,
    상기 저장 공간에 저장된 데이터는 미리 설정된 논리적 프레임 단위로 관리되고,
    상기 저장 공간에 저장된 데이터의 논리적 프레임 단위와 상기 자유 공간을 구성하는 논리적 프레임 단위는 서로 상이한 것을 특징으로 하는 SSD 장치.
  5. 제 4항에 있어서,
    상기 저장 공간에 저장된 데이터는 미리 설정된 하나의 방향으로만 접근되는 것을 특징으로 하는 SSD 장치.
  6. 표준 입출력 함수에 기초하여 데이터를 저장하는 SSD 장치를 관리하는 방법에 있어서,
    SSD 장치의 공간 중 데이터가 저장되지 않은 자유 공간에 데이터를 저장하는 단계;
    상기 자유 공간 및 SSD 장치의 공간 중 데이터가 저장된 저장 공간의 정보를 업데이트하는 단계; 및
    상기 저장 공간에 저장된 데이터를 재생하는 단계를 포함하되,
    상기 자유 공간 및 상기 저장 공간은 원형 리스트 구조로 구성되고,
    상기 자유 공간 및 상기 저장 공간은 오프셋과 프레임 카운트의 쌍의 리스트로 표시되고,
    상기 저장 공간에 저장된 데이터에 대한 메타 데이터 정보는 상기 저장 공간에 대한 정보를 저장하는 그룹 블록, 상기 저장 공간에 기록된 파일에 대한 속성 및 정보를 저장하는 레코드 블록 및 상기 파일이 저장된 물리적 데이터에 대한 저장 정보를 제공하는 아이노드 블록으로 구성되는 것을 특징으로 하는 방법.
  7. 제 6항에 있어서,
    상기 자유 공간 및 상기 저장 공간은 하나의 원형 리스트 안에 포함되는 것을 특징으로 하는 방법.
  8. 제 7항에 있어서,
    상기 저장 공간에 저장된 데이터에 대한 메타 데이터 정보는 고정된 사이즈로 구성되는 것을 특징으로 하는 방법.
  9. 제 7항에 있어서,
    상기 저장 공간에 저장된 데이터는 미리 설정된 논리적 프레임 단위로 관리되고,
    상기 저장 공간에 저장된 데이터의 논리적 프레임 단위와 상기 자유 공간을 구성하는 논리적 프레임 단위는 서로 상이한 것을 특징으로 하는 방법.
  10. 제 9항에 있어서,
    상기 저장 공간에 저장된 데이터는 미리 설정된 하나의 방향으로만 접근되는 것을 특징으로 하는 방법.
KR1020180092764A 2018-08-09 2018-08-09 Ssd 장치를 관리하는 방법 및 그 ssd 장치 KR102167167B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180092764A KR102167167B1 (ko) 2018-08-09 2018-08-09 Ssd 장치를 관리하는 방법 및 그 ssd 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180092764A KR102167167B1 (ko) 2018-08-09 2018-08-09 Ssd 장치를 관리하는 방법 및 그 ssd 장치

Publications (2)

Publication Number Publication Date
KR20200017641A KR20200017641A (ko) 2020-02-19
KR102167167B1 true KR102167167B1 (ko) 2020-10-16

Family

ID=69669894

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180092764A KR102167167B1 (ko) 2018-08-09 2018-08-09 Ssd 장치를 관리하는 방법 및 그 ssd 장치

Country Status (1)

Country Link
KR (1) KR102167167B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228991A1 (en) * 2007-03-13 2008-09-18 Stmicroelectronics Sa Ring buffer management

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100714691B1 (ko) * 2005-05-04 2007-05-04 삼성전자주식회사 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법
KR102033323B1 (ko) * 2014-03-05 2019-10-17 한국전자통신연구원 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
KR101674294B1 (ko) * 2015-04-10 2016-11-09 충남대학교산학협력단 임의 접근 및 상태 접근이 가능한 자료구조 운용장치 및 그 운용 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080228991A1 (en) * 2007-03-13 2008-09-18 Stmicroelectronics Sa Ring buffer management

Also Published As

Publication number Publication date
KR20200017641A (ko) 2020-02-19

Similar Documents

Publication Publication Date Title
US10430398B2 (en) Data storage system having mutable objects incorporating time
CN103064639B (zh) 数据存储方法及装置
CN106687911B (zh) 不损害数据完整性的在线数据移动
US8392685B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
US20150058568A1 (en) HIERARCHICAL STORAGE FOR LSM-BASED NoSQL STORES
JP5481493B2 (ja) アクセス装置、情報記録装置、コントローラ、リアルタイム情報記録システム、アクセス方法、および、プログラム
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
US8046391B2 (en) Storage apparatus and its file control method and storage system
US20170132221A1 (en) Information management
US8239427B2 (en) Disk layout method for object-based storage devices
CN103942301A (zh) 一种面向多数据类型访问应用的分布式文件系统
JP4502375B2 (ja) ファイルシステムおよびその制御方法
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US10585802B1 (en) Method and system for caching directories in a storage system
US10698865B2 (en) Management of B-tree leaf nodes with variable size values
JP2017156959A (ja) ストレージ装置およびストレージ方法
US20170286442A1 (en) File system support for file-level ghosting
KR102167167B1 (ko) Ssd 장치를 관리하는 방법 및 그 ssd 장치
CN115964350A (zh) 一种文件系统管理模型及系统
JP2013088920A (ja) 計算機システム及びデータ管理方法
US8977814B1 (en) Information lifecycle management for binding content
KR20060095206A (ko) 낸드 플래시 메모리 파일 시스템 및 낸드 플래시 메모리 시스템에서 파일 엑세스 방법
JP5335215B2 (ja) データ記憶装置、データ記憶方法及びプログラム
JP6805501B2 (ja) ストレージ装置
EP2256648A1 (en) Method for storing data files, method for reading data content, and data store

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