当前位置: 首页 > 专利查询>ARM有限公司专利>正文

微处理器系统中的异常处理技术方案

技术编号:13989078 阅读:62 留言:0更新日期:2016-11-13 13:39
一种微处理器系统(1)包括主机处理器(2)、包括多个处理内核(4)的图形处理单元(GPU)(3)以及异常处理机。当在处理机内核(4)上执行的线程在它的指令序列中遭遇异常时,线程被重新导向至该异常处理机。然而,异常事件还被传递到GPU 3的任务管理器(5)。该任务管理器(5)然后向各处理内核(4)广播原因异常消息。各处理内核然后标识其当前执行且与原因异常消息有关的线程,并且将这些线程重新导向到该异常处理机。这样,由单个线程所引起的异常被广播到任务内的全部线程。

【技术实现步骤摘要】
【国外来华专利技术】背景这里所描述的技术涉及微处理器系统中的异常处理,具体涉及可以独立并行执行多个线程的微处理器系统中的异常处理。已知提供一种异常处理机制,其中触发异常的线程将在限定存储器位置处设置数据状态,例如,其他执行线程定期轮询该数据状态该以确定异常是否已经被触发。虽然这种类型的异常处理可以满足仅存在有限数量个并行执行的线程的情况,但申请人已经意识到,这种结构在存在大量独立并行执行的线程的情况下不太适用(并且各线程可能需要跟随所触发的异常)。此外,申请人还已经意识到,大量线程可以并行执行的情况在微处理器系统中变得越来越普遍。例如,这可能在使用包括用于(例如,使用OpenCL)高度并行数据处理运算的一个或更多个图形处理内核(图形处理器)的图形处理系统时出现。在这种情况下,各图形处理内核可以支持例如多达256个独立线程。因此,申请人相信还存在针对微处理器系统中异常处理的改进结构的范围。附图说明现在将仅以示例的方式并参照附图来描述这里所描述的技术的多个实施方式,附图中:图1示意性示出了可以以这里所描述的技术的方式操作的微处理系统;和图2和图3示意性示出了这里所描述的技术的实施方式中的图1的微处理器系统的操作。类似的附图标记在附图中适当的情况下用于类似的部件。具体实施方式这里所描述的技术的第一实施方式包括一种微处理器系统,该微处理器系统包括:一个或更多个处理内核,各内核可操作为并行执行多个执行线程;任务管理器,该任务管理器可操作为向处理内核发布任务以处理;以及异常处理机,该异常处理机可操作为处理在执行期间遭遇异常的线程;其中:处理内核中的至少一个处理内核被构造成使得如果所述处理内核执行的线程遭遇异常或希望产生异常,则处理内核可以向任务管理器触发异常事件;任务管理器被构造成使得如果所述任务管理器从处理内核接收到异常事件的指示,则向处理内核中的至少一个处理内核广播原因异常消息;并且处理内核被构造成:如果所述处理内核从任务管理器接收到所广播的原因异常消息,则标识内核当前执行且原因异常消息应用于的任何线程,并且将任何这种所标识的线程重新导向到所述异常处理机以处理。这里所描述的技术的第二实施方式包括一种操作微处理器系统的方法,该微处理器系统包括:一个或更多个处理内核,各内核可操作为并行执行多个执行线程;任务管理器,该任务管理器可操作为向处理内核发布任务以处理;以及异常处理机,该异常处理机可操作为处理在执行期间遭遇异常的线程;所述方法包括以下步骤:处理内核在所述处理内核执行的线程遭遇异常或希望产生异常时将所述线程重新导向到异常处理机并向任务管理器触发异常事件;任务管理器在从处理内核接收到异常事件的指示时向处理内核中的至少一个处理内核广播原因异常消息;以及从任务管理器接收到所广播的原因异常消息的各处理内核标识内核当前执行且所述原因异常消息应用于的任何线程,并且将任何这种所标识的线程重新导向到所述异常处理机以处理。这里所描述的技术涉及一种微处理器系统,该微处理器系统包括一个或更多个处理内核,该一个或更多个处理内核执行要执行的执行线程;和异常处理机,该异常处理机用于处理遭遇异常的线程。然而,与传统系统中不同,在这里所描述的技术中,如果执行的线程遭遇异常或将产生异常,则可以向控制向处理内核分配任务的任务管理器指示该事件,并且任务管理器然后向处理内核广播异常事件。如下面将进一步讨论的,这然后允许将处理内核中的(单个)线程遭遇或触发的单个异常有效地指示给多个其他线程(无论是在同一处理内核还是不同处理内核中的)。这然后帮助例如支持且并行执行大量独立线程的系统中的更高效且有效异常处理。例如,这里所描述的技术可以用于高效地终止跨许多独立执行线程(和例如跨多个处理内核)分布的并行搜索或其他目标驱动算法。这里所描述的技术的微处理器系统的处理内核可以为任何合适的处理内核,诸如通用处理内核、图形处理内核(例如,着色器内核)、可以起OpenCL“计算单元”作用的任何事物等。在实施方式中,处理内核为图形处理内核。各内核在实施方式中能够并行执行多个独立执行线程。在实施方式中,内核可以并行执行多达256个独立线程(立即)。这里所描述的技术特别适用于处理多个(且大量)独立执行线程的系统中,因为在这种环境中,例如用于在异常发生时轮询独立线程的成本会显著增加。这里所描述的技术因此还将在存在大量独立处理内核、线程组(线程翘曲(thread warp))的情况下是有利的。然而,尽管这样描述,但是这里所描述的技术还可以用于全部线程被组织成单个线程组(翘曲)的情况或实际上仅存在一个或几个线程的情况(如果期望)。该系统可以仅包括单个处理内核,但在实施方式中,存在多个处理内核。在实施方式中,存在4至8个处理内核。在存在多个处理内核的情况下,各内核在实施方式中可以按照本文所描述的技术的方式来操作。各内核在实施方式中为相同类型的(例如,图形处理内核)。任务管理器可操作为向处理内核发布要由处理内核执行的任务。任务管理器可操作为以任意合适且期望的方式这样做。任务管理器可以根据期望实现,例如作为在微控制器(MCU)上执行的处理。在一个实施方式中,任务管理器被实现为固定功能硬件块,该固定功能硬件块在实施方式中操作为在任务的线程索引空间上重复,以将任务细分为较小部分以执行。任务管理器(及其功能)可以(如果期望)以“分布式”方式实现,例如,以“任务分布网络”的形式实现。在这些结构中,任务管理器可以包括多个级或层,其例如各将要执行的任务逐渐细分为较小的分组以执行。可以使用用于任务管理器和向处理内核的任务分发的其他结构(如果期望)。在实施方式中,任务管理器从需要任务由处理内核执行的主机处理器(例如,主CPU)接收任务(例如,对于在主机处理器上执行的应用)。任务管理器将从主机接收任务,然后以适当方式向处理内核发布与这些任务关联的处理。主机处理器例如可以借助任务命令向任务管理器传递任务。由此,在实施方式中,这里描述的技术的系统还包括主机处理器,该主机处理器可操作为向任务管理器指示要执行的任务以向处理内核发布。在实施方式中,处理内核全部为同一、整体处理单元的一部分,处理单元诸如图形处理单元(GPU),并且在实施方式中为图形处理单元(GPU)。由此,在实施方式中,系统包括主机处理器和任务管理器,该主机处理器与处理单元通信且向处理单元发送任务,该处理单元包括处理内核。任务管理器可以以任何合适且期望的方式向处理内核分配用于要执行的任务的处理。在存在仅单个处理内核的情况下,那么任务管理器应以适当的方式向处理内核仅传递要执行的任务。在存在多个处理内核的情况下,那么实施方式中的任务管理器在多个处理内核之间分配用于关注的任务的处理。在这种情况下,在不同处理内核之间分配用于任务的处理可以根据期望来进行。例如,在用于任务的处理已划分为可标识的部分或处理组的情况下,例如,并且在实施方式中划分为可标识且不同的线程组(诸如将为已划分为工作组的OpenCL核心的情况),那么任务管理器在实施方式中操作为使用现有的任务划分在不同处理内核之间分配用于任务的处理。由此,在实施方式中,用于任务的处理被划分为独立不同的线程组(例如,OpenCL工作组),并且任务内的不同线程组(工作组)被指派给不同的处理内核。在实施方式中,各独立线程本文档来自技高网...

