第8章教案.docx

上传人:b****6 文档编号:15753769 上传时间:2023-07-07 格式:DOCX 页数:24 大小:22.22KB
下载 相关 举报
第8章教案.docx_第1页
第1页 / 共24页
第8章教案.docx_第2页
第2页 / 共24页
第8章教案.docx_第3页
第3页 / 共24页
第8章教案.docx_第4页
第4页 / 共24页
第8章教案.docx_第5页
第5页 / 共24页
第8章教案.docx_第6页
第6页 / 共24页
第8章教案.docx_第7页
第7页 / 共24页
第8章教案.docx_第8页
第8页 / 共24页
第8章教案.docx_第9页
第9页 / 共24页
第8章教案.docx_第10页
第10页 / 共24页
第8章教案.docx_第11页
第11页 / 共24页
第8章教案.docx_第12页
第12页 / 共24页
第8章教案.docx_第13页
第13页 / 共24页
第8章教案.docx_第14页
第14页 / 共24页
第8章教案.docx_第15页
第15页 / 共24页
第8章教案.docx_第16页
第16页 / 共24页
第8章教案.docx_第17页
第17页 / 共24页
第8章教案.docx_第18页
第18页 / 共24页
第8章教案.docx_第19页
第19页 / 共24页
第8章教案.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第8章教案.docx

《第8章教案.docx》由会员分享,可在线阅读,更多相关《第8章教案.docx(24页珍藏版)》请在冰点文库上搜索。

第8章教案.docx

第8章教案

第八章CPU的结构与功能

8.1CPU的结构

8.1.1CPU的功能

冯•诺依曼机指令的执行过程:

•取指令

•分析指令

•执行指令

8.1.2CPU结构框图

主要包括ALU、寄存器、CU和中断系统。

CPUALU

寄存器

CU

中断

系统

控制总线地址总线

 

数据总线

 

系统总线

图8.1使用总线的CPU

 

取反

中断

系统

寄存器

内部CPU数据总线

ALU

状态标志

移位

CU

控制信号

算术和布尔逻辑

 

图8.2CPU的内部结构

8.1.3CPU的寄存器

1、用户可见寄存器

•通用寄存器——可以存放数据,也可以存放地址(用于寻址)

•数据寄存器——用于存放数据

•地址寄存器——用于存放d地址

•条件代码寄存器——用于存放条件代码(标志),如Z、O、Cy等

2、控制和状态

•MAR——存储器地址寄存器

•MDR——存储器数据寄存器

•PC——程序计数器

•IR——指令寄存器

3、举例(参见图8.3和图8.4)

不同CPU的的寄存器组织结构一般不同。

1)ZilogZ8000

•16个通用寄存器(其中2个作堆栈指针SP),寄存器可作8位运算或32位运算。

•5个与程序状态有关的寄存器:

标志控制器(FCW)、PC段和PC偏移、P.S.A段和P.S.A偏移(辅助PC)。

2)Intel8086

•通用寄存器:

AX、BX、CX、DX

•指针和变址寄存器:

SP、BP、SI、DI

•段寄存器:

CS、DS、SS、ES

•程序状态寄存器:

IP、F

3)MotorolaMC68000

•8个32位数据寄存器:

D0~D7

•9个32位地址寄存器:

A0~A7、A7/,其中A7为用户堆栈指针,A7/为管理堆栈指针。

•程序状态寄存器:

PC(32位)、F(16位)

4)升级的兼容性问题

Z8000和Intel8086均为16位(寄存器也是16位),发展为32位后,一般采取扩展的方式保持向下兼容。

(参见图8.3和图8.4)

8.1.4控制单元CU和中断系统

控制单元CU提供完成机器全部指令操作的微操作命令序列。

形成微操作命令序列有两种方法:

1)组合逻辑设计方法(硬连线逻辑);2)微程序设计方法(存储逻辑)。

中断系统主要用于处理计算机的各种中断事件。

8.2指令周期

8.2.1指令周期的基本概念

指令周期:

CPU每取出并执行一条指令所需要的全部时间。

包括取指周期(取指、分析)和执行周期两部分。

•不同指令的操作功能不同,指令周期也不相同。

如:

JMPX;直接给出转移地址,无需访存

ADDX;给出操作数地址,需访存取数(访存子周期)

MULX;给出操作数地址,需访存取数,同时操作费时

ADD[X];给出操作数间接地址,需间接访存取数(访存2次),

;即出现间址子周期

•实际上,CPU在执行完一条指令后,需要发出中断查询信号,即需附加中断子周期。

完整的指令周期包括取指、间址(含直址)、执行、中断子周期。

取指周期

Yes

No

执行周期

 

有间址?

间址周期

Yes

中断周期

有中断?

No

 

图8.8指令周期流程

在中断周期中,需要保存断点地址,取中断入口地址→PC。

这四个子周期可分别用FE、IND、EX、INT四个标志表示对应的操作,当为“0”时表示无对应的操作;当为“1”时表示有对应的操作;由“1”变为“0”时表示对应的操作结束。

8.2.2指令周期的数据流

1、取指周期的数据流

PC内容→MAR→地址总线→CU发存储器读命令→存储器内容→数据总线→MDR→IR

(→MDR→数据总线→IR——MDR位于存储器内)

2、间址周期的数据流

IND=1:

MDR→Ad(MDR)→MAR→地址总线→CU发存储器读命令→存储器内容→数据总线→MDR

3、执行周期的数据流

不同指令执行的操作不同,可能涉及寄存器间数据传送、存储器读/写操作、ALU操作等。

4、中断周期的数据流

INT=1:

SP内容→MAR→地址总线→PC内容→MDR→数据总线→CU发存储器写命令→存储器写操作;

此外,还应获取中断向量,在获取中断程序入口地址→PC。

8.3指令流水

提高机器处理能力的途径:

1)提高期间的性能

包括速度、集成度、可靠性、价格等

2)改进系统的结构,开发系统的并行性

•并行性包含同时性和并行性两方面

•同时性指多个事件在同一时刻发生

•并行性指多个事件在同一时间段发生,在时间上存在重叠;

•并行性体现在不同的等级上:

作业级或程序级、任务级或进程级、指令间级和指令内部级。

作业级或程序级、任务级或进程级称为粗粒度级(过程级)并行性,一般在多个处理机上分别运行多个进程。

指令间级和指令内部级称为细粒度级(指令级)并行性,指在处理机的操作级和指令级的并行性,而指令流水是一项重要的技术。

8.3.1指令流水原理

指令流水类似于工厂的装配线,即不同的产品在装配线上的不同阶段同时装配,多个产品在装配时间上具有重叠性。

完整执行一条指令可以分为多个阶段,程序的执行是一个周而复始的重复过程。

取指令3

执行指令3

取指令2

执行指令2

执行指令1

取指令1

图8.13指令的串行执行

实际上,在取指令时,执行部件是空闲的,在执行指令时,取指令部件基本上是空闲的。

可以考虑在执行部件执行指令的同时取下一条指令,即两条指令的执行过程在时间上有重叠(即指令流水)。

取指令4

执行指令4

取指令1

执行指令1

取指令2

执行指令2

取指令3

执行指令3

 

图8.14指令的二级流水

•指令二级流水可以大大提高CPU的处理速度,但并不是成倍增加。

1)指令的执行时间一般大于取指时间;

2)当遇到转移指令时,必须等到本指令执行结束后才能知道下一条指令的地址。

 

•为进一步提高处理速度,将处理过程分解为以下的几个阶段:

①取指(FI)

②指令译码(DI)

③计算操作数地址(CO)

④取操作数(FO)

⑤执行指令(EI)

⑥写操作数(WO)

t

假设上述六个阶段的操作时间是相同的,则可得到下图的指令六级流水时序:

指令1

指令2

指令3

指令4

指令5

指令6

指令7

指令8

EI

FO

CO

DI

FI

WO

EI

FO

CO

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

FI

WO

DI

 

WO

EI

FO

CO

DI

FI

图8.15指令六级流水时序

在指令六级流水中,并非每一条指令都包含上述六个阶段。

同时FI、FO和WO均涉及存储器操作,若出现冲突就无法并行处理。

8.3.2响应流水线性能的因素

1、访存冲突

避免方法:

⑴设置两个存储器系统分别放置指令和数据

⑵采用预取指令技术——设置预指令队列,在执行指令过程中利用存储器空闲时间取下一条指令,只要预指令队列有空,就可以取下一条指令。

2、相关问题

指程序中相近指令之间出现某种关联关系,使得指令流出现停顿。

⑴控制相关

当一条指令需要等到前一条指令(或前几条指令)作出转移方向的决定后才能进入流水线,即产生控制相关。

t

指令1

指令2

指令3

指令4

指令5

指令6

指令7

指令15

指令16

 

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

WO

EI

FO

CO

DI

FI

FI

DI

FI

CO

DI

FI

FO

CO

DI

FI

 

WO

EI

FO

CO

DI

FI

EI

FO

CO

DI

FI

图8.16条件转移堆指令流水操作得影响

⑵数据相关

指几条指令共用了同一个存储单元(或寄存器)的内容时所发生的关联。

可以采取旁路技术部分解决。

数据相关主要有读—写相关、写—读相关和写—写相关。

8.3.3流水线的多发技术

设法在一个时钟周期内,产生多条指令的结果。

1、超标量技术

•在每个时钟周期内可以同时并发多条独立指令,即以并行操作的方式将两条或两条以上的指令编译并执行。

•超标量处理机内部配置有多个功能部件和指令译码电路,以及多个寄存器端口和总线。

•条件:

并发执行的指令不能相关。

2、超流水线技术

超流水线技术是将一些流水线寄存器插入流水线段中,好比将流水线分道。

3、超长指令字技术

••超长指令字处理具备多个处理部件,能同时处理多条指令;

•通过编译器把程序中能并行处理的指令组成一条具有多个操作码字段的超长指令,该指令控制处理机的多个独立工作的功能部件;

•对优化编译器要求很高,对Cache容量要求很大。

 

IFIDEXWR

IFIDEXWR

 

(a)普通流水线(b)超标量流水

IFIDEXWR

IFIDEXWR

 

(c)超流水线(d)超长指令

图8.17四种流水线技术比较

8.3.4流水线结构

1、指令流水线结构

取指令部件

修改指令指针部件

回写结果部件

操作执行部件

取操作数部件

地址形成部件

指令译码部件

 

图8.18指令流水线结构

2、运算流水线结构

锁存器

规格化部件

锁存器

尾数加部件

锁存器

对阶功能部件

 

图8.19浮点数加法运算操作流水线

8.4中断系统

8.4.1概述

1、引起中断的各种因素

⑴人为设置中断

人为在程序中调用中断(软中断)

⑵程序性中断

出现定点溢出、浮点溢出、操作码不能识别、除数0等。

⑶硬件故障

⑷I/O设备

⑸外部事件

如用户通过键盘来中断现行程序的运行。

2、中断系统需要解决的问题

⑴各中断源如何向CPU提出中断请求;

⑵当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求;

⑶CPU在什么条件、什么时候、以什么方式来响应中断;

⑷CPU响应中断后如何保护现场;

⑸CPU响应中断后,如何停止现行程序的执行而转入中断服务程序的入口地址;

⑹中断服务结束后,CPU如何恢复现场,如何返回原程序的间断处;

⑺在中断处理过程中又程序新的中断请求时,CPU该如何处理。

8.4.2中断请求标记和中断判优逻辑

1、中断请求标记

在中断系统中必须设置中断请求标记触发器(简称中断请求触发器,记做INTR),当触发器为“1”时,表示相应的中断源有请求。

n

5

4

3

2

1

内存读写校验错误

打印机输出

光电机输入

非法除法

阶上溢

过热

掉电

 

图8.21中断请求标记寄存器

2、中断判优逻辑

1)硬件排队

••链式排队器

•CPU内部排队器

 

INTP1

&

INTP2

1

1

1

1

&

INTP4

&

INTP3

1

INTR3

再次优先级

中断请求

INTR4

最低先级

中断请求

INTR2

次优先级

中断请求

INTR1

最优先级

中断请求

 

