Nand Flash iPhone - apakah ralat ini dan cara membetulkannya? Pengaturcaraan NAND FLASH

2017-05-25 Tarikh terakhir diubah suai: 2018-10-10

Artikel berkenaan dengan: Ciri-ciri penggunaan litar mikro NAND KILAT, kaedah reka letak halaman dan pengurusan blok yang buruk. Cadangan untuk pengaturcaraan pada pengaturcara.

KANDUNGAN:

1. TEORI

1.1. Perbezaan antara cip NAND FLASH dan cip konvensional

Jika anda tidak menyelidiki selok-belok teknologi, maka perbezaan antara litar mikro NAND daripada cip memori lain adalah seperti berikut:

  • Litar mikro NAND mempunyai sangat isipadu yang besar.
  • Litar mikro NAND boleh dapat blok buruk (buruk)..
  • Saiz Halaman rekod bukan kuasa 2 .
  • Menulis pada cip mikro dijalankan hanya halaman , memadam - sekurang-kurangnya dalam blok .

Terdapat beberapa perbezaan lain, tetapi dua yang pertama adalah yang utama. Menyebabkan paling banyak masalah kehadiran blok buruk.

1.2. Organisasi cip NAND FLASH

Ketahui lebih lanjut tentang organisasi dan struktur litar mikro NAND boleh dibaca dalam kesusasteraan khusus, tetapi kami ambil perhatian bahawa:

  • Litar mikro NAND dianjurkan dalam muka surat (muka surat), muka surat dalam blok (bloks), menyekat masuk modul logik (bulan).
  • Saiz Halaman NAND bukan gandaan kuasa 2.
  • Halaman terdiri daripada asas Dan ganti (ganti) kawasan-kawasan.

Seperti yang dimaksudkan oleh pemaju NAND Vkawasan teras mesti jumpa data itu sendiri, A di kawasan simpanan (rizab). - penanda blok buruk, jumlah semak kawasan utama, lain-lain maklumat perkhidmatan.

Jika mereka bercakap tentang saiz halaman Cip NAND 512 bait atau 2K bait, kemudian kita bercakap O saiz kawasan utama muka surat, tidak termasuk ganti.

1.3. Cara Menggunakan Kawasan Ganti Halaman

Mari kita ingat sekali lagi bahawa, mengikut hasrat pembangun cip NAND di kawasan lapang sepatutnya terletak: penanda blok buruk, jumlah semak kawasan data utama, lain maklumat perkhidmatan.

Kebanyakan pembangun menerangkan sahaja lokasi penanda blok buruk dalam litar mikro yang dibekalkan. Untuk aspek lain penggunaan kawasan ganti diberikan cadangan am dan algoritma untuk mengira ECC, biasanya mengikut Haming. Samsung melangkah lebih jauh dengan cadangan yang dipanggil " Kawasan ganti memori kilat NAND. Standard Destinasi "("Kawasan Ganti Denyar NAND. Standard Tugasan", 27. April. 2005, Bahagian Memori, Samsung Electronics Co., Ltd).

Jadi standard ini adalah kegunaan seterusnya kawasan ganti:

Untuk litar mikro dengan saiz halaman 2048+64 bait t kawasan utama dan ganti halaman dibahagikan kepada 4 serpihan (sektor) setiap satu:

WilayahSaiz (bait)Serpihan
Utama512 Sektor 1
512 Sektor 2
512 Sektor 3
512 Sektor 4
ganti16 Sektor 1
16 Sektor 2
16 Sektor 3
16 Sektor 4

Setiap serpihan kawasan utama mereka adalah sejajar serpihan kawasan ganti.

Penggunaan kawasan ganti (untuk setiap empat bahagian)
untuk cip dengan saiz halaman 2048 + 64 bait:
berat sebelah
(bait)
Saiz
(bait)
TujuanPenerangan
Penanda blok buruk
terpelihara
Nombor sektor logik
Dikhaskan untuk nombor sektor
terpelihara
Kod ECC untuk kawasan utama halaman
Kod ECC untuk nombor sektor logik
terpelihara

Tetapi ini bukan satu-satunya "standard" untuk peruntukan memori halaman, hanya kita yang tahu beberapa dozen daripadanya, sebagai contoh:

  • "Pengurusan NAND FLASH di bawah WinCE 5.0 ", NXP;
  • "Pengurusan Blok Buruk untuk NAND Flash menggunakan NX2LP ", 15 Disember 2006, Semikonduktor Cypress;
  • "Pengurusan Blok Buruk OLPC NAND ", OLPC.

1.4. Imej NAND dan imej binari

Anda mungkin menghadapi dua pilihan imej untuk dirakam:

  1. binari tidak rosak ke halaman dan tiada kawasan ganti.
    Pilihan ini boleh dilakukan jika anda seorang pembangun peranti yang menggunakan NAND atau menerima fail sedemikian daripada pembangun. Imej sedemikian sesuai untuk menulis kepada cip dengan halaman dalam sebarang saiz dan apa-apa pengedaran kawasan ganti, anda hanya perlu tahu kaedah apa kawasan ganti itu akan dibentuk.
  2. Imej dibaca daripada cip lain (sampel) yang mengandungi kawasan ganti dengan tanda blok buruk, maklumat perkhidmatan dan kod kawalan.
    Imej sedemikian boleh ditulis sahaja ke dalam litar mikro sama betul saiznya muka surat dan blok.

Pakar-pakar yang terlibat dalam pembaikan pelbagai peralatan lebih berkemungkinan menghadapi kes kedua. Dalam kes sedemikian, selalunya sukar untuk menentukan kaedah peruntukan kawasan ganti yang digunakan dan kaedah pengurusan blok buruk yang digunakan.

1.5. Penandaan kilang blok buruk

