專利名稱:修改PCI Express封包摘要的設(shè)備、系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明的一些實施例涉及使用外圍部件互連(PCI) Express (PCIe)進行通信的領(lǐng)域。
背景技術(shù):
計算機系統(tǒng)可以包括PCI Express (PCIe)主橋,其能夠在設(shè)備 之間,例如,在處理器和諸如圖形卡、存儲器單元等其他單元之間, 進行連接。PCIe是輸入/輸出(1/0)協(xié)議,其允許在具有基于信用的 流控制的高速串行互連上傳送封包數(shù)據(jù)。PCIe通信使用分層協(xié)議, 并且包括物理層(用以提供設(shè)備之間的鏈路)、數(shù)據(jù)鏈路層(用以 提供封包排序、數(shù)據(jù)保護以及應(yīng)答信號),以及事務(wù)層。在事務(wù)層, PCIe事務(wù)層封包(TLP)可以包括封包報頭、數(shù)據(jù)凈荷和可選的封 包摘要,其中封包摘要可以包括端到端的循環(huán)冗余校驗(ECRC)信 息,并且其被包括在用于流控制的報頭信用之下。
遺憾的是,具有小數(shù)據(jù)凈荷的PCIe封包可能導(dǎo)致相當(dāng)大的鏈路 開銷。例如,具有小數(shù)據(jù)凈荷的PCIe封包在沒有充分利用數(shù)據(jù)信用 的情況下將消耗報頭信用和數(shù)據(jù)信用二者,由此造成鏈路開銷。
發(fā)明內(nèi)容
本發(fā)明的一些實施例包括例如修改PCI Express (PCIe)封包摘 要的設(shè)備、系統(tǒng)和方法。
在一些實施例中, 一種裝置,包括基于信用的流控制互連設(shè) 備,用以生成基于信用的流控制互連事務(wù)層封包,其中摘要部分中 的一個或多個位攜帶非ECRC數(shù)據(jù)。
在一些實施例中,非ECRC數(shù)據(jù)包括應(yīng)用特定的數(shù)據(jù)。在一些實施例中,事務(wù)層封包的報頭包括摘要攜帶非ECRC數(shù) 據(jù)的指示。
在 一 些實施例中,事務(wù)層封包的報頭包括摘要攜帶應(yīng)用特定的 數(shù)據(jù)的指示。
在一些實施例中,事務(wù)層封包的報頭包括接收設(shè)備將對在摘要 中攜帶的非ECRC數(shù)據(jù)進行解碼的指示。
在 一 些實施例中,事務(wù)層封包的報頭包括中間設(shè)備將忽略對事 務(wù)層封包的ECRC校驗的結(jié)果的指示。
在一些實施例中,基于信用的流控制互連設(shè)備包括PCI Express 設(shè)備,并且基于信用的流控制互連事務(wù)層封包包括PCI Express事務(wù) 層封包。
在一些實施例中, 一種方法,包括生成基于信用的流控制互 連事務(wù)層封包,其中摘要部分中的一個或多個位攜帶非ECRC數(shù)據(jù)。
在一些實施例中,生成包括將非ECRC數(shù)據(jù)放置在對應(yīng)于 ECRC數(shù)據(jù)的摘要空間中。
在一些實施例中,生成包括在事務(wù)層封包的報頭中放置所述 摘要攜帶非ECRC數(shù)據(jù)的指示。
在一些實施例中,生成包括在事務(wù)層封包的報頭中放置所述 摘要攜帶應(yīng)用特定的數(shù)據(jù)的指示。
在一些實施例中,生成包括在事務(wù)層封包的報頭中放置接收 設(shè)備將對所述摘要中所攜帶的非ECRC數(shù)據(jù)進行解碼的指示。
在一些實施例中,生成包括在事務(wù)層封包的報頭中放置中間 設(shè)備將忽略所述事務(wù)層封包中的ECRC校驗結(jié)果并且傳送所述事務(wù) 層封包的指示。
在 一 些實施例中,生成基于信用的流控制互連事務(wù)層封包包括 生成PCI Express事務(wù)層封包。
在一些實施例中,生成包括使用報頭信用來發(fā)送應(yīng)用特定的數(shù)據(jù)。
在一些實施例中, 一種系統(tǒng),包括基于信用的流控制互連設(shè)備,用以生成基于信用的流控制互連事務(wù)層封包,其中摘要部分中
的一個或多個位攜帶非ECRC數(shù)據(jù);以及基于信用的流控制互連鏈 路,用以傳送所述事務(wù)層封包。
在一些實施例中,基于事務(wù)層封包的報頭中的指示,所述基于 信用的流控制互連鏈路將忽略對所述事務(wù)層封包的ECRC校驗的結(jié) 果。
在一些實施例中,該系統(tǒng)還包括附加的基于信用的流控制互 連設(shè)備,用以接收事務(wù)層封包以及從摘要中抽取所述非ECRC數(shù)據(jù)。
在一些實施例中,基于事務(wù)層封包的報頭中的指示,所述附加 的基于信用的流控制互連鏈路將避免對所述事務(wù)層封包執(zhí)行ECRC 校驗。
在一些實施例中,基于信用的流控制互連設(shè)備包括PCI Express 設(shè)備,基于信用的流控制互連事務(wù)層封包包括PCI Express事務(wù)層封 包,以及基于信用的流控制互連鏈路包括PCI Express鏈路。
一些實施例包括例如計算機程序產(chǎn)品,其包括包含計算機可讀 程序的計算機可用介質(zhì),當(dāng)由計算機執(zhí)行時,所述計算機可讀程序 使得計算機執(zhí)行的本發(fā)明的 一 些實施例的方法。
本發(fā)明的一些實施例提供其他的和/或另外的益處和/或優(yōu)勢。
為了說明的簡化和清楚,圖中示出的元素不是按比例繪制的。 例如,為了介紹清楚, 一些單元的尺寸相對于另一些單元被放大。 此外,參考標(biāo)號在各個圖中可以重復(fù),以指示對應(yīng)的或者類似的單 元。而且,圖中描述的一些框可以組合進單個功能。附圖列出如下
圖1是說明根據(jù)本發(fā)明的一個說明性實施例的、可以使用經(jīng)過 修改的PCI Express封包摘要的系統(tǒng)的示意框圖。
圖2是說明根據(jù)本發(fā)明的一個說明性實施例的、經(jīng)過修改的PCI Express封包的結(jié)構(gòu)的示意框圖。
圖3是說明根據(jù)本發(fā)明的一個說明性實施例的、使用經(jīng)過修改的PCI Express封包摘要的方法的示意流程圖。
具體實施例方式
在下面的詳細描述中,為了提供對本發(fā)明的 一 些實施例的充分 理解,闡述了眾多特定的細節(jié)。然而,本領(lǐng)域技術(shù)人員應(yīng)該理解, 本發(fā)明的實施例可以在沒有這些特定細節(jié)的情況下實現(xiàn)。在其他情 況下,沒有描述7>知的方法、過程、部件、單元和/或電路,從而佳_ 得討論不會變得模糊。其旨在說明此處公開的實施例和附圖應(yīng)該解 釋為說明性的而不是限制性的。
此處利用諸如"處理"、"估計"、"計算,,、"確定,,等等 術(shù)語的討論部分指的是計算機或者計算系統(tǒng)或者類似的計算設(shè)備的 動作和/或處理,其中所述計算機設(shè)備操作數(shù)據(jù)和/或?qū)?shù)據(jù)轉(zhuǎn)換為其 他數(shù)據(jù),其中所述數(shù)據(jù)表示為計算機系統(tǒng)的寄存器和/或存儲器內(nèi)的 物理量(諸如電學(xué)量),所述其他數(shù)據(jù)類似地表示為計算機系統(tǒng)的 寄存器和/或存儲器內(nèi)的物理量。另外,術(shù)語"多個"可以在此處用 于描述兩個或者更多的項;例如,多個項包括兩個或者更多的項。
盡管此處的討論部分可能出于說明目的涉及有線鏈路和/或有線 通信,但是本發(fā)明的實施例不限于此,并且可以包括一個或多個有 線或無線鏈路,可以利用一個或多個無線通信方法或協(xié)議,等等。 本發(fā)明的 一 些實施例可以利用有線通信和/或無線通信。
此處使用的術(shù)語"發(fā)送設(shè)備"或者"發(fā)送端點"或者"發(fā)送端 口,,包括例如PCIe設(shè)備、PCIe端點、PCIe端口、或者其他PCIe單 元或者能夠發(fā)送和向外傳送PCIe數(shù)據(jù)、封包和/或其他通信的PCIe 兼容的單元。此處使用的術(shù)語"接收設(shè)備"或者"接收端點"或者 "接收端口"包括例如PCIe設(shè)備、PCIe端點、PCIe端口、或者其 他PCIe單元或者能夠接收和向內(nèi)傳送PCIe數(shù)據(jù)、封包和/或其他通 信的PCIe兼容的單元。
此處使用的術(shù)語"數(shù)據(jù)凈荷"例如包括PCIe事務(wù)層封包(TLP ) 中包括實質(zhì)性數(shù)據(jù)或者應(yīng)用特定數(shù)據(jù)等的部分或內(nèi)容;不包括元數(shù)
8或者被分派用于存儲或攜帶應(yīng) 用特定數(shù)據(jù)或?qū)嵸|(zhì)性數(shù)據(jù)的其他部分、段、字段或空間。
此處使用的術(shù)語"摘要"或"封包摘要"或者"PCIe封包摘要" 或者"PCIeTLP摘要"或者"摘要部分"或者"摘要字段"或者"摘 要段,,例如可以包括PCIeTLP中可選地附加到TLP的部分或者內(nèi) 容;全部或者部分用于ECRC、 CRC或者其他數(shù)據(jù)保護機制或者數(shù) 據(jù)校驗機制或者數(shù)據(jù)完整性機制或者數(shù)據(jù)驗證機制的TLP部分或者 TLP內(nèi)容;位于TLP末端或者附加到TLP或者附加到TLP數(shù)據(jù)凈荷 的、32位部分或內(nèi)容或者其他尺寸的部分或內(nèi)容;對應(yīng)于TLP的最 后32位的空間;或者TLP的例如使用報頭流控制信用的任何非報頭 和非數(shù)據(jù)凈荷部分或內(nèi)容。
此處使用的術(shù)語"雙字"或"DWord"或者"DW"例如包括具 有4個字節(jié)或者32位大小的數(shù)據(jù)單元。
此處使用的術(shù)語"非ECRC數(shù)據(jù)"或者"非ECRC信息,,或者 "非CRC數(shù)據(jù)"或者"非CRC信息"例如包括不是用于ECRC 或者CRC目的的數(shù)據(jù)或信息;不同于ECRC或CRC數(shù)據(jù)的數(shù)據(jù)或 信息;實質(zhì)性數(shù)據(jù);應(yīng)用特定數(shù)據(jù);等等。
盡管此處的討論部分出于說明目的涉及PCIe通信或設(shè)備,但是 本發(fā)明可以與其他類型的通信或設(shè)備一起使用,例如利用在高速串 行互連上傳送封包數(shù)據(jù)的通信或設(shè)備,利用基于流控制的鏈路管理 的通信或設(shè)備,利用基于信用的流控制的通信或設(shè)備,利用全串行 接口的通信或設(shè)備,利用以屬性化封包實現(xiàn)分片事務(wù)協(xié)議的通信或 設(shè)備,將封包優(yōu)先級化以便改進或優(yōu)化封包傳送的通信或設(shè)備,具 有一個或多個線路(例如,點到點連接)的可擴展鏈路的通信或設(shè) 備,利用高速串行互連的通信或設(shè)備,利用區(qū)別或不同業(yè)務(wù)類型的 通信或設(shè)備,利用高可靠性的數(shù)據(jù)傳送機制(例如,使用序列號和/ 或端到端循環(huán)冗余校驗(ECRC))的通信或設(shè)備,利用鏈路層來實現(xiàn)傳送數(shù)據(jù)的完整性的通信或設(shè)備,利用兩個低壓差分驅(qū)動信號對 (例如,發(fā)射對和接收對)的物理層的通信或設(shè)備,包括線路寬度 和操作頻率協(xié)商的通信或設(shè)備,僅在知道在接收側(cè)存在可用接收緩 沖器接收封包才允許傳輸數(shù)據(jù)封包的通信或設(shè)備,利用請求封包和/
或響應(yīng)封包的通信或設(shè)備,利用消息空間和/或消息信號中斷(MSI) 和/或帶內(nèi)消息的通信或設(shè)備,利用軟件層配置空間的通信或設(shè)備, 利用最大凈荷尺寸(MPS)參數(shù)的通信或設(shè)備,等等。
總的來說,本發(fā)明的一些實施例提供經(jīng)過修改的PCIe協(xié)議以允 許對TLP摘要的修改使用,例如用于攜帶數(shù)據(jù)凈荷而不消耗數(shù)據(jù)信 用。不同于ECRC的TLP摘要的傳統(tǒng)使用或者除此之外,經(jīng)過修改 的PCIe協(xié)議允許對經(jīng)過修改的TLP摘要(或者對TLP摘要的相應(yīng) 空間或者通信部分)的不同使用模型。 一些實施例利用TLP摘要的 相應(yīng)封包空間來攜帶或傳送或存儲一個DWord或最多一個DWord 的普通內(nèi)容,例如實質(zhì)性信息數(shù)據(jù)、控制信息或數(shù)據(jù)、和/或數(shù)據(jù)凈 荷,這可以不消耗數(shù)據(jù)信用或其他數(shù)據(jù)資源。可以使用經(jīng)過修改的 TLP摘要來攜帶的、適當(dāng)小的數(shù)據(jù)凈荷傳輸?shù)?一些說明性示例包括 狀態(tài)指示、寄存器數(shù)據(jù)、保護密鑰等等。在一些實施例中,在基本 上不消耗數(shù)據(jù)資源的情況下發(fā)送、傳輸和接收具有小數(shù)據(jù)凈荷的 PCIe TLP,例如通過在封包摘要的相應(yīng)空間中發(fā)送數(shù)據(jù)實現(xiàn)并且僅 消耗報頭流控制信用。
盡管此處的部分討-淪可能出于說明性目的而涉及利用PCIe協(xié)議 的通信,但是本發(fā)明的實施例還可以結(jié)合其他合適的通信系統(tǒng)、設(shè) 備、方法和/或協(xié)議來使用;例如,在ECRC是可選或者不關(guān)鍵的通 信系統(tǒng)或協(xié)議中;在利用可靠鏈路的通信系統(tǒng)或協(xié)議中;等等。作 為舉例,PCI Express鏈路支持鏈路層CRC ( LCRC ),以便在數(shù)據(jù) 鏈路層提供針對PCIe封包的錯誤檢測,并且在事務(wù)層,諸如TLP摘 要中的附加ECRC保護是可選的。此外,在用于直接耦合到PCIe主 機的設(shè)備的PCI Express系統(tǒng)中,和/或在中間部件能夠可靠地基本上 保存和/或傳送TLP內(nèi)容的情形中,ECRC可能并不重要。在一些實施例中,事務(wù)發(fā)起者或發(fā)送設(shè)備根據(jù)經(jīng)過修改的PCIe 協(xié)議來構(gòu)建、創(chuàng)建或生成TLP,并且例如使用TLP報頭中的指示位 或者標(biāo)志或參數(shù)來指示應(yīng)用特定的封包摘要的存在。接收端點或者 接收設(shè)備基于TLP報頭指示來解碼該封包摘要。中間PCIe設(shè)備(例 如,PCIe交換機)根據(jù)PCIe協(xié)議和/或經(jīng)過f奮改的PCIe協(xié)議來中繼、 路由和/或傳送包括應(yīng)用特定摘要的TLP。
圖1示意性地說明的本發(fā)明 一 些說明性實施例的、能夠利用PCIe 封包摘要的系統(tǒng)100的框圖。系統(tǒng)100可以是或者可以包括例如計 算設(shè)備、計算機、個人計算機(PC)、服務(wù)器計算機、客戶端/服務(wù) 器系統(tǒng)、移動計算機、便攜式計算機、膝上型計算機、筆記本計算 機、平板計算機、多個互連設(shè)備的網(wǎng)絡(luò),等等。
系統(tǒng)100可以包括例如處理器111、輸入單元112、輸出單元113、 存儲器單元114、存儲單元115、通信單元116,以及圖形卡117。
處理器111可以包括例如中央處理單元(CPU)、數(shù)據(jù)信號處 理器(DPS)、微處理器、主處理器、控制器、多個處理器或控制器、 芯片、微芯片、 一個或多個電路、線路、邏輯單元、集成電路(IC)、 專用集成電路(ASIC),或者任何其他合適的多用途或?qū)S锰幚砥?或控制器。處理器111可以執(zhí)行指令,例如系統(tǒng)100的操作系統(tǒng)(OS) 171的指令,或者一個或多個軟件應(yīng)用172的指令。
輸入單元112可以包括例如鍵盤、小鍵盤、鼠標(biāo)、觸摸板、觸 筆、麥克風(fēng)或者其他合適的指示設(shè)備或輸入設(shè)備。輸出單元113可 以包括例如陰極射線管(CRT )顯示器或顯示單元、液晶顯示器(LCD ) 或者顯示單元、屏幕、顯示器、揚聲器或者其他合適的顯示單元或 輸出設(shè)備。圖形卡117可以包括例如圖形或適配處理器、適配器、 控制器或者加速器。
存儲器單元114可以包括例如隨機訪問存儲器(RAM)、只讀 存儲器(ROM )、動態(tài)RAM ( DRAM )、同步DRAM ( SD-RAM )、 閃存、易失性存儲器、非易失性存儲器、緩存存儲器、緩沖器、短期存儲器單元、長期存儲器單元或者其他合適的存儲器單元或存儲
單元。存儲單元115可以包括例如硬盤驅(qū)動、軟盤驅(qū)動、壓縮盤(CD ) 驅(qū)動、CD-ROM驅(qū)動、數(shù)字多功能盤(DVD)驅(qū)動、或者其他合適 的可移除的或不可移除的存儲單元。存儲器單元114和/或存儲單元 115可以例如存儲供系統(tǒng)100處理的數(shù)據(jù)。
通信單元116可以包括例如有線的或者無線的網(wǎng)絡(luò)接口卡
(NIC)、有線的或者無線的調(diào)制解調(diào)器、有線的或者無線的接收器 和/或發(fā)射器、有線的或者無線的發(fā)射器-接收器和/或收發(fā)器、射頻
(RF)通信單元或收發(fā)器,或者能夠發(fā)射和/或接收信號、塊、幀、 傳輸流、封包、消息和/或數(shù)據(jù)的其他單元。通信單元116可以可選 地包括或者可以可選地關(guān)聯(lián)例如一個或多個天線,諸如雙才及天線、 單極天線、全向天線、以及端部饋電天線、圓極化天線、微帶天線、 異構(gòu)天線,等等。
在一些實施例中,系統(tǒng)100的部件可以被包4舌在例如7>共外殼、 封裝等等中,并且可以使用一個或多個有線的或者無線的鏈路互連 或者可才喿作地關(guān)聯(lián)。在其他實施例中,例如,系統(tǒng)100的部件可以 分布在多個或不同的設(shè)備上,可以使用客戶端/服務(wù)器配置或系統(tǒng)來 實現(xiàn),可以使用遠程接入方法等來通信。
系統(tǒng)100可以進一步包括PCIe主橋120,其能夠在系統(tǒng)100的 多個部件之間進行連接,例如,在多個PCIe端點或者PCIe設(shè)備之 間進行連接。PCIe主橋120可以包括存儲器橋121或者其他存儲器 控制器,其可與存儲器單元114和/或圖形卡117連接。PCIe主橋120 可以進一步包括輸入/輸出(I/O)橋122,其可與輸入單元112、輸 出單元113、存儲單元115、通信單元116以及一個或多個通用串行 總線(USB)設(shè)備118連接。
系統(tǒng)100可以進一步包括PCIe交換機125,其能夠在多個PCIe 端點或者PCIe "i更備之間進行連接。在一些實施例中,PCIe交換機 125可以實現(xiàn)為分離的或者孤立的單元或部件;在其他實施例中, PCIe交換機125可以集成、嵌入在PCIe主橋120或者其他合適的部件中,或者以其他方式使用PCIe主橋120或者其他合適的部件來實現(xiàn)。
示出圖1的拓樸或者架構(gòu)是出于說明性的目的,并且本發(fā)明的實施例可以結(jié)合其他合適的拓樸或結(jié)構(gòu)來實現(xiàn)。例如,在一些實施例中,存儲器橋121可以實現(xiàn)為存儲器控制器,并且被包括或者嵌入在PCIe主橋120中。在一些實施例中,使用"北橋"或"南橋",并且可選地包括PCIe主橋120和/或類似的PCIe主才幾部件。在一些實施例中,存儲器橋121和PCIe主橋120 (以及可選的處理器111 )使用單個或者說公共的集成電路(IC)來實現(xiàn),或者使用多個IC來實現(xiàn)。也可以使用其他合適的拓樸或架構(gòu)。
PCIe主橋120和/或PCIe交換機125可以在多個PCIe端點或者PCIe設(shè)備(例如,端點141-145)之間進行互連。 一些PCIe設(shè)備或者端點(例如,PCIe端點141和142)通過PCIe主橋120直接連接;而其他PCIe端點(PCIe端點143 - 145 )使用PCIe交換機125間接連接。出于說明目的,端點141可以向存儲器橋121發(fā)送數(shù)據(jù);因此,端點141在此稱為"發(fā)送端點,,或者"發(fā)送設(shè)備",而存儲器橋121在此稱為"接收端點"或者"接收設(shè)備"。
其他部件可以作為發(fā)送設(shè)備和/或作為接收設(shè)備來進行操作。例如,處理器111可以是發(fā)送設(shè)備而存儲器單元114可以是接收設(shè)備;USB設(shè)備118可以是發(fā)送設(shè)備而存儲設(shè)備115可以是接收設(shè)備;存儲器橋121可以作為接收設(shè)備來操作(例如,相對于第一端點或部件而言),和/或可以作為發(fā)送設(shè)備來操作(例如,相對于第二端點或部件);等等。在一些實施例中,接收設(shè)備可以向發(fā)送設(shè)備發(fā)送返回數(shù)據(jù)或者控制數(shù)據(jù),反之亦然;例如,發(fā)送設(shè)備和接收設(shè)備之間的通信可以是單向的或雙向的。
可選地,發(fā)送設(shè)備可以利用設(shè)備驅(qū)動器來進行操作,并且接收設(shè)備可以利用設(shè)備驅(qū)動器來進行操作。在一些實施例中,設(shè)備驅(qū)動器,以及PCIe主橋120和PCIe交換機125,可以支持根據(jù)本發(fā)明一些實施例的經(jīng)過修改的PCIe協(xié)議175。發(fā)送設(shè)備連接到(或者包括)
13PCIe端口 151 ("上游端口",或者"面向下游的端口")。接收設(shè)備連接到(或者包括)PCIe端口 152 ("下游端口",或者"面向上游的端口")。
在一些實施例中,封包191可以傳輸通過發(fā)送設(shè)備和接收設(shè)備之間的中間PCIe設(shè)備或者由中間PCIe設(shè)備來進行中繼。例如,在端點145是發(fā)送設(shè)備且存儲器橋121是接收設(shè)備的情況中,PCIe交換機125是發(fā)送端點145和接收存儲器橋121之間的中間設(shè)備。
在一些實施例中,發(fā)送設(shè)備使用經(jīng)過修改的PCIe協(xié)議175 (即,利用通用的或應(yīng)用特定的封包摘要來傳送數(shù)據(jù)凈荷,而不消耗數(shù)據(jù)流控制信用或額外的數(shù)據(jù)流控制信用)向接收設(shè)備傳送數(shù)據(jù)。例如,非ECRC數(shù)據(jù)可以根據(jù)經(jīng)過修改的PCIe協(xié)議被包括在TLP摘要中,并且僅使用報頭流控制信用來發(fā)送。發(fā)送設(shè)備構(gòu)建經(jīng)過修改的TLP191,其在封包報頭中具有一個或多個指示,用以指示摘要被附加到封包、指示摘要不包括ECRC數(shù)據(jù)和/或指示應(yīng)該忽略CRC校驗。
在一些實施例中,可以使用對應(yīng)于TLP摘要的空間來存儲或攜帶各種類型的信息,諸如狀態(tài)向量(例如,攜帶有對非寄送請求的響應(yīng))、保護密鑰、端到端流控制或者任何其他應(yīng)用特定的單DW凈荷。在不破壞數(shù)據(jù)完整性的情況下,實施例可以允許對摘要資源的更多優(yōu)化利用,例如,在封包摘要中而不是常規(guī)數(shù)據(jù)凈荷中發(fā)送不需要擴展ECRC保護的數(shù)據(jù)。
一些實施例允許將摘要空間(例如,每個TLP四個字節(jié))用于應(yīng)用特定的數(shù)據(jù)或者任務(wù),而不要求應(yīng)用為這種數(shù)據(jù)任務(wù)而使用數(shù)據(jù)凈荷。由此, 一些實施例降低了應(yīng)用特定的數(shù)據(jù)凈荷使用,而數(shù)據(jù)凈荷使用需要分配額外的數(shù)據(jù)緩沖區(qū)和/或相關(guān)聯(lián)的信用,以及最高將近理論鏈路帶寬20%的封包開銷(例如,對于短封包業(yè)務(wù))。本發(fā)明的實施例可以提供其他益處和優(yōu)勢。
在一些實施例中,經(jīng)過纟l"改的PCIe協(xié)議175將基于流控制的鏈路管理用于附接至鏈路的設(shè)備之間的有效數(shù)據(jù)傳送。例如,基本上每個PCIe設(shè)備向其他PCIe設(shè)備通告其接收緩沖區(qū)的容量,這例如是通過使用術(shù)語"信用"或者其他接收器緩沖單元。每個傳輸?shù)姆?br>
包消耗一定數(shù)目的信用。有時,接收PCIe設(shè)備就變得可用于新封包(例如,由于從接收緩存中移除了舊數(shù)據(jù))的額外緩沖區(qū)空間容量(例如,釋放的信用)向發(fā)送PCIe設(shè)備進行更新。發(fā)送PCIe設(shè)備累積由遠程接收器通告的可用信用,并且將其與發(fā)送設(shè)備至今為止因發(fā)送封包而消耗的信用進行比較。僅當(dāng)接收側(cè)存在足夠的可用信用時,發(fā)送設(shè)備才允許發(fā)送新的封包。信用的缺乏會導(dǎo)致傳輸停滯,這將導(dǎo)致性能惡化。根據(jù)某些實施例,經(jīng)過修改的PCIe協(xié)議175允許發(fā)送PCIe i殳備在對應(yīng)于TLP摘要的空間或者其一部分(例如,ECRC部分)中存儲應(yīng)用特定的數(shù)據(jù),由此允許在TLP中發(fā)送增大數(shù)量的實質(zhì)性數(shù)據(jù),并且更有效地利用可用的信用。
經(jīng)過修改的PCIe協(xié)議175將獨立信用的規(guī)范用于PCIe TLP報頭(例如,在報頭單元中)和PCIe TLP數(shù)據(jù)(例如,在16字節(jié)單元中)。PCIeTLP可以僅包括報頭,并且因此僅消耗一個報頭信用;或者,具有數(shù)據(jù)凈荷的PCIeTLP可以消耗一個報頭信用和等于數(shù)據(jù)凈荷大小的數(shù)據(jù)信用數(shù)目。PCIeTLP摘要(例如,用于ECRC的一個DW)由所述報頭信用計數(shù),并且不需要消耗數(shù)據(jù)信用。由此,在一些實施例中,利用TLP摘要來攜帶和傳送應(yīng)用特定的數(shù)據(jù)節(jié)省了數(shù)據(jù)信用。因此, 一些實施例使用在報頭信用和數(shù)據(jù)信用之間進行劃分或區(qū)分的PCIe機制,以便節(jié)省數(shù)據(jù)緩存消耗和/或信用消耗,例如,這是通過在報頭信用所覆蓋的PCIeTLP的部分中(例如,在摘要中或者在其一部分中)存儲和攜帶應(yīng)用特定的數(shù)據(jù)(例如,非ECRC數(shù)據(jù))。
圖2示意性地說明了根據(jù)本發(fā)明一些說明性實施例的、包括經(jīng)過修改的TLP摘要的PCIe封包210的結(jié)構(gòu)。盡管此處的部分討論出于說明性目的而涉及利用64位尋址的PCIe TLP結(jié)構(gòu),但是本發(fā)明的實施例不限于此,并且可以結(jié)合其他PCIeTLP結(jié)構(gòu)一起使用,例如利用32位尋址的或者其他合適的結(jié)構(gòu)大小的結(jié)構(gòu)。
封包210是四個雙字結(jié)構(gòu),并且包括報頭部分220、數(shù)據(jù)部分230和摘要部分240。第一行211指示字節(jié)偏移(例如,+0、 +1、 +2和+3 );并且第二行212指示位計數(shù)(例如,從0到7編號的8個位)。如行213和214所示,才艮頭220包括占用8個字節(jié)的控制信息字段(包括,例如格式字段、類型字段、長度字段、ID字段、標(biāo)簽字段等等)。行215和216包括64位地址,例如,具有兩個預(yù)留較低位請求地址。行213-216對應(yīng)于封包210的才艮頭部分220。
在適用的情況下,TLP210的數(shù)據(jù)部分230用于攜帶凈荷數(shù)據(jù)。一些TLP可以包括數(shù)據(jù)凈荷部分230,而其他TLP可以不包括數(shù)據(jù)凈荷部分230。根據(jù)基于信用的流控制協(xié)議,利用TLP的數(shù)據(jù)部分230來傳送數(shù)據(jù)需要數(shù)據(jù)流控制信用,并且可能對于非常小的數(shù)據(jù)凈荷而言不夠有效。
摘要部分240包括可以附加至TLP的可選TLP摘要。在一些實施例中,封包210包括存儲和/或攜帶在對應(yīng)于TLP摘要的空間中的附加實質(zhì)性數(shù)據(jù)或者非ECRC數(shù)據(jù)。摘要240中的其他空間不存儲ECRC信息,而是存儲其他的或者備選的信息,例如應(yīng)用特定的數(shù)據(jù)或者非ECRC數(shù)據(jù)。
在一些實施例中,經(jīng)過》務(wù)改的TLP 210的才艮頭包括一個或多個指示位或標(biāo)記或字段,用以指示具有應(yīng)用特定的數(shù)據(jù)或者非ECRC數(shù)據(jù)的TLP摘要的存在。例如,TLP摘要(TD)指示位219可以指示摘要存在。報頭220的一個或多個已分派位或標(biāo)記或字段(例如,預(yù)留位297和/或預(yù)留字段298 )可以用于指示摘要包括應(yīng)用特定的數(shù)據(jù)或非ECRC數(shù)據(jù)、指示摘要不包括ECRC信息、指示需要忽略ECRC校-驗和/或指示應(yīng)該從對應(yīng)于TLP摘要的空間或者從該空間的預(yù)定義部分讀取或收集(例如,由接收設(shè)備進行)實質(zhì)性數(shù)據(jù)或非ECRC數(shù)據(jù)。
圖3是根據(jù)本發(fā)明的一些說明性實施例的利用修改的PCIExpress封包摘要的方法300的示意流程圖。該方法的操作可以例如由圖1的系統(tǒng)和/或由其他合適的單元、設(shè)備和/或系統(tǒng)來使用。
在一些實施例中,該方法包括構(gòu)建和生成具有應(yīng)用特定的摘要的PCIe TLP (框310)。例如,該應(yīng)用特定的摘要可以包括將要在 對應(yīng)于封包的摘要部分的空間中攜帶的非ECRC數(shù)據(jù)或通用數(shù)據(jù)或 應(yīng)用特定的數(shù)據(jù)。例如,非ECRC數(shù)據(jù)可以放置或者存儲在對應(yīng)于 ECRC數(shù)據(jù)的(或者預(yù)先分配的)摘要空間中。
如框312所示,該方法包括在TLP報頭中指示應(yīng)用特定的摘要。 例如,使用TD指示位或字段和/或預(yù)留的或者應(yīng)用特定的指示位或 字段,在封包報頭中指示在摘要中存在應(yīng)用特定的數(shù)據(jù)。在一些實 施例中,TD指示位中的值"1"可以指示摘要的存在,并且應(yīng)用特 定的指示位或標(biāo)記或字段可以指示摘要類型或者摘要長度;在其他 實施例中,TD指示位中的值"0"可以指示非ECRC摘要??梢允?用其他合適的值或者指示。
如框314所示,該方法包括使用報頭流控制信用來發(fā)送包括在 應(yīng)用特定的摘要中的數(shù)據(jù)。當(dāng)應(yīng)用特定的數(shù)據(jù)被包括在對應(yīng)于TLP 摘要的空間中時,這樣的數(shù)據(jù)被報頭信用覆蓋,并且不消耗數(shù)據(jù)信 用。相反,如果應(yīng)用特定的數(shù)據(jù)按照常規(guī)作為數(shù)據(jù)凈荷來發(fā)送,則 將會消耗一個或多個數(shù)據(jù)信用(例如,除了無論是否存在摘要都將 由TLP報頭消耗的報頭信用之外)。
如框316所示,TLP摘要的處理可以是不同的,這例如取決于 PCIe設(shè)備是接收設(shè)備(框318)還是中間設(shè)備(框320)。
如框318所示,接收設(shè)備從經(jīng)過修改的TLP摘要中讀取和提取 應(yīng)用特定的數(shù)據(jù)。接收設(shè)備可以接收和解碼經(jīng)過修改的TLP的報頭 中的指示,其指示該TLP在消息摘要中包括數(shù)據(jù)凈荷,和/或TLP 在消息摘要中不包括ECRC,例如,如通過TD指示位和/或通過其 他已分派的指示位或字段所指示。在對未修改的TLP執(zhí)行ECRC校 驗的情況下(例如,如TD位所指示),接收設(shè)備忽略經(jīng)過對修改的 TLP的ECRC校驗(例如,通過跳過或者避免或者禁用ECRC機制, 或者通過忽略ECRC處理的結(jié)果),并且從經(jīng)過修改的TLP摘要中 提取或解碼應(yīng)用特定的數(shù)據(jù)。
如框320所示,中間設(shè)備(例如,PCIe交換機或其他PCIe設(shè)備,其不是目的接收設(shè)備)中繼或者傳送TLP,基本上不必訪問或者改 變消息摘要。如果中間設(shè)備支持ECRC校驗,則可以指示中間設(shè)備 不執(zhí)行ECRC校驗(或者忽略ECRC校驗結(jié)果),這例如是通過經(jīng) 過修改的TLP摘要中的已分派位或標(biāo)記或字段或者通過禁用ECRC 的系統(tǒng)配置來實現(xiàn)。
根據(jù)本發(fā)明的實施例,可以使用其他合適的操作或操作集。 本發(fā)明的一些實施例可以采用以下形式完全硬件實施例,完 全軟件實施例、或者包括硬件和軟件單元二者的實施例。 一些實施 例可以在軟件中實現(xiàn),其包括但不限于固件、駐留軟件、微代碼等 等。
此外,本發(fā)明的 一 些實施例采用可從計算機可用或計算才幾可讀 介質(zhì)訪問的計算機產(chǎn)品的形式,該計算機產(chǎn)品提供由計算機或者任 何指令執(zhí)行系統(tǒng)使用或結(jié)合其使用的代碼。例如,計算機可讀介質(zhì) 可以是任何能夠包含、存儲、通信、傳播、或者傳送供指令執(zhí)行系 統(tǒng)、裝置或設(shè)備使用或者結(jié)合其使用的程序的任何裝置。
在一些實施例中,該介質(zhì)可以是電的、,茲的、光的、電》茲的、 紅外的、或者半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或這傳播介質(zhì)。計算機 可讀介質(zhì)的一些說明性例子包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆 卸計算機盤、隨機訪問存儲器(RAM)、只讀存儲器(ROM)、硬 磁盤、以及光盤。光盤的一些說明性例子包括壓縮盤-只讀存儲器 (CD-ROM )、壓縮盤-讀/寫(CD-R/W ),以及DVD。
在 一 些實施例中,適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系 統(tǒng)包括至少一個處理器,其直接或間接耦合到存儲器單元,例如通 過系統(tǒng)總線來耦合。存儲器單元可以包括例如在實際執(zhí)行程序代碼 期間使用的本地存儲器、大容量存儲設(shè)備、以及高速緩存存儲器, 高速緩存存儲器可以提供對至少 一些程序代碼的臨時存儲,以減少 在執(zhí)行期間必須從大容量存儲器獲取代碼的次數(shù)。
在一些實施例中,輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、
顯示器、指示設(shè)備、等等)可以直接或者通過中介i/o控制器耦合到
18系統(tǒng)。在一些實施例中,網(wǎng)絡(luò)適配器可以耦合到系統(tǒng),以支持?jǐn)?shù)據(jù) 處理系統(tǒng)能夠耦合到其他數(shù)據(jù)處理系統(tǒng)或者遠程打印機或這存儲設(shè) 備,例如通過中介專用網(wǎng)絡(luò)或公共網(wǎng)絡(luò)來耦合。調(diào)制解調(diào)器、線纜 調(diào)制解調(diào)器和以太網(wǎng)卡是本發(fā)明的 一 些實施例中的網(wǎng)絡(luò)適配器的類 型的"i兌明性例子。可以^使用其他合適的部件。
盡管此處已經(jīng)說明和描述了本發(fā)明的特定特征,但是本領(lǐng)域技 術(shù)人員可以想到許多修改、替換、改變和等價。
權(quán)利要求
1.一種用于修改外圍部件互連(PCI)express封包摘要的裝置,所述裝置包括基于信用的流控制互連設(shè)備,用以生成基于信用的流控制互連事務(wù)層封包,其中摘要部分中的一個或多個位攜帶非端到端的循環(huán)冗余校驗(ECRC)數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的裝置,其中所述非ECRC數(shù)據(jù)包括應(yīng) 用特定的數(shù)據(jù)。
3. 根據(jù)權(quán)利要求1所述的裝置,其中所述事務(wù)層封包的報頭包 括所述摘要部分?jǐn)y帶非ECRC數(shù)據(jù)的指示。
4. 根據(jù)權(quán)利要求1所述的裝置,其中所述事務(wù)層封包的報頭包 括所述摘要部分?jǐn)y帶應(yīng)用特定的數(shù)據(jù)的指示。
5. 根據(jù)權(quán)利要求1所述的裝置,其中所述事務(wù)層封包的報頭包 括接收設(shè)備將對所述摘要部分中攜帶的所述非ECRC數(shù)據(jù)進行解碼 的指示。
6. 根據(jù)權(quán)利要求1所述的裝置,其中所述事務(wù)層封包的報頭包 括中間設(shè)備將忽略對所述事務(wù)層封包的ECRC校驗的結(jié)果的指示。
7. 根據(jù)權(quán)利要求1所述的裝置,其中所述基于信用的流控制互 連設(shè)備包括PCI Express設(shè)備,并且所述基于信用的流控制互連事務(wù) 層封包包括PCI Express事務(wù)層封包。
8. —種用于修改外圍部件互連(PCI) express封包摘要的方法, 所述方法包4舌生成基于信用的流控制互連事務(wù)層封包,其中摘要部分中的一個 或多個位攜帶非ECRC數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的方法,其中生成包括 將所述非ECRC數(shù)據(jù)放置在對應(yīng)于ECRC數(shù)據(jù)的摘要空間中。
10. 根據(jù)權(quán)利要求8所述的方法,其中生成包括 在所述事務(wù)層封包的報頭中放置所述摘要部分?jǐn)y帶非ECRC數(shù)據(jù)的指示。
11. 根據(jù)權(quán)利要求8所述的方法,其中生成包括 在所述事務(wù)層封包的報頭中放置所述摘要部分?jǐn)y帶應(yīng)用特定的數(shù)據(jù)的指示。
12. 根據(jù)權(quán)利要求8所述的方法,其中生成包括 在所述事務(wù)層封包的報頭中放置接收設(shè)備將對所述摘要部分中攜帶的非ECRC數(shù)據(jù)進行解碼的指示。
13. 根據(jù)權(quán)利要求8所述的方法,其中生成包括在所述事務(wù)層封包的報頭中放置中間設(shè)備將忽略所述事務(wù)層封 包中的ECRC校驗結(jié)果并且將傳送所述事務(wù)層封包的指示。
14. 根據(jù)權(quán)利要求8所述的方法,其中生成所述基于信用的流控 制互連事務(wù)層封包包括生成PCI Express事務(wù)層封包。
15. 根據(jù)權(quán)利要求8所述的方法,包括 使用報頭信用來發(fā)送應(yīng)用特定的數(shù)據(jù)。
16. —種用于修改外圍部件互連(PCI) express封包摘要的系統(tǒng), 所述系統(tǒng)包括基于信用的流控制互連設(shè)備,用以生成基于信用的流控制互連事 務(wù)層封包,其中摘要部分中的一個或多個位攜帶非ECRC數(shù)據(jù);以 及基于信用的流控制互連鏈路,用以傳送所述事務(wù)層封包。
17. 根據(jù)權(quán)利要求16所述的系統(tǒng),其中基于所述事務(wù)層封包的 報頭中的指示,所述基于信用的流控制互連鏈路將忽略對所述事務(wù) 層封包的ECRC校驗的結(jié)果。
18. 根據(jù)權(quán)利要求16所述的系統(tǒng),還包括附加的基于信用的流控制互連設(shè)備,用以接收所述事務(wù)層封包, 以及從所述摘要部分中抽取所述非ECRC數(shù)據(jù)。
19. 根據(jù)權(quán)利要求18所述的系統(tǒng),其中基于所述事務(wù)層封包的 報頭中的指示,所述附加的基于信用的流控制互連鏈路將避免執(zhí)行 對所述事務(wù)層封包的ECRC校驗。
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述基于信用的流控制 互連設(shè)備包括PCI Express設(shè)備,其中所述基于信用的流控制互連事 務(wù)層封包包括PCI Express事務(wù)層封包,以及所述基于信用的流控制 互連鏈路包括PCI Express鏈路。
全文摘要
修改PCI Express封包摘要的設(shè)備、系統(tǒng)和方法。例如,一種裝置,包括基于信用的流控制互連設(shè)備,用以生成基于信用的流控制互連事務(wù)層封包,其中摘要部分中的一個或多個位攜帶非ECRC數(shù)據(jù)。
文檔編號G06F13/42GK101681325SQ200880016038
公開日2010年3月24日 申請日期2008年6月5日 優(yōu)先權(quán)日2007年6月29日
發(fā)明者E·珀林, G·比朗, I·格拉諾維斯基 申請人:國際商業(yè)機器公司