流水线技术对PC值的影响

        CPU的内部结构主要有三部分:指令寄存器、指令译码器、指令执行单元(包括ALU和通用寄存器)并发

        CPU在执行一条指令的时候,主要有三个步骤:取指(将指令从内存或者指令Cahe中取出,放到指令寄存器),译码(指令译码器对指令寄存器中的指令进行译码操做从而辨识出所具体什么指令,从而产生各类时序信号),执行(指令执行单元根据译码的结果进行计算和存储结果)内存

        根据电路的结构咱们发现:取指阶段占用的CPU硬件是指令通路和指令寄存器;译码阶段占用的是CPU硬件是指令译码器;执行阶段占用的是CPU硬件的执行单元和数据通路。三者占用的CPU硬件彻底不一样,这就造成列三级的流水线,以下:在对第一条指令译码的时候,能够同时对第二条指令进行取指操做;在对第一条指令进行执行的时候,能够同时对第二条进行译码,对第三条进行取指。可见:流水线技术的本质是利用指令运行时间不一样阶段使用不一样的硬件相互不一样,并发运行多条指令,从而提升了时间效率。it

        对PC值的具体影响。寄存器PC的值是即将被取指的指令的地址,正常状况下,在该条指令被取入CPU后执行期间,PC的值保持不变,在该条指令完成的点上,硬件会自动的将PC的值加一个单位的大小,这样PC就指向列下一条将被取指和执行的指令。而在引入流水线技术后,PC的值的变化发生了变化,假定第一条指令的内存地址为X,则在时刻T,PC值变为X,并在T到T+1时期内维持不变;在T+1时刻,PC的值变为X+1个单位,并在T+1到T+2期间维持不变;在T+2时刻,PC的值变为X+2个单位,并在T+2到T+3期间(第一条指令的执行阶段)内维持不变;在T+3时刻,P的值将变为X+3.因而可知,在第一条指令的执行阶段,PC的值再也不是该指令在内存的位置了,而是该指令在内存中的位置+2个单元.对于ARM指令集而言,每条指令的长度为32bit,占4B,因此,一条指令在内存中须要4B存储。效率

        指令执行时,PC值=当前正在运行的指令在内存的地址+8硬件

相关文章
相关标签/搜索