具有非对称访问特权的集成电路的制作方法
未命名
09-09
阅读:55
评论:0

1.本文描述的示例涉及集成电路,例如用于保护和/或控制自身和/或例如换能器等输出部件的功能的集成电路。
背景技术:
2.许多计算平台经由集成电路(以下称为“ic”)与输出部件连接。在这些示例中,处理器可以经由第一信号路径与输出部件通信接触,即耦合,例如以保护和/或控制ic和/或输出部件的功能。第一信号路径可以包括ic。
3.图1示出了示例现有技术系统100。在这个系统100中,处理器101耦合到ic 150,ic 150包括控制接口151、数据接口152、总线153、片上处理器154和包括多个(n个)地址范围1551到155n(在下文将一起由155表示)的可寻址空间。ic或芯片150可以包括至少一个输出部件190或与至少一个输出部件190相关联(例如耦合到至少一个输出部件190)。控制接口151可以经由总线153为处理器101提供对ic 150的地址范围155的访问。ic 150的地址范围155可以包括一组寄存器,例如可寻址的
‘
控制’存储器空间(以下称为“可寻址控制空间”),和一组用于数据存储的存储器,例如可寻址的'数据'存储器空间(以下称为“可寻址数据空间”),例如ram块。ic的处理器154可以将控制信号和/或数据信号,例如音频和/或视频和/或触觉数据信号等,输出到输出部件190。系统100还包括控制器103(例如微控制器(mcu),例如安全微控制器)或处理器(例如微处理器,例如安全微处理器)。片上处理器154可以基于经由数据接口152接收到的数据来控制输出部件190的功能。ic的处理器154可以包括数字信号处理器(dsp)并且可以被配置成处理在数据接口152处接收到的信号并且可以将控制信号和/或数据信号输出到输出部件190,输出部件190然后作用于接收到的信号。
4.根据现有技术系统100,在ic 150(和/或输出部件190)的引导(例如安全引导)或启动期间,处理器101命令mcu 103将固件加载到ic 150的地址范围155中(例如加载到ic的数据空间中)。另外地和/或另选地,mcu 103可以在其加电之后自主地加载固件,和/或系统100可以被设计成使得处理器101在mcu 103向它发出信号以表明mcu 103已将系统硬件初始化之前都不会进行引导。mcu 103还能够将其他控制设置编程到ic 150的一个或多个地址范围中,例如ic处理器154和/或一个或多个输出部件190的运行时间设置。
5.然而,在ic 150的运行时间期间,外部处理器101只能控制ic 150在开(on)状态与关(off)状态之间切换。因此,在ic 150的运行时间期间,处理器101仅具有对ic 150的基本开/关控制(例如,处理器101可以经由通用输入/输出(gpio)接口访问ic 150的电力引脚(未示出))。
6.因此希望处理器101对ic 150和/或输出部件190的保护和/或功能具有更多控制。
7.然而,如果现有技术处理器101被授予对ic 150的运行时间访问,则在处理器101上运行的任何恶意软件都可以访问ic 150(例如,其地址范围155),并且可以例如超控任何或所有控制设置、固件、运行时间固件设置等。这可能会允许恶意软件对ic 150和/或输出部件190造成不可逆的损坏(例如过载)。强烈希望防止由系统级的软件执行在运行时设置
的恶意动作,并且需要确保装置(例如包括系统100的任何部件的装置)的安全性。
8.ic 150还可以包括用于将输出信号转换为模拟输出信号以驱动换能器190的数模转换器(dac)156。是否包括dac 156是取决于系统要求的简单设计选择,这对技术人员来说是显而易见的。
9.本示例涉及提供一种集成电路,所述集成电路可以允许外部处理器实现对ic和因此由ic控制的输出部件的运行时间控制和/或保护。更具体地,本示例涉及提供一种集成电路,所述集成电路可以允许外部处理器访问ic内的一组可寻址范围以允许外部处理器实现对ic和/或输出部件的运行时间控制和/或保护。
技术实现要素:
10.根据一示例,提供了一种集成电路,所述集成电路包括可寻址空间,所述可寻址空间包括一个或多个(例如多个)地址范围,其中所述集成电路被配置成允许外部处理器访问所述一个或多个地址范围的授权子集。这个示例的电路准许外部处理器(例如执行驱动程序软件)访问所述地址范围的子集,并且用这种方式授予处理器对集成电路和/或输出部件的功能的一些(但不是全部)控制。用这种方式,所述授权子集可以包括那些被认为是处理器能够“安全”访问的空间,例如在运行时间期间,而不只是像现有技术集成电路和处理器那样仅在引导/启动期间访问。所述集成电路可以被配置成允许处理器在所述集成电路的运行时间期间访问所述一个或多个地址范围的所述授权子集。用这种方式,这个示例的集成电路向外部处理器提供运行时间控制,从而允许所述外部处理器在所述集成电路的运行时间期间访问所述集成电路的一些地址范围(例如进行读取、写入或读写访问)。现有技术处理器没有这样的控制。所述集成电路可以包括接口,所述接口被配置成允许处理器控制对所述一个或多个地址范围的所述授权子集的访问。
11.根据另一个示例,提供了一种集成电路,所述集成电路包括接口,所述接口被配置成提供对所述集成电路的一个或多个地址范围的授权子集的受控访问。关于上述示例,这个示例的电路准许外部处理器(例如执行驱动程序软件)访问所述地址范围的子集,并且用这种方式授予处理器对所述集成电路和/或输出部件的功能的一些(但不是全部)控制。用这种方式,所述授权子集可以包括那些被认为是处理器能够“安全”访问的空间,例如在运行时间期间,而不只是像现有技术集成电路和处理器那样只是在引导/启动期间访问。所述接口可以被配置成在所述集成电路的运行时间期间提供对所述集成电路的一个或多个地址范围的授权子集的访问控制。关于上述示例,用这种方式,所述集成电路提供对处理器的运行时间控制,从而允许处理器访问所述集成电路的一些地址范围,而现有技术处理器没有这样的控制。所述接口可以包括控制接口。
12.所述集成电路还可以被配置成允许外部处理器(例如微控制器)在所述集成电路的引导/启动期间访问所述一个或多个地址范围中的每一个。在一个示例中,为此目的,所述集成电路可以包括另一个接口,所述另一个接口被配置成允许处理器在引导/启动期间控制对所述集成电路的所述一个或多个地址范围中的每一个的访问。所述另一个接口可以包括控制接口。用这种方式,根据一些示例,所述集成电路可以包括:接口,所述接口被配置成准许处理器在运行时间期间访问所述集成电路的所述一个或多个地址范围的子集;以及另一个接口,所述另一个接口被配置成准许处理器在引导/启动期间访问所述电路的可寻
址空间中的所述地址范围中的一个或多个地址范围(例如多个地址范围,例如多个地址范围中的每一个)。所述接口因此可以被称为“受限制接口”或“受限制控制接口”(因为所述接口准许访问有限数量的空间,例如子集),而另一个接口因此可以被称为“不受限制接口”或“不受限制控制接口”。在下文中,在本说明书中,考虑到在所述集成电路的使用期间每个接口的使用时间顺序,不受限制接口被称为
‘
第一接口’并且受限制接口被称为
‘
第二接口’。
13.根据另一个示例,提供了一种包括一个或多个地址范围的集成电路,其中所述集成电路被配置成允许外部处理器在所述集成电路的运行时间控制期间访问所述一个或多个地址范围中的至少一个地址范围。这个示例的电路准许外部处理器(例如执行驱动程序软件)在运行时间期间访问所述集成电路的地址范围,从而授予处理器对所述集成电路和/或输出部件的功能的运行时间控制。现有技术集成电路不提供对集成电路地址范围的这种运行时间访问。所述集成电路可以包括接口,所述接口被配置成在所述集成电路的运行时间控制期间允许所述外部处理器控制对所述一个或多个地址范围中的至少一个地址范围的访问,或允许所述外部处理器受控地访问所述一个或多个地址范围中的至少一个地址范围。
14.根据另一个示例,提供了一种包括接口(例如控制接口)的集成电路,其中所述接口被配置成允许外部处理器在所述集成电路的运行时间控制期间访问所述集成电路的至少一个地址范围。关于第三示例,这个示例的电路准许外部处理器(例如执行驱动程序软件)在运行时间期间访问所述集成电路的地址范围,从而授予所述外部处理器对所述集成电路和/或输出部件的功能的运行时间控制。现有技术集成电路不提供对集成电路的空间的这种运行时间访问。所述接口可以包括控制接口。
15.在上述任一示例中,集成电路可以被配置成允许处理器在集成电路的引导/启动期间访问一个或多个地址范围中的每一个。集成电路还可以包括另一个接口或控制接口,其中所述另一个接口被配置成在集成电路的引导/启动期间允许处理器控制对集成电路的一个或多个地址范围中的每一个的访问,或允许处理器受控制地访问集成电路的一个或多个地址范围中的每一个。
16.根据将在下文解释的另一个示例,一种集成电路可以包括两个接口并且可以能够采用关于以上示例所描述的配置。在这些示例中,集成电路能够采用一种配置或状态,其中所述两个接口中的一个接口被准许访问可寻址空间的子集(如上所述)或被阻止访问可寻址空间的子集(如上所述),并且因此被配置成“受限制”接口,另一个接口被配置成“不受限制”接口。
17.在所述示例中的任一个中,集成电路可以被配置成设置一个或多个地址范围的访问特权/针对一个或多个地址范围的访问特权以将一个或多个地址范围的子集指定为授权子集,或将所述地址范围中的特定的一个或多个地址范围指定为在集成电路的运行时间期间可访问的。举例来说,集成电路可以包括控制单元,所述控制单元被配置成设置一个或多个地址范围的访问特权以将所述一个或多个地址范围的子集指定为授权子集。
18.根据另一个示例,提供了一种包括一个或多个地址范围的集成电路,其中所述集成电路被配置成设置对一个或多个地址范围中的至少一个的访问许可。关于上述示例,这个示例中的集成电路可以将其地址范围的子集指定为可访问的,并且外部处理器可以例如在集成电路的运行时间期间例如经由接口进行访问。所述集成电路可以包括控制单元,所
述控制单元被配置成设置对所述至少一个地址范围的所述访问许可。所述集成电路可以包括控制接口,其中所述接口被配置成提供对所述一个或多个地址范围的授权或受限子集的访问,所述授权子集包括由所述集成电路确定的一组地址范围。所述集成电路还可以包括另一个接口或控制接口,其中所述另一个接口被配置成(例如在引导/启动时)提供对所述一个或多个地址范围中的每个地址范围的访问,例如不受限制的访问。
19.在所述示例中的任一个中,所述一个或多个地址范围可以包括一组可寻址控制空间和一组可寻址存储器空间,并且所述授权子集可以包括至少一个可寻址控制空间和至少一个可寻址存储器空间。所述一个或多个地址范围可以包括ic的内部可寻址空间、电子寄存器、可编程数据存储器和/或可编程数据结构中的任何一个或多个。地址范围中的每一个可以被配置成存储例如数据字节的二进制字的各个位。
20.根据以上示例中的任一个的集成电路可以包括电路处理器或片上处理器,例如数字信号处理器(dsp)。电路处理器可以结合电路的可寻址控制和/或数据空间之一来控制输出部件并且因此也可以保护输出部件。输出部件可以包括将能量从一种形式转换成另一种形式的换能器。换能器可以包括:有源换能器;无源换能器;电气(电阻、电感和/或电容)换能器;模拟换能器;数字换能器;热换能器;压力换能器;位移换能器;振荡器换能器;流量换能器;压电换能器;化学换能器;互感换能器;磁换能器;霍尔效应换能器;电化学换能器;基于质量的换能器和/或光学换能器。
21.所述集成电路可以包括数据接口。因此,数据接口与例如控制接口的上述两个接口一起可以限定电路的第三接口。数据接口可以被配置成接收数据,例如输入信号。在一些示例中,数据接口可以被配置成接收音频信号,例如数字信号,例如脉冲编码调制(pcm)信号。
22.所述集成电路可以包括总线(例如片上)总线,任选地,其中所述总线耦合到以下各项中的至少一个:一个或多个接口、至少一个可寻址空间和/或电路处理器。(外部)处理器可以被配置成通过经由所述总线(并且经由接口之一)与空间通信来访问电路的可寻址空间中的地址范围中的至少一个。在所述集成电路包括控制单元(例如可编程访问控制或pac单元)的示例中,所述控制单元被配置成设置一个或多个地址范围的访问特权以将一个或多个地址范围的子集指定为授权子集。所述pac单元可以耦合到所述不受限制接口和所述总线。通过所述总线,所述pac单元可以被配置成访问一个或多个地址范围以改变所述地址范围的许可并将一个子集指定为授权子集以便能够经由所述受限制接口访问。处理器(例如dsp)也可以耦合到片上总线并且可以经由(在集成电路外部的)编解码器来接收数据。
23.所述控制单元(例如pac单元)可以在所述集成电路中实现为硬件和/或软件。所述控制单元可以被配置成向过滤器或门发送信号来表明是允许还是阻拦来自接口的特定访问请求(例如读取或写入)。所述集成电路可以包括过滤器,例如地址过滤器,所述过滤器可以连接到所述受限制接口和所述控制单元。所述过滤器可以被配置成阻拦和/或允许访问所述集成电路的至少一个地址范围。所述控制单元可以包括策略表。所述策略表或比较表可以包括数据结构,例如具有一个或多个访问策略条目的查找表(lut)。结合针对可寻址空间中的至少一个地址范围的关联访问许可,每个条目可以限定集成电路的可寻址空间内的块或区域。举例来说,所述策略表可以限定与访问许可相关联的一组地址范围。所述访问许
可可以包括对可寻址空间中的至少一个地址范围进行读取、写入或读写的许可。可以存储针对一组地址范围的访问许可,并且该组地址范围可以由开始地址和结束地址或开始地址和地址长度(限定结束地址的长度)来限定。用这种方式,被指定为授权的地址范围子集可以由存储在所述策略表中的关联访问许可来如此指定。所述控制单元还可以包括审核单元或审核模块,所述审核单元或审核模块可以包括可以被配置成将关于经由接口接收到的访问请求的传入信息与所述策略表中的条目进行比较并且还可以被配置成确定是阻拦还是允许关于访问信息的请求的硬件和/或软件(例如比较器和/或组合逻辑)。所述审核单元还可以被配置成为所述过滤器或门(例如地址门)提供“允许访问”信号以准许所述接口访问与所述请求有关的空间,否则所述过滤器或门可以拒绝或阻拦所述请求。“访问信息”意味着包括从外部实体(例如外部处理器)到所述集成电路内的可寻址空间的传入请求的细节。所述访问信息或请求可以包括空间的地址(或位置)、请求的性质(例如读取或写入)和要写入到所述空间中的数据中的一项或多项。更具体地,根据一示例,可以经由接口(例如,如上所述的受限制接口)来接收读取或写入或读写可寻址空间的至少一个地址范围的请求。所述控制单元的审核单元或模块将所述传入信息中包含的至少一个地址范围与(例如存储在策略表中的)关联访问许可进行比较,以确定是阻拦还是允许所述请求。举例来说,可以确定至少一个地址范围是否位于与写入或读取或读写访问许可相关联的一组地址范围内。举例来说,如果请求是读取给定的地址范围,则可以确定所述给定的地址范围是否与读取许可相关联。如果是,则允许所述访问请求。在存储针对多组地址范围的访问许可的示例中,可以确定至少一个地址范围是否包含在与给定的访问许可相关联的多组地址范围内(例如地址范围是否位于由开始范围和结束范围限定的范围之间,或者在该组地址范围由开始地址和长度限定的示例中,可以确定地址是否位于与特定访问许可相关联的范围“开始地址+块/地址长度-1”之间。如果根据策略表或比较表,对于任何特定请求,空间都被指定为授权的,则所述审核单元向门(或过滤器或门户等)发送“允许访问”信号,所述门采用准许外部处理器访问所述可寻址空间中的至少一个地址范围的配置。在一个示例中,所述地址过滤器包括默认配置,根据所述默认配置,访问被拒绝,使得如果根据策略表,要读取或写入的空间未被指定为授权的,则不向所述过滤器发送“允许访问”信号,这样会阻拦所述请求。
24.所述控制单元可以经由存储在策略表中的访问许可来指定地址范围的授权子集。因此,可以通过对策略表进行编程而将所述子集指定为授权的。存储在策略表中的访问许可可以是可修改的,但是也可以是可锁定的,使得防止对策略表的任何进一步写入(和因此对策略表的更改)。所述授权子集可以包括与访问许可相关联的至少一个地址范围,所述访问许可包括对所述至少一个范围进行读取、写入或读写的许可。所述授权子集因此可以包括读取子集、写入子集和读写子集中的至少一个。在策略表可锁定的示例中,可以设置策略表的访问许可,使得除非通过重置集成电路使得有效地清除策略表,否则所述访问许可都不能被改变。
25.在另一个示例中,所述集成电路可以包括多个接口,其中每个接口可配置为受限制接口或不受限制接口。在一个示例中,集成电路可以包括n个接口(n是1或更大的整数),所述n个接口中的每一个可配置为受限制接口或不受限制接口,并且根据一种配置,一个接口被配置为不受限制接口,而n-1个接口被配置成受限制接口。在两接口示例中,两个接口中的每一个连接到所述控制单元(所述控制单元可以包括如上所述的策略表和审核模块)
并且两个接口中的每一个连接到相应的关联过滤器。为此,所述集成电路可以包括专用地址范围,所述专用地址范围被配置成打开一个过滤器并关闭另一个过滤器—与所述打开的过滤器相关联的接口是受限制接口,因为传入的访问请求将通过如上所述的机制来检查,而不对另一个接口(具有关闭的过滤器)执行此类检查,因此这个接口是不受限制接口,因为所述接口能够访问所有空间。不同于专用地址范围,ic可以被配置成(例如通过非易失性存储器,例如一次性可编程(otp)存储器)将一个接口指定为不受限制的而将剩余的一个接口(或多个接口)指定为受限制的。用这种方式,ic能够让用户选择哪个接口是受限制不受限制的以及剩余的接口中哪个/哪些是受限制接口。
26.在另一个示例中,所述集成电路可以包括一个如上所述的不受限制接口和多个(例如,多于一个,例如m个,其中m是整数)受限制接口。在这个示例中,每个受限制接口可以与其自身的策略表相关联,使得每个受限制接口具有特有的访问许可,因为每个受限制接口可以能够访问特有的空间授权子集。
27.因此,在一个示例中,提供了一种集成电路,所述集成电路包括接口、包括多个地址范围的内部可寻址空间,其中所述接口耦合到所述内部可寻址空间,其中所述集成电路可配置成处于第一状态以允许或拒绝所述接口访问所述内部可寻址空间的所述多个地址范围的子集。
28.因此,在一个示例中,提供了一种集成电路,所述集成电路包括接口、多个存储器位置,其中所述接口耦合到所述多个存储器位置,其中所述集成电路可配置成处于第一状态以允许或拒绝所述接口访问所述多个存储器位置的子集。
29.在另一个示例中,提供了一种集成电路,所述集成电路包括接口、包括多个地址范围的内部可寻址空间,其中所述接口耦合到所述内部可寻址空间,并且其中经由所述接口来准许访问所述多个地址范围的第一子集并且经由所述接口来阻止访问所述多个地址范围的第二子集。
30.在另一个示例中,提供了一种集成电路,所述集成电路包括接口和多个存储器位置,其中所述接口耦合到所述多个存储器位置,并且其中经由所述接口来准许访问所述多个存储器位置的第一子集并且经由所述接口来阻止访问所述多个存储器位置的第二子集。
31.在另一个示例中,提供了一种集成电路,所述集成电路包括第一接口和第二接口、包括一个或多个地址范围的内部可寻址空间以及控制单元。所述第一接口和所述第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间,并且所述控制单元可配置成处于第一状态,在所述第一状态下,所述控制单元被配置成允许或拒绝所述第二接口访问所述内部可寻址空间的所述一个或多个地址范围的子集。
32.可以经由所述第一接口来设置所述控制单元的配置。
33.所述控制单元可以包括具有开状态和关状态的门。所述第二接口可以经由所述门耦合到所述内部可寻址空间。所述控制单元被配置成处于所述第一状态可以对应于所述门被配置成处于所述开状态。所述门的状态可以是例如通过所述控制单元可锁定的,使得防止所述门的状态被改变。可能只有通过重置所述集成电路以有效地将所述门重置到其默认的关配置才有可能改变所述门的状态(例如从开回到关)。
34.所述控制单元可以包括策略表,所述策略表存储针对所述内部可寻址空间的访问许可。所述访问许可可以限定所述控制单元在处于所述第一状态时允许或拒绝访问的所述
地址范围子集。
35.所述控制单元可以包括策略表,所述策略表存储针对所述内部可寻址空间的访问许可。所述访问许可可以限定所述控制单元在处于所述第一状态时允许或拒绝访问的所述地址范围子集。所述门可以耦合到所述策略表,使得在所述开状态下,所述门被配置成根据所述策略表来允许或拒绝对所述内部可寻址空间的所述子集的访问。
36.所述控制单元还可以包括审核模块,所述审核模块被配置成,对于经由所述第二接口接收到的访问所述一个或多个地址范围中的至少一个地址的传入请求,访问所述策略表以确定与所述至少一个地址相关联的访问许可并向所述门发送信号。处于开状态的所述门可以被配置成在接收到来自所述审核模块的所述信号时取决于与所述至少一个空间相关联的访问许可而采用一种配置,根据所述配置来允许或拒绝所述接收到的访问请求。
37.所述门的开/关状态可以被配置成可经由非易失性存储器来控制。所述非易失性存储器可以包括一次性可编程(otp)存储器。
38.所述审核模块包括比较器或组合逻辑。
39.经由所述第二接口接收的传入访问请求可以包括对所述至少一个地址进行读取、写入或读写的请求。关联的访问许可可以包括对所述至少一个地址进行读取、写入或读写的许可。
40.所述策略表可以被配置成存储针对所述内部可寻址空间中的一组地址范围的访问许可。所述策略表中的所述访问许可可以被配置成经由所述第一接口来设置。
41.所述集成电路可以经过配置,使得在所述集成电路的引导之后,防止修改存储在所述策略表中的所述访问许可。
42.在所述第一状态下,所述控制单元可以被配置成存储访问许可,所述访问许可限定经由所述第二接口允许或拒绝访问的所述地址范围子集。所述访问许可可以被配置成经由所述第一接口来设置。
43.当处于所述第一状态时,所述控制单元可以被配置成允许所述第一接口访问所述内部可寻址空间的所述一个或多个地址范围。
44.所述控制单元可以包括具有开状态和关状态的门。所述第一接口可以经由所述门耦合到所述内部可寻址空间。所述控制单元被配置成处于所述第一状态可以对应于所述门被配置成处于所述关状态。
45.根据一示例,当所述控制单元被配置成处于所述第一状态时,可以提供集成电路。
46.所述集成电路可以包括多个第二接口。所述多个第二接口中的每一个可以经由所述控制单元耦合到所述内部可寻址空间。所述控制单元可以可配置成处于所述控制单元被配置成允许或拒绝所述多个第二接口的子集访问所述地址范围子集的状态。
47.所述集成电路可以包括多个第二接口和多个控制单元。所述多个第二接口中的每一个可以经由相应的控制单元耦合到所述内部可寻址空间。每个控制单元可以可配置成处于第一状态,在所述第一状态下,所述控制单元被配置成允许或拒绝相应的第二接口访问所述地址范围的至少一个相应子集。
48.经由所述第一接口来设置所述多个控制单元中的每一个的配置。
49.根据另一个示例,提供了一种集成电路,所述集成电路包括第一接口和第二接口以及包括一个或多个地址范围的内部可寻址空间。所述第一接口和所述第二接口中的每一
个耦合到所述内部可寻址空间,并且经由所述第二接口来准许访问所述一个或多个地址范围的第一子集,并且经由所述第二接口来阻止访问所述一个或多个地址范围的第二子集。
50.可以经由所述第一接口来准许访问所述一个或多个地址范围。
51.所述集成电路可以包括策略表,所述策略表被配置成存储针对所述一个或多个地址范围的至少一个子集的访问许可,使得根据存储在所述策略表中的所述第一子集和所述第二子集的关联访问许可来限定所述第一子集和所述第二子集。
52.所述访问许可可以被配置成经由所述第一接口来设置。
53.所述集成电路还可以包括门和审核模块。所述审核模块可以耦合到所述策略表和所述门。所述审核模块可以被配置成,对于经由所述第二接口接收到的访问所述一个或多个地址范围中的至少一个地址的传入请求,访问所述策略表以确定与至少一个空间相关联的访问许可并向所述门发送信号。所述门可以被配置成在接收到来自所述审核模块的所述信号时取决于与所述至少一个空间相关联的所述访问许可而采用一种配置,根据所述配置来允许或拒绝所述接收到的访问请求。
54.根据一示例,一种系统包括如上所述的集成电路,并且包括:安全微控制器,所述安全微控制器经由所述第一接口耦合到所述可寻址空间;以及处理器,所述处理器经由至少一个第二接口耦合到所述可寻址空间。
55.所述处理器可以被配置成触发所述安全微控制器以初始化所述集成电路。
56.所述处理器可以被配置成初始化操作系统。所述安全微控制器可以被配置成在所述处理器完成初始化所述操作系统之前初始化所述集成电路。
57.根据另一个示例,提供了一种集成电路,所述集成电路包括第一接口和第二接口以及包括一个或多个地址范围的内部可寻址空间。所述集成电路是可配置的,使得经由所述第一接口和所述第二接口中的一个来准许访问所述一个或多个地址范围,并且经由所述第一接口和所述第二接口中的另一个来允许访问所述一个或多个地址范围的第一子集而拒绝访问所述一个或多个地址范围的第二子集。
58.其他示例提供一种包括如上所述的集成电路的系统。除了所述集成电路之外,所述系统还可以包括外部处理器,所述外部处理器被配置成例如经由所述集成电路的接口(例如控制接口)访问所述集成电路。这个处理器可以被称为“主处理器”或“应用处理器”以将这个处理器与所述系统中的其他处理器(例如所述集成电路的处理器)区分开来。所述系统还可以包括主板,并且所述主处理器可以经由所述主板与所述集成电路通信,所述主板还可以包括芯片组(或平台控制集线器)、微控制器(mcu)(或微处理器,所述术语在下文应被视为同义词)和/或编解码器。所述主处理器可以被配置成执行驱动程序软件和应用软件,例如经由所述主板访问所述集成电路。
59.所述编解码器可以经由数据接口耦合到所述集成电路,并且可以经由数据接口向所述集成电路的所述处理器(例如dsp)发送信号。所述集成电路的片上处理器(例如dsp)因此可以被配置成经由数据接口从所述编解码器接收数据。所述主处理器可以耦合到所述芯片组/pch和所述mcu两者。举例来说,所述芯片组/pch可以耦合到所述主处理器和所述第二或受限制接口,并且所述mcu可以耦合到所述主处理器和所述第一或不受限制接口。然后,经由所述芯片组/pch,所述主处理器可以被配置成通过所述第二接口访问所述电路的可寻址空间。
60.如上所述,通过所述第二接口经由所述主处理器可访问的地址范围的(授权)子集是受限制集合(因为它是一个或多个或多个地址范围的子集),并且这个子集可以允许执行驱动程序软件的所述主处理器在所述电路(或耦合到所述电路的输出部件)的运行时间期间访问所述集成电路的至少一个控制空间(或寄存器)。用这种方式,通过所述第二接口,所述主处理器具有对所述电路的运行时间控制,但是不能完全访问所述电路的地址范围。另一方面,所述第一接口允许对所述电路的地址范围中的每一个的不受限制访问,并且所述处理器因此经由所述安全mcu连接到所述第一接口以在所述集成电路的启动或引导期间访问所述地址范围。运行时间控制可以包括实时控制或反应控制,并且可以包括在除了所述电路的引导或启动之外的时间对所述集成电路和/或输出部件的控制。
61.如本领域技术人员所理解的,所述安全mcu被配置成不受恶意软件的影响。用这种方式,尽管所述主处理器(经由所述第一接口)可以访问所述集成电路的所有可寻址空间,但是由于这种访问是经由所述安全mcu进行的,所以恶意软件无法经由所述第一接口访问所述可寻址空间。经由所述安全mcu,所述主处理器可以被配置成以不受恶意软件影响的安全方式来执行应用软件、将固件和/或任何其他安全关键设置下载和/或加载到所述集成电路的至少一个地址空间中。
62.经由所述第二接口对所述可寻址空间的访问不是经由所述安全mcu进行的。所述处理器经由所述第二接口可访问的地址范围的授权子集因此可以包括不危害或不破坏安全性的那些空间。用这种方式,如果任何恶意软件要经由所述第二接口访问地址范围的授权子集中的任一个,则所述电路损坏和/或故障的风险很低或不存在,因为那些可能导致电路损坏/故障的地址范围不属于授权子集的一部分,因此只有经由不受恶意软件影响的所述安全mcu才能访问。
63.在一个特定(但非限制性)示例中,所述系统包括音频系统。所述编解码器包括用于向所述电路的dsp发送数字(例如pcm)音频信号的音频编解码器(例如高清晰度音频(hda)编解码器)。输出部件是放大器换能器,它将在dsp处接收到的信号放大,然后输出到扬声器,让扬声器以声波形式输出音频。在这个示例中,所述集成电路可以包括放大器集成电路。
64.根据一示例,提供了一种包括接口和门的集成电路,其中所述接口耦合到所述门,并且其中所述门可配置成处于两种状态之一,其中所述门的状态是基于与经由所述接口接收到的访问请求相关联的数据。在另一个示例中,提供了一种包括接口和门的集成电路,其中所述接口耦合到所述门并且被配置成接收访问请求,其中所述门被配置成基于与所述访问请求相关联的数据来允许或拒绝对所述接口的访问。所述门的所述两个状态可以包括所述门被配置成允许所述访问请求的允许(allow)状态和所述门被配置成拒绝所述访问请求的拒绝(deny)状态。所述访问请求可以描述要访问的所述电路的寄存器,例如地址范围,并且在允许状态下,所述门可以被配置成允许经由所述接口访问由所述访问请求描述的所述电路的寄存器。所述集成电路可以包括如上所述的控制模块和/或策略表以用上述方式来设置所述门的状态。
65.根据另一个示例,提供了一种集成电路,所述集成电路包括:包括多个地址范围的内部可寻址空间;控制单元,所述控制单元可配置成处于第一状态和第二状态;以及接口,所述接口经由所述控制单元耦合到所述内部可寻址空间,其中,当所述控制单元被配置成
处于所述第一状态时,所述接口经由所述控制单元不受限制地访问所述多个地址范围,并且当所述控制单元被配置成处于所述第二状态时,所述接口经由所述控制单元访问所述多个地址范围的受限制子集。
66.在这个示例中,所述集成电路可以具备单个接口(与上面列出的一些示例中的两个接口相反)并且经由所述单个接口来设置所述控制单元并且因此所述集成电路的配置。当所述控制单元被配置成处于所述第一状态时,所述控制单元经由所述接口可配置成处于所述第二状态。换句话说,所述控制单元(并且因此所述电路)的默认配置是对内部空间的访问不受限制的第一状态,但是所述默认配置可经由所述接口配置成访问变得受限制的第二状态。这种配置的一个优点是单个处理器(例如应用处理器)可以安全地使所述集成电路加载固件并且配置所述集成电路(当处于第一状态时)并且具有对所述集成电路的运行时间控制(当处于第二状态时)。因此,不需要单独的安全控制器。处理器内的系统引导加载程序(例如,被认为是安全的统一可扩展固件接口(uefi)引导)与主操作系统(被认为是不安全的)之间的分离可以用于经由单个外部处理器来完成安全加载和配置所述集成电路。在不受限制的第一状态下,所述集成电路准许处理器上的uefi引导加载程序加载所述集成电路并为主操作系统配置地址范围访问。外部处理器然后可以用下文描述的方式将所述控制单元转换到受限制的第二状态。在不用下文描述的方式重置所述控制单元的情况下,从第一状态到第二状态的这种转变可能是不可逆的。一旦处于第二状态,主操作系统可以初始化,并且外部处理器可以具有对所述集成电路的运行时间控制。这样,多个地址范围的受限制子集可以不包括用于所述控制单元的配置寄存器。
67.所述控制单元可以包括如上文关于其他示例所描述的策略表。所述策略表被配置成存储针对所述内部可寻址空间的访问许可,所述访问许可限定当所述控制单元被配置成处于其第二状态时所述接口访问的所述多个地址范围的所述受限制子集。当所述控制单元被配置成处于所述第一状态时,所述访问许可可经由所述接口写入到所述策略表。用这种方式,将所述控制单元配置成处于其第二状态可以对应于配置所述策略表和限定访问被限制的地址范围子集,例如通过将策略和/或访问许可写入到所述策略表。
68.当所述控制单元被配置成处于其第二状态时,可以防止经由所述接口来修改所述策略表的所述访问许可。用这种方式,所述控制单元可以被锁定在其第二状态,并且可能只能通过重置所述访问许可所述策略表而被重置成处于其第一状态。在一些示例中,这可能只能通过所述集成电路的完全重置才有可能发生。
69.所述控制单元可以包括如上文关于其他示例所描述的门。所述门可以具有开状态和关状态,并且所述接口可以经由所述门耦合到所述内部可寻址空间。当所述控制单元配置成处于所述第一状态时,所述门可以被配置成处于关状态,而当所述控制单元被配置成处于所述第二状态时,所述门可以被配置成处于开状态。用这种方式,将所述控制单元配置成处于其第二状态可以对应于将所述门配置成处于其开状态。可以经由所述门访问所述内部可寻址空间,因此将所述门配置成处于开状态可能会限制经由所述接口可能访问的地址范围。
70.当所述控制单元被配置成处于所述第一状态时,可以经由所述接口可设置所述门的状态。当所述控制单元被配置成处于所述第二状态时,可以防止经由所述接口来改变所述门的状态。当所述控制单元被配置成处于所述第二状态时,可能只能通过重置所述集成
电路来将所述控制单元置于所述第一状态。
71.所述集成电路还可以包括如上文关于其他示例所描述的审核模块。所述审核模块可以被配置成,对于经由所述接口从外部处理器接收的访问所述多个地址范围中的至少一个地址的传入访问请求,访问所述策略表以确定与所述至少一个地址相关联的访问许可并向所述门发送信号。所述门在处于开状态时可以被配置成在接收到来自所述审核模块的所述信号时取决于存储在所述策略表中的与所述至少一个空间相关联的所述访问许可而采用某种配置,根据所述配置来允许或拒绝所述接收到的访问请求。
72.总之,将所述控制单元配置成处于第二状态可以包括限定存储在策略表中的访问许可和/或将所述门配置成处于开状态,使得对地址范围的访问是根据策略进行的。
73.所述接口可以是第一接口,并且所述集成电路可以包括多个接口,所述多个接口包括所述第一接口。举例来说,所述集成电路可以包括其他接口,例如上文关于其他示例所描述的那些接口。
74.根据另一个示例,提供了一种系统,所述系统包括如上所述的集成电路和连接到所述集成电路的所述接口的处理器,其中所述处理器包括第一状态和第二状态,使得,当被配置成处于所述第一状态时,所述处理器被配置成执行引导加载程序固件,并且当被配置成处于所述第二状态时,所述处理器被配置成初始化并执行操作系统,其中所述处理器处于其第一状态对应于所述控制单元处于其第一状态并且其中所述处理器处于其第二状态对应于所述控制单元处于其第二状态。
75.当被配置成处于所述第一状态时,所述处理器可以被配置成使所述控制单元从其第一状态转换到其第二状态。换句话说,处理器可以被配置成使经由所述接口进行的访问(对地址范围的完整集合的子集的)受限制,如上所讨论。当被配置成处于所述第一状态时,所述处理器可以被配置成将限定所述多个地址范围的所述受限制子集的所述访问许可写入到所述策略表。当被配置成处于所述第一状态时,所述处理器可以被配置成使所述门从其关状态转换到其开状态。如上所讨论的,这些动作中的任何一个都可以使控制器从其第一状态转换到其第二状态。当被配置成处于其第二状态时,所述处理器可以经过配置,使得所述处理器在不使自身转换到其第一状态的情况下(例如通过重新引导所述处理器)无法使所述控制单元从其第二状态转换到其第一状态。
76.根据另一个示例,提供了一种集成电路,所述集成电路包括第一接口和第二接口、包括多个地址范围的内部可寻址空间以及控制单元,其中所述第一接口和所述第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间,其中所述控制单元可配置成处于第一状态、第二状态和第三状态,其中,当所述控制单元被配置成处于所述第一状态时,所述第一接口经由所述控制单元不受限制地访问所述多个地址范围,并且其中,当所述控制单元被配置成处于所述第二状态时,所述第一接口经由所述控制单元访问所述多个地址范围的受限制子集,并且当所述控制单元被配置成处于所述第三状态时,所述控制单元被配置成允许或拒绝所述第二接口访问所述内部可寻址空间的所述多个地址范围的子集。
77.在这个示例中,提供了一种双接口集成电路,并且可以经由任一接口来限制对多个地址范围的访问。经由一个接口,控制单元可以被置于一种状态,根据所述状态,通过所述接口或通过另一个接口来限制对内部可寻址空间的访问。从前面的段落中可以了解,这里的一些示例涉及集成电路的双接口解决方案(根据所述解决方案,一个不受限制接口可
以配置电路,使得另一个接口变得受限制),而其他示例涉及单接口解决方案(根据所述解决方案,最初不受限制的接口可以配置电路,使得所述电路变得受限制)。
78.关于先前示例,当所述控制单元被配置成处于所述第一状态时,所述控制单元可以经由所述第一接口可配置成处于所述第二状态,和/或可以经由所述第一接口来设置所述控制单元的配置。
79.根据另一个示例,提供了一种集成电路,所述集成电路包括:包括多个地址范围的内部可寻址空间;控制单元,所述控制单元存储策略;以及接口,所述接口经由所述控制单元耦合到所述内部可寻址空间,其中所述控制单元经由所述接口可配置成处于可锁定状态,在所述可锁定状态下,如存储在所述控制单元中的所述策略所限定的,所述接口经由所述控制单元访问所述多个地址范围的受限制子集。
80.可以经由所述接口设置存储在所述控制单元中的所述策略,如上所述,并且将所述控制单元配置成处于所述可锁定状态可以包括经由所述接口来设置所述策略。所述集成电路还可以包括如上所述的门,其中所述接口经由所述门耦合到所述内部可寻址空间,并且其中所述门包括开状态和关状态,使得当处于其开状态时,所述门根据存储在所述控制单元中的所述策略中的对应于给定地址的条目而允许或拒绝经由所述接口访问所述给定地址,并且将所述控制单元配置成处于所述可锁定状态包括将所述门配置成处于所述开状态。
81.根据另一个示例,提供了一种集成电路,所述集成电路包括第一接口和第二接口,所述第一接口和所述第二接口耦合到内部可寻址空间,所述集成电路可配置成处于第一模式和第二模式,使得在所述第一模式下,所述第一接口不受限制地访问所述多个地址范围,并且所述集成电路是可配置的,使得所述第一接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集,并且在所述第二模式下,所述第一接口不受限制地访问所述内部可寻址空间的所述多个地址范围,并且所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集。在一示例中,提供了被配置成处于所述第一模式的集成电路。在另一个示例中,提供了被配置成处于所述第二模式。
82.在另一个示例中,提供了一种集成电路,所述集成电路包括第一接口和第二接口,所述第一接口和所述第二接口耦合到具有多个地址范围的内部可寻址空间。所述第一接口不受限制地访问所述多个地址范围,并且是可配置的,使得所述第一接口或所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集。
83.所述第一接口和所述第二接口中的每一个可以与具有开状态和关状态的相应门相关联,使得每个门在处于其开状态时根据存储在所述集成电路中的策略而准许访问所述内部可寻址空间。所述第一接口不受限制地访问所述多个地址范围对应于与所述第一接口相关联的门关闭。配置所述集成电路使得所述第一接口或所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集,包括使与所述第一接口或所述第二接口相关联的门从关变成开。在一示例中,与所述第一接口相关联的门关闭并且与所述第二接口相关联的门关闭。在另一个示例中,与所述第一接口相关联的门关闭并且与所述第二接口相关联的门打开。在又一个示例中,与所述第一接口相关联的门打开并且与所述第二接口相关联的门关闭。
84.在以上示例的任一个中,处理器(例如外部处理器)可以将固件加载到ic中,固件
在被执行时使ic(或其控制单元)采用某种配置(例如设置门配置/开或关状态、对策略表进行编程等),但是在其他示例中,可以将固件预加载到ic上。在后面的这些示例中,ic包括固件。固件可以存储在非易失性存储器中的ic上。举例来说,门配置和/或策略表配置可以存储在非易失性存储器中的ic上。因此,任何给定的ic可以在其生产时被配置(例如,在ic交付给客户之前预加载),由客户来配置(例如通过otp操作),并且可以通过执行在非易失性存储器中存储在ic上的固件来配置。
85.在本文档的下文中,将使用上一节中介绍的以下缩写:“ic”表示集成电路,“mcu”表示微控制器,“otp”表示一次性编程,“pac”表示可编程访问控制,“pcm”表示脉冲编码调制(或调制),“hda”表示高清晰度音频,“pch”表示平台控制集线器,“dsp”表示数字信号处理器,“os”表示操作系统,并且“uefi”表示统一可扩展固件接口。
附图说明
86.可以参考附图来理解本公开,在附图中:
87.图1示出了现有技术系统;
88.图2a到图2e各自示出了根据本公开的五个示例的集成电路的简化示意图;以及
89.图3是示例集成电路的简化示意图;
90.图4示出了说明与现有技术集成电路相比时处理器对根据本公开的集成电路的访问和控制的表格;
91.图5是包括根据本公开的集成电路的示例系统的简化示意图;
92.图6是集成电路的示例控制模块的简化示意图;
93.图7是示例集成电路的简化示意图;
94.图8是示例集成电路的简化示意图;
95.图9是示例集成电路的简化示意框图;
96.图10是示出了用于图1到图9示例中的任一个的集成电路的示例引导序列的序列图;
97.图11是示例集成电路的简化示意框图;
98.图12是示例集成电路的简化示意框图;
99.图13是包括根据本公开的集成电路的示例系统的简化示意图;
100.图14是示出了用于图11到图13示例中的任一个的集成电路的示例引导序列的序列图;
101.图15a是示例集成电路的基本简化示意框图;并且
102.图16a到图16c是图15a和图15b图示的示例集成电路的简化示意框图。
具体实施方式
103.图2a到图2e各自示出了示例ic 150a到150e的简化示意图。每个ic包括一个或多个地址范围,所述一个或多个地址范围可以包括ic的内部可寻址空间、电子寄存器、可编程数据存储器和/或可编程数据结构中的任何一个或多个。在本文档中,术语“地址范围”和“可寻址空间”以及“地址范围”和“可寻址空间”可以互换使用。此外,术语“地址范围”和“存储器位置”以及“地址范围”和“存储器位置”可以互换使用。
104.在这些图中的每一个中,打开的挂锁表示无限制/无保护的地址范围,而锁上的挂锁表示受限制/受保护的地址范围。如下文将进一步解释的,根据一些示例,只准许访问那些用打开的挂锁指定的范围,那些范围包括地址范围的子集并且可以被称为地址范围的“授权”、“安全”、“指定”、“打开”或“受限制”(在它们是多个地址范围的子集的意义上是受限制的)子集。
105.图2a示出了包括多个地址范围2551到255n的ic 250a。ic 250a被配置成允许处理器101(未示出)访问多个地址范围的授权子集255,即“授权地址范围”,(在图中由打开的挂锁指示)。这允许主处理器101在ic 250a的运行时间期间访问ic 250a的多个地址范围255的子集,因为处理器101可以仅访问那些被指定为授权(挂锁打开)的地址范围,而现有技术ic不允许处理器在ic的运行时间期间访问任何地址,也不允许访问地址范围的任何子集,无论是否授权。那些被指定为授权的地址范围因此可以被认为是处理器在ic 250a的运行时间期间能够“安全”访问的,并且因此可以不包括对ic 250a和/或输出部件190具有安全关键控制的任何地址范围。授权的地址范围也可以被称为可访问的或安全或可靠的或受保护的或指定的或开放的地址范围。如下文将解释的,ic 250a可以包括接口以准许访问地址范围的授权子集255。
106.图2b示出了包括多个地址范围2561到256n的ic 250b。ic 250b被配置成允许处理器101(未示出)在ic 250b的运行时间控制期间访问多个地址范围256,如虚线所示。在图2a示例中,ic地址范围的子集被指定为授权的,因此在运行时间期间可访问,而在图2b示例中,ic 250b的多个地址范围256中的每一个被指定为在运行时间期间可访问。用这种方式,ic 250b的多个地址范围256中的所有地址范围或每个地址范围都可以是“授权”的一组地址范围并且被指定处理器101在ic 250b的运行时间期间能够安全访问的,并且因此可以不包括对ic 250c具有安全关键控制的任何地址范围。因此,在图2a示例中,该组地址范围被划分为在运行时间期间可访问的地址范围和不可访问的地址范围,而图2b示例的ic 250b包括在ic 250b的运行时间期间全部可访问的一组地址范围。如下文将解释的,ic 250b可以包括接口以准许访问地址范围的授权子集255。
107.图2c示出了包括接口202a(所述接口可以包括控制接口)的ic 250c。接口202a被配置成提供对集成电路250c的多个地址范围257的授权子集(由打开的挂锁指示)的访问。如上面关于图2a所述,这允许处理器101(未示出)例如在ic 250c的运行时间期间经由接口202a访问ic 250c的多个地址范围257的子集,因为处理器101可以仅访问那些被指定为授权的,因此可以被认为是处理器在ic 250c的运行时间期间能够“安全”访问的地址范围,并且因此可以不包括对ic 250c具有安全关键控制的任何地址范围。
108.图2c示出了包括接口202a、包括多个地址范围257的内部可寻址空间的示例ic 250c,其中接口202a耦合到内部可寻址空间,其中ic 250c可配置成处于第一状态以允许或拒绝接口202a访问内部可寻址空间的多个地址范围257的子集,如在下文将更详细地描述。
109.图2c还示出了包括接口202a、多个存储器位置257的示例ic 250c,其中接口202a耦合到多个存储器位置257,其中ic 250c可配置成处于第一状态以允许或拒绝接口访问多个存储器位置257的子集,如在下文将更详细地描述。
110.图2c还示出了包括接口202a、包括多个地址范围257的内部可寻址空间的示例ic 250c,其中接口202a耦合到内部可寻址空间,并且其中经由接口202a来准许访问多个地址
范围257的第一子集,并且经由接口202a来阻止访问多个地址范围257的第二子集,如在下文将更详细地描述。
111.图2c还示出了包括接口202a和多个存储器位置257的示例ic 250c,其中接口202a耦合到多个存储器位置257,并且其中经由接口202a来准许访问多个存储器位置257的第一子集并且经由接口202a来阻止访问多个存储器位置257的第二子集,如下文将更详细地描述。
112.尽管图2c示出了包括单个接口202a的ic 250c,但是在一些示例中,ic 250可以包括两个接口,例如第一接口和第二接口。ic 250c可以包括控制单元。在这些示例中,第一接口和第二接口中的每一个(并且例如在ic 250c包括控制单元的示例中,经由控制单元耦合到内部可寻址空间(和/或地址范围和/或存储器位置等)。ic 250c可以可配置成(或在ic 250c包括控制单元的示例中,控制单元可以可配置成)处于第一状态,在所述第一状态下,允许或拒绝第二接口访问ic 250c的多个地址范围或存储器位置的子集(例如,控制单元可以被配置成允许或拒绝第二接口访问地址范围或存储器位置的子集)。在这些示例中,所描绘的接口202a可以包括第二接口并且额外(现在描绘于图2c中)接口可以包括第一接口。可以经由所述第一接口来设置ic 250c和/或控制单元的配置。
113.在ic 250c包括两个接口(例如第一接口和第二接口)的示例中,所述第一接口和所述第二接口中的每一个耦合到所述内部可寻址空间和/或地址范围和/或存储器位置,并且可以经由所述第二接口来准许访问所述多个地址范围或存储器位置的第一子集,并且经由所述第二接口来阻止访问所述多个地址范围的第二子集。在这些示例中,第二接口可以包括所描绘的接口202a。
114.在ic 250c包括两个接口(例如第一接口和第二接口)的示例中,ic 250c可以是可配置的,使得经由所述第一接口和所述第二接口中的一个接口来准许访问所述多个地址范围或存储器位置,并且经由所述第一接口和所述第二接口中的另一个接口来允许访问所述多个地址范围或存储器位置的第一子集并且拒绝访问所述多个地址范围或存储器位置的第二子集。ic 250c可以包括控制单元。ic 250c和/或控制单元的配置可以经由第一接口和第二接口中的“一个”(可以访问多个地址范围或存储器位置)来设置。第一接口和第二接口中的“另一个”可以包括图2c的所描绘接口202a。
115.参考图2c,用解锁的挂锁图示的那些地址范围或存储器位置257可以包括允许或准许访问的地址范围或存储器位置的子集,并且用锁上的挂锁图示的那些地址范围或存储器位置可以包括拒绝或阻止访问的地址范围或内存位置的子集,如上所述。
116.图2d示出了包括接口202b(所述接口可以包括控制接口)的ic 250d。接口202b被配置成允许处理器101(未示出)在ic 250d的运行时间控制期间访问ic 250d的至少一个地址范围2581到258n,如虚线所示。类似地,如上文关于图2b所描述,在图2c示例中,ic地址范围的子集被指定为授权的,因此在运行时间期间是可访问的,而在图2d示例中,ic 250d的全部多个地址范围258被指定为在运行时间期间可访问。用这种方式,ic 250d的多个地址范围258中的所有地址范围或每个地址范围都可以是一组“授权”地址范围并且被指定为处理器在ic 250d的运行时间期间能够安全访问的,并且因此可以不包括对ic 250d具有安全关键控制的任何地址范围。
117.图2e示出了包括多个地址范围2591到259n的ic 250e。ic 250e被配置成设置多个
地址范围259中的至少一个地址范围2591到259n的访问许可,所述至少一个地址范围在图2e中由包括锁上/解锁的挂锁的每个地址范围示意性地指示。ic 250e可以被配置成将多个地址范围中的至少一个地址范围2591到259n指定为“授权的”、“安全的”、“指定的”、“开放的”或“受限制的”(在它们是多个地址范围的子集的意义上是受限制的)等,并且用这种方式,ic 250e可以被配置成从多个地址范围中创建例如在ic 250e的运行时间期间例如由处理器101(未示出)可访问的地址范围子集。ic 250e还可以被配置成设置访问许可,使得多个地址范围259中的每一个在引导或启动时例如由处理器101(未示出)可访问。如下文将描述的,ic 250e可以包括控制单元(例如pac单元),所述控制单元被配置成设置多个地址范围中的至少一个地址范围2591到259n的访问许可。
118.术语“运行时间”旨在包括ic的引导或初始化过程完成之后和/或处理器操作系统被完全初始化并执行应用程序之后的时间,和/或除了ic的引导或初始化以外的任何时间。
119.上述示例中的任一个的集成电路包括:包括多个地址范围的集成电路,每个地址范围可配置成处于第一状态或第二状态,每个状态与访问许可(例如读取、写入或读写访问许可)相关联,其中所述集成电路被配置成基于每个状态的访问许可而向外部处理器提供对所述地址范围的运行时间控制。与每个地址范围相关联的访问许可可以是允许许可和拒绝许可,并且与允许访问许可相关联的地址范围集合可以包括地址范围的授权集合。允许状态可以包括允许读取请求(例如只读)、允许写入请求(例如只写)或允许读写请求许可。这将在下文进一步描述。
120.如上文关于图2a到图2e所讨论的ic中的任一个的地址范围可以包括一组寄存器,例如可寻址“控制”存储器空间(以下称为“可寻址控制空间”),和一组用于数据存储的存储器,例如可寻址“数据”存储器空间(以下称为“可寻址数据空间”),例如ram块。
121.图3示出了ic 300。ic 300可以包括如上参考图2a到图2e所描述的ic 250a到250e中的任何一个。图3旨在示出包括多个元件的示例ic 300,每个元件执行指定功能,并且尽管所述多个元件在图3中组合地示出,但是将理解,如果所述元件准许的功能在ic 205a到250e中的一者中是所要的,则图2a到图2e所示的ic 250a到250e可以包括这些元件中的任何一个或多个或任何组合。因此,图3中所示的特征组合不应被解释为限制性的。
122.ic 300包括第一接口351(例如第一控制接口)、第二接口302(例如第二控制接口)、数据接口352、总线353(例如片上总线或内部总线,例如通信总线)、片上处理器354、控制模块340、过滤器或门341、输出部件390,以及包括多个地址范围355、356的可寻址空间。多个地址范围355、356可以包括一组可寻址
‘
控制’存储器空间(例如寄存器或寄存器空间)或可寻址控制空间355和一组可寻址
‘
数据’存储器空间或可寻址数据空间356(例如ram块),如上文关于图2a到图2e所讨论的并且将在下文更详细地描述。
123.ic 300被配置成耦合到(未示出的)外部处理器101。外部处理器101可以被配置成耦合到ic 300的接口302、351、352中的一个或多个,这在图3中由进入接口中的箭头示意性地指示。外部处理器可以被配置成经由接口302、351、352中的一个或多个访问ic 300(例如ic的部件)。总线353可以是将ic 300的各种部件彼此耦合的通信网络,如例如图3所示。如图3所示,总线353将第一接口和第二接口351、302和ic处理器354耦合到至少ic 300的地址范围355、356。
124.数据接口352可以例如经由编解码器从数据源接收数据。举例来说,数据接口352
可以包括例如音频数据接口以接收音频数据,例如数字信号(例如pcm信号)。内部处理器354可以处理在数据接口352处接收到的任何数据并经由从数据接口352到输出部件390耦合到的输出端子的信号路径向输出部件390发送处理后的信号。在接口352处接收到的将要由片上处理器354处理并向输出部件390发送的数据可以包括例如任何数字数据,例如音频数据、超声数据、触觉数据等。输出部件390可以包括换能器,在一些示例中,例如音频换能器(例如扬声器)、触觉换能器和/或超声换能器。
125.多个地址范围包括一组可寻址控制空间355(图中示出了m个)和一组可寻址数据空间(图中示出了n个)(n和m可以相等或不相等,使得ic 300可以包括相同数量或不同数量的可寻址控制空间355和可寻址数据空间356)。可寻址数据空间356中的至少一个或每个可寻址数据空间可以包括存储器的一个或多个单元。可寻址数据空间356可以包括易失性或非易失性存储器,例如ram(例如dram或sram)、rom、快闪存储器等。可寻址数据空间356可以被配置成存储例如ic 300工作所依据的代码。举例来说(并且如稍后参考图6将解释的),可寻址数据空间356可以被配置成存储固件,例如以由片上处理器354执行。可寻址控制空间355中的至少一个或每个可寻址控制空间可以被配置成控制和/或监视ic 300和/或由ic 300控制的输出部件390的功能。稍后将参考控制音频换能器的ic 300来描述具体示例。
126.每个可寻址控制空间355可以包括存储器的存储信息的一个或多个单元,所述信息可以控制并配置ic 300的功能。每个可寻址控制空间355还可以存储关于ic 300内的功能的当前状态的控制状态数据。这些功能可以包括但不限于ic 300的某些特征,这些特征被认为对于ic 300和/或与ic 300相关联的其他外部部件(例如输出部件390或任何和所有外部换能器)的功能操作来说是必需的。相反,每个可寻址数据空间356可以包括存储器的包含片上处理器354工作所需的程序和/或数据的一个或多个单元。这些位置还可以包括处理器354的数据输出和/或临时变量。
127.举例来说,可寻址控制空间可以被配置成存储多个位,所述位可以被配置成控制和/或配置ic 300内的功能,和/或提供关于ic 300的状态信息,所述状态信息可以经由接口302和/或351来读取。另外地和/或另选地,可寻址数据空间356可以被配置成存储多个位,所述位可以被配置成用作用于使片上处理器354正确工作的固件和/或被配置成存储运行时间控制和/或被配置成存储例如临时数据(例如可寻址数据空间356所需的临时数据)的数据和/或被配置成存储来自接口352的数据(例如pcm数据)和/或被配置成临时存储要经由dac传送到输出部件390的处理后数据。
128.图3示出了可寻址空间(控制和数据)中的每个空间都可以指定为处于两种状态之一,或具有两种访问特权之一。所述两种状态在图3中分别由打开的挂锁(状态1)和锁上的挂锁(状态2)指示,所述两种状态可以分别对应于授权状态(即允许状态)和未授权状态(即拒绝状态)。用解锁的挂锁指定的空间集合可以被认为是授权子集或子集或指定子集。允许状态可以包括允许读取来自和/或允许写入到状态。如图3所示,出于说明目的,控制空间355的每第二个空间3552到355m被指定为授权的,并且数据空间的每第二个空间3562到356n被指定为授权的。除了授权空间以外的那些空间可以包括未授权空间。多个可寻址空间355、356因此可以被划分成授权空间和未授权空间。这两组可以是彼此的补充(使得授权空间的集合可以包括所有未授权的可寻址空间并且未授权空间的集合可以包括所有未授权的可寻址空间)。如图3所示,出于说明目的,可寻址控制空间或控制空间355的每第一个空
间3551到355
m-1
被指定为未授权的,并且可寻址数据空间或数据空间的每第一个空间3561到356
n-1
被指定为未授权的。
129.如上所述,授权空间可以包括那些对ic 300(和/或耦合到所述ic的输出部件390)的运行时间的功能具有控制的空间,而未授权空间可以包括那些具有安全功能(例如安全关键功能)或能够访问安全关键内容的空间。因此,可以通过将那些“授权”空间指定为授权子集的一部分来阻止对/到所述“授权”空间的无限制读取和/或写入。未授权空间可以包括那些在配置错误的情况下(例如如果恶意软件访问)会对ic 300和/或输出部件390和/或ic 300稍后耦合到的任何其他部件(例如,任何外围部件)造成不可逆的损害和/或故障的空间。另外地和/或另选地,未授权空间可以包括那些在被恶意软件访问的情况下会促进系统的一些其他类型的安全漏洞的空间,例如持续损害耦合的处理器,或对通过接口352的数据执行未经授权的修改或泄露所述数据。下面将给出与音频相关的具体但非限制性示例。因此,空间的授权子集可以包括那些没有安全关键功能或无法访问安全关键内容的空间。用这种方式,如果在ic 300的运行时间期间,任何恶意软件都将访问授权空间,则这不会对ic 300造成任何损害和/或故障,无论是不可逆的还是其他的。因此,将空间集合划分为授权子集和未授权子集可以基于在恶意软件访问了空间(例如在运行时期间)的情况下会对ic 300和/或输出部件390和/或任何其他部件造成损害/故障的那些空间和没有损害/故障的那些空间来进行。
130.第二接口302可以在运行时间期间提供对地址范围的授权子集(在图3中,每第二个控制空间3552到355m和每第二个存储器空间3562到356n),例如那些用解锁的挂锁标记的地址范围,的主处理器访问。因此,在运行时间期间,ic 300提供(经由第二接口302)对地址范围的那些
‘
安全’集合的访问,从而为处理器提供对ic 300(以及因此输出部件390)的运行时间控制,并且由于恶意软件在它可以访问那些地址范围的情况下无法对ic 300造成损害/故障,因此ic 300可以用安全并可预测的方式为处理器提供对ic 300的运行时间控制。另一方面,第一接口351可以访问可寻址空间中的每一个—例如授权子集和未授权子集。因此,虽然第二接口302仅准许访问被指定为安全的空间子集,但是第一接口351提供对所有空间的访问,包括那些具有安全关键功能的未授权空间。虽然第二接口302可以用于准许主处理器在运行时间期间访问ic 300,但是第一接口351可以用于准许安全mcu或嵌入式控制器在引导或启动期间访问ic 300(例如以在安全引导期间将固件加载到ic 300的数据空间上)。这将在下文进一步解释。ic 300因此提供第二接口302与可寻址空间的授权子集之间的第二信号路径和第一接口351与多个可寻址空间中的每一个之间的第一信号路径。因此,第二接口302可以赋予进行对和/或到地址范围的授权子集的读取和/或写入的能力,而第一接口351因此可以赋予进行对和/或到所有地址范围的读取和/或写入的能力(例如第一接口351准许完全的读写访问)。
131.地址范围的设置,例如将地址范围划分或指定为授权子集和未授权子集,可以由或经由控制模块340(其可以包括pac单元)来完成。举例来说,控制模块340本身可以被配置成为地址范围中的每一个设置访问许可,所述访问许可将特定地址范围或一组地址范围指定为授权的或未授权以及可经由哪个接口访问地址范围,如下所述。因此,地址范围的授权子集可以由控制模块340通过指定仅可由第一接口351访问的地址范围子集(未授权子集)来指定,授权空间包括其余部分(例如那些未指定为未授权的空间),因为授权空间可经由
接口302、351两者访问。总之,控制模块340可以配置未授权空间(仅可经由第一接口351访问),从而将授权空间指定为包括空间的其余部分。
132.第二接口302可以被认为是受限制接口,因为所述接口只准许访问地址范围的受限制子集,而第一接口351可以被认为是不受限制接口,因为所述接口准许访问所有空间(例如,整个集合)。经由第一接口351,处理器因此可以被配置成获得对ic 300硬件本身的低级访问(例如,用于重新引导、控制任何状态灯、重新校准输入等),此类功能通过只有第一接口351可以访问的未授权的控制空间和/或数据空间来控制。
133.在一个示例中,ic 300(例如其控制模块340)可以被配置成阻拦多个地址范围355、356的子集。在这个示例中,ic 300(或其控制模块340)可以创建空间的阻拦列表,所述阻拦列表可以包括经由第二接口302不能访问的那些空间,并且因此,第二接口302可以被配置成访问除了阻拦列表上的那些地址范围以外的所有地址范围。在这个示例中,阻拦列表上的地址范围包括图3中的那些未授权空间(带有上锁的挂锁)。另外地或另选地,ic 300(例如其控制模块340)可以被配置成允许多个地址范围355、356的子集,从而创建可以包括仅可由第二接口302访问的那些地址范围的允许列表,并且因此,第二接口302可以能够访问允许列表上的那些空间,因此允许列表上的那些空间包括仅可经由第一接口351访问的那些授权空间(带有解锁的挂锁)。在每种情况下,允许或阻拦列表可以包括读取访问和/或写入访问分别被允许或阻拦的那些地址范围。
134.pac模块340的细节将参考图6来阐述,然而过滤器或门341被配置成以如下方式准许或拒绝第二接口302访问可寻址空间。过滤器341可以包括安全过滤器。pac单元340可以限定地址范围355、356及其对应的访问许可,并且当通过第二接口302来发送请求(例如读取请求或写入请求)时,所述请求是访问ic 300的给定地址范围355、356(例如从给定的地址范围读取和/或写入到给定的地址范围)的请求,pac模块340检查关联的访问许可以确定与请求关联的地址范围355、356是否被授权(例如,被授权以从地址范围进行读取和/或写入到地址范围)。如果给定空间被指定为授权的(例如与读取和/或写入访问许可相关联),则pac模块340能够向过滤器341输出允许访问信号以允许接口302访问空间(例如从所述空间读取或写入到所述空间);如果不是,则pac模块340可以不发送这样的信号或发送拒绝访问信号。用这种方式,通过控制门(或过滤器或门户)341的状态而允许和/或拒绝通过第二接口302的访问,门(或过滤器或门户)341在通过第二接口302接收到读或写请求时由pac模块340控制。因此,过滤器341包括门,所述门被配置成阻拦和/或允许经由第二接口302访问ic 350的可寻址位置。这将参考图6来进一步解释。
135.地址范围也可以指寄存器或寄存器空间,例如(可寻址)控制寄存器或控制寄存器空间、(可寻址)数据寄存器或数据寄存器空间等。因此,仅通过第一接口351可用的可以是地址范围的特殊子空间或集合内的一组控制寄存器(例如,芯片300的可编程访问控制模块),所述控制寄存器确定可由经由第二接口302连接到ic 300的外部处理器执行的驱动程序软件是否将访问ic 300的给定子空间。
136.在图4示出了说明与现有技术ic相比时通过根据本公开的ic可能实现的访问许可的表格,表格最下面一行的ic是根据本公开的并且可以包括如在以上的图2a到图2e或图3或下面的图式中描绘的ic。
137.图5示出了包括主处理器501、一组主板部件510和ic 550的示例系统500。图5提供
了根据本公开的ic如何可以用作更广泛系统的一部分的一个说明性并且非限制性的示例。ic 550可以包括如上所述的ic 250a到250e或300中的任一个。关于ic 550(以及本文档中的其他地方),相似的特征/元件将由相似的附图标记表示,因此为了简洁起见,将省略对上述特征的描述。
138.处理器501是主处理器并且在ic 550外部。如框505和507分别所指示,处理器被配置成执行驱动程序软件505和应用软件507。主板510包括芯片组或pch 511、安全mcu或嵌入式控制器503和编解码器512,并且数据接口552可以包括i2s接口等。尽管在一些示例中,ic 550可以不包括编解码器512并且在这些示例中可能存在从芯片组511直接到数据接口552的链路,但是在这类示例中,数据接口552可以包括soundwire
tm
接口。如图5所示,处理器501经由芯片组511和第二接口502、经由芯片组511、编解码器512和数据接口552与ic 550通信。处理器501还可以被配置成发送信号以触发安全mcu(或嵌入式控制器)503。根据这个示例,因此存在处理器501、芯片组511和第二接口502之间的信号路径,处理器501、芯片组511、编解码器512和数据接口552之间的信号路径,以及安全mcu 503与第一接口551之间的信号路径。
139.在一个示例中,安全mcu 503或嵌入式控制器被配置成在系统引导的非常早的阶段加载ic 550,例如在装置驱动程序505已经开始执行之前,并且可能在处理器501已经开始引导之前。使安全mcu或嵌入式控制器503开始初始化系统(初始化可以包括加载并配置ic 550)的触发器可以是来自在处理器上运行的早期引导固件的信号(这可能早于操作系统、装置驱动程序和/或应用软件开始执行),和/或可以是来自系统中的某个其他部件(例如电力管理)的触发器,和/或所述触发器可以从安全mcu 503或嵌入式控制器的重置电路感测到它已通电并且未重置来推断(即,一旦通电并且未重置,所述安全mcu或嵌入式控制器即自动地初始化系统)。
140.在另一个示例中,处理器501一旦被完全引导以及在运行时间时被配置成重新初始化ic 550内的电路—例如,如果在片上处理器554上运行的固件遇到不可恢复的错误。在那种情况下,装置驱动程序505可以被配置成经由芯片组511向嵌入式控制器503发送信号以重新初始化ic 550(尽管这不是正常引导的一部分)。由于mcu 503不受恶意软件的影响,因此在处理器上运行的任何恶意软件都无法访问地址范围(的未授权子集)(如果访问,则ic 550可能会例如永久损坏),因此引导是安全的。在运行时间期间,处理器501经由第二接口502和芯片组511对ic 550的地址范围的授权子集具有控制。在引导或启动期间,处理器501不执行驱动程序软件505,因为驱动程序软件未激活并且因此不能经由第二接口502访问ic 550。这可以由系统引导硬件和软件来实现。举例来说,包括处理器501经由第二接口502只能访问授权地址范围和/或不能访问未授权地址范围的ic 550设置可以在引导/启动时例如通过在安全mcu 503或嵌入式控制器上运行的固件来编程到ic 550中。另选地或另外地,执行固件可以导致对ic 550的地址范围施加访问限制(例如指定子集作为授权子集)。举例来说,在安全mcu 503或嵌入式控制器上运行的固件可以指示pac单元540(或控制单元540)可以如何设置地址范围和/或它们各自的访问许可,使得ic 550的地址范围的预定子集被指定为授权子集。授权子集因此可以在引导/启动时设置或指定,并且可以由mcu 503来设置。在引导/启动之后,对ic 550的控制随后被传递到驱动程序软件505(例如处理器501执行驱动程序软件505)(例如在运行时间期间),所述软件可以自由访问那些早期可
能已经被设置的授权地址范围。用这种方式,可以访问ic 550的所有地址范围的第一接口551可以被配置成设置空间的访问特权并限定授权子集(例如,安全mcu 503或嵌入式控制器可以经由第一接口551来配置授权子集)。将了解,pac单元540不能由第二接口来配置。
141.芯片组可以被配置成管理处理器501与ic 550之间的数据流。编解码器512可以包括任何编解码器(例如hda编解码器)并且处理器501可以经由(例如)hda连接或连接器连接到编解码器512。编解码器512可以被配置成编码和/或解码信号(例如音频信号)。尽管在其他示例(如上所述)中,系统500可以不包括编解码器512,在这种情况下,可能存在从芯片组511直接到数据接口552的链路,数据接口552可以包括soundwire
tm
接口。
142.图6示出了示例控制模块640,其可以包括pac模块640。图6仅示出了ic 600的简化布置,其中仅呈现对于以下解释来说是必需的元件,并且应当理解,为了以下解释的清楚和简洁起见,ic 300和550中所示的其他元件已从图6省略。上述控制模块340、540中的任一个可以包括根据图6示例的模块640。pac模块640与过滤器/门/门户641(其可以包括以上图3示例的过滤器341)和总线653(其可以包括如上所述的总线353、553中的任一个)以及受限制接口602(相同类型的接口在前面描述的示例中被称为第二接口)组合示出,这些是ic 600的部件。过滤器641可以被配置成阻拦或允许从ic 600的受限制接口到地址范围的访问路径。因此,过滤器641被配置成门控(允许/阻拦)经由第一接口602对ic内的可寻址位置的访问。
143.这个示例中的pac模块640可以包括硬件和/或软件并且可以被配置成用信号通知过滤器641是阻拦还是允许特定访问请求(参见图中的“传入请求”标签),如下面将描述的。模块640可以被配置成向过滤器641发送“允许访问(allow_access)”信号。过滤器641因此可以被称为安全过滤器/门/门户641并且可以用于控制对ic的地址范围的访问而且还保护ic的地址范围。
144.pac模块640包括策略表643和审核模块642。策略表643可以包括硬件和/或软件并且可以包括存储一个或多个访问策略条目的数据结构。具体地,表643可以存储针对ic的每个空间的访问许可和/或表643可以存储地址范围的定义以及对应的访问许可。举例来说,每个条目可以是对应于ic的可寻址位置内的地址范围/位置/寄存器中的一者和针对该地址范围的关联访问许可的逻辑块/区域。用这种方式,授权地址范围的子集可通过在策略表中设置针对那些地址范围的关联访问许可来进行设置、指定或编程。换句话说,策略表可以将地址范围指定为授权的或未授权的,并且地址范围的授权子集可以是访问许可是被授权的那些地址范围。授权指定可以包括对特定地址范围的只读、只写和/或读写的访问许可。
145.经由第一接口602的传入请求包括信息,所述信息可以包括从外部实体(例如外部处理器)到集成电路600内的地址范围的传入请求的细节。访问信息或请求可以包括一个或多个地址(例如离散地址)、请求的类型(例如只读、只写或读写)以及在读取请求的示例中要从所述地址读取的数据或在请求是写入请求的情况下要写入到所述地址中的数据,等等。经由第二接口602,接收含有要访问(读取或写入)的地址的访问请求。审核模块642可以包括硬件和/或软件(例如比较器和/或组合逻辑和/或验证器和/或验证机制/逻辑,和/或被配置成对照策略表来验证事务的任何硬件和/或软件),并且可以被配置成将传入访问信息(例如一个地址或多个地址)与策略表中的信息(例如地址范围)进行比较并确定是允许还是阻拦所述请求。具体地,审核模块642可以被配置成将与外部实体正试图经由第二接口
602访问的请求有关的地址与策略表中的针对所请求地址所在的该地址范围的对应条目进行比较,以便检查访问许可。如果针对该地址范围的访问许可被指定为授权的(该空间因此成为授权子集的一部分)(例如,被授权读/写),则审核模块642被配置成向过滤器641发送“允许访问”信号,所述信号将使过滤器允许访问请求(读/写)。如果地址范围没有正确的访问许可,则没有这样的信号被发送到过滤器641,因此请求被拒绝。返回参考图5,读取或写入访问请求可以由芯片组创建并且经由第一接口602发送到ic。审核模块642因此被配置成对照策略表来验证事务。
146.在图6示例中,将了解,第一(无限制)接口(未示出)可以访问总线653。
147.ic 600和/或其控制模块640的配置可以是可锁定的。举例来说,ic 600和/或其模块640可以包括逻辑(例如呈逻辑电路形式的门控逻辑),使得当被激活时防止对策略表643的进一步写入和/或防止改变门641的状态。为了激活逻辑电路,可以经由接口602(并且经由总线653等,例如经由从总线653到策略表643的线路)来接收信号。逻辑电路在被激活时防止对策略表643的写入访问并且防止对门641的使能部分的写入访问(使能部分将门641切换为打开)。
148.图7示出了另一个示例ic 750。同样,图7仅示出了ic 750的简化布置,其中仅呈现对于以下解释来说是必需的元件,并且应当理解,为了以下解释的清楚和简洁起见,如ic 300和550中所示的其他元件已从图7省略。这个示例的ic 750包括pac模块740,pac模块740包括策略表743和审核模块742。这些部件如上文关于图6所描述。然而,在图7示例中,每个接口702、751与其自身的门相关联,使得ic 750包括与第一接口751相关联的第一门747和与第二接口702相关联的第二门741(每个门,例如地址门,可以包括安全过滤器,例如安全地址过滤器)。第一门和第二门741、747中的每一个可以如上文关于图6的过滤器641所描述的那样。用这种方式,经由如上所述的机制,在两个门741、747都处于开状态的情况下,则每个接口702、751可以用作第二(受限制)接口,如上文在图6示例中所述。然而,通过将门切换到关状态,与该门相关联的接口可以因此被指定为第一(不受限制)接口,因为由于门是关闭的,所述第一接口对其访问ic可寻址位置没有限制,实际上是因为策略表中的访问许可未被实施,因为门已关闭。因此,图7的ic 750是包括可配置接口的示例,每个接口可配置(或可指定)为第二(受限制)接口或第一(不受限制)接口。mcu可以将ic 750的每个接口指定为受限制或不受限制接口,并且可以通过关闭与不受限制接口相关联的过滤器来进行指定。
149.为此,ic 750包括可以控制过滤器741、747中的每一个的开/关状态的可寻址控制寄存器759。因此,经由访问可寻址控制寄存器759(例如经由mcu),ic 750可以通过将接口702、752中的一个指定为不受限制来配置,所述指定是通过将所述一个接口的关联门741、747切换为关闭来实现。在一个示例中,ic 750(更具体地,其接口)可以包括默认配置,根据所述默认配置,每个过滤器打开并且每个接口因此是第二(受限制)接口,或可以包括默认配置,根据所述默认配置,每个过滤器关闭并且因此每个接口是第一(不受限制)接口。在这个示例中,ic 750可以凭借对空间759的(标准)寄存器访问来配置。在另一个示例中,ic 750可以包括默认配置,根据所述默认配置,一个或多个接口使过滤器关闭并且一个或多个接口使过滤器打开;这种配置可能是有利的。ic 750可以借助于例如otp存储器的非易失性存储器来配置,以指定哪个接口是受限制的和哪个接口是不受限制的。因此,实际上,otp可
以定义ic 750的配置为未重置,使得otp实际上提供ic 750的所需默认设置的灵活配置(例如,上述那些默认配置中的任一个)。
150.能够配置哪些接口是受限制和不受限制的一个优点是这样允许最终用户选择最适合其系统布局要求的接口配置,使得在ic 750外部的部件的放置和信号路由可以得到优化。
151.图8示出了包括多个第二(受限制)接口802a和802b(图8中示出了两个)的示例ic 850。图8同样仅示出了ic 800的简化布置,其中仅呈现对于以下解释来说是必需的元件,并且应当理解,为了以下解释的清楚和简洁起见,ic 300和550中所示的其他元件已从图8省略。每个第二接口802a、802b被示出为与其自身的过滤器/门/门户841a、841b和pac模块840a、840b(各自包括相应的策略表843a、843b和审核模块842a、842b)相关联。每个过滤器841a、841b可以可配置成处于开状态和关状态,使得接口801a、801b中的任何一个可以可配置为受限制接口或不受限制接口(尽管在图8示例中,接口都被描绘为第二受限制接口,示出了一个不受限制接口851)。由于第二接口802a、802b中的每一个与策略表843a、843b相关联,因此这提供了每个受限制接口准许访问ic 800的地址范围的不同授权子集的示例。举例来说,第二接口802a可以准许访问地址范围的第一授权子集并且第一接口802b可以准许访问地址范围的第二授权子集。第一子集和第二子集可以不同,但一个子集可以是另一个子集的子集(例如第一子集可以是第二子集的子集),并且用这种方式,接口802a、802b准许嵌套访问地址范围的授权子集。当然,在一些示例中,多个第一接口可以与同一个策略表相关联并且因此可以准许访问地址范围的同一个授权子集。
152.本公开的优点如下。然而,现有技术ic仅在ic的运行时间期间向处理器提供基本的开/关功能,或者可能不安全,因为主机上的恶意软件具有不受限制的访问,因此这可能会危及ic和系统的完整性或安全性,根据本公开,本公开的ic包括至少两个接口(例如控制接口),所述接口提供对经由所述接口耦合到ic的任何实体(例如处理器)的非对称访问许可。在现有技术中,处理器无法访问ic的地址范围并且因此除了打开和关闭ic之外无法控制ic(和/或因此无法控制连接到ic的输出部件),而本公开的ic包括ic的地址范围的指定子集,所述子集被认为是处理器在ic的运行时间期间能够安全访问的。因此,处理器具有对ic的运行时间控制,并且可以控制ic或输出装置的那些不会对安全构成威胁的功能,因为即使恶意软件可以访问ic的那些授权地址范围,也不会对ic或输出部件造成损害。因此,根据本公开的ic用安全可靠的方式为处理器提供对ic的运行时间控制,而不会显著增大ic的占地面积或制造成本。
153.通过迄今为止所呈现的公开的示例的总结,图9示出了包括第一接口951和第二接口902、包括多个地址范围的内部可寻址空间959和控制单元940的示例集成电路的示意图。第一接口和第二接口951、902中的每一个经由控制单元940耦合到内部可寻址空间959。控制单元940可配置成处于第一状态,在所述第一状态下,控制单元940被配置成允许或拒绝第二接口902访问内部可寻址空间的多个地址范围的子集。控制单元940可以包括如上文参考其他图所描述的任何特征。举例来说,控制单元940可以包括门和审核模块,并且存储策略表等,使得允许或拒绝第二接口902访问子集可以经由使用审核模块和门来实现,从而根据策略表来允许/拒绝访问。
154.图10是说明用于集成电路的示例引导序列的流程的序列图。如图10所示,处理器
1001(例如图5示例中的处理器501)处于非活动状态或重置状态(s1010),并且集成电路1003(例如如上所述的任何集成电路)被配置为处于所述集成电路的一个接口是受限制的状态(s1012)(例如,如上文关于其他示例所描述的“第一状态”)。举例来说,在s1012,集成电路1003(例如其控制单元)可以通过otp操作(例如如上所述,将控制单元的门设置为打开的操作)配置成处于其状态下。因此,一个接口是受限制的,因为它只能访问ic 1003的多个地址范围的子集,而不是整个集合。如s1013所示,处理器1001不能访问ic 1003的内部可寻址空间。在s1014,系统初始化操作由控制器1002(例如图5示例的控制器503)开始,其中ic安全地加载了固件并且被配置成由处理器1001进行运行时间控制,处理器1001在序列的这个阶段是非活动的。操作s1014包括控制器1002将固件加载(s1016)到ic 1003的控制寄存器中并执行(s1018)加载的固件。控制器1002经由ic 1003的第一接口来加载固件,因为第一接口在这个阶段不受限制地访问ic 1003的内部可寻址空间(包括ic的控制寄存器)。在s1020,ic 1003初始化固件,固件初始化可以包括配置策略表(s1022)。配置策略表可以包括写入针对ic 1003的至少一个地址范围的至少一个访问许可。写入访问许可可以包括限定准许访问的地址范围或限定阻止访问的地址范围。因此,策略表可以包括与至少一个地址范围相关联的至少一个许可,所述许可限定是准许还是阻止经由第二接口的访问。因此,由存储在策略表中的相应访问许可限定的第二接口访问的地址范围子集可以在s1022进行配置并且可以在固件初始化后进行配置。因此,在s1022之后,在s1024,处理器1001具有有限(受限制)访问,即,仅访问由在s1022配置的策略表限定的地址范围子集。任选地,可以锁定ic 1003的配置(s1026)。这可以包括防止对策略表的进一步写入(例如写入锁定)并且可以经由ic 1003中的逻辑来实现,所述逻辑防止写入策略表的潜在请求完成。在任何情况下,ic可以经过配置,使得策略表以不可逆的方式锁定,直到ic被重置。因此,ic可以包括防止修改策略表的写入锁,并且写入锁可以是不可逆的,直到ic被重置。然后所述过程完成(s1028)并且系统初始化完成(s1030)。此后,处理器1001经由第二接口来控制ic 1003(s1032)。
155.迄今为止的示例已经公开了一种包括两个接口的集成电路,准许所述两个接口中的一个接口受限制地访问集成电路的地址范围(例如访问地址范围子集),处理器可以经由所述访问而对ic具有运行时间控制,而所述两个接口中的另一个接口具有不受限制的访问以用于配置ic。现在将描述涉及包括包括一个接口的集成电路的示例,所述接口最初是不受限制的,但是通过所述接口来配置集成电路,使得经由所述接口的访问变得限于例如多个地址范围的子集。在这些示例中,单个接口因此具有不受限制状态和受限制状态。
156.图11示意性地公开了示例集成电路1150。ic 1150包括:包括多个地址范围的内部可寻址空间1159、可配置成处于第一状态和第二状态的控制单元1140以及经由控制单元1140耦合到内部可寻址空间1159的接口1151。当控制单元1140被配置成处于第一状态时,接口1151经由控制单元1140不受限制地访问多个地址范围,并且当控制单元1140被配置成处于第二状态时,接口1151经由控制单元1140访问多个地址范围的受限制子集。当控制单元1140被配置成处于第一状态时,控制单元1140经由接口1151可配置成处于第二状态。换句话说,通过图11示例的ic,允许处理器(例如处理器1001)起初不受限制地访问地址范围,并且随后受限制地访问地址范围。举例来说,当控制单元1140处于第一状态并且访问不受限制时,外部处理器可以将固件加载到ic 1150的控制寄存器中并且随后可以指定地址范
围的子集以限定受限制子集,在运行时间期间/当主操作系统开始初始化时以及当控制单元1140处于第二状态时,允许处理器访问所述受限制子集。从第一状态到第二状态的转换可以是单向的,因为所述转换在重置ic之前是不可逆的,并且从第二状态到第一状态的转换是不可能的(在不重置ic的情况下)。这将在下面更详细地解释。
157.为了说明外部处理器通过“单个接口”(接口1151)既可以配置ic,又可以对ic进行运行时间控制的示例的原理,图11仅示出了单个接口1151。然而,将理解,在图11示例中以及还对于仅示出一个接口的后续示例(例如图12和图13),ic可以包括其他接口(例如如图9所示)。在这些示例中,任何“其他”接口(例如第二接口)可以关闭或未连接。在其他示例中,任何“其他”接口(例如第二接口)可以用与接口1151相同的方式进行配置,并且因此可以是不受限制或受限制等。因此,即使在仅描绘了单个接口的示例中,这也是仅出于说明目的;ic中可以存在除了所示的那个/那些接口以外的其他接口。
158.图12示出了示例ic 1250,例如ic 1150,其中相似的特征/元件将由相似的附图标记表示,因此为了简洁起见,将省略对上述特征的描述。关于ic 1150,ic 1250包括控制单元1240,在这个示例中,控制单元1240包括门1241(所述门也可以被称为过滤器)、审核模块1242和策略表1243。ic 1250还包括总线1253和包括多个地址范围的可寻址空间1259。这些部件1241、1242、1243、1253和1259可以如上文关于较早附图所描述的那样。此外,尽管为简洁起见未示出,但是ic 1250还可以包括其他部件,例如内部处理器、数据接口、dac和/或输出部件(例如参见图5),这取决于示例。
159.策略表1243被配置成存储针对内部可寻址空间1259的访问许可,所述访问许可限定多个地址范围的受限制子集,当控制单元1240被配置成处于其第二状态时,接口1251能够访问所述受限制子集。因此,当控制单元1240被配置成处于第一状态时,访问许可经由接口1251可写入到策略表1243(参见由1261指示的从总线1253引出的线)。
160.门1241具有开状态和关状态。接口1251经由门1241(并且经由总线1253)耦合到内部可寻址空间1259。当控制单元1240被配置成处于第一状态时,门1241被配置成处于关状态,而当控制单元1240被配置成处于第二状态时,门1241被配置成处于开状态。当控制单元1240被配置成处于第一状态时,经由接口1251可设置门1241的状态。将门的状态从关闭变成打开将使控制单元1240从其第一状态转换到其第二状态。
161.对于经由接口1251来自(未示出的)处理器的访问多个地址范围中的至少一个地址的传入访问请求,审核模块1242被配置成访问策略表1243以确定与所述至少一个地址相关联的访问许可并向门1241发送信号。门1241在处于开状态时被配置成在接收到来自审核模块1242的信号时取决于与至少一个空间相关联的访问许可而采用某种配置,根据所述配置来允许或拒绝接收到的访问请求。
162.如上文关于图5所描述,策略表1243可以将地址范围指定为授权的或未授权的,并且地址范围的受限制子集可以包括地址范围的授权或批准子集。地址范围子集可以是访问许可经过授权的那些地址范围。授权指定可以包括对特定地址范围的只读、只写和/或读写的访问许可。
163.经由接口1251的传入请求包括信息,所述信息可以包括从外部实体(例如外部处理器)到集成电路1250内的地址范围的传入请求的细节。访问信息或请求可以包括一个或多个地址(例如离散地址)、请求的类型(例如读取或写入)以及在读取请求的示例中要从所
述地址读取的数据或在请求是写入请求的情况下要写入到所述地址中的数据等。经由接口1251,接收含有要访问(读取或写入)的地址的访问请求。审核模块1242可以包括硬件和/或软件(例如比较器和/或组合逻辑和/或验证器和/或验证机制/逻辑,和/或被配置成对照策略表来验证事务的任何硬件和/或软件),并且可以被配置成将传入访问信息(例如一个地址或多个地址)与策略表中的信息(例如地址范围)进行比较并确定是允许还是阻拦所述请求。具体地,审核模块1242可以被配置成将与外部实体正试图经由接口1251访问的请求有关的地址与策略表中的针对所请求地址所在的该地址范围的对应条目进行比较,以便检查访问许可。如果针对该地址范围的访问许可被指定为授权的(该空间因此成为授权子集的一部分)(例如被授权读/写),则审核模块1242被配置成向门1241发送“允许访问”信号,当控制单元1240处于第二状态时并且因此当门1241打开时,所述信号将使门1241允许访问请求(读取及/或写入)。如果地址范围没有正确的访问许可,则没有这样的信号被发送到门1241,因此请求被拒绝。当控制单元1240处于第二状态时,审核模块1242因此被配置成对照策略表1243来验证事务。
164.换句话说,ic 1250的第一状态可以包括经由唯一的接口1251对多个地址范围的访问不受限制的(不受限制)状态。但是,在这种状态下,可以将ic 1250配置成处于对多个地址范围的访问受限制(限于可允许或授权子集)的另一种(受限制)状态。一旦处于这种受限制状态,就可以防止ic 1250转换回到不受限制状态。将控制单元1240(并且因此ic 1250)配置成处于这种第二(或受限制)状态可以包括,在第一示例中,配置策略表1243,在第二示例中,将门1241打开,或在第三示例中,配置策略表1243并且将门1241打开。现在将更详细地描述这些示例。
165.在第一示例中,配置策略表1243可以将控制单元1240置于其第二(受限制状态)。策略表1243在默认状态下可以不提供对ic的地址范围的访问,一旦被配置,策略表1243即可以限定指定可访问的地址范围的子集(例如准许的地址范围)的访问许可。因此,这个示例中的策略表1243包括允许列表,并且控制单元1240的第二状态可以对应于根据允许列表的访问。另选地,策略表1243可以包括阻拦列表,并且控制单元1240的第二状态可以对应于根据阻拦列表的访问。根据阻拦列表示例,策略表中的
‘
默认’策略可以不对经由接口1251可访问的地址范围施加任何限制或约束。将控制单元1240置于第二状态包括将策略写入到策略表1243,所述策略将地址范围子集指定为不可访问的(例如ic 1250的控制寄存器),该子集的补集是当控制单元1240处于其第二状态时经由接口1251准许访问的受限制子集。在一些示例中,策略表1243可以限定访问许可的混合,使得准许访问地址范围的第一子集而拒绝访问地址范围的第二子集,等等。
166.在第二示例中,将门1241打开可以将控制单元1240置于其第二(限制状态),因为一旦门1241打开,对内部可寻址空间的访问将根据存储在表1243中的策略,所述策略可能已经写入到表1243。或者,策略表可以包括阻拦列表,在这种情况下,将门1241打开将阻拦对ic的地址范围的所有访问。因此,通过将门1241打开,审核模块1242将根据策略表1243来阻止和允许访问地址范围,不管门已被配置。
167.在第三示例中,将控制单元1240置于其第二(受限制)状态包括配置策略表1243并将门1241打开,如上所述。
168.因此,在一个示例中,在第一状态下,门1241关闭,并且门1241的关状态代表门
1241的默认状态。在这个示例中,策略表1241可能是空白的。然而,在第一状态下,控制单元1240可配置成处于第二状态。这可能涉及由配置策略表1243和/或将门设置为打开的外部处理器执行的初始化过程。这个控制单元1240可以以这种状态存在,直到ic 1250被重置,在这种情况下,寄存器可以默认为0。
169.将访问许可写入到策略表可以由外部处理器(例如应用处理器)直接执行,这是因为当将门1241关闭时,接口1251不受限制(当控制单元1240处于第一状态时),并且因此处理器可以直接访问以写入策略表1243条目本身。此外,当控制单元1240处于第一状态时,处理器能够将门打开(例如通过寄存器写入)。当控制单元1240处于其第一状态时,外部处理器可以访问ic 1250的寄存器,这是写入策略表1243和/或改变门1241的状态所必需的。因此,当控制单元1240处于其第二状态时,接口1251访问的地址范围子集不包括那些寄存器。用这种方式,当处理器将控制单元1240配置成处于第二状态时,这样实质上防止处理器随后修改策略表1243和/或改变门1241的状态。这就是为什么在一些示例中,转换回到第一状态只有经由重置控制单元1240和/或ic 1250和/或处理器(处理器将参考图13和图14进行讨论)才有可能的原因。
170.如上所述,在第一状态下,对地址范围的不受限制访问允许外部处理器将固件写入到ic内的处理器,将固件设置成执行,并初始化该集成固件的阶段以(将访问许可)写入策略表1243和/或将门1241设置为打开。此外,在第一状态下,ic 1250可以是可锁定的,以防止对策略表1243的进一步写入和/或改变门1241的状态,使得如上所讨论的,两者都不能改变,直到重置为止。为了用这种方式锁定,ic 1250(例如其控制单元1240)可以包括逻辑(例如呈逻辑电路形式的门控逻辑),使得当被激活时,防止对策略表1243的进一步写入和/或防止改变门1241的状态。为了激活逻辑电路,可以经由第一接口1251(并且经由总线1253等,例如经由在1261处标识的线路)来接收信号。逻辑电路在被激活时防止对策略表1243的写入访问并且防止对门1241的使能部分的写入访问(使能部分将门1241打开)。锁定是不可逆的,直到ic被重置,因此一旦经过配置而使得防止对策略表1243和/或门1241的使能部分的写入访问,逻辑电路则可能只能被配置成使得在ic被重置后再次准许写入访问。在其他示例中,锁可以是非易失性的。
171.在这些示例中,由于策略表1243和门1241的状态可以在重置时被清除/改变,所以策略表1243和门1241包括易失性存储器。然而,在其他示例中,策略表1243和门1241可以包括非易失性存储器,在这种情况下,一旦被编程,它们在重置后便不可改变。锁也可以是非易失性锁。
172.多个地址范围的受限制子集(例如允许列表上的那些地址范围等)不包括用于控制单元1240的配置寄存器,使得虽然当控制单元1240处于其第一状态时,处理器不受限制地访问地址范围(例如使得处理器可以将固件加载到ic 1250中),但是在第二状态下,处理器不能访问可以重新配置策略表1243、改变门1241的状态和/或在被恶意软件访问的情况下导致损害的那些寄存器。由于这个最终原因,当控制单元1240处于第二状态时,准许外部处理器对ic 1250具有运行时间控制。
173.ic 1250可以包括例如如图8所描绘的额外接口。在这些示例中,ic 1250包括多个接口并且接口1251是第一接口。多个接口中的每个接口可以用上述方式与相应的控制单元相关联,或多个接口可以与同一个控制单元相关联。在任一示例中,每个接口可以将控制单
元配置成处于其第二状态(例如通过配置策略表和/或将门打开,如上所述),因此经由ic的多个接口,可以有可能不受限制地访问地址范围(当控制单元处于其第一状态时),随后受限制地访问地址范围(当控制单元被配置成处于其第二状态时)。
174.图13示出了包括与ic 1250相关联的处理器1303的系统1300以说明图12示例的一些优点。在这个示例中,处理器1303具有第一状态和第二状态,所述状态分别对应于ic 1250的控制单元的第一状态和第二状态。
175.处理器1303连接到接口1251,因此经由接口1251访问ic 1250的地址范围。如上所述,当ic 1250的控制单元处于其第一状态时,这种访问最初是不受限制的(例如,访问多个地址范围中的所有地址范围),但是随后通过将ic 1250的控制单元配置成处于其第二状态而成为受限制(例如限于子集)。处理器1303包括限定处理器1303如何根据控制单元的状态与ic 1250交互的第一状态和第二状态。当处理器1303被配置成处于第一状态时,所述处理器被配置成执行引导加载程序固件。因此,处理器1303的第一状态对应于控制单元的第一状态,因为为了执行引导加载程序固件,处理器1303需要不受限制地访问ic 1250的所有地址范围,包括控制寄存器。换句话说,处理器1303执行其引导加载程序固件包括在ic 1250中加载固件并开始执行固件,这就是为什么对ic 1250的访问在这个阶段不受限制的原因。当处理器被配置成处于第二状态时,所述处理器被配置成初始化并执行操作系统。因此,处理器1303的第二状态对应于控制单元的第二状态,因为在操作系统的执行中,如果任何恶意软件可以访问ic 1250的地址范围,那么它们可能会造成危害,因此处理器在第二状态下对ic 1250的访问限于那些非安全关键的地址范围。因此,当处理器1303处于其第二状态时(以及当控制单元处于其第二状态时)允许访问的地址范围子集不包括用于ic 1250的安全关键控制寄存器。换句话说,处理器1303可以访问用于ic 1250的不是安全关键的某些控制寄存器,但不能访问用于主机接口安全特征的控制寄存器(例如那些涉及策略表、门激活的控制寄存器等)。
176.当处理器1303被配置成处于其第一状态时,所述处理器被配置成使控制单元1240从其第一状态转换到其第二状态。如上所述,这可以包括,处理器1303使访问许可被写入到策略表,策略表限定了限制对地址范围的访问所依据的策略,和/或这可以包括处理器1303使门切换到其开配置。因此,当处理器1303被配置成处于其第一状态时,所述处理器可以被配置成将限定多个地址范围的受限制子集的访问许可写入到策略表和/或可以被配置成使门从其关状态转换到其开状态。同样如上所述,处理器1303可以设置逻辑电路的锁定位以防止对策略表1243的任何写入和/或防止门1241的状态被改变。
177.在一示例中,当处理器1303被配置成处于其第二状态时,所述处理器在不使自身转换到其第一状态的情况下无法使控制单元从其第二状态转换到其第一状态。因此,系统1300可被视为具有第一系统状态和第二系统状态。在第一系统状态下,处理器1303和控制单元都处于其第一状态,并且在第二系统状态下,处理器1303和控制单元都处于其第二状态。因此,根据这些示例,除了对ic 1250具有运行时间控制之外,单个外部处理器1303还可以用于经由单个接口1251将固件加载到ic 1250上。
178.图14是说明用于集成电路的示例引导序列的流程的序列图。如图14所示,集成电路1403(例如如上所述的ic 1150或1250)和处理器1401(例如如上所述的处理器1303)最初处于相应的第一状态(s1402和s1404),如上所述。因此,ic 1403经过配置,使得对其地址范
围的访问不受限制,并且处理器1401因此可以访问所有地址范围以配置ic 1403。这如下所述地进行。开始引导并且初始化处理器1401的引导驱动程序(s1406和s1407)。处理器1401开始将固件加载到ic 1403的控制寄存器中并执行固件(s1410)。由ic 1403来初始化固件(s1412)。随后将ic 1403的控制单元配置成处于其第二状态(在s1414)。如上所述,这可以由处理器1401经由ic 1401的接口(例如接口1151、1251)通过配置策略表和/或门的状态(如虚线所示)来完成。在s1416,将控制单元(以及因此ic 1404)配置成处于其第二状态。因此,在s1416之后,对ic 1401的地址范围的访问受限制(限于子集)。ic 1403用信号通知处理器1401所述处理器已经完成了其引导过程(s1420),随后,处理器1401的引导过程结束(s1422)。处理器1401然后可以具有对ic 1401的运行时间控制,例如供主操作系统在其已被引导之后使用(s1426)。
179.任选地,在s1418,可以如上所述地锁定控制单元(以及因此ic 1404)的配置,例如锁定在其第二状态,从而防止对策略表的写入和/或防止门的状态被改变(例如从开变回到关)。
180.图15示出了包括第一接口和第二接口1551、1552的另一个示例集成电路1550。ic 1550还包括内部可寻址空间1559和控制单元1540。这些部件中的每一个可以如上文关于图11到图14所述那样。每个接口1551、1552经由控制单元1540耦合到内部可寻址空间。
181.如现在将描述的,图15的控制单元1540可配置成处于第一状态、第二状态和第三状态。当控制单元1540被配置成处于第一状态时,第一接口1551经由控制单元和1540不受限制地访问多个地址范围,并且当控制单元1540被配置成处于第二状态时,第一接口1551经由控制单元1540访问多个地址范围的受限制子集。换句话说,控制单元1540是可配置的,使得处理器可以仅经由接口之一(接口1551)访问ic 1550以加载并执行固件以用于后续运行时间控制,如参考图11到图14所描述。然而,控制单元1540也可配置成处于第三状态,在所述第三状态下,控制单元1540被配置成允许或拒绝第二接口1542访问内部可寻址空间1559的多个地址范围的子集,并且第一接口1551不受限制地访问多个地址范围。换句话说,控制单元1540也可经由一个接口配置,使得另一个接口成为受限制接口(可以访问地址范围子集),如参考图1到图10所描述。
182.控制单元1540可以包括如上文参考其他图所描述的策略表和/或门和/或审核模块中的任一个,并且将控制单元1540配置成处于第一状态到第三状态中的任一个可以包括用上述方式来配置策略表和/或改变门的状态。可以经由第一接口1551来设置控制单元1540的配置,并且当控制单元1540被配置成处于第一状态时,控制单元1540可经由第一接口1551配置成处于第二状态。ic 1550可以包括如上文参考其他ic所讨论的部件中的任一个。
183.将了解,具有第一接口和第二接口1551、1552的图15的ic 1550可配置成处于分别在图15a和图15b中示出的第一模式和第二模式。在第一模式下,第一接口1551不受限制地访问多个地址范围,但是ic 1550是可配置的(例如如上所述),使得第一接口1550随后受限制地访问多个地址范围,所述受限制访问限于多个地址范围的子集。在第二模式下,第一接口1551不受限制地访问内部可寻址空间的多个地址范围,而第二接口1552受限制地访问多个地址范围,所述受限制访问限于多个地址范围的子集。
184.换句话说,在第一模式下,ic 1550如上文关于图11到图14讨论的那样配置,而在
第二模式下,ic 1550如上文关于图1到图10讨论的那样配置。
185.下表总结了所述模式:
[0186] 第一接口1551第二接口1552第一模式最初不受限制,随后受限制x第二模式不受限制受限制
[0187]
表中的'x'表示第二接口1552的状态是受限制、不受限制、甚至关闭或未连接的。换句话说,当ic 1550被配置成处于第一模式时,第二接口1552可以不被使用。
[0188]
ic 1550的模式可以对应于控制单元1540的关联模式。
[0189]
同样如上所述,为了将两个接口之一配置为受限制的,可以将关联的门打开,或可以配置关联的策略表等。
[0190]
在另一个示例中,图15的ic 1550具有初始配置,根据所述初始配置,第一接口不受限制地访问多个地址范围。ic 1550可以可配置成后续配置,根据所述后续配置,第一接口或第二接口受限制地访问多个地址范围,所述受限制访问限于多个地址范围的子集。换句话说,图15的ic 1550可以具有初始配置,根据所述初始配置,第一接口不受限制地访问多个地址范围,但是可以包括第一其他配置和第二其他配置,根据所述其他配置,第一接口或第二接口分别受限制地访问多个地址范围,所述受限制访问限于多个地址范围的子集。更具体地,第一接口和第二接口1551、1552中的每一个与具有开状态和关状态的相应门相关联,使得每个门在处于其开状态时根据存储在集成电路中的策略而准许访问内部可寻址空间1559。在这个示例中,第一接口1551不受限制地访问内部可寻址空间对应于与第一接口相关联的门是关闭的,并且配置集成电路1550使得第一接口或第二接口1551、1552受限制地访问多个地址范围,所述受限制访问限于多个地址范围的子集,包括将与第一接口或第二接口1551、1552相关联的门从关闭变为打开。
[0191]
下表总结了这一点,该表描述了初始配置,其中第一接口是不受限制的,但是两种可能的后续配置取决于第一接口和第二接口中的哪一个变成受限制的。
[0192] 第一接口第二接口初始配置不受限制x第一后续配置受限制x第二后续配置不受限制受限制
[0193]
如前所述,x表示第二接口1552的状态是受限制、不受限制、甚至关闭或未连接的。
[0194]
图16a到图16c中描绘上表,其中图16a描绘“初始配置”,图16b描绘“第一后续配置”,图16c描绘“第二后续配置”。
[0195]
因此,ic 1550可以以多种状态存在。根据一个这样的状态,与第一接口1551相关联的门关闭并且与第二接口1552相关联的门关闭。根据另一个这样的状态,与第一接口1551相关联的门关闭并且与第二接口1552相关联的门打开。根据另一个这样的状态,与第一接口1551相关联的门打开并且与第二接口1552相关联的门关闭。
[0196]
任何给定方面或示例的特征可以与任何其他方面或示例的特征组合,并且本文描述的各种特征可以在给定示例中以任何组合来实现。
[0197]
技术人员将认识到,在适当情况下,上述设备和方法可以被体现为处理器控制代码,所述处理器控制代码例如在例如磁盘、cd-或dvd-rom、例如只读存储器的已编程存储器
(固件)等载体介质上,或在例如光学或电信号载体等数据载体上。对于许多应用,本发明的实施方案将实施于dsp(数字信号处理器)、asic(专用集成电路)或fpga(现场可编程门阵列)上。因此,所述代码可以包括常规的程序代码或微代码,或例如用于设置或控制asic或fpga的代码。所述代码还可以包括用于动态地配置例如可再编程逻辑门阵列的可再配置设备的代码。类似地,所述代码可以包括用于例如verilogtm或vhdl(超高速集成电路硬件描述语言)的硬件描述语言的代码。技术人员将了解,所述代码可以分布在彼此通信的多个耦合部件之间。在适当情况下,实施方案也可使用在现场可(再)编程模拟阵列或类似装置上运行以便配置模拟硬件的代码来实施。
[0198]
应当注意,上述示例说明本发明而非限制本发明,并且本领域技术人员将能够在不脱离所附权利要求的范围的情况下设计许多替代实施方案。词语“包括”不排除除了在权利要求中列出的要素或步骤之外的要素或步骤的存在,“一”或“一个”不排除多个,并且单个特征或其他单元可以履行在权利要求中叙述的几个单元的功能。权利要求中的任何参考符号都不应被解释为限制所述权利要求的范围。
技术特征:
1.一种集成电路,所述集成电路包括:第一接口和第二接口;包括多个地址范围的内部可寻址空间;以及控制单元;其中所述第一接口和所述第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间,其中所述控制单元可配置成处于第一状态,在所述第一状态下,所述控制单元被配置成允许或拒绝所述第二接口访问所述内部可寻址空间的所述多个地址范围的子集。2.如权利要求1所述的集成电路,其中经由所述第一接口来设置所述控制单元的配置。3.如权利要求1或2所述的集成电路,其中所述控制单元包括具有开状态和关状态的门,其中所述第二接口经由所述门耦合到所述内部可寻址空间,并且其中所述控制单元被配置成处于所述第一状态对应于所述门被配置成处于所述开状态。4.如任一前述权利要求所述的集成电路,其中所述控制单元包括存储针对所述内部可寻址空间的访问许可的策略表,所述访问许可限定所述控制单元在处于所述第一状态时允许或拒绝访问的所述地址范围子集。5.如权利要求3所述的集成电路,其中所述控制单元包括存储针对所述内部可寻址空间的访问许可的策略表,所述访问许可限定所述控制单元在处于所述第一状态时允许或拒绝访问的所述地址范围子集,并且其中所述门耦合到所述策略表,使得在所述开状态下,所述门被配置成根据所述策略表来允许或拒绝对所述内部可寻址空间的所述子集的访问。6.如权利要求3所述的集成电路,其中所述控制单元还包括审核模块,所述审核模块被配置成,对于经由所述第二接口接收到的访问所述多个地址范围中的至少一个地址的传入请求,访问所述策略表以确定与所述至少一个地址相关联的访问许可并向所述门发送信号,其中处于所述开状态的所述门被配置成在接收到来自所述审核模块的所述信号时取决于与所述至少一个空间相关联的所述访问许可而采用某种配置,根据所述配置来允许或拒绝所述接收到的访问请求。7.如权利要求3到6中任一项所述的集成电路,其中所述门的所述开/关状态被配置成可经由非易失性存储器来控制。8.如权利要求7所述的集成电路,其中所述非易失性存储器包括一次性可编程(otp)存储器。9.如权利要求6到8中任一项所述的集成电路,其中所述审核模块包括比较器。10.如权利要求6到9中任一项所述的集成电路,其中经由所述第二接口接收的所述传入访问请求包括对所述至少一个地址进行读取、写入或读写的请求,并且其中所述关联的访问许可包括对所述至少一个地址进行读取、写入或读写的许可。11.如权利要求4到10中任一项所述的集成电路,其中所述策略表被配置成存储针对所述内部可寻址空间中的一组地址范围的访问许可。12.如权利要求4到11中任一项所述的集成电路,其中所述策略表中的所述访问许可被配置成经由所述第一接口来设置。13.如权利要求4到12中任一项所述的集成电路,其中所述集成电路经过配置,使得在所述集成电路的引导之后,防止修改存储在所述策略表中的所述访问许可。14.如权利要求1所述的集成电路,其中所述控制单元在处于所述第一状态时被配置成
存储访问许可,所述访问许可限定经由所述第二接口允许或拒绝访问的所述地址范围子集。15.如权利要求14所述的集成电路,其中所述访问许可被配置成经由所述第一接口来设置。16.如任一前述权利要求所述的集成电路,其中,当处于所述第一状态时,所述控制单元被配置成允许所述第一接口访问所述内部可寻址空间的所述多个地址范围。17.如权利要求1或16所述的集成电路,其中所述控制单元包括具有开状态和关状态的门,其中所述第一接口经由所述门耦合到所述内部可寻址空间,并且其中所述控制单元被配置成处于所述第一状态对应于所述门被配置成处于所述关状态。18.如任一前述权利要求所述的集成电路,其中所述控制单元被配置成处于所述第一状态。19.如任一前述权利要求所述的集成电路,所述集成电路包括多个第二接口,其中所述多个第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间,并且其中所述控制单元可配置成处于所述控制单元被配置成允许或拒绝所述多个第二接口的子集访问所述地址范围的所述子集的状态。20.如权利要求1所述的集成电路,所述集成电路还包括多个第二接口和多个控制单元,其中所述多个第二接口中的每一个经由相应的控制单元耦合到所述内部可寻址空间,其中每个控制单元可配置成处于第一状态,在所述第一状态下,所述控制单元被配置成允许或拒绝相应的第二接口访问所述地址范围的至少一个相应子集。21.如权利要求20所述的集成电路,其中经由所述第一接口来设置所述多个控制单元中的每一个的配置。22.一种集成电路,所述集成电路包括:第一接口和第二接口;包括多个地址范围的内部可寻址空间;其中所述第一接口和所述第二接口中的每一个耦合到所述内部可寻址空间,并且其中经由所述第二接口来准许访问所述多个地址范围的第一子集并且经由所述第二接口来阻止访问所述多个地址范围的第二子集。23.如权利要求22所述的集成电路,其中经由所述第一接口来准许访问所述多个地址范围。24.如权利要求22或23所述的集成电路,其中所述集成电路包括策略表,所述策略表被配置成存储针对所述多个地址范围的至少一个子集的访问许可,使得根据存储在所述策略表中的所述第一子集和所述第二子集的关联访问许可来限定所述第一子集和所述第二子集。25.如权利要求24所述的集成电路,其中所述访问许可被配置成经由所述第一接口来设置。26.如权利要求24或25中任一项所述的集成电路,所述集成电路还包括门和审核模块,其中所述审核模块耦合到所述策略表和所述门,并且其中所述审核模块被配置成,对于经由所述第二接口接收到的访问所述多个地址范围中的至少一个地址的传入请求,访问所述策略表以确定与至少一个空间相关联的访问许可并向所述门发送信号,其中所述门被配置
成在接收到来自所述审核模块的所述信号时取决于与所述至少一个空间相关联的所述访问许可而采用某种配置,根据所述配置来允许或拒绝所述接收到的访问请求。27.一种包括任一前述权利要求所述的集成电路的系统,所述系统包括:安全微控制器,所述安全微控制器经由所述第一接口耦合到所述可寻址空间;以及处理器,所述处理器经由至少一个第二接口耦合到所述可寻址空间。28.如权利要求27所述的系统,其中所述处理器被配置成初始化操作系统,并且其中所述安全微控制器被配置成在所述处理器完成初始化所述操作系统之前初始化所述集成电路。29.如权利要求27或28所述的系统,其中所述处理器被配置成触发所述安全微控制器以初始化所述集成电路。30.一种集成电路,所述集成电路包括:第一接口和第二接口;包括多个地址范围的内部可寻址空间;其中所述集成电路是可配置的,使得经由所述第一接口和所述第二接口中的一个来准许访问所述多个地址范围,并且经由所述第一接口和所述第二接口中的另一个来允许访问所述多个地址范围的第一子集而拒绝访问所述多个地址范围的第二子集。31.一种集成电路,所述集成电路包括:包括多个地址范围的内部可寻址空间;控制单元,所述控制单元可配置成处于第一状态和第二状态;以及接口,所述接口经由所述控制单元耦合到所述内部可寻址空间;其中,当所述控制单元被配置成处于所述第一状态时,所述接口经由所述控制单元不受限制地访问所述多个地址范围,并且其中,当所述控制单元被配置成处于所述第二状态时,所述接口经由所述控制单元访问所述多个地址范围的受限制子集。32.如权利要求31所述的集成电路,其中,当所述控制单元被配置成处于所述第一状态时,所述控制单元经由所述接口可配置成处于所述第二状态。33.如权利要求31或32所述的集成电路,其中所述控制单元包括策略表,所述策略表被配置成存储针对所述内部可寻址空间的访问许可,所述访问许可限定当所述控制单元被配置成处于其第二状态时所述接口访问的所述多个地址范围的所述受限制子集,并且其中,当所述控制单元被配置成处于所述第一状态时,经由所述接口可将所述访问许可写入到所述策略表。34.如权利要求33所述的集成电路,其中,当所述控制单元中被配置成处于其第二状态时,所述控制单元经过配置,使得阻止经由所述接口修改所述策略表的所述访问许可。35.如权利要求31到34中任一项所述的集成电路,其中所述控制单元包括具有开状态和关状态的门,其中所述接口经由所述门耦合到所述内部可寻址空间,并且其中,当所述控制单元被配置成处于所述第一状态时,所述门被配置成处于所述关状态,而当所述控制单元被配置成处于所述第二状态时,所述门被配置成处于所述开状态。36.如权利要求35所述的集成电路,其中,当所述控制单元被配置成处于所述第一状态时,经由所述接口可设置所述门的状态。37.如权利要求35或36所述的集成电路,其中,当所述控制单元被配置成处于所述第二
状态时,经由所述接口来防止所述门的所述状态被改变。38.如权利要求31到37中任一项所述的集成电路,当所述控制单元被配置成处于所述第二状态时,只能通过重置所述集成电路来将所述控制单元置于所述第一状态。39.如权利要求31到38中任一项所述的集成电路,其中所述多个地址范围的所述受限制子集不包括用于所述控制单元的配置寄存器。40.如权利要求33到39中任一项所述的集成电路,所述集成电路还包括审核模块,所述审核模块被配置成针对经由所述接口从处理器接收的访问所述多个地址范围中的至少一个地址的传入访问请求,访问所述策略表以确定与所述至少一个地址相关联的访问许可并向所述门发送信号,其中所述门在处于所述开状态时被配置成在接收到来自所述审核模块的所述信号时取决于与所述至少一个空间相关联的所述访问许可而采用某种配置,根据所述配置来允许或拒绝所述接收到的访问请求。41.如权利要求31到40中任一项所述的集成电路,其中所述接口是第一接口,并且其中所述集成电路包括多个接口,所述多个接口包括所述第一接口。42.一种系统,所述系统包括权利要求31到41中任一项所述的集成电路和连接到所述集成电路的所述接口的处理器,其中所述处理器包括第一状态和第二状态,使得,当被配置成处于所述第一状态时,所述处理器被配置成执行引导加载程序固件,并且当被配置成处于所述第二状态时,所述处理器被配置成初始化并执行操作系统,其中所述处理器处于其第一状态对应于所述控制单元处于其第一状态并且其中所述处理器处于其第二状态对应于所述控制单元处于其第二状态。43.如权利要求42所述的系统,其中,当被配置成处于所述第一状态时,所述处理器被配置成将固件加载到所述ic上,所述固件在由所述ic执行时使所述控制单元从其第一状态转换到其第二状态。44.如权利要求42或43所述的系统,其中,当被配置成处于所述第一状态时,所述处理器被配置成将固件加载到所述ic上,所述固件在由所述ic执行时将限定所述多个地址范围的所述受限制子集的所述访问许可写入到所述策略表。45.如权利要求42到44中任一项所述的系统,其中,当被配置成处于所述第一状态时,所述处理器被配置成将固件加载到所述ic上,所述固件在由所述ic执行时使所述门从其关状态转换到其开状态。46.如权利要求42到45中任一项所述的系统,其中,当被配置成处于其第二状态时,所述处理器经过配置,使得所述处理器在不使自身转换到其第一状态的情况下无法使所述控制单元从其第二状态转换到其第一状态。47.一种集成电路,所述集成电路包括:第一接口和第二接口;包括多个地址范围的内部可寻址空间;以及控制单元;其中所述第一接口和所述第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间,其中所述控制单元可配置成处于第一状态、第二状态和第三状态,其中,当所述控制单元被配置成处于所述第一状态时,所述第一接口经由所述控制单
元不受限制地访问所述多个地址范围,并且其中,当所述控制单元被配置成处于所述第二状态时,所述第一接口经由所述控制单元访问所述多个地址范围的受限制子集,并且当所述控制单元被配置成处于所述第三状态时,所述控制单元被配置成允许或拒绝所述第二接口访问所述内部可寻址空间的所述多个地址范围的子集。48.如权利要求47所述的集成电路,其中,当所述控制单元被配置成处于所述第一状态时,所述控制单元经由所述第一接口可配置成处于所述第二状态。49.如权利要求47或48所述的集成电路,其中经由所述第一接口来设置所述控制单元的配置。50.一种集成电路,所述集成电路包括:包括多个地址范围的内部可寻址空间;控制单元,所述控制单元存储策略;以及接口,所述接口经由所述控制单元耦合到所述内部可寻址空间;其中所述控制单元经由所述接口可配置成处于可锁定状态,在所述可锁定状态下,如存储在所述控制单元中的所述策略所限定的,所述接口能够经由所述控制单元访问所述多个地址范围的受限制子集。51.如权利要求50所述的集成电路,其中经由所述接口可设置存储在所述控制单元中的所述策略,并且其中将所述控制单元配置成处于所述可锁定状态包括经由所述接口来设置所述策略。52.如权利要求50或51所述的集成电路,所述集成电路还包括门,其中所述接口经由所述门耦合到所述内部可寻址空间,并且其中所述门包括开状态和关状态,使得当处于其开状态时,所述门根据存储在所述控制单元中的所述策略中的对应于给定地址的条目而允许或拒绝经由所述接口访问所述给定地址,并且其中将所述控制单元配置成处于所述可锁定状态包括将所述门配置成处于所述开状态。53.一种集成电路,所述集成电路包括:第一接口和第二接口,所述第一接口和所述第二接口耦合到内部可寻址空间;其中所述集成电路可配置成处于第一模式和第二模式,使得在所述第一模式下,所述第一接口不受限制地访问多个地址范围,并且所述集成电路是可配置的,使得所述第一接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集,并且在所述第二模式下,所述第一接口不受限制地访问所述内部可寻址空间的所述多个地址范围并且所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集。54.如权利要求53所述的集成电路,其中所述集成电路被配置成处于所述第一模式。55.如权利要求53所述的集成电路,其中所述集成电路被配置成处于所述第二模式。56.一种集成电路,所述集成电路包括:第一接口和第二接口,所述第一接口和所述第二接口耦合到具有多个地址范围的内部可寻址空间;其中所述第一接口不受限制地访问所述多个地址范围,并且其中所述集成电路是可配置的,使得所述第一接口或所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集。
57.如权利要求56所述的集成电路,其中所述第一接口和所述第二接口中的每一个与具有开状态和关状态的相应门相关联,使得每个门在处于其开状态时根据存储在所述集成电路中的策略而准许访问所述内部可寻址空间;其中所述第一接口不受限制地访问所述多个地址范围对应于与所述第一接口相关联的所述门关闭;其中配置所述集成电路使得所述第一接口或所述第二接口受限制地访问所述多个地址范围,所述受限制访问限于所述多个地址范围的子集,包括将与所述第一接口或所述第二接口相关联的所述门从关闭变成打开。58.如权利要求57所述的集成电路,其中与所述第一接口相关联的所述门关闭,并且与所述第二接口相关联的所述门关闭。59.如权利要求57所述的集成电路,其中与所述第一接口相关联的所述门关闭,并且与所述第二接口相关联的所述门打开。60.如权利要求57所述的集成电路,其中与所述第一接口相关联的所述门打开,并且与所述第二接口相关联的所述门关闭。
技术总结
一种集成电路包括第一接口和第二接口、包括多个地址范围的内部可寻址空间以及控制单元。所述第一接口和所述第二接口中的每一个经由所述控制单元耦合到所述内部可寻址空间。所述控制单元可配置成处于第一状态,在所述第一状态下,所述控制单元被配置成允许或拒绝所述第二接口访问所述内部可寻址空间的所述多个地址范围的子集。地址范围的子集。地址范围的子集。
技术研发人员:M
受保护的技术使用者:思睿逻辑国际半导体有限公司
技术研发日:2021.08.04
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:固态变压器控制器 下一篇:用于气液扩散整体性测试的二级统计截止点方法学与流程