会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 多核处理器 / 访问方法以及多核处理器系统

访问方法以及多核处理器系统

阅读:1065发布:2020-06-25

IPRDB可以提供访问方法以及多核处理器系统专利检索,专利查询,专利分析的服务。并且对因向共享设备(105)的访问而产生的应用程序的中顿进行检测。设备监视装置(103_0)通过设定部(201_0)和设定部(201_1),基于第一CPU向共享设备(105_1)的访问来针对计时器(207)设定访问时间的计测开始。在计时器(207)开始计测后,设备监视装置(103_0)对访问时间超过共享设备响应时间DB(108_0)中储存的规定时间的情况进行检测。在检测出访问时间超过规定时间这一个情况之后,设备监视装置(103_0)通过异常检测部(203)输出检测信号。,下面是访问方法以及多核处理器系统专利的具体信息内容。

1.一种访问方法,其特征在于,

基于第一应用程序的执行开始来激活与多个CPU中取得向外围设备的访问权的第一CPU对应的驱动程序,开始计测访问时间,上述访问时间表示上述第一CPU向上述外围设备进行访问开始到对上述访问的响应信号产生为止的时间,在上述多个CPU中除了上述第一CPU以外的其他CPU无法取得向上述外围设备的访问权的情况下,不访问上述外围设备而访问保持写入上述外围设备的数据的寄存器,在上述访问时间超过规定时间的情况下,输出用于使上述驱动程序复位的检测信号,并且禁止从上述其他CPU向上述寄存器的写入,在基于上述检测信号使上述驱动程序复位之后上述寄存器中保持的数据被写入上述外围设备。

2.根据权利要求1所述的访问方法,其特征在于,

从对上述外围设备的响应时间进行储存的存储器参照上述规定时间。

3.根据权利要求1或2所述的访问方法,其特征在于,在从上述外围设备输出针对上述访问的响应信号的情况下,停止比较上述规定时间与上述访问时间。

4.根据权利要求1或2所述的访问方法,其特征在于,上述寄存器保持在写入被禁止之前写入的数据。

5.根据权利要求1所述的访问方法,其特征在于,

在上述寄存器的数据被写入上述外围设备后,被第二CPU执行的第二应用程序访问上述外围设备。

6.一种多核处理器系统,其特征在于,

包括多个CPU和被上述多个CPU访问的外围设备,上述外围设备与包括计时器、第一检测电路、第二检测电路和保持写入上述外围设备的数据的寄存器的设备监视装置连接,上述计时器计测访问时间,上述访问时间表示从取得向上述外围设备的访问权的第一CPU向上述外围设备进行上述访问开始到对上述访问的响应信号产生为止的时间,上述多个CPU中除了上述第一CPU以外的其他CPU在上述其他CPU无法取得向上述外围设备的访问权的情况下,不访问上述外围设备而访问上述寄存器,上述第一检测电路比较上述访问时间与规定时间,上述第二检测电路在上述访问时间超过上述规定时间时输出检测信号,并停止将从上述其他CPU写入上述外围设备的数据向上述寄存器的写入,在基于上述检测信号使与上述第一CPU对应的驱动程序复位后,上述寄存器所保持的数据被写入上述外围设备。

说明书全文

访问方法以及多核处理器系统

技术领域

[0001] 本发明涉及访问作为监视对象的设备的访问方法以及多核处理器系统。

背景技术

[0002] 以往,作为对在信息处理装置内外连接的设备进行监视的装置,存在监视计时器(watchdog timer)、诊断装置之类的装置。还存在利用这些装置周期性对各设备进行检查,来检测设备异常的技术。另外,还存在将备份系统与主系统分开管理,在检测到主系统内的设备异常的情况下,切换主系统与备份系统的技术。
[0003] 另外,作为发生了异常时的技术,公开有一种设置含有多个内核的多核处理器系统的输入输出装置的附加装置,来记录起动CPU(Central Processing Unit)编号的技术(例如参照下述专利文献1)。另外,作为异常发生后的复原技术,公开有一种在进行CPU的辅助的协处理器控制中,检测宕机(hang up),使宕机后的协处理器复位的技术(例如参照下述专利文献2)。
[0004] 另外,作为使设备间的响应时间缩短的技术,公开有一种在多个CPU、多个I/O(Input/Output)共享系统中设置控制装置,如果起动I/O处于动作中则存储控制信号,在动作完成后,发送虚拟I/O的技术(例如参照下述专利文献3)。
[0005] 专利文献1:日本特开昭55-108026号公报
[0006] 日本专利文献2:特表2007-507034号公报
[0007] 日本专利文献3:特开平6-208536号公报
[0008] 在上述的现有技术中,专利文献1、专利文献2涉及的技术将因硬件的故障引起的异常作为对象。但是,对于因软件访问设备而产生的故障而言,在专利文献1、专利文献2涉及的技术中存在判断为正常而漏掉异常状态这一问题。
[0009] 另外,如果漏掉异常状态,则在多核处理器系统的情况下,会产生存在问题的应用程序软件(以下称为“应用程序”)取得了向共享设备的访问权而中顿(stall),其他的应用程序无法取得向共享设备的访问权的状态。结果,存在无法取得访问权的其他应用程序也中顿这一连锁发生中顿的问题。另外,在连锁发生了中顿的情况下,存在必须划分中顿了的应用程序中哪个应用程序是存在问题的软件这一问题。

发明内容

[0010] 本发明为了消除上述现有技术的问题点而提出,其目的在于,提供一种能够检测出应用程序因访问共享设备而产生的中顿的访问方法以及多核处理器系统。
[0011] 为了解决上述课题、实现目的,公开的访问方法基于第一应用程序的执行开始来激活与第一CPU对应的驱动程序,基于向外围设备的访问来开始计测访问时间,在访问时间超过规定时间的情况下输出用于使驱动程序复位的检测信号,并且禁止向对从第一CPU写入外围设备的数据进行保持的寄存器的写入。
[0012] 根据本访问方法以及多核处理器系统,起到能够检测出应用程序因访问共享设备而产生的中顿这一效果。

附图说明

[0013] 图1是表示实施方式涉及的多核处理器系统100的硬件与软件的框图。
[0014] 图2是表示设备监视装置103的功能的框图。
[0015] 图3是表示多核处理器系统100的通常运用时的动作的说明图。
[0016] 图4是表示多核处理器系统100产生异常状态之前的动作的说明图。
[0017] 图5是表示多核处理器系统100产生了异常状态后的动作的说明图。
[0018] 图6是表示多核处理器系统100从异常状态复原的动作的说明图。
[0019] 图7是表示设备响应时间DB108的存储内容的一个例子的说明图。
[0020] 图8是表示到检测出多核处理器系统100的异常状态为止的处理的流程图。
[0021] 图9是表示多核处理器系统100从异常状态复原的处理的流程图。

具体实施方式

