控制装置的制作方法

文档序号:14266352阅读:123来源:国知局
控制装置的制作方法

相关申请的交叉引用

于2016年10月17日提交的申请号为2016-203657的日本专利申请,包括说明书、权利要求书、说明书附图和说明书摘要在内的全部公开内容,通过引用的方式整体并入本文。

本发明涉及一种基于功能安全标准设计的具有安全相关单元的控制装置。具体地,本发明涉及一种具有非安全相关单元写入检测功能的控制装置,其具备以下功能:以位为单位检测意外写入,该意外写入是从在安全相关单元中的cpu上执行的非安全相关单元程序到在相同的cpu上执行的安全相关单元程序所使用的ram或控制寄存器的,并且将系统转换至安全状态。



背景技术:

例如iec61508系列等与功能安全有关的国际标准,要求系统设计成使得执行安全功能的安全相关单元不受执行正常功能的非安全相关单元的故障或设计错误的影响。

iec61508-3:2010中规定,当软件执行具有不同安全级别的安全功能时,必须保证在时间和空间上均具备独立性,或是对独立性的侵犯受到控制。该标准的附页给出了在同一台计算机上的软件要素之间实现互不干扰的方法的一些例子。正因为如此,在具有安全相关单元的控制装置中,通常将更高的特权级别分配给安全相关软件,使得只有安全相关软件能访问和写入存储安全相关变量的ram或安全相关寄存器,并且存储器管理单元或存储器保护单元对每个特权级别指定允许写访问的空间。同时,近年来大多数安装使用的cpu没有存储器管理单元或存储器保护单元。因此,不易使用特权模式的保护方法。

jp2013-148999a(“专利文献1”)公开了一种方法,即使对于使用不具有系统保护的特权模式的cpu的控制装置,该方法也能提供防止非安全相关单元对外部集成电路中的安全相关单元寄存器的写访问功能。

此外,jp2000-76135a(“专利文献2”)公开了一种方法,在不具有特权模式的cpu中,其通过在解码存储器访问指令时,添加用于判断程序计数器和访问目标存储器地址的小尺寸的硬件,防止执行非预期的存储器访问指令。

然而,专利文献2的保护方法不能用在不具有在cpu指令解码时同时判断程序计数器和访问目标存储器地址的硬件的cpu中。

另一方面,例如,对于cpu的内部寄存器,需要防止来自非安全相关单元的以位为单位的写访问。然而,专利文献2保护方法采用以地址为单位指定访问区域的特权模式,专利文献1的保护方法采用将安全相关单元寄存器和非安全相关单元寄存器通过外部集成电路分开进而保护安全相关单元寄存器,它们都不行执行以位为单位的保护。正因为如此,当例如cpu的i/o端子同时存在安全相关i/o端子和非安全相关i/o端子时,必须采用特定的措施,例如,设计cpu外围电路使得可以在不同的寄存器中独立地设置端子,或者使用安全相关固件执行非安全相关1/o端子的输出过程。在现有技术中,存在对硬件和固件的设计限制。

本发明的优点在于提供一种基于功能安全标准设计的具有安全相关单元的控制装置,该控制装置具有非安全相关单元写入检测功能,具备这样的功能:即使使用不具有存储器保护的硬件的cpu,当存在由安全相关单元中的cpu执行的非安全相关单元程序所对在相同的cpu上执行的安全相关单元程序所使用的ram或控制寄存器、或该ram或控制寄存器中的任意位的意外写入时,将系统转换至安全状态。



技术实现要素:

在功能安全标准中,当检测到系统异常时系统能够转换至安全状态就足够了。因此,不需要防止由于未经授权的访问对存储器或寄存器的改变,并且提供对未经授权的访问的检测并将系统转换至安全状态的功能就足够了。另一方面,一些安装使用的cpu具有监控地址总线状态的访问监控单元,该访问监控单元为对任意地址的访问至少判断读/写的地址范围和类型是否与预设值相匹配,并向cpu请求中断处理。例如,为了在不使用在线仿真器的情况下进行程序调试,存在具有访问监控单元的市场上能获得的的安装使用cpu。当使用具有访问监控单元的cpu时,对安全相关单元程序使用的ram或控制寄存器的写访问发生中断处理。存储安全相关单元程序的rom区域的地址范围和存储非安全相关单元程序的rom区域的地址范围是分开的。中断过程使用保存在堆栈区的程序计数器判断写访问是来自安全相关单元程序还是非安全相关单元。对于非安全相关单元的写访问,中断处理比较备份数据来判断安全相关单元使用的位是否存在数据更改。备份数据是在安全相关单元的写访问期间或初始化期间设定的。

