Programowalne macierze bramek (FPGA) są fundamentem wielu zaawansowanych systemów elektronicznych na świecie. Znajdują zastosowanie w routerach internetowych, stacjach bazowych sieci bezprzewodowych, skanerach medycznych oraz niektórych narzędziach sztucznej inteligencji. Ich unikalna cecha — możliwość rekonfigurowania obwodów po procesie produkcyjnym — zrewolucjonizowała branżę półprzewodników.
12 marca br. na terenie kampusu Advanced Micro Devices w San Jose (Kalifornia) — dawnej siedzibie firmy Xilinx i kolebki technologii FPGA — odsłonięto tablicę pamiątkową IEEE Milestone. Uhonorowano nią pierwsze urządzenie tego typu, które wprowadziło iteracyjność do projektowania układów scalonych. Dzięki FPGA inżynierowie mogli wielokrotnie modyfikować sprzęt bez konieczności wytwarzania nowego chipa, co znacznie obniżyło ryzyko rozwoju i przyspieszyło innowacje w okresie gwałtownego wzrostu kosztów półprzewodników.
Uroczystość zorganizowana przez oddział IEEE Santa Clara Valley zgromadziła przedstawicieli branży półprzewodnikowej oraz liderów IEEE. Wśród prelegentów znalazł się Stephen Trimberger, członek IEEE i ACM, którego wkład w rozwój architektury FPGA miał kluczowe znaczenie dla współczesnych systemów. W swoim wystąpieniu podkreślił, jak wynalazek ten umożliwił tworzenie sprzętu programowalnego niczym oprogramowanie.
FPGA: rozwiązanie kompromisu między elastycznością a wydajnością
Początki FPGA sięgają lat 80. XX wieku, kiedy to inżynierowie stanęli przed wyzwaniem pogodzenia dwóch przeciwstawnych potrzeb: elastyczności procesorów oraz wydajności układów specjalizowanych.
Mikroprocesory wykonują instrukcje programowe sekwencyjnie, co zapewnia elastyczność, ale często spowalnia pracę w przypadku zadań wymagających równoczesnego przetwarzania wielu operacji. Z kolei układy ASIC (Application-Specific Integrated Circuits) są projektowane do wykonywania ściśle określonych zadań. Osiągają one najwyższą wydajność, jednak ich rozwój wiąże się z długim cyklem projektowym i wysokimi kosztami inżynierii niepowtarzalnej (NRE).
„ASICy oferują najlepszą wydajność, ale proces ich opracowania jest długi, a koszty NRE mogą być bardzo wysokie” — mówi Jason Cong, członek IEEE i profesor informatyki na Uniwersytecie Kalifornijskim w Los Angeles. „FPGA stanowią złoty środek między procesorami a układami dedykowanymi.”
Badania Conga w dziedzinie automatyzacji projektowania FPGA oraz syntezy wysokiego poziomu zrewolucjonizowały sposób programowania systemów rekonfigurowalnych. Opracował on narzędzia syntezy, które tłumaczą kod w językach C/C++ na projekty sprzętowe. Jego prace opierają się na fundamentalnej zasadzie sformułowanej przez inżyniera Rossa Freemana: konfigurowanie sprzętu za pomocą pamięci programowalnej zintegrowanej w układzie pozwala łączyć szybkość sprzętu z elastycznością oprogramowania.
Początki FPGA: rewolucja w Dolinie Krzemowej
Architektura FPGA narodziła się w połowie lat 80. w firmie Xilinx, założonej w 1984 roku w Dolinie Krzemowej. Wynalazek ten przypisuje się Rossowi Freemanowi, współzałożycielowi i ówczesnemu dyrektorowi technicznemu startupu. Jego wizja zakładała stworzenie chipa, którego obwody mogłyby być konfigurowane po procesie produkcyjnym, zamiast być na stałe ustalone podczas produkcji.
Jak podkreślają historycy technologii, Freeman celowo odszedł od ówczesnych standardów projektowania układów scalonych. W tamtych czasach inżynierowie traktowali tranzystory jako zasób deficytowy i starannie optymalizowali każdy z nich pod konkretne zadanie. Freeman przewidział jednak, że prawo Moore’a — mówiące o podwajaniu liczby tranzystorów co dwa lata — doprowadzi do obniżenia kosztów produkcji i zwiększenia mocy obliczeniowej. Jego zdaniem, wraz z rosnącą dostępnością tranzystorów, tradycyjne podejście do projektowania chipów stanie się nieefektywne.
„Freeman zrozumiał, że obfitość tranzystorów otworzy nowe możliwości. Zamiast marnować je na sztywne, dedykowane układy, zaproponował elastyczny system, który można wielokrotnie reprogramować” — wyjaśnia Cong.