操作控制器 时序产生器

Post on 15-Jan-2016

98 views 6 download

description

样板. 取指控制. 执行控制. 时钟. 操作控制器 时序产生器. ALU. 状态反馈. ID. PSW. AC. PC. PC+1. IR. DR. RAM. AR. 指令结束. 5.2.6 用方框图语言表示指令周期. 译码或测试. CLA. ADD. JMP. NOP. STA. 0 AC. IR AR. IR AR. IR PC PC AR. 5.3.1 时序信号的作用和体制. 5.3 时序产生器和控制方式. 时序信号的作用 :保证计算机能准确、迅速、有条 - PowerPoint PPT Presentation

Transcript of 操作控制器 时序产生器

样板

20 CLS

21 ADD 30

22 STA 40

23 NOP

23 JMP 21

30

40

操作控制器

时序产生器

RAM

ALU

时钟

状态反馈

取指控制 执行控制

PC+1

AC

DR

IR

ID

PC

AR

PSW

20 CLS

指令结束

PC AR ABUS

DBUS DR IR

PC+1

译码或测试

0 AC IR AR IR AR IR PC

PC AR

AR ABUS

DBUS DR

DR ALU

ALU AC

AR ABUS

AC DR

DR DBUS

CLA ADD STA JMP NOP

5.2.6 用方框图语言表示指令周期

5.3.1 时序信号的作用和体制

时序信号的作用:保证计算机能准确、迅速、有条

不紊地工作。

在微程序控制器中,时序信号比较简单,一般采用节拍电位—节拍脉冲二级体制。就是说,它只有严格节拍电位,在节拍电位中又包含若干个节拍脉冲(时钟周期)。节拍电位表示一个 CPU 周期的时间,而节拍脉冲把一个 CPU 周期划分成几个较小的时间间隔。根据需要,这些时间间隔可以相等,也可以不相等。

5.3 时序产生器和控制方式

5.3.2 时序信号产生器

时序信号产生器的功能是:用逻辑电路实现时序。

启停控制逻辑

节拍脉冲和读写时序译码逻辑

环形脉冲发生器 时钟脉冲源

IORQ MREQ RD WR T1 T2 T3 T4

IORQOMREQO RDO WRO T1

O T2O T3

O T4O

IORQ ´MREQ´ RD ´

WR ´

停机启动

Φ

时序信号产生器框图

由石英晶体振荡器和与非门组成的正反馈振荡电路组成。

作用产生一组有序的间隔相等或不 等的脉冲序列。

环形脉冲发生器的两种形式:

① 采用普通计数器:在节拍脉冲上带来毛刺。

② 循环移位寄存器

1. 时钟源

2. 环形脉冲发生器

脉冲时钟源

Q QC1

D

Q QC2

D

Q QC3

D

Q QC4

D

23

S

CLR

MREQO

MREQ´ IORQ´ RD

T1o T2

o T3oRDO WEOIORQO T4

o

WE´

Φ

+5V

R环形脉冲发生器与译码逻辑

Φ1

0

0

Q QC1

D

Q QC2

D

Q QC3

D

0 0 0

1

过 100 ns之后

00

1

Q QC1

1 Q QC3

D

0Q QC2

D

0

+5V

脉冲时钟源

Q QC1

D

Q QC2

D

Q QC3

D

Q QC4

D

23

S

CLR

MREQO

MREQ´ IORQ´ RD

T1o T2

o T3oRDO WEOIORQO T4

o

WE´

Φ

+5V

R环形脉冲发生器与译码逻辑

Φ0 1

第二个脉冲来时

0

1

Q QC1

1

+5V

1 0Q QC3

D

000Q QC2

D

1

脉冲时钟源

Q QC1

D

Q QC2

D

Q QC3

D

Q QC4

D

23

S

CLR

MREQO

MREQ´ IORQ´ RD

T1o T2

o T3oRDO WEOIORQO T4

o

WE´

Φ

+5V

R环形脉冲发生器与译码逻辑

Φ0 1

第三个脉冲来时

0

1

Q QC1

1

+5V

1 00Q QC2

D

11 Q QC3

D

