唐彩燕
摘 ? 要:在信息化時(shí)代,計(jì)算機(jī)已經(jīng)被廣泛應(yīng)用于各個(gè)領(lǐng)域,促進(jìn)了社會(huì)經(jīng)濟(jì)的發(fā)展。目前,我國高校紛紛開設(shè)了計(jì)算機(jī)硬件類實(shí)踐課程,效果卻不容樂觀。以某高?!坝?jì)算機(jī)組成原理”實(shí)驗(yàn)課程為例,對(duì)“計(jì)算機(jī)組成原理”實(shí)驗(yàn)進(jìn)行微探,重點(diǎn)闡述單周期和多周期CPU的構(gòu)成和設(shè)計(jì),希望對(duì)促進(jìn)我國計(jì)算機(jī)行業(yè)的發(fā)展有所幫助。
關(guān)鍵詞:計(jì)算機(jī);組成原理實(shí)驗(yàn);實(shí)驗(yàn)課程
在計(jì)算機(jī)網(wǎng)絡(luò)高速發(fā)展的趨勢(shì)下,國內(nèi)外高校十分重視計(jì)算機(jī)課程的開設(shè),希望通過開設(shè)相關(guān)的課程,培養(yǎng)出優(yōu)秀的計(jì)算機(jī)專業(yè)人才,以滿足當(dāng)前社會(huì)的需要。為此,某高校計(jì)算機(jī)系以“計(jì)算機(jī)組成原理”實(shí)驗(yàn)作為著手點(diǎn),對(duì)課程進(jìn)行了設(shè)計(jì)和安排,本研究對(duì)“計(jì)算機(jī)組成原理”實(shí)驗(yàn)進(jìn)行了詳細(xì)的分析。
1 ? ?“計(jì)算機(jī)組成原理”實(shí)驗(yàn)課程設(shè)計(jì)的初衷
“計(jì)算機(jī)組成原理”在計(jì)算機(jī)專業(yè)中具有舉足輕重的地位,是該專業(yè)的核心課程之一,學(xué)生對(duì)其掌握程度關(guān)系到后續(xù)學(xué)習(xí)的效果,不僅會(huì)影響硬件學(xué)習(xí)的質(zhì)量,對(duì)軟件工作者也有較大的優(yōu)勢(shì)。
近些年,國內(nèi)某著名高校積極響應(yīng)國家號(hào)召,以培養(yǎng)優(yōu)秀計(jì)算機(jī)人才為己任,通過出國考察的方式,對(duì)國際知名高校的計(jì)算機(jī)專業(yè)課程內(nèi)容和設(shè)置進(jìn)行了學(xué)習(xí),“計(jì)算機(jī)組成原理”實(shí)驗(yàn)是重點(diǎn)借鑒內(nèi)容。學(xué)習(xí)者通過學(xué)習(xí)之后,其程序編寫和調(diào)試能力大大提升。與硬件設(shè)計(jì)人員角度相符的硬件實(shí)驗(yàn)課程,要求學(xué)習(xí)者能夠使用硬件對(duì)語言進(jìn)行描述,并以現(xiàn)場(chǎng)可編程邏輯門陣列(Field Programmable Gate Array,F(xiàn)PGA)為基礎(chǔ),完成一個(gè)處理器系統(tǒng)的設(shè)計(jì)。
目前,國內(nèi)“計(jì)算機(jī)組成原理”實(shí)驗(yàn)的主要教學(xué)方式為教師帶領(lǐng)學(xué)生進(jìn)行設(shè)計(jì)實(shí)驗(yàn),主要表現(xiàn)為基于固定實(shí)驗(yàn)箱,在其中進(jìn)行連線拔插和開關(guān)啟動(dòng)等操作,以實(shí)現(xiàn)固定軟件系統(tǒng)之間的聯(lián)系,從而提升學(xué)習(xí)者對(duì)“計(jì)算機(jī)組成原理”的理解和掌握[1]。這種較為簡(jiǎn)單的“計(jì)算機(jī)組成原理”實(shí)驗(yàn)形式起到的效果較為有限,學(xué)習(xí)者在實(shí)驗(yàn)過后,對(duì)于“計(jì)算機(jī)組成原理”的理解較為淺薄,無法確定計(jì)算機(jī)組成結(jié)構(gòu)與系統(tǒng)軟件間的關(guān)系,更不用說利用現(xiàn)代化工具設(shè)計(jì)計(jì)算機(jī)硬件了。鑒于此,國內(nèi)某著名高校以培養(yǎng)優(yōu)秀計(jì)算機(jī)人才為己任,通過出國考察的方式,對(duì)國際知名高校的計(jì)算機(jī)專業(yè)課程內(nèi)容和設(shè)置進(jìn)行了借鑒,并在此基礎(chǔ)上對(duì)教學(xué)方法和實(shí)驗(yàn)內(nèi)容進(jìn)行了調(diào)整,截止到目前,已經(jīng)取得了良好的教學(xué)效果。學(xué)習(xí)者在學(xué)習(xí)之后,其程序編寫和調(diào)試能力顯著提高,還有一部分學(xué)習(xí)者已經(jīng)能夠自主設(shè)計(jì)計(jì)算機(jī)硬件,且運(yùn)行效果較為顯著。
2 ? ?“計(jì)算機(jī)組成原理”實(shí)驗(yàn)課程的知識(shí)準(zhǔn)備
利用電子設(shè)計(jì)自動(dòng)化(Electronics Design Automation,EDA)技術(shù)在可編程門列陣上設(shè)計(jì)處理器,對(duì)于學(xué)生的計(jì)算機(jī)知識(shí)能力提出了十分嚴(yán)格的要求,具體表現(xiàn)在以下幾個(gè)方面:(1)學(xué)習(xí)者應(yīng)該熟練掌握在可編程門列陣上應(yīng)用EDA技術(shù)的能力,能夠利用所學(xué)知識(shí)進(jìn)行邏輯單元電路和數(shù)字系統(tǒng)的設(shè)計(jì)。(2)學(xué)習(xí)者還要加強(qiáng)對(duì)“計(jì)算機(jī)組成原理”實(shí)驗(yàn)的了解,CPU通路、指令系統(tǒng)等內(nèi)容都是“計(jì)算機(jī)組成原理”實(shí)驗(yàn)的基礎(chǔ)知識(shí),學(xué)習(xí)者應(yīng)該將其作為基礎(chǔ),以CPU內(nèi)部單元電路設(shè)計(jì)為開端,在單字長(zhǎng)定點(diǎn)指令平均執(zhí)行速度 (Million Instructions Per Second,MIPS)體系結(jié)構(gòu)的基礎(chǔ)上,完成多通道CPU的設(shè)計(jì)。
3 ? ?“計(jì)算機(jī)組成原理”實(shí)驗(yàn)內(nèi)容
“計(jì)算機(jī)組成原理”實(shí)驗(yàn)內(nèi)容主要由3個(gè)部分構(gòu)成,分別為部件實(shí)驗(yàn)、簡(jiǎn)單CPU實(shí)驗(yàn)和大型作業(yè)。
3.1 ?部件實(shí)驗(yàn)
在設(shè)計(jì)CPU硬件電路時(shí),包含大量單元電路,如觸發(fā)器、選擇器和譯碼器等,都是計(jì)算機(jī)專業(yè)的基礎(chǔ)知識(shí),在本次“計(jì)算機(jī)組成原理”實(shí)驗(yàn)中,主要設(shè)計(jì)內(nèi)容為設(shè)計(jì)CPU內(nèi)部的其他重要部件,如寄存器、算術(shù)邏輯單元(Arithmetic and Logic Unit,ALU)和存儲(chǔ)器等。
3.1.1 ?設(shè)計(jì)寄存器組
在CPU內(nèi)部,寄存器是非常重要的部分,作用為暫時(shí)性的數(shù)據(jù)存儲(chǔ),具有速度快和使用頻繁的特點(diǎn)?;贛IPS體系結(jié)構(gòu)的寄存器組,其組成部分包括32個(gè)32位的寄存器,簡(jiǎn)言之,就是32個(gè)寄存器構(gòu)成了一個(gè)寄存器組。僅將其外觀作為觀察依據(jù)可以看出,組成寄存器組的32個(gè)寄存器,其外觀并未有差異,在對(duì)其進(jìn)行訪問時(shí),無需關(guān)注外部條件。為了對(duì)CPU的結(jié)構(gòu)進(jìn)行簡(jiǎn)化,一般情況下,只會(huì)將編號(hào)為0的寄存器的值設(shè)為0,故寄存器只能被讀出,而不能寫入。
一條指令同時(shí)操作的寄存器不超過3個(gè),且所操作的寄存器分別為目的寄存器和源寄存器,這里所說的指令主要是指MIPS指令集合中的指令。在執(zhí)行指令時(shí),讀出源寄存器中的內(nèi)容,計(jì)算后在源寄存器中寫入目的地址,方可完成指令。可以看出,基于MIPS體系結(jié)構(gòu)的CPU寄存器組應(yīng)該具備一個(gè)輸入端口和2個(gè)輸出端口。一般情況下,4個(gè)組件即可組成一個(gè)32位的寄存器,而寄存器組能夠只對(duì)32個(gè)寄存器中某一個(gè)寄存器的某一字節(jié)進(jìn)行寫入,故寄存器除了要滿足端口需求,還要具備寫入控制端的功能,其目的在于對(duì)4個(gè)字節(jié)的吸入操作進(jìn)行控制[2]。
3.1.2 ?存儲(chǔ)器設(shè)計(jì)及測(cè)試
在計(jì)算機(jī)系統(tǒng)之中,存儲(chǔ)器的作用十分重要,對(duì)指令和數(shù)據(jù)進(jìn)行存儲(chǔ)是其主要功能。在設(shè)計(jì)存儲(chǔ)器時(shí),可以針對(duì)存儲(chǔ)器類型的不同,采取分開設(shè)計(jì)的方法,同時(shí),也可以設(shè)計(jì)一個(gè)兼具指令存儲(chǔ)和數(shù)據(jù)存儲(chǔ)功能于一體的存儲(chǔ)器。存儲(chǔ)器應(yīng)該具備兩個(gè)端口,分別為讀端口和寫端口,亦可不用時(shí)鐘觸發(fā)。在進(jìn)行儲(chǔ)存器寫入時(shí),時(shí)鐘觸發(fā)是將數(shù)據(jù)寫入存儲(chǔ)器的前提條件,時(shí)鐘的任何動(dòng)作皆可對(duì)存儲(chǔ)器的寫操作進(jìn)行觸發(fā)。
存儲(chǔ)器設(shè)計(jì)實(shí)驗(yàn)有助于讓學(xué)習(xí)者了解和掌握存儲(chǔ)器接口和信號(hào)控制功能,并具備運(yùn)用存儲(chǔ)器功能的技能。此外,還要獨(dú)立進(jìn)行存儲(chǔ)器的設(shè)計(jì),這是存儲(chǔ)器設(shè)計(jì)實(shí)驗(yàn)的根本性目的,對(duì)于完整的CPU設(shè)計(jì)來說至關(guān)重要,尤其是單周期CPU。所謂的單周期CPU是指執(zhí)行一個(gè)完整指令周期不超過一個(gè)時(shí)鐘,如果超過一個(gè)時(shí)鐘,則被稱為多周期CPU。在執(zhí)行指令的過程中,CPU對(duì)存儲(chǔ)器訪問的,次數(shù)通常會(huì)多于兩次,這兩次的作用分別為讀取指令和存儲(chǔ)數(shù)據(jù)。在設(shè)計(jì)存儲(chǔ)器時(shí),如果出現(xiàn)錯(cuò)誤,那么CPU在實(shí)際運(yùn)行過程中,指令執(zhí)行效果會(huì)大打折扣。通過查閱資料得知,多周期CPU在執(zhí)行指令時(shí)所花費(fèi)的時(shí)鐘周期較多,此時(shí),應(yīng)用讀寫方便的存儲(chǔ)器結(jié)構(gòu)即可。
3.1.3 ?桶形位移器
在MIPS指令集合中,存在一些位移的指令,對(duì)寄存器數(shù)據(jù)提出了移動(dòng)性的要求,只有寄存器中的數(shù)據(jù)能夠一次移動(dòng)數(shù)位方能滿足要求。故應(yīng)用寄存器執(zhí)行移動(dòng)指令需要花費(fèi)大量的時(shí)間,工作效率也會(huì)隨之受到影響,與當(dāng)前CPU工作要求嚴(yán)重不符。為此,技術(shù)人員設(shè)計(jì)了一種桶形位移器,其位數(shù)可以自由設(shè)置,其設(shè)置范圍是0~31,移動(dòng)方式包括多種,分別為算數(shù)右移、循環(huán)右移、邏輯左移和邏輯右移,故桶形位移器的輸入端也相對(duì)較多,主要包括5位移位輸入端和2位移位方式控制端。
3.1.4 ?ALU設(shè)計(jì)
ALU是CPU的重要組成部分,屬于一種運(yùn)算電路,是邏輯運(yùn)算和算數(shù)運(yùn)算實(shí)現(xiàn)的重要條件,但是MIPS對(duì)ALU提出了更高的要求,ALU需要完成一些特殊的質(zhì)量,如SEB、LUI、SEH、CLO和CLZ等,在詳細(xì)分析MIPS指令系統(tǒng)后得知,ALU需要執(zhí)行的運(yùn)算多達(dá)15種。此外,為了對(duì)編碼功能進(jìn)行簡(jiǎn)化,在設(shè)計(jì)ALU電路時(shí),輸出端會(huì)對(duì)ALU電路沒有保留的信號(hào)進(jìn)行保留,如進(jìn)位信號(hào)、溢出信號(hào)之和與信號(hào)相比是否較小等[3]。
3.2 ?設(shè)計(jì)簡(jiǎn)單CPU的實(shí)驗(yàn)
3.2.1 ?單周期CPU設(shè)計(jì)
單周期CPU指的是在一個(gè)時(shí)鐘周期內(nèi)完成所有指令的CPU結(jié)構(gòu),單周期CPU具有簡(jiǎn)單的硬件結(jié)構(gòu)和指令執(zhí)行過程。學(xué)習(xí)者應(yīng)該在學(xué)習(xí)過程中對(duì)這些內(nèi)容加以了解,對(duì)于多周期CPU的理解具有十分重要的意義,故初學(xué)者應(yīng)該將單周期CPU作為入手點(diǎn)。
實(shí)驗(yàn)要求學(xué)習(xí)者設(shè)計(jì)一個(gè)單周期的CPU,并確保其所設(shè)計(jì)的CPU能夠執(zhí)行相應(yīng)的指令,指令較為簡(jiǎn)單,主要為I型指令、R型指令和J型指令。為了進(jìn)一步降低CPU設(shè)計(jì)的難度,本次實(shí)驗(yàn)不要求CPU執(zhí)行移動(dòng)質(zhì)量和存儲(chǔ)的指令。CPU的設(shè)計(jì)內(nèi)容由兩部分組成,分別為控制邏輯和數(shù)據(jù)通路設(shè)計(jì)。
3.2.2 ?多周期CPU設(shè)計(jì)
多周期CPU與單周期CPU設(shè)計(jì)相比,難度相對(duì)偏高,具體表現(xiàn)在以下兩方面:(1)需要滿足執(zhí)行時(shí)間最長(zhǎng)的指令周期長(zhǎng)度。就事實(shí)情況而言,單周期CPU所執(zhí)行的指令,其周期都相對(duì)較短,運(yùn)行效率偏低。(2)多周期CPU可以將一個(gè)指令分為多個(gè)時(shí)間相同的執(zhí)行階段,不同的階段執(zhí)行的操作也較為特殊,如果指令執(zhí)行時(shí)間較長(zhǎng),那么執(zhí)行周期也隨之增加,如果執(zhí)行時(shí)間較短,使用少量的執(zhí)行周期即可,使得指令執(zhí)行效率大大提升。
多周期CPU需要在具備單周期CPU能力的同時(shí),還要具備邏輯位移和存儲(chǔ)器訪問指令的執(zhí)行能力。正因如此,多周期CPU與單周期CPU相比,多了兩個(gè)裝置,分別為數(shù)據(jù)存儲(chǔ)器和桶形移位器。與此同時(shí),多周期CPU執(zhí)行一個(gè)指令所需要的周期為多個(gè)時(shí)鐘,而ALU只有在指令運(yùn)算期間才會(huì)被使用。在其余時(shí)間,ALU都會(huì)處于閑置狀態(tài)。為了實(shí)現(xiàn)對(duì)硬件結(jié)構(gòu)的進(jìn)一步簡(jiǎn)化,在ALU處于閑置狀態(tài)時(shí),將其用于下一條指令地址的計(jì)算十分重要,減少了對(duì)加法器的使用。
3.3 ?大型作業(yè)
在講述“計(jì)算機(jī)組成原理”實(shí)驗(yàn)課程內(nèi)容后,學(xué)習(xí)者具備了一定的CPU設(shè)計(jì)能力。在學(xué)習(xí)后期,教師可以讓學(xué)生以團(tuán)隊(duì)合作的方式,完成單周期CPU和多周期CPU的設(shè)計(jì),同時(shí)也可以鼓勵(lì)學(xué)習(xí)者設(shè)計(jì)自己的指令系統(tǒng),并設(shè)計(jì)出執(zhí)行這些指令的CPU。
4 ? ?教學(xué)效果
該學(xué)校在借鑒國際知名高校的“計(jì)算機(jī)組成原理”實(shí)驗(yàn)教學(xué)后,學(xué)習(xí)者對(duì)于計(jì)算機(jī)硬件結(jié)構(gòu)的了解已經(jīng)趨于完善,其硬件設(shè)計(jì)能力和水平也大大提升,甚至部分設(shè)計(jì)已經(jīng)突破了教學(xué)內(nèi)容,學(xué)習(xí)者通過查閱資料和自主學(xué)習(xí)等方式,使自身的計(jì)算機(jī)基礎(chǔ)更加扎實(shí)。甚至部分學(xué)生設(shè)計(jì)了ARM11結(jié)構(gòu)的處理器,并在其中增加了各類接口,連接顯示器和鍵盤后,就構(gòu)成了一個(gè)完整的計(jì)算機(jī),然后利用所學(xué)知識(shí)編寫游戲軟件,完成了自己的夢(mèng)想[4]。
5 ? ?結(jié)語
以某高?!坝?jì)算機(jī)組成原理”實(shí)驗(yàn)課程教學(xué)為例,詳細(xì)闡述了“計(jì)算機(jī)組成原理”的實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)結(jié)果,重點(diǎn)分析了CPU的各個(gè)組成部分及其所具備的功能,以加深學(xué)習(xí)者對(duì)CPU的了解,從而使“計(jì)算機(jī)組成原理”實(shí)驗(yàn)效果更好。
[參考文獻(xiàn)]
[1]宋會(huì)英,祁 ?鑫,崔 ?浩.計(jì)算機(jī)組成原理混合式金課的探索與實(shí)踐[J].中國石油大學(xué)勝利學(xué)院學(xué)報(bào),2019,33(2):61-64.
[2]許海杰,劉 ?升.計(jì)算機(jī)組成原理實(shí)驗(yàn)平臺(tái)改進(jìn)研究[J].通化師范學(xué)院學(xué)報(bào),2019,40(4):82-86.
[3]張銘泉,程曉榮.以能力培養(yǎng)為目標(biāo)的計(jì)算機(jī)組成原理教學(xué)研究[J].教育教學(xué)論壇,2019(11):221-222.
[4]吳繼明,鐘群鋒,曾碧卿.虛擬仿真技術(shù)在計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2019(3):34-38.