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

文档序号:9422700阅读:496来源:国知局
可编程cpu寄存器硬件上下文交换机制的制作方法
【专利说明】
[0001] 巧关申请案的香叉参考
[0002] 本申请案主张于2013年3月12日提出申请的第61/777,887号美国临时申请案 的权益,所述美国临时申请案的全文并入本文中。
技术领域
[0003] 本发明设及中央处理单元(CPU),特定来说设及微处理器或微控制器中所使用的 CPU。
【背景技术】
[0004] 大部分CPU提供中断当前指令执行W执行所谓的中断例程的中断功能。从当前执 行切换到此异常或中断例程中通常导致与中断上下文切换相关联的等待时间,所述等待时 间在某些CPU中可(举例来说)高达28个CPU循环长。因此,需要对中断的经改进处理。

【发明内容】
阳0化]根据一实施例,中央处理单元(CPU)可包括:中断单元,其用于中断指令的执行; 多个上下文定义寄存器组,其中每一寄存器组具有相同数目个CPU寄存器;切换单元,其用 于禪合所述CPU内的选定寄存器组,其中所述切换单元在发生异常后即刻切换到所述多个 上下文定义寄存器组中的预定寄存器组;及控制寄存器,其经配置W控制由指令起始的对 所述多个上下文定义寄存器中的寄存器组的选择且进一步可操作W指示当前所使用上下 文。
[0006] 根据又一实施例,所述控制寄存器可包括指示当前上下文的第一位字段及指示由 所述指令选择的最近上下文的第二位字段。根据又一实施例,所述CPU可操作W执行用于 起始上下文切换的指令。根据又一实施例,所述指令可为专用上下文交换指令。根据又一 实施例,所述控制寄存器可为仅可读的。根据又一实施例,所述控制寄存器可为可读的且至 少部分可写入的且所述指令为应用于所述控制寄存器W用于改变所述控制寄存器的内容 W起始上下文切换的移动数据指令。根据又一实施例,所述中断单元可包括中断控制器,所 述中断控制器可操作W指派多个优先级到多个中断源。根据又一实施例,所述多个寄存器 组中的每一者可指派到中断级,使得在发生中断后即刻由所述切换单元取决于所述中断级 而选择所述多个上下文定义寄存器组中的相应寄存器组。根据又一实施例,未指派中断级 可默认到所述多个上下文定义寄存器组中的默认寄存器组。根据又一实施例,在发生具有 未指派中断级的中断后,将不起始上下文切换。根据又一实施例,如果寄存器组经指派到已 经指派到另一寄存器组的优先级,那么所述CPU可操作W将具有最低编号的所述寄存器组 指派到所述选定优先级且解除指派所述相应另一寄存器组。根据又一实施例,所述CPU可 进一步包括用于将所述中断级指派到所述多个寄存器组中的一者的烙丝字段。根据又一实 施例,所述控制寄存器可在已执行上下文切换之后用新上下文更新。
[0007] 根据另一实施例,一种用于在包括多个上下文定义寄存器组的中央处理单元 (CPU)中执行上下文切换的方法,其中每一寄存器组具有相同数目个CPU寄存器,所述方法 可包括:在发生异常后即刻自动切换到所述多个上下文定义寄存器组中的预定寄存器组, 其中可进一步通过执行指令来手动起始对所述多个上下文定义寄存器中的寄存器组的选 择;及在上下文控制寄存器中指示当前所使用上下文。
[0008] 根据所述方法的又一实施例,所述上下文控制寄存器可包括指示当前上下文的第 一位字段及指示由所述指令选择的最近上下文的第二位字段。根据所述方法的又一实施 例,所述方法可进一步包括:执行用于起始上下文切换的指令。根据所述方法的又一实施 例,所述指令可为专用上下文交换指令。根据所述方法的又一实施例,所述控制寄存器可 为仅可读的。根据所述方法的又一实施例,所述控制寄存器可为可读的且至少部分可写入 的,且所述指令为应用于所述上下文控制寄存器W用于改变所述上下文控制寄存器的内容 W起始上下文切换的移动数据指令。根据所述方法的又一实施例,所述方法可进一步包括: 指派多个优先级到多个中断源。根据所述方法的又一实施例,所述多个寄存器组中的每一 者可指派到中断级,使得在发生中断后即刻由所述切换单元取决于所述中断级而选择所述 多个上下文定义寄存器组中的相应寄存器组。根据所述方法的又一实施例,未指派中断级 可默认到所述多个上下文定义寄存器组中的默认寄存器组。根据所述方法的又一实施例, 在发生具有未指派中断级的中断后,可不起始上下文切换。根据所述方法的又一实施例,如 果寄存器组经指派到已经指派到另一寄存器组的优先级,那么所述CPU可操作W将具有最 低编号的所述寄存器组指派到所述选定优先级且解除指派所述相应另一寄存器组。根据所 述方法的又一实施例,所述方法可进一步包括:提供用于将所述中断级指派到所述多个寄 存器组中的一者的烙丝字段。根据所述方法的又一实施例,所述方法可进一步包括:在已执 行上下文切换之后用新上下文更新所述上下文控制寄存器。
【附图说明】
[0009] 图1展示实施例的框图;
[0010] 图2展示上下文状态寄存器的实施例;
[0011] 图3展示描绘CPU的实施例的另一框图;
[0012] 图4展示根据一实施例的时序图;
[0013] 图5A及5B展示特殊功能指令的实施例;
[0014] 图6展示烙丝字段的实例;
[0015] 图7展示描绘示范性异常处理的流程图;且
[0016] 图8展示描绘示范性异常处理的另一流程图。
【具体实施方式】
[0017] 在执行主指令序列(主程序)期间,上下文由预定数目个CPU寄存器定义。CPU寄 存器经定义为通常形成与算术逻辑单元及其它处理逻辑禪合且由指令用作用于执行基本 数据及地址处理的主要来源或目的地的寄存器文件或寄存器组的CPU内的那些寄存器。因 此,控制外围装置的功能的通用存储器及其它特殊功能寄存器通常不被视为当前上下文的 部分,除非其配合上文说明。微处理器或微控制器的一些实施例使用由存储体形成的寄存 器文件,其中所有特殊功能寄存器经存储器映射到数据存储器。一旦选择存储体,存储体内 的所有存储器位置便形成可定义上下文的通用或特殊功能寄存器。然而,通常在此类实施 方案中,仅寄存器子组被视为上下文。其它实施例使用专用数目个CPU寄存器,举例来说, 16或32个寄存器,所述专用数目个CPU寄存器并非数据存储器的部分且用作CPU指令的 主要来源及/或目的地。此类寄存器中的一些或所有寄存器也可经存储器映射到数据存储 器。
[0018] 例如中断的异常非同步发生且因此无法预测其发生。子例程通常同步执行,换句 话说,确切地知道将在主程序中的何处执行子例程调用。一般来说,在执行异常期间不应更 改上下文定义寄存器的内容W便一旦已执行所述异常便允许不受干扰地执行主程序。否 贝1J,可发生CPU的不可预测行为。子例程的执行也可同样如此。因此,上下文需要在执行服 务例程之前或在一些情形中在执行子例程之前加W保存且在CPU返回到主指令序列的执 行之前还原。
[0019] 根据各种实施例,可提供可编程CPU寄存器硬件上下文交换机制。本发明在自动 上下文切换与手动上下文切换之间加W区分。此处,术语"自动"是指上下文交换经自动起 始而无执行任何专用指令的要求的事实。换句话说,中断信号不仅导致异常而且导致上下 文切换。相反,"手动上下文切换"通过专用指令或通过控制寄存器中的一或多个特定位的 设定起始。因此,"手动"上下文切换通过由CPU执行的一或多个指令起始。然而,实际上下 文切换经执行而不需要执行与借助于指令序列的寄存器的传统保存/还原相反的任何指 令。因此,在两种方法中,执行零额外开销上下文切换。零额外开销应理解为不需要额外时 间来执行上下文切换。因此,举例来说在"自动"上下文切换期间,在分支到中断服务例程 所需的转变时间期间执行上下文切换。在"手动"切换中,上下文切换仅需要执行相应指令 所需的时间。在一些实施例中,此指令可具有足够长W执行实际切换的执行时间。此可取 决于硬件且因此在一些实施例中此指令可不如其它指令执行地快。
[0020] 根据一些实施例,可提供专用CPU指令,举例来说用助忆符"CTXTSWP(W)"编码的 指令,其允许用户使用软件在CPU寄存器上下文之间交换。各种实施例可经设计W便也借 助硬件操作,举例来说,基于中断的上下文切换。
[0021] 根据一些实施例,CPU寄存器上下文依赖于中断优先级且因此为用户可编程的。寄 存器上下文在当触发选定中断时的异常处理期间透明地切换且上下文在ISR返回期间透 明地恢复。不需要由用户程序提供的额外程序步骤。因此,执行自动保存当前上下文,而无 需借助个别指令保存寄存器内容。因此移除与中断上下文切换相关联的所有等待时间,此 (举例来说)可节省高达28个CPU循环或在特定实施例(举例来说,特定常规微处理器) 中节省
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1