杨新铁
颠覆性CPU-提前进位并高位串行输出的流水线式处理器
2022-9-11 11:36
阅读:1442

颠覆性CPU-提前进位并高位串行输出的流水线式处理器

                                         西北工业大学 航空学院 杨新铁      

迄今为止,所有CPU的设计都是建立在诺伊曼计算器的基础上的,关于CPU设计理论翻了好几代,但是矩阵式乘法的进位问题仍然没有好的办法解决,现在二进位字长已经到了64位,为了访址的需要,还有进一步增加趋势,然而密码运算还需要更长的字长,超长字位的数字的乘法连续运算的CPU如何设计始终是个没有解决的问题。因为大数乘法实际是个超大矩阵的算法问题,最头疼也是关键的问题是处理进位。因为进位要从低到高进行,所以现在的算法都是低位先算好,后面高位才能依次把结果算出来,这就弄得所有的CPU都是被进位问题纠缠的设计成低位先算出结果,然而这个低位算出的结果对下一步运算意义并不大,所以所有的下一步数字运算都要等待上一步算好再说。

    正面走不通,反向思维就很重要,既然从高位算起困难在于进位,那么能不能设法解决这个进位问题呢?也就是说只要把进位问题解决了,那么结果就可以从高位先发出来,假设我们算一群一千位字长的数的连续运算,如果能把它分成一百段,每一段十位字长的结果能从高到低一步一步的输出出来,在一个数还没有全算完的百分之一的时间内,那么后面数的计算就不必等待全算出来,拿到高位的输出结果就可以开始介入运算了,如果这样排成一个流水线,那么新式CPU将会把算力提高几个数量级呢?

       所以关键是进位,这个问题处理好了,其他问题都好说。解决乘法的提前进位有三个办法,

1。把大数字切成多段,从前面进行运算,头部算出的结果,立即进入流水线进入下一步运算。从高位进行计算的办法不难,可以看成十字交乘法的推广。古代中国叫做掐头算。

2. 增加对进位的判断,对一些经过判断就可以得到的提前进位,先把他囊括在内进行计算,以后这部分进位就不加考虑了,也减小了进位对从前面高位输出结果的干扰,保证了从高位分段输出计算结果,进入计算流水线下一步运算。举一个简单例子,看到3X0.333,就一定不会有进位,而大于0.333,成为0.334就一定会进1.同样看到3X0.667,就一定会进2;类似的方法也可以用在2进制或者其他进位制里面,十年前看到美国一个CPU设计的书已经把这个判断用在乘法器设计里面,但是真实的乘法器没有见到流片出现。

3.是多置一些存储进位的单元,暂时存储一下在提前进位时未来得及全部处理掉的一些进位,也就是把一部分进位拦截一下,这就要舍弃现在数字的单行表示方式,如同多一排算盘珠子存进位,一同把进位下一步和实际的乘数一起进入运算。保证计算结果从高位的输出,输出结果进入下一步计算流水线,如此一来,连续大数乘除以及逻辑判断运算做的多了,此方法就显出优势了。

       其实看这篇文章有想法的人我认为都是高手,我这里只是提纲携领说了个大概,细节对大家说难也不算难,这其实颠覆了计算机的中央处理器和存储的架构和布局,把好好存的一个数要切几十段甚至千百段来存储和处理,存储方式和计算方式都可以说是颠覆性的,在maple和matlab上面模拟来的容易,关键是谁能把这种提前进位高位串行输出结果的流水线式芯片的流片做出来,那可以说是当惊世界殊的时刻。欢迎交流,并一起为此努力。

image.png

转载本文请联系原作者获取授权,同时请注明本文来自杨新铁科学网博客。

链接地址:https://wap.sciencenet.cn/blog-1354893-1354859.html?mobile=1

收藏

分享到:

当前推荐数:0
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?