《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 雙內(nèi)核嵌入式處理器BCM1250及其應(yīng)用

雙內(nèi)核嵌入式處理器BCM1250及其應(yīng)用

2008-07-28
作者:王 江

??? 摘?要: 介紹了基于MIPS指令集的嵌入式處理器BCM1250的雙內(nèi)核、大容量片內(nèi)緩存、多類型通信接口等主要特性,并對其應(yīng)用方案、啟動過程、操作系統(tǒng)選擇等進(jìn)行了探討。
??? 關(guān)鍵詞: MIPS 嵌入式? RTOS? SMP

?

??? 1983年,斯坦福大學(xué)的John L. Hennessy成功完成了第一個采用RISC理念的MIPS(Microprocessor without Interlocked Pipeline Stages)微處理器。次年,他在硅谷創(chuàng)立了MIPS公司。該公司本身不生產(chǎn)微處理器,只設(shè)計(jì)高性能工業(yè)級的32位和64位CPU的體系結(jié)構(gòu),并且向其他半導(dǎo)體公司提供使用其內(nèi)核(IP)的授權(quán),用于生產(chǎn)基于MIPS而又各具特色的微處理器。目前已經(jīng)有50多家公司申請了授權(quán),相繼推出了一批個性鮮明的微處理器,如PMC-Sierra 公司的RM7000系列、RM9000X2,NEC公司的VR55000、VR7700,而Broadcom公司開發(fā)的BCM1250一舉奪得了當(dāng)年度嵌入式處理器論壇的“最佳高效能嵌入式處理器”大獎。
1 BCM1250處理器
??? BCM1250是Broadcom公司開發(fā)的基于MIPS架構(gòu)的雙內(nèi)核、高性能64位RISC微處理器,采用0.13μm CMOS工藝制造,860引腳BGA封裝(42.5×42.5mm),最高主頻1GHz。芯片集成了兩個名為“SB-1”的內(nèi)核(CPU0和CPU1)。SB-1內(nèi)核不僅實(shí)現(xiàn)了標(biāo)準(zhǔn)的MIPS64指令集架構(gòu),而且增加了MIPS-3D和MIPS-MDMX專用擴(kuò)展指令。在1GHz時,兩個內(nèi)核具有4000MIPS或10Mpps的處理能力。
??? BCM1250是一種緊耦合" title="緊耦合">緊耦合共享內(nèi)存對稱式多處理器(SMP)。SMP系統(tǒng)定義為通過一個公共高速總線" title="高速總線">高速總線,將多個相同的處理器與內(nèi)存和I/O" title="I/O">I/O設(shè)備等一系列外圍設(shè)備連接起來的系統(tǒng)。“對稱”意味著每個處理器在訪問共享內(nèi)存和外圍設(shè)備時,訪問機(jī)制相同。所謂“緊耦合”是指各內(nèi)核個體之間距離很近,并通過一個通用高速總線實(shí)現(xiàn)物理互連。這些內(nèi)核通過公共高速總線共享一個全局內(nèi)存模塊(即共享內(nèi)存)以及諸多外圍設(shè)備。
??? 圖1是BCM1250的內(nèi)部結(jié)構(gòu)框圖。主要特點(diǎn)如下。

?


1.1 高性能雙內(nèi)核和大容量緩存
??? (1) 兩個64位MIPS內(nèi)核SB-1。每個內(nèi)核能夠在一個時鐘周期發(fā)射4條指令。每個內(nèi)核包含32KB 4路組關(guān)聯(lián)指令緩存和32KB 4路組關(guān)聯(lián)數(shù)據(jù)緩存,64對入口的全關(guān)聯(lián)TLB(Translation Lookaside Buffer)。
??? (2)兩個SB-1共享4路組關(guān)聯(lián)二級高速緩存(L2 Cache), 每路128KB,共512KB。與其它系統(tǒng)不同的是,內(nèi)核與I/O DMA主設(shè)備共享這片緩存,就像緩存處于內(nèi)核和SDRAM(內(nèi)存)之間,所有對內(nèi)存的訪問都在二級緩存中檢驗(yàn)。并且,每路Cache可以單獨(dú)設(shè)置為存儲器模式,作為存儲器使用,而且速度不變。
??? (3)面向網(wǎng)絡(luò)分組處理優(yōu)化的片內(nèi)公共高速總線ZBbus,256位(1個緩存線長cache line)數(shù)據(jù)寬度,速率是CPU主頻的一半,將兩個CPU、L2 Cache、SDRAM控制器和I/O橋等連接起來。總線使用MESI協(xié)議以保證兩個CPU、L2 Cache、內(nèi)存和外部設(shè)備的數(shù)據(jù)的一致性。
??? (4) 兩個內(nèi)核之間可以通過指令(ll、lld、sc和scd指令)和中斷等方式進(jìn)行通信。每個內(nèi)核含有一個郵箱(mailbox)寄存器。當(dāng)一個內(nèi)核通過ZBbus總線訪問另一個內(nèi)核的郵箱寄存器時,產(chǎn)生中斷。
1.2 外圍控制模塊和多類型通信接口
??? (1) DDR SDRAM控制器包括兩個通道,每個通道64位數(shù)據(jù)寬度,另加8位ECC數(shù)據(jù),支持兩條JEDEC標(biāo)準(zhǔn)的133MHz DDR DIMM。每個通道的帶寬高達(dá)16Gbps。如果采用DRAM芯片,輔以嚴(yán)格的走線控制,速度可達(dá)到200MHz,帶寬高達(dá)50Gbps。ECC單元能夠檢測2位錯誤,糾正1位錯誤。
??? (2) 一個遵循PCI2.2標(biāo)準(zhǔn)的PCI接口,32位數(shù)據(jù)寬度,最高速率66MHz。內(nèi)部PCI仲裁器支持4個外部設(shè)備。
??? (3) 一個遵循HyperTransport 1.03標(biāo)準(zhǔn)的HyperTransport接口(簡稱HT接口)。HyperTransport的性能比PCI總線高,是PCI總線的升級換代產(chǎn)品,由AMD公司在1999年的微處理器論壇上首先提出。HT設(shè)備采用標(biāo)準(zhǔn)的PCI配置方法。發(fā)送和接收的數(shù)據(jù)寬度都是8位。HT總線的參考時鐘是100MHz,但是發(fā)送數(shù)據(jù)的速率可以是參考時鐘的6倍,而且時鐘的上下邊沿都能觸發(fā)。
??? (4) 三個遵循IEEE802.3標(biāo)準(zhǔn)的MAC控制器,支持10Mbps、100Mbps、1Gbps以太網(wǎng)接口,可以運(yùn)行在全雙工或者半雙工模式,可以設(shè)置收發(fā)數(shù)據(jù)包的最大長度和最短長度,甚至支持16K~1B的大包。MAC控制器支持VLAN——一個便于組建虛擬局域網(wǎng)的標(biāo)志。不僅如此,控制器還能夠識別以太網(wǎng)包的類型、IPv4包的校驗(yàn)和TCP/UDP包的校驗(yàn)和,并且能夠根據(jù)數(shù)據(jù)包的目的地址進(jìn)行過濾,選擇是否接收廣播包??刂破靼?2個RMON統(tǒng)計(jì)寄存器,可以統(tǒng)計(jì)接收和發(fā)送的數(shù)據(jù)量、失敗次數(shù)、CRC出錯次數(shù)等。所以,有的資料將BCM1250稱作網(wǎng)絡(luò)處理器,因?yàn)槠銶AC的功能比普通MAC強(qiáng)大。
??? (5) 除了標(biāo)準(zhǔn)的以太網(wǎng)模式,網(wǎng)絡(luò)接口還能夠配置成Packet FIFO模式。在此模式下,MAC控制器引腳復(fù)用作Packet FIFO,設(shè)置為8位或者16位數(shù)據(jù)通道,速率可達(dá)208MHz。
??? (6) 兩個串口" title="串口">串口既可以工作于同步模式,也可以工作于異步模式(UART)。同步模式的最高速率為55Mbps,異步模式的最高速率為5Mbps。 兩個串口的模式選擇分別由AD[12]和AD[14]引腳在啟動時的電平?jīng)Q定。當(dāng)然,CPU可以通過系統(tǒng)配置寄存器改變串口模式。串口的同步模式分為兩種子模式:HDLC和Transparent。
??? (7) 設(shè)備控制器向外引出通用總線,用于連接外圍設(shè)備。它有8個片選信號CS[0:7],其中CS[0]專用于連接bootrom,CS[7]用于連接PCMCIA設(shè)備。每個片選空間的最大容量為256MB,可以獨(dú)立設(shè)置時序、數(shù)據(jù)寬度、地址空間等參數(shù)。上電時,CS[0]映射到4MB物理空間,從0x1FC00000~0x1FFFFFFF。0x1FC00000是MIPS處理器的啟動中斷入口地址。
??? (8) 一個遵循PCMCIA 2.1標(biāo)準(zhǔn)的PCMCIA接口,支持外接PCMCIA存儲卡的熱插拔,能夠根據(jù)卡的插入和拔出相應(yīng)地上下電。PCMCIA接口、中斷、通用輸入輸出口三者的引腳是復(fù)用的,設(shè)計(jì)師應(yīng)根據(jù)實(shí)際需要決定取舍。PCMCIA接口需要消耗10個GPIO引腳。
??? (9) 16個GPIO引腳既可以配置成中斷引腳,也可以配置成普通數(shù)據(jù)輸入輸出引腳或者PCMCIA接口。
??? (10) 兩個SMBus接口,遵循SMBus(系統(tǒng)管理總線)標(biāo)準(zhǔn)1.1,與I2C總線兼容。最高工作頻率為400kHz。系統(tǒng)可以選擇從SMBus 0接口的EEPROM啟動。啟動方式由引腳AD[17:18]在上電時的電平?jīng)Q定。
??? (11) 多個DMA控制器。每個同步串口含有一個發(fā)送和接收DMA通道,每個網(wǎng)口有兩個支持QoS的發(fā)送和接收DMA通道。還有4個專用于存儲器和其它設(shè)備(例如PCI,F(xiàn)lash)之間搬運(yùn)數(shù)據(jù)的DMA。
??? (12) I/O橋0和I/O橋1將外圍模塊和內(nèi)部高速總線ZBbus隔離開來。
??? (13) 兩個看門狗(Watchdog),4個通用定時器,4個40bit性能計(jì)數(shù)寄存器。定時器的最小單位為1μs。
??? (14) 一個符合IEEE 1149.1標(biāo)準(zhǔn)的JTAG接口,方便了硬件調(diào)試和測試。
1.3 其它
??? (1) 低功耗,運(yùn)行在800MHz主頻下的功耗為8~10W。
??? (2) 芯片既可以工作于Big Endian模式,也可以工作于Little Endian模式,取決上電時引腳AD[22]的電平。
??? (3) 為減少抖動,外部100MHz時鐘以差分信號方式輸入到芯片,經(jīng)過內(nèi)部的PLL倍頻或分頻,分別輸送給內(nèi)核、存儲器、ZBbus、HT接口、定時器、波特率發(fā)生器等單元。
??? (4) 內(nèi)核電壓和HT接口電壓為1.2V,DDR SDRAM接口電壓為2.5V,其它模塊接口電壓為3.3V。
2 應(yīng)用與實(shí)現(xiàn)的探討
2.1 典型應(yīng)用

??? 圖2是BCM1250的典型應(yīng)用框圖,配合不同的外圍器件,可以構(gòu)成多種應(yīng)用方式。PMC插槽可以擴(kuò)展多種應(yīng)用,例如網(wǎng)卡、DSP卡、IPSec卡等,DDR SDRAM既可以是內(nèi)存條,也可以是焊在電路板上的SDRAM芯片。串行設(shè)備可以是EEPROM或者實(shí)時時鐘芯片等,其它設(shè)備可以是USB控制器等。本系統(tǒng)的特點(diǎn)是可靠性高、擴(kuò)展性強(qiáng)、通信接口多、占用空間少,適合于大型路由器、VoIP網(wǎng)關(guān)、交換機(jī)、無線基站等高端場合。

?


2.2 啟動
??? 因?yàn)槭请p核CPU,所以在實(shí)現(xiàn)過程中應(yīng)特別注意合理安排系統(tǒng)的啟動順序" title="啟動順序">啟動順序。上電后,上電復(fù)位信號COLDRES_L必須保持為低電平直到電源和參考時鐘穩(wěn)定在工作范圍之內(nèi);然后BCM1250讀取配置PLL倍頻系數(shù)的引腳電平,從AD引腳讀取系統(tǒng)其它配置信息,例如,是否選用PCI內(nèi)部仲裁器,串口是否工作在同步模式等。啟動時,芯片根據(jù)AD[17:18]信號電平,選擇從掛在通用總線CS0上的Flash,或者從SMBus 0口的串行EEPROM讀取啟動代碼。
??? 圖3以Windriver公司的VxWorks嵌入式實(shí)時操作系統(tǒng)為例,說明了啟動順序。其它操作系統(tǒng)的啟動順序類似。CPU0首先初始化,CPU1保持啟動狀態(tài),等待CPU0完成基本的內(nèi)核初始化、串口初始化、L1 Cache和L2 Cache的初始化;然后CPU0對CPU1初始化,包括內(nèi)核的基本初始化和CPU1內(nèi)部的L1 Cache初始化;接著,CPU1再次等待,CPU0對DDR SDRAM進(jìn)行初始化,再將操作系統(tǒng)等數(shù)據(jù)從ROM復(fù)制到SDRAM,通知CPU1,然后啟動操作系統(tǒng);CPU1收到通知后,也將數(shù)據(jù)從ROM復(fù)制到SDRAM,運(yùn)行操作系統(tǒng)的復(fù)本。較早地初始化串口,是為了便于通過計(jì)算機(jī)屏幕及時監(jiān)測系統(tǒng)的啟動狀況,判斷故障所在。

?


2.3? 選擇操作系統(tǒng)的考慮
??? 因?yàn)锽CM1250是一種SMP系統(tǒng),所以選擇操作系統(tǒng)時應(yīng)考慮SMP系統(tǒng)的特點(diǎn),充分發(fā)揮BCM1250的雙內(nèi)核特性。與單核處理器相比,SMP系統(tǒng)的優(yōu)勢是顯然的:
??? (1) 在完成一組任務(wù)時,兩個CPU并行運(yùn)行比一個CPU單獨(dú)運(yùn)行的速度快得多。
??? (2) 即使有一個CPU出現(xiàn)了致命故障,另一個CPU也能無縫地接管它的工作,降低系統(tǒng)的停工時間。
??? SMP系統(tǒng)與分布式多處理器的區(qū)別在于:在一個分布式多處理器系統(tǒng)中,處理單元個體通常以單獨(dú)節(jié)點(diǎn)的形式存在,每個這樣的節(jié)點(diǎn)中的處理器類型可以不同,并且各自配備內(nèi)存和I/O設(shè)備。每個處理器可以運(yùn)行自己的操作系統(tǒng),只通過一種互連方式(例如以太網(wǎng)),利用消息或旗語來與其它處理器同步。而緊耦合共享內(nèi)存SMP系統(tǒng)則不同。在SMP系統(tǒng)中,所有的處理器都運(yùn)行操作系統(tǒng)的同一個副本,該操作系統(tǒng)可協(xié)調(diào)每個相似的CPU上同時發(fā)生的活動。由于緊耦合CPU所訪問的是一個公共內(nèi)存區(qū),所以它們必須通過一種基于低延時共享內(nèi)存的通信機(jī)制實(shí)現(xiàn)相互之間的同步。這對操作系統(tǒng)提出了要求。
??? 其次,如果操作系統(tǒng)選擇得當(dāng),能使硬件中確切的處理單元數(shù)對應(yīng)用程序員透明。于是應(yīng)用軟件就能不進(jìn)行任何針對SMP的修改而運(yùn)行。
??? 再次,BCM1250同時有兩個任務(wù)在運(yùn)行,兩個CPU都可以處理中斷,所以操作系統(tǒng)還必須具備“旋轉(zhuǎn)鎖”等機(jī)制,保證任務(wù)的合理調(diào)度和中斷的及時處理。
??? 業(yè)界流行的MontaVista Linux專業(yè)版、VxWorks等RTOS均支持SMP系統(tǒng)。當(dāng)然,用戶也可以將單處理器RTOS擴(kuò)展為支持SMP的系統(tǒng)。
??? 雖然BCM1250比單內(nèi)核處理器在結(jié)構(gòu)上只多了一個內(nèi)核,但是在啟動順序、任務(wù)調(diào)度、中斷管理等方面卻有著較大的差別,相應(yīng)地對RTOS提出了較高的要求。BCM1250主要用于高端設(shè)備,在國內(nèi)的開發(fā)應(yīng)用還不普及。
參考文獻(xiàn)
1 Broadcom Inc.BCM1250 User's Manual.2002.10
2 Broadcom Inc.BCM1250 Product Brief.2002
3 Srinivas Dharmasanam.面向多處理器應(yīng)用的實(shí)時操作系統(tǒng)設(shè)計(jì)策略.電子工程專輯,2004;(2)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。