可避免热点并可均匀分布热量的系统级芯片测试方法

文档序号:6098460阅读:196来源:国知局
专利名称:可避免热点并可均匀分布热量的系统级芯片测试方法
技术领域
本发明属于集成电路计算机辅助设计和计算机辅助测试技术领域,具体涉及一种在系统级芯片SOC(system-on-chip)测试过程中有效地避免出现热点和均匀测试热量分布的方法。
背景技术
随着半导体制造工艺发展以及对于单个芯片功能要求的提高,SOC的需求已越来越大。SOC在单个芯片上实现了整个系统的功能,它可能集成微处理器核、DSP核、存储器核、ASIC核、数模混合电路、RF电路等。SOC的设计是基于IP核(Core)的设计,缩短了设计的时间,但是却增大了测试难度以及测试费用。在测试SOC过程中,首先通过测试包装逻辑(Test wrapper)将待测试的Core与它周边的电路进行隔离,其次再通过测试通道(TAM)在SOC的引脚(pin)与Core之间传输测试激励和测试响应。而测试规划(Test-Schedule)就是在测试资源有限的情况下如何合理安排各个核(Core)的测试,使得在满足各种约束的条件下总的测试时间最短。
SOC强大的功能带来了极大的功耗发热,而集成度的提高使得热量更集中,这些都可能使芯片工作时产生热点(Hot-Spot)。热点的出现将使芯片变得极不稳定,甚至烧毁芯片。而在测试模式下由于更高的翻转频率使得SOC的功率大于正常工作模式的功率,甚至达到正常工作模式下的2至3倍,这使芯片在测试时可能被烧毁,或由于高发热引起性能不稳定而通不过测试,从而降低成品率。因此,在测试时必须考虑功能与集成度带来的功率发热问题。为了保护测试模式下的系统级芯片,必须合理安排各个核(Core)的测试顺序,从而在测试时避免出现热点(Hot-Spot)的情况,并使得热量能均匀地分布在系统级芯片上,提高成品率。但是,目前关于系统级芯片测试的研究只是考虑在功率满足约束的条件下使测试时间最短,并没有涉及在测试中如何避免Hot-Spot以及热量均摊的问题。本发明提出在对SOC进行测试规划(Test-Schedule)时考虑避免出现热点以及热量均摊的问题。

发明内容
本发明目的在于提出一种在SOC测试过程中可有效地避免出现热点以及将测试热量均匀分布在芯片表面的方法,从而保护被测试芯片,提高芯片的成品率,减少测试时间,降低测试成本。
本发明的问题描述如下给定一个SOC,包含有N个IP核Corei(1≤i≤N),设对于每个Corei,测试Ti={wi,ti,pi,vi}(1≤i≤N),其中wi为Ti分配到的测试通道(TAM)的宽度,ti为测试所需的时间,pi为测试过程中消耗的最大功率,vi为测试矢量;设测试通道(TAM)的总宽度为Wmax,最大的测试允许功率为Pmax,最大的允许升温为ΔTmax,两个Core可以同时测试的最短距离为dallow;决定每个Corei测试通道(TAM)的宽度以及开始测试的时间,要求满足以下准则(i)测试时的热量尽可能平均分布在SOC表面上;(ii)任意时刻的各个Corei上的升温都小于ΔTmax;(iii)任意时刻的测试消耗的总功率都小于Pmax;(iv)SOC的整体测试时间最短;准则(i)和(ii)是要求在测试过程中热量均匀分布在SOC表面,并且使得每个Core上的升温都小于ΔTmax,从而避免出现热点。而以往的研究只是考虑(iii)和(iv),虽然考虑了(iii)即总体功率小于Pmax,它并不能保证在局部不会出现热点,也即不能保证芯片能安全地工作。
本发明提出的SOC的测试方法,是对上述问题的一种解决方案。具体步骤如下1、用热量扩散公式来建立SOC测试升温表,以描述SOC测试中Corei的温度升高值,该升温表包括Corei本身功耗引起的升温和其他同时测试的Corej(j≠i)的功耗引起的升温两个部分;2、建立两个Core是否可以同时测试的标准;在空间位置上距离相邻近的Core不同时进行测试,其邻近程度由实际测试需要确定;3、构造测试兼容图Gt=(Vt,Et),其中,Vt为节点,表示一个测试Tj,Et为两个节点的连线,表示两个测试可以同时进行;4、提取并行测试集合(PTS)根据准则(ii)和(iii)从测试兼容图提取得到并行测试集合;5、进行测试规划包括针对并行测试集合的Bin-Packing构造和全局优化,最大限度地缩短测试时间。


