?

面向系統能力培養的計算機硬件實驗教學設計

2024-04-16 10:10余良俊
湖北第二師范學院學報 2024年2期
關鍵詞:指令控制器實驗

尚 俊,余良俊

(湖北第二師范學院 計算機學院,武漢 430205)

計算機組成原理是計算機科學與技術專業的硬件核心課程,在整個培養體系中起著承上啟下的作用。傳統的實驗教學采用實驗箱的方式,需要完成復雜的導線連接,效率低下,而且實驗調試困難,實驗箱維護成本較高,大多數是驗證性實驗,無法解決復雜工程問題。如何根據新工科建設的要求對計算機專業教學進行改革,提高計算機組成原理課程硬件實驗教學的效率,是一個值得關注的問題。

1 硬件實驗教學現狀

計算機組成原理主要講授單處理機系統的組成與結構,課程知識點眾多且比較復雜抽象,其重難點是讓學生建立起清晰的整機概念,并分析不同的結構和設計方法對運算速度、效率和成本的影響。從多年的教學實踐來看,學生對硬件理論知識難以理解。為了加強學生對硬件結構和原理的理解,目前國內高校采用了以下幾種方式開展硬件實驗:

1.1 傳統的實驗箱

傳統的實驗箱采用了固定的計算機部件單元電路,完成實驗需要大量的導線連接和開關的操作,學生無法直觀看到各部件的內部電路結構,很難真正理解各部件的工作原理,而且實驗的調試比較困難,受場地和時間的影響,多數是驗證性實驗,實驗效果較差。在硬布線控制器設計實驗中,學生更是難以理解各控制信號的產生和流向,對他們的自信心有較大的打擊,以至于有些學生對后續課程的學習產生了畏難情緒。由于無法建立整機的概念,系統分析和設計能力也難以得到提高。

1.2 采用EDA技術和VHDL語言

采用EDA技術和VHDL語言描述硬件的方式提供了硬件描述語言的編寫、仿真和綜合功能,雖然能方便完成仿真結果分析,但是電路的修改和調試都比較繁瑣,難以完成預定的目標,VHDL工具的性能和穩定性也可能受到影響。[1]丁男等利用proteus軟件及平臺搭建面向計算機組成原理的混合式教學平臺,并對大連理工大學計算機組成原理的建設經驗和實施過程進行了闡述。[2]也有高校采用FPGA的方式來完成硬件的實驗,但是FPGA更強調工業化的設計,需要的知識體系較多,對老師和學生的要求更高,而且過于抽象,學習周期較長。[3]-[5]

1.3 采用高級語言或匯編語言

采用高級語言或匯編語言工具如MRAS 可以模擬內存或寄存器讀寫以及CPU 指令執行過程、幫助學生理解計算機硬件的基本原理,但是無法模擬真實的硬件環境,并可能存在一些差異和限制,要求學生具備一定的編程基礎,否則會存在一定的困難和挑戰。此外,匯編語言編程工具和仿真軟件的性能和穩定性也可能受到影響。[6]

面對新工科教育和工程認證的要求,以往的實驗教學模式無法解決復雜工程問題,難以提升計算機專業學生的系統能力,而新工科的計算機類專業教育中,系統能力培養是重要內容。隨著云計算和大數據技術的飛速發展,應用程序也變得越來越復雜,應用開發人員必須了解不同系統平臺的底層架構,并熟練掌握相應的技術和工具的運用,系統能力中的軟硬件協同設計的貫通能力是關鍵因素。但當前培養的學生還不能滿足社會和用人單位的要求,主要體現在缺乏系統觀,只注重軟件運行結果的正確性,而忽視了硬件的結構和工作方式對軟件的效率和穩定性的影響。由于對計算機硬件系統的核心原理掌握不夠充分,難以勝任復雜的軟硬協同設計的任務,再加上計算機科學與技術專業課程之間缺乏良好的關聯性,缺乏系統性和綜合性的實踐環節,使得學生綜合分析、設計和應用能力也較差。

2 硬件實驗教學設計整體思路

