导读:本文聊一聊计算机是如何使用晶体管实现二进制计算的。
如果你感觉文章略长,可以直接到文章末尾看总结文字。
1.理论先行1.1.二进制思想的提出
二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现的。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
1.2.二进制思想的初步实现
(1)二进制与逻辑代数
1854年,英国数学家乔治·布尔(George Boole)发表了一篇具有里程碑意义的论文,详细描述了一种逻辑代数系统,该系统将被称为布尔代数。他的逻辑推理是在数字电子电路的设计中起了重要的作用。
(2)继电器开关实现二进制的设想
1937年,克劳德·香农(Claude Shannon)在麻省理工学院发表了他的硕士论文,在历史上第一次使用电子继电器和开关实现了布尔代数和二进制算术。
香农的论文题目是对继电器和开关电路的符号分析,基本建立了实用的数字电路设计。
(3)继电器计算机
最早使用继电器制造计算机的是贝尔实验室的乔治·斯蒂比兹(George Stibitz),1937年,他制作出了一个可完成两位数加法的模型,被称为Model-K。
其实,Model-K只是一个继电器计算器的演示品,还很简陋。
在上级的支持下,1940年初,继电器计算器M-1成功运行,它使用了440个继电器,可以解决当时贝尔实验室做电学研究中面对的大量复数的加减乘除四则运算问题。
它开创了一个时代,这就是数字计算机时代,使用二进制来运算,而之前的计算机械大都是基于常用的十进制数的。
下图就是一台继电器计算机。
1.3.二进制思想在现代计算机上的实现
(1)第一台电脑
1946年诞生了第一台现代电子计算机ENIAC,ENIAC程序和计算是分开的,也就意味着你需要手动输入程序。
这种程序的输入需要借助手工插接线的方式进行的,没有存储器且它用布线接板进行控制,运算速度可想而知。而且ENIAC使用的是十进制计算,并不是二进制。
这个时候一位美籍匈牙利数学家——冯·诺伊曼,登场了。
(2)冯·诺依曼的设想
1945年,冯·诺依曼和他的研制小组在共同讨论的基础上发表了一个全新的“存储程序通用电子计算机方案”——EDVAC(Electronic Discrete Variable Automatic Computer),这是一份长达101页的总结报告。
报告广泛而具体地介绍了制造电子计算机和程序设计的新思想。
EDVAC方案明确奠定了新机器由五个部分组成,包括:运算器、逻辑控制装置、存储器、输入和输出设备,并描述了这五部分的职能和相互关系。
报告中,冯·诺依曼对EDVAC中的两大设计思想作了进一步的论证,为计算机的设计树立了一座里程碑。
设计思想之一是二进制,他根据电子元件双稳工作的特点,建议在电子计算机中采用二进制。报告提到了二进制的优点,并预言,二进制的采用将大大简化机器的逻辑线路。
(3)冯·诺依曼的实现
1952 年由计算机之父冯·诺依曼设计的电子计算机EDVAC问世。
与它的前任ENIAC不同,EDVAC采用二进制,而且是一台冯·诺依曼结构的计算机。冯·诺依曼的设想在这台计算机上得到了圆满的体现。
EDVAC是第一台现代意义的通用计算机。它由五个基本部分组成:运算器CA;控制器CC;存储器M;输入装置I;输出装置O。
这种体系结构一直延续至今,现在使用的计算机,其基本工作原理仍然是存储程序和程序控制,所以现在一般计算机被称为冯·诺依曼结构计算机。
1.4.二进制运算的好处
(1)二进制状态实现简单,可以使用元件开关特性、电压高低特性。广泛来说,只要一个事物具有两种对立状态都可以作为二进制思想的实现。
比如前段时间去世的张首晟教授,他的研究方向之一就是电子自旋,利用电子自旋的两个方向也可以实现二进制思想;
(2)可靠性、稳定性高,只有两个状态,所以抗干扰性强;
(3)运算规则简单,简化设计;
(4)通用性强。
2.从晶体管到“1 1=2”我们都知道一台计算机的核心就是处理器(CPU),它的职责之一就是运算。
而CPU是一块超大规模的集成电路,所以我们要想弄清楚计算机的运算机制就要明白集成电路是如何具有运算能力的,而集成电路是由大量晶体管等电子元件封装而成的,所以探究计算机的计算能力就可以从晶体管的功能入手。
2.1.晶体管如何表示0和1
从第一台计算机到EDVAC,这些计算机使用的都是电子管和二极管等元件,利用这些元件的开关特性实现二进制的计算。
然而电子管元件有许多明显的缺点。例如,在运行时产生的热量太多,可靠性较差,运算速度不快,价格昂贵,体积庞大,这些都使计算机发展受到限制。
于是,晶体管开始被用来作计算机的元件。
晶体管利用电讯号来控制自身的开合,而且开关速度可以非常快,实验室中的切换速度可达100GHz以上。
使用了晶体管以后,电子线路的结构大大改观,进入了晶体管为代表的第二代电子计算机时代。
1947年贝尔实验室的肖克利等人发明了晶体管,又叫做三极管。下面是晶体管的产品照片。
需要说明的是,晶体管有很多种类型,每种类型又分为N型和P型,下面图中的电路符号就是一个N型晶体管。