Layerscape架構(gòu):深入理解下一代QorIQ LS系列SoC
18世紀的發(fā)明家查爾斯。巴貝奇(Charles Babbage)是開路先鋒。盡管他發(fā)明的“差分機”重達五噸,擁有20,000多個運動零件,這臺機器仍然是卓越非凡的發(fā)明物,因為它是可以重復(fù)編程的。對于所有硬件而言,它便是從中脫穎而出的神奇軟件。
在現(xiàn)代,全球工程設(shè)計團隊的調(diào)查顯示,他們編寫軟件的時間要比創(chuàng)造硬件的時間更多。工程設(shè)計公司雇傭的程序員也比工程師數(shù)量更多,而且開發(fā)人員在選擇MPU芯片之前,絕大多數(shù)都會首先選擇運行芯片的軟件環(huán)境。他們營銷部門的同事深知,軟件可以提供令產(chǎn)品卓然不群最為直接的捷徑。原始代碼可以提供“附加值”:獨一無二的要素可以令一種產(chǎn)品在魚龍混雜和快速發(fā)展的市場中脫穎而出。
這不是說硬件并不重要:恰恰相反。硬件設(shè)計的重要性實際上已經(jīng)變得顯而易見。硬件需要快速推出,性能經(jīng)過優(yōu)化可以實現(xiàn)開箱即用,并且具備軟件意識。
接下來的步驟
如果MPU只是達到目的的手段——即釋放現(xiàn)有軟件基礎(chǔ)能力的途徑或者鑰匙——接下來重要的一步便是選擇正確的鑰匙。十分普及的處理器架構(gòu)(例如Intel? x86)可以提供豐富的x86軟件配置,其中大多數(shù)都為個人計算機市場開發(fā)。同樣,Power Architecture?、ARM?或者MIPS架構(gòu)都配置包含了各自軟件“俱樂部”的成員。如果目的是為了運行個人計算機軟件,x86處理器屬于必備的選擇。對于嵌入式或者工業(yè)市場而言,開發(fā)人員的選擇方案則更加靈活。
當大多數(shù)程序仍然采用匯編語言編寫的時代,處理器的選擇也決定了程序員的選擇。開發(fā)人員專門致力于各種不同的CPU指令集,勤奮鉆研他們各自首選的ISA.代碼本身與編寫代碼的人才相比同樣一樣不易轉(zhuǎn)換移植;為一個處理器系列編寫的軟件對于另一個處理器系列完全無用,除非作為下一次的實例解釋如何構(gòu)建代碼。編碼的捍衛(wèi)者會為匯編語言辯護,聲稱它的高效與快速,而他們的業(yè)務(wù)經(jīng)理通常會嘲笑它開發(fā)緩慢、過度臃腫、只能針對于一種硬件平臺、難以移植,對于沒有深入原始開始工作的人員而言太過神秘莫測。
理想情況下,軟件可以實現(xiàn)快速和高效性,同時可以快速輕松地進行開發(fā)與維護。沒有技術(shù)已經(jīng)實現(xiàn)這種理想的情況,盡管已經(jīng)實現(xiàn)了匯編水平編程的過渡,向更高水平的語言(例如C語言)邁進,這提供了極大程度的幫助。如今,不到10%的嵌入式開發(fā)人員還在普遍使用匯編語言;超過70%的開發(fā)人員幾乎只在使用C或C++語言??梢浦膊僮飨到y(tǒng)對此也有幫助。特別是Linux?適用于幾乎所有處理器架構(gòu)和所有硬件配置,使它成為了嵌入式開發(fā)人員近乎通用的平臺。
在可移植編程語言和通用平臺之間,這個行業(yè)比以往任何時候都更有可能實現(xiàn)代碼效率(從運行時性能角度考慮)和開發(fā)效率(從成本、上市時間和可維護性角度考慮)之間的理想平衡。性能與靈活性和易用性之間的平衡成為了嵌入式處理器供應(yīng)商之間爭相競逐的領(lǐng)域。這便是軟件感知架構(gòu)變得至關(guān)重要的原因所在。軟件感知架構(gòu)是幫助客戶通過性能優(yōu)化的代碼庫和(便于實施的)軟件,可以充分利用和輕松挖掘架構(gòu)能力和功能的一種平臺。
Layerscape架構(gòu)介紹
Layerscape架構(gòu)是下一代QorIQ LS系列片上系統(tǒng)(SoC)的底層系統(tǒng)架構(gòu)。從一開始便旨在充分利用新的開發(fā)、提取和效率現(xiàn)實條件(從字面的雙重含義理解),Layerscape架構(gòu)的創(chuàng)建是為了讓程序員找到極為輕松的方式“釋放”每一塊芯片的性能。該架構(gòu)延伸了當前向多核芯片設(shè)計發(fā)展的趨勢(包含同構(gòu)和異構(gòu)),以獲得性能最大化,同時也可以提取足夠的復(fù)雜硬件,以便讓軟件開發(fā)變得高效、可維護、靈巧、快速和相對簡潔。簡而言之,Layerscape架構(gòu)可以實現(xiàn)手寫匯編語言代碼的性能和效率與高等級語言易用性和現(xiàn)代代碼可維護性之間的平衡。
Layerscape架構(gòu)可以視為QorIQ P和T系列內(nèi)數(shù)據(jù)路徑加速架構(gòu)(DPAA)的演進——這是一種由多個CPU內(nèi)核與加速器本身支持網(wǎng)絡(luò)接口和加速器的基礎(chǔ)設(shè)施。
Layerscape架構(gòu)方框圖
圖1.所有LS系列芯片都采用邏輯方式(盡管并非總是從物理角度)被劃分為三個層次。最高層包括任意類型的處理器,例如基于Power Architecture或者ARM技術(shù)的處理器。向下一層可以通過緩沖區(qū)、隊列和API訪問,能夠提取實施項目的詳細信息。
Layerscape架構(gòu)可以擴充DPAA,在ISO網(wǎng)絡(luò)模型的獨立層中單獨地適當加速,這取決特定的芯片。有些芯片(例如)可以處理軟件壓縮,而其他芯片擁有專用的硬件加速器。無論采用哪種方式,功能對程序員都是透明的,這讓一個芯片的實施切換到另一個芯片的實施變得簡單直接,無需修改代碼。結(jié)構(gòu)化編程接口會包含壓縮(在這個例子中),這樣代碼既不會調(diào)用它,也不會被它所調(diào)用,需要了解壓縮實際上是如何應(yīng)用的。再次重申,提取可以保存效率與性能,也可以保持開發(fā)人員的理智。
在QorIQ LS系列中,每一個通信處理器按照邏輯方式劃分為三層,如圖1所示。通用處理層(GPPL)、加速包處理層(APPL)和快遞包(express packet)輸入/輸出層(EPIL)分別粗略地代表了標準ISO模型的高、中和低層。無論芯片是否采用物理方式進行如此劃分無關(guān)緊要;程序員認同這種方式,這與單個芯片如何進行分配無關(guān)。
在最底層,快遞包I/O層(圖1,褐色部分)提供支持L2+轉(zhuǎn)換功能的所有網(wǎng)絡(luò)接口之間真正具有決定性的線速性能,并且包含芯片的網(wǎng)絡(luò)數(shù)據(jù)報接口(例如Ethernet、Interlaken、Serial RapidIO?、HiGig和PCI Express?)。重要但不相關(guān)的接口(例如USB或者SATA)將不會屬于這個接口層的組成部分,但會成為芯片“系統(tǒng)接口”模塊的一部分,如圖左側(cè)所示(圖1)。盡管嚴格來說,PCI Express并不是網(wǎng)絡(luò)接口,它通常用作為堆棧中刀片之間的接口,因此也包括在此處。
中間層(圖1藍色顯示區(qū)塊)包含芯片的包處理元素,它們或者是硬接線加速器、可編程引擎或者二者的組合。APPL可以通過傳統(tǒng)順序、同步、完整運行的模型提供客戶定義的、自主和附加值功能,通過嵌入式C語言結(jié)構(gòu)化編程實現(xiàn)完全可編程。再次重申,這些元素可以通過定義明確的接口與通用處理器進行通信,采用保留極具價值的開發(fā)人員代碼的方式,提取它們(和處理器的)執(zhí)行的詳細信息。
通用式處理器(圖1,綠色顯示區(qū)塊)顯而易見是屬于通用性質(zhì),并且面向用戶/開發(fā)人員免費提供,用于他們的操作系統(tǒng)、應(yīng)用、高水平代碼和其他附加值、功能。與Layerscape架構(gòu)的提取、效率和硬件獨立性的價值保持一致,這一層可以同時支持Power Architecture和ARM內(nèi)核。一個人人皆知的事實是,Power Architecture技術(shù)通常采用二進位字節(jié)順序,而ARM技術(shù)通常屬于小端字節(jié)順序,然而Layerscape架構(gòu)可以輕松地支持這兩種技術(shù)。
顯而易見,模塊化硬件架構(gòu)適用于眾多不同的芯片配置,而且是橫跨平臺配置一致化軟件的單一架構(gòu)。模塊化和靈活的硬件框架包括獨立可擴展的層次,可以實現(xiàn)QorIQ產(chǎn)品組合的性能和電源效率最大化。如上所述,這些配置甚至包括不同指令集系列的通用型處理器,因此允許開發(fā)人員充分利用不同的代碼庫。Layerscape架構(gòu)的模塊性向上升級和向下降級——有時是在相同的物理套接字內(nèi)——同時可以保留客戶的代碼。
例如,一次極為基礎(chǔ)的芯片實現(xiàn)可能只包括低水平接口(例如以太網(wǎng))和高水平通用式處理器(即ARM或者Power Architecture內(nèi)核),之間沒有任何中介加速器。在這種情況下,EPIL層會對幀隊列執(zhí)行包解析、分類和分配(不會顯示)。然后通用式CPU(或者可能為多個CPU)會消耗隊列的這些數(shù)據(jù)包。
在多個以太網(wǎng)端口內(nèi)擴展這一理念,利用Layerscape架構(gòu)內(nèi)置“鏈路聚合”(link aggregation)功能,同樣的芯片可以作為第2層交換機。預(yù)分配容量更加充分的芯片可能在中間APPL包括硬件,以便實現(xiàn)顆粒度級的數(shù)據(jù)包分類、IPsec、SSL、LRO/TSO和其他高級聯(lián)機卸載。與此類似,低水平EPIL可能會識別確定的數(shù)據(jù)包類型,并且直接將它們傳送至中間APPL的相關(guān)加速器,完全繞開通用式處理器。
該解決方案的基礎(chǔ)在于其軟件允許程序員快速且輕松地利用架構(gòu)的能力。這款解決方案首先從優(yōu)化的網(wǎng)絡(luò)庫入手,實現(xiàn)硬件加速功能(例如IPSec、深度包檢測、IP轉(zhuǎn)發(fā)、NAT/FW等),允許嵌入式開發(fā)人員專注于增值軟件的開發(fā),而無需進行性能調(diào)優(yōu)。定義清晰的數(shù)據(jù)路徑和控制API都是許多網(wǎng)絡(luò)應(yīng)用的標準配置,可以采用命令性C語言編程模型針對定制化應(yīng)用輕松實現(xiàn)擴展。除此之外,軟件框架可以提供標準服務(wù)(例如調(diào)試和配置、資源管理、虛擬化和初始化),以便確保易用性。最后,可以提供關(guān)鍵應(yīng)用(例如軟件定義網(wǎng)絡(luò)、有線傳輸和回程、TCP終止和路由選擇)的參考實現(xiàn),這不僅可以降低您的研發(fā)投資成本,而且還能夠加速上市時間。
總結(jié)
Layerscape架構(gòu)將如今性能最強的通信處理器與全世界都在采用的相似的模塊化、高水平編程模型相互結(jié)合。這無需硬件工程設(shè)計的高等級別,便可輕松獲得高級通信引擎。更加重要的是,它不需要重新學(xué)習(xí)每個芯片實現(xiàn)的詳細細節(jié),可以作一代QorIQ LS系列器件由其后繼產(chǎn)品直接取代。界限分明和定義清晰的編程模型可以在芯片之間、代代之間保存下來,這是基于開發(fā)人員的工作構(gòu)建形成,而非將其視為硬件實現(xiàn)變更任務(wù)棄之不用。簡而言之,Layerscape架構(gòu)將開發(fā)團隊最為重要和最具價值的方面保留了下來:即它獨具特色的軟件。再次重申,適當?shù)挠布攀轻尫跑浖摿Φ年P(guān)鍵所在。
評論