多處理器共用flash的裝置及固件程序加載與升級方法
2023-05-24 04:06:11 1
專利名稱:多處理器共用flash的裝置及固件程序加載與升級方法
技術領域:
本發明涉及數據信號處理技術,尤其涉及一種多處理器共用FLASH的裝置及固件程序加載與升級方法。
背景技術:
在數據信號處理領域,已經有不少研究實現使單板上的多處理器共享非易失性存儲器的問題。其中國防科技大學ATR重點實驗室王宏義和陳曾平發表文獻《DSP和FPGA共用FLASH進行配置的方法》,該文獻中採用TI公司的64系列晶片和FPGA共用FLASH,其實現方法是將FLASH和FPGA分別掛接在DSP的兩個EMIF接口上,DSP程序加載bootloader之後將FPGA的程序代碼通過另外的一個EMIF埠從FLASH加載到FPGA裡面;該文也提到FLASH代碼可以通過PCI接口實現在線升級,但是具體實現方式未作披露。根據文獻中的示意圖可以推斷,其代碼升級的前提應該是DSP能正常加載BOOTLOADER,否則無法將PCI接口 的數據擦寫到FLASH裡面;對於某些只有一個EMIF的接口的DSP器件,本方案實現受到限制。另據2008年12月17日公開的專利CN101324868,其通過在BOOT FLASH和處理器之間加上一個可編程的PLD器件,可以實現不同的字節序CPU和不同字節序的FLASH之間的動態選擇性連接。該發明的方案僅僅只針對單一處理器獨享FLASH的方式。還有2010年12月01日公開的實用新型專利CN101901156A,其實現了 DSP和FPGA的程序存儲器的共享,但是其加載方法仍然是DSP運行起來之後,執行保存在FLASH中的FPGA程序加載代碼,FPGA的程序加載嚴重依賴DSP的運行,而且從其結構圖中可以看出,要實現程序代碼的升級也需要有DSP正常運行的前提條件,在FLASH中程序受損之後無法下載新的代碼到FLASH中。
發明內容
本發明的目的是提供一種多處理器共用FLASH的裝置及固件程序加載與升級方法,解決DSP不成功啟動而影響FPGA程序加載的問題。為了解決上述技術問題,本發明採用了如下技術手段一種多處理器共用FLASH的裝置,包括至少一個DSP處理器與至少一個FPGA處理器,一個FLASH存儲器;一個FLASH管理器件;所述FLASH管理器件分別與所述DSP處理器、所述FPGA處理器雙向控制連接,且所述FLASH管理器件控制連接所述FLASH存儲器。進一步的,所述FLASH存儲器的低位地址線與所述DSP處理器的地址線通過FLASH管理器件接相連接;所述FLASH存儲器的高位地址線與FLASH管理器件連接,所述高位地址和所述低位地址一起用於指示所述FPGA處理器的代碼存儲位置。進一步的,所述FLASH存儲器與所述DSP處理器通過數據線相連接;所述FLASH管理器件與所述FPGA處理器通過數據線相連接。進一步的,所述FLASH管理器件為集成ROM模塊的可編程邏輯器件。
進一步的,當所述DSP處理器為多個時,所述DSP處理器與所述FLASH管理器件之間通過一個選通控制開關連接。進一步的,當所述FPGA處理器為多個時,所述DSP處理器與所述FLASH管理器件之間有片選控制線連接。本發明提供的另一種技術方案一種固件程序加載與升級方法,所述方法通過如下步驟實現步驟I、所述DSP處理器向所述FLASH管理器件發出程序加載請求,所述FLASH管理器件對所述DSP處理器做出請求應答;當應答為響應時,FLASH管理器件將DSP處理器的地址轉接到所述FLASH存儲器的地址線上,並向所述FLASH存儲器發出數據讀出指令,所述FLASH存儲器通過所述DSP處理器的外部存儲器總線EMIF接口,輸出程序數據給所述DSP處理器;步驟2、所述FLASH管理器件將所述FLASH存儲器中的FPGA處理器的邏輯數據取·出,並進行數據寬度的轉換,再以符合FPGA程序加載的數據寬度傳送至FPGA處理器內部,完成對FPGA處理器程序的加載;步驟3、外部程序從程序升級接口向所述FLASH管理器件發出程序升級指令,所述FLASH管理器件識別升級指令,鎖存外部程序提供的升級數據,然後對所述FLASH存儲器進行擦寫,完成對所述FLASH存儲器進行程序代碼升級。當所述DSP處理器為多個時,所述FLASH管理器件通過選通控制開關,響應其中唯一的DSP處理器的程序加載請求。進一步的,當所述DSP處理器為多個時,所述FLASH管理器件通過選通控制開關,響應其中唯一的DSP處理器的程序加載請求。進一步的,所述方法還包括當所述程序升級接口採用串行的方式時,所述FLASH管理器件根據控制線將數據線上的串行數據轉換成並行數據,從FLASH存儲器的相應地址空間開始遞增地址尋址擦寫FLASH存儲器。進一步的,所述程序升級接口為PCI接口、PCIE接口或者通用串行接口中的任一種。本發明由於採用以上所述技術方案,FPGA和DSP的程序加載通道各自獨立,FPGA的程序加載不依賴於DSP是否成功啟動。
本發明的多處理器共用FLASH的裝置及固件程序加載與升級方法由以下的實施例及附圖詳細給出。圖I為本發明實施例多處理器共用FLASH的裝置實施例的控制拓撲圖;圖2為本發明實施例多處理器共用FLASH的裝置實施例的數據線連接圖;圖3本發明實施例中變換處理器數量後的控制拓撲圖。
具體實施例方式以下將對本發明的多處理器共用FLASH的裝置與固件程序加載與升級方法作進一步的詳細描述。如圖I所示,一種多處理器共用FLASH的裝置,包括一個DSP處理器2與一個FPGA處理器3,一個FLASH存儲器1,以及一個FLASH管理器件4 ;所述FLASH管理器件4分別與所述DSP處理器2、所述FPGA處理器3雙向控制連接,且所述FLASH管理器件4控制連接所述FLASH存儲器I。為了實現DSP與FPGA共用一個FLASH,在地址線的分配上,將所述FLASH存儲器I的低端地址線與所述DSP處理器2的地址線通過FLASH管理器件4相連接,所述FLASH存儲器的最高兩位地址線與FLASH管理器件4的地址線相連接,所述高位地址和所述低位地址一起用於指示所述FPGA處理器的代碼存儲位置;圖中的箭頭可以理解為一種控制方向。DSP處理器2向FLASH管理器件4發出程序加載請求②,FLASH管理器件4響應或者不響應,都會向DSP處理器2作出應答③。當FLASH管理器件4響應DSP處理器2的程序加載請求時,FLASH管理器件4就會將DSP處理器2的地址線轉接到FLASH存儲器I的低端地址線上,並對FLASH存儲器I發出讀出指令①;FPGA處理器3內程序採用被動加載方式,FLASH管理器件4向FLASH存儲器I發送讀出指令①,將數據讀進FLASH管理器件4內部,然後向FPGA處理器3提供程序加載指令和加載時鐘⑤,程序加載完成後FPGA處理器3輸出加載完成信號④到FLASH管理器件4。 在需要進行程序升級時,程序升級接口 5發送程序升級命令⑥到FLASH管理器4,FLASH管理器4會將程序升級結果⑦反饋給程序升級接口 5。如圖2所示,所述FLASH存儲器I與所述DSP處理器2通過數據線@相連接;所述FLASH管理器件4與所述FPGA處理器3通過數據線相〇連接。所述FLASH管理器件4為集成ROM模塊的可編程邏輯器件。在DSP處理器2的程序加載過程中,數據經過數據線@直接進入DSP處理器2 ;在FPGA處理器3程序加載過程中,FLASH管理器件4經過數據線@獲取FLASH存儲器I內的數據,經由總線〇傳輸到FPGA處理器3內部;在程序升級的過程中,程序升級接口 5的程序數據經過數據線〇進入FLASH管理器4內部,FLASH管理器件4利用數據線@對FLASH存儲器I進行擦寫。如圖I和圖2所示,本發明中一種固件程序加載及固件程序升級方法,所述方法通過如下步驟實現SI、所述DSP處理器2向所述FLASH管理器件4發出程序加載請求,所述FLASH管理器件4對所述2處理器2做出請求應答;當應答為響應時,FLASH管理器件4將DSP處理器2的地址轉接到所述FLASH存儲器I的地址線上,並向所述FLASH存儲器I發出數據讀出指令,所述FLASH存儲器I通過所述DSP處理器2的外部存儲器總線EMIF接口,輸出程序數據給所述DSP處理器2 ; S2、所述FLASH管理器件4將所述FLASH存儲器I中的FPGA處理器3的邏輯數據取出,並進行數據寬度的轉換,再以符合FPGA程序加載的數據寬度傳送至FPGA處理器3內部,完成對FPGA處理器3程序的加載;S3、外部程序從程序升級接口 5向所述FLASH管理器件4發出程序升級指令,所述FLASH管理器件4識別升級指令,鎖存外部程序提供的升級數據,然後對所述FLASH存儲器I進行擦寫,完成對所述FLASH存儲器I進行程序代碼升級。在本實施例中,所述固件程序升級方法升級完成之後將向外部程序反饋相應的信息,如果在程序升級過程中出錯,FLASH管理器件4發出升級出錯信息給外部程序。
在本實施例中,當所述程序升級接口 5採用串行的方式時,所述FLASH管理器件4根據控制線將數據線上的串行數據轉換成並行數據,從FLASH的相應地址空間開始遞增地址尋址擦寫FLASH。所述程序升級接口 5為PCIE接口,在其他實施例中也可以採用PCI接口或者通用串行口。當然,上述實施例中,FPGA處理器3與DSP處理器2均可以採用多個的方式共用FLASH,在本實施例中採取兩個FPGA處理器3與兩個DSP處理器2,其控制拓撲圖如圖3所
/Jn o在多個(或兩個)DSP處理器2存在的情況下,DSP處理器21或22的數據總線不 宜直接與FLASH存儲器的數據總線連接。而應在DSP處理器21或22的EMIF總線上加一個總線選通控制開關6,FLASH管理器件4隻響應其中一個DSP處理器21或22的程序加載請求,其它的DSP處理器無法獲得程序加載權限;FLASH管理器件4通過控制選通控制開關6以防止沒有獲得加載權限的DSP處理器錯誤的鎖存數據。沒能獲得程序加載權限的DSP處理器可以一直保持著程序加載請求等待FLASH管理器件4響應。對於多個FPGA處理器情況下,FLASH管理器件4通過對FPGA處理器31和32的片選控制分別加載各個FPGA處理器3的程序,如果FPGA處理器31和32的程序相同,FLASH管理器件4也可以同時選中兩個FPGA進行程序加載。在DSP處理器21、22和FPGA處理器31、32的加載過程中,FLASH管理器件4需要對選通控制開關6進行管理,以準確的從FLASH存儲器I中獲取FPGA處理器3需要的數據;具體的說就是FLASH管理器件4在從FLASH存儲器I獲取加載FPGA處理器3的數據時,需要暫時的關閉掉選通控制開關6,以防止FPGA處理器31、32需要的數據對DSP處理器21或22造成影響,同時也保證了 FLASH管理器件4獲得的數據沒有收到DSP處理器21或22的影響。本發明由於採用以上所述技術方案,FPGA和DSP處理器的程序加載通道各自獨立,FPGA處理器的程序加載不依賴於DSP處理器是否成功啟動。由於以上僅為本發明的較佳實施例,本發明的保護範圍不應受此限制,即凡是依本發明的權利要求書及本發明說明書內容所作的簡單的等效變化與修飾,均應仍屬本發明專利涵蓋的範圍內。
權利要求
1.一種多處理器共用FLASH的裝置,包括至少一個DSP處理器與至少一個FPGA處理器,一個FLASH存儲器,其特徵在於,還包括 一個FLASH管理器件; 所述FLASH管理器件分別與所述DSP處理器、所述FPGA處理器雙向控制連接,且所述FLASH管理器件控制連接所述FLASH存儲器。
2.如權利要求I所述的多處理器共用FLASH的裝置,其特徵在於,所述FLASH存儲器的低位地址線與所述DSP處理器的地址線通過FLASH管理器間接相連接;所述FLASH存儲器的高位地址線與FLASH管理器件連接,所述高位地址和所述低位地址一起用於指示所述FPGA處理器的代碼存儲位置。
3.如權利要求2所述的多處理器共用FLASH的裝置,其特徵在於,所述FLASH存儲器與所述DSP處理器通過數據線相連接;所述FLASH管理器件與所述FPGA處理器通過數據線相連接。
4.如權利要求3所述的多處理器共用FLASH的裝置,其特徵在於,所述FLASH管理器件為集成ROM模塊的可編程邏輯器件。
5.如權利要求I所述的多處理器共用FLASH的裝置,其特徵在於,當所述DSP處理器為多個時,所述DSP處理器與所述FLASH管理器件之間通過一個選通控制開關連接。
6.如權利要求I所述的多處理器共用FLASH的裝置,其特徵在於,當所述FPGA處理器為多個時,所述FPGA處理器與所述FLASH管理器件之間有片選控制線連接。
7.—種如權利要求I所述裝置實現固件程序加載與升級方法,其特徵在於,所述方法通過如下步驟實現 步驟I、所述DSP處理器向所述FLASH管理器件發出程序加載請求,所述FLASH管理器件對所述DSP處理器做出請求應答;當應答為響應時,FLASH管理器件將DSP處理器的地址轉接到所述FLASH存儲器的地址線上,並向所述FLASH存儲器發出數據讀出指令,所述FLASH存儲器通過所述DSP處理器的外部存儲器總線EMIF接口,輸出程序數據給所述DSP處理器; 步驟2、所述FLASH管理器件將所述FLASH存儲器中的FPGA處理器的邏輯數據取出,並進行數據寬度的轉換,再以符合FPGA程序加載的數據寬度傳送至FPGA處理器內部,完成對FPGA處理器程序的加載; 步驟3、外部程序從程序升級接口向所述FLASH管理器件發出程序升級指令,所述FLASH管理器件識別升級指令,鎖存外部程序提供的升級數據,然後對所述FLASH存儲器進行擦寫,完成對所述FLASH存儲器進行程序代碼升級。
8.如權利要求7所述的固件程序加載與升級方法,其特徵在於,當所述DSP處理器為多個時,所述FLASH管理器件通過選通控制開關,響應其中唯一的DSP處理器的程序加載請求。
9.如權利要求7所述的固件程序加載與升級方法,其特徵在於,所述方法還包括當所述程序升級接口採用串行方式時,所述FLASH管理器件根據控制線將數據線上的串行數據轉換成並行數據,從FLASH的相應地址空間開始遞增地址尋址擦寫FLASH存儲器。
10.如權利要求7所述的固件程序加載與升級方法,其特徵在於,所述程序升級接口為PCI接口、PCIE接口或者通用串行接口中的任一種。
全文摘要
本發明提供了一種多處理器共用FLASH的裝置及固件程序加載與升級方法,包括至少一個DSP處理器與至少一個FPGA處理器,還包括一個FLASH存儲器;一個FLASH管理器件;所述FLASH管理器件分別與所述DSP處理器、所述FPGA處理器雙向控制連接,且所述FLASH管理器件控制連接所述FLASH存儲器。本發明中FPGA和DSP的程序加載通道各自獨立,FPGA的程序加載不依賴於DSP是否成功啟動。
文檔編號G06F9/445GK102722390SQ20121018349
公開日2012年10月10日 申請日期2012年6月5日 優先權日2012年6月5日
發明者周輝 申請人:上海聯影醫療科技有限公司