Performance and resource usage
A benchmark is used to measure the speed of the software on available targets. This benchmark is in no way complete, but it gives an approximation of the length of time required for common operations on various targets.
Configuration and performance table
All values are in KBytes/sec.
| Device | CPU Speed | Medium | W | R |
|---|---|---|---|---|
| Atmel AT91SAM7S | 48 MHz | MMC using SPI with 24MHz | 1000.00 | 1000.00 |
| Atmel AT91SAM7S | 48 MHz | NAND with 512 bytes per page using Port mode | 800.00 | 2000.00 |
| Atmel AT91SAM7S | 48 MHz | NAND with 2048 bytes per page and a sector size of 512 bytes using Port mode | 695.65 | 2000.00 |
| Atmel AT91SAM7S | 48 MHz | NAND with 2048 bytes per page and a sector size of 2048 bytes using the built-in NAND controller / external bus-interface | 1333.33 | 2285.71 |
| Atmel AT91SAM9261 | 200 MHz | RAM disk | 128000 | 128000 |
| Atmel AT91SAM9261 | 200 MHz | NAND with 2048 bytes per page and a sector size of 512 bytes using the built-in NAND controller / external bus-interface. | 1446.33 | 4923.08 |
| Atmel AT91SAM9261 | 200 MHz | NAND with 2048 bytes per page and a sector size of 2048 bytes using the built-in NAND controller / external bus-interface. | 2598.98 | 10666.67 |
| Atmel AT91SAM7SE | 48 MHz | NAND with 2048 bytes per page and a sector size of 512 bytes using the built-in NAND controller / external bus-interface. | 1087.05 | 3103.03 |
| Atmel AT91SAM7SE | 48 MHz | NAND with 2048 bytes per page and a sector size of 2048 bytes using the built-in NAND controller / external bus-interface. | 3792.59 | 5885.06 |
| LogicPD LH79520 | 51 MHz | RAM disk | 20000 | 20000 |
| LogicPD LH79520 | 51 MHz | IDE mem-mapped | 1454.55 | 1753.42 |
| LogicPD LH79520 | 51 MHz | MMC using SPI with 12MHz | 558.95 | 1368.98 |
| Cogent EP7312 | 74 MHz | CompacFlash card, True IDE mode | 1951.24 | 2500.00 |
| Cogent EP7312 | 74 MHz | HDD, True IDE mode | 1760.55 | 2450.16 |
Description of the performance tests
The performance tests are executed as described and in the order below.
Performance test procedure:
- Format the drive.
- Create and open a file for writing.
W: Start measuring of write performance. - Write a multiple of 8 Kbytes.
W: Stop measuring of write performance. - Close the file
- Reopen the file.
R: Start measuring of read performance. - Read a multiple of 8 Kbytes.
R: Stop measuring of read performance. - Close the file
- Show the performance results.
The Performance test can be reproduced. Include Performance.c (located in the folder .SampleAPI) into your project. Compile and run the project on your target hardware.
Memory footprint
The file system is designed to fit many kinds of embedded design requirements. Several features can be excluded from build to get a minimal system that can efficiently access any FAT media.
In the following section memory usage for different typical 16 and 32- bit systems is listed.
Please note that the values are valid for the given approximate values. Features can affect the size of others. For example if FAT32 is deactivated, the format function gets smaller because the 32 bit specific part of format is not added into the compilation.
This minimal configuration supports FAT12/16, but has no media format features, no directory support, no free disk space function (DiskInfo) and only one file can be opened at a time:
The configuration file (FS_Conf.h) looks as follows:
| #define FS_POSIX_DIR_SUPPORT | 0 |
| #define FS_FAT_NOFORMAT | 1 |
| #define FS_FAT_DISKINFO | 0 |
| #define FS_FAT_NOFAT32 | 1 |
| #define FS_MAXOPEN | 1 |
16-bit CPUs
System
| Detail | Description |
|---|---|
| CPU | M16C |
| Tool chain | IAR Workbench for M16C V2.12A |
| Memory Model | Data model: Near pointer; Constants: near memory |
| Compiler options | Highest size optimization |
| Device driver | MMC/SD driver |
Memory requirements
| Detail | ROM [Bytes] | RAM [Bytes] |
|---|---|---|
| Minimal file system | 11384 | 1122 |
| MMC/SD driver | +2172 | 528 |
| Additional support for | ||
| Directory | +2654 | +1310 (for each directory) |
| (Auto) format | +2175 | 0 |
| Diskinfo | +758 | 0 |
| FAT32 | +658 | 0 |
| Additional open files | 0 | 1060 |
32-bit CPUs
System
| Detail | Description |
|---|---|
| CPU | ARM 7 |
| Tool chain | IAR Workbench for ARM V4.11A |
| Memory Model | ARM7, thumb instructions; no interwork; |
| Compiler options | Highest size optimization; |
| Device driver | MMC/SD driver |
Memory requirements
| Detail | ROM [Bytes] | RAM [Bytes] |
|---|---|---|
| Minimal file system | 10298 | 1129 |
| MMC/SD driver | +2358 | 532 |
| Additional support for | ||
| Directory | +2208 | +1328 (for each directory) |
| (Auto) format | +2056 | 0 |
| Diskinfo | 488 | 0 |
| FAT32 | 352 | 0 |
| Additional open files | 0 | 1068 |
Performance and resource usage
