Abstract
General-purpose processors are often incapable of achieving the challenging cost, performance, and power demands of high-performance applications. To meet these demands, most systems employ a number of hardware accelerators to off-load the computationally demanding portions of the application. As an alternative to this strategy, we examine customizing the computation capabilities of a processor for a particular application. The processor is extended with hardware in the form of a set of custom function units and instruction set extensions. To effectively identify opportunities for creating custom hardware, a dataflow graph design space exploration engine heuristically identifies candidate computation subgraphs without artificially constraining their size or shape. The engine combines estimates of performance gain, cost, and inherent limitations of the processor to grow candidate graphs in profitable directions while pruning unprofitable paths. This paper describes the dataflow graph exploration engine and evaluates its effectiveness across a set of embedded applications.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
D. Seal, ARM Architecture Reference Manual, Addison–Wesley (2000).
M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, and R. B. Brown, MiBench: A Free, Commercially Representative Embedded Benchmark Suite, IEEE 4th Annual Workshop on Workload Characterization (Dec. 2001).
C. Lee, M. Potkonjak, and W. Mangione-Smith, MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems, MICRO (Dec. 1997).
Trimaran, An Infrastructure for Research in ILP, http://www.trimaran.org.
G. Memik, W. H. Mangione-Smith, and W. Hu, Netbench: A Benchmarking Suite for Network Processors, ICCAD, pp. 39–43 (2001).
P. M. Athanas and H. S. Silverman, Processor Reconfiguration Through Instruction Set Metamorphosis, IEEE Computer, Vol. 11, No. 18 (1993).
R. Razdan and M. D. Smith, A High-Performance Microarchitecture with Hardware-Programmable Function Units, MICRO, pp. 172–180 (Nov. 30–Dec. 2 1994).
M. J. Wirthlin and B. L. Hutchings, DISC: The Dynamic Instruction Set Computer, Field Programmable Gate Arrays for Fast Board Development and Reconfigurable Computing, pp. 92–103 (1995).
J. R. Hauser and J. Wawrzynek, GARP: A MIPS Processor with a Reconfigurable Coprocessor, Symposium on FPGAs for Custom Computing Machines (Apr. 1997).
K. V. Palem, S. Talla, and P. W. Devaney, Adaptive Explicitly Parallel Instruction Computing, Proc. Australasian Computer Architecture Conference, pp. 61–74 (1999).
M. Gschwind, Instruction Set Selection for ASIP Design, ACM Seventh International Workshop on Hardware/Software Co-Design (May 1999).
L. Wu, C. Weaver, and T. Austin, Cryptomaniac: A Fast Flexible Architecture for Secure Communication, ISCA, pp. 110–119 (June 2001).
A. Alomary, T. Nakata, Y. Honma, and J. Sato, PEAS-I: A Hardware/Software Co-Design System for ASIPs, EDAC (1993).
J. P. Bennett, A Methodology for Automated Design of Computer Instruction Sets, Ph.D. thesis, University of Cambridge (1988).
D. S. Rao and F. J. Kurdahi, On Clustering for Maximal Regularity Extraction, IEEE Transactions on Computer Aided Design, Vol. 12 (Aug. 1993).
J. V. Praet, G. Goosens, D. Lanner, H. D. Man, and H. Synthesis, Instruction Set Definition and Instruction Selection for ASIP (1994).
M. Baleani et al., HW/SW Partitioning and Code Generation of Embedded Control Applications on a Reconfigurable Architecture Platform, 9th Intl. Workshop on Hardware/Software Codesign, pp. 61–66 (May 2002).
P. Brisk, A. Kaplan, R. Kastner, and M. Sarrafzadeh, Instruction Generation and Regularity Extraction for Reconfigurable Processors, CASES, pp. 262–269 (2002).
R. Kastner et al., Instruction Generation for Hybrid Reconfigurable Systems, ACM TODAES, Vol. 7 (Apr. 2002).
B. Holmer, Automatic Design of Computer Instruction Sets, Ph.D. thesis, University of California, Berkeley (1993).
I. Huang and A. M. Despain, Synthesis of Application Specific Instruction Sets, IEEE Transactions on Computer-Aided Design, Vol. 14 (June 1995).
P. Bose and E. S. Davidson, Design of Instruction Set Architctures for Support of High-Level Languages, ISCA (June 5–7, 1984).
H. Choi et al., Synthesis of Application Specific Instructions for Embedded DSP Software, IEEE Transactions on Computers, Vol. 48, pp. 603–614 (June 1999).
K. Atasu, L. Pozzi, and P. Ienne, Automatic Application-Specific Instruction-Set Extensions under Microarchitectural Constraints, 40th DAC (June 2003).
M. Arnold, Instruction Set Extensions for Embedded Processors, Ph.D. thesis, Delft University of Technology (2001).
F. Sun, S. Ravi, A. Raghunathan, and N. K. Jha, Synthesis of Custom Processors Based on Extensible Platforms, ICCAD (Nov. 2002).
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Clark, N., Zhong, H., Tang, W. et al. Automatic Design of Application Specific Instruction Set Extensions Through Dataflow Graph Exploration. International Journal of Parallel Programming 31, 429–449 (2003). https://doi.org/10.1023/B:IJPP.0000004509.87424.3a
Issue Date:
DOI: https://doi.org/10.1023/B:IJPP.0000004509.87424.3a