为调试电路提供安全性的方法和装置
技术领域
本发明涉及调试电路,以及更具体地说,涉及用于为调试电路提供安全性的方法和装置。
背景技术
随着集成电路用在越来越多的安全性敏感应用中,集成电路的安全性正变得日益重要。这些应用的一些例子是智能卡、便携式电话、互联网通信设备等等。特别地,通常期望提供防止欺诈或未授权访问集成电路的一个或多个部分的安全性。许多集成电路包括可以用来将信息输入集成电路和/或从集成电路输出信息的端子。这些输入/输出端子可以提供用于未授权访问集成电路的一个或多个部分的路径。另外,集成电路的一些输入/输出端子可以用于调试、仿真和/或测试目的,也会提供用于未授权访问集成电路的一个或多个部分的路径。
用于集成电路调试、仿真和/或测试目的的一个通用标准是公知的JTAG(Joint Test Action Group)(联合测试专家组)IEEE(电气和电子工程师协会)1194.1测试访问端口和边界扫描结构。除标准的JTAG接口外,存在用于集成电路的大量其他调试、模拟和/或测试接口。
附图说明
通过例子示例说明本发明,并不受附图限制,其中,类似的标记表示类似的元件,其中:
图1以框图的形式示例说明根据本发明的一个实施例的集成电路10;
图2以局部框图形式和局部示意图形式,示例说明根据本发明的一个实施例图1的调试端口20的一部分;以及
图3以状态图的形式,示例说明根据本发明的一个实施例对图2的调试电路42渐进地使能和禁止安全性的方法。
技术人员意识到为简化和清楚起见而示例说明图中的元件,不一定按比例绘制。例如,图中的一些元件的尺寸可以相对于其他元件放大以帮助提高本发明的实施例的理解。
具体实施方式
当指将信号、状态位或类似的装置变为逻辑真或逻辑假状态时,分别使用术语“断言”和“否定”。如果逻辑真状态是逻辑电平1,逻辑假状态为逻辑电平0。以及如果逻辑真状态为逻辑电平0,那么逻辑假状态为逻辑电平1。同时,在此可互换使用术语“逻辑电平”和“逻辑状态”。在此使用的术语“调试”是指非常宽泛的含义,以及将包括仿真和测试功能。
图1以框图形式,示例说明根据本发明的一个实施例的集成电路(IC)10。在一个实施例中,IC10包括调试端口20和保护功能电路12。在一个实施例中,保护功能电路12包括处理器14、其他电路16,和通过通信信号26而双向彼此耦合和耦合到调试端口20的输入/输出(I/O)电路18。在一个实施例中,处理器14可以是执行任何类型的指令的处理器,例如中央处理单元、数字信号处理器、定时器处理单元等等。在一个实施例中,其他电路16可以是执行IC10的一个或多个所需功能、但不一定要求执行指令以执行所需功能的电路。保护功能电路12的另外的实施例可以仅包括处理器14、仅包括其他电路16,或处理器14和其他电路16。在一个实施例中,I/O电路18耦合到一个或多个IC端子24,以便与IC10外部的电路(未示出)通信。在本发明的另外的实施例中,I/O电路18可以包括任何类型的外部总线结构,包括数据/地址/控制总线结构。IC10的其他实施例甚至可以不具有I/O电路18和IC端子24,例如在不具有外部总线的单芯片模式中操作的IC10。在本发明的一个实施例中,调试端口20双向耦合到允许调试端口20与IC10外部的设备(未示出)通信的一个或多个IC端子22。
图2以框图形式,示例说明根据本发明的一个实施例的图1调试端口20的一部分。在一个实施例中,调试端口20包括控制电路46,该电路耦合到非易失元件38以便提供用于非易失元件38的控制和/或编程。在本发明的一个实施例中,使用一次性编程电路,诸如一次性编程存储器,形成一个或多个非易失元件38。在本发明的另外的实施例中,可以使用任何类型的保险丝,形成一个或多个非易失元件38。注意,可以使用仅一种非易失元件形成非易失元件38,或可以使用多个不同类型的非易失元件形成该元件。在图2所示的实施例中,非易失元件38包括使能安全调试元件30、旁路安全调试元件32、重新使能安全调试元件34以及禁止调试元件36。本发明的另外的实施例可以使用多个非易失元件38。使用控制电路46来改变非易失元件38的逻辑状态。在本发明的一个实施例中,控制电路46包括可以用来提供预定时间的计数器47。
调试使能电路40从非易失元件38和验证电路44接收信号,以及基于那些接收的信号,调试使能电路40选择性地断言使能调试信号58。由调试使能电路40将使能调试信号58提供给调试逻辑46。调试逻辑43包括受使能调试信号58影响的调试电路42。在本发明的另外的实施例中,调试电路42可以包括所有或仅部分调试逻辑43。在一些实施例中,调试逻辑43可以包括不由使能调试信号58使能或禁止、用于调试目的的其他电路。由调试电路42使用使能调试信号58来使能由调试电路42执行的一个或多个调试功能。调试电路42可以用来调试IC10上保护功能电路12的一个或多个部分(见图1)。
注意验证电路44可以使用硬件和软件的任意组合,执行任何类型的验证。另外,本发明的一些实施例甚至可以根本不使用验证电路44。对可以与本发明一起使用的验证的一个例子,见2002年3月18日提交的、指定给其受让人的“INTEGRATED CIRCUIT SECURITY ANDMETHOD THEREFOR”,US专利序列号10/100,462,在此引入以供参考。
在所示实施例中,使用OR门50、AND门52,以及AND门54,实现调试使能电路40。本发明的另外的实施例可以使用任何所需电路,实现调试使能电路40。图2中所示的具体门仅是用于调试使能电路40的一个可能实施例。在图2所示的调试使能电路的实施例中,AND门54从旁路安全调试元件32接收第一输入,以及从重新使能安全调试元件34接收第二输入。OR门50从验证电路44接收第一输入,从使能安全调试元件30接收第二输入,以及从AND门54的输出接收第三输入。AND门52从OR门50的输出接收第一输入,以及从禁止调试元件36接收第二输入。对使用门50、52和54的调试使能电路40的具体实施例,使能安全调试元件30初始为逻辑电平1,旁路安全调试元件32初始为逻辑电平0,重新使能安全调试元件34初始为逻辑电平1,以及禁止调试元件36初始为逻辑电平1。
在利用验证电路44的本发明的实施例中,验证电路44可以双向耦合到控制电路46。在本发明的一些实施例中,验证电路44可以耦合到通信信号26和/或IC端子22。在本发明的一些实施例中,调试逻辑43可以耦合到通信信号26和/或IC端子22。
图3以状态图的形式,示例说明根据本发明的一个实施例对图2的调试电路42渐进使能和禁止安全性的方法。为该状态图的目的,假定非易失元件38由保险丝实现,尽管本发明的其他实施例可以使用任何所需电路来实现非易失元件38。图3中所示的状态图以状态A开始。在本发明的一个实施例中,状态A是制造IC10后的初始状态。在所示的状态A中,使能调试电路42以及可获得对保护功能电路12(见图1)的完全调试访问。在一些实施例中,可以要求验证退出状态A,以及在其他实施例中,验证可以不要求退出状态A。通过熔断从逻辑电平1永久转变成逻辑电平0的使能安全调试保险丝30,可以从状态A进入状态B。
在初始安全状态,状态B中,保护调试电路42,并且不可获得对保护功能电路12(见图1)的调试访问。然后使用验证来从状态A转变成状态C。同样地,可以使用任何类型的验证。注意用来从状态B转变成状态C的验证可以与可选地用来退出状态A的验证相同或不同。
在本发明的一个实施例中,状态C是安全调试使能状态。在所示的状态C中,使能调试电路42,以及可获得保护功能电路12(见图1)的完全调试访问。注意在本发明的另外的实施例中,在状态C中使能的调试逻辑43的一个或多个部分可以与在状态A中使能的调试逻辑43的一个或多个部分相同或不同。
从状态C返回到状态B是可选的。如果存在从状态C返回到状态B,可以通过任何机制,诸如例如硬件重置、软件重置、调试指令或自动地导致状态改变的超时,引起返回。如果使用超时来返回到状态B,那么在重新使能调试电路42后,禁止调试电路42预定(固定或用户可编程)时间。计数器47(见图2)可以用来向控制电路46提供预定时间。作为一个可能的例子,计数器47可以加载预定(固定或用户可编程)值,然后向下计数到零以便提供预定时间。在另外的实施例中,可以使用任何所需的方法来提供预定时间。
通过熔断旁路安全调试保险丝32,其从逻辑电平零永久地转变到逻辑电平1,可以从状态C进入状态D,从而将适当的输入提供给图2所示的调试使能电路40的实施例。在本发明的一个实施例中,状态D是旁路安全状态。在所示的状态D中,使能调试电路42,并可获得到保护功能电路12(见图1)的完全调试访问。同样地,本发明的另外的实施例可以使用状态D来使能调试逻辑43的一个或多个部分,而不是所有调试逻辑43。调试电路42仅表示能在特定时间被禁止和/或重新使能的调试逻辑43的一个或多个部分。在一些实施例中,可以要求验证来退出状态D,以及在其他实施例中,可以不要求验证来退出状态D。注意如果使用验证来退出状态D,用来退出状态D的验证可以与用来退出状态A的验证和/或用来从状态B转变到状态C的验证相同或不同。注意在本发明的另外的实施例中,在状态D中使能的调试逻辑43的一个或多个部分可以与在状态A和/或状态C中使能的调试逻辑43的一个或多个部分相同或不同。
通过熔断重新使能安全调试保险丝34,从逻辑电平1永久地转变成逻辑电平0,可以从状态D进入状态E,从而提供如图2所示的调试使能电路40的实施例的适当输入。在本发明的一个实施例中,状态E是重新使能安全状态。在所示的状态E中,保护调试电路42,以及不可获得对保护功能电路12(见图1)的调试访问。然后使用验证来从状态E转变到状态F。同样地,可以使用任何类型的验证。注意,用来从状态E转变成状态F的验证可以与可选地用来退出状态A的验证和/或用来从状态B转变成状态C的验证相同或不同。
在本发明的一个实施例中,状态F是安全调试使能状态。在所示的状态F中,使能调试电路42并可获得保护功能电路12(见图1)的完全调试访问。注意在本发明的另外的实施例中,在状态F中使能的逻辑43的一个或多个部分可以与在状态A中和/或状态C中和/或状态D中使能的调试逻辑43的一个或多个部分相同或不同。
从状态F至状态E的返回是可选的。如果存在从状态F至状态E的返回,可以通过任何所需机制引起返回,诸如例如硬件重置、软件重置、调试指令或自动地引起状态改变的超时。如果使用超时来返回到状态E,那么在重新使能调试电路42后,禁止调试电路42预定(固定或用户可编程)时间。可以使用计数器47(见图2)来向控制电路46提供预定时间。作为一个可能的例子,计数器47可以加载预定(固定或用户可编程)值,然后倒计数到零以便提供预定时间。在另外的实施例中,可以使用任何所需方法来提供预定时间。
在本发明的一个实施例中,状态G是禁止状态。通过熔断禁止调试保险丝36,从逻辑电平1永久地转变到逻辑电平零,可以从状态A、状态E或状态F的任何一个进入状态G,从而提供图2所示的调试使能电路40的实施例的适当输入。在所示的状态G中,禁止调试电路42,并不可获得对保护功能电路12(见图1)的调试访问。在本发明的一个实施例中,期望状态G是不能退出的最后一个状态。
上述状态E、F和G是可选的,以及可以在本发明的各个实施例中实现它们的一个或多个。因此,对本发明的一些实施例,可以不实现重新使能安全调试元件34和/或禁止使能元件36。同时,在本发明的另外的实施例中,可以不实现旁路安全调试元件32和重新使能安全调试元件34,相反,可以使用禁止调试元件36来直接从状态C转变到状态G。
可以使用控制电路46和调试使能电路40中的任何电路类型,实现图3所述的状态图。因此,尽管已经用状态图的形式描述了图3的功能性,将计时逻辑用作组合逻辑,或用作其任意组合,可以将图3的功能性实现为状态机。如前所述,可以使用任何类型的非易失电路,实现非易失元件38:保险丝仅是一个例子。
其中,使用图3所述的特定实施例的一个可能优点是组合任何所需验证方法,可以可选地使用非易失元件38。这允许以初始状态(状态A)制造IC10,允许在IC10的产品开发阶段期间的完全调试访问。然后,在将IC10销售给初始装置制造商前(例如便携式电话、汽车等等的制造商),改变使能安全调试元件30的逻辑状态以便禁止通过调试电路42,对电路12的调试访问的一个或多个部分(状态B)。然而,对于“初始装置制造商(OEM)和/或IC制造商”(其中,统称为制造商),通常期望允许通过调试电路42访问保护功能电路12,以便在使用IC10的产品已经出售后,制造商能调试IC10或使用IC10的它们的产品或***。然而,制造商通常期望要求验证过程(从状态B转变到状态C),以便仅制造商通过调试电路42访问保护功能电路12。然后,制造商在状态C和/或状态D中自由地执行调试操作。
状态C的一个用法是要求在能进入状态D前验证。状态C的另一用法是允许调试,然后如果所使用的调试或其他软件工具能处理执行所需验证过程,返回到状态B。如果期望要求验证,***能留在状态B中直到将执行调试操作为止。那时,可以执行验证以便转变到状态C来执行调试功能。相反地,制造商可以稍后确定不期望要求用于执行调试操作的验证,从而可以使电路处于状态D中,其中,不再要求执行调试操作的验证。状态D的一个用法是允许制造商使用现有的调试和不具有验证过程的知识的其他软件工具。从状态C,制造商能转变到不具有验证过程的知识的软件工具能自由地操作的状态D。在本发明的一个实施例中,转变旁路安全调试元件32的逻辑状态,以便从状态C到状态D。
从状态D,只要制造商已经完成它们的产品开发并准备将它们的产品提供给客户,那么,制造商能改变重新使能安全调试元件34的逻辑状态,以便禁止通过调试电路42对电路12的所有调试访问(状态E)。注意对本发明的一些实施例,制造商可以期望从状态C直接转变到永久禁止状态(例如状态G)。永久禁止状态(状态G)的一个目的可以是防止通过调试电路42对保护功能电路12的任何进一步访问。然而,为在制造商的电子设备上执行另外的服务、修理或故障分析,可以要求非永久禁止状态(例如状态E)。如果使用非永久禁止状态(状态E),通过完成预定验证过程(验证提供从状态E至状态F的状态转变),也可以实现通过调试电路42的保护功能电路12的访问。注意,可以用在状态A、C、D和F中以真正调试或分析IC10的一些调试和/或仿真软件可以不要求具有验证过程的知识,包括任何密码或密钥。验证过程可以与调试和/或仿真软件分开。验证过程可以包括与调试电路42分开的硬件和/或软件,用来从“调试访问不可用状态”转变到“调试访问可用状态”(见图3,从状态B转变到状态C和从状态E转变到状态F)。
注意在一些实施例中,断言后续非易失元件38可以具有超越(overriding)先前断言的非易失元件38的效果。例如,断言旁路安全调试元件32可以具有超越使能安全调试元件30的效果。类似地,断言重新使能安全调试元件34可以具有超越旁路安全调试元件32的效果。
在上述说明书中,已经参考特定实施例描述了本发明。然而,本领域的普通技术人员意识到在不背离如在下述权利要求中所述的本发明的范围的情况下,可以做出各种改进和改变。例如,调试电路42(见图2)可以包括实现一个或多个标准调试、仿真或测试接口和协议,诸如例如JTAG接口和协议的电路。在一个实施例中,IC端子22可以包括JTAG TDO(测试数据出)和TDI(测试数据入)信号。
因此,说明书和附图以示例性的方式看待而不是限制意义,以及所有这些改进意图包括在本发明的范围内。
上面已经参考具体实施例描述了好处、其他优点和问题的解决方案。然而,好处、优点和问题的解决方案,以及会引起任何好处、优点的任何元件,或产生或变得更显著的解决方案不构成任何或所有权利要求的关键、所需或必要特征或元件。如在此所使用的,术语“包括”、“由...组成”或其任意其他变形意图覆盖非排它包括,以便包括元件的列表的过程、方法、物品或装置不仅包括那些元件而且包括未清楚地列出或这些过程、方法、物品或装置固有的其他元件。
附加文本
1.一种用于为调试电路提供安全性的方法,包括:
提供调试电路,其中,使能调试电路;
编程第一非易失元件,以便禁止调试电路;以及
在编程第一非易失元件后,编程第二非易失元件以便执行重新使能调试电路和永久禁止调试电路的一个。
2.如权利要求1所述的方法,其中,在编程第一非易失元件后以及在编程第二非易失元件前,调试电路能响应验证而被选择性地使能。
3.如权利要求1所述的方法,其中,编程第二非易失元件以便重新使能调试电路。
4.如权利要求3所述的方法,进一步包括:
在编程第二非易失元件后,编程第三非易失元件来禁止调试,其中,在编程第三非易失元件后,调试电路能响应验证而被选择性地使能。
5.如权利要求4所述的方法,其中,第一非易失元件包括第一保险丝,第二非易失元件包括第二保险丝,以及第三非易失元件包括第三保险丝,以及其中:
编程第一非易失元件包括熔断第一保险丝;
编程第二非易失元件包括熔断第二保险丝;以及
编程第二非易失元件包括熔断第三保险丝。
6.如权利要求4所述的方法,进一步包括:
在编程第三非易失元件后,编程第四非易失元件以便永久地禁止调试电路。
7.如权利要求1所述的方法,其中,编程第二非易失元件来永久地禁止调试电路。
8.如权利要求1所述的方法,其中,第一非易失元件包括第一保险丝以及第二非易失元件包括第二保险丝,以及其中,编程第一非易失元件包括熔断第一保险丝,以及其中,编程第二非易失元件包括熔断第二保险丝。
9.一种用于为调试电路提供安全性的方法,包括:
提供安全调试状态的调试电路,其中,调试电路能响应验证而被选择性地使能;
响应验证,使能调试电路;以及
在响应验证而使能调试电路后,编程第一非易失元件。
10.如权利要求9所述的方法,其中,在编程第一非易失元件后,调试电路处于使能调试电路的旁路安全状态。
11.如权利要求9所述的方法,进一步包括:
在编程第一非易失元件后,编程第二非易失元件,其中,在编程第二非易失元件后,调试电路处于调试电路能响应验证而被选择性地使能的重新使能安全调试状态。
12.如权利要求11所述的方法,其中,第一非易失元件包括第一保险丝以及第二非易失元件包括第二保险丝,以及其中,编程第一非易失元件包括熔断第一保险丝,以及其中,编程第二非易失元件包括熔断第二保险丝。
13.如权利要求11所述的方法,进一步包括:
在编程第二非易失元件后,编程第三非易失元件以便永久地禁止调试电路。
14.一种用于为调试电路提供安全性的方法,包括:
响应验证,使能调试电路;以及
在使能调试电路后,禁止调试电路预定时间。
15.如权利要求14所述的方法,其中,由计数器提供预定时间。
16.如权利要求15所述的方法,其中,响应计数器期满,执行禁止调试电路。
17.如权利要求14所述的方法,其中,预定时间是用户可编程的。
18.如权利要求14所述的方法,在响应验证而使能调试电路前,进一步包括:
提供处于使能状态的调试电路;以及
编程第一非易失元件来禁止调试电路。
19.一种集成电路,包括:
调试电路;
第一非易失元件;
第二非易失元件;以及
调试使能电路,基于第一和第二非易失元件,向调试电路提供调试使能指示信号,
其中:
第一非易失元件指示调试电路是否处于其中调试电路能响应验证被选择性地使能的安全调试状态;以及
第二非易失元件指示是否超越第一非易失元件。
20.如权利要求19所述的集成电路,其中,第二非易失元件通过指示调试电路是否处于其中调试电路被重新使能的旁路安全状态中,指示是否超越第一非易失元件。
21.如权利要求20所述的集成电路,进一步包括第三非易失元件,指示是否超越第二非易失元件。
22.如权利要求21所述的集成电路,其中,第三非易失元件通过指示调试电路是否处于其中调试电路能响应验证被选择性地使能的重新使能安全调试状态,指示是否超越第二非易失元件。
23.如权利要求22所述的集成电路,进一步包括第三非易失元件,指示是否永久禁止调试电路。
24.如权利要求21所述的集成电路,其中,第三非易失元件通过指示是否调试电路被永久地禁止,指示是否超越第二非易失元件。
25.如权利要求19所述的集成电路,其中,第二非易失元件通过指示是否调试电路被永久地禁止,指示是否超越第一非易失元件。
26.如权利要求19所述的集成电路,其中,第一非易失元件包括第一保险丝,以及第二非易失元件包括第二保险丝。