專利名稱:一種中斷處理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域及電子技術(shù)領(lǐng)域,特別是一種中斷處理方法及系統(tǒng)。
背景技術(shù):
目前的嵌入式系統(tǒng)包括基帶芯片和協(xié)處理芯片,基帶芯片具有通用的處理功能,協(xié)處理芯片具有特定的處理功能。嵌入式系統(tǒng)的主要發(fā)展方向之一是實(shí)現(xiàn)對(duì)更多的多媒體業(yè)務(wù)的支持,如和弦、彩鈴、視頻和音頻壓縮格式(MP3)業(yè)務(wù)等?,F(xiàn)有技術(shù)中基帶芯片經(jīng)常使用專用的引腳(pin)向協(xié)處理芯片發(fā)送各種信息,應(yīng)用之一就是,基帶芯片產(chǎn)生中斷時(shí),通過(guò)引腳向協(xié)處理芯片發(fā)送中斷信號(hào)。而嵌入式系統(tǒng)通常對(duì)芯片的體積和功耗的要求較高,所以引腳成為一種有限且寶貴的資源。為了支持多媒體業(yè)務(wù)的發(fā)展,將有大量的引腳需要使用,所以盡量減少對(duì)引腳的使用是業(yè)界渴望解決的一個(gè)問(wèn)題。
目前現(xiàn)有技術(shù)中,協(xié)處理芯片只包括一個(gè)硬件堆棧,當(dāng)基帶芯片產(chǎn)生中斷時(shí),該硬件堆棧需要暫停當(dāng)前操作,并以軟件堆棧形式進(jìn)行保護(hù)現(xiàn)場(chǎng)的操作,將需要保存的數(shù)據(jù)和地址寫入軟件堆棧。當(dāng)基帶芯片完成中斷處理時(shí),該硬件堆棧需要繼續(xù)之前的操作,即需要恢復(fù)現(xiàn)場(chǎng),則從軟件堆棧中讀取數(shù)據(jù)和地址。由于協(xié)處理芯片只包括一個(gè)硬件堆棧,基帶芯片在處理中斷過(guò)程中可能也需要訪問(wèn)該協(xié)處理芯片,即需要由該協(xié)處理芯片中的硬件堆棧處理數(shù)據(jù)和地址。可見,該硬件堆棧在正常模式和中斷模式下都需要進(jìn)行操作,這就要求該硬件堆棧在保護(hù)現(xiàn)場(chǎng)時(shí)需要將緩存中和已處理的數(shù)據(jù)和地址寫入軟件堆棧中。當(dāng)數(shù)據(jù)量非常大時(shí),該保護(hù)現(xiàn)場(chǎng)和將來(lái)的恢復(fù)現(xiàn)場(chǎng)的工作量將變得巨大,影響嵌入式系統(tǒng)的處理速度,并且由于軟件堆棧中存儲(chǔ)著大量的數(shù)據(jù),增加軟件負(fù)載。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種中斷處理方法及系統(tǒng),用于節(jié)約引腳資源,提高中斷處理速度,減輕系統(tǒng)的軟件負(fù)載。
一種中斷處理方法,包括以下步驟基帶芯片產(chǎn)生中斷,并且通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送中斷開始標(biāo)志;所述基帶芯片在中斷處理結(jié)束時(shí)通過(guò)所述復(fù)用總線向所述協(xié)處理芯片發(fā)送中斷結(jié)束標(biāo)志。
一種基帶芯片,包括處理模塊,用于運(yùn)行通用的程序,在產(chǎn)生中斷時(shí)生成中斷開始標(biāo)志,以及在中斷結(jié)束時(shí)生成中斷結(jié)束標(biāo)志;發(fā)送模塊,用于通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送所述中斷開始標(biāo)志和所述中斷結(jié)束標(biāo)志。
一種協(xié)處理芯片,包括第一硬件堆棧,用于在正常模式下處理基帶芯片發(fā)送的數(shù)據(jù)和地址;第二硬件堆棧,用于在中斷模式下處理所述基帶芯片發(fā)送的數(shù)據(jù)和地址;第一多路器,用于在正常模式下發(fā)送所述第一硬件堆棧輸出的數(shù)據(jù)和在中斷模式下發(fā)送所述第二硬件堆棧輸出的數(shù)據(jù);第二多路器,用于在正常模式下發(fā)送所述第一硬件堆棧輸出的數(shù)據(jù)和在中斷模式下發(fā)送所述第二硬件堆棧輸出的地址;標(biāo)志器,用于根據(jù)所述基帶芯片發(fā)送的中斷標(biāo)志控制所述第一硬件堆棧和所述第二硬件堆棧及所述第一多路器和所述第二多路器。
一種嵌入式系統(tǒng),包括復(fù)用總線,用于連接基帶芯片和協(xié)處理芯片,并向所述基帶芯片或所述協(xié)處理芯片發(fā)送數(shù)據(jù)或地址;所述基帶芯片,用于運(yùn)行通用的程序,并在產(chǎn)生中斷和結(jié)束中斷時(shí)通過(guò)所述復(fù)用總線向所述協(xié)處理芯片發(fā)送相應(yīng)的中斷標(biāo)志;
所述協(xié)處理芯片,用于運(yùn)行特定的程序,并在收到所述中斷標(biāo)志時(shí)進(jìn)行相應(yīng)的處理。
在本發(fā)明實(shí)施例中,基帶芯片通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送中斷標(biāo)志以通知產(chǎn)生中斷,節(jié)省了引腳的使用,可進(jìn)一步縮小基帶芯片和協(xié)處理芯片的體積,節(jié)省系統(tǒng)功耗。本實(shí)施例還提供了包括多個(gè)硬件堆棧的協(xié)處理芯片,減少保護(hù)現(xiàn)場(chǎng)及恢復(fù)現(xiàn)場(chǎng)時(shí)的操作,提高了處理速度和減輕了軟件負(fù)載。
圖1為本發(fā)明實(shí)施例中系統(tǒng)的結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例中協(xié)處理芯片包含一個(gè)堆棧的結(jié)構(gòu)圖;圖3為本發(fā)明實(shí)施例中協(xié)處理芯片包含多個(gè)堆棧的結(jié)構(gòu)圖;圖4為本發(fā)明實(shí)施例中基帶芯片的結(jié)構(gòu)圖;圖5為本發(fā)明實(shí)施例中中斷處理的主要方法流程圖;圖6為本發(fā)明實(shí)施例中一種中斷處理的具體方法流程圖;圖7為本發(fā)明實(shí)施例中信號(hào)和數(shù)據(jù)的示意圖;圖8為本發(fā)明實(shí)施例中另一種中斷處理的具體方法流程圖。
具體實(shí)施例方式
在本實(shí)施例中,基帶芯片在產(chǎn)生中斷時(shí),通過(guò)數(shù)據(jù)/地址復(fù)用總線(以下簡(jiǎn)稱復(fù)用總線)向協(xié)處理芯片發(fā)送中斷標(biāo)志,通知協(xié)處理芯片進(jìn)行有關(guān)中斷的操作。本實(shí)施例提供一種包含至少兩個(gè)硬件堆棧(以下簡(jiǎn)稱堆棧)的協(xié)處理芯片,其中一個(gè)堆棧用于在正常模式下處理數(shù)據(jù)和地址,另一個(gè)堆棧用于在中斷模式下處理數(shù)據(jù)和地址。本實(shí)施例中的正常模式是相對(duì)于中斷模式而言,即在未產(chǎn)生中斷或中斷結(jié)束后的工作模式。
基帶芯片可以以數(shù)據(jù)形式通過(guò)數(shù)據(jù)復(fù)用總線向協(xié)處理芯片發(fā)送中斷標(biāo)志,也可以以地址形式通過(guò)數(shù)據(jù)復(fù)用總線向協(xié)處理芯片發(fā)送中斷標(biāo)志,根據(jù)中斷位置而定。本實(shí)施例以地址形式的中斷標(biāo)志為例進(jìn)行說(shuō)明。
參見圖1,本實(shí)施例中系統(tǒng)包括基帶芯片101、協(xié)處理芯片102和復(fù)用總線A/D[7:0]。
復(fù)用總線A/D[7:0]連接基帶芯片101和協(xié)處理芯片102,并提供數(shù)據(jù)和地址的傳輸通道。
基帶芯片101具有通用處理功能,執(zhí)行通用的程序。在正常模式的處理過(guò)程中需要訪問(wèn)協(xié)處理芯片102,在中斷模式的處理過(guò)程中可能需要訪問(wèn)同一個(gè)協(xié)處理芯片102。一個(gè)基帶芯片101可以連接多個(gè)協(xié)處理芯片102?;鶐酒?01可以通過(guò)引腳以硬件形式通知協(xié)處理芯片102產(chǎn)生中斷和中斷結(jié)束,或者以軟件形式通過(guò)復(fù)用總線A/D[7:0]向協(xié)處理芯片102發(fā)送中斷標(biāo)志,以通知中斷的發(fā)生和結(jié)束。本實(shí)施例中基帶芯片101為8位處理器。
協(xié)處理芯片102具有特定的處理功能,如音頻數(shù)據(jù)處理或視頻數(shù)據(jù)處理等,執(zhí)行特定的程序。在正常模式下處理基帶芯片101發(fā)送的數(shù)據(jù)和地址,在中斷模式下可能也需要處理基帶芯片101發(fā)送的數(shù)據(jù)和地址,協(xié)處理芯片102可以通過(guò)引腳或復(fù)用總線A/D[7:0]獲知中斷的發(fā)生和結(jié)束。在從正常模式進(jìn)入中斷模式過(guò)程中需要保護(hù)現(xiàn)場(chǎng),以及從中斷模式進(jìn)入正常模式過(guò)程中需要恢復(fù)現(xiàn)場(chǎng)。該協(xié)處理芯片102包括一個(gè)或多個(gè)堆棧。本實(shí)施例中協(xié)處理芯片102為32位處理器。
一種協(xié)處理芯片102包括多個(gè)堆棧的實(shí)現(xiàn)方式,參見圖2所示,本實(shí)施例中協(xié)處理芯片102包括標(biāo)志器201、第一堆棧202、第二堆棧203、第一多路器204和第二多路器205。
標(biāo)志器201控制第一堆棧202和第二堆棧203的工作狀態(tài),在通過(guò)復(fù)用總線A/D[7:0]收到基帶芯片101發(fā)送的中斷開始標(biāo)志時(shí),同時(shí)向第一堆棧202、第二堆棧203、第一多路器204和第二多路器205發(fā)送高電平的中斷狀態(tài)信號(hào),在通過(guò)復(fù)用總線A/D[7:0]收到基帶芯片101發(fā)送的中斷結(jié)束標(biāo)志時(shí),同時(shí)向第一堆棧202、第二堆棧203、第一多路器204和第二多路器205發(fā)送低電平的中斷狀態(tài)信號(hào)。標(biāo)志器201也可以通過(guò)引腳獲知中斷的發(fā)生和結(jié)束。
第一堆棧202在正常模式下接收并處理基帶芯片101發(fā)送的數(shù)據(jù)和地址,在收到高電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入中斷模式,暫停當(dāng)前的處理操作,并進(jìn)行保護(hù)現(xiàn)場(chǎng)操作,僅將緩存中的數(shù)據(jù)和地址寫入軟件堆棧。在收到低電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入正常模式,根據(jù)軟件堆棧中的記錄恢復(fù)現(xiàn)場(chǎng),并繼續(xù)之前的處理操作。在處理數(shù)據(jù)和地址過(guò)程中,將需要的數(shù)據(jù)和地址分別發(fā)送給第一多路器204和第二多路器205。
第二堆棧203在正常模式下處于待命狀態(tài),在收到高電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入中斷模式,接收并處理基帶芯片101發(fā)送的數(shù)據(jù)和地址。在收到低電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入正常模式,恢復(fù)為待命狀態(tài)。在處理數(shù)據(jù)和地址過(guò)程中,將需要的數(shù)據(jù)和地址分別發(fā)送給第一多路器204和第二多路器205。
第一多路器204向其它設(shè)備發(fā)送第一堆棧202和第二堆棧203發(fā)送的數(shù)據(jù),其它設(shè)備包括基帶芯片101。在收到高電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入中斷模式,關(guān)閉與第一堆棧202的接口,并打開與第二堆棧203的接口。在收到低電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入正常模式,關(guān)閉與與第二堆棧203的接口,并打開與第一堆棧202的接口。
第二多路器205向其它設(shè)備發(fā)送第一堆棧202和第二堆棧203發(fā)送的地址,其它設(shè)備包括基帶芯片101。在收到高電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入中斷模式,關(guān)閉與第一堆棧202的接口,并打開與第二堆棧203的接口。在收到低電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入正常模式,關(guān)閉與與第二堆棧203的接口,并打開與第一堆棧202的接口。
第一多路器204與第二多路器205既可以是串聯(lián)關(guān)系,也可以是并聯(lián)關(guān)系。
本實(shí)施例中,在寫信號(hào)Wen的上升沿,第一堆棧202或第二堆棧203捕獲復(fù)用總線A/D[7:0]上的地址或者數(shù)據(jù),標(biāo)志器201捕獲復(fù)用總線A/D[7:0]上的中斷標(biāo)志。
協(xié)處理芯片102還可以包括第三堆棧(本圖未示出),當(dāng)?shù)诙褩?03在中斷模式下接收并處理基帶芯片101發(fā)送的數(shù)據(jù)和地址,并且基帶芯片101再次產(chǎn)生中斷時(shí),接收并處理基帶芯片101發(fā)送的數(shù)據(jù)和地址。協(xié)處理芯片102中的標(biāo)志器201連續(xù)收到第二個(gè)中斷開始標(biāo)志時(shí),向第二堆棧203和第三堆棧發(fā)送信號(hào),使第二堆棧203暫停當(dāng)前的操作,并使第三堆棧啟動(dòng)??梢愿鶕?jù)中斷嵌套的層數(shù)在協(xié)處理芯片102中增加相應(yīng)數(shù)量的堆棧。
一種協(xié)處理芯片102包括一個(gè)堆棧的實(shí)現(xiàn)方式,參見圖3所示,本實(shí)施例中協(xié)處理芯片102包括接收模塊301、堆棧302和發(fā)送模塊303。
接收模塊301接收基帶芯片101發(fā)送的數(shù)據(jù)、地址、各種信號(hào)和中斷標(biāo)志等。還可以包括引腳,通過(guò)引腳接收基帶芯片101發(fā)送的信號(hào)。
堆棧302在正常模式和中斷模式下接收并處理基帶芯片101發(fā)送的數(shù)據(jù)和地址。在收到高電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入中斷模式,暫停當(dāng)前的處理操作,并進(jìn)行保護(hù)現(xiàn)場(chǎng)操作,將緩存中、部分或全部已處理的數(shù)據(jù)和地址寫入軟件堆棧。在收到低電平的中斷狀態(tài)信號(hào)時(shí)進(jìn)入正常模式,根據(jù)軟件堆棧中的記錄恢復(fù)現(xiàn)場(chǎng),并繼續(xù)之前的處理操作。
發(fā)送模塊303向其它設(shè)備發(fā)送堆棧302處理后的數(shù)據(jù)和地址。該發(fā)送模塊303包括用于發(fā)送數(shù)據(jù)的單元和用于發(fā)送地址的單元。所述其它設(shè)備包括基帶芯片101。
參見圖4,本實(shí)施例中基帶芯片101包括處理模塊401、發(fā)送模塊402和接收模塊403。
處理模塊401運(yùn)行通用的程序,具體通用的處理功能。在正常模式和中斷模式下生成數(shù)據(jù)和地址。當(dāng)產(chǎn)生中斷時(shí)生成中斷開始標(biāo)志,當(dāng)中斷結(jié)束時(shí)生成中斷結(jié)束標(biāo)志。
發(fā)送模塊402在正常模式和中斷模式下通過(guò)復(fù)用總線向協(xié)處理芯片102發(fā)送數(shù)據(jù)和地址,并在產(chǎn)生中斷和中斷結(jié)束時(shí)通過(guò)復(fù)用總線向協(xié)處理芯片102發(fā)送中斷標(biāo)志。
接收模塊403接收協(xié)處理芯片102返回的數(shù)據(jù)和地址,和/或接收其它設(shè)備發(fā)送的數(shù)據(jù)和地址等。
參見圖5,本實(shí)施例中中斷處理方法的主要方法流程如下步驟501基帶芯片101在正常模式下進(jìn)行操作,訪問(wèn)協(xié)處理芯片102,并在這過(guò)程中產(chǎn)生中斷。
步驟502基帶芯片101生成中斷開始標(biāo)志,并通過(guò)復(fù)用總線向協(xié)處理芯片102發(fā)送該中斷開始標(biāo)志。
步驟503協(xié)處理芯片102收到該中斷開始標(biāo)志后進(jìn)入中斷模式,并進(jìn)行相關(guān)操作。
步驟504基帶芯片101進(jìn)行中斷處理,并在中斷處理結(jié)束時(shí)生成中斷結(jié)束標(biāo)志,以及通過(guò)復(fù)用總線向協(xié)處理芯片102發(fā)送該中斷結(jié)束標(biāo)志。
步驟505協(xié)處理芯片102收到該中斷結(jié)束標(biāo)志后進(jìn)入正常模式,并進(jìn)行相關(guān)操作。
一種在協(xié)處理芯片102為圖3所示的只包括一個(gè)堆棧的情況下中斷處理的具體實(shí)現(xiàn)方式,方法流程參見圖6所示步驟601基帶芯片101在正常模式下進(jìn)行操作,訪問(wèn)協(xié)處理芯片102。例如,一種基帶芯片101為8位處理器,一種協(xié)處理芯片102為32位處理器,所以基帶芯片101向協(xié)處理芯片102發(fā)送一個(gè)完整的數(shù)據(jù)需要4個(gè)時(shí)鐘周期,發(fā)送一個(gè)完整的地址也需要4個(gè)時(shí)鐘周期,即一個(gè)隨機(jī)寫操作需要8個(gè)時(shí)鐘周期。一個(gè)寫操作的實(shí)例參見圖7所示,nWR是基帶的寫控制信號(hào),低電平有效。Data是八位的地址/數(shù)據(jù)復(fù)用總線。該總線上傳輸?shù)臄?shù)據(jù)類型由RS信號(hào)確定,低電平表示復(fù)用總線上傳輸?shù)刂?,高電平則表示傳輸數(shù)據(jù)。在隨機(jī)寫中,基帶芯片先發(fā)送寫地址,后發(fā)送寫數(shù)據(jù)。在起始的四個(gè)時(shí)鐘周期中,RS為低電平,表示該四個(gè)時(shí)鐘周期內(nèi)發(fā)送的是地址,則按照地址的由高到低順序依次發(fā)送部分地址,即A3、A2、A1和A0。在接續(xù)的四個(gè)時(shí)鐘周期中,RS為高電平,表示該四個(gè)時(shí)鐘周期內(nèi)發(fā)送的是數(shù)據(jù),則按照數(shù)據(jù)的由高到低的順序依次發(fā)送部分?jǐn)?shù)據(jù),即D3、D2、D1、D0。一個(gè)中斷標(biāo)志用4個(gè)時(shí)鐘周期的IF表示,中斷標(biāo)志可以有多種,如定義的一種特定標(biāo)識(shí)、中斷的名稱、中斷的地址和協(xié)處理芯片102的地址等。本實(shí)施例中基帶芯片101正在向協(xié)處理芯片102寫入第一個(gè)時(shí)鐘周期的地址A3。
步驟602基帶芯片101產(chǎn)生中斷,生成中斷標(biāo)志,并向協(xié)處理芯片102寫入4個(gè)時(shí)鐘周期的中斷標(biāo)志IF(即中斷開始標(biāo)志)。
步驟603協(xié)處理芯片102收到中斷開始標(biāo)志后,將緩存中的數(shù)據(jù)和地址、部分或全部已處理的數(shù)據(jù)和地址寫入軟件堆棧,以保護(hù)現(xiàn)場(chǎng)。例如保存緩存的A3,該A3對(duì)應(yīng)的數(shù)據(jù)可能與前一次的處理結(jié)果有關(guān),則需要保存前一次的數(shù)據(jù)和地址。
步驟604基帶芯片101在處理中斷過(guò)程中根據(jù)中斷的需要,再次訪問(wèn)該協(xié)處理芯片102。
步驟605協(xié)處理芯片102從復(fù)用總線A/D[7:0]上捕獲數(shù)據(jù)和地址并進(jìn)行處理,以及在需要時(shí)向外輸出數(shù)據(jù)和地址。
步驟606基帶芯片101在處理中斷完成時(shí)生成中斷標(biāo)志,并向協(xié)處理芯片102寫入4個(gè)時(shí)鐘周期的中斷標(biāo)志IF(即中斷結(jié)束標(biāo)志)。
步驟607協(xié)處理芯片102收到中斷結(jié)束標(biāo)志后,讀出軟件堆棧中的數(shù)據(jù)和地址,以恢復(fù)現(xiàn)場(chǎng)。
步驟608基帶芯片101繼續(xù)向協(xié)處理芯片102寫入地址A2、A1、A0和數(shù)據(jù)D3、D2、D1、D0。協(xié)處理芯片102從復(fù)用總線A/D[7:0]上捕獲地址A2、A1、A0和數(shù)據(jù)D3、D2、D1、D0,并進(jìn)行相應(yīng)的處理。
一種在協(xié)處理芯片102為圖2所示的包括多個(gè)堆棧的情況下中斷處理的具體實(shí)現(xiàn)方式,方法流程參見圖8所示步驟801基帶芯片101在正常模式下進(jìn)行操作,訪問(wèn)協(xié)處理芯片102。本實(shí)施例中基帶芯片101正在向協(xié)處理芯片102寫入第一個(gè)時(shí)鐘周期的地址A3。參見圖7所示。
步驟802基帶芯片101產(chǎn)生中斷,生成中斷標(biāo)志,并向協(xié)處理芯片102寫入4個(gè)時(shí)鐘周期的中斷標(biāo)志IF(即中斷開始標(biāo)志)。
步驟803協(xié)處理芯片102中的標(biāo)志器201收到中斷開始標(biāo)志后,生成并向第一堆棧202、第二堆棧203、第一多路器204和第二多路器205發(fā)送高電平的中斷狀態(tài)信號(hào)。
步驟804第一堆棧202暫停當(dāng)前的操作,將緩存中的數(shù)據(jù)和地址寫入軟件堆棧,以保護(hù)現(xiàn)場(chǎng)。第二堆棧203啟動(dòng)。第一多路器204和第二多路器205關(guān)閉與第一堆棧202之間的接口,并打開與第二堆棧203之間的接口。例如,只需保存緩存的A3,不需要保存前一次處理的數(shù)據(jù)及地址。
步驟805基帶芯片101在處理中斷過(guò)程中根據(jù)中斷的需要,再次訪問(wèn)該協(xié)處理芯片102。
協(xié)處理芯片102中的第二堆棧203從復(fù)用總線A/D[7:0]上捕獲數(shù)據(jù)和地址并進(jìn)行處理,以及在需要時(shí)向外輸出數(shù)據(jù)和地址。
步驟806基帶芯片101在處理中斷完成時(shí)生成中斷標(biāo)志,并向協(xié)處理芯片102寫入4個(gè)時(shí)鐘周期的中斷標(biāo)志IF(即中斷結(jié)束標(biāo)志)。
步驟807協(xié)處理芯片102中的標(biāo)志器201收到中斷結(jié)束標(biāo)志后,向第一堆棧202、第二堆棧203、第一多路器204和第二多路器205發(fā)送低電平的中斷狀態(tài)信號(hào)。
步驟808第一堆棧202讀出軟件堆棧中的數(shù)據(jù)和地址,以恢復(fù)現(xiàn)場(chǎng)。第二堆棧203進(jìn)入待命狀態(tài)。第一多路器204和第二多路器205關(guān)閉與第二堆棧203之間的接口,并打開與第一堆棧202之間的接口。
步驟809基帶芯片101繼續(xù)向協(xié)處理芯片102寫入地址A2、A1、A0和數(shù)據(jù)D3、D2、D1、D0。
在本發(fā)明實(shí)施例中,基帶芯片通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送中斷標(biāo)志以通知產(chǎn)生中斷,節(jié)省了引腳的使用,可進(jìn)一步縮小基帶芯片和協(xié)處理芯片的體積,節(jié)省系統(tǒng)功耗。本實(shí)施例還提供了包括多個(gè)硬件堆棧的協(xié)處理芯片,減少保護(hù)現(xiàn)場(chǎng)及恢復(fù)現(xiàn)場(chǎng)時(shí)的操作,提高了處理速度和減輕了軟件負(fù)載。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若對(duì)本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種中斷處理方法,其特征在于,包括以下步驟基帶芯片產(chǎn)生中斷,并且通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送中斷開始標(biāo)志;所述基帶芯片在中斷處理結(jié)束時(shí)通過(guò)所述復(fù)用總線向所述協(xié)處理芯片發(fā)送中斷結(jié)束標(biāo)志。
2.如權(quán)利要求1所述的中斷處理方法,其特征在于,所述協(xié)處理芯片在收到所述中斷開始標(biāo)志時(shí)保護(hù)現(xiàn)場(chǎng)。
3.如權(quán)利要求2所述的中斷處理方法,其特征在于,所述協(xié)處理芯片保護(hù)現(xiàn)場(chǎng)的步驟包括記錄緩存中的數(shù)據(jù)和地址,以及記錄部分或全部已處理的數(shù)據(jù)和地址,并將記錄的內(nèi)容保存在其內(nèi)部的硬件堆棧。
4.如權(quán)利要求2所述的中斷處理方法,其特征在于,所述協(xié)處理芯片保護(hù)現(xiàn)場(chǎng)的步驟為記錄緩存中的數(shù)據(jù)和地址,并將記錄的內(nèi)容保存在其內(nèi)部的用于在正常模式下工作的第一硬件堆棧;以及所述協(xié)處理芯片在中斷處理過(guò)程中將接收到的數(shù)據(jù)存儲(chǔ)在其內(nèi)部的用于在中斷模式下工作的第二硬件堆棧。
5.如權(quán)利要求4所述的中斷處理方法,其特征在于,所述第一硬件堆棧和所述第二硬件堆棧將從所述基帶芯片接收的數(shù)據(jù)和地址進(jìn)行處理后分別發(fā)送給用于發(fā)送數(shù)據(jù)的多路器和用于發(fā)送地址的多路器。
6.如權(quán)利要求4所述的中斷處理方法,其特征在于,所述協(xié)處理芯片中的標(biāo)志器通過(guò)所述復(fù)用總線接收所述中斷開始標(biāo)志,并同時(shí)向協(xié)處理芯片中所述第一硬件堆棧和所述第二硬件堆棧發(fā)送第一中斷狀態(tài)信號(hào),使所述第一硬件堆棧暫停當(dāng)前的處理并進(jìn)行保護(hù)現(xiàn)場(chǎng)的操作,以及使所述第二硬件堆棧啟動(dòng)。
7.如權(quán)利要求6所述的中斷處理方法,其特征在于,所述標(biāo)志器通過(guò)所述復(fù)用總線接收所述中斷結(jié)束標(biāo)志,并同時(shí)向所述第一硬件堆棧和所述第二硬件堆棧發(fā)送第二中斷狀態(tài)信號(hào),使所述第一硬件堆棧繼續(xù)所述當(dāng)前的處理,并使所述第二硬件堆棧進(jìn)入待命狀態(tài)。
8.如權(quán)利要求6所述的中斷處理方法,其特征在于,所述第二硬件堆棧啟動(dòng)后,在接收到所述基帶芯片發(fā)送的數(shù)據(jù)和地址時(shí)進(jìn)行處理操作。
9.一種基帶芯片,其特征在于,包括處理模塊,用于運(yùn)行通用的程序,在產(chǎn)生中斷時(shí)生成中斷開始標(biāo)志,以及在中斷結(jié)束時(shí)生成中斷結(jié)束標(biāo)志;發(fā)送模塊,用于通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送所述中斷開始標(biāo)志和所述中斷結(jié)束標(biāo)志。
10.一種協(xié)處理芯片,其特征在于,包括第一硬件堆棧,用于在正常模式下處理基帶芯片發(fā)送的數(shù)據(jù)和地址;第二硬件堆棧,用于在中斷模式下處理所述基帶芯片發(fā)送的數(shù)據(jù)和地址;第一多路器,用于在正常模式下發(fā)送所述第一硬件堆棧輸出的數(shù)據(jù)和在中斷模式下發(fā)送所述第二硬件堆棧輸出的數(shù)據(jù);第二多路器,用于在正常模式下發(fā)送所述第一硬件堆棧輸出的數(shù)據(jù)和在中斷模式下發(fā)送所述第二硬件堆棧輸出的地址;標(biāo)志器,用于根據(jù)所述基帶芯片發(fā)送的中斷標(biāo)志控制所述第一硬件堆棧和所述第二硬件堆棧及所述第一多路器和所述第二多路器。
11.如權(quán)利要求10所述的協(xié)處理芯片,其特征在于,至少一個(gè)第三硬件堆棧,用于在所述第二硬件堆棧處理數(shù)據(jù)和地址并且所述基帶芯片再次產(chǎn)生中斷時(shí)處理所述基帶芯片發(fā)送的數(shù)據(jù)和地址。
12.如權(quán)利要求10所述的協(xié)處理芯片,其特征在于,所述標(biāo)志器在收到所述基帶芯片發(fā)送的中斷開始標(biāo)志時(shí)同時(shí)向所述第一硬件堆棧和所述第二硬件堆棧發(fā)送第一中斷狀態(tài)信號(hào),使所述第一硬件堆棧暫停當(dāng)前處理,并使所述第二硬件堆棧啟動(dòng)。
13.如權(quán)利要求12所述的協(xié)處理芯片,其特征在于,所述標(biāo)志器在收到所述基帶芯片發(fā)送的中斷結(jié)束標(biāo)志時(shí)同時(shí)向所述第一硬件堆棧和所述第二硬件堆棧發(fā)送第二中斷狀態(tài)信號(hào),使所述第一硬件堆棧繼續(xù)所述當(dāng)前處理,并使所述第二硬件堆棧進(jìn)入待命狀態(tài)。
14.如權(quán)利要求10至13中任一項(xiàng)所述的協(xié)處理芯片,其特征在于,所述標(biāo)志器在收到所述基帶芯片發(fā)送的中斷開始標(biāo)志時(shí)同時(shí)向所述第一多路器和所述第二多路器發(fā)送第一中斷狀態(tài)信號(hào),使所述第一多路器和所述第二多路器關(guān)閉與所述第一堆棧的接口,并打開與所述第二堆棧的接口。
15.如權(quán)利要求14所述的協(xié)處理芯片,其特征在于,所述標(biāo)志器在收到所述基帶芯片發(fā)送的中斷結(jié)束標(biāo)志時(shí)向所述第一多路器和所述第二多路器發(fā)送第二中斷狀態(tài)信號(hào),使所述第一多路器和所述第二多路器打開與所述第一堆棧的接口,并關(guān)閉與所述第二堆棧的接口。
16.一種嵌入式系統(tǒng),其特征在于,包括復(fù)用總線,用于連接基帶芯片和協(xié)處理芯片,并向所述基帶芯片或所述協(xié)處理芯片發(fā)送數(shù)據(jù)或地址;所述基帶芯片,用于運(yùn)行通用的程序,并在產(chǎn)生中斷和結(jié)束中斷時(shí)通過(guò)所述復(fù)用總線向所述協(xié)處理芯片發(fā)送相應(yīng)的中斷標(biāo)志;所述協(xié)處理芯片,用于運(yùn)行特定的程序,并在收到所述中斷標(biāo)志時(shí)進(jìn)行相應(yīng)的處理。
全文摘要
本發(fā)明公開了一種中斷處理方法,用于節(jié)約引腳資源,提高中斷處理速度,減輕系統(tǒng)的軟件負(fù)載。所述方法為基帶芯片產(chǎn)生中斷,并且通過(guò)復(fù)用總線向協(xié)處理芯片發(fā)送中斷開始標(biāo)志;所述基帶芯片在中斷處理結(jié)束時(shí)通過(guò)所述復(fù)用總線向所述協(xié)處理芯片發(fā)送中斷結(jié)束標(biāo)志。本發(fā)明還公開了一種基帶芯片、協(xié)處理芯片和嵌入式系統(tǒng)。
文檔編號(hào)G06F13/20GK101075219SQ200710119079
公開日2007年11月21日 申請(qǐng)日期2007年6月19日 優(yōu)先權(quán)日2007年6月19日
發(fā)明者馬鳳翔, 張軍琪 申請(qǐng)人:北京中星微電子有限公司