[发明专利]一种专用指令处理器的设计验证方法有效
申请号: | 201510944833.8 | 申请日: | 2015-12-16 |
公开(公告)号: | CN105574269B | 公开(公告)日: | 2019-02-12 |
发明(设计)人: | 夏辉;于佳;秦尧;程相国;陈仁海;潘振宽 | 申请(专利权)人: | 青岛大学 |
主分类号: | G06F17/50 | 分类号: | G06F17/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 266071 *** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种专用指令处理器的设计验证方法,该方法包括:对目标算法进行优化;将所述目标算法划分为多个基本指令块;将所述基本指令块转化为数据流图,采用近似最优解的方法,根据预设的指令设计规则在所述基本指令块中查找出可优化指令块;为查找到的所述可优化指令块设计专用指令,对原始指令集进行扩展;建立专用指令处理器模型,对所述专用指令处理器模型进行仿真验证。本发明所提供的专用指令处理器的设计验证方法,通过指令集自扩展的方法来提高目标算法实现过程中执行复杂度较高模块的运算速度,提高了算法的执行效率。 | ||
搜索关键词: | 一种 专用 指令 处理器 设计 验证 方法 | ||
【主权项】:
1.一种专用指令处理器的设计验证方法,其特征在于,包括:对目标算法进行优化;将所述目标算法划分为多个基本指令块;将所述基本指令块转化为数据流图,采用近似最优解的方法,根据预设的指令设计规则在所述基本指令块中查找出可优化指令块;为查找到的所述可优化指令块设计专用指令,对原始指令集进行扩展;建立专用指令处理器模型,对所述专用指令处理器模型进行仿真验证;所述对目标算法进行优化包括:通过混合坐标系、Montgomery曲线、多项式平方优化运算、模约减优化运算和Montgomery优化运算的方法对所述目标算法进行优化;其中,多项式平方运算优化二进制多项式的平方运算通过将两个相同的多项式相乘的方式来实现,假设a(z)=am‑1zm‑1+…+a2z2+a1z+a0,a(z)平方后的奇数次项全为0,c(z)=a(z)2=am‑1z2m‑2+…+a2z4+a1z2+a0,系数的顺序也没有发生变化am‑1,…,a2,a1,a0,通过隔项插0的方法实现平方运算,算法1为:Algorithm1:Polynomial squaring(with word length W=32)INPUT:A binary polynomial a(z)of degree at most m‑1OUTPUT:c(z)=a(z)2Pre‑computation.For each byte d=(d7,...,d1,d0),compute the 16‑bit quantityT(d)=(0,d7,...,0,d1,0,d0)For i from 0to t‑1,doLet A[i]=(u3,u2,u1,u0)where each u is a byteC[2i]←(T(u1),T(u0)),C[2i+1]←(T(u3),T(u2))Return(c);使用预存储的思想,首先存储具有256个元素的表T,表T按下述方式进行构造:首先将u表示成二进制,然后将二进制数进行隔项插零得到数Tu,将Tu存储在T[u]中;在实际运算过程中,从最低位开始按字进行;对于A的第i个字,让该字与0X000000FF进行&操作,得到8‑bit数u0,然后将该字向右平移8个bit位后再次与0X000000FF进行&操作,得到8‑bit数u1,重复上述操作依次得到另外两个8‑bit数u2和u3,在表T中取出以u3,u2,u1,u0为下标的元素T[u3],T[u2],T[u1],T[u0],并按照算法1进行赋值操作,循环结束后所得到的结果c=a(z)2;模约减优化运算中,对于二进制域GF(2m),既约多项式表示为f(z)=zm+r(z),其中r(z)的次数最高为(m‑1)次,c(z)=c2m‑2z2m‑2+...+cmzm+cm‑1zm‑1+...+c1z+c0≡[(c2m‑2zm‑2+...+cm)r(z)+(cm‑1zm‑1+...+c1z+c0)](modf(z))≡[(c2m‑2zm‑2+...+cm)r(z)+(cm‑1zm‑1+...+c1z+c0)](modf(z));对于次数小于m的项,(cm‑1zm‑1+...+c1z+c0)(modf(z))=cm‑1zm‑1+...+c1z+c0对于次数大于等于m的项,c2m‑2z2m‑2+...+cmzm≡[(c2m‑2zm‑2+...+cm)r(z)](modf(z))算法2为:Algorithm2:Modular reduction(one bit at a time)INPUT:A binary polynomial c(z)of degree at most(2m‑2)OUTPUT:c(z)mod f(z)split(c)thenhigh=c2m‑2z2m‑2+...+cmzmdeg(high)=2m‑2low=cm‑1zm‑1+...+c0while(deg(high)>=m)dofor i from deg(high)down to m doIf ci=1,thencimi‑mr(z)←cimisplit(high)Add low to lowReturn(high+low)使用分割的思想,在对c(z)进行求模时,首先通过移位操作将c(z)分解为两部分high=c2m‑2z2m‑2+...+cmzm,low=cm‑1zm‑1+...+c0;其中lowmodf(z)=low,lowmodf(z)=low,使用同样的方法对high循环分解,直到其次数小于m为止,最后将high和low相加,得到求模的结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛大学,未经青岛大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510944833.8/,转载请声明来源钻瓜专利网。