用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng)。本發(fā)明揭示用于數(shù)字信號處理器的設(shè)計(jì)及使用的技術(shù),其包括(但不限于)在通信(例如,CDMA)系統(tǒng)中處理傳輸。所揭示的方法及系統(tǒng)通過在中斷寄存器中接收在統(tǒng)計(jì)上不確定的中斷類型的多個(gè)中斷且然后使多個(gè)處理線程與所述中斷寄存器相關(guān)聯(lián)以從所述中斷寄存器接收所述中斷來處理多線程處理器中出現(xiàn)的中斷。所述方法及系統(tǒng)屏蔽至少一子組所述多個(gè)處理線程以在所述子組內(nèi)的所述線程中的每一者內(nèi)僅接收所述多個(gè)中斷中的一個(gè)或一個(gè)以上預(yù)定類型的中斷,從而根據(jù)與特定線程相關(guān)聯(lián)的所述屏蔽在每一線程的基礎(chǔ)上控制對所述多個(gè)中斷的所述處理。
【專利說明】用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng)
[0001]分案申請
[0002]本發(fā)明專利申請是申請日為2006年10月18日,申請?zhí)枮?00680046815.7,以及發(fā)明名稱為“用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng)”的發(fā)明專利申請案的分案申請。
【技術(shù)領(lǐng)域】
[0003]所揭示的標(biāo)的物涉及數(shù)據(jù)通信。更特定來說,本揭示內(nèi)容涉及一種用于數(shù)字信號處理器的新穎及經(jīng)改善的共享中斷控制方法及系統(tǒng)。
【背景技術(shù)】
[0004]電子裝備及支持軟件應(yīng)用程序越來越多地涉及信號處理。家庭影院、計(jì)算機(jī)圖形學(xué)、醫(yī)學(xué)成像及電信均依賴信號處理技術(shù)。信號處理需要復(fù)雜但重復(fù)算法中的快速數(shù)學(xué)。許多應(yīng)用需要實(shí)時(shí)計(jì)算,即信號是時(shí)間的連續(xù)函數(shù),其必須被取樣并轉(zhuǎn)換為數(shù)字供數(shù)值處理。因此,處理器必須在樣本到達(dá)時(shí)執(zhí)行對所述樣本實(shí)施離散計(jì)算的算法。數(shù)字信號處理器(DSP)的架構(gòu)經(jīng)優(yōu)化以處置所述算法。良好的數(shù)字處理引擎的特性包括快速、靈活的算術(shù)計(jì)算單元、到達(dá)及來自所述計(jì)算單元的不受限制數(shù)據(jù)流、所述計(jì)算單元中的擴(kuò)增精確度及動(dòng)態(tài)范圍、雙重地址產(chǎn)生器、高效的程序定序及易于編程。
[0005]DSP技術(shù)的一種有前景應(yīng)用包括通信系統(tǒng),例如支持用戶之間通過衛(wèi)星或陸地鏈路進(jìn)行話音及數(shù)據(jù)通信的碼分多址(CDMA)系統(tǒng)。CDMA技術(shù)在多址通信系統(tǒng)中的使用揭示于標(biāo)題為“使用衛(wèi)星或陸地中繼器的擴(kuò)展頻譜多址通信系統(tǒng)(SPREAD SPECTRUM MULTIPLEACCESS COMMUNICAT1N SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)” 的第4,901,307號美國專利及標(biāo)題為“用于在CDMA蜂窩式手機(jī)系統(tǒng)中產(chǎn)生波形的系統(tǒng)及方法(SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSETSYSTEM) ”的第5,103,459號美國專利中,其兩者均受讓予所請求標(biāo)的物的受讓人。
[0006]CDMA系統(tǒng)通常經(jīng)設(shè)計(jì)以符合一個(gè)或一個(gè)以上標(biāo)準(zhǔn)。一種所述第一代標(biāo)準(zhǔn)是“用于雙模式寬帶擴(kuò)展頻譜蜂窩式系統(tǒng)的TIA/EIA/IS-95終端-基站兼容性標(biāo)準(zhǔn)”,所述標(biāo)準(zhǔn)在下文中稱作IS-95標(biāo)準(zhǔn)。所述IS-95 CDMA系統(tǒng)能夠傳輸話音數(shù)據(jù)及包數(shù)據(jù)。可更高效地傳輸包數(shù)據(jù)的新一代標(biāo)準(zhǔn)是由名稱為“第三代合作伙伴計(jì)劃”(3GPP)的聯(lián)盟提供的且體現(xiàn)于可公開獲得的一組文件中,所述組文件包括第3G TS 25.21U3G TS 25.212、3G TS 25.213及3G TS 25.214號文件。3GPP標(biāo)準(zhǔn)在下文中稱作W-CDMA標(biāo)準(zhǔn)。
[0007]因?yàn)镈SP既定用于實(shí)時(shí)系統(tǒng)中的操作,因此高效、精巧及可預(yù)測的中斷處置對于DSP至關(guān)重要。上下文切換應(yīng)非常快速。像浮點(diǎn)族等高級DSP支持完整組替代寄存器,從而允許上下文的單循環(huán)切換以支持中斷處置。高級DSP除內(nèi)部中斷之外還可支持至少四個(gè)或更多個(gè)獨(dú)立的外部中斷。此類裝置中的中斷延遲可保持為僅幾個(gè)循環(huán)且必須可預(yù)測。中斷還應(yīng)可嵌套且可優(yōu)先化。此外,應(yīng)容易地實(shí)時(shí)啟用及停用特定中斷。
[0008]在習(xí)用DSP的情況下,中斷處置在每一處理器的基礎(chǔ)上發(fā)生,或在多線程處理器的情況下,其在每一線程的基礎(chǔ)上發(fā)生。在某些多線程DSP中,每一處理器及每一線程中斷處置兩者均可能存在。遺憾的是,在每一處理器或每一線程處理的情況下,硬件設(shè)計(jì)及編程上的不必要及不需要復(fù)雜性產(chǎn)生。在每一處理器及每一線程處置兩者的情況下,甚至可能出現(xiàn)更大的復(fù)雜性。
[0009]因此,需要一種用于在多線程DSP中處理中斷的方法及系統(tǒng),其避免每一處理器及每一線程硬件設(shè)計(jì)及軟件編程復(fù)雜性。
【發(fā)明內(nèi)容】
[0010]本發(fā)明揭示為數(shù)字信號處理器提供共享中斷控制方法及系統(tǒng)的技術(shù),所述技術(shù)改善數(shù)字信號處理器的操作及對數(shù)字信號處理器指令的高效使用兩者,以處理個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理、無線手持機(jī)及類似電子裝置的越來越強(qiáng)健的軟件應(yīng)用程序,以及提高相關(guān)聯(lián)的數(shù)字處理器速度及服務(wù)質(zhì)量。
[0011]根據(jù)所揭示標(biāo)的物的一個(gè)方面,提供一種用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng),所述數(shù)字信號處理器在中斷寄存器中接收在統(tǒng)計(jì)上不確定的中斷類型的多個(gè)中斷。所述方法及系統(tǒng)使多個(gè)處理線程與所述中斷寄存器相關(guān)聯(lián)以從所述中斷寄存器接收所述中斷。然后,屏蔽所述多個(gè)處理線程,以在所述線程中的每一者內(nèi)僅接收所述多個(gè)中斷中的一個(gè)或一個(gè)以上預(yù)定類型的中斷,從而根據(jù)與特定線程相關(guān)聯(lián)的屏蔽在每一線程的基礎(chǔ)上控制對所述多個(gè)中斷的處理。
[0012]根據(jù)所揭示標(biāo)的物的另一方面,提供一種用于在服務(wù)多個(gè)線程的數(shù)字信號處理器中處理外部中斷的方法及系統(tǒng),所述方法及系統(tǒng)包括使中斷控制器與多個(gè)處理器管線線程相關(guān)聯(lián)。所述過程進(jìn)一步在所述中斷控制器中接收第一外部中斷,所述第一外部中斷是任意類型。然后,所述過程使第一屏蔽與所述第一外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第一外部中斷。然后,所揭示的標(biāo)的物將所述第一外部中斷引導(dǎo)到能夠接受所述第一外部中斷及所述第一屏蔽的第一可用處理器管線線程。然后,所述方法及系統(tǒng)允許在所述中斷控制器中接收第二外部中斷。所述第二外部中斷可以是任意類型且使第二屏蔽與所述第二外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第二外部中斷。將所述第二外部中斷引導(dǎo)到能夠接受所述第二外部中斷及所述第二屏蔽的下一可用處理器管線線程。此過程可重復(fù)且所揭示的系統(tǒng)準(zhǔn)許在外部中斷串流到達(dá)所述中斷控制器供所述數(shù)字信號處理器進(jìn)行處理時(shí)重復(fù)所述接收步驟、所述關(guān)聯(lián)步驟及所述引導(dǎo)步驟,從而向所述組的所述多個(gè)處理器管線線程中的每一者提供呈分布流形式的任意外部中斷及關(guān)聯(lián)屏蔽的流。
[0013]從本文所提供的說明將明了所揭示標(biāo)的物的這些及其它優(yōu)點(diǎn)以及額外新穎特征。此
【發(fā)明內(nèi)容】
的目的并非是對所請求標(biāo)的物的全面說明,而是提供對本標(biāo)的物的功能性的簡短概述。在檢查以下圖式及詳細(xì)說明之后,所屬領(lǐng)域的技術(shù)人員將明了本文所提供的其它系統(tǒng)、方法、特征及優(yōu)點(diǎn)。所有所述額外系統(tǒng)、方法、特征及優(yōu)點(diǎn)既定包括在此說明中,且在隨附權(quán)利要求書的范圍內(nèi)。
【專利附圖】
【附圖說明】
[0014]結(jié)合圖式閱讀下文所述的詳細(xì)說明,將更加明了所揭示標(biāo)的物的特征、性質(zhì)及優(yōu)點(diǎn),所有圖式中相同的參考字符對應(yīng)地進(jìn)行標(biāo)識,圖式中:
[0015]圖1是可實(shí)施本實(shí)施例的通信系統(tǒng)的簡化方塊圖;
[0016]圖2圖解說明用于實(shí)施本實(shí)施例的教示的DSP架構(gòu);
[0017]圖3提供數(shù)字信號處理器的一個(gè)實(shí)施例的架構(gòu)方塊圖,所述數(shù)字信號處理器提供所揭示標(biāo)的物的技術(shù)優(yōu)點(diǎn);
[0018]圖4提供本揭示內(nèi)容的事件處置的功能性方塊圖;
[0019]圖5顯不用于所揭不標(biāo)的物的屏蔽寄存器格式;
[0020]圖6提供用于所揭示標(biāo)的物的待定中斷寄存器格式;
[0021]圖7提供圖解說明所揭示標(biāo)的物的某些新穎功能的簡化流程圖。
【具體實(shí)施方式】
[0022]實(shí)施例
[0023]所揭示的標(biāo)的物是用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng),所述方法及系統(tǒng)實(shí)際上應(yīng)用于涉及本文所呈現(xiàn)益處可能對其有利的任何類型的多線程處理的數(shù)字信號處理應(yīng)用。一種所述應(yīng)用出現(xiàn)在電信中,且特定來說出現(xiàn)在采用一個(gè)或一個(gè)以上數(shù)字信號處理電路的無線手持機(jī)中。出于解釋此種無線手持機(jī)如何使用的目的,圖1提供通信系統(tǒng)10的簡化方塊圖,所述系統(tǒng)可實(shí)施所揭示中斷處理方法及系統(tǒng)的所提供實(shí)施例。在傳輸器單元12處,通常以塊為單位將數(shù)據(jù)從數(shù)據(jù)源14發(fā)送到傳輸(TX)數(shù)據(jù)處理器16,所述傳輸數(shù)據(jù)處理器將所述數(shù)據(jù)格式化、編碼及處理以產(chǎn)生一個(gè)或一個(gè)以上模擬信號。然后,將模擬信號提供到傳輸器(TMTR) 18,所述傳輸器將所述基帶信號調(diào)制、濾波、放大及上變頻以產(chǎn)生經(jīng)調(diào)制的信號。然后,經(jīng)由天線20將所述經(jīng)調(diào)制的信號傳輸?shù)揭粋€(gè)或一個(gè)以上接收器單
J L.ο
[0024]在接收器單元22處,所傳輸?shù)男盘栍商炀€24接收并提供到接收器(RCVR) 26。在接收器26內(nèi),將所述所接收的信號放大、濾波、下變頻、解調(diào)制及數(shù)字化以產(chǎn)生同相(I)及(Q)樣本。然后,所述樣本由接收(RX)數(shù)據(jù)處理器28解碼及處理以恢復(fù)所傳輸?shù)臄?shù)據(jù)。接收器單元22處的解碼及處理是以與傳輸器單元12處實(shí)施的編碼及處理兼容的方式實(shí)施的。然后,將已恢復(fù)的數(shù)據(jù)提供到數(shù)據(jù)匯30。
[0025]上述信號處理支持話音、視頻、包數(shù)據(jù)的傳輸、消息傳送及其它類型的單向通信。雙向通信系統(tǒng)支持雙向數(shù)據(jù)傳輸。然而,為簡明起見圖1中而未顯示其它方向的信號處理。通信系統(tǒng)10可以是碼分多址(CDMA)系統(tǒng)、時(shí)分多址(TDMA)通信系統(tǒng)(例如,GSM系統(tǒng))、頻分多址(FDMA)通信系統(tǒng)或支持用戶之間通過陸地鏈路進(jìn)行話音及數(shù)據(jù)通信的其它多址通信系統(tǒng)。在具體實(shí)施例中,通信系統(tǒng)10是符合W-CDMA標(biāo)準(zhǔn)的CDMA系統(tǒng)。
[0026]圖2圖解說明可充當(dāng)圖1的傳輸數(shù)據(jù)處理器16及接收數(shù)據(jù)處理器28的DSP 40架構(gòu)。再次,強(qiáng)調(diào)DSP 40僅表示可高效地使用本文所提供教示及概念的大量可行數(shù)字信號處理器實(shí)施例中的一個(gè)實(shí)施例。因此,在DSP 40中,線程TO:T5(參考編號42至52)含有來自不同線程的指令集。電路54表示指令存取機(jī)構(gòu)且用于提取線程TO:Τ5的指令。電路54的指令排入指令隊(duì)列56中。指令隊(duì)列56中的指令準(zhǔn)備發(fā)布到處理器管線66中(見下文)。發(fā)布邏輯電路58可從指令隊(duì)列56中選擇單個(gè)線程,例如線程Τ0。讀取所選線程的寄存器堆60并將所讀取的數(shù)據(jù)發(fā)送到槽O至槽3的執(zhí)行數(shù)據(jù)路徑62。在此實(shí)例中,槽O至槽3提供用于本實(shí)施例中的包分組組合。
[0027]來自執(zhí)行數(shù)據(jù)路徑62的輸出去往寄存器堆寫入電路64,還經(jīng)配置以適應(yīng)個(gè)別線程TO:T5,以返回DSP 40的操作的結(jié)果。因此,從電路54開始且在到達(dá)寄存器堆寫入電路64之前根據(jù)各個(gè)線程來劃分的數(shù)據(jù)路徑形成處理管線66。
[0028]本實(shí)施例可采用使用具有多達(dá)六個(gè)線程TO至Τ5的單個(gè)微處理器的異構(gòu)元素處理器(HEP)系統(tǒng)的混合。處理器管線66具有六個(gè)級,以匹配從電路54將數(shù)據(jù)項(xiàng)目提取到寄存器60及64所需要的最小數(shù)量的處理器循環(huán)。DSP 40在處理器管線66內(nèi)同時(shí)執(zhí)行不同線程Τ0:Τ5的指令。也就是說,DSP 40提供6個(gè)獨(dú)立的程序計(jì)數(shù)器、用于區(qū)別處理器管線66內(nèi)線程TO:Τ5的指令的內(nèi)部標(biāo)記機(jī)構(gòu)及觸發(fā)線程切換的機(jī)構(gòu)。線程切換開銷從零到僅幾個(gè)循環(huán)而變化。
[0029]因此,DSP 40提供設(shè)計(jì)用于在各種各樣的信號、圖像及視頻處理應(yīng)用上具有高性能及低功率的通用數(shù)字信號處理器。圖3提供DSP 40架構(gòu)的簡要概述,其包括所揭示標(biāo)的物的一個(gè)表現(xiàn)形式的相關(guān)聯(lián)指令集架構(gòu)的某些方面。DSP 40架構(gòu)的實(shí)施方案支持交錯(cuò)多線程(IMT)。在此執(zhí)行模型中,硬件通過交錯(cuò)來自管線中的不同線程的指令來支持多個(gè)硬件線程TO:Τ5的同時(shí)執(zhí)行。此特性允許DSP 40包括主動(dòng)的時(shí)鐘頻率,同時(shí)仍維持高的核心及存儲器利用率。IMT在不需要昂貴的補(bǔ)償機(jī)構(gòu)(例如,無序執(zhí)行、廣泛轉(zhuǎn)發(fā)網(wǎng)絡(luò)等)的前提下提供高通量。此外,DSP 40可包括MT的變化形式,例如Μ.Ahmed等人在標(biāo)題為“可變交錯(cuò)的多線程處理器方法及系統(tǒng)(Variable Interleaved Multithreaded Processor Methodand System) ”及“用于在多線程處理器中進(jìn)行可變線程分配及切換的方法及系統(tǒng)(Methodand System for Variable Thread Allocat1n and Switchine in a MultithreadedProcessor) ”的共同轉(zhuǎn)讓的美國專利申請案中揭示的那些變化形式及新穎方法。
[0030]特定來說,圖3提供單個(gè)線程的編程模型的一個(gè)實(shí)施例的架構(gòu)方塊圖,其可采用所揭示標(biāo)的物的教示,包括用于數(shù)字信號處理器的共享中斷控制方法及系統(tǒng)。方塊圖70描繪從AXI總線74接收指令的專用指令高速緩存器72,所述指令包括到達(dá)線程TO:T5的定序器76、用戶控制寄存器78及管理控制寄存器80的混雜16位及32位指令。定序器76向S-管線單元82、M-管線單元84、Ld-管線86及Ld/St_管線單元88提供混合雙向超標(biāo)量體系結(jié)構(gòu)指令及四向VLIW指令。AXI總線74還通過共享數(shù)據(jù)高速緩存器90將LD/ST指令傳遞到線程TO:T5o借助外部DMA主裝置96,共享數(shù)據(jù)TCM 98傳遞LD/ST指令,所述LD/ST指令進(jìn)一步流到線程TO:T5o MSM專有控制器102從AHB外圍設(shè)備總線100與TO:Τ5傳遞中斷引腳,包括中斷控制器指令、調(diào)試指令及定時(shí)指令。全局控制寄存器104與線程TO:Τ5傳遞控制寄存器指令。
[0031]圖4提供本揭示內(nèi)容的事件處置的功能性方塊圖。在事件處理程序架構(gòu)110中,MSM專有塊112包括中斷控制器塊114、調(diào)試及性能監(jiān)視器塊116及定時(shí)器塊118。MSM專有塊110向全局控制寄存器122提供十六(16)個(gè)通用中斷120且向事件處置寄存器126提供不可屏蔽的中斷(匪I) 124。全局控制寄存器122包括IPEND寄存器128、向量基寄存器130、模式控制寄存器132。16個(gè)中斷類型129可從IPEND寄存器128去往事件處置寄存器126。向量基寄存器130可向事件處置寄存器126發(fā)送20個(gè)中斷131,而模式控制寄存器132可向事件處置寄存器126提供1x6個(gè)重置中斷133。
[0032]事件處置寄存器126包括中斷屏蔽(MASK)寄存器134,其向過程事件寄存器136提供屏蔽數(shù)據(jù)。過程事件寄存器136還接收內(nèi)部例外請求,包括TLB未命中、錯(cuò)誤及陷阱指令請求。來自全局控制寄存器122的通信與通用指令寄存器(R0-R31)90及管理控制寄存器80發(fā)生。
[0033]因此,使用所揭示標(biāo)的物的中斷處理包括三種類型的外部指令,其包括軟重置中斷133、通用可屏蔽中斷120、129及131以及不可屏蔽中斷124。有16個(gè)可屏蔽通用中斷在所有所述線程之間共享。當(dāng)所述16個(gè)通用中斷120中的一者升起時(shí),設(shè)定全局IPEND寄存器128中的對應(yīng)位以表明此中斷待定。線程通過將所述全局IPEND寄存器與所述本地IMASK寄存器邏輯AND來確定其是否能夠處理中斷。
[0034]如果線程TO:T5(a)已使中斷啟用(IE = I)且(b)未在例外處理程序中(EX =0),且(c) (IPEND & IMASK)的結(jié)果為非零,那么所述線程可處理中斷。然后,所述線程將有資格處理所述中斷。在一個(gè)以上中斷待定的情況下,所述優(yōu)先級為中斷O (最高優(yōu)先級)到中斷15 (最低優(yōu)先級)。當(dāng)全局中斷到來且在IPEND中標(biāo)記時(shí),所述六個(gè)硬件線程中的任一者可潛在地服務(wù)所述中斷。所述有資格進(jìn)行所述中斷的硬件線程組中的僅一者將處理所述中斷。
[0035]所揭示標(biāo)的物的重要方面受益于所述有資格線程及可屏蔽中斷的隨機(jī)性。S卩,無法確定所述有資格線程中的哪一者將服務(wù)所述中斷,因?yàn)樗鲞^程及任何既定類型的中斷的到達(dá)是隨機(jī)的。所述硬件將從所述有資格組選擇線程,所述線程將被中斷,且所述中斷隨后將被從IPEND寄存器128中清除,使得將無其它線程服務(wù)所述中斷。
[0036]所述軟件可通過適當(dāng)?shù)腎MASK寄存器134編程將特定中斷引導(dǎo)到特定的硬件線程。舉例來說,如果僅硬件線程Tl:T5具有用于中斷6組的MASK位,那么僅硬件線程Tl:T5可接收所述中斷。當(dāng)中斷由線程接受時(shí),所述機(jī)器將首先清除IPEND寄存器128中的適當(dāng)位。然后,將針對所選擇的線程停用中斷,將設(shè)定所述例外位以表明所述線程現(xiàn)在處于管理模式,SSR中的原因字段將填充有中斷編號,且所述機(jī)器將跳到所述適當(dāng)?shù)闹袛喾?wù)例行程序。
[0037]圖5的一個(gè)實(shí)施例顯示用于所揭示標(biāo)的物的屏蔽寄存器格式140,其包括用于含有所述特定屏蔽的IMASK位O到15。可為本實(shí)施例保留位16到31,同時(shí)準(zhǔn)許所述建立。因此,屏蔽寄存器140含有所述屏蔽的16個(gè)位的讀取/寫入字段142,從而允許軟件單獨(dú)地將所述16個(gè)外部中斷120中的每一者從中斷控制器114屏蔽掉。如果設(shè)定屏蔽字段142中的特定位,那么所述16個(gè)外部中斷120的對應(yīng)中斷啟用且將被此線程接受。另一選擇為,如果所述位被清除,那么所述對應(yīng)中斷將不被接受。
[0038]圖6提供所揭示標(biāo)的物的一個(gè)實(shí)施例的IPEND寄存器格式150的實(shí)例。特定來說,IPEND寄存器格式150包括所保留的字段152 (其可在稍后的版本中加以填充)及IPEND寄存器位字段154(其含有通用中斷類型位)。在IPEND寄存器位字段154中,位O采取指示最高優(yōu)先級中斷類型的I值。最低優(yōu)先級中斷類型可由采取值I的位15指示??纱嬖谟糜谥甘静煌ㄓ弥袛囝愋偷钠渌绞剑兴龇绞脚c所主張標(biāo)的物的教示相一致。
[0039]圖7提供用于圖解說明所揭示標(biāo)的物在確定特定線程TO:T5可處理既定中斷類型的某些新穎功能的流程圖160。流程圖160以步驟162開始,在此點(diǎn)處中斷控制器I 14向通用控制寄存器122的IPEND寄存器128提供至少一子組的16個(gè)通用中斷類型120。在步驟164處,IMASK寄存器134可存儲用于與DSP 40的各個(gè)線程TO:Τ5相關(guān)聯(lián)的一個(gè)或一個(gè)以上屏蔽。因此,在IPEND含有一個(gè)或一個(gè)以上通用中斷類型120且IMASK寄存器134潛在地存儲對應(yīng)的屏蔽的情況下,流程圖160在詢問166處首先確定是否針對特定的線程啟用線程中斷處理。然后,在詢問168處,所述過程確定所述特定線程并非作為例外處理程序操作。在詢問170處,在進(jìn)行IPEND寄存器128與IMASK寄存器134的邏輯AND之后,所述結(jié)果是否為非零的測試發(fā)生,從而確定IPEND寄存器128與IMASK寄存器134內(nèi)容之間的匹配。如果非零結(jié)果發(fā)生,那么所述流程繼續(xù)到步驟172,在此處所述特定線程處理對應(yīng)于所述特定屏蔽的中斷。如果詢問166、168或170中的任一者的測試失敗,那么處理去往步驟174,在此處過程流程160確定所述線程不能處理正被檢查的中斷。
[0040]用于實(shí)施所揭示標(biāo)的物的共享中斷處置功能的一個(gè)實(shí)施例的實(shí)例性偽碼可如本文所提供。用于服務(wù)中斷的硬件行為圖解說明于以下偽碼中:
[0041]//start can be any random#0_5
[0042]//loop over all threads
[0043]for (thread = NEXT (start) ;thread ! = start ;thread = NEXT (thread) ;) {
[0044]//loop over all the interrupts in pr1rity order
[0045]for (IntNum = 0 ; IntNum < 16 ;IntNum++) {
[0046]//if the thread is qualified for this interrupt
[0047]if ((IPEND[IntNum]&IMASK[thread][IntNum])&& IE [thread])
[0048]{
[0049]//take the interrupt
[0050]IPEND[IntNum] = 0 ;//the Interrupt is serviced
[0051]EX[Thread] = I ;//put thread in supervisor mode
[0052]ELR[Thread] = PC ;//save return PC
[0053]SSR[Thread].CAUSE = IntNum ;
[0054]PC [Thread] = (EVB) | ((IntNum+16) < < 2) //jump to ISR
[0055]return ;//done for this cycle
[0056]}
[0057]}
[0058]}
[0059]本實(shí)施例可能不支持DSP 40硬件中的中斷的自動(dòng)嵌套。然而,可通過在接收中斷之后首先將所有相關(guān)信息保存到管理堆棧而在軟件控制下實(shí)施嵌套。然后,所述過程可重新啟用中斷,實(shí)施所述相關(guān)ISR任務(wù),然后停用中斷,回復(fù)到上下文,且返回。所述過程的實(shí)例可用于以下:
[0060]ISR_w_nesting:
[0061]CRSffAP(R29, SGPR0)//swap user stack pointer and supervisor stack
[0062]ALLOCFRAME (#32) //saves FP,LR,sets FP,adds to SP
[0063]MEMD(SP+#0) = Rl:0//save some user registers on supervisor stack
[0064]RO = ELR
[0065]Rl = SSR
[0066]MEMD(SP+#8) = Rl:0//save SSR:ELR on supervisor stack
[0067]CRSWAP(P29? SGPRO)//swap back user and supervisor stack pointers
[0068]//at this point all context is saved on the supervisor stack
[0069]//and SGPRO is the adjusted supervisor stack pointer.
[0070]RO = #0x4 //100b
[0071]Rl = insert (rl,#3,#16) //set UM = 0,EX = 0,IE = I
[0072]SSR = Rl//now in supervisor mode, interrupts enabled
[0073]//do ISR task//....
[0074]//now,we want to restore and return
[0075]DI//disable interrupts
[0076]CRSWAP(R29,SGPRO)//swap user stack pointer and supervisor stack
[0077]Rl:0 = MEMD (SP+#8)//restore SSR:ELR
[0078]ELR = RO
[0079]SSR = Rl
[0080]Rl:0 = MEMD (SP+#0) // restore user Rl:0
[0081]DEALLOCFRAME
[0082]CRSWAP(R29,SGPRO)//swap back user and supervisor stack pointers
[0083]RTE //return from exeept1n,sets EX = 0
[0084]軟件中斷指令(SWI)致使規(guī)定的中斷被投寄于IPEND寄存器128中。此指令的目的是允許線程彼此中斷。當(dāng)一個(gè)線程執(zhí)行SWI指令時(shí),其通過正常的外部中斷機(jī)構(gòu)處理。將響應(yīng)于所述SWI指令而中斷來自所述有資格線程組的隨機(jī)硬件線程。此指令可用于構(gòu)建軟件抽象,例如分叉O (forkO)、合并O (joinO)等。
[0085]所述軟重置中斷是不可屏蔽的且在每一線程的基礎(chǔ)上操作。所述六個(gè)線程中的每一者均存在一個(gè)重置中斷輸入。所述子系統(tǒng)中斷控制器可單獨(dú)地重置線程。用于將軟重置中斷觸發(fā)到特定線程的準(zhǔn)確方法是中斷控制器專有的,然而,一種導(dǎo)致軟重置例外的方式是調(diào)用從關(guān)閉(OFF)模式到管理模式上的轉(zhuǎn)換。在接收到所述不可屏蔽的軟重置中斷之后,所述線程將清理所述SSR寄存器,且跳到所述重置向量。
[0086]在不可屏蔽中斷(匪I) 124的情況下,事件處置電路110可隨機(jī)選擇所述六個(gè)線程TO:T5中的一者且將匪I 124輸送到所述線程。然后,所選擇的線程將實(shí)施以下動(dòng)作:
[0087]ELR = PC//save PC in the except1n link register
[0088]SSR[EX] = l//set except1n bit in SSR
[0089]SSR[CAUSE] = ^MIzVset reason to NMI
[0090]PC = (EVB) I (I << 2)
[0091]注意不應(yīng)將任一匪I 124視為可恢復(fù)的中斷。如果線程TO:T5在事件處理程序內(nèi)部且匪I 124發(fā)生,那么ELR及CAUSE寄存器將被重寫,從而不可能返回到所述原始中斷或?qū)е吕獾拇a。
[0092]本文所述的處理特征及功能可以各種方式實(shí)施。舉例來說,不僅DSP 40可實(shí)施上述操作,而且本實(shí)施例可實(shí)施于專用集成電路(ASIC)、微控制器、微處理器或設(shè)計(jì)用于實(shí)施本文所述功能的其它電子電路中。因此,提供對優(yōu)選實(shí)施例的以上說明旨在使所屬【技術(shù)領(lǐng)域】的技術(shù)人員能夠制造或使用所請求的標(biāo)的物。所屬【技術(shù)領(lǐng)域】的技術(shù)人員將易于了明了對這些實(shí)施例的各種修改,且本文所界定的一般原理可在不使用創(chuàng)新能力的情況下適用于其它實(shí)施例。因此,本文并非打算將所請求標(biāo)的物限定為本文顯示的實(shí)施例,而是將賦予其與本文所揭示的原理及新穎特征相一致的最寬廣范圍。
【權(quán)利要求】
1.一種用于處理多線程處理器中出現(xiàn)的中斷的方法,其包含以下步驟: 在中斷寄存器中接收多個(gè)中斷,所述多個(gè)中斷中的每一者都對應(yīng)于在統(tǒng)計(jì)上不確定的中斷類型的外部中斷; 使多個(gè)處理線程與所述中斷寄存器相關(guān)聯(lián)以從所述中斷寄存器接收所述多個(gè)中斷的至少一者; 針對所述多個(gè)處理線程中的每一者,如果所述線程已啟用中斷處理,且所述處理線程不是經(jīng)配置以處理內(nèi)部異常的異常處理程序,則確定所述處理線程是否能夠處理所述多個(gè)中斷中的一者; 當(dāng)所述處理線程能夠處理所述多個(gè)中斷中的一者時(shí),屏蔽至少一子組的所述多個(gè)處理線程以在所述子組內(nèi)的所述線程中的每一者內(nèi)僅接收所述多個(gè)中斷中的一個(gè)或一個(gè)以上預(yù)定類型的中斷, 其中在上述屏蔽步驟中確定所接收的所述多個(gè)中斷的在統(tǒng)計(jì)上不確定的中斷類型,從而根據(jù)與特定線程相關(guān)聯(lián)的所述屏蔽在每一線程的基礎(chǔ)上控制對所述多個(gè)中斷的所述處理。
2.如權(quán)利要求1所述的方法,其進(jìn)一步包含使用從一可編程組屏蔽中選出的對應(yīng)于一預(yù)定組中斷類型的屏蔽來屏蔽所述至少一子組所述多個(gè)處理線程的步驟。
3.如權(quán)利要求1所述的方法,其進(jìn)一步包含使用所述中斷寄存器內(nèi)的所述中斷與含有屏蔽且與線程相關(guān)聯(lián)的屏蔽寄存器的內(nèi)容的邏輯八冊來確定所述中斷對應(yīng)于所述屏蔽的步驟。
4.如權(quán)利要求1所述的方法,其進(jìn)一步包含在關(guān)聯(lián)的中斷寄存器含有多個(gè)所述屏蔽的情況下,針對所述關(guān)聯(lián)的中斷寄存器,確定處理與所述處理線程中的一者相關(guān)聯(lián)的屏蔽的優(yōu)先級的步驟。
5.如權(quán)利要求1所述的方法,其進(jìn)一步包含在線程處理所述中斷中的所接收一者的情況下將所述中斷中的所述一者從所述中斷寄存器中清除的步驟。
6.如權(quán)利要求5所述的方法,其進(jìn)一步包含在所述中斷的所述處理期間停用處理所述中斷中的所述一者的所述線程處理的步驟。
7.如權(quán)利要求1所述的方法,其進(jìn)一步包含使用多個(gè)軟件指令嵌套所述多個(gè)中斷的所述處理的步驟。
8.如權(quán)利要求1所述的方法,其進(jìn)一步包含隨機(jī)接收所述中斷中具有不可屏蔽性質(zhì)的任一者以在所述多個(gè)線程中的任一者中進(jìn)行處理的步驟。
9.一種用于處理在多線程處理器中出現(xiàn)的中斷的系統(tǒng),所述系統(tǒng)包含: 用于在中斷寄存器中接收多個(gè)中斷,所述多個(gè)中斷中的每一者都對應(yīng)于在統(tǒng)計(jì)上不確定的中斷類型的外部中斷的裝置; 用于使多個(gè)處理線程與中斷寄存器相關(guān)聯(lián),以從所述中斷寄存器接收所述多個(gè)中斷中的至少一者的裝置; 用于針對所述多個(gè)處理線程中的每一者,如果所述線程已啟用中斷處理,且所述處理線程不是經(jīng)配置以處理內(nèi)部異常的異常處理程序,則確定所述處理線程是否能夠處理所述多個(gè)中斷中的一者的裝置;及 用于當(dāng)所述處理線程能夠處理所述多個(gè)中斷中的一者時(shí),屏蔽至少一子組的所述多個(gè)處理線程以在所述子組內(nèi)的所述線程中的每一者內(nèi)僅接收所述多個(gè)中斷中的一個(gè)或一個(gè)以上預(yù)定類型的中斷, 其中上述用于屏蔽的裝置進(jìn)一步包括用于確定接收的多個(gè)中斷的在統(tǒng)計(jì)上不確定的中斷類型,從而根據(jù)與特定線程相關(guān)聯(lián)的所述屏蔽在每一線程的基礎(chǔ)上控制對所述多個(gè)中斷的所述處理的裝置。
10.如權(quán)利要求9所述的系統(tǒng),其中所述用于屏蔽的裝置進(jìn)一步用于使用從一可編程組屏蔽中選出的對應(yīng)于一預(yù)定組中斷類型的屏蔽來屏蔽所述至少一子組的所述多個(gè)處理線程。
11.如權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括用于使用所述中斷寄存器內(nèi)的所述中斷與含有屏蔽且與線程相關(guān)聯(lián)的屏蔽寄存器的所述內(nèi)容的邏輯八冊來確定所述中斷對應(yīng)于所述屏蔽的裝置。
12.如權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括用于在關(guān)聯(lián)的中斷寄存器含有多個(gè)所述屏蔽的情況下,確定處理所述處理線程中的一者相關(guān)聯(lián)的屏蔽的優(yōu)先級的裝置。
13.如權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括用于在線程處理所述中斷中的所接收一者的情況下將所述中斷中的所述一者從所述中斷寄存器清除的裝置。
14.如權(quán)利要求13所述的系統(tǒng),進(jìn)一步包括用于在所述中斷的所述處理期間,停用處理所述中斷中的所述一者的所述線程的裝置。
15.如權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括用于嵌套所述多個(gè)中斷的所述處理的裝置。
16.如權(quán)利要求9所述的系統(tǒng),進(jìn)一步包括用于隨機(jī)接收所述中斷中具有不可屏蔽性質(zhì)的任一者以在所述多個(gè)線程中的任一者中進(jìn)行處理的裝置。
17.—種操作數(shù)字信號處理器系統(tǒng)以支持個(gè)人電子裝置的方法,所述方法包含在多線程處理中處理一預(yù)定組的中斷類型的步驟,所述方法包括: 使中斷控制器與多個(gè)處理器管線線程相關(guān)聯(lián); 在所述中斷控制器中接收第一外部中斷,所述第一外部中斷是任意類型; 使第一屏蔽與所述第一外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第一外部中斷; 確定第一可用處理器管線線程是否已啟用中斷處理,以及所述第一可用處理器管線線程是否不是經(jīng)配置以處理內(nèi)部異常的異常處理程序,如果所述第一可用處理器管線線程已啟用中斷處理且不是異常處理程序,則將所述第一外部中斷引導(dǎo)到能夠接受所述第一外部中斷及所述第一屏蔽的所述第一可用處理器管線線程; 在所述中斷控制器中接收第二外部中斷,所述第二外部中斷是任意類型; 使第二屏蔽與所述第二外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第二外部中斷; 確定下一可用處理器管線線程是否已啟用中斷處理,且所述下一可用處理器管線線程是否不是經(jīng)配置以處理內(nèi)部異常的異常處理程序,如果所述下一可用處理器管線線程已啟用中斷處理且不是異常處理程序,則將所述第二外部中斷引導(dǎo)到能夠接受所述第二外部中斷及所述第二屏蔽的所述下一可用處理器管線線程; 在外部中斷串流到達(dá)所述中斷控制器供所述數(shù)字信號處理器進(jìn)行處理時(shí)重復(fù)所述接收步驟、所述關(guān)聯(lián)步驟及所述引導(dǎo)步驟,從而向所述組的所述多個(gè)處理器管線線程中的每一者提供呈分布流形式的任意外部中斷及關(guān)聯(lián)屏蔽的流。
18.如權(quán)利要求17所述的方法,其進(jìn)一步包含使用從一可編程組屏蔽選出的對應(yīng)于一預(yù)定組中斷類型的屏蔽來屏蔽一子組所述多個(gè)處理器線程。
19.如權(quán)利要求17所述的方法,其進(jìn)一步包含使用所述中斷寄存器內(nèi)的所述中斷與含有屏蔽且與線程相關(guān)聯(lián)的屏蔽寄存器的所述內(nèi)容的邏輯八冊來確定所述中斷對應(yīng)于所述屏蔽。
20.如權(quán)利要求17所述的方法,其進(jìn)一步包含在所述中斷寄存器含有多個(gè)所述屏蔽的情況下確定處理所述中斷寄存器內(nèi)的所述屏蔽中的一者的優(yōu)先級。
21.如權(quán)利要求17所述的方法,其進(jìn)一步包含在線程處理所述中斷中的所接收一者的情況下將所述中斷中的所述一者從所述中斷寄存器清除。
22.如權(quán)利要求17所述的方法,其進(jìn)一步包含在所述中斷的所述處理期間停用處理所述中斷中的所述一者的所述線程處理。
23.如權(quán)利要求17所述的方法,其進(jìn)一步包含使用多個(gè)軟件指令嵌套所述多個(gè)中斷的所述處理。
24.如權(quán)利要求23所述的方法,其進(jìn)一步包含隨機(jī)接收所述中斷中具有不可屏蔽性質(zhì)的任一者以在所述多個(gè)線程中的任一者中進(jìn)行處理。
25.—種操作數(shù)字信號處理器系統(tǒng)以支持個(gè)人電子裝置的設(shè)備,所述設(shè)備包含在多線程處理中處理一預(yù)定組的中斷類型的裝置,所述設(shè)備包括: 用于使中斷控制器與多個(gè)處理器管線線程相關(guān)聯(lián)的裝置; 用于在所述中斷控制器中接收第一外部中斷的裝置,所述第一外部中斷是任意類型; 用于使第一屏蔽與所述第一外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第一外部中斷的裝置; 用于確定第一可用處理器管線線程是否已啟用中斷處理,以及所述第一可用處理器管線線程是否不是經(jīng)配置以處理內(nèi)部異常的異常處理程序的裝置,如果所述第一可用處理器管線線程已啟用中斷處理且不是異常處理程序,用于將所述第一外部中斷引導(dǎo)到能夠接受所述第一外部中斷及所述第一屏蔽的所述第一可用處理器管線線程的裝置; 用于在所述中斷控制器中接收第二外部中斷的裝置,所述第二外部中斷是任意類型; 用于使第二屏蔽與所述第二外部中斷相關(guān)聯(lián)以啟用一組所述多個(gè)處理器管線線程來接受所述第二外部中斷的裝置; 用于確定下一可用處理器管線線程是否已啟用中斷處理,且所述下一可用處理器管線線程是否不是經(jīng)配置以處理內(nèi)部異常的異常處理程序的裝置,如果所述下一可用處理器管線線程已啟用中斷處理且不是異常處理程序,用于將所述第二外部中斷引導(dǎo)到能夠接受所述第二外部中斷及所述第二屏蔽的所述下一可用處理器管線線程的裝置; 用于在外部中斷串流到達(dá)所述中斷控制器供所述數(shù)字信號處理器進(jìn)行處理時(shí)重復(fù)用于接收的裝置、用于關(guān)聯(lián)的裝置及用于引導(dǎo)的裝置,從而向所述組的所述多個(gè)處理器管線線程中的每一者提供呈分布流形式的任意外部中斷及關(guān)聯(lián)屏蔽的流的裝置。
26.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于使用從一可編程組屏蔽選出的對應(yīng)于一預(yù)定組中斷類型的屏蔽來屏蔽一子組所述多個(gè)處理器線程的裝置。
27.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于使用所述中斷寄存器內(nèi)的所述中斷與含有屏蔽且與線程相關(guān)聯(lián)的屏蔽寄存器的所述內(nèi)容的邏輯AND來確定所述中斷對應(yīng)于所述屏蔽的裝置。
28.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于在所述中斷寄存器含有多個(gè)所述屏蔽的情況下確定處理所述中斷寄存器內(nèi)的所述屏蔽中的一者的優(yōu)先級的裝置。
29.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于在線程處理所述中斷中的所接收一者的情況下將所述中斷中的所述一者從所述中斷寄存器清除的裝置。
30.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于在所述中斷的所述處理期間停用處理所述中斷中的所述一者的所述線程處理的裝置。
31.如權(quán)利要求25所述的設(shè)備,其進(jìn)一步包含用于使用多個(gè)軟件指令嵌套所述多個(gè)中斷的所述處理的裝置。
32.如權(quán)利要求31所述的設(shè)備,其進(jìn)一步包含用于隨機(jī)接收所述中斷中具有不可屏蔽性質(zhì)的任一者以在所述多個(gè)線程中的任一者中進(jìn)行處理的裝置。
【文檔編號】G06F9/48GK104484159SQ201410720684
【公開日】2015年4月1日 申請日期:2006年10月18日 優(yōu)先權(quán)日:2005年10月18日
【發(fā)明者】盧西恩·科德雷斯庫, 威廉·C·安德森 申請人:高通股份有限公司