研究生: |
苑家齊 Jia-Chi Yuan |
---|---|
論文名稱: |
AGRVCC : 利用HLS工具自動化產生RISC-V客製化協處理器的整合開發環境 AGRVCC : An IDE to Automatically Generate RISC-V Custom Coprocessors with HLS Tool |
指導教授: |
黃元欣
Yuan-Shin Hwang |
口試委員: |
黃元欣
Yuan-Shin Hwang 戴文凱 Wen-Kai Tai 謝仁偉 Jen-Wei Hsieh |
學位類別: |
碩士 Master |
系所名稱: |
電資學院 - 資訊工程系 Department of Computer Science and Information Engineering |
論文出版年: | 2022 |
畢業學年度: | 110 |
語文別: | 中文 |
論文頁數: | 61 |
中文關鍵詞: | 協處理器 、進階綜合 |
外文關鍵詞: | coprocessor, HLS |
相關次數: | 點閱:147 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
協處理器是用來分擔CPU工作的一種特殊應用的硬體架構,而近年來隨著嵌入式系統的發展,許多協處理器被實現在各種SoC (System-on-Chip) 之上,像是Apple的A14 Bionic chip除了一般目的CPU之外,還有圖形處理器與機器學習使用的矩陣加速器,可以獲得更好的性能表現,但是設計一個協處理器的流程是非常的煩瑣,必須熟悉硬體設計流程與硬體程式的撰寫。
對於協處理器而言,必須要有對應的指令來驅動,RISC-V ISA(RISC-V instruction set architecture),它是一個開源的指令集架構,它保留了客製化指令的編碼空間,讓使用者非常容易的擴充指令集,添加客製化指令的定義到Compiler之後,Compiler就可以將含有客製化指令的程式編譯成執行檔。
本論文將以RISC-V ISA為基礎,並利用進階綜合工具,將開發協處理器的流程做簡化,讓軟體設計師們不需了解硬體架構該怎麼實作,只需提供C程式之中想用硬體來處理的函式部份做選取,就可以設計出自己的協處理器,並且燒錄到FPGA之上執行,此外,我們將功能整合到IDE,使用者可以用圖形化的方式來操作。
The coprocessor is a hardware architecture used to process some special applications of the main CPU, and with the development of embedded systems in recent years, various coprocessors are implemented on various SoCs (System-on-Chip), such as Apple's A14 Bionic chip, in addition to the general purpose CPU, there are also graphics processors and matrix coprocessor for machine learning. It can get better performance, but the process of designing a coprocessor is also very tedious and requires familiarity with the hardware design process and hardware programming.
For coprocessors, there must be a corresponding instruction to drive, the RISC-V ISA (RISC-V instruction set architecture), which is an open source instruction set architecture, preserves the coding space for custom instructions, allowing users to expand the instruction set easily. you can add custom instructions to your program.
In this paper, we will use RISC-V ISA as the basis, and use advanced synthesis tools to simplify the process of developing a coprocessor, so that software designers don’t need to know how to implement the hardware architecture, but only need to provide a selection of the function in the C program that they want to handle with hardware, and then they can design their own coprocessor and run on FPGA. In addition, we integrate the functions into the IDE so that users can operate graphically.
[1] Xilinx, “Vitis HLS Tool 2020.2.” [Online].
https://www.xilinx.com/support/documentation-navigation/design-hubs/2020-2/dh0090-vitis-hls-hub.html
[2] Waterman, A., Lee, Y., Patterson, D., Asanovic, K., level Isa, V. I. U., Waterman, A., et al., (2014). The RISC-V instruction set manual. Volume I: User-Level ISA’, version, 2.
[3] Asanovic, K., Avizienis, R., Bachrach, J., Beamer, S., Biancolin, D., Celio, C., et al., (2016). The rocket chip generator. EECS Department, University of California, Berkeley, Tech. Rep. UCB/EECS-2016-17, 4.
[4] Snyder, W. (2004). Verilator and systemperl. Paper presented at the North American SystemC Users’ Group, Design Automation Conference.
[5] Rimas Avizienis,Jonathan Bachrach,David Biancolin,Scott Beamer,Sagar Karandikar,Deborah Soung,Andrew Waterman
fpga-zynq. [Online].
https://github.com/ucb-bar/fpga-zynq
[6] Xilinx, "Vivado Design Suite 2020.2." [Online].
https://docs.xilinx.com/r/2020.2-English/ug1304-versal-acap-ssdg/Vivado-Design-Suite
[7] Hara, Y., Tomiyama, H., Honda, S., Takada, H., & Ishii, K. (2008). Chstone: A benchmark program suite for practical c-based high-level synthesis. In 2008 IEEE International Symposium on Circuits and Systems (ISCAS) (pp. 1192-1195). IEEE.
[8] Bachrach, J., Vo, H., Richards, B., Lee, Y., Waterman, A., Avižienis, R., et al., (2012). Chisel: constructing hardware in a scala embedded language. In DAC Design automation conference 2012 (pp. 1212-1221). IEEE.
[9] Izraelevitz, A., Koenig, J., Li, P., Lin, R., Wang, A., Magyar, A., et al., (2017). Reusability is FIRRTL ground: Hardware construction languages, compiler frameworks, and transformations. In 2017 IEEE/ACM International Conference on Computer-Aided Design (ICCAD) (pp. 209-216). IEEE.
[10] Lattner, C., & Adve, V. (2004, March). LLVM: A compilation. framework for lifelong program analysis & transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004. (pp. 75-86). IEEE.
[11] Asanovic, K., Patterson, D. A., & Celio, C. (2015). The berkeley out-of-order machine (boom): An industry-competitive, synthesizable, parameterized risc-v processor. University of California at Berkeley Berkeley United States.
[12] Lee, Y., Waterman, A., Avizienis, R., Cook, H., Sun, C., Stojanović, V., & Asanović, K. (2014). A 45nm 1.3 GHz 16.7 double-precision GFLOPS/W RISC-V processor with vector accelerators. In ESSCIRC 2014-40th European Solid State Circuits Conference (ESSCIRC) (pp. 199-202). IEEE.
[13] Schmidt, C., & Izraelevitz, A. (2015). A fast parameterized sha3 accelerator. In tech. rep.: EECS Department, University of California.
[14] Genc, H., Haj-Ali, A., Iyer, V., Amid, A., Mao, H., Wright, J., et al., (2019). Gemmini: An agile systolic array generator enabling systematic evaluations of deep-learning architectures. arXiv preprint arXiv:1911.09925, 3, 25.
[15] Coussy, P., Gajski, D. D., Meredith, M., & Takach, A. (2009). An introduction to high-level synthesis. IEEE Design & Test of Computers, 26(4), 8-17.
[16] Eclipse IDE. [Online].
https://www.eclipse.org/ide/
[17] riscv-llvm. [Online].
https://github.com/riscv/riscv-llvm.