图8.22集中在CPU内部的排队器

2)软件排队

转A的服务

程序入口地址

是否A请求?

转B的服务

程序入口地址

是否B请求?

转C的服务

程序入口地址

是否C请求?

 

图8.23按A>B>C……优先级别的软件排队

8.4.3中断服务程序入口地址的寻找

1、硬件向量法

利用硬件产生中断向量地址,再由向量地址找到中断服务程序入口地址。

主存

……

中断向量

……

向量地址

形成部件

入口地址300

入口地址200

入口地址400

12H

向量地址13H

14H

来自中断

排队器输出

图8.25中断向量地址表

图8.24CPU内的向量地址形成部件

 

由向量地址找到服务程序入口地址有两种方法:

1)在向量地址内存放一条跳转指令(如图5.40);

2)设置向量地址表,向量地址所对应的存储单元的内容为中断服务程序的入口地址。

2、软件查询法

用软件寻找中断服务程序的入口地址,如图8.23所示。

8.4.4中断响应

1、中断响应的条件

•中断允许触发器EINT为“1”(可用指令置“1”或“0”)

•有中断请求

2、响应中断的时间

在指令执行周期结束时刻响应中断

3、中断隐指令

⑴保护程序断点(保存PC的值)

⑵寻址中断服务程序入口

••硬件向量法(中断响应周期中,CPU获取中断地址,然后送PC)

•软件查询法

⑶关中断(进入中断程序后防止新中断的干扰)

PC

向量地址

形成部件

&

Q

INT

SR

Q

EINT

SR

1

≥1

排队器

 

图8.27硬件关中断示意图

8.4.5保护现场和恢复现场

⑴保护程序断点(硬件自动完成)

⑵保护CPU内部的寄存器(用户编程实现)

8.4.6中断屏蔽技术

1、多重中断的概念

•若CPU在执行某个中断服务程序时,对任何新的中断请求均不响应,必须等到当前中断服务程序执行结束后才响应,称为单重中断。

•若CPU在执行某个中断服务程序过程中,CPU又响应另一个新的中断请求,使得CPU暂时中断正在执行的中断服务程序,转去执行新的中断服务程序,称为多重中断。

m

m+1

k

k+1

l

l+1

 

第三次中断

第一次中断

第二次中断

 

2、实现多重中断的条件

1)在中断服务程序中提前设置“开中断”指令(保护现场后)

2)优先级别高的中断有权中断优先级别低的中断

 

3、屏蔽技术

中断屏蔽指用户通过指令禁止和开放某个或某几个中断的技术。

1)屏蔽触发器与屏蔽字

当中断屏蔽触发器MASKi=1时,即使对应的中断源的INTRi有效,该中断请求将被屏蔽掉,如图8.30所示。

 

&

INTP4

1

&

INTP3

1

&

INTP2

1

1

INTP1

1

INTR1

INTR1

MASK1

INTR2

INTR2

MASK2

MASK2

 

MASK1

图8.30具有屏蔽功能的排队器

每一个中断请求触发器均有与之对应的中断屏蔽触发器。

所有中断屏蔽触发器组合起来构成一个中断屏蔽寄存器。

中断屏蔽寄存器的内容称为中断屏蔽字。

中断屏蔽字与中断源的优先级别有一一对应的关系。

表8.1中断优先级与中断屏蔽字的关系

优先级

屏蔽字

1

2

3

15

16

111111*********1

0111111111111111

0011111111111111

0000000000000011

0000000000000001

 

2)屏蔽技术可以改变中断优先级别

例如,将屏蔽字设为0000101111111111,则中断1、2、3、4、6被屏蔽,若中断5和6同时产生请求,则中断6得到CPU响应。

若中断6响应后,将屏蔽字改为0000001111111111,则中断5得到CPU响应。

3)屏蔽技术的其他响应

可以在某个时间段内,单独禁止CPU对某个中断请求的响应。

4)多重中断的断点保护

一般来讲,应使用堆栈来对多重中断断点的保护。

SP

(SP)

m+1

l+1

k+1

l

l+1

m

m+1

k

k+1

第三次中断

第二次中断

第一次中断

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2