Nand Flash iPhone - koje su to pogreške i kako ih popraviti? Programiranje NAND FLASH

2017-05-25 Datum zadnje izmjene: 2018-10-10

U članku se govori o: Značajke korištenja mikro krugova NAND BLJESAK,tehnike za izgled stranice i upravljanje lošim blokovima. Preporuke za programiranje pomoću programatora.

SADRŽAJ:

1. TEORIJA

1.1. Razlika između NAND FLASH čipova i konvencionalnih čipova

Ako ne uđete u zamršenost tehnologije, razlika između mikro krugova NAND od drugih memorijskih čipova je kako slijedi:

  • Mikrosklopovi NAND imati vrlo veliki volumen.
  • Mikrosklopovi NAND svibanj imati loši (loši) blokovi.
  • Veličina stranice zapisa nije potencija broja 2 .
  • Zapisivanje na čip provedeno samo stranice , brisanje - barem u blokovima .

Postoji još nekoliko razlika, ali prve dvije značajke su ključne. Uzrokuje najviše problema prisutnost loših blokova.

1.2. Organizacija NAND FLASH čipova

Više detalja o organizaciji i strukturi mikro krugova NAND može se pročitati u stručnoj literaturi, ali napominjemo da:

  • Mikrosklopovi NAND organiziran u stranice (stranice), stranice u blokovi (blokovi), blokira u logički moduli (lun).
  • Veličina stranice NAND nije višekratnik 2.
  • Stranica se sastoji od osnovni I rezervni (rezervni) regije.

Prema programerima NAND Vsredišnje područje mora se nalaziti sami podaci, A u rezervnom (rezervnom) prostoru - markeri loših blokova, kontrolni zbrojevi glavno područje, ostalo zaštićene informacije.

Ako govore o veličina stranice NAND čipovi 512 bajt ili 2K bajt, dakle govorimo o O veličina glavnog područja stranica, isključujući rezervni.

1.3. Načini korištenja rezervnog područja stranice

Još jednom vas podsjetimo da prema programerima NAND čipova u rezervnom prostoru treba nalazi se: markeri loših blokova, kontrolni zbrojevi glavno područje podataka, drugo servisne informacije.

Većina programera samo opisuje mjesto markeri loših blokova u isporučenim mikro krugovima. Za ostale aspekte korištenja slobodnog prostora, dano opće preporuke i algoritam za izračunavanje ECC, obično prema Hamingu. Samsung ide malo dalje, razvijajući preporuke pod nazivom " Rezervno područje NAND flash memorije. Standard namjene "("NAND Flash Spare Area. Assignment Standard", 27. travnja 2005., Odjel memorije, Samsung Electronics Co., Ltd).

Dakle, ovaj standard pretpostavlja sljedeća uporaba slobodno područje:

Za čipove s veličinom stranice od 2048+64 bajta t glavno i rezervno područje stranice podijeljeno je u po 4 fragmenta (sektora):

RegijaVeličina (bajt)Fragment
Glavni512 Sektor 1
512 Sektor 2
512 Sektor 3
512 Sektor 4
Rezervni16 Sektor 1
16 Sektor 2
16 Sektor 3
16 Sektor 4

Svaki fragment njihovo glavno područje je usklađeno fragment rezervnog područja.

Korištenje rezervnog područja (za svaki od četiri fragmenta)
za čipove s veličinom stranice od 2048+64 bajta:
Pristranost
(bajt)
Veličina
(bajt)
SvrhaOpis
Marker loš blok
Rezervirano
Logički broj sektora
Rezervirano za broj sektora
Rezervirano
ECC kod za područje glavne stranice
ECC kod za logički broj sektora
Rezervirano

Ali to nije jedini "standard" za dodjelu memorije stranica; samo ih znamo nekoliko desetaka, na primjer:

  • "NAND FLASH upravljanje pod WinCE 5.0 ", NXP;
  • "Upravljanje lošim blokovima za NAND Flash pomoću NX2LP “, 15. prosinca 2006., Cypress Semiconductor;
  • "Upravljanje lošim blokovima OLPC NAND ", OLPC.

1.4. NAND slika i binarna slika

Možete naići dvije mogućnosti slika za snimanje:

  1. Binarna datoteka nije slomljena na stranice i bez rezervnog prostora.
    Ova je opcija moguća ako ste programer uređaja koji upotrebljava NAND ili primio takvu datoteku od programera. Ova je slika prikladna za pisanje u mikrosklopove sa stranicama bilo koje veličine i bilo kojom raspodjelom rezervnog područja, samo trebate znati na koji način će se formirati rezervno područje.
  2. Slika očitana iz drugog mikrosklopa (uzorak), koja sadrži rezervno područje s oznakama loših blokova, servisnim informacijama i kontrolnim kodovima.
    Ova slika se može napisati samo u čip sa potpuno istih dimenzija stranice i blokovi.

Oni stručnjaci koji popravljaju različitu opremu često se susreću s drugim slučajem. U takvom slučaju često je teško odrediti korištenu metodu dodjele rezervnog područja i korištenu metodu upravljanja lošim blokovima.

1.5. Tvorničko označavanje loših blokova

Jedino što je koliko-toliko standardizirano jest tvorničko označavanje loših blokova.

  • Loši blokovi su označeni na 0. ili 1. stranica za čipove s veličinom stranice manjom od 4K.
  • Za 4K stranice i više, oznaka može biti uključena zadnja stranica blokirati.
  • Sebi marker lošeg bloka nalazi se u rezervnom dijelu stranice u 5. bajtu za male stranice (512 bajtova) i u 0. bajtu za velike stranice (2K).
  • Marker lošeg bloka može biti bitno 0x00 ili 0xF0 za male stranice I 0x00 za više X.
  • Lijepi blokovi uvijek označena 0xFF.
  • U svakom slučaju značenje razlikuje se od 0xFF programer doživljava kao marker lošeg bloka.
  • U pravilu, u modernom NAND loš blok je potpuno ispunjen vrijednošću 0x00.

Postoji jedan problem: loš blok se može izbrisati. Na taj način možete izgubiti informacije o lošim blokovima čipova.

Međutim, ako je mikro krug već radio u uređaju, ova metoda označavanja loših blokova se ne koristi uvijek. Ponekad čak ni informacije o lošem bloku nisu pohranjene u NAND memoriju. Ali, češće nego ne, čak i ako je programer softver Uređaj koristi drugačiju shemu za upravljanje lošim blokovima; radije ne briše tvorničke oznake.

1.6. Upravljanje lošim blokovima

Programeri NAND mikro krugovi predlažu korištenje sljedećih shema kontrole loših blokova:

  • Proći loši blokovi
  • Korištenje rezervni regija

Također, metode za upravljanje lošim blokovima ponekad uključuju korištenje ispravak pogreške(ECC). Treba napomenuti da korištenje ispravljanja pojedinačne pogreške ne uklanja višestruke pogreške i još uvijek vas prisiljava da koristite jednu od gore navedenih shema. Osim toga, većina NANDčipovi imaju zajamčeno područje bez grešaka u kojem se ne pojavljuju loši blokovi. Područje bez kvarova obično se nalazi na početku čipa.

Ove metode za upravljanje lošim blokovima dobro su opisane u tehnička dokumentacija proizvođači NAND i naširoko se raspravlja u literaturi o upotrebi NAND. Ipak, podsjetimo se ukratko na njihovu suštinu:

Preskoči loše blokove:
Ako se trenutni blok pokaže neispravnim, on se preskače i informacija se upisuje u sljedeći slobodni blok. Ova shema je univerzalna, jednostavna za implementaciju, ali donekle problematična za slučajeve kada se loši blokovi pojavljuju tijekom rada. Za punopravni rad U ovoj shemi, logički broj bloka mora biti pohranjen unutar bloka (standard Samsung za dodjelu rezervnog područja, zapravo, to pretpostavlja). Kada radi prema ovoj shemi, kontroler mora negdje pohraniti tablicu korespondencije između logičkih brojeva blokova i fizički brojevi inače će pristup memoriji biti jako usporen.

Stoga je logičan razvoj shema korištenje slobodnog prostora:
Prema ovoj metodi, cjelokupna količina memorije podijeljena je na dva dijela: glavni i pričuvni. Kada se loš blok pojavi u glavnoj memoriji, on se zamjenjuje blokom iz rezervne memorije, a odgovarajući unos se pravi u tablici za preraspodjelu blokova. Tablica ponovnog dodjeljivanja pohranjuje se ili u zajamčeno sigurnom bloku ili u više kopija. Format tablice je drugačiji, u njemu se pohranjuje različita mjesta. Opet, Samsung opisuje standard za format i izgled tablice, ali malo ljudi ga slijedi.

2. VJEŽBAJTE

2.1. Skeniranje loših blokova NAND čipa

Programer ChipStar omogućuje vam brzo skeniranje mikro kruga NAND za prisutnost loših blokova u skladu s tvorničkim oznakama loših blokova.

Odaberite stavku izbornika " Chip|Tražite loše blokove ", čip će se provjeriti na loše blokove. Rezultat je prikazan u obliku tablice.

Ovu radnju potrebno je izvršiti samo ako samo želite vidjeti popis loših blokova. U svim ostalim slučajevima, potraga za lošim blokovima izvodi se automatski kada je to potrebno.

2.2. Loši blokovi u NAND slici

Prilikom čitanja slike NAND čipa, programator dodatno pohranjuje informacije o veličini stranice i bloka čipa. Informacije se spremaju u zasebna datoteka. Dakle, ako ste prebrojali i spremili sliku čipa u datoteku <имя_файла>.nbin program će stvoriti drugu datoteku: <имя_файла>.cfs . Prilikom otvaranja datoteke <имя_файла>.nbin datoteka <имя_файла>.cfs čitat će se na isti način. U datoteci <имя_файла>.cfs bilježe se podaci o stranici i veličini bloka čipa. Nakon čitanja čipa ili otvaranja datoteke poput .nbin , izvodi se pozadinsko skeniranje slike radi utvrđivanja prisutnosti loših blokova na temelju informacija o stranici i veličini bloka.

Mogućnosti NAND a informacije o lošim blokovima možete pronaći u "kartici" NAND"urednik programera:

Binarna slika NAND možete pogledati u "kartici" Glavna memorija ":

U načinu rada za uređivanje NAND dodijeljena je rezervna površina stranice mutnija boja, tipke za kretanje kroz stranice, blokove i brz prijelaz do početka rezervnog područja trenutna stranica. Uz adresu pokazivača, dodatno se prikazuje redak statusa uređivača broj stranice I broj bloka gdje se nalazi kursor. Sve to vam omogućuje praktičniji pregled sadržaja mikro kruga.

2.3.Brisanje NAND-a

