指令的执行过程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五条指令(只有一个字节)
第六条指令
指令及程序的执行过程
计算机执行程序的过程可归纳如下: (1) 控制器把PC中的指令地址送往存储器地址寄存器 MAR,并发出读命令“M读”。存储器按给定的地址读 出指令,经由存储器数据寄存器MDR送往控制器,保 存在指令寄存器IR中。
(2) 指令译码器ID对指令寄存器IR中的指令进行译码, 分析指令的操作性质,并由控制电路向存储器、运算 器等有关部件发出指令所需要的微命令。
(3) 取指令“STORE M3, R1”并执行
① 取指令“STORE M3, R1”并形成下一条指令的地址: 操作过程同(1)中的①。 ② 执行指令“STORE M3, R1” : (i) 控制器发“IROUT”和“MARIN”信号,使IR中指令的地址段(即 M3)→MAR; (ii) 控制器发“R1OUT”和“MDRIN”信号,使R1→MDR; (iii) 控制器发“M写”信号,使MDR→存储器M3中,通过DBUS。
(2) 取指令“ADD R1,M2”并执行
① 取指令“ADD R1,M2”并形成下一条指令的地址: 操作过程同(1)中的①。 ② 执行指令“ADD R1, M2”: (i) 控制器发“IROUT”和“MARIN”信号,使IR中指令的地址段 (即M2)→MAR; (ii) 控制器发“M读”信号,使存储器M2的内容(数据)→MDR, 通过DBUS; (iii) 控制器发“MDROUT”和“YIN”信号,使MDR→Y(即ALU的A 端); (iv) 控制器发“R1OUT”,使R1→内部总线(即ALU的B端); (v) 控制器发“add”信号,使A+B→Z; (vi) 控制器发“ZOUT”和“R1IN”信号,使Z→R1。
00001100 00100010 00000000 00001011 00000101 00011011 00000110 00101011 00000111 00110000 00010001 ………….. …………..
M1 M2 M3 “LOAD R1, M1”的第一个字节 “LOAD R1, M1”的第二个字节 “ADD R1, M2”的第一个字节 “ADD R1, M2”的第二个字节 “STORE M3, R1”的第一个字节 “STORE M3, R1”的第二个字节 “JMP “JMP L”的第一个字节 L”的第二个字节
② 执行指令“LOAD R1,M1”: (i) 控制器发“IROUT”和“MARIN”信号,使IR中 指令的地址段(即M1)→MAR; (ii) 控制器发“M读”信号,使存储器M1的内 容(数据)→MDR,通过DBUS; (iii) 控制器发“MDROUT”和“R1IN”信号,使 MDR→R1。
汇编时,假设存储单元的地址M1、M2、M3分别为5、6、7,其内容 分别为12、34、0;地址L为17;R1寄存器的编号为1011; 四条指令LOAD、ADD、STORE、JMP的操作码分别为0000、0001、 0010、0011。 每条机器指令的第2个字节都是存储单元地址,第一个字节左边4 位是操作码,右边4位是寄存器号或0000。
汇编语言程序 机器语言程序 LOAD R1, M1 00001011 00000101 ADD R1, M2 00011011 00000110 STORE M3, R1 00101011 00000111 JMP L 00110000 00010001
程序的功能
将M1的内容送入R1 将R1的内容加上M2的内容再送回R1 将R1的内容送入M3中 转向L处继续执行那里的指令
(5) 一条指令执行完毕后,控制器就要接着执行下一条指 令。 为了把下一条指令从存储器中取出,通常控制器把PC 的内容加上一个数值,形成下一条指令的地址,但在 遇到“转移”指令时,控制器则把“转移地址”送入 PC。
控制器不断重复上述过程的(1)到(5),每重复一次, 就执行了一条指令,直到整个程序执行完毕。
CPU的模型
控制信号 ALU CU
PSW R
AC
ID
+1
PC MDR MAR
主 存 I/O
…
IR
CPU
计算机的工作过程
假设在某计算机的指令系统中设计有如下的几条指令: (1) LOAD R1, M1 (2) STORE M3, R1 (3) ADD R1, M2 (4) JMP L
(1)是传送类指令,其含义是将M1中的内容装入R1。 (2)也是传送类指令,其含义是将R1的内容存入M3中。 (3)是运算类指令,其含义是将R1的内容与M2中的内容相加后存入 R1。 (4)是转移类指令,其含义是无条件转向L处。 如果要求将M1的内容与M2的内容相加后存入M3(可表示为 (M1)+(M2)→(M3)),再将程序转向L处的指令继续执行,则可用 上面给出的各指令编写出如下的程序来实现:
Fra Baidu bibliotek
(3) 当需要由存储器向运算器提供数据时,控制器根据指 令的地址部分,形成数据所在的存储单元地址,并送 往存储器地址寄存器MAR,然后向存储器发出读命令 “M读”,从存储器中读出的数据经由存储器数据寄存 器MDR送往运算器。
(4) 当需要由运算器向存储器写入数据时,控制器根据指
令的地址部分,形成数据所在的存储单元地址,并送 往存储器地址寄存器MAR,再将欲写的数据存入存储 器数据寄存器MDR,最后向存储器发出写命令“M 写”,MDR中的数据即被写入由MAR指示地址的存储 单元中。
I/O I/O
IS
存储器 LOAD ADD JMP L R1, M1 R1, M2 L
控制 信号
控制电路
IR
指令译码
STORE M3, R1
ABUS DBUS
PC MAR MDR R0 内 部 总
线
Rn-1 M1 M2 M3 a b c F 图 5.8 A ALU Z B Y
单总线CPU的计算机的基本结构(模型机)
① 取指令“LOAD R1, M1”并形成下一条指令的地址:
(i) 控制器发“PCOUT”和“MARIN”信号,使PC→MAR; (ii) 控制器发“M读”信号,使存储器的内容(指 令)→MDR,通过DBUS; (iii) 控制器发“PC加”信号,使PC+n→PC,其中n为该指 令占用的地址数; (iv) 控制器发“MDROUT”和“IRIN”信号,使MDR→IR。
指令流:机器执行的指令序列 数据流:由指令流调用的数据序列(包括输入数 据和中间结果) 多倍性:在系统性能的瓶颈部件上处于同一执行 阶段的指令或数据的最大个数。
1.单指令流单数据流 SISD
典型的SISD机器:传统的顺序计算机 SISD机器结构:
CU:控制部件 PU:处理部件 MU:存储部件 IS:指令流 IS DS:数据流
下面,以前面给出的、由4条指令组成的程序段为例, 结合图5.8中所示的计算机结构,简述指令及程序的执 行过程。 LOAD R1, M1 ADD R1, M2 STORE M3, R1 JMP L 假设程序及数据已经装入了存储器,第一条指令的地 址已经装入了PC寄存器。
(1) 取指令“LOAD R1, M1”并执行
DS
CU1
… … CUn
IS
PE1
… IS
PEn DS
MM1
…
MMn
I/O
……
MM主存贮模块,SM共享存储器
4.多指令流多数据流 MIMD
多机系统----多个处理器系统或多计算机系统每个处 理机可以独立执行指令和处理数据一般并行计算机大 IS SM 多采用这种结构。 IS 共享存储器为:紧耦 PE1 CU1 MM1 合 … … 分布存储器为:松耦 … 合 IS PEn CUn MMn
上述机器语言程序可被计算机识别,但不能被执行, 还需要为其分配存储器地址。
例如,上述机器语言程序可能按如下方式分配存储器 地址:
00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111 00010000 00010001
I/O
CU
IS
DS MU
PU
2.单指令流多数据流 SIMD 单指令流一多数据流 SIMD 超级计算机
单控制器、多处理单元和多对数据进行处理
IS 从主 机 加 载程序
CU
IS
PU1
DS
MM1
PUn
DS MMn
PU:处理单元
MM:本地存储器(分布存储器)
3. 多指令流单数据流 多指令流一单数据流 MISD MISD 多个处理器,对同一数据流进行处理
(4) 取指令JMP L并执行
① 取指令JMP L并形成下一条指令的地址: 操作过程同(1)中的①。 ② 执行指令JMP L: 控制器发“IROUT”和“PCIN”信号,使IR中指令的地址(即L)→PC。
指令的几种执行方式
指令流水线基本思想
Flynn分类法
1966 Flynn分类法: 根据指令流和数据流的多 倍性对计算机系统结构进行分类, 基本思想:是计算机工作过程是指令流的执行和 数据流的处理。