Spatial Computation

Abstract

This thesis presents a compilation framework for translating ANSI C programs into hardware dataflow machines. The framework is embodied in the CASH compiler, a Compiler for Application-Specific Hardware. This style of computation is dubbed Spatial Computation. The first part of this document describes Pegasus, the internal representation of CASH. The most notable of these are a new optimal register-promotion algorithm and partial redundancy elimination for memory accesses based on predicate manipulation. The second part of this document evaluates the performance of the generated circuits using simulation. Using media processing benchmarks, we show that for the domain of embedded computation, the circuits generated by CASH can sustain high levels of instruction level parallelism. A comparison of Spatial Computation and superscalar processors highlights some of the weaknesses of our model of computation, such as the lack of branch prediction and register renaming. The results presented in this document can be applied in several domains: (1) most of the compiler optimizations are applicable to traditional compilers for high-level languages; (2) CASH itself can be used as a hardware synthesis tool directly from C sources; (3) the compilation framework we describe can be applied to the translation of imperative languages; (4) we have extended the dataflow machine model to encompass predication, data-speculation and control-speculation; and (5) the tool-chain described can be used for synthesis and optimization of asynchronous hardware.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 2003
Accession Number
ADA461132

Entities

People

  • Mihai Budiu

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Cyber
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Computer Architecture
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Debugging
  • Digital Signal Processing
  • Field Programmable Gate Arrays
  • Instruction Set Architecture
  • Logic Gates
  • Operating Systems
  • Parallel Computing
  • Parallel Processing
  • Processing Equipment
  • Programming Languages
  • Signal Processing

Fields of Study

  • Computer science

Readers

  • Computational Linguistics
  • Distributed Systems and Data Platform Development
  • Parallel and Distributed Computing.