第 一 章:计算机组成
一、计算机硬件系统:
(一)冯洛伊曼采用二进制作为数字计算机数制基础理论 理由:运算规则更简 单、更容易用物理状态实现。
(二)冯诺依曼设计思想中的计算机硬件组成五大部分:
1.存储器:用于存放数据和程序(两者用二进制形式表示,被统称为信息),以便被 CPU读取;有关部件:地址总线与数据总线。
2.运算器:用于信息加工处理,对数据进行算术(加减乘除)和逻辑(如比较,位移 等)运算;组成:算术逻辑单元(ALU)和一系列寄存器。
3.控制器:整个计算机的指挥中心,接收指令,控制信息流动。工作实质:解释程序。
4.输入设备(input/I):将信息输入计算机的外部设备。将图像、文字等信息转换成计算机能接收 并识别的信息形式。
5.输出设备:(output/O)将计算机运行结果转换成人们和其他设备能接收的信息形式的设备。
注:输入输出也被统称为I/O操作。
二、计算机软件系统:
(一)分类:应用软件和系统软件(主讲系统软件)
(二)系统软件种类:
1.操作系统:如UNIX、Windows、Linux等。
2.程序设计语言及语言处理程序:机器语言(二进制代码)、汇编语言(负责将汇编器通过汇编器转换机器指令)、高级语言(如C语言)。
三、计算机系统的层次结构(层数为降序):
6. 高级语言层(如C语言、python等)----翻译(编译程序)---->5.汇编语言层---翻译(汇编程序)--->4.操作系统层---部分解释(OS)--->3.指令集架构层(机器语言:二进制)---解释(微程序)-->2.微代码层------>1.逻辑门层(布尔代数、逻辑门、寄存器)
注:1、2、3层为硬件层,4、5、6为软件层,其中第四层面向机器,第五六层面向应用。
三、计算机性能指标和评价
以下主要介绍几种常见的决定计算机性能的因素:
(一)基本性能指标:
1.字长:指CPU一次处理的数据位数,单位:字节(Byte);现代计算机字长一般为32或 64位。
对计算机的影响:(1)影响计算机精度:字长越长,精度越高,反之精度越 低。
(2)影响数据的范围和精度:字长越长,定点数能表示的范围越大, 浮点数的范围越大、精度也越高。
2.主存容量:指主存能储存的最大信息量,一般用M*N表示,其中M表储存单元数,也称字容量;N表每个单元储存的二进制总数,也称位容量。
对计算机的影响:增加主存容量,能有效减少程序运行期间访问辅存的次数,提高程序运行速度。
(二)与时间有关的性能指标:
关系:程序运行时间越短,计算机性能越好。
程序运行过程(时间):硬盘访问-->内存访问-->I/O操作-->操作系统开销-->CPU运行
注:只有CPU执行时间,也称CPU真正花费在程序上的时间,我们将基于用户CPU时间进行计算机性能评价。
1.时钟周期(T):CPU仅完成一个基本的动作花费的时间,也是计算机中最小,最基本的时间单位。是时钟频率(f)的倒数。随着CPU主频的提高,时钟周期也会随之变短。
2(重点).CPI:执行每条指令(也可指一类指令)所需的平均时钟周期数,或者一段程序中所有指令所需时钟周期的平均值。
公式(重点):
假设程序中总指令条数用IC表示,程序执行所需的时钟周期为m,时钟周期为T,平频率为f,测根据上述CPI定义可得:
CPI=m/IC (1-1)
若能知道每条指令的使用频率P、每条指令的CPI(用CPI表示)、每类指令的条数(用IC表示),则程序的CPI可表示为:
CPI=(CPI*P) =(CPI*IC/IC) (1-2)
3. cpu时间(用T表示):
T=m*T=m/f=CPI*IC*T=CPI*IC/f (1-3)
注:根据上述三个公式,可以看出cpu时间与三个因素有关:
(1)时钟频率: 时钟频率越高,程序执行速度越快;
(2)CPI: CPI越小,程序执行速度越快;
(3)指令条数: 指令条数越少,程序执行速度越快。
4.IPC: 指每个时钟周期CPU能执行的指令条数,是CPI的倒数。
5(重点).MIPS: 即每秒百万条指令,更大单位有GIPS。可用每秒执行完成的指令数 量作为衡量计算机性能的一个和指标(以百万为单位)。
公式(重点):
MIPS=IC/T* (1-4)
将式(1-3)代入式(1-4)可得:
MIPS=f/CPI=IPC*f (1-5)
*6.MFLOPS:指计算机每秒执行浮点数运算的次数,而不是MIPS所衡量的每秒执行的 指令次数。
经典例题:
若某程序编译后生成的目标代码由A、B、C、D四类指令组成,它们在程序中所占比例 分别为40%、20%、15%、25%。已知A、B、C、D四类指令的CPI分别为 1、 2、 2、 2。现需要对程序进行编译优化,优化后的程序中A类指令条数减少了一半,而其它指 令数量未发生变化。假设运行该程序的计算机CPU主频为500MHZ。完成下列各题:
1)优化前后程序的CPI各为多少?
2)优化前后程序的MIPS各为多少?
3)通过上面的计算结果你能得出什么结论?
答案:
(1)优化前:CPI=(CPIi*ICi/IC)=1*0.4+2*0.2+2*0.15+2*0.25=1.6
优化后:A、B、C、D这4类指令在程序中所占比例分别为
1/4、1/4、3/16,5/16,:CPI=1*1/4+2*1/4+2*3/16+2*5/16=1.75.
(2)优化前:MIPS=f((CPF*106)=(500*106)/(1.6*106)=312.5
优化后:MIPS=f((CPI*106)=(500*106)/(1.75*106)=285.7
(3)优化后,程序中A类指令条数减少,其他指令不变,各
指令CPI不变,所以程序执行时间变短,但程序的CPI却
变大,MIPS变小,所以不能简单地通过这此指标来评断
计算机性能。
第二章 数据信息的表示
一、数据表示的作用
定义:将数据以某种方式组织起来,以便计算机直接识别并使用。
考虑因素:
1. 数据的类型:满足对数据应用对数据类型的需求,一般要支持数值数据(整数、小数等)和非数值数据(如文字)。
2.表示的范围和精度:选择适当的数据类型和字长。
3.存储和处理的代价:应尽量使输出的数据格易于表示、存储和整理,应考虑计算机硬件性能和开销。
4.软件的可移植性:应使设计的数据格式在满足应用需要的前提下符合相应规范,以便在计算机之间传输。
二、数值数据的表示(重点/均以8bit为例)
(一)数的机器码表示
1.定点数的定义
计算机中所有小数点位置固定的数叫做定点数,其中,小数点固定在最高位后的定点数叫做定点小数(如0.0000001),小数点固定在最低位后的定点数叫做定点整数。
2.定点数的组成
定点整数每一位数权值:
符+七位数值位
定点小数每一位数权值:
符+七位数值位
二进制数与十进制数一样有正负之分,用0(正),1(负)区分,这种书写格式被称为真值。
二进制数的组成: 符号位(1位)+数值位(7位),由符号+数值位一起编码表示的二进制数成为机器码。常用的定点数的机器码有原码,反码,补码和移码。
(1)原码:就是符号化的数值,编码规则:符+数值位(8bit的十进制数取值范围:-127~128)。
例1:(1)+19(十进制)=> +10011(二进制)=>00010011(二进制8bit)
-19(十进制)=> -10011(二进制)=>10010011(二进制8bit)
(2)+0.75(十进制)=>0.11(二进制)=>0.1100000(二进制8bit)
-0.75(十进制)=>1.11(二进制)=>1.1100000(二进制8bit)
注. 换算时要注意题目规定的字长,由位数权值,定点整数将换算后的二进制数 加在末尾,而定点小数加在开头。
(2)反码:符号位与原码相同,当真值为正,反码与原码相同;当真值为负时,反码数值位为真值数值位取反。
例(2): 定点整数:+19(十进制)=>00010011(原码)=>00010011(反码)
-19(十进制)=>10010011(原码)=>11101100(反码)
定点小数:+0.75(十进制)=>0.1100000(原)=>0.1100000(反码)
-0.75(十进制)=>1.1100000(原)=>1.0011111(反码)