Prace badawcze

Kierunek prac naszego Zespołu Rekonfigurowalnych Systemów Obliczeniowych jest ściśle związany ze sprzętowym podejściem do problemu przetwarzania danych.
 
Najpowszechniejszy sposób oparty jest oczywiście na metodzie softwarowej. Zaletą tej metody jest niewątpliwe jej prostota i uniwersalność. Okazuje się jednak, że choć obliczenia realizowane przy pomocy procesora mogą być przeprowadzane bardzo szybko,  to jednak szybkość ta jest często niewystarczająca.
 
Technologiczny rozwój elementów przełączających powoduje ciągłe zmniejszanie czasu przeprowadzania obliczeń. Równolegle jednak z pracami nad technologią układów półprzewodnikowych trwają prace nad ulepszaniem architektur procesorów, które to prace w istocie sprowadzają się do umożliwienia równoległego i potokowego prowadzenia obliczeń.
 
Uniwersalna architektura procesora, która z ekonomicznego (cena) punktu widzenia jest jego zaletą, z punktu widzenia wydajności, ilości zużytych zasobów logicznych i wartości rozpraszanej energii jest jednocześnie jego wadą. 

Oczywiste wydaje się, że dla efektywnego wykonania określonego zadania konieczna jest jednostka obliczeniowa strukturalnie do niego dostosowana. Z tego powodu pojawiły się na przykład układy koprocesorów arytmetycznych, których budowa umożliwiała szybsze i z większą precyzją wykonywanie bardziej obliczeń matematycznych. Stąd też  powstanie procesorów sygnałowych, które swoją architekturą odpowiadają algorytmom cyfrowego przetwarzania sygnałów.
 
Oczywiście popularność, powszechność, a co za tym idzie niska cena komputera osobistego wynika z tego, że przy jego pomocy można realizować bardzo wiele różnorakich zadań. Wydaje się więc, że przyspieszanie pracy komputera metodą dostosowania jego architektury do wykonywanego szkodzi jego powszechności. Czasami jednak metoda dedykowanej do zadania architektury idzie w parze z powszechnością. Nikt obecnie nie wyobraża sobie komputera bez multimediów. Dlatego powszechność ich stosowania doprowadziła do wbudowania w procesory ogólnego stosowania odpowiednich struktur przyśpieszających operacje przetwarzania obrazu i dźwięku.
 
Jak zatem poradzić sobie z wyczerpującymi czasowo algorytmami które stosowane są przez węższą grupę użytkowników komputerów? W tym obszarze nieocenione mogą okazać się
coraz szerzej i szybciej rozwijające się układy reprogramowalne.
 
Układy reprogramowalne od dawna znane są w elektronice cyfrowej. Idea ich działania polega na tym, aby dzięki uniwersalnej matrycy bramek logicznych i rekonfigurowalnej struktury połączeń możliwe było wykorzystanie jednego układu na wiele różnych sposobów. Sposób konfiguracji połączeń układu zapisany jest w specjalnym zbiorze programującym układ.
Do niedawna układy te nie oferowały dużej liczby bramek cyfrowych, co ograniczało ich zastosowanie do funkcji pomocniczych w budowie systemów cyfrowych (glue logic). Ponadto tradycyjnie były to układy w których programowanie było złożone, a wielokrotna zmiana konfiguracji niejednokrotnie niemożliwa. 

Rewolucję w sposobie patrzenia na układy programowalne zapoczątkowało pojawienie się układów FPGA. Układy te nie tylko oferowały i oferują w porównaniu z innymi układami programowalnymi największa liczbę zasobów wewnętrznych, ale także wyróżniają się łatwością konfiguracji połączeń, a co ważniejsze możliwością jej zmiany. Konfiguracja układu FPGA typu SRAM znika po odłączeniu od niego zasilania. Także architektura wewnętrzna tych układów pozwala na zastosowanie do dużo poważniejszych zastosowań niż tylko zastosowania pomocnicze.
 
Powyżej przedstawione fakty doprowadziły do powstania pojęcia: „Rekonfigurowalnego Systemu Obliczeniowego”. Idea takiego systemu polega na tym, że zadanie obliczeniowe realizowane jest w specjalnie dla tego celu skonfigurowanym uniwersalnym i rekonfigurowalnym sprzęcie. Wynika z tego oczywiście, że rozwiązanie zadania obliczeniowego wymaga oprócz napisania tradycyjnego programu zaprojektowania odpowiedniej architektury sprzętowej. W praktyce jest to znacznie bardziej skomplikowane i złożone niż napisanie programu dla procesora. Jest to główna przyczyna hamująca rozwój rekonfigurowalnych systemów obliczeniowych.
 
Choć dzięki takim środkom opisu architektury jak języki opisu sprzętu (ang. Hardware Description Languages - HDL) oraz języki wysokiego poziomu (ang. High Leve Languages) projektowanie systemów cyfrowych znacznie się uprościło to jednak ciągle stanowi nie mały problem. Wyzwaniem dla rozwoju tej nowej metody prowadzenia obliczeń jest możliwość automatycznej zamiany algorytmu opisanego w języku wysokiego poziomu na odpowiednią architekturę sprzętową. Jest to istotne jeżeli wziąć pod uwagę konieczność migracji z systemów tradycyjnych dla których algorytmy obliczeniowe w większości opisano właśnie w takich językach.
 
Obszar działalności Zespołu Rekonfigurowalnych Systemów Obliczeniowych to dziedzina układów reprogramowalnych oraz dedykowanych architektur sprzętowych. 
Ze względu na obiecujące znaczenie takich rozwiązań w przyszłości i ciągle jeszcze wiele nierozwiązanych problemów stanową one obszar naszych zainteresowań oraz prowadzonych prac.
 
(pr)