- 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.1 指令的重叠执行方式 1.顺序执行方式 执行n条指令所用的时间为: 如果每段时间都为t,则执行n条指令所用的时间为:T=3nt 主要优点:控制简单,节省设备 主要缺点:速度慢,功能部件的利用率低 2.一次重叠执行方式 如果两个过程的时间相等,则执行n条指令的 时间为:T=(1+2n)t 主要优点: 指令的执行时间缩短, 功能部件的利用率明显提高。 主要缺点: 需要增加一些硬件, 控制过程稍复杂。 3.二次重叠执行方式 如果三个过程的时间相等,执行n条指令的时 间为:T=(2+n)t 在理想情况下,处理机中同时有三条指令在执 行。 处理机的结构要作比较大的改变,需要采用先 行控制技术。 3.1.2 先行控制方式的原理 1.采用二次重叠执行方式必须解决两个问题: (1)有独立的取指令部件、指令分析部件和指令执行部件 把一个集中的指令控制器,分解成三个独立的控制器: 存储控制器、指令控制器、运算控制器 (2)要解决访问主存储器的冲突问题 取指令、分析指令、执行指令都可能要访问存储器 2.解决访存冲突的方法: (1)采用低位交叉存取方式: 这种方法不能根本解决冲突问题。 指令、读操作数、写结果。 (2)两个独立的存储器:独立的指令存储器和数据存储器。 如果再规定,执行指令所需要的操作数和执 行结果只写到通用寄存器,则取指令、分析指 令和执行指令就可以同时进行。 在许多高性能处理机中,有独立的指令Cache 和数据Cache。这种结构被称为哈佛结构。 (3)采用先行控制技术 采用先行控制技术的关键是缓冲技术和预处理技术。 缓冲技术通常用在工作速度不固定的两个功能部件 之间。设置缓冲栈的目的是用来以平滑功能部件之间 的工作速度。 预处理技术是把进入运算器的指令都处理成寄存器- 寄存器型(RR型)指令。 在采用了缓冲技术和预处理技术之后,运算器能够 专心于数据的运算,从而大幅度提高程序的执行速度。 3.1.3 处理机结构 1.三个独立的控制器: 存储控制器、指令控制器、运算控制器。 2.四个缓冲栈: 先行指令缓冲栈、先行读数缓冲栈、先行操作 栈、后行写数栈。 3.处理机组成 4.先行指令缓冲栈的组成 作用:只要指令缓冲栈没有充满,就自动发出 取指令的请求。 设置两个程序计数器: 先行程序计数器PC1: 用来指示取指令。 现行程序计数器PC: 记录指令分析器当前正在 分析的指令地址。 5.存在的主要问题: 各类指令“分析”和“执行”的时间相差很大 数据相关 转移或转子程序指令 3.1.4 指令执行时序 设置了指令缓冲栈,取指令的时间就可以忽略 不计。 一条指令的执行可分为2个过程 1.分析指令和执行指令时间不相等时的情况 3.1.5 先行缓冲栈 设置先行缓冲栈的目的:使指令分析器和指令 执行部件能够独立工作。 1.先行指令缓冲栈: 处于主存储器与指令分析器之间 用它来平滑主存储器取指令和指令分析器使用 指令之间的速度差异 RR型指令,不必处理,直接送先行缓冲栈 RS型指令,主存有效地址送先行读数栈,用该 先行读数栈的寄存器编号替换指令中的主存地 址码部分,形成RR*指令送先行缓冲栈 3.先行读数栈 处于主存储器与运算器之间 平滑运算器与主存储器的工作 每个缓冲寄存器由地址寄存器、操作数寄存器 和标志三部分组成。也可以把地址寄存器和操 作数寄存器合为一个。 当收到从指令分析器中送来的有效地址时,就 向主存申请读操作数。 读出的操作数存放在操作数寄存器中或覆盖掉 地址寄存器中的地址。 4.后行写数栈 每个后行缓冲寄存器由地址寄存器、数据寄存 器和标志三部分组成。 指令分析器遇到向主存写结果的指令时,把形 成的有效地址送入后行写数栈的地址寄存器中, 并用该地址寄存器的编号替换指令的目的地址 部分,形成RR*指令送入先行操作栈。 当运算器执行这条RR*型写数指令时,只要把写 到主存的数据送到后行写数栈的数据寄存器中 即可。 3.1.6 缓冲深度的设计方法 以静态分析为主,通过模拟来确定缓冲深度。 1.先行指令缓冲栈的设计 考虑两种极端情况:假设缓冲深度为DI (1)先行指令缓冲栈已经充满 指令流出的速度最快,例如连续分析RR型指令,设这种指令序列的最大长度为L1,平均分析一条这种指令的时间为t1; 指令流入的速度最慢,设平均取一条指令的时间为t2。从主存储器中取到先行指令缓冲栈中的指令条数是L1-DI条。 应该满足如下关系:L1 t1=(L1-DI) t2 计算出缓冲深度为: 如果这种指令流的连续长度超过L1,则先行指令缓冲栈失去作用。 (2)先行指令缓冲栈原来为空 输
文档评论(0)