掌桥专利:专业的专利平台
掌桥专利
首页

看门狗定时器层次结构

文献发布时间:2023-06-19 09:29:07


看门狗定时器层次结构

背景技术

物联网(“IoT”)通常是指能够通过网络进行通信的设备系统。这些设备可以包括日常用品,诸如烤面包机、咖啡机、恒温器系统、洗衣机、烘干机、灯、汽车等。网络通信可以被用于设备自动化、数据捕获、提供警告、设置的个性化以及许多其他应用。

发明内容

本发明内容被提供以按照简化形式来介绍对构思的选择,这些构思下面在具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或者本质特征,也不旨在被用于限制所要求保护的主题的范围。

简要地说,所公开的技术大体上涉及嵌入式设备安全性。在本文的技术的一个示例中,经由集成电路中的独立执行环境集合中的第一独立执行环境,第一看门狗定时器被引起定期重置。在一些示例中,独立执行环境集合被配置为具有深度防御(defense-in-depth)层次结构。在一些示例中,独立执行环境集合包括第一独立执行环境和第二独立执行环境。在一些示例中,第一独立执行环境是集成电路上最可信的执行环境。在一些示例中,经由第二独立执行环境:第二看门狗定时器周期性地被引起定期重置。在一些示例中,响应于第二看门狗定时器超时,中断从第二看门狗定时器被传送到第一独立执行环境。在一些示例中,响应于第一看门狗定时器超时,集成电路的至少一部分被重置。

在阅读和理解附图和描述之后,将了解所公开的技术的其他方面和应用。

附图说明

参照以下附图描述了本公开的非限制性和非详尽示例。在附图中,贯穿各个附图,相同的附图标记指代相同的部件,除非另有说明。这些附图不一定按比例被绘制。

为了更好地理解本公开,将参考以下具体实施方式,应该与附图相关联地阅读该具体实施方式,在附图中:

图1是图示了在其中可以采用本文的技术的各个方面的合适的环境的一个示例的框图;

图2是图示了根据所公开的技术的各个方面的合适的计算设备的一个示例的框图;

图3是图示了系统的示例的框图;

图4是图示了图3所示设备控制器的示例的框图;以及

图5A至图5B是图示了根据本公开的各个方面的示例过程的流程图。

具体实施方式

以下描述提供了具体细节以便透彻地理解本文的技术的各种示例和实现对本文的技术的各种示例的描述。本领域的技术人员将理解,本文的技术可以在没有这些细节中的许多细节的情况下被实践。在一些实例中,还未示出或者详细描述众所周知的结构和功能以避免不必要地模糊对本文的技术的示例的描述。意图是在本公开中所使用的术语按照其最广泛的合理方式被解释,即使结合对本文的技术的某些示例的详细描述来使用该术语。虽然下面可能强调某些术语,但是旨在按照任何受限制的方式被解释的任何术语都将被公开地和明确地定义成该具体实施方式章节中那样。贯穿本说明书和权利要求书,以下术语至少具有本文明确关联的含义,除非上下文另有规定。下面所标识的含义不一定限制术语,而是仅提供术语的说明性示例。例如,术语“基于(based on)”和“基于(based upon)”中的每个术语都不是排他的,而是等效于术语“至少部分地基于”,并且包括基于附加因素的选项,这些附加因素中的一些附加因素在本文中未描述。作为另一示例,术语“经由”不是排他的,而是等效于术语“至少部分地经由”,并且包括经由附加因素的选项,这些附加因素中的一些附加因素可能在本文中未被描述。“在...中(in)”的含义包括“在...中”和“在...上(on)”。如在本文中所使用的短语“在一个实施例中”或者“在一个示例中”不一定是指相同的实施例或者示例,但是其可以指相同的实施例或者示例。使用特定的文本数字标记并不暗示存在值较小的数字指定符。例如,叙述“选自由第三foo和第四bar组成的组的小部件”其本身将并不暗示存在至少三个foo,也不暗示存在至少四个bar元素。单数形式的引用仅是为了清楚地进行阅读,并且包括复数引用,除非复数引用被明确地排除。术语“或者”是包括性的“或者”运算符,除非另有明确指示。例如,短语“A或者B”表示“A、B或者A和B”。如本文所使用的,术语“组件”和“系统”旨在涵盖硬件、软件或者硬件和软件的各种组合。因此,例如,系统或者组件可以是过程、在计算设备上执行的过程、计算设备或者其一部分。

简要地说,所公开的技术大体上涉及嵌入式设备安全性。在本文的技术的一个示例中,经由集成电路中的独立执行环境集合中的第一独立执行环境,第一看门狗定时器被引起定期重置。在一些示例中,独立执行环境集合被配置为具有深度防御层次结构。在一些示例中,独立执行环境集合包括第一独立执行环境和第二独立执行环境。在一些示例中,第一独立执行环境是集成电路上最可信的执行环境。在一些示例中,经由第二独立执行环境:第二看门狗定时器周期性地被引起定期重置。在一些示例中,响应于第二看门狗定时器超时,中断从第二看门狗定时器被传导到第一独立执行环境。在一些示例中,响应于第一看门狗定时器超时,集成电路的至少一部分被重置。

在一些示例中,多核集成电路至少具有两个信任级别。在一些示例中,信任级别可以包括处于最高安全性级别的安全性复合体(complex)、处于第二信任级别的一类核心以及处于最低信任级别的具有I/O功能性的另一类核心。在其他示例中,可以使用其他合适的信任层次结构。

