Benarkah Kartu SD / MMC memang memakai leveling dengan pengontrolnya sendiri?

51

Saya tidak dapat menemukan informasi yang dapat dipercaya tentang hal ini. Saya tidak memiliki spesifikasi lengkap perangkat keras SD / MMC Card.

Apakah itu benar Aplikasi tingkat tinggi saya tidak perlu khawatir dengan perataan keausan saat bekerja dengan kartu-kartu ini?

SUNTING

Bisakah seseorang mengkonfirmasi bahwa leveling aus dijamin oleh spesifikasi SD? Saya ingin memastikan, karena sepertinya sebagian besar vendor melakukannya, tetapi tidak diperlukan oleh spesifikasi.

ivarec
sumber
5
Tidak semua produsen media flash berinvestasi dalam algoritme tingkat pemakaian. Leveling keausan lebih umum di SSD di mana produsen memimpin pasar karena algoritma.
Chetan Bhargava

Jawaban:

43

Saya bekerja untuk perusahaan yang dulunya anggota asosiasi SD, kita kenal dengan spesifikasi 2.0 (SDHC). Spesifikasi kartu SD tidak memiliki entri untuk meratakan keausan. Itu sepenuhnya tergantung pada produsen SD untuk mengatasinya jika mereka memilihnya. Kami telah melihat bahwa beberapa mungkin melakukannya, sementara yang lain sangat tidak (waspada kartu SD knock-off super murah). SDXC mungkin telah mengubah itu untuk memasukkan keausan level, tetapi saya tidak yakin akan hal itu. Sayangnya satu-satunya cara untuk benar-benar menunjukkan itu adalah mendapatkan spec resmi dari Anda. Anda dapat menemukannya secara online, tetapi asosiasi SD benar-benar ingin Anda membayarnya.

Sebagai catatan, mengambil kartu 2GB dan menulisnya mulai berakhir berulang-ulang rata-rata sekitar 10TB sebelum kartu mati dan tidak lagi dapat ditulis. Selain itu, kartu SD tidak akan memberi tahu Anda ketika datanya buruk, yaitu tidak akan mengembalikan kesalahan I / O seperti yang dilakukan hard drive PC. Ini mungkin bukan masalah untuk desain yang disematkan karena 10TB adalah BANYAK data, tetapi itu bisa menjadi faktor bagi seseorang.

Kris Bahnsen
sumber
2
Saya berasumsi bahwa meskipun tidak ada dalam spesifikasi, perusahaan masih ingin melakukannya untuk menjaga reputasi mereka tetap baik. Sementara tiruan super murah tidak peduli dengan reputasi, mereka menjual kepada orang-orang yang terlihat murahan dalam segala hal. Apakah ini masuk akal?
Kellenjb
1
@Kellenjb Ini adalah asumsi yang sangat masuk akal, dan saya pribadi akan setuju dengan Anda. Namun, karena tidak ada dalam spesifikasi, dan sangat tidak mungkin untuk mendapatkan akses ke desain pengontrol SD pabrikan tertentu, itu tidak dapat benar-benar terbukti. Kami telah melakukan banyak pengujian selama bertahun-tahun, beberapa merek besar berkinerja jauh lebih baik daripada yang lain. Bisa jadi ada perbedaan dalam algoritma internal atau sama sekali tidak ada.
Kris Bahnsen
4
Tiruan murah tidak akan peduli bahkan jika itu dalam spesifikasi. Itu tidak segera terlihat oleh pelanggan, itu BISA hilang. Kita berbicara tentang orang-orang yang menjual colokan timah sebagai IC. Saya belum pernah mendengar kartu nama-merek yang tidak memakai leveling, tapi saya kira itu mungkin.
darron
@ KrisBahnsen dapatkah Anda menguraikan apa yang sebenarnya dikembalikan oleh kartu SD ketika ada kesalahan yang tidak dapat dipulihkan? Saya sangat tertarik dengan ini. Apakah tidak ada cara sama sekali dalam mendeteksi kondisi ini?
fred basset
3
@ Fredbasset, cara untuk zombie utas;) Sudah lama sejak saya melakukan pekerjaan kartu SD. Namun, kartu SD IIRC sendiri secara fisik akan mengembalikan apa pun yang mereka inginkan. Beberapa yang lebih baru yang dikombinasikan dengan driver yang layak mungkin dapat mendeteksi kesalahan IO. Namun mungkin kartu SD lama hanya akan mengembalikan data buruk yang disimpan di NAND dan menyebutnya baik. Meskipun, jika penulisan tidak dapat diselesaikan, itu akan mengembalikan kesalahan IO.
Kris Bahnsen
23

