專(zhuān)利名稱:向量查表方法以及處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)設(shè)計(jì)領(lǐng)域,更具體地說(shuō),本發(fā)明涉及一種向量查表方法以及采用了該向量查表方法的處理器。
背景技術(shù):
隨著超級(jí)計(jì)算機(jī)發(fā)展,單指令多數(shù)據(jù)的向量計(jì)算指令成為提高系統(tǒng)峰值性能的關(guān)鍵技術(shù)。但是,受存儲(chǔ)器端口的限制,現(xiàn)有技術(shù)的通用處理器中無(wú)法并行實(shí)現(xiàn)與向量計(jì)算指令匹配的向量查表指令。實(shí)際上,在現(xiàn)有技術(shù)的通用處理器中,通常通過(guò)將向量查表操作拆 分成多次移位和裝載操作來(lái)實(shí)現(xiàn)。具體地說(shuō),在現(xiàn)有技術(shù)的通用處理器中,平均每個(gè)元素查表對(duì)應(yīng)三個(gè)操作將偏移值從特定指令字段(DISP_V$)中移至低位;發(fā)送普通裝載指令(LOAD)獲取元素查詢結(jié)果;將查詢結(jié)果移至高位。在上述現(xiàn)有技術(shù)的上述操作過(guò)程中,向量查表操作實(shí)現(xiàn)的過(guò)程需要反復(fù)進(jìn)行向量、標(biāo)量轉(zhuǎn)換,占用通用寄存器資源,影響流水線性能。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)中存在上述缺陷,提供一種在普通單端口或雙端口存儲(chǔ)器上實(shí)現(xiàn)快速向量查表的方法以及處理器,以解決現(xiàn)有技術(shù)的實(shí)現(xiàn)中,需要反復(fù)向量、標(biāo)量轉(zhuǎn)換,占用通用寄存器資源,影響流水線性能的技術(shù)問(wèn)題。根據(jù)本發(fā)明的第一方面,提供了一種向量查表方法,其包括設(shè)置多次查表指令,使所述多次查表指令依次包括第一多次查表指令字段、第二多次查表指令字段、第三多次查表指令字段、以及第四多次查表指令字段;以及利用所述多次查表指令來(lái)進(jìn)行向量查表操作;其中,所述第一多次查表指令字段用于標(biāo)示向量查表操作,所述第二多次查表指令字段指定的寄存器內(nèi)容為查詢基地址,第二、第三多次查表指令字段為源操作數(shù)寄存器的索引號(hào),第四多次查表指令字段為目標(biāo)寄存器的索引號(hào);所述第三多次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,所述第四多次查表指令字段表示查表結(jié)果的目標(biāo)寄存器地址,并且其中,根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四多次查表指令字段指定存放最終查詢結(jié)果的單個(gè)目標(biāo)寄存器。優(yōu)選地,所述向量查表方法還包括在處理器的指令流處理操作過(guò)程中,當(dāng)提取了所述多次查表指令時(shí),處理器將所述多次查表指令解釋為多個(gè)一次查表指令。一次查表指令的數(shù)量等于多次查表指令中的待查向量元素個(gè)數(shù)。優(yōu)選地,在所述向量查表方法中,目標(biāo)寄存器中向量查表結(jié)果的元素個(gè)數(shù)等于待查向量元素的偏移值的個(gè)數(shù);且偏移值在寄存器中的位置規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。優(yōu)選地,在所述向量查表方法中,所述一次查表指令依次包括第一一次查表指令字段、第二一次查表指令字段、第三一次查表指令字段、第四一次查表指令字段、以及第五一次查表指令字段;其中,所述第次查表指令字段用于標(biāo)不單次向量查表操作;所述第二、第三一次查表指令字段為源操作數(shù)寄存器;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為目標(biāo)寄存器。所述第二一次查表指令字段指定的寄存器內(nèi)容為查詢基地址;所述第三一次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,其中根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,其指定的單個(gè)目標(biāo)寄存器存放最終向量查表結(jié)果。優(yōu)選地,在所述向量查表方法中,將一個(gè)多次查表指令的結(jié)果一次性地寫(xiě)回目標(biāo)寄存器。根據(jù)本發(fā)明的第二方面,提供了一種處理器,其利用所述多次查表指令來(lái)進(jìn)行向量查表操作,其中,所述多次查表指令依次包括第一多次查表指令字段、第二多次查表指令字段、第三多次查表指令字段、以及第四多次查表指令字段;并且其中,所述第一多次查表指令字段用于標(biāo)示向量查表操作,所述第二多次查表指令字段指定的寄存器內(nèi)容為查詢基 地址,所述第三多次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,所述第四多次查表指令字段表示查表結(jié)果的目標(biāo)寄存器地址,其中,根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四多次查表指令字段指定的寄存器內(nèi)容為向量查表結(jié)果。優(yōu)選地,在處理器的指令流處理操作過(guò)程中,當(dāng)提取了所述多次查表指令時(shí),處理器將所述多次查表指令解釋為多個(gè)一次查表指令。一次查表指令的數(shù)量等于多次查表指令中的待查向量元素個(gè)數(shù)。優(yōu)選地,目標(biāo)寄存器中向量查表結(jié)果的元素個(gè)數(shù)等于待查向量元素的偏移段值的個(gè)數(shù),且偏移值在寄存器中的位置規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。優(yōu)選地,所述一次查表指令依次包括第一一次查表指令字段、第二一次查表指令字段、第三一次查表指令字段、第四一次查表指令字段、以及第五一次查表指令字段;其中,所述第次查表指令字段用于標(biāo)不單次向量查表操作;所述第二、第三一次查表指令字段為源操作數(shù)寄存器;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為目標(biāo)寄存器。所述第二一次查表指令字段指定的寄存器內(nèi)容為查詢基地址;所述第三一次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,其中根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,其指定的單個(gè)目標(biāo)寄存器存放最終向量查表結(jié)果。優(yōu)選地,將一個(gè)多次查表指令的結(jié)果一次性地寫(xiě)回目標(biāo)寄存器。根據(jù)本發(fā)明,通過(guò)單一操作實(shí)現(xiàn)多個(gè)待查向量元素的查表,與現(xiàn)有技術(shù)相比,每個(gè)元素查詢均可減少兩個(gè)操作,同時(shí)減少了執(zhí)行過(guò)程中占用的寄存器數(shù)量,以較小硬件代價(jià)實(shí)現(xiàn)了高效的向量查表。由此,本發(fā)明提供一種在普通單端口或雙端口存儲(chǔ)器上實(shí)現(xiàn)快速向量查表的方法以及處理器,解決了現(xiàn)有技術(shù)的需要反復(fù)向量、標(biāo)量轉(zhuǎn)換,占用通用寄存器資源,影響流水線性能的技術(shù)問(wèn)題。
結(jié)合附圖,并通過(guò)參考下面的詳細(xì)描述,將會(huì)更容易地對(duì)本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中圖I示意性地示出了根據(jù)本發(fā)明實(shí)施例的向量查表方法的示意圖。圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的向量查表方法的另一示意圖。需要說(shuō)明的是,附圖用于說(shuō)明本發(fā)明,而非限制本發(fā)明。注意,表示結(jié)構(gòu)的附圖可能并非按比例繪制。并且,附圖中,相同或者類(lèi)似的元件標(biāo)有相同或者類(lèi)似的標(biāo)號(hào)。
具體實(shí)施例方式為了使本發(fā)明的內(nèi)容更加清楚和易懂,下面結(jié)合具體實(shí)施例和附圖對(duì)本發(fā)明的內(nèi) 容進(jìn)行詳細(xì)描述。根據(jù)本發(fā)明實(shí)施例的向量查表方法包括設(shè)置多次查表指令,使所述多次查表指令依次包括第一多次查表指令字段、第二多次查表指令字段、第三多次查表指令字段、以及第四多次查表指令字段;利用所述多次查表指令來(lái)進(jìn)行向量查表操作。其中,所述第一多次查表指令字段用于標(biāo)不向量查表操作,第二、第三多次查表指令字段為源操作數(shù)寄存器的索引號(hào),第四多次查表指令字段為目標(biāo)寄存器的索引號(hào)。具體地說(shuō),所述第二多次查表指令字段為源操作數(shù)寄存器,其指定的寄存器內(nèi)容為查詢基地址,所述第三多次查表指令字段為源操作數(shù)寄存器,其指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段(根據(jù)基地址和各段偏移值,可計(jì)算出每個(gè)待查向量元素的目標(biāo)地址),所述第四多次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,根據(jù)每個(gè)待查向量元素的目標(biāo)地址取出各向量元素,拼接后寫(xiě)入第四多次查表指令字段指定的寄存器。目標(biāo)寄存器中向量查表結(jié)果的元素個(gè)數(shù)地址值的個(gè)數(shù)等于待查向量元素的偏移段值的個(gè)數(shù),且偏移值在寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。第四多次查表指令字段指定存放最終查詢結(jié)果的單個(gè)目標(biāo)寄存器。根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址,訪問(wèn)各目標(biāo)地址得到各待查向量元素,參照第三多次查表指令字段指定的寄存器內(nèi)容的拼接格式,拼接成向量查表結(jié)果,寫(xiě)入第四多次查表指令字段指定的目標(biāo)寄存器。待查向量元素偏移值在第三多次查表指令字段指定的寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在第四多次查表指令字段指定的目標(biāo)寄存器中的位置。并且,優(yōu)選地,根據(jù)本發(fā)明實(shí)施例的向量查表方法還包括在處理器的指令流處理操作過(guò)程中,當(dāng)提取了所述多次查表指令時(shí),處理器將所述多次查表指令解釋為多個(gè)一次查表指令,一次查表指令的數(shù)量等于多次查表指令中的待查向量元素個(gè)數(shù)。其中所述一次查表指令依次包括第一一次查表指令字段、第二一次查表指令字段、第三一次查表指令字段、第四一次查表指令字段、以及第五一次查表指令字段。其中,所述第一一次查表指令字段用于標(biāo)示單次向量查表操作;所述第二一次查表指令字段為源操作數(shù)寄存器,其指定的寄存器內(nèi)容為查詢基地址;
所述第三一次查表指令字段為源操作數(shù)寄存器,其指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,根據(jù)基地址和各段偏移值,可計(jì)算出每個(gè)待查向量元素的目標(biāo)地址;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,根據(jù)每個(gè)待查向量元素的目標(biāo)地址取出各向量元素,拼接后寫(xiě)入第四多次查表指令字段指定的寄存器。每個(gè)待查向量元素的目標(biāo)地址對(duì)應(yīng)一個(gè)向量查表結(jié)果,因此目標(biāo)寄存器中向量查表結(jié)果的個(gè)數(shù)優(yōu)選地等于待查向量元素的偏移段值的個(gè)數(shù)。圖I示意性地示出了根據(jù)本發(fā)明實(shí)施例的向量查表方法的示意圖。根據(jù)本發(fā)明實(shí)施例的向量查表方法包括 a)根據(jù)指令中的源寄存器號(hào)(BADDR$、DISP_V$),訪問(wèn)通用寄存器,得到查詢基地址和待訪問(wèn)元素(例第1、13、6、26個(gè)元素)在表中的偏移值(例:al、al3、a6、a26);b)查詢基地址和偏移值相加,得到待訪問(wèn)元素的存放地址;c)訪問(wèn)存儲(chǔ)器,得到各元素的值(例dl、dl3、d6、d26);d)參照DISP V$中偏移值的拼接格式,拼接向量查表結(jié)果;e)向量查表結(jié)果寫(xiě)入DEST$指定的目標(biāo)寄存器。具體地說(shuō),如圖I所示,在根據(jù)本發(fā)明實(shí)施例的向量查表方法中,將多次查表指令格式設(shè)置為“VLUPT (第一多次查表指令字段)”+ “BADDR$ (第二多次查表指令字段)”+“DISP_V$ (第三多次查表指令字段)”+ “DEST$ (第四多次查表指令字段)”,如圖I所示。其中VLUPT :操作名,用于標(biāo)示一次(單次)向量查表操作;BADDR$ :源操作數(shù)寄存器,其寄存器內(nèi)容為表首地址,即查詢基地址;DISP_V$ :源操作數(shù)寄存器,其寄存器內(nèi)容為偏移字段,其中包含多個(gè)待查向量元素(表元素)的偏移段值,具體偏移段值的個(gè)數(shù)由向量查表寬度決定,根據(jù)基地址和各段偏移段值,可計(jì)算出每個(gè)待查向量元素的目標(biāo)地址;具體地說(shuō),如圖I所示,例如,表首地址指示存儲(chǔ)器中“O”所示的地址,al表示表內(nèi)第I個(gè)待查向量元素相對(duì)于存儲(chǔ)器中“O”所示的地址的偏移地址,則通過(guò)將存儲(chǔ)器中“O”所示的地址與表內(nèi)第I個(gè)元素相對(duì)于存儲(chǔ)器中“O”所示的地址的偏移地址相加,則可以得到偏移段值al所指的待查向量元素的絕對(duì)地址。DEST$ :目標(biāo)寄存器,最終的向量查表結(jié)果寫(xiě)入該寄存器。向量查表結(jié)果的元素個(gè)數(shù)等于待查向量元素的偏移值的個(gè)數(shù);且偏移值在寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。具體地說(shuō),dl表示表內(nèi)第I個(gè)待查向量元素的值。如圖I所示,向量查表操作結(jié)束后,dl在DEST$所指定的寄存器中的位置,和al在DISP_V$所指定的寄存器中的位置一致。由此,在相應(yīng)的硬件設(shè)計(jì)中,采用多次查詢、一次寫(xiě)回結(jié)果方式實(shí)現(xiàn),減小地址解析開(kāi)銷(xiāo)。具體地說(shuō),在處理器的指令流處理操作過(guò)程中,當(dāng)提取了將多次查表指令時(shí),處理器將多次查表指令解釋為多個(gè)“一次查表指令”,其中一次查表指令格式設(shè)置為“SELLD(第——次查表指令字段)”+ “BADDR$ (第二一次查表指令字段)”+ “DISP_V$ (第三一次查表指令字段)”+“#c (第四一次查表指令字段)”+ “DEST$ (第五一次查表指令字段)”,如圖2所示。其中SELLD :操作名,標(biāo)示一次查表操作;BADDR$ :源操作數(shù)寄存器,其寄存器內(nèi)容為 表首地址,即查詢基地址;DISP_V$ :源操作數(shù)寄存器,其寄存器內(nèi)容為偏移字段,其中包含多個(gè)待查向量元素(表元素)的偏移段值,具體偏移段值的個(gè)數(shù)由向量查表寬度決定,根據(jù)基地址和各段偏移段值,可計(jì)算出每個(gè)待查向量元素的目標(biāo)地址;#c :表示本次查表元素(待查向量元素)偏移在DISP_V$中的索引值(即,表示本次查表元素是DISP_V$中的哪一個(gè)待查向量元素);具體地說(shuō),如圖2所示,多次查表指令的最后一個(gè)偏移(a26)在DISP_V$中的索引值為0,并且“索引值O”表示最后一個(gè)待查向量元素,“索引值I”表示倒數(shù)第二個(gè)待查向量元素,“索引值2”表示倒數(shù)第三個(gè)待查向量元素,依次類(lèi)推;DEST$ :目標(biāo)寄存器,存放查表結(jié)果,查表結(jié)果的個(gè)數(shù)等于待查向量元素的偏移段值的個(gè)數(shù)。每次查表操作對(duì)應(yīng)取回一個(gè)元素,保存于臨時(shí)緩沖中;待此遍歷索引值后,向量查表操作中的所有元素均已獲取,可回寫(xiě)至目標(biāo)寄存器中,具體結(jié)束標(biāo)記可以通過(guò)特定此取值來(lái)設(shè)置(例如當(dāng)#c為O時(shí)表明向量查表結(jié)束,可寫(xiě)回結(jié)果)。此外,在本發(fā)明具體實(shí)施例中,可設(shè)置臨時(shí)緩沖,采用多次查詢、一次寫(xiě)回結(jié)果方式實(shí)現(xiàn),即,將一個(gè)多次查表指令的結(jié)果一次性地寫(xiě)回目標(biāo)寄存器。更具體地說(shuō),如圖2所示,一個(gè)多次查表指令的最后一個(gè)結(jié)果(d26)之前的所有結(jié)果(dl、dl3、d6等)均暫時(shí)地存入緩沖器中,在確認(rèn)提取了最后一個(gè)結(jié)果(d26)時(shí),將最后一個(gè)結(jié)果(d26)與之前的結(jié)果(dl、dl3、d6等)一次性地寫(xiě)回目標(biāo)寄存器。由此,在本發(fā)明具體實(shí)施例中,減小了地址解析開(kāi)銷(xiāo),減少通用寄存器資源占用。硬件完成偏移值和查詢結(jié)果移位操作,與現(xiàn)有技術(shù)相比,每個(gè)元素查詢均可減少兩個(gè)操作。綜上所述,可以看出,本發(fā)明上述優(yōu)選實(shí)施例至少具有下述有益的技術(shù)效果在現(xiàn)有技術(shù)的通用處理器中,該操作由移位和裝載操作實(shí)現(xiàn),平均每個(gè)元素查表對(duì)應(yīng)三個(gè)操作將偏移值從DISP_V$中移至低位;發(fā)送普通轉(zhuǎn)載指令LOAD獲取元素查詢結(jié)果;將查詢結(jié)果移至高位。相反,本發(fā)明實(shí)施例通過(guò)單一操作實(shí)現(xiàn)多個(gè)待查向量元素的查表,與現(xiàn)有技術(shù)相比,每個(gè)元素查詢均可減少兩個(gè)操作,同時(shí)減少了執(zhí)行過(guò)程中占用的寄存器數(shù)量,以較小硬件代價(jià)實(shí)現(xiàn)了高效的向量查表。根據(jù)本發(fā)明的另一優(yōu)選實(shí)施例,本發(fā)明還提供了一種采用了上述向量查表方法的處理器??梢岳斫獾氖?,雖然本發(fā)明已以較佳實(shí)施例披露如上,然而上述實(shí)施例并非用以限定本發(fā)明。對(duì)于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案作出許多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
權(quán)利要求
1.一種向量查表方法,其特征在于包括 設(shè)置多次查表指令,使所述多次查表指令依次包括第一多次查表指令字段、第二多次查表指令字段、第三多次查表指令字段、以及第四多次查表指令字段;以及 利用所述多次查表指令來(lái)進(jìn)行向量查表操作; 其中,所述第一多次查表指令字段用于標(biāo)示向量查表操作,所述第二、第三多次查表指令字段為源操作數(shù)寄存器的索引號(hào),第四多次查表指令字段為目標(biāo)寄存器的索引號(hào);所述第二多次查表指令字段指定的寄存器內(nèi)容為查詢基地址,所述第三多次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,所述第四多次查表指令字段指定存放最終查詢結(jié)果的單個(gè)目標(biāo)寄存器, 并且其中,根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;訪問(wèn)目標(biāo)地址得到各待查向量元素;參照各段偏移值的拼接格式,將查出的各向量元素拼接成向量查 表結(jié)果;每個(gè)偏移值對(duì)應(yīng)一個(gè)查出的向量元素,偏移值在第三多次查表指令字段指定的寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在第四多次查表指令字段指定的目標(biāo)寄存器中的位置。
2.根據(jù)權(quán)利要求I所述的向量查表方法,其特征在于還包括在處理器的指令流處理操作過(guò)程中,當(dāng)提取了所述多次查表指令時(shí),處理器將所述多次查表指令解釋為多個(gè)一次查表指令;一次查表指令的數(shù)量等于多次查表指令中的待查向量元素個(gè)數(shù)。
3.根據(jù)權(quán)利要求2所述的向量查表方法,其特征在于,向量查表結(jié)束后,目標(biāo)寄存器中向量查表結(jié)果的元素個(gè)數(shù)等于待查向量元素的偏移段值的個(gè)數(shù);且偏移值在寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。
4.根據(jù)權(quán)利要求2所述的向量查表方法,其特征在于,所述一次查表指令依次包括第一一次查表指令字段、第二一次查表指令字段、第三一次查表指令字段、第四一次查表指令字段、以及第五一次查表指令字段; 其中,所述第一一次查表指令字段用于標(biāo)示單次向量查表操作;所述第二、第三一次查表指令字段為源操作數(shù)寄存器;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為目標(biāo)寄存器;所述第二一次查表指令字段指定的寄存器內(nèi)容為查詢基地址;所述第三一次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,其中根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,其指定的單個(gè)目標(biāo)寄存器存放最終向量查表結(jié)果。
5.根據(jù)權(quán)利要求I至4之一所述的向量查表方法,其特征在于,其中將一個(gè)多次查表指令的結(jié)果一次性地寫(xiě)回目標(biāo)寄存器。
6.一種處理器,其特征在于利用所述多次查表指令來(lái)進(jìn)行向量查表操作,其中,所述多次查表指令依次包括第一多次查表指令字段、第二多次查表指令字段、第三多次查表指令字段、以及第四多次查表指令字段; 并且其中,所述第一多次查表指令字段用于標(biāo)示向量查表操作,所述第二多次查表指令字段指定的寄存器內(nèi)容為查詢基地址,所述第三多次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,所述第四多次查表指令字段表示查表結(jié)果的目標(biāo)寄存器地址,其中,根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;在向量查表操作結(jié)束后,所述第四多次查表指令字段指定的寄存器內(nèi)容為向量查表結(jié)果。
7.根據(jù)權(quán)利要求6所述的處理器,其特征在于,在處理器的指令流處理操作過(guò)程中,當(dāng)提取了所述多次查表指令時(shí),處理器將所述多次查表指令解釋為多個(gè)一次查表指令;一次查表指令的數(shù)量等于多次查表指令中的待查向量元素個(gè)數(shù)。
8.根據(jù)權(quán)利要求7所述的處理器,其特征在于,目標(biāo)寄存器中向量查表結(jié)果的元素個(gè)數(shù)等于待查向量元素的偏移段值的個(gè)數(shù),且偏移值在寄存器中的位置規(guī)定了對(duì)應(yīng)元素最終在目標(biāo)寄存器中的位置。
9.根據(jù)權(quán)利要求7所述的處理器,其特征在于,所述一次查表指令依次包括第一一次查表指令字段、第二一次查表指令字段、第三一次查表指令字段、第四一次查表指令字段、以及第五一次查表指令字段; 其中,所述第一一次查表指令字段用于標(biāo)示單次向量查表操作;所述第二、第三一次查表指令字段為源操作數(shù)寄存器;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為目標(biāo)寄存器;所述第二一次查表指令字段指定的寄存器內(nèi)容為查詢基地址;所述第三一次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素的偏移段,其中根據(jù)基地址和各段偏移值計(jì)算每個(gè)待查向量元素的目標(biāo)地址;所述第四一次查表指令字段為本次待查向量元素偏移段在所述多次查表指令中的索引值;所述第五一次查表指令字段為查表結(jié)果的目標(biāo)寄存器地址,其指定的單個(gè)目標(biāo)寄存器存放最終向量查表結(jié)果。
10.根據(jù)權(quán)利要求6至9之一所述的處理器,其特征在于,其中將一個(gè)多次查表指令的結(jié)果一次性地寫(xiě)回目標(biāo)寄存器。
全文摘要
一種向量查表方法以及處理器。第一多次查表指令字段用于標(biāo)示向量查表操作,第二、第三多次查表指令字段為源操作數(shù)寄存器的索引號(hào),第四多次查表指令字段為目標(biāo)寄存器的索引號(hào)。第二多次查表指令字段指定的寄存器內(nèi)容為查詢基地址,第三多次查表指令字段指定的寄存器內(nèi)容包含多個(gè)待查向量元素相對(duì)于查詢基地址的偏移值,第四多次查表指令字段指定存放最終查詢結(jié)果的單個(gè)目標(biāo)寄存器。參照第三多次查表指令字段指定的寄存器內(nèi)容的拼接格式,拼接成向量查表結(jié)果,寫(xiě)入第四多次查表指令字段指定的目標(biāo)寄存器。待查向量元素偏移值在第三多次查表指令字段指定的寄存器中的位置,規(guī)定了對(duì)應(yīng)元素最終在第四多次查表指令字段指定的目標(biāo)寄存器中的位置。
文檔編號(hào)G06F17/30GK102930008SQ201210423150
公開(kāi)日2013年2月13日 申請(qǐng)日期2012年10月29日 優(yōu)先權(quán)日2012年10月29日
發(fā)明者高紅光, 丁亞軍, 過(guò)鋒, 鄭方, 唐勇, 任秀江, 陳彥庭 申請(qǐng)人:無(wú)錫江南計(jì)算技術(shù)研究所