[ieee 2008 second international conference on electrical engineering (icee) - lahore, pakistan...

9
978-1-4244-2293-7/08/$25.00 ©2008 IEEE. Resource Efficient Parallel Architectures for Linear Matrix Algebra in Real Time Adaptive Control Algorithms on Reconfigurable Logic Fahad Ahmad Khan Rizwan Arshad Ashraf Qammar Hussain Abbasi Ali Arshad Nasir Electrical Engineering Mechatronics and Control Electrical Engineering Electrical Engineering Department, Engineering Department, Department, Department, UET Lahore. UET Lahore. UET Lahore. UET Lahore. [email protected] [email protected] [email protected] [email protected] Abstract- Parallel and systolic structures for matrix algebra algorithms have been around for quite a long time. Various implementations of different numerical techniques exist. With the advent of reconfigurable logic, especially FPGAs, a need has arisen to revisit these architectures and produce resource efficient versions of these algorithms. We have produced resource efficient parallel architectures for LU Decomposition and Triangular Matrix Inversion, keeping in view data computational rate requirements for real time control systems. These architectures decrease memory logic resources considerably and also maintain excellent clock period results. They also have the capability to be mapped over each other thereby further reducing resource usage and also providing us with the additional facility of Matrix Multiplication. I. INTRODUCTION Over the years, lot of effort has been put into developing and refining parallel pipelined architectures for real-time adaptive control and filtering algorithms [1]-[7]. Especially, the subject of Kalman Filter has been treated extensively [1]- [2]. These structures, because of their concurrency and scalability, are very excellent contenders for VLSI implementations [8]. But with the advent of FPGA's, architectures for these algorithms have been redesigned and revaluated in a perspective of logic resource utilization [9]- [15]. Although technological advances have led to production of FPGA chips which have a phenomenal gate count and density [16], still yet it is useful to develop architectures which save precious reconfigurable logic resources on these devices. Various techniques, such as developing semi-parallel architectures from fully parallel architectures [17] and reusing logic resources [13], are employed for resource efficiency. The idea behind taking up this research was to create parallel data processing architectures, for real time control systems, which would not only come to terms with the high data computational rate but also use lesser resources (in terms of area) when implemented on an FPGA. The real time control systems we have targeted are e.g. the Kalman Filter and H-Infinity Filter. These systems employ linear matrix algebra for their solution. So, in order to create architectures for these systems, we need to develop structures which will compute linear matrix algebra operations. To develop these architectures we need to formulate some sort of parallel algorithms which will target parallel architecture implementations. Initially, a general framework would have to be devised for algorithm development. This paper describes the evolution of our algorithms and architectures. In the Section-II we have given a description of the computation of a set of equations using such framework. Understanding their solution will provide us with an understanding of how to proceed towards developing such algorithms. In Section-III we have given the description and formulation of algorithms for two different numerical techniques of matrix algebra. Section-IV encompasses the development of parallel architectures from the algorithms described in the preceding section. The last sections bring in device utilization results and a comparison of these architectures with previously developed systolic structures, in terms of time and area complexity. A technique is also proposed to further reduce device usage by mapping these architectures on to each other. II. GENERAL FRAMEWORK Let us suppose we have a set of three equations that need to be solved: x 1 = c 1 + a 1 b 1 + a 2 x 2 + a 3 x 3 (1) x 2 = a 4 x 3 + a 3 b 2 (2) x 3 = a 5 b 3 + c 2 (3) Before developing an approach let us observe the data dependencies. To calculate x 2 we require x 3 which implies that before calculating x 2 we will need our algorithm to compute x 3 first. Similarly calculating x 1 will require our algorithm to generate both x 2 and x 3 first. Let us reorder the terms in each equation: x 1 = c 1 + a 1 b 1 + a 3 x 3 + a 2 x 2 (4) x 2 = 0 + a 3 b 2 + a 4 x 3 (5) x 3 = c 2 + a 5 b 3 (6) The reason of reordering of terms in these equations will become evident from the following discussion. Suppose that

Upload: ali-arshad

Post on 10-Apr-2017

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

978-1-4244-2293-7/08/$25.00 ©2008 IEEE.

Resource Efficient Parallel Architectures for Linear Matrix Algebra in Real Time Adaptive Control

Algorithms on Reconfigurable Logic Fahad Ahmad Khan Rizwan Arshad Ashraf Qammar Hussain Abbasi Ali Arshad Nasir Electrical Engineering Mechatronics and Control Electrical Engineering Electrical Engineering Department, Engineering Department, Department, Department, UET Lahore. UET Lahore. UET Lahore. UET Lahore. [email protected] [email protected] [email protected] [email protected]

Abstract- Parallel and systolic structures for matrix algebra algorithms have been around for quite a long time. Various implementations of different numerical techniques exist. With the advent of reconfigurable logic, especially FPGAs, a need has arisen to revisit these architectures and produce resource efficient versions of these algorithms. We have produced resource efficient parallel architectures for LU Decomposition and Triangular Matrix Inversion, keeping in view data computational rate requirements for real time control systems. These architectures decrease memory logic resources considerably and also maintain excellent clock period results. They also have the capability to be mapped over each other thereby further reducing resource usage and also providing us with the additional facility of Matrix Multiplication.

I. INTRODUCTION

Over the years, lot of effort has been put into developing and refining parallel pipelined architectures for real-time adaptive control and filtering algorithms [1]-[7]. Especially, the subject of Kalman Filter has been treated extensively [1]-[2]. These structures, because of their concurrency and scalability, are very excellent contenders for VLSI implementations [8]. But with the advent of FPGA's, architectures for these algorithms have been redesigned and revaluated in a perspective of logic resource utilization [9]-[15]. Although technological advances have led to production of FPGA chips which have a phenomenal gate count and density [16], still yet it is useful to develop architectures which save precious reconfigurable logic resources on these devices. Various techniques, such as developing semi-parallel architectures from fully parallel architectures [17] and reusing logic resources [13], are employed for resource efficiency.

The idea behind taking up this research was to create parallel data processing architectures, for real time control systems, which would not only come to terms with the high data computational rate but also use lesser resources (in terms of area) when implemented on an FPGA. The real time control systems we have targeted are e.g. the Kalman Filter and H-Infinity Filter. These systems employ linear matrix algebra for their solution. So, in order to create architectures for these systems, we need to develop structures

which will compute linear matrix algebra operations. To

develop these architectures we need to formulate some sort of parallel algorithms which will target parallel architecture

implementations. Initially, a general framework would have to be devised for algorithm development.

This paper describes the evolution of our algorithms and architectures. In the Section-II we have given a description of the computation of a set of equations using such framework. Understanding their solution will provide us with an understanding of how to proceed towards developing such algorithms. In Section-III we have given the description and formulation of algorithms for two different numerical techniques of matrix algebra. Section-IV encompasses the development of parallel architectures from the algorithms described in the preceding section. The last sections bring in device utilization results and a comparison of these architectures with previously developed systolic structures, in terms of time and area complexity. A technique is also proposed to further reduce device usage by mapping these architectures on to each other.

II. GENERAL FRAMEWORK

Let us suppose we have a set of three equations that need to be solved:

x1 = c1 + a1b1 + a2x2 + a3x3 (1) x2 = a4x3 + a3b2 (2)

x3 = a5b3 + c2 (3) Before developing an approach let us observe the data

dependencies. To calculate x2 we require x3 which implies that before calculating x2 we will need our algorithm to compute x3 first. Similarly calculating x1 will require our algorithm to generate both x2 and x3 first. Let us reorder the terms in each equation:

x1 = c1 + a1b1 + a3x3 + a2x2 (4) x2 = 0 + a3b2 + a4x3 (5) x3 = c2 + a5b3 (6)

The reason of reordering of terms in these equations will

become evident from the following discussion. Suppose that

Page 2: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

the three blocks in figure 1 are each individually capable of calculating an equation of the form:

p = c + m1n1 + m2n2 + m3n3 + ….. + mtnt (7)

Note that eqs. 1-6 are all of the forms of eq.7. In figure 1 block ß1 would be used to calculate x1, block ß2 will calculate x2 and ß3 will be responsible to compute x3. The first computational cycle of the algorithm would be to initialize each block with a value. In this case ß1, ß2 and ß3 will be initialized with c1, 0 and c2 respectively.

In the second cycle of computation the blocks ß1, ß2 and ß3 will accumulate the products a1b1, a3b2 and a5b3 respectively. After the second cycle is over, ß3 would provide us with the complete computation of variable x3. Now ß1 and ß2 can both use this result to carry on forward with their computation and will respectively accumulate a3x3 and a4x3 in the third computational cycle. Here, ß2 will be finished with its computations and it would generate the result of x2. In the fourth computational cycle ß1 would use x2 to complete its computations and hence this would bring to an end to our evaluation of the unknowns in eqs. 1-3.

Now that an idea has been developed of how to solve such a set of equations let us take a look at two linear algebra techniques involved in the inversion of square matrix.

III. ALGORITHMS FOR THE NUMERICAL

TECHNIQUES

The most elementary technique employed for matrix inversion is through the use of co-factors. Unfortunately, the data processing and storage requirements involved in this technique are immense and hence it is not feasible implementation of a matrix inversion algorithm. Various numerical techniques have been proposed for matrix inversion [18]. We are going to employ a technique in which a matrix is initially decomposed into two triangular matrices

(LU Decomposition) [18]-[19] and then product of the inverses of these triangular matrices is computed in order to obtain the actual inverse. It is important to note that the inverse of a triangular matrix is also a triangular matrix and can be evaluated using techniques similar to Gaussian Elimination, and hence, no co-factor computations are involved.

Let there be matrix A whose inverse is to be computed. Let A be a product of two triangular matrices L and U:

A = LU (8) Where, L is a lower triangular matrix U is an upper triangular matrix

We will equate A to the product of L and U and solve

for the variables of L and U. Now we would compute the inverse of A as: A-1 = (LU)-1 (9)

Applying properties we obtain:

A-1 = U-1L-1 (10)

To calculate the inverse; of a triangular matrix T we employ the following equation T T-1 = I (11) Where, T-1 is unknown

Page 3: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

I is the identity matrix

Now let us focus our energies on developing algorithms for LU Decomposition and inversion of a matrix.

III a: LU Decomposition

For the sake of keeping the explanation simplistic we will develop an algorithm for the inverse of a matrix of size 4x4. Once an algorithm has been developed we would be able to infer as how to extend the algorithm to a matrix of size NxN. In short, we would show that the algorithm is easily scalable.

The diagonal of L is set to unity i.e. lij = 1 (where i = j) because we are using Doolittle's Method. Let L and U have variables:

Using eq.8 and equating we find out that the resulting

simultaneous equations are:

u11 = a11

u12 = a12 u13 = a13 u14 = a14 l21 = a21 / u11 u22 = a22 - l21 u12 u23 = a23 - l21 u13 u24 = a24 - l21 u14 l31 = a31 / u11 l32 = (a32 - l31 u12) / u22 u33 = a33 - l31 u13 - l32 u23 u34 = a34 - l31 u14 - l32 u24 l41 = a41/ u11 l42 = (a42 - l41 u12) / u22 l43 = (a43 - l41 u13 - l42 u23) / u33 u44 = a44 - l41 u14 - l42 u24 - l43 u34

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1lll01ll001l0001

L

434241

3231

21

⎥⎥⎥⎥

⎢⎢⎢⎢

=

44

3433

242322

14131211

u000uu00uuu0uuuu

U

Page 4: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

Each equation in this set of equations fits into the form of eq.7, hence, we can develop an approach similar to the one developed in Section-II so as to obtain our required algorithm. The only addition will be that this time around our blocks will also be able to perform the division of two numbers. Figure 2 gives us the flow of data that would take place after the corresponding computational cycle. The algorithm has been broken down into steps with the help of different line patterns. To understand the flow of data the above mentioned set of equations along with the technique prescribed in Section-II should be kept in view. In the figure, ßxy represents the block which is responsible for the

calculation of each index, where notation 'xy' in ßxy represents the index of the output matrix being calculated. From the figure 2 it is pretty evident that the algorithm chart would increase in a symmetric regular fashion (leftwards and downwards) if the order of the matrix is increased.

III b: Inversion of a Triangular Matrix The algorithm for the inverse of a triangular matrix will

also be explained using the approach adopted earlier. Again the representative matrices will be of order 4 x 4.

Suppose that the inverse of a triangular matrix T is Ti. Multiplying T with Ti will yield an identity matrix. Equating

and solving for Ti will give us our required triangular inverted matrix. Let T and Ti be the following matrices:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

44

3433

242322

14131211

t000tt00ttt0tttt

T

⎥⎥⎥⎥

⎢⎢⎢⎢

=

44

3433

242322

14131211

ti000titi00tititi0titititi

Ti

Using eq.11 and solving for the inverse matrix variables, we obtain the fore mentioned set of equations:

ti11 = 1 / t11 ti12 = - (t12 ti22) / t11 ti13 = - (t12 ti23 + t13 ti33) / t11

ti14 = - (t12 ti24 + t13 ti34 + t14 ti44) / t11 ti22 = 1 / t22 ti23 = - (t23 ti33) / t22 ti24 = - (t23 ti34 + t24 ti44) / t22 ti33 = 1 / t33 ti34 = - (t34 ti44) / t33

ti44 = 1 / t44

Again, each equation fits to the form of eq.7 and once again our approach to the development of the algorithm will be the same. Figure 3 is a depiction of the complete data flow algorithm chart formulated for the inverse of a triangular matrix. This algorithm chart also possesses the inherent capacity in it to increase in a symmetric regular fashion if the order of the matrix is increased.

Now let us proceed towards employing these algorithms to develop resource efficient parallel architectures.

IV. RESOURCE EFFICIENT PARALLEL ARCHITECTURES

Now let us develop architectures from the algorithms we

have formulated. Any equation of form of eq.7 can be calculated using a MAC (multiply and accumulate) block. Before we proceed any further it is necessary we mention here that the dividers used in our implementations have been developed using the strategy given in [9].

The paradigm for such a divider is shown in figure 4. To divide a number x by y we actually multiply x by y-1. In the

Page 5: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

look up table (LUT) entries for y-1 are pre-fetched. Number 'y' is applied to at the address input of the LUT.

Figure 4. Memory based Divider

As FPGAs provide us with a rather limited amount of memory therefore all possible values of the inverse of a number cannot be stored in the LUT. An appropriate segmentation scheme has to be chosen for this purpose in order to reduce area complexity. Such a scheme has been proposed in [9]. Performance of various linear and nonlinear segmentation approaches are evaluated in the priority of precision error and resource consumption for such a paradigm of arithmetic division. The logic consumption of these dividers has been also evaluated in [9]. These dividers are necessary so as to avoid dividers which operate over multiple clock cycles.

D2

D1

D3

PE22 PE23 PE24

PE32 PE33 PE34

PE42 PE43 PE44

ProcessingElement

LUT basedDivider

Data Multiplexer

Data Storage

Figure 5. Architecture for LU Decomposition

IV a: Architecture for LU Decomposition

Now let us move on with the discussion on developing architectures from the algorithms proposed in Section-III. Figure 8 shows us an array of processing elements, each having the ability to multiply and accumulate i.e. the processing elements are essentially MAC blocks Each processing element, at its input, has a set of data multiplexers. These multiplexers serve the purpose of switching between data from various processing elements. Let each processing element correspond to a block in the algorithms. Then as each block has various sources of inputs, therefore, each processing element will use multiplexers at their inputs to acquire computed data from other computational units.

PE label

OV label

Data computed after each clock cycle by each processing element

x y z --- u11 a11

--- u12 a21

--- u13 a31

--- u14 a41

D1 l21 a21/ u11

PE22 u22 a22 x - l21 u12

PE23 u23 a23 x - l21 u13

PE24 u24 a24 x - l21 u14

D2 l31 a31/ u11

l32 x / u22

PE32 l32 a32 x - l31 u12

PE33 u33 a33 x - l31 u13 y - l32 u23

PE34 u34 a34 x - l31 u14 y - l32 u24

D3 l41 a41/ u11

l42 x / u22

l43 y / u33

PE42 l42 a42 x - l41 u12

PE43 l43 a43 x - l41 u13 y - l42 u23

PE44 u44 a44 x - l41 u14 y - l42 u24 z - l43 u34

Page 6: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

An implementation of the LU Decomposition algorithm is given in figure 5. The activity of each processing element and, respectively, the data computed is given in Table 1. In Table 1, 'x' corresponds to the activity taking place in the first clock cycle while 'y' corresponds to the second clock cycle and so on.

This architecture employs a much lesser number of registers as compared to systolic implementation given in [22]. It is a completely scalable architecture and completes the computation of an N x N matrix in N clock cycles. The number of data storing and forwarding registers is less than N2 which is approximately 3 times less as compared to the LU Decomposition systolic architecture [22] which employs 3N2 such registers. Though it has (N-1) dividers, they can be reduced at the cost of increased data output latency. The number of divider modules can be designed to be between 1 to N in number.

IV b: Architecture for Matrix Inversion

The implementation of the inverse of a triangular matrix

algorithm is shown in figure 6. The computation performed by each processing element is given in Table 2. This architecture, also like the proposed implementation of LU Decomposition, takes N clock cycles to completely determine the result of inversion of a triangular matrix. Here again, at the cost of data throughput, reconfigurable logic resources can be efficiently managed by reducing the number of divider modules.

IV c: Architecture for Matrix Multiplication

This implementation will be useful for the literature in the upcoming section which concerns mapping of our proposed architectures on to each other i.e. using a same set of processing elements to perform various matrix algebra operations. The architecture is proposed in figure 7. Each PE (MAC block) calculates one index of the output matrix. It is however important to note that we did not develop or present any algorithm for the development of this architecture. The reason is that there are no data dependencies of various indices of the resultant matrix on each other.

Table 1. Data computations by various PEs in LU Decomposition Architecture

Di11

Di44

PEi34Di33

PEi24PEi23Di22

PEi14PEi13PEi12

Data Storage

Data Multiplexer

LUT basedDivider

ProcessingElement

Figure 6. Architecture for Inversion of a Triangular Matrix

Figure 7. Architecture for Matrix Multiplication

Table 2. Data computations by various PEs in

Architecture of Inversion of a Triangular Matrix

Page 7: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

V. RESULTS AND DISCUSSIONS

We have produced architectures which employ a much

lesser number of registers as compared to systolic parallel implementations of the same algorithms. The data storage requirements decrease by a factor of three, approximately. These architectures have been verified on Xilinx Vertix platforms. For analyses purposes we are going to breakdown area consumed into the following parts: Total Area = Area consumed by dividers +

Area consumed by multiplexers + Area consumed by processing elements

The number of dividers can be increased or decreased

depending upon the area and data latency requirements. The area complexity of such a divider is given in [9]. The numbers of logic resources consumed by the architectures on a Virtex-2 Xc2v4000 platform are given in Table 3. These results are only for the area consumed by the processing elements and multiplexers. The total area can be computed using the above given equation and using [9].

Our implementations did not involve pipelining. This brings upon a question mark over the scalability, in terms of keeping the clock period constant, of our developed architectures. But the case is not so. We did bring in a comparison of a systolic matrix multiplication architecture

PE label

OV label

Data computed after each clock cycle by each processing element

x Y z

Di11

ti11 1 / t11 ti12 x / t11 ti13 y / t11 ti14 z / t11

PEi12 ti12 -t12 ti22 PEi13 ti13 -t13 ti33 x - t12 ti23 PEi14 ti14 -t14 ti44 x - t13 ti34 y - t12 ti24

Di22 ti22 1 / t22 ti23 x / t22 ti24 y / t22

PEi23 ti23 -t23 ti33 PEi24 ti24 -t24 ti44 x - t23 ti34

Di33 ti33 1 / t33 ti34 x / t33

PEi34 ti34 -t34 ti44 Di44 ti44 1 / t44

Page 8: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

Table 3. Resource utilization of the developed architectures on Virtex-2 Xc2v4000

with our architecture for matrix multiplication and found out that the results compared favorably with our objectives and also the minimum clock period results did not shoot up in an alarming fashion. Our objective was developing area efficient parallel systems for real time control systems on FPGAs. The real time output requirements for such systems are controlled by data absorption rate factors e.g. if we have a system in which the actuators act in the order of milliseconds than it would be useless to update the data in microseconds. With such speed requirements the use of a microprocessor (e.g. digital signal processors or controllers) seems to be justified and the development on FPGAs becomes arguable but such is not the case. The reason is that complex algorithms like Kalman Filtering, for real time output, need to be accelerated on dedicated architectures and microprocessors cannot match the data computation rates for such algorithms [17]. The systolic architecture that we employed for comparison is given in [21]. A graph of our results for clock period timings, for 8-bit architectures, has been produced in Graph 1. The comparison for total time of data computation of a single matrix versus the order of the matrix is given in Graph 2.

Graph 1. Comparison of minimum clock period time for

increasing order of matrix size

0

2

4

6

8

10

12

14

0 5 10 15 20

Mun

umum

clo

ck p

erio

d in

nse

cs

Order of Matrix

Non‐pipelined Parallel Array

Systolic Array

Table 4 gives an account the slice usage of these architectures. Analysis of unit data (single matrix) computations are made because pipelining of matrices in the arrays may not be a requirement in real time control (e.g. Kalman Filter) computations, as the data updating requirements are not very frequent because of rather slow response of data converters and actuators.

Table 4. Time and Area comparison of Multiplication Architectures

Graph 2. Comparison of throughput of the computation of

a unitary matrix

0

50

100

150

200

250

300

350

400

450

0 5 10 15 20

Total Com

putatio

nal Tim

e in nsecs

Order of Matrix

Non‐pipelined Parallel Array

Systolic Array

Order of matrix

No. of on-board multipliers utilized No. of reconfigurable logic slices consumed

Matrix Multiplication

LU Decomposition

Triangular Inverse

Matrix Multiplication

LU Decomposition

Triangular Inverse

3 9 6 6 91 47 31 4 16 12 10 130 117 65 5 25 20 15 231 162 104 6 36 30 21 343 271 163

No. of PE

Systolic Array Parallel Array Single cycle time (ns)

No. of slices

Single cycle time (ns)

No. of slices

4 8.72 76 4.176 36 9 8.729 173 4.176 91 16 8.729 309 11.66 130 64 8.729 1146 12.508 592 256 8.729 4443 13.326 2282

Page 9: [IEEE 2008 Second International Conference on Electrical Engineering (ICEE) - Lahore, Pakistan (2008.03.25-2008.03.26)] 2008 Second International Conference on Electrical Engineering

One of the striking features of our implementations is that these architectures can be mapped on to each other i.e. the same set of processing elements can be used to perform calculation for all three matrix algebra operations (LU decomposition, triangular matrix inversion and multiplication of matrices). If we take a glance at the architectures in Section-IV it becomes pretty evident that a processing element in conjunction with a set of data multiplexers suffices our purpose of a general processing element. So the general framework for architecture development could be viewed to be something like the set of processing elements given in figure 8. So to map the architectures on to each other, we would be requiring something like the processing element given in figure 9. In this processing element the data multiplexers play the same role of switching between various data sources, while, the function multiplexers decide that data of which algorithm should be forwarded to the processing element i.e. one input of the function multiplexers may forward data connection for one algorithm while the other input may provide data source connections with other processing elements for another algorithm.

……

……

……

……

DataMultiplexer

Processing Element

Figure 8. General Framework for architecture development

VI. CONCLUSIONS

We have developed parallel architectures which are more optimal in terms of slice usage on reconfigurable logic. The timing results for computational time fits in our requirements for real time adaptive control systems. The architectures operate over excellent clock frequency. The comparison matrix multiplication array also reveals the fact that the total computation time for computation of a single matrix is better in our array. If the architectures are to be used in conjunction with each other, e.g. in Kalman Filtering or H-Infinity, then they can be mapped over each other so as to manipulate resources more efficiently. The architectures are suitable for both fixed point and floating point operations. In aerospace reconfigurable systems where a lot of other computational architectures may limit space, these architectures are an excellent alternative.

VI. REFRENCES [1] F.M.F. Gaston, G.W. Irwin, "Systolic Kalman filtering: an overview", IEE Proceeding, Vol. 137, Pt. D, No. 4, , pp 235-244, July 1990. [2] Sun-Yuan Kung, Jenq-Neng Hwang, "Systolic Array Designs for Kalman Filtering", IEEE Transactions on Signal Processing, Vol. 39, No. 1, pp 171-182, January 1991. [3] Lan-Da Van, Wu-Shiung Feng, "An Efficient Systolic Architecture for the DLMS Adaptive Filter and Its Applications", IEEE Transactions on Circuits and Systems, Vol. 48, No. 4, pp 359 – 366, April 2001. [5] Tze-Yun Sung, Yu-Hen Hu, "Parallel VLSI Implementation of The Kalman Filter", IEEE Trans. Vol. AES-23, No. 2, pp 215-224, March 1987. [6] Daniel Massicotte, Boubker M. Elouafay, "A Systolic Architecture for Kalman-Filter-Based Signal Reconstruction using the Wave Pipeline Method", IEEE ICECS, Vol.2, pp 199-202, 1998. [7] Mahmood R. Azimi-Sadjadi, Tongxin Lu, Eduardo M. Nebot, "Parallel and Sequential Block Kalman Filtering and Their Implementations Using Systolic Arrays", IEEE Transactions on Signal Processing, Vol. 39, No. I, pp 137-147, January 1991. [8] K. Hwang and F. A. Briggs, Computer Architecture and Parallel Processing, McGraw-Hill Book Co., New York, 1984. [9] Abbas Bigdeli, Morteza Biglari-Abhari, Zoran Salcic and Yat Tin Lai, "A new pipelined systolic array-based architecture for matrix inversion in FPGAs with Kalman Filter case study", EURASIP Volume 2006, pp. 1–12. [10] C. R. Lee and Z. Salcic, "A Fully-hardware-type Maximum-parallel Architecture for Kalman Tracking Filter in FPGAs", ICICS ‘97 Singapore, pp 1243-1247, 9-12 September 1997. [11] Robert D. Turney, Ali M Reza, and Justin G. R. Delva, "FPGA Implementation of Adaptive Temporal Kalman Filter For Real Time Video Filtering", IEEE ICASSP '99, Vol. 4, pp 2231-2234, March 1999. [12] KR. Santha and V. Vaidehi, "Parallel-Pipelined Architecture for the Kalman Based Adaptive Equalizer", IEEE - ICSCN 2007, MIT Campus, Anna University, Chennai, India. pp. 172-177, Feb. 22-24, 2007. [13] Daniel Allred, Venkatesh Krishnan, Walter Huang, David Anderson, "Implementation of an LMS Adaptive Filter on an FPGA Employing Multiplexed Multiplier Architecture", Asilomar Conference on Signals, Systems and Computers, Vol.1, pp 918- 921, 9-12 Nov. 2003. [14] Ahmed Elhossini, Shawki Areibi, Robert Dony, "An FPGA Implementation of the LMS Adaptive Filter for Audio Processing", IEEE Int. Conference on Reconfigurable Computing and FPGA's, pp 1-8, Sept. 2006. [15] Bill Allaire, Bud Fischer, "Block Adaptive Filter", XAPP 055 January 9, 1997 (v1.1). [16] Xilinx, http://www.xilinx.com, 2007. [17] Steve Zack, Suhel Dhanani, "White Paper: DSP Co-Processing in FPGAs: Embedding High-Performance, Low-Cost DSP Functions", Xilinx WP212 (v1.0), March 18, 2004 [18] William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. "Numerical Recipes in C: The Art of Scientific Computing" 2nd ed. [19] Jan J Tuma, Professor of engineering Arizona state University "Handouts of Numerical Calculations in Engineering ",1989. [20] Karen Parnell, Roger Bryner, "White Paper: Comparing and Contrasting FPGA and Microprocessor System Design and Development ", Xilinx WP213 (v1.1), July 21, 2004. [21] Keshab K. Parhi, "VLSI Digital Signal Processing Systems", John Wiley, 1999. [22] H.T. Kung and C.L. Leiserson, Systolic arrays (chapter in Introduction to VLSI Systems, by C.A. Mead and L.A. Conway), Addison-Wesley, 1980.