数据处理设备和访问控制方法与流程

文档序号:14836270发布日期:2018-06-30 12:33阅读:185来源:国知局
数据处理设备和访问控制方法与流程

本申请基于并要求2016年12月15日提交的日本专利申请No.2016-243306的优先权,其全部内容通过引用合并于此。



背景技术:

本发明涉及数据处理设备和访问控制方法,并且例如涉及包括被配置为控制操作单元对处理器的访问的访问控制器的数据处理设备和访问控制方法。

一般而言,数据处理设备包括访问控制器,该访问控制器被配置为当操作单元访问周边资源(处理器)时控制操作单元对周边资源(处理器)的访问以便保护周边资源免受未经授权的访问。

日本未经审查的专利申请公开No.2010-250470在图3中公开了与包括微处理器、存储器和存储器保护单元(MPU)的计算机系统有关的技术。在日本未经审查的专利申请公开No.2010-250470中所公开的技术中,当微处理器访问存储器时,使用MPU来控制微处理器对存储器的访问。



技术实现要素:

如“背景技术”中所描述的,数据处理设备包括访问控制器,该访问控制器被配置为当操作单元访问周边资源时控制对周边资源的访问以便保护周边资源免受未经授权的访问。例如,访问控制器基于许可配置信息来控制操作单元对每个条目的访问,许可配置信息指示有关操作单元是否可以访问周边资源包括的相应的条目(处理器)的协议。

然而,在最近的数据处理设备中,周边资源的条目数量趋向于增大。这导致下列问题:有关操作单元对相应的条目(处理器)的访问权限的协议的许可配置信息的量变得太大,并且存储许可配置信息的电路的尺寸也增大。

根据说明书的描述和附图,现有技术的其他问题和本发明的新颖的特征将变得明显。

根据一个实施例,数据处理设备包括访问控制器,该访问控制器被配置为控制操作单元对处理器的访问。访问控制器使用从操作单元输出的处理器选择信息来选择将要用于访问控制的许可配置信息和标识符表,使用所选择的标识符表来确定与从操作单元输出的访问请求标识符相对应的中间标识符,并且使用所选择的许可配置信息和所确定的中间标识符来确定操作单元对处理器的可访问性。

根据该实施例,可以提供能够抑制电路的尺寸增大的数据处理设备和访问控制方法。

附图说明

根据下文结合附图对某些实施例的描述,上述和其它方面、优点和特征将变得更清楚,其中:

图1是示出根据第一实施例的数据处理设备的系统配置的框图;

图2是示出根据第一实施例的数据处理设备的配置示例的框图;

图3是示出根据第一实施例的数据处理设备中包括的周边资源(处理器和许可配置单元)的配置示例的图示;

图4是示出根据第一实施例的数据处理设备中包括的MID许可配置选择单元的配置示例的图示;

图5是示出根据第一实施例的数据处理设备中包括的TID选择单元的配置示例的图示;

图6是示出根据第一实施例的数据处理设备中包括的SPID表单元的配置示例的图示;

图7是示出根据第一实施例的数据处理设备中包括的SPID表选择单元的配置示例的图示;

图8是示出根据第一实施例的数据处理设备中包括的MID一致性确定单元的配置示例的图示;

图9是示出根据第一实施例的数据处理设备中包括的许可确定单元的配置示例的图示;

图10是用于描述根据第一实施例的数据处理设备的访问控制的操作的流程图;

图11是示出根据第一实施例的数据处理设备中包括的SPID表单元的具体示例的图示;

图12是示出根据第一实施例的数据处理设备中包括的周边资源(处理器和许可配置单元)的具体示例的图示;

图13是用于描述根据第一实施例的数据处理设备的访问控制的具体示例的流程图;

图14是示出根据比较示例的数据处理设备的许可配置单元的配置示例的图示;

图15是示出根据第一实施例的数据处理设备中包括的SPID表单元和权限配置单元的配置示例的图示;

图16是示出根据第二实施例的数据处理设备的配置示例的框图;

图17是示出根据第二实施例的数据处理设备中包括的MID许可配置选择单元的配置示例的图示;

图18是示出根据第二实施例的数据处理设备中包括的TID选择单元的配置示例的图示;

图19是示出根据第三实施例的数据处理设备的配置示例的框图;

图20是示出根据第三实施例的数据处理设备中包括的TID选择单元的配置示例的图示;

图21是示出根据第四实施例的数据处理设备的配置示例的框图;

图22是示出根据第四实施例的数据处理设备中包括的TID选择单元的配置示例的图示;以及

图23是示出当根据第一实施例的数据处理设备被用于车辆时的配置示例的框图。

具体实施方式

<第一实施例>

在下面的描述中,将参考附图来描述第一实施例。

图1是示出根据第一实施例的数据处理设备的系统配置的框图。如图1中所示,根据本实施例的数据处理设备1包括作为操作单元的中央处理单元(CPU)10_1和10_2、访问控制器11_1和11_2和周边资源12_1和12_2。

CPU 10_1和10_2被以此方式配置,以便它们可经由总线19访问周边资源12_1和12_2。CPU 10_1和10_2中的每个执行预定程序。尽管在图1中所示的示例中示出了包括多个CPU 10_1和10_2(多核)的配置,但是可提供仅一个CPU。

访问控制器11_1控制相应的CPU 10_1和10_2对周边资源12_1的访问。另外,访问控制器11_2控制相应的CPU 10_1和10_2对周边资源12_2的访问。尽管在图1中所示的示例中示出了访问控制器11_1和11_2被设置在周边资源12_1和12_2外部的配置,但是在本实施例中,访问控制器11_1可被设置在周边资源12_1内部,而访问控制器11_2可被设置在周边资源12_2内部。

周边资源12_1包括处理器13_1和许可配置单元14_1。处理器13_1设置有至少一个处理器0至i-1(i是等于或大于1的整数)。相应的处理器0至i-1中的每个提供周边资源12_1的主要功能(中断处理,等等)。另外,许可配置单元14_1设置有至少一个许可配置单元0至i-1(i是等于或大于1的整数)。相应的许可配置单元0至i-1设置相应的CPU 10_1和10_2对处理器0至i-1的可访问性。

