计算机系统概述
计算机发展历程
一代 | 二代 | 三代 | 四代 | |
---|---|---|---|---|
代表 | 电子管 | 晶体管 | 中小规模集成电路 | 超大集成电路 |
存储 | 磁鼓或延长线 | 磁心 | 半导体 | |
语言 | 机器语言 | 高级语言 | ||
特点 | 体积大,运算速度低 | 出现操作系统雏形 | 分时系统 | 出现微处理器,有了并行,流水线,cache等概念 |
注:微型计算机的发展是以微处理器技术为标志
翻译一句执行一句的是解释程序,把汇编转化为机器语言的过程是汇编
信息以二进制方式表达原因是,物理器件性能决定的(高低电平的器件好实现)
摩尔定律
集成电路上可以容纳的晶体管数目在大约18个月便会增加一倍
即一年半后,画同样的钱买的处理器的性能,是前面的两倍倍
计算机系统层次结构
计算机系统分为硬件系统和软件系统
硬件组成
1.早期的冯诺依曼计算机
1)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成
2)指令和数据以同等地位存储在存储器中,并可按地址寻访。
3)指令和数据均用二进制代码麦示
4)指令由操作码和地址码组成,操作码表示操作的性质,地址码表示操作数在存储器中的位置
5)指令在存储器内按顺序存放。通常,指令是顺序执行的,在特定条件下可根据运算结果或根据设定的条件改变执行顺序。
6)早期的冯·诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
注: cpu区分二进制代码是指令还是数据依据是指令周期的不同阶段
2.现代计算机
随着技术发展,io处理的速度早已经跟不上cpu的处理速度,现代计算机发展为以存储器为中心,io处理尽量绕过cpu,以提高效率
软件分类
分为系统软件和应用软件
系统软件是一组保证计算机系统高效、正确运行的基础软件,通常作为系统资源提供给用户
则进使用
主要有操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件
系统、网络软件系统、标准库程序、服务性程序等
应用软件是指用户为解决某个应用领域中的各类问题而编制的程序,如各种科学计算类程(x)序、工程设计类程序、数据统计与处理程序等
注意:
数据库管理系统(DBMS)是系统软件
数据库系统(DBS)应用软件
三个级别的语言
1)机器语言。又称二进制代码语言,是计算机唯一可以直接识别和执行的语言
2)汇编语言。用助记符编写,便于记忆理解。需要被汇编程序翻译成机器语言执行
3)高级语言。高级语言(如C,Java)更直观。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序
计算机的工作过程
1)把程序和数据装入主存储器
2)将源程序转换成可执行文件
3)从可执行文件的首地址开始逐条执行指令
源程序到可执行文件

以c语言为例
1)预处理阶段:预处理器(cpp)把#include 引入的头文件内容插入程序文件,得到源文件hello.i
2)编译阶段:编译器(ccl)对hello.i编译,生成一 个汇编程序hello.s
3)汇编阶段:汇编器(as)把 hello.s翻译成机器语言指令,并打包成一个可重定位目标文件的二进制文件 hello.o
4)链接阶段:链接器(ld)把多个可重定位目标文件和标准降函数合并为一个可执行文件
执行指令的描述
注:执行指令顺序
取指令 pc+1 -> MAR -> M -> MDR -> IR
分析 (op)IR -> CU
运算 (Ad)IR -> MAR -> M -> MDR -> ALU
计算机多级层次结构
第1级是微程序机器层,硬件层,机器硬件直接执行微指令
第2级是传统机器语言层,由微程序解释机器指令系统
第3级是操作系统层,由操作系统程序实现,操作系统程序是由机器指令和广义指令组成
第4级是汇编语言层,可编写汇编语言源程序,由汇编程序支持和执行
第5级是高级语言层,面向用户,方便用户编写应用程序,由各种 高级语言编译程序支持和执行
在高级语言层之上,还可以有应用层,由解决实际问题和应用问题的处理程序组成
对于某层的观察者来说,只能通过该层次的语言来了解和使用计算机,而不必关心下层是如何工作的
层次之间的关系紧密,下层是上层的基础,上层是下层的扩展
计算机性能指标
机器字长:计算机一次整数运算最多能处理的二进制数据的位数
数据通路带宽:数据总线一次所能并行传送信息的位数
主存容量:存储器所能储存信息的最大容量,也可用 字数(MAR) x 字长(MDR) 512K×I6位 表示
吞吐量:系统在单位时间内处理请求的数量
响应时间:指从用户向计算机发送一个请求,到系统对该请求作出响应并得到结果的时间CPU时钟同期
主频:CPU时钟频率,通常以Hz(赫兹)做单位,1Hz=每秒一次
f=1GHZ=10^3MHZ=10^6KHZ=10^9HZ
CPU时钟周期:主频的倒数
CPI (Clock cycle Per Imstructiom):执行一条指令所需的时钟周期数
CPU 执行时间:运行一个程序所花费的时间
CPU执行时间=CPU时钟周期数/主频=(指令条数*CPI)/主频
CPU执行时间影响因素
主频(时钟频率)
每条指令执行周期数CPI
指令条数
MIPS (Million Instructions Per Second),即每秒执行多少百万条指令
MIPS=指令条数/(执行时间x10^6)=主频/CPI=f/(CPIx10^6)
MFLOPS (Mega Floating-point Operations Per Second),每秒执行多少百万次浮点运算(10^6)
GFLOPs (Giga Floating-point Operations Per Second),每秒执行多少十亿次浮点运算(10^9)
TFLOPS (Tera Floating-point Operations Per Second),每秒执行多少万亿次浮点运算(10^12)