| 研究生: |
邱泰恩 Chiu, Tai-En |
|---|---|
| 論文名稱: |
可擴充式指令集之設計與其工具鏈實現 An extensible instruction set architecture design and its toolchain implementation |
| 指導教授: |
陳中和
Chen, Chung-Ho |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電腦與通信工程研究所 Institute of Computer & Communication Engineering |
| 論文出版年: | 2008 |
| 畢業學年度: | 96 |
| 語文別: | 英文 |
| 論文頁數: | 54 |
| 中文關鍵詞: | 可擴充式指令集 、工具串 |
| 外文關鍵詞: | extensible ISA, porting, toolchain, binutils |
| 相關次數: | 點閱:132 下載:2 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
現今嵌入式微處理器為了更有效率地處理不同類型的應用,而發展出 application specific instruction-set processor (ASIP) 的設計模式。這篇論文中我們提出了一個適用於ASIP 的可擴充式指令集架構設計。
藉由刪減原有ARMv4 指令集架構中極少使用的功能與重組其位元編碼,產生一組未定義的延伸指令集空間,以供增加特殊需求的指令功能。我們並以此指令集架構為基礎,實做出互相搭配的軟體工具串,包括組譯器、連結器、及基本的函式庫。
為了驗證所設計的指令集架構以及軟體工具串的正確性,我們修改一經由Linux 驗證過的RISC32 處理器,以模擬軟體搭配硬體描述語言的方式,將我們軟體工具產生的可執行檔讀入並執行,使其輸出結果與參照的結果互相比對,以確認其正確無誤。
The design methodology of embedded processors can adapt to the design flow of Application-Specific Instruction-Set Processor (ASIP) to perform various types of operations more efficiently. In this thesis, we present a design of extensible instruction set architecture (ISA) for ASIP systems.
By removing the less frequently used functionality of the ARMv4 ISA and rearranging its binary encoding, we obtain an extended instruction encoding space. This extended space can be added with special-purpose instructions without any constraint. To use this extensible ISA, we also implement the corresponding software toolchain that includes an assembler, a linker, and some basic libraries.
To verify the software toolchain, we modify our RISC32 processor to perform verification. We first use our toolchain to generate an executable binary image, and then execute this image by an HDL simulator which is our RISC32 processor. At last, we compare the simulator’s output results with the referenced ones for correctness checking.
[1] "ARM Architecture Reference Manual," ARM Ltd., HThttp://www.arm.comTH,
2000.
[2] "ARM ELF File Format," ARM Ltd., HThttp://www.arm.comTH, 1997.
[3] D. J. Wu, "NCKU RISC32 Instruction Set Encoding and Compiler Porting,"
Industrial Technology R & D Master thesis, Institute of Computer and
Communication Engineering, NCKU, January 2007.
[4] GNU Binutils, HThttp://www.gnu.org/software/binutils/TH, 2006.
[5] C. L. Chen, “Binary Utilities Generator for Application Specific Instruction
Processor,” Master theses, Department of Computer Science and
Information Engineering College of Electrical Engineering & Computer
Science, NTU, 2004.
[6] I. L. Taylor, "BFD Internals," Free Software Foundation, http://www.fsf.org/.
[7] "Assembler Internals," Free Software Foundation, http://www.fsf.org/.
[8] D. Elsner and J. Fenlason, "Using as : The GNU assembler," Free
Software Foundation, http://www.fsf.org/.
[9] P. Bothner, S. Chamberlain, I. L. Taylor, and D. J. Delorie, "GNU Linker
Internals," Free Software Foundation, http://www.fsf.org/.
[10] J. R. Levine, "Linkers and Loaders," Morgan Kufmann Publishers, 2000.
[11] S. Chamberlain, "libbfd: the Binary File Descriptor library," Free Software
Foundation, http://www.fsf.org/.
[12] Red Hat newlib C Library, http://sources.redhat.com/newlib/, 2004.
[13] X. W. Gao, "Embedded Processor Verification using Particular
Characteristics of Linux Operating System," Master thesis, Institute of
Computer and Communication Engineering, NCKU, June 2006.
[14] M. R. Guthaus, et al., "MiBench: A free, commercially representative
embedded benchmark suite," Proc. IEEE 4th Annual Workshop on
Workload Characterization, December 2001.