TWI239187B - System and method for managing and validating remote keys which correspond to outstanding data transactions - Google Patents

System and method for managing and validating remote keys which correspond to outstanding data transactions Download PDF

Info

Publication number
TWI239187B
TWI239187B TW091105065A TW91105065A TWI239187B TW I239187 B TWI239187 B TW I239187B TW 091105065 A TW091105065 A TW 091105065A TW 91105065 A TW91105065 A TW 91105065A TW I239187 B TWI239187 B TW I239187B
Authority
TW
Taiwan
Prior art keywords
remote
memory
key
remote key
keys
Prior art date
Application number
TW091105065A
Other languages
English (en)
Inventor
Balaji Parthasarathy
Dominic J Gasbarro
Brian M Leitner
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TWI239187B publication Critical patent/TWI239187B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/358Infiniband Switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Bus Control (AREA)
  • Selective Calling Equipment (AREA)
  • Information Transfer Systems (AREA)
  • Acyclic And Carbocyclic Compounds In Medicinal Compositions (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)
  • Mechanical Operated Clutches (AREA)

Description

1239187
發明説明 負荷、應用處理及隨著網際網路快速成長而引發的企業計 算。 〜由英代爾公司和其它公司發展出來的InfiniBandTM和其先 行者/入世代輸出入(NGI〇)"成為新興解決現行pci匯流排 結構缺點的辦法,其提供一利用一個交換結構和個別輸入/ 輸出通道、而非利用一個共用記憶體映射匯流排結構之標 準基的輸出入平台,以於一個資料網路中的終端節點之間 可靠地轉移資料,如於1999年7月2〇日的NGi〇論壇、,,次世 代輸出入(NGIO)規格”和2000年1〇月24日的InfiniBandTM貿 易協會、,InfiniBandTM結構規格”中所述。使用NGI〇/ InfiniBand ,則一個主系統可利用一種依照該,’虛擬介面 (VI)結構規格、!·〇版"(如康柏電腦公司、英代爾公司及微 軟公司於1997年12月16日所提出的)虛擬介面(VI)結構與一 個或多個遠端系統通訊。通常可利用NGI〇/InfiniBandTM及 VI硬體和軟體支援兩個記憶區(典型地係在不同的系統上) 之間其在一個或多個指定之通道上的資料轉移。每一個利 用一 VI結構的主系統可含有數個VI,其中該等…亦已知為 ••以成對(包含入站佇列和出站佇列)方式形成的工作佇列 (WQ)”,及其中在工作佇列中佈告工作請求(WR)以描述資 料移動作業和欲移動以經由一個資料網路處理和/或運送 之資料的位置。每一個主系統可充當一種啟始一個訊息資 料轉移(訊息傳送作業)之來源(初始器)系統,或可充當一個 訊息傳送作業(訊息接收作業)的一個目標系統。將一位消 費者提交之導致工作指令的工作請求(稱為工作佇列元件 -6 - 本紙乐尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1239187 A7 B7 五、發明説明(3 ) ("WQE”))佈告在與一用作資料轉移作業(像是傳送/接收作 業和遠端直接記憶體存取nRDMA”讀寫作業)之特定網路介 面卡相關的工作仵列上。可於經由一個資料網路之主系統 上的通訊裝置之間產生一個或多個通道、並管理該(等)通 道,以便能夠執行要求的作業。 因為NGIO/InfiniBandTM為一種尚未公諸於市場中的新興 互連技藝,故無任何已知之特別就NGI〇/InfiniBandTM應用 而執行的介面機制。更特定言之,無任何已知的網路介面 卡讓一個主系統利用一個植基於通道的交換組織結構連接 到一個資料網路上、以支援一個主系統上通訊裝置之間的 資料移動作業或支援主系統之間的資料移動作業or via a data network。未將現行的主系統網路介面卡調適成新興的 NGIO/InnniBandTMS 連技藝,因此,就NGIO/InflniBandTMW 機能而言,該等現行的主系統網路介面卡並非最佳化的。 如是,需要一安裝在一個利用一就NGIO/InfiniBandTM應用 之植基於通道的交換組織結構之資料網路中其一主系統上 之專門設計、受性能驅動的主結構協調器。亦需要一種用 以經由一個植基於通道的交換結構管理和驗證相對應至該 一個資料網路中未完成之資料交易(例如讀寫作業)上的遠 端瑜匙之方法或機制。 圖示簡單說明 藉由參考下面的詳述、連同思考該等伴隨的圖示,將更 徹底地認識本發明其代表性的具體實施例,及輕易迅速地 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(5 ) 圖9例證說明執行一個根據本發明一具體實施例之主結 構協調器其一個微引擎(ME)的實例; 圖10例證說明一個根據本發明一具體實施例之用以檢查 該等相對應至主記憶體中未完成之RDMA作業上之遠端鑰 匙其有效性的遠端鑰匙管理程式區塊(RMB)實例; 圖11例證說明一個根據本發明一具體實施例之高階遠端 鑰匙驗證實例;及 圖12例證說明該根據本發明一具體實施例之遠端鑰匙管 理程式區塊(RMB)的一個個別鑰匙驗證實例; 圖13A-13H例證說明一個根據本發明一具體實施例之正 規遠端鑰匙管理程式區塊(RMB)作業的時序圖實例; 圖14A-14H例證說明根據本發明一具體實施例完成一個 正規遠端鑰匙管理程式區塊(RMB)作業的時序圖實例; 圖15A-15H例證說明一個根據本發明一具體實施例之其 中具有一保護領域(PD)錯誤匹配之遠端鑰匙管理程式區塊 (RMB)作業的時序圖實例; 圖16A-16K例證說明一個根據本發明一具體實施例之其, 中具有多個鑰匙錯誤匹配之遠端鑰匙管理程式區塊(RMB) 作業的時序圖實例;及 圖17A-17M例證說明一個根據本發明一具體實施例之其 中有多個具間歇RQ記憶體存取之鑰匙錯誤匹配之遠端鑰 匙管理程式區塊(RMB)作業的時序圖實例。 於所有的圖形描述中,該如虛擬介面(VI)結構規格中所提 出的術語” VI”亦可為已知之如該”次世代輸出入(NGIO)規 -9 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(6 ) 格π中所提出的工作佇列成對(WQP),或可僅為該 f’InfiniBandTM結構規格”中所提出的佇列成對(QP)。因此, 可交換地使用’’VI'1、”WQPn和” QP”,且其均表示唯——個 相同的意思。 發明詳細說明 本發明適合與所有型式的資料網路、輸出入硬體協調器 及晶片組一起使用,包含將終端資訊站(像是電腦、伺服 器、週邊設備、儲存次系統及用作資料通訊的通訊裝置) 鏈結在一起的跟隨晶片設計。該等資料網路的實例可包含 一個區域網路(LAN)、一個廣域網路(WAN)、一個校園區域 網路(CAN)、一個都會區域網路(MAN)、一個全域網路 (GAN)、一個無線式個人區域網路(WPAN)及一個系統區域 網路(SAN),其中包含"新近利用次世代輸出入(NGIO)、未 來輸出入(FIO)、”InfiniBandTM所發展的電腦網路”和”該等包 含植基於通道之交換組織結構、且當電腦技藝提升時可用 以提供可縮放性能之網路”。LAN系統可包含乙太網路、光 纖分散式資料介面(FDDI)記號環LAN、非同步傳輸模式 (ATM)LAN、光纖通道及無線式LAN。然而,為了簡化,故 主要將討論集中在一種包括一個或多個用以在一簡單資料 網路中提供實體鏈路給通道連接之硬體結構協調器的主系 統上,其中該資料網路包括數個藉由相對應鏈結和交換互 連的代表性節點(例如電腦、伺服器及輸出入設備),儘管 未將本發明限制在那裡。 -10 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(1Q ) 以經由相對應的NGIO/InfiniBandTM鏈結轉運該等終端資訊 站與交換之間封包群組中的資料。 例如,節點A可代表一個主系統130(像是一個提供提供種 種應用或服務的主電腦或主伺服器)。同樣地,節點B可代 表另一個網路150包含(但未限制)區域網路(LAN)、廣域網 路(WAN)、乙太網路、ATM及光纖通道網路,其中經由高 速序列鏈結連接節點B。節點C可代表一個I/O設備170,包 含一個或多個I/O控制器和連接到那裡的I/O設備。同時, 節點D可代表一個遠端系統190像是一個提供種種應用或 服務的目標電腦或目標伺服器。或者,節點A、B、C及D 亦可代表NGIO結構100’中充當主系統130與遠端系統150、 170及190間其中間點的個別交換。 多階段交換結構100'可包含一個連接到該等所有用以管 理全部網路管理功能之切換上的結構管理程式250。然而, 或者可將結構管理程式250合併,以作為主系統130、第二 網路150、I/O設備170的一部分,亦或作為用以管理所有網 路管理功能之遠端系統190的一部分。無論哪一種情況,均 可將結構管理程式250架構成用以學習網路拓樸學、判定該 交換表或前向資料庫、偵測和管理該網路中的故障或鏈結 失誤、及執行其它的網路管理功能。 可利用主通道協調器(H C A ) 1 2 0以經由高速序列 NGIO/InfiniBandTM鏈結於主系統130(例如伺服器)的一個記 憶體控制器(未顯示)與一個交換結構100·之間提供一個介 面同樣地可利用目標通道協調器(TCA)l40和160以經由高 -14 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(15 ) 該原子作業規定該硬體讀取一個遠端記憶體位置。該遠端 系統回報該讀取之數值,及藉由將一個更新的數值回寫到 該相同的位置上、條件式地修正/替換該遠端記憶體的内 容。換T之’該原子作業為一個組合讀取、修正及寫入之 合作業。一個原子作業的實例為該比較和轉換”若相等”作 業。該WQE指定一個遠端記憶體位置、一個比較值及一個 新數值。該遠端WQP讀取該指定之記憶體為置,比較該數 值與該訊息中所提供的比較值,且只要該等數值相等時、 該WQP則將該新數值寫到該相同的記憶體位置上。於任一 種事例中,該遠端WQP將其自該記憶體位置中所讀取的數 值回報給該請求的WQP。另一種原子作業為該取得加法作 業’其中該遠端WQP讀取該指定之記憶體,將該數值回報 給该凊求的WQP ’將該訊息中所提供的一個數值加到該數 值上,並繼之將該結果寫到該相同的記憶體位置上。 該記憶體連結下令該硬體更改記憶體註冊關聯性和變更 該一個記憶體視窗的連結。該連結記憶體視窗作業使一個 先前配置的記憶體視窗、連同一組指定之遠端存取權限與 一個現行記憶區内的一個指定位址範圍相關聯。 可僅有一種接收佇列作業,且欲指定一個接收資料緩衝 區。當另一位消費者執行一個傳送作業時,一個接收wqe 則指定該硬體欲將接收自該消費者的資料置放的地方。每 逢該遠端消費者成功地執行一個傳送作業時,該硬體則自 該接收佇列中取得該下一個條目,將該接收之資料放在該 接收WQE中所指定之記憶體位置中,及將一個完成佇列= -19 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公I) 1239187 A7 B7 五、發明説明(16 ) 目放在該完成佇列(CQ)上、以指示該消費者已完成該接收 作業。如是,執行一個傳送作業導致該遠端消費者方的一 個接收佇列作業。 可利用每一個傳送/接收WQE控制一個單一資料封包的 傳輸或接收。傳送” WQEn* RDMA寫入”WQEn另外提供一個 ’’聚集π表列,描述該等虛擬位址自區域系統記憶體206中取 得外出資料(即確切地描述自區域系統記憶體206中的哪裡 取得外出資料)。接收’’WQE"和RDMA讀取” WQE”交替地提 供一個”散置’’表列,描述該等虛擬位址將進來的資料放入 區域系統記憶體206中(即確切地描述進來的資料其儲存在 區域系統記憶體206中的地方)。傳送"WQE"只有在傳送工 作佇列鏈上時才係有效的。相形之下,接收"WQE”只有在 接收工作佇列鏈上時才係有效的。 RDMA丨,WQE,,為一個傳送丨,WQE,,/接收丨,WQE丨·的超集,其 可含有另外的資訊、指示該轉移之資訊的遠端位址。不同 於傳送/接收作業,其中該遠端系統亦利用一個工作請求判 定在什麼地方轉移訊息資料。RDMA ” WQE"經由使用虛擬 位址(VA)、記憶體標示元(ΜΗ)及傳送給該遠端系統的遠端 鑰匙明確地下令該遠端系統在什麼地方轉移該訊息資料。 可利用遠端鑰匙在該遠端系統上作虛擬-實際位址翻譯。 典型地說,每一個nWQE”均可由一個控制區段開始,其 中接在該控制區段之後的為一個選擇性位址區段和任意個 資料區段。控制區段可含有控制資訊和狀態資訊,就讀寫 RDMA作業而言,位址區段可含有遠端緩衝區資訊(即與接 -20 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
線 1239187 A7 B7 五、發明説明(17 ) 收該讀寫請求為目標之VI相關聯的記憶體)。就傳送/接收 和讀寫RDMA兩種作業而言,資料區段可含有有關區域系 統記憶體206的資訊(即與發出該傳送/接收或讀寫請求之VI 相關的記憶體)。 圖3C-3D根據本發明一具體實施例分別例證說明一個傳 送/接收型式”WQE’’350A的實例和一個讀寫RDMA型式 ”WQEn 3 50B的實例。如圖3C中所示,傳送/接收"WQE” 350A 可包括一個控制區段360和一個資料區段370,其中資料區 段370包含一個區段長度欄位372、一個記憶體標示元襴位 374及一個虛擬位址欄376。區段長度372指定該欲傳送或欲 接收之訊息資料的長度。可利用記憶體標示元(MH) 374查 證該傳送/請求處理(即VI)擁有區段長度372和虛擬位址(VA) 376所指示的註冊記憶區。此外,可包含區域鑰匙378以將 一個區域產生的虛擬位址翻譯成實際位址。就一個傳送作 業而言,虛擬位址(VA) 376識別欲在該傳送VI的區域記憶體 空間傳送之訊息資料的啟始記憶體位置《就一個接收作業 而言,虛擬位址(VA) 376識別欲在該請求VI的區域記憶體空 間中儲存該接收之訊息資料之地方的啟始記憶體位置。 如圖3D中所示,讀寫RDMA,,WQE" 350B可包括一個控制 區段360、一個位址區段380及一個資料區段370。位址區段 380可含有一個遠端記憶體標示元欄位382和一個遠端虛擬 位址欄位384。資料區段370可含有一個區段長度欄位372、 一個區域記憶體標示元欄位374及一個區域虛擬位址欄 3 76。此外,可包含區域鑰匙378將一個區域產生的虛擬位 -21 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(18 ) 址翻譯成實際位址。亦可包含遠端鑰匙("Rkey”)386以在該 遠端系統上將一個遠端產生的虛擬位址翻譯成實際位址。 更特定言之,遠端鑰匙386意指一個與一虛擬位址一起用以 識別該遠端系統其區域系統記憶體206中適當存取區域系 統記憶體206的頁次之記憶區或記憶體視窗。 就一個RDMA讀取作業而言,遠端虛擬位址(VA)384識別 該欲讀取之訊息資料其遠端處理記憶體空間中的記憶體位 置。區域虛擬位址(VA)376識別欲置放該接收之訊息的地方 其區域處理記憶體空間的啟始記憶體位置。區段長度欄位 372可指定用以儲存該訊息資料的記憶體量。就一個RDMA 寫入作業而言,遠端虛擬位址(VA)384識別該欲寫入之訊息 資料其遠端處理記憶體空間中的記憶體位置。區域虛擬位 址(VA)376識別欲讀取該轉移之封包其訊息資料的地方其 區域處理記憶體空間中的啟始記憶體位置。由區段長度襴 位372指定該訊息資料的大小。遠端記憶體標示元(MH)382 相對應至遠端虛擬位址(VA)384其所識別之該記憶體相關 的記憶體標示元(MH)上。區域記憶體標示元374相對應至區 域虛擬位址376所識別之該記憶體相關的記憶體標示元 (MH)上。 折返回討論,於圖4A中說明一個主系統130的一個具體實 施例實例。參考圖4A,主系統130可包含一個或多個耦合至 一個主匯流排203上的處理器202A-202N。該等每一個處理 器202A-202N可操作一個單一項目(I/O作業),且該等所有的 處理器202A-202N可同時操作一個表列上的多個項目。可將 -22 - 本纸張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(19 ) 一個I/O和記憶體控制器204(或晶片組)連接到主匯流排203 上。可將一個主記憶體206連接到I/O和記憶體控制器204 上。一個I/O橋接器208可操作以橋接或介面於I/O和記憶體 控制器204與一個I/O匯流排205之間。可將數個I/O控制器接 附在I/O匯流排205上,包含一個I/O控制器210和212。I/O控 制210和212(包含任何連接到那裡的I/O裝置)可提供植基於 匯流排的I/O資源。 亦可將一個或多個主結構協調器120連接到I/O匯流排205 上。或者,可將一個或多個主結構協調器120直接連接到I/O 和記憶體控制器(或晶片組)204上,以避免I/O匯流排205的 固有限制,如圖4B中所示。於圖4A-4B中所示之任一個具 體實施例中,可提供一個或多個主結構協調器120以將主系 統 130介面至 NGIO/InfiniBandTM!換結構 100·上。 圖4A4B僅例證說明一個主系統130的具體實施例實例。 可利用該一個主系統130其一系列不同的系統配置,亦可提 供主結構協調器120的一個軟體驅動程式堆疊,以容許主系 統130經由NGIO/InfiniBandTM!換結構100’與一個或多個遠 端系統150、170及190交換訊息資料,然而,該軟體驅動程 式軟體最好與許多目前可利用的作業系統(像是視窗作業 系統2000)相容。 圖5例證說明一個主系統130的軟體驅動程式堆疊實例。 如圖5中所示,一個主作業系統(〇S)500可包含一個核心 510、一個I/O管理程式520、多個用以提供一個介面給種種 I/O控制器之通道驅動器530A-530N、及一個主結構協調器 -23 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1239187 A7 B7 五、發明説明(20 ) 軟體堆疊(驅動器模組),其中該主結構協調器軟體堆疊包 含一個結構匯流排驅動器540、及一個或多個用以設立與接 附在交換結構10(V上之裝置間通訊的結構協調器特殊裝置 驅動程式550A-550N,且一個主作業系統500可執行大多數 驅動器所共有的功能。例如,該一種主作業系統(OS) 500 可為視窗作業系統2000,且I/O管理程式520可為一個隨插 即用的管理程式。 通道驅動器530A-530N提供該主作業系統(OS)其對接附 在交換結構10(Τ上之裝置執行10作業所需的摘要,及封裝 該主作業系統(OS)的10請求和藉由交換結構100’將該等相 同的請求傳送給該(等)接附之裝置。此外,通道驅動器 530Α-530Ν亦配置必要的資源(像是記憶體和工作佇列(WQ) 對),以向結構接附之裝置佈告工作項目。 可提供該主結構協調器軟體堆疊(驅動器模組)以存取交 換結構100'和有關結構配備、結構拓蹼學和連接資訊之資 訊。可利用該一個主結構協調器軟體堆疊(驅動器模組)設 立與一個遠端系統(例如I/O控制器)間的通訊和執行大多數 驅動器所共有的功能(例如包含主結構協調器啟始化和配 備、通道配備、通道摘要、資源管理程式、結構管理服務 和作業、傳送/接收10交易訊息、遠端直接記憶體存取 (RDMA)交易(例如讀寫作業)、仔列管理、記憶體註冊、描 述因子管理、訊息流程控制、及暫態錯誤處理法和回復。 可利用高階程式設計語言(像是C程式語言、程式語言 及Visual Basic程式語言)撰寫該軟體驅動程式模組,及可 -24 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 裝 訂
1239187 五 A7 B7 、發明説明(21 ) 在一個電腦實體媒體(像是記憶體裝置、磁碟(固定的、軟 性的及移動式)、其它的磁性儲存媒體(像是磁帶)、光學媒 體(像是唯讀光碟(CD-ROM))上或經由網際網路下載提供該 軟體驅動程式模組,其中一個結構系統管理師可利用該軟 體驅動程式模組便利地插入或下載到一個現行的作業系統 (0S)中。該一個軟體驅動程式模組亦可與該能夠由一個特 殊裝置驅動程式啟動的現行作業系統(0S)—起搭售。 該主結構協調器(另外已知為主通道協調器"HCA")驅動 器模組可由三個功能層組成:一個HCA服務層(HSL); —個 HCA摘要層(HCAAL);及一個依照下面英代爾公司於1999 年8月6日所提出之規格的HCA特殊裝置驅動程式(HDSD) —該”次世代I/O結構:主通道協調器軟體規格”、該π次世 代I/O :英代爾公司的HCA連接服務層高階設計”、該”次世 代I/O ··英代爾公司的HCA摘要層高階設計"、及該”次世代 I/O :英代爾公司的HCA結構服務層高階設計’’。例如,所 有通道驅動器530Α-530Ν所固有的可為一個包含一用以提 供一組共用服務532Α-532Ν之HCA服務層(HSL)的通道存取 層(CAL),其中該組共用服務包含結構服務、連接服務、及 通道驅動器530Α-530Ν事例化和利用NGI〇/InfiniBandTM‘定 用以在NGIO/InfiniBandTM通道上執行資料轉移時所需的及 HCA服務。結構匯流排驅動器540可相對應至該HCA摘要層 (HCAAL)上,用以管理該等所有的特殊裝置驅動器、控制 一個主系統130中全部HCA所共有的共享資源和一個主系 統130中每一個HCA其特有的資源、將事件資訊分配給該 -25 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 裝 訂
1239187 A7 B7 五、發明説明(22 ) HSL、及控制特殊裝置功能的存取。同樣地,一個或多個 結構協調器特殊裝置驅動程式550A-550N可相對應至HCA 特殊裝置驅動程式(所有型式的X廠牌裝置和所有型式的Y 廠排裝置)上,用以提供一個摘要介面給一個或多個HCA其 所有的啟始化介面、配備介面及控制介面。當一個主系統 130中有多個不同廠牌裝置的HCA時,則可存在多個HCA特 殊裝置驅動程式。 更特定言之,結構匯流排驅動器540或該HCA摘要層 (HCAAL·)可將所有必要的月良務提供給該主結構協調器軟體 堆疊(驅動器模組),包含例如架構和啟始一個主系統内全 部HCA所共有的資源、協調HCA的配備和啟始化與該等 HCA特殊裝置驅動程式、控制全部HCA其所共有之資源的 存取、控制每一個HCA其所提供之資源的存取、及將該等 HCA的事件通知分配給該通道存取層(CAL)的HCA服務層 (HSL)。此外,結構匯流排驅動器540或該HCA摘要層 (HCAAL)亦可將客戶管理功能、資源詢問功能、資源分配 功能、及資源配備和控制功能匯出給該HCA服務層(HSL), 及將事件和錯誤通知功能匯出給該等HCA特殊裝置驅動程 式。資源詢問功能包含例如詢問所有HCA和個別HCA其共 有之資源的屬性、該一個埠的狀態、及該一個璋/一個工作 佇列對(WQP)/—個完成佇列(CQ)的配備。資源分配功能包 含例如保留和釋放一個HCA與埠、保護標簽、工作佇列對 (WQP)、完成佇歹U (CQ)之間的控制介面。資源配備和控制 功能包含例如架構一個埠、執行一個HCA控制作業和一個 -26 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1239187 A7 B7 五、發明説明(23 ) 埠控制作業、架構一個工作佇列對(WQP)、對一個工作。 佇列對(WQP)的傳送或接收佇列執行一個作業、架構一個 完成佇列(CQ)、及對一個完成佇列(CQ)執行一個作業。 主系統130可與一個或多個遠端系統150、170及190通訊, 包含利用一個虛擬介面(VI)直接接附在交換結構1〇〇’上的 I/O設備和I/O控制器(及接附之I/O裝置),其中該虛擬介面係 依照康柏電腦公司、英代爾公司及微軟公司於1997年12月 16日所提出的該”虛擬介面(VI)結構規格、1.0版”。VI結構 包括四個基本元件:虛擬介面(VI),其中佈告工作請求、 以描述資料移動作業和欲移動以經由一個交換結構1〇〇’處 理和/或運送之資料的位置;VI消費者,其中可為一個應用 程式;VI提供者,其中可為負貴事例化VI的硬體和軟體元 件;及完成佇列(CQ)。VI為該容許VI消費者直接存取VI提 供者的機制。每一個VI代表一個通訊端點,且可將成對的 端點邏輯上地連接在一起,以於一個資料網路的一個或多 個指定通道上支援雙向、點對點的資料轉移。依照該VI結 構,該VI提供者可由主結構協調器120和VI核心仲介組成, 以直接執行端點虛擬化,且主結構協調器120和VI核心仲介 可包含該等通常由主作業系統(OS)核心5 10和特殊裝置驅 動程式550A-550N(如圖5中所示)所執行的多工化、分工及 資料轉移排程工作。然而,亦可利用其它的架構執行本發 明。如該’虛擬介面(vi)結構規格•中所提出的術語”vr亦可 為已知之如該’’次世代輸出入(NGIO)規格”中所提出的工作 佇列成對(WQP),或可僅為該”InHniBandT’#構規格”中所 -27 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 _ 五、發明説明(24 ) 提出的佇列成對(QP)。因此,可於下文中交換地使用” VI”、 丨丨 WQP,,和,,QP”。 圖6例證說明一種利用NGIO/InfiniBandTM* VI結構和VI結 構、以經由一個交換結構10(V支援資料轉移之主系統實 例。如圖6中所示,主系統130除了有一個或多個含有一作 業系統(OS)堆疊500之處理器202、一個主記憶體206及至少 一個主結構協調器(HCA)120(如圖2、4A-4B及5中所示)以 夕卜,還可包含一個根據NGIO/InfiniBandTM* VI結構於主結 構協調器(HCA)120中所提供之用以經由一個交換結構10(V 轉移資料之運送引擎600。可有利地利用一個或多個主結構 協調器(HCA)120擴充可用作冗餘和多個交換結構的璋總 數。 如圖6中所示,運送引擎600可含有多個以成對(包含接收 佇列("RQ”,作為入站用)和傳送佇列("SQ”,作為出站用)) 方式形成的工作佇列(WQ)(像是工作佇列對610A-610N( WQP), 可在其中佈告工作請求” WQE”、以描述資料移動作業和欲 移動以經由一個交換結構100'處理和/或運送之資料的位置) 和完成佇列(CQ)620(可用以通知”工作請求完成")。或者, 該一個運送引擎600可為一個主記憶體206的硬體記憶體元 件,其中主記憶體206與主結構協調器(HCA)120常駐在不同 的地方,以便處理多個主結構協調器(HCA)120的完成;或 可將該一個運送引擎600供作一個主作業系統(〇S)其核心 層裝置驅動程式的一部分。所有的工作佇列(WQ)均可經由 -28 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(25 ) 一個或多個主結構協調器(HCA)120共享通向一交換結構 100’中的實體埠。 可利用該工作佇列對(WQP)的傳送佇列("SQ”,作為出站 請求用)作為一個’’初始器”,其中請求例如:正規的訊息傳 送給遠端VI ;經由一個交換結構100’作遠端直接記憶體存 取nRDMA"讀取,其中要求自一個目標系統的特殊記憶體 位置中讀取訊息;及經由一個交換結構10(Τ作遠端直接記 憶體存取’’RDMA”寫入,其中要求將訊息寫在一個目標系 統的特殊記憶體位置上。 可利用該工作佇列對(WQP)的接收佇列("RQ”,作為入站 請求用)作為一個”回應器”,其中經由一個交換結構1001接 收正規傳送中的訊息請求、及自一個目標系統中接收 RDMΑ讀取和RDMA寫入請求。 於該一個資料網路實例中,可利用NGIO/InfiniBandTM& VI硬體/軟體支援經由一個交換結構1〇〇’而在兩個記憶區 (通常係在不同的系統上)之間的資料轉移。每一個主系統 可充當一種啟始一個訊息資料轉移(訊息傳送作業)之來源 (初始器)系統,或可充當一個訊息傳送作業(訊息接收作業) 的一個目標系統。該一種主系統的實例包含提供種種應用 或服務的主伺服器、及提供儲存體導向10服務和網路導向 10服務的I/O設備。可向一個特定結構協調器(HCA)相關的 工作佇列對(WQP)610A-610N佈告工作請求(資料移動作 業,像是訊息傳送/接收作業和RDMA讀寫作業);及可產生 -29 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(26 ) 一個或多個通道和有效地管理該(等)通道,以便可執行請 求之作業。 現轉向圖7,例證說明一個安裝在一主系統上、及根據 NGIO/InfiniBandTM結構架構以支援經由根據本發明一具體 實之交換結構100’作資料轉移之主結構協調器120實例。該 主結構協調器實例120係特別設計成將一個主系統連接到 一個作為服務之資料網路1 00其一個植基於通道的交換結 構100·上,以利用一個植基於通道的交換組織結構有效地 ”設立和管理NGIO/InfiniBandτM通道”和•’支援一個主系統上 通訊裝置之間的資料移動作業、或支援直接連接在一起或 經由資料網路100'接在一起之主系統間的資料移動作業”。此 外,主結構協調器120執行性能和效率增強的硬體,且其能 夠(但未限制)以最少的硬體投資使NGIO/InfiniBandTM應用 臻至最佳化,包含以最小管路化控制NGIO/InfiniBandTM. 定的執行和以最少的等待時間控制NGIO/InfiniBandTM資料 處理的執行。 如圖7中所示,主結構協調器120可包含一個控制該等 NGIO/InfiniBandTM協定執行的微控制器次系統700、和一個 提供交換結構100’給一介面的序列介面730(典型地經由 SERDES(序列化/deserializer裝置))。可將微控制器次系統 700和序列介面730執行成主結構協調器120的特別應用積 體電路(ASIC)。 微控制器次系統700含有:一個或多個已知為微引擎 (ME)710之獨立可程式化直接記憶體存取(DMA)引擎,用以 -30 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1239187 A7 B7 五、發明説明(27 ) 建立、傳送、接收及回覆確認主記憶體206(參看圖6)與一 個序列鏈結之間的NGIO/InfiniBandTM封包;及特殊用途硬 體介面邏輯區塊,像是一個主介面712、一個位址翻譯介面 714、一個内文記憶體介面716、一個區域匯流排介面718、 一個完成佇列/門鈴管理程式介面720、及一個先進先出 (FIFO)介面722,其中由微引擎(ME)710控制以上的介面,以 執行許多施行該等NGIO/InfiniBandTM* VI規格時所需的ME 功能,包含例如主交易、内文更新、實際位址翻譯、主描 述因子取得、門鈴管理、FIFO資料移動及完成佇列(CQ)管 理。 微引擎(ME)710可執行微碼,以協調用以傳輸和接收 NGIO/InfiniBandTM封包的傳送仵列(SQ)和接收仵列(RQ),及 支援依照該等NGIO/InfiniBand1^^^定的完成佇列(CQ)和通 道。微引擎(ME)710亦可經由一組微暫存器讀取和寫入控制 該等所有的介面區塊。微暫存器可與多個介面區塊所提供 的資料一起使用,以幫助加快ME功能的速度。典型地說, 可將控制該傳送佇列(SQ)的微引擎(ME)710意指為SQ微引 擎(ME);同樣地,可將控制該接收佇列(RQ)的微引擎 (ME)710意指為RQ微引擎(ME)。 主介面712提供一個介面給一個主系統130的一個I/O匯流 排205(如圖4A中所示)亦或一個主系統130的I/O和記憶體控 制器204(如圖4B中所示),作為主系統130其用作資料交易 的工作請求,包含控制不同請求之間的仲裁和/或資料/控 -31 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 ___B7 五、發明説明(28 ) 制多工化、控制主系統13 0中的讀取和寫入交易、及促進讀 取完成。 位址翻譯介面714提供一個介面給一個位址翻譯區塊 (ATB)(未顯示)’其中該ATB負貴利用一個系統記憶體翻譯 和保護表(TPT)管理虛擬位址(用以定址程式空間 >實際位 址(用以疋址系統空間)的轉換,及負貴驗證不同交易型式 (寫入、RDMA讀取及RDMA寫入)之系統記憶體的存取。於 執行一個實例中,主記憶體206可含有多達227(一億兩仟八 百萬)個4千字元的頁次,其中可將每一個系統記憶體頁次 映:射到多達16i亥字元系統記憶體位址空間内的任何地方。 亦可由該翻譯和保護表(TPT)内的一個條目存取每一個系 統記憶體頁次,其中該TPT含有例如像是以下的資訊:一 個相對應至該實際位址上之4千字元頁碼、記憶體保護屬性 (RDMA允許寫入、RDMA允許讀取、區域記憶體允許寫入)、 及保濩領域(PD)(其中PD的數值與指定給該翻譯請求(該工 作佇列請求該翻譯)其初始器的數值匹配)。 内文記憶體介面(CMI)716提供一個介面給一個内文管理 程式(未顯示),其中該内文管理程式負貴提供必要的内文 資訊給一個用以傳送和接收NGIO/InfiniBandTM封包的,,VI" 或工作佇列對"WQP”。該内文資訊含有所有資料轉移作業 型式其所需的一切控制、狀態及資訊。内文記憶體介面716 亦提供一個介面給主軟體,及呈遞不同型式之指定通道配 備的記憶體映射暫存器集、以啟始通道作業。例如,該等 記憶體映射暫存器集可包含影響傳送佇列(SQ)和工作佇列 -32 - 本紙張尺度適用中國國家標準(CNS) A4規格(210χ297公釐)
裝 訂
1239187 A7 B7 五、發明説明(29 ) (WQ)其作業的全域HCA内文暫存器、控制該等通道設立的 工作佇列對(WQP)暫存器、及指定主記憶體206中一個完成 佇列(CQ)的位置/長度和當寫入完成佇列(CQ)條目時控制 是否產生中斷的完成佇列(CQ)暫存器。 區域匯流排介面718提供一個介面給一個區域資料匯流 排,其中該區域資料匯流排負貴支援系統可存取的内文連 接和通道作業,及負貴將該信號資料變成微引擎(ME)710 的適當形式(包含微碼載入)。 完成佇列/門鈴管理程式介面720提供一個介面給完成佇 列(CQ)引擎,及提供該VI結構的門鈴管理程式和記憶體註 冊法則。完成佇列(CQ)引擎(未顯示)負貴佈告全域事件和 完成佇列(CQ)條目。門鈴管理程式(未顯示)負貴記錄未完 成的工作請求總數。 FIFO介面722提供一個介面給序列介面730 FIFO介面722 可包含:一個接收FIFO介面722A,配置成經由一個接收FIFO 和一個序列介面730自交換結構100f接收請求和/或資料封 包;及一個傳輸FIFO介面722B,配置成經由一個傳輸FIFO 和一個序列介面730將請求和/或資料封包傳送給交換結構 100 丨。 微引擎(ME)710可利用接收FIFO介面722A、經由序列介面 730處理進來的資料封包,包含檢查每一個封包標頭(如圖 3A中所示)的錯誤、及在將該封包標頭運送給主介面712之 前先檢查是否需要讀取另外的資料。微引擎(ME)710可利用 -33 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(30 ) 傳輸FIFO介面722B、經由序列介面730建立資料封包並於隨 後傳輸該等資料封包。 此外,亦可包含一個排程程式,用以將該下一個虛擬介 面(VI)排程給該内文管理程式,及支援該工作佇列對(WQP) 其傳送佇列(SQ)和接收佇列(RQ)相關之資料封包的流量優 先順序。可提供該一個排程程式以與内文記憶體介面716、 區域匯流排介面718及完成佇列/門鈴管理程式界面720相 介面,用作定期的功能。 圖8例證說明一個架構成處理傳送佇列作業或接收佇列 作業之微引擎(ME)實例710,包含多個根據本發明一具體實 施例、以最少的硬體投資達成性能效率的獨立作業(已知為 工作)。如圖8中所示,微引擎(ME) 710可包括一個或多個資 料多工器(MUX)810、一個算術邏輯單元(ALU)820、一個指 令解碼器830、一個微排序機840及一個指令記憶體850。指 令記憶體850可儲存ME指令的載入微碼。資料MUX 810可根 據ME指令提供適當的介面資料。算術邏輯單元(ALU) 820 可執行任何數學、邏輯及挪移運算。指令解碼器830可對微 排序機840提供系統控制,以判定該下一個欲執行的指令或 位址、執行指令記憶體850的ME指令、及判定ALU 820的函 數。微排序機840可檢查該ME指令序列和判定指令解碼器 820欲執行的下一個指令。 下文中可就圖9說明執行一個微引擎(ME)實例710其資料 MUX 810、算術邏輯單元(ALU) 820、指令解碼器830、微排 序機840及指令記憶體850的一個實例。 -34 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 裝 訂
1239187 A7 B7 五、發明説明(32 ) 指令記憶體850 :指令記憶體850可為一個供作儲存微碼 的靜態隨機存取記憶體(SRAM),其中該微碼憑藉”多工器 (MUX) 860 :邏輯交集閘870 = 2 : 1,’用以提供ME指令。可將 微碼下載到該SRAM中,作為將來NGIO/InfiniBandTM規格增 強的變更。該SRAM可含有2 K X 44個位元,且可經由該區 域匯流排載入該SRAM。每一個ME指令例如可為22個位 元,且SRAM的每個字元可容許兩個指令。具有32位元即址 資料的指令佔用44個位元,其中視為兩個指令可以不同的 編碼格式利用該SRAM所提供的微碼。 微排序機840 :微排序機840可依照該ME指令和旗標暫存 器資訊的解碼判定微引擎(ME)710的位址序列。可由將8個 位元的控制欄位資訊(即8個控制欄位信號)傳送給微排序 機840的指令解碼器830控制該下一個位址序列。 執行一個如圖7中所示之主結構協調器其最大的挑戰為 ”於處理NGIO/InfiniBandTM封包時、使微引擎(ME) 710的性 能和資源最大化”和”當保存該整體傳輸率時、使記憶體頻 寬最佳化。可將專業的硬體協助(HWA)邏輯併入一個或多 個特殊用途硬體介面區塊(像是主介面712、位址翻譯介面 714、VI内文記憶體介面716、區域匯流排介面718、完成佇 列/門鈴管理程式介面720及FIFO介面722)中,以便協助其各 別介面的功能和於幫助自處理NGI〇/InfiniBandτM封包時的 硬體計算中卸載微引擎(ME)710。於ME循環期間,可能需 以一種使記憶體頻寬最佳化和保存該整體資料轉移率之方 式更新儲存在内文記憶體介面716其一個用以傳送和接收 -36 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(33 ) NGIO/InfiniBandTM封包之内部内文記憶體中的内文資訊。 典型地說,可更新該内文資訊以提供所有資料轉移型式其 所需的一切控制、狀態及資訊。隨時以該内文資訊的最新 數值更新該内文記憶體,且微引擎(ME)710存取該内文資訊 的最新數值做工作(資料移動作業,像是訊息傳送/接收作 業和RDMA讀取/寫入作業)。 現轉向圖10,例證說明一個根據本發明一具體實施例之 用以檢查該等相對應至主記憶體206中未完成之RDMA作 業上之遠端鑰匙(nRkey”)的有效性之遠端鑰匙管理程式區 塊(RMB)實例。該等遠端鑰匙(’’Rkey")典型地以一種描述因 子("WQE")的形式(如就圖3C-3D所說明的)請求訊息資料, 且微引擎(ME)710利用該等遠端鑰匙("Rkey”)識別依照該位 址翻譯區塊(ATB)作虛擬-實際位址翻譯之適當頁次,用作 未完成之RDMA讀寫作業。可藉由利用一個佈告在一工作 佇列對(WQP)其一個傳送佇列(SQ)上的連結工作請求或描 述因子(” WQEn)使遠端鑰匙(Rkey)無效。先前所述之典型的 描述因子("WQE”)係佈告給正規資料轉移作業(像是正規的 傳送、RDMA寫入及RDMA讀取)的工作請求。與正規描述 因子(WQE)相比,連結描述因子係佈告給非資料作業(例如 像是使一個傳送佇列(SQ)上之主記憶體206其特殊記憶區 内的”記憶體視窗”移動或無效、以限制RDMA資料轉移)的 工作請求。一個記憶區為主記憶體206中主結構協調器120 可存取的一個正規區塊(相對應至一個記憶體頁次),其典 型地大於或等於4千字元。與該記憶區相比,一個’’記憶體 -37 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(34 ) 视窗”指定該記憶區中^一個較小的範圍’例如5個位元組。 一個連結掘述因子("WQE”)容許該軟體完全地關閉該 ”記憶體視窗”(使該”記憶體視窗”無效),以防止工作佇列對 (WQP)存取該π記憶體視窗"或將該”記憶體視窗”移(放大或 縮小)到主記憶體206中一個不同的記憶區中。 如圖10中所示,遠端鑰匙管理程式區塊(RMB) 1〇 10可包含 傳送仵列(sq)1010A和接收佇列(RQ)IOIOB其個別的RMB, 其中SQ 1010A和RQ 1010B分別相對應至該工作佇列對 (WQP)其傳送佇列(SQ)的微引擎(ME)710A上和該工作佇列 對(WQP)其接收佇列(RQ)的微引擎(ME)710B上。 SQRMB1010A含有:一個將一介面提供給SQ微引擎(ME) 710A的微引擎介面(,,ME-I/F’,)1020A ;及一個將一介面提供 給 RQ RMB 1010B的 RMB介面(nRMB-I/F") 1030A。 RQRMB 1010B含有:一個將一介面提供給RQ微引擎_) 710B的微引擎介面(,,ME-I/F,,)1020B,用以容許ME讀取和寫 入;一個將一介面提供給SQ RMB 1010A的RMB介面1030B, 用以接受SQ RMB 1010A的鑰匙無效請求和向SQ RMB 1010A回報其目前係忙祿抑或閒置的;及一個儲存遠端鑰匙 (Rkey)的遠端鑰匙記憶體1040。該一個遠端鑰匙記憶體1040 可相對應至一個1280 X 28的隨機存取記憶體(RAM)上’且 可將該遠端鑰匙記憶體1040組織如下: _ -38 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 參 裝
VI#0 或 WQP#〇 同位 保護領域(15:〇) 同位 有效 遠端鑰匙0(26:0) 同位 有效 遠端鑰匙1(26:0) 1239187 A7 B7__ 五、發明説明(36 ) 因該等ME存取永遠是最優先的,故RQ微引擎71〇Β可於任 何特定時間讀取和寫入該遠端鑰匙(Rkey)且因而於ME存 取期間,該狀態機器將延遲遠端鑰匙記憶體1040的讀寫。 RQ微引擎(ME)710B可啟始化主記憶體206中的PD。一個 零值(,,0”)的PD指示該PD為無效的。該等Rkey相對應至未完 成的RDMA作業上。RQ微引擎(ME)710B在該等Rkey上設定 有效位元,希望SQ RMB 1010A處理。 SQ微引擎(ME)710A將該PD和其希望匹配的Rkey提供給 SQRMB 1010A。接著,SQ微引擎(ME)710A藉由將該SQ起始 位元寫入RMB暫存器中以跳脫該RMB作業。SQRMB 1010A 從vro,,為起點開始處理遠端鑰匙記憶體1040 SQ RMB 1010A查看該遠端鑰匙記憶體,’PD"是否與該SQ提供之nPD” 匹配。如不匹配,則SQ RMB 1010A跳過該VI的Rkey、不作 處理。如匹配,則SQ RMB 1 〇 1 〇A自遠端鑰匙記憶體1040中 讀取遠端鑰匙”〇”。如該記憶體遠端鑰匙不匹配時(該有 效位元為假的;亦或該有效位元為真的、且記憶體遠端鑰 匙"〇”未相對應至SQ Rkey(該SQ提供之鑰匙)上),則SQ RMB 1010 A移動以檢查該下一個Rkey^如該記憶體运‘鑰逃〇 與該SQ提供之鑰匙匹配(有效位元為真的、且記憶體遠端瑜 匙0等於SQRkey)時,則SQRMB 1010A清除該相對應至遠端 鑰匙記憶體1〇4〇中Rkey "0"上的有效位元。 遠端鑰匙記憶體1040可為一個單一的讀取和單一的寫入 埠記憶體。當SQ RMB 101 〇A正嘗試處理遠端瑜匙元憶體 1040時,則可於同時rq讀取和寫入遠端鑰匙記憶體1 〇4〇。 -40 - 本紙張尺度適用中國國家標準(Cns) A4規格(210χ 297公董)
裝 訂
1239187 A7 B7 五、發明説明(37 ) 故當該接收佇列(RQ)正嘗試讀取遠端鑰匙記憶體1040時, 則SQ RMB 1010A交遞該等時計循環中的讀取記憶體存 取;當該接收佇列(RQ)正嘗試寫入遠端鑰匙記憶體1040 時,則SQ RMB 1010A交遞該等時計循環中的寫入存取。 一旦SQ RMB 1010A處理了該整個鑰匙記憶體1040、並檢 查了該等所有VI其所有的Rkey時,即可向該傳送佇列斷言 一個完成信號。接著,SQ RMB 1010A等待該傳送佇列(SQ) 將其跳脫。 當於遠端鑰匙記憶體1040其相同的位址上讀取和寫入時 才須擔憂。於該情況下,該讀取之資料係無效的。故當該 讀取位址與該寫入位址相同時,且當於該相同的時計循環 寫入和讀取遠端鑰匙記憶體1040時,則將該寫入資料直接 傳送給該讀取匯流排,而不傳送給該記憶體讀取資料。 圖11例證說明一個根據本發明一具體實施例之高階遠端 鑰匙驗證實例。可由該工作佇列對(WQP)的傳送佇列(SQ) 啟動該遠端鑰匙驗證,以便檢查該等相對應至遠端鑰匙記 憶體1040中未完成之RDMA作業上之遠端鑰匙(Rkey)的有 效性。如先前所述,將該等遠端鑰匙(Rkey)與一個虛擬位 址一起使用,以描述授權一個遠端系統存取一個主系統130 的區域記憶體206,如圖4A-4B中所示。 如圖11中所示,微引擎(ME)710的微碼判定是否在該傳送 佇列(SQ)上佈告一個用一 ”描述因子”(nWQEn)之形式的工 作請求,即是否欲在該傳送佇列(SQ)上處理任何VI(區塊 1110)。典型地係將一個描述因子(WQE)佈告給一個正規資 -41 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
1239187 A7 B7 五、發明説明(38 ) 料轉移作業(像是一個正規的傳送、一個RDMA寫入及一個 RDMA讀取)。如在該傳送佇列(SQ)上未佈告任何工作請求 或不欲處理任何VI時,則微引擎(ME) 710保持閒置。 然而,如在該傳送佇列(SQ)上有佈告任何工作請求或有 欲處理之VI時,則該微碼判定該佈告之描述因子是否為一 個連結描述因子(區塊1112)。一個連結描述因子為一個佈 告給一個非資料作業(例如像是使一個傳送佇列(SQ)上之 主記憶體206其記憶區内的一個”記憶體視窗”移動或無 效、以限制RDMA資料轉移)的工作請求。 如該佈告之描述因子不是一個連結描述因子時,則該微 碼致能處理一個正規的資料轉移作業(像是一個正規的傳 送、一個RDMA-寫入及一個RDMA-讀取)(區塊1114)。典型 地說,該如圖7中所示之整個微控制器次系統700,其運作 以處理該正規的資料轉移作業(像是該正規的傳送、一個 RDMA-寫入及一個RDMA-讀取)。然而,如該佈告之描述因 子為一個連結描述因子時,則該微碼判定該”記憶體視窗” 是否為無效的(區塊1116)。 如使該”記憶體視窗•’為有效的,則該微碼指明移動該”記 憶體視窗"(區塊1118),及繼續寫入主記憶體206中、以移動 該”記憶體視窗π(區塊1120)。然而,如該”記憶體視窗”為無 效的,則該位址翻譯區塊(ΑΤΒ)(未顯示)繼續寫入主記憶體 206、以破壞該"記憶體視窗”(區塊1122)。 於任一種情況之後,可接著啟動RMB 1010以遍搜所有利 用該•’記憶體視窗”之未完成的RDMA作業(區塊1124)。繼 -42 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
A7 B7
1239187 五、發明説明(39 ) 之,RMB 1010識別一個利用該”記憶體視窗”的遠端鑰匙 (Rkey)(區塊1126)。如識別出利用該’’記憶體視窗,,的該遠端 鑰匙(Rkey)時,則RMB 1010使該遠端鑰匙(Rkey)無效(區塊 1128)、直到所有的遠端鑰匙(Rkey)均為無效的為止(區塊 113〇) ^如未識別出任何遠瑞瑜4 (Rkey)’則藉由使該等所 有的遠端鑰匙(Rkey)無效、以實RRMB 1010(區塊1U0),且 RMB 1010回返為間置的。如所有的遠端鑰匙(Rkey)均為有 效的,則RMB 1010折返至區媿1124 ’遍搜所有利用該Π記憶 體視窗,,之未完成的RDMA作業、直到所有的遠端瑜匙(Rkey) .(Rkey) 均被標誌成,,無效的”為止,以便無任何新的遠端爾祝窗”。 或新的工作佇列對(WQP)能夠進入和利用該”記憶擠鎗證實 圖12藉由區塊1 124-1 130例證說明一個個別的鑰^澈u。 例,就如遠端鑰匙管理程式區塊(RMB)IOIO所執打.已知為 根據該IrifiniBancP^構規格,可包含256個”νΓ(^|6憶體 "WQP”或” QP”)需個別地處理所有256個VI,以此%乂(該傳 Rkey(遠端鑰匙記憶體1〇40中的遠端鑰匙)與SQ 的練數 送佇列中的遠端鑰匙),使無效化。然而,未將该V ,,丨 限制在256個上。只要主結構協調器120支援該夺 任意個’’VI"均足以滿足。 擎(ME) 如圖12中所示,rmB 1010保持閒置、直到SQ微^ 〇7lOB 可 710A要求一個鑰匙無效為止。其間,RQ微引擎(Μ〉 1。如爷
為活動的,且可任意讀取和寫入該遠端鑰匙(RkeW 問(區塊 一個RQ讀取,則RMB 1010等待一段預先決定的0守 1210) ’例如一個時計循環。 -43 - 本紙張尺度適用中國國家橾準(CNS) A4規格(21〇 X 297公釐)
装 訂
k 1239187 A7
五、發明説明(40 ) 如無任何RQ讀取為活動的或如該接收件列(RQ)上不再有 任何活動時,則RMB 1010啟始保護領域(PD)比較’即比較 該記憶體PD(遠端鑰匙記憶體中的?0)和SQ提供之 PD(該傳送佇列中的PD)(區塊1212)。如該記憶體PD與該SQ 提供之卩〇不匹配時,則111^31010跳過該乂1的111^7、不作處 理,並繼續進行以判定是否實行了所有的VI(區塊1214)。其 理由為如該記憶體PD與該SQ提供之PD不匹配時、則該等 Rkey中沒有任何一個Rkey會匹配。結果,RMB 1010可跳過 該VI的Rkey、不作處理,以便節省時間和時計循環。 然而,如該記憶體PD與該SQ提供之PD匹配時,則RMB 1010 了解容許該工作佇列對(WQP)使用該等Rkey。接著, RMB 1010循序地讀取和啟始所有與該特殊VI相關之遠端 鑰匙(Rkey)的遠端鑰匙比較(如區塊1216-1230中所示)。每一 個VI可有四個相關的遠端鑰匙,其中包含三個RDMA讀取 和一個 RDMA 寫入 in progress at once in each work queue paiir(WQP)。然而,未將每一個VI其相關的遠端鑰匙總數限 制在四個上。因於該執行的實例中,每一個VI有四個相關 的遠端鑰匙,故RMB 1010須循序地啟始四個不同的遠端鑰 匙比較’以使鑰匙無效。 更特定言之,RMB 1010自遠端鑰匙記憶體1040中讀取遠 端瑜匙、及比較遠端鑰匙”〇”與該SQ提供之鑰匙(區塊 1216)。如記憶體遠端鑰匙,,〇”不匹配時(該有效位元為假 的·,亦或讀有效位元為真的、且記憶體遠端鑰匙”0”未相對 應至SQ Rkey上),則ΐ(π〇移動以檢查該下一個Rkey。 -44 - 本紙張尺度適财國®家槺準(CNS) M規格(伽χ 297公爱) 1239187 A7 B7 五、發明説明(41 ) 然而,如記憶體遠端鑰匙”0”與該SQ提供之鑰匙匹配時(有 效位元為真的、且記憶體遠端鑰匙0等於SQ Rkey),則RMB 1010清除該相對應至遠端鑰匙記憶體1040中Rkey ”0Π上的 有效位元(區塊1218)。 接著,RMB 1010自遠端鑰匙記憶體1040中讀取遠端鑰匙 ”Γ '及比較遠端鑰匙”1”與該SQ提供之鑰匙(區塊1220)。如 記憶體遠端鑰匙” Γ與該SQ提供之鑰匙不匹配時,則RMB 1010移動以檢查該下一個Rkey。如記憶體遠端鑰匙"Γ與該 SQ提供之鑰匙匹配時,則RMB 1010清除該相對應至遠端鑰 匙記憶體1040中Rkey ΠΓ上的有效位元(區塊1222)。 同樣地,RMB 1010繼續自遠端鑰匙記憶體1040中讀取遠 端鑰匙”2”、及比較遠端鑰匙”2"與該SQ提供之鑰匙(區塊 1224)。如記憶體遠端鑰匙”2"與該SQ提供之鑰匙不匹配 時,則RMB 1010移動以檢查該下一個Rkey。如記憶體遠端 鑰匙”2’’與該SQ提供之鑰匙匹配時,則RMB 1010清除該相 對應至遠端鑰匙記憶體1040中Rkey ”2”上的有效位元(區塊 1226)。 最後,RMB 1010自遠端鑰匙記憶體1040中讀取遠端鑰匙 ”3n、及比較遠端鑰匙”3”與該SQ提供之鑰匙(區塊1228)。如 記憶體遠端鑰匙η3π與該SQ提供之鑰匙不匹配時,則RMB 1010移動以判定是否實行了所有的VI(區塊1214)。如記憶體 遠端鑰匙”3"與該SQ提供之鑰匙匹配時,則RMB 1010清除 該相對應至遠端鑰匙記憶體1040中Rkey ”3”上的有效位元 (區塊1230)和判定是否實行了所有的VI(區塊1214)。 -45 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(42 ) 圖13A-13H例證說明一個根據本發明一具體實施例之正 規遠端鑰匙管理程式區塊(RMB)作業的時序圖實例。更特 定言之,例如圖13 A說明一個每8毫微秒之時計循環的時序 圖實例。圖13B說明該傳送佇列(SQ)中一個SQ開始的時序圖 實例。圖13C說明該傳送佇列(SQ)其一個相對應完成的的時 序圖實例。圖13D說明根據本發明一具體實施例之RMB 1010其一個目前狀態之時序圖實例。圖13E說明一個正受到 處理之目前”VI”或工作佇列對(WQP)的時序圖實例。圖13F 說明根據本發明一具體實施例之RMB 1010其一個記憶體 讀取(rmb_mem_re)的時序圖實例。圖13G說明根據本發明 一具體實施例之RMB 1010其一個記憶體讀取位址 (rmb_mem—rd_addr)的時序圖實例。圖13H說明根據本發明 一具體實施例之記憶體讀取資料(rmb_mem__rd_data)的時 序圖實例。 於該事例中,討論RMB處理一個單一 ·,VIn(亦已知為 f’WQP”或” WP”)其所有的Rkey和轉換到該下一個VI。假定該 記憶體PD與該SQ提供之PD匹配。假定該等記憶體Rkey與該 等SQ提供之Rkey匹配。 可於下討論解說該作業的每一個循環: 如圖13A-13H中所示,RMB 1010於循環#1和循環#2期間保 持閒置。於循環#3,當該傳送佇列(SQ)跳脫該RMB作業時 (如圖13B中所示),則RMB 1010斷言遠端鑰匙記憶體1040的 一個允許讀取(如圖13F中所示),及驅動該正確的位址讀取 該第一個VI(即VI ”0")的保護領域(PD)(如圖13G中所示)。 -46 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) # 裝 訂
1239187 A7 B7 五、發明説明(43 ) 於循環#4,比較該記憶體PD與該SQ提供之PD。因兩者匹 配,故RMB 1010開始讀取該等相對應至該VI上的遠端鑰匙 (Rkey)。接著,de-assert該傳送彳宁列(SQ)的一個完成指示(完 成信號)(如圖13C中所示)。 於循環#5、#6及#7,如遠端鑰匙記憶體1040中的Rkey ”0”、”1”及”2Π與該SQ提供之Rkey不匹配時,則RMB 1010 繼續讀取遠端鑰匙記憶體1040。 於循環#8,如讀自遠端鑰匙記憶體1040中的Rkey ”3”與該 SQ提供之Rkey不匹配時,則結束該目前的VI Rkey處理。 RMB 1010 de-assert遠端鑰匙記憶體104的允許讀取(如圖 13F中所示)。 於循環#9,RMB 1010查看是否實行了該等所有的VI(參看 圖12、區塊1214)。如未實行該等所有的VI,且如接收佇列 (RQ)未正在存取遠端鑰匙記憶體1040時,則RMB 1010開始 讀取該下一個VI(即VI ”厂)的保護領域(PD)。 於循環# 10,再以循環#4所述之該相同的方式比較該記憶 體PD與該SQ提供之PD。然而,增加該VI#。 於循環#11、#12及#13如就循環#5、#6及#7所述之該相 同的方式而論遠端鑰匙記憶體1040中的Rkey ” Γ及Π2Π 與該SQ提供之Rkey不匹配時,則RMB 1010繼續讀取遠端鑰 匙記憶體1040。 圖14A-14H例證說明完成一個根據本發明一具體實施例 之正規遠端鑰匙管理程式區塊(RMB)作業的時序圖實例。 例如,圖14A說明一個每8毫微秒之時計循環的時序圖實 -47 - 木紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(44 ) 例。圖14B說明該傳送佇列(SQ)中一個SQ開始的時序圖實 例。圖14C說明該傳送佇列(SQ)其一個相對應完成的的時序 圖實例。圖14D說明根據本發明一具體實施例之RMB 1010 其一個目前狀態之時序圖實例。圖14E說明一個正受到處理 之目前πνΓ或工作佇列對(WQP)的時序圖實例。圖14F說明 根據本發明一具體實施例之RMB 1010其一個記憶體讀取 (rmb_mem__re)的時序圖實例。圖14G說明根據本發明一具 體實施例之RMB 1010其一個記憶體讀取位址 (rmb_mem_rd_addr)的時序圖實例。圖14H說明根據本發明 一具體實施例之記憶體讀取資料(rmb_mem_rd_data)的時 序圖實例。 於該事例中,討論RMB處理該最後一個VI的最後兩個鑰 匙和轉換成該閒置狀態。假定該等記憶體Rkey與該等SQ提 供之PD不匹配。 可於下討論解說該作業的每一個循環: 如圖14A-14H中所示,RMB 1010於循環#1和循環#2期間保 持在處理VI Max的當中。於循環#3和循環#4,RMB 1010判 定循序自遠端鑰匙記憶體1040中所讀取的Rkey ”2”和Rkey ”3··與該VI Max其SQ提供之Rkey不匹配(如圖14H中所示)。 於循環#5,RMB 1010查看是否實行了該等所有的VI(參看 圖12、區塊1214)。如實行了該等所有的VI,則RMB 10 10於 該下一個時計循環中轉換成閒置的(如圖14C中所示)。RMB 1010亦斷言該傳送佇列(SQ)的一個完成指示(完成信號)(如 圖14E中所示)。 -48 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(45 ) 於循環#6,該VI #轉動成零(”0”),以準備好下一次跳脫 111^31010(如圖140中所示)。接著,11^01010於循環#7和#8 保持閒置(如圖14C中所示)。 圖15A-15H例證說明一個根據本發明一具體實施例之其 中具有一保護領域(PD)錯誤匹配之遠端鑰匙管理程式區塊 (RMB)作業的時序圖實例。於該事例中,RMB 1010開始處 理一個VI。假定該記憶體PD與該SQ提供之PD不匹配。故 111^31010跳過而目前¥1的111^丫、不作處理,並轉換到該下 一個VI。例i、,圖15A說明一個每8毫微秒之時計循環的時 序圖實例。圖1、5Β說明該傳送佇列(SQ)中一個SQ開始的時序 圖實例。圖15C說明根據本發明一具體實施例之RMB 1040 其一個目前狀態之時序圖實例。圖15D說明RMB 1010其一 個PD失誤指示之時序圖實例。圖15Ε說明一個正受到處理 之目前"VI”或工作佇列對(WQP)的時序圖實例。圖15F說明 根據本發明一具體實施例之RMB 1010其一個記憶體讀取 (rmb—mem_re)的時序圖實例。圖15G說明根據本發明一具 體實施例之RMB 1010其一個記憶體讀取位址 (rmb_mem—rd_addr)的時序圖實例。圖15H說明根據本發明 一具體實施例之記憶體讀取資料(rmb_mem_rd_data)的時 序圖實例。 可於下討論解說該作業的每一個循環: 如圖15A-15H中所示,RMB 1010於循環#1和循環#2期間保 持閒置。於循環#3,當該傳送佇列(SQ)跳脫該RMB作業時 (如圖15B中所示),則RMB 1010斷言遠端鑰匙記憶體1040的 -49 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 B7 五、發明説明(46 ) 一個允許讀取,及驅動該正確的位址讀取該第一個VIPPVI ’·〇”)的保護領域(PD) ° 於循環#4,比較該記憶體PD與該SQ提供之PD(如圖15C中 所示广因兩者不匹配,故須終止該目前VI的Rkey處理。因 此,RMB 1010停止讀取該等相對應至該VI上的遠端鑰匙 (Rkey)。藉由該下一個V1的PD位址載入該讀取位址(如圖 1 5 G中所示)。 於循環#5,RMB 1〇1〇查看是否實行了該等所有的VI(參看 圖12、區塊1214)。如未實行該等所有的VI,且如接收仔列 (RQ)未正在存取遠端鑰匙記憶體1040時,則RMB 1010開始 讀取該下一個VI(即VI ”1")的保護領域(PD)即VI ’T。 於循環#6,增加該VI#(如圖15E中所示),比較該記憶體PD 與該SQ提供之PD(如圖15C中所示)。因兩者匹配’故 1 ο 1 〇開始讀取該等相對應至該VI上的遠端鑰匙(Rkey)。 於循環#7和#8,如遠端鑰匙記憶體1040中的Rkey ”『和 τ與該sq提供之Rkey不匹配時’則丨〇1〇繼續讀取运 端鑰匙記憶體ι〇40 ° 圖16A-1 6K例證說明一個根據本發明一具體實施例之其 中具有多個瑜匙錯誤匹配之遠端鑰匙管理程式區塊(RMB) 作業的時序圖實例。於該事例中,RMB 1010開始處理一個 VI。假定該記憶體PD與該SQ提供之PD匹配。假定該等所有 的記憶體Rkey與該等SQ提供之Rkey匹配°故化1^6 1010須清 除每一個111^7的有效位元。亦說明尺1^]81〇1〇轉換到該下一 個VI。更特定言之,例如圖16A說明一個每8毫微秒之時計 -50 - 1239187 A7 —--— —__B7 五、發明説^ 47 ) —~ --- 循環的時序圖實例。圖16B說明該傳送佇列(sq)中一個扣 開始的時序圖實例。圖16C說明根據本發明一具體實施例 之RMB 1040其一個目前狀態之時序圖實例。圖說明 RMB 1010其—個印失誤指示之時序圖實例。圖邮說明一 個正受到處理之目前”VI”或工作佇列對(WQp)的時序圖實 例。圖16F說明根據本發明一具體實施例tRMB ι〇ι〇其一 個1己憶體讀取(rmb一mem — re)的時序圖實例。圖16(}說明根 據本發明一具體實施例之RMB 1010其一個記憶體讀取位 址(mb一mem一rd—addr)的時序圖實例。圖16H說明根據本發 明一具體實施例之記憶體讀取資料(rmb —mem一rd—data^々 時序圖實例。圖161說明根據本發明一具體實施例之 1010其一個記憶體窝入(rmb一mem—we)的時序圖實例。圖16J 說明根據本發明一具體實施例之RMB 10 10其一個記憶體 寫入位址(rmb一mem—wr一addr)的時序圖實例。圖16K說明根 據本發明一具體實施例之記憶體寫入資料(rmb_mem—wr_ d a t a)的時序圖實例。 可於下討論解說該作業的每一個循環: 如圖16A-16K中所示,RMB 1010於循環#1和循環#2期間保 持間置。於循環#3,當該傳送佇列(SQ)跳脫該RMB作業時 (如圖16B中所示),則RMB 1010斷言遠端鑰匙記憶體1040的 一個允許讀取(如圖16F中所示),及驅動該正確的位址讀取 該第一個VI(即VI,·0")的保護領域(PD)(如圖16G中所示)。 -51 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 A7 _B7___________ 五、發明説明(48 ) 於循環#4,比較該記憶體PD與該SQ提供之PD。因兩者匹 配,故RMB 1010開始讀取該等相對應至該VI上的遠端鑰匙 (Rkey) 〇 於循環#5,遠端鑰匙記憶體1040中的Rkey ”0"與該SQ提供 之Rkey匹配。結果,RMB 1010停止讀取遠端鑰匙記憶體 1040 〇 於循環#6,須清除遠端鑰匙記憶體1040中該相對應至 Rkey ”〇,,上的有效位元。因此,RMB 1010斷言遠端鑰匙記 憶體1040的允許寫入(如圖161中所示)。此外,RMB 1010開 始讀取Rkey "1,,。 於循環#7,遠端鑰匙記憶體1040中的Rkey "Γ與該SQ提供 之Rkey匹配。結果,RMB 1010停止讀取遠端鑰匙記憶體 1040 〇 於循環#8,須清除遠端鑰匙記憶體1040中該相對應至 Rkey ”1”上的有效位元。因此,RMB 1010斷言遠端鑰匙記 憶體1040的允許寫入(如圖161中所示)。此外,RMB 1010亦 開始讀取Rkey,,2·,。 於循環#9,遠端鑰匙記憶體1040中的Rkey ”2Π與該SQ提供 之Rkey匹配。結果,RMB 1010停止讀取遠端鑰匙記憶體 1040 〇 於循環# 10,須清除遠端鑰匙記憶體1040中該相對應至 Rkey ”2”上的有效位元。因此,RMB 1010斷言遠端鑰匙記 憶體1040的允許寫入(如圖161中所示)。此外,RMB 1010亦 開始讀取Rkey,,3"。 -52 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1239187 A7 B7 五、發明説明(49 ) 於循環#11,遠端鑰匙記憶體1040中的Rkey ”3"與該SQ提 供之Rkey匹配。結果,RMB 1010停止讀取遠端鑰匙記憶體 1040 ° 於循環# 12,須清除遠端鑰匙記憶體1040中該相對應至 Rkey ”3"上的有效位元。因此,RMB 1010斷言遠端鑰匙記 憶體1040的允許寫入(如圖161中所示)。 於循環#13,RMB 1010查看是否實行了該等所有的VI(參 看圖12、區塊1214)。如未實行該等所有的VI,且如接收佇 列(RQ)未正在存取遠端鑰匙記憶體1040時,則RMB 1010開 始讀取該下一個VI(即VI π Γ)的保護領域(PD)。 於循環# 14,再以循環#4所述之該相同的方式比較該記憶 體PD與該SQ提供之PD。然而,增加該VI#。 於循環#15,遠端鑰匙記憶體1040中的Rkey 與該SQ提 供之Rkey匹配,就如循環#5中所述、然而為一個不同的VI。 圖17A-17M例證說明一個根據本發明一具體實施例之其 中有多個具間歇RQ記憶體存取之鑰匙錯誤匹配之遠端鑰 匙管理程式區塊(RMB)作業的時序圖實例。於該事例中, RMB 1010開始處理一個VI。假定該記憶體PD與該SQ提供之 PD匹配。假定該等所有的記憶體Rkey與該等SQ提供之Rkey 匹配。故RMB 1010須清除每一個Rkey的的有效位元。然 而,11(5微引擎(1^£)7108於111^8 1010正嘗試存取記憶體1040 的循環中存取記憶體1040。因此,討論該等潛在的記憶體 存取衝突。亦說明RMB 1010轉換到該下一個VI。 -53 - 衣紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 參 裝 訂
1239187 A7 B7 五、發明説明(5G ) 更特定言之,例如圖17 A說明一個每8毫微秒之時計循環 的時序圖實例。圖17B說明該傳送佇列(SQ)中一個SQ開始的 時序圖實例。圖17C說明該接收佇列(RQ)中一個RQ來源位 址的時序圖實例。圖17D說明RMB 1010其一個RQ記憶體寫 入的時序圖實例。圖17E說明根據本發明一具體實施例之 RMB 1040其一個目前狀態之時序圖實例。圖17F說明RMB 1010其一個鑰匙失誤指示之時序圖實例。圖17G說明一個正 受到處理之目前nVI”或工作佇列對(WQP)的時序圖實例。圖 17H說明根據本發明一具體實施例之RMB 1010其一個記憶 體讀取(rmb_mem_re)的時序圖實例。圖171說明根據本發明 一具體實施例之RMB 1010其一個記憶體讀取位址 (rmb_mem—rd—addr)的時序圖實例。圖17J說明根據本發明 一具體實施例之記憶體讀取資料(rmb_memjd_data)的時 序圖實例。圖17K說明根據本發明一具體實施例之RMB 1010其一個記憶體寫入(1:11113_11^111_\^)的時序圖實例。圖 17L說明根據本發明一具體實施例之RMB 1010其一個記憶 體寫入位址(rmb_mem_wr_addr)的時序圖實例。圖17M說明 根據本發明一具體實施例之記憶體寫入資料 (rmb—mem—wr_data)的時序圖實例。 可於下討論解說該作業的每一個循環: 如圖17A-17M中所示,RMB 1010於循環#1和循環#2期間保 持閒置。於循環#3,當該傳送佇列(SQ)跳脫該RMB作業時 (如圖17中所示)。故RMB 1010須讀取該相對應VI ”0”(亦已 知為"WQP”或” QP”)上的保護領域(PD)。然而,於循環#3, -54 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 1239187 A7 B7 五、發明説明(51 ) 該接收佇列(RQ)正嘗試讀取遠端鑰匙記憶體1040。因此, RMB 1010等待、直到該接收佇列(RQ)為不活動的為止。 於循環#4,當該RQ為不活動的時,則RMB 1010斷言遠端 鑰匙記憶體1040的一個允許讀取,及驅動該正確的位址讀 取該第一個VI(即VI ”0··)的保護領域(如圖171和17J中所示)。 於循環#5,比較該記憶體PD與該SQ提供之PD。因兩者匹 配,故111^31010須開始讀取該等相對應至該¥1上的11]^7。 然而,於循環#5,該接收佇列(RQ)正嘗試讀取遠端鑰匙記 憶體1040。故RMB 1010等待、直到該接收佇列(RQ)為不活 動的為止。 於循環#6,RMB 1010開始讀取遠端鑰匙記憶體1040中的 Rkey Π0Π。於循環#7,遠端鑰匙記憶體1040中的Rkey ·’0"與 該SQ提供之Rkey匹配。結果,RMB1010停止讀取遠端鑰匙 記憶體1040。 於循環#8,須清除遠端鑰匙記憶體1040中該相對應至 Rkey ”0Π上的有效位元。然而,於循環#8,該接收佇列(RQ) 正寫入遠端鑰匙記憶體1040中。故RMB 1010等待、直到該 接收佇列(RQ)為不活動的為止。 於循環#9,當該接收佇列(RQ)為不活動的時,則RMB 1010 清除記憶體1040中該相對應至Rkey ”0”上的有效位元。接 著,RMB 1010開始讀取 Rkey ”1”。 於循環#10,遠端鑰匙記憶體1040中的Rkey "Γ與該SQ提 供之Rkey不匹配。RMB 1010須讀取遠端鑰匙記憶體1040中 的Rkey ”2"。然而,於循環#10,該接收佇列(RQ)正嘗試讀 -55 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
裝 訂
線 1239187 A7 B7 五、發明説明(52 ) 取遠端鑰匙記憶體1040。故RMB 1010等待、直到該接收佇 列(RQ)為不活動的為止。 於循環# 11,當該接收佇列(11(5)為不活動的時,則111^3 1010開始讀取遠端鑰匙記憶體1040中的Rkey ’’2Π。 於循環#12,遠端鑰匙記憶體1040中的Rkey ”1”與該SQ提 供之Rkey不匹配。結果,RMB 1010須讀取遠端鑰匙記憶體 1040中的Rkey "3"。然而,於循環#12,該接收佇列(RQ)正 嘗試讀取遠端鑰匙記憶體1040。故RMB 1010等待、直到該 接收佇列(RQ)為不活動的為止。 於循環# 13,當該接收佇列(RQ)為不活動的時,則RMB 1010開始讀取遠端鑰匙記憶體1040中的Rkey ”3”。 於循環#14,遠端鑰匙記憶體1040中的Rkey ”3”與該SQ提 供之Rkey匹配。結果,RMB 1010停止讀取遠端鑰匙記憶體 1040 〇 於循環#15,RMB 1010希望清除遠端鑰匙記憶體1040中該 相對應至Rkey ’·3"上的有效位元。然而,於循環#15,該接 收佇列(RQ)正窝入遠端鑰匙記憶體1040中。故RMB 1010等 待、直到該接收佇列(RQ)為不活動的為止。 於循環# 16,當該接收佇列(RQ)為不活動的時,則RMB 1〇 10清除遠端鑰匙記憶體1040中該相對應至Rkey ”0”上的 有效位元。 於循環#17,RMB 1010查看是否實行了該等所有的VI。如 未實行所有的VI,且如該接收佇列(RQ)未正在存取遠端鑰 -56 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
装 訂
1239187 A7 B7 五、發明説明(53 ) 匙記憶體1040時,則RMB 1010開始讀取該下一個VI(即 VI#1(亦已知為” WQP#1"或 ”QP#r))的 PD。 於循環#18,RMB 1010斷言記憶體1040的允許讀取,及以 循環#4所述之該相同的方式驅動該正確的位址讀取VI# 1的 鑰匙’·0”。然而,增加該VI#。 按照該特別應用積體電路(ASIC)處理和其它因素的需求 導引圖 13A-13H、14A-14H、15A-15H、16A-16K及 17A-17M 中所示之時序圖。如該ASIC處理需求與該技藝需求(像是晶 片組建技藝)不同時,則可不同地實行圖10-12中所示之執 行步驟與 13A-13H、14A-14H、15A-15H、16A-16K 及 17A-17M 中所示之時序圖。 此外,除了該等就該應用有關的圖1(M2所述之方法可執 行該遠端鑰匙管理程式區塊(RMB)之外,亦可能有其它兩 種合適的方法用以執行了該RMB。該等合適的方法包含完 全地在硬體或完全地在微碼中執行該遠端鑰匙管理程式區 塊(RMB)。如已在硬體中完全地執行了該遠端鑰匙管理程 式區塊(RMB)時,則將因,,該等SQ連結描數因子與該等RQ RDMA作業之間複雜的互動”和”該主記憶體視窗無效或移 動’’而產生許多赛跑情況。又如將來該111^1^丑&11<11^規格更改 時’則未來修正或升級該硬體(如有可能的話)將係困難 的。如已在微碼中完全地執行了該遠端鑰匙管理程式區塊 (RMB)時,則每一個wqp至少需要9個時計循環(5個讀取和4 個寫入)。就支援256個買(^而言將需要256(WQP)*9(時計 /WQP)*8(亳微秒/時計),約18微秒(us)。此意指於該段時間 -57 -
本紙張尺度適用巾g g家解(cns) Μ規格(·χ撕公爱) 1239187 A7 B7 五、發明説明(54 ) 期間,該主結構協調器將完全地受到延遲,且其不會處理 SQ資料封包。此將會產生封包暫停和其它InfiniBand™相關 的依從問題。 如前所述,該安裝在一個利用根據本發明一具體實施例 之植基於通道的交換組織結構之資料網路中其一主系統上 的主結構協調器,其”有效地管理NGIO/InfiniBandTM通道” 和’’支援一個主系統上通訊裝置之間的資料移動作業、或支 援連接在一起之主系統(其中係直接連接在一起或經由一 個利用一植基於通道之交換組織結構的資料網路連接在一 起)之間的資料移動作業"。該主結構協調器以最少的硬體 投資使NGIO/InfiniBandTM機能臻至最佳化,包含以最小管 路化控制NGIO/InfiniBandTM協定的執行。將該主結構協調 器的微控制次系統設計成以最小管路化控制 NGIO/InfiniBandTM協定的執行。同時,經由一個植基於通 道的交換結構執行一個鑰匙驗證機制管理和無效化相對應 至該一種資料網路中未完成之資料交易(例如讀寫作業)上 的遠端鑰匙,以便授權遠端系統有效地存取主記憶體。 當例證說明和描述了那些視為本發明其代表性的具體實 施例時,熟諳此藝者應了解可隨著技藝發展而在未脫離本 發明的正確範疇下對本發明作種種變更/修正和以同等物 取代本發明的元件。例如,本發明適用於所有型式的資料 網路,包含(但未限制)一個區域網路(LAN)、一個廣域網路 (WAN)、一個校園區域網路(CAN)、一個都會區域網路 (MAN)、一個全域網路(GAN)、一個利用次世代輸出入 -58 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐)

Claims (1)

  1. 8 8 8 8 A BCD 3^(§Z〇5〇65號專利申請案 中文申請專利範圍替換本(94年3月) 六、申請專利範圍 1. 一種主結構協調器,包括: 一個或多個微引擎,其配置成設立連結和經由一交換 結構支援資料轉移作業、以回應一主系統之資料轉移作 業工作請求;及 一遠端鑰匙管理程式,其配置成管理遠端鑰匙和檢查 該等相對應至未完成之資料轉移作業上之遠端鑰匙的有 效性。 2. 如申請專利範圍第1項之主結構協調器,尚包括一含有多 個工作佇列對(WQP)之運送引擎,其中於該等工作佇列對 中佈告描述因子形式的工作請求、以描述資料轉移作業 和欲移動以經由該交換結構處理和/或運送之資料的位 置。 3. 如申請專利範圍第2項之主結構協調器,其中該等每一個 工作佇列對(WQP)包括: 利用一傳送佇列(SQ)作為一”初始器’’,其中請求:正規 的訊息傳送給遠端虛擬介面(VI);經由該交換結構作遠端 直接記憶體存取(RDMA)讀取,其中要求自該遠端系統的 特殊記憶體位置中讀取訊息;及經由該交換結構作遠端 直接記憶體存取(RDMA)寫入,其中要求將訊息寫在該遠 端系統的特殊記憶體位置上;及 利用一接收佇列(RQ)作為一 ’’回應器",其中經由該交 換結構接收正規傳送中的訊息請求、及自該遠端系統中 接收RDMA讀取和RDMA寫入請求。 4. 如申請專利範圍第3項之主結構協調器,其中根據該 76568-940317.doc - 1 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 as 、. B8 C8 D8 六、申請專利範圍 ’’InfiniBand™規格π架構該等微引擎和該遠端输匙管理程 式;及將該等微引擎和該遠端鑰匙管理程式執行成一個 特別應用積體電路(ASIC)的一部分。 5. 如申請專利範圍第3項之主結構協調器,其中該等微引擎 包括: 一配置成控制該工作佇列對(WQP)中傳送佇列(SQ)的 作業之傳送佇列(SQ)微引擎;及 一配置成控制該工作佇列對(WQP)中接收佇列(RQ)的 作業之接收佇列(RQ)微引擎。 6. 如申請專利範圍第5項之主結構協調器,其中該遠端鑰匙 管理程式含有一個用以儲存遠端鑰匙之遠端鑰匙記憶 體,及其中比較該等遠端鑰匙與包含在工作請求中的遠 端瑜匙’作為瑜匙驗證。 7. 如申請專利範圍第6項之主結構協調器,其中利用該等遠 端鑰匙識別一個作虛擬-實際位址.翻譯之適當頁次,用作 未完成之資料轉移作業(包含RDMA讀寫作業)。 8. 如申請專利範圍第7項之主結構協調器,其中用一種描述 因子的形式將該等工作請求佈告給正規資料轉移作業, 像是正規的傳送、RDMA寫入及RDMA讀取;或用一種連 結描述因子的形式將該等工作請求佈告給非資料作業, 像是使該傳送佇列(SQ)上之該主系統其一個主記憶體的 特殊記憶區内的’’記憶體視窗’’移動或無效、以限制RDMA 資料轉移作業。 9. 如申請專利範圍第6項之主結構協調器,其中該遠端鑰匙 76568-940317.doc - 2 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A8 B8 C8 D8 1239187 Μ. '·: 六、申請專利範圍 記憶體為一個具有一單一讀取埠和一個單一寫入埠之隨 機存取記憶體(RAM)。 10.如申請專利範圍第8項之主結構協調器,其中啟動該遠端 鑰匙管理程式、以藉由下面檢查該等遠端鑰匙的有效性: 判定一佈告在該傳送佇列(SQ)上的描述因子是否為一 給一非資料作業的連結描述因子; 如該佈告之描述因子不為一連結描述因子,則處理一 正規資料轉移作業,像是一正規傳送、一 RDMA寫入及一 RDMA讀取; 如該佈告之描述因子為一連結描述因子,則判定該”記 憶體視窗”是否為無效的; 如該’’記憶體視窗”為有效的,則指明移動該”記憶體視 窗’’,及寫入該主系統的主記憶體中、以移動該”記憶體 視窗π ; 如該”記憶體視窗’’為無效的,則寫入該主系統的主記 憶體中,以破壞該’’記憶體視窗’’; 遍搜所有利用該”記憶體視窗’’之未完成的RDMA作 業,以識別一利用該”記憶體視窗π的遠端鑰匙; 如識別出利用該’’記憶體視窗”的該遠端鑰匙時,則使 該遠端鑰匙無效、直到所有的遠端鑰匙均為無效的為止; 如未識別出任何遠端鑰匙,則使該等所有的遠端鑰匙 無效和回返成閒置的;及 如所有的遠端输匙均為有效的,則折返以遍搜所有利 用該π記憶體視窗’’之未完成的RDMA作業、直到所有的遠 76568-940317.doc - 3 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 爾画
    A8 B8 C8 D8 々、申請專利範圍 端鑰匙均被標誌成”無效的”為止,以便無任何新的遠端 鑰匙或新的工作佇列對(WQP)能夠進入和利用該’’記憶體 視窗’’。 11. 如申請專利範圍第10項之主結構協調器,其中一旦該SQ 微引擎請求鑰匙無效時,即啟動該遠端鑰匙管理程式, 以藉由下面使遠端鑰匙無效·· 於一虛擬介面(VI)的記憶體PD與SQ提供之PD之間啟始 一保護領域(PD)比較; 如該記憶體PD與該SQ提供之PD不匹配時,則跳過該VI 的遠端鑰匙、不作處理,及判定是否實行了所有的VI ; 及 如該記憶體PD與該SQ提供之PD匹配時,則循序地讀取 和啟始所有與該VI相關之遠端鑰匙的遠端鑰匙比較,作 為输匙無效。 12. 如申請專利範圍第11項之主結構協調器,其中該遠端鑰 匙管理程式藉由下面啟始所有與該VI相關之遠端鑰匙的 遠端鑰匙比較: 自該遠端鑰匙記憶體中讀取一第一個遠端鑰匙,及比 較該第一個遠端鑰匙與該SQ提供之鑰匙; 如該第一個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至一下一個遠端鑰匙作檢查; 如該第一個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除一相對應至該遠端鑰匙記憶體中其第一個遠端鑰匙上 的有效位元; 76568-940317.doc - 4 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) AS 丈 B8 _牛月 日 D8 六、申請專利範圍 自該遠端鑰匙記憶體中讀取一第二個遠端鑰匙,及比 較該第二個遠端鑰匙與該SQ提供之鑰匙; 如該第二個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至該下一個遠端鑰匙作檢查; 如該第二個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第二個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取一第三個遠端鑰匙,及比 較該第三個遠端鑰匙與該SQ提供之鑰匙; 如該第三個記憶體遠端鑰匙與該SQ提供之鑰匙不匹配 時,則移動至一下一個遠端鑰匙作檢查; 如該第三個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第三個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取最後一個遠端鑰匙,及比 較該最後一個遠端鑰匙與該SQ提供之鑰匙; 如該最後一個記憶體遠端鑰匙與該SQ提供之鑰匙不匹 配時,則移動以判定是否實行了所有的VI ;及 如該最後一個遠端鑰匙與該SQ提供之鑰匙匹配時,則 清除該相對應至該遠端鑰匙記憶體中其最後一個遠端鑰 匙上的有效位元,及判定是否實行了所有的VI。 13.—種主結構協調器,其安裝在一主系統上、用以連接到 一資料網路的一交換結構上,包括: 至少一個微引擎(ME),其中配置成設立連接和經由該 76568-940317.doc ~ 5 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1239187
    資料4+】71面,其中配置成自該交換結構中接收和傳輸 、矸對包,以實行資料轉移作業; 榦十王介面,其中配置成用該描述因子的形式接收和傳 主系統的工作請求,以實行資料轉移作業; 工作内又圮憶體,其中配置成儲存該微引擎(ME)其處理 _請求時所需的内文資訊,以實行資料轉移作業; 裡—門鈴管理程式,其中配置成更新該微引擎(me)其處 工作叫求時所需的内文資訊,以實行資料轉移作業; 及 .杳端鑰匙管理程式,其中配置成管理遠端鍮匙和檢 =邊等相對應至未完成之資料轉移作業上之遠端鑰匙的 有效性。 =申凊專利範圍第13項之主結構協調器,尚包括一含有 多個工作佇列對(WQP)之運送引擎,其中於該等工作佇列 對中佈告描述因子形式的工作請求、以描述資料移動作 業和欲移動以經由該交換結構處理和/或運送之資料的 位置。 15·如申請專利範圍第14項之主結構協調器,其中該等每一 個工作佇列對(WQP)包括: 利用一傳送佇列(SQ)作為一,,初始器,,,其中請求:正規 的訊息傳送給遠端虛擬介面(VI);經由該交換結構作遠端 直接記憶體存取(RDMA)讀取,其中要求自該遠端系統的 特殊記憶體位置中讀取訊息;及經由該交換結構作遠端 -6 - 76568-940317.doc 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1239187 as B8 C8 D8 六、申請專利範圍 直接記憶體存取(RDMA)寫入,其中要求將訊息寫在該遠 端系統的特殊記憶體位置上;及 利用一接收佇列(RQ)作為一 ”回應器”,其中經由該交 換結構接收正規傳送中的訊息請求、及自該遠端系統中 接收RDMA讀取和RDMA寫入請求。 16. 如申請專利範圍第13項之主結構協調器,其中根據該 ”InfiniBandTM規格’’架構該微引擎、該主介面、該序列介 面、該内文記憶體、該門鈴管理程式及該遠端鑰匙管理 程式,及將其執行成一個特別應用積體電路(ASIC)的一 部分。 17. 如申請專利範圍第15項之主結構協調器,其中該微引擎 包含: 一配置成控制該工作佇列對(WQP)中傳送佇列(SQ)的 作業之傳送佇列(SQ)微引擎;及 一配置成控制該工作佇列對(WQP)中接收佇列(RQ)的 作業之接收佇列(RQ)微引擎。 18. 如申請專利範圍第17項之主結構協調器,其中該遠端鑰 匙管理程式含有一個用以儲存遠端鑰匙之遠端鑰匙記憶 體,及其中比較該等遠端鑰匙與包含在工作請求中的遠 端鑰匙,作為鑰匙驗證。 19. 如申請專利範圍第18項之主結構協調器,其中利用該等 遠端鑰匙識別一個作虛擬-實際位址翻譯之適當頁次,用 作未完成之資料轉移作業(包含RDMA讀寫作業)。 20. 如申請專利範圍第19項之主結構協調器,其中用一種描 76568-940317.doc - 7 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 1239187 as B8 C8 D8 六、申請專利範圍 述因子的形式將該等工作請求佈告給正規資料轉移作 業,像是正規的傳送、RDMA寫入及RDMA讀取;或用一 種連結描述因子的形式將該等工作請求佈告給非資料作 業,像是使該傳送佇列(SQ)上之該主系統其一個主記憶 體的特殊記憶區内的”記憶體視窗π移動或無效、以限制 RDMA資料轉移作業。 21. 如申請專利範圍第18項之主結構協調器,其中該遠端鑰 匙記憶體為一個具有一單一讀取埠和一個單一寫入埠之 1280 X 28的隨機存取記憶體(RAM)。 22. 如申請專利範圍第20項之主結構協調器,其中啟動該遠 端鑰匙管理程式、以藉由下面檢查該等遠端鑰匙的有效 性: 判定一佈告在該傳送佇列(SQ)上的描述因子是否為一 給一非資料作業的連結描述因子; 如該佈告之描述因子不為一連結描述因子,則處理一 正規資料轉移作業,像是一正規傳送、一 RDMA寫入及一 RDMA讀取; 如該佈告之描述因子為一連結描述因子,則判定該”記 憶體視窗”是否為無效的; 如該’’記憶體視窗”為有效的,則指明移動該’’記憶體視 窗’’,及寫入該主系統的主記憶體中、以移動該”記憶體 視窗π ; 如該f’記憶體視窗”為無效的,則寫入該主系統的主記 憶體中,以破壞該π記憶體視窗’’; 76568-940317.doc * 8 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210X297公釐) 1239187 as B8 \jk.· C8 D8 六、申請專利範圍 遍搜所有利用該n記憶體視窗”之未完成的RDMA作 業,以識別一利用該π記憶體視窗”的遠端鑰匙; 如識別出利用該’’記憶體視窗’’的該遠端鑰匙時,則使 該遠端鑰匙無效、直到所有的遠端瑜匙均為無效的為止; 如未識別出任何遠端鑰匙,則使該等所有的遠端鑰匙 無效和回返成閒置的;及 如所有的遠端鑰匙均為有效的,則折返以遍搜所有利 用該’’記憶體視窗”之未完成的RDMA作業、直到所有的遠 端鑰匙均被標誌成”無效的”為止,以便無任何新的遠端 鑰匙或新的工作佇列對(WQP)能夠進入和利用該”記憶體 視窗"。 23. 如申請專利範圍第22項之主結構協調器,其中一旦該SQ 微引擎請求鑰匙無效時,即啟動該遠端鑰匙管理程式, 以藉由下面使遠端鑰匙無效: 於一虛擬介面(VI)的記憶體PD與SQ提供之PD之間啟始 一保護領域(PD)比較; 如該記憶體PD與該SQ提供之PD不匹配時,則跳過該VI 的遠端鑰匙、不作處理,及判定是否實行了所有的VI ; 及 如該記憶體PD與該SQ提供之PD匹配時,則循序地讀取 和啟始所有與該VI相關之遠端鑰匙的遠端鑰匙比較,作 為鑰匙無效。 24. 如申請專利範圍第23項之主結構協調器,其中該遠端鑰 匙管理程式藉由下面啟始所有與該VI相關之遠端鑰匙的 76568-940317.doc · 9 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 1239187 as ., B8 ,/4. C8 D8 六、申請專利範圍 遠端鑰匙比較: 自該遠端鑰匙記憶體中讀取一第一個遠端鑰匙,及比 較該第一個遠端鑰匙與該SQ提供之鑰匙; 如該第一個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至一下一個遠端鑰匙作檢查; 如該第一個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除一相對應至該遠端鑰匙記憶體中其第一個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取一第二個遠端鑰匙,及比 較該第二個遠端鑰匙與該SQ提供之鑰匙; 如該第二個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至該下一個遠端鑰匙作檢查; 如該第二個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第二個遠端鑰匙上 的有效位元, 自該遠端鑰匙記憶體中讀取一第三個遠端鑰匙,及比 較該第三個遠端鑰匙與該SQ提供之鑰匙; 如該第三個記憶體遠端鑰匙與該SQ提供之鑰匙不匹配 時,則移動至一下一個遠端鑰匙作檢查; 如該第三個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第三個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取最後一個遠端鑰匙,及比 較該最後一個遠端鑰匙與該SQ提供之鑰匙; 76568-940317.doc - 10 - 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 1239187 as B8 C8 D8 六、申請專利範圍 如該最後一個記憶體遠端鑰匙與該SQ提供之鑰匙不匹 配時,則移動以判定是否實行了所有的VI ;及 如該最後一個遠端鑰匙與該SQ提供之鑰匙匹配時,則 清除該相對應至該遠端鑰匙記憶體中其最後一個遠端鑰 匙上的有效位元,及判定是否實行了所有的VI。 25.—種檢查該等相對應至一安裝在一主系統上之主結構協 調器中未完成之遠端直接記憶體存取(RDMA)作業上之 遠端鑰匙其有效性之方法,包括: 判定任何欲在一傳送佇列(SQ)上處理之虛擬介面(VI) 是否為一給一非資料作業的連結描述因子; 如該佈告之描述因子不為一連結描述因子,則處理一 正規資料轉移作業; 如該佈告之描述因子為一連結描述因子,則判定該”記 憶體視窗π是否為無效的; 如該記憶體視窗為有效的,則指明移動該”記憶體視窗’’, 及寫入該主系統的一主記憶體中、以移動該π記憶體視窗’’; 如該π記憶體視窗”為無效的,則寫入該主系統的主記 憶體中,以破壞該π記憶體視窗’’; 遍搜所有利用該π記憶體視窗”之未完成的RDMA作 業,以識別一利用該’’記憶體視窗’’的遠端鑰匙; 如識別出利用該π記憶體視窗’’的該遠端鑰匙時,則使 該遠端鑰匙無效、直到所有的遠端鑰匙均為無效的為止; 如未識別出任何遠端鑰匙,則使該等所有的遠端鑰匙 無效和回返成閒置的,及 76568-940317.doc -11 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) Α8 Β8 C8 D8 I2391S7 r、 _'.,ν 、ί' r:' ί ; 六、申請專利範圍 如所有的遠端鑰匙均為有效的,則折返以遍搜所有利 用該π記憶體視窗π之未完成的RDMA作業、直到所有的遠 端鑰起均被標語成”無效的”為止,以便無任何新的遠端 鑰匙或新的工作佇列對(WQP)能夠進入和利用該’’記憶體 視窗”。 26. 如申請專利範圍第25項之方法,其中藉由下面使該等遠 端输匙無效. 於一虛擬介面(VI)的記憶體PD與SQ提供之PD之間啟始 一保護領域(PD)比較; 如該記憶體PD與該SQ提供之PD不匹配時,則跳過該VI 的遠端鑰匙、不作處理,及判定是否實行了所有的VI ; 及 如該記憶體PD與該SQ提供之PD匹配時,則循序地讀取 和啟始所有與該VI相關之遠端鑰匙的遠端鑰匙比較,作 為输匙無效。 27。 如申請專利範圍第26項之方法,其中藉由下面比較該等 所有與該VI相關之遠端鑰匙: 自一遠端鑰匙記憶體中讀取一第一個遠端鑰匙,及比 較該第一個遠端鑰匙與該SQ提供之鑰匙; 如該第一個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至一下一個遠端鑰匙作檢查; 如該第一個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除一相對應至該遠端鑰匙記憶體中其第一個遠端鑰匙上 的有效位元; 76568-940317.doc -12 - 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) _簡頁I B- rf月日丨 _S_ 六、申請專利範圍 自該遠端鑰匙記憶體中讀取一第二個遠端输匙,及比 較該第二個遠端鑰匙與該SQ提供之鑰匙; 如該第二個遠端鑰匙與該SQ提供之鑰匙不匹配時,則 移動至該下一個遠端鑰匙作檢查; 如該第二個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第二個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取一第三個遠端鑰匙,及比 較該第三個遠端鑰匙與該SQ提供之鑰匙; 如該第三個記憶體遠端鑰匙與該SQ提供之鑰匙不匹配 時,則移動至一下一個遠端鑰匙作檢查; 如該第三個遠端鑰匙與該SQ提供之鑰匙匹配時,則清 除該相對應至該遠端鑰匙記憶體中其第三個遠端鑰匙上 的有效位元; 自該遠端鑰匙記憶體中讀取最後一個遠端鑰匙,及比 較該最後一個遠端鑰匙與該SQ提供之鑰匙; 如該最後一個記憶體遠端鑰匙與該SQ提供之鑰匙不匹 配時,則移動以判定是否實行了所有的VI ;及 如該最後一個遠端鑰匙與該SQ提供之鑰匙匹配時,則 清除該相對應至該遠端鑰匙記憶體中其最後一個遠端鑰 匙上的有效位元,及判定是否實行了所有的VI。 -13 - 76568-940317.doc 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)
TW091105065A 2001-03-26 2002-03-18 System and method for managing and validating remote keys which correspond to outstanding data transactions TWI239187B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/816,344 US6917987B2 (en) 2001-03-26 2001-03-26 Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications

Publications (1)

Publication Number Publication Date
TWI239187B true TWI239187B (en) 2005-09-01

Family

ID=25220334

Family Applications (1)

Application Number Title Priority Date Filing Date
TW091105065A TWI239187B (en) 2001-03-26 2002-03-18 System and method for managing and validating remote keys which correspond to outstanding data transactions

Country Status (11)

Country Link
US (1) US6917987B2 (zh)
EP (1) EP1374521B1 (zh)
KR (1) KR100555394B1 (zh)
CN (1) CN100579108C (zh)
AT (1) ATE379912T1 (zh)
AU (1) AU2002238136A1 (zh)
CA (1) CA2442447A1 (zh)
DE (1) DE60223791D1 (zh)
HK (1) HK1060947A1 (zh)
TW (1) TWI239187B (zh)
WO (1) WO2002078254A2 (zh)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6917987B2 (en) 2001-03-26 2005-07-12 Intel Corporation Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications
US6948004B2 (en) * 2001-03-28 2005-09-20 Intel Corporation Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
US7013353B2 (en) * 2001-03-30 2006-03-14 Intel Corporation Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem
US7543290B2 (en) * 2001-04-11 2009-06-02 Mellanox Technologies Ltd. Multiple queue pair access with single doorbell
US20020159389A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for connection preemption in a communications network
US20020198927A1 (en) * 2001-06-21 2002-12-26 International Business Machines Corporation Apparatus and method for routing internet protocol frames over a system area network
US20030018828A1 (en) * 2001-06-29 2003-01-23 International Business Machines Corporation Infiniband mixed semantic ethernet I/O path
US7320033B2 (en) * 2001-07-27 2008-01-15 Intel Corporation Dynamic local drive and printer sharing
US7194540B2 (en) * 2001-09-28 2007-03-20 Intel Corporation Mechanism for allowing multiple entities on the same host to handle messages of same service class in a cluster
US6854032B2 (en) * 2001-12-04 2005-02-08 Sun Microsystems, Inc. System for accessing a region of memory using remote address translation and using a memory window table and a memory region table
US20030131128A1 (en) * 2002-01-10 2003-07-10 Stanton Kevin B. Vlan mpls mapping: method to establish end-to-traffic path spanning local area network and a global network
US7447778B2 (en) 2002-05-06 2008-11-04 Qlogic, Corporation System and method for a shared I/O subsystem
US7328284B2 (en) * 2002-05-06 2008-02-05 Qlogic, Corporation Dynamic configuration of network data flow using a shared I/O subsystem
US7171495B2 (en) * 2002-05-06 2007-01-30 Silverstorm Technologies, Inc. System and method for implementing virtual adapters and virtual interfaces in a network system
US7356608B2 (en) * 2002-05-06 2008-04-08 Qlogic, Corporation System and method for implementing LAN within shared I/O subsystem
US7404012B2 (en) * 2002-05-06 2008-07-22 Qlogic, Corporation System and method for dynamic link aggregation in a shared I/O subsystem
AU2002328749A1 (en) * 2002-06-11 2003-12-22 Bigbangwidth Inc. Method and apparatus for switched physical alternate links in a packet network
US7149821B2 (en) * 2003-01-29 2006-12-12 International Business Machines Corporation Predictably defining input/output configurations for environments employing fabrics
US7565504B2 (en) * 2003-03-27 2009-07-21 Hewlett-Packard Development Company, L.P. Memory window access mechanism
US7502826B2 (en) * 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US20040230695A1 (en) * 2003-05-15 2004-11-18 Anschutz Thomas Arnold Methods, systems, and computer program products for processing traffic in a communication network based on registration of an access session and/or application flow and specifying a treatment for the access session and/or application flow traffic
US20040252685A1 (en) * 2003-06-13 2004-12-16 Mellanox Technologies Ltd. Channel adapter with integrated switch
US7565454B2 (en) * 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
US8037281B2 (en) * 2005-04-07 2011-10-11 Advanced Micro Devices, Inc. Miss-under-miss processing and cache flushing
US7787892B2 (en) 2005-10-05 2010-08-31 Via Technologies, Inc. Method and apparatus for adaptive multi-stage multi-threshold detection of paging indicators in wireless communication systems
US20090265485A1 (en) * 2005-11-30 2009-10-22 Broadcom Corporation Ring-based cache coherent bus
KR100689606B1 (ko) * 2006-11-10 2007-03-02 (주)해석 공공 하수라인의 오니제거형 배수구조
US8499029B1 (en) * 2008-12-23 2013-07-30 International Business Machines Corporation Management of process-to-process communication requests
US8521895B2 (en) * 2008-12-23 2013-08-27 International Business Machines Corporation Management of application to application communication requests between data processing systems
US8240473B2 (en) * 2008-12-23 2012-08-14 Honda Motor Co., Ltd. Headliner packaging system with hinged clamp
US9009214B2 (en) 2008-12-23 2015-04-14 International Business Machines Corporation Management of process-to-process inter-cluster communication requests
US9098354B2 (en) 2008-12-23 2015-08-04 International Business Machines Corporation Management of application to I/O device communication requests between data processing systems
US8122301B2 (en) * 2009-06-30 2012-02-21 Oracle America, Inc. Performing remote loads and stores over networks
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
US8804752B2 (en) 2011-05-31 2014-08-12 Oracle International Corporation Method and system for temporary data unit storage on infiniband host channel adaptor
US8589610B2 (en) * 2011-05-31 2013-11-19 Oracle International Corporation Method and system for receiving commands using a scoreboard on an infiniband host channel adaptor
US8484392B2 (en) 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US20120331243A1 (en) 2011-06-24 2012-12-27 International Business Machines Corporation Remote Direct Memory Access ('RDMA') In A Parallel Computer
US8879579B2 (en) 2011-08-23 2014-11-04 Oracle International Corporation Method and system for requester virtual cut through
US9021123B2 (en) 2011-08-23 2015-04-28 Oracle International Corporation Method and system for responder side cut through of received data
US8832216B2 (en) * 2011-08-31 2014-09-09 Oracle International Corporation Method and system for conditional remote direct memory access write
WO2013086380A1 (en) 2011-12-08 2013-06-13 Oracle International Corporation Techniques for more efficient usage of memory - to - cpu bandwidth
US9792117B2 (en) 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
US9342314B2 (en) 2011-12-08 2016-05-17 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
US9697174B2 (en) 2011-12-08 2017-07-04 Oracle International Corporation Efficient hardware instructions for processing bit vectors for single instruction multiple data processors
US10534606B2 (en) 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US9069485B2 (en) 2012-12-20 2015-06-30 Oracle International Corporation Doorbell backpressure avoidance mechanism on a host channel adapter
US9256555B2 (en) 2012-12-20 2016-02-09 Oracle International Corporation Method and system for queue descriptor cache management for a host channel adapter
US9069633B2 (en) 2012-12-20 2015-06-30 Oracle America, Inc. Proxy queue pair for offloading
US9148352B2 (en) 2012-12-20 2015-09-29 Oracle International Corporation Method and system for dynamic repurposing of payload storage as a trace buffer
US9191452B2 (en) 2012-12-20 2015-11-17 Oracle International Corporation Method and system for an on-chip completion cache for optimized completion building
US8937949B2 (en) 2012-12-20 2015-01-20 Oracle International Corporation Method and system for Infiniband host channel adapter multicast packet replication mechanism
US9384072B2 (en) 2012-12-20 2016-07-05 Oracle International Corporation Distributed queue pair state on a host channel adapter
US9336158B2 (en) 2013-02-26 2016-05-10 Oracle International Corporation Method and system for simplified address translation support for static infiniband host channel adaptor structures
US8850085B2 (en) 2013-02-26 2014-09-30 Oracle International Corporation Bandwidth aware request throttling
US9069705B2 (en) 2013-02-26 2015-06-30 Oracle International Corporation CAM bit error recovery
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US9898414B2 (en) 2014-03-28 2018-02-20 Oracle International Corporation Memory corruption detection support for distributed shared memory applications
US10073885B2 (en) 2015-05-29 2018-09-11 Oracle International Corporation Optimizer statistics and cost model for in-memory tables
US9892071B2 (en) * 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
DE102015220009A1 (de) * 2015-10-15 2017-04-20 Robert Bosch Gmbh Schaltungsanordnung zur Generierung eines Geheimnisses in einem Netzwerk
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US20180004681A1 (en) * 2016-07-02 2018-01-04 Intel Corporation Systems, Apparatuses, and Methods for Platform Security
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
US10275180B2 (en) 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US10467139B2 (en) 2017-12-29 2019-11-05 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10452547B2 (en) 2017-12-29 2019-10-22 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
WO2019140556A1 (zh) 2018-01-16 2019-07-25 华为技术有限公司 一种报文传输的方法及装置
CN116226027B (zh) * 2023-05-04 2023-08-15 苏州浪潮智能科技有限公司 数据传输系统、方法、装置、通信设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625768B1 (en) 2000-03-29 2003-09-23 Intel Corporation Test bus architecture
JP2001344153A (ja) * 2000-05-30 2001-12-14 Nec Corp マルチプロセッサシステムのキャッシュメモリ制御装置
US6778548B1 (en) 2000-06-26 2004-08-17 Intel Corporation Device to receive, buffer, and transmit packets of data in a packet switching network
US6775719B1 (en) 2000-09-28 2004-08-10 Intel Corporation Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US20020071450A1 (en) 2000-12-08 2002-06-13 Gasbarro Dominic J. Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
US6947970B2 (en) * 2000-12-19 2005-09-20 Intel Corporation Method and apparatus for multilevel translation and protection table
US6578122B2 (en) 2001-03-01 2003-06-10 International Business Machines Corporation Using an access key to protect and point to regions in windows for infiniband
US6917987B2 (en) 2001-03-26 2005-07-12 Intel Corporation Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications
US6948004B2 (en) 2001-03-28 2005-09-20 Intel Corporation Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
US7013353B2 (en) 2001-03-30 2006-03-14 Intel Corporation Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem

Also Published As

Publication number Publication date
AU2002238136A1 (en) 2002-10-08
US20020184392A1 (en) 2002-12-05
ATE379912T1 (de) 2007-12-15
US6917987B2 (en) 2005-07-12
KR20030087025A (ko) 2003-11-12
EP1374521A2 (en) 2004-01-02
CA2442447A1 (en) 2002-10-03
CN100579108C (zh) 2010-01-06
KR100555394B1 (ko) 2006-02-24
WO2002078254A3 (en) 2002-12-19
WO2002078254A2 (en) 2002-10-03
EP1374521B1 (en) 2007-11-28
DE60223791D1 (de) 2008-01-10
HK1060947A1 (en) 2004-08-27
CN1640089A (zh) 2005-07-13

Similar Documents

Publication Publication Date Title
TWI239187B (en) System and method for managing and validating remote keys which correspond to outstanding data transactions
US7320041B2 (en) Controlling flow of data between data processing systems via a memory
US7409468B2 (en) Controlling flow of data between data processing systems via a memory
US6775719B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US9311110B2 (en) Techniques to initialize from a remotely accessible storage device
US7013353B2 (en) Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem
US6831916B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
JP5735883B2 (ja) ローカル・アダプタの読み取り操作により操作の完了が確認されるまで操作の肯定応答を遅延させる方法
CN110647480A (zh) 数据处理方法、远程直接访存网卡和设备
US7181541B1 (en) Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US20020071450A1 (en) Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
US20040054822A1 (en) Transferring interrupts from a peripheral device to a host computer system
CN103647807A (zh) 一种信息缓存方法、装置和通信设备
WO2012143953A2 (en) Optimized multi-root input output virtualization aware switch
US10452570B1 (en) Presenting physical devices to virtual computers through bus controllers emulated on PCI express endpoints
JP2013512519A (ja) いくつかの周辺装置のメモリ間のデータの直接転送のためにメモリに直接アクセスするコントローラ、そのようなコントローラを実現可能にする方法およびコンピュータプログラム
JP5904948B2 (ja) システムのいくつかの構成要素のメモリ間の直接データ転送を許可するそのシステム
US9288163B2 (en) Low-latency packet receive method for networking devices
US20020049875A1 (en) Data communications interfaces
US10185684B2 (en) System interconnect and operating method of system interconnect
US20020049878A1 (en) Data communications interfaces
CN115396250A (zh) 具有一致事务排序的多插槽网络接口控制器
CN117931481A (zh) 一种实时与分时系统数据快速交换的方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees