邵 龍
(中國(guó)電子科技集團(tuán)公司第十研究所,成都 610036)
綜合化電子系統(tǒng)的特點(diǎn)是系統(tǒng)中大部分功能都是通過(guò)對(duì)通用硬件模塊加注不同的軟件來(lái)實(shí)現(xiàn)的[1]。通用硬件模塊常用的嵌入式處理器包括現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、數(shù)字信號(hào)處理器(DSP)和通用處理器(GPP)[2]。FPGA具有豐富的輸入輸出管腳和任務(wù)并行執(zhí)行性[3-5],DSP具有高效數(shù)據(jù)處理能力和方便靈活的調(diào)試開(kāi)發(fā)環(huán)境[4-5],GPP能夠有效支持這些非數(shù)字信號(hào)處理類(lèi)的控制密集型應(yīng)用[5],這3類(lèi)嵌入式處理器各有優(yōu)勢(shì),用于綜合化系統(tǒng)中運(yùn)行不同程序以處理不同類(lèi)型的任務(wù),其強(qiáng)大的性能通過(guò)運(yùn)行在其中的程序得以發(fā)揮[6]。處理器程序加載是程序運(yùn)行的前提,主要有并行主動(dòng)加載、并行被動(dòng)加載、串行主動(dòng)加載和串行被動(dòng)加載等加載模式[7-9]。由于并行主動(dòng)加載模式加載速度最快,當(dāng)前嵌入式處理器程序加載大多采用這種從本地存儲(chǔ)器加載程序的加載模式,然而,該嵌入式處理器程序從本地加載的方式正面臨嚴(yán)峻挑戰(zhàn)。一方面,功能應(yīng)用越來(lái)越多,越來(lái)越復(fù)雜,對(duì)存儲(chǔ)空間要求也越來(lái)越大;另一方面,小型化PCB布局布線越來(lái)越困難,而國(guó)產(chǎn)化的存儲(chǔ)器存儲(chǔ)密度較低,很難在每個(gè)模塊板載足夠容量的存儲(chǔ)器??偩€技術(shù)的發(fā)展使得傳輸速率不再是瓶頸,遠(yuǎn)程加載解決本地存儲(chǔ)難題成為可能,由于PowerPC和ARM等GPP基于操作系統(tǒng)提供的服務(wù)能方便地遠(yuǎn)程加載,相關(guān)研究集中在FPGA和DSP的程序遠(yuǎn)程加載?;贑PU+CPLD的可靠的FPGA動(dòng)態(tài)加載方法[10];基于CPLD 技術(shù)的 FPGA 快速方案[11];基于HPI的DSP 任務(wù)動(dòng)態(tài)加載方法[12];基于TFTP的加載 DSP 鏡像的方法[13],這些現(xiàn)有的嵌入式處理器程序遠(yuǎn)程加載方案都是基于具體處理器單獨(dú)設(shè)計(jì)的,在不同處理器之間不具備通用性。
遠(yuǎn)程加載電路框圖如圖1所示。
圖1 遠(yuǎn)程加載電路框圖
圖1中,板級(jí)管理FPGA通過(guò)SRIO總線控制器以SRIO總線對(duì)外連接,用于接收遠(yuǎn)程加載數(shù)據(jù)及命令。板級(jí)管理FPGA通過(guò)DDR控制器外掛DDR用于緩存加載數(shù)據(jù)。板級(jí)管理FPGA通過(guò)虛擬并行NOR FLASH讀取接口控制器,以并行NOR FLASH接口與處理器的并行主動(dòng)加載接口連接,與板級(jí)管理FPGA的雙口RAM一起為主處理器NOR FLASH接口相同的數(shù)據(jù)加載接口。板級(jí)管理FPGA通過(guò)處理器復(fù)位信號(hào)發(fā)生器以離散線方式與處理器復(fù)位管腳連接,用于控制主處理復(fù)位以啟動(dòng)自加載。板級(jí)管理FPGA通過(guò)處理器加載狀態(tài)采集器以離散線方式與處理器加載狀態(tài)管腳(DONE/GPIO)連接,用于獲取主處理加載狀態(tài)以確認(rèn)是否加載成功。板級(jí)管理FPGA的管理控制器是遠(yuǎn)程加載的調(diào)度器,用于SRIO命令解析及執(zhí)行調(diào)度。
圖2所示為遠(yuǎn)程加載方法流程。
板級(jí)管理FPGA的SRIO總線控制器從SRIO 接收程序文件并存儲(chǔ)到DDR。
板級(jí)管理FPGA的管理控制器校驗(yàn)DDR中程序文件的完整性,如果不完整,板級(jí)管理FPGA的管理控制器通過(guò)SRIO上報(bào)對(duì)應(yīng)處理器加載失敗,否則,繼續(xù)對(duì)應(yīng)處理器后續(xù)加載流程。
圖 2 遠(yuǎn)程加載方法流程圖
板級(jí)管理FPGA的管理控制器將對(duì)應(yīng)的程序文件數(shù)據(jù)塊從DDR搬移到對(duì)應(yīng)通道的雙口RAM,板級(jí)管理FPGA的管理控制器控制復(fù)位信號(hào)發(fā)生器產(chǎn)生處理器硬件復(fù)位信號(hào),啟動(dòng)對(duì)應(yīng)處理器執(zhí)行自加載,處理器將通過(guò)虛擬并行NOR FLASH讀取接口控制器從對(duì)應(yīng)雙口RAM讀取程序文件數(shù)據(jù)塊。
板級(jí)管理FPGA的管理控制器在雙口RAM非滿(mǎn)時(shí)持續(xù)將程序文件數(shù)據(jù)塊從DDR搬移到對(duì)應(yīng)通道的雙口RAM,直到程序文件所有數(shù)據(jù)塊全部搬移完。
板級(jí)管理FPGA的處理器加載狀態(tài)采集器采集對(duì)應(yīng)處理器加載狀態(tài)。
板級(jí)管理FPGA的管理控制器通過(guò)SRIO上報(bào)對(duì)應(yīng)處理器加載結(jié)果。
綜合化系統(tǒng)嵌入式處理器程序遠(yuǎn)程加載方法已在某綜合化系統(tǒng)DSP密集型信號(hào)處理模塊的DSP遠(yuǎn)程加載和FPGA密集型信號(hào)處理模塊的DSP/FPGA遠(yuǎn)程加載中得到應(yīng)用,其系統(tǒng)硬件架構(gòu)如圖3所示。綜合管控機(jī)管理通過(guò)以太網(wǎng)將待加載的程序文件發(fā)送至控制模塊的GPP,控制模塊的GPP通過(guò)SRIO將待加載的程序文件轉(zhuǎn)發(fā)至待加載目標(biāo)處理器所在模塊的板級(jí)管理FPGA,板級(jí)管理FPGA基于本文的加載電路及方法將待加載的程序文件加載到待加載的目標(biāo)處理器,實(shí)現(xiàn)DSP,F(xiàn)PGA的遠(yuǎn)程加載。
DSP密集型信號(hào)處理模塊和FPGA密集型信號(hào)處理模塊的DSP都采用TI公司C6678芯片。FPGA密集型信號(hào)處理模塊的FPGA采用Xilinx公司XC7V690T芯片。DSP密集型信號(hào)處理模塊和FPGA密集型信號(hào)處理模塊的板級(jí)管理FPGA都采用Xilinx公司XC5V95T芯片,通過(guò)1X方式接入SRIO網(wǎng)絡(luò),總線速率為2.5 Gi-bit/s。
圖 3 系統(tǒng)硬件架構(gòu)框圖
常規(guī)遠(yuǎn)程加載方案都是單獨(dú)介紹FPGA加載或單獨(dú)介紹DSP加載[10-13]。因此,加載性能對(duì)比只能將DSP和FPGA加載性能分開(kāi)對(duì)比。基于本文的加載電路及方法與常規(guī)方案的FPGA加載性能對(duì)比如表1所示。
表1 FPGA加載性能對(duì)比
基于本文的加載電路及方法與常規(guī)方案的DSP加載性能對(duì)比如表2所示。
相對(duì)于常規(guī)方案,綜合化系統(tǒng)嵌入式處理器程序遠(yuǎn)程加載方法不僅能支持多種嵌入式數(shù)字處理器間通用,而且加載速度快。
表2 DSP加載性能對(duì)比
本文提出了一種基于虛擬并行NOR FLASH技術(shù)的嵌入式處理器程序遠(yuǎn)程加載通用電路及方法,不僅加載速度快,而且還能在不同嵌入式處理器之間通用。綜合化系統(tǒng)的實(shí)踐應(yīng)用證明該電路及方法是一種通用高效的嵌入式處理器程序遠(yuǎn)程加載方案。