信息处理设备的制作方法

文档序号:6515695阅读:215来源:国知局
信息处理设备的制作方法
【专利摘要】本发明公开了一种信息处理设备。根据实施例,信息处理设备包括:多个核;共享资源,该共享资源能够被多个核共享;以及本地寄存器,该本地寄存器存储多个核特有的配置信息。独立于多个核来设置共享资源。本地寄存器被提供给相应的核。这使其能够提供信息处理设备,即使当组成多核系统的核的数目增加时该信息处理设备也能够抑制硬件资源的增加。
【专利说明】信息处理设备
【技术领域】
[0001]本发明涉及一种信息处理设备,并且例如,涉及一种包括多个核的信息处理设备。【背景技术】
[0002]已知多核系统,其在单个信息处理设备中包括多个核以提高整个信息处理设备的处理性能。例如,在多核系统中,一个程序被划分为多个线程,并且多个核分别执行多个线程从而提高程序的处理速度。
[0003]日本未经审查的专利申请公布N0.2009-251967公开一种用于在保持高安全性的同时允许动态改变核对存储器保护区域的的访问权限的技术。

【发明内容】

[0004]在具有被设置在单个信息处理设备内部的多个核的多核系统中,有必要在各个核中提供用于机器配置和虚拟化配置的硬件资源,诸如寄存器和存储器保护单元(MPU)。为此,本发明已经发现下述问题,即,组成多核系统的核的数目越多,多核系统内部的硬件资源越多,从而增加芯片面积和成本。
[0005]从本发明的描述和附图中,其它的问题和新的特征将会显然。
[0006]本发明的一个方面是一种信息处理设备,包括:多个核;共享资源,该共享资源能够被多个核共享;以及本地寄存器,该本地寄存器存储多个核中的每一个特有的配置信息。独立于多个核来设置共享资源,并且本地寄存器被提供给多个核中的每一个。
[0007]根据上面的方面,能够提供一种信息处理设备,即使当包含多核系统的核的数目增加时该信息处理设备也能够抑制硬件资源的增加。
【专利附图】

