计算机科学基础_0 - 逻辑门

Bits(位), Bytes(字节), 晶体管, 逻辑门, 操做系统, 虚拟现实, 机器人程序员

经过一层层的抽象,来作出复杂操做。算法

最底层的10, 到逻辑门, CPU, 操做系统, 互联网编程

目的:
了解计算机在你的人生,以及社会中扮演什么角色。
计算机是人类发展史上最伟大的发明,是怎么开始的; 它对将来还会有更大印象。函数

Babbage工做室外面的街头音乐家很吵,很影响他干活。
Babbage于1871年去世,当时分析机还没完成。
Carrie Anne 是追星族!
Lovelace写的分析机笔记是第一个算法。
Ada Lovelace是第一位计算机程序员。
Charles"计算机之父"Babbage设计了第一个可编程计算机。工具

Tommy Flowers和他的团队在11个月内作出"巨像1号"。
"巨像"计算机是第一个可编程电子数码计算机,建造出来是为了破解德国"洛伦茨"加密机。
图灵的Bomba是电子机械密码破解机,但不算第一台计算机。学习

树莓派是便宜的单板计算机,旨在推动计算机基础学习。
Arduions用于快速制做嵌入式设备原型。
2016年7月, 7-11用Flitey无人机进行了美国第一次合法的无人机送货。ui

计算机早期历史

提到的设备:算盘 -> 步进计算器 -> 差分机 -> 分析机 -> 打孔卡片制表机加密

  • 最先的计算设备是算盘。
  • Computer从指代职业变成指代机器。
  • 机器里有名的是:步进计算器(相似汽车里程表,不断累加里程数),第一个能够作加减乘除的机器。
  • 炮弹为了精准,要计算弹道,二战时查表来作。但每次改设计了就须要作一张新表。(表是前人已经作好的)
  • Charles Babbage提出了"差分机"(更复杂的机器,能近似多项式,多项式描述了几个变量之间的关系),在构造差分机期间(项目以失败了结),想出了分析机,分析机是通用计算机(不止是一种特定运算,甚至能够给它数据,而后按照顺序执行一系列操做,它有内存。由于先进,没有形成功)。
  • Lovelace给分析机写了假想程序,所以成为了第一位程序员(“将来会诞生一门全新的,强大的,专为分析所用的语言”)。
  • 人口普查10年一次,Herman Hollerith 的打孔片制表机大大提高了效率(目的是分配联邦资金,国会表明,等等。)。1890年,人口普查要预计十三年时间来手工编制,等作完都过期。

Charles Babbage(计算机之父)说:“随着知识的增加和新工具的诞生,人工劳力会愈来愈少”spa

打孔片制表机
  • 用传统机械来计数,结构相似莱布尼茨的乘法器,但用电动结构链接其它组件。
  • 一种纸卡,上面有网格,用打孔来表示数据。
  • 当卡插入Hollerith的机器时,小金属针会到卡片上,若是有个地方打孔了,针会穿过孔,泡入一小瓶汞,联通电路,电路会驱动电机。

计算机的价值:
能够提高劳动力以及数据密集型任务,来提高利润。操作系统

知足会计,保险评估和库存管理等行业,Hollerith成立了制表机器公司,在1924年与其余机械制造商合并,成为了“国际商业机器公司”(简称IBM)

电子计算机

提到的设备:继电器 -> 真空管 -> 晶体管

  • 20世纪的发展要求更强的计算能力。柜子大小的计算机发展到房间大小。
  • 哈佛 Mark1号,IBM 1944年作的。
  • 继电器一秒最多50次开关。
  • 继电器出bug(bug一词的来源)。
  • 1904年,热电子管出现。第一个真空管,改进后变成和继电器的功能同样。
  • “巨人1号”计算机在英国 布莱切利园 首次大规模使用真空管,但编程麻烦,还要配置。
  • 1946年,宾夕法尼亚大学的ENIAC是第一个通用可编程计算机。
  • 1947年,贝尔实验室作出了,晶体管,晶体管有诸多好处,IBM 很快全面转向晶体管。
  • 硅谷的典故:不少晶体管和半导体的开发都是这里作的。而生产半导体最多见的材料是硅。
  • 肖克利半导体 -> 仙童半导体 -> 英特尔。

一战,二战(运输能力),登录其它星球计划,产生的复杂度的增高致使数据量暴增,须要更多自动化,更强的计算能力。 柜子大小的计算机变成房间大小。(缺点:维护费用高,并且容易出错)

