OLPC XO and ASUS Eee PC SD card performance

A number of people have posted to the OLPC Community Support mailing list asking which Secure Digital (SD) cards work with the OLPC XO laptop. I happened to have several SD cards around so I benchmarked these cards with the XO laptop and also with an ASUS Eee PC. For further comparison, I also tested all of the cards with a Transcend Multi-Card Reader M3 on my Dell Latitude D800.

All of the SD cards I tested worked fine with the XO laptop except for the A-Data card, which produced I/O errors during the first few write tests I performed so I would not recommend using it with the XO. The results for the A-Data card were produced from the last write test I attempted, which did not cause any I/O errors. I did not have any problems with the A-Data card using the Eee PC or the Transcend M3.

The test methodology, raw data, and additional notes can be found below the benchmark charts and tables. If you have any questions about the tests and/or methodology, please post a comment or contact me directly.

Table of contents

  1. Performance by interface
  2. Performance by card
  3. Tabular results
  4. Conclusions
  5. Product details
  6. Test methodology

Performance by interface

Read speed

read speed by interface

Write speed

write speed by interface

Performance by card

Read speed

read speed by card

Write speed

write speed by card

Tabular results

The original spreadsheet used to record the results is available here as sd_benchmark.ods.

Read speed (MiB/s)
Transcend M3 ASUS Eee PC OLPC XO
A-Data 8GB 17.36 15.56 8.35
ATP 2GB 9.77 9.64 4.66
Kingston 1GB 10.27 9.79 6.72
Patriot 8GB 16.70 15.62 7.85
Sandisk 2GB 17.90 15.68 6.31
Write speed (MiB/s)
Transcend M3 ASUS Eee PC OLPC XO
A-Data 8GB 4.06 3.67 0.35
ATP 2GB 2.39 2.11 0.72
Kingston 1GB 3.38 2.67 1.29
Patriot 8GB 3.47 2.94 1.55
Sandisk 2GB 4.10 3.21 2.30

Conclusions

The fastest SD interface in the bunch was that of the Transcend M3 card reader. Next in line was the ASUS Eee PC’s SD interface, with the OLPC XO’s SD interface in a distant third. The performance of the OLPC XO’s SD interface was a bit disappointing, providing less than half the performance of the Eee PC’s interface in many of the tests. That could be a result of drivers that haven’t been optimized for performance yet, as the software for the XO is still in its infancy and under heavy development.

The A-Data, Patriot, and Sandisk cards performed at similar speeds across most interfaces. This is likely due to the A-Data and Patriot cards’ Class 6 SDHC designation (guaranteeing their sustained write performance is at least 6 MB/s when using an empty card) and the Sandisk card being a high-speed model (Extreme III). The other two SD cards are generic models and as a result have much lower speeds.

Reading tended to be about 4 times as fast as writing across all cards and interfaces.

For some reason, the XO’s write speed to the A-Data card was abysmally slow. To avoid similar issues when buying an SD card for your XO laptop, I would suggest finding an SD card that is known to work well, such as the Patriot card used in these benchmarks.

Product details

Secure Digital cards

SD card fronts

SD card backs

The following is the text found on the back of each of the cards. It is copied here in hopes that some of the text represents model numbers that will let you determine if you have the same model as one of the tested cards. This post or this web site may help you in determining that.

A-Data Turbo SDHC Class 6 8GB (8204058624 bytes)

G08GNMC7A0141

ATP 2GB (2007498752 bytes)

AF2GSD ASD0611011
2G61M4S E0646G
MADE IN TAIWAN

