TW202345009A - 中斷控制器、設備、中斷控制方法、及電腦可讀取媒體 - Google Patents
中斷控制器、設備、中斷控制方法、及電腦可讀取媒體 Download PDFInfo
- Publication number
- TW202345009A TW202345009A TW112114652A TW112114652A TW202345009A TW 202345009 A TW202345009 A TW 202345009A TW 112114652 A TW112114652 A TW 112114652A TW 112114652 A TW112114652 A TW 112114652A TW 202345009 A TW202345009 A TW 202345009A
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- queue
- given
- processor
- cache
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 21
- 230000015654 memory Effects 0.000 claims abstract description 208
- 238000012545 processing Methods 0.000 claims abstract description 117
- 230000011664 signaling Effects 0.000 claims abstract description 20
- 230000001427 coherent effect Effects 0.000 claims abstract description 5
- 238000012544 monitoring process Methods 0.000 claims description 75
- 230000004044 response Effects 0.000 claims description 31
- 238000001514 detection method Methods 0.000 claims description 20
- 230000007246 mechanism Effects 0.000 claims description 20
- 238000004519 manufacturing process Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 14
- 238000013519 translation Methods 0.000 description 14
- 238000013459 approach Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 230000008685 targeting Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- 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
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
-
- 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
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/54—Interprogram communication
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一中斷控制器藉由控制根據一快取同調互連件所支援的一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制具有一給定中斷識別符的一給定中斷至該目標中斷處理上下文的傳訊,該組基於記憶體的中斷追蹤結構包括:一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
Description
本技術係關於中斷控制器領域。
在資料處理系統中,中斷控制器負責偵測由一或多個中斷源提出的中斷,並將該等中斷傳訊至負責處理中斷的實體或虛擬處理器。
至少一些實例提供一種中斷控制器,其包含:中斷偵測電路系統,其用於偵測由一或多個中斷源提出的中斷;中斷控制器記憶體存取電路系統,其用於發布對經由一快取同調互連件來存取一共用記憶體系統的記憶體存取請求;及中斷控制電路系統,其回應於由該中斷偵測電路系統偵測到具有一給定中斷識別符的一給定中斷而藉由控制該中斷控制器記憶體存取電路系統根據該快取同調互連件所支援的一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制該給定中斷至該目標中斷處理上下文的傳訊,該組基於記憶體的中斷追蹤結構包括:一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
至少一些實例提供一種設備,其包含:上文所提及之該中斷控制器;該快取同調互連件;及至少一個實體處理器,一給定實體處理器包含:處理電路系統,用以回應於指令而執行資料處理;至少一個處理器快取記憶體;及處理器記憶體存取電路系統,其用於發布對經由該快取同調互連件存取該共用記憶體系統的記憶體存取請求。
至少一些實例提供一種中斷控制方法,其包含:偵測由一或多個中斷源提出的中斷;及回應於偵測到具有一給定中斷識別符的一給定中斷,藉由控制經由一快取同調性互連件根據一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制該給定中斷至該目標中斷處理上下文的傳訊,該組基於記憶體的中斷追蹤結構包括:一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
至少一些實例提供一種電腦可讀儲存媒體,其用於儲存用於製造如上文所描述之中斷控制器或設備的電腦可讀碼。該電腦可讀取媒體可係非暫時性儲存媒體。
中斷控制器與中斷控制器向其轉送中斷的一或多個處理器通訊。實現此通訊的一種方式係使用專用中斷匯流排,該專用中斷匯流排使用專用通訊協定,經專門設計以將來自中斷控制器的中斷信號攜載至處理器。此匯流排及協定可與用於記憶體系統存取的匯流排及協定分開。然而,實施專用中斷處理匯流排及協定可能需要大量的設計努力,且可能使得難以擴展中斷匯流排及中斷控制器以處理變化數目的處理器及變化數目的中斷。
下文所論述之中斷控制器包含:中斷偵測電路系統,其用於偵測由一或多個中斷源提出的中斷;中斷控制器記憶體存取電路系統,其用於發布對經由一快取同調互連件來存取一共用記憶體系統的記憶體存取請求;及中斷控制電路系統,其回應於由該中斷偵測電路系統偵測到具有一給定中斷識別符的一給定中斷而藉由控制該中斷控制器記憶體存取電路系統根據該快取同調互連件所支援的一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制該給定中斷至該目標中斷處理上下文的傳訊。該中斷控制器回應於該給定中斷而維護的該組基於記憶體的中斷追蹤結構包括:一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
使用此方法,亦可重複使用快取同調互連件(通常已經被提供用於控制具有一或多個快取記憶體的處理器對共用記憶體的存取)來分發需要由給定中斷處理上下文處理的中斷信號。快取同調互連件可支援同調性協定,該同調性協定定義一組同調性狀態、交易類型及用於處理各交易類型之規則,快取同調互連件用於控制對共用記憶體的存取,使得在一個請求者更新給定位址之資料之後,請求該位址之資料的其他請求者接收第一請求者所更新的最新值而不會接收在第一請求者作出更新之後過時的、舊的快取複本。因此,中斷追蹤資料結構可儲存於共用記憶體系統中且使用由快取同調互連件實施之同調性協定來管理它們的同調性。此意指在中斷控制器寫入至基於記憶體的中斷追蹤結構之給定位址時,已快取該位址之資料的處理器可得到快取同調互連件的通知(例如,藉由接收監聽請求)且因此可被提示執行用於處理由對中斷追蹤結構的更新表示的中斷之動作。藉由使用快取同調互連件來將中斷轉送至將要處理針對特定中斷處理上下文的中斷的處理器,此避免了需要提供專用中斷匯流排,且意指中斷控制器可更容易地擴展至不同數目的處理器及不同數目的中斷,此係因為可擴展性可藉由擴展儲存於記憶體系統中的中斷追蹤結構之數目及大小而非藉由實體電路佈線來提供。
對應於給定中斷處理上下文的該組基於記憶體的中斷追蹤結構至少包括:二或更多個中斷佇列結構,各中斷佇列結構用於排佇列中斷以供該給定中斷處理上下文處理;及佇列狀態彙總結構,該佇列狀態彙總結構用於指示該等中斷佇列結構中之哪些中斷佇列結構保存等待供目標中斷處理上下文處理的擱置中斷。佇列狀態彙總結構提供一種有效率的方式供處理器代表特定中斷處理上下文監測針對該上下文是否存在等待處理的任何擱置中斷,因為該處理器可監測對應於佇列狀態彙總結構的位址以基於自快取同調互連件接收的快取同調性訊息(諸如監聽訊息)進行更新,該方式比可例如監測對應於各不同中斷識別符或各不同佇列的記憶體位址的替代方法有效率得多。因此,佇列狀態彙總結構所提供的間接性(使得處理器能夠監測佇列狀態之總結,而非佇列本身)有助於減少處理器需要監測的位址數目,同時仍然支援中斷控制器以潛在大量不同的中斷識別符遞送中斷的能力。此由於能夠監測給定位址而係有用的,處理器可在其快取記憶體中為所監測之位址分配快取項,且此消耗原本無法用於其他資料的快取容量,因而減少可供用於規則資料的有效快取容量。因此,出於中斷處理目的而必須監測大量不同位址可能限制需要存取記憶體中之其他資料的軟體所達成的效能。藉由提供佇列狀態彙總結構,可基於監測中斷控制器對單一位址的更新來監測對應於擱置中斷的多個佇列及中斷識別符,從而大大減少在處理器處監測中斷的效能成本。
互連件控制器的中斷偵測電路系統可使用不同方法偵測進入中斷。例如,中斷可由中斷源在專用實體佈線(不用於記憶體讀/寫操作)上斷言,且由中斷偵測電路系統基於在該實體佈線上斷言的信號而被偵測到。替代地,充當中斷源的一些周邊裝置可使用訊息傳訊中斷(message-signalled interrupt, MSI)來提出至中斷控制器的中斷,其中中斷源將資料儲存至記憶體中受中斷控制器監測的特定位址,以傳訊已提出中斷。中斷偵測電路系統可單獨地支援此等方法中之任一方法,或者可組合地支援兩者方法(其中一些中斷經由實體線遞送,而其他中斷作為訊息傳訊中斷傳遞)。
中斷控制電路系統可控制中斷控制器記憶體存取電路系統發布對維護二或更多組基於記憶體的中斷追蹤資料結構的記憶體寫入請求,各組對應於一各別中斷處理上下文。各中斷處理上下文可係各別實體處理器(以硬體提供)或虛擬處理器(模仿另一處理器之行為的在實體處理器上執行之軟體)。中斷控制器實際上不需要知曉哪個特定實體或虛擬處理器正在處理針對特定中斷處理上下文的中斷。在一些實例中,中斷控制電路系統可具有對中斷處理上下文組態資料的存取權,該中斷處理上下文組態資料指定用於識別要用於特定中斷的該組相關基於記憶體的中斷追蹤結構之位址的一或多個基位址。例如,指定資料的中斷處理上下文可基於進入中斷之參數(例如,基於中斷識別符及/或識別自其接收中斷的中斷源的源識別符)來查找。針對給定中斷識別的基位址可用於識別在寫入請求中指定哪些記憶體位址用於更新該組相關基於記憶體的中斷追蹤資料結構(例如,結構之格式可係預定義的,使得中斷追蹤資料結構之特定部分相對於基位址的偏移係已知的)。針對待由不同中斷處理上下文處理的不同中斷,可識別多組不同的基位址,且因此更新多組不同的追蹤資料結構。特定處理器可監測對應於特定中斷處理上下文(用於指向該處理器的實體中斷的中斷處理上下文,或用於針對目前常駐在該處理器上的虛擬處理器的虛擬中斷的中斷處理上下文)的該組相關追蹤資料結構之一或多個位址。特定處理器監測哪些位址可由在該處理器上執行之軟體組態。例如,管理程式可組態執行給定虛擬處理器的實體處理器以監測用於該給定虛擬處理器的該組中斷追蹤結構之佇列狀態彙總結構之相關位址。然而,中斷控制器可不知曉任何一個處理器更新哪個特定中斷處理上下文,中斷控制器簡單地更新該組相關基於記憶體的中斷追蹤資料結構且不需要執行任何動作來識別哪個實體處理器或虛擬處理器處理中斷。
對應於給定中斷處理上下文的各別佇列結構可以不同方式組織。在一個實例中,各佇列可對應於特定中斷識別符或中斷識別符群組。基於中斷識別符對佇列的選擇可直接基於中斷識別符,或者間接地基於基於中斷識別符所識別的另一參數。
例如,該另一參數可係用於在中斷之間進行優先級排序的中斷優先等級。較高優先級中斷可在較低優先級中斷之前處理。因此,對應於給定中斷處理上下文的中斷佇列結構可經組織以使得佇列結構對應於各別中斷優先等級,其中具有相等優先級的中斷被分配給相同中斷佇列結構。因此,回應於給定中斷,中斷控制電路系統可基於給定中斷識別符來判定給定中斷之給定優先等級,並選擇複數個中斷佇列結構中之對應於給定優先等級的一者作為所選取中斷佇列結構。此方法可使在處理器上執行之軟體判定接下來讀取哪個中斷佇列結構簡單得多,因為該軟體可簡單地步入較高優先級佇列中的所有擱置中斷,然後切換至讀取較低優先級佇列,而非需要比較與排佇列於相同佇列結構內或不同佇列結構中的中斷相關聯的所儲存優先級指示。
該組基於記憶體的中斷追蹤資料結構可包含數個中斷狀態項,各中斷狀態項對應於一各別中斷識別符且指定與該中斷識別符相關聯的一中斷優先等級。因此,指派給各中斷識別符的優先等級可藉由軟體設定相關中斷狀態項中所指定的對應於給定中斷識別符的中斷優先等級來程式化。
可需要為特定中斷識別符指定的另一特性可係啟用/禁用狀態,該啟用/禁用狀態指示具有對應中斷識別符的中斷應當被啟用(使得當具有該中斷識別符的中斷作為擱置由中斷控制器傳訊時,處理器對該中斷採取動作)還係禁用(使得隱蔽該中斷且因此即使作為擱置傳訊,處理器亦不回應於該中斷)。給定中斷識別符應當將其中斷啟用還係禁用可由在至少一個處理器上執行之軟體來設定,且因此不可由中斷控制器直接設定。
因此,可有用的是該組基於記憶體的中斷追蹤資料結構包含複數個中斷狀態項,各中斷狀態項對應於一各別中斷識別符且指定目前是否啟用具有該中斷識別符的中斷。此等中斷狀態項可係亦指定如上文所論述之中斷優先等級的相同項。因此,當中斷控制器接收到具有給定中斷識別符的中斷時,中斷控制器可檢查對應中斷狀態項以判定是否啟用該中斷,且若啟用,則更新所選取中斷佇列結構及佇列狀態彙總以傳訊已將擱置/啟用中斷分配給所選取中斷佇列結構。然後,處理器處之硬體可經由快取同調互連件所支援的同調性機制獲悉該更新,且此可提示處理器提出例外以致使軟體服務該中斷。
佇列狀態彙總結構可實現為位元映像,其中各位元指示對應佇列是否具有至少一個擱置中斷。此提供用於識別數個佇列之狀態的有效率結構。
可有用的是佇列狀態彙總結構具有適配在單一快取線內的大小。此允許處理器基於為該佇列狀態彙總結構之位址分配單一快取項而執行對佇列狀態彙總結構的監測。相反,若佇列狀態彙總結構大於一個快取線,則將需要分配多個快取項以確保在更新該結構之任何部分時處理器得到快取同調互連件通知。在此,用語「快取線(cache line)」係指具有一定大小的記憶體位址空間區塊,其用作快取同調互連件所支援的同調性協定中之同調性控制的粒度。例如,同調性協定可在快取線粒度下定義同調性狀態(諸如乾淨/髒、共用/獨佔)。快取線亦可係在不同記憶體系統階層之不同級(例如,不同快取記憶體或記憶體儲存單元)之間的一個操作中傳輸的資料傳輸的基本單元。
亦可有用的是各中斷佇列結構具有適配在位址空間之單一頁內的大小。在此,用語「頁(page)」係指用於控制處理器處之記憶體管理的位址空間單元的大小。藉由將各中斷佇列結構定義為具有不大於頁大小的大小,此意指可保證中斷佇列結構儲存在實體記憶體之單一連續範圍內,此可有助於避免對中斷控制器支援位址轉譯的需要,從而簡化中斷控制器設計。
類似地,可有用的是上文所提及之佇列狀態彙總結構及中斷狀態項適配在不大於單一頁大小的結構內。由於佇列狀態彙總結構可包含單一快取線,則此為中斷狀態項儲存在與狀態彙總結構相同的頁內的位址處留出空間。因此,在一個實例中,包含佇列狀態彙總結構及至少一個其他資訊項的中斷描述符結構可具有適配在位址空間之單一頁內的大小,其中該至少一個資訊項至少包含該等中斷狀態項,各中斷狀態項對應於各別中斷識別符且指示下列中之至少一者:一中斷優先等級;及與該中斷識別符相關聯的一啟用狀態。在一些實例中,中斷描述符結構亦可包括下文描述之佇列啟用控制結構。
給定中斷佇列結構可包含指定關於給定中斷佇列結構的資訊的佇列描述符。
例如,給定中斷佇列結構可包含佇列大小參數,該佇列大小參數指示該給定中斷佇列結構之最大佇列大小。此對支援變化佇列大小可有用的,使得若預期各佇列的中斷相對較少,則可靈活地將多個中斷佇列結構組合至相同頁位址空間中。
除了佇列大小參數之外,或替代佇列大小參數,給定中斷佇列結構可包含下列中之至少一者:寫入指標,其指示待由中斷控制器更新的下一佇列項;及讀取指標,其指示待針對目標中斷處理上下文讀取的下一佇列項。寫入指標及讀取指標可用於識別中斷控制器在寫入關於新接收到的中斷源提出之中斷的資訊時所到達的佇列中的位置,以及在給定處理器上執行之軟體在服務於佇列中作為擱置指示的中斷時所到達的佇列中的位置。寫入/讀取指標可以不同方式定義。例如,寫入/讀取指標可指向寫入/讀取的最後一項,且因此在寫入/讀取下一項之前遞增,或者可指向待寫入/讀取的下一項,且在寫入/讀取下一項之後遞增。任一種方式都允許中斷控制器及處理器(或軟體)判定接下來待寫入/讀取佇列中的哪個項。
其他實例可在與佇列本身分開的結構中指示佇列大小或佇列寫入/讀取指標。
給定中斷佇列結構可包含鎖定參數,該鎖定參數用於指示該給定中斷佇列結構是否被鎖定為用於獨佔存取。回應於該給定中斷,當所選取中斷佇列結構之鎖定參數指示所選取中斷佇列結構被鎖定為用於獨佔存取時,中斷控制電路系統可推遲更新所選取中斷佇列結構,直至鎖定參數指示所選取中斷佇列結構不再被鎖定為用於獨佔存取為止。此可用於避免原本可能在試圖同時藉由中斷控制器寫入關於新提出中斷的資訊及在處理器上執行之軟體清除關於已經得到服務的先前擱置中斷的資訊二者更新給定中斷佇列結構之內容時出現的同步丟失。中斷控制器及在一或多個處理器處執行之軟體二者可使用鎖定參數來在繼續寫入至佇列結構之前判定佇列結構目前是否被未鎖定為用於存取,以確保可以原子方式更新佇列結構以避免佇列的不正確設定,該等不正確設定係由中斷控制器及至少一個處理器之一者在中斷控制器及至少一個處理器之另一者作出更新之前讀取佇列之目前狀態、然後寫入至佇列從而潛在地覆寫或刪去中斷控制器及至少一個處理器之另一者作出的更新造成,原本可能產生使某些更新丟失的風險(例如可能的後果係所提出中斷得到不正確的服務兩次或完全未得到服務)。藉由使用鎖定參數以在多方進行更新時協商對佇列狀態結構的存取,可避免此類錯誤。鎖定參數可在起始佇列狀態彙總結構中之資訊的更新之前被設定鎖定狀態,且一旦完成彼等更新,就被清除至未鎖定狀態。應瞭解,處理器端部處的鎖定參數的處理由軟體執行,且因此不係處理器硬體本身的固有特徵,因為在處理器處不需要考慮鎖定參數的硬體電路邏輯(儘管軟體可使用某些硬體支援基元操作,諸如可用於以原子方式聲明鎖定的原子測試並設定(atomic test-and-set)操作,彼等硬體支援基元操作可係可用於記憶體中之任何位置且不特定於佇列結構之鎖定參數的通用架構定義操作)。另一方面,中斷控制器可具有硬體電路邏輯以讀取鎖定參數且基於鎖定參數來判定是否可繼續寫入至給定中斷佇列結構。
其他實施方案可使用不同的同步機制來實現對佇列的獨佔存取。例如,可使用交易性記憶體機制來控制對共用佇列的存取,從而避免對實現鎖定參數的需要。
在一些實例中,由中斷控制器記憶體存取電路系統發布以更新基於記憶體的中斷追蹤結構的寫入請求可係非存放寫入請求,該等非存放寫入請求可請求對共用記憶體中之資料的更新但不直接致使將更新值分配至正在監測彼等追蹤結構之更新的處理器之快取記憶體中。此類非存放寫入請求可致使快取同調互連件監聽處理器之快取記憶體,從而可(直接或間接地)提示處理器發布用於讀回佇列狀態彙總結構之資料的請求以允許處理器上之軟體判定哪些佇列結構保存擱置中斷。
然而,一些互連協定亦可支援存放請求,該等存放請求可由一個記憶體系統請求者用於直接將給定位址之更新資料存放於另一記憶體系統請求者之快取記憶體中,而該另一記憶體系統請求者不必顯式地請求該位址之資料。此可提供將更新資料傳輸至特定處理器的更快方式,因為該處理器推送資料而不請求資料,而非必須使用其中顯式地請求資料的「拉取」機制。此可由中斷控制器在將中斷傳訊至處理器時利用。因此,回應於該給定中斷,中斷控制電路系統可控制中斷控制器記憶體存取電路系統藉由發布用於將該組基於記憶體的中斷追蹤資料結構之至少一個快取線之更新值推送至與處理針對該目標中斷處理上下文的中斷的處理器相關聯的快取記憶體的快取存放請求,來維護該至少一個快取線。例如,中斷控制器可儲存快取存放組態資料,該快取存放組態資料指定當中斷控制器更新對應於給定中斷處理上下文的佇列狀態彙總結構時哪個處理器之快取記憶體應當接收此種快取存放請求。快取存放組態資料可由在處理器上執行之軟體維護。因此,藉由使用快取存放請求,可藉由加速負責檢查對應於給定中斷處理上下文的佇列狀態彙總結構的軟體對處理器之快取記憶體中之更新值的存取來減少中斷潛時。
在一些用例中,中斷控制器可被視為與中斷控制器向其轉送中斷的處理器及/或用於存取共用記憶體系統的快取同調互連件分開的獨立產品。例如,用於中斷控制器之設計可獨立於處理器設計或快取同調互連件設計。因此,負責中斷控制器設計的一方亦設計互連件或處理器之組件並非必需的。
然而,在許多情況下,中斷控制器可與快取同調互連件及至少一個實體處理器一起積體至設備中,該設備中的給定實體處理器可包含:處理電路系統,該處理電路系統回應於指令而執行資料處理;至少一個處理器快取記憶體;及處理器記憶體存取電路系統,其用於發布對經由該快取同調互連件存取該共用記憶體系統的記憶體存取請求。例如,設備可係資料處理系統,例如晶片上系統。
該給定實體處理器可包含中斷監測控制電路系統,該中斷監測控制電路系統用於重複地控制處理器記憶體存取電路系統發布請求以同調性協定之獨佔同調性狀態將指定用於儲存佇列狀態彙總結構的給定快取線放入至少一個快取記憶體中的中斷監測記憶體存取請求。藉由以獨佔同調性狀態將對應於佇列狀態彙總結構的快取線保持在處理器快取記憶體中,此確保當中斷控制器更新佇列狀態彙總結構以指示存在針對給定關鍵結構的擱置中斷時,快取同調互連件將監聽處理器之快取記憶體以觸發使先前以獨佔同調性狀態保存的資料無效,使得處理器可偵測到已提出中斷。由於監聽可觸發針對對應於佇列狀態彙總結構的給定快取線之位址保存的資料的無效,則此可用於請求隨後將給定快取線的資料放回快取記憶體中,且此可致使將中斷控制器針對該快取線設定的最新資料值提供至給定實體處理器。因此,可有用的是中斷監測控制電路系統重複地請求以獨佔同調性狀態將給定快取線放回至少一個快取記憶體中,以確保該線保持在快取記憶體中,而不管中斷控制器作出的更新所觸發的無效,且確保將該線的更新值放入快取記憶體中。
重複地發布請求應當將給定快取線放入處理器之至少一個快取記憶體中的記憶體存取請求可以不同方式控制。一種方法可係週期性地發布規則間隔的此種請求。然而,針對相同快取線的相繼請求之間的間隔應當係規則的並非必需的。另一種方法可係每當來自快取同調互連件的監聽請求致使自快取記憶體使給定快取線之位址之資料無效時,中斷監測控制電路系統可藉由發布另一中斷監測記憶體存取請求來作出回應,使得該快取線之資料可繼續以獨佔同調性狀態保存在快取記憶體中以允許處理器繼續監測更新。因此,針對給定快取線的重複請求的時序可視所所選取實施方案而變化。
用語「中斷監測記憶體存取請求(interrupt monitoring memory access request)」用於表示由處理器記憶體存取電路系統在中斷監測控制電路系統之控制下發布的記憶體存取請求,以請求將指定用於儲存一組給定中斷追蹤結構中之佇列狀態彙總結構的快取線放入快取記憶體中。從快取同調互連件的觀點看,中斷監測記憶體存取請求沒有必要以任何方式與由處理器發布用於存取除中斷追蹤資料結構之外的資料的其他類型之記憶體存取請求區分。快取同調互連件可不知曉特定請求是否正在存取中斷追蹤資料結構。
可能存在處理器可監測以進行更新的相對大量的不同中斷處理上下文。然而,實際上,監測對應於各上下文的佇列狀態彙總結構之位址可能不可行,尤其在其中對應於各虛擬處理器的中斷處理上下文之數目可能極大的支援虛擬處理器的系統中。因此,處理器不需要同時監測所有中斷處理上下文。
在一個實例中,可特別有用的是中斷監測控制電路系統控制處理器記憶體存取電路系統發布針對複數個快取線的中斷監測記憶體存取請求,該複數個快取線包含:指定用於儲存對應於給定實體處理器的該組基於記憶體的中斷追蹤資料結構之佇列狀態彙總結構的至少一個快取線;及當給定虛擬處理器目前常駐在給定實體處理器上時,指定用於儲存對應於給定虛擬處理器的該組基於記憶體的中斷追蹤資料結構之佇列狀態彙總結構的至少一個快取線。此允許同時監測針對特定實體處理器的中斷及針對目前常駐虛擬處理器的虛擬中斷。同時監測多於一個實體處理器之中斷處理上下文並非必需的,但此亦可用於例如以實體處理器之不同安全狀態隔離中斷。類似地,同時監測多於一個虛擬處理器之中斷處理上下文並非必需的,因為僅針對由實體處理器執行的目前常駐虛擬處理器的虛擬中斷能夠在沒有管理程式幹預來重新排程執行哪個虛擬處理器的情況下處理。藉由將所監測位址之數目限制為與一個實體中斷處理上下文及一個虛擬中斷處理上下文相對應的佇列狀態彙總結構之位址,可減少不能用於規則資料的中斷監測所使用的快取容量方面的開銷,從而提高效能。因此,在一些實施方案中,中斷監測記憶體存取請求可支援同時監測用於實體中斷處理上下文的至少一個位址及用於虛擬中斷處理上下文的至少一個位址。出於中斷監測目的待監測的快取線之特定位址可由軟體使用對中斷監測控制電路系統可存取的組態資料來定義。
可有用的是快取同調互連件實施用於回應於來自至少一個實體處理器及中斷控制器的請求而調節對共用資源的存取的服務品質機制,以防止由於來自至少一個實體處理器的針對給定快取線的重複請求造成中斷控制器對給定快取線的存取不足。在處理器重複地發布對相同位址的中斷監測記憶體存取請求的一些實施方案中,由一或多個處理器發布的對該位址的存取之頻率可高於由中斷控制器進行的對該位址的存取之頻率,若中斷控制器被處理器的更大量的存取請求淹沒,此可產生中斷控制器存取不足的風險。服務品質機制已經得到許多快取同調互連件設計支援,例如以限制可供用於任何一個記憶體存取請求源的最大頻寬,或者保證可供用於某些記憶體存取請求源的一定最小頻寬(例如,匯流排上之保證槽)。任何已知服務品質機制可使用快取同調互連件來實現且應用於對存取映射至佇列狀態彙總結構的位址的請求。
在一些實例中,該組基於記憶體的中斷追蹤資料結構亦包含佇列啟用控制結構,該佇列啟用控制結構用於指示複數個中斷佇列結構中之何者被禁用而不能使例外傳訊至處理電路系統。用於設定佇列啟用控制結構的責任可在於軟體。此可用於提供允許軟體快速禁用給定優先等級的所有中斷以防致使向處理電路系統傳訊例外(而不必單獨更新對應於具有該優先級的各中斷識別符的各中斷狀態項)的控制。此可允許軟體隱蔽整個優先等級,此對於例如其中僅一或多個最高優先級佇列應當產生至處理電路系統的例外的執行週期可係有用的。中斷控制器不需要檢查或利用佇列啟用控制結構。相反,中斷控制器可基於與對應中斷識別符相關聯的中斷狀態項來偵測個別中斷之啟用狀態。
可有用的是將佇列狀態彙總結構及佇列啟用控制結構實現為位元映像,其中各位元指示對應佇列是否具有至少一個擱置中斷(對於佇列狀態彙總結構)或已由軟體禁用而不能致使提出至處理電路系統的例外(對於佇列啟用控制結構)。對應於相同佇列的佇列狀態彙總結構及佇列啟用控制結構之位元可分別位於佇列狀態彙總結構及佇列啟用控制結構內的相同相對位置處。此可允許處理器使用邏輯運算(例如,若該等結構經編碼成使得佇列狀態彙總結構中的位元值1指示具有至少一個擱置中斷的佇列,且佇列啟用控制結構中的位元值0指示至處理電路系統的例外目前被禁用的佇列,則使用逐位元AND運算)來組合佇列狀態彙總結構及佇列啟用控制結構,以產生指示哪些佇列既含有擱置/啟用中斷又被啟用以引起至處理電路系統的例外的佇列的值。此允許消除不含有任何擱置中斷或已由軟體禁用而不能致使產生至處理電路系統的例外的一些佇列以防引起例外或以防被讀取,以便更詳細地檢查哪些中斷係擱置的。
在支援佇列啟用控制結構的情況下,可有用的是佇列啟用控制結構作為佇列狀態彙總結構在相同快取線內提供。此意指當處理器監測中斷控制器對佇列狀態彙總結構的更新時,針對佇列狀態彙總結構接收的任何更新值亦將致使將佇列啟用控制結構的最新值放入處理器之快取記憶體中,從而允許處理器使用兩者結構來判定是否向處理電路系統傳訊例外。
當提供對應於各別虛擬處理器(作為用於多組各別中斷追蹤資料結構的中斷處理上下文)的彼等中斷追蹤資料結構時,受支援的不同虛擬處理器之數目可能極大,且使用處理器處之硬體同時監測各組各別中斷追蹤資料結構可能不可行。然而,可為所欲的是當中斷控制器傳訊已提出針對給定虛擬處理器的中斷時,若給定虛擬處理器目前未常駐在任何實體處理器上,則提示管理程式切換哪個虛擬處理器常駐在給定實體處理器上,以便致使需要服務中斷的虛擬處理器執行。一種方法可係擴大快取記憶體之各處理器的快取記憶體之大小,以適應監測對應於各虛擬處理器的多組不同追蹤資料結構中之不同佇列狀態彙總結構之更大數目的位址,但此可能極為無效率且需要大量的設計努力來修改處理器設計以支援更大快取。
一種更有效率的方法可係提供門鈴中斷產生單元,該門鈴中斷產生單元與該至少一個實體處理器及該中斷控制器分開,該門鈴中斷產生單元包含:至少一個門鈴中斷產生單元快取記憶體;門鈴中斷產生單元記憶體存取電路系統,其用於發布對經由該快取同調互連件存取該共用記憶體系統的記憶體存取請求;及虛擬中斷監測電路系統,其用於監測發送給至少一個門鈴中斷產生單元快取記憶體的同調性流量,以基於中斷控制器更新針對給定虛擬處理器的該組基於記憶體的中斷追蹤資料結構之佇列狀態彙總結構來偵測給定虛擬中斷的傳訊,且回應於偵測到該給定虛擬中斷的傳訊而將門鈴實體中斷傳訊至給定實體處理器。
門鈴中斷產生單元可以與如上文所論述之處理器類似的方式監測中斷控制器對佇列狀態彙總結構的更新。然而,由於門鈴中斷產生單元係預期用於監測虛擬中斷追蹤結構的專用單元,因此門鈴中斷產生單元之快取記憶體可不需要快取在實體處理器上執行之軟體所使用的任何其他資料,且因此具有用於快取比在處理器本身處實施的對應於更大數目的虛擬處理器的大得多的數目的佇列狀態彙總結構之位址的容量。因此,虛擬中斷監測電路系統經組態以監測對與給定實體處理器之中斷監測控制電路系統所監測者相比更大數目的基於記憶體的中斷追蹤資料結構組中之佇列狀態彙總結構的更新。門鈴中斷產生單元之虛擬中斷監測電路系統可監測由互連件發送的同調性流量,且若偵測到對對應於各別虛擬處理器的佇列狀態彙總結構之所監測位址中之任一個的更新,則將對應門鈴實體中斷傳訊至給定實體處理器。可如先前所論述之使用實體線(如在傳統中斷分佈方法中那樣)或藉由更新對應於記憶體中之實體中斷處理上下文的中斷追蹤資料結構來傳訊門鈴實體中斷。門鈴中斷產生單元可致使它本身直接或間接地藉由請求中斷控制器執行此傳訊來傳訊門鈴實體中斷。針對其斷言虛擬中斷的給定虛擬中斷處理上下文與對其斷言門鈴實體中斷的實體處理器(或實體中斷處理上下文)之間的映射可使用可由軟體程式化的組態資訊來定義,組態資訊對虛擬中斷監測電路系統可存取(組態資訊亦可指定待用於門鈴實體中斷的中斷識別符)。藉由提供門鈴中斷產生單元,在限制各實體處理器處的重新設計努力時將虛擬中斷分發擴展至更大數目的虛擬處理器變得更為可行。
現將參考圖式描述一些具體實例。應瞭解,所主張保護之標的不限於此等特定實例。
圖1示意性地繪示包含數個處理器4(例如,中央處理單元,CPU)的資料處理系統2(例如,晶片上系統)之實例。在此實例中,展示了三個處理器4,但應瞭解,處理器之數目可變化。處理器經由快取同調互連件6與彼此且與共用記憶體8通訊,該快取同調互連件支援同調性協定以維護快取於各處理器4之私用快取記憶體中的資料之快取同調性。
中斷控制器10被提供來接收來自已連接周邊設備14的進入中斷信號且將其轉送至處理器4。在一些情況下,處理器亦針對其他處理器產生中斷,稱為處理器間中斷(Inter-Processor Interrupt, IPI),因此處理器4本身亦可充當中斷源。周邊設備可將中斷傳訊至中斷控制器10,經由專用線11或藉由重複使用現有I/O(輸入/輸出)機制12(諸如記憶體映射的I/O寫操作)。後者通常稱為訊息傳訊中斷(message-signalled interrupt, MSI)。中斷控制器的工作係根據軟體執行的組態對中斷排優先級,以確保更高優先級中斷優先於更低優先級中斷呈現給處理器。在具有多於單一處理器的現代多處理器系統上,中斷控制器亦可能必須將中斷路由至一或多個指定處理器且處理路由組態的重新程式化,而不丟失中斷信號。
因此,中斷控制器需要能夠與它可向其轉送中斷的處理器通訊。如圖1所展示,實現此通訊的一種方式係在系統中使用專用通訊協定及中斷通訊匯流排16,該專用中斷通訊匯流排經專門設計以將來自中斷控制器10的中斷信號攜載至處理器4。中斷通訊匯流排16完全與用於輸送處理器4、記憶體8及中斷控制器10之間的記憶體交易的快取同調互連件6分開(中斷控制器10可仍然具有至快取同調互連件6的介面以允許處理器4發布的記憶體交易,以對控制中斷控制器10處理中斷至處理器4的轉送的方式的組態資訊程式化)。然而,提供專用中斷通訊匯流排16及協定可需要大量的設計努力,尤其是在大型分佈式系統中且尤其是對於多插座實施方案。
此外,中斷控制器10之另一功能係保存用於不同中斷之組態(例如,優先級及目標處理器)及中斷之狀態(啟用、隱蔽、擱置),此傳統上在中斷控制器內之專用儲存裝置(例如,暫存器)中進行,但隨著系統之大小的增大及所需中斷之數目的增加,此變得很難以所需數目的處理器及中斷進行擴展。
圖2及圖3展示不同的方法,其中利用快取同調互連件6所支援的現有快取同調性機制將來自中斷控制器10的中斷分發至處理器4,且中斷組態及狀態由基於記憶體的表表示,該等基於記憶體的表有處理器及中斷控制器共用。藉由將中斷追蹤資料結構儲存於記憶體中且使用快取同調互連件6之快取同調性協定來確保中斷控制器10及處理器4所見的共用追蹤資料結構之視圖之間的同調,此意指當中斷由於中斷控制器10接收到的訊息或信號而改變狀態時,則中斷控制器可藉由簡單地更新儲存於記憶體中的追蹤資料結構來致使中斷遞送至正確的處理器。此可在不需要專用中斷匯流排16的情況下藉由使用互連件6所支援的現有快取同調性互連件機制進行。此大大減少將晶片設計擴展至不同數目的處理器及中斷所涉及的設計工作,因為擴展可藉由改變儲存於記憶體中的資料結構之大小及數目而非藉由需要擴大專用中斷分佈匯流排16之佈線來實現。
因此,圖2繪示根據本技術之資料處理系統18之實例。如在圖1中,系統18包括至少一個處理器4、中斷控制器10、快取同調互連件6及記憶體8。雖然圖2出於簡潔僅展示單一處理器4,但可提供額外處理器,且該等額外處理器可以與圖2所展示之處理器4相同的方式操作。
給定處理器4包括處理電路系統20,該處理電路系統用於回應於指令而執行資料處理操作。例如,處理電路系統20可包括具有用於提取、解碼及執行指令之管線階段的處理管線。任何已知的管線設計可用於處理器4。處理器4亦包括數個處理器快取記憶體22,該數個處理器快取記憶體可包括多級快取記憶體,諸如1級快取記憶體23及2級快取記憶體24。處理器記憶體存取電路系統26充當處理器4與快取同調互連件6之間的介面,且負責發布記憶體存取請求及接收對記憶體存取請求的回應以及根據快取同調互連件6操作的同調性協定接收/發布其他訊息(諸如監聽請求及回應)。當處理電路系統20執行的上載/儲存指令在處理器快取記憶體中命中時,則此可觸發處理器記憶體存取電路系統26向快取同調互連件6發布讀取或寫入請求。
互連件6包括同調性控制電路系統30,該同調性控制電路系統負責判定如何處理自處理器4、中斷控制器10及充當記憶體存取交易源的其他請求節點接收的進入請求,以及將對應請求路由至記憶體8。當互連件6自一個請求節點接收到對其資料可能潛在地快取於另一請求節點處的位址的記憶體存取請求時,互連件6可將監聽請求發送至一或多個請求節點,以檢查快取於該請求節點處的資料之同調性狀態(例如,資料係無效的(未被快取)、髒的還係乾淨的)且觸發一動作,諸如使當另一請求者寫入至相同位址時將過時的資料之快取複本無效、或將該資料之最新錯複本返回給請求對該資料的存取的初始請求者。互連件6可使用任何已知的同調性協定。可使用的同調性協定之實例係由Cambridge, UK的ARM® Ltd提供的AMBA® 4 ACE及AMBA® 5 CHI同調性協定,但應瞭解,本文所論述之技術亦可應用於使用其他同調性協定的系統。
互連件6可包括系統快取記憶體32,該系統快取記憶體可提供對具有對記憶體8的存取權的所有請求節點4、10可存取的共用快取容量。共用系統快取記憶體32提供比存取主記憶體8自身可能達成的更快的對快取資料的存取。系統快取記憶體32亦可充當監聽濾波器以(至少部分地)追蹤快取於請求者裝置4、10處的快取記憶體22、48中的資料位址。監聽濾波器32可用於藉由允許同調互連件6判定資料何時未被快取在特定請求者處使得可省略至該請求者的監聽來減少監聽流量。監聽濾波器32並非必需的,且一些實施例可提供不嘗試追蹤快取於各請求者中的資料的互連件6。在此種情況下,當一個請求者4、10發布對可與其他請求者共用的資料的讀取或寫入交易時,同調互連件6可觸發監聽交易以使其發布至可具有來自相同位址之資料的快取複本的各其他請求者,且在需要時以資料之最近版本管理此等其他請求者處的同調性狀態的變化及/或對請求請求者的回應。然而,若存在許多請求者,則將監聽廣播至所有快取請求者的此方法可能很複雜且導致在系統18內交換大量的同調性流量。藉由提供可至少部分地追蹤哪些位址被快取在各別請求者處的監聽濾波器32,此可有助於減少監聽流量的量。在一些情況下,監聽濾波器32可精確地追蹤儲存於各請求者之快取中的資料,使得同調互連件6可確切地判定那裡快取了什麼資料。因此,當自發起請求者接收到關於可能可共用的資料的交易時,則互連件6可根據監聽濾波器之內容判定哪一些請求者正在快取來自相同位址之資料且將監聽交易發送至監聽濾波器32中所指示之彼等請求者,從而避免需要向目前不儲存資料的其他請求者發送監聽。然而,其他監聽濾波器無法精確地追蹤快取之內容。例如,可使用如下過濾方案:它確保監聽濾波器32避免錯誤否定,從而確保存在於私用快取記憶體中的任何資料記錄為存在於監聽濾波器中,但它准許一些錯誤否定,使得有時監聽濾波器32可指示該資料已快取於給定請求者中,但實際上該請求者已經使該資料無效。允許一些不精確的此方法可減少更新監聽濾波器的開銷,因為此意指並非來自請求者之快取記憶體的每一個無效都必須反映在監聽濾波器處。
互連件6實現服務品質(quality of service, QoS)機制34,該QoS機制可用於調節可供用於不同記憶體存取交易源的記憶體系統帶寬。QoS機制34可設定對可供用於任何一個源的最大帶寬的限制,或者可保證至少最小帶寬用於給定記憶體存取交易源,以防止任何一個記憶體交易源存取不足,即使存在另一源正在以高得多的速率產生交易亦是如此。可使用任何已知的QoS方案。
因此,互連件6實現的同調性協定確保當兩個不同請求者諸如處理器4及中斷控制器10共用對共用資料的存取時,一個請求者對共用資料作出的更新將被另一個請求者看到。具體而言,若第一請求者4、10以「獨佔」同調性狀態將給定位址之資料快取在其快取記憶體中,則在第二請求者發布對該給定位址的寫入請求的情況下,此將導致快取於第一請求者中的獨佔保存資料基於互連件6回應於偵測到來自第二請求者的寫入請求發送的監聽請求而被無效或更新。此可由中斷控制器10利用以允許其將中斷信號分發至處理器4。
中斷控制器10包括中斷偵測電路系統40,該中斷偵測電路系統用於偵測由中斷源諸如處理器4或周邊設備14提出的中斷(但在圖2中未明確展示,如在圖1中,中斷可使用專用中斷佈線11或利用基於訊息的方法來偵測,其中中斷在周邊裝置發送用於存取記憶體系統8的記憶體交易中帶內傳訊)。中斷控制電路系統44回應於中斷偵測電路系統40偵測到給定中斷而控制對中斷的處理及中斷至處理器4的分發。中斷控制器記憶體存取電路系統46被提供來控制中斷控制器10對記憶體系統的存取,且管理快取同調性訊息在中斷控制器10與快取同調互連件6之間的交換。中斷控制器10包括至少一個快取記憶體48,該至少一個快取記憶體用於快取來自某些位址之資料;及一組組態暫存器50,該組組態暫存器可由在處理器4上執行之軟體組態以儲存組態資訊,該組態資訊控制中斷控制器10處理中斷分發的方式(替代地,而非提供專用組態暫存器50,組態資訊可儲存在儲存於記憶體8中的基於記憶體的結構中且潛在地快取在中斷控制器10之快取記憶體48中)。
當中斷控制電路系統44判定應當將給定中斷傳訊至給定處理器時,此藉由控制中斷控制器記憶體存取電路系統46發布一或多個記憶體寫入請求以更新對應於將要在其中處理中斷的目標中斷處理上下文的一組基於記憶體的中斷追蹤結構來進行。此等追蹤結構將關於圖3更詳細地論述。各中斷處理上下文可係在系統內以硬體實現的實體處理器4,或作為模擬不同處理器之行為的在實體處理器4上執行之軟體的虛擬處理器。在任何時間,給定實體處理器4可執行一個活動虛擬處理器(稱為「常駐」虛擬處理器),但亦可存在正等待實體處理器上之執行槽的數個不活動虛擬處理器(此等不活動虛擬處理器可稱為「非常駐」虛擬處理器)。各中斷處理上下文具有一組對應的基於記憶體的中斷追蹤結構及組態暫存器50(或儲存於記憶體8中的其他組態資料結構),其可由中斷控制器10使用以針對給定中斷識別要更新的中斷追蹤結構(例如,組態資料可指定進入中斷之中斷識別符或中斷源與當偵測到該中斷時將要更新的相關中斷追蹤結構之基位址之間的映射)。
處理器4之中斷監測控制電路系統28由軟體組態以監測對分配用於中斷監測目的的一組特定位址的更新。要監測的位址由軟體設定。此等位址可包括一或多組中斷追蹤資料結構內用於目前將要針對其監測中斷的一或多個中斷處理上下文的某些位置的位址。例如,在給定時間,實體處理器4可能夠同時監測至少與實體處理器4及在實體處理器4上運行之常駐虛擬處理器相對應的對應於中斷處理上下文的中斷追蹤結構中的給定位址。可選地,實體處理器4亦可監測用於其他中斷處理上下文的另外位址。
對於各所監測之位址,中斷監測控制電路系統28確保該位址之資料以獨佔同調性狀態保存在處理器快取記憶體22中,使得快取同調性協定將引起中斷控制器10對彼等位址之一者的更新,以觸發互連件6向處理器4遞送監聽(或其他訊息,諸如在下文進一步論述的快取存放請求)。此訊息可觸發獨佔保存資料的無效或更新,該無效或更新可被偵測到且因此提示中斷監測控制電路系統28向處理電路系統20遞送中斷例外,以致使處理電路系統20上之軟體處理中斷。可存在中斷監測控制電路系統28可確保持續地以獨佔同調性狀態保存所監測之位址之資料的數種方式。一種方法可簡單地係以特定時間間隔重複地發布請求獨佔存取資料的讀取請求,若資料已經保存在快取記憶體中,則將不向互連件6提示任何請求,但若資料已自快取記憶體逐出,則可致使以獨佔狀態將待讀取之資料上載至快取記憶體中。另一種方法可係回應於偵測到所監測之位址之資料已自處理器快取記憶體22逐出而發送請求獨佔存取資料的讀取請求,此係由於因在另一位址需要分配至快取記憶體時產生的快取容量衝突造成的取代,或由於來自互連件6的監聽。無論採取哪種方法來實現對獨佔存取所監測之位址的請求的重複,藉由重複地請求所監測之位址之資料,此確保更新監聽濾波器32以追蹤處理器4保存該位址之資料,以便致使其他請求者(諸如中斷控制器10)對該位址的任何更新引起監聽,該監聽可用於提示中斷處理例外。
圖3更詳細地繪示一組中斷追蹤資料結構之實例,該組中斷追蹤資料結構作為儲存於記憶體8中用於給定中斷處理上下文的資料維護。圖3展示單一中斷處理上下文之結構,但應瞭解,此等結構可針對各不同中斷處理上下文(例如,實體處理器或虛擬處理器)單獨地提供。如圖3所展示,對應於給定中斷處理上下文的中斷追蹤資料結構包括中斷描述符表60及數個中斷佇列結構70(為簡潔起見僅在圖3中展示單一佇列70,但應瞭解,在對應於給定中斷處理上下文的該組中斷追蹤資料結構內提供多個佇列70,其中各佇列72用於排佇列不同的中斷群組)。
中斷描述符表60包括佇列狀態彙總結構62、佇列啟用控制結構64及數個中斷狀態項66,各中斷狀態項66對應於各別中斷識別符。中斷控制器10自中斷源接收的中斷各自指定該中斷之中斷識別符(或替代地,指定由中斷源指定的未轉譯中斷識別符,該未轉譯中斷識別符可由中斷控制器10基於中斷轉譯表轉譯成經轉譯中斷識別符,該中斷轉譯表定義未轉譯中斷識別符與經轉譯中斷識別符之間的映射,此在下文進一步描述)。中斷識別符簡單地係將不同的中斷彼此區分開的值,不同系統可以不同方式使用識別符且中斷控制器10可能並不知曉具有特定中斷識別符的中斷表示什麼。例如,可為自不同中斷源接收的中斷、或不同類型的中斷、或由不同事件造成的中斷分配不同中斷識別符。使用中斷識別符的特定方式可視特定系統組態而定。當發生具有給定中斷識別符的中斷時將要進行的特定回應可在安裝於處理設備上的軟體中定義,因此不在硬體中預定義。因此,中斷控制器之動作可係通用的,且不需要考慮任何個別中斷的具體含義。
各中斷狀態項66提供關於具有對應中斷識別符的中斷的資訊,包括指定指派給該中斷識別符(用於不同中斷之間的優先級排序)的優先等級及指示目前啟用還係禁用(隱蔽)具有對應中斷識別符的中斷的啟用狀態的資訊。目前不需要處理器4處理隱蔽中斷。對應於給定中斷識別符的優先等級及啟用狀態二者可由在處理器4上執行之軟體藉由寫入至對應於對應中斷識別符的相關中斷狀態項66來組態。寫入針對儲存中斷狀態項的位址的存取權限可在頁表結構中定義,該等頁表結構由處理器44用於位址轉譯且用於允許哪個軟體寫入中斷描述符表60實施限制。
佇列結構70基於中斷之優先等級來組織,使得各佇列結構70(在對應於特定中斷處理上下文的該組追蹤結構內)對應於不同優先等級的中斷。因此,當進入中斷由中斷控制器10之中斷偵測電路系統40偵測到時,中斷控制電路系統44檢查與進入中斷所指定的中斷識別符相對應的中斷狀態項66,且檢查中斷狀態項66是否指示啟用中斷,更新與中斷狀態項66中所指定之優先等級相關聯的對應佇列70,以指示擱置中斷(藉由在中斷狀態項66中設定禁用狀態而被隱蔽的目前禁用的中斷將不致使在對應佇列70中記錄擱置中斷)。相關佇列70之位址可基於針對中斷控制器10的組態資訊50中所指定之基位址來判定。
各佇列70包括佇列描述符(queue descriptor, QD) 72,佇列鎖定參數(queue lock, QL) 74及數個中斷排佇列項76。佇列描述符72提供關於佇列的資訊以允許中斷控制器10及處理器4管理對佇列的存取。例如,佇列描述符72可包括佇列大小指示80,該佇列大小指示可用於識別對佇列70之大小的限制。大小指示80並非必需的,且在不存在佇列大小指示時,可將各佇列假定為具有一定預設大小。然而,藉由提供大小指示80,此為佇列提供靈活性以使一些優先等級小於其他優先等級以允許多個佇列適配在比所有佇列70具有相同大小的情況小的足以處理預期具有更大數目的擱置中斷的中斷優先等級的空間中。佇列描述符72亦包括寫入指標(QW) 82,該QW用於識別當新中斷將要被添加至佇列時將要由中斷控制器10寫入的下一項76;及讀取指標(QR) 84,該QR由在處理器4上執行之軟體用於識別將要由軟體讀取以獲得關於佇列中將要處理的下一中斷的資訊的下一項76。
佇列鎖定參數74用於提供使得當需要同時自中斷控制器10及處理器4二者操縱佇列70時能夠實施排序要求的共用記憶體協定。鎖定參數74可設定至鎖定狀態或未鎖定狀態。例如,鎖定狀態可由1指示,且未鎖定狀態可由0指示。替代地,鎖定參數可設定為保存鎖定參數的請求者/軟體之識別符,且因此,當鎖定參數具有除請求者自己的識別符之外的值時,給定請求者可將鎖定參數視為處於鎖定狀態(指示佇列由另一請求者/軟體鎖定)。應瞭解,存在可實現鎖定參數的各種方式。當中斷控制器10需要更新給定佇列結構70以排佇列額外中斷以供處理時,或當處理器4上之軟體需要更新佇列以清楚關於已得到服務的中斷的資訊時,中斷控制器10或處理器4上之軟體首先讀取該佇列70之鎖定參數以判定鎖定參數是否處於鎖定狀態。若鎖定參數處於鎖定狀態,則中斷控制器10或軟體推遲寫入至佇列,直至發現鎖定參數被未鎖定為止,且一旦鎖定參數74處於未鎖定狀態,則中斷控制器10或軟體可藉由將鎖定參數更新為處於鎖定狀態來聲明鎖定,然後繼續寫入至佇列70中之相關項76,然後在寫入完成時對鎖定參數未鎖定。此方法可確保佇列70之同調性並避免原本在不存在由中斷控制器10及處理器4處之軟體使用的記憶體共用協定時可能出現的競態條件及同步丟失。應瞭解,鎖定機制並非確保共用記憶體同步的唯一方式,且可使用其他方法諸如交易性記憶體的使用。
佇列70中之各佇列項76係無效的(不提供關於任何擱置中斷的資訊),或若有效,則提供關於擱置中斷的資訊,諸如指示對應中斷之中斷識別符。可選地,佇列中亦可記錄有關中斷的其他資訊。
返回至中斷描述符表60,佇列狀態彙總結構62及佇列啟用控制結構64提供關於該組對應中斷追蹤資料結構中之該組佇列70的資訊,此有助於給定處理器4更快地判定是否向處理電路系統20傳訊例外以中斷處理電路系統正在執行的處理。佇列狀態彙總62係位元映像,其中佇列狀態彙總62中之各位元對應於佇列70中之各別佇列且指示該佇列在佇列中是否排佇列有任何擱置且啟用的中斷。當中斷控制器10將新擱置中斷指派給佇列70時,則它亦設定佇列狀態彙總62中之對應位元(中斷控制器10不必首先偵測是否已經設定該位元,只是寫入至位元可更快,而不管是否已經設定或清除位元)。佇列啟用控制結構64係由軟體用於隱蔽給定優先等級的中斷的位元映像。佇列啟用控制結構64中之各位元對應於佇列70中之各別佇列且指示該佇列是被啟用還是被禁用而不能致使在存在由中斷控制器10分配給佇列的擱置/啟用中斷時向處理電路系統傳訊例外。維護佇列啟用控制結構64的責任在於處理器4上之軟體,該軟體負責選擇目前啟用或禁用哪些優先等級(佇列)。中斷控制器10本身不需要讀取或寫入佇列啟用控制結構64。
指示各佇列70之擱置狀態的佇列狀態彙總62及指示是否已禁用對應佇列70之例外的佇列啟用控制結構64以使得對應於給定佇列70的位元在佇列狀態彙總62及佇列啟用控制結構64中位於相同位元位置處的對應方式來組織。對於佇列狀態彙總62,位元值1指示對應佇列具有至少一個擱置/啟用中斷,且0指示對應佇列不具有擱置的中斷。對於佇列啟用控制結構64,位元值1指示佇列被啟用以致使在佇列中存在至少一個擱置/啟用中斷時傳訊例外,且位元值0指示對應佇列被禁用而不能致使甚至在佇列中記錄有至少一個擱置/啟用中斷的情況下向處理電路系統20傳訊例外。此意指在處理器4需要檢查在接收到指示已作出對佇列狀態彙總62的更新(例如,藉由中斷控制器10或在另一CPU上執行之軟體更新佇列啟用控制結構64)的監聽請求之後是否應當向處理電路系統20傳訊例外時,可在逐位元AND運算中組合佇列狀態彙總62及佇列啟用控制結構64,使得若任何位元在AND結果中被設定為1,則中斷監測控制電路系統28向處理電路系統20傳訊例外,因為此意指存在至少一個含有擱置/啟用中斷的啟用佇列。AND結果亦可由軟體用於回應於該例外而判定應當讀取哪些佇列以獲得佇列內容的更詳細分析。應瞭解,其他實例可使用狀態/啟用位元映像62、64中的位元0或1指示什麼的不同映射,在此種情況下,可使用(除AND之外的)不同布林函數來組合位元映像以判定是否傳訊例外。此外,一些實施方案可根本不支援佇列啟用控制結構64,佇列啟用控制結構64係可選的。
在此實例中,佇列狀態彙總62及佇列啟用控制結構64經大小設定成使得它們共同適配在一個快取線內,從而使得對佇列狀態彙總62及佇列啟用控制結構64的更新可由處理器4藉由在其處理器快取記憶體22中為單一待監測之位址分配一快取項來監測(因為快取線係互連件6控制快取同調性的粒度單位)。因此,處理器能夠藉由監測獨佔地快取於其處理器快取記憶體22中的單一位址來監測對多個佇列的更新,與為各中斷類型或各佇列分配單獨的待監測之記憶體位址的方法相比,此限制監測中斷的效能成本。
在此實例中,佇列狀態彙總62及佇列啟用控制結構64分別儲存於中斷狀態項位置0至3及4至7處,使得中斷識別符0至7係無效的且有效中斷識別符具有為8或更大的值。其他實例可與中斷狀態項66分開地儲存佇列狀態/啟用位元映像62、64,且在該情況下由於無效而不需要預留任何中斷識別符值。
在此實例中,各佇列結構70具有4 KB的最大大小,使得它適配於位址空間之單一頁內,該單一頁由處理器4作為控制位址轉譯及使用頁表的記憶體存取權限的粒度使用。大小參數80可以可選地用於將佇列結構70之大小限制至小於4KB,此可允許將多個佇列70分配至相同頁。類似地,中斷描述符表60具有單一頁的最大大小。此避免對相同佇列70內之不同項的存取、或對中斷描述符表60內之不同項的存取的任何風險,該等項由於被映射至不同頁表項而具有不同行為,且確保將中斷描述符表及各個別佇列70二者映射至實體記憶體之連續區塊,使得中斷控制器處不需要位址轉譯。
應瞭解,雖然圖3展示用於對應於給定中斷處理上下文的該組中斷追蹤結構的一種特定佈局,但在其他實例中可將相同資訊佈局在不同排列中。
圖4係展示由中斷控制器10執行中斷控制之方法的流程圖。在步驟100,中斷偵測電路系統40偵測如由中斷源14提出的具有給定中斷識別符的給定中斷(給定中斷識別符可直接由中斷源指定,或者可係藉由轉譯由中斷源指定的識別符而獲得的經轉譯識別符)。在步驟102,回應於偵測到給定中斷,中斷控制電路系統44控制中斷控制器記憶體存取電路系統46藉由發布用於維護一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來將給定中斷傳訊至目標中斷處理上下文(諸如給定實體處理器或虛擬處理器),該組基於記憶體的中斷追蹤結構包括:所選取中斷佇列結構70,其用於排佇列給定中斷以供目標中斷處理上下文處理(所選取佇列結構70可基於給定中斷識別符自多個佇列結構70選取,例如,基於間接選擇,其中中斷識別符用於選擇提供優先等級的中斷狀態項,且優先等級用於選擇所選取中斷佇列結構70);及佇列狀態彙總結構62,其經更新以指示哪些中斷佇列結構70保存等待供目標中斷處理上下文處理的擱置中斷。寫入請求致使互連件6所提供的同調性機制將監聽請求或其他同調性訊息發布至可保存已更新的相同位址之資料的任何快取記憶體,該等監聽請求或其他同調性訊息可用於提示正在針對中斷監測該位址的給定處理器4致使軟體服務中斷。
圖5繪示由代表對應佇列狀態彙總結構62之位址以獨佔狀態快取在處理器之快取記憶體22中的目標中斷處理上下文行動的給定處理器4執行的步驟。在步驟120,處理器4之中斷監測控制電路系統28判定與佇列狀態彙總結構62之位址相對應的快取線是否已無效或自處理器之快取記憶體22逐出。若否,則繼續該方法以等待相關快取線的無效或逐出。當偵測到快取線為已無效或逐出時,在步驟122,中斷監測控制電路系統28發布以獨佔同調性狀態將快取線放回快取記憶體中的請求。此確保處理器可繼續監測該位址以檢查對佇列狀態彙總結構的更新,該等更新可指示中斷控制器10已傳訊擱置中斷(因為中斷控制器對佇列狀態彙總結構的更新將提示互連件6發布提示使來自處理器之快取記憶體22的獨佔保存位址無效的請求)。由於佇列啟用控制結構64與佇列狀態彙總結構在相同的快取線中,因此對佇列狀態彙總結構之位址的請求亦致使佇列啟用控制結構64可供用於處理器。
一旦對應於佇列狀態彙總結構(及若支援,以及佇列啟用彙總結構)的快取線在快取記憶體中可用,處理器4之中斷監測控制電路系統28便基於佇列狀態彙總結構62及佇列啟用控制結構64來檢查是否存在既由軟體啟用以致使傳訊例外又具有擱置/啟用中斷的至少一個佇列。此種檢查可藉由使用逐位元AND組合彙總結構62、64且在AND結果中檢查是否存在被設定為1的任何位元來有效率地執行。若存在經啟用且包括一擱置/啟用中斷的至少一個佇列70,則在步驟126,中斷監測控制電路系統28斷言中斷例外,該中斷例外經傳訊以致使中斷處理電路系統20上的處理,使得處理電路系統20切換至軟體中之例外處理器的處理。例外處理器隨後讀取識別為被啟用且具有至少一個擱置/啟用中斷的佇列結構70。例外處理器可按優先等級順序讀取在AND結果中具有1的佇列結構70。因此,藉由將中斷分組成按優先等級排列的佇列,此使例外處理器判定首先讀取哪些佇列特別簡單,因為此避免對讀取關於個別優先級的資訊以便確實中斷優先級的任何需要。例外處理器可首先讀取具有擱置/啟用中斷的最高優先級佇列,然後按佇列順序處理該佇列中之各擱置/啟用中斷,而無需在該佇列中之中斷之間進行優先級排序(基於檢查對應於該中斷的特定中斷狀態項66來判定擱置中斷之啟用狀態),接著在第一佇列中之所有較高優先級中斷已得到服務時切換至另一較低優先級佇列。
應瞭解,由軟體中之例外處理器執行的操作不係資料處理設備18本身之特徵,因為在該等步驟中沒有硬體處理邏輯實現。軟體不係設備18本身之一部分,因為軟體將稍後在設備使用時安裝。
圖6係更詳細地展示由中斷控制器10執行以用於偵測及分發中斷的步驟的流程圖。在步驟150,中斷控制器10偵測由中斷源提出的中斷(此步驟與圖4之步驟100相同)。回應於偵測到的中斷,在步驟152,中斷控制器10之中斷控制電路系統44查找稱為中斷轉譯表(interrupt translation table,ITT)的資料結構,以獲得對應中斷的中斷識別符及待用於該中斷的該組中斷追蹤結構之基位址。例如,ITT可用於提供中斷識別符轉譯,使得可能已使用衝突的中斷識別符的不同中斷源可將其中斷識別符映射至由中斷控制器使用的全域中斷識別符空間。ITT亦可用於定義哪個中斷處理上下文用於服務中斷。因此,中斷控制器10不需要知曉哪些特定實體或虛擬處理器用於服務中斷,因為ITT可將所接收之(未轉譯)中斷識別符映射至記憶體中待更新的結構之特定位址,且中斷控制器10可不知曉哪些特定處理器4目前正在監測彼等中斷追蹤結構以進行更新。其他實例可不支援中斷識別符轉譯,且在該情況下,可在不同資料結構中定義對應於特定中斷識別符的結構之基位址。ITT或用於識別對應於進入中斷的待更新之中斷追蹤結構之基位址的其他資料結構可儲存在記憶體中或中斷控制器10內之一組專用儲存裝置(例如,組態暫存器50)中。
在步驟153,存取基於在步驟152獲得的基位址而識別的該組追蹤結構之中斷描述符表60,且中斷控制器10讀取對應於中斷識別符(若支援中斷識別符轉譯,則係經轉譯中斷識別符)的中斷狀態項66以識別該中斷之優先等級P及啟用狀態。在步驟154,中斷控制器10判定自對應於中斷識別符的中斷狀態項66獲得的啟用狀態是否指示此中斷識別符目前被啟用。若否,則隱蔽該中斷,且因此在步驟155,中斷控制器10不回應於在步驟150偵測到的中斷而更新中斷佇列70中之任一者。若中斷被判定為啟用,則在步驟156,中斷控制器10之中斷控制電路系統44選擇對應於針對中斷獲得的優先等級P的佇列結構70之基位址。在步驟158,讀取所選擇中斷佇列結構70之鎖定參數74,且中斷控制電路系統44判定鎖定參數目前是否處於鎖定狀態。若佇列目前被鎖定,則中斷控制電路系統44等待,直至鎖定參數不再處於鎖定狀態為止。一旦鎖定參數74指示未鎖定狀態,則在步驟160,中斷控制電路系統44控制中斷控制器記憶體存取電路系統46發布對更新所選擇中斷佇列結構以排佇列在步驟150接收的給定中斷以供目標中斷處理上下文處理的寫入請求。此藉由執行一系列記憶體存取來進行:
● 藉由將所選擇佇列72之鎖定參數QL 74更新為鎖定狀態來聲明鎖定(在一些實例中,步驟158的鎖定檢查及步驟160的鎖定設定可使用單一原子測試並設定請求來實施,該單一原子測試並設定請求在另一請求者尚未設定鎖定的條件下以原子方式設定鎖定);
● 讀取寫入指標QW 82;
● 將偵測到的中斷之(經轉譯)中斷識別符寫入至佇列中之下一可用項(下一可用項係基於寫入指標QW 82來判定)。
● 更新寫入指標QW以使其提前指向先前由寫入指標QW指示的項之後的下一項;及
● 藉由將鎖定參數QL設定至未鎖定狀態來釋放鎖定,從而允許其他請求者諸如處理器4上之軟體進行存取。
在步驟162,中斷控制電路系統44控制中斷控制器記憶體存取電路系統46發布用於藉由設定對應於在步驟153獲得的優先等級P的位元來維護佇列狀態彙總結構62的寫入請求。方法然後返回至步驟150以處理中斷控制器10偵測到的下一中斷。
圖7係展示中斷源14、中斷控制器10、互連件6、處理器4及在處理器上執行之軟體之間的示範性交互的梯形圖。中斷源14向中斷控制器10發布指示已提出對應於特定中斷識別符的中斷的信號。此提示中斷控制器10將所提出之中斷的指示寫入與對應於對應中斷識別符的中斷狀態項66中所指定的優先等級P相對應的佇列結構70(在圖7之實例中,為簡潔起見省略中斷識別符轉譯,但在其他實例中仍可支援中斷識別符轉譯)。中斷控制器10亦寫入至對應於對應中斷處理上下文的佇列狀態彙總結構62,以指示佇列中已設定擱置中斷。寫入至佇列狀態彙總62觸發中斷6監聽可保存對應位址之資料的任何處理器4之快取記憶體22(若知道某些快取記憶體不保存對應位址,則監聽濾波器32可用於限制需要監聽的數目)。需注意,此類監聽亦可藉由寫入至佇列結構70本身來觸發,但為簡潔起見自圖7省略此等監聽。
在處理器4處偵測到由互連件6發布的監聽請求,處理器自其快取記憶體22使具有先前獨佔地保存在處理器之快取記憶體22中的對應於佇列狀態彙總結構62的位址的資料無效。處理器4返回指示監聽位址之快取資料已無效的監聽回應,該監聽回應可作為同調性協定之一部分在互連件6處偵測到(此可能需要來自各被監聽請求者的回應)。處理器4處的中斷監測控制電路系統28偵測到與佇列狀態彙總62之位址相對應的快取線已無效,且因此重新請求自記憶體系統獲得該位址之資料,從而請求將資料獨佔地保存在快取記憶體中(此讀取請求本身可引起至中斷控制器10或其他處理器4的監聽,但為簡潔起見自圖7省略此等監聽)。讀取請求致使將佇列狀態及啟用位元映像62、64的最近值返回給處理器4,其中中斷監測控制電路系統28可組合佇列狀態/啟用位元映像62、64(例如,如上文所論述之逐位元AND),以產生指示哪些佇列既含有至少一個擱置/啟用中斷又由佇列啟用位元映像64指示為由軟體啟用以致使提出例外的值。若存在既具有至少一個擱置/啟用中斷又被用於以致使傳訊例外的任何佇列,則中斷監測控制電路系統28提出中斷例外,該中斷例外被發送至處理電路系統20,從而致使中斷在處理器上執行之軟體。處理電路系統20切換至執行軟體例外處理器,該軟體例外處理器讀取識別為被啟用且具有擱置/啟用中斷的佇列結構70,以識別哪些中斷需要服務。
在圖7之實例中,由互連件6回應於中斷控制器10寫入佇列狀態彙總結構而產生的監聽致使處理器之快取記憶體4處對應於佇列狀態彙總結構62的快取資料無效,且處理器4處的中斷監測控制電路系統28然後請求該等位址之更新資料,更新資料然後被放回處理器之快取記憶體中,使得處理器4可檢查已用擱置中斷更新哪些佇列。
然而,如圖8所展示,在一些實施方案中,可藉由使用快取存放請求來消除佇列狀態彙總62的與讀取請求相關聯的延遲,該快取存放請求可支援一些同調性協定以允許將給定位址之更新資料直接推送至另一請求者之快取記憶體。圖8中的中斷源14對中斷的提出與圖7相同,但這次代替中斷控制器10發布引起至處理器4的監聽的非存放寫入,該中斷控制器發布致使將佇列狀態彙總62之更新資料推送至處理器之快取記憶體22的快取存放寫入請求(其中更新資料獨佔地保存在處理器之快取記憶體22中)。雖然圖8展示經由互連件6發送存放請求,但存放請求亦可由中斷控制器10直接發送至處理器4。存放請求消除對處理器4將讀取請求發布至互連件6以請求對佇列狀態彙總62的存取的需要。因此,使用推送機制來代替如圖7中由顯式處理器請求觸發的拉取機制。圖8中的使用佇列狀態彙總62及佇列啟用控制結構64進行的後續操作、及中斷例外至軟體的傳訊、以及軟體對佇列結構70的讀取與圖7相同。
因此,藉由使用存放請求來更新相關中斷處理追蹤結構中之位址,中斷控制器10及互連件6可藉由消除與將對應於佇列狀態彙總結構62的先前無效的快取線的資料讀回至處理器之快取記憶體中相關聯的延遲來加速處理器4處的中斷服務。
如上文所提及,上文論述之中斷分發技術可用於分發待由在實體處理器4上運行之虛擬處理器處理的虛擬中斷。在實體處理器4上運行之管理程式負責排程在給定時間運行哪個特定虛擬處理器。當給定虛擬處理器在實體處理器4上常駐時,管理程式可對待由中斷監測控制電路系統28監測的位址程式化,以將常駐虛擬處理器之佇列狀態彙總結構62之位址指示為待監測之位址之一者。此允許中斷控制器硬體將中斷直接注入至常駐虛擬處理器(而非依賴軟體模擬中斷至虛擬處理器的傳訊)。
然而,支援中斷至虛擬處理器的直接注入的系統中的問題是當中斷的目標虛擬處理器目前不常駐時要做什麼。例如,當虛擬處理器沒有工作要做時,它可發布指令以引起至管理程式的陷阱。管理程式軟體可使用該陷阱作為虛擬處理器沒有工作要執行的提示,且將虛擬處理器放於排程睡眠佇列上,等待某一事件將虛擬處理器放回虛擬處理器的要運行之佇列上。在同時,有工作要做的另一虛擬處理器可在實體處理器上執行。此有助於改善系統中的通量,或藉由能夠在無虛擬處理器有工作要做時將實體處理器置於低功率狀態來節省功率。
當虛擬中斷到達睡眠佇列上的非常駐虛擬處理器(如藉由中斷控制器10更新對應於該虛擬處理器之中斷處理上下文的佇列狀態彙總結構62所指示)時,管理程式將此解譯為虛擬處理器現在有工作要做的提示,且一般將立即運行虛擬處理器或將虛擬處理器放於運行佇列上以便立刻對其進行排程。此方案在軟體中產生虛擬中斷時運作良好,因為管理程式直接參與此過程且可在需要時執行以上動作。然而,當使用硬體加速來支援由硬體作為虛擬中斷產生的中斷至虛擬處理器的直接注入(諸如上文所述之直接注入功能性)時,則虛擬中斷可能對於睡眠虛擬處理器係擱置的,且管理程式不知道喚醒虛擬處理器。
此問題可藉由下列方式得到解決:在虛擬處理器不常駐在任何實體處理器上且虛擬中斷到達虛擬處理器時,中斷控制器產生至管理程式的實體通知中斷(稱為門鈴中斷),從而通知管理程式喚醒並運行虛擬處理器以使得虛擬處理器可處理虛擬中斷。然而,對於上文論述之類型之中斷控制器10(其簡單地藉由寫入至共用記憶體(藉助更新特定記憶體位置從而致使處理器提出中斷的動作)來遞送中斷),在中斷控制器10處產生實體門鈴中斷可能不切實際,因為中斷控制器10不知曉目標實體或虛擬處理器之狀態,只是簡單地執行寫入至記憶體。
產生門鈴中斷之另一種方式可係處理器4監測與對應於所有虛擬處理器(包括常駐虛擬處理器及非常駐虛擬處理器二者)的中斷處理上下文相對應的所有中斷追蹤結構組,使得當中斷控制器10向佇列74添加擱置中斷時,非常駐虛擬處理器之一者,此可基於對對應位址的同調性監聽而偵測到,該等同調性監聽觸發中斷監測控制電路系統28產生發送至處理電路系統20的實體門鈴中斷,該實體門鈴中斷提示管理程式重新排程運行哪個虛擬處理器。然而,此方法的問題係在給定時間可存在數百或數千個非常駐虛擬處理器,且因此針對虛擬處理器監測對應於佇列狀態彙總62的位址之各者將需要預留處理器快取記憶體22之大量項用於佇列狀態彙總62之位址,從而防止該等項用於快取實際上由在處理電路系統20上運行之軟體處理的有用資料。實際上,此將影響該軟體所達成的處理效能。
因此,如圖9所展示,提供門鈴裝置(doorbell device, DBD) 170(亦稱為門鈴中斷產生單元),其可以與早前論述之處理器4類似的方式接收中斷。DBD 170可監測用於傳訊針對數個虛擬處理器的擱置中斷的記憶體位置,且若針對彼等虛擬處理器中之任一者偵測到擱置中斷,則DBD 170可寫入至實體處理器4上之管理程式所指定的一或多個記憶體位置(例如針對與該實體處理器4相對應的中斷處理上下文的佇列狀態彙總62及佇列70之位址),且由此產生至管理程式的門鈴中斷。在圖9之實例中,處理器4、互連件6、中斷控制器10、周邊設備14、及記憶體8在其他方面與圖2相同。因此,藉由提供DBD 170,實體處理器4本身不需要監測用於傳訊針對各虛擬處理器的中斷的位址。替代地,各實體處理器4可足以監測與對應於該實體處理器的中斷處理上下文之佇列狀態彙總62相對應的一個位址及與目前正在被處理的對應於常駐虛擬處理器的中斷處理上下文之佇列狀態彙總62相對應的一個位址(可選地,亦可監測額外的中斷處理上下文,諸如針對處理器4之特定安全狀態的中斷處理上下文)。每當管理程式重新排程切換虛擬處理器常駐時,管理程式可重新程式化處理器4針對虛擬中斷處理上下文將要監測哪些位址。管理程式亦可程式化DBD 170中之組態資訊以控制當在偵測到擱置虛擬中斷之後傳訊實體中斷時DBD 170監測哪些位址及DBD寫入至哪些位址。
圖10更詳細地繪示DBD 170。以與處理器4類似的方式,DBD 170包括虛擬中斷監測電路系統172、DBD記憶體存取電路系統174及快取記憶體176,它們以與處理器4之對應組件28、26、22類似的方式起作用,使得重複地以獨佔同調性狀態將與虛擬中斷追蹤結構中待監測之位址相對應的快取線放入快取記憶體176中,使得中斷控制器10作出的傳訊擱置虛擬中斷的任何更新將致使快取資料無效,該無效然後可提示讀取該快取線之更新資料的讀取。然而,與處理器4中的中斷監測控制電路系統28不同,當偵測到虛擬中斷時,而非將中斷例外傳訊至處理電路20,門鈴裝置170之虛擬中斷監測電路系統172藉由寫入至佇列狀態彙總62及與將要運行管理程式以重新排程運行哪個虛擬處理器的目標實體處理器相對應的該組中斷追蹤結構之中斷佇列70之一者來傳訊實體中斷。虛擬中斷監測電路系統172以與如早前所述之中斷控制器10相同的方式更新此等追蹤結構。在替代配置中,並非直接更新追蹤結構,DBD 170可向中斷控制器10提供信號以請求追蹤結構的更新。儲存於DBD 170內或基於記憶體的資料結構內的可程式化組態資訊可由管理程式軟體設定以指示用於給定虛擬中斷處理上下文的所監測位址、待產生之門鈴中斷的實體中斷數目、及當針對用於給定虛擬中斷處理上下文的所監測位址偵測到更新時將要更新以傳訊實體門鈴中斷的相關追蹤結構之基位址之間的映射。因為DBD 170可基於此組態資訊來識別記憶體中之要更新的相關位址,所以DBD 170不需要理解哪個實體處理器實際上正在監測彼等位址以進行更新,且因此不需要指定特定實體處理器作為實體門鈴中斷之接收者。
圖11係繪示由DBD 170執行的步驟的流程圖。步驟200、202、204與由處理器執行的步驟120、122、124相同,不同之處在於係關於DBD之快取記憶體176而非處理器之快取記憶體22執行。因此,在步驟200,DBD 170之虛擬中斷監測電路系統172偵測與目標虛擬處理器之佇列狀態彙總結構62(以及若支援,佇列啟用控制結構)之位址相對應的快取線是否已無效或自該DBD之快取記憶體176逐出。此種無效/逐出可藉由中斷控制器10對佇列狀態彙總結構62的更新或在處理器4上執行之軟體對佇列啟用控制結構64的更新而得到提示。
若與佇列狀態彙總結構62之位址相對應的快取線已無效或逐出,則在步驟202,發布以獨佔同調性狀態將與佇列狀態彙總結構之位址相對應的快取線放回DBD記憶體176中的請求。一旦資料在DBD之快取記憶體176中可用,則在步驟204,虛擬中斷監測電路系統172判定是否存在(i)由佇列狀態彙總結構62指示為具有至少一個擱置/啟用中斷且(ii)由佇列啟用控制結構64指示為被啟用以致使將例外傳訊至軟體的任何佇列。如上文所提及,DBD 170實際上不知道哪個虛擬處理器係目標虛擬處理器,DBD 170已簡單地由管理程式組態以檢查特定位址以進行更新。再次,藉由組合佇列狀態/啟用位元映像62、64(例如,使用逐位元AND及檢查設定為1的位元)來識別具有擱置/啟用中斷的啟用佇列70。若至少一個佇列70由位元映像62、64指示為被啟用以引起例外且指示為包括至少一個擱置/啟用中斷,則在步驟206,虛擬中斷監測電路系統獲得與佇列狀態彙總結構62之位址相對應的實體中斷識別符。例如,此可基於可由在實體處理器4之一者上執行之管理程式程式化的可程式化映射資料而獲得。映射資料亦可指定用於對應於該實體處理器之中斷處理上下文的一組中斷追蹤結構的基位址。在步驟208,DBD 170之虛擬中斷監測電路系統172藉由更新一給定實體處理器之中斷佇列結構70及佇列狀態結構62以傳訊具有所識別實體中斷ID的一中斷已擱置來將一門鈴實體中斷傳訊至該給定實體處理器。替代地,DBD 170可請求中斷控制器執行此等更新。
因此,藉由此方法,用於監測大量虛擬處理器之佇列彙總結構62之責任可轉給DBD 170,DBD不執行軟體中的任何實際處理,且因此其快取記憶體176可專用於被分配用於監測中斷的快取線,從而使監測對應於不同虛擬處理器之佇列彙總結構62的位址之數目比一個虛擬處理器的情況所達成的多得多變得可行。此方法亦意指系統可更容易擴展至不同數目的虛擬處理器。
本文所描述之概念可體現於用於製造體現所描述之概念的設備的電腦可讀碼中。例如,電腦可讀碼可在半導體設計及製造程序之一或多個階段中使用,該半導體設計及製造程序包括電子設計自動化(electronic design automation, EDA)階段,以製造一積體電路,其包含實現概念之設備。上述電腦可讀碼可另外或替代地促成實現本文所述之概念之設備的定義、模型化、模擬、驗證及/或測試。
例如,用於製造實現本文所述之概念的設備之電腦可讀碼可以定義代表該等概念之硬體描述語言(HDL)的碼實施。例如,碼可定義用於定義實現概念的設備之一或多個邏輯電路的暫存器轉移層(register-transfer-level, RTL)抽象概念。碼可定義代表一或多個邏輯電路的HDL,其以Verilog、System Verilog、Chisel或VHDL(超高速積體電路硬體描述語言)以及諸如FIRRTL的中間表示實現設備。電腦可讀碼可使用系統級模型化語言提供實現概念之定義,諸如系統C及系統Verilog或可藉由電腦解譯以促成概念的模擬、功能及/或正式驗證及測試之概念的其他行為表示。
另外或替代地,電腦可讀碼可定義實現本文所描述之概念的積體電路組件的低階描述,諸如一或多個接線對照表或積體電路佈局定義,包括諸如GDSII之表示。積體電路組件之一或多個接線對照表或其他電腦可讀表示可藉由施加一或多個邏輯合成程序至RTL表示以產生用於製造實現本發明之設備的定義來產生。替代地或額外地,一或多個邏輯合成程序可從電腦可讀碼產生一位元流,該位元流被載入至一場可程式化閘陣列(FPGA)中以組態FPGA以實現所描述之概念。FPGA可部署用於積體電路中之製造之前的驗證及測試概念的目的,或FPGA可直接部署於產品中。
電腦可讀碼可包含用於製造設備之碼表示之混合,例如包括RTL表示、接線對照表表示、或用於半導體設計及製造程序以製造實現本發明之設備的另一電腦可讀定義之一或多者之混合。替代地或額外地,概念可定義在半導體設計及製造程序中使用以製造設備之電腦可讀定義與一旦製造由所定義設備執行的電腦可讀碼定義指令的組合。
此類電腦可讀碼可設置於任何已知暫時性電腦可讀媒體(諸如,網路上之有線或無線傳輸碼)或非暫時性電腦可讀媒體(諸如,半導體、磁碟或光碟)中。使用電腦可讀碼製造的積體電路可包含組件,諸如中央處理單元、圖形處理單元、神經處理單元、數位信號處理器或單獨或共同實現概念的其他組件之一或多者。
在本申請案中,用語「經組態以...(configured to...)」係用以意指一設備的一元件具有能夠實行該經定義作業的一組態。在此上下文中,「組態(configuration)」意指硬體或軟體之互連的配置或方式。例如,該設備可具有專用硬體,其提供經定義的作業,或者一處理器或其他處理裝置可經程式化以執行該功能。「經組態以(configured to)」並不意味著設備元件需要以任何方式改變以提供所定義的作業。
雖然本文已參照附圖詳細地描述本發明的說明性實施例,應瞭解本發明不限於該等精確實施例,且所屬技術領域中具有通常知識者可於其中實行各種變化與修改,而不脫離如隨附申請專利範圍所定義的本發明的範圍。
4:處理器;請求節點;請求者裝置;請求者;第一請求者
6:快取同調互連件;互連件;同調互連件
8:共用記憶體;記憶體;主記憶體;記憶體系統
10:中斷控制器;請求節點;請求者裝置;請求者;第一請求者
11:專用線;專用中斷佈線
12:I/O(輸入/輸出)機制
14:周邊設備;中斷源
16:中斷通訊匯流排;中斷匯流排;專用中斷分佈匯流排
18:資料處理系統;系統;資料處理設備;設備
20:處理電路系統;處理電路
22:處理器快取記憶體;快取記憶體;處理器之快取記憶體;對應組件
23:1級快取記憶體
24:2級快取記憶體
26:處理器記憶體存取電路系統;對應組件
28:中斷監測控制電路系統;對應組件
30:同調性控制電路系統
32:系統快取記憶體;共用系統快取記憶體;監聽濾波器
34:服務品質(QoS)機制
40:中斷偵測電路系統;處理器
44:中斷控制電路系統
46:中斷控制器記憶體存取電路系統
48:快取記憶體
50:組態暫存器;組態資訊
60:中斷描述符表
62:佇列狀態彙總結構;佇列狀態彙總;佇列狀態位元映像;位元映像;彙總結構
64:佇列啟用控制結構;佇列啟用位元映像;位元映像;彙總結構
66:中斷狀態項
70:佇列結構;佇列;所選取中斷佇列結構;所選取佇列結構;中斷佇列結構;中斷佇列;啟用佇列
72:佇列;佇列描述符(QD);所選擇佇列
74:佇列鎖定參數(QL);鎖定參數;鎖定參數QL;佇列
76:中斷排佇列項;下一項;相關項;佇列項
80:佇列大小指示;大小指示;大小參數
82:寫入指標(QW);寫入指標QW
84:讀取指標(QR)
100,102:步驟
120,122,124,126:步驟
150,152,153,154,155,156,158,160,162:步驟
170:門鈴裝置(DBD)
172:虛擬中斷監測電路系統
174:DBD記憶體存取電路系統
176:快取記憶體;DBD記憶體
200,202,204,206,208:步驟
本技術的進一步態樣、特徵、及優點將由於結合附圖閱讀的以下實例描述而顯而易見,在該等附圖中:
〔圖1〕繪示具有中斷控制器的示範性系統;
〔圖2〕繪示具有中斷控制器的資料處理系統,該中斷控制器藉由更新儲存於同調共用記憶體中的中斷處理追蹤結構來將中斷分發至目標中斷處理上下文;
〔圖3〕繪示中斷處理追蹤結構之實例;
〔圖4〕係展示由中斷控制器執行的方法的流程圖;
〔圖5〕係展示由處理器執行的步驟的流程圖,該處理器監測針對目標中斷處理上下文的中斷;
〔圖6〕係更詳細地繪示由中斷控制器執行的步驟的流程圖;
〔圖7〕係展示由中斷控制器轉送中斷的梯形圖;及
〔圖8〕係展示將所更新中斷追蹤結構資料推送至處理器之快取記憶體的快取存放(cache stashing)請求的使用的梯形圖;
〔圖9〕繪示具有門鈴中斷產生單元的系統之實例;
〔圖10〕更詳細地繪示門鈴中斷產生單元之組件;及
〔圖11〕係繪示由門鈴中斷產生單元執行的步驟的流程圖。
4:處理器;請求節點;請求者裝置;請求者;第一請求者
6:快取同調互連件;互連件;同調互連件
8:共用記憶體;記憶體;主記憶體;記憶體系統
10:中斷控制器;請求節點;請求者裝置;請求者;第一請求者
18:資料處理系統;系統;資料處理設備;設備
20:處理電路系統;處理電路
22:處理器快取記憶體;快取記憶體;處理器之快取記憶體;對應組件
23:1級快取記憶體
24:2級快取記憶體
26:處理器記憶體存取電路系統;對應組件
28:中斷監測控制電路系統;對應組件
30:同調性控制電路系統
32:系統快取記憶體;共用系統快取記憶體;監聽濾波器
34:服務品質(QoS)機制
40:中斷偵測電路系統;處理器
44:中斷控制電路系統
46:中斷控制器記憶體存取電路系統
48:快取記憶體
50:組態暫存器;組態資訊
Claims (20)
- 一種中斷控制器,其包含: 中斷偵測電路系統,其用於偵測由一或多個中斷源提出的中斷; 中斷控制器記憶體存取電路系統,其用於發布對經由一快取同調互連件來存取一共用記憶體系統的記憶體存取請求;及 中斷控制電路系統,其回應於由該中斷偵測電路系統偵測到具有一給定中斷識別符的一給定中斷而藉由控制該中斷控制器記憶體存取電路系統根據該快取同調互連件所支援的一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制該給定中斷至該目標中斷處理上下文的傳訊,該組基於記憶體的中斷追蹤結構包括: 一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及 一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
- 如請求項1之中斷控制器,其中該中斷控制電路系統經組態以控制該中斷控制器記憶體存取電路系統發布對維護複數個組該等基於記憶體的中斷追蹤資料結構的記憶體寫入請求,各組對應於一各別中斷處理上下文。
- 如請求項1及2中任一項之中斷控制器,其中該複數個中斷佇列結構分別對應於複數個中斷優先等級;且 回應於該給定中斷,該中斷控制電路系統經組態以基於該給定中斷識別符來判定該給定中斷之一給定優先等級,並選擇該複數個中斷佇列結構中之對應於該給定優先等級的一者作為該所選取中斷佇列結構。
- 如請求項3之中斷控制器,其中該組基於記憶體的中斷追蹤資料結構包含複數個中斷狀態項,各中斷狀態項對應於一各別中斷識別符且指定與該中斷識別符相關聯的一中斷優先等級。
- 如前述請求項中任一項之中斷控制器,其中該組基於記憶體的中斷追蹤資料結構包含複數個中斷狀態項,各中斷狀態項對應於一各別中斷識別符且指定目前是否啟用具有該中斷識別符的中斷。
- 如前述請求項中任一項之中斷控制器,其中該佇列狀態彙總結構具有適配在一單一快取線內的一大小。
- 如前述請求項中任一項之中斷控制器,各中斷佇列結構具有適配在位址空間之一單一頁內的一大小。
- 如前述請求項中任一項之中斷控制器,其中包含該佇列狀態彙總結構及複數個中斷狀態項的一中斷描述符結構具有適配在位址空間之一單一頁內的一大小,該複數個中斷狀態項各自對應於一各別中斷識別符且指示下列中之至少一者:一中斷優先等級;及與該中斷識別符相關聯的一啟用狀態。
- 如前述請求項中任一項之中斷控制器,其中一給定中斷佇列結構包含一佇列描述符,該佇列描述符指定下列中之至少一者: 一佇列大小參數,其指示該給定中斷佇列結構之一最大佇列大小; 一寫入指標,其指示待由該中斷控制器更新的一下一佇列項;及 一讀取指標,其指示待針對該目標中斷處理上下文讀取的一下一佇列項。
- 如前述請求項中任一項之中斷控制器,其中一給定中斷佇列結構包含一鎖定參數,該鎖定參數用於指示該給定中斷佇列結構是否被鎖定為用於獨佔存取;且 回應於該給定中斷,當該所選取中斷佇列結構之該鎖定參數指示該所選取中斷佇列結構被鎖定為用於獨佔存取時,該中斷控制電路系統經組態以推遲更新該所選取中斷佇列結構,直至該鎖定參數指示該所選取中斷佇列結構不再被鎖定為用於獨佔存取為止。
- 如前述請求項中任一項之中斷控制器,其中回應於該給定中斷,該中斷控制電路系統經組態以控制該中斷控制器記憶體存取電路系統藉由發布用於將該組基於記憶體的中斷追蹤資料結構之至少一個快取線之一更新值推送至與處理針對該目標中斷處理上下文的中斷的一處理器相關聯的一快取記憶體的一快取存放(cache stashing)請求,來維護該至少一個快取線。
- 一種設備,其包含: 如前述請求項中任一項之中斷控制器; 該快取同調互連件;及 至少一個實體處理器,一給定實體處理器包含: 處理電路系統,用以回應於指令而執行資料處理; 至少一個處理器快取記憶體;及 處理器記憶體存取電路系統,其用於發布對經由該快取同調互連件存取該共用記憶體系統的記憶體存取請求。
- 如請求項12之設備,其中該給定實體處理器包含中斷監測控制電路系統,該中斷監測控制電路系統用於重複地控制該處理器記憶體存取電路系統發布請求以該同調性協定之一獨佔同調性狀態將指定用於儲存該佇列狀態彙總結構的一給定快取線放入該至少一個快取記憶體中的一中斷監測記憶體存取請求。
- 如請求項13之設備,其中該中斷監測控制電路系統經組態以控制該處理器記憶體存取電路系統發布針對複數個快取線的該等中斷監測記憶體存取請求,該複數個快取線包含: 指定用於儲存對應於該給定實體處理器的該組基於記憶體的中斷追蹤資料結構之該佇列狀態彙總結構的至少一個快取線;及 當一給定虛擬處理器目前常駐在該給定實體處理器上時,指定用於儲存對應於該給定虛擬處理器的該組基於記憶體的中斷追蹤資料結構之該佇列狀態彙總結構的至少一個快取線。
- 如請求項13及14中任一項之設備,其中該快取同調互連件經組態以實施用於回應於來自該至少一個實體處理器及該中斷控制器的請求而調節對一共用資源的存取的一服務品質機制,以防止由於來自該至少一個實體處理器的針對該給定快取線的重複請求造成該中斷控制器對該給定快取線的存取不足。
- 如請求項12至15中任一項之設備,其中: 該組基於記憶體的中斷追蹤資料結構亦包含一佇列啟用控制結構,該佇列啟用控制結構用於指示該複數個中斷佇列結構中之何者被禁用而不能使一例外傳訊至該處理電路系統。
- 如請求項12至16中任一項之設備,其中: 該中斷控制器之該中斷控制電路系統經組態以控制該記憶體存取電路系統發布對維護對應於各別虛擬處理器的複數個組該等基於記憶體的中斷追蹤資料結構的記憶體寫入請求;且 該設備包含一門鈴中斷產生單元,該門鈴中斷產生單元與該至少一個實體處理器及該中斷控制器分開,該門鈴中斷產生單元包含: 至少一個門鈴中斷產生單元快取記憶體; 門鈴中斷產生單元記憶體存取電路系統,其用於發布對經由該快取同調互連件存取該共用記憶體系統的記憶體存取請求;及 虛擬中斷監測電路系統,其用於監測發送給該至少一個門鈴中斷產生單元快取記憶體的同調性流量,以基於該中斷控制器更新針對一給定虛擬處理器的該組基於記憶體的中斷追蹤資料結構之該佇列狀態彙總結構來偵測一給定虛擬中斷的傳訊,且回應於偵測到該給定虛擬中斷的傳訊而將一門鈴實體中斷傳訊至一給定實體處理器。
- 如請求項17之設備,其中該虛擬中斷監測電路系統經組態以監測對與該給定實體處理器之中斷監測控制電路系統所監測者相比更大數目的基於記憶體的中斷追蹤資料結構組中之該佇列狀態彙總結構的更新。
- 一種中斷控制方法,其包含: 偵測由一或多個中斷源提出的中斷;及 回應於偵測到具有一給定中斷識別符的一給定中斷,藉由控制經由一快取同調性互連件根據一同調性協定發布用於維護對應於一目標中斷處理上下文的一組基於記憶體的中斷追蹤結構的一或多個記憶體寫入請求來控制該給定中斷至該目標中斷處理上下文的傳訊,該組基於記憶體的中斷追蹤結構包括: 一所選取中斷佇列結構,其係基於該給定中斷識別符自複數個中斷佇列結構中選取,用於排佇列該給定中斷以供該目標中斷處理上下文處理;及 一佇列狀態彙總結構,其用於指示該複數個中斷佇列結構中之何者保存等待供該目標中斷處理上下文處理的擱置中斷。
- 一種電腦可讀取媒體,其用於儲存用於製造如請求項1至11中任一項之中斷控制器或如請求項12至18中任一項之設備的電腦可讀碼。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2206577.5 | 2022-05-05 | ||
GB2206577.5A GB2618366A (en) | 2022-05-05 | 2022-05-05 | Interrupt controller, apparatus, interrupt control method and computer-readable medium |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202345009A true TW202345009A (zh) | 2023-11-16 |
Family
ID=82019715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112114652A TW202345009A (zh) | 2022-05-05 | 2023-04-19 | 中斷控制器、設備、中斷控制方法、及電腦可讀取媒體 |
Country Status (3)
Country | Link |
---|---|
GB (1) | GB2618366A (zh) |
TW (1) | TW202345009A (zh) |
WO (1) | WO2023214143A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2442984B (en) * | 2006-10-17 | 2011-04-06 | Advanced Risc Mach Ltd | Handling of write access requests to shared memory in a data processing apparatus |
WO2012014285A1 (ja) * | 2010-07-27 | 2012-02-02 | 富士通株式会社 | 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム |
-
2022
- 2022-05-05 GB GB2206577.5A patent/GB2618366A/en active Pending
-
2023
- 2023-03-28 WO PCT/GB2023/050800 patent/WO2023214143A1/en unknown
- 2023-04-19 TW TW112114652A patent/TW202345009A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023214143A1 (en) | 2023-11-09 |
GB2618366A (en) | 2023-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885583B (zh) | 高速缓存存储器访问 | |
JP4008224B2 (ja) | マルチプロセッサシステムのキャッシュコヒーレンスプロトコル | |
KR100457146B1 (ko) | 비정형 메모리 액세스 데이터 프로세싱 시스템을 위한 인터럽트 아키텍쳐 | |
US8806148B2 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration | |
EP1906313B1 (en) | Memory management in a shared memory system | |
CA2305510C (en) | I/o forwarding in a cache coherent shared disk computer system | |
JP6984022B2 (ja) | マルチノードシステムの低電力管理 | |
CN114756502A (zh) | 片上原子事务引擎 | |
US10282297B2 (en) | Read-with overridable-invalidate transaction | |
US10162757B2 (en) | Proactive cache coherence | |
EP1153349A1 (en) | Non-uniform memory access (numa) data processing system that speculatively forwards a read request to a remote processing node | |
KR19990072598A (ko) | 최적화된캐시동작을독립적으로구현하는캐시일관성프로토콜 | |
US11960945B2 (en) | Message passing circuitry and method | |
CN116438518A (zh) | 通过硬件加速内核线程进行微线程控制的处理器架构 | |
JP2005519391A (ja) | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム | |
Kaushik et al. | Designing predictable cache coherence protocols for multi-core real-time systems | |
CN113826085A (zh) | 处理器中的写入流 | |
US8635411B2 (en) | Data processing apparatus and method for managing coherency of cached data | |
CN114761933A (zh) | 扩展对某些请求的一致性保护的高速缓存窥探模式 | |
TW202345009A (zh) | 中斷控制器、設備、中斷控制方法、及電腦可讀取媒體 | |
CN114787784A (zh) | 扩展对某些请求的一致性保护的高速缓存窥探模式 | |
JPWO2007096978A1 (ja) | スヌープ制御方法および情報処理装置 | |
GB2619311A (en) | Doorbell physical interrupt control | |
WO2023010975A1 (en) | Data processing system having masters that adapt to agents with differing retry behaviors | |
GB2500964A (en) | Forward progress mechanism for stores in the presence of load contention in a system favouring loads by state alteration. |