一種用于嵌入式圖形處理器的指令集設(shè)計方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種用于嵌入式圖形處理器的指令集設(shè)計方法,屬于硬件處理器的指 令集設(shè)計的技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 隨著移動通信技術(shù)以及半導(dǎo)體工藝的進(jìn)步,移動終端芯片的集成度和性能不斷地 提高。移動領(lǐng)域的龐大市場前景極大地帶動了相關(guān)產(chǎn)業(yè)的發(fā)展,尤其是嵌入式芯片設(shè)計行 業(yè)。由于其特殊的應(yīng)用場景,嵌入式芯片有特殊的設(shè)計要求:
[0003] (1)低功耗:由于嵌入式設(shè)備大多采用鋰電池供電,電量有限,因此,電子設(shè)備的 功耗極大地影響了電子設(shè)計的使用時間。低功耗的芯片設(shè)計能夠提高用戶的體驗水平。
[0004] (2)兼容性高:嵌入式場景的多樣性使得嵌入式芯片的設(shè)計需要更多地考慮兼容 性。
[0005] 在嵌入式應(yīng)用中,數(shù)據(jù)處理芯片發(fā)揮著重要的作用,如CPU、GPU、DSP等。在這里芯 片中,計算單元是核心部分,而計算單元的設(shè)計取決于其對應(yīng)的指令集系統(tǒng)。計算單元的效 率很大程度上取決于其設(shè)計的指令集效率。高效率的指令集設(shè)計不僅能夠提高數(shù)據(jù)處理速 度,而且能夠有效的降低功耗,提高資源的利用率。然而,目前針對嵌入式應(yīng)用設(shè)計的指令 集系統(tǒng)較少,大部分指令集都是由PC機中的芯片指令演化而來,效率較低。
【發(fā)明內(nèi)容】
[0006] 針對現(xiàn)有技術(shù)的不足,本發(fā)明提供一種用于嵌入式圖形處理器的指令集設(shè)計方 法,提高數(shù)據(jù)處理速度,降低功耗,提高資源利用率。
[0007] 本發(fā)明的技術(shù)方案如下:
[0008] 一種用于嵌入式圖形處理器的指令集設(shè)計方法,其特征在于,包括括如下4類指 令,其中,所述指令寬度為32位:
[0009] (1)浮點計算指令:浮點計算指令功能是完成浮點數(shù)的計算,所述浮點計算指令 包括指令類型標(biāo)識符、指令操作碼、兩個源操作數(shù)地址、一個目的操作數(shù)地址、以及目的操 作數(shù)通道選通控制位;
[0010] (2)特殊函數(shù)查找指令:特殊函數(shù)查找指令功能是完成特殊函數(shù)計算,所述特殊 函數(shù)查找指令包括指令類型標(biāo)識符、函數(shù)類型標(biāo)識符、一個源操作數(shù)地址、一個目的操作數(shù) 地址、查找結(jié)果控制位以及目的操作數(shù)通道選通控制位;
[0011] (3)寫入寄存器數(shù)據(jù)指令:寫入寄存器數(shù)據(jù)指令功能是將數(shù)據(jù)從存儲器中讀取并 寫入寄存器中,所述寫入寄存器數(shù)據(jù)指令包括指令類型標(biāo)識符、源操作數(shù)地址、目的操作數(shù) 地址以及目的操作數(shù)通道選通控制;
[0012] (4)讀取寄存器數(shù)據(jù)指令:讀取寄存器數(shù)據(jù)指令功能是將數(shù)據(jù)從寄存器中讀取并 寫入到存儲器中,所述讀取寄存器數(shù)據(jù)指令包括指令類型標(biāo)識符、源操作數(shù)地址以及目的 操作數(shù)地址。
[0013] 根據(jù)本發(fā)明優(yōu)選的,所述浮點計算指令的指令類型標(biāo)識符寬度為3位,指令操作 碼寬度為6位,兩個源操作數(shù)地址寬度均為8位,目的操作數(shù)地址寬度為3位,目的操作數(shù) 通道控制位寬度為4位。
[0014] 根據(jù)本發(fā)明優(yōu)選的,所述特殊函數(shù)查找指令的指令類型標(biāo)識符寬度為3位,函數(shù) 類型標(biāo)識符寬度為6位,源操作數(shù)地址寬度為8位,目的操作數(shù)地址寬度為8位,查找結(jié)果 控制位為3位,目的操作數(shù)通道控制位寬度為4位。
[0015] 根據(jù)本發(fā)明優(yōu)選的,所述寫入寄存器數(shù)據(jù)指令的指令類型標(biāo)識符寬度為3位,源 操作數(shù)地址寬度為16位,目的操作數(shù)地址寬度為8位,目的操作數(shù)通道選通控制位寬度為 4位,剩下的位作為保留位,寬度為1位。
[0016] 根據(jù)本發(fā)明優(yōu)選的,所述讀取寄存器數(shù)據(jù)指令的指令類型標(biāo)識符寬度為3位,源 操作數(shù)地址寬度為8位,目的操作數(shù)地址寬度為16位。剩下的位作為保留位,寬度為5位。
[0017] 根據(jù)本發(fā)明優(yōu)選的,所述浮點計算指令的源操作數(shù)和目的操作數(shù)的寬度都是128 位,包括4個通道,所述每個通道由32位的單精度浮點數(shù)表示,浮點計算指令包括如下功 能:
[0018] (1)浮點加法:浮點加法操作是對兩個源操作數(shù)中的對應(yīng)浮點數(shù)進(jìn)行相加,其過 程如下所示:
[0019] [Six, Sly, Slz, Slw] +[S2x, S2y,S2z,S2w] = [Slx+S2x, Sly+S2y, Slz+S2z,Slw+S 2w]
[0020] 其中,3&、517、512、51?分別表示源操作數(shù)1的4個通道數(shù)據(jù),521、527、522、52¥ 分別表示源操作數(shù)2的4個通道數(shù)據(jù),4個通道的計算結(jié)果分別保存到目的操作數(shù)的4個通 道中;
[0021] (2)浮點乘法:浮點乘法操作是對兩個源操作數(shù)中的對應(yīng)浮點數(shù)進(jìn)行浮點乘法, 其過程如下所示:
[0022] [Six, Sly, Slz, Slw]*[S2x, S2y, S2z, S2w] = [Slx*S2x, Sly*S2y, Slz*S2z, Slw*S 2w]
[0023] 其中,4個通道的計算結(jié)果分別保存到目的操作數(shù)的4個通道中;
[0024] (3)向量點乘:向量點乘操作是在浮點乘法的基礎(chǔ)上對結(jié)果進(jìn)行相加,其計算結(jié) 果為32位的單精度浮點數(shù),如下所示:
[0025] ResMADD = [Slx*S2x+Sly*S2y+Slz*S2z+Slw*S2w]
[0026] 由于計算結(jié)果是單通道數(shù)據(jù),而目的操作數(shù)是4通道的,因此需要將結(jié)果復(fù)制到 其余3個通道中,其中每個通道的結(jié)果都是一致的,如下所示:
[0027] [ResMADD, ResMADD, ResMADD, ResMADD]
[0028] (4)求最大值和最小值:
[0029] 求最大值操作是選出兩個浮點操作數(shù)中較大的值作為計算結(jié)果保存到目的操作 數(shù)中:
[0030] Max[Six, Sly, Slz, Slw, S2x, S2y, S2z,S2w] = {Max_x, Max_y, Max_z, Max_w}
[0031] 求最小值操作是選出兩個浮點操作數(shù)中較小的值作為計算結(jié)果保存到目的操作 數(shù)中:
[0032] Min [Six, Sly, Slz, Slw, S2x, S2y, S2z, S2w] = {Min_x, Min_y, Min_z, Min_w};
[0033] 上述兩種操作都是對源操作數(shù)的4個通道分別進(jìn)行比較,輸出結(jié)果分別保存到目 的操作數(shù)中;
[0034] (5)取整數(shù):取整數(shù)操作是對源操作數(shù)中的4個通道浮點數(shù)保留整數(shù)部分,并將整 數(shù)結(jié)果保存到對應(yīng)的目的操作數(shù)通道中;
[0035] (6)取小數(shù):取小數(shù)操作是對源操作數(shù)中的4個通道浮點數(shù)保留小數(shù)部分,并將小 數(shù)結(jié)果保存到對應(yīng)的目的操作數(shù)通道中。
[0036] 根據(jù)本發(fā)明優(yōu)選的,所述特殊函數(shù)查找指令采用查找表方式計算特殊函數(shù),包括 如下函數(shù)的查找:
[0037] (1)浮點倒數(shù)的查找;
[0038] (2)浮點指數(shù)的查找;
[0039] (3)浮點對數(shù)的查找;
[0040] (4)浮點平方根的查找。
[0041] 根據(jù)本發(fā)明優(yōu)選的,所