核映射

文档序号:1602645 发布日期:2020-01-07 浏览:4次 >En<

阅读说明:本技术 核映射 (Core mapping ) 是由 G·T·莱蒂 D·L·斯泰尔斯 E·B·奈廷格尔 于 2018-04-27 设计创作,主要内容包括:所公开的技术总体上涉及外围设备访问。在本技术的一个示例中,所存储的配置信息被读取。所存储的配置信息与以下相关联:将多个独立执行环境映射到多个外围设备,使得多个外围设备中的外围设备具有多个独立执行环境中的对应独立执行环境。基于配置信息对可配置中断路由表进行编程。从外围设备接收中断。基于可配置中断路由表向对应独立执行环境路由中断。(The disclosed technology relates generally to peripheral access. In one example of the present technology, stored configuration information is read. The stored configuration information is associated with: the plurality of independent execution environments are mapped to the plurality of peripheral devices such that a peripheral device of the plurality of peripheral devices has a corresponding independent execution environment of the plurality of independent execution environments. The configurable interrupt routing table is programmed based on the configuration information. An interrupt is received from a peripheral device. Interrupts are routed to the corresponding independent execution environment based on a configurable interrupt routing table.)

核映射

背景技术

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

发明内容

提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“

具体实施方式

”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

简言之,所公开的技术总体上涉及集成电路中的可配置***设备访问。在本技术的一个示例中,所存储的配置信息可以被读取。在一些示例中,所存储的配置信息与以下相关联:将多个独立执行环境映射到多个***设备,使得多个***设备中的***设备具有多个独立执行环境中的对应独立执行环境。基于配置信息,可以对可配置中断路由表进行编程。可以从***设备接收中断。基于可配置中断路由表,可以向对应独立执行环境路由中断。

在本公开的一些示例中,在多核环境中,某些核被配置成“拥有”某些***设备,而不是给所有核对所有***设备的访问权限。不是将哪些核拥有哪些***设备进行硬接线,而是核到***设备的映射可以是可动态预编程的,直到粘性锁定位被设置,此时,核到***设备的映射被固定,直到设备被重新启动。

核到***设备的映射针对每种设备类型可以是分开的,并且针对核到***设备的配置信息可以被存储在例如闪存上或者在另一合适的位置中。在安全世界中运行的安全代码可以读取配置信息,并且基于配置信息来设置配置寄存器。安全世界可以基于配置信息对核映射和中断路由表进行编程。在对核映射和中断路由表进行编程之后,可以设置粘性锁定位,使得核映射和中断路由被固定,直到设备被重新启动。

在操作期间,在一些示例中,核映射和中断路由表按照所配置的被使用。在一些示例中,从***设备接收的中断进入中间路由块,该中间路由块使用所配置的中断表将中断发送给“拥有”***设备的核。在一些示例中,所配置的核路由和所配置的中断路由表使得显得好像核被硬接线到其对应的***设备,而实际上并非如此。

核到***设备的映射可以包括中断以及其他边带通信,诸如直接存储器访问(DMA)路由。在一些示例中,通常在核与***设备之间的任一方向上的点对点的所有通信均经由核映射被路由,使得通信显得是点对点的,而实际上是经由中间路由块被路由的。

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

附图说明

参考附图描述本公开的非限制性和非穷举性示例。在附图中,除非另有说明,否则贯穿各个附图,相同的附图标记指代相同的部件。这些附图不一定按比例绘制。

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

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

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

图3是图示用于***设备访问的系统的示例的框图;

图4是图示用于***设备访问的设备的示例的框图;以及

图5是图示根据本公开的各方面的用于配置对***设备的访问的过程的示例数据流的图。

具体实施方式