Itu benar! Kartu MicroSD berisi chip flash NAND yang diikat ke mikrokontroler (ARM) yang dikemas dalam plastik hitam. http://www.bunniestudios.com/blog/?p=898 menjelaskan.

Pada akhir posting tindak lanjut, http://www.bunniestudios.com/blog/?p=918, pos Bunnie yang mengintegrasikan pengontrol mungkin lebih murah daripada menguji flash sebelumnya.

Mengutip manual produk kartu SD SanDisk: "1.9 Level Wear. Levelling wear adalah bagian intrinsik dari fungsi pooling penghapusan SD Card, menggunakan memori NAND." Anda dapat membaca semuanya di lembar data untuk kartu merek SanDisk .

joeforker
sumber
1
Bunnie Huang pasti cukup kredibel untukku!
vicatcu
Itu bagus untuk diketahui, tetapi saya akan menunggu seseorang yang dapat mencerahkan pertanyaan ini berdasarkan spesifikasi formal dari teknologi ini.
ivarec
2
Digikey menunjukkan kepada saya brosur SanDisk yang tidak berguna ini ketika saya mencoba mencari datasheet. The Wintec dan Swissbit lembar data yang lebih baik, dan keduanya disebutkan keawetan. Bisakah Anda menautkan ke lembar data yang dihosting di Digikey?
Kevin Vermeer
Itu jauh lebih baik daripada SanDisk lama.
joeforker
Wintec tidak hebat, tetapi SanDisk yang baru adalah yang terbaik dari kelompok itu! Terima kasih atas hasil editnya.
Kevin Vermeer
19

Ya, kartu SD / MMC memiliki pengontrol yang melakukan leveling keausan. Jika tidak, Anda dapat menghancurkannya dalam hitungan menit dengan pola tulis yang salah.

Itu sebenarnya masalah untuk beberapa proyek tertanam. Sama sekali tidak ada cara (tampaknya) untuk mengetahui sektor apa yang mungkin dipakai rata setiap saat, sehingga siklus daya pada waktu yang salah dapat menghancurkan data di mana saja pada kartu, di mana pun Anda BERPIKIR sedang menulis. (jangan tanya bagaimana saya tahu :))

Kartu SD harus digunakan dengan sistem yang menjamin shutdown sistem yang bersih (atau setidaknya penulisan yang diizinkan untuk diselesaikan), atau kehilangan data akan (akhirnya) terjadi.

SUNTING

Masalahnya adalah bahwa proses meratakan keausan sepenuhnya tersembunyi. Setiap sektor pada disk dapat dipindahkan kapan saja (ditukar dengan halaman yang ditulis), dan jika daya gagal di tengah proses itu sektor acak bisa rusak.

Meskipun ada cara yang cukup aman untuk menerapkan langkah ini, itu tidak dalam spesifikasi apa pun sehingga Anda tidak dapat percaya bahwa kartu akan melakukannya. Anda dapat menguji satu kartu, membuatnya berfungsi, lalu pabrikan dapat mengubah implementasinya tanpa mengubah nomor bagian dan Anda kacau.

Dari pengujian, pengontrol kartu SD saya TIDAK melakukan ini dengan cara yang aman sama sekali.

Saya mungkin melihat kartu SD "keandalan tinggi" yang saya lihat diiklankan khusus untuk toleransi kegagalan daya ... tetapi kemudian Anda harus memercayai pabrikan untuk melakukan itu dengan benar, dan saya tidak. Saya benar-benar ingin kontrol langsung atas penghapusan halaman. Saya masih mencoba mencari yang satu ini.