Zadani programer ne briše loši blokovi, ali ako onemogućite opciju " Provjera i preskakanje loših blokova " loši blokovi mogu se izbrisati i oznake loših blokova mogu se izgubiti. Onemogućite ovu opciju samo ako je potrebno.

Preskaču se samo loši blokovi označeni u skladu s tvorničkim oznakama. Ako uređaj koristi drugačije oznake za loše blokove, oni će biti izbrisani jer ih programski softver neće vidjeti. Za rad s nestandardnim oznakama loših blokova, programer može koristiti vanjske dodatke.

2.4. Ispitivanje mikro kruga zbog nedostatka snimanja

Prema zadanim postavkama, programer zanemaruje sve loše blokove prilikom provjere, ali ako onemogućite opciju " Skenirajte i preskočite loše blokove "loši blokovi će se testirati što će prirodno dovesti do pogrešaka testiranja.

2.5. Zapisivanje gotove slike na čip

Snimanje slike NAND u mikro krugu malo se razlikuje od konvencionalnih BLJESAK mikrosklopovi Prije svega, moraju se podudarati veličine stranice slika i ciljni čip. Ako se koristi kontrola, loši blokovi moraju odgovarati veličine blokova slika i mikrosklop.

Softver za sve programere ChipStar podržava tri metode za upravljanje lošim blokovima ugrađeni alati i neograničen broj pomoću dodataka. Osim toga, možete postaviti broj blokova za pisanje na početku čipa, što je zapravo četvrti način upravljanja lošim blokovima.

Metoda 1: Ignoriranje loših blokova

Jednostavno kopiranje, ignoriranje loših blokova (loši blokovi se pišu na isti način kao i normalni).

Izvorna slika Čip
(početno stanje)
Čip
(proizlaziti)
Blok 0
dobro
Blokirati
čist
Blok 0
dobro
Blok 1
loš
Blokirati
čist
Blok 1
lažno
Blok 2
dobro
Blokirati
čist
Blok 2
dobro
blok 3
dobro
Blokirati
loš
blok 3
neispravan
Blok 4
dobro
Blokirati
čist
Blok 4
dobro
Granica zapisa
blok 5
dobro
Blokirati
čist
Blokirati
čist

Najprikladniji za kopiranje NAND čipova ne upuštajući se u to unutarnja struktura, pod uvjetom da čip koji se upisuje ne sadrži loše blokove . Ako je na izvornoj slici bilo je loših blokova , eventualno oblik lažni loši blokovi . Pojava lažnih loših blokova neće utjecati na rad uređaja. Međutim, ako čip već sadrži loše blokove, kada pokušate pisati na takav čip, loši blokovi s nepredvidivim posljedicama. Savjet: možete pokušati obrisati cijeli čip, uključujući loše blokove, a zatim ga kopirati. Ako je upisivanje u loš blok uspješno dovršeno (to se često događa), vaš će uređaj u budućnosti ispravno funkcionirati, softver uređaja će identificirati loš blok i zamijeniti ga dobrim u skladu sa svojim algoritmom rada.

Metoda 2: Zaobiđite loše blokove

Izvorna slika Čip
(početno stanje)
Čip
(proizlaziti)
Blok 0
dobro
Blokirati
čist
Blok 0
dobro
Blok 1
loš
Blokirati
čist
Blokirati
čist
Blok 2
dobro
Blokirati
čist
Blok 2
dobro
blok 3
dobro
Blokirati
loš
Blokirati
loš
Blok 4
dobro
Blokirati
čist
Blok 4
dobro
Granica zapisa
blok 5
dobro
Blokirati
čist
Blokirati
čist

Prilikom zaobilaženja loših blokova loši blokovi se ne snimaju iz originalna slika I informacija se ne upisuje u loše blokove čipa. Ovo nije najbolja politika kopiranja, ali je sigurna protiv loših blokova čipa: nijedna informacija nije izgubljena o lošim blokovima čipova i lažni loši blokovi se ne pojavljuju. U nekim slučajevima takva politika kopiranja može pomoći u vraćanju funkcionalnosti nepoznatog uređaja.

Metoda 3: Preskočite loše blokove

Izvorna slika Čip
(početno stanje)
Čip
(proizlaziti)
Blok 0
dobro
Blokirati
čist
Blok 0
dobro
Blok 1
loš

Blokirati
čist
Blok 2
dobro
Blok 2
dobro
Blokirati
čist
blok 3
dobro
blok 3
dobro
Blokirati
loš
Blokirati
loš
Blok 4
dobro
Blokirati
čist
Blok 4
dobro
Granica zapisa
blok 5
dobro
Blokirati
čist
Blokirati
čist

Pišite preskačući loše blokove pretpostavlja da uređaj koristi upravo ovaj algoritam upravljanja lošim blokovima, a ne bilo koji drugi. Pod ovim uvjetima zajamčeno je ispravno kopiranje informacija.

Metoda 4: Napišite samo zajamčeno područje bez grešaka

Izvorna slika Čip
(početno stanje)
Čip
(proizlaziti)
Blok 0
dobro
Blokirati
čist
Blok 0
dobro
Blok 2
dobro
Blokirati
čist
Blok 1
dobro
Granica zapisa
Blokirati
loš
Blokirati
čist
Blokirati
čist
blok 3
dobro
Blokirati
loš
Blokirati
loš
Blok 4
dobro
Blokirati
čist
Blokirati
čist
blok 5
dobro

Blokirati
čist

Blokirati
čist