以下描述提供用于彻底理解和实现本技术的各种示例的描述的具体细节。本领域技术人员将理解,可以在没有很多这些细节的情况下实现该技术。在一些实例中,没有详细示出或描述公知的结构和功能,以避免不必要地模糊对本技术的示例的描述。本公开中使用的术语旨在以其最宽泛的合理方式被解释,即使其结合该技术的某些示例的详细描述而被使用。虽然下面可能强调某些术语,但是旨在以任何受约束的方式来解释的任何术语将在“具体实施方式”部分中被明确地和具体地定义。在整个说明书和权利要求书中,除非上下文另有指示,否则以下术语至少采用本文中明确相关联的含义。下面标识的含义不一定限制术语,而仅仅提供术语的说明性示例。例如,术语“基于”和“根据”中的每个术语不是排他性的,并且等同于术语“至少部分地基于”,并且包括基于其他因素的选项,其中的一些因素可能没有在本文中描述。作为另一示例,术语“经由”不是排他性的,并且等同于术语“至少部分地经由”,并且包括经由附加因素的选项,其中的一些因素可能没有在本文中描述。“在……中”的含义包括“在……中”和“在……上”。本文中使用的短语“在一个实施例中”或“在一个示例中”不一定指相同的实施例或示例,虽然也可以指相同的实施例或示例。特定的文本数字指示符的使用并不表示存在较低值的数字指示符。例如,记载“从包括第三foo和第四bar的群组中选择的小部件”本身并不表示存在至少三个foo,也不表示存在至少四个bar元素。除非明确排除复数引用,否则单数引用仅仅是为了阅读的清楚并且包括复数引用。除非另有明确说明,否则术语“或”是包含性的“或”运算符。例如,短语“A或B”表示“A、B或A和B”。如本文中使用的,术语“组件”和“系统”旨在涵盖硬件、软件或硬件和软件的各种组合。因此,例如,系统或组件可以是过程、在计算设备上执行的过程、计算设备或其一部分。

简言之,所公开的技术总体上涉及集成电路中的可配置***设备访问。在本技术的一个示例中,所存储的配置信息可以被读取。在一些示例中,所存储的配置信息与以下相关联:将多个独立执行环境映射到多个***设备,使得多个***设备中的***设备具有多个独立执行环境中的对应独立执行环境。基于配置信息,可以对可配置中断路由表进行编程。可以从***设备接收中断。基于可配置中断路由表,可以向对应独立执行环境路由中断。

在本公开的一些示例中,在多核环境中,某些核被配置成“拥有”某些***设备,而不是给所有核对所有***设备的访问权限。不是将哪些核拥有哪些***设备进行硬接线,而是核到***设备的映射可以是可动态预编程的,直到粘性锁定位被设置,此时,核到***设备的映射被固定,直到设备被重新启动。

核到***设备的映射针对每种设备类型可以是分开的,并且针对核到***设备的配置信息可以被存储在例如闪存上或者在另一合适的位置中。在安全世界中运行的安全代码可以读取配置信息,并且基于配置信息来设置配置寄存器。安全世界可以基于配置信息对核映射和中断路由表进行编程。在对核映射和中断路由表进行编程之后,可以设置粘性锁定位,使得核映射和中断路由被固定,直到设备被重新启动。

在操作期间,在一些示例中,核映射和中断路由表按照所配置的被使用。在一些示例中,从***设备接收的中断进入中间路由块,该中间路由块使用所配置的中断表将中断发送给“拥有”***设备的核。在一些示例中,所配置的核路由和所配置的中断路由表使得显得好像核被硬接线到其对应的***设备,而实际上并非如此。

核到***设备的映射可以包括中断以及其他边带通信,诸如DMA。在一些示例中,通常在核与***设备之间的任一方向上的点对点的所有通信均经由核映射被路由,使得通信显得是点对点的,而实际上是经由中间路由块被路由的。

说明性设备/操作环境

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

如图1中所示,网络130可以包括一个或多个网络节点120,网络节点120互连多个计算设备110并且将计算设备110连接到外部网络140,例如,因特网或内联网。例如,网络节点120可以包括交换机、路由器、集线器、网络控制器或其他网络元件。在某些示例中,计算设备110可以被组织成机架、动作区域、组、集或其他合适的划分。例如,在所图示的示例中,计算设备110被分组为三个主机集,分别被标识为第一主机集、第二主机集和第三主机集112a-112c。在所图示的示例中,主机集112a-112c中的每个主机集分别操作性地耦合到对应的网络节点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-图5中示出或参考的任何设备的示例,如下面更详细地讨论的。如图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)和库来组织。例如,操作存储器设备可以经由通道中的存储器控制器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相反,数据存储存储器250被计算设备200采用以用于非易失性长期数据存储,而不是用于运行时数据存储。

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

计算设备200还包括输入接口260,其可以被配置成使得计算设备200能够从用户或从其他设备接收输入。另外,计算设备200包括输出接口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能够执行动作。

说明性系统

图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设备直接地或通过一个或多个中间方(intermediary)与应用后端通信,而不包括IoT集线器,并且应用后端中的软件组件作为IoT支持服务进行操作。IoT设备经由与IoT支持服务的通信来接收IoT服务。在一些示例中,IOT支持服务可以被嵌入在设备内部,或嵌入在本地基础设施中。

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

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

