摘要:本文在現(xiàn)有最新文獻的基礎(chǔ)上,設(shè)計了計算機系統(tǒng)結(jié)構(gòu)課程中的多核實驗,體現(xiàn)在多核技術(shù)知識點在課程中的設(shè)計安排和多核實驗的構(gòu)建,并探討了多核實驗的設(shè)計目標。
關(guān)鍵詞:計算機系統(tǒng)結(jié)構(gòu);多核;FPGA
隨著計算需求的不斷增長,由于復(fù)雜的芯片工藝與功耗成本限制,處理器的性能提升從原有的主頻提高轉(zhuǎn)為多內(nèi)核發(fā)展。很快,一些大型機制造廠商,如IBM、Sun開始利用并行計算設(shè)計出了多核處理器(例如:IBM推出的CELL異構(gòu)多核處理器,Sun公司推出的OpenSparc T1開源多核處理器[1]),這些處理器在一塊芯片上集成多個計算內(nèi)核,成倍地提高了計算速度。2006年,以Intel與AMD為代表的處理器制造商在年初和年底相繼推出雙核、四核處理器,緊接著,在2007年1月,Intel展示了配置兩個四核處理器的八核計算機,這標志多核處理器開始全面進入市場,宣告計算機真正進入多核時代。
所謂“多核(Multi-core)”,即指一塊芯片上集成多個處理核,各自擁有獨立的控制和計算部件,無需共享關(guān)鍵資源。多核技術(shù)的發(fā)展給大學(xué)計算機教育帶來新的課題,即在多處理器環(huán)境下,計算機系統(tǒng)結(jié)構(gòu)、計算機操作系統(tǒng)、編譯原理和應(yīng)用軟件的編程模型等都發(fā)生了很大的變化,促使大學(xué)計算機的教學(xué)需要做出針對性的變化。
計算機系統(tǒng)結(jié)構(gòu)(Computer Architecture),作為研究計算機系統(tǒng)結(jié)構(gòu)演化以及影響計算機硬件與軟件系統(tǒng)設(shè)計的一門重要課程,在介紹計算機系統(tǒng)結(jié)構(gòu)原理、分析設(shè)計方法、性能評價、發(fā)展趨勢和新的實現(xiàn)技術(shù)上,需要增加多核技術(shù)這個重要的新知識點。在過去相當長的一段時間里,由于不具備開設(shè)計算機系統(tǒng)結(jié)構(gòu)和多核技術(shù)相關(guān)實驗的硬件平臺和軟件環(huán)境,
國內(nèi)很多高校開設(shè)計算機系統(tǒng)結(jié)構(gòu)課程時均未開設(shè)該課程的實驗,特別是多核技術(shù)方面的實驗,以至于學(xué)生沒有實驗教學(xué)和體驗式實踐而很難掌握該課程的知識。
為了更好地應(yīng)對新的“多核”時代,電子科技大學(xué)的計算機科學(xué)與工程學(xué)院、信息與軟件工程學(xué)院(原示范性軟件學(xué)院)從2007年開始在計算機系統(tǒng)結(jié)構(gòu)課程教學(xué)中引入多核技術(shù)。一是在理論教學(xué)上增加處理器體系結(jié)構(gòu)、系統(tǒng)架構(gòu)和程序設(shè)計內(nèi)容,從三個方面給學(xué)生展現(xiàn)了一個比較完整的多核技術(shù)概覽圖景;二是在實驗平臺建設(shè)上設(shè)計多核實驗,從實踐環(huán)節(jié)上來鍛煉學(xué)生的動手能力和提升其創(chuàng)新能力。
1實驗教學(xué)的現(xiàn)狀
在計算機系統(tǒng)結(jié)構(gòu)課程中設(shè)計多核實驗,須從計算機系統(tǒng)結(jié)構(gòu)與多核知識的課堂教學(xué)成果入手,把握多核技術(shù)的理論教學(xué)動態(tài)。然后重點調(diào)查國內(nèi)高校在多核實驗教學(xué)方面的研究現(xiàn)狀,為計算機系統(tǒng)結(jié)構(gòu)中的多核技術(shù)實驗設(shè)計提供必要的技術(shù)支持和可行性研究。
事實上,計算機系統(tǒng)結(jié)構(gòu)課程重在培養(yǎng)計算機專業(yè)本科生的抽象思維能力、自頂向下系統(tǒng)分析和創(chuàng)新能力。全國重點和普通高校中幾乎都開設(shè)了這門課程,出現(xiàn)了大量的課程教學(xué)與教研成果[2-12]。雖然課程教學(xué)成果多,但是實驗教研成果小,而且還缺乏多核知識點的引入或多核體系更新不足。
作者簡介:于永斌,男,副教授,研究方向為計算機系統(tǒng)結(jié)構(gòu)、大規(guī)模集成電路設(shè)計與應(yīng)用。
關(guān)于多核技術(shù),清華大學(xué)的王小鴿[13]提供了理解多核技術(shù)、并行計算與未來計算機發(fā)展的視角。薛巍[14]從并行計算基礎(chǔ)、高性能計算前沿技術(shù)研討課、多線程/多核CPU邏輯設(shè)計短期課程等方面介紹了清華大學(xué)多核課程建設(shè)成果。吳繼雁[15]簡要地分析與總結(jié)了多核技術(shù)及發(fā)展趨勢。北京交通大學(xué)計算機學(xué)院的劉近光和梁滿貴[16]介紹了基于MIPS體系結(jié)構(gòu)的多核處理器特點。浙江大學(xué)的陳天洲等[17-21]介紹了多核程序設(shè)計課程和進行了多核精品課程建設(shè)探索與實踐,并主持了教育部骨干教師多核技術(shù)培訓(xùn),對多核技術(shù)的教學(xué)科研做出了很大的貢獻。武漢大學(xué)電子信息學(xué)院的楊劍鋒等[22]介紹了“多核架構(gòu)及編程技術(shù)”這一教育部-Intel精品課程建設(shè)成果。北京工業(yè)大學(xué)計算機學(xué)院的方娟[23]探討了多核教學(xué)內(nèi)容和教學(xué)模式。與這些多核技術(shù)的教學(xué)成果相比較,由于多核硬件實驗平臺與軟件環(huán)境的難構(gòu)造,使得多核技術(shù)方面的實驗研究成果特別少。根據(jù)作者的可查文獻,中山大學(xué)教學(xué)實驗中心的程小雄和伍麗華[24]進行了基于FPGA的多核技術(shù)課創(chuàng)新實驗探索,介紹了在現(xiàn)場可編程門陣列(FPGA,F(xiàn)ield Programmable Gate Array)芯片和SoPC(片上可編程系統(tǒng))、NOIS-II等工具軟件所組成的軟硬件平臺下,開展多核技術(shù)課程創(chuàng)新實驗的研究;并在新組成的多核系統(tǒng)中,移植和擴展了μC/OS-II操作系統(tǒng),還設(shè)置了相關(guān)的實驗環(huán)境和若干實驗項目,對提高學(xué)生的綜合實驗?zāi)芰哂蟹e極的作用。
通過對計算機系統(tǒng)結(jié)構(gòu)和多核技術(shù)課堂教研與實驗教學(xué)動態(tài)的充分調(diào)研,我們不難得到多核技術(shù)在國內(nèi)課堂與實驗教學(xué)中的實施狀況,雖有新增多核課程或修改原有課程(如:計算機系統(tǒng)結(jié)構(gòu)、高級計算機體系結(jié)構(gòu)或高等計算機系統(tǒng)結(jié)構(gòu))的教學(xué)內(nèi)容,但較少涉及多核技術(shù)方面的實驗教學(xué)?;谶@樣的背景,在計算機系統(tǒng)結(jié)構(gòu)中設(shè)計多核實驗,這對學(xué)生的實驗?zāi)芰途C合素質(zhì)提高具有特別重要的作用。
2多核實驗的設(shè)計
在計算機系統(tǒng)結(jié)構(gòu)課程中設(shè)計多核實驗,需要把握多核本質(zhì)和其技術(shù)要點。多核的本質(zhì)是為了解決高性能計算和并行計算問題,它在硬件和軟件兩個方面改變了傳統(tǒng)的計算機系統(tǒng)結(jié)構(gòu)。由此,多核技術(shù)的發(fā)展使得計算機系統(tǒng)結(jié)構(gòu)的教學(xué)發(fā)生了變化,這種變化主要來自于多核技術(shù)所帶來的新知識點。多核技術(shù)所涉及的知識點可歸納為硬件和軟件兩個方面,具體如下:
1) 多核硬件方面的知識點。
(1) 多核下的硬件設(shè)計技術(shù),包括Cache與存儲一致性、網(wǎng)絡(luò)互聯(lián)、IO管理;
(2)多核芯片與傳統(tǒng)單核微處理器的區(qū)別,多核SoC(System on a Chip)芯片技術(shù);
(3) 嵌入式多核芯片技術(shù)以及典型多核芯片:Cell、OpenSparc、Intel雙核芯片、AMD雙核芯片等;
(4) 并行體系與多核體系結(jié)構(gòu)、多核平臺結(jié)構(gòu)與芯片組支持技術(shù)。
2) 多核軟件方面的知識點。
(1) 多核操作系統(tǒng)、多核系統(tǒng)軟件對并行編程的支持、多核API優(yōu)化函數(shù)庫,多核平臺上編譯工具;
(2) 多線程編程對多核的支持,Windows/Linux多核多線程編程技術(shù);
(3) OpenMP多線程編程及性能優(yōu)化,MPI (Message Passing Interface)編程及性能優(yōu)化;
(4) 多核多線程程序的性能評測方法與工具。
基于上述的多核知識點,聯(lián)系計算機系統(tǒng)結(jié)構(gòu)原有實驗,可在硬件平臺和多核軟件工具上設(shè)計多核實驗。
多核實驗,包括兩個方面的實驗內(nèi)容。一是在FPGA芯片上設(shè)計多個同構(gòu)或異構(gòu)處理器內(nèi)核,并進行操作系統(tǒng)的移植,最終做出一個可實際運行的多內(nèi)核計算機系統(tǒng);通過該實驗,可增長學(xué)生對實驗的興趣,更深刻理解多核技術(shù)的知識點。二是Windows/Linux多核多線程編程實驗,利用多核軟件工具進行編程;在Windows平臺下,利用Win32API、MFC或.Net Framework提供的接口來實現(xiàn);若在Linux平臺下,利用IEEE POSIX標準定義的API進行多線程編程。對于綜合設(shè)計,可設(shè)計為學(xué)生課外的有關(guān)多核技術(shù)設(shè)計、實驗或發(fā)展趨勢調(diào)研的課程設(shè)計、創(chuàng)新設(shè)計或畢業(yè)設(shè)計,訓(xùn)練學(xué)生面對實際應(yīng)用問題的綜合分析、方案設(shè)計、多種程序設(shè)計結(jié)構(gòu)的綜合使用和實際工程問題的綜合解決能力。
在計算機系統(tǒng)結(jié)構(gòu)中設(shè)計多核實驗,希望達到如下目標。
1) 設(shè)計多核實驗,發(fā)展計算機系統(tǒng)結(jié)構(gòu)課程教學(xué)與實驗實踐內(nèi)容,按照Intel多核技術(shù)大學(xué)合作計劃[25],實現(xiàn)高校與Intel的合作;
2) 理解普適的多核思想和硬件設(shè)計理念