999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

學科競賽與課程設計有機融合的計算機組成原理實驗教學探索

2023-07-16 08:16:48樊彥恩張俊霞
軟件導刊 2023年6期
關鍵詞:調試計算機實驗

樊彥恩,張俊霞

(中國科學技術大學 計算機科學與技術學院,安徽 合肥 230026)

0 引言

信息和通信技術的飛速發展,對計算機專業人才的綜合素質、競爭能力和創新能力的要求越來越高。為推動我國計算機領域創新人才培養,為我國高端芯片及核心系統的技術突破與產業化培養后備人才,教育部高等學校計算機類專業教學指導委員會(簡稱“計算機類教指委”)和系統能力培養專家組共同發起 “全國大學生計算機系統能力培養大賽”。大賽以賽促學、以賽促教,助力我國高校與企業產學研合作的健康、快速發展。其中,“龍芯杯”作為該賽事的CPU賽道(以下簡稱CPU設計大賽),以計算機系統設計、分析、優化、應用為目標,涉及到計算機系統結構中的CPU、操作系統和編譯器3個方向的知識,重點培養學生的系統觀、創新力、工程實踐能力和團隊協作精神。

計算機組成原理作為計算機專業最重要的核心基礎課之一,其教學內容是軟件與硬件的結合,不僅涉及計算機系統結構中下層的數字邏輯電路設計和指令系統,還涉及到上層的操作系統和編譯程序等軟件技術,在整個計算機專業教學中起著承上啟下的作用[1-2]。該課程對于學生完整理解計算機系統的層次結構,系統地建立計算機整機概念,具有非常重要的作用。

近年來,在全國計算機教學指導委員會的指導和推動下,各高校都在進行計算機系統能力培養的教學改革[3-5]。其中,針對計算機組成原理實驗課程教學改革的研究與探討工作也在不斷發展和完善中。北京工業大學教學硬件課程組分析并梳理了計算機類競賽典型參賽作品中涉及到的各種硬件知識點,在計算機組成原理這一核心課程上,借鑒了競賽的CPU架構,增加了一些典型外設的連接任務等內容[6]。針對計算機組成原理實驗課程特點,成都大學提出將科技競賽與其融合,通過建立具有科技競賽背景的教師團隊進行教學改革[7]。硬件實驗平臺對于計算機組成原理的實驗課程教學具有重要意義。合肥工業大學教學課題組通過分析安徽省系統能力培養競賽題目和成績,以及對部分院校計算機組成原理實驗平臺的調查,提出以ModelSim為主要實驗平臺,以仿真為主的輕量級實驗體系[8]。南京郵電大學和北京科技大學通過引入龍芯開源 CPU的教學實驗平臺,開展了一系列教學改革嘗試[9-10]。綜上所述,各高校對計算機組成原理實驗課程的教學改革主要集中在實驗平臺、教學方法以及硬件外設應用方面,并取得了預期成效[11-12]。然而,鮮有教改在實驗內容中增設軟件技術和CPU功能調試技術,這兩方面內容對于學生建立系統觀和鍛煉工程實踐能力非常有幫助。在計算機組成原理實驗的考核方面,目前的主流方式是實驗檢查,將實驗報告與平時成績相結合。在實驗檢查時,由于助教的知識水平和評判標準差異,給出的分數帶有一定的主觀性,并且區分度較小。因此,對實驗結果進行科學、有效的量化顯得尤為重要。

中國科學技術大學計算機科學與技術系春季學期開設的計算機組成原理實驗課程要求學生在FPGA開發板上設計出一個最小計算機硬件系統。其核心是針對給定的RISC-V指令系統,采用硬件描述語言Verilog HDL,在FPGA芯片上設計出擁有完整CPU架構的片上系統(System on Chip,SoC)。為了進一步培養學生的計算機結構系統觀和工程實踐能力,課題組將CPU設計大賽中涉及到的計算機系統硬件、軟件知識點以及CPU功能調試技術,經過研究、裁剪和融合,滲透到計算機組成原理實驗教學內容中,將在CPU設計大賽中采用的系統測試方法和評分標準應用到實踐教學中,更新和擴充教學內容,將競賽與教學進行有機結合,切實提高實驗教學質量。

1 實驗課程知識儲備