图1为一个SOC的布局。
图2为TCG的构造。其中,图2(a)为没有任何约束的TCG,图2(b)为考虑多个约束的TCG。
图3为构造一个初始的测试策略。
图4为对初始测试策略的全局优化。其中,图4(a)为全局优化前,图4(b)为全局优化后。
具体实施例方式
下面进一步介绍本发明的具体实施方式

1、建立SOC测试升温表本发明可采用文献[1]中提出的芯片上热扩散公式来计算SOC芯片测试过程中各个核(Core)温度的升高值,建立SOC测试升温表。(也可用其他热扩散公式来计算)(1)简化的热扩散公式文献[1]中提出的芯片上热扩散公式为如下所示ΔT=P×F(x,y,t)……(1)其中,x为观测点到发热源的沿X轴方向上距离,y为观测点到发热源的沿Y轴方向上距离;ΔT表示距离发热源的曼哈顿距离为x+y的观测点上经过时间t后的温度升高值,例如附图1中Core1和Core5发热源之间的曼哈顿距离为x15+y15;P为发热源消耗的功率,在本问题中发热源为各个Core,而P即为测试过程中消耗的最大功率pmax;F(x,y,t)为热量的扩散因子。
(2)本身的功耗引起的升温对于Corei在测试过程中本身的发热引起的升温,由公式(1)可得ΔTii=Pi×F(0,0,ti),其中Pi为Corei的测试过程消耗的最大功率,ti为测试Corei所需的时间,x=0以及y=0表示观测点处于发热源本身。
(3)其他同时测试的核(Core)的功耗引起的升温对于Corei,它上面温度的升高还因为其他同时测试的Corej(i≠j)在Corei上的热量扩散,这部分的升温表示为∑jΔTji(j≠i),其中,ΔTji=Pj×F(Xji,Yji,tji),Pj为Corej在测试过程中消耗的最大功率,Xji为Corej到Corei发热源X轴方向上距离,Yji为Corej到Corei发热源Y轴方向上距离,tji为Corej与Corei同时测试的时间,其中,tji=|tj-ti|。
由以上的过程就可以建立一个SOC的测试升温表。例如,附图1所示由5个Core组成的SOC,测试升温表的如附表1所示。其中,ΔT11为Core1测试时的功耗引起的本身的升温;ΔT15为Core1测试时的功耗引起的Core5的升温;ΔT51为Core5测试时的功耗引起的Core1的升温。得到测试升温表后,本发明通过在测试规划(Test-Schedule)中保证某一个Corei温度升高ΔTi≤ΔTmax来避免热点的出现,其中,ΔTmax为Corei温度升高的上限,超过这个温度就可能会出现热点(Hot-Spot);ΔTi=Tii+∑jΔTji(j≠i)其中Corei与Corej(i≠j)同时进行测试。
2、均匀分布热量标准的建立本发明根据每个Core的发热情况以及在SOC上的位置信息来安排测试顺序,从而做到热量的均匀分布。做法是在空间位置上相临近的几个Core不进行同时测试,这样避免了Hot-Spot而且在一定程度上分布了热量。本发明通过判断Corei与Corej之间的曼哈顿(Manhattan)距离来决定这两个Core是否可以同时测试,若距离dij<dallow,本发明就认为这两个Core是临近的,它们不允许同时测试。其中,dallow为用户定义的一个常量,dij=|xi-xj|+|yi-yj|为两个Corei与Corej之间的曼哈顿距离,(xi,yi)为Corei的中心坐标,(xj,yj)为Corej的中心坐标。
3、提取并行测试集合(PTS)并行测试集合(PTS)为一系列可以同时进行的测试的集合。本发明将通过TCC[2](TestCompatibility Graph-测试兼容图)来提取PTS,一个TCG为Gt=(Vt,Et),其中Vt为节点集合,每个节点表示一个测试Ti,Ei为两个节点的连线的集合,每两个节点的连线表示两个测试可以同时进行。由上面问题的描述可知,本发明在测试规划(Test-Schedule)时要考虑的四个准则为(i)测试时的热量尽可能平均分布在SOC表面上;(ii)任意时刻各个Corei上的升温都小于ΔTmax;(iii)任意时刻的测试消耗的总功率都小于Pmax;(iv)SOC的整体测试时间最短。
构造TCG的过程如下(1)首先本发明建立没有任何约束条件的初始的TCG,此时的TCG为完全图,如附图2中(a)所示。
(2)考虑准则(i),即测试过程中让热量均匀分布在SOC表面,让空间位置相临近的Core不能同时进行测试,在TCG中它们之间没有连线。根据这个约束条件本发明得到另一TCG。
(3)考虑准则(ii),即对两个Core同时进行测试时,它们的总功率小于Pmax。再者,考虑准则(iii),即对两个Core同时进行测试时,它们各自的升温均小于ΔTmax。根据这两个约束条件本发明的TCG进一步更新为附图2中(b)所示。
提取PTS过程经过这三步,本发明建立了满足热量均匀分布以及功率和Hot-Spot约束的TCG,如附图2(b)所示。由建立的TCG得到一系列的测试集合,它们由TCG中的完全子图的节点组成。本发明通过文献[3]中求完全子图的算法,提取出TCGP所有的完全子图,并构建相应的测试集合。对于完全子图构成的测试集合,注意到由两个元素构成的测试集一定是PTS,本发明要对元素超过2个的测试集进行检查,判断是否也满足准则(ii)与准则(iii),如果满足,则为PTS;如果不满足,则对它的元素个数少一个的各个真子集进行检查,重复这样的操作直到得到满足准则(ii)与准则(iii)的测试集为止,这便是PTS。例如,对于附图2(b)得到的各个PTS为,PTS1={T1,T2,T4}、PTS2={T1,T3}、PTS3={T3,T5}。
4、面向PTS的Bin-Packing(放箱子)构造并结合全局优化在得到一系列的PTS后就可以进行测试规划(Test-Schedule),本发明中的测试规划过程是面向PTS的Bin-Packing初始构造并结合全局优化。附图3为构造初始测试规划的示意图,附图4为全局优化的示意图。其过程如下第一步(Step1)和第二步(Step2)首先给每个测试Ti(1≤i≤N)分配最优的测试通道(TAM)宽度wi_op(wi_op≤Wamx),从而使得测试时间最短。若某个PTSj中各个测试Ti(Ti∈PTSj)分配到的测试通道(TAM)的总和大于Wmax,此时减小在PTSj中测试时间最短的那个测试T的测试通道(TAM)宽度,每次TAM减一,并重复这样的操作直到PTSj中各个测试Ti(Ti∈PTSj)分配到的测试通道(TAM)的总和小于等于Wmax。
第三步(Step3)和第四步(Step4)对各个测试Ti按测试时间ti进行降序排列,并放在集合TS中,然后逐一进行Packing(摆放),每次对一个测试Ti进行Packing后便将Ti从TS中删除。并且更新Ti的状态以及session(段落)的状态。当对Ti进行Packing时,先查看各个session是否可以容纳Ti。如果有多个session可以容纳T1则选择时间跨度最小的那个,如果没有单个的session可以容纳Ti则查看是否有连续的session可以容纳Ti,如果也有多个选择,则挑选时间跨度最小的那个;如果两种情况都不满足的话,那么将Ti放到最后一个session之后。如附图3所示T3可以放到到session S3或session S4,但由于session S3的时间跨度小于S4则T3被放到到session S3。
第5步(Step5)和第6步(Step6)每次摆放一个Ti后都要更新session的状态以及Ti的状态。如附图3所示,有四个session分别为S1、S2、S3、S4,每个session的结束时间与某个Ti的结束时间相对应,每个session的开始时间也与某个Ti的开始时间相对应。一个测试Ti可能只有一个session如T4或T5,也可能有多个session如T1或T2。而在一个session里可能只进行一个测试如S3、S4,也可能进行多个测试如S1、S2,每个session的测试通道(TAM)宽度必须小于等于Wmax。
(i)Ti的状态由T_statusi={t0,t1,wi,se}表示,其中t0表示Ti开始时间,t1表示Ti结束时间,wi表示Ti分配到的TAM宽度,se表示Ti分成了哪些session。如图3所示Ti的状态为T_status1={t0=0,t1=1600,w1=8,se={S1,S2,S3}}。
(ii)sessioni的状态由S_statusi=(t0,t1,test,TAM_avail}表示,其中t0表示sessioni开始时间,t1表示sessioni结束时间,test表示sessioni包含了哪些测试T,TAM_avail表示sessioni还有多少没有使用的TAM。如图3中S4的状态为S_status4={t0=1600,t1=2400,test={T3},TAM_avail=8}。
第8步(Step8)在经过前面7步后得到一个初始测试策略,如附图4(a)所示,将进一步对它进行全局的优化,做法是对那些决定整个SOC测试时间的测试T增加测试通道(TAM)的宽度,从而通过减少测试T的测试时间而减少整个SOC测试时间,在给测试T增加TAM宽度时要保证每个session的TAM宽度不能超过Wmax,重复这一步的操作直到SOC的测试时间不能减少为止。例如,附图4中T5与T1直接决定了整个SOC的测试时间,首先考虑给T5增加TAM宽度,当T5的TAM宽度不能在增加时,再考虑去增加T1的宽度,但由于session S1已经用完了TAM,因此T1的TAM宽度不能再增加。
面向PTS的Bin-Packing构造并结合全局优化过程的伪代码如下所示PTS Oriented Bin-Packing ProcedureStep1Assign the most optimal TAM width to every test Ti(1≤i≤N);Step2Check every PTS such that the total TAM width of a PTS do not exceed Wmax;Step3Sort every test Ti(1≤i≤N)in TS(TS={…Ti…})in descending order oftest time;Step4Schedule the first test Tiin TS and then remove it from TS;Step5Update test Ti(1≤i≤N)status;Step6Update session status;Step7If TS≠Φ then go to step4;Step8Increase the TAM widths of the tests which dominate the total SOC testtime;实验结果及分析本发明将对ITC 02 benchmark SOC[4]h953,d695,f2126,q12710,作为测试用例。附表2为测试用例d695的实验结果,实验结果为总测试时间,单位为时钟周期,并且与文献[5]的实验结果进行了比较。其中,采用与文献[5]同样的约束条件,即只考虑了测试功耗的约束。在表2中,“W”列表示测试通道宽度(TAM);“下限”列表示为测试时间的下限;“[5]结果”列表示文献[5]中的实验结果;“本文结果”列表示本发明的实验结果;“改进”列表示本文结果对文献[5]结果的时间改进。从附表2中看出,在相同的约束条件下本发明的结果在不同的测试通道(TAM)下都有不同程度的改进,这是由于本发明Bin-Packing算法是由构造法得到一个初始的结果后又进行了全局的优化(见伪代码step8),而文献[5]并没有一个全局优化过程。
附表3为测试用例h953,d695,f2126和q12710的测试结果,附表3中有两部分,第一部分只考虑功耗的约束,第二部分考虑了Hot-Spot、热量均匀分布以及功耗的约束;“SOC”列表示测试用例;“W”列表示测试通道的宽度;“tmax”列表示测试过程中的最高温度;“t”列表示测试过程的平均温度;“Δ(%)”列为在不同约束条件下的实验结果变化的百分比。例如在附表3中,对于测试用例h953,当测试通道宽度为16,只考虑功耗约束时,实验结果tmax=6248、t=2168;当考虑Hot-Spot、热量均匀分布以及功耗的约束时,实验结果tmax=5995、t=1593,因此最高温度tmax的Δ(%)=(5995-6248)/6248=-4.0%,平均温度t的Δ(%)=(2168-1593)/2168=-26.5%。由此可见,在考虑了热点避免以及热量均匀分布以后,在测试过程中的最高温度和平均温度都有很大的降低,从而本发明有效地解决了芯片测试过程中由于强大的测试功耗带来的发热问题。

