陳金兒 王讓定 林雪明 石守東 杜呈透
摘要:本文在IEEE/ACM關于計算(Computing)學科本科教學參考計劃CC2005(Computing Curricula 2005)指導下,針對我國高校本科計算機專業建設的現狀,提出基于CC2005的“計算機組成原理與結構”課程內容體系的改革,采用整體“自頂向下”、細節“自底向上”的方法,從整機到部件、從原理到芯片的方式組織課程內容,并探討了與課程群內部其他核心課程、選修課程之間的關系。
關鍵詞:計算機組成原理與結構;CC2005;課程改革
1引 言
WTO關于教育服務的條款對高等教育發展將產生直接影響,而經濟結構調整與就業結構變化也將對高等教育發展產生更重大的影響。隨著計算機和通信技術近十年來的蓬勃發展,中國開始進入信息化社會,以信息化帶動工業化,全面建設小康社會,已經成為我們的基本國策和全國人民共同奮斗的宏偉目標。
在這樣的歷史背景下,重新審視高等學校本科計算機專業的課程改革具有十分重要的意義。目前,隨著網絡化和信息化的發展,計算機的軟件領域課程,尤其是網絡和網絡應用類課程,越來越得到各高校的重視,國內很多高校的計算機專業逐漸轉變為“軟件工程”和“計算機科學”方向,過分強調軟件與應用,而缺乏計算機體系結構、計算機組成與結構等硬件方向的培養。但是,從就業市場反饋的信息看,計算機軟件人才已經供大于求,而熟悉硬件設計的人才則供不應求,年薪也遠遠高于同等的軟件人才。不熟悉計算機組織與結構、不了解計算機體系結構的軟件人才,也尤如建立在空中的樓閣,沒有基礎,從小而言無法滿足人才市場的需求,從大而言無法擔負我國科技興國,在國際信息化競爭中立于不敗之地的重任。
“計算機組成原理與結構”課程要求掌握計算機系統各個部件的組成原理,最終達到從系統、整機的角度理解計算機的結構與組成,是國內大多數本科高等學?!坝嬎銠C科學與技術”專業的專業基礎課,是計算機硬件與結構方向非常重要的一門課程,這門課程的建設與改革直接關系到人才培養中計算機硬件與結構方向教育的成敗。
2Computing Curricula 2005
IEEE/ACM一直在跟蹤工業界對計算領域人才需求和教育界對人才教育培訓的需求、狀況、發展和存在的問題,并于2001年給出了具有指導性意義的計算學科本科教學參考計劃(Computing Curricula 2001,簡稱CC2001[1])。我國國內專家學者對其進行了詳細研究,并于2002年公布了中國計算機科學與技術學科教程2002 [2] (China Computing Curricula 2002,簡稱CCC2002),在國內外也產生了很大的影響。繼CC2001推出后,經過幾年的跟蹤研究、意見反饋和計劃評議,IEEE/ACM在總結前期工作的基礎上,對原“CC2001”給出的四個專業方向進行了修改和擴充,并給出了新的評述,于2005年4月發布了CC2005的草案,并于2005年9月30日發布了最終版的Computing Curricula 2005[3]。
IEEE/ACM在CC2005中將計算學科分為五個專業,分別是計算機工程(Computer Engineering-CE )、計算機科學(Computer Science-CS)、信息系統(Information System-IS)、信息技術(Information Technology-IT)和軟件工程(Software Engineering-SE)。與CC2001相比,在CC2005中第一次出現了“IT信息技術”專業。
針對每個專業的特點和要求,CC2005提出了支撐每個專業的知識構架,由底向上分別是:計算機硬件與結構(Computer Hardware and Architecture)、系統基礎(System Infrastructure )、軟件方法與技術(Software Methods and Technologies)、應用技術(Application Technologies)信息系統結構(Organizational Issues & Information Systems)共5個層次。每一個層次又分“趨于理論”與“趨于應用”兩個方向,計算機學科知識空間圖如圖1所示?;谏鲜鰧哟?,CC2005對每個知識層次的課程體系、知識點進行了詳細的規劃。
在CC2005中,計算機工程CE、計算機科學CS、信息系統IS、信息技術IT和軟件工程SE這五個不同的專業對上面5個知識層次的要求是不一樣的。例如,計算機工程CE專業和信息技術IT專業的知識需求如圖2和圖3所示??梢钥闯?,CE專業更加注重計算機硬件與結構以及系統結構等計算機底層方面的理論和應用知識,而IT專業則注重系統基礎、軟件方法與技術、應用技術以及信息系統結構等方面應用型的知識。
CC2005明確指出計算機科學(CS)和計算機工程(CE)專業,都應該掌握計算機底層的“計算機硬件與結構”方面的課程知識,在CC2001中,專門有一門編號為“CS220{C,S,T}.”,名稱為Computer Architecture的課程,對應國內普通高校本科“計算機科學與技術”專業中一般課程名稱為“計算機組成原理與結構”或“計算機組成原理”,為了統一,在本文中稱為“計算機組成原理與結構”。