實驗課程以培養學生現代計算機硬件系統設計能力為目標,強調軟硬件關聯與協同、以CPU 設計為核心的層次化系統設計的組織思路,使學生能從門電路開始逐步設計組合邏輯、時序邏輯、運算器、存儲系統、數據通路和控制器直至完整的CPU,能讓學生深入理解計算機主要功能部件的構成和工作原理。Logisim是一種用于設計和模擬數字邏輯電路的仿真軟件,它無實體器件,仿真直觀,調試方便,并通過封裝子電路的方式組建復雜的數字電路,可有效突破傳統硬件實驗對時間、空間的限制,改變實驗模式,極大地拓展延長課外實驗時間,大大提升實驗效率,特別適合線上線下開展。圖1給出了硬件實驗設計的框架圖。在掌握數字邏輯和計算機組成的基本原理基礎上,設計了運算器、存儲器和CPU三大實驗模塊,每個模塊由多個層次化子模塊組成。流水CPU是對系統能力要求較高的硬件綜合設計,需要掌握不同CPU設計和流水線的原理才能完成。

圖1 硬件實驗設計框架圖

3 基于Logisim的硬件實驗設計

3.1 運算器設計

運算器部分講解數據的機器表示、運算方法及運算部件組成等問題,使學生掌握計算機的算術運算和邏輯運算的原理,主要包括補碼加減法器、32位快速加法器、陣列乘法器、陣列除法器、多功能運算器實驗。講授算術運算目的是讓學生理解計算機通過補碼表示將減法運算轉換成加法運算。

全加器是運算器的最基本的部件,利用數字邏輯課程中真值表、邏輯函數表達式設計全加器電路,能夠將先修課程中講授過的知識點延續。理論課上講授的“求[-X]補由[X]補連同符號位在內每位取反,末位加1”的規則,對于學生來說是一個抽象難懂的過程。如何通過補碼實現減法運算,需要設計專門的電路實現通過[X]補得到[-X]補的功能。在加法器電路上增加控制端M的方式實現并利用Logisim仿真驗證,若M=0,做加法運算,M=1,做減法運算,讓學生完整地看到了將一個抽象的計算法則通過一個具體的邏輯電路實現其功能的過程,對培養學生的設計能力起到了一定作用。對于陣列乘法器先用手工計算的方式分析每個部分積可以通過與門陣列得到,然后利用全加器進行累加的方式實現乘法運算。如圖2所示通過分析進位信號的傳遞,讓學生更直觀理解乘法的運算過程。圖3所示為加減交替法的陣列除法器,使用可控加減法單元CAS作為基本組件。以定點正小數相除為例,假設X<Y,第一行CAS做減法,每一行最左側CAS的進位輸出決定商的數值,并且控制下一行做加法還是減法。

圖2 5位無符號陣列乘法器

圖3 加減交替法的陣列除法器

3.2 存儲器設計

存儲器中地址線、數據線等比較抽象,學生難以真正理解存儲器的讀寫過程。在給學生建立主存儲器地址空間和存儲空間等基本概念的基礎上,應突出存儲器芯片地址概念的物理內涵、按地址訪問等基本特征,為此設計了漢字字庫擴展實驗。涉及到的知識點包括地址空間的分配、片選信號的產生以及與CPU的連接等。如圖4所示為漢字字庫擴展實驗,要求用4個小容量芯片(地址線12位,數據線32位)通過字擴展的方式組成一個較大容量芯片(地址線14位,數據線32位)。理論課的難點在于片選信號的作用,很多學生不能理解芯片的工作方式。通過實驗電路的設計和地址的分配可以讓學生深刻理解字擴展的原理,即這4個小芯片不是同時讀寫,而是由高位地址控制讀寫哪個芯片,低位地址讀對應存儲單元的內容,讓學生在數字邏輯中學到的組合電路知識得到了應用。

圖4 漢字字庫擴展實驗

同時設計了MIPS寄存器實驗,要求學生構建一個MIPS寄存器組,內部包含32個32位寄存器,具有一個寫入端口和兩個讀出端口。通過數據選擇器的地址端選擇對應的寄存器編號來訪問寄存器的內容,類似于一個具有多個地址端口和多個數據端口的高速存儲器。

3.3 CPU設計

在完成運算器、存儲器的基礎上進行封裝,添加控制器、暫存器、符號擴展器、指令寄存器、狀態字寄存器等部件組成一個完整的計算機系統,這對學生的綜合設計能力提出了較高的要求??刂破魇怯嬎銠C的核心部件,指令周期、指令譯碼、操作控制、時序控制的原理更加抽象復雜,學生理解起來有較大的難度。實驗要求學生以單總線硬布線控制器為例設計5條MIPS核心指令(LW、SW、BEQ、ADDI、SLT)的三級時序控制器,實現內存地址從0x80開始的8個字單元的有符號數的降序排序。分析控制信號的產生要考慮在不同指令操作碼譯碼輸出信號、狀態周期電位、節拍電位下的有效情況,其本質是一個組合邏輯。指令譯碼信號的輸出是通過分線器分出操作碼對應的字段再通過比較器判斷得到。表1給出了典型控制信號的產生條件。這些控制信號可以分成四類:輸出信號out是互斥的,控制向總線輸出數據;輸入信號in控制總線的數據送入到功能部件,需要時鐘配合;運算器控制信號控制運算器的加減法運算;內存讀寫控制信號Read、Write。

表1 控制信號產生條件

時序發生器的作用是產生狀態周期電位、節拍電位信號,主要包括狀態寄存器,狀態機組合邏輯,輸出函數組合邏輯三部分。其中狀態機負責現態與次態的轉換,輸出函數根據當前狀態生成狀態周期電位和節拍電位。利用組合邏輯的方法分析得到輸出函數的邏輯表達式,從而讓學生有效應用在數字邏輯課程學到的方法。

在設計好多功能運算器、硬布線控制器電路的基礎上添加RAM、Register 兩個組件并通過三態門控制輸出就組成了單總線結構CPU。指令寄存器通過分線器分出rs、rt、rd字段。其中0-15位連接符號擴展器分離出立即數或分支地址字段。寄存器的讀端口通過多路選擇器的控制端RegDst、RegTgt 選擇rs、rt、rd。圖5給出了單總線結構的定長指令周期MIPS CPU完整電路圖。在RAM中加載指令鏡像,啟動時鐘運行冒泡排序程序,在最上面的隧道標簽處用發光二極管顯示當前處于addi指令的取指周期和T3節拍,總線上用探針組件也可以實時顯示傳輸的數據。

圖5 單總線定長指令周期CPU設計實驗

微程序控制器由指令譯碼器、微程序入口查找邏輯和條件判別測試邏輯三個子電路組成。微程序入口地址是指令譯碼信號的組合邏輯,可以直接利用數字邏輯的方法得到。一旦微程序設計完畢,微程序的入口地址就是固定的。條件判別測試邏輯是根據微指令中的條件判別測試字段的和狀態條件的值生成多路選擇器的控制端,從而控制微指令的地址。根據微操作控制信號生成的微指令保存到控制存儲器中,從而完成微程序控制器的設計。微地址與現代二級時序硬布線控制器的狀態機編碼等價,因此也很方便實現現代時序硬布線控制器的電路圖。通過CPU設計實驗,學生能很好地理解控制器的原理和指令的執行過程,對于提高學生的硬件分析設計能力起到了較好的效果。

單周期和多周期硬布線控制器的設計實驗是為了比較不同CPU設計方案對成本、效率、價格的影響。為了進一步提高程序執行效率,引入了指令流水線。流水CPU設計實驗是對學生能力要求較高的實驗,通過該實驗,幫助學生從MIPS單周期CPU開始逐步構建無沖突冒險的理想指令流水線,能處理分支相關的指令流水線,采用氣泡處理數據相關的氣泡式流水線,采用重定向解決數據相關的重定向流水線,并最終在MIPS五段流水線上實現動態分支預測技術。

4 頭歌實踐教學平臺應用

