Forum: Compiler & IDEs Bei SD-Karte immer die Selbe Seite beschreiben.


von Richard W. (richi)


Lesenswert?

Hallo

wenn ich Daten auf eine SD-Karte schreibe, kann ich dann immer auf 
dieselben Seiten schreiben? Der Flash kann doch nur 1000x beschrieben 
werden. Doch soweit ich weiß regelt der interne SD-Controller das so, 
dass er die Daten immer wieder an eine andere Stelle schreibt.

Wie oft kann ich dann auf eine Seite was schreiben?
Ist das proportinal zur Speichergröße? (Ich schätze dass dann der 
Controller mehr auswahlmöglichkeiten hat bei den physischen Seiten)

Gruß
Richi

von Laszlo H. (mobius)


Lesenswert?

Das Datenblatt der (einer) SD-Karte hilft bei solchen Fragen weiter. Bei 
Sandisk SDCards (und wahrscheinlich auch bei allen anderen) ist wear 
leveling ein elementarer Bestandteil der Karte (siehe [1] 1.5.5).

Btw, es sind meist 10.000 - 100.000x Zyklen / Sektor ;).

gruß
Mobius

[1]http://www.cs.ucr.edu/~amitra/sdcard/ProdManualSDCardv1.9.pdf

von Richard W. (richi)


Lesenswert?

Danke für deine Hilfe!

Wie meinst du das mit der Formel, die kapier ich nicht so ganz.

von Timmo H. (masterfx)


Lesenswert?

Garantiert werden 10.000-100.000 Schreib/Löschzyklen pro 
Speicherzelle/Sektor/Block wie auch immer, je nach Speichertechnologie. 
In der praxis ist dieser Wert jedoch wesentlich höher (sonst würden die 
Hersteller das ja nicht garantieren). So hat c't z.B. einen USB-Stick 
über 16 Mio. beschrieben ohne irgendwelche Fehler feststellen zu können.
Das Wear-Leveling nicht nicht zwingend Notwendig und wird von den 
billigen China-Produkten bestimmt auch nicht verwendet. Aber du kannst 
dir ein quasi wear leveling selbst bauen indem du einfach darauf 
achtest, dass du eine "Seite" nach der anderen beschreibst und nicht 
ständig auf der gleichen rumhämmerst.

von Richard W. (richi)


Lesenswert?

Also sind es jetzt 100.000 pro einzelne Zelle und Wear Leveling erhöht 
diesen Wert dann noch mal um ein vielfaches?

von Rolf Magnus (Gast)


Lesenswert?

Timmo H. schrieb:
> Das Wear-Leveling nicht nicht zwingend Notwendig und wird von den
> billigen China-Produkten bestimmt auch nicht verwendet.

Es macht die Karte auch u.U. langsamer, weil es "on the fly" die 
Sektoren umsortieren muß.

Richard W. schrieb:
> Also sind es jetzt 100.000 pro einzelne Zelle und Wear Leveling erhöht
> diesen Wert dann noch mal um ein vielfaches?

Wear Leveling erhöht ja eigentlich nicht die mögliche Anzahl an 
Zugriffen auf einen Sektor, sondern verteilt die Zugriffe nur 
gleichmäßiger, damit nicht ein Sektor ständig benutzt wird und dann 
gleich kaputt geht, während die anderen noch fast jungfräulich sind.

von Richard W. (richi)


Lesenswert?

Ja ich meinte ja wenn man immer nur den selben Sektor beschreibt.

Gruß
Richi

von Richard W. (richi)


Lesenswert?

Mir ist gerade noch was eingefallen:
Was ist wenn alle Sektoren schon belegt sind, funktioniert dann Wear 
Leveling auch noch?


Gruß
Richi

von Tom (Gast)


Lesenswert?

>Was ist wenn alle Sektoren schon belegt sind, funktioniert dann Wear
>Leveling auch noch?

Manche Fragen beantworten sich sogar komplett ohne Nachdenken selbst?!

von Johannes M. (johannesm)


Lesenswert?

Richard W. schrieb:
> Mir ist gerade noch was eingefallen:
> Was ist wenn alle Sektoren schon belegt sind, funktioniert dann Wear
> Leveling auch noch?
>
>
> Gruß
> Richi

Was sollte das für einen Sinn machen? Wenn alle Sektoren belegt sind ist 
doch kein Platz etwas auf die SD-Karte zu schreiben. Es sei denn, es 
sollen Daten überschrieben werden.

von Richard W. (richi)


Lesenswert?

Genau, ich meine das überschreiben, bzw. sollte meine Frage anders 
lauten:
Woher weiß die Karte, dass dieser Sektor noch unbenutzt ist?

Gruß
Richi

von Hc Z. (mizch)


Lesenswert?

> Woher weiß die Karte, dass dieser Sektor noch unbenutzt ist?

Sie kann es nicht wissen.  Das würde ja ein bestimmtes Dateisystem 
voraussetzen und die Fähigkeit der Karte, dieses nachzuvollziehen.  Die 
Karte arbeitet über Reservesektoren und das Umschaufeln von wenig 
beschriebenen Sektoren.

Erst neuere SSDs (Flash-Disks) kennen das TRIM-Kommando, mit dem ihnen 
unbenutzte Sektoren mitgeteilt werden.

von Richard W. (richi)


Lesenswert?

OK, Danke für eure Antworten!!


Gruß
Richi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.