2.3 运算器

Download Report

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
SR
RS
R∨S 或
RS 与
RS
RS 异或
RS
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寄存器
QF
BF
BF
BF/2
BF/2
B2F
B2F
QQ/2
Q2Q
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
R0R0+R1
0000
0001
011
000
001
0
R2R2∧R0
0010
0000
011
100
001
0
R0R0+R1
0000
0001
101
000
001
0
QR0
/
0000
0000
000
000
100
0
右移
Y F
R5R5+1 Y A口 0101
0101
010
000
011
1
0000
0001
011
001
001
1
R0R0-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  R21
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循环右移
联合左移
R0QR0R3Q
R5R5+1
YR5
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
SR
RS
R∨S
RS
RS
RS
RS
3位控制码
通用寄存器 Q寄存器 Y输出
000
001
QF
F
F
010
BF
A
011
BF
F
100
BF/2
101
BF/2
110
B2F
111
B2F
QQ/2
F
F
Q2Q
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