器175、芯片 集(經(jīng)常包括用于連接到存儲器175的存儲器控制器集線器和用于連接外圍設(shè)備的I/O控 制器集線器)、存儲器控制器集線器、北橋或者其它集成電路。并且在這一情景中,總線105 可以包括任意已知的互連,例如,多點總線、點對點互連、串行互連、并行總線、一致性(例 如,高速緩存一致性)總線、分層協(xié)議架構(gòu)、差分總線和GTL總線。
[0028] 存儲器175可以專用于處理器100或者與系統(tǒng)中的其它設(shè)備共享。存儲器175的 類型的通常示例包括DRAM、SRAM、非易失性存儲器(NV存儲器)以及其它已知的存儲設(shè)備。 注意到,設(shè)備180可以包括圖形加速器、處理器或者耦合到存儲器控制器集線器的卡、耦合 到I/O控制器集線器的數(shù)據(jù)存儲裝置、無線收發(fā)機、閃存設(shè)備、音頻控制器、網(wǎng)絡(luò)控制器或 者其它已知設(shè)備。
[0029] 然而,最近,隨著更多的邏輯和設(shè)備被集成在諸如SOC的單個裸片上,這些設(shè)備中 的每一個可以被合并在處理器100上。例如,在一個實施例中,存儲器控制器集線器與處理 器100位于相同的封裝和/或裸片上。這里,核心的一部分(核心上部分)110包括用于與 諸如存儲器175或者圖形設(shè)備180的其它設(shè)備接口的一個或多個控制器。包括用于與這樣 的設(shè)備接口的互連和控制器的配置經(jīng)常被稱為核心上(或者非核心配置)。作為示例,片上 接口 110包括用于片上通信的環(huán)形互連以及用于離片通信的高速串行點對點鏈路105。然 而,在SOC環(huán)境中,諸如網(wǎng)絡(luò)接口、協(xié)處理器、存儲器175、圖像處理器180以及任何其它已知 的計算機設(shè)備/接口的甚至更多的設(shè)備可以被集成在單個裸片或者集成電路上,以便提供 具有高功能性和低功率消耗的小形狀因子。
[0030] 在一個實施例中,處理器100能夠執(zhí)行編譯器、優(yōu)化和/或轉(zhuǎn)換器代碼177以對 應(yīng)用代碼176進行編譯、轉(zhuǎn)換和/或優(yōu)化,以便支持本文描述的裝置和方法或者與其接口。 編譯器經(jīng)常包括程序或者程序的集合以便將源文本/代碼轉(zhuǎn)換為目標文本/代碼。通常, 使用編譯器的程序/應(yīng)用代碼的編譯在多個級中完成并且經(jīng)過將高級編程語言代碼變換 為低級機器或者匯編語言代碼。然而,可以仍然例程單程編譯器用于簡單的編譯。編譯器 可以利用任意已知的編譯技術(shù)并且執(zhí)行任意已知的編譯器操作,例如詞法分析、預(yù)處理、解 析、語義分析、代碼生成、代碼變換和代碼優(yōu)化。
[0031] 較大的編譯器經(jīng)常包括多個級,但是最經(jīng)常的是,這些級被包括在兩個通用級內(nèi): (1)前端,即,通常在語義處理的情況下,可以發(fā)生語義處理以及一些變換/優(yōu)化,以及(2) 后端,即,通常在分析的情況下,發(fā)生變換、優(yōu)化和代碼生成。一些編譯器指代中間,說明了 位于編譯器的前端和后端之間的界限模糊。結(jié)果,對編譯器的插入、關(guān)聯(lián)、生成或者其它操 作的引用可以在前述級或者程中的任意一個中以及在編譯器的任意其它已知級或者程中 發(fā)生。作為說明性示例,編譯器潛在地在編譯的一個或多個級中插入操作、調(diào)用、函數(shù)等等, 例如,在編譯的前端級中插入調(diào)用/操作,并且接著在變換級期間將調(diào)用/操作變換到較低 級代碼。注意到,在動態(tài)編譯期間,編譯器代碼或者動態(tài)優(yōu)化代碼可以插入這樣的操作/調(diào) 用,并且優(yōu)化該代碼用于在運行時間期間執(zhí)行。作為具體的說明性示例,二進制代碼(已經(jīng) 編譯的代碼)可以在運行時間期間被動態(tài)優(yōu)化。這里,程序代碼可以包括動態(tài)優(yōu)化代碼、二 進制代碼或者其組合。
[0032]與編譯器類似、諸如二進制轉(zhuǎn)換器的轉(zhuǎn)換器靜態(tài)或者動態(tài)地轉(zhuǎn)換代碼以優(yōu)化和/ 或轉(zhuǎn)換代碼。因此,對代碼、應(yīng)用代碼、程序代碼或者其它軟件環(huán)境的執(zhí)行的引用可以指代: (1)編譯器程序、優(yōu)化代碼優(yōu)化器、轉(zhuǎn)換器動態(tài)或者靜態(tài)的執(zhí)行,以便編譯程序代碼、維持軟 件結(jié)構(gòu)、執(zhí)行其它操作、優(yōu)化代碼、或者轉(zhuǎn)換代碼;(2)包括操作/調(diào)用的主程序代碼的執(zhí) 行,例如已經(jīng)被優(yōu)化/編譯的應(yīng)用代碼;(3)其它程序代碼的執(zhí)行,例如與主程序代碼相關(guān) 聯(lián)的庫,以便維持軟件結(jié)構(gòu)、執(zhí)行其它軟件相關(guān)操作或者優(yōu)化代碼;或者(4)其組合。
[0033] 一種互連結(jié)構(gòu)架構(gòu)包括PCIe架構(gòu)。PCIe的主要目標是使來自不同供應(yīng)商的組件 和設(shè)備能夠在開放架構(gòu)中相互操作,橫跨多個市場分割、客戶端(桌面和移動)、服務(wù)器(標 準和企業(yè))以及嵌入式和通信設(shè)備。PCIExpress是被定義用于各種未來計算和通信平臺 的高性能通用I/O互連。一些PCI屬性,例如其使用模型、裝載-存儲架構(gòu)和軟件接口,已經(jīng) 經(jīng)過其版本被維護,而先前的并行總線實現(xiàn)已經(jīng)由高度可調(diào)整的充分串聯(lián)的接口更換。PCI Express的更近版本利用點對點互連、基于交換機的技術(shù)和分組化協(xié)議的發(fā)展,以便傳送新 級別的性能和特征。功率管理、服務(wù)質(zhì)量(QoS)、熱插拔/熱交換支持、數(shù)據(jù)完整性和誤差處 理是由PCIExpress支持的先進特征中的一些。
[0034] 參照圖2,說明了由互連組件的集合的點對點鏈路組成的結(jié)構(gòu)的實施例。系統(tǒng)200 包括耦合到控制器集線器215的處理器205和存儲器210。處理器205包括任意處理元件, 例如微處理器、主機處理器、嵌入式處理器、協(xié)處理器或者其它處理器。處理器205經(jīng)過前 側(cè)總線(FSB) 206耦合到控制器集線器215。在一個實施例中,F(xiàn)SB206是下面描述的串行 點對點互連。在另一實施例中,鏈路206包括與不同的互連標準兼容的串行差分互連架構(gòu)。
[0035] 系統(tǒng)存儲器210包括任意存儲器設(shè)備,例如隨機存取存儲器(RAM)、非易失性(NV) 存儲器或者由系統(tǒng)200中的設(shè)備可存取的其它存儲器。系統(tǒng)存儲器210經(jīng)過存儲器接口 216耦合到控制器集線器215。存儲器接口的示例包括雙數(shù)據(jù)率(DDR)存儲器接口、雙通道 DDR存儲器接口以及動態(tài)RAM(DRAM)存儲器接口。
[0036] 在一個實施例中,控制器集線器215是位于外圍組件互連Express(PCIe或者 PCIE)互連分級中的根集線器、根復(fù)合器或者根控制器??刂破骷€器215的示例包括芯片 集、存儲器控制器集線器(MCH)、北橋、互連控制器集線器(ICH)、南橋和根控制器/集線器。 經(jīng)常術(shù)語芯片集指代兩個物理上分離的控制器集線器,即,耦合到互連控制器集線器(ICH) 的存儲器控制器集線器(MCH)。注意到,當(dāng)前系統(tǒng)經(jīng)常包括與處理器205集成的MCH,而控 制器215按照下面描述的類似方式與I/O設(shè)備進行通信。在一些實施例中,經(jīng)過根復(fù)合器 215可選地支持對等路由。
[0037] 這里,控制器集線器215經(jīng)過串行鏈路219耦合到交換機/橋220。也可以被稱為 接口 /端口 217和221的輸入/輸出模塊217和221包括/實現(xiàn)分層協(xié)議棧,以便在控制 器集線器215和交換機220之間提供通信。在一個實施例中,多個設(shè)備能夠耦合到交換機 220〇
[0038] 交換機/橋220將分組/消息從朝向上游的設(shè)備225,即,朝向根復(fù)合器的分級向 上,路由到朝向下游的控制器集線器215,即遠離根控制器的分級向下,從處理器205或者 系統(tǒng)存儲器210路由到設(shè)備225。在一個實施例中,交換機220被稱為多個虛擬PCI到PCI 橋設(shè)備的邏輯部件。設(shè)備225包括要耦合到電子系統(tǒng)的任意內(nèi)部或者外部設(shè)備或組件,例 如I/O設(shè)備、網(wǎng)絡(luò)接口控制器(NIC)、附加卡、音頻處理器、網(wǎng)絡(luò)處理器、硬驅(qū)、存儲設(shè)備、⑶/ DVDROM、監(jiān)視器、打印機、鼠標、鍵盤、路由器、便攜式存儲設(shè)備、火線設(shè)備、通用串行總線 (USB)設(shè)備、掃描儀和其它輸入/輸出設(shè)備。經(jīng)常在PCIe術(shù)語中,例如設(shè)備被稱為端點。盡 管沒有明確示出,但是設(shè)備225可以包括PCIe到PCI/PCI-X橋以便支持傳統(tǒng)或者其它版本 PCI設(shè)備。PCIe中的端點設(shè)備經(jīng)常被分類為傳統(tǒng)、PCIe或者根復(fù)合器集成端點。
[0039] 圖形加速器230也經(jīng)過串行鏈路232耦合到控制器集線器215。在一個實施例中, 圖形加速器230耦合到MCH,MCH耦合到ICH。交換機220,并且因此I/O設(shè)備225,接著耦 合到ICH。I/O模塊231和218也用于實現(xiàn)分層協(xié)議棧,以便在圖形加速器230和控制器集 線器215之間進行通信。與上面討論的MCH類似,圖形控制器或者圖形加速器230本身可 以被集成在處理器205中。
[0040]轉(zhuǎn)到圖3,說明了分層協(xié)議棧的實施例。分層協(xié)議棧300包括任意形式的分層通信 站,例如快速路徑互連(QPI)棧、PCIe棧、下一代高性能計算互連棧或者其它分層棧。盡管 下面緊接著參照圖2-5的討論涉及PCIe棧,但是相同的概念可以應(yīng)用于其它互連棧。在一 個實施例中,協(xié)議棧300是包括事務(wù)層305、鏈路層310和物理層320的PCIe協(xié)議棧。接口 可以被表示為通信協(xié)議棧300。通信協(xié)議棧的表示也可以被稱為實現(xiàn)/包括協(xié)議棧的模塊 或者接口。
[0041]PCIExpress使用分組來在組件之間傳送信息。分組被形成在事務(wù)層305和數(shù)據(jù) 鏈路層310中以便將信息從發(fā)射組件承載到接收組件。隨著所發(fā)射的分組流經(jīng)其它層,使 用在那些層處處理分組必需的附加信息進行擴展。在接收側(cè)處,發(fā)生反向過程并且分組被 從它們的物理層320表示變換到數(shù)據(jù)鏈路層310表示并且最終(對于事務(wù)層分組)被變換 到能夠由接收設(shè)備的事務(wù)層305處理的形式。
[0042] 在一個實施例中,事務(wù)層305用于在諸如數(shù)據(jù)鏈路層310和物理層320的設(shè)備的 處理核心和互連架構(gòu)之間提供接口。為此,事務(wù)層305的主要任務(wù)是裝配和拆裝分組(即, 事務(wù)層分組或者TLP)。事務(wù)層305典型地管理針對TLP的基于信用的流控制。PCIe實現(xiàn) 分割事務(wù),即具有由時間分離的請求和響應(yīng)的事務(wù),允許鏈路承載其它業(yè)務(wù),同時目標設(shè)備 聚集數(shù)據(jù)用于響應(yīng)。
[0043] 此外,PCIe利用基于信用的流控制。在這一方案中,針對事務(wù)層305中的接收緩 沖器中的每一個,設(shè)備對信用的初始量進行廣告。在鏈路的相對端處的外部設(shè)備,例如控制 器集線器,對由每一個TLP消耗的信用的數(shù)量進行計數(shù)。如果事務(wù)不超出信用極限,則可以 傳輸該事務(wù)。在接收到響應(yīng)時,恢復(fù)信用的量。信用方案的優(yōu)點在于,信用返回的時延不影 響性能,假設(shè)沒有遇到信用極限。
[0044] 在一個實施例中,四個事務(wù)地址空間包括配置地址空間、存儲器地址空間、輸入/ 輸出地址空間和消息地址空間。存儲器空間事務(wù)包括讀取請求和寫入請求中的一個或多個 以便在存儲器映射的位置處來回地傳輸數(shù)據(jù)。在一個實施例中,存儲器空間事務(wù)能夠使用 兩個不同的地址格式,例如以32比特地址為例的短地址格式,或者以64比特地址為例的長 地址格式。配置空間事務(wù)用于訪問PCIe設(shè)備的配置空間。到配置空間的事務(wù)包括讀取請 求和寫入請求。消息空間事務(wù)(或者,簡單地為消息)被定義為支持PCIe代理之間的帶內(nèi) 通信。
[0045] 因此,在一個實施例中,事務(wù)層305裝配分組頭部/有效載荷306。當(dāng)前分組頭部 /有效載荷的格式可以在PCIe規(guī)范網(wǎng)站處的PCIe規(guī)范中找到。
[0046] 快速參照圖4,說明了PCIe事務(wù)描述符的實施例。在一個實施例中,事務(wù)描述符 400是用于承載事務(wù)信息的機制。為此,事務(wù)描述符400支持系統(tǒng)中的事務(wù)的識別。其它潛 在的用途包括跟蹤缺省事務(wù)排序的修改以及事務(wù)與通道的關(guān)聯(lián)。
[0047] 事務(wù)描述符400包括全局標識符字段402、屬性字段404和通道標識符字段406。 在所說明的示例中,全局標識符字段402被闡釋為包括本地事務(wù)標識符字段408和源標識 符字段410。在一個實施例中,全局事務(wù)標識符402對于所有突出的請求是唯一的。
[0048] 根據(jù)一種實現(xiàn),本地事務(wù)標識符字段408是由請求代理生成的字段,并且其對于 針對該請求代理要求完成的所有突出的請求是唯一的。而且,在這一示例中,源標識符410 唯一地標識PCIe分級內(nèi)的請求器代理。因此,與源ID410-起,本地事務(wù)標識符字段408 提供分級域內(nèi)的事務(wù)的全局標識。
[0049] 屬性字段404