...
首页> 外文期刊>Pomiary Automatyka Kontrola >Zmiennoprzecinkowa jednostka arytmetyczna dla sprzętowej maszyny wirtualnej
【24h】

Zmiennoprzecinkowa jednostka arytmetyczna dla sprzętowej maszyny wirtualnej

机译:硬件虚拟机的浮点运算单元

获取原文
获取原文并翻译 | 示例

摘要

W artykule omówiono, opracowaną dla struktur FPGA, implementację układów realizujących podstawowe operacje arytmetyki zmiennoprzecin-kowej. 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 zmiennoprzecinkowa jednostkę arytmetyczną wskazują, że jest ona średnio kilkadziesiąt razy szybsza od dotychczas istniejących realizacji programowych, wykorzystujących popularne mikrokontrolery AVR i ARM.%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 floating 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)rnand 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).
机译:本文讨论了实现为FPGA结构开发的基本浮点算术运算的系统的实现。该实现的特征在于在对可编程系统的逻辑资源的需求与由执行该操作所需的时钟周期的数量所确定的算术运算的速度之间的某种折衷。这些系统已用作硬件虚拟机的浮点运算单元的基本组件。该机器以FPGA实现,是专门的微控制器,可执行由CPDev工程环境编译器生成的间接可执行代码,专为工业控制器软件设计而设计。对配备浮点算术单元的硬件机器的性能进行的测试表明,它平均比使用流行的AVR和ARM微控制器的现有程序实现快数十倍。%在CPDev(控制程序开发)工程环境下,用IEC 61131-3标准中定义的语言被虚拟机编译为在可编程控制器一侧执行的通用中间代码[9]。有软件实现的虚拟机,专用于带有流行的AVR和ARM微控制器的平台,还有最近开发的使用FPGA器件实现的硬件虚拟机[2]。硬件虚拟机实际上是Verilog硬件描述语言[3]中描述的专用微控制器,比其软件同类产品[2]快几十倍。但是现有硬件虚拟机的主要缺点是缺乏执行浮点计算的能力。本文介绍了一种为硬件虚拟机设计的,完成基本浮点运算的浮点运算单元的体系结构。关于浮点算法的FPGA实现的出版物很多,例如[6、7、8、10、11]。本文介绍了基本浮点运算的实现,在逻辑资源要求和计算速度(由结束浮点运算所需的时钟周期数定义)之间取得了平衡。无花果图1和2显示了浮点乘法器和加法器的单精度(根据IEEE 754-1985标准[5])的简化微体系结构。浮点除法器的结构与乘法器大致相同-它在某些模块执行的状态函数方面有所不同。设计了乘法器和加法器单元的几种不同实现方式-详细信息显示在选项卡中。如图1和3所示。总体趋势是:执行该操作所需的较短时钟周期需要更多的FPGA逻辑资源。基于浮点乘法器,除法器和加法器模块设计了用于硬件虚拟机的浮点单元。除了上述基本浮点运算之外,浮点单元还执行以下操作:比较和关系(等于,不等于,大于,大于或等于等),绝对值,取反,整数值到浮点值转换,浮点数到整数的转换(舍入,截断)以及从IEC 61131-3标准中获取的一些功能,例如MIN,MAX,LIMIT。为了比较配备浮点单元的硬件虚拟机及其软件副本的性能,使用ST语言编写了基于Whetstone的基准测试[1]。测试结果在表4中给出。硬件虚拟机(使用Xilinx Spartan 3-AN FPGA XC3S1400AN-4FGG676实现)比在AVR和ARM微控制器上实现的软件快几倍,甚至比硬件上快一点。基于PC的虚拟机(在.NET环境下)。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号