快速信道互聯

快速通道互聯(英語:Intel QuickPath Interconnect,縮寫QPI),是一種由英特爾開發並使用的點對點處理器互聯架構,用來實現晶片之間的互聯。英特爾在2008年開始用QPI取代以往用於至強安騰、桌面型平台以及大部分行動型平台的處理器的前端匯流排FSB)。至Intel Core i系列CPU後,QPI也被逐步套用於個人計算機上。初期,英特爾給這種連線架構的名稱是“公共系統界面”(Common System InterfaceCSI),它的早期設計形態亦被稱為Yet Another Protocol(YAP)和YAP+。

基本介紹

  • 中文名:快速信道互聯
  • 外文名:Intel QuickPath Interconnect
簡介,背景,實現,時鐘頻率規格,協定層,參見,

簡介

快速通道互聯(英語:IntelQuickPathInterconnect,縮寫QPI),是一種由英特爾開發並使用的點對點處理器互聯架構,用來實現晶片之間的互聯。英特爾在2008年開始用QPI取代以往用於至強安騰、桌面型平台以及大部分行動型平台的處理器的前端匯流排FSB)。至Intel Core i系列CPU後,QPI也被逐步套用於個人計算機上。初期,英特爾給這種連線架構的名稱是“公共系統界面”(Common System InterfaceCSI),它的早期設計形態亦被稱為Yet Another Protocol(YAP)和YAP+。
英特爾在發布Sandy Bridge-EP核心(Romley平台)後,也順勢公布首代QPI的改進版QPI 1.1版本。Intel於2017年發布的SkyLake-SP Xeon中,用UPI(UltraPathInterconnect)取代QPI。

背景

儘管多數時候被稱作“匯流排”,但是QPI是一種點對點互聯結構。它被設計成與超微半導體自2003年使用的超傳輸(HyperTransport)匯流排競爭。英特爾在它下屬的麻省微處理器研究中心(Massachusetts Microprocessor Design Center,MMDC)開發設計QPI,由以前曾在DEC Alpha的開發團隊的成員進行。這個原先來自DEC的開發團隊此前曾在康柏計算機惠普工作,後來被英特爾挖角。而關於QPI的研究早在2004年就開始了。
QPI的首次實現是英特爾自家的Nehalem微架構。在2008年11月發售的桌面型平台處理器Core i7-900系列和X58晶片組上、在2009年3月發布伺服器平台的Xeon X5500系列處理器。後來,2010年2月發布的Itanium 2處理器(核心代號“Tukwila”),也使用了QPI。

實現

QPI通常作為一個系統架構的組成部分,英特爾稱之為“快速通道架構”(QuickPath architecture),這個架構的實現英特爾又稱之為“快速通道技術”(QuickPath technology)。在QPI最簡單的布置形態——單處理器主機板上,QPI可用來將像是北橋晶片、南橋晶片的IO Hub和處理器點對點連線,像是早期Core i7-900系列與X58晶片組之間的連線。在一些更複雜的架構的例子中,多個QPI連結可將一個以上的處理器或一個以上的IO Hub甚至主機板網上上的路由集線器點對點連線起來,允許各個組件通過這個網上來與另一個組件進行通信。和HyperTransport匯流排類似,搭載快速互聯架構的處理器亦需要內置存儲器控制器,支持非均勻訪問架構。
每個QPI包括有兩個20連線的點對點數據通道,每個通道一個傳送方向,而每一方向還配備單獨的時鐘信號對(傳送TX,接收RX),與數據信號一起形成共42個信號,如此一來達成全雙工運作。每個時鐘信號採用差動信號的形式傳送,因此QPI的信號線共84條。20條連線被劃分為四等份,每份5條連線。QPI中基本數據傳送單元是80位大小的QPI數據包,每兩個時鐘周期完成一次一個QPI數據包的傳送,在這兩個時鐘周期內,一個QPI數據包是分為四次傳送,每次傳送20比特,即一個時鐘周期內傳送兩次。每個80位的QPI數據包內有8位用於錯誤糾正,8位是“鏈路層報頭”,剩下的64位才是包含的真實有效的數據。QPI的頻寬的計算上,建議計算每兩個時鐘周期每方向傳送的有效數據量,由於QPI是雙向傳送的,因此每方向在兩個時鐘周期內都會有包含64位(8位組)有效數據的數據包的傳送。
儘管最初QPI僅實現四象限連結,但QPI的規格容許其它實現。每個象限可以獨立使用。在高可靠度伺服器上,一個QPI連結可以在降階模式中運作。如果20+1信號中一個或多個鏈路失效,接口將剩餘的鏈路以10+1或最低5+1信號來繼續運作,如果時鐘失效,甚至會為數據信號重新分配時鐘。
最初實現四象限鏈路的是Nehalem架構的4核心處理器,使用完整的四象限連結QPI接口達成25.6GB/s的頻寬,提供兩倍於英特爾自家的X48晶片組上使用的1600MHz FSB的理論頻寬。
儘管最早Core i7-900系列全面使用QPI,但其它Nehalem架構至桌面型處理器和行動型處理器,像是Core i3Core i5以及其它Core i7系列(Lynnfield核心、Clarksfield核心以及其後續核心型號)的處理器,這些處理器因無需參與到多處理器系統上(從市場取向上也沒有必要加入該特性),因此任何外部訪問方式上都沒有使用QPI,儘管這些處理器內部仍然使用QPI,用以連線處理器內的“Uncore”(“Uncore”指的是處理器晶片的一部分,包含存儲器控制器、PCI-E控制器、以及內置GPU,乃至整個北橋),這種設計可見於基於Westmere微架構的Clarkdale核心及Arrandale核心型號上(即首代Core i3、i5)而這些系列的處理器,北橋已經移到處理器內部作為“Uncore”(或稱“片上北橋”)的一部分,和處理器核心直接連線,無需再以前端匯流排界面連線,處理器的外部連結通過片上北橋/Uncore使用較慢的DMI(2.5GT/s至5.0GT/s的吞吐量)或PCI-e匯流排接口,用來連線南橋/PCH或其它形式的外部設備。Nehalem/Westmere微架構上,Uncore/片上北橋與處理器核心尚用QPI連線,而Sandy Bridge微架構以後的桌面型平台以及移動平台之處理器上則採用基於QPI派生的環形匯流排鏈路連線,同時也保證快取一致性

時鐘頻率規格

QPI的運作時鐘頻率有2.4GHz、2.93GHz、3.2GHz或4.0GHz(4.0GHz用於企業級的Sandy Bridge-E/EP核心的處理器上)。每個特定鏈路的時鐘頻率取決於鏈路終端的組件之性能以及印刷電路板上信號路徑的信號特徵,亦即可根據所連線組件的數據吞吐量需求自行調整時鐘頻率,提高資源利用效率。最初,非極致版本的Core i7-900系列的處理器出廠默認的QPI時鐘頻率被限定在2.4GHz。由於採用了雙倍數據率技術(DDR),比特的傳送在時鐘脈衝信號上升沿下降沿都進行,因此,數據傳送的實際時鐘頻率是時鐘時鐘頻率的兩倍。
英特爾以80位的QPI數據包封裝的64位實際有效數據的傳送量計數,來描述數據吞吐量和頻寬。然而,由於單向傳送和單向接收鏈路對是同步進行的,亦即全雙工作業,英特爾後來將結果數字改為原來的兩倍。因此,英特爾描述中,一個運作於3.2GHz時鐘頻率速率的20通道的QPI連結對(傳送和接收)擁有6.4GT/s的數據傳送速率,25.6GB/s的頻寬,而同樣通道數的QPI運作於2.4GHz時數據傳送速率是4.8GT/s,頻寬19.2GB/s。更通常地,根據這個定義,一個兩端連結的20通道QPI每時鐘周期傳送8位組,每方向4位組。
頻寬計算:(以運作於3.2GHz時鐘頻率速率下,吞吐量6.4GT/s)
  • 3.2 GHz
  • × 2 bits/Hz (雙倍數據傳送速率)
  • × 20 (QPI連線寬度)
  • × (64/80) (數據比特數/數據包比特數)
  • × 2 (各向傳送和接收作業同步進行)
  • ÷ 8 (每位元組比特數)
  • = 25.6 GB/s
