存储器保护单元、存储器管理单元和微控制器的制作方法

文档序号:12469965阅读:380来源:国知局
存储器保护单元、存储器管理单元和微控制器的制作方法与工艺

本发明涉及存储器保护单元。此外,本发明涉及相应的存储器管理单元以及相应的微控制器。



背景技术:

管理程序(Hypervisor)(虚拟机监控器(virtual machine monitor),VMM)构成虚拟化的重要的基本概念。VMM从软件角度确保,不同的独立的软件单元可以完全地被彼此分开。这些所谓的无干扰性(freedom from interference)在安全关键的应用情况(use cases(使用情况))下尤其是有帮助的。较大的软件单元、例如包括操作系统在内的应用程序,以下被称为虚拟机(virtual machines,VM)。较小的软件单元(软件实体(software entities), SWE)例如是VM之内的操作系统任务、软件线程或者用户软件的部分。VM和SWE的分等级的细分可以在实现中实际上分等级地实施,而或者通过在仅仅逻辑上分配给VM的情况下很多SWE的平划分(flache Aufteilung)来实施。对于高效的虚拟化,微控制器或者微处理器按照现有技术拥有特别的硬件能力,以便能够将VM彼此分开。

在微控制器或者微处理器(μP)之内的虚拟化的核心构件(以下仅还概括地称作μC)是存储器保护单元(memory protection unit,MPU)。按种类的MPU可以是单独的或者集成在存储器管理单元(memory management unit,MMU)之内。主计算核心MPU对μC的主计算核心(core(核心))的存储器访问检查可能的访问冲突(Zugriffsverletzungen)。IO-MMU对μC的有DMA能力或者有主机能力的外围单元的存储器访问检查可能的访问冲突。主计算核心MPU和IO-MPU以下仅还概括地被称作MPU。有DMA能力或者有主机能力的外围单元以下与主计算核心联合地被称作计算核心。访问冲突例如是一个VM对分配给另一VM的存储器地址的写访问。为此根据地址表检查:与各个访问相关联的地址是否处于允许的范围之内。典型地,为不同的VM确定不同的地址范围。例如,对于5个VM和分别10个地址范围应总计定义5×10=50个地址范围。典型的计算系统由一个或多个计算核心以及例如闪存或者RAM存储器组成,所述闪存或者RAM存储器通过总线或者耦合场(纵横开关(crossbar switch))彼此连接。MPU是例如处于计算核心与总线或者耦合场之间的硬件单元。MPU存储地址范围并且包括比较器单元,所述比较器单元对计算核心通过总线或者耦合场对存储器的每个访问在其实施之前检查许可性。如果访问被允许,那么所述访问发生。如果访问不应当被允许,那么所述访问被阻止,因此不到达总线并且计算核心例如通过中断适当地被通知。

DE 19828056 A1涉及用于在程序运行内在对存储器写入期间监控存储器的存储区的装置。规定,辅助存储器被分配给所述存储器,所述辅助存储器在安置(Anlegen)存储器的存储区期间被这样地结构化,使得存储器的要保护的存储区分别分配给辅助存储器的所标记的存储区,并且存储器的存储区和辅助存储器的所标记的存储区在程序运行时是同时可寻址的(ansprechbar),并且程序运行在辅助存储器的所标记的存储区的未经授权的寻址时被影响。



技术实现要素:

本发明提供按照独立权利要求所述的存储器保护单元、相应的存储器管理单元以及相应的微控制器。

在此,本发明所基于的认识是,越密集地对用于虚拟化的μC的特别的硬件能力访问,其关于实施速度的效率越重要。在最无益的情况下,VMM的使用产生如此高的运行时间额外耗费,使得总计算效率猛烈地暴跌。因此,本发明的一种实施方式提供用于虚拟化的硬件支持,所述硬件支持的性能需求自身在密集型使用的情况下是最小的。

所述解决方案的优点在于用于实施VM和SWE的MPU的所需要的转换的加速,其中所述VM和SWE的存储区为了无干扰性目的彼此分开。所述方案的目的特别是用于加载(Laden)MPU的要保护的地址范围的最小时间需求。于是,所述较快速的转换例如尤其通过由VMM转换VM而对虚拟化的效率有好处。但是,较快速的转换尤其通过各个SWE的转换也对在各个线程彼此分开情况下正常的操作系统或者应用程序有好处。

