目录
一、计算机发展历程
(一)、什么是计算机系统?
计算机系统=硬件+软件
-
硬件
cpu针脚:cpu针脚是用来接收和传输二进制数据的,这些针脚同时接收和传输;一个二进制数位称为1bit。
-
软件
应用程序、软件
(二)、硬件的发展
1946年第一台 ENIAC 埃尼亚克 计算机使用了电子管,一个电子管有半个手掌大。
计算机的迭代
- (1)、电子管计算机 几千-几万(次/秒)
- (2)、晶体管计算机 几万-几十万
1947年贝尔实验室发明了晶体管
晶体管之父:威廉·肖克利
他1955年创建自己的公司,此公司有八大才子八大叛徒:摩尔、罗伯茨、克菜纳、诺伊斯、格里尼克、布兰克、 赫尔尼、拉斯特;他们1957年创立了仙童半导体公司,1959年仙童发明了集成电路;1968年摩尔离开创建了Intel公司;同时仙童销售部负责人桑德斯离开创建了AMD公司。
- (3)、中小规模集成电路计算机 几十万-几百万(集成的是晶体管)
- (4)、大规模、超大规模集成电路计算机 上千万-万亿
微型计算机
微处理器的出现:集成电路技术把计算机的控制单元CU和算术逻辑单元集成到了一个芯片上制成了微处理器。
Intel公司制成世界上第一个4位微处理器芯片4004,集成了2300个晶体管。
与此同时Fairchild制成了第一个半导体存储器芯片,可以保存256位二进制。
微机处理器依赖于芯片集成度和处理器主频的提高。
影响处理器的性能:主频、扩展指令集、流水线等。
处理器与主存之间的接口:是最重要的通路,作用是在主存与处理器之间传送指令和数据。提高连接带宽:加宽数据总线的宽度、设置高速缓冲存储器Cache并分为片内Cache和分级Cache、高速总线和分层总线来缓冲和分流数据。
处理器与外设之间的接口:设置缓冲机制,高速总线。
(三)、软件的发展
随着各种语言的出现,汇编程序、编译程序、解释程序的产生,逐渐形成了软件系统。
系统软件、操作系统、数据库管理系统、网络软件、服务程序、应用软件:QQ、王者荣耀
二、计算机硬件的基本组成
(一)、计算机五大组成部分
- 输入设备:将用户输入的数据信息(如键盘上的字母、数字)转换为机器能识别的二进制形式
- 输出设备:将计算机得出的二进制形式的结果数据转换为用户能看懂的字母、数字
- 运算器:逻辑运算和算术运算
- 存储器:存放数据和程序
- 控制器:指挥各个部件,使程序运行
(二)、冯诺依曼的硬件结构
冯诺依曼首先提出了存储程序的概念——把需要执行的指令以二进制的代码事先就放入计算机的主存储器(即内存),然后按照存储器中的首地址执行程序的第一条指令,接着按照规定顺序执行其他指令,直至程序结束。 来源:因为第一台计算机ENIAC 需要人工手动一条一条的输入指令,效率极其低,冯诺依曼是当时的顾问,所以提出了存储程序的概念,也造出了第一台冯诺依曼结构的计算机——EDVAC
冯诺依曼计算机特点
由五大部件组成
指令和数据地位相同,都存在存储器中,按地址寻找
指令和数据都是二进制表示
指令由操作码和地址码组成
操作码:就是执行的各种操作如:加减乘除、取数、打印等
地址码:表示参加运算的数在存储器内的位置
存储程序
以运算器为中心(这个设计大大降低了效率,因为运算器是处理数据和指令的,而数据和指令从外部输入进来的目的地就是存储器,而现在却要先经过运算器;同样的当要输入数据时,也一样要经过运算器才能输出)
相当于一个工厂的采购原材料部门目的地就是仓库部门,而现在却要先经过加工部门然后才到仓库部门,同样的当仓库部门要去销售部门时,还得经过加工部门,多此一举。
以运算器为中心
(三)、现代计算机的硬件结构
现代计算机:以存储器为中心
1、CPU组成
由于运算器和控制器的逻辑关系十分紧密,在大规模集成电路出现后就把两者合在了一起。
CPU = 运算器 + 控制器
运算器=ACC + MQ + X + ALU 作用:完成算术逻辑运算
控制器=PC + IR + CU 作用:解释存储器中的指令,并发出各种操作命令来执行指令。
2、主存储器(内存)组成
作用:主存储器(内存)会把数据给运算器,把指令给控制器。
主机=CPU(运算器 + 控制器)+主存储器(内存)
主存储器(内存)= MAR+MDR+存储体M
存储体M = 若干个存储单元
存储单元 = 若干个存储元件 = 存储字
每个存储元件只能存储一位二进制
每个存储单元可以存储若干个存储元件也就是存储若干位二进制,二进制位数=存储字长(8/16/32)。
存储单元也称存储字
存储体—宿舍比作存储体:
宿舍楼 = 存储体
一个寝室 = 一个存储单元
一张床 = 一个存储元件
一个寝室的床数量 = 可以存储的二进制位数 = 存储字长
主存(内存)的工作原理:
按地址存取数据—每一个寝室都需要寝室号,同样的每一个存储单元需要一个编号,该编号就是存储单元的地址。
MAR和MDR工作原理接下——>
3、I/O设备:输入、输出设备、辅存(机械硬盘、固态硬盘)
存储器:分为主存和辅存,主存就是电脑的运行内存,辅存就是电脑的机械硬盘、固态硬盘;当使用软件时才会把软件的数据从辅存里面读取到主存里面去。
(四)、计算机内部工作细节
1、主存储器的组成
(1)、主存储器由三部分组成
拿菜鸟驿站比喻主存储器:
存储体——货架(存放货物);
MAR——店员(知道取件号);
MDR——柜台(店员取到包裹放到柜台)
(2)、存储体
数据在存储体内按地址存储
存储体是一个个存储单元组成
每一个存储单元存放一串二进制代码,这串代码又被称为存储字;
而每一个存储字包含的二进制位数称为存储字长(常见有8 16 32 64bit)
每一个存储单元对应一个地址,地址从0开始;这些地址在MAR里面
(3)、MAR:存储器地址寄存器(Memory Address Register)
寄存器:用来存放数据的
MAR作用:用来存放欲访问的存储单元的地址。
MAR的位数反映了存储单元的个数
如:MAR是4位,有2^4个存储单元
作用:指明要读/写哪一个存储单元
(4)、MDR:寄存器数据寄存器(Memory Data Register)
MDR作用:用来存放从存储体某存储单元取出的代码、或者准备往某存储单元存入的代码。
MDR位数=存储字长
作用:暂时存储要读/写的数据
2、CPU
(1)、运算器
作用:实现算术运算和逻辑运算(与或非)
组成:3个寄存器和一个算术逻辑单元ALU
-
ALU
算术逻辑单元,通过内部复杂的电路实现算术运算和逻辑运算
-
ACC
累加器,用于存放加减乘除和逻辑运算时的操作数、运算结果
-
MQ
乘商寄存器;用于存放乘 除运算时的操作数和运算结果
-
X
通用操作数寄存器,存放从MDR过来的数据
(2)、控制器
完成一条指令的3个过程:
取指令PC——>分析指令IR——>执行指令CU
-
PC(Program Counter)程序计数器
用来存放当前欲执行指令的地址,与主存MAR之间有一条直接通路,且具有自动加1的功能,自动形成下一条指令的地址。
-
IR(Instrucion Register)指令寄存器
用来存放当前执行动作的指令,IR内容来自主存的MDR,IR将操作码送至CU,将操作数的地址码送至MAR。
IR从MDR取得数据后首先分析操作码是加减乘除取存哪一个:
000001取数
000010存数
000011加法
000100乘法
接着分析地址码:找到该指令的地址码,IR把地址码送到MAR中
-
CU(control unit)
核心:控制单元,可以给其他部件发出指令,控制信号
-
内部工作案例讲解
初始:指令和数据都存在主存,PC指向第一条指令(指令已经都预先存放在主存里面了,都在连续的一块空间,所以可以+1获取下一条指令)。
接着:根据PC从主存中取出第一条指令返回给IR,此时PC自动加1去主存获取下一条指令。
接下来:IR分两步:一是把操作码送至CU分析、二是把操作数的地址码送至MAR去查找获取数据
最后:根据IR送来的地址码查找到操作数的数据返回MDR送至运算器。
三、计算机系统的层次结构
-
五层结构
-
M4:高级语言机器(执行高级语言)
-
M3:汇编语言机器(执行汇编语言)
-
M2:操作系统机器(向上提供广义指令)
-
M1:传统机器(执行机器语言指令)
-
M0:微程序机器(执行微指令)
-
-
三个级别语言
-
高级、汇编、机器
-
编译程序:将高级语言一次性全部翻译为机器语言 c c++
-
解释程序:一次只翻译一条语句 JavaScript python shell
-
四、计算机的性能指标
1、机器字长
计算机CPU一次所能处理的二进制位数;常见的机器字长:8 16 32 64
2、存储容量
存储容量=存储单元个数(MAR)*一个存储单元的存储字长(MDR)(bit)
宿舍容量=寝室个数*一个寝室的床位数
3、CPU
-
时钟周期
-
主频hz
单位:GHz 1G=10^9
意思:主频是CPU数字脉冲信号振荡的频率,也就是每秒钟出现的CPU时钟周期的数量
主频=1/CPU时钟周期
-
CPI(衡量计算速度)(Cycle Per Instruction)
执行一条指令所需的时钟周期
-
CPU执行时间(运行一个程序的耗时)
运行一个程序花费的时间
CPU执行时间(程序耗时)=( 指令数*CPI ) / 主频
-
IPS(衡量计算速度)(Instruction Per Second)
每秒执行了多少条指令
IPS=主频 / 平均CPI
-
FLOPS
-
常用数量单位
-
描述存储容量、文件大小
K=2^10
-
描述频率、速率
K=10^3
-
4、其他
- 吞吐量
- 数据通路带宽
- 基准程序
- 响应时间