或:
  • 6.4 GT/s
  • × 2 Byte (每次傳輸的有效數據,64位/4次/8位一個位元組=2位元組每次)
  • × 2 (各項傳送和接收作業同時進行)
  • = 25.6 GB/s
如此類推,2.4GHz或4.8GT/s、4.0GHz或8.0GT/s、2.93GHz或5.86GT/s的也可以計算出頻寬。

協定層

QPI的協定定義了五層結構,分為物理層、鏈路層、路由層、傳輸層以及協定層。但是,在一些僅兩節點的點對點QPI配置配置上,像是Core i7-900系列和Xeon雙處理器平台(DP)系列的處理器,不需要傳輸層,路由層是最小最簡單的兩節點配置。
  • 物理層:物理層包含實際接線、差分傳送器和接收器、加上傳送和接收的物理層單元的最低級邏輯。所謂的物理層單元是20比特的數據包分塊。當20個通道全部可用時,物理層利用1個單一時鐘信號邊沿在20個通道上傳輸20比特的數據包分塊,如果遇到失效/傳輸失敗的情況時,QPI會重新配置,僅使用10個甚至只有5個通道來傳輸數據包分塊。注意,除了數據信號以外,會有一個時鐘信號從傳送器傳送到接收器上(這需要占用一個額外的引腳來簡化時鐘恢復過程)。
  • 鏈路層:鏈路層負責傳送和接收80位的數據包。每個數據包傳送至物理層上是作為4個20比特的數據包分塊的形式。每個數據包包括一個8位的CRC(循環冗餘校驗),由鏈路層傳送器生成,72比特是數據包所承載的數據。如果鏈路層檢測到一個CRC錯誤,傳送器通過一對鏈路中的返回鏈路發回一個數據包通知傳送器重發數據包。為防止接收器的緩衝器溢出,鏈路層還通過賒賬/借記的方案來實現數據流量控制。鏈路層支持六種不同類型的訊息,來允許更高的協定層識別數據包中主要用於保持快取一致性非數據部分並將之拆分以掠過。在實現一些複雜的快速通道架構上,鏈路層可被配置成為不同類別的數據流保持數據流分離和流量控制。但是,在單處理器和雙處理器平台上實現的快速通道架構,這方面的實現需要仍不明確。
  • 路由層:路由層傳送一個包含一個8位報頭和64位數據承載的72比特單元。報頭包括數據目的地和訊息類型。當路由層接收到一個單元,它會檢查它的路由表以確定單元是否到達目的地。如果單元已到達目的地的話,就將之傳遞至更高的協定層上。如果仍未到達目的地,單元將被傳送到正確的向外傳輸QPI。在只有單一QPI架構的設備上,路由層是最小的。在更複雜的實現示例上,路由層的路由表會更為複雜、而且被定製成動態更新以避免失效的QPI連結。
  • 傳送層:僅有兩節點的連線中,傳送層並不是必須的,而且亦不會出現在這些設備上,像是Core i7。傳送層可跨越QPI網上傳送和接收數據,這個QPI網上由其它多個設備上的數個節點以QPI連線組成,這些設備也可能並沒有直接連線(舉個例子,數據可能會由一個已被插斷的設備上經過),傳送層會校驗數據的完整性,如果數據不完整,它會要求上一個節點重新傳送數據。
  • 協定層:協定層傳送和接收代表設備的數據包。一個典型的數據包是一個存儲器快取行。協定層也通過傳送和接收快取一致性訊息的方式參與到快取一致性的維持。

參見

相關詞條

熱門詞條

聯絡我們