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