Satu-satunya perkara yang lebih atau kurang standard adalah penandaan kilang blok buruk.

  • Blok buruk ditanda pada halaman ke-0 atau ke-1 untuk cip dengan saiz halaman kurang daripada 4K.
  • Untuk 4K muka surat dan banyak lagi, penandaan mungkin dihidupkan muka surat terakhir blok.
  • saya sendiri penanda blok buruk terletak di kawasan ganti halaman pada bait 5 untuk halaman kecil (512 bait) dan bait 0 untuk halaman besar (2K).
  • Penanda blok buruk mungkin penting 0x00 atau 0xF0 untuk halaman kecil Dan 0x00 untuk lebih X.
  • blok yang baik sentiasa dilabel 0xFF.
  • Walau apa pun, nilai selain daripada 0xFF pengaturcara menganggap sebagai penanda blok buruk.
  • Biasanya, dalam moden NAND blok buruk diisi sepenuhnya dengan nilai 0x00.

Terdapat satu masalah: blok buruk boleh dipadamkan. Dengan cara ini, anda boleh kehilangan maklumat tentang blok buruk litar mikro.

Walau bagaimanapun, jika litar mikro telah berfungsi dalam peranti, kaedah menandakan blok buruk ini tidak selalu digunakan. Kadangkala maklumat tentang blok buruk tidak disimpan dalam memori NAND. Tetapi, selalunya, walaupun pemaju perisian peranti menggunakan skim pengurusan blok buruk yang berbeza, memilih untuk tidak memadamkan penanda kilang.

1.6. Pengurusan blok yang buruk

pemaju NAND litar mikro mencadangkan menggunakan skim kawalan blok buruk berikut:

  • lulus blok buruk
  • Penggunaan ganti kawasan-kawasan

Juga, kaedah untuk menguruskan blok buruk kadangkala termasuk penggunaan pembetulan kesilapan(ECC). Perlu diingatkan bahawa penggunaan pembetulan ralat tunggal tidak menghapuskan berbilang ralat dan masih memaksa salah satu daripada skema di atas untuk digunakan. Selain itu, kebanyakan NAND litar mikro mempunyai kawasan selamat gagal yang dijamin di mana blok buruk tidak muncul. Kawasan selamat-gagal biasanya terletak pada permulaan cip.

Kaedah menguruskan blok buruk ini diterangkan dengan baik dalam dokumentasi teknikal pengilang NAND dan dibincangkan secara meluas dalam literatur tentang penggunaan NAND. Walau bagaimanapun, mari kita ingat secara ringkas intipati mereka:

Langkau blok buruk:
Jika blok semasa buruk, ia dilangkau dan maklumat ditulis ke blok percuma seterusnya. Skim ini adalah universal, mudah untuk dilaksanakan, tetapi agak bermasalah untuk kes di mana blok buruk muncul semasa operasi. Untuk kerja penuh skim ini, nombor logik blok mesti disimpan di dalam blok (standard untuk menetapkan kawasan ganti dari Samsung, sebenarnya, inilah yang diandaikan). Apabila bekerja mengikut skema ini, pengawal mesti menyimpan di suatu tempat jadual surat-menyurat nombor blok logik mereka nombor fizikal Jika tidak, akses memori akan menjadi sangat perlahan.

Oleh itu, pembangunan logik adalah skema penggunaan kawasan ganti:
Mengikut kaedah ini, keseluruhan jumlah memori dibahagikan kepada dua bahagian: utama dan sandaran. Apabila blok buruk muncul dalam memori utama, ia digantikan dengan blok daripada memori ganti, dan entri yang sepadan dibuat dalam jadual pemetaan semula blok. Jadual pemetaan semula disimpan sama ada dalam blok failsafe yang dijamin atau dalam beberapa keadaan. Format jadual adalah berbeza, ia disimpan dalam tempat berbeza. Sekali lagi, Samsung menerangkan standard untuk format dan susun atur jadual, tetapi hanya sedikit orang yang mengikutinya.

2. AMALAN

2.1. Mengimbas blok NAND yang buruk

pengaturcara ChipStar membolehkan anda mengimbas cip dengan cepat NAND untuk kehadiran blok buruk mengikut penandaan kilang blok buruk.

Pilih item menu " Cip|Cari blok buruk ", cip akan diperiksa untuk blok buruk. Hasilnya ditunjukkan dalam jadual.

Tindakan ini hanya perlu jika anda hanya mahu melihat senarai blok buruk. Dalam semua kes lain, carian untuk blok buruk dilakukan secara automatik apabila perlu.

2.2. Blok buruk dalam imej NAND

Apabila membaca imej cip NAND, pengaturcara juga menyimpan maklumat tentang saiz halaman dan blok cip. Maklumat disimpan dalam fail berasingan. Jadi jika anda membaca dan menyimpan imej litar mikro dalam fail <имя_файла>.nbin program akan mencipta fail lain: <имя_файла>.rujuk . Apabila membuka fail <имя_файла>.nbin fail <имя_файла>.rujuk akan dikira juga. Dalam fail <имя_файла>.rujuk maklumat tentang saiz halaman dan blok cip direkodkan. Selepas membaca cip atau membuka fail seperti .nbin , imbasan latar belakang imej untuk blok buruk dilakukan berdasarkan maklumat saiz halaman dan blok.

Pilihan NAND dan maklumat tentang blok buruk boleh dilihat dalam tab " NAND"Editor pengaturcara:

imej binari NAND boleh dilihat di bawah ingatan utama ":

Dalam mod editor NAND kawasan ganti halaman diserlahkan warna lebih kusam, butang untuk bergerak melalui halaman, blok dan peralihan pantas ke permulaan kawasan ganti muka surat ini. Dalam baris status editor, sebagai tambahan kepada alamat kursor, ia juga dipaparkan mukasurat Dan nombor blok di mana kursor berada. Semua ini membolehkan anda melihat kandungan cip dengan lebih mudah.

2.3 Padamkan NAND

Pengaturcara lalai tidak memadam blok buruk, tetapi jika anda mematikan pilihan " Menyemak dan melangkau blok buruk " blok buruk mungkin dipadamkan dan penanda blok buruk mungkin hilang. Lumpuhkan pilihan ini hanya jika perlu.

