Jak zapobiegać błędom i wydłużyć żywotność, czyli pamięci fail-safe

Wymagania stawiane pamięciom rosną. Ich głównym wyróżnikiem przestaje być pojemność, natomiast przybywa aplikacji, w których na znaczeniu zyskują niezawodność, poprawność i trwałość zapisu danych. Wychodząc naprzeciw takim oczekiwaniom, producenci uzupełniają pamięci o jednostki obliczeniowe. To z kolei, dzięki odciążeniu głównego procesora, otwiera drogę do nowych zastosowań.

Posłuchaj
00:00

Przewiduje się, że w niedalekiej przyszłości w sieciach Internetu Rzeczy komunikować się może kilkanaście miliardów urządzeń, od aut autonomicznych, przez węzły sieci czujników w przemyśle, automatykę domową, po implanty medyczne i elektronikę noszoną. Za obsługę przynajmniej części ogromnego ruchu sieciowego przez nie generowanego, z którym dotychczas wiązano największe obawy, odpowiadać będą wdrażane już w kilku częściach świata sieci 5G.

W tym zakresie jednak pojawiają się dodatkowe kontrowersje. Wynikają one ze stawianych coraz częściej pytań o to: które urządzenia powinno się podłączać do chmury? Jaką część informacji do niej przesyłać? Czy część danych można przetwarzać lokalnie? Na końcu zaś zawsze pojawia się pytanie często najważniejsze: ile to będzie kosztować?

Przesyłać czy nie przesyłać?

Podejście zakładające przesyłanie wszystkich danych do chmury i ich zdalne przetwarzanie tam z pewnością sprawdzić się może w przypadku mniejszych, odizolowanych systemów. W miarę jednak jak obciążenie zdalnych serwerów będzie rosło – a przykładowo pojedynczy autonomiczny samochód może generować nawet kilka gigabajtów danych na godzinę podczas jazdy – większą uwagę zacznie się przywiązywać do kosztów korzystania z chmury w porównaniu do kosztów lokalnego przechowywania i przetwarzania informacji.

Przewiduje się, że z dużym prawdopodobieństwem ostatecznie zwycięży rozwiązanie "przetwarzaj na miejscu i przesyłaj inteligentnie", czyli na przykład partiami i po skompresowaniu. To sprawia, że lokalne nośniki danych będą zyskiwać na znaczeniu.

Pamięci fail-safe

W zależności od aplikacji, w systemach gromadzących i przetwarzających dane obowiązują różne priorytety. Przykładowo w sieciach czujników w przemyśle generowane są ich bardzo duże ilości. Z kolei w przypadku zasilanych bateryjnie przenośnych urządzeń medycznych, takich jak na przykład implanty medyczne albo aparaty słuchowe, przy wyborze technologii pamięci kluczowe znaczenie ma zużycie energii.

W systemach wspomagania kierowców ADAS (Advanced Driver Assistance Systems) ważna jest natomiast jak najdłuższa żywotność pamięci oraz niezawodność zapisu danych. W niektórych podobnych zastosowaniach o znaczeniu krytycznym z pamięci uruchamia się również system.

Z myślą m.in. o nich opracowywane są pamięci fail-safe. W ich przypadku można mieć pewność, że jeżeli dana wartość zostanie w nich zapisana, ta sama wartość zostanie później odczytana. W przypadku, gdy warunek ten nie będzie mógł być spełniony, błąd zostanie wykryty i system będzie mógł podjąć działania naprawcze.

Jak zapobiegać błędom i wydłużyć żywotność?

Realizuje się to standardowo na kilka sposobów. Przykładowo integralność danych poprawia się, stosując kodowanie korekcyjne ECC (Error Correction Code). Aby sprawdzić, czy dane zostały zapisane poprawnie, uzupełnia się je o nadmiarowe informacje. Po ich rozkodowaniu wiadomo, które bity danych są przekłamane.