Mark1号
  • 最大机电计算机之一。
  • 它有76万5千个组件,300万个链接点和500英里(804.65千米)长的导线。
  • 为了保持内部机械装置同步,它有一个50英尺的传动轴,由一个5马力的电机驱动。
  • Mark1号大脑是继电器(用电控制的机械开关)
  • 1秒可以作3次加法或减法运算。一次乘法要花6秒,除法要花15秒。比较复杂的操做,好比,三角函数,幂运算,可能要一分钟以上或者更久。
  • 齿轮磨损,任何会动的机械都会随时间磨损。有些部件会彻底损坏,有些则是变粘,变慢,变得不可靠,而且随着继电器数量的增长,故障几率也会增长。
  • Mark1号大概有3500个继电器。须要频繁更换继电器,有些运算须要好几天。
  • 黑色的,温暖的机器也会吸引昆虫。

Bug一词来源:
1947年9月,哈佛Mark 2号的操做员从故障的继电器中,拔出一只死虫。Grace Hopper曾说:“从那时起,每当电脑出现了问题,咱们就说它出了bug(虫子)”

继电器

clipboard.png

  • 继电器里,有根“控制线路”,控制电路是开仍是关,“控制线路”连着一个线圈,当电流流过线圈,线圈产生电磁场,吸引金属臂,从而闭合电路。继电器控制的电子。和开关水的水龙头类似。
  • 这个控制电路能够链接到其它电路,好比:马达(做用:让计数齿轮+1)。
  • 缺点:继电器内的机械臂“有质量”,所以没法快速开关。
  • 在1940年代一个好的继电器1秒能翻转50次。可是不足以解决复杂的大问题。

缺点:速度慢,齿轮磨损,难以维护。

真空管

在1904年,英国物理学家“约翰 安布罗斯 弗莱明”开发了一种新的电子组件,叫“热电子管”。把二个电极装在一个气密的玻璃灯泡里,这是世界上第一个真空管。

  • 其中一个电极能够加热,从而发射电子,叫作“热电子发射”
  • 另一个电极会吸引电子,造成“电龙头”的电流。但只有带正电才行,若是带负电荷或中性电荷,电子就没办法被吸引,越过真空区域。所以没有电流。
  • 二极管:电流只能单向流动的电子部件叫作“二极管”。

需求是:一个能开关电流的东西。而二极管只能作到开。

在不久以后的1906年,美国“李 德福雷斯特”,在“弗莱明”设计的两个电极之间,加入了第三个“控制”电极。

  • 向“控制”电极施加正电荷,它会容许电子流动,但若是施加负电荷,它会阻止电子流动。
  • 所以经过控制线路,能够断开或闭合电路和继电器的功能同样。但重要的是,真空管内没有会动的组件。
  • 意味着损耗大大减低和每秒能够开闭数千次。
  • 所以“三极真空管”成为无线电,电话,以及其它电子设备的基础。
  • 计算机可能要上百个甚至上千个电气开关,造价很是昂贵。

缺点:它们很脆弱,会烧坏。
意义:从机电转向电子

第一次大规模使用真空管的计算机是“巨人1号”,由工程师Tommy Flowers设计, 完工与1943年12月。“巨人1号”在英国的“布莱切利园”,用于破解通讯。“巨人1号”有1600个真空管,总共造了10台巨人计算机,来帮助破解密码。 “巨人1号”被认为是第一个可编程的电子计算机
编程方法是:把几百根电线插入插板(相似老电话交换机),虽然“可编程”,但仍是要配置它。

ENIAC

电子数值积分计算机“ENIAC”,几年后在1946年,在“宾夕法尼亚大学”完成建造。这是世上第一个真正的通用,可编程,电子计算机。

  • 每秒可执行5000次十位数加减法。
  • 真空管不少,因此故障很常见,运行半天左右就会出现一次故障

为了下降成本和大小,同时提升可靠性和速度,须要一种新的电子开关。

晶体管

1947年,贝尔实验室科学家发明了晶体管,一个全新的计算机时代诞生。

晶体管的物理学至关复杂,涉及到量子力学。

晶体管图片:

clipboard.png

  • 它是一个开关,能够用控制电路来控制开或关。
  • 晶体管有两个电极,电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电,叫作:半导体。
  • 控制线连到一个“门”电极,经过改变“门”的电荷,能够控制半导体材料的导电性,来容许或不容许电流流动。
  • 贝尔实验室的展现晶体管,每秒能够开关10000次。并且比玻璃制做,当心易碎的真空管。
  • 晶体管是固态的
  • 晶体管能够远远小于继电器或真空管。
  • 生产半导体最多见的材料是硅。

clipboard.png

clipboard.png

现在,计算机里的晶体管小于50纳米,而一张纸的厚度大概是10万纳米,晶体管不只小,还超级快,每秒能够切换上百次,而且能工做十几年。

布尔逻辑和逻辑门

  • 什么是二进制,为何使用二进制,布尔逻辑。
  • 3个基本操做: NOT, AND, OR。
  • 解释3个基本操做。
  • XOR异或

开始抽象,不用管底层细节,把精力用来构建更复杂的系统。

二进制

