Distributed Memory Hazard Detection in Spatial Processing Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current processor architectures face challenges in achieving exascale performance and energy efficiency due to out-of-order scheduling, complex register files, and high energy costs, making it difficult to support high throughput and low energy consumption per operation.
Innovation Solution
A spatial array of processing elements with a configurable spatial accelerator (CSA) architecture that executes dataflow graphs, utilizing lightweight communication networks and dataflow operators to enable parallel memory accesses and dynamic hazard detection, allowing for energy-efficient and high-performance execution of applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If out-of-order scheduling is implemented to improve throughput, then productivity increases, but device complexity increases due to complex register files and control mechanisms
Solution Approach 1:
The patent segments the centralized memory system into distributed memory interfaces at each processing element. Each PE has its own memory interface that independently manages memory operations, eliminating the need for complex centralized register files and control logic while maintaining out-of-order execution capability.
Solution Approach 2:
Each processing element's memory interface autonomously detects hazards and manages its own memory operations without requiring complex centralized control. The hazard detection circuitry at each PE interface self-manages memory access ordering, reducing overall system complexity while preserving throughput.
2Reliability
If centralized memory systems are used to manage memory operations, then reliability is improved, but device complexity increases and energy consumption rises
Solution Approach 1:
The centralized memory system is segmented into distributed memory interfaces at each processing element. This segmentation maintains reliability through localized hazard detection and management while reducing device complexity by eliminating the need for a complex centralized memory controller.
Solution Approach 2:
Hazard detection circuitry is introduced as an intermediary at each memory interface to manage memory operations locally. This intermediary detects potential hazards and coordinates memory access ordering, maintaining reliability without requiring a complex centralized memory system.
3Measurement precision
If traditional hazard detection methods are used, then measurement precision is improved, but device complexity increases due to centralized tracking mechanisms
Solution Approach 1:
Centralized hazard tracking is segmented into distributed hazard detection circuitry at each processing element's memory interface. Each interface independently tracks hazards for its own memory operations, maintaining detection precision while eliminating complex centralized tracking mechanisms.
Solution Approach 2:
Each memory interface performs self-service hazard detection for its own memory operations. The hazard detection circuitry at each interface autonomously monitors and detects hazards without requiring centralized tracking, maintaining measurement precision while reducing device complexity.
Data Source
AI summary
Methods and apparatuses relating to distributed memory hazard detection and error recovery are described. In one embodiment, a memory circuit includes a memory interface circuit to service memory requests from a spatial array of processing elements for data stored in a plurality of cache banks; and a hazard detection circuit in each of the plurality of cache banks, wherein a first hazard detection circuit for a speculative memory load request from the memory interface circuit, that is marked with a potential dynamic data dependency, to an address within a first cache bank of the first hazard detection circuit, is to mark the address for tracking of other memory requests to the address, store data from the address in speculative completion storage, and send the data from the speculative completion storage to the spatial array of processing elements when a memory dependency token is received for the speculative memory load request.


