實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及微處理器體系結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及一種實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置。
【背景技術(shù)】
[0002]隨著數(shù)字通信技術(shù)的快速發(fā)展,對數(shù)字信號處理能力的要求也越來越高,因此需要不斷提升數(shù)字信號處理能力。而傳統(tǒng)的運算方式采用標量計算單元,運算速度慢,執(zhí)行周期長,對數(shù)字信號處理效率低下。
【發(fā)明內(nèi)容】
[0003]本發(fā)明旨在至少在一定程度上解決上述相關(guān)技術(shù)中的技術(shù)問題之一。
[0004]為此,本發(fā)明的目的在于提出一種實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置,該裝置利用了向量數(shù)據(jù)的并行計算特性,可以同時進行多個浮點數(shù)據(jù)的計算,相比較傳統(tǒng)的標量計算單元,加快了運算速度,減少了執(zhí)行周期。
[0005]為了實現(xiàn)上述目的,本發(fā)明的實施例提出了一種實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置,包括向量寄存器組,包含至少一個向量寄存器,其中,每個向量寄存器保存有多個浮點數(shù)據(jù);一組浮點數(shù)的數(shù)據(jù)選擇器,用于將從所述向量寄存器中讀出的數(shù)據(jù)改變順序后送入浮點超越函數(shù)計算單元;一組浮點超越函數(shù)計算單元,用于進行單精度的浮點超越函數(shù)運算,以及進行基2的浮點指數(shù)或?qū)?shù)運算,所述浮點超越函數(shù)計算單元的數(shù)目與所述向量寄存器內(nèi)的浮點數(shù)據(jù)的數(shù)目相等;以及控制邏輯單元,用于控制所述一組數(shù)據(jù)選擇器的數(shù)據(jù)選擇,以及控制所述浮點超越函數(shù)計算單元的操作功能選擇。
[0006]根據(jù)本發(fā)明實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置,從保存浮點復數(shù)的向量寄存器中讀出數(shù)據(jù),送入數(shù)據(jù)選擇器中,數(shù)據(jù)選擇器將向量內(nèi)部的數(shù)據(jù)重新排列送到浮點超越函數(shù)計算單元,浮點超越函數(shù)計算單元根據(jù)數(shù)據(jù)選擇器的結(jié)果進行基2指數(shù)對數(shù)計算,最后向量寄存器保存執(zhí)行單元的輸出。因此,該裝置利用了向量數(shù)據(jù)的并行計算特性,可以同時進行多個浮點數(shù)據(jù)的計算,相比較傳統(tǒng)的標量計算單元,加快了運算速度,減少了執(zhí)行周期。
[0007]另外,根據(jù)本發(fā)明上述實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置還可以具有如下附加的技術(shù)特征:
[0008]在一些不例中,所述向量寄存器組包含多個向量寄存器,每個向量寄存器可包含多個單精度的浮點數(shù)據(jù)。
[0009]在一些示例中,所述浮點數(shù)據(jù)為單精度浮點數(shù)據(jù)。
[0010]在一些示例中,所述控制邏輯單元用于確定所述數(shù)據(jù)選擇器的數(shù)據(jù)選擇通道和浮點超越函數(shù)計算單元的輸入端口的連接關(guān)系,以及浮點超越函數(shù)計算單元工作模式。
[0011]在一些示例中,每個浮點超越函數(shù)計算單元的結(jié)構(gòu)都是相同的,均采用浮點cordic算法實現(xiàn)計算。
[0012]在一些示例中,每個所述浮點超越函數(shù)計算單元完成1個32位的單精度浮點數(shù)的指數(shù)對數(shù)計算。
[0013]在一些示例中,所述控制邏輯單元用于執(zhí)行以下步驟:(1)從保存浮點數(shù)的所述向量寄存器組讀出一組數(shù)據(jù),每個寄存器包含多個浮點數(shù);(2)通過所述數(shù)據(jù)選擇器將每個浮點數(shù)分別提取出來,將不同浮點數(shù)送到每個浮點超越函數(shù)計算單元;(3)所述浮點超越函數(shù)計算單元根據(jù)操作類型進行單精度浮點數(shù)運算;(4)將各個所述浮點超越函數(shù)計算單元的運算結(jié)果保存到一個向量寄存器中。
[0014]本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0015]本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變得明顯和容易理解,其中:
[0016]圖1是根據(jù)本發(fā)明一個實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置的結(jié)構(gòu)框圖;
[0017]圖2是根據(jù)本發(fā)明另一個實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置的運算功能框圖。
【具體實施方式】
[0018]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。
[0019]以下結(jié)合附圖描述根據(jù)本發(fā)明實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置。
[0020]圖1是根據(jù)本發(fā)明一個實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置的結(jié)構(gòu)框圖。如圖1所示,該裝置100包括:向量寄存器組110、一組浮點數(shù)的數(shù)據(jù)選擇器120、一組浮點超越函數(shù)計算單元130和控制邏輯單元140。
[0021]具體地,向量寄存器組110包含至少一個向量寄存器,其中,每個向量寄存器保存有多個浮點數(shù)據(jù)。其中,在本發(fā)明的一個實施例中,浮點數(shù)據(jù)例如為單精度浮點數(shù)據(jù)或雙精度浮點數(shù)據(jù)。更為具體地,在該示例中,例如向量寄存器組110包含多個向量寄存器,并且每個向量寄存器可包含多個單精度的浮點數(shù)據(jù)。進一步地,浮點數(shù)據(jù)保存在同一個寄存器中,它們的讀出是同時進行的,也可以是先后讀出的。而對于結(jié)果的寫入,可以在同一個寄存器中,也可以在不同的寄存器中。
[0022]—組浮點數(shù)的數(shù)據(jù)選擇器120用于將從向量寄存器中讀出的數(shù)據(jù)改變順序后送入浮點超越函數(shù)計算單元130。
[0023]—組浮點超越函數(shù)計算單元130用于進行單精度的浮點超越函數(shù)運算,以及進行基2的浮點指數(shù)或?qū)?shù)運算,浮點超越函數(shù)計算單元130的數(shù)目與向量寄存器內(nèi)的浮點數(shù)據(jù)的數(shù)目相等。在一些示例中,例如,每個浮點超越函數(shù)計算單元130的結(jié)構(gòu)都是相同的,均采用浮點cordic算法實現(xiàn),例如圖2所示。更為具體地,每個浮點超越函數(shù)計算單元130完成1個32位的單精度浮點數(shù)的指數(shù)對數(shù)計算。
[0024]控制邏輯單元140用于控制一組數(shù)據(jù)選擇器的數(shù)據(jù)選擇,以及控制浮點超越函數(shù)計算單元130的操作功能選擇。更為具體地,在一些示例中,控制邏輯單元140用于確定數(shù)據(jù)選擇器120的數(shù)據(jù)選擇通道和浮點超越函數(shù)計算單元130的輸入端口的連接關(guān)系,以及浮點超越函數(shù)計算單元130的工作模式。
[0025]在本發(fā)明的一個實施例中,具體地說,控制邏輯單元140主要用于執(zhí)行以下步驟:
[0026]步驟1:從保存浮點數(shù)的向量寄存器組110讀出一組數(shù)據(jù),每個向量寄存器包含多個浮點數(shù)。也即操作數(shù)據(jù)準備階段,例如從一個向量寄存器中取出一組數(shù)據(jù)。
[0027]步驟2:通過數(shù)據(jù)選擇器120將每個浮點數(shù)分別提取出來,將不同浮點數(shù)送到每個浮點超越函數(shù)計算單元130。也即操作數(shù)據(jù)選擇階段,例如根據(jù)接收到的運算操作指令,以32位為單位組成送入到浮點超越函數(shù)計算單元130的操作數(shù)。
[0028]步驟3:浮點超越函數(shù)計算單元130根據(jù)操作類型(指數(shù)函數(shù)/對數(shù)函數(shù))進行單精度浮點數(shù)運算。其中,有多個單精度浮點數(shù)在同時進行運算操作。也即根據(jù)送入的操作編碼,對32位單精度浮點數(shù)進行相應的cordic計算。
[0029]步驟4:將各個浮點超越函數(shù)計算單元130的運算結(jié)果保存到一個向量寄存器中。換言之,即將每個浮點超越函數(shù)計算單元130得到的一個32位單精度浮點數(shù)組合成向量數(shù)據(jù),寫回到向量寄存器中。
[0030]其中,對于上述的浮點超越函數(shù)計算單元130,當向量寄存器組120為256位寬時,浮點超越函數(shù)計算單元130并行執(zhí)行8個單精度浮點數(shù)的運算。
[0031]作為具體地示例,以下結(jié)合圖2詳細描述本發(fā)明上述實施例的實現(xiàn)向量浮點基2指數(shù)對數(shù)計算的裝置100。
[0032]如圖2所示,以操作數(shù)為256位為例詳細描述浮點數(shù)向量基2指數(shù)函數(shù)運算的操作流程,具體包括:從向量寄存器中取得一個256位的向量浮點數(shù)數(shù)據(jù),計算模塊由8個32位的浮點超越函數(shù)計算單元構(gòu)成。也即,經(jīng)過浮點數(shù)的數(shù)據(jù)選擇器將選擇好的每個32位的源操作數(shù)送到相應的浮點超越函數(shù)計算單元中去。控制邏輯單元根據(jù)送入的操作信息,給出每個浮點超越函數(shù)計算單元的控制信號。然后浮點超越函數(shù)計算單元根據(jù)控制信號對操作數(shù)做相應的操作,并且各個浮點超越函數(shù)計算單元的運算結(jié)果拼成256位輸出。
[0033]以下作為一個具體地示例,描述256位單精度浮點基2指數(shù)函數(shù)運算計算過程。假定要進行指數(shù)函數(shù)運算的一個向量寄存器中的浮點數(shù)分別為x7, x6, x5, x4, x3, x2, xl, x0。假定當前需要完成單精度浮點基2指數(shù)函數(shù)運算操作,其操作結(jié)果為y7, y6, y5, y4, y3, y2, yl, y0,并且其運算操作為y[n] = 2' (x [n]),則執(zhí)行以下步驟:
[0034]步驟10:將向量指數(shù)函數(shù)運算操作送入到控制邏輯單元中,生成數(shù)據(jù)通路的數(shù)據(jù)選擇控制信號,同時生成浮點超越函數(shù)計算單元的操作控制信號。
[0035]步驟20:浮點數(shù)的數(shù)據(jù)選擇器根據(jù)送入的單精度操作信號選擇好每個32位的源數(shù)據(jù)送到相應的浮點超越函數(shù)計算單元中去。
[0036]步驟30:浮點超越函數(shù)計算單元根據(jù)控制邏輯單元送入的函數(shù)操作等相關(guān)的控制信號,完成對操作數(shù)的指數(shù)函數(shù)運算。具體地,例如:
[0037]第一個浮點超越函數(shù)計算單元的操作數(shù)為xO,控制指令信號為指數(shù)函數(shù)計算;
[0038]第二個浮點超越函數(shù)計算單元的操作數(shù)為xl,控制指令