Jawaban:
Ada banyak trade-off untuk itu.
Wikipedia juga:
Meskipun ada transistor tambahan, pengurangan kabel ground dan garis bit memungkinkan tata letak yang lebih padat dan kapasitas penyimpanan yang lebih besar per chip. Selain itu, NAND flash biasanya diizinkan mengandung sejumlah kesalahan tertentu (NOR flash, seperti yang digunakan untuk ROM BIOS, diharapkan bebas dari kesalahan). Pabrikan mencoba untuk memaksimalkan jumlah penyimpanan yang dapat digunakan dengan mengecilkan ukuran transistor di bawah ukuran di mana mereka dapat dibuat secara andal, ke ukuran di mana pengurangan lebih lanjut akan meningkatkan jumlah kesalahan lebih cepat daripada meningkatkan total penyimpanan yang tersedia.
Jadi, flash NOR dapat mengatasi lebih mudah, tetapi bahkan tidak sedekat padat.
Jika Anda melihat pada perbandingan PDF yang cukup baik.
NOR memiliki daya siaga yang lebih rendah, mudah untuk eksekusi kode dan memiliki kecepatan baca yang tinggi.
NAND memiliki daya aktif yang jauh lebih rendah (bit menulis lebih cepat dan biaya lebih rendah), kecepatan menulis lebih tinggi (banyak), kapasitas jauh lebih tinggi, biaya per bit jauh lebih rendah dan sangat mudah untuk penggunaan penyimpanan file. karena itu kecepatan baca yang lebih rendah saat menggunakannya untuk eksekusi kode Anda benar-benar perlu untuk membuatnya ram.
Mengutip bagian kecil dengan meja besar di atasnya ...
NAND flash lebih murah, jadi Anda ingin menggunakannya jika Anda bisa. Kekurangannya adalah itu tidak dapat diandalkan. NAND flash lebih cepat di sebagian besar operasi, dengan pengecualian yang penting adalah akses acak kecil dibaca. Jika Anda ingin membaca beberapa byte dari alamat acak di memori, NOR lebih cepat. Untuk memori besar, NAND bekerja dengan cukup baik, dan benar-benar mengalahkan NOR untuk potongan yang cukup besar.
Sebagian besar sistem operasi tertanam menyertakan kode untuk memperbaiki kesalahan di NAND Flash. Ada juga mikrokontroler dengan koreksi kesalahan perangkat keras. Masalah sebenarnya terjadi saat boot - bootloader tingkat pertama tidak memiliki kode koreksi kesalahan, dan mereka belum mengonfigurasi pengontrol memori untuk menjalankan perangkat keras ECC. Ini sedikit masalah ayam-dan-telur - Anda tidak dapat memuat kode ECC tanpa kesalahan karena Anda belum memuat kode ECC.
Untuk mengatasi masalah ini, beberapa produsen memori akan menentukan wilayah chip tertentu yang dijamin bebas kesalahan (4 kB pertama, atau sesuatu seperti itu). Anda meletakkan bootloader dengan perangkat lunak ECC di sana (seperti U-boot ), membacanya tanpa kesalahan, dan kemudian menggunakannya untuk membacakan kernel OS Anda, memperbaiki kesalahan saat Anda melanjutkan. Anda juga dapat menyimpan bootloader dalam flash serial, dan cukup gunakan NAND flash untuk hal-hal besar seperti OS kernel atau sistem file.
Saya menemukan catatan aplikasi Atmel ini berguna: http://www.atmel.com/dyn/resources/prod_documents/doc6255.pdf
NOR memungkinkan akses acak, tetapi NAND tidak (hanya akses halaman.)
Dari Wikipedia :
NOR dan NAND flash mendapatkan nama mereka dari struktur interkoneksi antara sel-sel memori. Dalam NOR flash, sel terhubung secara paralel dengan bitline, memungkinkan sel untuk dibaca dan diprogram secara terpisah. Koneksi paralel sel menyerupai koneksi paralel transistor dalam gerbang CMOS NOR. Dalam NAND flash, sel-sel terhubung secara seri, menyerupai gerbang NAND. Koneksi seri mengkonsumsi lebih sedikit ruang daripada yang paralel, mengurangi biaya flash NAND. Ini tidak dengan sendirinya mencegah sel NAND dari dibaca dan diprogram secara individual.