KR20090033623A - File system and method for using the file system - Google Patents

File system and method for using the file system Download PDF

Info

Publication number
KR20090033623A
KR20090033623A KR1020070098746A KR20070098746A KR20090033623A KR 20090033623 A KR20090033623 A KR 20090033623A KR 1020070098746 A KR1020070098746 A KR 1020070098746A KR 20070098746 A KR20070098746 A KR 20070098746A KR 20090033623 A KR20090033623 A KR 20090033623A
Authority
KR
South Korea
Prior art keywords
cluster
file system
area
information
file
Prior art date
Application number
KR1020070098746A
Other languages
Korean (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 KR1020070098746A priority Critical patent/KR20090033623A/en
Publication of KR20090033623A publication Critical patent/KR20090033623A/en

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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

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

Abstract

A file system and a method for using the file system are provided to reduce the number of accesses to a storage device, thereby shortening time for a file processing command. A cluster area(120) comprises N clusters. N is a natural number. A cluster reference area(110) comprises information about whether to use the clusters. Each cluster comprises header areas(120-0~120-(N-1)). The header area stores information about connected clusters. The cluster reference area comprises a hash data area for finding a cluster having a specific value. A hash data area comprises a cluster bank area and a cluster ready group area for using a task scheduling technique of a UC/OS-II.

Description

파일시스템 및 상기 파일시스템의 이용방법{File system and Method for using the file system}File system and method for using the file system

본 발명은 파일 시스템에 관한 것으로, 보다 상세하게는 모바일 디바이스 등에서 읽기 및/또는 쓰기의 일정한 응답성을 보장할 수 있는 파일 시스템에 관한 것이다. The present invention relates to a file system, and more particularly, to a file system capable of ensuring a constant responsiveness of reading and / or writing in a mobile device or the like.

최근의 모바일 디바이스(Mobile Device)의 가장 큰 특징은 멀티미디어 기능의 확장이다.The biggest feature of recent mobile devices is the expansion of multimedia functions.

기존의 모바일 디바이스가 메모장, 메모장, 주소록, 일정관리 등 데이터 베이스 파일에 데이터를 추가/수정하는 작업을 주로하는 반면에, 멀티미디어 기능을 수행하는 모바일 디바이스는 대용량의 동영상, 정지영상 및 음악파일을 재생, 생성하거나, 또한 PC(personal computer)로와 통신을 유/무선 통신을 통하여 데이터(Data)를 다운로드(Download) 또는 업로드(Upload) 하는 작업을 주로 수행한다.While existing mobile devices mainly add / modify data into database files such as notepad, notepad, address book, calendar, etc., mobile devices that perform multimedia functions play large video, still and music files. It mainly performs a task of downloading or uploading data, or generating data or communicating with a personal computer (PC) through wired / wireless communication.

멀티미디어 기능이 모바일 디바이스 의 주요 기능으로 자리잡게 되면서 데이터 저장 및 관리기능의 중요성이 높아지고 있다.As multimedia functions become the main functions of mobile devices, the importance of data storage and management functions is increasing.

데이터의 저장 및 관리기능 즉, 쓰기 및 읽기 기능은 파일시스템에 의해 수 행되어 진다.Data storage and management functions, ie writing and reading functions, are performed by the file system.

도 1은 일반적인 파일 시스템을 설명하기 위한 개략적인 구성도를 나타낸다.1 is a schematic diagram illustrating a general file system.

도 1을 참조하면, 파일 시스템은 응용프로그램으로부터 출력되는 파일 처리 명령(예컨대, 쓰기, 읽기, 또는 삭제 등)을 수신하고, 수신되는 명령에 상응하는 동작을 디바이스 드라이버(device driver)를 통하여 저장장치(storage)에 수행한다. 예컨대, 파일 시스템이 읽기 명령을 수신하면, 상기 저장장치에 저장된 해당 파일을 상기 디바이스 드라이버를 통하여 메모리로 로딩하는 역할을 수행한다. 또는 상기 저장장치에 저장된 파일에 이름을 부여하거나, 저장 또는 검색을 위하여 상기 저장장치의 일정 영역에 파일을 위치시키는 등의 파일 처리에 관련된 전반적인 역할을 수행할 수 있다.Referring to FIG. 1, the file system receives a file processing command (eg, a write, read, or delete) output from an application program, and stores an operation corresponding to the received command through a device driver. (storage). For example, when the file system receives a read command, the file system loads the corresponding file stored in the storage device into the memory through the device driver. Alternatively, it may play an overall role related to file processing such as giving a name to a file stored in the storage device or placing a file in a predetermined area of the storage device for storage or retrieval.

하지만, 종래의 파일 시스템은 PC 기반 환경에 적합하도록 개발된 구조로써,최근의 멀티미디어 기능이 강화된 모바일 디바이스에는 적합하지 않다. 즉, 종래의 파일 시스템은 파일의 읽기 또는 쓰기 명령을 수행할 때, 빈번히 파일 시스템의 메타 영역에 접근해야하고, 메타 영역에서 필요한 정보를 찾는데에도 상당히 높은 비용을 들이게 된다. However, the conventional file system is a structure developed for a PC-based environment, and is not suitable for a mobile device having recently enhanced multimedia functions. In other words, when performing a file read or write command, the conventional file system frequently needs to access the meta area of the file system, and it is very expensive to find necessary information in the meta area.

특히, CPU 의 연산능력이 떨어지고, 저장장치에 데이터를 저장하거나 읽는 속도도 비교적 느린 모바일 디바이스 환경에서 PC 기반에 최적화된 파일 시스템을 이용하는 경우 읽기/쓰기 요청에 대한 응답시간을 보장하기는 힘들다.In particular, when the PC-based optimized file system is used in a mobile device environment where the CPU's computing power is low and data storage or reading speed is relatively slow, it is difficult to guarantee response time for read / write requests.

결국, 낮은 성능에 따른 실시간(real time) 특성을 어렵게 만들고, 저장장치에 접근횟수가 많아짐에 따라 전력 소모가 많아지는 등의 문제점을 야기한다.As a result, it becomes difficult to make real-time characteristics due to low performance, and causes problems such as power consumption increases as the number of accesses to the storage device increases.

따라서 본 발명이 이루고자 하는 기술적인 과제는 저장장치를 접근하는 횟수를 줄일 수 있는 파일 시스템 및 그 이용방법을 제공하는 것이다.Therefore, the technical problem to be achieved by the present invention is to provide a file system and a method of using the same that can reduce the number of times to access the storage device.

또한, 저장장치의 접근 횟수를 줄임에 따라 읽기 또는 쓰기 명령 등의 파일 처리 명령의 시간을 줄일 수 있는 파일 시스템 및 그 이용방법을 제공하는 것이다.In addition, the present invention provides a file system and a method of using the same, which reduce the time required for a file processing command such as a read or write command by reducing the number of accesses of a storage device.

또한, 저장장치의 접근 횟수를 줄임에 따라 전력 소모를 줄일 수 있는 파일 시스템 및 그 이용방법을 제공하는 것이다.In addition, the present invention provides a file system and a method of using the same, which can reduce power consumption by reducing the number of accesses of a storage device.

또한, 파일 처리 명령의 수행 시에 거의 균일한 응답성을 보장할 수 있는 파일 시스템 및 그 이용방법을 제공하는 것이다.Another object of the present invention is to provide a file system and a method of using the same, which can guarantee almost uniform responsiveness when performing a file processing command.

상기 기술적 과제를 해결하기 위한 파일 시스템은 N(N은 자연수) 개의 클러스터(cluster)들을 포함하는 클러스터 영역 및 상기 N 개의 클러스터들 중 적어도 일부의 사용여부에 대한 정보를 포함하는 클러스터 참조 영역을 포함하며, 상기 N 개의 클러스터들 각각은 상기 N 개의 클러스터들 각각과 연결되는 연결 클러스터에 대한 정보가 저장되는 헤더 영역을 포함한다.The file system for solving the technical problem includes a cluster region including N (N is a natural number) clusters and a cluster reference region including information on whether at least some of the N clusters are used. Each of the N clusters includes a header area in which information about a connection cluster connected to each of the N clusters is stored.

상기 클러스터 참조 영역은 상기 N 개의 클러스터들 중 특정 값을 갖는 클러스터를 찾기 위한 해시(hash) 데이터 영역을 포함할 수 있다.The cluster reference region may include a hash data region for searching for a cluster having a specific value among the N clusters.

상기 해시 데이터 영역은 UCOS-II 의 태스크 스케줄링 기법을 이용하기 위한 클러스터 뱅크 영역 및 클러스터 레디 그룹 영역을 포함할 수 있다.The hash data area may include a cluster bank area and a cluster ready group area for using a task scheduling scheme of UCOS-II.

상기 클러스터 레디 그룹 영역에 포함된 제 m(m 은 자연수) 번째 비트가 제1로직 값인 경우, 상기 클러스터 뱅크 영역의 제 m 번째 행에 상응하는 적어도 하나의 클러스터들은 사용중인 클러스터일 수 있다.When the m th bit (m is a natural number) included in the cluster ready group region has a first logic value, at least one cluster corresponding to the m th row of the cluster bank region may be a busy cluster.

상기 파일시스템이 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 데이터를 쓰는 경우, 상기 파일시스템은 상기 클러스터 뱅크 영역 및 상기 클러스터 레디 그룹에 저장된 정보에 기초하여 사용 가능한 클러스터에 대한 정보를 찾고, 상기 k 번째 클러스터에 포함된 헤더 영역에는 찾아진 상기 사용 가능한 클러스터에 대한 정보를 저장하며, 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용불가능 정보로 변경할 수 있다.When the file system writes data to the k th (k is an integer greater than or equal to 0 and less than or equal to N) cluster, the file system is usable cluster based on information stored in the cluster bank area and the cluster ready group. Find information about the cluster; store information about the usable cluster found in the header area included in the k-th cluster; and use information about the cluster bank area corresponding to the found cluster as unavailable information. You can change it.

상기 파일시스템은 상기 k 번째 클러스터에 상기 데이터의 쓰기가 완료되는 경우, 상기 k 번째 클러스터에 포함된 헤더 영역에는 데이터의 종료를 나타내는 정보를 저장하고, 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용가능 정보로 변경할 수 있다.When the writing of the data to the k-th cluster is completed, the file system stores information indicating the end of data in a header area included in the k-th cluster, and the cluster bank corresponding to the found available cluster. Information about the area can be changed into usable information.

상기 파일시스템이 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 저장된 데이터의 읽기 명령을 수행하는 경우, 상기 파일시스템은 상기 k 번째 클러스터에 저장된 데이터를 읽고 난 후 상기 k 번째 클러스터에 포함된 헤더 영역에 저장된 정보에 상응하는 클러스터에 저장된 데이터를 읽을 수 있다.If the file system performs a read command of data stored in the k th cluster (k is an integer greater than or equal to 0 and less than or equal to N), the file system reads the data stored in the k th cluster and then k The data stored in the cluster corresponding to the information stored in the header area included in the first cluster may be read.

상기 기술적 과제를 해결하기 위한 모바일 장치는 상기 파일시스템 및 상기 파일시스템을 통하여 저장장치에 파일 입출력을 수행하는 프로세서를 포함한다.The mobile device for solving the technical problem includes a file system and a processor for performing file input and output to the storage device through the file system.

상기 모바일 장치는 핸드폰, PDA(Personal Digital Assistant) , PMP(Portable Multimedia Player), 디지털 카메라 중 적어도 하나를 포함할 수 있다.The mobile device may include at least one of a mobile phone, a personal digital assistant (PDA), a portable multimedia player (PMP), and a digital camera.

상기 기술적 과제를 해결하기 위한 파일시스템의 이용방법은 상기 파일시스템이 N(N 은 자연수) 개의 클러스터 중 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 파일을 쓰는 경우, 상기 파일시스템은 해시 데이터 영역에 저장된 정보에 기초하여 사용 가능한 클러스터에 대한 정보를 찾는 단계 상기 k 번째 클러스터에 포함된 헤더 영역에 찾아진 상기 사용 가능한 클러스터에 대한 정보를 저장하는 단계 및 상기 k 번째 클러스터에 상기 파일의 적어도 일부분을 쓰는 단계를 포함한다.The method of using a file system to solve the technical problem is that when the file system writes a file to the k th (k is an integer greater than or equal to 0 and less than or equal to N) cluster of N (N is a natural number), The file system finding information on an available cluster based on information stored in a hash data area; storing information on the available cluster found in a header area included in the k-th cluster; and storing the k-th cluster. Writing to at least a portion of the file.

상기 파일시스템의 이용방법은 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용불가능 정보로 변경하는 단계를 더 포함할 수 있다.The method of using the file system may further include changing information on the cluster bank region corresponding to the found available cluster into unavailable information.

상기 k 번째 클러스터에 상기 데이터의 쓰기가 완료되는 경우, 상기 파일시스템은 상기 k 번째 클러스터에 포함된 헤더 영역에는 상기 파일의 종료를 나타내는 정보를 저장하는 단계 및 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 해시 데이터 영역에 대한 정보를 사용가능 정보로 변경하는 단계를 더 포함할 수 있다.When writing of the data to the k-th cluster is completed, the file system stores information indicating the end of the file in a header area included in the k-th cluster, and the file corresponding to the available cluster found. The method may further include changing information about the hash data area into usable information.

상기 해시 데이터 영역은 UCOS-II 의 태스크 스케줄링 기법을 이용하기 위한 클러스터 뱅크 영역 및 클러스터 레디 그룹 영역을 포함할 수 있다.The hash data area may include a cluster bank area and a cluster ready group area for using a task scheduling scheme of UCOS-II.

상기 클러스터 레디 그룹 영역에 포함된 제 m(m 은 자연수) 번째 비트가 제1 로직 값인 경우, 상기 클러스터 뱅크 영역의 제 m 번째 행에 상응하는 적어도 하나의 클러스터들은 사용중인 클러스터일 수 있다.When the m th bit (m is a natural number) included in the cluster ready group area is a first logic value, at least one cluster corresponding to the m th row of the cluster bank area may be a busy cluster.

상기 기술적 과제를 해결하기 위한 파일시스템의 이용방법은 상기 파일시스템이 N(N 은 자연수) 개의 클러스터 중 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 저장된 파일의 읽기 명령을 수행하는 경우, 상기 파일시스템은 상기 k 번째 클러스터에 저장된 상기 파일의 적어도 일부분을 읽는 단계 및 상기 k 번째 클러스터에 포함된 헤더 영역에 저장된 정보에 상응하는 클러스터에 저장된 상기 파일의 적어도 일부분을 읽는 단계를 포함한다.A method of using a file system to solve the technical problem is that the file system reads a file stored in a k th cluster (where k is an integer greater than or equal to 0 and less than or equal to N) among N (N is a natural number) clusters. The file system reads at least a portion of the file stored in the k-th cluster and reads at least a portion of the file stored in the cluster corresponding to information stored in a header area included in the k-th cluster. It includes.

본 발명에 따른 파일 시스템은 메타 데이터와 데이터를 혼합하여 저장함으로써, 메타 데이터를 위한 데이터 영역의 크기를 줄일 수 있는 효과가 있다.The file system according to the present invention has the effect of reducing the size of the data area for meta data by storing the mixed metadata and data.

또한, 클러스터 할당과 연결 클러스터의 검색에 걸리는 시간을 거의 일정하게 줄임으로써, 파일 처리 명령의 수행시에 거의 균일한 응답성을 제공할 수 있는 효과가 있다.In addition, by substantially reducing the time required for cluster allocation and searching for a connected cluster, there is an effect that it is possible to provide almost uniform responsiveness when performing a file processing command.

또한, 메타 데이터와 데이터를 혼합하여 저장함으로써, 메타 데이터 영역을 접근하는 횟수를 줄이고, 이에 따라 파일 처리 명령의 수행 시간을 줄일 수 있고, 전력 소모도 줄일 수 있는 효과가 있다.In addition, by mixing and storing the metadata and data, the number of times of accessing the metadata area is reduced, thereby reducing the execution time of the file processing command and reducing power consumption.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도 면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.

또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. In addition, in the present specification, when one component 'transmits' data to another component, the component may directly transmit the data to the other component, or through at least one other component. Means that the data may be transmitted to the other component.

반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다. On the contrary, when one component 'directly transmits' data to another component, it means that the data is transmitted from the component to the other component without passing through the other component.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

본 명세서에서 파일 시스템이라 함은, 파일이 저장된 저장장치의 구조 및 상기 저장장치에 저장된 파일을 접근하기 위한 OS(operating system)의 적어도 일부분 및 이를 구동하기 위한 하드웨어를 포함하는 의미로 사용된다.In the present specification, the file system is used to mean a structure of a storage device in which a file is stored, and at least a part of an operating system (OS) for accessing a file stored in the storage device and hardware for driving the file.

도 2는 종래의 파일 시스템의 개략적인 구성을 나타내고, 도 3은 본 발명의 실시 예에 따른 파일 시스템의 개략적인 구조를 나타낸다.2 shows a schematic configuration of a conventional file system, and FIG. 3 shows a schematic structure of a file system according to an embodiment of the present invention.

먼저 도 2를 참조하면, 종래의 파일 시스템은 메타 영역(1) 및 데이터 영역(2)을 포함한다.First, referring to FIG. 2, a conventional file system includes a meta area 1 and a data area 2.

상기 데이터 영역(2)은 실제 파일 또는 데이터를 저장하는 파일 영역(15)과 상기 파일 영역(15)에 저장되는 파일에 대한 정보를 저장하는 디렉토리 영역(14)을 포함한다.The data area 2 includes a file area 15 for storing actual files or data, and a directory area 14 for storing information on files stored in the file area 15.

또한, 상기 메타 영역(1)은 상기 데이터 영역(15)을 관리하기 위하여 필요한 메타 데이터(Meta Data, 예컨대, 파일의 위치, 파일의 크기, 생성 일시, 속성 등)를 저장할 수 있다.In addition, the meta area 1 may store meta data (eg, a location of a file, a file size, a creation date, a property, etc.) necessary for managing the data area 15.

도 2 는 FAT(file allocation table) 파일 시스템 형식으로 저장장치를 포맷(Forma) 한 경우를 나타내는데, 상기 메타 데이터는 부트(Boot) 영역(10), 예약(Reserved) 영역(11), 클러스터의 연결 정보가 저장되는 FAT1 영역(12), 상기 FAT1 영역의 사본인 FAT2 영역(13) 및 상기 데이터 영역(2)의 디렉토리 영역(14)에 저장되는 정보를 의미한다.FIG. 2 illustrates a case in which a storage device is formatted in a file allocation table (FAT) file system format. The metadata includes a connection of a boot area 10, a reserved area 11, and a cluster. The information is stored in the FAT1 area 12 where information is stored, the FAT2 area 13 which is a copy of the FAT1 area, and the directory area 14 of the data area 2.

상기 부트 영역(10)에는 파일 시스템의 구조(예컨대, 파일시스템의 종류, FAT 의 시작 위치, 루트 디렉토리의 시작 위치, 클러스터 사이즈 등)에 대한 데이터가 저장될 수 있다. 또한, 저장장치가 시스템에 마운트(mount)되는 경우 파일 시스템은 상기 부트 영역(10)에 저장된 정보를 읽어서 마운트 된 저장장치에 대한 정보를 알 수도 있다.The boot area 10 may store data about a structure of a file system (for example, a type of file system, a start position of a FAT, a start position of a root directory, a cluster size, and the like). In addition, when the storage device is mounted on the system, the file system may read information stored in the boot area 10 to know information about the mounted storage device.

상기 예약 영역(11)은 예약된 영역으로써 상기 부트 영역(10)의 적어도 일부분의 사본을 포함할 수 있으며, 시스템에서 미리 설정된 약간의 정보가 포함될 수 있다.The reserved area 11 may include a copy of at least a portion of the boot area 10 as a reserved area, and may include some information preset in the system.

상기 FAT1 영역(12)에는 상기 데이터 영역(2)의 클러스터의 연결 정보가 저장되며, 상기 FAT2 영역(13)에는 FAT1 의 사본이 저장될 수 있다.In the FAT1 area 12, connection information of the cluster of the data area 2 may be stored, and a copy of FAT1 may be stored in the FAT2 area 13.

또한, 상기 데이터 영역(2)은 클러스터 단위로 나뉘어져 구성되며, 한 개의 클러스터는 여러 개의 섹터로 구성될 수 있다.In addition, the data area 2 may be divided into cluster units, and one cluster may be configured of several sectors.

전술한 바와 같이, 종래의 파일 시스템에는 메타 데이터를 위한 영역(즉, 메타 영역(1) 및 디렉토리 영역(14))이 비교적 크고, 이것은 실제 데이터를 저장하는 공간의 감소를 의미한다.As described above, in the conventional file system, the area for meta data (ie, the meta area 1 and the directory area 14) is relatively large, which means a reduction in the space for storing the actual data.

이와 비교하여, 도 3을 참조하면, 본 발명의 실시 예에 따른 파일 시스템은 클러스터 참조 영역(110) 및 클러스터 영역(120)을 포함한다. 물론, 상기 파일 시스템은 부트 영역(100)을 더 포함할 수 있다.In contrast, referring to FIG. 3, a file system according to an exemplary embodiment of the present invention includes a cluster reference region 110 and a cluster region 120. Of course, the file system may further include a boot area 100.

상기 클러스터 영역(120)은 N(N은 자연수) 개의 클러스터(cluster)들을 포함한다. 상기 클러스터는 데이터가 저장되는 단위이며, 한 개의 클러스터는 다수개의 섹터를 포함할 수 있다. 또한, 본 발명의 실시 예에 따른 파일 시스템은 도 3에 도시된 바와 같이 클러스터 0번부터 사용 할 수 있다. 이는 종래의 파일 시스템(예컨대, FAT32)에서는 클러스터 2번부터 데이터가 저장되며, 클러스터 0번과 1번에 상응하는 영역은 시스템이 예약해두고 사용한 것에 비해 보다 넓은 데이터 여역을 사용할 수 있음을 의미한다.The cluster region 120 includes N clusters (N is a natural number). The cluster is a unit in which data is stored, and one cluster may include a plurality of sectors. In addition, the file system according to an embodiment of the present invention can be used from cluster 0 as shown in FIG. This means that data is stored from cluster 2 in a conventional file system (eg, FAT32), and the regions corresponding to clusters 0 and 1 can use a wider data area than the system reserved. .

상기 클러스터 영역(120)은 물론 디렉토리 영역(121)과 데이터 영역(123)을 포함할 수 있다. The cluster area 120 may of course include a directory area 121 and a data area 123.

상기 디렉토리 영역(121)에는 상기 데이터 영역(123)에 저장된 파일 들에 대한 정보(예컨대, 시작 클러스터의 위치, 파일 이름 등)가 저장되며, 상기 데이터 영역(123)에는 실제 파일 데이터가 저장될 수 있다.The directory area 121 may store information about files stored in the data area 123 (for example, a location of a start cluster, a file name, etc.), and actual file data may be stored in the data area 123. have.

상기 디렉토리 영역(121)의 크기는 상기 데이터 영역(123)에 저장되는 파일 의 크기 또는 개수에 따라 동적으로 변할 수 있다. 즉, 상기 디렉토리 영역(121)에 포함되는 클러스터의 개수는 변할 수 있다. 또한, 상기 디렉토리 영역(121)에 포함되는 클러스터는 연속적이지 않을 수 있다. 예컨대, 상기 디렉토리 영역(121)에 포함되는 클러스터는 상기 클러스터 영역(120)의 첫 번째 클러스터(클러스터 0), 3 번째 클러스터(클러스터 2), 10 번째 클러스터(클러스터 9) 등과 같이 물리적으로 연속되지 않을 수 있다. 하지만, 상기 디렉토리 영역(121)에 포함되는 클러스터에도 후술할 헤더 영역(120-0~120-(N-1))이 포함되고, 상기 헤더 영역(120-0~120-(N-1))에는 연결 클러스터에 대한 정보가 저장되므로, 본 발명의 실시 예에 따른 파일 시스템은 상기 디렉토리 영역(121)과 상기 데이터 영역(123)을 구분할 수 있다.The size of the directory area 121 may vary dynamically according to the size or number of files stored in the data area 123. That is, the number of clusters included in the directory area 121 may vary. In addition, clusters included in the directory area 121 may not be continuous. For example, the clusters included in the directory area 121 may not be physically contiguous, such as the first cluster (cluster 0), the third cluster (cluster 2), the tenth cluster (cluster 9), etc. of the cluster area 120. Can be. However, the cluster included in the directory area 121 also includes header areas 120-0 to 120- (N-1), which will be described later, and the header areas 120-0 to 120- (N-1). Since information on the connection cluster is stored in the file system according to the embodiment of the present invention, the directory area 121 and the data area 123 may be distinguished from each other.

한편, 상기 클러스터 각각은 헤더 영역(120-0~120-(N-1))을 포함할 수 있다. 상기 헤더 영역(120-0~120-(N-1))은 상기 클러스터 각각과 연결되는 연결 클러스터에 대한 정보를 저장할 수 있다.Meanwhile, each of the clusters may include header regions 120-0 to 120- (N-1). The header areas 120-0 to 120- (N-1) may store information on a connection cluster connected to each of the clusters.

예컨대, 파일 AAA.txt의 데이터가 클러스터 3, 4, 5, 7, 8에 저장된다고 하면, 상기 클러스터 3에 포함된 헤더 영역(120-3)에는 클러스터 4에 대한 정보(예컨대, 클러스터 4의 주소)가 저장되고, 상기 클러스터 4에 포함된 헤더 영역(120-4)에는 클러스터 5에 대한 정보(예컨대, 클러스터 5의 주소)가 저장되고, 상기 클러스터 5에 포함된 헤더 영역(120-5)에는 클러스터 7에 대한 정보(예컨대, 클러스터 7의 주소)가 저장되고, 상기 클러스터 8에 포함된 헤더 영역(120-8)에는 파일의 끝임을 나타내는 정보(예컨대, EOF(End of File))가 저장될 수 있다.For example, if data of the file AAA.txt is stored in clusters 3, 4, 5, 7, and 8, the header area 120-3 included in cluster 3 contains information about cluster 4 (for example, the address of cluster 4). ) Is stored in the header region 120-4 included in the cluster 4, and information about the cluster 5 (eg, the address of cluster 5) is stored, and the header region 120-5 included in the cluster 5 is stored in the header region 120-4 included in the cluster 5. Information about the cluster 7 (eg, the address of the cluster 7) is stored, and information indicating the end of the file (eg, end of file (EOF)) is stored in the header area 120-8 included in the cluster 8. Can be.

결국, 종래의 파일 시스템에서는 FAT1 영역(12) 또는 FAT2 영역(13)에 저장 되는 클러스터의 연결 정보가 본 발명의 실시 예에 따른 파일 시스템에서는 종래 파일 시스템의 데이터 영역(2)에 상응하는 클러스터 영역(120)에 저장된다.As a result, the cluster information corresponding to the cluster information stored in the FAT1 area 12 or the FAT2 area 13 in the conventional file system corresponds to the data area 2 of the conventional file system in the file system according to an exemplary embodiment of the present invention. Stored at 120.

따라서, 종래의 파일 시스템에서는 데이터 영역(2)에 저장된 어느 한 클러스터의 정보를 읽다가 다음 클러스터를 읽기 위해서는 메타 영역(1)에 접근하여 연결 클러스터에 대한 정보를 읽은 후 다음 클러스터를 읽어야 하지만, 본 발명의 실시 예에 따른 파일 시스템에서는 클러스터 영역에 저장된 어느 한 클러스터의 정보와 다음 클러스터에 대한 정보를 읽을 수 있으므로 메타 영역(1)에 접근하는 횟수를 현저히 줄일 수 있다.Therefore, in the conventional file system, in order to read information of one cluster stored in the data area 2 and to read the next cluster, it is necessary to access the meta area 1 to read information about the connected cluster and then read the next cluster. In the file system according to an exemplary embodiment of the present invention, since the information of one cluster and the next cluster information stored in the cluster region can be read, the number of times of accessing the meta region 1 can be significantly reduced.

