计算机发展的四个阶段
- 1946~1957:电子管计算机
- 1957~1964:晶体管计算机
- 1967~1980:集成电路计算机
- 1980~至今:超大规模集成电路计算机
第一个阶段:电子管计算机(1946~1957)
第二次世界大战是电子管计算机产生的催化剂(英国为了解密德国海军的密文)
- 集成度小,空间占用大
- 功耗高,运行速度慢
- 操作复杂,更换程序需要接线
第二个阶段:晶体管计算机(1957~1964)
- 集成度想对较高,空间占用相对小
- 功耗相对较低,运行速度较快
- 操作相对简单,交互更加方便
第三个阶段:集成电路计算机(1967~1980)
- 计算机变得更小
- 功耗变得更低
- 计算速度变得更快
第四个阶段:超大规模集成电路计算机(1980~至今)
- 一个芯片集成了上百万的晶体管
- 速度更快,体积更小,价格更低,更能被大众接受
- 用途丰富:文本处理、表格处理、高交互的游戏与应用
微型计算机的发展历史
单核CPU
- 1971~1973:500KHz频率的微型计算机(字长8位)
- 1973~1978:高于1MHz频率的微型计算机(字长8位)
- 1978~1985:500MHz频率的微型计算机(字长16位)
- 1985~2000:高于1GHz频率的微型计算机(字长32位)
- 2000~现在:高于2GHz频率的微型计算机(字长64位)
多核CPU
- 2005 Intel奔腾系列双核CPU、AMD速龙系列
- 2006 Intel酷睿四核CPU
- Intel酷睿系列十六核CPU
- Intel至强系列五十六核CPU
计算机的分类
超级计算机
- 功能最强、运算速度最快、存储容量最大的计算机
- 多用于国家高科技领域和尖端技术研究
标记他们运算速度的单位是$TFlop/s$
$$ 1TFlop/s=每秒一万亿次浮点运算 $$
大型计算机
- 又称大型机、大型主机、主机等
- 具有高性能, 可处理大量数据与复杂的运算
- 在大型机市领域,IBM占据着很大的份额
迷你计算机(服务器)
- 也称小型机、普通服务器
- 不需要特殊的空调场所
- 具备不错的算例,可以完成较复杂的运算
普通服务器已经代替了传统的大型机,成为大规模企业计算的中枢。
工作站
- 高端的通用微型计算机,提供比个人计算机更强大的性能
- 类似于普通台式电脑,体积较大,但性能强劲
微型计算机
- 又称为个人计算机,是最普通的一类计算机
- 从构成的本质来上,个人计算机与前面的分类无异
计算机的体系与结构
冯诺依曼体系
将程序指令和数据一起存储的计算机设计概念结构。
必须具有的结构
- 必须有一个存储器
- 必须有一个控制器
- 必须有一个运算器
- 必须有输入设备
- 必须有输出设备
必须具有的功能
- 能够把需要的程序和数据送至计算机中
- 能够长期记忆程序、数据、中间结果以及最终运算结果的能力
- 能够具备算术、逻辑运算和数据传送等数据加工处理的能力
- 能够按照要求将处理结果输出给用户
冯诺依曼瓶颈
CPU和存储器速率之间的问题无法调和,CPU经常空转等待数据运输。
现代计算机的结构
现代计算机在冯诺依曼体系结构基础上进行修改,解决了冯诺依曼瓶颈。
程序翻译与程序解释
较为高级的计算机语言L1、较为低级的计算机语言L0
程序翻译
使用较为高级的计算机语言L1进行程序逻辑描述, 需要生成较为低级的计算机语言L0使计算机实际执行。生成的这个过程就叫做程序翻译。从L1生成L0的程序就叫做编译器。
程序解释
使用较为高级的计算机语言L1进行程序逻辑描述,为了执行L1,需要使用L0语言实现另一个程序(解释器),实现将L1作为输入,每个L1语句在L0里进行逻辑转换然后执行,这个过程就叫做程序解释。
总结
- 计算机执行的指令都是L0
- 翻译过程生成新的L0程序,解释过程不生成新的L0程序
- 解释过程由L0编写的解释器去解释L1程序
计算机的层次与编程语言
硬件逻辑层
门、触发器等逻辑电路组成,属于电子工程的领域
微程序机器层
- 编程语言是微指令集
- 微指令所组成的微程序直接交由硬件执行
传统机器层
- 编程语言是CPU指令集(机器指令)
- 编程语言和硬件是直接相关
一条机器指令对于一个微程序、一个微程序对应一组微指令
操作系统层
- 向上提供了简易的操作界面
- 向下对接了指令系统,管理硬件资源
- 操作系统层是在软件和硬件之间的适配层
汇编语言层
- 编程语言是汇编语言
- 汇编语言可以翻译成可直接执行的机器语言
- 完成翻译的过程的程序就是汇编器
高级语言层
- 编程语言为广大程序员所接受的高级语言
- 高级语言的类别非常多,有几百种
- 常见的高级语言有:Python、C/C++等
应用层
满足计算机针对某种用途而专门设计的应用
计算机的计算单位
容量单位
- 在物理层面,高低电平记录信息
- 理论上只认识0/1两种状态
- 0/1能表达的内容太少,需要更大的容量表示方法
- 1 Byte=8 bits
速度单位
网络速度
- 网络常用单位为(Mbps)
- $100\text{M/s}=100\text{Mbps}=100M\text{bit/s}$
- $100\text{Mbit/s}=(100/8)\text{MB/s}=12.5\text{MB/s}$
CPU速度
- CPU的速度一般体现为CPU的时钟频率
- CPU的时钟频率的单位一般是赫兹(Hz)
- Hz其实就是秒分之一,它是每秒钟的周期性变动重复次数的计量
- 主流CPU的时钟频率都在2GHz以上
- $2\text{GHz}=2\times1000^3 \text{Hz}=\text{每秒20亿次}$
字符编码集的历史
ASCII码
- 使用7个bits就可以完全表示ASCII码
- 包含95个可打印字符
- 33个不可打印字符(包括控制字符)
Extended ASCII码
- 将7个bits拓展到8个bits
- 常见数学运算符
- 带音标的欧洲字符
- 其他常用符、表格符
字符编码集的国际化
- 欧洲、中亚、东亚、拉丁美洲国家的语言多样性
- 语言体系不一样,不以有限字符组合的语言
- 中国、韩国、日本的语言最为复杂
中文编码集
《信息交换用汉字编码字符集——基本集》:GB2312
- 一共收录了7445个字符
- 包括6763个汉族和682个其他符号
《汉字内码扩展规范》:GBK
- 向下兼容GB2312,向上支持国际ISO标准
- 收录了21003个汉字,支持全部中日韩文字
- Unicode:统一码、万国码、单一码
- Unicode定义了世界通用的符号集,UTF-*实现了编码
- UTF-8以字节为单位对Unicode进行编码