计算机组成原理——概述篇
计算机发展历史
电子管计算机(1946年——1958年)
第一台计算机为ENIAC诞生于美国宾夕法尼亚大学
特点:
1. 集成度小,空间占用大
2. 功耗高,运行速度慢
3. 操作复杂,更换程序需要接线
晶体管计算机(1958年——1964年)
TX-0,麻省理工学院
PDP-1
特点:
1. 集成度相对较高,空间占用相对小
2. 功耗相对较低,运行速度更快
3. 操作相对简单,交互更加方便
贝尔实验室发明晶体管
集成电路计算机(1964年——1970年)
7094 计算机
1401 计算机
此时出现操作系统IBM的System/360
特点:
1. 计算机变得更小
2. 功耗更快
3. 计算速度更快
4. 计算机具备进入千家万户的条件
超大规模集成电路计算机(1970年——至今)
代表人物乔布斯发明apple和apple二代
特点:
1. 一个芯片集成了上百万的晶体
2. 管速度更快,体积更小,价格更低,更能被大众接受用途丰富
3. 文本处理、表格处理、高交互的游戏与应用
计算机分类
超级计算机
特点:
1. 功能最强,运算速度最快,存储容量最大的计算机
2. 多用于国家高科技领域和简短技术研究
3. 标记他们运算速度的单位是TFlop/s
大型计算机
特点:
1. 大型机,大型主机,主机
2. 既具有高性能,可处理大量数据与复杂的运算
3. 在大型机市场领域,IBM占据着很大的份额
迷你计算机
特点:
1. 也称小型机,普通服务器
2. 不需要特殊的空调场所
3. 具备不错的算力,可以完成较复杂的运算
l 普通服务器已经取代了传统的大型机,成为大规模企业计算的中枢
工作站
1. 高端的通用型计算机,提供比个人计算机更强大的性能
2. 类似于普通的台式电脑,提及较大,但性能较强
微型计算机(最常用
特点:
1. 又称个人计算机,是最普通的一类计算机
2. 麻雀虽小,五脏俱全
3. 个人计算与前面的分类无异
冯诺伊曼计算机体系
定义:将程序指令和数据一起存储的计算机设计概念结构。
历程:早起计算机固定用途程序 => 改变程序结构重新设计电路 => 程序不同同时进行 => 把程序指令存储变设计通用电路
组成:输入设备,存储器,运算器,控制器,输出设备
功能:
1. 能够把需要的程序和数据送至计算机中(输入设备实现
2. 能够长期记忆程序、数据、中间结果及最终运算结果的能力(存储器
3. 能够具备算术、逻辑运算和数据传输等数据加工处理的能力(控制器、运算器
4. 能够按照要求将处理结果输出给用户(输出设备
输入=> 运算器+存储器+控制器 => 输出CPU = 运算器+控制器
冯诺伊曼瓶颈:cpu 和 存储器分开,容易导致cpu空转,长时间等待接受数据
现代计算机的结构(解决冯诺伊曼瓶颈问题):
在冯诺伊曼体系机构的基础上修改解决cpu与存储器之间的性能差异问题已存储器为核心CPU = 运算器+控制器+存储器(磁带、硬盘、内存、cpu寄存器)
计算机层次与编程语言
程序翻译与程序解析
设:较为高级的计算机语言L1,较为低级的计算机语言L0。
进行语言之间的转换:程序翻译:使用高级语言L1进行程序描述,生成一个逻辑等价的由低级语言L0组成的程序,L0是计算机实际执行的语言,从L1生成L0的过程,称为程序翻译,生成的东西即为编译器。程序解析:使用高级语言L1进行逻辑描述,为执行L1需要使用L0语言实现另外一个程序,该程序将L1程序作为输入,每一个L1中的程序在L0中进行等价的逻辑转换执行,叫做程序解析,通过L0实现的另外一个程序叫做解释器
翻译型语言:C/C++、Object-c、Golang
解析型语言:Python、php、JavaScript、lua
翻译+解析语言:JAVA、C#、kotlin
计算机层次
1. 应用层
2. 高级语言层
3. 汇编层
4. 操作系统层
5. 传统机器层
6. 微程序机器层
7. 硬件逻辑层
硬件逻辑层
门、触发器等逻辑电路组成,属于电子工程领域
微程序机器层
编程语言是微指令集
微指令所组成的微程序直接交由硬件执行
传统机器层
编程语言是CPU指令集(机器指令)
编程语言和硬件直接相关
不同架构的cpu使用不同的cpu指令集
微指令<微程序=机器指令
- 一条机器指令对应一个微程序
- 一个微程序对应一组微指令
操作系统层
向上提供了建议的操作界面
向下对接了指令系统,硬件管理资源
操作系统是在软件和硬件之间的适配层
汇编语言层
汇编语言可以翻译成直接执行的机器语言
完成翻译的过程的程序叫做汇编器
高级语言层高级语言为广大程序员所接受的高级语言
高级语言非常多,有几百种,常见的有C/C++,JAVA,Python,Golang,Object-c
应用层:满足计算机针对某种用途而专门设计。word、excel、point等等
计算机的计算单位
容量单位
在物理层面,高低电平纪录信息理论上只认识0/1两种状态0/1能够表示的内容太少了,需要更大的容量表示,0/1称之为bit(比特位)字节:1Byte=8bits
1024=2^10
问题:
网络速度
网络常用单位Mbps100m/s = 100mbps = 100mbit/s100mbit/s = (100/8)mb/s = 12.5mb/s
这里M只是数量单位,Million的意思,Mbps指的是Million bit per second,即每秒钟多少Million bit,而8bits = 1Byte
CPU(中央处理器)速度
CPU的速度一般体现位CPU的时钟频率
CPU的时钟频率的单位一般是赫兹
主流CPU的时钟频率都在2gHz以上
Hz其实就是秒分之一(它是每秒中的周期性变动重复次数的计量)
并不是描述计算机领域所专有的单位
计算机字符与编码集
字符编码集
ASCII码:7bits
使用7个bits就可以完成表示ASCII码
包含95个可打印字符
33个不可打印字符
不足:
很多应该或者国家中的符号都无法表示
数学符号:+ - ×÷
extendedASCII码:8bits常见数学运算符
带音标的欧洲字符其他常用符、表格符等
中文编码集
GB2312:7000多字符
《信息交换汉字字符集》 中国第一个编码集
收录7445个字符
6763个汉字和682个其它符号GBK:20000多字符
《汉字内码扩展规范》向下兼容GB2312,向上支持国际ISO标准21003个汉字,支持中日韩汉字
Unicode:全世界字符,使用UTF-x编码
Unicode是统一的编码标准,而UTF-8,是实现Unicode标准的一种编码方式。通用UTF-8编码;Windows系统默认使用GBK进行编码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!