TWI731554B - 用於多層虛擬化之經引導中斷 - Google Patents

用於多層虛擬化之經引導中斷 Download PDF

Info

Publication number
TWI731554B
TWI731554B TW109101665A TW109101665A TWI731554B TW I731554 B TWI731554 B TW I731554B TW 109101665 A TW109101665 A TW 109101665A TW 109101665 A TW109101665 A TW 109101665A TW I731554 B TWI731554 B TW I731554B
Authority
TW
Taiwan
Prior art keywords
interrupt
operating system
target
assigned
processor
Prior art date
Application number
TW109101665A
Other languages
English (en)
Other versions
TW202040567A (zh
Inventor
伯納德 納茲
馬可 克雷莫
克里斯多夫 拉奇
多納德 席米得
彼得 杜魯威
Original Assignee
美商萬國商業機器公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商萬國商業機器公司 filed Critical 美商萬國商業機器公司
Publication of TW202040567A publication Critical patent/TW202040567A/zh
Application granted granted Critical
Publication of TWI731554B publication Critical patent/TWI731554B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

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)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

本發明係關於一種用於將一中斷信號提供至一第一客體作業系統之方法。一匯流排附接裝置藉由一中斷目標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轉譯為一邏輯處理器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本身,亦可使用某一其他唯一的ID,該唯一的ID使用第二虛擬處理器ID導出及/或明確地指派至各別第二虛擬處理器ID。
根據實施例,匯流排連接模組,例如PCIe功能,在不指派至第一層客體之情況下可指派給確切一個第二層客體。
實施例可具有最小化對現有多層超管理器實施之影響的有益效應。
根據實施例,一或多個轉遞向量由第一層作業系統提供。轉遞向量儲存在保留供第一層作業系統使用之記憶體區段中。轉遞向量之數目可取決於在第二層超管理器上執行之第二層作業系統之數目。每第二層客體作業系統之轉遞向量可具備指派給第二客體作業系統中之一者的每一轉遞向量。轉遞向量之項目可用於指示存在由各別轉遞向量指派給之第二層客體系統處置之中斷信號。
轉遞向量之項目可各自參看指派給第二層客體作業系統之一或多個中斷摘要向量之項目。每一中斷摘要向量儲存在記憶體區段中,該記憶體區段經保留供各別中斷摘要向量指派給之第二層作業系統使用。
轉遞向量包含指派給中斷目標ID之項目,該等中斷目標ID由一或多個匯流排連接模組使用以識別為中斷信號目標處理器之目標,該等目標經指派供各別轉遞向量指派給之第二層客體作業系統使用。另外,各別轉遞向量之此等項目各自參看指派給相同目標處理器之第二層客體作業系統的中斷摘要向量之項目。具有指派給個別目標處理器之項目的中斷摘要向量可用作直接中斷摘要向量,此係由於其項目提供對個別目標處理器之直接參考。
指派給由目標ID識別的目標處理器之轉遞向量的項目可藉由匯流排附接裝置更新以指示存在由使用各別目標處理器之第二層客體系統處置的中斷信號。基於對第二層客體作業系統之記憶體區段中之直接中斷摘要向量的項目之參考,可判定是否存在由經指派以供第二層客體作業系統使用之目標處理器處置的中斷信號。舉例而言,根據經引用項目在直接中斷摘要向量中之位置,可判定目標處理器之中斷目標ID。
實施例可具有以下有益效應:提供兩個至少部分類似的向量結構,一個用於第一層客體作業系統,亦即轉遞向量,且另一個用於第二層客體作業系統,亦即直接中斷摘要向量。兩個向量結構包含指派給彼此及目標處理器之項目。因此,藉由兩個向量結構之項目,向客體作業系統中之每一者提供關於哪些處理器存在待處置的中斷信號之資訊。在無經指派供第二層作業系統使用的處理器可用之狀況下,第一層作業系統可接管並基於轉遞向量判定待處置之中斷信號係針對經指派以供第二層作業系統使用的哪一目標處理器。在停用目標處理器之狀況下,第一層作業系統可觸發目標處理器之排程,使得其可處置各別中斷信號。
實施例可具有使得匯流排附接裝置能夠直接定址目標處理器之有益效應。因此,發佈之匯流排連接模組可以中斷信號為目標,從而將目標處理器ID選擇給多處理器電腦系統之特定處理器,亦即目標處理器。舉例而言,可針對中斷信號將之前已執行與中斷相關之活動之處理器選擇為目標處理器。與各別活動由同一處理器處置中斷信號可產生效能優勢,由於在同一處理器亦處置中斷信號之狀況下,在此中斷之背景下之所有資料可能已經可用於處理器及/或儲存於本端快取中,從而使得能夠對各別處理器進行快速存取而無需大量的快取流量。
因此,可避免中斷信號之廣播,對於這種廣播,不能保證最終將處置中斷之處理器自效能角度(如快取流量最小化)來看最適合於此任務。可直接將中斷信號提供至目標處理器,而非將中斷信號呈現給所有處理器,使每一處理器嘗試處置中斷信號且一個處理器獲得勝利,從而提高中斷信號處置之效率。
可使用經引導中斷實施中斷機制。當將供處置之中斷信號轉遞至其由發佈之匯流排連接模組定義之目標處理器時,可啟用匯流排附接裝置以使用目標處理器之邏輯處理器ID直接定址目標處理器。藉由匯流排連接裝置將中斷目標ID轉譯為邏輯處理器ID可進一步確保自客體作業系統角度來看,始終定址同一處理器,即使中斷目標ID與邏輯處理器ID之間的映射或經排程以供客體作業系統使用之處理器之選擇可由超管理器變更。
當例如因為超管理器尚未排程目標處理器而無法直接遞送中斷時,客體作業系統可藉由使用廣播遞送具有最初預期的親和力之中斷(亦即,該中斷意圖針對哪一處理器之資訊)而受益。在此狀況下,匯流排附接裝置可在設定DIBV之後且在將廣播中斷請求遞送至客體作業系統之前設定指定DISB中之目標處理器的位元。若客體作業系統接收廣播中斷請求,則其因此可藉由掃描並停用DISB中之直接中斷摘要指示符(例如掃描並重設直接中斷摘要位元)來進行識別,該等目標處理器具有未決為在DIBV中傳訊之中斷信號。可因而使得客體作業系統能夠決定中斷信號是否由接收廣播之當前處理器處置或進一步轉遞至原始目標處理器。
根據一實施例,以包含目標處理器之中斷目標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架構。換言之,對中斷信號路由機制之變更可實施於超管理器及匯流排連接模組外部。
根據實施例,本文中亦稱為轉遞DISB向量之用於每一第二層客體作業系統之轉遞向量可在指派給第一層客體作業系統之記憶體的區段中提供。
轉遞向量與本文中亦稱為DISB向量之直接中斷摘要向量及/或本文中亦稱為AISB向量之中斷摘要向量之間的引用可使用客體中斷表(GAIT)及/或客體中斷狀態區域(GISA)來實施,兩者均在指派給第一層客體作業系統之記憶體的區段中提供。
舉例而言,轉遞向量之每一項目可參看GAIT中之項目。GAIT項目可各自包含記憶體位址指示符,其指示第二層客體作業系統的DISB向量之項目或AISB向量之項目。此外,GAIT項目可向經引導至第二層客體作業系統之中斷請求提供第二層客體作業系統的中斷子類別ID。此外,可提供每客體之GISA,其代管第二層客體作業系統之每中斷子類別的經引導至第二層客體作業系統之浮動中斷請求的未決中斷指示符。
轉遞DISB中之個別項目,例如位元,可表示用於個別目標處理器之活動,亦即中斷,其可指派給個別第二層客體作業系統。
此外,轉遞DISB可包含額外項目,例如額外位元,其中之每一者可表示例如PCIe功能之個別匯流排連接模組的活動,亦即中斷請求,其可指派給個別第二層客體作業系統。
處理器之韌體,例如毫碼(millicode),可喚醒第二層客體作業系統,並且藉由掃描由第一層客體作業系統提供之轉遞DISB及GAIT中之資料查詢來啟用各別第二層客體作業系統之DISB向量中的項目,該資料查詢指示將設定各別第二層客體作業系統之DISB向量中的哪一項目以便反映關於哪一目標處理器存在待由喚醒的第二層客體作業系統處置之中斷的資訊。
使用此機制,可將其自任一轉遞向量項目映射至轉遞向量亦指派給之相同第二層客體作業系統的DISB向量之任一項目。
根據實施例,若供第一層客體作業系統使用且指派給各別項目之目標處理器不執行並且廣播經初始化,則第一層客體作業系統之DISB向量中之項目可僅需要被啟用,例如,位元需要被設定。
此機制可被再使用以啟用第二層客體作業系統之DISB向量中之項目,該第二層客體作業系統使用指派給相同第二層客體作業系統且由第一層客體作業系統提供之轉遞DISB向量。若目標處理器不執行並且廣播經初始化,則參看指派給個別目標處理器之第二層客體作業系統之DISB向量的項目之轉遞DISB向量的項目可僅需要被啟用,例如,位元需要被設定。
此機制因此可有效地將由第一層客體作業系統使用之中斷目標ID映射至由第二層客體作業系統使用之中斷目標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)中。
根據實施例,可執行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所識別的目標處理器是否經排程以供客體作業系統使用。執行指示符可例如以執行位元形式實施,該執行位元亦即指示經指派有各別位元之處理器是否正執行,亦即是否經排程以供客體作業系統使用的單一位元。因此,經啟用執行位元可告知匯流排附接裝置目標處理器當前經排程,而經停用執行位元可告知匯流排附接裝置目標處理器當前未經排程。在目標處理器未執行之狀況下,匯流排附接裝置可以正確方式發送後饋廣播中斷請求,而不會嘗試直接定址處理器中之一者。
根據一實施例,執行指示符經實施為單一位元。實施例可具有以下有益效應:以最小化記憶體空間且可快速並有效地處理之形式提供執行指示符。
根據實施例,直接中斷封鎖指示符經引入在記憶體中之中斷表的中斷項目中。直接中斷封鎖指示符可以單一位元,亦即dIBPIA位元,之形式來實施。
根據實施例,自記憶體提取IRTE,檢查執行指示符以便判定目標處理器是否經排程。在目標處理器經排程之狀況下,啟用直接中斷封鎖指示符,以便封鎖目標處理器在處置當前中斷信號的同時接收另一中斷信號。另一中斷信號可另外干擾當前中斷信號之處置。為了確保目標處理器尚未同時經重新排程,IRTE經重新提取,且當前執行指示符經再次檢查以便判定目標處理器是否仍經排程。在目標處理器仍然經排程之狀況下,可使用目標處理器之直接定址目標處理器之邏輯處理器ID將中斷信號轉遞至目標處理器。另外,可檢查由IRTE針對所接收之中斷目標ID提供之目標處理器之邏輯處理器ID是否仍然相同。
根據一實施例,中斷表由第二記憶體區段包含。實施例可具有以下有益效應:確保足夠記憶體空間以供中斷表處置,即使在大量處理器之狀況下。實施例可具有以下有益效應:為多層虛擬化提供轉遞機制以支援直接中斷轉遞以及廣播。實施例可具有以下有益效應:指派給第二層客體作業系統之中斷表儲存在指派給第一層客體作業系統之記憶體區段中。
根據實施例,指派給第一層客體作業系統之中斷表儲存在亦稱為硬體系統區域(HSA)之記憶體的內部區段中,該內部區段為經保留供硬體使用之記憶體的區域。HSA可包含固定大小並自用戶端購買的記憶體(亦即可指派至主機及/或客體作業系統之記憶體)隔離。
根據實施例,每一用於識別處理器之中斷目標ID可能需要中斷表項目。因此,用於儲存中斷表所需之記憶體的量與中斷目標ID之數目相關且可增加至難以使用HSA處置的大小。
實施例可進一步提供安全檢查以防止由於第一層客體作業系統或超管理未經允許變更的中斷表項目之造成的錯誤,該等變更包括自作業系統至硬體的中斷傳訊之結束。由於藉由將中斷表儲存在指派給第一層作業系統之記憶體的區段中,因此可能出現第一層作業系統變更中斷表的風險。
根據實施例,提供中斷目標ID與邏輯處理器ID之間的映射之中斷表儲存在指派給n層客體作業系統之記憶體的區段中,其中n ≥ 1,例如,1或2。儲存在經保留用於硬體之記憶體的內部區段中之裝置表可包含指派給匯流排連接模組之項目,其提供位址指示符,例如指針,其指示指派給n層客體作業系統(例如第一層客體作業系統)之記憶體區段中之IRT的記憶體位址。
根據一實施例,中斷表項目之經擷取複本進一步包含:第一邏輯分割區ID,其識別第一客體作業系統指派給之邏輯分割區;及第一客體中斷狀態區域位址指示符,其指示第二記憶體區段中之指派給第一客體作業系統的客體中斷狀態區域之記憶體位址。
根據一實施例,該方法進一步包含藉由該匯流排附接裝置自裝置表擷取裝置表項目之複本,該裝置表項目包含指示該中斷表之記憶體位址之中斷表位址指示符,該匯流排附接裝置使用該中斷表之該記憶體位址以供該中斷表項目之第一複本之擷取。
根據一實施例,該裝置表儲存在記憶體之第三記憶體區段中,該第三記憶體區段受保護以免被第一及第二作業系統之存取。此區段可例如為HAS,其確保防止該裝置表被任一客體作業系統篡改。
根據一實施例,該裝置表項目之經擷取複本進一步包含:第二邏輯分割區ID,其識別第一客體作業系統指派給之邏輯分割區;及第二客體中斷狀態區域位址指示符,其指示該第二記憶體區段中之指派給第一客體作業系統之客體中斷狀態區域的記憶體位址,其中該方法進一步包含藉由匯流排附接裝置使用由中斷表項目提供之第一邏輯分割區ID及第一客體中斷狀態區域位址指示符的第一組合、與由儲存在受保護的第三記憶體區段中之裝置表項目提供之第二邏輯分割區ID與第二客體中斷狀態區域位址指示符的第二組合之比較,來檢查儲存在該第二記憶體區段中之可由第二客體作業系統存取之中斷表項目未被第二客體操作系統變更,第一組合及第二組合的匹配指示中斷表項目未變更。
實施例可具有以下有益效應:提供排除中斷表已經篡改之安全機制。
根據一實施例,該裝置表項目進一步包含識別客體作業系統指派給之邏輯分割區的邏輯分割區ID,藉由匯流排附接裝置轉遞第一中斷信號進一步包含運用第一中斷信號轉遞邏輯分割區ID。實施例可具有以下有益效應:使得接收處理器能夠檢查中斷信號經定址至哪一客體作業系統。
根據一實施例,該裝置表項目進一步包含識別第一中斷信號指派給之中斷子類別的中斷子類別ID,藉由匯流排附接裝置轉遞第一中斷信進一步包含運用第一中斷信號轉遞中斷子類別ID。
根據一實施例,該第二記憶體區段進一步包含指派給各別中斷目標ID之每中斷目標ID的第一經引導中斷信號向量,每一經引導第一中斷信號向量包含指派給第一匯流排連接模組之每第一匯流排連接模組的第一中斷信號指示符,每一經引導第一中斷信號向量指示是否存在待處置之由第一匯流排連接模組發佈並且定址至各別中斷目標ID的第一中斷信號,其中該方法進一步包含:藉由匯流排附接裝置選擇指派給第一中斷信號經定址至之中斷目標ID的經引導第一中斷信號向量;藉由匯流排附接裝置在所選的經引導第一中斷信號向量中選擇指派給發佈第一中斷信號之第一匯流排連接模組的經引導第一中斷信號指示符;藉由匯流排附接裝置更新所選的經引導第一中斷信號指示符,使得經更新經引導第一中斷信號指示符指示存在待處置之由第一匯流排連接模組發佈並且定址至各別中斷目標ID的第一中斷信號。
經引導中斷信號向量取決於目標處理器ID來排序,亦即經最佳化以用於跟蹤經引導中斷。換言之,主要次序標準為目標處理器IDS而非識別發佈匯流排連接模組之請求器ID。每一經引導中斷信號向量可包含取決於匯流排連接模組之數目的一或多個經引導中斷信號指示符。
可因此避免指示已經接收到個別中斷信號(例如呈MSI-X訊息形式)的中斷信號指示符(例如呈中斷發信位元形式)在類似於快取行之記憶體之相鄰區域內針對類似於例如PCIe功能之個別匯流排連接模組順序排序。例如藉由設定及/或重設中斷發信位元而啟用及/或停用中斷信號指示符需要將記憶體之各別相鄰區域移動至處理器中之一者以相應地變更各別中斷信號指示符。
可期望處理器處置自客體作業系統角度處理器應負責之所有指示符,亦即詳言之指派給各別處理器之所有指示符。此可實現效能優勢,由於在每一處理器正處置指派給處理器之所有資料之情況下,在此上下文中所需的資料經提供至處理器及/或儲存於本機快取記憶體中的可能性可較高,從而使得能夠對用於處理器之各別資料進行快速存取而無需大量的快取流量。
然而,每一嘗試處置處理器應負責之所有指示符的處理器仍然可導致處理器之間的高快取流量,由於每一處理器需要針對所有功能寫入所有快取行。由於指派給每一個別處理器之指示符可遍及所有相鄰區域,諸如快取行分佈。
中斷發信指示符可以經引導中斷發信向量形式重新排序,使得指派給同一中斷目標ID之所有中斷發信指示符被併入至記憶體之同一相鄰區域,例如快取行中。因此,意欲處置指派給各別處理器(亦即中斷目標ID)之指示符的處理器可僅必須載入記憶體之單一相鄰區域。因此,使用每中斷目標ID之一相鄰區域,而非每匯流排連接模組之一相鄰區域。每一處理器可僅需要針對所有中斷信號(其接收自所有可用匯流排連接模組,以作為由中斷目標ID識別之目標處理器的該特定處理器為目標)掃描並更新記憶體之單一相鄰區域,例如快取行。
根據實施例,可藉由超管理器針對客體作業系統施加位移以對準位元與不同位移。
根據一實施例,該第二記憶體區段進一步包含具有每匯流排連接模組之中斷摘要指示符的中斷摘要向量,指派給匯流排連接模組之每一中斷摘要指示符指示是否存在由各別匯流排連接模組發佈以經處置之中斷信號,轉遞向量包含第二組轉遞向量項目,該第二組轉遞向量項目針對中斷摘要向量之中斷摘要指示符中之每一者包含指派給各別中斷摘要指示符之轉遞向量項目,每一轉遞向量項目指示其指派給之各別中斷摘要指示符是否將經更新以便向第一作業系統指示存在由各別匯流排連接模組發佈以經處置之第一中斷信號,其中該方法進一步包含:由匯流排附接裝置藉由中斷目標ID自第二匯流排連接模組接收第二中斷信號,該中斷目標ID將經指派以供第一客體作業系統使用之處理器中之一者識別為用於處置第二中斷信號之第二目標處理器;藉由匯流排附接裝置檢查第二目標處理器是否經排程以供第一客體作業系統使用;若第二目標處理器經排程以供第一客體作業系統使用,則藉由匯流排附接裝置將經接收中斷目標ID轉譯為邏輯處理器ID並使用由該轉譯產生以直接定址該第二目標處理器之該邏輯處理器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®。
除第一層虛擬化之外,第二層虛擬化亦具備第二超管理器210,其執行於針對第二超管理器210充當主機作業系統之第一層客體作業系統中之一者上。第二超管理器210可管理一或多個第二層虛擬機212,每一虛擬機能夠執行第二層客體作業系統212。
圖3描繪說明將不同類型的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。
圖4描繪說明用於將中斷信號提供至電腦系統100上執行之客體作業系統之方法中的主要參與者的電腦系統100之簡化示意性設置。出於說明目的,簡化設置包含匯流排連接模組(BCM) 120,其將中斷信號發送至在處理器(CPU) 130中之一或多者上執行之客體作業系統。藉由將處理器130中之一者識別為目標處理器之中斷目標ID (IT_ID)將中斷信號發送至匯流排附接裝置110。匯流排附接裝置110為管理電腦系統100之匯流排連接模組120與處理器130以及記憶體140之間的通信的中間裝置。匯流排附接裝置110接收中斷信號並使用中斷目標ID識別目標處理器之邏輯處理器ID以便直接定址各別目標處理器。至目標處理器之經引導轉遞可例如藉由減小快取流量改良資料處理之效率。
圖5描繪圖4的電腦系統100。如記憶體140之分割所說明,存在經實施之兩層虛擬化。記憶體143的第一區段指派給第一層客體作業系統,而記憶體141的第二區段指派給第二層客體作業系統。第二層客體作業系統在充當用於第二層客體作業系統之主機的第一層客體作業系統上執行。為了定址由第二層客體操作使用之處理器,可使用中斷目標ID,其係基於至少兩個映射,亦即亦稱為原生超管理器之第一層超管理器的邏輯處理器ID至第一虛擬處理器ID之第一映射及第一虛擬處理器ID至亦稱為經代管超管理器之第二層超管理器的第二虛擬處理器ID之第二映射,該經代管超管理器由在第一超管理器管理之虛擬機上執行的第一層客體作業系統代管。
匯流排附接裝置110經組態以在記憶體140之模組特定區域(MSA) 149中執行匯流排連接模組120之狀態的狀態更新。此狀態更新可回應於自指定待編寫至記憶體140中之狀態更新的匯流排連接模組接收直接記憶體存取(DMA)而執行。
此外,記憶體包含裝置表(DT) 144,其具有用於經保留以供電腦系統100之硬體使用之記憶體的內部區段145中之每一匯流排連接模組120的裝置表項目(DTE) 146。內部區段亦稱為硬體系統區域(HAS),可包含固定大小並且自用戶端購買的記憶體(亦即可指派至主機及/或客體作業系統之記憶體)隔離。
在接收中斷信號(例如,具有識別用於中斷請求之目標處理器的中斷目標ID之MSI -X寫入訊息)後,匯流排附接裝置110提取指派給請求匯流排連接模組120的DTE 146。出於此目的,亦可接收呈匯流排連接模組120形式之識別中斷請求的來源之請求器ID。該中斷可例如以第二層客體作業系統為目標,亦即中斷目標ID識別經指派以供第二層作業系統使用之目標處理器。DTE 146可指示是否例如使用dIRQ位元針對請求匯流排連接模組120啟用目標處理器之經引導定址。匯流排附接裝置110更新客體經引導中斷信號向量(DIBV) 162 (亦即指派給第二層客體作業系統並儲存在記憶體140之客體記憶體區段141中的DIBV)之項目以便跟蹤處理器130中之哪一處理器的中斷信號已自哪一匯流排連接模組接收。每一客體DIBV 162指派給中斷目標ID (亦即處理器130)中之一者,且可包含一或多個項目。每一項目指派給匯流排連接模組120中之一者。因此,客體DIBV 162指示哪些匯流排連接模組存在用於特定處理器130的待處置之中斷信號。此可具有以下優勢:以便檢查是否存在任何中斷信號或哪一匯流排連接模組120存在用於特定處理器之待處置之中斷信號。僅信號項目,例如位元,或僅信號向量,例如位元向量,必須自記憶體140讀取。
此外,匯流排附接裝置110可更新亦稱為轉遞經引導中斷摘要向量(DISB) 164之轉遞向量,以便跟蹤處理器130中之哪一處理器在廣播之狀況下存在待處置之任一中斷信號。轉遞DISB 164之每一項目指派給客體中斷表(GAIT) 166之項目,而GAIT項目可包含記憶體位址指示符,其指示指派給中斷目標ID之客體DISB 160的項目之記憶體位址。舉例而言,GAIT 166可提供客體DISB 160之位址(Gst_DISB@)以及客體DISB 160內之各別項目的位移(Gst_DISBO)。因此,GAIT 166可提供用於選擇轉遞DISB 164中之項目之中斷目標ID至指派給各別中斷目標ID之客體DISB 160中之項目的映射。
除了指派給中斷目標ID並經由GAIT項目提供之位址資料鏈接至客體DISB 160之項目的項目之外,轉遞DISB 164可進一步包含指派給匯流排連接模組(例如請求器ID)之項目,其經由GAIT項目提供之位址資料鏈接至客體AISB 170的項目。舉例而言,GAIT 166可提供客體AISB 170 (Gst_AISB@)之位址以及客體AISB 170內之各別項目的位移(Gst_AISBO)。因此,GAIT 166可進一步提供用於選擇轉遞DISB 164中之項目的請求器ID至指派給各別請求器(亦即匯流排連接模組120)之客體AISB 160中之項目的映射。在此狀況下,匯流排附接裝置可更新指派給匯流排連接模組之客體中斷信號向量(AIBV) 172之項目。指派給匯流排連接模組120之AIBV 172的每一項目可進一步指派給處理器130。因此,AIBV本身可識別匯流排連接模組120,而該等項目識別處理器130。
匯流排附接裝置110使用儲存於記憶體140中 (例如,儲存在內部區段145中)之中斷表(IRT) 150之項目(IRTE) 152以將中斷目標ID (IT_ID)轉譯為邏輯處理器ID (lCPU)並使用直接定址目標處理器之邏輯處理器ID將所接收之中斷信號轉遞至目標處理器。對於該轉譯,匯流排附接裝置110提取項目(IRTE) 152之複本114。複本可使用由DTE 146之複本提供之中斷表150 (IRT@)之位址自本端快取或自記憶體140提取。在經引導中斷轉遞之狀況下,IRTE 152提供中斷目標ID至由匯流排附接裝置110使用之邏輯處理器ID的映射以直接定址目標處理器。
IRTE 152另外提供執行指示符154,其指示是否排程中斷目標ID識別之目標處理器,亦即該目標處理器是否執行。在目標處理器未經排程之狀況下,可發起廣播以便使得能夠及時處置中斷。
每一處理器包含韌體,例如毫碼132,以接收並處理直接中斷信號。韌體可進一步包含例如處理器130之毫碼及/或宏碼。其可包含硬體層指令及/或在實施較高層機器碼時所使用之資料結構。根據實施例,其可包含可作為包括受信任軟體之毫碼或特定針對於底層硬體之毫碼遞送的專有程式碼且控制作業系統對系統硬體之存取。另外,處理器130之韌體可包含檢查邏輯134以根據藉由匯流排附接裝置110轉遞至接收處理器130之中斷目標ID檢查接收處理器與目標處理器是否相同。在接收處理器130並非目標處理器之情況下,亦即在所接收之中斷目標ID與接收處理器130之參考中斷目標ID不匹配之情況下,將中斷信號廣播至邏輯分割區以便發現用於處置中斷信號之處理器。
圖6為用於經由匯流排附接裝置110使用DMA寫入請求執行匯流排連接模組120之狀態更新的例示性方法的流程圖。在步驟300中,匯流排連接模組可決定更新其狀態並觸發中斷,例如以便指示信號完成。在步驟310中,匯流排連接模組發起經由匯流排附接裝置至指派給電腦系統上執行之主機的記憶體(亦即主機記憶體)之區段之直接記憶體存取(DMA)寫入,以便更新匯流排連接模組之狀態。DMA為允許電腦系統之周邊組件將其I/O資料直接轉移至主記憶體及自主記憶體轉移其I/O資料而無需涉及系統處理器的硬體機制。為了執行DMA,匯流排連接模組例如以MSI-X訊息形式將DMA寫入請求發送至匯流排附接裝置。在PCIe情況下,匯流排連接模組可例如指代提供於PCIe配接器上之PCIe功能。在步驟320中,匯流排連接模組藉由匯流排連接模組之狀態更新接收DMA寫入請求並使用所接收更新來更新記憶體。可在針對各別匯流排連接模組所保留之主機記憶體區域中執行更新。
圖7為用於使用圖6之電腦系統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。裝置表項目之各別複本可提取自快取記憶體或提取自記憶體。
在步驟342中,匯流排附接裝置使用運用中斷信號以及由指示IRT之記憶體的DTE提供之位址指示符接收的中斷目標ID自記憶體提取IRTE之複本。在步驟350中,匯流排附接裝置更新在DTE中指定之向量,例如客體DIBV或客體AIBV。
在步驟360中,匯流排附接裝置檢查具備中斷信號之直接傳訊指示符。在直接傳訊指示符不指示直接傳訊之狀況下,匯流排附接裝置藉由廣播使用區識別符及中斷子類別識別符在步驟370中轉遞中斷信號,以便將中斷信號提供至由客體作業系統使用之處理器。在直接傳訊指示符指示直接傳訊之狀況下,匯流排附接裝置進一步在步驟362中檢查IRTE之複本包含的執行指示符是否指示由中斷目標ID識別之目標處理器正在執行。
在目標處理器正在未執行之情況下,匯流排附接裝置在步驟364中使用例如用以識別適合於處置中斷之處理器的邏輯分割區ID及/或中斷子類別ID發送經廣播中斷以作為回退。在發現合適的處理器與邏輯分割區ID及/或中斷子類別ID不匹配之情況下,超管理器,亦即經指派以供超管理器使用之處理器可接收中斷請求,而非指派給客體作業系統之處理器。若指派給客體作業系統之一或多個處理器經排程,則超管理器可決定再次廣播中斷請求。在進入指派給作業系統之處理器時,超管理器可檢查待呈現給進入處理器之直接中斷待決指示符,例如dPIA位元。根據實施例,超管理器可例如選擇性重新排程,亦即喚醒目標處理器。
在目標處理器正執行之狀況下,在步驟380中,匯流排附接裝置將具備中斷信號之中斷目標ID轉譯為經指派以供客體作業系統使用之處理器的邏輯處理器ID。為了轉譯,匯流排附接裝置可使用匯流排附接裝置所包含之映射表。匯流排附接裝置可包含每區之映射表或子表,亦即邏輯分割區。在步驟390中,匯流排附接裝置使用直接定址各別處理器(亦即發送直接訊息)之邏輯處理器ID將中斷信號轉遞至目標處理器。直接訊息可進一步包含區ID及/或中斷子類別ID。接收處理器包含中斷目標ID檢查邏輯。在中斷目標ID僅對於每邏輯分割區為唯一的狀況下,檢查邏輯可另外考慮邏輯分割區ID。
在步驟392中,檢查邏輯檢查經接收中斷目標ID及/或邏輯分割區ID是否匹配當前指派給接收處理器並且對於檢查邏輯可存取的中斷目標ID及/或邏輯分割區。在不匹配之狀況下,接收韌體在步驟393中發起廣播並使用用以識別有效目標處理器以用於處置中斷之邏輯分割區ID及/或中斷子類別ID將所接收之中斷請求廣播至其餘處理器。在正匹配之狀況下,在步驟394中,目標處理器之接收韌體(例如毫碼)接受經直接定址之中斷以用於呈現給客體作業系統。作為回應,韌體可中斷其活動,例如程式執行,且切換至執行客體作業系統之中斷處置器。中斷可藉由直接傳訊指示呈現給客體作業系統。
在步驟364中,在停用執行指示符之狀況下,亦即目標處理器未經排程,匯流排附接裝置使用邏輯分割區ID及/或中斷子類別ID發起中斷信號的廣播。使用邏輯分割區ID之廣播藉由超管理器/第一層客體作業系統處置。
在經接收中斷目標ID及/或邏輯分割區ID與當前指派給接收處理器之中斷目標ID及/或邏輯分割區之間的不匹配後,亦可在步驟393中藉由接收處理器發起此廣播。當前經指派中斷目標ID及/或邏輯分割區對於檢查邏輯可存取為用於檢查之s個參考值。
在步驟395中,在接收廣播中斷請求後,執行超管理器/第一層客體作業系統之處理器掃描轉遞向量。轉遞向量經提供在指派至第一層客體作業系統之記憶體區段中。此掃描可由各別處理器之韌體(例如,毫碼)執行。轉遞向量之每一項目,例如位元,對應於在指派給第一層客體作業系統之記憶體區段中提供之客體中斷表(GAIT)中之項目。GAIT的對應的項目可例如指定使用直接定址或使用廣播將中斷信號轉遞至目標處理器。
在步驟396中,讀取對應於轉遞向量之經啟用項目的GAIT項目。GAIT項目指定第二層客體作業系統之經引導中斷摘要向量的項目。GAIT項目提供例如位址指示符,其指示指派給第二層客體作業系統之記憶體區段中之經引導中斷摘要向量的位址。該指示符可例如包含經引導中斷摘要向量之記憶體位址以及經引導中斷摘要向量內之位移。該位移可指定經引導中斷摘要向量之特定項目。
在步驟397中,韌體啟用在GAIT中指定之第二層客體作業系統之經引導中斷摘要向量的項目。舉例而言,可設定客體DISB的位元。第二層客體作業系統之經引導中斷摘要向量的各別項目參看由中斷信號定址至之第二層客體作業系統使用之處理器的中斷目標ID。
在步驟398中,韌體啟用各別第二層客體作業系統之客體中斷狀態區域(GISA)中之項目,例如設定GISA中之位元,以使得用於第二層作業系統之浮動中斷請求未決。GISA指派給第二層客體作業系統並且儲存在指派給第一層客體作業系統之記憶體區段中。在複數個第二層客體作業系統之狀況下,向第二層客體作業系統中之每一者提供GISA。為了定址GISA,可使用GISA記憶體位址及/或客體中斷子類別ID (GISC)。GISA記憶體位址及GISC可由在步驟396中讀取之GAITE項目提供。
在步驟399中,當在CPU中之一者上分派第二層客體作業系統時,韌體中斷程式執行並且將執行切換至第二層客體作業系統中斷處置器以便處置用於第二層作業系統之中斷未決。
圖8描繪圖5之電腦系統100的另一實施例,圖8及圖6之電腦系統100之間的唯一差異在於IRT儲存在指派給主機之記憶體區段143 (亦即第一層客體作業系統而非記憶體之內部區段145)中。此可在由於大量處理器之IRT之大小增加得很多時為有利的,此係由於內部區段145可包含引發問題之受限大小。
圖9為用於使用圖8之電腦系統100將中斷信號提供至客體作業系統之例示性方法的流程圖。此方法為圖7之方法的擴展。為了確保第一層客體作業系統尚未篡改IRTE,實施額外檢查。在步驟342中,使用經接收中斷目標ID自指派給第一層客體作業系統之記憶體區段讀取IRTE的複本。根據IRTE之經提取複本,匯流排附接裝置讀取指派給經接收中斷目標ID、邏輯分割區ID及GISA位址指示符之邏輯處理器ID。在步驟344中,PBU比較邏輯分割區ID與裝置表項目之複本包含的GISA位址指示符,其中邏輯分割區ID及GISA位址指示符由IRTE的複本提供以確保第一層客體作業系統並不變更IRTE中之邏輯分割區ID及GISA位址指示符中之任一者。因此,由裝置表項目冗餘地提供之資料用作參考資料以便檢查IRTE提供之資料的正確性。在不匹配之狀況下,在步驟346中,IRTE經判定為錯誤。在由IRTE的複本提供之邏輯分割區ID及GISA位址指示符為正確之狀況下,假設IRTE包含之所有資料為正確的且該方法繼續步驟350。
圖10描繪客體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來排序。
圖11描繪客體AISB 170及複數個客體AIBV 172之示意性結構。客體AISB 170可以每匯流排連接模組MN A至MN D之記憶體的相鄰區段之形式提供,例如包含項目171之快取行,例如位元。每一項目指示是否存在來自各別匯流排連接模組之待處置之中斷請求(IRQ)。對於每一經連接匯流排,亦即AISB 170的項目,提供客體AIBV 172。每一客體AIBV 172指派給經連接特定匯流排並包含每中斷目標ID之一或多個項目173。客體AIBV 172可各自以記憶體的相鄰區段之形式提供,例如快取行,其包含指派給相同匯流排連接模組之項目173。關於不同目標處理器ID之項目可使用每匯流排連接模組的不同位移客體AIBVO來排序。
圖12A展示例示性客體DIBV 162。客體DIBV 162之項目的記憶體位址為由指派給中斷目標ID之IRTE提供的DIBV位址DIBV@ (例如vCPU)、由DTE提供之位移DIBVO及具備中斷信號之DIBV索引DIBV-Idx的組合。因此,每一客體DIBV 162指派給中斷目標ID,而該等項目指派給匯流排連接模組。
圖12B展示例示性客體AIBV 172。客體DIBV 172之項目的記憶體位址為由指派給匯流排連接模組之DTE提供的AIBV位址AIBV@、由DTE提供之位移AIBVO及具備中斷信號之AIBV索引AIBV-Idx (例如MSI索引)的組合。因此,每一客體AIBV 162指派給匯流排連接模組,而項目指派給中斷目標ID。
圖13A展示例示性客體DISB 160。客體DISB 160之項目的記憶體位址由主機DISB位址Host_DISB@及主機DISB位移Host_DISBO (例如,vCPU)提供,主機DISB位址Host_DISB@及主機DISB位移Host_DISBO兩者由指派給中斷目標ID之IRTE提供,該兩者識別主機記憶體中之轉遞DISB陣列的記憶體位址。轉遞DISB陣列之各別項目識別GAIT項目,其識別客體DISB 160 Gst_DISB@及位移Gst_DISBO之位址。各別項目指派給中斷目標ID。
圖13B展示例示性客體AISB 170。客體AISB 170之項目的記憶體位址由主機DISB位址Host_DISB@及主機DISB位移Host_DISBO提供,主機DISB位址Host_DISB@及主機DISB位移Host_DISBO兩者由指派給匯流排連接模組之DTE提供,該兩者識別主機記憶體中之轉遞DISB陣列的記憶體位址。轉遞DISB陣列之各別項目識別GAIT項目,其識別客體AISB 170 Gst_AISB@及位移Gst_AISBO之位址。各別項目指派給匯流排連接模組。
圖14描繪例示性DTE 146,其包含邏輯分割區ID (區)、中斷子類別ISC、Host_DISB、Host_DISBO、AIBV@、AIBVO及多個中斷(NOI),其界定經保留用於各別匯流排連接模組之DIBV中之位元的最大數目。此外,描繪例示性IRTE 152。IRTE 152可包含邏輯分割區ID (區)、Host_DISB、Host_DISBO、DIBV@及客體中斷狀態區域(GISA) GISA@的位址。GISA 174可包含IPM及IAM,IPM使得第二層客體作業系統中斷未決。若不分派第二層客體作業系統的vCPU,則設定IAM位元,將GISA置於Alert-List上且生成第一層客體作業系統中斷。若分派第二層客體作業系統之vCPU,則其使得第二層客體作業系統中斷直接由快取行監測(CLM)偵測到。最終,例示性GAIT項目GAITE 173可包含Gst_DISB@、Gst_DISBO、GISC及GISA@。在GAIT識別客體AISB項目而非客體DISB項目之狀況下,其可包含Gst_AISB@及Gst_AISBO。
圖15描繪轉遞DISB陣列,其包含具有項目165之轉遞DISB向量164。每一項目165指派給GAIT 166的GAITE 167。
客體作業系統可例如使用可分頁儲存模式客體實施。例如在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控制器耦接至系統。網路配接器亦可耦接至系統以使得資料處理系統能夠變成經由介入的私人網路或公用網路耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、纜線數據機及乙太網路卡僅為幾個可用類型之網路配接器。
參考圖16,描繪實施本發明之一或多個態樣的主機電腦系統400之代表性組件。代表性主機電腦400包含與電腦記憶體402通信之一或多個處理器,例如CPU 401;以及介接至儲存媒體裝置411及網路410以用於與其他電腦或SAN及其類似者通信的I/O介面。CPU 401與具有架構化指令集及架構化功能性之架構相容。CPU 401可具有動態位址轉譯(DAT) 403以用於將程式位址、虛擬位址變換成記憶體之真實位址。DAT可包含轉譯後備緩衝器(TLB) 407以用於快取轉譯,使得對電腦記憶體402之區塊的稍後存取並不需要延遲位址轉譯。可在電腦記憶體402與CPU 401之間採用快取記憶體409。快取記憶體409可階層式地經結構化,從而提供可用於多於一個CPU之較大高層快取記憶體及高層快取記憶體與每一CPU之間的較小、較快速、較低層快取記憶體。在一些實施中,較低層快取記憶體可經分離以為指令提取及資料存取提供獨立的低層快取記憶體。根據實施例,可藉由指令提取單元404經由快取記憶體409自記憶體402提取指令。指令在指令解碼單元406中可經編碼且在一些實施例中藉由其他指令分派至一或多個指令執行單元408。可採用若干執行單元408,例如算術執行單元、浮點執行單元及分支指令執行單元。藉由執行單元執行指令,從而在需要時自指令指定之暫存器或記憶體存取運算元。若將自記憶體402存取(例如載入或儲存)運算元,則載入/儲存單元405可在經執行指令之控制下處置存取。指令可以硬體電路或內部毫碼(亦即韌體)或藉由以上兩者之組合執行。
電腦系統可包含本機或主儲存器中之資訊,以及定址、保護及參考與變更記錄。定址之一些態樣包括位址之格式、位址空間之概念、位址之各種類型,及一種類型之位址經轉譯成另一種類型之位址的方式。一些主儲存器包括永久性指派之儲存位置。主儲存器為系統提供對資料之直接可定址快速存取儲存。將資料及程式兩者在可處理之前例如自輸入裝置載入至主儲存器中。
主儲存器可包括一或多個較小的較快速存取緩衝儲存器,其有時被稱為快取記憶體。快取記憶體與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,體現本發明之軟體程式碼可存取自長期儲存媒體裝置411,諸如CD-ROM光碟機、磁帶機或硬碟機。軟體程式碼可體現於各種已知媒體中之任一者上以用於供資料處理系統(諸如,磁片、硬碟機或CD-ROM)使用。該程式碼可在此種媒體上予以分佈,或可自電腦記憶體402或一個電腦系統之儲存器經由至其他電腦系統之網路410分佈至使用者,以供此類其他系統之使用者使用。
軟體程式碼可包含作業系統,其控制各種電腦組件及一或多個應用程式之功能及互動。程式碼可自儲存媒體裝置411分頁至相對較高速度電腦儲存器402,程式碼在此處可供處理器401處理。可使用用於在實體媒體上體現記憶體中之軟體程式碼及/或經由網路分佈軟體程式碼之熟知技術及方法。程式碼在建立及儲存於有形媒體上時可被稱作「電腦程式產品」,有形媒體包括但不限於電子記憶體模組(RAM)、快閃記憶體、緊密光碟(CD)、DVD、磁帶。電腦程式產品媒體可由較佳地在電腦系統中之處理電路讀取以供處理電路執行。
圖17說明代表性工作站或伺服器硬體系統,其中可實施本發明之實施例。圖17之系統420包含代表性基礎電腦系統421,諸如個人電腦、工作站或伺服器,包括可選周邊裝置。基礎電腦系統421包括一或多個處理器426及用以根據已知技術連接一或多個處理器426與系統421之其他組件及實現一或多個處理器426與系統421之其他組件之間的通信的匯流排。匯流排將處理器426連接至記憶體425及長期儲存器427,其可包括硬碟機,包括例如磁性媒體、CD、DVD及快閃記憶體中之任一者或例如磁帶機。系統421亦可包括使用者介面配接器,其將微處理器426經由匯流排連接至一或多個介面裝置(諸如鍵盤424、滑鼠423、印表機/掃描器430,及/或其他介面裝置),其可為任何使用者介面裝置,諸如觸敏式螢幕、數位化輸入小鍵盤等。匯流排亦經由顯示器配接器將顯示裝置422 (諸如,LCD螢幕或監視器)連接至微處理器426。
系統421可藉助於能夠與網路429進行通信428之網路配接器與其他電腦或電腦之網路通信。實例網路配接器為通信通道、符記環、乙太網路或數據機。替代地,系統421可使用無線介面,諸如蜂巢式數位封包資料(CDPD)卡通信。系統421可與區域網路(LAN)或廣域網路(WAN)中之此等其他電腦相關聯,或系統421可為與另一電腦呈用戶端/伺服器配置中之用戶端,等等。
圖18說明資料處理網路440,其中可實施本發明之實施例。資料處理網路440可包括複數個個別網路,諸如無線網路及有線網路,其各自可包括複數個個別工作站441、442、443、444。此外,如熟習此項技術者將瞭解,可包括一或多個LAN,其中LAN可包含耦接至主機處理器之複數個智慧型工作站。
仍然參考圖18,網路亦可包括大型主機電腦或伺服器,諸如閘道器電腦,例如用戶端伺服器446;或應用程式伺服器,例如可存取資料儲存庫且亦可直接自工作站445存取之遠端伺服器448。閘道器電腦446可充當進入每一個別網路之進入點。在將一個網路連接協定連接至另一網路連接協定時,可需要閘道器。閘道器446較佳地可例如藉助於通信鏈路耦接至另一網路,類似於網際網路447。閘道器446亦可使用通信鏈路直接耦接至一或多個工作站441、442、443、444。閘道器電腦可利用可購自國際商業機器公司之IBM eServer™ System z®伺服器實施。
同時參考圖17及圖18,可體現本發明之軟體程式碼可由系統420之處理器426存取自長期儲存媒體427,諸如CD-ROM光碟機或硬碟機。軟體程式碼可體現於各種已知媒體中之任一者上以供資料處理系統(諸如,磁片、硬碟機或CD-ROM)使用。該程式碼可在此種媒體上予以分佈,或可自記憶體或一個電腦系統之儲存器經由至其他電腦系統之網路分佈至使用者450、451,以供此類其他系統之使用者使用。
替代地,程式碼可體現於記憶體425中且使用處理器匯流排藉由處理器426存取。此類程式碼可包括控制各種電腦組件及一或多個應用程式432之功能及互動的作業系統。程式碼可自儲存媒體427分頁至高速記憶體425,程式碼在此處可供處理器426處理。可使用用於在實體媒體上體現記憶體中之軟體程式碼及/或經由網路分佈軟體程式碼之熟知技術及方法。
可最容易被處理器使用,亦即可快於及小於處理器之其他快取記憶體的快取記憶體為最低快取記憶體,亦被稱作L1或層1快取記憶體,且若存在n (例如n = 3)個層,則主記憶體為最高層快取記憶體,亦被稱作Ln,例如L3快取記憶體。最低層快取記憶體可劃分成指令快取記憶體,亦被稱作I-快取記憶體,從而保存待執行之機器可讀指令;及資料快取記憶體,亦被稱作D-快取記憶體,從而保存資料運算元。
參考圖19,針對處理器426描繪例示性處理器實施例。快取記憶體453之一或多個層可用於緩衝記憶體區塊以便改良處理器效能。快取記憶體453係保存可能使用之記憶體資料之快取行的高速緩衝器。快取行可例如為64、128或256位元組之記憶體資料。可採用單獨快取記憶體以用於快取指令及用於快取資料。快取記憶體一致性,亦即記憶體與快取記憶體中各行之複本之同步可由各種合適的演算法,例如「窺探」演算法提供。處理器系統之主記憶體儲存器425可被稱為快取記憶體。在具有4層之快取記憶體453的處理器系統中,主儲存器425有時被稱作層5 (L5)快取記憶體,由於其可較快速且僅保存可用於電腦系統之非揮發性儲存器之一部分。主儲存器425「快取」由作業系統分頁至主儲存器425中及自主儲存器425移出分頁之資料頁。
程式計數器(指令計數器) 461追蹤待執行之當前指令之位址。z/Architecture®處理器中之程式計數器為64位元且可經截短至31或24位元以支援先前定址限制。程式計數器可以電腦之程式狀態字(PSW)體現使得其在上下文切換期間得以維持。因此,具有程式計數器值之正在進行程式可因例如引起自程式環境至作業系統環境之上下文切換的作業系統而中斷。在程式並非作用中時,程式之PSW維持程式計數器值,且在作業系統正執行時,使用呈作業系統之PSW形式的程式計數器。程式計數器可遞增等於當前指令之位元組之數目的量。精簡指令集計算(RISC)指令可為固定長度,而複雜指令集計算(CISC)指令可為可變長度。IBM z/Architecture®之指令係具有2、4或6位元組之長度的CISC指令。例如,可藉由分支指令之上下文切換操作或採取分支操作來修改程式計數器461。在上下文切換操作中,將當前程式計數器值連同關於正執行之程式之其他狀態資訊(諸如,條件碼)一起保存於程式狀態字中,且載入新程式計數器值,其指向待執行之新程式模組之指令。可執行採取分支操作以便准許程式藉由將分支指令之結果載入至程式計數器461中來作出決策或在程式內循環。
指令提取單元455可用於代表處理器426提取指令。提取單元提取「下一順序指令」、採取分支指令中之目標指令,或在上下文切換之後程式之第一指令。現代指令提取單元可採用預提取技術以基於可能使用經預提取之指令之可能性推測地預提取指令。舉例而言,提取單元可提取16位元組之指令,其包括下一順序指令及額外位元組之其他順序指令。
所提取指令可接著藉由處理器426執行。根據實施例,一或多個所提取指令可傳遞至提取單元之分派單元456。分派單元解碼一或多個指令並將關於一或多個經解碼指令之資訊轉遞至適合的單元457、458、460。執行單元457可自指令提取單元455接收關於經解碼算術指令之資訊且可根據指令之操作碼對運算元執行算術運算。可較佳地將運算元自記憶體425、架構化暫存器459或經執行指令之立即欄位提供至執行單元457。執行結果在儲存時可儲存於記憶體425中、暫存器459中或其他機器硬體(諸如控制暫存器、PSW暫存器及其類似者)中。
處理器426可包含用於執行指令之功能之一或多個單元457、458、460。參考圖20A,執行單元457可藉助於介接邏輯471與架構化通用暫存器459、解碼/分派單元456、載入儲存單元460及其他處理器單元465通信。執行單元457可採用若干暫存器電路467、468、469以保存算術邏輯單元(ALU) 466操作之資訊。ALU執行諸如加法、減法、乘法及除法之算術運算,以及諸如「及」、「或」、「互斥或(XOR)」、旋轉及移位之邏輯函數。較佳地,ALU可支援為設計相依性之專用運算。其他電路可提供其他架構化設施472,包括例如條件碼及恢復支援邏輯。ALU操作之結果可保存於輸出暫存器電路470中,該電路經組態以將結果轉遞至各種其他處理函數。存在處理器單元之許多配置,本描述僅意欲提供對一個實施例之代表性理解。
ADD指令例如可執行於具有算術及邏輯功能性之執行單元457中,而浮點指令例如將執行於具有專業浮點能力之浮點執行中。較佳地,執行單元藉由對藉由指令所識別之運算元執行操作碼定義之函數來對該等運算元進行運算。舉例而言,可藉由執行單元457對發現於兩個暫存器459中之運算元執行ADD指令,該兩個暫存器藉由指令之暫存器欄位識別。
執行單元457對兩個運算元執行算術加法且將結果儲存於第三運算元中,其中該第三運算元可為第三暫存器或兩個源暫存器中之一者。執行單元較佳地利用算術邏輯單元(ALU) 466,其能夠執行諸如移位、旋轉、「及」、「或」及「互斥或」之各種邏輯函數以及包括加法、減法、乘法、除法中之任一者之各種代數函數。一些ALU 466經設計用於純量運算且一些ALU經設計用於浮點。取決於架構,資料可為大端序,其中最低有效位元組在最高位元組位址處;或可為小端序,其中最低有效位元組在最低位元組位址處。IBM z/Architecture®為大端序。帶正負號欄位可為正負號及量值,取決於架構,其為1之補數或2之補數。由於2之補數中之負值或正值僅需要在ALU內進行加法,因此2之補數可係有利的,因為ALU不需要設計減法能力。數字可以簡寫形式描述,其中12位元欄位定義4,096位元組區塊之位址,且例如可描述為4千位元組(Kbyte)區塊。
參考圖20B,可將用於執行分支指令之分支指令資訊發送至分支單元458,該分支單元常常採用分支預測演算法(諸如,分支歷史表482)來在其他條件運算完成之前預測分支之結果。將在條件運算完成之前提取且推測地執行當前分支指令之目標。當條件運算完成時,基於條件運算之條件及推測之結果完成或丟棄推測地執行之分支指令。若條件碼滿足分支指令之分支要求,則分支指令可測試條件碼及至目標位址之分支,可例如基於包括發現於暫存器欄位中之一之若干個數字或指令之立即欄位而演算目標位址。分支單元458可採用ALU 474,其具有複數個輸入暫存器電路475、476、477及一輸出暫存器電路480。分支單元458可例如與通用暫存器459、解碼/分派單元456或其他電路473通信。
一組指令之執行可出於各種原因而中斷,該等原因包括例如藉由作業系統發起之上下文切換、引起上下文切換之程式例外狀況或錯誤、引起複數個程式在多執行緒環境中之上下文切換或多執行緒活動之I/O中斷信號。較佳地,上下文切換動作保存關於當前正執行之程式之狀態資訊且接著載入關於正被調用之另一程式之狀態資訊。舉例而言,可將狀態資訊保存於硬體暫存器中或記憶體中。狀態資訊較佳地包含指向待執行之下一指令之程式計數器值、條件碼、記憶體轉譯資訊及架構化暫存器內容。上下文切換活動可藉由硬體電路、應用程式、作業系統程式或韌體碼(類似於例如毫碼、微毫碼或授權內碼(LIC))單獨地或以組合形式進行。
處理器根據指令定義之方法存取運算元。指令可使用指令之一部分之值提供立即運算元,可提供明確指向通用暫存器或專用暫存器(類似於例如浮點暫存器)之一或多個暫存器欄位。指令可利用藉由操作碼欄位識別為運算元之隱含暫存器。指令可利用運算元之記憶體位置。運算元之記憶體位置可由暫存器、立即欄位或暫存器與立即欄位之組合(如由z/Architecture®長移位設施例示)提供,其中指令定義例如一起相加以提供記憶體中運算元之位址的基礎暫存器、索引暫存器及立即欄位,亦即移位欄位。除非另外指示,否則本文中之位置可隱含在主記憶體中之位置。
參考圖20C,處理器使用載入/儲存單元460存取儲存器。載入/儲存單元460可藉由獲得記憶體453中之目標運算元之位址及將該運算元載入暫存器459或另一記憶體453位置中來執行載入操作,或可藉由獲得記憶體453中之目標運算元之位址及將自暫存器459或另一記憶體453位置獲得之資料儲存於記憶體453中之目標運算元位置來執行儲存操作。載入/儲存單元460可為推測式的且可以相對於指令順序為無序之順序來存取記憶體;然而,載入/儲存單元460用於維持對程式表現為按次序執行指令。載入/儲存單元460可與通用暫存器459、解碼/分派單元456、快取記憶體/記憶體介面453或其他元件483通信,且包含各種暫存器電路、ALU 485及控制邏輯490以演算儲存位址並提供管線排序以使操作保持按次序進行。一些操作可係無序的,但載入/儲存單元提供功能性以使無序操作對程式表現為已按次序執行。
較佳地,應用程式「經歷」之位址常常被稱作虛擬位址。虛擬位址有時被稱作「邏輯位址」及「有效位址」。此等虛擬位址係虛擬的,因為其藉由多種動態位址轉譯(DAT)技術中之一者被重新引導至實體記憶體位置,該等技術包括但不限於:僅對虛擬位址加上位移值作為首碼;經由一或多個轉譯表轉譯虛擬位址,該等轉譯表較佳地單獨或組合地包含至少一區段表格及一分頁表格,較佳地,該區段表格具有指向分頁表格之項目。在z/Architecture®中,提供轉譯階層,其包括區第一表格、區第二表格、區第三表格、區段表格及可選分頁表格。位址轉譯之效能常藉由利用轉譯後備緩衝器(TLB)改良,該轉譯後備緩衝器包含將虛擬位址映射至相關聯實體記憶體位置之項目。在DAT使用轉譯表轉譯虛擬位址時,創建該等項目。虛擬位址之後續使用可接著利用快速TLB之項目而非緩慢順序轉譯表存取。TLB內容可由包括最近最少使用(LRU)之各種替換演算法管理。
多處理器系統之每一處理器負責使共用資源(諸如I/O、快取記憶體、TLB及記憶體)為了一致性保持互鎖。所謂的「窺探」技術可用於維持快取一致性。在窺探環境中,每一快取行可經標記為處於共用狀態、排他性狀態、變更狀態、無效狀態及其類似狀態中之任一者中以便促進共用。
I/O單元454可為處理器提供用於附接至周邊裝置(例如包括磁帶、磁碟、印表機、顯示器及網路)之手段。I/O單元常藉由軟體驅動器呈現給電腦程式。在大型主機(諸如來自IBM®之System z®)中,通道配接器及開放系統配接器係大型主機之I/O單元,其提供作業系統與周邊裝置之間的通信。
另外,其他類型之電腦系統可得益於本發明之一或多個態樣。作為一實例,電腦系統可包含模擬器,例如軟體或其他模擬機構,其中模擬特定架構,包括例如指令執行、諸如位址轉譯之架構化功能及架構化暫存器,或其中例如在具有處理器及記憶體之原生電腦系統上模擬其子集。在此環境中,模擬器之一或多個模擬功能可實施本發明之一或多個態樣,即使執行模擬器之電腦可能具有不同於正經模擬之能力的架構。例如,在模擬模式下,經模擬之特定指令或操作可經解碼,且可建構適合的模擬功能以實施個別指令或操作。
在模擬環境中,主機電腦可例如包含:記憶體,其儲存指令及資料;指令提取單元,其自記憶體提取指令且視情況為經提取之指令提供本端緩衝;指令解碼單元,其接收經提取之指令且判定已經提取之指令之類型;以及指令執行單元,其執行該等指令。執行可包括將資料自記憶體載入至暫存器中;將資料自暫存器儲存回至記憶體;及/或執行如由解碼單元判定之某一類型之算術或邏輯運算。例如,每一單元可實施於軟體中。由單元執行之操作可實施為模擬器軟體內之一或多個次常式。
更特定言之,在大型主機中,程式設計師(類似於例如「C」程式設計師)例如藉助於編譯器應用程式使用架構化機器指令。儲存於儲存媒體中之此等指令可原生地執行於z/Architecture® IBM®伺服器中,或替代地執行於執行其他架構之機器中。可在現存及未來IBM®大型主機伺服器中及在IBM®之其他機器(例如,電力系統伺服器及系統x®伺服器)上模擬該等指令。該等指令可執行於使用由IBM®、Intel®、AMD™及其他者製造之硬體在廣泛多種機器上執行Linux之機器中。除了在z/Architecture®下之該硬體上執行以外,可使用Linux以及藉由赫拉克勒斯(Hercules)、UMX或FSI (基本軟體公司)之使用模擬之機器,其中大體上執行處於模擬模式下。在模擬模式下,藉由原生處理器執行模擬軟體以模擬經模擬處理器之架構。
原生處理器可執行包含韌體或原生作業系統之模擬軟體,以執行經模擬處理器之模擬。模擬軟體負責提取及執行經模擬處理器架構之指令。模擬軟體維持經模擬之程式計數器以追蹤指令邊界。模擬軟體可一次提取一或多個經模擬之機器指令且將該一或多個經模擬之機器指令轉化為原生機器指令之對應群組以供原生處理器執行。此等經轉化之指令可經快取,使得可實現較快速轉化。儘管如此,模擬軟體將用於維持經模擬之處理器架構之架構規則以便確保針對經模擬之處理器撰寫之作業系統及應用程式正確地進行操作。此外,模擬軟體係用於提供藉由經模擬之處理器架構識別之資源,其包括但不限於控制暫存器、通用暫存器、浮點暫存器、包括段表及頁表之動態位址轉譯功能(例如,中斷機制、上下文切換機制、當日時間(TOD)時脈及至I/O子系統之架構化介面),使得經設計以在經模擬處理器上執行之作業系統或應用程式可在具有模擬軟體之原生處理器上執行。
解碼正進行模擬之特定指令,且呼叫次常式以執行個別指令之功能。例如,在「C」次常式或驅動程式中實施模擬經模擬處理器之功能之模擬軟體功能,或為特定硬體提供驅動程式之某一其他方法。
在圖21中,提供經模擬之主機電腦系統492之實例,其模擬主機架構之主機電腦系統400'。在經模擬主機電腦系統492中,主機處理器,亦即CPU 491為經模擬主機處理器或虛擬主機處理器且包含模擬處理器493,其與主機電腦400'之處理器491具有不同的原生指令集架構。經模擬主機電腦系統492具有可存取模擬處理器493之記憶體494。在實例實施例中,將記憶體494分割成主機電腦記憶體496部分及模擬常式497部分。根據主機電腦架構,主機電腦記憶體496可用於經模擬之主機電腦492之程式。模擬處理器493執行與經模擬處理器491之架構不同之架構的架構化指令集的原生指令,該等原生指令自模擬常式記憶體497獲得,且可藉由採用在順序及存取/解碼常式中獲得之一或多個指令自主機電腦記憶體496中之程式存取用於執行之主機指令,該順序及存取/解碼常式可解碼所存取之主機指令以判定用於模擬所存取主機指令之功能的原生指令執行常式。經定義用於主機電腦系統400'架構之其他設施可藉由架構化設施常式模擬,該等設施例如包括諸如以下各者之設施:通用暫存器、控制暫存器、動態位址轉譯及I/O子系統支援及處理器快取記憶體。模擬常式亦可利用模擬處理器493中可用之功能(諸如,通用暫存器及虛擬位址之動態轉譯)來改良模擬常式之效能。亦可提供特殊硬體及卸載引擎以輔助處理器493模擬主機電腦400'之功能。
應理解,只要組合之實施例彼此不互斥,本發明之前述實施例中之一或多者可經組合。序號(類似於例如「第一」及「第二」)在本文中用以指示經指派有相同名稱的不同元件,但未必確立各別元件之任何次序。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
本發明可為一系統、一方法及/或一電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保留及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之較特定實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(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轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中斷信號轉遞至該第一目標處理器以供處置, 否則,藉由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新所選的轉遞向量項目使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至各別中斷目標ID的一第一中斷信號。 2.      如條項1之方法,該第二記憶體區段進一步包含一客體中斷表,該客體中斷表包含一第一組客體中斷表項目,該第一組客體中斷表項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含一經引導中斷摘要位址指示符,其中各別經引導中斷摘要位址指示符指示該第二記憶體區段中之各別經引導中斷摘要指示符之一記憶體位址, 該第一組轉遞向量項目中之該等轉遞向量項目的指派使用該客體中斷表予以實施,其中該第一組轉遞向量項目之每一轉遞向量被指派該第一組客體中斷表項目中之一客體中斷表項目,各別客體中斷表項目之一經引導中斷摘要位址指示符指示各別轉遞向量項目指派給之該經引導中斷摘要指示符的該記憶體位址。 3.      如前述條項中任一項之方法,該等轉遞向量項目各自實施為一單一位元。 4.      如前述條項中任一項之方法,該經引導中斷摘要向量實施為記憶體中之一相鄰區域。 5.      如前述條項中任一項之方法,該等經引導中斷摘要指示符各自實施為一單一位元。 6.      如前述條項中任一項之方法,該記憶體進一步包含具有用於每一中斷目標ID之一中斷表項目的一中斷表,該等中斷表項目中之每一者包含一轉遞向量項目位址指示符,其指示該第二記憶體區段中之各別轉遞向量項目的一記憶體位址, 該方法進一步包含: 藉由該匯流排附接裝置擷取指派給經接收中斷目標ID之該中斷表的一中斷表項目之一複本,經擷取複本包含一轉遞向量項目位址指示符,其指示該第二記憶體區段中之指派給經接收中斷目標ID之該轉遞向量項目的一記憶體位址, 藉由該匯流排附接裝置使用該中斷表項目之經擷取複本包含的該轉遞向量項目位址指示符以用於選擇指派給經接收中斷目標ID之該轉遞向量項目。 7.      如條項6之方法,該中斷表項目之經擷取複本進一步包含經接收中斷目標ID至一邏輯處理器ID的一映射,該方法進一步包含藉由該匯流排附接裝置使用該中斷表項目之該複本包含的該映射以用於將經接收中斷目標ID轉譯為該邏輯處理器ID。 8.      如條項6至7中任一項之方法,該中斷表項目之經擷取複本進一步包含一執行指示符,其指示由該中斷目標ID識別之該第一目標處理器是否經排程以供該第一客體作業系統使用,該方法進一步包含藉由該匯流排附接裝置使用該中斷表項目之該複本包含的該執行指示符以用於檢查該第一目標處理器是否經排程以供該第一客體作業系統使用。 9.      如條項8之方法,該執行指示符實施為一單一位元。 10.   如條項6至9中任一項之方法,該第二記憶體區段包含該中斷表。 11.   如條項6至10中任一項之方法,該中斷表項目之經擷取複本進一步包含:一第一邏輯分割區ID,其識別該第一客體作業系統指派給之一邏輯分割區;及一第一客體中斷狀態區域位址指示符,其指示該第二記憶體區段中之指派給該第一客體作業系統之一客體中斷狀態區域的一記憶體位址。 12.   如條項6至10中任一項之方法,該方法進一步包含藉由該匯流排附接裝置自一裝置表擷取一裝置表項目的一複本,該裝置表項目包含一中斷表位址指示符,其指示該中斷表之一記憶體位址,該匯流排附接裝置使用該中斷表之該記憶體位址以用於擷取該中斷表項目之第一複本。 13.   如條項12之方法,該裝置表儲存在該記憶體之一第三記憶體區段中,該第三記憶體區段受保護以免被該第一作業系統及該第二作業系統存取。 14.   如條項13之方法,該裝置表項目之經擷取複本進一步包含:一第二邏輯分割區ID,其識別該第一客體作業系統指派給之該邏輯分割區;及一第二客體中斷狀態區域位址指示符,其指示該第二記憶體區段中之指派給該第一客體作業系統之該客體中斷狀態區域的該記憶體位址, 該方法進一步包含藉由該匯流排附接裝置使用該第一邏輯分割區ID與由該中斷表項目提供之該第一客體中斷狀態區域位址指示符之一第一組合、與第二邏輯分割區ID與由儲存在受保護第三記憶體區段中之裝置表項目提供之第二客體中斷狀態區域位址指示符之一第二組合的一比較,來檢查儲存在該第二記憶體區段中之可由該第二客體作業系統存取之該中斷表項目未被該第二客體操作系統變更,該第一組合與該第二組合之一匹配指示該中斷表項目未變更。 15.   如條項14之方法,該裝置表項目進一步包含一邏輯分割區ID,其識別該客體作業系統指派給之一邏輯分割區,藉由該匯流排附接裝置轉遞該第一中斷信號進一步包含隨該第一中斷信號一起轉遞該邏輯分割區ID。 16.   如條項12至15中任一項之方法,該裝置表項目進一步包含一中斷子類別ID,其識別該第一中斷信號指派給之一中斷子類別,藉由該匯流排附接裝置轉遞該第一中斷信號進一步包含隨該第一中斷信號一起轉遞該中斷子類別ID。 17.   如前述條項中任一項之方法,該第二記憶體區段進一步包含指派給各別中斷目標ID之每中斷目標ID之一第一經引導中斷信號向量,每一經引導第一中斷信號向量包含指派給該第一匯流排連接模組之每第一匯流排連接模組之一第一中斷信號指示符,每一經引導第一中斷信號向量指示是否存在待處置之由該第一匯流排連接模組發佈且定址至各別中斷目標ID的一第一中斷信號, 該方法進一步包含: 藉由該匯流排附接裝置選擇指派給該第一中斷信號定址至之該中斷目標ID之該經引導第一中斷信號向量, 藉由該匯流排附接裝置在所選的經引導第一中斷信號向量中選擇指派給發佈該第一中斷信號之該第一匯流排連接模組的該經引導第一中斷信號指示符, 藉由該匯流排附接裝置更新所選的經引導第一中斷信號指示符,使得經更新經引導之第一中斷信號指示符指示存在待處置之由該第一匯流排連接模組發佈且定址至各別中斷目標ID之一第一中斷信號。 18.   如前述條項中任一項之方法,以一訊息告知中斷形式接收之該第一中斷信號包含該目標處理器之該中斷目標ID。 19.   如前述條項中任一項之方法,該第二記憶體區段進一步包含具有每匯流排連接模組之一中斷摘要指示符之一中斷摘要向量,將每一中斷摘要指示符指派給一匯流排連接模組,以指示是否存在待處置之由各別匯流排連接模組發佈之一中斷信號, 該轉遞向量包含一第二組轉遞向量項目,該第二組轉遞向量項目針對該中斷摘要向量之該等中斷摘要指示符中之每一者包含指派給各別中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之各別中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之由各別匯流排連接模組發佈之一第一中斷信號, 該方法進一步包含: 由該匯流排附接裝置藉由一中斷目標ID自一第二匯流排連接模組接收一第二中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第二中斷信號之一第二目標處理器, 藉由該匯流排附接裝置檢查該第二目標處理器是否經排程以供該第一客體作業系統使用, 若該第二目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將經接收中斷目標ID轉譯為一邏輯處理器ID,並使用由該轉譯產生以直接定址該第二目標處理器之該邏輯處理器ID將該第二中斷信號轉遞至該第二目標處理器以供處置, 否則,藉由該匯流排附接裝置使用廣播將用於處置之該第二中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給經接收中斷目標ID之該第二組轉遞向量項目中之一轉遞向量項目及更新所選的轉遞向量項目使得其指示其指派給之該中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之由該第二匯流排連接模組發佈之一第一中斷信號。 20.   如條項19之方法,該客體中斷表包含一第二組客體中斷表項目,該第二組客體中斷表項目針對該中斷摘要向量之該等中斷摘要指示符中之每一者包含一中斷摘要位址指示符,其中各別中斷摘要位址指示符指示該第二記憶體區段中之各別中斷摘要指示符的一記憶體位址, 該第二組轉遞向量項目中之該等轉遞向量項目的指派使用該客體中斷表予以實施,其中該第二組轉遞向量項目之每一轉遞向量被指派該第二組客體中斷表項目中之一客體中斷表項目,各別客體中斷表項目之一經引導中斷摘要位址指示符指示各別轉遞向量項目指派給之該中斷摘要指示符的該記憶體位址。 21.   如條項19至20中任一項之方法,該第二記憶體區段進一步包含指派給各別匯流排連接模組之每匯流排連接模組之一中斷信號向量,每一中斷信號向量包含指派給各別匯流排連接模組之每中斷目標ID之一中斷信號指示符,每一中斷信號向量指示是否存在待處置之由各別匯流排連接模組發佈且定址至各別中斷目標ID的一中斷信號, 該方法進一步包含: 藉由該匯流排附接裝置選擇指派給該第二匯流排連接模組之該經引導中斷信號向量, 藉由該匯流排附接裝置在所選的中斷信號向量中選擇指派給該第二中斷信號定址至之該中斷目標ID之該中斷信號指示符, 藉由該匯流排附接裝置更新所選的中斷信號指示符,使得經更新中斷信號指示符指示存在待處置之由該第二匯流排連接模組發佈且定址至各別中斷目標ID之一中斷信號。 22.   如前述條項中任一項之方法,該第一客體作業系統為一第二層虛擬化的一客體作業系統,且該第二客體作業系統為一第一層虛擬化的一客體作業系統。 23.   如前述條項中任一項之方法,該第一客體作業系統為一第三層虛擬化的一客體作業系統,且該第二客體作業系統為一第二層虛擬化的一客體作業系統。 24.   一種用於將一中斷信號提供至使用經指派以供一第一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該第一客體作業系統之電腦系統,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體, 該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址各別處理器之一邏輯處理器ID, 經指派以供該第一客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該第一客體作業系統及一或多個第一匯流排連接模組使用以定址各別處理器的一中斷目標ID, 該第一客體作業系統使用一第二客體作業系統實施為代管該第一客體作業系統之一主機, 該記憶體在指派給該第一客體作業系統之一第一記憶體區段中包含具有每中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,每一經引導中斷摘要指示符指派給一中斷目標ID,以指示是否存在待處置之定址至各別中斷目標ID之一第一中斷信號, 該記憶體在指派給該第二客體作業系統之一第二記憶體區段中包含一轉遞向量,該轉遞向量包含一第一組轉遞向量項目,該第一組轉遞向量項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含指派給各別經引導中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之各別經引導中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之定址至各別中斷目標ID的一第一中斷信號, 該電腦系統經組態以執行一方法,其包含: 由該匯流排附接裝置藉由一中斷目標ID自一第一匯流排連接模組接收一第一中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第一中斷信號之一第一目標處理器, 藉由該匯流排附接裝置檢查該第一目標處理器是否經排程以供該第一客體作業系統使用, 若該第一目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將經接收中斷目標ID轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中斷信號轉遞至該第一目標處理器以供處置, 否則,藉由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新所選的轉遞向量項目使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至各別中斷目標ID的一第一中斷信號。 25.   一種用於將一中斷信號提供至使用經指派以供一第一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該第一客體作業系統之電腦程式產品,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體, 該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址各別處理器之一邏輯處理器ID, 經指派以供該第一客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該第一客體作業系統及一或多個第一匯流排連接模組使用以定址各別處理器的一中斷目標ID, 該第一客體作業系統使用一第二客體作業系統實施為代管該第一客體作業系統之一主機, 該記憶體在指派給該第一客體作業系統之一第一記憶體區段中包含具有每中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,每一經引導中斷摘要指示符指派給一中斷目標ID,以指示是否存在待處置之定址至各別中斷目標ID之一第一中斷信號, 該記憶體在指派給該第二客體作業系統之一第二記憶體區段中包含一轉遞向量,該轉遞向量包含一第一組轉遞向量項目,該第一組轉遞向量項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含指派給各別經引導中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之各別經引導中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之定址至各別中斷目標ID的一第一中斷信號, 該電腦程式產品包含可由一處理電路讀取之一非暫時性電腦可讀媒體且儲存指令以供該處理電路執行以用於執行一方法,其包含: 由該匯流排附接裝置藉由一中斷目標ID自一第一匯流排連接模組接收一第一中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第一中斷信號之一第一目標處理器, 藉由該匯流排附接裝置檢查該第一目標處理器是否經排程以供該第一客體作業系統使用, 若該第一目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將經接收中斷目標ID轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中斷信號轉遞至該第一目標處理器以供處置, 否則,藉由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新所選的轉遞向量項目使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至各別中斷目標ID的一第一中斷信號。
100:電腦系統 102:匯流排 104:切換器 110:匯流排附接裝置 114:複本 120:匯流排連接模組 130:處理器 132:毫碼 134:檢查邏輯 140:記憶體 141:記憶體 143:記憶體區段 144:裝置表(DT) 145:記憶體的內部區段 146:裝置表項目(DTE) 150:中斷表(IRT) 152:中斷表(IRT)之項目(IRTE) 154:執行指示符 160:客體經引導中斷信號向量(DIBV) 161:項目 162:客體DIBV 163:項目 164:轉遞經引導中斷摘要向量(DISB) 165:項目 166:客體中斷表(GAIT) 167:GAITE 170:客體AISB 171:項目 172:客體中斷信號向量(AIBV) 173:項目 174:客體中斷狀態區域(GISA) 200:超管理器 202:虛擬機 204:客體作業系統 210:第二超管理器 212:第二層虛擬機/第二層客體作業系統 214:第二層客體作業系統 220:底層韌體 222:邏輯處理器ID lCPU 224:第一虛擬處理器ID vCPU 226:第二虛擬處理器ID vCPU 400:主機電腦系統 400':主機電腦系統 401:中央處理單元(CPU) 402:電腦記憶體 403:動態位址轉譯(DAT) 404:指令提取單元 405:載入/儲存單元 406:指令解碼單元 407:轉譯後備緩衝器(TLB) 408:指令執行單元 409:快取記憶體 410:網路 411:儲存媒體裝置 420:系統 421:代表性基礎電腦系統 422:顯示裝置 423:滑鼠 424:鍵盤 425:記憶體 426:處理器 427:長期儲存器 428:通信 429:網路 430:印表機/掃描器 432:應用程式 440:資料處理網路 441:工作站 442:工作站 443:工作站 444:工作站 445:工作站 446:閘道器電腦 447:網際網路 448:遠端伺服器 450:使用者 451:使用者 453:快取記憶體 454:I/O單元 455:指令提取單元 456:分派單元 457:執行單元 458:分支單元 459:架構化暫存器 460:載入/儲存單元 461:程式計數器(指令計數器) 465:其他處理器單元 466:算術邏輯單元(ALU) 467:暫存器電路 468:暫存器電路 469:暫存器電路 470:暫存器電路 471:介接邏輯 472:其他架構化設施 473:其他電路 474:算術邏輯單元(ALU) 475:暫存器電路 476:暫存器電路 477:暫存器電路 480:輸出暫存器電路 482:分支歷史表 483:其他元件 485:算術邏輯單元(ALU) 490:控制邏輯 491:中央處理單元(CPU) 492:經模擬主機電腦系統 493:模擬處理器 494:記憶體 496:主機電腦記憶體 497:模擬常式
在下文中,僅作為實例參考圖式更詳細地解釋本發明之實施例,其中:
圖1描繪例示性電腦系統之示意圖,
圖2描繪例示性虛擬化方案之示意圖,
圖3描繪例示性虛擬化方案之示意圖,
圖4描繪例示性電腦系統之示意圖,
圖5描繪例示性電腦系統之示意圖,
圖6描繪例示性方法之示意性流程圖,
圖7A至圖7C在一起描繪例示性方法之示意性流程圖,
圖8描繪例示性電腦系統之示意圖,
圖9描繪例示性方法之示意性流程圖,
圖10描繪例示性向量結構之示意圖,
圖11描繪例示性向量結構之示意圖,
圖12A及圖12B描繪例示性向量結構之示意圖,
圖13A及圖13B描繪例示性向量結構之示意圖,
圖14例示性資料結構之示意圖,
圖15例示性向量結構之示意圖,
圖16描繪例示性電腦系統之示意圖,
圖17描繪例示性電腦系統之示意圖,
圖18描繪例示性電腦系統之示意圖,
圖19描繪例示性電腦系統之示意圖,
圖20A至圖20C描繪例示性單元之示意圖,且
圖21描繪例示性電腦系統之示意圖。
100:電腦系統
110:匯流排附接裝置
114:複本
120:匯流排連接模組
130:處理器
132:毫碼
134:檢查邏輯
140:記憶體
141:記憶體
143:記憶體區段
144:裝置表(DT)
145:記憶體的內部區段
146:裝置表項目(DTE)
150:中斷表(IRT)
152:中斷表(IRT)之項目(IRTE)
154:執行指示符
160:客體經引導中斷摘要向量(DISB)
162:客體經引導中斷信號向量(DIBV)
164:轉遞經引導中斷摘要向量(DISB)
166:客體中斷表(GAIT)
170:客體AISB
172:客體中斷信號向量(AIBV)

Claims (25)

  1. 一種用於將一中斷信號提供至使用經指派以供一第一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該第一客體作業系統之方法,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該第一客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該第一客體作業系統及一或多個第一匯流排連接模組使用以定址該各別處理器的一中斷目標ID,該第一客體作業系統使用一第二客體作業系統實施為代管該第一客體作業系統之一主機,該記憶體在指派給該第一客體作業系統之一第一記憶體區段中包含具有每中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,將每一經引導中斷摘要指示符指派給一中斷目標ID,以指示是否存在待處置之定址至該各別中斷目標ID之一第一中斷信號,該記憶體在指派給該第二客體作業系統之一第二記憶體區段中包含一轉遞向量,該轉遞向量包含一第一組轉遞向量項目,該第一組轉遞向量項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含指派給該各別經引導中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之該各別經引導中斷摘要指示符是否經更新以便向該 第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自一第一匯流排連接模組接收一第一中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第一中斷信號之一第一目標處理器,藉由該匯流排附接裝置檢查該第一目標處理器是否經排程以供該第一客體作業系統使用,若該第一目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將該經接收中斷目標ID轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中斷信號轉遞至該第一目標處理器以供處置,否則,由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給該經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新該所選轉遞向量項目,使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號,其中,該第二記憶體區段進一步包含一客體中斷表,該客體中斷表包含一第一組客體中斷表項目,該第一組客體中斷表項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含一經引導中斷摘要位址指示符,其中該各別經引導中斷摘要位址指示符指示該第二記憶體 區段中之該各別經引導中斷摘要指示符之一記憶體位址。
  2. 如請求項1之方法,該第一組轉遞向量項目中之該等轉遞向量項目的指派使用該客體中斷表予以實施,其中該第一組轉遞向量項目之每一轉遞向量被指派該第一組客體中斷表項目中之一客體中斷表項目,該各別客體中斷表項目之一經引導中斷摘要位址指示符指示該各別轉遞向量項目指派給之該經引導中斷摘要指示符的該記憶體位址。
  3. 如請求項1之方法,該等轉遞向量項目各自實施為一單一位元。
  4. 如請求項1之方法,該經引導中斷摘要向量實施為記憶體中之一相鄰區域。
  5. 如請求項1之方法,該等經引導中斷摘要指示符各自實施為一單一位元。
  6. 如請求項1之方法,該記憶體進一步包含具有針對每一中斷目標ID之一中斷表項目的一中斷表,該等中斷表項目中之每一者包含一轉遞向量項目位址指示符,其指示該第二記憶體區段中之該各別轉遞向量項目的一記憶體位址,該方法進一步包含:藉由該匯流排附接裝置擷取指派給該經接收中斷目標ID之該中斷表的一中斷表項目之一複本,該經擷取複本包含一轉遞向量項目位址指示 符,其指示該第二記憶體區段中指派給該經接收中斷目標ID之該轉遞向量項目的一記憶體位址,由該匯流排附接裝置使用該中斷表項目之該經擷取複本包含的該轉遞向量項目位址指示符來選擇指派給該經接收中斷目標ID之該轉遞向量項目。
  7. 如請求項6之方法,該中斷表項目之該經擷取複本進一步包含該經接收中斷目標ID至一邏輯處理器ID的一映射,該方法進一步包含由該匯流排附接裝置使用該中斷表項目之該複本包含的該映射來將該經接收中斷目標ID轉譯為該邏輯處理器ID。
  8. 如請求項6之方法,該中斷表項目之該經擷取複本進一步包含一執行指示符,其指示由該中斷目標ID識別之該第一目標處理器是否經排程以供該第一客體作業系統使用,該方法進一步包含由該匯流排附接裝置使用該中斷表項目之該複本包含的該執行指示符來檢查該第一目標處理器是否經排程以供該第一客體作業系統使用。
  9. 如請求項8之方法,該執行指示符實施為一單一位元。
  10. 如請求項6之方法,該第二記憶體區段包含該中斷表。
  11. 如請求項6之方法,該中斷表項目之該經擷取複本進一步包含:一第一邏輯分割區ID,其識別該第一客體作業系統指派給之一邏輯分割區;及 一第一客體中斷狀態區域位址指示符,其指示該第二記憶體區段中指派給該第一客體作業系統之一客體中斷狀態區域的一記憶體位址。
  12. 如請求項6之方法,該方法進一步包含藉由該匯流排附接裝置自一裝置表擷取一裝置表項目的一複本,該裝置表項目包含一中斷表位址指示符,其指示該中斷表之一記憶體位址,該匯流排附接裝置使用該中斷表之該記憶體位址以用於擷取該中斷表項目之第一複本。
  13. 如請求項12之方法,該裝置表儲存在該記憶體之一第三記憶體區段中,該第三記憶體區段受保護以免於被該第一作業系統及該第二作業系統存取。
  14. 如請求項13之方法,該裝置表項目之該經擷取複本進一步包含:一第二邏輯分割區ID,其識別該第一客體作業系統指派給之該邏輯分割區;及一第二客體中斷狀態區域位址指示符,其指示該第二記憶體區段中指派給該第一客體作業系統之該客體中斷狀態區域的該記憶體位址,該方法進一步包含藉由該匯流排附接裝置使用該第一邏輯分割區ID與由該中斷表項目提供之該第一客體中斷狀態區域位址指示符之一第一組合、與第二邏輯分割區ID與由儲存在受保護之該第三記憶體區段中之裝置表項目提供之第二客體中斷狀態區域位址指示符之一第二組合的一比較,來檢查儲存在該第二記憶體區段中之可由該第二客體作業系統存取之該中斷表項目未被該第二客體操作系統變更,該第一組合與該第二組合之一匹配指示該中斷表項目未變更。
  15. 如請求項14之方法,該裝置表項目進一步包含一邏輯分割區ID,其識別該客體作業系統指派給之一邏輯分割區,藉由該匯流排附接裝置轉遞該第一中斷信號進一步包含隨該第一中斷信號一起轉遞該邏輯分割區ID。
  16. 如請求項12之方法,該裝置表項目進一步包含一中斷子類別ID,其識別該第一中斷信號指派給之一中斷子類別,藉由該匯流排附接裝置轉遞該第一中斷信號進一步包含隨該第一中斷信號一起轉遞該中斷子類別ID。
  17. 如請求項1之方法,該第二記憶體區段進一步包含指派給該各別中斷目標ID之每中斷目標ID之一第一經引導中斷信號向量,每一經引導第一中斷信號向量包含指派給該第一匯流排連接模組之每第一匯流排連接模組之一第一中斷信號指示符,每一經引導第一中斷信號向量指示是否存在待處置之由該第一匯流排連接模組發佈且定址至該各別中斷目標ID的一第一中斷信號,該方法進一步包含:藉由該匯流排附接裝置選擇指派給該第一中斷信號定址至之該中斷目標ID之該經引導第一中斷信號向量,藉由該匯流排附接裝置在該所選經引導第一中斷信號向量中選擇指派給發佈該第一中斷信號之該第一匯流排連接模組的該經引導第一中斷信號指示符,藉由該匯流排附接裝置更新該所選經引導第一中斷信號指示符,使得經更新之該經引導第一中斷信號指示符指示存在待處置之由該第一匯流 排連接模組發佈且定址至該各別中斷目標ID之一第一中斷信號。
  18. 如請求項1之方法,以一訊息告知中斷形式接收之該第一中斷信號包含該目標處理器之該中斷目標ID。
  19. 如請求項1之方法,該第二記憶體區段進一步包含具有每匯流排連接模組之一中斷摘要指示符之一中斷摘要向量,將每一中斷摘要指示符指派給一匯流排連接模組,以指示是否存在待處置之由該各別匯流排連接模組發佈之一中斷信號,該轉遞向量包含一第二組轉遞向量項目,該第二組轉遞向量項目針對該中斷摘要向量之該等中斷摘要指示符中之每一者包含指派給該各別中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之該各別中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之由該各別匯流排連接模組發佈之一第一中斷信號,該方法進一步包含:由該匯流排附接裝置藉由一中斷目標ID自一第二匯流排連接模組接收一第二中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第二中斷信號之一第二目標處理器,藉由該匯流排附接裝置檢查該第二目標處理器是否經排程以供該第一客體作業系統使用,若該第二目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將該經接收中斷目標ID轉譯為一邏輯處理器ID,並使 用由該轉譯產生以直接定址該第二目標處理器之該邏輯處理器ID將該第二中斷信號轉遞至該第二目標處理器以供處置,否則,藉由該匯流排附接裝置使用廣播將用於處置之該第二中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給該經接收中斷目標ID之該第二組轉遞向量項目中之一轉遞向量項目及更新該所選轉遞向量項目,使得其指示其指派給之該中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之由該第二匯流排連接模組發佈之一第一中斷信號。
  20. 如請求項19之方法,該客體中斷表包含一第二組客體中斷表項目,該第二組客體中斷表項目針對該中斷摘要向量之該等中斷摘要指示符中之每一者包含一中斷摘要位址指示符,其中該各別中斷摘要位址指示符指示該第二記憶體區段中之該各別中斷摘要指示符的一記憶體位址,該第二組轉遞向量項目中之該等轉遞向量項目的指派使用該客體中斷表予以實施,其中該第二組轉遞向量項目之每一轉遞向量被指派該第二組客體中斷表項目中之一客體中斷表項目,該各別客體中斷表項目之一經引導中斷摘要位址指示符指示該各別轉遞向量項目指派給之該中斷摘要指示符的該記憶體位址。
  21. 如請求項19之方法,該第二記憶體區段進一步包含指派給該各別匯流排連接模組之每匯流排連接模組之一中斷信號向量,每一中斷信號向量包含指派給該各別匯流排連接模組之每中斷目標ID之一中斷信號指示符,每一中斷信號向量指示是否存在待處置之由該各別匯流排連接模組發佈且 定址至該各別中斷目標ID的一中斷信號,該方法進一步包含:藉由該匯流排附接裝置選擇指派給該第二匯流排連接模組之該經引導中斷信號向量,藉由該匯流排附接裝置在該所選中斷信號向量中選擇指派給該第二中斷信號定址至之該中斷目標ID之該中斷信號指示符,藉由該匯流排附接裝置更新該所選中斷信號指示符,使得該經更新中斷信號指示符指示存在待處置之由該第二匯流排連接模組發佈且定址至該各別中斷目標ID之一中斷信號。
  22. 如請求項1之方法,該第一客體作業系統為一第二層虛擬化的一客體作業系統,且該第二客體作業系統為一第一層虛擬化的一客體作業系統。
  23. 如請求項1之方法,該第一客體作業系統為一第三層虛擬化的一客體作業系統,且該第二客體作業系統為一第二層虛擬化的一客體作業系統。
  24. 一種用於將一中斷信號提供至使用經指派以供一第一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該第一客體作業系統之電腦系統,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID, 經指派以供該第一客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該第一客體作業系統及一或多個第一匯流排連接模組使用以定址該各別處理器的一中斷目標ID,該第一客體作業系統使用一第二客體作業系統實施為代管該第一客體作業系統之一主機,該記憶體在指派給該第一客體作業系統之一第一記憶體區段中包含具有每中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,將每一經引導中斷摘要指示符指派給一中斷目標ID,以指示是否存在待處置之定址至該各別中斷目標ID之一第一中斷信號,該記憶體在指派給該第二客體作業系統之一第二記憶體區段中包含一轉遞向量,該轉遞向量包含一第一組轉遞向量項目,該第一組轉遞向量項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含指派給該各別經引導中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之該各別經引導中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號,該電腦系統經組態以執行一方法,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自一第一匯流排連接模組接收一第一中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第一中斷信號之一第一目標處理器,藉由該匯流排附接裝置檢查該第一目標處理器是否經排程以供該第一客體作業系統使用, 若該第一目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將該經接收中斷目標ID轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中斷信號轉遞至該第一目標處理器以供處置,否則,藉由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給該經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新該所選轉遞向量項目,使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號。
  25. 一種用於將一中斷信號提供至使用經指派以供一第一客體作業系統使用之一電腦系統之複數個處理器中之一或多個處理器執行之該第一客體作業系統之電腦程式產品,該電腦系統進一步包含經由一匯流排及一匯流排附接裝置與該複數個處理器以操作方式連接之一或多個匯流排連接模組,該電腦系統進一步包含與該匯流排附接裝置以操作方式連接之一記憶體,該複數個處理器中之每一處理器經指派有由該匯流排附接裝置使用以定址該各別處理器之一邏輯處理器ID,經指派以供該第一客體作業系統使用之該複數個處理器中之每一處理器進一步經指派有由該第一客體作業系統及一或多個第一匯流排連接模組使用以定址該各別處理器的一中斷目標ID,該第一客體作業系統使用一第二客體作業系統實施為代管該第一客 體作業系統之一主機,該記憶體在指派給該第一客體作業系統之一第一記憶體區段中包含具有每中斷目標ID之一經引導中斷摘要指示符之一經引導中斷摘要向量,將每一經引導中斷摘要指示符指派給一中斷目標ID,以指示是否存在待處置之定址至該各別中斷目標ID之一第一中斷信號,該記憶體在指派給該第二客體作業系統之一第二記憶體區段中包含一轉遞向量,該轉遞向量包含一第一組轉遞向量項目,該第一組轉遞向量項目針對該經引導中斷摘要向量之該等經引導中斷摘要指示符中之每一者包含指派給該各別經引導中斷摘要指示符之一轉遞向量項目,每一轉遞向量項目指示其指派給之該各別經引導中斷摘要指示符是否經更新以便向該第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號,該電腦程式產品包含可由一處理電路讀取之一非暫時性電腦可讀媒體且儲存指令以供該處理電路執行以用於執行一方法,該方法包含:由該匯流排附接裝置藉由一中斷目標ID自一第一匯流排連接模組接收一第一中斷信號,該中斷目標ID將經指派以供該第一客體作業系統使用之該等處理器中之一者識別為用於處置該第一中斷信號之一第一目標處理器,藉由該匯流排附接裝置檢查該第一目標處理器是否經排程以供該第一客體作業系統使用,若該第一目標處理器經排程以供該第一客體作業系統使用,則藉由該匯流排附接裝置將該經接收中斷目標ID轉譯為一邏輯處理器ID並使用由該轉譯產生以直接定址該第一目標處理器之該邏輯處理器ID將該第一中 斷信號轉遞至該第一目標處理器以供處置,否則,藉由該匯流排附接裝置使用廣播將用於處置之該第一中斷信號轉遞至該第一作業系統,該廣播包含藉由該匯流排附接裝置選擇指派給該經接收中斷目標ID之該第一組轉遞向量項目中之一轉遞向量項目及更新該所選轉遞向量項目,使得其指示其指派給之該經引導中斷摘要指示符將經更新以便向該第一作業系統指示存在待處置之定址至該各別中斷目標ID的一第一中斷信號。
TW109101665A 2019-02-14 2020-01-17 用於多層虛擬化之經引導中斷 TWI731554B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19157097 2019-02-14
EP19157097.7 2019-02-14

Publications (2)

Publication Number Publication Date
TW202040567A TW202040567A (zh) 2020-11-01
TWI731554B true TWI731554B (zh) 2021-06-21

Family

ID=65440827

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109101665A TWI731554B (zh) 2019-02-14 2020-01-17 用於多層虛擬化之經引導中斷

Country Status (9)

Country Link
US (2) US11138139B2 (zh)
EP (1) EP3924818A1 (zh)
CN (1) CN113454589A (zh)
AU (1) AU2020222167B2 (zh)
BR (1) BR112021016093A2 (zh)
CA (1) CA3130164A1 (zh)
IL (1) IL284681B2 (zh)
TW (1) TWI731554B (zh)
WO (1) WO2020164818A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3924819A1 (en) 2019-02-14 2021-12-22 International Business Machines Corporation Directed interrupt for multilevel virtualization with interrupt table
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 美商萬國商業機器公司 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品
TWI727607B (zh) 2019-02-14 2021-05-11 美商萬國商業機器公司 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
TWI759677B (zh) 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
CA3130164A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt for multilevel virtualization
EP3924822A4 (en) 2019-02-14 2022-11-23 International Business Machines Corporation DIRECTED INTERRUPT VIRTUALIZATION WITH CLOCK FLAG
WO2020164820A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110197003A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Interrupt Virtualization
TWI537822B (zh) * 2011-12-14 2016-06-11 英特爾股份有限公司 虛擬化中斷優先順序及遞送之技術
TWI570563B (zh) * 2014-11-25 2017-02-11 英特爾公司 後置中斷架構

Family Cites Families (75)

* Cited by examiner, † Cited by third party
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
US5848279A (en) 1996-12-27 1998-12-08 Intel Corporation Mechanism for delivering interrupt messages
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
US20030204655A1 (en) 2002-04-24 2003-10-30 Schmisseur Mark A. Prioritizing vector generation in interrupt controllers
US7028302B2 (en) 2002-04-24 2006-04-11 Hewlett-Packard Development Company, L.P. System and method for automatically tuning a multiprocessor computer system
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
US8286162B2 (en) 2005-12-30 2012-10-09 Intel Corporation Delivering interrupts directly to a virtual processor
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
US7627706B2 (en) 2007-09-06 2009-12-01 Intel Corporation Creation of logical APIC ID with cluster ID and intra-cluster ID
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
WO2009134218A1 (en) 2008-04-28 2009-11-05 Hewlett-Packard Development Company, L.P. Virtual-interrupt-mode interface and method for virtualizing an interrupt mode
ATE542177T1 (de) 2008-08-19 2012-02-15 St Microelectronics Rousset Weiterleitungsverfahren eines unterbrechungssignals direkt an eine virtuelle bearbeitungseinheit in einem system mit einer oder mehreren physischen bearbeitungseinheiten
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
CN101398768B (zh) 2008-10-28 2011-06-15 北京航空航天大学 一种分布式虚拟机监视器系统的构建方法
JP2010113667A (ja) 2008-11-10 2010-05-20 Renesas Technology Corp 情報処理装置
JP5352848B2 (ja) 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
CN101427916B (zh) 2008-12-05 2012-02-22 张锦景 电生理数据与病理图像监测的移动网络终端装置及方法
US8234432B2 (en) 2009-01-26 2012-07-31 Advanced Micro Devices, Inc. Memory structure to store interrupt state for inactive guests
JP5320140B2 (ja) 2009-04-14 2013-10-23 株式会社日立製作所 計算機システム、割込み中継回路及び割込み中継方法
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
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
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
US20130318280A1 (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
US9442870B2 (en) 2012-08-09 2016-09-13 Freescale Semiconductor, Inc. Interrupt priority management using partition-based priority blocking processor registers
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
CN105264506B (zh) 2013-01-29 2018-01-26 慧与发展有限责任合伙企业 向内存映射配置分配处理器
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
US9507740B2 (en) 2014-06-10 2016-11-29 Oracle International Corporation Aggregation of interrupts using event queues
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 株式会社日立製作所 計算機及びベクタの設定方法
US9760511B2 (en) 2014-10-08 2017-09-12 International Business Machines Corporation Efficient interruption routing for a multithreaded processor
US9910699B2 (en) 2014-10-28 2018-03-06 Intel Corporation Virtual processor direct interrupt delivery mechanism
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 삼성전자주식회사 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법
CN106095578B (zh) 2016-06-14 2019-04-09 上海交通大学 基于硬件辅助技术和虚拟cpu运行状态的直接中断递交方法
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
CN109144679B (zh) 2017-06-27 2022-03-29 华为技术有限公司 中断请求的处理方法、装置及虚拟化设备
US10838760B2 (en) 2017-11-29 2020-11-17 Nxp Usa, Inc. Systems and methods for interrupt distribution
WO2020164935A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization with running indicator
TWI727607B (zh) 2019-02-14 2021-05-11 美商萬國商業機器公司 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
CA3130164A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt for multilevel virtualization
TWI759677B (zh) 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
EP3924822A4 (en) 2019-02-14 2022-11-23 International Business Machines Corporation DIRECTED INTERRUPT VIRTUALIZATION WITH CLOCK FLAG
TWI764082B (zh) 2019-02-14 2022-05-11 美商萬國商業機器公司 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品
EP3924819A1 (en) 2019-02-14 2021-12-22 International Business Machines Corporation Directed interrupt for multilevel virtualization with interrupt table
WO2020164820A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt virtualization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110197003A1 (en) * 2010-02-05 2011-08-11 Serebrin Benjamin C Interrupt Virtualization
TWI537822B (zh) * 2011-12-14 2016-06-11 英特爾股份有限公司 虛擬化中斷優先順序及遞送之技術
US20180129619A1 (en) * 2011-12-14 2018-05-10 Intel Corporation Virtualizing interrupt prioritization and delivery
TWI570563B (zh) * 2014-11-25 2017-02-11 英特爾公司 後置中斷架構

Also Published As

Publication number Publication date
AU2020222167B2 (en) 2022-09-22
EP3924818A1 (en) 2021-12-22
AU2020222167A1 (en) 2021-05-27
JP2022520523A (ja) 2022-03-31
IL284681B2 (en) 2024-03-01
CN113454589A (zh) 2021-09-28
US20200264993A1 (en) 2020-08-20
US20210318973A1 (en) 2021-10-14
US11822493B2 (en) 2023-11-21
CA3130164A1 (en) 2020-08-20
WO2020164818A1 (en) 2020-08-20
BR112021016093A2 (pt) 2021-10-26
IL284681B1 (en) 2023-11-01
US11138139B2 (en) 2021-10-05
IL284681A (en) 2021-08-31
TW202040567A (zh) 2020-11-01

Similar Documents

Publication Publication Date Title
TWI727607B (zh) 用於具有中斷表之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
TWI731554B (zh) 用於多層虛擬化之經引導中斷
TWI759677B (zh) 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
TWI764082B (zh) 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品
US11249927B2 (en) Directed interrupt virtualization
JP7459119B2 (ja) 割り込みテーブルを使用したマルチレベルの仮想化のための有向割り込み方法、システム、プログラム
JP7450627B2 (ja) 実行中インジケータを使用した有向割り込みの仮想化方法、システム、プログラム
CN113454591A (zh) 具有阻止指示符的定向中断虚拟化