Transcript 2.3 运算器
2.3 定点运算器的组成
综合考虑各类定点运算算法后,发现:
所有运算都可通过“加”和“移位”操作实现
以一个或多个ALU(或加法器)为核心,加上移位器和存放中间临时
结果的若干寄存器,在相应控制逻辑的控制下,可以实现各种运算。
运算部件通常指ALU、移位器、寄存器组,加上用于数据选
择的多路选择器和实现数据传送的总线等构成的一个运算数
据通路。
可用专门运算器芯片实现(如:4位运算器芯片AM2901)
可用若干芯片级联实现(如4个AM2901构成16位运算器)
现代计算机把运算数据通路和控制器都做在CPU中,为实现高级流水
线,CPU中有多个运算部件,通常称为“功能部件”或“执行部件”。
一、运算器的基本组成
标
志
寄
存
器
移位逻辑
ALU
锁存器A
锁存器B
内 部 总 线
寄存器组
2、通用寄存器组
寄存器是计算机中存取速度最快的存储器件
暂存参加运算的数据和中间结果
可以被汇编程序直接访问和使用
能够左右移位的乘商寄存器
3、标志寄存器(PSW)
用于保存ALU运算结果的状态信息。
S 符号标志位:S为1时表示运算结果为负;
V 溢出标志位:V为1时表示运算结果溢出;
Z 零标志位:
Z为1时表示运算结果零;
C 进位标志位:C为1时表示运算结果有进位。
4、移位及数据选择器
对参加运算的数据,执行某种运算以
及将运算结果送往何处进行控制。
5、数据的传送通路
以总线结构为主的数据通路
单总线结构的运算器
双总线结构的运算器
三总线结构的运算器
二、定点运算器举例
TH-Union教学计算机简介
字长16位,用4片四位的位片结构运算
器芯片Am2901组成。
位片结构:将位数较少、功能完整、独立
封装的大规模集成电路经多片拼接构成较
长位数的运算器。
输出Y
/OE
F
F3
F=0000
OVR
Cn+4
乘商寄存器Q
Q3
三选一
二选一
A L U
S
R
三选一
B锁存器
Q0
B
Cn
二选一
输入D
A锁存器
16个
A
通用寄存器
RAM3
1、4位的Am2901
内部组成与功能
A口地址
组成
1)算逻运算部件
2)16个寄存器
3)乘商寄存器Q
4)5组多路选择器
功能
8 种运算功能
B口地址
8 种数据组合
8 种结果处理
三选一
RAM0
I5 I4 I3 8种运算功能
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
R+S
SR
RS
R∨S 或
RS 与
RS
RS 异或
RS
F3
OVR
F=0000
Cn+4
F
A L U
R
S
Cn
第一个组成部分是
算逻运算部件ALU,
完成3种算术运算
和5种逻辑运算,共
8种运算功能。
F
F3
OVR
F=0000
Cn+4
A L U
S
Cn
R
B锁存器
A锁存器
B
B口地址
A
通用寄存器
A口地址
(写入)
R0~R3、R8~R15为通用寄存器
R4为SP、R5为PC
第二个组成部分是
通用寄存器组由16
个寄存器(R0~
R15)构成,并通
过B口与A口地址选
择被读的寄存器,
B口地址还用于指
定写入寄存器。
F
F3
OVR
F=0000
Cn+4
A L U
S
R
B锁存器
Q寄存器
Cn
A锁存器
B
B口地址
A
通用寄存器
A口地址
(写入)
第三个组成部分
是乘商寄存器Q
它能对自己的内
容完成左右移位
功能,其输出可
以送往ALU,并
可接收ALU的输
出结果。
F
F3
OVR
F=0000
Cn+4
A L U
S
R
三选一
该芯片的第四个
组成部分是5 组
多路选通门,包括
Cn
二选一
输入D
Q寄存器
B锁存器
A锁存器
B
B口地址
A
通用寄存器
A口地址
(写入)
一组三选一门和
另一组二选一门
用来选择送向ALU
的R、S输入端的
数据来源,包括:
Q寄存器、A口、
B口数据、外部输
入D数据共8种不
同组合。
F
F3
OVR
F=0000
Cn+4
A L U
S
R
三选一
Cn
二选一
输入D
Q寄存器
B锁存器
A锁存器
B
A
B口地址
一组三选一门和
另一组二选一门
用来选择送向ALU
的R、S输入端的
数据来源,包括:
Q寄存器、A口、
B口数据、外部输
入D数据共8种不
同组合。
8种数据组合(R,S)
AQ
AB 0QA口地址
0B 0A DA DQ D0
通用寄存器
3位数据选择码
000 001
010 011 100 101 110 111
(写入)
F
F3
F=0000
OVR
Cn+4
A L U
S
R
三选一
B锁存器
Q寄存器
Q3
三选一
Q0
B
Cn
二选一
输入D
A锁存器
16个
A
通用寄存器
RAM3
一组三选一门完成把
ALU的输出、或左移
一位、或右移一位的
值送往通用寄存器组,
最高、最低位移位信
号有双向入/出问题
三选一
A口地址 一组三选一门完成Q
寄存器的左移一位、
或右移一位、或接收
B口地址 ALU输出值的功能,
最高、最低位移位信
号有双向入/出问题。
RAM0
输出Y
/OE
F
F3
F=0000
OVR
Cn+4
A L U
S
R
三选一
B锁存器
Q寄存器
Q3
三选一
Q0
二选一
B
二选一
输入D
A锁存器
16个
A
通用寄存器
RAM3
Cn
A口地址
B口地址
三选一
RAM0
一组二选一门,
选择把ALU结果
或A口数据送出
芯片,给出输
出Y的数据,Y
输出的有无还
受使能信号控
制,仅当/OE为
低才有Y输出,
/OE为高Y输出
为高阻态。
运算结果的8 种处理
3位控制码
000
001
010
011
100
101
110
111
通用寄存器 Q寄存器
QF
BF
BF
BF/2
BF/2
B2F
B2F
QQ/2
Q2Q
Y输出
F
F
A
F
F
F
F
F
输出Y
/OE
F
F3
F=0000
OVR
Cn+4
A L U
S
R
三选一
Q寄存器
Q3
三选一
B锁存器
Q0
B
Cn
输入D
A锁存器
16个
A
多路选通连起来
数据组合有内外
运算功能指明白
存移输出巧安排
二选一
通用寄存器
RAM3
运算器,三大件
运算暂存乘除快
运算 暂存 乘除快
二选一
A口地址
B口地址
三选一
RAM0
数据组合选择
I2 I1 I0
运算功能选择
I5 I4 I3
运算结果处理
I8 I7 I6
状态输出
Cy
F=0000
OVR
F15
I2 I1 I0
ALU
R
二选一
三选一
A
D15~D0
数据输入
C in
S
B
R0
R1
Q 乘商
Q15
通用寄存器
A口地址
RAM15
Rn
三选一
B口地址
RAM0
三选一
Q0
选
数
据
源
I5 I4 I3 选
操
作
功
能
I8 I7 I6 选
结
果
安
排
控制信号
Am2901
Y15~Y0 数据输出
二选一
OE
定
点
运
算
器
部
件
实
例
2.AM2901的时序关系
运算器的时钟脉冲信号 CP
教学计算机的主频:1.33MHZ
注
意
两
个
跳
变
沿
ALU操作周期
和
低
电
平
的
作
用
Q 寄存器接收
A、B口锁存
通用寄存器接收
回存结果
高电平时I8-I0稳定给出、
数据输入、且获得本次
运算结果。
3.Am2901的操作与控制(数据来源、操作功能与结果处理)
控制信号
操作功能
B口
A口 I8 I7 I6 I5 I4 I3 I2 I1 I0 Cn
R0R0+R1
0000
0001
011
000
001
0
R2R2∧R0
0010
0000
011
100
001
0
R0R0+R1
0000
0001
101
000
001
0
QR0
/
0000
0000
000
000
100
0
右移
Y F
R5R5+1 Y A口 0101
0101
010
000
011
1
0000
0001
011
001
001
1
R0R0-R1 Y F
4. 外部入出信号及引脚
4个状态
标志位
Y3~Y0
CP
Cy
F=0
Over
F3
RAM3
Q3
输出
OE
外部数据
输入
Cin
Am2901
RAM0
Q0
A3~A0 B3~B0 I8~I6
I2~I0
D3~D0 I5~I3
BACK
9位控制
操作码
16 位机的运算器的完整组成
SST
[运算功能码]
Y15~0
16位的
Cin
3
0,1,RAM0
Q0,RAM15
右 RAM15 运算器 RAM0
移
Q0
Q15
输
入
3
信
D15~0
B口
号
A口 I8~I0
SSH
GAL
3
四
位
标
志
位
Cy
F=0
OVR
F15
SCi
GAL
右移控制
1
GAL
0
C
Cy
RAM0
GAL
C
Z
V
S
来自内部总线 IB
最
低
位
进
位
0
1
C
[/C]
方波
左
移
输
入
信
号
0
C
Q15
/F15
SSH
BACK
左移控制
16 位运算器的操作使用
控制信号
操作功能
B口
A口 SST I8~6 I5~3 I2~0 SSH SCi
R0 R0+R1
0000
0001
001 011
000
001 0
00
R2 R21
0010
/
001 011
001
011 0
00
逻辑右移
右移
R0 R0+R1
Q R0 Y F
0000
0001 001 101
000 001 1
00
01
/
0000 000 000
000 100
0
00
0000
0011 001 110
001
001 1
10
0101
0101 001
000 011 0
01
与C循环右移
联合左移
R0QR0R3Q
R5R5+1
YR5
010
F
F3
OVR
F=0000
Cn+4
8种数据组合(R,S)
A L U
S
R
AQ AB 0Q 0B 0A DA DQ D0
Cn
000 001 010 011 100 101 110 111
三选一
二选一
输入D
Q寄存器
B锁存器
A锁存器
B
B口地址
A
通用寄存器
A口地址
(写入)
I5 I4 I3
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
8种运算功能
R+S
SR
RS
R∨S
RS
RS
RS
RS
3位控制码
通用寄存器 Q寄存器 Y输出
000
001
QF
F
F
010
BF
A
011
BF
F
100
BF/2
101
BF/2
110
B2F
111
B2F
QQ/2
F
F
Q2Q
F
F
1.先行进位ALU
先行进位ALU 芯片(SN74181)
四位ALU芯片,中规模集成电路。在先行进位加法器基础上附加部
分线路,具有基本的算术运算和逻辑运算功能。
SN74181的逻辑图和功能表
SN74182是4位BCLA (成组先行进位)芯片。
多芯片级联构成先行进位ALU
1个SN74181芯片直接构成一个4位全先行进位ALU
4个SN74181芯片串行构成一个16位单级先行进位ALU
4个SN74181芯片与1个SN74182芯片可构成16位两级先行进位ALU
16个SN74181芯片与5个SN74182芯片可构成64位先行进位ALU
ALU中的“加”运算电路相当于n档二进制加法算盘。
所有其他运算都以ALU 中“加”运算为基础!
SKIP
SN74181的引脚
输入端
输出端
P
输入端:Ai和Bi分别为第1和2操作数,Cn为低位进位,M为功能选择线,Si为操作选
择线,共4位,故最多有16种运算。
输出端:Fi为运算结果,Cn+4、P和G为进位,“A=B”为相等标志
SN74181逻辑电路图
SN74181正逻辑功能表
BACK
SN74182芯片的引脚
输入端:Pi和Gi分别为第i组的组内进位传递函数和进位生成函数, Cn为低位进位。
输出端: Cn+4、Cn+8 、Cn+12为相应组的组内进位,P*和G*分别为整个大组的组
进位传递函数和进位生成函数。
SN74182芯片的逻辑电路图
BACK
SN74181和SN74182组成16位先行进位
ALU
4位ALU
4位ALU
4位ALU
4位ALU
16位级联先行进位ALU
BACK