延遲容忍



微處理器的速度每十年增長十倍以上,但商品記憶體(DRAM)的速度僅翻倍,即訪問時間減半。因此,記憶體訪問的延遲(以處理器時鐘週期為單位)在 10 年內增長了六倍。多處理器加劇了這個問題。

在基於匯流排的系統中,在處理器和記憶體之間建立高頻寬匯流排往往會增加從記憶體獲取資料的延遲。當記憶體物理分佈時,網路和網路介面的延遲會新增到節點上訪問本地記憶體的延遲中。

延遲通常會隨著機器規模的增大而增長,因為更多的節點意味著更多的通訊相對於計算,更多的網路跳轉用於一般通訊,以及可能更多的爭用。硬體設計的首要目標是在保持高可擴充套件頻寬的同時降低資料訪問延遲。

延遲容忍概述

要了解如何處理延遲容忍,最好檢視機器中的資源以及如何利用它們。從處理器的角度來看,從一個節點到另一個節點的通訊架構可以被視為一個管道。管道的階段包括源和目標處的網路介面,以及沿途的網路鏈路和交換機。根據體系結構如何管理通訊,通訊輔助、本地記憶體/快取系統和主處理器中也存在階段。

基線通訊結構中的利用問題是處理器或通訊架構在給定時間處於繁忙狀態,並且在通訊管道中,只有一個階段在繁忙狀態,因為正在傳輸的單個字從源到目標。延遲容忍的目標是儘可能多地重疊這些資源的使用。

顯式訊息傳遞中的延遲容忍

訊息傳遞中資料的實際傳輸通常由傳送方發起,使用傳送操作。接收操作本身不會促使資料進行通訊,而是將資料從傳入緩衝區複製到應用程式地址空間。接收方發起的通訊是透過向作為資料來源的過程發出請求訊息來完成的。然後,該過程透過另一個傳送將資料傳送回。

同步傳送操作的通訊延遲等於將訊息中的所有資料通訊到目標所需的時間,以及接收處理時間,以及返回確認所需的時間。同步接收操作的延遲是其處理開銷;這包括將資料複製到應用程式,以及如果資料尚未到達的額外延遲。我們希望隱藏這些延遲,包括儘可能的開銷,在兩端。

共享地址空間中的延遲容忍

基線通訊是透過共享地址空間中的讀寫操作完成的。為方便起見,稱為讀寫通訊。接收方發起的通訊是透過導致訪問另一個處理器記憶體或快取中的資料的讀取操作來完成的。如果沒有共享資料的快取,則傳送方發起的通訊可以透過寫入分配在遠端記憶體中的資料來完成。

使用快取一致性,寫入的影響更加複雜:寫入導致傳送方或接收方發起的通訊取決於快取一致性協議。無論是接收方發起還是傳送方發起,硬體支援的讀寫共享地址空間中的通訊本質上是細粒度的,這使得容忍延遲非常重要。

共享地址空間中的塊資料傳輸

在共享地址空間中,無論是透過硬體還是軟體,資料的合併和塊傳輸的啟動可以在使用者程式中顯式完成,也可以由系統透明地完成。顯式塊傳輸是由在使用者程式中執行類似於傳送的命令來發起的。傳送命令由通訊輔助解釋,後者以流水線方式將資料從源節點傳輸到目標節點。在目標端,通訊輔助從網路介面中提取資料字並將它們儲存在指定的位置。

與傳送-接收訊息傳遞有兩個主要區別,這兩者都源於傳送程序可以直接指定程式資料結構,其中資料將在目標處放置,因為這些位置位於共享地址空間中。

在共享地址空間中繼續執行長延遲事件

如果記憶體操作被設為非阻塞,則處理器可以繼續執行其他指令。對於寫入,如果寫入被放入寫入緩衝區,並且處理器繼續執行,而緩衝區負責根據需要向記憶體系統發出寫入並跟蹤其完成,則通常很容易實現這一點。區別在於,與寫入不同,讀取通常緊隨其後的是需要讀取返回的值的指令。

共享地址空間中的預通訊

預通訊是一種已在商用微處理器中廣泛採用的技術,並且其重要性可能會在未來增加。預取指令不會替換資料項的實際讀取,並且預取指令本身必須是非阻塞的,如果要透過重疊來實現隱藏延遲的目標。

在這種情況下,由於共享資料未被快取,因此預取的資料被引入一個稱為預取緩衝區的特殊硬體結構中。當在下次迭代中將該字實際讀入暫存器時,它從預取緩衝區的頭部讀取,而不是從記憶體讀取。如果要隱藏的延遲遠大於計算單個迴圈迭代的時間,我們會提前預取幾個迭代,並且預取緩衝區中可能同時存在幾個字。

共享地址空間中的多執行緒

在隱藏不同型別的延遲方面,硬體支援的多執行緒可能是用途最廣泛的技術。與其他方法相比,它具有以下概念優勢:

  • 它不需要特殊的軟體分析或支援。

  • 由於它是動態呼叫的,因此它可以處理不可預測的情況,例如快取衝突等,以及可預測的情況。

  • 與預取類似,它不會更改記憶體一致性模型,因為它不會重新排序執行緒內的訪問。

  • 雖然以前的技術針對隱藏記憶體訪問延遲,但多執行緒可以潛在地同樣輕鬆地隱藏任何長延遲事件的延遲,只要可以在執行時檢測到該事件即可。這也包括同步和指令延遲。

這種趨勢可能會在未來發生變化,因為與處理器速度相比,延遲變得越來越長。此外,使用更復雜的微處理器,這些微處理器已經提供了可以擴充套件用於多執行緒的方法,以及開發了新的多執行緒技術以將多執行緒與指令級並行相結合,這種趨勢肯定在未來會發生一些變化。

廣告