1.一種網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理方法,其特征在于,所述方法包括:
對指令間的相關(guān)性進行判斷和標(biāo)記,根據(jù)所述標(biāo)記判斷是否并行發(fā)射指令;
當(dāng)并行發(fā)射指令時,利用并行解碼單元對所述指令進行解析,得到各個指令的指令類型和源操作數(shù)的地址;
根據(jù)所述指令的源操作數(shù)的地址,在多端口內(nèi)核寄存器中獲取源操作數(shù);
根據(jù)所述指令的指令類型,為所述指令分配相應(yīng)的可執(zhí)行單元對所述源操作數(shù)進行處理;
將處理結(jié)果存儲至多端口內(nèi)核寄存器中。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理方法,其特征在于,所述對指令間的相關(guān)性進行判斷和標(biāo)記,包括:
判斷前后兩條指令的目的寄存器是否在同一個區(qū)域;
當(dāng)前后兩條指令的目的寄存器不在同一個區(qū)域時,判斷前后兩條指令的目的寄存器是否存在數(shù)據(jù)冒險;
當(dāng)前后兩條指令的目的寄存器不存在數(shù)據(jù)冒險時,判斷前后兩條指令的指令類型是否不同;
當(dāng)前后兩條指令的指令類型不同時,判斷前一條指令是否為跳轉(zhuǎn)指令;
當(dāng)前一條指令不是跳轉(zhuǎn)指令時,確定兩條指令不相關(guān),并在后一條指令上置上不相關(guān)標(biāo)記。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理方法,其特征在于,所述根據(jù)所述標(biāo)記判斷是否并行發(fā)射指令,包括:
當(dāng)所述后一條指令置有不相關(guān)標(biāo)記時,一個線程并行發(fā)射前后兩條指令。
4.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理方法,其特征在于,
所述多端口內(nèi)核寄存器按照線程分為兩組寄存器,每組寄存器包括4個寄 存器單元;一條指令的兩個源操作數(shù)分別在兩個不同的寄存器單元中;一個線程的兩條指令的目的操作數(shù)分別在兩個不同的寄存器單元中;
所述多端口內(nèi)核寄存器具有8個數(shù)據(jù)讀口和4個數(shù)據(jù)寫口,同時支持四條指令訪問,每條指令訪問兩個源操作數(shù)和一個目的操作數(shù)。
5.根據(jù)權(quán)利要求1至4任一項所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理方法,其特征在于,所述指令的指令類型大類分為邏輯計算類指令、數(shù)據(jù)上傳/下載類指令、跳轉(zhuǎn)類指令;每一指令類型大類中又包括多個指令小類;每個線程對應(yīng)一組可執(zhí)行單元,包括:邏輯計算類執(zhí)行單元、數(shù)據(jù)上傳/下載類執(zhí)行單元、跳轉(zhuǎn)類執(zhí)行單元;
所述根據(jù)所述指令的指令類型,為所述指令分配相應(yīng)的可執(zhí)行單元,包括:
當(dāng)一個線程的兩條指令大類不一致時,將各組的指令分配到各自對應(yīng)的可執(zhí)行單元;
當(dāng)一個線程的兩條指令大類一致且指令小類不一致時,根據(jù)以下三種情況處理:
指令大類屬邏輯計算類指令時,線程內(nèi)分配各自的邏輯計算類執(zhí)行單元;
指令大類屬上傳/下載類指令時,線程內(nèi)分配各自的數(shù)據(jù)上傳/下載類執(zhí)行單元;
其中一條指令屬跳轉(zhuǎn)類指令時,按約束分配各自的可執(zhí)行單元。
6.一種網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理裝置,其特征在于,所述裝置包括:
編譯單元,用于對指令間的相關(guān)性進行判斷和標(biāo)記,根據(jù)所述標(biāo)記判斷是否并行發(fā)射指令;
并行解碼單元,用于當(dāng)并行發(fā)射指令時,并行對所述指令進行解析,得到各個指令的指令類型和源操作數(shù)的地址;
讀取單元,用于根據(jù)所述指令的源操作數(shù)的地址,在多端口內(nèi)核寄存器中獲取源操作數(shù);
指令分配單元,用于根據(jù)所述指令的指令類型,為所述指令分配相應(yīng)的可 執(zhí)行單元對所述源操作數(shù)進行處理;
寫入單元,用于將處理結(jié)果存儲至多端口內(nèi)核寄存器中。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理裝置,其特征在于,所述編譯單元,還用于判斷前后兩條指令的目的寄存器是否在同一個區(qū)域;當(dāng)前后兩條指令的目的寄存器不在同一個區(qū)域時,判斷前后兩條指令的目的寄存器是否存在數(shù)據(jù)冒險;當(dāng)前后兩條指令的目的寄存器不存在數(shù)據(jù)冒險時,判斷前后兩條指令的指令類型是否不同;當(dāng)前后兩條指令的指令類型不同時,判斷前一條指令是否為跳轉(zhuǎn)指令;當(dāng)前一條指令不是跳轉(zhuǎn)指令時,確定兩條指令不相關(guān),并在后一條指令上置上不相關(guān)標(biāo)記。
8.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理裝置,其特征在于,所述編譯單元,還用于當(dāng)所述后一條指令置有不相關(guān)標(biāo)記時,一個線程并行發(fā)射前后兩條指令。
9.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理裝置,其特征在于,
所述多端口內(nèi)核寄存器按照線程分為兩組寄存器,每組寄存器包括4個寄存器單元;一條指令的兩個源操作數(shù)分別在兩個不同的寄存器單元中;一個線程的兩條指令的目的操作數(shù)分別在兩個不同的寄存器單元中;
所述多端口內(nèi)核寄存器具有8個數(shù)據(jù)讀口和4個數(shù)據(jù)寫口,同時支持四條指令訪問,每條指令訪問兩個源操作數(shù)和一個目的操作數(shù)。
10.根據(jù)權(quán)利要求6至9任一項所述的網(wǎng)絡(luò)處理器微引擎的多發(fā)射指令并行處理裝置,其特征在于,所述指令的指令類型大類分為邏輯計算類指令、數(shù)據(jù)上傳/下載類指令、跳轉(zhuǎn)類指令;每一指令類型大類中又包括多個指令小類;每個線程對應(yīng)一組可執(zhí)行單元,包括:邏輯計算類執(zhí)行單元、數(shù)據(jù)上傳/下載類執(zhí)行單元、跳轉(zhuǎn)類執(zhí)行單元;
所述指令分配單元,還用于當(dāng)一個線程的兩條指令大類不一致時,將各組的指令分配到各自對應(yīng)的可執(zhí)行單元;當(dāng)一個線程的兩條指令大類一致且指令小類不一致時,根據(jù)以下三種情況處理:指令大類屬邏輯計算類指令時,線程 內(nèi)分配各自的邏輯計算類執(zhí)行單元;指令大類屬上傳/下載類指令時,線程內(nèi)分配各自的數(shù)據(jù)上傳/下載類執(zhí)行單元;其中一條指令屬跳轉(zhuǎn)類指令時,按約束分配各自的可執(zhí)行單元。