运算器与运算方法

Preview:

DESCRIPTION

运算器与运算方法. My Email: liuxd@buaa.edu.cn or xudliu@263.net. 本讲内容. 加减法运算及其实现 乘法运算及其实现(重点) 除法运算 浮点数运算 十进制数运算. 加减法运算及其实现 乘法运算及其实现(重点) 除法运算 浮点数运算 十进制数运算. 若. 则. 1.1 加减法运算机器实现. 原则(以定点整数为例说明). [ X] 补 与[- X] 补. S i. C i+1. . C i. A i. B i. 1.1 加减法运算机器实现. 加法单元(全加器). 1.1 加减法运算机器实现. - PowerPoint PPT Presentation

Citation preview

本讲内容

加减法运算及其实现乘法运算及其实现(重点)除法运算浮点数运算十进制数运算

加减法运算及其实现乘法运算及其实现(重点)除法运算浮点数运算十进制数运算

1.1 加减法运算机器实现

原则(以定点整数为例说明)

[ ] [ ] [ ]A B A B 补 补 补

[ ] [ ] [ ]A B A B 补 补 补

[ X ]补与[- X ]补

[ ] , ...X x x x xo n补 1 2 1若

1...,][ 1210 nxxxxX 补则

1.1 加减法运算机器实现

加法单元(全加器)

Ai Bi

CiCi+1

Si

)(1 iiiiii

iiiiiiiiiiiii

BACBAC

CBACBACBACBAS

1.1 加减法运算机器实现并行加法器--串行进位

)(

)(

)(

)(

333334

222223

111112

000001

BACBAC

BACBAC

BACBAC

BACBAC

FA

A 0 B0

C 1FA

A 1 B1

C 2FA

A 2 B2

C 3FA

A 3 B3

C 4 C 0

S3 S2 S1 S0

串行进位的特点:

1. 进位串行传递

2. 进位延时较长

1.1 加减法运算机器实现并行加法器--并行进位(或先行进位)

0321032103213233334

02102102122223

0101011112

0001

i ,G

CPPPPPPPGPPGPGGPCGC

CPPPPPGPGGPCGC

CPPPGGPCGC

CPGC

BAPBA iiiii

并行进位的特点同时产生进位

加法延时缩短

实现相对复杂

1.1 加减法运算机器实现并行进位链

+ + + +

G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 0

C 0

C4 C3 C2 C1

1.1 加减法运算机器实现并行进位加法器

+ + + +

G 3 P 3 G 2 P 2 G 1 P 1 G 0 P 0

C 0

C4

C3 C2 C1

+ +++

S3 S2 S1 S 0

A 3 B3

+

A 2 B2

+

A 1 B1

+

A 0 B0

+

1.1 加减法运算机器实现分组并行进位加法器(组内并行,组间传递)

4位并行加法器

A 0

B0

A 3

B3

C 4 C 0

S3 S2 S1 S0

4位并行加法器

A 4

B4

A 7

B7

C 8

S7 S6 S5 S4

4位并行加法器

A 8

B8

A 11

B11

C 12

S11 S8

4位并行加法器

A 12

B12

A 15

B15

C 16

S15 S12

1.1 加减法运算机器实现分组并行进位加法器(组内并行,组间并行)

4位并行加法器

A 0

B0

A 3

B3

C 4

C 0

S3 S2 S1 S0

4位并行加法器

A 4

B4

A 7

B7

C 8

S7 S6 S5 S4

4位并行加法器

A 8

B8

A 11

B11

C 12

S11 S8

4位并行加法器

A 12

B12

A 15

B15

C 16

S15 S12

组间并行进位链

加减法运算及其实现乘法运算及其实现(重点)除法运算浮点数运算十进制数运算

2.1 无符号数乘法及其实现

笔算分析1101 × 1011

机器算法改进通过多次加法实现乘法每次加法均在上一次加法的结果 ( 部分积 ) 的基础上进行每完成一次加法,结果右移一位

举例

2.1 无符号数乘法及其实现算法推导(以定点整数为例)

M M M M

Q Q Q Q

Q Q Q

n n

n n

nn

nn

1 2 0

1 2 0

11

22

002 2 2

......

......

M Q M Q Q Q

Q M Q M Q M Q M

Q M Q M Q M Q M Q M

nn

nn

nn

nn

nn

nn

nn

nn

nn n n

*( )

......

...... ( )).

11

22

00

1 2 3 0

1 2 3 1 0

2 2 2

1

22

1

42

1

82

1

22

1

22

1

22

1

22

1

22

1

22

.. )

2.1 无符号数乘法及其实现

变成分步算式:

M Q M Q Q Q

Q M Q M Q M Q M

Q M Q M Q M Q M Q M

nn

nn

nn

nn

nn

nn

nn

nn

nn n n

*( )

......

...... ( )).

11

22

00

1 2 3 0

1 2 3 1 0

2 2 2

1

22

1

42

1

82

1

22

1

22

1

22

1

22

1

22

1

22

.. )

P

P P Q M

P P Q M

P P Q M

P P Q M

n

n

i i in

n n nn

0

1 0 0

2 1 1

1 1

1 1

0

1

22

1

22

1

22

1

22

2.1 无符号数乘法及其实现逻辑实现逻辑部件加法器 Adder被乘数寄存器 M乘数寄存器 Q (乘积低位部分)累加器 A (部分积,乘积高位部分)控制逻辑

数据通路Adder MAdder AA Adder

A Shr A, Q Shr Q, Qn-1 A0

