《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于龍芯2E的AMC處理器模塊設(shè)計(jì)
基于龍芯2E的AMC處理器模塊設(shè)計(jì)
岑 凡,邢 韜
摘要: 介紹基于國(guó)產(chǎn)通用處理器的嵌入式高級(jí)夾層卡(AMC)處理器模塊的設(shè)計(jì)和實(shí)現(xiàn)。該模塊以龍芯2E CPU為核心,板卡設(shè)計(jì)符合AMC規(guī)范,可以直接應(yīng)用于符合新型先進(jìn)電信計(jì)算構(gòu)架規(guī)范的計(jì)算機(jī)系統(tǒng)。模塊配有適用于嵌入式系統(tǒng)互聯(lián)的串行RapidIO接口,可以提供充足的有效帶寬用于數(shù)據(jù)通信和系統(tǒng)配置。給出模塊的芯片組設(shè)計(jì)和軟件配置。
Abstract:
Key words :

1、概述

    龍芯系列CPU是中國(guó)科學(xué)院計(jì)算技術(shù)研究所自主研發(fā)的高性能通用CPU。龍芯2號(hào)超標(biāo)量處理器及其IP系列主要面向桌面應(yīng)用和部分高端嵌入式應(yīng)用。其中,龍芯2E微處理器是一款實(shí)現(xiàn)64位MIPS III指令集的通用RISC處理器。其綜合性能已經(jīng)達(dá)到高端奔騰III處理器以及中、低端奔騰4處理器的水平。目前,采用龍芯系列處理器的個(gè)人計(jì)算機(jī)、便攜式計(jì)算機(jī)和嵌入式計(jì)算機(jī)已經(jīng)得到推廣。

    先進(jìn)電信計(jì)算構(gòu)架(Advanced Telecom ComputingArchitecture, ATCA)作為開放式、可互操作的電信行業(yè)標(biāo)準(zhǔn),正在成長(zhǎng)為新一代電信級(jí)模塊化通信平臺(tái)構(gòu)架。目前,多種構(gòu)架的主流處理器在此平臺(tái)上都有應(yīng)用,如Intel公司的Xeon系列x86處理器,F(xiàn)reescale公司的MPC8xxx系列PowerPC處理器。本文介紹的采用龍芯2E處理器的高級(jí)夾層卡(Advanced Mezzanine Card, AMC)計(jì)算模塊是ATCA規(guī)范定義的標(biāo)準(zhǔn)模塊,可以直接應(yīng)用于符合該規(guī)范的系統(tǒng)?;贏TCA的廣泛用途和良好的發(fā)展前景,這種模塊必將大大擴(kuò)展龍芯系列處理器在電信服務(wù)、信號(hào)處理等高端領(lǐng)域的應(yīng)用。

2、ATCA 系統(tǒng)

    2.1 ATCA平臺(tái)

    ATCA標(biāo)準(zhǔn)即先進(jìn)的電信計(jì)算平臺(tái),是為下一代融合通信及數(shù)據(jù)網(wǎng)絡(luò)的應(yīng)用提供一個(gè)高性價(jià)比的、兼容的、可擴(kuò)展的硬件構(gòu)架,同時(shí)以模塊化結(jié)構(gòu)的形式呈現(xiàn),以支持符合現(xiàn)代傳輸需求的技術(shù)或應(yīng)用。ATCA標(biāo)準(zhǔn)由一個(gè)核心規(guī)范PICMG3.0和一系列輔助規(guī)范組成。在核心規(guī)范中定義了機(jī)械結(jié)構(gòu)、散熱管理、電源分配和系統(tǒng)管理,而輔助規(guī)范定義了多種交換互聯(lián)的構(gòu)架。與同是PICMG(PCI Industrial Computer Manufacturers Group) 組織制定的前一代標(biāo)準(zhǔn)CompactPCI相比,ATCA提供了更大的帶寬、功率與更好的冷卻能力,節(jié)省了更多電路板面積,整合了基底層系統(tǒng)管理功能,同時(shí)也移除了可能導(dǎo)致單點(diǎn)失效的并行總線。表1列出了2代標(biāo)準(zhǔn)部分內(nèi)容的比較。

    2.2 AMC模塊

    AMC適用于但不僅限于ATCA載板。其基本規(guī)范定義了機(jī)械結(jié)構(gòu)、管理、供電、散熱和交換互聯(lián)。AMC通過(guò)GbE, PCI Express和Serial RapidIO等高性能串行通道互聯(lián),支持熱插拔,不丟失數(shù)據(jù)。AMC模塊采用前操作方式,插拔過(guò)程不會(huì)對(duì)背板或其他板卡產(chǎn)生影響,擁有智能平臺(tái)管理接口(Intelligent Platform Management Interface, IPMI),保證ATCA載板與模塊之間的兼容。通過(guò)AMC可以實(shí)現(xiàn)模塊化設(shè)計(jì)并提高系統(tǒng)靈活性。又由于其性價(jià)比及其他優(yōu)點(diǎn),因此AMC越來(lái)越多地被看作設(shè)備中的現(xiàn)場(chǎng)可更換單元(Field Replaceable Units, FRU)。種類豐富的AMC以多樣的功能適用于廣泛的市場(chǎng),尤其能夠滿足小型化和低成本的需求。AMC夾層卡的典型功能包括電信接口、處理器(CPU, DSP, FPGA)與存儲(chǔ)。

3、模塊整體框架

    該模塊是一個(gè)功能完整、可以獨(dú)立工作的小型化計(jì)算機(jī)系統(tǒng)。該系統(tǒng)主要由龍芯2E處理器、內(nèi)存模塊、北橋和相應(yīng)的外圍接口組成,其結(jié)構(gòu)如圖1所示。

    龍芯2E處理器的外圍接口主要包括64位SYSAD 總線和DDR SDRAM控制器總線,系統(tǒng)其他接口均需要由橋片提供。為了使系統(tǒng)具備更加先進(jìn)的通信接口和靈活配置的能力,采用FPGA作為北橋芯片的方案。利用FPGA具有豐富I/O資源的特點(diǎn),通過(guò)對(duì)FPGA的開發(fā),系統(tǒng)具有可以用于配置、監(jiān)測(cè)和調(diào)試的RS232串口、以太網(wǎng)和JTAG-UART接口,同時(shí)還具備高帶寬、低延遲的高速RapidIO接口。其中,F(xiàn)PGA融合了傳統(tǒng)意義的北橋、南橋的部分功能,形成適合本模塊應(yīng)用的接口芯片組。板載的Flash ROM用于存儲(chǔ)啟動(dòng)程序、操作系統(tǒng)和其他用戶需要存放的代碼。

