计算机科学速成课随笔2

Posted naoziinicu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机科学速成课随笔2相关的知识,希望对你有一定的参考价值。

中央处理器(CPU)

计算机的心脏就是“中央处理单元”,简称“CPU”

CPU负责执行程序,而程序由一步步的操作完成,这些操作就叫做“指令”

但是对于俺们小白来说,详细的理解CPU的各个组件和各个线的分布是不太可能的

我们需要一个高层次的视角叫做“微体系架构”(应该就是抽象的理解一下的意思

 想要简单的组建一下CPU我们需要一个RAM,和几个寄存器用来临时存数据和操作数据,如下图

 

假设给所有cpu支持的指令,分配一个ID并制定一个指令表,例如下图

 

前四位用来储存操作指令,简称为操作码,后四位为地址可以是寄存器其或内存地址

 第一个阶段叫做取指令阶段,将“指令地址寄存器”连接到RAM

第二个阶段叫做解码阶段,将前4位在指令表中查询是什么指令(如上图的LOAD_A),后四位是RAM的地址,指令由“控制单元”进行解码(经过逻辑门判断)

第三个阶段是执行阶段,通过各种电线对于各个部分的操控将所得的数据按照解码之后的操作指令进行处理

处理完整之后,将“指令地址寄存器”+1去找下一条地址,“执行阶段”就此结束。

 

不同指令由不同逻辑电路解码,会配置CPU的组件进行相应的操作

以上的操作可以简记为“取指令—>解码—>执行”操作

后反复执行如此操作,至此为一个循环

 

但是计算机cpu有限,还要进行大量工作

就需要“时钟”来管理CPU的节奏

时钟以精确的间隔 触出发电信号,控制单元会用这个信号,推进CPU的内部操作,确保程序正常进行

CPU“取指令—>解码—>执行”操作的速度叫做”时钟速度“,单位是赫兹

 

计算机超频,相当与将计算机的时钟速度加快,达到提升性能的效果,但是会使CPU过热或产生乱码,因为信号跟不上时钟

计算机降频,在不需要太高性能时,可以达到省电的功能,何乐而不为

很多现代处理器可以按照需求,加快或减慢时钟速度,这叫做”动态调整频率“

 

计算机科学速成课 02:电子计算机继电器术语“bug”的来源真空管晶体管发展路径 转

目录:

一、继电器

二、术语“bug”的来源

三、真空管

四、晶体管

五、基础单元的发展路径


一、继电器

1937年最大的机电计算机之一是哈佛的马克一号,是IBM在1944年给二战同盟国建造的。该机器的大脑是由继电器(relay)构成的,存在大约3500个继电器。

继电器:用电控制的机械开关

控制线路用于控制电路的开关,它连接着一个线圈,当线圈通电时,会产生感应磁场,由此能够吸引上方的金属臂,从而闭合电路,得到高电平。

性能:1940年一个好的继电器1秒能翻转50次。哈佛马克一号1秒能做3次加减法运算,一次乘法需要6秒,除法需要15秒,三角函数需要一分钟以上。

缺点:控制开关的金属臂是“有质量的”,因此无法快速开关。并且金属臂的反复移动就会存在磨损(任何会动的机械都会随时间磨损),哈佛马克一号平均每天需要更换一个故障继电器。


二、术语“bug”的来源

1947年9月,哈佛马克2型的操作员从故障继电器中,拔出一只死虫,Grace Hopper曾说“从那时起,每当电脑出了问题,我们就说它出了bug(虫子)”。


三、真空管

1904年,英国物理学家John Ambrose Fleming开发了新的电子组件——热电子管(Thermionic valve)。

热电子管:把两个电极装在一个气密的真空玻璃灯泡中。其中一个电极A可以加热,从而发射电子,称为热电子发射(Thermionic emission);另一个电极B会吸引电子,来形成电流。

但只有当电极B带正电时才能吸引电子,否则当电极B带负电荷或者中性电荷时,电子就无法跨越真空区域。

电流只能单向流动的电子部件叫“二极管”。但我们需要的是,一个能开关电流的东西。

1906年,美国发明家“Lee de Forest”在“John Ambrose Fleming”设计的两个电极之间,加入了第三个“控制”电极。向“控制”电极施加正电荷,它会允许电子流动,但如果施加负电荷,它会阻止电子流动。因此通过控制线路来断开或闭合电路,实现了继电器的功能,但重要的是,真空管内没有会动的组件,这意味着更少的磨损。

性能:每秒可开闭数千次。

优势:和继电器相同的是,可以通过一个控制线路来控制断开或闭合电路,并且真空管内没有会动的组件,因此存在更少的磨损。

缺点:比较脆弱,并且会像灯泡一样烧坏,并且体积比较大。

真空管的出现,标志着计算机从机电转向电子

第一个大规模使用真空管的计算机是巨人1号,由工程师Tommy Flowers设计并于1943年12月完工。巨人1号包含1600个真空管,并被认为是第一个可编程的电子计算机,编程方法是把几百根电线插入插板,由此让计算机执行正确操作。

电子数值积分计算机ENIAC,在1946年于宾夕法尼亚大学设计制造,这是世上第一个真正的通用可编程电子计算机,每秒可执行5000次十位加减法。但是由于存在大量的真空管,因此ENIAC运行半天左右就会出现一次故障。


四、晶体管

1947年,贝尔实验室科学家 John Bardeen,Walter Brattain,William Shockley发明了晶体管。原理过于复杂,这里只涉及基础部分。

晶体管:类似于继电器和真空管,晶体管也是一个用于控制电路闭合断开的开关。晶体管有两个电极,这两个电极之间通过半导体材料隔开。

晶体管有两个电极,电极之间有一种材料隔开它们,这种材料有时候导电,有时候不导电,这叫“半导体”。控制线连到一个“门”电极,通过改变“门”的电荷,我们可以控制半导体材料的导电性,来允许或不允许电流流动。

这里通过控制连接到半导体的电极电荷数,可以控制半导体的导电性,由此来控制电流是否流动。当控制线路通电时,两个电极接通,否则两个电极断开。

性能:每秒可开关10000次。

优势:相比玻璃制成的真空管(玻璃的、易碎的),晶体管是固态的,并且体积远小于继电器和真空管。

第一个消费者可购买的,完全由晶体管构成的计算机是1957年发布的IBM 608,它有3000个晶体管,每秒执行4500次加减法,或80次左右的乘除法。

如今,计算机里的晶体管小于50nm,并且每秒可切换上百万次,工作几十年。很多晶体管和半导体开发在圣克拉拉谷,位于旧金山和圣河西之间,由于制造半导体最常见的材料是硅,由此这个地方被称为“硅谷”。并且William Shockley搬过去创建了肖克利半导体,里面的员工后来成立了仙童半导体,而这里面的员工后来创立了英特尔,当今最大的计算机芯片制造商。


五、基础单元的发展路径

计算机的大脑 基础单元的发展路径:继电器→真空管→晶体管。


 

原创链接:

以上是关于计算机科学速成课随笔2的主要内容,如果未能解决你的问题,请参考以下文章

推荐视频-计算机科学速成课(0,1能干的事情)

计算机科学速成课 02:电子计算机继电器术语“bug”的来源真空管晶体管发展路径 转

学长学妹都喜欢的计算机科学速成课,悄悄说一句:大学能刷完的都是幸运的仔!

2021.06.06 幸福公开课第一课随笔

即时编译器(JIT) 速成课

python教程(目录)