Now that I have the article, I think vendors will be more likely to send me the product because they can see it's real. Or maybe I won't get any products because they're afraid I'll point out that they're not very fast. :wink:
__________________ Want to contact me personally? Use this. Want to read my personal blog? Check it out. Want to follow me on Twitter? Here you go.
I think I can shed some light on your read tests, and I don't think it's due to an error in testing, but a consequence of the MMC spec itself.
The MMC interface is a standardized interface, and comes from the MMC Card Association. In this spec are two interfaces: one is for identification mode, the other is for synchronous transfer mode. The spec defines the maximum card clock rate at 400 KHz for identification mode, and 20 MHz for data transfer mode, MAXIMUM. So regardless of how fast the card can retrieve data internally, it can only exit the card at the maximum frequency specificed by the MMC spec. Since the MMC spec only defines a single data line (called DAT0), the theoretical maximum bandwidth out of the card is 20 MBit/sec.
So assuming that all of the cards tested can retrieve data from their flash arrays at an aggregate rate of faster than 20 MBits/sec, then the true performance bottleneck will set right at 20 MBit/sec, and all the cards will show the same performance.
Also, remember than these cards are based around NAND flash devices, which have a relatively slow page access time (on the order of 5-10us per 528 byte page). Even the slowest NAND flash devices can read at over 100 MBit/sec, and even accounting for firmware overhead (error correction, error detection, etc) you can see that the MMC 20 MHz clock is the real limiting factor here.
I think the only way you will see a speed difference is if you were able to increase the MMC card clock out of spec until the cards began to fail. Then you would see how much margin the manufacturers have built into their designs.
Lastly, realize that the card reader isn't going to dynamically change the MMC clock frequency depending on which card is inserted! I think this is the real reason why you will always read the same bandwidth for an MMC card read test.
Remember these aren't hard drives, where bandwidth is highly dependant on parameters like sector-seek speed and cache implementations. In the case of the hard drive, the IDE interface isn't the limiting factor in bandwidth, it's the drive. So those hard drives with faster seek speed will show higher bandwidth out of the drive (especially for small random block oriented tests). For the MMC spec, you are seeing the opposite.
If anyone is interested, I'll explain why the read tests are the same, yet the write speeds are different!
No comments on my Transcend tests? I feel so unloved after all that work I did :lol:
I've always equated Transcend to rocket-like performance. I remember a CF card comparison done on a digital camera site a couple of years back that had Transcend smoking nearly the entire field of Type I CF cards (around 15+ cards).
Ridata is another terrific brand for flash card performance.
I've cracked at SanDisk previously because their initial line of "Ultra" cards (a few years back) weren't very fast at all, but it looks like they're legitimately fast now.
I realized I made an error in my post above: after reading the article I thought it was referring to MMC cards! But clearly the SD versions were being tested.
Everything I said remains the same, however the SD spec defines a maximum 25 MBit/sec burst transfer rate, and also provides for a x4 mode oepration which brings the maximum theoretical burst transfer rate up to four times the 'regular' bandwidth. 25 Mbit/sec is about 3 MByte/sec, or in x4 mode a peak of 12 MByte/sec.
If the reader is truly USB 2.0 compliant, it should be capable of sustaining around 58 MBytes/sec in burst transfers, so USB shouldn't be the limiting factor in any test...however without knowing the details of the hardware/software environment this assumption may be incorrect!
One plausible explanation is that the reader itself may be underclocking the cards, which would cause a bandwidth ceiling show in the tests. But it's just a guess. Tests with transfers of large files stress the interconnection bottlenecks, not the file system overhead. The tests in this article may just be exposing the maximum transfer bandwidth of the reader in question. It would be useful to replicate that particular test on a different reader to see the difference in the results.
Now on to writing:
For write bandwidth, two factors are critical: first is the page programming time of the NAND flash device in the card, and the second is the block erase time of NAND flash. These dictate how fact the card can accept new data, or change existing data on the card. Obviously those cards based on fast NAND flash devices are going to sustain a higher write throughput. Cards based on SLC type NAND flash devices in general erase and program the fastest, however are generally found on the smaller, more expensive cards (the higher speed rated cards). Those based on MLC type NAND flash devices program and erase slower, are somewhat cheaper, and can have higher capacities for the same approximate price.
You also see the write performance seems to depend greatly on the same brand of card with different file transfer sizes. In general, card controller makers have the flexibility to tailor their garbage colletion algorithms to favor frequent update of smaller files, at the cost of increased file system overhead. You can see that those cards are better suited to systems utilizing SD cards as file system storage, like in PDA's. You will observe better performance due to the intended use of the cards. One some of the other cards, they are optimized for larger file use and have smaller overhead in file management, but the small file access suffers. These would be better suited to digital cameras, where the file size is roughly constant, and large (relative to the first case).
I thought this was excellent, but I'm not sure most visitors will perceive these numbers correctly - especially with regards to the $ per speed numbers.
It all depends on why you are using the memory.
PDA USERS
READ SPEEDS - Not that important for most PDA users. Even if they frequently close and restart programs @ 2 Mb+/second the bottleneck getting the program up and running is never the card.
WRITE SPEEDS - Very important if frequently changing media, otherwise it is not very important for PDA users either. This should be a consideration if you frequently write new media to your cards (like MP3s, or movies). You generally want to be able to write this data ASAP to the cards via USB2 or Firewire - thats where you see the card speed making a difference.
DIGICAMS
The cards must be able to write data ASAP - this is critical for good digicam performance. So Fast writes are extremely important. Reading again is much less important since the bottle neck for "picture review" on all cameras LCDs is not the memory, Also most people have two cards so they can use one while the other is downloading to the PC, again showing that read-speeds are not nearly as critical in most cases.
COST PER READ SPEED
With these considerations its quite obvious that the write speed is much more important for most users - the read speed will have negligible impact on performance in most cases. With that in mind, it makes sense to consider just the cost per read speed, instead of combining read with write. This is the result:
Note that Jason came to the same conclusion as me (Sandisk is the best value), but by different means, and this evaluation demonstrates just how much of a better value the Sandisk is.
Let me add, according to the above evaluation, if you seldom change the media on your card, and if you will never the card in a high-speed digicam, then the Simpletech is a better deal. In fact, it's a great deal if that's your use.
I thought this was excellent, but I'm not sure most visitors will perceive these numbers correctly - especially with regards to the $ per speed numbers.
That's why I have this paragraph as my closing statement:
"Ultimately the card you pick should be based on how you'll use it. If the SD card is going into a Pocket PC or Smartphone, and will be primarily used for reading data stored on it (audio, video, programs), the read speed is more important than the write speed. If the card is going into a camera, however, write speed is paramount and you'll want the fastest card you can get your hands on even if it's more expensive."
I appreciate your analysis, but I disagree with this part:
Quote:
Originally Posted by davea0511
READ SPEEDS - Not that important for most PDA users. Even if they frequently close and restart programs @ 2 Mb+/second the bottleneck getting the program up and running is never the card.
On a typical Pocket PC, the SD card is going to be read quite often:
1) Starting EXE files
2) System drawing icons
3) Audio/Video files being opened
4) Saved games/saved data being opened
So I think that for the average Pocket PC user, the read speed is still fairly important, though not worth spending 2x as much on a card.
Quote:
Originally Posted by davea0511
This should be a consideration if you frequently write new media to your cards (like MP3s, or movies). You generally want to be able to write this data ASAP to the cards via USB2 or Firewire - thats where you see the card speed making a difference.
An interesting point. It really depends on how often they do this, but you're right, if the user is dumping a 400 MB movie onto the card on a daily basis, getting a card that's 200% faster than another will save a lot of time!
Thanks for chiming in, I appreciate your thoughts. :-)
__________________ Want to contact me personally? Use this. Want to read my personal blog? Check it out. Want to follow me on Twitter? Here you go.
Too bad you didn't get a Lexar to test; that may have been interesting. I just recieved a Lexar 256MB (warranty work) and it copied over in six minutes what took over 20 minutes to a Sandisk of the same capacity last night.
I agree that there is a difference in program operation due to read speed - but lets do the math to see how significant it is:
First of all let's look at the difference between the fastest and slowest reading card at sub 1Mb speeds = (6250 Kb/s - 6050 Kb/s) = 200 Kb/s. That sounds like alot until you calculate the percent difference = 200/6050 = 3.3%. But that's worst case - you aren't even going to see nearly that big of a difference during normal program operation.
So lets calculate the actual expected speed difference during normal program operation due to the disk reading operations you mentioned. Most of the card access during program operation is for files in the 1K to 64K range, and those operations are likely not to occur more than every 10 seconds (unless the program is written very poorly since nearly all of that data should be cached in ram instead of constantly reading from the card). From the following math it appears the worst case for normal program operation will yield a 0.1% difference between the fastest and slowest readers. (64K/6050K/s = .01 seconds per 10 seconds = 0.001s/s = 0.1%).
Lastly, for streaming media a difference won't even exist because most PPC streaming media won't even play smoothly unless the bit-rate is below 256K/s. The slowest reading card is 6050K/s , 24x faster than the highest bitrate that your PDA can even reliably stream videos (6050/256 = 24).
So I have to hold to my position that read speeds should not even remotely be a consideration for PDA use. Its all in the math.
The only thing one should consider when buying a card is whether they will be frequently writing to the card, and if so then Sandisk is the hands down winner from both a performance and value perspective.
ps - if there is a program that reads from the card as high as 10 per second then get rid of it. That's 36,000 per hour, or a 100K per day if you use it for 3 hours per day. Reading is not a problem, but if it is reading program variables instead of storing them in RAM then it is probably writing them just as frequently - and most flash cards go bad after a million writes. That means in 10 days your card will be bad.