Skip to Content
Volume 2

The Pulse of Hardware

Mastering Data Flow Patterns in Systolic Array Microarchitecture

Stop moving the data to the processor; move the data through the fabric.

Strategic Objectives

• Master the principles of rhythmic, spatial data processing.

• Design high-throughput hardware accelerators for deep learning.

• Optimize data-flow patterns to minimize memory access latency.

• Implement scalable processing element arrays for specialized workloads.

The Core Challenge

Modern AI and high-performance computing are stifled by the Von Neumann bottleneck, where data movement consumes more energy than computation itself.

01

The Systolic Concept

Understanding Rhythmic Data Flow
You will begin your journey by grasping the fundamental metaphor of the systolic system—where data pulses through a network of processors like blood through a heart. This chapter establishes the core identity of the book, shifting your mindset from instruction-stream processing to spatial data-flow orchestration.
The Rhythmic Pulse of Data
The Heartbeat of the Systolic Array

In this section, we explore the metaphor of the systolic array as the beating heart of hardware systems, where each processor pulses with data like a heartbeat. This fundamental concept sets the stage for understanding how data flows in rhythmic patterns, synchronized across processors, as opposed to a traditional, linear flow of instruction-based processing.

From Streams to Spatial Flow
Shifting Paradigms in Data Processing

Transitioning from the traditional model of instruction-stream processing to the systolic paradigm, this section explains how data is orchestrated in a spatial configuration, enabling more efficient parallelism and faster processing times. It sets the intellectual groundwork for understanding spatial data-flow patterns in hardware systems.

Data as a Pulse
Understanding Systolic Flow Mechanics

In this section, we delve deeper into the mechanics of systolic flow, breaking down how data pulses from one processor to the next, how synchronization occurs, and the role of spatial locality. We discuss how these rhythms in data flow optimize performance in systolic arrays, making them ideal for high-performance computing applications.

02

Beyond Von Neumann

The Shift to Data-Centric Computing
To appreciate why systolic arrays matter, you must first understand the limitations of the traditional architectures you likely use today. This chapter shows you how separating memory from logic creates a bottleneck that only spatial architectures can break.
The Von Neumann Bottleneck
Understanding Memory-Logic Separation

This section delves into the core limitations of Von Neumann architecture, focusing on the inefficiencies caused by separating memory from processing logic. We will explore how this separation leads to data transfer bottlenecks and limits processing speed.

From Serial to Spatial
The Emergence of Systolic Arrays

Here we introduce spatial architectures, particularly systolic arrays, which provide a solution to the Von Neumann bottleneck. The section explains how these architectures integrate memory and processing logic in a more efficient manner, enabling parallel processing.

Breaking the Bottleneck
How Data-Centric Systems Overcome Traditional Limits

This section explores the benefits of shifting towards data-centric computing. By rethinking how data flows through a system, we can reduce the memory bottleneck, allowing for more effective and scalable computing models that go beyond Von Neumann's limitations.

03

The Anatomy of a Processing Element

The Building Blocks of the Array
You will zoom into the individual 'cells' of the array to understand the Multiply-Accumulate (MAC) unit. By mastering this atomic unit of computation, you will see how simple logic, when replicated, creates immense processing power.
The Multiply-Accumulate (MAC) Unit
Core Functionality and Design

Explore the inner workings of the MAC unit, its role in data flow within a systolic array, and how its design facilitates high-throughput processing. This section delves into the logic behind multiplication and accumulation in a single step, making it a pivotal building block for parallel computation.

Building Blocks of the MAC Unit
Combinatorial Logic and Memory Cells

Examine the basic components that make up the MAC unit, such as registers, adder circuits, and multiplier elements. These components work together to implement the core MAC operation efficiently and at scale, forming the essential architecture for systolic arrays.

Array Replication: Scaling Up the MAC Unit
Leveraging Parallelism for Efficiency

Understand how the replication of MAC units across an array enhances computational power. This section focuses on the concept of systolic arrays and the benefits of parallel execution, demonstrating how simple operations, when repeated and synchronized, can lead to massive performance gains.

04

Spatial Architectures

Mapping Algorithms to Hardware
This chapter introduces you to the broader world of spatial computing. You will learn how to visualize algorithms as physical layouts, allowing you to move beyond linear execution and into the realm of multi-dimensional data movement.
Understanding Spatial Architectures
The foundation of spatial computing

This section provides an overview of spatial architectures, explaining the concept of representing algorithms as physical space, and how they enable multi-dimensional data movement. We explore how systolic arrays, as a prime example, embody spatial computing through parallel processing and efficient data flow.

Mapping Algorithms to Physical Layouts
From algorithm design to hardware execution

Learn how to map complex algorithms to physical layouts by visualizing their data flow in multi-dimensional space. This section emphasizes the principles of spatial mapping and how various computational elements like memory, processors, and data paths are arranged in a way that reflects algorithmic behavior.

Dimensionality and Data Movement
Understanding how multi-dimensional space affects efficiency

Dive into the mechanics of data movement across multiple dimensions. This section breaks down how spatial computing leverages dimensionality to enhance algorithm performance and reduce latency, drawing on the concept of multi-dimensional data structures and parallel data flow.

05

The Data-Flow Paradigm

Execution Guided by Availability
You will explore the philosophy of data-flow, where instructions execute only when their operands arrive. This shift is vital for you to understand how systolic arrays maintain their rhythmic efficiency without complex global controllers.
Introduction to Data-Flow Paradigm
The Core Philosophy of Data Execution

An exploration of how data-flow architecture contrasts with traditional control-flow models. This section delves into the operational simplicity and efficiency of executing instructions when operands are available, without the need for complex global controllers.

Systolic Arrays and Data-Flow
How Data-Flow Powers Systolic Rhythms

A detailed look at how systolic arrays leverage data-flow principles to execute instructions in a synchronized, rhythmic manner. This section will describe the role of data availability in maintaining efficiency and throughput.

The Benefits of Decoupling Control and Data
Efficient Execution without Central Controllers

Explains the advantages of decoupling data flow from global control, focusing on the elimination of bottlenecks, improved scalability, and the reduced need for centralized management of operations.

06

Parallelism at Scale

The Flynn Taxonomy and Beyond
You will categorize systolic arrays within the wider context of parallel processing. This chapter helps you identify where your design fits among SIMD and MIMD systems, providing you with a theoretical framework for scalability.
Introduction to Parallel Processing Architectures
Understanding the Foundations of Flynn's Taxonomy

This section introduces the fundamental concepts of parallel processing, with a focus on Flynn's Taxonomy. It explores the need for categorizing parallel systems, especially within the realm of systolic array microarchitecture. The section will lay the groundwork for understanding how SIMD and MIMD architectures relate to systolic arrays.

The SIMD and MIMD Distinction
Categorizing Systolic Arrays within Flynn's Taxonomy

In this section, we delve into the distinctions between SIMD (Single Instruction, Multiple Data) and MIMD (Multiple Instruction, Multiple Data) systems. The focus will be on how systolic arrays fit into these categories and how their data flow patterns align with either model. Examples from modern hardware will be discussed to illustrate these points.

Expanding Beyond Flynn: Modern Parallel Processing Models
Integrating New Paradigms with Traditional Taxonomy

This section expands the conversation beyond Flynn's original taxonomy to include emerging models of parallelism. It introduces new paradigms such as hybrid systems and the implications of data locality and memory access patterns in scaling systolic arrays. This provides a more comprehensive framework for understanding the scalability of modern parallel processing systems.

07

Matrix Multiplication Mastery

The Bread and Butter of Systolic Arrays
Since matrix operations are the primary workload for systolic arrays, you will dive deep into the algorithms that drive them. You will learn to decompose large operations into the specific rhythmic steps required for hardware acceleration.
Understanding Matrix Multiplication
The Heart of Systolic Array Operations

This section introduces matrix multiplication, covering its importance as a fundamental operation in systolic arrays. It will explain the mathematical foundation of matrix multiplication and how it translates into hardware acceleration for computational tasks.

Systolic Array Architecture
Efficient Data Flow for Matrix Multiplication

Here, we examine how systolic arrays are architected to optimize matrix multiplication. Emphasis is placed on the data flow and rhythm of operations that allow these arrays to perform with maximum efficiency in hardware.

Decomposing Large Matrix Operations
Breaking Down Complex Tasks for Parallelism

This section explains how to break down large matrix operations into smaller, rhythmic steps that can be handled by the systolic array's processing elements. It focuses on optimizing parallelism and minimizing latency.

08

Interconnect Topologies

Connecting the Processing Elements
The magic of a systolic array lies in its wiring. You will learn how to design efficient Interconnects and Networks-on-a-Chip to ensure that data arrives at the right processing element at exactly the right clock cycle.
The Role of Interconnects in Systolic Arrays
Understanding the Importance of Efficient Wiring

Explore how the interconnect topology influences data flow and system performance in systolic arrays. Learn why choosing the right architecture is key to minimizing latency and maximizing throughput in data-intensive tasks.

Types of Interconnect Architectures
From Bus-Based to Mesh and Torus Networks

Dive into different interconnect topologies such as bus, mesh, and torus networks. Compare their trade-offs in terms of scalability, communication efficiency, and latency.

Network-on-Chip (NoC) Design
Building Scalable and Reliable Communication Links

Learn the principles behind Network-on-a-Chip (NoC) design, focusing on how it enables efficient communication between processing elements in complex systems. Understand the role of routing, buffering, and flow control.

09

Pipelining Logic

Maximizing Throughput with Stages
You will study the principles of pipelining to understand how systolic arrays achieve high clock speeds. By breaking down tasks into discrete stages, you will learn to keep every part of your hardware busy at all times.
Introduction to Pipelining
The Core Concept of Task Division

Explore the basic principles of pipelining and how breaking down tasks into stages improves throughput. Understand the foundational logic behind pipelining in hardware design.

Stages in Pipelining
Optimizing Each Stage for Maximum Efficiency

Dive into the different stages of a pipeline, from fetching instructions to executing and writing results. Learn how to optimize each stage to keep the hardware fully occupied without delays.

Systolic Arrays and Pipelining
Leveraging Pipelining for High Clock Speeds

Understand how systolic arrays utilize pipelining to maintain high clock speeds. Study the design of systolic arrays and how they process data efficiently through parallel stages.

10

Memory Reuse Strategies

Reducing External Bandwidth Pressure
Systolic arrays thrive by reusing data. You will explore how to use scratchpad memories and local buffers to keep data circulating within the array, saving you the massive energy cost of constant RAM access.
Understanding Data Flow in Systolic Arrays
The Role of Local Buffers

In this section, we explore the data flow mechanics within systolic arrays, focusing on how local buffers facilitate the reuse of intermediate results. These buffers reduce the need for external memory fetches and improve overall throughput.

The Mechanics of Scratchpad Memory
Maximizing On-Chip Storage Efficiency

We dive into the concept of scratchpad memory, highlighting its role in systolic arrays. By reducing reliance on traditional RAM, scratchpad memories enable more efficient use of limited on-chip resources, lowering energy consumption and boosting performance.

Reducing External Bandwidth Pressure
How Localized Data Management Improves Scalability

This section discusses how memory reuse through scratchpad memories helps alleviate external bandwidth pressures. By localizing data access and reducing frequent off-chip memory calls, systolic arrays scale more effectively in performance-critical applications.

11

The Tensor Processing Unit (TPU)

A Case Study in Modern Systolic Design
You will analyze the world's most famous systolic array implementation. By studying the TPU, you will see how theoretical data-flow patterns are translated into industrial-scale silicon used for global AI workloads.
Introduction to Tensor Processing Units
A New Era in AI Hardware

