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.
Badania wspierające i powiązane analizy przypadków
Przykład komunikacji satelitarnej
W skrócie, wartość koprocesora polega na odciążeniu głównej jednostki obliczeniowej tak, aby zadania były wykonywane sprzętowo, w czym można wykorzystać przyspieszenia i usprawnienia. Zaletą wyboru takiego projektu jest wzrost netto szybkości obliczeniowej i możliwości oraz - jak dowodzi ten artykuł - redukcja kosztów i czasu rozwoju. Być może jednym z najbardziej przekonujących obszarów zastosowania tych zalet jest obszar systemów komunikacji kosmicznej.
W publikacji "FPGA based hardware as coprocessor" (Urządzenia oparte na macierzy bramek FPGA jako koprocesor), G. Prasad i N. Vasantha opisują, w jaki sposób przetwarzanie danych w macierzy FPGA łączy potrzeby obliczeniowe systemów komunikacji satelitarnej bez wysokich jednorazowych kosztów projektowych (NRE) specjalizowanych układów scalonych (ASIC) lub specyficznych ograniczeń procesora o nieelastycznej architekturze. Podobnie jak to opisano na etapie cyfrowego przetwarzania sygnałów przez mikrokontroler, ich projektowanie rozpoczyna się od procesora aplikacyjnego wykonującego większość intensywnych obliczeniowo algorytmów. W tym punkcie początkowym zidentyfikowano kluczowe części oprogramowania, które zużywają większość cykli zegara procesora (CPU) i przenieśli te części do implementacji języka opisu sprzętu (HDL). Graficzna reprezentacja jest bardzo podobna do przedstawionej wcześniej, jednak zdecydowano się na reprezentację programu aplikacyjnego jako niezależnego bloku, ponieważ może on być realizowany zarówno przez hosta (procesor), jak i urządzenie oparte na macierzy bramek FPGA.
Ilustracja 4: Program aplikacyjny, procesor hosta i sprzęt oparty na macierzy FPGA - przykład zastosowania w komunikacji satelitarnej.
Dzięki wykorzystaniu interfejsu komponentów peryferyjnych (PCI)oraz bezpośredniego dostępu do pamięci (DMA) procesora hosta parametry działania urządzeń peryferyjnych znacznie wzrastają. Jest to najczęściej widoczne w ramach poprawek na potrzeby procesu derandomizacji. Kiedy proces ten był wykonywany w oprogramowaniu procesora hosta, widoczne było wąskie gardło w reakcji systemu w czasie rzeczywistym. Jednak po przeniesieniu na macierz FPGA zaobserwowano następujące korzyści:
- Proces derandomizacji wykonywany w czasie rzeczywistym bez powodowania zatorów
- Obciążenie obliczeniowe procesora głównego zostało znacznie zredukowane i mógł on lepiej spełniać pożądaną funkcję rejestrowania.
- Poprawiono ogólne parametry działania całego systemu.
Wszystko to udało się osiągnąć bez kosztów związanych ze specjalizowanym układem scalonym ASIC, przy jednoczesnym korzystaniu z elastyczności programowalnych układów logicznych [5]. Komunikacja satelitarna wiąże się ze znacznymi wyzwaniami, a to podejście może w sposób sprawdzony spełnić jej wymagania i nadal zapewniać elastyczność projektową.
Przykład samochodowego systemu inforozrywki
Systemy rozrywki w samochodach są cechami wyróżniającymi dla wymagających konsumentów. W przeciwieństwie do większości elektroniki samochodowej, urządzenia te są bardzo widoczne i oczekuje się od nich wyjątkowego czasu reakcji i wydajności. Jednak projektanci często są pod presją bieżących potrzeb projektu i elastyczności, której będą wymagać przyszłe funkcje. W tym przykładzie potrzeby implementacji przetwarzania sygnałów i komunikacji bezprzewodowej zostaną wykorzystane do podkreślenia mocnych stron architektury sprzętowej koprocesora.
Jedna z głównych architektur samochodowych systemów rozrywkowych została opublikowana przez korporację Delphi Delco Electronics Systems. W architekturze tej zastosowano mikrokontroler MCU SH-4 z towarzyszącym mu specjalizowanym układem scalonym (ASIC), peryferyjnym układem Amanda HD64404 firmy Hitachi. Architektura ta zaspokajała ponad 75% podstawowych potrzeb rynku motoryzacyjnego w zakresie rozrywki, jednak brakowało jej możliwości obsługi wideo i komunikacji bezprzewodowej. Poprzez włączenie macierzy bramek FPGA do istniejącej architektury, można jeszcze bardziej zwiększyć elastyczność i możliwości do tego już istniejącego podejścia projektowego.
Ilustracja 5: Architektura koprocesorowa z macierzą bramek FPGA dla systemu inforozrywki - przykład 1.
Architektura na ilustracji 5 nadaje się zarówno do przetwarzania wideo, jak i do zarządzania komunikacją bezprzewodową. Dzięki przesunięciu funkcji cyfrowego procesora sygnałowego (DSP) do bezpośrednio programowanej macierzy bramek FPGA, procesor Amanda może pełnić funkcję zarządzania systemem i jest uwolniony od konieczności implementacji stosu komunikacji bezprzewodowej. Ponieważ zarówno procesor Amanda, jak i macierz FPGA mają dostęp do pamięci zewnętrznej, dane mogą być szybko wymieniane pomiędzy procesorami i komponentami systemu.
Ilustracja 6: Architektura koprocesorowa z macierzą bramek FPGA dla systemu inforozrywki - przykład 2.
Drugi system inforozrywki na ilustracji 6 podkreśla zdolność macierzy bramek FPGA do obsługi zarówno przychodzących szybkich danych analogowych, jak i kompresji i kodowania potrzebnych w zastosowaniach wideo. W rzeczywistości cała ta funkcjonalność może być przesunięta do macierzy FPGA, a dzięki zastosowaniu przetwarzania równoległego, wszystkie te funkcje mogą być realizowane w czasie rzeczywistym.
Włączając macierz bramek FPGA do istniejącej architektury sprzętowej, sprawdzone parametry działania istniejących urządzeń można połączyć z elastycznością i zabezpieczeniem na przyszłość. Nawet w ramach istniejących systemów architektura koprocesorowa zapewnia projektantom opcje, które w innym przypadku nie byłyby dostępne [6].
Zalety szybkiego prototypowania
W swojej istocie proces szybkiego prototypowania dąży do objęcia znacznej części obszaru rozwoju produktu poprzez równoległe wykonywanie zadań, szybką identyfikację „błędów” i problemów projektowych oraz walidację danych i ścieżek sygnałowych, szczególnie tych, które leżą w obrębie ścieżki krytycznej projektu. Aby jednak ten proces rzeczywiście przyniósł optymalne i efektywne rezultaty, musi istnieć wystarczająca wiedza specjalistyczna w wymaganych obszarach projektu.
Tradycyjnie oznacza to, że w zespole musi być inżynier sprzętowy, inżynier oprogramowania wbudowanego lub cyfrowych procesorów sygnałowych (DSP) oraz inżynier języka opisu sprzętu (HDL). Jest mnóstwo specjalistów interdyscyplinarnych, którzy mogą być w stanie spełnić wiele ról, jednak koordynacja tych wysiłków w projekcie wymaga znacznych nakładów.
W swojej pracy pt. „FPGA based rapid prototyping platform for wavelet coprocessors” (Platforma prototypowania oparta na macierzy bramek FPGA do koprocesorów falkowych), autorzy promują koncepcję, że użycie architektury koprocesorowej pozwala pojedynczemu inżynierowi DSP wydajnie i skutecznie wypełnić wszystkie te funkcje. Na potrzeby tej analizy zespół rozpoczął projektowanie i symulację żądanych funkcji cyfrowego procesora sygnałowego (DSP)SP w narzędziu Simulink programu MATLAB. Spełniło to dwie podstawowe funkcje: 1) zweryfikowało pożądane osiągi poprzez symulację oraz 2) posłużyło jako punkt odniesienia, z którym można porównywać przyszłe wybory projektowe.
Po przeprowadzeniu symulacji zidentyfikowano krytyczne funkcje i podzielono je pomiędzy poszczególne rdzenie - są to komponenty miękkich rdzeni i procesory, które mogą być syntetyzowane w ramach macierzy FPGA. Najważniejszą czynnością podczas tych prac było zdefiniowanie interfejsu pomiędzy rdzeniami i komponentami oraz porównanie wydajności wymiany danych z żądaną, symulowaną wydajnością. Omawiany proces projektowania jest ściśle dopasowany do przepływu projektowania systemów wbudowanych firmy Xilinx i jest przedstawiony na ilustracji 7 poniżej.
Ilustracja 7: Przepływ projektu wdrożeniowego.
Dzięki podzieleniu systemu na syntezowalne części, inżynier DSP może skupić się na najbardziej krytycznych aspektach łańcucha przetwarzania sygnału. Nie musi on być ekspertem w dziedzinie sprzętu lub języka opisu sprzętu (HDL), aby modyfikować, trasować lub implementować różne procesory z miękkimi rdzeniami lub komponenty w macierzy bramek FPGA. Dopóki projektant jest świadomy interfejsu i formatów danych, ma pełną kontrolę nad ścieżkami sygnału i może udoskonalać parametry działania systemu.