專利名稱:響應于適配器事件采取的動作的操作系統(tǒng)通知的制作方法
技術領域:
本發(fā)明一般涉及促進計算環(huán)境中的通信,并且更具體而言,涉及促進響應于適配器事件所采取的動作的通知。
背景技術:
Arbeitman 等在 2006 年 11 月 21 日發(fā)布的題為 “Method and ApparatusforReporting Global Errors on Heterogeneous Partitioned Systems”(用于在異構分區(qū)的系統(tǒng)上全局錯誤的方法和裝置)的第7,139,940號美國專利描述了用于在具有運行不同類型操作系統(tǒng)的多個分區(qū)的邏輯分區(qū)數(shù)據(jù)處理系統(tǒng)中報告全局錯誤的計算機指令。響應于檢測全局錯誤,將唯一的標識符分配給全局錯誤。將所述唯一的標識符發(fā)送到服務焦點。還將所述唯一的標識符發(fā)送到分區(qū)。將來自分區(qū)的錯誤信息報告給焦點。所述分區(qū)將錯誤信·息發(fā)送到與所述唯一的標識符相關聯(lián)的焦點。所述焦點識別從分區(qū)發(fā)送的錯誤信息,其用于使用唯一標識符的全局錯誤。Marisetty等在2009年6月 9 日發(fā)布的題為“OS and FirmwareCoordinated ErrorHandling Using Transparent Firmware Intercept andFirmware Services,,(使用透明固件截取和固件服務的OS和固件協(xié)調的錯誤處理)的第7,546,487號美國專利中描述了用于使用協(xié)調的操作系統(tǒng)(OS)和固件服務執(zhí)行硬件錯誤處理的方法和架構。在一個方面,提供硬件接口以使OS能夠訪問固件錯誤處理服務。這種服務使OS能夠訪問與平臺硬件錯誤相關的錯誤數(shù)據(jù),其中不能經(jīng)由平臺處理器或通過其它傳統(tǒng)方式來直接訪問所述錯誤數(shù)據(jù)。還公開了用于硬件錯誤事件的截取和處理,以及在嘗試使用基于OS的服務對錯誤進行服務之前引導對固件錯誤處理服務的控制的技術。固件服務可以糾正硬件錯誤和/或記錄錯誤數(shù)據(jù),其中OS稍后可能會訪問所述錯誤數(shù)據(jù)或稍后使用帶外通信信道將所述錯誤數(shù)據(jù)提供給遠程管理服務器。根據(jù)另一方面,可按照對OS透明的方式來執(zhí)行固件截取和服務。Bailey 等在 2009 年 6 月 16 日發(fā)布的題為 “Autonomic Recovery fromHardwareErrors on an Input/Output Fabric”(從輸入/輸出結構上的硬件錯誤的自動恢復)的第7,549,090號美國專利介紹了一種將10結構元件中檢測的錯誤從10結構傳播到計算機中的處理元件的裝置、計算機產(chǎn)品和方法,其中所述10結構用于耦合多個端點10字段。特別地,結合從10結構元件中的錯誤恢復,將這種錯誤傳播到受10結構元件影響的端點10字段。通過這樣做,可以允許設備驅動器或用于訪問每個受影響的10資源的其它程序代碼異步地從其相關聯(lián)的10資源的傳播錯誤中恢復,并且通常不需要從10結構元件中的錯誤恢復以等待對每個受影響的10資源的完成恢復。此外,10結構可被動態(tài)地配置為支持可恢復和不可恢復的端點10資源。特別地,響應于端點10資源是非可恢復屬性的檢測,10結構中的10結構元件可被動態(tài)地配置為使機器能夠檢查這種10結構中的信令。在硬件路徑中部署如此被動態(tài)配置的10結構元件,其中在非可恢復資源和訪問非可恢復資源的之間定義所述硬件路徑。
存在這樣的計算機環(huán)境,其中硬件中發(fā)生的某些事件對于處理器固件來說是不可見的。例如,存在不將適配器錯誤報告給處理器固件而是報告給操作系統(tǒng)的情況。然而,操作系統(tǒng)不負責處理這種錯誤。因此,固件無法檢測的這些事件是無法被處理的。
發(fā)明內容
根據(jù)本發(fā)明的方面,提供一種用于將要采取的處理這種事件的動作通知給固件的能力。通過提供用于促進要被采取的動作的通信的計算機程序產(chǎn)品來克服現(xiàn)有技術的缺點并且提供優(yōu)點。計算機程序產(chǎn)品包括計算機可讀存儲介質,其為處理電路可讀并且存儲由處理電路所執(zhí)行的指令,以用于執(zhí)行一種方法。所述方法包括例如,響應于執(zhí)行指定控制塊的服務呼叫邏輯處理器(SCLP)指令,所述控制塊包括事件類型、適配器的功能句柄、適 配器類型和動作限定符(qualifier),基于所述動作限定符來執(zhí)行動作,所述動作包括重置適配器或請求修復動作中的一個;響應于完成SCLP,通知操作系統(tǒng);并且響應于執(zhí)行由操作系統(tǒng)響應于通知來發(fā)出的存儲事件信息命令,獲得與所述動作相關的信息。進一步地,提供一種用于促進事件的通信的計算機程序產(chǎn)品。計算機程序產(chǎn)品包括計算機可讀存儲介質,其為處理電路可讀并且存儲由處理電路所執(zhí)行的指令,以用于執(zhí)行一種方法。例如,所述方法包括例如,響應于已經(jīng)出現(xiàn)的與適配器相關的事件,通知操作系統(tǒng);以及響應于由操作系統(tǒng)響應于所述通知來執(zhí)行存儲事件信息命令,獲得與事件相關聯(lián)的信息,所述信息包括標識適配器的功能句柄并且事件碼提供與適配器相關的狀態(tài)。此處,還描述和要求保護與本發(fā)明的一個或多個方面相關的方法和系統(tǒng)。通過本發(fā)明的技術可以實現(xiàn)附加的特征和優(yōu)點。此處詳細地描述本發(fā)明的其他實施例和方面,并且將本發(fā)明的其他實施例和方面認作要求保護的發(fā)明的一部分。
現(xiàn)在將僅通過實例的方式并參照附圖來描述本發(fā)明的優(yōu)選實施例,其中圖I示出了包含并使用本發(fā)明的一個或多個方面的計算環(huán)境的一個實施例;圖2A示出了根據(jù)本發(fā)明的一方面來執(zhí)行錯誤檢測和動作通知的邏輯的一個實施例;圖2B示出了根據(jù)本發(fā)明的一方面的通知操作系統(tǒng)已經(jīng)采取了動作的邏輯的一個實施例;圖3示出了根據(jù)本發(fā)明的一方面使用的控制塊的一個實施例;圖4示出了包括本發(fā)明的一個或多個方面的計算機程序產(chǎn)品的一個實施例;圖5示出了包括和使用本發(fā)明的一個或多個方面的主機計算機系統(tǒng)的一個實施例;圖6示出了包括和使用本發(fā)明的一個或多個方面的計算機系統(tǒng)的另一例子;圖7示出了包括和使用本發(fā)明的一個或多個方面的計算機網(wǎng)絡的計算機系統(tǒng)的
另一例子;圖8示出了包括和使用本發(fā)明一個或多個方面的計算機系統(tǒng)的各種元件的一個實施例;
圖9A示出了包括和使用本發(fā)明的一個或多個方面的圖8的計算機系統(tǒng)的執(zhí)行單元的一個實施例;圖9B示出了包括和使用本發(fā)明的一個或多個方面的圖8的計算機系統(tǒng)的分支單元的一個實施例;圖9C描述了包括和使用本發(fā)明的一個或多個方面的圖8的計算機系統(tǒng)的加載/存儲單元的一個實施例;以及圖10描述了包括和使用本發(fā)明的一個或多個方面的仿真主機計算機系統(tǒng)的一個實施例。
具體實施方式
根據(jù)本發(fā)明的一方面,提供一種促進向處理器固件通知響應于適配器事件要采取的動作的能力。由在處理單元內執(zhí)行的操作系統(tǒng)來執(zhí)行通知。作為例子,為操作系統(tǒng)提供將操作系統(tǒng)所檢測的適配器錯誤和/或響應于錯誤要采取的動作通知處理單元的固件的能力。如此處使用的,固件是例如處理器的微代碼、毫代碼(millicode)和/或宏代碼。它包括例如用于實現(xiàn)更高級的機器碼的硬件級的指令和/或數(shù)據(jù)結構。在一個實施例中,它包括例如專有(proprietary)代碼,該專有代碼典型地作為包括可信軟件的微代碼或特定于底層硬件的微代碼而被交付,并控制操作系統(tǒng)訪問系統(tǒng)硬件。在一個特定的實施例中,操作系統(tǒng)在已邏輯分區(qū)的環(huán)境中執(zhí)行。在這種環(huán)境中,當分區(qū)使用適配器功能時,所述分區(qū)邏輯上擁有所述功能。例如,所述分區(qū)的操作系統(tǒng)訪問所述適配器并且允許所述功能訪問所述分區(qū)的存儲器。由于分區(qū)邏輯上擁有所述功能,既然某些錯誤被直接報告給在分區(qū)操作系統(tǒng)上運行的設備驅動器而繞過固件,所以它們對于固件來說是不可視的。這意味著分區(qū)操作系統(tǒng)設備驅動器且不是固件可能知道需要硬件修復或服務的某些錯誤。這是有問題的,因為分區(qū)操作系統(tǒng)不擁有執(zhí)行整個系統(tǒng)的硬件維護或修復的責任;沒有從操作系統(tǒng)請求用于硬件的修復動作的現(xiàn)有方法;操作系統(tǒng)執(zhí)行設備專用處理,甚至是適配器類型間共同的那些錯誤;并且設備驅動器的恢復動作是不一致的并且動作包含幾乎無法恢復到復雜方案。因此,根據(jù)本發(fā)明的一方面,提供允許操作系統(tǒng)將適配器錯誤和/或要采取的動作通知給固件的能力。在本發(fā)明的一個方面,提供當由分區(qū)操作系統(tǒng)且不是固件檢測到問題時,用于請求外部適配器的維護或修復動作的通用架構。固件發(fā)起一致的全系統(tǒng)方法進行恢復,而不是將恢復留給操作系統(tǒng)。此外,如這里所使用的,術語適配器包括任意類型的適配器(例如存儲適配器、網(wǎng)絡適配器、處理適配器、PCI適配器、加密適配器、其他類型的輸入/輸出適配器等)。在一個實施例中,一適配器包括一個適配器功能。但是,在其他實施例中,一適配器可包括多個適配器功能。本發(fā)明的一個或多個方面可以應用,不管一適配器包含一個適配器功能或多個適配器功能。此外,在這里展示的例子中,適配器是與適配器功能(例如PCI功能)可互換地使用,除非另外說明。參考圖I描述包含并使用本發(fā)明的一個或多個方面的計算環(huán)境的一個實施例。在一個例子中,計算環(huán)境100是由國際商業(yè)機器公司提供的Systemz 服務器。Systemz 服務器是基于由國際商業(yè)機器公司提供的z,ZArchitecture'關于z/Airhiteeture^細節(jié)在IBM 出版,物11 中描述,該出版物的標題是“z/Architecture Principles of Operation”(z/Architecture 操作原理),IBM 出版號 SA22-7832-07,2009 年 2 月。IBMa、System Z 和z/Architecture0是位于紐約州阿蒙克的國際商業(yè)機器公司的注冊商標。在此使用的其他名字可以是國際商業(yè)機器公司或其他公司的注冊商標、商標或產(chǎn)品名稱。在一個例子中,計算環(huán)境100包括經(jīng)由存儲控制器106耦合到系統(tǒng)存儲器104(也稱為主存儲器)的中央處理復合體102。存儲器控制器106從中央處理復合體接收讀取或寫入情趣,并且訪問用于中央處理復合體的系統(tǒng)存儲器。存儲控制器106例如包含硬件且被用于仲裁對系統(tǒng)存儲器的訪問并維持存儲器的一致性。該仲裁針對從中央處理復合體接收的請求以及從一個或多個適配器110接收的請求而執(zhí)行。與中央處理單元類似,適配器向系統(tǒng)存儲器104發(fā)出請求以獲得對系統(tǒng)存儲器的訪問。例如,適配器110是外圍組件互連(PCI)或PCI Express (PCIe)適配器,其包括一個或多個PCI功能。PCI功能發(fā)出請求,該請求要求訪問系統(tǒng)存儲器。所述請求經(jīng)由一個或多個交換器(例如,PCIe交換器)114被路由到輸入/輸出集線器112 (例如,PCI集線器)。在一個例子中,輸入/輸出集線器包括含有一個或多個狀態(tài)機的硬件。所述輸入/輸 出集線器經(jīng)由I/o到存儲器總線118耦合到存儲器控制器106。中央處理器復合體102還耦合到服務處理器102,其促進對服務請求和通知的處理,如下面進一步詳細介紹的。服務處理器例如是服務器,例如由國際商業(yè)機器公司提供的PowerPC 或System z 服務器。還可使用其它服務器或其它處理器和系統(tǒng)。PowerPC 是紐約阿蒙克的國際商業(yè)機器公司的注冊商標。中央處理復合體102包括例如一個或多個分區(qū)或區(qū)域130 (例如,邏輯分區(qū)LPl-LPn)、一個或多個中央處理器132 (例如,CPl_CPm)、以及管理程序134 (例如,邏輯分區(qū)管理器),下面介紹上述內容中的每一個。每個邏輯分區(qū)130能夠用作單獨的系統(tǒng)。即,每個邏輯分區(qū)可以獨立地重置、利用操作系統(tǒng)或管理程序(例如,由紐約阿蒙克的國際商業(yè)機器公司提供的z/VMe)進行初始加載(如果需要的話),并且利用不同的程序進行操作。在邏輯分區(qū)中運行的操作系統(tǒng)、管理程序或應用程序似乎具有對完整和全部系統(tǒng)的訪問,但僅其一部分是可用的。硬件和許可內部碼(還被稱為微代碼或毫代碼)保持邏輯分區(qū)中的程序不受不同邏輯分區(qū)中的程序的干擾。這樣允許多個不同的邏輯分組按時間片方式在單個或多個物理處理器上操作。在這種特定的實例中,每個邏輯分區(qū)具有駐留操作系統(tǒng)136,其對于一個或多個邏輯分區(qū)可以是不同的。在一個實施例中,操作系統(tǒng)136是由紐約阿蒙克的國際商業(yè)機器公司提供的z/OSB或zLinux操作系統(tǒng)。z/OSMPz/VM11是紐約阿蒙克的國際商業(yè)機器公司的注冊商標。中央處理器132是被分配給邏輯分區(qū)的物理處理器資源。例如,邏輯分區(qū)130包括一個或多個邏輯處理器,每個邏輯處理器代表被分配給分區(qū)的全部物理處理器資源132或物理處理器資源132的共享。底層(underlying)處理器資源可專用于所述分區(qū)或與另一分區(qū)共享。通過由處理器132上運行的固件實現(xiàn)的管理程序134來管理邏輯分區(qū)130。邏輯分區(qū)130和管理程序134每個都包括一個或多個程序,所述程序駐留在與中央處理器相關聯(lián)的中央存儲的相應部分中。管理程序134的一個例子是由紐約阿蒙克的國際商業(yè)機器公司所提供的處理器資源/系統(tǒng)管理器(PR/SM)。
盡管在這個例子中描述了具有邏輯分區(qū)的中央處理復合體,可將本發(fā)明的一個或多個方面合并到其他處理單元或并且由其他處理單元來使用,包括多個處理單元中未被分區(qū)的單個或多個處理器處理單元。此處介紹的中央處理復合體僅是一個例子。根據(jù)本發(fā)明的一方面,在中央處理復合體的邏輯分區(qū)中執(zhí)行的操作系統(tǒng)檢測適配器事件并且調用用于適配器的動作,其是外部的,但耦合到中央處理復合體。例如,操作系統(tǒng)檢測適配器錯誤并且請求一個或多個要采取的用于適配器的動作。在一個例子中,所述錯誤是固件未檢測到的。通過參照圖2來進一步詳細地介紹上述處理,其中提供一種當操作系統(tǒng)(例如,分區(qū)操作系統(tǒng))并且不是固件檢測到問題時,用于請求外部適配器的維護或修復動作的通用架構。參照圖2A,執(zhí)行邏輯以檢測適配器錯誤(或其它適配器事件),通知固件,并且采取動作。在這個例子中,由多個實體來執(zhí)行所述邏輯。例如,通過在處理單元上執(zhí)行的操作系統(tǒng),并且特別地,通過與發(fā)生事件的適配器相關聯(lián)的操作系統(tǒng)設備驅動器來執(zhí)行由200所指示的邏輯;由中央處理復合體(或其它處理單元)的固件執(zhí)行在202處指 示的邏輯;以及由耦合到中央處理復合體的服務處理器來執(zhí)行由204所指示的邏輯。開始,操作系統(tǒng)檢測錯誤,步驟210。例如,與引發(fā)錯誤并且作為操作系統(tǒng)的一部分來執(zhí)行的適配器相關聯(lián)的設備驅動器,經(jīng)由事件或狀態(tài)更新來檢測錯誤。然后,作出所述錯誤是要由操作系統(tǒng)來處理的軟件錯誤還是硬件錯誤的確定,查詢212。設備驅動器可通過事件或狀態(tài)更新中指示的錯誤類型來確定上述內容。例如,設備驅動器具有錯誤分類,并且使用這些分類和事件或狀態(tài)更新可確定錯誤類型。如果錯誤不是硬件錯誤,那么由操作系統(tǒng)來處理錯誤。步驟214。錯誤的處理專用于操作系統(tǒng)和錯誤類型。處理完成,步驟216。返回查詢212,如果錯誤是硬件錯誤,那么建立包括與適配器和要采取的動作相關的各種信息的控制塊,步驟218。在這個例子中,創(chuàng)建服務呼叫控制塊(SCCB),通過參照圖3來介紹所述創(chuàng)建服務呼叫控制塊的例子。參照圖3,在一個實施例中,創(chuàng)建服務呼叫控制塊300包括a)事件類型302,其指定被請求的事件的類型,并且在這個例子中,被設置為等于“適配器服務請求”;b)功能句柄304,其標識適配器的實例(例如適配器功能)。在一個例子中,句柄包括使能指示器,其指示句柄是否是使能的、標識適配器功能的功能號(這是靜態(tài)標識符并且可用于功能表中的索引以對包括用于適配器功能的可操作參數(shù)的條目進行定位);以及實例號,其指定所述句柄的特定實例;c)物理功能標識符306,其是適配器的靜態(tài)標識符(例如適配器功能),并且可標識適配器的物理位置;d)適配器類型308,其描述適配器類型(例如,PCI適配器功能);e)動作限定符310,其描述要采取的一個或多個特定動作(例如,重置、然后解除配置;重置;解除配置;請求修復等)。在這個例子中,動作限定符是不依賴于設備的,但是在其它例子中,可以是依賴于設備的。即,在這個例子中,動作限定符不依賴于適配器類型(即,它是與依賴于設備的)。f)響應碼312,其包括操作的結果;以及g)可選數(shù)據(jù)314,其依賴于動作限定符并且可以是適配器專用的。
在其它實施方式中,SCCB中可包括更多、更少或不同的信息。返回圖2A,在創(chuàng)建SCCB之后,將SCCB提供給固件。在一個例子中,經(jīng)由服務呼叫邏輯處理器(SCLP)指令來進行提供,步驟220。由操作系統(tǒng)發(fā)出的并且由固件執(zhí)行的服務呼叫邏輯處理器指令包括命令(例如,配置適配器、解除配置適配器和SCCB的位置的指示。命令和SCCB提供要采取的動作的指示。響應于接收SCLP指令,固件分析SCCB中的信息,步驟222。基于SCCB中的信息,固件確定適配器服務是否被請求,查詢224。通過檢查在服務呼叫邏輯處理器指令所提供的服務呼叫控制塊中的事件類型來作出上述確定。如果所請求的服務不是適配器服務,那么過程完成,步驟226。否則,由固件分析所請求的動作,步驟228。例如,固件分析動作限定符(例如,重置,請求修復)來確定要采取的一個或多個動作。動作限定符是SCLP解除配置命令的子命令。 進一步的,固件發(fā)起對描述事件和所請求的動作的記錄的創(chuàng)建,步驟230。例如,固件發(fā)送請求給服務處理器,以在系統(tǒng)記錄中創(chuàng)建條目。所述請求中包括的是SCCB和服務參考碼(SRC)。在一個實施例中,存在與每個適配器類型/動作限定符組合的相關聯(lián)的唯一SRC。附加地,固件可請求對其它記錄的創(chuàng)建。此外,固件可執(zhí)行由動作限定符所指定的一個或多個動作,步驟232。例如,其可執(zhí)行或指示適配器執(zhí)行重置、解除配置等。服務處理器接收服務請求并分析所述請求,以確定要被創(chuàng)建的記錄條目,步驟240。響應于所述分析,其在描述所請求的動作的系統(tǒng)記錄中創(chuàng)建條目,步驟242。在一個例子中,記錄包括SCCB??梢曰趧幼飨薅ǚ⑻囟ㄟm配器和固件的請求來生成附加記錄。此外,服務處理器確定是否需要“呼叫歸屬”,查詢244。在這個例子中,“呼叫歸屬”指將錯誤報告提供給特定實體,例如IBM ,并且請求要被采取的修復和維護動作。即,即使固件可能采取動作,例如重置、解除配置等,仍需請求指示適配器需要服務(例如,物理修復)的修復動作。是否需要“呼叫歸屬”的確定依賴于服務請求中接收的SRC的值。如果不需要“呼叫歸屬”,那么完成處理,步驟246。否則,如果需要“呼叫歸屬”,則發(fā)出“呼叫歸屬”,步驟248。異步地,固件利用外部中斷來完成操作并且將結果報告給SCCB (例如,在SCCB的響應碼中)。響應于固件基于動作限定符執(zhí)行動作,例如,重置適配器或請求修復動作,向操作系統(tǒng)通知已經(jīng)通過正常SCLP完成、外部中斷和SCCB中的響應碼來執(zhí)行了所述動作。還可應用其它主動請求的事件。這通過參照圖2B進一步介紹。通知操作系統(tǒng),步驟250。例如,從固件為操作系統(tǒng)提供信道報告字(CRW),其指示已經(jīng)執(zhí)行了所述動作。響應于接收所述信道報告字,操作系統(tǒng)發(fā)出存儲事件信息命令以獲得關于事件的信息。特別地,在一個例子中,由固件執(zhí)行存儲事件信息命令,并且返回響應塊,所述響應塊包括例如,指定與所述事件相關聯(lián)的適配器的功能句柄;標識適配器的功能標識符;以及描述用于適配器可用性事件通知的原因的事件碼。示例的事件碼包括已將PCI功能(或適配器)移動到所配置的狀態(tài)。存儲通用PCI功能句柄。已將PCI功能從保留狀態(tài)移動到待機狀態(tài)。存儲通用PCI功能句柄,但是所述配置不使用所述通用PCI功能句柄,直到成功地配置了由PCI功能標識符所標識的PCI。
請求PCI功能的解除配置。如果PCI功能被使能,那么存儲使能的PCI功能。如果PCI功能被禁用,則存儲通用PCI功能句柄。使用人工控制,將PCI功能從配置狀態(tài)移動到就緒或保留狀態(tài)。存儲通用PCI功能句柄,但是所述配置不使用所述通用PCI功能句柄??捎糜谟成銲/O地址轉換的存儲器數(shù)量已經(jīng)改變。一個或多個PCI功能可能處于待機狀態(tài)。不存儲PCI功能級別和PCI功能ID。這些事件碼為操作系統(tǒng)提供由句柄所標識的適配器的狀態(tài)的指示。此處詳細介紹的是允許操作系統(tǒng)或適配器外部的其它組件能夠代表適配器發(fā)起動作。這些動作包括例如,系統(tǒng)級維護和修復請求。軟件(例如,操作系統(tǒng))可以通過獨立于設備驅動器的固件來獲得錯誤的一致性處理的優(yōu)點。操作系統(tǒng),與所述操作系統(tǒng)是何種系統(tǒng)無關,可發(fā)出請求(對于各種操作系統(tǒng)來說是相同的)以使固件采取動作,并且固件處理 要被采取的動作的設備專用屬性。多種不同類型的操作系統(tǒng)并且在一個或多個類型的適配器之間使用單個方法(例如,網(wǎng)絡、存儲器、密碼機和/或處理適配器)在此描述的實施例中,適配器是PCI適配器。如在此使用的,PCI指根據(jù)由外圍組件互連特別興趣組(PCI-SIG)定義的基于PCI的規(guī)范而實現(xiàn)的任何適配器,包括但不限于PCI或PCIe。在一個特定例子中,快速外圍組件互連(PCIe)是組件級互連標準,其定義了用于I/O適配器和主機系統(tǒng)之間的事務的雙向通信協(xié)議。根據(jù)用于PCIe總線上的傳輸?shù)腜CIe標準,PCIe通信被封裝在包中。源于I/O適配器且止于主機系統(tǒng)的事務被稱為上行事務。源于主機系統(tǒng)且止于I/O適配器的事務被稱為下行事務。PCIe拓撲基于成對(例如,一個上行鏈路,一個下行鏈路)以形成PCIe總線的點對點單向鏈路。PCIe標準由PCI-SIG維護并公布。所屬技術領域的技術人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結合的形式,本文一般稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實施例中,本發(fā)明還可以實現(xiàn)為在一個或多個計算機可讀介質中的計算機程序產(chǎn)品的形式,該計算機可讀介質中包含計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用?,F(xiàn)在參考圖4,在一個例子中,計算機程序產(chǎn)品400包括,例如,一個或多個計算機可讀存儲介質402,在其上存儲有計算機可讀的程序代碼裝置或邏輯404,以提供并方便本發(fā)明的一個或多個方面。體現(xiàn)在計算機可讀介質上的程序代碼可以用任何適當?shù)慕橘|傳輸,所述介質包括但不限于無線、有線、光纜、RF等,或上述的任意合適的組合。
可以以一種或多種程序設計語言或其組合來編寫用于執(zhí)行本發(fā)明操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設計語言-諸如”C”語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的 情形中,遠程計算機可以通過任意種類的網(wǎng)絡一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。本文中將參照本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些計算機程序指令通過計算機或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計算機程序指令存儲在能使得計算機或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令能夠提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框實際上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。除了上述,本發(fā)明的一個或多個方面可由服務提供商提供、許諾(offer)、部署、管理、服務等,該服務提供商提供用戶環(huán)境的管理。例如,服務提供商可創(chuàng)建、維持、支持等計算機代碼和/或計算機基礎設施,其為一個或多個用戶執(zhí)行本發(fā)明的一個或多個方面。反過來,服務提供商可例如根據(jù)預訂和/或費用協(xié)議從用戶接受付費。額外地或可替換地,月艮務提供商可從向一個或多個第三方銷售廣告內容接受付費。在本發(fā)明的一個方面,可部署用于執(zhí)行本發(fā)明的一個或多個方面的應用。作為一個例子,部署應用包括提供計算機基礎設施,其可操作以執(zhí)行本發(fā)明的一個或多個方面。作為本發(fā)明的又一個方面,可部署計算基礎設施,其包括將計算機可讀代碼集成到計算機系統(tǒng),其中與計算系統(tǒng)結合的代碼能夠執(zhí)行本發(fā)明的一個或多個方面。作為本發(fā)明的再一個方面,可提供用于集成計算基礎設施包括將計算機可讀碼集成到計算機系統(tǒng)的過程。計算機系統(tǒng)包括計算機可讀介質,其中計算機介質包括本發(fā)明的一個或多個方面。與計算機系統(tǒng)結合的代碼能夠執(zhí)行本發(fā)明的一個或多個方面。盡管以上描述了各種實施例,這些僅是例子。例如,其他體系結構的計算環(huán)境可包含并使用本發(fā)明的一個或多個方面。作為例子,除了 Systems服務器之外的服務器,諸如由國際商業(yè)機器公司提供的Power Systems服務器或其他服務器,或其他公司的服務器,可包括、使用和/或受益于本發(fā)明的一個或多個方面。而且,盡管在此示出的例子中,適配器和I/O集線器(例如,PCI集線器)被認為是服務器的一部分,在其他實施例中,它們不是必須被認為是服務器的一部分,而是可被簡單地認為是耦合到計算環(huán)境的系統(tǒng)存儲器和/或其他組件。計算環(huán)境不需要是服務器。進一步,盡管適配器是基于PCI的,可與其他適配器或其他I/O組件一起使用本發(fā)明的一個或多個方面。適配器和PCI適配器僅僅是例子。此外,SCCB可包括更多、更少或不同的信息。在一些實施方式中,其包括依賴于動作限定符的數(shù)據(jù)。許多其他變化是可能的。 而且,其他類型的計算環(huán)境可受益于本發(fā)明的一個或多個方面。作為例子,可使用適于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng),其包括至少兩個通過系統(tǒng)總線直接或間接耦合到存儲元件的處理器。存儲器元件包括,例如,在程序代碼的實際執(zhí)行期間使用的本地存儲器、大容量存儲器以及高速緩沖存儲器,其提供至少一些程序代碼的臨時存儲,以便減少在執(zhí)行期間必須從大容量存儲器獲取代碼的次數(shù)。輸入/輸出或I/O設備(包括但不限于鍵盤、顯示器、指點設備、DASD、磁帶、⑶、DVD、拇指驅動器(thumb drive)以及其他的存儲介質等)可直接或通過介于其間的I/O控制器被耦合到系統(tǒng)。網(wǎng)絡適配器也可被耦合到系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠通過介于其間的私有或公共網(wǎng)絡而耦合到其他的數(shù)據(jù)處理系統(tǒng)或遠程打印機或存儲設備。調制解調器、電纜調制解調器和以太網(wǎng)卡僅是一些可獲得的網(wǎng)絡適配器類型。參考圖5,其描述了實施本發(fā)明的一個或多個方面的主機計算機系統(tǒng)5000的代表性組件。代表性主機計算機5000包括與計算機存儲器(即,中央存儲器)5002通信的一個或多個CPU,以及到存儲介質設備5011和網(wǎng)絡5010的I/O接口,以用于與其他計算機或SAN等通信。CPU 5001符合具有架構指令集和架構功能的架構。CPU 5001可具有動態(tài)地址轉換(DAT)5003,其用于將程序地址(虛擬地址)轉變?yōu)榇鎯ζ鞯恼鎸嵉刂贰AT典型地包括用于高速緩存轉換的轉換后備緩沖器(TLB)5007,這樣稍后對計算機存儲器5002塊的訪問不需要地址轉換的延遲。典型地,高速緩存5009被使用在計算機存儲器5002和處理器5001之間。高速緩存5009可以是分層的,具有可被多于一個的CPU獲得的大高速緩存,以及大高速緩存和每個CPU之間的較小、較快(較低級)的高速緩存。在一些實施例中,較低級的高速緩存被拆分以為指令獲取和數(shù)據(jù)訪問提供單獨的低級高速緩存。在一個實施例中,由指令獲取單元5004經(jīng)由高速緩存5009從存儲器5002獲取指令。指令在指令解碼單元5006中被解碼,且(在一些實施例中與其他指令一起)被發(fā)送到一個或多個指令執(zhí)行單元5008。典型地,使用若干執(zhí)行單元5008,例如算術執(zhí)行單元、浮點執(zhí)行單元和分支指令執(zhí)行單元。指定被執(zhí)行單元執(zhí)行,如需要,從指令指定的寄存器或存儲器訪問操作數(shù)。如果將從存儲器5002訪問(加載或存儲)操作數(shù),加載/存儲單元5005典型地在被執(zhí)行的指令的控制下處理該訪問。指令可在硬件電路或內部微代碼(固件)中或其組合中被執(zhí)行。需注意的是,計算機系統(tǒng)包括本地(或主)存儲器中的信息,以及尋址、保護以及引用和改變記錄。尋址的一些方面包括地址格式、地址空間的概念、地址的各種類型和其中一種類型的地址被轉換為另一種類型的地址的方式。一些主存儲器包括持久分配地存儲位置。主存儲器向系統(tǒng)提供直接可被尋址的快速訪問的數(shù)據(jù)存儲。數(shù)據(jù)和程序在可被處理之前都將(從輸入設備)被加載到主存儲器。主存儲器可包括一個或多個更小、更快速訪問的緩沖存儲器,有時候被稱為高速緩存。高速緩存典型地與CPU或I/O處理器物理地關聯(lián)。物理結構以及不同存儲介質的使用的效果,除了在性能上,通常不會被程序觀察到??删S護用于指令和數(shù)據(jù)操作數(shù)的單獨的高速緩存。高速緩存中的信息可被維護為相鄰的字節(jié),所述字節(jié)位于被稱為高速緩存塊或高速緩存線(或簡稱為線)的整數(shù)界限上。模型可提供EXTRACT CACHE ATTRIBUTE (提取高速緩存屬性)指令,其返回高速緩存線的字節(jié)大小。模型也可提供PREFETCH DATA (預取數(shù)據(jù))和PREFETCH DATA RELATIVEL0NG (預取較長數(shù)據(jù))指令,其實現(xiàn)存儲到數(shù)據(jù)或指令高速緩存中的預取,或數(shù)據(jù)從高速緩存的釋放。存儲器被視為位的長水平串。對于大部分操作來說,以從左到右的順序進行對存儲器的訪問。位串被細分為八個位的單位。八位單位被稱為字節(jié),其是所有信息格式的基本構件。存儲器中的每個字節(jié)位置由唯一的非負整數(shù)標識,該非負整數(shù)是該字節(jié)位置的地址,或簡稱為字節(jié)地址。相鄰的字節(jié)位置具有連續(xù)的地址,在左邊從O開始且以從左到右的 順序進行。地址是無符號二進制整數(shù),且是24、31或64位。信息一次一個字節(jié)或一組字節(jié)地在存儲器和CPU或通道子系統(tǒng)之間傳遞。除非另有指定,例如在z/Archkecturee中,存儲器中的一組字節(jié)由該組的最左邊的字節(jié)尋址。組中的字節(jié)的數(shù)量可由將被執(zhí)行的操作暗示或顯式地指定。當在CPU操作中使用時,一組字節(jié)被稱為字段。在字節(jié)的每個組內,例如在z/Architeeture 中,位以從左到右的順序被編號。在z/Architecture8中,最左邊的位有時候被稱為“高階”位且最右邊的位被稱為“低階”位。但是,位數(shù)不是存儲器地址。僅字節(jié)可被尋址。為了操作存儲器中的字節(jié)的單個位,訪問整個字節(jié)。字節(jié)上的位從左到右被編號為O到7(例如在z/Architecture 中)。地址中的位被編號為對于24位地址的8-31或40-63,或者對于31位地址的1_31或33-63 ;它們被編號為對于64位地址的0-63。在多個字節(jié)的任何其他的固定長度的格式中,構成格式的位從O開始被連續(xù)編號。為了錯誤檢測,且優(yōu)選地為了校正,一個或多個校驗位可與每一個字節(jié)或一組字節(jié)一起被傳遞。這樣的校驗位由機器自動生成且不能被程序直接控制。存儲容量以字節(jié)的數(shù)量來表示。當存儲器操作數(shù)字段的長度由指令的操作碼暗示時,字段被稱為具有固定長度,其可以是一個、兩個、四個、八個或十六個字節(jié)??蔀槟承┲噶畎凳靖蟮淖侄巍.敶鎯ζ鞑僮鲾?shù)字段的長度沒有被暗示,而是被顯式地表示時,該字段被稱為具有可變長度??勺冮L度的操作數(shù)可以一個字節(jié)的增量(或者對于一些指令,以兩個字節(jié)倍數(shù)或其他倍數(shù))在長度上可變。當信息被放在存儲器中時,僅替換被包括在指定的字段中的哪些字節(jié)位置的內容,即使到存儲器的物理路徑的寬度可能大于正被存儲的字段的長度。某些信息單元位于存儲器中的整數(shù)界限上。對于信息單元,當其存儲器地址是以字節(jié)表示的單元長度的倍數(shù)時,界限被稱為是整數(shù)的。特殊的名稱被給予整數(shù)界限上的2、4、6、8和16字節(jié)的字段。半字是兩字節(jié)邊界上的一組兩個連續(xù)的字節(jié),且是指令的基本構件。字是四字節(jié)邊界上的一組四個連續(xù)的字節(jié)。雙字是八字節(jié)邊界上一組八個連續(xù)的字節(jié)。四倍長字(quadword)是16字節(jié)邊界上的一組16個連續(xù)的字節(jié)。當存儲器地址指定半字、字、雙字和四倍長字時,地址的二進制表示分別包括一個、兩個、三個或四個最右邊的零位。指令將位于二字節(jié)整數(shù)邊界上。大多數(shù)指令的存儲器操作數(shù)不具有界限對準要求。在為指令和數(shù)據(jù)操作數(shù)實現(xiàn)單獨的高速緩存的設備上,如果程序在高速緩存線中存儲且指令被隨后從該高速緩存線獲取,可經(jīng)歷顯著的延遲,不管該存儲是否改變隨后被獲取的指令。在一個實施例中,本發(fā)明可被軟件(有時候被稱為許可的內部代碼、固件、微代碼、毫代碼、微微代碼(Pico-code )等,其任何一個都將符合本發(fā)明)實施。參考圖5,體現(xiàn)本發(fā)明的軟件程序代碼可典型地由主系統(tǒng)5000的處理器從長期存儲介質設備5011 (諸如CD-ROM驅動器、磁帶驅動或硬盤驅動器)訪問。軟件程序代碼可體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(諸如軟磁盤、硬盤驅動或⑶-ROM)中的任何一個上。代碼可在這樣的介質上被分發(fā),或可從一個計算機系統(tǒng)的計算機存儲器5002或存儲設備通過網(wǎng)絡5010被分發(fā)給 其他計算機系統(tǒng)的用戶,以由這樣的其他系統(tǒng)的用戶使用。軟件程序代碼包括操作系統(tǒng),其控制各種計算機組件和一個或多個應用程序的功能和交互。程序代碼通??蓮拇鎯橘|設備5011調頁到相對更高速的計算機存儲器5002,在此它對于處理器5001是可用的。用于在存儲器中、物理介質上和/或體現(xiàn)軟件程序代碼或經(jīng)由網(wǎng)絡分發(fā)軟件代碼的技術和方法是熟知的,且不會在此被進一步討論。當程序代碼被創(chuàng)建并存儲在有形介質(包括但不限于電子存儲模塊(RAM)、閃存、光盤(CD)、DVD、磁帶等)上時,其經(jīng)常被稱為“計算機程序產(chǎn)品”。計算機程序產(chǎn)品介質典型地可由優(yōu)選地位于計算機系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。圖6示出了可在其中實施本發(fā)明的代表性工作站或服務器硬件系統(tǒng)。圖6的系統(tǒng)5020包括代表性基本計算機系統(tǒng)(base computer system) 5021,諸如個人計算機、工作站或服務器,包括可選的外圍設備。根據(jù)已知技術,基本計算機系統(tǒng)5021包括一個或多個處理器5026以及被用于連接并使能處理器5026和系統(tǒng)5021的其他組件之間的通信的總線。總線將處理器5026連接到存儲器5025以及可包括例如硬盤驅動器(例如,包括磁介質、⑶、DVD和閃存中的任何一個)或磁帶驅動器的長期存儲器5027。系統(tǒng)5021也可包括用戶接口適配器,其經(jīng)由總線將微處理器5026連接到一個或多個接口設備,諸如鍵盤5024、鼠標5023、打印機/掃描儀5030和/或其他接口設備,其可以是任何用戶接口設備,諸如觸摸敏感屏、數(shù)字化輸入墊(digitized entry pad)等??偩€也可經(jīng)由顯示適配器將諸如IXD屏幕或監(jiān)視器的顯示設備5022連接到微處理器5026。系統(tǒng)5021可通過能與網(wǎng)絡5029通信5028的網(wǎng)絡適配器與其他計算機或計算機網(wǎng)絡通信。示例性網(wǎng)絡適配器是通信通道、令牌環(huán)網(wǎng)、以太網(wǎng)或調制解調器?;蛘撸到y(tǒng)5021可使用諸如⑶ro (蜂窩數(shù)字分組數(shù)據(jù))卡的無線接口來通信。系統(tǒng)5021可與局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的這樣的其他計算機關聯(lián),或系統(tǒng)5021可以是與另一個計算機的客戶機/服務器安排中的客戶機等。所有這些配置以及合適的通信硬件和軟件在本領域中是已知的。圖7示出了其中可實施本發(fā)明的數(shù)據(jù)處理網(wǎng)絡5040。數(shù)據(jù)處理網(wǎng)絡5040可包括多個單獨的網(wǎng)絡,諸如無線網(wǎng)和有線網(wǎng),其每個可包括多個單獨的工作站5041、5042、5043、5044。此外,本領域技術人員將理解,可包括一個或多個LAN,其中LAN可包括多個耦合到主處理機的智能工作站。仍然參考圖7,網(wǎng)絡也可包括大型計算機或服務器,諸如網(wǎng)關計算機(客戶機服務器5046)或應用服務器(遠程服務器5048,其可訪問數(shù)據(jù)儲存庫,且也可直接從工作站5045被訪問)。網(wǎng)關計算機5046用作到每個單獨網(wǎng)絡的進入點。當將一個連網(wǎng)協(xié)議連接到另一個時,需要網(wǎng)關。網(wǎng)關5046可通過通信鏈路優(yōu)選地耦合到另一個網(wǎng)絡(例如因特網(wǎng)5047)。也可使用通信鏈路將網(wǎng)關5046直接耦合到一個或多個工作站5041、5042、5043、5044??梢岳每蓮膰H商業(yè)機器公司獲得的IBM eServerTMSystem服務器來實現(xiàn)網(wǎng)關計算機。同時參考圖6和7,可體現(xiàn)本發(fā)明的軟件編程代碼可被系統(tǒng)5020的處理器5026從諸如CD-ROM驅動器或硬盤驅動器的長期存儲介質5027訪問。軟件編程代碼可被體現(xiàn)在與 數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(諸如軟盤、硬盤驅動器或⑶-ROM)中的任一個上。代碼可在這樣的介質上被分發(fā),或從一個計算機系統(tǒng)的存儲器或存儲設備通過網(wǎng)絡被分發(fā)到其他計算機系統(tǒng)的用戶5050、5051,以供這樣的其他系統(tǒng)的用戶使用?;蛘撸幊檀a可體現(xiàn)在存儲器5025中,且由處理器5026使用處理器總線訪問。這樣的編程代碼包括操作系統(tǒng),其控制各種計算機組件和一個或多個應用程序5032的功能和交互。程序代碼通常從存儲介質5027調頁到高速存儲器5025,在此它可用于由處理器5026進行處理。用于在存儲器中、在物理介質上體現(xiàn)軟件編程代碼和/或經(jīng)由網(wǎng)絡分發(fā)軟件代碼的技術和方法是公知的,且不會在此進一步討論。程序代碼,當其被創(chuàng)建且在有形介質(包括但不限于電子存儲模塊(RAM)、閃存、光盤(⑶)、DVD、磁帶等)上存儲時,通常被稱為“計算機程序產(chǎn)品”。計算機程序產(chǎn)品介質典型地可以被優(yōu)選地位于計算機系統(tǒng)中的處理電路讀取以由處理電路執(zhí)行。最容易被處理器使用的高速緩存(通常比處理器的其他高速緩存更快更小)是最低級(LI或級別I)高速緩存,且主存儲(主存儲器)是最高級高速緩存(如果有三個級別的話是L3)。最低級高速緩存經(jīng)常被分為保持將被執(zhí)行的機器指令的指令緩存(I-高速緩存),和保持數(shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D-高速緩存)。參考圖8,為處理器5026示出了示例性處理器實施例。典型地,使用一個或多個級別的高速緩存5053來緩沖存儲器塊,以便改善處理器性能。高速緩存5053是高速緩沖器,其保持很可能被使用的存儲器數(shù)據(jù)的高速緩存線。典型的高速緩存線是64、128或256字節(jié)的存儲器數(shù)據(jù)。通常使用單獨的高速緩存以用于緩存指令而不是緩存數(shù)據(jù)。高速緩存一致性(存儲器和高速緩存中的線的副本的同步)通常由本領域中熟知的各種“窺探”算法提供。處理器系統(tǒng)的主存儲器5025通常被稱為高速緩存。在具有4個級別的高速緩存5053的處理器系統(tǒng)中,主存儲器5025有時候被稱為級別5 (L5)高速緩存,因為它典型地更快,且僅保持可被計算機系統(tǒng)使用的非易失性存儲器(DASD、磁帶等)的一部分。主存儲器5025可“高速緩存”由操作系統(tǒng)向主存儲器5025調頁入或從其調頁出的數(shù)據(jù)頁。程序計數(shù)器(指令計數(shù)器)5061保持跟蹤將被執(zhí)行的當前指令的地址。z/Arcliitecture 處理器中的程序計數(shù)器是64位的,且可被截短為31或24位以支持先前的尋址界限。程序計數(shù)器典型地體現(xiàn)在計算機的PSW (程序狀態(tài)字)中,這樣它可在上下文轉換中持續(xù)。因此,具有程序計數(shù)器值的進行中的程序可被例如操作系統(tǒng)中斷(從程序環(huán)境到操作系統(tǒng)環(huán)境的上下文轉換)。當程序不活動時,程序的PSW維持程序計數(shù)器值,且在操作系統(tǒng)執(zhí)行時,操作系統(tǒng)的(PSW中的)程序計數(shù)器被使用。典型地,程序計數(shù)器以等于當前指令的字節(jié)數(shù)的量增量。RISC (精簡指令集計算)指令典型地是固定長度,而CISC (復雜指令集計算)指令典型地是可變長度。IBMz/Architecture8的指令是具有長度為2、4或6字節(jié)的CISC指令。程序計數(shù)器5061被例如上下文轉換操作或分支指令的分支采取操作修改。在上下文轉換操作中,當前的程序計數(shù)器值與關于正被執(zhí)行的程序的其他狀態(tài)信息(諸如條件碼)一起被保存在程序狀態(tài)字中,且新程序計數(shù)器值被載入并指向將被執(zhí)行的新程序模塊的指令。執(zhí)行分支采取操作,以通過將分支指令的結果加載到程序計數(shù)器5061中而允許程序進行決定或在程序內循環(huán)。典型地,使用指令獲取單元5055代表處理器5026獲取指令。獲取單元可獲取“下一序列指令”、分支采取指令的目標指令或上下文轉換后的程序的第一指令?,F(xiàn)在的指令獲取單元通常使用預取技術基于被預取的指令將被使用的可能性來推測性地預取指令。例如,獲取單元可獲取16字節(jié)的指令,其包括下一順序指令以及進一步的順序指令的額外字節(jié)。
獲取的指令隨后被處理器5026執(zhí)行。在一實施例中,獲取的指令被傳遞給獲取單元的分派單元5056。分派單元解碼指令并將關于解碼的指令的信息轉送給合適的單元5057、5058、5060。執(zhí)行單元5057將典型地從指令獲取單元5055接收關于解碼的算術指令的信息,并將根據(jù)指令的操作碼對操作數(shù)執(zhí)行算術操作。優(yōu)選地從存儲器5025、架構寄存器5059或從正被執(zhí)行的指令的立即字段(immediate field)向執(zhí)行單元5057提供操作數(shù)。執(zhí)行的結果,當被存儲時,被存儲在存儲器5025、寄存器5059或其他機器硬件(諸如控制寄存器、PSW寄存器等)中。處理器5026典型地具有一個或多個用于執(zhí)行指令的功能的單元5057、5058、5060。參考圖9A,執(zhí)行單元5057可通過接口邏輯5071與架構通用寄存器5059、解碼/分派單元5056、加載存儲單元5060和其他5065處理器單元通信。執(zhí)行單元5057可使用幾個寄存器電路5067、5068、5069來保持算術邏輯單元(ALU) 5066將操作的信息。ALU執(zhí)行諸如加減乘除的算術操作,以及諸如和、或以及異或(X0R)、旋轉和移位的邏輯運算。優(yōu)選地,ALU支持依賴于設計的專門操作。其他電路可提供其他架構工具5072,例如包括條件碼和恢復支持邏輯。典型地,ALU操作的結果被保持在輸出寄存電路5070中,該輸出寄存器電路可將結果轉送到多種其他處理功能。有許多處理器單元安排,本說明書僅旨在提供對一個實施例的代表性理解。例如,ADD指令將在具有算術和邏輯功能的執(zhí)行單元5057中被執(zhí)行,而例如浮點指令將在具有專用浮點能力的浮點執(zhí)行中被執(zhí)行。優(yōu)選地,執(zhí)行單元通過在操作數(shù)上執(zhí)行操作碼定義的功能在由指令標識的操作數(shù)上操作。例如,ADD指令可被執(zhí)行單元5057在由指令的寄存器字段標識的兩個寄存器5059中發(fā)現(xiàn)的操作數(shù)上執(zhí)行。執(zhí)行單元5057對兩個操作數(shù)執(zhí)行算術加法,并在第三操作數(shù)中存儲結果,其中第三操作數(shù)可以是第三寄存器或兩個源寄存器中的一個。執(zhí)行單元優(yōu)選地利用算術邏輯單元(ALU) 5066,其能執(zhí)行多種邏輯功能,諸如移位、旋轉、和、或以及異或,以及多種代數(shù)函數(shù),包括加減乘除中的任何一個。一些ALU5056被設計為用于標量運算,且有些用于浮點。根據(jù)架構,數(shù)據(jù)可以是大端(big endien)(其中最低有效字節(jié)位于最高字節(jié)地址)或小端(little endien)(其中最低有效字節(jié)位于最低字節(jié)地址)。IBMz/Architectlire^^大端。根據(jù)架構,帶符號字段可以是符號和幅度、I的補碼或2的補碼。2的補碼數(shù)是有利的,其在于ALU不需要設計減法能力,因為不管是2的補碼中的負值還是正值,都僅要求ALU中的加法。數(shù)字通常以速記描述,其中12位的字段定義了 4096字節(jié)塊的地址,且通常被描述為例如4Kbyte (千字節(jié))塊。參考圖9B,用于執(zhí)行分支指令的分支指令信息典型地被發(fā)送到分支單元5058,該分支單元經(jīng)常使用諸如分支歷史表5082的分支預測算法,在其他條件運算完成前預測分支結果。在條件運算完成前,當前分支指令的目標將被獲取并推測性地執(zhí)行。當條件運算完成時,基于條件運算的條件和推測的結果,推測性執(zhí)行的分支指令或被完成或被丟棄。典型的分支指令可測試條件碼,以及如果條件碼滿足分支指令的分支要求,分支到目標地址,分支地址可基于若干數(shù)被計算,所述數(shù)包括例如在寄存器字段或是指令的立即字段中找到的數(shù)。分支單元5058可利用具有多個輸入寄存器電路5075、5076、5077和一個輸出寄存器電路5080的ALU 5074。分支單元5058可與例如通用寄存器5059、解碼分派單元5056或其他電路5073通信。一組指令的執(zhí)行可由于多個原因中斷,所述原因包括例如由操作系統(tǒng)發(fā)起的上下 文轉換、引起上下文轉換的程序異?;蝈e誤、引起上下文轉換的I/o中斷信號或多個程序(在多線程環(huán)境中)的多線程活動。優(yōu)選地,上下文轉換動作保存關于當前執(zhí)行的程序的狀態(tài)信息,且隨后加載關于正被調用的另一個程序的狀態(tài)信息。狀態(tài)信息可被存儲在例如硬件寄存器或存儲器中。狀態(tài)信息優(yōu)選地包括指向將被執(zhí)行的下一個指令的程序計數(shù)器值、條件碼、存儲器轉換信息和架構寄存器內容。上下文轉換活動可被硬件電路、應用程序、操作系統(tǒng)程序或固件代碼(微代碼、微微代碼或許可內部碼(LIC))單獨地或其組合實現(xiàn)。處理器根據(jù)指令定義的方法而訪問操作數(shù)。指令可使用指令的一部分的值提供立即操作數(shù),可提供一個或多個寄存器字段,其顯式地指向通用寄存器或專用寄存器(例如浮點寄存器)。指令可利用由操作碼字段確定的暗示的寄存器作為操作數(shù)。指令可利用用于操作數(shù)的存儲器位置。可由寄存器、立即字段或寄存器和立即字段的組合提供操作數(shù)的存儲器位置,如由z/Architecture 長位移工具(facility)所例示的,其中該指令定義了基寄存器、索引寄存器和立即字段(位移字段),它們加到一起,以提供例如存儲器中的操作數(shù)的地址。此處的位置典型地意味著主存儲器(主存儲設備)中的位置,除非另外指明。參考圖9C,處理器使用加載/存儲單元5060訪問存儲器。加載/存儲單元5060可以通過獲取存儲器5053中的目標操作數(shù)的地址并將操作數(shù)加載到寄存器5059或其他存儲器5053位置中,來執(zhí)行加載操作,或可以通過獲取存儲器5053中的目標操作數(shù)的地址并將從寄存器5059或另一個存儲器5053位置獲得的數(shù)據(jù)存儲在存儲器5053中的目標操作數(shù)位置,來執(zhí)行存儲操作。加載/存儲單元5060可以是推測性的,且可以相對于指令順序來說無序的順序訪問存儲器,但是加載/存儲單元5060將向程序維持指令按順序執(zhí)行的外觀。加載/存儲單元5060可與通用寄存器5059、解密/分派單元5056、高速緩存/存儲器接口 5053或其他元件5083通信,且包括各種寄存器電路、ALU 5085和控制邏輯5090以計算存儲器地址并提供流水線順序以使操作保持次序。一些操作可不按順序,但加載/存儲單元提供功能以使不按順序執(zhí)行的操作對程序看起來如已按順序執(zhí)行一樣,如本領域所熟知的。優(yōu)選地,應用程序“看到的”地址通常被稱為虛擬地址。虛擬地址有時候被稱為“邏輯地址”和“有效地址”。這些虛擬地址之所以虛擬,在于它們由多種動態(tài)地址轉換(DAT)技術中的一種重定向到物理存儲器位置,所述動態(tài)地址轉換技術包括但不限于簡單地給用偏移值給虛擬地址加前綴、經(jīng)由一個或多個轉換表轉換虛擬地址,所述轉換表優(yōu)選地包括至少一個段表和頁表(單獨地或組合地),優(yōu)選地,段表具有指向頁表的項。在z/Archit_ecti丨,提供轉換分級結構,包括區(qū)域第一表、區(qū)域第二表、區(qū)域第三表、段表和可選的頁表。轉換表的性能通常通過利用轉換后備緩沖器(TLB)被改善,該轉換后備緩沖器包括將虛擬地址映射到相關的物理存儲位置的項。當DAT使用轉換表轉換虛擬地址時,創(chuàng)建項。于是,虛擬地址的隨后使用可利用快的TLB的項,而不是慢的順序轉換表訪問。TLB內容可由包括LRU (最少最近使用的)多個替換算法來管理。
在處理器是多處理器系統(tǒng)的處理器的情況下,每個處理器具有保持共享資源的責任,所述共享資源諸如I/o、高速緩存、TLB和存儲器,它們互鎖以實現(xiàn)一致性。典型地,“窺探”技術將被用于維持高速緩存一致性。在窺探環(huán)境中,每個高速緩存線可被標記為正處于共享狀態(tài)、獨占狀態(tài)、改變狀態(tài)、無效狀態(tài)等中的一個,以便有助于共享。I/O單元5054 (圖8)向處理器提供用于附加到例如包括磁帶、盤、打印機、顯示器和網(wǎng)絡的外圍設備的裝置。I/o單元通常由軟件驅動器向計算機程序呈現(xiàn)。在諸如來自 Β\Ρ的Systemz*的大型計算機中,通道適配器和開放系統(tǒng)適配器是提供操作系統(tǒng)和外圍設備之間的通信的大型計算機的I/O單元。而且,其他類型的計算環(huán)境可受益于本發(fā)明的一個或多個方面。作為例子,環(huán)境可包括仿真器(例如,軟件或其他仿真機制),其中特定架構(包括例如指令執(zhí)行、諸如地址轉換的架構功能、以及架構寄存器)或其子集被仿真(例如,在具有處理器和存儲器的本機計算機系統(tǒng)中)。在這樣的環(huán)境中,仿真器的一個或多個仿真功能可實施本發(fā)明的一個或多個方面,即使執(zhí)行仿真器的計算機可具有與正被仿真的能力不同的架構。作為一個例子,在仿真模式中,解碼正被仿真的特定指令或操作,且建立合適的仿真功能以實施單個指令或操作。在仿真環(huán)境中,主計算機包括例如存儲器以存儲指令和數(shù)據(jù);指令獲取單元以從存儲器獲取指令,且可選地,提供用于獲取的指令的本地緩沖;指令解碼單元以接收獲取的指令并確定已被獲取的指令的類型;以及指令執(zhí)行單元以執(zhí)行該指令。執(zhí)行可包括將數(shù)據(jù)從存儲器加載到寄存器;從寄存器將數(shù)據(jù)存儲回存儲器;或執(zhí)行如由解碼單元確定的某些類型的算術或邏輯運算。在一個例子中,每個單元在軟件中實現(xiàn)。例如,被所述單元執(zhí)行的操作被實現(xiàn)為仿真器軟件中的一個或多個子例程。更具體地,在大型計算機中,程序員(通常是如今的“C”程序員)一般通過編譯器應用使用架構機器指令。存儲在存儲介質中的這些指令可以在z/Airhitet!tureBlBiVP服務器中本機地執(zhí)行,或在執(zhí)行其他架構的機器中執(zhí)行。它們可在現(xiàn)有的和未來的IBM8大型計算機服務器以及 ΒΜ 的其他機器(例如,Power Systems服務器和Systemxa服務器)中被仿真。它們可在使用由IBM8、Intel'AMD 等制造的硬件的各種機器上運行Linux的機器中被執(zhí)行。除了在z/Architecture嚇的該硬件上執(zhí)行,Linux也可被用于這樣的機器,其使用由Hercules或FSI (Fundamental Software, Inc)提供的仿真,其中,一般來說執(zhí)行是在仿真模式中。在仿真模式中,仿真軟件由本機處理器執(zhí)行以仿真被仿真處理器的架構。在萬維網(wǎng)WWW. hercules-390· org and www. funsoft. com分別可獲得與上述參考的仿真器產(chǎn)品相關的信息。本機處理器典型地執(zhí)行仿真軟件,其包括固件或本機操作系統(tǒng),以執(zhí)行被仿真處理器的仿真程序。仿真軟件負責獲取并執(zhí)行被仿真處理器架構的指令。仿真軟件維護仿真的程序計數(shù)器以保持跟蹤指令界限。仿真軟件可一次獲取一個或多個仿真的機器指令,并將所述一個或多個仿真的機器指令轉換為對應的本機機器指令組,以由本機處理器執(zhí)行。這些轉換的指令可被高速緩存,這樣可完成更快的轉換。盡管,仿真軟件將維持被仿真的處理器架構的架構規(guī)則以保證為被仿真處理器編寫的操作系統(tǒng)和應用正確操作。而且,仿真軟件將提供由被仿真的處理器架構確定的資源,包括但不限于控制寄存器、通用寄存器、浮點寄存器、例如包括段表和頁表的動態(tài)地址轉換功能、中斷機制、上下文轉換機制、日中時間(TOD)時鐘和到I/O子系統(tǒng)的架構接口,這樣被設計為在被仿真處理器上運行的操作系統(tǒng)或應用程序可在具有仿真軟件的本機處理器上運行。解碼正被仿真的特定指令,且調用子例程以執(zhí)行該單個指令的功能。仿真被仿真處理器的功能的仿真軟件功能例如在“C”子例程或驅動器中實現(xiàn),或由提供用于特定硬件的驅動器的其他方法實現(xiàn),如本領域技術人員在理解優(yōu)選實施例的描述后將理解的。 包括但不限于 Beausoleil 等人的標題為 “Multiprocessor for Hardware Emulation”的美國專利證書號5,551,013 ;以及Scalzi等人的標題為“Preprocessing of StoredTargetRoutines for Emulating Incompatible Instructions on a Target Processor,,的美國專利證書號6,009, 261 ;以及Davidian等人的標題為“Decoding GuestInstructionto Directly Access Emulation Routines that Emulate the Guestlnstructions,,的美國專利證書號,5, 574, 873 ;以及 Gorishek 等人的標題為 “Symmetrical MultiprocessingBus and Chipset Used for CoprocessorSupport Allowing Non-Native Code to Run ina System”的美國專利證書號6,308,255 ;以及Lethin等人的標題為“Dynamic OptimizingObject CodeTranslator for Architecture Emulation and Dynamic OptimizingObjectCode Translation Method” 的美國專利證書號 6,463,582,;以及 Eric Traut 的標題為“Method for Emulating Guest Instructions on a Host ComputerThrough DynamicRecompilation of Host Instructions”的美國專利證書號5,790,825 ;以及許多其他專利的各種軟件和硬件仿真專利示出各種已知的方式來實現(xiàn)針對可為本領域技術人員獲得的目標機器對為不同機器進行架構設計的指令格式的仿真。在圖10中,提供了仿真主計算機系統(tǒng)5092的例子,其仿真主架構的主計算機系統(tǒng)5000’。在仿真主計算機系統(tǒng)5092中,主處理器(CPU) 5091是仿真主處理器(或虛擬主處理器),并包括具有與主計算機5000’的處理器5091不同的本機指令集架構的仿真處理器5093。仿真主計算機系統(tǒng)5092具有可被仿真處理器5093訪問的存儲器5094。在示例性實施例中,存儲器5094被分區(qū)為主計算機存儲器5096部分和仿真例程5097部分。根據(jù)主計算機架構,主計算機存儲器5096對于仿真主計算機5092的程序來說是可用的。仿真處理器5093執(zhí)行與被仿真處理器5091不同架構的架構指令集的本機指令(即來自仿真程序處理器5097的本機指令),且可通過使用從順序和訪問/解碼例程獲得的一個或多個指令從主計算機存儲器5096中的程序訪問用于執(zhí)行的主機指令,所述順序和訪問/解碼例程可解碼訪問的主機指令,以確定用于仿真被訪問的主機指令的功能的本機指令執(zhí)行例程。被定義用于主計算機系統(tǒng)5000’架構的其他工具可被架構工具例程仿真,所述架構工具例程包括諸如通用寄存器、控制寄存器、動態(tài)地址轉換和I/o子系統(tǒng)支持和處理器高速緩存等工具。仿真例程也可利用在仿真處理器5093中可獲得功能(諸如通用寄存器和虛擬地址的動態(tài)轉換)以改善仿真例程的性能。也可提供專用硬件和卸載引擎以輔助處理器5093來仿真主計算機5000’的功能。在此使用的術語僅是為了描述特定實施例,且不旨在限制本發(fā)明。如在此使用的,單數(shù)形式“一”、“一個”和“該”也旨在包括復數(shù)形式,除非上下文另外清楚地指明。還將理解,當在說明書中使用時,術語“包括”和/或“包含”指明存在所述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或附加一個或多個其他特征、整體、步驟、操作、元件和/或組件。所附權利要求書中的所有裝置或步驟加功能元件的相應結構、材料、操作以及等價物,如有的話,旨在包括用于結合如特別要求保護的其他所要求保護的元件來執(zhí)行所述功能的任何結構、材料或操作。呈現(xiàn)本發(fā)明的說明是為了示出和描述的作用,但不是窮盡性的或將本發(fā)明限制于所公開的形式。許多修改和變化對本領域普通技術人員來說是明顯·的,且不脫離本發(fā)明的范圍。選擇和描述實施例是為了最佳地解釋本發(fā)明的原理和實際應用,并使得本領域普通技術人員能針對適于考慮的特定用途的具有各種修改的各種實施例理解本發(fā)明。
權利要求
1.一種用于促進要采取的動作的通信的方法,包括以下步驟 計算機可讀存儲介質,其為 處理電路可讀并且存儲由處理電路所執(zhí)行的指令,以用于執(zhí)行一種方法,包括 響應于執(zhí)行指定控制塊的服務呼叫邏輯處理器(SCLP)指令,所述控制塊包括事件類型、適配器的功能句柄、適配器類型和動作限定符,基于所述動作限定符來執(zhí)行動作,所述動作包括重置適配器或請求修復動作中的一個; 響應于完成SCLP,通知操作系統(tǒng);以及 響應于執(zhí)行由操作系統(tǒng)響應于通知所發(fā)出的存儲事件信息命令,獲得與所述動作相關的信息。
2.根據(jù)權利要求I所述的方法,其中所述信息包括指示事件的事件碼,所述事件與為適配器執(zhí)行的動作相關聯(lián)。
3.根據(jù)權利要求2所述的方法,其中所述事件包括以下內容中的一個由功能句柄標識的適配器移動到配置狀態(tài);適配器從保留狀態(tài)移動到待機狀態(tài);適配器的解除配置;適配器從配置狀態(tài)移動到待機或保留狀態(tài);存儲器數(shù)量改變以及一個或多個未識別的適配器可能處于待機狀態(tài)。
4.根據(jù)權利要求I所述的方法,其中操作系統(tǒng)在已邏輯分區(qū)的處理單元的邏輯分區(qū)中執(zhí)行,并且所述邏輯分區(qū)邏輯上擁有所述適配器。
5.根據(jù)權利要求I所述的方法,其中由操作系統(tǒng)發(fā)出SCLP以請求動作,所述操作系統(tǒng)進行的請求獨立于適配器的類型和操作系統(tǒng)的類型。
6.根據(jù)權利要求I所述的方法,其中所述執(zhí)行包括每次執(zhí)行用于事件類型的動作時一致地執(zhí)行動作。
7.根據(jù)權利要求I所述的方法,其中所述方法進一步包括響應于接收控制塊,由固件請求系統(tǒng)記錄中的條目的創(chuàng)建,所述條目包括來自控制塊的信息。
8.根據(jù)權利要求7所述的方法,其中請求所述條目的創(chuàng)建包括將請求發(fā)送給服務處理器以創(chuàng)建條目,并且其中所述方法進一步包括 由服務處理器分析所述請求中提供的服務參考碼;以及 由服務處理器基于所述服務參考碼發(fā)起服務修復動作。
9.根據(jù)權利要求8所述的方法,其中與動作相關聯(lián)的是動作限定符,并且其中服務參考碼對于適配器類型和動作限定符組合是唯一的。
10.一種包括在計算機可讀介質上存儲的計算機程序代碼的計算機程序,當所述計算機程序被加載到計算機系統(tǒng)并且在其上執(zhí)行時,促使所述計算機系統(tǒng)執(zhí)行根據(jù)權利要求I至9中任一項所述的方法的所有步驟。
11.一種用于促進要采取的動作的通信的計算機系統(tǒng),所述計算機系統(tǒng)包括 存儲器; 與所述存儲器通信的處理單元; 響應于執(zhí)行指定控制塊的服務呼叫邏輯處理器(SCLP)指令,所述控制塊包括事件類型、適配器的功能句柄、適配器類型和動作限定符,所述處理單元基于所述動作限定符來執(zhí)行動作,所述動作包括重置適配器或請求修復動作中的一個; 所述處理單元響應于完成SCLP,通知操作系統(tǒng);以及所述處理單元響應于執(zhí)行由操作系統(tǒng)響應于通知所發(fā)出的存儲事件信息命令,獲得與所述動作相關的信息。
12.一種用于促進要采取的動作的通信的計算機系統(tǒng),所述計算機系統(tǒng)包括 存儲器;以及 與所述存儲器通信的處理器,其中所述計算機系統(tǒng)被配置為一種執(zhí)行方法,所述方法包括 響應于執(zhí)行指定控制塊的服務呼叫邏輯處理器(SCLP)指令,所述控制塊包括事件類型、適配器的功能句柄、適配器類型和動作限定符,基于所述動作限定符來執(zhí)行動作,所述動作包括重置適配器或請求修復動作中的一個; 響應于完成SCLP,通知操作系統(tǒng);以及 響應于執(zhí)行由操作系統(tǒng)響應于通知所發(fā)出的存儲事件信息命令,獲得與所述動作相關的信息。
13.根據(jù)權利要求12所述的計算機系統(tǒng),其中所述信息包括指示事件的事件碼,所述事件與為適配器執(zhí)行的動作相關聯(lián)。
14.根據(jù)權利要求13所述的計算機系統(tǒng),其中所述事件包括以下內容中的一個由功能句柄標識的適配器移動到配置狀態(tài);適配器從保留狀態(tài)移動到待機狀態(tài);適配器的解除配置;適配器從配置狀態(tài)移動到待機或保留狀態(tài);存儲器數(shù)量改變以及一個或多個未識別的適配器可能處于待機狀態(tài)。
15.根據(jù)權利要求12所述的計算機系統(tǒng),其中操作系統(tǒng)在已邏輯分區(qū)的處理單元的邏輯分區(qū)中執(zhí)行,并且所述邏輯分區(qū)邏輯上擁有所述適配器。
16.根據(jù)權利要求12所述的計算機系統(tǒng),其中由操作系統(tǒng)發(fā)出SCLP以請求動作,所述操作系統(tǒng)進行的請求獨立于適配器的類型和操作系統(tǒng)的類型。
17.根據(jù)權利要求12所述的計算機系統(tǒng),其中所述執(zhí)行包括執(zhí)行動作,其中所述執(zhí)行包括每次執(zhí)行用于事件類型的動作時一致地執(zhí)行動作。
18.根據(jù)權利要求12所述的計算機系統(tǒng),其中所述方法進一步包括響應于接收控制塊,由固件請求系統(tǒng)記錄中的條目的創(chuàng)建,所述條目包括來自控制塊的信息。
19.根據(jù)權利要求18所述的計算機系統(tǒng),其中請求所述條目的創(chuàng)建包括將請求發(fā)送給服務處理器以創(chuàng)建條目,并且其中所述方法進一步包括 由服務處理器分析所述請求中提供的服務參考碼;以及 由服務處理器基于所述服務參考碼發(fā)起修復動作。
20.一種用于促進要采取的動作的通信的計算機程序產(chǎn)品,所述計算機程序產(chǎn)品包括 計算機可讀存儲介質,其為處理電路可讀并且存儲由處理電路所執(zhí)行的指令,以用于執(zhí)行根據(jù)權利要求I至9中任一項所述的方法的所有步驟。
全文摘要
促進響應于硬件事件要采取的硬件動作的通知。耦合到硬件但在其外部的操作系統(tǒng)向固件通知要采取的硬件動作。
文檔編號G06F11/07GK102906708SQ201080066983
公開日2013年1月30日 申請日期2010年11月8日 優(yōu)先權日2010年6月23日
發(fā)明者B·格倫迪寧, D·克拉多克, T·格雷格, C·小蓋尼, U·恩喬庫-查爾斯 申請人:國際商業(yè)機器公司