第四章 第5讲 指令周期及指令执行步骤
指令的执行过程

I/O
CU
IS
DS MU
PU
2.单指令流多数据流 SIMD 单指令流一多数据流 SIMD 超级计算机
单控制器、多处理单元和多对数据进行处理
IS 从主 机 加 载程序
CU
IS
PU1
DS
MM1
PUn
DS MMn
PU:处理单元
MM:本地存储器(分布存储器)
3. 多指令流单数据流 多指令流一单数据流 MISD MISD 多个处理器,对同一数据流进行处理
存储器 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的计算机的基本结构(模型机)
下面,以前面给出的、由4条指令组成的程序段为例, 结合图5.8中所示的计算机结构,简述指令及程序的执 行过程。 LOAD R1, M1 ADD R1, M2 STORE M3, R1 JMP L 假设程序及数据已经装入了存储器,第一条指令的地 址已经装入了PC寄存器。
(1) 取指令“LOAD R1, M1”并执行
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”的第二个字节
简述一条指令的执行过程

简述一条指令的执行过程
1.取指令阶段:CPU从内存中读取下一条指令,将其存储在指令寄存器中。
2. 译码阶段:CPU 解析指令,将其转换为可执行的操作,并确定需要访问的寄存器或内存位置。
3. 执行阶段:CPU 执行指令,并将结果存储到寄存器或内存中。
4. 访存阶段:如果指令需要访问内存,CPU 将计算内存地址,并从内存中读取或写入数据。
5. 写回阶段:如果指令需要写回寄存器,CPU 将结果存储到指定的寄存器中。
总的来说,一条指令的执行过程就是从内存中取出指令、解析指令、执行指令、访问内存和写回结果这五个步骤的循环,直到程序结束。
- 1 -。
指令执行过程

结束,判中断
返回
子程序返回指令 RET
读取指令 ① ② ③ ④ AR ← PC 读主存,IR ← 读出内容 PC ← PC + 1 由操作码找微地址,读控存 AR ← SP SP ← SP + 1 读主存, PC←读出内容
执行指令
形 成 下 条 指 令 地 址
⑤ 结束,判中断
�
形 成 下 一 条 指 令 地 址
返回
四,教学计算机的微程序控制器
信息流图示部分
典型指令的执行过程举例: 800 0401 ADD r0, r1 801 2090 MOV r9, r0 802 3409 MOV [807] ,r9(写内存) 0807 804 A480 IN 80 (读串行口) 805 9CFB JR C, 800 806 AC00 RET
返回
主振
脉冲
ALU 4275 1234 6688
+ 0 801 802
PC AR
地址寄存器 801
控制 存储器
微指令寄存器 .
微程序 定序器 映射 操作数 地址
乘 商 寄 存 器
寄存器组
R9 4275
指令寄存器 2090 操作码
IR
数据总线 地址总线 800
0 412 2090 2090 3409 0807 A480 98FB AC00 78BD
返回
(地址 807 存在指令的第二个字中)
执行指令
(注)
AR ← PC 读主存,IR ← 读出内容 形 PC ← PC + 1 成 由操作码找微地址,读控存 下 条 AR ← PC , 指 令 PC ← PC+ 1 读主存,AR ← 读出内容 地址 写主存, 总线 ← ALU , ALU ← 0 , ALU ← R9 ,+
指令周期机器周期等各种周期介绍

时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。
由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。
显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。
8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。
例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。
完成一个基本操作所需要的时间称为机器周期。
一般情况下,一个机器周期由若干个S周期(状态周期)组成。
8051系列单片机的一个机器周期同6个S周期(状态周期)组成。
前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。
例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
指令不同,所需的机器周期也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
总线周期:由于存贮器和I/O端口是挂接在总线上的,CPU对存贮器和I/O接口的访问,是通过总线实现的。
加深对单片机的理解,单片机的指令执行过程详解

为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发!单片机执行程序的过程,实际上就是执行我们所编制程序的过程。
即逐条指令的过程。
计算机每执行一条指令都可分为三个阶段进行。
即取指令-----分析指令-----执行指令。
取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。
分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。
如指令要求操作数,则寻找操作数地址。
计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。
一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。
但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中,因而一开机即可执行指令。
下面我们将举个实例来说明指令的执行过程。
转自21ic基础知识开机时,程序计算器PC变为0000H。
然后单片机在时序电路作用下自动进入执行程序过程。
执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。
例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,0000H单元中已存放74H,0001H单元中已存放E0H。
当单片机开始运行时,首先是进入取指阶段,其次序是:1 程序计数器的内容(这时是0000H)送到地址寄存器;2 程序计数器的内容自动加1(变为0001H);3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;4 CPU使读控制线有效;5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。
至此,取指阶段完成,进入译码分析和执行指令阶段。
指令的执行过程

