第27章 运算器原理(2 / 2)
“输入有输入甲,和输入乙,和进位丙。举个简单例子,我们计算一个1加1,我们要考虑这两数字加完后本位写什么,和是否进位,以及第一级是否有进位。”
“本位计算是将两个输入信号输入异或门,刚刚讲过相同即为0,那么这个值再与进位输入到另一个异或门,这里算1加1,没有低一级的计算,所以进位输入为0,刚刚的结果是0和这个进位0输入道异或门结果还是0,那么右边第一位数字为0。相当于我们个位为0。”
“接下来判断是否进位,将1加1输入到与非门输出结果为0,有人可能会觉得这里应该用非门,这样会造成一个错误比如三个输入都为1的时候结果就错了。”
“这个结果0先放一边,我们再用输入甲和乙通过异或门后的输出结果0,和进位丙的0输入到与非门,得到输出结果1,再将结果1与之前放一边的输出结果0一同输入到一个与非门,那么结果就是1,所以下一位的进位项丁就是1,下一位的两个输入戊和己都是0。”
“再次进行刚才的计算,戊和己输入到异或门,输出就是0,与进位丁输入到异或门结果就是1,所以有数第二位写数字1。”
“这时其实结果已经有了就二进制10表示的是十进制数字2,但计算机会继续接下来的计算,戊和己输入达到与非门结果是1,输出结果1同样先放一边,戊和己输入到异或门输出的结果0和进位丁的1放入与非门得到结果1,与之前放在一边的结果1一起输入到与非门得到结果0。”
王猛一脸惊讶的看着叶枫道:“算了这么久就算一个1加1等于2?这要是算个三位数的加减法就要几万人吧。”
叶枫微笑着道:“三位数的加法够干啥的?天文学上用到的数据都是亿为单位的。你算算需要几亿人能算?”
王猛尴尬的问道:“那几千万人肯定算不了这个数吧?”
叶枫道:“可能你教几千人几年数学,再让他们帮你算,都要比你这快得多。几万人掰手指算都比你快。如果是我,我就做一些机械计算器来算,或者做一些算盘出来也比这种方式要快得多,因为十进制比起二进制有太大的优势。”
“计算机运算跟不上需求速度就是因为这种计算方式。这好比一个小孩只会个位为单位的计算,十以内的对他来说很容易。但让他计算一万加一万的时候,他的计算过程是两万根手指有多少个十,他是通过一个一个数出来的,他的认知一万是十个十个十个十。如果我们教会他万为单位,那么他的计算速度就是伸出两根手指,两万。”叶枫同时伸出两根手指,
“所以要提高计算机的运算速度是优化算法,这是一个数学问题。总线的传输速度只影响计算器运算器之间的数据交换,有瓶颈的时候会影响运算速度,但没有瓶颈的时候在宽的总线带宽也无济于事。这好比你就十吨货物,你有两辆可以拉五吨货物的卡车,如果路只有一车道,那么是瓶颈,如果是双车道的路就刚刚好,三车道的路没有任何意义,哪怕是一百车道但你货物和同时发出的车就两辆,都是没有任何意义的。”
王猛点了点头道:“那么说你发明的光总线计算机没啥用了?”