具体而言,许可配置单元0设置CPU 10_1和10_2对处理器0的可访问性,并且许可配置单元0和处理器0配置条目0。另外,许可配置单元1设置CPU 10_1和10_2对处理器1的可访问性,并且许可配置单元1和处理器1配置条目1。如上所述,相应的许可配置单元0至i-1设置CPU 10_1和10_2对相应的处理器0至i-1的可访问性,并且相应的许可配置单元0至i-1和相应的处理器0至i-1配置条目0至i-1。

周边资源12_2包括处理器13_2和许可配置单元14_2。由于周边资源12_2的配置类似于周边资源12_1的配置,因此将省略对其的详细描述。尽管在图1中所示的示例中示出了包括多个访问控制器11_1和11_2以及多个周边资源12_1和12_2的配置,但是可提供仅一个访问控制器和一个周边资源。

当CPU 10_1和10_2访问周边资源12_1和12_2时,根据本实施例的数据处理设备1使用访问控制器11_1和11_2来控制CPU 10_1和10_2对周边资源12_1和12_2的访问。在下面的描述中,将详细地描述访问控制器11_1和11_2中的访问控制。

图2是示出根据本实施例的数据处理设备的配置示例的框图。图2中所示的数据处理设备示出了图1中所示的数据处理设备的一部分。具体而言,为了说明的简化,图2中所示的数据处理设备包括这样的配置,该配置包括一个CPU 10、一个访问控制器11和一个周边资源12。在下面的描述中,将描述包括一个CPU 10、一个访问控制器11和一个周边资源12的配置。然而,下面的描述也可以应用于包括多个CPU 10、多个访问控制器11和多个周边资源12的配置(参见图1)。

如图2中所示,数据处理设备1包括CPU 10、访问控制器11和周边资源12。访问控制器11包括MID许可配置选择单元21、TID选择单元22、SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26。另外,周边资源12包括处理器13和许可配置单元14。

CPU 10执行预定程序。另外,CPU 10存储访问请求标识符(SPID:系统保护标识)。当发送用于访问周边资源12的请求时,CPU 10输出处理器选择信息、SPID和访问信息(R/W等等),访问信息是有关诸如对访问控制器11的读/写之类的访问类型的信息。在下面的描述中,将作为示例描述访问信息是指示读/写的访问信息(R/W)的情况。

周边资源12的处理器13设置有处理器0至i-1(i是等于或大于1的整数)。相应的处理器0至i-1中的每个提供周边资源12的主要功能(中断处理,等等)。另外,周边资源12包括许可配置单元14。

图3是示出周边资源12的配置示例(即,处理器13和许可配置单元14的配置示例)的图示。如图3中所示,许可配置单元14包括分别对应于处理器0至i-1的许可配置单元0至i-1。许可配置单元0至i-1中的每个存储许可配置信息,在该许可配置信息中,要用于访问控制的SPID表配置TID(表标识)(稍后描述细节)和为每个中间标识符(MID:中间标识)配置的访问许可配置信息(MID许可配置)彼此相关联。

即,许可配置单元0设置CPU 10对处理器0的可访问性,并且许可配置单元0和处理器0配置条目0。许可配置单元1设置CPU 10对处理器1的可访问性,并且许可配置单元1和处理器1配置条目1。如上所述,相应的许可配置单元0至i-1设置CPU 10对相应的处理器0至i-1的可访问性,并且相应的许可配置单元0至i-1和相应的处理器0至i-1配置条目0至i-1。

如图2所示,许可配置单元14向访问控制器11输出SPID表配置和MID许可配置。具体而言,许可配置单元14向访问控制器11的TID选择单元22输出SPID表配置,并且向访问控制器11的MID许可配置选择单元21输出MID许可配置。

访问控制器11的MID许可配置选择单元21使用从CPU 10输出的处理器选择信息,从自许可配置单元14提供的MID许可配置当中选择要用于访问控制的MID许可配置,并且向许可确定单元26输出所选择的MID许可配置。

图4是示出MID许可配置选择单元21的配置示例的图示。如图4所示,MID许可配置选择单元21包括MID选择信息生成器41和选择器42。MID选择信息生成器41根据从CPU 10输出的处理器选择信息生成选择信号,并且向选择器42输出所生成的选择信号。选择器42根据选择信号,从自许可配置单元14提供的MID许可配置当中选择MID许可配置,并且输出所选择的MID许可配置。

处理器选择信息例如是CPU 10访问的处理器0至i-1的访问地址,并且MID许可配置选择单元21能够使用该处理器地址识别CPU10访问的处理器0至i-1。因此,MID许可配置选择单元21能够选择与CPU 10访问的处理器0至i-1对应的MID许可配置0至i-1。

图2中所示的TID选择单元22使用从CPU 10输出的处理器选择信息,从自许可配置单元14提供的SPID表配置(TID)当中选择要用于访问控制的SPID表配置(TID),并且将所选择的SPID表配置(TID)输出到SPID表选择单元24。

图5是示出TID选择单元22的配置示例的图示。如图5中所示,TID选择单元22包括TID选择信息生成器43和选择器44。TID选择信息生成器43根据从CPU 10输出的处理器选择信息来生成选择信号,并且向选择器44输出所生成的选择信号。选择器44根据选择信号,从自许可配置单元14提供的SPID表配置(TID)当中选择SPID表配置(TID),并且输出所选择的SPID表配置(TID)。

处理器选择信息例如是CPU 10访问的处理器0至i-1的访问地址,并且TID选择单元22能够使用该处理器地址识别CPU 10访问的处理器0至i-1。因此,TID选择单元22能够选择与CPU 10访问的处理器0至i-1对应的SPID表配置(TID)。

