总线系统和用于受保护地访问存储器的方法

文档序号:6628466阅读:203来源:国知局
总线系统和用于受保护地访问存储器的方法
【专利摘要】本发明涉及总线系统和用于受保护地访问存储器的方法。总线系统(300)包括被分配有单元识别号(302a,302b,302c)的功能单元(301,307);用于存储数据的存储单元(303),其中该存储单元具有存储区域(304);以及总线(305),其中功能单元可经由总线与存储单元连接,其特征在于,存储区域被设立用于向该存储区域分配一个或多个全局允许识别号(330),使得仅当分配给功能单元的单元识别号对应于分配给存储区域的全局允许识别号之一时,功能单元才以读或写的方式访问存储区域。
【专利说明】总线系统和用于受保护地访问存储器的方法

【技术领域】
[0001]本发明涉及一种总线系统和一种具有这样的总线系统的微控制器,以及一种用于受保护地访问与该总线系统连接的存储单元的存储区域的方法。

【背景技术】
[0002]微控制器承担电系统中的很多控制功能,尤其是在针对汽车的应用中。尤其是在这些汽车应用情况下,在安全性和可靠性方面的不同要求适用于在微控制器上实施的程序(软件)。从而例如在访问确定的硬件部件时,相对于不太重要的功能应把对安全性重要的功能的控制装置、如安全气囊控制装置或制动系统的控制装置放在首位,并且控制软件本身特别应在从外部和内部的操纵方面得到保护。
[0003]控制软件通常存放在存储器中,例如计算单元(CPU)以读或写的方式访问所述存储器。出于上面提到的原因,对确定的存储区域的访问必须受到保护并且被配备有优选的优先权。对待保护的存储区域的访问可以通过特定的识别号(Bezeichner)来调整,所述识别号被分配给在其侧访问所述存储区域的功能单元。
[0004]为了使CPU或在其上运行的程序以读或写的方式访问存储器的确定的存储区域,通常使用DMA控制器,以便将CPU从简单的数据传送任务中减轻负担。
[0005]DMA控制器使用逻辑DMA通道,以便将数据例如传送给存储区域。现在如果出于上面提到的原因应当保护确定的存储区域,则还应当确保该保护不由于使用DMA通道而被绕过。因此DMA通道在安全性关键的数据情况下特别应当受到保护。
[0006]US 2007/0174507A1示出一种具有处理器、存储器和DMA控制器的系统,该DMA控制器的DMA通道支持所谓“限定词(Qualifier)”的使用并且与“防火墙”一起降低免遭对DMA通道的攻击的保护。
[0007]“防火墙”允许或者防止“限定词”被分配给DMA通道并由此允许或防止数据被分配给对应的DMA通道。该分配经由对应的配置寄存器进行。
[0008]因此本发明的任务是提供一种总线系统,利用该总线系统可以成本低廉地实现更灵活的保护。
[0009]此外本发明解决以下任务:根据所使用的DMA通道的重要性通过DMA控制器设置数据传送的优先级。


【发明内容】

[0010]一种总线系统包括被分配有单元识别号的功能单元、用于存储数据的存储单元以及总线,其中该存储单元具有存储区域,其中功能单元可经由总线与存储单元连接,其特征在于,存储区域被设立用于向该存储区域分配一个或多个全局允许识别号,使得仅当分配给功能单元的单元识别号对应于分配给存储区域的全局允许识别号之一时,功能单元才以读或写的方式访问存储区域。

【专利附图】

【附图说明】
[0011]图1示出总线系统的一个实施例。
[0012]图2示出总线系统的另一实施例。
[0013]图3示出总线系统的另一实施例。
[0014]图4示出总线系统的另一实施例。
[0015]图5示出用于受保护地访问存储器的方法的实施例。

