오늘날 내장형 장치의 보급 증가와 반도체 및 저장장치 기술의 발달로 인해 디지털 컨버전스 기기들이 늘어나고 있다. 디지털 컨버전스 기기는 PMP, PDA, 스마트폰 등과 같이 하나의 디지털 기기에 통신, 동영상과 음악 재생, 전자 수첩, 전자 사전 등의 기능이 집적된 장치를 말한다. 따라서 이러한 장치에는 여러 기능을 관리하고 제어할 수 있는 효율적인 파일 시스템의 설계가 필요하다. 파일 시스템을 설계하는데 있어서는 소형화된 내장형 장치에 맞는 사이즈, 성능, 호환성 등을 고려해야 한다. 본 논문에서는 부분 버퍼 캐쉬 기법을 제안한다. 기존의 버퍼 캐쉬에 비해, 부분 버퍼 캐쉬는 FAT 데이터와 쓰기 전용 데이터를 저장한다. 시뮬레이션을 통해 파일 크기가 100KBye가 넘는 경우, 부분 버퍼 캐쉬를 사용함으로써 쓰기 성능을 30% 이상 증가시킬 수 있음을 보인다.
오늘날 내장형 장치의 보급 증가와 반도체 및 저장장치 기술의 발달로 인해 디지털 컨버전스 기기들이 늘어나고 있다. 디지털 컨버전스 기기는 PMP, PDA, 스마트폰 등과 같이 하나의 디지털 기기에 통신, 동영상과 음악 재생, 전자 수첩, 전자 사전 등의 기능이 집적된 장치를 말한다. 따라서 이러한 장치에는 여러 기능을 관리하고 제어할 수 있는 효율적인 파일 시스템의 설계가 필요하다. 파일 시스템을 설계하는데 있어서는 소형화된 내장형 장치에 맞는 사이즈, 성능, 호환성 등을 고려해야 한다. 본 논문에서는 부분 버퍼 캐쉬 기법을 제안한다. 기존의 버퍼 캐쉬에 비해, 부분 버퍼 캐쉬는 FAT 데이터와 쓰기 전용 데이터를 저장한다. 시뮬레이션을 통해 파일 크기가 100KBye가 넘는 경우, 부분 버퍼 캐쉬를 사용함으로써 쓰기 성능을 30% 이상 증가시킬 수 있음을 보인다.
Due to the growth of embedded systems and the development of semi-conductor and storage devices, digital convergence devises is ever growing. Digital convergence devices are equipments into which various functions such as communication, playing movies and wave files and electronic dictionarys are in...
Due to the growth of embedded systems and the development of semi-conductor and storage devices, digital convergence devises is ever growing. Digital convergence devices are equipments into which various functions such as communication, playing movies and wave files and electronic dictionarys are integrated. Example are portable multimedia players(PMPs), personal digital assistants(PDAs), and smart phones. Therefore, these devices need an efficient file system which manages and controls various types of files. In designing such file systems, the size constraint for small embedded systems as well as performance and compatibility should be taken into account. In this paper, we suggest the partial buffer cache technique. Contrary to the traditional buffer cache, the partial buffer cache is used for only the FAT meta data and write-only data. Simulation results show that we could enhance the write performance more than 30% when the file size is larger than about 100 KBytes.
Due to the growth of embedded systems and the development of semi-conductor and storage devices, digital convergence devises is ever growing. Digital convergence devices are equipments into which various functions such as communication, playing movies and wave files and electronic dictionarys are integrated. Example are portable multimedia players(PMPs), personal digital assistants(PDAs), and smart phones. Therefore, these devices need an efficient file system which manages and controls various types of files. In designing such file systems, the size constraint for small embedded systems as well as performance and compatibility should be taken into account. In this paper, we suggest the partial buffer cache technique. Contrary to the traditional buffer cache, the partial buffer cache is used for only the FAT meta data and write-only data. Simulation results show that we could enhance the write performance more than 30% when the file size is larger than about 100 KBytes.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 디지털 컨버전스 기기에서 파일 시스템의 경량화와 성능, 호환성을 향상시키는 기법을 설계 및 구현하였다.
본 논문에서는 실시간 운영체제인 UbiFOS'™을 기반으로 한 디지털 컨버전스 기기에서 파일 시스템의 성능향상 기법을 설계 및 구현하였다. 파일 시스템의 경량화 를 위해 플래그를 사용하여 메모리의 사용을 최소화하였고, 성능 향상을 위해 기존의 버퍼 캐시를 수정하여 부분적으로 버퍼 캐시를 사용하는 기법과 기존의 파일 시스템 API를 수정하였다.
본 논문에서는 이러한 FAT 테이블에 대한 접근을 줄이기 위한 방법으로 클러스터 번호와 인접해 있는 클러스터의 개수를 저장하는 구조체를 생성하여 접근 오버헤드를 줄일 수 있게 설계 및 구현하였다.
제안 방법
파일 시스템의 경량화 를 위해 플래그를 사용하여 메모리의 사용을 최소화하였고, 성능 향상을 위해 기존의 버퍼 캐시를 수정하여 부분적으로 버퍼 캐시를 사용하는 기법과 기존의 파일 시스템 API를 수정하였다. 각각의 기법을 사용하였을 때 파일 기록 크기를 다르게 하여 성능을 측정하였다.
따라서 윈도우즈 FAT 파일 시스템과 호환성을 유지하기 위해 UbiFOS™ 파일 시스템을 FAT 16/32로구현하였다. 또한 내장형 장치에서 많이 사용되어지는저장장치로 낸드 플래시가 있으나, 낸드 플래시에 적합하게 설계된 파일 시스템을 사용하지 않고 FTL(Hash Translation Layer)을 사용하여 윈도우즈와의 호환성을 유지하였다.
이 경우 버퍼 캐시를 모두 기록하는 과정에서 오버헤드가 발생하게 된다. 따라서 이러한 오버헤드를 줄이고 성능 향상을 위한 기법으로 파일 시스템 버퍼 캐시를 사용하지 않고 저장장치와의 접근이 자주 일어나는 부분에만 버퍼를 두어 관리하는 기법을 설계 및 구현하였다.
사용하여 측정하였다. 버퍼 캐시를 사용할 경우와 부분 버퍼를 사용할 경우, 버퍼 캐시를 사용하지 않을 경우로 나누어 실험하였다.
본 논문에서는 성능 향상을 위해 FAT 영역 버퍼를 4096Bytes로 확장하여 이 버퍼에서 관리할 수 있는 데이터의 크기를 512KBytes * 8 = 4MByte政로 확장하였다.
빈 클러스터를 얻을 때 저장장치의 FAT영역에 자주 접근하는 것을 막기 위해 한번 접근된 블록부터 8블록 (4096Bytes)을 버퍼로 관리하여 저장장치의 잦은 접근을 방지하였다.
성능 향상을 위해서 기존의 버퍼 캐시가 가진 문제점인 메모리 사용량이 많은 점과 버퍼의 내용을 저장장치에 기록 시 발생하는 오버헤드 문제를 수정하여, 부분적으로만 버퍼를 사용하는 기법과 열린 파일의 포인터를 변경하는 기존의 IseekO함수를 수정하는 기법으로 크게 나누어서 설계 및 구현하였다.
실험 방식은 SD Gard에 사이즈가 10, 20, 40, 80, lOOKWytes인 파일을 기록할 때 각각의 소요되는 시간을 텍트로닉스(Tektronix)의 TDS3054B 오실러 스코프를 사용하여 측정하였다. 버퍼 캐시를 사용할 경우와 부분 버퍼를 사용할 경우, 버퍼 캐시를 사용하지 않을 경우로 나누어 실험하였다.
이동할 파일 포인터의 크기이다. 실험은 35MBytes 의 파일을 SD카드에 기록 후 lOOKBytes를 읽고 X축의 크기만큼 파일 포인터를 이동시킨 후 다시 lOOKBytes 를 읽었을 시 소요되는 시간을 측정하였다.
크기가 작고 이동성이 편리한 디지털 컨버전스 기기의 특성상 메모리 크기에 한계가 있기 때문에 파일 시스템 경량화에 초점을 두어 파일 시스템이 차지하는 메모리의 사용량을 줄일 수 있도록 설계 및 구현하였다. 윈도우즈 운영체제에서는 대부분의 디지털 컨버전스기기들을 이동식 디스크로 인식시켜 사용하기 때문에윈도우즈와 호환성을 위해 FAT 파일 시스템을 사용하였다.
플래그를 사용하였다. 파일 시스템 함수 중 비슷한 기능을 수행하는 함수를 하나의 함수로 묶어 놓고 플래그를 설정하여, 동일한 함수 내에서 플래그의 셋팅에따라 다른 동작을 수행하도록 설계 및 구현하였다. 이로 인해 다수의 함수들을 줄일 수 있었고, 결과적으로 코드 사이즈의 경 량화를 가져왔다.
기법을 설계 및 구현하였다. 파일 시스템의 경량화 를 위해 플래그를 사용하여 메모리의 사용을 최소화하였고, 성능 향상을 위해 기존의 버퍼 캐시를 수정하여 부분적으로 버퍼 캐시를 사용하는 기법과 기존의 파일 시스템 API를 수정하였다. 각각의 기법을 사용하였을 때 파일 기록 크기를 다르게 하여 성능을 측정하였다.
대상 데이터
본 논문에서 구현한 파일 시스템은 실시간 운영체제 UbiFOS^'을 대상으로, ARM920T 기반의 S3C2440 MCU가 탑재되고, 메모리가 32MBytes인 MBA2440 보드⑸에서 실험하였다. 저장장치로는 SanDisk의 1G Bytes SD Card를 사용하였다.
실험하였다. 저장장치로는 SanDisk의 1G Bytes SD Card를 사용하였다.
이론/모형
본 논문에서는 파일 시스템의 경량화를 위한 기법으로 플래그를 사용하였다. 파일 시스템 함수 중 비슷한 기능을 수행하는 함수를 하나의 함수로 묶어 놓고 플래그를 설정하여, 동일한 함수 내에서 플래그의 셋팅에따라 다른 동작을 수행하도록 설계 및 구현하였다.
성능/효과
버퍼로 읽어 들여 관리한다. FAT 버퍼를 사용함으로써 빈 클러스터를 찾기 위해 저장장치의 FAT 영역에 대한 빈번한 접근을 줄일 수 있게 되었다. 버퍼 캐시를 사용할 경우, 버퍼에 512Bytes(한 블록)의 FAT 영역을 저장하고 있지만, 크기가 512Bytes인 버퍼가 기록할 수 있는 클러스터의 개수는 FAT32일 경우 하나의 클러스터를 나타내는데 4Bytes가 필요하므로 512 / 4 = 128개가 된다.
따라서 윈도우즈 FAT 파일 시스템과 호환성을 유지하기 위해 UbiFOS™ 파일 시스템을 FAT 16/32로구현하였다. 또한 내장형 장치에서 많이 사용되어지는저장장치로 낸드 플래시가 있으나, 낸드 플래시에 적합하게 설계된 파일 시스템을 사용하지 않고 FTL(Hash Translation Layer)을 사용하여 윈도우즈와의 호환성을 유지하였다.
그러나 부분 버퍼를 사용했을 경우, 위 두 가지의 장점을 이용하여 파일 기록 시 성능이 가장 좋게 나오는 것을 확인할 수 있었다. 또한 열린 파일의 클러스터 정보를 미리 유지함으로써 클러스터를 찾기 위한 저장장치 접근을 줄였고, 이로 인해 성능이 향상됨을 확인하였다.
부분 버퍼를 사용했을 경우는 파일 크기가 작을 시 버퍼 캐시를 사용했을 경우와 버퍼 캐시를 사용하지 않았을 경우의 중간 기록 시간 값을 확인할 수 있으나, 기록 파일의 크기가 클 시에는 가장 적은 시간이 소요되어 앞의 두 경우보다 성능이 향상됨을 확인할 수 있다. [그림 11]은 IseekO함수를 수정해서 클러스터 로그를 사용했을 경우와 사용하지 않았을 경우의 실험 결과이다.
위의 두 실험 결과를 통해 lOOKByHs의 파일 기록 시 버퍼 캐시를 사용할 경우 700ms가 소요되었고, 부분 버퍼를 사용했을 경우 540ms가 소요되었다. 이로 인해 lOOKBytes이상의 파일을 기록할 경우 30%이상의 속도향상을 확인할 수 있다.
파일 시스템 함수 중 비슷한 기능을 수행하는 함수를 하나의 함수로 묶어 놓고 플래그를 설정하여, 동일한 함수 내에서 플래그의 셋팅에따라 다른 동작을 수행하도록 설계 및 구현하였다. 이로 인해 다수의 함수들을 줄일 수 있었고, 결과적으로 코드 사이즈의 경 량화를 가져왔다. 파일 시스템에서 사용되어지는 플래그는 [표 1]과 같다.
후속연구
향후에는 버퍼를 통한 성능 향상이 아닌 저장장치에 접근하여 Read, Write 동작할 때 성능을 향상 시킬 수 있는 방안에 대한 연구가 진행되어야 하겠다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.