Definitie Class standaard van SD(HC)-kaartjes

Pagina: 1
Acties:

  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Ik heb wel eens tests gedaan met een SDHC kaartje met bestanden van verschillende groottes. Het valt op dat bij zeer kleine bestanden de lees/schrijf prestaties dramatisch kelderen (zie de figuur hieronder). Nu vroeg ik me af, met welke bestandsgroottes zijn die Class aanduidingen bepaald? Als je bijvoorbeeld een apparaat hebt dat bestanden in datablokken van 1kB inleest, zegt die Class aanduiding dus niet erg veel (een Class 4 kaartje haalt dan namelijk lang geen 4 MB/s). Kan iemand mij hier duidelijkheid over verschaffen? Ik heb de website van de SD Association geraadpleegd maar daar kon ik het antwoord niet vinden.

De onderstaande grafiek is gemaakt met HD Tune Pro. Op de horizontale as zie je de blokgrootte in kB. De kaartlezer die is gebruik is de Transcend Compact SD/MMC Card Reader S5.

Afbeeldingslocatie: http://img214.imageshack.us/img214/8674/transcend4gbclass6.png

[ Voor 8% gewijzigd door LoekVe op 13-01-2011 14:04 ]


  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

Wikipedia: SD-kaart

En volgens mij is het algemeen bekend dat veeeeeel kleine bestanden een veel lagere read/write veroorzaken dan 1 groot bestand?

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Ja, dat is inderdaad bekend. Dat zie je ook terug in de grafiek van de test; als de blokgrootte kleiner dan ongeveer 64 kB wordt, dan neemt de snelheid sterk af.

[ Voor 35% gewijzigd door LoekVe op 13-01-2011 13:02 ]


  • - J.W. -
  • Registratie: September 2005
  • Laatst online: 20:13
"The Speed Class Rating is the official unit of speed measurement for SD Cards, defined by the SD Association. The Class number represents a multiple of 8 Mb/s (1 MB/s), and meets the least sustained write speeds for a card in a fragmented state."

officiele document, klik (zelf niet gelezen overigens)


Ik heb laatst een class 10 gekocht, voor het geld hoef je het niet te laten.. (11 euro voor 8 GB)

[ Voor 17% gewijzigd door - J.W. - op 13-01-2011 14:52 ]


  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

- J.W. - schreef op donderdag 13 januari 2011 @ 14:48:
"The Speed Class Rating is the official unit of speed measurement for SD Cards, defined by the SD Association. The Class number represents a multiple of 8 Mb/s (1 MB/s), and meets the least sustained write speeds for a card in a fragmented state."
Hier zit 'm dus de crux; fragmented is een abstract begrip. De ene persoon vind 2% file fragmentation al veel, de andere persoon pas 90%. Kan me niet voorstellen dat SDHC-kaartjes in blocks van 512bytes wegschrijven waardoor dus de grafiek van loekverhees ietwat "verkeerd" is.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • - J.W. -
  • Registratie: September 2005
  • Laatst online: 20:13
Klopt. Ik neem aan dat het in dat document beter gespecificeerd staat, aangezien "class" een officiele standaard is.

Ik doe wel ff een benchmarkje vanavond met m'n class 10 kaart..

[ Voor 22% gewijzigd door - J.W. - op 13-01-2011 14:59 ]


  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
In dat document staat verder niets over de precieze methode die ze gebruikt hebben. En ook niets over de grootte van de bestanden waarmee ze gemeten hebben. Is het niet zo dat het per (software) applicatie verschilt op welke manier iets van een SD(HC)-kaartje gelezen wordt? Dus dat het ene programma via datablokken van 512 bytes leest en het andere bijvoorbeeld via blokken van 64 kB? Of dat het per kaartlezer verschilt? Als dat inderdaad verschilt dan zegt zo'n Class aanduiding dus niet veel zolang ze er niet bijzetten voor welke bestandgroottes/datablokgroottes die snelheden gelden.

  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
Uit de officiele spec:
The Classes are defined so that AV application, such as MPEG2
recording, can support SD card device.
Gaat dus over min of meer constante stream, niet over kleine bestandjes.
Speed Class shall be defined as SD Bus interface level performance
Gaat dus niet over bestanden of filesystems enzo...

[ Voor 24% gewijzigd door Kompaan op 13-01-2011 16:36 . Reden: tweede quote ]


  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Het gaat dus om een constante stream. Maar hoe definieer je eigenlijk een constante stream? Ik wil zeggen, als je een bestand van 8 MB moet lezen/schrijven heb je ook een constante stream, alleen duurt die bijvoorbeeld maar 8 seconden als je met 1 MB/s schrijft. Een MPEG2 bestand kan een stream van 100 MB zijn bijvoorbeeld. Hoe groot moet een bestand dus zijn wil je van een constante stream spreken?