1

脉冲时钟源

Q QC1

D

Q QC2

D

Q QC3

D

Q QC4

D

23

S

CLR

MREQO

MREQ´ IORQ´ RD

T1o T2

o T3oRDO WEOIORQO T4

o

WE´

Φ

+5V

R环形脉冲发生器与译码逻辑

Φ1

0

100

1+5V

1 1 1Q QC1

D

Q QC2

D

Q QC3

D

0 0 0Q QC1

1 Q QC2

D

0 Q QC3

D

0

第四个脉冲来时第五个脉冲来时

脉冲时钟源Q QC4

D

23

S

CLR

MREQO

MREQ´ IORQ´ RD

T1o T2

o T3oRDO WEOIORQO T4

o

WE´

Φ

+5V

R环形脉冲发生器与译码逻辑

Φ1

0

样品

Q QC1

D

Q QC2

D

Q QC3

D

0 0 0

3. 节拍脉冲和读 / 写时序的译码

根据上图得到,其译码电路逻辑可表示为:

T1o= C1* C2 T2

o= C2 * C2

T3o= C3 T4

o= C1

根据上图,节拍电位与节拍脉冲时序关系如下:读写时序信号的译码逻辑表达式为:

RD o= C2* RD´ WE o= C3* WE´

IORQ o= C2* IORQ´MREQ o= C2* MREQ´

WE´

1 2 3 4 5 6 7 8 9 10

C4

C3

C2

C1

MREQO

RD´RD

WET1

T2

T3

T4

节拍电位与节拍脉冲时序关系图

4. 启停控制逻辑 机器一旦接通电源,就会自动产生原始的节拍脉冲信号 T1

O—T4O ,然而只有在启动机器运行的情况,才允

许时序产生器发出 CPU 工作所需的节拍脉冲 T1—T4 。MREQO RDT1

T2 T3

RDO

WET4

WEOMREQO T2o T3

o T4oT1

o

Q QC1

DT4

o

启动 停机CLR

启停控制逻辑

5.3.3 控制方式机器指令的指令周期是由多个 CPU 周期组成。控制方式有如下四种:1. 同步控制方式:在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的,称为同步控制方式。

( 1 )采用完全统一的机器周期执行各种不同指令。( 2 )采用不定长机器周期。将大多数操作安排在一个较短的机器周期内完成,对于某些时间紧张的操作,则采取延长机器周期的方法。( 3 )中央控制与局部控制结合。

中央控制:将大部分指令安排在固定的机器周期内完成。局部控制:对少数复杂指令(乘、除、浮点运算)采用另外时序定时。

根据不同情况,同步控制方式可选取如下方案:

2. 异步控制方式:每条指令周期可由多少不等的机器周期数组成。指令周期数和时针周期数不固定。3. 联合控制方式:同步控制和异步控制相结合的方式。方式 1 :大部分操作序列安排在固定的机器整齐中,对某些时间难以确定的操作,以执行部件的“回答”信号作为操作的结束。方式 2 :机器周期的节拍脉冲固定,但指令周期中的机器周期数不固定。4. 人工控制方式:为了调试机器和软件开发的需要,在计算机面板和内部设置一些开关或按键以进行人工控制。如 RESET键,连续执行或单条指令执行的转换开关,符合停机开关等。

微程序控制器同组合逻辑控制器相比较:

特点:具有规整性、灵活性、可维护性。

在计算机系统中,微程序设计是利用软件方法来设计硬件的一门技术。

微程序控制器的基本思想:

① 操作控制信号编成所谓的“微指令”,存放在 ROM 中。② 运行时,一条条地读出这些微指令。

③ 产生全机所需要的各种操作控制信号。

5.4 微程序控制器

5.4.1 微命令和微操作一台数字计算机基本上可以划分为两大部分:

控制部件 执行部件控制命令

反馈 测试

微指令:控制部件通过控制线向执行部件发出的各种

控制命令。微操作:执行部件接受微命令后所进行的操作。

微操作

① 相斥性:同一个 CPU 周期不能并行执行 的微操作。② 相容性:同一个 CPU 周期可并行执行的 微操作。

CY

+–M

R1 R2 R3

X

468

579

1 2 3

Y

简单运算器数据通路图

DR

ALU

上图所示,是一个简单运算器模型,其中 ALU 为算术逻辑单元, R1 、 R2 、 R3 为三个寄存器。 CY 为最高位触发器,有进位时该触发器状态为“ 1” 。

微操作 1 、 2 、 3 是可以同时进行的,所以是相容性的微操作。另外, ALU 的 X输入微操作 4 、 6 、8 分别与 Y输入的 5 、 7 、 9 任意两个微操作,也都

是相容性的。

ALU 的操作(加、减、传送)在同一个 CPU 周期中只能选择一种,不能并行,所以以 + 、–、 M (传送)三个微操作是互斥性的微操作。类似地, 4 、 6 、8三个微操作是互斥性的, 5 、 7 、 9三个微操作也是互斥性的。

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

-

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

微指令基本格式

每一位表示一个微指令,

当某一位为“ 1” 时,表示发出微命令,若第 2 位为“ 1” 时,表示发出 LDD2’ 的微命令。

在机器的一个 CPU 周期中,一组实现一定功能的微命令的组合,构成一条微指令。

5.4.2 微指令和微程序

微程序:一条指令的功能是由多条微指令组成的序列实现的。

节拍电位信号

节拍脉冲信号

“+”

LDR1

600ns 200

CPU 周期

LDR1 LDR2 LDR3

LDR1´ LDR2´ LDR3´

T4

运算器操作时序与产生逻辑

5.4.3 微程序控制器原理框图

OP

控制存储器

地址译码 微地址寄存器

地址转移逻辑

P字段

控制字段…

微指令信号

状态条件

指令寄存器IR

微程序控制器组成原理框图

5.4.3 微程序控制器原理框图

P字段

控制字段

微程序控制器组成原理框图

OP

控制存储器

地址译码 微地址寄存器

地址转移逻辑

微指令信号

状态条件

指令寄存器IR

控制存储器

用来存放实现全部指令系统的微程序,它是一种只读存储器

微命令

寄存器

地址转移逻辑

地址转移逻辑承担自动完成修改微地址的任务

如果微程序不出现分支,那么下一条微指令的地址就直接有微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。

P字段

控制字段

微地址寄存器

微指令寄存器:它用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器 :决定将要访问的下一条微指令的地址,微指令寄存器 : 保存一条微指令的操作控制字段和判别测试字段的信息。

指令寄存器

① 控制存储器:它用来存放实现全部指令系统的微程序,它是一种只读存储器。

② 微指令寄存器:它用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微指令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。

微指令周期:是指读出一条微指令并执行微指令的时间总和称为一个微指令周期。

③地址转移逻辑:如果微程序不出现分支,那么下一条微指令的地址就直接有微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。微地址:微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址。

例: BCD 码相加

已知: R1=a , R2=b, R3=6若: a+b+R3≥16 不做减 6修正

PC→AR→AUS

DBUS→DR→PC+1

P1

R1 + R2 → R2

R2 + R3 → R2

R2 + R3→ R2

P2

RD

1010

0000

1001

0000

0001

0000

CY≠0

1 1 1 1

1 0 0 1

1 0 0 0 1

0 1 0 1

0 1 0 0

0 1 1 0

a

b

6 +

5+4=9

0 1 0 1

0 1 1 0

0 1 1 0

a

b

6 +

5+6=11

- 0 1 1 0修正 大于 16 不用修正

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

-

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0

0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1

0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0

0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

第一条微指令

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0

第 16 位发出 LDAR’ 将 PC 内容送到地址寄存器 AR 第 13 位 发出 RD’

第 14 位 发出 LDDR’ 第 15 位 发出 LDIR’ 将缓冲器中的“十进制加法”指令再送到 IR

第 17 位 发出 PC+1 微指令,使程序计数器加 1

微指令的顺序控制字段指明下一条微指令的地址是 0000 ,但由于判别字段中第 18位为 1 ,表明 P1 测试,因此 0000 不是下一条微指令的真正地址。 P1 测试的“状态条件”是指令寄存器的操作码字段,即用 OP字段作为形成下一条微指令的地址,于是微地址寄存器的内容修改成 1010 。

