吳 磊,方英蘭
(北方工業(yè)大學 計算機學院,北京 100144)
以培養(yǎng)學生能力為導向的計算機系統(tǒng)類課程體系的構建與研究
吳 磊,方英蘭
(北方工業(yè)大學 計算機學院,北京 100144)
闡述在 FPGA平臺上,以 MIPS 指令系統(tǒng)設計 CPU,以該CPU 構建計算機系統(tǒng),在構建的計算機系統(tǒng)上運行具有簡單調度功能的操作系統(tǒng),并對設計 CPU 時定義的 MIPS 指令進行編譯。最后提出將計算機系統(tǒng)類核心課程(CPU 設計、調度實現(xiàn)、指令編譯)的實驗貫通起來,形成計算機系統(tǒng)的整體框架觀點。
計算機系統(tǒng)類;計算機系統(tǒng)類核心課程;教學改革;MIPS;設計CPU;FPGA
計算機系統(tǒng)能力培養(yǎng)的概念是伴隨著計算機科學技術的飛速發(fā)展,適應當代社會對計算機專業(yè)人才的需求和專業(yè)素質的要求提出的。計算機系統(tǒng)能力培養(yǎng)教育在美國起步早、發(fā)展順、成就高,課程體系相對成熟。我國的計算機科學與技術學科教程(China Computing Curricula)基本上以IEEE/ACM的計算學科本科教學參考計劃(Computing Curricula)為背景設定的,每年用于計算機教育引進的國外優(yōu)秀教材也大部分來自美國。因此,美國高校計算機系統(tǒng)能力教育的培養(yǎng)方案、實施情況及取得的成果為我國提供了良好的比照模型和借鑒啟示。
美國主要以UC-Berkeley(加州大學伯克力分校)EECS 系的課程Great Ideas in Computer Architecture (Machine Structures)(CS61C)和卡內基·梅隆大學的深入理解計算機系統(tǒng)(Computer Systems A Programmer's Perspective)為主要教學方式。目前國內只有少數(shù)重點院校進行了這方面的教學與實踐,清華大學、北京航空航天大學、南京大學、浙江大學等在不同程度和不同形式上進行了計算機系統(tǒng)能力培養(yǎng)的實踐與探索[15]。
計算機學科的知識體系是一個動態(tài)變化的知識體系,順應計算機學科發(fā)展以及社會對計算機專業(yè)人員素質的要求,及時動態(tài)地調整計算機系統(tǒng)類課程教學內容是時代和社會的要求。國內外高校的探索與實踐結果表明:計算機系統(tǒng)能力培養(yǎng)是提高計算機專業(yè)本科教學質量和水平的一個重要方面。改進培養(yǎng)手段和方法,充實和完善計算機系統(tǒng)類課程體系的教學與實驗,具有開拓意義,也具有理論指導意義。
2.1 計算機系統(tǒng)類核心課程教學與實驗是計算機系統(tǒng)能力培養(yǎng)的重要方面
計算機系統(tǒng)類核心課程通常指計算機原理、操作系統(tǒng)和編譯原理這3門課程。計算機系統(tǒng)類核心課程教學和實驗屬于設計性、綜合性和延展性的專業(yè)課程。計算機系統(tǒng)能力的核心是熟悉如何進一步開發(fā)構建以計算技術為核心的計算機應用系統(tǒng)。計算機系統(tǒng)能力包括計算機系統(tǒng)分析能力、系統(tǒng)設計能力和系統(tǒng)驗證能力3個方面。3個方面相輔相成,共同構成計算機專業(yè)本科學生的基本能力和專業(yè)素養(yǎng)[59]。
2.2 計算機原理的教學與實驗是計算機系統(tǒng)核心類課程的中心
計算機系統(tǒng)能力的培養(yǎng)從根本上說依賴于計算機系統(tǒng)類核心課程,而計算機原理課程在整個計算機系統(tǒng)類核心課程鏈中處于中心位置。計算機原理課程教學與實驗效果,在很大程度上直接影響操作系統(tǒng)和編譯原理這兩門課程的教學與實驗效果,將計算機原理課程的教學與實驗放在十分重要的地位是非常必要的。
2.3 設計CPU是計算機原理課程中教學和實踐中最重要的方面
設計CPU是計算機原理教學和實踐中最重要的一部分,目前它是國內外計算機原理課程教學與實驗的重點內容。以往的傳統(tǒng)計算機原理教學中理論過多、實踐過少,國內外的教學計劃和課程大綱都沒有涉及讓學生有目的地接受和進行CPU設計的實驗,沒有涉及讓學生通過設計CPU的實驗去創(chuàng)造性地學習計算機原理,并在設計實驗中學習CPU的運行原理和實際執(zhí)行過程。因此,CPU設計實驗不僅是一種設計技術手段,而且是一種學習計算機原理的根本變革,將原來對計算機原理的理解上升到計算機的設計與實現(xiàn),由學習理解上升到實際應用,由強調對知識的掌握轉變?yōu)閺娬{對能力的培養(yǎng),順應了計算機學科發(fā)展以及社會對計算機專業(yè)人員素質的要求。
國內幾所重點高校進行了數(shù)年的積極探索,開展CPU設計并提供了示范和案例。然而,這些重點院校大多要求學生設計實現(xiàn)具有一定工程規(guī)模的CPU指令集,如50條以上的指令集。由于學生初次涉足CPU結構,對計算機原理尚處于初步認識和理解階段,CPU設計實踐只是初試身手,過高要求容易造成大部分學生在遇到問題時無法解決,產(chǎn)生迷茫感和挫折感。這也是為什么CPU設計的教學與實驗至今仍未能在全國高校普遍展開的一個重要原因。
3.1 面向計算機系統(tǒng)能力培養(yǎng)目標的總體思路
廣州地鐵5、6號線的直線電機氣隙在線監(jiān)測系統(tǒng)安裝在正線上,可實現(xiàn)對正線運營列車電機狀態(tài)的監(jiān)測預警。但通常情況下,當直線電機氣隙在線監(jiān)測系統(tǒng)能夠檢測到異常時,設備已經(jīng)處于故障狀態(tài)了。因此,能否在故障出現(xiàn)前預判出故障的苗頭,就需要研制直線電機下沉預警子系統(tǒng)。這樣,在故障真正出現(xiàn)前,便可預判出故障的苗頭,這對于維護檢修的意義更加重大。
面向計算機系統(tǒng)能力培養(yǎng)目標的總體推進思路見圖1,總體推進思路強調的是以計算機系統(tǒng)設計與實現(xiàn)的實踐過程為手段,以深入理解計算機系統(tǒng)為目標,貫通計算機原理、操作系統(tǒng)、編譯技術等課程;以系統(tǒng)設計能力為統(tǒng)一視圖,建立層次化、完整性、系統(tǒng)性、循序遞進的課程體系和實踐目標,讓學生逐步遞進設計實現(xiàn)簡單但完整的計算機系統(tǒng),用簡單的計算機調度程序在自己開發(fā)的計算機系統(tǒng)上運行,并用自己開發(fā)的編譯程序對定義的MIPS指令進行編譯[1011]。
3.2 構建與理論教學有機結合的面向計算機系統(tǒng)能力培養(yǎng)目標的實踐體系
計算機系統(tǒng)類核心課程實驗體系的思路和路線圖是:以數(shù)字邏輯設計方法為設計基礎、以硬件描述語言為設計工具、以硬件仿真系統(tǒng)為驗證環(huán)境、以FPGA為系統(tǒng)實現(xiàn)載體、以計算機系統(tǒng)設計實現(xiàn)為目標和主線,將計算機系統(tǒng)設計實踐完整地貫穿于計算機專業(yè)核心課程之中,CPU設計能真實反映學生的計算機系統(tǒng)能力;以計算機系統(tǒng)設計能力為統(tǒng)一視圖,建立層次化、循序遞進、開放式課程實踐體系;其次,通過領會已設計的計算機系統(tǒng)定義的MIPS指令集,編寫基于MIPS指令集的編譯系統(tǒng),通過編寫編譯系統(tǒng)使學生理解和掌握將一種語言轉換為另一種語言的方法和過程,從而構建計算機原理與編譯技術之間的貫通視圖和清晰的相互關系;最后,針對已設計的計算機系統(tǒng),編寫一個具有簡單調度功能的操作系統(tǒng),對已設計的計算機系統(tǒng)進行簡單管理和運行,同時對學生設計的CPU和計算機系統(tǒng)進行驗證,構建計算機原理與操作系統(tǒng)之間的貫通視圖和清晰的層次關系,從而實現(xiàn)將計算機系統(tǒng)觀放到軟硬件設計的具體情境中,通過貫穿整個計算機系統(tǒng)核心課程的設計和綜合實驗訓練, 力圖使學生具有計算機系統(tǒng)視角能力,提高學生設計與綜合能力。
圖1 計算機系統(tǒng)能力培養(yǎng)目標的總體推進思路
4.1 CPU設計是計算機系統(tǒng)能力實現(xiàn)的一個至關重要的環(huán)節(jié)
CPU設計是實現(xiàn)計算機系統(tǒng)能力的一個至關重要的環(huán)節(jié),CPU設計環(huán)節(jié)的缺失容易造成學生對計算機原理的內容理解不深不透[1219],通過CPU的設計可以對計算機原理有一個全面的理論認識和切身的設計體會。
這里我們一改傳統(tǒng)的CPU設計模式,借助工程設計的思想,以搭積木的形式,圍繞指令和指令類設計CPU,降低了CPU的設計難度。首先搭建CPU主干,再一步步添枝加葉實現(xiàn)完整的MIPS指令集,在不降低計算機系統(tǒng)難度的情況下,幫助學生循序漸進地完成CPU設計。此類工程方法步步深入、有章可循,實踐證明這種方式減小了學生實現(xiàn)CPU設計的阻力,是教學與實驗中最容易理解和接受的方式,也為大部分學生所喜愛,即便是普通高等院校的學生在學習計算機原理這門課后,也能較快地掌握并設計出合格的CPU。因此,這種全新的教學和設計實驗模式更具科學性、普適性及實效性,易于在更廣泛的全國普通高等學校計算機專業(yè)推廣。
基于MIPS架構進行CPU的設計,針對設計出來的CPU,結合操作系統(tǒng)實驗,要求學生編寫一個調度程序,將調度程序預先存放在指定的ROM區(qū)域中,在CPU上運行1+2+ +10,其中1,2, ,10共10個數(shù),預先存放在RAM的某個區(qū)域。每次做加法時,調度程序到指定的RAM區(qū)域中取兩個數(shù),完成加法運算后,將和送到RAM指定地方。學生自己設計CPU,并能在自己設計的CPU上調度數(shù)據(jù),是對軟件仿真和驗證的進一步提升,可以驗證設計出來的CPU功能是否完善,存在哪些不足和考慮不周全的地方,從而將計算機原理與操作系統(tǒng)實驗有機地結合起來。同時,要求學生能對CPU設計時選定的MIPS指令進行編譯,將編譯后生成的機器碼在CPU上執(zhí)行,可以檢驗編譯系統(tǒng)能否正確地將MIPS指令編譯出正確的機器碼,從而實現(xiàn)了將計算機原理設計實驗和操作系統(tǒng)與編譯原理的實驗進行有機的貫通。這樣就將計算機系統(tǒng)類課程實驗有機地結合起來了,也保持了學習和實驗的連貫性。
4.3 通過計算機系統(tǒng)類核心課程實驗引導學生發(fā)現(xiàn)問題和自主創(chuàng)新
CPU設計實踐教學是計算機系統(tǒng)能力培養(yǎng)過程中不可缺少的重要環(huán)節(jié)。計算機專業(yè)系統(tǒng)能力的培養(yǎng)與CPU設計實踐教學密不可分。在計算機系統(tǒng)能力的培養(yǎng)上,CPU設計實驗教學項目和實驗手段是卓有成效的載體。
MIPS指令集傳統(tǒng)結構為5級流水線經(jīng)典架構,國內外大部分教材和論文均基于此架構實現(xiàn),但經(jīng)過反復研究和論證,我們發(fā)現(xiàn)采用自主創(chuàng)新的4級流水線結構,可以在提高CPU效率的同時降低指令相關性的實現(xiàn)難度,在實驗過程中逐步增強學生CPU設計實驗的興趣和成就感,教師進而引導和啟發(fā)學生在設計中的自主創(chuàng)新思維,自主研究探索CPU設計,鼓勵學生自行設計具有個人特點的CPU。
5.1 CPU設計目前比較困難的是沒有合適的實驗指導書
由于國內在開展CPU設計方面的教學與實驗尚處于探索起步階段,缺乏有關CPU設計方面合適的教學與實驗指導書,這一點與美國高校有很大不同。在美國常青藤類大學,當他們決定開設哪些課程時,通常伴隨著編寫合適的教材(其內容隱含了實驗部分)及教材的更新。而且,美國大學的計算機教材多數(shù)由著名學者編寫,內容接近最新的技術,更利于學生學習先進的知識。國內的許多優(yōu)秀教材都是從美國引進,主要是由于其教材更適合當前的教學,質量較高,但大部分是英文原版教材,因此在普通高校直接選用美國的教材有一定難度。
5.2 計算機系統(tǒng)能力培養(yǎng)對教師也是一個新課題和挑戰(zhàn)
將以教師為中心的講授原理本身的教學轉為以學生為中心進行設計實驗的教學,是實現(xiàn)計算機系統(tǒng)能力培養(yǎng)的重要手段和思路。目前,由于種種原因,在推行“以學生為中心進行設計實驗”方面還不盡如人意,部分教師對該理念的認識和界定存在偏差。其中,最主要和最難的是如何改變以教師為中心的講授原理本身的教學模式。設計適合計算機專業(yè)的“設計實驗課程”,使計算機系統(tǒng)核心課程之間(專業(yè)解決方案)既互相聯(lián)系又統(tǒng)一貫通,并能夠系統(tǒng)觀察分析——這是計算機系統(tǒng)能力培養(yǎng)的關鍵。
5.3 計算機系統(tǒng)能力培養(yǎng)對學生也是一個挑戰(zhàn)
改變學生的學習方式,讓學生在設計及綜合實驗的過程中,體會遇到困難時,一方面要能提出問題,尋求教師的指導和幫助;另一方面,要主動利用各種媒體查找資料,同學之間應協(xié)作互助,共同探討解決難題和困難的途徑和模式。力求使學生達到更高的學習與設計水平,培養(yǎng)學生計算機系統(tǒng)觀素養(yǎng)的同時,提高其學習及設計能力[20]。
計算機系統(tǒng)能力培養(yǎng)的教學與實驗對計算機系統(tǒng)核心課程任課教師提出了更高的要求,因此必須強化計算機專業(yè)教師的培訓工作,特別要重視以計算機系統(tǒng)能力核心課程教學與實驗新教材的編寫工作,以便使計算機專業(yè)人才培養(yǎng)和教育跟上學科、技術和產(chǎn)業(yè)的發(fā)展步伐。北方工業(yè)大學計算機學院教師敏銳地判斷教學改革趨勢并及時進行改革探索,逐步凝練出具有鮮明特色的教學與實驗成果和經(jīng)驗。下一步的工作擬進一步完善理論內容和實驗環(huán)節(jié),探索新型教學與實驗模式。教學改革任重道遠,我們希望能夠得到更多同行的幫助和支持。
[1] 李山山, 全成斌. 美國計算機硬件系列課程與實驗的調研報告[J]. 計算機教育, 2010(15): 16-20.
[2] 王 帥, 袁春風. 美國一流大學計算機組成與系統(tǒng)結構實驗課程研究[J]. 計算機教育, 2011(17): 115-118.
[3] 寇光杰, 鄒海林, 楊洪勇. 歐美計算機專業(yè)教育的特點與啟示[J]. 計算機教育, 2012(19): 102-106.
[4] 寇光杰, 鄒海林, 楊洪勇, 等. 歐美計算機專業(yè)教育的歷史、現(xiàn)狀及發(fā)展趨勢[J]. 計算機教育, 2012(19): 96-101.
[5] 高小鵬. 計算機專業(yè)系統(tǒng)能力培養(yǎng)的技術途徑[J]. 中國大學教學, 2014(8): 53-57.
[6] 王志英, 周興社, 袁春風, 等. 計算機專業(yè)學生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設置研究[J]. 計算機教育, 2013(9): 1-6.
[7] 袁春風, 楊若瑜, 王帥, 等. 計算機組成與其他課程之間的關聯(lián)內容分析[J]. 計算機教育, 2015(17): 35-38.
[8] 劉衛(wèi)東, 張悠慧, 向勇, 等. 面向系統(tǒng)能力培養(yǎng)的計算機專業(yè)課程體系建設實踐[J]. 中國大學教學, 2014(8): 48-52.
[9] 蔣永國, 洪 鋒, 董軍宇. 面向系統(tǒng)能力培養(yǎng)的計算機組成原理核心課程建設[J]. 計算機教育, 2015(21): 3-6.
[10] 陳文智, 陳 越, 莊越挺. 面向系統(tǒng)設計能力培養(yǎng)的教學改革探索[J]. 計算機教育, 2013(20): 70-76.
[11] 施青松, 陳文智. 強化計算機課程貫通教學深入面向系統(tǒng)能力培養(yǎng)[J]. 中國大學教學, 2014(12): 61-65.
[12] 袁春風, 王 帥. 大學計算機專業(yè)教育應重視“系統(tǒng)觀”培養(yǎng)[J]. 中國大學教學, 2013(12), 41-46.
[13] 李山山, 湯志忠, 周繼群. 基于FPGA的開放式教學CPU的設計與測試系統(tǒng)[J]. 計算機工程與應用, 2015(14): 98-100.
[14] 黃世梅, 傅金枝. 基于FPGA技術的計算機組成原理實驗教學方法[J]. 福建電腦, 2013(5): 47-48.
[15] 陳永強, 全成斌, 李山山. 基于遠程硬件實驗系統(tǒng)的多流水帶CacheCPU設計[J]. 實驗技術與管理, 2012(10): 86-88.
[16] 劉寧. 基于MIPS指令集的RISC微處理器數(shù)據(jù)通路的設計與實現(xiàn)[D]. 武漢: 華中科技大學, 2008:5-52.
[17] 紀祿平, 羅克露. 計算機組成原理創(chuàng)新型教學方法設計[J]. 計算機教育, 2011(7): 85-91.
[18] 楊澤雪, 閔 莉, 王建偉. 計算機組成原理課程實驗教學探討[J]. 計算機教育, 2015(4): 107-110.
[19] 張大發(fā), 曹慶華, 傅翠嬌. 解決CPU流水線沖突技術的設計與實現(xiàn)[J]. 現(xiàn)代電子技術, 2008(4): 21-23.
[20] 魯榮波, 李宗壽, 賀宏遵, 等. 加快計算機硬件課程群實踐教學體系改革, 提高學生實踐和創(chuàng)新能力[J]. 當代教育論壇, 2011(2): 109-111.
(編輯:孫怡銘)
1672-5913(2017)03-0048-05
G642
2016年北方工業(yè)大學優(yōu)勢學科項目。
吳磊,男,副教授,研究方向為計算機硬件、嵌入式技術、無線傳感器網(wǎng)絡,stone.wu@ncut.edu.cn。