03计算机体系结构打印版本.docx
《03计算机体系结构打印版本.docx》由会员分享,可在线阅读,更多相关《03计算机体系结构打印版本.docx(54页珍藏版)》请在冰豆网上搜索。
03计算机体系结构打印版本
课程:
计算机体系结构
适用班级:
软件设计师网络工程师
主讲:
刘琳芳
贵州·贵阳
第2章计算机体系结构
2.1.计算机科学基础
2.1.1数制及其转换
1.计算机中常用的数制
1)十进制数
基数为10,逢十进一,数字的表示从0到9,表示符号为D,如“12.3”按照位权展开:
(12.3)10=1×101+2×100+3×10-1=12.3D
2)二进制数
基数为2,数字符号只有0和1。
逢二进一,表示符号为B,如“11.1”按照位权展开:
(11.1)2=1×21+1×20+1×2-1=11.1B
3)八进制数
基数为8,逢八进一,数字的表示从0到7,表示符号为O,如“11.1”按照位权展开:
(11.1)8=1×81+1×80+1×8-1=11.1O
4)十六进制数
基数为16,逢十六进一,数字的表示从0到9,10用A表示,以此类推B,C,D,E,F表示15,表示符号为H,如“4FD”按照位权展开:
(4FD)16=4×162+15×161+13×160=4FDH
2.不同数制间的转换
1)二、八、十六进制转换为十进制
(11.1)2=1×21+1×20+1×2-1=(3.5)10
2)八进制转换为二进制
用“1位拆分为3位”的方法,
如7.2=111.010B
3)十六进制转换为二进制
用“1位拆分为4位”的方法,
A2B.CH=101000101011.1100B
4)十进制转换为二进制,如图2-1:
图2-1
表2-1十进制、二进制、八进制、十六进制基数对照表
十进制
二进制
八进制
十六进制
0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
16
10000
20
10
2.1.2数据的表示
1.数的机器码表示
1)原码:
符号位用0表示正数,1表示负数,其余位不变。
(+11100101)原=011100101(-11100101)原=111100101
(+0)原=000000000(-0)原=100000000
2)反码:
正数,反码与原码一样,负数,反码是对它的原码(除符号位外)各位取反。
(+11100101)反=011100101(-11100101)反=100011010
(+0)反=000000000(-0)反=111111111
3)补码:
正数,补码与原码一样,负数,补码是其反码尾部加1。
(+11100101)补=011100101(-11100101)补=100011011
(+0)补=000000000(-0)补=000000000
4)移码:
移码通常用于表示浮点数的阶码。
移码的传统定义为:
[x]移=2n+x,2n>x>=-2n
图2-2移码
其中[x]移为机器数,x为真值,2n为固定偏移值。
例如,某浮点数的阶码占4位,包含一位符号位,即n=3,以x表示真值,则
[x]移=23+x,23>x>=-23
当X=-8时,[x]移=23-8=+0
当X=+0时,[x]移=23+0=+8
当X=-0时,[x]移=23-0=+8
当X=7时,[x]移=23+7=+15
2.定点数的表示方法
所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。
例如真值x存储为:
2-3定点格式
如果x表示纯小数,那么小数点约定位于X0和X1之间。
如果x表示纯整数,那么小数点位于最低位Xn的右边。
为了方便,一般只采取三种简单的约定,相应有三种类型的约定:
无符号整数、带符号定点整数、带符号定点小数。
无符号整数:
X0X1………..Xn,其表示范围是0~(2n+1-1)。
带符号定点整数:
X0X1………..Xn,X0为符号位,小数点位置在最低位后之后,典型代码值如下:
原码绝对值最大负数:
-(2n-1)11……11
原码绝对值最小负数:
-110……01
原码最小非零正数:
+100……01
原码最大正数:
2n-101……11
3.浮点数
任意进制数N可以写成:
N=Re*M
M称为尾数,通常为小数,e为指数,是一个整数,即阶码,R为基数,可采用2,8或16进制等。
早期计算机中,一个浮点数由阶码和尾数及他们的符号位组成,一个尾数长n位,阶码长m位的二进制浮点数可用如下图2-4的表示方式:
图2-4浮点数由阶码和尾数及他们的符号位组成
为便于软件的移植,浮点数的表示格式应该有统一标准(定义)。
1985年IEEE(InstituteofElectricalandElectronicsEngineers)提出了IEEE754标准。
该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,图2-5为32位浮点数的标准格式:
图2-5为32位浮点数的标准格式
若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是唯一的,例:
十进制数11,如果尾数只有2位,则可以表示为0.11*102,也可以表示为0.01*103,可见0.11*102精度高,浮点数的精度是由尾数的长度来确定的。
为了提高数据的表示精度,当尾数的值不为0时,要求尾数域的最高有效位应为1,即尾数的小数点后面的第一位必须是“1”,否则要以移动小数点,同时修改阶码来变成这一要求的形式,这种表示方式规格化表示。
即|M|>=0.1XX…X
左规:
当尾数出现0.0××…×时,即数字左移一位,阶码减1,直到符合规格化表示式为止.
右规:
当尾数出现1.××…×时,数字右移一位,阶码加1,直到符合规格化表示式为止。
例如:
某浮点格式如表,阶码部分连阶符共m+1位,补码表示,以2为底,尾数共n+1位,含一位数符,补码表示,规格化。
典型值
浮点数代码
真值
非零最小正数
10…0,0.10……0
(2-2m)(2-1)
最大正数
01…1,0.11……1
(22m-1)(1-2-n)
绝对值最小负数
10…0,1.10……0
(2-2m)(-2-1)
绝对值最大负数
01…1,1.00…0
(22m-1)(-1)
表示范围:
(22m-1)(-1)~(22m-1)(1-2-n)
2.1.3逻辑运算和算术运算
1.逻辑运算
1)逻辑与(逻辑乘法)
当两个条件同为真,判断结果才为真。
通常使用符合∧、x、∩、AND来表示“与”,运算规则如下:
0∧0=00∧1=01∧0=01∧1=1
若设X=001,Y=100,则求X∧Y=?
解:
001
∧100
———
000
2)逻辑或(逻辑加法)
当两个条件中任意一个为真时,判断结果为真。
通常使用符合∨、+、∪、OR来表示“与”,运算规则如下:
0∨0=00∨1=11∨0=11∨1=1
若设X=001,Y=100,则求X∨Y=?
解:
001
∨100
———
101
3)逻辑非(逻辑否定)
即求反,在变量上加一条横线表示求反,也用NOT表是非运算,运算规则如下:
=1
=0
4)逻辑异或
当两个条件一真一假时,判断结果才为真。
通常使用符号⊕表示,运算规则如下:
0⊕0=00⊕1=11⊕0=11⊕1=0
若设X=001,Y=100,则求X⊕Y=?
解:
001
⊕100
———
101
2.算术运算
定点数的算术运算:
计算机中基本采用补码加减法,操作数用补码表示,连同符号位一起运算,结果也用补码表示。
X补+Y补=(X+Y)补X补+(-Y)补=(X-Y)补
浮点数的算术运算:
设两个浮点数,x=2Ex.MxY=2Ey.My
(1)操作数检查
(2)比较阶码大小完成对阶,原则小阶向大阶看齐
(3)尾数进行算术运算
(4)结果规格化并舍入处理
3.溢出判别
运算结果超出了机器数的表示范围,称为溢出。
例:
机器字长为5位,(A0A1A2A3A4),A0为符号位,采用补码进行运算。
注意:
用例子A0A1A2能够表示的数值范:
表2-2
原码
反码
补码
000
+0
000
+0
000
+0
001
+1
001
+1
001
+1
010
+2
010
+2
010
+2
011
+3
011
+3
011
+3
100
-0
100
-3
000
-0
101
-1
101
-2
111
-1
110
-2
110
-1
110
-2
111
-3
111
-0
101
-3
100
-4
故A0A1A2A3A4表示补码范围为:
最大01111,+15最小10000,-16
1.溢出判别方法之一,单符号位,符号位进位为Cf,最高数值有效位进位为C。
1.
2.
3.
4.
“溢出”=Cf⊕C当Cf、C不同时,表示溢出。
2.溢出判别方法之二,双符号位
定义Sf1为第一个数符,Sf2第二个数符“溢出”=Sf1⊕Sf2
2.2.计算机体系结构
2.2.1计算机系统结构概述
计算机系统结构如图2-1,是计算机的属性及功能特征,主要包括:
●硬件所能识别和处理的数据类型;
●所能支持的寻址方式;
●CPU内部寄存器数量及使用方式
●CPU指令系统;
●主存的组织与主存的管理;
●中断系统的功能;
●输入输出设备及连接接口;
2.2.2存储系统
1.主存MM
主存主要由半导体器件组成。
由多个半导体器件可以组成一个存储元,即表示存储1“位”(bit)。
若干个存储元构成一个存储单元,每个存储单元有唯一的编号,称为地址。
存储器所有存储单元的总容量称为存储器的存储容量。
字节(B):
8位(bit)构成一个字节;
字节地址:
存放一个字节的单元,称为字节存储单元,相应的地址称为字节地址;
字长:
CPU在同一时间能一次处理的二进制数的位数叫字长,一般为字节的倍数。
图2-6内存示意图
字地址:
存放一个字的存储单元,称为字存储单元,相应的单元地址叫做字地址。
常用数值换算:
1B=8bit1KB=1024B=210B1MB=1024KB=210KB
●内存按字节编址,地址从A4000H到CBFFFH,共有__
(1)__字节。
若用存储容量为32K×8bit的存储芯片构成该内存,至少需要__
(2)__片。
(1)A.80K B.96K C.160K D.192k
(2)A.2 B.5 C.8 D.10
2.高速缓存cach
Cache是一种高速缓冲存储器,目的是为了解决CPU与主存之间速度不匹配的问题。
故所有的功能全部由硬件实现。
(1)cache的基本原理图2-7存储系统示意图
当CPU需要读取一个数据时,便用该数据的内存地址访问内存,并迅速判定该地址中的信息是否已进入cache中,若进入,则将内存地址变换为cache地址,立即访问cache。
若不在,则将该数据从内存中读出送往CPU,与此同时,把含有这个数据的整个数据块从主存中读取送到cache中,任何时候cache中的信息都是主存中某一部分信息的副本。
(2)cache的命中率
命中率在一个程序执行期间,设Nc表示cache完成存取的总次数,Nm表示主存完成的总次数,cache的命中率h定义为,则有:
h=Nc/(Nc+Nm)
平均访问时间若tc表示命中时cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则cache/主存系统的平均访问时间ta为:
ta=htc+(1-h)tm
●若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速缓存的命中率为___(3)___%。
(3)A.90 B.95C.97 D.99
提高倍数r使用Cache比不使用Cache的CPU访问存储器速度提高的倍数r=tm/ta
(3)主存与cache的地址映射
在CPU需要读写指令和数据时,送出的是指令和数据的主存地址,为了从cache存储器中读写信息,必须采用某种方法把主存地址转换为cache存储器的地址,称为地址映象。
地址映射方式有全相联映象方式、直接映象方式和组相联映象方式三种。
1)全相联映象方式
将主存中的一个块直接拷贝到cache中任意一块上,Cache的数据块大小与主存的数据块存储的数据量大小相等。
图2-8全相联映象方式示意图
表2-3块号对照表
主存块号
Cache块号
装入位置
3
0
1
9
1
1
12
2
1
系统采用全相联映像方式时,当CPU给出所需数据在主存中的地址时,同时需要将主存块号转换为cache块号,为此需要设置一个块号对照表。
地址变换:
CPU给出访存地址时,则立即查找块号对照表,从表中找出对应的cache块号,将cache块号与块内地址连接起来就是cache的地址。
图2-9全相联映象方式地址结构
优点:
主存的块调入cache中的位置不受限制,所以冲突率最低。
缺点:
无法从主存地址中直接获得cache的块号,变换复杂,速度较慢。
●高速缓存Cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。
若地址变换表如下所示,则主存地址为8888888H时,高速缓存地址为___(4)___H。
如右图:
(4)A.488888 B.388888C.288888 D.188888
2)直接映象方式
图2-10直接映象方式示意图
图2-11直接映像方式地址结构
直接映象方式是一个主存块只能直接拷贝到cache的一个固定的位置上去,做法是将主存分成与cache一样大小的区,每个区的第0块只能调入到cache的第0块上,第1块只能放到第1块,其他依次类推。
是一种多对一的映射关系。
优点:
地址变换很简单,访问速度快
缺点:
不同区的相同块号不能同时放进cache,即便cache内有空闲块,所以冲突率最大。
3)组相联映象方式
图2-12组相联映像方式示意图
图2-13组相联映象方式地址结构图
●一般来说,Cache的功能__(53)__。
某32位计算机的cache容量为16KB,cache块的大小为16B,若主存与cache的地址映射采用直接映射方式,则主存地址为1234E8F8(十六进制)的单元装入的cache地址为__(54)__。
在下列cache替换算法中,平均命中率最高的是__(55)__。
(53)A.全部由软件实现B.全部由硬件实现
C.由硬件和软件相结合实现D.有的计算机由硬件实现,有的计算机由软件实现
(54)A.00010001001101(二进制)B.01001000110100(二进制)
C.10100011111000(二进制)D.11010011101000(二进制)
(55)A.先入后出(FILO)算法B.随机替换(RAND)算法
C.先入先出(FIFO)算法D.近期最少使用(LRU)算法
●容量为64块的Cache采用组相联方式映像,字块大小为128个字节,每4块为一组。
若主存容量为4096块,且以字编址,那么主存地址应该为__(7)__位,主存区号为__(8)__位。
(7)A.16B.17 C.18 D.19(8)A.5 B.6 C.7 D.8
4)替换策略
当cache已满,而主存中又有块要调入cache时,采取的替换算法有:
(1)先进先出算法;
(2)近期最少使用算法(LRU);即挑选近期最久没有使用过的块作为被替换块,能较好的反映程序的局部性特点。
(3)随机替换算法
3.硬磁盘存储设备
优点:
存储容量大,价格低,信息可以长期保存不丢失等。
缺点:
存取速度慢,机械结构复杂
(1)磁记录原理
磁性材料被不同的电流磁化后,会形成两个稳定的剩磁状态,利用这两个稳定的状态表示二进制代码1和0。
磁性材料上呈现剩磁状态的地方形成了一个磁化元或存储元,是记录一个二进制信息位的最小单位。
(2)记录方式
磁性材料被写入二进制代码0或1,是靠不同的写入电流波形来实现的。
形成不同写入电流波形的方式,称为记录方式。
常用的记录方式有:
图2-14磁盘记录
图2-15常见的磁记录方式
不归零制(NRZ0)
其特点是,磁头线圈中始终有电流,不是正向电流(代表1)就是反向电流(代表0)。
见1就翻不归零制(NRZ1)
与NRZ相同之处是磁头线圈中始终有电流。
不同之处在于,记录“0”时电流方向不变,只有遇到“1”时才改变方向。
调相制(PM)
其特点是,在一个位周期中间位置,电流由负到正为1,由正到负为0,即利用电流相位的变化来进行写1和0,所以通过磁头中电流方向一定要改变一次。
调频制(FM)
其特点如下:
(1)在相邻两个存储元交界处电流都要改变方向;
(2)记录1时电流一定要在位周期中间改变方向,即写1的电流频率是写0电流频率的2倍,称为倍频法。
改进调频制(MFM)
与调频制的区别在于只有连续记录两个或两个或两个以上0时,才在位周期的起始位置翻转一次,而不是在每个位周期的起始处都翻转。
(3)磁盘的性能
图2-16磁盘扇区示意图
硬磁盘由一组绕轴旋转的盘片组成。
每个盘片的上下两面都能记录信息,通常把磁盘表面称为记录面。
记录面上一系列同心圆称为磁道。
每个盘片表面通常有几十到几百个磁道,磁道的编址是从外向内依次编号的,最外一个同心圆叫0磁道,往内依次增加,最里面的一个同心圆叫n磁道,n磁道里面的圆面积不用来记录信息。
具有相同的直径,同时位于一组磁头下方的所有磁道被称为柱面。
文件存储在硬盘上时尽可能放在同一柱面上,或者放在相邻的柱面上。
每个磁道又分为若干个扇区,扇区是读写的最小单元,磁盘中所有磁道具有相同数目的扇区,由于外磁道长,扇区也比较长,所以记录密度比内磁道低,所以最里圈的位密度称为最大位密度。
存储密度
道密度是沿磁盘半径方向单位长度上的磁道数,单位是道/英寸。
位密度是磁道单位长度上能记录的二进制代码位数,单位为位/英寸。
面密度是位密度和道密度的乘积,单位是位/平方英寸。
存储容量指一个磁盘存储器所能存储的字节总数。
格式化容量是指按照某种特定的记录格式所能存储信息总量,也是用户可以真正使用的容量。
格式化容量=面数×(磁道数每/面)×(扇区数/道)×(字节数/扇区)
例题:
●假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量约为
(2)MB。
(2)A.
B.
c.
D.
非格式化容量是磁记录表面可以利用的磁化单元总数。
非格式化容量=面数×(磁道数每/面)×内圆周长×最大位密度
数据传输率磁盘存储器在单位时间内向主机传送数据的字节数叫做数据传输率。
平均数据传输率=(扇区数/道)×(字节数/扇区)×盘片转速
(4)磁盘调度
磁盘的一般工作过程是:
磁头先移动到目标磁道上,然后期望的扇区旋转到磁头下方,接着读取扇区中的数据。
磁盘调度分为移臂调度和旋转调度,并且是先进行移臂调度,在移动臂定位后,然后再进行旋转调度。
1)移臂调度
先来先服务FCFS:
根据进程请求访问磁盘的先后次序进行调度。
最短寻道时间SSTF:
该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短,容易发生饥饿现象。
扫描算法SCAN:
该算法不仅考虑到准备访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
例如当前磁头由内向外移动,下面将要访问的磁道应该是距离已访问磁道最近,且在该磁道外侧的磁道,直到再无更外层的磁道需要访问时才将磁臂换方向。
也称为电梯调度算法
循环扫描算法:
CSCAN:
规定磁头作单向扫描,例如自里向外时,当磁头访问外最外层的磁道后,立即返回最内的欲访问磁道,即最小的磁道号紧接着最大的磁道号访问。
2)旋转调度
1)请求访问的是同一磁道的不同编号的扇区;
2)请求访问的是不同磁道上的不同编号的扇区;
3)请求访问的是不同磁道上具有相同编号的扇区。
对1)与2)旋转调度总是让首先到达读写磁头位置下的扇区先进行传送操作;对于3)旋转调度可以任选一个读写磁头位置下的扇区进行传送操作。
(5)磁盘访问时间
1)寻道时间:
指把磁臂(磁头)从当前位置移动到指定磁道上所经历的时间。
2)旋转延迟时间:
指定扇区移动到磁头下面所经历的时间。
3)传输时间:
指把数据从磁盘读出,或向磁盘写入数据所经历的时间。
磁盘的访问时间=寻道时间+旋转时间+传输时间+控制器开销时间
●某软盘有40个磁道,磁头从一个磁道移到另一个磁道需要5ms。
文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和25ms,则读取一个100块的文件需要(24)时间。
(24)A17500msB15000msC5000msD25000ms
例题:
数据存储在磁盘上的排列方式会影响I/O服务的总时间。
假设每磁道划分成10个物理块,每块存放1个逻辑记录。
逻辑记录R1,R2,…,R10存放在同一个磁道上,记录的安排顺序如下图所示:
假定磁盘的旋转速度为20ms/周,磁头当前处在R1的开始处。
若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为4ms,则处理这10个记录的最长时间为___(15)___;若对信息存储进行优化分布后,处理10个记录的最少时间为___(16)___。
供选择的答案
(15)A.180ms B.200ms C.204ms D.220ms
(16)A.40ms B.60ms C.100ms D.160ms
4.相联存储器
按内容访问的存储器。
把任一项存储内容作为地址来存取。
2.2.3指令系统
指令就是计算机执行某种操作的命令。
1.指令格式
指令通常由操作码字段和地址码字段,如右图,操作码字段表征指令的操作特性和功能,让CPU完成什么性质的操作,地址码字段通常指定参与操作的操作数的地址或运算结果所在的地址。
图2-17指令构成
根据一条指令中有几个操作数地址,又有如下几种指令格式。
操作码
A1
A2
A3
三地址指令:
操作码
A1
A2
二地址指令:
操作码
A
单地址指令:
操作码
零地址指令:
图2-18不同地址指令构成
2.操作码格式
操