在一些示例中,在每个信任级别下使用单独的看门狗定时器。在一些示例中,在每个信任级别下,处于该级别的软件必须使看门狗定时器定期重置以便防止看门狗计时器经过时间(elapsing),如果软件未使看门狗定时器重置,则该看门狗定时器可以在预定时间段(诸如1ms)内经过时间。在一些示例中,如果看门狗定时器经过时间,则意味着出现了问题,诸如程序错误,其阻止软件适当地运行。例如,软件可能陷入循环。

在一些示例中,当处于最高信任级别的看门狗定时器经过时间时,处于最高信任级别的看门狗定时器使整个集成电路重置。然而,在其他示例中,当看门狗定时器处于最高信任级别时,可以替代地重置集成电路的一部分。例如,该看门狗定时器可以被配置为重置集成电路的一部分,使得集成电路的其他部分可以“优雅地”完成一个或多个操作。在一些示例中,当在不同于层次结构的最高级别的层处的看门狗定时器经过时间时,看门狗定时器向层次结构中的较高级别发送中断。看门狗定时器还可能使当前信任级别重置。接收中断的较高信任级别可以相应地做出响应,包括:日志记录和/或追踪事件,确定发送中断的级别应该被释放的时间和方式等。

图1是在其中可以实践本文的技术的各个方面的环境100的示意图。如图所示,环境100包括经由网络130被连接的计算设备110以及网络节点120。虽然环境100中的特定组件在图1中被示出,但是在其他示例中,环境100还可以包括附加的和/或不同的组件。例如,在某些示例中,环境100还可以包括网络存储设备、维护管理器和/或其他合适的组件(未示出)。在图1中所示出的计算设备110可以位于各种位置,包括在内部、在云中等。例如,计算机设备110可以在客户端侧、在服务器侧等。

如在图1中所示出的,网络130可以包括一个或多个网络节点120,该一个或多个网络节点120使多个计算设备110相互连接,并且将计算设备110连接至外部网络140,例如互联网或者内联网。例如,网络节点120可以包括交换机、路由器、集线器、网络控制器或者其他网络元件。在某些示例中,计算设备110可以被组织成机架、动作区域、组、集合或者其他合适的分区。例如,在图示的示例中,计算设备110被分组成被单独地标识为第一、第二和第三主机集112a至112c的三个主机集。在图示的示例中,主机集112a至112c中的每个主机集分别被可操作地耦合至对应的网络节点120a至120c,这些网络节点120a至120c通常被称为“机架式”或者“TOR”网络节点。然后,TOR网络节点120a至120c可以被操作地耦合至附加的网络节点120,以按照层次结构、平面、网格类型的拓扑或者允许计算设备110与外部网络140之间的通信的其他合适类型的拓扑形成计算机网络。在其他示例中,多个主机集112a至112c可以共享单个网络节点120。计算设备110实际上可以是任何类型的通用或者专用计算设备。例如,这些计算设备可以是用户设备,诸如台式计算机、膝上型计算机、平板计算机、显示设备、相机、打印机或者智能电话。然而,在数据中心环境中,这些计算设备可以是服务器设备,诸如应用服务器计算机、虚拟计算主机计算机或者文件服务器计算机。此外,计算设备110可以被单独地配置为提供计算、存储和/或其他合适的计算服务。

在一些示例中,如下面所更详细地讨论的,一个或多个计算设备110是IoT设备、包括IoT支持服务的一部分或者全部的设备、包括应用后端的一部分或者全部的设备等。

图2是图示了在其中可以实践本文的技术的各个方面的计算设备200的一个示例的示意图。计算设备200实际上可以是任何类型的通用或者专用计算设备。例如,计算设备200可以是用户设备,诸如台式计算机、膝上型计算机、平板计算机、显示设备、相机、打印机或者智能电话。同样,计算设备200还可以是服务器设备,诸如应用服务器计算机、虚拟计算主机计算机或者文件服务器计算机,例如,计算设备200可以是图1所示计算设备110或者网络节点120的示例。计算设备200还可以是连接至网络以接收IoT服务的IoT设备。同样,如下面所更详细地讨论的,计算机设备200可以是在图3至图4中所图示或者所提及的设备中的任何设备的示例。如在图2中所图示的,计算设备200包括处理电路210、操作存储器220、存储器控制器230、数据存储存储器250、输入接口260、输出接口270和网络适配器280。计算设备200的这些在前面列出的组件中的每个组件包括至少一个硬件元件。

计算设备200包括至少一个处理电路210,该至少一个处理电路210被配置为执行指令,诸如用于实现本文描述的工作负载、过程或者技术的指令。处理电路210可以包括微处理器、微控制器、图形处理器、协处理器、现场可编程门阵列、可编程逻辑器件、信号处理器或者适合于处理数据的任何其他电路。处理电路210是核心的示例。前述指令以及其他数据(例如数据集、元数据、操作系统指令等)可以在计算设备200的运行时期间被存储在操作存储器220中。操作存储器220还可以包括各种数据存储设备/组件中的任何数据存储设备/组件,诸如易失性存储器、半易失性存储器、随机存取存储器、静态存储器、缓冲存储器、缓冲器或者被用于存储运行时信息的其他介质。在一个示例中,当计算设备200被断电时,操作存储器220不保留信息。相反,计算设备200可以被配置为将指令从非易失性数据存储组件(例如数据存储组件250)传递给操作存储器220作为引导或者其他加载过程的一部分。在一些示例中,可以采用其他形式的执行,诸如直接从数据存储组件250执行,例如就地执行(XIP)。

操作存储器220可以包括第四代双倍数据速率(DDR4)存储器、第三代双倍数据速率(DDR3)存储器、其他动态随机存取存储器(DRAM)、高带宽存储器(HBM)、混合存储器立方体存储器、3D堆叠存储器、静态随机存取存储器(SRAM)、磁阻随机存取存储器(MRAM)、伪随机随机存取存储器(PSRAM)或者其他存储器,并且这种存储器可以包括被集成到DIMM、SIMM、SODIMM、已知合格裸片(KGD)或者其他封装上的一个或多个存储器电路。这种操作存储器模块或者设备可以根据通道、排(rank)和体(bank)被组织。例如,操作存储器设备可以经由存储器控制器230在通道中被耦合至处理电路210。计算设备200的一个示例可以每通道包括一个或两个DIMM,每通道具有一个或两个排。在排内的操作存储器可以利用共享时钟以及共享地址和命令总线来进行操作。而且,操作存储器设备可以被组织成若干存储体,其中体可以被认为是按照行和列被寻址的阵列。基于操作存储器的这种组织,操作存储器内的物理地址可以由通道、排、体、行和列的元组引用。

虽然进行了上述讨论,但是明确地,操作存储器220不包括或者不涵盖多个通信介质、任何通信介质或者任何信号本身。

存储器控制器230被配置为使处理电路210接口连接至操作存储器220。例如,存储器控制器230可以被配置为在操作存储器220与处理电路210之间对命令、地址和数据进行接口连接。存储器控制器230还可以被配置为从处理电路210或者为处理电路210使存储器管理的某些方面抽象化或者以其他方式管理这些方面。虽然存储器控制器230被图示为与处理电路210分离的单个存储器控制器,但在其他示例中,可以采用多个存储器控制器,(多个)存储器控制器可以与操作存储器220集成等。进一步地,(多个)存储器控制器可以被集成到处理电路210中。这些以及其他变化是可能的。

在计算设备200中,数据存储存储器250、输入接口260、输出接口270和网络适配器280通过总线240被接口连接至处理电路210。虽然图2将总线240图示为单条无源总线,但是还可以合适地采用其他配置(诸如总线的类集、点对点链路的类集、输入/输出控制器、网桥、其他接口电路系统或者其任何类集)来使数据存储存储器250、输入接口260、输出接口270或者网络适配器280接口连接至处理电路210。

在计算设备200中,数据存储存储器250被采用来进行长期非易失性数据存储。数据存储存储器250可以包括各种非易失性数据存储设备/组件中的任何非易失性数据存储设备/组件,诸如非易失性存储器、磁盘、磁盘驱动器、硬盘驱动器、固态驱动器或者可以被用于信息的非易失性存储的任何其他介质。然而,明确地,数据存储存储器250不包括或者不涵盖多个通信介质、任何通信介质或者任何信号本身。与操作存储器220形成对比,计算设备200采用数据存储存储器250来进行非易失性长期数据存储而不是运行时数据存储。在一些示例中,性能计数器475还可以被配置为测量从核心到目标(诸如从MCU462到SRAM458)的等待时间。

而且,计算设备200可以包括或者被耦合至任何类型的处理器可读介质,诸如处理器可读存储介质(例如操作存储器220和数据存储存储器250)和通信介质(例如通信信号和无线电波)。虽然术语“处理器可读存储介质”包括操作存储器220和数据存储存储器250,但是贯穿本说明书和权利要求书,无论是以单数还是复数使用,在本文中定义了术语“处理器可读存储介质”,使得术语“处理器可读存储介质”明确地排除和不涵盖多个通信介质、任何通信介质或者任何信号本身。然而,术语“处理器可读存储介质”确实涵盖处理器缓冲存储器、随机存取存储器(RAM)、寄存器存储器等。

计算设备200还包括输入接口260,该输入接口260可以被配置为使得计算设备200能够接收来自用户或者来自其他设备的输入。附加地,计算设备200包括输出接口270,该输出接口270可以被配置为提供来自计算设备200的输出。在一个示例中,输出接口270包括帧缓冲器、图形处理器、图形处理器或加速器,并且被配置为绘制显示以在单独的视觉显示设备(诸如监视器、投影仪、虚拟计算客户端计算机等)上呈现。在另一示例中,输出接口270包括视觉显示设备,并且被配置为绘制和呈现显示以便查看。在又一示例中,输入接口260和/或输出接口270可以包括通用异步接收器/发送器(“UART”)、串行外围设备接口(“SPI”)、内部集成电路(“I2C”)、通用输入/输出(GPIO)等。此外,输入接口260和/或输出接口270可以包括或者被接口连接至任何数量或者类型的外围设备。

在图示的示例中,计算设备200被配置为经由网络适配器280来与其他计算设备或者实体通信。网络适配器280可以包括有线网络适配器,例如以太网适配器、令牌环适配器或者数字订户线路(DSL)适配器。网络适配器280还可以包括无线网络适配器,例如Wi-Fi适配器、蓝牙适配器、ZigBee适配器、长期演进(LTE)适配器、SigFox、LoRa、电力线或者5G适配器。