【具体实施方式】
[0016]下面的详细描述参照附图,所述附图构成本发明公开内容的一部分,并且在附图中示出特殊的实施例以用于图解,通过这些实施例可以示例性地在实践中实施本发明。当然也可以使用其它实施例并且可以进行结构或其它改变,而不脱离本发明的保护范围。因此,下面的详细描述不应当以限制性方式理解。更确切地说,本发明的保护范围仅通过所附权利要求限定。
[0017]本发明的实施方式涉及总线系统,其具有功能单元以及连接到总线上的存储单元和具有确定数量的DMA通道的DMA控制器,所述功能单元例如是一个或多个CPU。在此,DMA通道被分配给一个或多个通道组,其中每个这样产生的通道组经由对应的配置寄存器被分派有特定的单元识别号,经由所述单元识别号控制对确定的存储区域的访问。
[0018]图1示出总线系统100,其具有总线105和两个功能单元1la和1lb以及与总线连接的存储单元103,所述存储单元具有存储区域104。
[0019]总线105用于在与总线连接的功能单元1la和1lb与存储单元103之间传送数据。功能单元1la和1lb以及存储单元103经由在图1中未示出的接口与总线105连接。
[0020]功能单元例如是可以实施确定的功能的电路。为了实施该功能,数据可以经由未示出的接口被输送给功能单元1la或101b。然后经过处理的数据又可以经由未示出的接口被输出到总线105上。
[0021]功能单元1la和1lb之一可以是“总线主控器(Bus Master)”,也就是说功能单元1la或1lb获得对总线105的控制并且因此自主地发起经由总线105的数据传送。这样的功能单元例如可以是独立操作的模拟数字转换器。功能单元之一 1la或1lb也可以是CPU,一个程序或多个程序在该CPU上被执行。两个功能单元1la和1lb也可以是不同的 CPU。
[0022]分别向与总线连接的功能单元1la和1lb分配特定的单元识别号102a和102b。给功能单元1la例如分配值“10”作为特定的单元识别号102a,并且给功能单元1lb分配值“11”作为特定的单元识别号102b。
[0023]单元识别号102a和102b可以被明确地(eindeutig)分配给功能单元1la和101b,使得经由单元识别号可以分配相应的功能单元。但是也可以向多个功能单元分配相同的单元识别号。
[0024]单元识别号102a或102b可以经由未示出的电路被分配给功能单元1la或101b,在一种实施方式中该电路在运行中不可改变。
[0025]对于功能单元1la或1lb是其上执行确定的程序的CPU的情况,将与程序的类型相对应的单元识别号分配给该功能单元。
[0026]存储单元103在一种实施方式中经由在图1中未示出的接口与总线105连接。存储单元103可以包括RAM (随机存取存储器),尤其是SRAM (静态RAM)、DRAM (动态RAM)以及MRAM (磁性RAM),或者包括ROM (只读存储器),尤其是闪存、OTP和EEPR0M。
[0027]但是在另一未示出的实施方式中,存储单元还可以是功能单元的一部分。在该情况下,存储单元例如可以由寄存器群构成。在另一未示出的实施方式中,存储单元还可以由两部分组成,其中存储单元的第一单独部分与总线连接,而存储单元的第二部分集成到功能单元中。
[0028]存储单元103具有存储区域104以及在图1中未示出的另外的存储区域,在所述存储区域中可以写入数据并由此可以存储数据或者可以从所述存储区域读取数据。存储区域可以包含必须特别是被保护免遭访问的数据。此外存储单元包括用于访问控制的控制装置 110。
[0029]连接到总线105上的功能单元1la和1lb可以或者以读或写的方式或者以读和写的方式访问存储单元103的存储区域104。但是对存储区域104的访问仅对于确定的功能单元是允许的。存储区域104为此具有包含所述一个或多个全局允许识别号130的配置寄存器109,这些全局允许识别号的功能单元被允许用于访问。在由功能单元(1la或1lb)计划地访问存储区域104的情况下,用于访问控制的控制装置110将全局允许识别号130与分配给该功能单元的单元识别号(102a或102b)相比较。仅当该单元识别号属于所允许的识别号130的组时,才允许访问。
[0030]全局允许识别号130例如可以由图1中未明确示出的全局允许识别号的3个组构成。于是第一组允许仅以读的方式访问存储区域104,于是第二组允许仅以写的方式访问存储区域104,并且于是第三组全局允许识别号允许以读和写的方式访问存储区域104。例如全局允许识别号“10”可以来自一组仅允许读访问的全局允许识别号,而全局允许识别号“ 11”可以来自一组仅允许写访问的全局允许识别号。由此在这种情况下,所连接的功能单元1la只能以读的方式访问存储区域104并且所连接的功能单元1lb只能以写的方式访问存储区域104。
[0031]应当在其中例如写入数据的存储区域104经由未示出的存储器地址范围定义。访问存储区域104,其方式是对存储单元103施加存储器地址。为了写访问,在总线105上施加预先确定的数据模式。存储单元103经由其在图1中未示出的接口接收该数据模式。施加在总线105上的数据模式的一部分可以是存储器地址。但是该存储器地址也可以施加在另外的在图1中未示出的其它总线上。存储器地址定义当在存储单元103中存在多个存储区域时应当对哪个存储区域进行写。
[0032]在现有技术中通过“限定词”来控制DMA通道的使用。如果例如应当通过软件来使用确定的DMA通道,则借助预先定义的“限定词”的列表决定是否允许使用对应的DMA通道。由此只能保护对确定的DMA通道的使用。由此不能实现与DMA通道无关地保护不同的存储区域。由此相对于现有技术的优点在于更灵活的保护机制。
[0033]图2示出总线系统200,其具有总线205、构造为CPU的功能单元207以及具有存储区域204的存储单元203。CPU 207和存储单元203经由在图2中未示出的接口与总线205连接。
[0034]此外,图2示出两个不同的程序207a和207b,它们可以由CPU 207执行。如果现在在该实施例的应用中在CPU 207上执行第一程序207a,则向CPU 207分配值“ 10”作为单元识别号202。但是如果在CPU 207上执行第二程序207b,则向CPU 207分配值“11”作为单元识别号202。
[0035]软件的第一部分(SWl)可以是用于安全性重要的功能的程序。例如该部分可以是汽车中安全气囊系统的控制装置。软件的第二部分(SW2)可以是应用者已经实现的程序(“用户代码”)。
[0036]存储单元203包括存储区域204,其中可以经由总线205访问所述存储区域的数据,其中该访问被限制到存储区域204上。该存储区域204为此具有包含所述一个或多个允许识别号230的配置寄存器209,所述全局允许识别号被允许用于访问。此外,存储单元203包括用于访问控制的控制装置210。
[0037]从而例如CPU 207——在该CPU 207上运行安全性重要的软件并且该CPU 207因此示出值“10”作为单元识别号202—可以经由总线205访问存储区域204并且从那里读取数据或者将数据写到该区域上。相反,如果在CPU 207上运行由应用者自己写的软件并且该CPU 207因此被指派有值“11”作为单元识别号202,则该CPU 207既不能读也不写该存储区域204,因为值“II”不属于所允许的识别号230的组。
[0038]在一种未不出的实施方式中,程序207a可以在第一 CPU上加以执行,该第一 CPU于是被分配有值“10”作为单元识别号,而第二程序207b可以在第二 CPU上加以执行,该第二 CPU于是被分配有值“11”作为单元识别号。
[0039]在未示出的另外的实施方式中,CPU 207和存储单元203被组合成与总线205连接的功能单元。
[0040]图3作为另外的实施例示出具有总线305的总线系统300,该总线系统除了 CPU307、功能单元301和存储单元303之外还包含DMA控制器306。存储单元303具有存储区域304。此外存储单元303包括用于访问控制的控制装置310。
[0041]CPU 307、功能单元301、DMA控制器306以及存储单元303在该实施例中经由未示出的接口与总线305连接。但是存储单元在另一实施例中也可以是CPU 307的一部分或是功能单元301的一部分或是DMA控制器的一部分。
[0042]在CPU 307上可以执行两个程序307a和307b。程序307a和307b可以分别处理由CPU 307经由未示出的接口从总线305读取的数据。在对应的处理之后,CPU 307可以将数据输出到总线305上。如果在CPU 307上执行程序307a,则例如向CPU 307分配值“10”作为单元识别号302a。如果在CPU 307上执行程序307b,则例如向CPU 307分配值“11”作为单元识别号302a。
[0043]功能单元301可以经由未示出的接口从总线305读取数据或者将数据写到总线305上。向功能单元301分配特定的单元识别号302b。该分配可以经由功能单元301内的电路实现。因此在一种实施方式中,单元识别号是不可改变的。但是单元识别号还可以存放在寄存器中并由此是可编程的。
[0044]DMA控制器(直接存储器存取控制器(Direct-Memory-Access-Controller))的功能通常在于:独立地承担经由总线305对数据的传送并由此负责减轻CPU 307的负担。DMA控制器306包含多个DMA通道(307a,307b,307c),其中该数量例如可以是8,16,32或64。根据图3的DMA控制器具有64个DMA通道,在此,图3示例性示出DMA通道_0 307a, DMA通道_1 307b和DMA通道_63 307c。经由DMA通道在功能单元之间或在功能单元与存储单元之间在无CPU参与的情况下进行直接数据传送。对于每个DMA通道存在所分配的通道控制寄存器。图3作为对应的示例示出用于DMA通道307a的通道控制寄存器320a、用于DMA通道307b的通道控制寄存器320b以及用于DMA通道307c的通道控制寄存器320c。示范性地将通道控制寄存器作为存储区域304的一部分示出。
[0045]确定数量的DMA通道可以被组合成通道组。如在图3中所示,例如DMA通道307a和307b可以被组合为通道组308。另外的在图3中未示出的通道组可以通过DMA通道的任意组合构成。在该实施例的应用中,每个DMA通道只能明确地被分配给一个确定的通道组。DMA通道向通道组的分配可以经由通道组分配寄存器321实现。
[0046]通过相应通道控制寄存器(例如320a,320b和320c)的对应编程,确定出:哪些功能单元使用哪个DMA通道。从而例如可以将通道控制寄存器320a和320b配置为,使得功能单元301可以使用两个DMA通道并由此可以使用通道组308。
[0047]每个通道组可以经由所分配的通道组控制寄存器被配置。图3示例性示出用于通道组308的通道组控制寄存器322。相应的通道组控制寄存器可以包含局部允许识别号331的列表,经由这些局部允许识别号来控制对通道控制寄存器的访问。如果例如具有单元识别号“12”的功能单元301想要使用通道组308,但是“12”未被录入到局部允许识别号的列表中,则拒绝对通道组控制寄存器320a和320b的访问。单元识别号302b和允许的局部识别号331的比较可以经由用于访问控制的控制装置310进行。在该实施方式的另一未示出的示例中,DMA控制器可以具有用于对通道控制寄存器的访问控制的自己的控制装置。
[0048]单元识别号与局部允许识别号的列表的比较使得可以保护免于使用不应当被允许由确定的功能单元使用的DMA通道。
[0049]可以向每个通道组分配特定的单元识别号。从而例如在图3中向通道组308分配值“13”作为单元识别号302c。使用通道组308的数据传送由此例如可以经由识别号13来标识。
[0050]存储单元303包括存储区域304。在存储区域304中可以写入经由总线305施加在存储单元303的未示出接口处的数据。可以从存储区域304中读取数据,然后所述数据可以经由未示出的接口输出到总线305上。存储区域304在图3中作为与总线305连接的单独的存储单元的一部分示出。但是该存储单元在另一未示出的实施例中可以是功能单元301的一部分或是CPU 307的一部分或是DMA控制器的一部分。
[0051]向存储区域304分配全局允许识别号330。在一个应用示例中,为此经由配置寄存器309配置存储区域304。于是可以经由配置寄存器309定义对于读访问或写访问允许的全局允许识别号330。例如,用于访问控制的控制装置310可以将寄存器309中的项与希望访问存储区域304的功能单元的单元识别号相比较。由此对存储区域304的访问限制于已被分配有对存储区域304来说允许的全局允许识别号330的功能单元。
[0052]存储区域304的配置寄存器309例如在存储区域304中实现。但是该配置寄存器也可以在另外的未示出的存储区域中实现。
[0053]在一个应用示例中,数据可以由功能单元301借助DMA控制器306的通道组308经由总线305传输至存储单元303。由此对于给通道组308例如分配了值“ 13”作为单元识别号302c以及该单元识别号未被允许用于访问存储区域304的情况,经由DMA控制器拒绝功能单元301访问存储区域304。
[0054]在该实施例的另一种应用中,数据传送通过程序307a启动,该程序在CPU 307上加以执行并且因此向CPU 307分配值“10”作为单元识别号。如果单元识别号“10”被允许用于访问存储区域304,则将数据存储在存储单元303的存储区域304中是可能的。
[0055]在所提到的示例中经由单元识别号302a、302b或302c控制对存储区域304的访问。存储区域304拥有全局配置寄存器309,在该配置寄存器中确定出:哪些单元识别号允许访问存储区域304。
[0056]由于对确定的存储区域的访问需要被允许的识别号,因此在一个未示出的应用方式中,确定的程序通过DMA (per DMA)只能在确定的边界条件下与其它功能单元经由定义的存储区域交换数据。该程序例如在CPU上加以执行并且使用确定的通道组的DMA通道。因此在访问确定的存储区域的情况下,将通道组的所分配的单元识别号与该存储区域的配置寄存器中的项相比较。同样将功能单元的单元识别号与该存储区域的配置寄存器中的项相比较。仅当两个单元识别号都被录入在该存储区域的配置寄存器中时,才可以在CPU与功能单元之间进行数据交换。
[0057]由此访问权限通过在单元识别号与对应的存储区域之间的分配来定义。
[0058]在另一应用示例中,存储区域304的配置寄存器309中的项可以被改变。但是该改变只能通过访问配置寄存器309的这样的功能单元进行。
[0059]配置寄存器309可以在存储区域304中实现。但是配置寄存器309也可以在未示出的另外的存储区域中实现。
[0060]在另一应用示例中,将要在CPU 307上执行的程序307a可以使通道组308能够访问存储区域304,其中该程序307a根据其单元识别号访问存储区域304的配置寄存器309。
[0061]DMA控制器306的不同的DMA通道可以具有不同的优先级,也就是说与具有较低通道优先级的DMA通道相比较,具有较高通道优先级的DMA通道优选地接入总线并由此可以执行通过其配置定义的数据传送。
[0062]这些优先级例如可以随着通道号增加而降低或增大。如果现在例如将会向功能单元301指派DMA通道307a,则在一个应用示例中该DMA通道307a会比例如在CPU 307上运行的程序307a (如果该程序使用DMA通道307b的话)具有更高的优先级。
[0063]图4示出总线系统400的另一实施例,其中与图3不同地,通道控制寄存器(例如420a,420b,420c)在 DMA 控制器 406 中实现。
[0064]图5示出针对用于受保护地访问存储单元的存储区域的方法的流程图。
【权利要求】
1.总线系统(300),包括 被分配有单元识别号(302a,302b,302c)的功能单元(301,307), 用于存储数据的存储单元(303),其中该存储单元具有存储区域(304),以及 总线(305),其中功能单元可经由总线与存储单元连接, 其特征在于,存储区域被设立用于向该存储区域分配一个或多个全局允许识别号(330),使得仅当分配给功能单元的单元识别号对应于分配给存储区域的全局允许识别号之一时,功能单元才访问存储区域。
2.根据权利要求1所述的总线系统,其中分配给存储区域的全局允许识别号中的至少之一可从允许仅以读的方式访问该存储区域的全局允许识别号组中选择。
3.根据权利要求1所述的总线系统,其中分配给存储区域的全局允许识别号中的至少之一可从允许仅以写的方式访问该存储区域的全局允许识别号组中选择。
4.根据权利要求1-3所述的总线系统,其中单元识别号通过电路确定。
5.根据权利要求1-3所述的总线系统,其中单元识别号通过可编程寄存器确定。
6.根据权利要求1-5所述的总线系统,其中功能单元通过CPU(307)构成,该CPU被设立为使得在该CPU上执行程序(307a,307b),使得向该CPU分配与所述程序对应的识别号(302a,302b)。
7.根据权利要求1-6所述的总线系统,该总线系统具有能与总线(405)连接的DMA控制器(406 ),其中DMA控制器具有多个可经由通道控制寄存器(420a, 420b,420c )编程的DMA通道(407a, 407b,407c),以及其中DMA控制器被设立用于通过DMA通道的通道组(408)来构成所述功能单元。
8.根据权利要求7所述的总线系统,其中DMA控制器被设立用于向所述通道组分配局部允许识别号,使得只有以下功能单元能够访问通道控制寄存器:即所述功能单元的单元识别号对应于所分配的局部允许识别号。
9.根据权利要求7-8所述的总线系统,其中向多个DMA通道中的每个分配通道优先级,使得当具有较大通道优先级的DMA通道启动数据传送时,经由具有较小通道优先级的DMA通道的、进行中的数据传送被中断。
10.根据权利要求9所述的总线系统,其中多个DMA通道中的每个单个DMA通道具有通道号,并且通道优先级随着通道号增大而增大或者随着通道号增大而降低。
11.根据权利要求1-10所述的总线系统,其中允许用于访问存储区域(304)的全局允许识别号(330)被存储在该存储区域的配置寄存器(309)中。
12.根据权利要求1-11所述的总线系统,其中允许用于访问通道控制寄存器的局部允许识别号(431)被存储在通道组控制寄存器(431)中。
13.具有根据权利要求1-12所述的总线系统的微处理器。
14.用于受保护地访问存储单元的存储区域的方法,包括 向功能单元(301,307,308)分配单元识别号(302a,302b, 302c), 向存储区域(304)分配全局允许识别号(330), 其特征在于,仅当向该功能单元分配了对应于全局允许识别号的单元识别号时,该功能单元才访问该存储区域。
15.根据权利要求14所述的方法,其中分配给存储区域的全局允许识别号中的至少之一可从允许仅以读的方式访问或仅以写的方式访问该存储区域的全局允许识别号组中选择。
【文档编号】G06F12/14GK104516835SQ201410499940
【公开日】2015年4月15日 申请日期:2014年9月26日 优先权日:2013年9月26日
【发明者】S.科塔姆, F.黑尔维希 申请人:英飞凌科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1