2.1 无符号数乘法及其实现逻辑实现结构图

n-Bit Adder

Mn-1 M0

An-1 A0 Qn-1 Q0c

shift & add

Control logic

Multiplicand

Multiplier

Add

Shift right

2.2 补码乘法及其实现补码乘法规则乘积的补码=被乘数的补码 × 乘数的真值

[ ] [ ] [ ]P M Q M Q补 补 补

问题与约束参加运算的操作数本身是补码形式机器中不能直接表示真值必须寻求一种直接利用操作数补码进行运算来实现补码

乘法的算法结果要求直接是补码形式

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)补码表示与真值的关系

[ ] , ...X x x x xo n补 1 2 1

X x xni

i

nn i

0

1

1

112 2

02312

0321

00

32

221

1

021

02

1

4

1

2

12

2

1

8

1

4

1

2

12

2222

][

QQQQQ

QQQQ

QQQQQ

QQQQ

nnnnnn

nnnnn

nn

nnn

n

nn

比较法算法推导(以定点整数为例)

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)

则令 0 1 Q

[ ] [ ]

[ ]

[ ] [ ] [ ]

P M Q

M Q

Q Q M Q Q M Q Mn nn

n nn n

补 补

补 补 补

1

22

1

22

1

2

1

20 22 1 3 2 0

P

P P Q Q M

P P Q Q M

P P Q Q M

P P Q Q M

n

n

i i i in

n n n nn

0

1 0 1 0

2 1 0 1

1 2 1

1 2 1

0

1

22

1

22

1

22

1

22

[ ]

[ ]

[ ]

[ ]

变成分步算式:

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)算法规则比较乘数相邻的两位: Qi 和 Qi-1

Qi Qi-1=00 或 11 ,上一次部分积直接右移一位形成新的部分积Qi Qi-1=01 ,上一次部分积加上被乘数补码后右移

一位形成新的部分积Qi Qi-1=10 ,上一次部分积减去被乘数补码后右移

一位形成新的部分积重复 n 次。对于 n 位数的一位比较法,需要执行 n 次加法运

算和 n 次移位运算。举例

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)流程图 START

A←0,Q-1←0M← MultiplicandQ← MultiplierCount ← n

A←A - M A←A + M

Arithmetic ShiftRight:A,Q,Q-1

Count←Count-1

Q0,Q-1

Count=0 ENDNo Yes

=10 =01

=11=00

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)

逻辑实现采用两位符号位(为什么?)加法器 ADDER ( n+1 位)累加器 A ( n+1 位),保存部分积,最后保

存乘积高位部分被乘数寄存器 M乘数寄存器 Q ,最后保存结果低位部分计数器 Counter ,对运算次数计算触发器,控制逻辑等

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)

数据通路及微操作控制信号P0 : Shr A, Shr Q, Qn-1 A0

P1 : ADD A

P2 : ADD M

P3 : ADD NOT M

P4 : Counter Counter - 1

P5 : A ADD

2.2 补码乘法及其实现(一位比较法,又称一位 Booth法)实现结构图

n+1Bit Add

Mn-1 M0

An-1 A0 Qn-1 Q0An

Multiplicand

Multiplier

Shift right

Q-1

CinControlSignalGen.

DEC

Counter

Tx

P1

P2

P3

P4

P0

P2

P4

P3

P1

P5

P5

2.2 补码乘法及其实现(二位比较法)二位比较法 在一位比较法的基础上,对算法进行改进,每次比较乘数相邻的 3

位,根据不同的组合,对部分积进行不同的加减运算,然后对结果右移 2 位,形成新的部分积。

算法推导如下:

n

n

MQQPP

MQQPP

P

2][2

1

2][2

1

0

1012

0101

0

1位比较法

n

n

MQQQP

MQQPP

P

2][24

1

2][2

1

0

1010

1011

0

2位比较法

2.2 补码乘法及其实现(二位比较法)算法规则比较乘数相邻的 3 位: Qi+1 、 Qi 和 Qi-1

Qi+1 Qi Qi-1=000 或 111 , A 1/4 A

Qi+1 Qi Qi-1=010 或 100 , A 1/4 (A + M)

Qi+1 Qi Qi-1=011 或 101 , A 1/4 (A - M)

Qi+1 Qi Qi-1=110 , A 1/4 (A + 2M)

Qi+1 Qi Qi-1=001 , A 1/4 (A - 2M)重复 n/2 次 (n 为偶数)或( n+1)/2 次( n 为奇数 ) 。n 为奇数时 , 最后一次采用 1 位比较法算法 .采用 3 位符号位 (Why?)

2.3 阵列乘法器基本思路利用若干全加器,完全由硬件直接计算乘法结果 以 4 位无符号数为例

01234567

03132333

02122232

01112131

00102030

0123

0123

PPPPPPPP

CCCC

CCCC

CCCC

CCCC

BBBB

AAAA

jiij BAC 其中

2.3 阵列乘法器实现电路

FA

FA FA

FA FA

FA FA FA

FA FA FA

FA

C00C10C20C30

C01C11C21C31

C02C12C22C32

C03C13C23C33

P0P1P2P3P4P5P6P7

FA

x

y

s

Cin

Cout

2.3 阵列乘法器

总结:对于 n位的阵列乘法,需全加器 n(n-1)个最长路径 2(n-1)个全加器延时最后的串性进位可采用先行进位加法器

加减法运算及其实现乘法运算及其实现(重点)除法运算浮点数运算十进制数运算

数的机器编码及其表示字符的表示指令系统指令系统举例指令系统的设计