CN107273248A - 半导体设备以及访问管理方法 - Google Patents
半导体设备以及访问管理方法 Download PDFInfo
- Publication number
- CN107273248A CN107273248A CN201710218214.XA CN201710218214A CN107273248A CN 107273248 A CN107273248 A CN 107273248A CN 201710218214 A CN201710218214 A CN 201710218214A CN 107273248 A CN107273248 A CN 107273248A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- unit
- access
- processing
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
本公开涉及半导体设备以及访问管理方法。其中,一种半导体设备包括多个处理单元、被多个处理单元共享的共享资源以及保证单元。保证单元限制并由此控制处理单元对共享资源的访问,并且当处理单元故障时,改变访问的控制,使得接管故障处理单元的处理的另一处理单元被允许访问故障处理单元已经被允许访问的访问目的地的至少一部分。
Description
技术领域
本发明涉及半导体设备以及访问管理方法。例如,本发明涉及半导体设备以及用于控制对共享资源的访问的访问管理方法。
背景技术
存在即使发生一些类型的故障或问题时系统需要继续其操作的情况。对于这种系统,已知称为容错系统的各种系统。
例如,日本未审查专利申请公开第H5-204689号公开了一种控制设备,包括:数据库,被配置为预先保持用于执行预定功能的程序组和数据组,诸如各种信息项;多个CPU;以及接口,用于外围设备,并执行之后的控制。即,在日本未审查专利申请公开第H5-204689号公开的控制设备中,多个CPU中的一个特定CPU具有管理功能权利,以管理由其他CPU执行的处理。基于该管理功能权利,当给定CPU中发生异常时,该特定CPU使正常操作的另一CPU处理已经被故障CPU处理的程序。
发明内容
本发明的发明人找到以下问题。考虑到对资源访问的排他性,存在以下情况:当给定CPU正在执行给定处理时,其他CPU应该被禁止访问在给定处理中使用的资源。然而,在日本未审查专利申请公开第H5-204689号公开的系统中,每个CPU均可以对连接切换装置进行改变。因此,存在无论是故意还是由于故障,每个CPU都可以阻止访问和/或进行身份欺诈等的问题。因此,期望提供一种容错系统,同时确保对资源访问的排他性。
其他目的和新颖特征将根据说明书和附图的以下描述而变得更加明显。
根据一个实施例,当处理单元故障时,保证单元(guard unit)改变访问的控制,使得接管故障处理单元的处理的另一处理单元被允许访问故障处理单元已经被允许访问的访问目的地的至少一部分。
根据上述实施例,可以提供一种容错系统,同时确保对资源访问的排他性。
附图说明
上述和其他方面、优势和特征将根据以下结合附图的特定实施例的描述而变得更加明显,其中:
图1是示出根据一个实施例的半导体设备的简略配置示例的框图;
图2是示出根据第一实施例的半导体设备的简略配置示例的框图;
图3是示出根据第一实施例的修改示例的半导体设备的示例的框图;
图4是根据第一实施例的用于解释寄存器C的结构示例的示图;
图5是根据第一实施例的用于解释寄存器E1的结构示例的示图;
图6是示出由根据第一实施例的半导体设备执行的操作的示例的流程图;
图7是根据第二实施例的用于解释寄存器E1的结构示例的示图;
图8是示出根据第三实施例的半导体设备的简略配置示例的框图;
图9是示出由根据第三实施例的半导体设备执行的操作的示例的流程图;
图10是示出根据第四实施例的半导体设备的简略配置示例的框图;
图11是根据第四实施例的用于解释寄存器D的结构示例的示图;
图12是根据第四实施例的用于解释寄存器F的结构示例的示图;
图13是示出由根据第四实施例的半导体设备执行的操作的示例的流程图;
图14是示出根据第五实施例的半导体设备的简略配置示例的框图;
图15是示出由根据第五实施例的半导体设备执行的操作的示例的流程图;以及
图16是根据第六实施例的用于解释寄存器F的结构示例的示图。
具体实施方式
为了解释的清楚,以下说明书和附图可以根据需要被部分省略和简化。此外,在附图中,相同的符号被分配给相同的部件,并且根据需要省略重复说明。
实施例概况
在解释实施例的细节之前,以下解释它们的概况。图1是示出根据一个实施例的半导体设备10的简略配置示例的框图。如图1所示,半导体设备10包括处理单元11A、11B和11C、共享资源12、以及保证单元13。应注意,示出三个处理单元来作为图1中的处理单元。然而,处理单元的数量不限于三个,只要半导体设备10包括至少两个处理单元即可。应注意,在以下说明中,当不需要相互区分时,多个处理单元11A、11B和11C可以简称为“处理单元11”。半导体设备10是处理单元11访问共享资源12并执行处理的设备。
处理单元11是硬件(电路),其访问共享资源12并执行处理。处理单元11的示例包括诸如CPU(中央处理单元)和DMAC(直接存储存取控制器)的处理电路,但是处理单元11不限于这些处理电路。
共享资源12是被多个处理单元11共享的资源。共享资源12的示例包括诸如共享存储器、通信单元(诸如CAN(控域网)单元)、定时器和AD转换器(模拟/数字转换器)的资源,但是共享资源12不限于这些资源。此外,共享资源12可以是一个资源或者可以是多个资源。
保证单元13是硬件(电路),其限制处理单元11对共享资源的访问。保证单元13限制并从而控制处理单元11对共享资源12的访问。此外,当一个处理单元11故障时,保证单元13改变访问的控制(以下称为“访问控制”),使得接管故障处理单元11的处理的另一处理单元11被允许访问故障处理单元11已经被允许访问的访问目的地的至少一部分。例如,假设在第一状态中,处理单元11A可以访问共享资源12,并且处理单元11B和11C被禁止访问共享资源12。即,在第一状态中,保证单元13允许处理单元11A访问共享资源12,并禁止处理单元11B和11C访问共享资源12。这里,假设处理单元11已发生故障。在作为故障之后的状态的第二状态中,保证单元13改变访问控制,使得被预先确定接管处理单元11A的处理的另一处理单元11(例如,处理单元11B)被刚刚允许访问共享资源12。因此,处理单元11B可以接管处理单元11A的处理。
如上所述,根据半导体设备10,可以通过由保证单元13施加的对访问的限制来确保对资源访问的排他性。此外,被处理单元11中的故障触发的保证单元13改变访问控制,使得接管故障处理单元11的处理的另一处理单元11被允许访问共享资源12,从而可以继续期望的处理。即,根据半导体设备10,可以提供容错系统,同时确保对资源的访问(以下称为“资源访问”)的排他性。
第一实施例
接下来,解释一个实施例的细节。图2是示出根据第一实施例的半导体设备20的简略配置示例的框图。如图2所示,半导体设备20包括处理单元210A和210B、共享存储220A、外围功能单元220B和220C、保证单元230、故障检测单元240A和240B、以及中断控制单元250。应注意,示出两个处理单元来作为图2中的处理单元。然而,处理单元的数量不限于两个,只要半导体设备20包括至少两个处理单元即可。应注意,在以下说明中,当不需要相互区别时,多个处理单元210A和210B可以简称为“处理单元210”。此外,当不需要相互区别时,多个故障检测单元240A和240B可以简称为“故障检测单元240”。
共享资源220A以及外围功能单元220B和220C中的每一个都是上述共享资源12的示例。以下,共享存储器220A以及外围功能单元220B和220C被统称为“共享资源220”。应注意,三个资源,即共享存储器220A以及外围功能单元220B和220C被示为图2中的共享资源220。然而,资源的数量不限于三个,只要具有至少一个资源即可。半导体设备20是处理单元210访问共享资源220并执行处理的设备。
处理单元210对应于上述处理单元11。即,处理单元210访问共享资源220并执行处理。处理单元210通过总线260连接至中断控制单元250、保证单元230、共享资源220等。应注意,故障检测单元240A被设置为用于检测处理单元210A中的故障的机制。此外,故障检测单元240B被设置为检测处理单元210B中的故障的机制。
故障检测单元240通过使用任何公共已知的故障检测技术来检测处理单元210中的故障。例如,故障检测单元240通过使用锁步技术等来检测处理单元210中的故障。应注意,故障检测单元240例如被形成为检测处理单元210中的故障的硬件(电路)。然而,故障检测单元240不限于硬件配置。即,故障检测单元240可以通过硬件、固件、软件或者其至少两种的组合来形成。故障检测单元240A和240B的每一个都输出错误信号Er。在该实施例中,故障检测单元240A通过信号线连接至中断控制单元250,并且还通过信号线连接至保证单元230的更新单元232。因此,从故障检测单元240A输出的错误信号Er被输入至中断控制单元250和保证单元230的更新单元232中的每一个。类似地,故障检测单元240B通过信号线连接至中断控制单元250并且还通过信号线连接至保证单元230的更新单元232。因此,从故障检测单元240B输出的错误信号Er被输入至中断控制单元250和保证单元230的更新单元232中的每一个。当故障检测单元240A检测处理单元210A中的故障时,故障检测单元240A使能错误信号Er(即,将错误信号Er的状态变为使能状态)。此外,当故障检测单元240B检测到处理单元210B中的故障时,故障检测单元240B使能错误信号Er。应注意,在图2所示的示例中,故障检测单元240通过信号线直接连接至更新单元232。然而,它们可以通过另一部件(诸如在其间夹置的中断控制单元250)而相互连接,以传输/接收错误信号Er。
中断控制单元250是控制中断并输出中断信号INT的中断控制器。当中断控制单元250接收到使能的错误信号Er时(错误信号Er处于使能状态),中断控制单元250使能中断信号INT(即,将中断信号INT的状态变为使能状态)。在该实施例中,中断控制单元250通过信号线连接至处理单元210A并且还通过信号线连接至处理单元210B。当中断控制单元250接收到来自故障检测单元240的使能的错误信号Er时,中断控制单元250向另一处理单元210输出使能的中断信号INT,其中该另一处理单元210被预先确定为接管由故障检测单元240监控的处理单元210所执行的处理的处理单元。例如,当一处理单元210(预先被确定为接管由处理单元210A执行的处理的处理单元)是处理单元210B时,中断控制单元250在其接收到来自故障检测单元240A的使能的错误信号Er时向处理单元210B输出使能的中断信号INT。类似地,当一处理单元210(预先被确定为接管由处理单元210B执行的处理的处理单元)是处理单元210A时,中断控制单元250在其接收到来自故障检测单元240B的使能的错误信号Er时向处理单元210A输出使能的中断信号INT。应注意,由一个处理单元210执行的处理可以被多个处理单元210接管。例如,在半导体设备20包括三个处理单元210的情况下,当一个处理单元210故障时,剩余的两个处理单元210可以接管故障处理单元210的处理。
如上所述,在该实施例中,从故障检测单元240输出的信号通过中断控制单元250被发送至处理单元210。然而,本发明不限于这种配置。例如,从故障检测单元240输出的信号可以通过另外一个或多个部件输入至接管处理的处理单元210,或者可以直接输入至接管处理的处理单元210。即,唯一的要求是半导体设备应该被配置为使得从给定处理单元210的故障检测得到的信号被输入至接管故障处理单元210的处理的另一处理单元210并且接管处理的另一处理单元210可以开始执行接管的处理。
如图2所示,保证单元230(对应于上述保证单元13)被设置在总线250的共享资源220侧上。保证单元230包括寄存器C、寄存器E1和E2、访问控制单元231和更新单元232。应注意,在图2所示示例中,一个保证单元230被设置用于多个资源。然而,如图3所示,一个保证单元230可以被设置用于每一个资源。即,应该设置至少一个保证单元230。应注意,在图3中,为了更容易地理解图中所示配置,省略错误信号Er从故障检测单元240到保证单元230的发送。此外,除了被设置用于共享资源220之外,保证单元230可以被设置用于中断控制单元250。在该实施例中,保证单元230控制对共享资源220的访问以及处理单元210对保证单元230的访问。
寄存器C是访问限制信息存储单元的示例,其用于存储访问限制信息,该访问限制信息指定由处理单元210对共享资源220和保证单元230的访问的限制。应注意,对保证单元230的访问指示对保证单元230的寄存器C的访问或者对保证单元230的寄存器E1或E2的访问。应注意,在该实施例中,访问限制信息存储单元通过寄存器形成。然而,可以通过除寄存器之外的任意存储电路来形成访问限制信息存储单元。
寄存器E1和E2的每一个都是更新信息存储单元的示例,其存储更新信息,用于更新存储在访问限制信息存储单元中(即,存储在寄存器C中)的访问限制信息。应注意,在该实施例中,更新信息存储单元由寄存器形成。然而,更新信息存储单元可以通过除寄存器之外的任意存储电路来形成。应注意,寄存器E1存储用于当处理单元210A故障时更新访问限制信息的更新信息。此外,寄存器E2存储用于在处理单元210B故障时更新访问限制信息的更新信息。应注意,期望更新信息存储单元的数量等于处理单元210的数量。然而,一个更新信息存储单元可以被设置用于多个处理单元210。
访问控制单元231是根据存储在寄存器C中的访问限制信息由处理单元210控制访问的控制电路。例如,当通过给定处理单元210请求对访问目的地的访问时,访问控制单元231根据存储在寄存器C中的访问限制信息确定是否应该允许该处理单元210对访问目的地的访问。然后,当应该允许访问时,访问控制单元231执行控制使得执行访问,而当访问不应该被允许时,访问控制单元231执行控制使得访问被禁止。
当处理单元210故障时,更新单元232更新存储在寄存器C中的访问限制信息,使得接管故障处理单元210的处理的另一处理单元210被允许访问故障处理单元210已经被允许访问的访问目的地的至少一部分。当更新单元232接收到来自故障检测单元240A的使能错误信号Er时,更新单元232通过使用存储在寄存器E1中的更新信息来更新存储在寄存器C中的访问限制信息。此外,当更新单元232接收到来自故障检测单元240B的使能的错误信号Er时,更新单元232通过使用存储在寄存器E2中的更新信息来更新存储在寄存器C中的访问限制信息。
图4是用于解释寄存器C的结构示例的示图。在图4所示的示例中,寄存器C是位宽为8位的寄存器。每一位都保持以下值。
位7保持用于指定从处理单元210A到保证单元230的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210A到保证单元230的访问被允许,而当0被保持在该位中时,意味着从处理单元210A到保证单元230的访问不被允许。
位6保持用于指定从处理单元210B到保证单元230的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210B到保证单元230的访问被允许,而当0被保持在该位中时,意味着从处理单元210B到保证单元230的访问不被允许。
位5保持用于指定从处理单元210A到外围功能单元220B的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210A到外围功能单元220B的访问被允许,而当0被保持在该位中时,意味着从处理单元210A到外围功能单元220B的访问不被允许。
位4保持用于指定从处理单元210B到外围功能单元220B的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210B到外围功能单元220B的访问被允许,而当0被保持在该位中时,意味着从处理单元210B到外围功能单元220B的访问不被允许。
位3保持用于指定从处理单元210A到外围功能单元220C的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210A到外围功能单元220C的访问被允许,而当0被保持在该位中时,意味着从处理单元210A到外围功能单元220C的访问不被允许。
位2保持用于指定从处理单元210B到外围功能单元220C的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210B到外围功能单元220C的访问被允许,而当0被保持在该位中时,意味着从处理单元210B到外围功能单元220C的访问不被允许。
位1保持用于指定从处理单元210A到共享存储器220A的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210A到共享存储器220A的访问被允许,而当0被保持在该位中时,意味着从处理单元210A到共享存储器220A的访问不被允许。
位0保持用于指定从处理单元210B到共享存储器220A的访问的允许/禁止的值。应注意,当1被保持在该位中时,意味着从处理单元210B到共享存储器220A的访问被允许,而当0被保持在该位中时,意味着从处理单元210B到共享存储器220A的访问不被允许。
应注意,在图4所示示例中,寄存器C(C[7:0])保持8b'1000_0000作为初始值。即,当寄存器C处于该状态时,访问控制单元231仅允许从处理单元210A到保证单元230的访问,并禁止从处理单元210A到共享资源220的访问以及从处理单元210B到保证单元230和共享资源220的访问。
接下来,通过使用特定示例来解释寄存器E1和E2的结构示例。应注意,在以下示出的示例中,寄存器E1和E2具有类似结构,除了与它们相关联的处理单元210相互不同。因此,以下仅描述寄存器E1的特定结构示例,并且省略寄存器E2的结构的解释。图5是用于解释寄存器E1的结构示例的示图。应注意,寄存器E1和E2中的每一个都是位宽为8位的寄存器。如图5所示,寄存器E1的每一位都保持以下值。
位7保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位7的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位7中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210A到保证单元230的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位7中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210A到保证单元230的访问的允许/禁止状态。
位6保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位6的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位6中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210B到保证单元230的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位6中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210B到保证单元230的访问的允许/禁止状态。
位5保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位5的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位5中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210A到外围功能单元220B的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位5中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210A到外围功能单元220B的访问的允许/禁止状态。
位4保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位4的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位4中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210B到外围功能单元220B的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位4中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210B到外围功能单元220B的访问的允许/禁止状态。
位3保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位3的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位3中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210A到外围功能单元220C的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位3中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210A到外围功能单元220C的访问的允许/禁止状态。
位2保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位2的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位2中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210B到外围功能单元220C的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位2中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210B到外围功能单元220C的访问的允许/禁止状态。
位1保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位1的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位1中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210A到共享存储器220A的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位1中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210A到共享存储器220A的访问的允许/禁止状态。
位0保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将1写入寄存器C的位0的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,通过更新单元232将寄存器C的位0中的值更新为1。即,在通过更新单元232进行更新之后,从处理单元210B到共享存储器220A的访问被允许。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位0中的值不通过更新单元232更新为1。即,即使在通过更新单元232进行更新之后,也不改变从处理单元210B到共享存储器220A的访问的允许/禁止状态。
应注意,在图5所示示例中,寄存器E1(E1[7:0])保持8b'0000_0000作为初始值。此外,类似地,寄存器E2(E2[7:0])可以保持8b'0000_0000作为初始值。在这种情况下,即使当处理单元210故障时,更新单元232不更新寄存器C的值。如稍后所述,在该实施例中,寄存器C以及寄存器E1和E2的初始值通过初始化操作来改变。
在图4和图5中,示出了针对共享资源220的每个资源指定访问的允许或不允许的示例。然而,可以基于任意确定的单元来指定访问的允许或不允许。例如,多个资源可以被处理为一个资源单元。备选地,一个资源可以被划分为多个部分,并且可以针对每个部分指定访问的允许或不允许。此外,资源可以根据地址被划分为多个部分。例如,系统的存储地址空间可以根据地址被划分为多个部分。应注意,存储地址空间可以对应于多个资源的整体或者可以对应于多个资源的一部分。
此外,在图4和图5所示的示例中,针对访问共享资源的每个实体(以下称为“访问实体”)指定访问的允许或不允许。然而,可以针对访问实体和其他条件的每一个组合来指定访问的允许或不允许。应注意,其他条件的示例包括访问类型(即,访问是读访问还是写访问)、访问实体的操作模式的类型(即,模式是用户模式还是特权模式)和关于处理的信息。可以针对这些条件中的至少一个和访问实体的每一个组合来指定访问的允许或不允许。
应注意,寄存器C以及寄存器E1和E2中的每一个可以如图所示组合成一个寄存器(即,形成为一个寄存器),或者可以划分为多个寄存器。此外,上文示出的每个寄存器的每一位的初始值仅仅是示例。即,可以根据系统的特性任意改变。
接下来,解释半导体设备20的操作。图6是示出由半导体设备20执行的操作的示例的流程图。下文与图6所示流程图一起解释半导体设备20的操作。应注意,由于下文解释发生故障时执行的操作,所以通过流程图示出发生故障的操作的示例。
在步骤10(S10)中,半导体设备20执行系统的初始化。例如,处理单元210A为保证单元230的寄存器C以及寄存器E1和E2中的每一个设置值。步骤10中在寄存器C中设置的值是基于关于哪个处理单元210应该在处理单元210中发生任何故障之前通过使用哪些共享资源220执行处理的系统规格确定的值。此外,步骤10中在寄存器E1中设置的值是基于关于哪个处理单元210应该在处理单元210A中发生故障时接管已经被处理单元210A执行的处理(整个处理或部分处理)的系统规格确定的值。类似地,步骤10中在寄存器E2中设置的值是基于关于哪个处理单元210应该在处理单元210B中发生故障时接管已经被处理单元210B执行的处理(整个处理或部分处理)的系统规格确定的值。
应注意,上面描述了处理单元210A执行初始化的示例。为了能够使处理单元210A执行初始化,寄存器C的初始化值需要如图4所示预先设置。即,需要处理单元210A被允许访问保证单元230。如先前所述,寄存器C的初始值不限于图4所示的值。因此,根据寄存器C的初始值,另一处理单元210等可以执行初始化。
此外,在步骤10中,中断控制单元250基于上述系统规格来设置。具体地,中断控制单元250被设置为使得当从检测从其接管处理的处理单元210(以下称为“转移-原始处理单元210”)中的故障的故障检测单元240输出的错误信号Er被使能时,中断控制单元250通过使用中断信号INT通知接管处理的处理单元210(以下称为“转移-目的地处理单元210”)。
接下来,在步骤11(S11)中,半导体设备20的每个处理单元210执行系统限定的处理。期望在该处理中结合用于利于在发生故障时接管处理(以下还称为“处理的转移”)的技术。可以施加各种技术来作为这种技术。这种技术的示例是在共享资源220A等中存储检查点重启任务中的检查点。
接下来,在步骤12(S12)中,故障检测单元240检测故障。在检测到故障时,故障检测单元240使能错误信号Er(即,将错误信号Er的状态改为使能状态)。
接下来,在步骤13(S13)中,当使能错误信号Er时,保证单元230的更新单元232基于对应于故障处理单元210的寄存器E1和E2中的一个的值更新寄存器C中的值。此外,中断控制单元250通过使能中断信号INT(即,通过将中断信号INT的状态变为使能状态)基于上述初始化向转移目的地处理单元210通知从故障检测单元240输出的错误信号Er。
接下来,在步骤14(S14)中,在接收到使能的中断信号INT时,在已经被故障处理单元210执行的处理中,处理单元210接管已经被预先确定接管的处理,并执行被接管的处理。应注意,如上所述,诸如检查点重启的各种技术可以应用于处理的转移。
以下解释步骤10中的初始化和步骤13中的更新的特定示例。应注意,假设寄存器C以及寄存器E1和E2在初始化之前具有以下值,即作为初始值。寄存器C保持8b'1000_0000作为初始值。寄存器E1和E2中的每一个保持8b'0000_0000作为初始值。此外,假设在系统规格中指定处理单元210A在处理单元210A中发生故障之前使用共享存储器220A和外围功能单元220B执行处理。类似地,假设在系统规格中指定处理单元210B在处理单元210B中发生故障之前使用共享存储器220A和外围功能单元220C执行处理。此外,假设在系统规格中指定当在处理单元210A中发生故障时,处理单元210B接管处理单元210A的处理。类似地,假设在系统规格中指定当在处理单元210B中发生故障时,处理单元210A接管处理单元210B的处理。
在这种情况下,寄存器C(C[7:0])被设置以通过步骤10中的初始化保持8b'0010_0111。此外,寄存器E1(E1[7:0])被设置以保持8b'0001_0000。此外,寄存器E2(E2[7:0])被设置以保持8b'0000_1000。
然后,当处理单元210A在步骤13中故障时,通过基于寄存器E1执行的更新,寄存器C(C[7:0])被设置以保持8b'0011_0111。因此,处理单元210B被刚刚允许访问外围功能单元220B,并由此能够接管处理单元210A的处理。应注意,如下文示出的等式(1)所示,例如通过执行寄存器C和寄存器E1的位串的OR计算(即,逻辑求和计算)来执行更新操作。
C[7:0]=C[7:0]|E1[7:0] (1)
此外,当处理单元210B在步骤13中故障时,通过基于寄存器E2执行的更新,寄存器C(C[7:0])被设置以保持8b'0010_1111。因此,处理单元210A被刚刚允许访问外围功能单元220C,并由此能够接管处理单元210B的处理。应注意,如上文所示,例如通过执行寄存器C和寄存器E2的位串的OR计算来执行该更新操作。
上文解释了第一实施例。根据该实施例的半导体设备20,通过由保证单元230施加的对访问的限制,可以确保资源访问的排他性。此外,当通过故障检测单元240检测到处理单元210中的故障时,保证单元230的更新单元232更新访问限制信息,使得接管故障处理单元210的另一处理单元210可以执行被接管的处理。因此,即使当处理单元210中发生故障时,半导体设备20可以继续处理。即,根据该实施例的半导体设备20,可以提供容错系统,同时确保资源访问的排他性。
此外,根据该实施例的半导体设备20,除了处理单元210对共享资源220的访问,保证单元230控制处理单元210对保证单元230的访问。然后,当处理单元210中发生故障时,保证单元230还可以改变处理单元210对保证单元230的访问的控制。因此,即使在完成初始化之前被允许访问保证单元230的处理单元210发生故障,也可以改变访问控制,使得另一处理单元210可以访问保证单元230。因此,即使当被允许访问保证单元230的处理单元210在完成初始化之前发生故障时,也可以执行期望的处理。从而,可以提供一种更加容错的系统。应注意,为了在完成上述初始化之前应对被允许访问保证单元230的处理单元210中发生的故障,寄存器E1或E2的初始值例如可以进行设置,使得接管初始化处理的另一处理单元210可以访问保证单元230。即,保证单元230可以限制并从而控制对保证单元230本身的访问,使得当被允许访问保证单元230的处理单元210故障时,除故障的处理单元210之外的另一处理单元210可以被允许访问保证单元230。
第二实施例
接下来,解释第二实施例。以下详细解释与第一实施例的差异,并且省略与第一实施例类似的配置和操作的解释。在根据第一实施例的半导体设备20中,当处理单元210中发生故障时,保证单元230的更新单元232改变访问控制,使得接管故障的处理单元210的处理的另一处理单元210可以访问用于处理转移所需的访问目的地。
与此相对,当故障发生在处理单元210中时,根据该实施例的半导体设备20不仅如上文的第一实施例所述改变访问控制,而且还改变访问控制,使得预定处理单元210被禁止访问预定的访问目的地。具体地,例如,当处理单元210故障时,除了如上面第一实施例所述改变访问控制之外,根据该实施例的保证单元230的更新单元232改变访问控制,使得禁止被故障的处理单元210访问。应注意,由更新单元232执行的更新类似于第一实施例。即,当根据该实施例的更新单元232接收到来自故障检测单元240A的使能的错误信号Er时,更新单元232通过使用存储在寄存器E1中的更新信息来更新存储在寄存器C中的访问限制信息。此外,当根据该实施例的更新单元232接收到来自故障检测单元240B的使能的错误信号Er时,更新单元232通过使用存储在寄存器E2中的更新信息来更新存储在寄存器C中的访问限制信息。
图7是根据第二实施例的用于解释寄存器E1的结构示例的示图。应注意,在下文示出的示例中,寄存器E1和E2具有类似结构,除了与它们相关联的处理单元210相互不同。因此,下文仅描述寄存器E1的具体结构示例,并且省略寄存器E2的结构的说明。应注意,根据该实施例的寄存器E1和E2的每一个都是位宽为16位的寄存器。具体地,除了第一实施例所示的8位,根据该实施例的每个寄存器E1和E2都包括附加的8位作为用于改变访问控制以禁止访问的位。应注意,图7仅示出了附加的高阶8位。在图7所示示例中,除了第一实施例所示的8位,寄存器E1包括附加8位(即,位15到位8)作为用于改变访问控制以禁止访问的位。例如,如图7所示,寄存器E1的每一位都保持以下值。
位15保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位7的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位7中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210A到保证单元230的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位7中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210A到保证单元230的访问的允许/禁止状态。
位14保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位6的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位6中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210B到保证单元230的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位6中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210B到保证单元230的访问的允许/禁止状态。
位13保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位5的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位5中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210A到外围功能单元220B的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位5中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210A到外围功能单元220B的访问的允许/禁止状态。
位12保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位4的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位4中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210B到外围功能单元220B的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位4中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210B到外围功能单元220B的访问的允许/禁止状态。
位11保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位3的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位3中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210A到外围功能单元220C的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位3中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210A到外围功能单元220C的访问的允许/禁止状态。
位10保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位2的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位2中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210B到外围功能单元220C的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位2中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210B到外围功能单元220C的访问的允许/禁止状态。
位9保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位1的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位1中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210A到共享存储器220A的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位1中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210A到共享存储器220A的访问的允许/禁止状态。
位8保持用于指定当来自处理单元210A(故障检测单元240A)的错误信号Er被使能时将0写入寄存器C的位0的允许/禁止的值。应注意,当1被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位0中的值通过更新单元232而更新为0。即,在通过更新单元232进行更新之后,禁止从处理单元210B到共享存储器220A的访问。另一方面,当0被保持在该位中时,意味着当处理单元210A故障时,寄存器C的位0中的值不通过更新单元232被更新为0。即,即使在通过更新单元232进行更新之后,不改变从处理单元210B到共享存储器220A的访问的允许/禁止状态。
应注意,在图7所示示例中,寄存器E1(E1[15:0])保持8b'0000_0000_0000_0000作为初始值。此外,类似地,寄存器E2(E2[15:0])可以保持8b'0000_0000_0000_0000作为初始值。在这种情况下,更新单元232不更新寄存器C的值,即使在处理单元210发生故障时。
接下来,解释根据该实施例的半导体设备20的操作。应注意,在以下解释中,使用图6所示根据第一实施例的半导体设备20的流程图。此外,重点具体放在与根据第一实施例的半导体设备20的操作的差别来给出以下说明。
在步骤10(S10)中,半导体设备20执行系统的初始化。应注意,对于每个寄存器E1和E2,除了第一实施例所示的8位之外,根据该实施例的半导体设备20设置用于上述附加高阶8位的值。应注意,在该实施例中,步骤10中设置给寄存器E1的值(即,位值)包括基于关于当处理单元210A中发生故障时哪个处理单元210应该接管已经被处理单元210A执行的处理(整个处理或部分处理)的系统规格确定的值(即,位值)以及基于关于当处理单元210A故障时哪个处理单元210应该被禁止访问哪个访问目的地的系统规格确定的值(即,位值)。作为用于禁止访问的初始化的示例,设置用于禁止访问故障处理单元210A原始允许的访问目的地的值。类似地,在该实施例中,步骤10中为寄存器E2设置的值(即,位值)包括基于关于当处理单元210B中发生故障时哪个处理单元210应该接管已经被处理单元210B执行的处理(整个处理或部分处理)的系统规格确定的值(即,位值)以及基于关于当处理单元210B故障时哪个处理单元210应该被禁止访问哪个访问目的地的系统规格确定的值(即,位值)。作为用于访问禁止的初始化的示例,设置用于禁止访问故障处理单元210B原始允许的访问目的地的值。
接下来,在步骤11(S11)中,半导体设备20的每个处理单元210执行系统定义的处理。然后,在步骤12(S12)中,故障检测单元240检测故障。
然后,在步骤13(S13)中,当错误信号Er被使能时,根据该实施例的更新单元232基于对应于故障处理单元210的寄存器E1和E2中的一个的值改变访问控制,使得接管故障处理单元210的处理的另一处理单元210可以访问用于处理的转移所需的访问目的地,并且改变访问控制使得禁止被预定处理单元210(例如,故障处理单元210)访问。此外,中断控制单元250通过使能中断信号INT向转移-目的地处理单元210通知从故障检测单元240输出的错误信号Er。
接下来,在步骤14(S14)中,在接收到使能的中断信号INT时,在已经被故障处理单元210执行的处理中,处理单元210接管预先确定被接管的处理并执行被接管的处理。
以下示出该实施例中的寄存器的值的具体示例。应注意,假设寄存器C以及寄存器E1和E2在完成初始化之前具有以下值,即作为初始值。寄存器C保持8b'1000_0000作为初始值。寄存器E1和E2中的每一个保持8b'0000_0000_0000_0000作为初始值。此外,假设在系统规格中指定处理单元210A在处理单元210A中发生故障之前使用共享存储器220A和外围功能单元220B执行处理。类似地,假设在系统规格中指定处理单元210B在处理单元210B中发生故障之前使用共享存储器220A和外围功能单元220C执行处理。此外,假设在系统规格中指定当在处理单元210A中发生故障时,处理单元210B接管处理单元210A的处理。类似地,假设在系统规格中指定当在处理单元210B中发生故障时,处理单元210A接管处理单元210B的处理。此外,假设在系统规格中指定当处理单元210A故障时,处理单元210A被禁止访问处理单元210A被原始允许访问的访问目的地。类似地,假设在系统规格中指定当处理单元210B故障时,处理单元210B被禁止访问处理单元210B被原始允许访问的访问目的地。
在这种情况下,通过步骤10中的初始化,寄存器C(C[7:0])被设置以保持8b'0010_0111。此外,寄存器E1(E1[15:0])被设置以保持8b'0010_0010_0001_0000。此外,寄存器E2(E2[15:0])被保持以保持8b'0000_0101_0000_1000。
然后,当处理单元210A在步骤13中故障时,通过基于寄存器E1执行的更新,寄存器C(C[7:0])被设置以保持8b'0001_0101。因此,处理单元210B被刚刚允许访问外围功能单元220B,并由此能够接管处理单元210A的处理。此外,处理单元210A被禁止访问共享存储器220A和外围功能单元220B。应注意,如以下示出的等式(2)所示,例如通过执行寄存器C的位串和寄存器E1的低阶8位的位串的OR计算(即,逻辑求和计算),然后执行OR计算的结果与寄存器E1的高阶8位的位串的反相值的AND计算(即,逻辑乘法计算)来执行该更新操作。
C[7:0]=C[7:0]|E1[7:0]&!E1[15:8] (2)
此外,当处理单元210B在步骤13中故障时,通过基于寄存器E2执行的更新,寄存器C(C[7:0])被设置以保持8b'0001_1010。因此,处理单元210A被刚刚允许访问外围功能单元220C,并由此能够接管处理单元210B的处理。此外,处理单元210B被禁止访问共享存储器220A和外围功能单元220C。应注意,如上所示,例如通过执行寄存器C的位串和寄存器E2的低阶8位的位串的OR计算,然后执行OR计算的结果与寄存器E2的高阶8位的位串的反相值的AND计算来执行该更新操作。
上面解释了第二实施例。如先前所述,当处理单元210中发生故障时,根据该实施例的半导体设备20改变访问控制,使得接管故障处理单元210的处理的另一处理单元210可以访问用于处理的转移所需的访问目的地,并且改变访问控制,使得禁止故障处理单元210的访问。如上所述,在该实施例中,当在处理单元210C的故障时更新寄存器C时,寄存器C可以被更新用于禁止访问以及用于允许访问。以这种方式,由于可以阻挡从故障处理单元210的访问,所以可以防止由故障处理单元210另外所引起的失灵。此外,在指示处理状态等的各种信息项被存储的情况下,可以防止这些各种信息项由于从故障处理单元210的访问而破坏。如上所述,根据该实施例,可以比根据第一实施例的半导体设备20提供具有更高安全性的系统。应注意,在上面示出的实施例中,示出了第一实施例的寄存器E1和E2被扩展的示例。然而,代替扩展寄存器E1和E2,可以在处理单元210故障时提供独立的寄存器(即,附加寄存器)来禁止访问。
第三实施例
在上述实施例中,当处理单元210中的故障仅被检测到一次时,改变访问控制。与此不同,在该实施例中,当相同处理单元210中的故障被检测到多于预定次数时改变访问控制。图8是示出根据第三实施例的半导体设备30的简略配置示例的框图。如图8所示,半导体设备30与半导体设备20的不同在于,半导体设备30包括重试单元300A和300B。对于半导体设备30的配置和操作,以下仅详细解释与半导体设备20的不同,并且适当地省略与半导体设备20类似的配置和操作的解释。应注意,在以下说明中,当不需要相互区分时,多个重试单元300A和300B可以被简称为“重试单元300”。应注意,该实施例中所示的重试单元300可以添加到根据第一实施例的半导体设备20和根据第二实施例的半导体设备20中。
重试单元300A是将重置信号传输至处理单元210A,从而每当检测到处理单元210A中的故障时就重置处理单元210A的重试控制电路。重试单元300B是将重置信号传输至处理单元210B,从而每当检测到处理单元210B中的故障时就重置处理单元210B的重试控制电路。应注意,在图8所示示例中,重试单元300A设置在从故障检测单元240A输出的错误信号Er的信号线与输入至保证单元230和中断控制单元250的错误信号Er的信号线之间。此外,重试单元300B设置在从故障检测单元240B输出的错误信号Er的信号线与输入至保证单元230和中断控制单元250的错误信号Er的信号线之间。此外,当从故障检测单元240输出的错误信号Er被使能时(即,错误信号Er的状态变为使能状态),重试单元300重置其中检测到故障的处理单元210(以下称为“检测到故障的处理单元210”)。
当从故障检测单元240A输出的错误信号Er被使能多于预定次数时,重试单元300A使能从重试单元300A输出且被输入至保证单元230的错误信号Er以及从重试单元300A输出且被输入至中断控制单元250的错误信号Er中的每一个。此外,类似地,当从故障检测单元240B输出的错误信号Er被使能多于预定次数时,重试单元300B使能从重试单元300B输出且被输入至保证单元230的错误信号Er以及从重试单元300B输出且被输入至中断控制单元250的错误信号Er中的每一个。
当来自重试单元300的错误信号Er被使能时,如上面第一和第二实施例所解释的,通过保证单元230改变访问控制,并且接管处理。因此,当在任何处理单元210中故障的检测次数超过预定次数时,根据该实施例的保证单元230改变访问控制。应注意,相同的预定次数可以被用于所有重试单元300,或者不同的预定次数可用于重试单元300。此外,重试单元300可以包括寄存器等,其中设置被用作阈值的数量。此外,重试单元300可以包括寄存器等,其中设置关于将被重试单元300重置的实体的信息。应注意,在这种情况下,重试单元300可以连接至总线260并且通过保证单元230连接至总线260。即,可以根据期望使用各种实施例。
应注意,在图8所示的配置示例中,重试单元300仅向检测到故障的处理单元210输出重置信号。然而,重试单元300可以向除检测到故障的处理单元210之外的部件输出重置信号,从而重置该部件,例如,除检测到故障的处理单元210本身之外,重试单元300可以重置允许被检测到故障的处理单元210访问的共享资源220。可以想象,当检测到处理单元210中的故障时,异常还发生在该处理单元210的访问目的地中。然而,通过采用上述配置,不仅可以重置处理单元210本身,还可以重置其访问目的地。
此外,在图8所示示例中,重试单元300设置在从故障检测单元240A输出的错误信号Er的信号线与输入至保证单元230和中断控制单元250的错误信号Er的信号线之间。然而,该配置仅仅是示例,并且可以实施其他各种配置。例如,重试单元300的每个上述功能的部分或整体可以与保证单元230或中断控制单元250的功能集成。即,例如,可以在保证单元230侧上实施在重试单元300中将从故障检测单元240输出的错误信号Er输出至保证单元230之前掩蔽该错误信号Er(即,将从故障检测单元240输出的错误信号Er搁置)预定次数的功能。此外,例如,可以在中断控制单元250侧上实施在重试单元300中将从故障检测单元240输出的错误信号ER输出至中断控制单元250之前掩蔽该错误信号Er预定次数的功能。
接下来,解释半导体设备30的操作。图9是示出由半导体设备30执行的操作的示例的流程图。以下结合图9所示的流程图来解释半导体设备30的操作。应注意,由于以下解释当发生故障时执行的操作,所以通过流程图示出发生故障的操作的示例。图9所示的流程图与图6所示的流程图的不同在于:图9所示的流程图包括步骤30和31。重点具体放在与图6所示流程图的区别来给出以下说明。
从初始化到故障检测执行的操作与半导体设备20的相同。这里,在图6所示的流程图中,处理在步骤12中移动到步骤13。然而,在该实施例中,处理在步骤12之后移动到步骤30。
在步骤30(S30)中,重试单元300确定同一处理单元210中的故障的检测次数是否超过预定次数。当同一处理单元210中的故障的检测次数超过预定次数时(步骤S30中为是),则重试单元300使能输出至中断控制单元250和保证单元230的错误信号Er。然后,处理移动到步骤13。另一方面,当同一处理单元210中的故障的检测次数没有超过预定次数时(步骤S30中为否),则处理移动到步骤31。在步骤31(S31)中,重试单元300重置检测到故障的处理单元210。然后,处理返回到步骤11。
在半导体设备30中,当对应于给定处理单元210的故障检测单元240检测到其中的故障时,故障检测单元240使能错误信号Er。然而,直到从故障检测单元240输出的错误信号Er被使能多于由重试单元300的实施指定的次数为止,否则从重试单元300输出至保证单元230和中断控制单元250的错误信号Er不被使能,并且重置信号被输出至检测到故障的处理单元210。通过重置而重启的处理单元210通过使用诸如检查点重启的技术而恢复处理。然后,当从故障检测单元240输出的错误信号Er被使能多于预定次数时,从重试单元300输出至保证单元230和中断控制单元250的错误信号Er被使能,并且执行步骤13中的操作和图6所示流程图中的后续步骤。
如上所述,根据半导体设备30,即使在检测到故障时,也不改变访问控制,直到检测次数超过预定次数。因此,可以防止系统的总处理能力由于诸如软错误的短暂故障而降低。应注意,在上述半导体设备30中,直到处理单元210中的故障被检测多于预定次数为止,否则保证单元230和中断控制单元250不被通知故障。然而,在检测次数超过预定次数之前,指示处理单元210中的故障检测的信号可以被输出至其他处理单元210。例如,在多个处理单元210执行合作操作的系统中,处理单元210不得不考虑当与处理单元210协作的另一处理单元210由于该处理单元210中的故障检测而被重置所引起的效果而执行处理。在这种情况下,期望在甚至仅检测出一次处理单元210中的故障时,重试单元300向另一处理单元210(即,与检测出故障的处理单元210协作的处理单元210)通知检测出故障的处理单元210中的故障检测。
第四实施例
接下来,将解释第四实施例。在该实施例中,解释每个处理单元传输对应于处理(即,任务)的识别信息(以下称为“任务ID”)作为总线的边带信息并且保证单元控制根据该识别信息是否应该允许或禁止访问的系统。应注意,如上所述,任务ID是用于识别处理的识别信息。
图10是示出根据第四实施例的半导体设备40的简略配置示例的框图。如图10所示,半导体设备40与根据第一实施例的半导体设备20的不同在于:添加了任务ID允许单元400;保证单元230被保证单元410替代;以及故障检测单元240A和240B分别被故障检测单元420A和420B替代。应注意,处理单元210的数量不限于该实施例中的两个。即,处理单元210的数量可以是三个以上。此外,三个资源,即共享存储器220A以及外围功能单元220B和220C被示为该实施例中的共享资源220。然而,资源的数量不限于三个,只要具有至少一个资源即可。对于半导体设备40的配置和操作,以下仅详细解释与半导体设备20的差异,并且适当地省略与半导体设备20类似的配置和操作的解释。应注意,在以下说明中,当不需要相互区分时,多个故障检测单元420A和420B可以简称为“故障检测单元420”。
除了错误信号Er的输出目的地不同之外,故障检测单元420A与故障检测单元240A相同。类似地,除了错误信号Er的输出目的地不同之外,故障检测单元420B与故障检测单元240B相同。在该实施例中,故障检测单元420A通过信号线连接至中断控制单元250,并且还通过信号线连接至任务ID允许单元400的更新单元401(稍后将进行描述)。因此,从故障检测单元420A输出的错误信号Er被输入至中断控制单元250和任务ID允许单元400的更新单元401中的每一个。类似地,故障检测单元420B通过信号线连接至中断控制单元250,并且还通过信号线连接至任务ID允许单元400的更新单元401。因此,从故障检测单元420B输出的错误信号Er被输入至中断控制单元250和任务ID允许单元400的更新单元401中的每一个。应注意,在第一实施例中描述的各种修改示例还可以应用于该实施例,只要不产生矛盾即可。例如,在图10所示示例中,故障检测单元420通过信号线直接连接至更新单元401。然而,它们可以在另一部件(诸如中断控制单元250)夹置在它们之间而相互连接,以传输/接收错误信号Er。此外,在图10所示示例中,从故障检测单元420输出的信号通过中断控制单元250(即,通过使用中断信号INT)发送给处理单元210。然而,本发明不限于这种配置。例如,从故障检测单元420输出的信号可以通过另一部件输入至接管处理的处理单元210,或者可以直接输入至接管处理的处理单元210。即,唯一的要求是半导体设备应该被配置为使得从给定处理单元210中的故障检测得到的信号被输入至接管故障处理单元210的处理的另一处理单元210并且接管处理的另一处理单元210可以开始执行接管处理即可。
任务ID允许单元400还被称为“管理单元”。任务ID允许单元400连接至总线260。因此,处理单元210通过总线260连接至中断控制单元250、任务ID允许单元400和共享资源220。对于每个处理单元210,任务ID允许单元400管理可被该处理单元210用于任务ID的识别信息。任务ID允许单元400包括寄存器D1和D2、寄存器F1-1和F1-2、寄存器F2-1和F2-2以及更新单元401。在以下说明中,当不需要相互区分时,寄存器D1和D2可以简称为“寄存器D”。类似地,当不需要相互区分时,寄存器F1-1、F1-2、F2-1和F2-2可以简称为“寄存器F”。
寄存器D是管理信息存储单元的示例,其存储用于指定可被处理单元210使用的任务ID的管理信息。管理信息指示可被每个处理单元210使用的任务ID。在图10所示的配置示例中,寄存器D1存储指示可被处理单元210A使用的任务ID的管理信息,并且寄存器D2存储指示可被处理单元210B使用的任务ID的管理信息。应注意,在该实施例中,管理信息存储单元通过寄存器来形成。然而,管理信息存储单元可以通过除寄存器之外的任意存储电路来形成。
寄存器F是管理更新信息存储单元的示例,其存储更新存储在管理信息存储单元中(即,寄存器D中)的管理信息的更新信息。管理信息指示当一个处理单元210故障时应该如何更新每个寄存器D。在图10所示的配置示例中,寄存器F1-1存储用于在处理单元210A故障时更新寄存器D1的更新信息,以及寄存器F1-2存储用于在处理单元210B故障时更新寄存器D1的更新信息。此外,寄存器F2-1存储用于在处理单元210A故障时更新寄存器D2的更新信息,以及寄存器F2-2存储用于在处理单元210B故障时更新寄存器D2的更新信息。应注意,在该实施例中,通过寄存器形成管理更新信息存储单元。然而,可以通过除寄存器之外的任意存储电路来形成管理更新信息存储单元。
如图10所示,期望寄存器D的数量等于处理单元210的数量。然而,例如,一个寄存器D可以设置用于多个处理单元210。即,各种配置是可能的。此外,如图10所示,期望用于每个寄存器D的寄存器F的数量等于处理单元210的数量。然而,例如,一个寄存器F可以设置用于多个处理单元210。即,各种配置是可能的。
更新单元401还被称为“管理信息更新单元”。当处理单元201故障时,更新单元401改变管理,使得接管故障处理单元210的处理的另一处理单元210可以使用对应于被接管处理的任务ID。具体地,通过使用存储在寄存器F中的更新信息,更新单元401更新存储在寄存器D中的管理信息。即,当更新单元401接收到来自故障检测单元420A的使能错误信号Er时,更新单元401通过使用存储在寄存器F1-1中的更新信息来更新存储在寄存器D1中的管理信息,并且通过使用存储在寄存器F2-1中的更新信息来更新存储在寄存器D2中的管理信息。类似地,当更新单元401接收到来自故障检测单元420B的使能错误信号Er时,更新单元401通过使用存储在寄存器F1-2中的更新信息来更新存储在寄存器D1中的管理信息,并且通过使用存储在寄存器F2-2中的更新信息来更新存储在寄存器D2中的管理信息。
接下来,将解释根据该实施例的处理单元210。根据该实施例的处理单元210类似于根据上述实施例的处理单元210。然而,在该实施例中,特别地,处理单元210执行与任务ID允许单元400中的被管理(即,记录)为可用于处理单元210(即,能够被处理单元210使用)的任务ID相对应的处理(任务)。例如,处理单元210参考寄存器D。然后,处理单元210执行与处理单元210被允许使用的任务ID相对应的任务,但是不执行与处理单元210不被允许使用的任务ID相对应的任务。即,在该实施例中,可以限制每个处理单元210可以通过任务ID的设置而执行的任务。应注意,如上所述,可以通过处理单元210来控制任务ID的限制。备选地,可以通过其他控制机制(未示出)来对限制进行控制。此外,根据该实施例的处理单元210向保证单元410通知与处理单元210访问共享资源220时执行的任务相对应的任务ID。
保证单元410根据从处理单元210通知的任务ID控制由处理单元210进行的访问。因此,在该实施例中,保证单元410执行以下操作。当处理单元210故障时,保证单元410根据由任务ID允许单元400做出的管理信息的改变来改变处理单元210的访问的控制。具体地,当处理单元210故障时,根据管理信息的更新的结果,保证单元410改变访问控制,使得接管故障处理单元210的处理的另一处理单元210被允许访问故障处理单元210被允许访问的访问目的地的至少一部分。即,当处理单元210故障时,根据第一实施例的保证单元230根据由更新单元232执行的访问限制信息的更新结果而执行上述控制改变。与此不同,根据该实施例的保证单元410根据由更新单元401执行的管理信息的更新结果来执行上述控制改变。
保证单元410包括寄存器G和访问控制单元411。应注意,在图10所示的示例中,一个保证单元410被设置用于多个资源。然而,与图3所示示例的情况相同,一个保证单元410可以设置用于每个资源。即,应该设置至少一个保证单元410。此外,除用于共享资源220之外,保证单元410还可以被设置用于中断控制单元250或任务ID允许单元400。
寄存器G是访问限制信息存储单元的示例,其存储指定处理单元210对共享资源220和保证单元410的访问的限制的访问限制信息。应注意,对保证单元410的访问表示例如对保证单元410的寄存器G的访问。在该实施例中,寄存器G例如存储指示对每个任务ID的访问的允许/禁止的信息作为用于共享资源220和保证单元410中的每一个的访问限制信息。然而,存储在寄存器G中的信息不限于该示例。即,寄存器G还可以存储指示用于任务ID允许单元400的每个任务ID的访问的允许/禁止的信息。应注意,对任务ID允许单元400的访问例如指示对任务ID允许单元400的寄存器D和寄存器F的访问。应注意,在该实施例中,通过寄存器形成访问限制信息存储单元。然而,可以通过除寄存器之外的任意存储电路形成访问限制信息存储单元。
访问控制单元411是根据存储在寄存器G中的访问限制信息来控制处理单元210的访问的控制电路。例如,当通过给定处理单元210请求对访问目的地的访问时,访问控制单元411根据在请求访问时通知的任务ID和存储在寄存器G中的访问限制信息确定是否应该允许该处理单元210对访问目的地的访问。然后,当应该允许访问时,访问控制单元411执行控制使得访问被执行,而当访问不应该被允许时,访问控制单元411执行控制使得访问被禁止。
如上所述,当处理单元210故障时,任务ID允许单元400的更新单元401改变管理,使得接管故障的处理单元210的处理的另一处理单元210可以使用对应于被接管处理的任务ID。因此,当接管故障的处理单元210的处理的另一处理单元210使用对应于被接管处理的任务ID请求访问时,访问控制单元411允许该访问。
应注意,在该实施例中,对于每个任务ID指定访问的允许或不允许。然而,代替仅针对每个任务ID,可以针对每个访问实体、每个访问类型、访问实体的每个操作模式类型或者它们的每种组合来确定访问的允许或不允许。
接下来,解释任务ID允许单元400的每个寄存器的具体示例。图11是用于解释寄存器D的结构示例的示图。应注意,图11和稍后描述的图12均示出了系统被配置为使得每个处理单元210被允许使用多达八种类型的任务ID的示例。在图11所示示例中,寄存器D是位宽为8位的寄存器。每一位都保持以下值。下面,将分别通过任务ID 0至任务ID 7来表示任务ID的八种类型。
位7保持用于指定由处理单元210使用任务ID 7的允许/禁止的值。应注意,当1被保持在该位中时,意味着允许处理单元210使用任务ID 7,而当0保持在该位中时,意味着处理单元210使用任务ID 7不被允许。即,例如,当1被保持在寄存器D1的位7中时,处理单元210A可以执行对应于任务ID 7的任务。此外,例如,当0保持在寄存器D1的位7中时,处理单元210A不能执行对应于任务ID 7的任务。上述事实同样适用于寄存器D的位6到位0中的每一个。即,寄存器D的位K(k为7至0)保持用于指定处理单元210使用任务ID K的允许/禁止的值。
应注意,在图11所示的示例中,寄存器D(D[7:0])保持8b'1111_1111作为初始值。即,当寄存器D处于该状态时,处理单元210被允许使用所有任务ID。然而,图11所示每一位的初始值仅仅是示例。即,它们可以根据系统的特性而任意地改变。
图12是用于解释寄存器F的结构示例的示图。在图12所示的示例中,寄存器F是位宽为8位的寄存器。每一位都保持以下值。
位7保持用于指定当来自故障检测单元420的错误信号Er被使能时将1写入寄存器D的位7的允许/禁止的值。应注意,当1保持在该位中时,意味着当处理单元210故障时,通过更新单元401将寄存器D的位7中的值更新为1。即,在通过更新单元401更新之后,允许处理单元210使用对应于该寄存器D的任务ID 7。另一方面,当0保持在该位中时,意味着当处理单元210故障时,不通过更新单元401将寄存器D的位7中的值更新为1。即,不改变对应于该寄存器D的由处理单元210使用任务ID 7的允许/禁止状态。
例如,当处理单元210A中发生故障时,通过使用寄存器F1-1来更新寄存器D1,并且通过使用寄存器F2-1来更新寄存器D2。在该处理中,例如,当0保持在寄存器F1-1的位7中时,通过更新单元401来更新寄存器D1,但是不改变由处理单元210A使用任务ID 7的允许/禁止状态。此外,例如,当1保持在寄存器F2-1的位7中时,通过更新单元401更新寄存器D2,并且允许处理单元210B使用任务ID 7。
上述事实适用于寄存器F的位6至位0的每一位。即,寄存器F的位K(K为7到0)保持用于指定当来自故障检测单元420的错误信号Er被使能时将1写入寄存器D的位K的允许/禁止的值(即,用于指定允许使用任务ID K的改变的允许/禁止的值)。
应注意,在图12所示的示例中,寄存器F(F[7:0])保持8b'0000_0000作为初始值。即,当寄存器F处于该状态时,寄存器D 的值在处理单元210故障时不发生改变。然而,图12所示每一位的初始值仅仅是示例。即,它们可以根据系统的特性而任意地改变。
接下来,将解释半导体设备40的操作。图13是示出由半导体设备40执行的操作的示例的流程图。下文将参照图13的流程图解释半导体设备40的操作。应注意,由于以下解释发生故障时执行的操作,所以通过流程图示出发生故障时的操作的示例。
在步骤50(S50)中,半导体设备40执行系统的初始化。例如,处理单元210A为任务ID允许单元400的寄存器D1和D2、寄存器F1-1和F1-2、寄存器F2-1和F2-2以及保证单元410的寄存器G中的每一个设置值。步骤50中在寄存器D中设置的值是基于关于在处理单元210中发生任何故障之前哪个处理单元210应该通过使用哪个任务ID执行处理的系统规格而确定的值。此外,步骤50中在寄存器F中设置的值是基于关于当处理单元210中发生故障时哪个处理单元210应该接管已经被故障的处理单元210执行的处理(整个处理或部分处理)的系统规格而确定的值。此外,步骤50中在寄存器G中设置的值是基于关于哪个共享资源220应该被允许访问哪个任务的系统规格而确定的值。应注意,上文描述了处理单元210A执行初始化的示例。然而,毋庸置疑,根据系统的配置,其他部件也可以执行该初始化。
此外,在步骤50中,中断控制单元250还基于上述系统规格进行设置。具体地,例如,中断控制单元250进行设置使得当从故障检测单元420输出的错误信号Er(检测转移-原始处理单元210的故障)被使能时,中断控制单元250通过使用中断信号INT通知转移-目的地处理单元210。
接下来,在步骤51(S51)中,半导体设备40的每个处理单元210都执行系统限定的处理。期望用于在发生故障时有利于处理的转移(即,任务的接管)的技术被结合到该处理中。各种技术可应用作为这种技术。这种技术的示例是在共享资源220A等中存储检查点重启任务中的检查点的技术。
接下来,在步骤52(S52)中,故障检测单元420检测故障。在检测到故障时,故障检测单元420使能错误信号Er。
接下来,在步骤53(S53)中,当错误信号Er被使能时,任务ID允许单元400的更新单元402基于对应于故障处理单元210的一个寄存器F的值更新寄存器D中的值。此外,中断控制单元250通过使能中断信号INT基于上述初始化向转移-目的地处理单元210通知从故障检测单元420输出的错误信号Er。
接下来,在步骤54(S54)中,在接收到使能的中断信号INT时,在已经被故障处理单元210执行的处理中,处理单元210接管被预先确定接管的处理并执行接管后的处理。应注意,如上所述,诸如检查点重启的各种技术可应用于处理的转移。
上面解释了第四实施例。根据该实施例的半导体设备40,当处理单元210中发生故障时,更新任务ID允许单元400的管理信息。即,当发生故障时,可以改变可被处理单元210使用的任务ID。即,即使在例如由于在保证单元410中设置被锁定(即,不能改变)或者写操作被禁止而使得处理单元210不能更新任务ID允许单元400的寄存器D的情况下,也可以在发生故障时更新寄存器D。因此,根据半导体设备40,在基于管理信息控制可由每个处理单元210执行的任务的系统中,可以使能处理单元210来接管故障处理单元210的处理。即,在根据该实施例的半导体设备40中,还可以提供一种容错系统,同时确保资源访问的排他性。
应注意,如前所述,保证单元410还可以控制处理单元210对保证单元410自身的访问以及处理单元210对任务ID允许单元400的访问。此外,更新单元401可以通过使用寄存器F更新使用与执行初始化的任务相对应的任务ID的管理信息。在这种情况下,更新单元401可以改变管理信息,使得当执行初始化的处理单元210中发生故障时,另一处理单元210可以执行用于执行初始化的任务。因此,当执行初始化的处理单元210中发生故障时,保证单元410可以根据由更新单元401进行的改变来改变处理单元210对保证单元230和任务ID允许单元400的访问的控制。因此,即使执行初始化的处理单元210在完成初始化之前发生故障,另一处理单元210也可以执行用于初始化的处理。从而,可以提供更加容错的系统。
第五实施例
类似于第三实施例,可以在第四实施例中设置重试单元。以下解释第五实施例,同时省略重复说明。通过以下方式得到第五实施例:修改第四实施例使得当检测到故障多于预定次数时,如第三实施例的情况一样改变处理单元210对共享资源220等的访问的控制。即,在第五实施例中,当检测到故障多于预定次数时,更新任务ID允许单元400的管理信息,并且因此,改变处理单元210对共享资源220等的访问的控制。
图14是根据第五实施例的半导体设备50的简略配置示例的框图。半导体设备50与根据第四实施例的半导体设备40的不同在于,半导体设备50包括重试单元500A和500B。对于半导体设备50的配置和操作,以下仅详细解释与半导体设备40的不同,并且适当地省略与半导体设备40类似的配置和操作的说明。应注意,在以下说明中,当不需要相互区分时,多个重试单元500A和500B可以简称为“重试单元500”。应注意,该实施例中示出的重试单元500可以添加到根据第四实施例的半导体设备40中和根据第六实施例(稍后进行描述)的半导体设备40中。
重试单元500A是执行类似于重试单元300A的操作的重试控制电路,并且重试单元500B是执行类似于重试单元300B的操作的重试控制电路。应注意,在图14所示的示例中,重试单元500A设置在从故障检测单元420A输出的错误信号Er的信号线与输入至任务ID允许单元400和中断控制单元250的错误信号Er的信号线之间。此外,重试单元500B设置在从故障检测单元420B输出的错误信号Er的信号线与输入至任务ID允许单元400和中断控制单元250的错误信号Er的信号线之间。此外,当从故障检测单元420输出的错误信号Er被使能时,重试单元500重置检测到故障的处理单元210。
类似于重试单元300,当从故障检测单元420输出的错误信号Er被使能多于预定次数时,重试单元500使能从重试单元500输出且输入至任务ID允许单元400的错误信号Er以及从重试单元500输出且输入至中断控制单元250的错误信号Er中的每一个。
当来自重试单元500的错误信号Er被使能时,如上文在第四实施例中所解释的,改变管理信息并接管处理。因此,在半导体设备50中,当检测到故障多于预定次数时,更新任务ID允许单元400的管理信息。因此,改变处理单元210对共享资源220的访问的控制。即,改变由保证单元410进行的控制。应注意,第三实施例中描述的各种修改示例也可以应用于该实施例,只要不产生矛盾即可。
接下来,解释半导体设备50的操作。图15是示出由半导体设备50执行的操作的示例的流程图。以下结合图15所示的流程图解释半导体设备50的操作。应注意,由于以下解释当发生故障时执行的操作,所以通过流程图示出了发生故障的操作的示例。图15所示的流程图与图13所示的流程图的不同在于,图15所示的流程图包括步骤55和56。重点具体放在与图13所示流程图的不同来给出以下说明。
从初始化到故障检测执行的操作与半导体设备40的相同。这里,在图13所示的流程图中,处理在步骤52之后移动到步骤53。然而,在该实施例中,处理在步骤52之后移动到步骤55。
在步骤55(S55)中,执行类似于步骤30中的上述处理的处理。即,重试单元500确定同一处理单元210中的故障检测的次数是否超过预定次数。当同一处理单元210中的故障检测的次数超过预定次数时(步骤S55中为是),重试单元500使能输出至中断控制单元250和任务ID允许单元400的错误信号Er。然后,处理移动到步骤53。另一方面,当同一处理单元210中的故障检测的次数没有超过预定次数时(步骤S55中为否),处理移动到步骤56。
在步骤56(S56)中,执行类似于步骤31中的上述处理的处理。即,重试单元500重置检测到故障的处理单元210。然后,处理返回到步骤51。
根据半导体设备50,即使在检测到故障时,也不执行用于接管处理的操作,直到检测的次数超过预定次数。因此,可以防止系统的总处理能力由于诸如软错误的短暂故障而降低。
第六实施例
类似于第二实施例,可以在第四实施例中扩展存储更新信息的寄存器。即,以类似于第二实施例所示的方式扩展寄存器F。下文将解释第六实施例,同时省略重复说明。
在根据第四实施例的半导体设备40中,当处理单元210中发生故障时,任务ID允许单元400的更新单元410改变管理信息,使得接管故障处理单元210的处理的另一处理单元210可以使用处理转移所需的任务ID。
与此不同,在该实施例中,当处理单元210中发生故障时,半导体设备40还改变管理信息,使得预定处理单元210被禁止使用预定任务ID。即,更新单元410更新管理信息,使得故障处理单元210被禁止使用预定任务ID。以这种方式,当处理单元210中发生故障时,保证单元410改变访问控制,使得接管故障处理单元210的处理的另一处理单元210可以访问共享资源220,并且故障处理单元210被禁止访问共享资源220。应注意,更新单元401进行的更新类似于第四实施例。即,当根据该实施例的更新单元401接收到使能的错误信号Er时,更新单元401通过使用存储在寄存器F中的更新信息来更新存储在寄存器D中的管理信息。
图16是用于解释根据第六实施例的寄存器F的结构示例的示图。在图16所示的示例中,寄存器F是位宽为16位的寄存器。具体地,除了第四实施例所示的8位之外,根据该实施例的寄存器F包括附加的8位来作为用于改变管理信息以禁止使用任务ID的位。应注意,图16仅示出了附加的高阶8位。例如,如图16所示,寄存器F的每一位都保持以下值。
位15保持用于指定当来自故障检测单元420的错误信号Er被使能时将0写入寄存器D的位7的允许/禁止的值。应注意,当1保持在该位中时,意味着当处理单元210故障时,通过更新单元401将寄存器D的位7中的值更新为0。即,在通过更新单元401更新之后,禁止对应于该寄存器D的处理单元210对任务ID 7的使用。另一方面,当0保持在该位中时,意味着当处理单元210故障时,寄存器D的位7中的值不通过更新单元401更新为0。即,不改变对应于该寄存器D的由处理单元210对任务ID 7的使用的允许/禁止状态。
例如,当处理单元210A中发生故障时,通过使用寄存器F1-1更新寄存器D1,并且通过使用寄存器F2-1更新寄存器D2。在该处理中,例如,当1保持在寄存器F1-1的位15中时,通过更新单元401更新寄存器D1,并且禁止处理单元210A对任务ID 7的使用。此外,例如,当0保持在寄存器F2-1的位15中时,通过更新单元401更新寄存器D2,并且不改变处理单元210B对任务ID 7的使用的允许/禁止状态。
上述事实适用于寄存器F的位14到位8。即,寄存器F的位K(K是15到8)保持用于指定当来自故障检测单元420的错误信号Er被使能时将0写入寄存器D的位(K-8)中的允许/禁止的值(即,用于指定用于禁止使用任务ID(K-8)的改变的允许/禁止的值)。应注意,图16所示每一位的初始值仅仅是示例。即,可以根据系统的特性任意地进行改变。
接下来,解释根据该实施例的半导体设备40的操作。应注意,在以下说明中,使用图13所示根据第四实施例的半导体设备40的流程图。此外,重点具体放在与根据第四实施例的半导体设备40的操作的区别来给出以下说明。
在步骤50(S50)中,半导体设备40执行系统的初始化。应注意,对于寄存器F,除了第四实施例所示的8位之外,根据该实施例的半导体设备40为上述附加的高阶8位设置值。这些值的设置基于系统规格来确定。
接下来,在步骤51(S51)中,半导体设备40的每个处理单元210执行系统限定的处理。然后,在步骤52(S52)中,故障检测单元240检测故障。
然后,在步骤53(S53)中,当错误信号Er被使能时,任务ID允许单元400的更新单元401基于对应于故障处理单元210的一个寄存器F的值来更新寄存器D中的值。在该处理中,在该实施例中,基于如上所述扩展的寄存器F的值来更新寄存器D。此外,中断控制单元250通过使能中断信号INT向转移-目的地处理单元210通知从故障检测单元240输出的错误信号Er。
接下来,在步骤54(S54)中,在接收到使能的中断信号INT时,在已经被故障处理单元210执行的处理中,处理单元210接管被预先确定接管的处理并执行接管后的处理。
上面解释了第六实施例。如前所述,当处理单元210中发生故障时,根据该实施例的半导体设备40改变管理信息,使得接管故障处理单元210的处理的另一处理单元210可以使用处理的转移所需的任务ID,并且改变管理信息使得故障处理单元210被禁止使用任务ID。如上所述,在该实施例中,当在处理单元210的故障时更新寄存器D时,寄存器D可以被更新来用于禁止使用任务ID以及用于允许任务ID的使用。以这种方式,由于可以通过保证单元410阻挡从故障处理单元210的处理,所以可以防止可能由故障处理单元210以其他方式引起的故障。此外,在存储指示处理状态等的各种信息项的情况下,可以防止这些各种信息项由于来自故障处理单元210的访问而被破坏。应注意,在上文示出的实施例中,示出了扩展第四实施例的寄存器F的示例。然而,除了扩展寄存器F,还可以设置单独的寄存器(即,附加寄存器)。
上面基于实施例以具体方式解释了发明人做出的本发明。然而,本发明不限于上述实施例,并且毋庸置疑地,可以在不背离本发明的精神和范围的情况下进行各种修改。例如,在上述实施例中,示出了寄存器C或G被设置为访问限制信息存储单元且寄存器E1和E2被设置为更新信息存储单元的示例。然而,当例如通过组合电路实施保证单元230进行的访问控制以及控制的更新时,访问限制信息存储单元和更新信息存储单元不是必须不可缺少的。此外,类似地,在上述实施例中,示出了寄存器D被设置为管理信息存储单元且寄存器F被设置为管理更新信息存储单元。然而,当例如通过组合电路实施任务ID允许单元400进行的更新时,管理信息存储单元和管理更新信息存储单元不是必须不可缺少的。
此外,在上述实施例中,解释了仅一个处理单元210故障的示例。然而,毋庸置疑,即使当多个处理单元210同时故障时,也可以类似地执行保证单元230或410对访问控制的改变。应注意,当同时检测到多个处理单元210中的故障时,更新单元232可以通过参考对应于故障处理单元210的一个更新信息存储单元(其被预先确定为优选参考)来更新访问限制信息存储单元的内容。备选地,访问限制信息存储单元的内容可以通过参考对应于故障处理单元210的所有更新信息存储单元并合并存储在这些更新信息存储单元中的更新内容来更新。类似地,当同时检测到多个处理单元210中的故障时,更新单元401可以通过参考对应于故障处理单元的一个管理更新信息存储单元(其被预先确定为优选参考)来更新管理信息存储单元的内容。备选地,管理信息存储单元的内容可以通过参考对应于故障处理单元210的所有管理更新信息存储单元并合并存储在这些管理更新信息存储单元中的内容来进行更新。
此外,在上述实施例中,示出了还通过保证单元230或410控制处理单元210对保证单元230或410的访问的示例。然而,毋庸置疑,保证单元230或410还可以仅控制对共享资源220的访问。
第一至第六实施例可以根据本领域技术人员的期望而组合。
虽然根据多个实施例描述了本发明,但本领域技术人员应意识到,在所附权利要求的精神和范围内可以利用各种修改来实践本发明,并且本发明不限于上述示例。
此外,权利要求的范围不通过上述实施例来限制。
此外,应注意,申请人的目的在于包括所有权利要求元素的等效,即使在起诉期间稍后进行修改。
Claims (14)
1.一种半导体设备,包括:
多个处理单元;
共享资源,被所述多个处理单元共享;以及
保证单元,其中
所述保证单元限制并从而控制所述处理单元对所述共享资源的访问,并且
当处理单元发生故障时,所述保证单元改变对访问的控制,使得接管发生故障的处理单元的处理的另一处理单元被允许访问发生故障的所述处理单元已经被允许访问的访问目的地的至少一部分。
2.根据权利要求1所述的半导体设备,其中当所述处理单元发生故障时,所述保证单元还改变对访问的控制,使得发生故障的所述处理单元被禁止访问所述访问目的地。
3.根据权利要求1所述的半导体设备,还包括:重置单元,被配置为每当在处理单元中检测到故障时就重置该处理单元,其中
在任何处理单元中,当检测到故障的次数超过预定次数时,所述保证单元改变对访问的控制。
4.根据权利要求1所述的半导体设备,其中所述保证单元进一步限制并从而控制对所述保证单元自身的访问,并且当被允许访问所述保证单元的处理单元发生故障时,改变对访问的控制,使得除发生故障的所述处理单元之外的另一处理单元被允许访问所述保证单元。
5.根据权利要求1所述的半导体设备,其中所述保证单元包括:
访问限制信息存储单元,被配置为存储用于指定对所述处理单元访问所述共享资源的限制的访问限制信息;
访问控制单元,被配置为根据存储在所述访问限制信息存储单元中的所述访问限制信息,来控制由所述处理单元进行的访问;以及
更新单元,被配置为更新由所述访问限制信息存储单元存储的所述访问限制信息。
6.根据权利要求5所述的半导体设备,其中,
所述保证单元进一步包括更新信息存储单元,被配置为存储用于更新存储在所述访问限制信息存储单元中的所述访问限制信息的更新信息,并且
所述更新单元通过使用存储在所述更新信息存储单元中的所述更新信息,来更新存储在所述访问限制信息存储单元中的所述访问限制信息。
7.根据权利要求1所述的半导体设备,还包括管理单元,被配置为针对每个所述处理单元管理可用于该处理单元的识别信息,所述识别信息是用于识别处理的信息,其中
当所述处理单元发生故障时,所述管理单元改变管理,使得接管发生故障的所述处理单元的处理的所述另一处理单元能够使用对应于该处理的所述识别信息,
当所述处理单元访问所述共享资源时,所述处理单元执行与在所述管理单元中被管理为可用于所述处理单元的所述识别信息相对应的处理,并且向所述保证单元通知对应于将被执行的处理的所述识别信息,并且
所述保证单元根据所述识别信息控制由所述处理单元进行的访问,并且当所述处理单元发生故障时,根据由所述管理单元进行的改变来改变对访问的控制。
8.根据权利要求7所述的半导体设备,其中所述管理单元包括:
管理信息存储单元,被配置为存储用于指定可用于所述处理单元的所述识别信息的管理信息,以及
管理信息更新单元,被配置为更新存储在所述管理信息存储单元中的所述管理信息。
9.根据权利要求8所述的半导体设备,其中,
所述管理单元还包括管理更新信息存储单元,被配置为存储用于更新存储在所述管理信息存储单元中的所述管理信息的更新信息,并且
所述管理信息更新单元通过使用存储在所述管理更新信息存储单元中的所述更新信息,来更新存储在所述管理信息存储单元中的所述管理信息。
10.一种半导体设备,包括:
多个处理单元;
共享资源,被所述多个处理单元共享;
管理单元,被配置为针对每个所述处理单元管理可用于该处理单元的识别信息,所述识别信息是用于识别处理的信息;以及
保证单元,被配置为限制并从而控制所述处理单元对所述共享资源的访问,其中
当所述处理单元访问所述共享资源时,所述处理单元执行与在所述管理单元中被管理为可用于所述处理单元的所述识别信息相对应的处理,并且向所述保证单元通知对应于将被执行的处理的所述识别信息,
当所述处理单元发生故障时,所述管理单元改变管理,使得接管发生故障的所述处理单元的处理的另一处理单元能够使用对应于该处理的所述识别信息,并且
所述保证单元根据所述识别信息控制由所述处理单元进行的访问。
11.一种访问管理方法,包括:
通过多个处理单元执行处理,同时限制并从而控制由所述多个处理单元中的每个处理单元对共享资源的访问;
检测所述多个处理单元中的每个处理单元中的故障;以及
当处理单元发生故障时,改变对访问的控制,使得接管发生故障的处理单元的处理的另一处理单元被允许访问发生故障的所述处理单元已经被允许访问的访问目的地的至少一部分。
12.根据权利要求11所述的访问管理方法,其中当所述处理单元发生故障时,改变对访问的控制,使得发生故障的所述处理单元被禁止访问所述访问目的地。
13.根据权利要求11所述的访问管理方法,其中
每当在所述处理单元中检测到故障时,就重置该处理单元,并且
在任何处理单元中,当检测到故障的次数超过预定次数时,改变对访问的控制,使得接管发生故障的所述处理单元的处理的另一处理单元被允许访问发生故障的所述处理单元已经被允许访问的访问目的地的至少一部分。
14.根据权利要求11所述的访问管理方法,其中
针对每个所述处理单元,管理可用于该处理单元的识别信息,所述识别信息是用于识别处理的信息,
当所述处理单元发生故障时改变管理,使得接管发生故障的所述处理单元的处理的另一处理单元能够使用对应于该处理的所述识别信息,
当所述处理单元访问所述共享资源时,所述处理单元执行与被管理为可用于所述处理单元的所述识别信息相对应的处理,并且发送对应于将被执行的处理的所述识别信息,
根据在所述处理单元执行处理时使用的所述识别信息,控制由所述处理单元进行的访问,并且
当所述处理单元发生故障时,根据对所述管理的改变来改变对访问的控制。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016075840 | 2016-04-05 | ||
JP2016-075840 | 2016-04-05 | ||
JP2016249330A JP2017188072A (ja) | 2016-04-05 | 2016-12-22 | 半導体装置及びアクセス管理方法 |
JP2016-249330 | 2016-12-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273248A true CN107273248A (zh) | 2017-10-20 |
Family
ID=60045679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218214.XA Pending CN107273248A (zh) | 2016-04-05 | 2017-04-05 | 半导体设备以及访问管理方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2017188072A (zh) |
CN (1) | CN107273248A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804811A (zh) * | 2004-12-21 | 2006-07-19 | 日本电气株式会社 | 容错系统及其中所使用的控制装置、动作方法 |
CN101169774A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 一种多处理器系统、共享控制装置及启动从处理器的方法 |
CN101369241A (zh) * | 2007-09-21 | 2009-02-18 | 中国科学院计算技术研究所 | 一种机群容错系统、装置及方法 |
CN101460929A (zh) * | 2006-06-01 | 2009-06-17 | Lm爱立信电话有限公司 | 仲裁器诊断装置和方法 |
CN101535956A (zh) * | 2006-11-02 | 2009-09-16 | 日本电气株式会社 | 多处理器系统、多处理器系统中的系统构成方法及其程序 |
CN101874245A (zh) * | 2007-11-26 | 2010-10-27 | 朗讯科技公司 | 用于从处理器向外围设备授予安全工作模式访问特权的方法和设备 |
CN103080871A (zh) * | 2010-08-31 | 2013-05-01 | 国际商业机器公司 | 资源管理和安全系统 |
CN104321758A (zh) * | 2013-01-17 | 2015-01-28 | 英特尔公司 | 经由共享存储器结构的仲裁存储器访问 |
-
2016
- 2016-12-22 JP JP2016249330A patent/JP2017188072A/ja active Pending
-
2017
- 2017-04-05 CN CN201710218214.XA patent/CN107273248A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1804811A (zh) * | 2004-12-21 | 2006-07-19 | 日本电气株式会社 | 容错系统及其中所使用的控制装置、动作方法 |
CN101460929A (zh) * | 2006-06-01 | 2009-06-17 | Lm爱立信电话有限公司 | 仲裁器诊断装置和方法 |
CN101535956A (zh) * | 2006-11-02 | 2009-09-16 | 日本电气株式会社 | 多处理器系统、多处理器系统中的系统构成方法及其程序 |
CN101369241A (zh) * | 2007-09-21 | 2009-02-18 | 中国科学院计算技术研究所 | 一种机群容错系统、装置及方法 |
CN101169774A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 一种多处理器系统、共享控制装置及启动从处理器的方法 |
CN101874245A (zh) * | 2007-11-26 | 2010-10-27 | 朗讯科技公司 | 用于从处理器向外围设备授予安全工作模式访问特权的方法和设备 |
CN103080871A (zh) * | 2010-08-31 | 2013-05-01 | 国际商业机器公司 | 资源管理和安全系统 |
CN104321758A (zh) * | 2013-01-17 | 2015-01-28 | 英特尔公司 | 经由共享存储器结构的仲裁存储器访问 |
Also Published As
Publication number | Publication date |
---|---|
JP2017188072A (ja) | 2017-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104798349B (zh) | 响应于端口故障的故障转移 | |
US20070101016A1 (en) | Method for confirming identity of a master node selected to control I/O fabric configuration in a multi-host environment | |
US8656228B2 (en) | Memory error isolation and recovery in a multiprocessor computer system | |
US5386551A (en) | Deferred resource recovery | |
US7889667B2 (en) | Method of routing I/O adapter error messages in a multi-host environment | |
CN100430945C (zh) | 动态切换将事务数据写入盘中的模式的设备和方法 | |
US7395367B2 (en) | Method using a master node to control I/O fabric configuration in a multi-host environment | |
CN101359278B (zh) | 在后端连接的存储系统 | |
CN102486755B (zh) | 存储器保护单元和用于控制对存储设备的访问的方法 | |
EP0472433A2 (en) | Firmware modification system wherein older version can be retrieved | |
CN101202764A (zh) | 确定虚拟以太网适配器的链路状态的方法和系统 | |
JP6884844B2 (ja) | オフボードフラッシュメモリ | |
CN105938460A (zh) | 存储器管理 | |
CN108829738A (zh) | 一种ceph中数据存储方法及装置 | |
CN106301900A (zh) | 设备仲裁的方法和设备 | |
CN107678868A (zh) | 资源存取管理组件和其方法 | |
CN103430162B (zh) | 与从第一接口到第二接口的操作性转变相关联的设备、电子装置和方法 | |
US20170286324A1 (en) | Semiconductor device and access management method | |
US7409722B2 (en) | Control status register access to enable domain reconfiguration | |
CN101739533A (zh) | 用于保护集成电路装置的孤立秘密数据的电路设备和方法 | |
CN107273248A (zh) | 半导体设备以及访问管理方法 | |
CN105138308B (zh) | 一种更新寄存器的方法及装置 | |
US6745341B1 (en) | Information processing apparatus having fault detection for multiplex storage devices | |
US20140122677A1 (en) | Storage system and license management method | |
US20140053029A1 (en) | Anomaly detection at the level of run time data structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171020 |
|
WD01 | Invention patent application deemed withdrawn after publication |