常瑞 何紅旗 黃浩煒 丁文博



摘要:從系統觀角度出發,根據近年來計算機系統結構和計算機操作系統以及相關課程的教學經歷與思考,對比國內外名校計算機系統結構課程的教學內容劃分與學時安排,從加強系統能力、構建知識體系、教學內容設計等方面提出一些思路,強調該課程教學中系統能力的培養。
關鍵詞:系統結構;系統能力;教學內容
0、引言
計算機系統結構課程是高等院校計算機科學與技術專業的一門重要專業核心課,在已具備基本的計算機軟、硬件知識基礎上,從軟、硬的總體設計角度出發,研究如何改善計算機系統組織結構以提高系統性能特別是應用程序性能的方法,組織性價比高的計算機系統,著重討論軟、硬件功能的分配以及如何最佳、最合理地實現分配給硬件的功能。該課程對于學生全面理解計算機系統的層次結構、建立計算機整機的概念、了解軟硬件之間的關系、培養計算機系統分析設計及開發能力都起到非常重要的作用。
1、加強系統能力培養
2013-2017年教育部高等學校計算機專業教學指導委員會制定的教學指導計劃中指出,計算機專業應該培養的四大基本能力包括計算思維能力、算法設計與分析能力、程序設計與實現能力和系統能力。計算機系統結構課程應從全局和系統的角度介紹進行計算機系統設計所必須了解與掌握的專業知識,培養學生的系統認知、系統設計、系統開發和系統應用能力,這4方面就構成了系統能力。四大基本能力及能力點分配見表1,每種基本能力都有相應能力點的分配,其中系統能力占到75%。
當前計算機專業學生最重要的是必須加強系統能力培養。相比其他專業學生的計算機基礎和應用能力,計算機專業學生的核心特點和需求是更強調計算機系統能力。其他工科專業(如通信工程、電子工程、自動化專業等)也都開設了一些與計算機相關的課程,如C++程序設計、數據結構、計算機組成原理、匯編語言等。如果把這些課程比作列車車廂,計算機系統結構就是連接這些車廂的掛鉤和軌道。沒有掛鉤,車廂之間就孤立無聯系;沒有軌道,列車無以依托便無法馳騁。計算機專業的學生區別于其他專業學生最重要的能力就是能否將這些課程所學內容系統地聯系起來,能否從總體結構、系統分析這一角度研究計算機系統。
2、從系統層面構建知識體系
ACM和IEEE/CS聯合工作組于2012年11月提交了具有指導意義的計算機科學課程教學參考計劃Computing Science Curricula 2013,其中明確指出計算機組織與體系結構應當建立在深入理解計算機系統硬件環境與更高級的軟件層基礎上,要求學生理解計算機系統基本組成、特征、性能及其之間的關系,特別是現在和未來利用并行性所帶來的計算機系統性能的改進。
通常計算機系統結構課程面向高年級本科生開設,其原因是該課程涉及與計算機軟、硬件相關的方方面面知識,因此孤立學習這門課程不可取,必須從系統層面建立知識體系。課程體系既是一個整體,又應當連貫而有繼承性,能夠滿足本科以及更高層次的教學需求。
計算機系統結構課程與相關課程共同構成的教學體系如圖l所示。該體系所包含的知識應當涵蓋于計算機專業學生應具備的知識體系中,其中虛線以下部分是針對本科2-4年級學生開設的課程,虛線以上部分是針對本科以上層次開設的相關課程,其中灰色部分課程是與計算機系統結構課程聯系最為緊密的課程群。
從系統層面構建知識體系有利于高年級學生將所學知識立體化,形成科學完整的知識體系;注重課程之間的融合與銜接能促使學生真正做到融會貫通,領略到計算機專業最核心、最本質的內涵。
3、教學內容劃分與學時安排
以課堂教學為主導的教學活動中,教學內容對學生學習興趣的培養至關重要,因此有必要對教學內容進行精心合理的設計。
目前解放軍信息工程大學計算機系統結構課程的教學分為3個不同層次:一是計算機專業本科必修課程;二是針對研究生階段的高性能計算機體系結構;三是面向非計算機專業(電子工程專業、芯片專業等)開設的計算機系統結構選修課程。教師應當針對不同授課對象適當調整教學內容的學時安排,通過查閱網上公開資源,將解放軍信息工程大學針對計算機專業本科開設的計算機系統結構教學學時安排與美國加利福尼亞大學伯克利分校(UC Berkeley)、美國威斯康星大學(WISC)、國防科技大學等進行對比,對比情況見表2。
從表2可以看出,我們對教學內容的劃分與各大名校相比較為一致,結構較為合理。其中國防科技大學和解放軍信息工程大學的高級專題主要是介紹多處理機系統、機群系統的基本工作原理,為研究生階段的后續課程學習打下基礎。美國加利福尼亞大學伯克利分校針對本科生開設的高級專題部分占到總學時數(60學時)的20%且內容豐富,主要講授GPU體系結構中的數據級并行、多核結構下的線程級并行及相關內容,對專題的拓展程度較為深入。美國威斯康星大學對計算機系統結構課程僅就本科生階段分為3個層次,總學時70學時,隨著課程不斷進階,教師對講授內容的延展程度和深入程度不斷加強,高級專題涉及計算機系統的保護與安全、并行算法、并行檢測的原則、矢量化編譯器、互連網絡、陣列處理機、多處理器的同步、數據一致性、數據流計算機和其他特殊用途的處理器結構等一系列知識。
解放軍信息工程大學自2012年針對計算機系統結構課程實施教學改革以來,把該課程的實驗部分集中在寒暑假實踐周進行,將課堂講授部分學時壓縮為36學時。與國防科技大學相比,尤其是與國外名校相比,我們更注重基礎知識的教學,高級專題部分所占比重較少,計算機專業的其他課程中也存在類似情況。
4、面向系統能力的教學內容設計
計算機系統結構課程由于涉及多門計算機專業的軟、硬件課程,知識體系龐大,各門課程的教學內容交叉多,對講授該門課程的教師要求很高,不僅要熟悉該課程內容,還要準確把握相關課程尤其是課程間的教學融合點。endprint
計算機系統結構介紹了計算機系統的內部工作原理以及軟硬件分界面的權衡策略,對計算機的整體性能進行評價和改進,從而建立計算機軟硬件整機的概念。美國普渡大學fPurdueUniversity)計算機科學系資深教授科默fDouglasE,Comer)博士曾經在他的著作中指出:計算機系統結構課程將計算機軟硬件知識統一起來,在許多計算機科學(Computer Science)的教學計劃中,計算機系統結構是惟一一門能讓學生接觸到與編程相關的計算機結構方面的課程。
表3列出了計算機組成原理、計算機系統結構、計算機操作系統等課程的教學融合點,同時將不同課程的授課內容進行橫向對比,旨在找到核心課程之間教學融合點的區別與聯系,使得課程銜接更加順暢,教學重點更加突出。
由表3可以看出,計算機組成原理(CP)強調基本運行原理,計算機系統結構(CA)強調性能優化方法,而操作系統(0s)則側重從系統軟件角度管理計算機軟硬件資源;Os多用軟件的方法解決問題,CP則從硬件的角度思考問題,cA在軟件和硬件之間權衡考慮后取一個折衷,討論具有最佳性價比的軟硬件資源分配方法以及軟硬件界面的劃分。
比如,教師在cP中講三大部件連接結構時應該在細化部件講授的基礎上講清楚最根本的全局通路,在CA中講結構時應該屏蔽硬件細節,重點討論系統全局結構和優化方法。如果忽視全局概念,就容易陷入模塊化講授的誤區,導致銜接出現斷層。
再比如,CP中在匯編級講清指令集接口,講清CA中匯編級的描述與cP的關系,而在cA中則要講清高級語言、編譯、操作系統和硬件結構的關系以及性能分析中各方面帶來的影響,否則容易令學生對系統軟件層面產生誤解,弄不清流水線硬件結構與指令集的關系。
教師在講授時應采取不同的策略,從而達到不同的教學目的,面向系統能力的授課對教師本身就是一種挑戰。學生在教師指導下將新的教學內容與之前所學課程的教學內容聯系起來,從而更容易把握關鍵點,在已經熟知或略有了解的知識領域換一種角度和思路展開分析和研究,提高學習興趣。
面向系統能力進行教學內容設計可以讓學生更多地了解學習該課程的意義。計算機系統結構課程中的內容有利于學生理解程序設計中不同選擇和取舍帶來的影響,從而提高程序的效率。學生通過學習硬件工作原理可以改善編程的過程,能夠更迅速地查明故障來源,從而減少程序中的錯誤,而理解計算機的工作原理與系統結構則有助于學生今后從事系統級的程序開發或參與設計一個真實的計算機系統。
5、結語
教師總結教學中的問題并加以思考,有助于全面了解教學過程。高校中的教與學可以看作是一種學術活動,教師需要不斷地對學生以及學生的學習情況進行研究,不斷做新的嘗試,與學生共同完成教與學的全過程。在教與學的互動過程中,教學內容對學生學習興趣的培養、學習熱情的激發、學習效果的正向影響都起到至關重要的作用,如何設計科學合理且有吸引力的教學內容,值得我們思考并不斷探索。筆者從系統觀角度出發研究計算機系統結構課程教學內容的設計,在教學內容的完整性及與前沿領域的結合方面尚有不盡完善之處,希望能夠與同行分享并共同探討。endprint