TWI447650B - 中斷分佈方案 - Google Patents
中斷分佈方案 Download PDFInfo
- Publication number
- TWI447650B TWI447650B TW100144040A TW100144040A TWI447650B TW I447650 B TWI447650 B TW I447650B TW 100144040 A TW100144040 A TW 100144040A TW 100144040 A TW100144040 A TW 100144040A TW I447650 B TWI447650 B TW I447650B
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- processor
- controller
- processors
- state
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
- G06F2213/2424—Interrupt packet, e.g. event
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Description
本發明係關於中斷控制器之領域。
數位系統大體而言包括執行軟體之一或多個處理器,及可由軟體控制之各種硬體器件。舉例而言,數位系統包括:諸如桌上型電腦、膝上型電腦、迷你台式電腦(net top)、伺服器、工作站等之電腦系統;諸如蜂巢式電話、個人數位助理、智慧型電話等之行動器件;及其他專用器件。硬體器件大體可提供諸如儲存(例如,磁碟機、快閃記憶體、光碟機等)、通信(例如,網路連接、無線操作等)及其他輸入/輸出功能性(觸碰螢幕、鍵盤、滑鼠、顯示器、音訊等)之特定功能性。
硬體器件通常經設計以在沒有軟體介入之情況下在一時間週期中操作。當需要軟體介入時(例如,當對應於器件之驅動程式需要被執行時),硬體器件可用信號發送一中斷。該中斷經傳遞至系統中之處理器中之一者,該處理器可暫時中止任務之執行以執行對應於中斷的程式碼(例如,中斷服務常用程式碼及/或驅動程式碼)。
當系統包括一個以上處理器時,給定中斷需要被提供至處理器中之一者(且僅一者)。可使用靜態分佈方案,其中每一器件之中斷映射至一特定處理器,且該映射並不很頻繁地改變。亦即,同一處理器通常伺服給定中斷。若目標處理器不能即刻回應於中斷,則此等靜態方案可導致長中
斷延時。若多個處理器可接收一給定中斷,則在處理器試圖回應於中斷時存在一競爭條件。此等競爭條件可降低系統中之效能及/或電力效率。
在一實施例中,一中斷控制器可實施用於在多個處理器間分佈中斷的一中斷分佈方案。該方案可在判定哪一處理器應接收一給定中斷時考慮各種處理器狀態。舉例而言,處理器狀態可包括處理器是否在睡眠狀態中、中斷是否被啟用、處理器是否已回應於先前中斷等。藉由在分佈中斷時考慮處理器狀態,可在一些實施例中減少中斷延時。替代性地或額外地,中斷控制器可實施逾時機制以偵測到一中斷正被延遲(例如,在被提供至一處理器後)。中斷可在逾時期滿時被重新評估,且可能經提供至另一處理器。
在一實施例中,一中斷控制器可經組態以回應於傳遞用於一中斷之中斷向量至一回應處理器而自動地且不可部分完成地遮罩該中斷。該中斷控制器可將來自處理器之中斷應答序列化為不可部分完成遮罩之一部分。因此,在此等實施例中,每一中斷經傳遞至一個處理器,且不超過一個處理器。
以下[實施方式]參考以下簡單描述之隨附圖式。
雖然本發明易具有各種修改及替代形式,但在圖式中藉由實例展示了其特定實施例,且將在本文中對其進行詳細描述。然而應理解,該等圖式及對其之詳細描述並非意欲
將本發明限於所揭示的特定形式,而正相反,本發明意欲涵蓋屬於如附加申請專利範圍所界定的本發明之精神及範疇內的所有修改、均等物及替代物。本文中所使用之標題僅為達成組織性目的,且不意欲用以限制此描述之範疇。如本申請案全篇中所使用之詞語「可」係在允許意義(亦即,意謂有可能)而非強制意義(亦即,意謂必須)上使用。類似地,詞語「包括」意謂包括但不限於。
可將各種單元、電路或其他組件描述為「經組態以」執行一或多個任務。在此等內容脈絡下,「經組態以」係對結構之廣泛敍述,其大體上意謂「具有在操作期間執行該或該等任務之電路」。因而,單元/電路/組件可甚至在該單元/電路/組件當前未接通時經組態以執行該任務。大體而言,形成對應於「經組態以」之結構的電路可包括用以實施操作之硬體電路。類似地,為便於描述,可將各種單元/電路/組件描述為執行一或多個任務。此等描述應解釋為包括片語「經組態以」。敍述經組態以執行一或多個任務之一單元/電路/組件明確地不意欲援引35 U.S.C.§ 112第六段對於該單元/電路/組件之解釋。
下文描述用於處置系統中之中斷的各種實施例。大體而言,一中斷可為自一器件(例如,周邊器件)至一處理器之通信以使該處理器暫時中止該處理器當前正執行之程式碼的執行以便執行對應於該中斷之程式碼。來自器件之中斷的通信可呈各種形式(例如,信號之確證、中斷訊息之傳輸,等)。器件可使用中斷以使用於器件之中斷服務常用
程式碼及/或驅動程式碼被執行。一旦處理器已採取至少一些步驟來處理中斷,暫時中止之程式碼的處理可繼續。在一些狀況下,暫時中止之程式碼可保持暫時中止直至中斷被完全地處理為止。在其他狀況下,可使用推遲之中斷處理方案,其中中斷服務常用程式碼記錄中斷以用於稍後處理,接著返回至暫時中止之程式碼。
中斷控制器可接收來自系統中之各種器件的中斷,且可提供中斷至處理器。提供一中斷大體上可指代傳輸中斷之指示至處理器。在一些實施例中,可藉由確證一至處理器之中斷請求信號而提供中斷。在其他實施例中,可藉由傳輸一訊息至識別中斷之處理器而提供中斷。處理器可以多種方式回應於中斷。舉例而言,處理器可傳輸一中斷應答以指示對中斷之接受。可以多種形式來傳輸中斷應答。舉例而言,中斷應答可為對指定為中斷應答暫存器之暫存器的暫存器讀取。中斷應答可為在處理器之介面上的特定傳輸。在其他實施例中,處理器可傳達對中斷之接受或拒絕。
如下文較詳細地強調,在一些實施例中,中斷控制器可考慮可影響處理器接受中斷(或以低延時接受中斷)之能力的各種處理器狀態。因此,中斷控制器可基於在一給定中斷時各種處理器中之處理器狀態來動態地識別一處理器以接受給定中斷。同一中斷之隨後發生可基於隨後發生時的不同處理器狀態而提供至一不同處理器。在一些實施例中,基於處理器狀態選擇一處理器可導致較低總中斷延
時。大體而言,處理器狀態可包括經直接程式化至處理器中的狀態(例如,中斷啟用/停用、特殊權限級等)及/或直接應用於處理器之狀態(例如,電力閘控、時脈閘控等)。
在一些實施例中,中斷控制器可經組態以回應於一中斷正由一處理器接受而不可部分完成地遮罩該中斷。以此方式,中斷控制器可避免傳輸同一中斷至一個以上處理器。額外地,中斷之源可為對層級敏感的,且因此中斷可保持確證直至源收到所要處理為止。遮罩可防止中斷被再次報告直至遮罩由軟體明確地改變為止。中斷之自動遮罩亦可允許中斷應答為無狀態的。舉例而言,中斷控制器無需知曉處理器是否在處理一中斷的過程中。因此,與其他中斷機制相比,可簡化中斷控制器之設計。
圖1為一種包括多個處理器60A至60B、中斷控制器50、電力管理器52及多個周邊設備64A至64B之系統5的一實施例之方塊圖。周邊設備64A至64B可耦接至中斷控制器50且可經組態以用信號發送中斷至中斷控制器50(圖1中之「中斷」)。電力管理器52可包括一離線暫存器54且可耦接至中斷控制器50。特定言之,離線暫存器54之內容及關於處理器60A至60B之額外處理器狀態(圖1中之「處理器狀態」)可藉由電力管理器52提供至中斷控制器50。處理器60A至60B可耦接至電力管理器52及中斷控制器50。特定言之,處理器60A至60B可各自提供額外處理器狀態「PState」至中斷控制器50,且可各自接收來自中斷控制器50之一中斷請求(「IRQ」)。處理器60A至60B及中斷控
制器50可額外地經由中斷控制器暫存器介面62(圖1中之「IC Reg介面」)來耦接。中斷控制器50可進一步包括一遮罩暫存器56及至少一逾時暫存器58。
在一實施例中,中斷控制器50經耦接以接收處理器60A至60B之處理器狀態,並經組態以在判定哪一處理器60A至60B應被提供一中斷時包括處理器狀態。因此,可取決於與處理器相關聯之當前處理器狀態而針對一給定中斷動態地判定所選處理器60A至60B。中斷控制器50可提供中斷至所選處理器60A至60B(例如,藉由確證至圖1中之選定處理器60A至60B的IRQ)。處理器60A至60B可(例如)藉由傳輸一中斷應答(IAck)至中斷控制器50而接受中斷。藉由在用以將一中斷投送至給定處理器60A至60B的決策中包括處理器狀態,用於整個中斷處理之延時可藉由減少自提供中斷至處理器60A至60B到該處理器接受該中斷的延時而減少。
由中斷控制器50監視之處理器狀態可包括可影響處理器回應於一中斷之能力的任一狀態。舉例而言,來自電力管理器52之處理器狀態可包括處理器之電力狀態。若處理器60A至60B在低電力狀態(諸如,睡眠狀態)中,則該處理器可需要時間來轉變至一較高電力狀態(諸如,完全開啟狀態)以回應於中斷。因此,已經在較高電力狀態中之處理器可為用於提供中斷的一較佳選擇。來自電力管理器52之處理器狀態可進一步包括來自離線暫存器54之離線狀態。離線狀態可藉由在系統5上執行之軟體而程式化。若在離
線暫存器54中給定處理器被指示為離線,則該處理器可能不可用於伺服中斷且因此可不被選擇以被提供中斷。
來自處理器60A至60B之處理器狀態可包括該處理器中當前是否啟用中斷的指示。當前使中斷停用之處理器可比一當前使中斷啟用之處理器更不可能迅速接受一提供之中斷。在一實施例中,處理器60A至60B可包括一儲存一中斷啟用或中斷停用位元之暫存器。該位元可由處理器60A至60B輸出以用於外部監視。來自處理器60A至60B之其他處理器狀態可包括(例如)處理器之特殊權限狀態的指示。在低特殊權限狀態(例如,使用者狀態)中之處理器可正執行應用程式碼,而在較高特殊權限狀態(例如,監督員狀態)中之處理器可正執行作業系統程式碼。與在較高特殊權限狀態中之處理器相比,在較低特殊權限狀態中之處理器可為用於提供中斷之較佳選擇。在各種實施例中,可考慮任何其他處理器狀態。
在支援處理器及中斷控制器之虛擬化的實施例中,可對於投送中斷考慮額外處理器狀態。在此等環境中,周邊器件(且因此其中斷)可為客體作業系統(OS)私用的。亦即,器件可經指派給客體OS,且可能不可用於由在系統上執行之其他客體OS使用直至器件不再被指派給該客體OS為止。對於一為客體OS私用之中斷,若中斷經投送至處理器中之已執行該客體OS之一者,則可縮短中斷延時。每一處理器可經組態以提供哪一客體OS正在該處理器上執行的指示至中斷控制器(例如,客體標記),且中斷控制器可經組
態以在選擇一處理器以將中斷投送至其時考慮該指示。可支援逾時以判定所選處理器不回應於中斷,且可回應於逾時而選擇一執行超管理器/虛擬機監視程式之處理器。若無處理器正執行所要客體OS,則可使用剩餘投送規則來選擇處理器。在一些實施例中,不同中斷指示可用以中斷超管理器/虛擬機監視程式(例如,可存在用於超管理器/虛擬機監視程式及客體中之每一者的一獨立IRQ)。在此等實施例中,可在未正在任一處理器上執行的所要客體OS中確證超管理器/虛擬機監視程式IRQ。
在一實施例中,中斷控制器50可支援一或多個逾時。回應於提供一中斷至一選定處理器,中斷控制器50可以來自逾時暫存器58之一相應逾時值來初始化一逾時計數器。若在選定處理器未回應於中斷的情況下逾時期滿,則中斷控制器50可重新評估中斷並提供中斷至另一處理器。因此,若最初選定之處理器的回應受到延遲,則另一處理器可經選擇並可回應。在一實施例中,未自先前選定之處理器撤銷該提供。因此,無論哪一處理器首先回應,皆可被提供該中斷。在其他實施例中,可自先前選定之處理器撤銷該提供(例如,藉由撤銷確證其IRQ)。
逾時可為可軟體程式化的,且可基於特定事件之預期延時。舉例而言,若在處理器中中斷被停用,則其可在一典型時間量(例如,20微秒)中保持停用。逾時可經程式化以略長於典型時間,使得若在典型時間量中停用中斷則處理器可在逾時發生之前啟用中斷並接受中斷。若處理器在一
低電力狀態中,則在使處理器離開低電力狀態的同時特定時間量可流逝(例如,60微秒)。逾時可經程式化以略長於此時間量,使得處理器可在逾時發生之前到達完全開啟狀態並接受中斷。
在一實施例中,可支援多個逾時值且其可經程式化於逾時暫存器58中。每一逾時值可對應於一處理器狀態及相關聯之中斷接收延時。回應於選擇一處理器以將中斷提供至其,中斷控制器50可用對應於該處理器之狀態的逾時初始化一逾時計數器。在另一實施例中,逾時值不但可視選定處理器之當前狀態而定,而且若當前選擇之處理器逾時則亦可視可能被選擇的下一處理器之當前狀態而定。若一中斷被提供至一處理器且在該處理器執行中斷應答之前逾時期滿,則該處理器可被視為無回應且該處理器之無回應性可影響隨後的中斷投送操作。
除針對每一處理器量測之逾時值(例如,自IRQ確證至經由中斷應答之中斷接受)外,亦可針對每一中斷量測逾時。可量測自投送一中斷至給定處理器至伺服該中斷的中斷逾時。類似於上文論述之針對處理器的逾時之期滿,中斷逾時之期滿可導致中斷被重新評估及中斷被提供至不同處理器。在一實施例中,中斷逾時可不會使處理器被視為無回應,且因此可不影響隨後中斷投送操作。
在一實施例中,中斷控制器50可回應於來自一處理器之一中斷應答而不可部分完成地遮罩一傳遞至處理器的中斷。中斷控制器50可包括遮罩暫存器56,其可包括針對由
中斷控制器50支援之每一中斷的遮罩位元。中斷控制器50可將遮罩位元設定為一遮罩狀態以遮罩中斷。遮罩位元亦可經設定為一未遮罩狀態以不遮罩中斷。在一實施例中,遮罩狀態為設定狀態且未遮罩狀態為清除狀態,儘管相反狀態指派可用於其他實施例中。
為了不可部分完成地遮罩一中斷,中斷之遮罩生效,使得即使儘快地接收一隨後中斷應答仍將不會回應於該隨後中斷應答而提供中斷。舉例而言,若在中斷控制器50中存在管線化,則可在隨後中斷應答可存取中斷狀態之前始終一直管線化遮罩之效應。在一實施例中,中斷控制器50可序列化中斷應答,從而防止一中斷應答偵測到一待由先前中斷應答遮罩的中斷。注意,可獨立於上文論述的處理器狀態感知中斷投送而實施中斷之不可部分完成遮罩,且亦可在單一處理器實施例中實施中斷之不可部分完成遮罩。
如上文所提及,可藉由在系統5中(例如,在處理器60A至60B上)執行之軟體而程式化離線狀態以指示特定處理器不可用於中斷。相對比而言,一在低電力狀態中之處理器可在接受中斷時經歷較長延時,但該低電力狀態處理器仍可用於中斷。在一實施例中,中斷控制器50不提供中斷至離線的處理器。可存在導致軟體藉由使一給定處理器離線而防止將中斷投送至該給定處理器的多種原因。舉例而言,處理器可正執行一重要程式碼序列,且自簡單觀點或安全觀點來看可需要防止中斷。舉例而言,程式碼序列可為啟動程式碼序列。可視為重要的其他程式碼序列為存取
敏感記憶體位置(諸如,儲存秘密之位置)的程式碼序列。其他實例可為與電力有關的。亦即,若處理器離線則總體上系統可更具電力效率。在系統之熱包絡中可不存在足夠餘地以使處理器在線上。亦即,若處理器在線上,則溫度可增加太多。
如上文所論述,中斷控制器50可經組態以提供一中斷至處理器。在所說明之實施例中,IRQ信號可經確證以提供一中斷。其他實施例可傳達一中斷訊息至處理器,該處理器可擷取並應答該訊息。處理器可以任一所要方式回應於該提供。舉例而言,可傳輸上文論述之中斷應答(IAck)。處理器正接受由中斷控制器提供之一中斷的任一肯定確認可構成一回應。另外其他實施例可明確地接受或拒絕一提供之中斷。
周邊器件64A至64B可包括包括於系統5中之任何所要輸入/輸出器件或其他硬體器件。舉例而言,周邊設備64A至64B可包括諸如一或多個網路連接媒體存取控制器(MAC)(諸如,乙太網路MAC或無線保真(WiFi)控制器)之網路連接周邊設備。包括各種音訊處理器件之音訊單元可包括於周邊設備64A至64B中。一或多個數位信號處理器可包括於周邊設備64A至64B中。周邊設備64A至64B可包括任一其他所要功能,諸如計時器、晶片上秘密記憶體、加密引擎等或其任一組合。周邊設備64A至64B可包括圖形處理硬體、視訊處理硬體、視訊編碼器/解碼器及/或顯示硬體。
每一周邊器件64A至64B可傳達一或多個中斷至中斷控制器50。在所說明之實施例中,每一周邊器件64A至64B可包括一中斷信號以用信號發送一中斷至中斷控制器50。一些器件可包括多個中斷信號。其他器件可更進一步使用一中斷訊息來傳送中斷及相關狀態(若存在)。
處理器60A至60B可實施任一指令集架構,且可經組態以執行該指令集架構中界定的指令。處理器60A至60B可使用任一微架構,包括純量、超純量、管線化、超管線化、無序、按序、理論式、非理論式等或其組合。處理器60A至60B可包括電路,且視情況可實施微編碼技術。處理器60A至60B無需為對稱的。亦即,處理器60A至60B可為不同的,可實施不同指令集,等。舉例而言,處理器60A至60B可包括通用中央處理單元(CPU)、專用處理器、嵌入式處理器、數位信號處理器等。
除提供處理器狀態至中斷控制器50及接收來自中斷控制器50之IRQ外,處理器60A至60B亦可實施介面62以與中斷控制器50通信。互連件62可在處理器60A至60B與中斷控制器50之間傳送暫存器存取操作(例如,讀取及寫入)。此等操作可包括一位址,其可由中斷控制器50解碼以識別正被讀取/寫入之暫存器。位址可為處理器60A至60B之記憶體位址空間之一部分(亦即,暫存器可為記憶體映射式)。或者,位址可為組態空間、I/O空間或任一其他位址空間之一部分。
暫存器存取操作中之一者可為對IAck暫存器之讀取操
作。IAck暫存器讀取可為上文論述之中斷應答,且回應於IAck暫存器讀取而傳回的資料可為對應於正被傳遞至處理器之中斷的中斷向量。其他暫存器存取操作可為離線暫存器54及逾時暫存器58之讀取或寫入。可使用兩個暫存器寫入操作來更新遮罩暫存器56。至一設定遮罩暫存器之寫入可設定遮罩暫存器中之一或多個遮罩位元(例如,將所識別之遮罩位元置於遮罩狀態中)。至一清除遮罩暫存器之寫入可清除一或多個遮罩位元(例如,將所識別之遮罩位元置於未遮罩狀態中)。設定遮罩暫存器及清除遮罩暫存器可具有可由中斷控制器50解碼以設定或清除遮罩暫存器中之位元的不同位址。亦即,設定遮罩暫存器及清除遮罩暫存器可實體上不存在,但替代地可指定在遮罩暫存器上發生之操作。類似地,IAck暫存器可實體上不存在,但可導致將中斷向量傳遞至讀取暫存器之處理器。其他暫存器存取操作可讀取/寫入中斷控制器50中之其他暫存器(圖1中未展示)。
介面62可具有任一組態。舉例而言,介面62可為一亦用以自處理器60A至60B傳輸記憶體操作及其他類型操作的通用介面(例如,匯流排、點對點互連件等)。介面62可通過處理器60A至60B與中斷控制器50之間的一或多個其他單元。舉例而言,在圖10中所示之實施例中,介面可通過橋接器/DMA單元。
如上文所提及,處理器60A至60B可在各種電力狀態中。在完全開啟狀態中,處理器可預備執行指令且可接受
中斷。完全開啟狀態可包括可藉以支援操作的多個電壓/頻率對(例如,視工作負荷、可用電力等而定)。亦可存在一或多個低電力狀態。在一低電力狀態中,處理器60A至60B可為閒置(未執行指令)且可需要一時間週期來轉變至完全開啟狀態。該用以轉變之時間週期可視特定低電力狀態而定。舉例而言,處理器可經時脈閘控,其中時脈未在處理器中雙態切換。可需要幾個循環來重新啟動時脈並預備處理器以進行執行。在另一低電力狀態中,至處理器中之邏輯電路的電力可經閘控,但諸如處理器中之快取記憶體的記憶體陣列仍可被供電。自此電力閘控狀態返回至完全開啟狀態可包括對邏輯電路供電及等待電力穩定。在又一低電力狀態中,至處理器邏輯電路及記憶體陣列之電力可經閘控。自此電力閘控狀態返回可包括對電路供電,且亦可包括初始化記憶體陣列。其他低電力狀態可係可能的。在處理器中各種低電力狀態亦可稱為睡眠狀態。
注意,圖1中展示系統5中之與中斷處理有關的各種互連件。然而,可根據需要提供各種其他互連件。額外地,可在系統5中提供各種其他組件(例如,記憶體控制器、耦接至記憶體控制器之記憶體等)。進一步注意圖1中所說明之組件中的一或多者及/或其他組件可整合至單一積體電路上作為系統單晶片。可存在任何數目之圖1中所示的各種組件(例如,任何數目之處理器60A至60B、任何數目之周邊設備64A至64B等)。
現轉至圖2,展示說明用以投送一中斷至一處理器之中
斷控制器50之一實施例的操作的流程圖。雖然為易於理解以特定次序展示區塊,但可使用其他次序。可在中斷控制器50中之組合邏輯中並列執行區塊。區塊、區塊之組合及/或作為整體之流程圖可在多個時脈循環內經管線化。中斷控制器50可經組態以實施圖2中所說明之操作。
使用對應於各種處理器60A至60B之處理器狀態,中斷控制器50可經組態以識別處理器60A至60B中之哪一者符合被提供中斷之條件(區塊70)。若處理器之處理器狀態(可能與其他處理器之處理器狀態相比)指示提供一中斷至該處理器係可接受的,則給定處理器可符合被提供該中斷之條件。一些處理器可不合格。舉例而言,已經被提供中斷且逾時的處理器可不符合中斷之條件。在除接受一中斷外還實施一通信以拒絕一中斷的實施例中,已拒絕中斷之處理器可不合格。離線之處理器可不合格。額外地,給定中斷可經指定以將處理器60A至60B之子集作為目標(例如,作為中斷訊息之一部分或經由與中斷相關聯之可程式化狀態)。未作為目標之處理器可不合格。
中斷控制器50可經組態以選擇合格處理器中之一者(區塊72),並提供中斷至選定之處理器(例如,確證至選定處理器之IRQ)(區塊74)。中斷控制器50可經組態以可能基於一些實施例中之選定處理器之處理器狀態而初始化用於選定處理器之一逾時計數器(區塊76)。中斷控制器50可經組態以判定中斷是否已被接受(決策區塊78)。舉例而言,中斷控制器50可偵測來自處理器之中斷應答。若中斷被接受
(決策區塊78,「是」分支),則中斷之投送可完成。若中斷仍未被接受(決策區塊78,「否」分支)且用於中斷當前被提供至的處理器之逾時未期滿(決策區塊80,「否」分支),則中斷控制器50可繼續檢查逾時及中斷接受。若中斷仍未被接受(決策區塊78,「否」分支)且偵測到中斷被提供至的處理器之逾時(決策區塊80,「是」分支),則中斷控制器50可認為處理器不符合中斷之條件(區塊82),且可選擇另一合格處理器(區塊72)以向其提供中斷(區塊74)。
接下來轉至圖3,展示說明回應於中斷應答(IAck)之中斷控制器50之一實施例的操作之流程圖。雖然為易於理解而以特定次序展示區塊,但可使用其他次序。可在中斷控制器50中之組合邏輯中並列執行區塊。區塊、區塊之組合及/或作為整體之流程圖可在多個時脈循環內經管線化。中斷控制器50可經組態以實施圖3中所說明之操作。
中斷控制器50可傳回識別投送至處理器之中斷的中斷向量(區塊84)。若並行將一個以上中斷提供至處理器,則中斷控制器50可選擇所提供中斷中之一者。舉例而言,可選擇最低編號之中斷向量,或可接受最高編號之中斷。在另一實例中,可選擇最舊中斷。在中斷間實施優先權的實施例中,可選擇最高優先權中斷。可隨機地選擇中斷。中斷控制器50亦可不可部分完成地遮罩由中斷向量識別之中斷(區塊86)。
接下來轉至圖4,展示說明藉由中斷控制器50識別合格
處理器之一實施例的流程圖(來自圖2之區塊70)。雖然為易於理解而以特定次序展示區塊,但可使用其他次序。可在中斷控制器50中之組合邏輯中並列執行區塊。區塊、區塊之組合及/或作為整體之流程圖可在多個時脈循環內經管線化。中斷控制器50可經組態以實施用於系統中之每一處理器的圖4中所說明之操作。
若處理器離線(如離線暫存器中所指示)或若中斷已經投送至處理器(決策區塊90,「是」分支,及決策區塊92,「是」分支),則中斷控制器可經組態以將處理器識別為不合格(區塊94)。若為否,且處理器在睡眠狀態或其他低電力狀態中(決策區塊96,「是」分支),則中斷控制器50可經組態以將處理器識別為合格且將處理器包括於合格群3中(區塊98)。若處理器未離線,尚未被投送,且未在睡眠狀態中(決策區塊90、92及96,「否」分支),且處理器無回應或在處理器中中斷被停用(決策區塊100,「是」分支),則中斷控制器50可經組態以將處理器識別為合格且將處理器包括於合格群2中(區塊102)。
如先前所提及,在一些實施例中,處理器60A至60B之子集可經識別為給定中斷之目標。在此等實施例中,僅包括於目標子集中之處理器可為合格處理器。未在目標子集中之處理器可以類似於離線處理器之方式來對待,因為其可未經選擇以被提供中斷。
在實施中斷之優先權的實施例中,亦可在識別合格處理器時將優先權作為考慮因素。舉例而言,若一處理器當前
正處理一較高優先權中斷,則該處理器可被視為不符合中斷之條件(或不及一些其他處理器合格)。正處理一較低優先權中斷之處理器可被中斷以處理一較高優先權中斷,且因此可認為符合較高優先權中斷之條件。
合格處理器之分群可按用於提供中斷之次序或偏好設定,其中群1最佳;群2次最佳;且群3在合格處理器中最不佳。群1處理器不在低電力狀態中,回應於中斷,且不使中斷停用,因而其可最可能以低延時接受一提供之中斷。群2處理器亦不在低電力狀態中但可無回應或可當前使中斷停用。因此,平均而言,可預期比群1較高之延時。群3處理器在低電力狀態中,且因此,平均而言,可針對此群預期最高延時。
基於上述論述,圖5之流程圖可說明在中斷控制器50中選擇一合格處理器(圖2中之區塊72)的一實施例。雖然為易於理解而以特定次序展示區塊,但可使用其他次序。可在中斷控制器50中之組合邏輯中並列執行區塊。區塊、區塊之組合及/或作為整體之流程圖可在多個時脈循環內經管線化。中斷控制器50可經組態以實施圖5中所說明之操作。
若群1不為空(決策區塊106,「否」分支),則中斷控制器50可經組態以自群1中選擇一處理器(區塊108)。若群1為空且群2不為空(決策區塊106,「是」分支及決策區塊110,「否」分支),則中斷控制器50可經組態以自群2中選擇一處理器(區塊112)。若群1及2為空且群3不為空(決策
區塊106及110,「是」分支及決策區塊114,「否」分支),則中斷控制器50可經組態以自群3中選擇一處理器(區塊116)。在一給定群中,可選擇任一合格處理器。舉例而言,可選擇最低編號處理器,或可選擇最高編號處理器。可隨機地選擇一處理器,或可選擇最近未選擇之處理器。
現轉至圖6,展示中斷控制器50之一實施例之方塊圖。在圖6之實施例中,中斷控制器50包括一暫存器介面單元120、一遮罩/軟體(SW)OR單元122、一中斷路由器124及諸如處理器排程器126A至126B之多個處理器排程器。暫存器介面單元120可耦接至IC暫存器介面62,以及遮罩/軟體OR單元122、中斷路由器124及視情況處理器排程器126A至126B。大體而言,暫存器介面單元120可耦接至可經由介面62上之暫存器讀取/寫入操作控制或更新的中斷控制器50中之任何其他組件。遮罩/軟體OR單元122可包括遮罩暫存器56,可經耦接以接收來自系統中之各種中斷源的中斷,且可耦接至中斷路由器124。中斷路由器124可經耦接以接收處理器之離線狀態及其他處理器狀態,可包括逾時暫存器58,且可耦接至處理器排程器126A至126B。每一處理器排程器126A至126B可經耦接以提供IRQ信號至一相應處理器60A至60B。
遮罩/軟體OR單元122可經組態以將遮罩應用於自中斷源(例如,周邊設備64A至64B)接收的中斷,從而提供經遮罩之中斷至中斷路由器124。在一實施例中,遮罩/軟體OR單元122亦可提供用於使在處理器上執行之軟體引起中斷(如
同相應源已確證中斷一樣)的一機制。軟體可在介面62上傳輸暫存器存取操作以實現所要中斷。遮罩/軟體OR單元122可將軟體中斷與自各別源接收之實際中斷進行邏輯或(OR)運算以產生每一中斷,且可根據遮罩暫存器56遮罩經邏輯或之中斷以產生遮罩之中斷。其他實施例可不實施軟體OR且可簡單地遮罩自中斷源接收的中斷以提供遮罩之中斷至中斷路由器124。
中斷路由器124可接收遮罩之中斷,且可經組態以基於離線狀態、處理器狀態、逾時等來投送中斷至處理器。亦即,在一實施例中,中斷路由器124可實施圖2之流程圖。中斷路由器可用信號發送給對應於中斷經投送至之處理器的處理器排程器126A至126B。
每一處理器排程器126A至126B可經組態以回應於接收到來自中斷路由器124之中斷而確證至相應處理器60A至60B之IRQ信號。IRQ信號可為一般中斷請求信號。各種處理器實施亦可支援專用中斷或其他中斷。舉例而言,一些實施例除IRQ外還可支援一低延時中斷。除圖6中所示之外部器件中斷外,實施例還可支援各種計時器中斷。除外部器件中斷外,處理器排程器126A至126B還可經組態以在IRQ信號上排程計時器中斷,及/或可在其他中斷上排程計時器中斷且可排程其他類型之中斷。
暫存器介面單元120可經組態以解碼來自介面62之暫存器存取操作,並與中斷控制器50之其他組件互動以完成暫存器存取操作。對於暫存器讀取操作,暫存器介面單元
120可經組態以將來自暫存器讀取操作之讀取資料傳回至起始處理器。暫存器介面單元120可經組態以解碼暫存器存取操作之位址以判定哪一暫存器正被存取。額外地,源處理器可進一步識別哪一暫存器正被存取(例如,對於每處理器之暫存器,諸如用於IAck命令之IAck暫存器)。
現轉至圖7,展示對應於一中斷的遮罩/軟體OR單元122之一部分的一實施例之方塊圖。類似電路可經提供用於每一其他中斷。圖7中所示之電路為說明單元122之操作的一實施例,且可使用包括圖7中所示之電路之任何布爾均等物的其他實施。圖7之實施例包括一遮罩觸發器130、或閘132、軟體中斷觸發器134、或閘136及及閘138。
遮罩觸發器130可儲存用於中斷的遮罩位元(且因此連同用於其他中斷之類似觸發器可為遮罩暫存器56之部分)。在此實施例中遮罩位元可經設定以遮罩中斷並經清除以不遮罩中斷。因此,遮罩觸發器130之反相輸出經提供至及閘138以遮罩由或閘136輸出之中斷(硬體或軟體產生的)。亦即,若遮罩位元經設定,則遮罩觸發器130之反相輸出經清除且及閘138之輸出經清除。若遮罩位元被清除,則遮罩觸發器130之反相輸出經設定且中斷作為遮罩之中斷通過及閘138。因此,在此實施例中,中斷為高態有效。其他實施例可使用低態有效中斷且可使用反及閘。或閘136將外部中斷與軟體中斷觸發器134之輸出進行邏輯或運算。因此,若外部(硬體)中斷經確證或軟體已確證中斷,則確證由或閘136輸出之中斷。
可回應於使此中斷傳遞至應答處理器之IAck循環或回應於經由一至設定遮罩暫存器(或閘132)之寫入設定遮罩的軟體而於觸發器130中設定遮罩位元。由中斷控制器硬體回應於IAck循環自動地設定遮罩位元可實施遮罩位元之不可部分完成設定。下一IAck循環因此可接收一不同中斷(因為此中斷現在被遮罩),且因此多個處理器對讀取中斷之競爭條件可被適當地處置。允許軟體亦設定遮罩位元可允許軟體有效地停用一中斷。舉例而言,軟體亦可在伺服中斷後清除遮罩位元。
在所說明之實施例中,軟體可藉由執行一至一設定遮罩暫存器之寫入操作而設定遮罩暫存器56中之遮罩位元。寫入資料中之設定位元可識別設定哪些遮罩位元。暫存器介面單元120可解碼設定遮罩暫存器寫入,且可基於寫入資料來確證軟體設定遮罩信號。類似地,軟體可執行一至一清除遮罩暫存器之寫入操作,且寫入資料中之設定位元可識別清除哪些遮罩位元。暫存器介面單元120可解碼清除遮罩暫存器寫入,且可基於寫入資料來確證軟體清除遮罩信號。
以一類似方式,軟體可藉由一設定中斷暫存器寫入操作來觸發一或多個中斷。寫入資料可識別設定哪些中斷位元,且暫存器介面單元120可確證相應軟體設定中斷信號以設定觸發器134。為了清除軟體產生之中斷,軟體可發出一清除中斷暫存器寫入操作。寫入資料可識別清除哪些中斷位元(例如,藉由寫入資料中在相應位元位置處的設
定位元),且暫存器介面單元120可確證相應軟體清除中斷信號。
觸發器130及134兩者經說明為具有設定及清除輸入。觸發器可以任一所要方式來實施(例如,設定-重設(SR)觸發器、具有用以基於設定或清除輸入來設定或清除觸發器之邏輯的D觸發器等)。
圖8為用於中斷中之一者的中斷路由器124之一實施例的方塊圖。可提供類似電路以用於每一其他中斷。在圖8之實施例中,中斷路由器124可包括一路由選擇電路140、一逾時控制單元142(其包括逾時暫存器58)及經路由之觸發器144A至144B之一集合。對於每一處理器60A至60B,可存在一經路由之觸發器144A至144B。
路由選擇電路140可接收離線狀態及處理器狀態以及來自遮罩/軟體OR單元122的遮罩之中斷。路由選擇電路140可實施圖2中所說明之操作以識別合格處理器(區塊70)並選擇合格處理器(區塊72)。在一些實施例中,路由選擇電路140可實施圖4及圖5中說明之實施例。路由選擇電路140可輸出SetRoute信號(針對經組態以伺服中斷之每一處理器有一個信號)。針對選定處理器之SetRoute信號可經確證,且可撤銷確證其他SetRoute信號。每一SetRoute信號可耦接至各別觸發器144A至144B之設定輸入,其可分別為至處理器排程器(PScheduler)126A至126B之輸出信號。
在此實施例中,中斷可保持投送至一給定處理器直至遮罩之中斷被撤銷確證(「中斷撤銷確證」,耦接至每一觸
發器144A至144B之清除輸入)。亦即,中斷被保持投送直至其由一處理器接受為止。因此,即使中斷逾時且中斷經投送至另一處理器,其亦保持投送至「逾時」處理器。以此方式,若處理器逾時但隨後準備好回應於中斷,則至該處理器之IRQ仍可在隨後時間被確證。其他實施例可在逾時時或在中斷經提供至另一處理器的任何時間清除投送之狀態。
逾時控制單元142可包括用以基於經程式化至暫存器58中之逾時值來量測逾時的電路。亦即,逾時控制單元可包括用於處理器逾時之用以計數IRQ確證與接受(或逾時)之間的時間及用以計數投送中斷至給定處理器與伺服中斷(或中斷之逾時)之間的時間之計數器。若偵測到逾時,則逾時控制單元142可經組態以向路由選擇電路140確證逾時,路由選擇電路140可重新評估中斷並選擇一處理器以將中斷投送至其。逾時控制單元142可實施圖2之區塊76及80中所說明的操作(且路由選擇110可回應於逾時而實施區塊82)。
注意,逾時控制單元142可每一中斷實施2個計數器,且可存在一相當大數目之中斷。在一實施例中,計數器可由各種逾時共用以減少逾時計數器之硬體成本。圖9中展示可完成共用之實施例。在圖9之實施例中,展示一自發計數器150,其在輸入至計數器的時脈之每一時脈循環遞增一。計數器150可基於為計數器計時之時脈的頻率及逾時之所要範圍而在各種實施例中實施任何數目之位元。
計數器150之位元可耦接至多工器152及154。多工器152係基於來自逾時暫存器58之處理器逾時而加以控制,且多工器154係基於來自逾時暫存器58之中斷逾時而加以控制。更特定言之,由多工器152及154選擇之位元可為預期在所請求逾時週期內兩次改變狀態至邏輯一的位元。接著分別將選定之位元饋送至上升緣偵測電路156及158,其產生一滴答信號。每當選定位元自邏輯零改變至邏輯一時就確證該滴答信號。
來自電路156之滴答信號可耦接至處理器逾時控制單元142A。處理器逾時控制單元142A可經組態以回應於來自相應處理器之IAck或回應於IRQ被撤銷確證(或閘162及多工器164)而將一逾時計數器160初始化為零。另外,選擇多工器166之輸出。多工器166可經組態以除非確證滴答信號,確證用於處理器之IRQ,且逾時尚未被偵測到(及閘168)(在該狀況下,選擇遞增值),否則選擇來自計數器160之當前值。因此,若確證IRQ,則滴答信號之每一確證可使逾時計數器160遞增,直至到達逾時。
比較器170耦接至計數器160之輸出,且可經組態以比較計數器與3。若計數器為三,則可偵測到逾時。因為來自計數器150之計數器位元經選擇以在選定逾時週期內兩次雙態切換為高,所以計數滴答信號之三個滴答可確保已超過逾時。雖然在此狀況下逾時可能不完全準確,但在對於每一逾時僅實施兩位元計數器160及共用自發計數器150的同時,準確度對中斷控制器50之用途而言可為足夠的。處
理器逾時控制單元142A可用信號發送逾時,指示處理器無回應。
中斷逾時控制單元142B可類似於處理器逾時控制單元142A,使用來自電路158之滴答信號。在中斷逾時控制單元142B之狀況下,可自投送中斷至處理器到伺服該中斷(例如,至遮罩之中斷撤銷確證)地量測逾時。可回應於中斷之撤銷確證或投送中斷至任一處理器(或閘174)而經由多工器176將計數器172初始化為零。隨後,可回應於一滴答而經由多工器178遞增計數器同時遮罩之中斷仍被確證(及閘180)。可在比較器182偵測到計數器172已到達三時確證逾時。
注意,雖然圖9中說明用於控制單元142A至142B(在此實施例中,其兩者可為圖8中所示之逾時控制單元142之部分)之特定邏輯電路,但其他實施例可使用任一邏輯電路。特定言之,可使用所說明電路之任何布爾均等物。額外地,在其他實施例中可根據需要將更多計時器用以偵測各種其他逾時。
現轉至圖10,展示系統5之另一實施例的方塊圖。在圖10之實施例中,系統5包括一耦接至外部記憶體12A至12B之積體電路(IC)10。在所說明之實施例中,積體電路10包括一中央處理器單元(CPU)區塊14,中央處理器單元(CPU)區塊14包括一或多個處理器16及2級(L2)快取記憶體18。其他實施例可不包括L2快取記憶體18及/或可包括額外層級之快取記憶體。額外地,涵蓋包括兩個以上處理器16及
僅包括一個處理器16之實施例。積體電路10進一步包括一或多個非即時(NRT)周邊設備20之集合及一或多個即時(RT)周邊設備22之集合。在所說明之實施例中,即時周邊設備包括一影像處理器24、一或多個顯示器管道(display pipe)26、一轉譯單元46及一埠仲裁器28。其他實施例可包括較多或較少影像處理器24、較多或較少顯示器管道26及/或根據需要之任何額外即時周邊設備。影像處理器24可經耦接以接收來自系統5中之一或多個相機的影像資料。類似地,顯示器管道26可耦接至控制系統中之一或多個顯示器的一或多個顯示控制器(未圖示)。影像處理器24可耦接至轉譯單元46,其可被進一步耦接至埠仲裁器28。埠仲裁器28亦可耦接至顯示器管道26。在所說明之實施例中,CPU區塊14耦接至一橋接器/直接記憶體存取(DMA)控制器30,橋接器/直接記憶體存取(DMA)控制器30可耦接至一或多個周邊器件32及/或一或多個周邊介面控制器34。橋接器/DMA控制器30可包括一I/O處理器(IOP)184。周邊器件32及周邊介面控制器34之數目可在各種實施例中自零變化至任一所要數目。圖1中所說明之系統5進一步包括一圖形單元36,其包括諸如G0 38A及G1 38B之一或多個圖形控制器。每一圖形單元之圖形控制器的數目及圖形單元的數目在其他實施例中可不同。如圖1中所說明,系統5包括一耦接至一或多個記憶體實體介面電路(PHY)42A至42B之記憶體控制器40。記憶體實體介面電路42A至42B經組態以在積體電路10之接針上與記憶體12A至12B通信。記憶體
控制器40亦包括埠44A至44E之集合。埠44A至44B分別耦接至圖形控制器38A至38B。CPU區塊14耦接至埠44C。非即時周邊設備20及即時周邊設備22分別耦接至埠44D至44E。包括於記憶體控制器40中之埠的數目在其他實施例中可不同,記憶體控制器之數目在其他實施例中也可不同。記憶體實體介面電路42A至42B及相應記憶體12A至12B之數目在其他實施例中可為一或二個以上。中斷控制器50及電力管理器52亦在圖10中加以說明(且可分別包括離線暫存器54,以及遮罩暫存器56及逾時暫存器58,如圖1中所示)。
在所說明之實施例中,中斷控制器50可接收來自周邊介面控制器34、周邊設備32、圖形單元38A至38B、即時周邊設備22及非即時周邊設備20之中斷。因此,在此實施例中,周邊介面控制器34、周邊設備32、圖形單元38A至38B、即時周邊設備22及非即時周邊設備20可為圖1中之周邊設備64A至64B的實例。在其他實施例中,來自上述之子集的中斷可由中斷控制器50接收。在所說明之實施例中,處理器16中之任一者可伺服中斷且IOP 184可伺服中斷。因此,在此實施例中,處理器16及IOP 184可為圖1中之處理器60A至60B的實例。
額外地,在此實施例中,IC暫存器介面62可經由CPU區塊14自處理器16傳遞至橋接器/DMA控制器30,接著傳遞至中斷控制器50。更特定言之,橋接器/DMA控制器30可包括一主控PIO操作之程式化I/O(PIO)控制器。在此實施
例中暫存器存取操作可為PIO操作。
在一實施例中,每一埠44A至44E可與特定類型之訊務相關聯。舉例而言,在一實施例中,訊務類型可包括即時訊務、非即時訊務及圖形訊務。除上述訊務類型外,替代上述訊務類型,或除上述訊務類型之子集外,其他實施例可包括其他訊務類型。每一訊務類型可以不同方式特徵化(例如,依據要求及行為),且記憶體控制器可基於特徵以不同方式處置訊務類型以提供較高效能。舉例而言,即時訊務需要在特定時間量內伺服每一記憶體操作。若操作之延時超過特定時間量,則錯誤操作可發生在即時周邊設備中。舉例而言,影像資料可在影像處理器24中丟失或顯示器管道26耦接至的顯示器上之顯示影像可在視覺上失真。舉例而言,即時訊務可特徵化為等時。另一方面,圖形訊務可為相對高頻寬,但並非延時敏感的。諸如來自處理器16之非即時訊務因效能原因而更加延時敏感但可經受得住較高延時。亦即,大體可在不引起產生非即時訊務之器件中之錯誤操作的情況下以任一延時來伺服非即時訊務。類似地,大體上可以任一延時來伺服較不延時敏感但較高頻寬的圖形訊務。其他非即時訊務可包括音訊訊務,其為相對低頻寬的且大體上可以合理延時來伺服。多數周邊設備訊務亦可為非即時(例如,至諸如磁性、光學、或固態儲存器之儲存器件之訊務)。藉由提供與不同訊務類型相關聯之埠44A至44E,記憶體控制器40可並列地暴露於不同訊務類型。
如上文所提及,即時周邊設備22可包括影像處理器24及顯示器管道26。顯示器管道26可包括用以提取一或多個影像圖框並摻合該等圖框以產生一顯示影像的電路。顯示器管道26可進一步包括一或多個視訊管線,且可將視訊圖框與(相對)靜態影像圖框摻合以產生用於以視訊圖框速率顯示的圖框。顯示器管道26之結果可為待顯示於顯示幕上的像素串流。像素值可經傳輸至一顯示控制器以用於在顯示幕上顯示。影像處理器24可接收相機資料並將該資料處理成一待儲存於記憶體中之影像。
返回至記憶體控制器40,一埠大體上可為記憶體控制器40上之與一或多個源通信的通信點。在一些狀況下,埠可專用於一源(例如,埠44A至44B可分別專用於圖形控制器38A至38B)。在其他狀況下,埠可在多個源之間被共用(例如,處理器16可共用CPU埠44C,非即時周邊設備20可共用非即時埠44D,且諸如顯示器管道26及影像處理器24之即時周邊設備22可共用即時埠44E)。一埠可耦接至單一介面以與一或多個源通信。因此,當源共用一介面時,可在介面之源側存在一仲裁器以在該等源之間選擇。舉例而言,對於至記憶體控制器40之CPU埠44C,L2快取記憶體18可充當一仲裁器。對於即時埠44E,埠仲裁器28可充當一仲裁器,且對於非即時埠44D,一類似埠仲裁器(未圖示)可為一仲裁器。埠上之單一源或埠上之源的組合可稱為代理。每一埠44A至44E耦接至一介面以與其各別代理通信。該介面可為任何類型之通信媒體(例如,匯流排、
點對點互連件等)且可實施任一協定。在一些實施例中,埠44A至44E可全部實施相同介面及協定。在其他實施例中,不同埠可實施不同介面及/或協定。在另外其他實施例中,記憶體控制器40可具有單一埠。
在一實施例中,每一源可指派一服務品質(QoS)參數至由該源傳輸的每一記憶體操作。QoS參數可識別用於記憶體操作之所請求服務層級。相對於請求較低服務層級之記憶體操作,QoS參數值請求較高服務層級之記憶體操作可被賦予更多偏好。每一記憶體操作可包括一流程ID(FID)。FID可將記憶體操作識別為記憶體操作之流的一部分。記憶體操作之流大體上可係相關的,而來自不同流(即使來自同一源)之記憶體操作可係不相關的。FID之一部分(例如,一源欄位)可識別源,且FID之剩餘部分可識別流(例如,流欄位)。因此,FID可類似於異動ID,且一些源可簡單地將異動ID作為FID來傳輸。在此狀況下,異動ID之源欄位可為FID之源欄位且異動ID之序號(在來自同一源之異動中識別該異動)可為FID之流欄位。在一些實施例中,不同訊務類型可具有不同QoS參數定義。亦即,不同訊務類型可具有不同QoS參數集。
記憶體控制器40可經組態以處理在每一埠44A至44E上接收之QoS參數並可使用相對QoS參數值來相對於來自該埠之其他記憶體操作及相對於在其他埠上接收之其他記憶體操作排程在埠上接收之記憶體操作。更特定言之,記憶體控制器40可經組態以比較自不同QoS參數集中提取的
QoS參數(例如,即時QoS參數與非即時QoS參數)且可經組態以基於該等QoS參數進行排程決策。
在一些實施例中,記憶體控制器40可經組態以升級QoS層級以用於待決之記憶體操作。可支援各種升級機制。舉例而言,記憶體控制器40可經組態以回應於接收到來自一流之具有指定較高QoS層級之QoS參數的另一記憶體操作而升級用於同一流之待決記憶體操作的QoS層級。此QoS升級之形式可稱為帶內升級,因為使用正常記憶體操作傳輸方法傳輸的QoS參數亦充當針對同一流中之記憶體操作的隱含升級請求。記憶體控制器40可經組態以推送(push)來自同一埠或源(但非同一流,因為新接收的記憶體操作指定較高QoS層級)之未決記憶體操作。作為另一實例,記憶體控制器40可經組態以耦接至來自一或多個代理之一邊帶介面,且可回應於在邊帶介面上接收到一升級請求而升級QoS層級。在另一實例中,記憶體控制器40可經組態以追蹤未決記憶體操作之相對存留期。記憶體控制器40可經組態以升級在特定存留期的過時(aged)記憶體操作之QoS層級。升級發生所在之存留期可視過時記憶體操作之當前QoS參數而定。
處理器16可實施任一指令集架構,且可經組態以執行該指令集架構中界定的指令。處理器16可使用任一微架構,包括純量、超純量、管線化、超管線化、無序、按序、理論式、非理論式等或其組合。處理器16可包括電路,且視情況可實施微編碼技術。處理器16可包括一或多個1級快
取記憶體,且因此快取記憶體18為L2快取記憶體。其他實施例可在處理器16中包括多個層級之快取記憶體,且快取記憶體18可為沿階層架構向下的下一層級。快取記憶體18可使用任何大小及任何組態(集合相關型、直接映射型,等)。
圖形控制器38A至38B可為任一圖形處理電路。大體而言,圖形控制器38A至38B可經組態以將待顯示之物件演現(render)至圖框緩衝器中。圖形控制器38A至38B可包括可執行圖形軟體以執行圖形操作之一部分或全部,及/或可執行特定圖形操作之硬體加速的圖形處理器。硬體加速及軟體實施之量可在實施例之間不同。
非即時周邊設備20可包括任何非即時周邊設備,因效能及/或頻寬原因,其被提供對記憶體12A至12B的獨立存取。亦即,由非即時周邊設備20進行之存取獨立於CPU區塊14,且可與CPU區塊記憶體操作並列進行。諸如周邊設備32及/或耦接至由周邊介面控制器34控制的周邊介面之周邊設備的其他周邊設備亦可為非即時周邊設備,但可不要求對記憶體之獨立存取。非即時周邊設備20之各種實施例可包括視訊編碼器及解碼器、按比例調整器/旋轉器電路、影像壓縮/解壓縮電路等。
橋接器/DMA控制器30可包含用以將周邊設備32及周邊介面控制器34橋接至記憶體空間的電路。在所說明之實施例中,橋接器/DMA控制器30可經由CPU區塊14將記憶體操作自周邊設備/周邊介面控制器橋接至記憶體控制器
40。CPU區塊14亦可維持橋接之記憶體操作與來自處理器16/L2快取記憶體18的記憶體操作之間的連貫性。L2快取記憶體18亦可仲裁橋接之記憶體操作與來自處理器16之記憶體操作以在CPU介面上傳輸至CPU埠44C。橋接器/DMA控制器30亦可代表周邊設備32及周邊介面控制器34提供DMA操作以傳送資料區塊至記憶體及自記憶體傳送資料區塊。更特定言之,DMA控制器可經組態以代表周邊設備32及周邊介面控制器34執行經由記憶體控制器40的去往及來自記憶體12A至12B的傳送。DMA控制器可由處理器16程式化以執行DMA操作。舉例而言,DMA控制器可經由描述符來程式化。描述符可為儲存於記憶體12A至12B中之描述DMA傳送的資料結構(例如,源及目的地位址、大小等)。或者,可經由DMA控制器中之暫存器(未圖示)來程式化DMA控制器。
周邊設備32可包括任何所要輸入/輸出器件或包括於積體電路10上之其他硬體器件。舉例而言,周邊設備32可包括諸如一或多個網路連接媒體存取控制器(MAC)(諸如,乙太網路MAC或無線保真(WiFi)控制器)之網路連接周邊設備。包括各種音訊處理器件之音訊單元可包括於周邊設備32中。一或多個數位信號處理器可包括於周邊設備32中。周邊設備32可包括任一其他所要功能,諸如計時器、晶片上秘密記憶體、加密引擎等或其任一組合。
周邊介面控制器34可包括用於任何類型周邊介面之任何控制器。舉例而言,周邊介面控制器可包括各種介面控制
器,諸如,通用串列匯流排(USB)控制器、快速周邊組件互連(PCIe)控制器、快閃記憶體介面、通用輸入/輸出(I/O)接針等。
記憶體12A至12B可為任何類型之記憶體,諸如,動態隨機存取記憶體(DRAM)、同步DRAM(SDRAM)、雙資料速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM之行動版本(諸如mDDR3等)及/或SDRAM之低電力版本(諸如LPDDR2等))、RAMBUS DRAM(RDRAM)、靜態RAM(SRAM)等。一或多個記憶體器件可耦接於電路板上以形成記憶體模組(諸如,單排直插記憶體模組(SIMM)、雙排直插記憶體模組(DIMM)等)。或者,器件可以晶片上晶片(chip-on-chip)組態、封裝上封裝(package-on-package)組態或多晶片模組組態與積體電路10安裝在一起。
記憶體實體介面電路42A至42B可處置至記憶體12A至12B之低層級實體介面。舉例而言,記憶體實體介面電路42A至42B可負責信號之時序、至同步DRAM記憶體之適當時脈等。在一實施例中,記憶體實體介面電路42A至42B可經組態以鎖定至一在積體電路10中供應的時脈且可經組態以產生一由記憶體12使用之時脈。
注意其他實施例可包括組件之其他組合,包括圖1中所示之組件及/或其他組件的子集或超集。雖然可能在圖1中展示給定組件之一例項,但其他實施例可包括給定組件之一或多個例項。類似地,在此[實施方式]全文中,即使僅展示一個例項亦可包括給定組件之一或多個例項,及/或
即使展示多個例項亦可使用僅包括一個例項之實施例。
接下來轉至圖11,展示系統350之一實施例的方塊圖。在所說明之實施例中,系統350包括耦接至外部記憶體12(例如,圖10中之記憶體12A至12B)之積體電路10之至少一例項。積體電路10亦可為併入有圖1中所示之組件中之一些或全部的積體電路。積體電路10耦接至一或多個周邊設備354及外部記憶體12。亦提供一供應供應電壓至積體電路10以及供應一或多個供應電壓至記憶體12及/或周邊設備354的電源供應器356。在一些實施例中,可包括積體電路10之一個以上例項(且亦可包括一個以上外部記憶體12)。
周邊設備354可包括任一所要電路,此視系統350之類型而定。舉例而言,在一實施例中,系統350可為一行動器件(例如,個人數位助理(PDA)、智慧型電話等),且周邊設備354可包括用於各種類型無線通信(諸如,wifi、藍芽、蜂巢式、全球定位系統,等)之器件。周邊設備354亦可包括額外儲存器,包括RAM儲存器、固態儲存器或磁碟儲存器。周邊設備354可包括使用者介面器件,諸如顯示幕(包括觸控顯示幕或多點觸控顯示幕)、鍵盤或其他輸入器件、麥克風、揚聲器等。在其他實施例中,系統350可為任一類型之計算系統(例如,桌上型個人電腦、膝上型電腦、工作站、迷你台式電腦等)。
一旦完全瞭解上述揭示內容,眾多變化及修改對於熟習此項技術者將變得顯而易見。意欲將以下申請專利範圍解
釋為包括所有此等變化及修改。
5‧‧‧系統
10‧‧‧積體電路(IC)
12‧‧‧外部記憶體
12A‧‧‧記憶體
12B‧‧‧記憶體
14‧‧‧中央處理器單元(CPU)區塊
16‧‧‧處理器
18‧‧‧2級(L2)快取記憶體
20‧‧‧非即時(NRT)周邊設備
22‧‧‧即時(RT)周邊設備
24‧‧‧影像處理器
26‧‧‧顯示器管道
28‧‧‧埠仲裁器
30‧‧‧橋接器/直接記憶體存取(DMA)控制器
32‧‧‧周邊器件
34‧‧‧周邊介面控制器
36‧‧‧圖形單元
38A‧‧‧G0/圖形單元
38B‧‧‧G1/圖形單元
40‧‧‧記憶體控制器
42A‧‧‧記憶體實體介面電路(PHY)
42B‧‧‧記憶體實體介面電路(PHY)
44A‧‧‧埠
44B‧‧‧埠
44C‧‧‧埠
44D‧‧‧埠
44E‧‧‧埠
46‧‧‧轉譯單元
50‧‧‧中斷控制器
52‧‧‧電力管理器
54‧‧‧離線暫存器
56‧‧‧遮罩暫存器
58‧‧‧逾時暫存器
60A‧‧‧處理器
60B‧‧‧處理器
62‧‧‧中斷控制器暫存器介面
64A‧‧‧周邊設備/周邊器件
64B‧‧‧周邊設備/周邊器件
120‧‧‧暫存器介面單元
122‧‧‧遮罩/軟體(SW)OR單元
124‧‧‧中斷路由器
126A‧‧‧處理器排程器
126B‧‧‧處理器排程器
130‧‧‧遮罩觸發器
132‧‧‧或閘
134‧‧‧軟體中斷觸發器
136‧‧‧或閘
138‧‧‧及閘
140‧‧‧路由選擇電路
142‧‧‧逾時控制單元
142A‧‧‧處理器逾時控制單元
142B‧‧‧中斷逾時控制單元
144A‧‧‧經路由之觸發器
144B‧‧‧經路由之觸發器
150‧‧‧自發計數器/計數器
152‧‧‧多工器
154‧‧‧多工器
156‧‧‧上升緣偵測電路
158‧‧‧上升緣偵測電路
160‧‧‧逾時計數器
162‧‧‧或閘
164‧‧‧多工器
166‧‧‧多工器
168‧‧‧及閘
170‧‧‧比較器
172‧‧‧計數器
174‧‧‧或閘
176‧‧‧多工器
178‧‧‧多工器
180‧‧‧及閘
182‧‧‧比較器
184‧‧‧I/O處理器(IOP)
350‧‧‧系統
354‧‧‧周邊設備
356‧‧‧電源供應器
圖1為一種包括處理器、中斷控制器及發源中斷之各種器件的系統之一實施例的方塊圖。
圖2為說明用以投送一中斷至一處理器的一中斷控制器之一實施例的操作之流程圖。
圖3為說明回應於來自一處理器之一中斷應答的一中斷控制器之一實施例之操作的流程圖。
圖4為說明用以識別用於一中斷之合格處理器的一中斷控制器之一實施例之操作的流程圖。
圖5為說明用以選擇一合格處理器之中斷控制器的一實施例之操作的流程圖。
圖6為一中斷控制器之一實施例的較詳細方塊圖。
圖7為圖6中所示之遮罩/軟體OR電路之一實施例的方塊圖。
圖8為圖6中所示之中斷路由器電路之一實施例的方塊圖。
圖9為說明圖6中所示之中斷控制器中的逾時之一實施例的方塊圖。
圖10為包括中斷控制器之系統之另一實施例的方塊圖。
圖11為系統之又一實施例的方塊圖。
50‧‧‧中斷控制器
56‧‧‧遮罩暫存器
58‧‧‧逾時暫存器
62‧‧‧中斷控制器暫存器介面
120‧‧‧暫存器介面單元
122‧‧‧遮罩/軟體(SW)OR單元
124‧‧‧中斷路由器
126A‧‧‧處理器排程器
126B‧‧‧處理器排程器
Claims (14)
- 一種中斷控制器,其包含:電路,其經耦接以接收來自一系統中之一或多個器件的中斷;及一中斷路由器,其耦接至該電路並經組態以自該系統中之複數個處理器中選擇一處理器以用於一第一接收之中斷,且其中該中斷路由器經組態以用信號發送一中斷至該選定之處理器,其中該中斷路由器經組態以監視該複數個處理器之一狀態並回應於該狀態而選擇該選定之處理器,其中該中斷路由器經進一步組態以回應於用信號發送該中斷至該選定處理器而初始化一逾時計數器,且其中該中斷路由器經組態以在沒有來自該選定處理器之一回應的情況下回應於偵測到該逾時計數器對於該中斷之期滿而選擇另一處理器,且其中該中斷路由器經組態以回應在沒有來自該選定處理器之一回應的情況下回應於偵測到該逾時計數器對於該中斷之期滿而將該選定處理器視為無回應,且其中該中斷路由器經組態以識別該無回應之處理器作為一隨後中斷之較不偏好的選擇。
- 如請求項1之中斷控制器,其中該回應為一中斷應答回應。
- 如請求項2之中斷控制器,其進一步包含經組態以用識別該第一中斷之一中斷向量來回應於該中斷應答回應的電路。
- 如請求項3之中斷控制器,其中該中斷應答為經界定用 於該中斷控制器之一中斷應答暫存器之一讀取,且其中該經組態以回應於該中斷應答的電路為經耦接以接收暫存器存取操作之一暫存器介面單元,且其中回應於該讀取而傳回的資料包括該中斷向量。
- 如請求項1之中斷控制器,其中該處理器狀態包括該處理器是否在一睡眠狀態中。
- 如請求項1之中斷控制器,其中該處理器狀態包括在該處理器中是否啟用中斷。
- 如請求項1之中斷控制器,其中該處理器狀態包括由軟體程式化之一離線狀態。
- 如請求項1之中斷控制器,其中該處理器狀態包括正在該處理器上執行的一虛擬化客體作業系統之一指示。
- 一種系統,其包含:複數個器件;複數個處理器;及一中斷控制器,其耦接至該複數個器件及該複數個處理器,其中該中斷控制器經組態以自該複數個處理器中選擇一處理器以用於自該複數個器件中之一者接收的一第一中斷,且其中該中斷控制器經組態以用信號發送該第一中斷至該選定之處理器,其中該中斷控制器經組態以監視該複數個處理器之一狀態並回應於該狀態而選擇該選定之處理器,其中該中斷路由器經進一步組態以回應於用信號發送該第一中斷至該選定處理器而初始化一逾時計數器,且其中該中斷路由器經組態以在沒有來自 該選定處理器之一回應的情況下回應於偵測到該逾時計數器對於該中斷之期滿而選擇另一處理器,且其中該中斷路由器經組態以回應在沒有來自該選定處理器之一回應的情況下回應於偵測到該逾時計數器對於該中斷之期滿而將該選定處理器視為無回應,且其中該中斷控制器經組態以識別該無回應之處理器作為一隨後中斷之較不偏好的選擇。
- 如請求項9之系統,其中該中斷控制器經進一步組態以回應於接收該第一中斷而初始化對應於該第一中斷之一第二逾時計數器,且其中該中斷控制器經組態以在該中斷未由該複數個處理器中之一者應答的情況下回應於偵測到該第二逾時計數器之期滿而投送該中斷至該第二處理器。
- 一種方法,其包含:一中斷控制器接收來自包括該中斷控制器之一系統中之一器件的一中斷;該中斷控制器監視該複數個處理器之一狀態;該中斷控制器自該系統中之複數個處理器中選擇一處理器,其中該選擇至少部分地回應於該複數個處理器之該狀態;路由(routing)該中斷至該選定之處理器;該中斷控制器回應於用信號發送該中斷至該選定處理器而初始化一逾時計數器;該中斷控制器在沒有來自該選定處理器之一回應的情 況下回應於偵測到該逾時計數器對於該中斷之期滿而選擇另一處理器;該中斷控制器回應在沒有來自該選定處理器之一回應的情況下回應於偵測到該逾時計數器之期滿而將該選定處理器視為無回應;及該中斷控制器識別該無回應之處理器作為一隨後中斷之較不偏好的選擇。
- 如請求項11之方法,其中該選定之處理器之狀態包括使中斷啟用。
- 如請求項11之方法,其中該複數個處理器中之一第一處理器係在一低電力狀態中且該選定之處理器不在該低電力狀態中。
- 如請求項11之方法,其中該選定之處理器係在一低電力狀態中,且該選擇包含即使該第一處理器在該低電力狀態中仍選擇該選定之處理器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/962,146 US8959270B2 (en) | 2010-12-07 | 2010-12-07 | Interrupt distribution scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201229911A TW201229911A (en) | 2012-07-16 |
TWI447650B true TWI447650B (zh) | 2014-08-01 |
Family
ID=45421878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100144040A TWI447650B (zh) | 2010-12-07 | 2011-11-30 | 中斷分佈方案 |
Country Status (10)
Country | Link |
---|---|
US (2) | US8959270B2 (zh) |
EP (1) | EP2463781B1 (zh) |
JP (2) | JP5923838B2 (zh) |
KR (1) | KR101320791B1 (zh) |
CN (1) | CN102567109B (zh) |
AU (1) | AU2011338863B2 (zh) |
BR (1) | BR112013013300B1 (zh) |
HK (1) | HK1171104A1 (zh) |
TW (1) | TWI447650B (zh) |
WO (1) | WO2012078334A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909836B2 (en) * | 2012-10-08 | 2014-12-09 | Andes Technology Corporation | Interrupt controller, apparatus including interrupt controller, and corresponding methods for processing interrupt request event(s) in system including processor(s) |
JP2014106755A (ja) * | 2012-11-28 | 2014-06-09 | Fujitsu Mobile Communications Ltd | 情報処理装置及び制御方法 |
US9678564B2 (en) * | 2012-12-21 | 2017-06-13 | Nxp B.V. | Multiprocessor system with interrupt distributor |
US10534421B2 (en) | 2013-06-13 | 2020-01-14 | Microsoft Technology Licensing, Llc | Virtual per-processor timers for multiprocessor systems |
US9524195B2 (en) | 2014-02-27 | 2016-12-20 | International Business Machines Corporation | Adaptive process for data sharing with selection of lock elision and locking |
US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
US9471371B2 (en) | 2014-02-27 | 2016-10-18 | International Business Machines Corporation | Dynamic prediction of concurrent hardware transactions resource requirements and allocation |
US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
US20150242216A1 (en) | 2014-02-27 | 2015-08-27 | International Business Machines Corporation | Committing hardware transactions that are about to run out of resource |
US9424072B2 (en) | 2014-02-27 | 2016-08-23 | International Business Machines Corporation | Alerting hardware transactions that are about to run out of space |
US9411729B2 (en) | 2014-02-27 | 2016-08-09 | International Business Machines Corporation | Salvaging lock elision transactions |
US9465673B2 (en) | 2014-02-27 | 2016-10-11 | International Business Machines Corporation | Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling |
US9442853B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging lock elision transactions with instructions to change execution type |
US9575890B2 (en) | 2014-02-27 | 2017-02-21 | International Business Machines Corporation | Supporting atomic accumulation with an addressable accumulator |
US9645879B2 (en) | 2014-02-27 | 2017-05-09 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9311178B2 (en) | 2014-02-27 | 2016-04-12 | International Business Machines Corporation | Salvaging hardware transactions with instructions |
US9336097B2 (en) | 2014-02-27 | 2016-05-10 | International Business Machines Corporation | Salvaging hardware transactions |
US9442775B2 (en) | 2014-02-27 | 2016-09-13 | International Business Machines Corporation | Salvaging hardware transactions with instructions to transfer transaction execution control |
US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
US9329946B2 (en) | 2014-02-27 | 2016-05-03 | International Business Machines Corporation | Salvaging hardware transactions |
US9524187B2 (en) | 2014-03-02 | 2016-12-20 | International Business Machines Corporation | Executing instruction with threshold indicating nearing of completion of transaction |
ES2929512T3 (es) * | 2014-09-26 | 2022-11-29 | Intel Corp | Aparato y método para configurar conjuntos de interrupciones |
KR20160061726A (ko) * | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 인터럽트 핸들링 방법 |
US10203955B2 (en) * | 2014-12-31 | 2019-02-12 | Intel Corporation | Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality |
CN104572282A (zh) * | 2015-01-05 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种将sas控制器中断绑定到cpu的自动化方法 |
US10585826B2 (en) * | 2016-01-25 | 2020-03-10 | Advanced Micro Devices, Inc. | Using processor types for processing interrupts in a computing device |
US10802998B2 (en) * | 2016-03-29 | 2020-10-13 | Intel Corporation | Technologies for processor core soft-offlining |
US11392438B2 (en) * | 2017-02-09 | 2022-07-19 | Arm Limited | Responding to unresponsive processing circuitry |
CN109144680A (zh) | 2017-06-27 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种时钟滴答中断设置方法及装置 |
TWI621946B (zh) | 2017-06-28 | 2018-04-21 | 緯創資通股份有限公司 | 排程方法、PCIe控制器及其相關電子系統 |
US10747298B2 (en) * | 2017-11-29 | 2020-08-18 | Advanced Micro Devices, Inc. | Dynamic interrupt rate control in computing system |
US11144481B2 (en) * | 2018-04-11 | 2021-10-12 | Apple Inc. | Techniques for dynamically adjusting the manner in which I/O requests are transmitted between a computing device and a storage device |
US11113216B2 (en) * | 2019-03-20 | 2021-09-07 | Mediatek Inc. | Dispatching interrupts in a multi-processor system based on power and performance factors |
US11307791B2 (en) * | 2019-05-24 | 2022-04-19 | Texas Instruments Incorporated | Quick clearing of registers |
US20210107512A1 (en) * | 2020-03-27 | 2021-04-15 | Intel Corporation | Computing system for mitigating execution drift |
CN111786546B (zh) * | 2020-07-20 | 2021-10-15 | 中车青岛四方车辆研究所有限公司 | 功率模块驱动系统及控制方法 |
US11630789B2 (en) * | 2020-09-11 | 2023-04-18 | Apple Inc. | Scalable interrupts |
EP4184712A4 (en) | 2020-09-15 | 2024-01-10 | Samsung Electronics Co., Ltd. | ELECTRONIC DEVICE HAVING AN ANTENNA STRUCTURE |
KR102549360B1 (ko) | 2020-12-14 | 2023-06-28 | 재단법인대구경북과학기술원 | 인터럽트 제어 장치 및 방법 |
US11675718B2 (en) * | 2021-03-26 | 2023-06-13 | Advanced Micro Devices, Inc. | Enhanced low-priority arbitration |
KR20220161878A (ko) * | 2021-05-31 | 2022-12-07 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 센서 데이터 처리 방법 |
CN117203616A (zh) | 2021-05-31 | 2023-12-08 | 三星电子株式会社 | 电子设备及电子设备的传感器数据处理方法 |
US11803471B2 (en) | 2021-08-23 | 2023-10-31 | Apple Inc. | Scalable system on a chip |
US20230342158A1 (en) * | 2022-04-21 | 2023-10-26 | Microchip Technology Incorporated | Atomic Instruction Set and Architecture with Bus Arbitration Locking |
CN117472637B (zh) * | 2023-12-27 | 2024-02-23 | 苏州元脑智能科技有限公司 | 一种中断管理方法、系统、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170025B1 (en) * | 1997-08-29 | 2001-01-02 | Intel Corporation | Distributed computer system supporting remote interrupts and lock mechanism |
US6418497B1 (en) * | 1998-12-21 | 2002-07-09 | International Business Machines Corporation | Method and system for interrupt handling using system pipelined packet transfers |
US20070143514A1 (en) * | 2002-12-26 | 2007-06-21 | Kaushik Shivnandan D | Mechanism for processor power state aware distribution of lowest priority interrupts |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3623014A (en) * | 1969-08-25 | 1971-11-23 | Control Data Corp | Computer communications system |
US5517626A (en) | 1990-05-07 | 1996-05-14 | S3, Incorporated | Open high speed bus for microcomputer system |
US5870621A (en) | 1994-12-22 | 1999-02-09 | Texas Instruments Incorporated | Quadrilateral multichip computer systems and printed circuit boards therefor |
US5717903A (en) * | 1995-05-15 | 1998-02-10 | Compaq Computer Corporation | Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device |
JP3676882B2 (ja) | 1996-06-12 | 2005-07-27 | 株式会社リコー | マイクロプロセッサ及びその周辺装置 |
EP0827085B1 (en) * | 1996-08-20 | 2006-03-29 | Compaq Computer Corporation | Method and apparatus for distributing interrupts in a scalable symmetric multiprocessor system without changing the bus width or bus protocol |
US5918057A (en) | 1997-03-20 | 1999-06-29 | Industrial Technology Research Institute | Method and apparatus for dispatching multiple interrupt requests simultaneously |
JP3699806B2 (ja) | 1997-06-20 | 2005-09-28 | 株式会社東芝 | 割込みコントローラ及び制御システム |
US6105102A (en) | 1998-10-16 | 2000-08-15 | Advanced Micro Devices, Inc. | Mechanism for minimizing overhead usage of a host system by polling for subsequent interrupts after service of a prior interrupt |
US6701429B1 (en) | 1998-12-03 | 2004-03-02 | Telefonaktiebolaget Lm Ericsson(Publ) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location |
JP2000242616A (ja) * | 1999-02-19 | 2000-09-08 | Nec Eng Ltd | 障害処理装置,障害処理方法および記録媒体 |
US6772257B1 (en) | 1999-12-23 | 2004-08-03 | Intel Corporation | Method and apparatus for processing interrupts |
JP2001229147A (ja) * | 2000-02-17 | 2001-08-24 | Nec Shizuoka Ltd | Cpu間通信制御方法および携帯情報端末 |
US20020116563A1 (en) | 2000-12-12 | 2002-08-22 | Lever Paul D. | Apparatus and method to reduce interrupt latency in shared interrupt systems |
US6792492B1 (en) | 2001-04-11 | 2004-09-14 | Novell, Inc. | System and method of lowering overhead and latency needed to service operating system interrupts |
US6813665B2 (en) | 2001-09-21 | 2004-11-02 | Intel Corporation | Interrupt method, system and medium |
US20030065497A1 (en) * | 2001-09-28 | 2003-04-03 | Rhoads Monte J. | Power management system to select a power state for a network computer system based on load |
US7328294B2 (en) * | 2001-12-03 | 2008-02-05 | Sun Microsystems, Inc. | Methods and apparatus for distributing interrupts |
JP2003281112A (ja) | 2002-03-25 | 2003-10-03 | Fujitsu Ltd | マルチプロセッサシステム |
US20040117532A1 (en) | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
GB2396445B (en) | 2002-12-19 | 2005-12-21 | Advanced Risc Mach Ltd | An interrupt controller and interrupt controlling method for prioritizing interrupt requests generated by a plurality of interrupt sources |
GB2403822B (en) * | 2003-07-07 | 2006-05-10 | Advanced Risc Mach Ltd | Data processing apparatus and method for handling interrupts |
US7222203B2 (en) | 2003-12-08 | 2007-05-22 | Intel Corporation | Interrupt redirection for virtual partitioning |
GB2409543B (en) | 2003-12-23 | 2006-11-01 | Advanced Risc Mach Ltd | Interrupt masking control |
US7353301B2 (en) | 2004-10-29 | 2008-04-01 | Intel Corporation | Methodology and apparatus for implementing write combining |
US7398343B1 (en) | 2006-01-03 | 2008-07-08 | Emc Corporation | Interrupt processing system |
JP4971676B2 (ja) | 2006-04-28 | 2012-07-11 | ルネサスエレクトロニクス株式会社 | 割り込み制御回路及び割り込み制御方法 |
JP2008015593A (ja) * | 2006-07-03 | 2008-01-24 | Hitachi Ltd | 中継装置、プログラム、中継方法及び通信システム |
US7721034B2 (en) | 2006-09-29 | 2010-05-18 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US8032681B2 (en) | 2007-09-06 | 2011-10-04 | Intel Corporation | Processor selection for an interrupt based on willingness to accept the interrupt and on priority |
US8661167B2 (en) * | 2007-09-17 | 2014-02-25 | Intel Corporation | DMA (direct memory access) coalescing |
US8453143B2 (en) * | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US7962679B2 (en) | 2007-09-28 | 2011-06-14 | Intel Corporation | Interrupt balancing for multi-core and power |
US7730248B2 (en) | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
US7962771B2 (en) | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
JP2009193525A (ja) | 2008-02-18 | 2009-08-27 | Mitsubishi Electric Corp | 割込制御装置 |
US8190826B2 (en) | 2008-05-28 | 2012-05-29 | Advanced Micro Devices, Inc. | Write combining cache with pipelined synchronization |
JP2010055296A (ja) * | 2008-08-27 | 2010-03-11 | Fujitsu Ltd | 負荷分散プログラム及び負荷分散装置 |
EP2166457B1 (en) | 2008-09-12 | 2014-04-23 | TELEFONAKTIEBOLAGET LM ERICSSON (publ) | Interrupt controller and methods of operation |
US7849247B2 (en) | 2008-10-14 | 2010-12-07 | Freescale Semiconductor, Inc. | Interrupt controller for accelerated interrupt handling in a data processing system and method thereof |
US8015337B2 (en) | 2009-03-23 | 2011-09-06 | Arm Limited | Power efficient interrupt detection |
US7996595B2 (en) | 2009-04-14 | 2011-08-09 | Lstar Technologies Llc | Interrupt arbitration for multiprocessors |
US8260996B2 (en) * | 2009-04-24 | 2012-09-04 | Empire Technology Development Llc | Interrupt optimization for multiprocessors |
US8458386B2 (en) | 2010-12-07 | 2013-06-04 | Apple Inc. | Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements |
-
2010
- 2010-12-07 US US12/962,146 patent/US8959270B2/en active Active
-
2011
- 2011-11-17 AU AU2011338863A patent/AU2011338863B2/en active Active
- 2011-11-17 JP JP2013543183A patent/JP5923838B2/ja active Active
- 2011-11-17 BR BR112013013300-7A patent/BR112013013300B1/pt active IP Right Grant
- 2011-11-17 WO PCT/US2011/061197 patent/WO2012078334A1/en active Application Filing
- 2011-11-30 TW TW100144040A patent/TWI447650B/zh active
- 2011-12-06 KR KR20110129511A patent/KR101320791B1/ko active IP Right Grant
- 2011-12-06 EP EP20110192107 patent/EP2463781B1/en active Active
- 2011-12-07 CN CN201110402634.6A patent/CN102567109B/zh active Active
-
2012
- 2012-11-22 HK HK12111935.1A patent/HK1171104A1/zh not_active IP Right Cessation
-
2015
- 2015-01-06 US US14/590,203 patent/US9262353B2/en active Active
- 2015-01-26 JP JP2015012014A patent/JP5963282B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170025B1 (en) * | 1997-08-29 | 2001-01-02 | Intel Corporation | Distributed computer system supporting remote interrupts and lock mechanism |
US6418497B1 (en) * | 1998-12-21 | 2002-07-09 | International Business Machines Corporation | Method and system for interrupt handling using system pipelined packet transfers |
US20070143514A1 (en) * | 2002-12-26 | 2007-06-21 | Kaushik Shivnandan D | Mechanism for processor power state aware distribution of lowest priority interrupts |
Also Published As
Publication number | Publication date |
---|---|
US9262353B2 (en) | 2016-02-16 |
WO2012078334A1 (en) | 2012-06-14 |
JP2015079542A (ja) | 2015-04-23 |
AU2011338863A1 (en) | 2013-05-09 |
US20120144172A1 (en) | 2012-06-07 |
KR101320791B1 (ko) | 2013-10-23 |
AU2011338863B2 (en) | 2015-01-22 |
CN102567109A (zh) | 2012-07-11 |
JP5963282B2 (ja) | 2016-08-03 |
KR20120063436A (ko) | 2012-06-15 |
CN102567109B (zh) | 2015-04-08 |
BR112013013300A2 (pt) | 2016-09-13 |
US20150113193A1 (en) | 2015-04-23 |
EP2463781B1 (en) | 2015-01-21 |
US8959270B2 (en) | 2015-02-17 |
BR112013013300B1 (pt) | 2021-01-05 |
EP2463781A3 (en) | 2012-11-21 |
HK1171104A1 (zh) | 2013-03-15 |
EP2463781A2 (en) | 2012-06-13 |
JP2013545205A (ja) | 2013-12-19 |
JP5923838B2 (ja) | 2016-05-25 |
TW201229911A (en) | 2012-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI447650B (zh) | 中斷分佈方案 | |
US8458386B2 (en) | Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements | |
US10157060B2 (en) | Method, device and system for control signaling in a data path module of a data stream processing engine | |
TWI483265B (zh) | 硬體動態快取電源管理 | |
JP5385272B2 (ja) | コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム | |
US9009377B2 (en) | Edge-triggered interrupt conversion in a system employing level-sensitive interrupts | |
US9690720B2 (en) | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
KR20170013882A (ko) | 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc) | |
US7779172B2 (en) | Activator, DMA transfer system, DMA transfer method | |
US20140223077A1 (en) | Memory system | |
US10157160B2 (en) | Handling a partition reset in a multi-root system | |
US9152588B2 (en) | Race-free level-sensitive interrupt delivery using fabric delivered interrupts |