Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Spis treści Rodzaje rekonfiguracji Virtex II Pro Podsumowanie Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracji układów FPGA Konfiguracja układu FPGA – programowanie układu FPGA Statyczna rekonfiguracja – częściowa lub całkowita rekonfiguracja układu FPGA w trybie off-line Dynamiczna rekonfiguracja – częściowa lub całkowita rekonfiguracja układu FPGA w trybie on-line Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Statyczna rekonfiguracja praca Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja praca Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rodzaje rekonfiguracji dynamicznej Jednokontekstowa - zmiana konfiguracji (tzw. kontekstu) całej struktury programowalnej Częściowa rekonfiguracja – zmiana konfiguracji części struktury programowalnej Wielokontekstowa – kilka konfiguracji, jedna konfiguracja aktywna, pozostałe mogą być rekonfigurowane Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracja jednokontekstowa Konfiguracja statyczna Część dynamiczna 1 programowanie Część dynamiczna 1 Część dynamiczna 2 Część dynamiczna 2 Nowa konfiguracja Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Częściowa rekonfiguracja Konfiguracja statyczna Część dynamiczna 2 Część statyczna Część dynamiczna 1 Interfejs scalanie Część statyczna Interfejs Część dynamiczna 1 Część dynamiczna 2 Nowa konfiguracja Część dynamiczna 2 ektrakcja Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Częściowa rekonfiguracja Normalna praca bloku stycznego i dynamicznego Separacja bloków Ponowne połączenie bloku statycznego i dynamicznego statyczny dynamiczny Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Konfiguracja wielokontekstowa Konfiguracja statyczna Część dynamiczna 1 Część dynamiczna 1 Część dynamiczna 3 Nowa konfiguracja Część dynamiczna 1 Część dynamiczna 2 C1 C1 Część dynamiczna 3 Część dynamiczna 2 C2 Część dynamiczna 4 C3 C3 C4 Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracji układów FPGA Logika rekonfigurowana zatrzymuje obliczenia podczas inicjalizacji nowej konfiguracji Czas konfiguracji uzależniony jest od wielkości danych konfiguracyjnych Mniejsza granulacja dostarcza większą elastyczność, jednak wnosi większe opóźnienia ze względu na zwiększoną liczbę połączeń Nowsze układy FPGA umożliwiają zarówno rekonfigurację częściową jak i zarazem dynamiczną i częściową Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracja układów Xilinx Virtex Układy Virtex wspierają zarówno częściową jak i dynamiczną rekonfigurację na trzy sposoby: Wielo kolumnowa rekonfiguracja, niezależnie od pozostałej modułów Wielo kolumnowa z komunikacją z poszczególnymi modułami Manipulacje na małej ilości bitów konfiguracji, tylko niewielka część logiki jest przeprogramowana Obecnie trwają pracę nad układami, które mogą zapisać kilka konfiguracji przełączanych w zależności od kontekstu Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracja układów Xilinx Virtex Pośrednie wyniki z obliczeń powinny być zapisane przed rekonfiguracją układu. Niektóre układy mają możliwość przechowywania wyników pośrednich w strukturze logicznej podczas programowania Podział zadań pomiędzy mikroprocesorem i rekonfigurowaną logiką (ang. CO-design) Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Virtex II Pro Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Virtex II Pro Tryb konfiguracji M2 M1 M0 CCLK Szerokość magistrali Dout Master Serial Wy 1 Yes Slave Serial We Master SelectMAP 8 No Slave SelectMAP Boundary Scan Nie dot. Virtex Pro II tryby konfiguracji Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Virtex II Pro Slave Serial – Virtex II Pro pobieranie danych do konfiguracji jako ciąg bitów. Możliwość zaprogramowaniu wielu układów. Układy mogą być połączone w łańcuch Master Serial – interfejs identyczny do slave serial. Wewnętrzny oscylator generuje sygnał zegara konfiguracji CCLK Slave SelectMAP – jest szybszym trybem konfiguracji, dane przesyłane magistralą 8 bitową. Możliwość odczytu konfiguracji Master SelectMAP – interfejs identyczny do Slave SelectMAP, układ wysterowywuje CCLK Bounduary Scan – programowanie, reprogramowanie, testowanie przy użyciu standardu JTAG Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Virtex II Pro Dynamiczna rekonfiguracja możliwa jest w dwóch trybach Slave SelectMAP lub Boundary Scan (JTAG) Dane ładowane są w postaci ramek – nagłówek plus dane, wielkość ramki zależy od układu Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Virtex II Pro Modele dynamicznej częściowej rekonfiguracji Modułowy (ang. Module-based) Projekt od początku tworzony jest modułowo Na etapie implementacji każdy moduł ma ustaloną pozycję, rozmiar Rekonfiguracja polega na przeprogramowaniu całego modułu Różnicowy (ang. Difference-based) Efektywny jeżeli wykonujemy małe zmiany w projekcie, wtedy strumień bitowy zawiera tylko różnice w projektach. Przy większych zmianach należy użyć modelu modułowego Narzędzie BitGen (dostarczane z ISE) może wygenerować ciąg bitów reprezentujący różnice pomiędzy projektami Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Czas programowania Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
ACE – środowisko konfiguracyjne Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Algorytmy adaptacyjne Reprogramowalnego układu FPGA Virtex w misji na Marsa (ang. NASA's Mars Exploration Rover (MER) Mission) Układ jest rekonfigurowany 5 razy w ciągu sekundu Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Rekonfiguracja przy użyciu interfejsu internetowego Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Podsumowanie Zalety Dostosowanie konfiguracji układu do aktualnych wymagań Adaptacja algorytmu Uaktualnienie algorytmu Możliwość realizowania bardzo dużych algorytmów kolejno w odpowiednich konfiguracjach systemu Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
Dynamiczna rekonfiguracja układów FPGA Podsumowanie Zalety Redukcja liczby układów Redukcja poboru mocy Lepsze wykorzystanie dostępnych zasobów sprzętowych Obecne wykorzystanie układów: Pentium - 55% Pentium II - 53% RISC - 44% Wady Czas rekonfiguracji System zarządzający rekonfiguracją Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA