英特爾處理器之間點對點高速互聯協議


時間軸
處理器互聯也在逐漸的進化
1992 64 bit Data Bus Pentium
1995 Double Pumped Bus
2000 Quad Pumped Bus Pentium
2003 Dual Independent Bus (DIB)
2004 Shared Front side Bus(FSB)
2005 Dedicated High Speed Interconnects (DHSI)
2008 Quick Path Interconnect(QPI) 2018H2誕生, NUMA環境中連接多個處理器的,高速點對點通信協議;
2017 Ultra Path Interconnect (UPI) 搭載skylake server processor

QPI架構分層

從下到上是:物理層,鏈路層,路由層,傳輸層,協議層;(基本上認為是四層協議)
  • 物理層:負責收發0,1;傳輸的單位是20bit,也被稱為是physical unit 或者phit
    • 4.8GT/s的話,帶寬是:4.8GT/s*16bit/8*2 direction=19.2GB/s
    • 可以工作在full half quarter寬度,full寬度的時候2個phit組成為1個flit
  • 鏈路層:負責可靠傳輸和流控,傳輸的單位是80bit,也被稱為是flow control unit或者flit
    • 支持14個消息類型,但是又一部分沒使用;實際上可能只使用6個;
    • 支持3個虛擬網絡,最大就是14*3=42個虛擬通道;
    • 流速控制使用令牌;發送者的令牌減少,接收者的令牌增加,每轉發完成返回令牌;
    • 每80bit需要8wbit進行crc校驗;
  • 路由層:指導包的傳輸
    • 基本是FW寫路由表實現;
  • 傳輸層:負責可靠端到端傳輸,為可靠性預留;
  • 協議層:各種flit包的傳輸
    • 實現一致性
    • 基於MESI(messy)協議,增加一個forward狀態成MESIF協議;
    • 核心上是CA(Cache Agent),內存側是HA(Home Agent)
    • 請求行為分為兩種傾向:source snoop和home snoop,簡單來講就是少核心的時候使用source snoop ,多核心的時候使用home snoop;
      • source snoop是two hop snoop,二跳探聽,在第二次的時候收到數據;
      • home snoop是three hop snoop,三跳探聽,在第三次的時候收到數據;

UPI架構優化

skylake處理器使用的是基於home snoop的一致性協議;並且進一步有兩個變化,with directory和without directory。
在有了目錄的一致性的協議可以比較有效的減少不必要的 嗅探(snoop)
並且這一代看上去統一了CA和HA,稱為一個CHA,也就是LLC Coherent Agent and Home Agent
具體的其他細節並沒有找到更多的資料。

參考文獻:
Intel QPI互聯技術介紹技術白皮書


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM