Citation: Grout, I.A.; Mullin, L.
Realizing Mathematics of Arrays
Operations as Custom Architecture
Hardware-Software Co-Design
Solutions. Information 2022, 13, 528.
https://doi.org/10.3390/
info13110528
Academic Editor: Joaquim Ferreira
Received: 7 September 2022
Accepted: 30 October 2022
Published: 4 November 2022
Publisher’s Note: MDPI stays neutral
with regard to jurisdictional claims in
published maps and institutional affil-
iations.
Copyright: © 2022 by the authors.
Licensee MDPI, Basel, Switzerland.
This article is an open access article
distributed under the terms and
conditions of the Creative Commons
Attribution (CC BY) license (https://
creativecommons.org/licenses/by/
4.0/).
information
Article
Realizing Mathematics of Arrays Operations as Custom
Architecture Hardware-Software Co-Design Solutions
Ian Andrew Grout
1,
* and Lenore Mullin
2
1
Department of Electronic and Computer Engineering, University of Limerick, V94 T9PX Limerick, Ireland
2
Department of Computer Science, College of Engineering and Applied Sciences, University at Albany, State
University of New York, Albany, NY 12222, USA
* Correspondence: ian.grout@ul.ie; Tel.: +353-61-202-298
Abstract: In embedded electronic system applications being developed today, complex datasets are
required to be obtained, processed, and communicated. These can be from various sources such
as environmental sensors, still image cameras, and video cameras. Once obtained and stored in
electronic memory, the data is accessed and processed using suitable mathematical algorithms. How
the data are stored, accessed, processed, and communicated will impact on the cost to process the
data. Such algorithms are traditionally implemented in software programs that run on a suitable
processor. However, different approaches can be considered to create the digital system architecture
that would consist of the memory, processing, and communications operations. When considering
the mathematics at the centre of the design making processes, this leads to system architectures
that can be optimized for the required algorithm or algorithms to realize. Mathematics of Arrays
(MoA) is a class of operations that supports n-dimensional array computations using array shapes
and indexing of values held within the array. In this article, the concept of MoA is considered for
realization in software and hardware using Field Programmable Gate Array (FPGA) and Application
Specific Integrated Circuit (ASIC) technologies. The realization of MoA algorithms will be developed
along with the design choices that would be required to map a MoA algorithm to hardware, software
or hardware-software co-designs.
Keywords: embedded systems; MoA; FPGA; ASIC; tensor products
1. Introduction
Embedded electronic system applications commonly realized today are required to
process large amounts of data in order to undertake value-added operations such as
embedded Machine Learning (ML) [1] and Deep Learning (DL) [2] that allow the system
and hence the user to make sense of the available provided data. Complex datasets are
required to be obtained, processed, and communicated. These can be from various sources
such as environmental sensors, still image cameras, and video cameras. The suitably
formatted data are available in memory and conceptually arranged into multi-dimensional
arrays. Once obtained and stored in electronic memory, the data are accessed and processed
using suitable mathematical algorithms. How the data are stored, accessed, processed,
and communicated will impact on the cost to process the data. Such algorithms are
traditionally implemented in software programs that run on a suitable processor. Standard
electronic system architectures utilize off-the-shelf processors such as the Central Processing
Unit (CPU) [3] and Graphics Processing Unit (GPU) [4]. Recently, the processor selection
option has been augmented by the Tensor Processing Unit (TPU) [5]. The processor
architecture, access to suitable memory, and the available communications will impact the
design efficiency. This design efficiency will lead to a cost associated with the different
parts of the software and hardware such as required processing time and the electronic
system power consumption, considering both static and dynamic power.
Information 2022, 13, 528. https://doi.org/10.3390/info13110528 https://www.mdpi.com/journal/information