簡易檢索 / 詳目顯示

研究生: 程皇嘉
HUANG-JIA CHENG
論文名稱: 配對暫存器分配
Paired-Register Allocation
指導教授: 黃元欣
Yuan-Shin Hwang
口試委員: 謝仁偉
Jen-Wei Hsieh
黃冠寰
Gwan-Hwan Hwang
學位類別: 碩士
Master
系所名稱: 電資學院 - 資訊工程系
Department of Computer Science and Information Engineering
論文出版年: 2011
畢業學年度: 99
語文別: 中文
論文頁數: 53
中文關鍵詞: 編譯器暫存器分配
外文關鍵詞: Register allocation, Compiler
相關次數: 點閱:238下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 在本篇論文中,我們提出 Paired-Register Encoding 可以大量增加指令集的暫存器數目,使得編譯器或程式設計師可以使用更多的暫存器來提高程式的效率,更重要的是此指令格式不會增加額外的位元到指令中。利用這方法我們可以將 Alpha 微處理器中暫存器的數目增為原本的4 倍,讓32 位元的指令可以使用的暫存器從32 個增加到 128 個,使得編譯器或程式設計師可以使用128 個暫存器來存放變數或計算結果來提高程式的效率。

    而在此我們也需要一個新的 Register Allocation 演算法,來應對我們新的指令格式,使其有效利用額外的暫存器,來達到提升效能的目的。


    We proposed a novel register field encoding scheme – ”Paired-Register Encoding”. This scheme significantly increase the number of register which can encode 4x~8x registers with same encoding space. More register can make compiler perform more aggressive optimization to improve the performance of program.

    However, the traditional graph-coloring based register allocation can't handle the pair-register encoding. So we proposed a graph-coloring based algorithm for paired-register encoding. Use pair-group interference graph instead of interference graph.

    論文摘要 1 誌 謝 2 第一章 序論 7 1.1 研究背景 7 1.2 研究動機 7 1.3 研究目的 8 1.4 研究方法 8 1.5 論文架構 9 第二章 文獻回顧 10 2.1 微處理器硬體架構 10 2.2 增加暫存器數目相關 12 2.2.1 Differential Register Encoding 12 2.2.2 Change Register Bank 13 2.3 Register Allocation 相關演算法 14 第三章 方法 17 3.1 概念 17 3.2 Paired-Register Encoding 18 3.3 指令編碼格式 20 3.4 Paired-Register Allocation 24 3.5 Paired-Register Allocation Example 31 3.6 硬體實作 42 3.7 實作細節 43 第四章 實驗結果 47 4.1 實驗平台 47 4.2 效能評估 47 5.1 結論 51 5.2 未來展望 51 參考文獻 52

    [1] Alpha. Alpha 21264 Processor Technical Reference Manual. http://www.alpha.com.

    [2] ARM. ARM Reference Manual. http://www.arm.com.

    [3] X. Zhuang, S. Pande, Differential register allocation, In Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 57-70, 2005

    [4] J.H. Lee, J. Park, S.M. Moon. Securing More Registers with Reduced Instruction Encoding Architectures. In Proceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA’07), pages 417-425, 2007

    [5] V.N. Makarov. The integrated register allocator for GCC. In Proceedings of the GCC Developers' Summit 2007, pages 77-90, 2007

    [6] G. J. Chaitin, et. al., Register allocation via coloring, In Computer Languages, Vol. 6, pages 47-57, Jan. 1981.

    [7] P. Briggs, K. D. Cooper, and L. Torczon, Improvements to graph coloring register allocation, In ACM Transactions on Programming Languages and Systems, Vol. 16, No. 3, pages 428-455, May 1994.

    [8] J. Park, S.M. Moon. Optimistic register coalescing. In ACM Transactions on Programming Languages and Systems, Vol. 26, No. 4, pages 735-765 , 2004

    [9] F. Chow and J. Hennessy. The Priority-based Coloring Approach to Register Allocation, In ACM Transactions on Programming Languages and Systems, Vol. 12, No. 4, pages 501-536, 1990

    [10] A. B. Kempe. On the geographical problem of the four colors. In American Journal of Mathematics, 2(1): pages 193-200, 1879.

    [11] V. Sarkar and R. Barik. Extended Linear Scan: an Alternate Foundation for Global Register Allocation. In Proceedings of the 16th international conference on Compiler construction (CC’07), pages 141-155, 2007

    [12] T. Austin, E. Larson, and D. Emst. Simplescalar: An infrastruc-ture for computer system modeling. In IEEE Computer, 35(2):59–67, 2002.

    [13] J. Park and S.M. Moon. Optimistic register coalescing. In ACM Transactions on Programming Languages and Systems, Vol. 26, No. 4, pages 736-765, 2004

    [14] L. George and A.W. Appel. Iterated register coalescing. In ACM Transactions on Programming Languages and Systems, Vol. 18, No. 3, pages 300-324, 1996

    [15] B. Scholz, B. Burgstaller, and J. Xue. Minimizing Bank Selection Instructions for Partitioned Memory Architectures. In Proceedings of the International Conference on Compilers, Architecture and Synthesis for Embedded Systems, pages. 201-211 2006.

    [16] J.A. Swensen and Y.N. Patt, Hierarchical Registers for Scientific Computers, In Proceedings of the 2nd international conference on Supercomputing, pages. 346-353, 1988.

    [17] Bernhard Scholz and Erik Eckstein. Register Allocation for Irregular Architectures. In Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Sysems, pages 139-148. 2002.

    [18] Andrew W. Appel and Lal George. Optimal spilling for CISC machines with few registers. In Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation, pages 243–253, 2001.

    無法下載圖示 全文公開日期 2016/07/18 (校內網路)
    全文公開日期 本全文未授權公開 (校外網路)
    全文公開日期 2016/07/18 (國家圖書館:臺灣博碩士論文系統)
    QR CODE