한 편, 상기 헤더 영역(120-0~120(N-1))은 상기 헤더 영역(120-0~120(N-1))을 포함하는 각각의 클러스터의 미리 정해진 위치에 존재할 수 있다.On the other hand, the header areas 120-0 to 120 (N-1) may exist at predetermined positions of each cluster including the header areas 120-0 to 120 (N-1).

예컨대, 상기 헤더 영역(120-0~120(N-1))은 각각의 클러스터의 첫 번째 섹터에 존재할 수 있다. 따라서, 파일 시스템은 클러스터의 정보를 읽으면서, 첫 번째 섹터에 존재하는 정보는 연결 클러스터에 대한 정보로 사용하고, 나머지 섹터에 존재하는 정보를 실제 파일 데이터로 인식할 수 있다. 물론, 상기 헤더 영역(120-0~120(N-1))의 각각의 클러스터에서의 위치는 구현 예에 따라 다를 수 있다.For example, the header areas 120-0 to 120 (N-1) may exist in the first sector of each cluster. Therefore, while the file system reads the information of the cluster, the information present in the first sector can be used as information on the connected cluster, and the information present in the remaining sectors can be recognized as actual file data. Of course, the position in each cluster of the header areas 120-0 to 120 (N-1) may vary depending on implementation.

결국, 본 발명의 실시 예에 따른 파일 시스템의 큰 특징 중 하나는 실제 데이터와 메타 데이터가 클러스터 영역(120)에 같이 존재함으로써, 프로세서가 상기 파일 시스템을 저장하는 저장장치로의 접근 횟수를 줄일 수 있다는 것이다.As a result, one of the great features of the file system according to an embodiment of the present invention is that the actual data and the metadata exist together in the cluster area 120, so that the processor can reduce the number of accesses to the storage device storing the file system. Is there.

