一種支持多種數據類型的單指令多數據算術單元,包括N個原子運算陣列,原子運算陣列包括:操作數準備單元,用于依據輸入的操作類型與數據類型信息,對輸入的源操作數進行操作,輸出中間操作數;加法運算單元,用于接收中間操作數,完成加法運算,輸出加法運算結果;舍入操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行舍入操作,輸出舍入操作結果;飽和操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行飽和操作,輸出飽和操作結果;結果封裝單元,用于選擇舍入操作單元或者飽和操作單元的輸出結果,依據數據類型信息將中間結果封裝為最終數據。本發明專利技術能有效支持多種數據寬度、適用性良好。
【技術實現步驟摘要】
本專利技術涉及多媒體運算部件,尤其是一種算術單元。
技術介紹
多媒體應用通常指針對多媒體對象如文本、音頻、靜態圖像、二維圖形、三維圖形、動畫以及全動態視頻等的捕捉、存儲、變換、傳輸、編解碼等操作。多媒體信號,其最大特點反應在于小的數據位寬,大的數據吞吐量。單指令多數據(SMD)技術是指通過一個控制器同時控制兩個或者多個平行的處理微元來實現多數據流運算,其并行性體現在能夠利用一條指令實現對多個位寬較小的數據單元并行完成同一種操作,從而在時間上實現并行運算。現有的一個40位算術運算單元大多只能一次實現一個32位的運算或者I個16位的運算或者I個8位的運算,這樣雖然實現簡單,但是對多媒體應用的低數據位寬,大數據吞吐量特征沒有很好的處理效率,通常認為采用SMD技術可以極大地提高相應多媒體處理應用程序的并行度,提高運算單元的多媒體處理性能,所以需要設計一種單指令多數據算術運算單元。由于視頻、音頻、圖像的數據寬度不一樣,而且隨著多媒體技術的發展,可以預計在將來會有更多種的數據寬度需要支持,而當前的SIMD運算單元大多只支持一種數據寬度,或者8位,或者16位,對于多媒體應用的加速不具有普遍性,所以需要設計一種操作數長度可變的SIMD算術單元。
技術實現思路
為了克服已有算術單元的不能支持多種數據寬度、適用性較差的不足,本專利技術提供一種能有效支持多種數據寬度、適用性良好的支持多種數據類型的單指令多數據算術單J Li ο本專利技術解決其技術問題所采用的技術方案是:一種支持多種數據類型的單指令多數據算術單元,所述算術單元包括N個原子運算陣列,N為任意正整數,每個原子運算陣列使用一個加法器實現多種位寬的數據的算術運算,所述原子運算陣列包括:操作數準備單元,用于依據輸入的操作類型與數據類型信息,對輸入的源操作數進行取反、符號位擴展、位寬擴展與進位擴展操作,輸出中間操作數;加法運算單元,用于接收來自操作數準備單元的中間操作數,完成加法運算,輸出加法運算結果;舍入操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行舍入操作,輸出舍入操作結果;飽和操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行飽和操作,輸出飽和操作結果;結果封裝單元,用于依據操作類型與數據類型信息,選擇舍入操作單元或者飽和操作單元的輸出結果,并依據數據類型信息,將中間結果封裝為最終數據。進一步,所述算術單元支持有符號數與無符號數運算,支持不同元素寬度的運算,所述元素寬度包括字、半字或字節。優選的,所述操作數準備單元中,取反操作以元素為單位,依據操作類型對源操作數進行取反操作;若為加法運算,保持第一操作數與第二操作數不變;若為減法運算,保持第一操作數不變,對第二源操作數取反;若為絕對值運算則依據數據的符號位對負操作數取反,對正操作數保持不變。再進一步,所述操作數準備單元中,符號位擴展操作對第一源操作數和第二源操作數以元素為單位進行符號位擴展;對于有符號數,在每個元素的最高位擴展一位符號位,對于無符號數,在每個元素的最高位補一位O。更進一步,所述操作數準備單元中,位寬擴展操作依據操作類型與數據類型信息以元素為單位對第一源操作數或者第二源操作數擴展一倍位寬。所述操作數準備單元中,在第一操作數與第二操作數每個元素的最低位擴展一位進位擴展位,對于減法操作,進位擴展操作在第一源操作數和第二源操作數的每元素最低位擴展為1,與取反操作數準備一起構成對減數的取補碼操作;對于加法運算,進位擴展操作在第一源操作數和第二源操作數的每元素最低位擴展為O。所述加法運算單元僅包含一個加法器,根據操作數的類型,對加法操作數的每個元素都增加一位精度擴展位,記錄加法操作數的首位進位運算結果,得到一個擴展中間數據,從而隔離數據的進位,并在運算最后舍去進位擴展位,獲得一個加法運算結果。所述舍入操作單元僅包含I個減法器,實現不同位寬的數據的舍入操作。所述飽和操作單元中,依據數據類型信息,以元素為單位利用加法運算單元結果和符號位擴展運算結果對加法運算結果進行飽和運算,表現為如果上溢出,取最大值,下溢出,取最小值,其它情況運算結果保持不變。所述結果封裝單元中,根據指令類型信息,選取舍入操作單元或者飽和操作單元的結果,并依據數據類型信息,封裝成為最終的運算結果。本專利技術的有益效果主要表現在:能有效支持多種數據寬度、適用性良好。附圖說明圖1是單指令多數據(SMD)算術單元結構框圖。圖2是原子運算單元結構框圖。圖3是操作數準備單元結構框圖。圖4是8位操作數擴展示意圖。圖5是16位操作數擴展示意圖。圖6是32位操作數擴展示意圖。圖7是加法操作數準備示意圖。圖8是舍入操作單元流程示意圖。圖9是飽和操作單元流程示意圖。具體實施例方式下面結合附圖對本專利技術作進一步描述。參照圖1 圖9,一種支持多種數據類型的單指令多數據算術單元,所述算術單元包括N個原子運算陣列(11 ),N為任意正整數,每個原子運算陣列使用一個加法器實現多種位寬的數據的算術運算,所述原子運算陣列(11)包括:操作數準備單元(21),用于依據輸入的操作類型與數據類型信息,對輸入的源操作數進行取反、符號位擴展、位寬擴展與進位擴展操作,輸出中間操作數;加法運算單元(22),用于接收來自操作數準備單元的中間操作數,完成加法運算,輸出加法運算結果;舍入操作單元(23),用于依據輸入的操作類型與數據類型信息,對加法運算結果進行舍入操作,輸出舍入操作結果;飽和操作單元(24),用于依據輸入的操作類型與數據類型信息,對加法運算結果進行飽和操作,輸出飽和操作結果;結果封裝單元(25),用于依據操作類型與數據類型信息,選擇舍入操作單元或者飽和操作單元的輸出結果,并依據數據類型信息,將中間結果封裝為最終數據。典型地,需要進行算術運算的2個32位操作數首先被送入操作數準備單元,產生相應的40位中間操作數,然后通過加法運算單元完成結果運算,再根據指令的類型選擇舍入操作單元和飽和操作單元進行相應的操作,生成40位運算結果,最后將40位運算結果通過結果封裝單元封裝成最終結果。所述算術單元支持有符號數與無符號數運算,支持不同元素寬度的運算,支持的典型元素寬度為字、半字、字節。所述操作數準備單元(21)中,取反操作以元素為單位,依據操作類型對源操作數進行取反操作。若為加法運算,保持第一操作數與第二操作數不變;若為減法運算,保持第一操作數不變,對第二源操作數取反;若為絕對值運算則依據數據的符號位對負操作數取反,對正操作數保持不變。所述操作數準備單元(21)中,符號位擴展操作對第一源操作數和第二源操作數以元素為單位進行符號位擴展。對于有符號數,在每個元素的最高位擴展一位符號位,對于無符號數,在每個元素的最高位補一位O。所述操作數準備單元(21)中,位寬擴展操作依據操作類型與數據類型信息以元素為單位對第一源操作數或者第二源操作數擴展一倍位寬。所述操作數準備單元(21)中,在第一操作數與第二操作數每個元素的最低位擴展一位進位擴展位,對于減法操作,進位擴展操作在第一源操作數和第二源操作數的每元素最低位擴展為1,與取反操作數準備一起構成對減數的取補碼操作;對于加法運算,進位擴展操作在第一源操作數和第二源操作數的每元素最低位擴展為O。所述加法運算單元(22)僅包含一個加法本文檔來自技高網...
【技術保護點】
一種支持多種數據類型的單指令多數據算術單元,其特征在于:所述算術單元包括N個原子運算陣列,N為任意正整數,每個原子運算陣列使用一個加法器實現多種位寬的數據的算術運算,所述原子運算陣列包括:操作數準備單元,用于依據輸入的操作類型與數據類型信息,對輸入的源操作數進行取反、符號位擴展、位寬擴展與進位擴展操作,輸出中間操作數;加法運算單元,用于接收來自操作數準備單元的中間操作數,完成加法運算,輸出加法運算結果;舍入操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行舍入操作,輸出舍入操作結果;飽和操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行飽和操作,輸出飽和操作結果;結果封裝單元,用于依據操作類型與數據類型信息,選擇舍入操作單元或者飽和操作單元的輸出結果,并依據數據類型信息,將中間結果封裝為最終數據。
【技術特征摘要】
1.一種支持多種數據類型的單指令多數據算術單元,其特征在于:所述算術單元包括N個原子運算陣列,N為任意正整數,每個原子運算陣列使用一個加法器實現多種位寬的數據的算術運算,所述原子運算陣列包括: 操作數準備單元,用于依據輸入的操作類型與數據類型信息,對輸入的源操作數進行取反、符號位擴展、位寬擴展與進位擴展操作,輸出中間操作數; 加法運算單元,用于接收來自操作數準備單元的中間操作數,完成加法運算,輸出加法運算結果; 舍入操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行舍入操作,輸出舍入操作結果; 飽和操作單元,用于依據輸入的操作類型與數據類型信息,對加法運算結果進行飽和操作,輸出飽和操作結果; 結果封裝單元,用于依據操作類型與數據類型信息,選擇舍入操作單元或者飽和操作單元的輸出結果,并依據數據類型信息,將中間結果封裝為最終數據。2.按權利要求1所述的支持多種數據類型的單指令多數據算術單元,其特征在于:所述算術單元支持有符號數與無符號數運算,支持不同元素寬度的運算,所述元素寬度包括字、半字或字節。3.按權利要求1或2所述的支持多種數據類型的單指令多數據算術單元,其特征在于:所述操作數準備單元中,取反 操作以元素為單位,依據操作類型對源操作數進行取反操作;若為加法運算,保持第一操作數與第二操作數不變;若為減法運算,保持第一操作數不變,對第二源操作數取反;若為絕對值運算則依據數據的符號位對負操作數取反,對正操作數保持不變。4.按權利要求1或2所述的支持多種數據類型的單指令多數據算術單元,其特征在于:所述操作數準備單元中,符號位擴展操作對第一源操作數和第二源操作數以元素為單位進行符號位擴展;對于有符號數,在每個元素的最高位擴展一位符號位,對于無符號數,在...
【專利技術屬性】
技術研發人員:嚴曉浪,仇徑,孟建熠,陳志堅,
申請(專利權)人:浙江大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。