ionFS™ & ionFTL™

Overview | Features

빠른 속도
* FAT X-rator
-FAT 및 디렉토리 탐색을 최적화하여 데이터 처리 성능을 향상시킵니다.
* Bitmap 할당
-Bitmap으로 FAT를 매핑하여 검색함으로써 할당 시간을 최소화하였습니다.
* Buffer Cache
-최근의 파일 및 디렉토리 접근 엔트리를 Cache에 저장하였다가, 엔트리 접근 시 Cache를 우선적으로 먼저 검색함으로써 속도를 향상 시켰습니다.

안정성
* 데이터 안정성
-Log System: 특정 Log 파일을 통해 현재의 파일 입출력에 대한 FAT정보를 가지고 있으며, Power Loss가 발생 시 Log파일의 유무와 정보를 통해 파일을 복구합니다.
-Check Block: 시스템의 비정상적인 종료의 경우, 파일 시스템내의 파일 및 디렉토리 엔트리와 FAT과의 일치를 보장함으로써 파일 시스템 사용량에 대한 무결성을 보장합니다. 
-FTL Recovery: 시스템 부팅 시 각 블록의 상태를 체크하여 최근 입출력이 발생한 일정 수의 블록에 대해서만 내부의 섹터들의 상태를 검사합니다. 이를 바탕으로 이상 유무를 판단하고 복구 여부를 결정하여 수행합니다.

* H/W 안정성
-효율적인 Wear Leveling: Wear Leveling은 저장 매체의 수명과 시스템의 속도에 많은 영향을 미치게 됩니다. ionFS™는 하드웨어에 Task가 집중되는 정도에 따라 Wear Leveling을 다르게 수행함으로써, Wear Leveling이 저장 매체의 수명과 시스템의 속도에 미치는 영향을 최소화합니다.
즉, Task가 집중될 때(busy)에는 Free 영역에 대해서만 Wear Leveling을 수행하고, Task가 없는 경우(idle)에는 전체 영역에 대해서 Wear Leveling을 수행 합니다.

 

이식성
* POSIX 규약 준수
-POSIX 규약을 준수하는 API를 제공하므로 어떤 시스템에 이식 혹은 교체 되더라도 적용이 용이합니다.
* 통합 Device Driver 제공
-통합된 Device Driver 구조로 되어 있어 read/write/erase 기능 연결만으로 어떤한 저장 매체에도 연결이 가능하여 이식이 매우 용이합니다.
* 작은 코드 사이즈
-임베디드 시스템은 그 특성 상 자원의 한계를 가집니다. ionFS™는 작은 코드 사이즈와 최소한의 자원을 사용으로 시스템 자원에 대한 부담을 최소화합니다.

효율성
* 최대 4개 Volume 지원
-최대 4개까지의 Volume을 지원하므로 파일 영역을 자유롭게 분할하여 사용 할 수 있습니다.
* Windows 호환성
-FAT 16/32를 기반으로 하고 Unicode를 지원하므로 Windows와 완전한 호환성을 가집니다.
* 동적 메모리 관리
-자체 내장된 동적 메모리 관리 기능으로 OS 없이도 파일 시스템의 운영이 가능 합니다.
* MTP 예정
* 압축/보안 지원 예정

※ Power Loss Recovery( PLR)
임베디드 시스템 상에서 파일 시스템을 통해 파일 입출력 도중에 시스템의 이상 동작으로 인해 전원이 끊어질 경우 데이터의 무결성에 대한 문제를 야기하게 되는데, 이 문제는 파일 데이터 무결성과 파일 시스템 유지 데이터의 무결성 문제로 나누어집니다.
첫 번째 문제인 파일 데이터의 무결성은 파일 백업 등의 간단한 형태로 문제 해결이 가능하나, 두 번째 문제의 경우는 파일 전체가 사라진다든지, 더 심각하게는 파일 시스템이 파괴 됨으로써 전체 시스템이 아무런 동작을 할 수 없는 상태가 될 수도 있습니다. PLR은 이런 문제의 상황에 대해 파일 시스템을 안정적으로 복구하여 파일 시스템의 무결성을 보장해주는 기능으로 파일 시스템이 반드시 갖추어야 할 필수 기능입니다.

※ Wear Leveling
Wear Leveling은 블록들의 지우기 횟수가 얼마나 고르게 분포하는가를 의미하며, 이는 플래시 메모리가 가지는 하드웨어적인 한계에서 기인합니다. 하나의 플래시 메모리는 여러 블록이 모여서 이루어져 있으며, 블록은 다시 여러 개의 섹터 단위로 이루어져 있습니다. 이 두 개의 단위는 플래시 메모리의 연산과 관계가 있는데, 데이터의 쓰기와 읽기는 섹터 단위로 이루어지며 데이터의 삭제는 블록 단위로 이루어 집니다. 여기에서 블록 단위의 데이터 삭제는 플래시 메모리의 하드웨어적 내구성에 영향을 미치게 됩니다. 즉, 블록 단위의 데이터 삭제가 특정 횟수를 넘어서 수행될 경우에는 메모리의 하드웨어적 손상이 발생할 수 있으며 이로 인해 데이터의 무결성을 보장받지 못하게 됩니다. 이 때문에 파일 시스템 운용 시 파일 시스템 영역 내 블록들의 데이터 삭제 회수가 고르게 분포되도록 하는 것이 매우 중요합니다.