한편, 상기 클러스터 참조 영역(110)은 상기 N 개의 클러스터들 중 적어도 일부의 사용여부에 대한 정보를 포함할 수 있다. 즉, 상기 클러스터 참조 영 역(110)은 상기 클러스터 영역(120)에 포함되는 클러스터들 각각이 현재 사용 중 인지 여부를 나타내는 정보가 포함될 수 있다. 따라서, 파일 시스템은 파일 쓰기 명령을 수행하는 경우, 어느 하나의 클러스터에 파일을 쓰고 다음 클러스터에 파일을 계속해서 써야 하는 경우, 상기 클러스터 참조 영역(110)을 참조하여 사용 중이지 않은 클러스터를 찾고, 찾아진 클러스터에 상기 파일을 쓸 수 있다.The cluster reference region 110 may include information on whether at least some of the N clusters are used. That is, the cluster reference region 110 may include information indicating whether each of the clusters included in the cluster region 120 is currently in use. Therefore, when the file system executes a file write command and needs to write a file to one cluster and continuously write a file to the next cluster, the file system refers to the cluster reference area 110 to find a cluster that is not in use. The file can be written to the found cluster.

이를 위해, 상기 클러스터 참조 영역(110)은 상기 N 개의 클러스터들 중 특정 값을 갖는 클러스터를 찾기 위한 해시(hash) 데이터 영역을 포함할 수 있다.To this end, the cluster reference region 110 may include a hash data region for searching for a cluster having a specific value among the N clusters.

해시라함은, 여러 개의 키 값들이 무작위로 들어있는 테이블에서 특정 값을 찾고자 하는 경우, 원하는 키 값을 가지는 테이블 항목을 검색하기 위해 특정한 변환 함수를 이용하여 키 값을 항목의 주소로 직접 바꿔서 검색하는 방법을 의미한다. 이때 변환 함수는 해시 함수(hash function)라 하고, 상기 테이블을 해시 테이블이라할 수 있다.Hash means that if you want to find a specific value in a table that contains several key values randomly, you can change the key value to the address of the item by using a specific conversion function to find the table item with the desired key value. Means the way. In this case, the conversion function may be referred to as a hash function, and the table may be referred to as a hash table.

따라서, 상기 해시 데이터 영역에는 상기 해시 함수에 대한 정보 및 상기 해시 테이블에 대한 정보를 포함할 수 있다.Thus, the hash data area may include information about the hash function and information about the hash table.

또한, 상기 해시 테이블에는 상기 N 개의 클러스터들 중 적어도 일부의 사용여부에 대한 정보를 키 값으로 포함할 수 있다. 예컨대, 본 발명의 실시 예에 따른클러스터 영역(120)에 포함된 클러스터가 N 개이고, 각각의 클러스터가 사용중인 경우에는 해시 테이블의 키 값을 '0'으로 갖고, 사용중이지 않은 경우에는 키 값을 '1'로 갖는다고 하면, 상기 해시 테이블은 N개의 버켓(bucket)을 갖는 해시 테이블일 수 있다. 또한, 상기 버켓의 주소는 상기 클러스터에 대한 정보를 가지도록 설 정할 수 있다.In addition, the hash table may include information on whether at least some of the N clusters are used as key values. For example, if there are N clusters included in the cluster area 120 according to an embodiment of the present invention, each cluster is in use, and the key value of the hash table is set to '0'. If set to '1', the hash table may be a hash table having N buckets. In addition, the address of the bucket can be set to have information about the cluster.

따라서, 상기 파일 시스템이 사용 중이지 않은 클러스터를 찾고자 하는 경우, 상기 파일 시스템은 소정의 해시 함수를 통하여 키 값 '1'을 갖는 버켓을 찾으면 된다. 예컨대, 키 값을 '1'로 갖는 버켓 중 가장 먼저 찾아진 버켓이 3번째 버켓이라고 하면, 3번째 클러스터가 사용중이지 않은 클러스터를 의미할 수 있다.Therefore, if the file system is to find a cluster that is not in use, the file system needs to find a bucket having a key value '1' through a predetermined hash function. For example, if the first bucket among the buckets having a key value of '1' is the third bucket, it may mean a cluster in which the third cluster is not in use.

물론, 이러한 해시 기법은 해시 테이블에서 버켓의 크기, 슬롯의 개수, 해시 함수, 또는 충돌 처리 방법에 따라 키 값을 검색하는데에 걸리는 비용이 차이가 날 수 있다. 이러한 해시 기법에 관해서는 전산학, 또는 수학의 분야에서 널리 알려진 이론이므로 상세한 설명은 생략한다.Of course, such a hash technique may have a different cost for retrieving a key value according to a bucket size, a number of slots, a hash function, or a collision processing method in a hash table. Since this hash technique is a widely known theory in the field of computational science or mathematics, a detailed description thereof will be omitted.

결국, 본 발명의 실시 예에 따른 파일 시스템은 이러한 해시 기법을 이용하여 사용중이지 않은 클러스터를 빨리 검색할 수 있는 데에 또 다른 특징이 있다.As a result, the file system according to an embodiment of the present invention has another feature in that it is possible to quickly search a cluster that is not in use by using this hash technique.

이러한 해시 기법의 일 예로 본 발명의 실시 예에서는 UCOS-II 의 태스크 스케줄링(task scheduling) 기법을 일 예로 설명한다. 하지만, 본 발의 권리범위가 이에 한정되지는 않는다.As an example of such a hash technique, an embodiment of the present invention describes a task scheduling technique of UCOS-II as an example. However, the scope of the present invention is not limited thereto.

상기 UCOS-II 의 태스크 스케줄링 기법을 위해서, 상기 클러스터 참조 영역(110)은 클러스터 뱅크 영역 및 클러스터 레디 그룹 영역을 포함할 수 있다.For the task scheduling scheme of the UCOS-II, the cluster reference region 110 may include a cluster bank region and a cluster ready group region.

도 4는 본 발명의 실시 예에 따른 UCOS-II 의 태스크 스케줄링 기법을 설명하기 위한 클러스터 뱅크 및 클러스터 레디 그룹을 개략적으로 나타낸다.4 schematically illustrates a cluster bank and a cluster ready group for explaining a task scheduling scheme of UCOS-II according to an embodiment of the present invention.

도 4는 클러스터가 64개인 경우, 상기 클러스터 뱅크 영역에 포함된 클러스터 뱅크는 8bit 로 구성된 8 개의 배열로 구성될 수 있다. 또한, 상기 클러스터 레 디 그룹 영역에 포함되는 상기 클러스터 레디 그룹(ClusterRdyGrp)은 8bit 로 구성되어 있으며 각 비트는 클러스터 뱅크의 행을 의미할 수 있다.4 illustrates that when there are 64 clusters, the cluster banks included in the cluster bank region may be configured in eight arrays composed of 8 bits. In addition, the cluster ready group ClusterRdyGrp included in the cluster ready group region may include 8 bits, and each bit may mean a row of the cluster bank.

예컨대, 상기 클러스터 레디 그룹이 비트 '11111000' 로 설정되어 있다면 상기 클러스터 뱅크의 3번째 행에 포함된 Cluster0~23 은 사용 중 이라는 의미이고 4번째 행에 포함된 Cluster24~31에 비어있는 클러스터가 있다는 의미일 수 있다. 또한, 상기 클러스터 뱅크 4 번째 행에서 비트를 확인한 결과, 비트 '11100000' 로 설정되어 있다면 Cluster24~28 은 사용 중 이라는 의미이고, Cluster29 가 비어 있는 클러스터라는 것을 알 수 있다.For example, if the cluster ready group is set to bit '11111000', Cluster0 to 23 included in the third row of the cluster bank are in use, and there is an empty cluster in Cluster24 to 31 included in the fourth row. Can be. In addition, as a result of checking the bit in the fourth row of the cluster bank, if the bit is set to '11100000', it means that Cluster24 to 28 are in use and Cluster29 is an empty cluster.

따라서, 종래의 파일 시스템에서 FAT를 순차적으로 검색하여 비어 있는(사용중이지 않은) 클러스터를 찾는 방법에 비하여 더 빨리 비어 있는 클러스터를 찾을 수 있다.Therefore, the empty cluster can be found more quickly than the conventional file system that sequentially searches the FAT to find an empty (not in use) cluster.

또한, 상기 클러스터 뱅크는 해시 테이블의 기능을 수행하고, 상기 클러스터 레디 그룹은 해시 함수의 역할을 수행한다고 할 수 있다. 상기 클러스터 영역(120)에 데이터가 쓰여지거나, 지워질 때 마다 상기 클러스터 뱅크 또는 상기 클러스터 레디 그룹 중 적어도 하나는 그 값이 변경될 수 있다.In addition, the cluster bank may function as a hash table, and the cluster ready group may serve as a hash function. Whenever data is written to or erased from the cluster area 120, at least one of the cluster bank or the cluster ready group may be changed in value.

