CN116635858A - 一种安全隔离装置和方法 - Google Patents
一种安全隔离装置和方法 Download PDFInfo
- Publication number
- CN116635858A CN116635858A CN202080107977.7A CN202080107977A CN116635858A CN 116635858 A CN116635858 A CN 116635858A CN 202080107977 A CN202080107977 A CN 202080107977A CN 116635858 A CN116635858 A CN 116635858A
- Authority
- CN
- China
- Prior art keywords
- security level
- interrupt
- subsystem
- processor core
- peripheral
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种安全隔离装置和方法,涉及芯片技术领域,能够解决自动驾驶领域中,不同子系统之间隔离不够彻底的问题,且降低了隔离成本。该装置可以为安全隔离装置,该系统包括应用于同一个芯片的第一子系统和第二子系统,第一子系统中所包括的第一物理资源的安全等级高于第二子系统所包括的第二物理资源的安全等级,第一子系统包括中断控制器,中断控制器用于管理第二子系统的外设的中断。本申请实施例用于芯片内的不同安全等级的子系统的隔离。
Description
本申请涉及芯片技术领域,尤其涉及一种安全隔离装置和方法。
自动驾驶领域需要满足较高的汽车安全完整性等级(automotive safety integration level,ASIL)功能安全性指标。该领域的系统比较庞杂,其中的子系统能够达到的安全等级可以包括ASIL-B和ASIL-D等多个安全等级,或者还可以包括质量管理(quality management,QM)这种非安全等级的系统,ASIL-D代表最高等级,QM表示按照质量管理体系开发系统或功能就足够,不用考虑任何安全相关的设计。
为了便于不同子系统之间互不干扰,不同的子系统占用的资源需要进行资源隔离,该资源例如可以为可访问的存储空间或用于运行子系统的核(core)。目前,对于不同的子系统之间的隔离,业界的方案主要是通过虚拟化隔离、多片(die)合封、多个系统级芯片(system-on-a-chip,SoC)相互组合以及冗余降解等方式实现。
其中,虚拟化技术隔离主要是基于超级监督者(Hypervisor)的虚拟化方案实现不同子系统的隔离。该Hypervisor可以运行多个客户操作系统(guest operating system,guest OS),多个guest OS运行在多个不同安全等级的核上。但是,基于Hypervisor的虚拟化技术存在Hypervisor单点故障导致的共因失效风险,从而导致不同安全等级的guest OS的隔离程序不够彻底,降低了整个方案的安全等级。对于多个SoC相互组合实现不同子系统之间的隔离的方案,一般采用主系统级芯片(main SoC)和微控制单元(micro controller unit,MCU)的组合实现。main SoC可以处理ASIL-B或者QM等级的业务,MCU可以处理ASIL-D的业务,main SoC可以通过通信线路与MCU通信。但是,main SoC和MCU是两块独立的芯片,主板电路比较复杂,会增加主板的面积、成本和复杂性。而且,main SoC和MCU通过中间的通信线路通信时,线路断开的风险较大,可靠性降低,并且通信数据的传送速度较慢。
发明内容
本申请实施例提供一种安全隔离装置和方法,解决了自动驾驶领域中,不同子系统之间隔离不够彻底的问题,且降低了隔离成本。
为达到上述目的,本申请实施例采用如下技术方案。
第一方面,提供一种安全隔离装置,包括:包含于同一个芯片的第一子系统和第二子系统,第一子系统中所包括的第一物理资源的安全等级高于第二子系统所包括的第二物理资源的安全等级,第一子系统包括中断控制器,该中断控制器用于管理第二子系统的外设的中断。其中,第二子系统的外设可以理解为第二子系统的一种物理资源,即一种第二物理资源。
本申请中,可以在同一个芯片中配置有两个子系统:第一子系统和第二子系统。不同子系统包括的物理资源的安全等级不同,本申请可以避免如现有技术中的通过 Hypervisor运行多个虚拟的guest OS,多个guest OS运行在多个不同安全等级的核上实现子系统间的隔离带来的Hypervisor单点故障导致的共因失效风险,即本申请可以直接对不同子系统的物理资源进行安全等级的配置,得到不同安全等级的子系统。而且,中断控制器存在于高安全等级的第一子系统,并且由该中断控制器管理低安全等级的外设的中断。这样,在实现不同安全等级的子系统间的完全物理隔离部署的基础上,将该中断控制器的安全等级设置为高安全等级可以保证执行中断过程的安全性。
在一种可能的设计中,第二子系统的外设包括第二外设;第二外设,用于向第一子系统的中断控制器发送中断信号;中断控制器,用于在接收到中断信号时,控制第二子系统中的处理器核或第一子系统中的处理器核暂停正在运行的程序,执行中断信号所指示的程序。也就是说,未包括中断控制器的第二子系统如果触发中断,需要向包括中断控制器的高安全等级的子系统发送中断信号,由高安全等级的子系统中的中断控制器控制处理器核运行中断信号指示的程序。这样,在中断控制器的安全等级高的情况下,非高安全等级的子系统便不能随意执行中断,须得有高安全等级的子系统的中断控制器帮助非高安全等级的子系统控制处理器核执行中断,可以保证中断的安全性,也提供了安全隔离装置的安全性。
在一种可能的设计中,第一物理资源包括第一处理器核,第二物理资源还包括中断配置寄存器和第二处理器核;第二处理器核,还用于向中断配置寄存器写入中断信息,中断信息包括第二外设发送的中断信号的中断属性;第一处理器核,用于从中断配置寄存器中读入中断信息,并将中断信息配置在中断控制器中,以使得中断控制器控制第二子系统中的处理器核或第一子系统中的处理器核执行第二外设发送的中断信号所指示的程序。即低安全等级的子系统要配置中断控制器时,须向包括中断控制器的高安全等级的子系统请求配置,即本申请中,在存在多个安全等级的子系统时,只有高安全等级的子系统可以对中断控制器进行写访问。如果非高安全等级的子系统要配置中断控制器,只能通过高安全等级的子系统帮助低安全等级的子系统执行中断控制器的配置,可以提升中断配置的安全性。
在一种可能的设计中,第一处理器核,还用于:从中断配置寄存器中获取中断配置请求以触发第一处理器核从中断配置寄存器中读入中断信息。例如,第一处理器核在接收到中断配置请求时,暂停执行正在运行的程序,并从中断配置寄存器中读取中断信息;根据中断信息确定中断控制器的寄存器地址和写入值,写入值用于指示中断信息;向中断控制器的寄存器地址指示的寄存器写入该写入值,而后继续执行正在运行的程序。其中,中断配置寄存器可以为Mailbox。也即,当高安全等级的第一子系统中的第一处理器核接收到要配置中断控制器的请求时,可以暂停正在运行的程序,根据从第二子系统的Mailbox中读取的中断信息配置中断控制器,这种由高安全等级的处理器核配置中断控制器的方式可以提升配置中断控制器的安全性,也提升了安全隔离装置所在的芯片的安全性。
在一种可能的设计中,第一物理资源被配置为第一安全等级标识,第二物理资源被配置为第二安全等级标识。即本申请通过为物理资源配置安全等级标识以区分不同安全等级的物理资源,相当于本申请将不同安全等级的物理资源从物理上进行了隔离,可以使得不同安全等级的物理资源隔离的较彻底。
在一种可能的设计中,安全隔离装置还包括鉴权组件,第一物理资源包括第一处理器核,第二物理资源包括第二处理器核;鉴权组件,用于对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,将访问请求发送给芯片内相应的外设。本申请中的鉴权组件可以理解为不属于任何一个子系统,但是可以与任何一个子系统通信的组件。当一个子系统要访问另一个子系统的物理资源时,须经过鉴权组件进行鉴权。这样,子系统间的访问更加安全,只有经过鉴权组件鉴权成功的访问请求才能发送给被访问的子系统。
在一种可能的设计中,第二物理资源包括第二外设;第一处理器核,用于向鉴权组件发送第一访问请求,第一访问请求中携带第一安全等级标识和待访问的第二外设的地址;鉴权组件,用于接收第一访问请求,根据第一访问请求中携带的第二外设的地址获取第二外设的第二安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第一访问请求转发给第二外设。
由于每个子系统的每个物理资源都配置了安全等级标识,当一个子系统的物理资源想要访问另一个子系统的物理资源时,访问请求中需携带物理资源的安全等级标识,鉴权组件可以根据访问请求中携带的安全等级标识和被访问的物理资源的安全等级标识进行鉴权,以确定是否可以访问,这样可以保证不同安全等级的子系统的安全性。
在一种可能的设计中,鉴权组件具体用于:若第一安全等级标识对应的第一处理器核的安全等级高于第二安全等级标识对应的第二外设的安全等级,则确定鉴权成功;其中,第一访问请求为写请求或读请求。
也就是说,也就是说,包括中断控制器的高安全等级的子系统中的处理器核可以对低安全等级的子系统的外设进行写访问或读访问,提升了高安全等级的子系统的权限。
在一种可能的设计中,第一物理资源包括第一外设;第二处理器核,用于向鉴权组件发送第二访问请求,第二访问请求中携带第二安全等级标识和待访问的第一外设的地址;鉴权组件,用于接收第二访问请求,根据第二访问请求中携带的第一外设的地址获取第一外设的第一安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第二访问请求转发给第一外设。
与上述设计类似,鉴权组件可以根据访问请求中携带的安全等级标识和被访问的物理资源的安全等级标识进行鉴权,以确定是否可以访问,这样可以保证不同安全等级的子系统的安全性。
在一种可能的设计中,鉴权组件,具体用于:若第二安全等级标识对应的第二处理器核的安全等级低于第一安全等级标识对应的第一外设的安全等级,且第二访问请求为读请求,则确定鉴权成功。也即,如果低安全等级的子系统要对高安全等级的子系统进行读访问,那么鉴权组件可以将低安全等级的子系统的请求发送给高安全等级,以对高安全等级的子系统进行读访问。如果低安全等级的子系统要对高安全等级的子系统进行写访问,那么鉴权组件确定鉴权失败,即低安全等级的子系统没有权限对高安全等级的子系统进行写访问,这样可以保证高安全等级的子系统的安全性更高。
在一种可能的设计中,第一子系统,用于处理第一安全等级业务,第二子系统,用于处理第二安全等级业务或非安全等级业务,其中,第一安全等级高于第二安全等 级,第一安全等级和第二安全等级为车辆安全完整性等级ASIL中的等级,非安全等级为质量管理QM。
在一种可能的设计中,该中断控制器为该芯片内唯一的中断控制器,即该中断控制器控制该芯片内所有外设的中断。
第二方面,提供一种安全隔离方法,该方法应用于安全隔离装置,安全隔离装置包括包含于同一个芯片的第一子系统和第二子系统,第一子系统中所包括的第一物理资源的安全等级高于第二子系统所包括的第二物理资源的安全等级;第一子系统包括中断控制器,中断控制器用于管理第二子系统的外设的中断;该方法包括:
该中断控制器管理第二子系统的外设的中断。
在一种可能的设计中,第二子系统的第二外设向第一子系统的中断控制器发送中断信号;该中断控制器在接收到所述中断信号之后控制第二子系统的处理器核或第一子系统的处理器核暂停正在运行的程序,并执行中断信号所指示的程序。
即低安全等级的子系统要触发中断时,须向高安全等级的包括中断控制器的子系统发送中断信号,高安全等级的子系统有权限指示处理器核暂停正在运行的程序,执行中断的程序。这样,不仅将不同安全子系统的物理资源进行了隔离,还保证了中断的安全性。
在一种可能的设计中,第二物理资源包括第二处理器核,第一物理资源包括第一处理器核;该中断控制器在接收到该中断信号之后控制第二子系统的处理器核或第一子系统的处理器核暂停正在运行的程序并执行该中断信号所指示的程序包括:该中断控制器向第二处理器核发送该中断信号以及控制第二处理器核暂停正在运行的程序并执行中断信号所指示的程序;或,该中断控制器向第一处理器核发送该中断信号以及控制第一处理器核暂停正在运行的程序并执行该中断信号所指示的程序。
也就是说,未包括中断控制器的第二子系统如果触发中断,需要向包括中断控制器的高安全等级的子系统发送中断信号,由高安全等级的子系统中的中断控制器控制处理器核运行中断信号指示的程序。这样,在中断控制器的安全等级高的情况下,非高安全等级的子系统便不能随意执行中断,须得有高安全等级的子系统的中断控制器帮助非高安全等级的子系统控制处理器核执行中断,可以保证中断的安全性,也提供了安全隔离装置的安全性。
在一种可能的设计中,第二物理资源还包括中断配置寄存器和第二处理器核,第一物理资源包括第一处理器核;第二子系统的第二外设向第一子系统的中断控制器发送中断信号之前,该方法还包括:第二处理器核向中断配置寄存器写入中断信息,中断信息包括第二外设发送的中断信号的中断属性;第一处理器核从中断配置寄存器中读入中断信息,将中断信息配置在中断控制器中,以使得中断控制器控制第二子系统中的处理器核或第一子系统中的处理器核执行第二外设发送的中断信号所指示的程序。
即低安全等级的子系统要配置中断控制器时,须向包括中断控制器的高安全等级的子系统请求配置,即本申请中,在存在多个安全等级的子系统时,只有高安全等级的子系统可以对中断控制器进行写访问。如果非高安全等级的子系统要配置中断控制器,只能通过高安全等级的子系统帮助低安全等级的子系统执行中断控制器的配置,可以提升中断配置的安全性。
在一种可能的设计中,第一处理器核从中断配置寄存器中读入中断信息包括:第一处理器核从中断配置寄存器中获取中断配置请求,以触发第一处理器核从中断配置寄存器中读入中断信息。例如,第一处理器核在接收到中断配置请求时,暂停执行正在运行的程序并从中断配置寄存器中读取中断信息;第一处理器核根据中断信息确定中断控制器的寄存器地址和写入值,写入值用于指示中断信息;第一处理器核向中断控制器的寄存器地址指示的寄存器写入该写入值,而后控制第一处理器核继续执行正在运行的程序。
其中,终端配置寄存器可以为Mailbox。也即,当高安全等级的第一子系统中的第一处理器核接收到要配置中断控制器的请求时,可以暂停正在运行的程序,根据从第二子系统的Mailbox中读取的中断信息配置中断控制器,这种由高安全等级的处理器核配置中断控制器的方式可以提升配置中断控制器的安全性,也提升了安全隔离装置所在的芯片的安全性。
在一种可能的设计中,第一物理资源的安全等级和第二物理资源的安全等级是在初始化芯片的系统阶段,通过用于初始化芯片的系统的固件配置的。即安全等级可以是在芯片出厂时就设置好的。当芯片运行时,固件就可以将芯片中的物理资源进行安全等级的配置。
在一种可能的设计中,第一物理资源被配置为第一安全等级标识,第二物理资源被配置为第二安全等级标识。即本申请通过为物理资源配置安全等级标识以区分不同安全等级的物理资源,相当于本申请将不同安全等级的物理资源从物理上进行了隔离,可以使得不同安全等级的物理资源隔离的较彻底。
在一种可能的设计中,安全隔离装置还包括鉴权组件;第一物理资源包括第一处理器核,第二物理资源包括第二处理器核;该鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,控制鉴权组件将访问请求发送给芯片内相应的外设。本申请中的鉴权组件可以理解为不属于任何一个子系统,但是可以与任何一个子系统通信的组件。当一个子系统要访问另一个子系统的物理资源时,须经过鉴权组件进行鉴权。这样,子系统间的访问更加安全,只有经过鉴权组件鉴权成功的访问请求才能发送给被访问的子系统。
在一种可能的设计中,第二物理资源包括第二外设;该鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,该鉴权组件将访问请求发送给芯片内相应的外设包括:第一处理器核向鉴权组件发送第一访问请求,第一访问请求中携带第一安全等级标识和待访问的第二外设的地址;该鉴权组件根据第一访问请求中携带的第二外设的地址获取第二外设的第二安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,该鉴权组件将第一访问请求转发给第二外设。
由于每个子系统的每个物理资源都配置了安全等级标识,当一个子系统的物理资源想要访问另一个子系统的物理资源时,访问请求中需携带物理资源的安全等级标识,鉴权组件可以根据访问请求中携带的安全等级标识和被访问的物理资源的安全等级标识进行鉴权,以确定是否可以访问,这样可以保证不同安全等级的子系统的安全性。
在一种可能的设计中,根据第一安全等级标识和第二安全等级标识进行鉴权包括:
若第一安全等级标识对应的第一处理器核的安全等级高于第二安全等级标识对应的第二外设的安全等级,则确定鉴权成功:其中,第一访问请求为写请求或读请求。也就是说,也就是说,包括中断控制器的高安全等级的子系统中的处理器核可以对低安全等级的子系统的外设进行写访问或读访问,提升了高安全等级的子系统的权限。
在一种可能的设计中,第一物理资源包括第一外设;鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,该鉴权组件将访问请求发送给芯片内相应的外设包括:第二处理器核向鉴权组件发送第二访问请求,第二访问请求中携带第二安全等级标识和待访问的第一外设的地址;该鉴权组件接收第二访问请求,根据第二访问请求中携带的第一外设的地址获取第一外设的第一安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第二访问请求转发给第一外设。
与上述设计类似,鉴权组件可以根据访问请求中携带的安全等级标识和被访问的物理资源的安全等级标识进行鉴权,以确定是否可以访问,这样可以保证不同安全等级的子系统的安全性。
在一种可能的设计中,根据第一安全等级标识和第二安全等级标识进行鉴权包括:
若第二安全等级标识对应的第二处理器核的安全等级低于第一安全等级标识对应的第一外设的安全等级,且第二访问请求为读请求,则确定鉴权成功。
也即,如果低安全等级的子系统要对高安全等级的子系统进行读访问,那么鉴权组件可以将低安全等级的子系统的请求发送给高安全等级,以对高安全等级的子系统进行读访问。如果低安全等级的子系统要对高安全等级的子系统进行写访问,那么鉴权组件确定鉴权失败,即低安全等级的子系统没有权限对高安全等级的子系统进行写访问,这样可以保证高安全等级的子系统的安全性更高。
在一种可能的设计中,第一子系统处理第一安全等级业务,第二子系统处理第二安全等级业务或非安全等级业务,其中,第一安全等级高于第二安全等级,第一安全等级和第二安全等级为车辆安全完整性等级ASIL中的等级,非安全等级为质量管理QM。
在一种可能的设计中,中断控制器为芯片内唯一的中断控制器。
第三方面,提供一种通信装置,该通信装置包括上述第一方面或第一方面的任一种可能的设计所述的安全隔离装置。
第四方面,提供一种终端设备,该终端设备包括第三方面所述的通信装置。
图1为本申请实施例提供的一种基于Hypervisor虚拟化技术实现不同子系统的隔离的示意图;
图2为本申请实施例提供的一种采用多个不同等级SoC组合部署方案实现不同子系统的隔离的示意图;
图3为本申请实施例提供的一种自动驾驶领域中的一种MDC system的示意图;
图4为本申请实施例提供的一种安全隔离装置的结构示意图;
图5为本申请实施例提供的一种安全隔离方法的流程示意图;
图6为本申请实施例提供的一种不同安全等级的子系统划分流程示意图;
图7为本申请实施例提供的一种配置两种安全等级的子系统示意图;
图8为本申请实施例提供的一种配置三种安全等级的子系统的示意图;
图9为本申请实施例提供的一种鉴权组件对不同子系统之间的互访进行鉴权的示意图;
图10为本申请实施例提供的一种第二子系统申请中断配置以及触发中断的过程示意图。
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
中断控制器(Interrupt Controller,IC):IC用于从外部设备获取中断,对中断进行优先级排序,然后将其传送到相应的处理器内核。IC通常属于硬件资源。本申请中,IC可以是ARM(Advanced RISC(Reduced Instruction Set Computer,精简指令集计算机)Machines)的通用中断控制器(Generic Interrupt Controller,GIC),也可以是其他类型的中断控制器,本申请对此不做限定。
片内外部设备:可以简称为外设,也可以称为片内外设,是指芯片内部用于与片外外部设备连接的接口电路和总线。本申请中的外设均指的是芯片内部的外部设备,在本申请中片内外部设备均简称为外设。本申请中,芯片所包含的多个子系统(比如第一系统和第二子系统)分别包含多种物理资源,外设是其中一种物理资源。
超级监督者(Hypervisor):又称虚拟机器监视器(virtual machine monitor,VMM),是用来创建与运行虚拟机的软件、固件或硬件。被hypervisor用来运行一个或多个虚拟机的电脑称为宿主机(host machine),这些虚拟机则称为客户机(guest machine)。Hypervisor提供虚拟的作业平台来运行客户操作系统(guest operating systems),这些客户操作系统共同分享虚拟化后的硬件资源。
在自动驾驶领域,由于系统较为庞杂,不是所有的子系统和模块都能做到ASIL-D这种高安全等级。为了实现不同安全等级的子系统的隔离,业界提出了多种隔离方案,例如传统的虚拟化隔离部署方案和多个不同等级SoC组合部署方案等。
对于虚拟化隔离部署方案,是基于Hypervisor虚拟化技术实现不同子系统的隔离的。如图1所示,该方案的软件层可以包括Hypervisor以及多种guest OS,guest OS例如可以包括ASIL-B OS、ASIL-D OS以及QM OS等多种虚拟的操作系统,不同的guest OS运行在不同的虚拟中央处理单元(Central Processing Unit,CPU)上。硬件层可以包括多个外设,例如图1中的外设0、外设1和外设N,还包括处理器核和内存 等。其中:
Hypervisor运行在所有的处理器核上,并可以访问所有的内存,同时管理所有的外部设备;
Hypervisor可以用于启动这3个guest OS(ASIL-D OS、ASIL-B OS和QM OS),每个guest OS可以与公共的虚拟化底座Hypervisor通信,并基于Hypervisor隔离运行;
在每个guest OS上可以部署不同的业务,根据业务要求的安全等级,ASIL-D等级的业务运行在ASIL-D OS上,ASIL-B等级业务运行在ASIL-B OS上,QM等级的业务运行在QM OS上。由于通过虚拟化技术将每个guest OS之间进行隔离,每个guest OS不会感知到其他guest OS存在,也感知不到Hypervisor层;
当guest OS想要访问外设时,该guest OS会先给Hypervisor发送访问请求,Hypervisor再根据访问请求访问真实的外设,并将访问结果返回给guest OS。
但是该隔离方案中,虽然不同的guest OS运行在不同的虚拟CPU上,但是实际上虚拟CPU可能运行在相同的处理器核上,这样会使得不同的guest OS间的隔离程度不够彻底;而且,Hypervisor同时管理所有的硬件资源,其不会区分硬件资源的安全等级差异;而且,虽然多个guest OS可以运行不同安全等级的业务,但是Hypervisor只有一个,这样,在软件上无法将guest OS彻底隔离,即无法在软件上体现不同的安全等级的,这导致整体降低了Hypervisor的安全等级;况且,由于Hypervisor作为各个guest OS的公共底座,仍然存在Hypervisor单点故障导致的共因失效风险。
对于多个不同等级SoC组合部署方案,如图2所示,可以采用主系统级芯片(main SoC)和MCU的芯片架构来实现。其中:
main SoC上可以处理安全等级较低的业务,例如处理ASIL-B或者QM等安全等级的业务,例如ASIL-B或者QM等安全等级的业务用于分析相机(camera)数据,从中识别出各类目标(例如人、非机动车、机动车、交通标识、交通信号灯等),以及用于处理全球定位系统(Global Positioning System,GPS)数据和雷达数据等;
MCU可以用于安全等级较高的业务,例如处理ASIL-D的安全等级的业务,比如MCU可以通过控制器局域网络(Controller Area Network,CAN)总线,接收车身数据,同时MCU可以通过CAN总线,可以向机动车发送指令,以控制机动车(比如指令用于指示加速、减速、刹车和拐弯等);
main SoC可以通过通信线路,比如串行外设接口(Serial Peripheral Interface,SPI)总线、内集成电路(Inter-Integrated Circuit,IIC)总线等与MCU通信,通过通信线路,main SoC可以将上述各类目标、GPS数据和雷达数据等检测结果发送给MCU,MCU根据检测结果向机动车发送控制命令。
由于main SoC和MCU是两块独立的芯片,这将导致芯片的主板电路较为复杂,成本较高。而且,main SoC和MCU通过中间的通信线路通信时,通信线路故障的风险较大,并且通信数据传输速度较慢。
因此,针对以上问题,本申请提出一种在单SoC内实现一种基于物理隔离的不同安全等级系统混合部署的方案,该方案应用于同时具有大量复杂数据计算处理需求和高功能安全等级需求的场景,比如基于各种复杂传感器的数据接收处理、神经网络智能计算或大数据计算的航空、铁路、舰艇、无人机、自动化、高级工业控制、工业机 器人以及自动驾驶系统等。尤其可以应用于辅助驾驶和自动驾驶等存在多个不同安全等级业务的领域。
其中,在自动驾驶领域中,如图3所示,可进行自动驾驶的机动车可以包括制造数据采集系统(manufacturing data collection system,MDC system),一般可以通称为机床监控与数据采集系统。MDC system可以向机动车发送车控命令,MDC system也可以获取车身信息;MDC system还可以与机动车间进行人机交互(human machine interface,HMI);MDC system还可以与云端服务器进行通信,实现车云互联。
该MDC system可以包括主芯片(main SoC)和备用芯片(backup SoC),如图3中的main SoC A和backup SoC B。main SoC A和backup SoC B之间可以进行主备同步互联、异常信息同步和主备协商等过程。main SoC和backup SoC均包括安全驾驶(safety driving,SD)系统和数据处理(data processing,DP)系统。通常,SD系统用于运行安全等级较高的业务,例如运行ASIL-D的安全等级的业务,DP系统用于运行安全等级较低的业务,例如运行ASIL-B安全等级的业务和QM的业务等。本申请可以适用于对单SoC内的SD系统和DP系统进行物理隔离,例如对main SoC A内的SD系统和DP系统进行物理隔离,或者对backup SoC B内的SD系统和DP系统进行物理隔离,以实现单SoC内多个安全等级系统的物理隔离。当然,本申请还可以适用于其他场景下对单SoC内的多个安全等级系统的物理隔离。
因此,在本申请对不同安全等级的系统进行物理隔离的方案中,提出了一种在单芯片内实现子系统间的物理隔离。在本申请中,提供一种安全隔离装置,该安全隔离装置可以应用于同一个芯片的多个子系统,多个子系统的物理资源被配置了多种安全等级,其中一个子系统中所包括的第一物理资源的安全等级高于其他任一个子系统所包括的物理资源的安全等级。也就是说,包括第一物理资源的子系统的安全等级最高。而且,本申请中,包括第一物理资源的子系统包括芯片内唯一的中断控制器,该中断控制器用于管理芯片内的外设的中断。可以理解,本申请可以通过在单芯片内为物理资源配置不同的安全等级进行系统间的物理隔离,这样不仅可以实现物理资源间的高安全隔离,而且本申请不同的子系统的物理资源均集成在单芯片内,可以降低系统间隔离的成本。本申请还将中断控制器配置在最高安全等级的子系统中,可以保证该芯片在执行中断时的高安全性。
在一些实施例中,如图4所示,本申请的安全隔离装置应用于同一个芯片的第一子系统和第二子系统,第一子系统中所包括的第一物理资源的安全等级高于所述第二子系统所包括的第二物理资源的安全等级。
其中,第一子系统包括中断控制器,中断控制器用于管理第二子系统的外设的中断。
在一些实施例中,中断控制器为芯片内唯一的中断控制器。即中断控制器虽然属于第一子系统,但是可以控制包括第一子系统和第二子系统在内的外设的中断。
在一些实施例中,本申请可以通过为芯片内的各个物理资源配置多个安全等级标识得到多个安全等级的物理资源,同一安全等级的子系统包括同一安全等级标识的物理资源。例如,上述第一物理资源被配置为第一安全等级标识,第二物理资源被配置为第二安全等级标识,第一安全等级标识所标识的物理资源的安全等级高于第二安全 等级标识所标识的物理资源的安全等级。
通过上述安全等级标识的配置,该芯片的物理资源包括芯片内全局唯一的中断控制器,该中断控制器通过安全等级标识的配置被配置为属于至少两种安全等级中的最高安全等级的子系统。这就意味着,在整个单芯片内,只有一个中断控制器,且该中断控制器位于最高安全等级的子系统中,可以用来管理芯片内所有不同安全等级的外设中断的,对于整个系统来说是一个重要的硬件资源,因此,本申请将中断控制器划分到最高安全等级的子系统。低于最高安全等级的其他安全等级的子系统不能直接配置中断控制器,需要通过高安全等级的子系统中转代理,即高安全等级的子系统帮助其他安全等级的子系统配置中断控制器。这样,在实现不同安全等级的子系统间的完全物理隔离部署的基础上,将中断控制器的安全等级设置为最高安全等级的情况下,还可以保证执行中断过程的安全性。
在本申请将芯片内的物理资源按照不同的安全等级划分为第一子系统和第二子系统的基础上,在一些实施例中,假如第二物理资源包括第二外设,如果第二外设要触发中断:
第二外设,可以用于向第一子系统的中断控制器发送中断信号;
中断控制器,用于在接收到中断信号时,控制第二子系统中的处理器核或第一子系统中的处理器核暂停正在运行的程序,执行中断信号所指示的程序。
也就是说,低安全等级的第二子系统中的第二外设要触发中断时,须向高安全等级的第一子系统中的中断控制器发送中断信号,由中断控制器指示第一子系统中的处理器核或第二子系统中的处理器核执行中断信号指示的程序。
需要说明的是,当中断控制器接收到中断信号,具体确定由哪个处理器核执行中断信号指示的程序可以是预先在中断控制器中配置的,中断控制器可按照预配置指示处理器核执行中断信号指示的程序。
在一些实施例中,在任一个外设触发中断之前,所触发的中断的中断属性需要在中断控制器中进行过配置,中断控制器才能根据该配置触发中断。因此,在上述第二外设发送中断信号之前,假设上述第一物理资源包括第一处理器核,第二物理资源还包括中断配置寄存器(例如可以理解为Mailbox)和第二处理器核,那么:
第二处理器核,还用于向中断配置寄存器写入中断信息,中断信息包括第二外设发送的中断信号的中断属性;其中,每个外设可以对应有多个中断属性,对于每个中断属性在中断控制器中配置之前,第二处理器核都需要在Mailbox中写入中断属性以及中断优先级等信息,当完成一个外设的中断属性的中断配置后,如果要为该外设的其他中断属性执行中断配置时,第二处理器核可以向Mailbox写入此次要配置的中断属性对应的中断信息,Mailbox中前一次被写入的中断信息被覆盖。
第一处理器核,用于从中断配置寄存器中读入中断信息,并将中断信息配置在中断控制器中。即第一子系统的第一处理器核帮助第二子系统的第二外设配置中断控制器。这样,中断控制器可以控制第二子系统中的处理器核或所第一子系统中的处理器核执行第二外设发送的中断信号所指示的程序。
示例性的,当中断控制器被写入了中断信息后,第一处理器核可以用于从中断配置寄存器中获取中断配置请求以触发第一处理器核从中断配置寄存器中读入中断信息。 或者,第二子系统的处理器核可以通过中断配置寄存器向中断控制器发送中断配置请求,该中断配置请求用于请求中断控制器为第二外设的中断属性执行中断配置。中断控制器可以根据预配置将该中断配置请求发送给可以执行该中断配置的第一处理器核,以便第一处理器核从中断配置寄存器中读入中断信息。
第一处理器核在接收到中断配置请求时,示例性的,第一处理器核具体可以用于:
暂停执行正在运行的程序,并从中断配置寄存器中读取中断信息;
根据中断信息确定中断控制器的寄存器地址和写入值,写入值用于指示中断信息;可以理解,中断控制器中包括多个寄存器,第一处理器核可以根据读取的中断信息确定要配置该中断属性时,由中断控制器的哪个寄存器存储该中断属性对应的信息;该写入值可以理解为为该中断信息的格式被转换后的另一种格式的信息。
而后,向中断控制器的寄存器地址指示的寄存器写入该写入值,而后继续执行正在运行的程序。当第一处理器核将该写入值写入该中断控制器的寄存器地址指示的寄存器时,该中断属性在中断控制器中的中断配置完成。此时,第二处理器核可以从中断控制器中读取该写入值,如果读取的写入值与配置的第二外设的中断属性匹配,则第二处理器认为中断配置成功;或者,中断控制器可以向第二处理器核发送中断配置成功的指示,以便第二处理器核可以进行下一个中断属性的中断配置。
在一些实施例中,为了保证高安全等级的子系统的安全性,本申请的安全隔离装置还可以包括鉴权组件,假设第一物理资源包括第一处理器核,第二物理资源包括第二处理器核;该鉴权组件,可以用于:
对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,将访问请求发送给芯片内相应的外设。
这里鉴权组件所遵循的鉴权规则可以是:高安全等级的子系统可以对低安全等级的子系统进行读访问和写访问,低安全等级的子系统可对高安全等级的子系统进行读访问,但是低安全等级的子系统不能对高安全等级的子系统进行写访问。这样,高安全等级的子系统的安全性更高,低安全等级的子系统便不能随意对高安全等级的子系统进行写访问,确保了高安全等级的子系统的安全性。本申请中的鉴权组件可以理解为不属于任何一个子系统的一个组件。
由于上文中已经说明,本申请对不同子系统的物理资源都配置了相应安全等级的安全等级标识,因此,鉴权组件具体在进行鉴权时,可以根据要访问的物理资源的安全等级标识和被访问的物理资源的安全等级标识确定是否鉴权成功。
示例性的,如果第一子系统要访问第二子系统,假设第一物理资源包括第一处理器核,第二物理资源包括第二外设:
第一处理器核,用于向鉴权组件发送第一访问请求,第一访问请求中携带第一安全等级标识和待访问的第二外设的地址;
鉴权组件,用于接收第一访问请求,根据第一访问请求中携带的第二外设的地址获取第二外设的第二安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第一访问请求转发给第二外设。
其中,鉴权组件可以具体用于:
若根据第一安全等级标识和第二安全等级标识确定,第一安全等级标识对应的第 一处理器核的安全等级高于第二安全等级标识对应的第二外设的安全等级,则确定鉴权成功:其中,第一访问请求为写请求或读请求。
再示例性的,如果第二子系统要访问第一子系统,假设第一物理资源包括第一外设,第二物理资源包括第二处理器核:
第二处理器核,用于向鉴权组件发送第二访问请求,第二访问请求中携带第二安全等级标识和待访问的第一外设的地址;
鉴权组件,用于接收第二访问请求,根据第二访问请求中携带的第一外设的地址获取第一外设的第一安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第二访问请求转发给第一外设。
其中,鉴权组件,具体可以用于:
若根据第一安全等级标识和第二安全等级标识确定,第二安全等级标识对应的第二处理器核的安全等级低于第一安全等级标识对应的第一外设的安全等级,且第二访问请求为读请求,则确定鉴权成功。反之,如果第二访问请求为写请求,则确定鉴权失败。
在一些实施例中,安全隔离装置可以应用于驾驶场景中,该场景下,第一子系统,可以用于处理第一安全等级业务,第二子系统,可以用于处理第二安全等级业务或非安全等级业务,其中,第一安全等级高于第二安全等级,第一安全等级和第二安全等级为ASIL中的等级,非安全等级为QM。这样,可以保证驾驶场景中第一安全等级业务的高安全性。
由此,通过以上说明,本申请一方面将中断控制器配置为属于高安全等级的子系统,其他安全等级的子系统若要执行中断配置,需向高安全等级的子系统请求中断配置,高安全等级的子系统帮助其他安全等级的子系统配置中断控制器。当其他安全等级的子系统的外设触发中断,需要向高安全等级的子系统的中断控制器请求触发中断,中断控制器再指示处理器核执行中断的程序,这样可以保证中断控制器的高安全性,也保证了高安全等级的子系统的安全性。另一方面,本申请的鉴权组件可以实现高安全等级的子系统可以对其他安全等级的子系统进行读访问或写访问,低安全等级的子系统只能对高安全等级的子系统进行读访问,可以保证高安全等级的安全性。
与本申请提供的安全隔离装置对应的,本申请还提供一种安全隔离方法,可以应用于同一个芯片的第一子系统和第二子系统,第一子系统中所包括的第一物理资源的安全等级高于第二子系统所包括的第二物理资源的安全等级;第一子系统包括中断控制器,中断控制器用于管理第二子系统的外设的中断;如图5所示,该方法包括:
501、控制第二子系统的第二外设向第一子系统的中断控制器发送中断信号。
502、控制中断控制器触发第二子系统的处理器核或第一子系统的处理器核暂停正在运行的程序,并执行中断信号所指示的程序。
在一些实施例中,假设第二物理资源还包括第二处理器核,第一物理资源还包括第一处理器核,步骤502的实现方式可以为:
控制中断控制器向第二处理器核发送中断信号;控制第二处理器核暂停正在运行的程序并执行中断信号指示的程序;
或,控制中断控制器向所述第一处理器核发送中断信号;控制第一处理器核暂停 正在运行的程序并执行中断信号指示的程序。
在第二外设触发中断之前,所触发的中断的中断属性需要先在中断控制器中进行配置,中断控制器才能触发处理器核执行中断的程序,因此,假设第二物理资源包括中断配置寄存器和第二处理器核,第一物理资源包括第一处理器核:
在控制第二子系统的第二外设向第一子系统的中断控制器发送中断信号之前,该方法还可以包括:
控制第二处理器核向中断配置寄存器写入中断信息,中断信息包括第二外设发送的中断信号的中断属性;
控制第一处理器核从中断配置寄存器中读入中断信息,将中断信息配置在中断控制器中,以使得中断控制器控制第二子系统中的处理器核或第一子系统中的处理器核执行第二外设发送的中断信号所指示的程序。
示例性的,可以控制第一处理器核从中断配置寄存器中获取中断配置请求,以触发第一处理器核从中断配置寄存器中读入中断信息。
或者,可以控制第二处理器核根据中断信息生成中断配置请求,并控制第二处理器核通过中断配置寄存器向中断控制器发送中断配置请求,再控制中断控制器向第一处理器核发送中断配置请求;控制第一处理器核根据中断配置请求配置中断控制器。
示例性的,可以控制第一处理器核在接收到中断配置请求时,暂停执行正在运行的程序并从中断配置寄存器中读取中断信息;控制第一处理器核根据中断信息确定中断控制器的寄存器地址和写入值,写入值用于指示中断信息;控制第一处理器核向中断控制器的寄存器地址指示的寄存器写入该写入值,而后控制第一处理器核继续执行正在运行的程序。
需要说明的是,本申请中,第一物理资源的安全等级和第二物理资源的安全等级是在初始化芯片的系统阶段,通过用于初始化芯片的系统的固件配置的。示例性的,第一物理资源被配置为第一安全等级标识,第二物理资源被配置为第二安全等级标识。
在一些实施例中,安全隔离装置还包括鉴权组件;假设第一物理资源包括第一处理器核,第二物理资源包括第二处理器核;该方法还可以包括:
控制鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,控制鉴权组件将访问请求发送给芯片内相应的外设。
示例性的,假设第二物理资源包括第二外设,控制鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,控制鉴权组件将访问请求发送给芯片内相应的外设可以包括:
控制第一处理器核向鉴权组件发送第一访问请求,第一访问请求中携带第一安全等级标识和待访问的第二外设的地址;
控制鉴权组件,根据第一访问请求中携带的第二外设的地址获取第二外设的第二安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,控制鉴权组件将第一访问请求转发给第二外设。
其中,根据第一安全等级标识和第二安全等级标识进行鉴权可以包括:
若第一安全等级标识对应的第一处理器核的安全等级高于第二安全等级标识对应 的第二外设的安全等级,则确定鉴权成功;其中,第一访问请求为写请求或读请求。
再示例性的,假设第一物理资源包括第一外设;控制所述鉴权组件对第一子系统中的第一处理器核或者第二子系统中的第二处理器核发起的访问请求进行鉴权,并且在鉴权成功时,控制鉴权组件将访问请求发送给芯片内相应的外设可以包括:
控制第二处理器核向鉴权组件发送第二访问请求,第二访问请求中携带第二安全等级标识和待访问的所述第一外设的地址;
控制鉴权组件接收第二访问请求,根据第二访问请求中携带的第一外设的地址获取第一外设的第一安全等级标识,并且根据第一安全等级标识和第二安全等级标识进行鉴权,在鉴权成功时,将第二访问请求转发给第一外设。
其中,根据第一安全等级标识和第二安全等级标识进行鉴权可以包括:
若第二安全等级标识对应的第二处理器核的安全等级低于第一安全等级标识对应的第一外设的安全等级,且第二访问请求为读请求,则确定鉴权成功。
本申请提供的安全隔离方法所能达到的有益效果可以参考本申请提供的安全隔离装置达到的有益效果,此处不再赘述。
基于上述对本申请提供的安全隔离装置和安全隔离方法的说明,本申请下文将对安全等级的配置,配置后的子系统运行阶段执行中断配置的过程,以及执行中断配置后外设触发中断的过程进行进一步说明。
首先,将先对如何对芯片内的物理资源进行安全等级标识的配置进行说明,也就是说对如何将芯片内的物理资源的安全等级进行划分得到多个不同安全等级的子系统进行说明,如图6所示,该过程可以包括:
601、固件确定芯片中的物理资源。
芯片中的物理资源可以包括处理器核、内存和输入/输出(input/ouput,I/O)设备,I/O设备包括中断控制器,还可以包括外设,即上文中提到的片内外设。
示例性的,当芯片上电后,固件可以先确定芯片中的各个物理资源,以便执行步骤602中为物理资源配置安全等级标识的过程。
该固件可以理解基础固件,例如基本输入输出系统(basic input output system,BIOS)或者统一的可扩展固件接口(Unified Extensible Firmware Interface,UEFI)或Boot Loader会进行软件初始化工作,初始化的过程包括确定物理资源以及为芯片中的物理资源配置安全等级的过程。例如,芯片上电启动时,其中的固件可以在确定了芯片中的物理资源后,为芯片中的物理资源配置安全等级,配置安全等级的过程也可以理解为进行物理资源划分的过程。
602、固件为芯片中的物理资源配置安全等级,得到至少两种安全等级的子系统,不同子系统包括的物理资源的安全等级不同。其中,物理资源包括芯片内唯一的中断控制器,中断控制器属于至少两种安全等级中的最高安全等级的子系统。
在一些实施例中,固件可以为芯片中的每个物理资源配置安全等级标识;不同安全等级的物理资源对应的安全等级标识不同。
上述为物理资源配置安全等级标识也可以理解为固件为物理资源配置安全等级信息的过程,安全等级信息包括安全等级标识。
示例性的,芯片上电启动时,固件可以为芯片中的每个处理器核配置安全等级标 识,该安全等级标识可以存储在处理器核对应的寄存器中;固件可以将芯片中的内存资源进行划分,不同的内存区域对应不同的安全等级标识,该安全等级标识可以存储在内存对应寄存器中;固件为芯片内的每个外设配置安全等级标识,该安全等级标识可以存储在外设对应的寄存器中。其中,中断控制器被配置为最高安全等级,固件可以在中断控制器对应的寄存器中写入最高安全等级的标识。如此一来,每个物理资源的安全等级配置完成。
在本申请中,安全等级至少有两种,安全等级标识也至少有两种,这样,经过安全等级的配置,可以得到至少两种安全等级的子系统,每个安全等级的子系统包括相应安全等级的处理器核、内存区域和外设,最高安全等级的子系统还包括中断控制器。
示例性的,如图7所示,在芯片内配置的安全等级可以为两种安全等级,包括高安全等级和低安全等级的情况下,固件为芯片的物理资源配置的安全等级标识包括高安全等级标识和低安全等级标识,高安全等级标识指示高安全等级,低安全等级标识指示低安全等级。芯片中高安全等级下的物理资源对应的寄存器中被写入高安全等级标识,低安全等级下的物理资源对应的寄存器中被写入低安全等级标识。这样,芯片中的物理资源被划分为高安全等级的子系统和低安全等级的子系统。图7中示出了高安全等级的子系统包括的处理器核(例如处理器核0、处理器核N)、内存(例如内存0)、外设(例如外设1、外设2以及外设i)以及中断控制器,也示出了低安全等级的子系统包括的处理器核(处理器核N+1和处理器核N+M)、内存(内存1)和外设(外设i+1、外设i+2以及外设i+j)。
当进行物理资源的划分得到这两种安全等级的子系统之后,高安全等级的子系统可以启动运行高安全等级的OS,低安全等级的子系统可以启动运行低安全等级的OS。高安全等级的OS对应运行高安全等级的业务,低安全等级的OS对应运行低安全等级的业务。
在一些实施例中,固件在为每个处理器核配置安全等级标识时,还可以为最高安全等级的处理器核配置锁步模式,锁步模式下,最高安全等级的处理器可以采用锁步核(lock-step core)技术。锁步核技术可以保持多个处理器核以及内存精确的同步,在相同的时钟周期内执行相同的指令,保证高安全等级的子系统能够发现任何错误,即使出现短暂的错误,该子系统也能在不间断处理和不损失数据的情况下恢复正常运行。具体地,锁步核的实现方式可以包括:最高安全等级的子系统中的两个处理器核运行同样的程序(也可以理解为一条指令会被两个处理器核运行),得到两个处理器核的输出结果,将两个处理器核的输出结果都输入一个比较逻辑中,以比较两个处理器核的输出结果是否相同。如果相同,则最高安全等级的子系统继续运行;否则,该比较逻辑返回错误指示,该子系统需要采取一定的措施,例如两个处理器核重新运行产生不同输出结果的代码,对再次运行后的结果进行比对检查,或重启网络设备。可以看出,锁步核虽然使用到了两个处理器核,但其实只起到一个处理器核的作用。
在一些实施例中,固件在为芯片中的内存资源进行安全等级的划分时,还可以将最高安全等级的子系统内的内存配置成镜像(mirror)模式。镜像模式可以理解为:将待存入内存的数据进行两份拷贝,分别存储在主内存区域和镜像内存区域中。正常工作情况下,当该子系统需读取内存中的数据时,只从主内存区域中读取。当主内存区 域出现故障,即使通过内存保护和Chipkill修复技术都不能完全修复时,该子系统才会从镜像内存区域中读取数据。如果主内存区域中出现足以引起子系统报警的故障,该子系统会报告系统管理员。同时,该芯片会自动地切换到使用镜像内存区域,直到该出现故障的主内存区域的内存卡被更换。这样一来,可以避免由于主内存区域的故障导致的中断,从而保证该子系统的平稳运行。由于镜像模式下采用的两套内存区域中实际只有一套内存区域在使用,另一套内存区域起到备份作用,因此,对于该子系统来说也就只有该子系统的整个内存区域的一半容量是可用的。
通过以上说明,可以理解,本申请将单芯片中的物理资源的安全等级进行了配置,可以得到至少两个安全等级的子系统,即在一个芯片中,可以通过物理资源划分的方式进行系统间隔离,可以避免如现有技术中不同子系统的虚拟CPU可能运行在一个物理的处理器核中,使得不同的guest OS间的隔离程度不够彻底的问题,也可以避免使用两个芯片架构实现系统间隔离带来的实现复杂,成本较高的问题。况且,本申请将中断控制器划分在了最高安全等级的子系统中,当低安全等级的子系统要配置中断控制器时,只能向高安全等级的子系统请求配置,这样可以保证中断控制器的安全等级更高,单芯片执行中断的安全性更高。
在一些实施例中,在上述图7中举例的配置了两个安全等级的基础上,可以理解,本申请还可以扩展到两个以上的多个安全等级,如图8所示,在芯片的安全等级为三种安全等级,包括高安全等级、中安全等级和低安全等级的情况下,固件为芯片的物理资源配置的安全等级标识包括高安全等级标识、中安全等级标识和低安全等级标识,高安全等级标识指示高安全等级,中安全等级标识指示中安全等级,低安全等级标识指示低安全等级。安全等级的级别为:高安全等级高于中安全等级,中安全等级高于低安全等级。在图7中的芯片举例的基础上,芯片中的中安全等级下的物理资源对应的寄存器中被写入中安全等级标识。这样,芯片中的物理资源被划分为高安全等级的子系统、中安全等级的子系统和低安全等级的子系统。
图8中示出了高安全等级的子系统包括的处理器核(例如处理器核0、处理器核N)、内存(内存0)、外设(外设1、外设2以及外设i)以及中断控制器,也示出了中安全等级的子系统包括的处理器核(处理器核N+1和处理器核N+M)、内存(内存1)和外设(外设i+1、外设i+2以及外设i+j),也示出了低安全等级的子系统包括处理器核(处理器核N+M+1和处理器核N+M+P)、内存(内存2)、外设(外设i+j+1、外设i+j+2以及外设i+j+m)。
当存在三个安全等级的子系统时,中断控制器依然属于三个安全等级的子系统中安全等级最高的高安全等级的子系统。当中安全等级的子系统或低安全等级的子系统需要进行中断配置时,中安全等级的子系统或低安全等级的子系统都需向高安全等级的子系统申请中断配置。
根据上文中的说明,可以理解,本申请中,在单芯片内,只有唯一一个中断控制器,其安全等级为最高安全等级。该中断控制器可以管理芯片内所有的外设的中断,因此,所有的安全等级的子系统都需要去访问该中断控制器,控制本子系统的外设中断。但是,由于中断控制器属于最高安全等级的物理资源,只有最高安全等级的物理资源可以直接对中断控制器进行写访问,其他安全等级的物理资源只能对中断控制器 进行读访问,且其他非最高安全等级的子系统对中断控制器的写访问只能由最高安全等级的子系统帮助执行,也就是说,中断配置过程只能由最高安全等级的子系统进行配置。
此外,在为芯片中的物理资源都配置了安全等级标识,将整个芯片的物理资源进行划分,得到至少两种安全等级的子系统之后,固件就可以启动各子系统对应的OS,以运行各子系统对应的业务。因此,该方法还可以包括:
603、固件控制各个安全等级的子系统启动相应的OS,以开始运行各个安全等级的子系统的业务。
以图7对应的示例为例,固件可以控制高安全等级的子系统启动OS,并运行高安全等级的业务,以及控制低安全等级的子系统启动OS,并运行低安全等级的业务。例如这里的高安全等级的业务包括上述ASIL-D的安全等级的业务,低安全等级的业务包括ASIL-B安全等级的业务或QM的业务。
在启动各个子系统的OS运行后,子系统间可以开始进行互访。为了保证高安全等级的子系统的安全性,在本申请中,低安全等级的子系统可以对高安全等级的子区域进行读访问,但是不能进行写访问;高安全等级的子系统可以对低安全等级的子系统进行读访问和写访问。可以理解,如果是如图8的示例,高安全等级的子系统可以对中安全等级的子系统和低安全等级的子系统进行读访问和写访问,但是,中安全等级的子系统和低安全等级的子系统只能对高安全等级的子系统进行读访问,不能进行写访问。因此,该方法还可以包括:
604、当第一处理器核将要访问第一外设时,鉴权组件根据第一处理器核的安全等级标识以及第一外设的安全等级标识确定是否响应第一处理器核的访问请求。
根据上文中提到的鉴权组件的鉴权原则:
当第一处理器核的安全等级高于或等于第一外设的安全等级时,鉴权组件确定响应第一处理器的访问请求;即高安全等级的第一处理器核可以访问低安全等级的第一外设,该访问包括写访问和读访问;
当第一处理器核的安全等级低于第一外设的安全等级时,若访问请求为读访问,鉴权组件确定响应该读访问;若访问请求为写访问,鉴权组件确定写访问无效。即低安全等级的第一处理器核只能对高安全等级的第一外设进行读访问,而不能进行写访问。
示例性的,参考图9,每个子系统的外设都有对应的鉴权组件,一个子系统的处理器核想要访问另一个子系统的外设时,该外设对应的鉴权组件都可以根据上述访问原则确定该处理器核是否可以访问该外设。参考图9,假设处理器核A需访问外设B,处理器核A会发送访问请求,访问请求经过芯片中的总线到达鉴权组件0,访问请求携带处理器核A对应的安全等级标识以及要访问的外设B的地址。鉴权组件0在接收到访问请求时,提取访问请求中处理器核A的安全等级标识,并根据外设B的地址读取外设B对应的安全等级标识,再按照上述鉴权原则进行鉴权,以确定处理器核A是否可以访问外设B。如果确定可以访问,鉴权组件0将访问请求发送给外设B进行处理;如果确定不能访问,鉴权组件0向处理器核A返回拒绝访问的指示,访问请求结束。
由此,在鉴权组件所遵循的鉴权原则下,可以保证高安全等级的子系统的安全性。
此外,当启动各子系统的OS运行后,子系统间不仅可以经过鉴权组件进行互访以外,低安全等级的子系统还可以向包括中断控制器的高安全等级的子系统申请中断配置,即只有高安全等级的子系统可以对中断控制器进行写访问。
假设上述不同安全等级的子系统包括第一子系统和第二子系统,第一子系统为安全等级最高的子系统,即第一子系统的第一物理资源包括中断控制器,第二子系统申请中断配置的过程可以包括:
第二子系统向第一子系统发送中断配置请求;
第一子系统根据中断配置请求为第二子系统执行中断配置。
可以理解,第二子系统可以为图7或图8中示例的低安全等级的子系统,或者还可以为图8示例的中安全等级的子系统。当第二子系统需要在中断控制器中执行中断配置时,可以将中断配置请求发送给第一子系统,让第一子系统帮助配置中断,即让第一子系统对中断控制器进行写操作。这样,在中断配置完成之后,当后续第二子系统的外设需产生中断时,第二子系统的外设可以向中断控制器发送中断信号,中断控制器就可以向处理器核发送该中断信号,处理器核就可以暂停执行正在运行的程序,从而执行该中断信号指示的中断程序。
下面对第二子系统申请中断配置的过程进行进一步说明。该过程可以包括:
11、第一子系统在中断控制器中配置中断路由。
该过程可以理解为,在中断控制器中配置由高安全等级的子系统中的某一处理器核为非高安全等级的子系统的外设执行中断配置。当高安全等级的子系统确定由高安全等级的子系统中的处理器核B来为外设A执行中断配置时,高安全等级的子系统可以对中断控制器执行写操作,该写操作用于指示当中断控制器确定外设A需配置中断时,由处理器核B进行中断配置操作。
步骤11相当于做好了第一子系统帮助第二子系统配置中断控制器前的准备工作。
12、第二子系统的处理器核向第二子系统的中断配置寄存器写入中断信息。
示例性的,如图10所示,中断配置寄存器可以为Mailbox。当第二子系统的处理器核A需在中断控制器中配置外设A的中断时,处理器核A可以向第二子系统中的Mailbox写入外设A待配置的中断的中断信息。该中断信息可以包括中断号、中断属性和中断的属性值。这一步相当于图10中的步骤①。
其中,一个中断号对应一个外设,一个外设可以对应多个中断属性,中断属性可以包括中断的优先级、中断的触发方式以及中断的使能信息等,中断的属性值即为中断的优先级的值,中断的触发方式的值以及中断的使能信息的值等。
13、第一子系统的处理器核从中断配置寄存器获取中断配置请求。
示例性的,参考图10,第一子系统的处理器核B可以通过中断控制器从中断配置寄存器中获取中断配置请求。该过程相当于图10中的步骤②和③。中断配置请求用于为外设A的请求配置中断。
或者,第二子系统的处理器核A可以根据中断信息生成中断配置请求,并通过Mailbox向中断控制器发送中断配置请求,该过程相当于图10中的步骤②。中断控制器在接收到Mailbox的中断配置请求时,可以根据步骤11中配置的中断路由,将中断 配置请求发送给第一子系统的处理器核B,该过程相当于图10中的步骤③。
14、第一子系统中的处理器核暂停执行正在运行的程序,从中断配置寄存器中读取中断信息,以根据中断信息确定中断控制器的寄存器地址和写入值,该写入值用于指示中断信息,并向中断控制器的寄存器地址指示的寄存器写入该写入值。
示例性的,参考图10,当处理器核B接收到中断控制器发送的中断配置请求时,处理器核B暂停执行正在运行的程序,通过总线以及鉴权组件等硬件资源读取Mailbox中外设A的中断信息,包括中断号、中断属性以及属性值等信息,该过程相当于图10中的步骤④。而后,处理器核B可以根据该中断信息确定出此次配置中断控制器时,应该向中断控制器的哪个寄存器配置中断以及要写入的配置信息,即处理器核B根据中断信息确定出中断控制器的寄存器地址以及向中断控制器的寄存器待写入的写入值。当确定了中断控制器的寄存器地址时,处理器核B可以向中断控制器的寄存器地址指示的寄存器写入该写入值。该过程相当于图10中的步骤⑤。
15、第一子系统的处理器核继续执行正在运行的程序。
当第一子系统的处理器向中断控制器的寄存器写入该写入值之后,意味着此次中断配置的过程结束。第一子系统的处理器核B可以继续执行步骤14中被打断的正在运行的程序。
在一些实施例中,第二子系统的处理器核A还可以通过读取中断控制器的寄存器中最新写入的写入值确定此次中断配置过程是否完成,如果该写入值与第二子系统要配置的中断的属性值匹配,则第二子系统的处理器核A确定此次中断配置的过程完成。
或者,当第一子系统的处理器核B向中断控制器的寄存器写入该写入值之后,第一子系统的处理器核B可以向第二子系统的理器核A发送应答消息,该应答消息指示为外设A的中断配置完成。当第二子系统的处理器核A接收到该应答消息后,处理器核A可以读取中断控制器的寄存器中的写入值,以确定写入值是否与要配置的中断的属性值匹配。
需要说明的是,一个外设可以对应多个中断属性,步骤12-15为配置一个外设的一个中断属性的过程,一个外设的多个中断属性的配置方式都可以参考上述步骤12-15的配置过程,当外设的中断按照该配置过程完成后,如果该外设产生中断,中断控制器才能正确处理该中断。例如,外设A的中断N在中断控制器中配置完成,一旦外设A向中断控制器请求执行中断N操作,中断控制器可以根据寄存器中配置的该中断N的优先级确定是否发生中断抢占,以及是否运行处理器核处理该中断N。
因此,在上述配置中断控制器的过程完成后,在步骤15之后,如果第二子系统的外设触发中断,中断控制器的工作过程可以包括:
16、第二子系统的外设向中断控制器发送中断信号。
在为第二子系统的外设执行了中断配置的基础上,如果第二子系统的外设要触发中断,第二子系统的外设可以向中断控制器发送中断信号,指示该外设想要触发中断。示例性的,参考图10,第二子系统的外设A向中断控制器发送中断信号,该过程相当于图10中的步骤⑥。
可以理解,中断控制器所在的装置中有多个管脚,每个管脚连接一个外设,当一个管脚的电平发生变化,可以理解为该管脚接收到了该外设的中断信号,中断控制器 确定该外设想要触发中断。
17、中断控制器向第二子系统的处理器核或第一子系统的处理器核发送中断信号,以便第二子系统的处理器核或第一子系统的处理器核暂停正在运行的程序,执行中断信号指示的程序。
参考图10,当中断控制器在接收到中断信号时,中断控制器如果确定该中断信号对应的中断属性已经在中断控制器中进行过配置,是可以触发该中断时,中断控制器可以根据中断优先级等信息确定是否需要抢占处理,是否运行处理器核处理该中断等。如果中断控制器确定可以运行处理器核处理该中断时,一种方式中,中断控制器通过与第二子系统的处理器核通信的接口向第二子系统的处理器核发送该中断信号,例如如图10中所示的步骤⑦,中断控制器指示处理器核A执行中断信号对应的程序,当处理器核A接收到来自中断控制器的中断信号时,处理器核A便暂停正在运行的程序,执行中断信号指示的程序。另一种方式中,中断控制器可以向第一子系统的一个处理器核发送中断信号,指示第一子系统的处理器核执行该中断信号指示的程序。
上文说明了低安全等级的子系统请求配置中断的过程,下面再对高安全等级(最高安全等级)的子系统配置中断控制器的过程进行说明。该过程可以包括(附图中未示出):
81、第一子系统中的处理器核向中断控制器执行中断配置。
参考图10,例如,第一子系统使用外设B执行中断操作之前,第一子系统需要先为外设B的中断进行中断配置。例如具体可以为:第一子系统的处理器核B可以直接对中断控制器的寄存器进行写操作,该写操作用于为外设B配置中断的优先级属性、路由属性以及使能属性等等。
上述步骤81即为高安全等级的子系统配置中断控制器的过程。之后,如果高安全子系统的外设产生中断,该方法还包括:
82、第一子系统的外设向中断控制器发送中断信号。
示例性的,参考图10,当后外设B产生中断时,外设B可向中断控制器发送中断信号。
83、中断控制器向第一子系统的处理器核或第二子系统的处理器核发送中断信号,以触发处理器核暂停正在运行的程序,执行中断信号指示的程序。
示例性的,参考图10,如果中断控制器确定中断控制器中已经对该外设B进行过中断配置,那么中断控制器可以按照配置的中断路由信息,向处理该中断的处理器核发送中断信号。
其中,中断控制器可以按照中断路由信息向第一子系统的处理器核B发送中断信号。处理器核B在接收到该中断信号时,就可以暂停正在运行的程序,执行该中断信号对应的程序。当该程序执行完成后,处理器核B再恢复之前被暂停的正在运行的程序。
或者,中断控制器可以按照中断路由信息向第二子系统的处理器核A发送中断信号。处理器核A在接收到该中断信号时,就可以暂停正在运行的程序,执行该中断信号对应的程序。当该程序执行完成后,处理器核A再恢复之前被暂停的正在运行的程序。
如此一来,本申请通过在单芯片内进行物理资源的安全等级的划分,可以使得单芯片存在多个安全等级的子系统,保证高安全等级的子系统的安全。而且,本申请将中断控制器的安全等级设置为高安全等级时,可实现只有高安全等级的子系统可以对中断控制器进行读写,或者说只有高安全等级的子系统能够对中断控制器进行配置。非高安全等级的子系统只能对中断控制器进行读访问,如果非高安全等级的子系统要配置中断控制器时,只能通过高安全等级的子系统帮助执行中断配置。这样一来,非高安全等级的子系统便不能随意对中断控制器进行写访问,可以保证中断控制器的安全性,也就提升了单芯片整个系统的安全性。
需要说明的是,本申请中的高安全等级为ASIL-D时,低安全等级可以为ASIL-C、ASIL-B或ASIL-A等,或者低安全等级为非安全等级的QM;
或者,本申请中的高安全等级为ASIL-C时,低安全等级可以为ASIL-B或者ASIL-A,或者低安全等级为QM;
或者,本申请中的高安全等级为ASIL-B时,低安全等级可以为ASIL-A,或者低安全等级为QM;
或者,本申请中的高安全等级为ASIL-A时,低安全等级可以为QM。
需要说明的是,本申请除了可以使用Mailbox作为中断配置寄存器实现不同安全等级的子系统之间的中断配置的通信外,也可以使用doolbell+共享内存方式实现。低安全等级的子系统中的doolbell用于请求配置中断时,高安全等级的子系统可以从高安全等级的子系统与低安全等级的子系统的共享内存中读取中断信息,高安全等级的子系统根据该中断信息确定配置中断控制器的寄存器的地址和写入值,以根据寄存器的地址将写入值写入该寄存器,中断配置操作完成。可以理解,只要是使用中断方式向高安全等级的子系统发送中断配置请求的实现方式都可以应用于本申请。
本申请中,如果低安全等级的子系统只有一个业务,那么只需要在低安全等级的子系统中运行一个guest OS;如果低安全等级的子系统有多个业务需要处理,可以通过Hypervisor,启动多个guest OS分别处理不同的业务。
此外,本申请上文中说明可以通过固件(例如UEFI)配置安全等级,以实现物理资源划分,也可以通过硬件固化资源划分配置,即硬件流片时就对物理资源的安全等级进行固化配置,可以免去软件配置过程。
本申请实施例提供一种通信装置,该通信装置可以为芯片,芯片中可以包括本申请提供的安全隔离装置。
本申请实施例还提供一种控制系统,该控制系统例如可以为上述MDC system。该控制系统包括芯片,芯片中可以包括本申请提供的安全隔离装置。
本申请实施例还提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述本申请提供的安全隔离方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得电子设备执行上述本申请提供的安全隔离方法。
本申请实施例还提供一种终端设备,该终端设备包括本申请提供的安全隔离装置。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述 功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
- 一种安全隔离装置,其特征在于,包括:包含于同一个芯片的第一子系统和第二子系统,所述第一子系统中所包括的第一物理资源的安全等级高于所述第二子系统所包括的第二物理资源的安全等级,所述第一子系统包括中断控制器,所述中断控制器用于管理所述第二子系统的外设的中断。
- 根据权利要求1所述的安全隔离装置,其特征在于,所述第二子系统的外设包括第二外设;所述第二外设,用于向所述第一子系统的所述中断控制器发送中断信号;所述中断控制器,用于在接收到所述中断信号时,控制所述第二子系统中的处理器核或所述第一子系统中的处理器核暂停正在运行的程序,执行所述中断信号所指示的程序。
- 根据权利要求2所述的安全隔离装置,其特征在于,所述第一物理资源包括第一处理器核,所述第二物理资源包括中断配置寄存器和第二处理器核;所述第二处理器核,还用于向所述中断配置寄存器写入中断信息,所述中断信息包括所述第二外设发送的所述中断信号的中断属性;所述第一处理器核,用于从所述中断配置寄存器中读入所述中断信息,并将所述中断信息配置在所述中断控制器中,以使得所述中断控制器控制所述第二子系统中的处理器核或所述第一子系统中的处理器核执行所述第二外设发送的所述中断信号所指示的程序。
- 根据权利要求3所述的安全隔离装置,其特征在于,所述第一处理器核还用于:从所述中断配置寄存器中获取中断配置请求以触发所述第一处理器核从所述中断配置寄存器中读入所述中断信息。
- 根据权利要求1-4任一所述的安全隔离装置,其特征在于,所述第一物理资源被配置为第一安全等级标识,所述第二物理资源被配置为第二安全等级标识。
- 根据权利要求5所述的安全隔离装置,其特征在于,所述安全隔离装置包括鉴权组件,所述第一物理资源包括第一处理器核,所述第二物理资源包括第二处理器核和第二外设;所述第一处理器核,用于向所述鉴权组件发送第一访问请求,所述第一访问请求中携带所述第一安全等级标识和待访问的所述第二外设的地址;所述鉴权组件,用于接收所述第一访问请求,根据所述第一访问请求中携带的所述第二外设的地址获取所述第二外设的第二安全等级标识,并且根据所述第一安全等级标识和所述第二安全等级标识进行鉴权,在鉴权成功时,将所述第一访问请求转发给所述第二外设。
- 根据权利要求6所述的安全隔离装置,其特征在于,所述鉴权组件具体用于:若所述第一安全等级标识对应的所述第一处理器核的安全等级高于所述第二安全等级标识对应的所述第二外设的安全等级,则确定鉴权成功;其中,所述第一访问请求为写请求或读请求。
- 根据权利要求5所述的安全隔离装置,其特征在于,所述安全隔离装置包括鉴 权组件,所述第一物理资源包括第一处理器核和第一外设,所述第二物理资源包括第二处理器核;所述第二处理器核,用于向所述鉴权组件发送第二访问请求,所述第二访问请求中携带所述第二安全等级标识和待访问的所述第一外设的地址;所述鉴权组件,用于接收所述第二访问请求,根据所述第二访问请求中携带的所述第一外设的地址获取所述第一外设的第一安全等级标识,并且根据所述第一安全等级标识和所述第二安全等级标识进行鉴权,在鉴权成功时,将所述第二访问请求转发给所述第一外设。
- 根据权利要求8所述的安全隔离装置,其特征在于,所述鉴权组件,具体用于:若所述第二安全等级标识对应的所述第二处理器核的安全等级低于所述第一安全等级标识对应的所述第一外设的安全等级,且所述第二访问请求为读请求,则确定鉴权成功。
- 根据权利要求1-9任一所述的安全隔离装置,其特征在于,所述第一子系统,用于处理第一安全等级业务,所述第二子系统,用于处理第二安全等级业务或非安全等级业务,其中,所述第一安全等级高于所述第二安全等级,所述第一安全等级和所述第二安全等级为车辆安全完整性等级ASIL中的等级,所述非安全等级为质量管理QM。
- 根据权利要求1-10任一所述的安全隔离装置,其特征在于,所述中断控制器为所述芯片内唯一的中断控制器。
- 一种安全隔离方法,其特征在于,所述方法应用于安全隔离装置,所述安全隔离装置包括包含于同一个芯片的第一子系统和第二子系统,所述第一子系统中所包括的第一物理资源的安全等级高于所述第二子系统所包括的第二物理资源的安全等级;所述第一子系统包括中断控制器,所述方法包括:所述中断控制器管理所述第二子系统的外设的中断。
- 根据权利要求12所述的方法,其特征在于,所述方法还包括:所述第二子系统的第二外设向所述第一子系统的所述中断控制器发送中断信号;所述中断控制器在接收到所述中断信号之后控制所述第二子系统的处理器核或所述第一子系统的处理器核暂停正在运行的程序,并执行所述中断信号所指示的程序。
- 根据权利要求13所述的方法,其特征在于,所述第二物理资源包括中断配置寄存器和第二处理器核,所述第一物理资源包括第一处理器核;在所述第二子系统的第二外设向所述第一子系统的中断控制器发送中断信号之前,所述方法还包括:所述第二处理器核向所述中断配置寄存器写入中断信息,所述中断信息包括所述第二外设发送的所述中断信号的中断属性;所述第一处理器核从所述中断配置寄存器中读入所述中断信息,将所述中断信息配置在所述中断控制器中,以使得所述中断控制器控制所述第二子系统中的处理器核或所述第一子系统中的处理器核执行所述第二外设发送的所述中断信号所指示的程序。
- 根据权利要求14所述的方法,其特征在于,所述第一处理器核从所述中断配置寄存器中读入所述中断信息包括:所述第一处理器核从中断配置寄存器中获取中断配置请求,以触发所述第一处理器核从所述中断配置寄存器中读入所述中断信息。
- 根据权利要求12-15任一项所述的方法,其特征在于,所述第一物理资源的安全等级和所述第二物理资源的安全等级是在初始化所述芯片的系统阶段,通过用于初始化所述芯片的系统的固件配置的。
- 根据权利要求12-16任一项所述的方法,其特征在于,所述第一物理资源被配置为第一安全等级标识,所述第二物理资源被配置为第二安全等级标识。
- 根据权利要求17所述的方法,其特征在于,所述安全隔离装置包括鉴权组件,所述第一物理资源包括第一处理器核,所述第二物理资源包括第二处理器核和第二外设;所述方法还包括:所述第一处理器核向所述鉴权组件发送第一访问请求,所述第一访问请求中携带所述第一安全等级标识和待访问的所述第二外设的地址;所述鉴权组件根据所述第一访问请求中携带的所述第二外设的地址获取所述第二外设的第二安全等级标识,并且根据所述第一安全等级标识和所述第二安全等级标识进行鉴权,在鉴权成功时,所述鉴权组件将所述第一访问请求转发给所述第二外设。
- 根据权利要求18所述的方法,其特征在于,所述根据所述第一安全等级标识和所述第二安全等级标识进行鉴权包括:若所述第一安全等级标识对应的所述第一处理器核的安全等级高于所述第二安全等级标识对应的所述第二外设的安全等级,则确定鉴权成功;其中,所述第一访问请求为写请求或读请求。
- 根据权利要求17所述的方法,其特征在于,所述安全隔离装置包括鉴权组件,所述第一物理资源包括第一处理器核和第一外设,所述第二物理资源包括第二处理器核;所述方法还包括:所述第二处理器核向所述鉴权组件发送第二访问请求,所述第二访问请求中携带所述第二安全等级标识和待访问的所述第一外设的地址;所述鉴权组件接收所述第二访问请求,根据所述第二访问请求中携带的所述第一外设的地址获取所述第一外设的第一安全等级标识,并且根据所述第一安全等级标识和所述第二安全等级标识进行鉴权,在鉴权成功时,将所述第二访问请求转发给所述第一外设。
- 根据权利要求20所述的方法,其特征在于,所述根据所述第一安全等级标识和所述第二安全等级标识进行鉴权包括:若所述第二安全等级标识对应的所述第二处理器核的安全等级低于所述第一安全等级标识对应的所述第一外设的安全等级,且所述第二访问请求为读请求,则确定鉴权成功。
- 根据权利要求12-21任一项所述的方法,其特征在于,还包括:所述第一子系统处理第一安全等级业务;所述第二子系统处理第二安全等级业务或非安全等级业务,其中,所述第一安全等级高于所述第二安全等级,所述第一安全等级和所述第二安全等级为车辆安全完整性等级ASIL中的等级,所述非安全等级为质量管理QM。
- 根据权利要求12-22任一项所述的方法,其特征在于,所述中断控制器为所述芯片内唯一的中断控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/141102 WO2022141128A1 (zh) | 2020-12-29 | 2020-12-29 | 一种安全隔离装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116635858A true CN116635858A (zh) | 2023-08-22 |
Family
ID=82259911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080107977.7A Pending CN116635858A (zh) | 2020-12-29 | 2020-12-29 | 一种安全隔离装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230342503A1 (zh) |
EP (1) | EP4261727A4 (zh) |
CN (1) | CN116635858A (zh) |
WO (1) | WO2022141128A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115048679B (zh) * | 2022-08-15 | 2022-12-27 | 南方电网数字电网研究院有限公司 | 一种融合片内安全防护功能的多业务分区隔离芯片 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183402B2 (en) * | 2012-08-17 | 2015-11-10 | Broadcom Corporation | Protecting secure software in a multi-security-CPU system |
CN104318182B (zh) * | 2014-10-29 | 2017-09-12 | 中国科学院信息工程研究所 | 一种基于处理器安全扩展的智能终端隔离系统及方法 |
CN109670312A (zh) * | 2017-10-13 | 2019-04-23 | 华为技术有限公司 | 安全控制方法及计算机系统 |
CN108549812A (zh) * | 2018-03-12 | 2018-09-18 | 深圳市元征科技股份有限公司 | 基于Trustzone的安全隔离方法、安全隔离装置及车载终端 |
CN108647534B (zh) * | 2018-05-15 | 2020-08-18 | 中国科学院信息工程研究所 | 一种基于双隔离的安全显示系统及方法 |
US10673439B1 (en) * | 2019-03-27 | 2020-06-02 | Xilinx, Inc. | Adaptive integrated programmable device platform |
CN112528345A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 通信方法、装置、计算机可读存储介质和芯片 |
CN111382445B (zh) * | 2020-03-03 | 2023-04-07 | 首都师范大学 | 利用可信执行环境系统提供可信服务的方法 |
-
2020
- 2020-12-29 CN CN202080107977.7A patent/CN116635858A/zh active Pending
- 2020-12-29 WO PCT/CN2020/141102 patent/WO2022141128A1/zh active Application Filing
- 2020-12-29 EP EP20967476.1A patent/EP4261727A4/en active Pending
-
2023
- 2023-06-29 US US18/344,404 patent/US20230342503A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4261727A1 (en) | 2023-10-18 |
WO2022141128A1 (zh) | 2022-07-07 |
US20230342503A1 (en) | 2023-10-26 |
EP4261727A4 (en) | 2023-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941259B2 (en) | Communication method, apparatus, computer-readable storage medium, and chip | |
US9098321B2 (en) | Method and computer for controlling virtual machine | |
US8830228B2 (en) | Techniques for enabling remote management of servers configured with graphics processors | |
US8954963B2 (en) | Method and apparatus for resetting a physical I/O adapter without stopping a guest OS running on a virtual machine | |
US8387043B2 (en) | USB port shared control method in a plurality of virtual machines | |
US8141093B2 (en) | Management of an IOV adapter through a virtual intermediary in an IOV management partition | |
US8141092B2 (en) | Management of an IOV adapter through a virtual intermediary in a hypervisor with functional management in an IOV management partition | |
JP5305866B2 (ja) | データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム | |
US20130339479A1 (en) | System and Method for Providing a Processing Node with Input/Output Functionality by an I/O Complex Switch | |
EP4031963B1 (en) | Tracing status of a programmable device | |
CN108182036B (zh) | 一种多芯片系统存储实现装置及方法 | |
CN116450046A (zh) | 云盘实现方法、装置、智能网卡、服务器及存储介质 | |
CN114817105A (zh) | 设备枚举的方法、装置、计算机设备以及存储介质 | |
US20230342503A1 (en) | Security Isolation Apparatus and Method | |
CN108062234B (zh) | 一种通过mailbox协议实现服务器主机访问BMC FLASH的系统及方法 | |
CN116204458A (zh) | 一种运行进程的方法及装置 | |
CN114185603B (zh) | 一种智能加速卡的控制方法、服务器及智能加速卡 | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
CN112948315B (zh) | 存储区域共享方法、存储介质及电子设备 | |
CN111611014B (zh) | 一种满足do178c标准的多安全级软件同时运行方法 | |
US9785519B1 (en) | Driver switch for device error recovery for assigned devices | |
KR20230137757A (ko) | 메일 박스들을 이용한 가상 머신들 사이의 통신 방법, 상기 통신 방법을 수행하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 차내 인포테인먼트 시스템 | |
CN117434862A (zh) | 一种舱驾融合系统、故障监测方法及相关设备 | |
CN118642979A (zh) | 适用不同类型PCIe Switch连接设备的统一排序方法及系统 | |
CN116204486A (zh) | 一种fpga裸金属服务器的实现方法及系统 |
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 |