Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 7

Liczba wyników na stronie
first rewind previous Strona / 1 next fast forward last
Wyniki wyszukiwania
Wyszukiwano:
w słowach kluczowych:  systemy osadzone
help Sortuj według:

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
PL
Zaprezentowano wpływ redukcji zależności na zużycie zasobów dla pętli programowych zapisanych w języku ANSI-C. Do redukcji zależności wykorzystane zostały popularne techniki (redukcja zmiennych skalarnych, indukcja zmiennych, przekoszenie pętli, podział i łączenie pętli oraz rozszerzenie zmiennych skalarnych) jak również nowe pozwalające na redukcję zależności bez konieczności modyfikacji kodu pętli. Omówiono zużycie zasobów pamięciowych w zależności od zastosowanej transformacji. Dla przykładowych pętli przedstawiono analizę zużycia zasobów w kontekście systemów osadzonych.
EN
The influence of dependence removal techniques on computer resource utilization for program loops is investigated. Source loops are represented in the C language. Removing redundant dependence relations allows reducing time complexity of algorithms whose input is a set of dependence relations while output is a parallel program. In addition, removing dependences leads to reducing computer resource utilization. Well-known techniques and those proposed by the authors are examined. The following well-known techniques are investigated: scalar reduction, induction variable elimination, loop skewing, loop splitting, loop fissioning, and scalar expansion. All techniques are illustrated by means of examples. Additional techniques being examined are removing dependence relations describing the same dependences as well as removing dependence relations representing linear dependent distance vectors. For a chosen example, for each technique under examination, its effectiveness is presented and the effect of com-puter resource utilization is shown.
PL
W artykule został przedstawiony proces optymalizacji kodu programów przeznaczonych do wykonania przez systemy osadzone lub wieloprocesorowe przy pomocy kompilatora optymalizującego. Głównym elementem, dla którego wykonywane są optymalizacje, są pętle, ponieważ to w nich wykonywane jest najwięcej instrukcji a ich optymalizacja ma wpływa na wykorzystanie dostępnych zasobów, co wpływa znacząco na ilość zużywanej przez układy energii. Zaprezentowana została również budowa kompilatora i istotne informacje przechowywane i wykorzystywane do analizy w trakcie kompilacji.
EN
A process of optimization of the program code to be performed by embedded or multiprocessor systems is very complex and time consuming. The code fragments whose optimization brings the greatest effects are loops because they process a large amount of data using the same instructions repeatedly. This makes the execu-tion time of a loop a significant part of the overall program execution time. The time of each iteration affects use of available resources (memory, cache, etc.), which also influences the amount of energy. The program code is subjected to numerous transformations carried out on the basis of analysis of the relationships. This analysis allows determining which pieces of the code can be executed independently of each other. The aim of this paper is to present conversion mechanisms implemented in a paralellizing compiler. These mechanisms are focused on the representation format and description of the loop dependencies. The analysis of dependences allows the submission of many transitions and provides a more optimized version of the code when taking into account such factors as the energy aware code or the execution time.
PL
W poniższym artykule zaprezentowano metody wyszukiwania pętli programowych i zależności między ich iteracjami. Analiza zależności pozwala na określenie, które fragmenty analizowanego kodu programu mogą zostać wykonane niezależnie. Przedstawiono analizę programów w ANSI C, ze wskazaniem możliwości wykorzystania wyników analizy do zmniejszenia użycia zasobów w systemach osadzonych. Zautomatyzowanie analizy pozwala określić klasy algorytmów i ich implementacje, które mogą być optymalizowane, oraz charakter tych optymalizacji.
EN
In the paper there are presented methods of searching for program loops and dependencies between iteration of these loops. Analysis of the dependencies allows determining which parts of the analysed code of the program must be executed sequentially, and which can be executed independently. There are given the results of the analysis of simple algorithms written in ANSI C language, indicating the possibility of using the analysis to reduce the use of resources in embedded systems. Automating the analysis process also allows specifying the types of algorithm classes and their implementation, which can be subjected to optimisation, as well as the nature of these optimisations. In the introduction there is discussed the range of topics dealt with in the paper. In the second paragraph the method for determining the dependencies between instructions is described. Fig. 2 shows the iteration space of the sample loop. The third paragraph presents the basic techniques of loop transformation, which are possible due to the dependency analysis between iterations. The above (and others obtained during the tests) results show the possibilities of allowing the code designer to improve devices and embedded systems. Transformation selection algorithms need different types of dependence description as an input data. The aim of the project described in the paper, which is devoted to the dependency analysis is to provide a variety of the dependency collection description.
PL
Zwiększenie lokalności danych w programie jest niezbędnym elementem zwiększenia wydajności części programowych systemu osadzonego, zmniejszenia zużycia energii oraz redukcji rozmiaru pamięci w układzie. Przedstawiono komplementarne wykorzystanie metody szacowania lokalności danych wobec nowej metody ekstrakcji wątków, ich aglomeracji w celu dostosowania do możliwości docelowej architektury przy zastosowaniu różnych typów podziału iteracji pętli (mapowanie czasowo-przestrzenne) i z uwzględnieniem wpływu zastosowania znanych technik poprawy lokalności danych. Wybór najlepszej kombinacji transformacji kodu pod kątem lokalności danych umożliwia zwiększenie wydajności programu względem wskazanych czynników. Zaprezentowano podejście do analizy lokalności danych dla wybranych pętli, przedstawiono i omówiono wyniki badań eksperymentalnych a także wskazano kierunki dalszych prac.
EN
Increasing data locality in a program is a necessary factor to improve performance of software parts of embedded systems, to decrease power consumption and reduce memory on chip size. A possibility of applying a method of quantifying data locality to a novel method of extracting synchronization-free threads is introduced. It can be used to agglomerate extracted synchronization-free threads for adopting a parallel program to a target architecture of an embedded system under various loop schedule options (space-time mapping) and the influence of well known techniques to improve data locality. The choice of the best combination of loop transformation techniques regarding to data locality makes possible improving program performance. A way of an analysis of data locality is presented. Experimental results are depicted and discussed. Conclusion and future research are outlined.
PL
Projektowanie wysokiego poziomu systemów cyfrowych dotyczy szeregu aspektów związanych bezpośrednio z wybraną metodologią projektowania, modelem formalnym, algorytmami syntezy sprzętowej i programowej opisu behawioralnego. Rozważając sieci Petriego jako model formalny projektowanego systemu, szczególnie interpretowane hierarchiczne sieci Petriego, projektant ma do dyspozycji bogaty zbiór algorytmów analizy formalnej, metod syntezy programowej i sprzętowej. Jednak znane rozwiązania dotyczą przede wszystkim opisu zachowania funkcjonalnego sterowników logicznych, gdzie miejsce sieci reprezentuje logiczną operację przypisania poziomu '0' lub '1' do wyjścia układu (jeden bit lub wektor). Zauważalny jest jednak brak propozycji naukowych wspierających projektowanie systemu opisanego sieciami Petriego, gdzie w miejscu sieci realizowane są złożone instrukcje arytmetyczne lub logiczne. Przykładem sieci Petriego wspierającej w pełni projektowanie systemu sprzętowo-programowego jest siec PNHSDM (ang. Petri Net for Hardware So-ftware Digital Microsystem). Artykuł w sposób ogólny przedstawia model formalny sprzętowo-programowych sieci Petriego PNSHDM, skupiając się szczególnie na metodzie optymalizacji algorytmu syntezy sprzętowej sieci PNHSDM do reprogramowalnych układów FPGA. W pracy podjęto tematykę szeregowania zadań (ASAP, ALAP). Rozwiązano problem systemu przełączania sprzętowych modułów wykonawczych w kontekście planowanych do wykonania zadań. Wyznaczono wzór pozwalający na oszacowanie kosztów realizacji sprzętowej systemu przełączania, który zależny jest od liczby instancjacji i złożoności harmonogramowanej instrukcji.
EN
The high level designing concerns several aspects that are directly related to the designing methodology as well as formal model definition, hardware/software synthesis algorithms, etc. When a Petri nets are considered as a formal model of developing system, especially hierarchical interpreted Petri nets, then a designer has a lot of ready to use and very well documented algorithms dedicated for formal verification, hardware and software synthesis, transformations, etc. However, most of the know solutions for Petri nets concerns designing logic controllers, where a one net place implements simple assigning operation of logical state to the output. There is lack of solutions that use a Petri nets to formalize and describe really system, where a place implements complex algebraic or logic functions. A formal model based on Petri nets for hardware-software digital microsystems (PNHSDM) has been elaborated to eliminate this gap. This paper shortly describes PNHSDM model, but author have concentrate on optimization of hardware Petri nets synthesis algorithm that is responsible to translate functional description into VHDL-RTL language. This approach takes into consideration task scheduling (ASAP, ALAP), presents elaborated solution of switching system for PNHSDM Petri nets as well as provides static hardware cost estimations of the switching system.
PL
Proces projektowy systemów cyfrowych, a w szczególności zintegrowanych sprzętowo-programowych mikrosystemów cyfrowych realizowanych z wykorzystaniem platformy SOPC, nie może być zakończony pomyślnie bez przeprowadzenia sprawdzenia i korekcji ewentualnych błędów projektowych. Do tego celu stosuje się metody walidacji zapisu specyfikacji funkcjonalnej zachowania systemu oraz metody weryfikacji funkcjonalnej projektowanego modelu. W artykule scharakteryzowano oraz omówiono opracowane na Uniwersytecie Zielonogórskim metody i oprogramowanie do walidacji i weryfikacji funkcjonalnej specyfikacji funkcjonalnej modelu opisanej sieciami Petriego.
EN
The design process of the today digital systems, especially integrated hardware-software digital microsystems for SOPC platform, can not be finalized successfully without the verification and debug process. To meet the product requirements, like: system functionality, system stability, time-to-market, project costs, etc; there has to be performed several validation and/or verification tasks to confirm the finale model behaviour with initial/input functional specification. This paper describes validation and verification methods as well as software/tools elaborated and developed at University of Zielona Góra, by the Computing and Engineering Department.
PL
Projektowanie sprzętowo-programowych zintegrowanych systemów cyfrowych jest jedną z najnowszych i wciąż rozwijanych technologii projektowania systemów osadzonych. Innowacja polega na zmianie punktu decyzyjnego w procesie projektowym, tj. punktu podziału systemu na dwie części: sprzęt i program. Podczas procesu projektowego, który operuje na modelu pośrednim systemu, decyzja podziału jest opóźniana tak długo jak to możliwe. W chwili, gdy znane są wszelkie aspekty dotyczące wydajności i ograniczeń analizowanego systemu (takich jak: czas, koszty, interfejs wewnętrzny, i inne), wówczas możliwy jest właściwy podział systemu na część programową i sprzętową. Projektowanie heterogenicznych systemów z wykorzystaniem metodologii projektowania zintegrowanego, wymaga posługiwania się sformalizowanym, matematycznym modele formalnym, który jest pryzmatem budowy modelu pośredniego systemu. Artykuł prezentuje nowy model formalny bazujący na sieciach Petriego, dedykowany dla heterogenicznych systemów zintegrowanych.
EN
The hardware/software co-design is the one of a few newest and still under development design technologies dedicated for embedded systems. The innovation depends on change of the point decision in the design flow, which the design flow concerns system partitioning process. The partitioning decision is delayed as long as it is possible while processing decomposition operations on permanently integrated design. The decision is taken, when there are known all detailed data about possibilities and limitations of analyzed system, e.g.: time, costs, interconnections, etc. To design heterogonous system using hardware-software co-design methodology, there is required (good) formulated, mathematic model that describes complete system functionality, its properties and configuration. This paper presents a new formal model for hardware-software digital systems based on Petri nets.
first rewind previous Strona / 1 next fast forward last
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ć.