具体实施方式
本发明的实施例提供了这样的技术和系统,借此当一电子装置已离开制造商的控制后可控制对该电子装置的特定特征的操作和/或访问。该装置可包括一组非易失性存储元件,例如可被编程以控制对这些特征的操作或访问的电可编程熔丝(下文中称为eFUSE)。根据某些实施例,可由制造商启动有目的的一组重新配置以便使能芯片功能和/或最小化数据瓶颈以减少测试成本。对于某些实施例,可在制造测试期间确定每个装置的功率和性能装置特征,并且可随后相应地配置每个装置以用于特定应用。
在下文中,参考本发明的实施例。但是,应当理解本发明不限于所描述的特定实施例。相反地,以下特征和要素的任何组合,不管是否涉及不同的实施例,都被认为实现和实施了本发明。此外,在各实施例中,本发明提供了相对于现有技术的许多优点。然而,尽管本发明的实施例可获得相对于其他可能解决方案和/或现有技术的优点,一特定优点是由否一给定实施例实现并非本发明的限制。因此,下述方面、特征、实施例和优点仅是示例性的,而不被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。类似地,对于“本发明”的提及不应被认为是对这里公开的任何发明主题的概括,并且不应被认为是所附权利要求的要素或限制,除非在权利要求中明确陈述。
本发明的实施例一般包括这样的方法和系统,其被配置为通过在集成电路上的用来在制造过程中测试该装置的接口来提供对该装置内的特定内部部件即包含专用信息的指定的内部存储器的受限制的访问。可在制造过程中允许对装置的内部部件的访问,因为直到装置制造过程包括装置的测试完成,一般不使能本发明方法和系统。在装置的制造过程完成后,激活本发明的方法和系统。此后,不允许对该装置的内部部件的非授权访问。
本发明的一个实施例可实现为一种用来与计算机或微处理器类型的系统一起使用的程序产品。该程序产品规定了实施例的功能(包括这里描述的方法),并可包含在各种信号承载介质中。示例性的信号承载介质包括但不限于:(i)在非可写存储介质(例如,计算机中的诸如可由CD-ROM驱动器读取的CD-ROM盘的只读存储器装置)中永久性地存储的信息;(ii)存储在可写存储介质(例如,软件驱动器中的软盘或硬盘驱动器)中的可更改信息;以及(iii)由通信介质,例如通过计算机网络或电话网络包括无线通信,传送给计算机的信息。后一实施例具体包括从因特网或其他网络下载的信息。这种信号承载介质,当载有引导本发明的功能的计算机可读指令时,代表本发明的实施例。
图1示出了一示例性制造配置100,其中一晶片或衬底包含根据本发明的实施例将由外部测试模块110测试的集成电路装置120。该测试模块110一般包括被配置为在该集成电路装置120上启动测试序列的硬件和测试执行软件112的任何适当的组合。尽管在图1的实施例中仅示出了一个集成电路装置120,该集成电路装置120可以是衬底111上的很多这种装置120中的一个。此外,各装置120中的一个或多个可由测试模块110或者串行地或者并行地测试。此外,熔丝部分146可如图所示位于芯片上,或者它可在衬底111上的各装置120中被共享(即可通过共享的“熔丝盒”来完成处理器内核的个别化)。
每个集成电路装置120一般包括一测试接口140。该测试接口140被配置为与外部测试模块110通信,并被配置为从其接收测试指令、测试数据串或模式等。测试接口140一般包括内部访问控制电路142,该控制电路被配置为根据预定算法、处理序列或控制方案控制信号通过该接口140。该测试接口也与一个或多个内部存储装置例如内部寄存器130和/或非易失性存储元件150通信。该非易失性存储元件150可包括任何类型的非易失性存储元件,其中包括任何类型的只读存储器(ROM)元件,包括磁性随机存取存储器(MRAM)的非易失性可再写存储元件,或任何类型的熔丝,例如电可编程熔丝(eFUSE),包括反熔丝(antifuse)或激光熔断熔丝。
非易失性存储器150通常具有存储在其中的访问代码154。对于某些实施例,所述访问代码154可作为制造过程的一部分被存储在非易失性存储器150中(例如,在完成测试时,测试器110可将所述访问代码“写”到该非易失性存储器中)。对于其他实施例,可在制造该装置120时存储所述访问代码。在任何情况下,可由制造商维护对应的一组访问代码114(例如,在测试器110中或测试器110一般可访问的其他存储元件中)。这样,当制造商在制造过程完成后希望访问该装置120时,也就是当该装置120在现场遇到故障时,可使用该测试模块110并结合对应于该特定装置的存储的访问代码114来测试该装置120,以确定故障原因。更具体地,可将访问代码114发送到接口访问控制电路142,该控制电路可被编程为比较所述访问代码114与所存储的访问代码154。如果所提供的代码114与所存储的代码154匹配,则所述控制电路142将允许访问该装置120的内部部件,即寄存器130,从而允许分析在现场发生故障的装置120。所述访问控制电路142可进一步包括一个或多个锁寄存器144,所述锁寄存器被配置为接收外部提供的访问代码114,并比较外部提供的代码114与内部存储的代码154。对于某些实施例,锁寄存器144可由担当一移位寄存器的一串联寄存器串构成。在任何情况下,锁寄存器144可被认为是一般可通过接口140访问的内部寄存器。当外部装置试图访问内部寄存器130时,所述访问控制电路142可比较在锁寄存器144中接收到的访问代码和在非易失性存储器150中存储的一个或多个访问代码154,以确定对所述寄存器的访问是否是被授权的。
在本发明一个实施例中,集成电路装置120包括至少一个eFUSE 146,该至少一个eFUSE可包括一eFUSE排或阵列146。每一个eFUSE 146一般包括一可编程元件,该元件在该装置120的制造和测试过程完成后被编程。将eFUSE 146编程为或者原样的或者熔断的,其中原样的eFUSE在正常装置操作参数下是导电的,而熔断的eFUSE在正常装置操作参数下通常是不导电的。可使用eFUSE 146的导电的或原样的状态生成数字应用的高的或正的逻辑状态,并使用熔断的或非导电的状态来代表低的或负的数字逻辑状态。
eFUSE 146一般代表仅可被编程一次并且通常不可逆转或重新设置的电可控制或可编程eFUSE。对于某些实施例,可如在C.Kothandaraman和S.Iyer的“Electrically Programmable Fuse(eFUSE)UsingElectromigration in Silicides”,IEEE Electron Device Letters,Vol.23,No.9,2005年9月中所描述的那样形成和操作所述eFUSE。如该文中所描述的,eFUSE 146的结构可基于涂敷于一薄的阻性层(通常为一纳米结构)上的一薄的导电层(通常也为一纳米结构)的电迁移特性。该薄的导电层具有通过其中的电流,该电流建立一温度梯度,并使得导电材料迁移到阻性材料的一端。这种移实质上断开了由所述导电层生成的电路,因而熔断或编程该eFUSe。
图2A描述了本发明的示例性eFUSE 146的剖面图。eFUSE 146一般包括在一氮化物上层203和一高电阻性多晶硅线201之间形成的一导电金属硅化物层202。如在示出了原样位置的该eFUSE 146的图2B的俯视图中所描述的,硅化物202可在阳极204和阴极206之间形成一相对薄的导电熔丝连接208。该熔丝连接208可通过在阳极204和阴极206之间施加一预定电压(例如使用图3所示的eFUSE控制逻辑310)而被熔断。对于不同的实施例,确切的电压和暴露时间可以不同。对于某些实施例,在约200毫秒的时间里驱动约2.5-3.5伏的约10毫安的电流通过硅化物层202将造成硅化物层202和多晶硅线201的温度升高,这会建立一温度梯度。由于电迁移原理,该温度梯度造成硅化物层202迁移到多晶硅线201的一端,然而,只要多晶硅线201保持是热的、本征的和导电的,则通过硅化物层202的电流就会维持下去。所述温度梯度迫使硅化物层202的电迁移完成,即将熔丝连接208中的大部分硅化物202驱向多晶硅层201,从而产生如图2C所示的熔断的熔丝的不导电的耗尽部分209。硅化物层202向多晶硅线201的一侧的迁移实质上断开了在正常操作条件下穿过一般为阻性的多晶硅线201的电路。当电迁移过程接近完成时,在多晶硅线201的一端形成了一没有导电硅化物202的区域,该区域所起的作用是断开或熔断通过多晶硅线201的导电路径。然后各部件冷却,并且该eFUSE剩下了具有不连续的导电硅化物202涂层的高阻性多晶硅线(导电硅化物202已迁移到多晶硅线的一端,并使该线相对的一端裸露)。这实质上由于导电硅化物202涂层的缺乏而在线材料中造成了断路或熔断eFUSE的状况。尽管在图2A-2C的示例性eFUSE 146中描述了特定材料或材料的特定配置,本发明的实施例并非旨在限于这些材料或配置,或任何特定的材料或配置,因为发明人认识到也可能有效地使用其他材料和配置。
由于eFUSE 146的结构仅要求纳米结构的线材料(一种阻性材料)具有纳米结构的硅化物层(一种导电材料)保形地覆于其上,eFUSE技术足够小以至于可用于基于纳米技术的装置上,在这样的装置上传统的激光熔丝由于物理尺寸要求而不现实。对eFUSE的编程也比传统的激光熔丝更容易和更芯片友好(chip friendly),就是说,与传统的激光编程的熔丝相比,eFUSE 146通常需要相对低的(电)能量水平来进行编程,而所述激光编程的熔丝要求更多得多的(光)能量水平,这在激光熔丝被熔断时经常造成有害的微粒散布。此外,激光熔断熔丝通常仅在制造过程中(例如在晶片测试阶段)可编程,而不是在发运后可编程。
本领域的技术人员将认识到所述eFUSE 146可如上所述在初始处于导电状态,并被编程到非导电(熔断)状态,或者作为另一种选择,可初始处于非导电状态,并被编程到导电状态(这后一种eFUSE通常称为反熔丝)。反熔丝通常包括两个由一绝缘体分开的导体。编程是通过在绝缘体中形成一导电迹线,从而将开路元件改变为导电元件实现的。反熔丝的例子在相同专利权人拥有的美国专利No.6753,590中作了详细描述,该专利被全文并入本文作为参考。
A.防止篡改或黑客侵入装置的e-FUSE
返回图1,可将一eFUSE 146安置为与访问控制电路142通信。在本发明的一个实施例中,可将eFUSE 146串行地安置于测试接口140的I/O线161和访问控制电路144之间,例如,在测试接口140与外部世界之间传送的所有信号都要求经由I/O线161在eFUSE 146中通过。在这种配置中,可在将装置120从制造商处发运走之前熔断eFUSE 146,这就禁止了通过测试接口140对装置120的内部部件的访问。类似地,可将eFUSE 146与测试接口140的所选输入引脚串行地安置。该所选输入引脚可以是获得到该装置120(例如,JTAG接口)中特定信息的访问所需的一预定引脚,并因此,当eFUSE 146被熔断时,就不再可能对该信息进行非授权访问。在这种配置中,可以仍然使用其余的到测试接口140的输入或引脚,即仍可使用可用于进行不允许访问受限制或专有信息的测试过程的引脚。
在本发明的另一个实施例中,一eFUSE 146排可与锁寄存器144通信。可在工厂对该eFUSE 146排编程以包含内部存储的访问代码154。在这种配置中,eFUSE146被用作代码存储元件。然而,eFUSE 146的配置可使得黑客更难于获得对内部访问代码154的访问,因为可将eFUSE 146配置为用于有限的访问,例如仅在芯片启动时的访问。这样,黑客将必须在每一次不成功地试图访问存储在eFUSE 146中的代码之后重新启动芯片,这通常使黑客攻击由于时间限制而变得不现实,而对于传统的存储元件常常能够无需重新启动装置而向存储装置发出多个非授权访问企图。
现参照图3,对于某些实施例,可使用一排eFUSE 3021...302N来存储访问代码154(如图1所示)信息。如图所示,在这种实施例中可包括eFUSE控制逻辑310,以便通过如由eFUSE编程数据(其可以是指示哪些eFUSE将被熔断的简单位串)所指示的向所选eFUSE 302施加熔断电压(VBLOW)来控制eFUSE 302的熔断,所述eFUSE编程数据可以是例如在制造和/或测试过程中从测试器110(如图1所示)接收的。eFUSE控制逻辑310也可以用于读出eFUSE 302的状态,所读出的状态可随后被锁存到寄存器中或发送给访问控制电路142(如图1所示)。
在这种配置中,可在需要时改变或更新eFUSE 302中包含的安全性访问代码(或任何其他数据)。尽管一熔断的eFUSE 302不可以被重新编程,但eFUSE 302排中的其他eFUSE 302在需要时可被熔断以改变存储在其中的信息。但是,改变该信息的能力可由eFUSE控制逻辑301、访问控制电路、和/或装置的其他部件严格控制,以防止黑客改变访问代码154(如图1所示)来便利他们对该装置的攻击。该配置可用于允许芯片在制造过程中保持在完全开放和可访问的测试模式中(以允许对芯片操作的不受阻碍的测试和分析),然后当eFUSE被编程(通常是在制造和测试过程完成以后)后,可大大地限制或取消对芯片的受限制区域的访问以防止用户级的篡改和黑客攻击。
在本发明的另一个实施例中,可使用eFUSE来提供用于检测和防止黑客攻击企图的第一和第二篡改位(最高N个篡改位)。在本发明的这个实施例中,当检测到第一非授权访问企图时,可熔断第一篡改位(eFUSE)。该第一篡改位可指示可能无意的访问企图,并可允许装置继续工作。但是,响应于检测到另一非授权访问企图,可熔断第二篡改位(eFUSE)。如果两个(或所有N个)篡改位(eFUSE)都被熔断,则装置控制器可禁止该装置的功能。在这个实施例中,该装置可配备有从一寄存器读取电子芯片标识(ECID)、并通过由一系列输入位使能的隐藏公式的算法。然后设置一允许对模块程序位的制造商编程的锁存器。如果一用户企图进行这样的编程而没有适当的ECID公式,则该编程操作将导致断开至少一个篡改位,这将使得整个模块无法工作(根据制造商确定多少次企图代表一恶意的黑客攻击企图)。
对于某些实施例,当篡改位断开(熔断eFUSE)并且装置的功能被禁用时,则要求用户将装置返回给制造商。制造商可检查篡改位的状态以确定装置是否受到黑客攻击。如果装置没有受到黑客攻击,或者如果制造商另外决定应当重新使能芯片,假设不是所有的篡改位已被编程,则制造商可将篡改控制重新设置到接下来的最高次的位,并将装置返回,以在相同的篡改控制算法下工作。对于某些实施例,这些篡改位可位于一个二级篡改控制单元(例如,作为多芯片封装的一部分)。在这种实施例中,制造商可替换整个篡改控制单元。在另一个实施例中,该篡改控制单元(或在芯片上或在芯片外)可具有可由制造商初始化(或选择)从而重新设置篡改状态的二级的一组(或多组)单元。对于某些实施例,也可使用eFUSE来存储在黑客攻击企图期间使用的(快照)位串,该位串可使制造商能够多少洞察黑客究竟是如何试图获得对装置的非授权访问的。
图4示出了可用于实现本发明的上述篡改控制实施例的硬件配置。篡改控制配置400包括一连接到一密钥解码器408的ECID寄存器402,以及一连接到一密钥寄存器406的寄存器接口404,该密钥寄存器406也连接到密钥解码器408。密钥解码器包括用于篡改位选择、允许编程、和熔断篡改位的I/O。在操作中,篡改控制配置400从寄存器402读取ECID。该配置400然后基于一专有算法计算密钥,该算法通常将足够复杂,以至于即使知道了该算法,在低成本环境中完成重新编程也是不现实的。然后该配置将计算出的密钥装载到密钥寄存器406,并且重新编程相关的eFUSE。
所述密钥寄存器406通常是一仅为装置制造商和用户知道的没有文档说明的或保留的寄存器。如果当启动熔丝编程操作时没有输入适当的密钥,则发生的唯一的事是熔断篡改位熔丝。篡改位选择线可由第二独立密钥控制。使该线有效,直到达到一制造商位计数,将使得另一个熔丝被熔断,指示已选择第二个或辅助的篡改位,从而指示一黑客攻击情况并禁止装置的功能。
发明人也考虑了这样一种防篡改系统,其中篡改位只能被改变指定次数。这在诸如DVD行业的行业中将受到赏识,以防止将复制DVD上的材料。用于这种应用的系统可基于篡改位的增加的数量和一比较器。一旦篡改位的计数超过某一阈值,则禁止可编程性,这将大大减少DVD材料的复制。
B.在最终用户处维护安全产品状态
在其中使用eFUSE(或其他存储元件)来存储安全访问代码或版本信息的本发明实施例中,可使用第二层eFUSE来使访问代码或版本信息与非授权访问隔离。例如,可使用例如图3中所示的eFUSE排300的eFUSE排或阵列,来代替图1中所示的非易失性存储元件150,并可包含该装置120的访问代码或版本信息。一旦该装置通过了建造过程中的某一点,就可使eFUSE排300不可写或一般不可从外部装置访问。这种类型的访问控制可通过一缓冲器或eFUSE的安全性访问层(可安置于图1中所示熔丝146的位置的第二组eFUSE)来完成,该缓冲器或eFUSE的安全性访问层被配置为控制对包含该装置的访问代码或版本信息的eFUSE排的访问。在这种配置中,一旦以安全信息将eFUSE 300编程,则该安全信息将仅在芯片的正常操作期间可读,并且由于所述缓冲器或eFUSE的安全性层,一般对于外部世界是不可读的,所述缓冲器或eFUSE安全性层防止了包含访问代码或版本信息的安全eFUSE排300的输出的状态可被由迫使该装置进入测试模式的黑客进行的扫描读取。所述第二eFUSE排300的使用在需要时可类似地用于隔离对包含类似信息的其他存储器装置的访问。
图5示出了被配置为在装置被发运后安全地存储装置状态的装置的实施例。通常为一集成电路装置的装置500包括与一装置接口504通信的一装置控制器502。控制器502一般操作以控制装置500的其他部件的操作。接口504操作以传送信息出入该装置,即与外部世界接口,该外部世界由一外部装置或部件508表示。控制器502和/或接口504一般也与一个或多个eFUSE 506通信,所述eFUSE 506可以是与图3中所示的排300类似的eFUSe排。所述控制器一般也与多个装置模块510通信。所述装置模块510可包括装置500的功能模块,诸如时钟、多路复用器、浮点单元、数字信号处理器等的系统部件,或其他通常与集成电路型的装置相关的部件。
装置500的实施例可用于在装置已发运后安全地存储装置的状态。例如,可在制造工厂处通过控制器502和接口504将eFUSE 506排编程到所希望的访问级别。希望的访问级别可用于调节装置上或装置内的什么信息对于外部装置508是可访问的。例如,可将装置500的访问级别设置到测试模式、已发运模式、工作模式、调试模式、或无效模式,其中每个模式对应于该装置的内部部件或模块510的可访问性的唯一配置。例如,在测试模式中,可熔断(或保持原样/未熔断)特定的eFUSE 506,以建立装置通信通道,从而装置的所有扫描链可连接到外部装置接口504,并对于外部世界508可访问。该测试模式在装置制造中的装置测试阶段将是有用的。由熔断的eFUSE 506序列代表的该测试模式一般将在芯片或装置启动时被控制器502读取,然后该控制器502将使能或禁止由装置的所选模式表示的适当的模块510。
在该装置已在制造过程中被测试后,可进一步对eFUSE 506编程(更多的熔丝可被熔断)以配置装置500,以便发运到二级制造商。以与测试模式类似的方式,当装置500被编程为发运模式时,当装置500通电时,它将读取eFUSE 506的状态,并相应地设置或配置装置500。例如,发运模式可如此配置装置500,从而用于装置500的所有安全存储器(某些模块510)的扫描链对于外部部件508不可访问,这样就防止了第二方制造商查看装置的安全部分(加密密钥、产品标识等)。
类似地,一旦第二方制造商已将该装置500安装为最终用户产品,可进一步对eFUSE 506编程,以将装置500配置为工作模式。在工作模式中,例如,在测试或发运模式中通常可用的所有寄存器(某些模块510)不再可用,因为在装置的工作阶段访问或修改这些寄存器通常将表示黑客攻击企图。
C.在遇到黑客攻击企图时使用e-FUSE来禁止装置
如前所述,参照图4,在本发明的一些实施例中,eFUSE可用作一种防黑客攻击措施。在这种实施例中,芯片控制器或装置中的其他模块被配置为检测何时发生黑客攻击企图。当检测到黑客攻击企图时(或者当已检测到预定数量的黑客攻击企图时),该控制器可操作以熔断控制装置的各功能的一个或多个eFUSE,从而例如将装置置于前述无效模式。
例如,在一可由图5所示的装置500表示的用于游戏控制器的芯片中,当第一次检测到黑客攻击企图时,芯片控制器502可将该第一次检测结果作为可能的错误忽略。然而,如果在预定时间段内检测到第二黑客攻击企图,则该控制器502可确定黑客正在企图危害装置500,并熔断装置500中的一个或多个eFUSE 506。由控制器502熔断的eFUSE 506一般或者直接或者间接地通过其他模块例如一控制模块连接到该装置的、对该装置的功能起主要作用的一个或多个功能模块510。这样,熔断与装置500的一个或多个主要功能模块510相关的eFUSE 506所起的作用是使得装置500无法工作,就是说,eFUSE 506可串联连接到例如装置的I/O引脚或连接到装置的系统时钟。这样,熔断与这些部件或引脚相关的熔丝506实质上使装置500失效。作为另一种选择,可以选择在检测到黑客攻击企图时熔断的eFUSE 506以仅仅部分地禁止装置的功能,例如减缓芯片的操作,或使装置500无法工作预定的时间段。这将起到对黑客的阻碍的作用,如果制造商不想在遇到黑客攻击企图时完全禁止装置500的话。
这一实施例也对制造商确定哪些返回的芯片已受到企图的黑客攻击是有用的。更具体地,当芯片由于无法工作被返回到制造商时,制造商可检测芯片中的eFUSE的状态,以确定与黑客攻击企图相关的eFUSE是否已被熔断。如果防黑客eFUSE已被熔断,则制造商将得知该芯片已遭到黑客攻击企图,并将拥有由于黑客攻击企图而拒绝更换芯片的选择。如前所述,也可使用eFUSE来存储黑客用来企图侵入系统的位串。这些位串可允许制造商实际上逆向工程黑客的逆向工程企图。
D.装置发运后对装置状态的修改
在本发明的另一个实施例中,eFUSE可用于存储装置的状态或版本,所述状态或版本可随后由制造商在不更换装置的情况下更新或修改。例如,参照图5,可将一eFUSE排506实现到装置500中,并以一唯一装置状态对其编程,其中该唯一装置状态对应于该装置建造过程的一特定部分。在这个实施例中,当装置500通电时,该唯一装置状态由装置控制器502例如从eFUSE排506读取。装置控制器502可使用存储在eFUSE排506中的该唯一装置状态来激活或去激活该装置的特定模块510。所述激活或去激活可包括终止到特定模块510的时钟信号,终止多路复用器选择,断开与该装置的特定功能相关的I/O线的连接等,以根据由eFUSE排506表示的唯一装置状态来配置装置。只激活所选的时钟信号、多路复用器、I/O线等允许制造商选择装置500的、将为装置500的每个应用使能或激活的特定的模块510(例如浮点单元、SRAM块等)。这样,制造商可利用单个装置或芯片来满足不同复杂性的多个应用,因为支持特定应用的复杂性所需的各模块或部分可通过eFUSE排506的编程而被有选择地使能。
此外,可随后修改存储有所述唯一装置状态的eFUSE排506,以在装置500到达最终用户后升级该装置或芯片的能力。例如,存储有所述唯一装置状态的eFUSE排506可由制造商通过接口504访问。制造商可将改变芯片的装置状态的第二唯一装置状态编程到eFUSE 506中。例如,制造商可熔断一个或多个附加的eFUSE 506,以生成第二唯一装置状态,该状态起的作用是激活装置500的附加模块510或功能.,从而无需更换或由于其他原因将装置500从该装置相关的系统中物理地移除就升级或改进装置能力。这一功能可用于现场升级装置的能力或功能。
在本发明的另一实施例中,eFUSE 506可用于在预定时间段之后修改装置500的状态。这一特征可用于例如在许可期间到期时修改装置的功能(例如,一eFUSE排可用于承担“芯片里程表”或“开/关键”的角色。)在这个实施例中,芯片控制器502被编程为在预定的一段时间到期后熔断装置500上的一个或多个eFUSE 506。eFUSE 506可连接到一使能功能,例如装置500的与许可的技术相关的一关键模块510的时钟信号或多路复用器选择。这样,当控制器502熔断eFUSE 506时,与所述许可相关的功能被禁止,并因此无法工作,或被置于一具有有限功能的操作模式中。如果用户此后希望通过支付许可费而重新使能该技术,则可通过本发明的其他实施例重新使能该芯片的功能,在这些实施例中,如这里所描述的,改变eFUSE的状态以升级或更新芯片功能或状态。对于某些实施例,可完全远程地完成这样的交易(付费并升级装置)。例如,具有一连接到因特网的游戏系统的用户可通过因特网交易购买附加的功能。可通过在购买完成时自动启动的eFUSE的熔断来使能所述附加功能。
E.在装置安装之后装置参数的修改
在本发明的另一个实施例中,eFUSE可用于在装置已被发运到最终用户并处于运行中后修改装置参数。例如,集成电路装置经常遇到由环境产生的随时间偏离标称性能的性能降低,这使得装置在低于最优的水平上工作。在传统的集成电路装置中,一旦装置的参数开始恶化,没有解决办法,并且装置的性能将开始降低。本发明的本实施例利用一个或多个eFUSE,它们可响应于检测到恶化的装置参数而被熔断,其中所述熔断的eFUSE所起的作用是改变装置参数,以试图将参数恢复到最优操作水平。eFUSE也可如上所述地用于一里程表模式,从而配置CPU例如在较低的内部产生的VDD或在不同的时钟速度下运行。换言之,eFUSE可用于控制装置的输入刺激,从而如果装置上的一控制器读到某个序列,就采取适当的动作。
可配置图5中示出的集成电路装置500以实现本发明的这样的实施例,其中eFUSE可用于在装置已被发运到最终用户并处于运行中后修改装置参数。更具体地,装置500可包括一个或多个传感器512,这些传感器被配置为测量各种系统参数,或者作为另一种选择,装置500可访问一个或多个安置于外部的传感器(未示出)。例如,传感器512可被配置为测量装置500上的部件或电路的电压、通过装置500上的部件或电路的电流、装置500上的部件或电路的温度、装置500中的部件例如时钟的频率、或任何其他可测量的装置参数。
在这个实施例中,控制器被编程为监视传感器512。当传感器512之一检测到由系统控制器502确定为表明环境恶化的一装置参数时,则系统控制器502可熔断一个或多个对应于被确定为恶化的装置参数的eFUSE506。例如,一个传感器512可被配置为监视一部件温度。如果确定该部件温度已超过期望温度足够的时间量,则系统控制器502可增加对应于风扇控制电压或电流的电压或电流。例如,可增加风扇电流或电压直到温度传感器指示操作温度处于正常范围。然后系统控制器502可熔断对应于由系统控制器502在启动时读取的提供给系统风扇的电压或电流的一个或多个eFUSE 506。这对于集成电路技术是有帮助的,并且该用于现场参数修改的能力可通过补偿环境恶化而扩展装置的有用寿命,这种环境恶化本来会使得装置在其最大使用寿命之前不可用。
此后,当再次给装置通电并且控制器读取eFUSE 506以确定装置设置或配置参数时,对应于风扇电压或电流的被熔断的eFUSE 506将使得风扇增加冷却效果,并因而将过热部件冷却到所希望的操作范围。这种类型的配置可用于调整特定应用所要求的装置电压、频率、电流、温度等。此外,eFUSE 506可被多次编程,例如,需要时可熔断附加的熔丝以多次改变参数。
因此,这里描述的实施例提供了使用实现了类似于里程表的功能的永久性的eFUSE的适应性的系统控制器。由于所述eFUSE的永久性质(即,eFUSE只能被编程一次),该里程表具有不能回退的内在特征。因此,系统可适应性地根据环境(外部)条件和内在属性两者进行调整。尽管上述示例是对环境作出反应,传感器512也可被配置为监视内在属性,例如装置阈值电压、环形振荡器频率、或放大器增益。可存储初始值,并且可检测这些值恶化到预定水平并以此来触发附加的位被编程,从而设置新的值,以及采取更新的动作来最小化进一步的恶化。这样控制器可利用eFUSE来调整系统参数并自主地适应性调整性能。可通过熔断不同的eFUSE来多次改变参数。
对于某些实施例,例如,作为增强的安全性特征的一部分,可使用一eFUSE排来在某些情况下使得装置无效(部分或全部地无法工作)。例如,可使用传感器例如传感器512作为位置或运动传感器来检测在将装置置于防黑客模式之间是否从系统中移除了特定的(例如,使命关键的)模块,并可设置一非易失性锁存器。该锁存器可导致以被设计为扰乱控制位功能的方式编程eFUSE排,并使得该部分或者无用,或者部署假路径(例如,无用的位串)。假设在这种编程之前该部分被移除,则该锁存器可使得在下次给该装置通电时发生这种eFUSE编程。
作为另一种选择,可建立eFUSE编程以通过向装置核心中的各区域发送高电压尖峰从而实质上在典型的正常工作的场效应晶体管(FET)中生成反熔丝来随机地改变/禁止装置逻辑。这种反熔丝(由向FET随机地或伪随机地施加高电压尖峰而生成)一般对黑客是不可检测的,但将使装置功能无用。对于某些实施例,可使用相对简单的自举电容器来基于eFUSE启动而发送随机尖峰。可将高电压尖峰的序列(包括哪些FET被熔断)存储在非易失性存储器中,并在通电时生成,从而防止黑客通过断电或移除芯片来避免该动作。
F.使用eFUSE控制部件兼容性
在本发明的另一实施例中,可使用eFUSE来控制集成电路装置上的或与之通信的部件兼容性。例如,本发明的实施例可利用一eFUSE排来存储外部系统部件例如风扇、电源、附加的存储部件、附加的处理器、和通信装置的部件号和控制参数。这种操作参数传统上存储在可能损坏的软件初始化(例如,*.ini)文件中。但是,在本实施例中,存储在eFUSE排中的用于附加的外部部件的这些操作参数或条件可在系统通电时被读取并用于配置系统。换言之,使用eFUSE排允许将该信息直接存储在集成电路中。
也可使用本发明的这个实施例来消除在制造阶段具有唯一芯片部件号箱的需要,因为与特定芯片接口的部件可从该芯片本身接收配置指令。作为另一种选择,芯片可基于存储在eFUSE中的相应操作信息来设置一个或多个外围设备的操作参数(例如,操作电压或速度)。在任何一种情况下,本发明的该实施例消除了唯一部件“X”只与另一个唯一部件“Y”连接的需要,因为现在部件“X”可代表部件号1到10,这些部件都可例如与部件A到Z一起使用。因此,本发明的实施例可由于部件号的管理和更容易实现而减少供应链问题。
尽管以上讨论了本发明的实施例,可设计本发明的其他和进一步的实施例而不脱离本发明的基本范围,且本发明的范围由后面的权利要求确定。