【计算机组成原理】一条指令的执行 您所在的位置:网站首页 指令的执行阶段需要多少个时钟周期 【计算机组成原理】一条指令的执行

【计算机组成原理】一条指令的执行

2023-03-11 23:29| 来源: 网络整理| 查看: 265

CPU的功能和基本结构

CPU由运算器和控制器组成,功能:指令控制、操作控制、时间控制、数据加工、中断处理

哪些硬件对程序员透明?

可见:通用寄存器、ACC、专用寄存器(PSW、PC)、基址寄存器

不可见:MAR、MDR、IR、暂存寄存器、微指令寄存器

控制器的三个主要部件:指令寄存器、程序计数器、操作控制器

指令执行过程

指令周期 > 机器周期 > 时钟周期

周期不一定存在,如间址和中断,要满足条件(但存在就一定有内存存取操作)

完整的指令周期:取值(FE) ⇨ 间址(IND) ⇨ 执行(EX) ⇨ 中断(INT)。

无条件转移指令JMP,在执行时不需要访存,指令周期只包含取指阶段和执行阶段

具体过程(注:这是经典模型,但一般不考这个)

取指周期

任务:根据PC中的内容从主存中取出指令代码并存放在IR中;

是控制器固有的功能,不需要在操作码控制下自动完成;

指令字长=存储字长时,取指周期=机器周期

间址周期

任务:取操作数有效地址(当有效地址在寄存器内时不需要)

执行周期

任务:取操作数

步骤:

①根据地址去内存取出操作数;②运算,并放到目标地址的位置;

中断周期

任务:处理中断请求;

先修改栈顶指针,后存入数据;

检查中断信号,有中断才有这个周期(本质:断点存入某个存储单元)

指令执行方案

单指令周期

CPI = 1,不能用单总线结构;

指令周期取决于执行时间最长的指令的执行时间;

指令间串行执行;

多指令周期:串行执行,需要更多复杂对的硬件结构;

流水线方案:并行执行;

数据通路的功能和基本结构

(CPU内部)

内部总线:同一部件,如CPU内部连接各寄存器和运算部件之间的总线;

外部总线:同一台计算机系统的各部件。

功能:控制信息的流动(通过MUX和三态门)

数据通路的基本结构:

CPU内部单总线结构

一个时钟仅可传送一个数据

CPU内部三总线结构

一个时钟能传送多个数据

此时ALU可以不用暂存寄存器

专用数据通路方式

避免使用共享的总线,性能较高,但硬件量大

汇编(格式:OP 地址,地址)

解释:(地址)OP(地址)→地址(也就是说,→前面是数据类型,后面是地址类型)

结果存到目的操作数位置

控制器的功能和工作原理 硬布线控制器-RISC

又称“组合逻辑控制器”(纯硬件)

输入

指令信息:指令经过译码产生

机器周期信号和节拍信号:时序系统产生

标志:执行单元的反馈信号

输出:一个机器周期内完成若干相容的微操作

控制方式

同步控制方式:统一的时钟信号

异步控制方式:没有统一的时钟信号,靠应答联络;快,但复杂

联合控制方式:大部分同步,小部分异步

设计步骤

①分析操作序列,列出微操作命令的操作时间表

②进行微操作信息综合:选择CPU控制方式:定长?节拍数?安排时序:哪个操作在哪个节拍

③画出微操作命令的逻辑图:电路设计(先写出最简表达式)

特点:快,但复杂,改动困难

微程序控制器-CISC

基本概念

指令 = 微程序 > 微指令 > 微操作 = 微命令

微周期:微指令的周期;一个微程序的周期对应一个指令周期

组成

微地址形成部件:由OP操作码形成初始微地址

顺序逻辑:根据CMDR下地址、标志和CLK生成微地址

微地址寄存器:CMAR / μPC

控制存储器CM

存放微程序,在CPU内部,由ROM实现

n条指令,至少n+1个微程序(公共的取指),可能还有公用的中断、间址(按题目描述)

除执行周期外的微指令序列通常公用

微指令寄存器:CMDR / μIR

微指令

格式

水平型:一条微指令定义多个相容的微命令(微指令长位数多,微程序短,快),充分利用并行

垂直型:一条微指令定义一个相容的微命令(微指令长位数少,微程序长,慢)

混合型:都有

编码方式/控制方式(水平型)

直接编码方式:每位0/1对应一个微命令,执行效率最高

字段直接编码方式:互斥性微命令放同一字段中;每一段要留出一个状态表示无命令