因为计算核心不必再部分地或者完全地(重新)配置MPU寄存器自身,所以所述计算核心也可以在MPU内部新配置期间与此并行地在本地存储器上实施计算。

此外,本发明的一种实施方式使地址范围的管理灵活,用于彼此通过硬件支持保护软件。

通过在从属权利要求和以下的描述中所提及的措施,在独立权利要求中说明的基本思想的有利的改进和改善是可能的。因此可以规定,用于存储存储器保护单元的地址表的配置存储器包括静态RAM(静态随机存取存储器(static random-access memory),SRAM)。因为时钟频率在技术上被限制,所以为了实现配置存储器的高的传输带宽,高的数据字宽(Datenwortbreite)的使用也是可能的,以便能够实现地址范围的快速的新配置。在此通过直接地连接到MMU上的芯片内部存储器,256比特或者除此之外的数据字宽也是非临界的。

按照另一方面,影子寄存器可以被设置。通过使用两个或更多个这样的MPU寄存器组,寄存器的转换可以被缓冲并且因此再次更迅速地进行,其中所述寄存器组可以显式地通过软件而或者通过硬件预测逻辑被预加载。

按照另一方面,硬件逻辑可以这样地被配置,使得所述硬件逻辑可以基于唯一的软件标志区分相同的或者不同的实施层面的软件单元。借助于这样的ID或者访问层面,可以借助于存储器保护单元对适当的外围单元的传递(Transfer)检验有效性。

按照另一方面,硬件逻辑可以通过这种方式被这样地配置,使得基于具有其唯一的软件标志的分别有效的软件自动地或者部分自动地对硬件寄存器进行加载,使得不需要或者仅需要计算核心(23)的受约束的行动。因此,存储器保护单元可以根据软件标志自动地(并且快速地)加载合适的地址范围到其寄存器中。所述措施考虑以下情况:即寄存器常常强烈地被限制,存储器比较便宜,并且软件标志的变化比由计算核心通过总线的访问少得多。于是,建议的方案意味着可能的所配置的存储区域的对于软件透明的、便宜的和显著的提高。

附图说明

在附图中示出并且在随后的描述中进一步阐述本发明的实施例。其中:

图1示出按软件和硬件对所使用的术语的示意性分类。

图2示出按照一种实施方式的具有本地MPU配置存储器的μC的构造。

图3示出本发明的一种实施方式的示例性使用。

具体实施方式

示范性的应用场景包括微处理器或者微控制器15形式的硬件11,所述微处理器或者微控制器15实施软件10。软件10在其方面包括可以监控多个VM 12的VMM 14,其中一个VM 12又可以具有多个SWE 13。所述相互关系在图1中被概括。

图2进一步详细示出微控制器15的构造。所述微控制器15尤其包括具有用于读和写来自全局地址空间22的工作数据的耦合场的总线21,所述全局地址空间22由全局存储器22a和全局可访问的外围单元22b组成,所述全局可访问的外围单元在全局地址空间22上是可访问的;分别用于处理工作数据的三个与总线21间接地连接的计算核心23、24,其中23是主计算核心并且24是有DMA能力的外围单元;用于存储本地工作数据的两个与主计算核心23中的各一个间接地连接的本地工作存储器25;用于保护本地工作存储器25的两个接在两个主计算核心23中的每个和各自的本地工作存储器25之间的第一存储器保护单元29l;用于保护具有全局存储器22a和全局外围单元22b的全局地址空间22的三个接在三个计算核心23、24中的各一个与总线21之间的第二存储器保护单元29g;以及各一个连接到存储器保护单元29l、29g中的每个上的配置存储器28,要保护的存储区的配置被存放在所述配置存储器28中;以及存储器保护单元29l、29g扩展了访问接口的各一个扩展29e,以便能够访问配置存储器28,其中20作为29e与28的总和表示按照本发明的创新。

在此,用于存储器保护单元29l、29g的转换(Umschaltung)的硬件寄存器的内容例如不被存储在微控制器15的主存储器中。换而言之,存储器保护单元29l、29g分别拥有优选地静态RAM形态的自己的本地配置存储器28;用于管理配置存储器28的包含在存储器保护单元29l、29g中的硬件逻辑29e;用于在配置存储器28和硬件寄存器之间进行数据交换的、在配置存储器28和硬件逻辑29l、29g之间、尤其在配置存储器28和保持要检查的地址范围的29l、29g的硬件寄存器之间的性能(performant)数据连接和控制逻辑;用于控制配置存储器28和硬件寄存器之间的均衡(Abgleich)的在存储器保护单元29l、29g和各自的计算核心23、24之间的接口;以及用于通过计算核心23、24经由(im Wege)直接数据传送(Datendurchleitung)或者间接地在通过存储器保护单元29l、29g预处理后对配置存储器28进行写入的在存储器保护单元29l、29g和各自的计算核心23、24之间的接口。

可选地,存储器保护单元29l、29g拥有用于例如为了区别VMM 14、VM 12或者SWE 13目的而在不同的访问层面之间分等级地分开的逻辑,并且基于刚好所实施的软件10的访问层面或者标志(标识(identification),ID)、例如在VM情况下VM-ID或者在SWE情况下线程ID掌控(beherrschen)期望的MPU配置的自动的加载。

在有效VM的惯常实施期间,每个存储器保护单元29l、29g以传统的方式起作用:具有确定数量的地址范围的当前地址表处于存储器保护单元29l、29g的硬件寄存器中。对各自的计算核心23、24中的每个地址访问检查访问权,其方式是:所述地址相对来自存储器保护单元29l、29g的地址表中的每个地址范围被检查。为了能够实现快速的检查,全部的检查优选地在并行的硬件结构中被实施,例如其方式是:对于每个地址范围设置用于下界限(untere Schranke)的比较器和用于上界限的比较器。

然而当软件单元、例如VM被转换时,软件10按照本发明不必再对每个硬件寄存器进行加载来将地址范围单独地或者逐块地以显式方式重新写入到存储器保护单元29l、29g中。换而言之,地址范围通过硬件逻辑29e从寄存器保护单元29l、29g的本地配置存储器28中读出。配置存储器28优选地是快速SRAM。为了转换,软件10仅须安排存储器保护单元29l、29e。这可以例如通过说明配置存储器28之内的地址或者通过ID的传输进行,新的配置数据针对所述ID被存放。所述安排(Veranlassung)可以以显式方式通过各自的计算核心23/24进行,或者以隐式方式通过确定的VMM/VM/SWE的存储器访问进行,唯一的ID或者访问层面可以被分配给所述确定的VMM/VM/SWE。

为了初始地或者在运行时间配置地址范围,根据实施,计算核心23、24中的每个而或者仅所述计算核心中的一个可以直接地或者间接地通过存储器保护单元29l、29g的硬件寄存器访问存储器保护单元29l、29g的自身的而或者全部的配置存储器28,也即访问要保护的地址区域。

如果在稍后的工作流程(Arbeitablauf)中有DMA能力的外围单元24的存储器访问被调整,那么优选的是也将主计算核心23的进行调整的VMM/VM/SWE的必要时隐式传输的或者要显式传输的ID或者访问层面存放在有DMA能力的外围单元24之内,而不存放在配置存储器28之内。在稍后的进程中,有DMA能力的外围单元24的各自的存储器访问于是可以被配备有相应的ID或者访问层面。ID或者访问层面取决于:计算核心23、24的哪个VMM/VM/SWE已经调整了各自的传递(Transfer)。借助于ID或者访问层面,有DMA能力的外围单元24的传递可以借助于存储器保护单元29g并且这里又借助于配置存储器28的地址数据被检验有效性。

根据有效的软件10的实施级别,可能允许或者禁止进行实施的主计算核心23对存储器保护单元29l、29g的配置的访问。

存储器保护单元29l、29g可能按照以下的选项(显式(explizit)和/或隐式(implizit)/自动地基于SW ID或者特权级别)加载地址表:

