
文/照片:慈濟大學醫學資訊學系
本次工作坊很榮幸邀請東華大學資訊工程學系蔡正雄教授。蔡教授首先講述目前世界局勢(如中美貿易戰)如何影響科技的發展,並說明RISC-V (Reduced Instruction Set Computer-V, 精簡指令集第五代)被廣泛應用於MCU (Micro Control Unit,微控制器)/MPU(Micro Processing Unit,微處理器)。在講解技術原理的同時,蔡教授以學員的角度切入介紹RISC-V,架構性的描述前因後果,幫助學員入門與理解該架構的定位。例如,設計一顆數位信號處理器 (Digital Signal Processor, DSP) 處理音頻,需中央處理器(Central Processing Unit, CPU)。選擇CPU設計框架後,便可客製化指令完成一顆專用處理器。
晶片設計需軟硬體技術整合,軟體所指具程式能力(例如C語言)、熟悉資料結構、演算法,以程式碼實現,同時也需作業系統(Operating System, OS) 的概念,使程式有效率的運作並完成複雜的運算。硬體所指如數位電路、計算機結構、計算機組織、組合語言 (相對C語言更為底層)等背景知識,最後利用硬體描述語言來實現硬體架構。
擁有基礎概念後,接著講解晶片設計流程及工具,如模擬驗證可使用verilator、電路合成可使用EDA (Electronic Design Automation)工具(例如Vivado)。蔡教授講解工具的功能外,同時說明各項工具在流程中的用意。
【RISC-V原理、Pipeline運作架構】
以RISC-V指令集為起點,從介紹指令類型、格式到如何寫模擬時的testbench (模擬測試程式),過程中強調執行目的,以利學員理解運作原理。其中,以Pipeline (管線化) 運作架構講解CPU是如何處理指令來執行運算。Pipeline有5個階段 : 從指令擷取、指令解碼、指令執行運算、進行儲存到最終將運算結果寫回記憶體中儲存,而儲存方法分為Big-Endian及Little-Endian兩種,依據不同方式,資料在記憶體中的位址順序會有差異。最後進行模擬 : 將測試指令 (組合語言) 與testbench (C語言) 以verilator來驗證已建立的指令是否可正常執行及運算正確。
在建立硬體架構上是以硬體描述語言 (Verilog) 來完成電路設計,蔡教授為了使學員理解Verilog語法及電路設計的概念,以簡易的4位元加法器為例說明。
【學員們上機練習,實際操作ORI指令範例】
在進行上機練習前,蔡教授先複習概念並操作示範,再讓學員上機練習。目的是透過理論結合實作來加深對整體架構概念的理解。上機過程中,當學員有疑惑時,蔡教授與助教皆會用心回答問題。現場一桌分配一位助教,透過講師、助教及學員三方討論的模式,達到教學相長,互相學習的氛圍。
【RISC-V實作在FPGA上】
蔡教授準備一顆架構完整的RISC-V CPU核心來呈現作業系統中的context-switch,最終以FPGA (Field Programmable Gate Array)展示成果。已設計好的硬體電路需使用EDA 工具 (Vivado) 才能燒在FPGA板上。由介紹工具及使用流程到呈現成果,讓學員具架構性的理解從設計到實作的過程並明白軟硬體需相互搭配才得以完成。
【結語】
此次工作坊,蔡教授詳細講解並搭配板書的模式增加與學員們的互動,同時鼓勵學員踴躍提問。以實際案例和情境題與大家腦力激盪,課程內容豐富且專業。最後,蔡教授鼓勵學員們之後可根據提供的線上講義自己動手完成一顆專屬的RISC-V處理器。
隨著RISC-V討論度的提升,應用層面越加廣泛,本次工作坊講授RISC-V基本架構並搭配上機練習、實例講解與成果展示,希望能引起學員的興趣,不僅認識RISC-V,也增加對未來出路的選擇。參與本工作坊,充實自身實力的同時與時俱進,以便跟上科技日新月異的速度。(文/照片:醫學資訊學系)。
