计算机组成原理复习大纲09.docx
- 文档编号:17767956
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:32
- 大小:345.65KB
计算机组成原理复习大纲09.docx
《计算机组成原理复习大纲09.docx》由会员分享,可在线阅读,更多相关《计算机组成原理复习大纲09.docx(32页珍藏版)》请在冰点文库上搜索。
计算机组成原理复习大纲09
第一章计算机系统概论
完整的计算机系统是一个由硬件、软件组成的复杂的自动化设备(包括配套的硬件设备和软件系统)。
1.1.1计算机的分类
计算机从总体上来说分为两大类:
模拟计算机和数字计算机。
模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。
数字计算机的主要特点是按位运算,并且不连续地跳动计算。
通用计算机又分巨型机、大型机、中型机、小型机、微型机和单片机六类。
它们的区别在于体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格。
1.2.1数字计算机的硬件组成
数字计算机由以下部件组成:
存储器、运算器、控制器(运算器与控制器一起组成CPU)、适配器,以及与适配器相连的输入/输出设备。
存储器、运算器、控制器、适配器之间通过系统总线相连。
1.运算器
运算器能进行加、减、乘、除等算术运算,还可进行逻辑运算。
考虑到电子器件的特性,计算机中所有的信息通常采用二进制方式表示。
这是因为二进制数的运算规律非常简单,在电子线路中比较容易实现,而且设备也最省。
运算器由寄存器、累加器和运算单元电路组成。
2.存储器
存储器的功能:
保存或“记忆”解题的原始数据和解题步骤。
(数据和程序)
存储单元:
在存储器中保存一个数的16个触发器(存放一个机器字的所有存储元集合),称为一个存储单元。
地址:
存储器是由许多存储单元组成,每个存储单元的编号,称为地址。
存储容量:
存储器所有存储单元的总数。
通常用单位“KB、MB”表示,如64KB,128KB。
存储容量越大,表示计算机记忆储存的信息就越多。
计算机系统中的存储器分为内存和外存。
在CPU执行程序时,必须将指令存放在内存中。
3.控制器
控制器是计算机中发号施令的部件,它控制计算机的各个部件有条不紊地进行工作。
控制器的基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。
接着从存储器取出第二条指令,在执行这第二条指令。
依次类推。
通常把取指令的一段时间叫做取指周期,而把执行指令的一段时间叫做执行周期。
因此,控制器反复交替地处在取指周期与执行周期之中。
每取出一条指令,控制器中的指令计数器就加1,从而为取下一条指令做好准备,这也就是指令为什么在存储器中顺序存放的原因。
计算机使用“位”(bit)作为数字计算机的最小信息单位。
CPU向存储器送入或从存储器取出信息时,用B(字节)和W(字)等较大的信息单位来工作。
一个“字节”由8位二进制信息组成,而一个“字”则至少由一个以上的字节组成。
通常把组成一个字的二进制位数叫做字长。
计算机字既可以代表指令,也可以代表数据。
如果某字代表要处理的数据,则称为数据字;如果某字为一条指令,则称为指令字。
4.适配器与输入输出设备
计算机的输入/输出设备通常称为外围设备。
由于种类繁多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相连接。
适配器的作用相当与一个转换器,它可以保证外围设备用计算机所要求的形式发送或接受信息。
计算机系统中还必须有总线。
系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。
借助系统总线,计算机在各系统部件之间实现传送地址、数据和控制信息的操作。
在计算机术语中,将运算器和控制器合在一起称为CPU,而将CPU和存储器合在一起称为主机。
1.3.1软件的组成和分类
计算机软件一般分为两大类:
一类叫系统程序,一类叫应用程序。
系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。
它包括以下四类:
⑴种服务性程序,如诊断程序、排错程序、练习程序等;⑵语言程序,如汇编程序编译程序解释程序等;⑶操作系统;⑷数据库管理系统。
应用程序是用户利用计算机来解决某些问题所编制的程序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等等。
随着计算机的广泛应用,这类程序的种类越来越多。
第二章运算方法与运算器
2.1数据与文字的表示方法
2.1.1数据格式
2.浮点数的表示方法
浮点表示法:
把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,数的小数点位置随比例因子的不同而在一定范围内自由浮动。
为便于软件移植,按照IEEE754的标准,32位浮点数的标准格式为
32位的浮点数中,S:
浮点数的符号位,1位,0表示正数,1表示负数。
M:
尾数,23位,用小数表示,小数点放在尾数域的最前面。
E:
阶码,8位阶符采用隐含方式,即采用移码方式来表示正负指数。
移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。
采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127.
一个规格化的32位浮点数x的真值可表示为
x=(-1)s×(1.M)×2E-127e=E-127(2.5)
为提高数据的表示精度,当尾数的值不为0时,其绝对值应≥0.5,即尾数域的最高有效位应为1,否则以修改阶码同时左右移小数点的办法,使其变成这一表示形式,这称为浮点数的规格化表示。
当浮点数的尾数为0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。
[例1]若浮点数x的二进制存储格式为(41360000)16,求其32位浮点数的十进制值。
[解:
]
将十六进制数展开后,可得二进制数格式为
指数e=阶码-127=10000010-01111111=00000011=(3)10
包括隐藏位1的尾数1.M=1.01101100000000000000000=1.011011
于是有x=(-1)s×1.M×2e
=+(1.011011)×23=+1011.011=(11.375)10
2.1.2数的机器码表示
会二进制、八进制、十六进制与十进制之间的转换。
1.原码表示法
若定点小数的原码形式为x0x1x2…xn,则原码表示的定义是
式中[x]原是机器数,x是真值
例如,x=+0.1001,则[x]原=0.1001
x=-0.1001,则[x]原=1.1001
对于0,原码机器中往往有”+0”、”-0”之分,故有两种形式:
[+0]原=0.000...0
[-0]原=1.000...0
若定点整数的原码形式为x0x1x2…xn,则原码表示的定义是
采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。
这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。
而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。
为了解决这些矛盾,人们找到了补码表示法。
2.补码表示法
负数用补码表示时,可以把减法转化为加法。
这样,在计算机中实现起来就比较方便。
若定点小数补码形式为x0.x1x2…xn,则补码表示的定义是
例如,x=+0.1011,则[x]补=0.1011
x=-0.1011,则[x]补=10+x=10.0000-0.1011=1.0101
对于0,[+0]补=[-0]补=0.0000(mod2)
注意,0的补码表示只有一种形式。
采用补码表示法进行减法运算就比原码方便得多了。
因为不论数是正还是负,机器总是做加法,减法运算可变为加法运算。
对定点整数,补码表示的定义是
3.反码表示法
所谓反码,就是二进制的各位数码0变为1,1变为0。
对定点小数,反码表示的定义为
其中n代表数的位数。
一般情况下,对于正数x=+0.x1x2…xn则
[x]反=0.x1x2…xn
对于负数x=-0.x1x2…xn,则有
对于0,有[+0]反和[-0]反之分:
[+0]反=0.00...0
[-0]反=1.11...1
我们比较反码与补码的公式
[x]反=(2-2-n)+x
[x]补=2+x
可得到
[x]补=[x]反+2-n(2.12)
这就是通过反码求补码的重要公式。
这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。
对定点整数,反码表示的定义为
4.移码表示法
移码通常用于表示浮点数的阶码。
由于阶码是个n位的整数,所以假定定点整数移码形式为x0x1x2…xn时,对定点整数,移码的定义是[x]移=2n+x2n>x≥-2n(2.14)
若阶码数值部分为5位,以x表示真值,则[x]移=25+x25>x≥-25
例如,当正数x=+10101时,[x]移=1,10101;当负数x=-10101时,[x]移=25+x=25-10101=0,01011。
移码中的逗号不是小数点,而是表示左边一位是符号位。
显然,移码中符号位x0表示的规律与原码、补码、反码相反。
小结:
上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。
[例4]将十进制真值(-127,-1,0,+1,+127)列表表示成二进制数及原码、反码、补码、移码值。
[解:
]
[例5]设机器字长16位,定点表示,尾数15位,数符1位,问:
(1)定点原码整数表示时,最大正数是多少?
最小负数是多少?
(2)定点原码小数表示时,最大正数是多少?
最小负数是多少?
;
[解:
]
(1)定点原码整数表示
最大正数值=(215-1)10=(+32767)10
0
111111111111111
最小负数值=-(215-1)10=(-32767)10
1
111111111111111
(2)定点原码小数表示
最大正数值=(1-2-15)10=(+0.111...11)2
最小负数值=-(1-2-15)10=(-0.111..11)2
1.字符的表示方法:
目前国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交换标准字符码)
2.汉字的表示方法:
汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码。
2.1.5校验码
设x=(x0x1…xn-1)是一个n位字,则奇校验位
定义为:
式中⊕代表按位加,表明只有当x中包含有奇数个1时,才使
=1,即C=0。
同理,偶校验位C定义为:
即x中包含偶数个1时,才使C=0。
假设一个字x从部件A传送到部件B。
在源点A,校验位C可用上面公式算出来,并合在一起将(x0x1…xn-1C)送到B。
假设在B点真正接收到的是x=(x'0x'1…x'n-1C'),然后计算
若F=1,意味着收到的信息有错,若F=0,表明x字传送正确。
奇偶校验可提供单个错误检测,但无法检测多个错误,更无法识别错误信息的位置。
[例7]已知下表中左面一栏有5个字节的数据。
请分别用奇校验和偶校验进行编码,填在中间一栏和右面一栏。
数 据
偶校验编码C
奇校验编码C
10101010
01010100
00000000
01111111
11111111
10101010-
01010100-
00000000-
01111111-
11111111-
10101010-
01010100-
00000000-
01111111-
11111111-
[解:
]假定最低一位为校验位,其余高8位为数据位,列表如下。
从中看出,校验位的值取0还是取1,是由数据位中1的个数决定的。
数 据
偶校验编码C
奇校验编码C
10101010
01010100
00000000
01111111
11111111
101010100
010101001
000000000
011111111
111111110
101010101
010101000
000000001
011111110
111111111
2.2定点加法、减法运算
2.2.1补码加法
负数用补码表示后,可以和正数一样来处理。
这样,运算器里只需要一个加法器就可以了,不必为了负数的加法运算,再配一个减法器。
补码加法的公式是[x]补+[y]补=[x+y]补(mod2)(2.17)
[例8]x=0.1001,y=0.0101,求x+y。
[解:
][x]补=0.1001,[y]补=0.0101
所以x+y=+0.1110
[例9]x=+0.1011,y=-0.0101,求x+y。
[解:
][x]补=0.1011,[y]补=1.1011
所以x+y=0.0110
由以上两例看到,补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是要在模2的意义下相加,即超过2的进位要丢掉。
2.2.2补码减法
负数的减法运算也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计。
数用补码表示时,减法运算的公式为
[x-y]补=[x]补-[y]补=[x]补+[-y]补(2.18)
其中:
[-y]补=-[y]补
从[y]补求[-y]补的法则是:
对[y]补包括符号位”求反且最末位加1”,即可得到[-y]补。
写成运算表达式,则为[-y]补=﹁[y]补+2-n(2.21)
其中符号﹁表示对[y]补作包括符号位在内的求反操作,2-n表示最末位的1
[例10]已知x1=-0.1110,x2=+0.1101,求:
[x1]补,[-x1]补,[x2]补,[-x2]补。
[解:
][x1]补=1.0010
[-x1]补=﹁[x1]补+2-4=0.1101+0.0001=0.1110
[x2]补=0.1101
[-x2]补=﹁[x2]补+2-4=1.0010+0.0001=1.0011
[例11]x=+0.1101,y=+0.0110,求x-y。
[解:
][x]补=0.1101
[y]补=0.0110,[-y]补=1.1010
所以x-y=+0.0111
2.5定点运算器的组成
2.5.1逻辑运算
1.逻辑非运算
逻辑非也称求反。
对某数进行逻辑非运算,就是按位求它的反,常用变量上方加一横来表示。
[例21]x1=01001011,x2=11110000,求
1,
2
[解:
]
1=10110100
2=00001111
2.逻辑加运算
对两个数进行逻辑加,就是按位求它们的“或”,所以逻辑加又称逻辑或,常用记号“V”或“+”来表示。
[例22]x=10100001,y=10011011,求x∨y。
[解:
]
3.逻辑乘运算
对两数进行逻辑乘,就是按位求它们的“与”,所以逻辑乘又称“逻辑与”,常用记号“∧”或“·”来表示。
[例23]x=10111001,y=11110011,求x∧y。
[解:
]
4.逻辑异运算
对两数进行异就是按位求它们的模2和,所以逻辑异又称“按位加”,常用记号“⊕”表示。
[例24]x=10101011,y=11001100,求x⊕y。
[解:
]
2.5.4定点运算器的基本结构
计算机的运算器大体有如下三种结构形式
对单总线结构的运算器来说,在同一个时刻,只能有一个操作数放在单总线上,为了将两个操作数输入到ALU,需分两次来做,而且需要两个缓冲寄存器。
例如执行一个加法操作,第一个操作数先放入A缓冲寄存器,然后把第二个操作数放入B缓冲寄存器。
然后,ALU执行加法。
当结果出现在单总线上时,由第三个传送动作把加法的结果选通到目的寄存器。
由此可见,单总线结构操作速度慢,但控制电路较简单。
双总线结构中,两个操作数同时加到ALU进行运算,只需一次操作控制,而且马上就可以得到结果,两条总线各自把操作数送至ALU的输入端。
ALU的输出端必须设置缓冲器,操作控制分两步:
第一步,在ALU的两个输入端输入操作数,形成结果并送至缓冲器;第二步,把结果送入目的寄存器。
在三总线结构中,ALU的两个输入端分别由两条总线供给,而ALU的输出则和第三条总线相连。
总线旁路器的作用是如果一个操作数不需修改,那么可直接通过总线旁路器从总线2传送到总线3;如果需要修改,那么就借助于ALU。
第三章存储系统
计算机系统中的存储器系统是指:
主存储器和外存储器。
3.1存储器概述
3.1.1存储器分类
构成存储器的存储介质,目前主要采用半导体器件和磁性材料。
存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,它可存储一个二进制代码。
由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储器。
★按存储器的读写功能分
只读存储器(ROM):
存储的内容是固定不变的,只能读出而不能写入的半导体存储器。
随机读写存储器(RAM):
既能读出又能写入的半导体存储器。
★按信息的可保存性分
非永久记忆的存储器:
断电后信息即消失的存储器。
永久记忆性存储器:
断电后仍能保存信息的存储器。
3.1.2存储器的分级结构
为了解决对存储器要求容量大,速度快,成本低三者之间的矛盾,目前通常采用多级存储器体系结构,即使用高速缓冲存储器、主存储器和外存储器。
高速缓冲存储器即Cache,半导体性质,特点是存取速度快,但容量小。
主存储器,貌似半导体性质,存放运行时的程序和数据。
外存储器主要是磁盘、磁带、光盘,其容量大,成本低,存放大型文件或数据库。
3.1.3存储器的技术指标
主存储器的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。
字存储单元即存放一个机器字的存储单元,相应的地址称为字地址。
一个机器字可以包含数个字节,所以一个存储单元也可包含数个能够单独编址的字节地址。
下面列出主存储器的主要几项技术指标:
表3.2主存储器的主要几项技术指标
指 标
含 义
表 现
单 位
存储容量
在一个存储器中可以容纳的存储单元总数
存储空间的大小
字数,字节数
存取时间
启动到完成一次存储器操作所经历的时间
主存的速度
ns
存储周期
连续启动两次操作所需间隔的最小时间
主存的速度
ns
存储器带宽
单位时间里存储器所存取的信息量,
数据传输速率技术指标
位/秒,字节/秒
3.2随机读写存储器
4.DRAM的刷新
动态MOS存储器采用“读出”方式进行刷新。
从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止,这一段时间间隔叫刷新周期。
常用的刷新方式有三种,一种是集中式,另一种是分散式,第三种是异步式。
集中式刷新:
在整个刷新间隔内,前一段时间重复进行读/写周期或维持周期,等到需要进行刷新操作时,便暂停读/写或维持周期,而逐行刷新整个存储器,它适用于高速存储器。
分散式刷新:
把一个存储系统周期tc分为两半,周期前半段时间tm用来读/写操作或维持信息,周期后半段时间tr作为刷新操作时间。
这样,每经过128个系统周期时间,整个存储器便全部刷新一遍。
异步式刷新方式是前两种方式的结合。
3.3.1只读存储器
只读存储器简称ROM,它只能读出,不能写入。
它的最大优点是具有不易失性。
3.5.1cache基本原理
1.cache的功能
cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。
它能高速地向CPU提供指令和数据,加快程序的执行速度。
它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术:
2.cache的基本原理
CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。
一个块由若干定长字组成的。
当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。
此时cache控制逻辑依据地址判断此字当前是否在cache中:
若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法:
3.cache的命中率
增加cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。
因此,cache的命中率应接近于1。
由于程序访问的局部性,这是可能的。
在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:
若tc表示命中时的cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:
ta=htc+(1-h)tm(3.5)
设r表示主存慢于cache的倍率,e表示访问效率,则有:
r=tm/tc(3.6)
为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大。
命中率h与程序的行为、cache的容量、组织方式、块的大小有关。
【例5】CPU执行一段程序时,cache完成存取的次数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。
【解】h=Nc/(Nc+Nm)=1900/(1900+100)=0.95
r=tm/tc=250ns/50ns=5
e=1/(r+(1-r)h)=1/(5+(1-5)×0.95)=83.3%
ta=tc/e=50ns/0.833=60ns
3.5.2主存与cache的地址映射
cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。
地址映射即是应用某种方法把主存地址定位到cache中。
地址映射方式有全相联方式、直接方式和组相联方式三种
3.5.3替换策略
cache工作原理要求它尽量保存最新数据,必然要产生替换。
对直接映射的cache来说,只要把此特定位置上的原主存块换出cache即可。
对全相联和组相联cache来说,就要从允许存放新主存块的若干特定行中选取一行换出。
★最不经常使用(LFU)算法
LFU算法将一段时间内被访问次数最少的那行数据换出。
每行设置一个计数器。
从0开始计数,每访问一次,被访行的计数器增1。
当需要替换时,将计数值最小的行换出,同时将这些行的计数器都清零。
这种算法将计数周期限定在对这些特定行两次替换之间的间隔时间内,不能严格反映近期访问情况。
★近期最少使用(LRU)算法
LRU算法将近期内长久未被访问过的行换出。
每行也设置一个计数器,cache每命中一次,命中行计数器清零,其它各行计数器增1。
当需要替换时,将计数值最大的行换出。
这种算法保护了刚拷贝到cache中的新数据行,有较高的命中率。
★随机替换
随机替换策略从特定的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 复习 大纲 09