PDA

View Full Version : n800, SD, SDHC, and storage


padraic2112
03-07-2007, 01:48 PM
There are a lot of threads on this discussion forum, and blog posts around, that have some confusing information regarding various SD cards and their usability in the n800.

I spent the last 6 hours digging through all of them to make sure I had the entire story, and I thought I'd shove everything into a single post.

The n800 stock kernel currently supports SD 1.0 and SD 1.1 cards (hardware support) and both Fat16 and Fat32 file systems. The stock kernel does not support SDHC (SD 2.0) cards.

The n800 file manager application only formats in Fat16, but will read Fat32 partitions just fine.

In a nutshell, then, you can plug *any* SD card < 4GB into your n800 and everything will "just work". You can use 4GB cards that are NOT SDHC cards, but (a) these cards are not official SD 1.0 cards and (b) the file manager will format them as fat16 devices, which will limit them to 2GB, so you need to format them on another device (like a PC) as Fat32 file systems to get the 4GB of usable space out of them. The 4GB cards (that *aren't* SDHC) are technically outside of any spec (they don't conform to 1.0, 1.1, or 2.0 of the SD specification), so they are liable to produce buggy results, use at your own risk. Note that many people are using the 4GB cards with little problems.

There is a kernel patch available to make your n800 support SDHC cards - this is available here http://intr.overt.org/blog/?p=44. Commercially, there are 8 GB SDHC cards readily available. Vendors are releasing 16GB SDHC cards at various points this year. RiDATA 16GB SDHC cards are being showcased 08-11 Mar 2007 - http://www.cdfreaks.com/news/RIDATA-SDHC--16GB_32GB-SSD-cards-to-be-featured-at-PMA-Show.html.

So, to sum up:

If you don't want to get adventurous, don't buy any card bigger than 2GB and make sure that the card you buy is not SDHC, and you top out at 4GB.

If you're a little bit adventurous, buy a 4GB non-SDHC card and you can top out at 8GB.

I'll try and get a list of known to be working cards. For the ubergeeks amongst us, my theory is that certain of the 4GB cards have a voltage problem that makes them buggy with the n800, that's just a SWAG.

If you want to kernel hack your n800, you should be able to buy and use 8GB SDHC cards, right now, in your n800.