This section introduces the TPU as a cutting-edge implementation of systolic array architecture, explaining its role in accelerating AI workloads and its revolutionary design. It covers the importance of data flow patterns in modern AI tasks and how the TPU addresses these needs.

Design Principles Behind the TPU
Optimizing Data Flow for AI Tasks

This section delves into the design principles that make the TPU a unique and efficient hardware for AI workloads. It explores the integration of systolic arrays, parallel processing, and custom data flow paths to maximize throughput and minimize latency.

The TPU Architecture
Building Blocks of Systolic Array Microarchitecture

In this section, we will break down the architecture of the TPU, including its key components like processing elements, matrix multiply units, and memory hierarchies. A comparison with other AI hardware accelerators will also be presented.

12

Application-Specific Integrated Circuits (ASICs)

Hardwiring the Data-Flow
You will learn the trade-offs of committing a systolic design to fixed silicon. This chapter guides you through the decision-making process of when to choose the rigid efficiency of an ASIC for your data-flow pattern.
Introduction to ASICs in Systolic Designs
Exploring the ASIC Approach

This section introduces ASICs and their relevance in systolic array microarchitecture. It covers the core concepts of ASICs, including their structure, function, and how they align with the rigid efficiency needs of specialized hardware.

Advantages of ASICs for Data-Flow
Efficiency and Precision in Hardware

Here, we dive into the key benefits of using ASICs, such as energy efficiency, performance optimization, and low latency. The section will explain how ASICs excel in implementing fixed data-flow patterns with predictable outcomes.

Trade-offs in ASIC Design
Evaluating Flexibility vs. Performance

This section tackles the major trade-offs in choosing ASICs, including the loss of flexibility compared to programmable hardware and the high initial cost of design and production. We will analyze when the benefits outweigh these downsides.

13

FPGA Prototyping

Reconfigurable Systolic Arrays
Before you bake a design into silicon, you must test it. You will learn how FPGAs provide a flexible canvas for experimenting with different systolic geometries and rhythmic timings without the multi-million dollar cost of a chip run.
Introduction to FPGA Prototyping
Flexibility in Early-Stage Design

FPGAs provide a unique, reconfigurable platform for designers to quickly test and iterate on systolic array microarchitectures. In this section, we will cover the fundamental concepts of FPGA prototyping, its importance in the design process, and how it serves as an ideal tool for experimenting with various geometries and data flow patterns.

Building Reconfigurable Systolic Arrays
Mapping Systolic Arrays to FPGA

This section dives into how systolic arrays, known for their efficient data flow in parallel computing, can be implemented on FPGAs. It explores techniques for mapping systolic designs, the importance of timing and synchronization, and how FPGAs allow for experimentation with different configurations without the need for expensive silicon fabrication.

Advantages of FPGA Prototyping Over Silicon
Cost-Effective Design Validation

FPGA prototyping is a cost-effective alternative to traditional chip fabrication. This section explores the financial and technical benefits of using FPGAs to prototype systolic arrays, including the ability to rapidly test different designs, debug in real-time, and avoid the high costs associated with silicon-based production.

14

Convolutional Neural Networks

Mapping Sliding Windows to Hardware
You will discover how the 'sliding window' of a CNN is a perfect candidate for systolic acceleration. This chapter teaches you to transform spatial image data into a stream that flows seamlessly through your processing elements.
Understanding the Convolutional Process
Overview of Convolution in Neural Networks

This section introduces the fundamental concept of convolution in neural networks. It covers the basic mathematical operations that underpin the 'sliding window' mechanism and explains how convolution layers extract features from input data.

The Sliding Window Mechanism
Mapping the Spatial Flow of Data

This section delves deeper into the sliding window technique, explaining how it scans over input data and applies filters in a way that is perfectly suited for hardware acceleration in systolic arrays.

Systolic Arrays: Ideal for CNN Acceleration
Why Systolic Arrays Fit the Sliding Window Model