图2中所示的SPID表单元23包括SPID表,在SPID表中,MID和SPID彼此相关联。图6是示出SPID表单元23的配置示例的图示。如图6中所示,SPID表单元23包括SPID表(TID=0至TID=j-1)(j是等于或大于1的整数)。在图6中所示的示例中,SPID表(TID=0至TID=j-1)中的每个存储彼此相关联的4个MID0-MID3和4个SPID0-SPID3。在图6中所示的SPID表中,当在MID0中配置SPID0时,这意味着MID0的MID许可配置被应用于SPID0的访问。

图2中所示的SPID选择单元24使用由TID选择单元22选择的SPID表配置(TID),从存储在SPID表单元23中的SPID表(TID=0至TID=j-1)当中选择要用于访问控制的SPID表,并且将所选择的SPID表输出到MID一致性确定单元25。

图7是示出SPID表选择单元24的配置示例的图示。如图7中所示,SPID表选择单元24由选择器45构成。选择器45根据从TID选择单元22提供的SPID表配置(TID),从存储在SPID表单元23中的SPID表(TID=0至TID=j-1)当中选择SPID表,并且输出所选择的SPID表。

图2中所示的MID一致性确定单元25使用在SPID表选择单元24中选择的SPID表来确定与从CPU 10输出的SPID对应的MID。

图8是示出MID一致性确定单元25的配置示例的图示。如图8中所示,MID一致性确定单元25包括运算子47_0-47_3。分别向运算子47_0-47_3提供在所选择的SPID表中的MID0-MID3中配置的值(SPID0-SPID3)。另外,将SPID从CPU 10提供至运算子47_0-47_3中的每个。运算子47_0-47_3分别比较从CPU 10提供的SPID与在MID0-MID3中配置的值(SPID0-SPID3)。当这些值与SPID一致时,确定该请求是对应于MID的访问请求。

例如,当从CPU 10提供的SPID与在SPID表的MID0中配置的值(SPID0)一致时,运算子47_0确定该请求是对应于MID0的访问请求。在这种情况下,MID一致性确定单元25输出指示MID0的该一致性的确定结果。

如上所述,MID一致性确定单元25确定从SPID表提供的SPID0-SPID3是否与从CPU 10提供的SPID一致,并且将确定结果输出到许可确定单元26。

图2中所示的许可确定单元26基于在MID许可配置选择单元21中选择的MID许可配置、从MID一致性确定单元25输出的MID一致性确定结果和从CPU 10输出的访问信息(R/W),确定CPU 10对处理器13的可访问性。

图9是示出许可确定单元26的配置示例的图示。图9中所示的许可确定单元26包括访问确定单元48_0-48_3、AND_0-AND_3和OR(或)电路。在图9中所示的许可确定单元26中,首先,访问确定单元48_0-48_3执行访问确定。

向访问确定单元48_0-48_3提供来自CPU 10的访问信息(R/W)。另外,分别向访问确定单元48_0-48_3提供MID0许可配置-MID3许可配置。MID0许可配置-MID3许可配置是相对于MID0-MID3的许可配置,并且例如被配置为使得“MID0指示允许读取/不允许写入”、“MID1指示允许读取/允许写入”、“MID2指示不允许读取/允许写入”、“MID3指示不允许读取/不允许写入”。

在上述配置中,例如,当作为访问信息(R/W)从CPU 10提供读取(R)访问时,在访问确定单元48_0-48_3之中,对应于被配置为"允许读取"的MID0许可配置和MID1许可配置的访问确定单元48_0和48_1输出许可确定,而对应于被配置为“不允许读取”的MID2许可配置和MID3许可配置的访问确定单元48_2和48_3输出不许可确定。

在访问确定单元48_0-48_3中的访问确定之后,执行基于MID一致性确定结果的访问确定。即,分别向AND_0-AND_3提供来自MID一致性确定单元25的MID0-MID3的MID一致性确定结果。另外,分别向AND_0-AND_3提供来自访问确定单元48_0-48_3的访问确定结果。

当从访问确定单元48_0-48_3提供的访问确定结果指示“许可确定”且从MID一致性确定单元25提供的MID一致性确定结果指示“一致”时,AND_0-AND_3分别确定应该允许访问。另一方面,当从访问确定单元48_0-48_3提供的访问确定结果指示“不许可确定”或从MID一致性确定单元25提供的MID一致性确定结果指示"不一致"时,AND_0-AND_3分别确定应该不允许访问。

将从AND_0-AND_3输出的确定结果提供给OR(或)电路。当AND_0至AND_3中的至少一个确定应允许访问时,OR(或)电路输出确定结果“允许访问”。另一方面,当全部AND_0-AND_3确定应不允许访问时,OR(或)电路输出确定结果“不允许访问”。

在图9中所示的许可确定单元26中,描述了访问确定单元48_0-48_3首先执行访问确定并且之后基于MID一致性确定结果执行访问确定的情况。然而,根据本实施例的数据处理设备1可以在基于MID一致性确定结果执行访问确定之后,在访问确定单元48_0-48_3中执行访问确定。

在图9中所示的许可确定单元26中,已经描述了访问确定单元48_0-48_3使用从CPU 10输出的作为访问信息的读/写(R/W)来执行访问确定的情况。然而,根据本实施例的数据处理设备1可以以这样的方式来配置,以便访问确定单元48_0-48_3使用其他访问信息(例如,CPU号)来执行访问确定。

接下来,将参照图2中所示的框图和图10中所示的流程图来描述根据本实施例的数据处理设备1的访问控制的操作。

如图2中所示,当访问周边资源12时,CPU 10将处理器选择信息SPID和访问信息(R/W)输出到访问控制器11。MID许可配置选择单元21使用从CPU 10输出的处理器选择信息,从自许可配置单元14提供的MID许可配置当中选择要用于访问控制的MID许可配置,并且向许可确定单元26输出所选择的MID许可配置(图10中的步骤S1)。另外,TID选择单元22使用从CPU 10输出的处理器选择信息,从自许可配置单元14提供的SPID表配置(TID)当中选择要用于访问控制的SPID表配置(TID),并且将所选择的SPID表配置(TID)输出到SPID表选择单元24(图10中的步骤S2)。

