最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種多核并行數(shù)字信號處理器及并行指令集的運行方法

文檔序號:6438571閱讀:270來源:國知局
專利名稱:一種多核并行數(shù)字信號處理器及并行指令集的運行方法
技術(shù)領(lǐng)域
本發(fā)明涉及多核處理器技術(shù)領(lǐng)域,尤其涉及一種多核并行數(shù)字信號處理器及并行指令集的運行方法。
背景技術(shù)
傳統(tǒng)的計算機結(jié)構(gòu)設(shè)計致力于優(yōu)化高速緩沖存儲器,分支預(yù)測,和非順序執(zhí)行的超標(biāo)量體系結(jié)構(gòu)。這些做法適用于通用型處理器設(shè)計,但并不是嵌入系統(tǒng)的最佳選擇。與之類似,并行運算在通用高性能計算中發(fā)揮了重要作用,但已有的并行結(jié)構(gòu)和并行編程模型都不是針對高性能嵌入系統(tǒng)而設(shè)計的。嵌入處理器有著廣泛的應(yīng)用,如在手機和其他電池供電的系統(tǒng)中使用具有超低功耗的處理器。專用指令集處理器是嵌入式系統(tǒng)的最佳處理器結(jié)構(gòu)。嵌入式信號處理系統(tǒng)使用專用指令集處理器來達到在特定應(yīng)用范圍的高性能,低功耗和可編程性。專用指令集處理器針對一類應(yīng)用來設(shè)計和優(yōu)化其指令集架構(gòu)從而減小處理器的功耗和硅面積。專用處理器架構(gòu)的設(shè)計一般使用以下兩種模型流水并行模型此模型包含若干處理單元,每個單元運行一個任務(wù),處理單元間使用鏈式連接。處理單元N的輸出被連接至處理單元N+1的輸入。這個模型被廣泛應(yīng)用于通信和多媒體信號處理。使用流水并行模型的關(guān)鍵是在每個處理器上的任務(wù)運行時間都小于整個系統(tǒng)輸入數(shù)據(jù)的時間間隔。數(shù)據(jù)并行模型若干處理單元對不同的數(shù)據(jù)執(zhí)行相同任務(wù)來計算結(jié)果。使用數(shù)據(jù)并行模型的關(guān)鍵是識別數(shù)據(jù)的規(guī)則性并據(jù)此對數(shù)據(jù)進行拆分和并行運算。專用處理器設(shè)計通常是以上兩種模型的靈活組合。處理器或者片上系統(tǒng)設(shè)計的目標(biāo)是設(shè)計兩種模型的最佳組合以剛好滿足特定應(yīng)用對性能的需求,以避免多余的運算器件和片上互聯(lián)網(wǎng)絡(luò)的硬件開銷和功率消耗。最初的高性能信號處理器采用專用集成電路(ASIC,Application Specific Integrated Circuits),這在當(dāng)時是達到高性能和低功耗的唯一方法。但是專用集成電路缺乏靈活性。由于信號處理應(yīng)用不斷的有新標(biāo)準和新算法被提出,硬件設(shè)計的靈活性和可編程性成為了一個重要的要求。典型的實例是無線電基帶處理器和多媒體處理器。無線電基帶處理器需要通過軟件編程來支持多個無線通信標(biāo)準的基帶信號處理。多媒體處理器需要支持多種音頻和視頻的編解碼標(biāo)準。為了提供更大的運算能力,專用處理器使用并行多核結(jié)構(gòu)。每個處理器核也使用指令級或者數(shù)據(jù)級并行以提高運算能力。已有的可編程數(shù)字信號處理器核使用兩種微結(jié)構(gòu)。一種是基于超長指令字(VLIW,Very Long Instruction Word)結(jié)構(gòu)的處理器。另一種是使用單指令多數(shù)據(jù)(SIMD,Single Instruction Multiple Data)結(jié)構(gòu)的處理器。已有的多核處理器主要使用以下三種結(jié)構(gòu)第一種是基于一個DSP (Digital Signal Processing, 數(shù)字信號處理)核和一個VLIW核的雙核架構(gòu)。第二種是基于一個控制器和若干SIMD核的多核處理器。第三種是類似圖形顯示處理器(GPU,Graphic Processing Unit)的大規(guī)模并行計算陣列。數(shù)字信號處理器的處理效率定義為算法功能運算操作除以總操作。算法功能運算操作是處理器對用戶必須支持的操作。非功能控制操作和數(shù)據(jù)存取操作為冗余操作。為提高處理器效率,需在指令集結(jié)構(gòu)設(shè)計和系統(tǒng)多核設(shè)計的過程中最大可能的減少或掩蓋冗余操作。所有為減少冗余而特定設(shè)計的指令和特定的結(jié)構(gòu)增加了編程復(fù)雜度。這個增加的復(fù)雜度必須通過匯編編譯工具和編程流程來掩蓋。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種多核并行數(shù)字信號處理器及并行指令集的運行方法,以提高處理器效率,最大可能的減少或掩蓋冗余操作。一方面,本發(fā)明實施例提供了一種多核并行數(shù)字信號處理器,所述多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,主處理器用于運行控制指令子集;一個或多個從處理器的并行存取單元用于運行并行存取指令子集;一個或多個從處理器的并行計算單元用于運行并行運算指令子集??蛇x的,在本發(fā)明一實施例中,一個或多個從處理器的并行存取單元的有限狀態(tài)機控制器,用于運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作??蛇x的,在本發(fā)明一實施例中,一個或多個從處理器的并行計算單元的有限狀態(tài)機控制器,用于運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作(由任務(wù)級指令啟動,使用并行計算單元的數(shù)據(jù)通道,通過數(shù)據(jù)通道中計算元件的組合來完成多個算術(shù)邏輯操作),或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作(由任務(wù)級指令啟動,使用并行計算單元的數(shù)據(jù)通道,在有限狀態(tài)機控制器的控制下,完成多個算術(shù)邏輯操作),或基于緊耦合加速單元的單指令多操作(由任務(wù)級指令啟動,使用并行計算單元的緊耦合加速器進行多操作計算)的算術(shù)邏輯運算??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元,運行并行存取指令子集,并對并行計算單元提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元之間、寄存器組和并行計算單元之間交換數(shù)據(jù)??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行計算單元用于運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元采用單指令多數(shù)據(jù) SIMD結(jié)構(gòu)的數(shù)據(jù)通道,對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括通過并行存取單元到直接內(nèi)存存取DMA控制器和并行計算單元的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問??蛇x的,在本發(fā)明一實施例中,所述利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序,并存入主存儲器。可選的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集和所述并行存取指令子集??蛇x的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行存取單元的有限狀態(tài)機控制器和并行計算單元的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán),這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。另一方面,本發(fā)明實施例提供了一種并行指令集的運行方法,所述方法通過多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器, 所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,包括通過主處理器運行控制指令子集;通過一個或多個從處理器的并行存取單元運行并行存取指令子集;通過一個或多個從處理器的并行計算單元運行并行運算指令子集??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過一個或多個從處理器的并行存取單元的有限狀態(tài)機控制器,運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元的有限狀態(tài)機控制器,運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作,或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作,或基于緊耦合加速單元的單指令多操作的算術(shù)邏輯運算??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元,運行并行存取指令子集,并對并行計算單元提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元之間、寄存器組和并行計算單元之間交換數(shù)據(jù)??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元采用單指令多數(shù)據(jù)SIMD結(jié)構(gòu)的數(shù)據(jù)通道,對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過并行存取單元到直接內(nèi)存存取DMA控制器和并行計算單元的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取。可選的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問??蛇x的,在本發(fā)明一實施例中,所述利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序,并存入主存儲器。可選的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集和所述并行存取指令子集??蛇x的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行存取單元的有限狀態(tài)機控制器和并行計算單元的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán),這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。上述技術(shù)方案具有如下有益效果因為采用多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,包括通過主處理器運行控制指令子集; 通過一個或多個從處理器的并行存取單元運行并行存取指令子集;通過一個或多個從處理器的并行計算單元運行并行運算指令子集的技術(shù)手段,所以提高了處理器效率,最大可能的減少或掩蓋了冗余操作,從而提高了處理器的處理性能。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一種多核并行數(shù)字信號處理器結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例包括三個數(shù)據(jù)存取硬件的并行存儲器框圖;圖3為本發(fā)明實施例外部存儲器輸入數(shù)據(jù)交織實例示意圖;圖4為本發(fā)明實施例一個多核處理器結(jié)構(gòu)實例示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。如圖1所示,為本發(fā)明實施例一種多核并行數(shù)字信號處理器結(jié)構(gòu)示意圖,所述多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集21、并行存取指令子集 22及并行運算指令子集23,其中,所述多核并行數(shù)字信號處理器包括一主處理器11以及多個從處理器,所述從處理器由相互獨立的并行存取單元13和并行計算單元14組成,所述控制指令子集21、并行存取指令子集22及并行運算指令子集23分別獨立編碼并分別由獨立的硬件單元執(zhí)行,主處理器11用于運行控制指令子集21 ;—個或多個從處理器的并行存取單元13用于運行并行存取指令子集22 ;—個或多個從處理器的并行計算單元14用于運行并行運算指令子集23。該多核并行數(shù)字信號處理器還包括直接內(nèi)存存取(DMA,Direct Memory Access)控制器12,用于通過存儲子系統(tǒng)15從主存儲器中存取數(shù)據(jù),并在主處理器 11和從處理器之間傳輸數(shù)據(jù)。可選的,在本發(fā)明一實施例中,一個或多個從處理器的并行存取單元13的有限狀態(tài)機控制器,用于運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作??蛇x的,在本發(fā)明一實施例中,一個或多個從處理器的并行計算單元14的有限狀態(tài)機控制器,用于運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作,或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作,或基于緊耦合加速單元的單指令多操作的算術(shù)邏輯運算??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元13用于運行并行存取指令子集22,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元13,運行并行存取指令子集22,并對并行計算單元14提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元14之間、寄存器組和并行計算單元14之間交換數(shù)據(jù)??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行計算單元14用于運行并行運算指令子集23,包括通過一個或多個從處理器的并行計算單元14采用單指令多數(shù)據(jù)SIMD結(jié)構(gòu)的數(shù)據(jù)通道,對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算。可選的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元13用于運行并行存取指令子集22,包括通過并行存取單元13到直接內(nèi)存存取DMA控制器12和并行計算單元14的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取??蛇x的,在本發(fā)明一實施例中,所述一個或多個從處理器的并行存取單元13用于運行并行存取指令子集22,包括利用并行存取單元13中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問??蛇x的,在本發(fā)明一實施例中,所述利用并行存取單元13中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序,并存入主存儲
ο可選的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集23和所述并行存取指令子集??蛇x的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行存取單元 13的有限狀態(tài)機控制器和并行計算單元14的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán), 這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。本發(fā)明實施例公開了一種基于三維正交并行指令集的高效并行體系結(jié)構(gòu)。這個體系結(jié)構(gòu)的指令集分為三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集??刂浦噶钭蛹谥骺刂破鲀?nèi)運行,用于頂層程序、系統(tǒng)控制、資源管理、和少量的不可預(yù)測算法的執(zhí)行??刂浦噶钭蛹拿織l指令的二進制編碼很短,因此可允許其程序長度較長。 并行存取指令子集控制并行數(shù)據(jù)存取通道,它是數(shù)據(jù)存取指令子集,用于編制和執(zhí)行本地存儲器組和寄存器組、本地存儲器組和并行計算單元、寄存器組和并行計算單元之間的數(shù)據(jù)的存取。因為數(shù)據(jù)信號處理多為循環(huán)迭代運算,并行存取指令子集應(yīng)能夠即以程序代碼方式提供每個時鐘的執(zhí)行設(shè)定;又能以可重構(gòu)向量代碼的方式提供面向一個具體子程序的固定的控制向量,這個固定的控制向量無需每個時鐘變化。因此雖然數(shù)據(jù)存取指令子集代碼可能較長,但其變化相對少、指令個數(shù)少,代碼的開銷相對很低。并行運算指令子集控制并行數(shù)據(jù)處理通道,它是并行子程序的功能執(zhí)行指令子集。這個子集用于控制并行數(shù)據(jù)通道從而在并行數(shù)據(jù)通道上執(zhí)行并行算法。這個子集代碼的執(zhí)行是基于數(shù)據(jù)已在并行存儲器組或數(shù)據(jù)已由本地存儲器組送至數(shù)據(jù)通道的入口的前提。在執(zhí)行一條作業(yè)級的宏指令時, 一條指令可控制全部或大部子程序的執(zhí)行。因此,雖然并行子程序的功能執(zhí)行指令子集的代碼可能較長,但其變化相對少、指令個數(shù)少,代碼的開銷相對很低。通過將三個指令子集分開,單獨定義并單獨編碼,將得到下列好處1)每個指令子集單獨進行二進制代碼編碼, 代碼的存儲開銷大大減低;2)因為并行存取指令子集及并行運算指令子集的程序代碼的長度低,其二進制編碼可用微碼,從而在最大的程度上向程序員開放了硬件資源的可控性、 數(shù)據(jù)和尋址功能的用戶開發(fā)、和重構(gòu)的靈活性;幻三個指令子集代碼可進一步以流水/流水線(pipeline)方式并行執(zhí)行,程序員可在最大程度上使用并行硬件。本發(fā)明上述多核并行數(shù)字信號處理器實施例提高了處理器效率,最大可能的減少或掩蓋了冗余操作,從而提高了處理器的處理性能。如圖2所示,為本發(fā)明實施例包括三個數(shù)據(jù)存取硬件的并行存儲器框圖。其包括 (1)含有多個并行隨機存儲器的存儲器組31,(2)對這個存儲器組的并行輸入和并行輸出數(shù)據(jù)交織的可控交織開關(guān)組32,(3)對存儲器組及交織開關(guān)組實施控制的可重構(gòu)有限狀態(tài)機控制器33。硬件31存儲器組由并行的多個隨機存儲器構(gòu)成,支持在同一時間對多個存儲器的并行讀/寫。讀寫操作時提供每一個存儲器的訪問地址,可隨機訪問每個存儲器的不同地址。該并行存儲器組有兩個訪問通道。通道1(存儲器組左側(cè)通道)為外部訪問通道,外部存儲器的輸入數(shù)據(jù)通過此通道寫入并行存儲器,或者并行存儲器的本地數(shù)據(jù)通過此通道輸出至外部存儲器。通道2(存儲器組右側(cè)通道)為向量寄存器組和向量數(shù)據(jù)處理的訪問通道。從處理器通過編程提供并行存儲器的訪問地址,可并行訪問每個存儲器塊中的隨機地址。在執(zhí)行并行讀操作時,支持多路數(shù)據(jù)通道對同一存儲器塊中相同地址的讀取。硬件32并行輸入和并行輸出數(shù)據(jù)交織的可控交織開關(guān)組。對并行存儲器的外部存儲器輸入輸出數(shù)據(jù)進行交織。在對輸入數(shù)據(jù)進行交織時,輸入數(shù)據(jù)將被打亂存放在并行存儲器組中。在對輸出數(shù)據(jù)進行交織時,并行存儲器中讀出的數(shù)據(jù)將被重新排序輸出至外部存儲器。硬件33對存儲器組和交織開關(guān)組實施控制的有限狀態(tài)機控制器。其通過運行并行存取指令產(chǎn)生的交織控制向量來控制交織器,從而調(diào)整輸入或輸出向量數(shù)據(jù)的順序。并行存取指令可控制對單個向量數(shù)據(jù)讀或?qū)懙慕豢?,或?qū)Χ鄠€數(shù)據(jù)構(gòu)成的數(shù)據(jù)流的讀或?qū)懙慕豢?。外部存儲器輸入?shù)據(jù)交織如圖3所示,為本發(fā)明實施例外部存儲器輸入數(shù)據(jù)交織實例示意圖。并行存儲器組由4個隨機存儲器構(gòu)成。輸入數(shù)據(jù)流為D0-D15,每次并行寫入4個數(shù)到并行存儲器組。 寫入數(shù)據(jù)通過可控交織開關(guān)組,被重新調(diào)整在并行存儲器中的寫入位置。如第二個向量 D4D5D6D7,被調(diào)整為D7D4D5D6寫入并行存儲器中。調(diào)整的目的是為了并行計算單元的并行數(shù)據(jù)訪問。在該實例中并行計算單元需并行處理D0D4D8D12,通過輸入交織開關(guān)組將需要并行訪問的向量中的元素存放在不同的存儲器中,以達到計算時的并行無沖突訪問。在相反方向,對輸出數(shù)據(jù)進行交織時,并行計算單元的計算結(jié)果被調(diào)整順序?qū)懭氲讲⑿写鎯ζ髦校漤樞蛘{(diào)整是為了在對外部存儲器進行并行輸出時無沖突訪問本地存儲器組。以上實例中的交織開關(guān)組由可重構(gòu)的有限狀態(tài)機控制器控制,該控制器的輸入為運行并行存取指令產(chǎn)生的交織控制向量。通過重構(gòu)該有限狀態(tài)機控制器,可根據(jù)配置產(chǎn)生對輸入輸出單個向量的交織控制,或?qū)σ粋€數(shù)據(jù)流中每個向量的交織控制。多核組網(wǎng)該多核處理器的多個處理器以及外部存儲器通過片上網(wǎng)絡(luò)互聯(lián)并進行數(shù)據(jù)交換。 如圖4所示,為本發(fā)明實施例一個多核處理器結(jié)構(gòu)實例示意圖,其由一個主處理器和N個從處理器構(gòu)成,每個從處理器包含并行計算單元和并行存儲單元。外部存儲器與本地存儲器之間的數(shù)據(jù)傳輸可由連接至片上網(wǎng)絡(luò)的DMA控制器完成。從處理器與從處理器間也通過片上網(wǎng)絡(luò)交換數(shù)據(jù)。并行存取對數(shù)據(jù)的并行存取由并行存儲器組實現(xiàn),該并行存儲器組由多個隨機存儲器構(gòu)成。在同一時間,可對每個存儲器進行獨立的數(shù)據(jù)讀寫。在并行寫入的時候,輸入向量的每個元素對應(yīng)一個存儲器,可以將該向量一次寫入到存儲器組。在并行讀取的時候,從每一個隨機存儲器讀出一個數(shù)據(jù),從而實現(xiàn)一個向量的并行讀取。并行計算對數(shù)據(jù)的并行計算通過從處理器的并行計算單元實現(xiàn)。數(shù)據(jù)級并行處理器通常采用單指令多數(shù)據(jù)(Single Instruction Multiple Data, SIMD)結(jié)構(gòu),其通過多輸入的數(shù)據(jù)通道,對多個輸入數(shù)據(jù)進行計算。并行計算包括對多路輸入數(shù)據(jù)實施相同操作得到多路結(jié)果的計算,如向量加運算,對兩個向量對應(yīng)的元素相加,得到結(jié)果向量?;蚴菍Χ嗦份斎霐?shù)據(jù)進行計算得到單一結(jié)果的計算,如向量求和運算,結(jié)果為輸入向量各個元素的和。對應(yīng)于上述裝置實施例,本發(fā)明實施例還提供了一種并行指令集的運行方法,所述方法通過多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,包括通過主處理器運行控制指令子集;并通過一個或多個從處理器的并行存取單元運行并行存取指令子集;并通過一個或多個從處理器的并行計算單元運行并行運算指令子集??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過一個或多個從處理器的并行存取單元的有限狀態(tài)機控制器,運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作。可選的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元的有限狀態(tài)機控制器,運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作,或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作,或基于緊耦合加速單元的單指令多操作的算術(shù)邏輯運算??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元,運行并行存取指令子集,并對并行計算單元提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元之間、寄存器組和并行計算單元之間交換數(shù)據(jù)??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元采用單指令多數(shù)據(jù) SIMD結(jié)構(gòu)的數(shù)據(jù)通道,對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算??蛇x的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過并行存取單元到直接內(nèi)存存取DMA控制器和并行計算單元的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取。可選的,在本發(fā)明一實施例中,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問??蛇x的,在本發(fā)明一實施例中,所述利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序,并存入主存儲器??蛇x的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集和所述并行存取指令子集??蛇x的,在本發(fā)明一實施例中,所述多核并行數(shù)字信號處理器通過并行存取單元的有限狀態(tài)機控制器和并行計算單元的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán),這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。本發(fā)明上述并行指令集的運行方法實施例提高了處理器效率,最大可能的減少或掩蓋了冗余操作,從而提高了處理器的處理性能。以上所述的具體實施方式
,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式
而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種多核并行數(shù)字信號處理器,其特征在于,所述多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,主處理器用于運行控制指令子集;一個或多個從處理器的并行存取單元用于運行并行存取指令子集;一個或多個從處理器的并行計算單元用于運行并行運算指令子集。
2.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,一個或多個從處理器的并行存取單元的有限狀態(tài)機控制器,用于運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作。
3.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,一個或多個從處理器的并行計算單元的有限狀態(tài)機控制器,用于運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作,或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作,或基于緊耦合加速單元的單指令多操作的算術(shù)邏輯運算。
4.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元,運行并行存取指令子集,并對并行計算單元提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元之間、寄存器組和并行計算單元之間交換數(shù)據(jù)。
5.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述一個或多個從處理器的并行計算單元用于運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元采用單指令多數(shù)據(jù)SIMD結(jié)構(gòu)的數(shù)據(jù)通道,對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算。
6.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括通過并行存取單元到直接內(nèi)存存取 DMA控制器和并行計算單元的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取。
7.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述一個或多個從處理器的并行存取單元用于運行并行存取指令子集,包括利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問。
8.如權(quán)利要求7所述多核并行數(shù)字信號處理器,其特征在于,所述利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序,并存入主存儲器。
9.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集和所述并行存取指令子集。
10.如權(quán)利要求1所述多核并行數(shù)字信號處理器,其特征在于,所述多核并行數(shù)字信號處理器通過并行存取單元的有限狀態(tài)機控制器和并行計算單元的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán),這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。
11.一種并行指令集的運行方法,其特征在于,所述方法通過多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,包括通過主處理器運行控制指令子集;通過一個或多個從處理器的并行存取單元運行并行存取指令子集;通過一個或多個從處理器的并行計算單元運行并行運算指令子集。
12.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過一個或多個從處理器的并行存取單元的有限狀態(tài)機控制器,運行單指令進行單次的數(shù)據(jù)存取,或者運行任務(wù)級指令進行單指令循環(huán)或多指令循環(huán)的數(shù)據(jù)存取操作。
13.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元的有限狀態(tài)機控制器,運行單指令算術(shù)邏輯運算,或者運行任務(wù)級指令進行單指令循環(huán),或多指令循環(huán),或基于并行數(shù)據(jù)通道的單指令多操作,或基于并行數(shù)據(jù)通道和有限狀態(tài)機控制器的單指令多操作,或基于緊耦合加速單元的單指令多操作的算術(shù)邏輯運算。
14.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過包含由多個存儲器構(gòu)成的本地存儲器組和寄存器組組成的并行存取單元,運行并行存取指令子集,并對并行計算單元提供多路數(shù)據(jù)的并行存取,在本地存儲器組和寄存器組之間、本地存儲器組和并行計算單元之間、寄存器組和并行計算單元之間交換數(shù)據(jù)。
15.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行計算單元運行并行運算指令子集,包括通過一個或多個從處理器的并行計算單元采用單指令多數(shù)據(jù)SIMD結(jié)構(gòu)的數(shù)據(jù)通道, 對多路數(shù)據(jù)做相同的相互獨立的操作并返回多路結(jié)果的運算,或者對多路數(shù)據(jù)操作得到一路結(jié)果的運算。
16.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括通過并行存取單元到直接內(nèi)存存取DMA控制器和并行計算單元的數(shù)據(jù)存取通道,進行并行或者串行的數(shù)據(jù)存取。
17.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述通過一個或多個從處理器的并行存取單元運行并行存取指令子集,包括利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問。
18.如權(quán)利要求17所述并行指令集的運行方法,其特征在于,所述利用并行存取單元中基于地址查找表的多交織路徑控制器,以對存儲器組進行并行無沖突訪問,包括利用第一交織表,將主存儲器中順序存儲的數(shù)據(jù)打散,并按將執(zhí)行算法的需求存入并行從處理器的存儲器中;利用第二交織表,將并行從處理器的存儲器中已經(jīng)亂序的運算結(jié)果恢復(fù)至原始順序, 并存入主存儲器。
19.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述多核并行數(shù)字信號處理器通過并行執(zhí)行的正交指令子集來達到在數(shù)據(jù)存取的同時進行算數(shù)計算,并通過設(shè)定執(zhí)行次數(shù),獨立循環(huán)執(zhí)行或聯(lián)合循環(huán)執(zhí)行所述并行運算指令子集和所述并行存取指令子集。
20.如權(quán)利要求11所述并行指令集的運行方法,其特征在于,所述多核并行數(shù)字信號處理器通過并行存取單元的有限狀態(tài)機控制器和并行計算單元的有限狀態(tài)機控制器,作為循環(huán)控制器,用于控制一個單指令多數(shù)據(jù)SIMD數(shù)據(jù)通道的循環(huán)操作,所述循環(huán)操作包括兩類一類是運行函數(shù)求解任務(wù),這類循環(huán)不需要本地向量存儲器來提供數(shù)據(jù);另一類是基于乘累加功能的循環(huán),這類循環(huán)本地向量存儲器需要提供向量數(shù)據(jù)和系數(shù)數(shù)組。
全文摘要
本發(fā)明實施例提供一種多核并行數(shù)字信號處理器及并行指令集的運行方法,所述多核并行數(shù)字信號處理器至少運行如下三個指令子集控制指令子集、并行存取指令子集及并行運算指令子集,其中,所述多核并行數(shù)字信號處理器包括一主處理器以及多個從處理器,所述從處理器由相互獨立的并行存取單元和并行計算單元組成,所述控制指令子集、并行存取指令子集及并行運算指令子集分別獨立編碼并分別由獨立的硬件單元執(zhí)行,主處理器用于運行控制指令子集;一個或多個從處理器的并行存取單元用于運行并行存取指令子集;一個或多個從處理器的并行計算單元用于運行并行運算指令子集。本發(fā)明實施例提高了處理器效率,最大可能的減少或掩蓋了冗余操作,從而提高了處理器的處理性能。
文檔編號G06F9/38GK102508643SQ201110363820
公開日2012年6月20日 申請日期2011年11月16日 優(yōu)先權(quán)日2011年11月16日
發(fā)明者劉大可, 安德里雅思·卡爾松, 猷阿·索, 王建 申請人:劉大可
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1