通信流量處理架構(gòu)和方法
【專利說明】通信流量處理架構(gòu)和方法
[0001]相關(guān)串請(qǐng)案的交叉參考
[0002]本申請(qǐng)案涉及并且主張2012年12月26日遞交的第61/745,951號(hào)美國臨時(shí)專利申請(qǐng)案的權(quán)益。
技術(shù)領(lǐng)域
[0003]本發(fā)明大體上涉及通信,并且具體而言涉及通信流量處理。
【背景技術(shù)】
[0004]此類技術(shù)作為互聯(lián)網(wǎng)協(xié)議電視(IPTV)技術(shù)的出現(xiàn)以及數(shù)字視頻廣播(DVB)、路由器網(wǎng)關(guān)和數(shù)字錄像機(jī)(DVR)機(jī)頂盒(STB)的匯聚給處理平臺(tái)添加了不斷增加的需求。
【附圖說明】
[0005]現(xiàn)在將參考附圖更詳細(xì)地描述本發(fā)明的實(shí)施例的實(shí)例。
[0006]圖1是實(shí)例處理架構(gòu)的框圖。
[0007]圖2是實(shí)例處理器復(fù)合體的框圖。
[0008]圖3是實(shí)例網(wǎng)絡(luò)引擎的框圖。
[0009]圖4是實(shí)例卸載/加速子系統(tǒng)的框圖。
[0010]圖5到9是其它實(shí)例處理架構(gòu)的框圖。
[0011]圖10說明分區(qū)裝置驅(qū)動(dòng)器的實(shí)例。
[0012]圖11是說明低速接口的框圖。
[0013]圖12是說明高速接口的框圖。
[0014]圖13是說明實(shí)例多服務(wù)系統(tǒng)的框圖。
[0015]圖14是說明實(shí)例網(wǎng)關(guān)的框圖。
[0016]詳細(xì)說曰月
[0017]多服務(wù)處理提供于可以同時(shí)傳遞用于安全數(shù)據(jù)、語音、視頻和移動(dòng)服務(wù)的線速率帶寬而沒有服務(wù)降級(jí)的單個(gè)輸送平臺(tái)中。
[0018]數(shù)據(jù)網(wǎng)絡(luò)連接和應(yīng)用處理一起集成到單芯片或集成電路包中。特征可以包含柔性(flexible)的硬件設(shè)計(jì)、多個(gè)數(shù)據(jù)接口、與卸載硬件結(jié)合的一或多個(gè)通用主處理器,以及有效處理器間通信。
[0019]可以提供專用處理器、多個(gè)處理器和/或?qū)I(yè)化硬件以確保硬件卸載或加速從而用于處理密集功能。舉例來說,此方法從主通用處理器(也稱為應(yīng)用處理器或主CPU)卸載功能、保留CPU處理能力用于額外的附加值服務(wù)。
[0020]處理平臺(tái)中的通用主中央處理單元(CPU)可以加載到在執(zhí)行網(wǎng)絡(luò)連接或數(shù)據(jù)通信任務(wù)中用于執(zhí)行例如應(yīng)用等其它任務(wù)或服務(wù)相關(guān)任務(wù)所經(jīng)受的剩余的容量的此類程度。考慮網(wǎng)絡(luò)連接的性能保持可能會(huì)以有限的或降級(jí)的應(yīng)用或服務(wù)性能為代價(jià)。舉例來說,網(wǎng)絡(luò)連接任務(wù)可以占據(jù)主CPU處理周期的75-80%,留下可用于應(yīng)用或服務(wù)處理的有限的資源。
[0021]主CPU資源的此類高利用率還可以對(duì)功率消耗和/或操作溫度造成影響。舉例來說,STB中的主CPU將是較高功率組件中的一者,并且很可能是在此類裝置中具有最高潛在功率消耗的組件。
[0022]CPU的實(shí)際功率消耗取決于其利用率,并且相應(yīng)地高利用率將具有高相關(guān)聯(lián)的功率消耗。高利用率還增加了產(chǎn)熱,對(duì)散熱片或其它溫度控制措施添加了額外的需求。通過本文所揭示的專用的可配置的引擎的使用可以獲得相當(dāng)大的效率。
[0023]處理架構(gòu)實(shí)例
[0024]圖1是實(shí)例處理架構(gòu)的框圖。
[0025]圖1中所示的實(shí)例架構(gòu)100是具有兩個(gè)主CPU 102、104的雙重處理器主CPU架構(gòu)。也可以提供各種接口中的任何接口。在實(shí)例架構(gòu)100中,存在多個(gè)接口。這些包含:
[0026]三個(gè)外圍(Peripheral)組件互連高速(PCIe)或串行高級(jí)技術(shù)附件(SATA)接口118、120、122,其表示共享同一物理層(PHY)接口組件的三組PCIe控制器和SATA控制器;
[0027]SATA 接口 124;
[0028]USB 主機(jī)接口 126;
[0029]通用串行總線(USB)主機(jī)/裝置接口 128 ;
[0030]液晶顯示器(LCD)接口 130 ;
[0031]同步串行端口(SSP)接口 132,其可配置為支持單個(gè)接口或兩個(gè)同步PCM接口的脈沖編碼調(diào)制(PCM)接口、IC間聲音(I2S)總線接口或索尼/飛利浦?jǐn)?shù)字互連格式(sroiF)接口 ;
[0032]I2C(IC 間)總線接口 134 ;
[0033]安全數(shù)字(SD)接口 136 ;
[0034]—組接口 138,其包含聯(lián)合測(cè)試行動(dòng)小組(JTAG)接口、在此實(shí)例中選擇為具有多達(dá)5個(gè)芯片的串行外圍接口(SPI)和通用輸入輸出(GP1)接口的實(shí)例;
[0035]四個(gè)通用異步收/發(fā)器UART接口 140 ;
[0036]快閃存儲(chǔ)器接口 142;
[0037]傳輸流接收(Rx)接口 144,其在此實(shí)例中支持多達(dá)6個(gè)傳輸流;以及
[0038]千兆比特媒體存取控制器(GMAC)接口 146、148、150。
[0039]圖1還示出了例如當(dāng)部署在STB中時(shí)這些接口中的一些可能耦合到的組件的實(shí)例。在示出的實(shí)例中,這些組件包含802.1ln無線模塊、用戶線路接口控制器(SLIC)、快閃存儲(chǔ)器、射頻(RF)調(diào)諧器、家庭電話網(wǎng)絡(luò)連接聯(lián)盟(FIPNA)適配器、開關(guān)和物理層(PHY)組件以及無線調(diào)制解調(diào)器。在其它實(shí)施例中,除圖1中所示的那些之外或替代于圖1中所示的那些,其它類型的組件可以耦合到接口。
[0040]實(shí)例架構(gòu)100還可包含256kBL2高速緩存152、8kB安全啟動(dòng)只讀存儲(chǔ)器(ROM) 154、高速緩存一致性端口 156、網(wǎng)絡(luò)引擎158、安全引擎160、包引擎162、流量管理器164、直接存儲(chǔ)器存取(DMA)控制器165、256kB包緩沖器166和16位或32位雙數(shù)據(jù)速率(DDR)存儲(chǔ)器控制器168。在其它實(shí)施例中,除圖1中所示的實(shí)例存儲(chǔ)器尺寸和類型之外或替代于圖1中所示的實(shí)例存儲(chǔ)器尺寸和類型,可以提供其它尺寸和/或類型的存儲(chǔ)器。
[0041]應(yīng)了解圖1的實(shí)例架構(gòu)100以及其它附圖的內(nèi)容僅意圖用于說明性目的,并且本發(fā)明絕不限于附圖中明確示出的且在本文中描述的特定實(shí)例實(shí)施例。
[0042]實(shí)例架構(gòu)100中的全部的組件可以集成到同一芯片或集成電路包中,或跨越多個(gè)集成電路。單芯片或包于是包含網(wǎng)絡(luò)連接組件和數(shù)據(jù)處理組件這兩者。舉例來說,特定的處理任務(wù)可以被指派到網(wǎng)絡(luò)引擎158、安全引擎160和/或包引擎162中的不太大功率的且更具功率效率的處理器,由此在可用于執(zhí)行例如應(yīng)用等其它任務(wù)或服務(wù)相關(guān)任務(wù)的更大功率的通用主CPU 102、104上形成處理周期。
[0043]這種類型的架構(gòu)可以通過減小針對(duì)可以在針對(duì)它們的特定的任務(wù)優(yōu)化的不太大功率處理器中執(zhí)行的任務(wù)的主CPU 102、104利用率而更具功率效率。性能增益還可通過使更多的主CPU 102、104處理周期可用于執(zhí)行其它任務(wù)而實(shí)現(xiàn)。
[0044]舉例來說,假設(shè)安全任務(wù)從主CPU 102、104卸載到安全引擎160,那么主CPU具有可用于應(yīng)用或服務(wù)相關(guān)任務(wù)的更多處理周期。雖然具有主CPU架構(gòu)的裝置可能提供用于與具有基于實(shí)例架構(gòu)100的架構(gòu)的裝置類似或甚至相同的數(shù)據(jù)速率,但是由于到一或多個(gè)引擎158、160、162的任務(wù)卸載,作為更好的主CPU可用性的結(jié)果,具有基于實(shí)例架構(gòu)100的架構(gòu)的裝置可能支持更加特征豐富的應(yīng)用或服務(wù)和/或更好的應(yīng)用/服務(wù)響應(yīng)時(shí)間。
[0045]這說明了用于服務(wù)供應(yīng)商網(wǎng)絡(luò)中的較高性能的硬件加速特征。在一個(gè)實(shí)施例中,硬件加速特征通過定制的軟件裝置驅(qū)動(dòng)器存取,這使得硬件對(duì)上層軟件組件和應(yīng)用透明。例如,在Linux環(huán)境下,可以使用開源驅(qū)動(dòng)器和略微地修改的內(nèi)核。這允許用戶在Linux環(huán)境下進(jìn)一步定制內(nèi)核并且運(yùn)行軟件應(yīng)用程序。其它操作系統(tǒng)可以支持使用此類型的硬件抽象方法。
[0046]實(shí)例架構(gòu)100集成加速硬件用于網(wǎng)絡(luò)引擎158中的網(wǎng)絡(luò)連接操作、安全引擎160中的安全以及包引擎162中的例如傳輸流幀聚集等包處理操作。網(wǎng)絡(luò)連接操作可以包含例如以下各項(xiàng)中的一或多個(gè):分類和存取控制列表(ACL)處理、虛擬局域網(wǎng)(VLAN)操作、說明性地通過Linux QDisc模型的服務(wù)質(zhì)量(QoS)、轉(zhuǎn)發(fā)、網(wǎng)絡(luò)地址轉(zhuǎn)譯(NAT)/網(wǎng)絡(luò)過濾器操作、多播,和/或排隊(duì)/調(diào)度??梢詮闹鰿PU 102、104卸載到實(shí)例架構(gòu)100中的安全引擎160的特征和相關(guān)處理可以包含以下各項(xiàng)中的一或多個(gè):互聯(lián)網(wǎng)協(xié)議安全(IPSec)、數(shù)字傳輸內(nèi)容保護(hù)(DTCP)、安全實(shí)時(shí)傳輸協(xié)議(SRTP)和/或安全套接字層(SSL)。
[0047]上述內(nèi)容提供了如圖1所示的實(shí)例架構(gòu)100的大體描述。借助于以下實(shí)例討論其它細(xì)節(jié)。
[0048]處理器復(fù)合體
[0049]在一個(gè)實(shí)施例中,主處理器102、104中的每一個(gè)是可在市面上購得的通用處理器。說明性處理器速度是600MHz到750MHz。32kB層I或LI指令⑴和數(shù)據(jù)⑶高速緩存110、112和114、116在圖1中示出。主CPU可以支持其它特征,例如用于減小的代碼尺寸的軟件加速以及應(yīng)用加速、用于單個(gè)或多個(gè)操作系統(tǒng)(0/S)應(yīng)用的不對(duì)稱多處理(AMP)和對(duì)稱多處理(SMP)、用于圖形/計(jì)算處理的單指令多數(shù)據(jù)(Sn?)指令集、JTAG/程序跟蹤接口(PTM)、性能監(jiān)測(cè)和/或緩沖以例如加速虛擬地址轉(zhuǎn)譯。本發(fā)明不限于任何特定的主CPU或主CPU的類型。并且,雖然實(shí)例架構(gòu)100是雙重CPU架構(gòu),但是本發(fā)明的各方面可以在單個(gè)CPU架構(gòu)中應(yīng)用和/或在具有兩個(gè)以上主CPU的架構(gòu)中應(yīng)用。
[0050]在一個(gè)實(shí)施例中的主CPU 102、104的配置涉及在配置寄存器中的設(shè)置配置參數(shù)。當(dāng)每個(gè)主CPU 102、104在重置之后啟動(dòng)時(shí),它將讀取其配置參數(shù)。除用于主CPU核心102、104的默認(rèn)配置之外,這些參數(shù)也可能提供L2高速緩存152的默認(rèn)配置。為了改變配置參數(shù),對(duì)適當(dāng)?shù)募拇嫫鬟M(jìn)行修改并且將重新啟動(dòng)或重置發(fā)布到主CPU 102,104中的一或兩者。在一個(gè)實(shí)施例中,系統(tǒng)中的寄存器是存儲(chǔ)器映射的。配置參數(shù)隨后可以通過寫入到每個(gè)寄存器已經(jīng)在存儲(chǔ)器空間中被指派的地址而得到修改。
[0051]圖2是實(shí)例處理器復(fù)合體的框圖。此實(shí)例200包含圖1中所示的許多組件并且具有一些額外的組件。所述額外組件包含:
[0052]全局控制接口 270,通過所述全局控制接口中斷和/或其它控制信號(hào)可以提供到主CPU 102、104和其它組件;
[0053]動(dòng)態(tài)可控制的柔性的互連件272,其例如可以使用一或多個(gè)切換結(jié)構(gòu)實(shí)施;
[0054]網(wǎng)絡(luò)引擎控制模塊274 ;
[0055]功率/消費(fèi)性紅外線(CIR)/實(shí)時(shí)時(shí)鐘(RTC)接口 276,以確保手動(dòng)開/關(guān)切換、通過紅外線遠(yuǎn)程控制裝置的控制和基于計(jì)時(shí)器的控制;
[0056]串行器/并行器(SerDes)控制器278,通過所述控制器主CPU 102、104和/或其它組件如下文中進(jìn)一步描述控制SerDes組件的配置;以及
[0057]“通用外圍裝置”塊280,其大體上表示外圍接口,例如,圖1中所示的GMAC、UART、SPI 和 GP1 接口。
[0058]如圖2中示出,主CPU 102、104通過柔性的互連件272耦合到各種接口以及連接到那些接口的任何外圍裝置。網(wǎng)絡(luò)引擎158、安全引擎160和包引擎162還通過柔性的互連件272耦合到接口和外圍裝置,并且可以直接與那些外圍裝置通信并且直接控制那些外圍裝置。通過柔性的互連件272、包含主CPU 102、104和實(shí)施網(wǎng)絡(luò)引擎158的卸載子系統(tǒng)中的單獨(dú)的“卸載”處理器或硬件的系統(tǒng)中的任何處理器,安全引擎160和/或包引擎162例如可以控制系統(tǒng)中的任何資源。這允許系統(tǒng)軟件分配哪些處理器將控制運(yùn)行時(shí)間的哪些輸入/輸出(I/O)。當(dāng)相關(guān)聯(lián)的處理從主CPU 102、104卸載時(shí),這繼而確保單獨(dú)的卸載處理器或硬件控制高帶寬SerDes 1/0,例如PCIe接口。
[0059]圖2還示出了在主CPU 102、104處的高速緩存一致性外圍輸入端。在一個(gè)實(shí)施例中,主CPU 102、104中的每一個(gè)具有高速緩存一致性端口。為了提供完整的I/O—致性,可以將特定存儲(chǔ)器地址指派到高速緩存一致性端口。高速緩存一致性端口上的讀取可以命中任何主CPU的LI數(shù)據(jù)緩存,并且高速緩存一致性端口上的寫入可以使LI高速緩存中的任何過期數(shù)據(jù)失效并且透寫到L2高速緩存152。這可以提供相當(dāng)大的系統(tǒng)性能益處和功率節(jié)省,并且還可以簡化驅(qū)動(dòng)器軟件。裝置驅(qū)動(dòng)器不再需要執(zhí)行高速緩存清潔或沖洗來確保L2/L3存儲(chǔ)器系統(tǒng)是最新的。下文中將進(jìn)一步詳細(xì)討論高速緩存一致性。
[0060]網(wǎng)絡(luò)引擎
[0061]圖1和2中所示的網(wǎng)絡(luò)引擎158可以提供此類特征作為高速包轉(zhuǎn)發(fā)、編輯、排隊(duì)、成形和監(jiān)管。網(wǎng)絡(luò)引擎158可以切換、路由并且執(zhí)行例如以太網(wǎng)承載點(diǎn)對(duì)點(diǎn)協(xié)議(PPPoE)穿隧和傳輸控制協(xié)議(TCP)分段等包服務(wù)而無需主CPU干預(yù),由此從主CPU 102、104中卸載這些網(wǎng)絡(luò)連接任務(wù)。
[0062]圖3是實(shí)例網(wǎng)絡(luò)引擎的框圖。實(shí)例網(wǎng)絡(luò)引擎300包含入口 302和出口網(wǎng)絡(luò)接口310、轉(zhuǎn)發(fā)引擎304、隊(duì)列管理器306和調(diào)度器308。在一個(gè)實(shí)施例中,實(shí)例網(wǎng)絡(luò)引擎300以可配置的但是硬編碼的硬件實(shí)施。
[0063]為了便于參考,還示出了實(shí)例網(wǎng)絡(luò)引擎300與其相互作用的其它組件。這些其它組件包含存儲(chǔ)器312、一或多個(gè)卸載/加速引擎處理器316、DMA控制器165,以及主CPU102、104。存儲(chǔ)器312包含一或多個(gè)存儲(chǔ)器裝置。在一個(gè)實(shí)施例中,存儲(chǔ)器312包含DDR存儲(chǔ)器。
[0064]在一個(gè)實(shí)施例中,實(shí)例網(wǎng)絡(luò)引擎