Układ pamięci urządzeń mobilnych

Co to jest uklad pamieci?

1. Wstep

Cala pamiec urzadzenia przenosnego, w zaleznosci od przeznaczenia, moze byc warunkowo podzielona na kilka typów:

  • Pamiec o dostepie swobodnym (RAM);
  • Stala pamiec (ROM);
  • I przeprogramowalna pamiec tylko do odczytu (PROM).

RAM jest przeznaczony do przechowywania biezacych danych (stos) i kodów programów wykonywalnych, czyli szybko (szybko lub czesto) zmiennych danych.

ROM jest przeznaczony do przechowywania ustawien pracy procesora, mnoznik czestotliwosci generatora zegarowego, itp., czyli niezmiennych (stalych) danych.

Zdarza sie informacje, które powinny byc przechowywane w niezmienionej formie, ale przez jakis czas, z mozliwoscia jej wymiany. Dla takich danych jak nasze kontakty, zdjecia, filmy, pliki, itp., czyli wewnetrznych danych urzadzenia mobilnego, uzywany posredni rodzaj pamieci, zwany jako przeprogramowalna pamiec tylko do odczytu (PROM).

Jest tez inna, czesto uzywana pamiec - zewnetrzna. Moze byc zorganizowany na rózne sposoby, na przyklad jako karta SD lub dysk USB. Wynika z tego, nie przestaje byc PROM, czyli wykonuje funkcje tymczasowego przechowywania informacji reprogramowalnych.

Za dokladna nazwe typów nie recze, gdyz w miare rozwoju nauki i techniki pojawiaja sie nowe typy i, odpowiednio, okresla lub zmienia sie terminologia, tzn. nazwy. Tu piszemy tylko zasady dzialania i przeznaczenie tych rodzajów pamieci.

Jesli posluzyc sie analogia i rozwazyc konkretnie urzadzenie mobilne, takie jak smartfon, pamiec RAM to pamiec dla procesora. Zazwyczaj ma rozmiar 256 MB – 4 GB.

ROM my nie widzimy, ale w wielu modelach mozemy komunikowac sie z nim na przyklad z oprogramowaniem sprzetowym procesora lub kontrolerem ekranu dotykowego.

Najwiekszym typem pamieci jest PROM. W rozmiarze moze wynosic 256 MB, typowy rozmiar to 4-64 GB. Na komputerze stacjonarnym jest to pamiec, która znamy jako dysk twardy.

Uklady pamieci, opisane dalej, akurat zajmuja sie dysiemk twardym dla telefonów smart, czyli wewnetrzna pamiecia. Jest tez nazywana karta pamieci wewnetrznej.

Notka

Poniewaz kazdy rodzaj pamieci fizycznie funkcjonuje inaczej, to w tych materialach, nie dostaniesz rady rozbudowy pamieci RAM kosztem pamieci wewnetrznej (PROM).

Rada

Praktycznie wszystkie dzialania z ukladem pamieci zwiazane z utrata danych w zwiazku ze zmiana adresów logicznych ich lokalizacji. Dlatego tez zasiegnij porady: przed redystrybucja zawsze nalezy wykonac kopie zapasowa (tzw. Backup) tych partycji, które w niej uczestnicza.

2. System plików

Tak wiec, z pamiecia zalatwilismy. A jak pracowac z nia? Jak odczytac lub zapisac cokolwiek? Jesli wrzucisz ziemniaki lub rozpraszasz choinki na otwartym polu, co sie stanie? Zgadza sie, najprawdopodobniej sprosnie, ale to bez sensu. Nie mozesz zebrac wszystkich tych ziemniaków, poniewaz Trudno dotrzec do kazdego krzaka, a w takim lesie nie przejedziesz lub nie chcesz chodzic. Dlatego zarówno pole, jak i sadzenia lasu planuja, przynajmniej myszla, gdzie beda szeregi, a gdzie sciezki.

Tak i z pamiecia. Aby uzyskac dostep do dowolnego miejsca pamieci, musisz go rozdzielic. Co i pozwala system plików. Ona rysuje szeregi w pamieci (przestrzeni) i wykopuje ja (formatuje). Operacje te dziela pamiec na male kawalki (bloki) i wypelniaja je, jak zwykle, zerami. Chociaz mozna uzyc inny symbol zastepczy.

Umieszczenie tego samego typu lub zwiazanych z nimi informacji w pamieci, aby utworzyc partycje, laczac je w ciagu kilku bloków. Z sekcja juz mozna pracowac jako z jednym kawalkiem pamieci. Jesli pamieci jest bardzo duzo, to mozna pójsc dalej i polaczyc partycje w regiony, przypisujac, na przyklad, jeden region w pelne posiadanie tylko jednego uzytkownika. To rózni uzytkownicy nie beda mogli podpatrzec lub po prostu przeszkadzac sobie nawzajem (usunac, na przyklad). A zeby nie zaplatac sie, gdzie co jest, informacje o znacznikach pamieci jest zapisywane w specjalne tabele systemowe.

