动态电压和频率管理的制作方法

文档序号:6348185阅读:213来源:国知局
专利名称:动态电压和频率管理的制作方法
技术领域
本发明涉及集成电路,更特别地,涉及集成电路中的动态电压和频率管理。
背景技术
随着单个集成电路“芯片”上包括的晶体管数量增加,以及随着集成电路的工作频率增加,对集成电路所消耗的功率的管理变得日益重要。如果不对功耗进行管理,则满足集成电路的热要求(例如,提供在工作过程中适当地冷却集成电路以保持在集成电路的热限度内所需的部件)可能过于昂贵或者甚至不可行。另外,在一些应用中,例如在电池供电的设备中,管理集成电路中的功耗对于提供可接受的电池寿命可能是至为关键的。集成电路中的功耗与提供给集成电路的电源电压相关。例如,很多数字逻辑电路分别以二进制一和二进制零表示电源电压和地电压(反之亦然)。当数字逻辑在工作期间评估(evaluate)时,信号频繁地从一个电压完全地转换到另一个电压。由此,集成电路中消耗的功率取决于电源电压相对于地电压的幅值。降低电源电压通常会导致功耗降低,但是也会影响数字电路工作的速度,由此可能造成在给定的工作频率(即,集成电路中的数字逻辑被时钟化的频率)下不正确的操作,或者可能降低性能。另外,随着晶体管几何结构尺寸不断减小,在晶体管没有有效地导通电流时发生的漏电流已经成为集成电路中消耗的功率的较大分量。在给定晶体管中经历的漏电流的量随着电源电压的增加而线性增加。另外,在每个新的半导体制造工艺节点(其中晶体管几何结构减小)处,漏电流增大超过有效(ON)电流(active current)。由此,随着采用更先进的工艺节点,漏电流成为越来越大的事情。由此,集成电路中的功耗可以通过降低对集成电路的电源电压来管理,但是如果电源电压被降低得太多,也会导致不正确的操作。对于给定的集成电路设计而言,针对给定工作频率发生不正确的操作的电源电压幅值逐部分地不同。例如,用于制造集成电路的集成电路制造工艺以及集成电路的工作温度的变化都可能影响发生不正确操作的电源电压幅值。因此,通过电源电压来管理功耗的努力已经被限制到跨制造工艺的所有可接受变化和所有允许的工作温度在给定频率下确保正确操作的电源电压幅值。通常,对于给定频率的电源电压在集成电路的规范中静态地给出。

发明内容
在一个实施例中,一种集成电路包括逻辑电路,耦接到所述逻辑电路的本地功率管理器以及自校准单元。所述本地功率管理器被配置为向外部电源发送对请求电源电压幅值的指示。所述自校准单元被配置为对所述逻辑电路执行测试,并且以分别更低的请求电源电压幅值重复该测试直到该测试失败。测试通过的最低请求电源电压幅值被用来生成用于所述集成电路的操作的请求电源电压幅值。在一个实施例中,一种方法包括由自校准单元以用于集成电路的分别更低的请求电源电压幅值对逻辑电路重复测试,直到该测试失败,其中所述集成电路包括所述逻辑电路和所述自校准单元。该方法还包括所述自校准单元确定所述测试通过的最低请求电源电压幅值。该方法还进一步包括所述自校准单元选择所述最低请求电源电压幅值,以生成用于所述集成电路的操作的请求电源电压幅值。在一个实施例中,一种集成电路包括多个逻辑门,该多个逻辑门物理地分布在所述集成电路的由逻辑电路所占据的区域上,所述逻辑电路执行所述集成电路的操作,其中所述多个逻辑门串联连接;和测量单元,所述测量单元耦接到逻辑门串中的第一个门以及该逻辑门串中的最后一个门。所述测量单元被配置为发起到所述第一个门的逻辑转换,并测量时间直到从所述最后一个门检测到对应的转换。测量的时间与预定时间进行比较,以调整所述集成电路的电源电压。在一些实施例中,所述预定时间可以在自校准处理过程中确定。在一些实施例中,所述预定时间可以被测量为脉冲通过串联的所有门所花费的时钟周期数。在一个实施例中,一种方法包括测量单元发起到串联连接的多个门中的第一个门的逻辑转换,所述多个门物理地分布在集成电路的被逻辑电路占据的区域上,所述逻辑电路执行所述集成电路的操作;以及所述测量单元测量时间直到从最后一个门检测到对应的转换,其中测量的时间与预定时间进行比较,以调整所述集成电路的电源电压。