U većini modernih NAND mikro krugova, prvi blokovi (barem jedan) zajamčeno nemaju kvarova. Kod mnogih uređaja kod pokretača se nalazi na početku čipa i operativni sustav uređaja. Kopiranje samo ovih područja često je dovoljno.

U dijaloškom okviru postavki načina snimanja odredite veličinu snimanja u blokovima.

Drugi načini upravljanja lošim blokovima

Softver ChipStar programeri podržava sve algoritme upravljanja lošim blokovima NAND pomoću vanjskih dodataka. Ovisno o dostupnosti instaliranih dodataka opisi dodatne metode pojaviti se na popisu" Upravljanje lošim NAND blokovima ". Parametre odabrane metode možete konfigurirati klikom na gumb " Vanjski dodatak ".

Korištenje kodova za ispravljanje pogrešaka (ECC)

Dopušta korištenje kodova za ispravljanje pogrešaka oporaviti pojedinačne pogreške na NAND stranici.

Različiti algoritmi mogu se koristiti za oporavak pojedinačnih pogrešaka u sektoru. Ovisno o algoritmu ECC, može se obnoviti različite količine greške po sektoru (512+16 bajtova). Pod pojmom " singl “ razumije se greška u samo jednom bitu podaci. Za NAND s veličinom stranice od 512+16 bajtova, koncept " sektor" i " stranica" odgovarati. Za NAND s velike veličine ChipStar programator stranica koristi shemu rasporeda stranice u sektore, kao što je opisano. U postavkama snimanja ili provjere možete odrediti koliko pogrešaka po sektoru može ispraviti algoritam koji se koristi u vašem uređaju. Sukladno tome, mikrosklopovi s prihvatljivim brojem pogrešaka neće biti odbijeni; informacije o broju ispravljivih pogrešaka prikazuju se u prozoru statistike:

Informacije o broju dopuštenih pogrešaka po sektoru za svaki pojedini čip možete pronaći u dokumentacija po čipu. Svi novododani NAND čipovi unose se u bazu podataka programera, uzimajući u obzir broj dopuštenih pogrešaka.

Kod samostalnog dodavanja mikrosklopovi:

  • Ako ONFI podržan, zatim dopušteni broj grešaka po sektoru čitati iz tablice parametara mikrosklopa i je instaliran na željenu vrijednost.
  • ako je mikrosklop ne podržava ONFI, korisnik morate sami postaviti vrijednost, koristeći dokumentaciju za čip.

Za nove mikro krugove NAND proizvodnja Samsung vrijednost dopuštenog broja pogrešaka po sektoru je kodirana kao dio identifikatora čipa. Stoga će za takve mikro krugove dopušteni broj pogrešaka po sektoru također biti ispravno postavljen.

Prilikom čitanja sadržaja mikrosklopa u svrhu daljnjeg spremanja ili kopiranja, pojedinačne pogreške ne mogu se pouzdano otkriti. Rezultirajuća slika može se zatim zasebno analizirati na pogreške izračunavanjem ECC kontrolnih kodova vanjska primjena, pod uvjetom da točno korišteni algoritam i izgled stranice su poznati .

ChipStar softver za programiranje nudi neizravne statistička metoda prepoznavanje i otklanjanje pojedinačnih grešaka. Metoda omogućuje samo identifikaciju nestabilan pogreške s nije zajamčeno pouzdanost. Da biste izvršili čitanje s otkrivanjem pogreške, morate odabrati " Selektivno čitanje" i na kartici "NAND" potvrdite okvir " Omogući način ispravljanja pogrešaka"

Možete konfigurirati broj ponovnih pokušaja čitanja za usporedbu i ukupan broj ponovnih pokušaja čitanja kada dođe do pogreške. Treba imati na umu da korištenje ovu metodu stvorenje usporava proces čitanja.

Algoritam za otkrivanje statističke pogreške radi na sljedeći način:

  1. NAND stranica se čita nekoliko puta zaredom (barem tri).
  2. Očitani podaci se uspoređuju bajt po bajt.
  3. Ako se ne otkriju pogreške usporedbe, pretpostavlja se da stranica nema pogrešaka.
  4. Ako se tijekom usporedbe otkriju pogreške, stranica se čita još nekoliko puta.
  5. Za svaku grešku broji se broj čitanja. jedinice I nule.
  6. Ispravnom vrijednošću (“0” ili “1”) smatra se ona kojih ima više.

Algoritam radi dobro ako je vjerojatnost greške u određenom bitu mikrosklopa manja od 0,5. Prilikom očitavanja mikrosklopa računaju se "ispravljene" pogreške i vjerojatnost ispravnog očitanja.

2.6. Pretvaranje binarne slike u NAND sliku

Sve gore opisano više je bilo kopiranje NAND i snimke temeljene na modelu mikro kruga, ali često je potrebno zapišite originalnu binarnu sliku programa na čisti čip. Prije pisanja morate pretvoriti binarnu sliku u NAND sliku dodavanjem na svaku stranicu rezervno područje i ispravno ga ispuniti. Da biste to učinili, otvorite svoj binarna datoteka, odaberite stavku izbornika " ". Pojavit će se dijaloški okvir:

Postavite način pretvorbe NAND: " Binarna slika... ", odredite veličinu stranice i NAND bloka ili odaberite željeni čip. Odaberite format rezervnog područja. Programator podržava jednostavno popunjavanje područja FF vrijednostima​​s ugrađenim alatima i drugim metodama pomoću dodataka . Dodatak se isporučuje s programatorom koji implementira dodjele rezervnih područja koje preporučuje Samsung.