虽然计算设备200被图示为具有按照特定布置被配置的某些组件,但是这些组件和布置仅仅是在其中可以采用本文的技术的计算设备的一个示例。在其他示例中,数据存储存储器250、输入接口260、输出接口270或者网络适配器280可以被直接耦合至处理电路210,或者经由输入/输出控制器、网桥或者其他接口电路系统被耦合至处理电路210。本文的技术的其他变型是可能的。

计算设备200的一些示例包括适合于存储运行时数据的至少一个存储器(例如操作存储器220)和适合于执行处理器可执行代码的至少一个处理器(例如处理单元210),该处理器可执行代码响应于执行而使得计算设备200能够执行动作。

本公开的一些示例在IoT设备中所包括的多核微控制器的上下文中被使用,该多核微控制器作为用于IoT设备的设备控制器进行操作。本公开的示例还可以在其他合适的上下文中被使用。下面针对图4和图5讨论了本公开的在IoT设备中所包括的多核微控制器的上下文中使用的特定示例,该多核微控制器作为用于IoT设备的设备控制器进行操作。

图3是图示了系统(300)的示例的框图。系统300可以包括网络330以及IoT支持服务351、IoT设备341和342以及应用后端313,它们都连接至网络330。

术语“IoT设备”是指旨在利用IoT服务的设备。IoT设备实际上可以包括连接至网络以使用IoT服务(包括用于遥测收集或者任何其他目的)的任何设备。IoT设备包括可以连接至网络以利用IoT服务的任何设备。在各种示例中,IoT设备可以与云、对等体或者本地系统或者对等体和本地系统和云的组合通信,或者按照任何其他合适的方式来进行通信。IoT设备可以包括日常用品,诸如烤面包机、咖啡机、恒温器系统、洗衣机、烘干机、灯、汽车等。IoT设备还可以包括:例如“智能”建筑物中的各种设备,包括灯、温度传感器、湿度传感器、占用传感器等。用于IoT设备的IoT服务可以被用于设备自动化、数据捕获、提供警告、设置个性化以及许多其他应用。

术语“IoT支持服务”是指设备、至少一个设备的一部分或者多个设备(诸如分布式系统),在一些示例中,IoT设备在网络上连接至该IoT支持服务以获得IoT服务。在一些示例中,IoT支持服务是IoT集线器。在一些示例中,IoT集线器被排除,并且IoT设备直接或者通过一个或多个中介与应用后端通信,而不包括IoT集线器,并且应用后端中的软件组件操作为IoT支持服务。IoT设备经由与IoT支持服务的通信来接收IoT服务。在一些示例中,IoT支持服务可以被嵌入在设备之内或者本地基础设施中。

应用后端313是指设备或者多个设备(诸如分布式系统),其执行实现数据收集、存储的动作和/或要基于IoT数据采取的动作,包括用户访问和控制、数据分析、数据显示、对数据存储的控制、基于IoT数据采取的自动动作等。应用后端313还可以是被部署在公共云或者私有云中的一个或多个虚拟机。在一些示例中,应用后端所采取的动作中的至少一些动作可以由在应用后端313中运行的应用执行。

IoT设备341和342和/或包括IoT支持服务351和/或应用后端313的设备中的每个设备可以包括图2所示计算设备200的示例。术语“IoT支持服务”不限于一种特定类型的IoT服务,而是指以下设备:在提供该设备之后IoT服务与该设备通信以获得至少一种IoT解决方案或者IoT服务。即,如贯穿本说明书和权利要求书所使用的术语“IoT支持服务”对于任何IoT解决方案都是通用的。术语“IoT支持服务”仅仅是指IoT解决方案/IoT服务的所提供的IoT设备与之通信的部分。在一些示例中,IoT设备与一个或多个应用后端之间的通信在IoT支持服务作为中介的情况下发生。图3和本说明书中对图3的对应描述出于说明目的说明了示例系统,该示例系统不限制本公开的范围。

IoT设备341和342中的一个或多个可以包括设备控制器345,该设备控制器345可以进行操作以控制IoT设备。每个设备控制器345可以包括以深度防御层次结构被配置的多个执行环境。设备控制器345可以是多核微控制器。在一些示例中,设备控制器345是具有多个独立执行环境(诸如多个核心,诸如至少一个中央处理单元(CPU)和至少一个微控制器(MCU))的集成电路。

网络330可以包括一个或多个计算机网络,包括有线和/或无线网络,其中每个网络可以是:例如无线网络、局域网(LAN)、广域网(WAN)和/或全球网络(诸如互联网)。在相互连接的一组LAN上(包括基于不同架构和协议的那些LAN),路由器充当LAN之间的链路,从而使得能够从一个LAN向另一LAN发送消息。而且,LAN内的通信链路通常包括双绞线对或者同轴电缆,而网络之间的通信链路可以利用模拟电话线、包括T1、T2、T3和T4的完全或者部分专用数字线路、综合业务数字网(ISDN)、数字订户线路(DSL)、包括卫星链路的无线链路或者本领域的技术人员已知的其他通信链路。此外,远程计算机和其他相关的电子设备可以经由调制解调器和临时电话链路被远程地连接至LAN或者WAN。网络330可以包括各种其他网络,诸如使用本地网络协议(诸如6LoWPAN、ZigBee等)的一个或多个网络。一些IoT设备可以经由网络330中的不同网络被连接至用户设备而不是其他IoT设备。本质上,网络330包括信息可以在IoT支持服务351、IoT设备341和342以及应用后端313之间传送的任何通信方法。虽然每个设备或者服务被示出为被连接至网络330,但是那不意味着每个设备都与所示出的每个其他设备通信。在一些示例中,所示出的一些设备/服务仅经由一个或多个中间设备来与所示出的一些其他设备/服务通信。而且,虽然网络330被图示为一个网络,但是在一些示例中,网络330可以替代地包括可以彼此连接或者可以不彼此连接的多个网络,其中所示出的设备中的一些设备通过多个网络中的一个网络来彼此通信,而所示出的设备中的其他设备利用多个网络中的不同网络来彼此通信。