Wszystkie te proste rzeczy robi dla nas system plików. Nawiasem mówiac, srednia wielkosc bloku - 512 bajtów. Teraz plynnie przechodzimy do rozpatrzenia tabele alokacji partycji.

3. MBR i inne

Tak wiec system plików przydzielil przestrzen pamieci bloki o rozmiarze 512 bajtów, aby ulatwic nam komunikacje z plikami.

Aby rozróznic lokalizacje plików w pamieci, kilka bloków jest laczonych w grupy, które sa nazywane sekcjami. W systemach plików wykorzystujacych do wejscia/wyjscia BIOS, sekcje sa opisane w specjalnej tabeli, która jest uzywana podczas uruchamiania systemu operacyjnego i jest nazywana glównym rekordem rozruchu lub MBR (Master Boot Record – MBR).

Ta tabela jest przechowywana w pierwszym bloku pamieci. Historycznie zlozylo sie, ze w niej mozna zapisac tylko 4 wpisy o partycjach. W przypadku koniecznosci zwiekszenia liczby partycji, ich opis (parametry) sa umieszczone w kolejnej tabeli, zwanej rozszerzonej (Extended Boot Record - EBR), a link do niej jest umieszczony w tabeli MBR, przypisujac jej typ partycji 05-zaawansowane.

Wiecej o MBR i EBR mozna przeczytac w notatce "Co jest MBR?".

Tak moze trwac dalej, co prawda nie w nieskonczonosc. Liczba dodatkowych rozdzialów, zwanych logiczne, moze byc nie wiecej niz 63. W rezultacie mozna uzyskac nastepujacy zestaw tabel opisujacych partycji pamieci: MBR, EBR1, EBR2, EBR3,...,EBR6.

Istnieja i inne rodzaje ukladu pamieci, na przyklad, przy uzyciu GPT (GUID Partition Table). O tym czytamy w notatce " Co to jest GPT?".

Ale nie wszystkie sekcje sa opisane w plikach MBR+EBR. Sa sekcje, w których nie trzeba pobierac niczego, a dostep do nich, wrecz przeciwnie, powinien byc ograniczony. Na przyklad sekcja nvram, która jest nieulotnym zapisem ustawien samego sprzetu. Lub PMT - partycja zawierajaca kopie zapasowe znaczników pamieci. Dlatego jest inny plik zapisujacy list sekcji pamieci urzadzenia mobilnego.

Scatter-plik to jest ten plik zawierajacy liste partycji (fragmenty) pamieci. MediaTek uzywa go do wyliczenia partycji pamieciowych, które istnieja w urzadzeniu mobilnym dzialajacym na chipach MTK.

Do tej pory istnieja dwa rodzaje tych plików, rózniace sie struktura opisu partycji pamieci.

4. Scatter-plik, co to jest i „z czym to sie je”?

Scatter-plik 1-go rodzaju

Nazwijmy go pierwszej wersji, zawiera tylko informacje o tytule i poczatkowym przesunieciu partycji. Tak wyglada kazdy opis sekcji pamieci:

MBR 0x600000

{

w czym:

  • MBR - tytul sekcji, czy raczej znak;
  • 0x600000 - Poczatkowe przesuniecie sekcji w formacie 16-kowym.

Taka forma scatter-pliku jest uzywana do urzadzen na chipach МТ6577, МТ6589, МТ6589Т i wiele laczników podczas tworzenia programów dla mikrokontrolerów itp. Ale to absolutnie nie jest przystosowane do pracy z regionami.

Scatter-plik 2-go rodzaju

Nowoczesne urzadzenia mobilne maja duza ilosc pamieci wewnetrznej, co umozliwia dzielenie jej na czesci (regiony). To jest konieczne równiez z uwzglednieniem bezpieczenstwa przy odgraniczeniu dostepu w dostepie dla wielu uzytkowników.

Do tego zostal zaprojektowany scatter-plik drugiej wersji, stosowany do chipów МТ6572, МТ6582, МТ6592, MT67xx. On ma bardziej zlozony opis partycji:

partition_index: SYS1

partition_name: MBR

file_name: MBR

is_download: true

type: NORMAL_ROM

linear_start_addr: 0x0

physical_start_addr: 0x0

partition_size: 0x80000

region: EMMC_USER

storage: HW_STORAGE_EMMC

boundary_check: true

is_reserved: false

operation_type: UPDATE

reserve: 0x00

Szczególowy opis scatter-plików, zobacz w "Co jest scatter-plik?" w czapce tematu. Tyl