以下的详细描述参照了附图,下面简要地描述附图。图1是集成电路的一个实施例的框图。图2是例示了图1所示的集成电路的测试的一个实施例的流程图。图3是例示了图1所示的自校准单元的一个实施例的操作的流程图。图4是例示了用以改变图1所示的集成电路的操作的频率的该集成电路的一个实施例的操作的流程图。图5是例示了对于一个实施例响应于各种事件而执行自校准的流程图。图6是集成电路的另一实施例的框图。图7是例示了图6所示的集成电路的测试的一个实施例的流程图。图8是例示了用以请求电源电压的集成电路的一个实施例的操作的流程图。图9是例示了用以改变图6所示的集成电路的操作的频率的该集成电路的一个实施例的操作的流程图。图10是例示了图6所示的集成电路的测试的另一实施例的流程图。图11是例示了图6所示的速度/温度补偿单元的一个实施例的操作的流程图。图12是在测试集成电路的一个实施例中可以采用的测试电压和各种电源电压下可操作的部分数的图形表示。图13是在测试集成电路的另一个实施例中可以采用的测试电压和各种电源电压下可操作的部分数的图形表示。尽管本发明易于进行各种修改和另选形式,但这里仍以示例的方式在附图中示出了本发明的具体实施方式
,并将对其进行详细描述。然而,应当理解,这里的附图和详细描述并非旨在将本发明限于所公开的特定形式,相反,其旨在覆盖落入由所附权利要求限定的本发明的宗旨和范围内的所有改进、等同和另选方案。这里采用的标题仅仅是出于组织的目的,而非意在用于限制说明书的范围。贯穿整个本申请采用的术语“可以”是以允许的含义(即,意味着有可能)使用的,而非强制的含义(即,意味着必须)使用的。类似地,术语“包括”意味着包括但不受限。各种单元、电路或其他部件可以描述成“被配置为”执行一个或多个任务。在这种上下文中,“被配置为”是结构的广义描述,一般意味着“具有如下电路”,该电路在操作期间执行一个或多个任务。因此,单元/电路/部件可以被配置为执行任务,即使是在该单元/ 电路/部件当前没有打开时。通常,形成与“被配置为”相对应的结构的电路可以包括硬件电路和/或存储可执行以实现操作的程序指令的存储器。该存储器可以包括诸如静态或动态随机存取存储器的易失性存储器,和/或诸如光学或磁性盘存储设备、闪速存储器、可编程只读存储器等的非易失性存储器。类似地,为了便于描述,各种单元/电路/部件可以被描述为执行一个或多个任务。这种描述应当被解释为包括短语“被配置为”。记载被配置为执行一个或多个任务的单元/电路/部件明确地不会援引35U. S. C §112第六款关于该单元/电路/部件进行解释。
具体实施例方式下面转向图1,示出了耦接到外部电源管理单元(PMU)/电源12的集成电路10的一个实施例的框图。在所例示的实施例中,集成电路10包括逻辑电路14、自校准单元16、 本地功率管理器18 (其可以包括自校准表20)以及频率/电压(F/V)表22。自校准单元 16和F/V表22耦接到本地功率管理器18,本地功率管理器18耦接为向PMU/电源12发送对请求电源电压幅值(Vdd请求)的指示。PMU/电源12耦接为向集成电路10提供所请求幅值的电源电压(Vdd)。在集成电路10内例示的部件集成在单个半导体衬底或芯片上。通常,自校准单元16包括随要由逻辑电路14执行的测试一起的控制电路。所述测试可以旨在练习逻辑电路14中已知的“临界(critical)”定时路径。临界定时路径可以是通过电路的期望从输入转换到对应的输出转换展现最高延迟(与其他定时路径相比)的路径,由此将是限制逻辑电路14将正确地操作的工作频率的路径。该测试的性质可以根据逻辑电路14的定义而改变。例如,如果逻辑电路14包括一个或多个处理器核,则该测试可以包括要由处理器核执行的软件程序,以及来自该程序的期望结果(例如,签名)。如果逻辑电路14包括固定功能电路,则该测试可以包括输入信号值和期望的输出信号值。在各种实施例中可以包括信号值和程序指令的组合。自校准单元16中的电路可以被配置为对逻辑电路14执行测试(例如,向处理器核提供用于执行的指令,和/或利用输入信号值驱动信号)。自校准单元中的电路还可以被配置为将结果相对于期望值进行检查。自校准单元16可以被配置为重复该测试,并且与本地功率管理器18进行通信,以请求用于每次重复的更低电源电压幅值,直到针对一次重复检测到不正确的结果。检测到测试的正确结果的最低电源电压幅值可以作为请求的电源电压幅值提供(或者可以将某个裕量加到最低电源电压幅值中以得到所要请求的幅值)。自校准单元16可以针对每个可能工作频率重复测试,或者可以响应于首次对于集成电路10 实际上请求(例如,通过软件)给定工作频率而针对该给定工作频率执行测试。在一些实施例中,通过采用自校准单元20,可以采用更小的裕量,这是因为自校准是关于安装在其将要部署到的特定设备中的集成电路10而发生的(由此,关于裕量要考虑的一些因素(例如,电源12、板设计、集成电路10的封装等中的变化)是相对固定的)。另外,在一些实施例中,此时可以测试更少的电源电压幅值,而不是在制造测试时针对最低可能电源电压进行测试,由此可以缩短制造测试时间。另外,在一些实施例中,可以随时激活自校准单元16,由此自动调整集成电路10中的老化效应。在一个实施例中,本地功率管理器18可以在自校准表20中存储由自校准单元16 提供的结果电源电压幅值。自校准表20可以是随机存取存储器、诸如寄存器的时钟化存储设备或者任何其他易失性存储器。另选地,可以采用诸如可编程只读存储器、闪速存储器等的非易失性存储器。之后,如果针对给定工作频率检测到自校准表20中的一个条目,则可以由本地功率管理器18请求该条目中记录的电源电压幅值。F/V表22可以包括多个条目,其中每个条目存储用于集成电路10的相应工作频率和用于该频率的对应电源电压幅值。工作频率可以是用于提供给逻辑电路14中的时钟化存储设备的时钟的频率。集成电路10可以在一组频率下工作(并且可以由集成电路10 支持在所述一组频率之间的切换,例如,用以允许功率管理、热管理,等等)。F/V表22可以是在对集成电路10进行制造测试期间(例如,在封装集成电路之前,例如在晶片测试时) 写入的静态表。在其他实施例中,可以在出售集成电路10以包括在设备中之前或者在将集成电路包括在这种设备中之前的任意点处执行测试。在还有其他实施例中,F/V表22 可以在自校准期间写入,该自校准可以在首次使用包括集成电路10的设备之前执行。由此,针对F/V表22中的每个频率确定的电源电压幅值可以具有与之相关联的有效防护带 (significant guardbanding),以确保在封装的电特性改变电压幅值时的正确操作、考虑热变化(例如,可以在可控温度下执行测试,以及工作温度可以比该温度更高或更低)、考虑集成电路在期望寿命中的老化效应,等等。本地功率管理器18包括被配置为从外部电源(例如,PMU/电源12)请求电源电压幅值的电路。如前所述,如果针对给定工作频率检测到自校准表20中的一个条目,则本地功率管理器18可以请求记录在该条目中的电源电压幅值。如果在自校准表20中没有发现条目,则本地功率管理器18可以针对给定工作频率读取F/V表22,并且可以从PMU/电源12请求该电源电压幅值(图1中的Vdd请求)。该请求可以按照任意希望的方式来表示。 例如,该请求可以包括多个位,支持幅值范围内的各个电源电压幅值各自被分配以所述多个位的不同编码。本地功率管理器18还可以被配置为控制工作频率之间的变化。例如,本地功率管理器18可以包括可由软件进行写入用以选择新的工作频率的寄存器或其他设施。本地功率管理器18可以检测该写入,并且可以管理从当前工作频率向新请求的工作频率的转换。 该转换可以包括改变所请求的电源电压、改变时钟电路的操作(例如,重新锁定用于生成集成电路10上的时钟的锁相环(PLL),等等),等等。由此,在一个实施例中,可以从可简单地请求新的频率并继续(例如,甚至无需进行检查以查看转换是否已经完成)的软件提取转换的详情。F/V表22可以按照任意希望的方式写入。例如,该表中的每一个条目可以包括熔丝(fuse),该熔丝可以选择性地断开以在条目中永久性地存储希望的电压幅值的指示(例如,编码为该条目中的多个位)。在其他实施例中,可以采用任意其他的非易失性存储设备。 F/V表22可以包括可经由对包括集成电路10的设备的固件的更新而进行写入的非易失性存储器。在一些实施例中,由自校准单元16执行的测试可以是可编程的,并且可以被更新。这些实施例可以允许随着更多数据变为可用的而改变测试。例如,除先前指定的临界路径之外的路径可以主导或者强烈地影响集成电路10正确地操作的电源电压。该测试可以被更新以包括新发现的临界路径。还有,在一些实施例中,该测试可以被更新以包括更适合的用以在测试期间执行的程序。逻辑电路14通常可以包括执行如下操作的电路,集成电路10就是针对该操作而设计的。例如,如果设计包括一个或多个处理器,则逻辑电路14可以包括执行处理器操作 (例如,指令取回、解码、执行和结果写入)的电路。在各种实施例中,处理器可以包括通用处理器和/或图形处理器。如果该设计包括到外围接口的桥部,则逻辑电路14可以包括执行桥操作的电路。如果该设计包括诸如分组接口、网络接口等的其他通信特征,则逻辑电路 14可以包括用于执行对应特征的电路。集成电路10通常可以被设计为提供任意组操作。 通常,逻辑电路14可以包括以下中的一个或多个的任意组合存储器阵列、组合逻辑、状态机、浮点运算器(flop)、寄存器、其他时钟化存储设备、自定义逻辑电路,等等。PMU/电源12通常可以包括能够生成由输入电压请求指示的幅值的电源电压的任意电路。该电路可以包括例如一个或多个电压调节器或者其他电源。PMU/电源12还可以包括用于系统(其包括集成电路10)的功率管理电路作为一个整体。尽管以上讨论描述了请求电源电压幅值以及PMU/电源12提供所请求幅值的电压,但是该讨论并非旨在暗示只有一个请求/提供的电压。在任何给定时间点处都可以有多个被请求和提供的电源电压。例如,可以有单独的用于组合逻辑电路的电源电压和用于逻辑电路14中的存储器电路的电源电压。在集成电路10中可以有多个能够被单独地加电和掉电的电压域,每个电压域可以包括单独的请求。本地功率管理器18可以与逻辑电路14 分开被供电。可以请求并提供任意组一个或多个电源电压。以上将电源电压的幅值描述为是被请求的,并且提供所请求幅值的电源电压。可以相对于一个基准(例如,集成电路10的地,有时称为Vss)来测量电源电压的幅值。下面为了便于描述,电压可以被描述为大于或小于其他电压。类似地,这里可以是指电压的测量结果。在这种情况下,这是大于(或者小于)其他电压的电压的幅值,或者是测量的电压的幅值。下面转向图2,示出了用于例示在封装图1所示的集成电路10之前测试该集成电路的一个实施例的流程图。图2所示的块可以在制造集成电路10期间在测试机(例如,晶片测试器)上执行。测试可以从测试集成电路10的粗略特性(块30)开始,利用各种测量结果来估计集成电路是否相对快速、相对慢速等等。例如,在一个实施例中,粗略特性可以包括测试在集成电路10处于休眠时进入到集成电路10的电流(通常称为“Idd/’测试)。较高的Iddtl 测量结果可以指示较高的泄漏(例如,“较快速”处理)。较低的测量结果可以指示较低的泄漏(例如,“较慢速”处理)。可以例如利用设置为集成电路10可允许的最大值的电源电压来执行Iddtl测试。根据粗略特性(以及根据集成电路10的测试实例的先前结果), 可以选择相对较小组的测试电源电压。也就是说,基于对具有相似粗略特性的先前部分提供可靠操作的电源电压,可以选择一小组的测试电压(块32)。例如,在一个实施例中,可以选择一组三个测试电压。图12是从快速处理(图12的左侧)到慢速处理(图12的右侧)的部分的分布的图形表示。如图12所例示的,一个实施例的测试电压可以是VpV2*V3。测试机可以加电集成电路10 (例如,利用最高的测试电压),并且可以设置测试频率(支持集成电路10的操作的频率之一——±夬34)。测试机可以针对一组测试电压中的每一个在集成电路10上运行一个或多个测试模式(块36),并且可以选择所有测试模式通过的最低测试电压(即,针对每个模式获得正确的结果——块38)。如果有更多的测试频率 (例如,还未测试的用于集成电路10的更多支持工作频率——判决块40中的“是”分支), 可以选择和测试下一个频率(块34、36和38)。一组测试电压可以包括针对每个支持的工作频率要测试的不同电压,或者可以被选择成使得针对每个支持的工作频率期望至少一个通过电源电压。一旦穷尽了测试频率(判决块40中的“否”分支),则测试机可以向F/V表 22写入频率和电压幅值(块42)。例如,熔丝可以断开以表示所支持的频率和对应的电源电压幅值。由于测试电压的数量受限,所以测试处理可能不会识别出将导致集成电路10的特定实例的正确操作的最低电源电压。然而,测试机上的时间可能受限,其总体上来说可能是重要的,尤其是在集成电路10期望以高容量制造的情况下。接下来转向图3,示出了用于例示用以执行自校准的自校准单元16(以及本地功率管理器18)的一个实施例的操作的框图。如下面更详细讨论的,自校准可以在不同的时间处执行。尽管为了易于理解按照特定顺序示出多个块,但是也可以采用其他顺序。可以在自校准单元16和/或本地功率管理器18内的组合逻辑电路中并行地执行块。块、块的组合和/或流程可以作为一个整体在多个时钟周期上流水线化(pipeline)。自校准单元16可以与本地功率管理器18通信,以指示自校准处理正在执行。另选地,本地功率管理器18可以启动自校准处理,并可以由此了解自校准正在进行中。在任一情况下,本地功率管理器18可以请求用于测试频率的在F/V表22中提供的电源电压幅值 (块50)。由集成电路10支持的每一个工作频率可以是测试频率,例如从最低频率开始。本地功率管理器18可以设置测试频率(块5 ,并且可以等待集成电路以稳定在测试频率上 (例如,对于来自PMU/电源12的电压的PLL锁定时间和/或建立时间(settling time))。 自校准单元16可以运行自校准测试(块M),并且确定逻辑电路14是产生正确的结果(通过)还是没有产生正确的结果(失败)(判决块56)。如果测试通过(判决块56中的“是” 分支),则自校准单元16可以通知本地功率管理器18,本地功率管理器18可以请求下一个更低的电源电压(块58),并且可以再次执行测试(块讨和56)。可以重复该测试,直到针对测试检测到失败结果(块54、56和58)。一旦检测到失败(判决块56中的“否”分支), 则本地功率管理器18可以在自校准表20中记录最低通过的电源电压的幅值(块60)。在一些实施例中,可以向最低通过的电源电压增加裕量,以得出要记录在自校准表中的电压幅值。另选地,可以在请求电源电压时增加裕量。如果有更多的测试频率要被自校准(判决块62中的“是”分支),则自校准处理返回到块50以进行下一个频率。否则(判决块62 中的“否”分支),自校准处理结束。下面转向图4,示出了用于例示响应于改变工作频率的请求(例如,来自在集成电路10上或包括集成电路10的系统中的其他地方上执行的软件)的本地功率管理器18的一个实施例的操作的流程图。尽管为了易于理解多个块是按照特定顺序示出的,但是也可以采用其他顺序。可以在本地功率管理器18内的组合逻辑电路中并行地执行块。块、块的组合和/或流程可以作为一个整体在多个时钟周期上流水线化。本地功率管理器18可以检查自校准表20以查找与新(所请求的)工作频率相对应的条目(判决块70)。如果找到一个条目(判决块70中的“是”分支),则本地功率管理器18可以请求在自校准表20中指示的幅值的电源电压(块72)。本地功率管理器18可以设置新的工作频率(块74),并且可以可选地根据具体实现而等待时钟电路以锁定到新的工作频率(块76)。另一方面,如果在自校准表20中没有用于所请求频率的条目(判决块70中的“否”分支),则本地功率管理器18可以确定是否应当针对所请求的频率运行自校准(判决块78)。例如,可以利用所请求的频率作为唯一的测试频率来执行图3的流程图。可以影响在频率改变期间是否执行自校准的因素可以包括逻辑电路14的当前工作负荷,系统中的整体环境(例如,温度、电池剩余寿命,等等)。例如,如果逻辑电路14包括多个处理器核并且一个核是空闲的,则可以在该空闲的处理器核上运行自校准。如果系统是以电池电力操作并且电池剩余寿命较低时,运行自校准可能会比所希望的要耗用更多的电池电力。如果本地功率管理器18确定要执行自校准(判决块78中的“是”分支),则本地功率管理器18可以调用自校准单元16来执行自校准(块80)。本地功率管理器18然后可以请求自校准表20中指示的电源电压(在完成自校准之后——块72),设置新的工作频率 (块74)以及可选地等待锁定(块76)。如果本地功率管理器18确定不要执行自校准(判决块78中的“否”分支),则本地功率管理器18可以读取F/V表22以获得电源电压幅值,并且可以请求该电源电压幅值 (块8 。本地功率管理器18可以设置新的频率,并且可选地等待锁定(块74和76)。在图4的实施例中,可以响应于没有发现自校准表20中的条目的所请求的工作频率而执行自校准。除了或者替代该操作,可以在一个或多个其他时间点调用自校准(例如, 针对一个实施例,如图5的流程图中所示)。图5中示出的流程图可以在硬件、软件和/或其组合中执行。如果包括集成电路10的系统正在首次被引导(例如,由购买该系统的消费者—— 判决块90中的“是”分支),则集成电路10可以执行自校准(块92)。通常,引导一个系统可以是指给系统加电,以及启动系统以开始操作。可以按照多种方式来作出该引导是系统的首次引导的判定。例如,可以是存储在系统的非易失性存储器中的可指示该系统正在首次被引导的标志。该标志可以由系统中的引导代码检查,并且如果该引导是首次引导的话则可以在引导代码的结尾处改变标志的状态,使得后续的引导不会被检测为首次引导。例如,该标志可以是初始被清空的位,该位在首次引导后被置位(反之亦然)。在一些实施例中,全系统重置(例如,由用户激活对设备的一个或多个输入来启动的硬重置)可以清空 “首次引导”标志,并且使得在下一次引导时发生自校准。在一些实施例中,这种操作可以改善设备的功能性。例如,如果用户由于设备被“冻结”或者以其他方式出现故障而启动硬重置,则在错误是由于集成电路10中的故障(例如,由于自校准电源电压幅值太低)导致的情况下自校准可以减缓该错误。另外,如果设备连接到网络(例如,因特网),则可以将更新的校准程序或处理自动地从设备制造商下载到设备。自校准可以响应于该更新而执行。
另选地或者另外地,系统可以确定正在首次执行给定的工作负荷(判决块94中的 “是”分支),并且可以作为响应地执行自校准(块92)。确定正在首次执行给定工作负荷可以按照多种方式实现(例如,类似于以上关于首次引导的讨论,在非易失性存储设备中针对每个工作负荷的标志)。可以例如在工作负荷显著变化的系统中采用检测不同的工作负荷。例如,该系统可以是可用作移动电话、音乐播放器、网络浏览器的移动设备,并且可以执行各种其他计算任务。工作负荷可以显著不同,并且可以要求集成电路10的不同的执行量。因此,自校准每个工作负荷可以得到附加的功率保存(例如,较轻的负荷可以得到较低的工作温度,其可以允许的电源电压幅值比较重工作负荷所允许的要低)。在又一另选方案中或者另外地,该系统可以确定该系统已经老化了一定量(判决块96中的“是”分支),并且可以作为响应而执行自校准(块92)。响应于集成电路10(和 /或包括集成电路10的设备)的老化而执行自校准可以调整集成电路10的请求电源电压幅值,以补偿芯片工艺老化效应或者其他老化效应。按照这种方式,不需要向所请求的电源电压幅值增加裕量以考虑老化效应(因为这已经随着集成电路10老化而通过重新校准被考虑了)。可以按照多种方式来测量集成电路10的寿命。例如,可以基于日历时间从首次引导的日期起测量寿命。可以从首次引导起关于操作时间来测量寿命。可以如所希望地关于时钟周期或者关于时间来测量寿命。在其他实施例中,还可以关于制造日期来测量寿命。 在任一情况下,可以在多个不同的寿命(例如,每6个月一次、每年一次,等等)处执行自校准。在其他情况下,可以在系统处于工作时动态地执行自校准,这可以有助于补偿温度效应。在多种实施例中,可以实现任意希望的一组自校准调用。下面转向图6,示出了集成电路10和PMU/电源12的另一实施例的框图。类似于图1的实施例,图6中的集成电路10的实施例包括逻辑电路14和本地功率管理器18。在一些实施例中可以包括自校准单元16和自校准表20,但是在其他实施例中可以不包括这些特征。在图6的实施例中,图1的F/V表22可以被耦接到本地功率管理器18的F/V/N表 102替代。类似于F/V表22,F/V/N表102可以包括存储频率和对应电源电压幅值的条目。 另外,这些条目可以存储下面将更详细描述的延迟测量结果(N)。如图6的实施例中所进一步例示的,集成电路10可以包括串联耦接的逻辑门104A至104H和测量单元100。到逻辑门104A的输入耦接到测量单元100,逻辑门104H的输出也耦接到测量单元100。另外,浮点运算器106存储期望的延迟测量结果(N),并且浮点运算器108存储计数器值(Ctr)。浮点运算器106和108两者都耦接到测量单元100。在其他实施例中,浮点运算器106和108 可以是任意时钟化存储设备。测量单元100可以被配置为测量通过门104A至104H的串联连接的逻辑转换的传播延迟。门104A至104H可以具有与逻辑电路14中的各种逻辑门相同的设计。因此,通过门104A至104H的传播延迟应当与逻辑电路14中的逻辑门成比例。通过测量传播延迟并将其与预定延迟进行比较,可以考虑各种因素对逻辑电路14的操作的影响。例如,可以通过测量传播延迟并将其与预定量进行比较,可以检测工作温度、老化等的影响。可以按照任意希望的单位(例如,纳秒、时钟周期,等等)来测量传播延迟。在一个实施例中,在提供给逻辑电路14的时钟的当前工作频率下关于时钟周期测量传播延迟。 因此,测量单元100可以发起到门104A至104H的串联连接的输入(即,图6的门104A的输入)的逻辑转换(例如,0到1或者1到0转换),并且可以对时钟周期进行计数,直到在串联连接的输出(即,图6中的门104H的输出)处检测到对应的转换。在一个实施例中, 可以发送包括两个逻辑转换(例如,0到1并且再次回到0)的脉冲。浮点运算器108中的计算器Ctr可以在发起逻辑转换时被清空,并且可以每时钟周期地递增,直到检测到对应的转换。如果电源电压正在提供支持当前工作频率的延迟,则浮点运算器106可以存储期望发生的时钟周期的预定数量(N)。如果时钟周期的测量数量高于预定数量N,则可以增大电源电压以降低延迟。如果时钟周期的测量数量低于预定数量N,则可以减小电源电压以增大延迟(并且消耗更少的电力)。串联连接的门的数量可以显著地大于在提供给逻辑电路14的时钟的时钟周期内可以评估的门延迟的数量。例如,串联的门的数量可以是一个时钟周期中门延迟的数量的大约100倍。因此,如果在时钟周期中可获得14个门延迟,则在门104A至104H中可以串联有大约1400个门。采用大数量的门可以改善测量延迟与在逻辑电路14中实际发生的电路延迟的匹配。另外,由于本实施例关于时钟周期来计数延迟,所以大数量的门可以减少由于时钟周期粒度而发生的测量错误。例如,在是一个时钟周期中的门延迟数量的100倍下, 延迟中的一个全时钟周期的错误(最大可能错误)仅为测量结果的1%。尽管在本实施例中采用100,但是在其他实施例中还可以采用更大或更小的数量(例如,200、500、100、50,等等 。可以在集成电路的制造测试期间测量预定数量N。预定数量N通常被期望为接近用于生成门的串联连接的门延迟的数量的倍数(例如,在上例中为100),但是也可以稍微不同于该数量。在一个实施例中,预定数量N可以随针对给定工作频率的静态电源电压幅值一起存储在F/V/N表102中。表中可以存储一个N,或者在多种实施例中可以针对每个工作频率(在与该工作频率相对应的条目中)有一个N。门104A至104H可以物理地分散在集成电路10中被逻辑电路14占据的区域上。 因此,可以在传播延迟中表示可能在集成电路芯片的表面区域上发生的工艺特性和/或工作温度中的变化。即,每一组一个或多个门104A至104H会受这些门104A至104H所位于的物理区域本地的工作温度和/或工艺特性影响。在一个实施例中,可以从“闲置(spare) 门”中选择门104A至104H,在整个集成电路10中通常包括“闲置门”,以允许通过改变集成电路的布线层来修复逻辑电路14中的逻辑错误。即,闲置门不是初始布线到逻辑电路14 中的并且没有被使用。如果检测到逻辑中的错误,则可以将闲置门布线到逻辑电路14中以产生正确的逻辑功能。可以在闲置门中包括多种不同的逻辑门,以增加可以产生正确的逻辑功能的概率。因此,未使用的闲置门可以有多种,并且可以布线在一起以生成规模与逻辑电路14类似的门104A至104H的串联连接。通过从闲置门中实现门104A至104H,门104A 至104H可以不添加到集成电路10所用的半导体区域。另外,主要是数字电路采用逻辑门104A至104H的串联连接来感测延迟。因此,在一些实施例中,采用该电路相比于逻辑电路可以是相对简单且低功率的。测量单元100至少包括被配置为发起转换且测量传播延迟的电路。在一些实施例中,测量单元100还可以包括被配置为确定何时进行测量的电路,和/或被配置为将传播延迟与期望值进行比较的电路。另选地,该确定可以在本地功率管理器18中或者在软件中进行。通常,逻辑门可以包括用以接收到一个或多个输入且被配置为对输入执行逻辑功能以提供一个或多个输出的电路。一个或多个这种门可以被包括在每一组门104A至104H 中。应当注意,尽管为了方便起见在图6中门104A至104H出现在逻辑电路14的外围附近, 但是通常这些门可以散布在逻辑电路14区域中,如前所述。尽管对图6的以上讨论描述了请求电源电压幅值以及PMU/电源12提供所请求幅值的电压,但是该讨论并非旨在暗示只有一个请求/提供的电压。在任何给定时间点处可以有多个请求和提供的电源电压。例如,可以有单独的用于组合逻辑电路的电源电压和用于逻辑电路14中的存储器电路的电源电压。在集成电路10中可以有多个能够被单独地加电和掉电的电压域,并且可以具有单独的测量单元和串联的逻辑门串。每个这种电压域可以包括单独的请求。本地功率管理器18可以与逻辑电路14分开被供电。可以请求并提供任意组一个或多个电源电压。此外,在一个实施例中,可以在一个电压域中实现多于一个门串来建模不同类型的延迟。例如,可以单独地建模逻辑门延迟和寄存器文件延迟。下面转向图7,示出了用于例示在封装集成电路之前测试如图6所示的集成电路 10的一个实施例的流程图。图7所示的块可以在制造集成电路10期间在测试机(例如,晶片检测器)上执行。类似于图2的实施例,测试可以通过测试集成电路10的粗略特性(例如,1_测试)(块30)开始,并且可以选择一组测试电压(块32)。测试器可以设置第一测试频率(块 34),并且可以针对一组测试电压中作为电源电压的每一个电压运行测试模式(块36)。在该实施例中,该测试可以包括激活测量单元100。对于每一个测试电压,测试器可以读取在测试期间由测量单元100测量的延迟的时钟周期数“N”(即,计数器浮点运算器108的值)。 该测试器可以针对每个测试电压记录所测量的N(块110)。然后该测试器可以选择测试通过的最小电源电压幅值,以及对应的“N”(块112)。如果有更多的测试频率(例如,还未测试的用于集成电路10的更多支持工作频率——判决块40中的“是”分支),则可以选择和测试下一个频率(块34、36、110和112)。 该组测试电压可以包括要针对每个支持工作频率测试的不同电压,或者可以被选择为使得针对每个支持工作频率期望至少一个通过电源电压。一旦穷尽了测试频率(判决块40中的“否”分支),则测试机可以向F/V/N表102写入频率、电压幅值和“N”的值(块114)。在一些实施例中,可以向要写入到表中的测量的“N”增加裕量。另选地,可以向从该表读取的“N”增加裕量,以将“N”写入浮点运算器106。类似地,可以向写入到表中的电源电压幅值增加裕量,或者可以由本地功率管理器18在从表中读取幅值之后增加裕量。下面转向图8,示出了用于例示用以确定是否要调整电源电压幅值的如图6所示的集成电路10 (更具体而言,是测量单元100和本地功率管理器18)的一个实施例的操作的流程图。图8的操作可以在集成电路10处于工作时定期地(例如,取决于系统的热惯性, 在一个实施例中为近似每10微秒到1毫秒一次)执行。图8的操作可以在工作负荷变化 (例如,从电话机到音乐播放器或者移动因特网接入设备)之后执行。图8的操作也可以作为改变工作频率的一部分来执行。为了易于理解多个块是按照特定顺序示出的,但是也可以采用其他顺序。可以由测量单元100/本地功率管理器18内的组合逻辑并行地执行块。 块、块的组合和/或流程可以作为一个整体在多个时钟周期上流水线化。本地功率管理器18可以激活测量单元100,该测量单元100可以感测门104A至 104H的串联连接中的电流传播延迟(“N”)(块120)。在一些实施例中,本地功率管理器18和/或测量单元100可以过滤结果(块12幻。具体而言,例如,过滤可以包括检测在连续测量之间的N的值的振荡。会发生振荡是因为传播延迟接近时钟周期的整数(由此有时是在M个时钟周期中捕捉的,而在其他时间是在M+1个时钟周期中捕捉的)。振荡的发生还可以是因为所请求的电源电压正在按照振荡方式增大和减小。如果测量单元100检测到测量的“N”大于来自F/V/N表102的“N” (判决块IM 中的“是”分支),则本地功率管理器18可以增加发送到PMU/电源12的所请求的电源电压幅值(块126)。例如,可以请求下一个更高的电源电压幅值。如果测量单元100检测到测量的“N”小于来自F/V/N表102的“N” (判决块128中的“是”分支),则本地功率管理器 18可以减小发送到PMU/电源12的所请求的电源电压幅值(块130)。可以重复图8的操作,直到所请求的电源电压幅值被建立(settle),或者可以如所希望地在下一次测量时重
Μ. ο下面转向图9,示出了用于例示响应于改变集成电路10中的频率的请求的集成电路10 (更具体而言,是本地功率管理器18和测量单元100)的一个实施例的操作的流程图。 为了易于理解多个块是按照特定顺序示出的,但是也可以采用其他顺序。可以由测量单元 100/本地功率管理器18内的组合逻辑并行地执行块。块、块的组合和/或流程可以作为一个整体在多个时钟周期上流水线化。如果改变频率的请求是从当前工作频率增加(判决块140中的“是”分支),则可以以新(请求的)频率与旧(当前频率)的比值来缩放浮点运算器106中的N的值(块 142)。例如,如果当前频率是IGHz且新频率是1. 5GHz,则N的值可以以1. 5来缩放。本地功率管理器18和测量单元100可以重复图8的调整电源电压处理,直到来自测量单元100 的测量的N与缩放后的N匹配(块144)。在一些实施例中,可以向缩放后的N增加裕量,以确保增加的电源电压幅值足以支持新改变的频率。一旦满足缩放后的N,则本地功率管理器 18可以设置新的频率(块146),并且可以等待时钟产生电路来锁定到新的频率(块148)。 新的N可以从F/V/N表102中读取,并且可以被写入到浮点运算器106中(块150)。如果改变频率的请求是从当前工作频率减小(判决块140中的“否”分支),则本地功率管理器18可以设置新的频率(块146),而不缩放N和调整电源电压(块142和144)。 由于电源电压已经高到足以支持更高的当前频率,所以集成电路10将在新的频率下正确地操作。随后的定期测量和调整(例如,图8)可以降低电压。在其他实施例中,还可以针对较低的新频率缩放N并调整电压(块142和144),在这种情况下,对电源电压的调整将是减小。在一些实施例中,调整电源电压幅值的处理(块144)可以以针对新频率从F/V/N 表102 (或者自校准表2 读取电源电压幅值并通过从该表请求电源电压幅值来初始化所述处理开始。接下来转向图10,示出了用于例示在封装集成电路之前测试如图6所示的集成电路10的另一实施例的流程图。图10所示的块可以在制造集成电路10期间在测试机(例如,晶片检测器)上执行。类似于图2的实施例,测试可以通过测试集成电路10的粗略特性(例如,1_测试)(块30)开始。另外,可以利用设置为其最大可能值(根据集成电路10的规格)的电源电压来激活测量单元100 (块160)。在最大可能值处的N的测量结果可以是对集成电路10的“速度”的指示,并且可以用于选择一组测试电压(块162)。按照这种方式,所选的测试电压可以更接近对于给定频率的最佳电压,其可以允许在短测试时间量中的细粒度电压测试,并且所得的电源电压幅值接近用于集成电路10的最佳值。因此,当电源电压被设定为表中的电压时,集成电路10在给定频率下可以消耗更少的电力(与次最佳测试策略相比)。 另外,还可以采用相对小的一组电压,从而减小测试时间。例如,图13是从快速处理(图13 的左侧)到慢速处理(图13的右侧)的部分的分布的图形表示。利用最大电压(最右侧的虚线),可以测量N。基于所测量的N,可以选择期望工作点附近的一小组测试电压,并且可以在这些电压(图13底部的大括号)下测试集成电路10。随后,类似于图7的实施例,设置第一测试频率(块34),并且可以针对一组测试电压中作为电源电压的每一个电压运行测试模式(块36)。测试可以包括激活测量单元100。 对于每一个测试电压,测试器可以读取在测试期间由测量单元100测量的延迟的时钟周期数“N” (即,计数器浮点运算器108的值)。该测试器可以针对每个测试电压记录所测量的N (块110)。然后该测试器可以选择测试通过的最小电源电压幅值,以及对应的“N” (块 112)。如果有更多的测试频率(例如,还未测试的用于集成电路10的更多支持工作频率——判决块40中的“是”分支),则可以选择和测试下一个频率(块34、36、110和112)。 该组测试电压可以包括要针对每个支持工作频率测试的不同电压,或者可以被选择为使得针对每个支持工作频率期望至少一个通过电源电压。一旦穷尽了测试频率(判决块40中的“否”分支),则测试机可以向F/V/N表102写入频率、电压幅值和“N”的值(块114)。在一些实施例中,可以向要写入到表中的测量的“N”增加裕量。另选地,可以向从该表读取的“N”增加裕量,以将“N”写入浮点运算器106。类似地,可以向写入到表中的电源电压幅值增加裕量,或者可以由本地功率管理器18在从表中读取幅值之后增加裕量。接下来转向图11,示出了用于例示用以执行测量的测量单元100的一个实施例的操作的流程图。测量单元100可以例如响应于本地功率管理器18启动测量而执行图11中所例示的操作。为了易于理解多个块是按照特定顺序示出的,但是也可以采用其他顺序。可以由测量单元100内的组合逻辑并行地执行块。块、块的组合和/或流程可以作为一个整体在多个时钟周期上流水线化。测量单元100可以清空浮点运算器108中的计数器(附图标记为170),并且可以发起到门104A至104H的串联连接(串)的逻辑转换(块172)。如果测量单元100在串的输出处还未检测到对应的逻辑转换(判决块174中的“否”分支),则测量单元100可以递增计数器(块176),并且等待下一个时钟周期来再次检测转换(块178)。如果测量单元 100已经检测到对应的转换(判决块174中的“是”分支),则测量单元100可以将计数器与浮点运算器106中的N进行比较,并将结果报告给本地功率管理器18 (块180)。对于本领域技术人员来说,一旦充分理解了以上公开,各种变型和修改将是显而易见的。以下的权利要求旨在解释为包含所有这种变型和修改。
权利要求
1.一种集成电路,包括逻辑电路;耦接到所述逻辑电路的本地功率管理器,该本地功率管理器被配置为向外部电源发送对请求电源电压幅值的指示;以及在所述集成电路内的自校准单元,该自校准单元被配置为对所述逻辑电路执行测试, 其中该自校准单元被配置为以分别更低的请求电源电压幅值重复该测试直到该测试失败, 并且测试通过的最低请求电源电压幅值被用来生成用于所述集成电路的操作的请求电源电压幅值。
2.如权利要求1所述的集成电路,还包括电源电压幅值的静态表,其中该静态表的内容是在对所述集成电路进行制造测试期间确定的,并且所述本地功率管理器被配置为从所述静态表读取初始电源电压幅值。
3.如权利要求1所述的集成电路,其中,所述集成电路能在多个时钟频率下工作,并且所述自校准单元被配置为针对所述多个时钟频率中的每一个以分别更低的电源电压幅值重复所述测试,以针对所述多个时钟频率中的每一个确定最低的请求电源电压幅值。
4.如权利要求1所述的集成电路,其中,所述自校准单元被配置为响应于对包括所述集成电路的设备的初始引导而重复所述测试。
5.如权利要求4所述的集成电路,其中,所述自校准单元被配置为响应于所述集成电路的寿命超过规定量,而重复所述测试并确定所述最低请求电源电压幅值。
6.如权利要求1所述的集成电路,其中,所述自校准单元被配置为响应于所述逻辑电路执行不同的工作负荷,而重复所述测试并确定所述最低请求电源电压幅值。
7.一种方法,包括由自校准单元以用于集成电路的分别更低的请求电源电压幅值对逻辑电路重复测试, 直到该测试失败,其中所述集成电路包括所述逻辑电路和所述自校准单元;所述自校准单元确定所述测试通过的最低请求电源电压幅值;所述自校准单元选择所述最低请求电源电压幅值,以生成用于所述集成电路的操作的请求电源电压幅值。
8.如权利要求7所述的方法,还包括从静态表读取初始请求的电源电压幅值,其中,所述静态表的内容是在对所述集成电路进行制造测试期间确定的。
9.如权利要求7所述的方法,其中,所述集成电路能在多个时钟频率下工作,所述方法还包括所述自校准单元针对所述多个时钟频率中的每一个重复所述重复、所述确定和所述选择。
10.如权利要求7所述的方法,所述方法是响应于对包括所述集成电路的设备的初始引导而执行的。
11.如权利要求10所述的方法,所述方法是响应于所述集成电路的寿命超过规定量而执行的。
12.如权利要求7所述的方法,所述方法是响应于所述逻辑电路执行不同的工作负荷而执行的。
13.一种集成电路,包括多个逻辑门,该多个逻辑门物理地分布在所述集成电路的被逻辑电路所占据的区域上,所述逻辑电路执行所述集成电路的操作,其中所述多个逻辑门串联连接成逻辑门串;和测量单元,该测量单元耦接到所述逻辑门串中的第一个门以及该逻辑门串中的最后一个门,其中,所述测量单元被配置为发起到所述第一个门的逻辑转换,并测量时间直到从所述最后一个门检测到对应的转换,其中,测量的时间与预定时间进行比较,以调整所述集成电路的电源电压。
14.如权利要求13所述的集成电路,其中,所述测量的时间和预定时间是按照所述集成电路的时钟的时钟周期测量的。
15.如权利要求14所述的集成电路,其中,所述预定时间是在对所述集成电路进行制造测试期间设置的。
16.如权利要求14所述的集成电路,还包括耦接到所述测量单元的本地功率管理器, 其中,该本地功率管理器被配置为响应于所测量的时钟周期数小于预定数量而请求减小的电源电压幅值。
17.如权利要求16所述的集成电路,其中,所述本地功率管理器被配置为响应于所测量的时钟周期数大于所述预定数量而请求增大的电源电压幅值。
18.如权利要求14所述的集成电路,其中,响应于对用于所述集成电路的大于当前工作频率的新工作频率的请求,所述测量单元被配置为以该新工作频率与当前工作频率的比值来缩放预定数量,并且所述集成电路还包括本地功率管理器,该本地功率管理器耦接到所述测量单元并配置为向外部电源发送对所请求的电源电压幅值的指示,并且所述本地功率管理器被配置为请求增大的电源电压幅值,直到由所述测量单元计数的时钟周期数近似地等于经缩放的预定数量。
19.一种方法,包括测量单元发起到多个门的串联连接中的第一个门的逻辑转换,所述多个门物理地分布在集成电路的被逻辑电路占据的区域上,所述逻辑电路执行所述集成电路的操作;以及所述测量单元测量时间直到从最后一个门检测到对应的转换,其中测量的时间与预定时间进行比较,以调整所述集成电路的电源电压。
20.如权利要求19所述的方法,其中,所述测量的时间和预定时间是按照所述集成电路的时钟的时钟周期测量的。
21.如权利要求20所述的方法,还包括响应于由所述测量单元计数的时钟周期数小于预定数量而请求减小的电源电压幅值。
22.如权利要求21所述的方法,还包括响应于由所述测量单元计数的时钟周期数大于所述预定数量而请求增大的电源电压幅值。
23.如权利要求20所述的方法,还包括接收用于所述集成电路的新工作频率的请求,所述新工作频率大于当前工作频率;响应于所述请求,所述测量单元以该新工作频率与当前工作频率的比值来缩放预定数量;请求增大的电源电压幅值,直到测量的时钟周期数近似地等于经缩放的预定数量。
全文摘要
在一个实施例中,一种集成电路包括自校准单元,该自校准单元被配置为以分别更低的电源电压幅值对所述集成电路中的逻辑电路重复测试直到该测试失败。采用测试通过的最低电源电压幅值来生成用于所述集成电路的请求电源电压幅值。在一个实施例中,一种集成电路包括物理地分布在所述集成电路的区域上的多个逻辑门的串联连接;和测量单元,所述测量单元被配置为发起到逻辑门串的逻辑转换,并检测在逻辑门串的输出处的对应的转换。发起与检测之间的时间量用来请求用于集成电路的电源电压幅值。
文档编号G06F1/32GK102301308SQ201080005677
公开日2011年12月28日 申请日期2010年1月22日 优先权日2009年1月28日
发明者V·R·万卡纳尔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1