IoT设备341和342中的一个或多个IoT设备可以包括设备控制器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设备可以经由与其他IoT设备不同的网络330中的网络连接到用户设备。本质上,网络330包括通过其信息可以在IoT支持服务351、IoT设备341和IoT设备342以及应用后端313之间行进的任何通信方法。尽管每个设备或服务被示出为连接到网络330,但是这并不表示每个设备与所示的每个其他设备通信。在一些示例中,所示出的一些设备/服务经由一个或多个中间设备仅与示出的一些其他设备/服务通信。而且,尽管网络330被图示为一个网络,但在一些示例中,网络330可以代替地包括可以或可以不彼此连接的多个网络,其中示出的一些设备通过多个网络中的一个网络彼此通信,并且示出的其他设备通过多个网络中的不同网络彼此通信。

作为一个示例,IoT设备341和IoT设备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、中断/DMA握手路由块460、MCU 461、MCU 462、主高级可扩展接口(AXI)总线463、辅助AXI总线464、桥接器465和466、每个***设备的AXI到高级***设备总线(APB)桥接器467、接口471、GPIO 472、模数转换器(ADC)473、实时时钟(RTC)474和性能计数器475。

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

在一些示例中,安全性复合体451包括CSC(核安全性复合体),其是设备控制器445中的硬件信任根。在一些示例中,核安全性复合体直接连接至安全性复合体451中的安全MCU。在一些示例中,安全性复合体451中的安全MCU具有非常高的信任度,但是不如安全性复合体451中的核安全性复合体可信。在一些示例中,安全性复合体451在启动时开启整个系统。

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

无线电块457可以提供Wi-Fi通信。主AXI 463和辅助AXI 464可以是连接所示组件的总线。在一些示例中,桥接器465、466和467桥接所示的组件。RTC块474可以作为实时时钟操作。在一些示例中,设备控制器345中的所有组件可以从RTC块474读取,但是并非所有组件都具有对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可以包括任何合适的接口。

在一些示例中,设备控制器445包括核映射功能,其中核与***设备之间在双向上的通信中的至少一些通信由中间体路由,使得每个***设备显得经由硬接线的连接被特定的核所“拥有”,而实际上核映射是可配置的。在一些示例中,以这种方式来路由核与***设备之间的边带通信,即,核与***设备之间的、通常是点对点通信的通信。在一些示例中,边带通信包括来自***设备的中断,并且还包括核与***设备之间的DMA通信。核与***设备之间的DMA通信可以包括硬件流控制信号。DMA通信可以包括硬件握手,包括针对读取和写入数据的请求和确认。

在一些示例中,当边带通信将从核行进到***设备、或者从***设备行进到核时,通信进入中间块,该中间块路由该通信,使得通信在***设备与核之间进行,该***设备已经根据核映射被映射到该核。在一些示例中,已经用核映射来配置的一个或多个中间路由表路由通信。

在一些示例中,核映射针对每种设备类型是分开的,但是对于相同模型的每个设备是相同的。在一些示例中,核映射被存储在例如闪存存储器或其他合适的位置中。例如,在一些示例中,核映射被存储在闪存存储器456中。在一些示例中,在CPU 453的安全世界中运行的安全代码读取所存储的配置信息。安全代码可以基于所存储的配置信息对核映射和中断路由表进行编程。在一些示例中,核映射和中断路由表被存储在中断/DMA握手路由块460中。在一些示例中,核映射和中断路由表是配置寄存器,并且对这些寄存器的写入限于安全代码。

在对中断/DMA握手路由块460中的核映射和中断路由表进行编程之后,可以设置粘性锁定位,使得核映射和中断路由被固定,直到设备控制器445被重新启动。如本文所使用的“粘性”位意指具有两个值的位,并且一旦该位被设置,就阻止其被改变直到设备445重新启动。与粘性锁定位相对应的一个或多个表可以被配置,使得在粘性锁定位被设置时,阻止表被改变。即,在一些示例中,一旦粘性锁定位被设置,则对对应于该粘性锁定位的表的进一步写入可以被忽略或以其他方式无效。在正常操作期间,在表已被编程并且粘性锁定位已被设置之后,然后核映射和中断路由表可以按所配置的被使用。

在一些示例中,中断和DMA中间路由以及任何其他相关联的中间路由被配置具有彼此相同的核到***设备映射。即,在一些示例中,无论***设备映射到哪个核,使得核和***设备显得具有硬接线连接,该***设备都被映射到相同的核。即,在这些示例中,***设备跨中断中间路由、DMA中间路由和任何其他相关联的中间路由映射到相同的核。