Hanya blok buruk yang ditanda mengikut tanda kilang dilangkau. Jika peranti menggunakan tanda blok lain yang buruk, ia akan dipadamkan kerana perisian pengaturcara tidak akan melihatnya. Untuk bekerja dengan penanda blok buruk yang tidak standard, pengaturcara boleh menggunakan pemalam luaran.

2.4. Menguji litar mikro untuk ketiadaan rekod

Secara lalai, pengaturcara mengabaikan semua blok buruk semasa menyemak, tetapi jika anda melumpuhkan " Mengimbas dan melangkau blok buruk " blok buruk akan diperiksa yang secara semula jadi akan membawa kepada ralat ujian.

2.5. Menulis imej siap ke cip

Rakaman imej NAND dalam litar mikro agak berbeza daripada biasa KILAT cip mikro. Pertama sekali, mereka mesti sepadan saiz halaman imej dan cip sasaran. Jika pengurusan blok buruk digunakan, mesti sepadan saiz blok imej dan cip mikro.

Perisian untuk semua pengaturcara ChipStar menyokong tiga kaedah untuk menguruskan blok buruk alatan terbina dalam dan nombor tanpa had menggunakan pemalam. Di samping itu, anda boleh menetapkan bilangan blok boleh tulis pada permulaan cip, yang sebenarnya keempat cara untuk menguruskan blok buruk.

Kaedah 1: Abaikan Blok Buruk

Menyalin mudah, mengabaikan blok buruk (blok buruk ditulis dengan cara yang sama seperti yang biasa).

imej asal Cip
(keadaan awal)
Cip
(hasil)
Blok 0
baik
Sekat
bersih
Blok 0
baik
Blok 1
teruk
Sekat
bersih
Blok 1
salah
Blok 2
baik
Sekat
bersih
Blok 2
baik
Blok 3
baik
Sekat
teruk
Blok 3
rosak
Blok 4
baik
Sekat
bersih
Blok 4
baik
Sempadan rakaman
Blok 5
baik
Sekat
bersih
Sekat
bersih

Paling sesuai untuk menyalin cip NAND tanpa mendalaminya struktur dalaman, dengan syarat bahawa cip yang akan ditulis tidak mengandungi blok buruk . Jika dalam gambar asal blok buruk hadir , akhirnya terbentuk blok buruk palsu . Kemunculan blok buruk palsu tidak akan menjejaskan operasi peranti. Walau bagaimanapun, jika cip sudah mengandungi blok buruk, apabila anda cuba menulis kepada cip sedemikian, blok buruk dengan akibat yang tidak dapat diramalkan. Petua: anda boleh cuba memadamkan cip sepenuhnya, termasuk blok buruk, kemudian menyalinnya. Jika menulis ke blok buruk berjaya (ini sering berlaku), peranti anda akan berfungsi dengan betul, pada masa hadapan, perisian peranti akan mengenal pasti blok buruk dan menggantikannya dengan yang baik mengikut algoritma operasinya.

Kaedah 2: memintas blok buruk

imej asal Cip
(keadaan awal)
Cip
(hasil)
Blok 0
baik
Sekat
bersih
Blok 0
baik
Blok 1
teruk
Sekat
bersih
Sekat
bersih
Blok 2
baik
Sekat
bersih
Blok 2
baik
Blok 3
baik
Sekat
teruk
Sekat
teruk
Blok 4
baik
Sekat
bersih
Blok 4
baik
Sempadan rakaman
Blok 5
baik
Sekat
bersih
Sekat
bersih

Melepasi blok buruk tiada blok buruk ditulis daripada imej asal Dan maklumat tidak ditulis pada blok buruk litar mikro. Ini bukan dasar penyalinan terbaik, tetapi ia selamat daripada blok cip yang buruk: tiada maklumat yang hilang tentang blok cip buruk dan tiada blok buruk palsu muncul. Dalam sesetengah kes, dasar penyalinan sedemikian boleh membantu memulihkan kefungsian peranti yang tidak diketahui.

Kaedah 3: Langkau Blok Buruk

imej asal Cip
(keadaan awal)
Cip
(hasil)
Blok 0
baik
Sekat
bersih
Blok 0
baik
Blok 1
teruk

Sekat
bersih
Blok 2
baik
Blok 2
baik
Sekat
bersih
Blok 3
baik
Blok 3
baik
Sekat
teruk
Sekat
teruk
Blok 4
baik
Sekat
bersih
Blok 4
baik
Sempadan rakaman
Blok 5
baik
Sekat
bersih
Sekat
bersih

Rakaman melangkau blok buruk mengandaikan bahawa peranti hanya menggunakan algoritma pengurusan blok yang buruk, dan bukan algoritma lain. Di bawah syarat ini, penyalinan maklumat yang betul adalah dijamin.

Kaedah 4: Tulis Hanya Kawasan Selamat yang Dijamin

imej asal Cip
(keadaan awal)
Cip
(hasil)
Blok 0
baik
Sekat
bersih
Blok 0
baik
Blok 2
baik
Sekat
bersih
Blok 1
baik
Sempadan rakaman
Sekat
teruk
Sekat
bersih
Sekat
bersih
Blok 3
baik
Sekat
teruk
Sekat
teruk
Blok 4
baik
Sekat
bersih
Sekat
bersih
Blok 5
baik

Sekat
bersih

Sekat
bersih

Dalam kebanyakan moden NAND litar mikro, blok pertama (sekurang-kurangnya satu) dijamin tidak mengalami kegagalan. Dalam banyak peranti, kod pemuat but terletak pada permulaan cip dan sistem operasi peranti. Selalunya cukup untuk menyalin kawasan ini sahaja.

Tentukan saiz yang dirakam dalam blok dalam dialog tetapan mod rakaman.

Cara Lain untuk Mengurus Blok Buruk

Perisian pengaturcara ChipStar menyokong sebarang algoritma pengurusan blok yang buruk NAND menggunakan pemalam luaran. Di hadapan pemalam yang dipasang penerangan kaedah tambahan muncul dalam senarai Mengurus Blok NAND Buruk ". Anda boleh mengkonfigurasi parameter kaedah yang dipilih dengan mengklik " Pemalam luaran ".

