董梁 翟社平 王曉婕 邢高峰
摘要:隨著對計算機硬件專業(yè)要求的不斷提高,軟硬件協(xié)同設計和開發(fā)已經(jīng)是發(fā)展的大勢所趨,因此要求計算機硬件教育從傳統(tǒng)的分離式、理論式,向系統(tǒng)性、實踐性的教學方向發(fā)展。文章分別從教學課程、綜合實驗和教學方法方面提出硬件教學的改進方案,以西安郵電大學為例,闡述根據(jù)計算機硬件發(fā)展方向和對人才培養(yǎng)的要求,對于傳統(tǒng)的硬件實踐教學進行探索創(chuàng)新的過程。
關鍵詞:計算機硬件、實踐教學、軟硬件協(xié)同設計
1.背景
傳統(tǒng)的計算機硬件教學主要的體系結(jié)構如圖1所示。其中,“微機原理與接口技術”課程是以intel8086為背景機,通過編寫匯編語言程序和在實驗箱上連接硬件電路,來讓學生深刻理解計算機的工作方式?!坝嬎銠C組成原理”課程是從設計者角度出發(fā),使學生掌握一般意義上的計算機硬件系統(tǒng)各功能部件的組成、工作原理和實現(xiàn)方法,尤其是涉及微處理器的組成及工作原理、總線連接等硬件知識,培養(yǎng)學生對硬件系統(tǒng)的分析、開發(fā)和使用能力。“計算機系統(tǒng)結(jié)構”課程從軟硬件兩方面出發(fā),講述計算機系統(tǒng)的設計方法及其達到的功能性能指標。
在實際教學過程中,隨著intel8086應用的不斷減弱,計算機硬件教學與實際應用脫節(jié)等況,導致課堂上老師越講越費勁,學生越聽越?jīng)]興趣,考試內(nèi)容越來越簡單。針對這種情況,采取了一系列針對性的改進措施。
2.硬件教學的改進方案
計算機硬件與計算機學科其他部分是一個有機整體,為了方便教學需要劃設各門課程,例如匯編語言、硬件電路設計、c語言、編譯原理、數(shù)據(jù)結(jié)構、操作系統(tǒng)、計算機網(wǎng)絡等課程。在實踐教學中,通過課內(nèi)實驗,學生完成本課程知識的理解和消化;通過一些專項課程設計,學生完成對專業(yè)知識的掌握和提高;通過一些綜合設計,學生完成對整個計算機專業(yè)系統(tǒng)技能的掌握和提高。因此,計算機硬件教學主要通過對教學課程、綜合實驗、教學方法3個方面進行改進。
首先,在教學課程上進行改進。將“微型計算機原理”“匯編語言程序設計”“微機接口技術”等相關課程整合為一門“微機原理與接口技術”,統(tǒng)一教學大綱和課內(nèi)實驗要求。另外,將基于ARM的嵌入式開發(fā)和基于單片機的開發(fā)設為選修課。原有的“計算機組成原理”實驗主要以驗證性實驗為主,學生可以自主設計的部分很有限。而“計算機系統(tǒng)結(jié)構”實驗更是以軟件仿真為主,學生缺乏感性認識。為此,專門開設了“Verilog HDL語言程序設計班和“基于FPGA的開發(fā)設計”課程。通過硬件描述語言Verilog HDL程序設計,可以由硬件邏輯電路設計逐步達到向芯片設計的轉(zhuǎn)變。通過引入FPGA開發(fā)板,來實現(xiàn)硬件電路設計到實際應用的轉(zhuǎn)變。
其次,在綜合實驗上進行改進。在“硬件課程設計”中,將原來的硬件布線在實驗箱上接線完成,改為由學生自行設計接口電路板,并完成程序運行。另外,專門設立了“基本模型機課程設計”,讓學生自行用Verilog HDL語言設計CPU及其相關部件,完成基本匯編/機器指令運行。
最后,在教學方法上進行改進。通過組織競賽調(diào)動學生學習的積極性,包括已經(jīng)舉辦了6屆的“西安郵電大學匯編語言程序設計競賽”。通過組織“計算機硬件協(xié)會”,讓一部分學生進入到科研項目中來,通過教師的管理和引導,來完成一些綜合性的實驗課題。
3.硬件教學改進的實現(xiàn)
3.1在教學課程上的改進
規(guī)范全校的“微機原理與接口技術”課程教學大綱,該課程以intel 8086為背景機,編寫匯編語言程序,設計接口電路,完成基本的微型計算機開發(fā)。相關的選修課程有“嵌入式系統(tǒng)與開發(fā)”和“單片機技術”?!扒度胧较到y(tǒng)與開發(fā)”課程主要以ARM為背景機,編寫c語言程序,在已有的開發(fā)板上進行嵌入式系統(tǒng)開發(fā)。
“計算機組成原理”是計算機學科各專業(yè)的專業(yè)基礎課,是培養(yǎng)計算機相關專業(yè)學生實踐動手能力和創(chuàng)新開發(fā)能力的核心課程。通過計算機組成原理課程的學習,使學生掌握一般意義上計算機硬件系統(tǒng)各功能部件的工作原理和設計方法,尤其是涉及微處理器的組成及工作原理、總線連接等硬件知識。已有教學方式注重計算機科學理論,強調(diào)計算機體系設計思想和各部件的功能用途。這種教學模式的好處在于突出主干,使得學生可以把握整體,易于掌握計算機設計的核心思想。有別于傳統(tǒng)教學側(cè)重理論,實驗也主要是在實驗箱上的驗證性實驗,傳統(tǒng)教學方法對于考研學生很有幫助,但對于更多畢業(yè)找工作的學生就很難引起興趣。
首先,在確保理論課不放松、不降低教學質(zhì)量要求的前提下,與后續(xù)的“計算機系統(tǒng)結(jié)構”課程進行很好的銜接。選用了白中英教授編著的國家級精品教材《計算機組成原理))o同時根據(jù)全國計算機專業(yè)考研統(tǒng)考大綱,將蔣本珊教授編著的《計算機組成原理》、唐朔飛教授編著的《計算機組成原理》、王閔教授編著的《計算機組成原理》和王愛英教授編著的《計算機組成與結(jié)構》作為參考教材。
其次,加強實驗環(huán)節(jié),與現(xiàn)在主流的Verilog HDL硬件描述語言、FPGA開發(fā)板對接,將數(shù)字邏輯電路、硬件描述語言和可編程邏輯器件進行有機整合,從而讓學生在實驗中真正成為計算機系統(tǒng)的設計者。
這里需要團隊進行大量的準備工作,包括:選派教師參加南京大學的XILINX技術培訓課程、選派教師參加北京航空航天大學的CPU工程化設計、選派教師參加計算機組成實驗課程的全國研討會、承辦“全國計算機核心課程教學改革研討會”、聯(lián)合北京至芯科技公司舉辦了FPGA硬件開發(fā)技術培訓等工作。
在與全國各高校教師和公司工程師的討論學習中,尤其是與浙江大學計算機學院、北京航空航天大學計算機學院的專家學者進行深入的交流后認為,經(jīng)過數(shù)十年的建設,我國高校計算機專業(yè)已形成了一套相對穩(wěn)定人才培養(yǎng)模式。目前,面對可編程硬件時代機遇和計算機系統(tǒng)課程教學與實驗改革的需求,加強計算機類專業(yè)學生的系統(tǒng)能力培養(yǎng)已是當務之急。以計算機系統(tǒng)設計實現(xiàn)為手段,通過加強數(shù)字邏輯、計算機組成原理、計算機外設、操作系統(tǒng)、匯編語言、編譯原理和網(wǎng)絡傳輸?shù)日n程的有機銜接,促進計算機專業(yè)學生在系統(tǒng)設計與實現(xiàn)方面的工程實踐與創(chuàng)新能力得到提升。
錄制了計算機組成原理課程的教學微視頻,編寫了相應的Verilog HDL指導書,改造并新建了計算機組成原理實驗室。改造的實驗室能很好地完成傳統(tǒng)的理論驗證性實驗,滿足非計算機專業(yè)學生的學習要求。新建的實驗室引入了最新的XilinxK7系列FPGA開發(fā)版,以及Vivado綜合開發(fā)工具,開發(fā)出存儲器設計、運算器設計、基本模型機設計、總線設計等多個實驗項目。通過可編程方式來設計并實現(xiàn)電路,開展可重構原理的計算機設計,使學生具有用硬件描述語言進行設計的能力,完成從驗證知識到設計、創(chuàng)新能力的培養(yǎng)?,F(xiàn)在除了使得計算機專業(yè)教師學生能完成基本的理論課程要求實驗外,還可以開展設計性實驗參加競賽,進一步提高了實驗室的利用率。
3.2在綜合實驗上的改進
自2008年起,完成了硬件課程設計的校級課程建設。編寫了相應的《微機原理與接口技術實驗指導書》《計算機組成原理實驗指導書》《硬件課程設計指導書》及其配套的網(wǎng)絡資源,使得學生實驗前有準備、實驗中有指導、實驗后有對比,大大增強了學生對實驗課的重視程度。
“微機原理與接口技術”課程的硬件連線之前都是在實驗箱上完成,所以學生的連線固定,而且學生也不容易掌握硬件電路的具體細節(jié)。在相應“硬件課程設計”實踐教學中進行了改革,讓學生自己設計接口電路板,包括使用接口芯片的類型,芯片引腳的排布,電源線地線的布置,LED燈、數(shù)碼管、按鍵開關、電阻的個數(shù)及排布都由學生自行設計,最后在面包板上焊接完成,使用原有的接口實驗箱來提供系統(tǒng)總線接口和匯編程序運行下載環(huán)境。通過這樣的改革,既有效地杜絕了抄襲現(xiàn)象,又使得學生對軟硬件設計加深了理解。
進一步引導學生學習和使用Proteus仿真軟件,通過對硬件電路布線和匯編程序的運行環(huán)境的仿真,學生可以實現(xiàn)軟件和硬件協(xié)同設計,并行展開工作,同時對整個微型計算機系統(tǒng)有了進一步加深理解。
對于硬件課程設計的實踐教學改革自2010年起,已經(jīng)在計算機科學與技術、軟件工程、網(wǎng)絡工程3個專業(yè),6個年級得到了推廣和應用,實際效果顯著。將過去以驗證性為主的實驗逐步過渡到以設計性為主的實驗,提高學生的動手實踐和創(chuàng)新能力。學生的參與熱情和動手能力得到了提高,教師的教學管理能力也得到了很大的提升。
3.3在教學方法上的改進
在保證傳統(tǒng)教學內(nèi)容不放松的情況下,為增強學生的學習主動性,進行了全校性的匯編語言程序設計競賽。通過三人一組的競賽小組,既增加了學生學習的主動性,又增加了學生的團結(jié)協(xié)作能力。事實證明,只要組織方法得當,學生的熱情和能力往往會得到充分發(fā)揮。
圖2是第5屆匯編語言程序設計競賽的4組獲獎同學的作品。其中,圖2(a)的匯編程序?qū)崿F(xiàn)了將DOS窗口劃分為4塊,.能同時動態(tài)繪制不同顏色的圖形;圖2(b)的匯編程序?qū)崿F(xiàn)了一個四則運算式計算器,能自動識別用戶輸入的帶括號的四則運算式的值,還成功實現(xiàn)了小數(shù)運算;圖2(c)的匯編程序?qū)崿F(xiàn)了在4個窗口中分別動態(tài)輸出文本、計數(shù)與繪圖;圖2(d)的匯編程序?qū)崿F(xiàn)了4個窗口的展開和疊放。每組同學的作品都有自己的創(chuàng)意和特色,利用匯編語言編寫程序可執(zhí)行代碼小巧,任務切換速度快,執(zhí)行效率高,體現(xiàn)了匯編語言獨特的魅力。
全校性的匯編語言程序設計大賽自2010年起,每年舉辦一屆,已經(jīng)連續(xù)舉辦了6屆。學生們充分發(fā)揮了8086匯編語言的特長,從簡單的文本字符輸入輸出,到畫直線、畫三角形、畫圓,從簡單的動畫到游戲設計,從簡單的命令行程序到自行設計數(shù)據(jù)庫程序,從單一的窗口到多窗口設計,從單一任務到多任務并發(fā),從簡單的匯編工具到實現(xiàn)c語言再到匯編語言的編譯系統(tǒng)設計。伴隨著學生們的積極熱情參與,教師團隊也受益頗多。
把重在能力培養(yǎng)的創(chuàng)新、實踐、個性發(fā)展的理念貫穿到整個教學活動中,強調(diào)探究式、研討式的學習方法。為了加強學生實踐動手能力的培養(yǎng),提高學生學習興趣和積極性,我們教學團隊成立了“計算機硬件協(xié)會”。該協(xié)會是以學生自愿為前提,采取以學生為主體、教師加以啟發(fā)指導的實踐教學模式,通過以項目設計為導向,以興趣小組為單位,對學生的一種管理和組織方式。
以項目導向的開放實驗是近年來為實施素質(zhì)教育、培養(yǎng)學生創(chuàng)新精神與實踐能力為目的而探索的一種實驗教學模式。該模式是在實驗室完成計劃內(nèi)教學、科研任務的前提下,利用現(xiàn)有儀器、設備、場地、設施等資源,面向?qū)W生開放。開放實驗的內(nèi)容主要以各種項目設計為基礎、掌握高新技術為特點、培養(yǎng)學生綜合運用所學知識為目的。
基于興趣小組學習法是學生自行組織、教師加以必要管理的實踐教學模式,是以項目設計為導向,綜合掌握各種知識、加強學生動手能力為目的一種學習方法。該方法能充分發(fā)揮學生的主觀能動性,培養(yǎng)學生分析問題解決問題的能力,激發(fā)學生的創(chuàng)新能力以及成就感。
“計算機硬件協(xié)會”現(xiàn)在已實現(xiàn)高年級學生帶低年級學生,興趣小組內(nèi)學生相互學習自行分配任務,教師引導解決實際問題的可喜局面。現(xiàn)有的興趣小組完成作品:如圖3(a)所示,應用ARM SMT32開發(fā)板設計尋跡小車,包括電機、輪子、各種傳感器的選材和安裝都由學生自行完成;如圖3(b)所示,四旋翼飛行器的組裝和GPS定位開發(fā);如圖3(c)所示,利用Protel軟件,應用STC89LE52單片機設計兩層PCB板,實現(xiàn)按鍵顯示、語音識別等,包括布線、選器件、編寫和下載程序部件實現(xiàn)自行設計和選擇;如圖3(d)所示,應用Xilinx Base3開發(fā)板,用Verilog HDL語言編寫小型游戲,完成了驅(qū)動顯示器、按鍵等功能的自行開發(fā)。還有嵌入式Linux系統(tǒng)上的語音識別和開發(fā);嵌入式Linux系統(tǒng)上攝像頭采集,通過WiFi網(wǎng)絡傳輸,手機端圖像的接收等。
4.結(jié)語
計算機科學與技術的不斷發(fā)展,要求采用更為貼近實際的教學方法,計算機專業(yè)畢業(yè)生已經(jīng)從過去的應用開發(fā)者,向計算機的分析設計者轉(zhuǎn)變,軟硬件的協(xié)同設計是必然的發(fā)展趨勢。通過探索計算機硬件教學改進的方法,為后續(xù)工作打下了堅實的基礎。今后工作的重點將圍繞著系統(tǒng)性和實踐性教學,主要包括以下幾個方面:
(1)嵌入式處理器及其外圍電路:借鑒現(xiàn)有的80x86、ARM、MIPS架構展開設計,包括指令集、單周期、多周期、流水線、中斷、雙發(fā)射等技術,進一步設計相應的外圍互聯(lián)互通電路,能夠?qū)崿F(xiàn)輸入輸出的設計驗證。
(2)嵌入式的操作系統(tǒng)及其工具軟件:參考已有UCOS、Linux嵌入式操作系統(tǒng),并在此基礎上設計匯編工具和c語言的編譯工具。
(3)嵌入式系統(tǒng)開發(fā)板:能夠?qū)崿F(xiàn)處理器芯片、總線、接口電路、外設的集成。
(4)基本應用開發(fā):包括WiFi網(wǎng)絡通信、圖像采集傳輸、圖形游戲設計和機電控制等應用。
通過計算機硬件的教學課程,綜合實驗和教學方法的不斷改進創(chuàng)新,使學生增加了學習興趣,提高了分析設計的能力,同時也鍛煉出一支理性務實、團結(jié)創(chuàng)新的教學科研團隊,實現(xiàn)了真正意義上的教學相長。