Pytanie:
Jakie są najpopularniejsze urządzenia do przechowywania danych w małej elektronice użytkowej?
oeeve
2014-03-07 21:30:15 UTC
view on stackexchange narkive permalink

Jakie są standardowe sposoby przechowywania danych w małej elektronice użytkowej (routery, telefony itp.)? W przypadku prostych urządzeń wystarczą chyba mikrokontrolery z wbudowaną programowalną lampą błyskową, ale na przykład w smartfonie byłaby zamontowana wewnętrznie karta micro-SD lub podobna? Gdzie byłby przechowywany system operacyjny itp.?

pamięć nieulotna: pamięć flash EEPROM, pamięć ulotna: SDRAM
Dwa odpowiedzi:
Martin Thompson
2014-03-07 21:48:11 UTC
view on stackexchange narkive permalink

W przypadku elementów, których używasz jako przykładów, zwykle znajduje się chip NAND flash (lub więcej niż jeden) zwisający z głównego procesora.

W przypadku mniejszych elementów (np. kuchenek mikrofalowych) kod będzie znajdować się w wewnętrznej pamięci flash mikrokontrolera lub w bardzo wrażliwych kosztowo aplikacjach o dużej objętości będzie w pamięci ROM, ponownie zwykle na tej samej matrycy co mikro.

tcrosley
2014-03-07 23:03:12 UTC
view on stackexchange narkive permalink

Istnieją trzy typowe opcje: wewnętrzna pamięć flash, zewnętrzna pamięć flash NAND i karty micro-SD. Pamięć Flash wyewoluowała z wczesnych urządzeń EEPROM i prawie je zastąpiła, będąc gęstszą (a przez to tańszą w przeliczeniu na bajt). Urządzenia o bardzo dużej objętości mogą korzystać z pamięci ROM, której nie będę tutaj omawiać, ponieważ nie mam dla niego ceny ani specyfikacji. Funkcjonalnie działałaby jako wewnętrzna lub zewnętrzna pamięć flash, z wyjątkiem tego, że są tylko do odczytu i nie mają problemów z trwałością.

Układy scalone NAND flash są zwykle nieco droższe niż porównywalne rozmiary mikro- Karty SD, tylko dlatego, że te ostatnie są produkowane w tak dużych ilościach, ekonomia skali obniża cenę. Na przykład chip 8 GB NAND flash (64 Gb) kosztuje około 20 USD, a karta SD 8 GB kosztuje 6 USD. (Nie mogłem nawet znaleźć 8 GB EEPROM IC dla porównania). Oczywiście wewnętrzna pamięć flash jest prawie za darmo, z wyjątkiem tego, że koszt mikrokontrolera rośnie wraz z rozmiarem pamięci flash.

Czas dostępu do karty SD Karta będzie jednak wolniejsza niż pamięć flash NAND, ponieważ dostęp do karty SD uzyskuje się za pomocą 2-przewodowego (R / W) interfejsu SPI lub 4-przewodowego zastrzeżonego interfejsu, podczas gdy układy NAND flash mają zwykle 8-bitowy interfejs równoległy. Wewnętrzna pamięć flash będzie najszybsza, ponieważ nie jest wymagany zewnętrzny interfejs.

Ponieważ karty SD można sformatować na komputerze, często są one wyposażone w system plików, taki jak FAT-32, co ułatwia aby skopiować pliki z komputera, a następnie uzyskać do nich dostęp z mikrokontrolera zawierającego niezbędną bibliotekę FAT-32. (Oczywiście mikrokontroler może również zapisywać nowe pliki, tworzyć katalogi itp., Jeśli chce).

Kolejną różnicą jest wyrównanie zużycia. Markowe karty SD zwykle zawierają funkcje równoważenia zużycia (wszystkie karty SD mają w sobie procesor), podczas gdy chipy NAND flash tego nie robią, a aplikacja musi niwelować zużycie, aby przedłużyć żywotność urządzenia. (Wymazywanie / zapisywanie jest znacznie wolniejsze niż czytanie na wszystkich tych urządzeniach.)

Karty SD mają zazwyczaj najdłuższą żywotność pod względem cykli kasowania / zapisu (zwykle 100 000). Wewnętrzne chipy flash i NAND flash zazwyczaj mają znacznie mniej cykli kasowania / zapisu, często mierzonych w tysiącach lub dziesiątkach tysięcy. Dlatego nie są dobrym substytutem dysku twardego.

(dodane)

Karty SD mogą być używane tylko do przechowywania danych; nie możesz uruchomić z nich kodu. Jeśli jednak procesor może wykonać kod z pamięci RAM ( architektura Von Neumanna), można w razie potrzeby załadować programy z karty SD do pamięci RAM i tam je uruchomić. (Uwaga: większość mikrokontrolerów ma architekturę Harvard i nie może wykonywać kodu z pamięci RAM.)

Zewnętrzna pamięć flash może być używana do wykonywania kodu tylko wtedy, gdy procesor ma interfejs pamięci zewnętrznej, który wyraźnie umożliwia to, na przykład wiele mikroprocesorów ARM. Jeśli dostęp odbywa się tylko przez port równoległy ogólnego przeznaczenia, zewnętrzna pamięć flash może być używana tylko do danych.

Wewnętrzna pamięć flash jest odwrotna - jest zwykle używana do przechowywania i wykonywania kodu programu , a większość mikrokontrolerów o architekturze Harvard musi mieć specjalne środki (takie jak „okno” danych), które umożliwiają dostęp do wewnętrznej pamięci flash jako obszaru danych (nie jest częścią obszaru stałego programu).

Aby odpowiedzieć Twoje ostatnie pytanie, system operacyjny prawie zawsze byłby całkowicie zawarty w wewnętrznym obszarze flash programu mikrokontrolera. Ale może znajdować się na zewnętrznej pamięci flash, jeśli procesor na to pozwala. Jeśli system operacyjny musi ładować sterowniki w razie potrzeby, można je zapisać na karcie SD (lub zewnętrznej pamięci flash) i albo załadować do pamięci RAM, jeśli jest wystarczająco dużo miejsca, a procesor może działać poza pamięcią RAM, lub nagrać na obszar wewnętrznej pamięci flash zarezerwowany dla kierowców.

Karty SD to po prostu NAND flash zapakowane z mikrokontrolerem. Nie ma powodu, dla którego widzę, dlaczego dobrze zarządzany chip NAND flash nie powinien wytrzymać tak długo, jak karta SD.
@MartinThompson Istnieją trzy typy pamięci flash NAND (SLC, MLC i TLC), każdy o innej trwałości. Arkusz danych dla Micron MT29F64G08CFACA 8 GB (typ MLC) podaje, że jego żywotność wynosi 3000 cykli programowania / kasowania. Karty Micro SD (typu SLC) mają zwykle 100 000 cykli zapisu / kasowania. To duża różnica, bez względu na to, jak dobrze wyrównujesz zużycie.
@tcrosley: Dlaczego zakładasz, że micro SD zawsze używa SLC i porównujesz ją z samodzielną NAND korzystającą z MLC? Szczególnie karty micro SD o dużej pojemności NIE używają SLC, poza dość drogimi kartami SD klasy przemysłowej.
@MartinThompson Podałem tylko przykład z urządzeń, które szukałem. W jednym z projektów musieliśmy już jakiś czas podjąć decyzję o rozwiązaniu NAND flash IC vs SD. Z pewnością będą wyjątki.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...