Menggunakan Kod Pembetulan Ralat (ECC)

Penggunaan kod pembetulan ralat membolehkan memulihkan ralat tunggal pada halaman NAND.

Pelbagai algoritma boleh digunakan untuk memulihkan ralat tunggal dalam sektor. Bergantung kepada algoritma ECC, boleh dipulihkan jumlah yang berbeza ralat setiap sektor (512+16 bait). di bawah istilah " bujang "faham kesilapan hanya dalam satu bit data. Untuk NAND dengan saiz halaman 512 + 16 bait, konsep " sektor" Dan " muka surat" padankan. Untuk NAND dengan saiz besar halaman, pengaturcara ChipStar menggunakan skema paging sektor seperti yang diterangkan dalam . Dalam tetapan rakaman atau pengesahan, anda boleh menentukan bilangan ralat setiap sektor yang boleh dibetulkan oleh algoritma yang digunakan dalam peranti anda. Sehubungan itu, litar mikro dengan bilangan ralat yang boleh diterima tidak akan ditolak, maklumat tentang bilangan ralat boleh diperbetulkan dipaparkan dalam tetingkap statistik:

Maklumat tentang bilangan ralat yang dibenarkan bagi setiap sektor untuk setiap cip tertentu boleh didapati dalam dokumentasi kepada cip mikro. Semua cip NAND yang baru ditambah dimasukkan ke dalam pangkalan data pengaturcara, dengan mengambil kira bilangan ralat yang dibenarkan.

Dengan menambah sendiri cip mikro:

  • Jika disokong oleh ONFI, maka bilangan ralat yang dibenarkan bagi setiap sektor membaca daripada jadual parameter cip dan dipasang kepada nilai yang betul.
  • jika cip tidak menyokong ONFI, pengguna hendaklah menetapkan nilai itu sendiri menggunakan dokumentasi untuk cip.

Untuk cip baru NAND pengeluaran Samsung nilai bilangan ralat yang dibenarkan bagi setiap sektor dikodkan sebagai sebahagian daripada pengecam cip. Oleh itu, untuk cip tersebut, bilangan ralat yang dibenarkan bagi setiap sektor juga akan ditetapkan dengan betul.

Apabila membaca kandungan litar mikro untuk tujuan penyimpanan atau penyalinan selanjutnya, ralat tunggal tidak dapat dikesan dengan pasti. Imej yang terhasil kemudiannya boleh dianalisis secara berasingan untuk ralat dengan mengira kod semakan ECC. aplikasi luaran, dengan syarat betul-betul algoritma yang digunakan dan penanda halaman diketahui .

Perisian pengaturcara ChipStar menawarkan perisian tidak langsung kaedah statistik pengesanan dan penghapusan ralat tunggal. Kaedahnya hanya mendedahkan tidak stabil kesilapan dengan tidak dijamin kredibiliti. Untuk melaksanakan pembacaan dengan pengesanan ralat, anda perlu memilih " Bacaan terpilih" dan pada tab "NAND" tandakan kotak " Dayakan Mod Pembetulan Ralat"

Anda boleh menetapkan bilangan percubaan baca semula untuk dibandingkan dan jumlah bilangan percubaan baca semula apabila ralat. Perlu diingat bahawa penggunaan kaedah ini makhluk itu memperlahankan proses membaca.

Algoritma pengesanan ralat statistik berfungsi seperti berikut:

  1. Halaman NAND dibaca beberapa kali berturut-turut (sekurang-kurangnya tiga).
  2. Data baca dibandingkan bait demi bait.
  3. Jika tiada ralat perbandingan ditemui, halaman tersebut dianggap bebas ralat.
  4. Jika ralat ditemui semasa perbandingan, halaman dibaca beberapa kali lagi.
  5. Bagi setiap ralat, bilangan bacaan unit Dan sifar.
  6. Nilai yang betul ("0" atau "1") dipertimbangkan, yang ternyata lebih banyak.

Algoritma berfungsi dengan baik jika kebarangkalian ralat dalam bit tertentu litar mikro adalah kurang daripada 0.5. Apabila membaca litar mikro, ralat "diperbetulkan" dan kebarangkalian bacaan yang betul dikira.

2.6. Tukar Imej Binari kepada Imej NAND

Semua yang diterangkan di atas lebih kepada penyalinan NAND dan rekod mengikut corak cip, bagaimanapun, ia sering diperlukan tulis imej binari asal program ke dalam cip bersih. Sebelum menulis, anda perlu menukar imej binari kepada imej NAND dengan menambah pada setiap halaman kawasan ganti dan isikan dengan betul. Untuk melakukan ini, buka anda fail binari, pilih item menu " ". Dialog akan muncul:

Tetapkan mod penukaran kepada format NAND: " Imej binari... ", nyatakan halaman dan saiz blok NAND, atau pilih cip yang diperlukan. Pilih format kawasan ganti. Pengaturcara menyokong pengisian mudah kawasan dengan nilai FF dengan alat terbina dalam dan kaedah lain menggunakan pemalam. Pemalam yang melaksanakan tugasan kawasan ganti yang disyorkan oleh Samsung dibekalkan bersama pengaturcara.

Jika anda perlu melaksanakan mana-mana pilihan pengedaran lain - beritahu kami dan kami akan menyediakan pemalam yang sesuai, atau anda boleh melaksanakan pemalam yang diperlukan sendiri.

2.7. Keserasian dengan imej NAND yang dibaca oleh pengaturcara lain

jika anda mempunyai imej NAND, dibaca oleh pengaturcara lain atau diperoleh daripada sumber lain, ia mestilah menukar ke dalam format yang boleh ditulis Pengaturcara ChipStar.