또한, 사용하던 클러스터를 반납하는 경우(예컨대, 데이터가 삭제되는 경우)를 설명하면 다음과 같다. 예컨대, Cluster12 번을 반납하는 경우 12 를 이진수로 변환하면 비트 '00001100' 이다. 그러면, 상기 비트 '00001100' 중 3~5 번 bit(001)은 상기 클러스터 뱅크의 Y 방향으로 1 만큼 내려온 2 행을 의미하고 0~2 번 bit(100)는 상기 클러스터 뱅크 의 X 방향으로 4 만큼 좌측으로 이동한 4 열을 의미하므로 Cluster12 번을 쉽게 찾을 수 있다. 따라서, 찾아진 클러스터 뱅크 항목에 저장된 값을 '1'로 변경할 수 있다.In addition, a case of returning a used cluster (for example, data is deleted) will be described below. For example, when returning Cluster12, converting 12 to binary is bit '00001100'. Then, bits 3 to 5 of the bit '00001100' mean 2 rows descending by 1 in the Y direction of the cluster bank, and bits 0 through 2 are 4 in the X direction of the cluster bank. You can easily find Cluster # 12 because it means four columns to the left. Therefore, the value stored in the found cluster bank item may be changed to '1'.

상술한 바와 같은 UCOS-II 의 태스크 스케줄링 기법을 사용하는 경우, 종래의 파일 시스템(예컨대, FAT32)에서는 1 개의 클러스터를 표현하기 위하여 4Byte 가 필요하고, 64 개의 클러스터를 표현하기 위해서는 64*4Byte=256Byte 필요하게 된다. When using the task scheduling scheme of UCOS-II as described above, in a conventional file system (for example, FAT32), 4 bytes are required to represent one cluster, and 64 * 4Byte = 256Byte to represent 64 clusters. It is necessary.

하지만, 본 발명의 실시 예에 따른 파일 시스템에서는 상기 클러스터 뱅크를 표현하기 위하여 1Byte*8=8Byte가 필요하고, 상기 클러스터 레디 그룹을 표현하기 위하여 1Byte가 필요하므로 총 9Byte 가 필요하게 된다.However, in the file system according to an exemplary embodiment of the present invention, 1 byte * 8 = 8 bytes are required to represent the cluster bank, and 1 byte is required to represent the cluster ready group, so a total of 9 bytes is required.

즉, 상술한 것과 같은 기법을 사용하면 클러스터를 찾기 위하여 종래의 파일 시스템에서 FAT 영역을 순차적으로 검색하던 것에 비해, 작업을 신속하게 수행할 수 있으며 Meta Data 인 FAT 영역을 대략 3%로 줄일 수 있는 효과가 있다.In other words, using the same technique as described above, it is possible to perform the operation more quickly and reduce the FAT area, which is Meta Data, to about 3%, compared to sequentially searching the FAT area in the conventional file system to find a cluster. It works.

도 5는 종래의 파일 시스템에서 FAT 영역을 개략적으로 나타내고, 도 6은 본 발명의 실시 예에 따른 파일 시스템을 개략적으로 나타낸다.FIG. 5 schematically shows a FAT area in a conventional file system, and FIG. 6 schematically shows a file system according to an embodiment of the present invention.

도 5와 도6을 참조하여 본 발명의 실시 예에 따른 파일 시스템에서의 쓰기 명령과 읽기 명령을 수행하는 방법을 설명하면 다음과 같다.A method of performing a write command and a read command in a file system according to an embodiment of the present invention will be described with reference to FIGS. 5 and 6 as follows.

먼저 도 5를 참조하여 설명하면, 종래의 파일 시스템(예컨대, FAT 32)의 디렉토리 영역에 표 1과 같은 파일명과 시작 클러스터(Start Cluster)가 포함되어 있다고 가정한다.First, referring to FIG. 5, it is assumed that a file name and a start cluster shown in Table 1 are included in a directory area of a conventional file system (for example, FAT 32).

파일명(File Name)File Name 시작 클러스터(Start Cluster)Start cluster AAA.TXTAAA.TXT 0x30x3 BBB.JPGBBB.JPG 0xC0xC CCC.MP3CCC.MP3 0xF0xF

그리고, 도 5에 도시된 바와 같은 FAT 영역을 갖고 있다고 하면, 디렉토리 영역에 포함되는 클러스터는 클러스터 2, 9, A, B, 11임을 의미하고, 파일 AAA.TXT 는 클러스터 3, 4, 5, 7, 8에 저장됨을 의미한다.And, if it has a FAT area as shown in Figure 5, it means that the cluster included in the directory area is cluster 2, 9, A, B, 11, the file AAA.TXT is cluster 3, 4, 5, 7 , It means stored in 8.

또한, 파일 BBB.JPG는 클러스터 C, D, E에 저장되고, 파일 CCC.MP3는 클러스터 F, 10, 12, 13, 14, 15, 16에 저장됨을 의미한다.In addition, the file BBB.JPG is stored in the clusters C, D, and E, and the file CCC.MP3 is stored in the clusters F, 10, 12, 13, 14, 15, and 16.

그러면, 종래의 파일 시스템이 상기 AAA.TXT 파일의 쓰기 명령을 수행하는 과정을 설명하면 다음과 같다.Next, a process of performing a write command of the AAA.TXT file by the conventional file system is as follows.

먼저 응용 프로그램에서 종래의 파일 시스템으로 AAA.TXT 파일을 저장 요청하면, 종래의 파일 시스템은 디렉토리 영역을 검색하여 AAA.TXT 파일이 있는지 확인한다. 동일한 파일명이 없는 경우 종래 파일 시스템은 FAT 을 검색하여 가용한 클러스터 번호를 확인하고, 시작 클러스터(클러스터 3)를 결정한다.First, when the application requests to save the AAA.TXT file in the conventional file system, the conventional file system searches the directory area to determine whether the AAA.TXT file exists. If there is no identical file name, the conventional file system searches the FAT to check the available cluster number, and determines the starting cluster (cluster 3).

그 후, 디렉토리 엔트리에 AAA.TXT 와 관련된 정보를 기입(예컨대, 파일명, 시작 클러스터(Start Cluster, 클러스터 3) 등)한다. 그 후, 시작 클러스터(클러스터 3)에 데이터를 저장한다. 시작 클러스터(클러스터에 3) AAA.TXT 파일의 데이터 전부를 저장하지 못하였으므로, 다음 클러스터를 검색한다. 즉, FAT을 검색하여 가용한(사용중이지 않은) 클러스터 번호를 확인한다. 다음 가용한 클러스터는 4임을 확인하고, 클러스터 4에 클러스터 3의 데이터와 연결해서 데이터를 계속 저장한다.Thereafter, information related to AAA.TXT is written to a directory entry (e.g., a file name, a start cluster (Cluster 3), etc.). Thereafter, data is stored in the starting cluster (cluster 3). Starting cluster (3 in cluster) Failed to store all the data in the AAA.TXT file. Search for the next cluster. That is, the FAT is searched to determine the cluster number that is available (not in use). The next available cluster is identified as 4, and it connects to cluster 4's data in cluster 4 and continues to store data.

이와 같은 방식으로, 종래 파일 시스템은 클러스터 4에 데이터 저장이 완료되면, FAT를 검색하고, 클러스터 5에 상기 AAA.TXT 파일을 이어서 저장한다. 그 후, 클러스터 5에 데이터 저장이 완료되면, FAT를 검색하고, 클러스터 7에 상기 AAA.TXT 파일을 이어서 저장하고, 클러스터 7에 데이터 저장이 완료되면, FAT를 검색하고, 클러스터 8에 상기 AAA.TXT 파일을 이어서 저장한다. 마지막으로 클러스터 8에서 상기 AAA.TXT 파일의 저장이 완료되면, 디렉토리 영역에 AAA.TXT 관련 정보에 파일의 크기, 갱신 시각 등 정보를 기입하고 파일 쓰기 명령의 수행이 완료된다. In this manner, the conventional file system searches for a FAT when data storage is completed in cluster 4, and subsequently stores the AAA.TXT file in cluster 5. Thereafter, when data storage is completed in cluster 5, the FAT is searched, the AAA.TXT file is subsequently stored in cluster 7, and when data storage is completed in cluster 7, the FAT is searched, and cluster 8 is stored in the AAA. Then save the TXT file. Finally, when the storage of the AAA.TXT file is completed in the cluster 8, information such as file size and update time is written in the AAA.TXT related information in the directory area, and the execution of the file write command is completed.

이와 같이, 종래 파일 시스템은 하나의 클러스터에 데이터 저장이 완료되면, 다음으로 데이터를 저장할 클러스터를 검색하기 위해 반드시 FAT를 검색하여야만 했다. 또한, 저장장치에 파일이 많이 저장되어 있거나, 빈번한 파일 생성과 삭제작업이 수행되면 많은 디렉토리가 생성되고 FAT 에 저장된 클러스터 연결 정보도 많이 분산된다. As described above, when data storage is completed in one cluster, the conventional file system must search the FAT in order to search for a cluster to store data next. In addition, when a large number of files are stored in the storage device or frequent file creation and deletion operations are performed, many directories are created and cluster connection information stored in the FAT is also distributed.

이런 경우, 디렉토리에서 파일이 위치한 곳을 찾는 작업, 비어 있는 클러스터를 찾는 작업, 연결된 클러스터의 정보를 확인 작업 등을 수행하기 위하여 메타 영역에 빈번한 접근이 수반될 수 밖에 없는 구조이다.In this case, in order to perform a task of finding a place where a file is located in a directory, finding an empty cluster, and checking information of a connected cluster, frequent access to the meta area is required.

반면에 도 6을 참조하여, 본 발명의 실시 예에 따른 파일 시스템의 쓰기 명령 수행과정을 살펴보면, 응용 프로그램에서 상기 파일 시스템으로 AAA.TXT 파일 저장 요청하면, 상기 파일 시스템은 디렉토리 영역을 검색하여 AAA.TXT 파일이 있는지 확인한다. 동일한 파일명이 없는 경우 해싱 기법 을 통하여 적은 비용으로 가용한 시작 클러스터 번호(클러스터 3)를 확인한다. On the other hand, referring to Figure 6, looking at the write command execution process of the file system according to an embodiment of the present invention, when the application program requests to save the AAA.TXT file to the file system, the file system searches the directory area AAA Make sure you have a .TXT file. If the same file name does not exist, a hashing scheme is used to determine the available starting cluster number (cluster 3).

