2009年 7月 27日 8时 36分 1年 月 日 时 分第五章 中央处理器
2009年 7月 27日 8时 36分 2年 月 日 时 分第五章 中央处理器
CPU的功能和组成 (掌握 )
指令周期(掌握)
时序产生器和控制方式 (理解 )
微程序控制器(掌握)
微程序设计技术(掌握)
硬布线控制器 (理解 )
CPU的新技术 (理解 )
教学要求
课堂上注意听讲、重要的是理解
课堂外一定要看书复习或预习、完成作业
2009年 7月 27日 8时 36分 3年 月 日 时 分
5.1 CPU的功能和组成
什么是 CPU?
所谓中央处理器是控制计算机来自动完成取出指令和执行指令任务的部件 。 它是计算机的核心部件,通常简称为 CPU。
CPU的基本组成中央处理器由两个主要部分 ——控制器 和 运算器组成 。
2009年 7月 27日 8时 36分 4年 月 日 时 分
控制器由 程序计数器 (PC),指令寄存器 (IR),指令译码器,时序产生器和操作控制器 组成,它是发布命令的,决策机构,,即完成协调和指挥整个计算机系统的操作 。
控制器的主要功能有:
1.从内存中取出一条指令,并指出下一条指令在内存中的位臵 。
2.对指令进行译码或测试,并产生相应的控制信号 。
3.输出相应的控制信号,指挥并控制 CPU,内存和
I/O之间的数据流动的方向 。
2009年 7月 27日 8时 36分 5年 月 日 时 分
运算器由 算术逻辑单位( ALU)、累加寄存器( AC)、
数据缓冲寄存器 (DR)和状态条件寄存器 (PSW)组成,
它是数据加工处理部件。
相对控制器而言,运算器接受控制器的命令而进行动作,即 运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。
运算器的主要功能:
1.执行所有的 算术运算 。
2.执行所有的 逻辑运算,并进行 逻辑测试 。
算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS
数据总线 DBUS
累加器 AC
存储器
I/O
CPU ALU
指令寄存器 IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
c
缓冲寄存器 DR
2009年 7月 27日 8时 36分 7年 月 日 时 分
CPU的功能和组成
CPU的主要寄存器
1.累加寄存器 AC
累加寄存器 AC通常简称为累加器,它的功能是:当运算器的算术逻辑单元( ALU)执行全部算术和逻辑运算时,
为 ALU提供一个工作区。累加寄存器是暂时存放 ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。
2.指令寄存器 IR
指令寄存器用来保存当前正在执行的一条指令 。 存放从内存中取出的指令;其中指令的操作码送到指令译码器,
译码后输出控制信号 。
2009年 7月 27日 8时 36分 8年 月 日 时 分
3,程序计数器 PC
程序计数器中存放的是下一条指令在内存中的地址。
若程序顺序执行,PC? PC+1;若程序有跳转,PC?PC+
偏移地址。
4,状态条件寄存器 PSW
状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,同时状态条件寄存器还保存中断和系统工作状态等信息,以便使 CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个 由各种状态条件标志拼凑而成 的寄存器 。
O 溢出 D 方向 I 中断允许 T 追踪
S 符号 Z 零 A 辅助进位 P 奇偶
C 进位
O D I T S Z A P C
2009年 7月 27日 8时 36分 9年 月 日 时 分
CPU的功能和组成
5,地址寄存器 AR
地址寄存器用来保存当前 CPU所访问的内存单元的地址。由于在内存和 CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读 /
写操作完成为止。
6,缓冲寄存器 DR
缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在缓冲寄存器中。
2009年 7月 27日 8时 36分 10年 月 日 时 分
CPU的功能
( 4)数据加工,对数据进行算术运算和逻辑运算处理。完成数据的加工处理,这是 CPU的根本的任务。
( 1)指令控制,程序是指令的有序集合,保证机器按规定的顺序执行程序。
( 2)操作控制,CPU管理并产生由内存取出的每条指令的操作信号,并把各种操作信号送往相应的部件,
从而控制这些部件按指令的要求进行动作。
( 3)时间控制,对各种操作实施时间上的控制,计算机中各种指令的操作信号均受到时间的严格控制。
2009年 7月 27日 8时 36分 11年 月 日 时 分
5.2 指令周期
程序的执行过程:
冯,诺依曼 结构的计算机执行程序的顺序:
1,从程序首地址开始。
2,分步执行每一条指令,并形成下条待执行指令的地址。
3,自动地连续执行指令,直到程序的最后一条指令。
2009年 7月 27日 8时 36分 12年 月 日 时 分指令周期
—读取指令指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器
—分析指令
—按指令规定内容执行指令不同指令的操作步骤数和具体操作内容差异很大
—检查有无中断请求若无,则转入下一条指令的执行过程形成下一条指令地址
指令的执行过程
2009年 7月 27日 8时 36分 13年 月 日 时 分
指令周期的基本概念
1,指令周期,CPU每取出并执行一条指令,都要完成一系列的操作,这一系列操作所需用的时间通常叫做一个 指令周期 。
2,机器周期:机器周期也称为 CPU周期 。通常用内存中读取一个指令字的最短时间来规定 CPU周期。指令周期常常用若干个 CPU周期数来表示,
3,时钟周期:一个 CPU周期时间又包含有若干个 时钟周期
(通常称为 节拍脉冲或 T周期,它是处理操作的最基本单位)。这些时钟周期的总和则规定了一个 CPU周期的时间宽度。
2009年 7月 27日 8时 36分 14年 月 日 时 分指令周期指令周期
T周期
CPU周期CPU周期
T1 T2 T3 T4
( 取指令 ) ( 执行指令 )
取指令 执行指令
2009年 7月 27日 8时 36分 15年 月 日 时 分指令周期
下面以一个简单的程序来具体认识每一条指令的指令周期和执行过程。
内存地址 内存内容 助记符 所完成的操作
020 250 000 CLA 将累加器的内容请零
021 030 030 ADD 30 ( Ac) +( 30)?Ac
022 021 040 STA 40 ( Ac)?( 40)
023 000 000 NOP
024 140 021 JMP 21 21→PC
030 000 006
031
040 存和数单元
2009年 7月 27日 8时 36分 16年 月 日 时 分
CLA指令的指令周期非访内指令需要两个 CPU周期 。
在第一个 CPU周期,即取指令阶段,CPU完成三件事:( 1)从内存取出指令;( 2)对程序计数器 PC加 1,以便为取下一条指令做好准备;( 3)对指令操作码进行译码或测试,以便确定进行什么操作。
在第二个 CPU周期,即执行指令阶段,将累加器 Ac的内容清零。
一个 CPU周期 一个 CPU周期取指令阶段 执行指令阶段开始取指令
PC+1
对指令译码执行指令取下条指令
PC+1
2009年 7月 27日 8时 36分 17年 月 日 时 分指令周期算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS
数据总线 DBUS
累加器 AC
缓冲寄存器 DR
CPU ALU
指令寄存器 IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
+1000 020
20
21
22
23
24
30
3140
CLA
ADD 30
STA 40
NOP
JMP 21
000 006
000 020
CLA
CLA
1
2009年 7月 27日 8时 36分 18年 月 日 时 分指令周期算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS
数据总线 DBUS
累加器 AC
缓冲寄存器 DR
CPU ALU
指令寄存器 IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
+1
20
21
22
23
24
30
3140
CLA
ADD 30
STA 40
NOP
JMP 21
000 006
000 020
CLA
CLA
000 021
2009年 7月 27日 8时 36分 19年 月 日 时 分指令周期
ADD指令的指令周期
ADD指令的指令周期由三个
CPU周期组成。
第一个 CPU周期为取指令阶段。
和 CLA指令相同。
第二个 CPU周期中将操作数的地址送往地址寄存器并完成地址译码。
在第三个 CPU周期中从内存取出操作数并执行相加的操作。
2009年 7月 27日 8时 36分 20年 月 日 时 分指令周期一个 CPU周期 一个 CPU周期取指令阶段 执行指令阶段开始取指令
PC+1
对指令译码送操作数地址取下条指令 PC+1
取出操作数执行加操作一个 CPU周期指令周期算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS 数据总线 DBUS
累加器 AC
缓冲寄存器 DR
CPU ALU
指令寄存器
IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
+1
20
21
22
23
24
30
3140
CLA
ADD 30
STA 40
NOP
JMP 21
000 006
000 021
ADD
ADD 30
000 0212
0 030
000 006
0+6=6
000 006
2009年 7月 27日 8时 36分 22年 月 日 时 分指令周期
STA指令的指令周期
STA指令的指令周期由三个 CPU周期组成 。 其中第一个 CPU周期仍然是取指令阶段,其过程和 CLA指令,ADD
指令完全一样,不同的是此阶段中程序计数器加 1后变为 023,因而为取第四条指令做好了准备 。 我们假定,
第一个 CPU周期后结束,,STA 40”指令已放入指令寄存器并完成译码测试 。
第二个 CPU周期是送操作数地址 。
第三个 CPU周期是累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元中 。
指令周期算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS 数据总线 DBUS
累加器 AC
缓冲寄存器 DR
CPU ALU
指令寄存器
IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
+1
20
21
22
23
24
30
40
CLA
ADD 30
STA 40
NOP
JMP 21
000 006
000 022
STA
STA 40
000 0223
0 040
000 006
000 006
000 006
2009年 7月 27日 8时 36分 24年 月 日 时 分指令周期
NOP指令和 JMP指令的指令周期
NOP指令是一条空指令,包含两个 CPU周期,第一个周期取指令,第二个周期执行指令,因是空指令,所以操作控制器不发出任何控制信号。
JMP指令由 两个 CPU周期组成,第一个周期是取指令周期,同其他指令。第二个周期为执行阶段,CPU把指令寄存器中的地址码部分 21送到程序计数器,从而用新内容 21代替 PC原先的内容 25,这样,下一条指令将不从 25单元中读出,而从 21单元开始读出并执行,从而改变了程序原先的执行顺序 。
指令周期算术逻辑单元状态条件寄存器程序计数器 PC
地址寄存器 AR
地址总线 ABUS 数据总线 DBUS
累加器 AC
缓冲寄存器 DR
ALU
指令寄存器
IR
指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制
c
c
c
c
+1
20
21
22
23
24
30
40
CLA
ADD 30
STA 40
NOP
JMP 21
000 006
000 024
JMP 21
JMP 21
000 024
0 021
000 006
000 006
51
2009年 7月 27日 8时 36分 26年 月 日 时 分
注意 执行,JMP 21”指令时,我们此处所给的四条指令组成的程序进入了死循环,除非人为停机,否则这个程序将无休止地运行下去,因而内存单元 40中的和数将一直不断地发生变化。
当然,我们此处所举的转移地址 21是随意的,仅仅用来说明转移指令能够改变程序的执行顺序而已。
2009年 7月 27日 8时 36分 27年 月 日 时 分指令周期
用方框图语言表示指令周期在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。
一个方框代表一个 CPU周期,方框中的内容表示数据通路的操作或某种控制。
一个菱形符号代表某种判别或测试,不过时间它依附于它前面一个方框的 CPU周期,而不单独占用一个 CPU周期。
符号,~”代表一个公操作 。
2009年 7月 27日 8时 36分 28年 月 日 时 分
~ ~
PC→ AR → ABUS
DBUS → DR → IR
PC +1
译码或测试
0 → AC IR → AR IR → AR IR → PCPC→ AR
AR → ABUS
DBUS → DR
RD→ ALU
ALU→ AC
AR → ABUS
AC→ DR
DR→ DBUS
~ ~ ~
CLA ADD STA JMP NOP
2009年 7月 27日 8时 36分 29年 月 日 时 分指令周期
小结:
– 各类信息的传送路径
指令,M----- DBUS ----- DR -----IR
地址,PC---- AR ---- ABUS -----(取决于寻址方式)
数据:
– 寄存器 ----寄存器 总线直接传送
– 寄存器 ----存储器 Ri---- DR -- DBUS -------M
– 存储器 ----寄存器 M----- DBUS --- DR -------Ri
2009年 7月 27日 8时 36分 30年 月 日 时 分
例,如图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器 (具有自增功能 ),M为主存
(受 R/W信号控制 ),AR为地址寄存器,DR为数据缓冲寄存器,ALU由加、减控制信号决定完成何种操作,控制信号 G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中 yi表示 y寄存器的输入控制信号,
R1o为寄存器 R1的输出控制信号,未标字符的线为直通
1.“ADD R2,R0”指令完成( R0) +( R2) → R0功能操作。假设该指令的地址已放入 PC中。
2.“SUB R1,R3”指令完成( R3) -( R1) → R3的功能操作。
2009年 7月 27日 8时 36分 31年 月 日 时 分
IR PC AR DR R0 R1 R2 R3M
A
B
ALU
IRi
IRo
PCi
PCo
ARi DRi
DRo
R0i
R0o
R3i
R3o
Xi
Yi
A总线
B总线
G
+ -R/W
PC→ AR
M→ DR
DR→ IR
R2→ Y
R0→ X
R0+R2→ R0
~
PC→ AR
M→ DR
DR→ IR
R3→ Y
R1→ X
R3-R1→ R3
~
PC0,G,ARi
DR0,G,IRi
R20,G,Yi
R00,G,Xi
+,G,R0i
R/W=R
R3o,G,Yi
R1o,G,Xi
-,G,R3i
IR PC AR DR R0 R1 R2 R3M
A
B
AL
U
IRi
IRo
PCi
PCo
ARi DRi
DRo
R0i
R0o
R3i
R3o
Xi
Yi
G
+ -
R/W
2009年 7月 27日 8时 36分 33年 月 日 时 分操作控制器和时序产生器
1,数据通路,通常把许多寄存器之间传送信息的通路称为,数据通路,。
2,操作控制器,根据指令操作码和时序信号,产生各种操作信号,以便正确建立数据通路,从而完成取指令和执行指令的操作。
3,时序产生器,因为计算机高速地进行工作,每一个动作的时间是非常严格的,不能有任何差错。时序产生器的作用,就是对各种操作实施时间上的控制。
2009年 7月 27日 8时 36分 34年 月 日 时 分时序产生器和控制方式
时序信号的作用和体制
– 计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。
– 操作控制器发出的各种控制信号都是时间因素(时序信号)和空间因素(部件位臵)
的函数。
– 组成计算机硬件的器件特性决定了时序信号最基本的体制是 电位 ---脉冲制 。
2009年 7月 27日 8时 36分 35年 月 日 时 分
根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型 三种。
1.硬布线控制器
是采用时序逻辑技术来实现的;
2.微程序控制器
是采用存储逻辑来实现的;
3.前两种方式的组合
2009年 7月 27日 8时 36分 36年 月 日 时 分时序产生器和控制方式
硬布线控制器中
–时序信号采用 主状态周期 ——节拍电位 —
节拍脉冲 三级体制。
2009年 7月 27日 8时 36分 37年 月 日 时 分时序产生器和控制方式
主状态周期(指令周期),包含若干个节拍周期,可以用一个触发器的状态持续时间来表示。
节拍电位(机器周期),表示一个 CPU
周期的时间,包含若干个节拍脉冲,表示较大的时间单位。
节拍脉冲(时钟周期),表示较小的时间单位。
2009年 7月 27日 8时 36分 38年 月 日 时 分
2009年 7月 27日 8时 36分 39年 月 日 时 分
微程序控制中
–时序信号采用 节拍电位 ——节拍脉冲二级体制。
触发器数据,电位控制信号,脉冲数据准备好后,以电位的方式送触发器(可执行保存),
当控制信号来到后进用一个脉冲信号即可把数据装入触发器。
2009年 7月 27日 8时 36分 40年 月 日 时 分
2009年 7月 27日 8时 36分 41年 月 日 时 分时序产生器和控制方式
微程序控制器时序信号产生器的组成
– 时钟源
– 环形脉冲发生器
– 节拍脉冲和读 /写时序的译码
– 启停控制逻辑
2009年 7月 27日 8时 36分 42年 月 日 时 分时序产生器和控制方式启停控制逻辑节拍脉冲和对时序译码逻辑环形脉冲发生器
IORQ MREQ RD WE T1 T2 T3 T4
IORQ° MREQ° RD° WE° T1° T2° T3° T4°MERQ’
IORQ’
RD’
WR’
时钟脉冲源
Φ 时钟脉冲源环形脉冲发生器节拍脉冲和对时序译码逻辑启停控制逻辑用来为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号。
有石英晶体振荡器组成。
产生一组有序的间隔相等或不等的脉冲序列。通常采用循环移位寄存器。
2009年 7月 27日 8时 36分 43年 月 日 时 分环形脉冲发生器
2009年 7月 27日 8时 36分 44年 月 日 时 分节拍电位与节拍脉冲时序关系图
2009年 7月 27日 8时 36分 45年 月 日 时 分
2009年 7月 27日 8时 36分 46年 月 日 时 分
2009年 7月 27日 8时 36分 47年 月 日 时 分时序产生器和控制方式
控制方式
同步控制方式,在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的。
– 采用完全统一的机器周期 执行各种不同的指令。这意味这所有指令周期具有相同的节拍电位和相同的节拍脉冲数。
– 采用不定长的机器周期 。
– 中央控制和局部控制相结合 。
中央控制:就是将大部分 指令 安排在固定的机器周期完成。
局部控制:对少数复杂的 指令 采用另外的时序进行定时。
2009年 7月 27日 8时 36分 48年 月 日 时 分时序产生器和控制方式同步控制方式:
时钟微操作信号 1
微操作信号 2
2009年 7月 27日 8时 36分 49年 月 日 时 分时序产生器和控制方式
异步控制方式:
每条指令、每个操作控制信号需要多少时间就占用多少时间。这意味着每条指令的指令周期可由多少不等的机器周期数组成。
2009年 7月 27日 8时 36分 50年 月 日 时 分时序产生器和控制方式
异步控制方式命令 1
命令 2
操作信号 1
回答 1
操作信号 2
回答 2
命令 3
2009年 7月 27日 8时 36分 51年 月 日 时 分时序产生器和控制方式
联合控制方式:
将同步控制方式和异步控制方式相结合的方式。
情况( 1) 大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的,回答,信号作为本次操作的结束;
情况( 2) 机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。
2009年 7月 27日 8时 36分 52年 月 日 时 分小 结控制器的组成:
指令部件程序计数器 PC
指令寄存器指令译码器时序部件脉冲源及启停逻辑时序信号形成部件控制方式
2009年 7月 27日 8时 36分 53年 月 日 时 分小结程序计数器 PC
地址形成部件操作码 地址码译码微操作信号形成节拍发生器时钟源中断控制逻辑状态寄存器微操作信号
I/O信息控制台信息
+1
送 AR
2009年 7月 27日 8时 36分 54年 月 日 时 分微程序控制器基本概念组成工作过程微程序举例微程序设计技术微程序控制器的设计方法
2009年 7月 27日 8时 36分 55年 月 日 时 分微程序控制器基本概念微命令微操作微指令微程序控制存储器微地址
2009年 7月 27日 8时 36分 56年 月 日 时 分微程序控制器 ——基本概念微程序控制器的基本思想:
将微操作控制信号按一定规则进行信息编码(代码化)形成控制字(微指令),
一条机器指令对应一段,程序,,该程序存放在控制存储器中,因为,程序,的指令结果是实现一条机器指令的功能,所以称为,指令的微程序,。
2009年 7月 27日 8时 36分 57年 月 日 时 分微程序控制器 ——基本概念
微命令,控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令。
微操作,执行部件接受微命令后所进行的操作,称为微操作。
2009年 7月 27日 8时 36分 58年 月 日 时 分微程序控制器 ——基本概念
微指令,在机器的一个 CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。
微程序,微指令序列为微程序。
2009年 7月 27日 8时 36分 59年 月 日 时 分微程序控制器 ——基本概念程序机器指令 1
机器指令 2
机器指令 i
机器指令 n
……,.
………
微指令 2
微指令 1
微指令 i
微指令 n
……,.
……,.
微程序
2009年 7月 27日 8时 36分 60年 月 日 时 分微程序控制器 ——基本概念控制存储器:
用来存放实现全部指令系统的微程序。是一种高速存储器。
微地址:
人们常把全部指令的控制字存放在一个高速存储器中,即控制存储器中(简称控存),控存的一个单元的内容即控制字代表了某一个节拍的一组微操作控制信号的信息,而把控存单元的地址称为,微地址,。
2009年 7月 27日 8时 36分 61年 月 日 时 分微程序控制器 ——组成微指令寄存器:
用来存放由控制存储器读出的一条微指令信息。
微地址转移逻辑:
自动完成修改微地址的任务。
2009年 7月 27日 8时 36分 62年 月 日 时 分微程序控制器原理框图控制存储器地址译码 微地址寄存器
OP
P字段 控制字段地址转移逻辑状态条件指令寄存器微命令信号
2009年 7月 27日 8时 36分 63年 月 日 时 分微程序控制器的工作过程 实质上就是在微程序控制器的控制下,计算机执行机器指令的过程。
从控存中取出一段,取机器指令,用的微程序,称为 取指微程序,这是一段公用的微操作,其首址通常放在,0”号微地址单元。该微程序完成从主存中读取机器指令并送往指令寄存器。
机器指令操作码通过微地址形成部件,产生对应的微程序入口地址,并送入微地址寄存器。
逐条取出对应的微指令,每一条微指令提供一个微命令序列,控制有关的微操作。
执行完对应于一条机器指令的一段微程序后,返回到取指微程序的入口,以便取出下一条机器指令。不断重复,直至程序执行完毕。
2009年 7月 27日 8时 36分 64年 月 日 时 分微程序控制器 ——微程序举例
ALU
R1 R2 R3
Cy +-
M
DR46
8
5
7
9
1 2 3
2009年 7月 27日 8时 36分 65年 月 日 时 分
例:
R1=3 R2=5 R1+R2->R3
1、控 4=1,R1->多路开关 ->X
控 7=1,R2->多路开关 ->Y
2、控 +=1,ALU完成 3+5
3、控 3=1 3+5->R3
2009年 7月 27日 8时 36分 66年 月 日 时 分微程序控制器 ——微程序举例微指令的格式:
.......................
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2
直接地址操作控制 顺序控制
2009年 7月 27日 8时 36分 67年 月 日 时 分微程序控制器 ——微程序举例举例:,十进制加法,指令的微程序控制的过程。
十进制加法,指令的功能是用 BCD码来完成十进制数的加法运算。在十进制运算时,当相加二数之和大于 9时,便产生进位,
要进行加 6修正;当相加二数之和小于等于
9时,结果是正确的。
2009年 7月 27日 8时 36分 68年 月 日 时 分微程序控制器 ——微程序举例假定数 a和 b已存放在 R1和 R2两寄存器中,
数 6存放在 R3寄存器中。
算法要求先进行 a+b+6运算,然后判断结果有无进位;当进位标志 Cy=1不减 6,当
Cy=0,减 6,从而可以获得正确的结果。
2009年 7月 27日 8时 36分 69年 月 日 时 分
用 BCD码完成 A+B运算
1,A=1000 B=1001
1000
+1001
10001
有进位,
修正为:
10001
+ 0110
10111
2,A=0110 B=1000
A+B+6=1 0100 有进位,正确
3,A+B+6=1101 无进位,错误,修正,
1101
-0110
0111
2009年 7月 27日 8时 36分 70年 月 日 时 分
PC→AR → ABUS
DBUS → DR → IR,PC+1
P1
R1+R2 → R2
R2+R3 → R2
R2-R3 → R2
P2
RD 0000
0000
1010
1001
0000
0001
0000
Cy≠0
Cy=0
微程序流程图
~
2009年 7月 27日 8时 36分 71年 月 日 时 分微程序控制器 ——微程序举例第一条微指令
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2 直接地址操作控制 顺序控制操作控制字段有五个微命令:第 16位发出 LDAR’,将 PC内容送到地址寄存器 AR;第 13位发出 RD’,第 14位发出 LDDR’,于是内存执行读操作,从内存取出,十进制加法,指令放到 DR中,第 15位发出
LDIR’,将 DR中的指令再送到指令寄存器 IR中,第 17位发出 PC+1微命令,是程序计数器加 1,做好取下一条机器指令的准备 。
2009年 7月 27日 8时 36分 72年 月 日 时 分
PC→AR → ABUS
DBUS → DR → IR,PC+1
P1
R1+R2 → R2
R2+R3 → R2
R2-R3 → R2
P2
RD 0000
0000
1010
1001
0000
0001
0000
Cy≠0
Cy=0
微程序流程图
~
2009年 7月 27日 8时 36分 73年 月 日 时 分微程序控制器 ——微程序举例第二条微指令
0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2 直接地址操作控制 顺序控制
2009年 7月 27日 8时 36分 74年 月 日 时 分
PC→AR → ABUS
DBUS → DR → IR,PC+1
P1
R1+R2 → R2
R2+R3 → R2
R2-R3 → R2
P2
RD 0000
0000
1010
1001
0000
0001
0000
Cy≠0
Cy=0
微程序流程图
~
2009年 7月 27日 8时 36分 75年 月 日 时 分微程序控制器 ——微程序举例第三条微指令
0 1 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2 直接地址操作控制 顺序控制
2009年 7月 27日 8时 36分 76年 月 日 时 分
PC→AR → ABUS
DBUS → DR → IR,PC+1
P1
R1+R2 → R2
R2+R3 → R2
R2-R3 → R2
P2
RD 0000
0000
1010
1001
0000
0001
0000
Cy≠0
Cy=0
微程序流程图
~
2009年 7月 27日 8时 36分 77年 月 日 时 分微程序控制器 ——微程序举例第四条微指令
0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2 直接地址操作控制 顺序控制
2009年 7月 27日 8时 36分 78年 月 日 时 分
PC→AR → ABUS
DBUS → DR → IR,PC+1
P1
R1+R2 → R2
R2+R3 → R2
R2-R3 → R2
P2
RD 0000
0000
1010
1001
0000
0001
0000
Cy≠0
Cy=0
微程序流程图
~
以上是由四条微指令序列组成的简单微程序,从这个简单的控制模型中,我们就可以看到为程序控制的主要思想及大概过程 。
2009年 7月 27日 8时 36分 79年 月 日 时 分
CPU周期与微指令周期的关系微指令周期,读出微指令的时间加上执行该条微指令的时间。如:
T1 T2 T3 T4 T1 T2 T3 T4T4 T4
执行微指令 微指令周期
CPU周期 CPU周期读微指令在 T4节拍脉冲期间( 200ns),取微指令;在 T1的上升沿:微指令已经取好,在 T1—T3期间( 600ns):执行微操作。所以:在一个 CPU周期内( 800ns):取址指令:占
1/4CPU周期;执行微指令:占 3/4CPU周期。
2009年 7月 27日 8时 36分 80年 月 日 时 分机器指令和微指令的关系:
程序计数器 pc
地址寄存器缓冲寄存器指令寄存器微地址寄存器微指令寄存器主存储器 控制存储器微命令地址译码器地址译码
+1
2009年 7月 27日 8时 36分 81年 月 日 时 分取机器指令,取微指令,它们之间是什么关系?
1.一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。
简言之,一条机器指令所完成的操作划分成若干
2.从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,
后者与控制存储器有关。
3,每一个 CPU周期对应一条微指令。
例:设某计算机运算器框图如下图 A所示,其中 ALU为 16位的加法器 (高电平工作 ),SA,SB为 16位暂存器。 4个通用寄存器由 D触发器组成,Q端输出,其读、写控制功能见下表。
机器采用串行微程序控制方式,其微指令周期见图
( b)。其中读 ROM是从控存中读出一条微指令时间,为
1μs ; ALU工作是加法器做加法运算,为 500ns; m1是读寄存器时间,为 500ns; m2是写寄存器的工作脉冲宽度,为 100ns。 微指令字长 12位,微指令格式如下:
F1 F2 R W F3 F4 F5 F6 F7 F8
F1:读 R0-R3的选择控制 F2:写 R0-R3
F3:打入 SA F4:打入 SB
F5:打开非反相三态门的控制信号 LDALU
F6:打开反相三态门的控制信号 LDALU并使加法器低位加 1
F7:清暂存器 SB为零的 Reset
F8:一段微程序结束,转入取机器指令的控制信号
R W:寄存器写命令
2009年 7月 27日 8时 36分 84年 月 日 时 分
要求:用二进制代码写出如下指令的微
(1)“ADD R0,R1”指令,即 (R0)+(R1)→R 1
(2)“SUB R2,R3”指令,即 (R3)-(R2)→R 3
(3)“MOV R2,R3”指令,即 (R2)→(R 3)
2009年 7月 27日 8时 36分 85年 月 日 时 分
【 解 】
先画出三条指令的微指令的微程序流程图,如下图所示。
(1)“ADD R0,R1”
(2)“SUB R2,R3”
(3)“MOV R2,R3”指令
2009年 7月 27日 8时 36分 86年 月 日 时 分
其中未考虑,取指周期,和顺序控制问题,也即微程序仅考虑,执行周期,,微指令序列的顺序用数字标号标在每条微指令的右上角。每一框表示一条微指令。
根据给定的微指令周期时间关系,完成 ADD,SUB指令的执行动作需要 3条微指令,MOV指令只需 2条微指令。用二进制代码写出的三条指令的微程序列于下表中,其中 *表示代码随意设臵 (0或 1均可 )。
2009年 7月 27日 8时 36分 87年 月 日 时 分微程序设计技术
设计微指令结构应当追求的目标是:
1、有利于缩短微指令长度;
2、有利于减小控制存储器的容量;
3、有利于提高微程序的执行速度;
4、有利于对微指令的修改;
5、有利于提高微程序设计的灵活性;
2009年 7月 27日 8时 36分 88年 月 日 时 分微程序控制器 ——设计技术
1,微命令编码
2,微地址的形成方法
3,微指令格式
4,微程序控制的设计方法
2009年 7月 27日 8时 36分 89年 月 日 时 分微程序控制器 ——设计技术
微命令编码
– 直接表示法
– 编码表示法
– 混合表示法
2009年 7月 27日 8时 36分 90年 月 日 时 分直接表示法在微指令的操作控制字段中每一个微命令都用一位信息表示,对应于一种微操作。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的相应位设臵成,1”或
,0”就可以了。因此,微命令的产生不必经过译码,所需的控制信号直接送到相应的控制点 。
特点,直观、不必译码、速度快微指令的长度太长,不好记忆,占用空间大
.,,,,,,,,,,,,,,,,,,,,.,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
LDR1’
LDR2’
LDR3’ R1→ Y
R2→ X
R2→ Y
R1→ X DR→ X
R3→ Y
+
M
-
RD’
LDDR’
LDIR’
LDAR’
PC+1
P1 P2
直接地址操作控制 顺序控制
2009年 7月 27日 8时 36分 91年 月 日 时 分微程序控制器 ——设计技术
LT
ALU
LA
1 1 0 0 0 1 0 0
LT→ BUS
ALU→ LT
LA→ ALU
BUS→ LA
0位,LT→ BUS
1位,BUS→ LA
2位,LA→ ALU
3位,DIV
4位,MUL
5位,SUB
6位,ADD
7位,ALU→ LT
这种方法的优点是简单、直观、执行速度快,微命令的并行控制能力强,编制的微程序短;缺点是微指令字长 。
2009年 7月 27日 8时 36分 92年 月 日 时 分微程序控制器 ——设计技术编码 表示法将微指令的控制字段分为若干个小字段,每个字段分别编码,每种编码代表一种微命令。
把一组 相斥性 的微命令信号组成一个小组
(即一个字段 ),然后通过小组 (字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号,其微指令结构如下图所示。
2009年 7月 27日 8时 36分 93年 月 日 时 分
………………,
译码 译码 译码
… … …
控制字段 地址字段微命令 微命令 微命令
uIR
采用字段译码的编码方法,可以用较小的二进制信息位表示较多的微命令信号。 例如 3位二进位译码后可表示 7个微命令,4位二进制位译码后可表示 15个微命令。与直接控制法相比,字译码控制法可使微指令字大大缩短,但由于增加译码电路,使微程序的执行速度稍稍减慢。
2009年 7月 27日 8时 36分 94年 月 日 时 分微程序控制器 ——设计技术例如,某机器指令系统总共需要 240个微命令,采用直接编码法,微指令的操作控制字段需 240位,采用编码表示法,如将控制字段分成 4位一段,共 16段,每个字段经一个译码器输出,可获得 15个微命令,总共 16段就可获得 240个微命令。微指令的操作控制字段仅 64位。
2009年 7月 27日 8时 36分 95年 月 日 时 分微程序控制器 ——设计技术编码表示法的分段原则:
1,相斥性微命令分在同一字段内,相容性微命令分在不同的字段内。前者可提高信息位的利用率,缩短微指令字长;后者有利于实现并行操作,加快指令的执行速度。
2,一般将同类操作中互斥的微命令划分在同一个字段中。
3,每个小字段包含的信息位不能太多,一般不超过 6位,否则将增加译码线路的复杂性和译码时间。
2009年 7月 27日 8时 36分 96年 月 日 时 分微程序控制器 ——设计技术混合表示法这种方法是把 直接表示法 与 字段编码法 混合使用,以便能综合考虑指令字长、灵活性、执另外,在微指令中还可附设一个常数字段。
该常数可作为操作数送入 ALU运算,也可作为计数器初值用来控制微程序循环次数。
2009年 7月 27日 8时 36分 97年 月 日 时 分微程序控制器 ——设计技术
微地址的形成方法
– 根据机器指令操作码找到相应机器指令所对应的微程序的入口地址。
后继微地址的产生
– 计数器方式
– 多路转移方式
2009年 7月 27日 8时 36分 98年 月 日 时 分微程序控制器 ——设计技术计数器方式:
设臵一个微程序计数器 uPC,在顺序执行微指令时,后继微指令地址由现行微地址加上一个增量来实现。遇到转移时,由微指令给出转移微地址。
2009年 7月 27日 8时 36分 99年 月 日 时 分微程序控制器 ——设计技术用计数器方式实现的微程序控制单元结构
uPC 转移部分控制存储器
uPC
指令寄存器入口地址及转移地址产生器条件码状态标志
2009年 7月 27日 8时 36分 100年 月 日 时 分微程序地址字段格式的设计第一种方式:
将微指令的地址字段(顺序控制字段)分成两部分:转移控制字段 BCF和转移地址字段 BAF。
UOP BAF BCF
其中转移地址字段给出转移用部分微地址,
转移控制字段用于规定后继微地址是顺序执行还是非顺序执行。
2009年 7月 27日 8时 36分 101年 月 日 时 分微程序控制器 ——设计技术
uOP BAF BCF
控制存储器
uPC
译码器转移控制网络
1∧
& ○ 1
返回地址寄存器 臵初值返回地址 BAF 指令 OP
+1
+1 条件满足外部条件
BCF=101
2009年 7月 27日 8时 36分 102年 月 日 时 分微程序控制器 ——设计技术
BCF=000,顺序执行微指令,后继微地址为 uPC+1。
BCF=001,机器指令操作码产生后继微地址的微命令,
后继微地址由 OP变换后产生。
BCF=010,无条件转移微指令,将 BAF送 Upc。
BCF=011,条件转移微指令,后继微指令地址由转移条件的测试结果确定。
BCF=100,测试循环微指令,后继微地址由测试循环条件确定。
BCF=101,转微子程序微命令,后继微地址即微子程序入口微地址由 uPC与 BAF字段组合形成。
BCF=110,返回微命令。
2009年 7月 27日 8时 36分 103年 月 日 时 分微程序地址字段格式的设计第二种方式:
在微指令格式中,将微操作控制字段和转移地址字段重叠使用。如果顺序执行微指令,该微指令只有微操作控制字段和转移控制字段,没有转移地址字段,下一条微指令地址由 uPC+1来确定;如果是转移微指令,因为该位臵不执行任何微操作,只是改变微程序的流程,所以可以用微操作控制字段给出下一条要执行的微指令地址,
并把微地址放在 uPC中。
2009年 7月 27日 8时 36分 104年 月 日 时 分微程序控制器 ——设计技术
计数器方式的优点是微指令字较短,便于编写微程序,后继微地址产生机构比较简单;
缺点 是执行速度低,原因是计数器方式不易直接实现对应于各个测试条件的多路转移,而微程序的主要特点是存在大量的分支。
2009年 7月 27日 8时 36分 105年 月 日 时 分多路转移方式
一条微指令具有多个转移分支的能力称为 多路转移 。在多路转移方式中,当微程序不产生分支时,后继微地址直接由微指令的顺序控制字段给出;当微程序出现分支时,有若干,后选,微地址可供选择:即按顺序控制字段的,判别测试,
标志和,状态条件,信息来选择其中一个微地址。
,状态条件,有 n位标志,可实现微程序 2的 n次方路转移,涉及微地址寄存器的 n位 。
多路转移方式的特点是,能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快,但转移地址逻辑需要用组合逻辑方法设计。
2009年 7月 27日 8时 36分 106年 月 日 时 分微程序控制器 ——设计技术
微指令格式
– 水平型微指令
– 垂直型微指令
2009年 7月 27日 8时 36分 107年 月 日 时 分微程序控制器 ——设计技术
水平型微指令,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。
基本特征:
–微指令字较长
–一条微指令能控制数据通路中多个功能部件并行操作。
–微命令的编码简单,尽可能使微命令与控制门之间具有直接对应关系。
格式如下:
控 制 字 段 判别测试字段 下地址字段
2009年 7月 27日 8时 36分 108年 月 日 时 分微程序控制器 ——设计技术
垂直型微指令,在微指令中设臵微操作码字段,
采用为操作码编译法,由操作码规定为微指令的功能,在一条微指令中只有一、两个微操作命令称为垂直型微指令。
基本特征:
– 微指令字短。
– 微指令的并行操作能力有限,一条微指令只能控制数据通路中的一、两个信息传送。
– 微指令编码比较复杂,全部微命令组成一个微操作码字段,经过完全译码,微指令的各个二进制位与数据通路的各个控制点之间完全不存在直接对应关系。
2009年 7月 27日 8时 36分 109年 月 日 时 分
设微指令字长为 16位,微操作码 3
(1)寄存器 -寄存器传送型微指令
其功能是把源寄存器数据送目标寄存器。
13—15位为微操作码 (下同 ),源寄存器和目标寄存器编址各 5位,可指定 31个寄存器。
2009年 7月 27日 8时 36分 110年 月 日 时 分
(2)运算控制型微指令
其功能是选择 ALU的左、右两输入源信息,按 ALU字段所指定的运算功能 (8种操作 )进行处理,并将结果送入暂存器中。
左、右输入源编址可指定 31种信息源之
2009年 7月 27日 8时 36分 111年 月 日 时 分
(3)
其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。
存储器编址是指按规定的寻址方式进行编址。第 1,2位指定读操作或写操作 (取其之一 )。
2009年 7月 27日 8时 36分 112年 月 日 时 分
(4)
其功能是根据测试对象的状态决定是转移到 D
所指定的微地址单元,还是顺序执行下一条微指令。 9位 D字段不足以表示一个完整的微地址,
但可以用来替代现行 μPC 的低位地址。 测试条件字段有 4位,可规定 16种测试条件。
101
2009年 7月 27日 8时 36分 113年 月 日 时 分
水平型微指令与垂直型微指令的比较
(1)水平型微指令并行操作能力强,效率高,
(2)水平型微指令执行一条指令的时间短,垂
(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
2009年 7月 27日 8时 36分 114年 月 日 时 分硬布线控制器(组合逻辑控制器 )
基本思想:
把控制部件看成作为生产专门固定时序控制信号的逻辑电路,而此逻辑电路以使用最少元件和取得最高操作速度为设计目标。
这种逻辑电路是一种由门电路和触发器构成的复杂树形网络,故称为硬布线控制器。由于门电路多是组合逻辑电路所以也称为组合逻辑控制器。
2009年 7月 27日 8时 36分 115年 月 日 时 分硬布线控制器硬布线控制器的结构图组合逻辑线路指令译码器指令寄存器节拍电位 /节拍脉冲发生器微操作控制信号结果反馈信息启动停止时钟复位
IR M1 MiT1 Ti
2009年 7月 27日 8时 36分 116年 月 日 时 分逻辑网络的输入信号来源有三个,
(1)来自指令操码译码器的输出 Im;
(2)来自执行部件的反馈信息 Bj;
(3)来自时序产生器的时序信号,包括节拍电位信号 M和节拍脉冲信号 T。
逻辑网络 N的输出信号 就是微操作控制信号,
它用来对执行部件进行控制。
硬布线控制器的基本原理:
C=f( Im,Mi,Tk,Bj )
实现,每一个操作控制信号与指令,时序,条件都有一个逻辑关系,用逻辑表达式描述。
2009年 7月 27日 8时 36分 117年 月 日 时 分硬布线控制器评价:
速度快
电路设计太复杂
增加功能不太可能
2009年 7月 27日 8时 36分 118年 月 日 时 分硬布线控制器
时序
采用三级时序,主状态周期包含若干个机器周期,每个机器周期可以完成一次主存的读 /写操作,每个机器周期可分为若干个节拍,每个节拍可分为若干个脉冲。
2009年 7月 27日 8时 36分 119年 月 日 时 分硬布线控制器硬布线控制器的设计方法
1,绘制指令的流程图,以指令的执行过程为线索,按指令类型分类,将每条指令归纳为一个微操作序列,根据操作的先后顺序画出指令流程图。
2,列出微操作时间表,把指令流程图中的微操作序列合理地安排在各个机器周期的相应节拍和脉冲中去,使他们在执行的时间上不发生冲突。
3,微操作的逻辑综合,以每个微操作为单位进行,同类项合并,,就是把不同指令在不同周期状态,不同节拍和不同条件下所需要的同一微操作用逻辑关系式综合起来,然后加以简化使逻辑表达式更为合理。
2009年 7月 27日 8时 36分 120年 月 日 时 分硬布线控制器
PC → MAR,READ
MDR→ IR
PC+1 → PC
ADDR → MAR
READ
ADDR → MAR ADDR → MAR
READ
ADDR → MAR
READ
Z=1
ADDR → PC
MDR → Ri MDR → RiWRITE MDR → Y
Y+Ri → Z
Z → Ri
MDR → Y
Y^Ri → Z
Z → Ri
LD STR
ADD
AND JZ
2009年 7月 27日 8时 36分 121年 月 日 时 分硬布线控制器指令 节拍 微操作控制信号取指 M0 PCOUT,MARIN,READ,ADD,ZIN
M1 MDROUT,IRIN
M2 ZOUT,PCIN
LD M3 ADDROUT,MARIN,READ
M4 MDROUT,RIIN
STR M3 ADDROUT,MARIN,READ
M4 RIOUT,MDRIN,WRITE
ADD M3 ADDROUT,MARIN,READ
M4 MDROUT,YIN
M5 RIOUT,ADD,ZIN
M6 ZOUT,RIIN
AND M3 ADDROUT,MARIN,READ
M4 MDROUT,Yin
M5 RIOUT,AND,ZIN
M6 ZOUT,RIIN
JZ M3 Z=1,ADDROUT,PCIN
M4
2009年 7月 27日 8时 36分 122年 月 日 时 分硬布线控制器
1,PCOUT=M0
2,MARIN=M0+M3 ·JZ
3,READ=M0+M3·( STR+JZ)
4,ADD=M0+M5 ·ADD
5,ZIN=M0+M5( ADD+AND)
6,ZOUT=M2+M6( ADD+AND)
7,PCIN=M2+M6 ·Z ·JZ
8,MDROUT=M1+M4( ADD+AND)
9,MDRIN=M4 ·STR
10,IRIN=M1
11,ADDROUT=M3 ·JZ+M4 ·Z ·JZ
12,RIIN=M4 ·LD+M6( ADD+AND)
13,RIOUT=M4 ·STR+M5( ADD+AND)
14,YIN=M4( ADD+AND)
15,WRITE=M4 ·STR
16,AND=M5 ·AND
2009年 7月 27日 8时 36分 123年 月 日 时 分硬布线控制器
RIin
T4 LD ADD AND T6
2009年 7月 27日 8时 36分 124年 月 日 时 分中国科学院自动化研究所 1999年试题
比较硬布线控制和微程序控制?
【 解答 】
① 硬布线控制与微程序控制器相同之处是根据指令操作码和时序信号,产生各种控制信号,以便正确地建立各种数据通路,
完成取指令和执行指令的控制。
②硬布线控制的优点是由于控制器的速度取决于电路延迟,所以速度较快。
2009年 7月 27日 8时 36分 125年 月 日 时 分
③ 硬布线控制的主要缺点是由于将控制部件看成专门产生固定时序控制信号的逻辑电路,所以把用最少元件和取得最高速度作为设计目标。一旦设计完成,不可能通过其他的修改添加新功能。
④微程序控制的主要优点是同硬布线控制器相比,
具有规整性、灵活性、可维护性等一系列优点。
⑤微程序控制的主要缺点是由于微程序控制器采用了存储程序原理,所以每条指令都要从控存中取一次,因此影响了速度。
2009年 7月 27日 8时 36分 126年 月 日 时 分典型 CPU
M6800CPU
Inter 8088CPU
IBM 370 CPU
2009年 7月 27日 8时 36分 127年 月 日 时 分
5.5 CPU的新技术
2009年 7月 27日 8时 36分 128年 月 日 时 分流水 CPU
并行处理技术
并行性 的两种含义:
同时性 指两个以上事件在同一时刻发生;
并发性 指两个以上事件在同一时间间隔内发生。
– 时间并行
– 空间并行
– 时间并行 +空间并行
2009年 7月 27日 8时 36分 129年 月 日 时 分微程序控制器 ——设计技术微指令的执行方式
– 串行执行方式取 i条 执行 i条 取 i+1条 执行 i+1条微周期 微周期
2009年 7月 27日 8时 36分 130年 月 日 时 分微程序控制器 ——设计技术
– 并行执行方式取 i条 执行 i条取 I+1条 执行 I+1条取 I+2条 执行 I+2条
2009年 7月 27日 8时 36分 131年 月 日 时 分
1.时间并行
时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得
2.空间并行
空间并行指资源重复,在并行性概念中引入空间因素,以,数量取胜,为原则来大幅度提高计算机的处理速度。
3.时间并行 +空间并行
指时间重叠和资源重复的综合应用,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的 。
2009年 7月 27日 8时 36分 132年 月 日 时 分
现代流水计算机的系统组成原理如下图所示。
其中 CPU按流水线方式组织,通常由三部分组成:
指令部件、指令队列、执行部件 。这三个功能部件可以组成一个 3级流水线。
2009年 7月 27日 8时 36分 133年 月 日 时 分流水 CPU的时空图
计算机的流水处理过程非常类似于工厂中的流水装配线。为了实现流水,首先把输入的任务
(或过程 )分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。
下面通过 时空图 来证明这明这个结论。
2009年 7月 27日 8时 36分 134年 月 日 时 分
表示流水 CPU中一个指令周期的任务分解。
表示非流水计算机的时空图
2009年 7月 27日 8时 36分 135年 月 日 时 分
表示流水计算机的时空图。
表示超标量流水计算机的时空图。
2009年 7月 27日 8时 36分 136年 月 日 时 分超标量 (Superscalar)
超标量实际上是并行处理思想在微处理器设计中的应用。
2009年 7月 27日 8时 36分 137年 月 日 时 分超标量和超流水
2009年 7月 27日 8时 36分 138年 月 日 时 分
流水线的分类
指令流水线
算术流水线
处理机流水线
流水线中的主要问题
资源相关
数据相关
控制相关
2009年 7月 27日 8时 36分 139年 月 日 时 分
资源相关
资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。
数据相关
在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。
控制相关
控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,
从而使流水线发生断流。
2009年 7月 27日 8时 36分 140年 月 日 时 分流水线的优化
数据相关
– 写后写
– 读后写
– 写后读
解决数据相关的途径
– 定向
– 载入延迟调度
– 插入空周期
2009年 7月 27日 8时 36分 141年 月 日 时 分
流水线中有三类 数据相关 冲突:写后读相关;
读后写相关;写后写相关。判断以下三组指令各存在哪种类型的数据相关。
(1) I1,ADD R1,R2,R3 ; (R2) + (R3)->R1
I2,SUB R4,R1,R5 ; (R1) - (R5)->R4
(2) I3,STA M(x),R3 ; (R3)->M(x),M(x)是存储器单元
I4,ADD R3,R4,R5 ; (R4)+(R5)->R3
(3) I5,MUL R3,R1,R2 ; (R1)× (R2)->R3
I6,ADD R3,R4,R5 ; (R4) + (R5)->R3
2009年 7月 27日 8时 36分 142年 月 日 时 分
第 (1)组指令中,I1指令运算结果应先写入 R1,
然后在 I2指令中读出 R1内容。由于 I2指令进入流水线,变成 I2指令在 I1指令写入 R1前就读出 R1内容,发生 RAW相关 。
第 (2)组指令中,I3指令应先读出 R3内容并存入存储单元 M(x),然后在 I4指令中将运算结果写入
R3。但由于 I4指令进入流水线,变成 I4指令在 I3
指令读出 R3内容前就写入 R3,发生 WAR相关。
第 (3)组指令中,如果 I6指令的加法运算完成时间早于 I5指令的乘法运算时间,变成指令 I6在指令 I5写入 R3前就写入 R3,导致 R3的内容错误,发生 WAW相关 。
2009年 7月 27日 8时 36分 143年 月 日 时 分
Pentium CPU
Pentium是 Intel公司生产的超标量流水处理器,
早期使用 5V工作电压,后期使用 3.3V工作电压。 CPU的主频是片外主总线时钟频率 (60MHz或 66MHz)的倍频,
有 120,166,200MHz等多种。
CPU内部的主要寄存器宽度为 32位,故认为它是一个 32位微处理器。 但它通向存储器的外部数总线宽度为 64位,每次总线操作可以同时传输 8个字节。以主总线 (存储器总线 )时钟频率 66MHz计算,64位数据总线可使 CPU与主存的数据交换速率达到 528MB/s。
CPU支持多种类型的总线周期,其中一种称猝发模式,在此模式下,可在一个总线周期内读出或与入 256
位 (32字节 )的数据。
2009年 7月 27日 8时 36分 144年 月 日 时 分
CPU外部地址总线宽度是 36位,但一般使用 32位宽,故物理地址空间为 4096MB(4GB)。虚拟地址空间为 64TB,分页模式除支持 4KB页面外 (与 486相同 ),
还支持 2MB和 4MB页面。其中 2MB页面的分页模式必须使用 36位地址总线。
CPU内部分别设臵 指令 cache和数据 cache,外部还可接 L2cache。 CPU采用 U,V两条指令流水线,能在一个时钟周期内发射两条简单的整数指令,也可发射一条浮点指令。
操作控制器采用 硬布线控制和微程序控制 相结合的方式。大多数简单指令用硬布线控制实现,在一个时钟周期内执行完毕。对微程序实现的指令,
也在 2—3个时钟周期内执行完毕。
2009年 7月 27日 8时 36分 145年 月 日 时 分
Pentium具有非固定长度的指令格式,9种寻址方式,191条指令,但是在每个时钟周期又能执行两条指令。因此它具有 CISC和 RlSC两者的特性,不过具有的 CISC特性更多一些,因此被看成为一个 CISC结构的处理器。以 CISC结构实现超标量流水线,并有 BTB方式的转移预测能力。
2009年 7月 27日 8时 36分 146年 月 日 时 分
奔腾 CPU的结构框图
CPU的结构框图请参见教材。
(1)超标量流水线
(2)指令 cache和数据 cache
(3)浮点运算部件
(4)动态转移预测技术
2009年 7月 27日 8时 36分 147年 月 日 时 分
RISC CPU
RISC的三个要素是:
(1)一个有限的简单的指令集;
(2)CPU配备大量的通用寄存器;
(3)强调对指令流水线的优化。
2009年 7月 27日 8时 36分 148年 月 日 时 分
基于三要素的 RISC机器的特征是:
(1)使用等长指令,目前的典型长度是 4个字节。
(2)寻址方式少且简单,一般为 2—3种,最多不超过 4
(3)只有取数指令、存数指令访问存储器。指令中最多出现 RS型指令,绝不出现 SS型指令。
(4)指令集中的指令数目一般少于 100种,指令格式一般少于 4种。
(5)指令功能简单,控制器多采用硬布线方式,以期更快的执行速度。
2009年 7月 27日 8时 36分 149年 月 日 时 分
(6)平均而言,所有指令的执行时间为一个处理
(7)指令格式中用于指派整数寄存器的个数不少于 32个,用于指派浮点数寄存器的个数不少于
16个。
(8)
(9)支持指令流水并强调指令流水的优化使用。
(10)RlSC技术的复杂性于它的编译程序,因此软件系统开发时间比 CISC机器长。
2009年 7月 27日 8时 36分 150年 月 日 时 分典型实例
Pentium II
PowerPC
MIPS R10000
UltraSPARC II
IA-64/Merced
2009年 7月 27日 8时 36分 151年 月 日 时 分
多媒体 CPU
媒体
多媒体技术
1.
2.
3.
2009年 7月 27日 8时 36分 152年 月 日 时 分
MMX技术,
MMX是一种多媒体扩展结构技术,它极大提高了计算机在多媒体和通信应用方式的功能。带有 MMX技术的 CPU特别适合于数据量很大的图形、
图像数据处理,从而使三维图形、图画、运动图像为目标的 MPEG视频、音乐合成、语音识别、虚拟现实等数据处理的速度有了很大提高
MMX技术集成到新一代 Pentium CPU时,主要体现在:
①采用 4种新的数据类型,②使用 8个 64 位宽的 MMX寄存器,③增设 57条新指令。
2009年 7月 27日 8时 36分 153年 月 日 时 分
动态执行技术
动态执行技术 是指通过预测程序流来调整指令的执行,并分析程序的数据流来选择指令执行的最佳顺序。动态执行技术涉及数据相关性及指令调度法、转移预测法、指令的发射顺序与完成顺序等流水技术基本要素。
2009年 7月 27日 8时 36分 154年 月 日 时 分
实现动态执行的关键,取消传统的,取指,
和,执行,两阶段之间指令需要线性排列的限制,而使用一个指令缓冲池以开辟一个较长的指令窗口,以便允许执行单元能在一个较大的范围内调遣和执行已译码过的程序指令流 。
与指令缓冲池相连的三个硬件单元是:
取指 /译码单元,调遣 /执行单元,回收单元习题:
2、参见图 5.15的数据通路。画出存数指令
,STA R1,(R2)”的指令周期流程图,其含义是将寄存器 R1的内容传送至( R2)为地址的主存单元中。标出个为操作信号序列。
IR PC AR DR R0 R1 R2 R3M
A
B
AL
U
IRi
IRo
PCi
PCo
ARi DRi
DRo
R0i
R0o
R3i
R3o
Xi
Yi
A总线
B总线
G
+ -R/W
2009年 7月 27日 8时 36分 156年 月 日 时 分
PC→ AR
M→ DR
DR→ IR
R2→ AR
R1→ DR
DR→ M
~
PC0,G,ARi
DR0,G,IRi
R20,G,ARi
R10,G,DRi
R/W=W
R/W=R
2009年 7月 27日 8时 36分 157年 月 日 时 分
3、参见图 5.15的数据通路,画出取数指令
,LDA (R3),R0”的指令周期流程图,其含义是将( R3)为地址主存单元的内容取至寄存器 R0
中。标出个为操作信号序列。
IR PC AR DR R0 R1 R2 R3M
A
B
AL
U
IRi
IRo
PCi
PCo
ARi DRi
DRo
R0i
R0o
R3i
R3o
Xi
Yi
A总线
B总线
G
+ -R/W
2009年 7月 27日 8时 36分 158年 月 日 时 分
PC→ AR
M→ DR
DR→ IR
R3→ AR
M→ DR
DR→ R0
~
PC0,G,ARi
DR0,G,IRi
R30,G,ARi
DR0,G,R0I
R/W=R
R/W=R
2009年 7月 27日 8时 36分 159年 月 日 时 分
6、假设某机器有 80条指令,平均每条指令由 4
条微指令组成,其中有一条取指微指令是所有指令共用的。已知微指令长度为 32位,请估算控制存储器容量。
解:
( 4+79*3) *32
=7712b=968B
或,80*( 4-1) +1=241,241*32=7712b=968B
2009年 7月 27日 8时 36分 160年 月 日 时 分
8、某机有 8条微指令 I1-I8,每条微指令所包含微命令控制信号如下标所示 。
微指令 A B C D E F G H I J
I1 √ √ √ √ √
I2 √ √ √ √
I3 √ √
I4 √
I5 √ √ √ √
I6 √ √ √
I7 √ √ √
I8 √ √ √
2009年 7月 27日 8时 36分 161年 月 日 时 分
A - j分别对应 10种不同性质的为命令信号,
假设一条微命令的控制字段仅限为 8位,请安排微指令的控制字段格式。
答:因为8位要对应 10种不同的信号,所以要将原来 10种信号中不冲突的信号合在一起,用不同的二进制数来表示不同的状态。
我们发现 E,F,H和 B,I,J相互不冲突,所以分别用二位二进制数可以表示,如下:
00,E,01:F,10:H; 00,B,01,I,10,J。
微指令的控制字段格式:
A C D G * * # #
2009年 7月 27日 8时 36分 162年 月 日 时 分
9、微地址转移逻辑表达式如下:
uA8=P1*IR6*T4
uA7=P1*IR5*T4
uA6=P2*IR6*T4
其中 uA6- uA8为微地址寄存器相应位,
P1和 P2位判别标志,C为进位标志,IR5和
IR6位指令寄存器的相应位,T4位时钟周期信号。说明上述逻辑表达式的含义,画出微地址转移逻辑图。
2009年 7月 27日 8时 36分 163年 月 日 时 分
答:根据题义,可知,
在 P1条件下,当 IR6=1
时,T4脉冲到来时微地址寄存器 uA8位将臵
,1”。在 P1条件下,当
IR5=1时,T4脉冲到来时微地址寄存器 uA7位将臵,1”。在 P2条件下,
当 C=1时,T4脉冲到来时微地址寄存器 uA6位将臵,1”。
T4
IR6
P1
IR5
P2
C
2009年 7月 27日 8时 36分 164年 月 日 时 分
11、已知某机采用微程序控制方式,控存容量为 512*48位。微程序可在整个控存中实现转移的条件有 4个,微指令采用水平型格式,后继微指令地址采用断定方式。请问:
1、微指令的三个字段分别应为多少位?
2、画出对应这种微指令格式的微程序控制器逻辑框图。
2009年 7月 27日 8时 36分 165年 月 日 时 分
答:因为某机采用微程序控制方式,控存容量为 512*48位。可知微指令共 48位,可以对 512
个控存单元寻址,则 29=512,而且微程序可在整个控存中实现转移的条件有 4个,则要实现 4
个转移条件,需要二位二进制数,22=4。
因为微指令采用水平型格式,后继微指令地址采用断定方式。
则,后继微指令地址为 9位,判断字段为 2位,
所以微命令字段为,48-2-9=37位。
2009年 7月 27日 8时 36分 166年 月 日 时 分对应这种微指令格式的微程序控制器逻辑框图如下:
控制存储器地址译码 微地址寄存器 9位
OP
P字段 2位 控制字段 37位地址转移逻辑状态条件指令寄存器微命令信号