郭煒 張鋼

文章編號:1672-5913(2015)03-0090-04
中圖分類號:G642
摘 要:針對計算機設計與調試課程教學內容落后于計算機系統發展的情況,介紹在CDIO理念指導下重新構建計算機設計與調試課程的教學內容和實踐過程,提出以設計PowerPC擴展指令協處理器中的VSFX指令作為教學內容的課程改革方案,并在教學過程中進行實踐。
關鍵詞:CDIO;計算機設計與調試;課程改革;向量協處理器;AltiVec技術
1 背景
CDIO工程教育模式是近年來國際工程教育改革的重要成果。CDIO代表構思(conceive)、設計(design)、實現(implement)和運行(operate)。CDIO模式以產品研發到產品運行的生命周期為載體,使學生以主動的、實踐的、課程之間有機聯系的方式學習工科課程。CDIO模式教學以項目開發為主線展開,整個教學過程是一種由教師發起并維持的、在教師指導下以學生為主體的協作、交流過程。
以前,計算機設計與調試課程的任務是讓學生用常規集成電路在面板上通過接線的方式,設計實現一個有十幾條基本指令的微程序控制器。若干年前,讓學生用常規集成電路設計實現一個微程序控制器,無論是從設計的綜合性方面、從硬件系列課程內容的貫通性方面,還是從設計實現的工作量方面都是比較合適的,而且計算機設計與調試課程的教學效果也不錯。但是,計算機系統快速發展,不論是在微處理器架構方面,還是在計算機系統設計與實現方法方面都發生了巨大的變化,比如在設計過程中,硬件設計語言已經被廣泛采用,并且在計算機系統設計中FPGA已經成為基本的手段,計算機輔助硬件設計和仿真平臺已經成為基本設計工具,精簡指令系統RISC架構在大量的微處理器中被廣泛使用,而微程序設計技術已經很少在CPU中使用了。顯然,以前計算機設計與調試課程的內容和方法已經不再適合今天的現實情況了。
我們希望計算機設計與調試課程能夠跟上計算機技術的發展,使學生通過課程學習,掌握當前主流設計方法和設計主流處理器系統架構,從而有效提高計算機系統的設計能力。在教學方法上,我們借鑒CDIO教學理念,在整個教學過程中突出實踐動手和自主學習的特點。
2 PowerPC AltiVec 技術介紹
PowerPC是一種RISC架構的CPU。PowerPC處理器有廣泛的應用,是目前市面上主流的處理器。AltNec技術是摩托羅拉PowerPC RISC處理器體系結構的向量并行處理技術,是現有PowerPC體系結構的延伸,它帶有128位向量處理裝置,可以同時處理整數和浮點數據,AltiVec的頂層架構如圖1所示。AltiVec技術的操作是單指令多重數據并行處理,是一種短向量并行體系結構。根據數據大小不同,向量分別具有4、8或16元素長度,和以前巨型計算機的長向量體系結構明顯不同。AltiVec技術可以應用于通信業、多媒體等注重性能的應用方案中,達到提高性能的目的。
3 課程內容改革
3.1 課程內容
計算機設計與調試課程是天津大學汁算機科學與技術專業計算機T程方向的一門課程設計類課程,于大三下學期開設,2學分,共40學時計算機設計與調試課程以PowerPC RISC處理器的指令系統為參考,通過設計一個PowerPC擴展指令協處理器AltiVec模塊L|i的VSFX指令部分,將計算機組成原理、計算機系統結構、匯編語言、VLSI系統設計這幾門課程所學的知識結合起來,由學生自己設計一個簡單的“計算機”,進而加深對相關課程的理解,掌握設計方法,熟悉相關設計工具。課程中涉及到的主要內容包括:PowerPC405核、加速處理單元控制器(APUController)和協處理器之間的接口和處理流程、設計流程與功能驗證、PowerPC AltiVec指令集、Power ISA中向量加法指令(vadduhm)實例、陽量簡單定點單元(VSFX)、AltiVec硬件設計頂層架構和VSFX模塊與頂層的連接信號等
該課程使用System Verilog語言構建功能驗證平臺。隨著集成電路芯片設汁的規模不斷增大,芯片驗證工作成了制約芯片設計水平的關鍵性因素。傳統的驗證方法主要依靠人工進行驗證,效率較低。System Verilog語言是一種專門用來搭建測試環境的語言。System Verilog語言將硬件描述語言同高級驗證語言相結合,提供隨機約束、功能覆蓋率、斷言和面向對象等新技術。課程要求學生學習并使用System Vcrilog語言建立一個可以自動生成測試向量的測試環境,用這個測試環境檢查學生設計的系統和功能一
選擇協處理器AltiVec模塊作為課程的設計內容,有以下幾個方面的考慮:由于向量計算在功耗和并行度等方面的優勢,使其在現代微處理器設計中的作用正在被重新認識;向量計算的內容是目前計算機組成原理和計算機系統結構等課程中比較薄弱的地方,計算機設計與調試課程恰好可以對此加以彌補;設計向量協處理器可以避免與計算機組成原理、計算機系統結構、VLSI系統設計等課程的設計型實驗內容相沖突;設計向量協處理器可以使學生學會使用從行為級建模到用硬件描述語言設計、從仿真到開發板上的驗證等全過程的設計軟件和設計環境。
3.2 課程設計任務及教學組織形式
3.2.1 課程設計任務
課程設計任務包括4部分內容。
(1)模塊設計:采用Verilog HDL,設計PowerPC協處理器AltiVec模塊中部分VSFX指令。
(2)頂層模塊集成:將設計的VSFX指令模塊與其他模塊集成,了解模塊與模塊之間的關系。
(3)仿真驗證:用AltiVec匯編指令編寫測試程序,通過匯編編譯器生成機器代碼。在集成環境下,仿真驗證設計的正確性。
(4) FPGA開發版上的驗證:將所設計的RTL代碼放置到FPGA開發板上,驗證所設計的硬件實現的正確性。使學生進一步掌握開發板上的接口電路在調試過程中的作用等。
為了使課程設計的設計工作循序漸進,參考CDIO教學模式,把整個設計任務分為8個相互聯系、難度逐步增加的子任務。
子任務一:閱讀指令定義文檔,對小組選定的5條不同類型的指令給予特別關注。
子任務二:以小組為單位,講解和展示小組將要實現的5條不同類型指令的功能。
子任務三:用C語言實現所要設計的5條不同類型指令的功能,并設計功能測試程序,以C語言實現的功能測試的輸入和輸出結果為“標準測試程序”,作為下一步硬件設計的測試向量。
子任務四:學習AltNec硬件架構設計;看懂AltiVec中除VSFX模塊外的所有RTL代碼(Register-Transfer-Level code);畫出AltiVec toplevel的硬件架構圖。
子任務五:定義所要設計的VSFX模塊的架構、子模塊;要求畫出模塊的框圖,標注寄存器及多路選擇器的位置,明確下一步RTL代碼的關鍵內容。
子任務六:進行VSFX模塊的RTL代碼設計及仿真驗證;完成二級譯碼電路設計;完成功能模塊設計。
子任務七:進行頂層設計及仿真驗證。將所設計的VSFX模塊與top連接,形成完整的AltiVec模塊;進行AltiVec層次的驗證;輸入所設計的5條指令的匯編指令,采用VSFX模塊級的數據,結果與之前的VSFX模塊級仿真數據對比。在基本功能測試完成后,將進一步在SystemVerilog語言建立的自動生成測試向量的測試環境中,通過運行生成的100組隨機向量,檢查學生設計的系統和功能的正確性,保證測試覆蓋率。
子任務八:進行FPGA開發板上的驗證。RTL級的仿真驗證僅僅能保證所設計的硬件的邏輯功能正確性。通過將所設計的RTL代碼放置到FPGA開發板上才能夠驗證所設計的硬件實現的時序正確性及工作速度是否達到設計要求。最后針對FPGA開發板的邏輯綜合與靜態時序分析,驗證設計的時序的正確性以及所設計的電路可以在什么時鐘頻率下工作等。
3.2.2教學組織形式
在課程設計開始時,教師要求學生自愿組合,每組2人,每組學生從70條VSFX指令中選出5條不同類型的指令,作為準備由硬件實現的指令,這就是小組的設計任務。盡管每個小組都要完成同樣的8個子任務,但是由于每組學生所選擇的5條指令并不相同,所以每個小組實際完成的任務并不一樣。通過布置任務、教師引導、分組討論、學生實踐、擴展閱讀、溝通交流、實現設計、完成測試等一系列教學環節,讓學生完成一個現代處理器PowerPC擴展指令協處理器AltiVec模塊中VSFX指令部分的設計。
在整個課程設計過程中,教師講得很少,主要靠學生自學、討論和實踐。在每個實驗的關鍵節點上,教師都會安排學生做課堂匯報。在學牛進行匯報過程中,教師及時糾正學生的錯誤,正確引導學生一步一步完成任務。教師給學生準備了必要的參考閱讀資料,包括1 300多頁的IBM Power處理器設計文檔“Book-IChapter 6.Vector Facility”、260多頁的飛思卡爾公司技術手冊“AltiVec Technology ProgrammingInterface Manual”、IBM公司和摩托羅拉公司發表在國際會議上的對PowerPC做向量擴展的文章“A Low-power, High-speed Implementation of aPowerPC Microprocessor Vector Extension”和VSFX指令第一級譯碼器文檔等。另外,教師要搭建AltiVec模塊的集成與驗證平臺。
4 結語
在2011級計算機工程專業方向本科生的汁算機設計與調試課程中,我們按照上述新的教學內容和教學組織形式進行了嘗試。學生經歷r一個完整的系統設計過程,所有學生的設計都通過了仿真檢測和在FPGA開發板上的測試。實踐表明,教學內容和教學組織形式的改革調動了學生學習的積極性和主動性,取得了非常好的教學效果。