研究生: |
陳瑞春 Jui-chun Chen |
---|---|
論文名稱: |
利用互斥或參照方法提升以字典為基礎之RISC/VLIW程式碼壓縮技術 Improved Dictionary-based Code-compression Schemes with XOR Reference for RISC/VLIW Architecture |
指導教授: |
林昌鴻
Chang-hong Lin |
口試委員: |
阮聖彰
none 許孟超 none 吳晉賢 none |
學位類別: |
碩士 Master |
系所名稱: |
電資學院 - 電子工程系 Department of Electronic and Computer Engineering |
論文出版年: | 2010 |
畢業學年度: | 98 |
語文別: | 中文 |
論文頁數: | 65 |
中文關鍵詞: | 字典基礎之程式碼壓縮 、嵌入式系統 |
外文關鍵詞: | dictionary-based code-compression, embedded system |
相關次數: | 點閱:146 下載:1 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
嵌入式系統有著記憶體使用上的限制,且程式碼壓縮技術透過降低應用程式的程式碼大小來解決此一問題。一個有效率的程式碼壓縮技術,其主要的挑戰為,如何在不影響系統整體效能下盡可能的降低程式碼的大小。以字典為基礎的程式碼壓縮技術是目前最常被採用的方法;因為它除了可以提供良好的壓縮效率之外,更可滿足快速的解壓縮需求。
在本論文中,我們提出一個以「互斥或運算(XOR)」為基礎的參照方法,可應用於現存之所有以字典為基礎的程式碼壓縮技術上;透過改變符號的分佈,可以進一步的提升以字典為基礎的程式碼壓縮技術之壓縮效率。我們的方法可以應用在所有固定指令長度的計算機架構上,例如簡單指令指架構(RISC)或固定長度之超長指令碼架構(VLIW)上。本論文採用TSMC 0.13-um technology library對解碼單元進行合成,並且使用Synopsys公司的工具軟體對功率消耗進行分析;實驗結果指出,我們的方法可以進一步提升程式碼之壓縮效率,並且幾乎不會造成硬體成本、執行效能與系統功耗上之額外負擔。
Embedded systems are constrained by the available memory, and code-compression techniques address this issue by reducing the code size of application programs. The main challenge for the development of an effective code-compression technique is to reduce the code size without affecting the overall system performance. Dictionary-based code- compression schemes are the most commonly used code-compression methods, because they can provide both a good compression ratio and fast decompression.
In this dissertation, we propose an XOR-based reference scheme that can enhance the compression ratio on all the existing dictionary-based algorithms by changing the distribution of the symbols. Our approach works on all kinds of computer architecture with fixed length instructions, such as RISC or VLIW. We use Synopsys’ tools to estimate the power consumption using TSMC 0.13-m technology. Experiments show that our approach can further improve the compression ratio with nearly no hardware, performance, and power overheads.
[1] Synopsys, “Design compiler user guide.” December, 2007.
[2] Synopsys, “Primepower manual.” June, 2006.
[3] Uniquify website, http://www.uniquify.com, 2010.
[4] 蔡文輝, 林家禎, 張真誠, 資料壓縮技術與應用, 全華圖書, 2007
[5] Texas Instruments, “Literature Number: SPRU731 TMS320C62x DSP CPU and instruction set reference guide.” July, 2006.
[6] Texas Instruments, “Literature Number: SPRU186N TMS320C6000 assembly language tools user’s guide.” April, 2004.
[7] Texas Instruments, “Literature Number: SPRU187L TMS320C6000 optimizing compiler user’s guide.” May, 2004.
[8] Texas Instruments, “Literature Number: SPRU198I TMS320C6000 programmer’s guide.” March, 2006.
[9] S. Seong and P. Mishra, “An efficient code compression technique using application-aware bitmask and dictionary selection methods.” Design, Automation & Test in Europe Conference & Exhibition, 2007.
[10] A. Wolfe and A. Chanin, “Executing compressed programs on an embedded RISC architecture.” Microarchitecture, 1992.
[11] C. Lefurgy, P. Bird, I. Chen and T. Mudge, “Improving code density using compression techniques.” Microarchitecture, 1997.
[12] H. Lekatsas and W. Wolf, “SAMC: A code compression algorithm for embedded processors.” IEEE transactions on Computer-Aided Design of Integrated Circuits and System, 18(12):1689-1701, 1999.
[13] H. Lekatsas, J. Henkel, and V. Jakkula, “Design of an one-cycle decompression hardware for performance increase in embedded systems,” Design Automation Conference, 2002.
[14] S. Larin and T. Conte, “Compiler-driven cached code compression schemes for embedded ILP processors,” in Proc. Int. Symp. Microarchitecture, 1999.
[15] D. Das, R. Kumar, and P. P. Chakrabarti, “Dictionary based code compression for variable length instruction encodings,” International Conference on VLSI Design, 2005.
[16] M. Ros and P. Sutton, “A post-compilation register reassignment technique for improving hamming distance code compression,” International Conference on Compilers, Architecture and Synthesis for Embedded Systems, 2005.
[17] Y. Xie, W. Wolf and H. Lekatsas. “Code compression for embedded VLIW processors using variable-to-fixed coding.” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 14(5):525 - 536, 2006.
[18] C. Lin, Y. Xie and W. Wolf, “Code compression for VLIW embedded systems using a Self-Generating Table.” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 15(10):1160 - 1171, 2007.
[19] M. S. Ali, A. Mahajan and N. V. Choudhari “Compiled code compression for embedded systems using evolutionary computing.” Information Technology: New Generations, 2008.
[20] L. Yang, T. Zhang, D. Wang and C. Hou, “Optimal-partition based code compression for embedded processor.” IEEE 8th International Conference on ASIC, 2009.
[21] T. Bonny and J. Henkel, “LICT: Left-uncompressed instructions compression technique to improve the decoding performance of VLIW processors.” Design Automation Conference, 2009.
[22] L. Benini, F. DeMichelli, and M Olivieri, “A class of code compression schemes for reducing power consumption in embedded microprocessor systems,” IEEE Transactions on Computers, Volume 53, Issue 4, April 2004 Page(s):467 - 482.
[23] J. Lau, S. Schoenmackers, T. Sherwood, and B. Calder, “Reducing Code Size With Echo Instructions,” in Proceedings of the IEEE international conference on compilers, architecture, and synthesis for embedded systems, November 2003.
[24] S. Shogan and B. R. Childers, “Compact binaries with code compression in a software dynamic translator,” Design, Automation & Test in Europe Conference & Exhibition, 2004.
[25] O. Ozturk, H. Saputra, M. Kandemir, and I. Kolcu, “Access patternbased code compression for memory-constrained embedded systems,” Design, Automation & Test in Europe Conference & Exhibition, 2007.
[26] J. Prakash, C. Sandeep, P. Shankar and Y.N. Srikant, “A simple and fast scheme for code compression for VLIW processors.” Data Compression Conference, 2003.
[27] M. Ros and P. Sutton, “A hamming distance based VLIW/EPIC code compression technique.” International Conference on Compilers, Architecture and Synthesis for Embedded Systems, 2004.
[28] M. Collin and M. Brorsson, “Two-level dictionary code compression: A new scheme to improve instruction code density of embedded applications.” Code Generation and Optimization, 2009.
[29] MediaBench Consortium website, http://euler.slu.edu/~fritts/mediabench/
[30] Texas Instruments, “Literature Number: SPRU509E Code composer studio v3.0 getting started guide.” May, 2004.
[31] Texas Instruments, “Application Report: SPRAA08 Code composer studio IDE v3 white paper.” July, 2004.