1 Dynamiczna rekonfiguracja układów FPGA
2 Dynamiczna rekonfiguracja układów FPGASpis treści Rodzaje rekonfiguracji Virtex II Pro Podsumowanie Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
3 Rekonfiguracji układów FPGAKonfiguracja 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
4 Statyczna rekonfiguracjapraca Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
5 Dynamiczna rekonfiguracjapraca Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
6 Rodzaje rekonfiguracji dynamicznejJednokontekstowa - 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
7 Rekonfiguracja jednokontekstowaKonfiguracja 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
8 Częściowa rekonfiguracjaKonfiguracja 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
9 Częściowa rekonfiguracjaNormalna 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
10 Konfiguracja wielokontekstowaKonfiguracja 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
11 Rekonfiguracji układów FPGALogika 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
12 Rekonfiguracja układów Xilinx VirtexUkł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
13 Rekonfiguracja układów Xilinx VirtexPoś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
14 Dynamiczna rekonfiguracja układów FPGAVirtex II Pro Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
15 Dynamiczna rekonfiguracja układów FPGAVirtex 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
16 Dynamiczna rekonfiguracja układów FPGAVirtex 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
17 Dynamiczna rekonfiguracja układów FPGAVirtex 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
18 Dynamiczna rekonfiguracja układów FPGAVirtex 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
19 Dynamiczna rekonfiguracja układów FPGACzas programowania Mariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
20 ACE – środowisko konfiguracyjneMariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
21 Algorytmy adaptacyjneReprogramowalnego 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
22 Rekonfiguracja przy użyciu interfejsu internetowegoMariusz Kwiczala Katedra Elektroniki AGH Kraków © 2004 Dynamiczna rekonfiguracja układów FPGA
23 Dynamiczna rekonfiguracja układów FPGAPodsumowanie 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
24 Dynamiczna rekonfiguracja układów FPGAPodsumowanie 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