Dit topic komt eigenlijk voort uit een discussie over de bussnelheid van de interne kaartlezer van een TomTom. Voor de geïnteresseerden, hier kun je de discussie vinden: Discussie over verwerkingssnelheid van SD kaart en TT. Het ging er daar om of het verschil uit kon maken of je een Class 2 kaartje gebruikte of bijvoorbeeld een Class 4 of 6 kaartje. Ik heb toen eens met Process Monitor (van Sysinternals) gekeken hoe het programma TomTom HOME communiceert met de TT zelf. Via Process Monitor kon je zien dat er allemaal datablokken werden ingelezen van allemaal een bepaalde grootte (bijvoorbeeld 512 bytes). Toen vroeg ik me af of die ook echt in die grootte werden ingelezen vanaf de SD-kaart die in de TomTom zat (of dat ze slechts als blokken van 512 bytes werden behandeld nadat ze zijn ingelezen). Dat bracht op zijn beurt weer de discussie op gang over het verschil tussen de verschillende Class aanduidingen van SD-kaartjes. Wat op zijn beurt weer leidde tot dit topic op Tweakers.net.

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-01 18:54

MAX3400

XBL: OctagonQontrol

loekverhees schreef op donderdag 13 januari 2011 @ 17:17:
Een MPEG2 bestand kan een stream van 100 MB zijn bijvoorbeeld. Hoe groot moet een bestand dus zijn wil je van een constante stream spreken?

*knip*
Tja, pak eens een willekeurige digitale camera. Hoe lang maken mensen filmpjes ermee? Ik vergelijk het dan maar ff met Dumpert (geenstijl-site) of YouTube. Een kort/fail-filmpje is meestal 20 tot 30 seconden, daarna vaak akties van een minuut of 2 en dan gaat het al snel naar de 5 minuten.

Dus, als bench zou je 30s, 120s en 300s kunnen bedenken en dus zou je theoretisch files van 180MB, 720MB en 1800MB moeten wegschrijven op class6

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
loekverhees schreef op donderdag 13 januari 2011 @ 17:17:
Het gaat dus om een constante stream. Maar hoe definieer je eigenlijk een constante stream? Ik wil zeggen, als je een bestand van 8 MB moet lezen/schrijven heb je ook een constante stream, alleen duurt die bijvoorbeeld maar 8 seconden als je met 1 MB/s schrijft. Een MPEG2 bestand kan een stream van 100 MB zijn bijvoorbeeld. Hoe groot moet een bestand dus zijn wil je van een constante stream spreken?
Waar het waarschijnlijk om gaat is dat je bestanden groter dan een erase block gaat wegschrijven op een flash medium. Punt is namelijk dat je hele blokken aan het wegschijven bent, en niet inlezen en weer wegschijven.

Zo te zien is dat op jouw kaart 64kB.

  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Klopt het dan dat als er een bestand van 1 MB gelezen wordt, dat dat ook echt als één stuk van 1 MB binnen wordt gehaald en niet in kleine 'datablokken' van bijvoorbeeld 1024 bytes? En dat ik dan ook in de grafiek moet kijken bij 1024 kB en niet bij 1 kB? Ik vroeg me dit af omdat ik in Process Monitor zag dat er een soort blokken werden ingelezen met een grootte van 1 kB (ik neem aan dat de Length de grootte van het bestand in bytes is). Hieronder een voorbeeld van wat Process Monitor aangaf:

Afbeeldingslocatie: http://img6.imageshack.us/img6/7651/procmon.png

  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
loekverhees schreef op vrijdag 14 januari 2011 @ 11:26:
Klopt het dan dat als er een bestand van 1 MB gelezen wordt, dat dat ook echt als één stuk van 1 MB binnen wordt gehaald en niet in kleine 'datablokken' van bijvoorbeeld 1024 bytes?
Nee, het programma maakt zelf uit wat hij wil hebben. dat kan 1k zijn maar ook meer of minder. Heeft nog steeds niet echt me hoe het precies gelezen/geschreven wordt op de SD kaart.

Als een file 1MB groot is, betekend niet meteen dat een programma de hele file wil hebben, misschien wil het programma alleen de header openen ofzo?

  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Dat het programma niet het hele bestand wil hebben is natuurlijk logisch, bedenk ik nu achteraf. Het cline.dat bestand is namelijk enkele honderden MB's groot, en zo te zien leest hij telkens maar een stukje van 1024 bytes van dat bestand. Maar dat zou betekenen dat je in de grafiek wel degelijk bij het balkje van 1 kB moet kijken, toch?

  • Twister336
  • Registratie: Juli 2004
  • Niet online
Je moet voor de Class aanduiding enkel naar de schrijfsnelheid kijken.
Ik heb zelf een hoop tests gedaan met SDHC kaarten en ben tot de conclusie gekomen dat die Class aanduiding geen enkele waarde heeft.
De ene kaart haalt nog niet eens de aangegeven snelheid in ideale omstandigheden (sequentieel met grote blokgroottes) terwijl de andere kaart de aangegeven snelheid ruim overschrijdt.
De Class aanduiding is iets wat de fabrikanten er zelf op kunnen kleven zonder dat dit door een of andere instantie wordt gecontroleerd.

Dus als je wilt weten hoe een kaartje presteert zit er niets anders op dan een test zoals met HD Tune uit te voeren.

  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Dus voor het lezen heb je eigenlijk niets aan de Class aanduiding. Zelfs voor schrijven is het blijkbaar discutabel. Maar die File Length van 1024 in Proces Monitor, wil dat echt zeggen dat de bestanden in blokken van 1 kB worden ingelezen? Dus dat ik dan ook in het grafiekje bij de balk van 1 kB moet kijken?

  • Dj Neo Ziggy
  • Registratie: Januari 2000
  • Laatst online: 20:55
Ik mijn ervaring met mijn Canon D500, heeft dat wel degelijk verschil. Foto's worden veel sneller weg geschreven op een Class 10 kaartje dan een Class 2 kaartje

Wat is hoop? Uitgestelde teleurstelling


  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
loekverhees schreef op maandag 17 januari 2011 @ 08:58:
Dus voor het lezen heb je eigenlijk niets aan de Class aanduiding. Zelfs voor schrijven is het blijkbaar discutabel. Maar die File Length van 1024 in Proces Monitor, wil dat echt zeggen dat de bestanden in blokken van 1 kB worden ingelezen? Dus dat ik dan ook in het grafiekje bij de balk van 1 kB moet kijken?
Nja, het punt is als het programma een hele rij blokjes van opvolgende 1KB stukjes opvraagt, dan het je je OS/filesystem/NCQ/zeg-het-maar die het wel wat efficiënter doet dan 1KB stukjes opvragen bij de controller...

Er zitten gewoon een paar lagen tussen snelheid van het geheugen op de SD kaart zelf en data in een programma op je computer.

Maar zoals in de spec staat, gaat de class spec over video/audio (dus niet over mini bestandjes). sgn. sustained writes. De manier die jij gebruikt, om de snelheid van je TT te testen is opzich prima, alleen niet direct te vergelijken met de Class aanduiding. Om dit te vergelijk moet je andere kaartjes in je TT gaan doen en hetzelfde kaartje in andere cardreaders.

  • Twister336
  • Registratie: Juli 2004
  • Niet online
loekverhees schreef op maandag 17 januari 2011 @ 08:58:
Dus voor het lezen heb je eigenlijk niets aan de Class aanduiding. Zelfs voor schrijven is het blijkbaar discutabel. Maar die File Length van 1024 in Proces Monitor, wil dat echt zeggen dat de bestanden in blokken van 1 kB worden ingelezen? Dus dat ik dan ook in het grafiekje bij de balk van 1 kB moet kijken?
De class aanduiding zegt inderdaad niet veel.
Je moet dan inderdaad naar het grafiekje van 1 KB kijken.

Hier zijn een paar resultaten van mijn SDHC kaartjes:

Afbeeldingslocatie: http://i53.tinypic.com/2nteja0.png
Kingston Class 4

Afbeeldingslocatie: http://i53.tinypic.com/slilnr.png
Apacer Class 6

  • LoekVe
  • Registratie: Januari 2008
  • Laatst online: 23-12-2025
Bedankt voor alle antwoorden zover. Het is me nu wel duidelijk hoe de Class precies gedefinieerd is.
Twister336 schreef op dinsdag 18 januari 2011 @ 22:29:
Hier zijn een paar resultaten van mijn SDHC kaartjes:
Net als in mijn grafiek lijkt er een soort grens te liggen bij 64 kB. Verder is de kaartlezer waarschijnlijk een bottleneck voor de leessnelheid zo te zien. Bedankt voor de grafieken.
Pagina: 1