可编程cpu寄存器硬件上下文交换机制的制作方法_4

文档序号:9422700阅读:来源:国知局
TAT寄存器更新将到中断或陷阱处理 程序向量提取开始的时候完成。异常处理将如正常一样向量化且处理程序将返回到依循 CTXTSWP(W)指令的地址。如果异常为处于经指派到另一上下文的IPL的中断(经指派到CTXTSWP(W)的上下文及基于IPL的使用在同时使用时必须互斥),那么上下文将在异常处 理期间再次切换。然而,基于IPL的上下文改变将在任何软件驱动上下文改变之后发生, 因此相关联ISRRETFIE指令将返回到正确上下文(即,刚由CTXTSWP(W)指令选择的上下 文)。
[0069] 根据再一实施例,如果不满足软件互锁,那么CTXTSWP(W)将执行为2~FNOP且上 下文将不改变。异常处理将如正常一样向量化且处理程序将返回到依循CTXTSWP(W)指令 的地址。
[0070] 根据此特定实施例的CPU可支持介于0与4之间的额外CPU寄存器上下文。如图 3中所展示的CPU寄存器上下文经定义为WREGO到WREG14。额外上下文中不包含任何其它 CPU寄存器。在异常处理及RETFIE期间或通过CTXTSWP(W)指令的执行实现上下文切换。
[0071] CTXTSWP(W)指令将在2个循环中切换到指令操作数中定义的上下文。新上下文 将在下一指令的执行开始时立即可用。CTXTSWP(W)指令还将用新选定的上下文值更新 CTXTSTAT.MCTXI[2:0]寄存器字段。
[0072] 根据特定实施例存在关于CTXTSWP(W)指令的一些使用考虑因素:1.应注意SR并 非额外上下文的一部分。因此,当使用CTXTSWP(W)来切换CPU寄存器上下文时,用户将需 要手动保存/还原S化寄存器。2.与其中返回上下文由堆叠式CPUI化值隐含定义的硬件 上下文切换不同,CTXTSWP(W)指令不保存任何历史记录。因此,在使用CTXTSWP(W)指令时 跟踪CPU上下文为用户责任。 阳07引在非堆叠SR(在第2循环中)之后,RETFIE指令将检查非堆叠的IPL[2:0]值。如果IPL[2:0]与CPU寄存器上下文相关联,那么返回指令将切换到所述上下文。如果IPL[2:0] 不与CPU寄存器上下文相关联,那么返回指令将切换到手动上下文识别符(CTXTSTAT. MCTXI[2:0])寄存器字段中保持的上下文编号。此结合异常处理操作确保在其中上下文 既自动切换又手动切换的嵌套异常及/或调用时的上下文一致性。在上述两个情形中, 当前上下文识别符(CTXTSTAT.CCTXI[2:0])寄存器字段相应地更新。手动上下文识别符 (CTXTSTAT.MCTXI[2:0])寄存器字段的状态不受影响。新上下文将在下一指令的执行开始 时立即可用(无RAW危险)。旧上下文的内容在任何情况下都不受切换影响。
[0074] 根据另一实施例,可不需要用于执行上下文切换的任何特定指令,运是因为在根 据一些实施例的手动上下文切换中,上下文切换由控制寄存器中的相应位的手动设定执 行。在此实施例中,控制寄存器必须为可读的且至少部分可写入的。在两种方法中,不需要 执行任何额外开销指令W实际上如(举例来说)在具有额外开销的常规中断服务例程中一 般保存上下文寄存器的内容。
[00巧]所提及的各种实施例可与其它实施例的各种特征组合。除非说明书中提及,否则 各种实施例中所描述的任何特征都不一定具有排他性特性。因此,特征的各种组合可实施 于如各种实施例中所掲示的处理单元中。
【主权项】
1. 一种中央处理单元CPU,其包括: 中断单元,其用于中断指令的执行; 多个上下文定义寄存器组,其中每一寄存器组具有相同数目个CPU寄存器; 切换单元,其用于耦合所述CPU内的选定寄存器组,其中所述切换单元在发生异常后 即刻切换到所述多个上下文定义寄存器组中的预定寄存器组;及 控制寄存器,其经配置以控制由指令起始的对所述多个上下文定义寄存器中的寄存器 组的选择且进一步可操作以指示当前所使用上下文。2. 根据权利要求1所述的CPU,其中所述控制寄存器包括指示当前上下文的第一位字 段及指示由所述指令选择的最近上下文的第二位字段。3. 根据权利要求2所述的CPU,其中所述CPU可操作以执行用于起始上下文切换的指 令。4. 根据权利要求3所述的CPU,其中所述指令为专用上下文交换指令。5. 根据权利要求4所述的CPU,其中所述控制寄存器为仅可读的。6. 根据权利要求3所述的CPU,其中所述控制寄存器为可读的且至少部分可写入的,且 所述指令为应用于所述控制寄存器以用于改变所述控制寄存器的内容以起始上下文切换 的移动数据指令。7. 根据权利要求1所述的CPU,其中所述中断单元包括中断控制器,所述中断控制器可 操作以指派多个优先级到多个中断源。8. 根据权利要求7所述的CPU,其中所述多个寄存器组中的每一者可指派到中断级,使 得在发生中断后即刻由所述切换单元取决于所述中断级而选择所述多个上下文定义寄存 器组中的相应寄存器组。9. 根据权利要求8所述的CPU,其中未指派中断级默认到所述多个上下文定义寄存器 组中的默认寄存器组。10. 根据权利要求8所述的CPU,其中在发生具有未指派中断级的中断后,将不起始上 下文切换。11. 根据权利要求8所述的CPU,其中如果寄存器组经指派到已经指派到另一寄存器组 的优先级,那么所述CPU可操作以将具有最低编号的所述寄存器组指派到所述选定优先级 且解除指派所述相应另一寄存器组。12. 根据权利要求8所述的CPU,其进一步包括用于将所述中断级指派到所述多个寄存 器组中的一者的熔丝字段。13. 根据权利要求1所述的CPU,其中所述控制寄存器在已执行上下文切换之后用新上 下文更新。14. 一种用于在包括多个上下文定义寄存器组的中央处理单元CPU中执行上下文切换 的方法,其中每一寄存器组具有相同数目个CPU寄存器,所述方法包括: 在发生异常后即刻自动切换到所述多个上下文定义寄存器组中的预定寄存器组, 其中可进一步通过执行指令来手动起始对所述多个上下文定义寄存器中的寄存器组 的选择;及 在上下文控制寄存器中指示当前所使用上下文。15. 根据权利要求14所述的方法,其中所述上下文控制寄存器包括指示当前上下文的 第一位字段及指示由所述指令选择的最近上下文的第二位字段。16. 根据权利要求15所述的方法,其进一步包括:执行用于起始上下文切换的指令。17. 根据权利要求16所述的方法,其中所述指令为专用上下文交换指令。18. 根据权利要求17所述的方法,其中所述控制寄存器为仅可读的。19. 根据权利要求16所述的方法,其中所述控制寄存器为可读的且至少部分可写入 的,且所述指令为应用于所述上下文控制寄存器以用于改变所述上下文控制寄存器的内容 以起始上下文切换的移动数据指令。20. 根据权利要求14所述的方法,其进一步包括:指派多个优先级到多个中断源。21. 根据权利要求20所述的方法,其中所述多个寄存器组中的每一者可指派到中断 级,使得在发生中断后即刻由所述切换单元取决于所述中断级而选择所述多个上下文定义 寄存器组中的相应寄存器组。22. 根据权利要求21所述的方法,其中未指派中断级默认到所述多个上下文定义寄存 器组中的默认寄存器组。23. 根据权利要求21所述的方法,其中在发生具有未指派中断级的中断后,将不起始 上下文切换。24. 根据权利要求21所述的方法,其中如果寄存器组经指派到已经指派到另一寄存器 组的优先级,那么所述CPU可操作以将具有最低编号的所述寄存器组指派到所述选定优先 级且解除指派所述相应另一寄存器组。25. 根据权利要求21所述的方法,其进一步包括:提供用于将所述中断级指派到所述 多个寄存器组中的一者的熔丝字段。26. 根据权利要求14所述的方法,其进一步包括:在已执行上下文切换之后用新上下 文更新所述上下文控制寄存器。
【专利摘要】本发明涉及一种中央处理单元CPU,其具有:中断单元,其用于中断指令的执行;多个上下文定义寄存器组,其中每一寄存器组具有相同数目个CPU寄存器;切换单元,其用于耦合所述CPU内的选定寄存器组,其中所述切换单元在发生异常后即刻切换到所述多个上下文定义寄存器组中的预定寄存器组;及控制寄存器,其经配置以控制由指令起始的对所述多个上下文定义寄存器中的寄存器组的选择且进一步可操作以指示当前所使用上下文。
【IPC分类】G06F9/46
【公开号】CN105144100
【申请号】CN201480011422
【发明人】迈克尔·I·卡瑟伍德, 布赖恩·克里斯, 戴维·米基, 约瑟夫·卡尼洛普洛斯
【申请人】密克罗奇普技术公司
【公开日】2015年12月9日
【申请日】2014年3月7日
【公告号】US20150019847, WO2014159123A1
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1