Artykuł dotyczy wykorzystania kompilacji iteracyjnej do optymalizacji warstwy programowej systemów wbudowanych. W oparciu o autorskie narzędzie WIZUTIC zminejszono czas przetwarzania algorytmu szyfrowania DES. Danymi wejściowymi kompilatora są programy sekwencyjne, wynikami programy zrównoleglone zgodnie ze standardem OpenMP oraz zoptymalizowane pod względem lokalności danych. Parametrem kompilacji iteracyjnej jest rozmiar bloku dla transformacji pętli programowej-tiling.
EN
Embedded systems are special-purpose computers that perform one or few dedicated tasks. They are mostly part of larger electronic devices, such as communication devices, home appliances, office automation, business equipment, automobiles, etc. Complexity of computers has grown tremendously in recent years, because multi-core processors are in widespread use. Parallelized programs must be run on multi-core processors to use the most of its computing power. Exploiting parallel compilers for automatic parallelization of sequential programs accelerates design processes and reduces costs of the designed systems. In this paper there is described a WIZUTIC iterative compiler developed by the Faculty of Computer Science and Information Technology of the West Pomeranian University of Technology. It uses the source code of PLUTO parallel compiler developed at the Ohio State University by Uday Bondhugula. A simulated annealing algorithm is used for finding optimization passes for the given program features. Parameters that are changed in each iteration are tile sizes of loop transformation tiling. Experimental tests are described and the speed-up results obtained for the DES encryption algorithm are given.
Complexity of computers has grown tremendously in recent years, because, among others, multi-processor and multi-core architectures are in widespread use. Parallelized programs should run on multi-core processors to use the most of its computing power. Exploiting parallel compilers for automatic parallelization and data locality optimization of sequential programs reduces costs of software. In this paper there is described the WIZUTIC Compiler Framework developed in the Faculty of Computer Science and Information Technology of the West Pomeranian University of Technology. The application uses the source code of the PLUTO parallel compiler developed in the Ohio State University by Uday Bondhugula. The simulated annealing method and the Bees algorithm are used for finding proper transformations of the source code for given program features. The experimental study results using the Data Encryption Standard (DES) algorithm are described and the speed-ups of encryption and decryption processes are presented.
PL
W artykule przedstawiono autorski kompilator zrównoleglający oraz optymalizujący lokalność danych- WIZUTIC oraz jego wykorzystanie do skrócenia czasu przetwarzania algorytmu szyfrowania DES. Do utworzenia kompilatora WIZUTIC transformującego kod źródłowy zapisany w języku C ze źródła do źródła wykorzystano kody źródłowe kompilatora PLUTO autorstwa Uday'a Bondhuguli służącego do optymalizacji lokalności danych z zastosowaniem transformacji tiling oraz zrównoleglenia pętli programowych z wykorzystaniem gruboziarnistej równoległości. W procesie kompilacji wykorzystano technikę kompilacji iteracyjnej oraz dwie metody optymalizacji: symulowane wyżarzanie (SA) oraz algorytm pszczół (BA) służące do określenia odpowiedniego rozmiaru bloku transformacji tiling. Przedstawiono wyniki badań eksperymentalnych dla algorytmu DES pracującego w trybie ECB. Badania przeprowadzona z zastosowaniem maszyny 8-procesorowej Quad Core Intel Xeon Processor Model E7310, kompilatora GCC GNU z wykorzystaniem standardu OpenMP w wersji 3.0 oraz narzędzia do profilowania kodu Intel VTune.
Przedstawiony artykuł uzupełnia jedną z luk w wiedzy dotyczącej tworzenia narzędzi do syntezy logicznej. Udowodniono poprawność i praktyczną skuteczność przedstawionej wiedzy. W przyszłości należy skupić się na poprawieniu implementacji opisanego algorytmu. Zasadne wydaje się także, aby spróbować odmiennego podejścia w kwestii translacji pętli for, czyli zastosowania maszyny stanów. Więcej informacji na ten temat można znaleźć w [18].
EN
The article presents methods of automatic generation of Boolean equations for VHDL sequential statements: if, case and for. The topic is related to logic synthesis domain. The translation proeess is explained in great detail. Apart from that, the article also contains formalized algorithms of generation ol Boolean equation for the chosen VHDL statements. To sum everything up, the article presents a tool which was created upon the algorithms and results of us usage.
Zaprezentowano metodę translacji pętli for języka VHDL do postaci równań boolowskich. Omówiono problemy, jakie można natrafić w tym procesie, a następnie zaprezentowano uniwersalny algorytm. Algorytmy te są przeznaczone do tworzenia oprogramowania wspomagającego projektowanie układów scalonych. Dokonano weryfikacji rozwiązań przy użyciu wybranych przykładów testowych.
EN
The paper presents a method of translation of VHDL for loop statement into a Boolean equation form. In the beginning all the problems which my occur during a translation process are explained and then a universal algorithm is presented. In the end results obtained from testing procedure are included.
Artykuł opisuje problemy występujące podczas translacji instrukcji sekwencyjnych generujących logikę kombinacyjną języka VHDL. Proponowanym formatem wyjściowym są równania boolowskie. Przedstawione w artykule informacje posłużyły za podstawę do stworzenia algorytmów kompilatora przeznaczonego do syntezy logicznej. Ostatnią część artykułu stanowi prezentacja wyników uzyskanych za pomocą wspomnianego narzędzia.
EN
The article describes problems concerning translation of VHDL's sequential statements. The dissertations focus on combination logic so the set of discussed instructions is limited. Knowledge presented became the base for a set of algorithms used in a real VHDL compiler meant for synthesis, which uses Boolean equations as an output format. The tool was put under excessive testing, the results which can be found at the end of the article.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.