본 발명의 실시 예에서는 UCOS-II 의 태스크 스케줄링 기법(즉, 클러스터 스케줄링 기법)을 사용하는 예를 일 예로 설명하지만, 본 발명의 권리 범위가 이에 한정되지는 않음은 전술한 바와 같다.In an embodiment of the present invention, an example of using a task scheduling scheme (ie, a cluster scheduling scheme) of UCOS-II is described as an example, but the scope of the present invention is not limited thereto.

이 후, 상기 파일 시스템은 디렉토리 엔트리에 AAA.TXT 와 관련된 정보를 기입(예컨대, 파일명, 시작 클러스터 등)한다.The file system then writes information (eg, file name, start cluster, etc.) related to AAA.TXT to a directory entry.

이 후, 상기 시작 클러스터(클러스터 3)에 상기 파일(AAA.TXT)의 데이터의 일부를 저장하기 전에 또는 상기 시작 클러스터(클러스터 3)에 상기 파일의 데이터의 일부를 저장한 후에 상기 파일 시스템은 클러스터 스케줄링을 통하여 현재 클러스터와 연결될 다음 클러스터 번호를 확인하고, 상기 시작 클러스터(클러스터 3)의 헤더 영역에 다음 클러스터 번호(클러스터 4)를 기입한다.Thereafter, before storing a part of the data of the file (AAA.TXT) in the starting cluster (cluster 3) or after storing a part of the data of the file in the starting cluster (cluster 3) the file system is a cluster. The next cluster number to be connected to the current cluster is identified through scheduling, and the next cluster number (cluster 4) is written in the header area of the starting cluster (cluster 3).

즉, 본 발명의 실시 예에 따른 파일 시스템은 어느 하나의 클러스터에 데이터를 저장하기 전에, 다음 가용 클러스터 번호를 확인하여, 헤더 영역에 기입하고, 상기 어느 하나의 클러스터에 데이터를 저장할 수 있다. 또는, 상기 어느 하나의 클러스터에 데이터를 저장한 후, 다음 가용 클러스터 번호를 확인하여, 헤더 영역에 기입할 수도 있다. That is, the file system according to an exemplary embodiment of the present invention may identify a next available cluster number, write it into a header area, and store the data in any one cluster before storing data in any one cluster. Alternatively, after storing data in one of the clusters, the next available cluster number may be checked and written in the header area.

하지만, 본 명세서에서는 어느 하나의 클러스터에 데이터를 저장하기 전에, 다음 가용 클러스터 번호를 확인하여, 헤더 영역에 기입하고, 상기 어느 하나의 클러스터에 데이터를 저장하는 경우를 예로 들어 설명하며, 본 발명의 권리범위가 이에 한정되지는 않는다.However, in the present specification, before storing data in any one cluster, a case in which the next available cluster number is checked, written in the header area, and the data is stored in any one cluster will be described as an example. The scope of the right is not limited thereto.

이 후 상기 파일 시스템은 클러스터 스케줄링을 통하여 다음 클러스터 번호(클러스터 5)를 확인하고, 클러스터 4의 헤더 영역에 다음 클러스터 번호(클러스터 5)를 기입한 후, 클러스터 4에 데이터를 연결해서 저장한다.Thereafter, the file system checks the next cluster number (cluster 5) through cluster scheduling, writes the next cluster number (cluster 5) in the header area of the cluster 4, and then connects and stores data in the cluster 4.

이와 같은 방식으로, 상기 파일 시스템은 클러스터 스케줄링을 통하여 다음 클러스터 번호(클러스터 7)를 확인하고, 클러스터 5의 헤더 영역에 다음 클러스터 번호(클러스터 7)를 기입한 후, 클러스터 5에 데이터를 연결해서 저장한다. 계속해서 상기 파일 시스템은 클러스터 스케줄링을 통하여 다음 클러스터 번호(클러스터 8)를 확인하고, 클러스터 7의 헤더 영역에 다음 클러스터 번호(클러스터 8)를 기입한 후, 클러스터 7에 데이터를 연결해서 저장한다.In this way, the file system checks the next cluster number (cluster 7) through cluster scheduling, writes the next cluster number (cluster 7) in the header area of cluster 5, and then connects and stores data to cluster 5 do. Subsequently, the file system checks the next cluster number (cluster 8) through cluster scheduling, writes the next cluster number (cluster 8) in the header area of the cluster 7, and stores data in the cluster 7.

마지막으로 상기 파일 시스템은 클러스터 스케줄링을 통하여 다음 클러스터 번호(예컨대, 클러스터 A)를 확인하고, 클러스터 8의 헤더 영역에 다음 클러스터 번호(예컨대, 클러스터 A)를 기입한 후, 클러스터 8에 데이터를 연결해서 저장한다. 하지만, 상기 클러스터 8이 마지막 클러스터이므로, 미리 할당받은 다음 번 클러스터(예컨대, 클러스터 A)를 반납하고 상기 클러스터 8의 헤더영역에는 파일이 종료를 나타내는 정보(예컨대, End, EOF 등)를 기입한다. 미리 할당받은 다음 번 클러스터를 반납하는 과정도 전술한 바와 같이 적은 비용으로 가능하다.Finally, the file system checks the next cluster number (for example, cluster A) through cluster scheduling, writes the next cluster number (for example, cluster A) in the header area of cluster 8, and then connects data to cluster 8 Save it. However, since the cluster 8 is the last cluster, the next cluster previously allocated (for example, cluster A) is returned, and information indicating the end of the file (for example, End, EOF, etc.) is written in the header area of the cluster 8. The process of returning the next preallocated cluster is also possible at a low cost as described above.

마지막으로 상기 파일 시스템은 디렉토리 영역에 AAA.TXT 관련 정보에 파일의 크기, 갱신 시각 등 정보를 기입하고 파일 쓰기 명령을 완료한다.Finally, the file system writes information such as file size, update time, etc. in the AAA.TXT related information in the directory area and completes a file write command.

이상에서 설명한 바와 같이, 본 발명의 실시 예에서는 해싱 기법(특히, 클러스터 스케줄링 기법)을 이용하여 저장장치에 파일이 많이 저장되어 있거나, 빈번한 파일 생성과 삭제작업이 수행되면 많은 디렉토리가 생성되더라도 일정한 비용으로 다음 클러스터 번호를 확인할 수 있어서, 쓰기 명령 수행시에 균일한 응답성을 보장하는 효과가 있다.As described above, in the embodiment of the present invention, even if a large number of files are stored in a storage device using a hashing technique (particularly, a cluster scheduling technique) or if a large number of directories are created when frequent file creation and deletion operations are performed, a fixed cost As a result, the next cluster number can be checked, thereby ensuring a uniform response when performing a write command.

한편, 읽기 명령의 수행과정을 비교하여 살펴보면, 응용 프로그램이 종래 파일 시스템에 AAA.TXT 파일의 읽기 명령을 요청한 경우, 디렉토리를 검색하여 AAA.TXT 파일 정보를 확인(시작 클러스터가 클러스터 3임을 확인)한다.On the other hand, when comparing the execution process of the read command, if the application requests a read command of the AAA.TXT file to the conventional file system, the directory is checked for the AAA.TXT file information (confirms that the starting cluster is Cluster 3). do.

그러면, 클러스터 3을 읽고, 다음 클러스터를 확인하기 위하여 FAT를 검색하고, 다음 클러스터를 확인(다음 클러스터가 4임을 확인)한다. Then it reads cluster 3, searches the FAT to identify the next cluster, and checks the next cluster (make sure the next cluster is 4).

그러면, 클러스터 4를 읽고, 다음 클러스터를 확인하기 위하여 FAT를 검색하고, 다음 클러스터를 확인(다음 클러스터가 5임을 확인)한다. Then it reads cluster 4, searches the FAT to identify the next cluster, and checks the next cluster (the next cluster is 5).

이와 같은 방식으로, 클러스터 5를 읽고, 다음 클러스터를 확인하기 위하여 FAT를 검색하고, 다음 클러스터를 확인(다음 클러스터가 7임을 확인)한다. 또한, 클러스터 7을 읽고, 다음 클러스터를 확인하기 위하여 FAT를 검색하고, 다음 클러스터를 확인(다음 클러스터가 8임을 확인)한다. 마지막으로, 클러스터 8을 읽고, 다음 클러스터를 확인하기 위하여 FAT를 검색하고, 다음 클러스터가 없는 것을 확인(즉, 마지막 클러스터임을 확인)하고, 읽기 명령의 수행을 완료한다.In this way, cluster 5 is read, the FAT is searched to identify the next cluster, and the next cluster is identified (the next cluster is 7). In addition, it reads cluster 7, searches the FAT to identify the next cluster, and checks the next cluster (the next cluster is 8). Finally, it reads cluster 8, searches the FAT to identify the next cluster, verifies that there is no next cluster (i.e. it is the last cluster), and completes the execution of the read command.

즉, 종래 파일 시스템에서는 연결된 클러스터를 찾을 때마다 메타 영역을 검색하여야 하고, 이러한 메타 영역의 검색도 순차적으로 이루어져서 저장장치에 파일이 많이 저장되어 있거나, 빈번한 파일 생성과 삭제작업이 수행되면서, 클러스터의 분산이 심한 경우에는 연결 클러스터의 검색에 많은 비용이 들고, 균일한 응답성을 보장할 수가 없었다.That is, in the conventional file system, the meta area must be searched every time the connected cluster is found, and the meta area is searched sequentially so that many files are stored in the storage device or frequent file creation and deletion operations are performed. In the case of high variance, it is expensive to search connected clusters and could not guarantee uniform responsiveness.

이에 반해, 도 6을 참조하여, 본 발명의 실시 예에 따른 파일 시스템의 읽기 명령 수행 과정을 살펴보면, 응용 프로그램에서 상기 파일 시스템에 AAA.TXT 파일을 읽기 요청하는 경우, 상기 파일 시스템은 디렉토리 영역을 AAA.TXT 파일 정보를 확인(시작 클러스터가 클러스터 3임을 확인)한다. 그러면, 클러스터 3을 읽으면서, 상기 클러스터 3의 헤더 영역에 기입된 연결 클러스터(클러스터 4) 번호를 기억한다. On the contrary, referring to FIG. 6, referring to a process of performing a read command of a file system according to an exemplary embodiment of the present disclosure, when an application program reads an AAA.TXT file from the file system, the file system reads a directory area. Check the AAA.TXT file information (make sure the starting cluster is Cluster 3). Then, cluster 3 is read, and the connection cluster (cluster 4) number written in the header area of cluster 3 is stored.

그 후, 클러스터 3을 다 읽으면, 기억된 연결 클러스터(클러스터 4) 번호에 해당하는 클러스터를 읽기 시작한다. 클러스터 4를 읽으면서, 상기 클러스터 4의 헤더 영역에 기입된 연결 클러스터(클러스터 5) 번호를 기억한다. 그 후, 클러스터 4을 다 읽으면, 기억된 연결 클러스터(클러스터 5) 번호에 해당하는 클러스터를 읽기 시작하고, 이와 같은 방식으로 마지막 클러스터(클러스터 8)까지 읽은 후 읽기 명령의 수행을 완료한다.After reading cluster 3, it will start reading the cluster corresponding to the stored connection cluster (cluster 4) number. While reading cluster 4, the connection cluster (cluster 5) number written in the header area of cluster 4 is stored. Then, when cluster 4 is read out, the cluster corresponding to the stored connection cluster (cluster 5) number is started, and in this manner, the cluster is read to the last cluster (cluster 8) and the execution of the read command is completed.

개략적으로 설명한 바와 같이, 본 발명의 실시 예에 따른 파일 시스템은 쓰기 및 읽기 명령을 수행하는 경우, 저장장치에 파일이 많이 저장되어 있거나, 빈번한 파일 생성과 삭제작업이 수행되어 클러스터 연결 정보가 분산된 상황에서도 파일의 실제 데이터를 읽는 작업과 동시에 메타 데이터를 참조할 수 있기 때문에(메타 데이터와 실제 데이터의 혼합저장) , 읽기 작업 수행 시 부가적인 저장장치의 접근이 발생하지 않는다. 또한 쓰기 작업 시 비어 있는 클러스터를 미리 할당 받은 후(Cluster Pre-Allocation) 연속적인 쓰기 작업이 진행되므로 거의 일정한 쓰기 및 읽기의 응답성을 보장할 수 있다.As outlined above, in the file system according to an embodiment of the present invention, when a write and read command is executed, many files are stored in a storage device, or frequent file creation and deletion operations are performed to distribute cluster connection information. In this situation, since the metadata can be referred to at the same time as reading the actual data of the file (mixed storage of the meta data and the actual data), no additional storage device access occurs when performing the read operation. In addition, continuous writes are performed after an empty cluster is pre-allocated (Cluster Pre-Allocation), which ensures almost constant write and read responsiveness.

도 7 및 도 8은 종래 파일 시스템과 본 발명의 실시 예에 따른 파일 시스템의 읽기/쓰기 명령을 연속적으로 수행하는 경우의 응답성을 설명하기 위한 그래프를 나타낸다.7 and 8 illustrate graphs for explaining responsiveness when a read / write command of a conventional file system and a file system according to an exemplary embodiment of the present invention is continuously performed.

도 7 및 도 8을 참조하면, 100KB 크기의 파일을 연속으로 쓰는 경우, 본 발명의 실시 예에 따른 파일 시스템은 응답성(즉, 응답 시간)이 거의 균일한 반면, 종래 파일 시스템의 경우는 메타 데이터를 처리하는 오버헤드(overhead)가 발생하므로 응답시간이 현저하게 증가되는 것을 알 수 있다.Referring to FIGS. 7 and 8, when a file having a size of 100 KB is continuously written, the file system according to an embodiment of the present invention has almost uniform responsiveness (ie, response time), whereas in the case of a conventional file system, It can be seen that the response time is significantly increased because of the overhead of processing data.

또한, 도 8에서 나타난 바와 같이, 저장장치를 포맷한 후, 연속적으로 저장한 데이터를 읽는 경우, 본 발명의 실시 예에 따른 파일 시스템은 거의 일정한 응답성을 나타내는 반면, 종래 파일 시스템의 경우, 읽는 클러스터가 바뀌는 경우 응답시간이 증가됨을 알 수 있다.In addition, as shown in FIG. 8, when the storage device is read and then continuously stored data is read, the file system according to an embodiment of the present invention exhibits almost constant responsiveness, whereas in the case of the conventional file system, If the cluster changes, the response time increases.

본 발명의 실시 예에 따른 파일 시스템은 모바일 장치에 구현될 수 있다. 상기 모바일 장치로는 핸드폰, PDA(Personal Digital Assistant) , PMP(Portable Multimedia Player), 디지털 카메라 중 적어도 하나를 포함한다. The file system according to an embodiment of the present invention may be implemented in a mobile device. The mobile device includes at least one of a mobile phone, a personal digital assistant (PDA), a portable multimedia player (PMP), and a digital camera.

또한, 본 발명의 실시 예에 따른 파일 시스템에서는 또한, 멀티미디어 환경에 적합하도록 클러스터 각각의 크기를 크게 설정할 수 있다.In addition, in the file system according to an exemplary embodiment of the present invention, the size of each cluster may be set to be larger for a multimedia environment.

예컨대, 1GB 의 SD Card를 종래의 파일 시스템의 형식(예컨대, FAT32)로 포맷하는 경우 클러스터 크기 는 4KB 로 고정된다. 예를 들어 4MB 정도 MP3 파일을 저장한다면 1024 개 ((4*1048576Byte)/(4*1024Byte)=1024)의 클러스터가 필요하다. 즉 1024 번의 FAT 영역 갱신이 발생한다는 의미이다. 만약 클러스터 사이즈를 크게 한다면 FAT 영역 갱신으로 인한 오버헤드는 감소할 수 있다.For example, when a 1 GB SD Card is formatted in a conventional file system format (e.g., FAT32), the cluster size is fixed at 4 KB. For example, if you store 4MB of MP3 files, you need 1024 clusters ((4 * 1048576Byte) / (4 * 1024Byte) = 1024). That is, 1024 FAT area updates occur. If the cluster size is increased, the overhead of updating the FAT area can be reduced.

따라서, 본 발명의 실시 예에서는 멀티미디어 데이터를 주로 재생/생성하는 모바일 장치의 특성을 고려하여 클러스터의 사이즈를 종래 파일 시스템의 형식 보다 크게 설정하여, 오버헤드를 줄일 수 있다.Accordingly, in an embodiment of the present invention, in consideration of the characteristics of the mobile device that mainly plays / generates multimedia data, the size of the cluster may be set larger than that of the conventional file system, thereby reducing overhead.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다. BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.

도 1은 일반적인 파일 시스템을 설명하기 위한 개략적인 구성도를 나타낸다.1 is a schematic diagram illustrating a general file system.

도 2는 종래의 파일 시스템의 개략적인 구성을 나타낸다.2 shows a schematic configuration of a conventional file system.

도 3은 본 발명의 실시 예에 따른 파일 시스템의 개략적인 구조를 나타낸다.3 shows a schematic structure of a file system according to an embodiment of the present invention.

도 4는 본 발명의 실시 예에 따른 UCOS-II 의 태스크 스케줄링 기법을 설명하기 위한 클러스터 뱅크 및 클러스터 레디 그룹을 개략적으로 나타낸다.4 schematically illustrates a cluster bank and a cluster ready group for explaining a task scheduling scheme of UCOS-II according to an embodiment of the present invention.

도 5는 종래의 파일 시스템에서 FAT 영역을 개략적으로 나타낸다.5 schematically shows a FAT area in a conventional file system.

도 6은 본 발명의 실시 예에 따른 파일 시스템을 개략적으로 나타낸다.6 schematically illustrates a file system according to an embodiment of the present invention.

도 7 및 도 8은 종래 파일 시스템과 본 발명의 실시 예에 따른 파일 시스템의 읽기/쓰기 명령을 연속적으로 수행하는 경우의 응답성을 설명하기 위한 그래프를 나타낸다.7 and 8 illustrate graphs for explaining responsiveness when a read / write command of a conventional file system and a file system according to an exemplary embodiment of the present invention is continuously performed.

Claims (15)

