前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的計算機系統結構主題范文,僅供參考,歡迎閱讀并收藏。
中圖分類號:G642.4 文獻標志碼:A 文章編號:1674-9324(2012)09-0048-02
“計算機系統結構”課是“計算機科學與技術”專業本科生開設的一門專業必修課,開設時間為本科第六學期,48學時(理論課42學時;實驗課6學時)。它是一門綜合課程,從全局和系統的角度介紹計算機系統設計所必須了解和掌握的知識,把前續的“計算機組成原理”、“操作系統”、“編譯原理”、“數據結構”、“匯編語言程序設計”等課程中所學的軟硬件知識有機的結合起來,從而建立起計算機系統的完整概念。學習本課程旨在使學生從總體結構、系統分析這一角度來研究計算機系統,對于培養系統地分析和解決問題的能力,培養抽象思維能力有非常重要的作用。由哈爾濱工程大學計算機科學與技術學院硬件教學團隊承擔的“計算機系統結構”課程在2003年評為省級精品課程基礎上,于2008年又被評為“教育部—Intel”精品課。精品課程建設是教育部組織開展的旨在提高高等院校教學水平而推出的“高等學校教學質量和教學改革工程”中的具有戰略意義的舉措之一,是高等學校教學改革與建設的一項具有標志性的工作[1-2]。本文以本科生課程教學為核心,根據本課程教學內容特點,詳細介紹課程教學內容建設及改革思考,以求交流同行經驗,促進課程建設更快發展。
一、課程內容和特點
我校“計算機系統結構”本科生課程主要采用李學干教授等編著的《計算機系統結構》作為教材,內容主要包括計算機系統結構概論、數據表示、尋址方式與指令系統、存儲、中斷、總線與I/O系統、存儲體系及流水和指令級高度并行的超級機等內容[3]。想要順利學習這門課程的內容,需要學生很好地掌握“計算機組成原理”、“操作系統”、“編譯原理”、“數據結構”、“匯編語言程序設計”等課程的知識點。如在講解“RISC結構采用的基本技術”時,其中一項基本技術是“優化設計編譯系統”,涉及到常規的優化技術和手段,如將公用的子表達式消除、將常量移到循環體外等編譯優化技術。在“計算機系統結構”課程中只能通過舉例的方式列舉某些優化技術,而詳細的優化技術的原理需要學生在編譯技術課程中詳細學習。同樣,在“中斷系統”一節中,又涉及到大量的操作系統的知識,作為“計算機系統結構”課程需要重點從全局的角度講解中斷系統中軟硬件是如何配合工作的及軟硬件功能的分配原則。學生要清晰地掌握這個知識點,就需要在之前開設的“操作系統”、“計算機組成原理”課程中掌握其中涉及到的基本原理。因此,在講授計算機系統結構課程時,一個很重要的問題就是如何劃分同其他課程有“交叉”的授課內容。實質上這個“交叉”僅是知識覆蓋面上的交叉,并不是實質的知識點的交叉。
二、教學內容改革探討
1.與“計算機組成原理”的內容劃分及協調。在同與“計算機系統結構”課程內容有“交叉”的課程中,最容易造成授課內容劃分不清楚的是“計算機組成原理”課程。如何合理劃分這兩門課內容是課程教學組織過程中需要關注的重要問題之一。表1詳細描述了“計算機組成原理”和“計算機系統結構”在教學內容和教學目標上的不同,雖然兩門課程的覆蓋面有一定相似之處,都包括指令系統、I/O系統、存儲系統等,但是課程的授課目標和具體的知識點并不相同。“計算機組成原理”課程重點講解基本概念和基本運行原理,而“計算機系統結構”課程主要講授高級語言、編譯、操作系統和硬件結構的關系及從量化的角度重點講解如何優化計算機性能。如兩門課程講授內容都包括了“指令系統”,“計算機組成原理”課程重點講解具體的尋址方式,其中包括“變址尋址”和“基址尋址”格式,而“計算機系統結構”課程則從計算機系統優化的角度引出“變址尋址”和“基址尋址”技術。在“計算機系統結構”課程的“數據表示”章節中指出,為了提高計算機的運算速度,對向量、陣列數據結構的實現提供直接支持,才增設變址寄存器硬件存放變址值,從而在指令尋址中增加了“變址尋址”方式。而“基址尋址”技術是在“程序在主存中的定位技術”章節中講解的,其主要解決在不準修改指令地址碼時如何實現邏輯地址空間到物理地址空間變換的問題,這又涉及到操作系統課程內容。所以,“計算機組成原理”和“計算機系統結構”課程在講授內容的面上有重疊,但是講授的目的和重點是不同的。
2.教學內容的更新.隨著計算機技術的發展,近年來我們逐步從以下幾個方面對“計算機系統結構”課程內容進行更新:①不斷更新課程中的實例內容.我校的“計算機系統結構”課程的教學內容立足于基礎性、前沿性和時代性,重視結合實際案例,與時俱進,及時吸收和反映本學科的最新研究成果,合理地維持“更新與保留”的適當比例。如講授“指令系統的發展和改進”章節時,教材中詳細描述了RISC和CISC指令集的特征,但是書中舉得例子卻是60、70年代在IBM 360、IBM370機器上采用的技術,學生聽起來枯燥、乏味。我們對課程內容進行了適當的更新,從現在比較“火”的嵌入式智能手機的微處理器設計說起,對比采用RISC指令系統的ARM處理器和采用CISC指令系統的Atom處理器的功耗和計算性能的優缺點,來解釋不同指令系統的優缺點。②加大課程內容的深度.“計算機系統結構”是將“計算機組成原理”、“操作系統”、“編譯原理”、“數據結構”、“匯編語言程序設計”等課程中所需的軟硬件知識有機結合起來的課程,所以在講授課程內容時需要以問題為切入點,從高層次應用入手,逐漸深入引出本門課需要講授的知識點。如在講解“物理主存中信息的存儲分布”知識點時,首先啟發學生思考:大家在采用C語言編程聲明結構體數據類型時,是否考慮了其中各種成員變量的聲明順序。也就是說當結構體中成員變量的聲明順序不同時,對計算機的存儲資源會產生什么樣的影響?此時就要考慮編譯器為每個結構體成員變量分配內存時,做了什么事情?其中為什么要求編譯器需要滿足“信息在存儲器中按整數邊界對齊”?這樣以編程語言為示例,逐層深入,最終落實到“計算機系統結構”課程需要掌握的知識點上,在這個過程中既幫助學生梳理了之前學習的專業內容,又達到幫助學生學習從總體結構、系統分析這一角度來研究計算機系統,培養他們系統地分析和解決問題的能力的目的。③引入部分多核技術知識點.由于Intel、IBM及AMD等公司的多核技術的出現,改變了原有的片上單核處理器的架構,分別出現了同構多核和異構多核架構,這要求計算機系統結構的設計者和學習者需要充分研究多核架構技術,這樣才能有助于實現程序的性能優化。為了使本科學生更多的了解多核處理器結構,針對課程的特點及難點,以單核處理器體系結構為教學基礎,適當擴充片上多核處理器架構的介紹,這樣保證學生扎實的掌握基礎知識的同時,又可以緊跟技術發展的新方向。
一門優秀的課程,決不是一朝一夕能夠建成的,其教學內容的錘煉優化、不斷更新,教學方法與手段的不斷探索,教材的編寫和完善等無不需要長時間的不斷探索、認真思考、總結經驗,甚至需要幾代人的努力。本文將“計算機系統結構”課程中的教學實踐進行歸納總結,闡述了其中關于教學內容改革的做法,以求交流同行經驗,促進課程建設更快發展。在改革教學內容的實踐中,我們發現精品課的建設需要以學科建設為立足點,同樣也可以建設精品課為契機,促進學科、專業的進一步發展。
參考文獻:
[1]陳國定,吳立言,李建華,等.精品課程建設的思考與啟迪(機械類課程報告論壇文集)[G].北京:高等教育出版社,2006.
關鍵詞:SOPC;FPGA;應用型教學;軟核處理器
計算機系統結構是計算機科學與技術本科專業的一門專業基礎課,該課程介紹計算機系統中硬件和軟件的功能結構及相互轉換關系,分析了現代計算機的體系結構,討論了計算機系統結構的理論和相關技術。從原理、結構和實現技術等方面,側重對RISC結構、流水線結構、陣列處理機、多處理機系統、智能計算機結構等現代計算機的系統結構進行了較深入的分析和探討,使計算機專業的學生具有計算機系統結構的基礎理論知識和培養學生具有一定的體系結構技術應用能力。為今后從事計算機系統及其應用的研究、開發、工程實現有重要的指導意義。
但這樣的一門課程,學生的學習積極性不高,與學生交流時,多數同學認為理論性太強,難度大,更主要的原因是在學生的思想認識上,認為學了沒用。于是在課堂上不認真聽講,看一些自己認為有用的書,甚至出現逃課現象。也許是處于各種原因,在一些高校計算機系統結構這門課已經從教學計劃中抹掉了,或者把它與計算機組成原理結合,可能只占很少的份額。在2010年5月9日,由教育部高等學校計算機科學與技術專業教學指導分委員會和高等教育出版社組織召開福建省高校計算機專業課程建設研討會上,其他高校也同樣存在學生對這門課的學習積極性不高,對應的實踐教學難以開展的問題。
如何尋找這門課程的出路,提高教學質量、教學效果,激發學生的學習興趣呢?其實計算機系統結構的理論和相關技術與SOPC(可編程的片上系統)有著緊密的聯系。SOPC是一個面向應用、嶄新的、富有生機的嵌入式系統。在計算機系統結構教學中,將課
本的理論知識結合到SOPC的應用開發,加強理論與實踐相結合,增加應用型實踐教學,必將能激發學生的學習興趣。
1SOPC的系統概述
隨著IC設計和工藝水平不斷提高,在一個半導體芯片上完成系統級的集成已成為可能,數字技術進入片上系統SoC(System on Chip)時代。SOPC是Altera公司提出來的一種靈活、高效的SoC解決方案,它將CPU、存儲器、I/O接口、DSP模塊、低電壓差分技術(LVDS)、時鐘數據恢復技術(CDR)以及瑣相環(PLL)等系統設計所必須的模塊集成到一片FPGA上,構成一個可編程片上系統。SOPC是PLD和ASIC技術的融合的結果。它具有靈活的設計方式,可裁減、可擴充、可升級,并具備軟硬件在系統可編程的功能,是半導體產業未來發展的方向[1]。
實現SOPC的一種解決方案是應用FPGA生產廠商Altera公司推出的NiosⅡ嵌入式處理器。NiosⅡ是一種面向用戶的可以靈活定制的通用RISC(精簡指令集架構)的嵌入式CPU,NiosⅡ以軟核的方式提供給用戶,并專為在Altera的FPGA上實現優化,用于SOPC集成并在FPGA上實現。用戶根據設計要求,利用QuartusⅡ和SOPC Builder對NiosⅡ及其系統進行構建,使嵌入式系統在硬件結構、功能特點、資源占用等全方面滿足用戶系統設計要求。另外在基于NiosⅡ軟核嵌入式的SOPC系統設計中可以通過定制指令的方式,為嵌入式處理器配置專有硬件加速器,以便能更有效地處理含有算法模型的程序,從而可以利用FPGA的可重配置的特性向FPGA配置相應的嵌入式系統,從而使SOPC系統高效高速工作。
SOPC在應用和理論知識構成上達到了一種有機融合,由于同時涉及底層的硬件系統和相應的軟件設計,SOPC技術使開發者能夠在軟硬件系統的綜合與構建兩個方面發揮自己的創造力和想象力,從而多角度、多因素和多結構層面對自己的設計進行優化。SOPC從設計層次上講分為硬件設計和軟件設計;從設計流程上講是典型的自頂向下的流程;從設計手段上講,它更廣泛和深入地利用計算機這一科研開發的主流技術,在這一平臺上設計者可以最大限度地優化系統的性能。SOPC系統的開發流程如圖1所示[2]。
圖1SOPC系統開發流程
2應用型硬件平臺搭建
實驗室原有的設備只能用實驗箱進行驗證性的實驗,各種實驗集中在一個實驗箱上,線路繁雜,出錯率高,且設備陳舊,實驗的成功率很低,不能達到預期的目的和效果。在這種條件下,要讓學生完成某種模型機的設計難度較大,沒有多大的實用價值,不能激發學生的興趣。搭建一個基于FPGA的SOPC嵌入式系統硬件平臺,在這樣一個具有設計靈活,可裁減、可擴充、可升級并具備軟硬件系統可編程的功能系統上,學生可以更自由發揮。利用現有的IP核進行裁剪,設計自己需要的CPU,根據需要增設特殊的功能指令,實用性強,難度不大,有利于激發學生的興趣。
硬件平臺以滿足實驗最基本需要為主,提供一個簡單、清晰和接線方便的FPGA最小系統,降低硬件系統的復雜性,最小系統實驗平臺如圖2所示。系統的核心芯片采用Altera公司的FPGA芯片Cyclone EP1C6,它具有9 800個邏輯單元,用戶I/O有185個,使用最新型的AS配置方式,配置芯片EPCS4。一個JTAG接口和一個AS接口用于系統的調試和下載,Flash閃存用于存儲嵌入式操作系統uCLINUX和用戶數據程序。該實驗平臺,學生可以創建一款不管在外設、存儲器接口、性能特性等方面,以及在成本上都較為完美的處理器;可在一片FPGA內部實現多個處理器內核的設計;流水線的應用設計;uCLINUX嵌入式操作系統的移植等應用型操作。
圖2最小SOPC系統實驗平臺
若需要有RS232、以太網、VGA、音頻接口和USB2.0接口等,可以擴展一塊副板,主板與副板間通過擴展I/O連接。
3應用型課程實踐項目
從原理、結構和實現技術等方面,將RISC結構、流水線結構、多處理機系統和存儲器的理論知識和相關技術結合到一個面向應用、嶄新的、富有生機的SOPC嵌入式系統上,可從以下幾個方面將課本的理論知識與SOPC系統結合。
1)Nios II處理器設計。
NiosⅡ嵌入式處理器是一種面向用戶的可以靈活定制的通用RISC(精簡指令集架構)的嵌入式CPU,Nios II以軟核的方式提供給用戶,并專為在Altera的FPGA上實現優化,用于SOPC集成并在FPGA上實現。學生通過使用Altera的QuartusII軟件、SOPC Builder工具及NiosⅡ集成開發環境(IDE),將Nios II處理器嵌入到SOPC系統中。從系統的性能要求、從軟硬件取舍的基本原則、從計算機系統的定量設計原理等方面的計算機系統結構的理論知識,來確定是否要為嵌入式處理器配置專有硬件加速器;如為嵌入式處理器配置專有硬件乘法加速器,以便能更有效地處理含有算法模型的程序,從而使SOPC系統高效高速工作。另外,根據需要為Nios II系統添加片內存儲器、PIO、UART和片外存儲器接口等。通過這個實驗可以讓學生加深對所學的理論知識的理解和應用,同時也加深了對計算機系統的理解。
2)μClinux操作系統的移植。
此項實驗主要用嵌入式操作系統來驗證自己定制的NiosⅡ嵌入式處理器是否可行,操作系統的移植是SOPC的一個組成部分。時也可與ARM等硬核嵌入式處理器做個比較。
3)流水線的應用設計。
利用流水處理機的工作原理,加快單位時間串行的任務數。這是也開發并行性的途徑之一時間重疊,時間重疊(Time Interleaving)是在并行性概念中引入時間因素,讓多個處理過程在時間上相互錯開,輪流重疊地使用同一套硬件設備的各個部分,加快硬件周轉來贏得速度。在這個應用設計中,可以讓學生完成流水線加法器的設計、流水線乘法器的設計、流水線技術的FIR濾波器等應用型實驗[3]。從而提高學生對流水處理機相關知識的理解。流水線加法器和流水線乘法器屬于流水線分類中的部件級流水,流水線分類的概念在這也得以體現。
4) 多核系統的設計。
所謂多核是指在一個處理器中集成兩個或多個完整的計算引擎(內核從而提高運行速率和降低能
耗,實現橫向擴展提高性能)多核架構能夠使目前的軟件更出色地運行。并創建一個促進未來軟件編寫更趨完善的架構[4]。SOPC Builder允許用戶輕松添加多個處理器到系統中。因此建立多處理器系統的難點已不再是硬件的排列和連接。而在于多個處理器的軟件設計,使它們正常操作,相互之間不產生沖突。
在課程中講授多處理機的知識。多處理機是指有兩臺以上的處理機,共享I/O子系統,機間經共享主存或高速通信絡通信,在操作系統控制下,協同求解大而復雜問題的計算機系統。使用多處理機有兩個目的,一個目的是想通過多臺處理機對多個作業、任務進行并行執行來提高求解大而復雜問題的速度,從而提高系統的整體性能。另一個目的則是使用冗余的多個處理機,通過重新組織來提高系統的可靠性、適應性和可用性。多核和多處理機系統有很多相同的地方,可讓學生應用多處理機的知識解決多核協調處理的問題。
4結語
計算機系統結構課程的理論和相關技術應用于SOPC系統遠不止這些。隨著SOPC系統的應用發展,計算機系統結構課程教學將會被更多人所重視。開展應用型實踐教學,適當減少理論教學,或通過實踐教學使學生自覺學習理論知識,而不是被動學習。學生能夠學以致用,對激發其學習興趣,提高畢業設計水平、工作就業質量等,都將起到積極的作用。
參考文獻:
[1] 華清遠見嵌入式培訓中心.FPGA應用開發入門與典型實例[M].北京:人民郵電出版社,2008:269-273.
[2] 任愛鋒,初秀琴,常存,等.基于FPGA的嵌入式系統設計[M]. 西安:西安電子科技大學出版社,2004:197-198.
[3] 崔秀敏.基于FPGA的流水線技術設計與實現[J].科技信息,2010(7):76-77.
[4] 李歡,王莉莎,董麗麗.基于FPGA的多核嵌入式系統研究[J].現代計算機,2010(4):33-36.
Based on SOPC the Computer Architecture Application Teaching Discussion
ZHU Shilang
(College of Computer and Information, Fujian Agriculture and Forestry University, Fuzhou 350002, China)
Abstract: Analyzed the present situation of the Computer Architecture course, studied the present popular face application SOPC the embedded system and the curriculum relation, points out this curriculum importance. Proposed the teaching approach of integrated the SOPC embedded system and the Computer Architecture curriculum. Designed the teaching hardware platform and the project of application practice teaching.
通過本課程的學習,使得學生能夠掌握計算機系統設計的基本思想和方法,提高分析問題和解決問題的能力,增強專業素養,培養學生的創新思維和創新能力。同時,通過本課程的學習,學生能夠理解計算機幾十年快速發展的內在推動力,掌握發展規律,從而進一步把握計算機技術和應用的發展趨勢。
計算機系統結構教學存在如下問題:(1)教學內容涉及數字邏輯、計算機組成原理、操作系統、編譯原理、數據結構、匯編語言程序設計等專業課,綜合性強,概念多而抽象;(2)教材內容無法與新技術發展同步;(3)實驗教學缺乏。上述三個問題導致了教師授課難和學生學習難的兩難局面。為此,本文將基于理論講授、專題討論和開放性實驗的“三位一體”教學法引入到計算機系統結構的授課過程中。利用精心組織的課堂講授解決授課內容綜合性強,概念抽象的問題;在授課過程中穿插專題討論,讓學生立足于經典的設計方法,探討新技術的發展;合理安排開放性實驗,理論與實踐相結合,進一步提高教學效果。
1授課內容安排和授課方法探討
計算機系統結構與計算機組成原理在課程內容上有一定的重疊,明確兩門課程的授課內容,既避免內容上的重復,又保證課程之間的無縫銜接,是提高授課質量的前提。計算機組成原理主要研究計算機各功能部件的組成和工作原理,以及各部件之間的協同工作。計算機系統結構著重介紹如何最佳、最合理的實現軟硬件的功能分配。計算機組成原理強調部件細節,而計算機系統結構強調系統全局,重點闡述高級語言、編譯、操作系統和硬件結構的關系,及性能分析中各方面的影響,避免對軟件層面的忽視[4]。
合理安排系統結構課程的授課過程是提高授課質量的重點。根據授課經驗,各知識模塊的安排順序如下:計算機系統結構的基礎知識、指令系統、流水線處理技術、存儲系統、輸入輸出系統、多處理機技術。計算機系統結構基礎中主要介紹計算機系統結構的概念,包括經典定義和廣義定義;計算機系統設計的量化方法,包括Amdahl定律、常見事件優先原則、程序的局部性原理等。指令系統中主要明確指令集在計算機系統中的位置;指令集設計的基本準則,重點介紹RISC和CISC設計的出發點和特點。流水線處理技術中重點介紹流水線性能指標及計算方法;流水線設計時遇到的一些相關和沖突問題,闡述這些問題產生的原因、造成的性能損失和相應的解決方法。存儲系統中主要介紹存儲層次存在的原因;衡量存儲層次的性能指標;Cache優化技術,包括從失效率、失效開銷、命中時間等三個方面進行優化的,并在實際中廣泛采用的技術;采用一個實例如Alpha 21064或者Opteron介紹經典的存儲層次,對前面所闡述的各種存儲技術和思想進行總結,加深同學們的理解。輸入輸出系統中重點介紹輸入輸出系統的重要性以及RAID。多處理機系統重點介紹Cache一致性問題。
采用適當的授課方法,運用合理的教學手段是提高授課質量的靈魂。由于計算機系統結構課程綜合性較強,概念抽象,難以理解。采用傳統教學方式,學生會感到枯燥無味,無法維持學習興趣。因此在教學過程中采用了各種方法激發學生的學習興趣。比如對于在講解存儲系統中Cache的映像規則時,同學們對于“直接映像”、“組相聯”、“全相聯”這幾種映像規則相聯度越高,利用率越高,但是查找越復雜的特點不好理解。此時,可以用同學們進入教室時是按照學號入座還是隨便坐的例子來很方便的理解這些特點。
2穿插專題討論
本課程中引入專題討論主要基于一下兩方面原因。
一方面計算機系統結構技術發展很快,方向很多。但是不可能在原有授課體系中加入過多新技術,也沒有更多的課時來系統講授新技術。另外,教學內容中對新技術的補充有時是把“雙刃劍”,教學內容既要跟上技術的發展,是知識不致落伍,又有保證教給學生的是立足于經典知識的思維方法,而不是熟練某些技術細節[4]。為了解決這個問題,我們可以采用專題討論的形式。每當完成某一章或者某一部分的講解之后提出相關知識的討論題目,同學們基于已經學習的基本技術、基本思想,查閱參考資料,對新知識、新技術進行探究,思考,乃至預測其發展方向,并以文獻綜述、調研報告的形式總結自己的觀點,然后在課堂上交流討論。題目的選擇要適當,既新穎又要注意知識的銜接,比如在微處理器結構方面的“指令融合”、“間接轉移預測”;存儲結構方面的“混合寫回策略”;多處理機結構方面“高性能計算機體系結構發展”等。
另一方面,這也是大學教育中以學生為主體,教師為主導思想的具體體現。并且計算機系統結構課程開設在大三下學期或者大四上學期,具有了一定的專業基礎。通過引入專題討論,可以啟發學生獨立思考,發展學生的邏輯思維能力和獨立解決問題的能力。而當學生經過認真的思考,對討論題目深入理解后,他樂于將自己的成果與同學們分享,從而感染其他學生進一步提出自己感興趣的問題參與討論。這樣就可以加深學生對于知識的掌握程度,提高學習興趣[6]。
3實驗設計
計算機系統結構課程理論性較強,課程中的流水線技術及相關問題、指令動態調度、存儲層次等內容比較抽象,使得學生在學習過程中難以理解,影響學習興趣。通過實驗研究對系統結構進行量化分析,從而更好理解相關內容,是國際上流行的一種方法。
當前國內外存在多種實驗方法和手段。有的使用硬件,有的使用軟件;有的側重I/O部分,有的側重流水部分;有的側重實際設計,有的側重理論理解。通過多年的教學研究,本課程組傾向于實驗中主要使用模擬器進行模擬實驗,幫助學生理解抽象的理論內容,對于流水線、Cache設計實驗進行講解后由學生課下完成。
對于實驗內容,以幫助理解理論內容為目的,根據本文第二部分中闡述的課程內容進行安排,主要包括流水線沖突、指令調度、分支延遲、Cache性能分析、Cache一致性協議等。對于具體實驗步驟,本文不再展開。
4結語
綜上,通過引入三位一體教學方法,在計算機系統結構課程教學中實現了理論和實踐相統一,以教師為主導和以學生為主體相統一,新知識新技術與經典思想相統一,較好的解決了該課程教學中存在的部分問題,提高了該課程的教學質量。
參考文獻
[1] John L.Hennessy,David puter Architecture:A Quantitative Approach[M].4th ed.san mateo,CA:Morgan Kaufmann Publishers,2007.
[2] 張晨曦,王志英.計算機系統結構(第3版)[M].北京:高等教育出版社,2008.
[3] 張晨曦.計算機系統結構實踐教程[M].北京:清華大學出版社,2010.
[4] 姜晶菲,肖儂,王志英,等.“計算機體系結構”課程建設及改革思考[J].計算機教育,2009(18):3~5.
[5] 方娟,毛國君,朱文軍.“計算機系統結構”校級精品課程建設的探索和實踐[J].教育與教學研究,2009(24):52~54.
[6] 曲大鵬,薛建生,范鐵生.啟發式教學法在《計算機系統結構》教學中的應用[J].遼寧大學學報,2010,37(3):218~220.
[7] 張晨曦,王志英,劉依,等.“計算機系統結構”課程內容體系的研究[J].計算機教育,2009(20):57~60.
摘 要:文章針對美國一流大學的計算機組成與系統結構實驗課程進行研究,重點介紹UC Berkeley,MIT,Stanford University,CMU相關實驗課程的內容和特色,為我國大學計算機組成與系統結構實驗課程今后的改革與發展提供參考。
關鍵詞:計算機組成;計算機系統結構;實驗課程
作者簡介:王帥,男,講師,研究方向為計算機體系結構、嵌入式系統;袁春風,女,教授,研究方向為Web信息檢索與本文挖掘、多媒體文檔處理、計算機體系結構。
1 美國大學計算機組成與系統結構實驗課程概況
美國一流大學有著悠久的歷史和長期的經驗,所以我們深入研究和分析他們近幾年在計算機組成與系統結構實驗課程上的內容設置與教學變革,希望能夠對我國大學的計算機組成與系統結構實驗課程今后的改革和發展提供一些參考與啟發。
由于院系設立的不同,美國大學與計算機相關的院系一般可分為幾類:單獨的“計算機科學系”(CS),與工程相結合的“計算機科學與工程系”(CSE),和電子工程聯合的“電子工程與計算機科學系”(EECS)等。由于院系的類別不同,他們對于計算機組成與系統結構等課程的實驗內容和要求也不同,這種不同也是由于師資力量的不同造成的。例如計算機科學系對于計算機組成與系統主要是從整個計算機系統出發,強調從高層(應用和軟件)到底層(硬件)的掌握與了解,實驗手段一般也是采用高級語言來實現對硬件的模擬。有著工程背景的計算機科學與工程系和電子工程與計算機科學系,一般比較強調對于硬件的深入了解和底層的實現,要求學生采用VHDL,Verilog等硬件描述語言進行一些功能部件和小型系統的設計,并在FPGA等硬件上進行測試驗證;有著師資條件的電子工程與計算機科學系還會開設大規模集成電路設計(VLSI)等課程,以加深學生對于計算機系統的全面了解。
雖然學校之間要求不同,但是作為計算機科學的一門核心課程,計算機組成和系統結構在每個學校都有著很重要的地位,而且都會配有相對應的實驗課程,使學生有更加直觀的認知和實踐經驗。
2 美國大學計算機組成與系統結構實驗課程內容與分析
2.1 UC Berkeley(University of California, Berkeley)
對于UC Berkeley關于計算機組成與系統結構的課程設置,袁春風教授等[1]在《計算機教育》雜志中已經作出深入而詳細的總結。CS61C(Machine Structures)[2]作為所有和計算機組成與系統結構相關課程的先修課程,實驗部分采用高級語言實現和軟件模擬的方法。CS150(Components and Design Techniques for Digital System)[3]的實驗采用FPGA實現MIPS指令系統的方式,并由一個游戲程序進行驗證。由此可見對于電子工程與計算機科學系(EECS)的UC Berkeley采用了軟件和硬件實驗并重的方式,使學生能夠全面地了解計算機系統。
2.2 MIT(Massachusetts Institute of Technology)
作為又一個EECS,MIT的“電子工程與計算機科學系”也是注重學生對底層硬件的掌握與設計。和計算機組成與系統結構實驗相關的課程主要是6.004 (Computation Structures)[4]。課程的內容從基本的信息系統和數字系統的概念,講到電路中的時序邏輯、有限狀態機(FSM),然后從計算機系統中的流水線、指令集,介紹到機器語言、編譯等。后期課程根據計算機系統設計中常見的問題,討論了例如中斷、死鎖、流水并行等。整個課程涵蓋范圍很廣,很多地方已經涉及到了編譯原理、操作系統等課程的內容,對學生的要求較高。
對于MIT課程6.004配套的實驗,開始部分采用了類似于HSPICE的模擬器JSim對基本電路和部件的特性進行模擬和了解,設計了如基本的加法器、算術邏輯單元(ALU)、有限狀態機等。然后他們采用了根據課程配套開發的BSim模擬器,來提供對于課程中用到作為實例的Beta 處理器結構(圖1)的支持。Bsim可以提供高級語言程序的輸入,編譯和二進制代碼轉換,載入代碼和模擬執行,并顯示結果。學生要求實現手動的編譯程序(寫出高級語言對應的匯編程序),用JSim實現對應的Beta Architecture,在原有的指令系統中加入新的指令,最后實現并驗證整個系統。由此可見,MIT的實驗課程也是強調硬件模擬(JSim)和軟件模擬(Bsim)的結合,通過從高級語言到機器執行的整個過程的介紹,讓學生有一個全面的了解。
圖1 MIT 課程6.004 Computation Structures中的Beta 處理器結構[4]
2.3 Stanford University
Stanford的計算機科學(CS)與電子工程(EE)是兩個獨立的系,因此他們之間的課程也相對獨立。目前和計算機組成與系統結構相關的課程主要有:CS的CS107(Computer Organization and Systems)[5],EE的EE108a(Digital Systems I)[6]和EE108b(Digital Systems II)[7]。
CS107(Computer Organization and Systems)由于是設立在計算機系(CS),課程強調從C語言編程的角
(一)大學預算系統一個系統由調整對象、目標價值、組織機構、規則體系和實施手段等要素組成。大學預算系統的基本內容如下:
(1)調整對象。調整對象指系統所涉及的范圍與領域。大學預算系統的調整對象是預算全過程,包括預算編制、審批、執行、控制、調整、監督、評價和報告等全過程。各個預算主體在預算過程中的所有行為和活動都是預算系統涉及的范圍和領域。
(2)目標價值。目標價值指系統的動機、目的和要求。大學預算系統的目標價值是促進大學可持續地健康發展。目標價值的直接表現是追求預算績效,包括收入汲取績效、資源配置績效、遵從績效、產出績效和結果績效
(3)組織機構。組織機構是指實現、貫徹和執行系統任務的組織或社會主體。大學預算系統的組織機構一般包括校級預算機構和院級預算機構兩個層級,每個層級又可分為預算決策機構、執行機構和監督評價機構等等。
(4)規則體系。規則體系是系統中各個主體行為與活動的原則、規范和程序。大學預算系統的規則體系指規范和約束預算主體行為的一系列原則、規范和程序,包括預算決策規則、預算執行規則、預算評價規則等。
(5)實施手段。實施手段指的是系統所使用的物質或非物質的工具。大學預算系統的實施手段指大學預算的形式與技術。目前我國大學預算的實施手段是部門預算和精細化管理。
(二)大學預算制度 大學預算制度有狹義和廣義兩種理解。狹義的大學預算制度就是上文所述的大學預算系統中的規則體系,即調節和約束大學預算主體行為的預算原則、規范和程序。廣義的大學預算制度還應包括大學預算系統中組織機構行動規則以及系統的技術和工具。桑德森(Sundelson,1935)曾提出預算原則包括預算體制、預算機制以及預算形式與技術三大類,我們認為廣義的大學預算制度也有三個層級的內容:宏觀層次的預算體制、運行層次的預算規則和操作層次的技術規范,如圖1所示:
(1)預算管理體制。大學預算管理體制是大學預算權力關系的體現,具體表現為預算機構設立和職責劃分。一般情況下,學校財務部門是大學核心預算機構。財務部門對校級預算機構負責,包括財經領導小組(或類似機構)、校務會、黨委會等,學校預算還接受相關機構的監督,如審計部門、監察部門、教代會、工會等。
大學預算管理體制有集權型和分權型兩種基本類型。集權型管理體制指“統一領導、集中管理”模式,一般在規模較小的大學適用。院系無預算管理權限,不單獨設置預算機構,也不編制校內單位預算,校內單位運行和建設經費歸口向職能部門申報,職能部門初步審核匯總以后報學校財務部門。分權型管理體制指“統一領導、分級管理、集中核算”模式,一般在規模較大的學校適用。管理重心下移,財權下放,院系實施自主理財制度。大學以某種撥款方式將辦學經費下達給院系后,院系自編預算、自求平衡、自主管理、自謀發展。但是院系不設二級財務機構,財務政策由學校統一制定,資金由學校統一調配,會計核算在學校統一進行。
(2)大學預算運行機制。大學預算過程一般包括決策――投入――控制――產出――評價――結果等環節。大學預算運行機制指大學預算過程的基本運行原理,既包括單個環節的運行規則和程序,如預算決策機制、執行機制、評價機制;又包括各個環節之間的組成關系,即預算管理模式。按照各個環節之間是否有反饋機制來分,可以分為直線控制型預算管理模式和循環管理型預算管理模式。直線控制型預算管理模式是傳統的預算運行模式,預算過程中沒有動態監控機制、信息反饋機制和適時調整機制,自上而下、單向運行。循環管理型預算管理模式增加了適時信息監測、信號反饋和預算調整機制,上下結合、雙向循環。
(3)大學預算技術規范。這主要指大學預算系統中具體使用的管理技術和工具。這些操作層面的具體技術規范,也是大學預算制度不可或缺的內容,甚至是關鍵性內容。首先是具體的預算編制方法,如線性預算、績效預算、規劃項目預算、零基預算、新績效預算等。其次是預算過程中使用的管理工具,如目標管理、績效管理、戰略管理工具等等。還包括預算信息技術、項目管理手段以及預算數據測算的數量模型等。
二、大學預算制度及其環境系統
L.E.戴維斯和D.C.諾斯對“制度安排”、“制度環境”兩個概念做了定義。他們認為“制度安排”是“支配經濟單位之間可能合作與競爭的方式的一種安排”。“制度環境”是“一系列用來建立生產、交換與分配基礎的基本的政治、社會和法律基礎規則”。很顯然,制度環境是制度安排的基礎和土壤。就大學預算系統及其制度安排而言,其基礎和土壤包括大學政策系統、服務系統和人文系統,它們共同構成了大學預算制度的環境系統(見表1)。
(一)大學政策系統是預算系統的政治基礎 大學政策系統的調整對象是大學政策制定、實施和評價過程,其組織機構包括學術權力、行政權力、政治權力和公眾權力的代表機構。學術權力的典型代表是學術委員會或者教授委員會,行政權力的代表是校務委員會及其職能部門,政治權力的代表是黨委會,公眾權力的代表有教代會、工會以及學生組織等。這些機構之間的關系構成了大學治理結構,這種治理關系在預算過程中的直接反映就是大學預算權力關系,與大學預算系統中的預算管理體制相連。在這個意義上,可以說大學政策系統是預算系統的政治基礎。大學政策系統的目標價值是追求政策績效,即科學決策、政策落實、目標實現。各種權力機構都有自己的議事程序和規則,它們形成了大學政策系統的規則體系。在大學政策過程中,預算就是重要政策工具之一。
(二)大學服務系統是預算系統的作用對象大學服務系統的調整對象是大學服務過程,具體包括大學教育教學服務、科研服務、社會服務等內容。大學預算系統的使命是為大學服務系統配置資源,并監控大學服務系統的預算執行,為大學服務系統的高效運轉提供資金、技術和政策支持。在這個意義上,大學服務系統是預算系統的最終服務對象。預算系統是大學政策系統的重要內容,兩者共同利用預算工具引導和保障大學服務系統順利完成教學、科研和社會服務工作。大學服務過程的目標價值是追求服務績效,包括教學績效、科研績效和社會服務績效。大學服務活動的客觀規律以及規范大學服務機構和人員行為的規章制度,構成了大學服務系統的規則體系。
(三)大學人文系統影響預算系統運行效率的重要因素大學人文系統包括內部人文系統和外部人文系統兩個部分。內部人文系統主要指大學歷史、風格、習慣、文化等等非正式制度安排。外部人文系統則泛指大學外部環境的總和,包括政府預算、高等教育管理體制等直接相關的環境,也包括政府、市場、社會等在各個方面影響大學發展的廣闊背景。大學預算改革以及預算系統運行,都是在具體的各種復雜環境中進行的。和諧的校園、開放的理念、進取的精神、社會的包容、政府的支持、市場的完善等等這些良好的人文環境,將極大地提高預算改革的成功性和系統運行效率。大學人文系統目標就是追求人文績效,更好地成為大學預算系統、政策系統和服務系統的劑和助推劑。
三、大學預算制度系統及其結構
柯武剛、史漫飛(2002)認為各個單項制度構成一個可相互兼容的制度系統,也就是所謂的規則序列。“只有當各種各樣的規則形成一個恰當的和諧整體時,它們才能有效地造就秩序,并抑制侵蝕可預見性和信心的任意性機會主義行為”。大學預算制度及其環境系統就構成了這樣一個完整的大學預算制度系統。它由四個子系統及其要素相互耦合而成,有比較復雜的結構關系(見圖2)。其基本結構包括:邏輯結構、時間結構、空間結構。
(一)邏輯結構從正面看,整個系統分為四層,大學預算制度系統由四個過程組成,包括預算過程、政策過程,服務過程和人文過程。它們之間存在著顯著的作用和反作用機制,并逐層傳導。
首先,人文過程滲透進上面的服務過程、政策過程和預算過程,潛移默化地作用于三個過程,并以大學特色的形式反映出來。同時,上面三個過程的思想、理念、習慣也會不斷地成熟、穩定、沉淀和積累下來,形成新的文化。
其次,大學服務過程決定著政策過程和預算過程。尊重大學服務活動的客觀規律,是政策過程和預算過程必須遵循的基本準則,為大學服務過程服務,提高大學服務能力和水平是政策過程和預算過程的最高宗旨。因此,大學服務過程的需求和特征決定了政策過程和預算過程的目標和行為。當然,大學政策過程和預算過程又是約束、監督、調控大學服務過程的重要手段,對服務過程有極大的反作用。在某種程度上,政策過程和預算過程甚至反客為主,成了主導和改造大學服務過程的力量,這不應該成為一種經常的或者長期的現象。在某些成長中的規模不大的學校,學而優則仕的風氣較為濃厚,大學行政系統往往聚集了學校眾多精英,力量強大;反之,有影響力的學者、教授不多,整體學術力量薄弱,此時很容易出現政策過程和預算過程為主導的現象。
最后,政策過程和預算過程之間是決定與反作用的關系,政策過程決定著預算過程,預算過程是政策過程的“數字化”、“貨幣化”反映。當然,理性、民主的預算過程是政策過程的重要支撐,并將積極地影響政策過程。
(二)時間結構 從正切面看,按預算循環的時間先后順序可以分為決策階段、執行階段和評價階段三個環節。每個環節由預算過程、政策過程,服務過程、人文過程耦合形成了決策系統、執行系統、評價系統,這就是我國大學預算制度系統的時間結構。
(三)空間結構 從側面看,按照上文所述大學預算制度的規則體系層次性理論,大學預算制度系統也分為三個層次:管理體制、運行機制以及技術規范。預算過程、政策過程,服務過程、人文過程等四個過程的制度都包括這三個層次,并具體在決策、執行和評價三個階段得到應用和體現。
參考文獻:
[1](德)柯武剛、史漫飛:《制度經濟學――社會秩序與公共政策》,商務印書館2002年版。
關鍵詞:計算機化系統 分步驗證 風險評估 結構化方法
自動化控制的生產線、實驗室分析設備或以信息技術為基礎的企業管理平臺(如ERP或MES)的引入,用于制藥產品的生產、存儲和醫療設備的控制,所有這些在醫藥方面都是GMP相關的,因此必須進行驗證。這意味著在藥品生產質量管理規范(GMP)和相應的附件中陳述的驗證原則必須被嚴格遵守并實施。雖然這將是很多企業,特別是中小規模企業的一個巨大挑戰,但它還是可以通過分步驗證的方法被逐步解決。
1.計算機化系統驗證的方法
如果用計算機系統代替一個同樣GMP相關的手動操作,無論是產品質量還是安全都不會降低。大量的信息也不會由于降低人員參與而丟失。 21CFR Part 11中有個非常明確的要求就是對于電子記錄和電子簽名的處理,其前瞻性已經超越了其他國家,近年來,已日益成為人們關注的焦點。然而, 在其GMP指南內,對于計算機系統的驗證,只提供了驗證活動的要求,只是一個框架性的東西,而沒有詳細闡述如何去實施。對于這些要求,制藥企業根本不知道采取哪種方法。
然而,關于計算機化系統驗證的方法,反而可以在相關行業協會推薦的指南中找到。例如:GAMP5(優良自動化生產規范),國際制藥工程協會(ISPE)的“工藝控制系統驗證”,以及國際藥品認證合作組織(PIC / S)的“GxP環境中的計算機化系統的質量管理規范”。對于計算機化系統的法規要求,這些驗證指南為計算機化系統驗證的合規化在第一時間提供了技術的支持。
2.在計算機化系統驗證中引入風險評估
為了更好的執行計算機化系統驗證,一個最重要的方法就是風險評估,這也是權威機構所要求的。通過所涉及的工藝及其產生的功能,風險評估有識別這些工藝的目的,并在個別的功能模塊里,可以生成、顯示、刪除或修改GMP相關的數據。在大型的計算機化系統如ERP,GMP風險評估被分成兩方面。一方面,識別需要驗證的系統是否是所謂的遺留系統。另一方面,識別由公司或第三方編寫的GMP相關的工藝流程。除借鑒計算機化系統驗證的各類指南以外,工藝順序方案提供了風險分類的基礎,借此,單個的工藝流程可以被描述為功能相關的業務活動的一個工序。最終形成的工藝流程概述描述了如何將工藝單元嵌入期望功能。在這個風險分級的框架內,所有與ERP系統有交接面的第三方系統也必須被識別并分類。
3.基于風險評估的結構化方法
本文主要闡述了對于復雜的、整體的ERP系統如SAP、制造執行系統(MES)或文檔管理系統的驗證基于風險評估,采取分步的結構化方法將計算機化系統驗證分為三個階段進行,如圖1。
第一階段----起始準備
由于計算機化系統的復雜性,建議制訂一個單獨的驗證總計劃(VMP)專門用于計算機化系統的驗證。在這個驗證總計劃中將包括驗證的策略、程序、范圍、職責等內容。與此同時,用戶需求規格說明書(URS)將識別并記錄GMP關鍵工藝參數和其它質量相關的所有要求。因此,URS應當描述所有計算機化系統的要求,不管是在系統的獲得上還是在與供應商的一致性及組織配合上,包含的內容越詳細越好。其中,以下幾點需考慮:VMP關聯性 ,相關工藝規則,盡可能考慮實際情況,工藝順序的描述,新系統的引入及其變更的執行,硬件規格說明書(計算機,服務器,冗余系統等),安全概念(防火墻,病毒掃描等),業務流程的連續性(失效,死機等),退出方案(版本更新或系統出現故障時改進),GMP相關數據的存儲概念,編程規則/指南的要求,源代碼審核的要求,第三方系統的考慮,供應商評估及審核,供應商列表,維修服務協議,人員培訓。
除了驗證總計劃和用戶需求規格說明書,標準操作規程(SOP)也會在第一階段被考慮。所有必要的操作與維護指令應列在其中。
圖1 結構化驗證策略
第二階段----風險分析
所有被劃分為GMP相關的工藝模塊和工藝流程都要進行詳細的風險分析及評估其潛在風險。然而, 這個步驟發生的前提條件是已經把用戶需求規格說明書(URS)里面GMP相關的要求轉化到供應商的規格說明書里面。因為只有這樣,那些模塊里的分項功能和程序執行單元的數量才能被精準的確認。風險分析可以基于失效模式影響分析 (FMEA) 的方法進行。
風險分析確認了風險的類別,它為規格說明書的編寫提供了基礎,這些規格說明書包括測試范圍,測試深度和驗證文檔的水平。至關重要的是,對于每個單獨的程序單元,其有效的驗證測試記錄必須形成文件證明。
此外,在風險分析中,程序單元與第三方系統之間的接口,由于他們的GMP相關性而被評估并檢查。如果有必要, 在運行確認(OQ)期間,各個接口的有效性必須通過相應的操作測試而被確立和記錄。
第三階段----驗證實施
用戶特定的編程、工廠驗收測試(FAT)和現場驗收測試(SAT),以及安裝確認(IQ)、運行確認(OQ)和性能確認(PQ) 等驗證活動在產品開發、驗證和生產體系中分別進行。其中包括編碼審核、模塊測試、軟硬件的集成測試、驗收、放行、投入使用等。當然,在運行階段還包括變更管理、維護管理和可追溯性管理的支持流程。
4.結語
基于風險評估的結構化方法為計算機化系統驗證提供了一個解決的方法,其逐步的分階段的驗證策略使計算機化系統驗證變的不再難以逾越。
參考文獻:
[1] 國家食品藥品監督管理局.藥品生產質量管理規范(2010年修訂).2010.
1研究方向
到2007年底,每秒鐘能進行1000萬億次浮點運算的超級計算機將要問世,這是計算機科學家的最新杰作!但是,即便是如此強大的超級計算機,目前還無法實現人腦能夠輕而易舉完成的許多感知信息處理任務。例如,在混雜的車站里辨認熟人面孔、在熱鬧的晚宴里同朋友自由交談、在國際會議上嫻熟地用外語與各國同行討論研究成果,等。因此,為了建立計算機與人更加友好、自然的用戶界面,我們必須創建新的智能計算理論與方法。我們認為將計算機科學與腦科學相結合,研究仿腦計算理論與模型將是通向這一終極目標的一條理想之路。“上海交通大學-微軟智能計算及智能系統實驗室”的主要研究目標就是為了突破傳統數字計算機在智能信息處理的瓶頸,聯合實驗室匯集了上海交通大學計算機科學與工程系、自動化系和電子工程系的相關領域的10余名教授、副教授,擬在下列方向開展合作研究:
仿腦計算理論與模型
超并列機器學習理論與算法
基于人類視覺信息處理的計算機視覺理論與方法
腦-計算機接口技術
機器人技術
多媒體信息獲取技術
無縫媒體通訊技術
這里需要強調的是,微軟亞洲研究院湯曉鷗博士為聯合實驗室研究方向的確定和研究課題的篩選作出了重要貢獻。湯曉鷗博士在聯合實驗室成立之初,就來上海交通大學為我們作了一場精彩的學術報告,不僅介紹了微軟亞洲研究院在計算機視覺領域最新的研究成果,而且為我們的學生詳細介紹了如何腳踏實地、一步一步地開展高水平的科學研究,使同學們受益匪淺。自聯合實驗室成立以來,微軟亞洲研究院的多名國際知名專家來上海交通大學講學,他們是“深藍項目”之父許峰雄博士、系統結構專家張崢博士和自然語言處理專家周明博士。
2006年度微軟亞洲研究院資助了聯合實驗室在機器學習、機器人和多媒體通信三個方向的研究課題,具體內容如表1所示。
2研究成果
聯合實驗室成立一年多來,取得了多項創新性的研究成果,已在國內外學術刊物和會議上30余篇。由于篇幅限制,下面僅對部分成果作簡要介紹。
(1) 超并列機器學習理論與算法
上海交通大學計算機科學與工程系呂寶糧教授在仿腦計算、機器學習和腦-計算機接口等方向與微軟亞洲研究院系統結構組、文本組和圖像組有著密切的合作與交流,他們共同致力于研究大規模分布式超并列機器學習理論與算法,并將其研究成果應用于人臉識別、自然語言處理、生物信息學和腦-計算機接口等領域。在此期間共同進行博士和碩士研究生以及本科生的培養,聯合發表學術論文。與微軟研究院的文本組、圖像組和機器學習組定期交流和選派學生實習。通過雙方真誠的合作,智能信息處理方向已有2名博士生和5名碩士順利通過答辯。目前上海交通大學有1名博士后、3名博士生、5名碩士生和4名ACM班的本科三年級學生投入到合作研究課題中,來自微軟亞洲研究院的1名優秀青年員工在機器學習方向作為博士生進行聯合培養。
(2) 無縫媒體通訊技術
上海交通大學電子工程系熊紅凱副教授在無縫媒體通信方向,與微軟亞洲研究院網絡多媒體IM組已經進行了多年的合作研究,他們共同致力于無縫媒體通信的良好遠景,主要研究視頻信號多元化智能處理與傳輸,工作包括可伸縮視頻編碼、分布式視頻編碼、網絡編碼,等。微軟研究院IM組吳楓等研究人員與他們在此期間共同進行博士和碩士研究生的培養,支持他們參與國際技術標準MPEG-21和JVT的制訂,聯合提交技術提案和發表學術論文。
通過合作研究,媒體通信方向已有2名博士生、3名碩士生順利畢業;目前上海交通大學在此方向有2名博士生、4名碩士生投入到合作課題中;微軟亞洲研究院有2名優秀員工在媒體通信方向作為博士生進行聯合培養,實現一體化技術合作。合作研究的積累,使得該團隊獲得了2005年和2006年度國家自然科學基金面上和重點項目的相關課題資助。另外,2007年獲得了國家“十一五”863計劃專題。
(3) 移動機器人的視覺定位技術
服務機器人是一個新興的快速發展的研究領域。服務機器人的首要問題是其必須在執行任務中應付復雜的環境。復雜環境中的目標定位技術成為其中一項挑戰性課題。
項目組提出了一種新的單目攝像頭實時定位算法,可以實時計算攝像頭的三維運動軌跡。該算法基于視覺路標,集成了目標識別、特征跟蹤和3D定位算法。其核心思想是:識別場景中的視覺路標,并主動跟蹤匹配特征點,計算攝像機的3D運動軌跡。為了提高算法實時性,相對耗時的目標識別模塊只在初始化時尋找和識別路標,接著跟蹤算子跟蹤匹配特征點,轉入實時跟蹤過程,同時輸出3D軌跡。
實驗表明,結合目標識別、跟蹤和3D定位,本文算法可以主動發現和實時跟蹤感興趣目標,對于普通PC和USB攝像頭,能以30幀/s跟蹤運動目標。3D定位也有較好的精度,準確跟蹤時,定位誤差一般在5cm之內。此外由于每幀都單獨計算位姿,因此不存在累積誤差,目標丟失后也能快速被識別和跟蹤。
3人才培養
聯合實驗室成立伊始,雙方就將人才培養作為合作的重中之重,經過雙方的共同努力和友好合作,在一年多的時間里,已經實施了下列三個具有特色人才培養項目。
(1) 博士生聯合培養項目
上海交通大學與微軟亞洲研究院的博士生聯合培養項目是實驗室在人才培養方面的合作亮點。該項目主要包含兩方面的內容,一方面上海交通大學聘用微軟亞洲研究院的資深研究員為上海交通大學博士生導師并與上海交通大學的教授一起聯合指導博士研究生;另一方面微軟亞洲研究院選派具有碩士學位的優秀員工到上海交通大學攻讀博士學位。目前有六位微軟研究員被聘為上海交通大學客座教授,其中沈向洋博士、洪小文博士、張崢博士、宋歌平博士和湯曉鷗博士為博士生導師。2006年4月微軟亞洲研究院選送了六位優秀青年員工來上海交通大學攻讀博士學位,這些博士生首先在上海交通大學完成學位課程的學習,之后他們將在上海交通大學導師的指導下在微軟亞洲研究院進行博士學位論文的研究工作。這六名博士生的導師分別是上海交通大學計算機科學與工程系的張申生教授、俞勇教授和呂寶糧教授;電子工程系的張文軍教授和孫軍教授。博士生聯合培養項目的實施,既是微軟亞洲研究院對優秀青年員工繼續發展的支持和鼓勵,同時通過雙方深入的交流,將微軟亞洲研究院的研究理念和企業需求帶到上海交通大學,為雙方的共同發展作出了貢獻。
(2) 卡內基?梅隆大學聯合人才培養項目
微軟亞洲研究院聯手上海交通大學和美國卡內基?梅隆大學聯合培養高素質人才。根據“卡內基?梅隆大學-上海交通大學-微軟亞洲研究院”三方達成的協議,上海交通大學、卡內基?梅隆大學每年將互換5名優秀本科學生進行為期一學期的學習,在兩校學習之后,這些學生將到微軟亞洲研究院進行為期三個月的實習,其間他們將參與實際項目的研發工作。這一“產學研”跨國合作的模式,將為中國培養高素質的“IT國際人”提供一種有效的便捷渠道。到目前為止,上海交通大學電子信息與電氣工程學院經過嚴格挑選,已選派了十多位優秀的本科生去卡內基?梅隆大學電子與計算機工程系學習,這些學生分別來自計算機科學與工程系、自動化系和電子工程系。卡內基?梅隆大學也已選派了多名交換生來上海交通大學和微軟亞洲研究院學習和實習。經過三方的聯合培養,不僅拓寬了學生的視野,而且進一步提升了學生的綜合素質。在參加該項目的學生中,有的同學已在本領域高水平的國際雜志和會議上發表了多篇學術論文。此外隨著三方合作的進一步深入和上海交通大學國際化辦學的進一步深化,將會使上海交通大學更多的本科生同學有機會親密接觸世界知名學府和研究院。
集成電路技術的發展,使集成電路和處理器的關系密不可分。隨著多核技術的出現,處理器已經變成構成系統級芯片(SoC)的基本單元,因此,從集成電路的功能級設計層面講,計算機系統設計實現采用的方法就是大規模集成電路(VLSI)系統的設計方法。從卓越人才培養的角度,VLSI系統設計是微處理器的邏輯實現手段,而數字邏輯是計算機組成的物理實現基礎。學生的數字邏輯系統設計能力和VLSI系統設計能力直接決定了其計算機系統設計能力。因此提升學生計算機系統設計能力的關鍵是提升學生的數字邏輯系統設計能力和VLSI系統設計能力。為了切實提高計算機工程專業方向本科學生的計算機系統設計能力,教學改革研究工作的目標確定為:以數字邏輯設計方法為設計基礎、以硬件描述語言為設計工具、以硬件仿真系統為設計環境、以FPGA為系統實現手段、以計算機系統設計實現為目標和主線,將計算機系統設計實踐完整地貫穿于專業核心課程之中;教學改革研究思路確定為:系統視角、整體優先、設計牽引、講做結合、注重能力。該研究思路不同于一般的課程群,不是簡單的知識點的審視,是“自頂向下”的觀點和“自底向上”的實現的一種結合方法,最終目標是提升計算機工程專業方向本科學生的計算機系統設計能力。
2研究內容
計算機工程專業方向的主干課程包括數字邏輯、計算機組成原理、匯編語言、計算機系統結構、嵌入式系統、計算機設計與調試、計算機系統設計、VLSI系統設計等。課程各有目標,課程之間有宏觀上的先后順序,有微觀上的相互穿插,有內容上的重疊。經過近幾年的教學研究和改革,各門課程都發生了非常大的變化[1]:VLSI課程中會涉及算術邏輯單元的設計甚至處理器設計方面的內容;匯編語言的作用已經從編程工具轉變為描述和理解計算機系統工作原理的有效工具;HDL語言和仿真工具不再專屬于數字邏輯電路設計領域,已經成為計算機系統設計的通用語言和工具。但是,由于總目標不明確,導致課程分頭講,實驗分頭做,總體學時不少,最終效果欠佳。筆者的主要研究內容以計算機系統設計為目標,從能力培養的視角看待和理解數字邏輯、計算機組成原理、匯編語言、計算機系統結構、嵌入式系統、計算機設計與調試、VLSI、計算機系統設計等課程,借鑒CDIO的思想,將系統設計思想和設計實踐貫穿整個計算機工程專業方向人才培養過程。
2.1重新審視和修訂教學計劃
在研究過程中,我們首先整理涉及的各門課程的全部知識點,對相互影響的重要知識點整體排序,整合相近和相似的知識點,歸并出一些重要的專題,提出有利于培養計算機系統設計能力的完整實踐教學體系,全線引入HDL語言,全線引入基于FPGA開發板的設計實驗,緊密配合理論課、設計方法課、實踐課,形成“學習—構思—設計—實現”的完整過程。
2.2數字邏輯電路設計課程內容的改革
數字邏輯電路設計課程改革的研究重點是設法強化和提升學生使用硬件描述語言說明硬件系統的能力,將硬件設計語言的介紹提前到課程的開始部分,使學生在學習數字邏輯電路設計過程中就開始使用硬件設計語言,相當于使學生掌握了一個設計工具,為計算機組成原理課程和計算機系統結構課程提供支持,另外,從教學上形成學習數字邏輯電路設計就是學習集成電路設計的理念。數字邏輯電路設計課程的實驗既有使用邏輯電路器件搭建實驗電路的傳統型實驗,又有使用FPGA開發板的設計實驗。
2.3計算機組成原理課程的教學改革
計算機組成原理課程借鑒“深入理解計算機系統”教材中的思想,調整了部分課程內容和授課重點,比如,在數據表示部分增加了C語言的整數表示以及比較運算的示例,在存儲器部分增加了程序訪問局部性原理的C語言示例,在指令系統部分增加了尋址方式的C語言示例等。增加C語言的示例是進行教學視角調整的一種嘗試,由于學生已經學習過C語言,已經初步掌握了編程方法,但是并不清楚程序在計算機內部,特別是在計算機系統底層硬件中是如何表示、如何執行的。通過在計算機組成原理課程中增加一些C語言的示例,讓學生真正理解程序的執行過程。
2.4計算機系統結構課程內容的調整
計算機系統結構課程在課程內容方面進行了一些調整,主要為了更好地與計算機組成原理和計算機設計與調試等課程銜接。增加多核處理器和多線程調度等方面的內容;對教材中給出的一些具體處理器實例給予更多關注,比如Pentium、PowerPC和MIPS處理器實例等;重視向量運算和向量處理器部分的內容。
2.5計算機設計與調試課程實踐教學改革
計算機設計與調試課程把以往讓學生設計實現一個有十幾條基本指令的微程序控制器改變為設計實現向量協處理器;以PowerPCRISC處理器的指令系統為參考,把設計PowerPC擴展指令協處理器AltiVec模塊中的VSFX指令部分作為教學內容。整個設計任務分為8個相互聯系、難度逐步增加的子任務,通過教師引導、分組討論、學生實踐、實現設計、完成測試等一系列教學環節,讓學生完成協處理器中的部分設計工作并熟悉完整的協處理器的設計與調試方法。
2.6嵌入式系統設計課程實踐教學改革
嵌入式系統設計課程開發出嵌入式系統計算機結構及相關軟件的綜合實驗,使硬件與軟件相結合,強化對學生計算機綜合開發應用能力的培養,提高學生的實踐能力。綜合實驗要求學生完成一個嵌入式系統開發實現的全過程,包括完成硬件、軟件的功能分配,進行主控數字系統硬件的設計和制作,設計驅動和功能軟件,硬件、軟件的分別測試與綜合測試等。
2.7VSLI系統設計課程實踐教學改革
VSLI系統設計課程的實踐教學改革,把實踐分為3種類型:課程實驗、自主實驗和課程設計,3種類型的實驗全部基于Nexys3FPGA開發板進行設計。課程實驗包括XilinxFPGA設計流程、Nexys3FPGA開發板主要模塊接口設計和基于IP的數字電路設計等。自主實驗部分的題目類型包括:串—并轉換電路、FIFO存儲器設計、大數加法器設計和FIR數字濾波器設計等。課程設計部分的題目類型包括密碼協處理器設計、數字信號協處理器設計和圖像處理協處理器設計等。
3實驗室建設
天津大學計算機科學與技術學院2006年建立了數字邏輯電路設計實驗室、計算機組成實驗室、計算機系統結構實驗室、嵌入式系統實驗室,建立了超大規模集成電路設計與應用研究所。實驗室配備了數字邏輯實驗臺、計算機組成原理實驗臺、計算機系統結構實驗臺(帶有FPGA模塊)、嵌入式系統設計實驗臺等教學實驗設備。這些實驗室和實驗設備能夠滿足常規的計算機系統實驗,但對計算機系統設計能力培養的支持還不夠。為此,學院2013年與美國Xilinx公司合作,建立了天津大學—美國Xilinx公司計算機系統設計聯合實驗室,實驗室配備了50多塊Nexys3FPGA開發板,實驗時可以滿足每人一塊開發板的要求。超大規模集成電路設計與應用研究所于2012年引進BEECube公司先進的BEE3系統,該系統基于計算機系統的第三代商用FPGA系統,包括4個Virtex5FXTFPGA芯片,以及高達64GB的DDR2ECCDRAM和8個用于模塊間通信的10GigE接口。有了Nexys3FPGA開發板和BEE3系統,我們具備了實現學生設計的各種計算機系統的設備平臺,為培養學生計算機系統設計能力提供了強有力的支撐。
4結語
“編譯原理”、“操作系統”和“計算機體系結構”是計算機專業的三門核心課程,在計算機科學的教學體系中占有重要地位。學生對于這三門課程的掌握程度在一定程度上反映了他們對計算機專業知識的掌握情況;進一步講,能否確切理解編譯程序、操作系統和硬件系統之間的關聯及它們在計算機系統中的層次地位,直接反映了學生對專業知識的整體把握程度。遺憾的是,受限于目前的教學大綱和學時,這三門課程的教學很少涉及對相關課程的介紹和聯系,只注重課程自身教學內容的講解和分析,導致學生無法理解所學知識的應用背景,產生學無所用的想法。
由于編譯課程內容具有較強的理論性、邏輯性和實踐性,學生在學習過程中感到過于抽象和難以理解。編譯教學內容涉及到程序設計、操作系統和計算機系統結構等相關課程,掌握編譯技術有助于加深學生對整個計算機系統的理解[1]。目前,編譯課程的教學更多關注自身內容的講解和傳授,與其他課程橫向聯系的內容相對較少。許多學校雖然開設了實驗課及相應的課程設計,但只對編譯理論中的某些算法或編譯系統的某一階段功能進行單純的實現與驗證,缺少實際背景。另外,現行的編譯教材大部分都是從編譯技術本身的角度撰寫的,為的是讓學生掌握編譯的基
本理論與思想[2]。所有這些最終導致學生無法對高級語言程序設計每條指令的執行過程有清晰的認識和理解,因而不能實現專業知識的融會貫通。計算機專業的理論基礎對培養學生的計算機專業素養具有非常重要的作用[3],因此課程間封閉的教學方式不利于專業素養的培養和提高。
目前,這一現狀在短時間內很難改變。筆者認為應以編譯課程為切入點,在教學過程中加強相關課程的聯系,促進計算機專業知識的交叉融合。
1以編譯課程為切入點,強化專業知識融會貫通
編譯程序在計算機系統不同層次中處于核心地位,在程序設計及運行過程中起到橋梁和紐帶作用,因此應以編譯課程為切入點,促進專業知識的融合。按照教學大綱安排,學生入學后首先要學習程序設計的相關課程,進入高年級后,主要學習操作系統、計算機體系結構和編譯原理等核心專業課程,它們之間的關系如圖1所示。由圖1可以看出,編譯程序在從程序設計到程序運行產生輸出結果這一過程中處于核心地位,編譯系統對用程序設計語言編寫的源程序
進行編譯,編譯過程中會用到源語言自身的規范和庫程序,需要操作系統提供的庫程序和接口以及目標體系結構的相關信息生成可執行的二進制程序。可執行程序根據用戶的需要,由操作系統調度運行,并與下層的硬件系統產生密切的關系。本文由收集整理為此,編譯課程的部分內容需要程序設計語言、操作系統和體系結構等課程作為支撐,這樣學生才能更好地理解計算機系統從軟件設計到程序執行的完整過程。
正是由于編譯系統在計算機系統中處于重要地位,以編譯課程為切入點,在教學過程中加強核心課程之間的橫向聯系,不僅有助于實現編譯課程抽象內容形象化,也有助于加強學生對整個計算機系統的認識。另外,隨著計算機系統結構的不斷發展與更新,嵌入式計算、并行計算與可重構計算系統逐漸得到發展和普及,這些都使編譯系統和計算機系統結構之間的關系變得比以往更加密切。一種新結構的出現需要新編譯系統的支持才能真正發揮作用,因此在編譯課程的教學中加強與其他課程的聯系,也是符合計算機系統發展的大趨勢。
2以編譯課程為切入點的可能性分析
以編譯課程為切入點,強化各個核心專業課程之間的關聯,其可能性概括如下:
(1) “編譯原理”是計算機專業重要的專業課程,且在計算機系統中具有重要地位。
(2) 編譯課程開課的學期較為合適。我們查閱了國內部分高校的教學計劃,研究了計算機核心專業課程的課程安排。如表1所示,在我們調查的高校中,除北京大學、北京航空航天大學和西安交通大學外,近一半高校編譯課程的開課學期多位于程序設計、操作系統和計算機體系結構等課程之后,或與操作系統和體系結構等課程同時講授,因此在編譯課程的講授過程中穿插聯系相關課程的內容比較合理。通過對相關知識進行整理歸納、鞏固與提升,能夠取得較好的教學效果。
(3) 編譯課程多次涉及其他專業課程的內容,例如“編譯原理教學引論”部分要講授程序設計語言的發展歷史、編譯程序在計算機軟件系統中的重要地位等內容;講授“編譯運行時的環境”部分時,一定學時用于講述存儲分配,特別是基于棧的運行時環境的動態存儲分配和基于堆的運行時環境的動態存儲分配部分,與操作系統相關內容相互滲透;在“代碼生成和優化”部分,尤其是過程(函數)調用的翻譯部分,針對目標系統結構的優化部分,亦需要體系結構相關知識作為支撐。反觀操作系統和體系結構等課程的教學內容,與其他課程的聯系則相對較少。
基于以上幾點認識,我們認為,以編譯課程為切入點,充分利用有限的學時,在部分教學內容中強化與其他核心課程的關聯,實現專業知識融會貫通的可能性是存在的。
3關于課程教學的幾點建議
如前所述,目前教與學的實際情況不利于學生對計算機專業知識的融會貫通,在注重軟件能力培養的計算機學院中,學生對圖1的陰影部分知之甚少,而對陰影前后兩部分的內容更加熟悉,掌握程度更高。所以,學生沒有從總體上對所學知識建立完整的知識體系,對所學專業課程沒有構成清晰的輪廓和概括。
為了強化編譯課程的教學效果,教師需要將課程教學置于計算機系統大的背景環境之中,重點闡述編譯程序在計算機軟件系統中的重要性,與其他核心專業課程之間的聯系,同時運用實例教學,使學生從抽象的教學內容中解脫出來,真正感受到所學知識的可用性和有用性。鑒于此,我們對編譯課程的教學提出如下幾點建議:
(1) 在引言部分強調編譯課程與其他課程的關系,重點
說明編譯程序在整個計算機系統中的作用和層次地位。需要說明的是,教師不應只強調編譯程序自身的地位和作用,還要將其放入圖1所示的背景中,使學生能夠理解編譯程序在從語言到程序執行過程中所處的位置和作用,加強對計算機專業大背景的認識。
(2) 在運行環境、代碼生成和優化部分,教師應結合操作系統和計算機體系結構內容進行講解,使學生能更好地理解目標代碼格式、函數調用方式、基于棧的存儲管理、代碼優化的原因和目標等概念。
例1:對可優化的簡單程序源碼,使用同一編譯程序多次編譯,每次編譯時指定不同的優化級別,通過分析編譯程序生成的匯編源碼比較生成的可執行程序運行性能,向學生解釋編譯程序在編譯過程中實施的優化措施,說明優化的目的和效果。
例2:針對最簡單的c語言helloworld程序,通過分析其在具體平臺上編譯后的運行時函數調用圖(包括操作系統api),說明用戶編寫的程序與語言庫、系統庫之間的關系。
例3:結合具體型號的dsp處理器(例如tms320 c6000系列)及其調試模式下指令的執行過程,說明針
對具體計算機系統結構進行編譯優化的必要性和重要性。
(3) 建議針對目前常用的系統平臺設計小型完整的實踐課程,實踐內容應適量涉及體系結構和操作系統的相關內容。針對常見的處理器架構和操作系統設計實踐課程,可以使學生在實際的系統中觀察到實踐結果,通過實際操作和驗證增強感官認識,對所學知識融會貫通。
例:針對學生熟悉的程序設計語言(c或者java)、經常使用的操作系統(windows或者linux)、常見處理器架構(例如x86),設計簡單完整的實踐課程。教師提供能夠處理一小部分語法子集的完整編譯程序,供學生學習,作為實踐過程的參照。學生可以將一小部分沒有實現的語法子集作為實踐任務,完善已有的編譯程序,實現從詞法分析到代碼生成的各部分功能。最后應能使增強的編譯程序在現有的系統平臺上運行,編譯源碼文件并生成可運行的應用程序。