Systolic Array
   HOME

TheInfoList



OR:

In parallel computer architectures, a systolic array is a homogeneous network of tightly coupled
data processing unit A data processing unit (DPU) is a programmable Processor (computing), computer processor that tightly integrates a general-purpose CPU with Network interface controller, network interface hardware. Sometimes they are called "IPUs" (for "infrastr ...
s (DPUs) called cells or
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
s. Each node or DPU independently computes a partial result as a function of the data received from its upstream neighbours, stores the result within itself and passes it downstream. Systolic arrays were first used in Colossus, which was an early computer used to break German
Lorenz Lorenz is an originally German name derived from the Roman surname Laurentius, which means "from Laurentum". Given name People with the given name Lorenz include: * Prince Lorenz of Belgium (born 1955), member of the Belgian royal family by h ...
ciphers during
World War II World War II or the Second World War (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
. Due to the classified nature of Colossus, they were independently invented or rediscovered by H. T. Kung and Charles Leiserson who described arrays for many dense linear algebra computations (matrix product, solving systems of
linear equation In mathematics, a linear equation is an equation that may be put in the form a_1x_1+\ldots+a_nx_n+b=0, where x_1,\ldots,x_n are the variables (or unknowns), and b,a_1,\ldots,a_n are the coefficients, which are often real numbers. The coeffici ...
s,
LU decomposition In numerical analysis and linear algebra, lower–upper (LU) decomposition or factorization factors a matrix as the product of a lower triangular matrix and an upper triangular matrix (see matrix multiplication and matrix decomposition). The produ ...
, etc.) for banded matrices. Early applications include computing
greatest common divisor In mathematics, the greatest common divisor (GCD), also known as greatest common factor (GCF), of two or more integers, which are not all zero, is the largest positive integer that divides each of the integers. For two integers , , the greatest co ...
s of integers and polynomials. They are sometimes classified as multiple-instruction single-data (MISD) architectures under
Flynn's taxonomy Flynn's taxonomy is a classification of computer architectures, proposed by Michael J. Flynn in 1966 and extended in 1972. The classification system has stuck, and it has been used as a tool in the design of modern processors and their functionalit ...
, but this classification is questionable because a strong argument can be made to distinguish systolic arrays from any of Flynn's four categories:
SISD SISD can refer to: * Single instruction, single data, a computer processor architecture * CCL5, an 8kDa protein also using the symbol SISD * Sixteen-segment display * Several school districts in Texas. See List of school districts in Texas - S ...
,
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
, MISD, MIMD, as discussed later in this article. The parallel input
data Data ( , ) are a collection of discrete or continuous values that convey information, describing the quantity, quality, fact, statistics, other basic units of meaning, or simply sequences of symbols that may be further interpreted for ...
flows through a network of hard-wired processor nodes, which combine, process, merge or sort the input data into a derived result. Because the
wave In physics, mathematics, engineering, and related fields, a wave is a propagating dynamic disturbance (change from List of types of equilibrium, equilibrium) of one or more quantities. ''Periodic waves'' oscillate repeatedly about an equilibrium ...
-like propagation of data through a systolic array resembles the
pulse In medicine, the pulse refers to the rhythmic pulsations (expansion and contraction) of an artery in response to the cardiac cycle (heartbeat). The pulse may be felt ( palpated) in any place that allows an artery to be compressed near the surfac ...
of the human circulatory system, the name ''systolic'' was coined from medical terminology. The name is derived from
systole Systole ( ) is the part of the cardiac cycle during which some chambers of the heart contract after refilling with blood. Its contrasting phase is diastole, the relaxed phase of the cardiac cycle when the chambers of the heart are refilling ...
as an analogy to the regular pumping of blood by the heart.


Applications

Systolic arrays are often hard-wired for specific operations, such as "multiply and accumulate", to perform massively parallel integration,
convolution In mathematics (in particular, functional analysis), convolution is a operation (mathematics), mathematical operation on two function (mathematics), functions f and g that produces a third function f*g, as the integral of the product of the two ...
,
correlation In statistics, correlation or dependence is any statistical relationship, whether causal or not, between two random variables or bivariate data. Although in the broadest sense, "correlation" may indicate any type of association, in statistics ...
,
matrix multiplication In mathematics, specifically in linear algebra, matrix multiplication is a binary operation that produces a matrix (mathematics), matrix from two matrices. For matrix multiplication, the number of columns in the first matrix must be equal to the n ...
or data sorting tasks. They are also used for dynamic programming algorithms, used in DNA and protein
sequence analysis In bioinformatics, sequence analysis is the process of subjecting a DNA, RNA or peptide sequence to any of a wide range of analytical methods to understand its features, function, structure, or evolution. It can be performed on the entire genome ...
.


Architecture

A systolic array typically consists of a large
monolithic A monolith is a monument or natural feature consisting of a single massive stone or rock. Monolith or monolithic may also refer to: Architecture * Monolithic architecture, a style of construction in which a building is carved, cast or excavated f ...
network of primitive computing
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
s which can be hardwired or software configured for a specific application. The nodes are usually fixed and identical, while the interconnect is programmable. The more general wavefront processors, by contrast, employ sophisticated and individually programmable nodes which may or may not be monolithic, depending on the array size and design parameters. The other distinction is that systolic arrays rely on
synchronous Synchronization is the coordination of events to operate a system in unison. For example, the conductor of an orchestra keeps the orchestra synchronized or ''in time''. Systems that operate with all parts in synchrony are said to be synchrono ...
data transfers, while
wavefront In physics, the wavefront of a time-varying ''wave field (physics), field'' is the set (locus (mathematics), locus) of all point (geometry), points having the same ''phase (waves), phase''. The term is generally meaningful only for fields that, a ...
tend to work
asynchronous Asynchrony is any dynamic far from synchronization. If and as parts of an asynchronous system become more synchronized, those parts or even the whole system can be said to be in sync. Asynchrony or asynchronous may refer to: Electronics and com ...
ly. Unlike the more common
Von Neumann architecture The von Neumann architecture—also known as the von Neumann model or Princeton architecture—is a computer architecture based on the '' First Draft of a Report on the EDVAC'', written by John von Neumann in 1945, describing designs discus ...
, where program execution follows a script of instructions stored in common memory, addressed and sequenced under the control of the CPU's
program counter The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, ...
(PC), the individual nodes within a systolic array are triggered by the arrival of new data and always process the data in exactly the same way. The actual processing within each node may be hard wired or block micro coded, in which case the common node personality can be block programmable. The systolic array paradigm with data-streams driven by data counters, is the counterpart of the Von Neumann architecture with instruction-stream driven by a program counter. Because a systolic array usually sends and receives multiple data streams, and multiple data counters are needed to generate these data streams, it supports
data parallelism Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different nodes, which operate on the data in parallel. It can be applied on regular data structures like ...
.


Goals and benefits

A major benefit of systolic arrays is that all operand data and partial results are stored within (passing through) the processor array. There is no need to access external buses, main memory or internal caches during each operation as is the case with Von Neumann or
Harvard Harvard University is a private Ivy League research university in Cambridge, Massachusetts, United States. Founded in 1636 and named for its first benefactor, the Puritan clergyman John Harvard, it is the oldest institution of higher lear ...
sequential machines. The sequential limits on parallel performance dictated by Amdahl's Law also do not apply in the same way, because data dependencies are implicitly handled by the programmable
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
interconnect and there are no sequential steps in managing the highly parallel data flow. Systolic arrays are therefore extremely good at artificial intelligence, image processing, pattern recognition, computer vision and other tasks that animal brains do particularly well. Wavefront processors in general can also be very good at machine learning by implementing self configuring neural nets in hardware.


Classification controversy

While systolic arrays are officially classified as MISD, their classification is somewhat problematic. Because the input is typically a vector of independent values, the systolic array is definitely not
SISD SISD can refer to: * Single instruction, single data, a computer processor architecture * CCL5, an 8kDa protein also using the symbol SISD * Sixteen-segment display * Several school districts in Texas. See List of school districts in Texas - S ...
. Since these input values are merged and combined into the result(s) and do not maintain their
independence Independence is a condition of a nation, country, or state, in which residents and population, or some portion thereof, exercise self-government, and usually sovereignty, over its territory. The opposite of independence is the status of ...
as they would in a
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
vector processing unit, the array cannot be classified as such. Consequently, the array cannot be classified as a MIMD either, because MIMD can be viewed as a mere collection of smaller SISD and
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
machines. Finally, because the data swarm is transformed as it passes through the array from
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
to node, the multiple nodes are not operating on the same data, which makes the MISD classification a
misnomer A misnomer is a name that is incorrectly or unsuitably applied. Misnomers often arise because something was named long before its correct nature was known, or because an earlier form of something has been replaced by a later form to which the nam ...
. The other reason why a systolic array should not qualify as a MISD is the same as the one which disqualifies it from the SISD category: The input data is typically a vector not a single data value, although one could argue that any given input vector is a single item of data. In spite of all of the above, systolic arrays are often offered as a classic example of MISD architecture in textbooks on
parallel computing Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
and in engineering classes. If the array is viewed from the outside as atomic it should perhaps be classified as SFMuDMeR = single function, multiple data, merged result(s). Systolic arrays use a pre-defined computational flow graph that connects their nodes.
Kahn process networks A Kahn process network (KPN, or process network) is a Distributed computing, distributed ''model of computation'' in which a group of deterministic sequential Process (computing), processes communicate through unbounded FIFO (computing and electron ...
use a similar flow graph, but are distinguished by the nodes working in lock-step in the systolic array: in a Kahn network, there are FIFO queues between each node.


Detailed description

A systolic array is composed of matrix-like rows of
data processing unit A data processing unit (DPU) is a programmable Processor (computing), computer processor that tightly integrates a general-purpose CPU with Network interface controller, network interface hardware. Sometimes they are called "IPUs" (for "infrastr ...
s called cells. Data processing units (DPUs) are similar to
central processing unit A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
s (CPUs), (except for the usual lack of a
program counter The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, ...
, since operation is transport-triggered, i.e., by the arrival of a data object). Each cell shares the information with its neighbors immediately after processing. The systolic array is often rectangular where data flows across the array between neighbour DPUs, often with different data flowing in different directions. The data streams entering and leaving the ports of the array are generated by auto-sequencing memory units, ASMs. Each ASM includes a data counter. In
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s a data stream may also be input from and/or output to an external source. An example of a systolic
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
might be designed for
matrix multiplication In mathematics, specifically in linear algebra, matrix multiplication is a binary operation that produces a matrix (mathematics), matrix from two matrices. For matrix multiplication, the number of columns in the first matrix must be equal to the n ...
. One
matrix Matrix (: matrices or matrixes) or MATRIX may refer to: Science and mathematics * Matrix (mathematics), a rectangular array of numbers, symbols or expressions * Matrix (logic), part of a formula in prenex normal form * Matrix (biology), the m ...
is fed in a row at a time from the top of the array and is passed down the array, the other matrix is fed in a column at a time from the left hand side of the array and passes from left to right. Dummy values are then passed in until each processor has seen one whole row and one whole column. At this point, the result of the multiplication is stored in the array and can now be output a row or a column at a time, flowing down or across the array. Systolic arrays are arrays of DPUs which are connected to a small number of nearest neighbour DPUs in a mesh-like topology. DPUs perform a sequence of operations on data that flows between them. Because the traditional systolic array synthesis methods have been practiced by algebraic algorithms, only uniform arrays with only linear pipes can be obtained, so that the architectures are the same in all DPUs. The consequence is, that only applications with regular data dependencies can be implemented on classical systolic arrays. Like
SIMD Single instruction, multiple data (SIMD) is a type of parallel computer, parallel processing in Flynn's taxonomy. SIMD describes computers with multiple processing elements that perform the same operation on multiple data points simultaneousl ...
machines, clocked systolic arrays compute in "lock-step" with each processor undertaking alternate compute , communicate phases. But systolic arrays with asynchronous handshake between DPUs are called ''wavefront arrays''. One well-known systolic array is Carnegie Mellon University's iWarp processor, which has been manufactured by Intel. An iWarp system has a linear array processor connected by data buses going in both directions.


History

Systolic arrays (also known as ''wavefront processors''), were first described by H. T. Kung and Charles E. Leiserson, who published the first paper describing systolic arrays in 1979. However, the first machine known to have used a similar technique was the Colossus Mark II in 1944.


Examples


Polynomial evaluation

Horner's rule for evaluating a polynomial is: : y = ( \ldots ( ( (a_n \cdot x + a_) \cdot x + a_) \cdot x + a_) \cdot x + \ldots + a_1) \cdot x + a_0. A linear systolic array in which the processors are arranged in pairs: one multiplies its input by x and passes the result to the right, the next adds a_j and passes the result to the right.


Convolution

Consider a chain of processing elements (PEs), each performing a multiply-accumulate operation. It processes input data (x_i) and weights (w_i) systolically, meaning data flows through the array in a regular, rhythmic manner. The weights remain stationary within each PE, while the input data and partial sums (y_i) move in opposite directions. Each PE performs the following operation: \begin y_ &= y_ + w \cdot x_ \\ x_ &= x_ \end where: * x_ is the input data. * y_ is the incoming partial sum. * w is the weight stored in the PE. * x_ is the output data (passed to the next PE). * y_ is the updated partial sum. From the left, the input stream is \dots, x_3, 0, x_2, 0, x_1 , and from the right, the output stream is y_1, y_2, y_3, \dots . If y_1, x_1 enter the rightmost PE simultaneously, then the leftmost PE outputs \begin y_1 &= w_1 x_1 + w_2 x_2 + w_3 x_3 + \cdots \\ y_2 &= w_1 x_2 + w_2 x_3 + w_3 x_4 + \cdots \\ &\vdots \end This is the 1-dimensional convolution. Similarly, n-dimensional convolution can be computed by an n-dimensional array of PEs. Many other implementations of the 1D convolutions are available, with different data flows. See Figure 12 for an algorithm that performs on-the-fly
least-squares The method of least squares is a mathematical optimization technique that aims to determine the best fit function by minimizing the sum of the squares of the differences between the observed values and the predicted values of the model. The me ...
using one- and two-dimensional systolic arrays.


Implementations

*
Cisco Cisco Systems, Inc. (using the trademark Cisco) is an American multinational digital communications technology conglomerate corporation headquartered in San Jose, California. Cisco develops, manufactures, and sells networking hardware, s ...
PXF network processor is internally organized as systolic array. * Google’s TPU is also designed around a systolic array. * Paracel FDF4T TestFinder text search system * Paracel FDF4G GeneMatcher Biological (DNA and Protein) search system * Inferentia chip at
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
* MIT Eyeriss is a systolic array accelerator for convolutional neural networks.


See also

* MISD – multiple instruction single data, example: systolic arrays * iWarp – systolic array computer, VLSI, Intel/CMU * WARP (systolic array) – systolic array computer, GE/CMU * Tensor Processing UnitAI accelerator
ASIC An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficien ...


Notes


References

* H. T. Kung, C. E. Leiserson: Algorithms for VLSI processor arrays; in: C. Mead, L. Conway (eds.): Introduction to VLSI Systems; Addison-Wesley, 1979 * S. Y. Kung: VLSI Array Processors; Prentice-Hall, Inc., 1988 * N. Petkov: Systolic Parallel Processing; North Holland Publishing Co, 1992


External links

*
''Instruction Systolic Array (ISA)''

'A VLSI Architecture for Image Registration in Real Time' (Based on systolic array), Vol. 15, September 2007
{{DEFAULTSORT:Systolic Array Parallel computing Reconfigurable computing