表1SOC测试升温表(例子)


参考文献[1]Yi-Kan Cheng and Sung-Mo Kang.An Efficient Method for Hot-spot Identificationin ULSI Circuits[A].InProceedings of the IEEE International Conference onComputer-Aided Design,San Jose,CA,USA,1999.124~127. G.L.Craig,C.R.Kime.and K.K.Saluja.Test Scheduling and Control for VLSIBuilt-in Self-Test[J].IEEE Transactions on Computers,1988,3(9)1099~1109. M.C.Golumbic.Algorithmic Graph Theory and Perfect Graphs[M].New YorkAcademic Press,1980. E.J.Marinissen,V.Iyengar and K.Chakrabarty.ITC 2002 SOC test benchmarkinitiative[OL].http//www.extra.research.philips.com/itc02socbenchm,2000. V.Iyengar,K.Chakrabarty,and E.J.Marinissen.Integrated wrapper/TAMco-optimization,constraint-driven test scheduling,and tester data volumereduction for SOCs[A].InProceedings of the Design Automation Conference,NewOrleans,LA,USA,2002.673~678.
权利要求
1.一种可避免热点并可均匀分布热量的系统级芯片测试方法,其特征在于具体步骤如下(1)用热量扩散公式来建立SOC测试升温表,以描述SOC测试中Corei的温度升高值,该升温表包括Corei本身功耗引起的升温和其他同时测试的Corej(j≠i)的功耗引起的升温两个部分;(2)建立两个Core是否可以同时测试的标准在空间位置上距离相邻近的Core不同时进行测试,其邻近程度由实际测试需要确定;(3)构造测试兼容图Gt=(Vt,Et),其中,Vt为节点,表示一个测试Ti,Et为两个节点的连线,表示两个测试可以同时进行;(4)提取并行测试集合(PTS)根据准则(ii)和(iii)从测试兼容图提取得到并行测试集合;(5)进行测试规划包括针对并行测试集合的Bin-Packing构造和全局优化,最大限度地缩短测试时间。其中,准则(ii)为任意时刻的各个Corei上的升温都小于ΔTmax,准则(iii)为任意时刻的测试消耗的总功率都小于最大的测试允许功率Pmax。
2.根据权利要求1所述的测试方法,其特征在于所述的热量扩散公式为ΔT=P×F(x,y,t)……(1)其中,x为观测点到发热源的沿X轴方向上距离,y为观测点到发热源的沿Y轴方向上距离;ΔT表示距离发热源的曼哈顿距离为x+y的观测点上经过时间t后的温度升高值,P为发热源消耗的功率,F(x,y,t)为热量的扩散因子;Corei本身功耗引起的升温为ΔTii=Pi×F(0,0,ti)其中Pi为Corei的测试过程消耗的最大功率,ti为测试Corei所需的时间,x=0以及y=0表示观测点处于发热源处;其它Corej,i≠j同时测试的功耗引起的升温∑jΔTji(j≠i),其中,ΔTji=Pj×F(Xji,Yji,tji),Pj为Corej在测试过程中消耗的最大功率,Xji为Corej到Corei发热源X轴方向上距离,Yji为Corej到Corei发热源Y轴方向上距离,tji为Corej与Corei同时测试的时间,其中,tji=|tj-ti|。
3.根据权利要求2所述的测试方法,其特征在于所述空间位置距离使用曼哈顿距离,记dallow为用户定义的一个常量,dij=|xi-xj|+|yi-yj|为两个Corei与Corej之间的曼哈顿距离,(xi,yi)为Corei的中心坐标,(xj,yj)为Corej的中心坐标,若dij<dallow,则Corei与Corej不允许同时测试。
4.根据权利要求3所述的测试方法,其特征在于所述构造测试兼容图的步骤如下(1)首先建立没有任何约束条件的初始的TCG,此时的TCG为完全图;(2)根据准则(i)测试过程中让热量均匀分布在SOC表面,让空间位置相临近的Core不能同时进行测试,在TCG中它们之间没有连线,得到另一TCG;(3)根据准则(ii)对两个Core同时进行测试时,它们总功率小于Pmax,根据准则(iii)对两个Core同时进行测试时,它们各自的升温均小于ΔTmax,得到新的TCG。
5.根据权利要求4所述的测试方法,其特征在于所述提取并行测试集合PTS的步骤如下从得到的TCG中提取完全子图并构造相应的测试集合;对于完全子图构成的测试集合,由两个元素构成的测试集为一个PTS;对于超过2个元素的测试集,判断是否满足准则(ii)和准则(iii),如果满足,则为PTS;如果不满足,则对它的元素少一个的各个真子集进行检查,重复这样的操作,直到得到满足准则(ii)和准则(iii)的测试集为止,这就是PTS。
6.根据权利要求5所述的测试方法,其特征在于所述面向PTS的Bin-Packing初始构造并结合全局优化,其过程如下(1)首先给每个测试Ti,1≤i≤N,分配最优的测试通道宽度wi_op,wi_op≤Wmax,从而使得测试时间最短;若某个PTSj中各个测试Ti,Ti∈PTSj,分配到的测试通道的总和大于Wmax,此时减小在PTSj中测试时间最短的那个测试T的测试通道宽度,每次TAM减一,并重复这样的操作直到PTSj中各个测试Ti分配到的测试通道(TAM)的总和小于等于Wmax;(2)对各个测试Ti按测试时间ti进行降序排列,并放在集合TS中,然后逐一进行Packing,每次对一个测试Ti进行Packing后便将Ti从TS中删除,并且更新Ti的状态以及session的状态;当对Ti进行Packing时,先查看各个session是否可以容纳Ti;如果有多个session可以容纳Ti则选择时间跨度最小的那个,如果没有单个的session可以容纳Ti则查看是否有连续的session可以容纳Ti,如果也有多个选择,则挑选时间跨度最小的那个;如果两种情况都不满足的话,那么将Ti放到最后一个session之后;(3)每次摆放一个Ti后都要更新session的状态以及Ti的状态;(i)Ti的状态由T_statusi={t0,t1,wi,se}表示,其中t0表示Ti开始时间,t1表示Ti结束时间,wi表示Ti分配到的TAM宽度,se表示Ti分成了哪些session;(ii)sessioni的状态由S_statusi={t0,t1,test,TAM_avail}表示,其中t0表示sessioni开始时间,t1表示sessioni结束时间,test表示sessioni包含了哪些测试T,TAM_avail表示sessioni还有多少没有使用的TAM;(4)对那些决定整个SOC测试时间的测试T增加测试通道(TAM)的宽度,从而通过减少测试T的测试时间而减少整个SOC测试时间,在给测试T增加TAM宽度时要保证每个session的TAM宽度不能超过wmax,重复这一步的操作直到SOC的测试时间不能减少为止。
全文摘要
本发明属集成电路计算机辅助测试技术领域,具体为一种在系统级芯片测试过程中避免出现热点和均匀分布测试热量的方法。该方法包括建立SOC测试升温表、构造测试兼容图、提取并行测试集合和进行测试规划等步骤,测试规划包括对并行测试集合的Bin-Packing初始构造并结合全局优化,最大限度缩短测试时间。本发明方法可有效避免出现热点,并确保使测试热量分布均匀。
文档编号G01R31/28GK1715936SQ200510027379
公开日2006年1月4日 申请日期2005年6月30日 优先权日2005年6月30日
发明者陈建, 周晓方, 赵长虹, 周电 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1