Untuk melakukan ini, ikuti langkah berikut:

  • Buka fail anda, pilih item menu " Edit|Togol mod editor NAND ". Dialog akan muncul seperti yang ditunjukkan di atas.
  • Tetapkan mod penukaran kepada format NAND: "Imej itu sudah menjadi NAND ... ", nyatakan saiz halaman Dan blok NAND atau pilih cip yang diperlukan. klik " teruskan".
  • Tab akan muncul dalam editor NAND " dan imej akan mula mengimbas blok buruk.
  • Fail yang terhasil boleh disimpan sebagai NAND, fail akan mendapat sambungan .nbin lalai.

Hai semua! Baru hari lepas saya jumpa kawan lama saya. Kami mula bercakap, dan dia, dengan perkataan "Lihat telefon apa yang saya gunakan sekarang!", Menunjukkan telefon lamanya butang tekan Nokia. Ternyata firmware pada iPhonenya mula sentiasa "terbang" - dia terpaksa memberikan telefon pintar itu Pusat servis. Ia kelihatan seperti perkara biasa...

Bagaimanapun, bagi seorang rakan, senarai kerja yang akan dijalankan oleh perkhidmatan itu ternyata luar biasa. Diagnostik lengkap, kemas kini perisian (jika perlu) dan "perkara biasa" lain - semuanya adalah standard dan jelas di sini. Persoalan utama adalah disebabkan oleh frasa tuan seperti itu - "kemungkinan besar, perlu berguling kilat nand».

Sudah tentu, saya tidak menunjukkan dalam perkhidmatan bahawa saya tidak faham tentang apa itu - mereka berkata, saya sudah tahu segala-galanya tanpa anda. Anda adalah perkara utama - lakukannya. Tetapi dia pulang ke rumah dan segera mula "google" - apa itu semua, Nand Flash? Dan pada buah ara untuk menggulungnya di suatu tempat di dalam iPhone?

Kami ketawa dengannya, berpisah, dan saya fikir - mengapa tidak menulis nota ringkas mengenai topik ini? Ia tidak akan mengambil banyak masa, dan orang yang menghadapi masalah yang sama seperti rakan saya akan menjadi lebih jelas apa yang berlaku dengan telefon pintar mereka. Fikir - lakukan. Pergi! :)

Apakah Nand Flash dalam iPhone?

ini ingatan dalaman peranti. Ya, ya, perkara yang sangat dan yang sering kurang pemilik iPhone untuk 16 GB.

Secara kasarnya, Nand Flash dalam iPhone 7 32 GB adalah memori dalaman 32 GB yang sama.

Memori terletak di bahagian utama papan sistem peranti dan tidak menonjol dengan apa-apa yang luar biasa - cip yang paling biasa.

Sememangnya, ini bukan pemacu kilat sama sekali - anda tidak boleh membuka iPhone, mudah untuk memutuskan sambungan Nand Flash, masukkan satu lagi dan fikir semuanya akan "OK". Tidak akan. Walaupun, perlu disebutkan bahawa dalam beberapa kes ia masih mungkin. Tetapi lebih lanjut tentang itu sedikit lebih jauh. Dan semasa kita menghadapi masalah...

Punca kerosakan

Tidak banyak pilihan, dan semuanya, sebagai peraturan, "standard":

  1. Jatuh peranti.
  2. Kerosakan fizikal lain.
  3. Kemasukan cecair.
  4. Perkahwinan.
  5. Jailbreak.

Tiada apa-apa yang istimewa untuk dilukis di sini - jelas bahawa jika peranti itu dibuang dan diisi dengan air, ini akan menjejaskan prestasinya.

Walaupun, saya masih akan perhatikan secara berasingan item seperti perkahwinan kilang - ini juga sangat mungkin. Saya menyaksikan situasi yang sama - iPhone baru dibeli, tetapi ia tidak berfungsi dengan betul - ia but semula, menunjukkan ralat semasa pemulihan, dan secara amnya berkelakuan pelik. Dihantar ke perkhidmatan, sebagai hasilnya - perkahwinan Nand Memori kilat dan penggantian peranti seterusnya.

Gejala Memori Flash iPhone

Kerosakan ini tidak mempunyai sebarang gejala yang jelas dan pasti (prasasti tidak muncul pada skrin - peranti anda mempunyai masalah ingatan), jadi semua ini boleh diteka hanya dengan tanda tidak langsung:


Bercakap tentang pepijat...

Ralat iTunes Menunjukkan Nand Flash Bersalah

Paling cara yang betul menangani pelbagai masalah dalam pengendalian peranti. Walau bagaimanapun, jika iPhone mempunyai masalah dengan memori Nand Flash, maka proses pemulihan mungkin terganggu dan disertai dengan ralat biasa berikut:


Tetapi, adalah penting untuk diingati ini - iTunes direka bentuk sedemikian rupa sehingga nombor ralat yang sama boleh mempunyai beberapa sebab.

Sebagai contoh, ralat 4013 boleh menandakan kedua-dua masalah dengan litar mikro itu sendiri dan penggunaan wayar yang tidak asli untuk menyambung ke PC.

Seperti yang anda lihat, hamparannya sangat besar - daripada wayar mudah kepada pembaikan yang sangat kompleks. Oleh itu, adalah mungkin untuk menggunakan senarai ralat ini untuk analisis awal keadaan, tetapi adalah mustahil untuk mempercayai secara membuta tuli.

Pembaikan memori Nand Flash - adakah mungkin?

Mungkin. Tetapi, sudah tentu, bukan "di rumah." Selain itu, tidak semua pusat servis dapat melakukan operasi ini. Sebagai contoh, "dalam khemah di pasar" mereka kemungkinan besar tidak akan dapat membantu anda - tidak akan ada peralatan yang diperlukan. Ya, dan kemahiran, sejenisnya, sepatutnya.

Sekali lagi, saya akan ambil perhatian secara berasingan - jika iPhone anda belum habis tempoh jaminan(), maka anda tidak perlu mencipta apa-apa - . Dengan tahap kebarangkalian yang tinggi, anda akan menerima peranti baharu sebagai balasan.

Jika dengan "span" jaminan dan pembaikan memori Nand Flash masih diperlukan, maka pusat servis mempunyai dua pilihan untuk membetulkan keadaan:


Dengan cara ini, jika kita bercakap tentang peralatan untuk firmware Nand Flash, maka pengaturcara sedemikian agak pelbagai, tetapi satu perkara masih menyatukan mereka - harga. Mereka semua berdiri wang yang layak Tidak semua orang mampu membeli barang sedemikian.

Apakah kesimpulan yang boleh dibuat daripada semua ini? Masalah dengan Memori iPhone- Ini adalah kerosakan yang agak serius, yang sangat sukar untuk diperbaiki sendiri. Tetapi keadaan juga tidak putus asa. Perkara utama ialah mencari pusat perkhidmatan yang baik dengan pakar yang cekap dan peralatan yang diperlukan. Dan kemudian iPhone lagi akan menggembirakan anda dengan kerjanya untuk masa yang lama!

P.S. Ya, nota ringkas tidak berjaya :) Walau bagaimanapun, apa itu, iaitu - jangan padamkannya sekarang. Ya, dan maklumat itu berguna - seseorang akan berguna. Adakah anda bersetuju? Letakkan suka, klik pada butang rangkaian sosial- sokong penulis! Dia cuba, jujur. Terima kasih!

P.S.S. Ada soalan yang tinggal? Ada sesuatu untuk ditambahkan pada artikel atau ingin menceritakan kisah anda sendiri? Terdapat ulasan untuk ini - jangan ragu untuk menulis!

Untuk kerja yang berjaya dengan litar mikro NAND FLASH(nand flash) anda memerlukan sekurang-kurangnya:

    Mempunyai idea tentang struktur NAND FLASH (nand flash), kaedah sedia ada dan algoritma untuk menggunakan maklumat yang disimpan dalam ingatan tersebut.

    Mempunyai pengaturcara yang menyokong dengan betul bekerja dengan memori NAND Flash i.e. membolehkan anda memilih dan melaksanakan parameter dan algoritma pemprosesan yang diperlukan.

Pengaturcara NAND FLASH mestilah sangat pantas. Pengaturcaraan atau membaca litar mikro dengan volum beberapa Gbps pada pengaturcara konvensional mengambil masa beberapa jam. Jelas sekali, untuk lebih kurang pengaturcaraan biasa NAND Flash, anda memerlukan pengaturcara pantas khusus yang disesuaikan untuk bekerja dengan ms. ketumpatan tinggi. Sehingga kini, pengaturcara Flash NAND terpantas ialah ChipProg-481.

Memprogramkan NAND FLASH pada pengaturcara ChipProg

Apabila bekerja dengan NAND Flash, pengaturcara menyediakan pelbagai pilihan untuk memilih/mengonfigurasi kaedah dan parameter pengaturcaraan. Semua parameter yang mempengaruhi algoritma operasi pengaturcara dengan litar mikro dipaparkan dalam tetingkap "Editor parameter litar mikro dan algoritma pengaturcaraan". Jika perlu, mana-mana parameter ini boleh diubah supaya tindakan yang dipilih (pengaturcaraan, perbandingan, membaca, memadam) dilakukan mengikut algoritma pengguna yang diperlukan pengaturcara.

Tetingkap "Editor parameter litar mikro dan algoritma pengaturcaraan" dalam antara muka pengaturcara apabila memprogramkan NAND Flash.

Sebilangan besar parameter boleh disesuaikan yang membentuk algoritma kerja pengaturcara NAND Flash didorong oleh keinginan untuk menyediakan alat universal, membolehkan pengguna menyedari sepenuhnya semua ciri yang wujud dalam struktur NAND Flash. Untuk menjadikan hidup lebih mudah, pengaturcara ChipProg-481 menyediakan pilihan berikut apabila memilih mana-mana cip NAND Flash:

  • Semua parameter mengambil nilai yang ditentukan dalam sesi pengaturcaraan sebelumnya (sesi) NAND Flash yang dipilih. (bilangan sesi yang disimpan adalah tidak terhad).
  • Semua parameter mengambil nilai yang ditentukan untuk NAND Flash ini dalam "projek" (bilangan "projek" tidak terhad)
  • Semua parameter secara automatik mengambil nilai yang diperlukan selepas menjalankan "skrip". "Skrip" ditulis dalam bahasa yang serupa yang dibina ke dalam cangkerang pengaturcara C.
  • Semua (atau selektif) parameter menerima nilai lalai.
  • Nilai semua parameter tersedia untuk diedit GUI pengaturcara.

Pertimbangkan mod dan parameter pengaturcaraan yang dilaksanakan dalam pengaturcara.

Mod pengaturcaraan.

  1. Pengurusan Blok Tidak Sah
  2. Penggunaan Kawasan Ganti
  3. Kawasan Pepejal Pengawal
  4. Ciri Pengesahan Bertolak ansur
  5. Pilihan Petunjuk Blok Tidak Sah

1. Berurusan dengan blok buruk.

Sebelum memprogramkan NAND Flash, anda boleh / perlu memilih salah satu cara untuk bekerja dengan blok buruk.

2. Menggunakan Kawasan Ganti.

Jangan guna

Kawasan Ganti tidak digunakan dalam cip. Halaman memori diprogramkan dalam litar mikro tanpa mengambil kira Kawasan Ganti.

Data pengguna

Kawasan Ganti digunakan sebagai ingatan pengguna. Dalam kes ini, apabila memprogramkan litar mikro, maklumat daripada penimbal diletakkan dahulu di halaman utama litar mikro, dan kemudian di Kawasan Ganti tambahan. Dalam kes ini, penimbal pengaturcara kelihatan seperti aliran berterusan halaman utama litar mikro dan Kawasan Ganti berlabuh padanya.

Data Pengguna dengan Maklumat IB Dipaksa

Kawasan Ganti ditafsirkan sama dengan kes sebelumnya, kecuali penanda blok buruk ditulis sebagai ganti maklumat pengguna.

3. Kawasan Pepejal Pengawal

