馬輝+史小松


摘 要:計算機組成原理是計算機及相關專業的一門核心基礎課程,能幫助學生理解計算機硬件的工作原理,構建計算機硬件工作系統。在系統發展觀下,本文提出計算機組成原理教學內容的處理方法和有效培養學生系統能力的教學方法。
關鍵詞:系統觀;計算機系統;教學內容;教學方法
一、引言
計算機組成原理是計算機專業核心基礎課,傳統上主要講述構成計算機硬件系統的各功能部件的基本工作原理以及互連構成整機系統的技術。從2009年至今,在計算機考研統考中,計算機組成原理內容占了約1/3的分值比例。
隨著計算機科學內涵和外延的擴展,計算機組成原理傳統的教學模式也有了改變,在教學內容、教學方法及實驗內容上都有一定的改進。從計算機科學的長遠情況來看,未來的計算機設計、應用更需要從系統角度考慮,所以對計算機組成原理進行教學改革很有必要。
二、教學改革原因分析
計算機系統由硬件和軟件兩大部分組成,但隨著計算機結構的復雜化和應用領域的擴大化,通常用層次結構來描述計算機系統。一種計算機系統的層次結構描述如圖1所示,傳統的計算機組成原理主要討論傳統機器M1和微程序機器M0的組成原理和設計思想。
但這種主要關注硬件部分的教學思想,弊端早就被感知,在國外的教學中也早被擯棄。如Patterson和Hennessy教授曾指出,“軟件設計者對軟件系統運行環境的硬件技術是否了解、了解多少,會很大程度地影響軟件系統的性能。同樣,硬件設計者必須了解設計決策將對軟件產生怎樣的影響”。這種硬件、軟件應一起考慮的思想,在我國正逐步推廣。如清華大學科教儀器廠所生產的TEC-XP計算機組成原理實驗系統,其提供的實驗內容既包括對CPU結構的設計、機器指令的設計等,也包括使用Basic語言的軟件設計。
從計算機考研統考對一般教師的教學及學生的學習所起的指導性作用來看,也在強化這種軟硬件結合,即不能把計算機組成原理只作為一門硬件課程來看待。表1統計了2009~2014年計算機考研統考試卷中軟硬件內容相結合的題目。
表1 軟硬內容結合題目統計
而從計算機及其應用的發展來看,20世紀80年代,信息技術和通信為互聯網打開了大門,到了90年代,一個很重要的革命始于嵌入式系統技術的傳播。現在值得期待的是嵌入式和互聯網融合的成果——物聯網的出現。很難想象未來20年計算機科學會是什么模樣,但2007年圖靈獎獲得者約瑟夫·斯法科思指出:計算機科學的范圍正從算法和程序逐漸向系統轉移。在這樣的系統發展觀下,對計算機組成原理這樣的基礎課程所進行的教學改革就具有非常重要的意義。
三、教學改革探討
1.教學內容的改革
最初的計算機專業人員對計算機的工作原理和工作方式了如指掌。計算機體系中的硬件、軟件、編譯器以及操作系統之間的交互既簡單又透明。然而,隨著現代計算機技術的日趨復雜,這種明晰性不復存在,導致一種無法避免的結果,即領域專業化,使多門計算機科學領域應運而生,每個領域只涵蓋學科的某一個方面。如果學生或計算機從業人員不能把多門課程知識融合到一起,他們常會產生不安的感覺,因為他們沒有完全透徹地理解計算機硬件系統和軟件系統是如何緊緊地關聯在一起的。
21世紀的社會結構中,計算機將成為關鍵支柱。過去的計算機研究以性能作為主要的優化目標,現在必須認識到常規的計算機已經被上下文計算(如傳感器、移動終端、客戶端、數據中心)所取代。這種轉變更強調超越性能的以人為本的設計目標。在這樣的背景下,作為基礎課程的計算機組成原理的教學內容就應強調多門計算機課程內容的綜合理解。比如,計算機運算器部分內容的講解,既需要基本的數字電路知識,也需要介紹基于FPGA或CPLD的電路設計,因為將來的系統應用可直接采用可重用的IP(知識產權)核。在基于FPGA的電路基礎上,可以讓學生從基本功能部件設計開始,設計CPU、存儲器和外圍接口,最終將CPU、存儲器和I/0接口通過總線互連為一個完整的計算機硬件系統。
進一步考慮我們培養的學生,大多數人沒有機會構造計算機系統,他們未來主要的工作只是使用計算機或編寫計算機程序,所以在教學中對內容的選取也應從程序員的角度來講解。比如,數據的表示與運算內容的講解,應該考慮在實際語言程序中的執行情況,分析實際程序中常見的問題與誤解。針對流水線等處理技術與編譯優化相關,可以以MIPS為模型機進行介紹,利用MIPS模擬器為編譯技術的實驗提供可驗證實驗環境。
2.教學方法的改革
在教學內容改革的基礎上,重視多門計算機課程內容的綜合理解,增加了很多教學內容,這無疑會加重教師和學生的負擔,所以此時的教學方法也應進行相應的改革。
(1)采用啟發式教學方法。啟發式教學方法是教師啟發學生積極思維,使他們主動掌握知識的一種教學方法。在較多的教學內容下,教師不可能進行知識的詳細講解、分析,所以應該深刻理解課程的重點,了解計算機科學的最新發展和知識的應用情況,在必要時拋出一些問題,引導學生進行積極思考,主動探究問題的解決方法。如針對無符號數據的表示與運算,可啟發學生分析C語言下和JAVA語言下的不同處理,最終理解計算機對數據運算的處理本質。
(2)突出理論知識的實際應用。計算機組成原理的教學內容多較抽象,學生理解的難度較大。教學中要注意理論知識的實現環節,針對一個理論知識點,給出其在實際系統中的應用情況,這會引起學生的興趣。如浮點數的IEEE754表示,單純通過講授來掌握其表示特點非常困難,如果在實際語言環境中(比如C語言)讓學生看到浮點數在機器中的二進制表示,就會非常直觀。
(3)重視實驗與實踐教學環節。實驗和實踐是計算機組成原理教學過程的一個重要環節。一方面,可以進一步深化學生對理論知識的理解和掌握;另一方面,可以培養學生的實際動手能力,提高學生的學習興趣,增強學生的創新意識。如利用一套承上啟下的基于FPGA開發板的綜合實驗平臺,不僅能完成計算機各功能部件的設計驗證,也能創新性地設計CPU及整機系統。但現階段的計算機組成原理實驗設備和實驗內容還有不完善的地方,在現有的教學模式下,實驗和實踐的課時是受限的,能突破課時限制的開放式實驗環境比較匱乏。
四、小結
計算機系統是軟件和硬件的組合,但未來的系統設計不應只考慮系統軟件和硬件的交互,還要考慮系統和它的受控環境。目前的計算機科學教師常忽略對學科的宏觀描繪,這也限制了課程的教學內容、教學方法及教學效果。本文立足于計算機組成原理,探討了系統觀下的教學改革情況。
參考文獻:
[1]馬輝,王丁磊.計算機組成原理[M].北京:中國水利水電出版社,2010:10-11.
[2]王丁磊.統考下的“計算機組成原理”教學方法探討[J].計算機教育,2010(6):91-93.
[3]王志英.計算機專業學生系統能力培養和系統課程體系設置研究[J].計算機教育,2013(9):1-6.
基金項目:河南省綜合改革試點專業“計算機科學與技術”(2012 -859-14)。
作者簡介:馬輝(1977— ),男,河南遂平人,講師,研究方向:計算機教學與研究。