国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ARMv7架構(gòu)的中斷控制結(jié)構(gòu)及實(shí)驗(yàn)設(shè)計(jì)

2022-04-06 10:09章復(fù)嘉
實(shí)驗(yàn)室研究與探索 2022年2期
關(guān)鍵詞:觸發(fā)器中斷指令

章復(fù)嘉, 林 菲

(杭州電子科技大學(xué)國(guó)家級(jí)計(jì)算機(jī)實(shí)驗(yàn)教學(xué)示范中心,杭州 310018)

0 引 言

“卡脖子”事件不僅反應(yīng)出我國(guó)基礎(chǔ)研究薄弱,特別是底層硬件知識(shí)產(chǎn)權(quán)的匱乏和自主研發(fā)實(shí)力的薄弱,更深層次反映出了幾十年來國(guó)內(nèi)高校計(jì)算機(jī)專業(yè)人才培養(yǎng)方向上的偏差[1-3]。

國(guó)家教指委專家在分析計(jì)算技術(shù)發(fā)展特點(diǎn)的基礎(chǔ)上,介紹了系統(tǒng)能力培養(yǎng)的內(nèi)涵和需求,針對(duì)我國(guó)高等教育現(xiàn)狀和系統(tǒng)能力培養(yǎng)中存在的問題,闡述國(guó)家教指委關(guān)于系統(tǒng)能力培養(yǎng)和課程體系設(shè)置的思路[4]。

針對(duì)計(jì)算機(jī)組成原理課程的系統(tǒng)化教學(xué)研究中,國(guó)內(nèi)雙一流高?;?85高校起到了領(lǐng)軍作用。文獻(xiàn)[5-6]中提出了面向系統(tǒng)能力培養(yǎng)的計(jì)算機(jī)專業(yè)課程體系,開發(fā)了支持MIPS32指令集的硬件計(jì)算機(jī)系統(tǒng)THINPAD和遠(yuǎn)程FPGA實(shí)驗(yàn)系統(tǒng)。袁春風(fēng)等[7]深入研究了北美名校相關(guān)課程體系,分析計(jì)算機(jī)組成與其他課程關(guān)聯(lián)關(guān)系[8]和研究生入學(xué)統(tǒng)考所反應(yīng)出的計(jì)算機(jī)專業(yè)高等教育存在的問題[9-10],構(gòu)建面向系統(tǒng)能力培養(yǎng)的計(jì)算機(jī)組成課程實(shí)驗(yàn)體系[11-12],從“計(jì)算機(jī)組成與設(shè)計(jì)”課程改革出發(fā),重新梳理系統(tǒng)核心課程,新建計(jì)算機(jī)系統(tǒng)設(shè)計(jì)綜合實(shí)驗(yàn)課程。文獻(xiàn)[13-15]中以數(shù)字邏輯設(shè)計(jì)、計(jì)算機(jī)組成、操作系統(tǒng)、編譯技術(shù)等課程為主線建立系統(tǒng)化的課程體系,使用EDA技術(shù)設(shè)計(jì)了兩個(gè)級(jí)別分別包含低、中、高3個(gè)階段的實(shí)踐教學(xué)方案。文獻(xiàn)[16-17]中對(duì)軟、硬件實(shí)踐類課程進(jìn)行研究和整合,開發(fā)了Minisys系統(tǒng)并開設(shè)以大型工程項(xiàng)目為背景的“計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)”實(shí)踐課程。

每年我國(guó)地方高校培養(yǎng)的本科生人數(shù)遠(yuǎn)多于雙一流高校和985高校,地方高校因師資、資金、生源等原因,完全照搬上述雙一流和985高校的方案來實(shí)施教學(xué)難度較大。地方高校自行開發(fā)適合于自身人才培養(yǎng)定位的系統(tǒng)能力培養(yǎng)方案具有重大、深遠(yuǎn)意義。

大眾化教育背景下的地方院校定位是培養(yǎng)應(yīng)用型人才,教學(xué)要求體現(xiàn)在:①以簡(jiǎn)單的方式講清楚“最基本”的原理;②注重實(shí)踐環(huán)節(jié)的實(shí)施,以實(shí)踐教學(xué)促進(jìn)理論學(xué)習(xí)。

