mikrocontroller.net

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


Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Laszlo H. (mobius)
Datum:

Bewertung
0 lesenswert
nicht 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/ProdManualSDC...

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe!

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

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Richard W. (richi)
Datum:

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

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich meinte ja wenn man immer nur den selben Sektor beschreibt.

Gruß
Richi

Autor: Richard W. (richi)
Datum:

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


Gruß
Richi

Autor: Tom (Gast)
Datum:

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

Manche Fragen beantworten sich sogar komplett ohne Nachdenken selbst?!

Autor: Johannes M. (johannesm)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Richard W. (richi)
Datum:

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

Gruß
Richi

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Richard W. (richi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, Danke für eure Antworten!!


Gruß
Richi

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.