共享系統地址空間的非緊耦合多節點多處理器系統和方法
2023-05-28 11:55:36 1
共享系統地址空間的非緊耦合多節點多處理器系統和方法
【專利摘要】提出一種共享系統地址空間的非緊耦合的多節點多處理器系統,包括伺服器節點和節點間控制單元。所述伺服器節點之間通過所述節點間控制單元實現資源共享和通信互連。還提出一種基於上述系統的數據讀寫方法。通過共享系統地址空間的方式,在非緊耦合的多節點多處理器系統內實現了內存共享與I/O共享,允許本地節點直接訪問遠程節點的內存資源與I/O資源。
【專利說明】共享系統地址空間的非緊耦合多節點多處理器系統和方法
【技術領域】
[0001]本發明涉及分布式計算機處理【技術領域】,具體涉及共享系統地址空間的非緊耦合多節點多處理器系統和方法。
【背景技術】
[0002]隨著網絡購物、搜索、物聯網與數據挖掘等領域的迅速發展,數據中心所需要處理的數據量急劇快速地增長,2013年中國產生的數據總量超過0.8ZB,2倍於2012年,相當於2009年全球的數據總量。目前主流網際網路公司所需要處理的數據總量都在PB級,如2013年的大數據會議上,阿里巴巴的數據總量在20PB,騰訊公司的數據總量在100PB。
[0003]面對爆炸式的數據增長,數據中心的可擴展性面臨了極大的挑戰。Scale-up (縱向擴容)與Scale-out (橫向擴展)是目前數據中心擴容的兩種主要形式。Scale-up是向更強大的CPU,內存,網絡及其他設備擴展,而Scale-out則是通過分布式算法將一個個獨立的低成本伺服器節點組成一個大而強的系統。與Scale-up相比,Scale-out擴容更簡單、成本更低,逐漸成為了未來數據中心發展的主流架構。
[0004]然而採用Scale-out體系結構的數據中心,伺服器節點之間採用鬆耦合的組織形式,相互之間獨立,不能共享計算資源、存儲資源與I/o資源。而目前的分布式算法很難做到將計算任務在大量的伺服器節點之間均勻分布,而不均衡的任務分配容易造成部分伺服器節點負載重,這部分節點成為整個系統的性能瓶頸。
[0005]為了解決上述問題,研究人員提出了伺服器節點之間共享內存與共享I/O的解決方案,其中有代表性的是「內存伺服器」與「虛擬化I/O」。「內存伺服器」是指將數據中心的節點分成「計算節點」與「內存服務節點」,後者在前者產生頁面錯誤時為它提供內存。「虛擬化I/O」通過模擬I/O設備的寄存器與內存,並且截獲作業系統對1埠與寄存器的訪問,然後通過軟體或硬體的形式來模擬真實的I/o設備。
[0006]然而上述解決方案都比較片面,沒有形成一個系統層面的解決方案。為此,本發明提出了一種共享系統地址空間的非緊耦合多節點多處理器系統和方法,為非緊耦合的多伺服器節點之間的內存共享與I/o共享提出了統一的解決方案。
【發明內容】
[0007]提出一種共享系統地址空間的非緊耦合多節點多處理器系統構造方法,包括:
[0008]伺服器節點,用於管理本地計算資源、內存資源、以及I/O資源;
[0009]節點間控制單元,用於在非緊耦合的多個伺服器節點之間實現全局視
[0010]圖的系統地址空間共享;
[0011]其中,伺服器節點之間通過節點間控制單元實現資源共享和通信互連。
[0012]特別地,所述的伺服器節點包括至少一個處理器、至少一個內存控制模塊,以及至少一個I/O控制模塊。
[0013]特別地,所述節點間控制單元包括:
[0014]與各個伺服器節點連接的網絡接口 ;
[0015]系統地址空間映射模塊,用於實現伺服器節點的共享資源的系統地址與伺服器節點的本地真實資源的物理地址之間的轉換;
[0016]支持原子指令的鎖操作管理模塊,用於在非緊耦合的伺服器節點之間實現共享鎖機制;
[0017]網絡消息轉換模塊,用於伺服器節點之間的消息轉換。
[0018]特別地,所述的系統地址空間映射模塊內建立有一張全局系統地址空間映射關係表和一張節點內部資源映射表;
[0019]所述全局系統地址空間映射關係表包括MM1地址空間,所述MM1地址空間記錄了所有伺服器節點的共享資源的MM1地址;
[0020]所述節點內部資源映射表包括映射在MM1地址空間中的所述伺服器節點的共享資源的本地真實資源的物理地址空間。
[0021]特別地,同一個伺服器節點的所有共享資源映射在一段連續的MM1地址空間。
[0022]特別地,所述的支持原子指令的鎖操作管理模塊,用於實現多個伺服器節點之間的互斥操作。
[0023]特別地,所述本地真實資源為所述伺服器節點的內存資源和I/O資源。
[0024]一種共享地址空間的非緊耦合多節點多處理器系統的數據訪問方法,包括:
[0025]S1:本地節點根據配置的麗1地址空間信息,發出數據訪問請求;
[0026]S2:所述數據訪問請求被轉發到節點間控制器ENC ;
[0027]S3:所述ENC根據配置的麗1地址空間信息,通過外部互連網絡將所述數據訪問請求轉發到相應的遠程節點;
[0028]S4:所述相應的遠程節點收到所述數據訪問請求後,根據配置的節點內部資源地址空間映射表確定所述數據訪問請求所要訪問的該遠程節點內部的真實資源的地址。
[0029]本發明的有益效果是:通過共享系統地址空間的方式,在非緊耦合的多節點多處理器系統內實現了內存共享與I/o共享,允許本地節點直接訪問遠程節點的內存資源與I/O資源。
【專利附圖】
【附圖說明】
[0030]圖1為本發明提出的一種共享系統地址空間的非緊耦合多節點多處理器系統。
[0031]圖2為本發明提出的共享系統地址空間的地址空間映射關係圖。
[0032]圖3為本發明提出的節點間控制模塊示意圖。
[0033]圖4為本發明提出的節點內部資源地址空間映射表。
[0034]圖5為節點內部原子指令申請鎖操作流程圖。
[0035]圖6為本發明提出的地址映射流程示意圖。
[0036]圖7為本發明提出的申請全局鎖操作的流程示意圖。
【具體實施方式】
[0037]為了使本發明的目的、技術方案更加清楚明白,下面給出本發明的【具體實施方式】,結合附圖及實施例對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明。
[0038]實施例一:
[0039]本發明提出的實施例一提出一種共享系統地址空間的非緊耦合多節點多處理器系統。圖1給出了所述系統的結構圖。在圖中,節點內部通過節點內控制器INC(Intra NodeController)相連,每個INC可以連接至少一個CPU。每個節點是一個獨立的整體,擁有獨立的計算資源、內存資源與I/O資源,可以運行獨立的作業系統。節點之間採用非緊耦合形式組織,相互之間獨立,節點間無法直接實現內存資源與I/O資源的共享。
[0040]所述節點可以為伺服器節點,該伺服器節點用於執行作業系統,管理本地的計算資源、內存資源、以及I/O資源。伺服器節點包括至少一個處理器、至少一個內存控制模塊、和/或至少一個I/o控制模塊。
[0041]為了實現節點之間內存資源與I/O資源的共享,所述系統還包括節點間控制器ENC (External Node Controller)。各個節點通過節點間控制器ENC與專用互連網絡相連,組成可擴展的分布式計算系統。更重要的是,節點間通過ENC才能夠實現內存資源與1/0資源的共享,具體實現方法將在後續文字中描述。
[0042]首先參見圖2,圖2示出了共享系統地址空間映射關係圖。本發明通過共享系統地址空間的方式實現節點之間內存資源與I/o資源的共享。其中,麗10區域映射了所有遠程節點中被共享的內存地址與I/O地址空間;在本地節點與遠程節點中,被MM1區域映射的內存地址空間,需要分配在非一致性的內存區域Non-coherent Memory。
[0043]舉例來說,Node_0中的non-coherent Memory是真實的內存,而MM1地址空間記錄的僅僅是一個映射關係,所有節點通過麗10地址空間發出的訪問都會落在真實的內存和1/0上,通過全局映射表(一段麗10空間)進行訪問Node_0的地址,最後會轉變成對non-coherent Memory的訪問。基於這種方式,本地節點通過訪問MM1地址空間的地址,實現訪問遠程節點內存資源與1/0資源的目的。
[0044]圖3給出了節點間控制模塊ENC的結構示意圖。節點間控制模塊是本發明的重要部件,包括與各個相互獨立的節點連接的網絡接口,系統地址空間映射模塊、網絡消息管理模塊以及支持原子指令的鎖操作管理模塊。
[0045]1.系統地址空間映射模塊
[0046]系統地址空間映射模塊,用於將遠程節點系統地址空間內的地址轉換成本地系統地址空間內的地址,使兩個節點之間能夠跨系統域通信。基於該模塊,可以將整個非緊耦合的多節點系統內的共享資源建立一個全局視圖,如圖2所示。基於該全局視圖,非緊耦合的節點之間可實現在緊耦合組織方式下才能實現的資源共享。
[0047]系統地址空間映射模塊用於建立共享系統地址空間的全局視圖(圖2示出),所有遠程節點的共享資源映射在本地的麗10地址空間,不同麗10區域的地址空間不重疊,同一個節點的所有共享資源映射在一段連續的MM1空間。同時該模塊將遠程節點通過MM1地址訪問本地節點共享資源的請求轉換成節點內可識別的地址請求。
[0048]所述的系統地址空間映射模塊還建立一張節點內部資源映射表。在節點內部資源映射表中,將全局視圖中本地節點對應的MM1地址空間映射為本地資源真實的地址空間,即內存地址以及1/0設備的麗1地址。
[0049]圖4給出了節點內部資源地址空間映射表。其中,表的左半部為全局地址空間視圖中本地節點對應的連續的MM1地址空間,表的右半部為對應於連續MM1地址空間的本地內存資源或者I/O資源的本地地址。
[0050]2.支持原子指令的鎖操作管理模塊
[0051]支持原子指令的鎖操作管理模塊,用於在非緊耦合的兩個節點之間實現共享鎖機制,使兩個節點之間衝突的共享操作可以互斥執行。
[0052]為了說明本專利中針對共享地址的原子指令執行流程,在專利中首先回顧一下在節點內的原子指令執行流程。在系統中原子指令要求,指令內的兩次訪存操作要在無外界衝突訪存操作幹擾的情況下順序完成,因此原子指令的執行流程分成三個步驟:申請全局鎖、執行訪存操作、釋放全局鎖。
[0053]首先,申請全局鎖的過程如圖5所示,其中Core為處理器核、LLC為最後一級緩存的緩存控制器,Config Agent為配置代理,Quiescent Master為靜止控制器。在申請全局鎖的過程中,Core首先發出申請,經過LLC與Config Agent到達Quiescent Master ;Quiescent Master向節點內的所有處理器發出停止請求的申請(StopReql);當QuiescentMaster收到所有處理器的確認回復之後,Quiescent Master向I/O代理髮出停止請求的申請(StopReq2);當收到所有的確認回復之後,Quiescent Master向申請鎖操作的Core回復確認消息。當Core收到確認消息以後,執行訪存操作與釋放全局鎖操作,釋放全局鎖操作與申請鎖操作流程相似。
[0054]在共享全局地址空間的非緊耦合的多節點多處理器系統中,針對共享地址的原子指令執行流程與節點內的指令原子指令的執行流程,在申請I/o的停止請求(StopReq2)過程中有著很大的區別。為了保證該原子指令的作用域是整個系統,而非某個節點內部,當鎖操作管理模塊收到停止I/O請求的申請時,該請求會通過ENC中的鎖操作管理模塊廣播到所有節點的鎖操作管理器。
[0055]在多節點申請全局鎖的過程中,避免死鎖是首先要考慮的問題,本專利中為了避免死鎖,將系統中某一個節點推舉為全局鎖操作管理節點(Lock Manager),所有申請全局鎖的節點都要向全局鎖操作管理節點的鎖操作管理模塊發送請求,然後由該節點向系統內其他節點的鎖操作管理器發送申請全局鎖的請求。
[0056]當節點內的鎖操作管理模塊,收到停止1/0請求(StopReq2)的申請時,鎖操作管理模塊會向全局鎖操作管理節點Lock Manager發出申請節點間全局鎖的請求,LockManager在收到請求以後,轉發請求到所有其它節點的鎖操作管理模塊,所有節點的鎖操作管理器會在本節點內部申請節點內的全局鎖操作,申請成功後向Lock Manager回復確認消息,當Lock Manager收齊所有的確認回復以後,向申請節點間全局鎖的節點回復確認消息。當申請節點間全局鎖的鎖操作管理器收到確認回復以後,向本節點的Quiescent Master回復完成停止1/0請求的申請。Quiescent Master向處理器核回復確認消息,完成了針對共享地址的全局鎖的申請過程。
[0057]3.網絡消息轉換模塊
[0058]網絡消息轉換模塊,用於實現節點內部互連網絡與節點之間互連網絡的消息轉換,在兩個網絡之間實現透明通信。節點訪問遠程節點共享的資源的交互信息以及申請全局鎖過程中交互的信息均通過該模塊在節點間轉發。
[0059]實施例二:
[0060]圖6給出了地址映射流程圖,描述了本地節點訪問遠程節點的共享資源時,被訪問地址的轉換流程。具體流程描述如下:
[0061]步驟一,本地節點根據全局共享地址空間視圖,發出讀取(或修改)數據請求。
[0062]步驟二,根據本地節點的地址空間配置,請求被轉發到ENC(節點間控制器)。
[0063]步驟三,ENC(節點間控制器)根據全局共享地址空間視圖,通過外部互連網絡轉發請求到遠程節點。
[0064]步驟四,遠程節點收到請求,根據節點內部資源地址空間映射表將全局視圖的MM1地址轉換成本地地址空間內地址。
[0065]實施例三:
[0066]圖7描述了申請全局鎖操作的流程示意圖。具體步驟如下:
[0067]步驟一,當本地節點的鎖操作管理模塊收到申請鎖的請求時,並非立即執行答覆而是向全局鎖操作管理節點Lock Manager的鎖操作管理模塊發出申請節點間全局鎖的請求。
[0068]步驟二,Lock Manager的鎖操作管理模塊收到請求後,向視圖內的所有節點的鎖操作管理模塊發出申請節點內鎖的請求。
[0069]步驟三,每個節點的鎖操作管理模塊會在其節點內部執行申請節點內鎖操作,然後答覆Lock Manager的鎖操作管理模塊。
[0070]步驟四,Lock Manager的鎖操作管理模塊當收齊所有的確認答覆以後,答覆最初申請鎖操作的鎖操作管理模塊,允許其執行原子訪存操作。
[0071]當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明的權利要求的保護範圍。
【權利要求】
1.一種共享地址空間的非緊耦合多節點多處理器系統,其特徵在於,包括: 伺服器節點,用於管理本地計算資源、內存資源、以及I/o資源; 節點間控制單元,用於在非緊耦合的多個伺服器節點之間實現全局視圖的系統地址空間共孚; 其中,伺服器節點之間通過節點間控制單元實現資源共享和通信互連。
2.根據權利要求1所述系統,其特徵在於: 所述的伺服器節點包括至少一個處理器、至少一個內存控制模塊,以及至少一個I/O控制模塊。
3.根據權利要求1所述的系統,其特徵在於: 所述節點間控制單元包括: 與各個伺服器節點連接的網絡接口; 系統地址空間映射模塊,用於實現伺服器節點的共享資源的系統地址與伺服器節點的本地真實資源的物理地址之間的轉換; 支持原子指令的鎖操作管理模塊,用於在非緊耦合的伺服器節點之間實現共享鎖機制; 網絡消息轉換模塊,用於伺服器節點之間的消息轉換。
4.根據權利要求3所述的系統,其特徵在於: 所述的系統地址空間映射模塊內建立有一張全局系統地址空間映射關係表和一張節點內部資源映射表; 所述全局系統地址空間映射關係表包括MM1地址空間,所述MM1地址空間記錄了所有伺服器節點的共享資源的麗1地址; 所述節點內部資源映射表包括映射在MM1地址空間中的所述伺服器節點的共享資源的本地真實資源的物理地址空間。
5.根據權利要求4所述的系統,其特徵在於:同一個伺服器節點的所有共享資源映射在一段連續的麗1地址空間。
6.根據權利要求3所述系統,其特徵在於: 所述的支持原子指令的鎖操作管理模塊,用於實現多個伺服器節點之間的互斥操作。
7.根據權利要求3-6所述的系統,其特徵在於: 所述本地真實資源為所述伺服器節點的內存資源和I/O資源。
8.一種共享地址空間的非緊耦合多節點多處理器系統的數據訪問方法, 其特徵在於,包括: 51:本地節點根據配置的麗1地址空間信息,發出數據訪問請求; 52:所述數據訪問請求被轉發到節點間控制器ENC ; 53:所述ENC根據配置的MM1地址空間信息,通過外部互連網絡將所述數據訪問請求轉發到相應的遠程節點; S4:所述相應的遠程節點收到所述讀取數據請求後,根據配置的節點內部資源地址空間映射表確定所述數據訪問請求所要訪問的該遠程節點內部的真實資源的地址。
【文檔編號】H04L29/08GK104199740SQ201410433320
【公開日】2014年12月10日 申請日期:2014年8月28日 優先權日:2014年8月28日
【發明者】王恩東, 胡雷鈞, 唐士斌, 陳繼承 申請人:浪潮(北京)電子信息產業有限公司