在一些示例中,一些中断可以被硬接线到特定的核,而其他中断可以以上面讨论的方式可配置。在一些示例中,邮箱中断是硬接线的。在一些示例中,当I/O子系统或邮箱中的任何一个中断其相关联的核时,安全性复合体451也接收任何中断。出于相关联的功率管理功能性的目的,这样的中断可以由安全性复合体451使用。

在一些示例中,如下面更详细地解释的,例如可以包括设备控制器445中的每个核的、设备控制器445的独立执行环境可以在信任的层级内操作,并且在一些情况下,一个核内的多个独立执行环境(例如,CPU 453中的安全世界操作环境和CPU 453中的正常世界操作环境)可以在信任的层级内操作。在一些示例中,信任的层级可以扮演将***设备分配给特定核的角色。然而,本公开不限于此,并且在其他示例中,设备控制器445中不存在信任的层级,并且哪些***设备被分配给特定核的确定是基于其他因素的。

在一些示例中,安全性复合体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可信并且不如CPU453可信。在一些示例中,无线电模块457可以包括核,在一些示例中,核可以是MCU。无线电块457可以提供Wi-Fi功能性和到互联网和诸如IoT服务的云服务的连接性。在一些示例中,无线电块457可以经由蓝牙、近场通信(NFC)、ZigBee、长期演进(LTE)和/或其他连接性技术来提供通信。在一些示例中,无线电块457中的核不能访问未经加密的机密,并且不能够损害CPU453的执行。

在一些示例中,每个独立的执行环境由单个软件组件管理,该单个软件组件在被称为执行环境的“父级”的单独的执行环境中执行。在这样的示例中,一个例外可能是硬件信任根(在本示例中为安全性复合体451的核安全性复合体)没有父级。在一个特定示例中,每个父级在至少与其管理的环境一样可信的环境中执行。在其他示例中,可以采用其他合适的安全性手段。管理操作可以包括启动和重新恢复目标环境、监测和处置目标环境中的重置以及配置针对目标环境的访问策略。在一些情况下,某些管理操作由父级以外的组件执行。例如,在一些示例中,CPU 453的正常世界是管理MCU461和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,CPU453的正常世界用户模式应用是层级中的下一个并且被分配给应用,并且MCU 461和462在层级的底部并且被分配给***设备。在其他示例中,功能以不同的方式被分配给独立的执行环境。

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

在上面给出的示例中,MCU 461和462被分配给管理***设备。在一些示例中,它们可以以上面讨论的可配置方式被分配给***设备。在一些示例中,一些***设备比其他***设备更敏感,并且在一些示例中,特别敏感的***设备可以被分配给比MCU 461和462更可信的核。在一些示例中,“***设备”的概念可以被更宽泛地使用,使得例如WiFi功能性可以被认为是没有硬接线到特定核的***设备,并且代替地具有以其他***设备的方式到特定核的可配置映射的***设备。

除了简单地将特定***设备映射到特定核之外,特定***设备还可以被映射到特定的独立执行环境。例如,***设备可以被映射到特定的独立执行环境。例如,***设备可以被映射到特定核,诸如,MCU 461、MCU 462或安全性复合体451的安全MCU,或者***设备可以代替地被映射到CPU 453的安全世界或CPU 453的正常世界。

说明性过程

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

图5是图示用于配置对***设备的访问的过程(580)的示例数据流的图。

在所图示的示例中,首先发生步骤581。在步骤581处,在一些示例中,所存储的配置信息被读取。在一些示例中,所存储的配置信息与以下相关联:将多个独立执行环境映射到多个***设备,使得多个***设备中的***设备具有多个独立执行环境中的对应的独立执行环境。

如所示的,在一些示例中,接下来发生步骤582。在步骤582处,基于配置信息对可配置路由进行编程。例如,可配置路由可以包括可配置中断路由表、可配置数据管理访问路由表、多个配置寄存器等。如所示的,在一些示例中,接下来发生步骤583。在步骤583处,可以接收来自***设备的中断。如所示的,在一些示例中,接下来发生步骤584。在步骤584处,在一些示例中,基于可配置的路由(例如,可配置中断路由表)将中断路由到对应的独立执行环境。

然后,该过程可以进行到返回框,在返回框处,可以重新恢复其他处理。

结论

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

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于减少软件应用的启动时间的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!