CN112602086B - 安全外设互连件 - Google Patents
安全外设互连件 Download PDFInfo
- Publication number
- CN112602086B CN112602086B CN201980055703.5A CN201980055703A CN112602086B CN 112602086 B CN112602086 B CN 112602086B CN 201980055703 A CN201980055703 A CN 201980055703A CN 112602086 B CN112602086 B CN 112602086B
- Authority
- CN
- China
- Prior art keywords
- peripheral
- secure
- channels
- channel
- bus
- 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
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 377
- 230000007781 signaling event Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 description 71
- 238000001914 filtration Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000011664 signaling Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 208000032182 acquired hemophilia B Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
一种集成电路设备(1)包括:连接至处理器(4)的总线系统(2);多个外设(12、14、16、17),每个外设均被连接至总线系统(2);硬件滤波器逻辑(24、26);以及与总线系统(2)分开并且被连接至外设(12、14、16、17)的外设互连件系统(28)。对于每个外设,硬件滤波器逻辑(24、26)存储确定该外设是否处于安全状态的相应值。外设互连件系统(28)提供一组一个或多个信道以用于用信号发送外设(12、14、16、17)之间的事件。至少一个信道是安全信道(34)或可配置为安全信道(34)。外设互连件系统(28)被配置为允许来自处于安全状态的外设(12、14、16、17)的事件信号通过安全信道(34)被发送,并且防止来自处于非安全状态的外设(12、14、16、17)的事件信号通过安全信道(34)被发送。
Description
技术领域
本发明涉及具有外设互连件(peripheral interconnect)的集成电路设备及其操作方法。
背景技术
诸如片上无线电设备的集成电路设备通常包括一个或多个处理器以及一定数量的外设,这些外设通过总线(诸如ArmTM AMBA(高级微控制器总线体系结构)总线系统)被连接至处理器。外设的示例包括计时器、密码协处理器、串行接口(例如,SPI或UART)和嵌入式无线电收发器。
在简单的体系结构中,处理器通过总线直接与每个外设进行通信。这些外设仅与处理器通信,而不与彼此直接通信。这是低效的。
申请人先前已经在WO 2013/088121中描述了外设到外设的通信系统。这样提供可编程外设互连件(PPI),其能够由处理器进行配置,以便第一外设可以向第二外设发送事件信号,以使第二外设响应于第一外设的事件执行任务。PPI中的信道可以配置为通过写入与事件输出以及与任务输入相关联的地址值作为映射表中的条目,将第一外设的事件输出连接至第二外设的任务输入。
例如,可以对这样的PPI进行编程,以在串行接口外设的事件输出和密码处理器的任务输入之间创建信道。当外设完成通过串行接口的数据接收并将数据写入预定的存储器地址时,事件信号可用于发出信号。任务信号可以使密码处理器从预定的存储器地址中读取数据,并且将该数据输入到加密操作。PPI信道将事件连接至任务,以便响应于串行接口外设信令已完成将数据写入存储器的操作来启动加密操作。可以在发生信令时发生这种信令,而不必唤醒处理器,从而节省功率,并且有可能还带来更快且更准确的设备时序。
在US5579531A(三菱)中提供了外设互连件系统的另一个示例。它公开了一组信号线或事件总线,可使用多路复用器将外设连接至该组信号线或事件总线,以便可以在外设之间传输信号。
但是,申请人已经认识到外设互连件系统在某些情况下会带来安全风险。
集成电路设备的存储器可以包含应当被限制访问的敏感信息,诸如数据或软件代码。同样,某些外设(诸如,密码加速器)可能会处理敏感数据或提供其他敏感功能。因此,可能希望将对某些存储器区域和/或某些外设的访问限制为仅对“受信任的”软件代码(诸如由设备制造商开发的代码)进行访问,并且阻止对其他代码的访问(诸如由第三方开发的应用程序代码)。
ArmTM TrustZone为兼容性ArmTM微控制器(例如,CortexTM-M33)提供两种操作状态:“安全”和“非安全”。
产品设计人员可以将存储器的某些区域和/或某些外设(例如,密码处理器)指定为“安全世界”资源,而存储器和外设的其他区域则没有这样指定。可以将设备存储器映射(涵盖所有系统存储器和所有存储器映射的外设寄存器)划分为安全和非安全地址范围。外设可能是永久性的“安全”或“非安全”,或者其状态可以通过软件通过外设保护控制(PPC)寄存器进行配置。总线结构中的硬件逻辑确保“非安全世界”软件无法直接访问“安全世界”资源,从而在敏感资源周围提供安全范围。总线基础结构部件可以支持对存储器部件中的存储器空间进行分区,以阻止对安全存储器的非安全访问。
安全事务只能通过安全软件或经过测试的授权调试器生成。非安全(不可信)软件应用无法直接访问安全(可信)资源,但必须通过由安全软件提供的API请求访问。这些API可以实施认证检查,以决定是否允许访问安全服务。这种方法使得可能已经损害非安全软件代码的一部分的攻击者更难以访问此类设备上存储的敏感信息或者或者使软件错误无意间无法访问安全资源。
但是,申请人已经认识到,攻击者有可能使用外设互连件系统来损害这种设备或其他安全设备的安全性。
本发明旨在提供一种外设到外设的通信的更安全方法。
发明内容
根据第一方面,本发明提供了一种集成电路设备,其包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
与所述总线系统分开并且被连接至所述多个外设的外设互连件系统,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;
所述外设互连件系统提供一组一个或多个信道以用于用信号发送(signalling)所述多个外设之间的外设之间的事件;
所述一组信道中的至少一个信道是安全信道,或者可配置为安全信道;
所述外设互连件系统被配置为允许来自处于所述安全状态的外设的事件信号通过一组信道中的安全信道被发送;并且
所述外设互连件系统被配置为防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送。
根据第二方面,本发明提供了一种操作集成电路设备的方法,其中所述集成电路设备包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
外设互连件系统,其与所述总线系统分开并且被连接至所述多个外设,提供一组一个或多个信道以用于用信号发送所述多个外设的外设之间的事件,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;并且
一组信道中的一个信道是安全信道,或者可配置为安全信道,
所述方法包括:
所述外设互连件系统允许来自处于所述安全状态的外设的事件信号通过所述安全信道被发送;并且
所述外设互连件系统防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送。
因此,将看到,根据本发明,集成电路设备具有外设互连件系统,该外设互连件系统提供一个或多个安全信道,只有安全外设可以在通过所述一个或多个安全信道用信号发送事件。这样,安全外设可以被安全地预订到安全信道,以便通过安全信道接收事件信号,并且响应该事件信号执行任务,而不必担心该事件信号可能已经由非安全外设发送。
这样防止外设互连件系统用于从非安全外设(即,处于非安全状态的外设)触发安全外设上的任务。如果没有这种保护,现有技术的系统可能会潜在地允许恶意非安全代码使用PPI触发安全外设来执行非安全代码无法访问的任务(例如,将有害数据写入安全存储器区域)。
外设互连件系统可以进一步被配置为允许处于安全状态的外设通过安全信道接收事件信号,但是防止未处于安全状态的外设通过安全信道接收事件信号。这样可以通过阻止非安全外设预订安全信道来提供进一步的安全性,否则该非安全外设可能会通过检测事件来允许信息从“安全世界”泄漏到“非安全世界”来自非安全外设的安全外设的信号。
总线系统可以被配置为承载总线事务并且承载安全状态信号以用于区分安全总线事务和非安全总线事务。硬件滤波器逻辑可以被连接至总线系统。硬件滤波器逻辑可以被配置为至少取决于:i)每个总线事务的安全状态,以及ii)总线事务是否寻址处于安全状态的外设,以允许或阻止总线系统上的总线事务。
该组信道可以包括多个信道,例如,两个、五个、十个或更多个信道。外设互连件系统可以被配置为防止来自未处于安全状态的外设的事件信号通过任何安全信道发送。每个外设可以包括一个或多个事件输出和/或一个或多个任务输入。每个事件输出可以是可连接至一个或多个信道中的任何一个。每个任务输入可以是可连接至信道中的任何一个。具有事件输出的每个外设可以包括用于将事件输出连接至信道中的可选择信道的多路复用器。这样,可以将来自事件输出的事件信号发布到所选信道上。可以通过外设的寄存器接口控制信道的选择。具有任务输入的每个外设可以包括多路分配器,用于将信道中的可选信道连接至任务输入。通过这种方式,可以预订外设的任务输入以接收来自所选信道的事件信号。同样,可以通过外设的寄存器接口来控制信道的选择。在一些实施例中,信道可以从一个或多个外设接收事件,并且信道可以将事件输出到一个或多个外设,即,在一些实施例中,多个外设可以预订同一信道。
外设互连件系统或硬件滤波器逻辑可以提供用于将信道组中的信道配置为安全信道的寄存器接口。未配置为安全信道的信道可以是非安全信道。如果在硬件滤波器逻辑处设置每个信道的安全状态,则设备可以包括用于将安全状态值从硬件滤波器逻辑传达到外设互连件系统的通信路径(例如,一组线)。外设互连件系统可以被配置为允许来自安全和非安全外设的事件信号通过非安全信道被发送。它可以被置为允许处于安全状态的外设和处于非安全状态的外设通过非安全信道接收事件信号。
外设互连件系统可以包括可通过总线系统访问的互连件控制器外设。互连件控制器可以提供用于控制外设互连件系统的寄存器接口。它可以提供用于优选地单独地启用和禁用每个信道的接口。互连件控制器外设可以处于或可以支持非安全状态,以使得其寄存器接口的至少第一部分可被非安全总线请求访问。但是,它可能另外是分体式安全外设,这意味着寄存器接口的第二部分不能被非安全总线请求写入和/或不能被非安全总线请求读取。
特别地,寄存器接口可以包括第一硬件寄存器和第二硬件寄存器。互连件控制器外设可以包括用于从总线系统接收安全状态信号的输入。
互连件控制器外设可以支持分体式安全状态,其中互连件控制器外设被配置为:
防止非安全总线事务访问第一硬件寄存器;
允许安全总线事务访问第一硬件寄存器;并且
允许非安全总线事务访问第二硬件寄存器。
它还可以被配置为允许安全总线事务访问第二硬件寄存器。
此分体式安全状态与标准非安全外设状态不同,在标准非安全外设状态中,准予非安全总线请求对外设的所有寄存器接口的完全访问权限。相反,分体式安全状态允许互连件控制器外设在单个寄存器或一组寄存器各自中的控制器内部应用安全保护。
特别地,互连件控制器外设优选地防止非安全总线事务访问与一个或所有安全信道的配置有关的一个或多个寄存器(可以是位域位置)。第一硬件寄存器可以确定安全信道或安全信道组是启用还是禁用。因此,互连件控制器外设可以被配置为防止非安全总线请求禁用安全信道。这样,非安全软件不会意外或恶意禁用安全信道,否则可能会干扰设备的正常运行。第二硬件寄存器可以涉及一个或多个非安全信道;它确定是启用还是禁用非安全信道或一组非安全信道。
如果非安全总线事务尝试读取第一硬件寄存器,则不管数据内容如何,互连件控制器外设都可能返回零。如果非安全总线事务尝试写入第一硬件寄存器,则互连件控制器外设可能会忽略该写入请求。
互连件控制器外设可以提供用于将两个或更多个信道分组为一组的接口。它可以提供用于通过单个数据写入来启用和/或禁用一组信道的接口(例如,取决于位字段中单个位的值)。外设互连件系统可以被配置为当组中的至少一个信道是安全信道时,防止来自不处于安全状态的外设的事件信号通过组的任何信道被发送。类似地,它可以防止处于非安全状态的外设通过组中的任何一个信道接收事件信号,其中该组中的至少一个信道是安全信道。外设互连件系统可以被配置为使得,仅当组中的所有信道都不安全时,非安全外设才可以通过组中的任何信道发送或接收事件信号。
处理器可以在安全状态与非安全状态之间切换。处理器可以例如通过在处理器上执行的软件指令来确定其自身的安全状态。它可以被配置为在处于安全状态时启动安全总线事务,并且在处于非安全状态时启动非安全总线事务。该设备可以包括可以发起安全和/或非安全总线事务的一个或多个其他处理器或其他总线主控。
硬件滤波器逻辑可以包括用于将每个外设的安全状态传达到外设互连件系统的通信路径(例如,一组线)。外设互连件系统可以包括硬件信道阻塞逻辑,用于防止非安全外设通过安全信道发送事件信号和/或用于防止非安全外设从安全信道接收事件信号。硬件信道阻塞逻辑可以被配置为使用外设的安全状态来确定是否允许事件信号由外设通过安全信道被发送和/或由外设从安全信道接收事件信号。它可以防止确定为不允许的事件信号。当阻止访问信道时,外设互连件系统可以简单地阻止事件信号(例如,在与安全信道的连接点),或者可以阻止事件信号,并另外通过例如向设备发送错误状态信号生成处理器中断。
如由存储在硬件滤波器逻辑中的值所表示的外设的安全状态可以是固定的(即,硬连线的)或可以是可配置的(例如,存储在易失性或非易失性寄存器中)。该值可以是单个位(即安全或不安全),也可以是更复杂的数据。硬件滤波器逻辑可以提供寄存器接口(例如,通过系统保护单元),用于控制一个或多个外设是否处于安全状态(以及可选地用于设置其他部件(包括一个或多个存储器区域)的安全状态)。在处理器上执行的软件(例如,引导加载程序代码)可以设置多个外设中其安全状态是可配置的任何外设的安全状态(例如,通过写入此类系统保护单元的寄存器)。一旦设置了外设的安全状态,就可以设置硬件滤波器逻辑,以防止进一步更改,直到下次重置设备为止,尽管这不是必需的。
用于总线系统的硬件滤波器逻辑可以被配置为根据滤波规则允许总线系统上的总线事务,针对每个外设,这些滤波规则取决于外设是否处于安全状态、外设是否应接收由处理器发起的安全总线事务、以及外设是否应接收由处理器发起的非安全总线事务。更一般地,针对主部件(例如,处理器和任何其他处理器或总线主外设)和从部件(例如,外设和存储器区域)的每对配对,滤波规则可以确定从部件是否应接收由主部件发起的安全总线事务、以及从部件是否应接收由主部件发起的非安全总线事务。滤波规则可以在部件级处而不是地址级处被指定。换句话说,可以通过硬件滤波器逻辑以相同的方式处理分配给特定外设或存储器区域的每个地址的总线事务。
硬件滤波器逻辑可以被配置为在总线系统中的一个或多个点处拦截和滤波总线事务。它可以包括一个或多个滤波器单元,用于在相应拦截点处拦截总线事务。硬件滤波器逻辑可以防止非安全总线事务访问处于安全状态的安全存储器区域和/或外设。硬件滤波器逻辑可以被配置为使用i)被拦截的总线事务的从地址,ii)被拦截的总线事务的安全状态,和iii)与该从地址相关联的外设或存储器区域的安全状态,以用于根据滤波规则确定是否允许拦截的总线事务。它可能会阻止被确定为不允许的拦截的总线事务。
外设可以是任何外设部件。它们可以包括接口外设,例如SPI(串行外设接口)外设、UART(通用异步收发器)外设、两线接口外设、I2C(集成电路间)外设。它们可以包括数据转换外设,例如ADC(模数转换器)外设、DAC(数模转换器)外设、PWM(脉冲宽度调制)外设、正交解码器外设或加密协处理器。它们可以包括外设互连件控制器本身。
设备可以包括存储器。存储器可以包括易失性存储器(例如RAM)和/或非易失性存储器(例如闪存)。硬件滤波器逻辑可以包括用于控制对存储器的访问的存储器控制器。存储器可以包括一个或多个安全区域和一个或多个非安全区域。由硬件滤波器逻辑实现的滤波规则可以根据总线主机的安全状态和/或存储器区域的安全状态来确定总线主机是否可以访问存储器的区域。存储器可以存储由处理器执行的软件。
外设可以具有相应的存储器映射寄存器接口,其可通过总线系统进行访问。设备可以实现全局存储器映射,该全局存储器映射将相应的地址分配给一个或多个存储器(例如,RAM和闪存)以及相应的外设。
硬件滤波器逻辑可以是硬件状态机。它可以包括任意数量的逻辑门。其优选地不包含通用处理器。它可以包括一个或多个可以通过总线系统寻址的输入或输出寄存器,尽管这不是必需的。
安全状态信号可以通过总线系统中的安全状态信号线被发送。安全状态信号线可以是仅用于指示安全状态的专用线。该线可以是单个位线。在一些实施例中,安全状态信号线可以被断言以指示安全总线事务,并且可以被解除断言以指示非安全总线事务。在其他实施例中,可能是相反的方式。通常,将理解的是,在一些实施例中,输出表示非安全状态的安全状态信号可以包括不输出表示安全状态(即,保持沉默)的信号,反之亦然。
在一些实施例中,总线系统是AMBA总线系统。它可以包括一个或多个AHB和/或一个或多个APB。总线系统可以实现AHB 3、AHB 5或更高规格。可以通过AHB HNONSEC信号线发送安全状态信号,例如,通过解除断言HNONSEC来传达安全状态信号。
将理解的是,一些实施例可以支持用于主部件和/或用于从部件的两种以上的安全状态,例如具有三种状态:非安全状态、安全状态和非常安全状态。总线系统可以被配置为承载针对每个总线事务在三种或更多种安全状态之间进行区分的安全状态信号。外设互连件系统可以使信道处于三种或更多种安全状态之一,并且可以限制向具有等于、或大于或等于相应通道的安全状态的安全状态的外围设备输出和/或接收事件信号。
集成电路设备可以是片上系统、多处理器片上系统、片上无线电设备或任何其他形式的集成电路。
尽管外设互连件优选地与总线系统分开,但是这并不是在所有方面都是必需的。
因此,根据另一方面,本发明提供一种集成电路设备,所述集成电路设备包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
连接至多个外设的外设互连件系统,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;
所述外设互连件系统提供一组一个或多个信道以用于用信号发送所述多个外设的外设之间的事件;
所述一组信道中的至少一个信道是安全信道,或者可配置为安全信道;
所述外设互连件系统被配置为允许来自处于所述安全状态的外设的事件信号通过一组信道中的安全信道被发送;并且
所述外设互连件系统被配置为防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送。
根据另一方面,本发明提供一种操作集成电路设备的方法,其中所述集成电路设备包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
外设互连件系统,其被连接至所述多个外设,提供一组一个或多个信道以用于用信号发送所述多个外设的外设之间的事件,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;并且
一组信道中的一个信道是安全信道,或者可配置为安全信道,
所述方法包括:
所述外设互连件系统允许来自处于所述安全状态的外设的事件信号通过所述安全信道被发送;并且
所述外设互连件系统防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送。
本文所述的任何方面或实施例的特征可以在适当的情况下应用于本文所述的任何其它方面或实施例。在参考不同的实施例或实施例组时,应当理解,这些不一定是不同的而是可以重叠。
附图说明
现在将参考附图仅通过举例的方式来描述本发明的某些优选实施例,在附图中:
图1是体现本发明的集成电路设备的示意图;
图2是集成电路设备的示意图,示出了总线系统和总线滤波的更多细节;
图3是集成在设备上的分体式安全外设的寄存器接口的示意图;
图4是集成在设备上的另一分体式安全外设的寄存器接口的示意图;以及
图5是示出集成在设备上的分布式可编程外设互连件(DPPI)的更多细节的示意图。
具体实施方式
图1示出了根据本发明的实施例的片上系统(SoC)集成电路设备1。
设备1包括将处理器4和其他总线主机6连接至RAM 8、闪存10和示例性外设12、14、16、17的总线互连件系统2。外设12、14、16、17具有可通过总线系统2寻址的输入和/或输出寄存器(即,存储器映射的I/O)。
总线系统2可以包括多个互连的总线。在一些实施例中,它是ArmTM AMBA(高级微控制器总线体系结构)总线系统,并且包含一个或多个ArmTM AHB(高级高性能总线)和一个或多个ArmTM APB(高级外设总线)。
主部件4、6被配置为在总线互连件系统2上发布总线请求。总线主机6可以是其他处理器、具有内置DMA控制器的外设、或任何其他总线主机。总线请求可以是安全总线请求,也可以是非安全总线请求,这取决于主部件4、6的安全属性。处理器4的安全属性是可变的,这取决于处理器4的当前状态—它通常在处理器4上执行的软件的控制下。其他总线主机6的安全属性可以是固定的(即,硬连线的)或可变的。
存储器8、10和外设12、14、16、17被配置为根据存储器或外设的相应安全属性响应于某些请求。RAM 8和闪存10可以被划分为分配有不同的相应安全属性的区域(即,“安全”存储器区域和“非安全”存储器区域)。
各种存储器区域和外设可以响应于安全请求、非安全请求或这两种类型的请求。每个存储器区域或外设的安全属性可以在设计阶段固定,或可以是可动态配置的。
某些外设12可以被(永久地或可切换地)指定为“非安全”外设,并且具有其所有功能可用于处于非安全状态的总线主机4、6。一些外设14可以被(永久地或可切换地)指定为“安全”外设,并且其所有功能仅对处于安全状态的总线主机4、6可用。另一些外设16也可以是“分体式安全”外设,并且当(永久或可切换地)指定为“非安全”外设时,此类外设16将具有非安全总线主机4、6可访问的一些功能以及仅安全总线主机4、6可访问的其他功能。
一些外设17是总线系统2上的从部件,但还包含DMA(直接存储器访问)控制器,这些控制器允许它们充当总线主机,例如,无需处理器4参与即可从RAM 8读取或写入数据。
设备1还包括通用输入/输出(GPIO)控制器30,其控制对GPIO引脚31、32的访问,设备1外部的设备可以连接至这些GPIO引脚。每个GPIO引脚31、32可以具有分配给它的安全属性。GPIO控制器30具有寄存器接口并且用作另一外设。
设备1还包括分布式可编程外设互连件(DPPI)28。DPPI 28提供与总线系统2分开的互连件矩阵,该互连件矩阵连接外设12、14、16,并且允许一个外设向一个或多个其他外设用信号发送“事件”。通过预订接收方外设在DPPI 28上接收“事件”信号可以触发另一外设的任务。
DPPI 28提供多个信道34、36(在图1中示出两个示例性信道,但是可以具有两个以上的信道),这些信道将事件输出连接至任务输入。外设12-16包含多路复用器,所述多路复用器可由处理器4通过相应的寄存器接口控制,用于将外设的事件输出预订到特定信道,并且用于将外设的任务输入预订到特定信道。
DPPI 28提供用于配置总线系统2上的信道的寄存器接口,并且实际上是另一个从外设。
当处理器4处于睡眠状态时,DPPI 28可用于支持外设到外设的通信,从而与总线系统2上的处理器介导的通信相比,可节省大量功率。
每个信道34、36可以被定义为安全34或非安全36。只有“安全”外设14才能访问安全信道,以向另一个外设发布事件或预订该信道。如果“非安全”外设12(其可以是当设置为“非安全”状态时的分体式安全外设16)尝试在安全信道34上推送事件,那么将不会发生任何事情。如果非安全外设12、16试图预订安全信道34,则它将看不到该信道上的任何事件。
总线系统2还包括实现定义的属性单元(IDAU)18、主侧安全控制逻辑20和从侧安全控制逻辑22。总线系统2连同该安全控制逻辑20、22和属性单元18在本文中被称为设备1的安全系统逻辑24。
该硬件安全系统逻辑24实现滤波规则,这些滤波规则针对主部件4、6和从部件12、14、16的每对配对,确定从部件是否可接收来自主部件的安全总线请求、以及从部件是否可接收到来自主部件的非安全总线请求。滤波规则还可以确定主部件4、6对RAM 8和/或闪存10的定义区域的访问许可。
这些滤波规则通常是根据设计针对以下的每种可能的配对而固定的(即,硬连线的):i)安全主机至安全外设或存储器区域;ii)安全主机至不安全外设或存储器区域;iii)非安全主机至安全外设或存储器区域;以及iv)非安全主机至非安全外设或存储器区域。然而,在一些实施例中,滤波规则可以是可配置的,例如,这至少部分地取决于存储在闪存10中的配置数据。滤波规则可能是相对简单的—例如,无论从设备处于安全状态还是非安全状态,每个安全总线主机都可以访问每个从部件(即,每个外设和每个存储器区域),而每个非安全总线主机只能访问非安全从部件,并被阻止访问任何安全的从部件。替代地,滤波规则可以更复杂—例如,将不同的访问权限分配给不同的总线主机和/或不同的从部件,以使得例如,当第一处理器处于安全状态时,第一处理器可以访问安全外设,而第二处理器根本无法访问相同的安全外设。
设备1还包括系统保护单元(SPU)26。SPU 26用作系统中的中心点,以控制对存储器、外设和其他资源的访问。SPU 26和安全系统逻辑24一起提供以下特征:
-ArmTM TrustZoneTM支持,从而允许定义安全存储器区域、非安全存储器区域和非安全可调用存储器区域;
-保护存储器区域和外设免受非处理器主设备(诸如,DMA控制器)的影响;
-DPPI 28访问保护,从而防止非安全代码发布或预订到安全的DPPI信道;
-GPIO引脚访问保护,从而防止非安全代码和外设读取或更改安全引脚31、32的状态;和
-外部域访问保护,从而控制来自其他微控制器的访问权限。
SPU 26提供的寄存器接口包括一组配置寄存器,用于控制安全系统逻辑24的各种内部逻辑块18、20、22,这些内部逻辑块监视对存储器映射从设备(RAM 8、闪存10、外设12-17等)和其他资源(设备引脚31、32,DPPI信道等)的访问。SPU 26的状态确定所有非安全感知总线主机6和从部件8、10、12-17的安全状态。SPU 26还提供用于将DPPI信道和GPIO引脚设置为安全或不安全的接口。SPU的寄存器接口本身仅可以通过来自处理器4的安全总线请求来写入。寄存器接口还可以包含“锁定”位,这些位一旦被设置就防止对SPU寄存器接口的相应部分的内容进行进一步更改,直到下次重置设备1为止。以这种方式,安全启动代码可以在启动过程中配置SPU 26,然后锁定设备1的安全状态,直到下次重置为止。
主侧安全控制逻辑20和从侧安全控制逻辑22提供许多滤波器单元(或防火墙),它们拦截总线传输并且实现滤波规则。这些监视器对RAM 8、闪存10、存储器映射的外设12、14、16、17(包括GPIO控制器30)和DPPI 28的访问。
滤波器单元可以位于总线系统2的边缘处和/或总线矩阵内的点处,诸如在各个总线之间的桥处和/或在总线仲裁器处和/或在总线系统2的两层之间。至少一个防火墙位于总线系统2内,远离总线系统2的边缘。滤波器单元将每个拦截的总线传输的地址、安全状态(安全或非安全)和访问类型(数据读取、数据写入、指令提取)与SPU 26中提供的安全性定义进行比较。总线传输的安全状态由启动总线传输的主部件的安全状态确定,可以是“安全”或“非安全”。在其他实施例中,可以支持多种安全状态或级(即,不止两种状态)。
当检测到禁止访问时,防火墙阻止传输(如果是读取访问,则返回零,或者阻止写入操作)。在一些实施例中,滤波器单元可以通过总线系统2提供错误信号和/或可以触发处理器中断或系统复位。
在SPU 26的控制下,IDAU 18可以用于向处理器4指示特定的存储器地址是安全的还是不安全的。对于支持Cortex-MTM的ARMTM TrustZoneTM的CPU 4,SPU 26控制IDAU 18为以下各项提供全面支持:
-Cortex-MTM的ARMTM TrustZoneTM相关的指令,诸如TT,用于报告区域的安全属性;和
-非安全可呼叫(NSC)区域,用于实现来自非安全代码的安全入口点。
图2示出了许多与图1相同的部件,所有相似的部件均标有与图1相同的附图标记。
总线系统2被示为包括第一AHB 201、第二AHB 202、第一APB 208和第二APB 208。第一AHB 201通过桥204连接至第二AHB 202。示出了连接至总线系统2的各种示例性从外设13a-13f(可以与图1所示的外设12、14、16、17重叠)。具有集成的DMA控制器的一个示例性外设17作为总线主机连接至第一AHB 201。当然,总线主机可能比所示的要多(例如:十个、二十个、五十个或更多个),从外设也可能比所示的更多(例如:一百个、两百个或更多个)。
图2提供了图1中示意性表示的控制逻辑20、22如何与总线系统2集成的更多细节。通过定位于总线系统的边缘处的一组边缘滤波器单元212a-212e、以及定位于总线系统2内的点处的一组内部滤波器单元214a-214d来实现控制逻辑20、22,所有这些单元通过控制线210进行连接。边缘滤波器单元212中的一些位于诸如处理器4和示例性的配备有DMA的外设17的主部件附近,而其他边缘滤波器位于诸如从外设13a的从部件附近。内部滤波器单元214定位于AHB 201、202和APB 206、208的仲裁器处或总线系统2中的成对的层之间。以此方式,与要使用邻近相应总线主机的边缘滤波器单元212实施这些规则相比,内部滤波器单元214可以更有效地实施适用于一个以上总线主机的主从滤波规则。
滤波器单元212、214被配置为防止不符合滤波规则的总线传输。对于主机的给定安全状态和从机的给定安全状态,每个主从对的滤波规则由控制逻辑20、22硬连线。
但是,主机2、17和从机(RAM 8、闪存10和示例性外设13a-f)中的至少一些的安全状态是可配置的,由部件本身设置(部件具有安全感知),或通过系统保护单元(SPU)26为所有非安全感知部件设置。对于管理自己的安全状态的部件,其当前的安全/不安全状态通过线路分布到滤波器逻辑20、22中的相关点;这种分布可以直接从部件到滤波器逻辑20、22,也可以通过SPU 26发送状态。SPU 26是唯一可以配置本质上不是安全感知的部件的安全属性的地方。
在一些实施例中,可以通过写入SPU 26中的寄存器来定义RAM 8和闪存10内的安全区域的大小和位置,例如,通过写入起始地址和结束地址。在其他实施例中,RAM 8和闪存10被预划分为固定区域,每个固定区域可以具有通过SPU 26设置的相应的安全状态。例如,RAM 8可以被划分为每个8KiB的16个区域,并且闪存10可以被划分为每个32KiB的32个区域。
对于每个存储器区域,可以通过SPU 26独立配置四种不同类型的权限:
-“读取”:允许对区域进行数据读取访问(从该区域提取代码不受读取权限控制,但是受下文所述的执行权限控制);
-“写入”:允许对该区域进行写入访问;
-“执行”:允许从该区域提取代码(即使是禁用数据读取);和
-“安全”:仅允许安全总线访问。
对于每个安全管理部件,SPU 26中至少有一条相应的线将该部件的安全状态作为一位值传达到控制逻辑20、22(即,传达到适当的滤波器单元212、214)。SPU 26还可以将总线系统2内的路径以及部件组的安全状态传达给总线系统中的滤波器逻辑20、22、212、214。
SPU 26允许软件开发人员将不安全感知的处理器和不安全感知的外设视为安全感知部件,即使它们本质上不是安全感知的。由SPU 26为非安全感知部件输出的安全状态可以由存储在SPU配置寄存器中的配置设置来确定。这些配置寄存器可以在每次重置后由引导加载程序写入,或者可以由任何其他适当的机制进行配置。
对于某些外设12、13、14、17(通常是大多数外设),整个外设始终完全处于安全状态或完全处于非安全状态,并且不论特定的存储器地址如何,都将相同的安全和非安全滤波规则应用于寻址到外设的总线请求。
同样,对于此类外设12、13、14、17,由外设执行的任何DMA访问也都被分配为与外设相同的安全状态,即,使得当SPU 26已经将外设17配置为处于安全状态时,将在由外设17的DMA控制器发起的所有总线事务上设置安全信号,并且当外设17处于非安全状态时,所有外设的DMA访问也将是非安全的。
然而,对于其他外设13,情况并非一定如此。某些外设16可能是“分体式安全性”外设,而其他外设则可能具有非标准的DMA安全行为,如下所解释的。
当设置为非安全状态时,分体式安全外设16在系统级处显示为非安全部件,即通常响应于安全和非安全总线请求。然而,在内部,外设16可以具有分配给外设的不同寄存器的不同安全状态,因此与非安全总线请求相比,对安全总线请求的响应不同。特别地,外设16可以是寄存器接口,这些寄存器接口当由安全总线请求寻址时提供对功能或信息的访问,但是当由非安全总线请求寻址时显得空白或无响应。
图3示出了用于分体式安全外设16的寄存器接口300的示例。该外设16具有两组“非安全”寄存器302、304,被示出为阴影区域,它们通常将由非安全主机访问(并且还可以由安全主机访问,这取决于实现的滤波规则)。两个非阴影寄存器306是安全寄存器,并且通常将仅由安全主机可访问。如果非安全总线请求试图读取安全寄存器306之一,则外设16将返回零值。如果非安全总线请求试图写入安全寄存器306之一,则外设16将忽略该写入操作。
注意,与安全外设相反,非安全总线请求没有被总线系统2中的防火墙滤波,而是被允许到达外设16。因此,外设16自身随总线请求一起从总线系统2读取安全信号,并基于总线请求的安全状态确定如何响应。
分体式安全外设16可以通过SPU 26在安全状态与非安全状态之间切换,在该安全状态中,非安全状态总线事务将在总线系统2中被滤波并且不会到达外设16,该非安全状态等同于分体式安全状态。
图4还示出了用于另一分体式安全外设的不同寄存器接口400的示例。在这种情况下,所有寄存器402都是非安全的,但是特定的位字段404和406是安全的位字段,这些位字段通常只有安全代码才能访问。在试图读取这些安全位字段404、406的处于非安全状态的处理器4上执行的任何代码将读取零位,而与这些位的实际值无关。
如前所述,安全状态是按外设而不是地址范围定义的。
具有硬连线的“非安全”安全性映射的外设的存储器映射I/O地址以0x4XXX_XXXX开头。
具有硬连线的“安全”安全性映射的外设的存储器映射I/O地址以0x5XXX_XXXX开头。
具有用户可选的安全性映射的外设可从以下地址开始:
-0x4XXX_XXXX,如果外设安全状态设置为“非安全”;和
-0x5XXX_XXXX,如果外设安全状态设置为“安全”。
具有分体式安全性映射的外设可从以下地址开始:
-如果外设安全状态设置为“非安全”,则0x4XXX_XXXX用于非安全访问,0x5XXX_XXXX用于安全访问;和
-0x5XXX_XXXX,如果外设安全状态设置为“安全”。
从安全代码或非安全代码中看不到0x4XXX_XXXX范围内的分体式安全外设的安全寄存器;对这些寄存器地址的写操作将被忽略,而读操作将返回零。安全代码可以访问0x5XXX_XXXX范围内的非安全寄存器和安全寄存器,但是从非安全代码对0x5000_0000-0x5FFF_FFFF地址范围的任何访问都将被忽略,并且生成安全故障(SecureFault)异常。
对于包括DMA控制器的外设13(主部件和从部件也是如此),标准DMA行为是针对DMA控制器输出与其所属外设相同的安全状态。但是,某些外设13(其可以包括分体式安全外设16)可以表现出非标准DMA安全行为。对于这样的外设,SPU 26提供特殊的,每个外设的配置位,当该配置位被设置时,将导致标准行为被覆盖。当该位被设置时,即使当外设本身被设置为安全状态时,外设的DMA控制器生成的访问也不安全。
当仅允许在处理器4上执行的安全代码管理外设时,但是在需要通过非安全代码访问DMA从外设输出的数据的情况下,这很有用。例如,可以将加密加速器配置为安全外设,以便只有安全操作系统代码才能对其进行控制。但是,非安全用户代码可能能够通过对操作系统进行函数调用或系统调用来调用加密操作。如果加密加速器的DMA控制器以安全模式将解密的明文输出到RAM 8或闪存10,则恶意用户代码可能会覆盖敏感数据或将恶意软件指令注入安全内核区域。通过使用SPU 26来配置密码引擎以实现非标准DMA安全行为,然后将使用非安全数据写入总线请求将明文数据写入存储器。这样防止将输出数据写入存储器的安全区域的任何可能性。这样改善设备1的安全性。
加密加速器只是一个示例;每当安全代码管理外设,但非安全代码需要访问外设产生的数据时,这种非标准DMA安全行为就很有用。
图5更详细地示出了图1的分布式可编程外设互连件(DPPI)28。DPPI 28包括DPPI控制器(DPPIC)506,其提供用于在总线系统2上配置DPPI 28的寄存器接口。DPPI控制器506是分体式安全外设的示例。
DPPI 28提供多个信道,此处标记为0、1、2、……、X-1,这些信道可以用于互连设备1的外设。图5仅通过示例示出两个外设12、14;然而,DPPI 28通常将连接至更多的外设13。每个外设包括外设核心502、502'和PPI总线504、504'。当在核心502中发生预定事件时(例如,当加密核心完成加密操作时),核心502向PPI总线504发信号。PPI总线504还可以向外设核心502发信号通知任务输入,这些任务输入指令核心502执行预定任务(例如,通过SPI连接输出数据)。如上所解释的,参考图1,DPPI 28可以被用于提供外设到外设信令,而不需要处理器中断或其他处理器介入。
任务用于触发外设12、14中的动作,例如,以开始特定的行为。外设12、14可以实现多种不同的任务。每个任务在外设的任务寄存器组中具有单独的任务寄存器。当总线主机(例如,在处理器上执行的软件)将“1”写入任务寄存器时,或者当外设本身或另一外设借助于通过DPPI 28发送的事件信号触发相应的任务信号时,可以触发任务。
事件用于通知外设12、14和处理器4有关已发生的事件的信息,例如外设的状态更改。外设12、14可以生成多个不同的事件。每个事件在外设的事件寄存器组中具有单独的事件寄存器。当外设自身触发相应的事件信号时会生成事件,从而导致事件信号被输出到该事件已被预订的任何DPPI 28信道上。事件寄存器也被更新以反映事件已经产生(例如,在处理器希望监视事件寄存器的情况下)。
通过系统保护单元(SPU)26,可以将DPPI 28的每个信道定义为“安全”或“非安全”。SPU 26包括可通过总线系统2寻址的DPPI安全属性寄存器508。DPPI安全属性寄存器508中的相应位对应于DPPI的相应信道。每个位指示其相应信道的安全状态。在此示例中,位510和516分别对应于信道0和X-1,并且在这种情况下指示这些信道是安全信道。位512和514分别对应于信道1和2,并且指示这些信道是不安全的。一旦已经配置安全属性寄存器508(例如,通过安全启动代码),就可以通过设置关联的“锁定”寄存器(未显示)中的位来锁定其内容(即,不允许进一步的写入),直到下次重置设备1为止。
只有处于安全状态的外设14才能将事件推送到安全信道。如果非安全外设12试图将事件推送到安全信道0、X-1,则将不会发生任何事情。如果非安全外设12尝试预订安全信道0、X-1,则它将看不到任何事件。非安全外设12的PPI总线504'与安全信道0、X-1之间的连接520被DPPI 28中的防火墙阻止。
DPPI控制器(DPPIC)506提供用于启用和禁用每个信道的寄存器接口。它还允许总线主机定义信道组。然后,这样允许总线主机通过一次寄存器写入方便地启用或禁用组中的所有信道。如果组中的所有信道都是不安全的,则该组将被视为是不安全的。如果该组中的至少一个信道是安全的,则该组被视为是安全的。用于启用和禁用安全信道组中的安全信道的位域位置只能由处于安全模式的总线主机写入,而用于启用和禁用非安全信道或信道组中的位域位置可以通过安全和非安全总线请求写入信道。
DPPI控制器506是分体式安全外设,因为它在总线系统2中的硬件安全系统逻辑24看来是非安全外设,但是对安全和非安全访问做出不同反应。
本领域的技术人员应当理解,本发明已经通过描述其一个或多个具体实施例来说明并且不限于这些实施例;在所附权利要求的范围内,许多变化和修改是可能的。
Claims (10)
1.一种集成电路设备,其包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
与所述总线系统分开并且被连接至所述多个外设的外设互连件系统,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;
所述外设互连件系统提供一组信道以用于用信号发送所述多个外设的外设之间的事件,所述一组信道包括一个或多个信道;
所述一组信道中的至少一个信道是安全信道,或者可配置为安全信道;
所述外设互连件系统被配置为允许来自处于所述安全状态的外设的事件信号通过一组信道中的安全信道被发送;并且
所述外设互连件系统被配置为防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送,
其中所述集成电路设备进一步包括以下特征中的至少一种:
A)所述外设互连件系统提供多个信道,其中,未被配置为安全信道的每个信道是非安全信道,并且其中,所述多个信道中的至少一个信道是非安全信道,或者可配置为非安全信道;
B)所述外设互连件系统被配置为允许来自安全外设和来自非安全外设的事件信号通过所述一组信道中的非安全信道被发送;
C)所述外设互连件系统或所述硬件滤波器逻辑提供用于将所述一组信道中的信道配置为安全信道的寄存器接口;
D)所述硬件滤波器逻辑包括系统保护单元,所述系统保护单元提供用于控制所述多个外设中的一个或多个是否处于安全状态的寄存器接口。
2.根据权利要求1所述的集成电路设备,其中,所述外设互连件系统进一步被配置为:
允许处于所述安全状态的外设通过安全信道接收事件信号;并且
防止不处于所述安全状态的外设通过安全信道接收事件信号。
3.根据权利要求1或2所述的集成电路设备,其中,所述总线系统被配置为承载总线事务并且承载用于区分安全总线事务和非安全总线事务的安全状态信号,并且其中,所述硬件滤波器逻辑被连接至所述总线系统,并且被配置为至少根据以下项允许或阻止所述总线系统上的总线事务:i)每个总线事务的所述安全状态,以及ii)所述总线事务是否寻址处于安全状态的外设。
4.根据权利要求1或2所述的集成电路设备,其中,所述多个外设中的每个外设包括一个或多个相应的事件输出,或者一个或多个相应的任务输入,其中,每个事件输出可连接至所述一个或多个信道中的任一个,并且其中,每个任务输入可连接至所述信道中的任一个。
5.根据权利要求4所述的集成电路设备,其中,具有事件输出的每个外设包括用于将所述事件输出连接至所述信道中的可选信道的多路复用器,其中,具有任务输入的每个外设包括用于将所述信道中的可选信道连接至所述任务输入的多路分配器,并且其中,所述外设互连件提供用于选择所述事件输出信道和任务输入信道的寄存器接口。
6.根据权利要求1或2所述的集成电路设备,其中,所述外设互连件系统包括可通过所述总线系统访问的互连件控制器外设,其中,所述互连件控制器外设提供用于控制所述外设互连件系统的寄存器接口。
7.根据权利要求6所述的集成电路设备,其中,所述互连件控制器外设包括用于从所述总线系统接收安全状态信号的输入,并且其中,所述互连件控制器外设支持分体式安全状态,在所述分体式安全状态中所述互连件控制器外设被配置为:
防止非安全总线事务访问与所述一组信道中的安全信道的配置有关的第一硬件寄存器;
允许安全总线事务访问所述第一硬件寄存器;并且
允许非安全总线事务访问与所述一组信道中的非安全信道的配置有关的第二硬件寄存器。
8.根据权利要求7所述的集成电路设备,其中,所述第一硬件寄存器提供用于启用和禁用所述安全信道的接口,并且其中,所述第二硬件寄存器提供用于启用和禁用所述非安全信道的接口。
9.根据权利要求6所述的集成电路设备,其中,所述互连件控制器外设提供接口,所述接口用于将两个或更多个信道分组为一组,并且用于利用单数据写入启用和禁用所述一组信道,其中,所述外设互连件系统被配置为当所述组中的至少一个信道是安全信道时,防止来自不处于所述安全状态的外设的事件信号通过所述组的任何信道被发送。
10.一种操作集成电路设备的方法,其中,所述集成电路设备包括:
总线系统;
被连接至所述总线系统的处理器;
多个外设,每个外设均被连接至所述总线系统;
硬件滤波器逻辑;以及
外设互连件系统,所述外设互连件系统与所述总线系统分开并且被连接至所述多个外设,提供一组信道以用于用信号发送所述多个外设的外设之间的事件,所述一组信道包括一个或多个信道,
其中:
对于所述多个外设中的每个外设,所述硬件滤波器逻辑存储确定该外设是否处于安全状态的相应值;并且
所述一组信道中的一个信道是安全信道,或者可配置为安全信道,
所述方法包括:
所述外设互连件系统允许来自处于所述安全状态的外设的事件信号通过所述安全信道被发送;并且
所述外设互连件系统防止来自不处于所述安全状态的外设的事件信号通过所述安全信道被发送,
其中所述集成电路设备进一步包括以下特征中的至少一种:
A)所述外设互连件系统提供多个信道,其中,未被配置为安全信道的每个信道是非安全信道,并且其中,所述多个信道中的至少一个信道是非安全信道,或者可配置为非安全信道;
B)所述外设互连件系统被配置为允许来自安全外设和来自非安全外设的事件信号通过所述一组信道中的非安全信道被发送;
C)所述外设互连件系统或所述硬件滤波器逻辑提供用于将所述一组信道中的信道配置为安全信道的寄存器接口;
D)所述硬件滤波器逻辑包括系统保护单元,所述系统保护单元提供用于控制所述多个外设中的一个或多个是否处于安全状态的寄存器接口。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1810653.4A GB201810653D0 (en) | 2018-06-28 | 2018-06-28 | Secure peripheral interconnect |
GB1810653.4 | 2018-06-28 | ||
PCT/EP2019/066999 WO2020002427A1 (en) | 2018-06-28 | 2019-06-26 | Secure peripheral interconnect |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112602086A CN112602086A (zh) | 2021-04-02 |
CN112602086B true CN112602086B (zh) | 2024-03-29 |
Family
ID=63143780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980055703.5A Active CN112602086B (zh) | 2018-06-28 | 2019-06-26 | 安全外设互连件 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11537762B2 (zh) |
EP (1) | EP3814973A1 (zh) |
CN (1) | CN112602086B (zh) |
GB (1) | GB201810653D0 (zh) |
WO (1) | WO2020002427A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11550733B2 (en) | 2020-07-01 | 2023-01-10 | Arm Limited | Method, system and circuit for managing a secure memory partition |
CN112181879B (zh) * | 2020-08-28 | 2022-04-08 | 珠海欧比特宇航科技股份有限公司 | 用于dma控制器的apb接口模块、dma控制器和芯片 |
FR3135334A1 (fr) * | 2022-05-05 | 2023-11-10 | Stmicroelectronics (Rousset) Sas | Systeme sur puce integrant un circuit d’acces direct en memoire et procede correspondant |
EP4390733A1 (en) * | 2022-12-23 | 2024-06-26 | STMicroelectronics International N.V. | Soc architecture with secure, selective peripheral enabling/disabling |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579531A (en) * | 1992-04-28 | 1996-11-26 | Mitsubishi Denki Kabushiki Kaisha | System for selecting path among plurality of paths using plurality of multiplexers coupled to common bus to transfer data between peripheral devices and external device |
WO2013088121A1 (en) * | 2011-12-12 | 2013-06-20 | Nordic Semiconductor Asa | Peripheral communication |
DE102013101508A1 (de) * | 2012-02-20 | 2013-08-22 | Denso Corporation | Datenkommunikationsauthentifizierungssystem für ein Fahrzeug, Netzkopplungsvorrichtung für ein Fahrzeug, Datenkommunikationssystem für ein Fahrzeug und Datenkommunikationsvorrichtung für ein Fahrzeug |
US8719925B1 (en) * | 2009-08-25 | 2014-05-06 | Sandia Corporation | Content-addressable memory based enforcement of configurable policies |
CN106537363A (zh) * | 2014-07-07 | 2017-03-22 | 赛灵思公司 | 桥接的总线间通信 |
CN107690631A (zh) * | 2015-06-16 | 2018-02-13 | 北欧半导体公司 | 事件生成单元 |
CN108027779A (zh) * | 2015-09-25 | 2018-05-11 | 英特尔公司 | 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令 |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851056B2 (en) | 2002-04-18 | 2005-02-01 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
US20030226029A1 (en) | 2002-05-29 | 2003-12-04 | Porter Allen J.C. | System for protecting security registers and method thereof |
WO2004015553A1 (en) | 2002-08-13 | 2004-02-19 | Nokia Corporation | Computer architecture for executing a program in a secure of insecure mode |
GB2396713B (en) | 2002-11-18 | 2005-09-14 | Advanced Risc Mach Ltd | Apparatus and method for controlling access to a memory unit |
GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
US7404019B2 (en) | 2003-03-07 | 2008-07-22 | Freescale Semiconductor, Inc. | Method and apparatus for endianness control in a data processing system |
US7334123B2 (en) * | 2003-05-02 | 2008-02-19 | Advanced Micro Devices, Inc. | Computer system including a bus bridge for connection to a security services processor |
US8112618B2 (en) | 2004-04-08 | 2012-02-07 | Texas Instruments Incorporated | Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making |
US7650645B1 (en) | 2004-05-21 | 2010-01-19 | Nvidia Corporation | Trusted bus transactions |
US8332653B2 (en) | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
WO2006057316A1 (ja) | 2004-11-26 | 2006-06-01 | Matsushita Electric Industrial Co., Ltd. | プロセッサ、セキュア処理システム |
WO2007079985A1 (en) | 2006-01-13 | 2007-07-19 | Freescale Semiconductor, Inc. | Protection system and method of operation therein |
US8762687B2 (en) | 2008-05-24 | 2014-06-24 | Via Technologies, Inc. | Microprocessor providing isolated timers and counters for execution of secure code |
US8549630B2 (en) | 2010-03-05 | 2013-10-01 | The Regents Of The University Of California | Trojan-resistant bus architecture and methods |
US8539245B2 (en) | 2010-08-06 | 2013-09-17 | Intel Corporation | Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode |
US8458791B2 (en) | 2010-08-18 | 2013-06-04 | Southwest Research Institute | Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system |
US8527675B2 (en) | 2011-07-27 | 2013-09-03 | Raytheon Company | System and method for implementing a secure processor data bus |
US8375221B1 (en) | 2011-07-29 | 2013-02-12 | Microsoft Corporation | Firmware-based trusted platform module for arm processor architectures and trustzone security extensions |
US8954017B2 (en) | 2011-08-17 | 2015-02-10 | Broadcom Corporation | Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device |
US8914563B2 (en) * | 2012-02-28 | 2014-12-16 | Silicon Laboratories Inc. | Integrated circuit, system, and method including a shared synchronization bus |
GB2501470B (en) | 2012-04-17 | 2020-09-16 | Advanced Risc Mach Ltd | Management of data processing security in a secondary processor |
KR101954733B1 (ko) | 2012-10-26 | 2019-03-06 | 삼성전자주식회사 | 보안 콘텐츠를 처리하는 시스템 온 칩 및 그것을 포함하는 모바일 장치 |
US10887296B2 (en) | 2012-12-31 | 2021-01-05 | Ncr Corporation | Secure provisioning manifest for controlling peripherals attached to a computer |
US9098425B2 (en) * | 2013-01-10 | 2015-08-04 | International Business Machines Corporation | Implementing user mode foreign device attachment to memory channel |
US9946669B2 (en) | 2013-02-12 | 2018-04-17 | Nxp Usa, Inc. | Method of and circuitry for controlling access by a master to a peripheral, a method of configuring such circuitry, and associated computer program products |
DE102013203365A1 (de) | 2013-02-28 | 2014-08-28 | Siemens Aktiengesellschaft | Verfahren und Schaltungsanordnung für kontrollierte Zugriffe auf Slave-Einheiten in einem Ein-Chip-System |
US8959576B2 (en) | 2013-03-14 | 2015-02-17 | Intel Corporation | Method, apparatus, system for qualifying CPU transactions with security attributes |
US20140366131A1 (en) | 2013-06-07 | 2014-12-11 | Andes Technology Corporation | Secure bus system |
EP3173967B1 (en) * | 2014-08-21 | 2019-06-26 | Huawei Technologies Co., Ltd. | Secure interaction method and device |
GB2531844B (en) * | 2014-10-31 | 2019-06-26 | Hewlett Packard Development Co | Hardware-protective data processing systems and methods using an application executing in a secure domain |
US9875202B2 (en) * | 2015-03-09 | 2018-01-23 | Nordic Semiconductor Asa | Peripheral communication system with shortcut path |
US10019605B2 (en) * | 2015-03-30 | 2018-07-10 | Square, Inc. | Systems, methods and apparatus for secure peripheral communication |
US9715601B2 (en) | 2015-04-28 | 2017-07-25 | Atmel Corporation | Secure access in a microcontroller system |
CN105631364A (zh) * | 2015-05-20 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 安全属性切换方法、安全属性切换装置和终端 |
US10452582B2 (en) | 2015-06-08 | 2019-10-22 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
US10095891B2 (en) | 2015-06-08 | 2018-10-09 | Nuvoton Technology Corporation | Secure access to peripheral devices over a bus |
GB2539455A (en) * | 2015-06-16 | 2016-12-21 | Nordic Semiconductor Asa | Memory watch unit |
GB2544452B (en) | 2015-08-26 | 2019-09-11 | Advanced Risc Mach Ltd | Data processing systems |
US10776294B2 (en) | 2015-11-16 | 2020-09-15 | Atmel Corporation | System architecture with secure data exchange |
CN105825128B (zh) * | 2016-03-15 | 2020-05-19 | 华为技术有限公司 | 一种数据输入方法、装置及用户设备 |
US10140227B1 (en) | 2016-03-31 | 2018-11-27 | Amazon Technologies, Inc. | Reducing read transactions to peripheral devices |
US20180060077A1 (en) | 2016-08-26 | 2018-03-01 | Qualcomm Incorporated | Trusted platform module support on reduced instruction set computing architectures |
US10514943B2 (en) | 2016-11-17 | 2019-12-24 | Qualcomm Incorporated | Method and apparatus for establishing system-on-chip (SOC) security through memory management unit (MMU) virtualization |
US10635827B2 (en) | 2016-11-18 | 2020-04-28 | Raptor Engineering, LLC | Systems and methods for secure isolation of legacy computer peripherals |
-
2018
- 2018-06-28 GB GBGB1810653.4A patent/GB201810653D0/en not_active Ceased
-
2019
- 2019-06-26 US US17/255,872 patent/US11537762B2/en active Active
- 2019-06-26 EP EP19733771.0A patent/EP3814973A1/en active Pending
- 2019-06-26 WO PCT/EP2019/066999 patent/WO2020002427A1/en active Application Filing
- 2019-06-26 CN CN201980055703.5A patent/CN112602086B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5579531A (en) * | 1992-04-28 | 1996-11-26 | Mitsubishi Denki Kabushiki Kaisha | System for selecting path among plurality of paths using plurality of multiplexers coupled to common bus to transfer data between peripheral devices and external device |
US8719925B1 (en) * | 2009-08-25 | 2014-05-06 | Sandia Corporation | Content-addressable memory based enforcement of configurable policies |
WO2013088121A1 (en) * | 2011-12-12 | 2013-06-20 | Nordic Semiconductor Asa | Peripheral communication |
CN103959268A (zh) * | 2011-12-12 | 2014-07-30 | 北欧半导体公司 | 外围设备通讯 |
DE102013101508A1 (de) * | 2012-02-20 | 2013-08-22 | Denso Corporation | Datenkommunikationsauthentifizierungssystem für ein Fahrzeug, Netzkopplungsvorrichtung für ein Fahrzeug, Datenkommunikationssystem für ein Fahrzeug und Datenkommunikationsvorrichtung für ein Fahrzeug |
CN106537363A (zh) * | 2014-07-07 | 2017-03-22 | 赛灵思公司 | 桥接的总线间通信 |
CN107690631A (zh) * | 2015-06-16 | 2018-02-13 | 北欧半导体公司 | 事件生成单元 |
CN108027779A (zh) * | 2015-09-25 | 2018-05-11 | 英特尔公司 | 允许受保护的容器存储器与输入/输出设备之间的安全通信的处理器、方法、系统和指令 |
Non-Patent Citations (1)
Title |
---|
一种基于PowerPC的安全SoC设计;赵福发;郭炜;魏继增;;计算机工程与科学(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20210264065A1 (en) | 2021-08-26 |
US11537762B2 (en) | 2022-12-27 |
WO2020002427A1 (en) | 2020-01-02 |
GB201810653D0 (en) | 2018-08-15 |
CN112602086A (zh) | 2021-04-02 |
EP3814973A1 (en) | 2021-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112602086B (zh) | 安全外设互连件 | |
CN112639788B (zh) | 安全感知总线系统上的外围设备访问 | |
KR101010801B1 (ko) | 액세스 허용을 결정하는 방법 및 장치 | |
US7434264B2 (en) | Data processing system with peripheral access protection and method therefor | |
JP4602403B2 (ja) | データ処理システムにおけるエンディアンネス制御方法および装置 | |
CN112602082B (zh) | 安全感知总线系统 | |
US7277972B2 (en) | Data processing system with peripheral access protection and method therefor | |
US9805221B2 (en) | Incorporating access control functionality into a system on a chip (SoC) | |
US12079379B2 (en) | Peripheral component interconnect express protection controller | |
JP2016516228A (ja) | システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置 | |
US11714647B2 (en) | Resource allocation in a multi-processor system | |
US20240296220A1 (en) | Method and system for freedom from interference (ffi) | |
EP4086802A1 (en) | Dynamic memory protection device system and method | |
WO2008030727A2 (en) | Access control of memory space in microprocessor systems | |
CN115221086A (zh) | 总线控制系统、方法以及电子设备 | |
CN112181860B (zh) | 具有快闪存储器仿真功能的控制器及其控制方法 |
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 |