计算机系统概述

计算机发展历程

一代 二代 三代 四代
代表 电子管 晶体管 中小规模集成电路 超大集成电路
存储 磁鼓或延长线 磁心 半导体
语言 机器语言 高级语言
特点 体积大,运算速度低 出现操作系统雏形 分时系统 出现微处理器,有了并行,流水线,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)