If you wait until the next release of the OT 2007 OS, the SDHC patch (according to a blog I can't find at the moment) should have been included. I have been unable to find out if the File Manager app will also be updated when this occurs (I certainly hope so, and encourage everybody to email Ari Jaaksi (http://jaaksi.blogspot.com/) or post to his blog to encourage him to make sure that (a) the kernel patch is incorporated (b) the file manager app is updated to default to fat32.

Oh, and finally, flash memory cards are probably going to plummet in price in the next 3 months as the higher capacity cards hit the mainstream, so if budgeting is an issue, patience will reward you well at this point.

Whoo! Forget an iPod, within a year I'd say the probability is > .99 that you'll be able to walk around with 32x2=64GB of storage in your n800!

TA-t3
03-07-2007, 01:59 PM
I really don't think we all should email poor Ari.. no need to spam him to death. I'm pretty sure the message has been noted by Nokia already, and either it'll happen or it won't, for the upcoming release. Other than that little nit. nice writeup!

(As for 128GB in the N800.. I remember my school paid nearly $15K for a ten-megabyte disk to the school computer.. ah, those were the days! :p)

markku
03-07-2007, 02:13 PM
This cleared a lot about that SD card thing, good work. It would be nice to have such a data storage in N800. Lots of videos, music...we'll see what will happen.

Markku

Seb Per
03-07-2007, 02:54 PM
128 MB... what'll be the impact on the access speed to data? if you have a gigantic warehouse, you can't use the same small forklift that ran fast and efficient in your little storage.

heavyt
03-07-2007, 03:33 PM
padraic2112 that was a clear and easy to understand review, thank you.

fanoush
03-07-2007, 03:44 PM
but you won't be able to use the internal file manager app to do much, you'll have to do most of your interfacing at a terminal.
I think the only problem with file manager is when formatting the card (i.e it can't format as fat32). Already formatted card should work just fine. Or is there really some problem?

Karel Jansens
03-07-2007, 04:05 PM
I have 2 "non-standard" 4GB cards in my N800. I didn't format them, just plunked them in and they work just fine with the file manager. With anything, actually...

yumheart
03-07-2007, 04:12 PM
I have two 8gb SDHC cards in mine. Patched kernel too of course. File manager works fine for everything I have used it for. I have never tried to format a card however...

heavyt
03-07-2007, 05:19 PM
So is it safe to assume one can use the file manager on all cards but you can not format (reformat) all cards to fat 32?

padraic2112
03-07-2007, 11:48 PM
I think the only problem with file manager is when formatting the card (i.e it can't format as fat32). Already formatted card should work just fine.

I have updated my top post for new readers to clarify this, thanks.

Yes, as far as I know (I just got my n800 today and don't have my SD cards yet) this is correct. I'll update the top post again when I can confirm.

padraic2112
03-07-2007, 11:57 PM
128 MB... what'll be the impact on the access speed to data? if you have a gigantic warehouse, you can't use the same small forklift that ran fast and efficient in your little storage.

Bad analogy, but that depends on how the file manager is written.

Yes, the big cards will be less responsive if the file system is being searched or indexed, but there shouldn't be too much of a performance hit just reading the card... you see lag in digital cameras and digital camera software when you have lots of pictures on big cards because the software is usually doing some sort of thumbnail caching, which can be time consuming.

Fat 32 is not a high performance file system, like xfs or ext3. The file system itself does no optimization when writing files, so your memory card is liable to suffer from fragmentation. If you do lots of small-file writing, or often delete/replace large files, the file system's responsiveness will deteriorate, although not to the extent it would on a mechanical platter-style hard drive.

If you use a windows box, just connect your n800 to it every once in a while and run the defrag utility on the flash card.

Seb Per
03-08-2007, 03:24 AM
Bad analogy, but that depends on how the file manager is written.

Yes, the big cards will be less responsive if the file system is being searched or indexed, but there shouldn't be too much of a performance hit just reading the card... you see lag in digital cameras and digital camera software when you have lots of pictures on big cards because the software is usually doing some sort of thumbnail caching, which can be time consuming.

Fat 32 is not a high performance file system, like xfs or ext3. The file system itself does no optimization when writing files, so your memory card is liable to suffer from fragmentation. If you do lots of small-file writing, or often delete/replace large files, the file system's responsiveness will deteriorate, although not to the extent it would on a mechanical platter-style hard drive.

If you use a windows box, just connect your n800 to it every once in a while and run the defrag utility on the flash card.

THank you for this lesson. I don't know much about computer science, and I m sorry if my analogy was bad. I guess my question originated from my own (wrong?) belief that the power of the processor and the operating memory are quite limited on this beautiful device.

TA-t3
03-08-2007, 06:36 AM
The 128MB vs. 128GB issue _is_ actually an issue.. or would be, if the flash is as slow as a disk or the computer is as fast as a desktop computer. Linux drags all data from disk (and back again) "through" memory, whatever memory it has available, and any following access of data on the same page on the disk will get it from memory if it's there. So the more memory you have, the faster your system will be. To have lots of memory on your system can result in quite a dramatic difference.
However, the N800 I/O speed is limited anyway, so it may not make that much of a difference in practice although I think it would be measurable.

jpj
03-08-2007, 11:01 AM
Commercially, there are 8 and 16 GB SDHC cards available, and Samsung had a 64GB SDHC prototype last September, so it is likely that 64GB cards will be available within this calendar year.

Not a bad summary attempt, but check your facts, please:

There are no 16GB SDHC cards currently available. Vendors such as Panasonic and Toshiba have projected launches sometime in 2007, but there have been no actual product announcements.

The Samsung 64GB prototype was Compact Flash, not SDHC. In fact, the SD 2.0 spec defines a capacity limit of 32GB, suggesting that higher densities must either be noncompliant (again) or await further spec revisions.

padraic2112
03-08-2007, 01:25 PM
There are no 16GB SDHC cards currently available. Vendors such as Panasonic and Toshiba have projected launches sometime in 2007, but there have been no actual product announcements.


http://www.cdfreaks.com/news/RIDATA-SDHC--16GB_32GB-SSD-cards-to-be-featured-at-PMA-Show.html

I'm hoping to pick up one of these this weekend. Picking nits, I suppose, but you're right, I'll update the top post.

padraic2112
03-08-2007, 01:41 PM
The Samsung 64GB prototype was Compact Flash, not SDHC. In fact, the SD 2.0 spec defines a capacity limit of 32GB, suggesting that higher densities must either be noncompliant (again) or await further spec revisions.

Thanks for this -> I ought to have checked that source. Yes, this is correct, the 64GB prototype was CF, not SDHC.

From what I've read, the upper theoretical limit on SD is 128GB, so I would imagine that there will be an SD 2.1 spec that ups the capacity limit past 32 GB, but you're correct, the 2.0 spec caps out at 32GB.

Updated the top post.

jpj
03-08-2007, 08:19 PM
http://www.cdfreaks.com/news/RIDATA-SDHC--16GB_32GB-SSD-cards-to-be-featured-at-PMA-Show.html

I'm hoping to pick up one of these this weekend. Picking nits, I suppose, but you're right, I'll update the top post.

Read that link more carefully. Advanced Media is launching their RITECH branded SDHC line, SSD cards, and two port USB Hub drive. The 16GB and 32GB capacity points refer only to the SSD (solid state disk) cards, not SDHC. Nothing earth shattering there, and considering the relative densities of the two form factors (the SSDs are sized like 1.8" and 2.5" hard drives), I'd be surprised if their biggest SDHC even matched the 8GB capacity leaders, let alone surpassed it.

I do expect we'll see 16GB (possibly even 32GB) SDHC production sometime this year, but we're not quite there yet.

fcassia
04-08-2007, 05:23 AM
If you use a windows box, just connect your n800 to it every once in a while and run the defrag utility on the flash card.

You are kidding, right? Because you DO know that flash memory has a limited number of read/write cycles, right? And you DO know that "defragmentation" is a very read/write intensive process, right?

You are also aware that in Flash cards are MEMORY and hence there is no SEEK TIME involved because it takes the same time to get data from memory position #1 as it does from memory position #3276864738, yes?

In short: running a "defrag" on a flash device is not only pointless, it will also reduce the life of your memory card. Brilliant!.

jpj
04-08-2007, 10:25 AM
I do expect we'll see 16GB (possibly even 32GB) SDHC production sometime this year, but we're not quite there yet.

Updating my previous comments: Patriot Memory might be first to market with 16GB SDHC, at a speedy Class 6 rating. Their March 8 press release claimed the product will be "available for purchase next month," which sounds like April to me. I emailed the marketing manager for confirmation but have received no response.

http://www.patriotmemory.com/company/news/corpnewsp.jsp?source=67

I'm currently using a Patriot 8GB Class 4 SDHC (PSF8GSDHC4) with the N800 patched kernel, and its speed is far more impressive than I expected. Much faster transfers than the Transcend 150X 4GB SD (non-HC). I'll try to run some comparative benchmarks when I find the time.

I purchased my 8GB CL4 card from newegg.com last month for $61.99 minus a $10 rebate. Since then the price has risen to $77.99, which would still tempt me to pick up a second card if the 16GB wasn't so close to the horizon.

http://www.newegg.com/Product/Product.asp?Item=N82E16820220217

Eagerly awaiting further 16GB SDHC news ...

TA-t3
04-11-2007, 11:54 AM
Just to second the posting up there.. don't defrag a flash card. Not a good idea.

Mara
04-11-2007, 05:20 PM
Just trying to make decision what speed grade SDHC card should I be buying? Most 8GB that are priced around $70 are Class 2, and Class 4's start around $100. Currently I'm using a "regular" (non-SDHC) 4GB SD card with "unknown" speed... and it seem to be plenty fast when reading data. But the writing seem quite slow, taking like 10-15 minutes to write a single 300MB file into it when connected via USB cable to the PC. (Yes, PC port is USB2.0.)

I have seen some speed test numbers here about speeds of different cards, but I do not remember seeing anything about write speed of different SDHC class cards? Would the Class 4 be faster than Class 2 to write to, when using the patched SDHC kernel in N800?

Milhouse
04-11-2007, 06:37 PM
300MB in 10-15 minutes doesn't sound right - something is wrong with the card, the card reader or the PC! :)

It's quite hard to benchmark the write speed on the N800 because of the internal OS filesystem buffering.

Using the following (utterly bogus) test...


/home/user # sync; time sh -c "dd if=/dev/zero of=/dev/mmcblk1 bs=1M count=128; sync; sync; sync;"
128+0 records in
128+0 records out
real 0m 20.64s
user 0m 0.00s
sys 0m 1.39s


...will "write" 128MB of data to a Transcend Class 2 8GB card (high speed, 4-bits wide) in 20.64 seconds (latest 3.2007.10-7 SDHC kernel) which works out at just over 6.2MB/s write speed.

I know the results from this test are incorrect, but it does go to show that you won't really see a great deal of difference between Class 2 and Class 4 write performance in day-to-day usage. The OS will finish writing the data asynchronously to the Class 4 card faster than it will the Class 2 card, but you're not likely to notice.

You should see a difference between Class 2 and Class 4 in a Windows PC as file transfers should be quicker with the Class 4 card, in which case your buying decision should be based on how often you intend to bulk copy data to the card when it is connected to a PC.

IMHO, the N800 isn't likely to see any benefit when using a Class 4 or faster card - Class 2 will be fine.

Mara
04-11-2007, 08:21 PM
Well... did redo the speed test using 319MB size AVI file copied from computer to N800. It took 740 seconds... (that is over 12 minutes...). By reading back the same file to PC took only 30 seconds! Thus the read speed is over 10MB/sec, which is over 20x faster than write speed! That is with "regular" 4GB SD card, not SDHC card. (I do have the SDHC kernel installed which seem to be faster than the stock kernel, even with non-SDHC cards.)

At any rate even Class 2 card would be many times faster to write than my current 4GB card. (Read speed might be slightly slower?)

Based on your recommendation I'll propably just get a Class 2 card.

darethehair
04-25-2007, 07:26 PM
This seems like the best thread to post my questions, so here goes:

1) I have a brand-new N800 (yay!) and I purchased two 8gb Patriot SDHC cards for it. I would assume that before I can use them that I need to format/partition them (?), but does this mean I need to go out and purchase a USB multi-card-reader with SDHC support before I can do this? The card readers on my Linux PCs don't seem to recognize these cards (nio big surprise). How do the rest of you SDHC people do this? Can I be sure that any card reader that I purchase will work on my Linux systems (I am assuming that any desire to create EXT2/3 partitions without using them under Linux would be impossible).

2) I need to have clear(er) guidance on the best way to partition these cards. I have read that they *must* have a FAT(32?) partition on them -- is this true? How large? Being a Linux guy I would simply prefer to format them completely as EXT3.

Please help guide me!

johsua
04-25-2007, 07:46 PM
See the SDHC wiki:

http://www.internettablettalk.com/wiki/index.php/How_to_flash_the_SDHC_kernel_w/out_connecting_to_a_computer

In short - you don't need to format. You just need to patch the kernel to get SDHC support. This is not hard to do.

Good luck.

fanoush
04-26-2007, 03:39 AM
I would assume that before I can use them that I need to format/partition them (?), but does this mean I need to go out and purchase a USB multi-card-reader with SDHC support before I can do this? The card readers on my Linux PCs don't seem to recognize these cards (nio big surprise). How do the rest of you SDHC people do this?

N800 works as usb card reader. once you flash sdhc kernel you can reformat and repartition cards from PC over USB.


2) I need to have clear(er) guidance on the best way to partition these cards. I have read that they *must* have a FAT(32?) partition on them -- is this true? How large? Being a Linux guy I would simply prefer to format them completely as EXT3.

Default system simply expects first partition to be FAT. With fist partition being FAT(32) you won't need any modification of system files. It is possible to have ext2 but it may be less practical when accessing card over USB from non-linux PC and you also need to hack few configuration files (/etc/fstab at least).

In my opinion the easiest is to keep first one as FAT for data that I wish to share over USB and create other partition(s) as ext2 or ext3 for things that need permissions. If you are advanced linux user you may also consider transferring system from flash to mmc card to have more space, faster system (depends on card speed) and easier crash recovery
http://maemo.org/maemowiki/HowTo_EASILY_Boot_From_MMC_card

Karl-Wilhelm
05-04-2007, 03:28 PM
See the SDHC wiki:

http://www.internettablettalk.com/wiki/index.php/How_to_flash_the_SDHC_kernel_w/out_connecting_to_a_computer

In short - you don't need to format. You just need to patch the kernel to get SDHC support. This is not hard to do.

Good luck.

I just can't get that guide to work.

I just don't understand why I get that "error".
http://kirkedam.mine.nu/kwk/N800%20Stuff/Bilde340.jpg

Thanks in advance :)

