整数乘积表压缩方法及乘积查表装置制造方法及图纸

技术编号:2891087 阅读:173 留言:0更新日期:2012-04-11 18:40
本发明专利技术为一种整数乘积表压缩方法与乘积查表装置。乘积表压缩方法为:将重复的部分删去;将乘数及被乘数为0的乘积删去;将乘数索引为n的乘积值移入乘数索引为(n-1)的位址;以代表最大乘数的位数的一半的数作为压缩乘积表的最大乘数索引值;将大于压缩乘积表的最大乘数索引值的乘积,依填页法移入压缩乘积表中不连页的存贮空间。该乘积查表装置包含一排序装置。(*该技术在2015年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种整数乘积表压缩方法与乘积查表装置。过去,应用于微处理器的乘法运算法大致可分为纯软件、纯硬件或软硬件同步处理。以往在无硬件乘法指令的微处理器中,乘法运算一般均采用长乘法或直接查表法以求得结果。而长乘法是一般手算法,具有运算速度慢的缺点。以二进位的乘法运算为例,长乘法的运算方法如下 其中被乘数的位为X1和X0。乘数的位为Y1和Y0。第一步的运算为(X1X0*Y0)。第二步的运算为(X1X0*Y1)。最后的乘积即为以上部份乘积的和。若其中两位皆为1,则积为1;若其中一位为0,则积为0。例如,(7*2)的二进位乘法运算表示如下 其中部分乘积所需的次数等于乘数的位元数。部分乘积值需存入暂存的存贮器内。二进制长剩法的优点是其表示法清楚简单。但是,若将其运算方式实现在硬件上时,则会使电路结构复杂,运算效率降低。且当乘数变大时,其运算速度将明显下降。例如,要运算两个二位的数,需要4次部分乘积。若要运算二个四位的数,则需16次的部分乘积。由此可见,二进制长乘法缺乏实际效率。其缺点不外1.占用存贮器空间大被乘数与乘数相乘的每一位数乘积值需各自储存,再进行乘积和的运算,因此,须占用存贮器的大部分空间。2.执行周期长被乘数与乘数的每一位相乘,其次数与乘数的位数成正比。愈大的数,则其执行周期便愈长。3.成本偏高由于部分乘积值占用存贮器空间大,执行程序复杂,因此,微处理器的成本也因而提高。为解决以上问题,电路设计者使用查表法以简化运算程序。查表法是以乘数、被乘数为索引所建的乘积表。该表装在只读存贮器(ROM)内以方便查询的用。直接查表虽可快速求得结果,然而,此法只适用乘积表小的装置。若乘积表大,不但花费存贮空间,增加检索时间,而且会产生存贮器跳页的问题。因此,在提升运算速度与节省存贮空间的前提下,能以简单而有效的方式求得结果,乃为无硬件乘法指令的微处理器在做乘法运算的主要要求的一。本专利技术的主要目的在提供一种整数乘积表压缩方法使乘积表能节省一半的存储空间。本专利技术的另一目的在提供一种能解决存贮器跳页问题的整数乘积表压缩方法。本专利技术的又一目的在提供一种能检索压缩乘积表的查表方法与装置。本专利技术的再一目的在提供一种能利用查表法以简化运算程序的整数乘法运算方法与装置。本专利技术的又一目的在提供一种运算快速的整数乘法运算方法与装置。基于上述目的,本专利技术的整数乘积表压缩方法为下列步骤(1) 如第1B图所示,将第1A图中乘积表重复的两对称部分删去其中一部分;根据乘法交换律,即A*B=B*A,乘积表中的乘积成一对称分布的状态。因此,除去其中对称的一半后,仍可找出正确的乘积,只要在乘数大于被乘数时,将乘数与被乘数交换。(2) 将乘数为0以及被乘数为0的乘积删去;此步骤在进一步节省乘积表的存贮空间;由于0乘任一数皆为0,因此,只要查乘数是否为0,即可知结果是否为0,不须将0的乘积存入乘积表。(3) 如第1C图所示,将乘数索引为n的乘积值移入乘数索引为(n-1)的位址(n为自然数);由于步骤(2)已将乘积为0的乘积删去,其余的乘积可向前挪;(4) 以代表最大乘数的位数减1作为该压缩乘积表的最大乘数索引值;以第1A图的乘积表为例,其最大乘数的位为4位,其减1为3位,而3位所代表的最大数为7,如第1C图的乘数索引Y。(5) 将大于该压缩乘积表的最大乘数索引值的乘积,依填页法移入压缩乘积表中不连页的存贮空间,以使压缩后的乘积表皆储存在同一页中,如第1D图所示。为检索本专利技术的压缩乘积表,本专利技术沿包含一查表方法,其步骤如第三图所示301以X为第一索引值,Y为第二索引值进行检索;302比较X是否大于等于Y,若是,则执行303,否则执行304;303X大于Y,设索引位址为(X,Y),执行305;304X小于Y,将X与Y交换,设索引位址为(Y,X);305将比较后的索引位址设为(X1,Y1);306查Y1是否等于0,若是,则执行307,否则执行308;307输出0,执行311;308查Y1是否大于等于(Z+1)/2(Z为最大被乘数),若是,则执行309,否则执行310;309将查表的索引位址改为(X1,Y1),并以此位址查表,执行311;310将查表的索引位址改为(X1,Y1-1),并以此位址查表,执行311;311输出查表所得,或0。以上的查表方法可以用本专利技术的乘积查表装置实施。本专利技术的乘积查表装置包含一排序装置,用以接受乘数与被乘数做为输入值,并将的排序使被乘数永远大于等于乘数,该排序装置用以执行查表步骤301至查表步骤305。本专利技术的乘积查表装置沿包含一判定装置,用以判定乘数是否为0,若为0,则乘积必为0。由于经过排序装置,乘数与被乘数重新排列,乘数必然小于被乘数。因此,判定装置只须检查乘数,不须检查被乘数。该判定装置的作用在进一步节省乘积表的存贮空间。由于0乘任一数皆为0,因此,只要查乘数是否为0,即可知结果是否为0,不须将0的乘积存入乘积表。此判定装置的作用在执行查表步骤306与查表步骤307。本专利技术的乘积查表装置尚包含一最高位检测装置,用以判定乘数的最高位是否为1,或为0,并将其判定结果输出至一位址转换装置。在乘数为4位的情况下,其减1为3位,即为压缩后的最大乘数。而3位所表示的最大数为7。因此,判定乘数的最高位是否为1,或为0,即知其值是否大于等于8。此装置的作用在执行查表步骤308的判定动作,即查乘数是否大于等于(Z+1)/2(Z为最大被乘数)。如果乘数的最高位为1,即表示乘数>=(Z+1)/2;如果乘数的最高位为0,则表示乘数<(Z+1)/2。本专利技术的乘积查表装置尚包含一位址转换装置,用以计算新的索引值,并将被乘数转换成第一索引值,乘数转换成第二索引值,以检索压缩乘积表。此装置的作用在执行查表步骤309至310。如第4图所示,位址转换装置419主要包含第一异或门410、第二异或门412、反相器413、以及减法器414。位址索引X1与最高位检测装置409的输出传入第一异或门410以产生第一索引值X2;位地索引Y1与最高痊检测装置409的输出传入第二异或门4 12与反相器413,再经由减法器414做减一的运算以得到第二索引值Y2;(X2,Y2)与(X1,Y1)的关系如在第三图所示,当Y1>=(Z+1)/2(即Y1的最高位1,最高位检测装置409的输出为1),X2=X1,Y2=Y1;及当Y<(Z+1)/2(即Y1的最高位为0,最高位检测装置409的输出为0),X2=X1,Y2=Y1-1,(X2,Y2)输入只读存贮器(ROM)415以进行查表。此装置的作用在执行查表步骤308至310。第1A图显示4位*4位的乘积表。第1B图显示附图说明图1A中将重复部分移去后的4位*4位的乘积表。第1C图显示图1B中将乘积为零的部分删去,并将乘数大于8的乘积移去。第1D图显示图1C中乘数大于8的乘积移入第1C图中的空位部分的最后的压缩结果。第2图显示装设压缩乘积表的流程图。第3图显示检索装设压缩乘积表的流程图。第4图显示本专利技术的功能方块图。第5图显示第4图的排序装置。第6图显示第4图的第一索引值产生装置。第7图显示第4图的第二索引值产生装置。第8图显示第4图的与门。第1A图至第1D图显示本专利技术的乘积表压缩步骤。第1A图为一压缩前的4位*4位本文档来自技高网...

【技术保护点】
一种乘积查表装置,用以检索一压缩乘积表,该乘积查表装置包含:排序装置,用以输入第一值与第二值,并进行排序,该第一值永远大于该第二值;判定装置,用以判定该第二值是否为0;最高位检测装置,用以判定该第二值的最高位是否为1,或为0,并 将其判定结果输出至位址转换装置;及该位址转换装置,用以根据该最高位检测装置的判定,而将该第一值转换成第一索引值,该第二值转换成第二索引值,检索上述的压缩乘积表以得到检索乘积值。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈保福陈俊雄张家志
申请(专利权)人:合泰半导体股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利