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