CN107017014B - 用于低能量mcu的动态集装箱化***存储器保护 - Google Patents

用于低能量mcu的动态集装箱化***存储器保护 Download PDF

Info

Publication number
CN107017014B
CN107017014B CN201610911265.6A CN201610911265A CN107017014B CN 107017014 B CN107017014 B CN 107017014B CN 201610911265 A CN201610911265 A CN 201610911265A CN 107017014 B CN107017014 B CN 107017014B
Authority
CN
China
Prior art keywords
memory
cpu
memory access
hardware
access control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610911265.6A
Other languages
English (en)
Other versions
CN107017014A (zh
Inventor
S·艾哈迈德
T·大卫
M·格兰内伊思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Laboratories Inc
Original Assignee
Silicon Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Laboratories Inc filed Critical Silicon Laboratories Inc
Publication of CN107017014A publication Critical patent/CN107017014A/zh
Application granted granted Critical
Publication of CN107017014B publication Critical patent/CN107017014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了用于低能量MCU的动态集装箱化***存储器保护。处理器,例如低成本微控制器单元,使用DMA控制器以促进独立于CPU的硬件子***之间的直接存储器事务。为了使那些事务被安全地执行,将网关提供至DMA控制器和***桥。可访问多个访问策略的网关根据硬件上下文和/或子上下文(例如发起事务的总线主设备和/或与事务相关联的DMA通道)在那些策略之间切换。网关可用于独立于CPU实行那些策略。在各种实现中,将网关提供给DMA控制器、***桥和/或各个***设备。处理器能够在没有恒定的CPU介入时支持涉及其***设备的安全的、完全集装箱化的操作。

Description

用于低能量MCU的动态集装箱化***存储器保护
发明领域
本发明涉及通常在微处理器中且特别在低功率微控制器单元中的存储器保护的领域。
背景
本背景的呈现用于总地描述本公开的上下文的目的。就本背景包括目前已知的要素和不作为递交时的现有技术的其他要素的工作而言,本描述既不明确地也不隐含地被承认为针对本公开的现有技术。
许多处理器类型,包括许多微控制器单元(MCU),包含能够独立于处理器进行存储器访问的总线主设备/加速器。一个示例是直接存储器访问(DMA)控制器。DMA控制器是使其他硬件子***(例如传感器(其频繁地被MCU使用))不被CPU干预而访问***存储器的被共享的***资源。实际上,当CPU休眠时,DMA能够促进传感器和***存储器之间的存储器事务。这有利地使MCU在收集传感器数据时消耗非常低量的功率。这对于由电池电源或其他低能量电源供电的MCU特别重要,例如增长的大量的物联网(IOT)装置。
然而,DMA控制器异步于CPU促进存储器事务的能力在CPU睡眠时提出了安全挑战。当CPU不可用于实行访问控制策略(或访问掩码)时,存在通过传感器的安全漏洞的可能。因为所有通道对于可用的DMA存储器具有完整的视图,依照它们对于***存储器的视图以集装箱化各个DMA通道是不可能的。而且,攻击者可以通过泄露的传感器输入用恒定的请求泛洪***总线来发动低级的拒绝服务攻击。这足以压制***总线的仲裁和调度机制以阻止处理器服务或控制另一***设备,例如机械致动器。或者这可以阻碍其他关键存储器事务(例如摄像机馈送)的发生。
一种可能的解决方案是在每次***设备或其他硬件子***尝试使用DMA时中断CPU。一旦被唤醒,CPU能够阻止缺少合适的安全属性的任何存储器访问请求。但是这击败了上文讨论的优势——使CPU能在处理器收集传感器数据时睡眠。因为DMA操作在被执行,CPU不能保持睡眠。另一种可能的解决方案将要求RTOS清除DMA操作编程。这对于使用复杂的编程模型(例如存储在***存储器中的命令连接列表)的DMA操作成为一个挑战。前述解决方案也将要求大的软件开销/介入而且极大地限制处理器的功率效率、性能和功能。
发明概述
本概述被提供以介绍在以下的具体实施方式和附图中被进一步描述的主题。因此,本概述不应该被认为是描述实质特征,也不应该被用于限制所述主题的范围。
描述了处理器以及使用该处理器的方法的实施例。各种硬件子***作出或转发存储器访问请求,而一个或多个非CPU存储器可寻址保护单元(PU)在专用于硬件子***作出或转发那个请求的访问保护策略的基础上自主地允许或阻止那些请求。
附图说明
参考以下描述以及附图将能更好地理解本发明的这些和其他目标、特征以及优势,在附图中:
图1是示出了处理器、总线主设备、***设备以及寄存器保护单元的集合的框图;
图2是示出了用于中央处理单元保护单元(CPUPU)的访问控制策略结构的框图;
图3是示出了用于总线主设备保护单元(BMPU)的访问控制策略结构的框图;
图4是示出了用于***保护单元(PPU)的访问控制策略结构的框图;
图5是示出了PPU控制结构索引拓扑的框图;
图6是示出了用于寄存器保护单元(RPU)的访问控制策略结构的框图;
图7是具体描述了存储器访问请求的组成部分的框图;
图8是具体描述根据本发明的一个实施例的硬件上下文的方面的框图;
图9是示出了安全属性结构的一个实施例的框图;
图10是示出了用于从CPU线程到主存储器的访问请求的守门过程的流程图;
图11是示出了用于从CPU线程或直接存储器访问(DMA)通道到***设备的访问请求的守门过程的流程图;
图12是示出了从PPU的视角看来用于到***设备的访问请求的守门过程的流程图;
图13是示出了从BMPU的视角看来用于到***设备的访问请求的守门过程的流程图;
图14是示出了执行状态、DMA状态和PPU访问上下文的相互作用的时序图。
具体实施方式
以下描述本发明的示例性的和说明性的实施例。为了清楚,并非在本说明书中描述实际实现的所有特征,因为本领域技术人员将理解,在任何这些实际实施例的开发中,为了实现特定的目标而作出了多个实现的特定的决定,例如遵循***相关和商业相关的约束,这些约束随实现的不同而变化。此外,应当理解,此类开发努力可能是复杂且费时的,但对于获益于本公开的本领域技术人员而言仍然是常规任务。对于优选实施例的各种修改对于本领域技术人员将是显而易见的,而且本文所定义的一般原理可被应用到其它实施例。因此,本发明不旨在受限于本文中示出和描述的特定实施例,而应被给予与本文中公开的原理和新颖特征一致的最广范围。
下文中所描述的实施例在应用但不被限制到较低能量微控制器单元(MCU)时具有特定值。安全(受保护的)MCU应用使用负责管理***中的各种执行上下文的管理程序或实时操作***(RTOS)。正因如此,RTOS本身形成了在活动时通常可以访问所有***存储器的安全任务上下文。RTOS控制在各种非安全用户任务上下文之间的处理器执行的切换。在一个实现中,这些用户任务的每一个可以访问***存储器的独立子集。这使***关键存储器(例如RTOS)免于受到每个用户任务的影响,也使每个用户任务免于受到其他用户任务(集装箱化)的影响。在具有两个特权/安全水平的***中,通过提高保护单元(PU)安全要求到特定的存储器范围,RTOS屏蔽到给定的活动用户任务的访问。这个视角随着每一个和每一次任务上下文切换而变化。
图1示出了根据本发明的处理器100的一个实施例。处理器100包括中央处理单元(CPU)102、***总线104以及通过总线互连108连接到总线104的多个总线主设备106和总线从设备(也被称为总线矩阵)。***总线104将CPU 102连接至***存储器112。***总线104配置为在处理器100的各种硬件子***之间传递存储器访问请求160(图6)。在一个实现中,总线包括携载硬件上下文和子上下文标识符以标识形成存储器访问请求160的特定硬件子***或资源的信号线。
总线主设备106是能够启动总线104上的事务的装置。示例包括CPU102和直接存储器访问(DMA)控制器110。总线从设备是接收来自于总线104的通信和命令但不启动总线104上的事务的设备。总线从设备的示例是诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)的***存储器(SMEM)112以及控制过程、接收输入或产生输出的存储器映射的***设备114。对于通过***总线116连接到耦合至总线互连108的***总线桥118的***设备114,***总线桥118用作总线从设备。
如上所述,DMA控制器110是总线主设备的一种类型。DMA是计算机***的一个长期存在的特点,允许存储器事务在没有CPU的辅助的情况下在某些硬件子***(尤其是***设备)和计算机的主***存储器(例如随机存取存储器(RAM))之间发生。缺少DMA的可用性,存储器转移通常要求CPU执行一个完整的读或写输入/输出周期。在个人计算机中,声卡、视频卡以及驱动器频繁地使用DMA。在微控制器(MCU)中,传感器和控制***设备频繁地使用DMA。
DMA控制器110通常配备有多个通道120以服务多个硬件子***的DMA需求。每个通道120是对于使用通道120的硬件子***的操作的可编程配置或上下文。多个通道120的可用性使CPU 102能够预编程多个配置。DMA控制器110能够通过仲裁和调度的机制和算法有效地从一个通道120切换至另一个。
作为DMA控制器110的替代,DMA可以通过总线主控来实施,在总线主控中总线主设备106而不是CPU 102启动事务。处理器100配备有总线仲裁机制以防止多个总线主设备106同时尝试驱动总线104。
也可能有其他非DMA总线主设备106,一些具有其自己的子上下文而不是DMA通道120。例如,在一个实现中,集成图形处理器具有多个内部上下文,包括专用于图形指令的一个和用于渲染纹理的另一个。
根据本发明的一个实施例,各种硬件子***配备有保护单元(PU)。PU本身是硬件子***,其通过实行一组用于经由***存储器地址(例如映射至***存储器的***设备)被访问的***存储器和/或硬件子***的访问控制策略来充当守门者。如在下文中进一步详细描述的,每个访问控制策略(其也能够被称为访问掩码)的范围被限定至特定的软件或硬件上下文。在一个实施例中,处理器100使用PU的多层***以实行被不同程度的粒度表征的访问控制策略。
PU定义了对于访问存储器中的各种界定的区域的要求。PU根据当前活动处理器的执行线程/任务(即,上下文)的安全属性实施对这些存储器区域的访问限制。为了促进多个非安全上下文的执行,为每一个上下文切换重新配置PU对于存储器的视角。这可以被视为软件控制的上下文切换。
一些处理器类型,例如微控制器单元(MCU),包含可以独立于处理器进行存储器访问的总线主设备/加速器。一个示例是直接存储器访问(DMA)控制器。DMA控制器是可在RTOS和各种用户任务之间多用的共享***资源。各种DMA通道可与不同的软件任务上下文相关联。DMA通道的配置通常在RTOS上下文期间或在特定的用户任务上下文期间发生。然而,一旦可操作,DMA通道在与这些SW上下文异步的时刻变成活动的,且这在实行用于DMA访问的访问控制策略中产生了挑战。
在高水平层,CPU 102配备有PU,在本文中被称为CPUPU 150,一些技术人员愿意称该PU为存储器保护单元。CPUPU 150定义了对于访问存储器中的各种界定的区域的要求。CPUPU 150根据当前活动的处理器执行线程/任务(即,上下文)的安全属性实施对这些存储器区域的访问限制。为了促进多个非安全上下文的执行,为每一个上下文切换重新配置CPUPU150对于存储器的视角。这可以被视为软件控制的上下文切换。
在中间水平层,大部分***总线主设备106,包括DMA控制器110,但不包括CPU102,配备有PU,在本文中被称为总线主设备保护单元(BMPU)152。BMPU152被提供给能够独立于CPU102生成存储器访问的硬件模块,例如二级处理器。一些总线主设备106,例如在启动期间(在处理器100根据处理器的指令集架构开始执行指令之前)初始化***的总线主设备,可能不会配备有BMPU152,因为假设它们不被预期可用于用户软件的直接使用。
在低水平层,***总线桥118配备有PU,在本文中被称为***保护单元(PPU)154。最后,在更低水平层,要求在安全/非安全和/或有特权/无特权访问之间的内部界限的各个***设备156可配备有在本文中被称为寄存器保护单元158的PU。
对于被引导朝向一些被作为目标的资源(例如***设备)的存储器访问请求160,CPUPU和BMPU应用被粗糙水平的粒度表征的访问控制策略。CPUPU 150或BMPU 152通过其粗糙的过滤器允许的存储器访问请求160然后被一个或多个下游PU重新评估,该下游PU的访问控制策略被相对更精细水平的粒度表征。例如,从总线主设备106装置或CPU线程到配备有RPU 158的***设备114的存储器访问请求160将受制于初始来自于CPUPU 150或BMPU152、随后来自于PPU 154且再次来自于RPU158的访问控制策略管理。
在一个实现中,每个PU被合并至其相应的硬件子***内。根据PU的守门功能,如果存储器访问请求160的源和安全属性不满足对于被作为目标的存储器区域的PU的访问控制策略的要求,则每个PU阻止存储器访问请求160到达该PU相应的硬件子***。
而且在一个实现中,RTOS编程安全管理单元(SMU)162,即容纳所有PU的而不是CPUPU 150的所有配置寄存器的配置***设备。SMU 162连接到将PU配置分配给每个BMPU152、一个或多个PPU 154以及给任何RPU 158的配置/状态线164。配置/状态线164还携载状态信息,包括从PU返回至SMU 162的任何错误信息。
图2示出了用于CPUPU 102的访问控制策略结构166。根据一个实现,CPU访问控制策略结构166包括多个访问控制策略0..q168。分离的以及不同的访问控制策略168被提供给每个线程或任务,每个访问控制策略168被关联或被标记线程ID或其他软件上下文标识符170。随着从在前的线程到随后的线程的每个任务切换,实时操作***(RTOS)使得CPU102将随后的线程的CPU线程ID的索引编入至CPU访问控制策略结构166内,以选择或检索对应的访问控制策略168,访问控制策略168然后被加载至CPUPU 150内。
每个访问控制策略168提供或关联标识可寻址***存储器的区域的多个存储器区域0..n180(可寻址***存储器可包括映射至***存储器的***设备)以及与每个被标识的存储器区域相关联的安全属性182。安全属性182可包括访问是否被限定于有特权的和/或安全的线程、访问是否是只读的以及被处理器的和操作***的架构支持的任何其他访问限制。“安全属性”可包含与用于控制到被作为目标的存储器区域180的访问的存储器访问请求160相关联的任何属性。
在一些实施例中,为CPU 102提供多个CPUPU,每个核至少有一个,或者在超线程的CPU中,每个虚拟核有一个CPUPU。可提供甚至更多的CPUPU以作为基于硬件的虚拟化支持的一部分。
图3是示出了用于BMPU 152的访问控制策略结构184的框图,BMPU152用于支持硬件子上下文186的总线主设备106(例如DMA控制器110)。BMPU 152被连接、耦合、分配和/或合并至DMA 110或其他总线主设备106之中。
BMPU 152提供了多个访问控制策略0..P 188给与其相关联的总线主设备106或110的所有硬件子上下文186。在一个实现中,硬件子上下文186被携载在总线信号线上的信号标识,该信号在一个非常特定的实现中被称为MASTERSID 190信号。
有利地,对于硬件子上下文186(例如DMA通道120)的精细粒度的支持使得处理器100盒状放射或集装箱化DMA控制器110的每个通道120,从而使用通道1的硬件子***,例如,不能介入被通道0控制的存储器或***设备。以此方式,BMPU 152支持完全集装箱化的DMA通道操作。
如CPUPU的访问控制策略结构166,BMPU的访问控制策略结构184提供或关联标识可寻址***存储器(其可包括映射至***存储器的***设备)的区域的多个存储器区域0..n180以及与此相关联的安全属性182。但与CPUPU的访问控制策略结构166不同的是,BMPU的访问控制策略结构184不按CPU线程区分访问控制策略188。相反,BMPU的访问控制策略结构184按硬件子上下文186区分策略188。有利地,按DMA通道120来实行策略,用于DMA控制器110的BMPU 152通过给予每个通道120***存储器112的限制的视角用于集装箱化DMA操作。BMPU 152可被编程,例如,防止结合至通道1的***设备114访问分配到结合至通道0的另一个***设备114的存储器。
在服务***设备114或DMA控制器110的BMPU 152中,对应于***设备114的存储器区域通常配置为将对应的存储器访问请求160传递至合适的PPU 154。然而,在一些实现中,BMPU 152可具有通道120,通道120完全阻止硬件子***访问***区域,从而始终防止存储器访问请求160通过该通道120到达***设备114。
对应于不被专用的PU保护的***存储器112的存储器区域配置有适于硬件子上下文186的被精细地调节的安全限制。当DMA控制器110被呈现有存储器请求事务160时,DMA控制器110为BMPU 152提供其HW子上下文186,HW子上下文186是DMA通道编号120,且BMPU(实时地)选择合适的一组存储器区域信息,因此BMPU能够为给定的DMA通道120实施特定的存储器访问权限。
BMPU 152将总线主设备106的HW子上下文186的索引编入至BMPU访问控制策略结构184内以为该总线主设备106标识访问控制策略188。当BMPU 152处理存储器访问请求160时,BMPU 152将访问请求160的被作为目标的存储器位置192和安全属性194与访问控制策略188进行比较,并且选择性地允许或阻止请求160。BMPU 152包含用于该主设备106的所有子上下文的访问控制策略188,访问控制策略188通过硬件上下文信号196被标识和区分(图7)。一旦BMPU 152被配置,BMPU 152就自主地实行其访问控制策略198。这与CPUPU 150不同,CPUPU 150在每次CPU切换执行至随后的线程时被重新编程。BMPU 152通过将区域属性与涉及诸如安全(ARM HNONSEC信号)或特权水平(ARM HPROT信号)的那些属性的总线事务信号进行比较以实现访问控制。
用于DMA控制器110的BMPU 152也设置穿过DMA通道120之一的存储器访问请求160的安全属性。在一个示例中,BMPU 152配置为标志整个一条通道120为总是有特权的。此外,该通道120结合至RTOS。在RTOS发出存储器访问请求160至DMA控制器110之后,BMPU 152断言在***总线104上的特权和/或安全线。然后,随着存储器访问请求160成功穿过PPU 154和/或RPU 158,BMPU 152具有本质上的全访问通过。
图4是示出了用于PPU154的访问控制策略结构200的框图。在描述该结构200之前,应当注意PPU154可能有不同的类型。例如,PPU154的一种类型服务多个相对低速的***设备,例如在基于ARM的实现中的基于高级***总线(APB)选择的***设备。PPU 154的另一种类型服务单个高速的***设备,例如在基于ARM的实现中的高级高速总线(AHB)从属***设备。这些不同可能导致不同的访问控制策略结构200将是显而易见的。
关注图4的实施例,PPU访问控制策略结构200被连接、耦合、分配和/或集成至***总线桥118或***设备156。根据多个硬件上下文0..M196,PPU访问控制策略结构200提供或被组织与每个硬件上下文196相关联的一个或多个硬件子上下文0..P186、与每个硬件子上下文186相关联的一个或多个存储器区域0..n以及与每个存储器区域0..n180相关联的一组安全属性182。例如,硬件上下文196的一个可以是特定的CPU核或虚拟核。另一硬件上下文196可以是DMA控制器110,其具有多个通道120,每个通道120构成一个硬件子上下文186。PPU 154的范围延伸至可访问由PPU 154服务的一组***设备114的所有总线主设备106。
当被呈现有存储器访问请求160时,PPU 154使用总线主设备(例如DMA控制器110)和分配至DMA通道的***设备的HW上下文和HW子上下文将索引编入至PPU访问控制策略结构内。PPU 154然后将访问请求160的被作为目标的存储器位置192以及安全属性194与访问策略200进行比较并且选择性地允许或阻止请求160。
图5拓扑地示出了该索引方法208的一个实现。通过考虑***总线桥118通常服务多个***设备0..R 114的事实,图5向图4添加了更多一层复杂性。因此,PPU访问控制策略结构200可以被表征为包括***设备区分的访问控制策略0..R206的子上下文区分的组0..P204(在下文中“控制组”)的多个硬件上下文区分的群0..M202(在下文中“控制群”)。从另一个角度看,对***设备114的访问被从合适的控制组204选择的访问控制策略206限制,合适的控制组204是从合适的控制群202选择的,确保被选择的访问控制策略206对应于合适的***设备114、合适的硬件子上下文186以及合适的硬件上下文196。
根据图5的实现,PPU154通过使用第一水平选择逻辑210(例如一个复用器或一群复用器)为***设备选择合适的访问控制策略206以从每个控制群202中选择已经为给定的MASTERSID标识符190创建的一组访问控制策略204。每个被选择的组212(或用于每个被选择的组212的地址)然后被馈送至第二水平选择逻辑214内,第二水平选择逻辑214使用MASTERID标识符216以选择单独的一组访问控制策略218(或其地址)。单个被选择的组218包括用于被***总线桥118服务的每个***设备114的独立的策略。最后,第三水平选择逻辑220使用***数字222(携载在***选择线上)以从单独的被选择的组218中选择合适的访问控制策略206(或其地址)。PPU 154然后应用被选择的访问控制策略206以阻止或允许存储器访问请求160。
将理解的是,存在许多等效的逻辑形式。例如,***数字222可以作为第一水平选择逻辑210被使用,且硬件子上下文186可以作为第三水平选择逻辑220被使用。在一个实施例中,选择逻辑的每一层被同时应用,与行、列以及表格属性可以在数据库中被使用以选择特定的记录的方式相似。
图6示出了用于寄存器保护单元(RPU)的访问控制策略结构。RPU的访问控制策略结构224与PPU的访问控制策略结构200相似,除了寄存器区域226代替了PPU的存储器区域180。在一些实施例中,RPU 158也在位水平的粒度下提供保护。一个具体的应用是用在控制通用IO(GPIO)的***设备。通常,这种***设备将具有32位寄存器,且每一个这种寄存器可涉及一些数量的IO引脚。RPU然后定义为给定的HW子上下文集装箱化各个引脚的多个访问控制策略。
图7示出了存储器访问请求160的组成部分,包括硬件上下文196字段或一组总线信号、安全属性194字段或一组总线信号以及目标存储器位置192字段或一组总线信号。在一个实施例中,一个或多个存储器访问请求组成部分196、194、192被密封于在总线104上发送的数据分组内。在另一实施例中,一个或多个存储器访问请求160组成部分196、194和192被携载在***总线104上且穿过总线互连108。
图8是具体描述根据本发明的一个实施例的硬件上下文196的方面的框图。至少,硬件上下文196涉及启动了存储器访问请求160的主设备106(例如,CPU 102、DMA控制器110等等)。根据一个实现,硬件上下文196包括主设备ID或标签216。
主设备ID/标签216可被表征为只提供硬件上下文196的外层。在该表征下,硬件上下文196也将包括内层或硬件子上下文186。根据一个实现,该内层使用子上下文标识符190被标识,例如DMA通道120。
图9示出了安全属性结构194的一个实施例,安全属性结构194包括安全字段228、有特权字段230、非安全但只读字段232以及无特权但只读字段232。当然,许多不同的安全结构和架构是可能的。如前面提到的,安全属性194可以是用于控制对被作为目标的存储器区域180的访问的与存储器访问请求160相关联的任何属性。
图10是用于处理从CPU线程到主存储器112的访问请求160的守门程序的一个实施例的流程图250。在框252中,CPU 102中的核或虚拟核从第一线程切换至第二线程。该切换改变了软件上下文。在框253中,响应于软件上下文切换,RTOS标识或选择合适于该特定线程的访问控制策略166,且重新编程CPUPU 150以使用CPUPU 150。当第二线程在运行的一些时间(框254),第二线程请求到主存储器112的存储器访问。在框256中,且在任何总线仲裁启动之前,CPUPU 150实行访问控制策略166以允许或阻止存储器访问请求160。如果CPUPU150阻止请求160,则在框258中,CPUPU 150报告错误,错误之后被RTOS处理。如果CPUPU 150允许请求160,则在框260中,CPU 102为到***总线104的访问仲裁且发出到总线104的存储器访问请求160。主存储器112不具有其自己的专用PU以用于对存储器访问请求160上应用第二水平的守门。在框262中,访问存储器112。
图11是用于处理从CPU线程或直接存储器访问(DMA)通道120到***设备114的访问请求160的守门程序的一个实施例的流程图300。在框302中,CPU线程请求到DMA连接的***设备的存储器访问。流程前进至框304。在总线仲裁启动之前,CPUPU 150实行合适于发出了请求160的线程的访问控制策略168以允许或阻止请求160。根据框306,如果CPUPU150阻止了该请求,则在框308中CPUPU 150报告错误。如果CPUPU 150允许了该请求,则流程前进至框310。
在描述框310-312之前,注意来自BMPU 152的独立的存储器访问请求160。应当注意的是,流程图300不旨在显示框302和314中的动作均是相关的或均需要发生。使用一个流程图300以示出来源于CPU 102或另一总线主设备106的存储器访问请求160的处理旨在以简明的方式示出相似的事件链如何跟随两种类型的请求160。
在框314中,BMPU 152接收来自CPU 102或其他硬件子***的存储器访问请求160。BMPU 152将硬件子上下文186的索引(例如DMA通道标识符190)编入至BMPU的访问控制策略结构184内以选择或检索合适的访问策略188。不需要索引主设备ID/标签216,因为它隐含地与BMPU152相关联,BMPU 152只存储与它所连接的主设备ID/标签216相关的访问控制策略184。
BMPU 152将安全属性194和被作为目标的存储器位置与存储在访问控制策略188中的访问策略配置信息进行比较以确定是否允许或阻止请求160。如果PPU 154将是允许还是阻止请求160的最终仲裁者,则对于特定的硬件子上下文186,将关于***设备114的存储器区域标记为未检查的(即,无施加的安全限制)。因此,访问请求160通过。
根据框316,如果BMPU 152阻止了该请求,则在框308中BMPU 152报告错误。如果BMPU 152允许了该请求,则流程前进至框310。现在转向框310-312,在框310中,相关的总线主设备106或CPU 102仲裁对总线104的访问且分派请求160至***设备114。在框318中,请求160被PPU154获取,PPU 154将硬件上下文196(包括硬件子上下文186,如果有的话)和***编号222的索引编入至PPU 154的访问控制策略结构200内以选择或检索合适的***访问策略206。
值得注意的是,PPU 154不需要能够确定与硬件上下文196相关联的实际的***设备114、CPU核或线程或存储器访问请求160的其他源。例如,处理器100可将与硬件上下文196相关联的二进制值重新分配(绑定)至另一硬件资源。处理器100也可以将***编号222重新分配或绑定至不同的***设备114。PPU 154不知道这样的绑定,而是依赖于硬件上下文196(包括硬件子上下文186,如果有的话)以及***编号222以选择或检索合适的访问控制策略206。另一方面,RTOS追踪硬件上下文196(包括硬件子上下文186,如果有的话)和相关联的硬件资源之间以及***编号222和***设备114之间的关系。
因为PPU 154不知道与CPU硬件上下文196相关联的任何软件线程,每次有软件任务切换时,CPU 102在PPU 154处更新与CPU硬件上下文196相关联的访问控制策略320以匹配该线程。例如,刚好在作为安全实体运行的RTOS线程变得不活动之前,CPU 102更新PPU154和RPU 158的与CPU硬件上下文196相关联的访问控制策略320以反映用于非安全用户线程的期望的访问控制策略。
在框322中,在检索或选择访问控制策略206之后,PPU 154对请求的安全属性194和被作为目标的存储器位置与访问控制策略206中的访问策略配置信息进行比较以确定是否允许或阻止请求160。根据框322,如果PPU 154阻止了请求,则在框308中PPU 154报告错误。如果PPU 154允许了请求,则流程前进至框312,其中满足请求。
图12是示出了从PPU 154或RPU 158的视角来看用于对***设备114的访问请求160的守门过程的流程图350。在框352中,PPU 154或RPU 158接收请求160以读或写一个或多个***设备114寄存器或寄存器位。在框354中,PPU 154(如果PPU 154正在应用守门程序350)使用MASTERID216、MASTERSID 190以及PERIPHERAL_NUM 222标识符以将索引编入至PPU 154的访问控制策略结构200内以选择或检索定义到被作为目标的***设备114的访问权限的合适的访问控制策略320。可替代地,RPU 158(如果RPU 154正在应用守门程序350)使用MASTERID 216以及MASTERSID 190标识符(但没有PERIPHERAL_NUM222,因为***设备的范围是其本身,不是也有其他***设备)以将索引编入至RPU158的访问控制策略结构200内以选择或检索用于该***设备114的合适的访问控制策略320。
在框356中,PPU 154或RPU 158将访问请求160的特征(本文中称为“安全属性”)(例如,安全对非安全、数据对指令、读对写)与由用于被访问请求160作为目标的寄存器或寄存器位的访问控制策略320提供的访问限制进行比较。如果在框358中且基于该比较,允许访问请求160,则在框360中,满足访问请求160。否则,在框308中,PPU 154或RPU 158报告错误。
图13是示出了从BMPU 152的视角看来用于到***设备114的访问请求160的守门过程的流程图400。在框402中,BMPU 152接收访问请求160。在框404中,BMPU152使用MASTERSID190标识符以将索引编入至BMPU152的访问控制策略结构184内以选择或检索访问控制策略188以实施在给定的DMA通道120上。在框406中,BMPU 152将源属性(例如,安全对非安全、数据对指令、读对写)与由用于被访问请求160作为目标的存储器区域的访问控制策略188提供的访问限制进行比较。如果在框408中且基于该比较,允许访问请求160,则在框410中,满足访问请求160。否则,在框308中,PPU 154报告错误。
图14是示出了执行状态、DMA状态和PPU访问上下文的相互作用的时序图412。顶部行示出了时序中的较早点414,在此时CPU 102通过SMU162预编程DMA控制器110和BMPU152。随后,DMA控制器110配置为自主地、独立于CPU 102且没有CPU 102的干预地服务DMA请求。同样地,BMPU 152配置为自主地、独立于CPU 102且没有CPU 102的干预地实行访问控制策略184。可使一些DMA请求优先于其他请求之前的仲裁和调度机制确定在任何给定的时间哪一个DMA通道120是活动的。在被CPU 102预编程后,仲裁和调度机制也自主于CPU 102起作用。
第二行示出了当CPU 102从第一非安全(NS)任务A转变至休眠状态、至安全(S)RTOS活动状态、至第二非安全(NS)任务B时的CPU执行状态416。任务A具有到存储器和***设备的子集的访问权限。任务A还可以访问涉及DMA通道0的DMA配置寄存器。DMA通道0同样地可以访问与任务A相同的存储器和***设备的子集。任务B具有到存储器和***设备的另一子集和到涉及DMA通道1的DMA配置寄存器的访问权限。DMA通道1同样地可以访问与任务B相同的存储器和***设备的子集。RTOS具有到所有存储器、***设备以及所有DMA通道120的DMA配置寄存器的访问权限。任务切换发生的每个时刻418,CPU 102配置SMU 162以使用适于该任务的访问控制策略来更新CPUPU 150、任何PPU 154以及任何RPU 158。
第三行通过示出独立于CPU执行状态416的DMA通道状态450示出了CPU 102和DMA控制器110的异步操作。例如,当任务A活动时、当CPU 102睡眠时以及当RTOS线程活动时,DMA通道1被示为活动。当CPU 102睡眠时通道1的活动状态示出了DMA的硬件上下文196怎样能在即使当CPU102处于低功率不活动状态时保持活动。
DMA通道切换452至通道0(被如上讨论的仲裁和调度机制驱动)被示为在与CPU执行状态450切换至任务B相同的时刻发生。另一DMA通道切换454发生在任务B继续运行时,该另一DMA通道切换454也被如上讨论的仲裁和调度机制驱动且这次返回至通道1。这些切换自主于CPU102且根据DMA控制器110的仲裁和调度机制发生。
第四行(本身是一组行)是配置为不同通道120可访问的***设备456的示例性图解。在该特定的图解中,当DMA通道1活动时,***设备P3、P5和P8被示为可访问,而当DMA通道0活动时,只有***设备P0和P8被示为可访问。第四行示出了这组可访问的***设备456怎样随着每个DMA通道切换而改变。
第五行根据硬件上下文196示出了PPU/RPU访问上下文458,包括硬件子上下文186,以MASTERID 216“点”MASTERSID 190的形式被示出。该行示出了在存储器映射的***设备114处的访问上下文458能够在任意时刻异步于处理器100在CPU 102和各种DMA通道120之间切换。此外,DMA控制器110可要求访问与任务A相同的***设备114。而且,CPU任务,例如任务A,能够提前调度其自己的DMA操作,使得在任务A不再运行之后进行DMA操作。尤其,PPU 154或RPU 158只知道MASTERID 216和MASTERSID 190的数值编码,不知道哪一个任务或通道与那些标识符相关联。
第六行通过与那些硬件上下文196相关联的任务或特定的通道示出了PPU/RPU的访问上下文460。因为RTOS完全控制哪一个用户任务上下文是活动的,并且能够相应地为每个切换更新处理器100和***PU,在任何给定的PU处,以及RTOS选择将不同的软件上下文绑定至该资源的时刻,RTOS可只要求单个HW上下文资源196。例如,在该行的起始处,CPU任务A与CPU.0硬件上下文标识符相关联。之后,当CPU 102睡眠时,CPU任务A仍然与CPU.0硬件上下文标识符相关联,即使任务A已经完成。如上文指示的在对第五行的讨论中,CPU任务A有可能已经通过DMA操作调用了之后呈现的访问请求。这进一步示出了DMA连接的***设备114的访问上下文怎样可以与CPU任务状态异步。当RTOS变成活动的时,RTOS变成与CPU.0硬件上下文标识符相关联。之后,CPU任务B变成与CPU.0硬件上下文标识符相关联。
尽管图14示出了用于单核、单线程处理器100的简化的时间线,本发明可适用于包含更复杂的架构的实施例。在多核或多线程的处理器100中,每个核或虚拟核具有其自己的任务上下文。随着核和其他硬件子***使用***设备114调用事务,那些事务被汇集在***总线116上。当事务到达***总线116时,它们被串行化,正如它们在单核、单线程处理器100时那样(除非***总线116提供多端口存储器)。即使是多端口,每个端口每次只携带一个事务,因此在简单的和复杂的架构中,可提供仲裁机制以按顺序呈现这些事务。有利地,该串行化过程使得PPU 154切换出任何给定的核所具有的不论什么访问策略,且每个核随着PPU154切换也能重新编程其自己的软上下文或任务上下文。在具有多个***子***的处理器100中,每个子***具有其自己的PPU 154,对PPU 154的访问能并行发生。在这种情形下,每个***子***相互独立于其他***子***使事务串行化;且每个PPU 154相互独立于其他PPU 154为其***子***实现访问控制。
需要注意的是,尽管***设备114通常配置为总线从设备,一些***设备114配置为总线主设备106,且一些类型的***设备114是具有从属端口的总线主设备106。本发明适用于所有这些配置。在***设备114配置为总线主设备106但具有从属端口的情况下,BMPU152控制对由***设备114生成的存储器访问请求160的访问,且在***设备的从属端口处的PPU154管辖尝试访问***设备114的存储器访问请求160。
上文公开的特定的实施例仅是示例性的,且本领域技术人员将理解其能够容易地使用公开的概念和具体的实施例作为基础以用于设计或修改其他结构以实施与本发明相同的目的,且可在本申请中作出各种改变、替换和修改而不背离由所附的权利要求书中给出的本发明的范围。

