计算机组成原理
第一章:计算机系统概论
1.1 计算机分类:
按信息的形式及处理方式分:模拟电子计算机和数字电子计算机
按用途分:通用计算机和专用计算机
按规模分:超级计算机、大型机、服务器、工作站 、微型机、单片机等
1.2计算机发展简史:
1.五代变化:电子管计算机、晶体管计算机、中小规模集成电路计算机(小型计算机)、大规模和超大规模集成计算机(微型计算机)、巨大规模集成电路计算机(单片机)
2.半导体存储器发展:
仙童半导体公司生产了第一个较大容量半导体存储器,后面每代的容量都增大四倍
3.微处理器的发展
4.计算机的性能指标:
总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。
存储器带宽:存储器的速度指标,单位时间内从存储器读出的二进制数信息量,一般用字节数/秒表示。
1.3计算机的硬件
1.冯·诺依曼计算机—存储程序概念
2. 数字计算机的硬件组成:
中央处理器(CPU) 主存储器 总线 适配器 外围设备
指令:
总线的分类:根据总线上传送的信息可以分为数据总线、地址总线、控制总线
1.4计算机系统的层次结构
1.多级计算机系统
第二章:运算方法和运算器
2.1数据与文字的表示方法
一、数据格式
1.定点表示法
机器中所有数据的小数点位置固定,且位置是隐含的,不需要占一个位。
把小数点固定在有效数位的最前面或末尾,故,形成了两类定点数:定点小数(纯小数)、定点整数(纯整数)。
若x表示的是定点小数(纯小数),则小数点位于x0和x1之间; 若x表示的是定点整数(纯整数),则小数点位于xn之后。
2.浮点表示法
(1)浮点格式:
格式1:
由阶码(指数)、尾数及其符号位组成。
格式2:
按照 IEEE754 的标准,32位浮点数标准格式为 :
S:浮点数的符号位,占1 位,常用0表示正数,1表示负数。
M:尾数的数值部分,占23位,用小数表示,小数点放在尾数域的最前面。
E:阶码,8 位,阶符用该字段的最高位表示。
例子: 二进制数 x=1011.0110=0.10110110×24
用格式1表示x: 设m=6,n=8,符号位“0”表示正,“1”表示负
用格式2表示:
(2)浮点数的规格化表示:
1.一般意义下的规格化:
2.IEEE754标准中的规格化浮点表示
例子:
二、机器码的表示
1.原码表示法:
(1)定点整数:
例如,x=+1001,则[x]原=01001 ,x=-1001,则[x]原=11001
(2)定点小数
2.补码表示法
(1)定点小数的补码
例如,x=+0.1001,则[x]补=0.1001 x=-0.1001,则[x]补=1.0111
(2)定点整数的补码
若定点整数的补码形式为XnXn-1Xn-2…X0,则补码表示的范围是:
正数:
负数:
3.反码表示法
(1)定点小数的反码
(2)定点整数的反码
4.移码的表示法
移码通常用于表示浮点数的阶码,因此需掌握定点整数的移码表示方法
移码就是将补码的符号位取反就好:
重点:机器码的规格化形式的相关规定(熟记)
重点例题:1.求规格化范围
2.求754规格化范围
三、字符与字符串的表示方法
1.字符的表示方法:ASCII码,7位
2.字符串的存放:向量法(连续存放)、串表法(非连续存放)
四、汉字的表示方法
1.汉字的输入编码:数字编码(常用国标区位码)、拼音码、字形编码
2.汉字内码:占两个字节,最高位都为1
3.汉字字模码:只能用来构成汉字库,而不能用于机内存储,是汉字的输出形式。
2.2定点加法、减法运算
一、补码加法:
①符号位要作为数的一部分一起参加运算;②要在模2n+1 (或模2)的意义下相加,即符号位产生的进位要丢掉。
二、补码减法:
公式:[x-y]补= [x]补+[-y]补
由[y]补 求[-y]补 的法则: 各位都取反(包括符号位),然后末位+1
三、溢出概念与检测方法:
溢出:在定点整数机器中,数的表示范围为|x|<(2n-1)在运算过程中若出现大于(2n-1)的现象,则称为“溢出”。在定点机中,正常情况下溢出是不允许的。
检测方法:1.双符号位法:“01”表示上溢, “10”表示下溢。最高符号位始终表示结果的正确符号。
2.单符号位法:溢出检测逻辑表达式为V=Cf⊕Co,其中Cf为符号位产生的进位,Co为最高有效位产生的进位, V=1表示发生溢出。
四、定点加减运算的逻辑实现:
1.一位全加器估算时间延迟:
考虑溢出检测,那么n位串行进位加/减法器的延迟时间ta为:ta=n·2T+9T=(2n+9)T
当不考虑溢出检测时,有:ta=(n-1)·2T+9T
2.3定点乘法运算
一、原码乘法
符号位单独计算。
(1)串行实现:原码一位乘法算法
(2)原码并行乘法:
二、补码乘法
(1)间接补码并行乘法
1.原理: 特别需注意:负数的“原码→补码”和“补码→原码”的过程相同:数值位按位取反末位加1。
2.逻辑框图:
3.算前(后)求补器的功能和实现电路:
间接补码并行乘法的例子:
(2)直接补码并行乘法
2.4定点除法运算
一、(串行)恢复余数法:
二、不恢复余数法(加减交替法)
三、(并行)不恢复余数的阵列除法器
2.5定点运算器的组成
一、逻辑运算
分:逻辑非、逻辑加(逻辑或)、逻辑乘(逻辑与)、逻辑异(异或)四种基本运算
二、多功能算术/逻辑运算单元ALU
1.先行进位算法
(1)一位全加器: (2) 由一位全加器构成的串行进位的四位加法器
Cn+1~ Cn+4是同时算出的,故比串行进位的全加器速度要快。依此先行进位公式,可设计出四位并行加法器。对全加器电路再增加一函数发生器电路,即 可实现多种算术运算。
2.多种算术运算的实现:
可以证明:XiYi=Yi, Xi+Yi=Xi,则Cn+1=Y0+X0Cn,······Cn+4=Y3+ Y2X3 +Y1X2 X3 +Y0X1X2 X3 +X0X1X2X3Cn
=G+PCn G= Y3+ Y2X3 +Y1X2 X3 +Y0X1X2 X3 , P=X0X1X2X3
3. 算术/逻辑运算单元74181ALU
三、内部总线
内部总线:CPU内各部分的连线,分单向、双向总线
四、定点运算器的基本结构
运算器包括ALU、阵列乘除器、寄存器、多路开关、三态缓冲器、数据总线等逻辑部件。
1.单总线结构的运算器:双操作数分时经总线进入锁存器A和B,结果也通过单总线送回
2.双总线结构的运算器:两操作数通过各自的总线送加法器运算,结果通过 其中一总线送回
3.三总线结构的运算器:两操作数和操作结果通过各自的总线传送
2.6浮点运算方法和浮点运算器
一、浮点加减法运算
1.对(补码)非规格化数的规格化处理:
2.浮点加减法运算过程:
运算步骤:1对阶 2尾数求和 3规格化
小阶向大阶看齐:尾数右移,损失的是最小位
舍入处理:在对阶或者是右规的时候尾数要右移,舍弃低位,有两种舍入处理方法:“0舍1入法”,舍入的部分最高位为1的话就进一个1,最高位为0的话就直接舍去;“恒置1法”,只要位数被移掉,就在尾数末尾加“1”。
溢出处理:浮点数的溢出是按照阶码是否溢出来判断的!!!
数的表示:一般阶码E采用移码或补码表示,而尾数M采用补码表示。
二、浮点乘除法运算
1.浮点数的阶码运算:
2.对尾数运算结果(Mx× My)的处理:
运算步骤:1.0操作数检查 2.阶码加/减操作 3.尾数乘/除操作 4.结果规格化及舍入处理
三、浮点运算流水线:
各子过程段之间须设置高速缓冲存储器。