TWI764082B - 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 - Google Patents
用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品Info
- Publication number
- TWI764082B TWI764082B TW109101482A TW109101482A TWI764082B TW I764082 B TWI764082 B TW I764082B TW 109101482 A TW109101482 A TW 109101482A TW 109101482 A TW109101482 A TW 109101482A TW I764082 B TWI764082 B TW I764082B
- Authority
- TW
- Taiwan
- Prior art keywords
- interrupt
- target
- processor
- interrupt signal
- bus
- Prior art date
Links
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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/2414—Routing of interrupt among interrupt handlers in processor system or interrupt controller
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明係關於一種用於將一中斷信號提供至一客體作業系統之方法。一匯流排附接裝置藉由一中斷目標ID自一匯流排連接模組接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統使用之一處理器作為用於處置該中斷信號之一目標處理器。該匯流排附接裝置將該中斷信號轉遞至該目標處理器以供處置。該中斷目標ID至該目標處理器之一邏輯處理器ID的一轉譯用以直接定址該目標處理器。另外,該匯流排附接裝置更新指派給該目標處理器之一經引導中斷信號向量的一經引導中斷信號指示符,以便指示存在待處置之定址至該各別中斷目標ID之一中斷信號。
Description
一般而言,本發明係關於電腦系統內之中斷處理,且詳言之係關於處置多處理器電腦系統中由匯流排連接模組產生之中斷。
中斷用於傳訊至處理器:一事件需要該處理器之關注。例如,硬體裝置,例如經由匯流排與處理器連接之硬體裝置使用中斷傳達其需要作業系統之關注。在接收處理器當前正執行一些活動之情況下,接收處理器可回應於接收到中斷信號而暫時中止其當前活動、保存其狀態,並例如藉由執行中斷處置器而處置該中斷。由該接收產生的處理器之當前活動之中斷僅為暫時性的。在已處置該中斷之後,處理器可恢復其暫時中止之活動。因此,中斷可藉由排除輪詢循環中處理器之無益等待時間,從而等待外部事件而允許效能改良。
在多處理器電腦系統中,可出現中斷路由效率問題。挑戰將為以高效方式將由硬體裝置(類似於例如匯流排連接模組)發送之中斷信號轉遞至經指派以供操作使用之多個處理器中之處理器。在中斷用於與虛擬機上之客體作業系統通信之情況下,此可尤其具有挑戰性。超管理器或虛擬機監視器(VMM)建立並執行一或多個虛擬機,亦即客體機器。虛擬
機為虛擬機上執行之客體作業系統提供虛擬操作平台,同時隱藏底層平台之實體特性。使用多個虛擬機允許並行地執行多個作業系統。由於執行於虛擬操作平台上,處理器之客體作業系統之視圖通常可不同於處理器之底層,例如實體視圖。客體作業系統使用用以識別處理器之虛擬處理器ID,其通常與底層邏輯處理器ID不一致。管理客體作業系統之執行的超管理器定義底層邏輯處理器ID與由客體作業系統使用之虛擬處理器ID之間的映射。然而,此映射及經排程以供客體作業系統使用之處理器之選擇並非靜態的,但可在客體作業系統正執行時由超管理器變更而無需瞭解客體作業系統。
通常,藉由使用廣播轉遞中斷信號而解決此挑戰。當使用廣播時,在多個處理器之間連續轉遞中斷信號直至滿足適合於處置中斷信號之處理器。然而,在多個處理器之情況下,首先接收到經廣播中斷信號之處理器確實適合於處置中斷信號的機率實際上可較低。另外,適合於處置中斷信號不一定意謂各別處理器為用於處置中斷之最佳選擇。
各種實施例提供一種用於將中斷信號提供至使用經指派以供客體作業系統使用之電腦系統之複數個處理器中之一或多個處理器執行的客體作業系統之方法、一種電腦系統及一種電腦程式產品,如由獨立請求項之主題所描述。附屬請求項中描述有利實施例。若本發明之實施例彼此不互斥,則其可彼此自由組合。
在一個態樣中,本發明係關於一種用於將中斷信號提供至使用經指派以供客體作業系統使用之電腦系統之複數個處理器中之一或多個處理器所執行的客體作業系統的方法,該電腦系統進一步包含經由匯流
排及匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址各別處理器之邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者;由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量;由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符;由該匯流排附接裝置更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號;由該匯流排附接裝置將該中斷信號轉遞至該目標處理器。
在另一態樣中,本發明係關於一種用於將中斷信號提供至使用經指派以供客體作業系統使用之電腦系統之複數個處理器中之一或多
個處理器所執行的客體作業系統的電腦系統,該電腦系統進一步包含經由匯流排及匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址各別處理器之邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由作業系統及該一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦系統經組態以執行一方法,其包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者;由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量;由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符;更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號;由該匯流排附接裝置將該中斷信號轉遞至該目標處理器。
在另一態樣中,本發明係關於一種用於將中斷信號提供至
使用經指派以供客體作業系統使用之電腦系統之複數個處理器中之一或多個處理器所執行之客體作業系統的電腦程式產品,該電腦系統進一步包含經由匯流排及匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與匯流排附接裝置以操作方式連接之記憶體,該複數個處理器中之每一處理器經指派有由匯流排附接裝置使用以定址各別處理器的邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦程式產品包含可由一處理電路讀取之一非暫時性電腦可讀媒體且儲存指令以供該處理電路執行以用於執行一方法,其包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者;由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量;由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符;更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號;由該匯流排附接裝置將該
中斷信號轉遞至該目標處理器。
100:電腦系統
102:匯流排
104:切換器
110:匯流排附接裝置
114:複本
120:匯流排連接模組
130:處理器
132:毫碼
134:檢查邏輯
140:記憶體
144:裝置表(DT)
146:裝置表項目(DTE)
150:中斷表(IRT)
152:中斷表項目(IRTE)
154:執行指示符
160:經引導中斷摘要向量(DISB)
161:項目
162:經引導中斷信號向量(DIBV)
163:項目
200:超管理器
202:虛擬機
204:客體作業系統
210:第二超管理器
212:第二層虛擬機
214:第二層客體作業系統
220:底層韌體
222:邏輯處理器ID lCPU
224:第一虛擬處理器ID vCPU
226:第二虛擬處理器ID vCPU
800:主機電腦系統/主機電腦
800':主機電腦系統/主機電腦
801:處理器/CPU
802:電腦記憶體/記憶體
803:動態位址轉譯(DAT)
804:指令提取單元
805:載入/儲存單元
806:指令解碼單元
807:轉譯後備緩衝器(TLB)
808:指令執行單元
809:快取記憶體
810:網路
811:儲存媒體裝置
820:系統
821:基礎電腦系統
822:顯示裝置
823:滑鼠
824:鍵盤
825:記憶體/主儲存器
826:處理器
827:長期儲存媒體
828:通信
829:網路
830:印表機/掃描器
832:應用程式
840:資料處理網路
841:工作站
842:工作站
843:工作站
844:工作站
845:工作站
846:用戶端伺服器/閘道器電腦
847:網際網路
848:遠端伺服器
850:使用者
851:使用者
853:快取記憶體/記憶體介面
854:I/O單元
855:指令提取單元
856:解碼/分派單元
857:執行單元
858:分支單元
859:暫存器
860:載入/儲存單元
861:程式計數器
865:其他處理器單元
866:算術邏輯單元(ALU)
867:暫存器電路
868:暫存器電路
869:暫存器電路
870:輸出暫存器電路
871:邏輯
872:架構化設施
873:其他電路
874:ALU
875:輸入暫存器電路
876:輸入暫存器電路
877:輸入暫存器電路
880:輸出暫存器電路
882:分支歷史表
883:其他元件
885:ALU
890:控制邏輯
891:經模擬處理器
892:經模擬主機電腦系統
893:模擬處理器
894:記憶體
896:主機電腦記憶體
897:模擬常式記憶體
在下文中,僅藉助於實例參考圖式更詳細地解釋本發明之實施例,其中:圖1描繪例示性電腦系統之示意圖,圖2描繪例示性虛擬化方案之示意圖,圖3描繪例示性虛擬化方案之示意圖,圖4描繪例示性虛擬化方案之示意圖,圖5描繪例示性電腦系統之示意圖,圖6描繪例示性向量結構之示意圖,圖7A及圖7B描繪例示性向量結構之示意圖,圖8描繪例示性電腦系統之示意圖,圖9描繪例示性方法之示意性流程圖,圖10描繪例示性方法之示意性流程圖,圖11描繪例示性方法之示意性流程圖,圖12描繪例示性電腦系統之示意圖,圖13A及圖13B描繪例示性方法之示意性流程圖,圖14描繪例示性方法之示意性流程圖,圖15描繪例示性方法之示意性流程圖,圖16描繪例示性方法之示意性流程圖,圖17描繪例示性方法之示意性流程圖,圖18描繪例示性資料結構之示意圖,圖19A及圖19B描繪例示性方法之示意性流程圖,
圖20描繪例示性電腦系統之示意圖,圖21描繪例示性電腦系統之示意圖,圖22描繪例示性電腦系統之示意圖,圖23描繪例示性電腦系統之示意圖,圖24A至圖24C描繪例示性單元之示意圖,且圖25描繪例示性電腦系統之示意圖。
將出於說明目的呈現本發明之各種實施例之描述,但該描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神的情況下,一般熟習此項技術者將顯而易見許多修改及變化。本文中所使用術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現的技術之技術改良,或使得其他一般熟習此項技術者能夠理解本文所揭示之實施例。
實施例可具有使得匯流排附接裝置能夠直接定址目標處理器之有益效應。因此,進行發佈之匯流排連接模組可以中斷信號為目標,從而將目標處理器ID選擇給多處理器電腦系統之特定處理器,亦即目標處理器。例如,可針對中斷信號將之前已執行與中斷相關之活動之處理器選擇為目標處理器。與各別活動由同一處理器處置中斷信號可產生效能優勢,由於在同一處理器亦處置中斷信號之情況下,在此中斷之背景下之所有資料可能已經可用於處理器及/或儲存於本端快取記憶體中,從而使得能夠對各別處理器進行快速存取而無需大量的快取流量。
因此,可避免中斷信號之廣播,對於這種廣播,不能保證最終將處置中斷之處理器自效能角度(如快取流量最小化)來看最適合於此
任務。可直接將中斷信號提供至目標處理器,而非將中斷信號呈現給所有處理器,使每一處理器嘗試處置中斷信號且一個處理器獲得勝利,從而提高中斷信號處置之效率。
可使用經引導中斷實施中斷機制。當將供處置之中斷信號轉遞至其由發佈之匯流排連接模組定義之目標處理器時,可啟用匯流排附接裝置以使用目標處理器之邏輯處理器ID直接定址目標處理器。藉由匯流排連接裝置將中斷目標ID轉譯為邏輯處理器ID可進一步確保自客體作業系統角度來看,始終定址同一處理器,即使中斷目標ID與邏輯處理器ID之間的映射或經排程以供客體作業系統使用之處理器之選擇可由超管理器變更。
經引導中斷信號向量取決於目標處理器ID來排序,亦即經最佳化以用於追蹤經引導中斷。換言之,主要次序標準為目標處理器IDS而非識別發佈匯流排連接模組之請求器ID。每一經引導中斷信號向量可包含取決於匯流排連接模組之數目的一或多個經引導中斷信號指示符。
可因此避免指示已經接收到個別中斷信號(例如呈MSI-X訊息形式)的中斷信號指示符(例如呈中斷傳訊位元形式)在類似於快取行之記憶體之相鄰區域內針對類似於例如PCIe功能之個別匯流排連接模組順序排序。例如藉由設定及/或重設中斷傳訊位元而啟用及/或停用中斷信號指示符需要將記憶體之各別相鄰區域移動至處理器中之一者以相應地變更各別中斷信號指示符。
可期望處理器處置自客體作業系統角度處理器應負責之所有指示符,亦即詳言之指派給各別處理器之所有指示符。此可實現效能優勢,由於在每一處理器正處置指派給處理器之所有資料之情況下,在此上
下文中所需的資料經提供至處理器及/或儲存於本端快取記憶體中的可能性可較高,從而使得能夠對用於處理器之各別資料進行快速存取而無需大量的快取流量。
然而,每一嘗試處置處理器應負責之所有指示符的處理器仍然可導致處理器之間的高快取流量,由於每一處理器需要針對所有功能寫入所有快取行。由於指派給每一個別處理器之指示符可遍及所有相鄰區域,諸如快取行分佈。
中斷傳訊指示符可以經引導中斷傳訊向量形式重新排序,使得指派給同一中斷目標ID之所有中斷傳訊指示符被併入至記憶體之同一相鄰區域,例如快取行中。因此,意欲處置指派給各別處理器(亦即中斷目標ID)之指示符的處理器可僅必須載入記憶體之單一相鄰區域。因此,使用每中斷目標ID之一相鄰區域,而非每匯流排連接模組之一相鄰區域。每一處理器可僅需要針對所有中斷信號(其接收自所有可用匯流排連接模組,以作為由中斷目標ID識別之目標處理器的該特定處理器為目標)掃描並更新記憶體之單一相鄰區域,例如快取行。
根據實施例,可藉由超管理器針對客體作業系統施加位移以對準位元與不同位移。
根據一實施例,以包含目標處理器之中斷目標ID之訊息告知中斷形式接收中斷信號。使用訊息告知中斷(message signaled interrupt;MSI)為用於供匯流排連接模組(諸如周邊組件互連(PCI)或周邊組件高速互連(PCIe)功能)產生中央處理單元(CPU)中斷以便使用各別中央處理單元通知客體作業系統事件之發生或某一狀態之存在的方法。MSI使用特殊頻帶內訊息提供傳訊中斷之頻帶內方法,由此避免對用於發送此類
控制資訊之與主要資料路徑分離之專用路徑(諸如每一裝置上之專用中斷接腳)的需求。MSI實際上依賴於經由主要資料路徑交換指示中斷之特殊訊息。當匯流排連接模組經組態以使用MSI時,各別模組藉由執行資料之指定數目之位元組至特殊位址的MSI寫入操作而請求中斷。亦即MSI位址之此特殊位址與亦即MSI資料之獨特資料值的組合被稱為MSI向量。
現代PCIe標準配接器能夠呈現多次中斷。MSI-X例如准許匯流排連接模組分配至多2048次中斷。因此,諸如在依賴於多處理器系統之高速網路連接應用中,實現針對不同處理器以個別中斷為目標。MSI-X允許為多次中斷各自指派個別MSI位址及MSI資料值。
為了發射中斷信號,可使用MSI-X訊息。可使用MSI-X資料表判定MSI-X訊息之所需內容。在匯流排連接模組,亦即PCIe配接器/功能本端之MSI-X資料表可由指派給每一中斷信號(亦被稱作中斷請求(IRQ))之數目索引。MSI-X資料表內容在客體作業系統之控制下且可藉由硬體及/或韌體之指導而設定至作業系統。單一PCIe配接器可包含多個PCIe功能,其各自可具有單獨的MSI-X資料表。例如,對於單根輸入/輸出虛擬化(SR-IOV)或多功能裝置,可能會出現這種情況。
類似於例如虛擬處理器ID之中斷目標ID可直接編碼為包含中斷信號之藉由匯流排連接模組發送之訊息(類似於例如MSI-X訊息)之部分。例如MSI-X訊息之訊息可包含請求者ID(亦即匯流排連接模組之ID)、前述中斷目標ID、DIBV或AIBV索引、MSI位址及MSI資料。MSI-X訊息可為MSI位址提供64個位元並為資料提供32個位元。匯流排連接模組可使用MSI藉由執行特定MSI資料值至特殊MSI位址之MSI寫入操作請求中斷。
裝置表為可完全由中斷請求者,亦即匯流排連接模組之請求者ID(RID)索引的共用表。匯流排附接裝置重新映射並公佈中斷,亦即匯流排附接裝置轉譯中斷目標ID並使用中斷目標ID直接定址目標處理器。
客體作業系統可使用虛擬處理器ID以識別多處理器電腦系統中之處理器。因此,客體作業系統之處理器視圖可能並非與使用邏輯處理器ID之底層系統之視圖不一致。提供由客體作業系統使用之資源的匯流排連接模組可使用虛擬處理器ID,由於用於與客體作業系統通信之資源,類似於例如MSI-X資料表可在客體作業系統之控制下。作為虛擬處理器ID之替代方案,可針對匯流排連接模組定義任何其他ID以定址處理器。
將中斷呈現給客體作業系統或其上執行之其他軟體,諸如其他程式等等。如本文中所使用,術語作業系統包括作業系統裝置驅動器。
如本文中所使用,術語匯流排連接模組可包含任何類型之匯流排連接模組。根據實施例,模組可為硬體模組(類似於例如儲存功能)、處理模組、網路模組、密碼編譯模組、PCI/PCIe配接器、其他類型之輸入/輸出模組等等。根據其他實施例,模組可為軟體模組,亦即功能,類似於例如儲存功能、處理功能、網路功能、密碼編譯功能、PCI/PCIe功能、其他類型之輸入/輸出功能等等。因此,在本文中所呈現之實例中,除非另外指出,否則模組可與例如PCI/PCIe功能之功能及例如PCI/PCIe功能之配接器互換使用。
實施例可具有以下有益效應:提供例如MSI-X訊息路由機制之中斷信號路由機制,這允許其使例如PCIe配接器及功能之匯流排連
接模組以及用於操作或控制匯流排連接模組之裝置驅動器保持未變更。另外,可防止超管理器攔截用於實施匯流排連接模組與客體作業系統之間的通信的底層架構,例如PCIe MSI-X架構。換言之,對中斷信號路由機制之變更可實施於超管理器及匯流排連接模組外部。
根據一實施例,指派給相同匯流排連接模組之中斷信號指示符各自包含在包含各別中斷信號指示符的經引導中斷信號向量內之相同位移。實施例可具有關於特定匯流排連接模組簡化中斷信號指示符之檢查的有益效應。根據一實施例,經引導中斷信號向量各自實施為記憶體中之相鄰區域。實施例可具有以下有益效應:以最小化記憶體空間且可快速並有效地處理之形式提供中斷摘要向量。相鄰區域可例如為快取行。根據一實施例,經引導中斷信號指示符各自實施為單一位元。實施例可具有以下有利效應:以最小化記憶體空間且可快速並有效地處理之形式提供經引導中斷信號指示符。
根據一實施例,該方法進一步包含由匯流排附接裝置自儲存於記憶體中之中斷表擷取指派給所接收中斷目標ID之中斷表項目之複本,該中斷表項目包含指示指派給所接收中斷信號定址至的中斷目標ID之經引導中斷信號向量之記憶體位址的經引導中斷信號向量位址指示符,該匯流排附接裝置使用各別經引導中斷信號向量之記憶體位址來選擇指派給所接收中斷信號定址至的中斷目標ID之經引導中斷信號向量。
根據一實施例,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之裝置表擷取裝置表項目之複本,該裝置表項目包含指示該中斷表之記憶體位址之中斷表位址指示符,該匯流排附接裝置使用該中斷表之該記憶體位址來擷取該中斷表項目之該第一複本。
根據一實施例,該裝置表項目進一步包含指示指派給發佈所接收中斷信號之匯流排連接模組的經引導中斷信號指示符之位移的經引導中斷信號位移指示符。
根據一實施例,該記憶體進一步對於每一中斷目標ID包含具有一經引導中斷摘要指示符之一經引導中斷摘要向量,每一經引導中斷摘要指示符指派給一中斷目標ID,指示是否存在待處置的定址至各別中斷目標ID之中斷信號,其中該方法進一步包含:由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要指示符;由該匯流排附接裝置更新該所選經引導中斷摘要指示符,使得該所選經引導中斷摘要指示符指示存在待處置的定址至該各別中斷目標ID之一中斷信號。
當例如由於超管理器尚未排程目標處理器而無法直接遞送中斷時,客體作業系統可藉由使用廣播遞送具有最初預期的親和力之中斷(亦即,該中斷意圖針對哪一處理器之資訊)而受益。在此情況下,匯流排附接裝置可在設定DIBV之後且在將廣播中斷請求遞送至客體作業系統之前設定指定DISB中之目標處理器的位元。若客體作業系統接收廣播中斷請求,則其因此可藉由掃描並停用DISB中之直接中斷摘要指示符(例如掃描並重設直接中斷摘要位元)來進行識別,該等目標處理器具有待決為在DIBV中傳訊之中斷信號。可因而使得客體作業系統能夠決定中斷信號是否由接收廣播之當前處理器處置或進一步轉遞至原始目標處理器。
根據一實施例,經引導中斷信號向量實施為記憶體中之相鄰區域。實施例可具有以下有益效應:以最小化記憶體空間且可快速並有效地處理之形式提供經引導中斷摘要向量。相鄰區域可例如為單一快取
行。根據一實施例,經引導中斷摘要指示符各自實施為單一位元。實施例可具有以下有益效應:以最小化記憶體空間且可快速並有效地處理之形式提供經引導中斷摘要指示符。
根據一實施例,該中斷表項目進一步包含指示該經引導中斷摘要向量之一記憶體位址的一經引導中斷摘要向量位址指示符,其中該匯流排附接裝置使用該經引導中斷摘要向量之該記憶體位址用於選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要指示符。
根據一實施例,該中斷表項目進一步包含指示該經引導中斷摘要向量內指派給該目標處理器ID之該經引導中斷摘要指示符的一位移之一經引導中斷摘要位移指示符。
根據一實施例,該方法進一步包含:由該匯流排附接裝置將隨該中斷信號一起接收的該目標處理器之該中斷目標ID轉譯為該目標處理器之一邏輯處理器ID;及使用該目標處理器之該邏輯處理器ID來在將該中斷信號轉遞至該目標處理器時將該目標處理器定址為該中斷信號之目標。
根據一實施例,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該中斷目標ID的一中斷表項目之一複本,其中該中斷表項目之該複本進一步包含該中斷目標ID至一第一邏輯處理器ID之一當前映射,該匯流排附接裝置使用該中斷表項目之該複本用於轉譯隨該中斷信號一起接收的該目標處理器之該中斷目標ID。
實施例可具有以下有益效應:提供包含中斷表項目(IRTE)之中斷表(IRT),每一項目提供中斷目標ID至邏輯處理器ID之映射。因
此,該等項目可界定每一中斷目標ID至邏輯處理器ID之獨特指派。根據實施例,可以虛擬處理器ID形式提供中斷目標ID。根據實施例,中斷目標ID可為由客體作業系統使用以識別所使用之個別處理器的任何其他ID。
根據實施例,IRT經提供於記憶體中以供匯流排附接裝置使用以將中斷目標ID映射至邏輯處理器ID。根據實施例,IRT可經提供在單一部位中。可提供位址指示符,例如指針,其指示IRT的記憶體位址。位址指示符可例如由裝置表之項目提供,該裝置表藉由匯流排附接裝置自記憶體提取。實施例可具有以下有益效應:無大的映射表必須儲存在匯流排附接裝置中。用於映射之中斷表可實際上儲存在記憶體中並視需要由匯流排附接裝置存取。因此,匯流排附接裝置可僅必須針對待轉遞之每一中斷信號處置一或多個中斷表項目的工作複本。中斷表項目之數目較佳地可為小的,例如一個。
根據實施例,IRT或個別IRTE可在處理器的重新排程後更新。根據實施例,IRT可儲存在記憶體的內部區段(亦即HSA)中。
根據一實施例,該裝置表項目之該複本進一步包含指示是否將直接定址該目標處理器之一直接傳訊指示符,該直接傳訊指示符指示該中斷信號之一直接轉遞為用於使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之一要求,否則使用廣播執行該轉遞。
實施例可具有藉由直接傳訊指示符控制是否使用直接定址或廣播轉遞中斷信號之有益效應。在針對每一匯流排連接模組使用直接傳訊指示符之情況下,可提供針對自此匯流排連接模組接收到之中斷信號執
行直接定址抑或廣播的個別預定義選擇。
根據實施例,可執行IRTE之雙重提取,以便防止將中斷信號發送至例如在這期間已經撤銷啟動之處理器。根據實施例,在將中斷信號轉遞至藉由由使用IRTE之第一複本轉譯中斷目標ID產生之邏輯處理器ID所識別的處理器之後,可提取同一IRTE之第二複本以檢查在這期間是否發生IRTE之任何變更。在IRTE在這期間已經更新之情況下,存在中斷信號已經轉遞至撤銷啟動之處理器的風險。因此,IRTE之第二複本可用於再次轉譯中斷目標ID並將中斷信號轉遞至藉由由第二轉譯產生之邏輯處理器ID所識別的處理器。根據一替代實施例,可在IRTE之第二複本與第一複本並不匹配之情況下重複自提取IRTE之第一複本開始的整個方法。例如,可提取IRTE之第三複本替代IRTE之第一複本或IRTE之第二複本可替代IRTE之第一複本,且可提取IRTE之第三複本以亦針對方法之部分重複實施雙重提取方案。可重複此方案直至實現匹配。根據其他替代實施例,可在IRTE之第二複本與第一複本並不匹配之情況下使用廣播轉遞中斷信號。根據實施例,匯流排附接裝置參與記憶體-快取記憶體-一致性協定且偵測關於IRTE之變化,例如藉由相同機制CPU之快取窺探可偵測快取行變化。
實施例可具有避免可具有低效縮放之快取清除之有益效應。雙重提取可為全域的或特定針對於IRTE,亦即整個項目可經歷雙重提取或限於各別項目包含之特定資訊。
根據實施例,由用於轉譯中斷目標ID及將中斷信號轉遞至目標處理器直至其到達該處理器所需的時間產生的競爭情況可由CPU上檢查接收處理器是否仍然為正確的目標處理器的檢查邏輯捕捉到。對於該檢
查,可將與中斷請求一起接收之中斷目標ID及/或邏輯分割區ID與當前中斷目標ID及/或指派給接收處理器之邏輯分割區ID進行比較以作為參考。在匹配情況下,使用由使用IRTE之複本之轉譯產生的邏輯處理器ID直接定址的接收處理器實際上為正確的目標處理器。因此,由IRTE之複本提供的資訊已經係最新的。在不匹配情況下,IRTE之複本並非最新的且接收處理器不再係目標處理器。在不匹配情況下,中斷信號可例如使用廣播轉遞至目標作業系統。
根據實施例,可存在並行操作之三個實體,亦即匯流排附接裝置及處理中斷信號之目標處理器以及可變更中斷目標ID與邏輯處理器ID之間的指派的超管理器。根據實施例,在除記憶體以外之實體分佈系統中可不存在中央同步點,其在時延代價下提供此類系統之虛擬外觀。使用雙重提取方案之實施例可具有以下有益效應:提供針對速度經最佳化之方法對比防止中斷請求之雙重遞送或甚至遺漏。
考慮到中斷信號,可執行以下動作:A1)讀取IRTE之第一複本,A2)將中斷請求發送至直接定址之處理器,及A3)讀取IRTE之第二複本。同時,可發生關於變更中斷目標ID與邏輯處理器ID之間的指派的以下序列:B1)藉由額外邏輯處理器ID啟動額外處理器並藉由先前邏輯處理器ID撤銷啟動先前處理器,及B2)藉由額外邏輯處理器ID更新IRTE,亦即由額外邏輯處理器ID替代先前邏輯處理器ID。
在某些錯誤情況下,處理器,例如目標處理器可重設至檢查點且丟失中間資訊。為了重新獲得丟失資訊,處理器可針對此特定處理器掃描所有IRTE項目,亦即指派給其邏輯處理器ID,且遞送如由存在於記憶體(其不受處理器恢復影響)中之待決直接中斷指示符(例如dPIA位元)
指示的直接中斷請求。
IRTE包含之待決直接中斷指示符,例如IRTE.dPIA位元可在應呈現中斷信號時用作主複本,亦即單一真實點。為了簡化處理器恢復,可使用處理器中之待決直接中斷指示符,例如以作為IRTE.dPIA位元之陰影複本以保持處理器上待決之直接中斷。
在記憶體具有嚴格定序性質之情況下,考慮到步驟A1、A2及B1,僅以下序列可為可能的:A1→A3→B1之替代方案1及A1→B1→A3之替代方案2。在替代方案1之情況下,IRTE之第一與第二複本可匹配。因此,中斷信號可轉遞至先前處理器而非當前目標處理器。先前處理器可發現關於中斷目標ID及/或邏輯分割區ID之不匹配並發起所接收中斷信號之廣播。在替代方案2之情況下,匯流排附接裝置可發現IRTE之第一與第二複本之間的不匹配。回應於該不匹配,匯流排附接裝置可廣播中斷信號。由於廣播,中斷信號可由發現命中且直接處理所接收之中斷請求的額外處理器接收。實施例可具有經由過度主動方法關閉時序窗口之有益效應。
根據一實施例,該中斷表項目之該複本進一步包含一執行指示符之一複本,其指示由該中斷目標ID識別之該目標處理器是否經排程以供該客體作業系統使用,該目標處理器經排程以供該客體作業系統使用為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
實施例可具有以下有益效應:防止針對未執行的處理器的中斷,亦即,處理器不經排程以供客體作業系統使用。實施例可具有支援
超管理器以重新排程處理器之有益效應。
執行指示符指示由與中斷信號一起接收之中斷目標ID所識別的目標處理器是否經排程以供客體作業系統使用。執行指示符可例如以執行位元形式實施,該執行位元亦即指示經指派有各別位元之處理器是否正執行,亦即是否經排程以供客體作業系統使用的單一位元。因此,經啟用執行位元可告知匯流排附接裝置目標處理器當前經排程,而經停用執行位元可告知匯流排附接裝置目標處理器當前未經排程。在目標處理器未執行之情況下,匯流排附接裝置可以正確方式發送後饋廣播中斷請求,而不會嘗試直接定址處理器中之一者。
根據一實施例,該中斷表項目之該複本進一步包含一中斷封鎖指示符,其指示由該中斷目標ID識別之該目標處理器當前是否被封鎖而不能接收中斷信號,該目標處理器未被封鎖為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
根據實施例,直接中斷封鎖指示符經引入在記憶體中之中斷表的中斷項目中。直接中斷封鎖指示符可以單一位元,亦即dIBPIA位元,之形式來實施。
根據實施例,自記憶體提取IRTE,檢查執行指示符以便判定目標處理器是否經排程。在目標處理器經排程之情況下,啟用直接中斷封鎖指示符,以便封鎖目標處理器在處置當前中斷信號的同時接收另一中斷信號。另一中斷信號可另外干擾當前中斷信號之處置。為了確保目標處理器尚未同時經重新排程,IRTE經重新提取,且當前執行指示符經再次檢查以便判定目標處理器是否仍經排程。在目標處理器仍然經排程之情況
下,可使用目標處理器之直接定址目標處理器之邏輯處理器ID將中斷信號轉遞至目標處理器。另外,可檢查由IRTE針對所接收之中斷目標ID提供之目標處理器之邏輯處理器ID是否仍然相同。
根據實施例,該裝置表項目進一步包含識別該客體作業系統指派給之一邏輯分割區的一邏輯分割區ID,其中該中斷信號由該匯流排附接裝置之該轉遞進一步包含隨該中斷信號一起轉遞該邏輯分割區ID。實施例可具有以下有益效應:使得接收處理器能夠檢查中斷信號經定址至哪一目標處理器。
根據一實施例,該方法進一步包含由該匯流排附接裝置擷取識別所接收中斷信號指派給的一中斷子類別之一中斷子類別ID,其中由該匯流排附接裝置轉遞該中斷信號進一步包含隨該中斷信號一起轉遞該中斷子類別ID。
根據實施例,用於由處理電路執行之提供於非暫時性電腦可讀媒體上之指令經組態用於執行用於將中斷信號提供至客體作業系統的方法之實施例中之任一者,如本文中所描述。
根據實施例,電腦系統進一步經組態以執行用於將中斷信號提供至客體作業系統之方法的實施例中之任一者,如本文中所描述。
圖1描繪用於將中斷信號提供至客體作業系統之例示性電腦系統100。電腦系統100包含複數個處理器130,其用以執行客體作業系統。電腦系統100另外包含記憶體140,其亦被稱作儲存記憶體或主記憶體。記憶體140可提供記憶體空間,亦即記憶體區段,其經指派以供電腦系統100包含之硬體、韌體及軟體組件使用。記憶體140可由電腦系統100之硬體及韌體使用以及由軟體,例如超管理器、主機/客體作業系統、應
用程式等等使用。一或多個匯流排連接模組120經由匯流排102及匯流排附接裝置110與該複數個處理器130以及記憶體140以操作方式連接。匯流排附接裝置110管理一方面匯流排連接模組120與另一方面處理器130以及記憶體140之間的通信。匯流排連接模組120可直接與匯流排102連接或經由一或多個中間組件,類似於例如切換器104連接。
匯流排連接模組120可例如以周邊組件高速互連(PCIe)模組,亦被稱作PCIe配接器或由PCIe配接器提供之PCIe功能的形式提供。PCIe功能120可發佈請求,將該請求發送至匯流排附接裝置110,例如亦被稱作PCI橋接單元(PBU)之PCI主機橋接器(PHB)。匯流排附接裝置110自匯流排連接模組120接收請求。請求可例如包含用於藉由匯流排附接裝置110對記憶體140執行直接記憶體存取(DMA)之輸入/輸出位址或指示中斷信號,例如訊息告知中斷(MSI)之輸入/輸出位址。
圖2描繪由電腦系統100提供之例示性虛擬機支援。電腦系統100可包含一或多個虛擬機202,以及至少一個超管理器200。虛擬機支援可提供操作較大數目之虛擬機的能力,每一虛擬機能夠執行客體作業系統204,諸如z/Linux。每一虛擬機201可能夠充當獨立系統。因此,每一虛擬機可獨立地重設、執行客體作業系統,及執行不同程式,類似於應用程式。虛擬機中執行之作業系統或應用程式似乎能夠存取整個電腦系統。然而,實際上,僅電腦系統之可用資源之一部分可供各別作業系統或應用程式使用。
虛擬機可使用V=V模型,其中指派給虛擬機之記憶體由虛擬記憶體而非真實記憶體支援。因此,每一虛擬機具有虛擬線性記憶體空間。超管理器200,諸如VM超管理器擁有實體資源,且由超管理器按需
要將共用實體資源分派至客體作業系統,以滿足其處理需求。V=V虛擬機模型假定客體作業系統與實體共用機器資源之間的互動受超管理器控制,此係由於大量數目之客體可阻止超管理器將硬體資源僅分割及指派給經組態客體。
處理器120可藉由超管理器200指派給虛擬機202。虛擬機202可例如指派有一或多個邏輯處理器。邏輯處理器中之每一者可表示可由超管理器200動態地分配給虛擬機202的實體處理器120中之全部或一部分。虛擬機202由超管理器200管理。超管理器200可例如實施於在處理器120上執行之韌體中或可為電腦系統100上執行之作業系統之一部分。超管理器200可例如為VM超管理器,諸如由紐約阿蒙克市之國際商業機器公司供應之z/VM®。
圖3描繪由電腦系統100提供之例示性多層虛擬機支援。除圖2之第一層虛擬化之外,第二層虛擬化亦具備第二超管理器210,其執行於針對第二超管理器210充當主機作業系統之第一層客體作業系統中之一者上。第二超管理器210可管理一或多個第二層虛擬機212,每一虛擬機能夠執行第二層客體作業系統212。
圖4描繪說明將不同類型的ID用以識別電腦系統100之不同階層式層處之處理器的例示性型式。底層韌體220可提供邏輯處理器ID lCPU 222以識別電腦系統100之處理器130。第一層超管理器200使用邏輯處理器ID lCPU 222以與處理器130通信。第一層超管理器可提供第一虛擬處理器ID vCPU 224以供客體作業系統204使用或第二層超管理器219在由第一層超管理器200管理之虛擬機上執行。超管理器200可對第一虛擬處理器ID vCPU 224進行分組以為客體作業系統204及/或超管理器210提供
邏輯分割區,亦被稱作區。將第一虛擬處理器ID vCPU 224藉由第一層超管理器200映射至邏輯處理器ID lCPU 222。由第一層超管理器200提供之第一虛擬處理器ID vCPU 224中之一或多者可指派給使用第一層超管理器200執行之每一客體作業系統204或超管理器210。第一層超管理器200上執行之第二層超管理器210可提供執行軟體,類似於例如其他客體作業系統214之一或多個虛擬機。出於此目的,第二層超管理器管理第二虛擬處理器ID vCPU 226以供在第一層超管理器200之虛擬機上執行之第二層客體作業系統214使用。藉由第二層超管理器200將第二虛擬處理器ID vCPU 226映射至第一虛擬處理器ID vCPU 224。
定址由第一/第二層客體作業系統204使用之處理器130之匯流排連接模組120可使用呈第一/第二虛擬處理器ID vCPU 224、226形式之目標處理器ID或源自第一/第二虛擬處理器ID vCPU 224、226之替代ID。
圖5描繪說明用於將中斷信號提供至電腦系統100上執行之客體作業系統之方法中的主要參與者的電腦系統100之簡化示意性設置。出於說明目的,簡化設置包含匯流排連接模組(BCM)120,其將中斷信號發送至在處理器(CPU)130中之一或多者上執行之客體作業系統。藉由將處理器130中之一者識別為目標處理器之中斷目標ID(IT_ID)將中斷信號發送至匯流排附接裝置110。匯流排附接裝置110為管理電腦系統100之匯流排連接模組120與處理器130以及記憶體140之間的通信的中間裝置。匯流排附接裝置110接收中斷信號並使用中斷目標ID識別目標處理器之邏輯處理器ID以便直接定址各別目標處理器。至目標處理器之經引導轉遞可例如藉由減小快取流量改良資料處理之效率。
圖6描繪DISB 160及複數個DIBV 162之示意性結構。DISB 160可以每中斷目標ID之記憶體的相鄰區段之形式提供,例如包含項目161之快取行,例如位元。每一項目指示是否存在待中斷目標ID識別之各別處理器處置的中斷請求(IRQ)。對於每一中斷目標ID,亦即DISB 160之項目,提供DIBV 162。每一DIBV 162被指派給特定中斷目標ID且包含每一匯流排連接模組MN A、MN B之一或多個項目163。DIBV 162可各自以記憶體的相鄰區段,例如快取行之形式提供,其包含指派給相同中斷目標ID之項目163。不同匯流排連接模組之項目可使用每匯流排連接模組之不同位移DIBVO來排序。
圖7描繪例示性DIBV 162。指派給中斷目標ID的DIBV內之位移(DIBVO)識別指派給特定匯流排連接模組的區段的開始或向量之項目。例如MSI-X訊息之中斷信號可提供DIBV-Idx,其添加至DIBVO以識別指派給匯流排連接模組以識別指派給各別匯流排連接模組的位元163的向量之特定項目,且指示(若設定)存在自由位元163識別的匯流排連接模組定址至各別中斷目標ID的中斷信號。經引導中斷數目(NOI)界定經保留用於各別匯流排連接模組的DIBV中的位元之最大數目。
圖8描繪圖5之電腦系統100。匯流排附接裝置110經組態以在記憶體140之模組特定區域(MSA)149中執行匯流排連接模組120之狀態之狀態更新。可回應於自匯流排連接模組接收到直接記憶體存取(DMA)寫入而執行此狀態更新,從而指定待寫入至記憶體140中之狀態更新。
記憶體進一步包含裝置表(DT)144,其具有針對每一匯流排連接模組120之裝置表項目(DTE)146。在藉由針對中斷請求識別目標處理器之中斷目標ID及識別呈匯流排連接模組120形式之中斷請求來源的請
求者ID接收到中斷信號,例如MSI-X寫入訊息後,匯流排附接裝置110提取指派給正進行請求之匯流排連接模組120的DTE 146。DTE 146可指示是否例如使用dIRQ位元針對正進行請求之匯流排連接模組120啟用目標處理器之經引導定址。匯流排附接裝置更新經引導中斷信號向量(DIBV)162以及經引導中斷摘要向量(DISB)160之項目以便追蹤處理器130中之哪一者已經接收到中斷信號。DISB 160可包含每一中斷目標ID之一個項目,指示對於此處理器130是否存在來自任何匯流排連接模組120之待處置中斷信號。每一DIBV 162被指派給中斷目標ID,亦即處理器130中之一者,且可包含一或多個項目。將每一項目指派給匯流排連接模組120中之一者。因此,DIBV指示對於特定處理器130哪些匯流排連接模組中存在待處置之中斷信號。此可具有以下優勢:以便檢查是否存在任何中斷信號或對於特定處理器哪一匯流排連接模組120中存在待處置之中斷信號。僅例如位元之信號項目或僅例如位元向量之信號向量必須自記憶體140讀取。
匯流排附接裝置110使用提供於匯流排連接模組120上之映射表112來將中斷目標ID(IT_ID)轉譯為邏輯處理器ID(lCPU)並使用直接定址目標處理器之邏輯處理器ID將所接收之中斷信號轉遞至目標處理器。每一處理器包含韌體,例如毫碼(millicode)132,以接收並處理直接中斷信號。韌體可進一步包含例如處理器130之微碼及/或宏碼。其可包含硬體層指令及/或在實施較高層機器碼時所使用之資料結構。根據實施例,其可包含可作為包括受信任軟體之微碼或特定針對於底層硬體之微碼遞送的專有程式碼且控制作業系統對系統硬體之存取。
處理器130之韌體包含檢查邏輯134以根據藉由匯流排附接
裝置110轉遞至接收處理器130之中斷目標ID檢查接收處理器與目標處理器是否相同。在接收處理器130並非目標處理器之情況下,亦即在所接收之中斷目標ID與接收處理器130之參考中斷目標ID不匹配之情況下,將中斷信號廣播至邏輯分割區以便發現用於處置中斷信號之處理器。
圖9為用於經由匯流排附接裝置110使用DMA寫入請求執行匯流排連接模組120之狀態更新的例示性方法的流程圖。在步驟300中,匯流排連接模組可決定更新其狀態並觸發中斷,例如以便指示信號完成。在步驟310中,匯流排連接模組發起經由匯流排附接裝置至指派給電腦系統上執行之主機的記憶體(亦即主機記憶體)之區段之直接記憶體存取(DMA)寫入,以便更新匯流排連接模組之狀態。DMA為允許電腦系統之周邊組件將其I/O資料直接轉移至主記憶體及自主記憶體轉移其I/O資料而無需涉及系統處理器的硬體機制。為了執行DMA,匯流排連接模組例如以MSI-X訊息形式將DMA寫入請求發送至匯流排附接裝置。在PCIe情況下,匯流排連接模組可例如指代提供於PCIe配接器上之PCIe功能。在步驟320中,匯流排連接模組藉由匯流排連接模組之狀態更新接收DMA寫入請求並使用所接收更新來更新記憶體。可在針對各別匯流排連接模組所保留之主機記憶體區域中執行更新。
圖10為用於使用圖8之電腦系統100將中斷信號提供至客體作業系統之例示性方法的流程圖。在步驟330中,匯流排附接裝置例如以MSI-X寫入訊息形式接收由匯流排連接模組發送之中斷信號。可根據PCI架構之規格執行中斷信號之此發射。MSI-X寫入訊息包含識別中斷之目標處理器之中斷目標ID。中斷目標ID可例如為由客體作業系統使用以識別多處理器電腦系統之處理器的虛擬處理器ID。根據實施例,中斷目標ID
可為由客體作業系統及匯流排連接模組商定以便能夠識別處理器之任何其他ID。另一此類ID可例如為虛擬處理器ID之映射之結果:另外,MSI-X寫入訊息可進一步包含中斷請求者ID(RID),亦即發佈中斷請求之PCIe功能之ID;定義向量內向量項目之位移之向量索引;MSI位址,例如64位元位址;以及MSI資料,例如32位元資料。MSI位址及MSI資料可指示各別寫入訊息實際上為呈MSI訊息形式之中斷請求。
在步驟340中,匯流排附接裝置提取儲存於記憶體中之裝置表之項目之複本。裝置表項目(DTE)提供待更新之一或多個向量或向量項目之位址指示符以便指示已經針對目標處理器接收中斷信號。向量項目之位址指示符可例如包含記憶體中向量之位址以及向量內之位移。另外,DTE可提供直接傳訊指示符,其指示是否由匯流排附接裝置使用與中斷信號一起提供之中斷目標ID直接定址目標處理器。另外,DTE可提供邏輯分割區ID,亦被稱作區ID;及中斷子類別ID。裝置表項目之各別複本可提取自快取記憶體或提取自記憶體。
在步驟350中,匯流排附接裝置更新DTE中指定之向量。在步驟360中,匯流排附接裝置檢查與中斷信號一起提供之直接傳訊指示符。在直接傳訊指示符不指示直接傳訊之情況下,匯流排附接裝置使用區識別符及中斷子類別識別符藉由廣播轉遞中斷信號,以便將中斷信號提供至由客體作業系統使用之處理器。
在直接傳訊指示符不指示直接傳訊之情況下,在步驟370中,經由廣播將中斷信號轉遞至處理器。廣播訊息包含區ID及/或中斷子類別ID。當由針對該區啟用中斷請求之處理器接收時,例如根據巢套通信協定以原子方式設定狀態位元。另外,此處理器上例如毫碼之韌體中斷其
活動,例如程式執行,並切換為執行客體作業系統之中斷處置器。
在直接傳訊指示符指示直接傳訊之情況下,在步驟380中,匯流排附接裝置將與中斷信號一起提供之中斷目標ID轉譯為經指派以供客體作業系統使用之處理器之邏輯處理器ID。為了轉譯,匯流排附接裝置可使用IRTE之第一複本,即匯流排附接裝置所包含之映射表。匯流排附接裝置可包含每區之映射表或子表,亦即邏輯分割區。
在步驟390中,匯流排附接裝置使用直接定址各別處理器(亦即發送直接訊息)之邏輯處理器ID將中斷信號轉遞至目標處理器。直接訊息包含中斷目標IS。直接訊息可進一步包含區ID及/或中斷子類別ID。接收處理器包含中斷目標ID檢查邏輯。在中斷目標ID僅對於每一邏輯分割區為唯一的情況下,檢查邏輯可另外考慮邏輯分割區ID。
在步驟392中,檢查邏輯檢查經接收中斷目標ID及/或邏輯分割區ID是否匹配當前經指派給接收處理器並且對於檢查邏輯可存取的中斷目標ID及/或邏輯分割區。在不匹配之情況下,接收韌體在步驟394中發起廣播並使用用以識別有效目標處理器以用於處置中斷之邏輯分割區ID及/或中斷子類別ID將所接收之中斷請求廣播至其餘處理器。在正匹配之情況下,在步驟396中,目標處理器之接收韌體(例如微碼)接受經直接定址之中斷以用於呈現給客體作業系統。作為回應,韌體可中斷其活動,例如程式執行,且切換至執行客體作業系統之中斷處置器。中斷可藉由直接傳訊指示呈現給客體作業系統。
圖11為進一步說明圖8之方法的額外流程圖。在步驟400中,將中斷訊息發送至匯流排附接裝置。在步驟402中,接收中斷訊息。在步驟404中,檢查指派給中斷請求者,亦即匯流排連接模組之DTE是否
快取於與匯流排附接模組以操作方式連接之本端快取記憶體中。在DTE未經快取之情況下,在步驟406中,可藉由匯流排附接裝置自記憶體提取各別DTE。在步驟408中,使用由DTE提供的向量位址指示符來設定記憶體中之向量位元。在步驟410中,使用由DTE提供的直接傳訊指示符檢查目標處理器是否將由匯流排附接裝置使用隨中斷信號一起提供之中斷目標ID直接定址。在未直接以目標處理器為目標之情況下,在步驟412中,該方法繼續將中斷請求廣播至處理器。在直接以目標處理器為目標之情況下,在步驟414中,該方法繼續將中斷目標ID轉譯至邏輯處理器ID,且在步驟416中,將轉遞中斷信號之訊息發送至目標處理器。邏輯處理器ID用於直接定址目標處理器。訊息包含中斷目標ID、邏輯分割區ID及中斷子類別ID。在步驟418中,處理器接收訊息。在步驟419中,處理器檢查中斷目標ID及/或邏輯分割區ID與提供為參考以供檢查之當前中斷目標ID及/或邏輯分割區ID是否匹配。在匹配情況下,處理器在步驟420中將中斷請求呈現給客體作業系統。在不匹配情況下,處理器在步驟422中將中斷請求廣播至其他處理器。接著,處理器繼續其活動直至接收到下一個中斷訊息。
圖12描繪圖5之電腦系統100之另一實施例。替代使用儲存於匯流排附接裝置110上之映射表112,匯流排附接裝置110實際上提取儲存於記憶體140中之中斷表(IRT)150之項目(IRTE)152的複本114。複本可使用由DTE 146之複本提供之中斷表150(IRT@)之位址自本端快取或自記憶體140提取。在經引導中斷轉遞之情況下,IRTE 152提供中斷目標ID至由匯流排附接裝置110使用之邏輯處理器ID的映射以直接定址目標處理器。IRTE 152可另外提供執行指示符154,其指示藉由中斷目標ID所識別之目標處理器是否經排程,亦即是否正執行;及/或封鎖指示符146,其指
示當前是否封鎖目標處理器接收中斷信號。在目標處理器未經排程或暫時被封鎖之情況下,可發起廣播以便使得能夠及時處置中斷。
圖13為用於使用圖12之電腦系統100將中斷信號提供至客體作業系統之例示性方法的流程圖。圖11之方法在圖8之步驟340之後繼續進行步驟342。在步驟342中,匯流排附接裝置使用與中斷信號一起接收之中斷目標ID以及指示IRT之記憶體之由DTE提供之位址指示符自記憶體提取IRTE之複本。在步驟350中,匯流排附接裝置更新DTE中指定之向量。
在步驟360中,匯流排附接裝置檢查與中斷信號一起提供之直接傳訊指示符。在直接傳訊指示符不指示直接傳訊之情況下,匯流排附接裝置藉由廣播使用區識別符及中斷子類別識別符在步驟370中轉遞中斷信號,以便將中斷信號提供至由客體作業系統使用之處理器。在直接傳訊指示符指示直接傳訊之情況下,匯流排附接裝置進一步在步驟362中檢查IRTE之複本包含的執行指示符是否指示由中斷目標ID識別之目標處理器正在執行。
在目標處理器正在未執行之情況下,匯流排附接裝置在步驟364中使用例如用以識別適合於處置中斷之處理器的邏輯分割區ID及/或中斷子類別ID發送經廣播中斷以作為回退。在發現合適的處理器與邏輯分割區ID及/或中斷子類別ID不匹配之情況下,超管理器,亦即經指派以供超管理器使用之處理器可接收中斷請求,而非指派給客體作業系統之處理器。若指派給客體作業系統之一或多個處理器經排程,則超管理器可決定再次廣播中斷請求。在進入指派給作業系統之處理器時,超管理器可檢查待呈現給進入處理器之直接中斷待決指示符,例如dPIA位元。根據實施例,超管理器可例如選擇性重新排程,亦即喚醒目標處理器。
在目標處理器正在執行之情況下,在步驟366中,檢查直接中斷封鎖指示符,例如dIBPIA位元是否經啟用。經啟用直接中斷封鎖指示符指示客體作業系統中斷處置器當前並不希望中斷遞送。因此,在直接中斷封鎖指示符經啟用之情況下,在步驟368中,可廣播中斷信號。
若停用直接中斷封鎖指示符,指示目標處理器當前未經封鎖,則在步驟380中藉由轉譯所接收之中斷目標ID繼續遞送當前中斷信號,以便使用由IRTE針對所接收之中斷目標ID所提供之邏輯處理器ID直接將中斷轉遞至目標處理器。
在步驟380中,匯流排附接裝置將與中斷信號一起提供之中斷目標ID轉譯為經指派以供客體作業系統使用之處理器之邏輯處理器ID。對於該轉譯,匯流排附接裝置可使用匯流排附接裝置包含之映射表。匯流排附接裝置可包含每一區(亦即邏輯分割區)之一映射表或子表。
在步驟390中,匯流排附接裝置使用直接定址各別處理器(亦即發送直接訊息)之邏輯處理器ID將中斷信號轉遞至目標處理器。直接訊息包含中斷目標IS。直接訊息可進一步包含區ID及/或中斷子類別ID。接收處理器包含中斷目標ID檢查邏輯。在中斷目標ID僅對於每一邏輯分割區為唯一的情況下,檢查邏輯可另外考慮邏輯分割區ID。
在步驟392中,檢查邏輯檢查經接收中斷目標ID及/或邏輯分割區ID是否匹配當前經指派給接收處理器並且對於檢查邏輯可存取的中斷目標ID及/或邏輯分割區。在不匹配之情況下,接收韌體在步驟394中發起廣播並使用用以識別有效目標處理器以用於處置中斷之邏輯分割區ID及/或中斷子類別ID將所接收之中斷請求廣播至其餘處理器。在正匹配之情況下,在步驟396中,目標處理器之接收韌體,例如毫碼接受直接定址之
中斷以呈現給客體作業系統。作為回應,該韌體可中斷其活動,例如程式執行,並切換為執行客體作業系統之中斷處置器。中斷可藉由直接傳訊指示呈現給客體作業系統。
圖14為進一步說明圖11之方法之額外流程圖。在直接以目標處理器為目標之情況下,圖12中所展示之方法在圖9之步驟410之後繼續。該方法繼續在步驟413中自記憶體提取指派給所接收之中斷目標ID的IRTE之複本。在步驟413a中,檢查IRTE包含之執行指示符是否經啟用。在執行指示符經停用之情況下,可在步驟413b中由匯流排附接裝置使用廣播轉遞中斷信號。在執行指示符經啟用之情況下,匯流排附接裝置繼續在步驟413c中檢查經引導封鎖指示符是否經啟用。在經引導封鎖指示符未經啟用之情況下,匯流排附接裝置繼續在步驟414中使用IRTE之經提取複本將中斷目標ID轉譯為邏輯處理器ID。否則,可在步驟413d中禁止中斷信號。
圖15描繪用於執行例示性雙重提取方案以便確保所使用IRTE為最新的方法。在步驟500中,將例如MSI-X訊息之中斷信號自匯流排連接模組120,例如PCIe配接器或PCIe配接器上之PCIe功能發送至匯流排附接裝置110,例如PCIe主機橋接器(PHB)。在步驟502中,匯流排附接裝置110自記憶體140請求指派給與中斷信號一起提供之中斷目標ID的IRTE之複本。在步驟504中,記憶體140回應於該請求而發送IRTE之複本。發送IRTE之複本的時間點標記確保IRTE為最新之最後時間點。在該時間點,可更新IRTE之時間窗開始,且由IRTE之第一複本提供的資料可能變得過時。在目標處理器130已處置中斷的情況下,該時間窗結束。自該時間點起,IRTE之任何變更不再影響對所接收中斷信號之處置。在步
驟506中,匯流排附接單元110將請求發送至IRTE以使得經引導待定中斷指示符能夠例如設定經引導待定中斷陣列(dPIA)位元。所啟用的經引導待決中斷指示符指示經引導中斷對於中斷目標ID為待決的。在步驟508中,藉由記憶體140確認經引導待決中斷指示符之設定。在步驟510中,使用至藉由使用IRTE轉譯中斷目標ID而得出的邏輯處理器ID識別的目標處理器130之直接定址以經引導中斷請求之形式轉遞中斷信號。在目標處理器130接收到經引導中斷請求之情況下,關閉該時間窗。在步驟512中,在關閉該時間窗時,藉由匯流排附接裝置110自提供於記憶體140中之IRTE讀取IRTE之第二複本。在步驟514中,在接收到IRTE之所請求第二複本時,匯流排附接裝置110檢查IRTE之第二複本是否匹配IRTE之第一複本,亦即,IRTE(詳言之,中斷目標ID之映射)是否已變更。在匹配的情況下,該方法以在已將中斷請求呈現給客體作業系統並處理該請求之後藉由目標處理器130重設IRTE中之經引導待定中斷指示符結束。在不匹配的情況下,該方法可以步驟502繼續。或者,該方法可以藉由匯流排附接裝置110廣播所接收中斷信號而繼續。
圖16描繪用於執行IRTE之雙重提取以便確保由IRTE提供之資訊為最新的另一方法。在步驟600中,將例如MSI-X訊息之中斷信號自匯流排連接模組120,例如PCIe配接器或PCIe配接器上之PCIe功能發送至匯流排附接裝置110,例如PCIe主機橋接器(PHB)。在步驟602中,匯流排附接裝置110自記憶體140請求指派給與中斷信號一起提供之中斷目標ID的IRTE之複本。在步驟604中,記憶體140回應於該請求而發送IRTE之第一複本。第一複本包含執行指示符,例如執行位元R=1,指示目標處理器經排程;經引導中斷封鎖指示符,例如經引導封鎖位元dIBPIA=0,
指示當前未封鎖目標處理器接收中斷信號;以及邏輯處理器ID lCPU。邏輯處理器ID lCPU由匯流排附接裝置110使用以直接定址目標處理器130。由於執行指示符指示目標處理器130正在執行,因此在步驟606中,匯流排附接裝置110在IRTE中啟用經引導中斷待決指示符,例如設定dPIA=1,並封鎖目標處理器接收其他中斷,例如設定dIBPIA=1。為了檢查IRTE之內容在此期間尚未變更,例如目標處理器130撤銷啟動,在步驟608中藉由請求IRTE之重新讀取而關閉關鍵時間窗。在步驟610中,記憶體140回應於該請求而發送IRTE之第二當前複本。第二複本包含執行指示符,例如執行位元R=1,指示目標處理器130仍然經排程;經引導中斷封鎖指示符,其由匯流排附接裝置啟用;以及與由IRTE之第一複本提供之lCPU相同的邏輯處理器ID lCPU。由於執行指示符以及lCPU並未變更,因此該方法繼續在步驟612中使用lCPU發送直接定址至目標處理器130之中斷請求。目標處理器130將中斷呈現給客體作業系統並處理該中斷。當中斷處置完成時,目標處理器130停用經引導中斷待決指示符,例如重設dPIA=0;以及經引導中斷封鎖指示符,例如重設dIBPIA=0。
圖17描繪說明IRTE包含之資訊在此期間發生變更之情況的圖14之方法之替代流程圖。在步驟600中,將例如MSI-X訊息之中斷信號自匯流排連接模組120,例如PCIe配接器或PCIe配接器上之PCIe功能發送至匯流排附接裝置110,例如PCIe主機橋接器(PHB)。在步驟602中,匯流排附接裝置110自記憶體140請求指派給與中斷信號一起提供之中斷目標ID的IRTE之複本。在步驟604中,記憶體140回應於該請求而發送IRTE之第一複本。第一複本包含執行指示符,例如執行位元R=1,指示目標處理器130經排程;以及邏輯處理器ID lCPU。邏輯處理器ID lCPU由匯流排
附接裝置110使用以直接定址目標處理器130。由於執行指示符指示目標處理器130正在執行,因此在步驟606中,匯流排附接裝置110在IRTE中啟用經引導中斷待決指示符,例如設定dPIA=1,並封鎖目標處理器接收其他中斷,例如設定dIBPIA=1。為了檢查IRTE之內容在此期間尚未變更,例如目標處理器130撤銷啟動,在步驟608中藉由請求IRTE之重新讀取而關閉關鍵時間窗。在步驟610中,記憶體140回應於該請求而發送IRTE之第二當前複本。在此實例中,在此期間已經針對客體作業系統撤銷啟動目標處理器130。因此,第二複本包含執行指示符,例如執行位元R=0,指示目標處理器130不再經排程。邏輯處理器ID lCPU與由IRTE之第一複本提供的lCPU可相同或可不相同。經引導中斷封鎖指示符仍然由匯流排附接裝置啟用。由於執行指示符及/或lCPU發生變更,因此該方法繼續在步驟612中使用廣播將中斷請求發送至處理器。
圖18描繪例示性DTE 146,其包含指派給中斷目標ID的IRT之記憶體位址IRT@、邏輯分割區ID(區)及DIBV內之位移(DIBVO)。DIBVO識別區段的開始或指派給特定匯流排連接模組之向量項目。中斷信號,例如MSI-X訊息可提供DIBV-Idx,將其與DIBVO相加以識別指派給匯流排連接模組之特定向量項目。另外,提供經引導之中斷數目(NOI),其定義針對各別匯流排連接模組所保留之DIBV中位元之最大數目。在圖19A中說明DIBV之其他細節。在AIBV情況下,DTE可提供對應的AIBV特定參數,如圖19B中所說明。
另外,描繪例示性IRTE 152。IRTE 152可包含指派給目標處理器之中斷目標ID的邏輯分割區ID(區)、中斷子類別ID(DISC)、DISB之記憶體位址DISB@、DISB內之位移DISBO,以及DIBV之記憶體位址
DIBV。
圖19A及圖19B說明用於將中斷信號提供至客體作業系統之例示性方法。在步驟704中,匯流排連接模組(BCM),類似於例如PCI配接器(亦即PCI-配接器)上之虛擬功能(VF)發送中斷信號。中斷信號可例如以MSI-X訊息MSI-X(VF、vCPU、DIBV-Idx)形式發送,包含虛擬功能VF之識別符、中斷目標ID(例如呈虛擬處理器ID vCPU形式),及經引導中斷信號向量內之位移(例如DIBV-Idx),從而識別向量包含之項目,例如位元。在步驟706中,匯流排附接裝置(BAD),例如亦被稱作PCI橋接單元(PBU)之PCI主機橋接器(PHB)接收中斷信號。
在步驟708中,PBU讀取指派給VF之裝置表(DT)之項目。儲存於記憶體之硬體系統區域(HSA)中的DT項目說明為表格各列。DT項目可包含中斷表之位址(IRT@)以及指示是否執行經引導傳訊之一或多個經引導傳訊位元。PBU使用IRT@以自HSA提取指派給vCPU之IRT之項目,包含指示vCPU是否正執行之執行位元(R)、指示是否封鎖vCPU接收中斷之經引導中斷封鎖位元(dIBPIA),以及指示針對vCPU之中斷是否為待決之經引導中斷待決位元(dPIA)。在步驟700中,在先前時間點處,已經發佈啟動解譯執行指令(SIE項目),從而引發目標處理器自超管理器模式至客體模式之狀態變更。在步驟701中,R以及所提供之目標處理器之邏輯處理器ID(TrgtPU#)在指派給目標處理器之IRTE中經設定為1。接著,該方法以702結束。對於韌體及硬體,TrgtPU#指代處理單元(l實體PU)之實體ID,而對於zOS及邏輯分割區(LPAR),TrgtPU#指代處理單元(邏輯PU)之邏輯ID。
在步驟710中,PBU使用來自MSI-X之DIBV-Idx設定指派
給vCPU之DIBV中之位元,以便指示存在來自VF之以vCPU為目標之中斷信號。在步驟712中,PBU檢查是否封鎖IRTE,亦即是否IRTE.dIBIA==1。在封鎖指派給vCPU之IRTE及因此vCPU接收其他中斷之情況下,該方法以步驟714結束。在IRTE未經封鎖之情況下,該方法繼續進行步驟716,其中藉由PBU檢查vCPU是否正執行,亦即在IRTE中R是否經設定。
若R經設定,則該方法繼續進行步驟718,從而執行經引導定址。在步驟718中,在IRTE中將dlBPIA及dPIA設定為1,從而指示當前封鎖vCPU接收中斷信號且定址至vCPU之中斷為待決的。在步驟720中,檢查IRTE,更精確而言R之狀態及/或IRTE之TrgtPU#是否相較於步驟718中之IRTE發生變更。因此,實施雙重提取方案,從而讀取IRTE兩次,以便確保讀數之間未發生相關變更,例如由於類似於步驟722中所示之另一客體之SIE項目。
在步驟722中,對目標處理器執行另一客體之SIE項目指令。在步驟724中,另一客體讀取前一客體之IRTE並在步驟726中發佈對於R之原子重設命令,亦即設定R=0並指示vCPU不再執行。另外,dPIA讀取自IRTE。在步驟728中,檢查dPIA是否經設定(IRTE.dPIA==1),從而指示針對vCPU之中斷仍然為待決的。若中斷並非待決的,則該方法以步驟730結束。若中斷仍然為待決的,則在步驟732中,在目標PU上重設待決中斷指示符PU.dPIA以及IRTE之IRTE.dPIA並發起待決中斷之廣播。因此,在步驟720中判定IRTE之相關變更的情況下,廣播中斷。
在步驟720中未判定IRTE之相關變更的情況下,該方法連續進行步驟734。在步驟734中,針對目標PU(亦被稱作經引導PU)轉遞中
斷信號(經引導PCI中斷SYSOP)。在步驟736中,經引導PU接收經引導PCI中斷並在步驟738中對於經引導PU設定待決中斷指示符PU.dPIA。在步驟739中,檢查經引導PU是否經遮罩,亦即通常是否防止經引導PU接收及執行中斷。若經引導PU經遮罩,則該方法以步驟740結束。若經引導PU未經遮罩,例如由於如步驟742中所示之未遮罩,則該方法繼續在步驟744中進行藉由經引導PU之韌體,例如毫碼執行的中斷(mCode IO-Irpt)。在步驟746中,重設PU.dPIA及IRTE.dPIA以指示中斷不再為待決的。
在步驟748中,作業系統中斷處置器(OS IO-Irpt)被呼叫且在步驟750中讀取及重設在步驟710中所設定之DIBV位元。在步驟752中,循環處理指派給目標PU,亦即經引導PU的DIBV之所有DIBV位元。因此,可連續處置針對目標PU之所有中斷。在所有DIBV位元已經處置之情況下,在步驟754中藉由重設IRTE.dIBPIA而使目標PU未經封鎖(SIC.OC17)。另外,重新讀取DIBV,以便在步驟756中判定另一DIBV位元在此期間是否已經設定。若情況如此,則處置各別中斷,否則該方法以步驟758結束。
若檢查結果在步驟716中為R未經設定,則該方法繼續進行步驟760,從而執行廣播以作為回退。在步驟760中,在經引導中斷摘要向量中啟用經引導中斷摘要指示符,例如設定位元。將中斷摘要向量之每一位元指派給CPU,從而指示是否存在待由各別CPU處置之任何中斷。在步驟764中,該中斷經廣播(SIGI.enq.IBPIA)並在步驟766中由任何PU接收。在步驟768中,針對各別PU在IBPIA中設定封鎖位元,從而指示當前封鎖該PU接收中斷。在步驟770中,檢查是否已經藉由設定封鎖位元變更IBPIA,亦即是否IBPIA 0→1。若IBPIA尚未變更。亦即已經封鎖,則該
方法以步驟772結束。若IBPIA已經變更,則在步驟774中,針對各別PU在PIA中設定待決位元。在步驟776中,檢查PU是否經遮罩,亦即通常是否防止PU接收及執行中斷。若PU經遮罩,則該方法以步驟778結束。若PU未經遮罩,例如由於如步驟780中所示之未遮罩,則該方法繼續在步驟782中進行藉由PU之韌體,例如毫碼執行的中斷(mCode IO-Irpt)。在步驟784中,重設PIA中之待決位元以指示中斷不再待決。
在步驟786中,作業系統中斷處置器(OS IO-Irpt)被呼叫並在步驟788中讀取及重設在步驟760中所設定之DISB位元。在步驟790及792中,傳訊至對應的經引導PU:中斷經處置。在步驟794中,循環處理DISB陣列之所有DISB位元,每一位元指派給另一PU。DISB摘要待藉由廣播處置之所有中斷。根據中斷之目標PU對中斷進行排序。因此,待藉由廣播處置之所有中斷可藉由PU連續處置。在所有DISB位元已經處置之情況下,在步驟796中藉由重設IBPIA使PU未經封鎖(SIC.OC1)。另外,重新讀取DISB以便在步驟798中判定另一DISB位元在此期間是否已經設定。若情況如此,則處置各別中斷,否則該方法以步驟799結束。
客體作業系統可例如使用可分頁儲存模式客體實施。例如在z/Architecture®中,可分頁客體可在解譯之層2處經由啟動解譯執行(SIE)指令以解譯方式執行。例如,邏輯分割區(LPAR)超管理器執行SIE指令以使邏輯分割區開始於實體固定記憶體中。該邏輯分割區中之作業系統,例如z/VM®可發佈SIE指令以在其虛擬儲存器中執行其客體(虛擬)機器。因此,LPAR超管理器可使用層-1 SIE且z/VM®超管理器可使用層-2 SIE。
根據實施例,電腦系統為由國際商業機器公司供應之
System z®伺服器。System z®係基於由國際商業機器公司供應之z/Architecture®。關於z/Architecture®之細節描述於2017年8月25日之標題為「z/Architecture操作原理(z/Architecture Principles of Operation)」IBM®公開案第SA22-7832-11號的IBM®公開案中,該公開案特此以全文引用之方式併入本文中。IBM®、System z®及z/Architecture®為紐約阿蒙克市之國際商業機器公司之註冊商標。本文中使用之其他名稱可為國際商業機器公司或其他公司之註冊商標、商標或產品名稱。
根據實施例,具有其他架構之電腦系統可實施及使用本發明之一或多個態樣。作為實例,除System z®伺服器之外的伺服器,諸如電力系統伺服器或由國際商業機器公司供應之其他伺服器或其他公司之伺服器實施、使用及/或得益於本發明之一或多個態樣。另外,儘管在本文中之實例中,匯流排連接模組及匯流排附接裝置被視為伺服器之一部分,但在其他實施例中,其不必必需被視為伺服器之一部分,而是可僅被視為耦接至系統記憶體及/或電腦系統之其他組件。電腦系統無需為伺服器。另外,儘管匯流排連接模組可為PCIe,但本發明之一或多個態樣可與其他匯流排連接模組一起使用。PCIe配接器及PCIe功能僅為實例。另外,本發明之一或多個態樣可適用於除PCI MSI及PCI MSI-X之外的中斷方案。又另外,儘管描述了位元經設定之實例,但在其他實施例中,位元組或其他類型之指示符可經設定。另外,DTE及其他結構可包括較多、較少或不同資訊。
另外,其他類型之電腦系統可得益於本發明之一或多個態樣。作為一實例,可使用適合於儲存及/或執行程式碼之資料處理系統,其包括直接或經由系統匯流排間接地耦接至記憶體元件之至少兩個處理
器。記憶體元件包括例如在實際執行程式碼期間採用之本端記憶體、大容量儲存器,及提供至少某一程式碼之臨時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數的快取記憶體。
輸入/輸出或I/O裝置(包括但不限於鍵盤、顯示器、指標裝置、DASD、磁帶、CD、DVD、隨身碟(thumb drive)及其他記憶體媒體等)可直接地或經由介入I/O控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅為幾個可用類型之網路配接器。
參考圖20,描繪實施本發明之一或多個態樣的主機電腦系統800之代表性組件。代表性主機電腦800包含與電腦記憶體802通信之一或多個處理器,例如CPU 801;以及介接至儲存媒體裝置811及網路810以用於與其他電腦或SAN及其類似者通信的I/O介面。CPU 801與具有架構化指令集及架構化功能性之架構相容。CPU 801可具有動態位址轉譯(DAT)803以用於將程式位址、虛擬位址變換成記憶體之真實位址。DAT可包含轉譯後備緩衝器(TLB)807以用於快取轉譯,使得對電腦記憶體802之區塊的稍後存取並不需要延遲位址轉譯。可在電腦記憶體802與CPU 801之間採用快取記憶體809。快取記憶體809可階層式地經結構化,從而提供可用於多於一個CPU之較大高層快取記憶體及高層快取記憶體與每一CPU之間的較小、較快速、較低層快取記憶體。在一些實施中,較低層快取記憶體可經分離以為指令提取及資料存取提供獨立的低層快取記憶體。根據實施例,可藉由指令提取單元804經由快取記憶體809自記憶體802提取指令。指令在指令解碼單元806中可經編碼且在一些實施例中藉
由其他指令分派至一或多個指令執行單元808。可採用若干執行單元808,例如算術執行單元、浮點執行單元及分支指令執行單元。藉由執行單元執行指令,從而在需要時自指令指定之暫存器或記憶體存取運算元。若將自記憶體802存取(例如載入或儲存)運算元,則載入/儲存單元805可在經執行指令之控制下處置存取。指令可以硬體電路或內部微碼(亦即韌體)或藉由以上兩者之組合執行。
電腦系統可包含本端或主儲存器中之資訊,以及定址、保護及參考與變更記錄。定址之一些態樣包括位址之格式、位址空間之概念、位址之各種類型,及一種類型之位址經轉譯成另一種類型之位址的方式。一些主儲存器包括永久性指派之儲存位置。主儲存器為系統提供對資料之直接可定址快速存取儲存。將資料及程式兩者在可處理之前例如自輸入裝置載入至主儲存器中。
主儲存器可包括一或多個較小的較快速存取緩衝儲存器,其有時被稱為快取記憶體。快取記憶體與CPU或I/O處理器可實體相關聯。實體構造之效應(除了對效能之效應之外)及不同儲存媒體之使用一般無法由所執行程式觀測到。
可針對指令及針對資料運算元維持獨立快取。快取記憶體內之資訊在被稱作快取記憶體區塊或快取行之積分邊界上可以相鄰位元組維持。模型可提供EXTRACT CACHE ATTRIBUTE指令,其傳回快取行之以位元組為單位的大小。模型亦可提供PREFETCH DATA及PREFETCH DATA RELATIVE LONG指令,其影響儲存器至資料或指令快取記憶體中之預提取或資料自該快取記憶體之釋放。
可將儲存器視為位元之長水平字串。對於大多數操作,對
儲存器之存取可以自左至右順序進行。將位元字串細分成八個位元之單元。八位元單元被稱為位元組,其為所有資訊格式之基本建置區塊。儲存器中之每一位元組位置可由唯一非負整數識別,該整數為該位元組位置之位址,亦被稱作位元組位址。鄰近位元組位置可具有連續位址,在左側自0開始且以自左至右順序進行。位址為無正負號二進位整數且可例如為24、31或64個位元。
在記憶體與CPU之間每次一個位元組或一組位元組地發射資訊。除非另外指定,否則在例如z/Architecture®中,記憶體中之一組位元組由該組位元組中之最左位元組定址。該組位元組中位元組之數目藉由待執行之操作暗示或明確地指定。當用於CPU操作中時,一組位元組被稱作欄位。在各組位元組內,在例如z/Architecture®中,位元以自左至右順序經編號。在z/Architecture®中,最左位元有時被稱作「高階」位元,且最右位元被稱作「低階」位元。然而,位元數目並非儲存位址。僅位元組可為可定址的。為了對儲存器中之位元組之個別位元進行操作,可存取整個位元組。在例如z/Architecture中,位元組中之位元可自左至右經編號為0至7。位址中之位元可針對24位元位址經編號為8至31或40至63,或針對31位元位址經編號為1至31或33至63;該等位元針對64位元位址經編號為0至63。在多個位元組之任何其他固定長度格式內,構成格式之位元可自0開始連續編號。出於錯誤偵測之目的且較佳地出於校正,可隨每一位元組或隨一組位元組發射一或多個檢查位元。此等檢查位元係藉由機器自動地產生且無法藉由程式直接控制。儲存容量以位元組之數目來表達。當儲存器運算元欄位之長度係藉由指令之操作碼來暗示時,該欄位據稱具有固定長度,該長度可為一個、兩個、四個、八個或十六個位元組。可針對
一些指令暗示較大欄位。當未暗示儲存器運算元欄位之長度而明確地陳述該長度時,該欄位據稱具有可變長度。可變長度運算元之長度可按一個位元組之增量(或對於一些指令,按兩個位元組之倍數或其他倍數)變化。當將資訊置放於儲存器中時,替換包括於指明欄位中之僅彼等位元組位置之內容,即使至儲存器之實體路徑之寬度可能大於所儲存之欄位之長度亦如此。
某些資訊單元將在儲存器中之積分邊界上。當資訊之儲存位址為單元位元組長度之倍數時,邊界被稱為資訊單元之積分。對積分邊界上之2、4、8及16位元組之欄位給定特殊名稱。半字組為二位元組邊界上之兩個連續位元組之群組且其為指令之基本建置區塊。字組為四位元組邊界上之四個連續位元組之群組。雙字組為八位元組邊界上之八個連續位元組之群組。四倍字組為16位元組邊界上之16個連續位元組之群組。當儲存位址指明半字組、字組、雙字組及四倍字組時,位址之二進位表示分別含有一、二、三或四個最右零位元。指令將在兩位元組積分邊界上。大多數指令之儲存器運算元並不具有邊界對準要求。
在針對指令及資料運算元實施獨立快取之裝置上,若將程式儲存至隨後提取指令之快取行中,則可經歷顯著延遲,而不管該儲存是否更改隨後提取之指令。
在一個實施例中,本發明可由軟體,有時被稱為授權內碼、韌體、微碼、毫碼、微微碼及其類似者實踐,其中任一者將與本發明一致。參考圖20,體現本發明之軟體程式碼可存取自長期儲存媒體裝置811,諸如CD-ROM光碟機、磁帶機或硬碟機。軟體程式碼可體現於各種已知媒體中之任一者上以用於供資料處理系統(諸如,磁片、硬碟機或
CD-ROM)使用。該程式碼可在此種媒體上予以分佈,或可自電腦記憶體802或一個電腦系統之儲存器經由至其他電腦系統之網路810分佈至使用者,以供此類其他系統之使用者使用。
軟體程式碼可包含作業系統,其控制各種電腦組件及一或多個應用程式之功能及互動。程式碼可自儲存媒體裝置811分頁至相對較高速度電腦儲存器802,程式碼在此處可供處理器801處理。可使用用於在實體媒體上體現記憶體中之軟體程式碼及/或經由網路分佈軟體程式碼之熟知技術及方法。程式碼在建立及儲存於有形媒體上時可被稱作「電腦程式產品」,有形媒體包括但不限於電子記憶體模組(RAM)、快閃記憶體、緊密光碟(CD)、DVD、磁帶。電腦程式產品媒體可由較佳地在電腦系統中之處理電路讀取以供處理電路執行。
圖21說明代表性工作站或伺服器硬體系統,其中可實施本發明之實施例。圖21之系統820包含代表性基礎電腦系統821,諸如個人電腦、工作站或伺服器,包括可選周邊裝置。基礎電腦系統821包括一或多個處理器826及用以根據已知技術連接一或多個處理器826與系統821之其他組件及實現一或多個處理器826與系統821之其他組件之間的通信的匯流排。匯流排將處理器826連接至記憶體825及長期儲存器827,其可包括硬碟機,包括例如磁性媒體、CD、DVD及快閃記憶體中之任一者或例如磁帶機。系統821亦可包括使用者介面配接器,其將微處理器826經由匯流排連接至一或多個介面裝置(諸如鍵盤824、滑鼠823、印表機/掃描器830,及/或其他介面裝置),其可為任何使用者介面裝置,諸如觸敏式螢幕、數位化輸入小鍵盤等。匯流排亦經由顯示器配接器將顯示裝置822(諸如,LCD螢幕或監視器)連接至微處理器826。
系統821可藉助於能夠與網路829進行通信828之網路配接器與其他電腦或電腦之網路通信。實例網路配接器為通信通道、符記環、乙太網路或數據機。替代地,系統821可使用無線介面,諸如蜂巢式數位封包資料(CDPD)卡通信。系統821可與區域網路(LAN)或廣域網路(WAN)中之此等其他電腦相關聯,或系統821可為與另一電腦呈用戶端/伺服器配置中之用戶端,等等。
圖22說明資料處理網路840,其中可實施本發明之實施例。資料處理網路840可包括複數個個別網路,諸如無線網路及有線網路,其各自可包括複數個個別工作站841、842、843、844。此外,如熟習此項技術者將瞭解,可包括一或多個LAN,其中LAN可包含耦接至主機處理器之複數個智慧型工作站。
仍然參考圖22,網路亦可包括大型主機電腦或伺服器,諸如閘道器電腦,例如用戶端伺服器846;或應用程式伺服器,例如可存取資料儲存庫且亦可直接自工作站845存取之遠端伺服器848。閘道器電腦846可充當進入每一個別網路之進入點。在將一個網路連接協定連接至另一網路連接協定時,可需要閘道器。閘道器846較佳地可例如藉助於通信鏈路耦接至另一網路,類似於網際網路847。閘道器846亦可使用通信鏈路直接耦接至一或多個工作站841、842、843、844。閘道器電腦可利用可購自國際商業機器公司之IBM eServerTM System z®伺服器實施。
同時參考圖21及圖22,可體現本發明之軟體程式碼可由系統820之處理器826存取自長期儲存媒體827,諸如CD-ROM光碟機或硬碟機。軟體程式碼可體現於各種已知媒體中之任一者上以供資料處理系統(諸如,磁片、硬碟機或CD-ROM)使用。該程式碼可在此種媒體上予以分
佈,或可自記憶體或一個電腦系統之儲存器經由至其他電腦系統之網路分佈至使用者850、851,以供此類其他系統之使用者使用。
替代地,程式碼可體現於記憶體825中且使用處理器匯流排藉由處理器826存取。此類程式碼可包括控制各種電腦組件及一或多個應用程式832之功能及互動的作業系統。程式碼可自儲存媒體827分頁至高速記憶體825,程式碼在此處可供處理器826處理。可使用用於在實體媒體上體現記憶體中之軟體程式碼及/或經由網路分佈軟體程式碼之熟知技術及方法。
可最容易被處理器使用,亦即可快於及小於處理器之其他快取記憶體的快取記憶體為最低快取記憶體,亦被稱作L1或層1快取記憶體,且若存在n(例如n=3)個層,則主記憶體為最高層快取記憶體,亦被稱作Ln,例如L3快取記憶體。最低層快取記憶體可劃分成指令快取記憶體,亦被稱作I-快取記憶體,從而保存待執行之機器可讀指令;及資料快取記憶體,亦被稱作D-快取記憶體,從而保存資料運算元。
參考圖23,針對處理器826描繪例示性處理器實施例。快取記憶體853之一或多個層可用於緩衝記憶體區塊以便改良處理器效能。快取記憶體853係保存可能使用之記憶體資料之快取行的高速緩衝器。快取行可例如為64、128或256位元組之記憶體資料。可採用單獨快取記憶體以用於快取指令及用於快取資料。快取記憶體一致性,亦即記憶體與快取記憶體中各行之複本之同步可由各種合適的演算法,例如「窺探」演算法提供。處理器系統之主記憶體儲存器825可被稱為快取記憶體。在具有4層之快取記憶體853的處理器系統中,主儲存器825有時被稱作層5(L5)快取記憶體,由於其可較快速且僅保存可用於電腦系統之非揮發性儲存器
之一部分。主儲存器825「快取」由作業系統分頁至主儲存器825中及自主儲存器825移出分頁之資料頁。
程式計數器(指令計數器)861追蹤待執行之當前指令之位址。z/Architecture®處理器中之程式計數器為64位元且可經截短至31或24位元以支援先前定址限制。程式計數器可以電腦之程式狀態字(PSW)體現使得其在上下文切換期間得以維持。因此,具有程式計數器值之正在進行程式可因例如引起自程式環境至作業系統環境之上下文切換的作業系統而中斷。在程式並非作用中時,程式之PSW維持程式計數器值,且在作業系統正執行時,使用呈作業系統之PSW形式的程式計數器。程式計數器可遞增等於當前指令之位元組之數目的量。精簡指令集計算(RISC)指令可為固定長度,而複雜指令集計算(CISC)指令可為可變長度。IBM z/Architecture®之指令係具有2、4或6位元組之長度的CISC指令。例如,可藉由分支指令之上下文切換操作或採取分支操作來修改程式計數器861。在上下文切換操作中,將當前程式計數器值連同關於正執行之程式之其他狀態資訊(諸如,條件碼)一起保存於程式狀態字中,且載入新程式計數器值,其指向待執行之新程式模組之指令。可執行採取分支操作以便准許程式藉由將分支指令之結果載入至程式計數器861中來作出決策或在程式內循環。
指令提取單元855可用於代表處理器826提取指令。提取單元提取「下一順序指令」、採取分支指令中之目標指令,或在上下文切換之後程式之第一指令。現代指令提取單元可採用預提取技術以基於可能使用經預提取之指令之可能性推測地預提取指令。舉例而言,提取單元可提取16位元組之指令,其包括下一順序指令及額外位元組之其他順序指令。
所提取指令可接著藉由處理器826執行。根據實施例,一或多個所提取指令可傳遞至提取單元之分派單元856。分派單元解碼一或多個指令並將關於一或多個經解碼指令之資訊轉遞至適合的單元857、858、860。執行單元857可自指令提取單元855接收關於經解碼算術指令之資訊且可根據指令之操作碼對運算元執行算術運算。可較佳地將運算元自記憶體825、架構化暫存器859或經執行指令之立即欄位提供至執行單元857。執行結果在儲存時可儲存於記憶體825中、暫存器859中或其他機器硬體(諸如控制暫存器、PSW暫存器及其類似者)中。
處理器826可包含用於執行指令之功能之一或多個單元857、858、860。參考圖24A,執行單元857可藉助於介接邏輯871與架構化通用暫存器859、解碼/分派單元856、載入儲存單元860及其他處理器單元865通信。執行單元857可採用若干暫存器電路867、868、869以保存算術邏輯單元(ALU)866操作之資訊。ALU執行諸如加法、減法、乘法及除法之算術運算,以及諸如「及」、「或」、「互斥或(XOR)」、旋轉及移位之邏輯函數。較佳地,ALU可支援為設計相依性之專用運算。其他電路可提供其他架構化設施872,包括例如條件碼及恢復支援邏輯。ALU操作之結果可保存於輸出暫存器電路870中,該電路經組態以將結果轉遞至各種其他處理函數。存在處理器單元之許多配置,本描述僅意欲提供對一個實施例之代表性理解。
ADD指令例如可執行於具有算術及邏輯功能性之執行單元857中,而浮點指令例如將執行於具有專業浮點能力之浮點執行中。較佳地,執行單元藉由對藉由指令所識別之運算元執行操作碼定義之函數來對該等運算元進行運算。舉例而言,可藉由執行單元857對發現於兩個暫
存器859中之運算元執行ADD指令,該兩個暫存器藉由指令之暫存器欄位識別。
執行單元857對兩個運算元執行算術加法且將結果儲存於第三運算元中,其中該第三運算元可為第三暫存器或兩個源暫存器中之一者。執行單元較佳地利用算術邏輯單元(ALU)866,其能夠執行諸如移位、旋轉、「及」、「或」及「互斥或」之各種邏輯函數以及包括加法、減法、乘法、除法中之任一者之各種代數函數。一些ALU 866經設計用於純量運算且一些ALU經設計用於浮點。取決於架構,資料可為大端序,其中最低有效位元組在最高位元組位址處;或可為小端序,其中最低有效位元組在最低位元組位址處。IBM z/Architecture®為大端序。帶正負號欄位可為正負號及量值,取決於架構,其為1之補數或2之補數。由於2之補數中之負值或正值僅需要在ALU內進行加法,因此2之補數可係有利的,因為ALU不需要設計減法能力。數字可以簡寫形式描述,其中12位元欄位定義4,096位元組區塊之位址,且例如可描述為4千位元組(Kbyte)區塊。
參考圖24B,可將用於執行分支指令之分支指令資訊發送至分支單元858,該分支單元常常採用分支預測演算法(諸如,分支歷史表882)來在其他條件運算完成之前預測分支之結果。將在條件運算完成之前提取且推測地執行當前分支指令之目標。當條件運算完成時,基於條件運算之條件及推測之結果完成或丟棄推測地執行之分支指令。若條件碼滿足分支指令之分支要求,則分支指令可測試條件碼及至目標位址之分支,可例如基於包括發現於暫存器欄位中之一之若干個數字或指令之立即欄位而演算目標位址。分支單元858可採用ALU 874,其具有複數個輸入暫存器電路875、876、877及一輸出暫存器電路880。分支單元858可例如與通用
暫存器859、解碼/分派單元856或其他電路873通信。
一組指令之執行可出於各種原因而中斷,該等原因包括例如藉由作業系統發起之上下文切換、引起上下文切換之程式例外情況或錯誤、引起複數個程式在多執行緒環境中之上下文切換或多執行緒活動之I/O中斷信號。較佳地,上下文切換動作保存關於當前正執行之程式之狀態資訊且接著載入關於正被調用之另一程式之狀態資訊。舉例而言,可將狀態資訊保存於硬體暫存器中或記憶體中。狀態資訊較佳地包含指向待執行之下一指令之程式計數器值、條件碼、記憶體轉譯資訊及架構化暫存器內容。上下文切換活動可藉由硬體電路、應用程式、作業系統程式或韌體碼(類似於例如微碼、微微碼或授權內碼(LIC))單獨地或以組合形式進行。
處理器根據指令定義之方法存取運算元。指令可使用指令之一部分之值提供立即運算元,可提供明確指向通用暫存器或專用暫存器(類似於例如浮點暫存器)之一或多個暫存器欄位。指令可利用藉由操作碼欄位識別為運算元之隱含暫存器。指令可利用運算元之記憶體位置。運算元之記憶體位置可由暫存器、立即欄位或暫存器與立即欄位之組合(如由z/Architecture®長移位設施例示)提供,其中指令定義例如一起相加以提供記憶體中運算元之位址的基礎暫存器、索引暫存器及立即欄位,亦即移位欄位。除非另外指示,否則本文中之位置可隱含在主記憶體中之位置。
參考圖24C,處理器使用載入/儲存單元860存取儲存器。載入/儲存單元860可藉由獲得記憶體853中之目標運算元之位址及將該運算元載入暫存器859或另一記憶體853位置中來執行載入操作,或可藉由獲得記憶體853中之目標運算元之位址及將自暫存器859或另一記憶體853
位置獲得之資料儲存於記憶體853中之目標運算元位置來執行儲存操作。載入/儲存單元860可為推測式的且可以相對於指令順序為無序之順序來存取記憶體;然而,載入/儲存單元860用於維持對程式表現為按次序執行指令。載入/儲存單元860可與通用暫存器859、解碼/分派單元856、快取記憶體/記憶體介面853或其他元件883通信,且包含各種暫存器電路、ALU 885及控制邏輯890以演算儲存位址並提供管線排序以使操作保持按次序進行。一些操作可係無序的,但載入/儲存單元提供功能性以使無序操作對程式表現為已按次序執行。
較佳地,應用程式「經歷」之位址常常被稱作虛擬位址。虛擬位址有時被稱作「邏輯位址」及「有效位址」。此等虛擬位址係虛擬的,因為其藉由多種動態位址轉譯(DAT)技術中之一者被重新引導至實體記憶體位置,該等技術包括但不限於:僅對虛擬位址加上位移值作為首碼;經由一或多個轉譯表轉譯虛擬位址,該等轉譯表較佳地單獨或組合地包含至少一區段表格及一分頁表格,較佳地,該區段表格具有指向分頁表格之項目。在z/Architecture®中,提供轉譯階層,其包括區第一表格、區第二表格、區第三表格、區段表格及可選分頁表格。位址轉譯之效能常藉由利用轉譯後備緩衝器(TLB)改良,該轉譯後備緩衝器包含將虛擬位址映射至相關聯實體記憶體位置之項目。在DAT使用轉譯表轉譯虛擬位址時,創建該等項目。虛擬位址之後續使用可接著利用快速TLB之項目而非緩慢順序轉譯表存取。TLB內容可由包括最近最少使用(LRU)之各種替換演算法管理。
多處理器系統之每一處理器負責使共用資源(諸如I/O、快取記憶體、TLB及記憶體)為了一致性保持互鎖。所謂的「窺探」技術可
用於維持快取一致性。在窺探環境中,每一快取行可經標記為處於共用狀態、排他性狀態、變更狀態、無效狀態及其類似狀態中之任一者中以便促進共用。
I/O單元854可為處理器提供用於附接至周邊裝置(例如包括磁帶、磁碟、印表機、顯示器及網路)之手段。I/O單元常藉由軟體驅動器呈現給電腦程式。在大型主機(諸如來自IBM®之System z®)中,通道配接器及開放系統配接器係大型主機之I/O單元,其提供作業系統與周邊裝置之間的通信。
另外,其他類型之電腦系統可得益於本發明之一或多個態樣。作為一實例,電腦系統可包含模擬器,例如軟體或其他模擬機構,其中模擬特定架構,包括例如指令執行、諸如位址轉譯之架構化功能及架構化暫存器,或其中例如在具有處理器及記憶體之原生電腦系統上模擬其子集。在此環境中,模擬器之一或多個模擬功能可實施本發明之一或多個態樣,即使執行模擬器之電腦可能具有不同於正經模擬之能力的架構。例如,在模擬模式下,經模擬之特定指令或操作可經解碼,且可建構適合的模擬功能以實施個別指令或操作。
在模擬環境中,主機電腦可例如包含:記憶體,其儲存指令及資料;指令提取單元,其自記憶體提取指令且視情況為經提取之指令提供本端緩衝;指令解碼單元,其接收經提取之指令且判定已經提取之指令之類型;以及指令執行單元,其執行該等指令。執行可包括將資料自記憶體載入至暫存器中;將資料自暫存器儲存回至記憶體;及/或執行如由解碼單元判定之某一類型之算術或邏輯運算。例如,每一單元可實施於軟體中。由單元執行之操作可實施為模擬器軟體內之一或多個次常式。
更特定言之,在大型主機中,程式設計師(類似於例如「C」程式設計師)例如藉助於編譯器應用程式使用架構化機器指令。儲存於儲存媒體中之此等指令可原生地執行於z/Architecture® IBM®伺服器中,或替代地執行於執行其他架構之機器中。可在現存及未來IBM®大型主機伺服器中及在IBM®之其他機器(例如,電力系統伺服器及系統x®伺服器)上模擬該等指令。該等指令可執行於使用由IBM®、Intel®、AMDTM及其他者製造之硬體在廣泛多種機器上執行Linux之機器中。除了在z/Architecture®下之該硬體上執行以外,可使用Linux以及藉由赫拉克勒斯(Hercules)、UMX或FSI(基本軟體公司)之使用模擬之機器,其中大體上執行處於模擬模式下。在模擬模式下,藉由原生處理器執行模擬軟體以模擬經模擬處理器之架構。
原生處理器可執行包含韌體或原生作業系統之模擬軟體,以執行經模擬處理器之模擬。模擬軟體負責提取及執行經模擬處理器架構之指令。模擬軟體維持經模擬之程式計數器以追蹤指令邊界。模擬軟體可一次提取一或多個經模擬之機器指令且將該一或多個經模擬之機器指令轉化為原生機器指令之對應群組以供原生處理器執行。此等經轉化之指令可經快取,使得可實現較快速轉化。儘管如此,模擬軟體將用於維持經模擬之處理器架構之架構規則以便確保針對經模擬之處理器撰寫之作業系統及應用程式正確地進行操作。此外,模擬軟體係用於提供藉由經模擬之處理器架構識別之資源,其包括但不限於控制暫存器、通用暫存器、浮點暫存器、包括段表及頁表之動態位址轉譯功能(例如,中斷機制、上下文切換機制、當日時間(TOD)時脈及至I/O子系統之架構化介面),使得經設計以在經模擬處理器上執行之作業系統或應用程式可在具有模擬軟體之原生處
理器上執行。
解碼正進行模擬之特定指令,且呼叫次常式以執行個別指令之功能。例如,在「C」次常式或驅動程式中實施模擬經模擬處理器之功能之模擬軟體功能,或為特定硬體提供驅動程式之某一其他方法。
在圖25中,提供經模擬之主機電腦系統892之實例,其模擬主機架構之主機電腦系統800'。在經模擬主機電腦系統892中,主機處理器,亦即CPU 891為經模擬主機處理器或虛擬主機處理器且包含模擬處理器893,其與主機電腦800'之處理器891具有不同的原生指令集架構。經模擬主機電腦系統892具有可存取模擬處理器893之記憶體894。在實例實施例中,將記憶體894分割成主機電腦記憶體896部分及模擬常式897部分。根據主機電腦架構,主機電腦記憶體896可用於經模擬之主機電腦892之程式。模擬處理器893執行與經模擬處理器891之架構不同之架構的架構化指令集的原生指令,該等原生指令自模擬常式記憶體897獲得,且可藉由採用在順序及存取/解碼常式中獲得之一或多個指令自主機電腦記憶體896中之程式存取用於執行之主機指令,該順序及存取/解碼常式可解碼所存取之主機指令以判定用於模擬所存取主機指令之功能的原生指令執行常式。經定義用於主機電腦系統800'架構之其他設施可藉由架構化設施常式模擬,該等設施例如包括諸如以下各者之設施:通用暫存器、控制暫存器、動態位址轉譯及I/O子系統支援及處理器快取記憶體。模擬常式亦可利用模擬處理器893中可用之功能(諸如,通用暫存器及虛擬位址之動態轉譯)來改良模擬常式之效能。亦可提供特殊硬體及卸載引擎以輔助處理器893模擬主機電腦800'之功能。
應理解,只要組合之實施例彼此不互斥,本發明之前述實
施例中之一或多者可經組合。序號(類似於例如「第一」及「第二」)在本文中用以指示經指派有相同名稱的不同元件,但未必確立各別元件之任何次序。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
本發明可為一系統、一方法及/或一電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保留及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之較特定實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位化通用光碟(DVD)、記憶棒、軟性磁碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纜傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體
下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸電纜、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作的電腦可讀程式指令可為組譯程式指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料或以一或多種程式設計語言之任何組合撰寫的原始碼或目標碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言及諸如「C」程式設計語言或類似程式設計語言之習知程序程式設計語言。電腦可讀程式指令可完全在使用者電腦系統之電腦上執行、作為獨立套裝軟體部分在使用者電腦系統之電腦上執行,部分在使用者電腦系統之電腦上及部分在遠端電腦上執行,或完全在遠端電腦或伺服器上執行。在後一情境下,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者電腦系統之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,電子電路系統(包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉
由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器以產生機器,使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之手段。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令可引導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得其中儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區塊中指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施之處理程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之各區塊可表示模組、區段或指令之部分,其包含用於實施一或多個指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中提及的功能可不按諸圖中所提及的次序發生。舉例而言,視所涉及之功能性而定,依次展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可以逆向次序執行。亦將注意,可由執行經指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或
流程圖說明中之每一區塊,及方塊圖及/或流程圖說明中之區塊的組合。
上文所描述之特徵之可能組合可如下:
1.一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之方法,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷
目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,由該匯流排附接裝置更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,由該匯流排附接裝置將該中斷信號轉遞至該目標處理器。
2.如條項1之方法,指派給相同匯流排連接模組之該等中斷信號指示符各自包含在包含該各別中斷信號指示符的該經引導中斷信號向量內之相同位移。
3.如先前條項中任一項之方法,該等經引導中斷信號向量各自實施為記憶體中之一相鄰區域。
4.如先前條項中任一項之方法,該等經引導中斷信號指示符各自實施為一單一位元。
5.如先前條項中任一項之方法,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該所接收中斷目標ID之一中斷表項目之一複本,該中斷表項目包含指示指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量之一記憶體位址的一經引導中斷信號向量位址指示符,該匯流排附接裝置使用該各別經引導中斷信號向量之該記憶體位址來選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量。
6.如條項5之方法,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一裝置表擷取一裝置表項目之一複本,該裝置表項目包
含指示該中斷表之一記憶體位址之一中斷表位址指示符,該匯流排附接裝置使用該中斷表之該記憶體位址來擷取該中斷表項目之該第一複本。
7.如條項6之方法,該裝置表項目進一步包含指示指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符之一位移的一經引導中斷信號位移指示符。
8.如先前條項中任一項之方法,該記憶體進一步包含具有每一中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,指派給一中斷目標ID之每一經引導中斷摘要指示符指示是否存在待處置之定址至該各別中斷目標ID之一中斷信號,該方法進一步包含:由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要指示符,由該匯流排附接裝置更新該所選經引導中斷摘要指示符,使得該所選經引導中斷摘要指示符指示存在待處置的定址至該各別中斷目標ID之一中斷信號。
9.如條項8之方法,該經引導中斷摘要向量實施為記憶體中之一相鄰區域。
10.如條項8至9中任一項之方法,該等經引導中斷摘要指示符各自實施為一單一位元。
11.如條項8至10中任一項之方法,該中斷表項目進一步包含指示該經引導中斷摘要向量之一記憶體位址的一經引導中斷摘要向量位址指示符,該匯流排附接裝置使用該經引導中斷摘要向量之該記憶體位址用於選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要
指示符。
12.如條項8至11中任一項之方法,該中斷表項目進一步包含指示該經引導中斷摘要向量內指派給該目標處理器ID之該經引導中斷摘要指示符的一位移之一經引導中斷摘要位移指示符。
13.如前述條項中任一項之方法,該方法進一步包含:由該匯流排附接裝置將隨該中斷信號一起接收的該目標處理器之該中斷目標ID轉譯為該目標處理器之一邏輯處理器ID;及使用該目標處理器之該邏輯處理器ID來在將該中斷信號轉遞至該目標處理器時將該目標處理器定址為該中斷信號之目標。
14.如條項11至13中任一項之方法,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該中斷目標ID的一中斷表項目之一複本,該中斷表項目之該複本進一步包含該中斷目標ID至一第一邏輯處理器ID之一當前映射,該匯流排附接裝置使用該中斷表項目之該複本用於轉譯隨該中斷信號一起接收的該目標處理器之該中斷目標ID。
15.如先前條項中任一項之方法,該裝置表項目之該複本進一步包含指示是否將直接定址該目標處理器之一直接傳訊指示符,該直接傳訊指示符指示該中斷信號之一直接轉遞為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之一要求,否則使用廣播執行該轉遞。
16.如先前條項中任一項之方法,該中斷表項目之該複本進一步包含一執行指示符之一複本,其指示由該中斷目標ID識別之該目標處理器是否經排程以供該客體作業系統使用,該目標處理器經排程以供該客體作業系統使用為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執
行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
17.如先前條項中任一項之方法,該中斷表項目之該複本進一步包含一中斷封鎖指示符,其指示由該中斷目標ID識別之該目標處理器當前是否被封鎖而不能接收中斷信號,該目標處理器未被封鎖為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
18.如先前條項中任一項之方法,該裝置表項目進一步包含識別一邏輯分割區之一邏輯分割區ID,將該客體作業系統指派給該邏輯分割區,由該匯流排附接裝置轉遞該中斷信號進一步包含隨該中斷信號一起轉遞該邏輯分割區ID。
19.如先前條項中任一項之方法,該方法進一步包含由該匯流排附接裝置擷取識別一中斷子類別之一中斷子類別ID,將所接收之該中斷信號指派給該中斷子類別,由該匯流排附接裝置轉遞該中斷信號進一步包含隨該中斷信號一起轉遞該中斷子類別ID。
20.一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之電腦系統,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器
進一步經指派有由作業系統及該一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦系統經組態以執行一方法,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,將該中斷信號轉遞至該目標處理器。
21.一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之電腦程式產品,該電腦系統進一步包含經由一匯流排及一匯流排附
接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦程式產品包含可由一處理電路讀取之一非暫時性電腦可讀媒體且儲存指令以供該處理電路執行以用於執行一方法,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指
示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,將該中斷信號轉遞至該目標處理器。
160:經引導中斷摘要向量(DISB)
161:項目
162:經引導中斷信號向量(DIBV)
163:項目
Claims (20)
- 一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之方法,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷 目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,由該匯流排附接裝置更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,由該匯流排附接裝置將該中斷信號轉遞至該目標處理器,其中,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該所接收中斷目標ID之一中斷表項目之一複本,該中斷表項目包含指示指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量之一記憶體位址的一經引導中斷信號向量位址指示符,該匯流排附接裝置使用該各別經引導中斷信號向量之該記憶體位址來選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量。
- 如請求項1之方法,指派給相同匯流排連接模組之該等中斷信號指示符各自包含在包含該各別中斷信號指示符的該經引導中斷信號向量內之相同位移。
- 如請求項1之方法,該等經引導中斷信號向量各自實施為記憶體中之一相鄰區域。
- 如請求項1之方法,該等經引導中斷信號指示符各自實施為一單一位 元。
- 如請求項1之方法,該方法進一步包含藉由該匯流排附接裝置自儲存於該記憶體中之一裝置表擷取一裝置表項目之一複本,該裝置表項目包含指示該中斷表之一記憶體位址之一中斷表位址指示符,該匯流排附接裝置使用該中斷表之該記憶體位址來擷取該中斷表項目之該第一複本。
- 如請求項5之方法,該裝置表項目進一步包含指示指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符之一位移的一經引導中斷信號位移指示符。
- 如請求項1之方法,該記憶體進一步包含具有每一中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,指派給一中斷目標ID之每一經引導中斷摘要指示符指示是否存在待處置之定址至該各別中斷目標ID之一中斷信號,該方法進一步包含:由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要指示符,由該匯流排附接裝置更新該所選經引導中斷摘要指示符,使得該所選經引導中斷摘要指示符指示存在待處置的定址至該各別中斷目標ID之一中斷信號。
- 如請求項7之方法,該經引導中斷摘要向量實施為記憶體中之一相鄰 區域。
- 如請求項7之方法,該等經引導中斷摘要指示符各自實施為一單一位元。
- 如請求項7之方法,該中斷表項目進一步包含指示該經引導中斷摘要向量之一記憶體位址的一經引導中斷摘要向量位址指示符,該匯流排附接裝置使用該經引導中斷摘要向量之該記憶體位址來選擇指派給該所接收中斷信號定址至的該目標處理器ID之該經引導中斷摘要指示符。
- 如請求項7之方法,該中斷表項目進一步包含指示該經引導中斷摘要向量內指派給該目標處理器ID之該經引導中斷摘要指示符的一位移之一經引導中斷摘要位移指示符。
- 如請求項1之方法,該方法進一步包含:由該匯流排附接裝置將隨該中斷信號一起接收的該目標處理器之該中斷目標ID轉譯為該目標處理器之一邏輯處理器ID;及使用該目標處理器之該邏輯處理器ID來在將該中斷信號轉遞至該目標處理器時將該目標處理器定址為該中斷信號之目標。
- 如請求項10之方法,該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該中斷目標ID的一中斷表項目之一複本,該中斷表項目之該複本進一步包含該中斷目標ID至一第一邏輯處理器ID之一當前映射,該匯流排附接裝置使用該中斷表項目之該複本來轉譯隨 該中斷信號一起接收的該目標處理器之該中斷目標ID。
- 如請求項1之方法,該裝置表項目之一複本包含指示是否將直接定址該目標處理器之一直接傳訊指示符,該直接傳訊指示符指示該中斷信號之一直接轉遞為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之一要求,否則使用廣播執行該轉遞。
- 如請求項1之方法,該中斷表項目之一複本包含一執行指示符之一複本,該執行指示符指示由該中斷目標ID識別之該目標處理器是否經排程以供該客體作業系統使用,該目標處理器經排程以供該客體作業系統使用為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
- 如請求項1之方法,該中斷表項目之一複本包含一中斷封鎖指示符,其指示由該中斷目標ID識別之該目標處理器當前是否被封鎖而不能接收中斷信號,該目標處理器未被封鎖為使用直接定址該目標處理器的該目標處理器之邏輯處理器ID執行該中斷信號之該轉遞之另一要求,否則轉遞使用廣播處置至該第一作業系統之該中斷信號。
- 如請求項1之方法,該裝置表項目進一步包含識別一邏輯分割區之一邏輯分割區ID,將該客體作業系統指派給該邏輯分割區,藉由該匯流排附接裝置之該中斷信號之該轉遞進一步包含隨該中斷信號一起轉遞該邏輯分 割區ID。
- 如請求項1之方法,該方法進一步包含由該匯流排附接裝置擷取識別一中斷子類別之一中斷子類別ID,將該所接收中斷信號指派給該中斷子類別,藉由該匯流排附接裝置之該中斷信號之該轉遞進一步包含隨該中斷信號一起轉遞該中斷子類別ID。
- 一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之電腦系統,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由作業系統及該一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦系統經組態以執行一方法,其包含: 由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,將該中斷信號轉遞至該目標處理器,其中該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該所接收中斷目標ID之一中斷表項目之一複本,該中斷表項目包含指示指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量之一記憶體位址的一經引導中斷信號向量位址指示符,該匯流排附接裝置使用該各別經引導中斷信號向量之該記憶體位址來選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量。
- 一種用於將一中斷信號提供至使用經指派以供一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該客體作業系統之電腦程式產品,該電腦系統進一步包含經由一匯流排及一匯流排附接裝 置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該作業系統及一或多個匯流排連接模組使用以定址該各別處理器之一中斷目標ID,該記憶體包含指派給該各別中斷目標ID之每一中斷目標ID之一經引導中斷信號向量,每一經引導中斷信號向量包含指派給該各別匯流排連接模組之每一匯流排連接模組之一經引導中斷信號指示符,每一經引導中斷信號向量指示是否存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID的一中斷信號,該電腦程式產品包含可由一處理電路讀取之一非暫時性電腦可讀媒體且儲存指令以供該處理電路執行以用於執行一方法,其包含:由該匯流排附接裝置藉由一中斷目標ID自該等匯流排連接模組中的該等匯流排連接模組中之一者接收一中斷信號,該中斷目標ID識別經指派以供該客體作業系統用作一目標處理器以用於處置該中斷信號之該等處理器中之一者,由該匯流排附接裝置選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量,由該匯流排附接裝置在該所選經引導中斷信號向量中選擇指派給發佈該所接收中斷信號之該匯流排連接模組的該經引導中斷信號指示符,更新該所選經引導中斷信號指示符,使得該各別經引導中斷信號指 示符指示存在等待處置之由該各別匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號,將該中斷信號轉遞至該目標處理器,其中該方法進一步包含由該匯流排附接裝置自儲存於該記憶體中之一中斷表擷取指派給該所接收中斷目標ID之一中斷表項目之一複本,該中斷表項目包含指示指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量之一記憶體位址的一經引導中斷信號向量位址指示符,該匯流排附接裝置使用該各別經引導中斷信號向量之該記憶體位址來選擇指派給該所接收中斷信號定址至的該中斷目標ID之該經引導中斷信號向量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19157104 | 2019-02-14 | ||
EP19157104.1 | 2019-02-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202046102A TW202046102A (zh) | 2020-12-16 |
TWI764082B true TWI764082B (zh) | 2022-05-11 |
Family
ID=65529251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109101482A TWI764082B (zh) | 2019-02-14 | 2020-01-16 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
Country Status (8)
Country | Link |
---|---|
US (2) | US10922111B2 (zh) |
EP (1) | EP3924824A1 (zh) |
JP (1) | JP7398465B2 (zh) |
KR (1) | KR102672582B1 (zh) |
CN (1) | CN113439261A (zh) |
SG (1) | SG11202105504PA (zh) |
TW (1) | TWI764082B (zh) |
WO (1) | WO2020164936A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI764082B (zh) | 2019-02-14 | 2022-05-11 | 美商萬國商業機器公司 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
EP3924817A1 (en) | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt virtualization |
TWI759677B (zh) | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
TWI727607B (zh) | 2019-02-14 | 2021-05-11 | 美商萬國商業機器公司 | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
IL284681B2 (en) | 2019-02-14 | 2024-03-01 | Ibm | INTENDED DISRUPTION FOR MULTILEVEL VIRTUALIZATION |
CN113454591A (zh) | 2019-02-14 | 2021-09-28 | 国际商业机器公司 | 具有阻止指示符的定向中断虚拟化 |
CN113412473A (zh) | 2019-02-14 | 2021-09-17 | 国际商业机器公司 | 具有中断表的用于多级虚拟化的定向中断 |
WO2020164935A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt virtualization with running indicator |
KR20210066288A (ko) * | 2019-11-28 | 2021-06-07 | 한국전자통신연구원 | 전자 장치, 인터럽트 설정 제어 방법 및 저장 매체 |
CN115292219B (zh) * | 2022-10-10 | 2023-01-10 | 三未信安科技股份有限公司 | 一种在RISC-V平台中实现PCIe MSI中断的***及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110197003A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Interrupt Virtualization |
US20110320664A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Controlling a rate at which adapter interruption requests are processed |
US20160117190A1 (en) * | 2014-10-28 | 2016-04-28 | Intel Corporation | Virtual Processor Direct Interrupt Delivery Mechanism |
TW201633146A (zh) * | 2014-11-25 | 2016-09-16 | 英特爾公司 | 後置中斷架構 |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4037723C2 (de) * | 1990-11-27 | 1995-04-06 | Siemens Ag | Verfahren zum Übermitteln von an mehreren Datenschnittstellen einer prozessorgesteuerten Einrichtung vorliegenden Informationen an deren Prozessoreinrichtung |
GB2339035B (en) * | 1998-04-29 | 2002-08-07 | Sgs Thomson Microelectronics | A method and system for transmitting interrupts |
US7620955B1 (en) | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US7028302B2 (en) * | 2002-04-24 | 2006-04-11 | Hewlett-Packard Development Company, L.P. | System and method for automatically tuning a multiprocessor computer system |
US20030204655A1 (en) * | 2002-04-24 | 2003-10-30 | Schmisseur Mark A. | Prioritizing vector generation in interrupt controllers |
US7281075B2 (en) | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
US20050080982A1 (en) | 2003-08-20 | 2005-04-14 | Vasilevsky Alexander D. | Virtual host bus adapter and method |
US7222203B2 (en) | 2003-12-08 | 2007-05-22 | Intel Corporation | Interrupt redirection for virtual partitioning |
US7386640B2 (en) | 2004-12-28 | 2008-06-10 | Intel Corporation | Method, apparatus and system to generate an interrupt by monitoring an external interface |
US8238376B2 (en) | 2005-04-13 | 2012-08-07 | Sony Corporation | Synchronized audio/video decoding for network devices |
US7447820B2 (en) | 2005-09-30 | 2008-11-04 | Intel Corporation | Retargeting of platform interrupts |
US9032127B2 (en) * | 2006-09-14 | 2015-05-12 | Hewlett-Packard Development Company, L.P. | Method of balancing I/O device interrupt service loading in a computer system |
US20080162762A1 (en) * | 2006-12-29 | 2008-07-03 | Gilbert Neiger | Interrupt remapping based on requestor identification |
US8453143B2 (en) | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US9037768B2 (en) | 2008-04-28 | 2015-05-19 | Hewlett-Packard Development Company, L.P. | Virtual-interrupt-mode interface and method for virtualizing an interrupt mode |
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 |
CN101427916B (zh) | 2008-12-05 | 2012-02-22 | 张锦景 | 电生理数据与病理图像监测的移动网络终端装置及方法 |
US8635387B2 (en) * | 2009-10-09 | 2014-01-21 | Emulex Design & Manufacturing Corporation | Enhanced I/O performance in a multi-processor system via interrupt affinity schemes |
US8566492B2 (en) * | 2009-12-31 | 2013-10-22 | Intel Corporation | Posting interrupts to virtual processors |
US8381002B2 (en) | 2010-06-23 | 2013-02-19 | International Business Machines Corporation | Transparently increasing power savings in a power management environment |
KR20120042354A (ko) | 2010-10-25 | 2012-05-03 | 한국전자통신연구원 | 위성통신 시스템용 중심국의 이중모드 망동기 장치 및 그 방법 |
CN102184122B (zh) | 2011-05-16 | 2014-04-23 | 曙光信息产业股份有限公司 | 一种龙芯CPU主板bios及中断的实现方法 |
US8495267B2 (en) | 2010-11-24 | 2013-07-23 | International Business Machines Corporation | Managing shared computer memory using multiple interrupts |
US8612659B1 (en) | 2010-12-14 | 2013-12-17 | Vmware, Inc. | Hardware interrupt arbitration in virtualized computer systems |
US8601194B2 (en) * | 2011-02-08 | 2013-12-03 | Red Hat Israel, Ltd. | On-demand interrupt vector allocation based on activity detection |
JP5737050B2 (ja) * | 2011-08-15 | 2015-06-17 | 富士通株式会社 | 情報処理装置、割込み制御方法および割込み制御プログラム |
US8631181B2 (en) | 2011-09-26 | 2014-01-14 | Oracle International Corporation | Validating message-signaled interrupts by tracking interrupt vectors assigned to devices |
US8874786B2 (en) | 2011-10-25 | 2014-10-28 | Dell Products L.P. | Network traffic control by association of network packets and processes |
US8910158B2 (en) | 2011-12-14 | 2014-12-09 | Intel Corporation | Virtualizing interrupt priority and delivery |
US20130318268A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Offloading of computation for rack level servers and corresponding methods and systems |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9436626B2 (en) | 2012-08-09 | 2016-09-06 | Freescale Semiconductor, Inc. | Processor interrupt interface with interrupt partitioning and virtualization enhancements |
US9043521B2 (en) * | 2012-11-13 | 2015-05-26 | Intel Corporation | Technique for communicating interrupts in a computer system |
US10078603B2 (en) | 2012-11-30 | 2018-09-18 | Red Hat Israel, Ltd. | MSI events using dynamic memory monitoring |
WO2014120113A1 (en) | 2013-01-29 | 2014-08-07 | Hewlett-Packard Development Company | Assigning processors to memory mapped configuration |
US9235538B2 (en) | 2013-02-07 | 2016-01-12 | Red Hat Israel, Ltd. | Injecting interrupts in virtualized computer systems |
US9830286B2 (en) | 2013-02-14 | 2017-11-28 | Red Hat Israel, Ltd. | Event signaling in virtualized systems |
US9378162B2 (en) | 2013-05-21 | 2016-06-28 | Arm Limited | Handling and routing interrupts to virtual processors |
US9384132B2 (en) | 2013-06-28 | 2016-07-05 | Intel Corporation | Emulated message signaled interrupts in a virtualization environment |
JP6029550B2 (ja) * | 2013-07-19 | 2016-11-24 | 株式会社日立製作所 | 計算機の制御方法及び計算機 |
US9465760B2 (en) * | 2013-11-18 | 2016-10-11 | Futurewei Technologies, Inc. | Method and apparatus for delivering MSI-X interrupts through non-transparent bridges to computing resources in PCI-express clusters |
US9756118B2 (en) | 2014-04-28 | 2017-09-05 | Vmware, Inc. | Virtual performance monitoring decoupled from hardware performance-monitoring units |
US9607740B2 (en) | 2014-05-06 | 2017-03-28 | Toyota Jidosha Kabushiki Kaisha | Hard-soft magnetic MnBi/SiO2/FeCo nanoparticles |
US9772868B2 (en) | 2014-09-16 | 2017-09-26 | Industrial Technology Research Institute | Method and system for handling interrupts in a virtualized environment |
WO2016056060A1 (ja) * | 2014-10-07 | 2016-04-14 | 株式会社日立製作所 | 計算機及びベクタの設定方法 |
US9697029B2 (en) | 2014-10-30 | 2017-07-04 | Red Hat Israel, Ltd. | Guest idle based VM request completion processing |
US9910700B2 (en) | 2015-08-26 | 2018-03-06 | Netapp, Inc. | Migration between CPU cores |
WO2017094132A1 (ja) * | 2015-12-02 | 2017-06-08 | 株式会社日立製作所 | 計算機および計算機の制御方法 |
KR102509986B1 (ko) | 2016-03-28 | 2023-03-14 | 삼성전자주식회사 | 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법 |
US10282327B2 (en) | 2017-01-19 | 2019-05-07 | International Business Machines Corporation | Test pending external interruption instruction |
US10210112B2 (en) | 2017-06-06 | 2019-02-19 | International Business Machines Corporation | Techniques for issuing interrupts in a data processing system with multiple scopes |
US20180356964A1 (en) | 2017-06-07 | 2018-12-13 | Sitting Man, Llc | Methods, systems, and computer program products for intergrating configuration, monitoring, and operations |
US10838760B2 (en) * | 2017-11-29 | 2020-11-17 | Nxp Usa, Inc. | Systems and methods for interrupt distribution |
IL284681B2 (en) | 2019-02-14 | 2024-03-01 | Ibm | INTENDED DISRUPTION FOR MULTILEVEL VIRTUALIZATION |
TWI759677B (zh) | 2019-02-14 | 2022-04-01 | 美商萬國商業機器公司 | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
TWI727607B (zh) | 2019-02-14 | 2021-05-11 | 美商萬國商業機器公司 | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 |
EP3924817A1 (en) | 2019-02-14 | 2021-12-22 | International Business Machines Corporation | Directed interrupt virtualization |
WO2020164935A1 (en) | 2019-02-14 | 2020-08-20 | International Business Machines Corporation | Directed interrupt virtualization with running indicator |
TWI764082B (zh) | 2019-02-14 | 2022-05-11 | 美商萬國商業機器公司 | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 |
CN113454591A (zh) | 2019-02-14 | 2021-09-28 | 国际商业机器公司 | 具有阻止指示符的定向中断虚拟化 |
CN113412473A (zh) | 2019-02-14 | 2021-09-17 | 国际商业机器公司 | 具有中断表的用于多级虚拟化的定向中断 |
-
2020
- 2020-01-16 TW TW109101482A patent/TWI764082B/zh active
- 2020-02-03 WO PCT/EP2020/052542 patent/WO2020164936A1/en unknown
- 2020-02-03 KR KR1020217024369A patent/KR102672582B1/ko active IP Right Grant
- 2020-02-03 CN CN202080013261.0A patent/CN113439261A/zh active Pending
- 2020-02-03 JP JP2021541699A patent/JP7398465B2/ja active Active
- 2020-02-03 EP EP20702040.5A patent/EP3924824A1/en active Pending
- 2020-02-03 SG SG11202105504PA patent/SG11202105504PA/en unknown
- 2020-02-13 US US16/789,581 patent/US10922111B2/en active Active
- 2020-11-06 US US17/091,498 patent/US11314538B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110197003A1 (en) * | 2010-02-05 | 2011-08-11 | Serebrin Benjamin C | Interrupt Virtualization |
US20110320664A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Controlling a rate at which adapter interruption requests are processed |
US20160117190A1 (en) * | 2014-10-28 | 2016-04-28 | Intel Corporation | Virtual Processor Direct Interrupt Delivery Mechanism |
TW201633146A (zh) * | 2014-11-25 | 2016-09-16 | 英特爾公司 | 後置中斷架構 |
Also Published As
Publication number | Publication date |
---|---|
WO2020164936A1 (en) | 2020-08-20 |
EP3924824A1 (en) | 2021-12-22 |
KR102672582B1 (ko) | 2024-06-07 |
US20210055945A1 (en) | 2021-02-25 |
JP2022520526A (ja) | 2022-03-31 |
US10922111B2 (en) | 2021-02-16 |
KR20210107856A (ko) | 2021-09-01 |
US20200264911A1 (en) | 2020-08-20 |
TW202046102A (zh) | 2020-12-16 |
JP7398465B2 (ja) | 2023-12-14 |
SG11202105504PA (en) | 2021-06-29 |
CN113439261A (zh) | 2021-09-24 |
US11314538B2 (en) | 2022-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI759677B (zh) | 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 | |
TWI764082B (zh) | 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品 | |
TWI727607B (zh) | 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品 | |
JP7459119B2 (ja) | 割り込みテーブルを使用したマルチレベルの仮想化のための有向割り込み方法、システム、プログラム | |
JP7335339B2 (ja) | 有向割り込みの仮想化方法、システム、プログラム | |
TWI731554B (zh) | 用於多層虛擬化之經引導中斷 | |
JP7450627B2 (ja) | 実行中インジケータを使用した有向割り込みの仮想化方法、システム、プログラム | |
JP7448550B2 (ja) | ブロッキング・インジケータを使用した有向割り込みの仮想化方法、システム、プログラム | |
CN113439267B (zh) | 具有应变方案的定向中断虚拟化 |