第一章 计算机系统概论
1.1 计算机的分类
- 模拟计算机
- 电子计算机
1.2 计算机的发展简史
1.2.1 计算机的五代变化
第一代:1946~1957年,电子管计算机。数据处理机开始得到应用。
第二代:1958~1964年,晶体管计算机。工业控制机开始得到应用。
第三代:1965~1971年,中小规模集成电路计算机。小型计算机开始出现。
第四代:1972~1990年,大规模和超大规模集成电路计算机。微型计算机开始出现。
第五代:1991年后,开始出现巨大规模集成电路计算机。单片计算机开始出现。
1.2.2 半导体存储器的发展
略P3
1.2.3 微处理器的发展
略P3-4
1.2.4 计算机的性能指标
- 吞吐量:表征一台计算机在某一时间间隔内能够处理的信息量。
- 响应时间:表征从输入有效到系统产生相应之间的时间度量,用时间单位来度量。
.
.
. - CPU主频:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。度量单位是MHz(兆赫兹)、GHz(吉赫兹)。
- 时钟周期:主频的倒数称为CPU的时钟周期(T),T=1/f,度量单位是μs、ns。
- CPU执行时间:表示CPU执行一般程序所占用的CPU时间,可用下式计算:
CPU执行时间=CPU时钟周期数*CPU时钟周期 - CPI:表示每条指令周期数,即执行一条指令所需的平均时钟周期数。用下式计算:
CPI=执行某段程序所需的CPU时钟周期数/程序包含的指令条数 - MIPS:(Million Instructions Pre Second)表示平均每秒执行多少百万条定点指令数,用下式计算:
MIPS=指令数/(程序执行时间*10^6) - FLOPS:(Floating-point Operations Pre Second)表示每秒执行浮点操作的次数,用来衡量机器浮点操作的性能。用下式计算:FLOPS=程序中的浮点操作次数/程序执行时间(s)
1.3 计算机的硬件
1.3.1 硬件组成要素
- 在电子计算机里,相当于算盘功能的部件,我们称之为运算器。
- 相当于纸那样具有"记忆"功能的部件,我们称之为存储器。
- 相当于笔那样把原始解题信息送到计算机或把运算结果显示出来的设备,我们称之为输入设备或输出设备。
- 而相当于人的大脑,能够自动控制整个计算过程的,称之为控制器。
1.3.2 运算器
略P7
1.3.3 存储器
- 在存储器中把保存一个数的16个触发器称为一个存储单元。
- 存储器是由许多存储器单元组成的。每个存储单元都有编号,称为地址。
- 存储器所有存储单元的总数称为存储器的存储容量,通常用单位KB、MB来表示。
- 计算机中又配备了存储容量更大的磁盘存储器和光盘存储器,称为外存储器。相对而言,半导体存储器称为内存储器,简称内存。
1.3.4 控制器
1.计算程序
每一个基本操作就叫做一条指令,而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。
2.指令的形式
指令的内容由两部分组成,即操作的性质和操作数的地址。前者称为操作码,后者称为地址码。如下:
操作码 | 地址码 |
---|
其中操作码指出指令所进行的操作,如加减乘除、取数、存数等;而地址码表示参加运算的数据应从存储器的哪个单元中取来,或运算的结果应该存到哪个单元去。
将题解的程序(指令序列)存放到存储器中称为存储程序,而控制器依据存储程序来控制全机协调地完成计算任务叫做程序控制。
指令和数据放在同一个存储器,称为冯·诺依曼结构,如果指令和数据分别放在两个存储器,称为哈佛结构。
一台计算机通常由几十种基本指令,从而构成了该计算机的指令系统。
3. 控制器的基本任务
通常把指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期。控制器反复交替地处在取指周期与执行周期之中。
早期的计算机术语中,把运算器和控制器和在一起称为中央处理机,简称CPU。目前存储器也放到了CPU芯片中,称为中央处理器。
4.指令流和数据流
8bits = 1B
一字至少由一个以上的字节组成。通常把组成一个字的二进制位数叫做字长
取指周期中从内存读出的信息流是指令流,它流向控制器。执行周期中从内存读出的信息流是数据流,它由内存流向运算器。
1.3.5 适配器于输入输出设备
略P11
1.4 计算机的软件
1.4.1 软件的组成与分类
计算机软件一般分为两大类:1.系统程序。2.应用程序。
系统程序用来简化程序设计,简化使用方法,提高计算机使用效率,发挥和扩大计算机的功能及用途。它包括四类:1.各种服务性程序,如诊断程序、排错程序、练习程序。2.语言程序,如汇编程序、编译程解释程序等。3.操作系统。4.数据库管理系统。
应用程序是用户利用计算机来解决某些问题而编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等。
1.4.2 软件的发展演变
略P12-13
1.5 计算机系统的层次结构
1.5.1 多级组成的计算机系统
略P13-14
1.5.2 软件与硬件的逻辑等价性
略P14
第二章 运算方法和运算器
2.1 数据与文字的表达方法
2.1.1 数据格式
在选择计算机的数的表示方法时,需要考虑以下几个因素:1.要表示的数的类型(小数、整数、实数和复数)。2.可能遇到的数值范围。3.数值精确度。4.数据存储和处理所需要的硬件代价。
计算机中常用的数据表示合适有两种:1.定点格式。2.浮点格式。
定点格式容许的数值范围有限,要求的处理硬件比较简单。而浮点格式容许的数值范围很大,要求的处理硬件比较复杂。
1.定点数的表示方法
约定机器中所有数据的小数点位置是固定不变的。原理上讲,小数点位置固定在哪一位都可以,但是通常将数据表示成纯小数或纯整数。
xn | xn-1 xn-2 ... x1 x0 |
---|---|
符号 | 量值(尾数) |
如果数x表示的是纯小数,那么小数点位于xn和xn-1之间。 当xn-1 xn-2 ... x1 x0各位均为0时,数x的绝对值最小,即|x|min=0;当各位均为1时,x的绝对值最大,即|x|max=1-2-n,故数的表示范围为:0<=|x|<=1-2-n
如果数x表示的是纯整数,那么小数点位于最低位x0的右边,此时数x的表示范围为0<=|x|<=2n-1
目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。
2.浮点数的表示方法
把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示。这种把数的范围和精度分别表示的方法称为浮点表示法。
十进制:N=10E.M
二进制:N=2e.M
其中M称为浮点数的尾数,是一个纯小数。e是比例因子的指数,称为浮点数的指数,是一个整数,比例因子的基数2对二进制记数制的机器是一个常数。
指数用整数形式表示,常称为阶码,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。
Es | Em-1 ...E1 E0 | Ms | Mn-1... M1 M0 |
---|---|---|---|
阶符 | 阶码 | 数符 | 尾数 |
后来便于软件的移植,按IEEE754标准,32位浮点数和64位浮点数标准格式为
32位浮点数
31 | 30 23 | 22 0 |
---|---|---|
S | E | M |
64位浮点数
63 | 62 52 | 51 0 |
---|---|---|
S | E | M |
32位的浮点数中,S是浮点数的符号位,占1位,安排在最高位,S=0表示正数,S=1表示负数。M是尾数,放在低位部分,占用23位,小数点位置放在位数域最左(最高)有效位的右边。E是阶码,占用8位,阶符采用隐含方式,即采用移码方法来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127。 为了提高数据的表示精度,当尾数的值不为0时,尾数域的最高有效位应为1,这个称为浮点数的规格化表示。
3.十进制数串的表示方法
十进制数串在计算机内主要有两种表示形式:
- 字符串形式
- 压缩的十进制数串形式
2.1.2 数的机器码表示
1.原码表示法
略//P20
2.补码表示法
略
3.移码表示法
移码就是不码符号位的倒置
2.1.3 字符与字符串的表示方法
略
2.1.4 汉字的表示方法
略
2.1.5 校验码
略
2.2 定点加法、减法运算
2.2.1 补码加法
略
2.2.2 补码减法
[-y]补=——[y]补+2-n
2.2.3 溢出概念与检测方法
两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢。而两个负数相加,结果小于机器所能表示的最小负数,称为负溢。
2.2.4 基本的二进制加法/减法器
略
2.3 定点乘法运算
2.3.1 原码并行乘法
1.人工算法与机器算法的同异性
略
2.不带符号的阵列乘法器
略
2.3.2 直接补码并行乘法
1.补码与真值的转换公式
略//P36
2.一般化的全加器形式
略//P37