尤其当有关的存储器保护单元29l、29g是“平的(flach)”并且仅仅在VM之间进行区分时:软件10可以在存储器保护单元29l、29g处显式地调整用于VM的地址表的开始。为此,在存储器保护单元29l、29g的存储区之内经由索引或者经由地址直接地或者间接地经由偏移(Offset)指向第一和最后的项。

尤其当有关的存储器保护单元29l、29g是分等级的并且在VM和SWE之间进行区分时:那么软件10可以直接地或者间接地经由偏移、经由索引或者经由地址指向相关的SWE的项。

于是可以由存放在有关的存储器保护单元29l、29g的配置存储器28或者硬件寄存器中的所述信息导出对于各自所实施的VM或者SWE许可的地址空间中的进入(Einsprung)。

按照可选的安全特征(safety feature)规定,在起始阶段(start-up phase)中写用于存储器保护单元29l、29g的所有可能的配置,以及于是在运行中禁止其它的变化可能性。存储器保护单元29l、29g于是具有配置模式,并且随后自给自足地在没有其它相互作用的情况下运行。

优选地,在一个VM之内的SWE的数量不是确定的,而是可以灵活地选择。在一种相应的实施方式中,通过有限制的数量的硬件比较器,也可以限制同时可检查的地址范围的最大数量。

在考虑等级的实施方式中,存储器保护单元29l、29g保证:具有一个实施级别的软件10不修改或者读取具有相同的或者更有特权的实施级别的分开的软件10的配置。VMM、不同的VM和SWE的彼此间经配置的地址范围因此在一定程度上是不可见的。在该情况下,对所有下级软件单元10的地址范围的完全访问应当被让给上级软件单元10,尤其是对VM12和SWE13的完全访问被让给VMM 14以及对SWE 13的完全访问被让给VM 12(VMs auf SWEs 13))。

通过使用两组或更多组硬件寄存器(对应于由现有技术已知的影子寄存器(Schattenregistern)或者影子集(Schatten-Set)),硬件寄存器的转换可以被缓冲并且因此再次更迅速地进行,其中所述硬件寄存器能够显式地通过软件10而或者通过硬件11的预测逻辑启发式地被预加载(prefetching(预取))。

当配置存储器28不够用于全部的VM和SWE时,配置也可以被存放在计算核心23的本地存储器25中或者全局存储区22a之内,并且根据需求在所述存储器与连接到存储器保护单元29l、29g上的配置存储器28之间来回被复制。为了对全局存储区22a进行访问,要么计算核心23、24要么DMA控制器可以被使用,而或者存储器保护单元29l、29g可以在存在相应的访问逻辑的情况下借助于总线21直接地访问所述存储器22a。

如果考虑等级,那么在配置等级层面时,应该在较深的等级层面中可以确定最大数量的项。例如,SWE 13的实际数量在一个VM 12之内应当可以在运行时间自由地被调整。这也可以动态地、必要时以由硬件11的受限制的资源覆盖(gedeckelt)的方式进行。

图3图解用于使用本发明的一种实施方式的示例。在此,初始化构成第一步骤,而所述初始化可以在启动时、而也可以动态地在运行时间进行。在该步骤中,计算核心23将一个或多个地址范围发送给存储器保护单元29g。存储器保护单元29g通过接口29e将所述地址范围存储在所连接的配置存储器28中。

在运行期间激活构成应用的第二步骤。计算核心23在该步骤中将要激活的地址范围显式地或者隐式地通知给存储器保护单元29g。所述通知可以借助于索引、软件ID、特权级别或者到配置存储器28上的指针进行,并且包括一个或多个地址范围。当旧的地址范围不再是有效的时,存储器保护单元29g可以(通过计算核心23激活地或者独立自主地)舍弃所述旧的地址范围的一部分,或者当旧的地址范围继续保持有效时,存储器保护单元29g可以存储所述旧的地址范围的一部分。存储器保护单元29g从现在开始将新的有效的地址范围从配置存储器28加载到本地硬件寄存器中。

在第三步骤中,存储器保护单元29g转入正常运行。在此,计算核心23通过定址访问存储区,并且存储器保护单元29g对由计算核心23使用的地址检查许可性。在许可性(Zulässigkeit)情况下,访问被转发给总线21,否则被封锁。

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