指令寄存器 OP 的操作码为 1010 为加法操作第一条微指令

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920

21 22 23

0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1

操作控制部分发出四个微命令: R1 →X , R2 →Y , + , LDR2’ 完成 R1+R2 →R1

微指令的顺序控制字段指明下一条微指令的地址是 0000 ,

但由于判别字段测试 P1 和 P2均为 0 ,表示不进行测试,于是直接给

出下一条微指令的地址为 1001 。

按照 1010 这个微地址读出的第二条微指令第二条微指令

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920

21 22 23

0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0

操作控制部分发出四个微命令: R2 →X , R3 →Y , + , LDR2’ 完成 R2+R3 →R2

微指令的顺序控制字段中由于判别字段 P2 为 1 ,表明进行 P2 测试,测试的“状态条件”为进位位标志 Cy 。

按照 1001 这个微地址读出的第三条微指令第三条微指令

设定 : Cy=1 下一条微指令的地址是 0000 ,Cy=0 下一条微指令的地址是 0001 。

若: Cy=0 那么下一条微指令的地址是 0001 。

LDR2’ R1→X R2→X DR→X

R1→Y R2→Y R3→YLDR1’ LDR3’

RD’

LDDR’+

M

LDIR’

LDAR’

PC+1

P1 直 接 地 址P2

操作控制操作控制 顺序控制

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1920

21 22 23

0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0

操作控制部分发出四个微命令: R2 →X , R3 →Y ,-, LDR2’ 完成 R2 - R3 →R2

微指令的顺序控制部分直接给出 下一条微指令的地址为 0000 ,按该地址取出的微指令是“取指”微指令。

按照 0001 这个微地址读出的第四条微指令第四条微指令

若:第三条微指令进行测试 时 Cy=1 那么微地址仍保持为 0000 , 将不执行第四条微指令而直接由第三条微指令转向公操作。

5.4.4 CPU 周期与微指令周期的关系

微指令周期:等于读出微指令的时间加上执行该条微指令的时间。

T1 T2 T3 T4 T1 T2 T3 T4

执行微指令 微指令周期 微指令读

CPU 周期 CPU 周期

CPU 周期与微指令周期的关系

微命令寄存器

控 制 存储器 地址译码

微地址寄存器

指令寄存器 IR

地址寄存器 AR

程序计数器 PC

地址译码

数据缓冲寄存器 DR

OP

+1

微命令

1 、一条机器指令对应一个微程序,这个微程序是由 若干条微指令序列组成的。

1 、一条机器指令对应一个微程序,这个微程序是由 若干条微指令序列组成的。

2 、从指令与微指令,程序与微程序,地址与微地址的一一对应来看,前者与内存储器有关,后者与控制存储器有关。

2 、从指令与微指令,程序与微程序,地址与微地址的一一对应来看,前者与内存储器有关,后者与控制存储器有关。

3 、指令周期中的每一个 CPU 周期对应着一条微指令。

3 、指令周期中的每一个 CPU 周期对应着一条微指令。

5.4.6 机器指令 与 微指令 的 关

读 控 制 写 控 制R RA0 RA1 选择 W WA0 WA1 选择1 0 0 R1 1 0 0 R0

1 0 1 R1 1 0 1 R1

1 1 0 R2 1 1 0 R2

1 1 1 R3 1 1 1 R3

0 X X 不读出 0 X X 不写入

0 1 2 3 4 5 6 7 8 9 10 11

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

要求:用二进制代码写出如下指令的微程序

( 1 ) “ ADD R0 , R1”

( 2 “) SUB R2 , R2”

( 3 ”) MOV R2 , R3”

ALU m2m1读 ROM

2us

500ns1 us

1 个微指令周期

ALU

SA SB

4个通用寄存器

RA0

RA1

RA0

RA1

读选择

写选择

R

W

LDSA

LDSB

16 位

16 位SB-ALU SB-ALU

16 位

Rseet

( 1 ) “ ADD R0 , R1”