【技术保护点】
一种微处理器系统,该微处理器系统包括:一个或更多个处理内核,各内核可操作为并行执行多个执行线程;任务管理器,该任务管理器可操作为向所述处理内核发布任务以处理;以及异常处理机,该异常处理机可操作为处理在执行期间遭遇异常的线程;其中:所述处理内核中的至少一个处理内核能够在所述处理内核执行的线程遭遇异常或希望产生异常时向所述任务管理器触发异常事件;所述任务管理器能够在从处理内核接收到异常事件的指示时向所述处理内核中的至少一个处理内核广播原因异常消息;并且所述处理内核能够在所述处理内核从所述任务管理器接收到所广播的原因异常消息时标识所述内核当前执行且所述原因异常消息应用于的任何线程,并且将任何这种所标识的线程重新导向到所述异常处理机以处理。

【技术特征摘要】
【国外来华专利技术】2014.03.14 GB 1404585.01.一种微处理器系统,该微处理器系统包括:一个或更多个处理内核,各内核可操作为并行执行多个执行线程;任务管理器,该任务管理器可操作为向所述处理内核发布任务以处理;以及异常处理机,该异常处理机可操作为处理在执行期间遭遇异常的线程;其中:所述处理内核中的至少一个处理内核能够在所述处理内核执行的线程遭遇异常或希望产生异常时向所述任务管理器触发异常事件;所述任务管理器能够在从处理内核接收到异常事件的指示时向所述处理内核中的至少一个处理内核广播原因异常消息;并且所述处理内核能够在所述处理内核从所述任务管理器接收到所广播的原因异常消息时标识所述内核当前执行且所述原因异常消息应用于的任何线程,并且将任何这种所标识的线程重新导向到所述异常处理机以处理。2.根据权利要求1所述的系统,其中,所述处理内核为图形处理内核。3.根据权利要求1或2所述的系统,所述系统还包括主机处理器,该主机处理器可操作为向所述任务管理器指示要执行的任务以向所述处理内核发布。4.根据前述权利要求中任一项所述的系统,其中,要执行的所述任务为并行搜索或其他目标驱动算法。5.根据前述权利要求中任一项所述的系统,其中,所述异常处理机关于所述异常处理机接收到的线程执行以下各项中的一个:终止所述线程;暂停所述线程的执行;恢复所述线程的执行;存储用于所述线程的跟踪数据;以及存储与所关注的所述线程和/或任务有关的状态信息。6.根据前述权利要求中任一项所述的系统,其中,要向所述处理内核发布的各任务关联有:用于所述任务的正常操作而执行的第一程序;用于在与所述任务关联的线程被重新导向至所述异常处理机以暂停和/或终止时暂停和/或终止线程的第二程序;以及用于在重新导向到所述异常处理机之后恢复线程的第三程序。7.根据前述权利要求中任一项所述的系统,其中,触发将线程重新导向至所述异常处理机的所述异常为以下各项中的一个:所述线程到达搜索处理或其他目标驱动算法的完成;所述线程到达其执行流程中的断点;所述线程到达其执行流程中的暂停点;以及所述线程到达其执行流程中的追踪点。8.根据前述权利要求中任一项所述的系统,其中,异常能够由线程执行的指令流中的指令引起;以及由主机处理器向所述任务管理器发布的命令引起。9.根据前述权利要求中任一项所述的系统,其中,所述处理内核仅针对所选择的形式的异常向所述任务管理器指示异常事件。10.根据前述权利要求中任一项所述的系统,其中,广播异常事件消息能够应用于与所关注的所述任务有关的所述线程中的一些线程但不是全部线程,和/或所关注的所述任务内的不同分组的线程。11.根据前述权利要求中任一项所述的系统,其中,针对能够触发异常的任务而要由线程执行的指令序列中所包括的指令能够指示所述异常仅应用于所关注的所述线程还是还应被广播到其他线程。12.根据前述权利要求中任一项所述的系统,其中,要被广播到其他线程的异常指令还指示所述异常应被广播到的线程分组的级别。13.一种操作微处理器系统的方法,该微处理器系统包括:一个或更多个处理内核,各内核可操作为并行执行多个执行线程;任务管理器,...

【专利技术属性】
技术研发人员:R·埃利奥特V·普拉萨德A·恩格哈斯特维德
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1