fanoush
05-04-2007, 04:32 PM
I just can't get that guide to work.

I just don't understand why I get that "error".
http://kirkedam.mine.nu/kwk/N800%20Stuff/Bilde340.jpg

Thanks in advance :)

You did not enter correct path to kernel flasher archive. I have added more details to that wiki page. Read again and use proper path, it depends on where you saved those files.

Karl-Wilhelm
05-04-2007, 05:23 PM
You did not enter correct path to kernel flasher archive. I have added more details to that wiki page. Read again and use proper path, it depends on where you saved those files.

Thanks =) I got it to work now! I had done a couple of things wrong...

Happy weekend ;)

chyang
05-06-2007, 06:31 PM
Well... did redo the speed test using 319MB size AVI file copied from computer to N800. It took 740 seconds... (that is over 12 minutes...). By reading back the same file to PC took only 30 seconds! Thus the read speed is over 10MB/sec, which is over 20x faster than write speed! That is with "regular" 4GB SD card, not SDHC card. (I do have the SDHC kernel installed which seem to be faster than the stock kernel, even with non-SDHC cards.)

At any rate even Class 2 card would be many times faster to write than my current 4GB card. (Read speed might be slightly slower?)

Based on your recommendation I'll propably just get a Class 2 card.
any new result with the class 2 card?i am planning to buy a non-standard 4gb sd to use with my n800, if it is as what you tested, i would choose sdhc card. thanks.

