Abstract
We present an efficient framework for dynamic reconfiguration of application-specific custom instructions. A key component of this framework is an iterative algorithm for temporal and spatial partitioning of the loop kernels. Our algorithm maximizes the performance gain of an application while taking into consideration the dynamic reconfiguration cost. It selects the appropriate custom instructions for the loops and clubs them into one or more configurations. We model the temporal partitioning problem as a k-way graph partitioning problem. A dynamic programming based solution is used for the spatial partitioning. Comprehensive experimental results indicate that our iterative partitioning algorithm is highly scalable while producing optimal or near-optimal (99% of the optimal) performance gain.
Similar content being viewed by others
References
ARC International. http://www.arc.com/configurablecores/
Arnold JM (2005) S5: The architecture and development flow of a software configurable processor. In: Proceedings of the IEEE international conference on field-programmable technology (FPT), pp 121–128
Arnold M, Corporaal H (2001) Designing domain-specific processors. In: Proceedings of the 9th ACM international symposium on hardware/software codesign (CODES), pp 61–66
Atasu K, Pozzi L, Ienne P (2003) Automatic application-specific instruction-set extensions under microarchitectural constraints. In: Proceedings of the 40th ACM/IEEE design automation conference (DAC), pp 256–261
Banerjee S, Bozorgzadeh E, Dutt N (2005) Physically-aware HW-SW partitioning for reconfigurable architectures with partial dynamic reconfiguration. In: Proceedings of the 42nd ACM/IEEE design automation conference (DAC), pp 335–340
Bauer L, Shafique M, Kramer S, Henkel J (2007) RISPP: Rotating instruction set processing platform. In: Proceedings of the 44th ACM/IEEE design automation conference (DAC), pp 791–796
Bondalapati K, Prasanna VK (1998) Mapping loops onto reconfigurable architectures. In: Proceedings of the 8th international workshop on field-programmable logic and applications (FPL), pp 268–277
Chatha KS, Vemuri R (1999) Hardware-software codesign for dynamically reconfigurable architectures. In: Proceedings of the 9th international workshop on field-programmable logic and applications (FPL), pp 175–184
Cheung N, Parameswaran S, Henkel J (2002) INSIDE: INstruction Selection/Identification & Design Exploration for extensible processors. In: Proceedings of the IEEE/ACM international conference on computer-aided design (ICCAD), pp 291–297
Clark N, Zhong H, Mahlke S (2003) Processor acceleration through automated instruction set customization. In: Proceedings of the 36th IEEE/ACM international symposium on microarchitecture (MICRO), pp 129–140
Cong J, Fan Y, Han G, Zhang Z (2004) Application-specific instruction generation for configurable processor architectures. In: Proceedings of the ACM/SIGDA 12th international symposium on field programmable gate arrays (FPGA), pp 183–189
de Bruijn NG (1981) Asymptotic methods in analysis. Dover, New York
Faraboschi P, Brown G, Fisher JA, Desoli G, Homewood F (2000) Lx: A technology platform for customizable VLIW embedded processing. In: Proceedings of the 27th ACM/IEEE annual international symposium on computer architecture (ISCA), pp 203–213
Gonzalez RE (2000) Xtensa: A configurable and extensible processor. IEEE Micro 20(2):60–70
Hardnett C, Palem KV, Chobe Y (2006) Compiler optimization of embedded applications for an adaptive SoC architecture. In: Proceedings of the ACM international conference on compilers, architecture and synthesis for embedded systems (CASES), pp 312–322
Karypis G, Kumar V (1998) A fast and high quality multilevel scheme for partitioning irregular graphs. SIAM J Sci Comput 20(1):359–392
Karypis G, Kumar V (1998) Multilevel k-way partitioning scheme for irregular graphs. J Parallel Distributed Comput 48(1):96–129
Kastner R, Kaplan A, Memik SO, Bozorgzadeh E (2002) Instruction generation for hybrid reconfigurable systems. ACM Trans Des Autom Electron Syst (TODAES) 7(4):605–627
Kaul M, Vemuri R, Govindarajan S, Ouaiss I (1999) An automated temporal partitioning and loop fission approach for FPGA based reconfigurable synthesis of DSP applications. In: Proceedings of the 36th ACM/IEEE design automation conference (DAC), pp 616–622
Kernighan BW, Lin S (1970) An efficient heuristic procedure for partitioning graphs. Bell Syst Tech J 49(2):291–307
Kreher DL, Stinson DR (1998) Combinatorial algorithms generation, enumeration and search. CRC Press, Boca Raton
Lee J, Choi K, Dutt N (2002) Efficient instruction encoding for automatic instruction set design of configurable ASIPs. In: Proceedings of the IEEE/ACM international conference on computer-aided design (ICCAD), pp 649–654
Li Y, Callahan T, Darnell E, Harr R, Kurkure U, Stockwood J (2000) Hardware-software co-design of embedded reconfigurable architectures. In: Proceedings of the 37th ACM/IEEE design automation conference (DAC), pp 507–512
Li Z, Hauck S (2002) Configuration prefetching techniques for partial reconfigurable coprocessor with relocation and defragmentation. In: Proceedings of the ACM/SIGDA 10th international symposium on field-programmable gate arrays (FPGA), pp 187–195
Nevill-Manning CG, Witten IH (1997) Identifying hierarchical structure in sequences: A linear-time algorithm. J Artif Intell Res 7:67–82
OpenIMPACT Compiler. http://www.gelato.uiuc.edu/
Purna KMG, Bhatia D (1999) Temporal partitioning and scheduling data flow graphs for reconfigurable computers. IEEE Trans Comput 48(6):579–590
Stretch Inc. Stretch S5530 software configurable processor. http://www.stretchinc.com/products/s5000.php
Yu P, Mitra T (2004) Characterizing embedded applications for instruction-set extensible processors. In: Proceedings of the 41st ACM/IEEE design automation conference (DAC), pp 723–728
Yu P, Mitra T (2004) Scalable custom instructions identification for instruction-set extensible processors. In: Proceedings of the ACM international conference on compilers, architecture, and synthesis for embedded systems (CASES), pp 69–78
Yu P, Mitra T (2007) Disjoint pattern enumeration for custom instructions identification. In: Proceedings of the 17th IEEE international conference on field programmable logic and applications (FPL), pp 273–278
Author information
Authors and Affiliations
Corresponding author
Additional information
A preliminary version of this paper appeared in the proceedings of the 7th ACM/IEEE International Conference on Compilers, Architecture, and Synthesis for Embedded Systems (CASES) 2007.
Rights and permissions
About this article
Cite this article
Huynh, H.P., Sim, J.E. & Mitra, T. An efficient framework for dynamic reconfiguration of instruction-set customization. Des Autom Embed Syst 13, 91–113 (2009). https://doi.org/10.1007/s10617-008-9035-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-008-9035-x