Ako trebate implementirati bilo koji drugačija opcija distribucije - javite nam i pripremit ćemo odgovarajući dodatak ili sami možete implementirati potrebni dodatak.

2.7. Kompatibilan s NAND slikama koje čitaju drugi programeri

Ako imate NAND slika, pročitano od strane drugog programera ili primljeno iz drugog izvora, mora biti pretvoriti u format prikladan za snimanje ChipStar programator.

Da biste to učinili, slijedite ove korake:

  • Otvorite svoju datoteku, odaberite stavku izbornika " Uredi|Prebacivanje NAND načina uređivača ". Pojavit će se dijaloški okvir kao što je gore prikazano.
  • Postavite način pretvorbe na format NAND: "Slika je već NAND... ", naznačite veličina stranice I blokirati NAND ili odaberite željeni čip. kliknite " Nastaviti".
  • U uređivaču će se pojaviti kartica " NAND " i slika će započeti skeniranje loših blokova.
  • Rezultirajuća datoteka može se spremiti u formatu NAND, datoteka će dobiti nastavak .nbin zadana vrijednost.

Pozdrav svima! Baš sam neki dan sreo svog starog prijatelja. Došli smo do razgovora, a on je uz riječi “Vidi telefon s kojim sad hodam okolo!” pokazao svoj stari tipkalo Nokia. Ispostavilo se da se firmware na njegovom iPhoneu neprestano ruši - morao je dati pametni telefon servisni centar. Čini se kao uobičajena stvar...

Međutim, popis radova koje će služba izvoditi pokazao se neobičnim za mog prijatelja. Kompletna dijagnostika, ažuriranja softvera (ako je potrebno) i druge "obične stvari" - ovdje je sve standardno i jasno. Glavno pitanje postavila je ova fraza majstora - „najvjerojatnije se trebate kotrljati Nand Flash».

Naravno, u službi nisam pokazao da ne razumijem o čemu pričaju - kažu da već sve znam i bez tebe. Glavno je to učiniti. Ali došao sam kući i odmah otišao na Google - što je ovo, Nand Flash? Zašto se mučiti motati ga negdje unutar iPhonea?

Smijali smo se s njim, razišli, a ja sam pomislio - zašto ne napišem kratku zabilješku na ovu temu? Neće oduzeti puno vremena, a ljudima koji se susreću s istim problemom kao moj prijatelj bit će malo jasnije što se događa s njihovim pametnim telefonom. Mislio sam – uspio sam. Idemo!

Što je Nand Flash u iPhoneu?

Ovaj unutarnja memorija uređaja. Da, da, isto ono što vrlo često nedostaje vlasnici iPhonea na 16 GB.

Grubo govoreći, Nand Flash u iPhoneu 7 od 32 GB je istih 32 GB interne memorije.

Memorija se nalazi na glavnom matična ploča uređaj i ni po čemu se ne ističe – najobičniji čip.

Naravno, ovo uopće nije flash pogon - ne možete rastaviti iPhone, lako odspojiti Nand Flash, instalirati drugi i misliti da će sve biti "OK". Neće. Iako, vrijedi spomenuti da je u nekim slučajevima to ipak moguće. Ali o tome malo dalje. U međuvremenu, prijeđimo na probleme...

Uzroci kvara

Nema mnogo opcija, a sve su obično "standardne":

  1. Uređaj pada.
  2. Ostala fizička oštećenja.
  3. Ulaz tekućine.
  4. Brak.
  5. Bjekstvo iz zatvora.

Ovdje se nema što posebno opisivati ​​- jasno je da ako se uređaj baci i napuni vodom, to će utjecati na njegove performanse.

Iako ću još uvijek zasebno primijetiti takvu točku kao proizvodni nedostatak - to je također vrlo moguće. Svjedočio sam sličnoj situaciji - upravo sam kupio iPhone, ali zapravo ne radi - ponovno se pokreće, prikazuje pogreške prilikom vraćanja i općenito se ponaša čudno. Poslao ga na servis, kao rezultat - Nand je bio neispravan Flash memorija i naknadnu zamjenu uređaja.

Simptomi kvara iPhone Flash memorije

Ovaj kvar nema jasne i specifične simptome (poruka se ne pojavljuje na ekranu - vaš uređaj ima problema s memorijom), tako da se sve to može naslutiti samo neizravnim znakovima:


Kad smo već kod grešaka...

iTunes pogreške koje ukazuju na kvar Nand Flasha

Većina pravi put rješavanje raznih problema s uređajem. Međutim, ako iPhone ima problema s Nand Flash memorijom, proces oporavka može biti prekinut i popraćen sljedećim karakterističnim pogreškama:


Ali, važno je zapamtiti ovo - iTunes je dizajniran na takav način da isti broj pogreške može imati nekoliko razloga.

Na primjer, pogreška 4013 može signalizirati i probleme sa samim čipom i neoriginalnu upotrebu žice za povezivanje s računalom.

Kao što vidite, raspon je vrlo velik - od jednostavne žice do vrlo složenog popravka. Stoga ovaj popis grešaka možete koristiti za preliminarnu analizu situacije, ali im ne možete slijepo vjerovati.

Popravak Nand Flash memorije - je li moguće?

Možda. Ali, naravno, ne "kod kuće". Štoviše, nisu svi servisni centri u mogućnosti izvršiti ovu operaciju. Na primjer, "u šatoru na tržnici" najvjerojatnije vam neće moći pomoći - tamo jednostavno neće biti potrebne opreme. Da, i mora postojati neka vrsta vještine.