--
posted from zaurus

Milhouse
05-06-2007, 07:42 PM
From the benchmarks posted on this forum, the slowest SDHC Class 2 card typically outperforms even the fastest SD card (when reading data) so unless you need SD for compatability I'd recommend SDHC every time as Nokia will surely add official SDHC in the next firmware (clowns if they don't).

Mara
05-06-2007, 08:49 PM
Well.. I haven't got the 8GB SDHC card yet. The 4GB I have now has enough space for my needs for now. I'm waiting the 8GB prices to go down some more...

fanoush
05-07-2007, 08:39 AM
From the benchmarks posted on this forum, the slowest SDHC Class 2 card typically outperforms even the fastest SD card (when reading data) so unless you need SD for compatability I'd recommend SDHC every time as Nokia will surely add official SDHC in the next firmware (clowns if they don't).
Well, that depends on card price and importance of write speed. I am happy with transcend 4gb 150x. It was cheaper even than Transcend 4GB SDHC class 2 and write speed is excellent and much better than the class 2 card (and even slightly better than class 6 card), see also test here.
http://www.hjreggel.net/cardspeed/speed-by-cards-sdh.html

Write speed can be measured either by copying some big video over USB which is practical test where it really matters or by doing synthetic test via dd i.e. something like
s=$(date +%s) ;dd if=/dev/zero of=/media/mmcx/testfile bs=4096 count=20000 ; sync ; e=$(date +%s) ; echo $((e-s))
then just divide size (80 MB?) by the result in seconds

