• 计算机原理 6.6 总线结构cpu指令周期


    1、单总线结构CPU

     

     

     首先说一下取指令如何完成:

    首先将PC的值取出,这个动作我们需要给出一个PC out的信号,控制三态门值输出到总线,然后再由总线输入AR中,同样需要一个ARin的写使能控制信号,在下一个时钟到来时,就会将对应的PC值输入到AR,同时PC的值要完成加1的操作,通过总线传输到x端,同样需要一个Xin的控制信号,时钟到来后,PC的值就会写入X中,这是第一个时钟干的事,就是将PC的值存入AR和X中。

    下一个时钟周期,我们要干什么呢?我们要通过AR来访问内存,同时将PC的值加1,具体操作就是,给ALU的运算选择信号+1,让pc的值加上1送到结果Z,要想让结果写入Z,必须在时钟到来后才可以,因为Z没有写使能,所以时钟到来后,一定会锁存。同时在内存处,给出读信号,主存就可以进行相应的工作,这是第二拍。

    第三拍,我们要将PC运算的结果Z的值送回PC,并且我们要把内存中对应的数据写入到DR中。首先将Z的值送回PC,给出Zou信号,将Z的值传输到数据总线,再给出一个PCin,等第三个时钟到来后,Z的值就会写入到PC中了,然后将主存中的数据写入到DR中,给出DRin信号,当第三个时钟到来后,数据就写入到DR中了。

    第四个时钟周期,需要把DR写入到IR,我们给出DRout,将DR的值写入到总线,再给出IRin,第四个时钟到了后,就会把DR的值写入到IR中。到此取指令就完成了,然后再将指令送到指令译码器生成操作控制信号,由时序产生器控制时序,由操作控制器产生各功能部件所需要的控制信号序列,这些都是执行指令的事了。

    下面,以LOAD  R0,6#    指令为例,详细讲下执行指令的具体过程,这条指令的作用是将6号存储单元取出以后送到R0中,因为6是存在指令里边的,所以将6从指令寄存器的地址码部分取出,然后访问主存,最后将对应的数据送到寄存器中,首先我们应该把6从IR中取出来,把6送入到AR中去访存,具体操作是给出IRout信号,将6输出到总线,送到AR的输入端,给出ARin,当第一个时钟到达后,就可以将6写入到AR中,当6在AR里,下一步就给出内存读信号,当第二个时钟到达后,就会锁存,内存就会开始读,第三拍我们就将数据取出,送到DR中,需要给出DRin信号,第三个时钟到达后,就可以将数据写入到DR中,在第四拍时,需要将DR的值送入到R0寄存器,给出DRout信号,将DR的值输入到总线,然后给出R0in,在第四个时钟到达时,将DR的值写入到R0中

    ,指令执行结束,现在R0中存放的就是6号单元的数据。

    1、MOVE指令执行数据通路

     2、ADD指令执行数据通路

     3、STORE指令 数据通路

     4、JMP指令数据通路

  • 相关阅读:
    ios app相互调用
    Nginx连接频率限制
    nginx 基于域名的虚拟主机
    nginx基于多端口的虚拟主机
    Nginx基于多ip的虚拟主机
    多文件上传
    thinkphp5模型关联
    原生查询和查询构造器
    thinkphp5请求和响应
    thinkphp验证器
  • 原文地址:https://www.cnblogs.com/fate-/p/13183153.html
Copyright © 2020-2023  润新知