Još jednom ću posebno napomenuti - ako vaš iPhone nije istekao jamstveni rok(), onda nema potrebe ništa izmišljati - . Postoji velika vjerojatnost da ćete zauzvrat dobiti novi uređaj.

Ako je jamstvo "kvar", ali popravak Nand Flash memorije je i dalje potreban, tada servisni centar ima dvije mogućnosti za ispravljanje situacije:


Usput, ako govorimo o opremi za Nand Flash firmware, onda su takvi programeri prilično raznoliki, ali jedna stvar ih ipak ujedinjuje - cijena. Svi stoje pristojan novac- ne može si svatko priuštiti takvo što.

Kakav se zaključak može izvući iz svega ovoga? Problemi sa iPhone memorija- Riječ je o prilično ozbiljnom kvaru koji je vrlo teško sami popraviti. Ali situacija se ne može nazvati beznadnom. Glavna stvar je pronaći dobar servisni centar s kompetentnim stručnjacima i potrebna oprema. I tada iPhone još oduševit će vas svojim radom dugo vremena!

p.s. Da, nije ispalo kao kratka bilješka :) Međutim, što je tu je to je - nemojte sada brisati. A informacija je korisna - nekome će koristiti. slažete li se Stavite "sviđa mi se" i kliknite na gumbe društvenim mrežama- podržite autora! Trudio se, iskreno. Hvala!

P.S.S. Imate li kakvih pitanja? Imate li što dodati članku ili želite ispričati svoju priču? Za ovo postoje komentari - slobodno napišite!

Za uspješan rad s mikrosklopovima NAND FLASH(nand flash) trebate najmanje:

    Imajte ideju o strukturi NAND FLASH (nand flash), postojeće metode i algoritme za korištenje informacija pohranjenih u takvoj memoriji.

    Imati programator koji ispravno podržava rad s NAND Flash memorijom, tj. omogućuje odabir i implementaciju potrebnih parametara i algoritama obrade.

NAND FLASH programator mora biti vrlo brz. Programiranje ili čitanje mikro kruga s volumenom od nekoliko Gbita na konvencionalnom programatoru traje nekoliko sati. Očito, za koliko-toliko redovito programiranje NAND Flasha, potreban vam je specijalizirani brzi programator prilagođen za rad s MS-om. visoke gustoće. Danas je najbrži Flash NAND programator ChipProg-481.

Programiranje NAND FLASH na ChipProg programatorima

Pri radu s NAND Flashom programator nudi širok raspon opcija za odabir/konfiguraciju metoda i parametara programiranja. Svi parametri koji utječu na algoritam rada programatora s mikro krugom prikazani su u prozoru "Uređivač parametara mikro kruga i algoritam programiranja". Ako je potrebno, bilo koji od ovih parametara može se promijeniti tako da se odabrana radnja (programiranje, usporedba, čitanje, brisanje) provodi prema algoritmu potrebnom korisniku programer

Prozor "Uređivač parametara čipa i algoritam programiranja" u sučelju programatora prilikom programiranja NAND Flasha.

Velik broj prilagodljivih parametara koji tvore algoritam rada NAND programator Flash je vođen željom za pružanjem univerzalni alat, omogućujući korisniku da u potpunosti realizira sve značajke svojstvene NAND Flash strukturi. Kako bi olakšali život, programeri ChipProg-481 daju sljedeće mogućnosti pri odabiru bilo kojeg NAND Flash čipa:

  • Svi parametri poprimaju vrijednosti postavljene u prethodnoj sesiji programiranja (sesije) odabranog NAND Flasha. (broj spremljenih sesija je neograničen).
  • Svi parametri poprimaju vrijednosti navedene za dati NAND Flash unutar "projekta" (broj "projekata" je neograničen)
  • Svi parametri automatski poprimaju potrebne vrijednosti nakon pokretanja "skripte". "Skripte" su napisane u jeziku sličnom C-u ugrađenom u ljusku programera.
  • Svi (ili odabrani) parametri preuzimaju zadane vrijednosti.
  • Vrijednosti svih parametara dostupne su za uređivanje grafičko sučelje programer

Pogledajmo načine programiranja i parametre implementirane u programatoru.

Načini programiranja.

  1. Nevažeće upravljanje blokom
  2. Korištenje rezervnog područja
  3. Zaštitno čvrsto područje
  4. Tolerantna značajka provjere
  5. Nevažeća opcija indikacije bloka

1. Suočavanje s lošim blokovima.

Prije programiranja NAND Flasha, možete/trebate odabrati jednu od metoda za rad s lošim blokovima.

2. Korištenje rezervnog područja.

Ne koristiti

Rezervni prostor se ne koristi u čipu. Memorijske stranice su programirane u mikro krugu bez uzimanja u obzir rezervnog područja.

Podaci o korisniku

Rezervni prostor se koristi kao korisnička memorija. U ovom slučaju, prilikom programiranja mikro kruga, informacije iz međuspremnika prvo se postavljaju na glavnu stranicu mikro kruga, a zatim u dodatno rezervno područje. U ovom slučaju međuspremnik programatora izgleda kao kontinuirani tok glavnih stranica čipa i rezervnih područja usidrena na njih.

Korisnički podaci s IB informacijama Forced

Rezervno područje se tumači slično kao i prethodni slučaj, osim što se umjesto korisničkih informacija pišu markeri loših blokova.

3. Zaštitno čvrsto područje

