專利名稱:靈活地將終端邏輯集成到各種平臺(tái)的制作方法
靈活地將終端邏輯集成到各種平臺(tái)
背景技術(shù):
不論是高性能的還是低功率的主流處理器芯片正越來越多地集成額外的功能,例如,圖形、顯示引擎、安全引擎、PCIe 端口(即,根據(jù)高速外圍部件互連(PCI Express (PCIe ))規(guī)范基本規(guī)范版本2. 0 (2007年1月17號(hào)公布)(下文稱為PCIe 規(guī) 范)的端口 )和其它基于PCI-e 的外圍設(shè)備。由于來自服務(wù)器、臺(tái)式機(jī)、移動(dòng)式、嵌入式、超移動(dòng)式和移動(dòng)互聯(lián)網(wǎng)設(shè)備部門的不 同需求,傳統(tǒng)的外圍設(shè)備集線器產(chǎn)品設(shè)計(jì)被高度地分割。不同的市場尋求使用單個(gè)芯片 片上系統(tǒng)(SoC)解決方案,其將處理器核心、存儲(chǔ)器控制器中心(MCH)、輸入/輸出控制器 (ICH)和其它分割特定加速元件中的至少一些組合到單個(gè)芯片上。但是,由于對(duì)標(biāo)準(zhǔn)內(nèi)部互 連來說,將不同的知識(shí)產(chǎn)權(quán)(IP)塊集成到單個(gè)管芯上是困難的,因此集聚這些特征的設(shè)計(jì) 出現(xiàn)緩慢。
圖1是根據(jù)本發(fā)明的實(shí)施例的集成終端和虛擬端口的框圖。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的集成終端和虛擬端口的框圖。圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的片上系統(tǒng)(SoC)的框圖。圖4是根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)的框圖。圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖。圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于處理來自耦合的代理的進(jìn)入消息的方法 的流程圖。
具體實(shí)施例方式在各種實(shí)施例中,PCIe 終端的接口功能可以在結(jié)構(gòu)邏輯和代理之間劃分,以允許 跨各種平臺(tái)有效地重用代理,所述代理例如是知識(shí)產(chǎn)權(quán)(IP)塊或其它邏輯塊,用于執(zhí)行一 個(gè)或多個(gè)功能。如本文所使用的,術(shù)語“代理”和“IP塊”可以是同義的,用于表示可以適合 與其它這種代理一起位于半導(dǎo)體器件內(nèi)的獨(dú)立的邏輯,其中,代理可以源于一個(gè)或多個(gè)提 供商。對(duì)于一個(gè)實(shí)現(xiàn)來說,這種代理可以與虛擬下游端口(根端口或交換端口)一起在芯 片上實(shí)現(xiàn),所述虛擬下游端口可以是獨(dú)立的PCIe 設(shè)備、包含多功能(MF)邏輯的集成設(shè)備 結(jié)構(gòu)(IDF),以及一個(gè)或多個(gè)代理,它們中的每一個(gè)都可以實(shí)現(xiàn)一個(gè)或多個(gè)PCI-e 功能。這 樣,一個(gè)或多個(gè)代理可以被集成到片上PCI-e 設(shè)備中。虛擬下游端口對(duì)軟件來說表現(xiàn)為標(biāo)準(zhǔn)PCI-e 下游端口,但是鏈路層和物理層被 移除并且被替換為與上游部件(例如,處理器)進(jìn)行通信的主接口以及與IDF進(jìn)行通信的 目標(biāo)接口。在一個(gè)實(shí)施例中,虛擬下游端口包括類型1的PCIe 配置頭和相關(guān)聯(lián)的虛擬對(duì)等 橋邏輯。虛擬端口對(duì)于軟件表現(xiàn)為“真實(shí)”端口,但是缺少鏈路層和物理層。軟件不能分辨 這種不同。用于鏈路和物理寄存器的各種值可以在虛擬端口內(nèi)被設(shè)置,以使得軟件認(rèn)為鏈 路層和物理層是存在的。繼而,IDF、MF邏輯和代理對(duì)軟件來說表現(xiàn)為PCI-e 終端。軟件無法知道終端沒有利用標(biāo)準(zhǔn)PCI-e 鏈路連接到下游端口,因?yàn)槌尸F(xiàn)了相同的功能和信息。也 就是說,虛擬端口和IDF、MF邏輯和代理的組合能夠?qū)浖?例如,壓縮包裝(shrink-wrap) 的操作系統(tǒng)(OS))完全透明。此外,該接口是即插即用OS兼容的并且支持各種功能,例如 PCI即插即用枚舉和PCI排序等。在一個(gè)實(shí)施例中,集成設(shè)備結(jié)構(gòu)是包含MF邏輯的結(jié)構(gòu)的實(shí)現(xiàn)。MF邏輯提供了必要 的功能,用于允許被設(shè)計(jì)符合接口規(guī)范的分離的代理能夠協(xié)同工作并且對(duì)軟件來說表現(xiàn)為 標(biāo)準(zhǔn)的PCI-e 多功能設(shè)備,例如,經(jīng)由片外(例如,PCIeTM)鏈路來耦合。該結(jié)構(gòu)提供了流 控制、仲裁和排序邏輯。此外,多功能邏輯支持給定標(biāo)準(zhǔn)的各種功能需要。例如,在一個(gè)實(shí) 施例中,MF邏輯可以包括邏輯用于處理設(shè)備中的最大有效載荷大小,所述設(shè)備支持備選請(qǐng) 求者ID解釋(ARI)、傳統(tǒng)中斷、PCI功率管理(PM)消息、非功能特定錯(cuò)誤和時(shí)延容許報(bào)告。耦合到該IDF的可以是用于實(shí)現(xiàn)一個(gè)或多個(gè)PCI-e 功能的一個(gè)或多個(gè)代理。如下 文所述,代理可以被直接集成到根組件(root complex)結(jié)構(gòu)或可以被連接到集成設(shè)備結(jié)構(gòu) 以下。IDF連同代理形成可以被連接到集成虛擬端口(根端口或交換端口)的集成PCIe 終端。因此,實(shí)施例允許被設(shè)計(jì)成接口規(guī)范的標(biāo)準(zhǔn)代理可以在項(xiàng)目之間重用,或者作為 多功能設(shè)備內(nèi)的功能,或者作為根組件集成設(shè)備。沒有限制代理實(shí)現(xiàn)PCI-e 規(guī)范的全部 特征集的限制。通過移除鏈路層和物理層并且將它們替換為結(jié)構(gòu),消除了對(duì)這些層的各種 邏輯(例如,循環(huán)冗余校驗(yàn)(CRC)和重放緩沖器)的需要。這導(dǎo)致了更低的時(shí)延、更低的功 耗、更小的設(shè)計(jì)方案。通過設(shè)計(jì)規(guī)則來使得能夠在代理和結(jié)構(gòu)之間進(jìn)行邏輯的有效劃分,增強(qiáng)了重用。 PCIe 設(shè)備通常具有整個(gè)設(shè)備共有的某種邏輯以及功能所特有的某種邏輯。本發(fā)明的實(shí)施 例定義了關(guān)于哪些邏輯位于代理(或一個(gè)或多個(gè)功能)中,以及哪些邏輯位于結(jié)構(gòu)(或設(shè) 備專用邏輯)中的劃分和實(shí)現(xiàn),以優(yōu)化跨廣泛的各種平臺(tái)的重用。設(shè)計(jì)目標(biāo)的一部分是允 許代理被容易地用作設(shè)備的一部分,其被集成到各種部件(例如,終端、結(jié)構(gòu))中,并且可以 被集成在根組件之內(nèi)或根組件之外。因此,某種功能和復(fù)雜性被包括在結(jié)構(gòu)中,因?yàn)楫?dāng)代理 出現(xiàn)在根組件之內(nèi)時(shí),不需要它們?,F(xiàn)在參照?qǐng)D1,示出了根據(jù)本發(fā)明的實(shí)施例的、連接到可以在單個(gè)半導(dǎo)體管芯上形 成的虛擬端口的集成終端的框圖。如圖1所示,集成終端10可以包括IDF 30和一個(gè)或多 個(gè)代理50,并且可以被耦合到虛擬端口 20,取決于集成終端10所耦合的實(shí)體,所述虛擬端 口 20可以是虛擬根端口或虛擬交換端口。例如,當(dāng)耦合到根組件結(jié)構(gòu)時(shí),虛擬端口 20可以 是虛擬根端口,而當(dāng)耦合到交換結(jié)構(gòu)時(shí),虛擬端口 20可以是虛擬交換端口。在各種實(shí)施例 中,虛擬端口 20可以是架構(gòu)上可見的寄存器空間,并且可以包括一組用于支持即插即用和 功能發(fā)現(xiàn)的配置寄存器。繼而,虛擬端口 20耦合到包括多功能邏輯35的IDF 30。繼而,IDF 30可以耦合到一個(gè)或多個(gè)代理SOfSOf每個(gè)這種代理是獨(dú)立的IP塊 并且可以用于執(zhí)行一個(gè)或多個(gè)功能,例如一個(gè)或多個(gè)PCI-e 功能。在各種實(shí)施例中,與傳 統(tǒng)的經(jīng)由PCI-e 或其它鏈路來耦合這種代理不同,可以通過IDF 30來實(shí)現(xiàn)到虛擬端口 20 的代理50的集成的(即,在管芯上的)耦合。這樣,可以避免對(duì)都在虛擬端口 20和代理 50(并且還有IDF30)處的鏈路層和物理層的需要。相反,虛擬端口 20可以在事務(wù)層直接地 與IDF 30進(jìn)行通信,并且類似地,IDF 30可以在事務(wù)層與代理50直接進(jìn)行通信。注意,由代理50所示例的代理可以是一個(gè)或多個(gè)不同廠商的不同種類的塊。例如,SoC制造商可以 將各種代理包括在單個(gè)管芯上解決方案中,既包括制造商自己的代理,還包括其它廠商的 一個(gè)或多個(gè)代理,例如用于提供或增強(qiáng)某種功能?,F(xiàn)在參照?qǐng)D2,示出了耦合到虛擬端口的集成終端100的框圖。該集成終端可以類 似于圖1的結(jié)構(gòu)來配置。但是,還呈現(xiàn)了 IDF 30的更多的細(xì)節(jié)。更具體地說,如圖2中所 示,IDF 30可以包括多功能邏輯35,其包括多個(gè)獨(dú)立的邏輯(例如)40a-40d,它們可以處 理各種功能,以允許在集成終端100中的不同的代理的交互,同時(shí)維護(hù)與系統(tǒng)軟件(例如, 操作系統(tǒng))的可見性。在圖2的實(shí)施例中,這種邏輯包括寄存器投影(shadow)邏輯40a、功 率管理(PM)邏輯40b、傳統(tǒng)中斷邏輯40c和錯(cuò)誤邏輯40d。雖然示出了這些特定的邏輯功 能,但是本發(fā)明的范圍并不限于此,其它邏輯也可以出現(xiàn)在MF邏輯35中。此外,多功能邏 輯35包括邊帶(sideband)終端42,用于經(jīng)由邊帶信道62耦合到邊帶路由器50。仍然參照?qǐng)D2,IDF 30還包括在上游和下游方向的仲裁器(即,仲裁器48a_48b)。 這種仲裁器可以例如根據(jù)信用流控制和優(yōu)先級(jí)仲裁方案來處理與各種代理進(jìn)行的通信之 間的流控制和仲裁。仲裁器48a和48b可以檢查代理50的資源,以確保在隊(duì)列中存在空間, 并且在上游方向,它檢查資源并仲裁哪個(gè)代理能夠訪問上游主信道49b。在一個(gè)實(shí)施例中, 仲裁器48a可以用作命令線的交通警察(traffic cop)并且以兩個(gè)階段工作。首先,命令 被發(fā)送到代理以執(zhí)行目標(biāo)解碼,即向所有代理廣播。然后,目標(biāo)代理響應(yīng)。由于仲裁器現(xiàn)在 知道了目標(biāo)是哪一個(gè),接下來仲裁器檢查其資源可用性,一旦它確定資源是可用的,它就可 以發(fā)出許可并且實(shí)際的命令和數(shù)據(jù)被提供給目標(biāo)代理??梢越?jīng)由主信道49與代理50發(fā)生通信,所述主信道49可以包括分別在下游和上 游方向的分離的鏈路49a和49b。在一個(gè)實(shí)施例中,主信道49可以具有用于命令和數(shù)據(jù)信 息的不同的線路。如圖所示,邊帶路由器60可以經(jīng)由給定的邊帶信道65^653來與每個(gè)代 理50進(jìn)行通信。注意,盡管沒有在圖2中示出,但在代理50之間的對(duì)等通信是允許的。雖 然在圖2的實(shí)施例中示出了該特定實(shí)現(xiàn),但是本發(fā)明的范圍并不限于此。在集成設(shè)備結(jié)構(gòu)的其它實(shí)現(xiàn)中,不是耦合到其中所有命令和數(shù)據(jù)寬度都相同的代 理,而是結(jié)構(gòu)可以執(zhí)行排隊(duì)和分級(jí)(staging),以接受多個(gè)時(shí)鐘控制數(shù)據(jù),然后將其加寬,反 之亦然。為了便于說明,沒有在圖2中示出內(nèi)部排隊(duì),雖然實(shí)施例可以提供這種排隊(duì)。此 外,雖然在一些實(shí)施例中,下游消息可以向所有連接的代理廣播,所述代理執(zhí)行解碼以確定 命令是否針對(duì)給定的代理,但是其它實(shí)施例可以在IDF中實(shí)現(xiàn)解碼。例如,可以存在下游隊(duì) 列以接受來自根端口的事務(wù),然后所述事務(wù)被轉(zhuǎn)交給內(nèi)部解碼器以確定想要的目標(biāo)。實(shí)現(xiàn)一個(gè)或多個(gè)PCI-e 功能的代理可以被集成到根組件結(jié)構(gòu)中,在虛擬根端口 以下作為集成設(shè)備的一部分,或在獨(dú)立的PCI-e 終端部件中。為了使得能夠在這些不同的 系統(tǒng)中重用代理,如上所述,在結(jié)構(gòu)和代理之間劃分某個(gè)功能。此外,建立關(guān)于如何通過IDF 發(fā)送某些消息的協(xié)議。集成功能是實(shí)現(xiàn)一個(gè)或多個(gè)PCI功能的代理。這些可以是傳統(tǒng)PCI功能或符合 PCIe 的功能。支持ARI的集成功能可以在一個(gè)代理中實(shí)現(xiàn)多達(dá)256種功能。一些實(shí)施例 可以支持單個(gè)根10虛擬化(SR-I0V),在集成功能內(nèi)啟用多達(dá)64k種功能。當(dāng)連接到根組件結(jié)構(gòu)時(shí),在集成功能內(nèi)的功能變?yōu)楦M件集成終端。當(dāng)連接到交 換結(jié)構(gòu)時(shí),集成功能是包括上游交換端口的多功能設(shè)備的一部分。當(dāng)連接到集成設(shè)備結(jié)構(gòu)時(shí),集成功能是集成PCIe 終端的一部分。因此,為了最大化可重用性,集成功能可以被實(shí) 現(xiàn)以使得它們可以連接到根組件結(jié)構(gòu)、交換結(jié)構(gòu)或集成設(shè)備結(jié)構(gòu)。注意,當(dāng)集成功能用于創(chuàng) 建PCIe 終端時(shí),其它功能可以存在。仍然參照?qǐng)D2,傳統(tǒng)中斷邏輯42c可以用于處理可以生成PCI傳統(tǒng)中斷的代理。實(shí) 現(xiàn)生成中斷的、符合PCI和PCI-e 的功能的代理是PCI和PCI-e 規(guī)范所需要的,用于支持 傳統(tǒng)中斷。這些傳統(tǒng)中斷的目的地是輸入/輸出高級(jí)可編程中斷控制器(IOxAPIC)。使用 消息來虛擬地發(fā)送中斷線(即,傳統(tǒng)中斷線(INTx#))。一個(gè)Assert INTx#消息指示虛擬 INTx#信號(hào)的由高到低轉(zhuǎn)變,而DeAssert INTxI^fl息指示虛擬INTxI^f號(hào)的由低到高轉(zhuǎn)變。在各種實(shí)施例中,INTx消息可以在主和邊帶消息接口上發(fā)送。為了確保代理的協(xié) 同工作能力,使用以下規(guī)則來傳送傳統(tǒng)中斷。作為INTx消息的發(fā)起源的代理(例如,終端 或根端口)將使用邊帶消息來發(fā)送它們。包含多于一個(gè)共享INTx虛擬線的PCI/PCI-e 功 能的代理在發(fā)送使有效/去除有效(assert/de-assert)消息之前將虛擬線一起進(jìn)行邏輯 “或”。包含多于一個(gè)不共享INTx虛擬線的PCI/PCI-eTM功能的代理發(fā)送具有不同邊帶源 ID的消息,從而允許接收機(jī)能夠區(qū)分INTx消息的源。傳統(tǒng)中斷邏輯40c聚集由在結(jié)構(gòu)以下的代理所共享的傳統(tǒng)INTx消息。然后,聚集 的虛擬INTx線狀態(tài)被向上游轉(zhuǎn)發(fā)到主信道49上。實(shí)現(xiàn)PCI-e 根端口的代理將在瞄準(zhǔn)本 地IOxAPIC的邊帶信道上發(fā)送傳統(tǒng)INTx消息。PM邏輯42b可以用于支持PCI功率管理(PCI-PM)。以下三個(gè)消息可以用于處理功 率管理事件,即,功率管理事件消息、以及類似的關(guān)閉和關(guān)閉確認(rèn)消息PME、PME關(guān)閉(TO) 和PME TO Ack。在一個(gè)實(shí)施例中,PCI-PM消息包含消息代碼以指示消息是否是PME、PME關(guān) 閉或PME TOAck。消息還包含總線、設(shè)備和消息始發(fā)者的功能數(shù)量。為了支持實(shí)現(xiàn)PCI功率管理功能的代理的協(xié)同工作能力,使用以下規(guī)則。實(shí)現(xiàn) PCI-PM功能的代理在邊帶消息接口上發(fā)送PME消息、接收PME關(guān)閉消息并且發(fā)送PME TOAck 消息。繼而,IDF 30提供以下功能。首先,IDF在上游主接口上接收PME關(guān)閉消息,并且將 其廣播到支持PCI-PM(可以如真實(shí)的多播或如多個(gè)單播消息那樣完成)的任何耦合的代理 上。此外,IDF通過邊帶消息接口來接收PME TO Ack消息,聚集所述消息并且在主接口上 向上游轉(zhuǎn)發(fā)PME TO Ack消息,并且在邊帶消息接口上接收PME消息并且在主接口上將其向 上游轉(zhuǎn)發(fā)。實(shí)現(xiàn)PCI-e 根端口的代理在邊帶消息接口上接收PME關(guān)閉消息并且在主信道 上將其向下游轉(zhuǎn)發(fā),并且從下游接收PME TO Ack消息(通過虛擬根端口的IDF,通過實(shí)際根 端口的PCI-e 鏈路)并且將PME TO Ack消息轉(zhuǎn)發(fā)到邊帶消息接口上。實(shí)現(xiàn)PCI-e 根組 件事件收集器的代理將在邊帶消息接口上接收PME消息。錯(cuò)誤邏輯40d可以為PCI-e 錯(cuò)誤消息提供支持,其包括以下三個(gè)消息錯(cuò)誤校正 的(ERR C0RR)、錯(cuò)誤非重大的(ERR NONFATAL)和錯(cuò)誤重大的(ERR FATAL)。為了支持實(shí)現(xiàn) 這些消息的代理的協(xié)同工作能力,在一個(gè)實(shí)施例中可以使用以下規(guī)則。生成PCI-e 錯(cuò)誤消 息的代理在邊帶消息接口上發(fā)送錯(cuò)誤消息,集成設(shè)備結(jié)構(gòu)30在邊帶消息接口上接收錯(cuò)誤 消息并且將其在主信道49上向上游轉(zhuǎn)發(fā)。實(shí)現(xiàn)PCI-e 根端口的代理或者通過PCI-e 鏈 路接收錯(cuò)誤消息,或者如果被實(shí)現(xiàn)為虛擬根端口,則在下游側(cè)主信道上接收錯(cuò)誤消息。實(shí)現(xiàn) PCI-e 根組件事件收集器的代理將在邊帶消息接口上接收錯(cuò)誤消息。在其它實(shí)現(xiàn)中,這種 消息可以在主接口上被發(fā)送。
PCI-e 錯(cuò)誤消息包含請(qǐng)求者ID(其可以包括總線編號(hào)、設(shè)備和功能)和消息代碼。PCI-e 規(guī)范指示在終端發(fā)生的非功能特定錯(cuò)誤被記錄在每個(gè)功能中,但是對(duì)于每個(gè)啟用的 嚴(yán)重性僅發(fā)送一個(gè)錯(cuò)誤消息。例如,如果所有功能被編程為將錯(cuò)誤視為重大的,那么僅發(fā) 送一個(gè)重大錯(cuò)誤消息,但是如果一些功能被編程為將錯(cuò)誤視為重大的并且其它功能被編程 為將錯(cuò)誤視為非重大的,那么發(fā)送一個(gè)重大的錯(cuò)誤消息和一個(gè)非重大的錯(cuò)誤消息。以下的 錯(cuò)誤可以是非功能特定的不支持的請(qǐng)求(UR),當(dāng)不是由要求事務(wù)層分組(TLP)的功能所 引起時(shí);不期望的完成,當(dāng)不是由要求完成的功能所引起的時(shí);變形的TLP ;結(jié)束CRC(ECRC) 失敗;接收機(jī)溢出;流控制協(xié)議錯(cuò)誤。注意,在各種實(shí)施例中,最后兩個(gè)是不適用的。ECRC 失敗是可選的并且僅在啟用ECRC校驗(yàn)時(shí)發(fā)生。確定在非功能特定錯(cuò)誤中的事務(wù)結(jié)果是集成設(shè)備結(jié)構(gòu)30的錯(cuò)誤邏輯40d的責(zé)任。 當(dāng)檢測到非功能特定錯(cuò)誤時(shí),IDF將用非特定錯(cuò)誤信號(hào)(cmdnfserr)向作為集成設(shè)備的一 部分的每個(gè)下游代理發(fā)出寫操作(put)。當(dāng)代理接收到cmd nfserr信號(hào)有效的put時(shí),它 記錄錯(cuò)誤但是并不發(fā)送任何錯(cuò)誤消息,即使其被配置為發(fā)送消息。MF邏輯35負(fù)責(zé)發(fā)送合適 的錯(cuò)誤消息。單個(gè)比特帶(bit strap)用在集成功能中,以了解它被連接在集成設(shè)備結(jié)構(gòu) 以下。MF邏輯35投影集成設(shè)備結(jié)構(gòu)以下的每個(gè)功能的必要的比特,其指示了針對(duì)該錯(cuò) 誤,功能應(yīng)當(dāng)報(bào)告哪個(gè)嚴(yán)重性錯(cuò)誤。在一個(gè)實(shí)施例中,在錯(cuò)誤邏輯40d中可以提供表格以指 示需要哪個(gè)比特。因此,集成設(shè)備結(jié)構(gòu)檢測到錯(cuò)誤已經(jīng)發(fā)生并且將TLP廣播到在集成設(shè)備 結(jié)構(gòu)以下的所有集成功能??梢岳玫剿心繕?biāo)的同時(shí)的寫操作(put)或順序的寫操作來 完成廣播。然后,MF邏輯將檢查錯(cuò)誤配置比特的投影副本(shadow copy)并且將恰當(dāng)?shù)腻e(cuò) 誤消息向上游發(fā)送。MF邏輯35還可以包括寄存器投影邏輯40a。如果代理中的任何功能實(shí)現(xiàn)PCI_eTM ARI功能,那么它們必須全部實(shí)現(xiàn)ARI。實(shí)現(xiàn)ARI功能的每個(gè)集成功能實(shí)現(xiàn)專用的最大有效 載荷大小寄存器,其與PCI-e 定義的最大有效載荷大小配置寄存器相分離;所述每個(gè)集成 功能還實(shí)現(xiàn)帶輸入(strapinput),以指示集成功能是在根組件中還是在根組件外實(shí)例化。 該寄存器可從邊帶消息接口訪問。當(dāng)集成功能被跨接以指示其在根組件之外時(shí),具有除了 0以外的功能編號(hào)的所有功能忽略PCI-e 規(guī)范定義的最大有效載荷大小寄存器,并且使用 用于最大有效載荷大小值的專用寄存器。MF邏輯30的寄存器投影邏輯40a負(fù)責(zé)將功能0 的最大有效載荷大小值投影到連接到IDF 30的其它代理。在一些實(shí)施例中,MF邏輯35可 以包括其它功能。在一個(gè)實(shí)施例中,每個(gè)代理可以通過邊帶信道將時(shí)延消息發(fā)送到多功能 邏輯,所述多功能邏輯聚集消息、采用最壞情況時(shí)延編號(hào)并且將其發(fā)送到虛擬端口以用于 向上游報(bào)告。現(xiàn)在參照?qǐng)D3,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的片上系統(tǒng)(SoC)的框圖。如圖3 所示,SoC 200可以是單管芯設(shè)備,其包括執(zhí)行不同功能的各種實(shí)體。如圖3所示,服務(wù)器 控制器中心(SCH)210可以向系統(tǒng)控制器(例如中央處理器單元(CPU)或其它主處理實(shí)體) 提供接口。經(jīng)由各種設(shè)置例如熔絲選擇設(shè)置,例如由開關(guān)Sl和S2表示的可熔鏈路,可以進(jìn) 行控制以允許將不同電路耦合到SCH 210。如圖所示,開關(guān)Sl可以允許將虛擬端口 220直 接耦合到SCH 210,所述虛擬端口 220可以是虛擬根端口或虛擬交換端口。當(dāng)Sl將虛擬端 口 220連接到SCH 210時(shí),虛擬端口 220是根端口。在另一替代配置中,虛擬端口 220可以直接地耦合到交換結(jié)構(gòu)(SWF)270。當(dāng)S1將虛擬端口 220連接到SWF 270時(shí),虛擬端口 220 是交換端口??梢钥刂崎_關(guān)S2以將集成設(shè)備結(jié)構(gòu)230耦合到存儲(chǔ)控制器單元(SCU)260或 禁止這種耦合。如圖3進(jìn)一步所示,IDF 230可以被耦合到接口 240,其可以向各種片外設(shè)備提供 接口,所述片外設(shè)備例如SMBUS、非易失性SRAM、串行閃存和以太網(wǎng)。此外,IDF 230可以耦 合到SOT 250,SCU 250還可以耦合到各種片外設(shè)備,例如磁盤驅(qū)動(dòng)器或SAS網(wǎng)絡(luò)。此外, 在給定的實(shí)現(xiàn)中,開關(guān)S1可以允許將虛擬端口 220直接耦合到交換結(jié)構(gòu)270,該交換結(jié)構(gòu) 270繼而耦合到一個(gè)上游交換端口 280,所述交換端口 280可以耦合到下游交換端口(未示 出),下游交換端口耦合到片外終端。SoC 200還可以包括用于測試(DFx)代理290的設(shè)計(jì) 以執(zhí)行各種用于測試功能的設(shè)計(jì)。雖然示出了圖3的實(shí)施例中的該特定實(shí)現(xiàn),但是本發(fā)明 的范圍并不限于此。還可以在更廣泛的系統(tǒng)環(huán)境中來實(shí)現(xiàn)實(shí)施例,例如PCIeTM/PCI系統(tǒng)?,F(xiàn)在參照?qǐng)D 4,示出了根據(jù)本發(fā)明的實(shí)施例的系統(tǒng)300的框圖。如圖4所示,系統(tǒng)300可以包括各種結(jié) 構(gòu)以將不同類型的功能和設(shè)備耦合到上游部件,例如主CPU和存儲(chǔ)器組件,其由CPU 305表 示。雖然顯示為單個(gè)塊,但是應(yīng)當(dāng)理解,CPU 305可以包括一個(gè)或多個(gè)CPU和本地存儲(chǔ)器, 其可以以例如橋或環(huán)拓?fù)鋪韺?shí)現(xiàn)。CPU 305耦合到根組件結(jié)構(gòu)310。根組件310可以代表10分層體系的根,其將CPU 305連接到10子系統(tǒng)。如圖所 示,各種實(shí)體可以被耦合到根組件310,其包括根組件集成終端312a-312n、包括物理根端口 314和虛擬根端口 330的根端口、以及另一個(gè)這種接口 313,其在一個(gè)實(shí)施例中可以是DMI 或DMIc接口。在圖4的實(shí)施例中,這些接口和端口中的一些可以經(jīng)由跨管芯連接316和345 進(jìn)行片外耦合,而虛擬根端口 330可以在片上被集成到集成設(shè)備結(jié)構(gòu)335,該集成設(shè)備結(jié)構(gòu) 335繼而耦合到包括一個(gè)或多個(gè)集成功能341a-341n的集成的PCIe 終端340。因此,對(duì)于 在CPU 305上執(zhí)行的軟件來說,根端口 314和虛擬根端口 330都可以表現(xiàn)為被耦合到片外 的PCIe 設(shè)備。注意,終端312a-312n和功能341a-341JjJ設(shè)計(jì)成同一規(guī)則,以使得系統(tǒng)集成 者可以在不改變可重用代理的實(shí)現(xiàn)的情況下,選擇將代理實(shí)現(xiàn)為RC集成終端或集成功能。仍然參照?qǐng)D4,跨管芯連接316可以耦合到另一個(gè)接口 317,該接口 317繼而耦合 到根組件結(jié)構(gòu)320,一個(gè)或多個(gè)根組件集成終端322^322 可以被耦合到所述根組件結(jié)構(gòu) 320。經(jīng)由跨管芯連接345,PCIe 多功能設(shè)備350可以出現(xiàn),其還可以經(jīng)由交換端口 352 和集成功能354耦合到交換結(jié)構(gòu)360。繼而,交換結(jié)構(gòu)360可以耦合到各種下游端口,包括交 換端口 365和虛擬交換端口 368a*368b。這些虛擬交換端口可以耦合到IDF 370和375,其 中的每一個(gè)可以包括耦合到其上的一個(gè)或多個(gè)PCI終端。在圖4中所示的實(shí)施例中,PCIe 終端372可以包括集成功能373,并且PCIe 終端380可以包括集成功能383a_383n。雖然 示出了圖4的實(shí)施例中的特定實(shí)現(xiàn),但是本發(fā)明的范圍并不限于此。現(xiàn)在參照?qǐng)D5,示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法的流程圖。如圖5所示,方 法400可以被實(shí)現(xiàn)在集成設(shè)備結(jié)構(gòu)中以處理來自耦合到它們上的上游連接設(shè)備的進(jìn)入消 息。如圖5所示,方法400可以用于處理從上游部件(例如,耦合了 IDF的虛擬端口)接收 的進(jìn)入消息(框410)。當(dāng)在IDF中接收到時(shí),可以是命令的消息可以經(jīng)由主信道廣播到所有下游代理
10(框420)。然后,IDF可以確定它是否從代理中的一個(gè)接收到解碼確認(rèn)(菱形框430)。也 就是說,如上所討論的,將消息向下游傳輸可以在兩個(gè)階段的過程中發(fā)生,其中,消息首先 被廣播到所有代理,代理執(zhí)行它們自己的目標(biāo)解碼。如果消息并不針對(duì)任何下游部件,那么 可以生成錯(cuò)誤消息并且向上游發(fā)送(框435)。相反,如果從代理中的一個(gè)接收到目標(biāo)確認(rèn),那么控制轉(zhuǎn)移到菱形框440,其中,可 以確定目標(biāo)代理是否具有資源來處理消息(菱形框440)。如果是的話,那么控制轉(zhuǎn)移到框 450,其中所述消息可以被與向下游傳輸?shù)钠渌⒁黄饋碇俨谩H缓?,在?60,消息可以 被發(fā)送到目標(biāo)代理。當(dāng)然,在其它實(shí)施例中可以使用用于處理接收消息的其它機(jī)制。例如, 如上所討論的,在一些實(shí)現(xiàn)中,地址解碼可以發(fā)生在結(jié)構(gòu)本身中?,F(xiàn)在參照?qǐng)D6,示出了用于處理來自耦合的代理的進(jìn)入消息的方法的流程圖。如圖 6所示,方法500可以開始于經(jīng)由邊帶信道從一個(gè)或多個(gè)代理接收邊帶消息(框510)。例 如,進(jìn)入的邊帶消息可以被提供給邊帶終端,其可以是集成設(shè)備結(jié)構(gòu)的多功能邏輯的一部 分。該終端可以將消息路由到多功能邏輯內(nèi)的適當(dāng)?shù)倪壿?框520)。例如,錯(cuò)誤消息可以 被發(fā)送到錯(cuò)誤邏輯,功率管理消息可以被發(fā)送到功率管理邏 輯等。然后,給定的邏輯可以處 理接收到的消息(框530)。例如,如上所討論的,所述邏輯可以執(zhí)行對(duì)多個(gè)邊帶消息的聚 合,由此形成適當(dāng)?shù)木酆舷⒁韵蛏嫌蝹鬏?。然后,如圖6所示,聚合消息可以向上游轉(zhuǎn)發(fā), 例如經(jīng)由主信道轉(zhuǎn)發(fā)到虛擬端口(框540)。因此,使用本發(fā)明的實(shí)施例,可以實(shí)現(xiàn)標(biāo)準(zhǔn)的解決方案,從而實(shí)現(xiàn)可以被用作根組 件集成設(shè)備或非根組件集成設(shè)備的代理。因此,對(duì)跨各種產(chǎn)品的代理的重用可以發(fā)生,以使 得一個(gè)或多個(gè)廠商的代理可以被并入到單管芯集成電路中。注意,實(shí)施例提供了在PCI-e 交換器、交換端口、PCIe 根端口之下或直接在根組 件之下的IP塊的相同的集成。相反,根據(jù)PCI-e 規(guī)范,不允許交換器將設(shè)備集成在內(nèi)部總 線上。(PCI-e 規(guī)范語言“終端(由類型OOh配置空間頭表示)對(duì)于交換器的內(nèi)部總線上 的配置軟件一定不能表現(xiàn)為代表交換器下游端口的虛擬PCI到PCI橋的同位體?!?。但是, 如圖4所示,IP塊可以被集成作為包含交換器上游端口的集成設(shè)備的功能。在這種情況下, 交換結(jié)構(gòu)360是為與上游交換端口虛擬對(duì)等橋的主側(cè)(primary side)和從側(cè)(secondary side)相關(guān)聯(lián)的兩個(gè)邏輯PCI總線承載業(yè)務(wù)的單獨(dú)結(jié)構(gòu)。實(shí)施例還可以完全符合PCI-e ,從而允許設(shè)計(jì)用于標(biāo)準(zhǔn)接口的代理能夠在根組件 內(nèi)或在集成設(shè)備中使用。而且,使用根據(jù)本發(fā)明的一個(gè)實(shí)施例的具有多功能邏輯的IDF,提 供了處理代理之間的交互的標(biāo)準(zhǔn)方法,從而使得來自不同供應(yīng)者的代理可以被一起連接到 單個(gè)多功能設(shè)備中??梢杂么a來實(shí)現(xiàn)實(shí)施例并且可以存儲(chǔ)在其上存儲(chǔ)了指令的存儲(chǔ)介質(zhì)上,所述指 令可以用于對(duì)系統(tǒng)進(jìn)行編程以執(zhí)行指令。存儲(chǔ)介質(zhì)可以包括但并不限于任何類型的盤,包 括軟盤、光盤、固態(tài)驅(qū)動(dòng)器(SSD)、光盤(⑶-ROM)、可重寫光盤(⑶-RW)和磁光盤,半導(dǎo)體器 件,例如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、靜 態(tài)隨機(jī)存取存儲(chǔ)器(SRAM))、可擦除可編程只讀存儲(chǔ)器(EPROM)、閃存、電可擦除可編程只 讀存儲(chǔ)器(EEPROM))、磁或光卡,或適合于存儲(chǔ)電子指令的任何其它類型的介質(zhì)。雖然參照有限的實(shí)施例描述了本發(fā)明,但是本領(lǐng)域中的這些技術(shù)人員將理解它們 的各種變型和改變。本文旨在用所附的權(quán)利要求來覆蓋落入本發(fā)明的實(shí)質(zhì)精神和范圍內(nèi)的所有這種變型和改 變。
權(quán)利要求
一種裝置,包括虛擬端口,其耦合在上游結(jié)構(gòu)和集成設(shè)備結(jié)構(gòu)之間,所述虛擬端口包括與所述上游結(jié)構(gòu)連接的主接口和與所述集成設(shè)備結(jié)構(gòu)連接的目標(biāo)接口;所述集成設(shè)備結(jié)構(gòu),其包括用于處理中斷、功率管理消息和非功能特定錯(cuò)誤消息的多功能邏輯,所述集成設(shè)備結(jié)構(gòu)耦合到至少一個(gè)知識(shí)產(chǎn)權(quán)(IP)塊并且具有主信道和邊帶信道,所述主信道用于在所述至少一個(gè)IP塊和所述虛擬端口之間傳送數(shù)據(jù)和命令信息,所述邊帶信道用于在所述至少一個(gè)IP塊和所述多功能邏輯之間傳送邊帶信息;以及所述至少一個(gè)IP塊,其用于執(zhí)行功能,其中,所述虛擬端口、所述集成設(shè)備結(jié)構(gòu)和所述IP塊適于在單個(gè)半導(dǎo)體管芯上。
2.根據(jù)權(quán)利要求1所述的裝置,其中,在沒有鏈路層或物理層的干預(yù)的情況下,所述集 成設(shè)備結(jié)構(gòu)耦合到所述虛擬端口的事務(wù)層和所述至少一個(gè)IP塊的事務(wù)層。
3.根據(jù)權(quán)利要求1所述的裝置,其中,所述多功能邏輯包括邊帶終端,以經(jīng)由所述邊帶 信道與邊帶路由器進(jìn)行通信,所述邊帶路由器還耦合到所述至少一個(gè)IP塊。
4 根據(jù)權(quán)利要求1所述的裝置,其中,所述集成設(shè)備結(jié)構(gòu)還包括仲裁器,用于對(duì)沿著所 述主信道從所述虛擬端口到耦合到所述集成設(shè)備結(jié)構(gòu)的多個(gè)IP塊的消息進(jìn)行仲裁。
5.根據(jù)權(quán)利要求4所述的裝置,其中,所述多功能邏輯包括第一邏輯,用于檢測經(jīng)由所 述邊帶信道來自所述多個(gè)IP塊的非功能特定錯(cuò)誤消息,并且用于生成聚合消息以便經(jīng)由 所述主信道傳輸?shù)剿鎏摂M端口。
6.根據(jù)權(quán)利要求4所述的裝置,其中,所述多功能邏輯包括第二邏輯,用于經(jīng)由所述主 信道從所述虛擬端口接收功率管理消息,并且用于生成經(jīng)由所述邊帶信道傳輸?shù)剿龆鄠€(gè) IP塊的下游功率管理消息。
7.根據(jù)權(quán)利要求4所述的裝置,其中,所述多個(gè)IP塊是不同種類的塊,并且其中,所述 集成設(shè)備結(jié)構(gòu)用于使所述不同種類的塊和所述虛擬端口之間的通信標(biāo)準(zhǔn)化。
8.根據(jù)權(quán)利要求5所述的裝置,其中,所述集成設(shè)備結(jié)構(gòu)和所述多個(gè)IP塊對(duì)于軟件表 現(xiàn)為經(jīng)由PCI鏈路耦合的單個(gè)外圍部件互連(PCI)終端。
9.根據(jù)權(quán)利要求1所述的裝置,還包括第一可熔鏈路和第二可熔鏈路,所述第一可熔 鏈路用于經(jīng)由所述虛擬端口將所述集成設(shè)備結(jié)構(gòu)耦合到交換結(jié)構(gòu),其中,當(dāng)所述第一可熔 鏈路被啟用時(shí),所述虛擬端口用作交換端口,所述第二可熔鏈路用于經(jīng)由所述虛擬端口將 所述集成設(shè)備結(jié)構(gòu)耦合到中心代理,其中,當(dāng)所述第二可熔鏈路被啟用時(shí),所述虛擬端口用 作根端口。
10.一種方法,包括在集成設(shè)備結(jié)構(gòu)中從耦合到所述集成設(shè)備結(jié)構(gòu)的虛擬端口接收消息,所述集成設(shè)備結(jié) 構(gòu)包括多功能邏輯以處理針對(duì)多個(gè)終端設(shè)備的第一功能,所述集成設(shè)備結(jié)構(gòu)耦合到所述多 個(gè)終端設(shè)備并且具有主信道和邊帶信道,所述主信道用于在所述多個(gè)終端設(shè)備和所述虛擬 端口之間傳送數(shù)據(jù)和命令信息,所述邊帶信道用于在所述多個(gè)終端設(shè)備和所述多功能邏輯 之間傳送邊帶信息;經(jīng)由所述主信道將所述消息的命令部分廣播到耦合到所述集成設(shè)備結(jié)構(gòu)的所述多個(gè) 終端設(shè)備;從所述多個(gè)終端設(shè)備中的目標(biāo)終端設(shè)備接收解碼確認(rèn),以指示所述消息是打算提供給所述目標(biāo)終端設(shè)備的;以及確定所述目標(biāo)終端設(shè)備是否具有可用的資源以處理所述消息,并且如果具有的話,那 么將所述消息發(fā)送到所述目標(biāo)終端設(shè)備。
11.根據(jù)權(quán)利要求10所述的方法,還包括與其它消息一起來仲裁所述消息以便傳輸?shù)?所述多個(gè)終端設(shè)備。
12.根據(jù)權(quán)利要求10所述的方法,還包括如果所述集成設(shè)備結(jié)構(gòu)沒有接收到所述解 碼確認(rèn),那么生成錯(cuò)誤消息并且將所述錯(cuò)誤消息向上游發(fā)送到所述虛擬端口。
13.根據(jù)權(quán)利要求10所述的方法,還包括在沒有鏈路層或物理層的干預(yù)的情況下,將 所述虛擬端口的事務(wù)層耦合到所述目標(biāo)終端設(shè)備的事務(wù)層。
14.根據(jù)權(quán)利要求10所述的方法,還包括在所述多功能邏輯中從所述終端設(shè)備中的 至少一些接收多個(gè)中斷消息,并且將所述中斷消息聚合到將被發(fā)送到所述虛擬端口的聚合 消息中。
15.根據(jù)權(quán)利要求10所述的方法,還包括在所述主信道上檢測對(duì)功能零大小寄存器 的寫,并且經(jīng)由所述邊帶信道將所述寫投影到所述多個(gè)終端設(shè)備。
16.根據(jù)權(quán)利要求13所述的方法,還包括在不執(zhí)行鏈路層處理或物理層處理的情況 下,在所述集成設(shè)備結(jié)構(gòu)中接收所述消息并且將所述消息發(fā)送到所述目標(biāo)終端設(shè)備。
17.根據(jù)權(quán)利要求10所述的方法,還包括經(jīng)由所述邊帶信道在所述多功能邏輯中的 第一邏輯中從所述多個(gè)終端設(shè)備接收非功能特定錯(cuò)誤消息,并且生成錯(cuò)誤消息以便經(jīng)由所 述主信道傳輸?shù)剿鎏摂M端口。
18.根據(jù)權(quán)利要求17所述的方法,還包括經(jīng)由所述主信道在所述多功能邏輯的第二 邏輯中從所述虛擬端口接收功率管理消息,并且經(jīng)由所述邊帶信道將下游功率管理消息發(fā) 送到所述多個(gè)終端設(shè)備。
19.一種系統(tǒng),包括處理器;根組件結(jié)構(gòu),其耦合到所述處理器、多個(gè)集成終端設(shè)備和根端口,所述根端口經(jīng)由片外 鏈路耦合到高速外圍部件互連(PCIe)設(shè)備,其中,所述PCIe設(shè)備對(duì)于在所述處理器上執(zhí)行 的軟件是可見的,所述根端口和所述PCIe設(shè)備中的每一個(gè)包括事務(wù)層、鏈路層和物理層;虛擬根端口,其耦合到所述根組件結(jié)構(gòu)并且具有用于與所述根組件結(jié)構(gòu)連接的主接口 和用于與集成設(shè)備結(jié)構(gòu)連接的目標(biāo)接口 ;以及所述集成設(shè)備結(jié)構(gòu),其經(jīng)由片上鏈路耦合到所述虛擬根端口并且包括多功能邏輯以處 理中斷、功率管理消息和非功能特定錯(cuò)誤消息,所述集成設(shè)備結(jié)構(gòu)耦合到至少一個(gè)代理并 且具有主信道和邊帶信道,所述主信道用于在所述至少一個(gè)代理和所述虛擬根端口之間傳 送數(shù)據(jù)和命令信息,所述邊帶信道用于在所述至少一個(gè)代理和所述多功能邏輯之間傳送邊 帶信息,其中,在所述虛擬根端口和所述至少一個(gè)IP塊之間的通信是在沒有所述鏈路層或 所述物理層的干預(yù)的情況下在所述事務(wù)層進(jìn)行的,并且所述至少一個(gè)代理對(duì)于在所述處理 器上執(zhí)行的軟件來說可被視為經(jīng)由片外鏈路耦合到述虛擬根端口的PCIe設(shè)備。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述多功能邏輯包括第一邏輯,用于經(jīng)由所述 邊帶信道從多個(gè)代理接收所述非功能特定錯(cuò)誤消息,并且用于生成錯(cuò)誤消息以便經(jīng)由所述 主信道傳輸?shù)剿鎏摂M根端口。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中,所述多功能邏輯包括第二邏輯,用于經(jīng)由所述 主信道從所述虛擬根端口接收功率管理消息,并且用于生成下游功率管理消息以經(jīng)由所述 邊帶信道發(fā)送到所述多個(gè)代理。
22.根據(jù)權(quán)利要求19所述的系統(tǒng),其中,所述多功能邏輯包括第三邏輯,用于從所述多 個(gè)代理接收時(shí)延容許信息,并且將所述時(shí)延容許信息聚合到將被發(fā)送到所述虛擬根端口的 時(shí)延消息中。
全文摘要
靈活地將終端邏輯集成到各種平臺(tái)。在一個(gè)實(shí)施例中,本發(fā)明涉及具有虛擬端口的集成終端,所述虛擬端口耦合在上游結(jié)構(gòu)和集成設(shè)備結(jié)構(gòu)之間,所述集成設(shè)備結(jié)構(gòu)包括多功能邏輯,用于處理耦合到集成設(shè)備結(jié)構(gòu)的一個(gè)或多個(gè)知識(shí)產(chǎn)權(quán)(IP)塊的各種功能。集成設(shè)備結(jié)構(gòu)具有用于在IP塊和上游結(jié)構(gòu)之間傳送數(shù)據(jù)和命令信息的主信道,以及用于在IP塊和多功能邏輯之間傳送邊帶信息的邊帶信道。描述并要求保護(hù)了其它實(shí)施例。
文檔編號(hào)H04L29/08GK101873339SQ20101015856
公開日2010年10月27日 申請(qǐng)日期2010年3月31日 優(yōu)先權(quán)日2009年3月31日
發(fā)明者J·默里, M·克林萊史密斯, M·奈爾 申請(qǐng)人:英特爾公司