第27章 运算器原理
66读书 www.66dushu.com,最快更新不成气候的发明家!
叶枫解释道:“那叫中间电平,识别状态不定,可能是高电平,也可能是低电平。所以在实际应用中一般会尽量避免这种情况发生。举个例子就是以前使用的网线的长度问题,一般网线使用距离不超过100米。因为线路越长,就要用越大的电压等级来输电。网线通电电压很低,网线过长就会导致信号减弱,一般在中间要增加中继设备增强信号。”
王猛说道:“哥,跑题了,咱讲计算机加法计算呢。”
叶枫白了一眼王猛道:“还不是你问的?”
王猛笑着道:“那你也不用讲那么多不是?来继续讲计算机,我就想知道这玩意能不能用人代替。”
叶枫无奈的继续说道:“计算机计算通过与或非门,包括组合方式的与非门、或非门和异或门。与门和或门都是三极管,两个输入一个输出,非门是二极管一个输入一个输出。与门在逻辑上就是,当所有的输入同时为高电平1时,输出才为高电平1,否则输出为低电平0。”
“电路设计就是一个三极管和一个限流电阻,限流电阻就是为了避免过大的电流烧毁用电器,而串联的保护性电阻。原理就是通过提高负载的总电阻而减少电流。简单说就是一个保护装置,有高电平通过时候就会阻断,输出就为低电平。电路原理就是如果第一个输入是低电平,那么限流电阻不会受到影响,另一个输入是低电平那么输出就是低电平。”
“如果另一个输入是高电平那么就会被限流电阻阻断,所以输出还是低电平。如果第一个一个输入是高电平,限流电阻就会阻断,另一个输入是低电平,那么输出就是低电平,输入是高电平那么输出就是高电平。”
叶枫看了看一脸疑惑的王猛,无奈的说道:“简单说与门就是串联电路,两个开关都打开就通电,结果就是高电平。或门就是并联电路,只要有一个是高电平结果就是高电平。”
王猛恍然大悟的说道:“你早这么说我不就懂了?前面什么主流非主流的太啰嗦,你这讲解水平有待提高。以后给别人讲什么就按后面这种方式来,简单易懂,不废话,不啰嗦。”
叶枫皱了皱眉,白了一眼王猛继续讲道:“那我只解释用途,不讲具体实现方式。低电平表示0,高电平表示1。与门就是两个输入全1时,输出结果就是1,有一个是0,输出结果就全是0。”
“或门就是两个输入全是0,那么输出结果就是0,有一个是1,输出结果就是1。非门一个输入是1,结果就是0,输入是0,结果就是1。与非门就是先与再非,两个输入全是1,输出结果就是0,两个输入有一个是0,结果就全是1。”
“或非门就是先或再非,两个输入全是0,输出结果就是1,两个输入有一个是1,结果就全是0。异或门由一级或非门和一级与或非门组成,两个输入相同电平,则输出就是0,两个输入电平不同时,输出结果就是1。”
王猛觉得有点难记,拿出手机记录着叶枫说的内容。
叶枫看他记录完继续说道:“我们计算用的是十进制,但计算机用电只能表示两个值,即0和1。我们进位是个十百千万,计算机进位是2、4、8、16,即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?这要是算个三位数的加减法就要几万人吧。”
叶枫微笑着道:“三位数的加法够干啥的?天文学上用到的数据都是亿为单位的。你算算需要几亿人能算?”
王猛尴尬的问道:“那几千万人肯定算不了这个数吧?”
叶枫道:“可能你教几千人几年数学,再让他们帮你算,都要比你这快得多。几万人掰手指算都比你快。如果是我,我就做一些机械计算器来算,或者做一些算盘出来也比这种方式要快得多,因为十进制比起二进制有太大的优势。”
“计算机运算跟不上需求速度就是因为这种计算方式。这好比一个小孩只会个位为单位的计算,十以内的对他来说很容易。但让他计算一万加一万的时候,他的计算过程是两万根手指有多少个十,他是通过一个一个数出来的,他的认知一万是十个十个十个十。如果我们教会他万为单位,那么他的计算速度就是伸出两根手指,两万。”叶枫同时伸出两根手指,
“所以要提高计算机的运算速度是优化算法,这是一个数学问题。总线的传输速度只影响计算器运算器之间的数据交换,有瓶颈的时候会影响运算速度,但没有瓶颈的时候在宽的总线带宽也无济于事。这好比你就十吨货物,你有两辆可以拉五吨货物的卡车,如果路只有一车道,那么是瓶颈,如果是双车道的路就刚刚好,三车道的路没有任何意义,哪怕是一百车道但你货物和同时发出的车就两辆,都是没有任何意义的。”
王猛点了点头道:“那么说你发明的光总线计算机没啥用了?”