Način korištenja posebno područje nema loših blokova. Obično se takva područja koriste kao pokretači mikroprocesora. Korištenje loših blokova nije dopušteno u ovom području.
Opcija se koristi u kombinaciji sa sljedećim parametrima:

  • Čvrsto područje - početni blok - početni blok područja bez loših blokova.
  • - broj blokova u ovom području.

Ako je unutar navedenog raspona Čvrsto područje Ako naiđete na loš blok, programator će generirati pogrešku.

4. Nije osjetljiv na pogreške u usporedbi.

Ova opcija vam omogućuje da omogućite način rada koji nije osjetljiv na pogreške usporedbe.
Obično ovu opciju ima smisla koristiti ako korisnikov uređaj koristi algoritme kontrole i ispravljanja pogrešaka (ECC). U tim je slučajevima dopušten određeni broj pogrešaka za određenu veličinu niza podataka. Ovi parametri su naznačeni u parametrima NAND Flash programskog algoritma:

  • Veličina ECC okvira (bajtovi) - veličina niza podataka.
  • Prihvatljiv broj grešaka - dopušteni broj jednobitnih pogrešaka.

5. Nevažeća opcija indikacije bloka.

Ova opcija odabire informacije koje se koriste kao oznaka lošeg bloka. Možete odabrati vrijednost 00h ili 0F0h.

  • Vrijednost indikacije IB~00 ili F0

Mogućnosti programiranja.

  1. Korisničko područje
  2. Čvrsto područje
  3. RBA područje
  4. ECC Veličina okvira
  5. Prihvatljiv broj grešaka

a.Korisničko područje.

Korisničko područje je područje čipa s kojim rade procedure programiranja, čitanja i usporedbe.
Postupci kontrole brisanja i čistoće rade s cijelim nizom čipova.

Korisnik mora postaviti sljedeće parametre:

  • Korisničko područje - Početni blok - početni blok korisničkog područja.
  • Korisničko područje - Broj blokova - broj blokova u korisničkom području.

b. Područje bez grešaka.

Parametri načina rada Guard Solid Area.

  • Čvrsto područje - početni blok - početni blok područja bez loših blokova.
  • Čvrsto područje - broj blokova - broj blokova u ovom području.

c. RBA prostor za plasman.

  • RBA područje - početni blok - početni blok RBA tablice.
  • RBA područje - broj blokova - broj blokova u RBA tablici.

d.ECC veličina okvira .

  • ECC veličina okvira- parametar koji određuje veličinu niza podataka u kojem su dopuštene jednobitne pogreške.

e. Dopušteni broj grešaka.

  • Prihvatljiv broj grešaka - parametar određuje broj dopuštenih jednobitnih pogrešaka u nizu, čija je veličina određena parametrom ECC Frame size.

Loša karta blokova

Mapa loših blokova stvara se u podsloju Invalid Block Map. Blok mapa je predstavljena kao kontinuirani niz bitova. Dobri blokovi su predstavljeni vrijednošću 0, a loši blokovi vrijednošću 1.

Na primjer, vrijednost 02h na adresi nula označava da su blokovi 0,2,3,4,5,6,7 dobri, a blok 1 loš. Vrijednost 01h na prvoj adresi označava da je samo 8. blok loš iz grupe blokova 8..15.

Kopiranje NAND Flasha

Kako bismo ilustrirali važnost "promišljenog" odabira načina i parametara pri programiranju NAND Flasha u programatoru, razmotrite situaciju u kojoj neki programeri imaju problema. Najčešće je to zamjena za NAND Flash u "uređaju" koji je prestao raditi. Standardni pristup- analogno zamjeni konvencionalnog memorijskog čipa:

  1. Nabavite firmware radnog mikro kruga. U pravilu se u tu svrhu sadržaj čita iz originalnog mikro kruga.
  2. Flash novi sličan mikro krug.
  3. Usporedite sadržaj programirane ms. s "originalnim" firmwareom. Ako usporedba prođe, mikro krug - kopija je spremna.

U slučaju kada trebate programirati NAND Flash, nije sve tako jednostavno i nedvosmisleno.

  1. Nand Flash firmware, dobiven kada ga programer čita iz "originala", značajno ovisi o načinima rada i parametrima instaliranim u programatoru.
  2. Kako biste ispravno programirali novi NAND Flash i dobili puna kopija, prije programiranja, potrebno je postaviti načine i parametre u programatoru koji odgovaraju "izvornom" firmveru. Pritom je potrebno uzeti u obzir mogućnost postojanja loših blokova.

Da biste dobili čip za kopiranje čiji je NAND Flash firmware identičan uzorku, morate postupiti na sljedeći način.

Priprema za kopiranje.

Za kopiranje potreban vam je izvorni mikro krug i mikro krug kopije (mikro krug u koji bi trebala biti zapisana slika izvornika). Obavezni zahtjevi:

  1. Oba NAND Flash čipa, original i kopija, moraju biti iste vrste.
  2. Čip za kopiranje ne bi trebao imati loše blokove.

Da biste utvrdili ima li čip za kopiranje loše blokove, morate instalirati čip u programator, au prozoru "Uređivač parametara čipa" postaviti zadane parametre čipa - gumb "Sve zadano".

Započinje postupak kontrole brisanja (za uštedu vremena ovaj postupak možete odmah prekinuti; mapa loših blokova čita se na samom početku). U prozoru "Programiranje" programskog sučelja informacije o lošim blokovima pojavljuju se u polju "Informacije o radu".


