[發明專利]計算方法及裝置有效
| 申請號: | 201710270011.5 | 申請日: | 2017-04-24 |
| 公開(公告)號: | CN107066235B | 公開(公告)日: | 2021-05-14 |
| 發明(設計)人: | 楊帆 | 申請(專利權)人: | 北京華大信安科技有限公司 |
| 主分類號: | G06F7/523 | 分類號: | G06F7/523 |
| 代理公司: | 北京弘權知識產權代理有限公司 11363 | 代理人: | 逯長明;許偉群 |
| 地址: | 100015 北京市朝陽區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 計算方法 裝置 | ||
本發明實施例提供了一種計算方法及裝置。在本發明實施例中,按照第一預設順序依次將相鄰的兩個列組成列組,任意兩個列組中包括的列完全不同;對于每一個列組,將所述列組中的位于相同行的乘法組成行組;按照第二預設順序依次計算所述列組每一個行組中的兩個乘法,且,在計算行組中的兩個乘法時,按照第一預設順序先計算行組中的位于后一列的乘法再計算行組中的位于前一列的乘法。通過本發明實施例的方法可以減少計算乘法時讀取數據的讀取次數,進而降低功耗。
技術領域
本發明實施例涉及計算機技術領域,尤其涉及一種計算方法及裝置。
背景技術
隨著技術的飛速發展,乘法器的運用越來越廣泛,然而,乘法器計算位權大的乘法的計算效率較低,且會占用較多的系統資源。因此,通常需要將位權大的乘法拆分為多個位權小的乘法,然后將多個位權小的乘法的計算結果求和,得到位權大的乘法計算的結果。
例如,假設需要計算a*b,其中a為被乘數,b為乘數,且a由{a3,a2,a1,a0}按位拼接而成,且b由{b3,b2,b1,b0}按位拼接而成,那么a*b就可以拆成如16個位權較小的乘法,在拆分時,通常會將被乘數中的各個數分別與乘數中的低位數值相乘,再將被乘數中的各個數分別依次與乘數中的高位數值相乘。例如。將a0、a1、a2以及a3分別與b0相乘,將a0、a1、a2以及a3分別與b1相乘,將a0、a1、a2以及a3分別與b2相乘,以及將a0、a1、a2以及a3分別與b3相乘,再將這16個乘法的計算結果相加,得到a*b的計算結果。
由于a3的位權大于a2的位權,a2的位權大于a1的位權,a1的位權大于a0的位權,以及b3的位權大于b2的位權,b2的位權大于b1的位權,b1的位權大于b0的位權,因此,這16個乘法的計算結果的位權不全相同。
為了方便計算,在位權小的多個乘法中,通常會按照計算結果的位權將位權小的乘法歸類。
例如,具體歸類如下表1所示,由于先是將a0、a1、a2以及a3分別與b0相乘,再將a0、a1、a2以及a3分別與b1相乘,然后將a0、a1、a2以及a3分別與b2相乘,最后將a0、a1、a2以及a3分別與b3相乘。因此,表1中第一行為a0、a1、a2以及a3分別與b0的乘法,表1中第二行為a0、a1、a2以及a3分別與b1的乘法,表1中第三行為a0、a1、a2以及a3分別與b2的乘法,表1中第四行為a0、a1、a2以及a3分別與b3的乘法。
為了計算結果的位權相同的乘法歸類,在表1中,計算結果的位權相同的乘法位于同一列,例如,在這16個乘法中,沒有一個乘法的計算結果的位權與a0*b0的計算結果的位權相同,因此,a0*b0位于第一列,且沒有其他乘法與a0*b0位于同一列。a1*b0的計算結果的位權以及a0*b1的計算結果的位權相同,因此,a1*b0和a0*b1位于同一列,也即位于第二列。a2*b0的計算結果的位權、a1*b1的計算結果的位權以及a0*b2的計算結果的位權相同,因此,a2*b0、a1*b1以及和a0*b2位于同一列,也即位于第三列。其他列同理。
表1
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京華大信安科技有限公司,未經北京華大信安科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710270011.5/2.html,轉載請聲明來源鉆瓜專利網。





