姜晶菲 肖 儂 王志英 陸洪毅


摘要:“計算機體系結構”課程是計算機科學與技術學科計算機系統結構專業的一門重要的專業基礎課、必修課,是全國精品課程。本文詳細介紹了“計算機體系結構”的課程建設概況、教學內容特點、教學體系、實驗設計,并探討了課程教學內容改革的方向和做法。本課程建設始終堅持緊跟國際一流、注重實踐性教學、建立完整的培養體系等思路,取得了很好的建設效果。
關鍵詞:體系結構;實驗設計;內容協調;教學內容更新
中圖分類號:G642 文獻標識碼:B
1引言
“計算機體系結構”課程是計算機科學與技術學科計算機系統結構專業的一門重要的專業基礎課、必修課,是我校重點建設的骨干課程,為2005年全國、全軍精品課程。使能技術的進步極大推動計算機體系結構的創新,計算機系統結構是我單位開展科學研究的重點方向,也受到我單位工程任務的需求推動和未來業務部門對綜合人才的需求推動。多年來,該課程結合我單位科研優勢,緊跟先進技術發展,始終保持課程建設整體先進水平。
圖1顯示了本學科“計算機系統結構”教學體系中的骨干課程,“計算機體系結構”為其中的重點和綜合課程,該課程在知識培養的角度,從全局和系統的角度介紹計算機系統設計所必須了解與掌握的專業知識,培養學生的系統設計、系統分析、系統集成和系統評估的能力;在人才
培養的角度,以培養能夠設計計算機系統的專業人才、能系統應用計算機系統的專業人才、能全面評價計算機系統
的專業人才和能從體系結構的角度管理計算機系統的專業人才為指導目標。
本文根據本課程建設內容及問題展開探討,以該課程本科教學為核心,詳細介紹課程建設情況及改革思考,以求交流同行經驗,促進課程建設更快發展。
2課程內容和建設特點
“計算機體系結構”本科教學時長為56學時,內容包括計算機體系結構基礎概念及發展、計算機指令集結構設計、流水線技術及指令級并行高級技術、存儲層次、輸入輸出系統設計、向量處理機及多處理機系統、課內實驗共八部分內容,其中重點講授內容為指令級并行ILP技術和存儲層次。前者是計算機體系結構中的經典問題,流水、并行等設計思想在結構設計中隨處可見;后者為體系結構設計中的瓶頸問題,存在很多軟硬件優化折中方法,也是系統成敗的關鍵。
本課程內容以軟硬件接口——指令集結構為開端,強調通過這門課理清軟硬件關系和相互作用;以微處理器體系結構和相關經典技術為主線,強調硬件設計能力和系統軟件分析應用能力的培養;始終貫徹量化方法,強調系統評價能力的培養;逐步增強并行處理內容,緊跟技術發展趨勢,并強調并行處理技術在各類并行結構中的體現(如多核、數據并行處理陣列、可重構陣列等)。
課程教學內容的確定經過多方面論證。本課程與“計算機原理”課程內容銜接,共同覆蓋了ACM/IEEE-CS中“體系結構和組織”相關標準,以及考研大綱所有內容。課程內容更偏重強調培養學生“設計計算機”、“評價計算機”的素養,與國際一流大學UC Berkeley、Stanford、WISC、MIT等以及國內一流大學相關專業接軌,參照國內外權威教學內容,教學內容每年都得到及時更新,科學地處理經典與現代的關系,保持了教學內容的先進性、系統性。
3本碩博培養體系
“計算機體系結構”教學在本學科具有本碩博層次完整的人才培養體系,本專業在本科、碩士、博士三個階段均開設“計算機體系結構”作為必修課,三個階段在教學內容、手段和方法上具有緊密的聯系。
本科階段主要講述單核處理器流水線關鍵技術,要求學生全面掌握流水線、存儲和I/O等計算機體系結構核心內容,強調全局平衡的設計思想和量化分析的方法,主要培養對計算機體系結構的理解和分析能力,具備簡單流水線設計能力。碩士階段主要講述各類指令級并行先進技術和并行處理結構關鍵技術,要求深入流水線設計實現技術和多處理系統高級技術,強調技術的綜合應用、性能和設計復雜性折中,以及量化分析方法。這一階段主要強調設計思想和具體實現技術的結合,培養復雜系統的設計實現能力和綜合分析能力。博士階段主要探討體系結構前沿新技術,在教學上要求研究算法的軟硬件實現和性能平衡,強調具體問題求解中的體系結構綜合設計問題及性能度量,強調系統規劃思想,培養對全系統的設計能力和評價能力。
在實驗安排上,本碩博堅持基于同一硬件設計體系和平臺展開,如本科階段對流水線進行初步設計,碩博士階段強調指令級調度復雜算法的實驗和復雜流水線設計實現等。在教研方法上,本科以講授為主,討論為輔,多以成熟經驗為例,學生成組實驗和完成大作業,強調集體啟發和開放思維;碩士以講授、討論各半,多以教師在研工程為講授實例,學生獨立完成大作業,成組實驗,強調小團隊協同和集中攻關;博士以研討為主,講授為輔,細化研究方向,獨立實驗,強調個體思考和深化研究。
4實驗設計
“計算機體系結構”課程抽象理論較多,因此一直強調實踐教學,課程實驗是學生加深對課堂知識理解,鍛煉綜合運用能力的主要途徑。經過多年摸索,本課程形成了三階分層次實驗體系,詳述如下。
一階實驗內容為基于DLX模擬器設計矩陣乘法算法,并在WinDLX模擬器上對觀察算法流水執行狀態,評估算法性能,針對三大相關對算法進行優化。該實驗由每個學生在4~6個實驗學時獨立完成,旨在全面鍛煉學生流水線分析和應用的能力,加強對流水線關鍵技術的直觀理解。
二階實驗內容為流水線和存儲系統硬件結構設計實驗。該實驗采用Verilog語言設計具有簡單Cache、存控接口等的多級流水線結構,支持基本指令集的運行,得出性能和代價分析。囿于課時的限制,實驗利用2個實驗學時進行要求、環境和設計啟發等的講解,由學生分小組主要在課下完成具體設計。每組學生的基本要求是設計具有多段流水的指控結構,或具有兩級層次的存儲子系統結構,得出正確模擬結果;進一步的要求是完成可綜合的帶有Cache子系統的流水線結構設計,解決相關,進行全面性能分析。該實驗旨在全面鍛煉了學生綜合項目硬件設計能力和創新協作能力。
三階實驗針對有興趣和設計能力的學生成立創新小組來開展,完成基于自研高性能嵌入式并行開發平臺的底層控制和應用開發,包括典型CPU功能及其控制機理分析、基于非易失存儲器的系統啟動流程設計、存儲子系統時序調試和性能評估、典型I/O接口的驅動設計等,該實驗旨在在系統層面上進一步鍛煉學生的軟硬件綜合分析和設計能力。
上述各階實驗能順利展開得益于課程組多年的教學積累和實驗條件的不斷完善,在實驗設計的過程中,我們堅持結合科研工作經驗設計實驗問題,堅持模擬驗證型實驗和設計型實驗有機結合,以適應各個層次學生培養目標,并使課程大作業和實驗題目有機結合,做到知識內容從始至終貫通,在實驗考核的過程中,堅持以多種多樣的方式評價實驗效果,如現場運行檢查、實驗報告互評等。
從實施效果來看,學生參與實驗的積極性很高,學生的創造力和綜合思維能力得到了極大的啟發,學生主動學習和研究的熱情高漲,對本課程達到培養研究和應用綜合性人才的目標起到了很好的推進作用。
5教學改革探討
5.1與“計算機原理”的內容劃分及協調
不斷改革是“計算機體系結構”緊跟技術發展趨勢,適應教學要求的關鍵。國內一些相關專業中,并未在本科階段開設體系結構課,而是在“計算機原理”中涵蓋部分體系結構內容,本專業“計算機原理”和“計算機體系結構”共同覆蓋CCS計算機組織與系統結構要求內容,并進行足夠的深入。如何合理劃分兩門課內容是課程教學組織過程中要關注的主要問題之一。
表1詳細顯示了本專業計算機原理(簡稱CP)和計算機體系結構(簡稱CA)在教學內容上的劃分和目的上的不同。
從表1中看出,兩門課程講授的方面和角度有一定相似,如I/O系統、CPU控制器、存儲部件等。為了分層次、足夠深入和明確地在這兩門課講授清楚關鍵內容,我們對上述內容劃分的思路是:首先,在CP中主要強調基本運行原理,而在CA強調性能優化方法。其次,CP在細化部件講授的基礎上講清最基本的全局通路;CA屏蔽部件細節,重點討論系統全局結構和優化方法,呼應CP所講授的內容,理清關系。這樣可保證兩門課程的一致性和全局概念的的統一避免出現銜接斷層。再次,CA強調貫通原理、體系結構和系統軟件方面的銜接,講清高級語言、編譯、操作系統和硬件結構的關系,及性能分析中各方面的影響,避免對軟件層面的忽視。
5.2教學內容改革
計算機科學與技術是一種知識更新速度快,技術發展非常蓬勃的學科,技術的不斷進步要求課程教學內容的不斷更新,如何在教學內容中體現先進技術,并在有限的課時內協調好經典知識和先進技術的講授關系,是教學改革要關注的問題。
根據新技術發展,近年來我們逐步考慮從以下幾個方面對經典體系結構內容進行更新:
(1) 多核技術:深化并行處理技術的理解;
(2) 虛擬機:為存儲層次內容中“虛存及保護”的深化;
(3) 復雜存儲系統:包括多級存儲層次及新型存儲結構,為存儲層次的深化;
(4) 先進互連技術:為先進I/O、并行處理的關鍵支撐技術之一。
上述每部分內容都是計算機體系結構技術研究的重要方向,內容都很多,怎樣簡化主線,使這些復雜技術與經典體系結構知識點相融合,是教學內容改革的主要任務,我們的做法是:
(1) 講授多核技術從其硬件結構模型、編程模型的挑戰、片上實現的多處理結構而導致的性價折中等方面入手,重點分析多核結構與傳統并行處理結構的異同,以加強對并行處理本質的理解。
(2) 講授虛擬機側重于闡述虛擬機概念及其存儲保護的作用。
(3) 講授復雜存儲系統側重于闡述在經典存儲層次差異變小情況下,網絡化存儲、由新型存儲介質構成的混合存儲結構對性能的影響。
(4) 講授先進互連技術則關注互連通信問題及新型總線對互連結構發展的影響等。
教學內容中對新技術的補充有時是把“雙刃劍”,教學內容既要跟上技術的發展,使知識不致落伍,又要保證教給學生的是立足于經典知識的思維方法,而不是熟練某些技術細節。因此,在內容改革中要立足新技術與經典知識的融合,及思維方法的提煉。
6結語
“計算機體系結構”經過多年的建設,取得了良好的建設成果,形成了由專家教授、青年骨干教師組成的強大的師資隊伍,建立了完善的網上教學系統,依托科研優勢不斷豐富教學內容。在學員評價和后續跟蹤調查中,有學生評價本課程:“站在系統設計師的角度從更宏觀的方面認識了計算機,并加強了對具體設計問題的理解、判斷和把握”、“從科研實例中獲取了豐富的對抽象理論和技術的實踐佐證,感覺受到了科班訓練”;在學生參與的相關創新競賽中,本課程的知識基礎起到重要作用,在大型科研和工程項目中,相關調查反映表明學生體系結構基礎較為扎實,分析問題、解決問題和動手實踐的能力比較高,進入工程和科學研究的速度快。
計算機技術的發展推動著我們需不斷進行課程建設改革,我們希望以往建設方式和做法能繼續給未來的改革提供指導,也能給其他院校的相關課程提供交流借鑒的內容。
參考文獻:
[1]John L. Hennessy, David A. Patterson. Computer Architecture:A Quantitative Approach[M]. 4th ed. San Mateo, CA: Morgan Kaufmann Publishers,2007.
[2] 張晨曦,王志英,張春元,等. 計算機體系結構[M]. 2版. 北京:高等教育出版社,2005.
[3] 王寶恒,肖曉強,張春元,等. 計算機原理與設計[M]. 北京:高等教育出版社,2005.