述隨機數(shù)則輸出1,否則輸出0,其中數(shù)值0或1定義32位定點數(shù)的輸出。
[0032]本發(fā)明的處理數(shù)據(jù)的方法,其中,所述線性差值運算步驟可以選擇加載插值表模式和線性插值模式,
[0033]所述加載差值表模式,根據(jù)所述線性差值模塊的控制信號,判斷正在加載的插值表屬于激活函數(shù)插值器還是導(dǎo)數(shù)插值器,同時根據(jù)該控制信號判斷正在加載的操作數(shù)表示差值表的哪一部分;
[0034]所述線性插值模式,使插值器根據(jù)輸入信號X的操作數(shù)選擇插值表中的一組斜率a和截距b,然后根據(jù)表達式y(tǒng) = a*x+b求得插值結(jié)果,其中y表示差值。
[0035]此外,本發(fā)明還提供一種包括上述任一所述流水級運算裝置的片上網(wǎng)絡(luò)芯片。
[0036]本發(fā)明的效果如下:
[0037]由于一種神經(jīng)網(wǎng)絡(luò)加速器流水級運算裝置,因此能加速神經(jīng)網(wǎng)絡(luò)算法運算,同時由于此裝置能在一個時間節(jié)拍中并行處理數(shù)據(jù),大大提高了加速器運算能力;由于神經(jīng)網(wǎng)絡(luò)加速器流水級運算裝置每個流水級各自進行神經(jīng)網(wǎng)絡(luò)算法部分計算,因此可在每一個時間節(jié)拍計算出一組神經(jīng)元值。
【附圖說明】
[0038]圖1示出了本發(fā)明的流水級運算裝置的三級流水結(jié)構(gòu)圖。
[0039]圖2示出了本發(fā)明實施方式的流水級a的模塊示意圖,包括流水級a的主要輸入輸出接口以及控制信號接口。
[0040]圖3示出了本發(fā)明實施方式的流水級aj的模塊示意圖,包括流水級a j的主要輸入輸出接口以及控制信號接口。
[0041]圖4示出了本發(fā)明實施方式的流水級a_2的模塊示意圖,包括流水級a_2的主要輸入輸出接口以及控制信號接口。
[0042]圖5示出了本發(fā)明實施方式的流水級b的模塊示意圖,包括流水級b的主要輸入輸出接口以及控制信號接口。
[0043]圖6示出了本發(fā)明實施方式的流水級c的模塊示意圖,包括流水級c的主要輸入輸出接口以及控制信號接口。
[0044]圖7示出了本發(fā)明的處理數(shù)據(jù)的方法的流程圖。
[0045]圖8示出了本發(fā)明的包括流水級運算裝置的片上網(wǎng)絡(luò)芯片。
[0046]附圖標(biāo)記說明
[0047]100—級流水模塊;200 二級流水模塊;300三級流水模塊;110第一流水級模塊;210第二流水級模塊;310第三流水級模塊;120第一輸入緩存寄存器;130第一輸出緩存寄存器;220第二緩存寄存器;320第三緩存寄存器;1 clock(時鐘信號端口);2 reset(復(fù)位信號端口);3 inputa(輸入端口a) ;4 inputb(輸入端口b) ;5 inputc(輸入端口c) ;6 op(操作碼控制信號端口);7 pipeline_en(流水級使能標(biāo)志位);8 results(第一流水運算結(jié)果);9maxjndex(最大值索引);10 inputa(輸入端口a); 11 inputb(輸入端口 b); 12 inputc(輸入端口 c); 13 sub_flag(減使能);14 flag(累加使能);15 results(運算結(jié)果);16 clock(時鐘信號端口);17 reset(復(fù)位信號端口); 18 inputa(輸入端口a); 19 inputb(輸入端口b) ;20 inputc(輸入端口c);21 begin_flag(pooling開始標(biāo)志位);22 pooling_type(最大索引模塊操作碼);23 pooling_en(最大索引模塊使能);24 sub_results ; 25 maxjndex(最大值索引);26 clock(時鐘信號端口);27 reset(復(fù)位信號端口);28 active_op(第二流水級操作碼);29 x(輸入數(shù)據(jù)x(局部誘導(dǎo)域));30 operand(協(xié)助操作數(shù));31 act_flag(加載激活函數(shù)插值表標(biāo)志位);32 der_flag(加載導(dǎo)數(shù)插值表標(biāo)志位);33 table_ld_oder(插值表加載順序);34 active_results(激活函數(shù)插值結(jié)果);35 der_result(導(dǎo)數(shù)插值結(jié)果);36 inputa(第三流水級輸入端口a) ;37 inputb(第三流水級輸入端口b);38 inputc(第三流水級輸入端口c);39 op(第三流水級操作碼);40 results(第三流水運算結(jié)果)。
【具體實施方式】
[0048]本發(fā)明的流水級運算裝置包括一流水級設(shè)計電路,該電路包含若干輸入與若干輸出。該電路主要設(shè)有時鐘信號輸入口 clock、復(fù)位信號輸入端口reset、3組表示代表32個16位寬的數(shù)據(jù)輸入端口 inputa、inputb、inputc,輸出數(shù)組512位寬的輸出results、輸出數(shù)據(jù)512位寬的max_index,其表示模塊對輸入進行最大索引值的輸出。
[0049]為了提高芯片的頻率與高吞吐量,將流水級運算裝置切分為3級流水模式,流水級a(相當(dāng)于權(quán)利要求中的第一流水級模塊)、流水級b(相當(dāng)于權(quán)利要求中的第二流水級模塊)、流水級c(相當(dāng)于權(quán)利要求中的第三流水級模塊)。
[0050]流水級a,主要對輸入數(shù)據(jù)最大值索引以及輸入數(shù)據(jù)進行向量加法或減法輸出,或者根據(jù)最大索引值max_index,使之后連續(xù)N個時鐘周期的運算中在第max_index個時鐘周期第一輸出流水級的輸出數(shù)據(jù)等于輸入數(shù)據(jù),其余N-1個時鐘周期的輸出數(shù)據(jù)為0,其中N和max_index均為正整數(shù)且N不小于max_index。流水級a輸入輸出各設(shè)有一緩存寄存器reg_a_1(相當(dāng)于權(quán)利要求中的第一輸入緩存寄存器模塊)、reg_a_2(相當(dāng)于權(quán)利要求中的第一輸出緩存寄存器模塊),兩組緩存寄存器reg用于存儲流水級a的運算結(jié)果以及控制指令。流水級a與reg_a_l、reg_a_2構(gòu)成一級流水。
[0051 ]流水級b,主要對上級輸入數(shù)據(jù)進行導(dǎo)數(shù)值的求解以及激活函數(shù)的求解,并輸出計算結(jié)果。流水級b輸出設(shè)有一緩存寄存器reg_b(相當(dāng)于權(quán)利要求中的第二緩存寄存器模塊),緩存寄存器^8_13用于存儲流水級b的運算結(jié)果以及控制指令,流水級b以及緩存寄存器reg_b構(gòu)成二級流水。
[0052]流水級c,主要對上級輸入數(shù)據(jù)進行乘法與加法的操作,并輸出計算結(jié)果。流水級c輸出設(shè)有一緩存寄存器reg_c(相當(dāng)于權(quán)利要求中的第三緩存寄存器模塊),緩存寄存器于存儲流水級c的運算結(jié)果以及控制指令,流水級c與緩存寄存器reg_c構(gòu)成三級流水。
[0053]根據(jù)處理數(shù)據(jù)的要求,將流水級a主要切分為兩個子模塊流水級&_1(相當(dāng)于權(quán)利要求中的加減操作模塊)和32個流水級&_2子模塊(相當(dāng)于權(quán)利要求中的最大索引值選擇模塊)。
[0054]所述子模塊流水級a_l,含有若干輸入與輸出,主要包括三組表示32個16位寬的數(shù)據(jù)輸入,控制信號^38、81*_^&8,表示32個16位寬的數(shù)據(jù)輸出。
[0055]子模塊流水級a_l在控制型號的作用下,對三輸入512位寬的數(shù)據(jù)進行向量的加或減的操作,操作得到結(jié)果作為512位寬的數(shù)據(jù)輸出。
[0056]所述的子模塊流水級a_2,含有若干輸入與輸出,主要包含3組15位寬的輸入數(shù)據(jù)、控制信號、輸出15位寬的數(shù)據(jù)。
[0057]根據(jù)功能的要求,所述的子模塊流水級&_2,又可以切分為三個子模塊a_2_l、a_2_2、a_2_30
[0058]所述的子模塊流水級a_2能夠完成對一個feature_map神經(jīng)元進行的pooling正向以及反向的基本操作。流水級a_2_l能夠?qū)斎霐?shù)據(jù)以及結(jié)果寄存器取較大的值。流水級&_2_2,根據(jù)最大索引值maxjndex,使當(dāng)前時鐘周期之后的連續(xù)N個時鐘周期的運算中在第maxjndex個時鐘周期第一輸出流水級的輸出數(shù)據(jù)等于輸入數(shù)據(jù),其余N-1個時鐘周期的輸出數(shù)據(jù)為0,其中N和max_index均為正整數(shù)且N不小于max_index,例如,對三組16位輸入數(shù)據(jù),若inputa與inputb相等,則輸出inputc,否則輸出0。流水級a_2_3能夠?qū)⑤斎雐nputa與結(jié)果寄存器累加,并作為結(jié)果輸出。
[0059]所述的流水級b,其含有若干輸入與輸出,其中輸入X表示32個16位寬的數(shù)據(jù)輸入,為進行求激活函數(shù)、導(dǎo)數(shù)或采樣值得到的輸入。Operand表示32個16位寬的數(shù)據(jù)輸入,為加載激活函數(shù)或?qū)?shù)插值表的部分。active_