支持標(biāo)向量協(xié)同工作的向量simd運(yùn)算結(jié)構(gòu)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明主要涉及到微處理器結(jié)構(gòu)與設(shè)計(jì)領(lǐng)域,特指一種支持標(biāo)向量協(xié)同工作的向 量sn?運(yùn)算結(jié)構(gòu)。
【背景技術(shù)】
[0002] 數(shù)字信號(hào)處理器(DigitalSignalProcessor,DSP)作為一種典型的嵌入式微處 理器被廣泛應(yīng)用于嵌入式系統(tǒng)中,它以其數(shù)據(jù)處理能力強(qiáng)大、可編程性好、使用靈活和低功 耗等特點(diǎn),給信號(hào)處理的發(fā)展帶來了巨大機(jī)遇,其應(yīng)用領(lǐng)域拓展到軍事、經(jīng)濟(jì)發(fā)展的各個(gè)方 面。在現(xiàn)代通信、圖像處理和雷達(dá)信號(hào)處理等應(yīng)用領(lǐng)域,隨著數(shù)據(jù)處理量加大,對(duì)計(jì)算精度 和實(shí)時(shí)性要求的增加,通常需要使用更高性能的微處理器進(jìn)行處理。
[0003] 區(qū)別于傳統(tǒng)的CPU,DSP具有以下特點(diǎn):(1)計(jì)算能力強(qiáng),關(guān)注實(shí)時(shí)計(jì)算勝于關(guān)注控 制和事務(wù)處理;(2)對(duì)于典型信號(hào)處理設(shè)有專門硬件支持,如乘加運(yùn)算、線性尋址;(3)嵌入 式微處理器的共性特征:地址和指令通路不多于32位,多數(shù)數(shù)據(jù)通路不多于32位;非精確 中斷;短期離線調(diào)試、長(zhǎng)期在線駐留運(yùn)行的程序工作方式(而非通用CPU調(diào)試即運(yùn)行的方 法);(4)集成外設(shè)接口以快速外設(shè)為主,特別利于在線收發(fā)高速AD/DA數(shù)據(jù),也支持DSP間 高速直連。
[0004] 通用科學(xué)計(jì)算需要高性能的DSP,然而傳統(tǒng)DSP用于科學(xué)計(jì)算時(shí)有以下缺點(diǎn):(1) 位寬小,使得計(jì)算精度和尋址空間不足。通用科學(xué)計(jì)算應(yīng)用至少需要64位精度;(2)缺乏 任務(wù)管理、文件控制、進(jìn)程調(diào)度、中斷管理等軟硬件支持,或者說缺乏操作系統(tǒng)硬件環(huán)境,給 通用、多道計(jì)算任務(wù)管理帶來不便;(3)缺乏統(tǒng)一高級(jí)語言編程模式的支持,對(duì)多核、向量、 數(shù)據(jù)并行等的支持基本依靠匯編程序編程,不便于通用編程;(4)不支持本地宿主的程序 調(diào)試模式,僅依靠它機(jī)交叉調(diào)試仿真。這些問題嚴(yán)重限制了DSP在通用科學(xué)計(jì)算領(lǐng)域的應(yīng) 用。
[0005] 有從業(yè)者提出了一種"通用計(jì)算數(shù)字信號(hào)處理器"(GPDSP),這是一種既保持嵌入 式DSP基本特征和高性能低功耗的優(yōu)勢(shì),又高效支持通用科學(xué)計(jì)算的新型體系結(jié)構(gòu)一一多 核微處理器(GPDSP)。該結(jié)構(gòu)能夠克服一般DSP用于科學(xué)計(jì)算的上述問題,可同時(shí)提供對(duì) 64位高性能計(jì)算機(jī)和嵌入式高精度信號(hào)處理的高效支持。該結(jié)構(gòu)具有如下特征:(1)具有 雙精度浮點(diǎn)和64位定點(diǎn)數(shù)據(jù)的直接表示,通用寄存器、數(shù)據(jù)總線、指令位寬64位以上,地址 總線40位以上;(2)CPU與DSP異構(gòu)多核緊密耦合,CPU核支持完整操作系統(tǒng),DSP核的標(biāo)量 單元支持操作系統(tǒng)微核;(3)考慮CPU核、DSP核及DSP核內(nèi)向量陣列結(jié)構(gòu)的統(tǒng)一編程模式; (4)保持它機(jī)交叉仿真調(diào)試,同時(shí)提供本地CPU宿主調(diào)試模式;(5)保留除位數(shù)之外的普通 DSP的基本特征。
[0006] 另有從業(yè)者提出一種"具有開關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元",其公開了一種數(shù)據(jù) 混洗單元實(shí)現(xiàn)結(jié)構(gòu)及數(shù)據(jù)混洗方法,將程序中的混洗請(qǐng)求轉(zhuǎn)化為開關(guān)矩陣存儲(chǔ)器中的開關(guān) 矩陣,從而實(shí)現(xiàn)數(shù)據(jù)選擇和重組。該混洗單元具有結(jié)構(gòu)簡(jiǎn)單、靈活高效和任意節(jié)點(diǎn)混洗的特 點(diǎn)。
[0007]GPDSP通常由多個(gè)同構(gòu)64位處理單元組成處理陣列來獲得較高浮點(diǎn)運(yùn)算能力。然 而,GPDSP使用眾多處理單元開發(fā)通用科學(xué)計(jì)算并行性時(shí)還存在如下幾個(gè)問題:(1)如何組 織眾多同構(gòu)處理單元,使其高效開發(fā)通用科學(xué)計(jì)算中的多個(gè)層次的并行性;(2)如何有效 協(xié)調(diào)用于控制的標(biāo)量運(yùn)算單元和用于計(jì)算的向量運(yùn)算單元;(3)如何對(duì)通用科學(xué)計(jì)算中的 矩陣類運(yùn)算提供支持,利用矩陣類運(yùn)算中的大量數(shù)據(jù)復(fù)用特性來提高對(duì)眾多同構(gòu)處理單元 的供數(shù)能力,進(jìn)而提高GPDSP的計(jì)算效率。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明要解決的技術(shù)問題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一 種能夠提高執(zhí)行效率和并行性的支持標(biāo)向量協(xié)同工作的向量sn?運(yùn)算結(jié)構(gòu)。
[0009] 為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案:
[0010] -種支持標(biāo)向量協(xié)同工作的向量SIMD運(yùn)算結(jié)構(gòu),其包括:
[0011] 統(tǒng)一取指和指令派發(fā)部件,用來同時(shí)為標(biāo)量處理單元SPU、向量處理單元VPU和向 量陣列存儲(chǔ)器AM派發(fā)指令;
[0012] 標(biāo)量處理單元SPU,用來負(fù)責(zé)串行任務(wù)的處理,以及對(duì)向量處理單元VPU執(zhí)行的控 制;
[0013] 向量處理單元VPU,用來負(fù)責(zé)計(jì)算密集的并行任務(wù)處理;
[0014] 向量陣列存儲(chǔ)器AM,用來為并行與多寬度的向量運(yùn)算提供數(shù)據(jù)及搬移支持;
[0015]DMA單元,用來為標(biāo)量處理單元SPU、向量處理單元VPU提供指令和數(shù)據(jù)。
[0016] 作為本發(fā)明的進(jìn)一步改進(jìn):所述統(tǒng)一取指和指令派發(fā)部件在執(zhí)行過程中采用可變 長(zhǎng)的NSI+NVI發(fā)射VLIW指令結(jié)構(gòu),同時(shí)取指和派發(fā)NSI條標(biāo)量指令和NVI條向量指令,這NSI+N" 條指令同時(shí)支持條件執(zhí)行、中斷和異常處理。
[0017] 作為本發(fā)明的進(jìn)一步改進(jìn):所述標(biāo)量處理單元SPE由NSMM個(gè)MAC單元和NSIEU個(gè)定 點(diǎn)執(zhí)行單元IEU組成,這NSI條流水線并行執(zhí)行VLIW指令包中的NSI條標(biāo)量指令,執(zhí)行科學(xué) 應(yīng)用中的串"?丁運(yùn)算,其中NSI =NSMAC+NSIEU〇
[0018] 作為本發(fā)明的進(jìn)一步改進(jìn):所述向量處理單元VPU由NVPE個(gè)同構(gòu)向量運(yùn)算單元VPE 構(gòu)成,在統(tǒng)一的指令流控制下對(duì)不同數(shù)據(jù)執(zhí)行相同的操作,其中NVPE為2的冪次方。
[0019] 作為本發(fā)明的進(jìn)一步改進(jìn):所述向量運(yùn)算單元VPE包含NVMM個(gè)MAC單元和N_,個(gè) 定點(diǎn)執(zhí)行單元IEU,這NVI條流水線并行執(zhí)行VLIW指令包中的NVI條向量指令,執(zhí)行科學(xué)應(yīng) 用中的并行運(yùn)算,其中NVI=Nvmac+Nvieu。
[0020] 作為本發(fā)明的進(jìn)一步改進(jìn):所述向量運(yùn)算單元VPE之間的數(shù)據(jù)交互通過規(guī)約網(wǎng)絡(luò) 和混洗網(wǎng)絡(luò)完成。
[0021] 作為本發(fā)明的進(jìn)一步改進(jìn):所述標(biāo)量處理單元SPU與向量處理單元VPU和向量陣 列存儲(chǔ)器AM之間各設(shè)計(jì)了一條64位的配置通路,通過MOV指令實(shí)現(xiàn)對(duì)向量處理單元VPU 和向量陣列存儲(chǔ)器A中的全局控制配置寄存器的訪問。
[0022] 作為本發(fā)明的進(jìn)一步改進(jìn):所述標(biāo)量處理單元SPU與向量處理單元VPU之間還有 兩條標(biāo)量處理單元SPU到向量處理單元VPU的數(shù)據(jù)廣播傳遞機(jī)制,分別支持單字廣播指令 和雙字廣播指令;
[0023]所述單字廣播指令為:將SPU寄存器文件中的單字廣播到NVPE個(gè)VPE的向量寄存 器中同一位置;執(zhí)行的過程中對(duì)NVPE個(gè)VPE中的寄存器文件進(jìn)行一次寫操作,完成64*NVPE位 數(shù)據(jù)的傳輸;
[0024] 所述雙字廣播指令為:將SPU寄存器文件中的一對(duì)數(shù)據(jù)Src_〇:Src_e廣播到Nvpe 個(gè)VPE中的寄存器文件中的Dst_〇:Dst_e中,寄存器對(duì)使用偶數(shù)表示即VR0代表VR1 :VR0 ; 執(zhí)行的過程中對(duì)NVPE個(gè)VPE中的寄存器文件進(jìn)行一次寫操作,完成128*NVPE位數(shù)據(jù)傳輸;
[0025] 兩條標(biāo)向量廣播通路并行執(zhí)行雙字廣播操作能夠?qū)崿F(xiàn)256*NVPE位數(shù)據(jù)的傳輸。
[0026] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0027] 1、本發(fā)明為一種適合多核微處理器GPDSP的標(biāo)量和向量協(xié)同工作的緊親合向量 SIMD(SingleInstructionMultipleData-stream,單指令多數(shù)據(jù)流)運(yùn)算結(jié)構(gòu)。米用可 變長(zhǎng)的多發(fā)射VLIW(VeryLargeInstructionWord,超長(zhǎng)指令字)指令結(jié)構(gòu),同時(shí)取指派發(fā) NSI條標(biāo)量指令和NVI條向量指令,標(biāo)量運(yùn)算單元SPE和向量運(yùn)算單元VPE同時(shí)執(zhí)行VLIW中 并行指令。該運(yùn)算結(jié)構(gòu)中的向量運(yùn)算單元包括NVPE(NVPE為2的冪次方)個(gè)同構(gòu)向量運(yùn)算單 元VPE,對(duì)不同數(shù)據(jù)執(zhí)行相同的指令;SPE與VPE之間的數(shù)據(jù)交互通過寄存器級(jí)數(shù)據(jù)共享和 快速的標(biāo)向量處理單元的廣播機(jī)制完成,而VPE之間的數(shù)據(jù)交互通過規(guī)約網(wǎng)絡(luò)和混洗網(wǎng)絡(luò) 完成,通過這些數(shù)據(jù)交互機(jī)制高效地支持矩陣類和信號(hào)處理類應(yīng)用。
[0028] 2、本發(fā)明的支持標(biāo)向量協(xié)同工作的向量SIMD運(yùn)算結(jié)構(gòu)中,標(biāo)量處理單元和向量 處理單元緊耦合的組織方式,通過統(tǒng)一的取指和派發(fā)部件實(shí)現(xiàn)可變長(zhǎng)的多發(fā)射VLIW指令。 這種組織方式能最大限度發(fā)揮標(biāo)量和向量處理單元的執(zhí)行效率。
[0029] 3、本發(fā)明的支持標(biāo)向量協(xié)同工作的向量SM)運(yùn)算結(jié)構(gòu)中,多重并行機(jī)制來充分 挖掘應(yīng)用中的并行性,包括運(yùn)算單元內(nèi)部子字SB?技術(shù)、標(biāo)向量?jī)?nèi)部多條執(zhí)行流水線VLIW 并行技術(shù)和向量運(yùn)算單元之間向量SIMD技術(shù)。
[0030] 4、本發(fā)明的支持標(biāo)向量協(xié)同工作的向量SIMD運(yùn)算結(jié)構(gòu)中,標(biāo)向量之間和向量?jī)?nèi) 部的多種數(shù)據(jù)傳遞機(jī)制實(shí)現(xiàn)數(shù)據(jù)在各運(yùn)算單元之間快速交互,提高高性能計(jì)算應(yīng)用的執(zhí)行 效率。
[0031] 5、本發(fā)明的支持標(biāo)向量協(xié)同工作的向量SIMD運(yùn)算結(jié)構(gòu)中,通過上述結(jié)構(gòu)組織特 征、多重并行機(jī)制和多種數(shù)據(jù)傳遞機(jī)制,充分挖掘核心算法(如矩陣乘法、FFT等)潛在的 并行性,提高了GPDSP的執(zhí)行效率。
【附圖說明】
[0032]圖1是本發(fā)明的結(jié)構(gòu)示意圖。
[0033] 圖2是本發(fā)明中標(biāo)量處理單元結(jié)構(gòu)示意圖;
[0034] 圖3是本發(fā)明中向量處理單元的原理示意圖。
[0035] 圖4是本發(fā)明在具體應(yīng)用實(shí)例中進(jìn)行矩陣向量乘的示例圖。
[0036] 圖5是本發(fā)明在具體應(yīng)用實(shí)例中基于混洗功能的FFT計(jì)算過程示意圖。
[0037]圖6是本發(fā)明在具體應(yīng)用實(shí)例于FFT計(jì)算過程中VLIW指令槽的排布示意圖。
【具體實(shí)施方式】
[0038] 以下將結(jié)合說明書附圖和具體實(shí)施例對(duì)本發(fā)