Wydajność kontra pobór mocy w systemach embedded, czyli jak znaleźć kompromis w projekcie
| Prezentacje firmowe Mikrokontrolery i IoTNiewielkie wymiary, a więc miniaturyzacja, jest obecnie kluczową cechą większości systemów wbudowanych (embedded). Chcemy mieć więcej mocy obliczeniowej w produktach, które mieszczą się w kieszeni. Wiele systemów wbudowanych opartych na FPGA również podąża za tym samym trendem. Na rynku jest coraz więcej miniaturowych kamer przemysłowych, przenośnych urządzeń medycznych, małych programowalnych sterowników logicznych (PLC) oraz modułów wspomagających kierowcę w pojazdach. Miniaturyzacja wiąże się również z dodatkowymi wyzwaniami, dla których wspólnym mianownikiem może być określenie "wydajność energooszczędna".
Zazwyczaj, jeśli wydajność urządzenia wzrasta, rośnie również jego zużycie energii, co z kolei zwiększa rozpraszanie ciepła. Niestety im mniejszy gabaryt, tym rozpraszanie ciepła staje się bardziej kłopotliwe. Zapewnienie chłodzenia w taki sposób, aby sprzęt mógł działać w szerokim zakresie temperatur otoczenia, często staje się wąskim gardłem dla wydajności. W tym artykule zilustrowano, w jaki sposób układy FPGA umożliwiają tworzenie rozwiązań masowych nowej generacji, zapewniających energooszczędność i jednocześnie wydajność dla wielu zastosowań w życiu codziennym.
Złożoność potrzebuje wydajności
Kamery o niewielkich rozmiarach razem z algorytmami sztucznej inteligencji pomagają w rolnictwie razem z dronami, zapewniają analizę sygnałów wideo w sieciach handlowych, odpowiadają za liczenie pasażerów w transporcie zbiorowym i realizują odczytywanie tablic rejestracyjnych w punktach poboru opłat. W medycynie przenośne ultrasonografy ułatwiają świadczenie opieki medycznej w terenie, a endoskopy i inteligentne okulary wspomagające operacje zapewniają lekarzom obrazy o znacznie lepszej rozdzielczości niż kiedykolwiek wcześniej. Systemy nadzoru, oparte na kamerach termowizyjnych, chronią granice państwa przed intruzami i również stają się coraz bardziej inteligentne. Pracują one w niedostępnych lokalizacjach, stąd muszą działać autonomicznie oraz pozostawać w ukryciu.
Twórcy treści multimedialnych napędzają zapotrzebowanie na konwertery strumieni wideo na FPGA, realizując w locie konwersję 4K między dowolnymi interfejsami, takimi jak HDMI, SDI, USB lub PCIe. Automatyka przemysłowa korzysta również z elastyczności architektury bazującej na układach FPGA i ponad 20-letniej dostępności chipów FPGA zapewnianej przez firmę Microchip. Z kolei systemy wspomagania kierowcy w motoryzacji zapewniają bezpieczeństwo kierowcy i pasażerom w pojazdach.
Na przestrzeni ostatnich lat architektura FPGA znacząco się zmieniła. Dawniej projektanci wybierali układy, kierując się wydajnością i poborem mocy i wykorzystywali je jedynie jako platformę do prototypowania drogich ASIC-ów, obecnie układy FPGA spopularyzowały się w wielu aplikacjach, zapewniając niezawodne i zoptymalizowane kosztowo architektury wraz z elastycznym i łatwym w użyciu oprogramowaniem.
Przyjrzyjmy się różnym przykładowym rozwiązaniom, w których PolarFire FPGA lub PolarFire SoC ze zintegrowanym procesorem RISC-V odgrywają charakterystyczną rolę.
Profesjonalne drony
Drony używane w działalności profesjonalnej muszą spełniać surowe wymagania dotyczące bezpieczeństwa lotu, takie jak dokładna kontrola pozycji, zdolność do unikania kolizji, realizacja zabezpieczonej komunikacji, w tym kanały kontrolne oraz raportować przewidywalny czas lotu.
Aby producent mógł odnieść sukces na dużym rynku UAV, produkt musi się czymś wyróżniać, a więc zapewnić dodatkowe funkcje, takie jak obrazowanie w wysokiej rozdzielczości i funkcje sztucznej inteligencji. Drony często wymagają wielu czujników, zapewnienia wstępnego przetwarzania danych lub łączenia danych z wielu czujników (fuzji) i przesyłania ich bezprzewodowo. Taka funkcjonalność czyni je złożonymi systemami elektronicznymi.
Zakres zastosowań dronów jest bardzo szeroki i obejmuje monitorowanie stanu upraw w rolnictwie, wykrywanie obiektów potencjalnie niebezpiecznych w policji, wojsku lub wspomaganie decyzji w sytuacjach awaryjnych dla straży pożarnej.
Elektronika systemu kontroli lotu musi być w stanie poradzić sobie ze sterowaniem silnikami i prędkością wirowania śmigieł, współdziałać z czujnikami i łączyć się ze zdalnym hostem, a wszystko to w środowisku o ograniczonych gabarytach, jak najmniejszej wadze i pobieranej mocy. Schemat blokowy takiego systemu może wyglądać jak na rysunku 1.
Wykorzystuje on zalety elastycznej architektury FPGA, gdzie silniki są sterowane przez algorytmy wektorowe (Field- Oriented Control, FOC). Duża wydajność przetwarzania FPGA pozwala na sterowanie multipleksowe w dziedzinie czasu i obsługiwać tym samym wiele silników za pomocą tego jednego algorytmu sterującego.
Duża dokładność zapewniana przez algorytm sterowania wektorowego umożliwia zapewnienie jednakowego momentu obrotowego w silnikach, co skutkuje płynniejszym działaniem z mniejszymi wibracjami, mniejszym hałasem i, co najważniejsze, wydłużeniem czasu lotu o około 10% lub więcej w porównaniu ze standardowymi sterownikami silników wykorzystującymi proste układy sterujące na mikrokontrolerach.
Dodatkowe czujniki światła, ruchu lub podczerwieni używane są do realizacji zaawansowanych funkcji, takich jak systemy widzenia maszynowego. Dawniej ich realizacja wymagała specjalistycznych kompetencji. Teraz dzięki bibliotekom oprogramowania takim jak VectorBlox SDK firmy Microchip i blokom IP procesora macierzowego nawet początkujący programiści są w stanie użyć FPGA do realizacji złożonych algorytmów sieci neuronowych. Pozwala to na klasyfikację obiektów lub ich wykrywanie przy bardzo niskim zużyciu energii. Sieci neuronowe działające na tym akceleratorze IP są projektowane przy użyciu standardowych platform, takich jak TensorFlow lub Caffe.
Wszystkie wyniki pomiarów są buforowane w lokalnej pamięci sterownika, a następnie przesyłane do modułu komunikacji bezprzewodowej. Drogą radiową przesyłane są do operatora, gdzie są przechowywane i dalej wykorzystywane. Najlepsze w swojej klasie zabezpieczenia urządzeń PolarFire chronią zarówno przesyłane dane, jak i sam dron przed nieautoryzowanym dostępem i wrogimi działaniami.
Przy złożonej architekturze kontrolera drona, która wymaga wielu podsystemów do sterowania silnikiem, kontroli lotu i obrazowania, użycie FPGA zapewnia korzyści wynikające z możliwości równoległego wykonywania poszczególnych "zadań". Drony do takich zastosowań zazwyczaj muszą działać przy ograniczeniu mocy pobieranej do 5 watów lub mniej. Używając PolarFire FPGA do realizacji wielu aplikacji, daje się zbić pobór mocy do poziomu mniej niż 1,5 W, wliczając w to działanie sieci neuronowej.
Przenośne USG
Na rynku pojawia się coraz więcej miniaturowych aplikacji medycznych o dużych możliwościach diagnostycznych. Dzięki brzegowym energooszczędnym jednostkom obliczeniowym o dobrych właściwościach termicznych takie urządzenia nadają się także do obrazowania medycznego. Prym w rozwoju wiodą diagnostyka przyłóżkowa, taka jak przenośny sprzęt USG, składający się z głowicy ultradźwiękowej odczytującej sygnały echa i przesyłającej dane ultrasonograficzne do zwykłego smartfona. Transmisja może odbywać się za pomocą kabla lub bezprzewodowo. Takie systemy rewolucjonizują możliwości diagnostyczne ratowników medycznych w mniej rozwiniętych regionach oraz pomagają lekarzom w diagnostyce pozaszpitalnej. Na rysunku 2 pokazano schemat blokowy takiego rozwiązania.
Wykorzystanie FPGA PolarFire w takim urządzeniu charakteryzuje się minimalnym całkowitym poborem mocy przez głowicę i zawartą w niej sondę, co także zapewnia jej niską temperaturę podczas pracy umożliwiającą bezpośredni kontakt przyrządu ze skórą. Poza tym mały pobór mocy wydłuża czas pracy urządzenia i pozwala na zamknięcie układu w kompaktowej obudowie. Wymiary chipa FPGA wynoszą tylko 11×11 mm.
Konwertery wideo
Innym obszarem, w którym niezbędna jest elastyczność konfiguracji i funkcjonalności razem z małym zużyciem energii i niewielkimi gabarytami, są konwertery sygnałów wideo. Profesjonalne, wydajne kamery zazwyczaj mają jeden interfejs na wyjściu, co ogranicza wybór sprzętu do przetwarzania do tego, który obsługuje ten konkretny interfejs. Z kolei konwerter wideo realizuje most do kilku standardów interfejsów, co daje swobodę w wyborze sprzętu. Wydajność nie jest problemem, ponieważ obsługa protokołów jest realizowana z użyciem wielu multigigabitowych transceiverów o szybkości do 12,7 Gb/s, które obsługują protokoły HDMI, CoaXPress, SDI i Ethernetu. Takie konwertery mają kompaktową konstrukcję, bez radiatorów i wentylatorów. Szacuje się, że konwertery wideo zbudowane z użyciem układów PolarFire pobierają mniej niż dwa waty mocy. Na rysunku 3 pokazano schemat blokowy takiego sprzętu.
Automatyka przemysłowa
W obszarze automatyki przemysłowej podajemy jako przykład użycia FPGA kamerę przemysłową i sterownik PLC. Kamery przemysłowe zazwyczaj zapewniają dużą liczbę klatek na sekundę (fps), mają dużą rozdzielczość przy niewielkich rozmiarach, co sprawia, że panowanie nad wzrostem temperatury w ich układach przetwarzania obrazu jest często problematyczne. Z użyciem FPGA to się udaje: mała obudowa i niski pobór mocy sprawiają, że urządzenie pozostaje chłodne nawet przy dużej rozdzielczości. Obraz o rozdzielczości do 4 K przy 60 klatkach na sekundę może być łatwo transmitowany za pomocą interfejs MIPI CSI-2 natywnie obsługującego strumień danych do 1,5 Gb/s/linię.
Mimo większych wymiarów sterowniki przemysłowe mają podobnie ograniczone wymiary i tym samym problemy z ciepłem jak kamery. Mają konstrukcję modułową pozwalającą na konfigurowanie przez użytkownika i są produkowane w standardowych wymiarach różniących się szerokością. Pracują podłączone do szybkich sieci ethernetowych, realizują interfejs HMI, sterują silnikami i działają pod kontrolą systemów czasu rzeczywistego (RTOS).
Rysunek 4 przedstawia ogólny schemat takiego systemu wykonanego z użyciem SoC-a PolarFire, opartego na czterordzeniowym procesorze RISC-V. Układ SoC PolarFire SoC realizuje natywne asymetryczne przetwarzanie wieloprocesorowe (AMP) wraz ze stałym przydzielaniem pamięci podręcznej o małej wielkości sektora do poszczególnych procesorów. Natywna obsługa AMP pozwala na wielozadaniowość. Przykładowo jeden rdzeń procesora może być odpowiedzialny za obsługę stosu sieci Ethernet, podczas gdy drugi może obsługiwać system operacyjny, taki jak Linux. Dodatkowo dwa pozostałe dostępne rdzenie mogą być wykorzystane do obsługi silnika lub realizacji falownika.
W tym przypadku małe zużycie energii także odgrywa ważną rolę w utrzymaniu niskiej temperatury komponentów elektronicznych wewnątrz obudowy sterownika i umożliwia działanie nawet w trudnych warunkach środowiskowych, tj. przy temperaturze otoczenia przekraczającej 60°C.
Branża automatyki przemysłowej obejmuje szeroki zakres zastosowań i klas urządzeń. Ich wspólną cechą i powszechną praktyką producentów jest dostępność wsparcia posprzedażnego i dostępność elementów przez 20 lat. Firma Microchip w pełni akceptuje takie wymaganie zapewnienia długiej dostępności i gwarantuje wsparcie w takim okresie.
Motoryzacja
W wielu zastosowaniach na rynku motoryzacyjnym wymaga się zapewnienia elastyczności projektowej charakterystycznej dla układów FPGA. Są to LIDAR-y, radary mikrofalowe lub kamery, a także sterowniki silników trakcyjnych w pojazdach o napędzie elektrycznym, które wymagają zapewnienia dokładnej synchronizacji. Szybko rozwijają się aplikacje wykorzystujące kamery do ostrzegania przed kolizją. Umożliwiają one wykrywanie potencjalnie niebezpiecznych sytuacji, sygnalizowanie ich kierowcy lub wymuszanie kontroli nad pojazdem takiej jak automatyczna aktywacja hamowania.
Systemy te mają wysokie wymagania w zakresie bezpieczeństwa funkcjonalnego, bezpieczeństwa danych i ich przetwarzania z małymi opóźnieniami w połączeniu z możliwością niezawodnej pracy w środowiskach o wysokiej temperaturze, jaka panuje pod maską. Na rysunku 5 pokazano schemat konfiguracji takiego systemu z użyciem układu PolarFire MPF050T. Elementy zabezpieczające są narysowane na żółto, zabezpieczenia na zielono.
Zintegrowana bezpieczna pamięć nieulotna (sNVM) umożliwia przechowywanie kluczy identyfikujących flotę pojazdów w module kamery do ich uwierzytelnienia w sieci. Zarejestrowane ramki obrazu są przetwarzane w trybie przesyłania strumieniowego danych wideo z wykorzystaniem równoległej architektury FPGA i uzupełnione o informacje dotyczące bezpieczeństwa, takie jak liczba ramek obrazowych i ich suma CRC dla ochrony komunikacji w całym łańcuchu przetwarzania i obróbki danych. Przetwarzanie strumieniowe danych wizyjnych pozwala uniknąć niebezpieczeństwa podłożenia zapisanych wcześniej materiałów wideo i umożliwia przetwarzanie ze stałym czasem wykonania, co bezpośrednio przekłada się na krótszy czas reakcji systemu na zdarzenie. W zależności od wymagań klienta FPGA zapewnia również obsługę serializerów różnych firm.
Kryteria pozatechniczne
Wspólne dla wszystkich opisanych zastosowań są ponadto kryteria biznesowe prowadzące do wprowadzenia udanego produktu na rynek. Aby zmniejszyć ryzyko niepowodzenia, dotrzeć do klienta przed konkurencją i zoptymalizować koszty, należy dokładnie rozważyć architekturę systemu i dostawcę półprzewodników. Kompleksowe portfolio układów firmy Microchip i referencyjne projekty zmniejszają ryzyko pomyłki w projekcie i ograniczają liczbę wymaganych komponentów. Firmy mogą również zaoszczędzić czas i pieniądze, ponieważ opisywane rozwiązania są sprawdzane pod kątem różnych zastosowań i producent w wielu przypadkach oferuje na nie gwarancję.
Więcej informacji jest na stronie: https://www.microchip.com/en-us/products/fpgas-and-plds/fpgas/polarfire-fpgas.
Microchip
www.microchip.com