計算機組成原理實驗課程旨在利用電子設計自動化技術(Electronic Design Automation,EDA),在FPGA開發板(Nexys4 DDR)上構建一個能正確工作的最小計算機硬件系統,如圖1所示。該最小計算機硬件系統由擁有完整CPU架構的SoC芯片及其外設接口設備組成。其中,開關和按鍵控制Run Mode模塊輸出時鐘信號clk_cpu,控制CPU工作在單步調試模式或連續運行模式;CPU通過訪問IO Unit模塊管理外設,如驅動開發板上的LED燈、數碼管,并接收外部開關、按鍵的輸入等。在數字電路理論和實驗課程中,學生已經掌握在Vivado集成環境下,采用Verilog HDL語言在FPGA芯片上進行數字邏輯單元設計和簡單的數字系統設計。其次,在計算機組成原理理論課程中,學生深入學習了RISC-V指令系統,以及單周期、多周期和流水線CPU數據通路設計。計算機組成原理實驗課程建立在此基礎上,從設計CPU部件級電路開始,逐步完成RISC-V體系結構的完整CPU設計。

Fig.1 Schematic diagram of minimum computer hardware system圖1 最小計算機硬件系統原理

2 實驗課程內容設置

計算機組成原理實驗課程旨在以“搭積木”的方式構建一個能正確工作的最小計算機系統,實驗內容主要包括CPU調試技術以及CPU部件級設計、編譯工具使用及匯編程序設計、單周期CPU設計、流水線CPU設計和綜合設計。其中,CPU作為計算機系統的核心器件,是實驗課程中需要重點設計的部分。最小計算機系統工作原理如圖2所示。

Fig.2 Working principle of minimum computer system圖2 最小計算機系統工作原理

2.1 CPU部件級設計

CPU硬件架構由一系列功能部件組成,如算術邏輯單元(Arithmetic and Logic Unit,ALU)、寄存器、存儲器等。這些功能部件通過數據通路與控制器互連,實現了一個指令的5個處理步驟:取指、譯碼、執行、訪存、寫回。在實驗課程中,部件級實驗主要包括ALU設計及其應用、寄存器堆與存儲器設計。

2.2 編譯工具使用及匯編程序設計

“龍芯杯”CPU設計大賽的初衷在于提高學生的計算機系統能力,參賽隊員不僅要掌握CPU的工作原理及設計方法,而且需要了解基于GNU編譯套件(GNU Compiler Collection,GCC)編譯的一般過程,即一個C或匯編程序是如何一步步轉化為一個可執行文件的。由于待測試的最小計算機硬件系統沒有運行任何操作系統,無法直接運行可執行文件,因此需要利用RAM IP的初始內容加載功能。基于此,課題組設計了GCC交叉編譯工具的使用和匯編程序設計方面的實驗內容。

2.2.1 GCC交叉編譯工具使用

結合CPU設計大賽中對交叉編譯工具的使用要求,同時借鑒美國一流大學UC-Berkeley、Stanford大學和卡內基梅隆大學等在相關實踐課程方面的教學理念及教學思路[13]:“C語言程序→匯編語言程序→機器目標代碼→處理器結構”,在單周期CPU設計實驗開始之前,課題組安排了GCC交叉編譯工具的使用實驗。學生根據指導書完成虛擬機環境搭建,通過使用GCC工具和簡單的Linux 操作命令,將一個簡單的C語言程序hello.c通過編譯、匯編、鏈接,轉換成目標機器代碼。該實驗作為一個驗證性實驗,具有很強的綜合性,旨在幫助學生理解高級語言與機器語言之間的轉換關系,使學生對一個程序的處理過程以及計算機硬件系統和軟件系統是如何協調工作的,有一個全面了解,初步建立計算機系統概念。

2.2.2 匯編程序設計

計算機組成原理實驗要求學生在FPGA開發板上設計并實現一個最小計算機硬件系統,然后通過在該計算機硬件系統上運行測試程序來完成CPU的功能驗證。該測試程序通常采用C語言或匯編語言編寫。編寫C語言代碼比較方便、快捷,適合編寫復雜程序;匯編語言在編寫時雖然比較繁瑣,但可以明確控制指令順序,編譯結果。因此,幫助學生學會閱讀并設計匯編程序非常有必要的。

在匯編程序設計實驗中,要求學生設計匯編程序,實現斐波那契—盧卡斯數列,然后利用匯編仿真工具Rars(RISC-V Assembler and Runtime Simulator),將匯編程序的代碼段與數據段分別轉換成inst.coe和data.coe文件。該coe文件即可作為后續CPU的功能測試程序。

2.3 CPU調試技術

從學生做實驗的周期來看,仿真和調試所占比重相對較大,也是學生反饋最多問題的地方。CPU設計大賽給出了一套基于Trace比對的調試仿真技術[14],其核心思想是單步調試策略,能夠判斷每一行代碼的運行結果是否正確,可以幫助參賽者對自己的設計進行仿真驗證。但在實際調試過程中,經常會碰到仿真上板行為不一致的情況,更多時候是仿真正常,上板異常。由于學生上板調試能力較弱,導致很難定位錯誤?;诖?,課題組借鑒基于Trace比對的調試仿真技術核心思想:單步調試策略,對本部分實驗內容作如下安排:①設置Vivado在線調試工具ILA(Integrated Logic Anylyzer);②通過FPGA開發板上的撥碼開關控制Run Mode模塊,控制CPU工作在單步運行或連續運行模式;③在單步運行模式下,通過按鍵控制Run Mode模塊輸出時鐘脈沖,即按一次按鍵,輸出一個時鐘脈沖。

