矢量dsp 處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),包括:作為主處理器的矢量DSP處理器、若干協(xié)處理器、指令內(nèi)存和數(shù)據(jù)內(nèi)存;其中,所述協(xié)處理器與所述矢量DSP處理器中的矢量運(yùn)算器耦合在一起;所述協(xié)處理器包括緊耦合和松耦合兩種工作模式。本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)將協(xié)處理器指令分為三大類別,統(tǒng)一并入主處理器指令集;把協(xié)處理器與高性能矢量DSP的各個(gè)矢量運(yùn)算器一一耦合,使得各個(gè)協(xié)處理器能夠獲得與對(duì)應(yīng)矢量運(yùn)算器同等的數(shù)據(jù)資源;提出了緊耦合和松耦合兩種協(xié)處理器工作模式,適應(yīng)不同的協(xié)處理器操作特點(diǎn);通過外接仲裁器和主處理器矢量運(yùn)算器個(gè)數(shù)來形成外掛矩陣式協(xié)處理器群,滿足不同應(yīng)用需求。
【專利說明】矢量DSP處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字信號(hào)處理領(lǐng)域的處理器設(shè)計(jì)技術(shù),特別涉及一種矢量DSP處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)。
【背景技術(shù)】
[0002]在數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)系統(tǒng)設(shè)計(jì)中,協(xié)處理器一般用來幫助主數(shù)字信號(hào)處理器完成一些特定用途的操作,從而彌補(bǔ)主數(shù)字信號(hào)處理器在針對(duì)某些特定領(lǐng)域應(yīng)用時(shí)自身指令集的不足,一般來說以完成計(jì)算性的指令操作為主。比如說,主數(shù)字信號(hào)處理器一般只支持定點(diǎn)數(shù)操作,當(dāng)需要完成浮點(diǎn)數(shù)操作時(shí),可以在不改變自身指令集和架構(gòu)的前提下,耦合專用的浮點(diǎn)計(jì)算協(xié)處理器,從而使得在主數(shù)字信號(hào)處理器上運(yùn)行的程序可以獲得強(qiáng)大的浮點(diǎn)運(yùn)算性能。
[0003]在現(xiàn)有的包含主數(shù)字信號(hào)處理器和協(xié)處理器的運(yùn)作系統(tǒng)中,往往存在兩套指令集,主處理器和協(xié)處理器之間的接口帶寬有限,協(xié)處理器指令和主處理器指令之間有嚴(yán)重的數(shù)據(jù)依賴副作用等問題,從而使得包含協(xié)處理器指令的軟件程序的運(yùn)行性能大打折扣,沒有完全達(dá)到原有的用協(xié)處理器對(duì)特定用途操作進(jìn)行加速的初衷。
[0004]另外,當(dāng)數(shù)字信號(hào)處理器設(shè)計(jì)技術(shù)發(fā)展到矢量信號(hào)并行運(yùn)算的時(shí)代,原有的問題在高性能矢量DSP和協(xié)處理器的協(xié)同運(yùn)作的系統(tǒng)中就更為突出。根本原因在于:隨著數(shù)據(jù)處理的精度和并行度越來越高時(shí),主處理器和協(xié)處理器之間的接口帶寬要求也越來越高,而且也需要新的架構(gòu)來解決主處理器和協(xié)處理器之間的流水線數(shù)據(jù)依賴問題,和不同應(yīng)用場景的數(shù)據(jù)交互問題。
【發(fā)明內(nèi)容】
[0005]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種矢量DSP處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),解決現(xiàn)有主協(xié)處理器協(xié)同運(yùn)作系統(tǒng)中存在的指令集不兼容、通信接口帶寬小、主處理器指令和協(xié)處理器指令之間的數(shù)據(jù)依賴副作用以及主協(xié)處理器之間數(shù)據(jù)交互方式單一的問題。
[0006]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種DSP處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),至少包括:作為主處理器的矢量DSP處理器、若干協(xié)處理器、指令內(nèi)存和數(shù)據(jù)內(nèi)存;其中,所述矢量DSP處理器包括指令預(yù)取器、指令解碼及發(fā)射器、流水線控制器、矢量寄存器陣列/標(biāo)量寄存器陣列、數(shù)據(jù)載入與寫回單元以及若干矢量運(yùn)算器;所述協(xié)處理器與所述矢量運(yùn)算器耦合在一起;所述協(xié)處理器的操作指令包括三種類別,每種類別的協(xié)處理器操作指令由所述矢量DSP處理器的指令集進(jìn)行固定編碼,從而使得主協(xié)處理器使用同一套指令集;根據(jù)源數(shù)據(jù)訪問方式和結(jié)果數(shù)據(jù)返回方式的不同,所述協(xié)處理器包括緊耦合和松耦合兩種工作模式;當(dāng)所述協(xié)處理器工作在緊耦合模式時(shí),協(xié)處理器的源數(shù)據(jù)由所述矢量DSP處理器提供,結(jié)果數(shù)據(jù)由所述協(xié)處理器在期望時(shí)序內(nèi)直接返回給所述主處理器;當(dāng)所述協(xié)處理器工作在松耦合模式時(shí),所述矢量DSP處理器只是發(fā)送命令給協(xié)處理器,源數(shù)據(jù)由所述協(xié)處理器自己去所述數(shù)據(jù)內(nèi)存去獲取,完成指定的協(xié)處理器指令操作后,所述協(xié)處理器發(fā)出中斷信號(hào)給所述矢量DSP處理器,所述矢量DSP處理器再調(diào)用中斷響應(yīng)程序來獲取所述協(xié)處理器的處理結(jié)果。
[0007]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:當(dāng)所述協(xié)處理器工作在緊耦合模式時(shí),若所述協(xié)處理器不能在期望時(shí)序內(nèi)返回結(jié)果數(shù)據(jù)時(shí),所述協(xié)處理器發(fā)出回檔信號(hào)來停止主處理器流水線,直到所述協(xié)處理器能夠返回結(jié)果數(shù)據(jù),所述主處理器流水線再繼續(xù)以期望時(shí)序運(yùn)行。
[0008]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:所述矢量運(yùn)算器通過仲裁器與所述協(xié)處理器一一對(duì)應(yīng)地進(jìn)行耦合。
[0009]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:所述矢量運(yùn)算器通過仲裁器耦合到多個(gè)所述協(xié)處理器上。
[0010]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:所述協(xié)處理器的操作指令包括的三種類別分別為VCPOUT、VCPIN和VCPCOM ;所述VCPOUT是指所述矢量DSP處理器給所述協(xié)處理器只發(fā)送命令字和源操作數(shù);所述VCPIN是指所述矢量DSP處理器給所述協(xié)處理器只發(fā)送命令字,并接收所述協(xié)處理器返回的結(jié)果操作數(shù);所述VCPCOM是指所述矢量DSP處理器給所述協(xié)處理器發(fā)送命令字和源操作數(shù),并接收所述協(xié)處理器返回的結(jié)果操作數(shù)。
[0011]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:所述協(xié)處理器中運(yùn)算器與所述矢量DSP處理器中運(yùn)算器處于相同的矢量DSP處理器的流水線階段上。
[0012]根據(jù)上述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其中:所述協(xié)處理器協(xié)處理器能夠?qū)崿F(xiàn)16比特定點(diǎn)數(shù)和8比特定點(diǎn)數(shù)之間的轉(zhuǎn)換。
[0013]如上所述,本發(fā)明的矢量DSP處理器和協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),具有以下有益效果:
[0014](I)本發(fā)明將協(xié)處理器可能需要執(zhí)行的操作指令按照與主處理器數(shù)據(jù)交互的關(guān)系分為三種類別,每種類別用主處理器的指令集進(jìn)行固定編碼,從而使得主協(xié)處理器使用同一套指令集。在每一類別的協(xié)處理器操作指令中,包含指令控制區(qū)域,源操作數(shù)區(qū)域和結(jié)果操作數(shù)區(qū)域。協(xié)處理器將根據(jù)指令控制區(qū)域的信息進(jìn)行預(yù)先設(shè)定的不同的特定用途的操作,操作數(shù)來自于前述源操作數(shù)區(qū)域,操作結(jié)果將在操作完成后返回給主處理器。主處理器事先記住結(jié)果操作數(shù)區(qū)域,從而可以把協(xié)處理器操作結(jié)果寫入結(jié)果操作數(shù)區(qū)域。
[0015](2)本發(fā)明將主協(xié)處理器的接口概念擴(kuò)展到主處理器中的若干運(yùn)算器和協(xié)處理器中的若干運(yùn)算器之間的點(diǎn)對(duì)點(diǎn)直接耦合,使得主協(xié)處理器之間的通信接口帶寬大大提升。同時(shí),在本發(fā)明中,站在主處理器的角度,協(xié)處理器中的某個(gè)運(yùn)算器其實(shí)是主處理器中對(duì)應(yīng)運(yùn)算器的備份運(yùn)算器。即協(xié)處理器中的運(yùn)算器可以獲得和主處理器中對(duì)應(yīng)運(yùn)算器同等的數(shù)據(jù)資源。主處理器中的控制單元只需要識(shí)別送往自己的某運(yùn)算器的指令是否是協(xié)處理器指令,如果不是,則把數(shù)據(jù)資源送給主處理器運(yùn)算器;如果是,則把同等數(shù)據(jù)資源送給對(duì)應(yīng)的協(xié)處理器運(yùn)算器。這樣,主協(xié)處理器之間的數(shù)據(jù)通信帶寬將大大提高。這種方式特別適合高性能矢量DSP和協(xié)處理器之間的大數(shù)據(jù)量通信。
[0016](3)為解決主協(xié)處理器之間的流水線數(shù)據(jù)依賴問題,本發(fā)明將協(xié)處理器中運(yùn)算器的運(yùn)算時(shí)序放在和對(duì)應(yīng)的主處理器中的運(yùn)算器相同的主處理器流水線階段上。當(dāng)主處理器的控制單元發(fā)送協(xié)處理器指令時(shí),它對(duì)于協(xié)處理器的完成時(shí)序的期待將和主處理器相同。因此,主處理器的控制單元可以采用正常的主處理器內(nèi)流水線優(yōu)化策略來優(yōu)化與協(xié)處理器指令相關(guān)的數(shù)據(jù)依賴周期。當(dāng)然,協(xié)處理器中的運(yùn)算器時(shí)序在某些情況下還是和主處理器中對(duì)應(yīng)運(yùn)算器時(shí)序不同。當(dāng)出現(xiàn)這種情況時(shí),本發(fā)明中的主協(xié)處理器通信接口會(huì)停止主處理器中流水線,直到協(xié)處理器的指令操作完成,主處理器可以再繼續(xù)按照事先期待的流水線時(shí)序運(yùn)行流水線。
[0017](4)為解決主協(xié)處理器之間數(shù)據(jù)交互方式單一的問題,本發(fā)明提出了兩種協(xié)處理器工作模式:緊耦合和松耦合模式。當(dāng)協(xié)處理器工作在緊耦合模式下時(shí),協(xié)處理器指令操作源數(shù)據(jù)將由主處理器從其內(nèi)存中獲取處理后再發(fā)送給對(duì)應(yīng)的協(xié)處理器,協(xié)處理器指令操作結(jié)果數(shù)據(jù)由協(xié)處理器直接返回給主處理器;當(dāng)協(xié)處理器工作在松耦合模式下時(shí),主處理器通過協(xié)處理器指令發(fā)送控制信息給協(xié)處理器,協(xié)處理器自己去主處理器內(nèi)存獲取源操作數(shù),當(dāng)處理完成后,協(xié)處理器發(fā)送中斷給主處理器,主處理器可以按照事先約定從內(nèi)存中獲取結(jié)果或者再發(fā)送協(xié)處理器指令來獲取前述結(jié)果。
[0018](5)本發(fā)明提出的通信接口可以通過外加仲裁器的方式耦合多個(gè)協(xié)處理器,從而使得一個(gè)主處理器可以耦合多個(gè)協(xié)處理器,以完成不同的應(yīng)用功能和系統(tǒng)設(shè)計(jì)需要。
[0019](6)在本發(fā)明的一種具體實(shí)施例中,與高性能矢量DSP耦合的協(xié)處理器能夠?qū)崿F(xiàn)16比特定點(diǎn)數(shù)和8比特定點(diǎn)數(shù)之間的轉(zhuǎn)換,包括寄存器配置、移位、舍入、截位、拼裝操作。這種協(xié)處理器對(duì)于最小處理精度只有16比特定點(diǎn)數(shù)的DSP來說十分有意義,因?yàn)槭褂迷搮f(xié)處理器指令在某些應(yīng)用場景下能大大降低信號(hào)處理結(jié)果的存儲(chǔ)位寬,從存儲(chǔ)16比特定點(diǎn)數(shù)到存儲(chǔ)8比特定點(diǎn)數(shù),大大 降低了系統(tǒng)內(nèi)存需求。
【專利附圖】
【附圖說明】
[0020]圖1顯示為本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0021]圖2顯示為本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的流水線時(shí)序圖。
[0022]元件標(biāo)號(hào)說明
[0023]I矢量DSP處理器
[0024]11指令預(yù)取器
[0025]12指令解碼及發(fā)射器
[0026]13流水線控制器
[0027]14矢量寄存器陣列/標(biāo)量寄存器陣列
[0028]15數(shù)據(jù)載入與寫回單元
[0029]160矢量運(yùn)算器O
[0030]161矢量運(yùn)算器I
[0031]16N矢量運(yùn)算器N
[0032]20協(xié)處理器O
[0033]21協(xié)處理器I
[0034]2N協(xié)處理器N[0035]3 指令內(nèi)存
[0036]4 數(shù)據(jù)內(nèi)存
【具體實(shí)施方式】
[0037]以下通過特定的具體實(shí)例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0038]需要說明的是,本實(shí)施例中所提供的圖示僅以示意方式說明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0039]參照?qǐng)D1,本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)包括作為主處理器的矢量DSP處理器1、若干協(xié)處理器(20、21……2N)、指令內(nèi)存3和數(shù)據(jù)內(nèi)存4。
[0040]具體地,矢量DSP處理器I為高性能矢量DSP處理器,其包括指令預(yù)取器11、指令解碼及發(fā)射器12、流水線控制器13、矢量寄存器陣列/標(biāo)量寄存器陣列14、數(shù)據(jù)載入與寫回單元15以及若干矢量運(yùn)算器(160、161、……16N)。其中,指令預(yù)取器11負(fù)責(zé)抓取存取在指令內(nèi)存3中的程序指令,并發(fā)送給指令解碼及發(fā)射器12。指令解碼及發(fā)射器12拿到指令后,先做解碼,然后根據(jù)內(nèi)核流水線特點(diǎn)做各種數(shù)據(jù)依賴檢查,最后把滿足條件的指令組發(fā)射到內(nèi)核流水線中去并行執(zhí)行。一般來說,高性能矢量DSP的指令集包括數(shù)據(jù)載入與寫回指令和各種運(yùn)算指令。數(shù)據(jù)載入與寫回指令由數(shù)據(jù)載入和寫回單元15執(zhí)行;各種運(yùn)算指令若干個(gè)矢量運(yùn)算器(160、161、……16N)執(zhí)行。數(shù)據(jù)載入與寫回單元15和若干矢量運(yùn)算器(160、161、……16N)根據(jù)內(nèi)核流水線設(shè)計(jì)的不同往往處于內(nèi)核流水線的不同階段。但若干矢量運(yùn)算器一般都是處于內(nèi)核流水線的相同階段,只是在相同流水線階段的橫向擴(kuò)展而已。不管是什么指令,都有指令控制碼,源操作數(shù)區(qū)域和結(jié)果操作數(shù)區(qū)域。矢量寄存器陣列/標(biāo)量寄存器陣列14中存儲(chǔ)的就是各種指令運(yùn)算所需的源操作數(shù)和結(jié)果操作數(shù)。一般來說,數(shù)據(jù)載入指令會(huì)把初始數(shù)據(jù)從數(shù)據(jù)內(nèi)存4中裝載到矢量寄存器陣列/標(biāo)量寄存器陣列14中;各種運(yùn)算指令會(huì)讀取源操作數(shù)進(jìn)行各種運(yùn)算操作然后把結(jié)果操作數(shù)寫回到矢量寄存器陣列/標(biāo)量寄存器陣列14,最后數(shù)據(jù)寫回指令會(huì)把運(yùn)算指令操作結(jié)果寫回到數(shù)據(jù)內(nèi)存4中。流水線控制器13是用來設(shè)置各種模式寄存器、定時(shí)器,并響應(yīng)多個(gè)外部中斷,從而控制內(nèi)核流水線的運(yùn)行。
[0041]若干個(gè)協(xié)處理器(20、21……2N)與若干個(gè)矢量運(yùn)算器(160、161、……16N)通過仲裁器一一對(duì)應(yīng)地耦合在一起。當(dāng)然,也可以根據(jù)應(yīng)用需要通過仲裁器把一個(gè)矢量運(yùn)算器耦合多個(gè)協(xié)處理器上。
[0042]指令內(nèi)存3用于存儲(chǔ)程序指令,與指令預(yù)取器11相連。
[0043]數(shù)據(jù)內(nèi)存4用于存 儲(chǔ)操作數(shù)據(jù),與協(xié)處理器和數(shù)據(jù)載入和寫回單元15相連,由主協(xié)處理器共享。
[0044]根據(jù)源數(shù)據(jù)訪問方式和結(jié)果數(shù)據(jù)返回方式的不同,將協(xié)處理器工作模式分為緊耦合和松稱合兩種模式。[0045]當(dāng)協(xié)處理器工作在緊耦合模式時(shí),協(xié)處理器的源數(shù)據(jù)由矢量DSP處理器提供,結(jié)果數(shù)據(jù)由協(xié)處理器在期望時(shí)序內(nèi)直接返回給矢量DSP處理器。當(dāng)協(xié)處理器不能在期望時(shí)序內(nèi)返回結(jié)果數(shù)據(jù)時(shí),協(xié)處理器接口可以讓耦合的協(xié)處理器發(fā)出回檔信號(hào)來停止矢量DSP處理器流水線,直到協(xié)處理器能夠返回結(jié)果數(shù)據(jù),從而讓矢量DSP處理器流水線繼續(xù)以期望時(shí)序運(yùn)行。
[0046]當(dāng)協(xié)處理器工作在松耦合模式時(shí),矢量DSP處理器只是發(fā)送命令給協(xié)處理器,源數(shù)據(jù)由協(xié)處理器自己去數(shù)據(jù)內(nèi)存去獲取。完成指定的協(xié)處理器指令操作后,協(xié)處理器發(fā)出中斷信號(hào)給矢量DSP處理器,矢量DSP處理器再調(diào)用中斷響應(yīng)程序來獲取協(xié)處理器的處理結(jié)果。圖1所示的虛線部分即表明了松耦合模式下的協(xié)處理器工作方式。
[0047]圖2所示為本發(fā)明的矢量DSP處理器和協(xié)處理器協(xié)同運(yùn)作的流水線時(shí)序圖。下面結(jié)合圖2詳細(xì)論述本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理方法。
[0048]本發(fā)明中,將協(xié)處理器可能需要執(zhí)行的操作指令按照與矢量DSP處理器數(shù)據(jù)交互的關(guān)系分為三種類別,分別為VCPOUT、VCPIN和VCPC0M。每種類別的協(xié)處理器操作指令由矢量DSP處理器的指令集進(jìn)行固定編碼,從而使得主協(xié)處理器使用同一套指令集。其中,VCPOUT是指矢量DSP處理器給協(xié)處理器只發(fā)送命令字和源操作數(shù);VCPIN是指矢量DSP處理器給協(xié)處理器只發(fā)送命令字,并接收協(xié)處理器返回的結(jié)果操作數(shù);VCPC0M是指矢量DSP處理器給協(xié)處理器發(fā)送命令字和源操作數(shù),并接收協(xié)處理器返回的結(jié)果操作數(shù)。按照發(fā)送和接收的數(shù)據(jù)寬度,每個(gè)類別里又包括不同的細(xì)分指令。在每一類別的協(xié)處理器操作指令中,包含指令控制區(qū)域,源操作數(shù)區(qū)域和結(jié)果操作數(shù)區(qū)域。協(xié)處理器將根據(jù)指令控制區(qū)域的信息進(jìn)行預(yù)先設(shè)定的不同的特定用途的操作,操作數(shù)來自于源操作數(shù)區(qū)域,操作結(jié)果將在操作完成后返回給主處理器。主處理器事先記住結(jié)果操作數(shù)區(qū)域,從而可以把協(xié)處理器操作結(jié)果寫入結(jié)果操作數(shù)區(qū)域。
[0049]在本發(fā)明的一種具體實(shí)施例中,協(xié)處理器操作指令采取32比特的指令字,在主矢量DSP處理器的指令集里作為一個(gè)類別統(tǒng)一編碼。其中,包含8位操作碼以識(shí)別是哪條指令;包含O到3個(gè)源操作數(shù)索引,O到I個(gè)結(jié)果操作數(shù)索引;根據(jù)操作數(shù)的多少包含8到24位的立即數(shù)。因此,協(xié)處理器指令在矢量DSP處理器的指令集里有固定的編碼,同時(shí)在識(shí)別了協(xié)處理器指令類別的基礎(chǔ)上,用戶指定的8到24位立即數(shù)也對(duì)事先指定的各種指令操作進(jìn)行了二次編碼。協(xié)處理器內(nèi)核會(huì)根據(jù)這些立即數(shù)進(jìn)行約定的各種指令操作,同時(shí)根據(jù)協(xié)處理器指令的類別與矢量DSP處理器進(jìn)行數(shù)據(jù)交互,從而實(shí)現(xiàn)了主協(xié)處理器用同一套指令集的目的。
[0050]在本發(fā)明的一種【具體實(shí)施方式】中,通過在匯編程序里加引導(dǎo)符的方式,告訴矢量DSP處理器的編譯器哪條協(xié)處理器指令送給哪個(gè)矢量運(yùn)算器,這樣編譯器會(huì)按照用戶的意圖來產(chǎn)生指令代碼。矢量DSP處理器的指令解碼及發(fā)射單元完成解碼后,會(huì)把各個(gè)協(xié)處理器指令發(fā)往對(duì)應(yīng)的矢量運(yùn)算器流水線。
[0051]以某個(gè)矢量運(yùn)算器流水線為例,當(dāng)該流水線進(jìn)入到取源操作數(shù)階段時(shí),該矢量運(yùn)算器的解碼邏輯會(huì)識(shí)別出是否為協(xié)處理器指令。如果不是,則繼續(xù)進(jìn)入該矢量運(yùn)算器的流水邏輯里進(jìn)行處理;如果是,向協(xié)處理器發(fā)出指令請(qǐng)求,同時(shí)把8位操作碼壓縮為3位命令字,連同8-24位立即數(shù)發(fā)給綁定的協(xié)處理器。此外,根據(jù)解碼得到的源操作數(shù)索引碼,向?qū)?yīng)的矢量寄存器陣列和標(biāo)量寄存器陣列發(fā)出讀取請(qǐng)求,同時(shí)把發(fā)出的協(xié)處理器的期望結(jié)果的配套信息傳送到流水線下一級(jí)。當(dāng)該流水線進(jìn)入到一級(jí)運(yùn)算階段時(shí),讀取的源操作數(shù)已經(jīng)返回,這時(shí),該矢量運(yùn)算器會(huì)把返回的源操作數(shù)數(shù)據(jù)信息發(fā)給綁定的協(xié)處理器。因此,本發(fā)明實(shí)現(xiàn)了矢量DSP與協(xié)處理器之間的高通信帶寬,其原理就是每個(gè)綁定的協(xié)處理器可以看到與之對(duì)應(yīng)的矢量運(yùn)算器等同的數(shù)據(jù)資源。
[0052]如圖2所示,主協(xié)處理器之間源操作數(shù)的物理接口有4組,分別是矢量128比特,矢量160比特,矢量320比特和標(biāo)量40比特。矢量運(yùn)算器將根據(jù)具體指令的不同把不同的源操作數(shù)索引返回值映射到這四組物理接口上。之所以設(shè)這四組的原因是矢量計(jì)算器內(nèi)部可以拿到這么多的源操作數(shù)數(shù)據(jù)資源,所以就把這些信息都暴露給協(xié)處理器。協(xié)處理器只需要根據(jù)具體指令需求去獲取有用的信息即可。當(dāng)協(xié)處理器收到必要的源操作數(shù)信息后,結(jié)合從上一級(jí)流下來的命令字和立即數(shù),即可開始實(shí)現(xiàn)約定的指令操作。
[0053]主處理器的流水線只有兩級(jí)運(yùn)算階段,對(duì)于緊耦合模式,如果協(xié)處理器不能在兩個(gè)周期內(nèi)完成約定的指令操作,則可以選擇在一級(jí)運(yùn)算階段或二級(jí)運(yùn)算階段通過回檔信號(hào)停止主處理器流水線。當(dāng)該流水線進(jìn)入到二級(jí)運(yùn)算階段時(shí),協(xié)處理器會(huì)把得到的運(yùn)算結(jié)果返回給主處理器。在圖2中,這個(gè)物理接口的位寬是320比特,主要用來返回高精度的矢量數(shù)據(jù)。主處理器的矢量運(yùn)算器根據(jù)把流水線上流下來的配套目的操作數(shù)索引,發(fā)起對(duì)目的矢量寄存器的寫回請(qǐng)求,并在該流水線的結(jié)果寫回階段把協(xié)處理器指令結(jié)果寫入到目的矢量寄存器中。這樣,就完成了一次主協(xié)處理器的緊耦合模式下的數(shù)據(jù)交互過程。對(duì)于主協(xié)處理器之間的數(shù)據(jù)依賴問題,因?yàn)閰f(xié)處理器與主矢量運(yùn)算器處于同樣的流水線階段,對(duì)于程序而言實(shí)際上是透明的,協(xié)處理器實(shí)際是主矢量運(yùn)算器的“備份運(yùn)算器”,只要協(xié)處理器的期望時(shí)序和主矢量運(yùn)算器一致,所有用于主矢量運(yùn)算器的數(shù)據(jù)依賴優(yōu)化策略都同樣應(yīng)用于綁定的協(xié)處理器。
[0054]而在松耦合模式下,在取源操作數(shù)階段時(shí),主處理器一樣發(fā)送命令字和立即數(shù);但在一級(jí)運(yùn)算階段,主處理器就不發(fā)送源操作數(shù)或者只利用標(biāo)量接口發(fā)送少量的配置信息;在二級(jí)運(yùn)算階段,主處理器并不期望協(xié)處理器會(huì)返回任何結(jié)果數(shù)據(jù),因此主處理器會(huì)繼續(xù)自己的指令流水。如前所述,協(xié)處理器收到命令字和立即數(shù)后,會(huì)自己去共享的數(shù)據(jù)內(nèi)存抓取源操作數(shù),完成約定運(yùn)算操作后,發(fā)出中斷給主處理器。主處理器則調(diào)用對(duì)應(yīng)的中斷服務(wù)程序,利用新的協(xié)處理器VCPIN類指令去協(xié)處理器中獲取之前的結(jié)果操作數(shù)。這種模式特別適合那些運(yùn)算過程復(fù)雜,執(zhí)行時(shí)間較長的協(xié)處理器操作。
[0055]一個(gè)矢量運(yùn)算器可以綁定多個(gè)協(xié)處理器核,每次主協(xié)處理器操作通過外接仲裁器來選擇不同的協(xié)處理器核,仲裁依據(jù)為立即數(shù)的部分定義位寬。每個(gè)矢量運(yùn)算器都可綁定自己的若干協(xié)處理器,這樣圖2所示的流水線將會(huì)根據(jù)矢量運(yùn)算器的個(gè)數(shù)而并行復(fù)制,形成一個(gè)矩陣式的協(xié)處理器群。這對(duì)于高性能矢量DSP而言,將會(huì)是針對(duì)特定應(yīng)用的強(qiáng)大處理能力的補(bǔ)充。
[0056]下面將簡要介紹基于本發(fā)明原理的一種具體實(shí)施例,其實(shí)現(xiàn)了一種功能為進(jìn)行16比特定點(diǎn)數(shù)和8比特定點(diǎn)數(shù)之間的轉(zhuǎn)換的協(xié)處理器,該協(xié)處理器通過耦合ZSP981高性能矢量DSP實(shí)現(xiàn)了本發(fā)明提出的高效協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)。
[0057]該協(xié)處理器工作在緊耦合模式,支持的指令操作和定義有如下幾種:
[0058]1、寫配置寄存器
[0059]該協(xié)處理器寄存器內(nèi)包含一個(gè)配置寄存器,可用來定義移位位寬、移位方向、是否做舍入、是否做交織式拼裝。
[0060]指令定義為:vcpcomvz, vz, ry, IMM16
[0061]其中,ry為16比特標(biāo)量寄存器,包含要配置的具體16位信息。
[0062]Vz為無用占位信息,只是匹配vcpcom的格式要求。
[0063]MM16為輔助指令立即數(shù)識(shí)別碼。
[0064]2、讀配置寄存器,用于便于主處理器讀取已配置信息。
[0065]指令定義為:vcpinvz, IMM16
[0066]Vz為結(jié)果操作數(shù),其最低16位將存儲(chǔ)返回的配置信息。
[0067]MM16為輔助指令立即數(shù)識(shí)別碼。
[0068]3、移位和拼裝。
[0069]即把矢量中的各個(gè)40比特標(biāo)量右移或左移可編程位數(shù),并支持舍入、截位和飽和操作,產(chǎn)生16比特標(biāo)量,然后拼裝成以16比特為標(biāo)量的矢量。至于是右移還是左移,是否做舍入由當(dāng)前的配置寄存器信息決定。
[0070]指令定義為:vcpcom40vZf,vXf, vYf, IMM8
[0071]vZf為結(jié)果操作數(shù)矢量,包含8個(gè)16比特標(biāo)量;
[0072]vXf為源操作數(shù)矢量I,包含4個(gè)40比特標(biāo)量;
[0073]vYf為源操作數(shù)矢量2,包含4個(gè)40比特標(biāo)量;
[0074]IMM8為輔助指令立即數(shù)識(shí)別碼。
[0075]4、把16比特標(biāo)量組成的矢量改裝成8比特標(biāo)量組成的矢量。即把多個(gè)16比特標(biāo)量的高8位提出,拼裝成以8比特為標(biāo)量的矢量結(jié)果。
[0076]指令定義為:vcpcom.d vZe, vXe, vYe, IMM8
[0077]vZe為結(jié)果操作數(shù)矢量,包含32個(gè)8比特標(biāo)量;
[0078]vXe為源操作數(shù)矢量1,包含16個(gè)16比特標(biāo)量;
[0079]vYe為源操作數(shù)矢量2,包含16個(gè)16比特標(biāo)量;
[0080]IMM8為輔助指令立即數(shù)識(shí)別碼。
[0081]上述指令都是在規(guī)定的兩個(gè)運(yùn)算周期內(nèi)完成,因此不存在緊耦合模式下的回檔情況??梢钥闯觯ㄟ^上述用戶定義的協(xié)處理器指令,可以把ZSP981矢量DSP產(chǎn)生的高精度40比特定點(diǎn)數(shù),通過右移、舍入、飽和和截位的方式得到16比特定點(diǎn)數(shù),然后把16比特標(biāo)量組成的矢量改裝成8比特標(biāo)量組成的矢量,這樣ZSP981處理的結(jié)果可以以8比特精度的方式寫回到數(shù)據(jù)內(nèi)存中。當(dāng)需要后續(xù)運(yùn)算時(shí),可以先通過ZSP981自帶的填位指令把8比特標(biāo)量擴(kuò)展到40比特,然后用協(xié)處理器的左移指令,從前擴(kuò)展的40比特中獲取恢復(fù)出來的16比特定點(diǎn)數(shù)作為結(jié)果返回,再繼續(xù)參與主處理器的后續(xù)運(yùn)算。這樣,中間結(jié)果的內(nèi)存需求從16比特為單位降低到8比特為單位,大大節(jié)省了片上內(nèi)存,對(duì)于精度可接受的應(yīng)用來說十分實(shí)用。
[0082]綜上所述,本發(fā)明的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng)及方法解決了現(xiàn)有主協(xié)處理器協(xié)同運(yùn)作系統(tǒng)中存在的指令集不兼容、通信接口帶寬小、主處理器指令和協(xié)處理器指令之間的數(shù)據(jù)依賴副作用、主協(xié)處理器之間數(shù)據(jù)交互方式單一這些問題。在高性能矢量DSP和協(xié)處理器協(xié)同運(yùn)作這一新興領(lǐng)域,創(chuàng)新性地提出針對(duì)性的技術(shù)方案。該方案可概括為:根據(jù)主協(xié)處理器數(shù)據(jù)交互特點(diǎn)把協(xié)處理器指令分為三大類別,統(tǒng)一并入主處理器指令集;提出了 “備份運(yùn)算器”理念,把協(xié)處理器與高性能矢量DSP的各個(gè)矢量運(yùn)算器一一耦合,使得各個(gè)協(xié)處理器能夠獲得與對(duì)應(yīng)矢量運(yùn)算器同等的數(shù)據(jù)資源;提出了緊耦合和松耦合兩種協(xié)處理器工作模式,適應(yīng)不同的協(xié)處理器操作特點(diǎn);通過外接仲裁器和主處理器矢量運(yùn)算器個(gè)數(shù)來形成外掛矩陣式協(xié)處理器群,滿足不同應(yīng)用需求。所以,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。
[0083]上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于,至少包括:作為主處理器的矢量DSP處理器、若干協(xié)處理器、指令內(nèi)存和數(shù)據(jù)內(nèi)存; 其中,所述矢量DSP處理器包括指令預(yù)取器、指令解碼及發(fā)射器、流水線控制器、矢量寄存器陣列/標(biāo)量寄存器陣列、數(shù)據(jù)載入與寫回單元以及若干矢量運(yùn)算器; 所述協(xié)處理器與所述矢量運(yùn)算器耦合在一起; 所述協(xié)處理器的操作指令包括三種類別,每種類別的協(xié)處理器操作指令由所述矢量DSP處理器的指令集進(jìn)行固定編碼,從而使得主協(xié)處理器使用同一套指令集; 根據(jù)源數(shù)據(jù)訪問方式和結(jié)果數(shù)據(jù)返回方式的不同,所述協(xié)處理器包括緊耦合和松耦合兩種工作模式; 當(dāng)所述協(xié)處理器工作在緊耦合模式時(shí),協(xié)處理器的源數(shù)據(jù)由所述矢量DSP處理器提供,結(jié)果數(shù)據(jù)由所述協(xié)處理器在期望時(shí)序內(nèi)直接返回給所述主處理器; 當(dāng)所述協(xié)處理器工作在松耦合模式時(shí),所述矢量DSP處理器只是發(fā)送命令給協(xié)處理器,源數(shù)據(jù)由所述協(xié)處理器自己去所述數(shù)據(jù)內(nèi)存去獲取,完成指定的協(xié)處理器指令操作后,所述協(xié)處理器發(fā)出中斷信號(hào)給所述矢量DSP處理器,所述矢量DSP處理器再調(diào)用中斷響應(yīng)程序來獲取所述協(xié)處理器的處理結(jié)果。
2.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:當(dāng)所述協(xié)處理器工作在緊耦合模式時(shí),若所述協(xié)處理器不能在期望時(shí)序內(nèi)返回結(jié)果數(shù)據(jù)時(shí),所述協(xié)處理器發(fā)出回檔信號(hào)來停止主處理器流水線,直到所述協(xié)處理器能夠返回結(jié)果數(shù)據(jù),所述主處理器流水線再繼續(xù)以期望時(shí)序運(yùn)行。
3.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:所述矢量運(yùn)算器通過仲裁器與所述協(xié)處理器一一對(duì)應(yīng)地進(jìn)行耦合。
4.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:所述矢量運(yùn)算器通過仲裁器耦合到多個(gè)所述協(xié)處理器上。
5.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:所述協(xié)處理器的操作指令包括的三種類別分別為VCPOUT、VCPIN和VCPCOM ;所述VCPOUT是指所述矢量DSP處理器給所述協(xié)處理器只發(fā)送命令字和源操作數(shù);所述VCPIN是指所述矢量DSP處理器給所述協(xié)處理器只發(fā)送命令字,并接收所述協(xié)處理器返回的結(jié)果操作數(shù);所述VCPCOM是指所述矢量DSP處理器給所述協(xié)處理器發(fā)送命令字和源操作數(shù),并接收所述協(xié)處理器返回的結(jié)果操作數(shù)。
6.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:所述協(xié)處理器中運(yùn)算器與所述矢量DSP處理器中運(yùn)算器處于相同的矢量DSP處理器的流水線階段上。
7.根據(jù)權(quán)利要求1所述的矢量DSP處理器與協(xié)處理器協(xié)同運(yùn)作的數(shù)據(jù)處理系統(tǒng),其特征在于:所述協(xié)處理器協(xié)處理器能夠?qū)崿F(xiàn)16比特定點(diǎn)數(shù)和8比特定點(diǎn)數(shù)之間的轉(zhuǎn)換。
【文檔編號(hào)】G06F9/38GK103793208SQ201410029998
【公開日】2014年5月14日 申請(qǐng)日期:2014年1月22日 優(yōu)先權(quán)日:2014年1月22日
【發(fā)明者】彭正宏 申請(qǐng)人:芯原微電子(上海)有限公司, 芯原股份有限公司, 芯原微電子(北京)有限公司, 芯原微電子(成都)有限公司