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