在上板異常時,首先控制CPU運行在單步運行模式,然后按下時鐘脈沖觸發按鍵,通過單步調試的“慢動作”運行程序的每一行代碼,之后利用ILA工具抓取關鍵的調試信號,如PC值、從RF讀出的數據rf_data、從數據存儲器讀出的數據m_data、RF的寫回數據wb,以及各流水段寄存器控制信號ctrl、ctrlm、ctrlw等,能夠看到每一行代碼的運行行為是否符合預期,從而及時定位出錯點,如圖3所示。其中,clk_cpu是CPU模塊的時鐘信號,將clk_cpu的上升沿作為觸發條件。

Fig.3 CPU single step running ILA interface圖3 CPU單步運行ILA界面

2.4 CPU設計

2.4.1 單周期 CPU設計

為了使學生能夠在最短時間內接觸到CPU設計的核心知識,課題組從基礎整數指令集RV32I中選取10條最具代表性的指令,構建最小計算機系統。10條指令分別為:add,addi,sub,auipc,lw,sw,beq,blt,jal,jalr,其功能介紹如表1所示。實現上述10條指令的單周期CPU數據通路如圖4所示。

Table 1 The instructions implemented by CPU表1 CPU需要實現的指令

Fig.4 Datapath of single-cycle CPU圖4 單周期CPU數據通路

2.4.2 流水線CPU設計

流水線是現代工業體系的關鍵思想。在現代CPU中,為了縮短數據通路、提升主頻,設計者使用多組寄存器將CPU的各個部分分割開來,形成了指令與數據的流水線。一般來說,電路主頻越高,所需的流水線的級數則越多,但這并不意味著級數越多越好。由于觸發器本身存在延時,兩級流水線之間的路徑和組合邏輯都會引入延時,因此主頻不能無限提高。其次,流水線級數越多,所帶來的相關性問題便會越復雜。在本實驗中,采用最經典的5級流水線設計,每條指令均包含IF(Instruction Fetch,取指令)、ID(Instruction Decode,譯碼)、EX(Execution,執行)、MEM(Memory Access,訪存)和 WB(Write Back to Register,寫回)5個步驟。

流水線CPU可能存在3類相關問題[15]:結構相關、數據相關和控制相關。本實驗要求學生在單周期CPU數據通路基礎上,設計出相同指令集的流水線CPU數據通路,然后按照以下4個步驟設計并運行CPU:

步驟1:設計理想流水線CPU,并能夠運行無數據相關和轉移指令的測試程序(指令存儲器加載no_hazard.coe)。

步驟2:設計僅有數據相關檢測和處理單元的流水線CPU,并能夠運行僅有數據相關的測試程序(指令存儲器加載data_hazard.coe)。

步驟3:在步驟2的基礎上,增加控制相關檢測和處理單元的流水線CPU,并能夠運行僅有數據相關和轉移指令的測試程序(指令存儲器加載hazard_test.coe)。

步驟4:運行測試程序,計算斐波那契—盧卡斯數列,查看時序報告和資源利用率,并與單周期CPU運行結果作比對。

2.5 綜合設計

經過前面對CPU部件級設計、匯編語言程序設計、單周期CPU設計、流水線CPU設計及CPU調試技術的實踐訓練后,學生基本掌握了在FPGA開發板上設計出一個最小計算機硬件系統的方法,并且熟悉了FPGA開發板的外設資源。在本實驗課程的最后,課題組安排了綜合設計實驗。

綜合設計實驗要求學生分組完成,每組由2名同學分工合作,從而鍛煉學生團隊協作的能力。實驗結果評估采用項目答辯的形式,每個小組選派代表上臺,通過PPT和視頻展示,介紹項目設計原理和特點,鍛煉學生的心理素質;通過問答環節,提升學生主動探索的熱情和學習的積極性,增強各個小組之間的對抗性。

3 實驗考核評價

實驗考核評價是實驗教學過程中非常重要的一環,建立科學的實驗考核評價機制是保證實驗教學質量的重要手段[16]。在單周期和流水線CPU實驗的考核過程中,由于系統功能復雜,對實驗結果進行科學有效的量化則顯得尤為重要。課題組借鑒了部分CPU設計大賽中的評分標準,將CPU實驗考核劃分為功能測試得分和性能測試得分。

(1)功能測試得分以正確通過CPU測試程序中的指令項數為評價依據。計算方法由式(1)所示:

