本文从发展历史和分类两方面介绍计算机。
历史上,计算机历经前电子计算、电子管、晶体管、集成电路、微处理器和现代化时代,从机械工具逐步发展到电子设备,再到如今的云计算和量子计算技术。
对计算机分类,包括经典分类,以及现代化分类,不同类型有各自特点和应用领域。
发展历史
前电子计算时代
简述
这个时期的标志是使用纯机械设备进行计算。
介绍
17世纪以前,人们使用 “算盘”“计算尺” 等工具手动计算,它们被视为基于机械原理进行计算。
1642年,布莱兹·帕斯卡发明了帕斯卡计算器,用于加减法计算,不具有编程性。
1673年,戈特弗里德·莱布尼兹改进了帕斯卡计算器,让其支持四则运算。
1837年,查尔斯·巴贝奇提出分析机,定义了五个核心部件:输入、处理、存储、控制、输出。助理阿达·洛芙莱斯为其编写了程序。
1890年,赫尔曼·霍尔瑞斯发明打孔卡制表机,开创性地用电气替代了纯机械,计算效率得到提升,标志着数据处理自动化的开端。该公司后发展为成立IBM的三家公司之一。
备注
- 查尔斯·巴贝奇被誉为 “计算机之父” 或 “通用计算机之父” 。
- 阿达·洛芙莱斯被誉为 “第一个程序员” 。
电子管时代
简述
这个时期的标志是使用电子管作为逻辑开关元件,计算机走向电子化(不再是纯机械)。
理论基础是克劳德·香农的《开关电路理论》,将布尔代数与电路结合,为数字电路设计奠定了基础。
介绍
1939-1942年,ABC计算机诞生,是世界上第一台电子计算机,但不可编程。
1943-1944年,英国的巨人计算机秘密运行,用于破译密码,是第一台可编程的电子计算机。
1944年,哈佛Mark I计算机诞生,是最后一台大型机电式计算器(使用继电器工作),能够自动化执行复杂计算,是计算机从纯机械到电子的重要过渡。
1945年,冯·诺依曼在设计汇报EDVAC(新机器)时,针对ENIAC的缺陷(此时ENIAC还在实验中,未公布)提出了“存储程序”的构想,该设计奠定了现代计算机体系结构。
1946年,ENIAC在美国公开,通常认为其是世界上第一台通用计算机。其体积庞大(占地170平米),需要18000个电子管,能耗大,编程需要插拔电缆和设置开关来完成。
备注
- 冯·诺依曼被誉为“现代计算机之父”。
- 哈佛Mark I计算机被称为“哈佛结构”,冯·诺依曼提出的结构被称为“冯·诺依曼结构”,或称为“普林斯顿结构”。二者在一定程度上有互补性,“哈佛结构”衍生出“改进型哈佛结构”调和了二者的优势和劣势。“冯·诺依曼结构”成为现代结构的主要奠基,“哈佛结构”反而催生了现代CPU缓存设计,称为“片上哈佛”。
晶体管时代
简述
晶体管和电子管都可以实现数字电路控制、模拟信号放大。而晶体管体积、功耗更小,可靠性更高。晶体管在取代电子管后,推动了计算机小型化、商用化。
介绍
1947年,贝尔实验室发明晶体管。
20世纪50年代中后期,晶体管计算机走向商业用途。它们不再局限于科研机构,而是到大型企业、银行等,负责财务、库存等业务。
集成电路时代
简述
1958年,杰克·基尔比和罗伯特·诺伊斯发明了集成电路,将多个晶体管集成到单一芯片上。
介绍
1964年,IBM推出System/360,定义了大型机。它采用集成电路,是首个系列化、软件兼容的大型机家族。
1965年,DEC推出的PDP-8被公认为第一台真正的小型机。其体积更小(仅一个冰箱大小),价格1.8万美金(大型机动辄百万)。
1970年,DEC发布了更强大的PDP-11系列,称为小型机经典和行业标准。
备注
- 系列化:不是推出一款单一的计算机,而是推出由不同性能、尺寸和价格组成的“计算机族”。类似于买手机时的各种配置(iPhone 17、iPhone 17 Pro、iPhone 17 Pro Max)。一个“计算机族”的用户体验是相同的,界面一样,程序员的编程模型也相同。从低端型号也可以平滑升级到高端,而不需要抛弃已有软件。
- 软件兼容:得益于CPU的统一指令集架构,一致的I/O架构,软件可以轻松移植。
- 此时期以集中式计算为主,用户使用“哑终端”负责输入输出(往往不具备通用计算能力),与服务器连接进行计算(共享中央大型机的计算资源)。
微处理器时代
简介
将整块CPU集成到一个芯片中(MPU),在之前大型机时代CPU可能由多个芯片组成。
介绍
1971年,Intel推出第一颗微处理器4004。
1977年,“个人电脑三巨头”问世:Apple II、Commodore PET和TRS-80。
1981年,IBM PC发布,使用Intel处理器和MS-DOS操作系统。
1984-1985年,Macintosh和Windows操作系统普及了用户操作界面。
1991年,Linux内核和GNU等开源运动蓬勃发展,深刻影响了服务器领域。
2007年,Apple发布iPhone,重新把手机定义为“智能手机”。
备注
- 在一般语境下MPU和CPU是相同的含义。
- 在嵌入式领域中MPU一般用于和MCU产生对比。
-
- MCU集成了CPU、RAM等许多部件到一个芯片上。
- MPU与其相反,MPU只有简单的CPU,依赖外部的RAM等外设。
- Apple把手机从“可以上网的电话”重新定义为“可以打电话的电脑”,并大胆地放弃物理键盘,让电容屏占据手机主导位置。在此之前,手机一般包含全键盘型(黑莓)、数字键盘(诺基亚)或电阻屏。操作系统复杂、软件生态割裂、只能访问简单的网站(WAP网络)获取新闻等。
- 不可否认的是Apple并非这一切的创造者,在此之前触控屏(电容屏)技术、移动操作系统等都早已存在,Apple更像是一个整合者和标准定义者。
现代化时代
简介
通过虚拟化技术,为用户提供云上弹性计算资源。满足用户大数据、AI等方面的需求。
介绍
2006年,亚马逊推出弹性计算云(EC2) 和简单存储服务(S3) 。
如今,大数据与AI大量依赖GPU算力、更多嵌入式设备使用物联网与服务器连接、量子计算正在兴起。
计算机分类
经典分类
超级计算机/超级计算集群
超级计算机本身是一个集群,它是由节点通过高速网络相连而组成,提供极致的科学算力。
节点
一台功能完整的高性能服务器。拥有自己的CPU、内存、本地存储、网络接口等。
异构
节点中可能有异构计算,例如CPU负责控制,GPU等负责运算。
通信
每个CPU有自己的核心和私有内存。CPU内核心使用片上系统网络SoC通信,也可以用共享内存通信。
不同CPU之间通过高速网络进行通信。
任务
主要追求浮点数计算能力,因为超级计算机最主要的设计目的就是模拟现实。而现实的物理量往往是连续的,精度在此时尤为重要。根据混沌系统的特性可知,初始的一小点偏差都会导致截然不同的结果。
大型机
大型机是集中式计算的一个代表,它要求绝对可靠,全年不宕机(高可用率)。目前已经基本淡出人们视野,只在特殊领域(例如:金融)会见到。
冗余
设有多套CPU、内存等物理设备。某个设备宕机时,可秒级切换,确保服务不会中断。
多套CPU同时运算,验证结果,确保计算正确。
封闭
大型机的设计很封闭,有专门为其设计的操作系统和软件。大型机被设计出来后一般包罗万象,操作系统内含有大量厂商开发的工具。
小型机
小型机在体型上比大型机更小,也去除了冗余设置,在软件层面更开放。目前因微型机诞生,小型机已经在市场消亡。
冗余
与大型机不同的是,小型机没有冗余的CPU、内存等。往往采用横向扩展的方式,当一台服务器故障时,整机下线,服务引流到其他正常的服务器。
软件生态开放
小型机一般运行Unix操作系统(或者其变体),是专门适配于该小型机的。但小型机提供标准化的API接口(系统调用),使得软件开发变得容易。
微型机
CPU直接封装到一块芯片中,比小型机更小,继承了小型机的优点,消除了小型机的劣势。
软硬件生态开放
硬件、软件都有统一标准和开放的生态。用户可以挑选自己的CPU、显卡、主板等自由组装。也可以根据需要安装操作系统,并在操作系统上安装所需要的软件。
B端市场
使用微型机作为服务器成本更低,小型机的市场份额被占据,最终导致小型机在市场消亡。
高端微型机可以作为工作站使用,用于渲染视频等高算力任务。
C端市场
微型机延伸到了C端,取代了“哑终端”。
嵌入式
嵌入式设备的核心分为MCU和MPU两种。
- MCU(微控制器) :集成了CPU、内存、时钟、电源管理、程序存储器等一系列功能单元的集成电路(一块芯片,也称单片机)。
- MPU(微处理器) :与MCU相反,自身(芯片)没有集成这么多功能单元,运行时必须依赖外部设备(例如内存)。通常,MPU和CPU是指相同的东西。
嵌入式负责的是“非通用计算领域”,和前面提到的计算机(通常指通用计算机)并不相同。
现代分类
超级计算机/超级计算集群
提供极致科学算力。
大型机
确保核心数据安全,计算过程绝对可靠。
服务器/服务器集群/云服务
通用企业服务与灵活(弹性)扩展。
一般为x86或x86_64架构。
取代了昔日小型机。
PC/智能手机
个人与移动计算。