DS
CU1
… … CUnΒιβλιοθήκη ISPE1… IS
PEn DS
MM1
…
MMn
I/O
……
MM主存贮模块,SM共享存储器
4.多指令流多数据流 MIMD
多机系统----多个处理器系统或多计算机系统每个处 理机可以独立执行指令和处理数据一般并行计算机大 IS SM 多采用这种结构。 IS 共享存储器为:紧耦 PE1 CU1 MM1 合 … … 分布存储器为:松耦 … 合 IS PEn CUn MMn
(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。
② 执行指令“LOAD R1,M1”: (i) 控制器发“IROUT”和“MARIN”信号,使IR中 指令的地址段(即M1)→MAR; (ii) 控制器发“M读”信号,使存储器M1的内 容(数据)→MDR,通过DBUS; (iii) 控制器发“MDROUT”和“R1IN”信号,使 MDR→R1。
第五条指令(只有一个字节)
第六条指令
指令及程序的执行过程
计算机执行程序的过程可归纳如下: (1) 控制器把PC中的指令地址送往存储器地址寄存器 MAR,并发出读命令“M读”。存储器按给定的地址读 出指令,经由存储器数据寄存器MDR送往控制器,保 存在指令寄存器IR中。
指令的执行过程

(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。
指令流:机器执行的指令序列 数据流:由指令流调用的数据序列(包括输入数 据和中间结果) 多倍性:在系统性能的瓶颈部件上处于同一执行 阶段的指令或数据的最大个数。
1.单指令流单数据流 SISD
典型的SISD机器:传统的顺序计算机 SISD机器结构:
CU:控制部件 PU:处理部件 MU:存储部件 IS:指令流 IS DS:数据流
I/O I/O
IS
0000010100001100m1000001100010001000000111000000000000100000001011000010010000010100001010000110110000101100000110000011000010101100001101000001110000111000110000000011110001000100010000m2m3loadr1m1的第一个字节loadr1m1的第二个字节addr1m2的第一个字节addr1m2的第二个字节storem3r1的第一个字节storem3r1的第二个字节jmpl的第一个字节jmpl的第二个字节第五条指令只有一个字节第六条指令指令及程序的执行过程控制器把pc中的指令地址送往存储器地址寄存器mar并发出读命令m读
指令周期的四个阶段详解

指令周期的四个阶段详解
指令周期是取出一条指令并执行这条指令的时间。
一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。
指令周期类型有非访内指令的指令周期、取数指令的指令周期、存数指令的指令周期、空操作指令和转移指令的指令周期。
指令不同,所需的机器周期数也不同。
对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。
对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。
从指令的执行速度看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用4个机器周期。
因此在进行编程时,在完成相同工作的情况下,选用占用机器周期少的命令会提高程序的执行速率,尤其是在编写大型程序程序的时候,其效果更加明显。
指令周期的四个阶段非访内指令的指令周期
CLA是一条非访内指令,它需要两个CPU 周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。
1、取指令阶段
(1)程序计数器PC的内容20(八进制)被装入地址寄存器AR;
(2)程序计数器内容加1,变成21,为取下一条指令做好准备;
(3)地址寄存器的内容被放到地址总线上;
(4)所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR;
(5)缓冲寄存器的内容传送到指令寄存器IR;
(6)指令寄存器中的操作码被译码或测试;
(7)CPU识别出是指令CLA,至此,取指令阶段即告结束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3,IN 80
11
�
16:58:19 3
二,各类指令的执行步骤 1,非访内指令 它需要两个CPU周期,在第—个CPU周期,即取指令阶段, CPU完成三件事:(1) 送指令地址并对程序计数器PC加1,以 便为取下一条指令做好准备;(2)从内存取出指令;(3)对指 令操作码进行译码或测试,以便确定进行什么操作. 在第二个CPU周期,即执行指令阶段,CPU根据对指 令操作的译码或测试,进行指令所要求的操作. 例1:加法指令ADD R0,R1 (1)AR PC, PC PC+1; 送指令地址并形成下一条 指令地址. (2)读主存,IR 读出内容; 读取指令到指令寄存器
16:58:19 10Fra bibliotek(1)同步控制方式:在任何情况下,已定的指令在执行时 所需的机器周期数和时钟周期数都固定不变. (2)异步控制方式:每条指令,每个操作控制信号需要多 少时间就占用多少时间. (3)联合控制方式:同步控制和异步控制的结合,有两种 情况.一种情况是,大部分操作序列安排在固定的机器周期中, 对某些时间难以确定的操作则以执行部件的"回答"信号作为 本次操作的结束.另一种情况是,机器周期的节拍脉冲数固定, 但是各条指令周期的机器周期数不固定. 习题:写出如下指令的执行步骤 1,INC R2 2,RET
16:58:19
5
2,直接访内指令 这种指令的指令周期由三个CPU周期组成,第一个是取指令周 期;第二个CPU周期将操作数的地址送往地址寄存器并完成地址 译码,在第三个CPU周期中从内存取出操作数并执行相应的操作. 例1:写内存指令STRR [R9],R2 (1)AR PC PC PC+1 1 AR PC, (2)读主存,IR 读出内容 (3)AR R9+0 ;用两步分别送地址和执行写操作, (4)写主存,总线 R2+0 ;送内存地址到AR中, ;执行写内存操作. 本指令结束,检测中断请求,无中断请求,进入下一条指 令的执行过程. 16:58:19 6
第五讲 指令周期及指令执行步骤
16:58:19
1
复习内容:中央处理器的功能,控制器 的功能,控制器的组成. 本讲主要内容:1,指令周期的基本概念 2,各类指令的执行步骤 要求:了解指令周期的基本概念,训练掌 握各类指令的执行步骤
16:58:19 2
一,指令周期的基本概念 存储器中指令和数据的区分,使用的是指令周期的方法. 指令周期是取出并执行一条指令的时间.由于各种指令的 操作功能不同,有的简单,有的复杂,因此各种指令的指令 周期是不尽相同的. 指令周期常常用若干个CPU周期数来表示,CPU周期也称为 机器周期.通常用内存中读取一个指令字的最短时间来规定 CPU周期. 一个CPU周期时间又包含有若干个时钟周期(通常称为节拍 脉冲或T周期,它是处理操作的最基本单位).
16:58:19 7
PC+1 读出内容 读出内容,AR DB;送地址指示器
(5)读主存 ;取操作数
4,程序控制类指令 由两个指令周期组成,第一个周期取指,第二个周期执行 指令. 例:条件相对转移指令性计划JRC 2000 (1)AR PC, PC (2)读主存,IR PC+1 读出内容
(3)若C=1则PC 指令地址+相对寻址偏移量(在IR的低 位字节),否则本步骤什么操作也不做(即保持PC内容不变, 仍为顺序执行)
16:58:19 4
(3)R0 R0+R1,保存状态信息;执行指令 本指令结束,检测中断请求,无中断请求,进入下一条指令 的执行过程. 例2:传送指令MVRR R2,R0 (1)AR PC, PC PC+1 (2)读主存,IR 读出内容 (3)R2 R0+0;执行指令
本指令结束,检测中断请求,无中断请求,进入下一条指 令的执行过程.
16:58:19
8
三,时序产生器和控制方式 1,时序信号的作用和体制 CPU识别指令和数据的方法:从时间上来说,取指令事 件发生在指令周期的第一个CPU周期中,即发生在"取指令" 阶段,而取数据事件发生在指令周期的后面几个CPU周期中, 即发生在"执行指令"阶段.从空间上来说,如果取出的代 码是指令,那么一定送往指令寄存器,如果取出的代码是数 据,那么一定送往运算器.这个方法体现了时序控制的重要 性. 硬布线控制器中,时序信号往往采用主状态周期-节拍 电位-节拍脉冲三级体制.—个节拍电位表示一个CPU周期 的时间,它表示了一个较大的时间单位;在一个节拍电位中 又包含若干个节拍脉冲,以表示较小的时间单位;而主状态 16:58:19 周期可包含若干个节拍电位,所以它是最大的时间单位. 9
在微程序控制器中,时序信号比较简单,一般采用电位-节拍 脉冲二级体制.就是说,它只有一个节拍电位,在节拍电位中 又包含若干个节拍脉冲(时钟周期).节拍电位表示一个CPU 周期的时间,而节拍脉冲把一个CPU周期划分成几个较小的时 间间隔. 2,时序信号产生器 微程序控制器中使用的时序信号产生器由:时钟源,环形 脉冲发生器,节拍脉冲和读写时序译码逻辑,启停控制逻辑等 部分组成. 3,控制方式 形成控制不同操作序列的时序信号的方法,称为控制器的 控制方式.常用的有同步控制,异步控制,联合控制三种方式.
3,间接访内指令 这种指令的指令周期由四个CPU周期组成,第一个是取指 令周期;第二个CPU周期送地址指示器,在第三个CPU周期取出 操作数地址,第四个CPU周期取操作数并执行相应的操作. 例:8086/8088的汇编指令STA I 31 (1)AR PC, PC (2)读主存,IR (3)AR 31 (4)读主存, DB (6)执行指令.