True that some SD cards may be of poor quality with pathetic write speed but fast sd cards are faster when writing then SDHC class 2 and may be cheaper since SDHC is still novelty and sell in lower volumes. Well at least this was true at the time I bought my card. When checking same shop today I see Transcend SDHC class 2 price dropped to be now lower than the 150x one (by approx $8, 4GB SD 150x ~= $58, 4GB class2 SDHC ~= $50) so this may not apply anymore.

When you are planning use cards for storing video and expect to write often to it, fast writes are important. In normal usage writing is not so frequent and read speed of all current cards is similar and good enough.

jpj
05-07-2007, 07:36 PM
I have a Kingston 8GB CL6 card on order and plan to benchmark it against my Patriot 8GB CL4. Even if there's no significant difference in the N800, I expect the speed bump will help bulk transfers via a PC hosted SDHC reader.

On a related note, Patriot's 16GB CL6 availability has been pushed back to this summer. My query in their support forum eventually prompted the following response:
I have a date change. The 16GB most likely won't be available till the end of June in to August. Keep an eye out for it then.

linuxbear
05-08-2007, 12:02 AM
You are kidding, right? Because you DO know that flash memory has a limited number of read/write cycles, right? And you DO know that "defragmentation" is a very read/write intensive process, right?

You are also aware that in Flash cards are MEMORY and hence there is no SEEK TIME involved because it takes the same time to get data from memory position #1 as it does from memory position #3276864738, yes?

In short: running a "defrag" on a flash device is not only pointless, it will also reduce the life of your memory card. Brilliant!.

It might be safer to move it all to your linux desktop and then write it back to the chip. Once it is on the ext.xx or reiser FS it will be defragged.
My wife has been writing to SD cards so she can take music to work and play it on her Palm. She has had no trouble after almost 2 years. Flash cards will wear out in time, but we have not experienced any problems yet.
Also, I found a nice card reader which plugs into a USB port for less than 10 dollars US. It's made by "pqi genie" and will save your battery a bit as file x-fer is a power hungry process on a portable

Glen

fanoush
05-08-2007, 01:45 AM
Did the write test with Transcend 150x 4GB SD. When writing 160MB it took 25 seconds
Nokia-N800-10:~$ s=$(date +%s) ; dd if=/dev/zero of=/media/mmc2/test bs=4096 count=40000 ; sync ; e=$(date +%s) ; echo $((e-s))
40000+0 records in
40000+0 records out
25

This means N800 write speed including FAT filesystem overhead is approx. 6MB/s with this card.

