簡易檢索 / 詳目顯示

研究生: 胡凱婷
Kai-Ting Hu
論文名稱: 含浮點運算之管線化MIPS CPU設計與FPGA實作
MIPS CPU Design with Pipelined Operation and a Floating-point Coprocessor
指導教授: 張吉正
Chang, Chi-Jeng
黃奇武
Huang, Chi-Wu
學位類別: 碩士
Master
系所名稱: 工業教育學系
Department of Industrial Education
論文出版年: 2007
畢業學年度: 95
語文別: 中文
論文頁數: 75
中文關鍵詞: PIPELINEMIPSHAZARDFPGAHDL
論文種類: 學術論文
相關次數: 點閱:124下載:39
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 數位電路的產物中,舉凡電腦、手機、家電產品等等,其中央處理器(CPU)扮演著非常重要的角色。隨著產品的複雜度和功能的多寡,CPU的處理速度也一直在提升,自管線式(Pipeline)架構被提出來以後,已成為高速處理器的主流。
    本研究主要目的在於以HDL(Hardware Description Language)硬體描述語言,設計一顆具有五階層的Pipelined MIPS CPU,並針對管線中會發生的三大危障(hazard):結構危障(structure hazard)、資料危障(data hazard)、控制危障(control hazard),設計解決的機制,以增加CPU的效能。
    設計結果經由ModelSim完成電路模擬後,下載至Xilinx Virtex XCV800 FPGA(Field Programmable Gate Array)驗證成功,完成整體設計架構,並加入周邊介面I/O電路設計和周邊顯示電路的實體連接,完成FPGA平台設計架構。最後,利用所設計的指令集撰寫相關程式,來驗證整個Pipelined MIPS CPU的運作。
    本研究結果已成功完成一顆五階層的Pipelined MIPS CPU(包含浮點數指令),並解決三大危障等問題,總共實作了21道固定點指令、4道浮點指令。

    Central processing unit in the now times plays a key essential role amid various logic circuit products. Due to demanding increasing complexity and enhanced function, CPU processing speed is requested to rapidly accelerate in
    all the field with CPU inside such as computer, handset, home appliance etc.
    The main purpose of this reserach is to design a five stages pipelined MIPS CPU with hardware description language to resolve structure, data and control three major hazards in pipeline system, design resolution mechanism and increase CPU efficiency.
    The research is verified by that the simulated circuit and downloaded to Xilinx Virtex XCV800 FPGA. After downloading, then connect the relating circuit designing and the physical circuit to display on the 20×20 LCD.When the stage is ok, the whole FPGA structure is down. Finally I test the Pipelined MIPS CPU by the relate command. The research is including twenty-one fixed instructions and four floating instructions.

    中文摘要 I ABSTRACT II 目 錄 III 表目錄 IV 圖目錄 V 第一章 緒論 1 第一節 研究背景與動機 1 第二節 研究目的 2 第三節 研究方法與步驟 2 第四節 內容編排 3 第二章 文獻探討 4 第一節 硬體描述語言 4 第二節 CPLD/FPGA晶片 6 第三節 MIPS處理器相關知識 7 第三章 PIPELINED MIPS CPU規劃設計 16 第一節 指令擷取階段(IF STAGE) 18 第二節 指令解碼階段(ID STAGE) 19 第三節 指令執行階段(EXE STAGE) 21 第四節 記憶體存取階段(MEM STAGE) 24 第五節 資料寫回階段(WB STAGE) 25 第六節 控制單元(CONTROL UNIT)的設計 26 第七節 管線的控制(PIPELINED CONTROL) 27 第八節 浮點運算單元(FLOATING-POINT UNIT)的設計 32 第四章 模擬與驗證 39 第一節 實驗平台規劃 39 第二節 PIPELINED MIPS CPU指令模擬測試 41 第五章 結論與建議 72 參考文獻 73 表目錄 表2-1 MIPS32系列處理器的型號及特色 8 表2-2 本實驗室所實作指令表 14 表3-1 實作指令集編碼一覽表 16 表3-2 實作指令語法一覽表 17 表3-3 SHIFT_FUNC[1:0] Encoding 23 表3-4 ALU_OP Encoding 23 表3-5 ALU_FUNC[5:0] Encoding 24 表4-1 R-Type指令測試程式 42 表4-2 I-Type指令測試程式 45 表4-3 BEQ指令測試程式 48 表4-4 BNE指令測試程式 50 表4-5 JMP指令測試程式 52 表4-6 Data Forwarding的測試程式 54 表4-7 Load-use Data Hazard的測試程式 56 表4-8 Branch Hazard的測試程式 58 表4-9 浮點數的測試程式 61 表4-10 測試程式(a) 63 表4-11 測試程式(a)數據比較 63 表4-12 測試程式(b) 66 表4-13 測試程式(b)數據比較 67 表4-1 未含浮點運算的管線化MIPS CPU Gate Count數統計表 70 表4-15 多重時脈周期MIPS CPU Gate Count數統計表 70 表4-16 含浮點運算的管線化MIPS CPU Gate Count數統計表 71 表4-17 浮點運算器中各功能模組效能表 71 圖目錄 圖1-1 研究步驟流程圖 3 圖2-1 VHDL與Verilog行為化描述能力圖 5 圖2-2 R-Type指令格式 9 圖2-3 I-Type指令格式 9 圖2-4 J-Type指令格式 9 圖2-5 單一時脈與PIPELINE管線設計 10 圖2-6 結構危障(structure hazard) 11 圖2-7 資料危障(Data hazard) 12 圖2-8 Pipeline stall 13 圖2-9 Not taken 13 圖2-10 Taken 13 圖2-11 Multiple Clock Cycles MIPS CPU架構圖 15 圖3-1 IF Stage資料路徑 18 圖3-2 ID Stage 資料路徑 19 圖3-3 Register Bank內部電路方塊圖 20 圖3-4 EXE Stage資料路徑 21 圖3-5 ALU內部電路方塊圖 22 圖3-6 Barrel Shifter內部電路方塊圖 22 圖3-7 MEM Stage資料路徑 25 圖3-8 WB Stage資料路徑 25 圖3-9 Control Unit 26 圖3-10 指令需要執行多重週期時的管線控制圖 27 圖3-11 產生Data Hazard的情況 29 圖3-12 Forwarding 電路圖 29 圖3-13 Load-use Data Hazard的處理方法 30 圖3-14 針對Branch指令的管線控制時脈圖 31 圖3-15 IEEE754單倍精度浮點數格式 32 圖3-16 浮點運算指令格式 33 圖3-17 修改後的浮點指令格式 33 圖3-18 浮點乘法演算法流程圖 34 圖3-19 浮點除法演算法流程圖 35 圖3-20 浮點數運算單元之示意圖 36 圖3-21 浮點數加減法演算法流程圖 37 圖3-22 實作Pipelined MIPS CPU架構圖 38 圖4-1 系統測試流程 39 圖4-2 FPGA實驗平台元件位置圖 40 圖4-3 FPGA實驗平台實體 41 圖4-4 R-Type指令模擬結果(1) 43 圖4-5 R-Type指令模擬結果(2) 44 圖4-6 I-Type指令模擬結果(1) 46 圖4-7 I-Type指令模擬結果(2) 47 圖4-8 BEQ指令模擬結果 49 圖4-9 BNE指令模擬結果 51 圖4-10 JMP指令模擬結果 53 圖4-11 Data Forwarding 測試模擬 55 圖4-12 Load-use Data Hazard 測試模擬 57 圖4-13 Branch Hazard測試模擬 59 圖4-14 浮點數運算指令測試模擬 62 圖4-15 Multiple Clock Cycles MIPS CPU測試程式模擬(a) 64 圖4-16 Pipelined MIPS CPU測試程式模擬(a) 65 圖4-17 Multiple Clock Cycles MIPS CPU測試程式模擬(b) 68 圖4-18 Pipelined MIPS CPU測試程式模擬(b) 69

    [1] A. A. Sagahyroon, “From AHPL to VHDL: a course in hardware description languages,” Education, IEEE Transactions on, Volume: 43, Issue: 4, Nov. 2000. Pages: 449 – 454.
    [2] CIC reference, “Cell-Based IC Design Concepts, ” 2003.
    [3] DIGITIMES Inc. “Homepage,” http://www.digitimes.com.tw.
    [4] ECE/CIS Labstaff. “Homepage,” http://www.eecis.udel.edu/.
    [5] Golden, M., Mudge, T. ”Comparison of two common pipeline structures” Computer and Digital Techniques, IEE Proceedings, Volume: 143, Issue: 3, Pages: 161 – 167, 1996.
    [6] J. Smith. Douglas, “HDL Chip Design,” HDL Modeling Capability p.10, picture 1.5: Doone Publications. Madison, AL, USA, 1996.
    [7] Kab Joo Lee, “Fault sensitivity analysis of a 32-bit RISC microprocessor,” VLSI and CAD, ICVC ’99. 6th International Conference, pp.529-532, 1999
    [8] Kishore Kota, Joseph R. Cavallaro, “Numerical Accuracy and Hardware Tradeoffs for CORDIC Arithmetic for Special-Purpose Processors,” IEEE Transactions on Computers, Vol. 42, No. 7, pp. 769-779, July 1993.
    [9] Liu Zhenyu, Qi Jiayue “Implementation of precise exception in a 5-stage pipeline embedded processor” ASIC, Proceedings. 5th International Conference on, Volume: 1, 21-24, Pages” 447-451 Vol.1, 2003.
    [10] Mark Holland, “Harnessin FPGAs for Computer Architecture Education” A thesis submitted in partial fulfillment of the requirements for Master of Science In Electrical Engineerign, University of Washington, 2002.
    [11] MIPS Corporation, http://www.mips.com.
    [12] MIPS Corporation, ”MIPS32 Architecture For Programmers ─ Volume I : Introdouction to the MIPS32 Architecture”.
    [13] MIPS Corporation, ”MIPS32 Architecture For Programmers ─ Volume II : The MIPS32 Instruction Set.
    [14] MIPS Corporation, “MIPS32 Architecture For Programmers ─ Volume III: The MIPS32 Privileged Resource Architecture”.
    [15] S. Palnitlear, “Verilog HDL,” Englewood Cliffs, NJ: Prentice-Hall, 1996.
    [16] Thorntino, “Design of a Computer: The Control Data 6600”, Scott, Foresman, Glenview, IL, 1970.
    [17] William Stallings, “Computer Organization & Architecture: Designing For Performance Sixth Edition,” Pearson Education, Inc.2003.
    [18] David A. Patterson & John L. Hennessy,曾志光、鄭光近譯,“計算機組織與設計軟硬體介面 第二版”,碁峰資訊,2000。
    [19] David A. Patterson & John L. Hennessy,陳中和譯,“計算機組織與設計軟硬體介面 第三版”,東華書局,2005。
    [20] M. Morris Mano & Charles R. Kime,江昭皚、范丙林譯, “邏輯與計算機設計 第二版”,p. 545,東華書局,2000。
    [21] 王振傑,“雙指令架構之嵌入式微處理器的設計與實作”,成功大學電腦與通信工程研究所碩士詅文,2005。
    [22] 林容益,“CPU/SOC及週邊設計與展實作(FPGA/CPLD)”。全華科技圖書有限公司,2003。
    [23] 林瑛萍,“CPU設計與教學之FPGA硬體平台製作-以MIPS為例” ,台灣師範大學工業教育所碩士論文,2003。
    [24] 林傳生,“使用VHDL電路設計語言之數位電路設計”,儒林圖書公司,2000
    [25] 胡登貴,“結合CORIC演算法之MIPS CPU設計與實作” ,台灣師範大學機電科技學系碩士論文,2007。
    [26] 施福基,“可合成似MIPS微處理器之涅合模式設計”,大葉大學電機工程學系碩士論文,2005。
    [27] 黃文吉,“VHDL基本程式寫作及應用”。儒林圖書公司,2002。
    [28] 鄭信源,“VHDL數位電路設計—基礎篇”。儒林圖書公司,2003。
    [29] 鄭信源,“VHDL數位電路設計—進階篇”。儒林圖書公司,2003。

    QR CODE