字段间接编码方式/隐式编码:用别的微命令来解释(两层译码)

地址形成方式

由下地址指出:断定方式

由操作码形成

增量计数器法:CMAR + 1 -> CMAR

分支转移:判别条件+转移地址

通过测试网络:顺序逻辑部件

设计步骤

分析微操作序列

写出对应微操作及节拍安排,注意每个微指令后特有的地址形成节拍

Ad(CMDR) -> CMAR

OP(IR) -> 微地址形成部件 0 -> CMAR

确定微指令格式:操作码、下地址

编写微指令码点

其他

动态微程序设计:用EPROM

毫微程序设计:套娃

微程序控制器

硬布线控制器

工作原理

以微程序的形式存储在存储器

由组合逻辑电路即时产生

执行速度

规则性

较规整

繁琐,不规整

应用场合

CISC

RISC

易扩充性

易扩充修改

困难

异常和中断机制 基本概念

实现多道程序、分时操作;

实现人机交互;

其具体处理过程由操作系统(和驱动程序)完成;

分类 异常/内中断 程序性中断/软中断 故障 Fault

非法操作码、除0:终止进程

缺页、缺段:处理后回到断点继续执行

自陷/访管指令 Trap

人为预先安排的一种“异常”事件,例:断点调试

要求操作系统服务时,如要求输入时

处理后返回到 下一条/[转移目标](自陷指令为转移指令时) 继续执行

自陷发生后CPU将进入操作系统内核程序执行;

硬故障中断 终止 Abort

随机发生,不可恢复的致命错误造成的结果

断电、线路故障、存储器检验错、控制器出错

重启系统(非Abort引发的优先级很低)

中断/外中断

分为可屏蔽中断和不可屏蔽中断

I/O中断

外设请求CPU资源

注意:外设默认不等CPU处理完中断,连续工作

外部信号中断

如Esc键

时钟中断

修改与时间有关的所有信息

检测与响应 异常

由CPU自己完成,不需要别人的信息;

由特定指令在执行过程中产生;

异常事件检测由CPU在执行每一条指令的过程中进行;

中断

CPU需要通过总线获取中断源信息;

不和任何指令相关联,也不阻止任何指令的完成;

异常和中断响应过程

关中断

保存断点和程序状态

识别异常和中断并转到相应的处理程序

异常:大多采用软件识别

软件识别:CPU设置一个异常状态寄存器

硬件:软件/硬件

硬件识别(向量中断)

异常或中断处理程序的首地址:中断向量

指令流水线

同一时刻有多条指令在CPU的不同功能部件中并发执行,大大提高了功能部件的并行性和程序的执行效率。

基本概念

可从两方面提高处理机的并行性

时间:流水线技术

空间:超标量处理机

指令集:RISC

表示方式

时空图:x时间 y阶段

流程图:x时间单元 y指令——分析影响因素(冲突)

装入时间和排出时间:第一个(最后一个)任务进入到输出的时间

分类

部件功能级(运算)、处理机级、处理机间

单功能(专门功能)、多功能

线性、非线性(有反馈)

性能指标

吞吐率

加速比:T(不用流水线) / T(用)

效率(设备利用率):时空图上的有效面积/总面积

基本实现

五段式指令流水线(补充,重要)

特点

定长机器周期:取最长的那个

不用的阶段也消耗时间

过程

取指IF (Fetch):指令Cache

译码/读寄存器ID (Decode):寄存器,从寄存器堆中取操作数

执行/计算地址EX (Execute):ALU

访存M (Memory):数据Cache

写回WB (Writeback):寄存器,将指令写回寄存器堆中

指令类型

运算类指令:M阶段空段

Load(访存指令)

ID阶段仅取出基址寄存器的值和偏移量

M阶段取出目的数到锁存器

WB阶段取出的数写回寄存器

Store(访存指令)

ID阶段取出所有3个需要的数据

M阶段写回

WB阶段空段

条件转移:M段修改PC,WB空段——IF、ID、EX、M、WB

无条件转移:EX修改PC,M和WB空段——IF、ID、EX

常用相对寻址

(PC) + 指令字长 + (偏移量 * 指令字长) -> PCPC修改越早,越不容易控制冲突

结构冒险、数据冒险和控制冒险的处理 结构冒险(资源冲突)

原因:有硬件资源竞争造成

解决——数据Cache、指令Cache分离

数据冲突

原因:同步,多条指令重叠处理