本文提出的基于32 bit的ARMv7CPU結(jié)構(gòu)的中斷優(yōu)先級(jí)控制實(shí)驗(yàn)方案,是“計(jì)算機(jī)組成原理”課程進(jìn)行系統(tǒng)化教學(xué)改革后新開設(shè)的實(shí)驗(yàn),以EDA技術(shù)結(jié)合遠(yuǎn)程FPGA實(shí)驗(yàn)的方式,彌補(bǔ)原先課程中缺少的中斷內(nèi)容,同時(shí)銜接了先修課“數(shù)字電路設(shè)計(jì)”、后繼課“操作系統(tǒng)”和“嵌入式系統(tǒng)原理”。

1 ARMv7模型機(jī)中斷優(yōu)先級(jí)控制實(shí)驗(yàn)電路設(shè)計(jì)

預(yù)設(shè)ARMv7模型機(jī)支持1個(gè)irq中斷源和1個(gè)fiq中斷源。如圖1所示,圖中紅色部分是fiq中斷源和CPSR[6]控制信號(hào);綠色部分是irq中斷源和CPSR[7]控制信號(hào);紫色部分是中斷優(yōu)先級(jí)判斷部件,其余部分有CPU控制單元和模擬中斷向量表功能的緩沖器和開關(guān)以及程序計(jì)數(shù)器PC。

圖1 fiq和irq中斷控制電路及地址轉(zhuǎn)移電路

1.1 中斷請(qǐng)求電路

(1)INT_fiq和INT_irq。INT_irq和INT_fiq是irq和fiq中斷請(qǐng)求的引腳信號(hào)線,高電平有效。注意:實(shí)際上ARMCPU芯片引腳是可重定義的,而且對(duì)定義的fiq和irq引腳,都是低電平有效。實(shí)驗(yàn)中把INT_irq和INT_fiq引腳設(shè)計(jì)為高電平有效。

當(dāng)fiq和irq中斷都是開中斷狀態(tài),即CPSR[7:6]=2’b00時(shí),irq的外設(shè)中斷源和fiq的外設(shè)中斷源,同時(shí)申請(qǐng)了中斷,則圖1中②和④D觸發(fā)器的Q端同時(shí)輸出1。此時(shí),非門輸出0,導(dǎo)致INT_irq=0,而INT_fiq仍然是1,體現(xiàn)出fiq的優(yōu)先級(jí)別比irq高。

(2)EX_fiq和EX_irq。fiq和irq各有對(duì)應(yīng)的外部硬件設(shè)備,分別發(fā)起irq中斷請(qǐng)求EX_irq,和fiq中斷請(qǐng)求EX_fiq。在D觸發(fā)器③輸出Q=1時(shí),當(dāng)EX_irq從0變1時(shí),D觸發(fā)器④的Q端將輸出1,也就是通知CPU,外設(shè)發(fā)起了一次irq中斷請(qǐng)求。同樣,在D觸發(fā)器①輸出Q=1時(shí),當(dāng)EX_fiq從0變1時(shí),D觸發(fā)器②的Q端將輸出1,也就是通知CPU,外設(shè)發(fā)起了一次fiq中斷請(qǐng)求。

(3)CPSR[7:6]。D觸發(fā)器①在時(shí)鐘端下跳沿置數(shù),當(dāng)CPSR[6]從1變0時(shí),D端高電平傳送到Q端,Q端為1。此時(shí)D觸發(fā)器②的Q端是否輸出1,從而傳送給CPU一個(gè)irq中斷請(qǐng)求信號(hào),這完全取決于D觸發(fā)器②的時(shí)鐘端信號(hào)EX_fiq。所以,CPSR[6]從1變0就達(dá)到了fiq開中斷的目的。

1.2 中斷響應(yīng)電路

