簡易檢索 / 詳目顯示

研究生: 陳聖杰
Sheng-Jie Chen
論文名稱: 支援RISC-V擴充指令集的LLVM描述檔之圖形化工具
GUI Tool to Support LLVM Target Description for RISC-V Extension Instruction Set
指導教授: 黃元欣
Yuan-Shin Hwang
口試委員: 賴祐吉
Yu-Chi Lai
謝仁偉
Jen-Wei Hsieh
學位類別: 碩士
Master
系所名稱: 電資學院 - 資訊工程系
Department of Computer Science and Information Engineering
論文出版年: 2019
畢業學年度: 108
語文別: 中文
論文頁數: 52
中文關鍵詞: 編譯器
外文關鍵詞: compiler
相關次數: 點閱:211下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著新一代產品的推出,指令集架構也跟著做修改甚至大幅翻新,像是RISC-V基於原有的RISC原則開發出的開源指令集架構。
    而不管是開發新的架構或者對於嵌入式系統的編譯器後端移植,
    目前大多會以LLVM來處理,所以使用LLVM開發編譯器後端的效率與通用性是個值得探討的議題。
    本論文提出利用LLVM TDBlock圖形化介面工具,並在原有之整數指令集的基礎下,擴充了32與64位元的原子指令,乘法指令以及壓縮指令。其主要機制為拉取程式方塊,以圖形化的方式來將複雜的指令描述檔案,依照RISC-V指令規格書能夠將指令描述檔案產生出來。
    最後本論文以此圖形介面工具擴充RISC-V指令架構,描述指令資訊;並進行各種測試來確認性能與準確性。


    With the introduction of a new generation of products, the instruction set architecture has also been modified or even significantly refurbished, such as the open source instruction set architecture
    developed by RISC-V based on the original RISC principles. Whether it's developing a new architecture or a compiler backend port for embedded systems, most of them are currently handled by LLVM, so using LLVM to develop the efficiency and versatility of the compiler backend is a topic worth exploring.

    This paper proposes to use the LLVM TDBlock graphical interface tool, and expand the 32- and 64-bit atomic instructions, multiplication instructions and compression instructions based on the original integer instruction set. The main mechanism is to pull the program block, graphically describe the complex instruction file, and the regular format can be generated the instruction description file according to the RISC-V instruction specification.

    Finally, this paper uses the graphical interface tool to expand the RISC-V instruction architecture, describe the instruction information, and conduct various tests to confirm the performance and accuracy.

    摘要 IV ABSTRACT V 致謝 VI 目錄 VII 圖目錄 VII 第一章 序論 1 1.1研究背景 1 1.2研究動機 1 1.3研究目的 2 1.4研究方法 2 1.5論文架構 3 第二章 文獻回顧 4 2.1 LLVM 4 2.2 LLVM Backend 6 2.2.1 LLVM後端流程 6 2.2.2 TableGen 7 2.3 LLVM TDBlock 9 2.4 RISC-V 11 第三章 方法 12 3.1 概念 12 3.2 擴充指令集Target Description實作 12 3.2.1 Multiplication Instruction Set 13 3.2.2 Atomic Instruction Set 22 3.2.3 Compression Instruction Set 29 第四章 實驗結果 35 4.1 實驗環境 35 4.2 執行測試 35 第五章 結論與未來展望 39 5.1 結論 39 5.2 未來展望 39 參考文獻 40

    [1] A. Waterman, “Design of the RISC-V Instruction Set Architecture,” Technical Report No. UCB/EECS-2016-1, EECS Department, University of California, Berkeley, January 2016.

    [2] TableGen - LLVM 6 documentation. http://llvm.org/docs/TableGen/

    [3] Eric Klopfer, Daniel Wendel, Ricarose Roque, Corey McCaffrey, Lunduo Ye, Aidan Ho, Brett Warne, Xudan Liu, Hout Nga, “MIT OpenBlocks,” https://github.com/mikaelhg/openblocks.

    [4] C. Lattner and V. Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation,” in Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, ser. CGO ’04.Washington, DC,USA: IEEE Computer Society, 2004, pp. 75.

    [5] LLVM Language Reference Manual
    https://llvm.org/docs/LangRef.html

    [6] Jun-Jie Zhan, LLVM TDBlock : GUI Programming Tool for LLVM Target Description, No. 13, Oct.2017

    [7] StarLogo TNG. http://education.mit.edu/portfolio_page/starlogo-tng/.

    [8] David Li, He Qichen, “ArduBlock,” https://github.com/taweili/ardublock, 2011.

    [9] Tsung-Chun Lin,“MStandardExtension” https://tclin914.github.io/f37f836/, 2018

    [10] Chia-Wei Chang, LLVM TDBlock : A GUI Tool to Generate RISC-V 64-Bit Integer Instruction Set, No. 2, Nov. 2018

    [11] “RV32A/RV64”
    https://www.cnblogs.com/mikewolf2002/p/9872618.html, 2018

    [12] “RV32C/RV64”
    https://www.cnblogs.com/mikewolf2002/p/9884789.html, 2018

    [13] sv-benchmarks. https://github.com/PacificBiosciences/sv-benchmark

    [14] SPEC: Standard Performance Evaluation Corporation. http://www.spec.org, September 2000.

    [15] Andrew Waterman, Yunsup Lee, David Patterson, Krste Asanovic, “The RISC-V Instruction Set Manual, Volume I: User-Level ISA Version 2.0,” Technical Report UCB/EECS-2014-52, EECS D. Kanter, “ RISC-V Offers Simple, Modular ISA,” The Linley Group MICROPROCESSOR report, March 2016.

    [16] Department, University of California, Berkeley, May 2014.

    [17] Y. Lee, A. Waterman, H. Cook, B. Zimmer, B. Keller, A. Puggelli, J. Kwak, J. Bachrach, D. Patterson, E. Alon, B. Nikolic, K. Asanovic, “An Agile Approach to Building RISC-V Microprocessors,” IEEE Micro, March 2016.

    [18] TableGen Language Reference. http://llvm.org/docs/TableGen/LangRef.html.

    [19] Writing an LLVM Backend. http://llvm.org/docs/WritingAnLLVMBackend.html#instruction-operand-name-mapping.

    [20] Chen Chung-Shu, “Tutorial: Creating an LLVM Backend for the Cpu0 Architecture,” Nov 03, 2016.

    [21] Fraser Cormack, Pierre-Andre Saulais, Building an LLVM Backend. Apr, 2014.

    [22] riscv-llvm. https://github.com/riscv/riscv-llvm.

    [23] Mayur Pandey, Suyog Sarda, LLVM Cookbook, May, 2015.

    [24] 任勝兵, 盧念, 張萬利, 潘震宇. 基於LLVM架構的Nios II後端快速移植. Computer Applications and Software, Vol. 28 No. 12, Dec. 2011.

    [25] Jozef Kolek, Zoran Jovanović, Nenad Šljivić, Dragan Narančić, “Adding microMIPS Backend to the LLVM Compiler Infrastructure,” IEEE, 2013.

    [26] Fraser Cormack, Pierre-André Saulais, Building an LLVM Backend, European LLVM Conference, 2014.

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