计算机的发展简史
计算机发展的四个阶段
第一阶段:
- 电子管计算机(19476——1957)
- 产生: 第二次世界大战是第一台电子管计算机产生的催化剂(英国为了解密德国海军的密文而产生的)
- 埃尼阿克计算机(里程碑)
- 由来: 战争中美国的飞机和火箭要打得准需要计算设计参数,射击参数需要几千次运算才能计算出来
- 18000多个电子管
- 运动耗电量150千瓦
- 重量达30吨,占地1500平方英尺
- 特点:
- 集成度小,空间占用大
- 功耗高,运行速度慢
- 操作复杂,更换程序需要重新接线
第二阶段:
- 晶体管计算机(1957——1964)
- 产生:贝尔实验室的三个科学家发明了晶体管
- 第一台晶体管计算机TX-TX-0TX-0(来自MIT林肯实验室)
- 第一台运算最快的晶体管计算机PDP-1
- 4k内存,没秒200,000指令
- 配备512*512的显示器
- 第一款游戏(太空战争)
- 特点:
- 集成度相对较高,空间占用相对少
- 功耗相对较低,运行速度较快
- 操作相对简单,交互更加方便
第三阶段
- 集成电路计算机(1964——1980)
- 产生:德州仪器的工程师发明了集成电路(IC)
第四阶段
- 超大规模集成电路计算机
- 1980——至今
微型计算机的发展历史
- 单核cpu
- 摩尔定律:集成电路的性能,每18-24个月就会提升1倍(到21世纪失效)
- 多核cpu:单核到了瓶颈因此发展多核cpu
计算机的分类
超级计算机
- 功能最强、运算速度最快、存储容量最大的计算机
- 多用于国家高级科技领域和尖端技术研究院
- 标记他们运算速度的单位是TFlop/s。 intel(R)Core(TM)i7-6700k cpu 4.00GHz:44.87 GFlop/s=0.04487TFlop/s
天河二号在广州大学城中山学院
大型计算机
- 又称大型机、大型主机、主机等
- 具有高性能,可处理大量数据与复杂的运算
- 在大型机市场领域,ibm占据着很大的份额
去“IEO”行动
- imb服务器提供商
- oracle 数据库提供商
- emc 存储设备提供商
- 阿里巴巴2008提出的概念,2009年阿里云成立
- 代表了高维护费用的存储系统不够灵活,伸缩性弱
迷你计算机
- 也称为小型机,普通服务器
- 不需要特殊的空调场所
- 具备不错的算力,可以完成较为复杂的运算
工作站
- 高端的通用微型计算机,提供比个人计算机更强大的性能
- 类似于普通台式电脑,体积较大,但性能强劲
微型计算机
-
- 又称为个人计算机,是最普通的一类计算机
-
- 麻雀虽小,五脏俱全
计算机的体系结构
冯诺依曼体系:将程序指令和数据一起存储的计算机设计概念结构
- 1.早期计算机尽含固定用途程序
- 2.改变程序得更改结构,重新设计电路
- 3.不能先打一会游戏再写一会代码
- 4.所以冯诺依曼把程序存储起来并设计通用电路
- 5即存储程序指令设计通用电路
包含:
- 必须有一个存储器
- 必须有一个控制器
- 必须有一个运算器
- 必须有输入设备
- 必须有输出设备
- 现代计算机都是冯诺依曼机
能:
- 能够把需要的程序和数据送至计算机中
- 能够长期记忆程序、数据、中间结果及最终运算结果的能力
- 能够具备算术、逻辑运算和数据传送等数据加工处理的能力
- 能够按照要求将处理结果输出给用户
结构:
冯诺依曼瓶颈:
- cpu和存储器速率之间的问题无法调和
- cpu经常空转等待数据传输
现代计算机的结构
- 现代计算机在冯诺依曼体系结构基础上进行修改
- 解决cpu与存储设备之间的性能差异问题
- 存储器:磁带、硬盘
- 围绕着cpu的更高速的设备:内存、cpu的寄存器
- 现代计算机的结构可以理解我以存储器为核心的结构
计算机的层次与编程语言
程序翻译与程序解析
程序翻译
程序解释
程序翻译与程序解释
- 计算机执行的指令都是L0
- 翻译过程生成新的L0程序,解释过程不生成新的L0程序
- 解释过程由L0编写的解释器去解释L1程序
程序翻译:C/C++ Object-C Golang
程序解释:Python,PHP,JavaScript
翻译+解析:Java,C#
计算机的层次与编程语言
硬件逻辑层
- 门、触发器等逻辑电路组成
- 属于电子工程的领域
微程序机器层
- 编程语言是微指令集
- 微指令组成的微程序直接交由硬件执行
传统机器层
- 编程语言cpu指令集(机器指令)
- 编程语言和硬件是直接相关
- 不同架构的cpu使用不同的cpu指令集
操作系统层
- 向上提供了简易的操作界面
- 向下对接了指令系统,管理硬件资源
- 操作系统层是在软件和硬件之间的适配层
编程语言层
- 编程语言是汇编语言
- 汇编语言可以翻译成可直接执行的机器语言
- 完成翻译的过程的程序就是汇编器
高级语言
- 编程语言为广大程序员所接受的高级语言
- 高级语言的类别非常多,有几百种
- 常见的高级语言有:Python、java,C/C++,Golang等
应用层
- 满足计算机针对某种用途而专门设计
计算机的计算单位
容量单位
速度单位
网络速度
- 100M宽带指的是100M/s=100Mbps=100Mbit/s=(100/8)MB/s=12.5MB/s
CPU速度
- CPU的速度一般体现为CPU的时钟频率
- CPU的时钟频率的单位一般是赫兹(Hz)
- 主流CPU的时钟频率都在2GHz以上
- Hz就是秒分之一,它是每秒中的周期性变动重复次数的计量
- 2GHz= 2*1000^3Hz=每秒20亿次
计算机的字符与编码集
字符编码集的历史
ASCII码
- 使用7个bits就可以完全表示ASCII码
- 包含95个可打印字符
- 33个不可打印字符(包括控制字符)
- 33+95=128=2^7
- 很多应用或者国家中的符号无法表示,如数学符号:“÷≠≧≈“等
Extended ASCII码
- 第一次对ASCII码进行扩充,7bits=>8bits
- 补充了常用数学运算符
- 带音标的欧洲字符
- 其他常用字符、表格符等
字符编码集的国际化
- 欧洲、中亚、东亚、拉丁美洲国家的语言多样性
- 语言体系不一样,不以有限字符组合的语言
- 中国、韩国、日本等的语言最为复杂
- 因此字符编码集的国际化非常有必要
中文编码集
GB2312
- 全称:《信息交换用汉字编码字符集——基本集》
- 一共收录7445个字符
- 包括6763个汉字和682个其他字符
GBK
- 全称:《汉字内码扩展规范》
- 向下兼容GB2312,向上支持国标ISO标准
- 收录了21003个汉字,支持全部中日韩汉字
Unicode(兼容全球的字符集)
- 统一码、万国码、单一码
- Unicode定义了世界通用的符号集,UTF-*实现了编码
- UTF-8以字节为单位对Unicode进行编码