作为一个示例,IoT设备341和342是旨在利用由IoT支持服务351提供的IoT服务的设备。

系统300可以包括比在图3中所图示的设备更多或者更少的设备,图3仅通过示例的方式被示出。

图4是图示了设备控制器445的示例的框图。可以采用设备控制器445作为图3所示设备控制器345的示例。设备控制器445可以包括安全性复合体451、CPU 453、直接存储器存取(DMA)块454、信任区(TZ)DMA块455、闪速存储器456、无线电块457、安全静态随机存取存储器(SRAM)458、接口459、MCU 461、MCU 462、主高级可扩展接口(AXI)总线463、辅AXI总线464、网桥465和466、每外围设备至高级外围总线(APB)网桥的AXI 467、接口471、GPIO 472、模数转换器(ADC)473、实时时钟(RTC)474、性能计数器475和看门狗定时器431至433。

在一些示例中,设备控制器445使得在其中包括设备控制器445的设备能够操作为IoT设备,诸如图3所示IoT设备341或者342。在一些示例中,设备控制器445是多核微控制器。在一些示例中,设备控制器445运行高级操作系统。在一些示例中,设备控制器445可以具有至少4MB的RAM和至少4MB的闪速存储器,并且可以是单个集成电路。在一些示例中,设备控制器445不仅提供网络连接性,还提供各种其他功能,包括硬件和软件安全性、被监测的操作系统、密码功能、外围控制、遥测等。附加地,设备控制器445可以包括用于允许按照安全方式来引导设备控制器445,允许安全地更新设备控制器445,确保适当的软件在设备控制器445上运行,允许设备控制器445正确地用作IoT设备等的技术。

在一些示例中,安全性复合体451包括作为设备控制器445中的硬件信任根(rootof trust)的安全复合体(SC)。在一些示例中,安全性复合体被直接连接至安全性复合体451中的安全MCU。在一些示例中,安全性复合体451中的安全MCU具有非常高的信任度,但是比安全性复合体451形式的安全性复合体较不可信。在一些示例中,安全性复合体451在引导时使整个系统加载和启动。

在一些示例中,看门狗定时器431是用于安全性复合体451的SC的看门狗定时器,看门狗定时器432是用于CPU 453的看门狗定时器,以及看门狗定时器433是用于MCU 461和MCU 462的看门狗定时器。

在一些示例中,CPU 453运行高级操作系统。在一些示例中,CPU 453具有两个独立执行环境:安全世界执行环境和正常世界执行环境。术语“安全世界”被广泛地用于指代可信环境,并且不限于特定的安全性特征。在一些示例中,CPU 453的安全世界执行环境还是系统的可信计算基础的一部分。例如,在一些示例中,CPU 453的安全世界执行环境具有对重新编程的硬件保护机构的自由访问,在一些示例中,硬件保护机构诸如防火墙。然而,在一些示例中,CPU 453的安全世界执行环境不具有对为安全性复合体451的安全性复合体的内部的访问,并且依赖于安全性复合体451的安全MCU来进行特定的安全性敏感操作。

无线电块457可以提供Wi-Fi通信。主AXI总线463和辅AXI总线464可以是连接所示出的组件的总线。在一些示例中,网桥465、466和467桥接所示出的组件。RTC块474可以作为实时时钟进行操作。在一些示例中,可以从RTC块474读取设备控制器345中的所有组件,但是不是所有组件都具有对RTC块474的写访问。设备控制器445可以包括各种形式的存储器,包括闪速存储器和SRAM,诸如闪速存储器456和安全SRAM 458。

在一些示例中,IO子系统1 461和IO子系统2 462是用于通用I/O连接性的I/O子系统。在一些示例中,IO子系统1 461和IO子系统2 462分别包括MCU。

DMA块454可以被用于管理CPU 453的正常世界执行环境的数据移动。信任区(TZ)DMA块455可以被用于管理CPU 453的安全世界执行环境的数据移动。在一些示例中,每个IO子系统还具有其自己的DMA块。DMA块中的每个DMA块可以被配置为支持在核心、外围设备、其他组件等之间的数据移动。

核心中的每个核心可以具有双向邮箱以支持处理器间通信。性能计数器475可以被配置为对用于性能监测的读取请求、写入请求和数据类型请求进行计数。在一些示例中,性能计数器475还可以被配置为测量从核心到目标(诸如从MCU 462到SRAM 458)的等待时间。

在一些示例中,在框459中的接口包括两个集成电路间声音(I2S)接口:一个用于音频输入,以及一个用于音频输出。在其他示例中,可以采用接口的其他配置,并且在各种示例中,框459可以包括任何合适的接口。

在一些示例中,安全性复合体451中的MCU具有非常高的信任度,但是比安全性复合体451形式的安全性复合体较不可信。在这些示例中,安全性复合体451中的MCU控制与非常高的信任度相关联的一个或多个功能。在一个示例中,安全性复合体451中的MCU控制设备控制器445和/或IoT设备的电力。