( 2 “) SUB R2 , R2”

( 3 ”) MOV R2 , R3”

测试

R2 SA

MOV ADDSUB

取指

R3 SA

R2 SB

SA-SB R3

R0 SA

R1 SB0 SB

SA+SB R3

SA+SB R1

指 令 微 程 序 代 码

ADD

1. 00XX10100000

2. 01XX10010000

3. XX0101001001

SUB

4. 11XX10100000

5. 10XX10010000

6. XX1101000101

MOV 7. 10XX10100000

8. XX1101001011

1 0 X X 1 0 1 0 0 0 0 0

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

X X 1 1 0 1 0 0 1 0 1 1

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

ALU

SA SB

4个通用寄存器

RA0

RA1

RA0

RA1

读选择

写选择

R

W

LDSA

LDSB

16 位

16 位SB-ALU SB-ALU

16 位

Rseet

MOV R2 , R3 指令 (R2)+(R3) → R3

测试

R2 SA

MOV ADDSUB

取指

R3 SA

R2 SB

SA-SB R3

R0 SA

R1 SB0 SB

SA+SB R3

SA+SB R1

指 令 微 程 序 代 码

ADD

1. 00XX10100000

2. 01XX10010000

3. XX0101001001

SUB

4. 11XX10100000

5. 10XX10010000

6. XX1101000101

MOV 7. 10XX10100000

8. XX1101001011

0 0 X X 1 0 1 0 0 0 0 0

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

0 1 X X 1 0 0 1 0 0 0 0

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

ALU

SA SB

4个通用寄存器

RA0

RA1

RA0

RA1

读选择

写选择

R

W

LDSA

LDSB

16 位

16 位SB-ALU SB-ALU

16 位

Rseet

ADD R0 , R1 指令 完成 (R0)+(R1) → R1

测试

R2 SA

MOV ADDSUB

取指

R3 SA

R2 SB

SA-SB R3

R0 SA

R1 SB0 SB

SA+SB R3

SA+SB R1

指 令 微 程 序 代 码

ADD

1. 00XX10100000

2. 01XX10010000

3. XX0101001001

SUB

4. 11XX10100000

5. 10XX10010000

6. XX1101000101

MOV 7. 10XX10100000

8. XX1101001011

X X 0 1 0 1 0 0 1 0 0 1

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

0 1 X X 1 0 0 1 0 0 0 0

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

ALU

SA SB

4个通用寄存器

RA0

RA1

RA0

RA1

读选择

写选择

R

W

LDSA

LDSB

16 位

16 位SB-ALU SB-ALU

16 位

Rseet

ADD R0 , R1 指令 完成 (R0)+(R1) → R1

测试

R2 SA

MOV ADDSUB

取指

R3 SA

R2 SB

SA-SB R3

R0 SA

R1 SBR2 SA

SA+SB R3

SA+SB R1

指 令 微 程 序 代 码

ADD

1. 00XX10100000

2. 01XX10010000

3. XX0101001001

SUB

4. 11XX10100000

5. 10XX10010000

6. XX1101000101

MOV 7. 10XX10100000

8. XX1101001011

0 1 2 3 4 5 6 7 8 9 10 11

RA0 RA1 WA0 WA1 R W LDSA LDSB SB-AW SB-ALU Reset -

设计微指令结构应当追求的目标设计微指令结构应当追求的目标

5.5 微程序设计技术

( 1 )有利于缩短微指令字长度;( 1 )有利于缩短微指令字长度;

( 2 )有利于减小控制存储器的容量;( 2 )有利于减小控制存储器的容量;

( 3 )有利于提高微程序的执行速度;( 3 )有利于提高微程序的执行速度;

( 4 )有利于对微指令的修改;( 4 )有利于对微指令的修改;

( 5 )有利于微程序设计的灵活性。( 5 )有利于微程序设计的灵活性。

学生学生

教 师教 师

5.5.1 微指令编码 微指令编码:对微指令中操作控制字段采用的表示方法。通常有三种方法:( 1 )直接表示法 特点:操作控制字段中的每一位代表一个微指令。优点:简单直观,其输出直接用于控制。缺点:微指令字较长,使控制存储器容量较大。

