1:莱布尼茨的二进制和八卦
在你看本文的这一刻,手机处理器中,正有千万门级别或者亿门的MOS管在关闭和打开,来实现不同的与,或,非的运算。
这一切数学基础都要从数学最基础的原理来说起。
人类从呱呱坠地开始,耳濡目染最开始就是十进制,小朋友也很容易接受,并可以很快掌握十进制的加减法。
十进制非常通俗易懂,它成为了人类最早的数学基础。
世界上不同的文明都出现了类似十进制的描述,例如几千年前的苏美尔楔形文字,汉字,后来的阿拉伯数字都有十进制的描述。
这个不奇怪,因为人类进化了十根手指头,用手指头来数数再自然而不过了。
但是,有人觉得十进制并不完美。
1701年,德国数学家莱布尼茨法国科学院提交并宣读了他题为《数学科学新论》的研究论文。
在这篇文章中,他提出了用0和1两个数表示全部数字的方法。
如上表所示,每个数字都可以表示一个二进制数。二进制数中只有0和1,没有其他符号。
鲁道夫·奥古斯特公爵研究莱布尼茨的二进制数学后认为二进制数学符合《圣经·创世纪》中的记载,是“上帝的算法”。因为太简洁了,符合上帝从无到有创建世界的描述。
奥古斯特公爵很喜欢,但是科学院却把这篇论文给拒了。
当时的法国科学院院长单内认为,看不出这篇论文有什么用处。
论文有什么用?
解决了什么重大问题?
有什么实际的价值?
这个思路就一直存在于审稿人的脑海里面,几百年未曾改变。
那么有个问题摆在莱布尼茨的面前,二进制有什么用?
作为我们300多年后的我们,对于二进制的作用是非常清楚的。但是在当时给二进制找个应用的确是个难题。
但是莱布尼茨作为大数学家,大哲学家。十七世纪的亚里士多德。可以和牛顿争夺微积分发明权的大佬,肯定不会被这个小问题难住。
但是用了两年时间,直到1703年莱布尼茨收到白晋所寄的伏羲八卦图,才发现自己的二进制体系与伏羲八卦图的一致性。
白晋是法国神父,曾经担任康熙皇帝的数学老师,1697年奉康熙之名回法国招募人才,并与莱布尼茨相识,多次书信来往,白晋由此给莱布尼茨介绍了中国的易经和八卦。
于是,莱布尼茨补充了本项研究意义,并发表在法国皇家科学院院刊上。标题是《二进制算术阐述-仅仅使用数字0和1兼论其效能及伏羲数字的意义》。
莱布尼茨大神,打算用二进制来描述中国的八卦。
对于卦象来说,一根长线代表阳爻(阳),两根短线代表阴爻(阴)。
也就是阴阳。
易经说:道生一,无极变太极;一生二,太极变两仪;二生三,两仪变四象;三生万物,四象旋转,世界诞生。八卦,正如其名,是对宇宙后续变化的推演。
从伏羲八卦中找到二进制的意义,这个不是什么戏说。
很多学者论述了,莱布尼茨不是根据八卦而发明二进制,而是发明了二进制才遇到了伏羲八卦,因此本文采用这个说法,而不牵强附会中国的八卦给了莱布尼茨发明二进制的灵感。
对于莱布尼茨这个大数学家来说,二进制只是其很小的数学成就,但是却是当今信息时代存在的数学基础。
我们这个信息时代都是建立在二进制上的,在这一点上,莱布尼茨居功至伟。
但是,仅仅有二进制是不够的。
2:布尔运算的真和假
莱布尼茨发明了二进制。此时的二进制还只能像十进制那样运算,加减乘除。
就是换个方式来运算,没有什么稀奇。
而乔治·布尔则带了一种运算,那就是布尔代数。
乔治·布尔,1815年出生在英格兰的林肯,少时家贫,但敏而好学,自学成才,全部的志向都放在数学上。
1847年,布尔出版了《逻辑的数学分析,论演绎推理的演算法》。
从此在数学界名气大震,并且从“编外人员”到有了正式的教职。
1854年,他又出版了《思维规律的研究,作为逻辑与概率的数学理论的基础》,其中完满地讨论了这个主题并奠定了所谓的数理逻辑的基础。为这一学科的发展铺平了道路。
布尔代数讲述内容很多,但其最典型的就是两种值和三种运算。
布尔在整个计算中,定义两种值,也就是真和假。1(true),0(false)。
三种基本运算,就是与(AND),或(OR),非(NOT)。
与或非也可以用符号表示: & | ! 三种符号表示。
与就是两个值都为真才为真。
或就是两个值有一个为真就为真。
真的非就是假,假的非就是真。
这个就是两种值,三种运算的含义。
有点哲学的意思。
布尔通过研究发现:所有的数字算数运算,都可以用布尔代数化简成为 0和1的与或非操作。
例如:加法a+b
进位就是a&b,而加完后0位是(a&!b)|(b&!a)
也就是可以用与、或、非来表示加减。
二进制配合布尔代数,能够表示所有的数学运算。
1864年,布尔去世。但是他发明的这些计算方式,将在100年后得到应用,成为计算机体系中的基本运算。
用与、或、非的运算来等价表示加减乘除的运算,这个就是布尔留给后世的财富。
3:香农:硕士论文和开关电路
克劳德·艾尔伍德·香农是美国数学家,也是信息论的创始人。
但是,在成为信息论奠基者之前,学生时代的他就发表了一篇划时代的论文。
1936年,正在读硕士的香农发表了著名论文《继电器和开关电路的符号分析》。
在当时能够实现开关电路的技术方案就是继电器。
通过磁体通断打开或者关闭。
如果继电器打开,电流带来磁场,继电器合上,电路闭合。
如果继电器关闭,磁场消失,继电器关闭,电路断开。
这个开关电路给了香农灵感,配合布尔代数。
香农给出了布尔代数一种物理实现方式。
串联的开关电路就是布尔运算的与操作,两个开关a和b都关闭,灯才能亮。
这个电路就是a&b
而并联的开关电路就是布尔运算的或操作。两个开关有一个关闭,灯就会亮。
这个电路就是a|b
是不是看起来简单极了。
还没有硕士毕业的香农,奠定了现在数字电路的基础。
布尔计算可以将任何运算化简为与、或、非。
所以不断重复这两种电路,就可以通过电路实现任意运算。
此时,从莱布尼茨提出了二进制,已经过去了两百多年,离布尔发表布尔运算也过去接近100年。
终于,香农说,你们的数学表达,我可以用物理电路来实现了。
这个就是现代计算机的基石。
哈佛大学的霍华德·加德纳(Howard Gardner)教授评价:“这可能是本世纪最重要、最著名的一篇硕士论文。”
4:晶体管和集成电路
1947年,美国物理学家肖克利、巴丁和布拉顿三人合作发明了晶体管。
晶体管的诞生,替代了原来的继电器,电子管等设备。
成为了整个信息时代的基础。
在晶体管发明十年后的1958年,34岁的基尔比加入德州仪器公司。然后有了把多个晶体管放到一起的想法。于是,集成电路诞生了。
又过了十二年,1970年,第一个CPU,英特尔4004诞生了。
这些基础都变成如下MOS管的开关电路,下图就是一个开关电路(gate)。通过控制栅极电压,实现Source和Drain的通断。
时至今日,芯片的集成度不断的增加。
最新的CPU,GPU,手机处理器等等, 其晶体管的数量都已经超过百亿级别。
晶体管数量 |
制程 |
|
M1 |
160亿 |
5nm |
安培A100 |
540亿 |
7nm |
A14 |
125亿 |
5nm |
153亿 |
5nm |
但是,其内部运行的数学逻辑,仍然是莱布尼茨提出的二进制,布尔发明的布尔计算,和香农描述的开关电路。
一直没有改变!