在此之后,图2中所示的SPID选择单元24使用由TID选择单元22选择的SPID表配置(TID),从存储在SPID表单元23中的SPID表(TID=0至TID=j-1)当中选择要用于访问控制的SPID表,并且将所选择的SPID表输出到MID一致性确定单元25(图10中的步骤S3)。

在此之后,图2中所示的MID一致性确定单元25使用在SPID表选择单元24中选择的SPID表来确定与从CPU 10输出的SPID对应的MID。具体地说,如图8中所示,MID一致性确定单元25将从CPU 10提供的SPID与各个MID0-MID3中配置的值(SPID0-SPID3)进行比较,并且将对应于与从CPU 10提供的SPID一致的SPID0-SPID3的MID0-MID3输出到许可确定单元26。

在此之后,图2中所示的许可确定单元26基于在MID许可配置选择单元21中选择的MID许可配置、从MID一致性确定单元25输出的MID一致性确定结果和从CPU 10输出的访问信息(R/W),确定CPU 10对处理器13的可访问性。

具体而言,包含在图9中所示的许可确定单元26中的访问确定单元48_0-48_3使用从CPU 10输出的访问信息(R/W)和在图10中的步骤S1中选择的MID许可配置(MID0许可配置-MID3许可配置)来执行访问确定(图10中的步骤S5)。

之后,包括在图9中所示的许可确定单元26中的AND_0-AND_3和OR(或)电路使用从MID一致性确定单元25提供的MID一致性确定结果和从访问确定单元48_0-48_3提供的访问确定结果来执行许可确定(图10中的步骤S6)。

当AND_0至AND_3中的至少一个确定应允许访问时(步骤S7:是),许可确定单元26输出确定结果“允许访问”。另一方面,当全部AND_0-AND_3确定应不允许访问时(步骤S7:否),许可确定单元26输出确定结果“不允许访问”。

根据这些操作,当CPU 10访问处理器13时,访问控制器11能够控制CPU 10对处理器13的访问。换言之,当CPU 10访问处理器13时,访问控制器11能够保护处理器13免受CPU 10的未经授权的访问。

接下来,将描述根据本实施例的数据处理设备1中的访问控制的具体示例。

图11是示出SPID表单元23的具体示例的图示。如图11中所示,SPID表单元23包括两个SPID表(TID=0,1)。在SPID表(TID=0)中,配置了MID0=SPID"0"、MID1=SPID"1"、MID2=SPID"2"以及MID3=SPID"3"。另外,在SPID表(TID=1)中,配置了MID0=SPID"4"、MID1=SPID"5"、MID2=SPID"6"以及MID3=SPID"7"。

图12是示出周边资源12的具体示例的图示,即,处理器13和许可配置单元14的具体示例。图12示出了周边资源12包括四个处理器0-3的示例。访问地址被设置在相应的处理器0-3中。具体来说,访问地址“0xFFFF0000”被设置在处理器0中,访问地址“0xFFFF0004”被设置在处理器1中,访问地址“0xFFFF0008”被设置在处理器2中,而访问地址“0xFFFF000C”被设置在处理器3中。

此外,许可配置单元14设置有分别对应于处理器0-3的许可配置单元0-3。在许可配置单元0-3中的每个中配置了SPID表配置(TID)和MID许可配置。具体地说,在许可配置单元0中,设置了TID=0,MID0=0,MID1=1,MID2=0和MID3=1。当MID许可配置为“0”时,指示“不允许访问”。当MID许可配置为“1”时,指示“允许访问”。此外,在许可配置单元1中配置了TID=1,MID0=1,MID1=0,MID2=1和MID3=0。在许可配置单元2中配置了TID=0,MID0=0,MID1=0,MID2=1和MID3=1。在许可配置单元3中配置了TID=1,MID0=1,MID1=1,MID2=0和MID3=0。

基于上述配置,将参考图13中所示的流程图,描述CPU使用访问地址"0xFFFF0008"作为处理器选择信息以及"SPID=2"作为访问请求SPID来访问周边资源12(即处理器2)的操作。

如图2中所示,当CPU 10访问周边资源12时,CPU 10输出访问地址"0xFFFF0008"作为处理器选择信息。如图12中所示,访问地址"0xFFFF0008"对应于处理器2(n=2)的访问地址。因此,MID许可配置选择单元21选择许可配置单元2的MID许可配置,并将所选择的MID许可配置输出到许可确定单元26(图13中的步骤S1)。另外,TID选择单元22选择许可配置单元2的SPID表配置(TID=0),并将所选择的SPID表配置(TID=0)输出至SPID表选择单元24(图13中的步骤S2)。

在此之后,图2中所示的SPID选择单元24使用在TID选择单元22中选择的SPID表配置(TID=0),从存储在SPID表单元23中的SPID表(TID=0,TID=TID=1)当中选择要用于访问控制的SPID表(TID=0),并将所选择的SPID表(TID=0)输出到MID一致性确定单元25(图13中的步骤S3)。

在此之后,图2中所示的MID一致性确定单元25使用在SPID表选择单元24中选择的SPID表(TID=0)来确定与从CPU 10输出的SPID=2对应的MID。在这种情况下,由于在SPID表(TID=0)中的MID2中配置的SPID是"2",因此将"MID2"作为对应于从CPU10输出的SPID=2的MID输出至许可确定单元26。

在此之后,图2中所示的许可确定单元26基于在MID许可配置选择单元21中选择的MID许可配置(n=2:参见图13中的步骤S1)和从MID一致性确定单元25输出的MID一致性确定结果(MID2),确定CPU 10对处理器13的可访问性(图13中的步骤S6)。

具体而言,许可确定单元26参考由MID许可配置选择单元21选择的许可配置单元2的配置信息(MID0=0,MID1=0,MID2=1,MID3=1),以获取对应于从MID一致性确定单元25输出的"MID2"的MID2的配置信息(MID2=1)。在这种情况下,MID2=1,这意味着"允许访问"。因此,CPU 10对处理器2的访问(访问地址"0xFFFF0008")被允许。

在图13中所示的示例中,省略了使用从CPU 10输出的访问信息(R/W)的访问确定(图10中的步骤S5)。

如"背景技术"中所描述的,数据处理设备包括访问控制器,该访问控制器被配置为当操作单元访问周边资源时控制对周边资源的访问以便保护周边资源免受未经授权的访问。例如,访问控制器基于许可配置信息,控制操作单元对每个条目的访问,该许可配置信息指示有关操作单元是否可以访问周边资源包括的相应的条目(处理器)的协议。

然而,在最近的数据处理设备中,周边资源的条目数量趋向于增大。这会导致下列问题:有关操作单元对相应的条目(处理器)的访问权限的协议的许可配置信息的量变得太大,并且存储许可配置信息的电路的尺寸也增大。

根据本实施例的数据处理设备被配置为当CPU 10访问处理器13时将访问请求标识符(SPID)输出至访问控制器11。此外,提供了其中中间标识符(MID)和访问请求标识符(SPID)彼此关联的SPID表(见图6)。另外,提供了许可配置单元0至i-1,在许可配置单元0至i-1中,对于每个中间标识符(MID)执行许可配置(参见图3)。

当CPU 10访问处理器0至i-1时,访问控制器11确定与从CPU10输出的访问请求标识符(SPID)相对应的中间标识符(MID),并且基于对应于该中间标识符(MID)的许可配置来确定是否允许访问。

请注意,中间标识符(MID)的数量小于访问请求标识符(SPID)的数量。因此,可使当对于每个中间标识符(MID)执行许可配置时的许可配置单元的电路的尺寸小于当对于每个访问请求标识符(SPID)执行许可配置时的许可配置单元的电路的尺寸。具体而言,可以使图3中所示的许可配置单元0至i-1的尺寸较小。

因此,根据本实施例中的数据处理设备,可以提供能够抑制电路的尺寸增大的数据处理设备和访问控制方法。

图14是示出根据比较示例的数据处理设备的许可配置单元的配置示例的图示。在图14中所示的比较示例中,为条目数为512的周边资源提供了许可配置单元0-511。当SPID是5比特并且对于读取和写入中的每个执行访问许可配置时,如图14中所示,在许可配置单元0中为SPID0-SPID31中的每个配置了写入许可配置WSPID0-WSPID31和读取许可配置RSPID0-RSPID31。在图14中所示的比较示例中,为条目数为512的所有周边资源提供了这些许可配置单元0-511。因此,许可配置单元0-511的电路的尺寸变得太大。

图15是示出根据本实施例的数据处理设备1中包括的SPID表单元23和许可配置单元14的配置示例的图示。在图15中所示的配置示例中,提供了四个SPID表(TID=0-3)。SPID表中的每个为每个MID使用5比特寄存器,以便使MID0-MID3与相应的SPID相关联。

另外,在图15中所示的配置示例中,为条目数为512的周边资源提供了许可配置单元0-511。如图15中所示,在许可配置单元0中为MID0-MID3中的每个配置写入许可配置WMID0-WMID3和读取许可配置RMID0-RMID3。另外,在许可配置单元0中配置了SPID表配置(TID)。2比特寄存器被用于SPID表配置(TID)。在图15中所示的配置示例中,为条目数为512的所有周边资源提供了这些许可配置单元0-511。

将根据图14中所示的比较示例的配置与根据图15中所示的本实施例的数据处理设备的配置进行比较,在根据图15中所示的本实施例的配置示例中,与图14中所示的比较示例的寄存器的总比特数相比,可以大大减少构成许可配置单元0-511的寄存器的总比特数。具体而言,构成根据图14中所示的比较示例的许可配置单元0-511的寄存器的总比特数为512(条目数)×32(SPID的数量)×2=32768比特。另一方面,构成根据图15中所示的本实施例的配置示例的许可配置单元0-511的寄存器的总比特数为512(条目数)×{4(MID的数量)×2+2比特(TID)}=5120比特。因此,在根据图15中所示的本实施例的配置示例中,与根据图14中所示的比较示例的配置的比特数相比,比特数可以减少大约84%。

在根据图15中所示的本实施例的配置示例中,需要重新准备SPID表(TID=0-3)。然而,用于构成四个SPID表的比特数是5比特×4(MID的数量)×4(表的数量)=80比特。因此,可以通过少量的比特数来构成SPID表(TID=0-3)。因此,即使在考虑了总比特数的情况下,在根据图15中所示的本实施例的配置示例中,用于该配置的比特数可以减少更多。

此外,在本实施例中,与为比较示例中描述的所有SPID提供许可配置的情况相比,限制了可以在每个许可配置单元中使用的SPID的数量。然而,与在SPID表单元23中定义的SPID表的数量相比,可以增加周边资源可以使用的SPID的数量。此外,在实际应用中限制使用各个条目的程序的数量。因此,无需为所有SPID提供许可配置。

根据上面所描述的该实施例,可以提供能够抑制电路的尺寸增大的数据处理设备和访问控制方法。

<第二实施例>

接下来,将描述第二实施例。

图16是示出根据第二实施例的数据处理设备的配置示例的框图。根据第二实施例的数据处理设备2与第一实施例中描述的数据处理设备1(参见图2)的不同之处在于,处理器63具有用于配置使用相应的处理器0至i-1的CPU的CPUID。由于其他配置类似于第一实施例中所描述的数据处理设备1(参照图2),因此相同的组件用相同的附图标记表示,并且相应地省略其重复的说明。

如图16中所示,根据本实施例的数据处理设备2包括多个CPU60_0至60_n-1、访问控制器61和周边资源62。访问控制器61包括MID许可配置选择单元65、TID选择单元66、SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26。此外,周边资源62包括处理器63和许可配置单元64。

多个CPU60_0至60_n-1被以这样的方式配置,以便它们可经由总线19访问周边资源62。在这种情况下,访问控制器61控制相应的CPU 60_0至60_n-1对周边资源62的访问。

