美文网首页
Android(电脑)的原理性学习探寻

Android(电脑)的原理性学习探寻

作者: 我是昵称 | 来源:发表于2017-03-29 16:09 被阅读102次

    一切的本源——二进制

    要知道数学,数,是我们对“自然”的一种抽象描述方式

    在19世纪后期,一些数学家已经开始重新考虑数学的基础,特别是数学对逻辑的关系。一些人认为,数学可以建立在逻辑上;另外一些人则对逻辑原则的普遍应用以及存在性证明的意义存有疑问。在1900年以前已经冒了烟的争论,经悖论和相容性问题加上燃料,于是爆发成大火。

    而在数学和数字电路中,二进制(binary)数是指用二进制记数系统,即以2为基数的记数系统表示的数字。这一系统中,数通常用两个不同的符号0(代表零)和1(代表一)来表示。以2为基数代表系统是二进位制的。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特(二进制位)。

    现代的二进制记数系统由戈特弗里德·莱布尼茨于1679年设计,在他1703年发表的文章《论只使用符号0和1的二进制算术,兼论其用途及它赋予伏羲所使用的古老图形的意义》(法语:Explication de l'arithmétique binaire, qui se sert des seuls caractères 0 et 1 avec des remarques sur son utilité et sur ce qu'elle donne le sens des anciennes figures chinoises de Fohy)出现。与二进制数相关的系统在一些更早的文化中也有出现,包括古埃及、古代中国和古印度。中国的《易经》尤其引起了莱布尼茨的联想。

    后来的发展

    1854年,英国数学家乔治·布尔发表了一篇里程碑式的论文,其中详细介绍了一种代数化的逻辑系统,后人称之为布尔代数。他提出的逻辑演算在后来的电子电路设计中起基础性作用。
    1937年,克劳德·香农在麻省理工大学完成了其电气工程硕士学位论文,用继电器和开关实现了布尔代数和二进制算术运算。论文题为《继电器与开关电路的符号分析》(A Symbolic Analysis of Relay and Switching Circuits),其中香农的理论奠定了数字电路的理论基础。香农凭这篇论文于1940年被授予美国阿尔弗雷德·诺贝尔协会美国工程师奖。哈佛大学的哈沃德·加德纳称,香农的硕士论文“可能是本世纪最重要、最著名的硕士学位论文”。
    1937年11月,任职于贝尔实验室的乔治·斯蒂比兹发明了用继电器表示二进制的装置。它是第一台二进制电子计算机。

    ---------------------------------------这是摘自维基百科里的介绍------------------------------------

    简单的归结可以认为。首先是从二进制的算术为开始,这个可以看做对世界的高度概括出现的。从中国文化上来看,就是伏羲画卦 分阴阳。0,1这两个数字来去高度概括万事万物。

    然后是布尔的代数
    1854年,英国数学家乔治·布尔发表了一篇里程碑式的论文,其中详细介绍了一种代数化的逻辑系统,后人称之为布尔代数。他提出的逻辑演算在后来的电子电路设计中起基础性作用。
    在数学和数理逻辑中,逻辑代数(有时也称开关代数、布尔代数)是变量的值仅为真和假两种真值(通常记作 1 和 0)的代数的子领域。初等代数中变量的值是数字,并且主要运算是加法和乘法,而逻辑代数的主要运算有合取与,记为∧;析取或 ,记为∨;否定非 ,记为¬ 。因此,它是以普通代数描述数字关系相同的方式来描述逻辑关系的形式主义。
    逻辑代数是乔治·布尔(George Boole)在他的第一本书《逻辑的数学分析》(1847年)中引入的,并在他的《思想规律的研究》(1854年)中更充分的提出了逻辑代数。[1] 根据Huntington“布尔代数”这个术语,最初是由Sheffer于1913年提出。[2]
    逻辑代数一直是数字电路设计的基础,并且所有现代编程语言提供支持。

    说在香农和继电器之前

    关于电。从摩擦静电开始,到机缘巧合下用莱顿瓶存储下了电,再到研究电鳗所制造的伏打电池。
    知道了电池的来历,现在终于要讲现代化了,以前的电池,伏特电池,实际上是把化学能转化为电能。并不是我们今天使用的电,我们今天的电是发电机里出来的。这个人的名字叫法拉第。
    法拉第等人,包括摩尔斯的老师亨利先生,制造出了电磁铁以及继电器的模型。但是,并不知道实际的用途。我要画两个电路图,一个是电磁铁的电路图,一个是继电器的电路图。帮助大家回忆一下初中的物理知识。我相信大家没有忘记。电磁铁的工作原理是,当电流通过线圈,线圈中间的铁心就被磁化,就成了一个磁铁,当电流消失,被磁化的铁心又恢复成没有磁力的铁心了。在这里只讲直流电磁铁。其实现在的日常生活中,有直流电磁铁,也有交流电磁铁。

    Electromagnet.gif

    相关应用:电报的工作原理
    电报的工作原理,电报为什么可以工作,主要就是用了电磁铁的原理。

    为什么需要继电器呢?
    电线有个特征,电阻。就是随着距离的增加,电压会越来越小。在电线上传递的信号逐渐的就没有了。比如说,从北京发信号到上海,可能电线到了济南,就没电了,这时候怎么办呢?有一个办法,在济南的荒郊野外盖一个小屋子,丢一个人进去,他负责两件事情,把信号记录下来,然后再从济南发一份到徐州,然后徐州再发一份到上海。沿途有2个倒霉蛋在荒郊野外,负责把信号增强,这个工作应该挺无聊。继电器的工作就是代替这两个倒霉蛋的工作的,通过电磁铁的原理,从北京传来的信号,到达济南的电流,驱动一个电磁铁,然后这个电磁铁在拉动金属杆,然后这个被拉动的金属杆,恰好是济南到徐州的一个电路的开关,这样,北京过来的,比较虚弱的电流,在济南经过继电器电路,一个加强的信号又被放大,然后到了徐州,徐州也有一个相同的继电器,然后信号又被放大,然后到了上海。这就是继电器在电报中的工作原理。

    电报继电器原理图.png
    接着是聪明的香农

    香农的硕士论文中的一点皮毛,就是布尔代数如何用继电器电路实现出来。就是上面我提到的《继电器与开关电路的符号分析》,开关我们都知道,继电器在上面也讲了,还有布尔代数。布尔代数不是香农发明的,电路也不是香农发明的。但是,香农的这篇论文把这两个完全不相关的东西结合了起来,电路可以实现布尔代数,反过来,设计出来的电路,又可以通过布尔代数的运算,把电路简化。突然之间,逻辑和电路就被香农给结合起来了。

    接下来说说继电器

    继电器和开关的可以提供相同的功能,让电路通电或者不通电。我这里再画几个电路图,其实是一样的,继电器和开关一样,可以用串联和并联的方式,执行简单的逻辑任务。这种继电器的组合就叫做逻辑门。


    image.png

    再谈为什么要用继电器

    如果只用开关的话,需要人工去开关,如果使用了继电器,可以使用电路来自动控制。如果用开关的话,是没办法自动的,只能用手一个一个开启或者闭合,最后就把人搞崩溃了。而使用继电器的好处就是,一旦可以自动控制,就可以组建更大规模的逻辑电路。比如现在可以组建出来十亿个集体管的电路,每一个晶体管相当于一个开关,如果靠人工的话,顶多能处理10来个开关,十亿个晶体管,是想都不用想了,根本不可能完成的任务。

    连接继电器是建立逻辑门的关键

    前面讲过,第一台计算机就是使用继电器来构建的,后来为什么不用继电器了呢?

    第一台计算机再1930年代被制造出来,里面的设备就是继电器,这台计算机的名字叫机械式继电器计算机,这台计算机通过继电器里面的弹簧片的接通和断开来表示二进制的0和1,后来由于继电器的性能不能保障,因为里面有弹簧片,弹簧片这种东西,弹多了,就失效了,而且使用的能量也太多了。继电器中有弹簧,我们知道,弹簧的速度是不够快的,最快的弹簧片,需要1/100秒改变一下状态,而且,弹簧片不可靠,因此,并没有大规模的应用。但是德国的科学家朱塞就是使用继电器制造出了一台全自动的计算机,速度肯定不快,但是已经具有现在计算机的一些特征了,能够计算浮点数,二进制计算等等。后来才使用电子管代替了继电器,后来又用晶体管代替了电子管,但是,基本的原理并没有发生翻天覆地的变化。

    今天我们使用的晶体管计算机,速度更快,能耗更低,也更便宜。但是,里面的工作原理和继电器的计算机并没有任何区别,今天的一个8位的加法器需要144个晶体管,同样,当年构造一个8位的加法器,需要144个继电器。只是现在科技发达了,由于集成电路的突飞猛进,144个晶体管,尤其是现在intel有10纳米的工艺,144个晶体管可能需要用电子显微镜才能看清楚。但是继电器的话,144个继电器,可能得一大坨。但是,我们要知道,里面的原理是一模一样的。

    ---------------------探寻暂到此(说不定之后会补充关于逻辑门的知识)-------------------------

    参考以及引用资料:
    1、维基相关:
    代数的出现
    二进制
    布尔代数
    逻辑门

    2、原理性学习探寻:
    构建计算机

    相关文章

      网友评论

          本文标题:Android(电脑)的原理性学习探寻

          本文链接:https://www.haomeiwen.com/subject/tlreottx.html