【技术实现步骤摘要】
具有时延移位器的处理器和使用所述处理器的控制方法
[0001]本专利技术大体上涉及一种处理器架构,且更具体地说,涉及一种包含时延移位器的处理器和用于控制处理器的指令流水线(instruction pipeline)的控制方法。
技术介绍
[0002]用于提高处理器的性能的一种方法是使用指令流水线来执行指令。指令流水线中的指令的执行分解成包含回写阶段的数个阶段。在回写阶段,执行回写操作以将结果数据通过寄存器组的写入端口写入到寄存器组。因为寄存器组中的写入端口的数量受到限制,所以在同一时钟周期中数个指令需要比可用写入端口的数量多的写入端口以回写到寄存器组时可能发生冲突。使用写入端口的冲突引起指令流水线中的指令的停滞或互锁,从而降低处理器的性能。此外,回写阶段常常是流水线执行的最后阶段,由于回写冲突而引起的指令的停滞对所有执行流水线阶段具有深远广泛的影响。另外,指令流水线具有需要来自处理器的数个地点和组件的信息的极复杂的控制逻辑。
[0003]随着对提高处理器的性能的需求,对可有效防止指令的停滞和互锁的处理器和控制方法的需要日益增长。
技术实现思路
[0004]在本专利技术的一个实施例中,一种微处理器包含寄存器组、时延移位器、解码单元以及功能单元。寄存器包含写入端口。时延移位器包含多个移位器条目且配置成在每一时钟周期移出多个移位器条目当中的一移位器条目,其中多个移位器条目中的每一个与时钟周期相关联,且多个移位器条目中的每一个包括回写值,其中所述回写值用于指示可对所述寄存器组的写入端口进行回写操作的时 ...
【技术保护点】
【技术特征摘要】
1.一种微处理器,包括:寄存器组,包括写入端口;时延移位器,包括多个移位器条目,所述时延移位器在每一时钟周期移出所述多个移位器条目当中的一移位器条目,其中所述多个移位器条目与一时钟周期相关联,且所述多个移位器条目中的每一个包括回写值,其中所述回写值用于指示在所述时钟周期中所述寄存器组的所述写入端口是否可用于回写操作;解码单元,耦合到所述时延移位器,所述解码单元对指令进行解码且基于所述时延移位器的所述多个移位器条目中的所述回写值发射所述指令;以及至少一个功能单元,耦合到所述解码单元和所述寄存器组,所述至少一个功能单元执行由所述解码单元发射的所述指令且在所述回写值时产生结果数据并提供至所述寄存器组的所述写入端口。2.根据权利要求1所述的微处理器,其中所述时延移位器配置成每一时钟周期移出所述时延移位器的底部移位器条目,其中所述移出操作控制所述寄存器组的所述回写操作。3.根据权利要求1所述的微处理器,其中在所述回写值为第一预定值时,在所述时钟周期中所述寄存器组的所述写入端口不可用于所述回写操作;以及在所述回写值为第二预定值时,在所述时钟周期中所述寄存器组的所述写入端口可用于所述回写操作。4.根据权利要求3所述的微处理器,其中在待发射的第一指令将在第一时钟周期执行第一回写操作且所述时延移位器指示所述寄存器组的所述写入端口于所述第一时钟周期中不可使用时,所述解码单元停滞所述第一指令的发射,以及在待发射的所述第一指令将在所述第一时钟周期执行第一回写操作且所述时延移位器指示所述寄存器组的所述写入端口于所述第一时钟周期中可使用时,所述解码单元发射所述第一指令且将与所述第一时钟周期相关联的所述移位器条目的所述回写值设定成所述第一预定值。5.根据权利要求4所述的微处理器,其中根据所述第一指令的执行时延时间来决定所述第一指令的所述第一时钟周期。6.根据权利要求4所述的微处理器,其中在所述解码单元配置成停滞在所述第一时钟周期时发射所述第一指令时,所述解码单元配置成确定所述寄存器组的所述写入端口在第二时钟周期的可用性,其中所述第二时钟周期在所述第一时钟周期之后。7.根据权利要求1所述的微处理器,还包括:指令提取单元,耦合到所述解码单元,所述指令提取单元配置成将所述指令提供至所述解码单元;以及执行队列,耦合到所述发射/解码单元和所述至少一个功能单元,所述执行队列配置成将发射指令存储到所述执行队列的多个队列条目且将存储在所述执行队列中的所述发射指令提供到所述至少一个功能单元。8.根据权利要求1所述的微处理器,其中
所述寄存器组更包括具有多个寄存器地址的多个寄存器,以及所述时延移位器的所述多个移位器条目中的每一个还包括:寄存器地址值,配置成存储所述多个寄存器地址当中的一寄存器地址以用于所述指令的所述回写操作;以及功能单元值,配置成指示用于执行所述指令的所述至少一个功能单元当中的一功能单元。9.根据权利要求1所述的微处理器,其中使用旋转缓冲器实施所述时延移位器,且所述旋转缓冲器包括:读取指针,配置成指向从所述旋转缓冲器读出数据的地址。10.根据权利要求1所述的微处理器,还包括:长时延计数器,耦合到所述时延移位器,所述长时延计数器配置成每一时钟周期对可设定计数器值进行倒计数,直到所述可设定计数器值达到第一阈值为止,其中所述发射/解码单元进一步配置成基于所述长时延计数器的状态对所述指令进行解码且发射所述指令,在所述长时延计数器的所述状态为忙碌状态且所述指令的执行时延时间大于第二阈值时,所述发射/解码单元配置成停滞所述指令的发射,以及在所述长时延计数器的所述状态为可用状态且所述指令的所述执行时延时间大于所述第二阈值时,根据所述指令的所述执行时延时间设定所述可设定计数器值。11.根据权利要求10所述的微处理器,其中当所述可设定计数器值倒计数到所述第一阈值时,针对所述指令设定所述时延移位器的顶部移位器条目。12.根据权利要求1所述的微处理器,其中所述至少一个功能单元包括加载/存储功能单元,所述加载/存储功能单元配置成:延迟接受信号发送到所述数据高速缓冲存储器,以回应从数据高速缓冲存储器接收到有效数据信号且所述时钟周期中的所述回写值指示所述寄存器组的所述写入端口于所述时钟周期中不可使用时;以及将所述接受信号发送到所述数据高速缓冲存储器,以回应从所述数据高速缓冲存储器接收到所述有效数据信号且所述时钟周期中的所述回写值指示所述寄存器组的所述写入端口于所述时钟周期中可使用时。13.根据权利要求1所述的微处理器,其中所述写入端口包括:多个第一写入端口,所述至少一个功能单元共用所述多个第一写入端口;以及第二写入端口,专用于未知时延指令。14.根据权利要求13所述的微处理器,其中所述时延移位器包括多个第一时延移位器,且所述多个第一时延移位器中的每一个对应于所述多个第一写入端口中的一个。15.根据权利要求14所述的微处理器,其中所述指令为包括多个微操作的矢量指令,以及所述矢量指令的所述多个微操作包含于所述多个第一时延移位器当中的同一第一时延移位器中。
16.根据权利要求1所述的微处理器,其中所述指令为包括多个微操作的矢量指令,以及所述微操作包含于所述时延移位器的连续移位器条目中。17.一种排程微处理器的寄存器组的写入端口的方法,包括:基于待发射的指令的执行时延时间确定第一时钟周期;基于时延移位器的回写值,确定所述写入端口在所述第一时钟周期的可用性,其中...
【专利技术属性】
技术研发人员:陈丁明,
申请(专利权)人:晶心科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。