1 前言
對稱多處理(SMP)是一種基本的并行處理結(jié)構(gòu).它的基本特點是所有處理器對系統(tǒng)公共資源的訪問權(quán)限完全相同,即處理器之間完全對稱。SMP系統(tǒng)在軟件方面具有容易編程的特點。伴隨著并行計算及多核處理器的流行,SMP系統(tǒng)得到越來越廣泛的應(yīng)用。
MPC7448是Freescale公司推出的一款高性能PowerPC處理器芯片,該芯片采用超標(biāo)量e600內(nèi)核。該處理器具備高性能、低功耗的特點,非常適合于尖端計算、嵌入式網(wǎng)絡(luò)通信、信號處理等應(yīng)用場合。Tsi109是Tundra公司專為PowerPC處理器設(shè)計的主橋芯片,它支持Freescale的MPC74xx和IBM的PPC750xx系列芯片。Tsi148是Tundra公司推出的PCI/X-VME橋接芯片。
本文的嵌入式SMP系統(tǒng)基于MPC7448芯片,結(jié)合主橋芯片Tsi109和橋接芯片Tsi148設(shè)計的一個vME單板機。該系統(tǒng)具備優(yōu)秀的計算性能,具有良好的通信能力。文章介紹了該嵌入式系統(tǒng)的硬件系統(tǒng)設(shè)計和系統(tǒng)軟件開發(fā)過程。
2 系統(tǒng)硬件設(shè)計
2.1 系統(tǒng)整體簡介
構(gòu)建SMP系統(tǒng)需要處理器和主橋芯片的硬件支持,MPC7448和Tsi109支持sMP系統(tǒng),Tsi109支持兩個處理器。
Tsi109提供如下接口功能:處理器接口;DDR2內(nèi)存系統(tǒng)接口;HLP接口;PCI/X總線接口;還集成了千兆以太網(wǎng)口和UART口。Tsi109提供了接口控制和接口間的高速互連功能,因此,本文以Tsi109為中心進(jìn)行系統(tǒng)構(gòu)建。系統(tǒng)整體結(jié)構(gòu)如圖(1)所示,系統(tǒng)充分利用了Tsi109提供的接口功能,并通過PCI/X總線擴展了VME總線和PMC接口。
圖1 系統(tǒng)整體結(jié)構(gòu)圖
2.2 處理器接口設(shè)計
可以把該接口信號分為三類:時鐘信號、單向點對點信號和普通信號。說明如下:(1)Tsi109提供三個完全相同的時鐘信號,可以為2個處理器及反饋使用。(2)單向點對點信號主要是仲裁信號和中斷信號。分為兩組分別接兩個處理器。(3)普通信號為兩個處理器共用。由于對兩個處理器共用,在布線時需要選擇合適的拓?fù)浣Y(jié)構(gòu),推薦使用Y型結(jié)構(gòu)。
為了區(qū)分系統(tǒng)中的兩個處理器。把它們標(biāo)識為CPUO和CPU1。系統(tǒng)可以通過兩種方式進(jìn)行識別:(1)讀取自己的寄存器位MSSCR0[ID]。(2)讀取Tsi109的寄存器位PB_BUS_MS_SELE CT[WAMI]。連接到PB_BGn[0]的處理器總讀取到0,連接到PB_BGn[l]的處理器總讀取到1。我們把連接PB_BGn[0]的處理器設(shè)置為CPU0.把另一個設(shè)置為CPU1。
2.3 存儲系統(tǒng)設(shè)計
Tsi109支持DDR2-400內(nèi)存系統(tǒng)。內(nèi)存接口包括數(shù)據(jù)信號、時鐘信號、地地命令信號和控制信號。其中,數(shù)據(jù)信號包括64位數(shù)據(jù)位、8位校驗位和18對源同步差分時鐘信號;時鐘信號包括6對差分時鐘信號,分為兩組分別由寄存器位SD_D[O,l]_CTRL[CLK_DISABLE]控制;控制信號分兩組,包括2個時鐘使能、4個0DT使能和4個片選,因此,Tsi109支持2個DIMM內(nèi)存插槽,可以使用1-Bnak或2-Bank內(nèi)存條。
本文使用內(nèi)存顆粒K4T51083QC通過位擴展方式構(gòu)建內(nèi)存系統(tǒng),使用第一組控制信號。把數(shù)據(jù)位和校驗位依次分為9個字節(jié),源腳步信號和字節(jié)號依次對應(yīng)。每個字節(jié)對應(yīng)一個芯片;控制信號、地址/命令信號為所有芯片共用;為了布線方便, 兩個芯片使用一個時鐘信號,為此,在內(nèi)存初始化時不但要設(shè)置DIMMO寄存器組,還要正確設(shè)置SD_D{l}_CTRL[CLK—DISABLE]。上述信號中.?dāng)?shù)據(jù)信號是點對點連接,DDR2內(nèi)存系統(tǒng)對這些信號提供了片上終端(0DT),因此,拓?fù)浣Y(jié)構(gòu)簡單,信號完整性也容易得到保證,為方便布線還可以進(jìn)行片內(nèi)交換;其余信號都是一對多連接,必須選擇合適的拓?fù)浣Y(jié)構(gòu)和布線約束,并且要對這些信號添加終端匹配電阻。通過仿真。選擇使用對稱二叉樹結(jié)構(gòu)進(jìn)行布局、布線,校驗芯片掛在第一個節(jié)點上。
HLP接口是Tsi109提供的一種低速存儲器接口,可以掛載ROM、EEPROM、FLASH、SRAM、NVRAM等多種存儲設(shè)備。該接口有4個片選信號??梢話燧d4個獨立外設(shè)。本系統(tǒng)充分使用了這4個片選信號,在HLP_CS0上掛載AM29LV040B作為啟動FLASH。該接口有兩種工作模式:鎖存模式和非鎖存模式。鎖存模式下地址信號更加穩(wěn)定,而且,由于獨立使用32位HLP_AD用于地址信號和數(shù)據(jù)信號,可以使用大容量Flash芯片,還可以使用32位器件。本系統(tǒng)全部使用鎖存模式。
HLP是系統(tǒng)中重要接口。在系統(tǒng)加電及完成內(nèi)部寄存器初始化后,MPC7448開始向Ox0_FFF0_0100位置讀取第一條外部指令.這一讀取指令被Tsi109自動引導(dǎo)到HLP接口與HLP_CS0連接設(shè)備上。因此,這里要保存系統(tǒng)的啟動程序,操作系統(tǒng)和應(yīng)用程序也保存在該接口的存儲設(shè)備上。
2.4 通信系統(tǒng)設(shè)計
本系統(tǒng)使用PCI/X-VME橋接芯片Tsil48進(jìn)行VME總線設(shè)計。Tsil48的信號可以分為PCI/X接口信號和VME接口信號。PCI/X接口信號連接系統(tǒng)PCI,X總線,占用PCI總線的PCI_REQ1,PCI_GNTl;VME接口信號通過TI公司VME收發(fā)芯片SN74VMEH2250l和VME連接器相連。Tsil48支持2eSST協(xié)議。
Tsi109集成以太網(wǎng)控制接口,可以連接兩個物理連接設(shè)備(PHY)。本文使用Broadcom公司的以太網(wǎng)收發(fā)芯片BCM546l進(jìn)行網(wǎng)口設(shè)計。BCM5461與Tsi109的連接使用千兆比特介質(zhì)無關(guān)接口(GMⅡ)協(xié)議,與RJ45接口的連接通過隔離變壓器。
串口是系統(tǒng)調(diào)試中一個方便接口。Tundra公司把串口集成到Tsi109中,簡化了系統(tǒng)串口設(shè)計。串口的電路設(shè)計較為簡單,使用一個電平轉(zhuǎn)換芯片MAx3222連接Rs232連接器。
2.5 系統(tǒng)時鐘和電源設(shè)計
系統(tǒng)使用一個33MHz的晶振作為基準(zhǔn)時鐘源,接入Tsi109的輸入管腳CG_REF.經(jīng)過內(nèi)部倍頻、緩沖,生成處理器接口、DDR2內(nèi)存接口、PCI/X接口及Tsi109內(nèi)部所需的時鐘信號。處理器接口和DDR2內(nèi)存接口的倍頻因子可以通過CC_PB_SELECT[0..2]和CG_SD_SELECT[0..2]進(jìn)行配置。
電源設(shè)計是系統(tǒng)設(shè)計中非常重要的組成部分,電源的穩(wěn)定性將影響到系統(tǒng)的可靠性和穩(wěn)定性。系統(tǒng)中電壓值較多,多電壓器件對加電時序也有一定要求。本文通過兩個相互聯(lián)系的步驟進(jìn)行電源設(shè)計:(1)分析系統(tǒng)所需電壓值,進(jìn)行電壓值的最大功耗統(tǒng)計,然后進(jìn)行電源芯片的選型和電路設(shè)計;(2)分析多電壓芯片的時序要求,設(shè)計系統(tǒng)的加電時序,然后對分立電源添加控制.組成完整的電源系統(tǒng)。系統(tǒng)為MPC7448內(nèi)核選用TI公司的電源模塊PTH03030。其余電壓使用電源芯片構(gòu)建;使用ADM1085進(jìn)行時序控制。
3 系統(tǒng)軟件開發(fā)
SMP系統(tǒng)需要操作系統(tǒng)的支持才能使用。在嵌入式領(lǐng)域,目前支持PowerPc且支持SMP的操作系統(tǒng)有Linux、QNX、eCos等.另一個重要操作系統(tǒng)VxWorks在新版本6.6中加入了對SMP支持。本文使用Linux操作系統(tǒng)。
進(jìn)行嵌入式開發(fā),首先要建立交叉開發(fā)環(huán)境。可以下載最新內(nèi)核源碼包及工具鏈包,自行構(gòu)建、配置開發(fā)環(huán)境。本文選擇使用ELDK開發(fā)套件。
3.1 U-Boot的移植
U—Boot是一個開放源代碼的固件程序。它起源于PPCBoot,基于PowerPc處理器編寫。目前能夠支持PowerPC、ARM、x86、MIPs等多種處理器,支持上百種系統(tǒng)平臺,能夠引導(dǎo)Linux、NetBSD、vxworks等多種操作系統(tǒng)。本文使用U—Boot構(gòu)建系統(tǒng)的啟動程序。
PowerPC體系結(jié)構(gòu)的I/O尋址采用內(nèi)存映射方式,即內(nèi)存地址和I/O地址統(tǒng)一編碼,在進(jìn)行代碼移植前,需要首先確定系統(tǒng)的地址映射關(guān)系,本系統(tǒng)地址映射見表(1)。u—Boot的移植可以通過以下步驟進(jìn)行:(1)搜索u—Boot源碼,找到一個和目標(biāo)板最為接近的參考平臺mpc7448hpc2;在board目錄下創(chuàng)建目標(biāo)板目錄smp7448,復(fù)制參考平臺文件到該目錄,修改文件名為smp7448.c.在include/configs目錄下找到參考板頭文件,復(fù)制并創(chuàng)建目標(biāo)板頭文件smp7448.h;在頂層目錄Makefile文件內(nèi)添加目標(biāo)板定義。(2)根據(jù)地址映射表修改目標(biāo)板頭文件中宏定義,這需要參考MPC7448和Tsi109相關(guān)寄存器格式;閱讀目標(biāo)板源代碼,根據(jù)系統(tǒng)參數(shù)進(jìn)行必要的修改和調(diào)整。(3)編譯、下載和調(diào)試,直至順利啟動,能夠進(jìn)入命令狀態(tài)。
表1 系統(tǒng)地址映射表
上述是單處理器的U-Boot移植,在SMP系統(tǒng)下稍有不同。大多數(shù)SMP系統(tǒng)的啟動過程都由一個處理器來完成。其它處理器處于待命狀態(tài)。在PowerPc平臺規(guī)范中,負(fù)責(zé)啟動的處理器稱作主處理器.其余為從處理器。對SMP系統(tǒng)的U—Boot移植,需要在單處理器初始化代碼的開始部分添加一個基于處理器識別的分支處理代碼,讓主處理器正常執(zhí)行,從處理器直接跳轉(zhuǎn)某地址(linux下為一secondary_hold)。需要說明的是。這里的“主”、“從”概念只在系統(tǒng)初始化階段有意義,操作系統(tǒng)初始化完畢后處理器之間完全對稱。
3.2 Linux的移植
LinⅡ操作系統(tǒng)是一個基于CPL版權(quán)的自由軟件。目前,Linux已經(jīng)支持x86、ARM、PowerPc、MIPs等多種處理器平臺,另一方面。Linux已經(jīng)在嵌入式系統(tǒng).PC系統(tǒng)、服務(wù)器等場合得到廣泛應(yīng)用。自2.0版本開始提供對SMP支持,2.2版本添加PowerPc平臺上SMP支持,直至在2.6版本中做了重大改進(jìn),包括復(fù)雜度為調(diào)度算法、獨立的運行隊列、基于優(yōu)先級的任務(wù)搶占、SMP負(fù)載平衡等,Linux才更好地支持了SMP系統(tǒng)。
Linux源碼分為體系無關(guān)和體系相關(guān)兩部分,后者又可以具體分為處理器相關(guān)和平臺相關(guān)。移植工作主要在平臺相關(guān)代碼部分。Linux移植可以通過以下步驟進(jìn)行:(1)查找和目標(biāo)平臺相似的參考平臺,在arch/powerpc/platforms 目錄下創(chuàng)建目標(biāo)板目錄(本文目標(biāo)板使用原有的platforms/embedded6xx目錄). 添加目標(biāo)板配置源文件和頭文件,在該目錄Makefile文件和內(nèi)核配置文件Kconfig里添加目標(biāo)板信息;在頂層Makefile文件內(nèi)設(shè)置目標(biāo)板編譯參數(shù):ARCH=powerpc及CR0SS_COMPILE=ppc_74xx-;(2)進(jìn)行目標(biāo)板平臺代碼的修改;添加必要的驅(qū)動程序;(3)配置目標(biāo)板:make menuconfig;編譯生成內(nèi)核鏡像: make;制作根文件系統(tǒng);(4)在u-Boot啟動完畢后,使用tftp下載Linux內(nèi)核鏡像和根文件系統(tǒng),運行Linux。
u-Boot及Linux移植成功后,即可進(jìn)行應(yīng)用軟件的開發(fā)。
4 結(jié)束語
本文介紹了一個基于PowerPc的嵌入式SMP系統(tǒng)設(shè)計。本文的創(chuàng)新點在于,分析和設(shè)計了一個基于PowerPC的SMP系統(tǒng)。并介紹了相應(yīng)的系統(tǒng)軟件開發(fā)。本文可為嵌入式系統(tǒng)設(shè)計提供一定參考價值。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
456文章
50919瀏覽量
424582 -
嵌入式
+關(guān)注
關(guān)注
5086文章
19142瀏覽量
306035 -
接口
+關(guān)注
關(guān)注
33文章
8633瀏覽量
151367
發(fā)布評論請先 登錄
相關(guān)推薦
評論