计算机最先是机电设备,通常用十进制计数。好比:用齿轮数来表明十进制,再到晶体管计算机。

只用开/关两种状态也能够表明信息,叫作二进制。

为何使用二进制:

  1. 只须要表示truefalse,两个值就够了。电路闭合,电流流过,表明"真"。二进制也能够写成1和0,而不是truefalse,只是不一样的表达方式。
  2. 晶体管的确能够肯定不仅是开/关,还可让不一样大小的电流经过。
  3. 只用“开”和“关”两种状态,减小难区分状态的状况。早期的三进制,三种状态,五进制,五种状态。问题是,状态越多,越难区分信号。干扰元素的存在,好比:手机快没电了或者附近有点噪音,由于有人在用微波炉,信号可能混在一块儿。而每秒百万次变化的晶体管会让这个问题变的更糟糕。因此把两种信号尽量分开。
  4. 有一个整个数学分支存在,专门处理“真”和“假”,它已经解决了全部法则和运算,叫作布尔代数。

布尔,他有兴趣用数学式子,扩展亚里士多德基于哲学的逻辑方法,布尔用 逻辑方程 系统而正式的证实真理(truth)。在“常规”代数里,变量的值是数字,能够进行加法或乘法之类的操做,但在布尔代数中,变量的值是truefalse能进行逻辑操做。

布尔代数中有三个基本操做:NOTANDOR

布尔逻辑

NOT
NOT操做把布尔值反转,把true进行NOT就会变成false,反之亦然。

晶体管能够很容易实现NOT操做,晶体管只是电控制的开关。
有3根线:2根电极和1根控制线。
控制线通电时,电流就能够从一个电极流到另外一个电极。

1根控制线做为INPUT, 2根电极做为OUTPUT

能够把控制线,看成输入(INPUT),底部的电极,看成输出(OUTPUT)。因此1个晶体管,有一个输入和一个输出。

clipboard.png

若是打开输入(INPUT ON)输出也会打开(OUTPUT ON)由于电流能够流过。

clipboard.png

若是关闭输入(INPUT OFF)输出也会关闭(OUTPUT OFF)由于电流没法经过。

改形成NOT GATE
与其把下面那根线看成输出,能够把输出放到上面。
若是打开输入,电流能够流过而后“接地”;输出就没有电流,因此输出是OFF。用水来举例,就像家里的水都从一个大管子留走了,打开淋浴头一点水也没有。因此是输入是on,输出是off

clipboard.png

若是当输入是off,电流无法接地,就流过了输出, 因此输入是off,输出是on

clipboard.png

之因此叫作,是由于它能控制电流的路径。

NOT GATE画法:

三角形前面加一个圆点
clipboard.png

AND

AND操做有2个输入,1个输出。
若是2个输入都是true,输出才是true

为了实现AND GATE,须要2个晶体管连在一块儿。这样有2个输入和1个输出。

若是只打开A,不打开B,电流没法流到OUTPUT,因此输出是false
若是只打开B,不打开A,也同样,电流没法流到OUTPUT
只有A和B都打开了,OUTPUT才有电流。

clipboard.png

AND GATE画法:
用D表示

clipboard.png

OR:
只要2个输入里,其中1个是true,输出就是true
只有2个输入都是falseOR的结果才是false

实现OR GATE除了晶体管还要额外的线。不是串联起来,而是并联。
而后左边这条线有电流输入,用“小拱门”表明2条线没有链接在一块儿,只是跨过而已。

clipboard.png

若是A和B都是off,电流没法流过,因此输出是off
若是打开A,电流能够流过,输出是on;若是只打开B也同样。
若是A,B都on,结果是on

A和B都是off的状况:

clipboard.png

只打开A或者,只打开B的状况:

clipboard.png

OR GATE画法:
用太空船表示

clipboard.png

XOR异或

XOR就像普通的OR,但有一个区别:
若是2个输入都是trueXOR输出false
想要XOR输出true,一个输出必须是true,另一个必须是false

clipboard.png

用晶体管实现XOR门:
使用OR GATE, AND GATE, NOT GATE3种门来作XOR

  1. 有2个输入,A和B,还有1个输出。
  2. 先放一个OR门,由于ORXOR的逻辑表很像。
  3. 只有1个问题,当A和B都是true时,OR的输出和想要的XOR输出不同,须要的是false,因此要加多个门。
  4. 若是加一个AND门,输入是truefalse,输出会是true,也不是所须要的,但若是在AND的输出加个NOT就能够把true翻转成false了。
  5. 最后加一个AND门,而后AND门的2个输入

分别来自NOT和最原始OR,AND会收到falsetrue,由于AND须要两个输入都为true,都结果才是true因此输出是false

clipboard.png

XOR画法:

一个OR门 + 一个笑脸
clipboard.png

相关文章
相关标签/搜索