• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析

      2012-06-13 11:32:24李乾坤張恕明尹達(dá)一
      微處理機(jī) 2012年4期
      關(guān)鍵詞:信息結(jié)構(gòu)服務(wù)程序外設(shè)

      李乾坤,張恕明,尹達(dá)一

      (中國科學(xué)院上海技術(shù)物理研究所,上海200083)

      1 引言

      Xilinx公司 Virtex-ii Pro系列的 XC2VP40 FPGA內(nèi)嵌有PowerPC405核。開發(fā)者可以使用開發(fā)工具XPS在芯片內(nèi)部構(gòu)建以PowerPC為核心的片上系統(tǒng)。除內(nèi)核外,時(shí)鐘、JTAG、定時(shí)器等模塊均可由FPGA內(nèi)的邏輯資源定制而成。

      PowerPC內(nèi)核支持外部中斷,并可通過中斷控制器進(jìn)行擴(kuò)展,XPS亦針對(duì)中斷控制部分提供了完整的驅(qū)動(dòng)程序。由于中斷系統(tǒng)可以提高處理器的利用率,增強(qiáng)處理器的實(shí)時(shí)性,是微處理器系統(tǒng)的重要組成部分。因此,深入研究PowerPC的中斷系統(tǒng)對(duì)于更合理高效地使用PowerPC有著十分重要的意義。

      下面就針對(duì)PowerPC中斷系統(tǒng)展開討論。

      2 PowerPC異常處理

      2.1 PowerPC的異常與中斷

      首先對(duì)兩個(gè)名詞進(jìn)行一下說明:

      異常:處理器檢測(cè)到的不可預(yù)測(cè)的錯(cuò)誤事件。

      中斷:處理器檢測(cè)到異常時(shí)自動(dòng)啟動(dòng)的處理過程。

      PowerPC支持16種異常處理,對(duì)應(yīng)16種中斷源。其中Critical Input與External兩種中斷源來自外部輸入,也稱之為外部中斷。

      2.2 外部中斷優(yōu)先級(jí)

      Critical Input中斷優(yōu)先級(jí)要高于External中斷,當(dāng)兩個(gè)中斷同時(shí)發(fā)生時(shí),Critical Input中斷響應(yīng)先于External中斷執(zhí)行。另外,PowerPC支持中斷嵌套,這意味著Critical Input中斷可以終止正在執(zhí)行的External中斷響應(yīng)過程。

      2.3 外部中斷響應(yīng)流程

      以Critical Input為例,PowerPC外部中斷響應(yīng)流程如下:

      1)將中斷返回地址存入寄存器SRR2(External為SRR0)。

      2)將機(jī)器狀態(tài)寄存器MSR中的內(nèi)容存入寄存器 SRR3(External為 SRR1)。

      3)將新的機(jī)器狀態(tài)存入寄存器MSR。

      4)同步處理器上下文。

      5)轉(zhuǎn)入中斷服務(wù)程序。

      6)中斷服務(wù)程序結(jié)束,恢復(fù)寄存器MSR的狀態(tài)。

      7)處理器上下文同步。

      8)跳到SRR2(External為SRR0)中存的返回地址。中斷響應(yīng)完畢。

      那么,處理器是怎樣找到中斷服務(wù)程序的?

      首先解釋一下中斷矢量表這個(gè)概念。為使異常得到相應(yīng)中斷服務(wù)程序的處理,需要首先建立中斷矢量表。中斷矢量表中每隔一段地址會(huì)存放一段代碼,分別對(duì)應(yīng)不同的異常。

      當(dāng)發(fā)生異常時(shí),系統(tǒng)會(huì)通過中斷矢量表的基址以及相應(yīng)的偏移量找到對(duì)應(yīng)的代碼,進(jìn)而找到中斷服務(wù)程序。其中,中斷矢量表的基址存儲(chǔ)在寄存器EVPR中。由于中斷矢量表中各代碼段存儲(chǔ)容量的限制(大部分為256Byte),中斷矢量表往往不直接存儲(chǔ)中斷服務(wù)程序,而是存儲(chǔ)指向中斷服務(wù)程序的指針。PowerPC異常處理詳細(xì)流程如圖1所示。

      圖1 PowerPC異常處理流程圖

      3 PowerPC外設(shè)簡介

      3.1 中斷控制器

      Power PC提供了兩個(gè)外部中斷入口,這在有較多中斷輸入的情況下是不能滿足需求的。為了解決這個(gè)問題,可以使用中斷控制器。

      每個(gè)中斷控制器有32個(gè)中斷源輸入接口,1個(gè)中斷信號(hào)輸出接口。當(dāng)一個(gè)或多個(gè)輸入端有中斷輸入時(shí),輸出端輸出中斷信號(hào)。

      中斷控制器中包含一個(gè)32位寄存器,其每一位對(duì)應(yīng)一個(gè)中斷輸入端。當(dāng)有中斷輸入時(shí),對(duì)應(yīng)的標(biāo)志位便被置1。中斷響應(yīng)過程中,從低位到高位對(duì)寄存器中的標(biāo)志位進(jìn)行查詢,從而判斷中斷來源。因此,對(duì)應(yīng)標(biāo)志位的位置決定了中斷響應(yīng)優(yōu)先級(jí)。

      使用XPS的BSB構(gòu)建系統(tǒng)時(shí),即使只有一個(gè)中斷源,一般也會(huì)包括中斷控制器,用以連接外設(shè)與處理器內(nèi)核。

      3.2 Timer模塊

      一個(gè)Timer模塊包括兩個(gè)Timer,可以實(shí)現(xiàn)三種模式:Capture mode,Generate mode 及 PWM mode。

      其中兩個(gè)Timer可以分別配置成Capture mode與Generate mode同時(shí)工作,對(duì)應(yīng)不同的脈沖輸出。兩個(gè)Timer合作可以實(shí)現(xiàn)PWM mode,對(duì)應(yīng)單一的PWM輸出。

      Timer模塊支持中斷輸出,但兩個(gè)Timer共用一個(gè)中斷輸出端口。

      4 PowerPC中斷響應(yīng)過程分析

      4.1 構(gòu)建中斷系統(tǒng)

      為了對(duì)中斷響應(yīng)過程進(jìn)行分析,構(gòu)建如圖2所示系統(tǒng)。該系統(tǒng)主要由PowerPC內(nèi)核,中斷控制器,Timer,RS232模塊,時(shí)鐘模塊(該模塊未在圖中顯示)等組成。各模塊均連接PLB總線。其中時(shí)鐘模塊提供80MHz時(shí)鐘輸入,Timer與RS232的中斷輸出端接到中斷控制器的不同輸入端,中斷控制器的輸出接到處理器的External Input端。

      圖2 中斷測(cè)試系統(tǒng)框圖(未包含時(shí)鐘模塊)

      4.2 中斷服務(wù)程序詳解

      XPS為中斷系統(tǒng)提供了完整的中斷服務(wù)程序。

      4.2.1 外設(shè)的信息結(jié)構(gòu)體

      在介紹中斷服務(wù)程序之前,先解釋一下外設(shè)的信息結(jié)構(gòu)體。XPS提供的代碼為每個(gè)外設(shè)(包括中斷控制器)都建立了一個(gè)結(jié)構(gòu)體。結(jié)構(gòu)體中包含了該外設(shè)的ID,基址,狀態(tài),中斷服務(wù)程序入口,中斷服務(wù)參數(shù)等信息。當(dāng)需要對(duì)某個(gè)外設(shè)進(jìn)行操作時(shí),首先會(huì)找到其對(duì)應(yīng)的結(jié)構(gòu)體,然后讀取外設(shè)信息,進(jìn)而對(duì)其進(jìn)行操作。

      而對(duì)于中斷控制器,其與一般外設(shè)又有一定的區(qū)別,其結(jié)構(gòu)體中不是包括單獨(dú)的中斷服務(wù)程序入口與參數(shù),而是包括一個(gè)中斷服務(wù)及參數(shù)的列表。列表的長度為32,即每列對(duì)應(yīng)一個(gè)輸入端。

      處理器通過中斷矢量表進(jìn)入中斷服務(wù)程序后,會(huì)首先根據(jù)系統(tǒng)自動(dòng)傳入的參數(shù)ID找到對(duì)應(yīng)中斷控制器的信息結(jié)構(gòu)體,然后查詢中斷控制器的輸入,通過結(jié)構(gòu)體內(nèi)的中斷服務(wù)列表找到對(duì)應(yīng)的中斷服務(wù)子程序。

      在對(duì)Timer進(jìn)行操作前,亦需先找到其對(duì)應(yīng)的信息結(jié)構(gòu)體。每個(gè)Timer有一個(gè)中斷輸出,但一個(gè)Timer包括兩個(gè)計(jì)數(shù)器。因此,必須首先判斷中斷由哪個(gè)計(jì)數(shù)器引起,然后再調(diào)用相應(yīng)的子程序。

      4.2.2 中斷服務(wù)流程

      有了以上知識(shí),來看一下XPS提供的中斷服務(wù)程序流程是怎樣的。如圖3所示,在中斷服務(wù)函數(shù)中,程序首先找到中斷控制器的信息結(jié)構(gòu)體,然后判斷中斷來源(這里為 Timer)以調(diào)用對(duì)應(yīng)的函數(shù)(Timer中斷服務(wù)函數(shù)),然后清除中斷控制器輸出。在Timer中斷服務(wù)函數(shù)中,首先找到Timer模塊的信息結(jié)構(gòu)體,然后判斷中斷由哪個(gè)Timer引發(fā),將結(jié)果傳入子函數(shù),在子函數(shù)中實(shí)現(xiàn)相關(guān)操作。子函數(shù)返回后,清除timer中斷輸出。

      圖3 XPS提供的中斷服務(wù)流程

      4.3 測(cè)量

      下面對(duì)中斷響應(yīng)過程的時(shí)間參數(shù)進(jìn)行測(cè)量。

      4.3.1 需要測(cè)量的參數(shù)

      定義T1,T2,T3三個(gè)參數(shù),它們的意義如下:

      T1:一次中斷響應(yīng)過程的總時(shí)間。即從外設(shè)發(fā)出中斷信號(hào)到中斷響應(yīng)結(jié)束的時(shí)間。

      T2:由Timer模塊發(fā)出中斷申請(qǐng)到執(zhí)行自定義操作需要的時(shí)間。注意,這里的自定義操作為清Timer中斷,位于圖3所示的自定義函數(shù)中。這樣會(huì)導(dǎo)致響應(yīng)一次中斷響應(yīng)過程中兩次清Timer中斷,不過這并不影響測(cè)量結(jié)果。

      T3:中斷控制器的延遲時(shí)間。即Timer模塊發(fā)出中斷申請(qǐng)到中斷控制器發(fā)出中斷申請(qǐng)的時(shí)間間隔。

      4.3.2 測(cè)量方法

      1)上位機(jī)通過RS232向PowerPC發(fā)出指令,啟動(dòng)Timer模塊(只使用其中一個(gè)Timer),Timer設(shè)定為generate mode,每兩個(gè)時(shí)鐘周期產(chǎn)生一次中斷。這樣可以保證每次中斷響應(yīng)結(jié)束之前產(chǎn)生下次中斷的觸發(fā)脈沖,使系統(tǒng)每處理完一次中斷后立刻進(jìn)入下一次中斷的響應(yīng)。這時(shí)Timer模塊中斷信號(hào)的周期即等效于系統(tǒng)一次中斷響應(yīng)過程的周期T1。上面已經(jīng)提到,每一次中斷響應(yīng)過程中會(huì)有兩次清中斷的操作,因此一個(gè)周期中會(huì)產(chǎn)生兩次中斷信號(hào)的變化,但不會(huì)影響測(cè)量結(jié)果。

      2)Timer保持generate mode不變,但調(diào)整其中斷發(fā)生周期,使其遠(yuǎn)大于中斷響應(yīng)過程的總時(shí)間(依據(jù)上一步測(cè)得的結(jié)果),以保證產(chǎn)生下次中斷信號(hào)時(shí),上次中斷服務(wù)已經(jīng)結(jié)束。測(cè)量Timer模塊中斷發(fā)生到被清除的時(shí)間,即為中斷發(fā)生到執(zhí)行自定義操作的時(shí)間T2。同時(shí)可測(cè)到T3。

      4.3.3 測(cè)量工具

      使用Tektronix公司TDS3014B示波器進(jìn)行測(cè)量。

      4.3.4 測(cè)量結(jié)果

      T1:24.40μs。約為1952個(gè)時(shí)鐘周期。

      T2:10.36μs。約為829個(gè)時(shí)鐘周期。

      T3:41.00 -41.50ns。約為 3.3 個(gè)時(shí)鐘周期。

      5 提高中斷效率的研究

      5.1 保持原硬件系統(tǒng)不變

      通過分析PowerPC異常處理流程及中斷服務(wù)函數(shù)可以發(fā)現(xiàn),能夠進(jìn)行修改的過程只有中斷服務(wù)函數(shù)部分。根據(jù)之前的分析,執(zhí)行一次中斷服務(wù)函數(shù)會(huì)發(fā)生兩次函數(shù)調(diào)用以及數(shù)次對(duì)外設(shè)信息結(jié)構(gòu)體的查找與讀取。這樣的優(yōu)點(diǎn)是代碼移植性強(qiáng)且安全性好。但在對(duì)外設(shè)信息完全掌握的前提下,可以不通過信息結(jié)構(gòu)體而直接對(duì)外設(shè)進(jìn)行操作,亦可以不通過函數(shù)調(diào)用而是直接編寫代碼。簡化后的中斷服務(wù)函數(shù)流程如圖4所示。

      此時(shí)測(cè)得的各參數(shù)如下:

      T1:14.72 -14.73μs。約為1178 個(gè)時(shí)鐘周期。

      T2:6.588μs。約為527個(gè)時(shí)鐘周期。

      T3:41.00 -41.40ns。約為 3.3 個(gè)時(shí)鐘周期。

      通過對(duì)比數(shù)據(jù)可以發(fā)現(xiàn),T1縮短為原來的60.35%,T2縮短為原來的 63.57%。

      圖4 簡化后的中斷服務(wù)函數(shù)流程圖

      5.2 簡化硬件系統(tǒng)

      在以上的系統(tǒng)中,Timer中斷通過中斷控制器連接到PowerPC的External Input端口,這樣的結(jié)果是在中斷服務(wù)程序中需要增加對(duì)中斷控制器的操作代碼,而且使用中斷控制器會(huì)使External Input端口接收到中斷信號(hào)的時(shí)間有一定的延時(shí)(即T3)。在中斷數(shù)量不大于2的情況下,完全可以不使用中斷控制器,而是將外設(shè)的中斷信號(hào)直接接到PowerPC的兩個(gè)異常輸入端。

      現(xiàn)在,對(duì)系統(tǒng)做如下修改,將中斷控制器從系統(tǒng)移除,將Timer模塊中斷輸出端接到PowerPC External Input端口,將RS232中斷輸出端接到PowerPC Critical端口。修改后的系統(tǒng)結(jié)構(gòu)如圖5所示。

      此時(shí)只需要在中斷處理程序中執(zhí)行自定義操作(清Timer中斷)及清除Timer中斷輸出命令。中斷服務(wù)程序得到了進(jìn)一步簡化。

      測(cè)得各參數(shù)如下:

      1)T1:11.59μs。約為927個(gè)時(shí)鐘周期。

      2)T2:5.45μs。約為436個(gè)時(shí)鐘周期。

      可以看出,中斷響應(yīng)效率進(jìn)一步提高。此時(shí)T1為原來的47.49%,T2為52.59%。

      圖5 修改后的系統(tǒng)結(jié)構(gòu)框圖

      6 結(jié)束語

      本研究對(duì)FPGA內(nèi)嵌PowerPC中斷系統(tǒng)的原理進(jìn)行了深入的分析,對(duì)中斷響應(yīng)時(shí)間進(jìn)行了實(shí)測(cè),并通過簡化設(shè)計(jì)提高了中斷響應(yīng)速度,可以作為需要設(shè)計(jì)快速響應(yīng)系統(tǒng)的參考。

      [1]張春生,常青,肖山竹.基于PowerPC405的SOPC簡單應(yīng)用[J].微處理機(jī),2007(6):117-120.

      [2]買培培,蘇濤,張曉曦.基于PowerPC的控制器研究與設(shè)計(jì)[J].船舶電子對(duì)抗,2009,32(5):102-106.

      猜你喜歡
      信息結(jié)構(gòu)服務(wù)程序外設(shè)
      基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
      視聽(2020年3期)2020-06-11 14:28:18
      對(duì)外漢語教材編寫中信息結(jié)構(gòu)知識(shí)的應(yīng)用
      基于調(diào)節(jié)聚焦理論的生物農(nóng)藥推廣有效性研究
      事件結(jié)構(gòu)、信息結(jié)構(gòu)與句法表征*——領(lǐng)主屬賓句的認(rèn)知語法分析
      水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
      Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
      信息結(jié)構(gòu)與句法異位
      貼身呵護(hù) 必不可少的PSP外設(shè)
      辽阳市| 鄂托克前旗| 揭西县| 简阳市| 武清区| 环江| 同德县| 海林市| 荔波县| 鹤峰县| 黄石市| 焦作市| 修水县| 永胜县| 诸暨市| 库尔勒市| 四子王旗| 兴宁市| 新和县| 尼勒克县| 修武县| 将乐县| 赤城县| 勃利县| 日照市| 盐边县| 南澳县| 天长市| 汶上县| 北宁市| 永安市| 紫云| 司法| 麻阳| 察雅县| 隆德县| 咸宁市| 汪清县| 额尔古纳市| 海南省| 延安市|