在一些示例中,CPU 453的安全世界执行环境还是系统的可信计算基础的一部分。例如,在一些示例中,CPU 453的安全世界运行时(安全世界RT)具有对重新编程的硬件保护机构的自由访问,在一些示例中,硬件保护机构诸如防火墙。然而,在一些示例中,安全世界RT不具有对为安全性复合体451的安全性复合体的内部的访问,并且依赖于安全性复合体451的MCU来进行特定的安全性敏感操作。

CPU 453的正常世界执行环境可以被配置为具有对这种片上资源(诸如存储器)的有限访问。在一些示例中,可以针对在该环境中运行、但是比在安全性复合体451中的MCU上运行的代码或者在CPU 453的安全世界中运行的代码较不可信的代码,强制执行各种安全性和质量标准(例如相对较高的标准)。

在一些示例中,MCU 461和462比安全性复合体451中的MCU和CPU 453较不可信。在一些示例中,无线电块457可以包括核心,在一些示例中,该核心可以是MCU。无线电块457可以提供Wi-Fi功能性和至互联网和云服务(诸如IoT服务)的连接性。在一些示例中,无线电块457可以经由蓝牙、近场通信(NFC)、ZigBee、长期演进(LTE)和/或其他连接性技术来提供通信。在一些示例中,无线电块457中的核心不具有对未加密的秘密的任何访问,并且无法损害CPU 453的执行。

在一些示例中,每个独立执行环境由在单独的执行环境中执行的单个软件组件管理,该单独的执行环境被称为执行环境的“父级(parent)”。在这种示例中,一个例外可能是硬件信任根(在该示例中,为安全性复合体451的安全性复合体)没有父级。在一个特定示例中,每个父级在至少与其管理的环境一样可信的环境中执行。在其他示例中,可以采用其他合适的安全性方式。管理操作可以包括:引导和继续目标环境,监测和处理目标环境中的重置以及为目标环境配置访问策略。在一些情况下,某些管理操作由除了父级之外的组件执行。例如,在一些示例中,CPU 453的正常世界是管理MCU 461和462的、但是从CPU 453的安全世界获得帮助的环境。

例如,在一些示例中,安全性复合体451的MCU管理CPU 453的安全世界RT,CPU 453中的安全世界RT中的组件管理CPU 453的正常世界OS,CPU 453的正常世界OS中的组件管理CPU 453的正常世界用户模式,以及CPU 453的正常世界用户模式服务管理MCU 461和462以及无线电块457中的核心。

在一些示例中,不仅是由来自更可信的执行环境的软件组件管理的独立执行环境,而且向不同的独立执行环境分配不同的功能,更敏感的功能被分配至更可信的独立执行环境。在一个特定示例中,比向其进行了分配的独立执行环境较不可信的独立执行环境被限制具有对功能的访问。按照这种方式,在一些示例中,独立执行环境基于信任层次结构来实现深度防御。

例如,在一些示例中,为安全性复合体451的安全性复合体在层次结构的顶部并且被分配到秘密(例如加密密钥),安全性复合体451中的安全MCU在层次结构中是下一个并且被分配到控制电力,CPU 453的安全世界RT在层次结构中是下一个并且被分配到对实时时钟(RTC)的存储和写访问,CPU 453的正常世界OS在层次结构中是下一个并且被分配到Wi-Fi,CPU 453的正常世界用户模式应用在层次结构中是下一个并且被分配到应用,以及MCU461和462在层次结构的底部并且被分配到外围设备。在MCU 461和462在层次结构的底部并且被分配到外围设备的一些示例中,MCU 461和462可以被称为输入/输出(I/O)核心。在其他示例中,功能按照不同的方式被分配到独立执行环境。

在一些示例中,除了层次结构的底部(即,最不可信的)级别之外,信任层次结构的每个级别都控制接受或者拒绝来自较不可信的级别的请求,例如在实现对他们处理的软件的支持方面,并且具有对来自较不可信的级别的请求进行速率限制或者审查以及验证来自较低级别的请求的能力,例如以确保请求正确并且真实。而且,如先前所讨论的,在一些示例中,层次结构的除了顶部(即,最可信的)级别之外的每个级别都具有父级,该父级负责管理较低(即,较不可信的)级别,包括监测较低级别上的软件是否在正确地运行。

在一些示例中,层次结构的各层利用安全通信信道和防火墙。例如,在一些示例中,CPU 453的安全MCU RT具有两个消息队列,该两个消息队列被配置成使得:基于硬件,队列中的一个队列只能在SW中使用,以及一个队列可以通过NW来使用。在一个特定示例中,如果消息来自SW队列,则基于硬件,该消息肯定来自SW,并且因此,比来自NW的消息更可信。在其他示例中,可以采用其他合适的安全性方式。

附加地,在一些示例中,除了层次结构的最高层之外,没有层次结构的层在层次结构的较高层还未验证该层的情况下启动,而是在验证该层之后,允许该层启动。而且,在这些示例中,层次结构的层具有例如在任何时候使层次结构的任何较低级别停止的能力。因此,在这些示例中,在使层次结构的较低级别停止和启动以及运行这些较低级别方面,设备控制器445使层次结构的每个层的软件能力完全优于层次结构的较低(即,较不可信的)级别。