(1)INTA_fiq和INTA_irq。INTA_irq是irq中斷的響應(yīng)信號(hào),同時(shí)也是2個(gè)D觸發(fā)器③④的清零信號(hào)。同樣,INTA_fiq是fiq中斷的響應(yīng)信號(hào),同時(shí)也是2個(gè)D觸發(fā)器①②的清零信號(hào)。當(dāng)CPU響應(yīng)fiq中斷時(shí),CPU發(fā)出中斷響應(yīng)信號(hào),即INTA_fiq=1。此時(shí),兩個(gè)D觸發(fā)器①②的Q端都被清零,但是D觸發(fā)器③④不清零。同時(shí),INTA_fiq信號(hào)經(jīng)過或門,打開中斷向量緩沖器的三態(tài)門,使中斷向量緩沖器輸出中斷向量開關(guān)的值。

(2)中斷向量開關(guān)。中斷向量開關(guān)并非ARM所有,而是為fiq和irq中斷控制實(shí)驗(yàn)專門設(shè)計(jì)的,為實(shí)驗(yàn)中手動(dòng)設(shè)置中斷服務(wù)程序入口地址提供途徑。

(3)中斷向量緩沖器。中斷向量開關(guān)和中斷向量緩沖器的設(shè)計(jì),代替了中斷向量表的功能。本實(shí)驗(yàn)的2個(gè)硬件中斷源對(duì)應(yīng)的中斷向量都由此而來。注意,在fiq搶占irq中斷實(shí)驗(yàn)過程中,不要把fiq的中斷向量和irq的中斷向量設(shè)成同一地址。應(yīng)分辨CPU對(duì)fiq和irq的中斷響應(yīng)時(shí)間,為兩者分別設(shè)置不同的中斷向量。

2 中斷隱指令設(shè)計(jì)

當(dāng)CPU響應(yīng)中斷時(shí),執(zhí)行ARMv7模型機(jī)的隱指令如下。

第1個(gè)clk周期。判斷fiq或irq的中斷引腳有否中斷申請(qǐng)?是否開中斷?即(Int_irq==1)&&(CPSR[7]==0))||((Int_fiq==1)&&(CPSR[6]==0),若表達(dá)式等于1表示應(yīng)該響應(yīng)該fiq/irq中斷,則應(yīng)保存斷點(diǎn)PC值,因此PC→F;

第2個(gè)clk周期。應(yīng)將F中的PC值保存到LR_fiq/LR_irq中,但目前CPSR中的工作模式還不是fiq/irq模式,需要通過控制信號(hào)Change_M,強(qiáng)制將工作模式轉(zhuǎn)換成fiq/irq模式,才能完成本clk周期的操作。即,if(Int_fiq==1)&&(CPSR[6]==0)then{F→LR_fiq,CPSR→SPSR_fiq}else{F→LR_irq,CPSR→SPSR_irq}。

第3個(gè)clk周期。將保存原工作模式下的SP值到主堆棧指針MSP或進(jìn)程堆棧指針PSP中,將中斷服務(wù)程序入口地址置入PC,通過CPSR轉(zhuǎn)換工作模式,如果響應(yīng)fiq中斷,那么關(guān)fiq和irq中斷;如果響應(yīng)irq中斷,那么關(guān)irq中斷。發(fā)出中斷響應(yīng)信號(hào)INTA_fiq/INTA_irq,打開中斷緩沖器,將中斷向量送往PC_s數(shù)據(jù)選擇器。本clk周期的操作可描述為:

中斷向量→PC,SP→MSP/PSP

第4個(gè)clk周期。執(zhí)行MSP→SP_irq/SP_fiq。上一個(gè)clk周期下跳沿的時(shí)候,CPSR被寫入新值,系統(tǒng)切換到irq/fiq工作模式,本clk周期,不需要強(qiáng)制模式,就可以把MSP的值寫入SP_irq/SP_fiq。

在ARMv7模型機(jī)fiq和irq共存的中斷系統(tǒng)里,中斷隱指令需要4個(gè)clk周期。在每一條機(jī)器指令結(jié)束,準(zhǔn)備轉(zhuǎn)去取下一條指令之前,判斷是否響應(yīng)fiq/irq中斷請(qǐng)求。只有當(dāng)響應(yīng)fiq/irq請(qǐng)求時(shí),才執(zhí)行以上的中斷隱指令,否則轉(zhuǎn)去取下一條指令。中斷服務(wù)程序使用的也是指令系統(tǒng)中的指令,當(dāng)中斷隱指令執(zhí)行完畢,取下一條指令的時(shí)候,取出來的就是中斷服務(wù)程序里的第1條指令。

3 測(cè)試程序設(shè)計(jì)

基于fiq和irq中斷控制系統(tǒng),設(shè)計(jì)一個(gè)主程序,運(yùn)行在用戶模式下,設(shè)計(jì)2個(gè)中斷服務(wù)程序,功能是輸出循環(huán)次數(shù)。2個(gè)中斷服務(wù)程序分別是fiq和irq中斷服務(wù)程序,它們?cè)趦?nèi)存中所處的地址段不同。中斷服務(wù)程序中第1條指令的地址便是中斷向量,用開關(guān)輸入中斷向量的時(shí)候,請(qǐng)注意時(shí)機(jī)。