4、關(guān)鍵技術(shù)特點(diǎn)

    4.1 芯片組

    芯片組設(shè)計(jì)是實(shí)現(xiàn)模塊功能的重點(diǎn)和難點(diǎn)。由于本模塊中沒(méi)有分離的北橋和南橋,因此后文將其更準(zhǔn)確地表示為“芯片組”。盡管處理器一直是研究和市場(chǎng)的熱點(diǎn),但芯片組會(huì)直接影響最終系統(tǒng)的功能和性能,在系統(tǒng)中同樣具有十分重要的地位。

    龍芯2E處理器采用64位SYSAD總線,而ATCA和AMC規(guī)范定義了系統(tǒng)內(nèi)互聯(lián)的標(biāo)準(zhǔn)是RapidIO、PCI Express、InfiniBand和交換式以太網(wǎng)等基于串行通信和包交換的通信協(xié)議。目前,實(shí)驗(yàn)室已有的ATCA構(gòu)架的實(shí)驗(yàn)平臺(tái)是基于RapidIO協(xié)議構(gòu)建的。因此,模塊設(shè)計(jì)規(guī)范化的要求和實(shí)際條件決定芯片組必須具備以下特征:
    (1)為處理器提供SYSAD總線接口;
    (2)為模塊提供串行RapidIO接口;
    (3)可以修改通信協(xié)議,以方便接入其他ATCA系統(tǒng)。

    市場(chǎng)上并沒(méi)有同時(shí)滿足前2條要求的ASIC產(chǎn)品,而第(3)條要求更需要芯片組有可重構(gòu)的能力。基于此考慮,最終確定了FPGA的實(shí)現(xiàn)方案。

    對(duì)于大規(guī)模數(shù)字系統(tǒng)的設(shè)計(jì),模塊化思想已經(jīng)被公認(rèn)為行之有效的設(shè)計(jì)方法。Altera公司的SOPC工具可以方便地幫助設(shè)計(jì)者實(shí)現(xiàn)模塊化設(shè)計(jì)。它提供了大量成熟的IP和公開的、可裁剪的Avalon總線。用戶只需將自己的獨(dú)特需求封裝成帶有Avalon接口的模塊,就可以集成到FPGA系統(tǒng)中,與其他通用部件協(xié)同工作。根據(jù)對(duì)芯片組功能的分析,利用SOPC工具,采用模塊化的方法設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA的芯片組,其結(jié)構(gòu)如圖2所示。其中,SYSAD2Avalon模塊實(shí)現(xiàn)了SYSAD總線到Avalon總線的轉(zhuǎn)換。龍芯2E處理器可以通過(guò)此模塊主動(dòng)地訪問(wèn)芯片組內(nèi)的寄存器等資源,也可以連接到RapidIO, ETH等模塊,實(shí)現(xiàn)對(duì)外I/O通信。同時(shí),由于龍芯2E處理器的2個(gè)特點(diǎn):(1)集成了內(nèi)存控制器;(2)系統(tǒng)總線(SYSAD)分為Master和Slave狀態(tài),支持外部設(shè)備和DDRSDRAM的直接通信,因此SYSAD2Avalon模塊又可以將處理器掛載的內(nèi)存在Avalon總線一側(cè)映射為一段地址空間,允許其他模塊主動(dòng)訪問(wèn)龍芯2E 的存儲(chǔ)空間。這種互易的主從關(guān)系決定了該模塊在Avalon總線一側(cè)同時(shí)具有一個(gè)主接口和一個(gè)從接口。在這種結(jié)構(gòu)下需要注意的是,在系統(tǒng)設(shè)計(jì)時(shí)必須采取一定的保護(hù)措施,保證龍芯2E的內(nèi)存免于錯(cuò)誤或惡意的外部訪問(wèn)。

    圖中陰影部分的NiosII處理器和片內(nèi)存儲(chǔ)器可以方便地測(cè)試、驗(yàn)證其他部分,而在AMC模塊接入ATCA系統(tǒng)后,可以將其移除,不會(huì)影響芯片組的功能。

    4.2 RapidIO

    RapidIO是一種高性能、低引腳數(shù)、基于包交換的系統(tǒng)級(jí)互聯(lián)協(xié)議。面向多種嵌入式互聯(lián)應(yīng)用,其目標(biāo)是建立緊耦合系統(tǒng)內(nèi)的一種開放式互聯(lián)標(biāo)準(zhǔn),主要是指芯片到芯片和電路板到電路板之間。主要針對(duì)的應(yīng)用目標(biāo)包括單片機(jī)、DSP、存儲(chǔ)器、網(wǎng)絡(luò)/通信處理器等。RapidIO目前支持存儲(chǔ)器映射I/O、端口訪問(wèn)、系統(tǒng)維護(hù)和Cache一致性等6類十余種通信事務(wù),可以支持的編程模式包括存儲(chǔ)器映射、基于端口的消息傳遞和全局共享存儲(chǔ)器。各種通信事務(wù)的絕大部分功能由硬件完成,對(duì)軟件是透明的。

    RapidIO協(xié)議共有3層層次結(jié)構(gòu),從高到低依次為:

    (1)邏輯層

    定義數(shù)據(jù)包格式及端點(diǎn)設(shè)備發(fā)起并完成1 次事務(wù)的必要信息。RapidIO交換機(jī)無(wú)須解釋流經(jīng)的數(shù)據(jù)包,采用這種結(jié)構(gòu)設(shè)計(jì)很容易實(shí)現(xiàn)未來(lái)擴(kuò)展協(xié)議的兼容性。

    (2)傳輸層

    定義RapidIO的地址空間并為數(shù)據(jù)包在端點(diǎn)設(shè)備間傳輸提供必要的路由信息。

    (3)物理層

    描述設(shè)備級(jí)接口,明確說(shuō)明數(shù)據(jù)包傳輸機(jī)制、流控機(jī)制、電氣特性和底層錯(cuò)誤處理。物理層包括8位/16位并行接口標(biāo)準(zhǔn)和1×/4×串行接口標(biāo)準(zhǔn)。

    ATCA規(guī)范中支持的物理層接口為串行RapidIO。FPGA實(shí)現(xiàn)串行RapidIO接口有2種方式:(1)在內(nèi)部實(shí)現(xiàn)完整的3 層協(xié)議的功能;(2)FPGA 實(shí)現(xiàn)上面2層,由外置的串行收發(fā)器實(shí)現(xiàn)物理層的功能。選用何種方式取決于FPGA是否內(nèi)置了串行收發(fā)器。為了使電路設(shè)計(jì)簡(jiǎn)潔,選用了內(nèi)置串行收發(fā)器的Stratix II GX型FPGA。這種器件專為高速串行通信設(shè)計(jì),內(nèi)置的收發(fā)器可以支持高達(dá)6.375 Gb/s的速率。在高頻率的條件下,收發(fā)器的性能、設(shè)置和電路設(shè)計(jì)都會(huì)影響性能表現(xiàn)甚至功能實(shí)現(xiàn)。因此, 在接收端測(cè)量了模塊進(jìn)行3.125 Gb/s串行RapidIO通信時(shí)的眼圖,見圖3。

    可以看出,收發(fā)器被設(shè)置為引入一定幅度的波形預(yù)加重,這樣可以更好地抵抗高頻衰減。眼圖張開的幅度滿足RapidIO規(guī)范要求的接收端200 mV的差分信號(hào)幅度。

    最終設(shè)計(jì)的模塊如圖4 所示。


圖4 龍芯2E處理器AMC模塊

    4.3 軟件部分

    為了支持功能應(yīng)用的實(shí)現(xiàn), 該處理器模塊配備了由BIOS(Basic I/O System)和Linux操作系統(tǒng)組成的軟件平臺(tái)。

    龍芯2號(hào)系列處理器的各種開發(fā)系統(tǒng)一直采用PMON作為BIOS,它具有功能強(qiáng)大、可擴(kuò)展性好的優(yōu)點(diǎn)。PMON作為最常用的MIPS處理器的BIOS,只要一個(gè)串口、512 KB ROM、128 KB RAM就能實(shí)現(xiàn)全部特性。它不僅支持BIOS啟動(dòng)配置、內(nèi)核加載,還支持程序調(diào)試、內(nèi)存寄存器顯示和設(shè)置、內(nèi)存反匯編等。在實(shí)際工作過(guò)程中,PMON首先對(duì)處理器和芯片組進(jìn)行初始化,通過(guò)設(shè)置板級(jí)相關(guān)的寄存器對(duì)系統(tǒng)中的設(shè)備進(jìn)行配置,然后從Flash存儲(chǔ)器中加載操作系統(tǒng)。由于PMON是與硬件結(jié)合最緊密的軟件,因此同時(shí)可以作為硬件調(diào)試的有力工具。

    操作系統(tǒng)采用了經(jīng)過(guò)裁剪的2.6.18版Linux內(nèi)核。由于RapidIO系統(tǒng)在啟動(dòng)時(shí)會(huì)對(duì)所有節(jié)點(diǎn)進(jìn)行枚舉,因此采取在內(nèi)核中集成RapidIO驅(qū)動(dòng)程序的方式。目前,Linux開發(fā)者已經(jīng)設(shè)計(jì)了針對(duì)RapidIO網(wǎng)絡(luò)的驅(qū)動(dòng)程序,沿用已有的構(gòu)架,并針對(duì)自己的設(shè)備進(jìn)行了移植。RapidIO互聯(lián)網(wǎng)絡(luò)上的Linux系統(tǒng)主要由4 個(gè)部分組成:

    (1)主端口(Master Port)

    Linux通過(guò)主端口向RapidIO 網(wǎng)絡(luò)進(jìn)行各種通信事務(wù)。

    (2)設(shè)備(Device)

    設(shè)備是RapidIO網(wǎng)絡(luò)中定義的網(wǎng)絡(luò)節(jié)點(diǎn)。

    (3)交換機(jī)(Switch)

    交換機(jī)是一種特殊的設(shè)備,用于轉(zhuǎn)發(fā)節(jié)點(diǎn)間通信的數(shù)據(jù)。

    (4)網(wǎng)絡(luò)(Network)

    網(wǎng)絡(luò)是指由節(jié)點(diǎn)和交換機(jī)組成的互聯(lián)系統(tǒng)。

    每個(gè)部分分別被定義成一種數(shù)據(jù)結(jié)構(gòu),用于對(duì)硬件的抽象。RapidIO規(guī)范規(guī)定了系統(tǒng)初始化時(shí)發(fā)現(xiàn)和枚舉的算法和過(guò)程,這些數(shù)據(jù)結(jié)構(gòu)在此過(guò)程中進(jìn)行初始化,完備描述了整個(gè)網(wǎng)絡(luò)的情況。

    RapidIO子系統(tǒng)同樣基于2.6版的Linux內(nèi)核設(shè)備模型(Lniux Device Model)。在實(shí)現(xiàn)過(guò)程中,需要將一條RapidIO總線注冊(cè)到子系統(tǒng)中,然后每一個(gè)設(shè)備再注冊(cè)為該總線的一個(gè)子節(jié)點(diǎn)。這一點(diǎn)與傳統(tǒng)的PCI總線設(shè)備相同。而特有的match和dev attrs函數(shù)分別實(shí)現(xiàn)了設(shè)備識(shí)別和寄存器數(shù)據(jù)結(jié)構(gòu)映射的功能。

5、結(jié)束語(yǔ)

    本文所述的模塊在主頻759MHz的龍芯2E處理器條件下運(yùn)行穩(wěn)定,軟硬件協(xié)同工作正常。在ATCA系統(tǒng)中,與其他具有RapidIO接口的設(shè)備,包括Freescale公司的多款PowerPC處理器、FPGA和RapidIO交換芯片通信正常。實(shí)際應(yīng)用表明,該模塊擴(kuò)展了龍芯系列處理器的用途,是對(duì)高性能計(jì)算系統(tǒng)國(guó)產(chǎn)化進(jìn)行的有益嘗試。

    為了使設(shè)計(jì)更加實(shí)用,今后將在以下2個(gè)方面進(jìn)行深入的研究:

    (1)適當(dāng)調(diào)整任務(wù)負(fù)載、工作頻率,對(duì)模塊在各種條件下的功耗、可靠性等指標(biāo)進(jìn)行完備的測(cè)試。

    (2)目前FPGA作為芯片組只應(yīng)用了其I/O接口的功能,其邏輯資源還有較大余量。完全可以針對(duì)特定任務(wù)進(jìn)行開發(fā),使FPGA同時(shí)成為協(xié)處理器,分擔(dān)處理器的工作,這將大幅度提高模塊的整體性能。

    致謝 中國(guó)科學(xué)院計(jì)算技術(shù)研究所龍芯技術(shù)服務(wù)中心提供的技術(shù)支持和資料對(duì)本項(xiàng)目有很大的幫助,在此向他們表示衷心感謝。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。