Overview
Application-Set Driven Architecture Exploration is a methodology for designing custom processor architectures in which a set of target applications is used to constrain and drive the design-space exploration. The method is presented in Chapter IV ("Application-Set Driven Exploration for Custom Processor Architectures") of Mehmet Ali Arslan's PhD thesis, and forms part of a broader research effort on compiler–architecture co-design for embedded and smart-device processors that are expected to be both fast and energy efficient.
Rather than tuning a processor for a single representative kernel, the approach takes the collective demands of an application set as the primary input, and seeks architectural configurations that perform well across that set. This is particularly relevant for custom processor design, where architecture choices have a large impact on throughput, code size, storage, and data-rate requirements.
Background
The exploration method is built on three established foundations, each treated as a background topic in the chapter:
- Constraint programming (Section 3.1) — used as the declarative modeling and search framework for expressing architectural constraints and for solving the resulting optimization problem.
- Pareto points (Section 3.2) — used to represent trade-off-optimal architectural configurations with respect to the multiple, often conflicting, design objectives (e.g., area vs. throughput, code size vs. performance).
- Modulo scheduling (Section 3.3) — used to estimate the achievable steady-state throughput of loops on a candidate architecture, providing a key performance metric during exploration.
Problem Definition
The problem addressed by the approach (Section 4 of the chapter) is: given a set of target applications and a parameterized space of custom processor architectures, identify the set of Pareto-optimal architectures — i.e., configurations that are not dominated on any objective by any other feasible configuration. This framing turns architecture design into a multi-objective search problem grounded in a constraint model.
Approach
The proposed approach is organized in two main steps:
- Pareto points generation (Section 5.1) — automated enumeration of Pareto-optimal architectural candidates that satisfy the constraints induced by the application set. Constraint programming is the engine that drives this enumeration.
- Modeling details (Section 5.2) — the specific way in which the application set, architectural parameters, and objective functions are encoded as constraints and objectives for the solver.
Case Study
The methodology is validated through a case study (Section 6) with two complementary parts:
- Automated Pareto points generation (Section 6.1) — demonstrating that the constraint-based toolchain can produce the Pareto front of candidate architectures directly from the application set without manual pruning.
- Candidate selection and evaluation (Section 6.2) — selecting representative points from the generated Pareto front and evaluating them to confirm that the trade-offs predicted by the model are realized in practice.
Role in the Broader Thesis
Application-Set Driven Architecture Exploration sits between the prior chapter on modulo scheduling–based code generation and the subsequent chapter on code generation for a SIMD architecture with custom memory organization (ePUMA). It provides the design-time counterpart to those code-generation techniques: a systematic way of choosing the architecture that the compiler will later target, driven by the same kind of application workloads that the compiler must handle.
See Also
- Pareto Points — the multi-objective optimality concept used to rank candidate architectures.
- Modulo Scheduling — the loop-pipelining technique used to evaluate throughput on each candidate.
- Code Generation for Custom Architectures using Constraint Programming — the related paper/line of work that connects this exploration method to constraint-based code generation.