关于计算1+1=2,电脑到底经历了什么?底层到底是如何⼯作
的?
前⾔:(我尽量会讲的⽐较⽐较详细,然后我们跳过深的话题,涉及⼀点点底层。)
现在我们⼏乎每天都要上⽹。⾸先我们都是需要输⼊URL(⽹址),然后返回⼀些内容,也就是我们看到的东西(结果页⾯)。今天我想给⼤家讲讲从输⼊⽹址,到按下回车键,到底发⽣了哪些事。(希望⼤家能够耐⼼看完,只要⼤致懂每个环节是什么就⾏。这⾥涉及硬件,底层,软件等等⼀些知识)。
-----------不管你是学⽣,还是已经⼯作了,希望这篇⽂章都对你有帮助哈。
-----------不知道⼤家有没有想过⼀个问题,我们⾃然界本来就只有泥⼟,岩⽯,河流,阳光等等之类的东西。到底是怎么演变成今天的世界的?可能你曾经甚⾄会感慨什么是电?到现在你可能会去想什么是电脑,什么是互联⽹。它是怎么⼯作的,本来⾃然界只有泥⼟给我们,是如何演变成今天的互联⽹的新时代,当然都要全部历程都讲⼀遍,可能⼀天也讲不完(⽽且我也讲不了哈哈)。
分割
-------------------------------------------
硬件部分(涉及到⼀些模电,数电等等知识,后⾯⽂章讲软件,⽹络架构⼤⽅向)
why 计算机能够算出 1 + 1 = 2 ?什么是1 ?什么是2 ?什么是 + ?在⾃然界最先只有泥⼟给我们的地球,我们该如何标识这些东西?
我想从上⾯的简单⼀道题⽬开始讲起,其实我们都知道计算机只有0和1两种东西。那么什么是0?什么是1?其实我们定义0和1就是电压的⾼低,就是低电平就是0,⾼电平就是1 。具体电压多少判断是0和1,就要看电压的阀值定义的多少,⽐如阀值定义成1.5v。我们定义1.5v以下的就是0,1.5v以上的就是1。这就是计算机的0和1 。然后你也会问什么是电压?什么是电?(兄dei,这样回答的话我写到天亮也回答不完。当然,我这⾥还是啰嗦回答⼀下,⼤神略过)
电的本质是带电粒⼦的定向移动,我们规定正电荷移动的⽅向为电流⽅向。⾦属导体主要就是靠电⼦运动来导电的,我们都知道原⼦核外部都是电⼦,然后说⽩了就是⾼中的⼀些物理,化学的东西。为什么我们常说⾦属会导电?我简单讲⼀下:然后我们都知道原⼦是电中性的,所以原⼦核是带正电,核外电⼦带负电,然后电⼦⼀直绕着原⼦核做运动。(可以类⽐飞船绕着地球运动)。但是⾦属内部原⼦核⽐较⼤,然后每个⾦属原⼦原本就是紧密连在⼀起,甚⾄会使原⼦核之间产⽣相交,产⽣重叠,引⼒相互影响,然后使得最外层的电⼦轨道也可能相互挨着,正常情况下,可能还是保持电⼦是⼀种平衡状态。但是⼀旦有任何的风吹草动,然后电⼦就会脱离原⼦核,沿着风吹草动的⽅向定向移
动,这就是电流!卧槽,原来这就是电流,简单嘛,那么风吹草动哪⾥来。这⾥我举⼀个例⼦。你们记不记得那个谁?(个⼤佬照⽚不容易)。
对,那个法拉第的⼈,不知道他是闲着⽆聊还是怎么的,就拿闭合的导线去切磁感线(磁感线就是两个磁铁之间的空间)。卧槽,居然产⽣了电流,结果他就出名了啊(因为从此磁可以⽣电了),还是⽜逼(当然,这些都是⾮⼈类,随便⼀个举动都是⼈类的转折点)。这⾥应该没⼈问我铁和磁铁怎么来的吧。(铁其实就是⼀些矿⽯,⾥⾯含有(Fe2O3、Fe3O4、FeO),然后我们⼀些还原剂(C、CO、H2)然后⽤⽕烧,还原成铁(Fe)。然后磁铁是⼀种氧化铁Fe3O4,这种材料具有磁性。)
--------看到这,你或许就说,,这不都是我⾼中学过的东西,电流不就是这些⿁东西,铁不就是⽯头⾥⾯提炼出来的吗。好好好,接下来这些东西我就不讲那么详细了。 其实我想说的就是,计算机的很多原理,就和我们⾼中学的东西⼀样,其实也都是⼀样都是我们学过的,差的是我们细⼼总结(当然,我还是渣渣。)好,我继续讲1 + 1 = 2.
接下来普及⼀些底层的知识,来,我科普⼀些完成1+1=2需要⽤到的主要元器件:晶体管(有P型和N型),三极管
若在半导体中掺⼊5价元素就会形成电⼦型半导体(N型半导体),其中多数载流⼦为电⼦(负电),
若在半导体中掺⼊3价元素就会形成空⽳型半导体(P型半导体),其中多数载流⼦为空⽳(正电),
将PN两种半导体结合在⼀起,称为PN结,当P区为正极,PN结正向偏置,反之亦然,
当正向偏置时电阻极⼩称为导通状态,当反向偏置时电阻较⾼称为截⽌状态,
这就是半导体的开关效应。
讲了这么多晶体管(⼆极管,三极管,场效应管等)有什么作⽤?其中重要的⼀个就是开关效应,可以让你往⼀个⽅向⾛,⽽不能逆⽅向⾛(很重要的特性)。
⽐如A到B是导通状态。
电流 A-->---->---->---->---->---->B OK
电流 B --->-->--->----->---->---->A 不OK(截⽌状态)
给⼀个图: 不想看的不要看,不影响 三种情况的开关
好,我接来下还是讲⼀下三极管(是由晶体管构成的):我们只要记住有NPN,PNP两种类型的三极管,还是看图or直接看我结论
总之这么⼀个东东作⽤就是: 它可以规定电流导通,截⽌,可以让电流放⼤,缩⼩,等等(想到模电当时各种NPN,PNP公射,共集,共基,场效应,MOS管等。。多么痛的领悟)。
现在讲重点了!! 下⾯四个逻辑运算很重要,计算机⼀切的逻辑运算就是由下⾯基础构成的,包括我们的什么+ ,- , x , 除。
与:两个输⼊⼀个输出,当两个都是1时候才是1,反之0。
或:两个输⼊⼀个输出,只要有⼀个1结果就是1,反之0。
⾮:⼀个输⼊⼀个输出,输出总与输⼊相反,反之0。
与⾮:两个输⼊⼀个输出,当两个输⼊均为1时输出0,反之输出1
或⾮:两个输⼊⼀个输出,当两个输⼊均为0时输出1,反之输出0
异或:两个输⼊⼀个输出,当两个输⼊不同时输出1,反之输出0
同或:两个输⼊⼀个输出,当两个输⼊相同时输出1,反之输出0
下⾯就是逻辑门的基本元器件,就是这些⿁东东,由刚才前⾯说的晶体管(⼆极管,三极管等等管组
成)。
⽐如我们看第⼀个图的与门,D2就是刚才说的“开关”,电流只能从⼀个⽅向移动,也就是三⾓形的指的⽅向。设想⼀下 ⽐如A和B 输⼊端,有任何⼀个是低电平(也就是0),这样Vcc的电压就会流过A或者B,电压全部落在电阻上。这样L点的电压是不是就变成0了?如果A和B都是⼤电压,这样没有电流,因为⼆极管⽅向只能规定流向A或者B,⽽不能是A和B流出。这样L点和Vcc电压都是⼀样的,因为电阻上没有电压,故L是1(⾼电平)。
这就是上⾯说的与门 组成原理。 同理CMOS电路也是⼀样的, 输⼊是A和B,通过图中单向导通,我们组合场晶体管(效应管),就会有上⾯的逻辑门。
然后我们需要逻辑门的组合,整⼀个加法器。 这⾥⼤家应该都知道什么是2进制吧。 就是计数时候满2进1。
⽐如 2位2进制有 00 01 10 11 分别代表 0 (0x2的1次⽅+0x2的0次⽅) 1(0x2的1次⽅+1x2的0次⽅) 2(1x2的1次⽅+0x2的0次⽅) 3 (1x2的1次⽅+1x2的0次⽅)
然后我们想要的结果⽆⾮就下⾯⼏种情况 两个XY表⽰输⼊,⼀个F输出,⼀个C进位,下⾯列出8种情况。(不⽤看,看结论)
⽆进位0+0=0
⽆进位0+1=1
⽆进位1+0=1
⽆进位1+1=0(进位)
进位0+0=1
进位0+1=0(进位)
进位1+0=0(进位)
进位1+1=1(进位)
因此我们设计的电路应该有3个输⼊线分别⽤来输⼊两个加数和⼀个进位信号,2个输出线分别输出运算结果和进位信号一台电脑两个显示器
我们在等号左边⽤F表⽰运算结果,C表⽰进位信号
等号右边XY表⽰输⼊的加数,C表⽰进位信号输⼊
则得出真值表达式:
F = X(⾮Y)(⾮C) + (⾮X)Y(⾮C) + (⾮X)(⾮Y)C + XYC
C = XY(⾮C) + X(⾮Y)C +(⾮X)YC + XYC
据此设计如下图左侧所⽰的电路并化简
进位信号表达式可简化为:
C = XY + XC + YC
结论是 我们发现了加法符合这样的逻辑门关系:
F = X(⾮Y)(⾮C) + (⾮X)Y(⾮C) + (⾮X)(⾮Y)C + XYC ⼀位输出
C = XY + XC + YC 进位我们根据公式,然后设计出下⾯的逻辑门电路的组合。
总之你只要知道,设计成这样的电路,输⼊0或者1,就可以算出对应的1位加法器。
然后如果是算多位的加法的话,就把他们连起来,如下图。其中加法器,下⾯的图是最简单的了。我记得还有什么74LS181什么的贼复杂,图我就不放出来了。
上⾯这幅图的意思就是 可以做两个4位2进制的数相加了
到这,我们已经⼤致讲了⼀下,真正底层设计和实现加法器了。当然还有⼀些显⽰屏,外界硬件设备的控制输出,这些也是更⾼的话题。我这⾥就⽤了1 + 1 = 2 ⽐较详细的解释了⼀遍。 其实底层很多很多这样的东东,远⽐我们想的复杂,接下来我就只讲⼀下概念。
分割
-------------------------------------------
介绍⼀下编码和解码,其实计算机底层只有 0 或者 1的⼆进制, 我们看到的任何⽂字,图⽚,⽆⾮都是这些组成的。 所以我们就要约定,什么情况下,什么数字对应什么东西。
⽐如:ASCII编码⽤数字代替字符,位图⽂件逐⼀记录各个像素点的RGB颜⾊(00AAFF什么的)
⽂件的后缀名就是⽤来告诉计算机这个数据的编码⽅式,⽐如:
EXE指令数据
TXT⽂本
JPG位图
下图提供了ASCII编码下各个字符与数字的对应关系,这种标准已经沿⽤许久,甚⾄早到显⽰器还没有发明,因此那时候这个编码被⽤于打印机,可能有⼀些内容现在的已经⽆效,但是为了保证⽼设备兼容性⽽没有修改。
然后就会对应解码,解码就是把对应的东西,拆成01010101,其实和加法底层都是⼀样,都是⼀些逻辑电路,编码,译码器。关于底层我就设计这么多吧,就是希望能够给⼤家⼀个印象,能够了解元器件⼯作的原理。所以想想⼀个诺基亚,都是沉淀了⽆数智慧的结晶,再次向前⼈致敬。
这次我就想讲到这⾥,这些都是⾟苦⼀字字敲出来的,如有不对,欢迎留⾔。接下来可能想讲⼀下⼤⼀点的⽅向,⽹络如何建⽴连接,讲⼀下互联⽹的⼀些流⾏协议,以及如何构建了今天这个⾼信息互联⽹。
发布评论