dapatkah saya menulis ke halaman yang ditulis sebelumnya, jika saya menghindari area yang sudah ditulis?
Jika saya mengerti hal. 16 dari lembar data dengan benar, dikatakan: Dengan chip khusus ini, Anda tidak boleh menulis ke halaman yang ditulis sebelumnya, bahkan jika Anda menghindari area yang sudah ditulis.
detail
The SST25VF064C chip flash memori datasheet pada p. 16 mengatakan "Halaman-Program instruksi program hingga 256 byte data di memori. Alamat halaman yang dipilih harus dalam keadaan terhapus (FFH) sebelum memulai operasi Page-Program."
Karena itu saya berasumsi bahwa "Seluruh halaman yang dipilih harus dalam keadaan terhapus (setiap byte pada halaman FFh) sebelum memulai operasi Page-Program." Apakah SST atau Microchip merilis dokumentasi yang mengklarifikasi kalimat yang mendua yang membingungkan ini?
Dalam pengalaman saya, produsen semua chip flash MLC dan beberapa chip flash SLC baru mengamanatkan bahwa begitu sebuah halaman telah ditulis, halaman tersebut harus dihapus sebelum halaman itu ditulis lagi, bahkan jika Anda hanya ingin mengubah 1 bit menjadi sebuah 0 bit. (Ini disebut "aturan menulis-sekali" dalam artikel YAFFS .)
Dalam pengalaman saya, semua chip flash yang lebih lama memungkinkan Anda untuk mengubah 1 bit menjadi 0 bit tanpa siklus hapus, bahkan jika bit itu ada di halaman atau bahkan byte yang sudah memiliki bit lain yang diprogram ke nol - a halaman flash dapat diprogram beberapa kali antara hapus. (Ini disebut "multiple-write" dalam artikel YAFFS).
Lembar data pabrikan adalah janji bersyarat yang dibuat pabrikan kepada Anda. Selama Anda mengikuti semua rekomendasi lembar data, pabrikan berjanji bahwa chip akan beroperasi seperti yang ditentukan. Saya menduga bahwa jika Anda memprogram halaman yang ditulis sebelumnya, menghindari area yang sudah ditulis, ada peluang bagus daripada pembacaan langsung yang mungkin memberikan data yang Anda harapkan - byte yang baru ditulis adalah nilai yang baru saja Anda tulis, dan byte lainnya kemungkinan tidak berubah. Namun, karena ini tidak mengikuti rekomendasi lembar data, Anda tidak bisa lagi mengandalkan semua janji di lembar data. Saya mendengar desas-desus bahwa aktivitas tanpa sanksi tersebut menyebabkan waktu retensi data dan daya tahan untuk menderita, karena gangguan program, pemrograman berlebihan, perangkap biaya, efek yang mirip dengan palu baris DRAM , dll.
"Skema penggunaan memori memengaruhi laju kesalahan bit. Pemrograman halaman-parsial, pemrograman halaman non-sekuensial dalam blok, pembacaan berlebihan per blok tanpa menghapus serta jumlah operasi pembacaan yang tidak sama dalam satu blok meningkatkan jumlah pembacaan gangguan kesalahan. " - Michal Jedrak.
"NAND Flash memory dalam embedded system".
"Gangguan program terjadi ketika sedikit diprogram secara tidak sengaja dari" 1 "ke" 0 "selama acara pemrograman halaman. Kesalahan bit ini dapat terjadi baik pada halaman yang diprogram atau pada halaman lain di blok. Kondisi tegangan bias dalam blok selama pemrograman halaman dapat menyebabkan sejumlah kecil arus ke terowongan ke sel memori terdekat. Upaya pemrograman halaman parsial berulang akan terus memperparah kondisi ini. " - Douglas Sheldon dan Michael Freie.
"Ganggu Pengujian dalam Memori Flash" . hal. 8, 9.
"Gangguan program terjadi ketika sedikit diprogram secara tidak sengaja (1 hingga 0) selama operasi pemrograman. ... Kondisi ini diperburuk oleh pemrograman acak dalam blok dan dengan menerapkan beberapa penulisan parsial ke halaman."
"Mitigasi kegagalan flash NAND Yaffs"