計算機系統結構課程論文
計算機系統結構課程在高校計算機專業培養中是一門重要的本科高年級基礎課,一直佔有很重要的位置。下面是小編給大家推薦的,希望大家喜歡!
篇一
《計算機系統結構課程教學中的困境與思考》
摘要:分析計算機系統結構課程教學中存在的困境,提出解決思路,闡述怎樣更“有意義”和更“系統地”呈現教學內容,怎樣在課程中體現前沿技術,怎樣開展討論課,同時指出教學的關鍵是內容的組織。
關鍵詞:計算機系統結構;教學困境;教學內容;教學模式;討論課
計算機系統結構課程在高校計算機專業培養中是一門重要的本科高年級基礎課,一直佔有很重要的位置。它主要圍繞計算機結構中整體及各個部分的優化技術以及量化分析方法,將計算機組成原理、編譯技術、作業系統、高階語言以及組合語言等軟硬體知識相互貫穿,幫助學生建立計算機系統的完整概念,其重要性是不言而喻的。無論以後從事的是硬體還是軟體設計,這門課都能幫助學生理解軟硬體的關係,在軟體設計中理解硬體的結構與發展趨勢,同時設計硬體時瞭解軟體的能力與缺陷。這樣的一門課如果真正發揮作用,對計算機專業學生日後儘早適應本領域工作有很大的幫助。而現實情況是,這門課一直以來都是公認的難教、難學、枯燥無趣,真正將其講好講透並不容易。隨著近十年國內廣大教師的努力,這一現象有所改善,但還是存在不少困惑,並未完全體現出該課程的作用。
1.教學困境淺析
教學困境的存在與我國計算機軟、硬體技術落後於美國等先進國家有很大關係。雖然現在我國在超級計算機的設計以及自主智慧財產權處理器晶片的設計上有了長足進步,但在很多方面還存在差距,有些方面的積累幾乎為零。在這樣的情況下,高校的計算機教育更需要正視這個現狀,並盡力從人才培養這個層面為改善這種落後面貌而努力。
1.1難教的原因
首先這門課對授課教師的要求比較高。教師需要對計算機系統整體設計有很深的理解,通曉軟、硬體相關的結構、編譯、作業系統等多方面知識,並能將它們融會貫通。而實際上,很少有高校教師真正設計過計算機系統,甚至接觸過系統級軟體設計的人都比較少。另一方面,找到一本合適的教材也比較困難。最為經典的教材是由美國的Hennessy和Patterson合編的《計算機系統結構——量化研究方法》。這是一本非常好的參考書,但作為教材,對於國內讀者來說,由於語言上的障礙,英文版的教材可能不能盡得其妙;而且由於諸多翻譯上的弊病,中文版的國外教材也不理想。我國本土教材可能存在著以下幾種困境:其一,知識陳舊,系統性不強;其二,近10-20年的技術在闡述上過於抽象,不成系統,難於理解;其三,大而全,有些技術只在特定時期的特定領域出現過,過於冷僻而且複雜,與其他部分的知識毫無聯絡。
教材的困境也反映了難教的現實。隨著新技術的湧現,教材總是落後於現狀。並不是說,我們將近年來該領域有影響的論文看一遍,就可將它們拿到課堂上講。一方面,在眾多新技術中,如何甄別出哪些是有發展前景?哪些又只是曇花一現?另一方面,如果未在該領域或方向上有較為深入的研究,要透徹理解這些新的技術也存在困難。如果只是泛泛地講解新的技術名詞,念念論文的摘要,為的是向學生或聽課的領導炫耀一下,這可能是一種不負責的做法。計算機系統結構課程需要系統的知識體系,那些無法與現有體系相關聯的技術,講起來益處不大。
1.2枯燥難學的原因
學生難學只能在教師身上找原因。因為沒有教不好的學生,只有不會教的老師。原因可能有幾個方面:首先,早先選用的教材,知識較為陳舊,50年前的技術離現實較遠,學生不知上課講的東西有什麼用,教師講起來其實也覺無味。這方面大家已經意識到並有了很大的改善;其次,有些先進的技術或演算法本身不是很好理解,需要學生集中精力聽,並積極思考才能有所領悟;再者,由於計算機系統結構所涵蓋的內容過於豐富,教師在講解時必然會將其簡化和抽象,這使得學生在學習時有時會感到枯燥。
1.3解決問題的思路
作為該領域的教師,只有承認困境,正視現實,才有可能找到解決問題的方法。最為重要的是教師要有改善現狀的強烈願望和責任感。下面筆者將從內容組織、教學方法以及教與學互動幾個方面給出自己教學中的做法與感受。
2.內容的組織
內容的組織是核心。筆者認為教學過程中真正吸引學生的是內容,因為有意義的教學內容本身就有吸引力。學生對有意義的知識本能地有著較強的學習興趣,教師只需要將知識系統地呈現給他們即可。
2.1教學內容的內在邏輯性與現實性
關鍵是教師如何讓內容“有意義”且“系統地呈現”。這兩點是關聯的,一方面,知識與現實要有關聯,這樣就有了意義和價值;另一方面知識要體現前後的邏輯性,這就是系統性。
比如,對於處理器結構,一般會講解指令流水線的工作原理、效能分析及流水線相關知識點。而有一些教材在講指令流水線時,只用偽指令***用算術操作符表示***,這部分內容本來就抽象,指令也沒有具體的形式,使學生很難理解指令流水線的關鍵思想。因此首先給出一個精簡的MIRS指令集是相當有益處的,當然也可以是任何其他的精簡指令集。一方面,學生能夠直觀地體會前面講解指令系統設計中諸多抽象的原則,同時也更容易理解在指令流水線中為什麼這麼設計。在講解後續指令流水的相關及衝突時,具體的指令形式也有利於教師講清楚各種衝突問題。只有搞清楚問題是怎麼出現的,才可能理解後面的旁路技術或衝突檢測方法等;只有對分支指令在流水線中的衝突有了比較直觀的理解,後續的靜態分支預測、動態分支預測、硬體推測執行等才有可能變得有意義。
在講完流水線技術的原理、效能評價和衝突及其解決方法後,這一章似乎可以結束了。但是如果在最後加上流水線的實現這一節,會是一個非常好的處理。給出具體的一個指令流水線的資料通路,並給出不同指令在每一流水段的操作,試圖引導學生給出旁路檢測及控制的方法,通過設計多路選擇器的控制訊號來理解流水線設計中的旁路實現。這部分內容引領學生直觀理解指令流水線的實現,還將前面學習的計算機組成原理中的控制器設計內容聯絡起來,讓設計的計算機更進一步接近現實中使用的機器結構。
網際網路絡部分內容的組織一直是比較令人費神的,教學效果不好。一部分教材只是介紹了網際網路絡的基本概念及網際網路絡的經典拓撲結構等。就算是由美國的Hennessy和Patterson合編的《計算機系統結構——量化研究方法》的第三版,對這部分的組織也不是很好。最主要的問題就是網際網路絡的範疇非常廣,關鍵是如何在計算機系統結構中介紹其中的互聯。計算機網路課程中介紹過的網路介質、報文格式、包緩衝區、擁塞控制等知識,在這裡並非用不上,而是在此處大而全地介紹不可能將真正重要的問題講清楚,篇幅也不允許。所以大而全的講計算機內部、計算機之間的各種網路以及網路所涉及的方方面面,教學效果並不好,而簡單地介紹網路的拓撲結構及其效能引數等又比較抽象,容易讓人不知所云,且與整個知識體系關聯不大,不能起到將系統的軟硬體知識貫穿起來的作用。因此我們可以首先將網際網路絡的範圍限定一下,比如在計算機系統內部元件的互聯,以及小、中規模的多處理機系統中的互聯,然後將並行問題及並行演算法、並行程式設計提供的通訊原語與底層的互連結構相互關聯,講清為什麼要這樣互聯,適合解決什麼樣的並行問題;講清當前主流的多處理機系統中相應的資料網路、控制網路及管理網路的結構與軟體使用情況。講清或許存在一點困難,不過起碼要將這些知識串起來,並與作業系統及並行程式設計的相關知識關聯起來,這有很大的好處。
2.2拉近課堂與現實研究的距離
筆者認為對新技術的泛泛介紹不是沒有意義,但對於高年級的本科生來說,更為重要的是讓他們通過上這門課,逐步瞭解現實科研在哪裡,以及與課堂上講的知識距離有多遠。通過教師自身的研究經歷,將課堂上講的知識逐步引到現實科研或本領域當下研究的熱點問題中,才是真正有用的。中國科技大學網站上有唐錫南博士的相關講座,該講座是針對體系結構方向的研究生及高年級本科生而開的,授訓物件都上過系統結構這門課,教學目標是對該課程的掌握作進一步地提高。該講座在網上反響挺好,筆者比較受啟發,也許這對上好計算機系統結構課也是有幫助的。比如在講多處理機系統中的Cache一致性的問題時,他逐步引到具體實現中的一些困難,問題層層展開,有些問題可能需要一些手段來解決,有些問題恐怕還是難題。學生學習最重要不是學到答案,而是學會發現問題在哪兒以及解決問題的思路和方法,當他們瞭解到該領域前沿的研究思路時,必將增進自己未來解決問題的信心。比如,在講多處理機系統時,從相應原理開始講解,然後是現實硬體實現中可能有的變化及原因、並行軟體執行中出現的問題,最後將硬體追求卓越效能與軟體要求正確性及友好性的衝突展現在學生面前,再說明軟硬體相互依存的道理,這比直接說明軟硬體關係具體而生動,聽起來也有趣。簡明地講清問題之間的關係,解決的程度,未解決的問題及難點所在,這對於開闊學生思路、增加學生對該領域探索的興趣都比較有效。
3.變化的教學模式
傳統的教學模式並沒有過時,但有時新的模式可以發揮更好的效果。其次,一成不變的講課模式從學期開始直至學期末容易令人厭煩,所以探討變化的教學模式對於提高教學效果顯然是有意義的。
3.1實踐環節的介入
實踐環節可以與課堂講授相互穿插,不需要將理論部分全部講完再安排。比如講流水線及指令級並行時,適時地將相應的指令流水線的模擬器介紹給學生,讓他們去體會指令的時空概念以及指令問的各種相關的影響,教師輔導時多問學生為什麼。再比如講儲存層次時,Cache優化技術是其中比較重要的內容,這時也最好讓學生實際使用相應模擬器去測,通過改變其引數來比較相關效能,可以引導學生通過分析複雜系統模擬器的結構來了解相應原理,或通過實現過程相對簡單的模擬器來體會實現過程中的細節問題,這些都是比原理本身更為有用的學習體驗。
3.2難一點的議題留給討論課
對於高年級的本科生來說,他們的精力相當旺盛,自身的學習能力也比剛入學時強很多。此時將一些需要思考、理解的內容交給他們自學和交流,其效果可能會令人大吃一驚。通過自學,很多學生在課下花了不少功夫,並在學生間進行了充分的討論和互助。課上討論時,可以讓學生主持,這會讓學生興奮,而且下面的學生往往很活躍,想通過為難一下上面的學生來展示一下自己。每一位學生其實都有著相當強的自尊心,所以這種形式會促進學生問的討論。經驗表明,往往平時表現一般的學生這時都有相當好的表現,他們自己也比較自信。如果學生說錯了,不要馬上說出來,而是將問題解析一下再次拋給大家,看看大家有什麼想法,慢慢地大家都比較放鬆,讓問題在討論中逐步接近解決。
這樣的討論模式有時也會出現教師無法預料的情景,比如學生提出一些教師也未考慮過的問題,此時可能會給教師帶來一些緊張感。遇到這種狀態時,教師首先可以憑藉平時深入的備課,稍作思考***可能5~10秒***,問題可能就得到可以解決。這時討論就變得更為引人入勝,學生的積極思考實際影響了討論的導向,這種情況沒什麼不好。教師要有承擔風險的勇氣,同時還可享受到當堂弄清某些事情的興奮。另一方面,教師需要逐步積累處置這種情景的經驗,自己要意識到,同時試圖讓學生也意識到,有一些問題需要仔細的考慮,並不能馬上得出結論,還有一些問題是一些開放的問題,並且承諾關於此問題教師經過一些時間的思考***可能一個課間休息,或下一次課***後,一定會給大家一個負責任的答覆。這樣學生會覺得討論有趣,不會害怕犯錯而拘謹;教師也在這個過程中感受到學生更為積極的學習狀態,並因此受到鼓勵。
4.瞭解並督促學生
教學的過程是教師與學生互動的過程。教師的每一次教學過程都不會一模一樣。他要根據教學物件的不同,做出相應的內容調整,也要根據每堂課學生的狀態做出相應的節奏調整。只有學生能夠接收、願意接收,教學才可能有效。
適時的提問可以讓學生適當地緊張起來,但對於答錯或說不出結果的學生,不要批評,讓其周圍的學生代為回答,然後一起坐下。對於講解中的一些重要部分也可以通過提問來引起注意,經常的提問讓教師更瞭解每個學生,同時學生與教師之間的關係更加緊密。作業的及時檢查也是必要的,每次課前可以在黑板上將一些普遍性的問題進行分析、講解。教師對作業的及時反饋可以提高學生的積極性,另一方面對於知識的複習與融會貫通都有幫助,學生從中可以體會到—個教師的責任心,這是非常重要的。教師的工作態度會影響學生,特別是有影響的、有一定聲望的教師,他們的教學態度對學生的影響可能持續一生。
5.結語
教師要相信學生的潛力無限,同樣相信自己,能夠經過堅持不懈的努力,引領學生走向更為廣闊的空間。通過5年來對該門課程的教學體會,以及近20年的相關課程教學經歷,筆者得到了一些寶貴的經驗,同時也不斷髮現自己的不足,此處給出的一些想法,不一定成熟,不妥之處還望同行批評指正。
點選下頁還有更多>>>