N(N은 자연수) 개의 클러스터(cluster)들을 포함하는 클러스터 영역; 및A cluster region including N (N is a natural number) clusters; And 상기 N 개의 클러스터들 중 적어도 일부의 사용여부에 대한 정보를 포함하는 클러스터 참조 영역을 포함하며,A cluster reference region including information on whether at least some of the N clusters are used; 상기 N 개의 클러스터들 각각은 상기 N 개의 클러스터들 각각과 연결되는 연결 클러스터에 대한 정보가 저장되는 헤더 영역을 포함하는 파일 시스템.Each of the N clusters includes a header area in which information about a connection cluster connected to each of the N clusters is stored. 제 1항에 있어서, 상기 클러스터 참조 영역은,The method of claim 1, wherein the cluster reference region, 상기 N 개의 클러스터들 중 특정 값을 갖는 클러스터를 찾기 위한 해시(hash) 데이터 영역을 포함하는 파일 시스템.And a hash data area for finding a cluster having a specific value among the N clusters. 제 2항에 있어서, 상기 해시 데이터 영역은,The method of claim 2, wherein the hash data area, UCOS-II 의 태스크 스케줄링 기법을 이용하기 위한 클러스터 뱅크 영역; 및A cluster bank area for using the task scheduling scheme of UCOS-II; And 클러스터 레디 그룹 영역을 포함하는 파일 시스템.File system containing the cluster ready group area. 제 3항에 있어서, 상기 클러스터 레디 그룹 영역에 포함된 제 m(m 은 자연수) 번째 비트가 제1로직 값인 경우,The method of claim 3, wherein when the m th bit (m is a natural number) included in the cluster ready group region is a first logic value, 상기 클러스터 뱅크 영역의 제 m 번째 행에 상응하는 적어도 하나의 클러스터들은 사용중인 클러스터인 파일시스템.And at least one cluster corresponding to the m th row of the cluster bank area is a cluster in use. 제 3항에 있어서, The method of claim 3, wherein 상기 파일시스템이 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 데이터를 쓰는 경우,If the file system writes data to the k th cluster (k is an integer greater than or equal to 0 and less than or equal to N), 상기 파일시스템은 상기 클러스터 뱅크 영역 및 상기 클러스터 레디 그룹에 저장된 정보에 기초하여 사용 가능한 클러스터에 대한 정보를 찾고,The file system finds information on an available cluster based on information stored in the cluster bank area and the cluster ready group, 상기 k 번째 클러스터에 포함된 헤더 영역에는 찾아진 상기 사용 가능한 클러스터에 대한 정보를 저장하며,The header area included in the k-th cluster stores information about the available cluster found. 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용불가능 정보로 변경하는 파일시스템.A file system for changing the information on the cluster bank area corresponding to the found available cluster to unusable information. 제 5항에 있어서, 상기 파일시스템은,The method of claim 5, wherein the file system, 상기 k 번째 클러스터에 상기 데이터의 쓰기가 완료되는 경우,When writing of the data to the k-th cluster is completed, 상기 k 번째 클러스터에 포함된 헤더 영역에는 데이터의 종료를 나타내는 정보를 저장하고,In the header area included in the k-th cluster, information indicating the end of data is stored. 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용가능 정보로 변경하는 파일시스템.And a file system for changing the information on the cluster bank area corresponding to the found available cluster into usable information. 제 3항에 있어서, The method of claim 3, wherein 상기 파일시스템이 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 저장된 데이터의 읽기 명령을 수행하는 경우,When the file system performs a read command of data stored in the k th cluster (k is an integer greater than or equal to 0 and less than or equal to N), 상기 파일시스템은 상기 k 번째 클러스터에 저장된 데이터를 읽고 난 후 상기 k 번째 클러스터에 포함된 헤더 영역에 저장된 정보에 상응하는 클러스터에 저장된 데이터를 읽는 파일시스템.The file system reads the data stored in the cluster corresponding to the information stored in the header area included in the k-th cluster after reading the data stored in the k-th cluster. 제 1항에 기재된 파일시스템; 및A file system according to claim 1; And 상기 파일시스템을 통하여 저장장치에 파일 입출력을 수행하는 프로세서를 포함하는 모바일 장치. And a processor configured to perform file input / output to the storage device through the file system. 제 8항에 있어서, 상기 모바일 장치는,The method of claim 8, wherein the mobile device, 핸드폰, PDA(Personal Digital Assistant) , PMP(Portable Multimedia Player), 디지털 카메라 중 어느 하나인 모바일 장치.A mobile device that is one of a cell phone, a personal digital assistant (PDA), a portable multimedia player (PMP), and a digital camera. 파일시스템의 이용방법에 있어서,In the method of using the file system, 상기 파일시스템이 N(N 은 자연수) 개의 클러스터 중 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 파일을 쓰는 경우,If the file system writes a file to the k th cluster (where k is an integer greater than or equal to 0 and less than or equal to N) of N clusters, where N is a natural number, 상기 파일시스템은 해시 데이터 영역에 저장된 정보에 기초하여 사용 가능한 클러스터에 대한 정보를 찾는 단계;The file system finding information on an available cluster based on information stored in a hash data area; 상기 k 번째 클러스터에 포함된 헤더 영역에 찾아진 상기 사용 가능한 클러스터에 대한 정보를 저장하는 단계; 및,Storing information about the usable cluster found in a header area included in the k-th cluster; And, 상기 k 번째 클러스터에 상기 파일의 적어도 일부분을 쓰는 단계를 포함하는 파일시스템의 이용방법.Writing at least a portion of the file to the k-th cluster. 제 10항에 있어서, 상기 파일시스템의 이용방법은,The method of claim 10, wherein the file system is used. 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 클러스터 뱅크 영역에 대한 정보를 사용불가능 정보로 변경하는 단계를 더 포함하는 파일시스템의 이용방법.And changing the information on the cluster bank area corresponding to the found available cluster into unusable information. 제 11항에 있어서, 상기 파일시스템의 이용방법은,The method of claim 11, wherein the file system is used. 상기 k 번째 클러스터에 상기 파일의 쓰기가 완료되는 경우,When writing of the file to the k-th cluster is completed, 상기 파일시스템은 상기 k 번째 클러스터에 포함된 헤더 영역에는 상기 파일의 종료를 나타내는 정보를 저장하는 단계; 및The file system storing information indicating the end of the file in a header area included in the k-th cluster; And 찾아진 상기 사용 가능한 클러스터에 상응하는 상기 해시 데이터 영역에 대한 정보를 사용가능 정보로 변경하는 단계를 더 포함하는 파일시스템의 이용방법.And changing the information about the hash data area corresponding to the found available cluster into usable information. 제 10항에 있어서, 상기 해시 데이터 영역은,The method of claim 10, wherein the hash data area, UCOS-II 의 태스크 스케줄링 기법을 이용하기 위한 클러스터 뱅크 영역; 및A cluster bank area for using the task scheduling scheme of UCOS-II; And 클러스터 레디 그룹 영역을 포함하는 파일시스템의 이용방법.A method of using a file system including a cluster ready group area. 제 13항에 있어서, 상기 클러스터 레디 그룹 영역에 포함된 제 m(m 은 자연 수) 번째 비트가 제1로직 값인 경우,15. The method of claim 13, wherein when the m th bit (m is a natural number) included in the cluster ready group region is a first logic value, 상기 클러스터 뱅크 영역의 제 m 번째 행에 상응하는 적어도 하나의 클러스터들은 사용중인 클러스터인 파일시스템의 이용방법.At least one cluster corresponding to the m th row of the cluster bank area is a cluster in use. 파일시스템의 이용방법에 있어서,In the method of using the file system, 상기 파일시스템이 N(N 은 자연수) 개의 클러스터 중 k 번째(k는 0보다 크거나 같고 N 보다 작거나 같은 정수) 클러스터에 저장된 파일의 읽기 명령을 수행하는 경우,When the file system performs a read command of a file stored in the k th cluster (where k is an integer greater than or equal to 0 and less than or equal to N) of N clusters, 상기 파일시스템은 상기 k 번째 클러스터에 저장된 상기 파일의 적어도 일부분을 읽는 단계; 및The file system reading at least a portion of the file stored in the k th cluster; And 상기 k 번째 클러스터에 포함된 헤더 영역에 저장된 정보에 상응하는 클러스터에 저장된 상기 파일의 적어도 일부분을 읽는 단계를 포함하는 파일시스템의 이용방법.And reading at least a portion of the file stored in the cluster corresponding to the information stored in the header area included in the k-th cluster.
KR1020070098746A 2007-10-01 2007-10-01 File system and method for using the file system KR20090033623A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070098746A KR20090033623A (en) 2007-10-01 2007-10-01 File system and method for using the file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070098746A KR20090033623A (en) 2007-10-01 2007-10-01 File system and method for using the file system

Publications (1)

Publication Number Publication Date
KR20090033623A true KR20090033623A (en) 2009-04-06

Family

ID=40759834

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070098746A KR20090033623A (en) 2007-10-01 2007-10-01 File system and method for using the file system

Country Status (1)

Country Link
KR (1) KR20090033623A (en)

Similar Documents

Publication Publication Date Title
US20220129374A1 (en) Memory system, data storage device, user device and data management method thereof
US11010300B2 (en) Optimized record lookups
CN111221776B (en) Method, system and medium for realizing file system oriented to nonvolatile memory
US9971799B2 (en) Storage device for storing directory entries, directory entry lookup apparatus and method, and storage medium storing directory entry lookup program
US9047301B2 (en) Method for optimizing the memory usage and performance of data deduplication storage systems
KR100484147B1 (en) Flash memory management method
US8078794B2 (en) Hybrid SSD using a combination of SLC and MLC flash memory arrays
US8315995B1 (en) Hybrid storage system
US10275361B2 (en) Managing multiple namespaces in a non-volatile memory (NVM)
US11886401B2 (en) Database key compression
KR20130018602A (en) Memory system including key-value store
KR20200122994A (en) Key Value Append
US20150324281A1 (en) System and method of implementing an object storage device on a computer main memory system
WO2021208239A1 (en) Low-latency file system address space management method and system, and medium
US9430492B1 (en) Efficient scavenging of data and metadata file system blocks
CN115427941A (en) Data management system and control method
EP4336336A1 (en) Data compression method and apparatus
CN113419975A (en) Control system of memory, address mapping method and address mapping device
KR20210012085A (en) Storage device for improving journal replay, operating method thereof, and electronic device comprising storage device
Zhang et al. FlameDB: A key-value store with grouped level structure and heterogeneous Bloom filter
US11366609B2 (en) Technique for encoding deferred reference count increments and decrements
TWI715408B (en) Flash memory controller, memory device and method for accessing flash memory module
US20200019539A1 (en) Efficient and light-weight indexing for massive blob/objects
US11630780B2 (en) Flash memory controller mechanism capable of generating host-based cache information or flash-memory-based cache information to build and optimize binary tree with fewer nodes when cache stores data from host
KR20090033623A (en) File system and method for using the file system

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination