PL EN


Preferencje help
Widoczny [Schowaj] Abstrakt
Liczba wyników
Tytuł artykułu

Zmiennoprzecinkowa jednostka arytmetyczna dla sprzętowej maszyny wirtualnej

Autorzy
Treść / Zawartość
Identyfikatory
Warianty tytułu
EN
A floating point unit for the hardware virtual machine
Języki publikacji
PL
Abstrakty
PL
W artykule omówiono, opracowaną dla struktur FPGA, implementację układów realizujących podstawowe operacje arytmetyki zmiennoprzecinkowej. Implementacja charakteryzuje się pewnym kompromisem pomiędzy zapotrzebowaniem na zasoby logiczne układu programowalnego a szybkością realizacji operacji arytmetycznych określoną przez liczbę taktów zegara niezbędną do wykonania operacji. Wspomniane układy zostały wykorzystane jako zasadnicze komponenty zmiennoprzecinkowej jednostki arytmetycznej przeznaczonej dla sprzętowej maszyny wirtualnej. Maszyna ta, implementowana w układach FPGA, jest specjalizowanym mikrokontrolerem wykonującym pośredni kod wykonywalny generowany przez kompilator środowiska inżynierskiego CPDev, przeznaczonego do projektowania oprogramowania sterowników przemysłowych. Wykonane testy wydajności maszyny sprzętowej wyposażonej w zmiennoprzecinkową jednostkę arytmetyczną wskazują, że jest ona średnio kilkadziesiąt razy szybsza od dotychczas istniejących realizacji programowych, wykorzystujących popularne mikrokontrolery AVR i ARM.
EN
Under the CPDev (Control Program Developer) engineering environment, programs written in one of the languages defined in the IEC 61131-3 standard are compiled into the universal intermediate code executed on the side of programmable controllers by the virtual machines [9]. There are software implemented virtual machines, dedicated for the platform with popular AVR and ARM microcontrollers, and also there is a recently developed hardware virtual machine implemented using FPGA devices [2]. The hardware virtual machine, which in fact is a specialized microcontroller described in the Verilog Hardware Description Language [3], is several dozen times faster then its software counterparts [2]. But the main drawback of the existing hardware virtual machine is a lack of the ability of executing the floating point computations. The paper presents an architecture of the floating point arithmetic unit accomplishing basic floating point operation, designed for the hardware virtual machine. There are quite a lot of publications concerning FPGA implementation of the floating point arithmetic, for instance [6, 7, 8, 10, 11]. In this paper the realization of basic float-ing point operation, balanced between logic resources requirements and speed of computing (defined by the number of clock cycles necessary to end up a floating point operation), is presented. Figs. 1 and 2 show a simplified micro-architecture of the single precision (according to IEEE 754-1985 standard [5]) floating point multiplier and adder. A floating point divider has roughly the same structure as the multiplier - it differs in states functions performed by some blocks. A few different realizations of the multiplier and adder unit were designed - the details are presented in Tabs. 1 and 3. The general trend is as follows: a shorter clock cycle necessary to execute the operation needs more logic resources of FPGA. A floating point unit for the hardware virtual machine was designed based on the floating point multiplier, divider and adder blocks. Apart from the mentioned above basic floating point operation, the floating point unit also performs operations like: comparison and relation (equals, not equals, more than, more than or equal etc.), absolute value, negation, integer value to floating point value conversion, floating point to integer conversion (rounding, truncating) and some functions fetched from IEC 61131-3 standard like MIN, MAX, LIMIT. To compare performance of the hardware virtual machine equipped with the floating point unit and its software counterparts, the Whetstone based benchmark [1] was written in ST language. The test results are given in Tab. 4. The hardware virtual machine (implemented using Xilinx Spartan 3-AN FPGA XC3S1400AN-4FGG676) is several times faster than the software one implemented on AVR and ARM microcontrollers, and even a little bit faster than the PC based virtual machine (under .NET environment).
Wydawca
Rocznik
Strony
82--85
Opis fizyczny
Bibliogr. 13 poz., rys., tab., wzory
Twórcy
autor
Bibliografia
  • [1] Curnow H. J., Wichmann B. A.: A synthetic benchmark. Com-puter Journal, Vol. 19, No 1, pp. 43-49, 1976.
  • [2] Hajduk Z., Trybus B., Sadolewski J.: Sprzętowa implementacja maszyny wirtualnej dla sterowników programowalnych. Metody Wytwarzania i Zastosowania Systemów Czasu Rzeczywistego, Praca zbiorowa pod redakcją L. Trybusa i S. Samoleja, WKŁ, str. 333-343, Warszawa, 2010.
  • [3] Hajduk Z.: Wprowadzenie do języka Verilog. Wydawnictwo BTC, Legionowo 2009.
  • [4] Ho Ch. H., Yu Ch. W., Luk W., Wilton S. J. E.: Floating-Point FPGA: Architecture and Modeling. IEEE Trans. on VLSI Systems, Vol. 17, No 12, pp. 1709-1718, Dec. 2009.
  • [5] IEEE Standard Board and ANSI: IEEE Standard for Binary Floating-Point Arithmetic. IEEE Std 754-1985.
  • [6] Malik A., Ko S. B.: A Study on the Floating-Point Adder in FPGAS. IEEE Canadian Conf. on Electrical and Computer Engineering, CCECE'06, pp. 86-89, Ottawa, May 2006.
  • [7] Meyer-Baese U.: Digital Signal Processing with Field Pro-grammable Gate Arrays. Third Edition, Springer Berlin Heidelberg, 2007.
  • [8] Parker M.: High-performance floating-point implementation using FPGAs. IEEE Military Communications Conference, MILCOM 2009, pp. 1-5, 2009.
  • [9] Rzońca D., Sadolewski J., Trybus B.: Prototype environment for controller programming in the IEC 61131-3 ST language. Computer Science and Information Systems, Vol. 4, No 2, Dec. 2007.
  • [10] Sahin S., Kavak A., Becerikli Y., Demiray H. E.: Implementation of floating point arithmetics using an FPGA. Mathematical Methods in Engineering, Part 5, Pages 445-453, Springer, 2007.
  • [11] Thakkar A. J., Ejnioui A.: Design and implementation of double precision floating point division and square root on FPGAs. IEEE Aerospace Conference, 2006.
  • [12] Wang X., Nelson B. E.: Tradeoffs of designing floating-point division and square root on Virtex FPGAs. Proceedings of the 11th Annual IEEE Symp. on Field-Programmable Custom Computing Machines, FCCM 2003, pp. 195-203, 2003.
  • [13] Xilinx Application Note: Using Embedded Multipliers in Spartan-3 FPGAs. XAPP 467, 2003.
Typ dokumentu
Bibliografia
Identyfikator YADDA
bwmeta1.element.baztech-article-BSW4-0097-0025
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ć.