Milhouse
05-08-2007, 09:32 AM
Fanoush - in this post (http://www.internettablettalk.com/forums/showthread.php?p=43859#post43859) I wrote 128MB in 20.64s to a Transcend Class 2 8GB card (6.4MB/s - same as your result 160/25=>6.4). However I'm not convinced this test is reliable due to the OS buffering writes, though I could be wrong. :)

fanoush
05-08-2007, 10:06 AM
the sync command flushes write buffers, you can also mount before test, measure start, do the write, umount (which flushes device buffers too) and measure end

EDIT: the difference is that I am writing to file so sync/umount should definitely make sure blocks are written. But anyway I would guess direct device i/o does not cache writes, that would be quite dangerous as devices can be removed anytime, it does cache reads however. BTW there is some file in /proc or /sys to flush such read buffers, I can dig it in mail, used it to debug my 'broken' mmcpluc 4GB card that works in everything else but N800.

aleksandyr
05-08-2007, 11:28 AM
My Connect3D 4GB non-SDHC card reads something in the 8-10MB/sec range, compared to my Kingston 2GB MMCMobile which reads in the 9-12MB/sec range.

Worth noting, I think, is that these cards are on sale again at ECost (http://www.ecost.com/ecost/ecplasma/shop/showcaseb/default.asp?showcaseb=woot) for $20. I'd be happy to post specific benchmarks and such: I'll also point at Dealram (http://dealnews.com/memory/) as where I keep finding cheap memory.

Write ~160MB: 65 seconds, 2.5MB/sec
Nokia-N800-10:~# s=$(date +%s) ; dd if=/dev/zero of=/media/mmc2/test bs=4096 count=40000 ; sync ; e=$(date +%s) ; echo $((e-s))
40000+0 records in
40000+0 records out
65

Read ~160MB: 17 seconds, 9.4MB/sec
Nokia-N800-10:~# s=$(date +%s) ; dd if=/dev/mmcblk1 of=/dev/null bs=4096 count=40000 ; sync ; e=$(date +%s) ; echo $((e-s))
40000+0 records in
40000+0 records out
17

Output in dmesg:
mmc1: clock 48000000Hz busmode 2 powermode 2 cs 0 Vdd 15 width 2 timing 2

Somewhat related, today at work I plan to build a new kernel incorporating MPPE as well as the SDHC patches --- I'm also going to get a full suite of modules together for cifs, nfs, ext3, so forth, and so on. If anyone is interested, I'd be happy to post it up somewhere.

Also somewhat related, I might put together a Python script that will test your cards and upload benchmarks for you to a special site, if I'm bored enough at work :)

Milhouse
05-08-2007, 11:56 AM
Ouch - that WRITE speed is pretty slow! At least it confirms what Fanoush is saying that direct IO writes aren't buffered in which case the write speed can be guesstimated with a resonable degree of certainty.

Has anyone tested the write speed of a Class 4 or Class 6 SDHC card running in high-speed (48Mhz) mode?

The benchmark app might be quite useful! :)

iball
05-08-2007, 02:13 PM
I'm really diggin' the two Sandisk 4GB SDHC I've got but only thing is bugging me:
The Expresscard multi-format card reader I have in my Macbook Pro won't recognize the SDHC cards but it plays just fine with all my other SD cards. I have to use a USB SDHC/SD adapter instead. Which while being fast as all get out isn't the "carry-fewer-things" style I'm looking for.
Stupid Belkin F5U213 Expresscard. No updated OS X "drivers" for it either.

jpj
05-08-2007, 11:20 PM
Nice cheap SimpleTech "Bonzai" SDHC card reader, $13.82 from Amazon:
http://www.amazon.com/gp/product/B000MN9ZRO/002-4950383-7980817

Unlike the (more expensive) Sandisk MicroMate, the narrow "snout" on this device works well with the front mounted USB ports on my Antec Sonata II case, and with the crowded port layout on my trusty old Vaio Z505.

Edit: Even cheaper from Amazon's featured merchants - lowest price is currently $5.93 plus $4.99 shipping.

fanoush
05-13-2007, 06:16 AM
I came across interesting OLPC issue related to SD read speed, looks like the 12MB/s limit is not specific to N800 http://dev.laptop.org/ticket/397

jpj
05-13-2007, 03:05 PM
Sorry to stray from the artificial benchmarks people have been batting about, but I decided to run a few symmetrical read/write tests relating to one of my own usage patterns. Specifically, I copied a 700MB set of MP3 files (equivalent to one well packed CD-R) to and from a collection of SD and SDHC cards, using both a USB-connected N800 and a SimpleTech Bonzai USB 2.0 card reader.

The host system is a homebrew Pentium D 820 (3.0 GHz) with Intel D945GNT motherboard, running XP SP2. The hard drive used for file transfers is a 10000 RPM, 74GB WD Raptor. The target cards were freshly formatted using Panasonic SDFormatter V2.0 with the default cluster size (16KB for the 1GB card, 32KB for the others) before each write test. Windows write caching was disabled, and all cards were written and ejected before the read tests were performed.

File transfers were initiated from the Windows Explorer GUI, timed with a handheld stopwatch, and reported below in minutes:seconds followed by the average transfer rate in MB/s.


Card PC to N800 (write) N800 to PC (read)
ATP 1GB 60X SD 4:30.2 (2.59 MB/s) 1:41.8 (6.88 MB/s)
PQI 2GB 60X SD 7:21.4 (1.59 MB/s) 1:14.6 (9.38 MB/s)
Transcend 4GB 150X SD 5:08.8 (2.27 MB/s) 0:59.6 (11.7 MB/s)
Patriot 8GB CL4 SDHC 5:28.2 (2.13 MB/s) 1:00.6 (11.6 MB/s)
Kingston 8GB CL6 SDHC 5:33.8 (2.10 MB/s) 1:00.8 (11.5 MB/s)

Card PC to Reader (write) Reader to PC (read)
ATP 1GB 60X SD 1:41.8 (6.88 MB/s) 1:22.6 (8.47 MB/s)
PQI 2GB 60X SD 4:59.4 (2.34 MB/s) 1:28.0 (7.95 MB/s)
Transcend 4GB 150X SD 2:11.2 (5.34 MB/s) 0:52.8 (13.3 MB/s)
Patriot 8GB CL4 SDHC 2:09.0 (5.43 MB/s) 0:45.4 (15.4 MB/s)
Kingston 8GB CL6 SDHC 1:55.4 (6.09 MB/s) 0:37.8 (18.5 MB/s)

Any rankings derived from this scenario are approximate, since the timings do vary across repeated runs. No attempt was made to average results over multiple tests.

Throughput becomes much lower with smaller average file sizes (such as maemo-mapper maps) and smaller cluster sizes (which store small files more efficiently). I haven't run the corresponding tests yet, but based on experience, the effect is substantial.

Presumably, memory card write performance could be improved by enabling Windows write caching on the removable volumes (Properties -> Hardware -> Policies -> Optimize for performance). However, I have not attempted to quantify this effect.

Mara
05-13-2007, 05:29 PM
jpj:

Thanks for this comprehensive REAL WORLD speed test! :)

Based on the results the write speed seem to cap at about 2MB/sec, regardless of the card speed. In other words if buying SDHC cards going over Class 2 is waste of money. (Assuming the use is only with N800, AND future kernel updates do not enable faster transfer modes... :rolleyes: )

fanoush
05-14-2007, 03:22 AM
Throughput becomes much lower with smaller average file sizes (such as maemo-mapper maps) and smaller cluster sizes (which store small files more efficiently). I haven't run the corresponding tests yet, but based on experience, the effect is substantial.
I guess this is because FAT table needs to be updated more often with smaller clusters (after writing each cluster if write caching is not enabled).

Presumably, memory card write performance could be improved by enabling Windows write caching on the removable volumes (Properties -> Hardware -> Policies -> Optimize for performance). However, I have not attempted to quantify this effect.
Yes, if one cares to use safe device removal, it makes perfect sense to enable it. Write caching may improve speed and be much more friendly to the card, updating FAT table after each block write is not ideal.

Benchmarking with write cache enabled may give more realistic write speed numbers. Even now if the final speed is 2MB/s the real write speed is much higher (double?) since for each cluster you have FAT table write = one or more additional writes (I guess two writes: block list and file size attribute).

However this http://www.uwe-sieber.de/usbstick_e.html article claims enabling write caching does not help much unless you format the card with NTFS. It is hard to believe but with Microsoft everything is possible.


Based on the results the write speed seem to cap at about 2MB/sec, regardless of the card speed. In other words if buying SDHC cards going over Class 2 is waste of money.

Slower card may result in even slower writes i.e. if the real writing speed is 2MB/s your visible speed may be below 1MB/s because of the FAT table updates.

Of course all this is just a theory, more benchmarks could prove me wrong.

jpj
05-14-2007, 09:44 AM
In other words if buying SDHC cards going over Class 2 is waste of money. (Assuming the use is only with N800, AND future kernel updates do not enable faster transfer modes... :rolleyes: )
Mara, I don't entirely agree. Some genius hacker might find a way around the bottleneck. Even if they don't, and you have no other SDHC devices (today or tomorrow), a USB card reader is still a cheap speedup for getting stuff onto the card. As you can see, it helps the writes (which suffer the most) much more than the reads.

jpj
05-14-2007, 09:51 AM
fanoush, thanks for your comments and for the article link. I intend to run some comparative tests with small files, and will also investigate the effects of cluster size and write caching. Probably not with all cards at first, as the test matrix gets pretty large. But my curiosity is piqued, so I may as well carry on...

TA-t3
05-14-2007, 09:57 AM
I was thinking that if I buy some SDHC cards I may as well format them as ext2 or ext3.. I have many SD-compatible devices but none of them are SDHC compatible (with the exception of the N800+new kernel). What happens to the card reader then? Is the filesystem (FAT) known by the card reader, or is that the responsibility of the OS (say, of my linux laptop)? This has never been entirely clear to me.. I would imagine the card reader would still work but a confirmation would be nice.

jpj
05-14-2007, 10:17 AM
TA-t3, I couldn't resist firing up my Ubuntu/maemo VMWare Appliance for a quick test. File Browser shows an entry for Generic1 Card Reader1 but is "Unable to mount the selected volume" (FAT formatted ATP 1GB SD). The error detail says "could not execute pmount."

That's all I have time for right now.

Mara
05-23-2007, 06:43 PM
I just received my 8GB Class 4 SDHC Patriot card today and did run some quick speed test: I just copied a 327MB file from PC to the card mounted on N800, and back to PC.

