Open-Source Coprocessor for Integer Multiple Precision Arithmetic
This paper presents an open-source digital circuit of the coprocessor for an integer multiple-precision arithmetic (MPA). The purpose of this coprocessor is to support a central processing unit (CPU) by offloading computations requiring integer precision higher than 32/64 bits. The coprocessor is de...
Main Authors: | , , |
---|---|
Format: | Article |
Language: | English |
Published: |
MDPI AG
2020-07-01
|
Series: | Electronics |
Subjects: | |
Online Access: | https://www.mdpi.com/2079-9292/9/7/1141 |
_version_ | 1797562485110210560 |
---|---|
author | Kamil Rudnicki Tomasz P. Stefański Wojciech Żebrowski |
author_facet | Kamil Rudnicki Tomasz P. Stefański Wojciech Żebrowski |
author_sort | Kamil Rudnicki |
collection | DOAJ |
description | This paper presents an open-source digital circuit of the coprocessor for an integer multiple-precision arithmetic (MPA). The purpose of this coprocessor is to support a central processing unit (CPU) by offloading computations requiring integer precision higher than 32/64 bits. The coprocessor is developed using the very high speed integrated circuit hardware description language (VHDL) as an intellectual property (IP) core. Therefore, it can be implemented within field programmable gate arrays (FPGAs) at various scales, e.g., within a system on chip (SoC), combining CPU cores and FPGA within a single chip as well as FPGA acceleration cards. The coprocessor handles integer numbers with precisions in the range 64 bits–32 kbits, with the limb size set to 64 bits. In our solution, the sign-magnitude representation is used to increase the efficiency of the multiplication operation as well as to provide compatibility with existing software libraries for MPA. The coprocessor is benchmarked in factorial (<inline-formula> <math display="inline"> <semantics> <mrow> <mi>n</mi> <mo>!</mo> </mrow> </semantics> </math> </inline-formula>), exponentiation (<inline-formula> <math display="inline"> <semantics> <msup> <mi>n</mi> <mi>n</mi> </msup> </semantics> </math> </inline-formula>) and discrete Green’s function (DGF) computations on Xilinx Zynq-7000 SoC on TySOM-1 board from Aldec. In all benchmarks, the coprocessor demonstrates better runtimes than a CPU core (ARM Cortex A9) executing the same computations using a software MPA library. For sufficiently large input parameters, our coprocessor is up to three times faster when implemented in FPGA on SoC, rising to a factor of ten in DGF computations. The open-source coprocessor code is licensed under the Mozilla Public License. |
first_indexed | 2024-03-10T18:29:49Z |
format | Article |
id | doaj.art-942c4e5ae84f4d69bf16931b846b704a |
institution | Directory Open Access Journal |
issn | 2079-9292 |
language | English |
last_indexed | 2024-03-10T18:29:49Z |
publishDate | 2020-07-01 |
publisher | MDPI AG |
record_format | Article |
series | Electronics |
spelling | doaj.art-942c4e5ae84f4d69bf16931b846b704a2023-11-20T06:43:51ZengMDPI AGElectronics2079-92922020-07-0197114110.3390/electronics9071141Open-Source Coprocessor for Integer Multiple Precision ArithmeticKamil Rudnicki0Tomasz P. Stefański1Wojciech Żebrowski2Department of Reconfigurable Systems, Brightelligence Inc., Glasgow G20 6LL, UKFaculty of Electronics, Telecommunications and Informatics, Gdansk University of Technology, 80-233 Gdansk, PolandAldec Inc., 80-288 Gdansk, PolandThis paper presents an open-source digital circuit of the coprocessor for an integer multiple-precision arithmetic (MPA). The purpose of this coprocessor is to support a central processing unit (CPU) by offloading computations requiring integer precision higher than 32/64 bits. The coprocessor is developed using the very high speed integrated circuit hardware description language (VHDL) as an intellectual property (IP) core. Therefore, it can be implemented within field programmable gate arrays (FPGAs) at various scales, e.g., within a system on chip (SoC), combining CPU cores and FPGA within a single chip as well as FPGA acceleration cards. The coprocessor handles integer numbers with precisions in the range 64 bits–32 kbits, with the limb size set to 64 bits. In our solution, the sign-magnitude representation is used to increase the efficiency of the multiplication operation as well as to provide compatibility with existing software libraries for MPA. The coprocessor is benchmarked in factorial (<inline-formula> <math display="inline"> <semantics> <mrow> <mi>n</mi> <mo>!</mo> </mrow> </semantics> </math> </inline-formula>), exponentiation (<inline-formula> <math display="inline"> <semantics> <msup> <mi>n</mi> <mi>n</mi> </msup> </semantics> </math> </inline-formula>) and discrete Green’s function (DGF) computations on Xilinx Zynq-7000 SoC on TySOM-1 board from Aldec. In all benchmarks, the coprocessor demonstrates better runtimes than a CPU core (ARM Cortex A9) executing the same computations using a software MPA library. For sufficiently large input parameters, our coprocessor is up to three times faster when implemented in FPGA on SoC, rising to a factor of ten in DGF computations. The open-source coprocessor code is licensed under the Mozilla Public License.https://www.mdpi.com/2079-9292/9/7/1141FPGAsmultiple-precision arithmeticscientific computingcoprocessors |
spellingShingle | Kamil Rudnicki Tomasz P. Stefański Wojciech Żebrowski Open-Source Coprocessor for Integer Multiple Precision Arithmetic Electronics FPGAs multiple-precision arithmetic scientific computing coprocessors |
title | Open-Source Coprocessor for Integer Multiple Precision Arithmetic |
title_full | Open-Source Coprocessor for Integer Multiple Precision Arithmetic |
title_fullStr | Open-Source Coprocessor for Integer Multiple Precision Arithmetic |
title_full_unstemmed | Open-Source Coprocessor for Integer Multiple Precision Arithmetic |
title_short | Open-Source Coprocessor for Integer Multiple Precision Arithmetic |
title_sort | open source coprocessor for integer multiple precision arithmetic |
topic | FPGAs multiple-precision arithmetic scientific computing coprocessors |
url | https://www.mdpi.com/2079-9292/9/7/1141 |
work_keys_str_mv | AT kamilrudnicki opensourcecoprocessorforintegermultipleprecisionarithmetic AT tomaszpstefanski opensourcecoprocessorforintegermultipleprecisionarithmetic AT wojciechzebrowski opensourcecoprocessorforintegermultipleprecisionarithmetic |