计算机的发展史
-
早期计算机发展史 算盘/算筹-->机械计算机-->机电计算机
机械计算机-代表产物: 巴贝奇差分机 -
电子计算机的发展的四个阶段(以电子元器件命名)
1946-1957: 电子管计算机 代表产物: 埃尼阿克(ENIAC)
第二次世界大战是电子管计算机产生的催化剂
英国为了解密德国海军的密文
- 集成度小,占用空间大;
- 功耗高,运行速度慢;
- 操作复杂,更换程序需要换线
1957-1964: 晶体管计算机 代表产物: TX-0(MIT林肯实验室);PDP-1(4k内存,每秒200000指令,512x512显示器)
贝尔实验室的三个科学家发明了晶体管
- 集成度相对较高,空间占用相对小;
- 功耗相对较低,运行速度较快;
- 操作相对简单,交互更加方便
1964-1972: 集成电路计算机 代表产物: IBM-7094和1401
德州仪器的工程师发明了集成电路(IC)
有了进入千家万户的条件且操作系统的诞生
7094跟1401因为主要市场不一样,所以系统互不兼容
IBM 推出System/360统一操作系统雏形
- 计算机更小
- 功耗更低
- 速度更快
1972-至今: 超大规模集成电路计算机 代表产物: Apple\Apple二代
- 计算机更小
- 功耗更低
- 速度更快
- 价格低;
- 用途丰富:文本处理·表哥处理·高交互的游戏与应用
未来计算机 生物计算机: 以蛋白质分子作为主要原材料
-
体积小,效率高;
-
不易损坏,生物级别的自动修复
-
不受信号干扰, 无热损耗 量子计算机: 遵循量子力学的物理计算机
-
2013年5月,谷歌和NASA发布D-Wave Two、
-
2017年5月, 中国科学院宣布制造出光量子计算机、
-
2019年1月, IBM展示了世界首款商业化量子计算机
-
腾讯2017年组建量子实验室、
-
阿里巴巴2017成立达摩院研发量子计算机
-
微型计算机的发展史
微型计算机 微型计算机主要是从电子计算机发展史的第三个阶段开始
主要从(CPU)运算能力看待(受限于性能)
单核CPU
- 1971~1973 | 500KHz频率的微型计算机 | 字长8位
- 1973~1978 | 高于1MHz频率的微型计算机 | 字长8位
- 1978~1985 | 500MHz频率的微型计算机 | 字长16位
- 1985~2000 | 高于1GHz频率的微型计算机 | 字长32位
- 2000~至今 | 高于2GHz频率的微型计算机 | 字长64位
摩尔定律 摩尔定律: 集成电路的性能, 每18-24个月就会提升一倍
多核CPU(21世纪,集成电路越来越复杂,摩尔定律渐渐失效)
- 2005 | Intel奔腾系列双核CPU、AMD速龙系列
- 2006 | Intel酷睿四核CPU
- Intel酷睿系列十六核CPU
- Intel至强系列五十六核CPU
计算机的分类
超级计算机 功能最强、运算速度最快、存储容量最大的计算机
多用于国家科技领域和尖端技术研究
衡量它们的标准是运算速度的单位是TFlop/s(每秒一万亿次浮点计算)
大型计算机
又称大型机、大型主机、主机等
具有高性能, 可处理大量数据与复杂运算
去"IOE"行动 I(IBM(服务器厂商))-O(Oracle(数据库软件厂商))-E(EMC(存储厂商))
IOE代表着高维护费用的存储系统
去IOE是阿里巴巴提出的概念(2008年提出)
迷你计算机 又称小型机、普通服务器
具备不错的算力, 可以完成较复杂的运算
普通服务器已经代替传统的大型机,成为大规模企业计算中枢
工作站 高端的通用微型计算机, 提供比个人计算机更强大的性能
类似于普通台式电脑,体积较大,但性能强劲
微型计算机
又称个人计算机
台式机、笔记本、一体机
体系结构
组成 | 作用 |
---|---|
必须有一个存储器 | 长期记忆程序、数据、中间结果及最终运算结果的能力 |
必须有一个控制器 | 具备算术、逻辑运算和数据传送等数据加工处理能力 |
必须有一个运算器 | 具备算术、逻辑运算和数据传送等数据加工处理能力 |
必须有输入设备 | 把需要的程序和数据送至计算机中 |
必须有输出设备 | 按照要求将处理结果输出给用户 |
冯诺依曼体系
将程序指令和数据一起存储的计算机设计概念结构
早期计算机仅含固定用途程序-改变程序的更改结构重新设计电路
存储程序指令设计通用电路(冯诺伊曼体系核心概念)
采用二进制作为计算机的数制基础
冯诺依曼体系瓶颈 CPU与存储器速率之间的问题无法调和
现代计算机的结构
解决CPU与存储器之间的性能差异问题
可以理解为以存储器为核心
层次结构与编程语言
- 程序设计语言 汇编语言(Assembly Language): 低级语言贴近机器,执行效率高
高级语言(High-level Language): 贴近人类
程序编译
- 借助编译器-将高级语言直接编译成计算机可识别的低级语言
- 编译型语言(C/C++等): 源代码->编译器->目标代码->机器执行输出
程序解释
- 借助解释器-将高级语言作为输入由低级语言实现的解释器转化成计算机可识别的低级语言
- 解释型语言(BASIC、Python等): 源代码->解释器->机器执行输出; 灵活、可移植性高但执行效率相对低
翻译+解释
Java Java程序-编译->JVM字节码-解释->机器码
- 层次划分
层次/编程语言 | 组成 |
---|---|
应用层 | 满足计算机针对某种用途而专门设计 |
高级语言层 | 编程语言为广大程序员接受的高级语言 |
汇编语言层 | 编程语言是汇编语言、汇编语言可以翻译成可直接执行的机器语言、完成翻译过程的程序是汇编器 |
操作系统层 | 向上提供简易的操作见面、向下对接指令系统,管理硬件资源、操作系统是在软件和硬件之间的适配层 |
传统机器层 | 编程语言是CPU指令集(机器指令)、编程语言与硬件直接相关、不同架构的CPU使用不同的CPU指令集 |
微程序机器层 | 编程语言是微指令集、微指令所组成的微程序直接交由硬件执行 |
硬件逻辑层 | 门、触发器等逻辑电路组成(电子工程领域) |
::: tip 机器指令
机器指令 > 微程序 > 微指令 机器指令: 一条机器指令对应一个微程序
微程序: 一个微程序对应一组微指令
微指令: ...
计算单位
- 容量单位
0/1
在物理层面,高(1)低(0)电平记录信息
在计算机层面只认识0/1两个状态 0/1称为 bit (比特位)
字节(Byte): 1Byte = 8bits
单位 | bit | Byte | KB | MB | GB | TB | PB | EB |
---|---|---|---|---|---|---|---|---|
名字 | 比特位 | 字节 | 千字节 | 兆字节 | 吉字节 | 太字节 | 拍字节 | 艾字节 |
比例 | - | 8bits | 1024B | 1024KB | 1024MB | 1024GM | 1024TB | 1024PB |
常见设备 | 门电路 | - | 寄存器 | 高速缓存 | 内存/硬盘 | 硬盘 | 云硬盘 | 数据仓库 |
QA
移动硬盘标500G,格式化之后只剩465G?
硬盘商一般用1000进位标记容量 1G=1000MB 500*1000^3/1024^3
- 速度单位
网络速度(单位: Mbps)
100M=100M/s=100Mbps=100Mbit/s=(100/8)MB/s=12.5MB/s
CPU速度(Hz)
- 一般体现为CPU的时钟频率
- 时钟频率的单位一般是赫兹(Hz)
- 赫兹:每秒钟的周期性变动重复次数的计量
2GHz = 2*1000^3Hz = 每秒20亿次
字符与编码集
- 字符编码集历史
ASCll码
2^7 = 128 = 95 + 33
- 不足: 很多应用或者国家中的符号无法表示
- 7个bits就可以完全表示
- 包含95个可打印字符
- 33个不可打印字符(包括控制字符)
Extended ASCll码
对ASCll码第一次扩充
- 8个bits
- 常见的数学运算符
- 带音标的欧洲字符
- 其他常用符、表格符等
字符编码集的国际化
- 欧洲、中亚、东亚、拉丁美洲国家的语言多样性
- 语言体系不一样, 不以有限字符组合的语言(有限字符例如:英语每个单词都是由26个单词组成, 但对于汉字除了部首偏旁外每个汉字都是独立的)
- 中国、韩国、日本等语言最为复杂
- 中文编码
信息交换用汉字编码字符集---基本集(GB2312)(不符合国际标准)
- 一共收录7445个字符
- 6763个汉字
- 682个其他符号
汉字内码扩展规范(GBK)
- 向下兼容GB2312,向上支持国际ISO标准
- 收录21003个汉字,支持全部的中日韩汉字
兼容全球的字符集: Unicode
- 统一码、万国码、单一码
- 定义了世界通用的符号集,UTF-*实现编码
- UTF-8以字节为单位对Unicode进行编码