圖1 計算機學科知識空間圖

圖2 CE專業對計算機各層次知識的要求

圖3 IT專業對計算機各層次知識的要求

圖4CC2005課程編號體系

圖5CC2005課程層次體系

圖6新穎的教學組織方法

圖7計算機組成原理與結構、匯編語言與接口技術之間的關系
3 課程地位
在CC2005中,根據上面的知識空間構架,對每一門課程內容、知識要點、課時安排等都進行了詳細的設計與組織,并且對課程的地位、教學方法等也進行了描述。這個可以通過課程編號來確定,如圖4所示。課程編號中表示了課程級別、知識范疇、教學方法和課程序號等各個方面。
課程分為四個等級,分別是入門課程、中級課程、高級課程和具體的項目課程,不同級別的課程采用不同的教學方法,如圖5所示。比如入門類的課程一般都是介紹性質,根據不同的側重點,采用的教學方法有目標優先、功能優先、算法優先、硬件優先、知識廣度優先等方法。而中級課程一般是本科計算機科學專業對專業方面的要求,采用的教學方法包括基于主題的講授、基于系統的講授、基于Web的講授等。另外,高級課程是碩士要求的附加課程。
計算機組成原理與結構課程在CC2005中對應的課程編號為“CS220{C,S,T}.”表示這是一門“計算機結構與操作系統”方面的中級課程,采用精簡的、系統的、主題教學方法相結合的教學方法。根據編號CS220分析,計算機組成原理與結構是這個方向最基礎和重要的一門課程。它的后續課程是CS221W計算機操作系統(Architecture and Operating Systems)、CS222W(Architectures for Networking and Communication)計算機網絡與結構。
在國內普通高校計算機科學與技術專業本科教學中,計算機組成原理與結構課程同樣重要,是本專業硬件與結構方面的專業基礎課,一般課時為64~80,是硬件方面一門核心課程,是操作系統、匯編語言、計算機系統結構等的先導課程。也是國內學生普通反映比較難學、教師講課比較難講的一門課程。
在我?;贑C2005的“平臺+模塊”教學改革與課程群建設中,計算機組成原理與結構是計算機學科“硬件與結構”課程群的兩門核心課程之一(另外一門是匯編語言與接口技術),是計算機學科平臺的必修課程之一,5個學分,85課時。同樣具有十分重要的課程地位。
4 內容組織
根據CC2005和CC2001,計算機組成原理與結構的經典知識點包括:數字邏輯、數據在機器中的表示、匯編級機器組織、存儲組織與結構、人機交互、機器功能結構、多處理機高性能系統、網絡與分布式系統結構等,后兩者是選修內容。
“計算機組成原理與結構”課程重點介紹單處理器計算機的組成原理與結構體系,包括數據在機器中的表示、總線系統、外圍設備接口、存儲器組織與結構、指令系統、中央處理器(含運算器與控制器)、流水與并行處理等內容。其中重點是數據在機器中的表示、總線系統、存儲器組織與結構、中央處理器等內容。外圍設備接口、指令系統等作簡單介紹,關于這部分內容重點在“匯編語言與微機接口技術”中體現。流水與并行處理也作簡單介紹,進一步的內容在“計算機系統結構”選修課程中。
4.1傳統的教學組織
在傳統的教學方法中,上述內容的組織一般采用從基本原理->零件->部件->整機->系統的教學思路,從運算方法與運算器、存儲系統、指令系統、中央處理器,到總線系統,組成計算機整機,再講述外圍設備與I/O系統,構成完整的單機計算機系統。在每一個部件的講述過程中,都從最基本的原理開始,以運算方法與運算器為例,從最開始的數據在計算機中的表示(補碼、原碼、反碼、移碼、定點、浮點數的表示),到各種定點、浮點運算方法,再到全加器、可控加減法單元、一位ALU、四位ALU、先行進位ALU,一直到浮點運算器?;谶@樣教學思路,最大的優點是邏輯清晰。但是從實際教學效果來看,由于采用這種“自底向上”的方法,學生在學習前面局部知識的時候,缺乏整機系統概念,不能融會貫通,產生“教什么,學什么”而不知“為什么”的現象。學到整機、系統概念的時候,前面學的知識有遺忘和不能貫通的現象。
4.2 新穎的教學內容與教學方法組織
針對本門課程的要求和特點,我們提出整體“自頂向下”,細節“自底向上”的教學組織方法,如圖6所示。一開始就給出計算機系統的概述,然后講述現代系統總線標準,通過系統總線連接了計算機的三大組成部分:外圍設備與I/O技術、存儲系統、中央處理器。這樣可以讓學生有非常直接、整體的把握,為接下去學習掌握每一個部分的組成原理奠定基礎、把握總體方向。以中央處理器為例,中央處理器通過CPU內部總線,連接了寄存器、控制器和運算器,在講述具體的運算方法與運算器的時候,涉及到具體細節知識點的時候,我們還是采用傳統的“自底向上”的教學組織方法,因為在涉及到具體原理的時候,必須遵循“循序漸進”的方法,不然沒有足夠的基礎知識,學生無法理解與掌握。例如,如果沒有數據表示與運算方法的基礎,學生不可能理解定點ALU與浮點運算的原理與結構。
因此,在分析了CC2005對計算機組成原理與結構知識點要求的基礎上,根據整體“自頂向下”,細節“自底向上”的教學組織方法,我們將計算機組成原理與結構課程的內容重新組織如下:
第1章 計算機系統導論 概述計算機系統的分級層次的概念,為以下各章學習奠定基礎。
第2章 系統總線以總線為切入點講解現代計算機的結構以及各個部件的互連,重點以PCI總線為例介紹總線上的相關技術。
第3章 外圍設備與I/O接口技術 討論現代計算機的外圍設備接口方式、I/O技術,以及目前受關注的USB標準和IEEE1394標準。
第4章 存儲器組織與結構討論計算機內部存儲器以及計算機外部存儲器的原理與組織,沿存儲元件到存儲器件到存儲體系的思路進行漸進式剖析。
第5章 指令系統討論計算機的指令系統的發展、設計,指令格式以及RISC指令系統等。
第6章 中央處理器討論CPU的組成結構,重點包括ALU的原理與運算方法、控制器原理、微程序級設計、典型CPU的組織與結構
第7章 流水與并行處理器討論先進的流水CPU與并行CPU
4.3一體化的實驗與課程設計
計算機組成原理與結構作為“硬件與結構”課程群中兩門核心課程之一,其實驗與實踐教學已納入整個課程群的一體化實驗建設計劃中。按照整個課程群的建設情況,設計一體化的實驗環境與實驗內容,本課程將計算機組成原理與結構、匯編語言與微機接口等課程的實驗有機地結合在一起,創建良好的實驗環境,靈活運用實驗室、實習基地、開放式實驗室等多種手段,盡量多地為學生創造條件,同時通過實驗課程、開放實驗、主題報告、課程設計、競賽等多種手段和形式培養學生的研究能力與團隊精神。
設計必修核心實驗5個,選修實驗2個,主題報告2個,課程設計1個,如下:
必修核心實驗(實驗課程):
1. 運算器組成實驗
2. 雙端口存儲器原理實驗
3. 數據通路實驗
4. 控制器實驗
5. CPU組成與機器指令執行實驗
選修實驗(開放實驗):
1. 中斷原理實驗
2. DMA原理實驗
主題報告:
1.現代總線的標準分析概述(PCI、EISA、Futurebus+)
2.高速串行接口技術USB和IEEE1394分析比較
課程設計:
采用微程序控制器模擬計算機的設計與調試
上面五個必修實驗是本門課程的核心,要求每一個學生在規定的實驗課程時間內獨立完成,主要培養學生的獨立思考能力和對課程原理的掌握、應用。兩個選修實驗設置成開放實驗形式,可以與匯編語言與微機接口技術課程的實驗很好地結合起來,體現課程群內實驗一體化的精神。主題報告結合了最新的計算機科學技術,也同樣結合了課程群內部其他課程內容,要求學生通過圖書館、網絡、書籍等多種渠道獲得知識,并加以提煉,以主題報告的形式呈現,體現學生自主學習能力的培養。課程設計也同樣采用開放形式,是對整門課程知識的融合貫通,要求學生在幾周時間內,將所學到的知識綜合運用,完成整個設計。同時還培養學生的分析問題能力、交流能力和良好的團隊精神。
5 進一步的思考
與課程群內另外一門核心課程的關系
計算機組成原理與結構課程的建設與改革不是孤立的一門課程建設,而是在我校課程群建設的大背景下進行的。作為課程內容的組織與建設,最主要的一個問題是如何處理前導和后續課程的關系,既不能有過多的內容重復,又不能在知識點上產生脫節現象。計算機組成原理與結構、匯編語言與接口技術作為本課程群的兩門核心課程,在內容上勢必有交叉之處,計算機組成原理與結構側重單CPU的計算機組成原理,外圍設備與I/O接口技術僅是簡單涉及,簡要概述;匯編言語與結構技術在講述匯編語言原理的基礎上,重點討論外圍設備與I/O接口技術。兩者互有交叉,但不重疊。他們的關系如圖7所示。
與課程群內選修課程的關系
計算機組成原理與結構作為“硬件與結構”的核心課程,包括了本課程群對重點掌握知識的要求,但是受課時與內容組織的限制,不可能涵蓋所有內容。在CC2005中,關于這一點有專門的考慮,設置了編號為CS32*的選修課程。像流水技術、指令級并行技術等更多地在“計算機系統結構”這門選修課中涉及到。
課程內容更新
21世紀,作為信息技術的載體之一,計算機科學發展迅速。如何根據計算機學科發展以及信息科技發展情況,及時、動態地調整本課程教學內容,及時體現最新發展技術是本課程建設的一個重要方面。比如在存儲系統中,SRAM和DRAM存儲體是比較經典的,但是隨著近年來Flash Memory的普及應用,這方面的內容必須要及時納入教學范疇,這就需要課程的建設者持續地進行課程建設與改革。
6結論
如何在CC2005架構下,依據我國計算機專業教育的實際情況,將CC2005的知識點體現在教學內容中,是目前我國高等教育工作者的研究方向。本文在CC2005引導下,提出了“計算機組成原理與結構”的課程體系建設以及改革方案,希望拋磚引玉,與各位同行共同探討計算機組成原理與結構的教學建設與改革。
參考文獻
[1]CC 2001 Curriculum Guidelines for Undergraduate Degree Programs in Computer Science .http://www.acm.org/education/curricula.html
[2]中國計算機科學與技術學科教程2002研究組.中國計算機科學與技術學科教程2002.北京:清華大學出版社,2002,8.
[3]Draft of Computing Curricula 2005, http://www.acm.org/education/curricula.html.