在本发明中,对安全相关单元程序所使用的ram或控制寄存器的任意位的写访问,都将产生中断处理。在中断处理中,基于保存在堆栈的程序计数器判断写访问的源是来自安全相关单元程序还是来自非安全相关单元程序。在写访问是来自非安全相关程序的情况下,在中断处理中,将数据与备份数据进行比较,并且判断在安全相关位中的数据是否发生改变。如果安全相关位发生改变,那么在中断处理中,执行出错处理并将系统转换至安全状态。

附图说明

下面将结合以下说明书附图描述本发明的实施例,其中:

图1是本发明实施例的cpu处理算法的一个示例图;

图2是本发明实施例的cpu结构的一个示例图;

图3是本发明实施例的地址映射示例图。

附图标记说明

1cpu;2cpu内核;3内部总线;4内置rom;5内置ram;6总线状态控制器(bsc);7外部集成电路;8内置外设i/o寄存器;9i/o端口;10存储器访问监控单元;11中断控制器(intc);41非安全相关程序单元程序区;42安全相关单元程序区;51非安全相关单元数据区;52安全相关单元数据区;53堆栈区;71非安全相关单元寄存器区;72安全相关单元寄存器区;81非分离式寄存器;91非安全输出端;92安全输出端;421安全相关位模式数据;521安全相关备份数据;811非安全相关位;812安全相关位。

具体实施方式

现在将以具有检测非安全相关单元的写入的功能的控制装置为例说明本发明的实施例。首先,参照图2的框图和图1的流程图,将对cpu的内置外设i/o寄存器8执行以位为单位的写入检测的实施例进行说明。作为与安全功能相关的数据区,安全相关单元数据区52设置在内置ram5中。此外,作为与安全功能相关的控制寄存器,安全相关单元寄存器区72设置在外部集成电路7中。进一步地,在设定cpu1的操作的内置外设i/o寄存器8中,设置有安全功能和非安全功同时使用的非分离式寄存器81。非分离式寄存器81包括与安全功能相关的安全相关位812和与安全功能无关的非安全相关位811。在图2中,举例说明了使用设定i/o端口9的输出的寄存器作为非分离式寄存器81的情况。在i/o端口9中,与安全功能相关的安全输出端子92的输出电平和与安全功能不相关的非安全输出端91的输出电平分别根据安全相关位812和非安全相关位811的设置而变化。有必要防止在cpu上运行的非安全相关处理程序错误地对与安全功能相关的存储器、寄存器和寄存器中的特定位,更具体地,安全相关单元区52、安全相关单元寄存区域72和非分离式寄存器区域81(以下称为“安全相关单元区”)进行写访问。在本实施方式中,“安全相关处理程序”是指为安全而设计的特定的程序,并且是允许访问安全相关单元区的程序。另一方面,“非安全相关处理程序”是指与安全相关处理程序不同的程序,并且是不允许访问安全相关单元区的程序。

图2是涉及具有存储器访问监控单元10的微型计算机的存储器访问的框图。cpu内核2通过内部总线3从内置rom4中读取程序,并执行计算处理、对内置ram5的访问处理、对外部集成电路7的访问处理、对内置外设i/o寄存器8的访问处理等处理。通过内部总线3来执行对内置ram5和内置外设i/o寄存器8的访问,并且通过内部总线3和bsc(总线状态控制器)6来执行对外部集成电路7的访问。存储器访问监控单元10监控内部总线3的总线周期,并且通过inic(中断控制器)11向cpu内核2发出中断控制信号,用于响应对特定地址的读/写访问等。

图3是本实施方式的地址映射示例图。内置rom4(内置rom区域)的地址分配范围、内置ram5(内置ram区域)的地址分配范围、外部集成电路7(外部存储区域)的地址分配范围以及内置外设i/o寄存器8(内置外设i/o区域)的地址分配范围是由cpu的类型决定的。内置rom4的地址分配范围包括存储非安全相关处理程序的非安全相关单元程序区41,以及存储安全相关处理程序的安全相关单元程序区42。在编译期间分别指定这些区域对应的地址,使得每个地址范围都是连续的地址范围。内置ram5的地址分配范围包括存储非安全相关功能的数据的非安全相关单元数据区51、存储安全相关功能的数据的安全相关单元数据区52以及堆栈区53。在编译期间分别指定这些区域对应的地址,使得每个地址范围都是连续的地址范围。外部集成电路7的地址分配范围包括存储非安全相关功能的寄存器的非安全相关单元寄存器区71、存储安全相关功能的寄存器的安全相关单元寄存器区72。外部集成电路7被设计为使得每个地址范围都是连续的地址范围。在内置外设i/o寄存器8中,预先将非分离式寄存器81中的安全相关位812设定为位模式1,并且预先将非分离式寄存器81中的非安全相关位811设定为位模式0。这些位模式作为安全相关位模式数据421存储在安全相关单元程序区42中。在图3中展示了非安全相关位811和安全相关位812是连续的位,但非安全相关位811和安全相关位812在寄存器内可能是不连续的。由安全相关单元的程序设定的安全相关位的数据存储在安全相关单元数据区52中作为安全相关位备份数据521。

图1展示了本实施例对安全相关单元数据区52的写入进行检测处理的执行内容以及图1中各单元的操作的流程图。在图1的流程图中,左侧的流程是非安全相关单元处理流程或安全相关单元处理流程,以及,例如通过中断处理执行具有最高优先级的处理流程。当处理程序对安全相关单元区执行写访问时,存储器访问监控部分10检测写访问,并通过intc11向cpu内核2输出中断信号。

当cpu内核接收到中断信号时,cpu内核2通过硬件处理将状态寄存器和程序计数器保存在堆栈区53中,然后执行中断处理流程。在中断处理流程中,读取保存在堆栈区53中的程序计数器,并判断保存在堆栈区的程序计数器是否包括在安全相关单元数据区52的地址范围内。如果程序计数器不包括在这个地址范围内,则中断处理流程判断这个访问是来自非安全相关单元数据区51的写访问。另一方面,如果程序计数器包括在这个地址范围内,则中断处理流程将判断这个访问是来自安全相关单元数据区52的写访问。

在写访问是来自安全相关单元数据区52的情况下,对于非分离式寄存器81的写访问,确定非分离式寄存器81和安全相关位模式数据421的逻辑积,并存储在安全相关位备份数据521中。当非分离式寄存器81的安全相关位812的值在初始设定后没有改变的情况下,可以省略这一步骤。

在写访问是来自非安全相关单元数据区51的情况下,如果写访问是对安全相关单元数据区52或安全相关单元寄存器区72的写访问,则执行出错处理。对于非分离式寄存器81的写访问,确定非分离式寄存器81和安全相关位模式数据421的逻辑积是否与安全相关位备份数据521匹配,如果不匹配,则判断安全相关位812发生改变,并执行出错处理。

无论访问是来自非安全相关处理流程的写访问还是来自安全相关处理流程的写访问,对安全相关单元区的所有写访问,都执行通过中断对安全相关单元区的写入的检测处理。采用写入检测处理,处理时间将增加,但因为在非安全相关处理流程中,通常只执行对非分离式寄存器81的写访问,并且对非分离式寄存器的写访问的频率很低,因此处理时间的增加不会引起问题。此外,在安全相关处理流程中,该流程通常在优先级低的状态下执行,因此由于写入检测处理而造成的处理时间的增加不会引起问题。

如上所述,通过使用图2所示的cpu执行图1的流程图所示的写入检测处理,可以实现对安全相关程序所使用的ram或寄存器或ram和寄存器的特定位的意外写入的检测,并将系统转换至安全状态的功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1