一.计算机分类
一.按照实现方式分类
二.按照指令流和数据流分类
1.单指令流&单数据流(SISD):冯诺依曼体系结构
2.单指令流&多数据流(SIMD):阵列处理器、向量处理器
3.多指令流&单数据流(MISD):无
4.多指令流&多数据流(MIMD):多处理器、多计算机
二.计算机发展方向
发展阶段 | 时间 | 逻辑元件 | 速度(次/秒) | 内存 | 外存 |
---|---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 几千-几万 | 汞延迟线、磁鼓 | 穿孔卡片、纸袋 |
第二代 | 1958-1964 | 晶体管 | 几万-几十万 | 磁芯存储器 | 磁带 |
第三代 | 1964-1971 | 中小规模电路 | 几十万-几百万 | 半导体存储器 | 磁带、磁盘 |
第四代 | 1972-至今 | 大规模、超大规模集成电路 | 千万-万亿 | 半导体存储器 | 磁带、磁盘、光盘、半导体存储器 |
一.逻辑元件
CPU内部由很多单元的逻辑元件组成,逻辑元件的大小决定了整个系统的大小。如,由几百亿个逻辑元件组成的CPU,逻辑元件减小一点点,CPU就会减小很多
1.电子管
第一台数字计算机ENIAC,占地面积170平,包含17468根真空管,使用机器语言
2.晶体管
第一台使用晶体管线路的计算机TRADIC,包含800只晶体管,使用面向过程语言FORTRAN
3.中小规模集成电路
高级语言迅速发展,分时操作系统开始出现
4.大规模、超大规模集成电路
产生微处理器,新概念:并发并行、流水线、高速缓存、虚拟存储器… …
二.计算机硬件的发展
1.微处理器的发展
微处理器 | 机器字长 | 年份 | 晶体管数目 |
---|---|---|---|
8080 | 8位 | 1974 | |
8086 | 16位 | 1979 | 2.9w |
80286 | 16位 | 1982 | 13.4w |
80386 | 32位 | 1985 | 27.5w |
80486 | 32位 | 1989 | 120w |
Pentium | 64位(准) | 1993 | 310w |
Pentium pro | 64位(准) | 1995 | 550w |
Pentium II | 64位(准) | 1997 | 750w |
Pentium III | 64位(准) | 1999 | 950w |
Pentium IV | 64位 | 2000 | 3200w |
机器字长:CPU一次整数运算处理的二进制最大位数,与CPU内寄存器的位数有关。如,8字长位的机器,想要处理16位运算,那么需要先将16位的先分成两个8位的,再做运算
操作系统位数:其所依赖的指令集的位数
2.硬件的发展
摩尔定律:揭示了信息技术进步的速度,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍
二.计算机软件的发展
阶段 | 语言 | 特点 |
---|---|---|
第一阶段 | 机器语言 | 使用穿孔卡片 |
第二阶段 | 汇编语言(符号语言) | 符号代替了机器语言的二进制码 |
第三阶段 | 高级语言(C、C++、Java…) | 一种接近于人们使用习惯的程序设计语言 |
三.计算机层次结构
一.计算机系统组成
1.控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
2.运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
3.存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
4.输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。
5.输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。
二.计算机硬件的基本组成
三.计算机工作过程
一.功能部件-运算器、控制器
1.运算器
MQ乘商寄存器(Multiple-Quotient Register)
ACC累加器(Accumulator)
ALU算数逻辑单元(Arithmetic and Logic Unit):与、或、非、异或等
X操作寄存器
PSW程序状态寄存器(Program Status Word)
加 | 减 | 乘 | 除 | |
---|---|---|---|---|
ACC | 被加数、和 | 被减数、差 | 乘积高位 | 被除数、余数 |
MQ | 乘数、乘数低位 | 商 | ||
X | 加数 | 减数 | 被乘数 | 除数 |
2.控制器
CU控制单元(Control Unit):分析指令,给出控制信号
IR指令寄存器(lnstruction Register):存放当前执行的指令
PC程序计数器(Program Counter):存放指令地址有自动加1功能
二.读取指令
操作方式:
- M:主存中某存储单元
- ACC、MQ、X、MAR、MDR…:相应寄存器
- M(MAR):取存储单元中的数据
- (ACC)…:取相应寄存器中的数据
- 指令:操作码+地址码
- OP(IR):取操作码
- Ad(IR):取地址码
操作:
(PC) ——> MAR
M(MAR)——> MDR
(MDR)——>IR
取指令结束
OP(IR)——>CU
分析指令结束
Ad(IR)——>MAR
M(MAR)——>MDR
(MDR)——>ACC
执行指令结束
CPU区分指令和数据的依据:指令周期的不同阶段
四.软件系统
系统软件:管理整个计算机系统使系统资源得到合理调度,如操作系统(OS)、数据库管理系统(DBMS)、语言处理程序…
应用软件:使用系统软件提供的资源接口,完成用户的特定任务。如QQ、WX、酷狗语言…
五.编程语言
1.机器语言
二进制代码 0000,0000,000000010000
第一段二进制决定指令操作内容(0000:LOAD、0001:STORE…),第二段二进制决定数据寻找的地址,第三段二进制决定数据存放地址
2.汇编语言
助记符 LOAD A,16 ——>汇编程序(汇编器)——>机器语言
如,16号单元数据与17号单元数据相加存回17号单元:
LOAD A,16
LOAD B,17
ADD C,A,B
STORE C,17
3.高级语言
C/C++、Java
c=a+b
——>编译程序(编译器)——>汇编语言
——>解释程序——>机器语言
六.五层结构
七.冯·诺依曼计算机
存储程序:将指令以代码的形式事先输入到计算机主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。
1.计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
2.指令和数据以同等地位存于存储器内,并可按地址寻访。
3.指令和数据均用二进制代码表示。
4.指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
5.指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下,可根据运算结果或根据设定的条件改变执行顺序。
6.早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
八.存储器
MAR(memory address register)主存地址寄存器:用来保存数据被传输到的位置的地址或者数据来源位置的地址。
MDR(memory data register)主存数据寄存器:用来保存要被写入地址单元或者从地址单元读入的数据。
读取操作:外部会将地址传入MAR中,MAR会根据地址在CU的控制下,找到存储体中对应的存储单元并将数据拷贝到MDR中(先读取到MDR),随后MDR在CU的控制下将数据拷贝到外部需要的位置(再由MDR将数据传递给外部)
写入操作:外部会将地址传入MAR中,MAR会将地址传递给存储体,告知存储器接下来要往地址对应的存储单元写入数据,随后外部会将数据拷贝至MDR(先传递给MDR),再由MDR将数据传递给存储体(再写入到存储单元)
四.计算机性能指标
一.容量
系统支持的最大容量=2^n * 存储字长
因为n个二进制位可以组合的状态有2^n个,如:
1位:0,1
2位:00,11,01,10
… …
二.速度
所以并不是机器字长越长,CPU执行速度越快,必须综合考虑CPU时钟周期和平均CPI
MIPS (Million Instructions Per Second),即每秒执行多少百万条指令。
MIPS = 指令条数/(执行时间×10^6) = 主频/CPI
MFLOPS (Mega Floating-point Operations Per Second),即每秒执行多少百万次浮点运算。
MFLOPS = 浮点操作次数/(执行时间×10^6)
GFLOPS (Giga Floating-point Operations Per Second),即每秒执行多少十亿次浮点运算。
MFLOPS = 浮点操作次数/(执行时间×10^9)
TFLOPS (Tera Floating-point Operations Per Second),即每秒执行多少万亿次浮点运算。
MFLOPS = 浮点操作次数/(执行时间×10^12)
数据通路带宽:数据总线一次所能并行传送信息的位数
吞吐量:指系统在单位时间内处理请求的数量。
它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。
响应时间:指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
通常包括CPU时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、IO操作、操作系统开销等时间)。