前面的指令:写寄存器——WB,第五个段

后面的指令:读(同一个)寄存器——ID,第二个段;

分析思路:

一条一条指令从前往后分析,如果一条指令写了某个寄存器,则观察与之相邻的3条指令中,有没有哪条指令需要读同一个寄存器

当后面的指令和前面的指令中间,还有其他三条指令时,才不会发生数据冒险;

分类

写后读RAW:按序执行唯一可能遇到的

读后写WAR

写后写WAW

解决

硬件阻塞(stall)、软件插入”NOP“(空指令)

数据旁路技术:设置专用通路

编译优化:调整指令顺序

控制冲突

原因:转移(无条件转移call、ret,条件转移)、调用、返回会修改PC,造成断流

无条件转移

EX段修改PC;

解决方法:停两个周期,再取下一条指令(IF段),就不会发送控制冒险

条件转移

会先判断条件是否满足,在M段修改PC;在M段才可以确定是否需要转移;

解决方法:停三个周期,再取下一条指令(IF段),就不会发送控制冒险;

若未发生转移(不满足条件),则不会发生数据冒险;

解决

分支预测

静态预测:先默认默认yes,不是再退回

动态预测:根据历史情况

预取两个方向的目标指令

提前形成条件码

提高猜准率(对”分支预测“的优化)

考试:画流程图,分析阻塞原因和结果

数据相关 (RAW):后者的ID要等前者WB完

资源冲突(锁存器):前面被阻塞,后面的ID要等前面的ID结束才能开始

高级流水线技术 超标量(动态多发射)流水线技术

原理

同时启动多条指令(多个功能部件),不能调整指令的执行顺序

任务:指令打包(推测+回退)和冒险处理

组成:指令预取、分派器、多个功能单元

特点

利用编译优化挖掘并行性

空间换时间

CPI = 1

超长指令字(静态多发射)技术

由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令合为一条(可达几百位)

超流水线技术

原理:增加流水线级数(对应地缩短时钟周期),提高流水线主频

特点:CPI = 1,流水段越多,时钟周期越短,指令吞吐率越高

动态流水线

把后面的挪到前面的空位

多种运算同时进行,模块利用率高

多处理器的基本概念 SISD、SIMD、MIMD、向量处理器的基本概念 单指令流单数据流结构——SISD

特点:并发不能并行(就是普通的)

硬件:一处理器、一主存

不存在MISD(多指令处理单数据)

单指令流多数据流结构——SIMD

特点:

多条数据做同一个操作(如显卡)

数据级并行技术

硬件:

CU、主存仅一个,但执行单元多个

各执行单元有各自的寄存器组、局部寄存器、MAR

多指令流多数据流结构——MIMD

特点

多指令多数据(如Intel i5多核处理器)

线程级并行、甚至以上

分类

多处理器系统(共享内存多处理器、多核处理器)

特点:可以用load访存同一个主存,通过主存交流

硬件:共享物理空间(同个主存)

多计算机系统

特点:只能通过”消息传递“交流

硬件:不共享物理空间(必须多个主存)

向量处理器(SIMD的变体)

特点

数据对象是向量

删除并行计算、浮点数处理,常用于超算

硬件

多处理器、多向量寄存器

主存

主存采用”多端口同时读的“交叉多模块存储器

大容量、集中式

硬件多线程的基本概念 实现

配备多个通用寄存器和PC, 线程切换时激活其中一个(省略了与存储器数据交换环节,大大减少了开销)

线程所需资源不冲突时,可以并行执行

细粒度多线程

特点

多线程间指令不相关,可以乱序并发

每个时钟周期都切换线程

粗粒度多线程

特点

引入流水线,线程切换开销大(清空整条流水线)

仅大开销阻塞时切换

同时多线程

特点

指令发射槽并行

指令级并行 + 线程级并行(注:另俩仅有指令级并行)

多核处理器(Multi-core)的基本概念

一个CPU有多个运算核心(处理器)

可以有各自Cache,也可以共享Cache

共享内存多处理器(SMP)的基M本概念

和前者同一个东西,都是MIMD

具有共享的单一物理地址空间的多处理器

所有核共享主存和LLC(最低一级Cache)

统一存储访问多处理器——UMA

每个处理器对所有存储单元的访问事件大致相同

非统一存储访问多处理器——NUMA

某些访存请求要比其他快

NC-NUMA:不带高速缓冲

CC-NUMA:带有一致性高速缓冲



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有