本申請為分案申請,其原申請是于2014年11月27日(國際申請日為2013年6月19日)向中國專利局提交的專利申請,申請?zhí)枮?01380027892.8,發(fā)明名稱為“使用第二協(xié)議的擴展功能結構來控制第一協(xié)議的物理鏈路”。
實施例涉及互連技術。
背景技術:
為了提供在一個系統(tǒng)內的不同裝置之間的通信,使用了一些類型的互連機制。取決于系統(tǒng)實現(xiàn),各種各樣的這樣的互連都是可能的。通常為了使得兩個設備能夠互相通信,它們共享共同的通信協(xié)議。
在計算機系統(tǒng)中的設備之間進行通信的一個典型的通信協(xié)議是根據(jù)基于快速pcitm規(guī)范基礎規(guī)范版本3.0(發(fā)布于2010年11月18日)(以下稱為pcietm規(guī)范)的鏈路的快速外圍部件互連tm(快速pcitm(pcietm))通信協(xié)議。所述通信協(xié)議是加載/存儲輸入/輸出(io)互連系統(tǒng)的一個示例。設備之間的通信通常根據(jù)所述協(xié)議以非常高的速度串行執(zhí)行。關于所述協(xié)議的各種參數(shù)的開發(fā)旨在實現(xiàn)最大性能,而不考慮功效,正如pcietm通信協(xié)議是針對桌面式計算機所開發(fā)的。因此,其許多特征并未縮小至可以并入到移動系統(tǒng)中的更低功率的解決方案。
除了關于傳統(tǒng)的加載/存儲通信協(xié)議的這些功率問題外,現(xiàn)有的鏈路管理方案通常非常復雜并且涉及許多狀態(tài),從而使很長的過程要執(zhí)行狀態(tài)之間的轉換。這部分地是由于現(xiàn)有的鏈路管理機制,所述鏈路管理機制被開發(fā)用于包括多種不同的形成因素要求,例如,連接器、不同系統(tǒng)的合并等。一個這樣的示例是根據(jù)pcietm通信協(xié)議的鏈路管理。
附圖說明
圖1是根據(jù)本發(fā)明的實施例的通信協(xié)議的協(xié)議棧的高級框圖。
圖2是根據(jù)本發(fā)明的實施例的片上系統(tǒng)(soc)的框圖。
圖3是根據(jù)本發(fā)明的另一實施例的物理單元的框圖。
圖4是根據(jù)本發(fā)明的實施例的示出了協(xié)議棧的進一步細節(jié)的框圖。
圖5是根據(jù)本發(fā)明的實施例的可以為鏈路管理器的一部分的鏈路訓練狀態(tài)機的狀態(tài)圖。
圖6是根據(jù)本發(fā)明的實施例的邊帶機制的各種狀態(tài)的流程圖。
圖7是根據(jù)本發(fā)明的實施例的方法的流程圖。
圖8是根據(jù)本發(fā)明的實施例的存在于計算機系統(tǒng)中的部件的框圖。
圖9是可以與實施例一起使用的示例系統(tǒng)的框圖。
圖10是根據(jù)本發(fā)明的一個實施例的示出了重配置請求的時序圖。
圖11是根據(jù)本發(fā)明的另一實施例的重配置請求的定時圖示出。
圖12是根據(jù)本發(fā)明的一個實施例的恢復子狀態(tài)機的框圖。
圖13是根據(jù)本發(fā)明的一個實施例的功能結構的框圖。
圖14是根據(jù)本發(fā)明的另一實施例的方法的流程圖。
具體實施方式
實施例可以提供具有低功率、加載/存儲架構并且特別適用于在移動設備(包括蜂窩電話,例如:智能電話、平板計算機、電子閱讀器、超極本tm等)中使用的輸入/輸出(io)互連技術。
在各種實施例中,用于給定的通信協(xié)議的協(xié)議??梢耘c不同的通信協(xié)議的物理單元或至少與用于給定的通信協(xié)議的物理單元不同的物理(phy)單元一起使用。物理單元包括邏輯層和物理層或電層二者,所述物理層或電層通過互連(例如,鏈接兩個獨立半導體管芯的鏈路)來提供信息信號的實際、物理通信,所述兩個獨立半導體管芯可以是單個集成電路(ic)封裝或例如經由電路板路由、跡線等相耦合的單獨封裝內的兩個半導體管芯。另外,物理單元可以執(zhí)行對數(shù)據(jù)分組的成幀/解幀、執(zhí)行鏈路訓練和初始化、以及處理將數(shù)據(jù)分組傳送至物理互連或從物理互連接收數(shù)據(jù)分組。
雖然不同的實施方式都是可能的,但是,在一個實施例中,協(xié)議??梢跃哂谢趥鹘y(tǒng)的個人計算機(pc)的通信協(xié)議(例如,根據(jù)快速pcitm規(guī)范基礎規(guī)范版本3.0(發(fā)布于2010年11月18日)(以下稱為pcietm規(guī)范)的快速外圍部件互連tm(pci)(pcietm)通信協(xié)議)、應用協(xié)議擴展的進一步版本或另一個這樣的協(xié)議,然而,物理單元不根據(jù)pcietm通信協(xié)議。該物理單元可以專門設計為以下目的:能夠實現(xiàn)低功率操作用于允許實質上不變的pcietm上層協(xié)議棧與所述低功率物理電路的合并。這樣,可以利用pcietm通信協(xié)議的廣泛的已有基礎,以便并入到以低功率操作的便攜式和其他基于非pc的形成因素中。雖然本發(fā)明的范圍不限于此,但是,在一個實施例中,所述物理單元可以為改編自移動平臺的物理單元,所述移動平臺例如是根據(jù)移動產業(yè)處理器接口(mipi)聯(lián)盟的m-phy規(guī)范版本1.00.00(2011年2月8日)(mipi董事會批準于2011年4月28日)(以下稱為mipi規(guī)范)的所謂的m-phy,mipi聯(lián)盟是為移動計算機設備制定標準的小組。然而,可以使用其他低功率物理單元(例如,根據(jù)其他低功率規(guī)范(例如,用于在多芯片封裝內將獨立的管芯耦合在一起的))或定制的低功率解決方案。正如本文所使用的,術語“低功率”是指低于常規(guī)pc系統(tǒng)的功耗等級并且其可以適用于多種移動和便攜式設備的。作為示例,“低功率”可以為比常規(guī)pcietm物理單元消耗更少功率的物理單元。
這樣,通過將具有不同類型的物理單元的傳統(tǒng)pcietm協(xié)議棧相聚合,可以利用針對pcietm開發(fā)的已有部件的大量再使用,以用于并入到移動或其他便攜式或低功率平臺中。
實施例還可以利用如下認識:現(xiàn)有的加載/存儲io技術,尤其是pcietm,其設計目的在于獲得最大性能,其中,功效不是主要問題,并且由此沒有縮小至低功率應用。通過將常規(guī)的加載/存儲協(xié)議棧的部分與低功率設計的物理單元相結合,實施例可以保留pcietm的性能優(yōu)勢,同時實現(xiàn)設備和平臺級的最佳等級功率。
同樣,實施例可以為與具有較大的已有基礎的普適pcietm架構兼容的軟件。另外,實施例還能夠實現(xiàn)移動設計phy(例如,m-phy)的直接phy再使用。這樣,當ph可以在不干擾相關聯(lián)的無線電的時鐘速率下運行時,(由于phy的時鐘頻率的諧波不干擾典型無線電解決方案運行的公共的無線電頻率(例如,1.8、1.9、2.4千兆赫(ghz)或其他這樣的無線頻率)),低活和空閑功率均可以利用傳送的高效功率/位連同是友好的電磁接口/射頻接口(emi/rfi)的方法一起實現(xiàn)。
實施例可以進一步提供架構增強,所述架構增強能夠進行優(yōu)化的鏈路訓練和管理機制(ltssm);優(yōu)化的流控制和重試緩沖以及管理機制;用于改變鏈路操作模式的架構協(xié)議;快速硬件支持的設備狀態(tài)保存和恢復;以及用于具有可選的帶內支持的鏈路管理的整合的邊帶機制。
在各種實施例中,pcietm事務和數(shù)據(jù)鏈路層可以被實現(xiàn)為具有有限修改的協(xié)議棧的部分,用于占用不同的鏈路速度和非對稱鏈路。另外,可以提供改進的鏈路訓練和管理用于包括對多路通信、非對稱鏈路配置、邊帶整合和動態(tài)帶寬可擴展性的支持。實施例可以進一步提供對現(xiàn)有的基于pcietm或不基于pcietm的邏輯和電路(例如,m-phy邏輯和電路)之間的橋接的支持。
所述分層方法能夠使現(xiàn)有的軟件棧(例如,操作系統(tǒng)(os)、虛擬機管理器和驅動器)在不同的物理層上無縫運行。使對數(shù)據(jù)鏈路和事務層的影響最小化,并且所述影響可以包括與更新確認頻率、重播計時器等相關的計時器的更新。
由此,實施例可能限制pcietm系統(tǒng)中提供的一些靈活性,因為所述靈活性在一些情況下可能會在pcietm系統(tǒng)和其他系統(tǒng)二者中產生一定的復雜性。這就是這些協(xié)議同時提供大量靈活性,以實現(xiàn)即插即用功能的原因。相反,實施例可以對解決方案進行裁剪,所述解決方案使設計中的靈活性的量最小化,因為當并入到給定系統(tǒng)(例如,片上系統(tǒng)(soc))、互聯(lián)到另一個集成電路時,已知的和固定的配置發(fā)生。因為已知所呈現(xiàn)的確切配置的實現(xiàn),當soc和所連接的設備二者均附接在平臺內(例如,焊接至系統(tǒng)的電路板)時,不需要關于這些設備的即插即用功能,并且由此,可以不需要pcietm中的或其他基于pc通信協(xié)議的內在的更大的靈活性,其能夠實現(xiàn)將不同的設備無縫并入到具有即插即用功能的系統(tǒng)中。
作為一個示例,soc可以用作在第一ic中實現(xiàn)的根復合體并且其耦合至可以為無線電解決方案的第二ic,所述第二ic可以包括多個無線通信設備的一個或多個設備。這樣的設備范圍可以從低功率短距離通信系統(tǒng)(例如,根據(jù)藍牙tm規(guī)范)、本地無線通信(例如,根據(jù)給定的電子與電氣工程師協(xié)會(ieee)802.11標準的所謂的wifitm系統(tǒng))到更高的功率無線系統(tǒng)(例如,給定的蜂窩通信協(xié)議(例如,3g或4g通信協(xié)議))。
現(xiàn)參考圖1,圖1示出了根據(jù)本發(fā)明的實施例的通信協(xié)議的協(xié)議棧的高級框圖。如圖1所示,棧100可以為在半導體部件(例如,ic)內的軟件、固件和硬件的組合,用于提供對半導體設備和耦合至該半導體設備的另一設備之間的數(shù)據(jù)通信的處理。在圖1的實施例中,示出了開始于更高級軟件110的高級視圖,軟件110可以為在給定的平臺上執(zhí)行的各種類型的軟件。所述更高級的軟件可以包括操作系統(tǒng)(os)軟件、固件、應用軟件等。經由互連140傳輸?shù)臄?shù)據(jù)可以通過協(xié)議棧的各層,由圖1內概括地示出,所述互連140可以為將半導體設備和另一部件相耦合的給定的物理互連。正如所示出的,所述協(xié)議棧的部分可以為常規(guī)的pcietm棧120的部分并且可以包括事務層125和數(shù)據(jù)鏈路層128。通常,事務層125的作用是生成事務層數(shù)據(jù)分組(tlp),其可以為由時間分隔的基于請求或響應的分組,從而當目標設備針對響應來收集數(shù)據(jù)時,允許鏈路承載其他業(yè)務。事務層進一步處理基于信用的流控制。由此,事務層125在設備的處理電路和互連架構(例如,數(shù)據(jù)鏈路層和物理層)之間提供界面。在這一點上,事務層的主要責任在于分組(即,事務層分組(tlp))的組裝與分解以及處理基于信用的流控制。
繼而,數(shù)據(jù)鏈路層128可以對由事務層生成的tlp進行排序并且確保在兩個端點之間的tlp的可靠傳遞(包括處理錯誤校驗)和確認處理。由此,鏈路層128用作在事務層和物理層之間的中間階段,并且提供可靠的機制用于通過鏈路在兩個部件之間交換tlp。鏈路層的一側接收由事務層、應用標識符所組裝的tlp;計算和應用錯誤檢測碼(例如,循環(huán)恢復代碼(crc));以及將修改的tlp提交給物理層,用于跨越物理鏈路至外部設備的傳輸。
在數(shù)據(jù)鏈路層128中處理之后,分組可以被傳輸至phy單元130。通常,phy單元130可以包括低功率phy134,低功率phy134可以包括邏輯層和物理(包括電子)子層。在一個實施例中,由phy單元130表示的物理層將分組物理地傳輸至外部設備。所述物理層包括:用于將傳出信息準備用于傳輸?shù)膫鬏敳糠趾陀糜谠趯⑺邮盏男畔鹘o鏈路層之前識別和準備所接收的信息的接收器部分。傳輸器組裝有被序列化并且傳輸至外部設備的符號。所述接收器組裝有來自外部設備的序列化的符號并且其將所接收的信號轉換為位流。將所述位流去序列化并且將其提供給邏輯子塊。
在一個實施例中,低功率phy134可以提供對分組化的數(shù)據(jù)的處理,以用于沿互連140的通信,所述低功率phy134可以為專門開發(fā)的或從另一phy(例如,m-phy)改編的給定的低功率phy。正如在圖1中進一步可見的,鏈路訓練和管理層132(本文中還稱為鏈路管理器)還可以存在于phy單元130內。在各種實施例中,鏈路管理器132可以包括:可以根據(jù)另一通信協(xié)議(例如,pcietm協(xié)議)實現(xiàn)的某種邏輯和用于處理在常規(guī)的協(xié)議棧(例如,上文的pcietm協(xié)議棧)和不同協(xié)議的物理phy134之間的接口的專門邏輯。
在圖1的實施例中,可以將互連140實現(xiàn)為可以為兩對單向連線的連線的差分對。在一些實施方式中,可以將差分對的多個集合用于增加帶寬。要注意的是,根據(jù)pcietm通信協(xié)議,在每一個方向上的差分對的數(shù)量必需是相同的。然而,根據(jù)各種實施例,可以在每一個方向上提供不同數(shù)量的對,這允許更有效和更低功率的操作??梢詫⑺稣w聚合的棧和鏈路140稱為移動快速pcietm互連或鏈路。雖然以所述高級別示出了圖1的實施例,但要理解本發(fā)明的范圍不限于此。即,要理解圖1所示出的圖僅僅是關于從事務層通過物理層的協(xié)議棧和更高級的軟件,并且soc的各種其他電路或包括該棧的其他半導體器件未示出。
現(xiàn)參考圖2,圖2示出了根據(jù)本發(fā)明的實施例的soc的框圖。正如圖2所示,soc200可以為用于實現(xiàn)到各種類型的平臺中的任何類型的soc,其范圍從相對小型的低功率便攜式設備(例如,智能電話、個人數(shù)字助理(pad)、平板電腦、上網本、超極本tm等)到可以在更高級別的系統(tǒng)中實現(xiàn)的更先進的soc。
正如在圖2中所示,soc200可以包括一個或多個核2100-210n。由此,在各種實施例中,多核soc是可能的,其中,所有核均可以為給定架構(例如,有序或無序處理器)的同質核。或者,可以存在異質核,例如,有序架構的例如一些相對小型的低功率核,附加的核呈現(xiàn)在可以具有更大和更復雜的架構(例如,無序架構)。協(xié)議棧能夠進行在這些核中的一個或多個與系統(tǒng)的其他部件之間的數(shù)據(jù)的通信。正如所看到的,所述??梢园ㄜ浖?15,其可以為更高級的軟件(例如,os)、固件以及在一個或多個核上執(zhí)行的應用級軟件。另外,協(xié)議棧包括事務層220和數(shù)據(jù)鏈路層230。在各種實施例中,這些事務層和數(shù)據(jù)鏈路層可以具有給定的通信協(xié)議,例如,pcietm協(xié)議。當然,不同協(xié)議棧(例如,根據(jù)通用串行總線(usb)協(xié)議棧)的層可以在其他實施例中呈現(xiàn)。同樣,在一些實施方式中,如本文所描述的低功率phy電路可以與現(xiàn)有的備用協(xié)議棧多路復用。
仍參考圖2,所述協(xié)議??梢岳^而耦合至物理單元240,所述物理單元240可以包括可以經由多個互連提供通信的多個物理單元。在一個實施例中,第一物理單元250可以為低功率phy單元,所述低功率phy單元在一個實施例中可以與根據(jù)mipi規(guī)范的m-phy相對應,用于經由主互連280提供通信。另外,可以呈現(xiàn)邊帶(sb)phy單元244。在所示出的實施例中,所述邊帶phy單元可以經由邊帶互連270提供通信,所述邊帶互連270可以是整合的邊帶,用于例如以比耦合至第一phy250的主互連280更小的數(shù)據(jù)率來提供某邊帶信息。在一些實施例中,協(xié)議棧的各種層可以具有耦合至所述sbphy244的單獨邊帶,以能夠進行沿該邊帶互連的通信。
另外,phy單元240可以進一步包括可以用于控制sbphy244的sb鏈路管理器242。另外,可以呈現(xiàn)鏈路訓練和狀態(tài)管理器245,并且可以用于使具有第一通信協(xié)議的協(xié)議棧適應于具有第二通信協(xié)議的第一phy250,以及提供對第一phy250和互連280的整體控制。
正如進一步可見的,各種部件可以呈現(xiàn)在第一phy250中。更具體地說,可以呈現(xiàn)傳輸器和接收器電路(即,tx253和rx254)。通常,所述電路可以用于執(zhí)行序列化操作、去序列化操作連同經由主互連280的數(shù)據(jù)的傳輸和接收。可以呈現(xiàn)保存狀態(tài)管理器251并且當?shù)谝籶hy250處于低功率狀態(tài)時,保存狀態(tài)管理器251可以用于保存關于第一phy250的配置和其他狀態(tài)信息。同樣,可以呈現(xiàn)編碼器252用于例如根據(jù)8b/10b協(xié)議來執(zhí)行線編碼。
正如圖2進一步可見的,可以呈現(xiàn)機械接口258。所述機械接口258可以為給定的互連,用于提供來自根復合體200的通信,并且更具體而言,用于經由主互連280提供來自/到第一phy250的通信。在各種實施例中,所述機械連接可以作為半導體設備的引腳(例如,球柵陣列(bga))或其他表面貼裝,或者通孔連接電鍍的。
除了這些主要的通信機制之外,附加的通信接口還可以作為經由單獨的棧耦合的低功率串行(lps)phy單元255,所述單獨的棧包括:軟件層216、事務層221、以及在核210與一個或多個片外設備260a-c之間的鏈路層231,所述一個或多個片外設備260a-c可以為各種低數(shù)據(jù)率的外圍設備,例如,傳感器、加速計、溫度傳感器、全球定位系統(tǒng)(gps)電路、羅盤電路、觸摸屏電路、鍵盤電路、鼠標電路等。
要注意的是,在各種實施例中,邊帶互連270和主互連280二者均可以在soc200和另一半導體部件(例如,另一ic,例如多邊帶無線電解決方案)之間耦合。
同樣當圖2的舉例說明處于相對高的級別時,變型是可能的。例如,可能提供多個低功率phy,用于例如經由多個信道來實現(xiàn)更高的數(shù)據(jù)通信率,其中,每一個信道均與獨立的phy相關聯(lián)。現(xiàn)參考圖3,圖3示出了根據(jù)本發(fā)明的另一實施例的物理單元的框圖。如圖3所示,物理單元300包括鏈路訓練和狀態(tài)管理器310。所述狀態(tài)管理器可以是如上所描述的,并且可以為邏輯的集合,所述邏輯集合用于實現(xiàn)第一通信協(xié)議的協(xié)議棧與第二通信協(xié)議(例如,不同通信協(xié)議)的物理單元的接口連接。
正如圖3進一步可見的,鏈路訓練和狀態(tài)管理器310可以與多個m-phy3200-320n通信。通過提供多于一個這樣的phy,可以發(fā)生更高的數(shù)據(jù)通信率。要注意的是,雖然圖3中示出的每一個m-phy可以包括用于使m-phy的單獨的、獨立的通信發(fā)生的一定數(shù)量的邏輯,但對這些不同m-phy的通信的整體控制可以是經由鏈路訓練和狀態(tài)管理器310的。同樣要理解,雖然圖3示出了多個m-phy,但在其他實施例中,可以呈現(xiàn)另一類型的多個phy單元,并且可以提供進一步多個異質phy單元。要注意的是,每一個m-phy單元均可以用作唯一的邏輯鏈路的部分或成組使用,其中,所述組與單個邏輯鏈路相關聯(lián)。每一個設備通??梢允褂脝蝹€邏輯鏈路,然而在一些實施例中,單個物理設備可以使用多個邏輯鏈路,例如用于提供多功能部件的不同功能的專用鏈路資源。
現(xiàn)參考圖4,圖4示出了根據(jù)本發(fā)明的實施例的示出了協(xié)議棧的進一步細節(jié)的框圖。如圖4所示,棧400包括各種層,所述各種層包括事務層410、數(shù)據(jù)鏈路層420和物理層430。如上所描述的,這些不同的層可以使用pcietm協(xié)議棧的常規(guī)的事務和數(shù)據(jù)鏈路部分或這樣的棧的修改版本二者之一被配置為調節(jié)所述第一通信協(xié)議的這些層和另一通信協(xié)議的物理層(在圖4的實施例中,可以為根據(jù)mipi規(guī)范的m-phy)之間的交互。
正如在圖4中關于信息從協(xié)議棧400傳輸?shù)膫鬏敺较蛩境龅?,到協(xié)議棧的傳入信息(例如,從soc的其他電路(例如,核或其他處理邏輯))在事務層的傳輸分組組裝器412中接收,所述傳輸分組組裝器412通常結合控制和數(shù)據(jù)通路用于形成tlp。在組裝到傳輸分組(在各種實施例中所述傳輸分組可以為具有例如1到4096字節(jié)(或更小的最大允許尺寸,例如,128或256)的數(shù)據(jù)分組)中之后,將所組裝的分組提供給流控制器414,所述流控制器414基于用于傳輸?shù)呐懦申犃械乃璧南乱籺lp的數(shù)量來確定是否有足夠的流控制信用可用并且控制分組注入到數(shù)據(jù)鏈路層420中。正如更具體地可見的,向這些注入的分組提供錯誤校驗器和定序器422,所述定序器422在一個實施例中可以生成tlp序列號和lcrc。正如進一步可見的,數(shù)據(jù)鏈路層420進一步包括傳輸消息機制426,所述傳輸消息機制426繼而生成用于鏈路管理功能的dllp并且所述傳輸消息機制426耦合至數(shù)據(jù)鏈路傳輸控制器425,所述數(shù)據(jù)傳輸控制器425為用于流控制和數(shù)據(jù)鏈路完整性(ack/nak)機制的控制器功能;要注意的是,可將其進行細分,使得可以使用獨特的邏輯塊來實現(xiàn)這些功能。
正如進一步可見的,將所處理的數(shù)據(jù)分組提供給重試緩沖器424,所述重試緩沖器424持有每一個tlp的復本直到由在鏈路的另一側的部件所確認,要注意的是,在實踐中,這可以利用對棧進行向上更高地緩沖(在匯編器412中或之上)來實現(xiàn),并且可以將它們存儲在相對應的實體中直到選擇它們用于經由數(shù)據(jù)/消息選擇器428而傳輸至物理層430。通常,以上所描述的事務和數(shù)據(jù)鏈路層可以根據(jù)常規(guī)的pcietm協(xié)議棧電路來操作,某些修改將在下面進一步描述。
相反,關于物理層430,該層的某些邏輯部件的許多更多的修改(例如,根據(jù)pcietm協(xié)議棧的修改)可以發(fā)生并且用于向另一通信協(xié)議的物理單元的實際物理部分提供接口連接。正如所看見的,可以將傳入分組應用于幀生成器432,所述幀生成器432添加物理層幀符號并且生成分組的幀并將它們提供給寬度/位置映射器434,所述寬度/位置映射器434在數(shù)據(jù)通路中對字節(jié)進行移位,用于生成外部傳輸所需的隊列,如果需要則調整數(shù)據(jù)通路寬度,并且繼而耦合至訓練器和跳轉定序器436,所述訓練器和跳轉定序器436可以用于執(zhí)行鏈路訓練和跳轉序列。正如所看見的,幀生成器432、訓練器/定序器436和數(shù)據(jù)/序列選擇器438全部均可以耦合至物理層傳輸控制器435,所述物理層傳輸控制器435為ltssm和相關邏輯的收發(fā)器部分。塊436為用于生成物理層傳輸(例如,訓練集(ts)和跳轉有序集)的邏輯。這樣,可以選擇成幀的分組并且將其提供給物理電路用于執(zhí)行與所處理的分組相對應的序列化信號的編碼、序列化和驅動到物理互聯(lián)上。在一個實施例中,在不同的通信協(xié)議之間的符號差異的映射可以在幀生成器432中執(zhí)行。
正如所看見的,可以為所述物理互連提供多個單獨的信道或線路。在示出的實施例中,每一個物理信道或線路均可以包括其自身獨立的phy單元傳輸電路4450-445j,在一個實施例中,所述獨立的phy單元傳輸電路4450-445j中的每一個均可以為根據(jù)mipi規(guī)范的m-phy單元的部分。如本文所描述的,不同于pcietm(在pcietm中傳輸器和接收器的數(shù)量相匹配),可以呈現(xiàn)不同數(shù)量的傳輸器和接收器。由此正如所看見的,每一個傳輸電路445均可以包括:根據(jù)8b/10b編碼來采取行動對符號進行編碼的編碼器;用于對已編碼的符號進行序列化的序列化器;以及用于將信號驅動到物理互連上的驅動器。正如進一步可見的,每一個線路或信道可以與邏輯單元4400-440j相關聯(lián),所述邏輯單元4400-440j可以為根據(jù)mipi規(guī)范的用于m-phy的邏輯電路,由此用于經由相對應的線路來管理物理通信。
要注意的是,所述多條線路可以被配置為以不同的比率工作,并且實施例可以包括不同數(shù)量的這樣的線路。此外,在傳輸和接收方向上可能具有不同數(shù)量的線路和線路速度。由此,雖然給定的邏輯單元440控制phy445的相對應的線路的操作,但要理解,物理層傳輸控制器435可以行動用于控制經由物理互連的信息的整體傳輸。要注意的是,在一些情況下,某個非?;镜墓δ苁怯膳c每一個線路相關聯(lián)的獨特的邏輯來執(zhí)行的;在可以將線路分配給多于一個的單個鏈路的情況下,可以提供多個ltssm實例;對于已訓練的鏈路,在每一個部件中均存在單個ltssm控制收發(fā)器和接收器側二者。所述整體控制可以包括功率控制、鏈路速度控制、鏈路寬度控制、初始化等。
仍參考圖4,經由物理互連所接收的傳入信息可以類似地經由物理層430、數(shù)據(jù)鏈路層420和事務層410的接收機制通過物理層430、數(shù)據(jù)鏈路層420和事務層410傳遞。在圖4所示的實施例中,每一個phy單元可以進一步包括接收電路,即接收電路4550-455k,在示出的實施例中,接收電路可以呈現(xiàn)用于物理鏈路的每一個線路。要注意的是,在該實施例中,接收器電路455和傳輸器電路445的數(shù)量不同。正如所看見的,所述物理電路可以包括用于接收傳入信息的輸入緩沖器;用于對信息進行去序列化的去序列化器;以及可以采取行動用于對在8b/10b編碼中傳輸?shù)姆栠M行解碼的解碼器。正如進一步可見的,每一個線路或信道可以與邏輯單元4500-450k相關聯(lián),所述邏輯單元4500-450k可以為根據(jù)給定的規(guī)范(例如,用于m-phy的mipi規(guī)范)的邏輯電路,用于由此經由相對應的線路來管理物理通信。
被解碼的符號繼而可以被提供給物理層430的邏輯部分,正如所看見的,所述物理層430的邏輯部分可以包括彈性緩沖器460,其中,所述彈性緩沖器調節(jié)該部件和在鏈路上的其他部件之間的時鐘差異;要注意的是,在各種實施方式中,所述彈性緩沖器的位置可以移動到例如位于8b/10b解碼器下方、或與線路去偏移緩沖器相組合以及用于存儲傳入的解碼符號。繼而可以將信息提供給寬度/位置映射器462,并且從所述寬度/位置映射器462到橫跨多線路執(zhí)行去偏移化的去偏移緩沖器464,并且在多線路的情況下,緩沖器464可以處理線路之間的信號偏移的差別,用于重排列字節(jié)。繼而,可以將去偏移的信息提供給幀處理器466,所述幀處理器466可以移除傳入信息中所呈現(xiàn)的幀。正如所看見的,物理層接收控制器465可以耦合至并且控制彈性緩沖器460、映射器462、去偏移緩沖器464和幀處理器466。
仍參考圖4,可以將重新獲得的分組提供給接收消息機制478和錯誤檢測器、序列檢查器和鏈路級重試(llr)請求器475二者。所述電路可以對傳入的分組執(zhí)行錯誤校正檢查,例如,經由執(zhí)行crc校驗和操作、執(zhí)行序列檢查以及請求對錯誤地接收的分組的鏈路級重試。接收消息機制478和錯誤檢測器/請求器475二者都可以在數(shù)據(jù)鏈路接收控制器480的控制下。
仍參考圖4,可以將由此在單元475中處理的分組提供給事務層410,并且更具體地提供給業(yè)務控制器485,所述業(yè)務控制器485對這些分組執(zhí)行流控制,用于將所述分組提供給分組解釋器495。分組解釋器495執(zhí)行對分組的解釋并將所述分組轉發(fā)至選擇的目的地(例如,接收器的給定的核或其他邏輯電路)上。雖然以如此高的級別示出了圖4的實施例,但是要理解,本發(fā)明的范圍不限于此。
要注意的是,phy440可以使用與由pcietm所支持的相同的8b/10b編碼以用于傳輸。8b/10b編碼方案提供了專用的符號,所述專用的符號與用于表示字符的數(shù)據(jù)符號截然不同。所述專用的符號可以用于在pcietm規(guī)范的物理層章節(jié)中描述的各種鏈路管理機制。由m-phy使用的附加的專用符號在mipim-phy規(guī)范中描述。實施例可以提供在pcietm和mipim-phy符號之間的映射。
現(xiàn)參考表1,表1示出了根據(jù)本發(fā)明的一個實施例的pcietm符號到m-phy符號的示例性映射。由此,該表示出了根據(jù)本發(fā)明的一個實施例的用于聚合的協(xié)議棧的專用符號的映射。
表1
8b/10b解碼規(guī)則與針對pcietm規(guī)范所定義的相同。8b/10b規(guī)則唯一的例外在于當檢測違反8b/10b規(guī)則的特定序列tailofburst時。根據(jù)各種實施例,物理層430可以在tailofburst期間向數(shù)據(jù)鏈路層420提供遇到的任何錯誤的通知。
在一個實施例中,符號到線路的成幀和應用可以如pcietm規(guī)范中所定義的,而數(shù)據(jù)擾頻可以與pcietm規(guī)范中定義的相同。然而,要注意的是,不對在根據(jù)mipi規(guī)范的通信的prepare(準備)階段中傳輸?shù)臄?shù)據(jù)符號進行擾頻。
關于鏈路初始化和訓練,鏈路管理器可以提供對如上所描述的包括線路的一個或多個信道的鏈路的配置和初始化;對標準數(shù)據(jù)傳送的支持;當從鏈路錯誤中恢復時對狀態(tài)轉變的支持;以及端口從低功率狀態(tài)重新啟動。
為了影響這樣的操作,以下的與物理和鏈路相關的特征可以為已知的先驗,例如,在初始化之前:phy參數(shù)(例如,包括初始鏈路速度和所支持的速度;以及初始的鏈路寬度和所支持的鏈路寬度)。
在一個實施例中,訓練可以包括各種操作。這樣的操作可以包括:以所配置的鏈路速度和寬度來對鏈路進行初始化、每條線路的位鎖定、每條線路的符號鎖定、多線路極性、以及多線路鏈路的線路到線路去偏移。這樣,訓練可以發(fā)現(xiàn)線路極性并且執(zhí)行相應的調整。然而,要注意的是,根據(jù)本發(fā)明的實施例的鏈路訓練可以不包括鏈路數(shù)據(jù)率和寬度協(xié)商、鏈路速度和寬度退化。與以上所描述的基于鏈路的初始化不同,兩個實體先驗知道初始的鏈路寬度和速度,并且由此,可以避免與協(xié)商相關聯(lián)的時間和計算的代價。
pcietm有序集可以與以下的修改一起使用:ts1和ts2有序集可以有助于ip再使用,但忽略了訓練有序集的許多字段。同樣,不使用快速訓練序列??梢员A綦娍臻e有序集(eios)以有助于ip再使用,正如跳轉os,但跳轉os的頻率可以是與根據(jù)pcietm規(guī)范不同的比率。還要注意的是,數(shù)據(jù)流有序集和符號可以與根據(jù)pcietm規(guī)范的數(shù)據(jù)流有序集和符號相同。
傳送下面的事件以有助于鏈路訓練和管理:(1)呈現(xiàn)技術,其可以用于指示活動phy呈現(xiàn)在鏈路的遠端上;以及(2)配置就緒,觸發(fā)配置就緒以指示phy參數(shù)配置完成以及phy準備好在配置的剖面處工作。在一個實施例中,這樣的信息可以根據(jù)本發(fā)明的實施例經由整合的邊帶信號來進行傳送。
出于對電空閑的狀況的控制的目的,phy具有tailofburst序列,其用于指示傳輸器進入到電空閑狀態(tài)中。在一個實施例中,邊帶信道可以用于信號退出電空閑。要注意的是,所述指示可以為phy靜噪打破機制的補充。符號的opens序列可以作為eios傳輸,用于指示進入到電空閑狀態(tài)中。
在一些實施例中,未定義快速訓練序列(fts)。相反,phy可以使用特定的物理層序列,用于從停止/休眠狀態(tài)退出至突發(fā)狀態(tài),所述突發(fā)狀態(tài)可以用于對位鎖定、符號鎖定和線路到線路去偏移進行尋址??梢詫⑸倭康膄ts定義為魯棒性的符號序列。數(shù)據(jù)流的有序集的開始可以根據(jù)pcietm規(guī)范,正如鏈路錯誤恢復一樣。
關于鏈路數(shù)據(jù)比率,在各種實施例中,鏈路以其進行初始化的初始數(shù)據(jù)率可以為預定的數(shù)據(jù)率。不同于所述初始鏈路速度的數(shù)據(jù)率改變可以通過經歷恢復狀態(tài)而發(fā)生。實施例可以支持不對稱的鏈路數(shù)據(jù)率,其中,允許所述數(shù)據(jù)率在相反方向上不同。
在一個實施例中,所支持的鏈路寬度可以是根據(jù)pcietm規(guī)范的鏈路寬度。進一步地,如上所描述的,當鏈路寬度是預定的時,實施例不可以支持用于協(xié)商鏈路寬度的協(xié)議,并且因此可以簡化鏈路訓練。當然,實施例可以為在相反方向中的非對稱鏈路寬度提供支持。同時,被配置用于所述鏈路的每一個方向的初始化的鏈路寬度和初始化的數(shù)據(jù)率可以是在訓練開始之前已知的先驗。
關于phy單元的物理端口,不需要xn端口形成xn鏈路以及x1鏈路(其中,n可以為32、16、12、8、4和1)的功能并且xn端口用于在n和1之間形成任何鏈路寬度的xn端口的功能是可選的。該行為的示例包括x16端口,所述x16端口僅可以配置到僅一個鏈路中,但鏈路的寬度可以被配置為x12、x8、x4、x2以及x16和x1所需的寬度。同樣,使用根據(jù)本發(fā)明的實施例的協(xié)議棧來尋求實現(xiàn)設備的設計師可以以允許兩個不同部件滿足以上要求的方式來連接所述兩個不同部件之間的端口。如果在部件之間的端口以不符合于由部件的端口描述/數(shù)據(jù)表所定義的想要使用的方式連接,則行為是未定義的。
另外,不禁止用于將端口分離為兩個或更多鏈路的功能。如果這樣的支持適合于給定的設計,則端口可以被配置為在訓練期間支持特定寬度。該行為的示例可以為x16端口,所述x16端口能夠配置兩個x8鏈路,四個x4鏈路或16個x1鏈路。
當使用8b/10b編碼時,由于有序集同時在所配置的鏈路的所有線路上傳輸,因此在訓練序列或skp有序集期間,正如在pcietm規(guī)范中的,明確的線路到線路去偏移機制為所接收的有序集的com符號。在hs-burst的同步序列期間,所傳輸?shù)膍k0符號可以用于線路-線路去偏移。
正如上面關于圖4所簡略描述的,鏈路訓練和狀態(tài)管理器可以被配置用于執(zhí)行各種操作,包括使pcietm協(xié)議棧的上層適應于不同協(xié)議的更低層的phy單元。此外,所述鏈路管理器可以配置和管理單個線路或多條線路并且可以包括:對非對稱鏈路帶寬、具有pcietm事務和數(shù)據(jù)鏈路層的狀態(tài)機的兼容性、鏈路訓練、可選的非對稱鏈路停止狀態(tài)的支持,以及對用于魯棒性通信的邊帶信號的控制。因此,實施例提供了實現(xiàn)具有有限修改的pcietm事務和數(shù)據(jù)鏈路層,用于占用不同的鏈路速度和非對稱鏈路。此外,使用根據(jù)本發(fā)明的實施例的鏈路管理器,可以實現(xiàn)對多線路、非對稱鏈路配置、邊帶整合和動態(tài)帶寬擴展性的支持,同時進一步能夠實現(xiàn)在不同的通信協(xié)議的層之間的橋接。
現(xiàn)參考圖5,圖5示出了根據(jù)本發(fā)明的實施例的可以為鏈路管理器的部分的鏈路訓練狀態(tài)機的狀態(tài)圖500。如圖5所示,鏈路訓練可以在檢測狀態(tài)510下開始。所述狀態(tài)在上電復位上發(fā)生并且適用于上行端口和下行端口二者。在重置完成之后,所有配置的線路可以轉換為給定狀態(tài)(即,hibern8狀態(tài)),基于該狀態(tài),鏈路的每一端均可以例如使用邊帶信道經由presence信號來發(fā)信號。要注意的是,在該檢測狀態(tài)下,高阻抗信號(即dif-z信號)可以在所有線路上驅動。
由此,當發(fā)出presence事件信號并且接收presence事件時,控制從檢測狀態(tài)510轉至配置狀態(tài)520,并且所述高阻抗在所有配置的線路上驅動。在配置狀態(tài)520中,可以配置phy參數(shù),并且基于鏈路的每一端的所有配置線路的完成,可以例如使用邊帶互連來指示配置就緒信號(cfg-rdy),而高阻抗則保持在所有線路上。
由此,基于經由邊帶互連對該配置就緒指示的發(fā)送和接收,控制變化為停止狀態(tài)530。即在該l0.stall狀態(tài)中,phy轉換為stall狀態(tài)并且繼續(xù)在所有配置的線路上驅動高阻抗。正如所看見的,取決于數(shù)據(jù)對于傳輸或接收是否是可用的,控制可以轉至活動狀態(tài)l1(狀態(tài)530)、低功率狀態(tài)(l1狀態(tài)540)、更深層次的低功率狀態(tài)(l1.off狀態(tài)545)或回到配置狀態(tài)520。
由此,在stall狀態(tài)下,負驅動信號dif-n可以在所有配置的線路上進行傳輸。那么,當由啟動器指示時,burst序列可以開始。因此,在傳輸marker0(mk0)符號之后,控制轉至活動狀態(tài)530。
在一個實施例中,接收器可以檢測從所有配置的線路上的stall狀態(tài)退出并且根據(jù)例如mipi規(guī)范來執(zhí)行位鎖定和符號鎖定。在具有多線路鏈路的實施例中,所述mk0符號可以用于建立線路到線路去偏移。
相反,當指示低功率狀態(tài)(即l1狀態(tài)540)時,所有配置的線路可以轉換為sleep(休眠)狀態(tài)。繼而當指向更深層次的低功率狀態(tài)(即l1.off狀態(tài)545)時,所有配置的線路可以轉換為hibern8狀態(tài)。最后,當指回配置狀態(tài)時,類似地所有配置的線路轉換為hibern8狀態(tài)。
仍參考圖5,對于活動數(shù)據(jù)傳送,由此控制轉至活動狀態(tài)550。具體而言,該狀態(tài)為鏈路和事務層使用數(shù)據(jù)鏈路層分組(dllp)和tlp開始交換信息的狀態(tài)。同樣,可以發(fā)生負載傳送并且在這樣的傳送結束時,可以傳遞tailofburst符號。
正如所看見的,控制可以從該活動狀態(tài)變化回到stall狀態(tài)530、到恢復狀態(tài)560(例如,響應于接收器錯誤或否則當指示時),或到更深層次的低功率(例如,l2)狀態(tài)570。
為了回到停止狀態(tài),傳輸器可以在所有配置的線路上發(fā)送由tailofburst指示跟隨的eios序列。
如果發(fā)生錯誤或正如所指示的,控制還可以轉至恢復狀態(tài)560。此時,朝向恢復的轉換使在兩個方向上的所有配置的線路進入到stall狀態(tài)。為了達到該目的,可以在邊帶互連上發(fā)送gotostall信號并且所述信號的傳輸器可以等待響應。當已經發(fā)送并且接收該停止信號時,正如由在邊帶互連上所接收的gotostall指示所指示的,控制變化回到stall狀態(tài)530。注意的是,由此所述恢復狀態(tài)使用邊帶來建立協(xié)議,從而將同步項協(xié)調為stall狀態(tài)。
關于低功率狀態(tài)l1和l1.off,操作是根據(jù)狀態(tài)540和545的。具體而言,控制從stall狀態(tài)轉至l1更低功率狀態(tài)540,使得phy可以被放置于sleep狀態(tài)中。在該狀態(tài)下,負驅動信號(即,dif-n信號)可以在所有配置的線路上驅動。當指示退出該狀態(tài)時,控制例如經由通過邊帶互連對presence信號的信號發(fā)送變化回到stall狀態(tài)530。
同樣,正如所看見的,當已經滿足了所有l(wèi)1.off條件時,可以進入更深層次的低狀態(tài)l1.off。在一個實施例中,這些條件可以包括完全地功率門控或關閉phy單元的電源。在所述更深層次的低功率狀態(tài)下,可以將phy放置于hibern8狀態(tài),并且在所有配置的線路上驅動高阻抗信號。為了退出該狀態(tài),經由在所有配置的線路上對dif-n的驅動,控制可以變化回到stall狀態(tài)。
如圖5中進一步可見的,可以呈現(xiàn)附加狀態(tài),即更進一步的更深層次的低功率狀態(tài)(l2)570,當準備關閉電源時,可以從活動狀態(tài)進入更進一步的更深層次的低功率狀態(tài)(l2)570。在一個實施例中,所述狀態(tài)可以與pcietm規(guī)范的狀態(tài)相同。
現(xiàn)參考表2,表2示出了根據(jù)pcietm規(guī)范的ltssm狀態(tài)和根據(jù)本發(fā)明的實施例的相對應的m-phy狀態(tài)之間的映射。
表2
如上關于圖2所描述的,實施例提供了可以用于鏈路管理以及可選的帶內支持的整合的邊帶機制。這樣,使用邊帶電路和互連,鏈路管理和控制可以獨立于主互連的物理層的更高速度(和更大功耗)的電路而發(fā)生。進一步以這種方式,當與主互連相關聯(lián)的phy單元的部分斷電時,可以使用所述邊帶信道,從而能夠降低功耗。同樣,在訓練主互連之前,可以使用所述整合的邊帶機制,并且當在主互連上出現(xiàn)故障時也可以使用所述整合的邊帶機制。
更進一步地,經由所述整合的邊帶機制,可以呈現(xiàn)單個互連(例如,在每一個方向上的差分線對),從而減少引腳數(shù)并且能夠實現(xiàn)新功能的增加二者。實施例還可以實現(xiàn)更快和更魯棒的時鐘/功率門控并且可以消除常規(guī)的協(xié)議(例如,使用該鏈路的pcietm邊帶機制)中的歧義。
雖然本發(fā)明的范圍不限于此,但在不同的實施例中,邊帶互連(例如,圖2的邊帶互連270)可以被實現(xiàn)為單線雙向邊帶信號、雙線雙向的單向信號集、低速帶內信號機制(例如,在低功率脈寬調制(pwm)模式下使用m-phy可用的),或者正如帶內高速信令機制(例如,物理層有序集或dllp)。
作為示例并且不出于限制的目的,可以支持各種物理層方法。第一方法可以為當使用邊帶互連時,提供最少引腳數(shù)的單線雙向邊帶信號。在一些實施例中,所述信號在現(xiàn)有的邊帶上可以為多路復用的,例如,perst#、wake#或clkreq信號。第二方法可以為雙線雙向單向信號集,與單線方法相比,其可能更簡單并更有效,但要以附加的引腳為代價。這樣的實施方式在現(xiàn)有的邊帶上可以為多路復用的,例如,用于主機設備的perst#和用于設備主機的clkreq#(在該示例中,保持了現(xiàn)有信號的方向性,從而簡化了雙模態(tài)實現(xiàn))。第三方法可以為低速帶內信號機制,例如m-phylspwm模式,其減少了與邊帶機制相關的引腳數(shù),并且仍然可以支持類似的低功率等級。因為該操作的模式與高速操作互相排斥,所以其可以與高速帶內機制組合(例如,物理層有序集或dllp)。然而,該方法并非是低功率的,它利用現(xiàn)有的高速io來使通用性最大化。當與低速帶內信號相組合時,該方法可以提供良好的低功率解決方案。
為了在給定的系統(tǒng)中實現(xiàn)這些配置的一個或多個配置,可以提供語義層,其可以用于確定在物理層以及策略層之上交換的信息的意義,所述意義可以用于理解設備/平臺級的作用/反作用。在一個實施例中,可以在sbphy單元中呈現(xiàn)這些層。
通過提供分層的方法,實施例允許可以包括邊帶功能(由于簡單性和/或低功率操作,在某些實現(xiàn)中可以優(yōu)選邊帶功能)和帶內(在其他實現(xiàn)(例如,避免對附加引腳數(shù)的需要)中可以優(yōu)選帶內)二者的不同物理層實現(xiàn)。
在一個實施例中,許多邊帶信號可以例如經由語義層被配置到單個分組中,以用于經由整合的邊帶機制(或帶內機制)來進行通信。在一個實施例中,下面的表3示出了可以呈現(xiàn)在一個實施例中的各種信號。在示出的表中,信號的邏輯方向由箭頭示出,其中,向上箭頭定義為朝向主機(例如,根復合體)的方向,并且向下箭頭定義為朝向設備(例如,外圍設備(例如,無線電解決方案))的方向。
表3
設備呈現(xiàn)↑
電源正?!?/p>
電源關閉↓
參考時鐘正常↓
基本重置↓
配置就緒↑↓
準備訓練↑↓
開始訓練↑↓
l1pg請求↑↓
l1pg拒絕↑↓
l1pg授權↑↓
obffcpu活動↓
obffdma↓
obff空閑↓
喚醒↑
握手的確認接收↑↓
現(xiàn)參考圖6,圖6示出了根據(jù)本發(fā)明的實施例的邊帶機制的各種狀態(tài)的流程圖。如圖6所示,這些各種狀態(tài)可以是關于根復合體(例如,主機控制操作)的。狀態(tài)圖600可以經由主機提供對各種狀態(tài)的控制。正如所看見的,操作始于可以傳遞存在信號的預啟動狀態(tài)610。要注意的是,所述存在信號可以是上面描述的關于鏈路管理操作的。接著,控制轉至可以傳遞各種信號的啟動狀態(tài)620,所述各種信號即電源正常信號、重置信號、參考時鐘狀態(tài)信號和準備訓練信號。要注意的是,所有這些信號均可以經由單個分組傳遞,其中,這些信號中的每一個都可以與分組的指示符或字段(例如,分組的一位指示符)相對應。
仍參考圖6,控制接下來轉至活動狀態(tài)630,在活動狀態(tài)630中,系統(tǒng)可以處于活動狀態(tài)(例如,s0),相對應的設備(例如,下游設備)可以處于活動設備狀態(tài)(例如,d0),并且鏈路可以處于活動狀態(tài)、停止或低功率狀態(tài)(例如,l0、l0s、或l1)。正如所看見的,在該狀態(tài)下,可以傳遞各種信號,包括:obff信號、時鐘請求信號、參考時鐘信號、請求l0信號和準備訓練信號。
接下來,例如在執(zhí)行了以上信號之后,控制可以轉至低功率狀態(tài)640。正如所看見的,在所述低功率狀態(tài)640中,系統(tǒng)可以處于活動狀態(tài),而設備可以處于相對低延遲低功率狀態(tài)(例如,d3熱)。另外,鏈路可以處于給定的低功率狀態(tài)(例如,l2或l3)。正如在這些狀態(tài)中所看見的,經由整合的邊帶分組傳遞的信號可以包括:喚醒信號、重置信號和電源正常信號。
隨著系統(tǒng)進入到更深層次的低功率狀態(tài),可以進入第二低功率狀態(tài)650(例如,當系統(tǒng)處于s0狀態(tài)并且設備處于d3冷狀態(tài),而鏈路類似地處于l2或l3狀態(tài)時)。正如所看見的,可以傳遞相同的喚醒、重置和電源正常信號。同樣在圖6中可見的,相同的信號可以發(fā)生在更深層次的低功率狀態(tài)660(例如,系統(tǒng)低功率狀態(tài),s3)和設備低功率狀態(tài)(例如,d3冷)以及相同的鏈路低功率狀態(tài)l2和l3中。雖然示出了所傳遞的特定的邊帶信息集,但是要理解本發(fā)明的范圍不限于此。
由此,實施例提供了具有可擴展性的分層結構,所述分層結構可以平衡簡單性和低延時與靈活性。這樣,可以利用更少的信號來替換現(xiàn)有的邊帶信號和附加的邊帶信號,并且在未增加更多引腳的條件下實現(xiàn)邊帶機制的未來擴展。
現(xiàn)參考圖7,圖7示出了根據(jù)本發(fā)明的實施例的方法的流程圖。如圖7所示,方法700可以用于經由聚合的協(xié)議棧來傳遞數(shù)據(jù),所述聚合的協(xié)議棧包括一個通信協(xié)議的上層和下層(例如,不同通信協(xié)議的物理層)。在示出的示例中,假設聚合的協(xié)議棧如上所述,即,具有pcietm協(xié)議的上面的事務和數(shù)據(jù)鏈路層和不同規(guī)范(例如,mipi規(guī)范)的物理層。當然,還可以呈現(xiàn)附加的邏輯,用于使所述兩種通信協(xié)議能夠聚合到單個協(xié)議棧中,例如,以上關于圖4所論述的邏輯和電路。
正如圖7中所看見的,方法700可以始于在第一通信協(xié)議的協(xié)議棧中接收第一事務(框710)。例如,根復合體(例如,核、其他執(zhí)行引擎等)的各種邏輯嘗試向另一設備發(fā)送信息。因此,該信息可以轉至事務層。正如所看見的,控制轉至框720,其中,可以處理事務并且將其提供給第二通信協(xié)議的phy的邏輯部分。所述處理可以包括以上所論述的關于圖4的流程的各種操作,其中,可以發(fā)生用于接收數(shù)據(jù)、執(zhí)行流控制、鏈路操作、分組操作等的不同的操作。另外,可以發(fā)生用于向phy提供數(shù)據(jù)鏈路層分組的各種操作。接著,控制轉至框730,其中,所述第一事務可以在phy的邏輯部分中轉變?yōu)榈诙袷绞聞?。例如,可以?zhí)行符號的任何轉化(如需要)。另外,可以發(fā)生各種轉換操作,完成各種轉換操作以用于由此使事務變?yōu)橛糜谠阪溌飞蟼鬏數(shù)母袷?。因此,控制可以轉至框740,其中,所述第二格式化的事務可以經由鏈路從phy傳遞到設備。作為示例,在線編碼、序列化等之后,第二格式事務可以為序列化的數(shù)據(jù)。雖然如此高的級別示出了圖7的實施例,但是要理解本發(fā)明的范圍不限于此。
現(xiàn)參考圖8,圖8示出了根據(jù)本發(fā)明的實施例的存在于計算機系統(tǒng)中的部件的框圖。如圖8所示,系統(tǒng)800可以包括許多不同的部件。這些部件可以被實現(xiàn)為ic、其部分、分立的電子器件或適應于電路板(例如,計算機系統(tǒng)的主板或可插入卡)的其他模塊,或如并入到計算機系統(tǒng)的底盤內的部件。還要注意的是,圖8的框圖是要示出計算機系統(tǒng)的許多部件的高級視圖。然而,要理解的是,附加的部件可以呈現(xiàn)在某些實現(xiàn)中,并且此外,所示出的部件的不同布置可以在其他實現(xiàn)中發(fā)生。
正如圖8中所看見的,可以為低功率多核處理器插槽(例如,超低壓處理器)的處理器810可以用作主處理單元和中央樞紐,用于與系統(tǒng)的各種部件進行通信。這樣的處理器可以被實現(xiàn)為soc。在一個實施例中,處理器810可以為基于
處理器810可以與系統(tǒng)存儲器815進行通信,在實施例中,這可以經由多個存儲設備實現(xiàn)為提供給定數(shù)量的系統(tǒng)存儲器。作為示例,存儲器可以根據(jù)基于聯(lián)合電子裝置工程委員會(jedec)低功率雙倍數(shù)據(jù)率(lpddr)的設計,例如,根據(jù)jedecjesd209-2e(發(fā)布于2009年4月)的現(xiàn)行l(wèi)pddr2標準、或稱為lpddr3的新一代lpddr標準,所述lpddr3將提供對lpddr2的擴展用于增加帶寬。作為示例,可以呈現(xiàn)2/4/8千兆字節(jié)(gb)的系統(tǒng)存儲器并且可以經由一個或多個存儲器互連將其耦合至處理器810。在各種實現(xiàn)中,獨立的存儲設備可以具有不同的分組類型,例如,單個管芯封裝(sdp)、雙管芯封裝(ddp)或四管芯封裝(qdp)。在一些實施例中,這些設備可以直接焊接到主板上,用于提供更低剖面的解決方案,而在其他實施例中,設備可以被配置為可以相繼通過給定的連接器耦合至主板的一個或多個存儲模塊。
為了提供信息(例如,數(shù)據(jù)、應用、一個或多個操作系統(tǒng)等)的永久存儲,大容量存儲裝置820還可以耦合至處理器810。在各種實施例中,為了實現(xiàn)更薄和更輕的系統(tǒng)設計以及為了改進系統(tǒng)的響應性,可以經由ssd來實現(xiàn)所述大容量存儲裝置。然而,在其他實施例中,所述大容量存儲裝置主要可以實現(xiàn)為使用硬盤驅動器(hdd)利用更少數(shù)量的ssd存儲裝置作為ssd緩存,以使得在電源關閉事件期間能夠實現(xiàn)上下文狀態(tài)和其他這樣的信息的非易失性存儲,從而可以在系統(tǒng)活動的重新初始化時發(fā)生快速上電。如圖8所示,閃存設備822可以例如經由串行外圍接口(spi),耦合至處理器810。所述閃存設備可以提供系統(tǒng)軟件的非易失性存儲,包括:系統(tǒng)的基本輸入/輸出軟件(bios)以及其他固件。
各種輸入/輸出(io)設備可以呈現(xiàn)在系統(tǒng)800內。在圖8的實施例中具體示出了顯示器824,所述顯示器824可以為配置在底盤的蓋子部分內的高清lcd或led面板。所述顯示面板還可以提供觸摸屏825,例如,適應地外置在顯示面板上,使得能夠經由與觸摸屏進行用戶的交互,可以將用戶輸入提供至系統(tǒng)以能夠實現(xiàn)預期的操作,例如,關于信息的顯示、信息的訪問等。在一個實施例中,顯示器824可以經由顯示器互連耦合至處理器810,所述顯示器互連可以被實現(xiàn)為高性能的圖形互連。觸摸屏825可以經由另一互連耦合至處理器810,在實施例中所述另一互連可以為i2c互連。如圖8所進一步示出的,除了觸摸屏825之外,以觸摸的方式的用戶輸入還可以經由觸摸板830發(fā)生,所述觸摸板830可以配置在底盤內并且還可以耦合至與觸摸屏825相同的i2c互連。
出于感知計算和其他目的,各種傳感器可以呈現(xiàn)在系統(tǒng)內并且可以以不同的方式耦合至處理器810。某些慣性傳感器和環(huán)境傳感器可以通過傳感器中樞840(例如,經由i2c互連)耦合至處理器810。在圖8所示的實施例中,這些傳感器可以包括加速計841、環(huán)境光傳感器(als)842、羅盤843和陀螺儀844。在一個實施例中,其他環(huán)境傳感器可以包括一個或多個熱傳感器846,所述一個或多個熱傳感器846可以經由系統(tǒng)管理總線(smbus)總線耦合至處理器810。還要理解的是,一個或多個傳感器可以根據(jù)本發(fā)明的實施例經由lps鏈路耦合至處理器810。
仍如圖8可見的,各種外圍設備可以經由低引腳數(shù)(lpc)互連耦合至處理器810。在示出的實施例中,各種部件可以通過嵌入式控制器835相耦合。這樣的部件可以包括鍵盤836(例如,經由ps2接口耦合)、風扇837以及熱傳感器839。在一些實施例中,觸摸板830還可以經由ps2接口耦合至ec835。另外,安全處理器(例如,可信平臺模塊(tpm)838)(例如,根據(jù)可信的計算組(tcg)tpm規(guī)范版本1.2(2003年10月2日)的)還可以經由所述lpc互連耦合至處理器810。
系統(tǒng)800可以以各種方式(包括無線地)與外部設備進行通信。在圖8所示的實施例中,呈現(xiàn)了各種無線模塊,所述各種無線模塊中的每一個均可以與被配置用于特定的無線通信協(xié)議的無線電相對應。短距離的無線通信的一種方式(例如,近場)可以是經由近場通信(nfc)單元845的,在一個實施例中,所述近場通信(nfc)單元845可以經由smbus與處理器810進行通信。要注意的是,經由所述nfc單元845相互靠近的設備可以進行通信。例如,用戶可以經由將兩個設備調整為靠近的關系并且能夠進行信息(例如,識別信息、支付信息)、數(shù)據(jù)(例如,圖像數(shù)據(jù))等的傳送,使系統(tǒng)800能夠與另一(例如)便攜式設備(例如用戶的智能電話)進行通信。還可以使用nfc系統(tǒng)來執(zhí)行無線電力傳送。
如圖8進一步可見的,附加的無線單元可以包括其他短距離無線引擎,所述其他短距離無線引擎包括wlan單元850和藍牙單元852。使用wlan單元850,可以實現(xiàn)根據(jù)給定的電氣與電子工程師協(xié)會(ieee)802.1標準的wi-fitm通信,而經由藍牙單元852,經由藍牙協(xié)議的短距離通信可以發(fā)生。這些單元可以經由例如usb鏈路或通用異步收發(fā)傳輸器(uart)鏈路,與處理器810通信?;蛘?,所述單元可以經由互連經由低功率互連(例如,正如本文所描述的聚合的pcie/mipi互連),或另一這樣的協(xié)議(例如,串行數(shù)據(jù)輸入/輸出(sdio)標準)耦合至處理器810。當然,在這些外圍設備(可以配置在一個或多個插入卡上)之間的實際物理連接,可以作為適應于主板的ngff連接器。
另外,無線廣域通信(例如,根據(jù)蜂窩或其他無線廣域協(xié)議)可以經由wwan單元856發(fā)生,所述wwan單元856可以繼而耦合至用戶識別模塊(sim)857。另外,為了能夠進行位置信息的接收和使用,還可以呈現(xiàn)gps模塊855。要注意的是,在圖8所示的實施例中,wwan單元856和集成捕捉設備(例如,攝像頭模塊854)可以經由給定的usb協(xié)議(例如,usb2.0或3.0鏈路或uart或i2c協(xié)議)來進行通信。同樣,這些單元的實際物理連接可以是經由ngff內插卡對配置在主板上的ngff連接器的適配的。
為了提供音頻輸入和輸出,音頻處理器可以經由數(shù)字信號處理器(dsp)860來實現(xiàn),所述dsp860可以經由高清晰度音頻(had)鏈路耦合至處理器810。同樣,dsp860可以與集成的編碼器/解碼器(codec)和擴音器862進行通信,所述集成編碼器/解碼器(codec)和擴音器862可以相繼耦合至可以在底盤內實現(xiàn)的輸出揚聲器863。同樣,擴音器和codec862可以相耦合用于從麥克風865接收音頻輸入,在實施例中,所述麥克風865可以經由雙陣列麥克風實現(xiàn),用于提供高品質的音頻輸入,以能夠進行對系統(tǒng)內的各種操作的聲控控制。還要注意的是,音頻輸出還可以從擴音器codec862提供至耳機插孔864。
由此,實施例可以用于許多不同的環(huán)境?,F(xiàn)參考圖9,圖9示出了可以與實施例一起使用的示例系統(tǒng)900的框圖。正如所看見的,系統(tǒng)900可以為智能電話或其他無線通信器。如圖9的框圖所示,系統(tǒng)900可以包括基帶處理器910,所述基帶處理器910可以為可以管理基帶處理任務和應用處理二者的多核處理器。由此,基帶處理器910可以執(zhí)行關于通信的各種信號處理,以及執(zhí)行針對設備的計算操作。繼而,基帶處理器910可以耦合至用戶界面/顯示器920,所述用戶界面/顯示器920在一些實施例中可以通過觸屏顯示器來實現(xiàn)。另外,基帶處理器910可以耦合至存儲系統(tǒng),所述存儲系統(tǒng)包括圖9的實施例中的非易失性存儲器(即,閃速存儲器930)和系統(tǒng)存儲器(即,動態(tài)隨機訪問存儲器(dram)935)。如進一步可見的,基帶處理器910可以進一步耦合至捕捉設備940(例如,可以記錄視頻和/或靜態(tài)圖像的圖像捕捉設備)。
為了能夠進行通信的傳輸和接收,各種電路可以耦合在基帶處理器910和天線980之間。具體地說,可以呈現(xiàn)射頻(rf)收發(fā)器970和無線局域網(wlan)收發(fā)器975。通常,rf收發(fā)器970可以用于根據(jù)給定的無線通信協(xié)議(例如,3g或4g無線通信協(xié)議(例如,根據(jù)碼分多址(cdma)、全球移動通信系統(tǒng)(gsm)、長期演進(lte)或其他協(xié)議))來接收和傳輸無線數(shù)據(jù)和呼叫。還可以提供其他無線通信,例如,無線電信號(例如,am/fm或全球定位衛(wèi)星(gps)信號)的接收或傳輸。另外,本地無線信號(例如,根據(jù)藍牙tm標準或ieee802.11標準(例如,802.11a/b/g/n))還可以經由wlan收發(fā)器975來實現(xiàn)。要注意的是,在基帶處理器910和收發(fā)器970與975中的一個或兩者之間的鏈路可以是經由低功率聚合互連的,所述低功率聚合互連將pcietm互連和低功率互連(例如,mipi互連)的功能相結合并且進行映射。雖然以如此高的級別示出了圖9的實施例,但要理解本發(fā)明的范圍不限于此。
與普遍使用的互連(例如,pcietm,在pcietm中,鏈路操作模式(例如,寬度和速度)在鏈路訓練期間是進行協(xié)商的)相比,實施例不執(zhí)行這樣的協(xié)商。因為pcietm協(xié)議是基于協(xié)商的,所以鏈路確定所支持的操作的最通用的模式并且接著在該模式下操作鏈路。當鏈路支持非對稱的線路和速度時,這變得更加復雜。
相反,實施例提供了架構協(xié)議,用于動態(tài)地改變鏈路操作模式,這可在運行時期間完成并且不會使鏈路進入鏈路斷開狀態(tài)。根據(jù)所述架構協(xié)議,在初始化期間,在鏈路的另一端上發(fā)現(xiàn)了由代理所支持的操作的鏈路模式;然后,軟件或硬件可以確定操作的最常用的模式;當操作的鏈路模式將改變時,在鏈路的兩端的代理交換消息用于請求并且應答操作的模式改變。要注意的是簡化了鏈路再訓練,這是因為傳遞了準確的參數(shù),使得鏈路的兩端均能精確地知道用于操作鏈路的新參數(shù)。
如上所論述的,在一些實施例中,在鏈路兩側之一上的物理層均可以為m-phy。在這樣的實施例中,所述鏈路可以包括承載差分脈沖寬度調制(pwm)信號的串行線。經由鏈路傳遞的所述差分pwm信號可以位于m-phy規(guī)范的一個或多個數(shù)據(jù)率范圍(稱為“gear”)內。例如,鏈路可以在gear1(3兆位(mbps)每秒到9mbps)、gear2(6mbps到18mbps)、gear3(12mbps到36mbps)、gear4(24mbps到72mbps)、gear5(48mbps到144mbps)、gear6(96mbps到288mbps)、gear7(192mbps到576mbps)等下工作。使用本發(fā)明的實施例,可以發(fā)生動態(tài)的鏈路重配置,從而以這些范圍(或其他范圍)中所選的一個工作。
實施例支持動態(tài)鏈路帶寬改變,從而使鏈路的兩端均同意改變鏈路參數(shù),以支持新帶寬。存在兩種鏈路配置情景:上電復位之后或根據(jù)鏈路斷開狀態(tài)的鏈路初始配置;以及在不經歷鏈路斷開的情況下鏈路的運行時重配置。鏈路初始配置利用操作的ls模式,在設施ls模式中,僅使用單個線路(例如,線路0)。在一些實施例中,鏈路重配置是可選的并且可以在對鏈路的正常操作期間啟動。
針對重配置,鏈路的兩端均可以被設置用于重配置觸發(fā)器(rct),并且其僅應用于能夠進行rct的那些寄存器。高層的協(xié)議握手機制可以用于讀取和寫入離線寄存器并且設置rct。在實施例中,當所有活動線路都進入save狀態(tài)時,rct被觸發(fā)。要注意的是,phy離線寄存器可以由軟件直接寫入或由硬件隱式地寫入(協(xié)議級握手完成)。當配置改變時(例如,發(fā)生寬度或速度改變),則啟動改變的代理請求配置改變。
圖10的示例示出了啟動重配置請求的端口a和由端口b對所啟動的請求的確認,隨后在所有線路上進入到恢復以及到stall狀態(tài)。觸發(fā)了rct,并且新的配置設置生效。在某些實施例中,可以存在兩個截然不同的方法用于獲得重配置:使用數(shù)據(jù)鏈路層分組(dllp)和使用訓練序列。
正如在圖10中所看見的,可以具有第一設備(例如,上行設備)的phy單元的端口a經由物理鏈路與第二設備(其可以為下行設備)的端口b進行通信。正如所看見的,在活動鏈路狀態(tài)(例如,l0)中,端口a可以將多個dllp(即,帶寬改變請求dllp)傳遞給端口b。
響應于這樣的分組,端口b可以經由其phy單元,將多個確認dllp(即,多個帶寬改變確認dllp)傳遞回端口a。繼而,端口a可以通過經由eios啟動傳輸停止狀態(tài)來引起鏈路的停止狀態(tài),dif-n信號在其之后。繼而,端口b可以傳遞類似的信號(即,eios),dif-n信號在其之后。響應于這樣的通信,兩種設備均可以傳遞高阻抗信號以使鏈路進入到hibern8狀態(tài)。同樣,可以發(fā)生rct,用于實現(xiàn)鏈路重配置,并且之后,鏈路可以利用新的設置經由對dif-n信號的傳遞而退出。雖然以如此高的級別示出了圖10的實施例,但要理解本發(fā)明的范圍不限于此。
針對基于dllp的重配置,在初始化過程期間,軟件將在鏈路的兩端讀取功能寄存器并且利用鏈路伙伴的功能來更新每一個端口的寄存器。對于初始化鏈路參數(shù)的重配置的請求器,所述請求器連續(xù)地傳輸了bwchange_requestdllp消息。要注意的是,請求器可以不提出任何新的配置請求直到第一鏈路配置請求完成。接著,請求器等待bwchange_acknowledgedllp消息。一旦接收確認消息,請求器就傳輸eios并且設置rct事件。所述事件使寄存器使用適當?shù)膍-phy參數(shù)來寫入,并且所述rct引起將所述參數(shù)應用于鏈路。如果設置了rct位,那么請求器將所有線路轉換為進入hibern8狀態(tài),并且等待所有接收器線路進入hibern8。一旦傳輸器和接收器線路二者均處于hibern8狀態(tài),則請求器進行適當?shù)呐渲酶淖儾⑶耀@得rct。
對于鏈路參數(shù)的遠端請求重配置,接收器連續(xù)地傳輸bwchange_acknowledgedllp消息直到接收到eios或所接收的線路開始轉換為hibern8。接著設置rct位。當設置了rct位時,接收器傳輸eios并且接著將所有線路轉換為進入hibern8狀態(tài)。允許接收器立即進入hibern8;接收鏈路可以開始重配置其離線寄存器。一旦傳輸器和接收器二者均處于hibern8狀態(tài),接著,接收鏈路便執(zhí)行rct。之后,利用更新的參數(shù)發(fā)生退出hibern8狀態(tài)。
在不經歷鏈路斷開的情況下,實施例支持用于改變鏈路帶寬的功能。動態(tài)鏈路重配置支持通過相同地改變在鏈路的兩側上的模塊上的比率序列或高速檔位以及改變每個子鏈路的配置的線路的數(shù)量來改變鏈路帶寬。允許鏈路寬度改變?yōu)榉菍ΨQ的。即,允許模塊被配置為具有不同數(shù)量的tx-線路和rx-線路。通過根據(jù)pcietm的鏈路帶寬通知機制,向軟件通知任何比率序列或鏈路速度、以及鏈路寬度改變。
在實施例中,可以在運行時期間重配置的鏈路帶寬參數(shù)包括:比率序列(a或b);高速檔位;以及子鏈路寬度。鏈路比率序列和鏈路速度管理可以在ltssm和根據(jù)pcietm的軟件鏈路觀測與控制機制之間相協(xié)調。
在實施例中,在鏈路控制2寄存器中的目標鏈路速度字段設置鏈路速度的上界。除了以下所描述的之外,上游部件嘗試將鏈路保持在目標鏈路速度或保持在由在鏈路上的兩個部件所支持的最快速度(如由在訓練集中的值所報告的),無論哪個是更低的。
如果實現(xiàn)了動態(tài)比率序列重配置,則部件可以自主地調整鏈路比率序列并使用動態(tài)鏈路重配置功能,用于請求比率序列改變。
如果清除了在鏈路控制2寄存器中的硬件自主速度去使能位,則部件可以使用實現(xiàn)-特定的標準來自主調整鏈路比率序列和鏈路高速檔位。部件可以通過從在部件所傳輸?shù)挠柧毤型ǜ娴乃С值母咚贆n位的列表中移除或添加相對應的鏈路高速檔位來降低或增大鏈路速度。用于移除或添加高速檔位的標準為實現(xiàn)特定的,并且不取決于硬件自主速度去使能位的設置。
通過設置上游部件中的目標鏈路速度字段中的值,軟件可以限制鏈路操作的最大速度并且設置優(yōu)選的鏈路速度。在修改了目標鏈路速度字段中的值之后,軟件通過將預定值寫入再訓練鏈路位來觸發(fā)鏈路再訓練。
鏈路寬度管理可以在ltssm和根據(jù)pcietm的軟件鏈路觀測和控制機制之間相協(xié)調。上游部件嘗試將每一個子鏈路配置為由在鏈路的對側上的m端口所支持的線路的最大數(shù)量。
如果清除了兩個部件的鏈路控制寄存器中的硬件自主寬度去使能位,則允許部件使用實現(xiàn)特定的標準來自主地請求子鏈路寬度改變。允許部件通過從部件所傳輸?shù)挠柧毤型ǜ娴乃С值淖渔溌穼挾仍O置的列表中移除或添加相對應的tx線路寬度和rx線路寬度設置來減少或增大子鏈路寬度。用于移除或添加鏈路寬度設置的標準可以是實現(xiàn)特定的,并且不取決于硬件自主寬度去使能位的設置。
現(xiàn)參考圖11,圖11示出了根據(jù)本發(fā)明的實施例的時序圖,所述時序圖示出了由下行端口啟動的鏈路配置。如圖11所示,鏈路重配置可以由下行端口請求改變開始,請求改變是通過傳遞具有帶寬改變的訓練有序集(ts1)的??梢园l(fā)送預定次數(shù)的該消息。作為響應,上游部件可以接收這些并且以預定次數(shù)來傳遞相同的消息。在由下行端口解析之后,其可以發(fā)送具有解析后的值的訓練有序集ts2,而上行端口可以傳遞具有帶寬改變和識別所支持的值的訓練有序集ts2消息。在進入到停止狀態(tài)(例如,經由eios和dif-n信號的通信)之后,鏈路可以利用新的配置設置退出停止狀態(tài)。
為了訓練基于序列的重配置,部件通過發(fā)送具有帶寬改變位設置的訓練有序集ts1來啟動動態(tài)鏈路重配置。啟動帶寬改變請求的部件設置了訓練有序集中的字段,以用于請求的比率序列、高速檔位、tx線路寬度和rx線路寬度。一旦動態(tài)鏈路重配置過程開始,部件可以不改變在訓練有序集中的所請求的帶寬設置。
針對由上游部件所啟動的鏈路帶寬改變,下游部件基于成功地接收ts1來以具有帶寬改變請求位設置的訓練有序集ts1作為響應。下游部件基于對比率序列、高速檔位和子鏈路寬度的支持來設置ts1字段。
上游部件負責根據(jù)如上所描述的每條鏈路重配置規(guī)則來確定新的比率序列、高速檔位和子鏈路寬度。這些新的設置由上游部件通過傳輸具有帶寬改變位設置的ts2并且包含新的帶寬設置來進行傳遞。下游部件通過傳輸具有鏈路帶寬確認位設置的訓練集ts2來確認新的帶寬設置的接收。
當拒絕了部件與特定鏈路帶寬協(xié)商的嘗試時,不允許所述部件在預定的時間間隔內嘗試動態(tài)鏈路重配置,從上一嘗試后回到l0之后或直到在鏈路上的其他部件啟動鏈路帶寬請求為止。
作為動態(tài)鏈路重配置的部分,上游部件基于以下規(guī)則來做出關于新的目標高速檔位、比率序列和寬度的決定。上游部件使用ts2有序集用于傳遞選擇用于操作的值。上游部件通過將具有從下游部件接收的鏈路帶寬改變位設置的ts1中的值與上游部件支持的值(獨立于上游部件可能已經用在ts1中來請求鏈路帶寬改變的值)相比較,從而做出了用于選擇新鏈路帶寬值的決定。
如果所請求的新的高速檔位與當前的高速檔位不同,并且鏈路的兩側上的部件具有至少一個共同支持的高速檔位,則所述新的高速檔位將為最共同支持的高速檔位。
如果所請求的新的高速檔位與當前的高速檔位不同,并且鏈路的兩側上的部件不具有至少一個共同支持的高速檔位,則所述新的高速檔位將保持為當前的高速檔位。
如果所請求的新的子鏈路寬度與當前的子鏈路寬度不同,并且鏈路的兩側上的部件具有至少一個共同支持的子鏈路寬度,則所述新的子鏈路寬度將為最共同支持的子鏈路寬度。
如果所請求的新的子鏈路寬度與當前的子鏈路寬度不同,并且鏈路的兩側上的部件不具有至少一個共同支持的子鏈路寬度,則新的子鏈路寬度將保持為當前的子鏈路寬度。
如果所請求的新的比率序列與當前的比率序列不同,并且鏈路的兩側上的部件支持新的比率序列,則所述新的比率序列將為所請求的比率序列。
要注意的是,當請求改變比率序列時,正在請求的部件設置相對應的比率序列支持位,以用于在訓練序列內的新的比率序列,并且清除比率序列支持位,以用于當前的比率序列。繼而,響應的部件設置相對應的比率序列支持位以用于其支持的比率序列,所述支持的比率序列可以多于一個比率序列。
如果所請求的新的比率序列與當前的比率序列不同,并且鏈路的兩側上的部件不支持新的比率序列,則新的比率序列將保持當前的比率序列。
在一些實施例中,可以同時請求高速檔位、比率序列和子鏈路寬度改變。
現(xiàn)參考表4,表4示出了根據(jù)本發(fā)明的一個實施例的ts1有序集。
表4
現(xiàn)參考表5,表5示出了根據(jù)本發(fā)明的一個實施例的ts2有序集。
表5
現(xiàn)參考圖12,圖12示出了框圖,所述框圖示出了根據(jù)本發(fā)明的實施例的恢復子狀態(tài)機。如圖12所示,所述恢復子狀態(tài)機可以從l0或l1狀態(tài)進入恢復.進入狀態(tài)1210。從恢復.進入狀態(tài)1210,取決于所接收的值,控制可以轉為恢復.重配置子狀態(tài)1220,并且之后進入配置.更新子狀態(tài)。
可替代地,控制可以從子狀態(tài)1210轉為恢復.完成子狀態(tài)1230,并且之后,轉為恢復.空閑狀態(tài)1240(恢復.重配置子狀態(tài)可以進入到恢復.空閑狀態(tài)1240)。之后,恢復子狀態(tài)機可以從恢復.空閑子狀態(tài)1240退出,并且控制可以轉為l0活動狀態(tài)。
在恢復.進入狀態(tài)機中,傳輸器在所有配置的tx線路上傳輸ts1有序集。發(fā)起帶寬改變的部件在所有配置的tx線路上傳輸具有鏈路帶寬改變位設置和更新的鏈路帶寬參數(shù)的ts1有序集。未發(fā)起帶寬改變的部件基于在該狀態(tài)中接收到具有鏈路帶寬改變位設置的兩個或更多ts1或ts2有序集,從而傳輸具有鏈路帶寬改變位設置的ts1有序集。鏈路帶寬參數(shù)反映了所支持的配置。
下一狀態(tài)為恢復.重配置,如果在所有配置的rx線路上接收了預定數(shù)量(例如,8)的連續(xù)的ts1或ts2有序集,所述ts1或ts2有序集具有的鏈路帶寬改變位設置與傳輸側上的鏈路帶寬改變位相匹配,則恢復.重配置狀態(tài)可以發(fā)生。
下一狀態(tài)為恢復.完成,如果在所有配置的rx線路上接收了預定數(shù)量(例如,8)的連續(xù)的ts1或ts2有序集,所述ts1或ts2有序集具有的鏈路帶寬改變位清除與在傳輸側上的鏈路帶寬改變位相匹配,則恢復.完成狀態(tài)可以發(fā)生。
否則,在預定的超時時間段(在實施例中可以為24毫秒(ms))之后,下一狀態(tài)為檢測。此時,所有配置的tx線路發(fā)送至少一個eios、終止hs-burst并且進入stall。一旦所有配置的tx線路和rx線路均進入stall,則觸發(fā)rct用于將配置的tx線路和rx線路移至hibern8。
在恢復.重配置狀態(tài)機中,對于下行端口,如果需要鏈路帶寬改變,則傳輸器基于在恢復.進入狀態(tài)下ts1有序集協(xié)商和如動態(tài)鏈路重配置所描述的規(guī)則,在所有配置的tx線路上傳輸具有鏈路帶寬改變位設置和鏈路帶寬改變確認位設置的ts2有序集,否則,鏈路帶寬改變位清除。
如果將發(fā)生鏈路帶寬改變,則ts2有序集中的鏈路帶寬參數(shù)反映了新的目標鏈路帶寬,所述新的目標鏈路帶寬是基于在動態(tài)鏈路重配置中所描述的規(guī)則來確定的。如果接收了具有鏈路帶寬改變位設置和鏈路帶寬改變確認位設置的2個或更多的ts2有序集,則上行端口接收新的目標鏈路帶寬。如果未發(fā)生鏈路帶寬改變,那么在所有配置的rx線路接收了8個連續(xù)的具有鏈路帶寬改變位設置和鏈路帶寬改變確認位清除的ts2有序集,并且在接收了一個ts2有序集之后,發(fā)送了16個具有鏈路帶寬改變位設置和鏈路帶寬改變位清除的ts2有序集之后,下一狀態(tài)立刻為恢復.空閑狀態(tài)。
對于上行端口,傳輸器在所有配置的tx線路上傳輸具有鏈路帶寬改變位設置和鏈路帶寬改變確認位清除的ts2有序集直到傳輸器在所有配置的rx線路上接收了2個或更多具有鏈路帶寬改變位設置和鏈路帶寬改變確認位設置的ts2有序集,基于此傳輸器開始在所有配置的tx線路上傳輸具有鏈路帶寬改變位設置和鏈路帶寬改變確認位設置的ts2有序集。在ts2有序集中的鏈路帶寬參數(shù)繼續(xù)反映所支持的配置,不論鏈路帶寬改變確認位被設置還是清除。在所有配置的rx線路接收了8個連續(xù)的具有鏈路帶寬改變位設置和鏈路帶寬改變確認位清除的ts2有序集,并且在接收了一個ts2有序集之后,發(fā)送了16個具有鏈路帶寬改變位設置和鏈路帶寬改變確認位清除的ts2有序集之后,下一狀態(tài)立刻為恢復.空閑。
對于下行端口和上行端口二者,如果選擇了鏈路帶寬改變,則在所有配置的rx線路上接收了八個連續(xù)的具有鏈路帶寬改變位設置、鏈路帶寬改變確認位設置的ts2有序集,在接收了一個ts2有序集之后,發(fā)送了16個具有鏈路帶寬改變位設置和鏈路帶寬改變確認位設置的ts2有序集并且所有配置的tx線路和rx線路均已進入hibern8狀態(tài)之后,下一狀態(tài)立刻為配置.更新狀態(tài)。此時,所有配置的tx線路均進入stall狀態(tài),并且觸發(fā)rct用于將操作的模式改變?yōu)樾碌母咚贆n位和比率序列,并且一旦所有配置的tx線路和rx線路均進入stall狀態(tài),則將tx線路和rx線路轉換為hibern8。
否則,在預定的超時時間段(可以為2ms)之后,下一狀態(tài)為檢測(如上所描述的)。
在恢復.完成狀態(tài)機中,傳輸器在所有配置的tx線路上傳輸ts2有序集。要注意的是,在離開該狀態(tài)之前,完成了線路到線路去偏移。在所有配置的rx線路接收了8個連續(xù)的ts2有序集,并且在接收一個ts2有序集之后發(fā)送了16個ts2有序集之后,下一狀態(tài)立刻為恢復.空閑狀態(tài)。否則,如上所描述的,在預定的超時之后,下一狀態(tài)為檢測。
在恢復.空閑狀態(tài)機中,若有指示,則下一狀態(tài)為去使能狀態(tài)。要注意,“若有指示”適用于由更高層管理的下行端口,用于使鏈路上的去使能鏈路位(ts1和ts2)有效。若有指示,則下一狀態(tài)為熱重置。要注意,“若有指示”適用于由更高層管理的下行端口,用于使鏈路上的熱重置位(ts1和ts2)有效。在任何配置的rx線路接收了具有去使能鏈路位(其在兩個連續(xù)接收的ts1有序集中有效)的ts1有序集之后,下一狀態(tài)立刻為去使能狀態(tài)。要注意,該行為僅適用于上行端口。在任何配置的rx線路接收了具有熱重置位(其在兩個連續(xù)的ts1有序集中有效)的ts1有序集之后,下一狀態(tài)立刻為熱重置??臻e數(shù)據(jù)在所有配置的tx線路上傳輸。如果被指示為以上所列舉的其他狀態(tài),則在轉換為其他狀態(tài)之前無需發(fā)送空閑數(shù)據(jù)。如果在所有配置的線路上接收了八次空閑數(shù)據(jù)的連續(xù)的符號,并且在接收一個空閑數(shù)據(jù)符號之后,發(fā)送了16個空閑數(shù)據(jù)符號,則下一狀態(tài)為l0狀態(tài)。否則,如上所描述的,在預定的超時之后,下一狀態(tài)為檢測。
正如本文所描述的,實施例使得常規(guī)的pcietm協(xié)議棧能夠映射在非pcietm物理層和鏈路之上發(fā)生的通信。本文所描述的實施例是關于根據(jù)mipi規(guī)范的phy單元(m-phy)的。當然,實施例不限于此。
為了向現(xiàn)有的pcietm軟件棧提供軟件兼容性,實施例可以向不同協(xié)議的物理層提供根據(jù)pcietm協(xié)議的各種控制和狀態(tài)信息的映射。更具體地說,本文的實施例可以提供機制,用于使訪問配置空間的總線驅動器能夠使用在配置空間中的信息來管理和控制給定的鏈路,用于執(zhí)行沿鏈路的各種操作,各種操作包括:初始化、配置/重配置和通信等。
現(xiàn)參考圖13,圖13示出了根據(jù)本發(fā)明的實施例的功能結構的框圖。如圖13所示,功能結構1300可以為存儲在例如設備的配置空間中的數(shù)據(jù)結構,所述數(shù)據(jù)結構可以包括用于存儲由各種代理使用的功能、配置、狀態(tài)以及控制信息的多個寄存器,所述各種代理包括一個或多個總線驅動器。當然,在其他實施例中,所述功能結構可以存儲在設備的其他位置中。
正如在圖13中所看見的,結構1300可以包括:pcietm功能寄存器1305、下一功能指針寄存器1307、以及pcietm功能標識符寄存器1309,如示出的,它們可以呈現(xiàn)在字節(jié)的第一集合中。接下來對于設備信息,可以呈現(xiàn)設備功能寄存器1310、連同設備狀態(tài)寄存器1314和設備控制寄存器1312。對于鏈路信息,可以提供鏈路功能寄存器1315、連同鏈路狀態(tài)寄存器1325和鏈路控制寄存器1320。對于插槽信息,可以提供插槽功能寄存器1313、連同插槽狀態(tài)寄存器1304和插槽控制寄存器1332。對于例如根復合體設備的根信息,可以提供根功能寄存器1338和根控制寄存器1336,連同根狀態(tài)寄存器1340。
為了提供附加的信息,功能結構1300可以包括用于設備、鏈路和插槽的附加信息。正如所看見的,具體而言,附加的設備信息可以提供作為設備功能2寄存器1350、設備狀態(tài)2寄存器1354和設備控制2寄存器1352。對于附加的鏈路信息,可以提供鏈路功能2寄存器1360、連同鏈路狀態(tài)2寄存器1364和鏈路控制2寄存器1362。出于附加的插槽信息的目的,還可以提供插槽功能2寄存器1370、插槽狀態(tài)2寄存器1374和插槽控制2寄存器1372。最后,功能結構1300可以為對本文所描述的鏈路寬度和速度的控制,所述功能結構1300可以進一步包括快速移動tm(快速移動tm)功能和控制寄存器1380。雖然在圖13的實施例中示出了該特定說明,但要理解本發(fā)明的范圍不限于此。例如,在一些實施例中,寄存器1380可以為單獨的功能結構的部分。
為了使圖13的擴展的功能結構中的信息能夠用于與非pcietm物理層連接并且仍然與已有的pcietm軟件棧相兼容,可以提供某些寄存器接口的值來將這些擴展的功能寄存器中的至少一些映射為提供不同的鏈路速度、檔位和鏈路寬度的非pcietm物理層。
現(xiàn)參考表6,表6示出了某些功能寄存器和用于寄存器的某些字段的推薦設置的列表,用于使已有軟件棧能夠與非pcietm物理層進行連接。雖然表6中示出的這些寄存器設置是用于根據(jù)mipi規(guī)范與m-phy進行連接的,但是要理解本發(fā)明的范圍不限于此。
表6
要注意的是,出于由本文所描述的設備驅動器以及狀態(tài)機所執(zhí)行的操作的目的,可以使用在功能結構的寄存器的這些字段中的信息。此外,要注意的是,用于這些字段中的某些的推薦設置識別或指的是鏈路功能2寄存器的所支持的鏈路速度向量。這可以以不同方式實現(xiàn)。例如,來自該向量的值可以復制到所指示的寄存器的字段,或者,這些不同寄存器的字段的值(例如,鏈路功能寄存器的最大鏈路速度字段)可以具有由此用作指向鏈路功能2寄存器的所支持的鏈路速度向量字段的指針的值。
現(xiàn)在參考圖14,示出了根據(jù)本發(fā)明的另一實施例的方法的流程圖。具體而言,可以由例如設備驅動器或其他邏輯使用圖14的方法1400,以使用在功能結構的這些配置寄存器中的多個配置寄存器中的信息來確定某些設置(例如,最大鏈路速度、鏈路寬度等)。出于示出的目的,假設在圖14中獲得和使用的所需配置信息是用于最大鏈路速度的,然而,要理解的是本發(fā)明的范圍不限于此。
方法1400可以通過利用設備驅動器來訪問第一鏈路功能寄存器的第一字段開始于框1410。例如,參考回表6,所述第一鏈路功能寄存器可以為鏈路功能寄存器,并且將被訪問的特定字段可以為最大鏈路速度字段。接著,在框1420處,該字段可以用作指向第二鏈路功能寄存器中的位置的指針值。更具體而言,該第一字段的值可以指示在另一配置寄存器(例如,表6的鏈路功能2寄存器)內的特定位置,由此指示在所支持的鏈路速度向量內的特定的位。
由此,控制轉至框1440,在框1440中,可以利用設備驅動器來訪問所述第二鏈路功能寄存器,以用于在所識別的位置處獲得信息。假設在該實例中,第一鏈路功能寄存器的第一字段具有值01b,指示其指向所支持的鏈路速度向量的位1。由此,在框1440處,設備驅動器可以訪問所述寄存器并且獲得該位的值(假設已設置),這指示了鏈路可以支持高速、檔位3速度(hs-g3)。
仍參考圖14,接下來使用在指示的位置處所獲得的該信息,可以執(zhí)行鏈路操作。例如,基于所確定的最大鏈路速度設置,設備驅動器可以啟動鏈路重配置或其他機制,用于以所指示的最大鏈路速度來操作。雖然以如此高的級別示出了圖14的實施例,但要理解本發(fā)明的范圍不限于此。
實施例可以用于許多不同類型的系統(tǒng)中。例如,在一個實施例中,可以將通信設備布置為執(zhí)行本文所描述的各種方法和技術。當然,本發(fā)明的范圍不限于通信設備,而相反,其他實施例可以被指示用于處理指令的其他類型的裝置或一個或多個機器可讀介質(包括響應于在計算設備上執(zhí)行的指令),從而使設備執(zhí)行本文所描述的一種或多種方法和技術。
實施例可以在代碼中實現(xiàn)并且可以存儲非暫時性存儲介質中,所述非暫時性存儲介質具有存儲在其上的指令,所述指令可以用于對系統(tǒng)進行編程,以用于執(zhí)行指令。所述存儲介質可以包括但不限于:任何類型的磁盤(包括:軟盤、光盤、固態(tài)驅動器(ssd)、只讀光盤存儲器(cd-rom)、可重寫式光盤(cd-rw)、以及磁光盤)、半導體器件(例如,只讀存儲器(rom)、隨機存取存儲器(ram)(例如,動態(tài)隨機存取存儲器(dram)、靜態(tài)隨機存取存儲器(sram)、可擦除可編程只讀存儲器(eprom)、閃存存儲器、電可擦除可編程只讀存儲器(eeprom)))、磁卡或光卡、或適用于存儲電子指令的任何其他類型的介質。
雖然針對有限數(shù)量的實施例描述了本發(fā)明,但是,本領域的技術人員將意識到根據(jù)本發(fā)明的許多修改和變型。所附的權利要求是要覆蓋所有落入本發(fā)明的真正的精神和范圍內的所有這樣的修改和變型。