專利名稱:多核數(shù)字信號處理器片上系統(tǒng)及數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明數(shù)字信號處理器領(lǐng)域,尤其是涉及一種多核數(shù)字處理器片上系統(tǒng)及數(shù)據(jù)傳輸方法。
背景技術(shù):
隨著數(shù)字信號處理算法的發(fā)展,數(shù)字信號處理器對運(yùn)算性能的要求在不斷提高, 傳統(tǒng)的單核處理器已經(jīng)很難滿足復(fù)雜信號處理對性能的要求。目前通常采用的提高處理能力的方法是使用多核數(shù)字信號處理器進(jìn)行并行運(yùn)算。多核數(shù)字信號處理器使用多個同類或者異類的處理器核或者硬件加速單元相互協(xié)作,通過并行執(zhí)行運(yùn)算任務(wù)來縮短計算時間。主從結(jié)構(gòu)的多核數(shù)字信號處理器由一個主處理器和多個從處理器構(gòu)成。這種結(jié)構(gòu)可以有效的區(qū)分控制任務(wù)和信號處理任務(wù)并由不同類型的處理器來執(zhí)行,是高效的多核數(shù)字信號處理器結(jié)構(gòu)。其中,主處理器運(yùn)行主程序,主要執(zhí)行程序流控制、任務(wù)調(diào)度、和資源管理與配置,主處理器分配數(shù)字信號處理任務(wù)子程序到從處理器執(zhí)行。從處理器通常是由具有并行數(shù)據(jù)通道的單指令多數(shù)據(jù)(Single Instruction Multiple Data,SIMD)結(jié)構(gòu)或者超長指令字(Very Long Instruction fford,VLIff)結(jié)構(gòu)的處理器構(gòu)成。從處理器主要執(zhí)行數(shù)據(jù)計算。通過多個從處理器并行運(yùn)行提高處理能力。多核數(shù)字信號處理器上各處理器間的數(shù)據(jù)通信可分為兩類,基于長數(shù)據(jù)流的傳輸和短消息傳遞。長數(shù)據(jù)流的傳輸是指在一定時間段內(nèi),在兩個處理器之間連續(xù)的傳遞較長的數(shù)據(jù)塊,其要求高的傳輸帶寬。短消息傳遞往往用于同步信息,數(shù)據(jù)量少,但是要求低延時。對于長數(shù)據(jù)流的傳輸,多核數(shù)字信號處理器通常使用直接內(nèi)存訪問(Direct Memory Access, DMA)控制器,通過軟件控制傳輸數(shù)據(jù)塊,由于在數(shù)字信號處理中,多數(shù)計算屬于可預(yù)測算法,數(shù)據(jù)的搬移方式在程序運(yùn)行前即可預(yù)知。使用DMA控制器和適當(dāng)?shù)能浖{(diào)度,可以在處理器進(jìn)行計算的同時,通過DMA控制器進(jìn)行數(shù)據(jù)搬移,從而達(dá)到數(shù)據(jù)存儲和運(yùn)算的并行執(zhí)行,提高了處理器的執(zhí)行效率,縮短了運(yùn)行時間。而對于短消息傳遞,通常采用高優(yōu)先級來減小通信延遲。目前,多核數(shù)字信號處理器通過可以片上互聯(lián)網(wǎng)絡(luò)來提供處理單元間的通信通道以及對外部共享存儲器的訪問通道。已有的片上多核互聯(lián)系統(tǒng)通常采用共享總線方式連接多個處理器,通過使用共享外部存儲器結(jié)構(gòu)來簡化多核處理器上數(shù)據(jù)通信的硬件和軟件設(shè)計。多個處理器通過總線連接并共享外部存儲器,所有連接至總線的子系統(tǒng),包括片上處理器及外部存儲器,都被分配了獨立的地址空間,單個處理器通過地址來區(qū)分和訪問不同的處理器或存儲器來實現(xiàn)數(shù)據(jù)通信和消息傳遞。由共享總線連接的多核處理器中每一個處理器都可發(fā)送數(shù)據(jù)通信請求到總線。處理器內(nèi)可能包含DMA控制器,來獨立于處理器核進(jìn)行數(shù)據(jù)交換。處理器或者DMA控制器發(fā)送數(shù)據(jù)通信請求到總線后,總線仲裁器決定一段時間內(nèi)總線歸屬,獲得總線使用權(quán)的處理器可在這段時間內(nèi)發(fā)送或讀取數(shù)據(jù)。上述這種傳統(tǒng)共享總線的多核互聯(lián)網(wǎng)絡(luò)使用同一硬件支持?jǐn)?shù)據(jù)塊和短消息兩種數(shù)據(jù)傳遞。但是共享總線的方法使得特定時間內(nèi)只能進(jìn)行一個數(shù)據(jù)傳輸任務(wù),多核處理器的性能受到了總線帶寬的限制。另外,現(xiàn)有的改進(jìn)的總線設(shè)計包括采用多層共享總線,在每個層上可獨立進(jìn)行數(shù)據(jù)傳輸。在多層總線上同時進(jìn)行的數(shù)據(jù)傳輸提高了總線的總體傳輸帶寬。但是由于單層或者多層的共享總線采用硬件仲裁器及全局地址空間分配,隨著片上多核處理器中處理器的增加,地址空間變大,硬件仲裁器設(shè)計更加復(fù)雜,硬件設(shè)計開銷增加。 另外,當(dāng)使用同一總線同時支持?jǐn)?shù)據(jù)流和短消息時,兩種傳輸具有不同帶寬和延時要求,因此為了保證高性能,總線設(shè)計會加入更復(fù)雜的協(xié)議支持如優(yōu)先級和突發(fā)數(shù)據(jù)傳輸?shù)仁录A硗?,基于上述傳統(tǒng)共享總線的多核互聯(lián)網(wǎng)絡(luò)的諸多缺陷,現(xiàn)有技術(shù)中還出現(xiàn)了由網(wǎng)絡(luò)節(jié)點構(gòu)成的片上網(wǎng)絡(luò)系統(tǒng),其改進(jìn)了片上系統(tǒng)的擴(kuò)展性,分解了多核系統(tǒng)結(jié)構(gòu)設(shè)計的復(fù)雜性,并提供了更高的通信帶寬。處理器發(fā)送數(shù)據(jù)包到本地網(wǎng)絡(luò)節(jié)點(這里的網(wǎng)絡(luò)節(jié)點是指片上節(jié)點,有別于傳統(tǒng)的網(wǎng)絡(luò)節(jié)點),之后數(shù)據(jù)包在網(wǎng)絡(luò)節(jié)點間傳遞直到到達(dá)目標(biāo)處理器。片上網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點負(fù)責(zé)數(shù)據(jù)包的轉(zhuǎn)發(fā),可采用分組交換和電路交換兩種方式。 分組交換中路由信息包含在數(shù)據(jù)包內(nèi),網(wǎng)絡(luò)節(jié)點通過讀取數(shù)據(jù)包得到路由信息來轉(zhuǎn)發(fā)數(shù)據(jù)包。電路交換方式中路由信息被配置在網(wǎng)絡(luò)節(jié)點內(nèi),網(wǎng)絡(luò)節(jié)點決定數(shù)據(jù)包的轉(zhuǎn)發(fā)方向。對于主從結(jié)構(gòu)的多核數(shù)字信號處理器,為了降低并行計算中的通信瓶頸,針對嵌入式計算和流信號處理,目前急需有一種高效的片上網(wǎng)絡(luò)設(shè)計,可提供高帶寬的流數(shù)據(jù)傳輸和低延遲的短消息傳遞。另外,對于使用DMA控制器做數(shù)據(jù)交換的片上網(wǎng)絡(luò)設(shè)計,該片上網(wǎng)絡(luò)設(shè)計最好可以減小DMA調(diào)度的硬件和軟件開銷,如總線的硬件仲裁和DMA中斷等,同時降低多處理器間數(shù)據(jù)傳輸任務(wù)和計算任務(wù)之間同步的開銷,從而減小多核處理器軟件程序設(shè)計的復(fù)雜性。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種多核數(shù)字處理器片上系統(tǒng)及數(shù)據(jù)傳輸方法,用于提供高帶寬的流數(shù)據(jù)傳輸和低延遲的短消息傳遞,同時可以減小多核處理器軟件程序設(shè)計的復(fù)雜度。一方面,本發(fā)明實施例提供一種多核數(shù)字處理器片上系統(tǒng),包括一個主處理器、 多個從處理器和外部存儲器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA控制器,所述主處理器通過I/O控制器對所述外部存儲器進(jìn)行控制和訪問,各處理器之間通過一片上互聯(lián)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,所述片上互聯(lián)網(wǎng)絡(luò)由星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)以及串行網(wǎng)絡(luò)構(gòu)成。優(yōu)選地,本發(fā)明實施例中星形網(wǎng)絡(luò)采用星形拓?fù)浣Y(jié)構(gòu)連接所述主處理器和所述多個從處理器,所述主處理器作為所述星形網(wǎng)絡(luò)的主節(jié)點,所述主處理器分別連接至所述星形網(wǎng)絡(luò)中的各個葉節(jié)點,所述多個從處理器分別連接至對應(yīng)的一個葉節(jié)點,所述星形網(wǎng)絡(luò)提供從所述外部存儲器到所述從處理器的片上存儲器之間的點對點以及點對多點的數(shù)據(jù)傳輸通道。優(yōu)選地,本發(fā)明實施例中葉節(jié)點包括一星形網(wǎng)絡(luò)緩沖單元,用于緩存從所述主處理器或者所述從處理器發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包。優(yōu)選地,本發(fā)明實施例中環(huán)形網(wǎng)絡(luò)采用環(huán)形拓?fù)浣Y(jié)構(gòu)連接所述多個從處理器,所述多個從處理器所對應(yīng)的葉節(jié)點依次連接以構(gòu)成一環(huán)形結(jié)構(gòu),所述環(huán)形網(wǎng)絡(luò)提供一個從處理器至其它從處理器的點對點的數(shù)據(jù)傳輸通道以及點對多點的數(shù)據(jù)廣播通道。
優(yōu)選地,本發(fā)明實施例中環(huán)形網(wǎng)絡(luò)內(nèi)的葉節(jié)點包括一電路交換單元,用于使用電路交換來與其它葉節(jié)點進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包傳輸;一環(huán)形網(wǎng)絡(luò)接口單元,用于根據(jù)路由表決定是否立即傳送網(wǎng)絡(luò)數(shù)據(jù)包,以及當(dāng)所述葉節(jié)點內(nèi)不存在相應(yīng)路由時,向所述處理器發(fā)送中斷請求以請求所述主處理器進(jìn)行路由配置;一控制寄存器單元,用于接受所述主處理器對所述葉節(jié)點進(jìn)行的路由配置。優(yōu)選地,本發(fā)明實施例中串行網(wǎng)絡(luò)提供所述多個從處理器之間的短消息傳遞通道,每個所述從處理器都包括一串行發(fā)送單元及串行接收單元,其中串行發(fā)送單元分別連接至其它從處理器的串行接收單元以構(gòu)成一串行結(jié)構(gòu)。另一方面,本發(fā)明實施例還提供了一種多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,所述多核數(shù)字處理器片上系統(tǒng)包括一個主處理器、多個從處理器和外部存儲器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA控制器,所述主處理器通過I/O控制器對所述外部存儲器進(jìn)行控制和訪問,所述方法包括通過星形網(wǎng)絡(luò)在所述主處理器的控制下完成所述多個從處理器和外部存儲器之間的數(shù)據(jù)交換,以及完成所述主處理器與所屬多個從處理器的數(shù)據(jù)廣播;通過環(huán)形網(wǎng)絡(luò)完成所述從處理器之間的數(shù)據(jù)交換;通過串行網(wǎng)絡(luò)完成所述從處理器之間的短消息傳遞。優(yōu)選地,本發(fā)明實施例中通過星形網(wǎng)絡(luò)在所述主處理器的控制下完成所述多個從處理器和外部存儲器之間的數(shù)據(jù)交換包括主處理器配置主DMA控制器并啟動傳輸任務(wù)來從外部存儲器讀取數(shù)據(jù)并發(fā)送至星形網(wǎng)絡(luò)的葉節(jié)點,或者從所述星形網(wǎng)絡(luò)的葉節(jié)點讀取數(shù)據(jù)并存儲至所述外部存儲器;從處理器配置其本地DMA控制器并啟動傳輸任務(wù)來從本地片上存儲單元讀取數(shù)據(jù)并發(fā)送至星形網(wǎng)絡(luò)的葉節(jié)點,或者從所述星形網(wǎng)絡(luò)的葉節(jié)點接收數(shù)據(jù)并存儲至所述本地片上存儲單元;當(dāng)主處理器和從處理器的傳輸任務(wù)相同時,相應(yīng)的從處理器和外部存儲器之間開始進(jìn)行數(shù)據(jù)交換。優(yōu)選地,本發(fā)明實施例中當(dāng)從處理器和主處理器的傳輸任務(wù)不同或者從處理器先啟動傳輸任務(wù),而主處理器未啟動傳輸任務(wù)時,該從處理器進(jìn)入等待狀態(tài),等待葉節(jié)點的數(shù)據(jù)緩沖,當(dāng)主處理器啟動相同傳輸任務(wù)時,再開始和外部存儲器進(jìn)行數(shù)據(jù)交換;當(dāng)主處理器先啟動傳輸任務(wù)而從處理器未啟動傳輸任務(wù)時,該主處理器進(jìn)入等待狀態(tài),當(dāng)從處理器啟動相同傳輸任務(wù)時,再開始和外部存儲器進(jìn)行數(shù)據(jù)交換。優(yōu)選地,本發(fā)明實施例中配置外部存儲器的地址生成器以生成所述外部存儲器的地址,以及配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度。優(yōu)選地,本發(fā)明實施例中配置本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,以及配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度。優(yōu)選地,本發(fā)明實施例中通過星形網(wǎng)絡(luò)完成所述主處理器與所屬多個從處理器的數(shù)據(jù)廣播包括主處理器配置主DMA控制器并啟動數(shù)據(jù)廣播任務(wù);多個從處理器配置其本地DMA控制器并啟動數(shù)據(jù)廣播任務(wù);當(dāng)所有處理器都啟動數(shù)據(jù)廣播任務(wù)后,主處理器開始向所有從處理器進(jìn)行數(shù)據(jù)廣播。優(yōu)選地,本發(fā)明實施例中通過環(huán)形網(wǎng)絡(luò)完成所述從處理器之間的數(shù)據(jù)交換包括 數(shù)據(jù)發(fā)送端的從處理器配置其本地DMA控制器并啟動數(shù)據(jù)發(fā)送任務(wù),數(shù)據(jù)接收端的從處理器配置其本地DMA控制器并啟動數(shù)據(jù)接收任務(wù);數(shù)據(jù)發(fā)送端的從處理器發(fā)送數(shù)據(jù)傳輸請求到與之相連的葉節(jié)點的環(huán)形網(wǎng)絡(luò)接口單元,數(shù)據(jù)接收端的從處理器等待接收數(shù)據(jù);所述葉節(jié)點根據(jù)數(shù)據(jù)傳輸請求判斷路由列表中是否具有數(shù)據(jù)接收端的從處理器,若有,則立即響應(yīng)并通過電路交換單元進(jìn)行數(shù)據(jù)傳輸,若沒有,則向主處理器發(fā)送中斷請求,以請求主處理器重新配置路由列表。優(yōu)選地,本發(fā)明實施例中數(shù)據(jù)發(fā)送端的從處理器配置其本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,配置傳輸參數(shù),所述傳輸參數(shù)包括目標(biāo)處理器的選擇信息以及傳輸數(shù)據(jù)長度;數(shù)據(jù)接收端的從處理器配置其本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源處理器的選擇信息以及傳輸數(shù)據(jù)長度。優(yōu)選地,本發(fā)明實施例中通過串行網(wǎng)絡(luò)完成所述從處理器之間的短消息傳遞包括發(fā)送端的從處理器發(fā)送短消息數(shù)據(jù)包到與之相連的串行發(fā)送單元;所述串行發(fā)送單元以串行廣播的方式將所述短消息數(shù)據(jù)包發(fā)送到所有連接的串行接收單元;所述串行接收單元接收所述短消息數(shù)據(jù)包,并根據(jù)所述短消息數(shù)據(jù)包內(nèi)的目標(biāo)從處理器標(biāo)識決定是否存儲所述包,若所述短消息數(shù)據(jù)包內(nèi)的從處理器標(biāo)識所標(biāo)識的是與所述串行接收單元相連的從處理器,則存儲所述短消息數(shù)據(jù)包至從處理器的本地片上存儲單元內(nèi),否則即丟棄所述短消息數(shù)據(jù)包。優(yōu)選地,本發(fā)明實施例中串行接收單元存儲所述短消息數(shù)據(jù)包之后,還包括將所述短消息數(shù)據(jù)包的相應(yīng)標(biāo)識位設(shè)置為已經(jīng)收到所述短消息數(shù)據(jù)包;接收端處理器通過輪詢方式檢查所述短消息數(shù)據(jù)包的所述相應(yīng)標(biāo)識位以讀取接收到的短消息。本發(fā)明實施例中的片上互聯(lián)網(wǎng)絡(luò)結(jié)合了星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)和串行網(wǎng)絡(luò),從而不但可以提供高帶寬的流數(shù)據(jù)傳輸,而且還可以提供低延遲的短消息傳遞,另外,本發(fā)明實施例通過主處理器的軟件控制簡化了外部存儲器的訪問仲裁,并通過網(wǎng)絡(luò)數(shù)據(jù)緩沖減少了多核處理器間的同步操作,降低了多核處理器軟件程序設(shè)計的復(fù)雜度。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例提供的一種多核數(shù)字處理器片上系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例提供的一種星形網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;圖3為本發(fā)明實施例提供的一種環(huán)形網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;圖4為本發(fā)明實施例提供的一種葉節(jié)點的結(jié)構(gòu)示意圖;圖5為本發(fā)明實施例提供的一種串行網(wǎng)絡(luò)的結(jié)構(gòu)示意圖;圖6為本發(fā)明實施例提供的一種多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法的流程示意圖;圖7為本發(fā)明實施例提供的利用星形網(wǎng)絡(luò)在從處理器及外部存儲器之間傳輸數(shù)據(jù)的流程示意圖;圖8為本發(fā)明實施例提供的利用環(huán)形網(wǎng)絡(luò)在從處理器之間傳輸數(shù)據(jù)的流程示意圖;圖9為本發(fā)明實施例提供的利用串行網(wǎng)絡(luò)在從處理器之間傳輸短消息的流程示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。如圖1所示為本發(fā)明實施例提供的一種多核數(shù)字處理器片上系統(tǒng)的結(jié)構(gòu)示意圖, 該多核數(shù)字處理器片上系統(tǒng)包括一主處理器Iio和多個從處理器120,主處理器110和從處理器120之間通過片上互聯(lián)網(wǎng)絡(luò)130相連,在本實施例中從處理器的個數(shù)為4個,但并不以此為限。另外本發(fā)明實施例的多核數(shù)字處理器片上系統(tǒng)還可以包括I/O控制器140、外部存儲器150以及其它外部設(shè)備160,主處理器110通過I/O控制器140與外部存儲器150 以及其它外部設(shè)備160進(jìn)行控制和訪問,包括處理器的直接訪問和DMA訪問方式。主處理器110包括主處理器核111、主片上存儲器112和主DMA控制器113,在本實施例中,主處理器Iio主要用于執(zhí)行主程序,負(fù)責(zé)分配任務(wù)到從處理器120,并配置片上互聯(lián)網(wǎng)絡(luò)130和主DMA控制器113進(jìn)行數(shù)據(jù)傳輸。從處理器120包括從處理器核121、從片上存儲器122和從DMA控制器123,在本實施例中,從處理器120主要執(zhí)行計算任務(wù),其可通過數(shù)據(jù)或指令級的并行處理達(dá)到高的運(yùn)算能力,從處理器120通過控制本地從DMA控制器123進(jìn)行數(shù)據(jù)傳輸。片上互聯(lián)網(wǎng)絡(luò)130包括星形網(wǎng)絡(luò)131、環(huán)形網(wǎng)絡(luò)132及串行網(wǎng)絡(luò)133。在本實施例中,通過星形網(wǎng)絡(luò)130可以提供外部存儲器150至從處理器120的從片上存儲器122之間的數(shù)據(jù)交換通道,以及提供主處理器110與從處理器120之間的數(shù)據(jù)廣播通道。環(huán)形網(wǎng)絡(luò)132可以提供從處理器120之間的數(shù)據(jù)交換通道。串行網(wǎng)絡(luò)133可以提供從處理器120之間的短消息交換通道。本發(fā)明實施例中的片上互聯(lián)網(wǎng)絡(luò)結(jié)合了星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)和串行網(wǎng)絡(luò),從而不但可以提供高帶寬的流數(shù)據(jù)傳輸,而且還可以提供低延遲的短消息傳遞。如圖2所示為本發(fā)明實施例提供的一種星形網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,該星形網(wǎng)絡(luò)采用星形拓?fù)浣Y(jié)構(gòu)連接主處理器110和多個從處理器120,其中主處理器110作為星形網(wǎng)絡(luò)的主節(jié)點,主處理器110的主DMA控制器113有專用的數(shù)據(jù)通道(220A-D)連接到每個從處理器 120的葉節(jié)點(210A-D),另外每個從處理器120分別通過數(shù)據(jù)通道(230A-D)連接至對應(yīng)的葉節(jié)點(210A-D)。在本實施例中,只有主處理器110及主DMA控制器113使用全局地址空間訪問外部存儲器150,從處理器120并不直接訪問共享的外部存儲器150,從處理器120是控制器本地從DMA控制器123來訪問與其相連的葉節(jié)點(210A-D)來傳輸數(shù)據(jù)。下面對從處理器120和外部存儲器150之間的數(shù)據(jù)交換進(jìn)行如下說明
首先,每個處理器都會在本地產(chǎn)生存儲器地址,具體來說,主處理器是利用主DMA 控制器113來產(chǎn)生外部存儲器150的地址,而從處理器120是利用從DMA控制器123來產(chǎn)生本地片上存儲單元122的存儲器地址。當(dāng)從外部存儲器150讀取數(shù)據(jù)并寫入從處理器120 的片上存儲器122時,主DMA控制器113首先會將數(shù)據(jù)從外部存儲器150內(nèi)讀出,然后寫入對應(yīng)的葉節(jié)點,比如葉節(jié)點210A,然后與該葉節(jié)點210A相對應(yīng)的從處理器120的從DMA控制器123會從該葉節(jié)點210A中讀取該數(shù)據(jù)并寫入其本地片上存儲單元122。另外當(dāng)從從處理器的片上存儲器122讀取數(shù)據(jù)并寫入外部存儲器150時,其過程和上述過程相反,在此不再贅述。在本實施例中,葉節(jié)點210A具有一星形網(wǎng)絡(luò)緩沖單元,其可以用于緩存從主處理器110或者從從處理器120發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包。具體來說,上述從處理器120的從DMA控制器123的數(shù)據(jù)讀入操作會在相連葉節(jié)點的星形網(wǎng)絡(luò)緩沖單元空時暫停,而從處理器120 的從DMA控制器123的數(shù)據(jù)寫出操作會在相連葉節(jié)點的星形網(wǎng)絡(luò)緩沖單元滿時暫停。在本實施例中,多個從處理器120可同時啟動本地從DMA控制器123進(jìn)行數(shù)據(jù)發(fā)送或接收,當(dāng)多個從處理器120同時啟動數(shù)據(jù)傳輸任務(wù)時,其傳輸仲裁控制由主處理器120 的主DMA控制器123來實現(xiàn),即主DMA控制器123當(dāng)前執(zhí)行哪個數(shù)據(jù)傳輸任務(wù),則該數(shù)據(jù)傳輸任務(wù)對應(yīng)的從處理器120得以啟動數(shù)據(jù)傳輸。另外,主DMA控制器123可采用硬件隊列任務(wù)的方式進(jìn)一步減少主處理器110的控制復(fù)雜度和主DMA控制器113的啟動延時,主處理器110可以配置多個星形網(wǎng)絡(luò)的傳輸任務(wù)到主DMA控制器113,主DMA控制器113通過在當(dāng)前數(shù)據(jù)傳輸?shù)耐瑫r,加載下一個傳輸任務(wù)的參數(shù)來減小通信延遲,在當(dāng)前任務(wù)完成的時候, 下一個傳輸任務(wù)可以立即啟動,無需中斷主處理器110后,由主處理器110重新配置新的傳輸任務(wù)。另外,在本實施例中,主處理器110的主DMA控制器113還可以使用廣播的形式發(fā)送相同的數(shù)據(jù)到多個從處理器120的葉節(jié)點中。本發(fā)明實施例的星形網(wǎng)絡(luò)通過主處理器的軟件控制簡化了外部存儲器的訪問仲裁,并通過網(wǎng)絡(luò)數(shù)據(jù)緩沖減少了多核處理器間的同步操作。如圖3所示為本發(fā)明實施例提供的一種環(huán)形網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,該環(huán)形網(wǎng)絡(luò)采用環(huán)形拓?fù)浣Y(jié)構(gòu)連接所述多個從處理器120,具體來說,是多個從處理器120所對應(yīng)的葉節(jié)點依次連接以構(gòu)成一環(huán)形結(jié)構(gòu),比如圖3中的葉節(jié)點210A-D依次連接所構(gòu)成的環(huán)形結(jié)構(gòu),相鄰葉節(jié)點之間通過數(shù)據(jù)交換通道320A-D進(jìn)行連接,另外主處理器110的主處理器核111還分別通過控制鏈路310A-D連接至各個葉節(jié)點,而各個葉節(jié)點則通過數(shù)據(jù)交換通道330A-D 連接至其對應(yīng)的從DMA控制器123。該環(huán)形網(wǎng)絡(luò)可以提供一個從處理器120至其它從處理器120的點對點的數(shù)據(jù)傳輸通道以及點對多點的數(shù)據(jù)廣播通道。如圖4所示為本發(fā)明實施例提供的一種葉節(jié)點的結(jié)構(gòu)示意圖,該葉節(jié)點210除了包括如上所述的星形網(wǎng)絡(luò)緩沖單元211,另外還可以包括電路緩沖單元212、環(huán)形網(wǎng)絡(luò)接口單元213和控制寄存器單元214。電路交換單元212用于使用電路交換來與其它葉節(jié)點進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包傳輸,它和其相鄰的葉節(jié)點的電路交換單元通過數(shù)據(jù)通道320A或者數(shù)據(jù)通道320B相連。環(huán)形網(wǎng)絡(luò)接口單元213負(fù)責(zé)仲裁,其具有一路由表,該路由表包含如下信息 從本環(huán)形網(wǎng)絡(luò)接口單元2到另外一個或多個環(huán)形網(wǎng)絡(luò)接口單元是否有數(shù)據(jù)傳輸通道。環(huán)形網(wǎng)絡(luò)接口單元213收到網(wǎng)絡(luò)數(shù)據(jù)包后,根據(jù)查看此路由表決定是否立即傳遞該網(wǎng)絡(luò)數(shù)據(jù)包,以及當(dāng)葉節(jié)點210內(nèi)不存在相應(yīng)路由時,環(huán)形網(wǎng)絡(luò)接口單元213向主處理器110發(fā)送中斷請求以請求主處理器110進(jìn)行路由配置。控制寄存器單元214用于接受主處理器對葉節(jié)點210進(jìn)行的路由配置。在本實施例中,環(huán)形網(wǎng)絡(luò)132上的數(shù)據(jù)傳輸由發(fā)送端和接收端從處理器單元120 的從DMA控制器123實現(xiàn),該從DMA控制器123由其本地處理器通過軟件配置。從處理器 120之間通過環(huán)形網(wǎng)絡(luò)的數(shù)據(jù)通信不使用全局共享地址空間。數(shù)據(jù)發(fā)送端的從DMA控制器 123生成本地存儲器地址,根據(jù)該地址從本地存儲器讀取數(shù)據(jù),并將數(shù)據(jù)打包成網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送至與其相連接的葉節(jié)點,該網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)可以包含目標(biāo)從處理器的選擇信息、數(shù)據(jù)信息、和傳輸?shù)臄?shù)據(jù)。該網(wǎng)絡(luò)數(shù)據(jù)包首先被發(fā)送至環(huán)形網(wǎng)絡(luò)接口單元213。環(huán)形網(wǎng)絡(luò)接口單元213內(nèi)包含可以到達(dá)的目標(biāo)從處理器的列表,環(huán)形網(wǎng)絡(luò)接口單元213首先比較該列表和網(wǎng)絡(luò)數(shù)據(jù)包的目標(biāo)從處理器的選擇信息,如果目標(biāo)處理器均在列表中,則發(fā)送端準(zhǔn)備就緒, 如果目標(biāo)處理器不在列表中,說明環(huán)形網(wǎng)絡(luò)沒有被配置成包含需要的的數(shù)據(jù)傳輸通道。此時環(huán)形網(wǎng)絡(luò)接口單元213將發(fā)送中斷請求到主處理器,并等待主處理器重新配置葉節(jié)點中的路由表。當(dāng)接收端的從DMA控制器123被配置成從相連葉節(jié)點接收數(shù)據(jù)流并啟動該DMA 任務(wù)后,數(shù)據(jù)傳輸開始。之后網(wǎng)絡(luò)數(shù)據(jù)包經(jīng)過多個節(jié)點從數(shù)據(jù)發(fā)送端到達(dá)接收端。接收端的從DMA控制器123生成目標(biāo)存儲器地址并將接收到的數(shù)據(jù)寫入到目標(biāo)存儲器。網(wǎng)數(shù)據(jù)包在環(huán)形網(wǎng)絡(luò)葉節(jié)點間傳輸?shù)倪^程中不包含每個數(shù)據(jù)在目標(biāo)存儲器中的存放地址信息,而只有目標(biāo)處理器的選擇信息,可以降低硬件設(shè)計的復(fù)雜性。最后發(fā)送端和接收端的從處理器 120通過各自本地的從DMA控制器123的狀態(tài)確定數(shù)據(jù)傳輸?shù)慕Y(jié)束。本發(fā)明實施例提供的環(huán)形網(wǎng)絡(luò)具有如下有益效果1、對于可預(yù)測的信號處理算法可以提前配置網(wǎng)絡(luò)路由,在收到傳輸請求后立即傳輸數(shù)據(jù),從而具有低延時的效果;2、由于該環(huán)形網(wǎng)絡(luò)設(shè)計不需要地址總線,從而減低了硬件開銷;3、由于不需要對傳輸?shù)臄?shù)據(jù)塊中的每個數(shù)據(jù)進(jìn)行網(wǎng)絡(luò)仲裁,提高了帶寬和傳輸效率。如圖5所示為本發(fā)明實施例提供的一種串行網(wǎng)絡(luò)的結(jié)構(gòu)示意圖,該串行網(wǎng)絡(luò)可以提供多個從處理器之間的短消息傳遞通道。每個從處理器120都包括一串行發(fā)送單元(圖 5中的510A-D)和一串行接收單元(圖5中的520A-D)。該串行發(fā)送單元510A-D以及串行接收單元520A-D都分別和對應(yīng)的從處理器核121相連,且每一串行發(fā)送單元還分別連接至其它從處理器的串行接收單元?;谏鲜龃芯W(wǎng)絡(luò)結(jié)構(gòu),每個從處理器120在發(fā)送短消息時可以使用串行廣播的方式從串行發(fā)送單元發(fā)送短消息數(shù)據(jù)包到所有其他從處理器的串行接收單元,串行發(fā)送的短消息數(shù)據(jù)包可以包含目標(biāo)從處理器的標(biāo)識和發(fā)送數(shù)據(jù)。所有接收從處理器都會接收到該短消息數(shù)據(jù)包,并根據(jù)接收到的從處理器標(biāo)識決定是否存儲該短消息數(shù)據(jù)包。從處理器之間的短消息傳遞的特點是數(shù)據(jù)量小,但要求低延時,而通過上述串行網(wǎng)絡(luò)來發(fā)送短消息則可以降低短消息的傳遞延遲。如圖6所示為本發(fā)明實施例提供的一種多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法的流程示意圖,該多核數(shù)字處理器片上系統(tǒng)包括一個主處理器和多個從處理器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA控制器,該方法包括SlOl 通過星形網(wǎng)絡(luò)在所述主處理器的控制下完成所述多個從處理器和外部存儲器之間的數(shù)據(jù)交換,以及完成所述主處理器與所屬多個從處理器的數(shù)據(jù)廣播。S102 通過環(huán)形網(wǎng)絡(luò)完成所述從處理器之間的數(shù)據(jù)交換。S103 通過串行網(wǎng)絡(luò)完成所述從處理器之間的短消息傳遞。需要指出的是,本發(fā)明實施例并不限定上述步驟的順序,其可以同時進(jìn)行,也可以分時進(jìn)行,都在本發(fā)明實施例的范圍之內(nèi)。本發(fā)明實施例中的片上互聯(lián)網(wǎng)絡(luò)結(jié)合了星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)和串行網(wǎng)絡(luò),從而不但可以提供高帶寬的流數(shù)據(jù)傳輸,而且還可以提供低延遲的短消息傳遞。如圖7所示為本發(fā)明實施例提供的利用星形網(wǎng)絡(luò)在從處理器及外部存儲器之間傳輸數(shù)據(jù)的流程示意圖,該星形網(wǎng)絡(luò)的結(jié)構(gòu)可以參見圖2及其對應(yīng)的描述,該數(shù)據(jù)傳輸步驟包括主處理器配置主DMA控制器并啟動傳輸任務(wù),該傳輸任務(wù)包括從外部存儲器讀取數(shù)據(jù)并發(fā)送至星形網(wǎng)絡(luò)的葉節(jié)點,或者從所述星形網(wǎng)絡(luò)的葉節(jié)點讀取數(shù)據(jù)并存儲至所述外部存儲器。在主處理器配置主DMA控制器的同時,從處理器也可以開始配置其本地從DMA 控制器并啟動相應(yīng)的傳輸任務(wù)。當(dāng)然本發(fā)明實施例并不限定主處理器及從處理器配置DMA 控制器及啟動傳輸任務(wù)的先后次序。然后當(dāng)主處理器和從處理器啟動的傳輸任務(wù)相同時, 相應(yīng)的從處理器和外部存儲器之間開始進(jìn)行數(shù)據(jù)交換。為了更好地對本發(fā)明實施進(jìn)行說明,假設(shè)傳輸任務(wù)1是從外部存儲器讀取數(shù)據(jù)至第一從處理器,而傳輸任務(wù)2是從第二從處理器的片上存儲器讀取數(shù)據(jù)至外部存儲器。首先,主處理器配置主DMA控制器,具體可以包括配置外部存儲器的地址生成器以生成所述外部存儲器的地址,以及配置傳輸參數(shù),該傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度,在本實施例中,對應(yīng)上述傳輸任務(wù)1,這里的數(shù)據(jù)源是外部存儲器內(nèi)的數(shù)據(jù),該目的地的選擇信息可以為與第一從處理器相連的葉節(jié)點的ID信息。其次,第一從處理器配置其本地從DMA控制器,以及第二從處理器也配置其本地從DMA控制器,具體可以包括配置本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,以及配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度。在本實施例中,對應(yīng)上述傳輸任務(wù)1,數(shù)據(jù)源的選擇信息可以為外部存儲器,數(shù)據(jù)目的地的選擇信息為第一從處理器的片上存儲器,對應(yīng)上述傳輸任務(wù)2,數(shù)據(jù)源的選擇信息為第二從處理器的片上存儲器,而數(shù)據(jù)目的的選擇信息為外部存儲器。在本實施例中,由于主處理器和第一從處理器同時都啟動了傳輸任務(wù)1,因此傳輸任務(wù)1得以執(zhí)行,即主處理器先將數(shù)據(jù)從外部存儲器讀出并寫入與第一從處理器相連的葉節(jié)點,然后第一從處理器從該葉節(jié)點讀出數(shù)據(jù)并寫入其本地片上存儲單元。由于第二從處理器所啟動的是傳輸任務(wù)2,和主處理器的傳輸任務(wù)不同,因此第二從處理器需要進(jìn)入等待狀態(tài),等待其對應(yīng)葉節(jié)點的數(shù)據(jù)緩沖,這里的數(shù)據(jù)緩沖是由于雖然主處理器沒有啟動任務(wù) 2,但是第二從處理器已經(jīng)開始發(fā)送數(shù)據(jù)給與其相連的葉節(jié)點,該葉節(jié)點的數(shù)據(jù)緩沖內(nèi)區(qū)有該數(shù)據(jù),但是由于主處理器沒有啟動任務(wù),該數(shù)據(jù)緩沖區(qū)很快為滿,此時第二從處理器不再發(fā)送數(shù)據(jù),直到傳輸任務(wù)2開始后緩沖區(qū)內(nèi)數(shù)據(jù)開始被讀出為止。當(dāng)主處理器也啟動傳輸任務(wù)2時,第二從處理器再將數(shù)據(jù)從其本地片上存儲單元讀出并寫入與其相連的葉節(jié)點, 然后主處理器從該葉節(jié)點讀出該數(shù)據(jù)并寫入外部存儲器。另外,對于主處理器到多個從處理器的數(shù)據(jù)廣播,傳輸需等待主DMA控制器和所有目標(biāo)從處理器的從DMA控制器均配置完并啟動傳輸任務(wù)之后開始進(jìn)行數(shù)據(jù)廣播。由上述描述可以看出,星形網(wǎng)絡(luò)連接的多個處理器各自獨立啟動DMA傳輸任務(wù), 對外部存儲器的訪問仲裁由主處理器通過調(diào)度主DMA控制器的傳輸任務(wù)實現(xiàn)。數(shù)據(jù)傳輸同步由位于網(wǎng)絡(luò)節(jié)點內(nèi)的數(shù)據(jù)緩沖實現(xiàn),各個處理器之間不需要通過短消息或者中斷請求來同步數(shù)據(jù)傳輸,因此星形網(wǎng)絡(luò)通過主處理器的軟件控制簡化了外部存儲器的訪問仲裁,并通過網(wǎng)絡(luò)數(shù)據(jù)緩沖減少了多核間的同步操作。如圖8所示為本發(fā)明實施例提供的利用環(huán)形網(wǎng)絡(luò)在從處理器之間傳輸數(shù)據(jù)的流程示意圖,該環(huán)形網(wǎng)絡(luò)的結(jié)構(gòu)可以參見圖3及其對應(yīng)的描述,在本實施例中,假設(shè)數(shù)據(jù)是從第一從處理器發(fā)送至第二從處理器,則該方法包括第一從處理器配置其本地DMA控制器并啟動數(shù)據(jù)發(fā)送任務(wù),這里配置本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址, 配置傳輸參數(shù),所述傳輸參數(shù)包括目標(biāo)處理器的選擇信息以及傳輸數(shù)據(jù)長度;同時,第二處理器也配置其本地DMA控制器并啟動數(shù)據(jù)接收任務(wù),這里配置本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源處理器的選擇信息以及傳輸數(shù)據(jù)長度。第一從處理器發(fā)送數(shù)據(jù)傳輸請求到與之相連的葉節(jié)點的環(huán)形網(wǎng)絡(luò)接口單元并等待響應(yīng),同時第二等待接收數(shù)據(jù)。和第一從處理器相連的葉節(jié)點根據(jù)數(shù)據(jù)傳輸請求進(jìn)行本地仲裁,即判斷路由列表中是否具有第二從處理器,若有,則立即響應(yīng)并通過電路交換單元進(jìn)行數(shù)據(jù)傳輸,若沒有, 則向主處理器發(fā)送中斷請求,以請求主處理器重新配置路由列表,當(dāng)主處理器配置好路由表后,再響應(yīng)數(shù)據(jù)傳輸請求并通過電路交換單元進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸結(jié)束后第一從處理器和第二從處理器各自結(jié)束其本地DMA控制器的數(shù)據(jù)發(fā)送和接收任務(wù)。如圖9所示為本發(fā)明實施例提供的利用串行網(wǎng)絡(luò)在從處理器之間傳輸短消息的流程示意圖,該串行網(wǎng)絡(luò)的結(jié)構(gòu)可以參見圖5及其對應(yīng)的描述,該方法包括S901 發(fā)送端的從處理器發(fā)送短消息數(shù)據(jù)包到與之相連的串行發(fā)送單元。S902:該串行發(fā)送單元以串行廣播的方式將該短消息數(shù)據(jù)包發(fā)送到所有連接的串行接收單元。S903 串行接收單元接收上述短消息數(shù)據(jù)包。S904 根據(jù)該短消息數(shù)據(jù)包內(nèi)的目標(biāo)從處理器標(biāo)識決定是否存儲該短消息數(shù)據(jù)包,若短消息數(shù)據(jù)包內(nèi)的從處理器標(biāo)識所標(biāo)識的是與串行接收單元相連的從處理器,則進(jìn)入步驟S906 ;否則進(jìn)入步驟S905。S905 丟棄該短消息數(shù)據(jù)包S905 存儲該短消息數(shù)據(jù)包至接收端從處理器的本地片上存儲單元內(nèi)。S906 將該短消息數(shù)據(jù)包的相應(yīng)標(biāo)識位設(shè)置為已經(jīng)收到所述短消息數(shù)據(jù)包;S907 接收端處理器通過輪詢方式檢查該短消息數(shù)據(jù)包的上述相應(yīng)標(biāo)識位以讀取接收到的短消息。從處理器之間的短消息傳遞的特點是數(shù)據(jù)量小,但要求低延時,而通過上述串行網(wǎng)絡(luò)來發(fā)送短消息則可以降低短消息的傳遞延遲。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多核數(shù)字處理器片上系統(tǒng),其特征在于,包括一個主處理器、多個從處理器和外部存儲器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA 控制器,所述主處理器通過I/O控制器對所述外部存儲器進(jìn)行控制和訪問,各處理器之間通過一片上互聯(lián)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,所述片上互聯(lián)網(wǎng)絡(luò)由星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)以及串行網(wǎng)絡(luò)構(gòu)成。
2.如權(quán)利要求1所述的多核數(shù)字處理器片上系統(tǒng),其特征在于,所述星形網(wǎng)絡(luò)采用星形拓?fù)浣Y(jié)構(gòu)連接所述主處理器和所述多個從處理器,所述主處理器作為所述星形網(wǎng)絡(luò)的主節(jié)點,所述主處理器分別連接至所述星形網(wǎng)絡(luò)中的各個葉節(jié)點,所述多個從處理器分別連接至對應(yīng)的一個葉節(jié)點,所述星形網(wǎng)絡(luò)提供從所述外部存儲器到所述從處理器的片上存儲器之間的點對點以及點對多點的數(shù)據(jù)傳輸通道。
3.如權(quán)利要求2所述的多核數(shù)字處理器片上系統(tǒng),其特征在于,所述葉節(jié)點包括一星形網(wǎng)絡(luò)緩沖單元,用于緩存從所述主處理器或者所述從處理器發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包。
4.如權(quán)利要求1所述的多核數(shù)字處理器片上系統(tǒng),其特征在于,所述環(huán)形網(wǎng)絡(luò)采用環(huán)形拓?fù)浣Y(jié)構(gòu)連接所述多個從處理器,所述多個從處理器所對應(yīng)的葉節(jié)點依次連接以構(gòu)成一環(huán)形結(jié)構(gòu),所述環(huán)形網(wǎng)絡(luò)提供一個從處理器至其它從處理器的點對點的數(shù)據(jù)傳輸通道以及點對多點的數(shù)據(jù)廣播通道。
5.如權(quán)利要求3所述的多核數(shù)字處理器片上系統(tǒng),其特征在于,所述環(huán)形網(wǎng)絡(luò)內(nèi)的葉節(jié)點包括一電路交換單元,用于使用電路交換來與其它葉節(jié)點進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包傳輸;一環(huán)形網(wǎng)絡(luò)接口單元,用于根據(jù)路由表決定是否立即傳送所述網(wǎng)絡(luò)數(shù)據(jù)包,以及當(dāng)所述葉節(jié)點內(nèi)不存在相應(yīng)路由時,向所述主處理器發(fā)送中斷請求以請求所述主處理器進(jìn)行路由配置;一控制寄存器單元,用于接受所述主處理器對所述葉節(jié)點進(jìn)行的路由配置。
6.如權(quán)利要求1所述的多核數(shù)字處理器片上系統(tǒng),其特征在于,所述串行網(wǎng)絡(luò)提供所述多個從處理器之間的短消息傳遞通道,每個所述從處理器都包括一串行發(fā)送單元及串行接收單元,其中串行發(fā)送單元分別連接至其它從處理器的串行接收單元以構(gòu)成所述串行網(wǎng)絡(luò)。
7.一種多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述多核數(shù)字處理器片上系統(tǒng)包括一個主處理器、多個從處理器和外部存儲器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA控制器,所述主處理器通過I/O控制器對所述外部存儲器進(jìn)行控制和訪問,所述方法包括通過星形網(wǎng)絡(luò)在所述主處理器的控制下完成所述多個從處理器和外部存儲器之間的數(shù)據(jù)交換,以及完成所述主處理器與所屬多個從處理器的數(shù)據(jù)廣播;通過環(huán)形網(wǎng)絡(luò)完成所述從處理器之間的數(shù)據(jù)交換;通過串行網(wǎng)絡(luò)完成所述從處理器之間的短消息傳遞。
8.如權(quán)利要求7所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述通過星形網(wǎng)絡(luò)在所述主處理器的控制下完成所述多個從處理器和外部存儲器之間的數(shù)據(jù)交換包括主處理器配置主DMA控制器并啟動傳輸任務(wù)來從外部存儲器讀取數(shù)據(jù)并發(fā)送至星形網(wǎng)絡(luò)的葉節(jié)點,或者從所述星形網(wǎng)絡(luò)的葉節(jié)點讀取數(shù)據(jù)并存儲至所述外部存儲器;從處理器配置其本地DMA控制器并啟動傳輸任務(wù)來從本地片上存儲單元讀取數(shù)據(jù)并發(fā)送至星形網(wǎng)絡(luò)的葉節(jié)點,或者從所述星形網(wǎng)絡(luò)的葉節(jié)點接收數(shù)據(jù)并存儲至所述本地片上存儲單元;當(dāng)主處理器和從處理器的傳輸任務(wù)相同時,相應(yīng)的從處理器和外部存儲器之間開始進(jìn)行數(shù)據(jù)交換。
9.如權(quán)利要求8所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,當(dāng)從處理器和主處理器的傳輸任務(wù)不同或者從處理器先啟動傳輸任務(wù),而主處理器未啟動傳輸任務(wù)時,該從處理器進(jìn)入等待狀態(tài),等待葉節(jié)點的數(shù)據(jù)緩沖,當(dāng)主處理器啟動相同傳輸任務(wù)時,再開始和外部存儲器進(jìn)行數(shù)據(jù)交換;當(dāng)主處理器先啟動傳輸任務(wù)而從處理器未啟動傳輸任務(wù)時,該主處理器進(jìn)入等待狀態(tài),當(dāng)從處理器啟動相同傳輸任務(wù)時,再開始和外部存儲器進(jìn)行數(shù)據(jù)交換。
10.如權(quán)利要求8所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述主處理器配置主DMA控制器包括配置外部存儲器的地址生成器以生成所述外部存儲器的地址,以及配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度。
11.如權(quán)利要求8所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述從處理器配置其本地DMA控制器包括配置本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,以及配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源和數(shù)據(jù)目的地的選擇信息以及傳輸數(shù)據(jù)長度。
12.如權(quán)利要求7所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述通過星形網(wǎng)絡(luò)完成所述主處理器與所屬多個從處理器的數(shù)據(jù)廣播包括主處理器配置主DMA控制器并啟動數(shù)據(jù)廣播任務(wù);多個從處理器配置其本地DMA控制器并啟動數(shù)據(jù)廣播任務(wù);當(dāng)所有處理器都啟動數(shù)據(jù)廣播任務(wù)后,主處理器開始向所有從處理器進(jìn)行數(shù)據(jù)廣播。
13.如權(quán)利要求7所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述通過環(huán)形網(wǎng)絡(luò)完成所述從處理器之間的數(shù)據(jù)交換包括數(shù)據(jù)發(fā)送端的從處理器配置其本地DMA控制器并啟動數(shù)據(jù)發(fā)送任務(wù),數(shù)據(jù)接收端的從處理器配置其本地DMA控制器并啟動數(shù)據(jù)接收任務(wù);數(shù)據(jù)發(fā)送端的從處理器發(fā)送數(shù)據(jù)傳輸請求到與之相連的葉節(jié)點的環(huán)形網(wǎng)絡(luò)接口單元, 數(shù)據(jù)接收端的從處理器等待接收數(shù)據(jù);所述葉節(jié)點根據(jù)數(shù)據(jù)傳輸請求判斷路由列表中是否具有數(shù)據(jù)接收端的從處理器,若有,則立即響應(yīng)并通過電路交換單元進(jìn)行數(shù)據(jù)傳輸,若沒有,則向主處理器發(fā)送中斷請求, 以請求主處理器重新配置路由列表。
14.如權(quán)利要求13所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于, 所述數(shù)據(jù)發(fā)送端的從處理器配置其本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,配置傳輸參數(shù),所述傳輸參數(shù)包括目標(biāo)處理器的選擇信息以及傳輸數(shù)據(jù)長度;所述數(shù)據(jù)接收端的從處理器配置其本地DMA控制器包括配置其本地片上存儲單元的地址生成器以生成所述本地片上存儲單元的地址,配置傳輸參數(shù),所述傳輸參數(shù)包括數(shù)據(jù)源處理器的選擇信息以及傳輸數(shù)據(jù)長度。
15.如權(quán)利要求7所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述通過串行網(wǎng)絡(luò)完成所述從處理器之間的短消息傳遞包括發(fā)送端的從處理器發(fā)送短消息數(shù)據(jù)包到與之相連的串行發(fā)送單元; 所述串行發(fā)送單元以串行廣播的方式將所述短消息數(shù)據(jù)包發(fā)送到所有連接的串行接收單元;所述串行接收單元接收所述短消息數(shù)據(jù)包,并根據(jù)所述短消息數(shù)據(jù)包內(nèi)的目標(biāo)從處理器標(biāo)識決定是否存儲所述包,若所述短消息數(shù)據(jù)包內(nèi)的從處理器標(biāo)識所標(biāo)識的是與所述串行接收單元相連的從處理器,則存儲所述短消息數(shù)據(jù)包至從處理器的本地片上存儲單元內(nèi),否則即丟棄所述短消息數(shù)據(jù)包。
16.如權(quán)利要求15所述的多核數(shù)字處理器片上系統(tǒng)的數(shù)據(jù)傳輸方法,其特征在于,所述串行接收單元存儲所述短消息數(shù)據(jù)包之后,還包括將所述短消息數(shù)據(jù)包的相應(yīng)標(biāo)識位設(shè)置為已經(jīng)收到所述短消息數(shù)據(jù)包; 接收端處理器通過輪詢方式檢查所述短消息數(shù)據(jù)包的所述相應(yīng)標(biāo)識位以讀取接收到的短消息。
全文摘要
本發(fā)明實施例提供了一種多核數(shù)字信號處理器片上系統(tǒng)及數(shù)據(jù)傳輸方法,系統(tǒng)包括一個主處理器、多個從處理器和外部存儲器,每個所述主處理和從處理器都包括處理器核、片上存儲器和直接內(nèi)存訪問DMA控制器,所述主處理器通過I/O控制器對所述外部存儲器進(jìn)行控制和訪問,各處理器之間通過一片上互聯(lián)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換,所述片上互聯(lián)網(wǎng)絡(luò)由星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)以及串行網(wǎng)絡(luò)構(gòu)成。本發(fā)明實施例中的片上互聯(lián)網(wǎng)絡(luò)結(jié)合了星形網(wǎng)絡(luò)、環(huán)形網(wǎng)絡(luò)和串行網(wǎng)絡(luò),從而不但可以提供高帶寬的流數(shù)據(jù)傳輸,而且還可以提供低延遲的短消息傳遞,另外,本發(fā)明實施例通過主處理器的軟件控制簡化了外部存儲器的訪問仲裁,并通過網(wǎng)絡(luò)數(shù)據(jù)緩沖減少了多核處理器間的同步操作,降低了多核處理器軟件程序設(shè)計的復(fù)雜度。
文檔編號G06F15/173GK102521201SQ201110363908
公開日2012年6月27日 申請日期2011年11月16日 優(yōu)先權(quán)日2011年11月16日
發(fā)明者劉大可, 安德里雅思·卡爾松, 猷阿·索, 王建 申請人:劉大可