專利名稱:具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元及其混洗方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SIMD技術(shù)的數(shù)字信號(hào)處理器領(lǐng)域,尤其涉及一種數(shù)據(jù)混洗單元及其 混洗方法。
背景技術(shù):
SIMD(單指令流多數(shù)據(jù)流,Single Instruction stream Multiple Data streams) 技術(shù)一般包括子字并行技術(shù)和向量技術(shù),兩者分別從微觀和宏觀兩個(gè)方向開(kāi)發(fā)應(yīng)用程序的 數(shù)據(jù)級(jí)并行性。SIMD技術(shù)能夠在執(zhí)行一條指令的情況下處理多個(gè)并行的數(shù)據(jù),其高功效性 在解決運(yùn)算密集型的應(yīng)用中具有很大的優(yōu)勢(shì),因而得到了廣泛的應(yīng)用和發(fā)展,受到了處理 器尤其是DSP (數(shù)字信號(hào)處理器,Digital Signal I^rocessor)的青睞。圖1為典型的采用 SIMD技術(shù)的DSP結(jié)構(gòu)示意圖,由圖1可見(jiàn),取指及譯碼單元從程序存儲(chǔ)器中讀取指令并進(jìn)行 譯碼,派發(fā)到地址產(chǎn)生單元、向量運(yùn)算單元和數(shù)據(jù)混洗單元當(dāng)中。其中地址產(chǎn)生單元根據(jù)指 令在向量數(shù)據(jù)存儲(chǔ)器和向量寄存器之間傳遞數(shù)據(jù)。向量運(yùn)算單元根據(jù)指令從向量寄存器中 讀取源操作數(shù),進(jìn)行相應(yīng)的運(yùn)算再寫入到向量寄存器中。將每一簇的向量運(yùn)算單元和向量 寄存器合并稱之為PE(處理單元,Process Element),圖1中ΡΕ_0, PE_1,…,PE_N_1表示 共有N個(gè)ΡΕ。數(shù)據(jù)混洗單元是獨(dú)立于向量運(yùn)算單元的,主要負(fù)責(zé)PE間寄存器的數(shù)據(jù)交互, 在基于SIMD技術(shù)的DSP當(dāng)中作用非常關(guān)鍵。在執(zhí)行數(shù)據(jù)混洗指令時(shí),由每個(gè)向量寄存器提供一個(gè)數(shù)據(jù)組成源操作數(shù)向量,經(jīng) 過(guò)數(shù)據(jù)混洗單元重新排布后,再寫入到各個(gè)向量寄存器中。這樣各個(gè)向量單元之間就通 過(guò)數(shù)據(jù)混洗單元完成了數(shù)據(jù)交互。這在一些嵌入式應(yīng)用的核心算法(如快速傅里葉變換、 Viterbi解碼等)中的作用非常關(guān)鍵。嵌入式實(shí)時(shí)應(yīng)用程序既需要DSP提供豐富的混洗模 式支持,又具有較強(qiáng)的數(shù)據(jù)實(shí)時(shí)性要求,因而必須設(shè)計(jì)一種高效靈活的數(shù)據(jù)混洗方案。如圖2所示,傳統(tǒng)的混洗單元通常包含混洗網(wǎng)絡(luò)(以交叉開(kāi)關(guān)(Crossbar)為主)、 譯碼邏輯、混洗模式寄存器及其它輔助的控制邏輯,如摩托羅拉公司的采用AltiVec指令 集的處理器的混洗單元或飛利浦公司的EVP處理器中的混洗單元。這種結(jié)構(gòu)需要用戶提 前對(duì)混洗模式寄存器進(jìn)行配置,在執(zhí)行混洗指令時(shí),硬件首先對(duì)混洗模式寄存器中混洗模 式進(jìn)行譯碼,譯碼之后的邏輯再驅(qū)動(dòng)交叉開(kāi)關(guān)對(duì)輸入的向量進(jìn)行選擇和重組,從而完成混 洗。如圖3所示,傳統(tǒng)的混洗單元中的典型的混洗操作指令為Sniffle VR2,VR3,該指令 中的VR2表示待混洗的源操作數(shù)來(lái)自于每個(gè)向量寄存器的2號(hào)寄存器,即如圖1中ΡΕ_0, PE_1, -PE_N-1的2號(hào)寄存器組成了待混洗的數(shù)據(jù),如圖3所示,設(shè)該數(shù)據(jù)為abcdefgh ; 該指令中的VR3表示從交叉開(kāi)關(guān)輸出的已經(jīng)重排布的數(shù)據(jù)需要寫入到每個(gè)向量寄存器的3 號(hào)寄存器中?;煜粗噶钕M麑bcdefgh混洗為efghcdab,則用戶需要在執(zhí)行混洗操作之 前將混洗模式寄存器填充為0_10_0_11_0_01_0_00 (本示例向量寬度較窄,導(dǎo)致混洗模式 寄存器的寬度也比較窄,實(shí)際的向量處理器混洗模式寄存器一般在幾十位到幾百位之間)。 在傳統(tǒng)的數(shù)據(jù)混洗指令執(zhí)行時(shí),默認(rèn)使用混洗模式寄存器,并且需要將混洗模式中的寄存 器進(jìn)行譯碼,如圖3所示需要將混洗模式寄存器中的數(shù)值0_10_0_11_0_01_0_00譯碼為0010_0001_0100_1000才能驅(qū)動(dòng)交叉開(kāi)關(guān)的每一個(gè)開(kāi)關(guān)進(jìn)行數(shù)據(jù)重排布。由以上分析可見(jiàn),傳統(tǒng)的混洗方案需要用戶在程序中提前配置混洗模式寄存器, 同時(shí)在執(zhí)行混洗指令時(shí)需要對(duì)混洗模式寄存器中的數(shù)值進(jìn)行譯碼。這種方案存在兩個(gè)問(wèn) 題1.用戶配置混洗模式寄存器的過(guò)程較為不便。如果通過(guò)控制寄存器配置總線配置混洗 模式寄存器則需要花費(fèi)比較多的節(jié)拍數(shù)(混洗模式寄存器通常有幾十到幾百位,而配置總 線的寬度通常只有32位);如果通過(guò)訪存指令將混洗模式從片內(nèi)存儲(chǔ)器加載到混洗模式寄 存器中,也需要花費(fèi)一定的節(jié)拍數(shù),并且由于該配置過(guò)程和普通的訪存請(qǐng)求競(jìng)爭(zhēng)存儲(chǔ)帶寬 資源,將會(huì)影響應(yīng)用程序的訪存效率;2.混洗模式需經(jīng)譯碼后再進(jìn)入交叉開(kāi)關(guān)。傳統(tǒng)的混 洗單元需要首先對(duì)混洗模式寄存器中的混洗模式進(jìn)行譯碼,形成了控制交叉開(kāi)關(guān)每一個(gè)節(jié) 點(diǎn)開(kāi)關(guān)導(dǎo)通或斷開(kāi)的01值,然后這些譯碼之后的01值再驅(qū)動(dòng)交叉開(kāi)關(guān)進(jìn)行數(shù)據(jù)選擇,這一 過(guò)程的關(guān)鍵路徑延時(shí)較大,不利于混洗單元的高頻或可擴(kuò)展性設(shè)計(jì)。從目前公開(kāi)的文獻(xiàn)來(lái)看,關(guān)于混洗網(wǎng)絡(luò)本身的改進(jìn)、簡(jiǎn)化研究較多,還沒(méi)有專門的 文獻(xiàn)設(shè)計(jì)到改進(jìn)混洗模式的配置過(guò)程這一問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)存在的不足,提供一種結(jié)構(gòu)簡(jiǎn)單、混 洗靈活高效、關(guān)鍵電路延時(shí)短,且可適用于任意混洗操作的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混 洗單元及其混洗方法。為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案一種具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,包括交叉開(kāi)關(guān)、控制所述交叉開(kāi)關(guān)從向量 寄存器輸入數(shù)據(jù)的輸入邏輯單元、以及控制所述交叉開(kāi)關(guān)輸出數(shù)據(jù)到向量寄存器的輸出邏 輯單元,其特征在于所述數(shù)據(jù)混洗單元還包括與向量寄存器相連的用于控制轉(zhuǎn)化混洗請(qǐng) 求和執(zhí)行混洗操作的主控邏輯單元,以及與主控邏輯單元相連的用于存儲(chǔ)混洗請(qǐng)求轉(zhuǎn)化結(jié) 果的開(kāi)關(guān)矩陣存儲(chǔ)器,所述主控邏輯單元與所述輸入邏輯單元相連并控制待混洗的源操作 數(shù)向量從輸入邏輯單元輸入到所述交叉開(kāi)關(guān)中,所述交叉開(kāi)關(guān)由位于其開(kāi)關(guān)選擇信號(hào)端的 開(kāi)關(guān)矩陣存儲(chǔ)器控制對(duì)所述源操作數(shù)向量進(jìn)行混洗,混洗結(jié)果由輸出邏輯單元輸出到向量 寄存器。作為上述數(shù)據(jù)混洗單元的進(jìn)一步改進(jìn)所述主控邏輯單元包括用于將混洗請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣并寫入開(kāi)關(guān)矩陣存儲(chǔ)器的自 舉態(tài)模塊,以及用于根據(jù)混洗指令讀取開(kāi)關(guān)矩陣存儲(chǔ)器以控制交叉開(kāi)關(guān)執(zhí)行混洗操作的執(zhí) 行態(tài)模塊。本發(fā)明還提供一種具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,其特征在于 包括以下步驟1)預(yù)處理在交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào)端設(shè)置開(kāi)關(guān)矩陣存儲(chǔ)器,將用戶程序中的混洗 請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣存儲(chǔ)器中的開(kāi)關(guān)矩陣;2)執(zhí)行混洗從向量寄存器讀取待混洗的源操作數(shù)向量分配到交叉開(kāi)關(guān)的輸入端口 上,從開(kāi)關(guān)矩陣存儲(chǔ)器中讀取需要的開(kāi)關(guān)矩陣,輸出到交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào)端以控制 交叉開(kāi)關(guān)對(duì)輸入的源操作數(shù)向量進(jìn)行選擇和重組操作后,將操作結(jié)果輸出到向量寄存器, 完成混洗。
作為上述混洗方法的進(jìn)一步改進(jìn),所述預(yù)處理具體包括以下步驟1.1)將用戶程序中的當(dāng)前的混洗操作請(qǐng)求的需要的開(kāi)關(guān)矩陣與開(kāi)關(guān)矩陣表中的開(kāi)關(guān) 矩陣進(jìn)行匹配,所述開(kāi)關(guān)矩陣表存儲(chǔ)在開(kāi)關(guān)矩陣存儲(chǔ)器中,如果能夠匹配,則轉(zhuǎn)入1. 2),否 則轉(zhuǎn)入1.3);1. 2)根據(jù)匹配的開(kāi)關(guān)矩陣在開(kāi)關(guān)矩陣表中的位置更新當(dāng)前混洗操作的表達(dá)方式,轉(zhuǎn)入 1.4);1. 3)在開(kāi)關(guān)矩陣表中增加一個(gè)新的開(kāi)關(guān)矩陣,轉(zhuǎn)入1. 2);1.4)判斷當(dāng)前混洗操作是否為最后一個(gè)混洗操作,如果不是則轉(zhuǎn)入1.5),否則轉(zhuǎn)入 1.6);1.5)處理下一個(gè)混洗操作,轉(zhuǎn)入1.1); 1. 6)完成預(yù)處理,結(jié)束當(dāng)前操作。所述混洗指令為Siuffle Addr_i,VR_j, VR_k,其中Addr_i為混洗操作對(duì)應(yīng)的開(kāi) 關(guān)矩陣在開(kāi)關(guān)矩陣存儲(chǔ)器中的地址,VR_j為混洗操作的源操作數(shù)信息,VR_k為混洗操作的 目的操作數(shù)信息。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于1、本發(fā)明的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,采用主控邏輯單元與開(kāi)關(guān)矩陣存儲(chǔ) 器,結(jié)構(gòu)簡(jiǎn)單,在程序進(jìn)行預(yù)處理時(shí),將一個(gè)應(yīng)用程序所需要的所有混洗模式譯碼之后的邏 輯值存放在開(kāi)關(guān)矩陣存儲(chǔ)器中,可以節(jié)約用戶進(jìn)行配置的時(shí)間,使混洗更加靈活高效。從開(kāi) 關(guān)矩陣存儲(chǔ)器讀出的內(nèi)容無(wú)需譯碼可以直接驅(qū)動(dòng)交叉開(kāi)關(guān)進(jìn)行數(shù)據(jù)選擇,硬件電路更加簡(jiǎn) 單、并可以減少關(guān)鍵電路的延時(shí),有利于混洗單元的高頻或可擴(kuò)展性設(shè)計(jì)。2、本發(fā)明的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,在預(yù)處理(自舉態(tài)) 時(shí)將將用戶程序中的混洗請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣存儲(chǔ)器中的數(shù)值,引入帶開(kāi)關(guān)矩陣存儲(chǔ)器地 址的混洗指令,使用戶在程序執(zhí)行當(dāng)中不需要輸入配置模式從而能夠更加靈活高效地實(shí)現(xiàn) 數(shù)據(jù)混洗;在執(zhí)行每一條混洗指令時(shí),由主控邏輯單元控制從開(kāi)關(guān)矩陣存儲(chǔ)器讀出所需要 的混洗模式對(duì)應(yīng)的開(kāi)關(guān)矩陣,進(jìn)而直接控制交叉開(kāi)關(guān)進(jìn)行數(shù)據(jù)選擇;采用本混洗方法可減 少了應(yīng)用程序的代碼長(zhǎng)度,使混洗單元應(yīng)用更方便。這種方式也為改進(jìn)混洗模式的配置過(guò) 程提供了新的思路。
圖1是典型的采用SIMD技術(shù)的DSP的總體結(jié)構(gòu)示意圖; 圖2是傳統(tǒng)的采用混洗模式寄存器的混洗單元結(jié)構(gòu)示意圖; 圖3是傳統(tǒng)的混洗單元中的典型的混洗指令及其執(zhí)行示意圖;圖4是本發(fā)明具體實(shí)施例的具有開(kāi)關(guān)矩陣存儲(chǔ)器的混洗單元的結(jié)構(gòu)示意圖; 圖5是本發(fā)明具體實(shí)施例的混洗指令及其執(zhí)行示意圖; 圖6是本發(fā)明具體實(shí)施例的混洗操作預(yù)處理的處理流程示意圖。
具體實(shí)施例方式以下將結(jié)合說(shuō)明書附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。如圖4所示,本發(fā)明的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,包括交叉開(kāi)關(guān)、控制交叉開(kāi)關(guān)從向量寄存器輸入數(shù)據(jù)的輸入邏輯單元、以及控制交叉開(kāi)關(guān)輸出數(shù)據(jù)到向量寄存 器的輸出邏輯單元,數(shù)據(jù)混洗單元還包括與向量寄存器相連的用于控制轉(zhuǎn)化混洗請(qǐng)求和執(zhí) 行混洗操作的主控邏輯單元,以及與主控邏輯單元相連的用于存儲(chǔ)混洗請(qǐng)求轉(zhuǎn)化結(jié)果的開(kāi) 關(guān)矩陣存儲(chǔ)器,主控邏輯單元與輸入邏輯單元相連并控制待混洗的源操作數(shù)向量從輸入邏 輯單元輸入到交叉開(kāi)關(guān)中,交叉開(kāi)關(guān)由位于其開(kāi)關(guān)選擇信號(hào)端的開(kāi)關(guān)矩陣存儲(chǔ)器控制對(duì)源 操作數(shù)向量進(jìn)行混洗,混洗結(jié)果由輸出邏輯單元輸出到向量寄存器。本實(shí)施例中,主控邏輯單元包括用于將混洗請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣并寫入開(kāi)關(guān)矩陣 存儲(chǔ)器的自舉態(tài)模塊,以及用于根據(jù)混洗指令讀取開(kāi)關(guān)矩陣存儲(chǔ)器以控制交叉開(kāi)關(guān)執(zhí)行混 洗操作的執(zhí)行態(tài)模塊。開(kāi)關(guān)矩陣存儲(chǔ)器由SRAM (單端口的靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器,Static Random Access Memory)組成,其深度由用戶程序的混洗模式數(shù)目所決定,本實(shí)施例中, SRAM深度選擇為64,SRAM的寬度等于SIMD通路包含的最小混洗粒度的數(shù)目的平方,即w2/ g2。其中w為SIMD通路的寬度(單位bits),g為混洗的最小粒度(單位bits),且w為g的 2的整數(shù)次冪。本實(shí)施例中,交叉開(kāi)關(guān)的規(guī)模為交叉開(kāi)關(guān)的規(guī)模為N*N (其中N=w/g),且每 個(gè)端口的寬度為g bits。如圖6所示,上述的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,包括以下 步驟1.預(yù)處理1.1將用戶程序中的當(dāng)前的混洗操作請(qǐng)求的需要的開(kāi)關(guān)矩陣(開(kāi)關(guān)矩陣即控制交叉開(kāi) 關(guān)每一個(gè)節(jié)點(diǎn)開(kāi)關(guān)導(dǎo)通或斷開(kāi)的01值組成的矩陣)與開(kāi)關(guān)矩陣表中的開(kāi)關(guān)矩陣進(jìn)行匹配, 開(kāi)關(guān)矩陣表存儲(chǔ)在開(kāi)關(guān)矩陣存儲(chǔ)器中,如果能夠匹配,則轉(zhuǎn)入1. 2,否則轉(zhuǎn)入1. 3 ;1. 2根據(jù)匹配的開(kāi)關(guān)矩陣在開(kāi)關(guān)矩陣表中的位置更新當(dāng)前混洗操作的表達(dá)方式,轉(zhuǎn)入1.4 ;1. 3在開(kāi)關(guān)矩陣表中增加一個(gè)新的開(kāi)關(guān)矩陣,轉(zhuǎn)入1. 2 ;1. 4判斷當(dāng)前混洗操作是否為最后一個(gè)混洗操作,如果不是則轉(zhuǎn)入1. 5,否則轉(zhuǎn)入1. 6 ; 1. 5處理下一個(gè)混洗操作,轉(zhuǎn)入1. 1 ; 1. 6完成預(yù)處理,結(jié)束當(dāng)前操作。2.執(zhí)行混洗指令從向量寄存器讀取待混洗的源操作數(shù)向量分配到交叉開(kāi)關(guān)的 輸入端口上,從開(kāi)關(guān)矩陣存儲(chǔ)器中讀取需要的開(kāi)關(guān)矩陣,輸出到交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào) 端以控制交叉開(kāi)關(guān)對(duì)輸入的源操作數(shù)向量進(jìn)行選擇和重組操作后,將操作結(jié)果輸出到向量 寄存器,完成混洗。上述完成混洗操作的步驟中,從開(kāi)關(guān)矩陣存儲(chǔ)器讀出開(kāi)關(guān)矩陣和程序的訪存指令 讀寫向量存儲(chǔ)器是兩個(gè)完全獨(dú)立、無(wú)干擾的過(guò)程。本實(shí)施例中,混洗指令為Siuffle Addr_i,VR_j, VR_k,其中Addr_i為混洗操作 對(duì)應(yīng)的開(kāi)關(guān)矩陣在開(kāi)關(guān)矩陣存儲(chǔ)器中的地址,用來(lái)指示當(dāng)前的混洗指令的混洗模式存放在 開(kāi)關(guān)矩陣存儲(chǔ)器的起始位置。VR_j為混洗操作的源操作數(shù)信息(由每個(gè)PE的VR_j寄存器 組成源操作數(shù)向量),VR_k為混洗操作的目的操作數(shù)信息(經(jīng)過(guò)混洗之后的向量分別寫入到 每個(gè)PE的VR_k寄存器中)。如圖5所示,圖中的混洗指令為Siuffle #3,VR2, VR3,該指令 中的VR2和VR3和圖3中的指令的VR2、VR3意義相同,該指令中的#3表示該條混洗指令對(duì) 應(yīng)的開(kāi)關(guān)矩陣在開(kāi)關(guān)矩陣存儲(chǔ)器的3號(hào)位置,如圖5所示,在開(kāi)關(guān)矩陣存儲(chǔ)器的第3行存儲(chǔ)的是0010_0001_0100_1000。在執(zhí)行該條混洗指令之前,用戶不需要在程序的執(zhí)行當(dāng)中配置 混洗模式寄存器(開(kāi)關(guān)矩陣存儲(chǔ)器中的數(shù)據(jù)已在程序預(yù)處理時(shí)加載完畢)。此外由于從開(kāi)關(guān) 矩陣存儲(chǔ)器讀出的開(kāi)關(guān)矩陣可以直接驅(qū)動(dòng)交叉開(kāi)關(guān)將abcdefgh重排為efghcdab,減少了 復(fù)雜的譯碼邏輯,降低了關(guān)鍵路徑延時(shí)。綜上所述,本發(fā)明的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,采用開(kāi)關(guān)矩陣存儲(chǔ)器 取代了傳統(tǒng)的混洗模式寄存器,使混洗操作的執(zhí)行更加高效,同時(shí)也能夠使整個(gè)混洗過(guò)程 的關(guān)鍵路徑延時(shí)變得較短,因而適用于采用SIMD技術(shù)的DSP,同時(shí)其它的面向視頻和多媒 體應(yīng)用的采用SIMD技術(shù)的處理器均可采用。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施 例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域 的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,應(yīng)視為本發(fā)明的保 護(hù)范圍。
權(quán)利要求
1.一種具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,包括交叉開(kāi)關(guān)、控制所述交叉開(kāi)關(guān)從向 量寄存器輸入數(shù)據(jù)的輸入邏輯單元、以及控制所述交叉開(kāi)關(guān)輸出數(shù)據(jù)到向量寄存器的輸出 邏輯單元,其特征在于所述數(shù)據(jù)混洗單元還包括與向量寄存器相連的用于控制轉(zhuǎn)化混洗 請(qǐng)求和執(zhí)行混洗操作的主控邏輯單元,以及與主控邏輯單元相連的用于存儲(chǔ)混洗請(qǐng)求轉(zhuǎn)化 結(jié)果的開(kāi)關(guān)矩陣存儲(chǔ)器,所述主控邏輯單元與所述輸入邏輯單元相連并控制待混洗的源操 作數(shù)向量從輸入邏輯單元輸入到所述交叉開(kāi)關(guān)中,所述交叉開(kāi)關(guān)由位于其開(kāi)關(guān)選擇信號(hào)端 的開(kāi)關(guān)矩陣存儲(chǔ)器控制對(duì)所述源操作數(shù)向量進(jìn)行混洗,混洗結(jié)果由輸出邏輯單元輸出到向 量寄存器。
2 根據(jù)權(quán)利要求1所述的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,其特征在于所述主 控邏輯單元包括用于將混洗請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣并寫入開(kāi)關(guān)矩陣存儲(chǔ)器的自舉態(tài)模塊,以 及用于根據(jù)混洗指令讀取開(kāi)關(guān)矩陣存儲(chǔ)器以控制交叉開(kāi)關(guān)執(zhí)行混洗操作的執(zhí)行態(tài)模塊。
3.一種具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,其特征在于包括以下步驟1)預(yù)處理在交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào)端設(shè)置開(kāi)關(guān)矩陣存儲(chǔ)器,將用戶程序中的混洗 請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣存儲(chǔ)器中的開(kāi)關(guān)矩陣;2)執(zhí)行混洗從向量寄存器讀取待混洗的源操作數(shù)向量分配到交叉開(kāi)關(guān)的輸入端口 上,從開(kāi)關(guān)矩陣存儲(chǔ)器中讀取需要的開(kāi)關(guān)矩陣,輸出到交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào)端以控制 交叉開(kāi)關(guān)對(duì)輸入的源操作數(shù)向量進(jìn)行選擇和重組操作后,將操作結(jié)果輸出到向量寄存器, 完成混洗。
4.根據(jù)權(quán)利要求3所述的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,其特征在 于所述預(yù)處理具體包括以下步驟1. 1)將用戶程序中的當(dāng)前的混洗操作請(qǐng)求的需要的開(kāi)關(guān)矩陣與開(kāi)關(guān)矩陣表中的開(kāi)關(guān) 矩陣進(jìn)行匹配,所述開(kāi)關(guān)矩陣表存儲(chǔ)在開(kāi)關(guān)矩陣存儲(chǔ)器中,如果能夠匹配,則轉(zhuǎn)入1. 2),否 則轉(zhuǎn)入1.3);1. 2)根據(jù)匹配的開(kāi)關(guān)矩陣在開(kāi)關(guān)矩陣表中的位置更新當(dāng)前混洗操作的表達(dá)方式,轉(zhuǎn)入 1.4);1. 3)在開(kāi)關(guān)矩陣表中增加一個(gè)新的開(kāi)關(guān)矩陣,轉(zhuǎn)入1. 2);1. 4)判斷當(dāng)前混洗操作是否為最后一個(gè)混洗操作,如果不是則轉(zhuǎn)入1. 5),否則轉(zhuǎn)入 1.6);1.5)處理下一個(gè)混洗操作,轉(zhuǎn)入1. 1);1. 6)完成預(yù)處理,結(jié)束當(dāng)前操作。
5.根據(jù)權(quán)利要求3或4所述的具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元的混洗方法,其特 征在于所述混洗指令為Shuffle Addr_i, VR_j, VR_k,其中Addr_i為混洗操作對(duì)應(yīng)的開(kāi) 關(guān)矩陣在開(kāi)關(guān)矩陣存儲(chǔ)器中的地址,VR_j為混洗操作的源操作數(shù)信息,VR_k為混洗操作的 目的操作數(shù)信息。
全文摘要
本發(fā)明公開(kāi)了一種具有開(kāi)關(guān)矩陣存儲(chǔ)器的數(shù)據(jù)混洗單元,包括交叉開(kāi)關(guān)、輸入邏輯單元、輸出邏輯單元、主控邏輯單元以及開(kāi)關(guān)矩陣存儲(chǔ)器,主控邏輯單元與所述輸入邏輯單元相連,開(kāi)關(guān)矩陣存儲(chǔ)器的輸出端與所述交叉開(kāi)關(guān)的開(kāi)關(guān)選擇信號(hào)端相連。以及一種上述的數(shù)據(jù)混洗單元的混洗方法,在預(yù)處理時(shí)將用戶程序中的混洗請(qǐng)求轉(zhuǎn)化為開(kāi)關(guān)矩陣存儲(chǔ)器中的開(kāi)關(guān)矩陣,執(zhí)行混洗指令時(shí),主控邏輯單元控制從開(kāi)關(guān)矩陣存儲(chǔ)器讀出所需要的混洗模式對(duì)應(yīng)的開(kāi)關(guān)矩陣,進(jìn)而直接控制交叉開(kāi)關(guān)進(jìn)行數(shù)據(jù)選擇和重組。本發(fā)明具有結(jié)構(gòu)簡(jiǎn)單、混洗靈活高效、關(guān)鍵電路延時(shí)短且可適用于任意混洗操作的特點(diǎn)。
文檔編號(hào)G06F9/30GK102053816SQ201010559288
公開(kāi)日2011年5月11日 申請(qǐng)日期2010年11月25日 優(yōu)先權(quán)日2010年11月25日
發(fā)明者萬(wàn)江華, 劉祥遠(yuǎn), 劉勝, 孫永節(jié), 彭元喜, 李振濤, 楊惠, 陳書明, 陳海燕, 陳躍躍 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)