发明名称 CNC插补的一种并行流水计算方法
摘要 CNC插补的一种并行流水计算方法,其特征在于包括基于单元CU3计算过程的CU3B并行/流水计算过程,单元CU3计算过程是:将伯恩斯坦多项式7:<img file="dest_path_image001.GIF" wi="312" he="22" />中的数据组〈<i>β</i><sub>0</sub>,<i>β</i><sub>1</sub>,<i>β</i><sub>2</sub>,<i>β</i><sub>3</sub>〉作为输入数据组Ⅰ通过单元CU3计算过程计算出两组输出数据组Ⅱ〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉以及中点值<i>β</i>(0.5),然后,基于上层一个单元CU3计算过程获得的两组数据组〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉,将该两组数据组〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉分别作为输入数据组Ⅰ通过相应的下层单元CU3计算过程进行计算,分别获得相应的两组输出数据组Ⅱ及一个中点值,这样经过n层计算后,就获得了2<sup>n</sup>-1个变量差为1/2<sup>n</sup>的中点值。本发明与已有技术相比,具有可高速计算并能产生高精度结果的、适合于以及芯片级并行流水可重构计算的、能满足不断发展的工业需求的优点。
申请公布号 CN102073474B 申请公布日期 2014.11.12
申请号 CN201010593543.0 申请日期 2010.12.17
申请人 佛山科学技术学院 发明人 王兴波
分类号 G06F7/57(2006.01)I 主分类号 G06F7/57(2006.01)I
代理机构 佛山市永裕信专利代理有限公司 44206 代理人 杨启成
主权项 一种CNC插补的并行流水计算方法,其特征在于包括基于单元<b>CU3</b>计算过程的<b>CU3B</b>并行流水计算过程,单元<b>CU3</b>计算过程是:将伯恩斯坦多项式7:<i>β</i>(f)=<i>β</i><i><sub>0</sub></i>(1‑f)<sup>3</sup>+3<i>β</i><sub>1</sub> f(1‑f)<sup>2</sup>+3<i>β</i><sub>2</sub> f<sup>2</sup>(1‑f)+<i>β</i><sub>3</sub> f<sup>3</sup>,0≤f≤1中的数据组〈<i>β</i><sub>0</sub>, <i>β</i><sub>1</sub>, <i>β</i><sub>2</sub>, <i>β</i><sub>3</sub>〉作为第一输入数据组通过以下方式进行运算,将<i>β</i><sub>0</sub>分别送入输出口<i>β</i><sub>0</sub><sup>l</sup>以及<b>CU3</b><b>的第一</b>加法器,将<i>β</i><sub>1</sub>分别送入<b>CU3</b><b>的第一</b>加法器、第二加法器,将<i>β</i><sub>2</sub>分别送入<b>CU3</b><b>的第二</b>加法器、第三加法器,将<i>β</i><sub>3</sub>分别送入输出口<i>β</i><sub>0</sub><sup>r</sup>以及<b>CU3</b><b>的第三</b>加法器;<b>CU3</b><b>的第一</b>加法器接收到<i>β</i><sub>0</sub>、<i>β</i><sub>1</sub>后实施加法运算后将结果<i>β</i><sub>0</sub>+<i>β</i><sub>1</sub>分别送至<b>CU3</b><b>的第一</b>移位器、第四加法器;同样地,<b>CU3</b><b>的第二</b>加法器将其计算结果(<i>β</i><sub>1</sub>+<i>β</i><sub>2</sub>)分别送至<b>CU3</b><b>的第四</b>加法器、第五加法器,<b>CU3</b><b>的第三</b>加法器将其计算结果<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>分别送至<b>CU3</b><b>的第五</b>加法器、第二移位器;<b> CU3</b><b>的第一</b>移位器、第二位移器分别将〈<i>β</i><sub>0</sub>+<i>β</i><sub>1</sub>、<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>〉右移1位后的结果〈(<i>β</i><sub>0</sub>+<i>β</i><sub>1</sub>)/2、(<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)/2〉输出到对应输出口<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>r</sup>;<b>CU3</b><b>的第四</b>加法器实施了加法得到(<i>β</i><sub>0</sub>+2<i>β</i><sub>1</sub>+<i>β</i><sub>2</sub>)后分别送<b>CU3</b><b>的第三</b>移位器、<b>CU3</b><b>的第六</b>加法器,<b>CU3</b><b>的第五</b>加法器实施了加法得到(<i>β</i><sub>1</sub>+2<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)后分别送<b>CU3</b><b>的第四</b>移位器、<b>CU3</b><b>的第六</b>加法器;<b>CU3</b><b>的第三</b>移位器、第四位移器分别对(<i>β</i><sub>0</sub>+2<i>β</i><sub>1</sub>+<i>β</i><sub>2</sub>)、(<i>β</i><sub>1</sub>+2<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)右移2位后输出〈(<i>β</i><sub>0</sub>+2<i>β</i><sub>1</sub>+<i>β</i><sub>2</sub>)/4、(<i>β</i><sub>1</sub>+2<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)/4〉至输出口<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>r</sup>;最后,<b>CU3</b><b>的第六</b>加法器接收数据〈(<i>β</i><sub>0</sub>+2<i>β</i><sub>1</sub>+<i>β</i><sub>2</sub>)、(<i>β</i><sub>1</sub>+2<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)〉实施加法得到(<i>β</i><sub>0</sub>+3<i>β</i><sub>1</sub>+3<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)后送至<b>CU3</b><b>的第五</b>移位器,经<b>CU3</b><b>的第五</b>移位器右移3位后得到(<i>β</i><sub>0</sub>+3<i>β</i><sub>1</sub>+3<i>β</i><sub>2</sub>+<i>β</i><sub>3</sub>)/8分别输出至<i>β</i><sub>3</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>r</sup>以及中点值<i>β</i>(0.5),这样就获得了两组第二输出数据组〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉以及中点值<i>β</i>(0.5),其中<i>β</i><sub>3</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>r</sup>、<i>β</i>(0.5)是相等的;基于单元<b>CU3</b>计算过程的<b>CU3B</b>并行流水计算过程是:基于上层一个单元<b>CU3</b>计算过程获得的两组第二输出数据组〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉,将该两组第二输出数据组〈<i>β</i><sub>0</sub><sup>l</sup>、<i>β</i><sub>1</sub><sup>l</sup>、<i>β</i><sub>2</sub><sup>l</sup>、<i>β</i><sub>3</sub><sup>l</sup>〉和〈<i>β</i><sub>0</sub><sup>r</sup>、<i>β</i><sub>1</sub><sup>r</sup>、<i>β</i><sub>2</sub><sup>r</sup>、<i>β</i><sub>3</sub><sup>r</sup>〉分别作为第一输入数据组通过相应的两个下层单元<b>CU3</b>计算过程进行计算,两下层单元<b>CU3</b>计算过程计算后各获得相应的两组第二输出数据组及一个中点值,这样经过n层计算后,就获得了2<sup>n</sup>‑1个变量差为1/2<sup>n</sup>的中点值:第一层:<i>β</i>(1/2) 第二层:<i>β</i>(1/2<sup>2</sup>)、<i>β</i>(3/2<sup>2</sup>)第三层:<i>β</i>(1/2<sup>3</sup>)、<i>β</i>(3/2<sup>3</sup>)、<i>β</i>(5/2<sup>3</sup>)、<i>β</i>(7/2<sup>3</sup>)…………第<i>n</i>层:<i>β</i>(1/2<sup>n</sup>)、<i>β</i>(3/2<sup>n</sup>)、…、<i>β</i>((2j+1)/2<sup>n</sup>)、…、<i>β</i>((2<sup> n</sup> ‑1)/2<sup>n</sup>)然后,将上述中点值连同<i>β</i>(0)、<i>β</i>(1)依变量值由小到大的顺序储存,作为控制数控机床运行的运行控制数据。
地址 528000 广东省佛山市禅城区江湾一路18号