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

多处理器系统中的异常控制技术方案

技术编号:8805716 阅读:163 留言:0更新日期:2013-06-13 22:30
本发明专利技术提供一种数据处理设备,该数据处理设备具备多个处理单元(4至18;32至38),这多个处理单元执行对应各自处理线程的各自程序指令流。异常控制电路系统(20,42)控制处理单元群组的异常处理以响应异常触发事件。每一处理单元在正常状态、异常进行状态及异常已处理状态间移动仅一次且依序移动以响应给定异常事件。处理单元群组在正常状态、触发状态及完成状态间依序移动以响应该异常事件。计数器值被用来追踪已进入异常处理的处理单元的个数,然后追踪已经完成异常处理的处理单元的个数。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及数据处理系统领域。更具体地说,本专利技术涉及数据处理系统内的异常处理控制。
技术介绍
众所周知的,提供包含多个处理单元的数据处理系统,每一处理单元执行对应于处理线程的程序指令流。这样的系统的示例是图形处理单元,这些图形处理单元常常包含大量图形处理核心,每一图形处理核心运行执行由图形处理单元执行的全部处理的不同部分的程序指令流。一个示例如下:基于拼图(tile)的图形处理被执行,并且每一图形处理核心在整个图像内的不同拼图上执行诸如遮蔽操作的操作。包含多个处理单元的系统的另一个示例是对称多重处理系统,此种对称多重处理系统正变得普遍用于一般目的处理。在此类系统中,众所周知的,处理的不同部分可在不同处理单元上执行,举例而言,一个处理器核心可专用于计算数值结果,而另一处理器核心可专用于产生用于显示那些数值结果的图形数据。大家亦知道,在数据处理领域,处理器可受限于中断信号,该中断信号用于中断正执行的当前处理并将程序流重导向至异常处理代码的运行。这样的中断在用以处理物理事件的实时处理系统内常见。将中断用于控制多任务系统内的调度(scheduling)亦是有可能的。
技术实现思路
从一方面来看,本专利技术提供一种数据处理设备,该数据处理设备包含:多个处理单元,每一处理单元执行对应于处理线程的程序指令流;及异常控制电路系统,该异常控制电路系统被配置为响应于针对执行各自的处理线程的所述多个处理单元的群组的异常触发事件而控制所述群组的异常处理。本技术认识到:在隐含多个处理单元(每一处理单元执行对应于处理线程的程序指令流)的系统的环境中,存在将各个处理单元的中断行为链接在一起的需要。本技术提供了异常控制电路系统,该异常控制电路系统响应于针对处理单元的群组的异常触发事件而以群组为单位来控制处理单元。因此,异常可被链接至处理单元的群组,并且异常况状(例如,物理信号或软件产生的中断)的发生引起触发在该群组的每一处理单元内的异常处理。群组的每一成员内的由异常控制电路系统触发的异常处理如下:中断当前程序指令流的执行、执行异常处理程序指令流、以及之后恢复原程序指令的执行(在同一个点或不同点)。异常处理与处理器的重设是有所区别的,因为原处理是在异常处理程序指令执行之后被恢复的。我们将了解,当异常事件触发时,群组内的每一处理单元可能具有不同状态并且在异常处理期间可进行不同的响应。因此,异常控制电路系统需要追踪每一处理单元的异常处理。这可由异常控制电路系统通过针对一序列处理单元异常状态的异常触发事件控制每一处理单元遍历仅一次来实现。各个处理单元因此可分别管理,然而以统一并且协调的方式被管理。所述一序列处理单元异常状态可依序包含:对应于程序指令流的处理的正常状态、对应于异常处理程序指令的处理的异常进行状态、及对应于原程序指令流的恢复处理的异常已处理状态。其他实施例可具有多余三种的状态(例如,正常状态、异常进行状态、清除缓存状态及完成状态)。当群组的处理单元完成他们各自的异常处理时,他们将停留于异常已处理状态,直至所有处理单元都已经完成他们的异常处理,此时,这些处理单元返回到正常状态。可使处理单元在处于异常进行状态及异常已处理状态中的任一状态时,不对任何另外的异常触发事件进行响应。这可防止群组发生复杂的嵌套异常。为了促进以便利的方式来控制不同处理单元,每一处理单元具有相关联的处理单元状态变量,这些处理单元状态变量指示返回程序计数器值(该返回程序计数器值对应于原程序指令流内的在执行异常处理程序指令后恢复执行的点(可以是相同的点或不同的点),以及具有当前处理单元异常状态,该当前处理单元异常状态指示处理单元当前所具有的状态为正常状态、异常进行状态及异常已处理状态中的何者。所述处理单元状态变量可便利地储存在各自处理单元内,以促进设计延展性,但可选择地,可以集中地储存(例如,存储在异常控制电路系统内)。对群组的异常处理的控制在如下实施例中变得更容易理解:针对一群组,异常控制电路系统针对一序列群组异常状态的异常触发事件控制进行遍历。这些群组异常状态可为:对应于群组内所有处理单元处理各自的程序指令流(例如,每一处理单元执行其正常线程)的正常状态,对应于异常触发事件已经发生但是并非群组内所有处理单元都已响应该异常触发事件开始异常处理的触发状态,以及对应于群组内所有处理单元已完成异常处理但是并非所有处理单元都已恢复他们的原程序指令流的处理的完成状态。当群组内的所有处理单元都已恢复了他们的原程序指令流的处理时,异常控制电路系统可以将群组从完成状态移动至正常状态。因此,群组被保持在完成状态,直至所有处理单元都返回到他们的正常状态,已恢复异常处理程序指令处理接下来的异常。当群组内的处理单元处于触发状态或完成状态中的任一者时,可以不对任何另外的异常触发事件进行响应。这可防止这些实施例内的嵌套异常。可以通过群组状态变量的储存来促进对处理单元的群组的控制,所述群组状态变量指示当前群组异常状态、群组内的处理单元的总数(该总数可动态配置,例如,通过软件控制)及指示已经开始但尚未完成异常处理的处理单元的计数器数。这些群组状态变量可便利地储存于异常控制电路系统内。在至少一些实施例中,当每一处理单元试图对调度要执行的程序指令时,该处理单元确定当前处理单元状态是否处于正常状态并且群组状态是否处于触发状态。若当前处理单元状态处于正常状态且群组状态处于触发状态,则处理单元从正常状态改变为异常进行状态,储存对于该处理单元的当前程序计数器值(该值用以当作返回地址),并且开始异常处理并递增指示在异常进行状态中的处理单元的个数的计数器值。当计数器值递增了时,该值可与群组内处理单元的总数相比较。当计数器值达到群组内的总数时,群组状态从触发状态改变为完成状态,因此此时所有处理单元已经触发而进入异常处理但并非所有处理单元都完成该异常处理。当每一处理器执行来从异常程序指令的返回时,该处理单元的处理状态可改变为异常已处理状态。当处理单元的状态变为异常已处理状态且群组状态处于完成状态时,处理单元状态可被改变为正常状态,并且可递减计数器值。当递减了计数器值时,递减后的计数器值与数值零相比较,并且如果递减后的计数器值等于零,则群组状态被改变为正常状态。因此,将意识到,当每一处理单元被触发以开始其异常处理时,计数器值可被递增到群组内的总数,然后当(在所有处理单元内都触发异常处理之后)检测到每一处理单元已经完成其异常处理时,计数器值可递减到零。从另一方面来看,本专利技术提供一种数据处理设备,该数据处理设备包含:用于执行程序指令的多个处理装置,每一处理装置执行对应于处理线程的程序指令流;及异常控制装置,该异常控制装置用于响应于针对执行各自的处理线程所述多个处理装置的群组的异常触发事件而控制所述群组的异常处理。从另一方面来看,本专利技术提供一种处理数据的方法,该处理数据的方法包含以下步骤:使用多个处理单元来执行程序指令,每一处理单元执行对应于处理线程之程序指令流;及响应于针对执行各自的处理线程的所述多个处理器的群组的异常触发事件而控制所述群组的异常处理。现在将参考附图通过实例来描述本专利技术的实施例。附图说明图1示意性图示图形处理单元,该图形处理单元包含多个用于执行对应于各自程序线程的各自序指令流的处理单元;图2示意性图本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:西蒙·琼斯乔·多米尼克·迈克尔·塔帕利
申请(专利权)人:ARM有限公司
类型:
国别省市:

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

1