The write speed was 3119kB/sec.

The read speed was 12596kB/sec.

These were taken with a stopwatch so some error margin is expected...

It looks like the Class 4 is being utilized with N800. Luckily I did not go and get the cheapest Class 2 card. :D

euchreprof
05-23-2007, 06:46 PM
I just received my 8GB Class 4 SDHC Patriot card today and did run some quick speed test: I just copied a 327MB file from PC to the card mounted on N800, and back to PC.

The write speed was 3119kB/sec.

The read speed was 12596kB/sec.

These were taken with a stopwatch so some error margin is expected...

It looks like the Class 4 is being utilized with N800. Luckily I did not go and get the cheapest Class 2 card. :D



lol like Milhouse did.

Milhouse
05-23-2007, 07:44 PM
Those read speeds are pretty similar to my Class 2 to be honest (I'd wager identical once you eliminate the variance introduced by the stopwatch timing) and the write speed I observed (6.4Mb/s) is significantly better than the Class 4 card.

All in all, I'm very happy with a cheap Class 2 device in my N800 thanks euchprof - but feel free to blow your cash on a Class 4 if you think it justified! :) I certainly don't think it is - the only benefit of Class 4 over Class 2 is when using the card in a PC card reader and performing bulk transfers where you should see improved write performance.

Mara
05-23-2007, 07:56 PM
Those read speeds are pretty similar to my Class 2 to be honest (I'd wager identical once you eliminate the variance introduced by the stopwatch timing) and the write speed I observed (6.4Mb/s) is significantly better than the Class 4 card.

All in all, I'm very happy with a cheap Class 2 device in my N800 thanks euchprof - but feel free to blow your cash on a Class 4 if you think it justified! :) I certainly don't think it is - the only benefit of Class 4 over Class 2 is when using the card in a PC card reader and performing bulk transfers where you should see improved write performance.

I didn't expect much difference in read speed, but wanted to make sure the write speed is reasonable. The Class 4 was only $5 more expensive than a Class 2 thus it was almost no brainer... :rolleyes:

Milhouse
05-23-2007, 08:43 PM
In that case at $5 difference, fair enough - you can't argue with that! :)

Mara
05-24-2007, 11:32 AM
While at it... anybody has any suggestions about PC card reader? Are all/any SDHC compatible USB card readers able to utilize Class 4 or even 6 speeds? How about bigger cards than 8GB?

In Ebay I see some but suspiciously they seem to limit up to 8GB size and talk about supporting 150X max speed and/or Class 2... :confused:

Maybe I need to search some Brand Name products and see if they publish specifications where these are defined properly...

brendan
05-24-2007, 11:53 AM
a standard SD card reader doesnt seem to read SDHC. i got sucked into buying a 4GB SDHC card at CompUSA when i got my n800, from SanDisk and it came with a usb-2-sdhc reader. it ran $129 for the card, but the reader makes up for the ghastly price.

you can connect the n800 to a pc via usb, and read any card that is mounted in the n800.

Karel Jansens
05-24-2007, 12:14 PM
a standard SD card reader doesnt seem to read SDHC. i got sucked into buying a 4GB SDHC card at CompUSA when i got my n800, from SanDisk and it came with a usb-2-sdhc reader. it ran $129 for the card, but the reader makes up for the ghastly price.

Also, not all SD readers will read non-HC 4 GB cards. I have two that work normally in my N800, but only the built-in card reader in my pc recognizes them. A second, USB reader keeps insisting there's nothing there.

Fortunately, my cards also came with little USB readers; they're now essentially USB flashdrives with the low-capacity cards I've been accumulating over the years (well -- months...).

Mara
05-24-2007, 02:02 PM
While at it... anybody has any suggestions about PC card reader? Are all/any SDHC compatible USB card readers able to utilize Class 4 or even 6 speeds? How about bigger cards than 8GB?

In Ebay I see some but suspiciously they seem to limit up to 8GB size and talk about supporting 150X max speed and/or Class 2... :confused:

Maybe I need to search some Brand Name products and see if they publish specifications where these are defined properly...

Replying to my own post... jpj did test multiple different cards using SimpleTech Bonzai USB 2.0 reader. In those results the Patriot 8GB Class 4 card (that I have) did get over 5MB/sec write speed, thus seem a good choice? It is also pretty cheap... :cool:

I think I'm going to get that one...

bow_22
06-24-2007, 03:31 PM
Need help, maybe i do something wrong.
I want to use with n800 Kingston 4Gb SDHC.
I'm trying to patch my n800 with sdhc kernel patch from device itself, but after string "./kernel_flasher/kernel_flash sdhc.bin" it asks "Are you ready to flash? (yes/no)" and then message appears:
"Nothing flashed.
Cleaning up... done."
After reboot n800 can't find card.
Sorry for terrible English.