Colossus是英国破译员在1943-1945年期间开发的一套计算机,以帮助进行洛伦兹密码的密码分析。Colossus使用热电偶阀(真空管),以纸带作为输入器件,来进行布尔运算和计数运算。因此,尽管它是通过开关和插头来编程的,而不是通过存储的程序,Colossus仍被认为是世界上第一台可编程的电子数字计算机。
Colossus使用穿孔纸带输入密文,纸带每行有5个孔位,对应ITA2中的5位二进制。纸带长约61米,穿孔25000行。共设有两个纸带支架,在一条纸带工作的时候,操作人员可以准备好下一条纸带,交替使用,节省纸带更换时间。由于机器内部没有数据存储模块,纸带的头尾相接,形成环状,以便循环读取。纸带的读取速度十分惊人——每秒5000行。
Colossus基于图灵方法,用电路模拟“金枪鱼”的转轮位置及其导电触点的通断状态。密文流入机器后,经过一系列以异或为主,与、或、非为辅的逻辑运算,最终由电动打字机输出结果。这个结果当然不可能就是明文,而是各种统计数据,比如某个字符出现的次数,或者某些数值满足某种逻辑条件的次数,有点像现在的数据挖掘。机器内有5个电子计数器,可同时统计5项数据。密码学家根据统计结果找到密文中暗藏的线索,调整机器程序,得到新的统计结果后继续分析,如此往复,一步步逼近最终的正确答案。
1945年,ENIAC:编程化机电数字计算机ENIAC,全称为Electronic Numerical Integrator And Computer,即电子数字积分计算机。ENIAC是继ABC(阿塔纳索夫-贝瑞计算机)之后的第二台电子计算机和第一台通用计算机。它于1946年2月14日在美国宣告诞生,是完全的电子计算机,能够重新编程,解决各种计算问题。
ENIAC长30.48米,宽6米,高2.4米,占地面积约170平方米,30个操作台,重达30英吨,耗电量150千瓦,造价48万美元。它包含了17,468根真空管(电子管)7,200根水晶二极管,1,500 个中转,70,000个电阻器,10,000个电容器,1500个继电器,6000多个开关,计算速度是每秒5000次加法或400次乘法,是使用继电器运转的机电式计算机的1000倍、手工计算的20万倍。
数据的输入输出设备是现成的IBM读卡器和穿孔机,分别受控于输入模块和输出模块。每张穿孔卡片可存8个10位十进制数,读取一张卡片需要0.48秒,穿孔一张卡片需要0.6秒。输入、输出模块分别占据3块面板,均使用继电器临时存储数据,它们是连接机器外部和内部的数据缓存池。
1948年,The Manchester Baby,第一台电子存储程序计算机;1949年,改进为Manchester Mark 1;1951年,Mark 1已经发展成为曼彻斯特电子计算机(Ferranti Mark 1),世界上第一台商业化的通用计算机。Manchester Baby,也被称为小规模实验机(SSEM),是第一台电子存储程序计算机。它由Frederic C. Williams,Tom Kilburn和Geoff Tootill在曼彻斯特大学建造,并于1948年6月21日运行了第一个程序。
Manchester Baby的字长为32位,内存为32个字(1千比特,1,024比特)。由于它被设计成最简单的存储程序计算机,在硬件中实现的唯一算术运算是减法和负数;其他算术运算则由软件实现。为该机器编写的三个程序中的第一个程序通过测试从218向下的每一个整数,计算出218的最高适当除数(262,144)。这个算法需要很长的时间来执行,因此也证明了计算机的可靠性,因为除法是通过重复减去除数来实现的。该程序由17条指令组成,运行了约52分钟,在Manchester Baby进行了约350万次操作(CPU的有效速度约为每秒1100条指令)后,得出了131,072的正确答案。
Manchester Baby并不是一个实用的计算引擎,而是被设计为威廉姆斯管的测试平台,这是第一个真正的随机存取存储器。在创建50年后,它被认为是第一台包含现代电子数字计算机必不可少的所有元素的工作机器。在Manchester Baby证明了其设计的可行性之后,大学就启动了一个项目,将其开发成一个全面的操作机器Manchester Mark 1。Mark 1 又迅速成为世界上第一台商用通用计算机Ferranti Mark 1 的原型。
1949年,EDVAC:二进制存储程序计算机离散变量自动电子计算机(Electronic Discrete Variable Automatic Computer,EDVAC)是一台美国早期电子计算机,是第一台现代意义的通用计算机。与它的前任ENIAC不同,EDVAC采用二进制,而且是一台冯·诺伊曼结构的计算机。整台计算机共使用大约6000个电子管和大约12000个二极管,功率为56KW,占地面积45.5平方米,重7850KG,使用时需要三十个技术人员同时操作。
EDVAC是二进制串行计算机,具有加减乘和软件除的功能。一条加法指令约864微秒,乘法指令2900微秒(或2.9毫秒)。使用延迟线存储器,具有1000个44位(bit)的字。它由五个基本部分组成:运算器CA、控制器CC、存储器M、输入装置I、输出装置O。这种体系结构一直延续至今,现在使用的计算机,其基本工作原理仍然是存储程序和程序控制,所以现在一般计算机被称为冯诺依曼结构计算机。