@R-MIK Czytaj, proszę, ze zrozumieniem i bez nerwów. Pamięć NOR-flash jest względnie powolna i jest głównym ogranicznikiem taktowania rdzenia. Dodatkowo wymaga bardzo dużo miejsca na powierzchni układu, a jej skalowanie (zmniejszanie) jest bardzo kosztowne. Wielu producentów stosuje pamięć o szerokości znacznie większej niż szerokość magistrali instrukcji danego procesora. Microchip stosuje pamięć o szerokości 128 bitów w uC z rodziny PIC32MZ, podobnie ST stosuje pamięć o szerokości 256 bitów z dodatkową jednostką nazwaną ART akcelerator. Niestety, AVRy są produkowane w oparciu o dość stare technologie i maksymalnie używają pamięci o szerokości 16 bitów, co przekłada się na dość niską wydajność w dostarczaniu instrukcji dla CPU.
Degradacja pamięci typu NOR Flash używanej typowo jako pamięć programu w mikrokontrolerach, przyspiesza ze wzrostem temperatury. W zależności od technologii wykonania i zastosowanych opcji, zazwyczaj taka pamięć jest klasyfikowana jako stabilna do +85°C, +105°C, +125°C. To zawsze jest kompromis między maksymalną temperaturą pracy, a wieloma innymi parametrami, np. czas kasowania sektora, minimalne napięcie programowania, gęstość (pojemność) pamięci.
Podnoszenie częstotliwości taktowania, często w połączeniu z podnoszeniem napięcia powoduje wzrost ilości ciepła wytwarzanego w układzie. Dla półprzewodników, to właśnie ciepło jest zabójcze. Ze wzrostem temperatury struktury, rośnie aktywność elektronów, mniej więcej z 4 potęgą temperatury. Powyżej pewnego poziomu określonego technologią wykonania, w fazie odczytu, nie w fazie programowania, wzrasta ryzyko przeładowania komórek pamięci tworzonych przez studnie ładunkowe. Więcej, sam odczyt jest kłopotliwy, ponieważ podwyższone taktowanie skraca czas każdej fazy w odczycie: ustawienie odpowiedniego potencjału na linii słów (~5V) i wirtualnej masy (~0V), włączenie napięcia buforów odczytu (~5V), włączenie napięcia po stronie źródeł (~1.2V), w końcu efektywne przesunięcie poziomów, które zostaną odczytane przez wzmacniacze i zatrzaśnięcie stanu w rejestrze wyjściowym, czyli z punktu widzenia CPU, pobranie instrukcji. Aby było trudniej, to odczyt komórki pamięci może dać 3 wartości: -, 0, +. Jeżeli jest umowny '-', to przyjmuje się, że bit ma wartość 1 (jest skasowany). Umowny '+', oznacza bit o wartości 0 (zaprogramowany), a umowna wartość '0', oznacza nieprawidłowy odczyt i konieczność podwyższenia zasilania. To właśnie tutaj jest ryzyko przeładowania wartości komórki i uszkodzenie danych.
W kwestii odporności termicznej, procedurę testowania pamięci zazwyczaj realizuje się według JESD47I (do pobrania ze strony JEDEC). Co jest istotne, testy żywotności pamięci (ilości bezbłędnych kasowań) prowadzi się w temperaturze 25°C, 50% testów, a kolejne 50% w temperaturze >55°C. Najczęściej jest to 85°C, czyli przyjęta granica dla NOR Flash. Testy trwałości zawartości pamięci prowadzi się w temperaturze 125°C. Test jest zaliczony pozytywnie, jeżeli sektory zapisane tylko 1 raz przetrwają 1000h i sektory zapisane 1000x oraz 10000x przetrwają 100h, a sektory zapisane 100000x są zdolne utrzymać zawartość przez zaledwie 10h.
Podsumowując, zwiększone taktowanie skraca czas dla kontrolera pamięci na właściwe odczytanie jej zawartości. Nieprawidłowy odczyt wymusza stosowanie wyższego napięcia 'czytającego', co samo w sobie już zwiększa ryzyko naruszenia integralności danych. Podwyższenie napięcia zasilania w połączeniu ze zwiększonym taktowaniem oznacza wzrost ilości ciepła generowanego w układzie, co w połączeniu z podwyższoną temperaturą otoczenia może doprowadzić do lawinowego wzrostu aktywności elektronów w strukturze pamięci i utratę jej zawartości. To, że ktoś, gdzieś, zaprogramował układ mikrokontrolera kilka razy, zwiększył taktowanie 2x przy obniżonym zasilaniu w temperaturze 25°C i przez godzinę obserwował miganie diody albo przesyłanie danych przez I2C nie jest żadną gwarancją, że taki układ będzie działał w sposób bezawaryjny w zakresie temperatur i w czasie przewidzianym dla innej aplikacji. Jeżeli producent określa żywotność pamięci na 10k cykli, a trwałość na 20 lat, to nie robi tego ze względu na chęć ukrycia lepszych parametrów, ale ze względu na odpowiedzialność prawną w przypadku niedotrzymania deklarowanych wartości parametrów. Podobnie jak każdy następny podmiot, który tworzy wartość dodaną i jest wiarygodnym partnerem biznesowym.
Ale mam dobrą wiadomość. Jak wszystko pójdzie dobrze, to za 2-3 lata dotychczasowe pamięci zostaną zastąpione przez pamięci programowalne zawierające tlenek hafnu, co pozwoli zmniejszyć rozmiar technologiczny z 90nm do 22nm, może nawet 16nm, przyspieszyć odczyt 4x i zmniejszyć zużycie energii przynajmniej 10x i koszt produkcji kilka razy. Wtedy inne ograniczenia będą decydowały o maksymalnej częstotliwości taktowania uC. Obawiam się jednak, że AVRy nie dostaną tych nowych pamięci.