2022-11-29T08:32:51Z
https://meral.edu.mm/oai
oai:meral.edu.mm:recid/2071
2021-12-13T02:03:24Z
1582963390870:1582967549708
user-uy
MODIFIED IEEE 754 UNSIGNED HALF-PRECISION FLOATING POINT LIBRARY FOR CONSTRAINED MEMORY SYSTEMS
Kym Derrick P. Uy
Carl C. Dizon
Nestor Michael C. Tigiao
Memory-constrained systems have a limit to the size a numerical representation. Almost all systems catering to this kind do not have a floating-point module. Instead, most resort to integer arithmetic with the assumption that most calculations will not overflow. However, there is a need for a floating-point module for accurate calculations, such as modeling of battery and temperature data of wireless sensor networks (WSNs). Also, battery capacities and energy consumption of WSN motes may improve in the near future that these parameters itself cannot be expressed integrally.
It is crucial for WSNs to be able to calculate numbers to some extent. Some parameters of a WSN node, like battery level and temperature, require some calculations to be meaningful. As technology progresses, these parameters may extend large amounts that it cannot be accurately calculated solely by the node and its limited numerical range. For our energy-harvesting battery simulations with Contiki as, the battery capacity is large compared its energy consumption. We also intend to simulate a supercapacitor battery model containing exponential functions. Accurate
operations with such numbers are difficult using only integral values and a maximum magnitude of 65535 offered by the as.
A solution this study presents is to implement an unsigned half-precision floating point representation of a number based on the IEEE 754 standard. This was made with the fact that our battery simulations only deal with positive numbers. On a l6-bit number representation, the 10 most significant bits define the mantissa and other 6 bits the exponent. With a +31 exponent bias and no sign bit, this representation can accommodate numbers from 10-12 to 1012. The length of the mantissa offered floating point numbers accurate enough for our purposes. All arithmetic operations except division, which accept two numbers of this format, were implemented in our library. A function to convert a number to this format was also implemented for variable numbers. On the other hand, conversion of constants to this format, and vice versa, was done manually to reduce the number of operations, and subsequently the memory footprint, of the simulation code. For our purposes, the code is written in C and is included as a module in Contiki as.
2015
http://hdl.handle.net/20.500.12678/0000002071
https://meral.edu.mm/records/2071