頭歌EduCoder是信息技術類實踐教學平臺,涵蓋了計算機、軟件工程、大數據、人工智能、物聯網等專業課程的超60000個實訓案例,建立了學、練、評、測一體化實驗教學體系??梢酝ㄟ^如下幾步創建專屬的計算機組成原理在線實驗課堂。

4.1 登錄賬號

登錄www.educoder.net注冊賬號后,主頁面點擊教學課堂,填寫課堂名稱、學時、學分、結束時間等信息創建在線課堂。課堂模塊包括通知公告、課堂實驗、圖文作業、分組作業、在線考試、教學資料、問卷調查、互動討論、數據統計、視頻直播等,可以根據實際教學需要進行選擇。

4.2 創建在線實驗

(如圖6)根據教學的進度選擇實驗項目將其發送到新建的課堂。將課堂邀請碼發送給學生后,學生加入課堂。教師可以將視頻、課件、資料等上傳并發布到課堂,并可對課堂實驗的發布方式、評分規則、實驗項目等進行設置。

4.3 綜合評估

學生進入課堂后可以看到已發布的實驗項目,即可開展在線實驗。實驗電路完成后,利用記事本打開電路文件,將文件內容復制粘貼到平臺中,點擊右下角評測即可自動評測。(如圖7)在硬布線控制器的測試頁面依次顯示計數器、當前十六進制指令、equal標志、狀態周期點位、節拍點位、控制總線數據、錯誤位等信息。通過預期輸出與實際輸出的對比,可以查看發生錯誤的時鐘周期,進而對電路進行檢查并改正,方便調試。教師可進入學生工作臺查看電路代碼,實時監控實驗進展。

圖7 實驗項目自動測試

學生提交實驗項目后,平臺可自動對其代碼進行查重,如有重復抄襲情況,可以將其打回并進行點評。所有學生完成后教師可以查看學生成績、評測次數和耗時,并一鍵導出成績(如圖8)。

圖8 學生實驗成績查詢和導出

所有的實驗無需任何硬件實驗平臺,有效突破傳統硬件實驗對時間和場地的限制,極大拓展了課外實驗時間,大大提升了實驗效果。實驗項目跟理論教學同步,枯燥的理論知識得以在實踐中得到驗證,由易到難,可根據學生學習情況設置必做和可選實驗。在實驗中設置自動測評系統,系統可進行故障記錄、自動評分,及時反饋實驗結果,為實驗提供精準指導。學生通過自主學習和主動實踐的遞進式學習不斷提高系統設計能力,真正做到以學生為中心的教學方式的轉變,讓學生主動參與到教學活動中。通過門電路級的仿真實驗并封裝成子模塊組合成完整的CPU,學生由淺入深地學習了各功能部件的設計,并將所學知識靈活地在各功能部件中加以擴展應用,分析不同設計方法對成本、效率、速度的影響,有效地加強了系統觀的培養,也促進了實驗教學模式的改革。

5 結語

通過在計算機組成原理實驗課程中應用Logisim,學生在數字邏輯電路中學到的設計思想能夠得到充分展現與應用,從門電路級的仿真實驗中完成主要功能部件的設計如多功能運算器、存儲器和控制器,并把它們組合成一個完整的計算機系統。在頭歌平臺發布實驗,系統進行自動評測,教師可以在線監測學生的完成情況,實驗結果后臺自動記錄并能一鍵導出實驗成績,對提高學生的硬件系統設計與系統能力的培養起到了較好的效果。在今后的教學中將基于計算機組成實驗取得的成功經驗,實現RISC-V指令集的現代時序硬布線控制器和微程序控制器,并為不同的時序系統增加中斷處理機制。為進一步提高學生的軟硬件協同設計能力,在后續課程中逐步融入操作系統和編譯原理實驗,形成從硬件、系統軟件到應用軟件的計算機系統綜合實驗課程。

猜你喜歡
指令控制器實驗
聽我指令:大催眠術
記一次有趣的實驗
做個怪怪長實驗
ARINC661顯控指令快速驗證方法
LED照明產品歐盟ErP指令要求解讀
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
模糊PID控制器設計及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合