Mod penggunaan kawasan khas tiada blok buruk. Biasanya, kawasan tersebut digunakan sebagai pemuat but untuk mikropemproses. Di kawasan ini, penggunaan blok buruk tidak boleh diterima.
Pilihan ini digunakan bersama dengan parameter:

  • Kawasan Pepejal - Blok Mula - blok awal kawasan tanpa blok buruk.
  • - bilangan blok di kawasan ini.

Jika dalam julat yang ditetapkan kawasan pepejal jika blok buruk ditemui, pengaturcara akan memberikan ralat.

4. Tidak sensitif terhadap ralat perbandingan.

Pilihan ini membolehkan anda menghidupkan mod ketidakpekaan terhadap ralat perbandingan.
Biasanya masuk akal untuk menggunakan pilihan ini jika peranti pengguna menggunakan algoritma kawalan ralat dan pembetulan (ECC). Dalam kes ini, bilangan ralat tertentu dibenarkan untuk saiz tatasusunan data tertentu. Parameter ini ditunjukkan dalam parameter algoritma pengaturcaraan NAND Flash:

  • Saiz Bingkai ECC (bait) - saiz tatasusunan data.
  • Bilangan ralat yang boleh diterima - bilangan ralat satu bit yang dibenarkan.

5. Pilihan Petunjuk Blok Tidak Sah.

Pilihan ini memilih maklumat yang digunakan sebagai penanda blok buruk. Sama ada 00h atau 0F0h boleh dipilih.

  • Nilai Petunjuk IB~ 00 atau F0

Pilihan pengaturcaraan.

  1. kawasan pengguna
  2. kawasan pepejal
  3. Kawasan RBA
  4. Saiz bingkai ECC
  5. Bilangan ralat yang boleh diterima

a.Kawasan pengguna.

Kawasan pengguna ialah kawasan cip yang digunakan oleh prosedur Program, Baca dan Bandingkan.
Prosedur Padam dan Kebersihan berfungsi dengan keseluruhan tatasusunan cip.

Pengguna perlu menetapkan parameter:

  • Kawasan Pengguna - Blok Mula - blok awal kawasan pengguna.
  • Kawasan Pengguna - Bilangan Blok - bilangan blok dalam kawasan pengguna.

b. Kawasan tanpa ralat.

Parameter mod Kawasan Pepejal Pengawal.

  • Kawasan Pepejal - Blok Mula - blok awal kawasan tanpa blok buruk.
  • Luas Pepejal - Bilangan Blok - bilangan blok di kawasan ini.

c. Kawasan penempatan RBA.

  • Kawasan RBA - Blok Mula - blok awal jadual RBA.
  • Kawasan RBA - Bilangan Blok - bilangan blok dalam jadual RBA.

d.Saiz bingkai ECC .

  • Saiz Bingkai ECC- parameter yang menentukan saiz tatasusunan data, di mana ralat satu bit dibenarkan.

e. Bilangan ralat yang dibenarkan.

  • Bilangan ralat yang boleh diterima - parameter mentakrifkan bilangan ralat satu bit yang dibenarkan dalam tatasusunan, saiznya ditentukan oleh parameter saiz Bingkai ECC.

Peta blok buruk

Peta blok buruk dibuat dalam sublapisan Peta Blok Tidak Sah. Peta blok diwakili sebagai tatasusunan bit yang bersebelahan. Blok yang baik diwakili oleh 0, blok buruk dengan 1.

Sebagai contoh, nilai 02h pada alamat sifar menunjukkan bahawa 0,2,3,4,5,6,7 blok adalah baik, blok pertama adalah buruk. Nilai 01h pada alamat pertama menunjukkan bahawa hanya blok ke-8 adalah buruk daripada kumpulan blok 8..15.

Salin NAND Flash

Sebagai ilustrasi tentang kepentingan pilihan mod dan parameter "rabun" semasa memprogramkan NAND Flash dalam pengaturcara, pertimbangkan situasi di mana sesetengah pengaturcara menghadapi masalah. Selalunya, ini adalah pengganti NAND Flash dalam "peranti" yang telah berhenti berfungsi. Pendekatan Standard- dengan analogi dengan menggantikan cip memori konvensional:

  1. Dapatkan perisian tegar litar mikro yang berfungsi. Sebagai peraturan, kandungan cip asal dibaca untuk ini.
  2. Flash cip serupa baharu.
  3. Bandingkan kandungan ms yang telah diprogramkan. dengan perisian tegar asal. Jika perbandingan lulus, litar mikro adalah salinan sedia.

Dalam kes apabila ia diperlukan untuk memprogramkan NAND Flash, tidak semuanya begitu mudah dan tidak jelas.

  1. Firmware Nand Flash, yang diperoleh dengan membaca pengaturcara daripada "asal" - sangat bergantung pada mod dan parameter yang ditetapkan dalam pengaturcara.
  2. Untuk memprogramkan dengan betul NAND Flash dan dapatkan salinan penuh, adalah perlu untuk menetapkan mod dan parameter yang sepadan dengan firmware "asal" dalam pengaturcara sebelum pengaturcaraan. Dalam kes ini, adalah perlu untuk mengambil kira kemungkinan kewujudan blok buruk.

Untuk mendapatkan cip salinan, di mana perisian tegar NAND Flash adalah sama dengan sampel, anda mesti meneruskan seperti berikut.

Bersedia untuk menyalin.

Untuk menyalin, cip asal dan cip salinan (ms. Di mana imej asal sepatutnya ditulis) diperlukan. Keperluan wajib:

  1. Kedua-dua cip NAND Flash dan asal serta salinan mestilah daripada jenis yang sama.
  2. Cip salinan mestilah tidak mempunyai blok yang buruk.

Untuk menentukan sama ada cip salinan mempunyai blok buruk, anda perlu memasang cip dalam pengaturcara, dan dalam tetingkap "Editor Parameter Cip", tetapkan parameter cip lalai - butang "Semua Lalai".

Prosedur kawalan pemadaman bermula (untuk menjimatkan masa, anda boleh segera membatalkan prosedur ini, membaca peta blok buruk dijalankan pada awal-awal lagi). Dalam tetingkap "Pengaturcaraan" antara muka pengaturcara, dalam medan "Maklumat tentang operasi", maklumat tentang blok buruk muncul.


Salinan.

Sebelum menyalin cip NAND Flash dalam pengaturcara, tetapan parameter berikut mesti dibuat dalam tetingkap "Editor parameter cip":

Pengurusan Blok(IB) tidak sah

Jangan guna

Penggunaan Kawasan Ganti

Data pengguna

Kawasan Pengguna - Bilangan Blok

Nilai maksimum blok dalam cip

Sampel NAND Flash dipasang dalam pengaturcara dan dibaca. Kemudian cip salinan dipasang dalam pengaturcara, dipadamkan, direkodkan dan dibandingkan. Jika ketiga-tiga prosedur berjaya diselesaikan, NAND Flash yang diprogramkan ternyata salinan lengkap asal.

Struktur memori NAND Flash.

Memori Flash NAND * dibahagikan kepada blok (Blok) memori, yang seterusnya dibahagikan kepada halaman (Halaman). Halaman adalah besar (halaman besar) dan kecil (halaman kecil). Saiz halaman bergantung kepada saiz keseluruhan litar mikro. Halaman kecil biasanya dicirikan oleh cip antara 128Kbps hingga 512Kbps. Cip dengan saiz halaman yang besar mempunyai volum 256Kbps hingga 32Gbps dan lebih tinggi. Saiz halaman kecil ialah 512 bait untuk cip dengan organisasi bait dan 256 perkataan untuk cip dengan organisasi perkataan bas data. Halaman besar mempunyai saiz 2048 bait untuk cip bait dan 1024 untuk bait perkataan. DALAM Kebelakangan ini terdapat cip dengan saiz halaman yang lebih besar. Ia sudah 4096 bait untuk cip bait.

Struktur memori litar mikro NAND Flash dengan saiz halaman kecil daripada STMicroelectronics.

Struktur memori cip STMicroelectronics dengan saiz halaman yang besar.

Blok Denyar NAND Buruk

Ciri ciri cip NAND Flash ialah kehadiran blok buruk (cacat) (Blok buruk) dalam kedua-dua cip baharu dan penampilan blok tersebut semasa operasi. Untuk menandakan blok buruk, serta untuk menyimpan maklumat perkhidmatan tambahan atau kod pembetulan, seni bina NAND Flash menyediakan kawasan Ganti tambahan sebagai tambahan kepada setiap halaman memori data. Untuk cip halaman kecil, kawasan ini ialah 16 bait / 8 perkataan. Untuk litar mikro dengan halaman besar- 64 bait / 32 perkataan.

Biasanya, pengeluar cip menjamin bilangan blok buruk tidak melebihi saiz tertentu. Maklumat blok buruk disediakan oleh pengeluar cip di lokasi tertentu di Kawasan Ganti.

Menanda blok buruk masuk Cip NAND Flash dicapai dengan menulis, biasanya, nilai 0 ke alamat tertentu dalam Kawasan Ganti halaman sifar blok buruk. Penanda blok buruk sudah masuk alamat tertentu Kawasan Ganti.

Organisasi ingatan

Alamat penanda blok buruk di Kawasan Ganti

Organisasi bait, saiz halaman - 512 bait.

Organisasi perkataan, saiz halaman - 256 perkataan.

Organisasi bait, saiz halaman - 2048 bait dan banyak lagi.

Organisasi perkataan, saiz halaman - 1024 perkataan dan banyak lagi.

Perlu diingat bahawa penanda blok buruk diletakkan dalam sel memori Flash Kawasan Ganti biasa, yang dipadamkan apabila keseluruhan blok memori dipadamkan. Oleh itu, untuk menyimpan maklumat tentang blok buruk sebelum memadam, adalah perlu untuk menyimpan maklumat ini, dan selepas memadamkannya, memulihkannya.
Dalam pengaturcara ChipProg, apabila memasang pilihan InvalidBlockManagement kepada sebarang nilai selain daripada Jangan guna menyimpan dan memulihkan maklumat tentang blok buruk berlaku secara automatik.

Terdapat tiga cara paling biasa untuk mengendalikan blok buruk:

  1. Langkau Blok Buruk(Melangkau blok buruk . )
  2. kawasan blok simpanan(Sekat tempahan)
  3. Semakan Ralat dan Pembetulan(Pemantauan dan pembetulan ralat . )

1. Langkau blok buruk.

Algoritma untuk melangkau blok buruk ialah apabila menulis ke litar mikro, ia menganalisis blok yang sedang ditulis. Jika terdapat blok buruk, blok tidak ditulis, blok buruk dilangkau, dan blok ditulis ke blok seterusnya selepas blok buruk.

2. Sekat tempahan.

Dalam kaedah ini, memori keseluruhan mikrocip dibahagikan kepada tiga kawasan: Kawasan Blok Pengguna (UBA) - kawasan pengguna, Takungan Blok - kawasan simpanan serta-merta mengikut kawasan pengguna, dan jadual surat-menyurat blok buruk kepada yang baik (Terpelihara Kawasan Blok - RBA).

Algoritma untuk menggantikan blok buruk dalam kaedah ini adalah seperti berikut: apabila blok buruk dikesan dari kawasan UBA, blok itu dipindahkan ke kawasan Takungan Blok, dan kemasukan penggantian blok yang sepadan dibuat dalam jadual RBA.

Format jadual RBA:

2 bait RBA mengandungi dua jadual dalam dua blok. Jadual di blok kedua digunakan sebagai sandaran sekiranya maklumat dalam blok pertama ternyata tidak boleh dipercayai.

3. Kawalan ralat dan pembetulan.

Algoritma Ralat Semak dan Pembetulan (ECC) boleh digunakan untuk meningkatkan kebolehpercayaan data. ini Maklumat tambahan boleh diletakkan di ruang kosong Kawasan ganti.

*) Nota: NAND~ tidak DAN - dalam matematik Boolean menandakan penafian "DAN"