專利名稱:用于處理嵌套中斷的方法和設(shè)備的制作方法
堆棧式快照緩存器對嵌套中斷進(jìn)行處理標(biāo)題專利申請一種數(shù)據(jù)處理器、一個內(nèi)嵌了此類數(shù)據(jù)處理器的數(shù)據(jù)處理設(shè)備以及一種對處理嵌套中斷的數(shù)據(jù)處理器進(jìn)行操作的方法,其中所述處理器具有一個功能單元、一個寄存器堆、一個數(shù)據(jù)存儲器以及一個快照緩存器的數(shù)據(jù)處理器,在中斷處理過程中,該處理器將處理器狀態(tài)信息保存在快照緩存器中,當(dāng)出現(xiàn)后續(xù)中斷時,該處理器會在處理實際后續(xù)中斷的過程中將快照緩存器的內(nèi)容保存在一個具有多比特存取端口設(shè)備的數(shù)據(jù)存儲設(shè)備中。
背景技術(shù):
本發(fā)明涉及一種數(shù)據(jù)處理器,如權(quán)利要求1的前序部分所述,該處理器包括一個或多個功能單元、一個或多個寄存器堆、一個數(shù)據(jù)存儲器、以及一個允許在中斷狀況下將處理器狀態(tài)信息存入相應(yīng)緩存器部件的快照緩存器。為了能在VLIW及其他現(xiàn)有技術(shù)的處理器中實現(xiàn)高質(zhì)量的操作調(diào)度,較為理想的是,所有那些與編譯器有關(guān)的硬件特征對編譯器而言都是可視的。雖然這種信息的某個相關(guān)類別與各自關(guān)聯(lián)的操作的不同等待時間有關(guān),但是并不局限于此。高性能的流水線處理器使用的是大于1的等待時間值,并且由此提高了性能。此外,在操作過程中還應(yīng)該精確規(guī)定等待時間。這意味著不但要規(guī)定總的操作持續(xù)時間,而且還應(yīng)該了解特定操作通過占用特定硬件而使用操作對象、處理數(shù)據(jù)和產(chǎn)生結(jié)果的準(zhǔn)確時刻。由此可以實現(xiàn)寄存器壓力最小的高質(zhì)量調(diào)度。
上述調(diào)度方法稱為NUAL-EQ(Non Unit Assumed Latency WithEqual)語義學(xué)(沒有單元被假定同樣延遲)。對那些支持基于NUAL-EQ語義學(xué)的編譯時間調(diào)度的可中斷可編程處理器而言,它們總是需要從內(nèi)部處理器的流水線中獲取一個作為中斷處理調(diào)度的一部分而被恢復(fù)的精確快照。實際上,對這個沖洗處理器流水線狀態(tài)的更常用的過程而言,它隨后將會導(dǎo)致處理器實施錯誤的行為。正如在轉(zhuǎn)讓給目前受讓人并由本發(fā)明發(fā)明人共同發(fā)明的已公開PCT專利申請WO02/33570A2中所公開的那樣,此類快照將被保存在一個快照緩存器中,而所述申請則在此引入作為參考。
現(xiàn)在,發(fā)明人適時地認(rèn)識到了所謂的嵌套中斷(nestedinterrupt)相關(guān)性,其中在出現(xiàn)后續(xù)中斷的時候并沒有完成針對先前中斷狀態(tài)所進(jìn)行的處理。在這種情況下,可以保存和恢復(fù)多個同時快照。雖然原則上存在著解決這個問題的多種不同方法,但是其中一種費用最低的方法是,允許加載/存儲控制器單元對快照緩存器進(jìn)行讀寫,由此可以將開始處理當(dāng)前中斷時獲取的最新快照保存在一個后臺存儲器中,以便讓位于在出現(xiàn)新中斷時獲取的新的快照。
現(xiàn)在,已經(jīng)可以促使快照緩存器來執(zhí)行類似于寄存器堆的行為,從而在不必改變處理器指令集結(jié)構(gòu)(ISA)的情況下實現(xiàn)上述功能。然而,要想將快照緩存器添加到處理器的寄存器堆的地址空間中,則意味著在指令編碼中需要附加的寄存器尋址比特。由此,需要一種方法,以便通過仔細(xì)實施快照緩存器以及將其引入處理器架構(gòu)來減少甚至完全消除尋址開銷。
上述參考文獻(xiàn)并未解決這個非常特別的問題。在該文獻(xiàn)中,節(jié)約地址比特是通過使用串行掃描鏈來實現(xiàn)的。這些串行掃描鏈允許將快照數(shù)據(jù)移動到快照緩存器中或是從快照存儲器中移出,而不必對快照緩存器內(nèi)部的寄存器單元進(jìn)行精確尋址。然而,使用掃描鏈將會存在一個明顯的缺陷那就是必須通過使用很多布線而從所有不同的緩存觸發(fā)器中有效建立所述鏈。最終,在從快照緩存器中讀取數(shù)據(jù)和將數(shù)據(jù)寫入快照緩存器時,必要的移動將會導(dǎo)致不必要的交換活動,由此將會加大功耗。
發(fā)明人已經(jīng)認(rèn)識到了為可中斷數(shù)據(jù)處理器提供包含陰影觸發(fā)器的快照緩存器的有利特征。與上文引用的參考文獻(xiàn)相對應(yīng)的是,每一個陰影觸發(fā)器都具有處于其中一個資源之中的相應(yīng)的標(biāo)準(zhǔn)觸發(fā)器,在中斷處理前后,處理器硬件必須保存和恢復(fù)該資源的狀態(tài)。
現(xiàn)在,在這里還提出讓快照緩存器能像基于堆棧的寄存器堆那樣工作,其中所述寄存器堆可以由標(biāo)準(zhǔn)的加載/存儲單元讀取。由于快照緩存器的行為與堆棧相似,因此這其中不需要使用寄存器索引來對其進(jìn)行尋址。此外,與參考文獻(xiàn)解決方案中基于掃描鏈的情況一樣,在這里也不需要移動快照數(shù)據(jù)。取而代之的是,在快照緩存器內(nèi)部保持了一個棧指針。在為了將快照存入后臺存儲器而對快照緩存器進(jìn)行讀取的操作中,該操作會彈出棧頂并且遞減棧指針的值,由此所述指針將會指向先前的棧頂。而在為了重新加載來自后臺存儲器的快照而對快照緩存器進(jìn)行寫入的操作中,該操作會將新數(shù)據(jù)推送到堆棧上并且遞增棧指針,由此所述指針將會指向下一個棧頂。應(yīng)該指出的是,只有在終端實際嵌套的時候,才需要以這種方式來執(zhí)行快照緩存器的讀寫。否則,使用常規(guī)程序同樣可以滿足需要。
發(fā)明概述特別地,這樣一來,本發(fā)明的目的是提供一個旨在存儲除了最新快照之外的所有快照的輔助數(shù)據(jù)存儲等級,以便允許出現(xiàn)多個嵌套中斷。
這樣一來,依照本發(fā)明的一個方面,本發(fā)明是依照權(quán)利要求1的特征部分來表征的。
此外,本發(fā)明還涉及一種內(nèi)嵌了此類數(shù)據(jù)處理器的數(shù)據(jù)處理設(shè)備,并且涉及一種用于對依照上述方式處理嵌套中斷的數(shù)據(jù)處理器進(jìn)行操作的方法。而在從屬權(quán)利要求中則對本發(fā)明的其他那些的有利的方面進(jìn)行了闡述。
附圖簡述在下文中將參考優(yōu)選實施例的公開內(nèi)容、尤其是附圖來論述本發(fā)明的這些和其他方面和優(yōu)點,其中所述附圖顯示的是
圖1顯示的是一個具有基于堆棧的快照緩存器的VLIW處理器的框圖;圖2顯示的是一個基于堆棧的快照緩存器的框圖;圖3顯示的一個與標(biāo)準(zhǔn)的資源觸發(fā)器互連的陰影觸發(fā)器。
優(yōu)選實施例詳述圖1描述的是一個具有基于堆棧的快照緩存器的VLIW處理器的框圖實施例。在這個圖中,實際顯示的互連接數(shù)目盡可能少,由此在僅僅實際顯示這些互連的同時得到一個清晰的圖形,其中所述互連被視為是說明結(jié)構(gòu)機能所必需的?,F(xiàn)在,該裝置包括兩個寄存器堆(RF0,RF1)22、24,四個發(fā)送槽(issue slot)(UC0,UC1,UC2,UC3)32、34、36、38,一個將寄存器堆與發(fā)送槽互連的互連網(wǎng)絡(luò)(CN)28,以及一個控制器(SQ)26。第一個發(fā)送槽(UC0)32是在中斷處理中實際使用的唯一的槽。在這個中斷處理中,相關(guān)資源的不同狀態(tài)以及序列器的相關(guān)狀態(tài)全都拷貝到快照緩存器(SS)20的陰影觸發(fā)器中。后者則只連接到一個處于UC0 32內(nèi)部的加載/存儲單元(LSU)30,并且是作為上述寄存器堆RF0 22和RF1 24之外的一個附加寄存器堆來工作的。與任何常規(guī)加載/存儲單元相似,部件LSI30能夠訪問后臺數(shù)據(jù)存儲器(DM)40,以便在處理嵌套中斷時將快照數(shù)據(jù)存入該存儲器,或者從中加載快照數(shù)據(jù)。
圖2描述的是基于堆棧的快照緩存器的內(nèi)部結(jié)構(gòu)的框圖。該緩存器由多個并未分離顯示的陰影觸發(fā)器構(gòu)成,這些觸發(fā)器組織在一組50個并行字中,但在圖中則僅僅指示了字52。字長量度是依照需要以及諸如數(shù)據(jù)通路寬度之類的可用處理器設(shè)備來執(zhí)行的。每一個陰影觸發(fā)器都與一個表示處理器資源中的觸發(fā)器的相應(yīng)狀態(tài)相關(guān)聯(lián)。與下文中的圖3相比較,在這里有必要在處理中斷的過程中保存所述狀態(tài)。而在快照緩存器中,不同陰影字的輸入全都連接到一個解復(fù)用器54,從而允許在任何時候都能準(zhǔn)確寫入一個字。同樣,在快照緩存器中,來自不同陰影字的輸出將會饋送到一個復(fù)用器56,由此允許在任何時候準(zhǔn)確讀取一個字。
解復(fù)用器54和復(fù)用器56全都受控于一個來自同處在快照緩存器中的棧指針寄存器58的棧指針。實際上,只有在嵌套中斷開始的時候,才有必要在線路62上對快照緩存器62進(jìn)行讀取,而從線路60進(jìn)行的快照緩存器的寫入只在嵌套中斷結(jié)束的時候是必需的。因此,這兩個操作永遠(yuǎn)不會同時進(jìn)行,并且使用單個指針寄存器58就足以對棧緩存器中不同的字的交織尋址進(jìn)行控制。而指針值則在線路62上反向耦合到指針更新控制器66,以便后續(xù)再加載指針寄存器58。如所示,相對于指針值而言,三操作控制線68提供了相應(yīng)的讀取、寫入和無操作模式。而有效操作則是在遞減部件(-1)、遞增部件(+1)和無操作部件(通過直接反向耦合)中執(zhí)行的。
在本實施例中,由于快照緩存器保持了自身的內(nèi)部棧指針,因此上述讀/寫命令都不需要寄存器地址,但對標(biāo)準(zhǔn)的隨機存取寄存器堆而言,該地址是必需的。因此,在這里不必使用附加指令比特來尋址快照緩存器中的寄存器。并且應(yīng)該指出的是,實際的堆棧指針值并未涉及中斷電平,而是涉及一個序列,對特定中斷而言,數(shù)據(jù)是根據(jù)該序列寫入狀態(tài)寄存器的。一旦出現(xiàn)后續(xù)中斷,則陰影寄存器組的內(nèi)容將被寫入堆棧。一旦后續(xù)中斷到達(dá),則將陰影寄存器拷貝到DM40中,以便讓位于更新的數(shù)據(jù)。
與上述已公開的參考專利文獻(xiàn)WO02/33570A2相比,圖3描述的是一個與標(biāo)準(zhǔn)的資源觸發(fā)器70互連的陰影觸發(fā)器72。其中左側(cè)虛線(a)將具有標(biāo)準(zhǔn)或原始觸發(fā)器70的標(biāo)準(zhǔn)操作硬件與輸入門設(shè)備74分隔開來。輸入門設(shè)備74接收消耗數(shù)據(jù)78,而觸發(fā)器70則輸出處理數(shù)據(jù)82。陰影觸發(fā)器72在線路84上輸出存儲數(shù)據(jù)。而陰影觸發(fā)器的輸入則是由受控于控制信號86的保存/存儲復(fù)用器76饋送的。如所示,圖中的兩個部分是相互交叉耦的。
當(dāng)開始執(zhí)行各次中斷處理時,在單個時鐘周期內(nèi)部,完整的快照是通過將各個標(biāo)準(zhǔn)觸發(fā)器值即時拷貝到相應(yīng)的陰影觸發(fā)器中,而從相關(guān)的處理器狀態(tài)中獲取的。同樣,在結(jié)束每一次中斷處理的時候,完整的快照是通過將各個陰影觸發(fā)器即時拷貝到其相應(yīng)的標(biāo)準(zhǔn)觸發(fā)器中,而從快照緩存器恰當(dāng)恢復(fù)給處理器的。
在能夠嵌套中斷之前,通過使用一個能從堆棧中彈出的字的形式組織的快照數(shù)據(jù)的加載/存儲單元,可以將快照緩存器的內(nèi)容保存在數(shù)據(jù)存儲器中。然后,該特征將會釋放快照緩存器,以便在開始處理每一個嵌套中斷的時候獲取一個新的快照。一旦從嵌套中斷中返回,則可以在恢復(fù)當(dāng)前快照緩存器內(nèi)容之后,從數(shù)據(jù)存儲器中加載來自所中斷的服務(wù)程序的原始快照數(shù)據(jù),并且可以使用一個將那些以字的形式組織的快照數(shù)據(jù)推送到堆棧中的加載/存儲單元,來將原始快照數(shù)據(jù)寫入快照緩存器。
通過盡可能多地停用快照緩存器,可以獲得很低的功率。該處理是通過如下方式執(zhí)行的??煺站彺嫫髦械乃嘘幱坝|發(fā)器都僅僅在實際獲取快照的時候計時,這意味著僅僅在單個時鐘周期中激活快照緩存器。此外,在棧推送操作中,僅僅對由作為棧頂加一的棧指針?biāo)赶虻年幱坝|發(fā)器進(jìn)行計時。最后,棧指針自身只在棧指針更新的時候才會計時,而所述更新則分別是通過彈出和推送快照緩存器堆棧來執(zhí)行的。
本發(fā)明的一個優(yōu)勢應(yīng)用領(lǐng)域是嵌入式數(shù)字信號處理器(DSP)。此外,對使用了基于NUAL-EQ的調(diào)度并且由此需要流水線快照而不是流水線沖洗的不同的可中斷嵌入式處理器架構(gòu)而言,本發(fā)明同樣是適用的。本發(fā)明的具體應(yīng)用領(lǐng)域可以是視頻處理、視頻編解碼、音頻編解碼、聲波圖形、3G電信、經(jīng)由分組的語音傳輸以及其他眾多領(lǐng)域。
權(quán)利要求
1.一種數(shù)據(jù)處理器,其中包括一個或多個功能單元、一個或多個寄存器堆、一個數(shù)據(jù)存儲器以及一個快照緩存器,在對中斷狀況進(jìn)行處理的過程中,該處理器將不同處理器狀態(tài)部件的狀態(tài)信息保存在相應(yīng)的快照緩存器部件中,所述數(shù)據(jù)處理器的特征在于它包括控制器裝置,其中一旦出現(xiàn)了后續(xù)中斷狀態(tài),則所述控制器裝置會在處理實際中斷狀況的過程中,將所述快照緩存器部件的內(nèi)容存入具有多比特存取端口設(shè)備的數(shù)據(jù)存儲設(shè)備中。
2.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述控制器裝置被調(diào)整成,在結(jié)束處理實際中斷的時候,通過所述多比特存取端口設(shè)備而將來自所述數(shù)據(jù)存儲器設(shè)備的較早存儲的所述快照緩存器部件內(nèi)容再現(xiàn)到所述快照緩存器部件中。
3.如權(quán)利要求2所述的數(shù)據(jù)處理器,其中所述控制裝置被調(diào)整成,在執(zhí)行所述再現(xiàn)的時候恢復(fù)較早存儲的不同處理器狀態(tài)部件的狀態(tài)信息,由此允許所述數(shù)據(jù)處理器繼續(xù)處理早先的未完成中斷,或者根據(jù)具體情況來繼續(xù)執(zhí)行主要處理線程。
4.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述狀態(tài)信息包括當(dāng)前操作的等待時間數(shù)據(jù)。
5.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述快照緩存器包括輸出復(fù)用器裝置,該裝置具有所述多比特存取端口設(shè)備,以便順序保存選定的快照緩存器部件,從而將其內(nèi)容轉(zhuǎn)移到所述數(shù)據(jù)存儲器設(shè)備中。
6.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述快照緩存器包括輸入復(fù)用器裝置,該裝置具有所述多比特存取端口設(shè)備,用于順序選擇快照緩存器部件,以便回送來自所述數(shù)據(jù)存儲器的存儲內(nèi)容。
7.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述數(shù)據(jù)存儲器設(shè)備是作為堆棧工作的。
8.如權(quán)利要求7所述的數(shù)據(jù)處理器,其中所述堆棧具有一個允許在各個快照中具有多個堆棧位置的棧指針。
9.如權(quán)利要求7所述的數(shù)據(jù)處理器,其中所述堆棧中的讀寫操作是在相互排斥的時刻執(zhí)行的。
10.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述快照緩存器實質(zhì)上至少是由用于存儲其快照信息的陰影觸發(fā)器構(gòu)造的。
11.如權(quán)利要求1所述的數(shù)據(jù)處理器,其中所述快照緩存器僅僅是在實際獲取快照的時候,通過一個或多個計時陰影觸發(fā)器以很低的功率操作的,這意味著只在一個時鐘周期中激活所述快照緩存器,由此在棧推送操作中,只對棧頂加一的棧指針?biāo)赶虻年幱坝|發(fā)器進(jìn)行計時,并且只在通過彈出和推送快照緩存器堆棧所導(dǎo)致的棧指針更新過程中,對棧指針自身進(jìn)行計時。
12.如權(quán)利要求1所述的數(shù)據(jù)處理器,該處理器具有多個并行的發(fā)送槽(32~38),其中只有一個單獨的發(fā)送槽被用于執(zhí)行這種嵌套中斷處理。
13.一種數(shù)據(jù)處理設(shè)備,其中包含了權(quán)利要求1所述的嵌入式數(shù)據(jù)處理器。
14.一種用于對權(quán)利要求1所述的數(shù)據(jù)處理器進(jìn)行操作的方法,其中所述處理器被調(diào)整成對嵌套中斷進(jìn)行處理。
全文摘要
一種數(shù)據(jù)處理器,其中包含了一個或多個功能單元、一個或多個寄存器堆、一個數(shù)據(jù)存儲器以及一個快照緩存器的數(shù)據(jù)處理器,在對中斷狀況進(jìn)行處理的過程中,該處理器適應(yīng)于將不同處理器狀態(tài)部件的狀態(tài)信息保存在相應(yīng)的快照緩存器部件中。特別地,所述數(shù)據(jù)處理器包括控制器裝置,一旦出現(xiàn)了后續(xù)中斷狀態(tài),則所述控制器裝置會在處理實際中斷狀況的過程中將所述快照緩存器部件的內(nèi)容存入一個具有多比特存取端口設(shè)備的數(shù)據(jù)存儲設(shè)備中。
文檔編號G06F13/24GK1678999SQ03820817
公開日2005年10月5日 申請日期2003年9月1日 優(yōu)先權(quán)日2002年9月3日
發(fā)明者J·A·J·萊伊坦 申請人:皇家飛利浦電子股份有限公司