系統(tǒng)復(fù)位Rst以后,寄存器清零、所有分模式程序狀態(tài)寄存器SPSR清零,中斷請(qǐng)求信號(hào)INT_irq和INT_fiq清零,中斷響應(yīng)信號(hào)INTA_irq和INTA_fiq清零,外設(shè)中斷請(qǐng)求信號(hào)EX_irq和EX_fiq清零,CPSR初始值為0x0000_0010,MSP初始值為0x0000_0040,PSP初始值為0,數(shù)據(jù)選擇器選擇信號(hào)初始值為0x0000_00C0,所有控制信號(hào)處于無效狀態(tài)。系統(tǒng)總是從地址0開始執(zhí)行。主程序和中斷服務(wù)程序見表1~3。

表2 irq中斷服務(wù)程序

表3 fiq中斷服務(wù)程序

用ARMv7匯編器模擬器CPULator ARMv7 System Simulator對(duì)本實(shí)驗(yàn)測(cè)試程序進(jìn)行匯編。BCC L2和BL1這兩條指令的二進(jìn)制碼的立即數(shù)字段imm24,需要分別手動(dòng)計(jì)算。其他指令采用CPULator ARMv7 System Simulator生成的二進(jìn)制碼。得到主程序和兩個(gè)中斷服務(wù)程序?qū)?yīng)的指令機(jī)器碼如下:

將以上指令碼填入到和指令存儲(chǔ)器模塊ROM_B相關(guān)聯(lián)的*.coe文件中,也可以調(diào)用*.coe的生成軟件來完成。

在和數(shù)據(jù)存儲(chǔ)器模塊RAM_B相關(guān)聯(lián)的*.coe文件中,可以不賦初值,也可以填入一些數(shù)據(jù)當(dāng)作初值。本實(shí)驗(yàn)中,數(shù)據(jù)存儲(chǔ)器的作用是實(shí)現(xiàn)堆棧。

執(zhí)行指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的Regenerate Core操作,更新指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的初始化操作。

4 教學(xué)實(shí)施

4.1 教學(xué)方案改革

原有教學(xué)方案中,僅在理論課上安排2學(xué)時(shí)講解中斷知識(shí)點(diǎn),沒有配套的實(shí)驗(yàn),教學(xué)效果欠佳。

教改的方案是:設(shè)計(jì)一個(gè)中斷移植虛擬仿真實(shí)驗(yàn)項(xiàng)目,通過課后作業(yè)的形式,讓學(xué)生在線自學(xué)、在線考試,完成中斷基本知識(shí)的學(xué)習(xí)。以線上線下混合式SPOC的方式完成本文設(shè)計(jì)的中斷優(yōu)先級(jí)控制實(shí)驗(yàn),課內(nèi)實(shí)驗(yàn)改為3學(xué)時(shí)。

4.2 教學(xué)實(shí)施方式

近年來高校采用翻轉(zhuǎn)教學(xué)法實(shí)施教學(xué)的課程越來越多,計(jì)算機(jī)硬件類實(shí)驗(yàn)課也在積極探索采用先進(jìn)的教學(xué)方法提升教學(xué)效果。使用FPGA實(shí)驗(yàn)平臺(tái)完成硬件實(shí)驗(yàn)教學(xué)成為計(jì)算機(jī)硬件課程實(shí)踐教學(xué)的主流趨勢(shì)。