Kopiranje.

Prije kopiranja NAND Flash čipa u programator, u prozoru "Chip Parameters Editor" moraju se napraviti sljedeće postavke parametara:

Nevažeće upravljanje blokom (IB).

NE KORISTITI

Korištenje rezervnog područja

Podaci o korisniku

Korisničko područje – broj blokova

Maksimalna vrijednost blokova u čipu

Uzorak NAND Flash instalira se u programator i čita. Zatim se čip za kopiranje ugrađuje u programator, briše, zapisuje i uspoređuje. Ako su sva tri postupka uspješno dovršena, ispostavlja se da je programirani NAND Flash potpuna kopija originala.

Struktura NAND Flash memorije.

NAND Flash memorija * podijeljena je na blokove memorije, koji su pak podijeljeni na stranice. Stranice mogu biti velike (velika stranica) ili male (mala stranica). Veličina stranice ovisi o ukupna veličina mikrosklopovi. Za male stranice obično su tipični čipovi s kapacitetom od 128 Kbit do 512 Kbit. Mikrosklopovi s velikom veličinom stranica imaju kapacitet od 256 Kbit do 32 Gbit i više. Veličina male stranice je 512 bajtova za čipove temeljene na bajtovima i 256 riječi za čipove temeljene na riječima. Velika stranica ima veličinu od 2048 bajtova za čipove bajtova i 1024 za čipove riječi. U u posljednje vrijeme pojavljuju se čipovi s još većim veličinama stranica. Već je 4096 bajtova za bajtove čipove.

Memorijska struktura NAND Flash mikrosklopova s ​​malom veličinom stranice tvrtke STMicroelectronics.

Memorijska struktura mikrosklopova s ​​velikom veličinom stranice tvrtke STMicroelectronics.

Loši NAND Flash blokovi

Karakteristična značajka mikro krugova NAND Flash je prisutnost loših (neispravnih) blokova (Bad blocks) kako u novim mikro krugovima, tako i pojava takvih blokova tijekom rada. Za označavanje loših blokova, kao i za pohranjivanje dodatnih servisnih informacija ili kodova za ispravak, NAND Flash arhitektura nudi dodatno rezervno područje uz svaku stranicu podatkovne memorije. Za male dijelove stranice, ovo područje je 16 bajtova/8 riječi. Za čips sa velika stranica- 64 bajta / 32 riječi.

Tipično, proizvođač čipa jamči da broj loših blokova neće premašiti određenu veličinu. Informacije o lošim blokovima dostavlja proizvođač čipa na određenom mjestu u dodatnom rezervnom području.

Označavanje loših blokova NAND čipovi Flash se obično radi pisanjem vrijednosti 0 na određenu adresu u rezervnom području nulte stranice lošeg bloka. Markeri loših blokova nalaze se u određene adrese Rezervno područje.

Organizacija pamćenja

Adresa markera loših blokova u rezervnom području

Organizacija bajtova, veličina stranice - 512 bajtova.

Organizacija riječi, veličina stranice - 256 riječi.

Organizacija bajtova, veličina stranice - 2048 bajtova ili više.

Organizacija riječi, veličina stranice - 1024 riječi ili više.

Morate imati na umu da se markeri loših blokova nalaze u uobičajenim ćelijama Flash memorije u rezervnom području, koje se brišu kada se izbriše cijeli memorijski blok. Dakle, da biste sačuvali podatke o lošim blokovima, prije brisanja potrebno je te podatke spremiti, a nakon brisanja obnoviti.
U ChipProg programatorima, prilikom instaliranja opcije InvalidBlockManagement na bilo koju vrijednost osim Ne koristiti Spremanje i vraćanje informacija o lošim blokovima događa se automatski.

Postoje tri najčešća načina rješavanja loših blokova:

  1. Preskoči loše blokove(Preskoči loše blokove . )
  2. Rezervirano područje bloka(Blokiraj rezervaciju)
  3. Provjera i ispravljanje pogrešaka(Kontrola i ispravljanje grešaka . )

1. Preskoči loše blokove.

Algoritam za preskakanje loših blokova sastoji se u tome da prilikom pisanja na čip analizira u koji se blok piše. Ako postoji loš blok, pisanje u ovaj blok se ne izvodi, loš blok se preskače, a pisanje se izvodi u blok sljedeći nakon lošeg.

2. Rezervacija bloka.

U ovoj metodi, memorija cijelog mikro kruga podijeljena je u tri područja: Korisničko područje bloka (UBA) - korisničko područje, Block Reservoir - rezervno područje odmah iza korisničkog područja i tablica za podudaranje loših blokova s ​​dobrim ( Rezervirano blokovsko područje – RBA).

Algoritam za zamjenu loših blokova u ovoj metodi je sljedeći: kada se loš blok identificira iz UBA područja, blok se prebacuje u područje Block Reservoir, a odgovarajući unos zamjene bloka se pravi u RBA tablici.

Format RBA tablice:

2 bajta RBA područje sadrži dvije tablice u dva bloka. Tablica u drugom bloku koristi se kao rezervna tablica u slučaju da se podaci u prvom pokažu nepouzdanima.

3. Kontrola i ispravljanje grešaka.

Kako bi se povećala pouzdanost podataka, mogu se koristiti algoritmi za provjeru i ispravljanje pogrešaka (ECC). Ovaj dodatne informacije može stati slobodan prostor Rezervno područje.

*) Napomena: NAND ~ Ne I - u Booleovoj matematici označava negaciju "I"