专利名称:半导体集成电路、信息处理设备和方法、以及程序的制作方法
技术领域:
本发明涉及半导体集成电路、信息处理设备和方法以及程序。更具体地,本发明涉 及执行数据(比如随机数或标识符(ID)等)产生处理的半导体集成电路、信息处理设备和 方法以及程序。
背景技术:
在电子设备中的数字电路中,大量触发器(flip-flop,FF)被用于保持比特值以 及传送处理电路。触发器保持比特值(0,1),并能够以高速度输入/输出比特值。例如,触 发器经常被用作形成缓存存储器、寄存器和其它电子电路元件。在这点上,在本说明书的下 文中,触发器有时被称为FF。触发器(FF)能够设置0或1的比特值。然而,公知常识是在通电时设置的值经常 不确定为0还是1,而是变为不确定的值。在 Τ. E. Tkacik, "A Hardware Random Number Generator,,,CHES2002,LNCS vol. 2523,Springer-Verlag,2003,pp. 450-453 (下文中称为第一非专利文献)中公开了利 用通电时触发器(FF)设置值的不确定性的随机数产生器。第一非专利文献公开了使用形 成线性反馈移位寄存器(linear-feedback shift register, LFSR)和元胞自动机移位寄 存器(cellular-automata shift register, CASR)的触发器(FF)的随机数产生器。为了 操作LFSR或CASR,一开始需要初始值。在第一非专利文献中公开的随机数产生器中,保持 某种状态的FF通电时的不确定值被保持,从而LFSR和CASR的初始值在每次通电时都有变 化。同样地,静态随机存储器(SRAM)存储单元被提供为具有与第一非专利文献中描 述的触发器(FF)类似的结构的单元。也为公知常识的是很多SRAM存储单元的设置值在 通电时变为不确定值。在 D.E.Holcomb,W.P.Burleson,and K. Fu. ,"Initial SRAM state as a fingerprint andsource of true random numbers for RFID tags", Conference on RFIDSecurity 07,July 11-13,2007 (下文中称为第二非专利文献)中,提出了如下方 法利用SRAM通电时的特性,在具有不确定值的单元中,使用具有随机值的单元来产生随 机数,和使用表示固定值的单元来产生芯片ID。不确定值的产生原理如以上描述的第一和第二非专利文献中所公开的,FF和SRAM存储单元在通电时 具有不确定值是熟知的事实。下文中,将参照附图给出对不确定值的产生原理的简要描述。这两种单元在通电时指示不确定值是由于这两种单元的结构。图1是图示出D触 发器(D-FF)的结构的图。图1(a)图示出总体结构,而图1(b)图示出详细结构。图2是图示出SRAM存储单元的结构的图。图2 (a)图示出总体结构,而图2 (b)图 示出一个存储单元的详细结构。这两种单元都具有包括彼此连接的两个反相器以记忆0或1的比特信息的结构。 它们是图1中的反相器11和12,图2中的反相器21和22。
图3A是触发器(FF)和SRAM单元都有的包括彼此连接的反相器31和32的结构 的局部视图。在图3A中示出的反相器连接结构中,A和B的单独电势能够具有两个稳定状 态(H,L)或(L,H)。FF和SRAM单元通过单独将这两个稳定状态与数字数据的1和0相关 来将这两个稳定状态存储为FF设置值的数据。在常规工作时间,为了将FF设置值确定为稳定状态之一而执行控制,比如从外部 持续地施加电压等,因而FF设置值不变为不确定值。然而,因为在通电时,初始的设置值由 晶体管的制造变量、电压变量、噪声等确定,所以初始状态稳定时的值对每个单元都不同。图3B是图示出图3A中示出的单元采用金属氧化物半导体场效应晶体管(MOSFET) 元件的图。在图3B中,考虑通电时的初始状态的处理,即,当图3B中示出的结构中的部件 X的电压从0变化到Vdd时的处理。当部件X具有0电压时,P沟道金属氧化物半导体管 (PMOS) 41和42均是在导通状态,因而A和B的电势是0。在通电时,A和B的电势升高。如果PMOS 41和42的阈值不完全匹配,则阈值较 低的PMOS变为关断状态。在此情况下,变为关断状态的PMOS A和B之一的电势降到0,且 A或B最终变为稳定状态(Vdd,0)或(0,Vdd)。总之,由于晶体管的制造变量、电压变量、噪 声等,MOS晶体管的阈值不匹配,所以通电时的稳定值由物理条件确定,从而每个单元都不 同,因此变得不确定。在这点上,对每个FF和每个SRAM单元,因为特性上的差异所以初始设置值不同。 某一单元在每次通电时指示不同值,因而与始终指示固定值的单元不同。这是由这两个 PMOS的阈值和物理条件确定的。在这种情况下,每次通电时的FF个体的值被分为随机值和固定值。在上述第一 非专利文献的方法中,最多仅使用约40个FF。因此,在包括大量具有固定值的FF的情况 下,无法充分地获得随机数。在这点上,在M. Dichtl,“How to predict the Output of a Hardware Random NumberGenerator,,,CHES2003, LNCS vol. 2779, Springer-Verlag, 2003, PP. 181-188(下文中称为第三非专利文献)中指出了类似的问题。想到了增加FF的数量作 为解决该问题的对策,但是这将造成门的尺寸的增大。因此,这实际上很难。在第二非专利文献的配置中,使用SRAM存储单元而不是FF,因而能够确保充足的 不确定并且随机变化的单元。第二非专利文献揭示为获得128比特长度的随机比特需要 2048比特存储单元数据。因此,第二非专利文献中公开的使用存储单元的配置能够确保足 量的比特,从而解决了上述第一非专利文献的问题。然而,在使用FF或SRAM存储单元的情况下,如果使用这些配置产生的数据被用于 加密处理中的随机数、计算数据、验证数据等,则数据经常是秘密信息。因此,需要采用不容 易让所产生的数据暴露于外界的配置。因此,如果使用具有上述非专利文献中所述的处理 配置的FF和SRAM存储单元来提供用于获得随机数的专用电路,并将安全电路用于该专用 电路以使数据不暴露于外界,则会引起集成电路的面积增加和成本增加。
发明内容
例如由于以上情况做出本发明。期望提供能够使用现有器件中的触发器(FF)而 无需提供新的触发器(FF)电路来产生比如随机数、ID等数据的半导体集成电路、信息处理 设备和方法以及程序。
根据本发明的一种实施方式,提供一种半导体集成电路,包括多个触发器,被连 接到被设置为集成电路测试路径的扫描链;以及数据收集部分,通过所述扫描链或独立的 连接路径获取连接到所述扫描链的所述多个触发器的设置值,其中所述数据收集部分获取 已对所述多个触发器通电时的触发器的设置值,并且基于所获取的值执行随机数或随机数 产生数据或固定数据的产生处理。此外,上述实施方式还可包括控制部分,其执行对用于通过所述扫描链进行扫描 测试的扫描测试模式和用于通过所述扫描链进行数据收集的数据收集模式的切换的控制, 其中根据所述控制部分中到所述数据收集模式的切换,所述数据收集部分获取所述触发器 的设置值。此外,在根据上述实施方式的半导体集成电路中,所述控制部分具有能够先向连 接到所述扫描链的所述多个触发器供电的配置,并且对所述多个触发器的通电处理在所述 控制部分的控制下进行。此外,在根据上述实施方式的半导体集成电路中,所述数据收集部分可以通过从 通电时所述多个触发器的设置值中选择对应于特定触发器的设置值来产生所述固定数据。此外,在根据上述实施方式的半导体集成电路中,所述数据收集部分可产生或保 持触发器确定数据,所述触发器确定数据区分在通电时保持固定的设置值的固定值设置触 发器和在通电时保持不确定的设置值的不确定值设置触发器,并且通过应用所述触发器确 定数据,所述数据收集部分可从通电时所述多个触发器的设置值中只选择性地获取所述固 定值设置触发器的设置值,并可从所获取的数据产生所述固定数据。此外,在根据上述实施方式的半导体集成电路中,所述数据收集部分可以产生作 为对应于所述半导体集成电路的标识信息(ID)的所述固定数据。此外,在根据上述实施方式的半导体集成电路中,所述数据收集部分可以执行向 包括在所述半导体集成电路中的所述数据处理部分提供通过获取所述触发器的设置值而 产生的值的处理。此外,根据本发明的另一实施方式,提供包括上述半导体集成电路的信息处理设备。此外,根据本发明的另一实施方式,提供在信息处理设备上处理信息的方法,所述 方法包含以下步骤数据收集部分通过扫描链或独立的连接路径获取被连接到所述扫描链 的多个触发器在通电时的设置值,所述扫描链被设置为集成电路的测试路径;以及基于所 获取的包括已对所述多个触发器通电时的触发器的设置值的值,所述数据收集部分执行随 机数或随机数产生数据或固定数据的产生处理。此外,根据本发明的另一实施方式,提供用于在信息处理设备中进行信息处理的 程序,所述程序包含以下步骤数据收集部分通过扫描链或独立的连接路径获取被连接到 所述扫描链的多个触发器在通电时的设置值,所述扫描链被设置为集成电路的测试路径; 以及基于所获取的包括已对所述多个触发器通电时的触发器的设置值的值,所述数据收集 部分执行随机数或随机数产生数据或固定数据的产生处理。在这点上,根据本发明的程序是可以通过记录介质或通信介质以计算机可读格式 提供给例如图像处理设备或能够执行多种程序代码的计算机系统的程序。由于以计算机可 读格式提供这种程序,在图像处理设备或计算机系统上可执行根据该程序的处理。
通过以下详细描述的本发明的实施方式和参照附图对其的详细描述,要解决的上 述和其它的问题以及本发明的特征和优点将变得显而易见。在这点上,在本说明书中,系统 是多个设备的逻辑集合,而具有各种组件的这些设备并不必须包含在同一机箱中。通过本发明的一种实施方式,提供数据收集部分以获取来自连接到被设置为集成 电路(比如大规模集成电路(LSI)等)的测试路径的扫描链的多个触发器在通电时的触发 器设置值。数据收集部分通过扫描链或独立的连接路径获取通电时的触发器设置值,并基 于所获取的值执行随机数或作为固定值的ID的产生处理。通过这种配置,能够使用且不改 变在集成电路(比如LSI等)上形成的已有的触发器来产生随机数和ID。
图1是图示出D触发器(D-FF)的结构的图;图2是图示出SRAM存储单元的结构的图;图3A和3B是图示出触发器(FF)和SRAM单元都有的包括彼此连接的反相器的结 构的图;图4是图示出作为半导体集成电路的例子的LSI的配置的例子的图;图5是图示出根据本发明的半导体集成电路的配置的例子的图;图6是图示出应用了根据本发明的半导体集成电路的数据产生处理序列的流程 图;图7是图示出产生随机数和ID以及其使用处理的具体的例子的图;图8是图示出伪随机数产生部分的配置和处理的例子的图;图9是图示出ID产生处理和使用处理的图;图10是图示出数据收集部分的配置的例子的图;图11是图示出由数据收集部分的数据提取部分执行的处理的具体例子的图;图12是图示出由数据收集部分的数据提取部分执行的处理的具体例子的图;图13是图示出数据收集部分的后处理部分的配置和处理的具体例子的图;图14是图示出数据收集部分的后处理部分的配置和处理的具体例子的图;图15是图示出数据收集部分的后处理部分的配置和处理的具体例子的图;图16是图示出根据本发明的半导体集成电路的配置的例子的图;图17是图示出根据本发明的半导体集成电路的配置的例子的图;以及图18是图示出应用了根据本发明的半导体集成电路的数据产生处理顺序的流程 图。
具体实施例方式以下,将参照附图给出对根据本发明的一种实施方式的半导体集成电路、信息处 理设备和方法以及程序的详细描述。描述将按照以下条目进行1.关于半导体集成电路中的扫描测试;2.关于根据本发明的一种实施方式的半导体集成电路;3.关于数据产生处理序列;4.关于随机数和ID信息的产生处理和使用处理的例子;
5.关于数据收集部分的详细配置;6.关于配置的其它例子;6. 1使用不同于扫描链的FF连接路径的例子;6. 2改变了供电配置的例子。1.关于半导体集成电路中的扫描测试图4图示出作为半导体集成电路的例子的LSI 100。LSI 100具有组合电路112, 该组合电路112包括执行数据处理(比如计算等)的多种电路单元。此外,在LSI 100上 形成将被用于寄存器、缓存存储器等的大量触发器(FF) 111。如图4所示,在作为半导体集成电路的LSI芯片或IC芯片上形成扫描链110,该扫 描链110使用与实际导线连接不相关的连接线将芯片中形成的大量触发器(FF) 111连接起 来。使用形成为触发器(FF)Ill的连接部件的扫描链110在FF之间传递数据,从而能够直 接控制和观察FF的状态,以检测电路的物理故障。以此方式,扫描链在LSI或IC芯片的设 计阶段和制造阶段被用作测试电路。由扫描链110连接的FF 111可作为一个大的移位寄存器来操作,从而能够向连接 到用于检测故障的节点的每个FF输入(扫描入)来自输入部分(SCAN_IN)101的测试图案 (测试模式)。随后,根据系统时钟来操作电路,使得能够从输出部分(SCAN_0UT)102输出 (扫描出)状态发生改变的FF的期望值。通过检验该输出值,能够进行比如故障部件的确 定等电路测试。为了测试电路,扫描链110被连接到LSI中所包括的几乎全部FF。在这点上,下 文中给出对使用作为半导体集成电路的例子的LSI的例子的描述。然而,本发明并不限于 LSI,而可被应用于其上形成有多个FF的IC芯片以及半导体集成电路。连接到扫描链的FF的数量取决于LSI和其实现的大小,因此很难具体陈述。然而, 在本发明的环境下,提供具有约一百万个门的大小的LSI。因此,可以假定LSI包含大量的 FF0在这点上,非常长的扫描链增加了扫描时间,因此有时将扫描链划分为多个片段进行封 装。2.根据本发明的一种实施方式的半导体集成电路图4中示出的电路具有数字电路中的通用电路配置。从输入部分(SCAN_IN) 101 到输出部分(SCAN_0UT) 102的连接配置代表扫描链110。将参照图5描述根据本发明的半导体集成电路的配置的例子。在图5中示出的LSI 中,电路部分130具有与先前参照图4描述的相同的电路配置。也就是说,LSI 130具有包 括执行数据处理的多种电路单元的组合电路133。此外,LSI 130具有用于寄存器、缓存存 储器等的大量触发器(FF) 131。大量触发器(FF) 131通过导线连接,并形成扫描链132。扫 描链132被提供为用于集成电路的测试路径。根据本发明的LSI 120具有在扫描链132的中部或在最终输出部分中的用于收集 通过扫描链132连接的FF的值的数据收集部分141。此外,LSI 120具有用于控制扫描操 作(扫描模式)与正常LSI操作(LSI操作模式)之间布线的变化以及用于控制数据收集 部分141的控制部分142。以与图4中示出的上述电路类似的方式,使用扫描链132的测试处理是通过向检 测出故障的每个FF输入(扫描入)来自输入部分(SCAN_IN)121的测试图案(测试模式)来执行的。随后,根据系统时钟来操作电路,使得能够从输出部分(SCAN_0UT)122输出(扫 描出)状态发生改变的FF的期望值。从而能够检验故障。图5中示出的配置是其中数据收集部分141被设置在扫描链132的最终输出部分 处的例子。也就是说,数据收集部分141被布置在输出部分(SCAN_0UT)122之前。数据收集部分141通过LSI 120中的扫描链132获得通过扫描链132连接的FF 131的值。例如,数据收集部分141收集通电时的FF设置值。通电时的FF设置值包括许多 不确定的值。如上所述,在通电时,触发器(FF)有时具有随机值,即不固定为1或0的值。 例如,数据收集部分141通过扫描链收集通电时这样的多个触发器(FF)的设置值。所收集 的值被用于随机数和ID。如上所述,对于不同的单元,触发器(FF)具有不同特性。根据通电时的初始设置 模式,触发器(FF)能够被分为以下两种单元(a)指示随机的不确定值的单元不确定值设置单元(不确定值设置FF);(b)始终指示固定值的单元固定值设置单元(固定值设置FF)。FF能够被分为以上两种单元。这是基于两种PMOS的阈值和物理条件而确定的。从不确定值设置单元(不确定值设置FF)获得的每次通电时指示不同设置值的值 能够被用于随机数,所述随机数被应用于例如计算处理、加密处理等。另外,从固定值设置单元(固定值设置FF)获得的每次通电时指示固定值的值能 够被用于例如用于LSI芯片的ID等。在这点上,当由数据收集部分141收集的值被用于随机数和对应于LSI芯片的ID 等时执行处理,使得由数据收集部分141获得的值被输出给LSI 120中的计算电路或存储 器等并被使用。随后将给出对该处理配置的描述。LSI芯片中的大量FF被连接到扫描链,因此能够获得足量比特的数据而无需扩大 芯片面积。例如,能够获得由包括几十比特到几百比特的比特串所示的值。因此,能够使 用所获得的值产生和使用随机数和ID。数据收集部分141和扫描链132之间的连接能够以多种方式实现。在图5中示出 的例子中,一个扫描链提供输入给数据收集部分141。例如,有时布置多个扫描链以有效地 进行测试。如果多个扫描链被布置在LSI上,则数据收集部分可以并行地或选择性地收集 这多个扫描链的数据。如果数据收集部分被配置为接收多个扫描链的输入数据,则能够在 数据收集部分中布置合并处理部分,从而合并从扫描链个体输入的数据,合并的结果能够 被用作随机数和ID。3.关于数据产生处理序列接下来将参照图6中示出的流程图给出对应用了根据本发明的例如具有如图5中 示出的配置的半导体集成电路的数据产生处理序列的描述。步骤SlOl中,对LSI 120通电。根据个体物理条件上的差异,FF个体保持FF中 的初始设置值0或1。步骤S102中,控制部分142的操作开始。控制部分142将FF的模式切换为扫描 模式,从而能够使用扫描链132。步骤S103中,将连接到扫描链132的触发器(FF)保持的数据通过扫描链132输入给数据收集部分141。根据要产生随机数还是要产生ID,数据收集部分141在其内部进 行必要的处理,并随后将数据输出或保存。步骤S104中,在数据收集部分141收集了数据之后,控制部分142释放扫描模式, 复位FF以初始化,并将模式切换为正常LSI操作模式。步骤S105中,在LSI操作模式的状态下,在步骤S103中由数据收集部分获得的数 据被提供给LSI 120中的安全块,并被用于随机数或随机数产生数据或ID (例如应用于LSI 芯片标识符的特定值(ID)等)等。在这点上,如上所述,触发器各自具有不同的单元特性,并且包括在通电时具有随 机的初始设置值的单元和在该时间具有固定值的单元。也就是说,存在以下两种单元(a)指示随机的不确定值的单元不确定值设置单元(不确定值设置FF);(b)始终指示固定值的单元固定值设置单元(固定值设置FF)。如果由数据收集部分获得的数据是用作随机数,则能够使用上述两种单元的输出 值的混合数据。然而,如果数据是用作ID,则该数据必须始终为固定数据。因此,需选择从 特定固定值设置单元(固定值设置FF)获得的数据。下面将给出对该处理的描述。4.关于随机数和ID信息的产生处理和使用处理的例子下面,将参照图7和其后的附图来给出对参照图6描述的处理中的步骤S105中的 随机数和ID的产生和使用处理的具体例子的描述。4. 1关于随机数产生处理和使用处理首先,将参照图7和图8给出对随机数产生处理和使用处理的描述。图7中示出 的LSI 120是与图5中示出的LSI 120相同的LSI。图中只示出了涉及随机数产生处理的 组成部分。数据收集部分141在通电时通过扫描链132从LSI 120获取FF设置值。将具有 针对连接到扫描链的FF的数量的比特长度的数据输入给数据收集部分141。例如,如果有 100个FF连接到扫描链,则将100比特的数据输入给数据收集部分141。数据收集部分141将从扫描链132输入的数据提供给安全数据处理部分150。 安全数据处理部分150具有执行随机数产生处理的伪随机数产生部分(伪随机数产生器 (PRNG)) 1510在安全数据处理部分150中,来自数据收集部分141的输入数据被输入给伪 随机数产生部分(PRNG) 151,从而执行随机数产生处理。将所产生的随机数输出给数据处理 部分160。数据处理部分160例如执行比如公共密钥加密或数据签名算法或认证协议等处 理。将参照图8给出对伪随机数产生部分(PRNG) 151的配置和处理的描述。伪随机数 产生部分(PRNG) 151的种子输入部分152输入要用于产生随机数的来自数据收集部分141 的输入比特串的种子。随机数输出部分153获取来自种子输入部分152的种子,并且将预定的伪随机数 产生算法应用于产生和输出具有预定位(比特)数的随机数。例如,随机数输出部分153使 用种子作为初始值,根据预定的算法来更新内部状态,并且连续地产生随机数比特串(随 机比特序列),并将其输出到数据处理部分160。4. 2关于ID产生处理和使用处理接下来,将参照图9给出对ID参数处理和使用处理的描述。将给出对由数据收集部分通过扫描链从多个FF获得的数据是用作ID的处理的例子的描述。在这点上,如果数据 是用作ID,则该数据必须始终是固定数据,因而选择和使用从具体的固定值设置单元(固 定值设置FF)获得的数据。将在之后给出对该处理的描述。首先,参照图9描述使用ID的 例子。ID是与每个LSI相关联地设置的(例如作为LSI特定标识符(ID))。并且在图9 中示出的LSI管理数据库210中通过关联ID和制造信息等来管理ID。该数据能够被用于 例如LSI制造厂中的管理信息等。图9中示出的是LSI制造厂中在图9(a)中示出的LSI管理数据库210中产生和 管理涉及LSI芯片特定ID和制造信息的LSI特定管理信息的例子。如图9(b)中所示,大 量的LSI芯片被制造。在LSI芯片个体中,LSI芯片ID被确定为包括由数据收集部分141 通过连接FF的扫描链132所收集的FF设置值的比特串。将该ID与制造信息相关联地存 储在数据库210中。以此方式,在LSI制造时获得LSI特定ID,并将其与制造信息绑定,使得在芯片出 货后所述信息能够被用于故障分析。此外,为了其它用途,还能够使用ID作为对秘密信息 的加密和对每个芯片的验证的密钥。此外,例如在向安装有LSI的PC提供应用程序等情况 下,还能够使用ID作为许可信息。也就是说,ID能够被用作硬件特定信息。关于数据收集部分的详细配置接下来,将给出对图5中示出的数据收集部分141的配置和处理的详细描述。图 10中示出数据收集部分141的配置的例子。如图10所示,数据收集部分141具有改变部分221、数据提取部分222、后处理部 分223以及数据存储部分224。根据通过接收来自控制部分142的模式切换信号而进行的模式切换,改变部分 221改变从扫描链132输入的数据的输出目的地。也就是说,如果模式被设置为数据收集模 式,则改变部分221输出从扫描链132输入的数据给数据提取部分222。如果模式被设置为扫描测试模式,则改变部分221输出从扫描链132输入的数据 给输出部分(SCAN_0UT)122。如果模式被设置为数据收集模式,则根据模式切换,改变部分221执行输出控制, 使得不能够通过输出部分(SCAN_0UT) 122从外部观察到所收集的数据。如果模式被设置为数据收集模式,则改变部分221输出从扫描链132输入的数据 给数据提取部分222。数据提取部分222是从通过扫描链132发送的比特串获取必要数据的块。后处理部分223是具有如下功能的功能单元将通过扫描链132收集的数据序列 处理为产生随机数或产生芯片ID的必要数据。也就是说,后处理部分223执行以下处理 将由比特串形成的数据序列处理为产生随机数或产生芯片ID所必要的数据,所述比特串 包括按照连接到扫描链的顺序的FF的设置值。另外,数据存储部分224具有保存被后处理部分223处理的数据(即随机数和ID) 的功能。数据存储部分224具有以下功能根据对获取而言必需的数据量,使用例如无休息 FF、非易失性存储器和易失性存储器来保持数据。在这点上,取决于通过扫描链132收集的数据是用于随机数还是ID,数据提取部分222、后处理部分223以及数据存储部分224有时执行不同处理。数据提取部分222、后 处理部分223和数据存储部分224接收来自控制部分142的获取数据标识信号的输入,并 改变处理模式。在这点上,任何一个处理可以被设置为根据LSI芯片来执行,即可以执行随 机数的产生或作为固定数据的ID的获取。在这种情况下,数据提取部分222、后处理部分 223和数据存储部分224能够执行固定的处理,从而来自控制部分142的获取数据标识信号 将不再必要。下文中,将给出对数据提取部分222、后处理部分223和数据存储部分224的具体 处理的例子的描述。数据提取部分222的处理数据提取部分222是从通过扫描链132发送的比特串获取必要数据的块。如之前所述,触发器(FF)各自具有不同的单元特性,并且包括在通电时具有随机 的初始设置值的单元和在该时间具有固定值的单元。也就是说,存在以下两种单元(a)指示随机的不确定值的单元不确定值设置单元(不确定值设置FF);(b)始终指示固定值的单元固定值设置单元(固定值设置FF)。如果由数据收集部分获得的数据被用作随机数,则能够使用上述两种单元的输出 值的混合数据。然而,如果数据是用作ID,则该数据必须始终为固定数据。因此,需要对从 具体的固定值设置单元(固定值设置FF)获得的数据进行选择。数据提取部分222接收由比特串形成的数据序列,所述比特串包括按照连接到扫 描链132的顺序排列的FF的设置值。数据序列是具有不确定值设置单元(不确定值设置 FF)和固定值设置单元(固定值设置FF)的混合比特值的数据串。如果获得或产生随机数,则能够使用不确定值设置单元(不确定值设置FF)和固 定值设置单元(固定值设置FF)的比特值的混合数据。然而,如果获得ID,则需要执行处 理,使得只选择和获得固定值设置单元(固定值设置FF)的比特值。因此,如果所获得的数据是用于产生随机数等,则数据提取部分222提取必要位 数的数据并输出所述数据给后处理部分223,而无需对要从扫描链132获得的数据进行选 择。在另一方面,如果所获得的数据是用于ID等,则数据提取部分222从由扫描链132 所获得的数据中只选择和获得固定值设置单元(固定值设置FF)的比特值,并输出所述比 特值给后处理部分223。根据所获得的数据,数据提取部分222执行两种不同处理之一。下文中将参照图11和图12给出对处理的两个具体例子的描述。图11是图示出在所获得的数据是用于产生随机数等的情况下数据提取部分222 的处理的例子的图。也就是说,数据提取部分222提取必要位数的数据并输出所述数据到 后处理部分223,而无需对将从扫描链132获得的数据进行选择。图IlA图示出将从扫描链132获得的数据序列的例子。该图代表包括连续的0或 1的比特串,黑色单元代表1,而白色单元代表2。右端是扫描链的起始比特,左端是扫描链 的最后比特。在该例子中,不需要从由扫描链132所获得的数据序列中区分不确定值设置单元 (不确定值设置FF)和固定值设置单元(固定值设置FF)的比特值。提取块执行处理,以从由设计者简单确定的比特值获取起始位置(S)起提取在后续阶段中后处理块必需的必要 比特大小(W)。可以通过收集从例如图IlA中示出的比特串的一个起始位置开始的比特串来执 行切断处理,或者可以通过收集从如图IlB中示出的多个起始位置开始的比特串来执行切 断处理。此外,如上所述,有时在LSI上设置多个独立的扫描链。在此情况下,如图IlC中所 示,可从多个扫描路径中选择性地提取将获得的比特串。另外,图11A、11B、11C被适当地组 合以从之提取。以此方式,具有所提取的比特大小(W)的比特串被输出给后处理部分223。接下来,参照图12给出对从扫描链产生固定数据(例如ID)的情况的处理的描 述。在此情况下,数据提取部分222执行用于从扫描链的输入值中只选择固定值设置单元 (固定值设置FF)的比特值的处理。如果执行此处理,则例如在LSI芯片制造等时执行多次通电处理作为预处理,从 而执行检验处理,以针对每个通电处理找到指示固定值的FF所布置的位置。也就是说,应 该预先执行对连接到扫描链的多个FF是否是固定值设置单元(固定值设置FF)的检测处 理。固定值设置FF的位置数据被保持在非易失性存储器等中。图12(a)中示出的数据是由预处理产生的掩模数据。也就是说,该数据是区分在 通电时保持固定值的固定值设置触发器和在通电时保持不确定设置值的不确定值设置触 发器的触发器确定数据。在掩模数据中,固定值设置FF的位置用“白色”标记,而不确定值设置FF的位置 用“阴影线”标记。在数据提取部分222中,掩模数据被保持的非易失性存储器等中。图12(b)示出在获取ID的情况下从扫描链132输入的比特序列。数据提取部分 222从该输入的比特序列中只选择固定值设置FF的位置的比特值。图12(a)中示出的掩模 数据被用于选择处理。图12(a)中示出的掩模数据中的白色部分是固定值设置FF的位置, 并通过只使用这些部分获得固定值数据。结果,仅图12(c)中示出的有效区域的数据被获得。有效区域的数据是布置在固 定值设置FF的位置的比特数据。因此,能够获得始终包括固定比特值的数据。在这点上, 例如,如果所获得的数据是用于ID,则从图12(c)中的有效区域中选择具有从固定起始位 置起的固定比特长度的数据。通过该处理,能够获得始终相同的固定比特串,并能够例如使用该数据作为LSI 芯片的ID。在这点上,图12中的例子是其中只选择在固定值设置FF的位置处的比特数据用 作ID的例子。相反地,能够使用通过只选择不确定值设置FF的数据作为随机数。在此情 况下,使用具有相对于图12(a)中示出的掩模数据反转了的图案(模式)的掩模数据,只选 择不确定值设置FF的数据。在参照图11描述的例子中,固定值设置FF和不确定值设置FF 的数据被混合以用于随机数。通过以这种方式的设置,能够产生只包括不确定值设置FF的 不确定比特数据而不包括固定值设置FF的固定比特的随机数。后处理部分223的处理接下来,将给出对数据收集部分141中的后处理部分223的处理的描述。后处理 部分223输入来自数据提取部分222的由数据提取部分222产生的随机数数据或ID数据。后处理部分223执行用于产生随机数和产生ID的不同操作。下文中依次给出对产生随机 数的情况和产生ID的情况的处理的描述。在随机数产生处理的情况下在随机数产生处理的情况下,所产生的随机数随后被提供给LSI中的计算处理部 分,并例如被应用于加密处理的计算等。因此,随机数比特的必要数量变为根据LSI中所使 用的算法的比特数所确定的比特数(位数)。具有针对计算处理而言必要的位数的随机数可以仅仅由预先从扫描链输入的比 特形成,并且可以存储在数据收集部分141的数据存储部分224中。在此情况下,后处理部 分223不对由数据提取部分222获得的具有比特长度(W)的比特串执行处理,而应当将该 比特串存储到数据存储部分224中。然而,例如,在LSI中执行的算法中所使用的随机数的比特大小较大等情况下,随 机数有时不能被存储在数据存储部分224中。此外,假定LSI中所使用的算法使用多个不 同随机数等。在这种情况下,将会实施如下所述的配置将由从扫描链输入的比特形成的比特 序列用作用于产生伪随机数的种子数据。下文中给出对具有种子产生的伪随机数产生的配 置的描述。例如,使用从扫描链输入的比特产生作为伪随机数产生(PRNG)算法的初始值的 具有约160比特的种子。图13图示出进行种子产生处理的后处理部分223的配置的例子。如图13中所示,后处理部分223具有用于对来自数据提取部分222的输出执行偏 移平滑处理的偏移平滑部分(偏移校正器)301以及用于提高偏移平滑部分301的输出的 统计质量的混合部分(混合功能单元)302。偏移平滑部分301执行基于从数据提取部分222输出的预定大小(W)的比特串产 生预定大小(W2)的比特串数据的处理。比特大小可以被缩短或扩展。能够将多种算法应 用于比特大小转换处理。例如,能够采用用于执行应用了现有的冯诺依曼(von Neumann) 算法的处理的配置。此外,混合部分302使用哈希(hash)函数和块加密压缩从偏移平滑部分301输出 的具有比特大小(W2)的数据串的比特大小,以产生具有与预设置的种子对应的比特大小 (W3)的比特串。能够将以下文献中描述的处理应用于该处理例如,A. Soohoo, "Lockdown Random NumbersSecure Network SoC Designs",CommsDesign. com,www. commsdesign. com, April 01,2003。在这点上,图13中示出的后处理部分223的配置的例子是一个例子。并且可以采 用其它配置,只要能够基于从数据提取部分222输入的比特串产生具有预定比特大小的种 子。例如,配置可以只包括偏移平滑部分301或可以只包括混合部分302。另外,针对后处理部分223的配置,如图14所示,可以添加在线测试部分303以检 查从数据提取部分222输出的数据的质量。在线测试是其中安装了由设计者设置的测试项目的块。通过了此测试的值被选择 部分304选择,并被采用为种子值。测试项目的例子包括将比特数据串偏移O或1的观察 处理、观察在数据串中相同值是否连续等。只有在设置的是通过了预设置的测试结果的比 特串的情况下,值才被作为种子值输出。
在固定数据(比如ID等)产生处理的情况下下面,将给出对在产生固定数据(比如ID等)的情况下数据产生部分141中的后 处理部分223的处理的描述。当产生固定比特串(比如ID)时,必须执行处理,使得不由于 例如噪声等产生错误的比特串。具体地,例如,必须对输入的比特值执行错误校正。图15图示出执行固定数据(比 如ID等)的产生处理的后处理部分223的配置的例子。图15中示出的后处理部分223具 有错误校正部分(纠错码(ECC)解码)305。错误校正部分305是通过对来自数据提取部分222的输出进行错误校正来执行解 码处理(ECC解码)的块。在错误校正部分305执行错误校正之后,错误校正部分305输出 作为ID的数据。此外,错误校正部分305在比如芯片制造时等前阶段中设置用于执行错误 校正的奇偶性,并将该数据存储在数据存储部分224中。或者,错误校正部分305将该数据 存储在由其它非易失性存储器形成的存储器等中。6.关于配置的其它例子6. 1使用不同于扫描链的FF连接路径的例子至此给出了对帮助测试的设计技术中使用扫描链的方法的描述。然而,能够使用 不使用已有的扫描链的方法。例如,作为图16中示出的LSI 400,可以采用不使用已有的扫描链401的配置。设 置包括特定触发器(FF)的FF电路块402,设置将FF电路块402中的FF连接起来的FF连 接路径405,且FF连接路径405被连接到数据收集部分410。用此配置,能够输入FF电路 块402中的FF的设置值(通电时的设置值)。在这点上,没有给图16中示出的配置提供控制部分,而数据处理部分410只在通 电时执行处理。或者,还允许采用如下配置其中提供具有与先前参照图5描述的相同配置 的控制部分,并且在该控制部分的控制下根据通过输入模式切换信号进行的模式切换来执 行处理。6. 2改变了供电配置的实施方式如上所述,在参照图5和其后的图描述的LSI中,数据收集部分141在开启对LSI 120的供电时通过扫描链收集FF设置值。然而,数据收集部分141执行的数据收集处理与 开启对LSI 120的供电几乎同时执行。另外,在开始数据收集的同时或之前,有时需要从控 制部分142向数据收集部分141等输入控制信号。然而,如果在此同时电才被供应到控制 部分142,可能不会执行正确的控制。因此,为了解决这个问题,如图17中所示,提供用于LSI 120的供电配置。向包括 扫描链532和数据收集部分541的电路A部分511提供与包括控制部分542的电路B部分 512的电源不同的电源。也就是说,提供两个电源系统,并先对对应于控制部分542的电路 B部分512进行供电。而且,在控制部分542的控制已经可靠地变为可执行状态之后,通过 向电路A部分511供电开始从扫描链532的数据收集处理。将参照图18中示出的流程图给出对根据此配置的处理序列的描述。步骤S201中,开启对包括控制部分542的控制块的供电。接下来,步骤S202中,在控制部分542关停对电路A部分511的供电或确定供电 已经被关停之后,控制部分542开启对电路A部分511的供电。通过该操作,取决于每个物理条件上的差异,包括在电路A部分511中的每个FF保持FF中的初值设置值0或1。步骤S203中,控制部分542将FF的模式切换为扫描模式以允许使用扫描链532。步骤S204中,连接到扫描链532的触发器(FF)保持的数据被通过扫描链532输 入给数据收集部分541。根据要产生随机数还是要产生ID,数据收集部分541在其内部进 行必要的处理,并随后将数据输出或保持。步骤S205中,在数据收集部分541执行了数据收集之后,控制部分542释放扫描 模式,复位FF以初始化,并将模式切换为正常LSI操作模式。步骤S206中,在被设置为LSI操作模式的状态下,在步骤S204中由数据收集部分 获得的数据被提供给LSI 520中的安全块。并且将该数据用于随机数或随机数产生数据或 ID(例如应用于LSI芯片标识符的特定值(ID)等)等。在参照图17和图18描述的配置中,先对控制部分542供电。并在控制部分542 的操作变为稳定之后,开启对扫描链的FF个体的供电,因此能够在控制部分542的控制下 可靠地收集通电时FF的设置值。如上所述,在根据本发明的配置中,能够直接使用安装在LSI芯片上的FF来执行 随机数产生处理或ID产生处理,而无需添加专用FF,从而能够实现防止芯片面积增加和成 本增加的配置。而且,由数据收集部分收集的数据能够被供应给LSI中的计算电路,而不存 在所收集的数据被错误地输出到外部的可能性,从而能够有保护地安全地执行处理。通过 使用本发明,能够在多种数字电路中产生随机数和芯片ID。在这点上,在以上描述的实施方式中,主要给出了对集成电路的配置的描述。然 而,能够将以上实施方式中描述的半导体集成电路安装在例如信息处理设备(比如PC等) 上,并在信息处理设备中执行随机数产生或ID产生的处理等。使用在LSI芯片中的存储器 中存储的程序,可在以上实施方式中描述的LSI芯片中的控制部分中执行对处理的控制。 或者,可以采用以下配置在该配置中使用在与信息处理设备中的LSI芯片连接的其它LSI 单元中形成的控制部分或存储器来执行程序,以输入命令到具有以上描述的配置的LSI芯 片来产生随机数和ID。已经通过参照具体实施方式
详细说明了本发明。然而,显然本领域技术人员可在 不背离本发明的精神的情况下对这些实施方式进行修改和替换。也就是说,本发明是以例 子的形式公开的,而不应被狭隘地理解。为了确定本发明的主旨,应当考虑所附的权利要 求。另外,本说明书中描述的系列处理能够由硬件或由软件或由这两者的组合来执 行。当处理是由软件执行时,记录处理序列的程序可被安装在用专用硬件搭建的计算机的 存储器中。或者,多种程序可以在能够执行多种处理的通用计算机中安装和执行。例如, 程序可以被预先记录在记录介质中。除了从记录介质到计算机的安装,程序可以通过网络 (比如LAN(局域网)和因特网)来接收,并可被安装在记录介质(比如内部硬盘等)中。在这点上,本说明书中描述的各种处理可不仅按照根据本说明书的时间顺序来执 行,还可以根据执行处理的设备的处理能力或者按照需要并行地或单独地来执行。另外,本 说明书中的系统是多个设备的逻辑集合,而不限于包含在同一机箱中的一套组成设备。本发明包含的主题涉及于2009年5月18日递交日本专利局的日本优先权专利申 请JP2009-120411的内容,因此通过引用将该申请的整体内容合并于此。
本领域技术人员应当理解,根据设计要求和其它因素,可以在所附权利要求或其 等同方案的范围内进行各种修改、组合、子组合和变型。
权利要求
一种半导体集成电路,包括多个触发器,所述触发器被连接到被设置为集成电路的测试路径的扫描链;以及数据收集部分,其通过所述扫描链或独立的连接路径获取连接到所述扫描链的所述多个触发器的设置值,其中所述数据收集部分获取已对所述多个触发器通电时的触发器的设置值,并基于所获取的值执行随机数或随机数产生数据或固定数据的产生处理。
2.根据权利要求1所述的半导体集成电路,还包括控制部分,所述控制部分执行对用 于通过所述扫描链进行扫描测试的扫描测试模式和用于通过所述扫描链进行数据收集的 数据收集模式的切换的控制,其中根据所述控制部分中到所述数据收集模式的切换,所述数据收集部分获取所述触 发器的设置值。
3.根据权利要求2所述的半导体集成电路,其中所述控制部分具有能够先向连接到所述扫描链的所述多个触发器供电的配置,并 且对所述多个触发器的通电处理在所述控制部分的控制下进行。
4.根据权利要求1所述的半导体集成电路,其中所述数据收集部分通过从通电时所述多个触发器的设置值中选择与特定触发器 对应的设置值来产生所述固定数据。
5.根据权利要求4所述的半导体集成电路,其中所述数据收集部分产生或保持触发器确定数据,所述触发器确定数据区分在通电 时保持固定的设置值的固定值设置触发器和在通电时保持不确定的设置值的不确定值设 置触发器,并且通过应用所述触发器确定数据,所述数据收集部分从通电时所述多个触发器的设置值 中只选择性地获取固定值设置触发器的设置值,并从所获取的数据产生所述固定数据。
6.根据权利要求4或5所述的半导体集成电路,其中所述数据收集部分产生作为对应于所述半导体集成电路的识别信息(ID)的所述 固定数据。
7.根据权利要求1至6中任意一项所述的半导体集成电路,其中所述数据收集部分执行向包括在所述半导体集成电路中的所述数据处理部分提 供通过获取所述触发器的设置值而产生的值的处理。
8.一种包括根据权利要求1至7中任意一项所述的半导体集成电路的信息处理设备。
9.一种在所述信息处理设备中处理信息的方法,所述方法包含以下步骤数据收集部分通过扫描链或独立的连接路径获取被连接到所述扫描链的多个触发器 在通电时的设置值,所述扫描链被设置为集成电路的测试路径;以及基于所获取的包括已对所述多个触发器通电时的触发器的设置值的值,所述数据收集 部分执行随机数或随机数产生数据或固定数据的产生处理。
10.一种用于在信息处理设备中进行信息处理的程序,所述程序包含以下步骤数据收集部分通过扫描链或独立的连接路径获取被连接到所述扫描链的多个触发器在通电时的设置值,所述扫描链被设置为集成电路的测试路径;以及基于所获取的包括已对所述多个触发器通电时的触发器的设置值的值,所述数据收集部分执行随机数或随机数产生数据或固定数据的产生处理。全文摘要
本发明公开了半导体集成电路、信息处理设备和方法以及程序。所述半导体集成电路包括多个触发器,被连接到被设置为集成电路的测试路径的扫描链;以及数据收集部分,通过所述扫描链或独立的连接路径获取被连接到所述扫描链的所述多个触发器的设置值,其中所述数据收集部分获取已对所述多个触发器通电时的触发器的设置值,并基于所获取的值进行随机数或随机数产生数据或固定数据的产生处理。
文档编号G06F7/58GK101957740SQ20101018234
公开日2011年1月26日 申请日期2010年5月18日 优先权日2009年5月18日
发明者吉田亚左实, 坚木雅宣, 山本弘毅 申请人:索尼公司