- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.1提高计算机速度的措施;3.1.1 提高频率;3.1.1 空间并行;先行控制技术—补充;2.一次重叠执行方式
如果两个过程的时间相等,则执行n条指令的时间为:T=(1+2n)t
主要优点:
指令的执行时间缩短,
功能部件的利用率明显提高。
主要缺点:
需要增加一些硬件,
控制过程稍复杂。;3.二次重叠执行方式
如果三个过程的时间相等,执行n条指令的时间为:T=(2+n)t
在理想情况下,处理机中同时有三条指令在执行。
处理机的结构要作比较大的改变,需要采用先行控制技术。 ;先行控制方式的原理;
2.解决访存冲突的方法:
(1)采用低位交叉存取方式:
这种方法不能根本解决冲突问题。
读指令、读操作数、写结果。
(2)两个独立的存储器:独立的指令存储器和数据存储器。
如果再规定,执行指令的执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。
在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。;(3)采用先行控制技术
采用先行控制技术的关键是缓冲技术和预处理技术。
缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用以平滑功能部件之间的工作速度。
在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。;先行处理机结构;4.先行指令缓冲栈的组成
作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。
设置两个程序计数器:
先行程序计数器PC1,用来指示取指令,
现行程序计数器PC,记录指令分析器正在分析的指令地址。
5.存在的主要问题:
各类指令“分析”和“执行”的时间相差很大
数据相关
转移或转子程序指令; 先行指令缓冲栈的组成;指令执行时序;采用先行缓冲栈的指令执行过程
先行读数栈,先行操作栈,后行写数栈。
理想情况下,指令执行部件应该一直忙碌。
连续执行n条指令的时间为:;先行缓冲栈;RI型指令,指令中的立即数送先行读数栈,用该先行读数栈的寄存器编号替换指令中的立即数部分,形成RR*指令送先行缓冲栈
转移指令,一般在指令分析器中直接执行。
先行操作栈
处于指令分析??和运算控制器之间
使指令分析器和运算器能够各自独立工作。
采用先进先出方式工作,由指令寄存器堆和控制逻辑组成。;先行读数栈
处于主存储器与运算器之间
平滑运算器与主存储器的工作
每个缓冲寄存器由地址寄存器、操作数寄存器和标志三部分组成。也可以把地址寄存器和操作数寄存器合为一个。
当收到从指令分析器中送来的有效地址时,就向主存申请读操作数。
读出的操作数存放在操作数寄存器中或覆盖掉地址寄存器中的地址。;后行写数栈
每个后行缓冲寄存器由地址寄存器、数据寄存器和标志三部分组成。
指令分析器遇到向主存写结果的指令时,把形成的有效地址送入后行写数栈的地址寄存器中,并用该地址寄存器的编号替换指令的目的地址部分,形成RR*指令送入先行操作栈。
当运算器执行这条RR*型写数指令时,
只要把写到主存的数据送到后行写数栈的数据寄存器中即可。;采用先行控制方式时一个程序的执行情况:;缓冲深度的设计方法;应该满足如下关系:L1 t1=(LI-DI) t2
计算出缓冲深度为:
如果这种指令流的连续长度超过L1,则先行指令缓冲栈失去作用。
(2)先行指令缓冲栈原来为空
输入端指令流入的速度最快,每次取指令的时间最短;设这种指令序列的最大长度为 L2,平均取一条这种指令的时间为 t2’;;输出端指令流出的速度最慢,指令分析器连续分析最难分析的指令;设平均分析一条指令的时间为 t1’。分析的指令条数是L2-DI条。
应该满足如下关系:(L2-DI) t1’= L2t2’
计算出缓冲深度为:
如果这种指令流的连续长度超过L2,先行指令缓冲栈失去缓冲作用。;设计举例
在一般处理机中连续执行短指令的概率大。
例:一个采用先行控制方式的处理机,指令分析器分析一条指令用一个周期,到主存储器中取一条指令装入先行指令缓冲栈平均用4个周期,如果这种指令的平均长度为9,即90%的指令是执行时间短的指令。
解:计算先行指令缓冲栈的缓冲深度为:;先行指令缓冲栈的工作时间关系
第1个周期,取走指令k+1,请求取指令
第4个周期末尾,指令k+8取到先行指令缓冲栈
第8个周期末尾,指令k+9取到先行指令缓冲栈
第9个周期,分析指令k+9,先行指令缓冲栈空
第10个周期,指令分析器等待;其余缓冲栈的设计原则
一般有关系:DI≥DC≥DR≥DW
其中:DI是先行指令缓冲栈的缓冲深度,
DC是先行操作栈的缓冲深度,
DR是先行读数栈的缓冲深度,
DW是后行写数栈的缓冲深度。
例如:IBM370/165机:
原创力文档


文档评论(0)