摘要:計算機組成原理課程在計算機體系結構課程群中起著承上啟下的作用。文章提出將專業特點、課程重點、實踐教學環節聯系起來,適當調整現有教學內容及方法。通過實施發現,這種調整對促進學生進一步理解課程內容,加強動手實踐能力的培養,提高計算機專業學生硬件設計能力大有裨益。
關鍵詞:計算機組成原理;實踐教學;動手實踐能力
在我國當前高校教育中常出現這樣一種情況:經過四年的學習,很多學生只是掌握了一些書本上理論性的知識,缺乏實際工作的知識和操作技能,動手實踐能力很低,綜合素質不高,很難滿足用人單位的要求。特別是近些年來一些高校在師資條件不具備的情況下,擴招速度較快,致使辦學經費缺乏[1],對于實踐教學環節有所削弱,這就不可避免地導致學生理論與實踐存在一定程度的脫節。因此無論從大學本身的教育功能還是從時代發展對人才素質的要求來看,加強對大學生動手實踐能力的培養都有著極其重要的意義。
對于實踐性較強的計算機專業課程而言,在教學過程中更不能只重視理論基礎,忽視動手實踐能力的培養,因此需要對現有教學模式進一步優化,提倡精講多練,更全面地發揮學生的學習自主性。計算機組成原理課程是計算機科學與技術專業的主干必修課,是計算機體系結構課程群的核心課程,在整個課程體系中起著承上啟下的作用。這門課程的先修課有數字邏輯、匯編語言程序設計,后續課程有計算機系統結構、微機接口技術、嵌入式系統等。課程中涉及的知識面較廣,加上有些理論較抽象,學生在學習時普遍覺得內容不好理解,導致學完本課程后,基礎知識掌握不扎實,學習后續課程時會產生“恐懼”心理,從而影響很多課程的學習,最后變成“談硬件色變”。對于從事計算機組成原理課程教學的教師來說,如何引導學生學習好這門課程顯得尤為必要。
1課程教學現狀
目前國內高校計算機組成原理課程教學上理論性內容過多且陳舊,這里面存在一定的客觀原因,如計算機硬件發展太快,新知識包含許多較復雜的技術,熟悉該技術并掌握技術中的理論知識需要花費一定的時間和精力,對于學生而言較難學習和理解,因此組織和實施教學的難度較大,許多教師就偏向于講述舊的知識,這對于了解現代計算機系統的發展已顯不足。
對于計算機組成原理課程而言,由于更多涉及計算機內部的構造、工作原理和應用,很多知識只有通過實踐操作和驗證才能真正理解和掌握,要想真正理解相關知識光有課堂教學還遠遠不夠,需要配有一定實踐教學手段。目前很多高校的計算機組成原理課程都設有實踐教學課程,普遍采用下面幾種模式。
第一種模式是在做計算機的部件級設計實驗以及計算機主機系統設計實驗時,采用特定硬件實驗臺進行實驗[2]。這種模式的優點是較為直觀,學生能夠感覺到是在做硬件實驗。但計算機主機的總體結構往往已經固定,學生很難重新進行計算機結構的設計,創造力不能得到很好地發揮。由于局限于該平臺所提供的功能,實驗時往往參照實驗手冊完成,整個過程驗證性成分較多,而且在實驗中存在著插線虛接、器件損壞以及實驗結果不能長久保存等問題。
第二種模式采用EDA虛擬平臺來實現[3]。這種方式可以很好地進行計算機硬件系統的邏輯功能設計,而且可以提高系統設計的水平及效率。學生按照自己設計出的邏輯電路在EDA平臺提供的元器件之間進行連線,線路一旦連接好,不必再擔心連線折斷、導線虛接等問題,對于未做完的實驗還可以隨時保存,而且可以針對設計出的部件以及計算機主機系統進行模擬仿真,以驗證邏輯設計的正確性。不足之處是實驗在虛擬環境下進行,所有仿真是建立在器件物理模型上的,測試時僅靠觀測仿真波形來確定功能實現與否。雖然在設計計算機結構時不受限于特定實驗環境,但由于在整個實踐環節沒有接觸具體元器件,學生感覺不到是在做硬件實驗,同時又缺乏真正的硬件調試過程,在鍛煉動手實踐能力上打了一定的折扣。
這兩種模式對于現階段培養學生動手實踐能力已顯不足,為了適應新時代對大學生的要求,需要更新現有的實踐教學手段。當前很多高校已經引入FPGA實驗平臺,由于FPGA芯片具有靜態可重復編程和動態系統重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。用戶可以通過原理圖輸入法或硬件描述語言,完成從簡單的74系列等各種數字電路到高性能CPU的設計。使用FPGA還可以大大縮短設計時間,當電路有少量改動時,FPGA的優勢更加突出。因此采用FPGA芯片進行計算機組成原理課程設計優勢較為明顯,目前已有一些高校采用FPGA平臺進行課程設計[4],這可看作第三種模式。它兼有前面兩種模式的優點,可以讓學生感覺到在做硬件實驗,而且只要設計的門電路規模在允許范圍內,想象力可以得到充分的發揮。基于FPGA的這些優點,我們對于學生動手實踐能力培養就構建在該平臺上。
2課程改革與探索
對于計算機組成原理這門課,教學內容、實踐手段都會影響教學效果。課程組經過研討,對現有教學方法做了適當調整,將專業特點、課程重點、實踐教學環節的作用聯系起來,幫助學生理解課程中的理論知識,借助FPGA平臺進行課程實踐,促進學生進一步融會貫通課程內容。使學生不僅掌握計算機中CPU的設計方法及各模塊的工作原理,建立計算機整機系統概念;同時還注重對學生的實際動手能力的培養,改善計算機專業學生在硬件設計能力上有所欠缺的問題,為下一步學習后續課程打好基礎。
1) 在保證教學基本要求的前提下,增加新知識、新技術,增強學生學習計算機組成原理的興趣。
考慮到教學安排的層次性和循序漸進的要求,在教學內容上首先要符合教學基本要求,重點突出、難易適度,同時還要兼顧一些新知識、新技術。即以基本的、重要的知識點為主,通過對知識點的講解、探討,使學生首先能夠掌握方法。由于計算機學科是一個高速發展的學科,可針對學科研究現狀和發展動態,對教學內容進行更新和拓展,引入新的科研成果和研究趨勢,激發學生探求知識的欲望,從而進一步提高課程學習效果。在課堂講授中除了講授必要的理論知識幫助學生建立計算機整機概念外,還將計算機系統結構中一些經典的設計(如流水線技術、高速緩沖存儲器技術等)用一定課時介紹給學生,此外還引入如MIPS架構、多核處理器以及可重構計算等一些相對較新的技術和知識,這些“看得見、摸得著”的計算機系統有利于激發學生對課程內容的聯想,探求一些感興趣或與課程內容相關的問題。通過教學內容的變化,使得學生對于計算機系統設計產生很大興趣,有些學生會主動閱讀和了解相關資料,這對于他們提高自學能力非常有用。我院在本科生中開設有創新學分課程,其中“MIPS體系結構原理及設計”課程是在計算機組成原理課程之后開設的,有很多學生在計算機組成原理課程學習中了解了MIPS相關知識,產生了一定的興趣,對于這門課程選修積極性很高,而且在該課課程設計中也表現出極高的重視程度且能夠很專注地投入進去,這都很好地說明適當引入新知識能激發學生學習的興趣。
2) 在課程教學環節中,引導學生進行知識運用,培養學生分析問題和解決問題的能力。
教學過程中要始終以學生為主體,教師要引導學生積極思考,使學生的思維活動始終處于活躍狀態,使學生在課堂上不僅能夠掌握相關的教學內容,此外還應該研究如何引導學生, 使學生充分認識到,專業課學習的真正目的是培養分析問題和解決問題的能力。教師在教學工作中應該將自己的科研工作轉化為教學資源引入課堂教學,讓學生體會到所學知識的應用價值和社會價值,同時體會到所學知識的必要性,從而激發學習的興趣和動力。在這個過程中教師可以采用適當的方法,引導學生如何分析科研中遇到的問題,并敢于用所學知識解決問題,這能夠很好地鍛煉學生的思維。很多學生在課程設計環節能夠提出一些好的想法,并且能夠積極的去驗證自己的想法,這對于本課程相關知識的理解起到了積極的作用,而且對日后從事工程設計也有很大的啟發。
3) 加強實踐教學環節,培養學生實際動手能力,并制定合理完善的評分體系。
通過實踐教學,可以發現理論真知,培養學生的科學研究技能,提高學習興趣和實踐動手能力。在實踐教學中,讓每人都有充分的動手機會并成為實驗的主體非常重要。在課程設計中,鼓勵并引導學生去設計獨特的模型機結構,避免出現模型機總體結構千篇一律,僅在指令條數上有所區別的現象。同時為了提高學生實踐動手能力,要求設計成果能夠在真實的硬件平臺上運行。這就在具體設計過程中給學生提出了要求,除了完成模型機主機設計外還要增加必要的輸入輸出電路。由于要求模型機能夠運行在真實的FPGA芯片中,主機調試時必須完成時序仿真,學生需要反復優化電路結構才能實現,這有助于提高學生數字電路設計能力。對于輸入部分學生可以選擇指撥開關、矩陣鍵盤,輸出部分可以選擇數碼管、LED陣列顯示以及液晶顯示屏,不管如何選擇,都要求在模型機的基礎上增加外圍控制電路,對這些基本輸入輸出部件的控制強化了學生的基本功,這有助于日后學習其他課程或進行嵌入式開發時進行更復雜外設的控制。當模型機主機和外圍控制電路設計完成后,對外設分配相應的控制管腳,通過EDA軟件綜合后即可下載到FPGA芯片中,同時進行硬件調試,如果硬件不能正常工作還需要再對主機或外圍控制電路進行修改,直到整個模型機能夠正確工作為止。最后學生展示自己設計成果時,能夠真實地看到每一條指令的運行結果,更加直觀地體會到計算機的基本工作原理及工作過程。
在整個課程設計中學生首先需要掌握EDA軟件的使用,需要了解FPGA工作原理,查閱與芯片有關的數據手冊,還要了解外圍電路如何控制以及在設計過程中的前仿真、后仿真和包括整個系統的調試。這對于培養學生建立自頂向下的設計思維,提高自身動手能力,增強學習硬件的興趣都非常有益。為了使學生能夠順利完成課程設計,實踐過程中教研組教師根據實驗環境、學時給學生及時的指導,使得學生能夠充分發揮自己的想象空間,還能夠保證最終設計切實可行。最后在實踐環節的驗收階段還制定了一套合理完善的評分體系,能夠對學生的創新能力、動手能力以及自學能力進行評價。
4) 將一些與計算機體系結構相關的課題引入畢業設計中,進一步培養學生的科學研究和創新實踐的綜合能力。
計算機組成原理課程學習的結束并不等于對課程中相關知識探求的結束,對于在計算機體系結構方向感興趣的學生,可以進一步提高學生對有關問題的研究與應用,如有關片上系統設計和應用的課題,讓學生利用畢業設計充足的時間去實現課程設計中無法完成的設計思想。由于畢業設計是學生在設計方法、實驗方法和研究內容上進行系統訓練的環節,有利于培養學生運用所學知識與技能獨立分析和解決實際問題的能力。通過探討,教研組教師有意將一些有一定的綜合性、覆蓋知識面較廣而且具有一定難度和工作量的課題引入畢業設計中,如讓學生完善自己的模型機并能夠實現一定的計算機控制,使這些學生能夠得到更全面的鍛煉,使學生的動手實踐能力得到更高的培養。從課堂教學、實踐教學到畢業設計,一門計算機組成原理課程可以將多個教學環節結合起來,由于硬件設計是相通的,學生掌握牢固的計算機組成原理知識對于后續課程或相關技術的學習和理解也起到了很好地作用。
3結語
課程組在教學過程中力求改善以往教學中僅把該課程作為一門理論課,而忽視了對學生動手實際能力培養的狀況,進一步發掘計算機組成原理作為主干必修課程的作用,在實踐教學中培養學生的動手能力。通過探討及實施不僅使學生對理論知識加深了理解,還充分發揮他們的想象力對一些問題進行深入的研究,并通過FPGA平臺完成模型機設計,這有益于培養學生的動手實踐能力。整個教研過程證明從課堂教學、實踐教學及畢業設計環節出發, 對于構建該課程較為完善的實踐教育教學培養體系十分有益。誠然,在教學過程中,還有一些基礎不夠好、動手能力差的學生對于課程的要求還有些不適應,如何更好地兼顧不同層次學生的需求,需要我們在今后的教學工作中繼續探索和總結,并使之進一步完善。
參考文獻:
[1]