【附图说明】
[0008]结合附图,根据特定实施例的下面的描述,以上和其它的方面、优点以及特征将会更加明显,其中:
[0009]图1是示出根据第一实施例的信息处理设备的框图;
[0010]图2是示出根据第一实施例的被包括在信息处理设备中的共享寄存器控制单元#1和#2与共享寄存器#0的框图;
[0011]图3是根据第二实施例的被包括在信息处理设备中的MPU控制单元#1和#2与存储器保护单元MPU#0的框图;
[0012]图4是示出被包括在存储器保护单元MPU#0中的保护区域配置寄存器的示例的图;
[0013]图5是用于解释根据第二实施例的信息处理设备的操作的流程图;
[0014]图6是用于解释根据第二实施例的信息处理设备的操作的流程图;
[0015]图7是示出根据第三实施例的被包括在信息处理设备中的MPU控制单元#1和#2与存储器保护单元MPU#0的框图;[0016]图8是用于解释根据第三实施例的信息处理设备的操作的流程图;
[0017]图9是用于解释根据第三实施例的信息处理设备的操作的流程图;
[0018]图10是示出根据第四实施例的被包括在信息处理设备中的MPU控制单元#1和#2与存储器保护单元MPU#0的框图;
[0019]图11是用于解释根据第四实施例的信息处理设备的操作的流程图;以及
[0020]图12是用于解释根据第四实施例的信息处理设备的操作的流程图。
【具体实施方式】
[0021]第一实施例
[0022]图1是示出根据第一实施例的信息处理设备的框图。在图1中示出的信息处理设备I包括核#1 (10)、核#2 (20)、共享资源#0 (30)、共享存储器32、排他控制单元34、以及外围模块35。
[0023]核#1 (10)包括处理单元#1 (11),该处理单元#1 (11)在核#1 (10)中执行计算处理。处理单元#1 (11)包括CPU (中央处理单元)#1、共享寄存器控制单元#1 (12)、MPU控制单元#1 (13)、以及寄存器#1 (本地寄存器)14。内部总线么_#1被设置在处理单元#1中。CPU#1、共享寄存器控制单元#1 (12)、MPU控制单元#1 (13)、以及寄存器#1 (14)经由内部总线A_#l被相互连接。
[0024]注意,核#2 (20)的配置基本上与核#1 (10)相同,因此在此将不会提供重复解释。例如,核#1 (10)的处理单元#1 (11)中的CPU#1、共享寄存器控制单元#1 (12)、MPU控制单元#1 (13)以及寄存器#1 (14)分别对应于核#2 (20)的处理单元#2 (21)中的CPU#2、处理单元#2 (21)、共享寄存器控制单元#2 (22)、MPU控制单元#2 (23)、以及寄存器#2 (本地寄存器)24。
[0025]CPU#1是用于执行预定的程序的电路并且是作为处理单元#1 (11)中的主要处理器操作的计算电路。
[0026]CPU#1被连接到中断控制器INTC#1。中断控制器INTC#1经由中断接口(IF)#1从被设置在信息处理设备I的外面的外围电路接收中断请求,并且将中断信号输出到CPU#1。
[0027]CPU#I也被连接到缓冲存储器#1。由CPU#1高频使用的数据被积累在缓冲存储器#1中。当CPU#1 (10)访问缓冲存储器#1并且读取数据时能够加速核#1 (10)的操作。
[0028]此外,处理单元#1 (11)的内部总线A_#I经由总线B_#I被连接到系统总线接口(IF) #1。系统总线IF#1被连接到被设置在核#1 (10)外面的系统总线31。类似地,在核#2 (20)中,处理单元#2 (21)的内部总线A_#2经由总线B_#2被连接到系统总线接口(IF)#2。系统总线IF#2被连接到被设置在核#2 (20)外面的系统总线31。例如,共享存储器32被连接到系统总线31。核#1 (10)和核#2 (20)共享共享存储器32。
[0029]CPU#I能够经由内部总线A_#l、总线B_#l、系统总线IF#1、以及系统总线31从共享存储器32读取数据并且将数据写入到共享存储器32。类似地,CPU#2能够经由内部总线A_#2、总线B_#2、系统总线IF#2、以及系统总线31从共享存储器32读取数据并且将数据写入到共享存储器32。
[0030]处理单元#1 (11)的内部总线A_#l也经由总线B_#l被连接到外围接口(IF)#1。外围IF#1被连接到被设置在核#1 (10)外面的外围总线33。类似地,在核#2 (20)中,处理单元#2 (21)的内部总线A_#2也经由总线B_#2被连接到外围接口 IF#2。外围IF#2被连接到被设置在核#2 (20)外面的外围总线33。例如,排他控制单元34和外围模块35被连接到外围总线33。
[0031]在此,排他控制单元34是电路,当核#1 (10)和核#2 (20)中的一个正在访问共享资源#0或者共享存储器32时,该电路用于限制另一个核访问共享资源#0或者共享存储器32。例如,当核#1 (10)正在访问共享资源#0时,排他控制单元34禁止核#2 (20)访问
共享资源#0。
[0032]共享资源#0 (30)是能够由核#1 (10)和核#2 (20)共享的资源,并且包括,例如,共享寄存器#0 (50)和存储器保护单元MPU#0 (60)。在此,共享资源#0 (30)被设置为独立于核#1 (10)和核#2 (20)。
[0033]共享寄存器#0 (50)是用于存储能够由核#1 (10)和核#2 (20)共享的配置信息的寄存器,并且包括,例如如在图2中所示,机器配置寄存器#0 (51)和虚拟配置寄存器#0(52)。机器配置寄存器#0 (51)存储由包括核#1 (10)和核#2 (20)的整个机器遵循的构架信息。构架信息是与机器ID、兼容性模式设定、例外出现设定等等有关的信息。虚拟配置寄存器#0 (52)存储在使用包括核#1 (10)和核#2 (20)的机器作为虚拟机的情况下的配置信息。在此,在使用包括核#1 (10)和核#2 (20)的机器作为虚拟机的情况下的配置信息是与管理程序特权有关的配置信息,诸如管理程序调用分支目标地址和管理程序调用表大小。
[0034]共享寄存器控制单元#1 (12)被设置在核#1 (10)的处理单元#1 (11)中,该共享寄存器控制单元#1 (12)控制通过核#1 (10)进行的到共享寄存器#0 (50)的写入和从共享寄存器#0 (50)的读取。类似地,共享寄存器控制单元#2 (22)被设置在核#2 (20)的处理单元#2 (21)中,该共享寄存器控制单元#2 (22)控制通过核#2 (20)进行的到共享寄存器#0 (50)的写入和从共享寄存器#0 (50)的读取。
[0035]如在图2中所示,例如当核#1 (10)的CPU#1将设定值写入到共享寄存器#0 (50)时,CPU#1经由中间总线A_#l将写入命令输出到共享寄存器控制单元#1 (12)。响应于写入命令,共享寄存器控制单元#1 (12)将写入控制信号和写入值(设定值)输出到共享寄存器#0 (50)。当写入控制信号被供应时,共享寄存器#0 (50)将写入值(设定值)存储到预定的寄存器。
[0036]此外,例如,当核#1 (10)的CPU#1从共享寄存器#0 (50)读取设定值时,CPU#1经由内部总线A_#l将读取命令输出到共享寄存器控制单元#1 (12)。响应于读取命令,共享寄存器控制单元#1 (12)将读取控制信号输出到共享寄存器#0 (50)。当读取控制信号被供应时,共享寄存器#0 (50)从预定的寄存器读取被读取的值(设定值)并且将读取的值(设定值)输出到共享寄存器控制单元#1 (12)。然后,共享寄存器控制单元#1 (12)经由内部总线A_#l将读取的值(设定值)输出到CPU#I。
[0037]注意,当CPU#2将设定值写入到共享寄存器#0 (50)或者从共享寄存器#0 (50)读取设定值时,在核#2 (20)中执行上述处理。此外,可以采用一种配置,其中,例如,仅通过具有主机权限的核(例如,核#1 (10))写入被存储到共享寄存器#0 (50)的重要信息。
[0038]在图1中示出的存储器保护单元MPU#0 (60)是用于保护共享存储器32不被核#1
(10)和核#2 (20)无效访问的电路。例如,当CPU#1访问共享存储器32时,存储器保护单元MPU#0 (60)基于从CPU#1输出的包括存储器地址的存储器访问信息,来评估是否允许CPU#I访问共享存储器32。当存储器保护单元MPU#0 (60)评估允许访问时,CPU#1访问共享存储器32。
[0039]在此,当核#1 (10)和核#2 (20)访问除了共享存储器32之外的任何其它的共享电路时,例如当核#1 (10)和核#2 (20)访问外围模块35时,能够使用存储器保护单元MPU#0 (60)。在下面解释当存储器保护单元MPU#0 (60)保护共享存储器32时的示例。
[0040]图1示出其中共享存储器32被连接到系统总线31的示例。然而,例如,被连接到CPU#I的存储器(例如,SRAM和闪存)或者被连接到CPU#2的存储器(例如,SRAM和闪存)可以被用作共享存储器。
[0041]控制由核#1 (10)到存储器保护单元MPU#0 (60)的访问的MPU控制单元#1 (13),被设置在核#1 (10)的处理单元#1中。类似地,控制由核#2 (20)到存储器保护单元MPU#0(60)的访问的MPU控制单元#2 (23),被设置在核#2 (20)的处理单元#2中。注意,在第二实施例中解释MPU控制单元#1 (13)、MPU控制单元#2 (23)、以及存储器保护单元MPU#0(60)。
[0042]存储核#1 (10)特有的配置信息的寄存器#1 (14)被设置在核#1 (10)的处理单元#1 (11)中。核#1 (10)特有的配置信息例如是CPU#1的ID信息和缓冲存储器#1的配置信息。类似地,存储核#2 (20)特有的配置信息的寄存器#2 (24)被设置在核#2 (20)的操作单元#2 (21)中。
[0043]在现有技术中,在单一信息处理设备内部包括多个核的多核系统中,已经有必要在各个核中提供用于机器配置和虚拟化配置的硬件资源,诸如寄存器和存储器保护单元。因此,已经存在问题,其中组成多核系统的核的数目越多,被设置在多核系统内部的硬件资源越多,从而增加芯片面积和成本。
[0044]为此,在根据本实施例的信息处理设备I中,独立于核#1 (10)和核#2 (20)来设置能够由组成多核系统的核#1 (10)和核#2 (20)共享的共享资源#0 (30)。此外,在核#1 (10)中提供存储核#1 (10)特有的配置信息的寄存器#1 (14),并且在核#2 (20)中提供存储核#2 (20)特有的配置信息的寄存器#2 (24)。
[0045]如上所述,在根据本实施例的信息处理设备I中,存储相应的核特有的配置信息的寄存器保留在相应的核的内部,并且能够被两个核共享的共享资源被提供在核的外部以允许共享。利用这样的配置,即使当组成多核系统的核的数目增加时,也能够简化核的电路配置并且抑制在硬件资源上的增长。因此这抑制在信息处理设备的芯片面积上的增加和在成本上的增加。
[0046]第二实施例
[0047]接下来,解释第二实施例。在本实施例中,对在第一实施中解释了的被包括在信息处理设备中的MPU控制单元#I (13)、MPU控制单元#2 (23)、以及存储器保护单元MPU#0(60)给出详细解释。注意,其它的配置与在第一实施例中解释的信息处理设备相同,因此相同元件由相同的附图标记表示,并且在此将不提供重复解释。
[0048]图3是根据本实施例的被包括在信息处理设备中的MPU控制单元#1 (13),MPU控制单元#2 (23)、以及存储器保护单元MPU#0 (60)的框图。存储器保护单元MPU#0 (60)包括仲裁器61,以及保护区域配置寄存器#1至#m (第一保护区域配置寄存器)、访问评估电路#1至#?!(第一访问评估电路)、和评估信号生成电路#0。在此,m是2或者更大的整数。
[0049]被包括在核#1 (10)中的MPU控制单元#1 (13)将,例如,当CPU#1访问共享存储器32时从CPU#1输出的存储器访问信息ACC_M_1,输出到存储器保护单元MPU#0 (60)的仲裁器61。MPU控制单元#1 (13)也将通知信号ACK_1输出到CPU#1。
[0050]类似地,被包括在核#2 (20)中的MPU控制单元#2 (23)将,例如,当CPU#2访问共享存储器32时从CPU#2输出的存储器访问信息ACC_M_2,输出到存储器保护单元MPU#0(60)的仲裁器61。MPU控制单元#2 (23)也将通知信号ACK_2输出到CPU#2。
[0051]被包括在存储器保护单元MPU#0 (60)中的仲裁器61仲裁核#1 (10)是否被允许访问共享存储器32的评估和核#2 (20)是否被允许访问共享存储器32的评估。即,当在来自于MPU控制单元#1 (13)的评估请求和来自MPU控制单元#2 (23)的评估请求之间存在冲突时,仲裁器61仲裁那些评估请求。
[0052]具体地,当在从MPU控制单元#1 (13)输出的存储器访问信息ACC_M_1和从MPU控制单元#2 (23)输出的存储器访问信息ACC_M_2之间存在冲突时,仲裁器61仲裁存储器访问信息ACC_M_1和ACC_M_2,并且将存储器访问信息ACC_M_n (n=l或者2)中的一个输出到访问评估电路#1至#m。此外,仲裁器61将评估信号0UT_n输出到与所选择的存储器访问信息ACC_M_n相对应的MPUC控制单元13和23中的一个。即,当仲裁器61选择存储器访问信息ACC_M_1时,仲裁器61将从评估信号生成电路#0输出的评估信号0UT_1输出到MPU控制单元#1(13)。另一方面,当仲裁器61选择存储器访问信息ACC_M_2时,仲裁器61将从评估信号生成电路#0输出的评估信号0UT_2输出到MPU控制单元#2 (23)。
[0053]在此,存储器访问信息ACC_M_n例如包括存储器地址、与访问共享存储器32的类型(写入访问或者读取访问)有关的信息、以及与访问宽度(字节/半字/全字)有关的信息。
[0054]保护区域配置寄存器#1至#m`存储与共享存储器32的保护区域有关的保护区域信息。即,保护区域配置寄存器#1至#m存储与共享存储器32的存储器区域相对应的地址信息和与各个核访问共享存储器32的存储器区域的权限有关的权限信息(属性信息)。
[0055]图4是示出被包括在存储器保护单元MPU#0 (60)中的保护区域配置寄存器#1至#m的示例的图。如在图4中所示,保护区域配置寄存器#1至#m分别包括上限地址寄存器(MPUAI至MPUAm)、下限地址寄存器(MPLA1至MPLAm)、以及属性寄存器(MPAT1至MPATm)。
[0056]上限地址寄存器(MPUA1至MPUAm)是存储相应的存储器区域#1至#m的上限地址的寄存器。下限地址寄存器(MPLA1至MPLAm)是存储相应的存储器区域#1至#m的下限地址的寄存器。存储器区域#1至#m中的每一个对应于条目#1至#m的存储器区域。例如,当存储器区域#1被设置为条目#1的存储器区域时,存储器区域#1的上限地址被存储到保护区域配置寄存器#1的上限地址寄存器MPUA1,并且存储器区域#1的下限地址被存储到下限地址寄存器MPLAl。这时,共享存储器32的存储器区域#1至#m,即,条目#1至#m的存储器区域,可以被配置成没有相互重叠或者可以被配置成相互重叠。
[0057]注意,可以使用下限地址和存储器区域的大小,而不是使用如上的上限地址和下限地址,来指定存储器区域#1至#m。在这样的情况下,例如,提供下限地址寄存器和区域大小寄存器。
[0058]属性寄存器(MPAT1至MPATm)是存储存储器区域#1至#m (条目#1至#m)的属性(例如,允许/禁止写入、允许/禁止读取、以及允许/禁止执行)的寄存器。属性寄存器(MPATI至MPATm)也可以存储ID信息。例如,ID信息是与各个核相对应的核ID信息和与组成多个核的组ID信息。例如,当核ID信息被存储到属性寄存器时,能够在各个核上执行到共享存储器32的访问的评估。
[0059]如在图3中所示,提供访问评估电路#1至#m以分别对应于保护区域配置寄存器#1至#m。换言之,提供保护区域配置寄存器#1至#m和访问评估电路#1至#m以分别对应于条目#1至#m。基于从核#1 (10)和核#2 (20)输出的存储器访问信息ACC_M_n和被存储到保护区域配置寄存器#1至#m的保护区域信息,访问评估电路#1至#m评估是否允许核#1 (10)和核#2 (20)访问共享存期32。
[0060]即,当被包括在存储器访问信息ACC_M_n中的存储器地址被包括在被存储到保护区域配置寄存器#1至#m的存储器区域中时,并且进一步,当核#1 (10)和核#2 (20)具有对存储器区域32的访问权限时,访问评估电路#1至#m评估允许核#1 (10)和核#2 (20)访问共享存储器32。
[0061]例如,当被包括在从核#1 (10)输出的存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1的存储器区域#1中时,存取评估电路#1评估存储器地址ADD_M_1被包括在条目#1中。即,当存储器地址ADD_M_1在上限地址寄存器(MPUAl)和下限地址寄存器(MPLAl)之间的范围内时,区域评估电路#1评估存储器地址ADD_M_1被包括在条目#1中。
[0062]此外,当允许由核#1 (10)对共享存储器32的访问的类型(即,写入、读取、执行等等)时,访问评估电路#1允许核#1 (10)访问共享存储器32。在此,允许访问的类型的情况是在属性寄存器(MPATl)中允许由核#1 (10)到共享存储器32的访问的类型的情况。
[0063]评估信号生成电路#0基于从访问评估电路#1至#m输出的评估结果生成评估信号0UT_n,并且将生成的评估信号0UT_n输出到仲裁器61。即,当访问评估电路#1至#m的任何一个评估允许到共享存储器32的访问时,评估信号生成电路#0输出指示允许访问共享存储器32的评估信号0UT_n。另一方面,当所有的访问评估电路#1至#m评估禁止访问共享存储器32时,评估信号生成电路#0输出指示禁止访问共享存储器32的评估信号0UT_η。注意,条目#1至#m的存储器区域被配置成相互重叠,多个访问评估电路#1至#m可以评估允许访问。
[0064]当从仲裁器61输出的评估信号0UT_1指示允许访问时,MPU控制单元#1 (13)将允许访问通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32。同时,当评估信号0UT_1指示禁止访问时,MPU控制单元#1 (13)将例外通知信号作为通知信号ACK_1输出到CPU#1。在这样的情况下,禁止通过CPU#1对共享存储器32的访问。注意,MPU控制单元#2 (23)以如上类似的方式操作。
[0065]接下来,使用在图5和图6中示出的流程图解释根据本实施例的信息处理设备的操作。在下面解释被包括在核#1 (10)中的CPU#1访问共享存储器32的情况作为示例。
[0066]当CPU#I访问共享存储器32时,CPU#I将存储器访问信息ACC_M_1输出到MPU控制单元#1 (13)(步骤SI)。然后,MPU控制单元#1 (13)将存储器访问信息ACC_M_1输出到仲裁器61 (步骤S2)。当在是否允许核#1 (10)访问共享存储器32的评估和是否允许核#2 (20)访问共享存储器32的评估之间存在冲突时,仲裁器61仲裁这些评估请求。在通过仲裁器61仲裁之后,仲裁器61将存储器访问信息ACC_M_1输出到访问评估电路#1至#m (步骤S3)。然后,访问评估电路#1至#m均执行访问评估,并且将评估结果输出到评估信号生成电路#0 (步骤S4)。
[0067]使用在图6中示出的流程图详细地解释访问评估。在访问评估中,访问评估电路#1至#m基于保护区域配置寄存器#1至#m和存储器访问信息ACC_M_1执行访问评估(步骤SlD0即,访问评估电路#1至#m评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1是否被包括在相应的条目#1至#m中(S卩,被存储到保护区域配置寄存器#1至#m的存储器区域#1至#m)。然后,当存储器地址ADD_M_1没有被包括在条目#1至#m中(步骤S12:否)时,访问评估电路#1至#m将指示禁止访问的评估结果输出到评估信号生成电路#0 (步骤S15)。
[0068]同时,当存储器地址ADD_M_1被包括在条目#1至#m中时(步骤S12:是),并且进一步,允许通过CPU#1到共享存储器32的访问的类型(步骤S13:是)时,访问评估电路#1至#m将指示允许访问的评估结果输出到评估信号生成电路#0 (步骤S14)。在此,例如,允许通过CPU#1到共享存储器32的访问的类型的情况是在保护区域配置寄存器#1至#m的属性寄存器中允许通过CPU#1到共享存储器32的访问的类型的情况。
[0069]此外,当存储器地址ADD_M_1被包括在条目#1至#m (步骤S12:是),并且进一步,当不允许通过CPU#1到共享存储器32的访问的类型(步骤S13:否)时,访问评估电路#1至#m将指示禁止访问的评估结果输出到评估信号生成电路#0 (步骤S15)。
[0070]访问评估电路#1至#m中的每一个以这样的方式执行访问评估。在访问评估之后,评估信号生成电路#0将评估信号0UT_1输出到仲裁器61 (步骤S5)。仲裁器61将评估信号0UT_1输出到MPU控制单元#1 (13)(步骤S6)。当评估信号0UT_1指示允许访问(步骤S7:是)时,MPU控制单元#1 (13)将允许访问的通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32 (步骤S8)。另一方面,当评估信号0UT_1指示禁止访问(步骤S8:否)时,MPU控制单元#1 (13)将例外通知信号作为通知信号ACK_1输出到CPU#1 (步骤S9)。在这样的情况下,禁止通过CPU#1对共享存储器32的访问。
[0071]存储器保护单元是在各个核中的电路当中的具有大的电路面积的电路。特别当存在多个条目(例如,m=16)时,在各个核中占据的电路面积增加并且在访问评估期间的功率消耗也增加。换言之,因为必须为每次存储器访问执行存储器保护评估,所以条目的数目越多,功率消耗越大。为此,已经存在下述问题,即,当组成多核系统的核的数目增加时,电路面积和功率消耗也相应地增加。此问题在存储器保护单元中特别显著。
[0072]在根据本实施例的信息处理设备中,核#1 (10)和核#2 (20)共享存储器保护单元MPU#0(60)。利用这样的配置,即使当组成多核系统的核的数目增加时,也能够简化核的电路配置并且抑制硬件资源上的增加。
[0073]具体地,因为共享存储器保护单元,所以对于整个信息处理设备来说,能够使被包括在存储器保护单元中的条目的数目小,从而降低整个信息处理设备的功率消耗。例如,当存在组成多核系统的两个核并且存储器保护单元的条目m的数目是16时,如果存储器保护单元被提供给各个核,则用于整个信息处理设备的条目的数目将会是32 (=16+16)。然而,当核共享存储器保护单元时,用于整个信息处理设备的条目的数目将会是16,从而将共享消耗降低了近似一半。
[0074]作为信息处理设备,例如,存在被用于个人计算机等等的微处理器和在控制要被安装的电子装置方面具有专门化的功能的微控制器。微处理器处置大容量存储器。因此,微处理器经常被装备有存储器管理单元(MMU),其包括存储器保护功能和地址转换功能作为存储器保护机制。
[0075]同时,因为在控制要被安装的电子装置方面专门化微控制器的功能,多以没有必要安装大容纳存储器和用于将虚拟地址转换成物理地址的地址转换功能。此外,微控制器被要求降低功率消耗和其面积。为此,当存储器管理单元(MMU)被安装作为微控制器的存储器保护机制时,硬件资源的开销将会大。
[0076]另外,微控制器被用于电子装置的控制,从而实时性是重要的。然而,当存储器管理单元(MMU)被安装作为微控制器的存储器保护机构时,一旦TLB丢失则出现寻表行程,从而花费时间来处理并且失去实时性。
[0077]因此,优选的是,使用不包括地址转换功能的存储器保护单元(MPU)作为微控制器的存储器保护机构,而不是使用包括地址转换功能的MMU。因此,根据本实施例的信息处理设备特别适合于重视降低的功率、较小的面积、以及实时性的微控制器。
[0078]注意,例如,根据本实施例的信息处理设备没有阻碍对于包括装备有地址转换功能的存储器保护单元的信息处理设备的应用,并且能够被应用于装备有包括地址转换功能的存储器管理单元(MMU)的微处理器。例如,此外,根据本实施例的信息处理设备也能够被应用于不要求地址转换功能的微处理器。
[0079]第三实施例
[0080]接下来,解释第三实施例。图7是示出被包括在根据本实施例的信息处理设备中的MPU控制单元#1 (13’)、MPU控制单元#2 (23’)、以及存储器保护单元MPU#0 (60’)的框图。在本实施例中,如在图7中所示,与在第二实施例中解释的信息处理设备的不同是,MPU控制单元#1 (13’)和MPU控制单元#1 (23’)分别包括本地MPU#1 (71)和本地MPU#2`(72)。其它的配置与在第一和第二实施例中解释的信息处理设备相同。
[0081]如在图7中所示,MPU控制单元#1 (13’)包括本地MPU#1 (71)。本地MPU#1 (71)包括地址寄存器#1、保护区域配置寄存器#1-1至#l_p (第二保护区域配置寄存器)、访问评估电路#1_1至#1_P (第二访问配置寄存器)、评估信号生成电路#1、以及重写控制电路#1。在此,P是I≤p〈m的整数。地址寄存器#1是用于临时保存被供应到MPU控制单元#1(13’)的存储器访问信息ACC_M_1的寄存器。
[0082]保护区域配置寄存器#1_1至#l_p存储与共享存储器32的保护区域有关的保护区域信息。即,保护区域配置寄存器#1_1至#1_P存储与共享存储器32的存储器区域相对应的地址信息和与核#1(10)访问共享存储器32的存储器区域的权限有关的权限信息。注意,保护区域配置寄存器#1_1至#1_P具有与在第二实施例中解释的保护区域配置寄存器#1至#m (参见图4)相同的配置,从而在此将不会提供重复解释。
[0083]提供访问评估电路以分别对应于保护区域配置寄存器#1_1至#l_p。换言之,提供保护区域配置寄存器#1_1至#1_P和访问评估电路#1_1至#1_P以分别对应于条目#1_1至#l_p。访问评估电路#1_1至#l_p基于从地址寄存器#1输出(B卩,从CPU#1输出)的存储器访问信息ACC_M_1,和被存储到保护区域配置寄存器#1_1至#l_p的保护区域信息,来评估是否允许核#1 (10)访问共享存储器32。
[0084]即,当被包括在存储器访问信息ACC_M_1中的存储器地址被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器区域时,并且进一步,当核#1 (10)具有对存储器区域32的访问权限时,访问评估电路#1_1至#l_p评估允许核#1 (10)访问共享存储器32。
[0085]评估信号生成电路#1将评估信号0UT_M_1输出到MPU控制单元#1 (13’)或者将存储器地址ADD_M_1输出到仲裁器61’。
[0086]即,当存储器地址ADD_M_1导致命中,并且进一步评估核#1 (10)具有对存储器区域32的访问权限时,评估信号生成电路#1生成指示允许访问的评估信号0UT_M_1,并且将生成的评估信号0UT_M_1输出到MPU控制单元#1( 13’)。存储器地址ADD_M_1导致命中的情况是访问评估电路#1_1至#1_P的任何一个评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1_1至#l_p的存储器区域中的情况。
[0087]同时,当存储器地址ADD_M_1导致命中,并且进一步评估核#1 (10)不具有对存储器区域32的访问权限时,评估信号生成电路#1生成指示禁止访问的评估信号0UT_M_1并且将生成的评估信号0UT_M_1输出到MPU控制单元#1 (13’)。注意,当对于条目#1_1至#1_口来说允许存储器区域的重叠时,有必要对存储器保护单元MPU#0 (60’ )的其它条目执行访问评估。因此,评估信号生成电路#1将不会将评估信号0UT_M_1输出到MPU控制单元#1 (13’ )并且将存储器地址ADD_M_1输出到仲裁器61’。
[0088]另一方面,当存储器地址ADD_M_1没有导致命中时,评估信号生成电路#1将存储器地址ADD_M_1输出到仲裁器61’。存储器地址ADD_M_1没有导致命中的情况是所有的访问评估电路#1_1至#1_P评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1没有被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器区域中的情况。
[0089]重写控制电路#1基于从访问评估电路#1_1至#1_?输出的评估结果,来计算各个访问评估电路#ι_ι至#i_p的地址命中率。在此,地址命中率是被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1_1至#l_p的存储器区域中的概率。使用从仲裁器61’供应的寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路#1_1至#1_P当中具有最低的地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#l_p的保护区域信息。
[0090]注意,被包括在MPU控制单元#2 (23’)中的本地MPU#2 (72)的配置与被包括在上述MPU控制单元#1 (13’)中的本地MPU#1 (71)的相同,从而在此将不会提供重复解释。另外,在图7中,被包括在本地MPU#1 (71)中的保护区域配置寄存器#1_1至#l_p和访问评估电路#1_1至#1_P的数目与被包括在本地MPU#2 (72)中的保护区域配置寄存器#2_1至#2_口和访问评估电路#2_1至#2_p的数目两者应是P。然而,在本实施例中,被包括在本地MPU#1 (71)中的保护区域配置寄存器#1_1至#l_p和访问评估电路#1_1至#l_p的数目可能不同于被包括在本地MPU#2 (72)中的保护区域配置寄存器#2_1至#2_?和访问评估电路#2_1至#2_p的数目。
[0091]当在本地MPU71和72中存储器地址ADD_M_n没有导致命中时,存储器保护单元MPU#0 (60’ )评估是否存储器地址ADD_M_n被包括在被存储到在存储器保护单元MPU#0(60’ )中包括的保护区域配置寄存器#1至#m的存储器区域。
[0092]当在从本地MPU#1 (71)的评估信号生成电路#1输出的存储器地址ADD_M_1与从本地MPU#2 (72)的评估信号生成电路#2输出的存储器地址ADD_M_2之间存在冲突时,被包括在存储器保护单元MPU#0 (60’)中的仲裁器61’仲裁存储器地址ADD_M_1和存储器地址ADD_M_2。S卩,仲裁器61’将存储器地址ADD_M_1或存储器地址ADD_M_2输出到区域评估电路#1至#m。
[0093]保护区域配置寄存器#1至#m存储与共享存储器32的保护区域有关的保护区域信息。即,保护区域配置寄存器#1至#m存储与共享存储器32的存储器区域相对应的地址信息和与各个核访问共享存储器32的存储器区域的权限有关的权限信息。注意,保护区域配置寄存器#1_1至#l_m具有与在第二实施例中解释的保护区域配置寄存器#1至#m (参见图4)相同的配置,从而在此将不会提供重复解释。
[0094]提供区域评估电路#1至#m以分别对应于保护区域配置寄存器#1至#m。换言之,提供保护区域配置寄存器#1至#m和区域评估电路#1至#m以分别对应于条目#1至#m。区域评估电路#1至#m基于存储器地址ADD_M_n和被存储到保护区域配置寄存器#1至#m的保护区域信息,来评估是否存储器地址ADD_M_n被包括在被存储到保护区域配置寄存器#1至#m的存储器区域。
[0095]例如,当存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1的存储器区域#1时,S卩,当存储器地址ADD_M_1在上限地址寄存器(MPUAl)和下限地址寄存器(MPLAI)之间的范围内时,区域评估电路#1评估存储器地址ADD_M_1被包括在条目#1的保护区域中。
[0096]评估信号生成电路#0基于从区域评估电路#1至#m输出的评估结果生成评估信号HIT_n,并且将生成的评估信号ΗΙΤ_η和寄存器重写信息SET_REG_n输出到仲裁器61’。具体地,当区域评估电路#1至#m的任何一个评估存储器地址ADD_M_n被包括在被存储到保护区域配置寄存器#1至#m的存储器区域中时,评估信号生成电路#0将指示存储器地址ADD_M_n的命中的评估信号HIT_n输出到仲裁器61’。这时,评估信号生成电路#0将与导致命中的存储器地址ADD_M_n相对应的保护区域信息(B卩,被存储到保护区域配置寄存器#1至#m的信息)作为寄存器重写信息SET_REG_n输出到仲裁器61’。
[0097]例如,当仲裁器61’选择存储器地址ADD_M_1时,仲裁器61’将评估信号HIT_1输出到本地MPU#1(71)。此外,仲裁器61’将寄存器重写信息SET_REG_1输出到重写控制电路#1。当供应寄存器重写信息SET_REG_1时,使用从仲裁器61’供应的寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路#1_1至#l_p当中具有最低地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#1_P的保护区域信息。
[0098]接下来,使用在图8和图9中示出的流程图解释根据本实施例的信息处理设备的操作。下面解释被包括在核#1 (10)中的CPU#1访问共享存储器32的情况作为示例。
[0099]当CPU#1访问共享存储器32时,CPU#I将存储器访问信息ACC_M_1输出到本地MPU#1 (71)(步骤S21)。即,从CPU#1输出的存储器访问信息ACC_M_1被临时保存到地址寄存器#1并且也被供应到本地MPU#1 (71)。本地MPU#1 (71)基于存储器访问信息ACC_M_1执行访问评估(步骤S22 )。
[0100]当访问评估电路#1—1至#l_p的任何一个评估被包括在存储器访问信息ACC_M_1中的存储器地址被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器地址时(即,当存储器地址ADD_M_1导致命中时),评估能够通过本地MPU#1 (71)执行访问评估(步骤S23:是)。当存储器地址ADD_M_1导致命中并且评估核#1 (10)具有对存储器区域32的访问权限(步骤S24:是)时,评估信号生成电路#1将指示允许访问的评估信号0UT_M_1输出到MPU控制单元#1 (13’)。在这样的情况下,MPU控制单元#1 (13’)将允许访问的通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32 (步骤S25)。
[0101]另一方面,当存储器地址ADD_M_1导致命中但是核#1 (10)不具有对存储器区域32的访问权限时,将访问评估为禁止(步骤S24:否)。当对于条目#1_1至#l_p中的每一个允许存储器区域的重叠(步骤S26:是)时,处理进行到图9的流程图。即,当对于条目#1_1至#1_P中的每一个允许存储器区域的重叠时,有必要对存储器保护单元MPU#0 (60’)的其它条目执行访问评估。同时,当对于条目#1_1至#1_口中的每一个不允许存储器区域的重叠(步骤S26:否)时,指示访问被禁止的评估信号0UT_M_1被输出到MPU控制单元#1 (13’)。然后,MPU控制单元#1 (13’)将例外通知信号作为通知信号ACK_1输出到CPU#1。在这样的情况下,禁止通过CPU#I对共享存储器32的访问(步骤S27)。
[0102]此外,当本地MPU#1 (71)不能够执行访问评估(步骤S23:否)时,即,当存储器地址ADD_M_1没有导致命中时,评估信号生成电路#1将存储器地址ADD_M_1输出到仲裁器61’(图9的步骤S31)。存储器地址ADD_M_1没有导致命中的情况是所有的访问评估电路#1_1至#l_p评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1没有被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器区域中的情况。
[0103]如在图9的流程图中所示,当评估信号生成电路#1将存储器地址ADD_M_1输出到仲裁器61’(步骤S31)时,在仲裁器61’仲裁存储器地址ADD_M_1和存储器地址ADD_M_2之后,仲裁器61’将存储器地址ADD_M_1输出到区域评估电路#1至#m。然后,区域评估电路#1至#m评估是否存储器地址ADD_M_1被包括在条目#1至#m中(步骤S33)。换言之,区域评估电路#1至#m评估存储器地址ADD_M_1是否被包括在被存储到保护区域配置寄存器#1至#m的存储器区域中(即,区域评估电路#1至#m评估是否存储器地址ADD_M_1导致命中)。
[0104]当所有的区域评估电路#1至#m评估存储器地址ADD_M_1没有被包括在条目#1至#π!中(步骤S34:否)时,评估信号生成电路#0经由仲裁器61’将通知未命中的评估信号ΗΙΤ_1输出到MPU控制单元#1 (13’)。当从仲裁器61’供应通知未命中的评估信号ΗΙΤ_1时,MPU控制单元#1 (13’)将例外通知信号作为通知信号ACK_1输出到CPU#1 (步骤S36)。在这样的情况下,禁止通过CPU#1对共享存储器32的访问。
[0105]同时,当区域评估电路#1至#m评估存储器地址ADD_M_1被包括在条目#1至#m中(步骤S34:是)时,评估信号生成电路#0经由仲裁器61’将指示存储器地址ADD_M_1的命中的评估信号HIT_1输出到本地MPU#1 (71)。这时,评估信号生成电路#0经由仲裁器61’将与导致命中的存储器地址ADD_M_1相对应的保护区域信息作为寄存器重写信息SET_REG_n输出到重写控制电路#1。使用寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路#1_1至#1_P当中具有最低地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#1_P的保护区域信息(步骤S35)。
[0106]在保护区域配置寄存器的重写之后,本地MPU#1 (71)基于存储器访问信息ACC_M_1再次执行访问评估(步骤S37)。这时,从地址寄存器#1供应存储器访问信息ACC_M_1。在访问评估之后,评估信号生成电路#I将评估信号0UT_M_1输出到MPU控制单元#I (13’)。当评估信号0UT_M_1指示允许访问(步骤S38:是)时,MPU控制单元#1 (13’)将允许访问的通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32 (步骤S39)。另一方面,当评估信号0UT_M_1指示访问被禁止(步骤S38:否)时,MPU控制单元#1 (13’ )将例外通知信号作为通知信号ACK_1输出到CPU#1 (步骤S40)。在这样的情况下,禁止通过CPU#I对共享存储器32的访问。
[0107]如上所解释的,在根据本实施例的信息处理设备中,本地MPU#1 (71)被设置在核#1 (10)中,并且本地MPU#2 (72)被设置在核#2 (20)中。此外,在通过共享存储器保护单元MPWO (60’)评估之前,本地MPU71和72均评估是否允许相应的核10和20访问共享存储器32。这时,本地MPU71和72优选地存储与具有高地址命中率的条目相对应的保护区域信息(与共享存储器32的保护区域有关的信息)。
[0108]因此,在通过共享存储器保护单元MPU#0 (60’)评估之前,具有高地址命中率的本地MPU71和72能够关于核10和20对共享存储器32执行访问评估,从而增加信息处理设备的处理速度。
[0109]这时,被存储到本地MPU#1 (71)中的保护区域配置寄存器#1_1至#l_p和本地MPU#2 (72)中的保护区域配置寄存器#2_1至#2_p的存储器区域的数目小于被存储到存储器保护单元MPU#0 (60’)中的保护区域配置寄存器#1至#m的存储器区域的数目。换言之,存储器保护单元MPU#0 (60’ )的条目m的数目小于本地MPU71和72的条目p的数目(p〈m)。
[0110]S卩,通过核10和20对共享存储器32的访问趋向于变成时序关键路径,从而本地MPU71和72的条目的数目能够小于存储器保护单元MPU#0 (60’)的条目的数目。因此,通过由本地MPU71和72以高地址命中率事先执行访问评估,能够增加处理速度同时降低信息处理设备的功率消耗。
[0111]例如,为了防止由于意外的程序行为导致资源被毁坏并且为了防止用户程序进行未经授权的执行和数据操作,提供存储器保护单元。具有较少数目的条目的存储器保护单元能够被用于通常被访问的存储器区域,从而,尽管执行正常的程序,在通过本地MPU71和72的访问评估中将会有小量的错误。
[0112]同时,在可能引起违反存储器保护的访问中,在通过本地MPU71和72的访问评估中可能存在错误。在这样的情况下,虽然要求通过共享存储器保护单元MPU#0 (60’)的评估,但是通过存储器保护单元MPU#0 (60’)的评估仅花费短的时间,例如,一到两个时钟,从而影响几乎可以忽略。
[0113]注意,在正常的访问中,当本地MPU71和72的地址命中率是99.9%并且在本地MPU71和72中存在错误的情况下的开销是一个时钟时,由本地MPU71和72产生的时钟数目的开销是(0.999X1+0.001X2) =1.001,导致性能降低0.1%。
[0114]第四实施例
[0115]接下来,解释第四实施例。图10是示出被包括在根据本实施例的信息处理设备中的MPU控制单元#1 (13’’)、MPU控制单元#2 (23’’)、以及存储器保护单元MPU#0 (60’’)的框图。本实施例与在第三实施例中解释的信息处理设备的不同之处在于,当在本地MPU81和82中存储器地址没有导致命中时,存储器保护单元MPU#0 (60’’)执行访问评估。其它的配置与在第三实施例中解释的信息处理设备的相同。
[0116]如在图10中所示,MPU控制单元#1 (13’’)包括本地MPU#1 (81)。本地MPU#1(81)包括保护区域配置寄存器#1_1至#l_p,以及访问评估电路#1_1至#l_p、评估信号生成电路#1、和重与控制电路#1。在此,P是I < p〈m整数。
[0117]保护区域配置寄存器#1—1至#l_p存储与共享存储器32的保护区域有关的保护区域信息。即,保护区域配置寄存器#1至#m存储与共享存储器32的存储器区域相对应的地址信息和与核#1 (10)访问共享存储器32的存储器区域的权限有关的权限信息。注意,保护区域配置寄存器#1_1至#1_P具有与在第二实施例中解释的保护区域配置寄存器#1至#m (参见图4)相同的配置,从而在此将不会提供重复解释。
[0118]提供访问评估电路#1_1至#l_p以分别对应于保护区域配置寄存器#1_1至#l_p。换言之,提供保护区域配置寄存器#1_1至#1_P和访问评估电路#1_1至#1_P以分别对应于条目#1_1至#ι_ρ。访问评估电路#1_1至#1_口基于从核#1 (10)输出的存储器访问信息ACC_M_1和被存储到保护区域配置寄存器#1_1至#l_p的保护区域信息,来评估是否允许核#1 (10)访问共享存储器32。
[0119]g卩,当被包括在存储器访问信息ACC_M_1中的存储器地址被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器区域时,并且进一步,当核#1 (10)具有对存储器区域32的访问权限时,访问评估电路#1_1至#l_p评估允许核#1 (10)访问共享存储器32。
[0120]评估信号生成电路#1将评估信号0UT_M_1输出到MPU控制单元#1 (13")或者将存储器地址ADD_M_1输出到仲裁器61’ ’。
[0121]S卩,当存储器地址ADD_M_1导致命中,并且进一步评估核#1 (10)具有对存储器区域32的访问权限时,评估信号生成电路#1生成指示允许访问的评估信号0UT_M_1,并且将生成的评估信号0UT_M_1输出到MPU控制单元#1 (13’ ’)。存储器地址ADD_M_1导致命中的情况是访问评估电路#1_1至#1_P的任何一个评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1_1至#l_p的存储器区域中的情况。
[0122]同时,当存储器地址ADD_M_1导致命中,并且进一步评估核#1 (10)不具有对存储器区域32的访问权限时,评估信号生成电路#1生成指示禁止访问的评估信号0UT_M_1并且将生成的评估信号0UT_M_1输出到MPU控制单元#1 (13’ ’)。注意,当对于条目#1_1至#1_P来说允许存储器区域的重叠时,有必要对存储器保护单元MPU#0 (60’ ’)的其它条目执行访问评估。因此,评估信号生成电路#1将不会将评估信号0UT_M_1输出到MPU控制单元#1 (13")并且将存储器访问信息ACC_M_1输出到仲裁器61’ ’。
[0123]另一方面,当存储器地址ADD_M_1没有导致命中时,评估信号生成电路#1将存储器访问信息ACC_M_1输出到仲裁器61’ ’。存储器地址ADD_M_1没有导致命中的情况是所有的访问评估电路#1_1至#1_P评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1没有被包括在被存储到保护区域配置寄存器#1_1至#l_p的存储器区域中的情况。
[0124]重写控制电路#1基于从访问评估电路#1_1至#l_p输出的评估结果计算各个访问评估电路# 1_1至#l_p的地址命中率。在此,地址命中率是被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在被存储到保护区域配置寄存器#1_1至#l_p的存储器区域中的概率。使用从仲裁器61’’供应的寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路# 1_1至#l_p当中具有最低的地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#1_P的保护区域信息。[0125]注意,被包括在MPU控制单元#2 (23’’)中的本地MPU#2 (82)的配置与被包括在上述MPU控制单元#1 (13’’)中的本地MPU#1 (81)的相同,从而在此将不会提供重复解释。
[0126]当在本地MPU81和82中存储器地址ADD_M_n没有导致命中时,存储器保护单元MPU#0 (60")基于存储器访问信息ACC_M_n执行访问评估。
[0127]当在从本地MPU#1 (81)的评估信号生成电路#1输出的存储器访问信息ACC_M_1与从本地MPU#2 (82)的评估信号生成电路#2输出的存储器访问信息ACC_M_2之间存在冲突时,被包括在存储器保护单元MPU#0 (60’’)中的仲裁器61’’仲裁存储器访问信息ACC_M_1和存储器访问信息ACC_M_2。即,仲裁器61’ ’将存储器访问信息ACC_M_1或者存储器访问信息ACC_M_2输出到访问评估电路#1至#m。
[0128]保护区域配置寄存器#1至#m存储与共享存储器32的保护区域有关的保护区域信息。即,保护区域配置寄存器#1至#m存储与共享存储器32的存储器区域相对应的地址信息和与各个核访问共享存储器32的存储器区域的权限有关的权限信息。注意,保护区域配置寄存器#1_1至#l_m具有与在第二实施例中解释的保护区域配置寄存器#1至#m (参见图4)相同的配置,从而在此将不会提供重复解释。
[0129]提供区域评估电路#1至#m以分别对应于保护区域配置寄存器#1至#m。换言之,提供保护区域配置寄存器#1至#m和区域评估电路#1至#m以分别对应于条目#1至#m。访问评估电路#1至#m基于存储器访问信息ACC_M_n和被存储到保护区域配置寄存器#1至#m的保护区域信息,来评估是否允许核#1 (10)和核#2 (20)访问共享存储器32。
[0130]即,当被包括在存储器访问信息ACC_M_n中的存储器地址被包括在被存储到保护区域配置寄存器#1至#m的存储器区域中时,并且进一步,当核#1 (10)和核#2 (20)具有对存储器区域32的访问权限时,访问评估电路#1至#m评估允许核#1 (10)和核#2 (20)访问共享存储器32。
[0131 ] 例如,当被包括在存储器访问信息ACC_M_1的存储器地址被包括在被存储到保护区域配置寄存器#1的存储器区域#1时,即,当存储器地址在上限地址寄存器(MPUAl)和下限地址寄存器(MPLA1)之间的范围内时,区域评估电路#1评估存储器地址ADD_M_1被包括在条目#1中。此外,当允许通过核#1(10)对共享存储器32的访问的类型(即,写入、读取、执行等等)时,访问评估电路#1允许核#1 (10)访问共孚存储器32。在此,允许访问的类型的情况是在属性寄存器(MPATl)中允许通过核#1 (10)对共享存储器32的访问的类型的情况。
[0132]评估信号生成电路#0基于从访问评估电路#1至#m输出的评估结果生成评估信号0UT_n,并将生成的评估信号0UT_n输出到仲裁器61’ ’。即,当访问评估电路#1至#m的任何一个评估允许对共享存储器32的访问时,评估信号生成电路#0生成指示允许访问共享存储器32的评估信号0UT_n,并且将生成的评估信号0UT_n输出到仲裁器61’ ’。另一方面,当所有的访问评估电路#1至#m评估禁止对共享存储器32的访问时,评估信号生成电路#0生成指示禁止访问共享存储器32的评估信号0UT_n,并且将生成的评估信号0UT_n输出到仲裁器61’’。
[0133]这时,评估信号生成电路#0将与导致命中的存储器地址ADD_M_n相对应的保护区域信息(即,被存储到保护区域配置寄存器#1至#m的信息)作为寄存器重写信息SET_REG_η输出到仲裁器61’ ’。注意,当条目#1至#m的存储器区域被配置成相互重叠时,多个访问评估电路#1至#m可以评估允许访问。
[0134]例如,当仲裁器61’ ’选择存储器地址ADD_M_1时,仲裁器61’ ’将评估信号0UT_1输出到本地MPU#1(71)。此外,仲裁器61’’将寄存器重写信息SET_REG_1输出到重写控制电路#1。当供应寄存器重写信息SET_REG_1时,使用从仲裁器61’’供应的寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路#1_1至#l_p当中具有最低地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#1_P的保护区域信息。
[0135]接下来,使用在图11和图12中示出的流程图解释根据本实施例的信息处理设备的操作。下面解释被包括在核#1 (10)中的CPU#1访问共享存储器32的情况作为示例。
[0136]当CPU#1访问共享存储器32时,CPU#I将存储器访问信息ACC_M_1输出到本地MPU#1 (81)(步骤S51)。本地MPU#1 (81)基于存储器访问信息么0:_11_1执行访问评估(步骤 S52)。
[0137]当访问评估电路#1_1至#l_p的任何一个评估被包括在存储器访问信息ACC_M_1中的存储器地址被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器地址时(即,当存储器地址ADD_M_1导致命中时),评估能够通过本地MPU#1 (81)执行访问评估(步骤S53:是)。当存储器地址ADD_M_1导致命中并且评估核#1 (10)具有对存储器区域32的访问权限(步骤S54:是)时,评估信号生成电路#1将指示允许访问的评估信号0UT_M_1输出到MPU控制单元#1 (13’ ’)。在这样的情况下,MPU控制单元#1 (13’ ’)将允许访问的通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32 (步骤S55)。
[0138]另一方面,当存储器地址ADD_M_1导致命中但是核#1 (10)不具有对存储器区域32的访问权限时,访问被评估为禁止(步骤S54:否)。当对于条目#1_1至#l_p中的每一个允许存储器区域的重叠(步骤S56:是)时,处理进行到图12的流程图。即,当对于条目#1_1至#1_P中的每一个允许存储器区域的重叠时,有必要对存储器保护单元MPU#0(60’ ’)的其它条目执行访问评估。同时,当对于条目#1_1至#1_口中的每一个不允许存储器区域的重叠(步骤S56:否)时,指示访问被禁止的评估信号0UT_M_1被输出到MPU控制单元#1 (13’ ’)。然后,MPU控制单元#1 (13’ ’)将例外通知信号作为通知信号ACK_1输出到CPU#1。在这样的情况下,禁止通过CPU#I对共享存储器32的访问(步骤S57)。
[0139]此外,当本地MPU#1 (81)不能够执行访问评估(步骤S53:否)时,即,当存储器地址ADD_M_1没有导致命中时,评估信号生成电路#1将存储器访问信息ACC_M_1输出到仲裁器61’’(图12的步骤S61)。存储器地址ADD_M_1没有导致命中的情况是所有的访问评估电路#1_1至#l_p评估被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1没有被包括在被存储到保护区域配置寄存器#1_1至#1_P的存储器区域中的情况。
[0140]如在图12的流程图中所示,当评估信号生成电路#1将存储器访问信息ACC_M_1输出到仲裁器61’ ’(步骤S61)时,在仲裁器61’ ’仲裁存储器访问信息ACC_M_1和存储器访问信息ACC_M_2之后,仲裁器61’ ’将存储器访问信息ACC_M_1输出到区域评估电路#1至#m (步骤S62)。
[0141]然后,访问评估电路#1至#m基于保护区域配置寄存器#1至#m和存储器访问信息ACC_M_1执行访问评估(步骤S63)。即,访问评估电路#1至#m评估是否被包括在存储器访问信息ACC_M_1中的存储器地址ADD_M_1被包括在相应的条目#1至#m (即,被存储到保护区域配置寄存器#1至#m的存储器区域#1)中。然后,当存储器地址ADD_M_1没有被包括在条目#1至#π!中(步骤S64:否)时,访问评估电路#1至#m输出指示禁止访问的评估结果。这时,评估信号生成电路#0生成指示禁止访问的评估信号0UT_1并且将评估信号0UT_1输出到仲裁器61’’(步骤S66)。
[0142]同时,当存储器地址ADD_M_1被包括在条目#1至#m中(步骤S64:是)时,并且进一步,当允许通过CPU#1对共享存储器32的访问的类型(例如,读取、写入、执行)(步骤S65:是)时,访问评估电路#1至#m输出指示允许访问的评估结果。这时,评估信号生成电路#0生成指示允许访问的评估信号0UT_1并且将生成的评估信号0UT_1输出到仲裁器61’ ’(步骤S67)。在此,例如,允许通过CPU#1对共享存储器32的访问的类型的情况是在保护区域配置寄存器#1至#m的属性寄存器中允许通过CPU#1对共享存储器32的访问的类型的情况。更进一步,评估信号生成电路#0经由仲裁器61’’将与导致命中的存储器地址ADD_M_1相对应的保护区域信息作为寄存器重写信息SET_REG_1输出到重写控制电路#1。
[0143]或者,当存储器地址ADD_M_1被包括在条目#1至#m中(步骤S64:是)时,并且进一步,当不允许通过CPU#1对共享存储器32的访问的类型(步骤S65:否)时,访问评估电路#1至#m输出指示访问被禁止的评估结果。这时,评估信号生成电路#0生成指示访问被禁止的评估信号0UT_1,并且将生成的评估信号0UT_1输出到仲裁器61’’(步骤S68)。此外,评估信号生成电路#0经由仲裁器61’ ’将与导致命中的存储器地址ADD_M_1相对应的保护区域信息作为寄存器重写信息SET_REG_1输出到重写控制电路#1。
[0144]响应于寄存器重写信息SET_REG_1 (步骤S67和S68),使用寄存器重写信息SET_REG_1,重写控制电路#1重写与访问评估电路#1_1至#?_ρ当中具有最低的地址命中率的访问评估电路相对应的保护区域配置寄存器#1_1至#1_Ρ的保护区域信息。
[0145]此外,仲裁器61’’将评估信号0UT_1输出到MPU控制单元#1(13’’)。然后,当评估信号0UT_1指示允许访 问(步骤S70:是)时,MPU控制单元#1 (13")将允许访问的通知信号作为通知信号ACK_1输出到CPU#1。然后,CPU#1访问共享存储器32 (步骤S71)。另一方面,当评估信号0UT_1指示禁止访问(步骤S70:否)时,MPU控制单元#1 (13’ ’)将例外通知信号作为通知信号ACK_1输出到CPU#1 (步骤S72)。在这样的情况下,禁止通过CPU#1对共享存储器32的访问。
[0146]如上面所解释的,以与在第三实施例中解释的信息处理设备相类似的方式,根据本实施例的信息处理设备能够增加处理速度,同时降低信息处理设备的功率消耗。
[0147]注意,虽然迄今为止解释了包括两个核的信息处理处理设备,但是在各个实施例中解释的信息处理设备可以包括三个或者更多个核。
[0148]此外,第一实施例解释其中信息处理设备包括共享寄存器#0 (50)和存储器保护单元MPU#0 (60)作为共享资源#0 (30)的示例作为示例。然而,根据第一实施例的信息处理设备可以被配置成仅包括共享寄存器#0 (50)(即,可以不包括存储器保护单元MPU#0(60))。同时,根据第二至第四实施例的信息处理设备可以至少包括存储器保护单元MPU#0
(60)作为共享资源#0 (30)并且没有必要包括共享寄存器#0 (50)。
[0149]本领域的技术人员能够根据需要组合第一至第四示例性实施例。
[0150]虽然已经就若干示例性实施例描述了本发明,但是本领域的技术人员将理解能够在所附的权利要求的精神和范围内以各种修改进行来实施本发明,并且本发明并不限于上述的示例。[0151]此外,权利要求的范围不受上述示例性实施例的限制。
[0152]此外,应当注意的是, 申请人:意图是涵盖所有权利要求要素的等同形式,即使在后期的审查过程中进行了修改。
【权利要求】
1.一种信息处理设备,包括: 多个核; 共享资源,所述共享资源能够由所述多个核共享;以及 本地寄存器,所述本地寄存器存储对所述多个核中的每一个所特有的配置信息,其中, 独立于所述多个核来设置所述共享资源,并且 对所述多个核中的每一个设置所述本地寄存器。
2.根据权利要求1所述的信息处理设备,其中,所述共享资源包括共享寄存器,所述共享寄存器存储包括所述多个核的机器的配置信息。
3.根据权利要求2所述的信息处理设备,其中,所述多个核中的每一个包括共享寄存器控制单元,所述共享寄存器控制单元控制由相应的核进行的对所述共享寄存器的写入和从所述共享寄存器的读取。
4.根据权利要求3所述的信息处理设备,其中,所述共享寄存器包括机器配置寄存器,所述机器配置寄存器存储由包括所述多个核的机器所遵循的配置信息。
5.根据权利要求3所述的信息处理设备,其中,所述共享寄存器包括虚拟化配置寄存器,所述虚拟化配置寄存器存储在使用包括所述多个核的机器作为虚拟机的情况下的配置信息。
6.根据权利要求1所述的信息处理设备,其中,所述共享资源包括存储器保护单元,所述存储器保护单元保护共享存储器免受由所述多个核中的每一个的无效访问。
7.根据权利要求6所述的信息处理设备,其中,当所述相应的核访问所述共享存储器时,所述多个核中的每一个将存储器访问信息输出到所述存储器保护单元。
8.根据权利要求7所述的信息处理设备,其中,所述存储器保护单元包括: 第一保护区域配置寄存器,所述第一保护区域配置寄存器存储与所述共享存储器的保护区域有关的保护区域信息; 第一访问评估电路,所述第一访问评估电路被设置得与所述第一保护区域配置寄存器相对应,并且基于所述存储器访问信息和存储到所述第一保护区域配置寄存器的所述保护区域信息来评估是否允许所述多个核中的每一个访问所述共享存储器。
9.根据权利要求8所述的信息处理设备,其中,所述存储器保护单元进一步包括仲裁器,所述仲裁器对是否允许所述多个核中的每一个访问所述共享存储器的评估进行仲裁。
10.根据权利要求8所述的信息处理设备,其中,所述第一保护区域配置寄存器存储与所述共享存储器的存储器区域相对应的地址信息以及与所述多个核中的每一个访问所述存储器区域的权限相关的权限信息。
11.根据权利要求10所述的信息处理设备,其中,当包括在所述存储器访问信息中的存储器地址被包括在存储到所述第一保护区域配置寄存器中的所述存储器区域中时,并且进一步,当所述核具有对所述存储器区域的访问权限时,所述访问评估电路评估出所述核能够访问所述共享存储器。
12. 根据权利要求6所述的信息处理设备,其中,所述多个核中的每一个进一步包括本地存储器保护单元,所述本地存储器保护单元在所述存储器保护单元进行评估之前,评估所述相应的核是否能够访问所述共享存储器。
13.根据权利要求12所述的信息处理设备,其中,所述本地存储器保护单元包括:第二保护区域配置寄存器,所述第二保护区域配置寄存器存储与所述共享存储器的保护区域有关的保护区域信息;以及 第二访问评估电路,所述第二访问评估电路被设置得与所述第二保护区域配置寄存器相对应,并且基于所述存储器访问信息以及存储到所述第二保护区域配置寄存器的所述保护区域信息来评估是否允许所述相应的核访问所述共享存储器。
14.根据权利要求13所述的信息处理设备,其中,所述存储器保护单元包括: 第一保护区域配置寄存器,所述第一保护区域配置寄存器存储与所述共享存储器的保护区域有关的保护区域信息;以及 区域评估电路,当包括在所述存储器访问信息中的所述存储器地址没有被包括在存储到所述第二保护区域配置寄存器的存储器区域中时,所述区域评估电路评估所述存储器地址是否被包括在存储到所述第一保护区域配置寄存器的所述存储器区域中。
15.根据权利要求14所述的信息处理设备,其中, 所述本地存储器保护单元进一步包括重写控制电路,当所述区域评估电路评估出所述存储器地址被包括在存储到所述第一保护区域配置寄存器的所述存储器区域中时,所述重写控制电路使用存储到所述第一保护区域配置寄存器的保护区域信息来重写存储到所述第二保护区域配置寄存器的保护区域信息,并且 在所述第二保护区域配置寄存器被重写之后,所述第二访问评估电路基于所述存储器访问信息和存储到所述第二保护区域配置寄存器的重写保护区域信息来再次评估是否允许所述核访问所述共享存储 器。
16.根据权利要求13所述的信息处理设备,其中,所述存储器保护单元包括: 第一保护区域配置寄存器,所述第一保护区域配置寄存器存储与所述共享存储器的保护区域有关的保护区域信息;以及 第一访问评估电路,当包括在所述存储器访问信息中的所述存储器地址没有被包括在存储到所述第二保护区域配置寄存器的所述存储器区域中时,所述第一访问评估电路评估是否允许所述核访问所述共享存储器。
17.根据权利要求16所述的信息处理设备,其中,所述本地存储器保护单元进一步包括重写控制电路,所述重写控制电路使用存储到包括在所述存储器保护单元中的所述第一保护区域配置寄存器的保护区域信息,来重写存储到所述第二保护区域配置寄存器的保护区域信息。
18.根据权利要求15所述的信息处理设备,其中,存储到所述第二保护区域配置寄存器的存储器区域的数目小于存储到所述第一保护区域配置寄存器的存储器区域的数目。
19.根据权利要求17所述的信息处理设备,其中,存储到所述第二保护区域配置寄存器的存储器区域的数目小于存储到所述第一保护区域配置寄存器的存储器区域的数目。
20.根据权利要求15所述的信息处理设备,其中,所述重写控制电路基于从所述第二访问评估电路输出的评估结果来计算所述第二访问评估电路中的每一个的地址命中率,并且使用存储到所述第一保护区域配置寄存器的保护区域信息来重写存储到与具有最低地址命中率的所述访问评估电路相对应的所述第二保护区域配置寄存器的保护区域信息。
21.根据权利要求17所述的信息处理设备,其中,所述重写控制电路基于从所述第二访问评估电路输出的评估结果来计算所述第二访问评估电路中的每一个的地址命中率,并且使用存储到所述第一保护区域 配置寄存器的保护区域信息来重写存储到与具有最低地址命中率的所述访问评估电路相对应的所述第二保护区域配置寄存器的保护区域信息。
【文档编号】G06F15/167GK103778099SQ201310487396
【公开日】2014年5月7日 申请日期:2013年10月17日 优先权日:2012年10月17日
【发明者】伊藤雅之, 杉本英树 申请人:瑞萨电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1