專利名稱:多處理器共享外設電路實現(xiàn)方法及其電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及TD-SCDMA手機數(shù)字基帶處理芯片的技術(shù),具體涉及一種多處理器共享外設電路實現(xiàn)方法及其電路;屬于通信電子技術(shù)領(lǐng)域。
背景技術(shù):
TD-SCDMA手機的實現(xiàn)關(guān)鍵在于數(shù)字基帶處理芯片,它是完成TD-SCDMA基帶數(shù)字信號處理功能以及物理層軟件、通信協(xié)議棧、應用層MMI軟件運行的核心。這種芯片通常是采用多處理器結(jié)構(gòu),用雙DSP配合硬件加速器完成物理層信號處理,用ARM完成應用層和協(xié)議層的處理,因此設計一種簡潔、高效的系統(tǒng)架構(gòu)成為TD-SCDMA手機基帶芯片的一個關(guān)鍵問題。在現(xiàn)有的多核芯片設計技術(shù)中,各個模塊間的通信通過一條AMBA總線實現(xiàn)。由于存在多處理器和共享外設模塊,因此需要專門的總線仲裁器來決定某一時刻允許哪個處理器使用總線,會造成通信效率的下降。如何改善多處理器和共享外設的通信效率下降的問題,是所屬領(lǐng)域技術(shù)人員有待解決的問題。
發(fā)明內(nèi)容
針對現(xiàn)有多處理器共享外設技術(shù)存在通信效率不高之不足,本發(fā)明的目的是提供一種有效改善通信效率的多處理器共享外設電路實現(xiàn)方法。
本發(fā)明的另一個目的是提供一種設計合理、結(jié)構(gòu)簡潔的多處理器共享外設電路。
本發(fā)明的目的是這樣實現(xiàn)的多處理器共享外設電路實現(xiàn)方法,每個硬件加速器外設均接有一個總線開關(guān)對來自不同處理器的總線進行切換,處理器在使用硬件加速器時先發(fā)出總線申請,總線開關(guān)根據(jù)該模塊的工作狀態(tài)決定是否允許該處理器的訪問;當硬件加速器的一次數(shù)據(jù)處理并搬運完成后,處理器發(fā)出總線釋放命令以允許該加速器的下一次使用;對于訪問頻繁的控制寄存器外設,多處理器的總線采用同步電路進行合并,這樣在實現(xiàn)了共享外設的同時還簡化了系統(tǒng)設計。
同時,根據(jù)優(yōu)先級先后順序合并成為一條總線對外設進行訪問。
按本發(fā)明方法實現(xiàn)的多處理器共享外設電路,包含由一個ARM9處理器和DSP1、DSP2存儲器構(gòu)成的多處理器,由FIR模塊、JD運算、Viterbi譯碼、Turbo譯碼器以及系統(tǒng)定時和控制電路構(gòu)成的硬件加速器的DSP子系統(tǒng);ARM及其外設構(gòu)成ARM子系統(tǒng);ARM子系統(tǒng)內(nèi)部采用AMBA總線連接,通過內(nèi)部存儲器接口模塊IMIF實現(xiàn)ARM子系統(tǒng)和DSP子系統(tǒng)的之間的雙口RAM通信;采用總線開關(guān)電路對來自不同處理器的總線進行切換;或者采用總線同步電路對來自不同處理器的總線進行合并,實現(xiàn)多處理器共享外設。
所述DSP1通過寫控制寄存器向Viterbi譯碼器總線開關(guān)模塊發(fā)出總線使用申請,如果Viterbi模塊處于空閑狀態(tài),則總線申請成功,DSP1能進行正常訪問讀寫數(shù)據(jù);如果該模塊處于使用中,即正在進行數(shù)據(jù)處理或由DSP2占用,則拒絕DSP1的訪問;當本次Viterbi譯碼運算結(jié)束,DSP1讀取Viterbi譯碼器的結(jié)果數(shù)據(jù),并發(fā)出命令釋放總線。
相比現(xiàn)有技術(shù),本發(fā)明具有如下優(yōu)點1、采用加速器模塊與多處理器之間設計獨特的總線開關(guān)和總線同步電路的方法,實現(xiàn)了多處理器之間共享外設,具有較高的通信效率;2、可以確保硬件加速器正在進行一次數(shù)據(jù)處理過程中不會被另一個處理器中斷,一旦總線被一個處理器占用,直到總線釋放之前都不會有新的總線仲裁和切換動作。而現(xiàn)在常見的總線技術(shù)如單層AMBA總線,任何時刻只允許有一個主機占用總線,多處理器共享外設的時候有頻繁的總線仲裁和切換動作,嚴重降低了通信效率。雖然多層AMBA總線解決了這個問題,但是總線結(jié)構(gòu)復雜,驗證工作量大,而且不能保證處理器對硬件加速器的獨占性。
3、本發(fā)明電路用于TD-SCDMA手機的數(shù)字基帶處理芯片,采用一顆ARM處理器和兩顆DSP處理器以及TD-SCDMA專用電路和硬件加速器構(gòu)成,結(jié)構(gòu)簡潔,設計合理。
圖1是本發(fā)明系統(tǒng)方框圖;圖2存儲擴展總線方框圖;圖3是總線開關(guān)的結(jié)構(gòu)原理圖;圖4是總線同步的處理接線原理圖。
具體實施例方式
多處理器共享外設電路實現(xiàn)方法,每個硬件加速器外設均接有一個總線開關(guān)對來自不同處理器的總線進行切換,處理器在使用硬件加速器時先發(fā)出總線申請,總線開關(guān)根據(jù)該模塊的工作狀態(tài)決定是否允許該處理器的訪問;當硬件加速器的一次數(shù)據(jù)處理并搬運完成后,處理器發(fā)出總線釋放命令以允許該加速器的下一次使用;對于訪問頻繁的控制寄存器外設,多處理器的總線采用同步電路進行合并。
同時,根據(jù)優(yōu)先級先后順序合并成為一條總線對外設進行訪問。
如圖1所示,按本發(fā)明方法實現(xiàn)的多處理器共享外設電路,芯片包含一個ARM9處理器,兩個DSP處理器;硬件加速器有FIR濾波器、JD運算、Viterbi譯碼、Turbo譯碼器以及系統(tǒng)定時和控制電路以及必要的外設電路。
根據(jù)處理器的任務分工,確定系統(tǒng)架構(gòu)如下JD、Viterbi、Turbo、FIR模塊與DSP1、DSP2的存儲器擴展總線相連,構(gòu)成DSP子系統(tǒng);ARM及其外設構(gòu)成ARM子系統(tǒng),ARM子系統(tǒng)內(nèi)部采用AMBA總線連接,通過內(nèi)部存儲器接口模塊(IMIF)實現(xiàn)ARM子系統(tǒng)和DSP子系統(tǒng)的之間的雙口RAM通信,采用總線開關(guān)電路對來自不同處理器的總線進行切換;加速器模塊與多處理器之間設計獨特的總線開關(guān)和總線同步電路的方法,實現(xiàn)了多處理器之間共享外設,具有較高的通信效率。
所述DSP1通過寫控制寄存器向Viterbi譯碼器總線開關(guān)模塊發(fā)出總線使用申請,如果Viterbi模塊處于空閑狀態(tài),則總線申請成功,DSP1能進行正常訪問讀寫數(shù)據(jù);如果該模塊處于使用中,即正在進行數(shù)據(jù)處理或由DSP2占用,則拒絕DSP1的訪問;當本次Viterbi譯碼運算結(jié)束,DSP1讀取Viterbi譯碼器的結(jié)果數(shù)據(jù),并發(fā)出命令釋放總線。
采用總線同步電路對來自不同處理器的總線進行合并,實現(xiàn)多處理器共享外設。
參見圖2,存儲器擴展總線由32位數(shù)據(jù)線、24位地址線、讀信號、寫信號構(gòu)成。用高位地址線進行地址譯碼得到所有外設模塊的片選信號,這樣可以通過不同的地址空間進行相應模塊的讀寫和控制。
總線的切換由于存在多處理器共同訪問同一外設,因此設計了總線開關(guān)電路和總線同步電路。根據(jù)外設電路的工作模式不同可以分為兩種情況1.對于硬件加速器,先由處理器寫入一塊數(shù)據(jù),啟動后等到運算結(jié)束再讀取結(jié)果,整個過程只能由某一個處理器控制。
2.對于控制電路,任何時候都可能由某個處理器進行讀寫操作。
見圖3,對于第一種情況,每個加速器設計了總線開關(guān)進行切換。處理器的操作過程如下(以DSP1訪問Viterbi譯碼器為例)首先,DSP1通過寫控制寄存器向Viterbi譯碼器總線開關(guān)電路發(fā)出總線使用申請,如果Viterbi模塊處于空閑狀態(tài),則總線申請成功,DSP1能進行正常訪問讀寫數(shù)據(jù),如果該模塊處于使用中,(正在進行數(shù)據(jù)處理或由DSP2占用),則拒絕DSP1的訪問。當本次Viterbi譯碼運算結(jié)束,DSP1讀取Viterbi譯碼器的結(jié)果數(shù)據(jù),并發(fā)出命令釋放總線。通過這種方式可以確保硬件加速器正在進行一次數(shù)據(jù)處理過程中不會被另一個處理器中斷,一旦總線被一個處理器占用,直到總線釋放之前都不會有新的總線仲裁和切換動作,提高了通信效率。
參見圖4,對于第二種情況,由于每個處理器的時鐘不同,需要進行總線同步的處理,將每個處理器的總線同步到同一個時鐘域,根據(jù)優(yōu)先級先后順序合并成為一條總線對外設進行訪問。同時軟件上需要確保處理器不會在同一時刻訪問同一外設,因此這種方式適合讀寫少量的寄存器數(shù)據(jù),如TD-SCDMA控制模塊。
權(quán)利要求
1.多處理器共享外設電路實現(xiàn)方法,特征在于每個硬件加速器外設均接有一個總線開關(guān)對來自不同處理器的總線進行切換,處理器在使用硬件加速器時先發(fā)出總線申請,總線開關(guān)根據(jù)該模塊的工作狀態(tài)決定是否允許該處理器的訪問;當硬件加速器的一次數(shù)據(jù)處理并搬運完成后,處理器發(fā)出總線釋放命令以允許該加速器的下一次使用;對于訪問頻繁的控制寄存器外設,多處理器的總線采用同步電路進行合并。
2.根據(jù)權(quán)利要求1所述的多處理器共享外設電路實現(xiàn)方法,其特征在于根據(jù)優(yōu)先級先后順序合并成為一條總線對外設進行訪問。
3.根據(jù)權(quán)利要求1或2所述方法實現(xiàn)的多處理器共享外設電路,其特征在于包含由一個ARM9處理器和DSP1、DSP2存儲器構(gòu)成的多處理器,由FIR模塊、JD運算、Viterbi譯碼、Turbo譯碼器以及系統(tǒng)定時和控制電路構(gòu)成的硬件加速器的DSP子系統(tǒng);ARM及其外設構(gòu)成ARM子系統(tǒng);ARM子系統(tǒng)內(nèi)部采用AMBA總線連接,通過內(nèi)部存儲器接口模塊IMIF實現(xiàn)ARM子系統(tǒng)和DSP子系統(tǒng)的之間的雙口RAM通信;采用總線開關(guān)電路對來自不同處理器的總線進行切換;所述DSP1通過寫控制寄存器向Viterbi譯碼器總線開關(guān)模塊發(fā)出總線使用申請,如果Viterbi模塊處于空閑狀態(tài),則總線申請成功,DSP1能進行正常訪問讀寫數(shù)據(jù);如果該模塊處于使用中,即正在進行數(shù)據(jù)處理或由DSP2占用,則拒絕DSP1的訪問;當本次Viterbi譯碼運算結(jié)束,DSP1讀取Viterbi譯碼器的結(jié)果數(shù)據(jù),并發(fā)出命令釋放總線。
4.根據(jù)權(quán)利要求3所述的多處理器共享外設電路,其特征在于采用總線同步電路對來自不同處理器的總線進行合并,實現(xiàn)多處理器共享外設。
全文摘要
本發(fā)明公開一種多處理器共享外設電路實現(xiàn)方法及電路,每個硬件加速器外設均接有一個總線開關(guān)對來自不同處理器的總線進行切換,處理器在使用硬件加速器時先發(fā)出總線申請,總線開關(guān)根據(jù)該模塊的工作狀態(tài)決定是否允許該處理器的訪問;當硬件加速器的一次數(shù)據(jù)處理并搬運完成后,處理器發(fā)出總線釋放命令以允許該加速器的下一次使用;對于訪問頻繁的控制寄存器外設,多處理器的總線采用同步電路進行合并,實現(xiàn)共享外設的同時還簡化了系統(tǒng)設計,具有較高的通信效率;還可以確保硬件加速器正在進行一次數(shù)據(jù)處理過程中不會被另一個處理器中斷,一旦總線被一個處理器占用,直到總線釋放之前都不會有新的總線仲裁和切換動作。而且電路結(jié)構(gòu)簡單,設計合理。
文檔編號H04Q7/32GK1811740SQ20061005410
公開日2006年8月2日 申請日期2006年2月28日 優(yōu)先權(quán)日2006年2月28日
發(fā)明者林毅, 鄭建宏, 楊小勇 申請人:重慶重郵信科股份有限公司