Abstract
Banked register file has been proposed to reduce die area, power consumption, and access time. Some embedded processors, e.g. Intel’s IXP network processors, adopt this organization. However, they expose some access constraints in ISA, which complicates the design of register allocation. In this paper, we present a register allocation framework for banked register files with access constraints for the IXP network processors. Our approach relies on the estimation of the costs and benefits of assigning a virtual register to a specific bank, as well as that of splitting it into multiple banks via copy instructions. We make the decision of bank assignment or live range splitting based on analysis of these costs and benefits. Compared to previous works, our framework can better balance the register pressure among multiple banks and improve the performance of typical network applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Huang, J.H.: Network processor design. In: 5th International Conference on ASIC 2003, Proceedings, vol. 1(21-24), pp. 26–33 (2003)
Tseng, J.H., Asanović, K.: Banked multiported register files for high-frequency superscalar microprocessors. In: Proceedings of the 30th annual international symposium on Computer architecture (2003)
Cruz, J.L., González, A., Valero, M., Topham, N.P.: Multiple-banked register file architectures. In: Proceedings of 27th annual international symposium on Computer Architecture, pp. 316–325 (2000)
Balasubramoniany, R., Dwarkadasy, S., Albonesi, D.H.: Reducing the complexity of the register file in dynamic superscalar processors. In: 34th International Symposium on Microarchitecture (MICRO-34), pp. 237–248 (2001)
Intel: Intel IXP2400 Network Processor Hardware Reference Manual. Intel Corporation (2003)
Chow, F.C., Hennessy, J.L.: The priority-based coloring approach to register allocation. ACM Transactions on Programming Languages and Systems (TOPLAS) 12 (1990)
Intel: Intel IXP2400/IXP2800 Network Processor Programmers Reference Manual. Intel Corporation (2003)
Chen, M.K., Li, X.F., Lian, R., Lin, J.H., Liu, L., Liu, T., Ju, R.: Shangri-la: achieving high performance from compiled network applications while enabling ease of programming. In: PLDI 2005: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pp. 224–236. ACM Press, New York (2005)
Zhuang, X., Pande, S.: Resolving register bank con icts for a network processor. In: Proceedings of the 12th International Conference on Parallel Architectures and Compilation Techniques(PACT 2003) (2003)
George, L., Appel, A.W.: Iterated register coalescing. In: POPL 1996: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 208–218. ACM Press, New York (1996)
Farkas, K.I.: Memory-System Design Considerations For Dynamically-Scheduled Microprocessors. PhD thesis, University of Toronto (1997)
Sedgewick, R.: Algorithms in C++ Parts 5: Graph Algorithms. Addison Wesley/Pearson (2001)
Stoer, M., Wagner, F.: A simple min-cut algorithm. Journal of the ACM, JACM (1997)
Hiser, J., Carr, S.: Global register partitioning. In: International Conference on Parallel Architectures and Compilation Techniques (2000)
Jang, S., Carr, S., Sweany, P., Kuras, D.: A code generation framework for vliw architectures with partitioned register banks. In: Third International Conference on Massively Parallel Computing Systems (1998)
Cho, J., Paek, Y., Whalley, D.: Efficient register and memory assignment of non-orthogonal architectures via graph coloring and mst algorithms. In: LCTES- SCOPES (2002)
Keyngnaert, P., Demoen, B., de Sutter, B., de Bus, B., et al.: Con ict graph based allocation of static objects to memory banks. In: Semantics, Program Analysis, and Computing Environments for Memory Management (2001)
Johnson, E.J., Kunze, A.R.: IXP 2400/2800 Programming: The Complete Micro- engine Coding Guide. Intel Press (2003)
George, L., Blume, M.: Taming the IXP network processor. In: PLDI (2003)
Park, J., Lee, J.H., Moon, S.M.: Register allocation for banked register file. In: Language, Compiler and Tool Support for Embedded Systems, LCTES, pp. 39-47 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zhou, F., Zhang, J., Wu, C., Zhang, Z. (2005). A Register Allocation Framework for Banked Register Files with Access Constraints. In: Srikanthan, T., Xue, J., Chang, CH. (eds) Advances in Computer Systems Architecture. ACSAC 2005. Lecture Notes in Computer Science, vol 3740. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11572961_22
Download citation
DOI: https://doi.org/10.1007/11572961_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29643-0
Online ISBN: 978-3-540-32108-8
eBook Packages: Computer ScienceComputer Science (R0)