教學(xué)實(shí)施中采用自研制的RSIE-SPOC硬件實(shí)驗(yàn)課翻轉(zhuǎn)教學(xué)方法[18],借助自制可交互式FPGA實(shí)驗(yàn)板卡和7×24 h開放的遠(yuǎn)程實(shí)驗(yàn)云平臺(tái),實(shí)施中斷實(shí)驗(yàn)教學(xué)。課前學(xué)生在網(wǎng)絡(luò)教學(xué)平臺(tái)上觀看實(shí)驗(yàn)講解短視頻,按要求自行設(shè)計(jì)和編程,在遠(yuǎn)程FPGA平臺(tái)上調(diào)試程序。課上老師驗(yàn)收實(shí)驗(yàn)并解答問題,課后學(xué)生修正實(shí)驗(yàn)方案、改進(jìn)程序,撰寫實(shí)驗(yàn)報(bào)告。

網(wǎng)絡(luò)教學(xué)平臺(tái)提供的學(xué)習(xí)資料主要有ARMv7虛擬仿真軟件、Verilog HDL自動(dòng)判題系統(tǒng)、實(shí)驗(yàn)表格和實(shí)驗(yàn)講解短視頻等。遠(yuǎn)程FPGA實(shí)驗(yàn)板卡布局、遠(yuǎn)程實(shí)驗(yàn)云平臺(tái)網(wǎng)頁和實(shí)驗(yàn)教學(xué)流程如圖2~4所示。

圖2 100片遠(yuǎn)程FPGA實(shí)驗(yàn)板卡布局

4.3 實(shí)施效果

自2019年上線試用以來,ARMv7中斷優(yōu)先級(jí)控制實(shí)驗(yàn)已完成2輪教學(xué)試用。學(xué)生滿意度分別為82.3%和95.2%,后繼操作系統(tǒng)課程老師評(píng)價(jià)學(xué)生對(duì)中斷的掌握程度大幅度提高,課程銜接順利。

從2021年開始,依托虛擬仿真實(shí)驗(yàn)項(xiàng)目網(wǎng)頁,ARMv7中斷優(yōu)先級(jí)控制實(shí)驗(yàn)正式投入教學(xué)使用。

圖3 遠(yuǎn)程實(shí)驗(yàn)云平臺(tái)界面

圖4 基于RSIE-SPOC方法的中斷實(shí)驗(yàn)教學(xué)方案

5 結(jié) 語

基于ARMv7CPU結(jié)構(gòu)的中斷優(yōu)先級(jí)控制實(shí)驗(yàn)設(shè)計(jì),是地方高校探索系統(tǒng)化教學(xué)的一個(gè)實(shí)例。實(shí)踐證明,該實(shí)驗(yàn)教學(xué)促進(jìn)了學(xué)生對(duì)中斷理論知識(shí)的理解,特別在課程銜接上獲得了較好的教學(xué)效果。為更好地促進(jìn)課程銜接,本文的后續(xù)工作需要設(shè)計(jì)異常處理機(jī)制和實(shí)驗(yàn)教學(xué)方案。

猜你喜歡
觸發(fā)器中斷指令
淺談時(shí)序邏輯電路的成長(zhǎng)記憶
《單一形狀固定循環(huán)指令G90車外圓仿真》教案設(shè)計(jì)
“單片機(jī)中斷概述”微課教學(xué)設(shè)計(jì)
觸發(fā)器在酒店管理系統(tǒng)中的應(yīng)用
Linux中斷線程化分析及中斷延時(shí)測(cè)試
跟蹤導(dǎo)練(二)(5)
中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
一種基于滑窗的余度指令判別算法
MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
幾種常見觸發(fā)器工作方式的討論
资源县| 曲周县| 防城港市| 房产| 宜君县| 榆中县| 山东省| 长春市| 永修县| 米易县| 乾安县| 恩施市| 南华县| 新河县| 大安市| 桐庐县| 建始县| 宜昌市| 丰都县| 民权县| 武城县| 沂南县| 石台县| 营口市| 靖边县| 达州市| 浮梁县| 丰宁| 中牟县| 池州市| 阿拉善左旗| 诸暨市| 大英县| 海安县| 麻城市| 临城县| 莆田市| 怀柔区| 丹阳市| 德清县| 宣城市|