Kingston Elite Pro 50x 1GB (1020788736 bytes

30554-002.A00 P771790X08 (printed on the front)
9930554-002.A00
1976335
TAIWAN
SK4112-904.A00

Patriot SDHC Class 6 8GB (8195670016 bytes)

PSF8GSDHC6-PC
MADE IN TAIWAN

S463TN08GA0BB
0746071112102

Sandisk Extreme III (ESP Technology) 2GB (2032664576 bytes)

BE0726405084D
MADE IN CHINA

Secure Digital interfaces
Transcend Multi-Card Reader M3

Transcend Multi-Card Reader M3
The Transcend M3 reader appears as “ID 058f:6362 Alcor Micro Corp.” in the output of lsusb. The reader was used with a Dell Latitude D800 having the following specifications:

BIOS version: A10
CPU: 1.3 GHz Pentium M (Banias)
RAM: 512 MB
Operating system: Ubuntu 7.10
Kernel: Linux [hostname] 2.6.22-14-generic #1 SMP Tue Dec 18 08:02:57 UTC 2007 i686 GNU/Linux
ASUS Eee PC 4G (701)
BIOS version: 0401 (10/17/2007)
Software version: Eee PC 1.0.1 (2007-10-19 13:03)
Motherboard: x.xx
Kernel: Linux [hostname] 2.6.21.4-eeepc #21 Sat Oct 13 12:14:03 EDT 2007 i686 GNU/Linux
OLPC XO-1
Hardware version: C2
Operating system: Build 656
Firmware: Q2D07
Kernel: Linux [hostname] 2.6.22-20071231.2.olpc.83e0631da83a269 #1 PREEMPT Mon Dec 31 10:37:17 EST 2007 i586 i586 i386 GNU/Linux

Test methodology

The read tests were performed by running the following command:

$ dd if=/dev/sdb of=/dev/null

The write tests were performed by running the following command:

$ dd if=/dev/zero of=/dev/sdb

The time used for the calculations was the time reported by dd. The appropriate device was substituted for /dev/sdb where applicable. No other CPU- or I/O-intensive applications were running on the test machine while dd was running. Comments on the validity of this testing methodology for determining card and interface read/write speeds would be appreciated.

11 Responses to “OLPC XO and ASUS Eee PC SD card performance”


  • Thanks for taking the time to make that test, ossguy.
    Very informative. 🙂

  • Good comparison. Very helpful. Seems like Patriot has slightly faster write speed, but Adata catches up on average with its faster write speed. Though, I guess for people who prefer to boot windows XP from the SDHC, the faster write speed Patriot SDHC is probably the better route.

    Though, I was wondering what file system format you used to benchmark these cards? Fast32? NTFS?

    Which do you prefer for fast read speed, to run applications off of the SDHC card?

  • I did not use a file system to benchmark the cards. The reads and writes were done on the raw contents of the SD cards. I started each test at the first byte of the card and ran until it reached the last byte of the card, effectively producing an average speed over the entire card (although the speed shouldn’t vary over different parts of the card).

    This method (testing on the raw bytes of the card) is also used by benchmarking tools such as HD Tach, a popular disk performance benchmarking tool.

    Performance between difference file systems on the same card should be similar, although it may vary depending on the access time of the card, which I did not test.

    The only cards I’ve used extensively are the Patriot and the A-Data cards, both on my XO laptop. Since the A-Data was causing me problems, I’ve been using the Patriot card exclusively. I installed Ubuntu on the Patriot card using the ext2 file system, which has been working fine performance-wise. However, I haven’t extensively used other file systems or cards in the XO so I don’t really have anything to compare it with so I can’t comment on whether the Patriot is better for running applications than other cards or whether a different file system would be better.

  • I believe the processors in the SD cards actually look at the file system formatting info. The reason is that flash chips require slow erasure in order to rewrite them. Thus when you delete a file from the filesystem, the SD card processor figures out from the metadata that the formerly allocated data of that file can now be erased.

    When an SD card has pre-erased blocks, new writes go into those blocks quickly. When an SD card has no pre-erased blocks, new writes require doing an erase cycle first, which is really slow. (This is why the “Class 6” write speed is only guaranteed on an empty card. I do not know how they define an empty card but I suspect it’s with an empty FAT filesystem.)

    There are SD commands to erase particular blocks, but no ordinary filesystems know how to issue them (since disk drives don’t need that treatment). Thus the card has to be smart enough to erase in the background.

    I suggest that clobbering the partition table and filesystem metadata with a “dd if=/dev/zero of=/dev/sdb” may be part of your performance problem. Try writing to a file in the filesystem — the way every application from cameras to computers is going to ACTUALLY use the SD card — and see if the relative performance changes.

  • PS: Note that your write speeds never approached the “guaranteed” 6 MBytes/second for Class 6 cards. That should’ve told you there was something wrong with your methodology.

    In their usual idiotic way, the SD Card association documents the speed classes here: http://www.sdcard.com/usa/TextPage.asp?Page=3
    Foolishly, they neglect to specify a way to get a card into the “minimally fragmented state” when about to test its speed (or record a movie that requires high speed, or etc).

  • If anyone happens to find instructions on how to get a card into the “minimally fragmented state” for testing purposes, I would be pleased to know so I can re-run the tests. If I happen to have some spare time to look it up myself I will, but I can’t guarantee anything.

  • I know this may just be idle speculation, but any idea how similar the different capacity cards from a given manufacturer are? I was thinking of getting the 16 GB A-Data based on the thread here:

    http://en.forum.laptop.org/viewtopic.php?f=1324&t=965

    but your posting is making me reconsider, and maybe the Patriot is a better idea.

  • Fwiw, I ended up buying the Patriot 16 GB Class 6 SD card. I’ve only been at it one night so far (although it’s getting to be a long session), but so far I’m not having the best of luck booting from it (this is trying to install Ubuntu on it). For more info, see my posts in the following thread starting here:

    http://www.olpcnews.com/forum/index.php?topic=4053.msg29589#msg29589

  • Richard Smith’s suggestion to upgrade to the latest firmware (Q2E39) will hopefully fix it. Let me know if it’s still not working after upgrading the firmware.

    I have created a very tiny (less than 16 MB) image you can flash to your SD card for testing purposes if you need it. The image contains only a kernel and olpc.fth file, which I have verified to work on my XO. This makes it easier to determine whether your SD card works since it’s not necessary to load an entire Ubuntu install onto your card.

  • Fwiw, the problems that I reported yesterday with the Patriot 16 GB Class 6 SDHC card were solved by upgrading the firmware from q2e18 to q2e39.

    I can’t say too much yet about its performance, since I just got it working, but I have been able to get Ubuntu installed on the XO and booted from the SD card, and I am currently in the process of the post-install updates.

  • Windows only:

    http://www.sdcard.org/consumers/formatter/

    “minimally fragmented” probably means erased internally.

    The SD Card simplified specification talks about erase as different from writing, and they will slow down

Leave a Reply to tz