一種處理器及其處理任務的方法
【技術領域】
[0001]本發(fā)明涉及處理器技術,尤其涉一種處理器及其處理任務的方法。
【背景技術】
[0002]在移動通信市場,存在著第二代(2G,2Generat1n)、第三代(3G,3Generat1n)、第四代(4G,4Generat1n)共存的局面,通信技術協(xié)議也在不斷的向前發(fā)展。面對如此多的通信制式和快速更新的協(xié)議版本,采用軟件定義無線電(SDR,Software Defined Rad1)技術實現(xiàn)基帶信號處理是一個好的發(fā)展方向。SDR技術采用的是數(shù)字信號處理器(DSP,Digital Signal Processor)軟基帶方案,相比傳統(tǒng)專用集成電路(ASIC,Applicat1nSpecific Integrated Circuit)實現(xiàn)方式,具有更高的靈活性和更快的產(chǎn)品推出速度。4G長期演進(LTE,Long Term Evolut1n)以及后續(xù)的長期演進升級版(LTE-A,Long TermEvolut1n -Advanced)技術都以正交頻分復用(0FDM,Orthogonal Frequency Divis1nMultiplexing)和多輸入多輸出(ΜΙΜ0,Multiple Input Multiple Output)作為主要技術特征,這些技術特征決定了所處理的基帶信號具有矩陣運算較多的特點。所以采用具有矢量運算功能的矢量DSP處理器實現(xiàn)LTE及LTE-A基帶信號處理是合適的。基于此,如何提高矢量處理器的性能成為決定軟基帶芯片性能的關鍵。
[0003]以往,處理器性能的提升主要靠提高處理器主頻。但隨著處理器頻率越來越高,這種方法難以為繼,原因是頻率提高帶來的功耗和發(fā)熱代價太大并且處理器性能提升效果不明顯。現(xiàn)在處理器朝著多核方向發(fā)展,通過在一個處理器內(nèi)集成多個處理器核,并令多個處理器核并行工作,在不提高處理器頻率的情況下,顯著地提高了處理器性能。Intel公司的多核桌面處理器和ARM公司的多核移動處理器的廣泛應用,證明采用多核技術是提升處理器性能行之有效的方法。多核處理器最常見的并行方式是任務級并行。如圖1所示,單核處理只能串行執(zhí)行每個任務,而多核處理器可以將沒有依賴關系的任務分配給不同的核,這樣帶來的性能提升顯而易見。這種并行方式并不適用前后有依賴關系的任務,即后面任務的輸入是前面任務的輸出。對于有依賴關系的任務,可以采用流水線并行的方式,即不同的任務分別交由不同的核處理,任務進行流水操作。
[0004]具體到矢量處理器,對于某個任務,矢量運算并不是所有運算的全部,因為在矢量運算之前,需要一些參數(shù)計算。這些參數(shù)計算屬于標量運算,所以可以把某個任務分割為標量運算和矢量運算兩部分。如果標量運算和矢量運算能夠實現(xiàn)流水線并行,則可以顯著提高矢量處理器的性能。當前多核處理器多采用共享存儲器的方式實現(xiàn)核間通信,如果使用現(xiàn)有多核技術實現(xiàn)標量運算和矢量運算并行,將參數(shù)存于共享存儲器上,則由于存儲器訪問速度和多核同步時間開銷的原因,任務切換需要花費一定的時間,使得流水線并行帶來的益處被抵消掉一部分。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供了一種處理器及其處理任務的方法,克服了多核處理器流水線并行任務切換時間開銷大的問題。
[0006]本發(fā)明實施例提供的處理器處理任務的方法包括:
[0007]標量計算模塊執(zhí)行當前任務的參數(shù)計算,并將計算得到的參數(shù)存儲至參數(shù)緩沖器(PBUF,Parameter Buffer)中;當所述當前任務的參數(shù)計算完成后,執(zhí)行用于核間同步的第一指令或第二指令,并將所述第一指令或第二指令存儲至所述PBUF中;
[0008]矢量計算模塊從所述PBUF中讀取參數(shù),并將讀取到的參數(shù)存儲至影子(shadow)寄存器中;當從所述PBUF中讀取到所述第一指令或第二指令時,在一個周期內(nèi)將所述shadow寄存器中所有被修改的參數(shù)存儲至工作(work)寄存器中;
[0009]矢量計算模塊根據(jù)所述work寄存器中的參數(shù)執(zhí)行當前任務的矢量計算。
[0010]本發(fā)明實施例中,所述當從所述PBUF中讀取到所述第一指令或第二指令時,在一個周期內(nèi)將所述shadow寄存器中所有被修改的參數(shù)存儲至work寄存器中,包括:
[0011]當從所述PBUF中讀取到所述第一指令或第二指令時,且所述矢量計算模塊處于空閑狀態(tài)或執(zhí)行所述第三指令時,在一個周期內(nèi)將所述shadow寄存器中所有被修改的參數(shù)存儲至work寄存器中。
[0012]本發(fā)明實施例中,所述方法還包括:
[0013]所述矢量計算模塊執(zhí)行所述當前任務的矢量計算完成后,執(zhí)行第三指令,所述第三指令用于更新下一個任務的參數(shù)。
[0014]本發(fā)明實施例中,所述標量計算模塊執(zhí)行的第一指令用于通知所述矢量計算模塊所述當前任務的參數(shù)計算完成;
[0015]所述第一指令攜有指示調(diào)用矢量計算模塊子程序的地址的指示信息。
[0016]本發(fā)明實施例中,所述標量計算模塊執(zhí)行的第二指令用于通知所述矢量計算模塊所述當前任務的參數(shù)計算完成;
[0017]所述第二指令用于指示所述矢量計算模塊按照預設順序執(zhí)行程序。
[0018]本發(fā)明實施例中,所述方法還包括:
[0019]所述標量計算模塊將所述第一指令或第二指令存儲至所述PBUF中之后,繼續(xù)計算下一個任務的參數(shù)。
[0020]本發(fā)明實施例提供的處理器包括:標量計算模塊、矢量計算模塊、PBUF,所述矢量計算模塊包括:shadow寄存器、work寄存器;
[0021]所述標量計算模塊,用于執(zhí)行當前任務的參數(shù)計算,并將計算得到的參數(shù)存儲至所述PBUF中;當所述當前任務的參數(shù)計算完成后,執(zhí)行用于核間同步的第一指令或第二指令,并將所述第一指令或第二指令存儲至所述PBUF中;
[0022]所述shadow寄存器,用于從所述PBUF中讀取參數(shù),并存儲讀取到的參數(shù);
[0023]所述work寄存器,用于當從所述PBUF中讀取到所述第一指令或第二指令時,在一個周期內(nèi)存儲所述shadow寄存器中所有被修改的參數(shù);
[0024]所述矢量計算模塊,用于根據(jù)所述work寄存器中的參數(shù)執(zhí)行當前任務的矢量計笪并ο
[0025]本發(fā)明實施例中,所述work寄存器,還用于當從所述PBUF中讀取到所述第一指令或第二指令時,且所述矢量計算模塊處于空閑狀態(tài)或執(zhí)行第三指令時,在一個周期內(nèi)存儲所述shadow寄存器中所有被修改的參數(shù)。
[0026]本發(fā)明實施例中,所述矢量計算模塊,還用于執(zhí)行所述當前任務的矢量計算完成后,執(zhí)行第三指令,所述第三指令用于更新下一個任務的參數(shù)。
[0027]本發(fā)明實施例中,所述標量計算模塊執(zhí)行的第一指令用于通知所述矢量計算模塊所述當前任務的參數(shù)計算完成;
[0028]所述第一指令攜有指示調(diào)用矢量計算模塊子程序的地址的指示信息。
[0029]本發(fā)明實施例中,所述標量計算模塊執(zhí)行的第二指令用于通知所述矢量計算模塊所述當前任務的參數(shù)計算完成;
[0030]所述第二指令用于指示所述矢量計算模塊按照預設順序執(zhí)行程序。
[0031]本發(fā)明實施例中,所述標量計算模塊,還用于將所述第一指令或第二指令存儲至所述PBUF中之后,繼續(xù)計算下一個任務的參數(shù)。
[0032]本發(fā)明實施例的技術方案中,標量計算模塊執(zhí)行當前任務的參數(shù)計算,并將計算得到的參數(shù)存儲至PBUF中;當所述當前任務的參數(shù)計算完成后,執(zhí)行用于核間同步的第一指令或第二指令,并將所述第一指令或第二指令存儲至所述PBUF中;矢量計算模塊從所述PBUF中讀取參數(shù),并將讀取到的參數(shù)存儲至shadow寄存器中;當從所述PBUF中讀取到所述第一指令或第二指令時,在一個周期內(nèi)將所述shadow寄存器中所有被修改的參數(shù)存儲至work寄存器中;矢量計算模塊根據(jù)所述work寄存器中的參數(shù)執(zhí)行當前任務的矢量計算。本發(fā)明實施例的處理器使用標量計算模塊和矢量計算模塊分別執(zhí)行每個任務的標量處理部分和矢量處理部分,并利用PBUF作為標量處理輸出和矢量處理輸入的參數(shù)緩存器,可以使標量處理程序和矢量處理程序并行執(zhí)行,顯著提高了處理器性能。此外,由于shadow寄存器到work寄存器的一次性更新策略,矢量計算模塊的任務切換幾乎沒有額外的時間開銷。矢量計算模塊兼具標量運算功能,即標量核是矢量核的功能子集,而且標量核和矢量核采用兼容的指令集,因而可以靈活地進行標量任務和矢量任務的切割以及最大程度程序優(yōu)化。標量計算模塊負責任務控制可以對矢量計算模塊進行靈活調(diào)度,控制矢量計算模塊的執(zhí)行軌跡,方便編程。
【附圖說明】
[0033]圖1為多核并行實現(xiàn)方式的示意圖;
[0034]圖2為本發(fā)明實施例的處理器并行和同步示意圖;
[0035]圖3為本發(fā)明實施例一的處理器處理任務的方法的流程示意圖;
[0036]圖4為本發(fā)明實施例的處理器的結構組成示意圖;
[0037]圖5為本發(fā)明實施例的處理器的結構框圖;
[0038]圖6為本發(fā)明實施例的雙核核間通信示意圖;
[0039]圖7為本發(fā)明實施例的PBUF數(shù)據(jù)格式示意圖;
[0040]圖8為本發(fā)明實施例二的處理器處理任務的方法的流程示意圖;
[0041]圖9