• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    案例教學(xué)法在計算機(jī)系統(tǒng)結(jié)構(gòu)課程中的應(yīng)用

    2018-09-17 07:49:36丁賢慶李建華
    計算機(jī)教育 2018年9期
    關(guān)鍵詞:流水線指令案例

    陳 田,丁賢慶,路 強(qiáng),安 鑫,李建華

    (合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,安徽 合肥 230009)

    0 前言

    計算機(jī)系統(tǒng)結(jié)構(gòu)課程是計算機(jī)專業(yè)的一門核心專業(yè)課程,知識點(diǎn)較多——有指令集結(jié)構(gòu)、流水線結(jié)構(gòu)、指令靜態(tài)調(diào)度、指令動態(tài)調(diào)度、cache存儲、多核并行編程等主要知識點(diǎn)。在參考文獻(xiàn)[1-2]中,強(qiáng)調(diào)了動畫教學(xué)和模擬器教學(xué);動畫教學(xué)需要教師課前制作好相關(guān)的動畫,課程講解中教師將PPT和演示動畫相結(jié)合教學(xué);模擬器教學(xué)需要教師編寫對應(yīng)的模擬器軟件,利用該軟件,動態(tài)模擬和顯示指令的執(zhí)行過程。比較有名的模擬器軟件有winDLX和DLXView。在參考文獻(xiàn)[3]中,強(qiáng)調(diào)了并行算法編程的重要性,要求在學(xué)習(xí)計算機(jī)結(jié)構(gòu)概念的同時,增強(qiáng)MPI并行編程能力的訓(xùn)練。

    通過近幾年計算機(jī)系統(tǒng)結(jié)構(gòu)課程的教學(xué),筆者發(fā)現(xiàn)該課程存在以下問題:①課程概念較多,學(xué)生覺得內(nèi)容抽象、枯燥難學(xué);②課程學(xué)時少、教學(xué)知識點(diǎn)多,特別是與計算機(jī)系統(tǒng)結(jié)構(gòu)有關(guān)的新技術(shù)和新結(jié)構(gòu)更新很快,這些新知識也要添加到課程中;③綜合性實(shí)驗(yàn)難度較大,難以在短時間內(nèi)實(shí)現(xiàn);④verilog硬件描述語言沒有前序課程涉及,學(xué)生完全自學(xué)感覺費(fèi)力,課設(shè)中要用到該部分知識。針對問題,吸收國內(nèi)外計算機(jī)系統(tǒng)結(jié)構(gòu)方面的先進(jìn)教學(xué)理念,可以將先進(jìn)教學(xué)方法和創(chuàng)新思想引入課堂。改變以往的灌輸式、照本宣科式的教學(xué)模式,采用案例式教學(xué)為主,并和啟發(fā)式教學(xué)、引導(dǎo)式教學(xué)和討論式教學(xué)相結(jié)合,通過促進(jìn)學(xué)生自主學(xué)習(xí),提高教學(xué)效果。此外,緊跟國際計算機(jī)技術(shù)發(fā)展潮流,不斷更新計算機(jī)系統(tǒng)結(jié)構(gòu)課程內(nèi)容,在有限的教學(xué)學(xué)時內(nèi)協(xié)調(diào)好經(jīng)典知識和先進(jìn)技術(shù)的講授關(guān)系,通過引入科技發(fā)展的新成果和前言知識,拓寬學(xué)生的視野。

    1 案例教學(xué)法的具體實(shí)現(xiàn)

    為了更好地調(diào)動學(xué)生學(xué)習(xí)的積極性,為了將抽象的理論和實(shí)踐結(jié)合,可以在課程教學(xué)中,結(jié)合CPU設(shè)計這個具體案例來講解重要知識點(diǎn)。CPU設(shè)計案例教學(xué)法分為3步:第1步,圍繞著CPU設(shè)計這個案例,通過提出問題來激發(fā)學(xué)生主動思考、自主學(xué)習(xí);第2步,通過理論知識點(diǎn)的引導(dǎo)式學(xué)習(xí),給后續(xù)的CPU具體設(shè)計打好鋪墊;第3步,課堂上給出CPU設(shè)計的框架結(jié)構(gòu),通過設(shè)計作業(yè)讓學(xué)生課后完成具體設(shè)計,以此來鍛煉學(xué)生的動手能力、創(chuàng)新能力。

    1.1 CPU設(shè)計問題的提出

    在課程教學(xué)中可以先用2個學(xué)時補(bǔ)充verilog相關(guān)知識,然后給出任務(wù):設(shè)計一個具有6條指令的CPU。這6條指令分別是Load指令、Store指令、Mov指令、Add指令、Xor指令和Bnz指令,這6條指令涵蓋了訪存指令、傳送指令、算術(shù)與邏輯指令和分支指令,具有一定的代表性。假設(shè)這6條指令的機(jī)器碼已經(jīng)給出(如圖1所示)。

    圖1 6條指令的機(jī)器碼

    1.2 結(jié)合案例設(shè)計過程學(xué)習(xí)主要知識點(diǎn)

    課程案例設(shè)計教學(xué)中將該任務(wù)分解成多個子任務(wù)。實(shí)現(xiàn)每個子任務(wù)前,先講解理論知識點(diǎn),然后用verilog實(shí)現(xiàn)框架結(jié)構(gòu)。圍繞著每個子過程的設(shè)計,學(xué)生可以先提出問題,進(jìn)行知識點(diǎn)學(xué)習(xí)。理論講解以引導(dǎo)為主、自學(xué)為輔。教學(xué)中強(qiáng)調(diào)夯實(shí)基礎(chǔ),注重綜合應(yīng)用,減少重復(fù)。將學(xué)生由“被動實(shí)踐”變?yōu)椤爸鲃訉?shí)踐”,學(xué)生的質(zhì)疑力、觀察力和協(xié)同力得到了培養(yǎng)和提高。

    1.2.1 結(jié)合機(jī)器碼的分段,學(xué)習(xí)I、R、J類型指令格式

    在講解指令系統(tǒng)之前,首先拋出3個問題讓同學(xué)們思考。問題1:圖1中的指令怎樣分段。從而看出操作碼和地址碼部分?問題2:怎樣看出圖1地址碼部分對應(yīng)的操作數(shù)代表的是整數(shù)還是浮點(diǎn)數(shù)?問題3:怎樣知道地址碼中對應(yīng)的是內(nèi)存地址還是寄存器編號?然后帶著這3個問題開始指令系統(tǒng)部分理論學(xué)習(xí)[4-5]。最后給出上述3個問題的答案。問題1:在MIPS指令集中,將機(jī)器碼分為I、R、J三種類型,在I類型指令中將機(jī)器碼分為4段。在R類型指令中將機(jī)器碼分為6段。在J類型指令中將機(jī)器碼分為2段。問題2:數(shù)據(jù)表示常見的有兩種。其一是帶標(biāo)志符的數(shù)據(jù)表示,通過操作數(shù)的前幾位指明數(shù)據(jù)是整數(shù)還是浮點(diǎn)數(shù)。另一種是通過不同的操作碼來指明后面的操作數(shù)是整數(shù)還是浮點(diǎn)數(shù)。問題3:通過操作碼來指明地址碼中對應(yīng)的是內(nèi)存地址還是寄存器編號。回答完問題后,再結(jié)合圖1中的機(jī)器碼來介紹MIPS、arm和X86不同指令集的優(yōu)缺點(diǎn)。

    1.2.2 結(jié)合操作碼的設(shè)計,學(xué)習(xí)流水線和流水線中狀態(tài)機(jī)的設(shè)計(譯碼)

    講解指令流水線之前,首先提出2個問題。問題1:圖1中6條指令怎樣實(shí)現(xiàn)能使總執(zhí)行時間最短?問題2:如果這些指令的操作碼已經(jīng)知道,怎樣設(shè)計指令譯碼器部分?帶著這兩個問題,開始流水線章節(jié)的理論學(xué)習(xí),最后給出上述2個問題的答案。問題1:采用流水線技術(shù)能夠加快多條指令的執(zhí)行速度[6]。問題2:由于不同操作碼對應(yīng)的控制信號不同,可以用時序電路設(shè)計中常用到的狀態(tài)機(jī)設(shè)計技術(shù)來實(shí)現(xiàn)。

    1.2.3 結(jié)合操作碼的設(shè)計,學(xué)習(xí)相關(guān)的檢測機(jī)理

    在介紹流水線中“相關(guān)”理論知識點(diǎn)之前,首先提出一個問題,圖1中6條指令中,如果出現(xiàn)后面指令需要用到前面指令的結(jié)果,怎樣檢測和處理?帶著該問題學(xué)習(xí)指令相關(guān)的理論知識點(diǎn),然后給出問題答案:在流水線的譯碼階段,檢測前后兩條指令的地址碼是否相同,如果相同就認(rèn)為出現(xiàn)了數(shù)據(jù)相關(guān)。處理數(shù)據(jù)相關(guān)的辦法很多,其中常用解決方法是:由“相關(guān)”檢測電路發(fā)控制信號給多路開關(guān)從而使數(shù)據(jù)定向通路打開,或者使后一條指令暫停,或者通過編譯器進(jìn)行指令靜態(tài)調(diào)度來消除數(shù)據(jù)相關(guān)。

    1.2.4 結(jié)合地址碼的設(shè)計,講述訪存階段

    講述流水線中訪存階段時,首先提出2個問題。問題1:如何在指令中指明尋址方式?問題2:由于存儲器地址的特殊性,如何在間接尋址中,計算出正確的絕對地址?介紹完寄存器尋址、立即數(shù)尋址、間接尋址等10種尋址方式后,給出答案。問題1:在指令系統(tǒng)中尋址方式可以通過操作碼來指明,一般系統(tǒng)中只保留常用的幾種尋址方式,從而使譯碼系統(tǒng)簡化,提高性價比。問題2:可以在流水線的執(zhí)行階段來實(shí)現(xiàn)絕對地址的計算,這樣就可以不必額外添加進(jìn)行絕對地址計算的運(yùn)算器,但是需要增加多路開關(guān)來實(shí)現(xiàn)地址和數(shù)據(jù)的分時選擇和計算。

    1.2.5 結(jié)合運(yùn)算器設(shè)計,講述定向通路,并行操作(多操作部件的設(shè)計),超長指令字技術(shù)

    在講述運(yùn)算器的設(shè)計時,首先提出3個問題。問題1:圖1中6條指令對應(yīng)的運(yùn)算器怎樣實(shí)現(xiàn)性價比高?問題2:如果有減法指令,怎樣在加法器上設(shè)計?問題3:如果要實(shí)現(xiàn)多條指令完全并行執(zhí)行,運(yùn)算器怎樣設(shè)計?講述完運(yùn)算器的主要功能和結(jié)構(gòu)特點(diǎn)等主要知識點(diǎn)后,給出上述問題的答案。問題1:圖1中6條指令對應(yīng)的運(yùn)算器應(yīng)該采用復(fù)用技術(shù),共用同一個運(yùn)算器,通過多路開關(guān)控制運(yùn)算器的輸入,并且構(gòu)成指令流水線,性價比更好。問題2:對于減法指令,可以通過補(bǔ)碼結(jié)構(gòu)轉(zhuǎn)換為加法,從而減少硬件成本。問題3:如果要實(shí)現(xiàn)多條指令完全并行執(zhí)行,運(yùn)算器就需要設(shè)置多個,例如設(shè)置整數(shù)運(yùn)算器、浮點(diǎn)運(yùn)算器、地址運(yùn)算器等,利用硬件成本代價的增加來提高并行速度。

    1.2.6 結(jié)合流水線指令階段和寫回階段,講述Tomasulo算法和指令動態(tài)執(zhí)行技術(shù)

    在講述指令動態(tài)執(zhí)行技術(shù)時,首先提出2個問題。問題1:圖1中6條指令能否順序流出,亂序執(zhí)行?怎樣實(shí)現(xiàn)?問題2:能否設(shè)計一個能實(shí)現(xiàn)100條指令亂序的執(zhí)行系統(tǒng)?如果能需要考慮哪些問題?講述完Tomasulo算法和指令保留站知識點(diǎn)后,給出問題的答案。問題1:圖1中6條指令能順序流出,亂序執(zhí)行,關(guān)鍵是要有多個保留站和多個執(zhí)行部件,通過保留站消除指令之間的相關(guān),通過多個執(zhí)行部件的并行工作,實(shí)現(xiàn)了亂序執(zhí)行。問題2:要實(shí)現(xiàn)100條指令的亂序執(zhí)行,系統(tǒng)設(shè)計中就要求至少有100個保留站,執(zhí)行部件數(shù)量如果比較少,很難有好的并行性,并且100條指令之間相關(guān)檢測硬件結(jié)構(gòu)非常復(fù)雜,總之,100條指令的亂序執(zhí)行理論上能實(shí)現(xiàn),但是硬件成本高,系統(tǒng)性價比低。

    圍繞著CPU設(shè)計提出對應(yīng)的問題,只是為了激發(fā)學(xué)生們主動學(xué)習(xí)積極性,通過verilog硬件描述語言來動手設(shè)計CPU,就可以將理論知識和實(shí)踐結(jié)合,加深對相關(guān)知識點(diǎn)的理解和掌握,同時通過設(shè)計的完成,鍛煉了學(xué)生們的動手能力和創(chuàng)新能力。設(shè)計過程以課堂引導(dǎo)為主,學(xué)生自主設(shè)計為輔。這樣就與課內(nèi)學(xué)時比較少的實(shí)際情況相吻合,同時給學(xué)生們課后作業(yè)留下了任務(wù),達(dá)到了課內(nèi)教學(xué)和課外訓(xùn)練的齊頭并進(jìn)。

    1.3 案例教學(xué)中采用的軟硬件環(huán)境和系統(tǒng)框架圖

    案例教學(xué)中采用的硬件是Xilinx virtex5開發(fā)板,軟件環(huán)境是ISE10.4。課程教學(xué)時將該設(shè)計任務(wù)分解成多個子任務(wù),包括取指令部件的設(shè)計、譯碼部件的設(shè)計、運(yùn)算器部件的設(shè)計、存儲器部件的設(shè)計、寫回部件的設(shè)計等,實(shí)現(xiàn)每個子任務(wù)前,先講解理論知識點(diǎn),然后用verilog實(shí)現(xiàn)框架結(jié)構(gòu)。這樣就將理論知識點(diǎn)和動手設(shè)計結(jié)合起來,一邊講,一邊練,一邊討論,激發(fā)了學(xué)生學(xué)習(xí)的興趣。在設(shè)計環(huán)節(jié)主要是通過verilog硬件描述語言設(shè)計出對應(yīng)的硬件結(jié)構(gòu)[7,2]。對于五段指令流水線,可以先畫出系統(tǒng)框圖(如圖2所示),根據(jù)系統(tǒng)框圖給出每個verilog代碼模塊的輸入與輸出引腳。

    圖2 流水線系統(tǒng)框圖

    案例設(shè)計中,需要設(shè)計時鐘模塊。時鐘模塊可以提供對主時鐘信號的分頻、倍頻、移相等功能,給流水線電路提供對應(yīng)的時鐘信號(如圖3所示)。在時鐘模塊中,輸入信號有CLKIN_IN和復(fù)位信號RST_IN,輸出信號為CLK0_OUT、CLK180_OUT和鎖頻信號LOCKED_OUT。只有在輸出時鐘信號穩(wěn)定的情況下,鎖頻信號LOCKED_OUT才變?yōu)橛行У母唠娖?,否則為低電平。圖4是時鐘波形圖。從圖4中可以看出,在鎖頻信號LOCKED_OUT上升沿來臨前,時鐘信號CLK0_OUT、CLK180_OUT的信號是不穩(wěn)定的。在時鐘信號穩(wěn)定后, CLK0_OUT信號的相位與CLKIN_IN相位相同,CLK180_OUT信號的相位與CLKIN_IN相位相差180度。

    圖3 時鐘模塊圖

    圖4 時鐘波形圖

    案例教學(xué)中,針對每個流水段先確定輸入和輸出引腳數(shù)目,然后設(shè)計輸出和輸入之間的邏輯結(jié)構(gòu)。為了激發(fā)學(xué)生學(xué)習(xí)的積極性,上課時只給出系統(tǒng)框圖和關(guān)鍵模塊的設(shè)計,其它次要部分就作為設(shè)計作業(yè),讓學(xué)生課后完成,完成的作業(yè)要提交給老師評分。通過這種動手設(shè)計,學(xué)生能主動思考問題,積極給出設(shè)計結(jié)果,同時還會為下次課的學(xué)習(xí)積極準(zhǔn)備,激發(fā)了學(xué)生求解未知知識的興趣。教師也能通過學(xué)生的設(shè)計,收獲頗多。

    2 案例法教學(xué)效果

    理論結(jié)合實(shí)踐,采用案例教學(xué)法具有理解快、記憶效果好的特點(diǎn)。從實(shí)施的效果來看,學(xué)生上課積極性得到提高,實(shí)驗(yàn)完成質(zhì)量穩(wěn)步上升,學(xué)生自主學(xué)習(xí)和研究的熱情高漲,培養(yǎng)了學(xué)生的設(shè)計能力和創(chuàng)新能力,達(dá)到了本課程要求的培養(yǎng)研究和應(yīng)用兼重的復(fù)合型人才的目標(biāo)。在學(xué)生教學(xué)評價中,學(xué)生反饋是“通過設(shè)計,全面認(rèn)識了計算機(jī)系統(tǒng)”“設(shè)計過程就是一個非常好的理解和掌握過程”“看著我的設(shè)計作品,我有種成就感”等。 通過統(tǒng)計發(fā)現(xiàn),采用案例教學(xué)法后,期末考試平均成績得到了提升,成績?yōu)椤皟?yōu)秀”的人數(shù)也在上升。同樣,采用案例教學(xué)法后,課程設(shè)計完成難度和優(yōu)秀比例也得到了提升。

    3 結(jié)語

    計算機(jī)技術(shù)的不斷發(fā)展,推動著課程建設(shè)的不斷改革和創(chuàng)新[8]。筆者下一步的改革思路是:以自主設(shè)計的CPU為核心,完善外設(shè)和操作系統(tǒng)、編譯系統(tǒng),從而形成一個完整的系統(tǒng)。方法是:采用FPGA設(shè)計基于arm指令集的CPU,在非易失性存儲器flash中裝載linux嵌入式操作系統(tǒng)。通過配置引導(dǎo)程序參數(shù),使系統(tǒng)啟動時能直接運(yùn)行flash存儲器中存放的虛擬機(jī)和嵌入式應(yīng)用程序。通過開發(fā)嵌入式驅(qū)動程序,讓CPU可以接收輸入外設(shè)傳送過來的信號,也可以控制輸出外設(shè)進(jìn)行正確的工作。這種案例教學(xué)法對于學(xué)生全面理解課程知識點(diǎn),加強(qiáng)動手能力和創(chuàng)新設(shè)計能力的培養(yǎng)有著積極的意義[9]。

    猜你喜歡
    流水線指令案例
    Gen Z Migrant Workers Are Leaving the Assembly Line
    聽我指令:大催眠術(shù)
    案例4 奔跑吧,少年!
    流水線
    隨機(jī)變量分布及統(tǒng)計案例拔高卷
    ARINC661顯控指令快速驗(yàn)證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    電子測試(2018年18期)2018-11-14 02:30:34
    發(fā)生在你我身邊的那些治超案例
    中國公路(2017年7期)2017-07-24 13:56:38
    報廢汽車拆解半自動流水線研究
    一個模擬案例引發(fā)的多重思考
    通渭县| 七台河市| 建昌县| 革吉县| 通化市| 甘孜| 白银市| 拉萨市| 宣武区| 仁布县| 靖宇县| 台山市| 广灵县| 石棉县| 郎溪县| 原平市| 封开县| 民权县| 凉山| 南漳县| 南和县| 五常市| 杭锦后旗| 城固县| 黑河市| 承德县| 二手房| 沛县| 吉林市| 安多县| 博兴县| 罗江县| 泽库县| 朝阳市| 普宁市| 会宁县| 无棣县| 邳州市| 阳原县| 柳州市| 金坛市|