Darron
sumber
4
Lihat jawaban saya yang diposting. Karena algoritme leveling keausan terserah pabrikan, mereka mungkin tidak siap. Algoritma leveling wear yang baik akan memindahkan data terlebih dahulu, kemudian menandai data itu baik, kemudian sampah mengumpulkan data asli. Ini mungkin masalah pada beberapa kartu, mungkin bukan yang lain. SD adalah desain yang sangat jelek ketika Anda sampai di bagian bawahnya.
Kris Bahnsen
2
Ya, itu standar omong kosong sejauh yang saya ketahui. Sangat menyebalkan bahwa standar penyimpanan memori yang ada di mana-mana akan secara inheren tidak dapat diandalkan.
darron
2
@ jpc: Mungkin saya akan melakukan entri blog. Saya mendapat kesan itu tidak sering dianggap. Saya sendiri tidak menyadari implikasinya sampai semuanya terlambat. Saya berjuang dengan ini, berbicara dengan produsen kartu SD saya, dll. Tidak ada solusi selain untuk meminimalkan waktu menulis. Sekarang saya menulis ke NAND flash, dan menyalin ke SD sekali sehari secepat mungkin. ADA kartu SD yang dirancang untuk "tahan" terhadap kegagalan daya acak, tetapi saya tidak yakin bahkan ini sepenuhnya dapat dipercaya.
darron
2
@fred basset Anehnya, spesifikasi pada kartu industri tampaknya telah berubah sejak jawaban ini ditulis. Saya telah melihat kartu microSD dengan jaminan pada menulis (journal, saya pikir) ... sekarang, mereka tidak membuat klaim seperti itu. Berbicara dengan pabrikan, mereka menggunakan supercaps sekarang ... tetapi hanya kartu flash ringkas yang memiliki ruang untuk mereka. Melakukan banyak hal dengan aman mengurangi kinerja terlalu banyak. Mereka mengatakan entah bagaimana menyediakan daya cadangan yang cukup untuk menyelesaikan penulisan. Mengingat betapa rumitnya ARM SBC modern ... sangat sulit dilakukan jika desain referensi vendor tidak melakukannya. Tidak ada yang saya tahu lakukan.
darron
2
@freq basset Saya menggunakan UBI & UBIFS. Tampaknya berfungsi dengan baik ... Saya sudah memiliki banyak sistem yang berjalan selama bertahun-tahun sekarang tanpa masalah.
darron
12

Semua jenis kartu SD yang menggunakan semua jenis memori flash NAND konvensional harus menggunakan beberapa jenis virtualisasi sektor, karena tidak ada perangkat flash NAND konvensional yang dapat mendukung penghapusan masing-masing sektor 512-byte, dan tidak ada perangkat flash NAND konvensional berukuran besar. akan dapat menghasilkan kinerja yang berada dalam urutan besarnya bahkan dapat diterima secara marginal jika setiap upaya untuk menulis suatu sektor mengharuskan perangkat untuk menyalin semua sektor dalam blok hapus sektor tersebut (bahkan ke RAM), kemudian menghapus blok dan menulis semua sektor kembali. Sebagian besar teknik virtualisasi sektor secara inheren agak meratakan pemakaian. Saya berharap masalah terbesar dari perbedaan antara kualitas perangkat dan tiruan adalah sejauh mana perangkat secara aktif mencoba untuk meratakan leveling antar blok, dibandingkan hanya menggunakan alokasi blok pseudo-acak dan berharap bahwa akan menghasilkan hasil yang mendekati seragam. Dalam praktiknya, saya berharap bahwa alokasi acak / harapan-untuk-yang-terbaik pun akan memadai dalam kebanyakan kasus.

supercat
sumber
Sangat mungkin bahwa "wear leveling" yang diterapkan beberapa pabrikan disebabkan oleh antarmuka NAND itu sendiri dan blok ke sektor / sektor untuk memblokir virtualisasi.
Kris Bahnsen
1
@ KrisBahnsen: Saya berharap bahwa produsen yang mengklaim perataan keausan akan secara aktif memantau keausan relatif dari berbagai blok dan usia data di dalamnya, dan jika blok dengan data berumur panjang ditemukan dalam blok dengan keausan yang jauh lebih sedikit daripada rata-rata, data dari blok-blok itu akan dipindahkan ke blok yang memiliki lebih banyak keausan (sehingga, kemungkinan besar, meminimalkan keausan di blok-blok itu). Hal ini dapat meningkat dengan faktor 10 masa manfaat perangkat yang 95% diisi dengan data yang tidak pernah berubah, sedangkan 5% ruang sisanya sering diaduk.
supercat
Saya setuju, jika mereka mengiklankannya, saya bayangkan mereka akan melakukan semacam level-wear nyata. Saya agak negatif pada seluruh subjek yang saya minta maaf; Saya telah digigit beberapa kali oleh kebiasaan SD.
Kris Bahnsen
1
@ KrisBahnsen: Masalah terbesar yang saya pikir adalah model virtualisasi yang mengasumsikan sekelompok linier sektor byte-byte 512-nomor. Mungkin nyaman untuk berinteraksi dengan DOS, tetapi tidak benar-benar cocok dengan perangkat keras yang ada, atau dengan apa yang benar-benar diinginkan oleh perangkat lunak host. Buka nomor blok hingga 64 bit dan biarkan angka-angka tersebut menjadi non-berturut-turut, dan kemudian atur agar file selalu disimpan dalam blok logis-berturut-turut. Untuk menghapus file, hapus rentang bloknya.
supercat
2
Ini mungkin jawaban terbaik. Saya menduga ini adalah cara mereka melakukannya. Jika Anda memikirkannya, tidak ada cara untuk melakukan leveling keausan deterministik dengan segala jenis algoritma yang benar-benar canggih karena riwayat keausan itu sendiri harus disimpan di suatu tempat pada kartu yang sama dan bagian itu akan gagal terlebih dahulu. Leveling acak adalah satu-satunya kemungkinan praktis. Saya tidak yakin SSD lebih pintar. Mereka mungkin hanya memiliki lebih banyak buffer pengganti, meskipun tentu saja kemungkinan mereka menyimpan informasi pemakaian yang sangat kasar (dan karenanya jarang diperbarui).
Nimrod
7

Sandisk memiliki kertas putih yang menjelaskan logika pemakaian level di kartu mereka, dan selanjutnya memberikan perkiraan umur kartu di bawah sejumlah skenario. Ringkasan eksekutif: kecuali jika Anda menggedor kartu tanpa henti, itu akan bertahan beberapa dekade.

Michael Slade
sumber
Tautan sudah mati dan kontennya tampaknya telah dihapus - karena terlalu banyak mengungkapkan, mungkin?
Cuadue
6
@Cuadue Tautan ini dapat diakses. Kalau-kalau rusak, halaman sekarang diarsipkan di web.archive.org/web/20150326122100/http://ugweb.cs.ualberta.ca/…
Lekensteyn
2

Sangat menarik untuk dicatat bahwa meskipun ini banyak perangkat melakukan SD dan kartu microSD rusak terutama yang kepadatan tinggi jika baterai rendah atau ponsel crash / dimatikan / dll. Saya menduga bahwa masalah adalah peraturan yang tidak memadai dari pasokan tegangan karena ini dikenal pada beberapa kartu (batuk Ad t / batuk) untuk menghasilkan fenomena kartu terbaca pada pembaca eksternal tertentu tetapi bekerja dengan baik di berbagai mikro yang disediakan oleh beberapa toko komputer.

Saya sedang dalam proses memulihkan kartu saat ini dengan kesalahan ini, anehnya sebagian besar data dapat dipulihkan tetapi beberapa sektor tidak meskipun perubahan ini pada setiap upaya. Mungkinkah keausan leveling itu sendiri salah? (ya coba beberapa pembaca, kesalahan yang sama!)

Teka-teki
sumber
0

Juga memiliki beberapa kartu zombie "nuking" yang berhasil, yaitu kartu yang tidak akan menyelesaikan format atau hanya-baca. Hanya bekerja pada persentase kecil tetapi mereka jauh lebih sensitif daripada kebanyakan pedoman "resmi" untuk efek tersebut.

Kartu tes yang dirawat bertahan empat bulan penuh sebelum gagal lagi, jika bukan karena perangkat itu digunakan dalam memasok tegangan berisik seumur hidup mungkin lebih lama.

Conundrum5642Z
sumber
1
Maksud Anda dengan "nuking" berarti Anda memasukkannya ke dalam microwave? Berapa watt dan berapa lama?
0x6d64
Eh, tidak :-) Juga mengapa melakukan itu ketika pancaran cahaya (RF) akan memiliki efek yang sama dan jauh lebih tidak berbahaya daripada metode yang saya gunakan? Ternyata kartu uSD jauh lebih sensitif karena kurangnya casing logam di satu sisi.
Conundrum5642Z
Saya tidak dapat mengonfirmasi atau menyangkal bahwa nuking merujuk pada penggunaan "gadget" 5642 + HVPS untuk alasan hukum. Namun itu berhasil berulang kali, dan teknik ini sekarang dikenal sebagai saya menerbitkannya di HaD dll.
Conundrum