Claims (13)

1.一种处理器,包括:
中央处理单元(CPU);
***存储器,在所述CPU的外部;
除所述CPU之外的能够分派存储器访问请求的多个硬件子***;
***总线,将所述CPU连接至所述***存储器,所述***总线配置为在所述处理器的各种硬件子***之间传递存储器访问请求,其中存储器访问请求包括或伴随标识分派了所述存储器访问请求的硬件子***的硬件上下文标识符;以及
可编程存储器可寻址保护单元(PU),在所述CPU的外部,且配置为独立于所述CPU来实行用于存储器访问请求的多个硬件上下文和/或子上下文特定访问控制策略;
其中所述PU配置为使用所述硬件上下文和/或子上下文标识符来选择合适的访问控制策略,以根据所述被选择的访问控制策略来允许或阻止存储器访问请求;
所述PU专用于DMA控制器,所述PU配置为对于不同DMA通道实行不同访问控制策略,且所述PU配置为使用DMA通道编号以选择对应于所述DMA通道编号的所述访问控制策略。
2.如权利要求1所述的处理器,其特征在于,所述PU用于当所述CPU睡眠且未唤醒时,实行用于存储器访问请求的多个硬件上下文和/或子上下文特定访问控制策略。
3.如权利要求1所述的处理器,其特征在于:
所述访问控制策略为一个或多个存储器区域定义访问标准;
所述存储器访问请求标识目标存储器位置;以及
所述PU配置为将所述目标存储器位置与所述存储器区域的对应的一个进行比较以确定是否允许或阻止所述存储器访问请求。
4.如权利要求1所述的处理器,其特征在于,所述存储器访问请求包括或在所述***总线上伴随定义所述存储器访问请求的安全水平和/或特权水平的一个或多个安全属性。
5.如权利要求1所述的处理器,进一步包括所述***总线中的信号线,配置为携载所述硬件上下文和/或子上下文标识符。
6.如权利要求1所述的处理器,其特征在于,所述PU专用于***总线桥。
7.一种如权利要求1所述的处理器,包括:
中央处理单元(CPU);
***存储器,在所述CPU的外部;
除所述CPU之外的能够分派存储器访问请求的多个硬件子***;
***总线,将所述CPU连接至所述***存储器,所述***总线配置为在所述处理器的各种硬件子***之间传递存储器访问请求,其中存储器访问请求包括或伴随标识分派了所述存储器访问请求的硬件子***的硬件上下文标识符;以及
第一和第二可编程存储器可寻址保护单元(PU),每个PU在所述CPU的外部,且配置为当所述CPU睡眠且不唤醒所述CPU时独立于所述CPU来实行用于存储器访问请求的多个硬件相关的访问控制策略;
其中:
所述第一PU专用于分派到***存储器和存储器映射的***设备的存储器访问请求的***总线主设备;以及
所述第二PU专用于接收存储器访问请求的一个或多个***设备;
所述第一和第二PU分别且相互相关地将相对粗糙和精细粒度的访问控制策略应用于被引导至所述一个或多个***设备的存储器访问请求;以及
其中所述PU配置为使用所述硬件上下文和/或子上下文标识符来选择合适的访问控制策略,以根据所述被选择的访问控制策略来允许或阻止存储器访问请求。
8.一种安全地处理处理器中的存储器访问请求的方法,所述处理器具有中央处理单元(CPU)、在所述CPU外部的***存储器、***总线、除所述CPU之外的能够分派存储器访问请求的多个硬件子***、以及可编程存储器可寻址保护单元(PU),所述方法包括:
所述硬件子***分派存储器访问请求到所述***总线上,其中存储器访问请求包括或伴随标识哪一个单元正在发起所述存储器访问请求的硬件上下文标识符;以及
所述PU使用所述硬件上下文标识符以选择硬件上下文和/或子上下文特定的访问控制策略;以及
所述PU根据所选择的访问控制策略允许或阻止存储器访问请求;并且
其中,所述PU专用于DMA控制器,且所述PU对于不同的DMA通道实行不同的访问控制策略,所述方法进一步包括所述PU使用DMA通道编号以选择对应于所述DMA通道编号的访问控制策略。
9.如权利要求8所述的方法,进一步包括当所述CPU睡眠及未唤醒时,实行用于存储器访问请求的多个硬件上下文和/或子上下文特定访问控制策略。
10.如权利要求8所述的方法,进一步包括:
所述访问控制策略为一个或多个存储器区域定义访问标准;
所述存储器访问请求标识目标存储器位置;以及
所述PU将所述目标存储器位置与所述存储器区域的对应的一个进行比较以确定是否允许或阻止所述存储器访问请求。
11.如权利要求8所述的方法,进一步包括断言在所述***总线上的一个或多个信号线以指示所述存储器访问请求的安全水平和/或特权水平。
12.如权利要求8所述的方法,进一步包括断言在所述***总线上的多个信号线以标识与所述存储器访问请求相关联的所述硬件上下文和/或子上下文。
13.如权利要求8所述的方法,其特征在于,所述PU专用于***总线桥。
CN201610911265.6A 2016-01-28 2016-10-19 用于低能量mcu的动态集装箱化***存储器保护 Active CN107017014B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/008,650 2016-01-28
US15/008,650 US9984009B2 (en) 2016-01-28 2016-01-28 Dynamic containerized system memory protection for low-energy MCUs

Publications (2)

Publication Number Publication Date
CN107017014A CN107017014A (zh) 2017-08-04
CN107017014B true CN107017014B (zh) 2022-05-31

Family

ID=59327999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610911265.6A Active CN107017014B (zh) 2016-01-28 2016-10-19 用于低能量mcu的动态集装箱化***存储器保护

Country Status (3)

Country Link
US (1) US9984009B2 (zh)
CN (1) CN107017014B (zh)
DE (1) DE102016122375A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416421B2 (en) * 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
US10360164B1 (en) * 2018-01-19 2019-07-23 Microchip Technology Incorporated Direct memory access adapter
US11886349B2 (en) 2020-04-23 2024-01-30 Nxp Usa, Inc Remap address space controller
US20220035751A1 (en) * 2020-07-28 2022-02-03 Mediatek Inc. Method and system for improving efficiency of protecting multi-content process
US11755785B2 (en) * 2020-08-03 2023-09-12 Nxp Usa, Inc. System and method of limiting access of processors to hardware resources
CN112182548B (zh) * 2020-09-23 2024-04-16 博流智能科技(南京)有限公司 一种芯片***
KR20220125897A (ko) * 2021-03-05 2022-09-15 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩에 포함된 연결 버스
US20230050729A1 (en) * 2021-08-13 2023-02-16 Texas Instruments Incorporated Resource access security for multiple software contexts
IT202200002960A1 (it) * 2022-02-17 2023-08-17 St Microelectronics Srl Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290646A (zh) * 2007-04-16 2008-10-22 三星电子株式会社 在虚拟环境中保护***的设备和方法
CN101510181A (zh) * 2009-03-19 2009-08-19 北京中星微电子有限公司 一种总线仲裁方法和总线仲裁装置
CN103092784A (zh) * 2011-10-27 2013-05-08 飞思卡尔半导体公司 基于信号量保护共享***资源的***和方法
CN104981815A (zh) * 2013-03-14 2015-10-14 英特尔公司 用于用安全属性限制cpu事务的方法、装置和***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
KR20050113659A (ko) * 2003-03-19 2005-12-02 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 메모리 장치
US8458377B2 (en) * 2010-03-05 2013-06-04 Lsi Corporation DMA engine capable of concurrent data manipulation
WO2013095404A1 (en) * 2011-12-20 2013-06-27 Intel Corporation Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
US20130318268A1 (en) * 2012-05-22 2013-11-28 Xockets IP, LLC Offloading of computation for rack level servers and corresponding methods and systems
US9495308B2 (en) * 2012-05-22 2016-11-15 Xockets, Inc. Offloading of computation for rack level servers and corresponding methods and systems
US9535853B2 (en) * 2013-12-30 2017-01-03 International Business Machines Corporation Building an undo log for in-memory blocks of data
US9836318B2 (en) * 2014-02-21 2017-12-05 Infineon Technologies Ag Safety hypervisor function

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290646A (zh) * 2007-04-16 2008-10-22 三星电子株式会社 在虚拟环境中保护***的设备和方法
CN101510181A (zh) * 2009-03-19 2009-08-19 北京中星微电子有限公司 一种总线仲裁方法和总线仲裁装置
CN103092784A (zh) * 2011-10-27 2013-05-08 飞思卡尔半导体公司 基于信号量保护共享***资源的***和方法
CN104981815A (zh) * 2013-03-14 2015-10-14 英特尔公司 用于用安全属性限制cpu事务的方法、装置和***

Also Published As

Publication number Publication date
US9984009B2 (en) 2018-05-29
CN107017014A (zh) 2017-08-04
DE102016122375A1 (de) 2017-08-03
US20170220489A1 (en) 2017-08-03

Similar Documents

Publication Publication Date Title
CN107017014B (zh) 用于低能量mcu的动态集装箱化***存储器保护
US11016906B2 (en) GPU virtualisation
EP2075696A2 (en) Interrupt- related circuits, systems and processes
WO2018103685A1 (zh) 一种nand闪存设备的操作指令调度方法及装置
US7653908B2 (en) Grouping processors and assigning shared memory space to a group in a heterogeneous computer environment
CN100573456C (zh) 一种并行多处理器虚拟机***
US7822885B2 (en) Channel-less multithreaded DMA controller
US20020095565A1 (en) Interstream control and communications for multi-streaming digital processors
CN101048763A (zh) 高速缓冲存储器的动态重新配置
US10459771B2 (en) Lightweight thread synchronization using shared memory state
JP2018512662A (ja) 複数の独立マイクロコントローラを伴うマイクロコントローラデバイス
Bostancı et al. DR-STRaNGe: end-to-end system design for DRAM-based true random number generators
WO2019052576A1 (zh) 一种基于同步锁的多线程处理方法、终端以及存储介质
WO2019231733A1 (en) Watchdog timer hierarchy
US10042659B1 (en) Caching virtual contexts for sharing of physical instances of a hardware resource
JPH02252010A (ja) マッチ認識特性を持つタイマ・チャンネル
US20020010825A1 (en) Memory resource arbitrator for multiple gate arrays
EP3770759A1 (en) Wake-up and scheduling of functions with context hints
US10459747B2 (en) Exitless timer access for virtual machines
CN114691594A (zh) 一种基于非对称双核mcu设计的芯片架构及其实现方法
Zou et al. DirectNVM: Hardware-accelerated NVMe SSDs for high-performance embedded computing
US11061730B2 (en) Efficient scheduling for hyper-threaded CPUs using memory monitoring
US11301304B2 (en) Method and apparatus for managing kernel services in multi-core system
US11656905B2 (en) Delegation control based on program privilege level and page privilege level
Wentzlaff et al. Configurable fine-grain protection for multicore processor virtualization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant