用于對鏈路上的功率和延遲進行優(yōu)化的方法和裝置的制造方法
【技術領域】
[0001] 本申請涉及基于處理器的系統(tǒng),以及在基于處理器的系統(tǒng)的鏈路內的有效的處理 機器級的代碼。
【背景技術】
[0002] 當打開基于處理器的系統(tǒng)時,運行系統(tǒng)內的指令用于對系統(tǒng)的各個部分(例如, 視頻顯示器、鍵盤、以及硬盤)進行加電。最后,加載通常包括美觀的圖形用戶界面的操作 系統(tǒng)。所加載的操作系統(tǒng)使得用戶能夠通常通過向系統(tǒng)上加載軟件,利用系統(tǒng)來進行各種 各樣不同的動作。
[0003] 除了這些操作之外,在系統(tǒng)用戶的視線之外,發(fā)生了很多其他動作。例如,系統(tǒng)內 的便攜式機器代碼(pcode),使系統(tǒng)內的不同實體能夠彼此通信。所述實體包括但不限于: 中央處理單元(CPU)、存儲器、圖形控制器、總線、以及連接到各種外圍設備并且控制外圍設 備的外圍設備集線器,所述外圍設備連接到基于處理器的系統(tǒng)。
[0004] 如同更高層級的操作系統(tǒng)、驅動程序、以及加載到系統(tǒng)中的其他軟件那樣,系統(tǒng)內 部運行的便攜式機器代碼可能會發(fā)生延遲,這降低了系統(tǒng)的效率。延遲是對時延的度量,并 且可能影響幾乎任何設備之間的任何通信。
[0005] 當前很多系統(tǒng)構建于快速PCI標準(PCIe)下,其中鏈路功率、設備之間的通道數(shù) 量是可調節(jié)的。在PCIe下,一個、兩個、四個、八個、十六個和三十二個通道是可能的。由此, "乘八"(x8)系統(tǒng)表示存在八條通道正在使用,每條通道具有兩個差分信令對,一對用于發(fā) 送,而另一對用于接收。在給定時刻正在使用的通道數(shù)影響系統(tǒng)的吞吐量,從而影響進行操 作的速度。
[0006] 仍然在PCIe下,當前很多基于處理器的系統(tǒng)設計有低功率狀態(tài)。尤其是對于膝上 計算機、蜂窩電話、和其他功率敏感的設備,在未使用系統(tǒng)時發(fā)生低功率狀態(tài),從而有望延 長電池壽命,從而延長設備的可攜帶性。盡管可以通過關閉系統(tǒng)的部分來實現(xiàn)低功率狀態(tài), 但是減小鏈路功率也是用于減小由系統(tǒng)的消耗功率的機制。
[0007] 減小鏈路功率來節(jié)能可能增大系統(tǒng)的延遲。存在解決方案可以減輕延遲問題。所 述解決方案依賴于1) "敏捷的"硬件,2)深度緩沖區(qū),3)未飽和的隊列,或4),1)、2)和3) 的組合。
[0008] 如果系統(tǒng)中的硬件足夠敏捷,例如,硬件可以快速地對鏈路重新供應。例如,存在 連接在CPU之間的專用的總線,其被稱為快速路徑互連(QPI)總線。QPI總線被設計成加快 兩個CPU之間的通信,并且具有鏈路寬度指示符LOp。在從一個鏈路寬度上調到另一個鏈路 寬度期間,QPI的LOp "熄滅"時間僅為幾十納秒,這樣允許對于CPU之間繁重的業(yè)務服務突 發(fā)而言有幾十微秒量級的短響應延遲。
[0009] 深度緩沖區(qū)由端點提供。例如,網(wǎng)絡接口卡(NIC)可以在其LAN到PCIe管道中提 供64千字節(jié)的緩沖存儲裝置。這樣為NIC提供了大量的數(shù)據(jù),用于在處理流期間通過管道 饋送。大型緩沖區(qū)通過存儲進入的請求來隱藏延遲,同時例如在退出功率控制狀態(tài)時,耗電 設備返回到滿負荷操作。在當前上下文中,消耗設備是暫時(例如,幾微秒)離線的緩沖區(qū) 內容消耗PCIe鏈路。
[0010] 發(fā)送隊列可以有助于延遲問題,但預計以特定的方式進行表現(xiàn)。例如,QPI總線具 有與高速緩存缺失的相對隨機的行為相組合的小分組有效載荷,使得將其相對小的(幾十 行)隊列在大部分時間中處在"不飽和"狀態(tài)。在滿負載時,隊列很少是空的,而很少是滿 的。因此,對于QPI總線而言,隊列深度閾值作為延遲的代理可以很好地工作。
[0011] 現(xiàn)在考慮主要任務是用于傳送網(wǎng)頁的前端服務器的典型PCie行為。硬件不是"敏 捷的" :PCie重新提供周期招致鏈路幾微秒量級的熄滅,其使得用于重新提供決策的"檢查 點"間隔進入毫秒范圍。根復合緩沖區(qū)僅僅為四千字節(jié)深:要發(fā)送的網(wǎng)頁是大更多倍的。因 此,在網(wǎng)頁開始通過PCIe發(fā)射機管道"傾瀉"時,使隊列飽和,并且在其停止時,隊列變空。 隊列在一些中間狀態(tài)中"反復彈跳"的可能非常小。因此,在根復合中使用隊列深度閾值充 當了延遲的不良代理。
[0012] 由此,存在對克服現(xiàn)有技術的缺點的解決方案的持續(xù)的需要。
【附圖說明】
[0013]本文的以上方面和很多伴隨的優(yōu)點將變得更容易意識到并且同時變得更好理解 了,這是因為通過參考以下的【具體實施方式】,在結合附圖考慮來參考以下【具體實施方式】時, 在各個附圖中,類似的附圖標記指代類似的部分,除非另有指定。
[0014] 圖1是根據(jù)一些實施例的系統(tǒng)的簡化的框圖,所述系統(tǒng)包括用于連接計算機系統(tǒng) 中的I/O設備的串行點到點互連;
[0015] 圖2是根據(jù)一些實施例的分層協(xié)議棧的簡化的框圖;
[0016] 圖3是根據(jù)一些實施例的事務描述符的簡化的框圖;
[0017] 圖4是根據(jù)一些實施例的串行點到點鏈路的簡化的框圖;
[0018] 圖5是根據(jù)一些實施例的用于對鏈路上的功率和延遲進行優(yōu)化的系統(tǒng)的簡化的 框圖;
[0019] 圖6是示出了根據(jù)一些實施例的顯示了由圖5的系統(tǒng)執(zhí)行的操作的簡化流程圖;
[0020]圖7是根據(jù)一些實施例的利用圖5的系統(tǒng)來對多處理器系統(tǒng)內的一個或多個鏈路 上的功率和延遲進行優(yōu)化的的多處理器系統(tǒng)的簡化的框圖;
[0021] 圖8是由一個實施例利用的協(xié)議架構的圖;以及
[0022] 圖9是用于根據(jù)所要求保護的主題利用的物理互連的裝置的框圖。
【具體實施方式】
[0023] 根據(jù)本文描述的實施例,公開了用于對在基于處理器的系統(tǒng)內部工作的鏈路的延 遲和功率進行優(yōu)化的系統(tǒng)和方法。所述系統(tǒng)和方法包括被構建成不依賴于隊列深度閾值的 隊列的延遲計。所述系統(tǒng)和方法還包括反饋日志,其對關于增大的延遲目標的功率減小進 行優(yōu)化,以對由鏈路的物理特性施加的遲滯的重供應行為做出反應。
[0024] 在以下的【具體實施方式】中,參考了附圖,附圖作為示例示出了可以實踐本文所描 述的主題的具體實施例。然而,要理解,本領域的普通技術人員在閱讀本公開之后,其他實 施例將變得顯而易見。因此,以下的【具體實施方式】不應以限制性地意義被解釋,因為所要求 保護的主題的范圍是由權利要求書所限定的。
[0025] 下文描述了用于對在基于處理器系統(tǒng)的內部工作的鏈路的延遲和功率進行優(yōu)化 的系統(tǒng)和方法。正如本文所使用的,鏈路是基于處理器的系統(tǒng)的兩個單元之間的任何連接。 例如,鏈路可以是在基于處理器的系統(tǒng)的兩個CPU之間的QPI總線上的連接?;蛘哝溌房?以是在CPU中的一個和外圍控制器集線器(PCH)或其他支持電路之間的連接。本文描述的 操作可以應用于基于處理器的系統(tǒng)內的若干不同鏈路中的任何鏈路。
[0026] 串斗亍點至I丨點分層幼、議.鏈.路/互連
[0027] 圖1是根據(jù)一些實施例的系統(tǒng)的簡化的框圖,所述系統(tǒng)包括經(jīng)由串行鏈路耦合到 控制器集線器的設備。系統(tǒng)500包括處理器502和耦合到控制器集線器504的系統(tǒng)存儲器 508。處理器502包括任何處理元件,例如,微處理器、主機處理器、嵌入式處理器、協(xié)處理器 或其他處理器。處理器502通過前端總線(FSB) 526耦合到控制器集線器504。在一些實施