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...

Full description

Bibliographic Details
Main Authors: Kamil Rudnicki, Tomasz P. Stefański, Wojciech Żebrowski
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