字段 1 字段 2 …… P字段 下一个微地址

顺序控制 顺序控制

译码

译码 译码

微指令 P1 P2 Pn

… …… …

字段直接译码法

直接表示法、编码表示法、混合表示法

( 2 )编码表示法

编码表示法:把一组互斥性的微指令信号组成一个小组(即一个字段),然后通过小组译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。特点:可用较少的二进制信息位表示较多的微指令 信号。优点:可使微指令字大大缩短。

缺点:由于增加了译码电路,使微程序的执行速 度变慢。( 3 )混合表示法

把直接表示法与字段编码法相混合使用。

3 : 8 译 码

X X X

指令字段

微指令信号

5.5.2 微地址的形成方法产生后继微地址有如下三种方法:1. 计数器方式:

单。但多路并行转移功能较弱,速度较慢,灵活 性较差。

① 在顺序执行微指令时,后继微地址由现行微地址加上增量来产生。

② 在非顺序执行微指令时,必须通过转移方式,使现行微指令执行后,转去执行指定后继微地址的下一条微指令。在这种方法中,微地址寄存器通常改为计数器。 为此,顺序执行的微指令序列就必须安排在控制存储器的连续单元中。特点:微指令的顺序控制字段较短,微地址产生机构简

2.增量方式与断定方式结合:微指令顺序控制部分分为:条件选择字段和转移地址字段。

MUX μPC

控制存储器

CM

条件 转移地址 μIR…

…外部条件

外部地址转移地址

打入

条件选择

控制字段(可编码)

3. 多路转移方式:多路转移:一条微指令具有多个转移分支的能力称为多路转移。

例如:“取指”微指令根据操作码 OP 产生多路微程序分支而形成多个微地址。在多路转移方式中,当微程序不产生分支时,后继微地址直接有微指令的顺序控制字段给出;当微程序产生分支时,有若干“后选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中严格微地址。

特点:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度快。但转移地址逻辑需要用组合逻辑方法设计。

5.5.3 微指令格式微指令格式大体分为两大类:

1.水平型微指令:

控制字段 判别测试字段 下地址字段

水平型微指令的一般格式如下:

第一种是全水平型(不译码)微指令第一种是全水平型(不译码)微指令

第二种是字段译码法水平型微指令;第二种是字段译码法水平型微指令;

第三种是直接和译码混合的水平型微指令第三种是直接和译码混合的水平型微指令

水平型微指令又分为三种:

水平型微指令

垂直型微指令一次能定义并执行多个并行操作微命

令的微指令,叫做水平型微指令。

2.垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,有微操作码规定微指令的功能,称为垂直型微指令。

15 13 12 8

7 3 2 0

0 0 0 原寄存器编码 目标寄存器编码 其他

15 13 12 8

7 3 2 0

0 0 1 左输入源编码 右输入源编码 ALU

15 13 12 8 7 3 2 1 0

0 1 0 寄存器编码 存储器编码 读 写 其他

15 13 12 4 3 0

0 0 1 D 测试条件

( 1 )寄存器 - 寄存器传送指令

( 2 )运算控制指令

( 3 )访问主存微指令

( 4 )条件转移微指令

垂直型微指令 比 水平型微指令编码长,但执行一条指令的时间短

例:

( 1 )水平型微指令并行操作能力强,效率高,灵活性强;垂直型微指令则较差。

( 2 )水平型微指令执行一条指令的时间短;垂直型微指令执行的时间长。

( 3 )由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点;垂直型微指令则相反,微指令字比较短而微程序长。

( 4 )水平型微指令用户难以掌握;而垂直型微指令比较相似,相对来说,比较容易掌握。

3. 水平型微指令

垂直型微指令的比较与

5.5.4 动态微程序设计

程序设计技术有两种:

对应与一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变而且也不好改变,这种微程序设计技术称为静态微程序设计。

对应与一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变而且也不好改变,这种微程序设计技术称为静态微程序设计。

1. 静态微程序设计:

2. 动态微程序设计:

当采用 EPROM 作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。

当采用 EPROM 作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。