一種數(shù)據(jù)混洗方法和數(shù)據(jù)混洗單元的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)混洗方法和數(shù)據(jù)混洗單元。
【背景技術(shù)】
[0002]隨著多媒體技術(shù)和無(wú)線通信技術(shù)的進(jìn)一步發(fā)展,數(shù)字信號(hào)處理的問(wèn)題規(guī)模越來(lái)越大,需要在設(shè)計(jì)相應(yīng)的數(shù)字信號(hào)處理器中采用更加先進(jìn)的算法,實(shí)現(xiàn)數(shù)據(jù)的高效運(yùn)算。因此,在數(shù)據(jù)運(yùn)算密集型應(yīng)用中,能夠同時(shí)處理多個(gè)并行數(shù)據(jù)的SIMD(Single Instruct1nstream Multiple Data streams,單指令流多數(shù)據(jù)流)處理器具有很大優(yōu)勢(shì)。SIMD處理器中,每個(gè)向量運(yùn)算部件都帶有一個(gè)局部寄存器文件。不同SHffi處理器之間的差別在于向量運(yùn)算部件之間通信的數(shù)據(jù)混洗網(wǎng)絡(luò),數(shù)據(jù)混洗網(wǎng)絡(luò)規(guī)定向量運(yùn)算部件之間的連接模式,決定S頂D處理器能適應(yīng)的算法類別,對(duì)整個(gè)系統(tǒng)的性能和算法適應(yīng)性產(chǎn)生重要影響。
[0003]現(xiàn)有技術(shù)中,數(shù)據(jù)混洗單元包含在向量運(yùn)算部件中,無(wú)法高效靈活地進(jìn)行數(shù)據(jù)混洗。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供了一種數(shù)據(jù)混洗方法和數(shù)據(jù)混洗單元,以解決現(xiàn)有技術(shù)無(wú)法高效靈活地進(jìn)行數(shù)據(jù)混洗的缺陷。
[0005]本發(fā)明提供了一種數(shù)據(jù)混洗方法,包括以下步驟:
[0006]數(shù)據(jù)混洗單元接收來(lái)自向量運(yùn)算部件的第一源操作數(shù)和第二源操作數(shù);
[0007]所述數(shù)據(jù)混洗單元將所述第一源操作數(shù)和所述第二源操作數(shù)分別進(jìn)行拼接,得到第一操作數(shù)和第二操作數(shù);
[0008]所述數(shù)據(jù)混洗單元根據(jù)選擇控制信號(hào),對(duì)所述第一操作數(shù)和所述第二操作數(shù)進(jìn)行選擇輸出,并將輸出結(jié)果返回給所述向量運(yùn)算部件。
[0009]可選地,所述數(shù)據(jù)混洗單元根據(jù)選擇控制信號(hào),對(duì)所述第一操作數(shù)和所述第二操作數(shù)進(jìn)行選擇輸出之前,還包括:
[0010]所述數(shù)據(jù)混洗單元根據(jù)混洗指令的類型,從混洗模式寄存器中讀取與所述混洗指令對(duì)應(yīng)的混洗模式;
[0011 ] 所述數(shù)據(jù)混洗單元根據(jù)所述混洗指令的混洗粒度,對(duì)所述混洗模式進(jìn)行譯碼,得到所述選擇控制信號(hào)。
[0012]可選地,所述數(shù)據(jù)混洗單元根據(jù)混洗指令的類型,從混洗模式寄存器中讀取對(duì)應(yīng)的混洗模式,具體為:
[0013]當(dāng)所述混洗指令為立即數(shù)混洗指令時(shí),所述數(shù)據(jù)混洗單元使用與所述混洗指令對(duì)應(yīng)的立即數(shù)對(duì)預(yù)設(shè)地址取模,根據(jù)取模結(jié)果讀取混洗模式寄存器,得到與所述混洗指令對(duì)應(yīng)的混洗模式;
[0014]當(dāng)所述混洗指令為寄存器混洗指令時(shí),所述數(shù)據(jù)混洗單元讀取混洗模式地址寄存器,得到混洗模式地址,并根據(jù)所述混洗模式地址,從混洗模式存儲(chǔ)器中讀取與所述混洗指令對(duì)應(yīng)的混洗模式。
[0015]可選地,所述數(shù)據(jù)混洗單元根據(jù)混洗指令的類型,從混洗模式寄存器中讀取與所述混洗指令對(duì)應(yīng)的混洗模式之前,還包括:
[0016]所述數(shù)據(jù)混洗單元根據(jù)譯碼站的信號(hào),確定所述混洗指令的類型。
[0017]可選地,所述數(shù)據(jù)混洗單元根據(jù)所述混洗指令的混洗粒度,對(duì)所述混洗模式進(jìn)行譯碼,得到所述選擇控制信號(hào)之前,還包括:
[0018]所述數(shù)據(jù)混洗單元根據(jù)譯碼站的信號(hào),確定所述混洗指令的混洗粒度。
[0019]可選地,所述數(shù)據(jù)混洗單元將輸出結(jié)果返回給所述向量運(yùn)算單元,具體為:
[0020]所述數(shù)據(jù)混洗單元對(duì)所述輸出結(jié)果進(jìn)行分割,將分割得到的數(shù)據(jù)分別寫入到各個(gè)向量運(yùn)算部件的向量寄存器中。
[0021]本發(fā)明還提供了一種數(shù)據(jù)混洗單元,包括:
[0022]輸入邏輯,用于接收來(lái)自向量運(yùn)算部件的第一源操作數(shù)和第二源操作數(shù),將所述第一源操作數(shù)和所述第二源操作數(shù)分別進(jìn)行拼接,得到第一操作數(shù)和第二操作數(shù);
[0023]交叉網(wǎng)絡(luò),用于根據(jù)選擇控制信號(hào),對(duì)所述第一操作數(shù)和所述第二操作數(shù)進(jìn)行選擇輸出;
[0024]輸出邏輯,用于將輸出結(jié)果返回給所述向量運(yùn)算部件。
[0025]可選地,所述的數(shù)據(jù)混洗單元,還包括:
[0026]主控邏輯,用于根據(jù)混洗指令的類型,從混洗模式寄存器中讀取與所述混洗指令對(duì)應(yīng)的混洗模式;根據(jù)所述混洗指令的混洗粒度,對(duì)所述混洗模式進(jìn)行譯碼,得到所述選擇控制信號(hào)。
[0027]可選地,所述主控邏輯,具體用于在所述混洗指令為立即數(shù)混洗指令時(shí),使用與所述混洗指令對(duì)應(yīng)的立即數(shù)對(duì)預(yù)設(shè)地址取模,根據(jù)取模結(jié)果讀取混洗模式寄存器,得到與所述混洗指令對(duì)應(yīng)的混洗模式;在所述混洗指令為寄存器混洗指令時(shí),讀取混洗模式地址寄存器,得到混洗模式地址,并根據(jù)所述混洗模式地址,從混洗模式存儲(chǔ)器中讀取與所述混洗指令對(duì)應(yīng)的混洗模式。
[0028]可選地,所述主控邏輯,還用于根據(jù)譯碼站的信號(hào),確定所述混洗指令的類型。
[0029]可選地,所述主控邏輯,還用于根據(jù)譯碼站的信號(hào),確定所述混洗指令的混洗粒度。
[0030]可選地,所述輸出邏輯,具體用于對(duì)所述輸出結(jié)果進(jìn)行分割,將分割得到的數(shù)據(jù)分別寫入到各個(gè)向量運(yùn)算部件的向量寄存器中。
[0031]本發(fā)明中的數(shù)據(jù)混洗單元獨(dú)立于向量運(yùn)算部件,支持半字和字模式向量數(shù)據(jù)交換,使用硬件描述語(yǔ)言和EDA工具的支持下,能夠在40nm工藝下達(dá)到IGHz的工作頻率,高效靈活地實(shí)現(xiàn)數(shù)據(jù)混洗,可廣泛應(yīng)用于數(shù)字通訊、圖像和視頻處理等領(lǐng)域的ASIC數(shù)字信號(hào)處理器。
【附圖說(shuō)明】
[0032]圖1為本發(fā)明實(shí)施例中的一種數(shù)據(jù)混洗方法流程圖;
[0033]圖2為本發(fā)明實(shí)施例中的一種數(shù)據(jù)混洗單元的結(jié)構(gòu)示意圖;
[0034]圖3為本發(fā)明實(shí)施例中的雙端口混洗模式存儲(chǔ)器主體結(jié)構(gòu)示意圖;
[0035]圖4為本發(fā)明實(shí)施例中的半字混洗實(shí)現(xiàn)過(guò)程示意圖;
[0036]圖5為本發(fā)明實(shí)施例中的字混洗實(shí)現(xiàn)過(guò)程示意圖;
[0037]圖6為本發(fā)明實(shí)施例中的交叉開關(guān)的結(jié)構(gòu)示意圖;
[0038]圖7為本發(fā)明實(shí)施例中的選擇控制信號(hào)的譯碼過(guò)程示意圖。
【具體實(shí)施方式】
[0039]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0040]需要說(shuō)明的是,如果不沖突,本發(fā)明實(shí)施例以及實(shí)施例中的各個(gè)特征可以相互結(jié)合,均在本發(fā)明的保護(hù)范圍之內(nèi)。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0041]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)混洗方法,如圖1所示,應(yīng)用于包括數(shù)據(jù)混洗單元和向量運(yùn)算部件的處理器中,且數(shù)據(jù)混洗單元獨(dú)立于向量運(yùn)算部件,上述方法包括以下步驟:
[0042]步驟101,數(shù)據(jù)混洗單元接收來(lái)自向量運(yùn)算部件的第一源操作數(shù)和第二源操作數(shù)。
[0043]步驟102,數(shù)據(jù)混洗單元將第一源操作數(shù)和第二源操作數(shù)分別進(jìn)行拼接,得到第一操作數(shù)和第二操作數(shù)。
[0044]步驟103,數(shù)據(jù)混洗單元根據(jù)譯碼站的信號(hào),確定混洗指令的類型和混洗粒度。
[0045]步驟104,數(shù)據(jù)混洗單元根據(jù)混洗指令的類型,從混洗模式寄存器中讀取與混洗指令對(duì)應(yīng)的混洗模式。
[0046]具體地,當(dāng)混洗指令為立即