用于降低功耗的中斷處理的同步的制作方法
【專利摘要】公開了一種處理器,并且該處理器包括:至少一個核心,包括第一核心;以及中斷延遲邏輯。中斷延遲邏輯用于在第一時間接收第一中斷以及延遲處理第一中斷達開始于第一時間的第一時間延遲,除非在第一核心處理第二中斷的第二時間處第一中斷掛起。如果在第二時間處第一中斷掛起,則中斷延遲邏輯指示第一核心在第一時間延遲完成之前開始處理第一中斷。其他實施例被公開并要求保護。
【專利說明】
用于降低功耗的中斷處理的同步
技術領域
[0001]實施例涉及中斷處理。
【背景技術】
[0002]諸如便攜設備(例如,智能電話、平板等等)之類的設備可以具有高比率的異步事件,該異步事件作為可以提供輸入的外圍設備的多樣性的結果而發生。例如,異步事件可以包括運動傳感器、光傳感器、觸摸屏等。另外,這些便攜設備可以接收同步事件,諸如涉及蜂窩網絡尋呼的周期性中斷、周期性計時器事件等。
[0003]與同步和異步事件、對處理器的輸入相關聯的中斷消息(“中斷”)可以引起處理器擺振,例如,在活躍狀態和非活躍狀態之間過度振蕩,這可能繼而由于作為從非活躍到活躍狀態轉變的結果的“喚醒”功率成本而引起高功耗,這可能會導致電源(例如,電池)的再充電之間時間段的減少。
【附圖說明】
[0004]圖1是根據本發明的實施例的系統的框圖。
[0005]圖2是根據本發明的實施例的中斷延遲控制器的框圖。
[0006]圖3A是根據本發明的實施例的處理器核心的框圖。
[0007]圖3B是根據本發明的實施例的要處理的中斷的定時圖。
[0008]圖4是根據本發明的實施例的由處理器處理中斷事件的方法的流程圖。
[0009]圖5是根據本發明的實施例的系統的框圖。
[0010]圖6是根據本發明的另一實施例的系統的框圖。
[0011]圖7是根據本發明的實施例的片上系統的框圖。
【具體實施方式】
[0012]中斷源可根據源的特性和對于處理從所述源接收的中斷的要求進行分類。例如,一些中斷在處理之前在沒有故意延遲的情況下被服務(本文中的“硬中斷”或“關鍵中斷”,例如,與例如蜂窩傳輸標準相關聯的周期性中斷)。其他中斷(本文中的“軟中斷”或“非關鍵中斷”)是較不時間敏感的并且可被故意延遲,其中時間延遲根據中斷源的性質(例如,外圍設備/應用程序)被分配。
[0013]在實施例中,可編程延遲值可以針對每個事件或事件組被確立。中斷可以被分組,以使得處理器可以在處理器從非活躍(“睡眠”)狀態被激活(“喚醒”)時處置(例如,“批處理”)多個中斷。中斷的批處理可以減少處理器在給定的時間幀內所經歷的活躍/非活躍循環的總數,這能夠降低處理器的總體功率使用。
[0014]在實施例中,例如當處理器和/或片上系統(SoC)處于功率節省(非活躍)狀態(例如,高級計算和電源接口(ACPI)斷電狀態C1-C6之一)中時,編程的延遲計時器值可由操作系統獲得以延遲中斷處理(例如,經由執行與中斷相關聯的處置器)。針對各種類型的中斷的編程的延遲值使得中斷處理能夠被批處理,而不是單獨處理每個中斷,單獨處理每個中斷由于處理器或Soc的每個非活躍到活躍轉變而能夠引起大的功耗。在實施例中,中斷處理基于分配給每個中斷的對應延遲時間來動態地自動對事件進行分組。
[0015]圖1是根據本發明的實施例的系統100的框圖。系統100包括:處理器110,其包括一個或多個核心102o-102n、中斷控制器104、和中斷延遲控制器106;多個外圍設備120ο-120m,耦合到處理器110;和動態隨機存取存儲器(DRAM)130,耦合到處理器110。
[0016]在操作中,處理器110可以從外圍設備120ο-120μ中的一個或多個接收中斷消息(本文中也稱為“中斷”)。“中斷”中的一個或多個(“硬中斷”)可以與對應的硬實時中斷事件相關聯,針對硬實時中斷事件的該中斷將在被接收時被處理,例如,不被故意延遲。例如,硬中斷可以與涉及蜂窩標準的周期性事件相關聯,并且硬中斷一被接收就由處理器110處理,例如不具有故意時間延遲。
[0017]其它中斷可以是周期性(例如,同步)或非周期性(例如,異步)的,但不與硬實時中斷事件相關聯,并且因此這樣的中斷(“軟中斷”)的處理可能被延遲,例如故意時間延遲。例如,異步中斷可以與異步事件(諸如傳感器輸入、觸摸屏、可不定期地接收到的數據等)相關耳關。
[0018]對于創建軟事件(例如,產生軟中斷)的每個外圍設備120Q- 120m,可以分配用于處理每個軟中斷的對應時間延遲。用于處理從源外圍設備接收的軟中斷的時間延遲可以基于源外圍設備的特性來確定,并且可以在使用系統100之前被確定。例如,在確定針對軟中斷的可接受的時間延遲時要考慮的一個因素可以是相關聯事件的發生的最壞情況頻率。例如,如果在最壞情況估計中,每100毫秒發生一事件,則用于處理相關聯的中斷的100 ys延遲將會有可忽略的性能影響。在處理器110接收一個或多個中斷之前,可以提供時間延遲(例如,存儲在處理器110中)。
[0019]由中斷延遲控制器106從一個或多個外圍設備120ο- 120m接收的硬中斷可以被傳遞到中斷控制器104以在沒有故意時間延遲的情況下被處理。當由處理器110接收到軟中斷時,中斷延遲控制器106可以基于已經提供該軟中斷的外圍設備120選擇對應的時間延遲(例如,存儲在中斷延遲控制器106中)。對于接收的每個軟中斷,中斷延遲控制器可以例如經由對應的計時器開始對應時間延遲的計數,并且當對應的計時器已經達到時間延遲的結束時,軟中斷可以被釋放到中斷控制器104并且由中斷控制器104引導以便由核心102『102n之一進行處理。
[0020]在實施例中,當硬中斷由處理器110接收到以用于立即處理時,中斷延遲控制器106可確定是否有任何軟中斷正在掛起,例如,相關聯的計時器已經開始對軟中斷的時間延遲進行計數,并且尚未完成其計數。中斷延遲控制器106可以把一個或多個掛起的軟中斷釋放給中斷控制器104以供核心102o-102n之一進行處理,例如在未完成相關聯計時器的計數的情況下。被釋放以供核心處理的中斷在核心活躍時(例如核心從硬中斷被接收到的時間一直到被釋放的所有軟中斷的處理被完成時保持活躍)被處理。
[0021]在另一實施例中,第一軟中斷將由于計時器期滿(例如,相關聯的計時器已經完成了其對相應時間延遲的計數)而由核心102ο-102ν中的第一核心處理。中斷延遲控制器106可以在每個相應的時間延遲完成之前釋放一個或多個其它掛起的軟中斷給中斷控制器104以供第一核心處理。被釋放以供第一核心處理的中斷將被批處理,例如作為第一軟中斷處理的結果而第一核心活躍時被處理。該核心將保持活躍直到已被釋放的中斷的處理完成。
[0022]在每個上述實施例中,當特定中斷被發送到中斷控制器以便被處理時,中斷延遲控制器106可以釋放一個或多個掛起中斷以在核心的單個活躍時間段期間被處理。因此,特定核心針對待處理的每個中斷不在不活躍和活躍狀態之間振蕩。中斷的批處理能夠減少擺振并能夠降低處理器的功率使用,該功率使用本來由于“喚醒”功率成本而被消耗。也即是說,通過批處理中斷,針對要處理的多個中斷,重新激活核心所消耗的功率可以從多個喚醒情況被減少為單個喚醒情況。
[0023]圖2是根據本發明實施例的中斷延遲控制器200的框圖。中斷延遲控制器200包括時間延遲計數器21(h-210L、時間延遲寄存器22(h-220L、以及中斷延遲邏輯222,中斷延遲邏輯222包括中斷檢測邏輯224、計數器分配邏輯226和掛起中斷釋放邏輯228。包括中斷檢測邏輯224、計數器分配邏輯226和掛起中斷釋放邏輯228的中斷延遲邏輯222可以在軟件、硬件、固件或者它們的組合中被實現。
[0024]在操作中,多個外圍設備可以生成中斷202!- 202j。從一些外圍設備接收到的中斷中的一些可以是硬中斷,例如,在沒有故意延遲的情況下被處理。其它中斷可以是軟中斷,并且可以在處理之前被延遲。
[0025]該中斷檢測邏輯224可以檢測接收到的每個硬中斷,并且可以在無延遲的情況下把每個硬中斷發送給中斷控制器230,以輸出給特定的核心進行處理。
[0026]每個計數器21(h-210L具有相關聯的時間延遲寄存器22(h-220L,時間延遲寄存器22(^-22(^存儲與發出軟中斷的特定外圍設備對應的所確定的時間延遲。針對給定外圍設備的時間延遲可被存儲在相關聯的時間延遲寄存器22(h-220L中(例如在中斷延遲控制器200的操作之前),并且可以取決于多個因素(例如,性能影響),如上所述。計數器分配邏輯226可以把從特定外圍設備接收到的每個中斷分配給對應計數器210,,對應計數器210,的時間延遲寄存器220 i與特定外圍設備相關聯。例如,當從第一外圍設備接收到第一中斷時,計數器分配邏輯226可以把第一中斷分配給第一計時器21(h,第一計時器21(h開始時間計數達到與第一外圍設備相關聯并且存儲在寄存器22(h中的第一時間延遲值(例如,從第一時間延遲值向下計數,或向上計數到第一時間延遲值)。當時間計數已經期滿時,中斷被釋放給中斷控制器230以供由中斷控制器230所確定的所選擇的核心之一處理。
[0027]中斷檢測邏輯224可以檢測硬中斷的接收并且可以在沒有故意延遲的情況下把所接收到的硬中斷引導到中斷控制器230。處理硬中斷可以觸發掛起中斷釋放邏輯228在所分配的時間延遲完成之前釋放掛起(例如,經由時間延遲計數器210而被故意延遲)的一個或多個軟中斷給中斷控制器230。
[0028]而且,對于計數器210完成其對相關聯的時間延遲的計數的每個情況,對應的中斷被釋放給中斷控制器230以供處理器的特定核心(由中斷控制器230確定的特定核心)處理。中斷的釋放可以使得掛起中斷釋放邏輯228釋放一個或多個掛起中斷給中斷控制器230,以供特定核心進行處理。
[0029]現在參考圖3A,示出根據本發明的一個實施例的處理器核心300的框圖。如圖3A中所示,處理器核心300可以是多級流水線無序處理器。
[0030]根據本發明的實施例,核心300可包括中斷延遲單元302。中斷可以從各種外圍設備被接收并且中斷檢測邏輯304可以檢測所接收到的中斷是硬中斷還是軟中斷。如果接收到的中斷是硬中斷,則接收到的中斷被發送到前端單元310,并且在不延遲的情況下(例如,在不引入故意時間延遲的情況下)由執行單元320進行處理。如果接收到的中斷是軟中斷,則中斷檢測邏輯304可以指示計數器分配邏輯306分配延遲計數器307! - 307L中的一個給接收到的中斷。所分配的延遲計數器307,可以計數確定的時間延遲T1,其中T1被存儲在對應的時間延遲寄存器30? - 309l中,并且中斷延遲單元302可以延遲處理所接收到的軟中斷,同時對應的延遲計數器307i計數相應的時間延遲Ti。
[0031]如果接收到的(軟)中斷在另一中斷(例如,硬中斷,或其延遲計數器已經期滿的另一軟中斷)正在被處理時掛起(例如,被中斷延遲單元302推遲,直至相應的延遲計數器307 i期滿),則掛起中斷釋放邏輯308可以根據本發明的實施例使得掛起的軟中斷在其相應的延遲計數器307,期滿之前并且在執行單元320處于活躍狀態時被釋放以用于處理。
[0032]如果沒有中斷正被處理并且無指令正被處理,則功率調整邏輯318可以指示執行單元320把功率使用從完全活躍水平減少到功率使用的較低水平。當中斷和/或指令排隊被處理時,功率調整邏輯318可以指示執行單元320恢復加電狀態。
[0033]如圖3A中看到的,核心300包括前端單元310,其可以被用來取回要執行的指令并把他們準備好,用于稍后在處理器中使用。例如,前端單元310可以包括取回單元301、指令高速緩存303和指令解碼器305。在一些實現方式中,前端單元310還可以包括跟蹤高速緩存,與微代碼存儲裝置以及微操作存儲裝置一起。取回單元301可以例如從存儲器或指令高速緩存303取回宏指令,并把它們饋送到指令解碼器305以把它們解碼成基元,即微操作,以供處理器執行。
[0034]耦合在前端單元310和執行單元320之間的是無序(000)引擎315,其可以被用來接收微指令和針對執行準備他們。更具體地說,000引擎315可以包括各種緩沖器用于對微指令流進行重新排序并且分配執行所需的各種資源,以及提供邏輯寄存器的重命名到諸如寄存器文件330和擴展寄存器文件335之類的各種寄存器文件內的存儲位置上。寄存器文件330可以包括用于整數和浮點運算的單獨寄存器文件。擴展寄存器文件335可為矢量尺寸單元提供存儲,例如,每個寄存器256或512位。
[0035]執行單元320中可以存在各種資源,包括例如,除其他專門硬件之外,各種整數、浮點和單指令多數據(SHffi)邏輯單元。例如,除了其他這樣的執行單元之外,這樣的執行單元可以包括一個或多個算術邏輯單元(ALU)322。
[0036]來自執行單元的結果可以被提供給退出邏輯,即重新排序緩沖器(R0B)340。更具體地,ROB 340可以包括各種陣列和邏輯以接收與被執行的指令相關聯的信息。該信息隨后被ROB 340檢查以確定是否該指令可以被有效地退出并且結果數據提交到處理器的架構狀態,或者是否一個或多個異常發生從而阻止指令的適當退出。當然,ROB 340可以處置與退出相關聯的其他操作。
[0037]如圖3A中所示,ROB 340耦合到高速緩存350,在一個實施例中,高速緩存350可以是低級別高速緩存(例如,LI高速緩存),但是本發明的范圍并不限于這個方面。而且,執行單元320可以直接耦合到高速緩存350。從高速緩存350,可以利用較高級別高速緩存、系統存儲器等發生數據通信。雖然圖3A的實施例中以該高級別示出,但要理解本發明的范圍并不限于這個方面。例如,雖然圖3A的實現方式關于無序機器,諸如所謂的x86指令集架構(ISA),但本發明的范圍并不限于這個方面。也就是說,其他實施例可以在按序處理器、精簡指令集計算(RISC)處理器(諸如基于ARM的處理器)或可以經由模擬引擎和相關聯的邏輯電路模擬不同ISA的指令和操作的另一類型ISA的處理器中被實現。[〇〇38]圖3B是根據本發明的實施例的要處理的中斷的定時圖。[〇〇39] 中斷1消息(354-360)是硬中斷。中斷2消息(362、366、370、374)是周期性的軟中斷。中斷3消息(378、382)是非周期性的軟中斷。
[0040]所有中斷都將由相同的核心處理。軟中斷可能被延遲,其中每個軟中斷具有對應的時間延遲,如以上關于圖2所討論的。周期性軟中斷362、366、370和374中的每一個在時間上被延遲,以便分別被處理成為經延遲的中斷364、368、372和376。異步軟中斷378、382中的每一個在時間上被延遲,以便分別被處理成為中斷380和384。[〇〇41 ] 硬中斷354-360中的每一個在沒有故意延遲的情況下被處理,并且每個中斷354-360與處理中斷的核心中的非活躍到活躍轉變(386、390、394、396)相關聯。中斷354、356、 358和360分別在核心時間386、390、394和396處被處理。[〇〇42] 隨著每個中斷354、356、358、360被處理,一個或多個掛起中斷(例如,尚未被處理, 并且等待對應的時間延遲時段期滿)可以在核心處于活躍狀態時被釋放以被處理。例如,中斷370被延遲處理到372(本文中標記為370—372),并且當中斷358被處理時中斷370掛起。 因此,中斷(370—372)將在時間394被釋放以進行處理,該釋放由中斷358的處理來觸發。因此,兩個中斷(358和370—372)將在核心的開始于394的同一活躍時段中被處理。[〇〇43] 中斷374被延遲到376并且當中斷360被處理時(例如,在時間396)中斷374掛起。因此,中斷(374—376)將在開始于396的核心活躍的時段期間被釋放以進行處理。此外,中斷 382被延遲到384并且當中斷360開始被處理時掛起。因此,中斷(382—384)將在開始于396 的核心活躍時段期間被釋放以進行處理。因此,三個中斷360、(374—376)和(382—384)在開始于396的核心的連續活躍時段期間被處理。[〇〇44]中斷366被延遲以在368進行處理。沒有其它中斷被安排在366和368之間的時間段中被處理,并且因此,經延遲的中斷(366—368)在時間392被處理,并且處理使得核心在時間392從非活躍到活躍轉變。在經延遲的中斷(366—368)被處理之后核心返回到非活躍狀〇
[0045] 中斷362被延遲到364(362—364)。異步軟中斷378被延遲到380(378—380)。在任何其他中斷預期要被處理時,經延遲的中斷(362—364)未掛起,并且因此將在時間388被處理,時間388對應于364,其處于它的時間延遲的結束處。經延遲的中斷(378—380)在時間 388掛起,并且因此將在核心由于經延遲的中斷(362—364)的處理而處于活躍狀態時被釋放以進行處理。因此,兩個中斷364和(378—380)在開始于388的一個活躍時段中被處理。 [〇〇46]核心的從非活躍到活躍狀態的總共6個轉變(386-396)由處理接收到的10個中斷而引起。因此,在處理軟中斷之前引入時間延遲可以減少核心的從非活躍到活躍轉變的總數。核心的非活躍到活躍轉變的數目減少能夠由于與核心的非活躍到活躍轉變相關聯的功率成本的減少而減少總功耗。[〇〇47]圖4是根據本發明實施例的由處理器處理中斷事件的方法的流程圖400。在塊410, 處理器接收來自外圍設備的中斷。繼續到判定菱形420,如果該第一中斷是硬中斷,例如與延遲時間Tn = 0的硬實時事件相關聯,則前進到塊450,中斷在沒有故意時間延遲的情況下被處理器處理。前進到判定菱形460,如果存在其他掛起中斷,貝lj返回到塊450,掛起中斷被處理。在判定菱形460處,如果不存在其它掛起中斷,則該方法在470結束。[〇〇48] 在判定菱形420處,如果第N中斷不是硬中斷,例如,第N中斷不與硬實時事件相關聯,則前進到塊430,對應的延遲計時器開始計數第N中斷的對應時間延遲Tn。移動到判定菱形440,當延遲計時器已經期滿時,則進行到塊450,第N中斷被處理。前進到判定菱形460,如果當第N中斷被處理時存在其他掛起中斷,則返回到塊450,掛起中斷例如在其相應延遲時間期滿之前由于第N中斷的處理而被處理。在判定菱形460,如果不存在其它掛起中斷,則該方法在470結束。
[0049]實施例可以在許多不同的系統類型中實現。現在參考圖5,示出的是根據本發明實施例的系統的框圖。如圖5中所示,多處理器系統500是點對點互連系統,并且包括第一處理器570和經由點對點互連550耦合的第二處理器580。如圖5中所示,處理器570和580中的每一個都可以是多核處理器,包括第一和第二處理器核心(即,核心574a和574b以及核心584a 和584b),但是可能在該處理器中可以存在更多核心。根據本發明的實施例,處理器570包括中斷延遲控制器502和中斷控制器504,并且處理器580包括中斷延遲控制器506和中斷控制器508。每個中斷延遲控制器502、506用于檢測到來的中斷。如果到來的中斷與硬實時事件相關聯,則該中斷被發送到相應的中斷控制器504、508,以在沒有故意延遲的情況下被處理。
[0050]對于作為軟中斷的第一中斷,中斷延遲控制器502、506在把第一中斷發送到用于把所述第一中斷引導到核心以被處理的相應中斷控制器504、508之前延遲處理該中斷達特定延遲時間,除非第二中斷正被處理時第一中斷掛起。如果第二中斷正被處理時第一中斷掛起,則中斷延遲控制器502、506將把第一中斷發送到相應中斷控制器504、508以在該核心處于活躍狀態中時被引導到核心進行處理,根據本發明的實施例,所述活躍狀態由第二中斷的處理進行觸發。[〇〇511 仍參考圖5,第一處理器570還包括存儲器控制器集線器(MCH)572和點對點(P-P) 接口 576和578。類似地,第二處理器580包括MCH 582和P-P接口 586和588。如圖5中所示, MCH572和582把處理器耦合到相應存儲器,即存儲器532和存儲器534,這些存儲器可以是本地附接到相應處理器的系統存儲器(例如,DRAM)的部分。第一處理器570和第二處理器580 可經由P-P互連562和584分別耦合到芯片組590。如圖5中所示,芯片組590包括P-P接口 594 和 598。[〇〇52] 此外,芯片組590包括接口592,用于經由P-P互連539把芯片組590與高性能圖形引擎538耦合。繼而,芯片組590可以經由接口 596耦合到第一總線516。如圖5中所示,各種輸入/輸出(I/O)設備514可以親合到第一總線516,以及總線橋518,總線橋518將第一總線516 耦合到第二總線520。各種設備可以耦合到第二總線520,包括例如鍵盤八鼠標522、通信設備 526和數據存儲單元528,諸如磁盤驅動器或其它大容量存儲設備,其在一個實施例中可以包括代碼530。此外,音頻輸入/輸出(1/0)524可以耦合到第二總線520。根據本發明的實施例,設備514、522、524、526中的一個或多個可以提供中斷以供處理器570或處理器580進行處理。各實施例可被合并到其他類型的系統中,這種系統包括移動設備,諸如智能蜂窩電話、平板計算機、上網本、超極本?等等。[〇〇53]各實施例可被合并到其他類型的系統中,這種系統包括移動設備,諸如蜂窩電話。 現在參考圖6,示出的是根據本發明的另一實施例的系統的框圖。如圖6中所示,系統600可以是移動設備,并且可以包括各種組件。如圖6的高等級視圖中所示,應用處理器610,其可以是設備的中央處理單元,與各種組件通信,該各種組件包括存儲裝置615。在各種實施例中,存儲裝置615可以包括程序和數據存儲部分二者。
[0054]應用處理器610還可以耦合到輸入/輸出系統620,輸入/輸出系統620在各個實施例中可以包括顯示器和一個或多個輸入設備,諸如觸摸鍵板,它本身在被處理時可以顯現在顯示器上。系統600還可以包括集成傳感器集線器(ISH)660,其可以從一個或多個傳感器670接收數據。在一些實施例中,集成傳感器集線器包括中斷延遲控制器(IDC)662,用于檢測軟中斷并延遲執行軟中斷達對應的延遲時間(TN)。如果當一中斷掛起時另一中斷被處理,則根據本發明的實施例,該中斷在未完成它的時間延遲的情況下被處理。
[0055]根據本發明的實施例,應用處理器610可以包括中斷延遲控制器(IDC)602。IDC602可以檢測與硬實時事件相關聯的到來的硬中斷(例如,來自收發機640和/或基帶處理器630),并且可以在沒有故意延遲的情況下把該硬中斷發送給中斷控制器(未示出),該中斷控制器把該中斷發送到應用處理器610的核心以進行處理(例如,處置)。
[0056]對于作為軟中斷的第一中斷(例如,從I/O620和/或集成傳感器集線器660接收到),中斷延遲控制器602可以在把第一中斷釋放到中斷控制器之前延遲處理該第一中斷達第一延遲時間,除非在第二中斷在第一核心被處理時第一中斷掛起。中斷控制器把第一中斷發送到應用處理器610的第一核心以進行處理。根據本發明的實施例,如果在第二中斷在第一核心被處理時第一中斷掛起,則第二中斷的處理觸發中斷延遲控制器602在未完成時間延遲的情況下把第一中斷發送到中斷控制器,以便在該核心處于活躍狀態中時被引導到第一核心進行處理,所述活躍狀態由第一中斷的處理觸發。所述第二中斷可以是硬中斷或其時間延遲被完成(例如,時間延遲計數器已期滿)的軟中斷。
[0057]應用處理器610還可以耦合到基帶處理器630,基帶處理器630可以調節信號(諸如用于輸出的語音和數據通信),以及調節呼入電話和其他信號。根據本發明的實施例,基帶處理器630可包括IDC 632,IDC 632從外圍設備634接收中斷并且可以延遲執行所接收到的軟中斷,除非當另一個中斷被處理時該軟中斷掛起。如看到的那樣,基帶處理器630耦合到收發機640,收發機640可以實現接收和傳送功能兩者。繼而,收發機640可以與天線650通信,天線650例如是能夠經由一個或多個通信協議(諸如經由無線廣域網(例如,3G或4G網絡)和/或無線局域網(諸如BLUETOOTH?或根據電氣和電子工程師協會的802.11標準的所謂的W1-FI ?網絡))傳送和接收語音和數據信號的任何類型天線。
[0058]如可以看到的,系統600可進一步包括具有可再充電電池的可再充電電源625以實現在移動環境中操作。雖然在圖6的實施例中利用該特定實現方式來示出,但本發明的范圍不限于這方面。
[0059]圖7是根據本發明實施例的片上系統(SOC)的框圖。SOC700包括多核子系統710、調制解調器子系統720、多媒體子系統730、系統結構740、電源750和接口 760,接口 760用于與一個或多個外部設備進行對接。該SOC 700可以同時執行多個任務,例如,調制解調器任務、多媒體任務和其他處理任務。
[0060]多核子系統710包括多核處理器712和714、L1高速緩存716和718、以及L2高速緩存742。多核處理器712和714中的每一個都可以包括對應的中斷延遲控制器(IDC)702、704。每個中斷延遲控制器702、704用于:檢測與硬實時事件(例如來自接口 760)相關聯的到來的硬中斷,并且一接收到硬中斷,就把每個硬中斷發送到相應的中斷控制器(未示出),該中斷控制器把該中斷引導到相應處理器712、714的核心以進行處理。[〇〇611對于作為軟中斷的第一中斷(例如,從接口 760接收到的),中斷延遲控制器702、 704以第一時間延遲來延遲發送第一中斷到用于把中斷引導到核心以進行處理的相應中斷控制器,除非第二中斷正在由核心處理時第一中斷掛起。根據本發明的實施例,如果第二中斷正在由核心處理時第一中斷掛起,中斷延遲控制器702、704在未完成所述時間延遲的情況下發送第一中斷到中斷控制器,以在核心處于活躍狀態時被引導到該核心進行處理,所述活躍狀態由第二中斷的處理進行觸發。[〇〇62]調制解調器子系統720可以包括長期演進(LTE)調制解調器722,用于高速數據的無線通信。調制解調器子系統720還可以包括全球定位系統(GPS)724以及至少兩個數字信號處理器(DSP)核心726和728。根據本發明的實施例,LTE調制解調器722可以包括IDC 721, 用于檢測從調制解調器子系統720(例如,從GPS 724)輸入的中斷并且延遲軟中斷。[〇〇63]多媒體子系統730可以包括圖形處理單元(GPU)732、音頻/視頻硬件加速器734、數字信號處理核心736和MMX處理器738,其可能能夠處理例如單一指令、多數據(SHffi)指令。 [〇〇64]其它實施例描述如下。[〇〇65] 在第1示例中,處理器包括:至少一個核心,包括第一核心。所述處理器還包括中斷延遲邏輯,在第一時間接收第一中斷,延遲由第一核心對第一中斷的處理達開始于第一時間的第一時間延遲,除非在由第一核心對第二中斷的處理開始的第二時間處第一中斷掛起,并且如果在第二時間處第一中斷掛起,則指示第一核心在第一時間延遲完成之前開始處理第一中斷。[〇〇66]在包括示例1的處理器的第2示例中,中斷延遲邏輯接收在第二時間掛起的包括第一中斷的多個中斷,并且第一核心在第一活躍時段期間處理多個掛起的中斷,第一活躍時段開始于第二時間,其中第一核心在整個第一活躍時段中保持在活躍狀態。[〇〇67]在包括示例2的處理器的第3示例中,第一核心在第二中斷和多個掛起的中斷被處理之后從活躍狀態轉變到非活躍狀態。[〇〇68]在包括示例1的處理器的第4示例中,第一核心在第一中斷和第二中斷正被處理時保持在活躍狀態,并且在第一中斷和第二中斷被處理之后轉變到非活躍狀態。[〇〇69]在包括示例1的處理器的第5示例中,第二中斷周期性地被接收,并且對于第二中斷被接收的每次發生,第二中斷在沒有故意延遲的情況下由第一核心處理,并且在對應時間延遲完成之前以及在所述核心保持在活躍狀態時中斷延遲邏輯指示所述第一核心開始處理附加掛起的中斷。
[0070]在包括示例5的處理器的第6示例中,對于每次發生第二中斷的接收,在第二中斷和附加掛起的中斷的處理完成時,第一核心轉變到非活躍狀態。
[0071]在包括示例1的處理器的第7示例中,中斷延遲邏輯還在第三時間接收第三中斷并且分配給第三中斷第二時間延遲,并且中斷延遲邏輯從第三時間開始延遲處理第三中斷達第二時間延遲,除非在第一中斷或第二中斷正被處理時第三中斷掛起,并且如果在第一中斷或第二中斷正被處理時第三中斷掛起,則指示第一核心在第二時間延遲未完成的情況下處理第三中斷。[〇〇72]在包括示例7的處理器的第8示例中,如果在第一中斷或第二中斷被處理時第三中斷未掛起,則中斷延遲邏輯指示核心在第二時間延遲完成之后處理第三中斷。
[0073]在包括示例I的處理器的第9示例中,所述中斷延遲邏輯包括計數器,用于計數第一時間延遲。
[0074]在第10示例中,一種系統包括:動態隨機存取存儲器(DRAM)和處理器,所述處理器包括一個或多個核心和中斷控制器,所述中斷控制器用于把一個或多個所接收的中斷中的每一個引導到所述一個或多個核心中的第一核心。所述處理器還包括中斷延遲控制器,中斷延遲控制器包括:一個或多個延遲計數器,用于計數相應時間延遲來處理對應的中斷,其中,每個延遲計數器在由所述處理器接收到對應的非關鍵中斷時開始相應的計數;以及掛起中斷釋放邏輯,響應于另一個中斷的執行而把每個掛起中斷發送到中斷控制器,以在第一核心處于活躍狀態時被引導到第一核心。
[0075]在包括示例10的系統的第11示例中,如果在與第二中斷相關聯的相應時間延遲期間沒有其他中斷正在被處理,則中斷延遲控制器在對應的延遲計數器的計數完成時把所述中斷發送給中斷控制器。
[0076]在包括示例10的系統的第12示例中,其中,當第二延遲計數器的計數完成時,掛起中斷釋放邏輯在第一核心處于活躍狀態時發送每個掛起中斷到中斷控制器以進行處理。
[0077]在包括示例10的系統的第13示例中,在掛起中斷被處理之后,對應的核心變為非活躍。
[0078]在包括示例10的系統的第14示例中,所述處理器還包括關鍵中斷檢測邏輯,在接收到硬中斷時,關鍵中斷檢測邏輯在沒有故意延遲的情況下把硬中斷發送到中斷控制器。
[0079]在包括示例10的系統的第15示例中,所述處理器還包括計數器分配邏輯,用于分配對應的延遲計數器給接收到的每個非關鍵中斷。
[0080]在第16示例中,一種方法包括:在第一時間開始由處理器的核心處理第一中斷;由處理器分配時間延遲給在第二時間接收到的第二中斷;在開始于第二時間的時間延遲期滿之后由核心處理第二中斷,除非第二中斷在第一時間掛起;以及如果第二中斷在第一時間掛起,則在所述時間延遲期滿之前由所述核心處理第二中斷。
[0081]在包括示例16的方法的第17示例中,如果第二中斷在第一時間掛起,則在所述核心響應于第一中斷的處理而處于活躍狀態時處理所述第二中斷。
[0082]在包括示例16的方法的第18示例中,在第一中斷和第二中斷被處理之后,把所述核心轉變到非活躍狀態。
[0083]在包括示例16的方法的第19示例中,如果多個中斷在第一時間掛起,則在所述多個中斷中的每一個中斷的相應時間延遲完成之前發送所述多個中斷到所述核心,以供所述核心進行處理,其中所述核心在所述多個中斷被處理時保持在活躍狀態。
[0084]在包括示例19的方法的第20示例中,在所有掛起中斷被處理之后,把所述核心轉變到非活躍狀態。
[0085]在包括示例16的方法的第21示例中,所述時間延遲基于從其接收第二中斷的外圍設備的一個或多個特性來確定。
[0086]在包括示例16的方法的第22示例中,分配對應時間延遲給多個中斷中的每一個,多個中斷中的每一個被延遲處理達對應達對應時間延遲,所述對應時間延遲開始于相應的接收時間,除非另一中斷正在被處理。
[0087]在包括示例22的方法的第23示例中,當特定中斷開始被處理時,在對應時間延遲未完成的情況下發送每個掛起的中斷到所述核心以進行處理。
[0088]在第24示例中,一種設備包括用于執行示例16-23中任一項所述的方法的裝置。
[0089]在第25示例中,至少一種計算機可讀介質包括指令,當所述指令被執行時使得系統能夠執行示例16-23中任一項所述的方法。
[0090]各實施例可以用于許多不同類型的系統中。例如,在一個實施例中,通信設備可以被布置為執行本文所描述的各種方法和技術。當然,本發明的范圍不限于通信設備,并且替代地其它實施例可以涉及用于處理指令的其它類型的設備,或包括指令的一個或多個機器可讀介質,所述指令響應于在計算設備上被處理,使設備執行本文所描述的方法和技術中的一個或多個。
[0091]實施例可以用代碼來實現,并且可以存儲在非臨時性存儲介質上,該非臨時性存儲介質具有存儲在其上的指令,所述指令可被用于對執行指令的系統進行編程。存儲介質可以包括但不限于任何類型的盤(包括軟盤、光盤、固態驅動器(SSD)、壓縮盤只讀存儲器(⑶-R0M)、可重寫壓縮盤(⑶-RW)和磁光盤)、半導體器件(諸如只讀存儲器(R0M)、隨機存取存儲器(RAM),諸如動態隨機存取存儲器(DRAM)、靜態隨機存取存儲器(SRAM)、可擦除可編程只讀存儲器(EPR0M)、閃速存儲器、電可擦除可編程只讀存儲器(EEPR0M))、磁卡或光卡、或任何其它類型的適于存儲電子指令的介質。
[0092]雖然已經關于有限數目的實施例描述了本發明,但本領域技術人員將根據本發明認識到許多修改和變化。意圖是,所附權利要求覆蓋落入該本發明的真實精神和范圍內的所有這樣的修改和變化。
【主權項】
1.一種處理器,包括:至少一個核心,包括第一核心;以及中斷延遲邏輯,用于:在第一時間接收第一中斷;延遲處理第一中斷達開始于第一時間的第一時間延遲,除非在第一核心處理第二中斷 的第二時間處第一中斷掛起;以及如果在第二時間處第一中斷掛起,則指示第一核心在第一時間延遲完成之前開始處理 第一中斷。2.根據權利要求1所述的處理器,其中當多個接收到的中斷在第二時間掛起時,第一核 心在開始于第二時間的第一活躍時段期間處理多個掛起中斷,其中第一核心在整個第一活 躍時段中保持在活躍狀態。3.根據權利要求2所述的處理器,其中第一核心在第二中斷和所述多個掛起中斷被處 理之后從活躍狀態轉變到非活躍狀態。4.根據權利要求1所述的處理器,其中第一核心在第一中斷和第二中斷正被處理時保 持在活躍狀態,并且在第一中斷和第二中斷被處理之后轉變到非活躍狀態。5.根據權利要求1所述的處理器,其中第二中斷周期性地被接收,并且其中對于第二中 斷被接收的每次發生,第二中斷在沒有故意延遲的情況下由第一核心處理,并且在對應時 間延遲完成之前以及在所述第一核心保持在活躍狀態時中斷延遲邏輯指示所述第一核心 開始處理每個附加的掛起中斷。6.根據權利要求5所述的處理器,還包括:對于每次發生第二中斷的接收,在第二中斷 和所述附加的掛起中斷的處理完成時,第一核心轉變到非活躍狀態。7.根據權利要求1所述的處理器,其中所述中斷延遲邏輯還在第三時間接收第三中斷 并且分配給第三中斷第二時間延遲,并且其中中斷延遲邏輯:從第三時間開始延遲處理第三中斷達第二時間延遲,除非在第一中斷或第二中斷正被 處理時第三中斷掛起;并且如果在第一中斷或第二中斷正被處理時第三中斷掛起,則指示第一核心在第二時間延 遲未完成的情況下處理第三中斷。8.根據權利要求7所述的處理器,其中如果在第一中斷或第二中斷被處理時第三中斷 未掛起,則中斷延遲邏輯指示所述核心在第二時間延遲完成之后處理第三中斷。9.根據權利要求1所述的處理器,其中所述中斷延遲邏輯包括計數器,用于計數第一時 間延遲。10.—種系統,包括:動態隨機存取存儲器(DRAM);和處理器,所述處理器包括:一個或多個核心;中斷控制器,用于把一個或多個接收到的中斷中的每一個引導到所述一個或多個核心 中的第一核心;以及中斷延遲控制器,包括:一個或多個延遲計數器,用于計數相應時間延遲來處理對應的中斷,其中,每個延遲計數器在由所述處理器接收到對應的中斷時開始相應的計數;以及 掛起中斷釋放邏輯,響應于第一中斷被處理而在所述相應時間延遲期滿之前把每個掛起中斷發送到中斷控制器。11.根據權利要求10所述的系統,其中如果在與第二中斷相關聯的相應時間延遲期間沒有中斷正在被處理,則中斷延遲控制器在對應的延遲計數器的計數完成時把所述中斷發送給中斷控制器。12.根據權利要求10所述的系統,其中,當第二延遲計數器的計數完成時,所述掛起中斷釋放邏輯在第一核心處于活躍狀態時發送每個掛起中斷到中斷控制器以進行處理。13.根據權利要求10所述的系統,其中在掛起中斷被處理之后,對應的核心變為非活躍。14.根據權利要求10所述的系統,其中所述處理器還包括中斷檢測邏輯,在接收到硬中斷時,所述中斷檢測邏輯在沒有故意延遲的情況下把硬中斷發送到中斷控制器。15.根據權利要求10所述的系統,其中所述處理器還包括計數器分配邏輯,用于分配對應的延遲計數器給接收到的每個軟中斷。16.一種方法,包括: 在第一時間開始由處理器的核心處理第一中斷; 由處理器分配時間延遲給在第二時間接收到的第二中斷; 在開始于第二時間的時間延遲期滿之后由所述核心處理第二中斷,除非第二中斷在第一時間掛起;以及 如果第二中斷在第一時間掛起,則在所述時間延遲期滿之前由所述核心處理第二中斷。17.根據權利要求16所述的方法,其中如果第二中斷在第一時間掛起,則在所述核心響應于第一中斷的處理而處于活躍狀態時處理所述第二中斷。18.根據權利要求16所述的方法,還包括:在第一中斷和第二中斷被處理之后,把所述核心轉變到非活躍狀態。19.根據權利要求16所述的方法,還包括:如果多個中斷在第一時間掛起,則在所述多個中斷中的每一個中斷的相應時間延遲完成之前發送所述多個中斷到所述核心,以供所述核心進行處理,其中所述核心在所述多個中斷被處理時保持在活躍狀態。20.根據權利要求19所述的方法,還包括:在所有掛起中斷被處理之后,把所述核心轉變到非活躍狀態。21.根據權利要求16所述的方法,其中所述時間延遲基于從其接收第二中斷的外圍設備的一個或多個特性來確定。22.根據權利要求16所述的方法,還包括: 分配對應時間延遲給多個中斷中的每一個,其中所述多個中斷中的每一個被延遲處理達開始于相應的接收時間的所述對應時間延遲,除非另一中斷正在被處理。23.根據權利要求22所述的方法,還包括:當特定中斷開始被處理時,在所述對應時間延遲未完成的情況下發送每個掛起中斷到所述核心以進行處理。24.—種設備,包括用于執行權利要求16-23中任一項所述的方法的裝置。25.至少一種計算機可讀介質,包括指令,當所述指令被執行時使得系統能夠執行權利要求16-23中任一項所述的方法。
【文檔編號】G06F13/24GK106030559SQ201480076274
【公開日】2016年10月12日
【申請日】2014年3月24日
【發明人】T.W.羅, G.N.秦亞, P.哈馬倫, R.富爾塔斯, H.王, H.孫
【申請人】英特爾公司