- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中央处理器 - 欢迎访问北京大学信息学院软工 .ppt
Mov 指令0-SB,reset=1 * * 微指令字较长。一般为几十位到100位左右,有的长达200多位。一般来说,机器规模越大,速度越快,采用的微指令字就越长。 微指令中的微操作有高度的并行性,即在一个微周期中,一次能并行执行多个微命令,因而能充分发挥数据通路并行结构的并行操作能力。 微指令译码简单,一般采用直接控制编码法和分段直接编码法,微指令与数据通路各控制点之间有较直接的对应关系。 设计由于微指令的并行操作能力强,效率高,编制的微程序比较短 微程序的执行速度比较快,控制存储器的纵向容量小,灵活性强。 缺点是微指令字比较长,明显地增加了控制存储器的横向容量 水平微指令与机器指令差别很大,一般要熟悉机器结构、数据通路、时序系统以及指令执行过程的人才能进行微程序设计,这对用户来说是很困难的。 * 微指令字短,一般为10~20位左右。 微指令的并行微操作能力有限,一条微指令一般只包含一个微操作命令。 微指令译码比较复杂。全部微命令用一个微操作控制字段进行编码,微指令执行时需行完全译码。 设计用户只需注意微指令的功能,而对微命令及其选择、数据通路的结构则不用过多地考虑,因此,便于用户编制微程序。而且,编制的微程序规整、直观,便于实现设计的自动化。 垂直微指令字较短,使控制存储器的横向容量少。 用垂直微指令编制微程序要使用较多的微指令,微程序较长;要求控制存储器的纵向容量大。垂直微指令产生微命令要经过译码,微程序执行速度慢。 不能充分利用数据通路具有多种并行操作能力 下面我们就以水平型微指令为例讲解微命令编码。 * * 每条机器指令对应一段微程序,当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各段微程序的入口地址,这是一种多分支(或多路转移)的情况,由机器指令的操作码转换成初始微地址的方式主要有两种。 计数器的方式 多路转移的方式 * 后继微地址可由微程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。 测试段如果只有一位,则微地址将产生两个分支,若有两位,则最多可产生四个分支,依此类推,测试段为n位最多可产生2n个分支。 * 为了降低硬件设计可以采用分层设计,对于控制器设计可以利用时间进行划分。 返回第二章浮点运算流水内容。在下一页。 * 下面我们通过例子说明。 * 5.7.2流水CPU的结构 流水CPU 非流水CPU 5.7.2流水CPU的结构 具有两条以上的指令流水线 上图中流水线满载时,每一个时钟周期可以执行2条指令 采用时间和空间并行技术 5.7.2流水CPU的结构 流水线的分类 按级别分为 指令流水线 算术流水线 处理机流水线(宏流水线) 5.7.3流水线中的主要问题 1、瓶颈问题(流水线中有速度慢的段) 再分成几个段 用资源重复的方法也可以解决 2、资源相关:多条指令进入流水线后在同一时钟周期内争用同一功能部件。 解决办法:后边指令拖一拍再推进;增设一个功能部件 5.7.3流水线中的主要问题 3、数据相关 RAW(Read After Write) 后面指令用到前面指令所写的数据 WAW(Write After Write) 两条指令写同一个单元 在简单流水线中没有此类相关,因为不会乱序执行 WAR(Write After Read) 后面指令覆盖前面指令所读的单元 在简单流水线中没有此类相关 解决办法: 可以推后后继指令对相关单元的读操作 设置相关的直接通路(Forwarding) 5.7.3流水线中的主要问题 例:两条指令发生数据相关冲突RAW(Read After Write) ADD R1, R2, R3 ;R2+R3--R1 SUB R4, R1, R5 ;R1-R5--R4 AND R6, R1, R7 ;R1^R7--R6 【例4】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关。判断以下三组指令各存在哪种类型的数据相关。 (1)I1 ADD R1,R2,R3 ;(R2)+(R3)-R1 I2 SUB R4,R1,R5 ;(R1)-(R5)-R4 (2)I3 STO M(x),R3 ;(R3)-M(x),M(x)是存储器单元 I4 ADD R3,R4,R5 ;(R4)+(R5)-R3 (3)I5 MUL R3,R1,R2 ;(R1)×(R2)-R3 I6 ADD R3,R4,R5 ;(R4)+(R5)-R3 解: 第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入
原创力文档


文档评论(0)