本發(fā)明涉及電子信息技術(shù),尤其涉及一種基于點緩存機制的多標量乘法加速方法及其硬件加速器。
背景技術(shù):
1、針對零知識證明計算,現(xiàn)有技術(shù)有采用pippenger算法將多標量乘法化解為大量的橢圓曲線點加運算,通過逐個點加運算得到多標量乘法計算結(jié)果。雖然這種方法可在不增大芯片面積的情況下,將多個橢圓曲線點加架構(gòu)集成到一個點加運算電路,實現(xiàn)只需一個點加運算硬件電路即可對橢圓曲線多標量乘法進行加速計算,但這種方法仍然存在可繼續(xù)優(yōu)化空間。
技術(shù)實現(xiàn)思路
1、為了進一步提高多標量乘法的計算速度,本案目的在于提出一種基于點緩存機制的多標量乘法加速方法及其硬件加速器。
2、為了實現(xiàn)上述技術(shù)目的,本案提出的一種基于點緩存機制的多標量乘法加速方法,其包括下述步驟:對多標量乘法中切分后的分塊標量向量,將其中值相同且距離最近的兩個非0標量,分別作為第一標量和第二標量,基于第一標量和第二標量的地址獲得第一條目;基于第一條目的第一標量地址在點緩存進行查詢,獲得結(jié)果為空,則將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存;基于第一條目的第一標量地址在點緩存進行查詢,獲得第一條目對應(yīng)的緩存條目,直接從緩存條目中獲得第一條目對應(yīng)的點加運算結(jié)果。
3、在上述技術(shù)方案中,值相同的且距離最近的兩個非0標量為點加運算中重復(fù)的操作數(shù)(橢圓曲線上的點),通過暫存已經(jīng)計算完成的橢圓曲線點加運算結(jié)果,在下次相同的兩個點再次需要進行點加運算時,可通過緩存命中,直接略過加運算而讀取對應(yīng)點緩存中的值作為這兩個點的計算結(jié)果。上述技術(shù)方案針對多標量乘法中的點加運算中存在大量的重復(fù)操作數(shù)的特點設(shè)計緩存機制,可實現(xiàn)有效減少多標量乘法計算過程中的點加運算次數(shù),提高計算速度。
4、在上述技術(shù)方案中的一種實施方式中,基于第一條目的第一標量地址,在點緩存中找到的緩存記錄與第一條目不匹配,對該緩存記錄進行覆蓋更新,或者不進行寫入點緩存操作。
5、在上述技術(shù)方案中的一種實施方式中,基于第一標量和第二標量的地址獲得第一條目,步驟包括:根據(jù)第一標量的值,將第一標量在標量向量中對應(yīng)的地址存入第一標量緩存桶;基于第二標量與第一標量值相等,將第二標量在標量向量中對應(yīng)的地址存入第一標量緩存桶;將[bktc,cl,c]作為一個條目,bktc為桶號,c1為第一標量地址,c為第二標量地址。
6、在上述技術(shù)方案中的一種實施方式中,在將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存之前,步驟包括:
7、利用fifocache槽位一邊緩存第一條目,一邊從fifocache中依次獲取第一條目;
8、基于獲取的第一條目的第一標量地址在點緩存進行查詢,在從點緩存中獲得第一條目對應(yīng)的緩存條目時,將第一條目從fifocache槽位刪除,在從點緩存中獲得結(jié)果為空時,將第一條目緩存在fifomiss中并將其所有條目逐一進行點加運算。其中,fifocache表示預(yù)緩存的先入先出,fifomiss表示未命中條目的先入先出。
9、在上述技術(shù)方案中的一種實施方式中,將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存,步驟包括:基于第一條目的第一標量地址作為點緩存的行索引index,將第二標量地址寫入點緩存的標簽tag,將第一條目中兩個標量對應(yīng)的點加運算結(jié)果寫入點緩存的數(shù)據(jù)部分data。
10、為了實現(xiàn)上述技術(shù)目的,本案提出的一種硬件加速器,所述硬件加速器包括標量感知分發(fā)器、點緩存模塊、點加運算單元;所述標量感知分發(fā)器,被配置為對多標量乘法中切分后的分塊標量向量,根據(jù)非0標量的值,將每個非0標量在標量向量中對應(yīng)的地址存入不同的標量緩存桶;在同一標量緩存桶中存在兩個標量地址時,將[bktc,cl,c]作為第一條目存入fifocache槽位中,bktc為桶號,cl為第一標量地址,c為第二標量地址;在fifocache中的一個條目與點緩存中的一個緩存條目匹配時,點緩存通知fifocache刪除該條目,否則將該條目緩存至fifomiss中;所述點加運算單元,被配置為能夠?qū)ifomiss中的第一條目進行點加運算;所述點緩存模塊,被配置為在基于第一條目的第一標量地址在點緩存進行查詢后獲得結(jié)果為空時,將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存,或者在基于第一條目的第一標量地址,在點緩存中找到的緩存記錄與第一條目不匹配時,對該緩存記錄進行覆蓋更新,或者在基于第一條目的第一標量地址,在點緩存中找到的緩存記錄與第一條目不匹配時,對該緩存記錄不更新。其中,fifocache表示預(yù)緩存的先入先出,fifomiss表示未命中條目的先入先出。
11、在上述技術(shù)方案中的一種實施方式中,所述硬件加速器還包括第一多路選擇器mux1、q2隊列、q3隊列;所述第一多路選擇器mux1,被配置從q2隊列或者q3隊列中接收數(shù)據(jù),將接收的數(shù)據(jù)送入點加運算單元,并優(yōu)先處理q3隊列中數(shù)據(jù);所述q2隊列將點緩沖模塊中輸出的數(shù)據(jù)進行緩沖,所述點緩沖模塊用于寫入點向量,所述點向量與標量緩沖中寫入的多標量乘法中切分后的分塊標量向量相對應(yīng);所述q3隊列用于將第三多路選擇器mux3輸出的數(shù)據(jù)進行緩沖;所述第三多路選擇器mux3同時輸出第二多路選擇器mux2輸出的數(shù)據(jù)和點加結(jié)果緩沖單元中的數(shù)據(jù),所述第二多路選擇器mux2用于q7隊列中的數(shù)據(jù)和q6隊列中的數(shù)據(jù)進行選擇,并將選擇的數(shù)據(jù)存入點加結(jié)果緩沖單元,或者輸出給第三多路選擇器mux3,所述q7隊列中的數(shù)據(jù)來自點加運算單元,所述q6隊列中的數(shù)據(jù)來自點緩存。
12、在上述技術(shù)方案中的一種實施方式中,所述硬件加速器還包括緩沖數(shù)據(jù)的q1隊列,q1隊列用于緩沖fifocache緩存中要使用的數(shù)據(jù)。
13、在上述技術(shù)方案中的一種實施方式中,所述硬件加速器還包括緩沖數(shù)據(jù)的q4隊列,q4隊列用于緩沖第一多路選擇器輸出的數(shù)據(jù)。
14、在上述技術(shù)方案中的一種實施方式中,所述硬件加速器還包括緩沖數(shù)據(jù)的q5隊列,q5隊列用于緩沖點加運算單元的點加運算結(jié)果且該點加運算結(jié)果為fifomiss中相關(guān)條目的對應(yīng)結(jié)果。
15、本案有益技術(shù)效果:本案方法以及基于該方法實現(xiàn)的硬件加速器,能夠有效移除多標量乘法計算過程存在的重復(fù)的點加運算,有效減少多標量乘法計算量,提高多標量乘法的計算速度。
1.一種基于點緩存機制的多標量乘法加速方法,其特征在于,所述方法包括下述步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于第一條目的第一標量地址,在點緩存中找到的緩存記錄與第一條目不匹配,對該緩存記錄進行覆蓋更新,或者不進行寫入點緩存操作。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,基于第一標量和第二標量的地址獲得第一條目,步驟包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存之前,步驟包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,將第一條目和第一條目中兩個標量對應(yīng)的點加運算結(jié)果在點緩存中進行緩存,步驟包括:
6.一種硬件加速器,其特征在于:
7.根據(jù)權(quán)利要求6所述的硬件加速器,其特征在于:
8.根據(jù)權(quán)利要求6所述的硬件加速器,其特征在于: