2. 计算机的发展应用
文章目录
- 2. 计算机的发展应用
- 2.1 计算机的发展史
- 2.1.1 计算机的产生和发展
- 2.1.2 微型计算机的出现和发展
- 2.1.3 软件技术的发展和兴起
- 2.2 计算机的应用和展望
- 本笔记参考哈工大刘宏伟老师的MOOC《计算机组成原理(上)_哈尔滨工业大学》、《计算机组成原理(下)_哈尔滨工业大学》。
- 或者是B站《计算机组成原理(哈工大刘宏伟)135讲(全)高清》,大家一起听比较热闹。
- 中文教材:《计算机组成原理(第二版)-唐朔飞.pdf》、《学习指导与习题解答(第2版)-唐朔飞.pdf》
- 本篇笔记对应课程第二章(下图加粗)。
2.1 计算机的发展史
- 第一台电子计算机是什么时候出现的?
- 第一台电子计算机的基本指标?
- 出现的驱动力是什么,发展的驱动力是什么?——>需求+技术发展
- 主要部件的发展情况?
- 主要部件的发展规律是什么?
- 主要代表机型?
- 微型计算机的发展?
- 软件的发展?
这部分内容不是课程的主要内容,所以本章只是简单讲述,上面给出了本节关心的问题。
2.1.1 计算机的产生和发展
实际上,当时有非常多计算机同时研制,所以谁是第一台计算机到目前仍然有争议。由于1946年诞生的 ENIAC 对后世计算机产生了非常深远的影响,并从中演化出第一台冯·诺依曼架构的 EDVAC,所以教材中默认 ENIAC 是第一台计算机。下面是ENIAC的基本指标:
- 十进制运算。
- 18000多个电子管、1500多个继电器。
- 功耗150千瓦。
- 重量30吨。
- 占地面积1500平方英尺。
- 运算速度5000次加法/秒。
- 主要用途:计算弹道表。
- 编程方式:手动搬动开关、手动插拔电缆,非常繁杂。
可以参考视频:【纪录片】第一台通用电子计算机的诞生-ENIAC的历史
计算机发展的第一大驱动力就是“需求、需求、还是TM的需求”!比如当时弹道研究实验室每天需要给军方提供6张火力表,但是单个火力表包含几百条弹道、每个弹道又是一组非常复杂的非线性方程,即使200名研究人员加班加点,也需要两个月才能计算完一张火力表,所以才驱动了 ENIAC 的研究。计算机发展的另一大驱动力就是“技术发展”,“电子技术”和“计算机体系结构技术”的发展大大推动了计算机技术的发展。于是,我们便使用硬件技术的发展来衡量计算机发展的迭代次数:
时间 | 硬件技术 | 运算速度(次/秒) | |
---|---|---|---|
一代 | 1946-1957 | 电子管 | 40K |
二代 | 1958-1964 | 晶体管 | 100K |
三代 | 1965-1971 | 中小规模集成电路 | 1M |
四代 | 1972-1977 | 大规模集成电路 | 10M |
五代 | 1978-现在 | 超大规模集成电路 | 100M |
下面总结一下历史上有重大影响的计算机:
- ENIAC:1943年研制,1946年投入使用,1955年退役,主要给军方计算弹道表。
- EDVAC:1945年提出,1949年交付,1961年退役。由ENIAC的顾问——冯·诺依曼,对ENIAC的架构进行改进而提出,也就是后来的“冯·诺依曼架构”。
- EDSAC:1946年研制,1949年投入使用。受EDVAC启发,是世界上第一台实际运行“冯·诺依曼架构”的计算机。
- IAS machine:1946年研制,1952年投入使用。采用“冯·诺依曼架构”。
- IBM360系列产品:1961年开始研制,1964年成功。IBM公司的里程碑产品,采用“大主机结构”。研制过程中提出“计算机系统结构”的概念,定义了计算机软硬件的交界面,标志着计算机的从低速发展跨入了快速迭代发展的时代。
2.1.2 微型计算机的出现和发展
通常来说,“微处理器”是指用一片大规模集成电路组成的处理器,该处理器集成了运算器、控制器。“微型计算机”则是指使用微处理器的、使用大规模集成电路的、面向个人用户的、体积小、重量轻、价格低的计算机。显然关键器件就是“微处理器”、“微存储器”。Intel在1971年发布了第一款微处理器——Intel 4004,机器字长只有4位,慢慢发展到现在的64位。1969年则出现世界上第一个大容量SRAM存储器——C1103,存储容量只有256位,到现在的32GB、64GB。下表给出了 Intel 的典型微处理器产品:
参考鲜枣课堂官网:一文看懂内存芯片的发展史。
产品编号 | 机器字长 | 发布年份 | 规模 |
---|---|---|---|
8080 | 8位 | 1974年 | |
8086 | 16位 | 1979年 | 2.9万个晶体管 |
80286 | 16位 | 1982年 | 13.4万个晶体管 |
80386 | 32位 | 1985年 | 27.5万个晶体管 |
80486 | 32位 | 1989年 | 120.0万个晶体管 |
Pentium | 64位(准) | 1993年 | 310.0万个晶体管 |
Pentium Pro | 64位(准) | 1995年 | 550.0万个晶体管 |
Pentium II | 64位(准) | 1997年 | 750.0万个晶体管 |
Pentium III | 64位(准) | 1999年 | 950.0万个晶体管 |
Pentium IV | 64位 | 2000年 | 4200.0万个晶体管 |
上表引起我们思考,芯片能够集成晶体管的数量是否和时间有一定的关系呢?这就是“摩尔定律”。“摩尔定律”指出,时间坐标和晶体管集成规模具有指数关系,也就是“处理器的性能大约每两年翻一倍,同时价格下降为之前的一半”。
2.1.3 软件技术的发展和兴起
计算机能够得到广泛的应用,也离不开软件的发展,也就是编程语言的发展。最底层的编程语言是“机器语言”,但是机器语言面向机器,相同的应用程序很难在不同的机器上运行。在计算机发展早期,几乎是每台新机器都会有新的指令集。汇编语言也面向机器,但是比机器语言更加方便记忆书写。最后在“编译器”的封装下,高级语言面向问题,和底层具体的指令集关系不大,进而使编程效率大大提高。下面是一些常见的高级语言:
- FORTRAN:科学计算和工程计算
- PASCAL:结构化程序设计
- C++:面向对象
- Java:适应网络环境
除了编程语言的发展外,系统软件的发展也至关重要。系统软件可以帮助程序员管理软硬件资源,下面给出常见的系统软件:
- 语言处理程序:汇编程序、编译程序、解释程序…
- 操作系统:DOS、UNIX、Windows、Linux…
- 服务性程序:装配、调试、诊断、排错。
- 数据库管理系统:数据库和数据库管理软件。
- 网络软件。
硬件开发中会有一些辅助工具,甚至可以组装自动化流水线,但是软件发展到今天,仍然还需要人来进行开发,包括开发、使用和维护程序所需要的所有文档(ChatGPT也需要基于已有的代码才能生成)。最后总结一下软件发展的特点:
- 开发周期长。大型软件都是几千万行代码甚至更长。
- 制作成本昂贵。软件开发人员多、薪资高。
- 检测软件产品质量的特殊性。很难检测到所有的场景。
一句话:很难的啦~🤣
2.2 计算机的应用和展望
下面给出目前计算机的常见的应用场景:
- 科学计算和数据处理:这是创造计算机的初衷。“科学计算”比如天体建模、核爆炸模拟、天气预报、流体建模等,通常使用HPC。“数据处理”比如电信、银行、税务等数据密集型的任务,单个事务运算量不大但是数量极多,主要使用“大主机结构”的计算机。
- 工业控制和实时控制:“自动化”、“自动驾驶”等都需要通过计算机来控制。
- 网络技术:比如电子商务、网络教育、敏捷制造等。
- 虛拟现实:显然需要计算机实时计算和显示。比如飞行员训练系统。
- 办公自动化和管理信息系统。
- CAD/CAM/CIMS:仿真软件。
- 多媒体技术。
- 人工智能。
…
最后是一些展望:
- AI的发展:计算机具有类似人脑的一些超级智能功能,要求计算机的速度够快、存储容量够大。
- 芯片集成度的提高会受到限制,摩尔定律会受到考验。比如因为以下因素导致芯片集成度难以持续提高:
- 芯片集成度受物理极限的制约。
- 制作成本按几何级数递增。
- 芯片的功耗、散热、线延迟等缺陷会进一步增加。
- 传统硅基芯片会被替代:
- 光计算机:现在已经实现了利用光子进行数据的存储和运输,是否能使用光子完成运算。
- DNA生物计算机:通过控制DNA分子间的生化反应完成计算。
- 量子计算机:利用原子所具有的量子特性完成计算,量子领域热门的话题是量子密码。