CPU 60_0至60_n-1中的每个执行预定程序。此外,CPU 60_0至60_n-1中的每个存储访问请求标识符(SPID)。CPU 60_0至60_n-1中的每个在访问周边资源62时,将访问地址、SPID、以及访问信息(R/W)输出到访问控制器61。

周边资源62的处理器63设置有处理器0至i-1(i是等于或大于1的整数)。处理器0至i-1中的每个提供周边资源62的主要功能(中断处理等)。另外,周边资源62包括许可配置单元64。

此外,在本实施例中,提供了用于配置使用相应的处理器0至i-1的CPU的CPUID。在本实施例中,提供了n个CPU 60_0至60_n-1。因此,将CPUID=0至n-1配置为CPUID。例如,当将CPUID=0配置为对应于处理器0的CPUID时,这意味着使用处理器0的CPU是CPU0(60_0)。对应于相应的处理器0至i-1的CPUID可以由用户任意配置。对应于相应的处理器0至i-1的CPUID被输出到TID选择单元66。

类似于图3中示出的许可配置单元14,许可配置单元64包括对应于相应的处理器0至i-1的许可配置单元0至i-1。许可配置单元0至i-1中的每个存储为每个中间标识符(MID)配置的访问许可配置信息(MID许可配置)。在本实施方案中,TID选择单元66使用对应于相应的处理器0至i-1的CPUID来选择SPID表配置(TID)。因此,在本实施例中,许可配置单元64不包括图3中所示的许可配置单元14中所包括的SPID表配置(TID)。

如图16中所示,许可配置单元64将MID许可配置输出到MID许可配置选择单元65。MID许可配置选择单元65使用从CPU 60_0至60_n-1输出的访问地址,从自许可配置单元64提供的MID许可配置当中选择要用于访问控制的MID许可配置,并向许可确定单元26输出所选择的MID许可配置。

图17是示出MID许可配置选择单元65的配置示例的图示。如图17中所示,MID许可配置选择单元65包括MID选择信息生成器71和选择器72。MID选择信息生成器71根据从CPU 60_0至60_n-1输出的访问地址来生成选择信号,并向选择器72输出所生成的选择信号。选择器72根据选择信号,从自许可配置单元64提供的MID许可配置当中选择MID许可配置,并输出所选择的MID许可配置。

从CPU 60_0到60_n-1输出的访问地址是CPU 60_0至60_n-1访问的处理器0至i-1的访问地址,并且MID许可配置选择单元65能够使用这些访问地址识别CPU 60_0至60_n-1访问的处理器0至i-1。因此,MID许可配置选择单元65能够选择与CPU 60_0至60_n-1访问的处理器0至i-1对应的MID许可配置0至i-1。

图16中所示的TID选择单元66使用从CPU 60_0至60_n-1输出的访问地址,从对应于从周边资源62提供的相应的处理器0至i-1的CPUID当中选择与访问地址对应的CPUID。

图18是示出TID选择单元66的配置示例的图示。如图18中所示,TID选择单元66包括选择器73。选择器73从对应于从周边资源62提供的相应的处理器0至i-1的CPUID当中选择对应于访问地址的CPUID,并输出所选择的CPUID。

从CPU 60_0到60_n-1输出的访问地址是与CPU 60_0至60_n-1访问的处理器0至i-1相对应的访问地址。因此,TID选择单元66能够通过使用从CPU 60_0至60_n-1输出的访问地址来选择对应于CPU 60_0至60_n-1访问的处理器0至i-1的CPUID。将所选择的CPUID作为所选择的TID提供至SPID表选择单元24。

例如当CPU 60_1使用处理器1时,处理器1的CPUID被配置为CPUID=1。当CPU 60_1访问处理器1时,CPU 60_1输出与处理器1相对应的访问地址=1作为访问地址。TID选择单元66将与访问地址=1对应的处理器1的CPUID=1作为TID输出到SPID表选择单元24。

在根据本实施例的配置中,SPID表单元23存储对应于n个CPUID=0至n-1的SPID表(TID=0至n-1)。

此外,由于其他配置,即,SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26的配置与第一实施例中所描述的相似,所以将省略其描述。

在根据本实施例的数据处理设备2中,多个CPU 60_0至60_n-1共享周边资源62。另外,相应的处理器0至i-1包括CPUID,CPUID是关于使用相应的处理器0至i-1的CPU的信息。例如在指定了将使用每个通道(处理器)的CPU的情况下,该配置例如被用于中断控制器。例如,在嵌入式领域的多核系统中,通常需要以CPU为单位来管理对存储器空间和周边设备的访问权限的配置。在这些情况下,可以适当地使用根据本实施例的配置。

此外,在根据本实施例的数据处理设备2中,可以取决于使用处理器0至i-1的CPU来改变要参考的SPID表(即,MID一致性确定单元25中使用的SPID表)。因此,以CPU为单位来使用SPID表,并且可以在多核系统中的编程中更容易地管理访问权限。

也就是说,在多核系统中,对导致多个CPU独占地或以共享的方式使用周边资源的访问权限的管理是严重的问题。根据本实施例的数据处理设备2能够通过将要参考的SPID表与使用处理器0至i-1的CPU的配置相关联来解决这个问题。此外,由于不需要在许可配置单元64中提供SPID表配置(TID),所以可以减小安装面积。

<第三实施例>

接下来,将描述第三实施例。

图19是示出根据第三实施例的数据处理设备的配置示例的框图。根据第三实施例的数据处理设备3与第一实施例中所描述的数据处理设备1(参见图2)的不同之处在于,单个CPU 80包括多个虚拟CPU(VCPU0至VCPUm-1),而这些多个虚拟CPU(VCPU0至VCPUm-1)共享周边资源82。由于其他配置类似于第一实施例中所描述的数据处理设备1(参照图2),因此相同的组件用相同的附图标记表示,并且将适当地省略其重复的说明。

如图19中所示,根据本实施例的数据处理设备3包括CPU 80、访问控制器81和周边资源82。访问控制器81包括MID许可配置选择单元85、TID选择单元86、SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26。此外,周边资源82包括处理器83和许可配置单元84。

CPU 80包括多个虚拟CPU(VCPU0至VCPUm-1)。多个虚拟CPU(VCPU0至VCPUm-1)被配置成能够访问周边资源82。在这种情况下,访问控制器81控制相应的虚拟CPU(VCPU0至VCPUm-1)对周边资源82的访问。

虚拟CPU(VCPU0至VCPUm-1)中的每个执行预定程序。此外,CPU 80存储访问请求标识符(SPID)。虚拟CPU(VCPU0至VCPUm-1)中的每个在访问周边资源82时将访问地址、SPID、以及访问信息(R/W)输出到访问控制器81。

周边资源82的处理器83设置有处理器0至i-1(i是等于或大于1的整数)。处理器0至i-1中的每个提供周边资源82的主要功能(中断处理等)。另外,周边资源82包括许可配置单元84。

此外,在本实施例中,提供了用于配置使用相应的处理器0至i-1的虚拟CPU(VCPU0至VCPUm-1)的VCPUID。在本实施例中,提供了m个虚拟CPU(VCPU0至VCPUm-1)。因此,VCPUID=0至m被设置为VCPUID。例如,当将VCPUID=0配置为对应于处理器0的VCPUID时,这意味着使用处理器0的虚拟CPU是VCPU0。对应于相应的处理器0至i-1的VCPUID可以由用户任意配置。对应于相应的处理器0至i-1的VCPUID被输出到TID选择单元86。

类似于图3中示出的许可配置单元14,许可配置单元84包括对应于相应的处理器0至i-1的许可配置单元0至i-1。许可配置单元0至i-1中的每个存储为每个中间标识符(MID)配置的访问许可配置信息(MID许可配置)。在本实施方案中,TID选择单元86使用对应于相应的处理器0至i-1的VCPUID来选择SPID表配置(TID)。因此,在本实施例中,许可配置单元84不包括图3中所示的许可配置单元14中所包括的SPID表配置(TID)。

如图19中所示,许可配置单元84将MID许可配置输出到MID许可配置选择单元85。许可配置选择单元85使用从CPU 80输出的访问地址,从自许可配置单元84提供的MID许可配置当中选择要用访问控制的MID许可配置,并向许可确定单元26输出所选择的MID许可配置。

从CPU 80输出的访问地址是虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1的访问地址,并且MID许可配置选择单元85能够使用这些访问地址识别虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1。因此,MID许可配置选择单元85能够选择与虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1对应的MID许可配置0至i-1。

图19中所示的TID选择单元86使用从CPU 80的虚拟CPU(VCPU0至VCPUm-1)输出的访问地址,从与从周边资源82提供的相应的处理器0至i-1对应的VCPUID当中选择对应于访问地址的VCPUID。

图20是示出TID选择单元86的配置示例的图示。如图20中所示,TID选择单元86包括选择器91。选择器91从对应于从周边资源82提供的相应的处理器0至i-1的VCPUID当中选择对应于访问地址的VCPUID,并输出所选择的VCPUID。

从CPU 80输出的访问地址对应于虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1。因此,TID选择单元86能够通过使用从CPU 80输出的访问地址来选择对应于虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1的VCPUID。将所选择的VCPUID作为所选择的TID提供至SPID表选择单元24。

例如,当虚拟CPU(VCPU1)使用处理器1时,处理器1的VCPUID被设置为VCPUID=1。当虚拟CPU(VCPU1)访问处理器1时,虚拟CPU(VCPU1)输出与处理器1相对应的访问地址=1作为访问地址。TID选择单元86将与访问地址=1对应的处理器1的VCPUID=1作为TID输出到SPID表选择单元24。

在根据本实施例的配置中,SPID表单元23存储对应于m个VCPUID=0至m-1的SPID表(TID=0至m-1)。

此外,由于其他配置,即,SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26的配置与第一实施例中所描述的相似,所以将省略对其的重复描述。

在根据本实施例的数据处理设备3中,多个虚拟CPU(VCPU0至VCPUm-1)共享周边资源82。另外,相应的处理器0至i-1具有VCPUID,VCPUID是关于使用相应的处理器0至i-1的虚拟CPU的信息。在例如指定了将使用每个通道(处理器)的虚拟CPU的情况下,该配置例如被用于中断控制器。例如,在嵌入式领域的多核系统中,通常需要以虚拟CPU为单位来管理对存储器空间和周边设备的访问权限的配置。在这些情况下,可以适当地使用根据本实施例的配置。

此外,根据本实施例的数据处理设备3能够取决于使用处理器0至i-1的虚拟CPU来改变要参考的SPID表(即,MID一致性确定单元25中使用的SPID表)。因此,以虚拟CPU为单位来使用SPID表,并且可以在多核系统中的编程中更容易地管理访问权限。

也就是说,在多核系统中,对导致多个虚拟CPU独占地或以共享的方式使用周边资源的访问权限的管理是严重的问题。在根据本实施例的数据处理设备3中,可通过将要参考的SPID表与使用处理器0至i-1的虚拟CPU的配置相关联来解决这个问题。此外,由于不需要在许可配置单元84中提供SPID表配置(TID),所以可以减小安装面积。

<第四实施例>

接下来,将描述第四实施例。

图21是示出第四实施例的数据处理设备的配置示例的框图。根据第四实施例的数据处理设备4与第一实施例中所描述的数据处理设备1(参见图2)的不同之处在于,多个CPU 100_0至100_n-1中的每个包括多个虚拟CPU(VCPU0至VCPUm-1),并且这些多个虚拟CPU共享周边资源102。也就是说,第四实施例的配置是根据第二实施例的配置与根据第三实施例的配置的结合。由于其他配置类似于第一实施例中所描述的数据处理设备1(参照图2),因此相同的组件用相同的附图标记表示,并且将适当地省略对其的重复说明。

