TWI773959B - 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 - Google Patents

用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 Download PDF

Info

Publication number
TWI773959B
TWI773959B TW109101028A TW109101028A TWI773959B TW I773959 B TWI773959 B TW I773959B TW 109101028 A TW109101028 A TW 109101028A TW 109101028 A TW109101028 A TW 109101028A TW I773959 B TWI773959 B TW I773959B
Authority
TW
Taiwan
Prior art keywords
data
data processing
asynchronous
buffer
message
Prior art date
Application number
TW109101028A
Other languages
English (en)
Other versions
TW202032378A (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 TW202032378A publication Critical patent/TW202032378A/zh
Application granted granted Critical
Publication of TWI773959B publication Critical patent/TWI773959B/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/451Execution arrangements for user interfaces
    • 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/544Buffers; Shared memory; Pipes
    • 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/546Message passing systems or structures, e.g. queues

Abstract

本發明提供一種資料處理系統(210)及一種用於處理一輸入輸出儲存指令(30)之方法,其包含藉由一輸入輸出匯流排控制器(20)通信耦接至至少一個輸入輸出匯流排(22)之一系統巢狀結構(18)。該資料處理系統(210)進一步至少包含一資料處理單元(216),其包含一核心(12)、一系統韌體(10)及一非同步核心-巢狀結構介面(14)。該資料處理單元(216)經由一彙總緩衝器(16)通信耦接至該系統巢狀結構(18)。該系統巢狀結構(18)經組態以非同步地自通信耦接至該輸入輸出匯流排(22)之一外部裝置(214)載入資料及/或將資料儲存至該外部裝置。該資料處理單元(216)經組態以在該系統巢狀結構(18)中之該輸入輸出儲存指令(30)的一執行完成之前完成該輸入輸出儲存指令(30)。

Description

用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
本發明大體上係關於資料處理系統,特定而言,係關於一種用於處理至外部裝置之輸入輸出儲存指令的方法以及一種電腦程式產品及一種資料處理系統。
計算環境可包括一或多種類型之輸入輸出裝置,包括各種類型之配接器。一種類型之配接器為周邊組件互連(PCI)或高速周邊組件互連(PCIe)配接器。此配接器包括用於在配接器與配接器所附接至的系統之間傳達資料的一或多個位址空間。
在一些系統中,耦接至配接器之中央處理單元(CPU)的位址空間之一部分經映射至配接器之位址空間,從而使得存取儲存器之CPU指令能夠直接操縱配接器之位址空間中的資料。
與諸如PCI或PCIe配接器之配接器的通信可藉由控制指令來促進,該等控制指令經特定設計以用於將資料傳達至配接器及自配接器傳達資料且用於通信。
在目前先進技術中,一種用於將資料儲存於配接器中之儲存指令包括例如獲得機器指令以供執行,該機器指令經定義以用於根據電腦架構之電腦執行,該機器指令包括例如識別儲存至配接器指令之作業碼 欄位。第一欄位識別包括待儲存於配接器中之資料的第一位置。第二欄位識別第二位置,其內容包括識別配接器之功能控點、配接器內待儲存有資料之位址空間的標識及位址空間內之位移。執行機器指令,該執行包括使用功能控點以獲得與配接器相關聯之功能表條目。使用功能表條目中之資訊及位移中之至少一者獲得配接器之資料位址。將資料自第一位置儲存於由位址空間之標識所識別的位址空間中之特定位置中,該特定位置由配接器之資料位址識別。
大型多處理器系統中之現有特徵為能夠使目標區內之所有處理器靜止。靜止功能操作以臨時暫停或更改一處理器或一組處理器之狀態,從而執行例如系統更新或備份。在一些情況下,靜止中斷僅適用於系統資源之子集。在此等情況下,系統可分成不同區。對於適用於一個區(目標區)之靜止操作,儘管可能會阻止新的轉譯,但准許在目標區外之處理器繼續執行。通常,至少一個系統控制器或其他機構將靜止廣播至系統中之所有實體處理器,處理收集靜止狀態資訊且向請求處理器指示何時已啟動所有處理器或忽略(篩選)靜止請求。
靜止控制器可通信耦接直至處理器系統中之處理器,且靜止狀態機經組態以接收靜止請求。該電腦系統經組態以執行一種方法,其包括:在靜止控制器處自請求處理器接收靜止請求,該請求處理器為多處理器系統中之複數個處理器中之一者;及基於靜止狀態機之狀態而判定不接受靜止請求。該方法亦包括:基於不接受請求,產生經組態以指示已拒絕靜止請求之拒絕訊息;保持拒絕訊息直至靜止命令被廣播至多處理器系統,該靜止命令係基於不同靜止請求;及基於靜止控制器偵測到靜止命令之廣播而將拒絕訊息發送至請求處理器。
提議一種資料處理系統,其用於處理輸入輸出儲存指令,該資料處理系統包含藉由輸入輸出匯流排控制器通信耦接至至少一個輸入輸出匯流排的系統巢狀結構。該資料處理系統進一步至少包含資料處理單元,其包含核心、系統韌體及非同步核心-巢狀結構介面。該資料處理單元經由彙總緩衝器通信耦接至系統巢狀結構。該系統巢狀結構經組態以非同步地自通信耦接至輸入輸出匯流排之至少一個外部裝置載入資料及/或將資料儲存至至少一個外部裝置。
該資料處理系統經組態以執行:(i)在資料處理系統上執行之作業系統發出輸入輸出儲存指令,該輸入輸出儲存指令經由位址、待傳送之資料及/或指向待傳送之資料的指標及資料之長度來指定具有位移之至少一輸入輸出功能;(ii)該資料處理單元經組態以藉由在輸入輸出儲存指令中指定之位址來識別輸入輸出功能;(iii)該資料處理單元經組態以驗證在位址空間上及客體執行個體層級上是否允許存取輸入輸出功能,該客體在資料處理系統上執行;(iv)該資料處理單元經組態以在系統巢狀結構中之輸入輸出儲存指令的執行完成之前完成輸入輸出儲存指令;及(V)該系統韌體經組態以:若在輸入輸出儲存指令之非同步執行期間,資料處理單元偵測到錯誤,則經由中斷通知作業系統傳輸失敗非同步執行之資料。
有利地,可藉由用可靠的非同步發送指令及機制替換同步PCI指令來改良每指令之循環數目。可執行具有PCIe儲存效應之非同步執行以及非同步狀態處理的PCI儲存指令。非同步可靠執行係基於微架構中之可靠轉遞機制。
根據本發明之第一實施例的資料處理系統包含經由輸入輸 出匯流排自資料處理系統之至少一個外部裝置載入及儲存至至少一個外部裝置的指令。非同步指令在資料已儲存至外部裝置之前完成,而同步指令在資料已儲存至外部裝置之後完成。在此處所描述之實施例內,PCI將可互換地用於任何其他輸入輸出技術,因此不將本發明之實施例限於PCI。
本發明之實施例描述以如可自架構邊界上方觀察到的嚴格有序方式執行輸入輸出儲存指令,而實際執行可在資料處理單元(CPU)之硬體內無次序。
根據本發明之實施例,可藉由PCIe儲存效應之非同步執行以及非同步狀態處理來執行PCI儲存指令。非同步可靠執行係基於本發明資料處理系統之微架構中的可靠轉遞機制。
現有的PCI儲存及儲存區塊指令通常同步,直至PCI儲存資料已遞送至PCIe介面且完成傳回至處理單元的點。
PCI標準僅需要PCI資訊之非同步發送命令,其通常經由使用非同步發出來彙總資料之處理器中的儲存佇列實施。
有利地,根據本發明之實施例,可藉由用輸入輸出儲存指令之可靠非同步發送程序替換同步PCI指令來達成關於每指令循環之改良。
替代待傳送之資料或除待傳送之資料外,根據本發明之實施例的儲存指令亦可指定指向主記憶體之指標,該指標應用以自主記憶體提取資料而非直接含有資料。
客體執行個體層級亦可意謂單一客體或主機可在資料處理系統上執行。
輸入輸出功能本身之位移的位址可為虛擬、實體、邏輯位 址。虛擬及邏輯位址通常經由記憶體管理單元(MMU)轉譯成實體位址,且實體位址接著允許識別意圖使用哪一功能及位移。
在此上下文中,實體位址意謂「可自客體/作業系統內存取之位址轉譯階層中的最低位址」。
根據本發明資料處理系統之有利實施例,彙總緩衝器可通信耦接至非同步核心-巢狀結構介面。因此,彙總緩衝器可連續地處理由非同步核心-巢狀結構介面直接發送的資料,直至待傳送至外部裝置之所有資料儲存於彙總緩衝器中。
根據本發明資料處理系統之有利實施例,若源資料之長度超過八個位元組,則資料可藉由輸入輸出儲存指令經由使用提早完成訊息之非同步傳輸機制在多個資料封包中傳送至彙總緩衝器,否則,資料可在一個資料封包中傳送。因為發送裝置在較早狀態下自由再使用,所以非同步傳輸機制為有利的。
根據本發明資料處理系統之有利實施例,該系統韌體可包含用於處理輸入輸出儲存指令之非同步輸入輸出驅動程式碼。因此,非同步傳輸機制可用於將資料自資料處理單元傳送至外部裝置。
根據本發明資料處理系統之有利實施例,該核心可包含用於處理對非同步輸入輸出驅動程式碼之狀態資訊之記憶體要求的非同步設定碼。此非同步設定碼可進一步促進經由彙總緩衝器至系統巢狀結構及輸入輸出匯流排控制器之非同步傳輸機制。
根據本發明資料處理系統之有利實施例,該非同步核心-巢狀結構介面可包含用於在本端完成之情況下轉遞資料的非同步核心-巢狀結構介面轉遞組件。此組件可在非同步核心-巢狀結構介面中以硬體實 施。因此,可支援用於將資料封包中之資料發送至彙總緩衝器的有利非同步傳輸模式。
根據本發明資料處理系統之有利實施例,彙總緩衝器可包含用於在發送請求之後遞送自由再使用訊息的提早完成邏輯。此使得能夠經由彙總緩衝器提早繼續資料至系統巢狀結構及輸入輸出匯流排控制器之傳輸程序。
根據本發明資料處理系統之有利實施例,彙總緩衝器可經由非同步匯流排耦接至非同步核心-巢狀結構介面。以此方式,可有利地支援用於自非同步核心-巢狀結構介面之資料傳送的非同步傳輸機制。
根據有利實施例,本發明資料處理系統可進一步包含輸入輸出狀態緩衝器,其收集來自系統巢狀結構及/或來自輸入輸出匯流排控制器之傳回狀態,特定而言為來自系統巢狀結構之完成訊息。此輸入輸出狀態緩衝器收集傳回狀態,其充當支援非同步傳輸程序之非同步系統訊息緩衝器。
根據本發明資料處理系統之有利實施例,非同步核心-巢狀結構介面可包含輸入輸出狀態緩衝器。有利地,為快速回應,輸入輸出狀態緩衝器直接整合於非同步核心-巢狀結構介面中。
根據本發明資料處理系統之有利實施例,系統訊息可包含以下各者中之一者:階層式實體目標位址;發起同時多執行緒化(SMT)執行緒或彙總緩衝器識別符;資料之長度;輸入輸出匯流排位址;或用於恢復演算法之序號。因此,可保證相關資訊經由資料處理系統之有利傳遞。
另外,提議一種用於處理至資料處理系統之至少一個外部裝置之輸入輸出儲存指令的方法,該資料處理系統包含藉由輸入輸出匯流 排控制器通信耦接至至少一個輸入輸出匯流排的系統巢狀結構。該資料處理系統進一步至少包含資料處理單元,其包含核心、系統韌體及非同步核心-巢狀結構介面。該資料處理單元經由彙總緩衝器通信耦接至系統巢狀結構。該外部裝置通信耦接至輸入輸出匯流排。
該方法包含:(i)在資料處理系統上執行之作業系統發出輸入輸出儲存指令,該輸入輸出儲存指令經由位址、待傳送之資料及/或指向待傳送之資料的指標及資料之長度來指定具有位移之至少一輸入輸出功能;(ii)該資料處理單元經組態以藉由在輸入輸出儲存指令中指定之位址來識別輸入輸出功能;(iii)該資料處理單元經組態以驗證在位址空間上及客體執行個體層級上是否允許存取輸入輸出功能,該客體在資料處理系統上執行;(iv)該資料處理單元經組態以在系統巢狀結構中之輸入輸出儲存指令的執行完成之前完成輸入輸出儲存指令;及(v)該系統韌體經組態以:若在輸入輸出儲存指令之非同步執行期間,資料處理單元偵測到錯誤,則經由中斷通知作業系統傳輸失敗非同步執行之資料。
有利地,可藉由用可靠的非同步發送指令及機制替換同步PCI指令來改良每指令之循環數目。可執行具有PCIe儲存效應之非同步執行以及非同步狀態處理的PCI儲存指令。非同步可靠執行係基於微架構中之可靠轉遞機制。
根據本發明之另一實施例的方法包含經由輸入輸出匯流排自資料處理系統之至少一個外部裝置載入指令及儲存至至少一個外部裝置。非同步指令在資料已儲存至外部裝置之前完成,而同步指令在資料已儲存至外部裝置之後完成。在此處所描述之實施例內,PCI將可互換地用於任何其他輸入輸出技術,因此不將本發明之實施例限於PCI。
本發明方法之實施例描述以如可自架構邊界上方觀察到的嚴格有序方式執行輸入輸出儲存指令,而實際執行可在資料處理單元(CPU)之硬體內無次序。
根據本發明方法之實施例,可藉由PCIe儲存效應之非同步執行以及非同步狀態處理來執行PCI儲存指令。非同步可靠執行係基於本發明資料處理系統之微架構中的可靠轉遞機制。
現有的PCI儲存及儲存區塊指令通常同步,直至PCI儲存資料已遞送至PCIe介面且完成傳回至處理單元的點。
PCI標準僅需要PCI資訊之非同步發送命令,其通常經由使用非同步發出來彙總資料之處理器中的儲存佇列實施。
有利地,根據本發明方法之實施例,可藉由用輸入輸出儲存指令之可靠非同步發送程序替換同步PCI指令來達成關於每指令循環之改良。
替代待傳送之資料或除待傳送之資料外,根據本發明之實施例的儲存指令亦可指定指向主記憶體之指標,該指標應用以自主記憶體提取資料而非直接含有資料。
客體執行個體層級亦可意謂單一客體或主機可在資料處理系統上執行。
輸入輸出功能本身之位移的位址可為虛擬、實體、邏輯位址。虛擬及邏輯位址通常經由記憶體管理單元(MMU)轉譯成實體位址,且實體位址接著允許識別意圖使用哪一功能及位移。
在此上下文中,實體位址意謂「可自客體/作業系統內存取之位址轉譯階層中的最低位址」。
根據有利實施例,該方法可進一步包含:(i)作業系統發出輸入輸出儲存指令;(ii)取決於資料之長度:若資料之長度超過八個位元組,則系統韌體重複地發出系統訊息以將資料封包發送至彙總緩衝器,直至儲存區塊之所有資料已轉遞至彙總緩衝器,同時系統韌體等待直至資料已由系統訊息發送;否則,系統韌體發出系統訊息以將資料發送至彙總緩衝器;進一步獨立於資料之長度,(iii)系統韌體將系統訊息發出至彙總緩衝器以將資料作為單一巢狀結構訊息非同步地轉遞至輸入輸出匯流排控制器,同時等待彙總緩衝器發送完成訊息;(iv)彙總緩衝器將巢狀結構訊息注入至系統巢狀結構中,其中彙總緩衝器在發送操作之後立即自由再使用,從而發信回至系統韌體;接著彙總緩衝器發送自由再使用訊息;(v)系統巢狀結構將訊息轉遞至目標位置;(vi)輸入輸出匯流排控制器接收訊息且將資料訊框中之資料轉遞至輸入輸出匯流排;(vii)輸入輸出匯流排控制器將完成訊息發送至系統巢狀結構;(viii)系統巢狀結構將完成訊息轉遞至發端彙總緩衝器;(ix)彙總緩衝器將完成轉遞至非同步核心-巢狀結構介面;(x)非同步核心-巢狀結構介面將操作完成發信至系統韌體;及(xi)系統韌體在錯誤之狀況下將缺陷非同步地發信至作業系統。
僅步驟(ii)取決於資料之長度且對於超過八個位元組之資料的長度,該步驟不同於不超過八個位元組之資料的長度。
根據本發明方法之實施例,資料係以圖塊傳輸至彙總緩衝器,直至儲存區塊之所有資料轉遞至彙總緩衝器,其中系統韌體等待直至資料已由非同步核心-巢狀結構介面發送。
因此,若資料小於八個位元組,則可跳過以具有資料封包之圖塊對彙總緩衝器的填充程序,且可在單一步驟中完成資料至外部裝置 之傳輸程序。
根據本發明方法之有利實施例,若資料之長度超過八個位元組,則資料可藉由輸入輸出儲存指令經由使用提早完成訊息之非同步傳輸機制在多個資料封包中傳送至彙總緩衝器。因為發送裝置在較早狀態下自由再使用,所以非同步傳輸機制為有利的。
根據本發明方法之有利實施例,系統韌體可使用用於處理輸入輸出儲存指令之非同步輸入輸出驅動程式碼。因此,非同步傳輸機制可用於將資料自資料處理單元傳送至外部裝置。
根據本發明方法之有利實施例,該核心可使用用於處理對非同步輸入輸出驅動程式碼之狀態資訊之記憶體要求的非同步設定碼。此非同步設定碼可進一步促進經由彙總緩衝器至系統巢狀結構及輸入輸出匯流排控制器之非同步傳輸機制。
根據本發明方法之有利實施例,非同步核心-巢狀結構介面可使用用於在本端完成之情況下轉遞資料的非同步核心-巢狀結構介面轉遞組件。因此,可支援用於將資料封包中之資料發送至彙總緩衝器的有利非同步傳輸模式。
根據本發明方法之有利實施例,彙總緩衝器可使用用於在發送請求之後遞送自由再使用訊息的提早完成邏輯。此使得能夠經由彙總緩衝器提早繼續資料至系統巢狀結構及輸入輸出匯流排控制器之傳輸程序。
根據本發明方法之有利實施例,輸入輸出狀態緩衝器可收集來自系統巢狀結構及/或來自輸入輸出匯流排控制器之傳回狀態,特定而言為來自系統巢狀結構之完成訊息。此輸入輸出狀態緩衝器收集傳回狀 態,其充當支援非同步傳輸程序之非同步系統訊息緩衝器。
根據本發明方法之有利實施例,系統訊息可包含以下各者中之一者:階層式實體目標位址;發起SMT執行緒或彙總緩衝器識別符;資料之長度;輸入輸出匯流排位址;或用於恢復演算法之序號。因此,可保證相關資訊經由資料處理系統之有利傳遞。
另外,提議一種有利的電腦程式產品,其用於處理至資料處理系統之至少一個外部裝置的輸入輸出儲存指令,該資料處理系統包含藉由輸入輸出匯流排控制器通信耦接至至少一個輸入輸出匯流排的系統巢狀結構。該資料處理系統進一步至少包含資料處理單元,其包含核心、系統韌體及非同步核心-巢狀結構介面。該資料處理單元經由彙總緩衝器通信耦接至系統巢狀結構。該外部裝置通信耦接至輸入輸出匯流排。
該電腦程式產品包含電腦可讀儲存媒體,其具有與其一起體現之程式指令,該等程式指令可由電腦系統執行以使得電腦系統執行一種方法,該方法包含:(i)在資料處理系統上執行之作業系統發出輸入輸出儲存指令,該輸入輸出儲存指令經由位址、待傳送之資料及/或指向待傳送之資料的指標及資料之長度來指定具有位移之至少一輸入輸出功能;(ii)該資料處理單元經組態以藉由在輸入輸出儲存指令中指定之位址來識別輸入輸出功能;(iii)該資料處理單元經組態以驗證在位址空間上及客體執行個體層級上是否允許存取輸入輸出功能,該客體在資料處理系統上執行;(iv)該資料處理單元經組態以在系統巢狀結構中之輸入輸出儲存指令的執行完成之前完成輸入輸出儲存指令;及(v)該系統韌體經組態以:若在輸入輸出儲存指令之非同步執行期間,資料處理單元偵測到錯誤,則經由中斷通知作業系統傳輸失敗非同步執行之資料。
另外,提議一種用於執行資料處理程式之資料處理系統,其包含用於執行上文所描述之方法的電腦可讀程式指令。
10:系統韌體
12:核心
14:非同步核心-巢狀結構介面
16:彙總緩衝器
18:系統巢狀結構
20:輸入輸出匯流排控制器
22:輸入輸出匯流排
24:輸入輸出狀態緩衝器
26:提早完成邏輯
28:緩衝器-輸入輸出匯流排控制器介面
30:輸入輸出儲存指令
32:非同步輸入輸出驅動程式碼
34:非同步設定碼/輸入輸出設定碼
36:非同步核心-巢狀結構介面轉遞組件
38:非同步匯流排
40:使用者介面/使用者側
50:系統硬體/韌體
210:資料處理系統
212:電腦系統/伺服器
214:外部裝置
216:CPU/資料處理單元/處理器
218:I/O匯流排
220:網路配接器
222:輸入輸出(I/O)介面
224:顯示器
228:系統記憶體
230:隨機存取記憶體(RAM)
232:快取記憶體
234:儲存系統
240:程式/公用程式
242:程式模組
本發明連同上文所提及之目標及優點以及其他目標及優點可自實施例之以下實施方式最佳地理解,但不限於該等實施例。
圖1描繪根據本發明之實施例的用於處理至外部裝置之輸入輸出儲存指令的資料處理系統之方塊圖。
圖2描繪根據本發明之實施例的用於處理至外部裝置之輸入輸出儲存指令的方法之訊息序列圖。
圖3描繪根據本發明之實施例的用於處理至外部裝置之輸入輸出儲存指令的流程圖。
圖4描繪根據本發明之用於執行方法的資料處理系統之實例實施例。
在圖式中,用相同元件符號來提及相同元件。該等圖式僅為示意性表示,其不意欲描繪本發明之特定參數。此外,該等圖式意欲僅描繪本發明之典型實施例,且因此不應被視為限制本發明之範疇。
本文中所描述之說明性實施例提供用於處理輸入輸出儲存指令之資料處理系統及方法,其包含藉由輸入輸出匯流排控制器通信耦接至至少一個輸入輸出匯流排的系統巢狀結構。該資料處理系統進一步至少包含資料處理單元,其包含核心、系統韌體及非同步核心-巢狀結構介面。該資料處理單元經由彙總緩衝器通信耦接至系統巢狀結構。該系統巢狀結構經組態以非同步地自通信耦接至輸入輸出匯流排之至少一個外部裝 置載入資料及/或將資料儲存至至少一個外部裝置。
說明性實施例可用於包含以下步驟之方法:(i)在資料處理系統上執行之作業系統發出輸入輸出儲存指令,該輸入輸出儲存指令經由位址、待傳送之資料及/或指向待傳送之資料的指標及資料之長度來指定具有位移之至少一輸入輸出功能;(ii)該資料處理單元經組態以藉由在輸入輸出儲存指令中指定之位址來識別輸入輸出功能;(iii)該資料處理單元經組態以驗證在位址空間上及客體執行個體層級上是否允許存取輸入輸出功能,該客體在資料處理系統上執行;(iv)該資料處理單元經組態以在系統巢狀結構中之輸入輸出儲存指令的執行完成之前完成輸入輸出儲存指令;及(v)該系統韌體經組態以:若在輸入輸出儲存指令之非同步執行期間,資料處理單元偵測到錯誤,則經由中斷通知作業系統傳輸失敗非同步執行之資料。
替代待傳送之資料或除待傳送之資料外,根據本發明之實施例的儲存指令亦可指定指向主記憶體之指標,該指標應用以自主記憶體提取資料而非直接含有資料。
客體執行個體層級亦可意謂單一客體或主機可在資料處理系統上執行。
輸入輸出功能本身之位移的位址可為虛擬、實體、邏輯位址。虛擬及邏輯位址通常經由記憶體管理單元(MMU)轉譯成實體位址,且實體位址接著允許識別意圖使用哪一功能及位移。
在此上下文中,實體位址意謂「可自客體/作業系統內存取之位址轉譯階層中的最低位址」。
圖1描繪根據本發明之實施例的用於處理至至少一個外部 裝置214之輸入輸出儲存指令30的資料處理系統210之方塊圖。資料處理系統210包含:系統巢狀結構18,其藉由輸入輸出匯流排控制器20通信耦接至輸入輸出匯流排22;資料處理單元216,其包含核心12、系統韌體10及非同步核心-巢狀結構介面14。
資料處理單元216經由彙總緩衝器16通信耦接至系統巢狀結構18。系統巢狀結構18經組態以經由作為系統巢狀結構18之部分的緩衝器-輸入輸出匯流排控制器介面20以及輸入輸出匯流排控制器28自通信耦接至輸入輸出匯流排22之外部裝置214非同步地載入資料及/或將資料儲存至外部裝置。
彙總緩衝器16通信耦接至非同步核心-巢狀結構介面14。系統韌體10包含用於處理輸入輸出儲存指令30之非同步輸入輸出驅動程式碼32。核心12包含用於處理對非同步輸入輸出驅動程式碼32之狀態資訊之記憶體要求的非同步設定碼34。非同步核心-巢狀結構介面14包含用於在本端完成之情況下轉遞資料的非同步核心-巢狀結構介面轉遞組件36。彙總緩衝器16包含用於在發送請求之後遞送自由再使用訊息的提早完成邏輯26。彙總緩衝器16經由非同步匯流排38耦接至非同步核心-巢狀結構介面14。包含輸入輸出狀態緩衝器24,其收集來自系統巢狀結構18及/或來自輸入輸出匯流排控制器20之傳回狀態,特定而言為來自系統巢狀結構18之完成訊息。輸入輸出狀態緩衝器24直接整合於非同步核心-巢狀結構介面14中。
根據本發明方法之實施例,在資料處理系統210上執行之作業系統發出輸入輸出儲存指令30,該輸入輸出儲存指令經由位址、待傳送之資料及/或指向待傳送之資料的指標及資料之長度來指定具有位移之 至少一輸入輸出功能。資料處理單元216據此經組態以藉由在輸入輸出儲存指令30中指定之位址來識別輸入輸出功能。資料處理單元216經組態以驗證在位址空間上及客體執行個體層級上是否允許存取輸入輸出功能,該客體在資料處理系統210上執行。資料處理單元216經組態以在系統巢狀結構18中之輸入輸出儲存指令30的執行完成之前完成輸入輸出儲存指令30。系統韌體10經組態以:若在輸入輸出儲存指令30之非同步執行期間,資料處理單元216偵測到錯誤,則經由中斷通知作業系統傳輸失敗非同步執行之資料。
輸入輸出儲存指令30在資料處理系統210中跨越架構邊界位於使用者介面40一側,該架構邊界分離系統硬體/韌體50與使用者側40。
因此,若源資料之長度超過八個位元組,則藉由輸入輸出儲存指令30經由使用提早完成訊息之非同步傳輸機制在多個資料封包中傳送資料至彙總緩衝器16,否則,在一個資料封包中傳送資料。
根據本發明資料處理系統之實施例的系統訊息包含以下各者中之一者:階層式實體目標位址;發起SMT執行緒或彙總緩衝器識別符;資料之長度;輸入輸出匯流排位址;或用於恢復演算法之序號。
圖2描繪根據本發明之實施例的用於處理至外部裝置214之輸入輸出儲存指令30的方法之訊息序列圖。
如圖2中所展示,該方法開始於作業系統發出輸入輸出儲存指令30。接下來,如由步驟S100及S104所指示,若資料之長度超過八個位元組,則系統韌體10重複地發出系統訊息以將資料封包發送至彙總緩衝器16,直至儲存區塊之所有資料已轉遞至彙總緩衝器16,同時系統韌 體10等待直至資料已由系統訊息發送。在步驟S102及S106中,將本端完成訊息發送回至系統韌體10。
接著,在步驟S108中,系統韌體10將系統訊息發出至彙總緩衝器16以將資料作為單一巢狀結構訊息非同步地轉遞至輸入輸出匯流排控制器20,同時等待彙總緩衝器16發送完成訊息。
接下來,在步驟S110中,彙總緩衝器16將巢狀結構訊息注入至系統巢狀結構18中,其中彙總緩衝器16在發送操作之後立即自由再使用,從而發信回至系統韌體10。接著,彙總緩衝器16發送自由再使用訊息。
在步驟S112中,系統巢狀結構18將訊息轉遞至目標位置,其後接著步驟S114,輸入輸出匯流排控制器20接收訊息且將資料訊框中之資料轉遞至輸入輸出匯流排,其後接著在步驟S116中,輸入輸出匯流排控制器20將完成訊息發送至系統巢狀結構18。
接下來,在步驟S118中,系統巢狀結構18將完成訊息轉遞至發端彙總緩衝器16,其後接著在步驟S120中,彙總緩衝器16將完成轉遞至非同步核心-巢狀結構介面14。接著,在步驟S122中,非同步核心-巢狀結構介面14將操作完成發信至系統韌體10。
在資料傳送期間發生錯誤之狀況下,系統韌體10將缺陷非同步地發信至作業系統。
在待傳送之資料小於八個位元組的狀況下,跳過彙總緩衝器16之重複填充。
圖3描繪根據本發明之實施例的用於處理至外部裝置214之輸入輸出儲存指令30的流程圖。
資料處理單元之系統韌體在步驟S200中啟動。在步驟S202中,系統韌體接收輸入輸出儲存區塊指令。
接著,在步驟S204中,檢查是否待傳送大於8個位元組。若係如此狀況,則在步驟S206中,核心-巢狀結構介面藉由至多16個位元組訊息填充彙總緩衝器。系統韌體等待(步驟S208),直至在步驟S210中發送本端完成訊息,返回至步驟S204。若在步驟S204之檢查中剩餘小於8個位元組,則流程在步驟S212中以核心-巢狀結構介面發送非同步輸入輸出訊息繼續,其後接著在步驟S214中等待步驟S216中之緩衝器回應。接著,在步驟S218中,執行完成儲存區塊指令,且流程在步驟S220中以系統韌體中之結束而結束。
在步驟S228中,非同步核心-巢狀結構介面邏輯開始出埠程序廻圈,其後接著在步驟S222中接收彙總緩衝器完成訊息及在步驟S224中將資料訊息轉遞至彙總緩衝器,其後接著在步驟S226中將完成訊息發送回至系統韌體。在步驟S230中,接收非同步輸入輸出發送訊息,其後接著將輸入輸出發送訊息轉遞至彙總緩衝器。
在步驟S238中,彙總緩衝邏輯開始出埠程序廻圈,其後接著在步驟S234中接收資料及在步驟S236中,在彙總緩衝器中彙總資料。在步驟S240中,彙總緩衝器亦接收輸入輸出發送訊息,其後接著在步驟S242中,藉由輸入輸出發送訊息自彙總緩衝器轉遞資料。接下來,在步驟S244中,經由核心-巢狀結構介面將回應訊息自彙總緩衝器發送至系統韌體。
現參看圖4,展示資料處理系統210之實例的示意圖。資料處理系統210僅為合適的資料處理系統之一個實例,且並不意欲暗示對本 文中所描述之本發明之實施例的使用或功能性之範疇的任何限制。無論如何,資料處理系統210能夠經實施及/或執行上文所闡述之功能性中之任一者。
在資料處理系統210中,存在電腦系統/伺服器212,其可與眾多其他通用或專用計算系統環境或組態一起操作。可能適合與電腦系統/伺服器212一起使用之熟知計算系統、環境及/或組態的實例包括但不限於:個人電腦系統、伺服器電腦系統、精簡型用戶端、複雜型用戶端、手持型或膝上型電腦裝置、多處理器系統、基於微處理器之系統、機上盒、可程式化消費型電子裝置、網路PC、小型電腦系統、大型電腦系統及包括以上系統或裝置中之任一者的分散式雲端計算環境,以及其類似者。
可在正由電腦系統執行之電腦系統可執行指令(諸如,程式模組)之一般內容背景下描述電腦系統/伺服器212。一般而言,程式模組可包括執行特定任務或實施特定抽象資料類型之常式、程式、物件、組件、邏輯、資料結構等。可在分散式雲端計算環境中實踐電腦系統/伺服器212,其中由經由通信網路而鏈接之遠端處理裝置執行任務。在分散式雲端計算環境中,程式模組可位於包括記憶體儲存裝置的本端及遠端電腦系統儲存媒體兩者中。
如圖4中所展示,以通用計算裝置之形式展示資料處理系統210中之電腦系統/伺服器212。電腦系統/伺服器212之組件可包括但不限於一或多個處理器或處理單元216、系統記憶體228及匯流排218,該匯流排將包括系統記憶體228之各種系統組件耦接至處理器216。
匯流排218表示任何幾種類型之匯流排結構中之一或多 者,包括記憶體匯流排或記憶體控制器、周邊匯流排、加速圖形埠及使用多種匯流排架構中之任一者之處理器或本端匯流排。作為實例而非限制,此類架構包括工業標準架構(ISA)匯流排、微通道架構(MCA)匯流排、增強型ISA(EISA)匯流排、視訊電子標準協會(VESA)本端匯流排及周邊組件互連(PCI)匯流排。
電腦系統/伺服器212通常包括多種電腦系統可讀媒體。此類媒體可為可由電腦系統/伺服器212存取之任何可用媒體,且其包括揮發性及非揮發性媒體、抽取式及非抽取式媒體。
系統記憶體228可包括呈揮發性記憶體之形式的電腦系統可讀媒體,諸如隨機存取記憶體(RAM)230及/或快取記憶體232。電腦系統/伺服器212可進一步包括其他抽取式/非抽取式、揮發性/非揮發性電腦系統儲存媒體。僅作為實例,可提供儲存系統234以用於自非抽取式、非揮發性磁性媒體(圖中未展示且通常被稱為「硬碟機」)讀取及寫入至非抽取式、非揮發性磁性媒體。儘管未展示,但可提供用於自抽取式、非揮發性磁碟(例如,「軟碟」)讀取及寫入至抽取式、非揮發性磁碟之磁碟機,及用於自抽取式、非揮發性光碟(諸如,CD-ROM、DVD-ROM或其他光學媒體)讀取及寫入至抽取式、非揮發性光碟之光碟機。在此等情況下,每一者可藉由一或多個資料媒體介面連接至匯流排218。如下文將進一步描繪及描述,記憶體228可包括具有經組態以進行本發明之實施例之功能的一組(例如,至少一個)程式模組之至少一個程式產品。
作為實例而非限制,具有一組(至少一個)程式模組242之程式/公用程式240以及作業系統、一或多個應用程式、其他程式模組及程式資料可儲存於記憶體228中。作業系統、一或多個應用程式、其他程式模 組及程式資料或其某一組合中之每一者可包括網路連接環境之實施。程式模組242通常進行如本文中所描述之本發明之實施例的功能及/或方法。
電腦系統/伺服器212亦可與以下各者通信:諸如鍵盤、指標裝置、顯示器224等之一或多個外部裝置214;使得使用者能夠與電腦系統/伺服器212互動之一或多個裝置;及/或使得電腦系統/伺服器212能夠與一或多個其他計算裝置通信的任何裝置(例如,網路卡、數據機等)。此通信可經由輸入輸出(I/O)介面222發生。再另外,電腦系統/伺服器212可經由網路配接器220與諸如區域網路(LAN)、通用廣域網路(WAN)及/或公用網路(例如,網際網路)之一或多個網路通信。如所描繪,網路配接器220經由匯流排218與電腦系統/伺服器212之其他組件通信。應理解,儘管未展示,但可結合電腦系統/伺服器212使用其他硬體及/或軟體組件。實例包括但不限於:微碼、裝置驅動程式、冗餘處理單元、外部磁碟機陣列、RAID系統、磁帶機及資料存檔儲存系統等。
本發明可為系統、方法及/或電腦程式產品。該電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上具有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可持留及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為例如但不限於電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前述各者之任何合適組合。電腦可讀儲存媒體之更特定實例的非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型光碟唯讀記憶體(CD-ROM)、數位多功 能光碟(DVD)、記憶棒、軟碟、機械編碼裝置(諸如,上面記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文中所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由導線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別計算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光學傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一計算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別計算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作之電腦可讀程式指令可為以一或多種程式設計語言之任何組合編寫之組譯器指令、指令集架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料,或原始程式碼或目標程式碼,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及習知程序性程式設計語言,諸如「C」程式設計語言或類似程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行,作為單獨套裝軟體部分地在使用者之電腦上執行,部分地在使用者之電腦上及部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後一情形中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,電子 電路系統(包括例如可程式化邏輯電路系統、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA))可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路系統而執行電腦可讀程式指令,以便執行本發明之態樣。
本文參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。應理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之每一區塊,及流程圖說明及/或方塊圖中的區塊之組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器以產生機器,使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令建立用於實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之構件。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施在該一或多個流程圖及/或方塊圖區塊中指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施之處理程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施在該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例的系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中之每一區塊可表示指令之模組、區段或部分,其包 含用於實施指定邏輯功能之一或多個可執行指令。在一些替代實施中,區塊中所提及之功能可不按諸圖中所提及之次序發生。舉例而言,以連續方式展示的兩個區塊實際上可實質上同時執行,或該等區塊有時可以相反次序執行,此取決於所涉及的功能性。亦應注意,可由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊及方塊圖及/或流程圖說明中之區塊的組合。
已出於說明之目的呈現本發明之各種實施例的描述,但該等描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神的情況下,一般熟習此項技術者將顯而易見許多修改及變化。本文中所使用之術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現的技術之技術改良,或使得其他一般熟習此項技術者能夠理解本文中所揭示之實施例。
10:系統韌體
14:非同步核心-巢狀結構介面
16:彙總緩衝器
18:系統巢狀結構
20:輸入輸出匯流排控制器

Claims (22)

  1. 一種資料處理系統(210),其用於處理一輸入輸出儲存指令(30),該資料處理系統包含藉由一輸入輸出匯流排控制器(20)通信耦接至至少一個輸入輸出匯流排(22)之一系統巢狀結構(18),其進一步至少包含:一資料處理單元(216),其包含一核心(12)、一系統韌體(10)及一非同步核心-巢狀結構介面(14),其中該資料處理單元(216)經由一彙總緩衝器(16)通信耦接至該系統巢狀結構(18),其中該系統巢狀結構(18)經組態以非同步地自通信耦接至該輸入輸出匯流排(22)之至少一個外部裝置(214)載入資料及/或將資料儲存至該至少一個外部裝置,且其中(i)在該資料處理系統(210)上執行之一作業系統發出該輸入輸出儲存指令(30),該輸入輸出儲存指令經由一位址、待傳送之資料及/或指向待傳送之資料的一指標及該資料之一長度來指定具有一位移之至少一輸入輸出功能;(ii)該資料處理單元(216)經組態以藉由在該輸入輸出儲存指令(30)中指定之該位址來識別該輸入輸出功能;(iii)該資料處理單元(216)經組態以驗證在一位址空間上及一客體執行個體層級上是否允許存取該輸入輸出功能,該客體在該資料處理系統(210)上執行; (iv)該資料處理單元(216)經組態以在該系統巢狀結構(18)中之該輸入輸出儲存指令(30)的一執行完成之前完成該輸入輸出儲存指令(30);(v)在一請求被發送到所選擇的組件以使能資料傳送之早期繼續之後,接收一自由再使用訊息;(vi)該系統韌體(10)經組態以:若在該輸入輸出儲存指令(30)之非同步執行期間,該資料處理單元(216)偵測到一錯誤,則經由一中斷通知該作業系統。
  2. 如請求項1之資料處理系統,該彙總緩衝器(16)通信耦接至該非同步核心-巢狀結構介面(14)。
  3. 如請求項1或2之資料處理系統,其中若源資料之該長度超過八個位元組,則藉由該輸入輸出儲存指令(30)經由使用一提早完成訊息之一非同步傳輸機制在多個資料封包中傳送該資料至該彙總緩衝器(16),否則,在一個資料封包中傳送該資料。
  4. 如請求項1或2之資料處理系統,該系統韌體(10)包含用於處理該輸入輸出儲存指令(30)之一非同步輸入輸出驅動程式碼(32)。
  5. 如請求項4之資料處理系統,該核心(12)包含用於處理對該非同步輸入輸出驅動程式碼(32)之狀態資訊之記憶體要求的一非同步設定碼(34)。
  6. 如請求項1或2之資料處理系統,該非同步核心-巢狀結構介面(14)包 含用於在本端完成之情況下轉遞該資料的一非同步核心-巢狀結構介面轉遞組件(36)。
  7. 如請求項1或2之資料處理系統,該彙總緩衝器(16)包含用於在發送一請求之後遞送一自由再使用訊息的一提早完成邏輯(26)。
  8. 如請求項1或2之資料處理系統,該彙總緩衝器(16)經由一非同步匯流排(38)耦接至該非同步核心-巢狀結構介面(14)。
  9. 如請求項1或2之資料處理系統,其進一步包含一輸入輸出狀態緩衝器(24),其收集來自該系統巢狀結構(18)及/或來自該輸入輸出匯流排控制器(20)之傳回狀態,特定而言為來自該系統巢狀結構(18)之一完成訊息。
  10. 如請求項9之資料處理系統,該非同步核心-巢狀結構介面(14)包含該輸入輸出狀態緩衝器(24)。
  11. 如請求項1或2之資料處理系統,一系統訊息包含以下各者中之一者:一階層式實體目標位址,發起一SMT執行緒或一彙總緩衝器識別符,資料之一長度,一輸入輸出匯流排位址,用於一恢復演算法之一序號。
  12. 一種用於處理至一資料處理系統(210)之至少一個外部裝置(214)之一輸入輸出儲存指令(30)的方法,該資料處理系統(210)包含:一系統巢狀結構(18),其藉由一輸入輸出匯流排控制器(20)通信耦接至至少一個輸入輸出匯流排(22),且其進一步至少包含一資料處理單元(216),其包含一核心(12)、一系統韌體(10)及一非同步核心-巢狀結構介面(14),其中該資料處理單元(216)經由一彙總緩衝器(16)通信耦接至該系統巢狀結構(18),其中該外部裝置(214)通信耦接至該輸入輸出匯流排(22),該方法包含:(i)在該資料處理系統(210)上執行之一作業系統發出該輸入輸出儲存指令(30),該輸入輸出儲存指令經由一位址、待傳送之資料及/或指向待傳送之資料的一指標及該資料之一長度來指定具有一位移之至少一輸入輸出功能;(ii)該資料處理單元(216)經組態以藉由在該輸入輸出儲存指令(30)中指定之該位址來識別該輸入輸出功能;(iii)該資料處理單元(216)經組態以驗證在一位址空間上及一客體執行個體層級上是否允許存取該輸入輸出功能,該客體在該資料處理系統(210)上執行;(iv)該資料處理單元(216)經組態以在該系統巢狀結構(18)中之該輸入輸出儲存指令(30)的一執行完成之前完成該輸入輸出儲存指令(30);(v)在一請求被發送到所選擇的組件以使能資料傳送之早期繼續之 後,接收一自由再使用訊息;(vi)該系統韌體(10)經組態以:若在該輸入輸出儲存指令(30)之非同步執行期間,該資料處理單元(216)偵測到一錯誤,則經由一中斷通知該作業系統。
  13. 如請求項12之方法,其進一步包含:(i)該作業系統發出該輸入輸出儲存指令(30);(ii)取決於該資料之該長度:若該資料之一長度超過八個位元組,則該系統韌體(10)重複地發出一系統訊息以將一資料封包發送至該彙總緩衝器(16),直至一儲存區塊之所有資料已轉遞至該彙總緩衝器(16),同時該系統韌體(10)等待直至該資料已由該系統訊息發送;否則該系統韌體(10)發出一系統訊息以將該資料發送至該彙總緩衝器(16);(iii)該系統韌體(10)將一系統訊息發出至該彙總緩衝器(16)以將該資料作為單一巢狀結構訊息非同步地轉遞至該輸入輸出匯流排控制器(20),同時等待該彙總緩衝器(16)發送一完成訊息;(iv)該彙總緩衝器(16)將該巢狀結構訊息注入至該系統巢狀結構(18)中,其中該彙總緩衝器(16)在發送操作之後立即自由再使用,從而發信回至該系統韌體(10);接著該彙總緩衝器(16)發送該自由再使用訊息;(v)該系統巢狀結構(18)將該訊息轉遞至目標位置;(vi)該輸入輸出匯流排控制器(20)接收該訊息且將一資料訊框中之資料轉遞至該輸入輸出匯流排;(vii)該輸入輸出匯流排控制器(20)將一完成訊息發送至該系統巢狀 結構(18);(viii)該系統巢狀結構(18)將該完成訊息轉遞至發端彙總緩衝器(16);(ix)該彙總緩衝器(16)將完成轉遞至該非同步核心-巢狀結構介面(14);(x)該非同步核心-巢狀結構介面(14)將操作完成發信至該系統韌體(10);(xi)該系統韌體(10)在一錯誤之狀況下將缺陷非同步地發信至該作業系統。
  14. 如請求項12或13之方法,若該資料之該長度超過八個位元組,則進一步藉由該輸入輸出儲存指令(30)經由使用一提早完成訊息之一非同步傳輸機制在多個資料封包中將該資料傳送至該彙總緩衝器(16)。
  15. 如請求項12或13之方法,該系統韌體(10)進一步使用用於處理該輸入輸出儲存指令(30)之一非同步輸入輸出驅動程式碼(32)。
  16. 如請求項15之方法,該核心(12)進一步使用用於處理對該非同步輸入輸出驅動程式碼(32)之狀態資訊之記憶體要求的一非同步設定碼(34)。
  17. 如請求項12或13之方法,該非同步核心-巢狀結構介面(14)進一步使用用於在本端完成之情況下轉遞該資料的一非同步核心-巢狀結構介面轉遞組件(36)。
  18. 如請求項12或13之方法,該彙總緩衝器(16)進一步使用用於在發送一請求之後遞送一自由再使用訊息的一提早完成邏輯(26)。
  19. 如請求項12或13之方法,一輸入輸出狀態緩衝器(24)進一步收集來自該系統巢狀結構(18)及/或來自該輸入輸出匯流排控制器(20)之傳回狀態,特定而言為來自該系統巢狀結構(18)之一完成訊息。
  20. 如請求項12或13之方法,其中一系統訊息包含以下各者中之一者:一階層式實體目標位址,發起一SMT執行緒或一彙總緩衝器識別符,資料之一長度,一輸入輸出匯流排位址,用於一恢復演算法之一序號。
  21. 一種用於處理至一資料處理系統(210)之至少一個外部裝置(214)之一輸入輸出儲存指令(30)的電腦程式產品,該資料處理系統(210)包含:一系統巢狀結構(10),其藉由一輸入輸出匯流排控制器(20)通信耦接至至少一個輸入輸出匯流排(22),且其進一步至少包含一資料處理單元(216),其包含一核心(12)、一系統韌體(10)及一非同步核心-巢狀結構介面(14),其中該資料處理單元(216)經由一彙總緩衝器(16)通信耦接至該系統巢狀結構(18), 其中該外部裝置(214)通信耦接至該輸入輸出匯流排(22),該電腦程式產品包含一電腦可讀儲存媒體,其具有與其一起體現之程式指令,該等程式指令可由該電腦系統(212)執行以使得該電腦系統(212)執行一種方法,該方法包含:(i)在該資料處理系統(210)上執行之一作業系統發出該輸入輸出儲存指令(30),該輸入輸出儲存指令經由一位址、待傳送之資料及/或指向待傳送之資料的一指標及該資料之一長度來指定具有一位移之至少一輸入輸出功能;(ii)該資料處理單元(216)經組態以藉由在該輸入輸出儲存指令(30)中指定之該位址來識別該輸入輸出功能;(iii)該資料處理單元(216)經組態以驗證在一位址空間上及一客體執行個體層級上是否允許存取該輸入輸出功能,該客體在該資料處理系統(210)上執行;(iv)該資料處理單元(216)經組態以在該系統巢狀結構(18)中之該輸入輸出儲存指令(30)的一執行完成之前完成該輸入輸出儲存指令(30);(v)在一請求被發送到所選擇的組件以使能資料傳送之早期繼續之後,接收一自由再使用訊息;(vi)該系統韌體(10)經組態以:若在該輸入輸出儲存指令(30)之非同步執行期間,該資料處理單元(216)偵測到一錯誤,則經由一中斷通知該作業系統。
  22. 一種用於執行一資料處理程式(240)之資料處理系統(210),該資料處理程式包含用於執行一如請求項12至20中任一項之方法的電腦可讀程式指令。
TW109101028A 2019-01-31 2020-01-13 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品 TWI773959B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19154733 2019-01-31
EP19154733.0 2019-01-31

Publications (2)

Publication Number Publication Date
TW202032378A TW202032378A (zh) 2020-09-01
TWI773959B true TWI773959B (zh) 2022-08-11

Family

ID=65275982

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109101028A TWI773959B (zh) 2019-01-31 2020-01-13 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品

Country Status (10)

Country Link
US (2) US11163566B2 (zh)
EP (1) EP3918466A1 (zh)
JP (1) JP7461693B2 (zh)
CN (1) CN113366433A (zh)
AU (1) AU2020214661B2 (zh)
BR (1) BR112021015075A2 (zh)
CA (1) CA3127852A1 (zh)
IL (1) IL284334B2 (zh)
TW (1) TWI773959B (zh)
WO (1) WO2020156796A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11202104428PA (en) 2019-01-31 2021-05-28 Ibm Handling an input/output store instruction
TWI773959B (zh) 2019-01-31 2022-08-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
WO2020157594A1 (en) 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
TWI767175B (zh) 2019-01-31 2022-06-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
CN112286466A (zh) * 2020-11-18 2021-01-29 合肥沛睿微电子股份有限公司 电子装置及空间复用方法
US11650753B2 (en) * 2021-07-27 2023-05-16 Beijing Tenafe Electronic Technology Co., Ltd. Firmware-controlled and table-based conditioning for synchronous handling of exception cases

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW446912B (en) * 1999-02-03 2001-07-21 Ibm Methods and apparatus for reordering load operations in a computer processing system
TW457426B (en) * 1999-01-22 2001-10-01 Ibm Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
TW201005542A (en) * 2008-07-21 2010-02-01 Mediatek Inc Methods and device for data transmission and data transmission system
US20110320764A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Load instruction for communicating with adapters
US20150378737A1 (en) * 2014-06-26 2015-12-31 Intel Corporation Sending packets using optimized pio write sequences without sfences

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1052278A (en) 1910-11-03 1913-02-04 George I Rockwood Pipe-hanger.
FR2273317B1 (zh) 1974-05-28 1976-10-15 Philips Electrologica
US4947316A (en) 1983-12-29 1990-08-07 International Business Machines Corporation Internal bus architecture employing a simplified rapidly executable instruction set
US5131081A (en) * 1989-03-23 1992-07-14 North American Philips Corp., Signetics Div. System having a host independent input/output processor for controlling data transfer between a memory and a plurality of i/o controllers
JPH03288934A (ja) 1990-04-05 1991-12-19 Fujitsu Ltd 仮想計算機システムにおけるデータ転送制御方式
JPH04195418A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd 磁気テープ記憶装置
US5317739A (en) * 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5548735A (en) 1993-09-15 1996-08-20 International Business Machines Corporation System and method for asynchronously processing store instructions to I/O space
US5553302A (en) 1993-12-30 1996-09-03 Unisys Corporation Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data
JPH07302200A (ja) 1994-04-28 1995-11-14 Hewlett Packard Co <Hp> 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
US5548788A (en) 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
DE19631289A1 (de) 1996-08-02 1998-02-05 Ibm Verfahren zum Testen eines Protokollumsetzers und Protokollumsetzer
US6072781A (en) * 1996-10-22 2000-06-06 International Business Machines Corporation Multi-tasking adapter for parallel network applications
US6085277A (en) * 1997-10-15 2000-07-04 International Business Machines Corporation Interrupt and message batching apparatus and method
US6038646A (en) 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US6496277B1 (en) * 1999-07-23 2002-12-17 Xerox Corporation Data flow control and storage facility for an image reproduction system
US6725348B1 (en) 1999-10-13 2004-04-20 International Business Machines Corporation Data storage device and method for reducing write misses by completing transfer to a dual-port cache before initiating a disk write of the data from the cache
US6490647B1 (en) * 2000-04-04 2002-12-03 International Business Machines Corporation Flushing stale data from a PCI bus system read prefetch buffer
US6578102B1 (en) * 2000-04-18 2003-06-10 International Business Machines Corporation Tracking and control of prefetch data in a PCI bus system
US7042881B1 (en) 2001-06-29 2006-05-09 Cisco Technology, Inc. Asynchronous transfer mode system and method to verify a connection
US7178019B2 (en) 2003-11-13 2007-02-13 Hewlett-Packard Development Company, L.P. Networked basic input output system read only memory
US7234004B2 (en) 2003-12-19 2007-06-19 International Business Machines Corporation Method, apparatus and program product for low latency I/O adapter queuing in a computer system
US7200626B1 (en) 2004-01-22 2007-04-03 Unisys Corporation System and method for verification of a quiesced database copy
US7079978B2 (en) 2004-05-24 2006-07-18 International Business Machines Corporation Apparatus, system, and method for abbreviated library calibration
US7467325B2 (en) 2005-02-10 2008-12-16 International Business Machines Corporation Processor instruction retry recovery
US7631097B2 (en) 2005-07-21 2009-12-08 National Instruments Corporation Method and apparatus for optimizing the responsiveness and throughput of a system performing packetized data transfers using a transfer count mark
US7827433B1 (en) 2007-05-16 2010-11-02 Altera Corporation Time-multiplexed routing for reducing pipelining registers
US7870351B2 (en) 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US7991981B2 (en) 2008-02-01 2011-08-02 International Business Machines Corporation Completion of asynchronous memory move in the presence of a barrier operation
US7941627B2 (en) 2008-02-01 2011-05-10 International Business Machines Corporation Specialized memory move barrier operations
JP4623126B2 (ja) 2008-04-14 2011-02-02 株式会社日立製作所 データ処理システム
US8650335B2 (en) * 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
JP5680466B2 (ja) 2011-03-29 2015-03-04 三菱重工業株式会社 並列処理システム及び並列処理システムの動作方法
US9690581B2 (en) 2013-10-15 2017-06-27 Mil Computing, Inc. Computer processor with deferred operations
US20150261535A1 (en) 2014-03-11 2015-09-17 Cavium, Inc. Method and apparatus for low latency exchange of data between a processor and coprocessor
US10120681B2 (en) 2014-03-14 2018-11-06 International Business Machines Corporation Compare and delay instructions
US9588914B2 (en) 2014-04-09 2017-03-07 International Business Machines Corporation Broadcast and unicast communication between non-coherent processors using coherent address operations
US9477481B2 (en) 2014-06-27 2016-10-25 International Business Machines Corporation Accurate tracking of transactional read and write sets with speculation
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
GB2531011A (en) 2014-10-07 2016-04-13 Ibm Initializing I/O Devices
US9542201B2 (en) 2015-02-25 2017-01-10 Quanta Computer, Inc. Network bios management
JP6493088B2 (ja) * 2015-08-24 2019-04-03 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9965187B2 (en) * 2016-02-18 2018-05-08 Lawrence Livermore National Security, Llc Near-memory data reorganization engine
US9971545B1 (en) 2016-03-23 2018-05-15 Crossbar, Inc. Non-volatile write and read cache for storage media
US10248509B2 (en) 2016-11-16 2019-04-02 International Business Machines Corporation Executing computer instruction including asynchronous operation
KR102520017B1 (ko) 2016-12-31 2023-04-11 인텔 코포레이션 이종 컴퓨팅을 위한 시스템들, 방법들, 및 장치들
US10452278B2 (en) * 2017-03-24 2019-10-22 Western Digital Technologies, Inc. System and method for adaptive early completion posting using controller memory buffer
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
SG11202104428PA (en) 2019-01-31 2021-05-28 Ibm Handling an input/output store instruction
WO2020157594A1 (en) 2019-01-31 2020-08-06 International Business Machines Corporation Handling an input/output store instruction
TWI773959B (zh) 2019-01-31 2022-08-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
TWI767175B (zh) 2019-01-31 2022-06-11 美商萬國商業機器公司 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
US11748101B2 (en) * 2021-07-13 2023-09-05 Arm Limited Handling of single-copy-atomic load/store instruction with a memory access request shared by micro-operations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW457426B (en) * 1999-01-22 2001-10-01 Ibm Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
TW446912B (en) * 1999-02-03 2001-07-21 Ibm Methods and apparatus for reordering load operations in a computer processing system
TW201005542A (en) * 2008-07-21 2010-02-01 Mediatek Inc Methods and device for data transmission and data transmission system
US20110320764A1 (en) * 2010-06-23 2011-12-29 International Business Machines Corporation Load instruction for communicating with adapters
US20150378737A1 (en) * 2014-06-26 2015-12-31 Intel Corporation Sending packets using optimized pio write sequences without sfences

Also Published As

Publication number Publication date
IL284334B1 (en) 2023-11-01
US11762659B2 (en) 2023-09-19
JP2022518340A (ja) 2022-03-15
CN113366433A (zh) 2021-09-07
AU2020214661B2 (en) 2022-09-22
EP3918466A1 (en) 2021-12-08
TW202032378A (zh) 2020-09-01
JP7461693B2 (ja) 2024-04-04
AU2020214661A1 (en) 2021-06-10
US20200249943A1 (en) 2020-08-06
WO2020156796A1 (en) 2020-08-06
IL284334A (en) 2021-08-31
US11163566B2 (en) 2021-11-02
CA3127852A1 (en) 2020-08-06
US20220004387A1 (en) 2022-01-06
IL284334B2 (en) 2024-03-01
BR112021015075A2 (pt) 2021-09-28

Similar Documents

Publication Publication Date Title
TWI773959B (zh) 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
TWI767175B (zh) 用於處理輸入輸出儲存指令之資料處理系統、方法及電腦程式產品
JP7324282B2 (ja) 入出力ストア命令をハンドリングする方法、システム、およびプログラム
US9734031B2 (en) Synchronous input/output diagnostic controls
JP7379491B2 (ja) 入出力ストア命令をハンドリングする方法、システム、およびプログラム
US10114723B2 (en) Synchronous input/output measurement data
US9696912B2 (en) Synchronous input/output command with partial completion