Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników

Znaleziono wyników: 10

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

help Ogranicz wyniki do:
first rewind previous Strona / 1 next fast forward last
EN
The paper brings forward an idea of multi-threaded computation synchronization based on the shared semaphored cache in the multi-core CPUs. It is dedicated to the implementation of multi-core PLC control, embedded solution or parallel computation of models described using hardware description languages. The shared semaphored cache is implemented as guarded memory cells within a dedicated section of the cache memory that is shared by multiple cores. This enables the cores to speed up the data exchange and seamlessly synchronize the computation. The idea has been verified by creating a multi-core system model using Verilog HDL. The simulation of task synchronization methods allows for proving the benefits of shared semaphored memory cells over standard synchronization methods. The proposed idea enhances the computation in the algorithms that consist of relatively short tasks that can be processed in parallel and requires fast synchronization mechanisms to avoid data race conditions.
EN
Design and operation of a compiler and virtual machine, being the essential components of a multiplatform control programming environment, are presented. The compiler translates source programs written in Structured Text language of the IEC 61131-3 standard into executable code in a dedicated intermediate language. The virtual machine, i.e. a specially designed processor implemented in software, is a runtime part of the environment executing the code in real time. Due to memory-to-memory operation principle the machine is able to process various data types defined in the standard. The focus is given on overloading and extensibility of the functions, as well as on uniform invocations of Program Organization Units. By selection of addressing mode, the environment can be deployed on multiple hardware platforms, beginning from 8-bit microcontrollers up to 32/64-bit industrial PCs. Industrial applications are indicated.
EN
The paper presents an original idea of the selective control program execution that allows significant response time reduction. The exhaustive analysis of the PLC program performance is given. An analytic approach explains the idea of the selective control program evaluation and gives the requirements for its feasibility. There is presented a systematic and formal method of program analysis based on a data flow graph approach. The method generates acyclic graph from the control program that is subject of optimization, variable allocation and instruction generation. The graph approach allows determining variables dependencies and task partitioning required by selective program execution. The method utilize the hardware supported variable changes detection. It is transparent for system operation and enables evaluation of blocks that require update.
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.
EN
In this paper there are presented methods for conversion of "while" and "do-while" loops to the form of "for" loops. The aim of this conversion is to allow dependence analysis by many existing tools. The dependence analysis allows determining which parts of the analyzed program code must be executed sequentially, and which can be executed independently. Such an analysis is used to reduce the use of resources in embedded systems. Automating the analysis also allows specifying types of classes of algorithms and their implementation which can be the subject of optimization. The nature of optimization can also be determined.
PL
Większość narzędzi analizujących zależności "LooPo", "Clan" i "Petit" posiada możliwość analizy pętli typu for, w których wykonuje się operacje na tablicach za pomocą operatorów indeksowania. W chwili obecnej pętle while są analizowane przez analizator "LooPo". Analizatory zależności "clan" i "petit" analizują jedynie pętle for. Zasadną więc jest koncepcja konwersji konstrukcji typu "while", "do-while" do postaci pętli "for", gdyż po wykonaniu konwersji możliwe staje się użycie dowolnego narzędzia do analizy zależności. Użycie różnych narzędzi do analizy zależności daje możliwość uzyskania wyników analizy w postaci odpowiedniej dla zaimplementowanych algorytmów zrównoleglających, co pozwala na uzyskanie większego zbioru propozycji zrównoleglenia kodu pętli. Wykonanie konwersji umożliwi również zastosowanie szeroko implementowanego popularnego standardu OpenMP w celu podziału przestrzeni iteracji między niezależne wątki. Docelowa postać pętli spełnia wymagania dotyczące pętli for przedstawione w specyfikacji OpenMP v3.0. Zastosowanie zgodności z tym standardem umożliwia analizę zależności w pętli przez większość analizatorów pętli w języku C i zapisanie zrównoleglonej postaci pętli zgodnie ze standardem. Algorytm opisany w tym artykule jest zrealizowany kompilatorze "Stepson", który jest aktualnie rozwijany. Informacje o skompilowanym programie są przechowywane w postaci drzewa. Opisany algorytm pozwala zwiększyć liczbę pętli, które można automatycznie analizować.
EN
This paper presents a novel approach to implementing nonrecursive filter banks and transforms. A domain-specific language has been developed that allows such systems to be described more clearly, more compactly, and faster than with either MATLAB/Simulink or SPL, the existing tools for developing DSP algorithms. Its syntax is aimed at closely linking code to the signal flow graph of a given transform and at allowing the algorithm to be specified in terms of elementary transformations: plane rotations, reflections, lifting steps, delays, etc. Unlike the mentioned platforms, our approach allows to avoid constructing complicated matrix expressions, even though matrix notation is supported via a subset of the MATLAB language. The associated compiler converts system descriptions into quite efficient Java, C++, or C implementations, which can be used to rapidly prototype applications based on subband processing of signals or to prepare objective functions for optimizing coefficients of computational schemes.
PL
W artykule przedstawiono nowatorskie podejście do implementowania nierekursywnych banków filtrów i transformacji. Opracowany został dziedzinowy język, który pozwala opisywać te systemy przejrzyściej, zwięźlej i szybciej niż z użyciem MATLAB/Simulink lub SPL, istniejących narzędzi do rozwijania algorytmów cyfrowego przetwarzania sygnałów. Jego składnia jest ukierunkowana na ścisłe powiązanie kodu z grafem przepływu danych w rozpatrywanej transformacji i na umożliwienie wyspecyfikowania algorytmu w kategoriach transformacji elementarnych: obrotów planarnych, odbić, stopni "lifting", opóźnień itp. W odróżnieniu od wymienionych platform, proponowane podejście pozwala uniknąć konstruowania skomplikowanych wyrażeń macierzowych, choć notacja macierzowa jest dostępna jako podzbiór języka MATLAB. Skojarzony kompilator przekształca opisy systemów w dosyć wydajne implementacje Java, C++ lub C, które mogą być wykorzystywane do szybkiego prototypowania aplikacji, które opierają się na podpasmowej dekompozycji sygnałów, lub do przygotowywania funkcji celu na potrzeby optymalizacji współczynników schematów obliczeniowych.
EN
A prototype environment called CPDev for programming small distributedsmall-distributed control-and-measurement systems in Structured Text language of IEC 61131-3 standard is presented . The environment is open what means that the code generated by the compiler can be executed on different hardware platforms. However, such universal code must be processed by an interpreter, another words by a virtual machine,an interpreter, another words by- a virtual machine, must process such universal code similarly as programs written in Java. The CPDev environment consists of the compiler, simulator and configurer of hardware resources (i.e. communications). They are developed in C# at MS.NET Framework 2.0 platform. CPDev is open allowing the user to create function blocks and libraries. External interface procedures (drivers) can be written by hardware designers and linked with the universal code. Free selection of data types required by different applications is provided. Virtual machine written in ANSI C is dedicated for a particular processor. So far the machines for AVR, MCS-51 and PC have been developed. Programming a mini-DCS system from LUMEL Zielona Góra has been the first application of CPDev.
PL
Opisano system komputerowego projektowania układów cyfrowych w strukturach PLD i CPLD firmy AMD. Przedstawiono jego schemat i najważniejsze funkcje, a także cechy, które umożliwiają wykorzystanie systemu przez szerokie grono projektantów układów cyfrowych.
EN
ADM (Advanced Micro Devices) CAD system for digital circuits designing in PLD and CPLD is Described. Its block descriiption and main functions are presented as well as the features which allow a wide group of digital circuits designers to use it.
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ć.