CN104412199B - 半导体器件的控制 - Google Patents
半导体器件的控制 Download PDFInfo
- Publication number
- CN104412199B CN104412199B CN201380034054.3A CN201380034054A CN104412199B CN 104412199 B CN104412199 B CN 104412199B CN 201380034054 A CN201380034054 A CN 201380034054A CN 104412199 B CN104412199 B CN 104412199B
- Authority
- CN
- China
- Prior art keywords
- module
- request
- clock
- power
- resource
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
一种微控制器器件,包括:至少一个处理器(8),一个或多个外设系统(6)以及一资源提供模块(2)。处理器(8)和外设系统(6)的每一个均配置为当其需要功率和/或时钟信号时产生信号。这些信号激励资源提供模块(2)提供所请求的资源。
Description
技术领域
本发明涉及半导体器件,特别是涉及通过子系统对系统资源利用的控制,以有效地利用整体器件的电力。
背景技术
半导体装置,例如微控制器,由于其带有更多的外设系统而变得更复杂(此处的术语“外设”是指主处理器的外围设备或外设,但通常仍为同一块硅片上的部分),为了延长移动设备的电池寿命,保持功率消耗的有效控制的重要性也在增加。然而,复杂性也使这样的控制更加困难。
在现有的器件中,向外设提供控制资源,例如是使用“自上而下”的方法集中控制功率和时钟信号。然而,申请人已经认识到,由于中央资源控制器需要能够掌握外设需求的概况,其并没有提供最大效率。为了避免拒绝给特定的外设提供功率和/或合适的时钟信号以及因此引起的故障,常常要提供多于理论需求的资源。申请人还认识到,在这样的配置下,每次外设被添加/激活或移除/取消激活时,必须要重写控制资源的代码。
发明内容
根据本发明的第一方面来看,其提供一种微控制器器件,包括:至少一个处理器,一个或多个外设系统以及资源提供模块,其中所述处理器和外设系统的每一个均配置为当其需要功率和/或时钟信号时产生信号,并且,其中所述信号激励所述资源提供模块提供所请求的资源。
因此,根据本发明,本领域技术人员可以看出,资源是根据需要分配给外设,而不是通过一个“自上而下”的方案来管理。因此,控制资源分配是向下分配到外设而不是全部集中管理。通过这种方法的变化可以看出:只有外设自身具体知道何时需要不同的资源以及如何以寻求最小化功率消耗的方式来管理这些请求。此外,通过控制资源分配是向下分配到外设,至少在本发明的优选的实施例中,如果外设被添加或移除,不需要改写功率管理的代码。
所述外设可以配置为直接向资源提供模块发送资源请求信号,但在一组实施例中,外设配置为与中间主模块进行通信,所述中间主模块接收所述请求信号并向资源提供模块发送适当请求。在这种配置下,外设将与用于处理资源请求的从模块相关联。每个外设可能有一个从模块或者一个外设可能有多于一个的从模块—例如,如果外设的不同部分具有不同的功率和/或时钟需求。还可以设想如果多个外设具有共同的功率/时钟的要求,其可以共享一个从模块,尽管通常来说这不能带来优化的节约电力的全部优点,但其在本发明的一些实施例中可以达到。
在一组实施例中,每个主模块连接到多个从模块。这使得主模块可以协调来自相关联的从模块的请求。例如,如果一个或更多的从模块请求特定的时钟信号,主模块可以发出一个适当的请求到资源提供模块以提供时钟信号。在电源侧,尽管来自各个模块的请求可以每个都低于启动更高功率调节器的阈值,连接到特定主模块的所有从模块的累积需求可能比该阈值更大,这意味着主模块可以向资源提供模块发出请求,以启动更高功率模块。这将是即使没有单个外设请求更高功率调节器(其中该特性已经被提供)的情况。在一组实施例中,其中有单独的主模块直接连接到资源提供模块('上层主模块'),所述主模块配置为自动地确定多个功率调节器中哪个将被使用。这使得'上层主模块'聚合来自所有模块(可选的包括资源提供模块本身)的功率请求,并以此来确定所需功率的整体水平。上层主模块由此可以通过用功率请求包括的数据来确定各个模块要求的功率量,和/或其可以使用预存储的信息-例如在一个查找表。
在一组实施例中,主模块包括连接到每一个从模块的门电路(下文称为“时钟门”),以建立各个从模块的时钟信号的选择通道。在这样的实施例的子集中,主模块配置为,基于对时钟信号请求的接收,,在给提出请求的从模块接通所述时钟门电路之前,确保适当的时钟源是稳定的并正在运行。这有助于确保以可控的方式提供该时钟信号,而没有多余的人为控制。其中,即使已经向另一个从模块提供了所请求的时钟或另一个更准确的时钟(通常根据要提供的功率将更加昂贵),该主模块并不需要等待而可能立即接通适当的时钟门。在这种情况下,在一组实施例中,主模块配置为:在原从模块的需求已经结束后(这导致当第二个从模块请求时钟时将运行时钟)第二个从模块需要请求的时钟信号的情况下,主模块仍然向资源提供模块发出请求。
单个主模块可提供服务给所有的从模块。然而这并非必要的,且在一组实施例中至少提供两个主模块。其中,在提供了多个主模块的情况下,优选只有单个的主模块连接到资源提供模块,而一个或多个另外的主模块连接该单个的主模块。通常主模块可以连接到其它主模块,从而构成了一个灵活的系统架构。其中,主模块连接到另一个主模块,优选地的为,其直接连接到主模块的上游输出端-即所述连接不经过时钟门。这凭借外设和资源提供模块之间的任何一个连接都只通过一个时钟门实现了有利优势,从而避免了额外的延时。
所述资源请求信号可以包括仅为功率请求或仅仅针对特定的时钟信号的请求,但在一组实施例中,它们可包含这两者。在一组实施例中,功率请求包括所需要的功率等级。这可以表示为了满足特定外设的要求,是否需要一个更高功率调节器。
在一组实施例中,时钟信号的请求指示时钟的质量(quality),或所需的最低限度质量。时钟的质量可以是一个或多个其准确性、开始时间或功率消耗的函数。除了能够请求时钟信号,外设也能做出与时钟源有关的更复杂的请求。例如,在一组实施例中,外设可以请求开启特定的时钟源。这实际上将给各个振荡器通电,振荡器常常具有相关联的启动延迟(其长度取决于时钟源的类型)。通过允许外设发出请求使得时钟芯被开启,在某些情况下,外设能够使该请求比需要时钟信号的时间稍微提前,或者能够预测何时再次需要该时钟信号,以补偿启动延迟。
另外地或可选的,外设可以请求开启时钟缓冲器。这是允许某些类型的时钟源实际要提供时钟信号的必要步骤。允许外设独立地由时钟芯开启或关闭时钟缓冲器所带来的灵活性是很有优势的,因为其提供了降低功率,同时最大限度地减少启动延迟的可能性,这是因为在运行过程中缓冲器通常会消耗大部分功率,但该时钟芯通常会保持更长的通电时间。因此,根据上文所述的实施例给出的灵活性允许外设关掉缓冲器,但如果在相当短的时间内再次需要时钟信号,时钟芯将会一直运行。
在一组实施例中,该装置包括多个预定选项,其中从模块能够选择以确定所述从模块可利用的资源范围。申请人已经认识到,通过提供一定数量的预先定义的选项-以下称为“惩罚等级”(penalty levels)–给外设设备,以在延时与功耗之间提供不同的权衡,外设可以根据特殊的具体需求更切合地定制自己的功率功耗,这比全局强加方式更有效地利用功率,全局方式不可避免地涉及比绝对必要情况还使用更多的功率,例如为了满足延时的要求。在这样的实施例的一个子方案中,预定选项包括不同延时和不同的功率消耗。
因此可以看出,外设可以具有不同的状态,其在功率消耗和延时之间给出不同的权衡。这些被称为“惩罚等级”,因为他们指明了根据外设为了节约功率而准备接收所带来的延时的惩罚(同时,当然其通常要符合操作规范)。基于上面提到的关于时钟源和时钟缓冲器的选项给出一个例子,最大惩罚等级是其中的外设不做出功率或时钟请求。通常这将在外设能够完全可操作之前引起最长的延时,但当然,它不与任何显著功耗相关联。
下一个惩罚等级代表了外设请求功率但不需要时钟的情况。在它全部可操作之前产生较短的延时,但是显然以增加一些功耗为代价。
第三个惩罚等级与外设请求运行的功率和时钟源相对应。这使得延时有显著的降低,正如前面提到的,这是由于时钟源芯需要耗费相对相对长的时间来启动。然而时钟源的运行对于整体功耗有影响。
第四个惩罚等级是“零”惩罚等级,这里,外设请求功率、时钟源和时钟缓冲器的运行。一旦相应的时钟门关闭,就允许其接收时钟信号,也就是没有显著延时。
上文所列的惩罚等级因此可以看作是不同的待机状态,在待机状态不请求时钟信号但是会给出更为细化的在功耗和延时之间的权衡。
本发明实施的将资源控制移交给外设的原理将被进一步说明,其能够对其需求做出更为精细化的决策以及无需包含不可接受的操作或延时而节约整体功率消耗。在现有技术的集中控制装置中,很难管理各个外设的惩罚等级,因为,这将不得不对所述控制器的功能进行硬编码(hard-coded),并且在外设的加入或它们的操作的改变时,其将不是可扩展的。
对于给定外设在给定的时间点的惩罚等级会通过其当时能够容忍的最大延迟来确定。当然,如果时钟源或缓冲器已经正为另一个外设运行,所经历的实际延时将短于该最大值。
应该理解的是,上文所列的惩罚等级仅是源自所描述的时钟状态的说明性实例。如果有更多的或不同的时钟和/或功率状态是可用的,则更多的或不同的惩罚等级也可以是可用的。与使得外设可用的所有可能的状态组合相关联的惩罚等级并非必要,举例来讲其中有些可能是没有意义的(例如那些增加功耗,而不降低延迟的惩罚等级,反之亦然)。
如上所述,本发明允许外设在他们需要资源时在满足原则的条件下请求资源,其中该原则为该外设最好确切地知道他们需要什么样的资源,且因此可以使资源能够尽可能高效地被请求。然而,申请人已经进一步认识到,在一些情形下,第一外设知道第二外设需要资源,以便根据第一外设的请求执行操作。因此,在一组本发明的实施例中,至少一第一外设配置为激励第二外设发出资源请求。在这种实施例中,与下述情况相比,延时可以减少,该情况为第二外设接收源自所述第一外设的请求以执行操作,但第二外设在执行操作前必须请求必要的资源。这样的配置本身被认为是具有新颖性和创造性的,因此从另一方面来看,本发明提供一种微控制器器件,包括多个外设模块以及资源提供模块,其中,至少一第一外设模块被编程以执行涉及第二外设模块的任务,所述第一外设模块配置为产生信号,以激励所述第二模块产生从资源提供模块请求功率和/或时钟信号的信号。
外设模块可以包括处理器。第一外设模块可以代表第二外设模块直接向所述资源提供模块发送请求信号。然而,在另一组实施例中,第一外设模块向第二外设模块发送请求信号使得第二外设模块可以从资源提供模块请求功率和/或时钟信号。
根据本发明第一方面的一组实施例中,资源控制系统的元件可以自行关闭以节省电力。例如,其中所提供的主模块(一个或多个)和/或资源提供模块在一些情况下可被断电。在一组实施例中,当主模块处于低功率状态时,至少一主模块配置为向外设提供资源(例如功率)。这将允许,例如,整个设备进入休眠状态,但保持计时器上电以在预定的时间唤醒设备。然而,由于主模块处于低功率状态,其不能响应于资源请求信号,所以不能改变所提供资源的状态。
这种配置本身是新颖性的和有创造性,因而从另一方面来看,本发明提供一种微控制器器件,一个或多个外设系统以及一个或多个资源控制模块,用于响应于资源请求信号控制所述的外设的资源供给,其中,该资源控制模块或至少一资源控制模块具有低功率状态,在这种状态下,其不响应于资源请求信号,但会向至少一外设提供资源。优选地,该资源是功率和/或时钟信号。
在根据本发明的所有方面,可以由单个集成电路提供微控制器器件。
在根据本发明的所有方面,微控制器器件可包括无线电发射器和/或无线电接收器或配置为控制无线电发射器和/或无线电接收器。
附图说明
现在将参考附图描述本发明的某些实施例,其仅作为示例而已,其中:
图1是按照本发明的系统的架构的示意图;
图2是图1中系统所使用的主模块的示意图;
图3是可被控制的功率源的详细信息示意图;
图4示出可被控制的时钟源的详细信息示意图;
图5是图1中系统所使用的从模块的示意图;
图6和图7示出了主从模块之间控制配置的可能替代形式;以及
图8给出了各模块之间的主接口的示例构造。
具体实施方式
图1示出按照本发明的微控制器的资源控制系统的总体架构示意图。在该架构的上层是一个上层支持模块2。它包含由系统控制的功率和时钟源,这将在后面进行更详细地描述。
在上层支持模块2的下方是主模块4a。同样,这将在后面进行更详细地描述。在最上方主模块4a的下方是另一主模块4b和三个从模块6。从模块6与各种外设模块相关联,其确切特性不是十分重要的。中层主模块4b是依次连接到5个另外的从模块6,8(其中之一是主处理器模块8)和另一主模块4c。最低级的主模块4c具有与它相关联的两个其它的从模块6。
这个高层级的图示意图示出了能够实施并且适合特定应用的可能层级结构具有显著的灵活性。用于在从模块6和主模块4之间连接的时钟线通过时钟门控10构建,而一个主模块4和另一主模块之间直接连接,也即不包括时钟门控10。因此,不管层级如何,对于任何给定的从模块6,在它与上层支持模块2之间的时钟线中仅有单一的时钟门控10。
图2示出了主模块4的结构示意图。主模块4用于向从模块或连接到它的任何其它主模块分配不同的时钟、主复位和状态信息。如上所述,从模块经由各自的时钟门控10连接,其由主模块通过与每个相关联的各个状态机12进行控制。它还控制功率门控所需要的信号、产生复位、隔离和保存/恢复信号,并处理来自从模块的不同请求信号。其中一些请求信号的可以在主模块4的内部处理,一些请求信号可能会被发送到更高级的主模块,并最终发送给上层支持模块2,以使不同的振荡器、功率调节器和缓冲器被开启和关闭,下面参照图3和4进行更详细地说明。
主模块4具有多个输入和输出。上层接口14用于在更高级别中将主模块4连接到另一主模块,或者直接连接到所述上层支撑部2(参照图1)。主模块4将针对不同功率调节器、时钟源和不同功率/时钟缓冲器的请求发出到该接口,且返回的信号为针对功率和时钟的相应的不同系统时钟、不同系统复位信号和状态信号。
下部接口16(其中只示出1个)包括多个接口的总线,每个连接到主模块4的从模块6对应于一个接口。如果另一个主模块作为从属连接到这个主模块,从另一个主模块发出请求将与来自其他从模块的请求合并,并直接传到上层接口14,从上层接口14发出的对应的时钟和复位信号被直接传到下部接口用于较低级别的主模块,而无需通过时钟门控10或任何其他逻辑。
接口22是处理器的通信接口用于配置主模块和阅读状态信息。
主模块还包括集成在主模块和从模块16,64以及成对的主模块14,16之间的主接口中的输入和输出对,所述输入和输出对被称为“伙伴(buddy)”连接。这包括允许两个外设之间连接以允许一个外设激励另一外设请求资源的通信线。通过与请求外设的从模块连接的主模块的伙伴请求输出端提出请求,该请求传递给主模块的伙伴请求输入端,主模块的伙伴请求输入端是与已经为其请求资源的外设的从模块连接的主控模块的伙伴请求输入端。然后,伙伴请求信号通过其从模块6向下传递给第二外设,提示其做出相应请求。这种配置允许下述情况的延时得以减少,所述情况为当外设发起任务,该任务用于其知道将需要另一个外设以执行其需要的时钟和/或功率资源的动作。
图3示出了上层支持模块2如何处理来自主模块且代表从模块的功率请求。功率提供包括超低功率(ULP)调节器28和主电压调节器30。还设有开关32用来与特定外设的功率连接或断开。
在本实施例中,功率请求包括两个信号:核心(core)和开关(switch)。核心(core)信号用于请求接通主电压调节器30。例如,如果主模块接收来自从模块的请求或来自多于一个从模块的集合请求,该请求要求接通主调节器,此时主模块将发出核心信号。如果主调节器30没被接通,将仅由超低功率调节器28提供功率。这通常也足以在该装置的低功率休眠模式下运行该装置。最上面的或'上层'主模块4a可以集合来自所有模块的请求-例如来自外设6,微处理器8乃至上层支持模块2的请求,并使用这些自动确定是否要接通特定的调节器。
该开关(switch)信号实际上用于通过接通或关闭与它相关的电源开关32以向特定外设提供电力。
图4示出了上层支持模块2如何处理来自主模块且代表从模块的时钟请求。在这个例子中,时钟源包括较高功率,非常快速启动的低精度RC(电阻-电容)振荡器34和较低功率慢速起动的高精度石英振荡器36。RC振荡器34直接连接到公共的时钟源部分38,但该石英振荡器具有缓冲器40以放大它产生的信号。所示的开关10是设置在主模块4内的和以上参考附图2描述的时钟门控。
时钟请求信号包括三个不同的成分信号。最简单的是开关(switch)信号,主模块4使用开关信号关闭与发出请求的从模块6对应的时钟门10。核心(core)信号用于请求接通振荡器34,36中的一个或两个。核心(core)信号包括用于确定涉及哪个振荡器的参数。第三个成分信号是缓冲(buff)信号,其允许缓冲器40被接通。
如上所述,RC振荡器34具有非常快的启动时间。较低的固有延时意味着当不需要它时可以更容易地被断电。石英振荡器36具有相对长的启动时间,但缓冲器40具有更短的启动时间。这意味着,为了降低功率但同时不导入长延时,可以只给缓冲器断电而保持晶体振荡器运行。当需要石英振荡器时钟时,所述缓冲器可以简单地再次被通电,这比晶体振荡器本身必须被通电更快。
上述描述的配置给出了如何提供时钟源的良好的灵活性等级,以及特别给出了权衡的选择范围,该权衡一方面在精度和功率消耗之间进行,另一方面在延时和功率消耗之间进行。类似的,接通和关闭主电压调节器的能力提供了在延时和功率消耗之间权衡的灵活性。
在具体示例中,有四个不同的惩罚等级-即四个不同的待机状态,其中外设可以通过其从模块并依赖于外设规格(特别是关于最大可接受的延时)和它的操作状态进行选择。第一或最高的惩罚等级是其中的主调节器30处于关闭状态且时钟源34,36也都关闭。这当然具有最低的功率功耗。在下一个惩罚等级中,主调节器30是接通的,但时钟源34,36仍关闭。因此,延时低了一点,因为它仅需要对相关的时钟源34,36上电而不需对调节器30上电。当然,这可能是该调节器20相应于另一个外设的请求而通电;因而,惩罚等级表示该外设可以容忍的最大延时,但在实际它可能更短。
第三个惩罚等级是调节器30和时钟源34,36接通,但缓冲器40关闭。这允许由石英振荡器提供的时钟在需要的情况下可以快速提供,但节省了缓冲器的功率消耗。第四个惩罚等级是缓冲器40开启且仅有时钟门10打开(open)。这允许直接提供时钟源34,36中的任一个,但在时钟实际上被提供给外设的情况下只能节约很少的功率。
图5是从模块6的示意图。在每个外设中都会提供至少一个这样的从模块。在图5的右手边是从外设到从模块的多个输入。其包括:资源请求线50,它可以用来由外设请求一对具体的功率和时钟频率(其通过请求参数实现);异步资源请求线52,其允许例如激励唤醒管脚之类的异步事件以请求时钟/功率对;复位请求线54,其允许外设以请求复位;惩罚等级设置部56,其允许外设确定惩罚等级以及因此可以接受的如以所述的最大延时;以及时钟源输入58,它允许从模块指定哪个时钟源是它想接收的(而不是仅指定所需的频率作为时钟/功率对请求的一部分)。
同样在图5的右手边还有伙伴请求输入60和伙伴请求输出62。如前面所描述的,这些允许与从模块相关联的外设向另一个外设发出早期预警,其需要在伙伴请求输入上通过发送适当信号以请求资源。其通过与从模块6连接的主模块,经由与目标从模块连接的主模块,向下传到目标从模块以及对于目标外设的等效伙伴请求输出62。这允许外设提出在伙伴请求中提示的资源请求。这个过程可以在任何两个外设之间发生,因此另一个外设能够做出伙伴请求,所述伙伴请求由所述从模块6接收并通过从伙伴请求输出端62输出以提示外设做出适当的资源请求。
在图5底部示出的是连接到主模块的接口连接部64。这与附图2中示出的主模块的连接部16相对应。如主模块一样,从模块6还具有在左手边示出的配置接口65。
在框图的上部是三个输出:时钟输出66,它提供了请求的时钟给外设;复位输出68,其允许从模块传递复位信号给与时钟相关联的外设;和状态输出69,其提供了外设所请求的关于时钟和功率的状态信息。
图8示出了接口16,64的典型结构,该接口可以在主模块4a,4b,4c和从模块6之间,或在两个主模块4a,4b,4c之间,或在上层主模块4a和上层支持部2之间。在层次结构中更高层级的元件在左手边,在层次结构中更低层级的元件在右手边。图8中的最上面示出的这四个连接部70-76与功率相关。第一个是上行功率请求(PowerRequest)70,用于为先前所述的外设6请求功率。例如,这可以例如连接到外设模块6的核心功率调节器和功率开关。其他上行连接为功率消耗(PowerConsumption)72,用于指明外设的实际功耗。功率就绪(PowerReady)74为下行连接,其用来指示何时已经准备好提供所请求的功率源,以及功率域就绪(PowerDomainReady)为下行连接,其用于指示所请求的功率域已准备好了。
接下来的五个连接78-86涉及时钟。时钟请求(ClockRequest)上行连接部78可被连接到外设模块6的核心振荡器,缓冲振荡器,时钟开关(或时钟门)和异步请求功能。上行时钟请求(ClockRequest)78和时钟源(ClockSource)请求80在前面已经描述过了。下行连接部82是实际的时钟信号,同时,其他两个下行连接部84,86表示时钟和时钟源分别都在运行。
如前所述,所述请求复位(RequestReset)连接部88允许外设请求复位信号。复位下行连接部90允许适当时提供复位信号。
最后,如上所述,伙伴请求(BuddyRequest)92是在模块之间的双向连接,其允许一个模块在预期到它们被另一个模块需求的情况下请求资源。
上述实施例的一些示例性操作现在将参考全部附图进行说明。
首先,假定外设需要功率和时钟源以将其从休眠模式中唤醒。这可以是例如与连接到中级主模块4b的从模块6相关联的外设(见图1)。外设通过异步资源请求输入52和时钟源输入58向与外设相关的从模块6发出关于适当功率(指主调节器30)和适当时钟源(指晶体振荡器36)的请求。从模块6经由从-主接口64,16将此请求传送到主模块4b。与发出请求的从模块6关联的状态机12处理该资源请求。例如,如果被请求的时钟源已经被提供到另一个外设,状态机将仅引起与从模块6相关联的时钟门10打开,从而通过主-从接口16,64将时钟提供给新的外设。同样地,如果功率已经可用,其可以被立即提供。
不管所需的时钟/功率对是否已经被提供,该资源请求通过主-主接口14,16从接收主模块4b向上传递到下一级的主模块4a。接收主模块4a通过它的输出14直接将请求直接传递到上层支持模块2。上层支持模块然后对主电压调节器30和与晶体振荡器36相关联的缓冲器40通电。由于在本例子中一个外设(可以是或不是请求时钟的外设)具有根据惩罚等级输入56设定的到其从模块6的三级惩罚等级,因此振荡器自身已经运行,。这使得晶体时钟源36不必接通电源即可低延时传递,且仅关闭缓冲器40即可使石英本身稳定。
石英振荡器时钟被提供到公共的时钟源部38,从那里它们向下传递到请求主模块4b,该传递经由上层主模块2和上级主模块4a之间的接口14,以及上级和中级主模块16,14之间的接口。与发出请求的外设相关联的发出请求的主模块4b的状态机12,决定何时时钟和功率源稳定,然后打开功率开关32和时钟门10以通过其从模块提供时钟和功率到请求的外设。
如果能够由主模块4b直接提供功率和/或时钟(因为电源和/或时钟已经在运行),向上层支持模块2上传请求确保只要进行请求的外设需要,其就会持续提供,而不管原始请求资源的外设是否已经停止请求。
在另一个示范性的操作中,外设正在执行另一个外设所需任务。例如主处理器可能需要写至闪存,且因此闪存外设需要被供电并需要时钟源。可能除了其自身请求资源-或单独,例如,如果它已经在运行-主处理器通过与主处理器相关联的从模块8的伙伴请求输入60发送为闪存外设指定的伙伴请求。伙伴请求信号被向上传递到连接从模块8的主模块4b,该传递经由通用的从-主接口64,16,然后通过位于各个主模块之间的接口14,16输出到与外设闪存相连接的主模块4c。接收主模块4c然后通过主-从接口16,64将请求向下传递到与外设闪存相关的从模块6,外设然后通过前述的方式产生资源请求来对该请求进行响应。
通过使用伙伴请求系统,可以在不显著增加额外的延时的情况下提供闪存外设所需的资源。例如当被主处理器连接而无需首先等待唤醒外设闪存时,外设闪存可以准备好响应。应当理解,当然,这样的系统可以用于任何两个外设之间–上面描述的仅仅是示例。
在另一示例性操作中,主模块4本身的一部分或全部可以断电,但因此,在主模块处于休眠状态,连接到它们的一些从模块6仍继续接收功率及时钟源。例如,外设可能接收来自ULP调节器28和低功率晶体振荡器36的功率,以允许其运行在低功率模式下。当主模块4被断电时,它显然无法处理来自从模块6的任何新的请求,但是当主模块4被断电时,来自从模块的请求可能被“锁存”(latched)。在特定操作期间,给主模块4断电的能力显然增大了节约电力的范围。
图6示出了根据本发明的另一个实施例的三个主模块70,72,74的图示。特别是,连接到两个较低级别的主模块72,74的较高级别的主模块70。与上述的实施例相反,其中状态机12与每一个时钟门10(以及因此也即每个外设6)相关联,在本实施例中,一些外设被分组为处于每个主模块内功率域,由控制该功率域的所有信号的公共状态机12对该功率域提供服务。功率域对应外设组,外设组通过同一功率开关连接到同一功率调节器。因此不可能独立的接通或关闭不同的外设,但每个外设仍具有与它关联的时钟门10,因此,时钟的提供仍然被控制在独立的外设等级。
因此,在顶级主模块70中,所有的三个外设属于同一功率域以及所以主模块70都只有一个状态机12。在一个较低级别的主模块72中,有两个功率域,每一个都具有两个外设6。这些功率域中的一个可以是与较高级别的主模块相关联的一个功率域相同,或者它们两者可以是不同的。在其他较低级别的主模块74中也有两个功率域,因此也具有两个状态机12,但在这种情况下,每个功率域只有与之相关联的单一外设6。
虽然外设配置成功率域比允许每个外设控制自身功率的方式在灵活性上稍差,但其在减少状态机12的数目方面优点显著,这也降低了在集成电路上所需要的门数量,并因此所需要的整体功耗和面积也得到降低。
图7示出了另一实施例的图示,它更进一步地采用了该原理。这种配置有三个功率域,但只具有与每一功率域相关联一个状态机12a,12b,12c。状态机12a,12b,12c都位于较高级别的主模块76中,即连接到它的两个较低级别的主模块78,80不具有任何的状态机。状态机12a,12b,12c通过通用主-主接口处理来自它们各自功率域中的外设6a,6b,6c的所有请求。在这个例子中,连接到上层主模块76所有的三个外设6a和连接到一个较低级别的主模块80的外设6a中的一个形成了由第一状态机12a控制的第一个功率域。由第二状态机12b的控制的第二功率域包含连接到一个较低级别的主模块78的两个外设6b,和连接到其他更低级别主模块80的一个外设6b。由第三状态机12c的控制的第三功率域仅包括连接到一个较低等级的主模块78的两个外设6c。
对于主模块76,78,80的编码可以与它们76中的通过配置设定而简单指定为上层主模块的一个主模块相同,以允许其控制状态机。上层主模块76也是与所述上层支持模块连接一个主模块。
可以看出,如上所述的本发明的实施例,在向外设系统提供时钟和功率源时具有更大的控制和灵活性,从而允许显著节省电力。此外,该配置允许模块化的方案,这意味着,该外设可以很容易地被添加,修改或删除,而不扰乱资源控制方案或需要额外的重新编码。然而,本领域技术人员应当认识到,上述所描述的实施例仅仅是示例,并且本文所载的原理可以在各种各样的配置中使用,因此,本发明的范围并不限于所给出的实施例。
Claims (16)
1.一种微控制器器件,包括:至少一个处理器,一个或多个外设系统连接到至少一个从模块;以及资源提供模块,其中所述处理器和外设系统的每一个均配置为当其需要功率和/或时钟信号时产生信号,并且,其中所述信号激励所述资源提供模块以提供所请求的资源,其中器件另外包括两个主模块,每个主模块连接到多个从模块,第一主模块连接到资源提供模块,第二主模块连接到第一主模块以使得来自外设的请求信号通过主-主接口传递至第一主模块,所述外设连接到第二主模块。
2.如权利要求1所述的器件,其中所述的第一和第二主模块包括连接到每一个从模块的门电路,以建立到各个从模块的时钟信号的选择通道。
3.如权利要求2所述的器件,其中所述第一和第二主模块配置为,基于对时钟信号的请求的接收,在给提出请求的从模块接通所述时钟门电路之前,确保适当的时钟源是稳定的并正在运行。
4.如权利要求3所述的器件,其中,所述的第一和第二主模块配置为即使已经提供了所请求的时钟或另一个更准确的时钟,所述的主模块仍然向资源提供模块发出请求。
5.如权利要求1所述的器件,其中所述的第一主模块配置为自动地确定多个功率调节器中的哪些将被使用。
6.如权利要求1所述的器件,其中的第二主模块连接到第一主模块,使得第二主模块具有连接至所述第一主模块的上游输出端的直接直通连接。
7.如权利要求1至6任一项所述的器件,其中所述资源请求信号包括功率请求和特定时钟信号请求。
8.如权利要求1至6任一项所述的器件,其中所述资源请求信号包括功率请求,功率请求包括所需功率的等级。
9.如权利要求1至6任一项所述的器件,其中所述资源请求信号包括时钟信号请求,时钟信号请求指示所需的时钟的质量或最低限度的质量。
10.如权利要求1至6任一项所述的器件,其中所述资源请求信号包括特定的时钟源将被开启的请求。
11.如权利要求1至6任一项所述的器件,其中所述资源请求信号包括时钟缓冲器将被开启的请求。
12.如权利要求1至6任一项所述的器件,包括多个预定的选项,从模块能够选择所述预定的选项,以确定所述从模块可利用的资源范围。
13.一种如权利要求12所述的器件,所述预定的选项包括不同的延时和不同的功率消耗。
14.如权利要求1至6任一项所述的器件,其中所述资源控制系统的元件可以自行关闭以节省电力。
15.如权利要求1至6任一项所述的器件,其中第一和第二主模块的至少一个配置为当所述主模块处于低功率状态时向外设提供资源。
16.如权利要求1所述的器件,包括至少一个第一外设,其配置为激励第二外设以发出资源请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1211340.3A GB201211340D0 (en) | 2012-06-26 | 2012-06-26 | Control of semiconductor devices |
GB1211340.3 | 2012-06-26 | ||
PCT/GB2013/051597 WO2014001763A1 (en) | 2012-06-26 | 2013-06-19 | Control of semiconductor devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104412199A CN104412199A (zh) | 2015-03-11 |
CN104412199B true CN104412199B (zh) | 2018-02-06 |
Family
ID=46704250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380034054.3A Active CN104412199B (zh) | 2012-06-26 | 2013-06-19 | 半导体器件的控制 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10474592B2 (zh) |
EP (1) | EP2847647B1 (zh) |
JP (1) | JP6227640B2 (zh) |
KR (1) | KR102099301B1 (zh) |
CN (1) | CN104412199B (zh) |
GB (2) | GB201211340D0 (zh) |
TW (1) | TWI629586B (zh) |
WO (1) | WO2014001763A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015069333A (ja) * | 2013-09-27 | 2015-04-13 | 富士通セミコンダクター株式会社 | 設計方法及び設計プログラム |
US9383807B2 (en) * | 2013-10-01 | 2016-07-05 | Atmel Corporation | Configuring power domains of a microcontroller system |
US20190101969A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Control Blocks for Processor Power Management |
GB201810663D0 (en) | 2018-06-28 | 2018-08-15 | Nordic Semiconductor Asa | Peripheral Power Domains |
JP7328055B2 (ja) * | 2019-07-31 | 2023-08-16 | キヤノン株式会社 | 電子機器及び電子機器の制御方法 |
GB2587381B (en) * | 2019-09-26 | 2021-09-29 | Continental Automotive Gmbh | Remote powered bus system in a motor vehicle, master electronic control unit, slave electronic control unit and method of operating remote powered bus system |
EP4374240A1 (en) * | 2021-07-19 | 2024-05-29 | Fitbit LLC | System and methods for hardware voting-based clock control |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100419637C (zh) * | 2005-11-25 | 2008-09-17 | 鸿富锦精密工业(深圳)有限公司 | 电脑周边设备供电装置的驱动电路 |
CN102473146A (zh) * | 2009-12-31 | 2012-05-23 | 英特尔公司 | 用于高效实时平台功率管理架构的装置 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021679A (en) * | 1989-06-30 | 1991-06-04 | Poqet Computer Corporation | Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency |
JPH08152945A (ja) | 1994-11-28 | 1996-06-11 | Nec Corp | 消費電力管理装置 |
US5838171A (en) * | 1996-11-22 | 1998-11-17 | National Semiconductor Corporation | Low power real-time clock circuit having system and battery power arbitration |
US6694441B1 (en) * | 2000-11-15 | 2004-02-17 | Koninklijke Philips Electronics N.V. | Power management method and arrangement for bus-coupled circuit blocks |
US7155618B2 (en) * | 2002-03-08 | 2006-12-26 | Freescale Semiconductor, Inc. | Low power system and method for a data processing system |
EP2431839B1 (en) * | 2003-03-18 | 2015-09-23 | Panasonic Intellectual Property Management Co., Ltd. | Processor, driving method thereof, and information processing device |
US7203849B2 (en) | 2003-12-12 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | Method and system for distributing power to networked devices |
JP2005250650A (ja) * | 2004-03-02 | 2005-09-15 | Nec Electronics Corp | マルチレイヤシステム及びクロック制御方法 |
US7696641B2 (en) | 2005-02-16 | 2010-04-13 | Panasonic Corporation | Power supply control circuit and electronic circuit |
JP4551814B2 (ja) * | 2005-05-16 | 2010-09-29 | Okiセミコンダクタ株式会社 | 無線通信装置 |
US8201004B2 (en) * | 2006-09-14 | 2012-06-12 | Texas Instruments Incorporated | Entry/exit control to/from a low power state in a complex multi level memory system |
KR101266805B1 (ko) * | 2006-06-29 | 2013-05-24 | 에이알엠 리미티드 | 데이터 처리장치에서의 전력 소모 제어 |
JP5408844B2 (ja) * | 2006-07-04 | 2014-02-05 | キヤノン株式会社 | バスシステム |
KR100778114B1 (ko) * | 2006-09-18 | 2007-11-21 | 삼성전자주식회사 | 통신에러를 개선하기 위한 통신방법 및 그 통신방법이적용된 전자장치 |
US8255722B2 (en) * | 2009-03-09 | 2012-08-28 | Atmel Corporation | Microcontroller with clock generator for supplying activated clock signal to requesting module to conserve power |
JP2010282585A (ja) * | 2009-06-08 | 2010-12-16 | Fujitsu Ltd | 電力管理回路、電力管理方法及び電力管理プログラム |
JP5256253B2 (ja) * | 2009-07-17 | 2013-08-07 | 日産自動車株式会社 | 自動変速機 |
JP5610566B2 (ja) * | 2010-02-22 | 2014-10-22 | ルネサスエレクトロニクス株式会社 | 半導体装置及びデータ処理システム |
US8392696B2 (en) | 2010-04-26 | 2013-03-05 | Broadcom Corporation | Modular integrated circuit with common software |
US8726047B2 (en) | 2010-05-07 | 2014-05-13 | Samsung Electronics Co., Ltd. | System on chip, devices having the same, and method for power control of the SOC |
JP5517830B2 (ja) * | 2010-08-19 | 2014-06-11 | ルネサスエレクトロニクス株式会社 | 半導体集積回路 |
US9317639B1 (en) * | 2014-10-27 | 2016-04-19 | Freescale Semiconductor, Inc. | System for reducing power consumption of integrated circuit |
-
2012
- 2012-06-26 GB GBGB1211340.3A patent/GB201211340D0/en not_active Ceased
-
2013
- 2013-06-19 GB GB1310943.4A patent/GB2503576B/en active Active
- 2013-06-19 US US14/410,882 patent/US10474592B2/en active Active
- 2013-06-19 EP EP13731445.6A patent/EP2847647B1/en active Active
- 2013-06-19 JP JP2015519325A patent/JP6227640B2/ja active Active
- 2013-06-19 WO PCT/GB2013/051597 patent/WO2014001763A1/en active Application Filing
- 2013-06-19 KR KR1020157001977A patent/KR102099301B1/ko active IP Right Grant
- 2013-06-19 CN CN201380034054.3A patent/CN104412199B/zh active Active
- 2013-06-24 TW TW102122334A patent/TWI629586B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100419637C (zh) * | 2005-11-25 | 2008-09-17 | 鸿富锦精密工业(深圳)有限公司 | 电脑周边设备供电装置的驱动电路 |
CN102473146A (zh) * | 2009-12-31 | 2012-05-23 | 英特尔公司 | 用于高效实时平台功率管理架构的装置 |
Also Published As
Publication number | Publication date |
---|---|
GB201211340D0 (en) | 2012-08-08 |
KR20150037891A (ko) | 2015-04-08 |
US20150193357A1 (en) | 2015-07-09 |
JP2015527638A (ja) | 2015-09-17 |
KR102099301B1 (ko) | 2020-04-10 |
GB2503576B (en) | 2015-12-30 |
EP2847647A1 (en) | 2015-03-18 |
US10474592B2 (en) | 2019-11-12 |
CN104412199A (zh) | 2015-03-11 |
JP6227640B2 (ja) | 2017-11-08 |
WO2014001763A1 (en) | 2014-01-03 |
TWI629586B (zh) | 2018-07-11 |
GB2503576A (en) | 2014-01-01 |
TW201403304A (zh) | 2014-01-16 |
EP2847647B1 (en) | 2019-12-25 |
GB201310943D0 (en) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104412199B (zh) | 半导体器件的控制 | |
TWI582564B (zh) | 動態地調整非核心處理器電路之功率的技術 | |
US7032117B2 (en) | Dynamic power control in integrated circuits | |
TWI420293B (zh) | 協調鏈結電源管理的方法、設備與系統 | |
JP4837780B2 (ja) | マスタおよびスレーブを有するデータ処理デバイスにおける電力管理 | |
KR20140079417A (ko) | 상호연결 전력 관리기를 위한 장치 및 방법들 | |
KR20130036011A (ko) | 통신 포트에 대한 가변 클록 게이팅 히스테리시스를 채용하는 장치 및 방법들 | |
CN105960620A (zh) | 动态电压裕度恢复 | |
KR20130108021A (ko) | 직렬 인터페이스를 사용한 적응형 전압 스케일링 | |
CN105718020A (zh) | 半导体集成电路 | |
CN107533352B (zh) | 控制在标准状态和静态状态之间的转换 | |
CN106716390A (zh) | 频率和功率管理 | |
KR20170100036A (ko) | 통신 장치, 통신 방법 및 기록 매체에 저장된 프로그램 | |
US11068018B2 (en) | System and method for power management of a computing system with a plurality of islands | |
CN106063304A (zh) | 用于基于消息的细粒度片上系统功率门控的系统和方法 | |
US20170132021A1 (en) | System and method for power management | |
JP2000123059A (ja) | 集積回路装置の設計方法 | |
KR20160105209A (ko) | 전자 장치 및 이의 전력 제어 방법 | |
CN107205013B (zh) | 用于多个通信域的控制接口的组合 | |
CN110362187A (zh) | 用于功率管理的系统和方法 | |
US20240134718A1 (en) | Apparatus and method for synchronizing participants of a simulation | |
CN100514256C (zh) | 中央处理单元的电源管理方法 | |
CN116225153A (zh) | 芯片时钟管理方法、装置及芯片、电子设备 | |
CN111858460A (zh) | 一种fpga异构计算平台的控制方法及相关组件 | |
JPH083771B2 (ja) | 発振制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |