Architektura koprocesora: architektura systemu wbudowanego do szybkiego prototypowania
Architektura koprocesorowa jest dobrze znana z wydajności i przepustowości przetwarzania i daje projektantom systemów wbudowanych zarówno możliwości poprawy kosztów rozwoju, jak i skracają czas wprowadzenia produktu na rynek.
Etap zarządzania systemem za pomocą mikrokontrolera
Ilustracja 3: Architektura - zarządzanie systemem za pomocą mikrokontrolera. (Źródło ilustracji: CEPD)
Drugi etap rozwoju możliwy dzięki podejściu koprocesorowemu, jest definiowany przez przeniesienie procesów cyfrowego procesora sygnałowego (DSP) i implementacji algorytmów z mikrokontrolera MCU do bezpośrednio programowalnej macierzy bramek (FPGA). Macierz FPGA jest nadal odpowiedzialna za szybki interfejs przetwornika analogowo-cyfrowego (ADC), jednak dzięki przejęciu innych ról, szybkość i równoległość oferowana przez macierz FPGA jest w pełni wykorzystana. Co więcej, w przeciwieństwie do mikrokontrolera MCU, można jednocześnie zaimplementować i uruchomić wiele wystąpień procesów cyfrowego procesora sygnałowego (DSP) i kanałów algorytmów.
Bazując na doświadczeniach zdobytych podczas wdrażania mikrokontrolerów MCU, projektant przenosi tę pewność na kolejny etap. Narzędzia, takie jak wspomniane wcześniej Vivado HLS firmy Xilinx, zapewniają funkcjonalną translację z wykonywalnego kodu C/C++ na syntezowalny język opisu sprzętu (HDL). Teraz trzeba jeszcze zdefiniować i zaimplementować ograniczenia czasowe, parametry procesu i inne preferencje użytkownika, jednak podstawowa funkcjonalność jest zachowana i przeniesiona na strukturę macierzy FPGA.
Na tym etapie mikrokontroler MCU pełni rolę menedżera systemu. Rejestry stanu i sterowania są monitorowane, aktualizowane i zgłaszane przez mikrokontroler MCU. Ponadto mikrokontroler MCU zarządza interfejsem użytkownika. Interfejs użytkownika może mieć formę serwera internetowego dostępnego przez połączenie Ethernet lub Wi-Fi, lub może to być przemysłowy interfejs dotykowy dający dostęp użytkownikom w miejscu użytkowania. Kluczową kwestią dotyczącą nowej, bardziej wyrafinowanej roli mikrokontrolera MCU jest to, że dzięki odciążeniu od zadań wymagających intensywnych obliczeń, zarówno mikrokontroler MCU, jak i macierz FPGA są teraz wykorzystywane w zadaniach, do których są dobrze przystosowane.
Na tym etapie powstają też kluczowe wyniki, które dają również następujące korzyści:
- Macierz FPGA zapewnia szybką, równoległą realizację procesów DSP i implementację algorytmów.Mikrokontroler MCU zapewnia responsywny i usprawniony interfejs użytkownika oraz zarządza procesami produktu.
- Ponieważ ryzyka algorytmiczne zostały najpierw opracowane i ocenione w obrębie mikrokontrolera MCU, zostały one złagodzone, a działania łagodzące zostały przekształcone na syntezowalny język HDL. Narzędzia, takie jak Vivado HLS, ułatwiają przeprowadzenie takiego przekształcenia. Co więcej, ryzyka specyficzne dla macierzy FPGA mogą zostać zminimalizowane poprzez zintegrowane narzędzia symulacyjne, takie jak pakiet projektowy Vivado.
- Interesariusze nie są narażeni na znaczące ryzyko poprzez przeniesienie procesów do macierzy FPGA. Wręcz przeciwnie, mają oni okazję zobaczyć i cieszyć się korzyściami, jakie zapewnia szybkość i równoległość działania macierzy FPGA. Zaobserwowano wymierną poprawę wydajności i można teraz skupić się na przygotowaniu projektu do produkcji.
Etap wdrażania produktu
Dzięki temu, że intensywne obliczeniowo przetwarzanie odbywa się w bezpośrednio programowalnej macierzy bramek (FPGA), a mikrokontroler MCU zajmuje się zarządzaniem systemem i obsługą interfejsu użytkownika, produkt jest gotowy do wdrożenia. Niniejszy artykuł nie zaleca omijania wersji alfa i beta, jednak nacisk na tym etapie położono na możliwości, jakie architektura koprocesora zapewnia przy wdrażaniu produktu.
Zarówno mikrokontroler MCU jak i macierz FPGA są urządzeniami, które można aktualizować w terenie. Dokonano szeregu postępów, aby aktualizacje macierzy FPGA były tak samo dostępne, jak aktualizacje oprogramowania. Ponadto, ponieważ macierz FPGA znajduje się w przestrzeni adresowalnej pamięci mikrokontrolera MCU, może on służyć jako punkt dostępu dla całego systemu, odbierając aktualizacje zarówno dla siebie, jak i dla macierzy FPGA. Aktualizacje mogą być warunkowo planowane, dystrybuowane i dostosowywane do poszczególnych użytkowników końcowych. Można również prowadzić pliki dzienników użytkowników i przypadków użycia i kojarzyć je z konkretnymi implementacjami kompilacji. Na podstawie tych zbiorów danych można udoskonalać i poprawiać parametry działania nawet po tym, jak produkt znajdzie się w terenie.
Być może zalety tej całościowej możliwości aktualizacji są najlepiej widoczne w zastosowaniach kosmicznych. Po wprowadzeniu produktu na rynek konserwacja i aktualizacje muszą być przeprowadzane zdalnie. Może to być tak proste, jak zmiana warunków logicznych, lub tak skomplikowane, jak aktualizacja schematu modulacji komunikacji. Możliwości programowania oferowane przez technologie FPGA i architekturę koprocesorową mogą pomieścić cały ten zakres możliwości, oferując jednocześnie wybór komponentów odpornych na promieniowanie.
Ostatnią kluczową kwestią na tym etapie jest stopniowa redukcja kosztów. Na tym etapie może wystąpić również redukcja kosztów, zmiany w wykazie materiałów (BOM) i inne optymalizacje. Podczas wdrożeń w terenie może się okazać, że produkt może działać równie dobrze z tańszym mikrokontrolerem MCU lub mniej wydajną macierzą FPGA. Dzięki koprocesorowi projektanci architektury nie są skazani na używanie komponentów, których możliwości przekraczają potrzeby aplikacji. Ponadto, jeśli któryś z komponentów przestanie być dostępny, projektowana architektura pozwala na zintegrowanie nowych komponentów. Nie jest tak w przypadku architektury jednoukładowej, układu SoC, czy też wysokowydajnego procesora DSP lub mikrokontrolera MCU, który próbuje obsłużyć całe przetwarzanie produktu. Architektura koprocesora stanowi dobre połączenie możliwości i elastyczności, dając projektantowi więcej możliwości wyboru i swobody zarówno w fazie rozwoju, jak i po wprowadzeniu na rynek.