2.1.1 数据格式计算机中常用的数据表示格式有两种一是 定点格式,数值范围有限,要求但的处理硬件比较简单。
二是 浮点格式,数值范围很大,但要求硬件比较复杂。
1.定点数的表示方法定点表示,约定机器中所有数据的小数点位置是固定不变的
(x 0:符号位,0代表正号,1代表负号 ):
目前计算机中多采用定点 纯整数 表示,因此将定点数表示的运算简称为 整数运算 。
纯小数和纯整数浮点表示法,把一个数的 有效数字 和 数的范围 在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,数的 小数点位置 随比例因子的不同而在一定范围内自由浮动。
2.浮点数的表示方法
9 × 10- 28= 0.9 × 10- 27
N=R e.M
M,尾数,是一个纯小数。
e,比例因子的指数,称为浮点数的 指数,是一个整数。
R,比例因子的 基数,对于二进计数值的机器是一个常数
,一般规定 R 为 2,8或 16。
为便于软件移植,按照 IEEE754 标准,32位浮点数和
64位浮点数的标准格式为浮点数符号位小数点
(隐含的)
阶符采用隐含方式,即采用移码方式来表示正负指数。
将浮点数的指数真值 e 变成阶码 E 时,应将指数 e 加上一个固定的偏移值 127(01111111),即 E= e+ 127.
(1.75)10 =1.11× 20 (IEEE规格化表示 )
=0.111× 21 (传统规格化表示 )
=0.0111× 22
=0.00111× 23
不规格的例子:
规格化表示
IEEE754 标准中,一个规格化的 32位浮点数 x 的真值可表示为
x = (- 1)s× (1.M )× 2E- 127 e= E - 127
当浮点数的尾数为 0,不论其阶码为何值,计算机都把该浮点数看成零值,称为 机器零当阶码 E 为全 0且尾数 M 也为全 0时,表示的真值 x 为零,结合符号位 S 为 0或 1,有正零和负零之分。
当阶码 E 为全 1且尾数 M 为全 0时,表示的真值 x 为无穷大,结合符号位 S 为 0或 1,也有
+∞和 -∞之分。
当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为 机器零 。
E 的范围变为 1到 254,真正的指数值 e 则为 -126到 +127。
浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。
一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。
而单片机中多采用定点表示。
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
将十六进制数展开后,可得二进制数格式
4 1 3 6
指数 e= 阶码- 127= 10000010- 01111111= 00000011=(3)10
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
指数 e=(3)10
包括隐藏位 1的尾数 1.M= 1.011 0110 0000 0000 0000 0000= 1.011011
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
指数 e=(3)10 1.M= 1.011011
x = (- 1)s× 1.M× 2e
=+ (1.011011)× 23=+ 1011.011= (11.375)10
[例 2] 将 (20.59375)10转换成 754标准的 32位浮点数的二进制存储格式。
首先 分别将整数和分数部分转换成二进制数:
20.59375= 10100.10011
然后 移动小数点,使其在第 1,2位之间
10100.10011= 1.010010011× 24 e= 4
于是 得到:
S= 0,E= 4+ 127= 131,M= 010010011
最后,0100 0001 1010 0100 1100 0000 0000 0000
一个规格化的 64位浮点数 x 的真值为
x = (- 1)s× (1.M )× 2E- 1023 e= E - 1023
3.十进制数串的表示方法
(1).字符串形式字符串形式,一个字节存放一个十进制的数位或符号位。
为了指明这样一个数,需要给出该数在主存中的起始地址和位数 (串的长度 )。
00000001 0000000011
00000001 0000000001
0000000000
0000000000
(2).压缩的十进制数串形式每个 数位 占用半个字节 (即 4个二进制位 ),其值可用二-十编码
(BCD码 )或数字符的 ASCII码的低 4位表示。
符号位 也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,
1 2 3 C (+ 123) 0 1 2 D (- 12)
给出它在主存中的首地址和数字位个数 (不含符号位 )
4,自定义数据表示在传统的计算机体系结构中,用指令本身来说明操作数据的类型。
如定点加法表示操作数是纯小数或纯整数;浮点加法表示操作数是浮点数;十进制加法表示操作数是 BCD数。由于操作数据类型不同,要设三种不同的指令 (操作码 )来加以区分。
自定义数据表示则用数据本身来说明数据类型。表示形式有两种,
标志符数据表示 和 描述符数据表示 。
标识符 数据标志符数据表示描述符数据表示 描述符标志位 特征标 记 数据块 长度 数据块起始 地址优缺点区别
(1)标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放。
(2)描述符表示中,先访问描述符,后访问数据,至少增加一次访存。
(3)
2.1.2 数的机器码表示真值,书写表示的数机器数 或 机器码,符号位和数字位一起编码的原码、补码、
反码、移码等规则,最高位为符号位,正取 0,负取 1.
最大 优点,采用原码表示法简单易懂,
最大 缺点,是加法运算复杂。
(1)当两数相加时,如果是同号则数值相加;
(2)如果是异号,则要进行减法。
(3)而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。
注意,对于 0,原码机器中往往有,+0”、,-0”之分
1.原码表示法
2.补码表示法我们先以钟表对时为例说明补码的概念。
若 定点小数 补码形式为x 0.x 1x 2… x n,则补码表示的定义是
[x ]补 =
{
x 1>x ≥0
2+x= 2- |x | 0≥x ≥- 1 (mod 2)
0.1011-0,1011=0
[-0,1011]补 = 10-0.1011=1.0101
0.1011
1.0101
10.0000
0.0000
对 定点整数,补码表示的定义是
[x ]补 =
{
x 2n> x ≥0
2n+1+x = 2n+1-|x | 0≥x ≥- 2n (mod 2n+ 1)
3.反码表示法我们比较 定点小数 反码与补码的公式
[x ]反 = (2- 2- n)+ x
[x ]补 = 2+ x
[x ]补 = [x ]反 + 2- n
这个公式告诉我们,若要一个负数变补码,其方法是符号位置 1,其余各位 0变 1,1变 0,然后在最末位 (2-n)上加 1。
4.移码表示法移码通常用于表示浮点数的阶码。
补码值与移码值差别仅在于符号位不同。
小结人类书写格式浮点和定点机器码机器化
[例 3]以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。
[例 4]将十进制真值 (- 127,- 1,0,+ 1,+ 127)列表表示成二进制数及原码、反码、补码、移码值。
[例 5]设机器字长 16位,定点表示,尾数 15位,数符 1位,问:
(1)定点原码整数表示时,最大正数是多少?最小负数是多少?
(2)定点原码小数表示时,最大正数是多少?最小负数是多少?;
(1)定点原码整数表示最大正数值 = (215- 1)10= (+ 32767)10
0 111 111 111 111 111
最小负数值 =- (215- 1)10= (- 32767)10
1 111 111 111 111 111
例 6]假设由 S,E,M三个域组成的一个 32位二进制字所表示的 非零规格化浮点数 x,真值表示为:
x = (- 1)s× (1.M)× 2E- 128
问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?
1)最大正数
0 11 111 111 111 111 111 111 111 111 111 11
(2)最小正数
0 00 000 000 000 000 000 000 000 000 000 00
2.1.3 字符与字符串的表示方法
1.字符的表示方法国际上普遍采用的字符系统是七单位的 ASCII码,二进制编码需 7位,加一位偶校验位,共 8位一个字节,
ASCII码规定 8个二进制位的最高一位为 0,余下的 7位可以给出
128个编码
2.字符串字符串 是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。
[例 ]将字符串:
IF└┘A>B└┘THEN└┘READ(C)
从高位字节到低位字节依次存在主存中。
2.1.4 汉字的表示方法
1.汉字的输入编码
2.汉字内码为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为,1”。
3.汉字字模码
2.1.5 校验码最简单且应用广泛的检错码是采用一位校验位的 奇校验 或 偶校验设 x = (x 0x 1… x n- 1)是一个 n位字,则 奇校验位 C 定义为
C= x 0⊕ x 1⊕ … ⊕ x n- 1
式中 ⊕ 代表按位加,表明只有当 x 中包含有奇数个 1时,才使 C= 1,
即 C= 0。
同理,偶校验位 C 定义为
C= x 0⊕ x 1⊕ … ⊕ x n- 1
即 x 中包含偶数个 1时,才使 C= 0。
奇偶校验提供奇数个错误检测,无法检测偶数个错误,更无法识别错误信息的位置。
2.2 定点加法减法运算
2.2.1 补码加法补码加法的公式是
[x ]补 + [y ]补 = [x + y ]补
[例 9] x =+ 0.1011,y =- 0.0101,求 x + y。
[x ]补 = 0.1011,[y ]补 = 1.1011
[x ]补 0.1011
+ [y ]补 1.1011
[x + y ]补 10.0110
所以 x + y = 0.0110
一 是符号位要作为数的一部分一起参加运算二 是要在模 2的意义下相加,即超过的位要丢掉。
数用补码表示时,减法运算的公式为
[x - y ]补 = [x ]补 - [y ]补 = [x ]补 + [- y ]补
2.2.2 补码减法
2.2.3 溢出概念与检测方法用两个符号位并都参加运算,次高位与最高位相异或第二种溢出检测方法是采用单符号位法。
[例 14] x =+ 0.1100,y =+ 0.1000,求 x + y。
[x ]补 = 00.1100,[y ]补 = 00.1000
[x ]补 00.1100
+ [y ]补 00.1000
01.0100
两个正数相加,结果大于机器所能表示的最大正数,称为 上溢 。
[例 15] x =- 0.1100,y = -0.1000,求 x + y。
[x ]补 = 11.0100,[y ]补 = 11.1000
[x ]补 11.0100
+ [y ]补 11.1000
10.1100
而两个负数相加,结果小于机器所能表示的最小负数,称为 下溢 。
2,不论溢出与否,最高符号位始终指示正确的符号。
1.V= Sf1⊕ Sf2 可用异或门解决第二种溢出检测方法是采用单符号位法。
1.当最高有效位产生进位而符号位无进位时,产生上溢;
2.当最高有效位无进位而符号位有进位时,产生下溢。
V= Cf⊕ Co,也可用异或门实现。
2.2.4 基本的二进制加法 /减法器两个二进制数字 Ai,Bi和一个进位输入 Ci相加,产生一个和输出
Si,以及一个进位输出 Ci+ 1。
表 2.2 一位全加器真值表输入 输出
Ai Bi Ci Si Ci+ 1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ CiAi
一位全加器示图一个 n位的行波进位加减器
2.2.5 十进制加法器十进制加法器可由 BCD码 (二 -十进制码 )来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。
在十进制运算时,当相加二数之和大于 9时,便产生进位。
可是用 BCD码 完成十进制数运算时,当和数大于 9时,必须对和数进行加 6修正。
2.3.1 原码乘法
1.人工算法与机器算法的同异性被乘数 [x ]原 = x f,x n- 1…x 1x 0
乘数 [y ]原 = y f,y n- 1…y 1y 0
乘积
[z ]原 = (x f⊕ y f)+ (0.x n- 1…x 1x 0)(0.y n- 1…y 1y 0)
则设 x = 0.1101,y = 0.1011.让我们先用习惯方法求其乘积,其过程如下,
2.不带符号的阵列乘法器设有两个不带符号的二进制整数:
A= am- 1…a1a0
B= bn- 1…b1b0
图 2.4 m× n位不带符号的阵列乘法器逻辑图
5位 × 5位阵列乘法器的逻辑电路图演示这种乘法器要实现 n位 × n位时,需要 n(n- 1)个全加器和 n2
个“与”门。该乘法器的总的乘法时间可以估算如下:
令 Ta为“与门”的传输延迟时间,Tf为全加器 (FA)的进位传输延迟时间,假定用 2级“与非”逻辑来实现 FA的进位链功能,那么我们就有:
Ta = Tf = 2T
从演示中可知,最坏情况下延迟途径,即是沿着矩阵 P4
垂直线和最下面的一行。因而得
n位 × n位不带符号的阵列乘法器总的乘法时间为:
tm= Ta+ (n- 1)× 6T+ (n- 1)× Tf
= 2T+ (n- 1)× 6T+ (n- 1)× 2T= (8n- 6)T
[例 16] 参见上 CAI演示,已知两个不带符号的二进制整数 A =
11011,B = 10101,求每一部分乘积项 aibj的值与 p9p8…… p0的值。
a4b0= 1 a3b0= 1 a2b0= 0 a1b0= 1 a0b0= 1
a4b1= 0 a3b1= 0 a2b1= 0 a1b1= 0 a0b1= 0
a4b2= 1 a3b2= 1 a2b2= 0 a1b2= 1 a0b2= 0
a4b3= 0 a3b3= 0 a2b3= 0 a1b3= 0 a0b3= 0
a4b4= 1 a3b4= 1 a2b4= 0 a1b4= 1 a0b4= 1
P= p9p8p7p6p5p4p3p2p1p0= 1000110111 (56710)
3.带符号的阵列乘法器
(1) 对 2求补器电路算术运算部件设计中经常用到的求补电路。一个具有使能控制的二进制对 2求补器电路图其逻辑表达式如下:
C- 1= 0,Ci= ai+ Ci- 1
ai*= ai⊕ ECi- 1,0≤ i≤ n
例如,在一个 4位的对 2求补器中,,如果输入数为 1010,那么输出数应是 0110
其中从右算起的第 2位,就是所遇到的第一个,1”的位置。
用这种对 2求补器来转换一个 (n+ 1)为带符号的数,所需的总时间延迟为
tTC= n·2 T+ 5T= (2n+ 5)T (2.28)
其中每个扫描级需 2T延迟,而 5T则是由于“与”门和“异或”门引起的。
(2) 带符号的阵列乘法器
(n+ 1)× (n+ 1)位带求补器的阵列 乘法器逻辑方框图上面演示所示的带求补级的阵列乘法器既适用于 原码乘法,也适用于 间接的补码乘法 。
区别:
不过在 原码乘法 中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而 间接的补码阵列乘法 所需要增加的硬件较多。为了完成所必需的求不予乘法操作,时间大约比原码阵列乘法增加 1倍。
[例 17] 设 x =+ 15,y =- 13,用带求补器的原码阵列乘法器求出乘积 x ·y =?
设最高位为符号位,则输入数据为
[x ]原 = 01111 [y ]原 = 11101
。
[例 18] 设 x = - 15,y =- 13,用带求补器的补码阵列乘法器求出乘积 x ·y =?
设最高位为符号位,则输入数据用补码表示为
[x ]补 = 10001 [y ]补 = 10011
尾数部分算前求补器输出为,|x |= 1111,|y |= 1101
2.3.2 直接补码并行乘法
1.补码与真值得转换公式补码乘法因符号位参与运算,可以完成补码数的“直接”乘法,
而不需要求补级。这种直接的方法排除了较慢的对 2求补操作,
因而大大加速了乘法过程。
P42 公式( 2。 29)
[例 19] 已知,[N1]补 = (01101)2,[N2]补 = (10011)2,求 [N1]补,[N2]补 具有的数值。
[N1]补 = (01101)2 具有的数值为:
N1=- 0× 24+ 1× 23+ 1× 22+ 0× 21+ 1× 20= (+ 13)10
[N2]补 = (10011)2 具有的数值为:
N2=- 1× 24+ 0× 23+ 0× 22+ 1× 21+ 1× 20= (- 13)10
2.一般化的全加器形式常规的一位全加器可假定它的 3个输入和
2个输出都是正权。这种加法器通过把正权或负权加到输入 /输出端,可以归纳出四类加法单元。
P43 表 2。 3
对 0类,3类全加器而言有:
S= XYZ+ XYZ+ XYZ+ XYZ
C= XY+ YZ+ ZX
对 1类,2类全加器,则有
S= XYZ+ XYZ+ XYZ+ XYZ
C= XY+ XZ+ YZ
3.直接补码阵列乘法器利用混合型的全加器就可以构成直接补码数阵列乘法器。
设被乘数 A和乘数 B是两个 5位的二进制补码数,即
A= (a4)a3a2a1a0
B= (b4)a3a2a1a0
(a4) a3 a2 a1 a0 = A
× ) (b4) b3 b2 b1 b0 = B
(a4b0) a3b0 a1b0 a1b0 a0b0
(a4b1) a3b1 a2b1 a1b1 a0b1
(a4b2) a3b2 a2b2 a1b2 a0b2
(a4b3) a3b3 a2b3 a1b3 a0b3
+ ) a4b4 (a3b4) (a2b4) (a1b4) (a0b4)
p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P
[例 20] 设 [A]补 = (01101)2,[B]补 = (11011)2,求 [A× B]补 =?
(0) 1 1 0 1 = + 13
× ) (1) 1 0 1 1 = - 5
(0) 1 1 0 1
(0) 1 1 0 1
(0) 0 0 0 0
(0) 1 1 0 1
0 (1) (1) (0) (1)
0 (1) 0 1 1 1 1 1 1
(1) 1 0 1 1 1 1 1 1 = - 65
5位乘 5位的直接补码阵列乘法器逻辑原理演示
2.4.1 原码除法运算原理两个原码表示的数相除时
(1)商的 符号 由两数的符号按位相加求得
(2)商的 数值部分 由两数的数值部分相除求得。
设被除数 x = 0.1001,除数 y = 0.1011,模仿十进制除法运算,
以手算方法求 x÷y 的过程如下,
0.1 1 0 1 商 q
0.1 0 1 1 0.1 0 0 1 0 x (r0) 被除数小于除数,商 0
- 0.0 1 0 1 1 2- 1y 除数右移 1位,减除数,商 1
0.0 0 1 1 1 0 r1 得余数 r1
- 0.0 0 1 0 1 1 2- 2y 除数右移 1位,减除数,商 1
0.0 0 0 0 1 1 0 r2 得余数 r2
- 0.0 0 0 1 0 1 1 2- 3y 除数右移 1位,不减除数,商 0
0.0 0 0 0 1 1 0 0 r3 得余数 r3
- 0.0 0 0 0 1 0 1 1 2- 4y 除数右移 1位,减除数,商 1
- 0.0 0 0 0 0 0 0 1 r4 得余数 r4
恢复余数法,先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算加减交替法,要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,
因此控制比较复杂。实际中常用不恢复余数法
2.4.2 并行除法器
1.可控加法 /减法 (CAS)单元
Si= Ai⊕ (Bi⊕ P)⊕ Ci
Ci+ 1= (Ai+ Ci)·(Bi⊕ P)+ AiCi
当 P= 0时,方程式 (2.32)就等于式 (2.23),即得我们熟悉的一位全加器 (FA)的公式:
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ AiCi
当 P= 1时,则得求差公式:
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ AiCi
在减法情况下,输入 Ci称为借位输入,而 Ci+ 1称为借位输出。
为说明 CAS单元的实际内部电路实现,将方程式 (2.32)加以变换,可得如下形式:
Si= Ai⊕ (Bi⊕ P)⊕ Ci
= AiBiCiP+ AiBiCiP+ AiBiCiP+ AiBiCiP+ AiBiCiP+
AiBiCiP+ AiBiCiP+ AiBiCiP
Ci+ 1= (Ai+ Ci)(Bi⊕ P)+ AiCi
= AiBiP+ AiBiP+ BiCiP+ BiCiP+ AiCi
基本的 CAS单元的延迟时间为 3T单元
2.不恢复余数的阵列除法器下图示出了 4位除 4位的不恢复余数阵列除法器的逻辑原理图被除数 x = 0.x 1x 2x 3x 4x 5x 6 (双倍长 )
除数 y = 0.y 1y 2y 3
商数 q = 0.q1q2q3
余数 r = 0.00r3r4r5r6
字长 n+ 1= 4
对一个 2n位除以 n位的不恢复余数阵列除法器来说,单元的数量为 (n+ 1)2,考虑最大情况下的信号延迟,其除法执行时间为
td= 3(n+ 1)2T
[例 20] x = 0.101001,y = 0.111,求 q =x÷y 。
2.5 定点运算器的组成多功能算术 /逻辑运算单元 (ALU)不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。
1.基本思想一位全加器 (FA)的逻辑表达式为
Fi= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ CiAi
一位算术 /逻辑运算单元的逻辑表达式为
Fi= Xi⊕ Yi⊕ Cn+ I
Cn+ i+ 1= XiYi+ YiCn+ i+ Cn+ iXi
图 2.10 ALU的逻辑结构原理框图
2.逻辑表达式表 2.4 Xi,Yi与控制参数和输入量的关系
S0 S1 Yi S2 S3 Xi
0 0
0 1
1 0
1 1
Ai
AiBi
AiBi
0
0 0
0 1
1 0
1 1
1
Ai+ Bi
Ai+ Bi
Ai
化简并 代入前面的求和与进位表达式,可得 ALU的某一位逻辑表达式如下
Fi= Yi⊕ Xi⊕ Cn+i
Cn+ i+ 1= Yi+ XiCn+ i
4位之间采用先行进位公式,根据式( 2.36),每一位的进位公式可递推如下:
第 0位向第 1位的进位公式为
Cn+ 1= Y0+ X0Cn
第 1位向第 2位的进位公式为
Cn+ 2= Y1+ X1Cn+ 1= Y1+ Y0X1+ X0X1Cn
第 2位向第 3位的进位公式为
Cn+ 3= Y2+ X2Cn+ 2= Y2+ Y1X2+ Y0X1X2+ X0X1X2Cn
第 3位的进位输出(即整个 4位运算进位输出)公式为
Cn+ 4= Y3+ X3Cn+ 3= Y3+ Y2X3+ Y1X2X3+ Y0X1X2X3+ X0X1X2X3Cn
设
G= Y3+ Y2X3+ Y1X2X3+ Y0X1X2X3
P= X0X1X2X3
则
Cn+ 4= G+ PCn
其中 G称为 进位发生输出,P称为 进位传送输出,便于实现多片(组) ALU之间的先行进位正逻辑表示的 4位算术 /逻辑运算单元 (ALU)的逻辑电路图演示
74181ALU
表 2.5 74181ALU算术 /逻辑运算功能表
4.两级先行进位的 ALU
假设 4片(组) 74181的先行进位输出依次
P0,G0,G1P1,P2,G2,P3,G3
Cn+ x = G0+ P0Cn
Cn+ y = G1+ P1Cn+ x = G1+ G0P1+ P0P1Cn
Cn+ z = G2+ P2Cn+ y = G2+ G1P2+ G0P1P2+ P0P1P2Cn
Cn+ 4 = G3+ P3Cn+ z = G3+ G2P3+ G1P1P2+ G0P1P2P3+ P0P1P2P3Cn
= G*+ P*Cn
其中
P*= P0P1P2P3G* 成组进位发生输出
G*= G3+ G2P3+ G1P1P2+ G0P1P2P3 成组进位传送输出
74182先行进位部件( CLA)
2.5.3 内部总线定义,为了减少内部的传送线并便于控制,通常将一些寄存器之间数据传送的通路加以归并,组成总线结构,使不同来源的信息在此传输线上分时传送。
总线:分为 内部总线 和 外部总线 两类。
按总线的逻辑结构来说:总线可分为 单向传送总线 和 双向传送总线 。
若 E= 0,即使 D为,1”,也不能输入。
当接收数据时,E= 1三态门被禁止,因而数据总线上的数据被接收到锁存器。
当发送数据时,E= 0,三态门被允许,因而锁存器的数据发送至数据总线上。
2.5.4 定点运算器的基本结构运算器包括 ALU\阵列乘除器 \寄存器 \多路开关 \三态缓冲器 \数据总线等逻辑部件。
算器的设计,主要是围绕 ALU和寄存器同数据总线之间如何传送操作数和运算结果进行的。
计算机的运算器大体有如下三种结构形式
2.6.1 浮点加法、减法运算设有两个浮点数 x 和 y,它们分别为
x = 2Ex ·Mx
y = 2Ey ·My
z =x ± y = (Mx 2Ex - Ey ± My )2Ey,Ex <= Ey
完成浮点加减运算的操作过程大体分为四步:
1,0 操作数的检查;
2,比较阶码大小并完成对阶;
3,尾数进行加或减运算;
4,结果规格化并进行舍入处理。
浮点加减运算的操作流程阶码上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+ ∞ 和
- ∞ 。
阶码下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是 0。
尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增 1
来重新对齐。
尾数下溢 在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。
结果规格化在浮点加减运算时,尾数求和的结果也可以得到 01.ф…ф 或
10.ф…ф,即两符号位不等,这在定点加减法运算中称为溢出,
运算结果右移以实现规格化表示,称为 向右规格化 。
当尾数不是 1.M时需 向左规格化 。
舍入处理简单的舍入方法有两种:
( 1)是,0舍 1入”法,即如果右移时被丢掉数位的最高位为 0则舍去,为 1则将尾数的末位加,1”。
( 2)是 "恒置一 "法,即只要数位被移掉,就在尾数的末尾恒置 "1"。
在 IEEE754标准中,舍入处理提供了四种可选方法:
就近舍入 其实质就是通常所说的“四舍五入”。
例如,尾数超出规定的 23位的多余位数字是 10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增 1。
若多余的 5位是 01111,则简单的截尾即可。
对多余的 5位 10000这种特殊情况:若最低有效位现为 0,则截尾;
若最低有效位现为 1,则向上进一位使其变为 0。
朝 0舍入 即朝数轴原点方向舍入,就是简单的截尾。
朝+ ∞ 舍入 对正数来说,只要多余位不全为 0则向最低有效位进 1;负数来说则是简单的截尾。
朝- ∞舍入 处理方法正好与 朝+ ∞ 舍入情况相反。对正数来说,只要多余位不全为 0则简单截尾 ;对负数来说,向最低有效位进 1。
[例 25] 设 x = 2010× 0.11011011,y = 2100× (- 0.10101100),求 x + y 。
[x ]浮 = 00 010,0.11011011
[y ]浮 = 00 100,1.01010100
<1> 求阶差并对阶
△ E= Ex - Ey = [Ex ]补 + [- Ey ]补 = 00 010+ 11 100= 11 110
[x ]浮 = 00 100,0.00110110(11)
<2> 尾数求和
0,0 0 1 1 0 1 1 0 (11)
+ 1,0 1 0 1 0 1 0 0
────────────────
1,1 0 0 0 1 0 1 0 (11)
<3>规格化处理尾数运算结果的符号位与最高数值位同值,应执行左规处理
,结果为 1.00010101(10),阶码为 00 011。
<4>舍入处理采用 0舍 1入法处理,则有
1,0 0 0 1 0 1 0 1
+ 1
────────────────
1,0 0 0 1 0 1 1 0
<5>判溢出阶码符号位为 00,不溢出,故得最终结果为
x + y = 2011× (- 0.11101010)
2.6.2 浮点乘法、除法运算
1.浮点乘法、除法运算规则设有两个浮点数 x 和 y,
x = 2Ex ·Mx
y = 2Ey ·My
浮点乘法运算的规则是
x × y = 2(Ex + Ey )·( Mx × My )
浮点除法运算的规则是
x ÷ y = 2(Ex - Ey )·( Mx ÷ My )
2.浮点乘、除法运算步骤浮点数的乘除运算大体分为四步:
第一步,0 操作数检查;
第二步,阶码加 /减操作;
第三步,尾数乘 /除操作;
第四步,结果规格化及舍入处理。
(1) 浮点数的阶码运算在计算机中,阶码通常用补码或移码形式表示按此定义,则有
[x ]移 + [y ]移 = 2n+ x + 2n+ y
= 2n+ (2n+ (x + y ))
= 2n+ [x + y ]移则求阶码和用如下方式完成:
[x ]移 + [y ]补 = 2n+ x + 2n+ 1+ y
= 2n+ 1+ (2n+ (x + y ))
= 2n+ 1+ [x + y ]移
[x + y ]移 = [x ]移 + [y ]补
[x - y ]移 = [x ]移 + [- y ]补使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用 0 参加加减运算溢出条件是阶码的最高符号位为 1。
此时,当两位符号位为 10时,表明 上溢,为 11时,表明 下溢 。当最高符号位为 0时,表明没有溢出;两位符号位为 01时,结果为正;为 00 时,结果为负。
[例 26] x =+ 011,y =+ 110,求 [x + y ]移 和 [x - y ]移,并判断是否溢出。
[x ]移 = 01 011,[y ]补 = 00 110,[- y ]补 = 11 010
[x + y ]移 = [x ]移 + [y ]补 = 10 001,结果上溢。
[x - y ]移 = [x ]移 + [- y ]补 = 00 101,结果正确,为- 3
(2) 尾数处理当尾数用 原码 表示时。
1、只要尾数的最低位为 1,或移出的几位中有为 1的数值位,
就是最低位的值为 1。
2,0舍 1入法,即当丢失的最高位的值为 1时,把这个 1加到最低数值位上进行修正,否则舍去丢失的的各位的值。这样处理时,舍入效果对正数负数相同,入将使数的绝对值变大,舍则使数的绝对值变小。
当尾数是用 补码 表示时
1、当丢失的各位均为 0时,不必舍入操作;
2、当丢失的最高位为 0 时,以下各位不全为 0 时,或者丢失的最高位为 1,以下各位均为 0时,则舍去丢失位上的值;
3、当丢失的最高位为 1,以下各位不全为 0 时,则执行在尾数最低位入 1的修正操作。
[例 27] 设 [x 1]补 = 11.01100000,[x 2]补 = 11.01100001,[x 3]补
= 11.01101000,[x 4]补 = 11.01111001,求执行只保留小数点后 4位有效数字的舍入操作值。
[x 1]补 = 11.0110 (不舍不入 )
[ x 2]补 = 11.0110 (舍 )
[x 3]补 = 11.0110 (舍 )
[x 4]补 = 11.1000 (入 )
[例 28] 设有浮点数 x = 2- 5× 0.0110011,y = 23× (- 0.1110010),
阶码用 4位移码表示,尾数 (含符号位 )用 8位补码表示。求 [x × y ]
浮 。要求用补码完成尾数乘法运算,运算结果尾数保留高 8位 (含符号位 ),并用尾数低位字长值处理舍入操作。
移码采用双符号位,尾数补码采用单符号位,则有
[Mx ]补 = 0.0110011,[My ]补 = 1.0001110,
[Ey ]移 = 01 011,[Ey ]补 = 00 011,[Ex ]移 = 00 011,
[x ]浮 = 00 011,0.0110011,[y ]浮 = 01 011,1.0001110
(1) 求阶码和
[Ex + Ey ]移 = [Ex ]移 + [Ey ]补 = 00 011+ 00 011= 00 110,
值为移码形式- 2。
(2) 尾数乘法运算 可采用补码阵列乘法器实现,即有
[Mx ]补 × [My ]补 = [0.0110011]补 × [1.0001110]补
= [1.1010010,1001010]补
(3) 规格化处理乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为 00 101(-3),
尾数变为 1.0100101,0010100。
(4) 舍入处理尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为 1.0100101 。
最终相乘结果为
[x × y ]浮 = 00 101,1.0100101
其真值为
x × y = 2- 3× (- 0.1011011)
2.6.3 浮点运算流水线
1.流水线原理把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行,实现 时间并行性 的一种非常经济的方法。
假定作业 T 被分成 k 个子任务,可表达为
T= {T1,T2,···,Tk}
各个子任务之间有一定的优先关系:若 i<j,则必须在 Ti 完成以后,Tj才能开始工作。具有这种线性优先关系的流水线称为 线性流水线 。
线性流水线处理的硬件基本结构设过程段 Si所需的时间为 τ i,缓冲寄存器的延时为 τ l,线性流水线的时钟周期定义为
τ= max{τi}+ τl= τm+ τl
故流水线处理的频率为 f= 1/τ。
在流水线处理中,当任务饱满时,每隔一个时钟周期都能输出一个任务。从理论上说,一个具有 k 级过程段的流水线处理 n 个任务需要的时钟周期数为
Tk= k+ (n- 1)
用非流水线的硬件来处理这 n个任务,时间上只能串行进行,则所需时钟周期数为
TL= n·k
我们将 TL和 Tk的比值定义为 k级线性流水线的加速比:
Ck= T
L
Tk =
n·k
k+ (n- 1)
2.流水线浮点加法器浮点数加减法由 0操作数检查,对阶操作,尾数操作,结果规格化及舍入处理 共 4步完成假设有两个规格化的浮点数
X=1.1000× 22 Y=1.1100× 24
[例 29]上述演示中,(1)假设每个过程段所需的时间为:求阶差 τ1
= 70ns,对阶 τ2= 60ns,相加 τ3= 90ns,规格化 τ4= 80ns,缓冲寄存器
L的延时为 tl= 10ns,求 4 级流水线加法器的加速比为多少? (2)
如果每个过程段的时间相同,即都为 75ns,(包括缓冲寄存器时间 ),
加速比是多少?
(1)加法器的流水线时钟周期至少为
τ= 90ns+ 10ns= 100ns
如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为
τ1+ τ2+ τ3+ τ4 = 300ns
[例 30] 试用 4段的浮点加法流水线来实现一维向量的求和运算,这
4段流水线是阶码比较、对阶操作、尾数相加、规格化。只要求画出向量加法计算流水时空图。
演示所示
2.6.4 浮点运算器实例
1.CPU之外的浮点运算器
80× 87是美国 Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合 80× 86CPU进行的,所以又称为协处理器。
2.CPU之内的浮点运算器奔腾 CPU将浮点运算器包含在芯片内。奔腾 CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。
指令执行过程分为 8段流水线。前 4 段为指令预取 (DF)、
指令译码 (D1),地址生成 (D2),取操作数 (EX),在 U,V流水线中完成;后 4段为执行 1(X1),执行 2(X2),结果写回寄存器堆 (WF),错误报告 (ER),在浮点运算器中完成。一般情况下,
由 U流水线完成一条浮点数操作指令 。
小结数字数据
1.定点
2.浮点
3.十进制数串字符数据
1.西文
2.中文
3.十进制数串机器数据原码表示法,反码表示法,补码表示法,移码表示法为运算器构造的简单性,运算方法中算术运算通常采用补码加、
减法,原码乘除法或补码乘除法。
为了运算器的高速性和控制的简单性,采用了阵列乘除法、先行进位、流水线等并行技术措施。
浮点运算器在定点运算器复杂基础上发展。
乘除法在加减法复杂基础上发展。
作业
P70 14,15
二是 浮点格式,数值范围很大,但要求硬件比较复杂。
1.定点数的表示方法定点表示,约定机器中所有数据的小数点位置是固定不变的
(x 0:符号位,0代表正号,1代表负号 ):
目前计算机中多采用定点 纯整数 表示,因此将定点数表示的运算简称为 整数运算 。
纯小数和纯整数浮点表示法,把一个数的 有效数字 和 数的范围 在计算机的一个存储单元中分别予以表示,这种把数的范围和精度分别表示的方法,数的 小数点位置 随比例因子的不同而在一定范围内自由浮动。
2.浮点数的表示方法
9 × 10- 28= 0.9 × 10- 27
N=R e.M
M,尾数,是一个纯小数。
e,比例因子的指数,称为浮点数的 指数,是一个整数。
R,比例因子的 基数,对于二进计数值的机器是一个常数
,一般规定 R 为 2,8或 16。
为便于软件移植,按照 IEEE754 标准,32位浮点数和
64位浮点数的标准格式为浮点数符号位小数点
(隐含的)
阶符采用隐含方式,即采用移码方式来表示正负指数。
将浮点数的指数真值 e 变成阶码 E 时,应将指数 e 加上一个固定的偏移值 127(01111111),即 E= e+ 127.
(1.75)10 =1.11× 20 (IEEE规格化表示 )
=0.111× 21 (传统规格化表示 )
=0.0111× 22
=0.00111× 23
不规格的例子:
规格化表示
IEEE754 标准中,一个规格化的 32位浮点数 x 的真值可表示为
x = (- 1)s× (1.M )× 2E- 127 e= E - 127
当浮点数的尾数为 0,不论其阶码为何值,计算机都把该浮点数看成零值,称为 机器零当阶码 E 为全 0且尾数 M 也为全 0时,表示的真值 x 为零,结合符号位 S 为 0或 1,有正零和负零之分。
当阶码 E 为全 1且尾数 M 为全 0时,表示的真值 x 为无穷大,结合符号位 S 为 0或 1,也有
+∞和 -∞之分。
当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为 机器零 。
E 的范围变为 1到 254,真正的指数值 e 则为 -126到 +127。
浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。
一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。
而单片机中多采用定点表示。
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
将十六进制数展开后,可得二进制数格式
4 1 3 6
指数 e= 阶码- 127= 10000010- 01111111= 00000011=(3)10
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
指数 e=(3)10
包括隐藏位 1的尾数 1.M= 1.011 0110 0000 0000 0000 0000= 1.011011
[例 1] 若浮点数 x 的 754标准存储格式为 (41360000)16,求其浮点数的十进制数值。
指数 e=(3)10 1.M= 1.011011
x = (- 1)s× 1.M× 2e
=+ (1.011011)× 23=+ 1011.011= (11.375)10
[例 2] 将 (20.59375)10转换成 754标准的 32位浮点数的二进制存储格式。
首先 分别将整数和分数部分转换成二进制数:
20.59375= 10100.10011
然后 移动小数点,使其在第 1,2位之间
10100.10011= 1.010010011× 24 e= 4
于是 得到:
S= 0,E= 4+ 127= 131,M= 010010011
最后,0100 0001 1010 0100 1100 0000 0000 0000
一个规格化的 64位浮点数 x 的真值为
x = (- 1)s× (1.M )× 2E- 1023 e= E - 1023
3.十进制数串的表示方法
(1).字符串形式字符串形式,一个字节存放一个十进制的数位或符号位。
为了指明这样一个数,需要给出该数在主存中的起始地址和位数 (串的长度 )。
00000001 0000000011
00000001 0000000001
0000000000
0000000000
(2).压缩的十进制数串形式每个 数位 占用半个字节 (即 4个二进制位 ),其值可用二-十编码
(BCD码 )或数字符的 ASCII码的低 4位表示。
符号位 也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,
1 2 3 C (+ 123) 0 1 2 D (- 12)
给出它在主存中的首地址和数字位个数 (不含符号位 )
4,自定义数据表示在传统的计算机体系结构中,用指令本身来说明操作数据的类型。
如定点加法表示操作数是纯小数或纯整数;浮点加法表示操作数是浮点数;十进制加法表示操作数是 BCD数。由于操作数据类型不同,要设三种不同的指令 (操作码 )来加以区分。
自定义数据表示则用数据本身来说明数据类型。表示形式有两种,
标志符数据表示 和 描述符数据表示 。
标识符 数据标志符数据表示描述符数据表示 描述符标志位 特征标 记 数据块 长度 数据块起始 地址优缺点区别
(1)标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放。
(2)描述符表示中,先访问描述符,后访问数据,至少增加一次访存。
(3)
2.1.2 数的机器码表示真值,书写表示的数机器数 或 机器码,符号位和数字位一起编码的原码、补码、
反码、移码等规则,最高位为符号位,正取 0,负取 1.
最大 优点,采用原码表示法简单易懂,
最大 缺点,是加法运算复杂。
(1)当两数相加时,如果是同号则数值相加;
(2)如果是异号,则要进行减法。
(3)而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。
注意,对于 0,原码机器中往往有,+0”、,-0”之分
1.原码表示法
2.补码表示法我们先以钟表对时为例说明补码的概念。
若 定点小数 补码形式为x 0.x 1x 2… x n,则补码表示的定义是
[x ]补 =
{
x 1>x ≥0
2+x= 2- |x | 0≥x ≥- 1 (mod 2)
0.1011-0,1011=0
[-0,1011]补 = 10-0.1011=1.0101
0.1011
1.0101
10.0000
0.0000
对 定点整数,补码表示的定义是
[x ]补 =
{
x 2n> x ≥0
2n+1+x = 2n+1-|x | 0≥x ≥- 2n (mod 2n+ 1)
3.反码表示法我们比较 定点小数 反码与补码的公式
[x ]反 = (2- 2- n)+ x
[x ]补 = 2+ x
[x ]补 = [x ]反 + 2- n
这个公式告诉我们,若要一个负数变补码,其方法是符号位置 1,其余各位 0变 1,1变 0,然后在最末位 (2-n)上加 1。
4.移码表示法移码通常用于表示浮点数的阶码。
补码值与移码值差别仅在于符号位不同。
小结人类书写格式浮点和定点机器码机器化
[例 3]以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。
[例 4]将十进制真值 (- 127,- 1,0,+ 1,+ 127)列表表示成二进制数及原码、反码、补码、移码值。
[例 5]设机器字长 16位,定点表示,尾数 15位,数符 1位,问:
(1)定点原码整数表示时,最大正数是多少?最小负数是多少?
(2)定点原码小数表示时,最大正数是多少?最小负数是多少?;
(1)定点原码整数表示最大正数值 = (215- 1)10= (+ 32767)10
0 111 111 111 111 111
最小负数值 =- (215- 1)10= (- 32767)10
1 111 111 111 111 111
例 6]假设由 S,E,M三个域组成的一个 32位二进制字所表示的 非零规格化浮点数 x,真值表示为:
x = (- 1)s× (1.M)× 2E- 128
问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少?
1)最大正数
0 11 111 111 111 111 111 111 111 111 111 11
(2)最小正数
0 00 000 000 000 000 000 000 000 000 000 00
2.1.3 字符与字符串的表示方法
1.字符的表示方法国际上普遍采用的字符系统是七单位的 ASCII码,二进制编码需 7位,加一位偶校验位,共 8位一个字节,
ASCII码规定 8个二进制位的最高一位为 0,余下的 7位可以给出
128个编码
2.字符串字符串 是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。
[例 ]将字符串:
IF└┘A>B└┘THEN└┘READ(C)
从高位字节到低位字节依次存在主存中。
2.1.4 汉字的表示方法
1.汉字的输入编码
2.汉字内码为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为,1”。
3.汉字字模码
2.1.5 校验码最简单且应用广泛的检错码是采用一位校验位的 奇校验 或 偶校验设 x = (x 0x 1… x n- 1)是一个 n位字,则 奇校验位 C 定义为
C= x 0⊕ x 1⊕ … ⊕ x n- 1
式中 ⊕ 代表按位加,表明只有当 x 中包含有奇数个 1时,才使 C= 1,
即 C= 0。
同理,偶校验位 C 定义为
C= x 0⊕ x 1⊕ … ⊕ x n- 1
即 x 中包含偶数个 1时,才使 C= 0。
奇偶校验提供奇数个错误检测,无法检测偶数个错误,更无法识别错误信息的位置。
2.2 定点加法减法运算
2.2.1 补码加法补码加法的公式是
[x ]补 + [y ]补 = [x + y ]补
[例 9] x =+ 0.1011,y =- 0.0101,求 x + y。
[x ]补 = 0.1011,[y ]补 = 1.1011
[x ]补 0.1011
+ [y ]补 1.1011
[x + y ]补 10.0110
所以 x + y = 0.0110
一 是符号位要作为数的一部分一起参加运算二 是要在模 2的意义下相加,即超过的位要丢掉。
数用补码表示时,减法运算的公式为
[x - y ]补 = [x ]补 - [y ]补 = [x ]补 + [- y ]补
2.2.2 补码减法
2.2.3 溢出概念与检测方法用两个符号位并都参加运算,次高位与最高位相异或第二种溢出检测方法是采用单符号位法。
[例 14] x =+ 0.1100,y =+ 0.1000,求 x + y。
[x ]补 = 00.1100,[y ]补 = 00.1000
[x ]补 00.1100
+ [y ]补 00.1000
01.0100
两个正数相加,结果大于机器所能表示的最大正数,称为 上溢 。
[例 15] x =- 0.1100,y = -0.1000,求 x + y。
[x ]补 = 11.0100,[y ]补 = 11.1000
[x ]补 11.0100
+ [y ]补 11.1000
10.1100
而两个负数相加,结果小于机器所能表示的最小负数,称为 下溢 。
2,不论溢出与否,最高符号位始终指示正确的符号。
1.V= Sf1⊕ Sf2 可用异或门解决第二种溢出检测方法是采用单符号位法。
1.当最高有效位产生进位而符号位无进位时,产生上溢;
2.当最高有效位无进位而符号位有进位时,产生下溢。
V= Cf⊕ Co,也可用异或门实现。
2.2.4 基本的二进制加法 /减法器两个二进制数字 Ai,Bi和一个进位输入 Ci相加,产生一个和输出
Si,以及一个进位输出 Ci+ 1。
表 2.2 一位全加器真值表输入 输出
Ai Bi Ci Si Ci+ 1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ CiAi
一位全加器示图一个 n位的行波进位加减器
2.2.5 十进制加法器十进制加法器可由 BCD码 (二 -十进制码 )来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。
在十进制运算时,当相加二数之和大于 9时,便产生进位。
可是用 BCD码 完成十进制数运算时,当和数大于 9时,必须对和数进行加 6修正。
2.3.1 原码乘法
1.人工算法与机器算法的同异性被乘数 [x ]原 = x f,x n- 1…x 1x 0
乘数 [y ]原 = y f,y n- 1…y 1y 0
乘积
[z ]原 = (x f⊕ y f)+ (0.x n- 1…x 1x 0)(0.y n- 1…y 1y 0)
则设 x = 0.1101,y = 0.1011.让我们先用习惯方法求其乘积,其过程如下,
2.不带符号的阵列乘法器设有两个不带符号的二进制整数:
A= am- 1…a1a0
B= bn- 1…b1b0
图 2.4 m× n位不带符号的阵列乘法器逻辑图
5位 × 5位阵列乘法器的逻辑电路图演示这种乘法器要实现 n位 × n位时,需要 n(n- 1)个全加器和 n2
个“与”门。该乘法器的总的乘法时间可以估算如下:
令 Ta为“与门”的传输延迟时间,Tf为全加器 (FA)的进位传输延迟时间,假定用 2级“与非”逻辑来实现 FA的进位链功能,那么我们就有:
Ta = Tf = 2T
从演示中可知,最坏情况下延迟途径,即是沿着矩阵 P4
垂直线和最下面的一行。因而得
n位 × n位不带符号的阵列乘法器总的乘法时间为:
tm= Ta+ (n- 1)× 6T+ (n- 1)× Tf
= 2T+ (n- 1)× 6T+ (n- 1)× 2T= (8n- 6)T
[例 16] 参见上 CAI演示,已知两个不带符号的二进制整数 A =
11011,B = 10101,求每一部分乘积项 aibj的值与 p9p8…… p0的值。
a4b0= 1 a3b0= 1 a2b0= 0 a1b0= 1 a0b0= 1
a4b1= 0 a3b1= 0 a2b1= 0 a1b1= 0 a0b1= 0
a4b2= 1 a3b2= 1 a2b2= 0 a1b2= 1 a0b2= 0
a4b3= 0 a3b3= 0 a2b3= 0 a1b3= 0 a0b3= 0
a4b4= 1 a3b4= 1 a2b4= 0 a1b4= 1 a0b4= 1
P= p9p8p7p6p5p4p3p2p1p0= 1000110111 (56710)
3.带符号的阵列乘法器
(1) 对 2求补器电路算术运算部件设计中经常用到的求补电路。一个具有使能控制的二进制对 2求补器电路图其逻辑表达式如下:
C- 1= 0,Ci= ai+ Ci- 1
ai*= ai⊕ ECi- 1,0≤ i≤ n
例如,在一个 4位的对 2求补器中,,如果输入数为 1010,那么输出数应是 0110
其中从右算起的第 2位,就是所遇到的第一个,1”的位置。
用这种对 2求补器来转换一个 (n+ 1)为带符号的数,所需的总时间延迟为
tTC= n·2 T+ 5T= (2n+ 5)T (2.28)
其中每个扫描级需 2T延迟,而 5T则是由于“与”门和“异或”门引起的。
(2) 带符号的阵列乘法器
(n+ 1)× (n+ 1)位带求补器的阵列 乘法器逻辑方框图上面演示所示的带求补级的阵列乘法器既适用于 原码乘法,也适用于 间接的补码乘法 。
区别:
不过在 原码乘法 中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而 间接的补码阵列乘法 所需要增加的硬件较多。为了完成所必需的求不予乘法操作,时间大约比原码阵列乘法增加 1倍。
[例 17] 设 x =+ 15,y =- 13,用带求补器的原码阵列乘法器求出乘积 x ·y =?
设最高位为符号位,则输入数据为
[x ]原 = 01111 [y ]原 = 11101
。
[例 18] 设 x = - 15,y =- 13,用带求补器的补码阵列乘法器求出乘积 x ·y =?
设最高位为符号位,则输入数据用补码表示为
[x ]补 = 10001 [y ]补 = 10011
尾数部分算前求补器输出为,|x |= 1111,|y |= 1101
2.3.2 直接补码并行乘法
1.补码与真值得转换公式补码乘法因符号位参与运算,可以完成补码数的“直接”乘法,
而不需要求补级。这种直接的方法排除了较慢的对 2求补操作,
因而大大加速了乘法过程。
P42 公式( 2。 29)
[例 19] 已知,[N1]补 = (01101)2,[N2]补 = (10011)2,求 [N1]补,[N2]补 具有的数值。
[N1]补 = (01101)2 具有的数值为:
N1=- 0× 24+ 1× 23+ 1× 22+ 0× 21+ 1× 20= (+ 13)10
[N2]补 = (10011)2 具有的数值为:
N2=- 1× 24+ 0× 23+ 0× 22+ 1× 21+ 1× 20= (- 13)10
2.一般化的全加器形式常规的一位全加器可假定它的 3个输入和
2个输出都是正权。这种加法器通过把正权或负权加到输入 /输出端,可以归纳出四类加法单元。
P43 表 2。 3
对 0类,3类全加器而言有:
S= XYZ+ XYZ+ XYZ+ XYZ
C= XY+ YZ+ ZX
对 1类,2类全加器,则有
S= XYZ+ XYZ+ XYZ+ XYZ
C= XY+ XZ+ YZ
3.直接补码阵列乘法器利用混合型的全加器就可以构成直接补码数阵列乘法器。
设被乘数 A和乘数 B是两个 5位的二进制补码数,即
A= (a4)a3a2a1a0
B= (b4)a3a2a1a0
(a4) a3 a2 a1 a0 = A
× ) (b4) b3 b2 b1 b0 = B
(a4b0) a3b0 a1b0 a1b0 a0b0
(a4b1) a3b1 a2b1 a1b1 a0b1
(a4b2) a3b2 a2b2 a1b2 a0b2
(a4b3) a3b3 a2b3 a1b3 a0b3
+ ) a4b4 (a3b4) (a2b4) (a1b4) (a0b4)
p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 = P
[例 20] 设 [A]补 = (01101)2,[B]补 = (11011)2,求 [A× B]补 =?
(0) 1 1 0 1 = + 13
× ) (1) 1 0 1 1 = - 5
(0) 1 1 0 1
(0) 1 1 0 1
(0) 0 0 0 0
(0) 1 1 0 1
0 (1) (1) (0) (1)
0 (1) 0 1 1 1 1 1 1
(1) 1 0 1 1 1 1 1 1 = - 65
5位乘 5位的直接补码阵列乘法器逻辑原理演示
2.4.1 原码除法运算原理两个原码表示的数相除时
(1)商的 符号 由两数的符号按位相加求得
(2)商的 数值部分 由两数的数值部分相除求得。
设被除数 x = 0.1001,除数 y = 0.1011,模仿十进制除法运算,
以手算方法求 x÷y 的过程如下,
0.1 1 0 1 商 q
0.1 0 1 1 0.1 0 0 1 0 x (r0) 被除数小于除数,商 0
- 0.0 1 0 1 1 2- 1y 除数右移 1位,减除数,商 1
0.0 0 1 1 1 0 r1 得余数 r1
- 0.0 0 1 0 1 1 2- 2y 除数右移 1位,减除数,商 1
0.0 0 0 0 1 1 0 r2 得余数 r2
- 0.0 0 0 1 0 1 1 2- 3y 除数右移 1位,不减除数,商 0
0.0 0 0 0 1 1 0 0 r3 得余数 r3
- 0.0 0 0 0 1 0 1 1 2- 4y 除数右移 1位,减除数,商 1
- 0.0 0 0 0 0 0 0 1 r4 得余数 r4
恢复余数法,先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算加减交替法,要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,
因此控制比较复杂。实际中常用不恢复余数法
2.4.2 并行除法器
1.可控加法 /减法 (CAS)单元
Si= Ai⊕ (Bi⊕ P)⊕ Ci
Ci+ 1= (Ai+ Ci)·(Bi⊕ P)+ AiCi
当 P= 0时,方程式 (2.32)就等于式 (2.23),即得我们熟悉的一位全加器 (FA)的公式:
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ AiCi
当 P= 1时,则得求差公式:
Si= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ AiCi
在减法情况下,输入 Ci称为借位输入,而 Ci+ 1称为借位输出。
为说明 CAS单元的实际内部电路实现,将方程式 (2.32)加以变换,可得如下形式:
Si= Ai⊕ (Bi⊕ P)⊕ Ci
= AiBiCiP+ AiBiCiP+ AiBiCiP+ AiBiCiP+ AiBiCiP+
AiBiCiP+ AiBiCiP+ AiBiCiP
Ci+ 1= (Ai+ Ci)(Bi⊕ P)+ AiCi
= AiBiP+ AiBiP+ BiCiP+ BiCiP+ AiCi
基本的 CAS单元的延迟时间为 3T单元
2.不恢复余数的阵列除法器下图示出了 4位除 4位的不恢复余数阵列除法器的逻辑原理图被除数 x = 0.x 1x 2x 3x 4x 5x 6 (双倍长 )
除数 y = 0.y 1y 2y 3
商数 q = 0.q1q2q3
余数 r = 0.00r3r4r5r6
字长 n+ 1= 4
对一个 2n位除以 n位的不恢复余数阵列除法器来说,单元的数量为 (n+ 1)2,考虑最大情况下的信号延迟,其除法执行时间为
td= 3(n+ 1)2T
[例 20] x = 0.101001,y = 0.111,求 q =x÷y 。
2.5 定点运算器的组成多功能算术 /逻辑运算单元 (ALU)不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。
1.基本思想一位全加器 (FA)的逻辑表达式为
Fi= Ai⊕ Bi⊕ Ci
Ci+ 1= AiBi+ BiCi+ CiAi
一位算术 /逻辑运算单元的逻辑表达式为
Fi= Xi⊕ Yi⊕ Cn+ I
Cn+ i+ 1= XiYi+ YiCn+ i+ Cn+ iXi
图 2.10 ALU的逻辑结构原理框图
2.逻辑表达式表 2.4 Xi,Yi与控制参数和输入量的关系
S0 S1 Yi S2 S3 Xi
0 0
0 1
1 0
1 1
Ai
AiBi
AiBi
0
0 0
0 1
1 0
1 1
1
Ai+ Bi
Ai+ Bi
Ai
化简并 代入前面的求和与进位表达式,可得 ALU的某一位逻辑表达式如下
Fi= Yi⊕ Xi⊕ Cn+i
Cn+ i+ 1= Yi+ XiCn+ i
4位之间采用先行进位公式,根据式( 2.36),每一位的进位公式可递推如下:
第 0位向第 1位的进位公式为
Cn+ 1= Y0+ X0Cn
第 1位向第 2位的进位公式为
Cn+ 2= Y1+ X1Cn+ 1= Y1+ Y0X1+ X0X1Cn
第 2位向第 3位的进位公式为
Cn+ 3= Y2+ X2Cn+ 2= Y2+ Y1X2+ Y0X1X2+ X0X1X2Cn
第 3位的进位输出(即整个 4位运算进位输出)公式为
Cn+ 4= Y3+ X3Cn+ 3= Y3+ Y2X3+ Y1X2X3+ Y0X1X2X3+ X0X1X2X3Cn
设
G= Y3+ Y2X3+ Y1X2X3+ Y0X1X2X3
P= X0X1X2X3
则
Cn+ 4= G+ PCn
其中 G称为 进位发生输出,P称为 进位传送输出,便于实现多片(组) ALU之间的先行进位正逻辑表示的 4位算术 /逻辑运算单元 (ALU)的逻辑电路图演示
74181ALU
表 2.5 74181ALU算术 /逻辑运算功能表
4.两级先行进位的 ALU
假设 4片(组) 74181的先行进位输出依次
P0,G0,G1P1,P2,G2,P3,G3
Cn+ x = G0+ P0Cn
Cn+ y = G1+ P1Cn+ x = G1+ G0P1+ P0P1Cn
Cn+ z = G2+ P2Cn+ y = G2+ G1P2+ G0P1P2+ P0P1P2Cn
Cn+ 4 = G3+ P3Cn+ z = G3+ G2P3+ G1P1P2+ G0P1P2P3+ P0P1P2P3Cn
= G*+ P*Cn
其中
P*= P0P1P2P3G* 成组进位发生输出
G*= G3+ G2P3+ G1P1P2+ G0P1P2P3 成组进位传送输出
74182先行进位部件( CLA)
2.5.3 内部总线定义,为了减少内部的传送线并便于控制,通常将一些寄存器之间数据传送的通路加以归并,组成总线结构,使不同来源的信息在此传输线上分时传送。
总线:分为 内部总线 和 外部总线 两类。
按总线的逻辑结构来说:总线可分为 单向传送总线 和 双向传送总线 。
若 E= 0,即使 D为,1”,也不能输入。
当接收数据时,E= 1三态门被禁止,因而数据总线上的数据被接收到锁存器。
当发送数据时,E= 0,三态门被允许,因而锁存器的数据发送至数据总线上。
2.5.4 定点运算器的基本结构运算器包括 ALU\阵列乘除器 \寄存器 \多路开关 \三态缓冲器 \数据总线等逻辑部件。
算器的设计,主要是围绕 ALU和寄存器同数据总线之间如何传送操作数和运算结果进行的。
计算机的运算器大体有如下三种结构形式
2.6.1 浮点加法、减法运算设有两个浮点数 x 和 y,它们分别为
x = 2Ex ·Mx
y = 2Ey ·My
z =x ± y = (Mx 2Ex - Ey ± My )2Ey,Ex <= Ey
完成浮点加减运算的操作过程大体分为四步:
1,0 操作数的检查;
2,比较阶码大小并完成对阶;
3,尾数进行加或减运算;
4,结果规格化并进行舍入处理。
浮点加减运算的操作流程阶码上溢 超过了阶码可能表示的最大值的正指数值,一般将其认为是+ ∞ 和
- ∞ 。
阶码下溢 超过了阶码可能表示的最小值的负指数值,一般将其认为是 0。
尾数上溢 两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增 1
来重新对齐。
尾数下溢 在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。
结果规格化在浮点加减运算时,尾数求和的结果也可以得到 01.ф…ф 或
10.ф…ф,即两符号位不等,这在定点加减法运算中称为溢出,
运算结果右移以实现规格化表示,称为 向右规格化 。
当尾数不是 1.M时需 向左规格化 。
舍入处理简单的舍入方法有两种:
( 1)是,0舍 1入”法,即如果右移时被丢掉数位的最高位为 0则舍去,为 1则将尾数的末位加,1”。
( 2)是 "恒置一 "法,即只要数位被移掉,就在尾数的末尾恒置 "1"。
在 IEEE754标准中,舍入处理提供了四种可选方法:
就近舍入 其实质就是通常所说的“四舍五入”。
例如,尾数超出规定的 23位的多余位数字是 10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增 1。
若多余的 5位是 01111,则简单的截尾即可。
对多余的 5位 10000这种特殊情况:若最低有效位现为 0,则截尾;
若最低有效位现为 1,则向上进一位使其变为 0。
朝 0舍入 即朝数轴原点方向舍入,就是简单的截尾。
朝+ ∞ 舍入 对正数来说,只要多余位不全为 0则向最低有效位进 1;负数来说则是简单的截尾。
朝- ∞舍入 处理方法正好与 朝+ ∞ 舍入情况相反。对正数来说,只要多余位不全为 0则简单截尾 ;对负数来说,向最低有效位进 1。
[例 25] 设 x = 2010× 0.11011011,y = 2100× (- 0.10101100),求 x + y 。
[x ]浮 = 00 010,0.11011011
[y ]浮 = 00 100,1.01010100
<1> 求阶差并对阶
△ E= Ex - Ey = [Ex ]补 + [- Ey ]补 = 00 010+ 11 100= 11 110
[x ]浮 = 00 100,0.00110110(11)
<2> 尾数求和
0,0 0 1 1 0 1 1 0 (11)
+ 1,0 1 0 1 0 1 0 0
────────────────
1,1 0 0 0 1 0 1 0 (11)
<3>规格化处理尾数运算结果的符号位与最高数值位同值,应执行左规处理
,结果为 1.00010101(10),阶码为 00 011。
<4>舍入处理采用 0舍 1入法处理,则有
1,0 0 0 1 0 1 0 1
+ 1
────────────────
1,0 0 0 1 0 1 1 0
<5>判溢出阶码符号位为 00,不溢出,故得最终结果为
x + y = 2011× (- 0.11101010)
2.6.2 浮点乘法、除法运算
1.浮点乘法、除法运算规则设有两个浮点数 x 和 y,
x = 2Ex ·Mx
y = 2Ey ·My
浮点乘法运算的规则是
x × y = 2(Ex + Ey )·( Mx × My )
浮点除法运算的规则是
x ÷ y = 2(Ex - Ey )·( Mx ÷ My )
2.浮点乘、除法运算步骤浮点数的乘除运算大体分为四步:
第一步,0 操作数检查;
第二步,阶码加 /减操作;
第三步,尾数乘 /除操作;
第四步,结果规格化及舍入处理。
(1) 浮点数的阶码运算在计算机中,阶码通常用补码或移码形式表示按此定义,则有
[x ]移 + [y ]移 = 2n+ x + 2n+ y
= 2n+ (2n+ (x + y ))
= 2n+ [x + y ]移则求阶码和用如下方式完成:
[x ]移 + [y ]补 = 2n+ x + 2n+ 1+ y
= 2n+ 1+ (2n+ (x + y ))
= 2n+ 1+ [x + y ]移
[x + y ]移 = [x ]移 + [y ]补
[x - y ]移 = [x ]移 + [- y ]补使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用 0 参加加减运算溢出条件是阶码的最高符号位为 1。
此时,当两位符号位为 10时,表明 上溢,为 11时,表明 下溢 。当最高符号位为 0时,表明没有溢出;两位符号位为 01时,结果为正;为 00 时,结果为负。
[例 26] x =+ 011,y =+ 110,求 [x + y ]移 和 [x - y ]移,并判断是否溢出。
[x ]移 = 01 011,[y ]补 = 00 110,[- y ]补 = 11 010
[x + y ]移 = [x ]移 + [y ]补 = 10 001,结果上溢。
[x - y ]移 = [x ]移 + [- y ]补 = 00 101,结果正确,为- 3
(2) 尾数处理当尾数用 原码 表示时。
1、只要尾数的最低位为 1,或移出的几位中有为 1的数值位,
就是最低位的值为 1。
2,0舍 1入法,即当丢失的最高位的值为 1时,把这个 1加到最低数值位上进行修正,否则舍去丢失的的各位的值。这样处理时,舍入效果对正数负数相同,入将使数的绝对值变大,舍则使数的绝对值变小。
当尾数是用 补码 表示时
1、当丢失的各位均为 0时,不必舍入操作;
2、当丢失的最高位为 0 时,以下各位不全为 0 时,或者丢失的最高位为 1,以下各位均为 0时,则舍去丢失位上的值;
3、当丢失的最高位为 1,以下各位不全为 0 时,则执行在尾数最低位入 1的修正操作。
[例 27] 设 [x 1]补 = 11.01100000,[x 2]补 = 11.01100001,[x 3]补
= 11.01101000,[x 4]补 = 11.01111001,求执行只保留小数点后 4位有效数字的舍入操作值。
[x 1]补 = 11.0110 (不舍不入 )
[ x 2]补 = 11.0110 (舍 )
[x 3]补 = 11.0110 (舍 )
[x 4]补 = 11.1000 (入 )
[例 28] 设有浮点数 x = 2- 5× 0.0110011,y = 23× (- 0.1110010),
阶码用 4位移码表示,尾数 (含符号位 )用 8位补码表示。求 [x × y ]
浮 。要求用补码完成尾数乘法运算,运算结果尾数保留高 8位 (含符号位 ),并用尾数低位字长值处理舍入操作。
移码采用双符号位,尾数补码采用单符号位,则有
[Mx ]补 = 0.0110011,[My ]补 = 1.0001110,
[Ey ]移 = 01 011,[Ey ]补 = 00 011,[Ex ]移 = 00 011,
[x ]浮 = 00 011,0.0110011,[y ]浮 = 01 011,1.0001110
(1) 求阶码和
[Ex + Ey ]移 = [Ex ]移 + [Ey ]补 = 00 011+ 00 011= 00 110,
值为移码形式- 2。
(2) 尾数乘法运算 可采用补码阵列乘法器实现,即有
[Mx ]补 × [My ]补 = [0.0110011]补 × [1.0001110]补
= [1.1010010,1001010]补
(3) 规格化处理乘积的尾数符号位与最高数值位符号相同,不是规格化的数,需要左规,阶码变为 00 101(-3),
尾数变为 1.0100101,0010100。
(4) 舍入处理尾数为负数,取尾数高位字长,按舍入规则,舍去低位字长,故尾数为 1.0100101 。
最终相乘结果为
[x × y ]浮 = 00 101,1.0100101
其真值为
x × y = 2- 3× (- 0.1011011)
2.6.3 浮点运算流水线
1.流水线原理把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行,实现 时间并行性 的一种非常经济的方法。
假定作业 T 被分成 k 个子任务,可表达为
T= {T1,T2,···,Tk}
各个子任务之间有一定的优先关系:若 i<j,则必须在 Ti 完成以后,Tj才能开始工作。具有这种线性优先关系的流水线称为 线性流水线 。
线性流水线处理的硬件基本结构设过程段 Si所需的时间为 τ i,缓冲寄存器的延时为 τ l,线性流水线的时钟周期定义为
τ= max{τi}+ τl= τm+ τl
故流水线处理的频率为 f= 1/τ。
在流水线处理中,当任务饱满时,每隔一个时钟周期都能输出一个任务。从理论上说,一个具有 k 级过程段的流水线处理 n 个任务需要的时钟周期数为
Tk= k+ (n- 1)
用非流水线的硬件来处理这 n个任务,时间上只能串行进行,则所需时钟周期数为
TL= n·k
我们将 TL和 Tk的比值定义为 k级线性流水线的加速比:
Ck= T
L
Tk =
n·k
k+ (n- 1)
2.流水线浮点加法器浮点数加减法由 0操作数检查,对阶操作,尾数操作,结果规格化及舍入处理 共 4步完成假设有两个规格化的浮点数
X=1.1000× 22 Y=1.1100× 24
[例 29]上述演示中,(1)假设每个过程段所需的时间为:求阶差 τ1
= 70ns,对阶 τ2= 60ns,相加 τ3= 90ns,规格化 τ4= 80ns,缓冲寄存器
L的延时为 tl= 10ns,求 4 级流水线加法器的加速比为多少? (2)
如果每个过程段的时间相同,即都为 75ns,(包括缓冲寄存器时间 ),
加速比是多少?
(1)加法器的流水线时钟周期至少为
τ= 90ns+ 10ns= 100ns
如果采用同样的逻辑电路,但不是流水线方式,则浮点加法所需的时间为
τ1+ τ2+ τ3+ τ4 = 300ns
[例 30] 试用 4段的浮点加法流水线来实现一维向量的求和运算,这
4段流水线是阶码比较、对阶操作、尾数相加、规格化。只要求画出向量加法计算流水时空图。
演示所示
2.6.4 浮点运算器实例
1.CPU之外的浮点运算器
80× 87是美国 Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合 80× 86CPU进行的,所以又称为协处理器。
2.CPU之内的浮点运算器奔腾 CPU将浮点运算器包含在芯片内。奔腾 CPU将浮点运算器包含在芯片内。浮点运算部件采用流水线设计。
指令执行过程分为 8段流水线。前 4 段为指令预取 (DF)、
指令译码 (D1),地址生成 (D2),取操作数 (EX),在 U,V流水线中完成;后 4段为执行 1(X1),执行 2(X2),结果写回寄存器堆 (WF),错误报告 (ER),在浮点运算器中完成。一般情况下,
由 U流水线完成一条浮点数操作指令 。
小结数字数据
1.定点
2.浮点
3.十进制数串字符数据
1.西文
2.中文
3.十进制数串机器数据原码表示法,反码表示法,补码表示法,移码表示法为运算器构造的简单性,运算方法中算术运算通常采用补码加、
减法,原码乘除法或补码乘除法。
为了运算器的高速性和控制的简单性,采用了阵列乘除法、先行进位、流水线等并行技术措施。
浮点运算器在定点运算器复杂基础上发展。
乘除法在加减法复杂基础上发展。
作业
P70 14,15