學生每次測試通過一部分指令即可得到一部分分數,不僅提高了學生對實驗的興趣,而且還能較好地了解學生的完成情況。

(2)性能測試得分以CPU運行測試程序所需的時間為評價依據。在FPGA內部集成1個時鐘周期計數器,并將計數值顯示在外設數碼管上?;居嬎惴椒ㄈ缦拢?/p>

課題組設置一個最小和最大執行時間,性能測試分值分別定義為100分和0分,學生成績映射至[0,100]區間。

程序執行時間的計算方法如式(2)所示:

性能得分計算如式(3)所示:

其中,參數k、b由最大執行時間和最小執行時間決定。

4 教學效果

經過計算機組成原理實驗課程的訓練后,絕大多數學生能夠針對給定的RISC-V指令系統,在FPGA開發板上設計出一個最小計算機硬件系統;通過對編譯工具的使用及匯編程序設計,學生能夠全面理解計算機系統硬件與軟件之間的銜接關系。目前匯編程序設計實驗在2021年和2022年春季學期得到實施,學生接受程度較高,增加該部分實驗內容的意義是為了幫助學生初步建立計算機系統概念。在2022年春季學期,編譯工具使用、單步調試思想結合ILA工具使用和量化實驗檢查方案的相關實驗僅在分級教學中面向CPU設計競賽選拔的提高班得到初步實施,讓提高班的學生提前了解CPU設計大賽的技術方案,提高學生參與學科競賽的積極性。中國科學技術大學在2020、2021年度參加提高班的學生人數分別是9人和14人,2022年度增加至18人,說明學生參賽的積極性得到提高。

5 結語

課題組經過不斷探索挖掘,從計算機組成原理實驗課程部分設計內容和考核評價體系方面引入了競賽元素,將競賽與教學有機結合,彌補了課程在難度和新穎性方面的不足,引導更多學生積極參與學科競賽,從而達到了以賽促學、賽教融合的目標。該教學改革方案計劃在2023學年同時應用于計算機組成原理實驗分級教學中的普通班和提高班。

猜你喜歡
調試計算機實驗
記一次有趣的實驗
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
做個怪怪長實驗
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機床調試中的開發與應用
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 美女无遮挡免费网站| 国产免费福利网站| 91精品视频网站| 国产激情在线视频| 亚洲天堂啪啪| 成人一级免费视频| 亚洲人成影院午夜网站| 夜夜操国产| 伊人久久大香线蕉aⅴ色| 国产喷水视频| 国产福利免费观看| 亚洲国产一成久久精品国产成人综合| 国产特一级毛片| 91免费观看视频| 亚洲欧美综合另类图片小说区| 色综合天天操| 日韩中文字幕免费在线观看 | 成年网址网站在线观看| 亚洲人成网站在线播放2019| 91视频青青草| 99久久精品无码专区免费| 亚洲免费黄色网| 精品午夜国产福利观看| 在线观看免费黄色网址| 国产亚洲高清视频| 国产精品永久久久久| 精品超清无码视频在线观看| 国产无码在线调教| 亚洲黄色激情网站| 亚洲日韩国产精品无码专区| 色妞www精品视频一级下载| 91在线一9|永久视频在线| 亚洲大尺码专区影院| 亚洲女同一区二区| 欧美成人一区午夜福利在线| 噜噜噜久久| 最新国语自产精品视频在| 成年人国产网站| 亚洲成a人片| 国产99免费视频| a毛片免费观看| 国产一级片网址| 国产一级二级在线观看| 91成人试看福利体验区| 一级爱做片免费观看久久| 免费精品一区二区h| 在线免费亚洲无码视频| 亚洲日韩精品无码专区97| 国产日本一线在线观看免费| 日韩天堂视频| 久久精品视频一| 精品99在线观看| 亚洲欧美日韩中文字幕在线| 免费播放毛片| 亚洲国产无码有码| 国产精品青青| 亚洲AV无码精品无码久久蜜桃| 久久免费观看视频| 欧美天堂久久| 亚洲免费人成影院| 国产亚洲视频中文字幕视频| 免费一级无码在线网站| 亚洲福利网址| 欧美性久久久久| 97视频在线精品国自产拍| 久久亚洲日本不卡一区二区| 欧美午夜在线观看| 亚洲精品天堂自在久久77| 永久免费无码日韩视频| 亚洲国产成熟视频在线多多| 国产一区二区三区视频| 老司机久久精品视频| 一级在线毛片| 夜夜爽免费视频| 亚洲一区第一页| 伦精品一区二区三区视频| 亚州AV秘 一区二区三区| 国产对白刺激真实精品91| 亚洲AV成人一区二区三区AV| 永久免费无码成人网站| 国产91九色在线播放| 亚洲成人精品在线|