计算系统基础第8章 诺依曼模型.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bit[31:26]:011100,是I类型的LW指令 bit[20:16]:指令执行结束后从存储器里读出的值将存入的寄存器 bit[25:21]和bit[15:0]:用来计算出要读取位置的地址 将bit[15:0]里的二进制补码整数符号扩展为32位,再与bit[25:21]表示的寄存器里的数值相加,结果即为地址 “基址+偏移量”寻址模式 “将R3里的内容同数值6相加,构成一个存储单元的地址,从该单元开始,读取连续4个存储单元里面包含的值,并加载到R2里。” 寻址模式:计算将要读取的存储单元的地址的机制 1、取指令阶段 从存储器中获得下一条指令,放在控制单元的指令寄存器中 为了执行下一条指令的任务,必须先确定它位于哪里 程序计数器(PC)包含着下一条指令的起始地址(DLX指令由32位组成,需要4个连续的存储单元) 取指令阶段步骤 取指令阶段需要多步: 首先,加载PC的内容到MAR中;然后,查询存储器,使得下一条指令(4个连续的存储单元中的内容)被放置进MDR; 最后,MDR的内容被放进IR。 但是,当这条指令执行完毕后,还希望取它的下一条指令,也就是让程序计数器能够包含下一条指令的地址。因此,取指令阶段还有一步,就是程序计数器增加4(每条指令32位,需要4个存储单元)。 取指令阶段 取指令阶段的完整描述如下: 1、把PC中的内容加载到地址寄存器,同时选择PC与4在ALU中进行加法运算,并用加法结果改变PC原来的值 2、查询存储器,把指令放进数据寄存器当中 3、把数据寄存器当中的内容加载到IR中 2、译码/取寄存器阶段 译码:识别指令进而确定下一步要去做什么 6-64的译码器:IR[31:26] 依据译码器的输出为1的线,决定了余下的26位需要做哪些工作 取寄存器 为后面的阶段进行获取操作数的操作 从IR[25:21]和IR[20:16]所指示的寄存器中获得源操作数,传给ALU的A和B寄存器; 同时,选择PC与IR[15:0]符号扩展(SEXT)的32位结果,在ALU中进行加法运算,并将结果存储于ALUOut寄存器中 取寄存器—示例 ADD指令 将从IR[25:21]和IR[20:16]所指示的R2和R6中获得源操作数,传给ALU的A和B寄存器; 计算PC与IR[15:0]符号扩展的和。 LW指令 将从IR[25:21] 和IR[20:16]所指示的R3和R2中获得源操作数,传给ALU的A寄存器和B寄存器; 计算PC与IR[15:0]符号扩展的和。 有的操作的结果在后面的阶段并不会用到,但这并不浪费时间,因为这些操作是同时进行的 3、执行/有效地址/完成分支 根据译码产生的控制信号,对上一阶段得到的A寄存器和B寄存器的值执行算术/逻辑运算; 或计算出处理指令所需的存储单元的地址,即有效地址; 或者完成分支跳转。 执行/有效地址—示例 ADD指令 在ALU中进行加法运算,得到加法运算结果,存储于ALUOut寄存器中 LW指令 选择IR[15:0]符号扩展的结果,在ALU中与A寄存器进行加法运算,得到一个有效地址,存储于ALUOut寄存器中 4、访问内存 获取内存中的数据 LW指令 把在上一阶段计算得到的ALUOut寄存器中的地址加载到地址寄存器MAR 读取存储器,一个32位的数据被放进数据寄存器MDR 5、存储结果 结果被写到指定的目标中 LW指令 MDR中的值被写入IR[20:16]所指示的R2中 ADD指令 加法运算的ALUOut寄存器中的结果被写入IR[15:11]所指示的R6中 下一阶段 这五个阶段完成之后,控制单元就会从取指令阶段开始执行下一条指令 由于在取指令阶段PC被更新,包含了存储在存储单元中的下一条指令的地址 这样下一条指令接下来就会被读取。处理就这样持续下去直到被打断。 不是所有的DLX指令都包括上述五个阶段。但是所有指令均需要取指令阶段和译码/取寄存器阶段。 ADD指令,不需要访问内存阶段 改变执行顺序 ADD:处理数据的运算指令 LW:把数据从一个地方移动到另一个地方的数据传送指令 控制指令:改变指令执行的顺序。 有时会需要先执行第一条指令,接着第二条,第三条,然后又执行第一条,接着第二第三,接着又是第一条……,即循环结构。 由于每条指令的执行都是从用PC加载MAR开始的,因此,如果想要改变指令执行的顺序,就需要在PC增加4(即在取指令阶段执行时)后、执行下一指令的取指令阶段之前改变PC(执行阶段改变PC)。 JR指令 bits[31:26]:101101,JR bits[25:21]:包含下一条将要被执行的指令地址的寄存器 31 26 25 21 20 0 1

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档