Here, we explore the architectural benefits of systolic arrays in the context of CNNs. Systolic arrays’ inherent parallelism is exploited to accelerate the convolutional process, reducing latency and increasing throughput.

15

The Wavefront Array Processor

Asynchronous Data Flow
You will explore an alternative to the strictly clocked systolic array: the wavefront processor. You will learn how self-timed data movement can solve synchronization issues in massive arrays, offering a different perspective on rhythmic processing.
Introduction to Wavefront Processors
Beyond Systolic Arrays

This section introduces the concept of wavefront processors, explaining the fundamental differences between strictly clocked systolic arrays and the self-timed, asynchronous processing model. It emphasizes the need for such architectures in solving the bottlenecks caused by synchronized data flow in large-scale computations.

Self-Timed Data Movement
Understanding the Core Mechanism

This section dives into the mechanisms of self-timed data movement in wavefront processors. It explains how data flows asynchronously and how each processor element communicates independently, reducing the reliance on a global clock, unlike in traditional systolic arrays.

Advantages over Systolic Arrays
Efficiency and Scalability

In this section, the benefits of wavefront processors over traditional systolic arrays are explored, particularly in terms of scalability and energy efficiency. The removal of global clock synchronization reduces power consumption and allows for more flexible designs that scale efficiently with increasing array size.

16

VLSI Design Principles

Physics and Layout of the Array
You will tackle the physical realities of chip design. This chapter explains how the regularity of systolic arrays simplifies the VLSI layout process, making it easier for you to manage power distribution and signal integrity.
Introduction to VLSI Design
The Evolution of Microchips

This section introduces the basics of VLSI (Very Large Scale Integration) and its importance in modern chip design. It sets the stage for understanding how systolic arrays fit into the broader VLSI context, with a focus on the relationship between chip architecture and the physical constraints imposed by technology.

The Role of Systolic Arrays in VLSI
Efficient Design with Regularity

Systolic arrays provide a structured framework that simplifies the VLSI layout process. This section discusses how their regular, predictable nature allows for efficient power distribution, better signal integrity, and more manageable routing of interconnections.

Physical Layout and Chip Architecture
Managing Signal Integrity and Power

This section dives into the physics of chip layout, focusing on how systolic arrays help optimize the physical design for signal integrity and power management. It covers aspects like the impact of interconnection lengths, parasitic capacitance, and heat dissipation.

17

High-Performance Computing Context

Systolic Arrays in the Supercomputer
You will see the 'big picture' of where your hardware fits in the world of supercomputing. This chapter helps you understand how systolic accelerators integrate with host systems to solve the world's most complex numerical problems.
The Supercomputing Landscape
The Role of High-Performance Computing

Explore the fundamental goals of high-performance computing (HPC) and how it powers the world's most demanding computational tasks. This section provides an overview of HPC's global importance, from scientific research to real-world applications like climate modeling and artificial intelligence.

Systolic Arrays: Accelerating Computational Efficiency
Optimizing Data Flow in Supercomputers

Delve into systolic arrays as an essential hardware component in modern supercomputing. Learn how these arrays optimize data flow and boost computational speed by utilizing parallel processing techniques to handle vast computational loads.

Integrating Systolic Arrays with Host Systems
Seamless Communication Between Accelerators and CPUs

Understand the crucial interaction between systolic arrays and host systems. This section highlights how systolic arrays integrate with CPUs and other components, allowing seamless data exchange and efficient problem-solving for supercomputing applications.

18

Energy-Efficient Computing

The Green Side of Data Flow
You will learn why systolic arrays are the kings of 'performance-per-watt.' This chapter teaches you to quantify energy savings by reducing the distance data travels, a critical skill in an era of sustainable computing.
Introduction to Energy-Efficient Computing
Understanding the Intersection of Performance and Power

This section introduces the core principles of energy-efficient computing, focusing on the relationship between power consumption and system performance. It highlights how systolic arrays excel in reducing energy use while maintaining high performance.

Systolic Arrays and Their Role in Sustainable Computing
Why 'Performance-per-Watt' Matters

This section explores systolic arrays as a case study in energy-efficient computing. It demonstrates how their architecture minimizes energy expenditure by reducing data travel distance within the hardware, making them ideal for sustainable computing applications.

Quantifying Energy Savings
Techniques for Measuring the Impact of Data Flow Optimization

This section provides methods for quantifying energy savings in systolic arrays. It covers key metrics such as energy-per-operation, data flow distance, and their implications for system design in green computing.

19

Compilers for Spatial Arrays

Turning Code into Flow
Even the best hardware needs software. You will explore how optimizing compilers take high-level code and 'schedule' it onto a systolic fabric, ensuring you understand the software-hardware interface.
The Role of Compilers in Hardware Design
Bridging the Gap Between Software and Hardware

An introduction to how compilers translate high-level code into machine-level instructions, focusing on their significance in hardware design, particularly in systolic arrays. This section explores the software-hardware interface, setting the stage for understanding how compilers optimize data flow for parallel architectures.

Scheduling Code onto Systolic Arrays
Transforming High-Level Code into Efficient Data Flow

This section delves into the specifics of how compilers schedule operations on systolic arrays, ensuring that the data flow matches the architecture's parallelism. It covers key scheduling techniques, such as loop unrolling and pipelining, and how they influence performance.

Optimizing for Parallelism in Systolic Arrays
Maximizing Hardware Efficiency

Explore how compilers are designed to exploit parallelism in systolic arrays, turning high-level instructions into parallel tasks that can be executed simultaneously. This section also covers how dependency analysis and memory access patterns play a role in optimizing these architectures.

20

Hardware Description Languages

Coding the Rhythmic Fabric
You will look at the actual code used to build these arrays. By exploring Verilog, you will gain the practical knowledge needed to start describing processing elements and their connections in a language the tools understand.
Introduction to Hardware Description Languages
The Foundation of Systematic Design

Begin with an overview of Hardware Description Languages (HDLs), emphasizing their role in defining hardware architecture and behavior. Discuss their importance in designing microarchitectures like systolic arrays, with a focus on Verilog as a primary HDL.

The Structure of Verilog Code
Building Blocks of Digital Design

Dive into the syntax and structure of Verilog, explaining the key components like modules, inputs/outputs, and logic expressions. Walk through a simple example to demonstrate how to describe processing elements and their interconnections.

Describing Processing Elements in Verilog
Coding Functional Blocks of the Array

Explore how Verilog can be used to model processing elements within systolic arrays. Discuss the translation of algorithmic functions into hardware descriptions, and how to use Verilog to capture data flow and control logic within each element.

21

The Future of Rhythmic Silicon

Neuromorphic and Photonic Horizons
In the final chapter, you will look toward the horizon. You will see how the systolic principles you've learned are evolving into neuromorphic and optical computing, preparing you for a career that outlasts current silicon trends.
Beyond Silicon: A New Era in Hardware
The Shift Toward Neuromorphic and Photonic Systems

Explore how traditional silicon microarchitecture is transitioning towards neuromorphic and photonic computing, focusing on the shift in data flow models, computational efficiency, and the integration of biological principles in future hardware systems.

Neuromorphic Computing: Mimicking the Brain
How Systolic Principles Connect to Neural Networks

Examine how systolic array principles relate to neuromorphic computing, which mimics the brain’s processing architecture. This section highlights the synergy between rhythmic data flow and the design of brain-inspired networks for artificial intelligence.

Photonic Computing: Harnessing Light for Speed
The Future of Optical Data Flow

Dive into photonic computing, where light, rather than electricity, powers data transmission. This section connects the principles of optical interconnects and their potential to revolutionize processing speeds and energy efficiency in comparison to traditional silicon-based systems.

Available eBook Editions

Arabic
English
French
German
Italian
Japanese
Korean
Portuguese
Spanish
Turkish