Efficient compilation for queue size constrained queue processors

  • Authors:
  • Arquimedes Canedo;Ben A. Abderazek;Masahiro Sowa

  • Affiliations:
  • IBM, Tokyo Research Laboratory, 1623-14 Shimotsuruma, Yamato-Shi, Kanagawa-Ken 242-8502, Japan;University of Aizu, Aizu-Wakamatsu, Fukushima-Ken 965-8580, Japan;University of Electro-Communications, Graduate School of Information Systems, Chofugaoka 1-5-1, Chofu-Shi 182-8585, Japan

  • Venue:
  • Parallel Computing
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Queue computers use a FIFO data structure for data processing. The essential characteristics of a queue-based architecture excel at satisfying the demands of embedded systems, including compact instruction set, simple hardware logic, high parallelism, and low power consumption. The size of the queue is an important concern in the design of a realizable embedded queue processor. We introduce the relationship between parallelism, length of data dependency edges in data flow graphs and the queue utilization requirements. This paper presents a technique developed to make the compiler aware of the size of the queue register file and, thus, optimize the programs to effectively utilize the available hardware. The compiler examines the data flow graph of the programs and partitions it into clusters whenever it exceeds the queue limits of the target architecture. The presented algorithm deals with the two factors that affect the utilization of the queue, namely parallelism and the length of variables' reaching definitions. We analyze how the quality of the generated code is affected for SPEC CINT95 benchmark programs and different queue size configurations. Our results show that for reasonable queue sizes the compiler generates a code that is comparable to the code generated for infinite resources in terms of instruction count, static execution time, and instruction level parallelism.