Żywotność pamięci można wydłużyć przez optymalizację jej zużycia (wear leveling). Polega to na monitorowaniu częstości użycia poszczególnych bloków pamięci i równomiernym rozmieszczaniu w nich danych tak, aby żaden z bloków nie był czyszczony ani zapisywany częściej niż pozostałe. W efekcie wszystkie bloki pamięci są chociaż raz zapisane, zanim operacja ta zostanie powtórzona. Maksymalna liczba komórek pamięci jest wtedy zużyta minimalnie, a żywotność jest najdłuższa z możliwych.

 
Rys. 1. Główne bloki funkcyjne przykładowej pamięci fail-safe Semper NOR Flash

Nowe podejście w konstrukcji pamięci fail-safe

Wyżej wymienione zadania są obciążające obliczeniowo dla jednostki głównej urządzenia. Dlatego w ostatnim czasie na rynku pojawiły się pamięci z wbudowanymi jednostkami obliczeniowymi. Dzięki temu, zamiast polegać na głównym procesorze, pamięć weryfikuje swoją funkcjonalność i zarządza podstawowymi zadaniami we własnym zakresie. Znacząco przyspiesza to na przykład ładowanie kodu rozruchowego i sprawdzanie integralności danych w operacjach zapisu/odczytu.

Korzystając z pamięci tego typu, można również znacznie przyspieszyć wprowadzenie produktu na rynek, dzięki temu, że wymuszane na przykład przepisami funkcje bezpieczeństwa są łatwiejsze do zrealizowania. Zmniejsza się także wymagana moc obliczeniowa jednostki głównej, co ostatecznie ma wpływ na jej koszt.

Realizacja funkcji fail-safe to jednak tylko jedno z możliwych zastosowań wbudowanych jednostek obliczeniowych. Innym potencjalnym może się stać wykonywanie obliczeń na danych czujnika przed ich zapisaniem. Warto również dodać, że tego typu pamięci są niezawodniejsze, ponieważ nie są zależne od zewnętrznego procesora.

 

Monika Jaworowska

Powiązane treści
ITR i Semicon pracowali nad wydłużeniem żywotności elektroniki
DevAlert - interesująca koncepcja zwalczania błędów w oprogramowaniu
Zobacz więcej w kategorii: Technika
Projektowanie i badania
Tranzystory mocy GaN E-mode i D-mode: rzeczywista wydajność w porównaniu z teorią
Zasilanie
Zaspokojenie ogromnego zapotrzebowania energetycznego serwerów AI dzięki zaawansowanym technologiom
Pomiary
CLEPSYDRA - nowa generacja precyzyjnej synchronizacji czasu dla infrastruktury krytycznej. Elproma tworzy Time-Firewall
Komponenty
Pozorna oszczędność, która niszczy sprzęt. Ukryty problem tanich podkładek termoprzewodzących w nowoczesnej elektronice
Elektromechanika
Obudowy do zastosowań specjalnych
Zasilanie
Zasilanie platform robotycznych - wyzwania i ograniczenia
Zobacz więcej z tagiem: Mikrokontrolery i IoT
Gospodarka
Mikrokontrolery PIC32CM PL10 - wydajność 32-bitowego rdzenia Arm Cortex-M0+ i odporność na zakłócenia w projektach 5 V
Technika
AI oraz ML w systemach embedded
Gospodarka
Kolejny kamień milowy w rywalizacji "mikrokontroler za dolara"

Mikrokontrolery PIC32CM PL10 - wydajność 32-bitowego rdzenia Arm Cortex-M0+ i odporność na zakłócenia w projektach 5 V

Firma Microchip Technology prezentuje nową rodzinę mikrokontrolerów (MCU) PIC32CM PL10, która wprowadza wydajność 32-bitowych rdzeni Arm® Cortex®-M0+ do systemów zasilanych napięciem 5 V. Dzięki zgodności wyprowadzeń z 8-bitowymi rodzinami układów AVR® Dx, nowa seria stanowi doskonałą propozycję dla inżynierów poszukujących łatwej ścieżki migracji z architektury 8-bitowej na 32-bitową, pozbawionej konieczności poważnego przebudowywania układów zasilania na płycie czy uczenia się od nowa obsługi układów peryferyjnych.
Zapytania ofertowe
Unikalny branżowy system komunikacji B2B Znajdź produkty i usługi, których potrzebujesz Katalog ponad 7000 firm i 60 tys. produktów