前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機體系結(jié)構(gòu)方向主題范文,僅供參考,歡迎閱讀并收藏。
Abstract: Parallel computer is the highest point of information technology. How to combine the advantages of kinds of parallel systems structure: the shared memory and distributed memory and explores a new parallel system structure and how to take full advantage of the resource and processing ability of computer have always been the research focus in parallel computer field. Computer virtualization technology can conduct abstract and unified management to resources of physical computers with the advantage of flexible. The paper explores the application of computer virtualization technology, new type parallel computer system structure and the technology idea of taking full advantage of parallel computer resources.
關(guān)鍵詞:并行計算機;計算機體系結(jié)構(gòu);虛擬化技術(shù);虛擬機
Key words: parallel computer;computer architecture;virtualization technology;virtual machine
中圖分類號:TP316文獻標識碼:A文章編號:1006-4311(2010)24-0170-02
1并行計算機發(fā)展進程中存在的兩個問題
并行計算機是指能夠支持并行算法的計算機。并行計算機的處理能力與存儲能力比一般的個人計算機強大得多,因而成為信息技術(shù)領(lǐng)域的制高點。各主要信息技術(shù)強國都舉全國之力,在該領(lǐng)域展開了激烈的競爭,以搶占制高點,爭奪信息領(lǐng)域的主動權(quán)。盡管并行計算機技術(shù)發(fā)展迅速,推廣應(yīng)用也很普及,但是,在并行計算機的發(fā)展與應(yīng)用領(lǐng)域還存在著兩個主要問題,一是并行計算機體系結(jié)構(gòu)發(fā)展滯后,二是并行計算機的資源利用率還比較低。這兩個方面的問題制約著并行計算機系統(tǒng)規(guī)模與性能的進一步提高,也制約著并行計算機的推廣應(yīng)用,亟待解決。
當前,并行計算機體系結(jié)構(gòu)主要有兩大發(fā)展方向,一是以SMP(Symmetric Multiprocessor)為代表的共享存儲體系結(jié)構(gòu),二是以工作站機群COW(Cluster Of Workstation)為代表的分布存儲體系結(jié)構(gòu)。共享存儲體系結(jié)構(gòu)的優(yōu)點是易于編程、整機效率高,缺點是可擴展性差、成本高昂;分布存儲體系結(jié)構(gòu)的優(yōu)點是可擴展性強、成本低廉,缺點是管理和編程困難、整機效率較低??梢娺@兩種主流的并行計算機體系結(jié)構(gòu)各有優(yōu)缺點,而且彼此之間互補性很強。這兩種并行體系結(jié)構(gòu)主導(dǎo)著并行計算機的發(fā)展方向,但是由于其各自的缺陷都很明顯,因而也制約著并行計算機的進一步發(fā)展。如何結(jié)合二者的優(yōu)點,克服彼此的不足,設(shè)計一種既易于編程和管理,整機效率得到充分發(fā)揮,又具有良好的可擴展性和成本優(yōu)勢的并行計算機體系結(jié)構(gòu),一直是業(yè)界的研究熱點之一,研究人員付出了很多努力,但是,成效不夠顯著。其原因是難以有效地融合兩種體系結(jié)構(gòu)的優(yōu)勢特征。
并行計算機的研發(fā)與生產(chǎn)耗費巨大,一般是為了某類特定的高強度計算或大規(guī)模數(shù)據(jù)處理應(yīng)用而研發(fā)和生產(chǎn),并且一般是針對峰值需求來設(shè)計并行計算機的系統(tǒng)性能。但是,在實際應(yīng)用中,并行計算機往往并沒有得到充分利用。原因有二,一是高強度的計算和處理需求并不是很飽和,二是應(yīng)用需求并不總是處于峰值狀態(tài)。因此,為了充分利用并行計算機的資源,發(fā)揮其效益,必須解決并行計算機的綜合利用問題。
2虛擬化技術(shù)及其主要優(yōu)勢
計算機虛擬化技術(shù)是指對計算機系統(tǒng)資源進行抽象與管理、使用的技術(shù)總稱[2]。計算機虛擬化技術(shù)通過軟件技術(shù)或者軟硬件相結(jié)合的技術(shù),在計算機硬件之上構(gòu)建一個軟件層,稱為虛擬機監(jiān)控器VMM(Virtual Machine Monitor),VMM的功能是對底層的物理資源進行抽象,屏蔽物理資源的差異性,使其對上層呈現(xiàn)為具有統(tǒng)一特征和訪問接口的虛擬資源集合。從而在物理機器之上構(gòu)建虛擬的計算環(huán)境,使得指令在虛擬的環(huán)境中執(zhí)行,而不是直接在物理平臺上執(zhí)行。根據(jù)VMM所處的層次不同,虛擬化技術(shù)又分為系統(tǒng)級虛擬化技術(shù)和進程級虛擬化技術(shù)。系統(tǒng)級虛擬化技術(shù)是指VMM直接構(gòu)建于物理機器之上,VMM能夠模擬整個計算機系統(tǒng)環(huán)境,在VMM之上能夠構(gòu)建多個虛擬機VM(Virtual Machine),每個VM都是一個完整的系統(tǒng)環(huán)境,能夠運行包括操作系統(tǒng)在內(nèi)的整個軟件棧。進程級虛擬化技術(shù)是指VMM構(gòu)建于操作系統(tǒng)之上,其功能是模擬進程運行環(huán)境,VMM構(gòu)建的每個VM只能支持單個進程的運行。本文主要討論和利用系統(tǒng)級虛擬化技術(shù),下文簡稱為虛擬化技術(shù)。
虛擬化技術(shù)具有兩個顯著的優(yōu)勢。一是虛擬化技術(shù)能夠?qū)ξ锢碣Y源進行抽象,因而能夠屏蔽物理資源的差異性,甚至是分布式特性,使物理資源對上層軟件呈現(xiàn)為統(tǒng)一的資源視圖,提供統(tǒng)一的資源訪問接口。利用虛擬化技術(shù)就能夠?qū)Φ讓拥奈锢碣Y源進行統(tǒng)一管理和進行靈活的、細粒度的劃分和調(diào)配使用。二是虛擬化技術(shù)能夠?qū)χ噶畹膱?zhí)行進行實時監(jiān)控,因而能夠捕獲敏感指令的執(zhí)行,進而能夠?qū)γ舾兄噶畹男袨檫M行審計。所以,利用虛擬化技術(shù)就能夠?qū)崿F(xiàn)包括系統(tǒng)安全策略在內(nèi)的一系列系統(tǒng)管理意圖,并且使得這些特殊的管理意圖對上層軟件透明。
3利用虛擬化技術(shù)解決并行計算領(lǐng)域的兩個問題
3.1 利用虛擬化技術(shù)構(gòu)建新型的并行計算機體系結(jié)構(gòu)利用虛擬化技術(shù),可以構(gòu)建新型的并行計算機體系結(jié)構(gòu),從而結(jié)合共享存儲并行結(jié)構(gòu)和分布存儲并行結(jié)構(gòu)的優(yōu)勢??梢酝ㄟ^兩種技術(shù)思路來構(gòu)建新型的并行計算機體系結(jié)構(gòu),一是通過虛擬機集群的方式,二是通過分布式虛擬機監(jiān)控器的方式。
隨著計算機技術(shù)發(fā)展的日新月異,并行、多核、虛擬化等新概念新技術(shù)被廣泛應(yīng)用于業(yè)界主流系統(tǒng)中,同時也是研究的熱門領(lǐng)域。在過往開展教學(xué)和聽取學(xué)生意見反饋過程中,我們感到原有的計算機系統(tǒng)方向課程存在缺乏公共前導(dǎo)課,教材陳舊,重理論、輕實踐等問題,使得學(xué)生在學(xué)校中學(xué)習(xí)的內(nèi)容與主流系統(tǒng)脫節(jié)較大,學(xué)完后對散布于各門課程中的知識點僅有孤立的了解,不能融會貫通,同時動手能力也較弱,難以滿足畢業(yè)后工作和進一步深造的需要。
從2002年起,我們把計算機系統(tǒng)方向作為教學(xué)改革的試點和突破口,積極借鑒國際先進經(jīng)驗,從加強基礎(chǔ)教學(xué)入手,對原計算機系統(tǒng)方向的課程體系、課程內(nèi)容和教學(xué)方法等方面進行了全面改革。經(jīng)過幾年的努力,改革取得了一定的成效,積累了初步的經(jīng)驗。本文對近年來在加強計算機系統(tǒng)方向基礎(chǔ)教學(xué)方面所采取的一些做法和取得的一些心得進行了總結(jié)和介紹。
2改革前后計算機系統(tǒng)方向課程體系狀況概覽
改革前計算機系統(tǒng)方向的課程體系如圖1所示,主要由組成與匯編、數(shù)字電路、計算機體系結(jié)構(gòu)、計算機接口、操作系統(tǒng)、編譯原理、數(shù)據(jù)庫管理系統(tǒng)和計算機網(wǎng)絡(luò)等課程組成,其中組成與匯編課程是計算機體系結(jié)構(gòu)課程的前導(dǎo)課,數(shù)字電路課程是計算機接口課程的前導(dǎo)課,除此之外各課程保持并行關(guān)系,屬于比較傳統(tǒng)的課程體系。在該課程體系中,由于各高階課程缺乏公共的前導(dǎo)課程,使得學(xué)生學(xué)習(xí)起來比較吃力,且對各門課程難以融會貫通;同
圖1改革前的計算機系統(tǒng)方向課程體系
時組成與匯編作為一門傳統(tǒng)課程,其教學(xué)內(nèi)容未能涵蓋很多目前已被業(yè)界主流采用的新概念新技術(shù),而傳統(tǒng)的數(shù)字電路課程也未體現(xiàn)通過目前軟件設(shè)計數(shù)字部件的最新潮流。
在課程體系改革過程中,針對傳統(tǒng)課程體系中存在的問題,借鑒國外先進經(jīng)驗,通過引入公共的前導(dǎo)課程,加強了系統(tǒng)方向的基礎(chǔ)教學(xué)。改革后,取消了組成與匯編課程,代之以引進的計算機系統(tǒng)基礎(chǔ)和計算機系統(tǒng)工程兩門全新課程作為計算機體系結(jié)構(gòu)、操作系統(tǒng)、編譯原理等所有高階課程的公共前導(dǎo)課程,同時將原數(shù)字電路課程改為數(shù)字部件設(shè)計課程,作為計算機接口課程的前導(dǎo)課程。改革后的計算機系統(tǒng)方向課程體系如圖2所示。
圖2改革后的計算機系統(tǒng)方向課程體系
改革后全新引進的兩門課程中,“計算機系統(tǒng)基礎(chǔ)”課程是卡內(nèi)基•梅隆大學(xué)課程改革的結(jié)晶之一,該課程1998年開始試點,2002年試點成果正式匯編成教材,課程涵蓋了計算機系統(tǒng)領(lǐng)域廣泛的內(nèi)容,為系統(tǒng)方向后繼課程做了很好的準備和鋪墊,但又僅從程序員角度介紹,不與后繼課程搶內(nèi)容。作為最早引進該課程的國內(nèi)高校,我們在一段時間內(nèi)曾經(jīng)將其直接作為高階課程的前導(dǎo)課程。但在具體教授過程中,我們發(fā)現(xiàn)該課程側(cè)重于介紹組成計算機系統(tǒng)的各個必要元素,幫助學(xué)生理解計算機系統(tǒng)構(gòu)成的一些基本原理,關(guān)注于一個個相對孤立的知識點;但課程并不介紹這些孤立的知識點是如何相互作用來構(gòu)成當前支撐計算機產(chǎn)業(yè)的復(fù)雜系統(tǒng)。
因此我們又進一步引進了麻省理工學(xué)院的“計算機系統(tǒng)工程”課程。該課程是麻省理工學(xué)院針對目前互聯(lián)網(wǎng)應(yīng)用成為主流,多核概念和系統(tǒng)廣泛應(yīng)用,而傳統(tǒng)課程中并發(fā)、并行、分布式等概念占比較低的情況所打造的新課程。課程在學(xué)生有了一定計算機系統(tǒng)的基礎(chǔ)知識上,介紹了如何使用這些計算機系統(tǒng)的基礎(chǔ)知識(基礎(chǔ)單元)來設(shè)計一些復(fù)雜系統(tǒng),使學(xué)生能夠?qū)τ嬎銠C系統(tǒng)有更全面的理解,從而激發(fā)學(xué)生更進一步學(xué)習(xí)的興趣。課程還為隨后的高階課程如操作系統(tǒng)、編譯原理、計算機體系結(jié)構(gòu)等樹立了通識的設(shè)計理念,使學(xué)生在后繼課程的學(xué)習(xí)中可以利用這些通識的設(shè)計理念去具體理解不同課程中各異的設(shè)計與實現(xiàn)。
3借鑒國際先進經(jīng)驗采取的幾項改革措施
在加強系統(tǒng)方向基礎(chǔ)教學(xué)的改革過程中,除對課程體系進行改革外,我們在課程內(nèi)容、教學(xué)方法、實踐教學(xué)、人員配備等方面也都借鑒國際先進經(jīng)驗,采取了一定的改革措施。
在原先計算機系統(tǒng)方向教學(xué)過程中,由于后繼高階課程缺乏公共的前導(dǎo)課程,學(xué)生在整個學(xué)習(xí)過程中對各個知識點的學(xué)習(xí)相對孤立,容易產(chǎn)生“只見樹木,不見森林”的情況。在我們引入新課程,重構(gòu)課程體系過程中,特別注意借鑒相關(guān)先進經(jīng)驗,形成課程內(nèi)和課程間知識的前后呼應(yīng),力求使學(xué)生“既見樹木,又見森林”。如在編譯系統(tǒng)課程中,以一個完整的小系統(tǒng)“Tiger語言編譯器”來貫串整個課程,圍繞系統(tǒng)的設(shè)計和實現(xiàn)逐步引入各個基本概念和基本方法,使學(xué)生對課程中的各個知識點不再是孤立地理解和掌握,而是在課程范圍內(nèi)有個全局的把握。又如計算機系統(tǒng)基礎(chǔ)課程對進程、程序鏈接、虛存管理以及地址空間這些概念的介紹為學(xué)生在后續(xù)操作系統(tǒng)課程中對概念的深入學(xué)習(xí)進行了前瞻引導(dǎo):計算機系統(tǒng)基礎(chǔ)課程介紹各進程間通過虛存管理來實現(xiàn)獨立的地址空間,而操作系統(tǒng)課將進一步具體介紹虛存管理和獨立空間是如何實現(xiàn)的,講解頁表機制、地址空間劃分、進程間共享等問題。
此外,根據(jù)相關(guān)研究和我們的教學(xué)經(jīng)驗,一個重要的概念如果能在多門課程中從不同角度多次重復(fù),學(xué)生更容易真正地理解和掌握。比如進程這個概念,首先在計算機系統(tǒng)基礎(chǔ)課中從程序員的角度引入,介紹進程的編程接口在系統(tǒng)中的表現(xiàn)行為和支持進程需要涉及的主要方面如系統(tǒng)堆棧結(jié)構(gòu)、方法調(diào)用和內(nèi)存分配等;隨后在計算機系統(tǒng)工程課程中對進程的設(shè)計理念進行抽象,講解進程在系統(tǒng)中扮演的各種角色和完成的各種任務(wù);接著在操作系統(tǒng)課中,將具體講解操作系統(tǒng)是如何實現(xiàn)進程和支持進程運行的各組成部分,如內(nèi)存如何分配,進程間如何進行調(diào)度和數(shù)據(jù)共享等;最后在計算機體系結(jié)構(gòu)課程中會對進程的最終形態(tài)指令集進行介紹,具體講解體系結(jié)構(gòu)如何在物理層面上支持進程的執(zhí)行。
教學(xué)方法方面,積極借鑒美國優(yōu)秀大學(xué)的先進教學(xué)方法,課堂授課主要側(cè)重闡述該學(xué)科的要點和難點,而那些具體的、細節(jié)的課程內(nèi)容和需要學(xué)生親自動手實踐的內(nèi)容則更多地放在教學(xué)實驗環(huán)節(jié)中,留給學(xué)生課后自主學(xué)習(xí)。同時還在部分課程中嘗試探究性學(xué)習(xí),設(shè)計了若干個開放式討論課題,給出相關(guān)文獻讓每個學(xué)生閱讀,要求學(xué)生給出針對性的設(shè)計,并進行小班討論。
我們還根據(jù)國外經(jīng)驗特別強調(diào)了實踐環(huán)節(jié)在教學(xué)中的重要性,全面引進了配套的實驗(Lab)和實踐項目(Project),將理論教學(xué)和實驗教學(xué)統(tǒng)一在一門課程中。實驗一般采用固定時間、集中當場完成的形式,其中驗證類實驗比重非常少,設(shè)計類和綜合類實驗占絕大多數(shù);實驗內(nèi)容緊跟授課進度,偏重實踐,使學(xué)生能熟悉開發(fā)工具、開發(fā)環(huán)境和開發(fā)流程,了解開發(fā)和調(diào)試技巧,更好地理解課堂教授的理論知識,強化對概念的掌握。例如在計算機系統(tǒng)基礎(chǔ)課程中安排了Bit Operation、Pipeline Design等多個實驗。
實踐項目則一般會在提前教學(xué)進度布置,由學(xué)生在課后獨立或分組完成,在經(jīng)過較長時間后上交;實踐項目內(nèi)容要求的知識廣度與深度在一定程度上超出了課堂教授與課后自習(xí)的內(nèi)容,這就需要學(xué)生根據(jù)要求去查閱更多資料、學(xué)習(xí)更多知識、掌握更多技能。通過這一過程,學(xué)生得以完善自身的知識結(jié)構(gòu)、深化對理論的認識,從而提升自身的綜合能力與素質(zhì)。例如“操作系統(tǒng)”課程就要求實現(xiàn)一個支持X86架構(gòu)的帶多任務(wù)支持、虛存支持等功能的操作系統(tǒng)內(nèi)核,并要求內(nèi)核能在simics上實現(xiàn)boot。
在人員配備方面我們同樣積極向國外優(yōu)秀高校學(xué)習(xí),為所有專業(yè)課程按選課人數(shù)配備了主要由研究生擔任的教學(xué)助理(Teaching Assistant),主干課程保證平均每15到20名學(xué)生左右配備一名助理。這些教學(xué)助理與學(xué)生定向掛鉤,負責協(xié)助主講老師根據(jù)課程內(nèi)容和學(xué)生的反饋意見設(shè)計實驗、課后作業(yè)和實踐項目內(nèi)容,在學(xué)生完成教學(xué)實驗的過程中給予學(xué)生及時的指導(dǎo)和幫助。
4在教學(xué)改革中取得的若干經(jīng)驗和心得
在我們實行教學(xué)改革試點過程中,總結(jié)了若干可供借鑒的相關(guān)經(jīng)驗和心得。
首先是在挑選國際先進經(jīng)驗加以借鑒時,應(yīng)堅持“高起點,全方位”的指導(dǎo)思想?!案咂瘘c”是指在挑選國外高校借鑒其經(jīng)驗開展教學(xué)改革時,優(yōu)先挑選麻省理工學(xué)院、卡內(nèi)基•梅隆大學(xué)、斯坦福大學(xué)、加州大學(xué)伯克利分校等擁有全球頂尖計算學(xué)科的高校作為參考對象?!胺ㄆ渖险叩闷渲?法其中者得其下”,高起點的指導(dǎo)思想為較好的教改結(jié)果提供了前提和保障。“全方位”是指在借鑒經(jīng)驗時,針對以往工作的不足,需注意從課程內(nèi)容、實踐教學(xué)、教學(xué)方法、人員配備等多角度全方位借鑒國際頂尖高校的教學(xué)理念和方法,其中尤其應(yīng)注意創(chuàng)造條件引進以往容易遭到忽視的實踐教學(xué)部分。
其次是在開展教改時不求“量大面廣”,而是要根據(jù)自己的水平和能力,先在小范圍內(nèi)對擬采取的教改措施予以實驗,在取得成功的經(jīng)驗后再逐步加以推廣,力求步步扎實,逐步推進。例如我們在教學(xué)方法改革時,首先在基礎(chǔ)較好的單獨的計算機系統(tǒng)基礎(chǔ)一門課程中試點,在取得效果后逐步向操作系統(tǒng)、編譯原理等其他系統(tǒng)方向課程推廣。這樣不斷嘗試,逐步推進,提高了教學(xué)改革成功的幾率,盡可能避免教改失敗對學(xué)生的影響,最大限度保護學(xué)生權(quán)益。
再次是在能力允許的情況下,根據(jù)國內(nèi)實際情況,對借鑒國外經(jīng)驗開展的教學(xué)改革不斷予以微調(diào)。以計算機系統(tǒng)基礎(chǔ)課程為例,在引進初期,我們參考國外高校課程設(shè)置,將其安排在一個學(xué)期內(nèi)教授,每周6課時。由于課程面大量廣,學(xué)生很難接受,現(xiàn)在我們將課程調(diào)整為兩個學(xué)期教授,第一學(xué)期2+1課時,第二學(xué)期4+1課時,相應(yīng)增加了習(xí)題課,學(xué)生學(xué)習(xí)相對更為容易,學(xué)習(xí)效果有明顯提高。同樣是這門課程,由于相關(guān)教材涉及面寬泛,部分章節(jié)難易失當,二年級學(xué)生學(xué)習(xí)比較吃力。我們在一段時間的教授后,根據(jù)經(jīng)驗補充了部分材料,調(diào)整了部分內(nèi)容的次序,現(xiàn)在還準備進一步重新編譯該教材,以求學(xué)生能更方便地閱讀和學(xué)習(xí)。但有一點值得注意的是,在教學(xué)改革剛開始的時候,不宜對內(nèi)容進行太多調(diào)整,對內(nèi)容的調(diào)整應(yīng)在改革開始一段時間,教師對改革內(nèi)容熟悉吃透,本身能力也提高之后才比較合適進行。
最后是改革需要有相應(yīng)的體制機制作保障。例如在初次引進國外最新課程及配套實踐內(nèi)容時,學(xué)生往往會感覺內(nèi)容與以前學(xué)習(xí)的課程比難度和工作量明顯加大,進而會
感覺壓力偏大;同樣,教師在初次教授引進課程時,也會有部分內(nèi)容把握不當。此時就需要有相應(yīng)的學(xué)生意見反饋機制,包括學(xué)生打分、座談會等做配套,以便及時了解學(xué)生對正在進行的改革的感受和意見,不斷總結(jié)經(jīng)驗,加以改進。又如在規(guī)劃課程間互相呼應(yīng)的內(nèi)容時,需要有學(xué)院相關(guān)領(lǐng)導(dǎo)牽頭來開展此項工作,同時還需要由有一定經(jīng)驗老師組成的小組來共同探討和指導(dǎo)此項工作。另外在改革開展過程中,還應(yīng)有一定的經(jīng)費和資源等支撐,以鼓勵教師積極參與相關(guān)改革工作。
6結(jié)論與展望
關(guān)鍵詞:計算機硬件;集成電路設(shè)計;教學(xué)改革
信息系統(tǒng)工程教育論壇我院計算機科學(xué)與技術(shù)本科專業(yè)始建于1987年,歷經(jīng)20年的發(fā)展,為油田及相關(guān)企事業(yè)單位培養(yǎng)了大量的計算機應(yīng)用人才。“具有良好的科學(xué)素養(yǎng),系統(tǒng)地、較好地掌握計算機科學(xué)與技術(shù)包括計算機硬件、軟件與應(yīng)用的基本理論、基本知識和基本技能與方法,能在科研部門、教育單位、企業(yè)、事業(yè)、技術(shù)和行政管理部門等單位從事計算機教學(xué)、科學(xué)研究和應(yīng)用”是本專業(yè)的培養(yǎng)目標。基于這個培養(yǎng)目標,結(jié)合目前計算機硬件技術(shù)最新發(fā)展現(xiàn)狀及趨勢,提出本硬件系列課改方案。
一、硬件系列課改的目的及意義
當前,計算機在信息社會中充當了重要角色,也是發(fā)展最為迅速的一門學(xué)科。隨著這門學(xué)科的不斷發(fā)展,目前,計算機核心技術(shù)愈來愈集中在集成電路芯片設(shè)計和軟件設(shè)計這兩項技術(shù)中,其中CPU和OS設(shè)計技術(shù)是最核心的兩項技術(shù),特別是高性能計算機技術(shù)一直是衡量國家實力的一個重要標志。在硬件系列課程里,培養(yǎng)學(xué)生CPU及相關(guān)硬件的設(shè)計能力,培養(yǎng)學(xué)生自主創(chuàng)新并能夠設(shè)計出擁有自主知識產(chǎn)權(quán)的計算機部件的能力,是當前計算機硬件課程重要的改革方向,也是目前社會迫切需要的計算機硬件人才[1]。因此,適應(yīng)當前計算機硬件技術(shù)的發(fā)展及社會對計算機硬件人才的需求,及時調(diào)整硬件系列課程的培養(yǎng)方向,既有利于學(xué)生及時掌握最新的計算機硬件技術(shù),又有利于學(xué)生及時把所學(xué)知識轉(zhuǎn)化為社會生產(chǎn)力,對擴大我院學(xué)生就業(yè),樹立我院計算機科學(xué)與技術(shù)專業(yè)學(xué)生良好的社會形象意義深遠。
二、硬件系列教學(xué)的國內(nèi)外發(fā)展現(xiàn)狀及趨勢
由于我國的制造業(yè)比較落后,一直以來,計算機硬件的核心技術(shù)未能被國內(nèi)掌握。相應(yīng)地,在計算機硬件教學(xué)中,像計算機組成和計算機體系結(jié)構(gòu)等重要硬件課程,傳統(tǒng)上僅僅以講授、分析原理為主,且內(nèi)容不能適應(yīng)現(xiàn)代計算機技術(shù)的發(fā)展[2]。國外一些知名大學(xué)非常重視計算機硬件的教學(xué),美國的許多高校本科計算機專業(yè)中都無一不是安排了CPU設(shè)計方面的課程和實驗內(nèi)容。例如麻省理工學(xué)院計算機專業(yè)的一門相關(guān)課程是《計算機系統(tǒng)設(shè)計》,學(xué)生在實驗課中,須自主完成ALU、單指令周期CPU、多指令周期CPU乃至實現(xiàn)流水線32位MIPS CPU和Cache等的設(shè)計。Stanford大學(xué)計算機系的本科生也有相似的課程和實驗。隨著計算機硬件技術(shù)的不斷發(fā)展,國內(nèi)開展硬件設(shè)計技術(shù)的條件已逐漸成熟,這主要得益于計算機硬件發(fā)展中的兩個重要技術(shù),一是大規(guī)模可編程邏輯器件CPLD/FPGA的成熟,可以在一個芯片中通過編寫硬件描述語言設(shè)計CPU和全部的相關(guān)硬件電路,減輕了硬件芯片間連接的復(fù)雜性,同時消除了硬件制造的限制。二是硬件描述語言的成熟,以VHDL和Verilog VHDL語言為代表的硬件描述語言,可以通過編寫程序的方式來描述極其復(fù)雜的硬件電路邏輯,大大降低了以前采用手工方式設(shè)計硬件電路的復(fù)雜性。國內(nèi)的一些知名大學(xué),在最近幾年里,也相應(yīng)地增加了硬件電路設(shè)計在教學(xué)中的比重,據(jù)我們了解,清華大學(xué)、電子科技大學(xué)、哈工大、哈理工等一些學(xué)校,已經(jīng)修改了計算機組成原理及計算機體系結(jié)構(gòu)等方面的課程教學(xué)內(nèi)容,把利用CPLD/FPGA和硬件描述語言設(shè)計CPU及其相關(guān)硬件電路作為重要內(nèi)容加入到課程體系里,取得了良好的教學(xué)效果,大大加強了學(xué)生對計算機工作原理的理解及計算機硬件的設(shè)計能力,逐步實現(xiàn)了與發(fā)達國家高校計算機本科教育的接軌。
三、目前我院硬件系列教學(xué)現(xiàn)狀及不足
計算機科學(xué)與技術(shù)本科專業(yè)硬件系列主要課程設(shè)置始于20年前,期間雖經(jīng)過部分調(diào)整,但基本教學(xué)內(nèi)容依然延續(xù)20年前的知識體系。按授課先后次序排列,這些課程包括:《數(shù)字邏輯與數(shù)字電路》、《計算機組成原理》、《數(shù)字系統(tǒng)設(shè)計自動化》、《計算機體系結(jié)構(gòu)》、《單片機原理及應(yīng)用》、《嵌入式系統(tǒng)》、《硬件課程設(shè)計》等7門?;诋斍坝布n程系列教學(xué)現(xiàn)狀,我們認為存在以下的不足:1.從整體上看,硬件系列教學(xué)內(nèi)容過于強調(diào)基本原理和基本方法,缺少能夠驗證原理、實際實現(xiàn)這些原理及方法的手段,導(dǎo)致學(xué)生缺少動手能力,對原理和方法認識模糊,會說不會做的現(xiàn)象比較嚴重,創(chuàng)新能力較弱。2.《數(shù)字邏輯與數(shù)字電路》和《數(shù)字系統(tǒng)設(shè)計自動化》,這兩門課之間存在較大的聯(lián)系,在內(nèi)容上存在承上啟下的關(guān)系,前者是講述數(shù)字電路的基本概念、組合及時序電路的傳統(tǒng)分析設(shè)計方法,后者則介紹組合及時序電路的現(xiàn)代分析設(shè)計方法,基于目前的教學(xué)實際情況,可以合并成一門課講述。3.《計算機組成原理》和《計算機體系結(jié)構(gòu)》是計算機科學(xué)與技術(shù)本科專業(yè)非常重要的兩門課,通過這兩門課的學(xué)習(xí),應(yīng)使學(xué)生能夠設(shè)計簡單的CPU及相關(guān)的硬件電路,從而加深對基本原理、基本方法的理解,增強實際動手能力?;诂F(xiàn)在的教學(xué)內(nèi)容及教學(xué)手段還無法達到上述目的。4.《單片機原理及應(yīng)用》和《嵌入式系統(tǒng)》兩門課存在較大的內(nèi)容交叉。這兩門課都是講述特定計算機在控制及嵌入式產(chǎn)品中的應(yīng)用,《單片機原理及應(yīng)用》這門課介紹的是8位機MCS-51的原理,《嵌入式系統(tǒng)》這門課介紹的是32位機ARM的原理,鑒于目前嵌入式領(lǐng)域的發(fā)展現(xiàn)狀及趨勢,建議取消《單片機原理及應(yīng)用》這門課,以避免課程內(nèi)容重復(fù)。5.《硬件課程設(shè)計》作為硬件系列的最后一門硬件設(shè)計課,學(xué)生已掌握了較豐富的軟硬件知識,因此應(yīng)該具備設(shè)計較復(fù)雜的硬件電路的能力,目前的設(shè)計內(nèi)容較簡單并與《數(shù)字邏輯與數(shù)字電路》課程實驗存在一定交叉,建議選擇有一定復(fù)雜度并較實用的設(shè)計內(nèi)容。從而培養(yǎng)學(xué)生綜合運用硬件知識及硬件設(shè)計能力。
四、硬件系列教學(xué)新課改方案
針對我院計算機科學(xué)與技術(shù)專業(yè)的實際情況,在保證總的硬件教學(xué)學(xué)時不變的前提下,對硬件系列教學(xué)提出如下建議:1.課程合并:《數(shù)字系統(tǒng)設(shè)計自動化》是計算機組成原理等的先修課,為保證能及時開課,同時該課和《數(shù)字邏輯與數(shù)字電路》這門課有密切的聯(lián)系,合并為一門課,仍稱為《數(shù)字邏輯與數(shù)字電路》,并適當增加學(xué)時,建議在大二上學(xué)期開課,取消《數(shù)字系統(tǒng)設(shè)計自動化》這門課。2.《計算機組成原理》:這門課改為《計算機組成及設(shè)計》,增加CPU及相關(guān)硬件電路設(shè)計內(nèi)容,在講清楚組成原理的基礎(chǔ)上,以設(shè)計為重點,建議在大二下學(xué)期開課。 3.《計算機體系結(jié)構(gòu)》:適當增加設(shè)計內(nèi)容,原學(xué)時保持不變,建議在大三上學(xué)期開課。4.《單片機原理及應(yīng)用》:本課程取消,鑒于目前嵌入式系統(tǒng)涉及軟硬件知識較多,難以在一門課程中全面系統(tǒng)學(xué)習(xí),因此另開設(shè)一門《嵌入式軟件開發(fā)》課程,重點講述如何設(shè)計編寫嵌入式軟件程序,建議在大三下學(xué)期開課。5.《嵌入式系統(tǒng)》:這門課作為《嵌入式軟件開發(fā)》的先修課,重點講述嵌入式系統(tǒng)的基本概念及方法、ARM處理器的硬件工作原理、接口、匯編語言等,而相關(guān)操作系統(tǒng)及其程序設(shè)計等知識暫不涉及,建議在大三上學(xué)期開課。6.《硬件課程設(shè)計》:在設(shè)計題目中,引入嵌入式系統(tǒng)、FPGA及計算機組成等知識,適當增加設(shè)計的綜合性和復(fù)雜性,建議在大四上學(xué)期開課?;谛碌挠布盗姓n程體系,能夠有效理順課程之間的先后關(guān)系,并把硬件課程均勻分散到大學(xué)四年的學(xué)習(xí)中,同時對重要的課程及相關(guān)的知識進行了加強,例如數(shù)字電路設(shè)計貫穿在整個硬件系列課程中;舍棄了過時的技術(shù),增加了新技術(shù)的份量,例如去掉了單片機,加強了嵌入式系統(tǒng)。因此,我們認為:調(diào)整后的硬件系列課程是較合理的,它吸收了當前先進的硬件設(shè)計技術(shù),保證了知識的實用性,有一定的前瞻性。
五、結(jié)束語
高等教育是為學(xué)生提供專業(yè)技能和生存本領(lǐng)、服務(wù)社會的最后一站,教學(xué)內(nèi)容及方法直接關(guān)系到學(xué)生的未來發(fā)展。通過不斷教學(xué)改革,保持教學(xué)的先進性和實用性一直是高教課改的目標之一。通過這次課改,理順了我院硬件系列課程的教學(xué)關(guān)系,增強學(xué)生未來服務(wù)社會的競爭力,因此很有實際意義。
作者:李軍 崔旭 李建平 單位:1.東北石油大學(xué) 2.大慶市薩東第二小學(xué)
參考文獻
【關(guān)鍵詞】計算機;體系結(jié)構(gòu);發(fā)展局限
0 引言
1946年世界上誕生第一臺電子數(shù)字計算機ENIAC,拉開了人類計算機發(fā)展的序幕,經(jīng)過60余的發(fā)展已經(jīng)成為人類工作和生活不可缺少的一部分,它是科技發(fā)展史上最具影響力的成果。
然而,現(xiàn)代計算機發(fā)展所遵循的基本結(jié)構(gòu)形式始終是馮?諾依曼機結(jié)構(gòu)。這種結(jié)構(gòu)特點是“程序存儲,共享數(shù)據(jù),順序執(zhí)行”,需要CPU從存儲器取出指令和數(shù)據(jù)進行相應(yīng)的計算,因此CPU與共享存儲器間的信息交換的速度成為影響系統(tǒng)性能的主要因素,而信息交換速度的提高又受制于存儲元件的速度、存儲器的性能和結(jié)構(gòu)等諸多條件。
傳統(tǒng)計算機在數(shù)值處理方面已經(jīng)到達較高的速度和精度,而隨著非數(shù)值處理應(yīng)用領(lǐng)域?qū)τ嬎銠C性能的要求越來越高,傳統(tǒng)體系結(jié)構(gòu)的計算機已經(jīng)難以到達這些要求,所以需要尋求新的體系結(jié)構(gòu)來解決問題。
1 馮?諾依曼體系計算機發(fā)展的局限
1.1 集成電路生產(chǎn)技術(shù)制約存儲器的性能,存儲器的性能制約系統(tǒng)的性能
傳統(tǒng)馮?諾依曼計算機體系結(jié)構(gòu)的存儲程序方式造成了系統(tǒng)對存儲器的依賴,CPU訪問存儲器的速度制約了系統(tǒng)運行的速度。集成電路IC芯片的技術(shù)水平?jīng)Q定了存儲器及其他硬件的性能。為了提高硬件的性能,以英特爾公司為代表的芯片制造企業(yè)在集成電路生產(chǎn)方面做出了極大的努力,且獲得了巨大的技術(shù)成果?,F(xiàn)在每隔18個月IC的集成度翻一倍,性能也提升一倍,產(chǎn)品價格降低一半,這就是所謂的“摩爾定律”。這個規(guī)律已經(jīng)持續(xù)了40多年,估計還將延續(xù)若干年。然而,電子產(chǎn)品面臨的二個基本限制是客觀存在的:光的速度和材料的原子特性。首先,信息傳播的速度最終將取決于電子流動的速度,電子信號在元件和導(dǎo)線里流動會產(chǎn)生時間延遲,頻率過高會造成信號畸變,所以元件的速度不可能無限的提高直至達到光速。第二,計算機的電子信號存儲在以硅晶體材料為代表晶體管上,集成度的提高在于晶體管變小,但是晶體管不可能小于一個硅原子的體積。隨著半導(dǎo)體技術(shù)逐漸逼近硅工藝尺寸極限,摩爾定律原導(dǎo)出的規(guī)律將不再適用。
現(xiàn)在集成電路中兩個晶體管之間的距離只有22納米,相當于只有100個硅原子那么大了。可以推測將來會有15納米,7.7納米,5.4納米,可能2023年做到2.7納米,2030年0.9納米。0.9納米只有4個硅原子那么大,4個硅原子不可能構(gòu)成實用的晶體管,可以確定2030年以前硅材料為代表的IC技術(shù)到達發(fā)展極限。
因此,計算機基礎(chǔ)硬件的發(fā)展屆時將受到嚴重制約,需要從基礎(chǔ)物理、材料科學(xué)及生產(chǎn)技術(shù)多方面來重新思考計算機的硬件構(gòu)成,更需要從體系結(jié)構(gòu)方面有所創(chuàng)新。
1.2 對馮?諾依曼計算機體系結(jié)構(gòu)缺陷的分析
(1)指令和數(shù)據(jù)存儲在同一個存儲器中,形成系統(tǒng)對存儲器的過分依賴。如果儲存器件的發(fā)展受阻,系統(tǒng)的發(fā)展也將受阻。
(2)指令在存儲器中按其執(zhí)行順序存放,由指令計數(shù)器PC指明要執(zhí)行的指令所在的單元地址。然后取出指令執(zhí)行操作任務(wù)。所以指令的執(zhí)行是串行。影響了系統(tǒng)執(zhí)行的速度。
(3)存儲器是按地址訪問的線性編址,按順序排列的地址訪問,利于存儲和執(zhí)行的機器語言指令,適用于作數(shù)值計算。但是高級語言表示的存儲器則是一組有名字的變量,按名字調(diào)用變量,不按地址訪問。機器語言同高級語言在語義上存在很大的間隔,稱之為馮?諾依曼語義間隔。消除語義間隔成了計算機發(fā)展面臨的一大難題。
(4)馮?諾依曼體系結(jié)構(gòu)計算機是為算術(shù)和邏輯運算而誕生的,目前在數(shù)值處理方面已經(jīng)到達較高的速度和精度,而非數(shù)值處理應(yīng)用領(lǐng)域發(fā)展緩慢,需要在體系結(jié)構(gòu)方面有重大的突破。
(5)傳統(tǒng)的馮?諾依曼型結(jié)構(gòu)屬于控制驅(qū)動方式。它是執(zhí)行指令代碼對數(shù)值代碼進行處理,只要指令明確,輸入數(shù)據(jù)準確,啟動程序后自動運行而且結(jié)果是預(yù)期的。一旦指令和數(shù)據(jù)有錯誤,機器不會主動修改指令并完善程序。而人類生活中有許多信息是模糊的,事件的發(fā)生、發(fā)展和結(jié)果是不能預(yù)期的,現(xiàn)代計算機的智能是無法應(yīng)對如此復(fù)雜任務(wù)的??梢娪嬎銠C從自動機器到自為機器還有很遙遠的路要走。
2 非馮?諾依曼體系計算機的發(fā)展
2.1 非馮?諾依曼體系計算機研究的主要線路
近幾年來人們努力謀求突破傳統(tǒng)馮?諾依曼體制的局限,各類非諾依曼化計算機的研究如雨后春筍蓬勃發(fā)展,主要表現(xiàn)在以下四個方面:
(1)對傳統(tǒng)馮?諾依曼機進行改良,如傳統(tǒng)體系計算機只有一個處理部件是串行執(zhí)行的,改成多處理部件形成流水處理,依靠時間上的重疊提高處理效率。
(2)由多個處理器構(gòu)成系統(tǒng),形成多指令流多數(shù)據(jù)流支持并行算法結(jié)構(gòu)。這方面的研究目前已經(jīng)取得一些成功。
(3)否定馮?諾依曼機的控制流驅(qū)動方式。設(shè)計數(shù)據(jù)流驅(qū)動工作方式的數(shù)據(jù)流計算機,只要數(shù)據(jù)已經(jīng)準備好,有關(guān)的指令就可并行地執(zhí)行。這是真正非諾依曼化的計算機,這樣的研究還在進行中,已獲得階段性的成果,如神經(jīng)計算機。
(4)徹底跳出電子的范疇,以其它物質(zhì)作為信息載體和執(zhí)行部件,如光子、生物分子、量子等。眾多科學(xué)家正為進行這些前瞻性的研究。
2.2 具有代表性的非馮?諾依曼體系計算機研究方向如下
2.2.1 光子計算機
光子計算機是一種由光信號進行數(shù)字運算、邏輯操作、信息存貯和處理的新型計算機。
歐洲科學(xué)家研制成功第一臺光子計算機,其運行速度比普通的電子計算機快1000倍。電子計算機是由電子來存儲傳遞和處理信息,光子計算機利用激光來傳送信號,靠激光束進入反射鏡和透鏡組成的陣列進行運算處理,它可以對復(fù)雜度高、計算量大的任務(wù)實現(xiàn)快速的并行處理,這遠勝通過電子“0”、“1”狀態(tài)變化進行的運算。光子計算機在圖像處理、目標識別和人工智能等方面發(fā)展的潛力巨大。
2.2.2 量子計算機
量子計算機(quantum computer)是一類遵循量子力學(xué)規(guī)律進行高速數(shù)學(xué)和邏輯運算、存儲及處理量子信息的物理裝置。半導(dǎo)體靠控制集成電路來記錄和運算信息,量子電腦則希望控制原子或小分子的狀態(tài),記錄和運算信息。使用量子門替代晶體管邏輯門的功能。
1994年,貝爾實驗室的專家彼得?秀爾(Peter Shore)證明量子計算機能完成對數(shù)運算,而且速度遠勝傳統(tǒng)計算機。這是因為量子不像半導(dǎo)體只能記錄0與1,可以同時表示多種狀態(tài)。如果把半導(dǎo)體計算機比成單一樂器,量子計算機就像交響樂團,一次運算可以處理多種不同狀況,因此,一個40位元的量子計算機,就能解開1024位元的電子計算機花上數(shù)十年解決的問題。
2.2.3 神經(jīng)計算機
神經(jīng)計算機是模仿人的大腦判斷能力和適應(yīng)能力,并具有可并行處理多種數(shù)據(jù)功能的神經(jīng)網(wǎng)絡(luò)計算機。神經(jīng)網(wǎng)絡(luò)有自適應(yīng)、自學(xué)習(xí)、自組織和容錯自修復(fù)功能。神經(jīng)計算機與電子計算機最大的不同是:電子計算機的存儲部件和處理部件是兩個不同的部分,而模仿大腦神經(jīng)記憶的信息存放在神經(jīng)元上,神經(jīng)元又是處理信息的基本單元,所以二者是不可分的。
目前,美國科學(xué)家研究出左腦和右腦兩個神經(jīng)塊連接而成的神經(jīng)電子計算機。右腦為經(jīng)驗功能部分,有1萬多個神經(jīng)元,適于圖像識別;左腦為識別功能部分,含有100萬個神經(jīng)元,用于存儲單詞和語法規(guī)則。它能識別文字,符號,圖形,語言以及聲納和雷達收到的信號,控制智能機器人,進行智能決策和智能指揮等。神經(jīng)計算機它可能引導(dǎo)計算機從自動運行走向自覺和自為工作,這將是人工智能發(fā)展的主攻方向。
3 結(jié)論
馮?諾依曼計算機的發(fā)展的硬件基礎(chǔ)受到集成電路生產(chǎn)技術(shù)的制約,結(jié)構(gòu)體系上存儲控制流驅(qū)動任務(wù)的方式,已經(jīng)滿足不了人們對計算機更高速、更智能和使用更方便的要求。結(jié)構(gòu)改良之路已經(jīng)走到盡頭,只有突破現(xiàn)有體系結(jié)構(gòu)的制約并尋求新的物質(zhì)作為計算機的物質(zhì)基礎(chǔ),才能使得計算機有質(zhì)的飛躍,光子計算機和神經(jīng)計算機將是最具發(fā)展前景的探索。
馮?諾依曼計算機是全人類智慧的結(jié)晶,由于技術(shù)成熟、價格低廉、軟件豐富及人們的使用習(xí)慣,馮?諾依曼計算機將繼續(xù)長期在人類的工作和生活中發(fā)揮重要的作用。當然,未來會有商品化的非馮?諾依曼計算機問世,我們將會迎來一個各類型計算機百花爭艷的信息時代。
【參考文獻】
[1]白中英.計算機組成原理[M].北京:科學(xué)出版社,2007.
關(guān)鍵詞:計算機組成原理;設(shè)計性環(huán)節(jié);教學(xué)實踐
中圖分類號:G642文獻標識碼:B
文章編號:1672-5913(2007)08-0003-03
1 引言
“計算機組成原理”課程是計算機專業(yè)的一門承前啟后、承上啟下的核心專業(yè)基礎(chǔ)課,由于涉及知識面廣、內(nèi)容多、更新快,學(xué)生在學(xué)習(xí)該課程時,普遍覺得內(nèi)容抽象、難于理解。為了最大限度發(fā)揮學(xué)生自主學(xué)習(xí)的能力,使學(xué)生對計算機基本原理和設(shè)計方法有一個清楚的了解,我們開設(shè)了配套的設(shè)計性實驗環(huán)節(jié)。通過親自設(shè)計計算機的各個關(guān)鍵部分,學(xué)生可以進一步融會貫通理論教學(xué)內(nèi)容,提高其綜合運用知識的能力。同時,設(shè)計性環(huán)節(jié)也為后續(xù)課程“計算機組成原理課程設(shè)計”的開設(shè)打下良好基礎(chǔ),將理論課和實驗課的教學(xué)內(nèi)容更好的銜接,對培養(yǎng)學(xué)生的主動性、協(xié)作精神和創(chuàng)新能力具有積極的作用。
本文主要介紹在“計算機組成原理”課程中設(shè)計性環(huán)節(jié)的教學(xué)實踐工作,希望能對同行有一定的借鑒作用。
2 設(shè)計性環(huán)節(jié)的內(nèi)容
通過對“計算機組成原理”教學(xué)內(nèi)容的分析,并結(jié)合后續(xù)課程“計算機組成原理課程設(shè)計”的教學(xué)需要,我們設(shè)置了三個部分的設(shè)計內(nèi)容,每個部分都有明確的教學(xué)目標。第一部分為指令系統(tǒng)的設(shè)計;第二部分為控制單元的設(shè)計;第三部分為簡單計算機體系結(jié)構(gòu)的設(shè)計。并要求每兩名學(xué)生為一組,共同完成各個部分的設(shè)計任務(wù)。
2.1 指令系統(tǒng)的設(shè)計
指令系統(tǒng)的設(shè)計內(nèi)容主要安排在“計算機組成原理”課程講授指令系統(tǒng)的過程中。這樣可以讓學(xué)生帶著問題和任務(wù)更主動地學(xué)習(xí)指令系統(tǒng)的基礎(chǔ)理論知識,充分地理論聯(lián)系實際,根據(jù)設(shè)計中對計算機功能和組成的要求來完成對指令系統(tǒng)的設(shè)計,并可以在“計算機組成原理課程設(shè)計”實驗過程中進行完善。教學(xué)實踐表明,將計算機指令系統(tǒng)的設(shè)計任務(wù)安排在“計算機組成原理”講授指令系統(tǒng)的過程中,可以讓學(xué)生在理論和實踐相結(jié)合的基礎(chǔ)上更深入地理解機器指令和指令系統(tǒng)之間的關(guān)系,掌握指令系統(tǒng)的分析和設(shè)計方法,還有利于對“計算機組成原理”后續(xù)知識點的理解。
2.1.1 設(shè)計要求
要求為一個八位字長的計算機設(shè)計指令系統(tǒng)。該計算機數(shù)據(jù)通路、運算器都是八位的,具有256字節(jié)的存儲器、八個通用寄存器以及其他的必要部件。設(shè)計的指令系統(tǒng)要求必須包含如下指令和尋址方式:
(1)數(shù)據(jù)傳送指令:包括取數(shù)、存數(shù),寄存器之間傳送數(shù)據(jù)等指令。取數(shù)、存數(shù)應(yīng)具有立即數(shù)、存儲器立即尋址、寄存器立即尋址等方式。
(2)運算指令:包括加法、減法、自加1、移位、取反等算術(shù)運算指令。
(3)轉(zhuǎn)移指令:無條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令。
(4)停機指令。
2.1.2 確定指令系統(tǒng)及指令編碼
由于設(shè)計的是八位計算機的指令系統(tǒng),可以采用單字長和雙字長指令。例如,八位計算機的指令格式可以為:
一個完備的指令系統(tǒng)必須包括數(shù)據(jù)傳送、算術(shù)邏輯運算、程序控制等指令,能夠?qū)崿F(xiàn)約20~30條指令和常用的尋址方式,例如:
(1)取指令 (雙字長指令)
MOV AC, Mi Mi-->AC?。ˋC為累加器,Mi為存儲器地址)
(2)加法運算指令(單字長指令)
ADD AC,Ri AC+Ri-->AC (AC為累加器,Ri為通用寄存器i)
根據(jù)設(shè)計要求,表1給出了設(shè)計指令系統(tǒng)的一種方案。
指令系統(tǒng)的性能決定了計算機的基本功能,因而指令系統(tǒng)的設(shè)計是計算機系統(tǒng)設(shè)計中的一個核心問題。一臺真實的計算機通常是非常復(fù)雜的,學(xué)生不可能在有限時間中設(shè)計出來。我們要求學(xué)生設(shè)計的計算機功能較簡單,基本指令簡單、典型,學(xué)生容易掌握,也有利于后續(xù)計算機系統(tǒng)設(shè)計的開展。
2.2 控制單元的設(shè)計
控制單元的設(shè)計是計算機系統(tǒng)設(shè)計的重點和難點?;究刂茊卧脑O(shè)計問題包括如何形成和連接受控部件的控制信號,以及在何時使這些控制信號有效。學(xué)生獨立地設(shè)計控制單元,不僅可以使學(xué)生剖析和體驗設(shè)計的基本思路和方法,為今后設(shè)計計算機打下初步基礎(chǔ),而且可以培養(yǎng)學(xué)生分析問題和解決問題的能力,使學(xué)生有更多的想象空間和發(fā)揮空間。
2.2.1 設(shè)計要求
控制單元的設(shè)計有組合邏輯和微程序控制兩種方法,我們要求用組合邏輯來產(chǎn)生控制指令執(zhí)行的控制信號序列。整個設(shè)計需要綜合考慮,根據(jù)每個微操作對應(yīng)的邏輯表達式生成控制信號。
2.2.2 組合邏輯控制單元的設(shè)計
根據(jù)指令系統(tǒng)的設(shè)計,對每一條指令進行細化,對指令執(zhí)行過程進行分析,確定執(zhí)行每一條指令所需的微操作數(shù)及節(jié)拍數(shù)、確定系統(tǒng)時鐘節(jié)拍數(shù)、以及確定每個節(jié)拍對應(yīng)的微操作,形成每條指令的微操作時間序列表。并根據(jù)微操作時間序列表,在節(jié)拍信號和指令譯碼信號的作用下,得到所有微操作的控制信號以及使該控制信號有效的條件,形成每個微操作對應(yīng)的邏輯表達式。根據(jù)邏輯表達式及其對應(yīng)的控制信號產(chǎn)生電路,就可以完成具有整個指令系統(tǒng)的控制單元的設(shè)計。
控制單元的設(shè)計內(nèi)容我們有意識地安排在“計算機組成原理”課程講授控制器的過程中。學(xué)生們對于課堂上講授的有關(guān)控制單元的原理、概念和設(shè)計方法并沒有直觀的印象,單純的理論學(xué)習(xí)難免枯燥,難以提起學(xué)生們的興趣。教學(xué)實踐證明,在“計算機組成原理”講授控制單元的過程中,學(xué)生們對自己在第一階段設(shè)計的指令系統(tǒng)中的每一條指令執(zhí)行過程進行分析,對八位字長計算機的控制單元進行初步設(shè)計,可以把控制單元中的各個知識點串起來,可以有效加深對計算機工作中數(shù)據(jù)流和控制流概念的理解,進一步弄清計算機內(nèi)部結(jié)構(gòu)的時空關(guān)系,并極大地調(diào)動了學(xué)生們的學(xué)習(xí)興趣。
2.3 體系結(jié)構(gòu)的設(shè)計
在計算機系統(tǒng)設(shè)計和實現(xiàn)階段,根據(jù)自頂向下的設(shè)計方法,首先設(shè)計整個計算機的大體框架,即總體結(jié)構(gòu)圖,以求有一個大體的框架,對以后的設(shè)計工作起到指導(dǎo)作用。再依據(jù)自頂向下的設(shè)計思想,把整個計算機劃分為多個模塊,對各個模塊進行設(shè)計,然后綜合,完成整個計算機的設(shè)計。
2.3.1 設(shè)計要求
要求設(shè)計一個八位字長的計算機的體系結(jié)構(gòu),該計算機數(shù)據(jù)通路、運算器都是八位的,具有256字節(jié)的存儲器、八個通用寄存器以及其他必要部件。在功能上,要求該計算機能夠完成單字節(jié)或雙字節(jié)加/減、單字節(jié)無符號乘法、16位除以8位除法等多種基本運算。要求設(shè)計的計算機系統(tǒng)能完成指定的功能,功能較強而又簡潔。
2.3.2 總體設(shè)計
按照學(xué)生所設(shè)計的指令系統(tǒng)的要求,參考一般計算機的數(shù)據(jù)通路結(jié)構(gòu),圖2給出了八位計算機總體結(jié)構(gòu)框圖的一種設(shè)計方案,規(guī)定了各功能部件的功能和各功能部件之間數(shù)據(jù)通路的走向。
在圖2中,AR為地址寄存器,PC為程序計數(shù)器,IR為指令寄存器,AC為累加器,GR為通用寄存器組,ALU為算術(shù)邏輯運算單元。C標志寄存器用來寄存進位C標志,Z標志寄存器用來寄存結(jié)果為零的Z標志。另外在圖2中還有兩個四選一開關(guān)和一個二選一開關(guān),其中的一個四選一開關(guān)是用于形成C標志的輸入,另一個四選一開關(guān)用于控制數(shù)據(jù)總線,二選一開關(guān)用于控制地址總線。
2.3.3 功能部件的設(shè)計
基于所設(shè)計的計算機總體結(jié)構(gòu),確定每一個功能部件的功能、功能部件與外部的連接端口信號、各功能部件與數(shù)據(jù)總線連接方案。
(1)運算器的設(shè)計
運算器由ALU、通用寄存器堆GR、累加器寄存器AC及數(shù)據(jù)選擇開關(guān)等組成,具有進位(C)、結(jié)果為0(Z)等狀態(tài)標志位。
能實現(xiàn)最常用的算術(shù)運算(加、進位加、減、借位減、自加1、自減1等)、邏輯運算(邏輯與、或、非)及移位、數(shù)據(jù)傳送等功能。
(2)控制器的設(shè)計
控制器包括脈沖源、啟動電路、節(jié)拍發(fā)生器、程序計數(shù)器PC、指令寄存器IR、地址寄存器AR和控制信號產(chǎn)生部件。整個設(shè)計需要綜合考慮,根據(jù)每個微操作對應(yīng)的邏輯表達式生成控制信號。
(3)數(shù)據(jù)總線
數(shù)據(jù)總線的數(shù)據(jù)源較多,在設(shè)計過程中要注意各個數(shù)據(jù)源在數(shù)據(jù)總線上是否沖突。
簡單計算機體系結(jié)構(gòu)和各個功能模塊的設(shè)計環(huán)節(jié),有助于學(xué)生在理論和實踐相結(jié)合的基礎(chǔ)上,深入了解計算機系統(tǒng)各部分的工作原理及相互聯(lián)系,加深對計算機工作中數(shù)據(jù)流和控制流概念的理解,加深整機概念,進一步弄清計算機內(nèi)部結(jié)構(gòu)的關(guān)系。
3 結(jié)論
“計算機組成原理”是學(xué)習(xí)計算機系統(tǒng)的關(guān)鍵課程,在完成基本原理知識學(xué)習(xí)的同時,必須加強對學(xué)生的創(chuàng)新意識、實踐能力和設(shè)計能力的培養(yǎng)。正是基于此點,根據(jù)從事計算機組成原理的教學(xué)經(jīng)驗,我校在理論教學(xué)過程中引入了設(shè)計性環(huán)節(jié),充分重視培養(yǎng)學(xué)生分析問題和解決問題的能力。不僅活躍了課堂氣氛、拓展了師生溝通的渠道,而且便于在教學(xué)中及時發(fā)現(xiàn)學(xué)生存在的問題,達到教學(xué)相長的目的。對提高教學(xué)質(zhì)量、加深學(xué)生對所學(xué)計算機組成原理知識的理解、增強學(xué)生開創(chuàng)能力是非常有益的,符合新時期人才培養(yǎng)的需要。
在“計算機組成原理”設(shè)計性環(huán)節(jié)的教學(xué)實踐中,我們發(fā)現(xiàn)不同的設(shè)計方案越來越豐富,反映出學(xué)生的求知欲望是很強的,而且富有創(chuàng)新精神。設(shè)計性環(huán)節(jié)的教學(xué)實踐使我們深深體會到,除理論教學(xué)外,設(shè)計性實驗也是一個非常重要的環(huán)節(jié)。通過學(xué)生自己動手提高其綜合運用知識的能力,是培養(yǎng)大學(xué)生專業(yè)素質(zhì)的重要環(huán)節(jié)和有效途徑,無疑將對學(xué)生能力的培養(yǎng)起到積極作用。
參考文獻:
[1] 王保恒,肖曉強.計算機原理與設(shè)計.高等教育出版社,2005,(1).
[2] 劉芳,王志英,戴葵,陸洪毅,王進.“計算機組成原理課程設(shè)計”的教學(xué)實踐[J]. 第一屆中國計算機教育與發(fā)展學(xué)術(shù)研討會,2006,(8).
[3] 趙碩,楊欣宇. 計算機組成原理課程的設(shè)計性實驗[J]. 高師理科學(xué)刊,2005,(5).
[4] 徐愛萍等.計算機組成原理課程教學(xué)改革研究[J]. 高等建筑教育,2004,(3).
收稿日期:2007-1-18
作者簡介:劉芳(1971-),女,博士,國防科技大學(xué)計算機學(xué)院講師。主講“計算機原理”與“計算機原理課程設(shè)計”兩門主干課。研究方向為計算機體系結(jié)構(gòu)和信息安全。
通信地址:湖南長沙 國防科技大學(xué)計算機學(xué)院601教研室
郵編:410073
關(guān)鍵詞:系統(tǒng)觀;能力培養(yǎng);教學(xué)改革;計算機系統(tǒng)
從1946年第一臺電子計算機ENIAC(Electronic Numerical Integrator And Computer)誕生到現(xiàn)在,計算機的發(fā)展經(jīng)過了大型機時代(Mainframe Era: 1950s-1960s)、小型機時代(Minicomputer Era: 1970s)、個人計算機時代(PC Era: Mid 1980s-Mid 2000s)和后PC時代(PostPC Era: Late 2000s)。計算機教學(xué)模型機也經(jīng)歷了從大型機、小型機到PC的過程。通常,課堂教學(xué)內(nèi)容比業(yè)界技術(shù)要滯后幾年。20世紀80年代初,基本以IBM 360/370或DJS 200系列等大型系列機為模型機;20世紀80年代中后期開始,則以VAX 11/780等小型機為模型機,并同時開設(shè)以IBM PC為模型機的“微機原理與接口技術(shù)”課程,到21世紀開始,基本上都轉(zhuǎn)入了以Intel x86或PowerPC或MIPS等微處理器為模型的教學(xué)模式。
隨著多核/眾核處理器、嵌入式和云計算技術(shù)的發(fā)展,以及大規(guī)模數(shù)據(jù)中心(WSC)的建立和個人移動設(shè)備(PMD)的大量普及使用,計算機發(fā)展進入了后PC時代。呈現(xiàn)出“人與信息世界及物理世界融合”的趨勢和網(wǎng)絡(luò)化、服務(wù)化、普適化和智能化的鮮明特征[1]。
那么,后PC時代的計算機專業(yè)教學(xué)應(yīng)該如何改革?計算機專業(yè)教育的核心應(yīng)該是什么?計算機課程的教學(xué)內(nèi)容應(yīng)該如何調(diào)整以適應(yīng)新的發(fā)展需求?這些都是我們從事計算機專業(yè)教學(xué)的大學(xué)老師們應(yīng)該思考的問題。本文將從計算機專業(yè)人才培養(yǎng)的目標、目前我國大學(xué)計算機專業(yè)教育存在的問題、南京大學(xué)在學(xué)生系統(tǒng)能力培養(yǎng)方面的新舉措等幾個方面闡述筆者的思考及初步探索。
一、計算機專業(yè)人才“系統(tǒng)觀”培養(yǎng)的重要性
圖1描述了計算機系統(tǒng)抽象層的轉(zhuǎn)換。從圖1可以看出,計算機系統(tǒng)由不同的抽象層構(gòu)成,“計算”的過程就是不同抽象層轉(zhuǎn)換的過程,上層是下層的抽象,而下層則是上層的具體實現(xiàn)。計算機學(xué)科主要研究的是計算機系統(tǒng)各個不同抽象層的實現(xiàn)及其相互轉(zhuǎn)換的機制,計算機學(xué)科培養(yǎng)的應(yīng)該主要是在計算機系統(tǒng)或在系統(tǒng)某些層次上從事相關(guān)工作的人才。
計算機系統(tǒng)由各種硬件和各類軟件采用層次化方式構(gòu)建,不同用戶工作在不同的系統(tǒng)結(jié)構(gòu)層,如圖2所示。
從圖2可看出,計算機用戶有最終用戶、系統(tǒng)管理員、應(yīng)用程序員和系統(tǒng)程序員。顯然,計算機專業(yè)培養(yǎng)的主要應(yīng)該是設(shè)計和研制計算機的計算機工程技術(shù)人員以及系統(tǒng)程序員、應(yīng)用程序員和系統(tǒng)管理員。不管培養(yǎng)哪個層面的計算機技術(shù)人才,計算機專業(yè)教育都要重視學(xué)生“系統(tǒng)觀”的培養(yǎng)。
所謂“系統(tǒng)觀”,筆者認為,就是指對計算機系統(tǒng)的深刻理解。具有“系統(tǒng)觀”的人才,能夠站在系統(tǒng)的高度考慮和解決應(yīng)用問題,具有系統(tǒng)層面的認知和設(shè)計能力,包括對軟、硬件功能進行合理劃分、對系統(tǒng)不同層次進行抽象和封裝、對系統(tǒng)整體性能進行分析和調(diào)優(yōu)、對系統(tǒng)各層面的錯誤進行調(diào)試和修正、對用戶程序進行準確的性能評估和優(yōu)化,以及根據(jù)不同的應(yīng)用要求合理構(gòu)建系統(tǒng)框架等能力。
圖2 計算機各類用戶所在層次
特別是在后PC時代,并行成為重要主題,培養(yǎng)具有系統(tǒng)觀的、能夠進行軟/硬件協(xié)同設(shè)計的軟/硬件貫通人才是關(guān)鍵。而且,后PC時代對于大量從事應(yīng)用開發(fā)的應(yīng)用程序員的要求也變得更高。首先,后PC時代的應(yīng)用問題更復(fù)雜、應(yīng)用領(lǐng)域更廣泛;其次,要想編寫出適合各類不同平臺的高效程序,應(yīng)用開發(fā)人員必須對計算機系統(tǒng)具有全面的認識,必須了解不同系統(tǒng)平臺的底層結(jié)構(gòu),并掌握并行程序設(shè)計技術(shù)和工具。
只有具備“系統(tǒng)觀”,計算機工程技術(shù)人員才能夠設(shè)計研制出性價比高的適合特定應(yīng)用需求或通用的計算機,系統(tǒng)程序員才能編寫出適合于底層硬件架構(gòu)的易于上層應(yīng)用程序員或系統(tǒng)管理員使用的系統(tǒng)軟件,應(yīng)用程序員才能最合理地利用底層硬件實現(xiàn)機制和系統(tǒng)軟件提供的相應(yīng)功能編寫出性能最優(yōu)的應(yīng)用軟件,系統(tǒng)管理員才能配置出最佳的系統(tǒng)環(huán)境并提供最好的系統(tǒng)維護和系統(tǒng)管理等方面的服務(wù)。
二、我國大學(xué)計算機人才“系統(tǒng)觀”培養(yǎng)的現(xiàn)狀
為了更好地了解國外大學(xué)計算機專業(yè)人才培養(yǎng)的情況,筆者對MIT、UC Berkeley、Stanford和CMU等4所美國一流大學(xué)在相關(guān)課程方面教學(xué)情況進行了跟蹤調(diào)查[2]。我們發(fā)現(xiàn),中美大學(xué)在計算機專業(yè)人才培養(yǎng)及課程教學(xué)方面存在許多不同。
首先,從課程設(shè)置上來說,上述美國四校在學(xué)完編程語言及其程序設(shè)計課程后都開設(shè)了一門關(guān)于計算機系統(tǒng)的基礎(chǔ)課程,而且在課程內(nèi)容上特別注重在計算機系統(tǒng)各個抽象層上的縱向關(guān)聯(lián),沿著一條主線,把每個抽象層都串起來,從而使學(xué)生形成完整的計算機系統(tǒng)概念。而國內(nèi)大學(xué)計算機專業(yè)課程設(shè)置,基本上是按計算機系統(tǒng)層次結(jié)構(gòu)進行橫向切分,自下而上分解成數(shù)字邏輯電路、計算機組成原理、匯編程序設(shè)計、操作系統(tǒng)、編譯原理、程序設(shè)計等課程,而且每門課程都僅局限在本抽象層,相互之間幾乎沒有關(guān)聯(lián),學(xué)生對整個計算機系統(tǒng)的認識過程就像“盲人摸象”一樣,很難形成一個對完整計算機系統(tǒng)的全面認識。雖然國內(nèi)高校也有計算機系統(tǒng)概論、計算機系統(tǒng)入門或?qū)д撝惖恼n程,但內(nèi)容廣而不深,什么都講一點,什么都講不透,基本上是計算機課程概論,而不是計算機系統(tǒng)概論。
其次,美國四校都采用了分流培養(yǎng)模式,都設(shè)置了偏硬件或計算機系統(tǒng)的專業(yè)或方向。例如,有電子工程(EE)、電子與計算機工程(ECE)、計算機工程(CE)和計算機系統(tǒng)等專業(yè)或方向。而目前國內(nèi)大多數(shù)高校都只有一個專業(yè),即計算機科學(xué)與技術(shù),專門分出ECE、CE和計算機系統(tǒng)方向進行人才培養(yǎng)的學(xué)校很少。國內(nèi)絕大多數(shù)高校只能培養(yǎng)應(yīng)用程序員,而且是對計算機系統(tǒng)底層知之甚少的應(yīng)用程序員。
最后,美國四校在計算機系統(tǒng)入門課后面都開設(shè)了關(guān)于數(shù)字系統(tǒng)設(shè)計的課程,課程內(nèi)容涵蓋了數(shù)字邏輯電路和組成原理兩門課的基本內(nèi)容,并要求學(xué)生用EDA方式設(shè)計相對完整的流水線CPU,而且都是由EE(ECE)部門開設(shè),但并不要求所有學(xué)生都學(xué),通常是偏硬件類的EE、ECE、CE和計算機系統(tǒng)方向的學(xué)生必學(xué),其他方向?qū)W生選修。反觀國內(nèi)絕大多數(shù)高校,基本上都是先上數(shù)字邏輯電路(有些合并了一些模電內(nèi)容)課程,然后上組成原理課程(有些組成原理課程上的是微機原理與接口的內(nèi)容),而且這兩門課程基本上都是所有學(xué)生的必修課程,并沒有考慮不同方向?qū)W生對于計算機底層硬件知識和硬件設(shè)計能力的不同需求。目前國內(nèi)大多數(shù)學(xué)校的組成原理課程教學(xué)基本上還是沿用傳統(tǒng)的教學(xué)理念,教學(xué)內(nèi)容還停留在計算機硬件的基本構(gòu)成和基本設(shè)計原理層面,既不像國外的數(shù)字系統(tǒng)設(shè)計那種硬件設(shè)計課程,能夠讓學(xué)生真正了解如何用硬件描述語言通過FPGA來設(shè)計現(xiàn)代計算機硬件系統(tǒng);也不是一門關(guān)于計算機系統(tǒng)的入門課程,能夠讓學(xué)生全面地理解整個計算機系統(tǒng)的實現(xiàn)機理。因此,目前國內(nèi)絕大多數(shù)高校的組成原理課程的教學(xué),既沒能達到培養(yǎng)學(xué)生利用現(xiàn)代化工具進行實際硬件設(shè)計的能力,也沒有讓學(xué)生學(xué)會運用機器底層硬件和系統(tǒng)結(jié)構(gòu)知識來增強高效軟件開發(fā)和程序調(diào)試的能力,更沒有通過該課程讓學(xué)生建立起計算機軟、硬件系統(tǒng)的整體概念。
總之,國內(nèi)大學(xué)計算機專業(yè)教育在“系統(tǒng)觀”培養(yǎng)方面還存在一些問題,這點從近五年來全國計算機專業(yè)研究生入學(xué)考試的抽樣結(jié)果可以得到印證。2009年開始,計算機專業(yè)的研究生入學(xué)考試采用全國統(tǒng)考方式,計算機專業(yè)基礎(chǔ)綜合統(tǒng)考科目包括數(shù)據(jù)結(jié)構(gòu)、組成原理、操作系統(tǒng)和網(wǎng)絡(luò)四門課程,總分為150分。五年來的抽樣結(jié)果顯示,全卷平均分每年僅在60~78之間,試題統(tǒng)計難度(單選題的試題難度指答對人數(shù)/總?cè)藬?shù),綜合應(yīng)用題的試題難度指樣本平均分/該題總分,最終難度為加權(quán)平均值)僅在0.41~0.52之間,其中組成原理最低,特別是其綜合應(yīng)用題的難度僅在0.181~0.440之間,五年共10個綜合應(yīng)用題,只有兩題的難度達到了0.4以上,說明所有考生平均僅掌握所考內(nèi)容的大約30%左右,有的方面只有20%不到,也即考生們對絕大部分綜合應(yīng)用能力考核內(nèi)容都沒有掌握。從抽樣省份來看,前三年抽樣的大多是高等教育水平比較高的地區(qū),可想而知,全國的抽樣數(shù)據(jù)應(yīng)該更差。近五年的綜合應(yīng)用題抽樣數(shù)據(jù)表明,試題統(tǒng)計難度與解題涉及的知識點個數(shù)相關(guān)性較大,通常涉及的知識點越多得分越差,說明學(xué)生的綜合應(yīng)用能力較弱,平時缺乏對相關(guān)知識和概念關(guān)聯(lián)性的思考。
根據(jù)近年來對全國研究生計算機專業(yè)基礎(chǔ)綜合統(tǒng)考科目考試成績的抽樣調(diào)查結(jié)果,可以看出國內(nèi)大學(xué)計算機本科專業(yè)存在“輕應(yīng)用、缺關(guān)聯(lián)、少綜合、無系統(tǒng)觀”的問題[3]。
三、國內(nèi)大學(xué)相關(guān)教學(xué)改革概況
目前,越來越多的高校發(fā)現(xiàn)計算機專業(yè)基礎(chǔ)課程教學(xué)中的一些問題,開始注重學(xué)生的系統(tǒng)能力培養(yǎng),強化學(xué)生的“系統(tǒng)觀”。
目前為止,已經(jīng)有一些高校以MIPS為模型機,對數(shù)字系統(tǒng)設(shè)計的相關(guān)內(nèi)容進行了深入的講解和實踐,也有一些高校同時把CPU設(shè)計與操作系統(tǒng)和編譯的內(nèi)容融合起來進行實驗課程的開設(shè)。浙江大學(xué)多年來每年在暑假都會開設(shè)有關(guān)CPU及其計算機系統(tǒng)設(shè)計的選修課;東南大學(xué)也專門開設(shè)了面向所有學(xué)生的計算機系統(tǒng)綜合實驗課程;北京航空航天大學(xué)從2006年開始籌劃,花了5年時間實現(xiàn)了突破,在相關(guān)的數(shù)電和組原、OS及編譯原理課程中逐步讓學(xué)生完成一個完整計算機系統(tǒng)的設(shè)計;清華大學(xué)目前也已經(jīng)完成了計算機綜合實驗平臺的所有軟、硬件部分的開發(fā),準備在所有本科生中開設(shè)計算機系統(tǒng)綜合實驗課程。此外,中科大和國防科大等高校也一直在實施本科生的計算機系統(tǒng)設(shè)計能力培養(yǎng)計劃??上驳氖牵恍┓侵攸c高校的任課老師也在組成原理課程的教學(xué)及其相關(guān)實驗中,引入了以MIPS為模型機的 CPU設(shè)計的教學(xué)和實驗內(nèi)容。
另一方面,像復(fù)旦大學(xué)軟件學(xué)院和上海交大軟件學(xué)院等則開設(shè)了與CMU的CS 213類似的課程[4],北京大學(xué)也在去年全盤引入了CMU的CS 213課程教學(xué)內(nèi)容。但是,總的來說,目前在國內(nèi)全面開展像CMU的CS 213那樣的課程教學(xué)困難還不小,對任課教師和學(xué)生來說都是一個不小的挑戰(zhàn)。
四、南京大學(xué)相關(guān)教學(xué)改革思路和做法
根據(jù)對計算機相關(guān)領(lǐng)域目前發(fā)展情況的分析以及對國外一流大學(xué)計算機相關(guān)專業(yè)教學(xué)情況的調(diào)查,我系在新的2013版教學(xué)計劃中,實施分流培養(yǎng)機制,提供了計算機科學(xué)、計算機系統(tǒng)、計算機應(yīng)用、軟件工程和信息安全五個方向。
在“系統(tǒng)觀”培養(yǎng)方面,其基本培養(yǎng)目標為:建立計算機系統(tǒng)完整概念,深刻理解計算機系統(tǒng)的層次化結(jié)構(gòu)。包括:理解計算機系統(tǒng)中各個抽象層之間的相互轉(zhuǎn)換關(guān)系,了解計算機指令集體系結(jié)構(gòu)的設(shè)計原則和設(shè)計原理,具備使用HDL進行計算機硬件設(shè)計的基本能力,深刻理解OS和硬件之間的分工和銜接關(guān)系,理解掌握從硬件角度出發(fā)進行編譯優(yōu)化的基本技術(shù),深刻理解從硬件角度出發(fā)編制高效程序的基本原理,提高利用硬件知識進行程序調(diào)試的能力。特別對于計算機系統(tǒng)方向的學(xué)生,在系統(tǒng)能力方面則要求更高,在CPU設(shè)計、體系結(jié)構(gòu)、操作系統(tǒng)、編譯技術(shù)和并行處理技術(shù)等方面都有相應(yīng)的實踐要求。
在2013版教學(xué)計劃中,重新規(guī)劃了相關(guān)的一系列課程,并采用以下思路對相關(guān)課程進行重新建設(shè):(1)根據(jù)系統(tǒng)能力培養(yǎng)總體目標,規(guī)劃好相關(guān)課程各自涵蓋的知識結(jié)構(gòu)和框架體系,合理定位各門課程的教學(xué)目標,把每個知識點落實到具體課程中。(2)根據(jù)相關(guān)知識點總體框架,擬定各個相關(guān)課程之間知識點銜接方案,并且在教學(xué)過程中明確各知識點在不同課程之間的關(guān)系。(3)根據(jù)規(guī)劃分頭編寫或修訂教材及教案,并在統(tǒng)一的框架下建設(shè)相關(guān)課程。(4)在保留各課程獨立實驗平臺的同時,構(gòu)建一個公共實驗平臺,使相關(guān)課程的實驗內(nèi)容按照一定的關(guān)系有機聯(lián)系起來。
2013版教學(xué)計劃中有一組課程是所有方向?qū)W生都必修的學(xué)科平臺準入和學(xué)科平臺準出課程。學(xué)科平臺準入課程是指轉(zhuǎn)系學(xué)生只有選讀并考試合格后才有資格轉(zhuǎn)入我系學(xué)習(xí)的最低門檻課程;學(xué)科平臺準出課程是指學(xué)生只有修讀合格后才能從我系畢業(yè)的最低門檻課程。
與系統(tǒng)能力培養(yǎng)密切相關(guān)的準入課程是“程序設(shè)計基礎(chǔ)”和“數(shù)字邏輯電路”;而與系統(tǒng)能力培養(yǎng)密切相關(guān)的準出課程是“計算機系統(tǒng)基礎(chǔ)”、“操作系統(tǒng)”和“計算機網(wǎng)絡(luò)”。
每個方向有幾門方向必修課程和方向指選課程。方向必修課程是該方向?qū)W生必選的方向基礎(chǔ)課程,方向指選課程是為該方向?qū)W生指定的選課范圍內(nèi)的方向相關(guān)課程。例如,對于計算機系統(tǒng)方向,其方向必修課程是“計算機組成與設(shè)計”、“計算機體系結(jié)構(gòu)”和“編譯原理”;而在方向指選課程中,與系統(tǒng)能力密切相關(guān)有“計算機系統(tǒng)綜合實驗”、“并行處理技術(shù)”、“LINUX分析”、“微機原理與接口”和“嵌入式系統(tǒng)”等課程,也即計算機系統(tǒng)方向?qū)W生必須在這些課程中選修一定數(shù)量的課程。
圖3給出了整個教學(xué)計劃中與“系統(tǒng)觀”培養(yǎng)密切相關(guān)的課程設(shè)置,圖中箭頭描述了課程的先后依賴關(guān)系。
從圖3可看出,所有相關(guān)課程中,“計算機系統(tǒng)基礎(chǔ)”是最核心的課程,其先行課程是“程序設(shè)計基礎(chǔ)”和“數(shù)字邏輯電路”,與其相關(guān)的后續(xù)課程有“計算機網(wǎng)絡(luò)”、“操作系統(tǒng)”、“計算機組成與設(shè)計”、“計算機體系結(jié)構(gòu)”、“編譯原理”、“并行處理技術(shù)”、“微機原理與接口”、“嵌入式系統(tǒng)”、“LINUX分析”和“計算機系統(tǒng)綜合實驗”。
課程設(shè)置基本思路是“從兩頭到中間、從框架到細節(jié)”,即先開設(shè)頂層的程序設(shè)計課程和最底層的數(shù)字邏輯電路課程;然后再在“計算機系統(tǒng)基礎(chǔ)”課程中,從兩頭到中間,把頂層程序設(shè)計的內(nèi)容和底層電路的內(nèi)容,按照程序員視角串起來,以形成對計算機系統(tǒng)的全面的和系統(tǒng)的框架性整體認識;在此基礎(chǔ)上,再分別在其他后續(xù)課程中,介紹計算機系統(tǒng)底層的硬件以及操作系統(tǒng)和編譯器等層次的實現(xiàn)細節(jié)。
圍繞系統(tǒng)能力培養(yǎng)目標,根據(jù)課程之間的相互關(guān)系,我們確立了各課程定位如下:
(1)程序設(shè)計基礎(chǔ)。該課程是學(xué)科平臺準入課程,所有學(xué)生必修。它主要介紹高級語言編程技術(shù)的基礎(chǔ)內(nèi)容,讓學(xué)生初步理解高級語言及高級語言程序設(shè)計涉及的概念,初步理解圖1所示的計算機系統(tǒng)中最上面三個抽象層(問題、算法和程序)及其相互轉(zhuǎn)換關(guān)系。學(xué)完該課程后,學(xué)生能夠了解到計算機解決應(yīng)用問題首先必須將其轉(zhuǎn)換為算法,然后用某種編程語言將算法編寫成程序才能在計算機上運行。因而,學(xué)完本課程后,應(yīng)該希望進一步了解為什么計算機能夠執(zhí)行程序、計算機如何執(zhí)行程序等問題。
(2)數(shù)字邏輯電路。該課程是學(xué)科平臺準入課程,所有學(xué)生必修。它主要圍繞組合邏輯和時序邏輯兩大核心內(nèi)容,在邏輯門到功能部件這兩個層次展開,以后續(xù)課程中用到的功能部件(如半加器、全加器、加法器、比較器、編碼器、譯碼器、觸發(fā)器、寄存器、移位器、內(nèi)存儲器等)作為數(shù)字邏輯電路設(shè)計實例進行介紹,初步掌握圖1所示的計算機系統(tǒng)中最下面的三層(功能部件、門電路和器件)相關(guān)內(nèi)容。學(xué)完該課程后,學(xué)生能夠了解到目前主流計算機解決所有問題的最根本的基礎(chǔ)是布爾代數(shù)和數(shù)字邏輯電路,并了解到利用數(shù)字邏輯電路可以構(gòu)建執(zhí)行程序所需的所有功能部件。
(3)計算機系統(tǒng)基礎(chǔ)。該課程是學(xué)科平臺準出課程,所有學(xué)生必修。它是一門新開設(shè)課程,主要介紹高級語言程序中的數(shù)據(jù)類型及其運算、語句和過程調(diào)用等是如何在計算機系統(tǒng)中實現(xiàn)的,從宏觀上介紹計算機系統(tǒng)涉及的各個層次,使學(xué)生從整體上了解計算機系統(tǒng)全貌和相關(guān)知識體系,初步理解圖1所示的計算機系統(tǒng)中的每一個抽象層及其相互轉(zhuǎn)換關(guān)系。學(xué)完該課程后,學(xué)生能從程序員角度認識計算機系統(tǒng);能夠建立高級語言程序、ISA、OS、編譯器、鏈接器等之間的相互關(guān)聯(lián);對指令在硬件上的執(zhí)行過程和指令的底層硬件執(zhí)行機制有一定的認識和理解。從而增強學(xué)生在程序調(diào)試、性能提升、程序移植和健壯性等方面的能力,并為后續(xù)的“計算機組成與設(shè)計”、“操作系統(tǒng)”、“計算機體系結(jié)構(gòu)”等課程打下堅實基礎(chǔ)。由此可見,該課程可以作為“程序設(shè)計基礎(chǔ)”課程的深入內(nèi)容,能起到為其解惑答疑的作用,學(xué)完該課程,學(xué)生完全應(yīng)該能夠回答為何計算機能夠執(zhí)行程序以及計算機如何執(zhí)行程序等問題。
(4)操作系統(tǒng)。該課程是學(xué)科平臺準出課程,所有學(xué)生必修。它將系統(tǒng)地講解操作系統(tǒng)的基本概念和方法、設(shè)計原理和實現(xiàn)技術(shù)。主要內(nèi)容包括:處理器管理,同步、通信和死鎖,存儲管理,設(shè)備管理,文件管理,操作系統(tǒng)安全和保護,分布式操作系統(tǒng)和網(wǎng)絡(luò)操作系統(tǒng)。既闡述經(jīng)典內(nèi)容,又以當代主流操作系統(tǒng)作為實例介紹最新發(fā)展;既注重操作系統(tǒng)的理論知識,又重視操作系統(tǒng)的實踐和應(yīng)用。操作系統(tǒng)是一門實踐性、應(yīng)用性很強的課程,學(xué)習(xí)這門課程必須動手實踐。實驗將配合原理教學(xué)同步進行,課程實驗以設(shè)計性實驗為主,進行模擬類操作系統(tǒng)實驗,要求學(xué)生能夠基于虛擬機環(huán)境,實現(xiàn)一個可運行的操作系統(tǒng)。實驗通過對操作系統(tǒng)原理的剖析,輔助學(xué)生深入理解抽象原理,強化學(xué)生對操作系統(tǒng)總體結(jié)構(gòu)的理解和認知,提高學(xué)生的動手實踐能力,并幫助學(xué)生對操作系統(tǒng)建立起理性、全面、完整和準確的概念。
(5)計算機組成與設(shè)計。該課程是計算機系統(tǒng)方向?qū)W生的必修課程。它主要從寄存器傳送級以上層次介紹單處理器計算機設(shè)計的基本原理和設(shè)計細節(jié),重點在CPU設(shè)計和存儲器設(shè)計方面,使學(xué)生在理解高級語言程序與機器級代碼之間對應(yīng)關(guān)系的基礎(chǔ)上,進一步理解機器級代碼如何在具體硬件系統(tǒng)中執(zhí)行的過程以及如何構(gòu)造計算機硬件系統(tǒng)。因而,該課程主要涉及圖1中的第5層(指令集體系結(jié)構(gòu))和第6層(微體系結(jié)構(gòu)),并通過實現(xiàn)細節(jié)介紹這兩個層次與上層的操作系統(tǒng)/虛擬機以及與下層的功能部件/RTL之間的關(guān)系。通過該課程的學(xué)習(xí),要求學(xué)生能夠利用硬件描述語言和FPGA開發(fā)板來設(shè)計基本的功能部件以及單周期CPU和流水線CPU。因而,在課程內(nèi)容組織方面應(yīng)該細化通用寄存器組、ALU和桶形移位器等功能部件設(shè)計的內(nèi)容,細化單周期CPU和流水線CPU設(shè)計的內(nèi)容,并講透流水線CPU設(shè)計中的各種冒險處理機制和基本的指令級并行處理的內(nèi)容。
(6)計算機體系結(jié)構(gòu)。該課程是計算機系統(tǒng)方向?qū)W生的必修課程。學(xué)生在完成單處理器計算機系統(tǒng)相關(guān)技術(shù)學(xué)習(xí)的基礎(chǔ)上,通過該課程進行多核處理器、眾核處理器、多處理機系統(tǒng)、集群系統(tǒng)等不同粒度和規(guī)模的并行計算機系統(tǒng)的工作原理、實現(xiàn)方式及其應(yīng)用方面的深入學(xué)習(xí)。因為學(xué)生已經(jīng)建立了單處理器計算機系統(tǒng)的完整概念,因而該課程重點應(yīng)該更多地轉(zhuǎn)移到超標量流水線、多核/眾核系統(tǒng)、多處理器系統(tǒng)、多計算機系統(tǒng)等并行處理系統(tǒng)方面。此外,該課程還涵蓋了數(shù)據(jù)中心、云計算系統(tǒng)和虛擬機/虛擬化方面的部分內(nèi)容。
(7)編譯原理。該課程是計算機系統(tǒng)方向?qū)W生的必修課程。學(xué)生在掌握了程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析、組成原理和操作系統(tǒng)的基礎(chǔ)上,進一步學(xué)習(xí)編譯器的設(shè)計原理和實現(xiàn)技術(shù)。它主要包括有限狀態(tài)自動機理論、形式語言分類以及詞法分析、語法分析、語義分析、中間代碼生成、中間代碼優(yōu)化和目標代碼生成的作用和方法,還介紹屬性文法的基本概念和半形式化的中間代碼生成方法。該課程的各個知識模塊綜合起來對應(yīng)的培養(yǎng)目標,是使每位學(xué)生掌握和編譯器設(shè)計相關(guān)的形式語言理論基礎(chǔ)、了解編譯器生成工具的使用方式以及實踐一個簡單編譯器的設(shè)計與實現(xiàn)過程。該課程的學(xué)習(xí)能為后續(xù)的形式語言和自動機等課程以及在軟件工程和自然語言處理等方面的研究工作打下良好的基礎(chǔ)。
(8)并行處理技術(shù)。該課程是計算機系統(tǒng)方向?qū)W生的指選課程。其主要內(nèi)容包括并行環(huán)境、并行算法、并行程序設(shè)計、并行性能評價等部分的內(nèi)容。課程總目標是通過并行計算和并行處理的基本概念、基本原理、基本方法與基本知識的講授與實踐,為計算機系統(tǒng)方向?qū)W生打下并行算法與并行處理方面的研究與應(yīng)用基礎(chǔ)。通過簡單介紹并行計算機的體系結(jié)構(gòu)、并行計算模型與并行算法的性能評價方法,掌握并行算法設(shè)計、編程實現(xiàn)與性能評價時涉及的基本知識與基本概念;通過介紹任務(wù)分解、任務(wù)調(diào)度、負載平衡、設(shè)計模式、設(shè)計技巧等知識,掌握并行算法設(shè)計的基本原理、基本方法與基本技術(shù);通過對MPI與OpenMP等編程語言或編程模型的簡單介紹,使學(xué)生掌握并行算法程序?qū)崿F(xiàn)的基本知識;通過幾類典型的數(shù)值與非數(shù)值并行算法介紹,加深學(xué)生對并行算法設(shè)計基本原理與常用方法的理解,并為實際應(yīng)用問題的并行算法設(shè)計與并行處理打下堅實的基礎(chǔ)。
(9)微機原理與接口。該課程是計算機系統(tǒng)方向?qū)W生的指選課程。主要定位為在PC上的實例化教學(xué)課程,以目前流行的基于IA-32體系結(jié)構(gòu)的PC為實例,主要介紹IA-32提供的存儲管理機制、異常/中斷機制以及總線和接口技術(shù)。實驗重點內(nèi)容在PC的I/O接口技術(shù),包括在FPGA實驗板上利用CPU軟核進行總線、中斷和DMA實驗,利用硬件描述語言(HDL)進行UART等I/O接口設(shè)計的實驗等。
(10)嵌入式系統(tǒng)。該課程是計算機系統(tǒng)方向?qū)W生的指選課程。主要定位為在嵌入式系統(tǒng)方面的實例化教學(xué)課程。主要介紹嵌入式系統(tǒng)概論、嵌入式處理器、存儲器及其總線互連,嵌入式系統(tǒng)集成接口,嵌入式操作系統(tǒng),嵌入式硬件與軟件協(xié)同設(shè)計方法與工具,嵌入式應(yīng)用系統(tǒng)開發(fā)及其工具,嵌入式系統(tǒng)功耗分析與優(yōu)化設(shè)計等。實驗重點內(nèi)容是基于ARM處理器和μCOS-Ⅱ操作系統(tǒng)的簡單嵌入式軟件開發(fā)技術(shù)。
(11)LINUX分析。該課程是計算機系統(tǒng)方向?qū)W生的指選課程。它是操作系統(tǒng)的后續(xù)課程,以剖析Linux內(nèi)核實現(xiàn)技術(shù)為切入點,結(jié)合Linux內(nèi)核代碼,從用戶層及內(nèi)核層兩個層面,圍繞“原理、技術(shù)、應(yīng)用”三個角度剖析Linux的內(nèi)部結(jié)構(gòu)與內(nèi)核實現(xiàn)機制,幫助學(xué)生從系統(tǒng)實現(xiàn)角度理解現(xiàn)代操作系統(tǒng)的系統(tǒng)架構(gòu)、實現(xiàn)機理及關(guān)鍵技術(shù)。課程以“技術(shù)專題”形式組織教學(xué)內(nèi)容,每個專題由知識講授與課程實驗組成。核心知識模塊包括進程管理、進程調(diào)度、進程通信、存儲管理、系統(tǒng)調(diào)用與中斷處理、文件管理。每個知識模塊按“原理設(shè)計基本思想―實現(xiàn)相關(guān)技術(shù)問題―Linux內(nèi)核實現(xiàn)途徑―用戶系統(tǒng)編程體驗”為主線組織具體內(nèi)容。
(12)計算機系統(tǒng)綜合實驗。該課程是計算機系統(tǒng)方向?qū)W生的指選課程。主要目的在于將本科計算機教學(xué)中的基礎(chǔ)課程,如程序設(shè)計、數(shù)字邏輯電路、操作系統(tǒng)、計算機組成與設(shè)計等課程融會貫通,使學(xué)生從系統(tǒng)的角度對整個計算機有一個全面的認識和了解,并能夠設(shè)計和實現(xiàn)一個簡單的計算機系統(tǒng)。本綜合實驗區(qū)別于一般的基礎(chǔ)實驗課程從單個層面出發(fā)的設(shè)計局限性,它要求學(xué)生把計算機軟件和硬件相結(jié)合,并強調(diào)各個基礎(chǔ)課程之間的銜接與聯(lián)系。實驗要求學(xué)生能夠?qū)τ趶母呒壋绦蛘Z言開發(fā)到程序的系統(tǒng)管理、編譯與代碼轉(zhuǎn)換以及硬件運行的選擇與實現(xiàn)等有一個全面的掌握。實驗還強調(diào)學(xué)生的動手能力和對系統(tǒng)的設(shè)計能力,培養(yǎng)能夠獨立開發(fā)一套簡單系統(tǒng)并能對整個系統(tǒng)進行改進和優(yōu)化的能力。
當然,除了上述課程以外,其他課程對學(xué)生系統(tǒng)能力培養(yǎng)也有一定的作用。除了學(xué)科平臺準入和準出課程以外,其他方向的學(xué)生還可以選修上述其他課程,有些課程還可能是某個方向的必修課和方向指選課,而計算機系統(tǒng)方向的學(xué)生除了上述給出的必修課和指選課以外,也還可以選擇一些偏理論或偏應(yīng)用的課程進行修讀。
后PC時代WSC、PMD和PC等共存,使得原先基于PC而建立起來的專業(yè)教學(xué)內(nèi)容已經(jīng)遠遠不能反映現(xiàn)代社會對計算機專業(yè)人才的培養(yǎng)要求,原先計算機專業(yè)人才培養(yǎng)強調(diào)“程序”設(shè)計也變?yōu)楦鼜娬{(diào)“系統(tǒng)”設(shè)計。這需要我們重新規(guī)劃教學(xué)體系,調(diào)整教學(xué)理念和教學(xué)內(nèi)容,加強學(xué)生系統(tǒng)能力培養(yǎng),使學(xué)生能夠深刻理解計算機系統(tǒng)整體概念,更好地掌握軟/硬件協(xié)同設(shè)計和程序開發(fā)技術(shù),從而更多地培養(yǎng)出滿足業(yè)界需求的各類計算機專業(yè)人才。
參考文獻:
[1] 王志英,周興社,袁春風(fēng)等. 計算機專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設(shè)置研究[J]. 計算機教育,2013(9):1-6.
[2] 王帥,袁春風(fēng). 美國一流大學(xué)計算機組成與系統(tǒng)結(jié)構(gòu)實驗課程研究[J]. 計算機教育,2011(17):121-124.
關(guān)鍵詞:計算機學(xué)科;基礎(chǔ)平臺;公共核心課程
中圖分類號:G642文獻標識碼:B
為了適應(yīng)在沿海開放地區(qū)建設(shè)具有鮮明特色的現(xiàn)代化民族大學(xué)的目標要求,2005年,大連民族學(xué)院重新制定了本科綜合培養(yǎng)方案,并設(shè)置了分級平臺的基本框架,其中,課程類別分為:公共基礎(chǔ)教育平臺、學(xué)科基礎(chǔ)教育平臺和專業(yè)教育平臺??紤]到計算機科學(xué)與技術(shù)專業(yè)、軟件工程專業(yè)、網(wǎng)絡(luò)工程專業(yè)同屬計算機學(xué)科,所以三個專業(yè)共同構(gòu)建了一個統(tǒng)一的學(xué)科基礎(chǔ)教育平臺,并形成了一個公共核心課程體系。該體系主要是參照IEEE-CS/ACM的計算教程CC2004(Computing Curriculum 2004)以及教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會的中國計算機本科教學(xué)推薦意見CCC2002(China Computing Curriculum 2002),并結(jié)合學(xué)院的師資情況以及社會對計算機人才的基本要求進行設(shè)計的。經(jīng)過4年的運行,該方案不斷完善,取得了良好的教學(xué)效果。本文具體介紹了大連民族學(xué)院計算機科學(xué)與工程學(xué)院計算機學(xué)科基礎(chǔ)平臺公共核心課程體系,并結(jié)合2006年的《高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)》(以下簡稱《規(guī)范》)以及2007年的《高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)公共核心知識體系與課程(建議)》(以下簡稱《建議》),介紹了課程定位、學(xué)科基礎(chǔ)平臺公共核心課程設(shè)置以及這些課程對《建議》中的公共核心知識體系的覆蓋分析。
1課程定位
大連民族學(xué)院直屬于國家民族事務(wù)委員會,學(xué)校一直堅持立足沿海,為少數(shù)民族、民族地區(qū)發(fā)展和東北老工業(yè)基地全面振興服務(wù)的辦學(xué)宗旨,堅持新校新辦、高起點高標準建設(shè)的方針。學(xué)校堅持以人為本、因材施教、特色辦學(xué)的教育理念,把培養(yǎng)具有創(chuàng)新精神、實踐能力、開放意識和適應(yīng)社會需要的各民族高素質(zhì)人才作為根本任務(wù)。大連民族學(xué)院計算機專業(yè)(包括計算機科學(xué)與技術(shù)、軟件工程和網(wǎng)絡(luò)工程三個本科專業(yè))畢業(yè)生每年的考研率在10%左右,大多數(shù)畢業(yè)生主要從事軟件開發(fā)工作。其中,80%左右分布在大連市各大IT類企業(yè)(因為軟件是大連的支柱產(chǎn)業(yè)),其他25%左右分布在全國各地。調(diào)查表明,畢業(yè)生應(yīng)該掌握的專業(yè)基礎(chǔ)知識基本相同,而且,不管哪個專業(yè)(計算機科學(xué)與技術(shù)或軟件工程或網(wǎng)絡(luò)工程),只要真正學(xué)好計算機學(xué)科公共核心知識體系,就可以在IT領(lǐng)域立足了。
根據(jù)以上分析,大連民族學(xué)院計算機專業(yè)要立足大連,面向全國,培養(yǎng)和造就高素質(zhì)的應(yīng)用型計算機人才,首先要建立計算機學(xué)科基礎(chǔ)平臺公共核心課程,然后在此基礎(chǔ)上構(gòu)建各個專業(yè)的課程體系。這些課程要體現(xiàn)各專業(yè)對學(xué)科的最低要求,要體現(xiàn)課程設(shè)置的科學(xué)性和先進性,要充分考慮學(xué)校人才培養(yǎng)方案基本框架對學(xué)時的限制,還要考慮選用成熟的課程。
2核心課程設(shè)置
根據(jù)課程定位,參照CC2004和CCC2002,并結(jié)合學(xué)院的師資情況以及社會對計算機人才的基本要求,計算機學(xué)科基礎(chǔ)平臺公共核心課程設(shè)置如下:程序設(shè)計基礎(chǔ)面向?qū)ο蟪绦蛟O(shè)計、計算機組織與及結(jié)構(gòu)、離散數(shù)學(xué)、數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)、數(shù)據(jù)庫概論、計算機網(wǎng)絡(luò)和軟件工程等9門課程。其中,“程序設(shè)計基礎(chǔ)”課整合了高級語言程序設(shè)計和計算機導(dǎo)論兩門課,“計算機組織與結(jié)構(gòu)”課整合了數(shù)字邏輯、匯編語言、計算機組成原理、計算機體系結(jié)構(gòu)四門課,并對所有核心課程內(nèi)容進行了優(yōu)化。此外,設(shè)置“軟件工程”課主要是考慮計算機專業(yè)本科生畢業(yè)后,主要從事軟件開發(fā)工作,所以應(yīng)該掌握軟件工程的基本概念、基本原理和基本方法,并能運用這些概念、原理和方法,從事或參與軟件開發(fā)活動。表1是課程設(shè)置的具體情況。
表1計算機學(xué)科基礎(chǔ)平臺公共核心課程設(shè)置一覽表
序號課程名稱涵蓋核心知識單元非核心知識單元理論學(xué)時實驗學(xué)時備注
1程序設(shè)計基礎(chǔ)PL1,PF1,PF2,AL3SP1,PL3,HC14836含計算機導(dǎo)論8學(xué)時
2面向?qū)ο蟪绦蛟O(shè)計PL6,PF5PL4,PL54222
3計算機組織與結(jié)構(gòu)AR2,AR3,AR4, AR5,AR6AR16424含數(shù)字邏輯12學(xué)時
4離散數(shù)學(xué)DS1,DS2,DS3, DS5代數(shù)系統(tǒng)5410含代數(shù)系統(tǒng)10學(xué)時
5數(shù)據(jù)結(jié)構(gòu)與算法AL3,PF2,PF3, PF4AL15418含文件2學(xué)時
6操作系統(tǒng)OS2,OS3,OS4,
OS5,OS6,OS85410
7數(shù)據(jù)庫概論IM1,IM2,IM3,IM4,
IM5,IM6,IM74816
8計算機網(wǎng)絡(luò)NC1,NC2,NC3,
NC4,NC64824
9軟件工程SE1,SE3,SE4,SE5,
SE6,SE7,SE8,SP43216
合計444176
注:本表中核心知識單元指《建議》中的39個知識單元,代碼及名稱可參見《規(guī)范》(計算機科學(xué)專業(yè)方向)表1。
在這些公共核心課程的基礎(chǔ)上,計算機科學(xué)與技術(shù)專業(yè)、軟件工程專業(yè)和網(wǎng)絡(luò)工程專業(yè)構(gòu)建相應(yīng)的專業(yè)教育平臺,并設(shè)置相應(yīng)的專業(yè)方向課程群,如:嵌入式軟件、信息系統(tǒng)、網(wǎng)絡(luò)應(yīng)用、網(wǎng)絡(luò)管理、數(shù)據(jù)庫應(yīng)用、動漫游戲等。
3核心知識單元的覆蓋分析
《建議》中,計算機科學(xué)與技術(shù)專業(yè)公共核心知識體系包括8個知識領(lǐng)域,含39個知識單元,共342個核心學(xué)時,大連民族學(xué)院計算機學(xué)科基礎(chǔ)平臺公共核心課程大約覆蓋其中274學(xué)時的內(nèi)容,覆蓋率達到80.1%。通過分析,一方面體現(xiàn)了我們的設(shè)計具有一定的科學(xué)性和先進性,另一方面也看到不足,未覆蓋學(xué)時達到70學(xué)時,說明核心知識單元的覆蓋率還有提高的空間;而超覆蓋學(xué)時達到106學(xué)時,說明單位學(xué)時的教學(xué)效率還有待提高。當然,各學(xué)校還需要根據(jù)自己的實際情況加以限定。表2是具體的覆蓋分析。
表2學(xué)科基礎(chǔ)平臺核心課程對公共核心知識單元(《建議》)的覆蓋分析
序號知識領(lǐng)域核心學(xué)時知識單元原始學(xué)時覆蓋學(xué)時未覆蓋/超覆蓋學(xué)時
1DS 離散結(jié)構(gòu)60DS1函數(shù)、關(guān)系與集合12120
DS2基本邏輯18180
DS3證明技巧24816
DS5圖和樹660
2PF 程序設(shè)計基礎(chǔ)67PF1程序設(shè)計基本結(jié)構(gòu)1534-19
PF2算法與問題求解844
PF3基本數(shù)據(jù)結(jié)構(gòu)30300
PF4遞歸844
PF5事件驅(qū)動程序設(shè)計624
3AL 算法28AL3基本算法24186
AL4分布式算法404
4AR 計算機體系結(jié)構(gòu)與組織60AR2數(shù)據(jù)的機器級表示68-2
AR3匯編級機器組織18126
AR4存儲系統(tǒng)組織和結(jié)構(gòu)1082
AR5接口和通信1284
AR6功能組織1416-2
5OS 操作系統(tǒng)32OS1操作系統(tǒng)概述220
OS2操作系統(tǒng)原理440
OS3并發(fā)性816-8
OS4調(diào)度與分派642
(續(xù)表)
序號知識領(lǐng)域核心學(xué)時知識單元原始學(xué)時覆蓋學(xué)時未覆蓋/超覆蓋學(xué)時
5OS 操作系統(tǒng)OS5內(nèi)存管理610-4
OS6設(shè)備管理28-6
OS7安全與保護220
OS8文件系統(tǒng)28-6
6NC 網(wǎng)絡(luò)及其計算48NC1網(wǎng)絡(luò)及其計算介紹440
NC2通信與網(wǎng)絡(luò)2034-14
NC3網(wǎng)絡(luò)安全826
NC4客戶/服務(wù)器計算舉例826
NC5構(gòu)建Web應(yīng)用422
NC6 網(wǎng)絡(luò)管理440
7PL 程序設(shè)計語言13PL1程序設(shè)計語言概論442
PL6面向?qū)ο蟪绦蛟O(shè)計938-29
8IM 信息管理34IM1信息模型與信息系統(tǒng) 440
IM2數(shù)據(jù)庫系統(tǒng)440
IM3數(shù)據(jù)庫系統(tǒng)642
IM4關(guān)系數(shù)據(jù)庫24-2
IM5數(shù)據(jù)庫查詢語言612-6
IM6關(guān)系數(shù)據(jù)庫設(shè)計68-2
IM7事務(wù)處理612-6
合計34234238070/-106
注:表中超覆蓋學(xué)時用負數(shù)表示。
4小結(jié)
本文介紹了大連民族學(xué)院計算機學(xué)科基礎(chǔ)平臺公共核心課程設(shè)計。該方案從我院2005級開始實施以來,效果很好。一方面,各專業(yè)的優(yōu)質(zhì)教學(xué)資源可以共享了;另一方面,通過整合教學(xué)資源,學(xué)科專業(yè)的整體水平也提高了。計算機學(xué)科通過設(shè)置公共核心課程,程序設(shè)計基礎(chǔ)課程、數(shù)據(jù)結(jié)構(gòu)與算法課程分別于2007年、2008年被評為遼寧省精品課。今后,將進一步優(yōu)化計算機學(xué)科基礎(chǔ)平臺課程體系,繼續(xù)完善各課程的知識單元和知識點,為計算機學(xué)科基礎(chǔ)平臺建設(shè)以及各專業(yè)方向課程體系建設(shè)做好基礎(chǔ)性工作。
參考文獻:
[1] 教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會. 計算機科學(xué)與技術(shù)本科專業(yè)規(guī)范[M]. 北京:高等教育出版社,2006.
關(guān)鍵詞: 江南大學(xué) 《計算機組成與系統(tǒng)結(jié)構(gòu)》 實踐教學(xué) 實踐現(xiàn)狀 應(yīng)對方案
一、引言
當前,隨著物聯(lián)網(wǎng)技術(shù)和產(chǎn)業(yè)的持續(xù)發(fā)展,嵌入式技術(shù)已成為信息產(chǎn)業(yè)中發(fā)展最快、應(yīng)用最廣的計算機技術(shù)之一,被廣泛應(yīng)用于網(wǎng)絡(luò)通信、消費電子、醫(yī)療電子、工業(yè)控制和交通系統(tǒng)等領(lǐng)域。資料顯示,在2009年中國軟件業(yè)收入的9513億元中,嵌入式占了將近20%,而且每年都以近40%的速度增長。嵌入式系統(tǒng)是以應(yīng)用為中心的軟硬件混成專用計算機系統(tǒng),需要設(shè)計人員統(tǒng)籌考慮軟硬件設(shè)計,以最大限度地適應(yīng)應(yīng)用系統(tǒng)對功能、成本、體積、功耗、可靠性等方面的要求。傳統(tǒng)的軟件、硬件分別進行的設(shè)計方法難以滿足嵌入式系統(tǒng)的設(shè)計需求,而需要設(shè)計人員進行軟硬件的綜合考慮和協(xié)同設(shè)計。
然而和上述趨勢對應(yīng)的是,目前計算機類本科專業(yè)軟件方面的教學(xué)和實踐都實施得較好。學(xué)生除了課堂學(xué)習(xí)外,還可以利用學(xué)校和自己的計算機充分進行軟件編程的實踐和訓(xùn)練。而且軟件類課程C語言、數(shù)據(jù)庫、網(wǎng)絡(luò)等相對直觀和容易理解,容易入門。但對于硬件類的課程尤其是計算機組成與系統(tǒng)結(jié)構(gòu),學(xué)生普遍反映內(nèi)容較為抽象,如果沒有適合的實踐環(huán)節(jié)將課堂概念和實際工程聯(lián)系起來,學(xué)習(xí)效果將難以得到保障。因此,探索適合計算機組成與系統(tǒng)結(jié)構(gòu)的實踐教學(xué)工具、教學(xué)方法和配套機制,加強學(xué)生理論學(xué)習(xí)和實踐環(huán)節(jié)的聯(lián)系,建立形象直觀、便于理解的學(xué)習(xí)途徑至關(guān)重要。本文重點討論江南大學(xué)計算機組成與系統(tǒng)結(jié)構(gòu)的實踐教學(xué)實施現(xiàn)狀,在此基礎(chǔ)上提出改進方向,為增強計算機組成與系統(tǒng)結(jié)構(gòu)的教學(xué)效果作有益探討。
二、《計算機組成與系統(tǒng)結(jié)構(gòu)》實踐教學(xué)現(xiàn)狀分析
當前國內(nèi)計算機類本科專業(yè)硬件主干課程設(shè)置有兩種模式:一種是數(shù)字邏輯與數(shù)字系統(tǒng)(技術(shù)基礎(chǔ)課)計算機組成原理(專業(yè)基礎(chǔ)課)計算機體系結(jié)構(gòu)(專業(yè)課)。大多數(shù)重點院校采用這種模式。另一種是數(shù)字邏輯與數(shù)字系統(tǒng)(技術(shù)基礎(chǔ)課)計算機組成與體系結(jié)構(gòu)(專業(yè)基礎(chǔ)課)。江南大學(xué)及國內(nèi)其他許多本科高等學(xué)校采用第二種課程設(shè)置模式。
《計算機組成與系統(tǒng)結(jié)構(gòu)》課程綜合了《計算機組成原理》和《計算機體系結(jié)構(gòu)》兩門課程的要求,要求學(xué)生掌握計算機系統(tǒng)各個部件的組成原理,最終從系統(tǒng)、整機的角度理解計算機的結(jié)構(gòu)與組成,是計算機類本科專業(yè)的專業(yè)基礎(chǔ)課程,以及計算機硬件與結(jié)構(gòu)方向非常重要的一門課程。這門課程的建設(shè)與教學(xué)質(zhì)量直接關(guān)系到人才培養(yǎng)中計算機硬件與結(jié)構(gòu)方向教育的成效。尤其是在當前嵌入式系統(tǒng)日益流行,軟硬件一體化設(shè)計需求不斷擴大的背景下,計算機組成與系統(tǒng)結(jié)構(gòu)課程能否達到預(yù)期效果顯得更為重要。
目前在教學(xué)實施過程中,學(xué)生普遍反映該門課程內(nèi)容較為抽象,難以和一個具體的可見的系統(tǒng)相聯(lián)系理解整個的運行過程,學(xué)習(xí)效果欠佳,依然停留在為應(yīng)付考試的習(xí)題練習(xí)為主的方式上,通過課程的學(xué)習(xí)無法鍛煉搭建完整電路系統(tǒng)的能力。這些問題急需通過實踐環(huán)節(jié)有針對性地解決。
傳統(tǒng)的計算機組成原理采用的實驗設(shè)備是在開放的電路板上用插線的方式搭建邏輯,學(xué)生通過將對應(yīng)的引腳互聯(lián)起來構(gòu)成特定的數(shù)據(jù)通路。這種方法無需編寫程序,可以直觀地顯示計算機內(nèi)部結(jié)構(gòu)和運行情況,但對學(xué)生的影響僅僅停留在實驗室階段,不能和企業(yè)的實際開發(fā)相結(jié)合,沒有更多的實用價值。
隨著硬件可重構(gòu)技術(shù)的發(fā)展,越來越多的計算機組成原理實驗課采用了基于FPGA的實驗裝置?;贔PGA的優(yōu)點在于學(xué)生可以通過自己的邏輯設(shè)計得到專用芯片,并通過實驗板上的I/O觀察芯片的運行情況,更接近實際CPU的運行狀態(tài)。目前,根據(jù)不同學(xué)校學(xué)生能力的強弱,基于FPGA的組成原理實驗采用了兩種不同的輸入方式。
一種是基于原理圖的設(shè)計方式。學(xué)生通過連接原理圖的方式,構(gòu)成自己想要的邏輯電路。將該電路下載到FPGA芯片后構(gòu)成特定的芯片,通過實驗板上的I/O觀察芯片內(nèi)部的運行情況。這種方式的優(yōu)點是直觀、易于理解。缺點是隨著系統(tǒng)變得更加復(fù)雜,原理圖輸入的方式耗費時間太長,連線也容易出錯,不太可能用于搭建復(fù)雜的系統(tǒng)。
另一種是基于硬件描述語言VHDL/Verilog的設(shè)計方式。優(yōu)點是可以利用現(xiàn)有的資源搭建較為復(fù)雜的系統(tǒng),甚至多級流水線的CPU,可以極大地提高學(xué)生的硬件設(shè)計能力。缺點是對學(xué)生的要求比較高,需要有硬件描述語言的基礎(chǔ)。
三、《計算機組成與系統(tǒng)結(jié)構(gòu)》實踐教學(xué)工具的選擇
通過上述分析,可以看出基于硬件描述語言和FPGA的組成原理實驗方式由于可與將來的企業(yè)實際開發(fā)相結(jié)合,具有較強的實際意義。學(xué)生可以通過VHDL搭建復(fù)雜和完整的硬件系統(tǒng),對于理解計算機組成原理和計算機的運行情況有非?,F(xiàn)實的意義。關(guān)鍵問題是,應(yīng)該如何選擇適當?shù)幕贔PGA的開發(fā)環(huán)境和教學(xué)方法,以適應(yīng)不同水平的學(xué)生的具體需求。
由于現(xiàn)在基于硬件描述語言已有許多公開源代碼的資源可以加以利用,因此在進行計算機組成與系統(tǒng)結(jié)構(gòu)教學(xué)和實踐中,可以圍繞某一種有代表性的CPU進行學(xué)習(xí)和實驗。如國內(nèi)外有一些學(xué)校選擇以MIPS處理器作為教學(xué)和實驗的對象。學(xué)生可以根據(jù)自己的掌握程度借鑒或自己設(shè)計某個模塊,最終形成完整的CPU。同時還可以在此基礎(chǔ)上通過匯編程序進行系統(tǒng)結(jié)構(gòu)的實驗。通過這樣的方式,學(xué)生可以將課堂講解的內(nèi)容完全與實際的CPU系統(tǒng)關(guān)聯(lián)起來,從而為將來的硬件系統(tǒng)設(shè)計奠定良好的基礎(chǔ)。而且由于所選用的開發(fā)語言和環(huán)境都和企業(yè)實際使用的一樣,可以縮短將來的工作中的學(xué)習(xí)時間。
四、《計算機組成與系統(tǒng)結(jié)構(gòu)》實踐教學(xué)機制探討
選定了適當?shù)膶嵺`語言和工具之后,還要有適合的配套管理和運作機制才能保證實踐教學(xué)的效果?,F(xiàn)在傳統(tǒng)的實驗室都是學(xué)校購買設(shè)備后由實驗室人員管理和維護,并配合任課老師在上課時間為學(xué)生提供實踐教學(xué)服務(wù)。由于實驗設(shè)備數(shù)和上課時間有限,學(xué)生并不能完全完成和理解實驗內(nèi)容。因此,我認為可以采取多種方法改善這一狀況。
1.Xilinx/Altera等FPGA提供商建立聯(lián)合實驗室,隨時可獲得提供商提供的一些最新資料和技術(shù)服務(wù),同時確保實驗室可以在課外對學(xué)生開放,可以借鑒以往機房的管理方式,讓感興趣的學(xué)生付費使用設(shè)備。
2.為學(xué)生配備或鼓勵學(xué)生購買低價FPGA設(shè)備,將實驗室?guī)Щ厮奚?,隨時可以進行FPGA系統(tǒng)的開發(fā)和調(diào)試。
3.企業(yè)建立培訓(xùn)協(xié)議,抽出整段時間送學(xué)生到專門的FPGA企業(yè)進行集中強化訓(xùn)練,積累實際項目經(jīng)驗。
將上述幾種方法相結(jié)合,可以使計算機系統(tǒng)設(shè)計課程的學(xué)習(xí)效果達到現(xiàn)在軟件開發(fā)的學(xué)習(xí)效果,為嵌入式系統(tǒng)軟硬件的開發(fā)培養(yǎng)合格的人才。
五、結(jié)語
本文分析了江南大學(xué)《計算機組成與系統(tǒng)結(jié)構(gòu)》課程的實踐環(huán)節(jié)教學(xué)的現(xiàn)狀和存在的一些具體困難,并從幾個方面提出了應(yīng)對方案。當然,這些方法依賴于計算機組成與系統(tǒng)結(jié)構(gòu)考核方式的相應(yīng)改變。只有在教學(xué)內(nèi)容、實踐形式和方法、體制和具體實施等多方面協(xié)調(diào)一致,整體推動,才能取得預(yù)期的結(jié)果。
參考文獻:
[1]任春明,劉軍.計算機組成原理實驗教學(xué)的思考與改進.實驗技術(shù)與管理,2006,10.
[2]李彩虹,屈志毅,劉剛,馬俊.“計算機組成原理”實驗課教學(xué)模式探討與實踐.高等理科教育,2006,2.
[3]陳媛,黃賢英.基于EDA技術(shù)的計算機組成原理實驗教學(xué)探索.重慶工學(xué)院學(xué)報(自然科學(xué)版),2007,2.
[4]方愷晴,石琳,林亞平.EDA技術(shù)在計算機組成原理實驗中的應(yīng)用.實驗技術(shù)與管理,2001,3.
摘 要:文章首先介紹國外相關(guān)課程的實踐教學(xué)情況;在分析對比國內(nèi)計算機組成原理課程實踐教學(xué)情況的基礎(chǔ)上,提出相應(yīng)的實踐教學(xué)改革思路,規(guī)劃出一整套實踐教學(xué)方案。南京大學(xué)在相關(guān)課程的實踐教學(xué)方面對這些改革方案進行了探索,實踐結(jié)果表明,這種改革方案是有效的。
關(guān)鍵詞:計算機組成原理;實踐教學(xué);教學(xué)改革;課程實驗
作者簡介:袁春風(fēng),女,教授,研究方向為Web信息檢索與本文挖掘、多媒體文檔處理、計算機體系結(jié)構(gòu);張澤生,男,高工,研究方向為計算機體系結(jié)構(gòu)、嵌入式系統(tǒng);蔡曉燕,女,工程師,研究方向為微電子技術(shù)、嵌入式系統(tǒng);楊若瑜,女,副教授,研究方向為圖形圖像處理;王帥,男,講師,研究方向為計算機體系結(jié)構(gòu)、嵌入式系統(tǒng)。
1 計算機組成原理實踐教學(xué)改革的必要性
計算機組成原理是計算機專業(yè)最重要的核心基礎(chǔ)課之一,在整個計算機專業(yè)教學(xué)中起著重要的承上啟下的作用。該課程對于學(xué)生完整地理解計算機系統(tǒng)的層次結(jié)構(gòu),系統(tǒng)地建立計算機整機概念,培養(yǎng)學(xué)生對計算機系統(tǒng)的分析、應(yīng)用、設(shè)計及開發(fā)能力,都具有非常重要的作用。
從國內(nèi)高校計算機組成原理課程的教學(xué)情況來看,大部分高校都把它當成一門純硬件課程進行介紹,最多加入一些匯編程序設(shè)計方面的內(nèi)容。對于課程的實驗內(nèi)容,大多數(shù)高校還是停留在驗證性實驗階段,這樣的教學(xué)理念和實驗內(nèi)容,沒有讓學(xué)生參與和經(jīng)歷從高級語言程序到機器代碼、從機器代碼到機器結(jié)構(gòu)的轉(zhuǎn)換過程,也沒有讓學(xué)生針對一個給定的指令系統(tǒng),分析設(shè)計出實現(xiàn)該指令系統(tǒng)的計算機基本部件和
完整框架結(jié)構(gòu),因而,很難使學(xué)生能夠真正了解計算機系統(tǒng)的工作原理和硬件系統(tǒng)結(jié)構(gòu),實驗手段和教學(xué)內(nèi)容與現(xiàn)代計算機技術(shù)的發(fā)展水平和實際情況脫節(jié),與國外一流大學(xué)相比有很大差距,因此,迫切需要進行教學(xué)內(nèi)容和教學(xué)模式的改革探索,特別是實踐環(huán)節(jié)的教學(xué)改革。
2 國外一流大學(xué)相關(guān)課程及其實驗情況
為了更好地規(guī)劃相關(guān)課程的課程體系和教學(xué)內(nèi)容,改革現(xiàn)有的實踐教學(xué)模式和教學(xué)內(nèi)容,我們對美國幾所一流大學(xué)計算機專業(yè)相關(guān)課程的實驗情況進行了跟蹤調(diào)查。表1給出了對MIT、UC-Berkeley、Stanford大學(xué)、CMU這四所大學(xué)相關(guān)課程的實驗情況總結(jié)。這些信息源自這些大學(xué)相關(guān)課程的最新課程網(wǎng)站[1-7]。
表1 美國部分大學(xué)計算機專業(yè)相關(guān)課程實驗教學(xué)基本情況
從表1可以看出,這些學(xué)校開設(shè)的相關(guān)課程都只要求選課學(xué)生具有C語言或同類編程語言的程序設(shè)計基礎(chǔ),能熟練使用計算機即可。MIT的相關(guān)課程更偏重于硬件底層,UC-Berkeley的次之,而Stanford和CMU的類似,主要從程序員角度介紹計算機系統(tǒng),更偏向于系統(tǒng)軟件層面。
MIT的相關(guān)課程“Computation Structures” 同時面向EE和CS兩個專業(yè)開設(shè);其實驗教學(xué)模式是通過各類模擬器實現(xiàn)從門電路特性、匯編、處理器到I/O等偏硬件層面上的分析和設(shè)計實驗。
UC-Berkeley的相關(guān)課程從2011年開始有比較大的改變,原先的課程名稱為“Machine Structure”,現(xiàn)在改為“Great Ideas in Computer Architecture”;所用教材除了原先使用的一本關(guān)于C語言和一本關(guān)于計算機組成與設(shè)計方面的以外,還將一本關(guān)于數(shù)據(jù)中心計算機系統(tǒng)的教材增加為課后閱讀材料;涉及的實驗項目也有非常大的改變,原先的14個實驗主要分五類:C語言編程實驗、匯編程序設(shè)計實驗、流水線CPU等硬件邏輯電路設(shè)計實驗、Cache和虛存的模擬實驗、多核多線程編程實驗,改進后的課程實驗增加了云計算平臺上的數(shù)據(jù)級并行編程(MapReduce)和多線程編程(OpenMP)實驗等,讓學(xué)生通過實驗體驗不同粒度下的并行處理技術(shù)。
Stanford大學(xué)和CMU的相關(guān)課程所用教材一樣,實驗內(nèi)容也差不多,通過一組精心設(shè)計的C語言編程實驗,使學(xué)生能夠更好地了解高級語言程序轉(zhuǎn)換為機器代碼的過程,深刻理解底層機器的系統(tǒng)結(jié)構(gòu)(包括指令格式、數(shù)據(jù)表示、寄存器組織、Cache結(jié)構(gòu)、虛存空間的映射等),提高編制高效程序和調(diào)試程序的能力,并為后續(xù)的體系結(jié)構(gòu)、編譯技術(shù)、操作系統(tǒng)等課程打下良好的基礎(chǔ)。
通過對MIT、UC-Berkeley、Stanford大學(xué)和CMU等多個美國一流大學(xué)在相關(guān)課程方面教學(xué)情況的跟蹤,我們發(fā)現(xiàn),除MIT由于CS和EE一起開課而使課程內(nèi)容較偏底層硬件外,其他三所學(xué)校相關(guān)課程的教學(xué)內(nèi)容和實驗內(nèi)容基本類似,其教學(xué)理念和教學(xué)思路也非常相似,基本上都是按照“C語言程序匯編語言程序機器目標代碼處理器結(jié)構(gòu)”為主線組織內(nèi)容,都是站在計算機系統(tǒng)的高度來闡述計算機硬件系統(tǒng)的結(jié)構(gòu)和設(shè)計思想,以程序員的角度來認識計算機系統(tǒng),強調(diào)軟件與硬件的關(guān)聯(lián),使學(xué)生能很好地在高級語言程序、匯編語言程序、機器指令代碼和機器結(jié)構(gòu)之間建立相互的對應(yīng)轉(zhuǎn)換關(guān)系,以建立對計算機系統(tǒng)的整體認識。特別是這些大學(xué)相關(guān)課程的實驗內(nèi)容都和課堂教學(xué)內(nèi)容完全一致,課堂所學(xué)內(nèi)容就是學(xué)生需要動手實踐的內(nèi)容,在考核中實驗和大作業(yè)占有50%~60%的分值,由此可見,國外一流大學(xué)對本課程的實踐教學(xué)環(huán)節(jié)是非常重視的。
通過對上述幾個大學(xué)相關(guān)課程的跟蹤調(diào)查,我們還發(fā)現(xiàn),雖然它們的相應(yīng)后繼課程名稱不同,但課程的實驗內(nèi)容類似,都要求用硬件描述語言在FPGA上進行流水線處理器設(shè)計等實驗,而且基本上以RISC處理器的典型四段或五段流水線CPU設(shè)計為目標。這方面的實驗,對EE和CE的學(xué)生是必須做的,而對于CS的學(xué)生,有些學(xué)校則沒有要求必須做。
3 實踐教學(xué)存在的問題
目前,國內(nèi)已經(jīng)有一些高校的計算機組成原理或同類課程通過借鑒國外一流大學(xué)的先進做法,在教學(xué)內(nèi)容和教學(xué)模式等方面正在進行改革,取得了較好的教學(xué)效果。但是,絕大多數(shù)高校基本上還是沿用傳統(tǒng)的教學(xué)理念,教學(xué)內(nèi)容還停留在對計算機硬件系統(tǒng)的基本構(gòu)成和基本設(shè)計原理性介紹方面,既不像國外EE或CE專業(yè)開設(shè)的類似“數(shù)字系統(tǒng)設(shè)計”那樣的硬件設(shè)計課程,能夠讓學(xué)生真正了解如何用硬件描述語言通過FPGA來設(shè)計現(xiàn)代計算機硬件系統(tǒng);也不像UC-Berkeley的CS專業(yè)開設(shè)的“Machine Structure”那樣介于軟、硬件之間的課程,能夠讓學(xué)生深刻理解程序如何轉(zhuǎn)換為機器代碼并在硬件上執(zhí)行的過程;更不像Stanford大學(xué)和CMU的CS專業(yè)開設(shè)的COS和ICS兩門課程那樣,能夠讓學(xué)生從程序員角度理解計算機系統(tǒng)底層的關(guān)于硬件結(jié)構(gòu)和系統(tǒng)軟件的重要概念及其相互關(guān)聯(lián)。因此,目前大多數(shù)高校的“計算機組成原理”課程的教學(xué),既沒能達到培養(yǎng)學(xué)生利用現(xiàn)代化工具進行實際硬件設(shè)計的能力,也沒有讓學(xué)生學(xué)會運用機器底層硬件和系統(tǒng)結(jié)構(gòu)知識來開發(fā)高效軟件和調(diào)試程序,更沒有通過該課程讓學(xué)生建立起計算機軟、硬件系統(tǒng)的整體概念。特別在實踐教學(xué)方面,與國外同類課程相比更是相差甚遠。
與國外一流大學(xué)相比,國內(nèi)高校的計算機組成原理實踐教學(xué)普遍存在以下幾個方面的問題。
1) 各專業(yè)的實驗要求沒有區(qū)分。
國內(nèi)絕大多數(shù)高校都會把計算機組成原理課程作為計算機所有相關(guān)專業(yè)的必修課,但實際上對于不同專業(yè),其教學(xué)目標和實驗要求是不同的。國內(nèi)本科計算機相關(guān)專業(yè)設(shè)置名目繁多,不同的學(xué)校相差很大,有的學(xué)校只有計算機科學(xué)與技術(shù)一個專業(yè),有的學(xué)校還有軟件工程、計算機工程專業(yè),還有一些學(xué)校甚至還有信息安全、信息工程、計算機應(yīng)用、物聯(lián)網(wǎng)等專業(yè)。很明顯,不同專業(yè)的培養(yǎng)目標是不同的,因而,對于計算機組成原理的實驗要求也是不同的。目前,國內(nèi)該課程的實驗大部分是功能部件的驗證性實驗和微程序設(shè)計實驗,有些學(xué)校會有匯編程序設(shè)計實驗,也有學(xué)校不做實驗,還有少數(shù)學(xué)校采用EDA方式進行CPU設(shè)計等實驗。但是,絕大多數(shù)學(xué)校選擇實驗內(nèi)容和實驗方式時,并沒有考慮到不同專業(yè)的不同要求。
2) 和課堂教學(xué)內(nèi)容不能很好配合。
由于傳統(tǒng)的計算機組成原理實驗系統(tǒng)和實驗設(shè)備是由公司或其他單位開發(fā)的,無法自主確定實驗?zāi)J胶蛯嶒瀮?nèi)容,因而,很容易造成實驗內(nèi)容和課堂教學(xué)內(nèi)容不能很好配合的問題,造成實驗效率低下,并且不能很好地起到鞏固課堂教學(xué)的目的。
3) 實驗內(nèi)容缺乏系統(tǒng)性和先進性。
傳統(tǒng)的驗證性實驗通常是在部件級進行驗證實驗,通過插拔連線、撥動開關(guān)、編制微程序等方式與實驗系統(tǒng)進行交互,因而無法構(gòu)建一個完整的計算機硬件系統(tǒng)的綜合設(shè)計實驗。此外,絕大多數(shù)高校在該課程教學(xué)中沒有軟件編程實驗和Cache、虛存等相關(guān)模擬實驗。
4) 實驗平臺和實驗手段落后。
沒有采用現(xiàn)代化的EDA工具軟件和CPLD/ FPGA實驗平臺,更沒有像國外大學(xué)那樣,利用各種模擬器、云計算平臺、仿真系統(tǒng),以及各種編程開發(fā)工具來進行實驗,導(dǎo)致學(xué)生缺乏利用先進工具和平臺進行學(xué)術(shù)研究和項目開發(fā)的能力。
5) 實驗過程管理和考核機制不完善。
國內(nèi)實驗系列教師普遍缺乏,而助教制度又極其不完善,不像美國大學(xué)那樣,每門課可以配備7、8個,甚至十幾個領(lǐng)助研費的助教,因而在實驗過程管理上很不完善,特別是實驗的檢查、考核和反饋等很難做到像美國大學(xué)那樣到位,這也大大影響實驗教學(xué)的效果。
4 實踐教學(xué)改革和成效
針對目前計算機組成原理實踐教學(xué)存在的問題,我們在對美國一流大學(xué)相關(guān)課程實驗情況的考察研究基礎(chǔ)上,提出了相應(yīng)的改革思路和實踐教學(xué)方案,并在近年來的教學(xué)過程中,逐步進行了探索實踐。
目前,我系開設(shè)的相關(guān)課程是計算機組成與系統(tǒng)結(jié)構(gòu)和專門的計算機組成實驗課程,與國內(nèi)大多數(shù)高校開設(shè)的計算機組成原理相比,我們強化了流水線CPU設(shè)計方面的內(nèi)容。其先行課程除了C和C++程序設(shè)計課程以外,還有數(shù)字邏輯電路及其專門的實驗課程,學(xué)生會在這兩門課程中學(xué)會EDA設(shè)計的基本方法,并具有簡單數(shù)字系統(tǒng)設(shè)計的基本能力。而計算機組成原理方面的實驗實際上包含了國外類似于數(shù)字系統(tǒng)設(shè)計課程中的一些實驗。
根據(jù)本課程內(nèi)容抽象、概念枯燥,以及實踐性強的特點,我們采用了編程實驗、硬件設(shè)計實驗和創(chuàng)新實驗三階段遞進式的創(chuàng)新型實驗教學(xué)方案。為了保證對實驗過程的嚴格管理和加強對學(xué)生的指導(dǎo),我系每年專門招收7~10名碩士研究生組成實驗輔導(dǎo)小組,在每年暑假由實驗指導(dǎo)小組的老師先對他們進行培訓(xùn),然后他們再在實驗過程中輔導(dǎo)學(xué)生,并對實驗結(jié)果進行檢查。
編程實驗是在進行理論課教學(xué)的同時要求學(xué)生完成的一組實驗。通過編程實驗使學(xué)生能從程序員角度深刻理解教學(xué)內(nèi)容中比較抽象的一些概念和知識,例如,機器代碼的表示、高級語言源程序與機器代碼的對應(yīng)關(guān)系、數(shù)據(jù)的表示和運算、訪存異常(存儲保護錯)、運算結(jié)果溢出、大端/小端方式、對齊存放、Cache結(jié)構(gòu)和程序訪問局部性的關(guān)系、虛存地址空間的構(gòu)成、靜態(tài)數(shù)據(jù)區(qū)和堆區(qū)/棧區(qū)的區(qū)別、系統(tǒng)性能評測方法等,使得課程內(nèi)容對學(xué)生來說不再是抽象、枯燥的概念,而是能夠通過對程序的調(diào)試跟蹤,以及對程序運行結(jié)果的分析,將這些抽象的概念變成容易理解的看得見的具體數(shù)據(jù)。這樣,不僅有助于學(xué)生對教學(xué)內(nèi)容的深刻理解,而且培養(yǎng)了學(xué)生學(xué)習(xí)本課程的興趣,增強了學(xué)生的編程動手能力,特別是將底層機器級概念運用到編程設(shè)計和調(diào)試中,這對于提高學(xué)生編寫正確、高效的程序和增強程序調(diào)試能力,是非常有幫助的。同時,也讓他們了解到將來即使不從事計算機硬件設(shè)計工作,本課程學(xué)到的知識和培養(yǎng)的專業(yè)意識在今后的軟件開發(fā)或計算機科學(xué)研究工作中也是非常有用的。
硬件設(shè)計實驗是在理論課程結(jié)束后的一個學(xué)期專門開設(shè)的計算機組成實驗課。要求學(xué)生用硬件描述語言在FPGA板上進行硬件設(shè)計,并最終實現(xiàn)一個實際的流水線CPU。由于在課堂教學(xué)內(nèi)容中加大了對CPU設(shè)計、特別是流水線CPU設(shè)計的力度,使學(xué)生打下了很好的理論和技術(shù)基礎(chǔ)。將實驗內(nèi)容與課堂教學(xué)完全結(jié)合起來后,改變了原先課堂教學(xué)和實驗教學(xué)內(nèi)容脫節(jié)的現(xiàn)象,因此,除了實驗教材外,課堂教學(xué)的教材本身也成為了實驗教材的延伸。為了加強對學(xué)生的計算機系統(tǒng)尤其是CPU設(shè)計能力的培養(yǎng),我們提出并進行了“以流水線CPU設(shè)計為核心”的高起點創(chuàng)新性實驗教學(xué)改革,采用“基于硬件描述語言和FPGA,以功能部件設(shè)計為先導(dǎo),單周期CPU和多周期CPU設(shè)計為過渡,最終實現(xiàn)流水線CPU”的實驗教學(xué)方法。學(xué)生通過親自體驗從設(shè)計、實現(xiàn)到驗證的整個過程,大大加深了他們對課程內(nèi)容的理解,不僅掌握了CPU設(shè)計的理論知識,也深刻理解了整個計算機系統(tǒng)的設(shè)計思想和方法,并使所學(xué)知識轉(zhuǎn)化成了運用知識的能力,同時還培養(yǎng)了部分學(xué)生對計算機硬件設(shè)計的興趣和信心。
創(chuàng)新實驗課是在相關(guān)課程結(jié)束后對少數(shù)對計算機底層軟/硬件設(shè)計特別有興趣的學(xué)生開設(shè)的開放性實踐教學(xué)活動。我們意識到,國家迫切需要一批能掌握先進的CPU和系統(tǒng)軟件等計算機核心技術(shù)的尖端人才,這是高校計算機人才培養(yǎng)的重要任務(wù)之一?;诒菊n程在計算機系統(tǒng)中的重要核心地位和在計算機人才培養(yǎng)中應(yīng)起的作用,我們提供了相關(guān)的創(chuàng)新實驗室,為這些學(xué)生提供全方位的實驗支持。學(xué)生可以自主選擇創(chuàng)新項目,實驗室提供相應(yīng)的實驗平臺和條件,并配備指導(dǎo)教師或研究生助教進行全程指導(dǎo)。目前已經(jīng)有4、5個創(chuàng)新團隊完成了相應(yīng)的創(chuàng)新實驗項目,其中包含了江蘇省級重點和南京大學(xué)重點創(chuàng)新項目,還有一個團隊設(shè)計實現(xiàn)了一個與MIPS32 2.62兼容的82條指令的五級流水線CPU。參加創(chuàng)新實驗項目的絕大多數(shù)成員都被保送進了中科院、北大等國內(nèi)一流大學(xué)和科研院所,也有一些同學(xué)得到了美國著名大學(xué)的青睞,選擇出國繼續(xù)深造。
5 結(jié)語
計算機組成原理課程的地位和特點決定了在該課程教學(xué)過程中加強實踐環(huán)節(jié)的重要性。國外一流大學(xué)都非常注重該課程的實驗教學(xué),實驗內(nèi)容和手段不斷更新,而且特別注重對實驗過程的管理和對實驗成績評定的公平性。近年來,國內(nèi)一些大學(xué)也開始對該課程的實驗手段和實驗內(nèi)容進行改革,取得了一定的
成效。但是,大部分高校還在采用傳統(tǒng)的實驗?zāi)J脚c國外一流大學(xué)相比差距較大。
我系在本課程的實踐教學(xué)方面進行了一些有益的探索,實踐證明,采用新的實驗內(nèi)容和實驗手段,對于學(xué)生全面掌握課程內(nèi)容、培養(yǎng)分析問題和解決問題的能力、增強實踐動手能力、提高科技創(chuàng)新意識等各方面都是非常有用的。由于我們實驗改革時間不長,只是處于探索階段,因此,實驗內(nèi)容和實驗?zāi)J竭€很不完善,特別是編程實驗內(nèi)容,還有很多典型問題可以設(shè)計讓學(xué)生進行編程體驗,實驗管理中也還存在很多問題需要解決,包括如何合理評定實驗成績,如何防止抄襲等。此外,如何規(guī)劃銜接好上下游課程之間的實驗內(nèi)容也是今后需要重點考慮的問題。
參考文獻:
[1] MIT. Computation Structures [EB/OL]. [Spring 2011]. 6004.csail.mit.edu/.
[2] UC Berkeley. Machine Structures[EB/OL]. [Spring 2011]. inst.eecs.berkeley.edu/~cs61c/sp11/.
[3] UC Berkeley. Components and Design Techniques for Digital System[EB/OL]. [Spring 2011]. inst.eecs.berkeley. edu/~cs150/sp11/.
[4] Stanford University. Computer Organization and Systems[EB/OL]. [Spring 2011]. stanford.edu/class/ cs107/.
[5] Stanford University. Digital Systems II[EB/OL]. [Winter 2010]. stanford.edu/class/ee108b/.
[6] CMU. Introduction to Computer Systems[EB/OL]. [Summer 2011]. cs.cmu.edu/~213/.
[7] CMU. Introduction to Computer Architecture[EB/OL]. [Spring 2011]. ece.cmu.edu/~ece447/.
Teaching Reform of the Principle of Computer Organization Lab Course
YUAN Chunfeng, ZHANG Zesheng, CAI Xiaoyan, YANG Ruoyu, WANG Shuai
(Department of Computer Science and Technology, Nanjing University, Nanjing 210093, China)