在一些示例中,为安全性复合体451形式的安全性复合体的安全性复合体是硬件信任根和深度防御信任层次结构的最高、最可信的级别。在一些示例中,安全性复合体包含密钥、秘密、加密引擎等。在一些示例中,安全性复合体存储秘密,执行功能,诸如密钥生成、加密、解密、哈希、其他密码功能、其他与安全性相关的功能等。在一些示例中,安全性复合体能够检查被存储在单向可写存储器(诸如电熔丝、一次性可编程元件等)中的秘密值。

在一些示例中,当设备控制器445通电并且其电力管理单元(PMU)具有稳定的电力时,其释放安全性复合体,使得免于重置。在一些示例中,安全性复合体位于设备控制器445的可信计算基础的核心处。在一些示例中,安全性复合体驱动安全引导过程。在一个特别示例中,核心被限制执行代码,直到安全性复合体已经使其能够这样做为止。在其他示例中,可以采用其他合适的安全性方式。

设备控制器445的一些示例可以是多核微处理器,除了具有如先前所讨论的多个存储体的闪速存储器之外,该多核微处理器还包括例如至少一个CPU和至少一个微控制器。在一些示例中,多核处理器可以是具有多个核心的集成电路。在一些示例中,多核处理器可以被用于为连接的设备提供功能性。在一些示例中,设备控制器445可以提供至连接的设备的网络连接性,并且还可以提供各种其他功能,诸如硬件和软件安全性、被监测的操作系统、密码功能、外围控制、遥测等。附加地,设备控制器445可以包括用于允许按照安全方式来引导设备控制器445,允许安全地更新设备,确保“适当的”软件在设备上运行,允许设备正确地用作IoT设备等的技术。安全性复合体451可以包括设备控制器445的硬件信任根作为由设备控制器445提供的安全性功能的基础。

在一些示例中,闪速存储器456是包括闪速控制器和并联的双四通道串行公共接口(QSPI)NOR闪速设备(在该示例中,为两个存储体)的外部NOR闪速存储器,其中每个闪速存储体是经由单独的通道被访问的单独的集成电路。然而,本公开不限于此,并且可以采用任何合适的存储器配置和/或合适的存储器集合。

在一些示例中,设备控制器445中的独立执行环境中的两个或更多个独立执行环境分别具有其自己的看门狗定时器。例如,在一些示例中,设备控制器445具有三个看门狗定时器—一个用于安全性复合体,一个用于CPU 453,一个用于I/O核心451和452。I/O核心451和452可以具有单独的定时器,或者可以替代地具有用于每个核心的一个定时器,其中用于I/O核心的每个定时器处于相同的信任级别。在该示例中,存在三个信任级别,每个信任级别具有其自己的看门狗定时器—一个信任级别是安全性复合体,另一信任级别是CPU453,以及另一信任级别是I/O核心。

在其他示例中,多于或者少于三个信任级别可以具有看门狗定时器。例如,在一些示例中,不是为了看门狗定时器的目的而将CPU 453视为一个信任级别,而是在一些示例中CPU 453的SW和CPU 453的NW世界分别被视为单独的信任层,使得CPU 453的SW和CPU 453的NW分别具有其自己的看门狗定时器。

在图4中所图示的特定示例中,存在用于三个信任级别的看门狗定时器:看门狗定时器431是用于安全性复合体451(最高信任级别)的SC的看门狗定时器;看门狗定时器432是用于CPU 453(第二高信任级别)的看门狗定时器;以及看门狗定时器433是用于MCU 461和MCU 462(最低信任级别)的看门狗定时器。

在一些示例中,每个看门狗定时器通过其对应的信任级别被周期性地重置。重置看门狗定时器通常被称为“轻拍”看门狗。在正常功能性期间,在一些示例中,在看门狗定时器到期之前,看门狗定时器继续通过对应的级别被定期重置。例如,示例看门狗定时器可能在自其上次被重置以来1毫秒(ms)内到期。

在一些示例中,看门狗定时器由处于对应信任级别的软件重置,该软件在地址中写入预定存储器映射。在一些示例中,需要特定的写入序列或者特定的数据值以使得该写入能够生效以重置定时器。这可以阻止流氓软件重置看门狗或者看门狗的意外重置。

在一些示例中,如果看门狗定时器中的一个看门狗定时器(例如看门狗定时器431、432或者433)经过时间,则这意味着出现了问题,诸如程序错误,其阻止软件适当地运行。例如,软件可能陷入循环。

在一些示例中,当处于最高信任级别的看门狗定时器(例如看门狗定时器431)经过时间时,处于最高信任级别的看门狗定时器使整个集成电路445重置。然而,在其他示例中,当看门狗定时器处于最高信任级别时,可以替代地重置集成电路的一部分。例如,该看门狗定时器可以被配置为重置集成电路的一部分,使得集成电路的其他部分可以“优雅地”完成一个或多个操作。

在一些示例中,当在不同于最高信任级别的层处的看门狗定时器经过时间时,诸如当看门狗定时器432或者看门狗定时器433经过时间时,经过时间的看门狗定时器向层次结构中的较高信任级别发送中断。例如,如果看门狗定时器432重置,则看门狗定时器432可以向SC发送中断。如果看门狗定时器433重置,则看门狗定时器433可以向CPU 453、SC或者向CPU 453和SC两者发送中断。看门狗定时器还可能使当前信任级别重置。例如,如果看门狗定时器432经过时间,则看门狗定时器432可以使CPU 453重置。如果看门狗定时器433经过时间,则看门狗定时器433可以使I/O核心461和462重置。

在一些示例中,当处于不同于最高信任级别的信任级别的看门狗定时器到期时,与该看门狗定时器相关联的信任级别重置,而其他信任级别继续运行。当由看门狗计时器重置的信任级别重新启动时,信任级别可以对(多个)较低信任级别进行评估,并且确定是否重新启动那些级别。

附加地,在不同于最高信任级别的层处的看门狗定时器还可能使相关联的电路系统的I/O引脚在重置或者与重置相关联的周期期间进入预定义的默认状态。例如,这种看门狗定时器可以在重置期间通过其本身或者结合软件和/或附加的硬件,使相关联的电路的一个或多个I/O引脚被设置为高阻抗引脚。

接收中断的较高信任级别可以相应地做出响应,包括:日志记录和/或追踪事件,确定发送中断的级别应该被释放的时间和方式等。

在一些示例中,每个看门狗定时器是具有硬件接线以引起对应的重置和中断的硬件看门狗定时器。

在各种示例中,还可以采用许多合适的变化。例如,在一些示例中,每个信任级别可以包括多阶段的看门狗,在该多阶段的看门狗中,例如,在最后阶段到期之前不发生中断和/或复位,其中在较早的阶段到期时,发生其他纠正性动作和/或警告。

而且,在一些示例中,可以在特定信任级别下包括多个看门狗定时器。例如,不是在I/O核心的级别下具有一个看门狗定时器(如在图4的具体示例中所图示的),而是在一些示例中,每个I/O核心可以具有单独的看门狗定时器,其中每个看门狗定时器由其对应的核心重置,如果看门狗定时器到期,则向较高信任级别发送中断,并且如果看门狗定时器到期,则可以重置其对应的I/O核心。

为了清楚起见,根据由系统的特定设备或者组件按照特定顺序执行的操作来描述本文所描述的过程。然而,应该注意,其他过程不限于陈述的顺序、设备或者组件。例如,某些动作可以按照不同的顺序被执行,并行地被执行,被省略,或者可以由其他的动作或者特征补充,无论是否在本文中描述了这种顺序、并行性、动作或者特征。同样,本公开中所描述的任何技术都可以被并入描述的过程或者其他过程,无论是否结合过程具体地描述了技术。还可以在其他设备、组件或者系统上执行所公开的过程或者所公开的过程可以由其他设备、组件或者系统执行,无论是否在本文中描述了这种设备、组件或者系统。还可以按照各种方式来实施这些过程。例如,可以在制品上实施这些过程,例如作为被存储在处理器可读存储介质中的处理器可读指令,或者作为计算机实现的过程被执行。作为备选示例,这些过程可以被编码为处理器可执行指令以及经由通信介质来发送。

图5A至图5B图示了过程(580)的示例数据流。在一些示例中,过程580由设备控制器(例如图4所示设备控制器445)执行。在其他示例中,可以在其他合适的设备中执行处理器580。为了简单起见,图5中的图示示例按照同步线性方式图示了步骤。

在图示的示例中,首先发生步骤581。在步骤581,在一些示例中,经由集成电路中的独立执行环境集合中的第一独立执行环境,第一看门狗定时器被引起定期重置。在一些示例中,独立执行环境集合被配置为具有深度防御层次结构。在一些示例中,独立执行环境集合包括第一独立执行环境和第二独立执行环境。在一些示例中,第一独立执行环境是集成电路上最可信的执行环境。

如图所示,在一些示例中,接下来发生步骤582。在步骤582,在一些示例中,经由第二独立执行环境:第二看门狗定时器被引起定期重置。如图所示,在一些示例中,接下来发生判定步骤583。在判定步骤583,在一些示例中,确定第二看门狗定时器是否已经超时。如果没有,则在一些示例中,过程前进至步骤585。然而,如果在步骤583,确定第二看门狗定时器已经超时,则过程继续至步骤584,在该步骤584中,在一些示例中,中断从第二看门狗定时器被传送到第一独立执行环境。

如图所示,在一些示例中,接下来发生判定步骤585。在判定步骤585,在一些示例中,确定第一看门狗定时器是否已经到期。如果没有,则该过程然后可以继续至返回框,在该返回框中,继续其他处理。

如果相反,在判定步骤585中,确定第一看门狗定时器已经到期,则在一些示例中,接下来发生步骤586。在步骤586,在一些示例中,集成电路的至少一部分被重置。该过程然后可以继续至返回框。

虽然上述具体实施方式描述了本文的技术的某些示例,并且描述了所预期的最佳模式,但是无论上述内容在文本中有多么详细,都可以按照许多方式来实践本文的技术。细节可以在实现中发生变化,但是仍然由本文所描述的技术所涵盖。如上面所提到的,在描述本文的技术的某些特征或者方面时所使用的特定术语不应该被认为暗示该术语在本文中被重新定义为限于该术语与之相关联的任何特定特点、特征或者方面。通常,在以下权利要求书中所使用的术语不应该被解释为将本文的技术限于本文所公开的特定示例,除非具体实施方式明确地定义了这种术语。因此,本文的技术的实际范围不仅涵盖公开的示例,而且涵盖实践或者实现本文的技术的所有等效方式。

相关技术
  • 看门狗定时器层次结构
  • 外围看门狗定时器
技术分类

06120112181156