如图21中所示,根据本实施例的数据处理设备4包括多个CPU 100_0至100_n-1、访问控制器101和周边资源102。访问控制器101包括MID许可配置选择单元105、TID选择单元106、SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26。此外,周边资源102包括处理器103和许可配置单元104。

CPU 100_0至100_n-1中的每个包括多个虚拟CPU(VCPU0至VCPUm-1)。多个CPU 100_0至100_n-1以及多个虚拟CPU(VCPU0至VCPUm-1)被配置成能够经由总线19访问周边资源102。在这种情况下,访问控制器101控制多个CPU 100_0至100_n-1和多个虚拟CPU(VCPU0至VCPUm-1)对周边资源102的访问。

CPU 100_0至100_n-1中的每个和虚拟CPU(VCPU0至VCPUm-1)中的每个执行预定的程序。此外,CPU 100_0至100_n-1中的每个存储访问请求标识符(SPID)。CPU 100_0至100_n-1中的每个在访问周边资源102时,将访问地址、SPID、以及访问信息(R/W)输出到访问控制器101。

周边资源102的处理器103设置有处理器0至i-1(i是等于或大于1的整数)。处理器0至i-1中的每个提供周边资源102的主要功能(中断处理等)。另外,周边资源102包括许可配置单元104。

此外,在本实施例中,提供了用于配置使用相应的处理器0至i-1的CPU 100_0至100_n-1的CPUID。在本实施例中,提供了n个CPU100_0至100_n-1。因此,将CPUID=0至n-1配置为CPUID。例如,当将CPUID=0配置为对应于处理器0的CPUID时,这意味着使用处理器0的CPU是CPU0(100_0)。

此外,在本实施例中,提供了用于配置使用相应的处理器0至i-1的虚拟CPU(VCPU0至VCPUm-1)的VCPUID。在本实施例中,提供了m个虚拟CPU(VCPU0至VCPUm-1)。因此,VCPUID=0至m被配置为VCPUID。例如,当将VCPUID=0配置为对应于处理器0的VCPUID时,这意味着使用处理器0的虚拟CPU是VCPU0。

对应于相应的处理器0至i-1的CPUID和VCPUID被输出到TID选择单元106。

类似于图3中示出的许可配置单元14,许可配置单元104包括对应于相应的处理器0至i-1的许可配置单元0至i-1。许可配置单元0至i-1中的每个存储为每个中间标识符(MID)配置的访问许可配置信息(MID许可配置)。在本实施方案中,TID选择单元106使用对应于相应的处理器0至i-1的CPUID和VCPUID来选择SPID表配置(TID)。因此,在本实施例中,许可配置单元104不包括图3中所示的许可配置单元14所包括的SPID表配置(TID)。

如图21中所示,许可配置单元104将MID许可配置输出到MID许可配置选择单元105。MID许可配置选择单元105使用从CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)输出的访问地址,从自许可配置单元14提供的多个MID许可配置当中选择要用于访问控制的MID许可配置,并向许可确定单元26输出所选择的MID许可配置。

从CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)输出的访问地址是CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1的访问地址,并且MID许可配置选择单元105能够使用该访问地址识别CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1。因此,MID许可配置选择单元105能够选择与CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1对应的MID许可配置0至i-1。

图22中所示的TID选择单元106使用从CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)输出的访问地址,从与从周边资源102提供的相应的处理器0至i-1对应的CPUID和VCPUID当中选择对应于访问地址的CPUID和VCPUID。

图22是示出TID选择单元106的配置示例的图示。如图22中所示,TID选择单元106包括选择器111。选择器111从与从周边资源102提供的相应的处理器0至i-1相对应的CPUID和VCPUID当中选择对应于访问地址的CPUID和VCPUID,并输出所选择的CPUID和VCPUID。

从CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)输出的访问地址是与CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1相对应的访问地址。因此,TID选择单元106能够通过使用从CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)输出的访问地址,选择对应于CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)访问的处理器0至i-1的CPUID和VCPUID。将所选择的CPUID和VCPUID作为所选择的TID提供至SPID表选择单元24。

由于其他配置,即,SPID表单元23、SPID表选择单元24、MID一致性确定单元25和许可确定单元26的配置与第一实施例中所描述的相似,所以将省略对其的重复描述。

在根据本实施例的数据处理设备4中,CPU 100_0至100_n-1和虚拟CPU(VCPU0至VCPUm-1)共享周边资源82。另外,相应的处理器0至i-1包括CPUID和VCPUID,CPUID和VCPUID是关于使用相应的处理器0至i-1的CPU和虚拟CPU的信息。在例如指定了使用相应的通道(处理器)的CPU和虚拟CPU的情况下,该配置例如被用于中断控制器。例如,在嵌入式领域的多核系统中,通常需要以CPU和虚拟CPU为单位来管理对存储器空间和周边设备的访问权限的配置。在这些情况下,可以适当地使用根据本实施例的配置。

<其他实施例>

图23是示出当根据第一实施例的数据处理设备被用于车辆时的配置示例的框图。如图23中所示,车辆200设置有数据处理设备1、传感器210和相机220。数据处理设备1是车载芯片。传感器210获取关于车辆200的预定信息。此外,相机220获取车辆周围的图像。由传感器210和相机220获取的信息被提供给数据处理设备1。数据处理设备1根据由传感器210和相机220获取的信息执行预定处理。

在这种情况下,包括在根据第一实施例的数据处理设备1中的访问控制器11(参见图2)控制由CPU对周边资源(周边设备)的访问。因此,可以抑制CPU欺骗性地访问周边资源(周边设备)。注意,可以代替图23中所示的数据处理设备来使用第二至第四实施例中描述的数据处理设备2或3。

虽然已经根据几个实施例描述了本发明,但是本领域技术人员将认识到,本发明可以在所附权利要求的精神和范围内以各种修改来实施,并且本发明不限于上述示例。

另外,权利要求的范围不受以上描述的实施例的限制。

此外,注意,申请人的意图在于涵盖所有权利要求要素的等同内容,即使稍后在审查期间修改。

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