[0022] 以下参照附图,对公开的访问方法以及多核处理器系统的优选实施方式详细进行说明。
[0023] (多核处理器系统100的硬件以及软件)
[0024] 图1是表示实施方式涉及的多核处理器系统100的硬件与软件的框图。在图1中,多核处理器系统100包括CPU101#0~CPU101#n、监视计时器102、设备监视装置103_0以及设备监视装置103_1。各部通过总线104分别连接。假设本实施方式涉及的多核处理器系统100为移动电话等小型的终端装置。另外,虽然图1中没有图示,但ROM(Read‐Only Memory)、RAM(Random Access Memory)、闪存ROM等存储装置与总线104连接。
[0025] 另外,多核处理器系统100包括共享设备105_0~共享设备105_3。共享设备105_0、共享设备105_1经由设备监视装置103_0与总线104连接,共享设备105_
2经由设备监视装置103_1与总线104连接。共享设备105_3直接与总线104连接。
[0026] 另外,CPU101#0~CPU101#n分别包括作为中断输入端子的INT(INTerrupt)端子106#0~INT端子106#n。这里,n是0以上的整数。其中,尾号“#n”表示了是针对第n个CPU的附图标记。例如,INT端子106#n表示是CPU#n所含的中断输入端子。
[0027] 设备监视装置103_0、设备监视装置103_1包括虚拟寄存器107_0、虚拟寄存器107_1,能够访问设备响应时间DB108_0、设备响应时间DB108_1。另外,共享设备105_0~共享设备105_3包括对共享设备105的动作进行控制的控制寄存器109_0~控制寄存器109_3。
[0028] CPU101#0~CPU101#n掌控多核处理器系统100的整体控制。这里,多核处理器系统100成为含有多个内核的多核处理器系统。另外,多核处理器系统100也可以是内核为一个的单核处理器系统。另外,CPU101#0~CPU101#n包括缓存存储器、寄存器。
[0029] 监视计时器102是监视CPU101#0~CPU101#n、共享设备105_0~共享设备105_3等是否停止的诊断电路。例如,监视计时器102在CPU101、共享设备105等接受到过电压而停止时,检测CPU101、共享设备105等的异常。另外,监视计时器102从设备监视装置103接收共享设备105的异常状态的通知。
[0030] 设备监视装置103_0、设备监视装置103_1是监视共享设备105_0~共享设备105_3的装置。另外,设备监视装置103也可以设定作为监视对象的共享设备105的优先级,利用一个设备监视装置103单独监视优先级高的共享设备105,由一个设备监视装置103统一监视其他共享设备105组。
[0031] 具体而言,由于不希望共享设备105_2为停止状态,所以监视的优先级高。因此,多核处理器系统100被设计成针对共享设备105_2由设备监视装置103_1单独进行监视。另外,即使共享设备105_3为停止状态对多核处理器系统100的动作也无影响,其监视的优先级低。
[0032] 因此,多核处理器系统100被设计成针对共享设备105_3不通过设备监视装置103进行监视。共享设备105_0、共享设备105_1被定义成控制相对缓慢的共享设备
105,监视的优先级被设定为中间。多核处理器系统100被设计成由设备监视装置103_0统一对共享设备105_0、共享设备105_1进行监视。
[0033] 另外,设备监视装置103与总线104、监视对象的共享设备105连接,具有与监视对象的共享设备105相等数量的控制线110、控制线112、数据线111、数据线113。
[0034] 例如,设备监视装置103_0具有与第一个监视对象即共享设备105_0对应的、总线104侧的控制线110_0、数据线111_0、共享设备105_0侧的控制线112_0、数据线113_0。并且,设备监视装置103_0具有与第二个监视对象即共享设备105_1对应的、总线104侧的控制线110_1、数据线111_1、共享设备105_1侧的控制线112_1、数据线113_1。其中,针对设备监视装置103的功能将利用图2后述。
[0035] 共享设备105_0、共享设备105_3是为CPU101#0~CPU101#3所利用的外围设备。具体而言,是通信单元、拍摄设备、音响设备、显示器、键盘等。另外,作为针对设备监视装置103的监视优先级被设定得高的共享设备105_2的具体例,可举出通信单元等。作为针对设备监视装置103的监视优先级被设定为中间的共享设备105_0、共享设备105_1的具体例,可举出拍摄设备、音响设备等。
[0036] INT端子106#0~INT端子106#n是接收来自设备监视装置103的中断信号的中断输入端子。另外,虽然图1中没有图示,但INT端子106#0~INT端子106#n还从共享设备105等处接收中断信号。
[0037] 虚拟寄存器107_0~虚拟寄存器107_2保持CPU101#0~CPU101#n写入控制寄存器109_0~控制寄存器109_2的写入信息。例如,虚拟寄存器107_0保持写入控制寄存器109_0的写入信息。其中,虚拟寄存器107可以保持与控制寄存器109的任意位对应的写入信息,也可以保持与控制寄存器109的一部分位对应的写入信息。
[0038] 此外,共享设备105中也可以存在控制寄存器109以外的其他寄存器,其他寄存器也作为虚拟寄存器107的保持对象。其他寄存器例如是保存有共享设备105的动作状况的状态寄存器等。
[0039] 设备响应时间DB108_0、设备响应时间DB108_1是存储被写入共享设备105的控制寄存器109时的响应时间的存储区域。其中,设备响应时间DB108_0、设备响应时间DB108_1的实体可以存在于前述的与总线104连接的RAM、ROM、闪存ROM,或者可以存在于在设备监视装置103内存在的存储区域。
[0040] 接着,作为多核处理器系统100的软件,包括OS(Operating System)121#0~OS121#n、驱动程序122#0_0~驱动程序122#n_1、应用程序123_0~应用程序123_5。
[0041] OS121#0~OS121#n是控制CPU101#0~CPU101#n的软件。例如,OS121#0中包括决定对应用程序123_0、应用程序123_1中的CPU101#0分配的应用程序的调度程序、将决定的应用程序分配给CPU101#0的分派程序等软件。另外,OS121#0~OS121#n进行针对共享设备105的排他控制处理。
[0042] 驱动程序122#0_0~驱动程序122#n_1是OS121#0~OS121#n提供的功能之一,是对共享设备105进行访问的软件。驱动程序122#0_0~驱动程序122#n_1根据来自应用程序123_0~应用程序123_5的调出而被激活,向对应的共享设备105进行访问。
[0043] 其中,在图1中,驱动程序122#0_0、驱动程序122#1_0、…、驱动程序122#n_0是访问共享设备105_0的软件。同样,驱动程序122#0_1、驱动程序122#1_1、…、驱动程序122#n_1是访问共享设备105_1的软件。另外,虽然图1中没有图示,但针对共享设备105_2、共享设备105_3的驱动程序122也存在于OS121#0~OS121#n内。
[0044] 这样,CPU101#0~CPU101#n通过调出各自的驱动程序122,能够对一个共享设备105进行访问。为了不发生因同时访问而引起的不良情况,多核处理器系统100被设计成通过排他控制处理,不对一个共享设备105竞争访问。
[0045] 应用程序123_0~应用程序123_5是向多核处理器系统100的用户提供服务的软件组。具体而言,应用程序123_0~应用程序123_5是音乐再生应用程序、游戏应用程序、拍摄应用程序等。应用程序123_0~应用程序123_5通过调出驱动程序122#0_0~驱动程序122#n_1,来操作共享设备105_0~共享设备105_3。例如,假设应用程序123_3为音乐再生应用程序,共享设备105_1为音响设备。此时,应用程序123_0调出驱动程序122#1_1来操作音响设备,实现音乐再生。
[0046] 图2是表示设备监视装置103的功能的框图。设备监视装置103包括设定部201_0、设定部201_1、时差检测部202、异常检测部203、ACK输出部204、设备控制部205、写入部206、计时器207。另外,设备监视装置103、共享设备105从外部接受时钟输入。
[0047] 设定部201_0、设定部201_1具有基于CPU101#0~CPU101#n中的第一CPU向共享设备105的访问,对计时器207设定访问时间的计测开始的功能。访问时间是将访问共享设备105的时刻作为开始时刻,将产生了来自共享设备105的针对访问的响应信号的时刻作为结束时刻的时间。
[0048] 例如,设定部201_1检测CPU101#n针对共享设备105_1的写入请求,对计时器207设定访问时间的计测开始。另外,设定部201_0、设定部201_1在从共享设备105输出了针对访问的响应信号的情况下,可以停止访问时间的计测。另外,响应信号是ACK(ACKnowledgement)信号。需要说明的是,设定部201_0检测针对共享设备105_0的访问,设定部201_1检测针对共享设备105_1的访问。其中,设定的信息被存储到设备监视装置103的存储区域、计时器207的设定寄存器等存储区域。
[0049] 时差检测部202具有对访问时间超过规定时间的情况进行检测的功能。其中,规定时间是作为共享设备105的规格的响应时间,被保存在设备响应时间DB108中。例如,时差检测部202检测以针对共享设备105_1的写入请求的时刻为开始时刻的访问时间超过了共享设备105_1的响应时间500[微秒]的情况。其中,检测结果被存储到设备监视装置103的存储区域。
[0050] 异常检测部203具有在通过时差检测部202检测出访问时间超过了规定时间这一情况时,输出检测信号的功能。作为检测信号,有针对监视计时器102表示异常状态的检测信号、针对INT端子106表示异常状态的检测信号。例如,异常检测部203在超过了作为共享设备105_1的规格的响应时间500[微秒]的情况下,针对监视计时器102与INT端子106输出检测信号。
[0051] ACK输出部204具有在第一CPU访问共享设备105的过程中,对来访问共享设备105的第二CPU输出虚拟ACK信号的功能。虚拟ACK信号是与ACK信号同内容的信号。例如,ACK输出部204在CPU101#n访问共享设备105_1的过程中,对来访问共享设备105_1的CPU101#1输出虚拟ACK信号。其中,输出了虚拟ACK信号这一信息可被存储到设备监视装置103的存储区域。
[0052] 设备控制部205具有对针对第一CPU的访问没有响应信号的共享设备105,进行复位指示的功能。例如,设备控制部205对针对CPU101#n的访问没有响应信号的共享设备105_1进行复位的指示。其中,进行了复位的指示这一信息被存储到设备监视装置103的存储区域。
[0053] 写入部206具有在通过设备控制部205对共享设备105完成了复位之后,将虚拟寄存器107的内容写入到控制寄存器109的功能。例如,写入部206在共享设备105_1复位完成之后,将虚拟寄存器107_1的内容写入到控制寄存器109_1。其中,已经写入这一信息可被存储到设备监视装置103的存储区域。
[0054] 计时器207具有对访问时间进行计测的功能。例如,计时器207通过从访问开始时刻对从外部输入的时钟进行计数,来计测访问时间。另外,计时器207通过设定部201_0、设定部201_1来开始计测、停止计测。
[0055] 以下,对使用设备监视装置103的功能,在图3~图6中多核处理器系统100从通常运用状态变为异常状态,进而从异常状态复原的动作为止的一系列动作进行说明。另外,在图3~图6中,将应用程序123_3假定为音乐再生应用程序,将应用程序123_5假定为产生声音的游戏应用程序,将共享设备105_1假定为音响设备。
[0056] 图3是表示多核处理器系统100的通常运用时的动作的说明图。通常运用时的多核处理器系统100O在S121#0~OS121#n调停、切换驱动程序122#0_0~驱动程序122#n_1的同时进行动作。
[0057] 具体而言,应用程序123_3进行音乐数据的解码以及DA变换,通过将变换结果经由驱动程序122#1_1写入到控制寄存器109_1,来使共享设备105_1再生音乐。另外,应用程序123_5通过将声音数据经由驱动程序122#n_1写入到控制寄存器109_1,来使共享设备105_1再生声音。用户处于能够听到从应用程序123_5发出的声音数据、与从应用程序123_3发出的音乐数据合成后的声音的状态。
[0058] 通常运用时的设备监视装置103例如在接收到来自驱动程序122#1_1的写入请求后,将写入对象的数据写入控制寄存器109_1,并且,将写入对象的数据还写入对应的虚拟寄存器107_1。在接收到写入请求后,设定部201_1设定到由计时器207产生与写入请求对应的响应信号为止的访问时间的计测开始。
[0059] 由于图3所示的多核处理器系统100是通常运用时,所以共享设备105_1向CPU101#1发送在作为规格的响应时间=500[微秒]以内与写入请求对应的响应信号。在从共享设备105_1产生了作为响应信号的ACK信号后,设定部201_1设定计时器207对访问时间的计测停止。
[0060] 图4是表示多核处理器系统100发生异常状态之前的动作的说明图。在图4所示的多核处理器系统100中,表示了应用程序123_5因故障而中顿的状态。作为故障的内容,例如是应用程序123_5将非法值经由驱动程序122#n_1写入到共享设备105_1的情况。
[0061] 此时,存在应用程序123_5取得了作为多核处理器系统100的共享资源的、向共享设备105_1的访问权而中顿的情况。其中,在图4的状态下,由于共享设备105_1没有故障,所以无法由监视计时器102检测出异常状态。另外,驱动程序122#n_1处于被应用程序123_5锁定的状态。
[0062] 如果多核处理器系统100是单核处理器系统,则OS121与应用程序123_5的中顿一同中顿。具有多个内核的多核处理器系统100通过使按每个CPU101独立的OS动作,能够将中顿的影响阻止到最小限度。但是,在CPU101#1上的应用程序123_3想要访问共享设备105_1的情况下,成为不返回响应信号的状态,或者不能进行访问的状态。
[0063] 本实施方式涉及的多核处理器系统100能防止这样的不返回响应信号的状态,或者不能进行访问的状态。首先,设定部201_1在应用程序123_5进行写入时,设定计时器207的计测开始。
[0064] 图5是表示多核处理器系统100发生了异常状态后的动作的说明图。图5所示的多核处理器系统100表示了图4中开始计测的计时器207的经过时间超过了由设备响应时间DB108设定的响应时间=500[微秒]的情况。具体而言,多核处理器系统100在图4所示的状态下,是应用程序123_5向声音数据FIFO(First In,First Out)写入声音数据,对控制寄存器109_1设定了意味着数据设定完成的标志的情况。此时,设想作为共享设备105_1的规格,决定为共享设备105_1从标志设定开始以500[微秒]发行表示接收完成的ACK信号的情况。
[0065] 在由时差检测部202检测出从检测写入请求起的经过时间超过了500[微秒]的情况下,异常检测部203对监视计时器102输出表示异常状态的检测信号。另外,异常检测部203对INT端子106也通知表示共享设备105_1的异常状态的检测信号。其中,从INT端子106接收到检测信号的CPU101执行对锁定了驱动程序122#n_1的软件进行检测的中断句柄。此外,软件的检测请求可以向INT端子106#0~INT端子106#n广播发送,也可以仅向与进行了访问的CPU101#1对应的INT端子106#1发送。
[0066] 另外,在是未向CPU101#1返回响应信号的状态的情况下,ACK输出部204将虚拟ACK信号向CPU101#1发送,防止应用程序123_3的停止。在现有例涉及的多核处理器系统100中,采取了不返回ACK信号而由OS121检测超时来使应用程序123_3异常结束这一应对措施。但是,还存在OS121的超时花费数秒的情况、或者OS121不超时地中顿的情况。在本实施方式涉及的多核处理器系统100中,通过发送虚拟ACK信号,能够避免应用程序123_3的异常结束。
[0067] 图6是表示多核处理器系统100从异常状态复原的动作的说明图。图6所示的多核处理器系统100处于在图5中异常检测部203、ACK输出部204动作之后。在图5中接收到异常状态的通知的监视计时器102通知CPU101#n的热启动请求。接收到热启动请求的CPU101#n进行软复位。另外,驱动程序122#n_1被解除锁定,将向共享设备105_1的访问权释放。
[0068] 另外,从INT端子106#n接收到检测信号的CPU101#n执行对锁定了驱动程序122#n_1的软件进行检测的中断句柄,来检测应用程序123_5。在检测出之后,CPU101#n强制使检测出的应用程序123_5结束。
[0069] 另外,在设备控制部205针对共享设备105_1进行了复位之后,将写入部206写入到虚拟寄存器107_1中的数据写入控制寄存器109_1。通过以上的动作,多核处理器系统100从异常状态恢复。能够强制结束存在问题的应用程序123_5,使应用程序123_3继续正常进行处理。
[0070] 图7是表示设备响应时间DB108的存储内容的一个例子的说明图。设备响应时间DB108包括设备名和响应时间这两个字段。设备名字段中保存共享设备105的名称。另外,也可以是能够唯一确定共享设备105的ID(IDentification)。响应时间字段中保存共享设备105的响应时间。
[0071] 例如,在与监视的优先级为中间的共享设备105对应的设备响应时间DB108_0中,共享设备105_0、共享设备105_1的响应时间分别被保存为400[微秒]、500[微秒]。另外,在与监视的优先级高的共享设备105对应的设备响应时间DB108_1中,共享设备105_2的响应时间被保存为10[毫秒]。另外,响应时间字段可由用户自由变更。
[0072] 设备监视装置103基于图2所示的设备监视装置103的功能、以及图7所示的设备响应时间DB108的存储内容,进行从异常状态复原的处理。在图8、图9中表示了设备监视装置103检测异常状态,接着执行复原处理的流程图。
[0073] 另外,在图8、图9所示的流程图中,假设应用程序123_5由于应用程序123_5针对共享设备105_1的写入请求而中顿,然后,应用程序123_3对共享设备105_1进行写入请求。另外,应用程序123_5、驱动程序122#n_1由CPU101#n执行,应用程序123_3由CPU101#1执行。其中,应用程序123_3调出驱动程序122#1_1,在图8、图9中,由于驱动程序122#1_1的处理与驱动程序122#n_1相同,所以未图示,而引用驱动程序122#n_1的处理编号来进行说明。
[0074] 图8是表示检测出多核处理器系统100的异常状态为止的处理的流程图。应用程序123_5开启驱动程序122#n_1(步骤S801)。被开启的驱动程序122#n_1取得针对共享设备105_1的访问权(步骤S802)。接着,驱动程序122#n_1进行控制寄存器109_1的避让/复原(步骤S803)。
[0075] 在进行了控制寄存器109_1的避让/复原之后,应用程序123_5调出驱动程序122#n_1,执行控制寄存器109_1的写入请求(步骤S804)。被调出的驱动程序122#n_1对控制寄存器109_1进行写入请求(步骤S805)。
[0076] 接收到写入请求的设备监视装置103_0通过设定部201_1设定计时器207的计测开始(步骤S806)。接着,设备监视装置103_0对虚拟寄存器107_1与控制寄存器109_1写入作为写入请求的数据(步骤S807)。
[0077] 在写入请求后,应用程序123_5判断是否检测出异常发生(步骤S808)。在发生了异常的情况下(步骤S808:是),应用程序123_5判断能否软件恢复(步骤S809)。在能够软件恢复的情况下(步骤S809:是),应用程序123_5执行软件恢复(步骤S810)。在不能软件恢复的情况下(步骤S809:否),应用程序123_5为异常状态(步骤S811),以后,应用程序123_5处于中顿的状态。
[0078] 在没有检测出异常发生的情况下(步骤S808:否),应用程序123_5转移到步骤S804的处理。其中,在步骤S808为否的情况下,由于从共享设备105_1发送ACK信号,所以停止在步骤S806中设定了的计时器207的计测。在执行了步骤S810之后,应用程序123_5也转移到步骤S804的处理。
[0079] 接着,假设在应用程序123_5中顿中进行应用程序123_3访问共享设备105_1的情况。应用程序123_3开启驱动程序122#1_1(步骤S812)。在步骤S812的处理后,执行驱动程序122#1_1,步骤S812的处理后的驱动程序122#1_1的处理与步骤S802、步骤S803的处理相同。但是,由于应用程序123_5具有针对共享设备105_1的访问权而中顿,所以应用程序123_3无法取得针对共享设备105_1的访问权。因此,驱动程序122#1_1无法完成作为步骤S803的处理的控制寄存器109_1的避让/复原而失败。
[0080] 接着,应用程序123_3调出驱动程序122#1_1,执行控制寄存器109_1的写入请求(步骤S813)。在步骤S813的处理后,执行驱动程序122#1_1,作为处理,执行与步骤S805的处理同内容的处理。
[0081] 从驱动程序122#1_1接收到向控制寄存器109_1的写入请求的设备监视装置103_0对虚拟寄存器107_1进行写入(步骤S814)。其中,在步骤S814的处理中,由于应用程序123_3不具有针对共享设备105_1的访问权,所以写入请求未被反映到控制寄存器109_1。
[0082] 图9是表示多核处理器系统100从异常状态复原的处理的流程图。设备监视装置103_0利用时差检测部202检测计时器207计测的访问时间超过了响应时间的情况,作为异常状态(步骤S901)。在检测出异常状态之后,设备监视装置103_0利用ACK输出部
204向CPU101#1输出虚拟ACK信号(步骤S902)。接收到虚拟ACK信号的CPU101#1正常执行应用程序123_3(步骤S903)。
[0083] 另外,在检测出异常状态后,设备监视装置103_0利用异常检测部203将检测信号向监视计时器102与INT端子106输出(步骤S904)。
[0084] 从INT端子106#n接收到检测信号的CPU101#n强制结束应用程序123_5(步骤S905)。另外,驱动程序122#n_1基于通过监视计时器102接收到检测信号的OS121#n的热启动,将针对共享设备105_1的访问权释放(步骤S906)。
[0085] 接着,设备监视装置103_0利用异常检测部203禁止针对虚拟寄存器107_1的写入(步骤S907)。在禁止写入后,设备监视装置103利用设备控制部205针对共享设备105_1进行复位的指示(步骤S908)。在共享设备105_1的复位完成后,设备监视装置103_0利用写入部206将虚拟寄存器107_1的内容写入到控制寄存器109_1(步骤S909)。在写入后,设备监视装置103_0将针对虚拟寄存器107的禁止写入解除(步骤S910)。
[0086] 其中,在图8、图9所示的流程图中,当存在问题的应用程序123_5中顿后,没有问题的应用程序123_3对共享设备105_1进行访问。即便在存在问题的应用程序123_5中顿后,任意应用程序都不访问共享设备105_1的情况下,多核处理器系统100也能恢复异常状态。在任意应用程序都不访问共享设备105_1的情况下,设备监视装置103_0不进行步骤S814、步骤S902、步骤S909的处理。
[0087] 如以上说明那样,根据访问方法以及多核处理器系统,在CPU借助驱动程序开始访问的时刻以后,不返回响应信号地经过了规定时间的情况下,设备监视装置输出共享设备的异常状态作为检测信号。由此,多核处理器系统能够检测出因驱动程序访问共享设备而产生的中顿。
[0088] 另外,关于规定时间,设备监视装置也可以从对作为共享设备的规格的响应时间进行保存的存储器参照。由此,多核处理器系统能够根据响应时间不同的共享设备的动作,检测出异常状态。另外,多核处理器系统也可以基于用户的指示等来变更规定时间。
[0089] 另外,在从共享设备输出针对访问的响应信号的情况下,设备监视装置停止比较规定时间与从访问开始时刻起的访问时间。由此,多核处理器系统能够在共享设备正常动作的情况下不检测为异常状态。
[0090] 另外,设备监视装置具有对从CPU写入共享设备的数据加以保持的存储区域,在检测出异常状态的情况下,可以禁止针对存储区域的保持。由此,多核处理器系统能够保护处于异常状态而未被写入到共享设备的数据被其他CPU等重写。
[0091] 另外,设备监视装置也可以在检测出异常之后也保持在检测出异常状态之前已被写入到存储区域的数据。由此,多核处理器系统能够保持处于异常状态而未被写入到共享设备的控制寄存器的数据。
[0092] 另外,设备监视装置可以在基于检测信号将驱动程序复位之后,将存储区域中保持的数据写入到共享设备的控制寄存器。由此,多核处理器系统能够从异常状态复原,可以将由与发生了异常状态的应用程序不同的、没有问题的应用程序产生的数据写入到共享设备。
[0093] 另外,设备监视装置可以在将存储区域中保持的数据写入到共享设备后,接收由与执行了发生异常状态的应用程序的CPU不同的其他CPU所执行的其他应用程序向共享设备的访问。由此,多核处理器系统能够在其他应用程序不中顿的情况下避免连锁发生中顿。
[0094] 另外,在现有例涉及的多核处理器系统中,OS检测出没有来自应用程序的响应的情况作为异常状态。该情况下,由于到能够检测为异常状态为止花费数秒,所以导致发生中顿的连锁,另外,存在用户的便利性降低的问题。在本实施方式涉及的多核处理器系统中,由于能够在共享设备的响应时间这一短时间检测出异常状态,所以具有不仅能够在发生中顿的连锁之前检测出异常状态,而且用户也难以注意到发生了异常状态这一效果。
[0095] 另外,在现有例涉及的多核处理器系统中,当连锁发生了中顿时,用户有可能错觉为是装置的故障。发生了错觉的结果是,存在设计者等针对故障进行应对这一问题。在认为装置故障的情况下,还存在为了检查故障而回收装置、采取应对花费的成本变大这一问题。另外,还存在因软件引起的异常发生在各种条件重叠时产生,难以再现异常状态这一问题。
[0096] 但是,在本实施方式涉及的多核处理器系统中,由于将存在问题的应用程序强制结束,使其他的应用程序正常执行,所以用户不会错觉为是装置的故障,能够容易地判断为应用程序存在问题。由此,当有了故障的报告时,可以不进行装置的回收,开发者能够通过进行存在问题的应用程序的重新发布来应对,因此多核处理器系统能够减小应对花费的成本。
[0097] 另外,本实施方式中说明的设备监视装置103也可以由面向标准电池、高度组织化的ASIC(Application Specific Integrated Circuit)等特定用途IC(以下简称为“ASIC”)、FPGA等PLD(Programmable Logic Device)实现。具体而言,例如可以通过利用HDL语言对上述的设备监视装置103的功能(设定部201~计时器207)进行功能定义,并将该HDL语言逻辑合成而赋予给ASIC、PLD,来制造设备监视装置103。
[0098] 附图标记说明:
[0099] 102-监视计时器;103-设备监视装置;105-共享设备;107-虚拟寄存器;108-设备响应时间DB;109-控制寄存器;110、112-控制线;111、113-数据线;201-设定部;202-时差检测部;203-异常检测部;204-ACK输出部;205-设备控制部;206-写入部;
207-计时器。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用