CN113064051B - 芯片测试方法、计算芯片和数据处理设备 - Google Patents
芯片测试方法、计算芯片和数据处理设备 Download PDFInfo
- Publication number
- CN113064051B CN113064051B CN202110307448.8A CN202110307448A CN113064051B CN 113064051 B CN113064051 B CN 113064051B CN 202110307448 A CN202110307448 A CN 202110307448A CN 113064051 B CN113064051 B CN 113064051B
- Authority
- CN
- China
- Prior art keywords
- test
- core
- values
- chip
- vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 649
- 238000012545 processing Methods 0.000 title claims abstract description 30
- 239000013598 vector Substances 0.000 claims abstract description 161
- 238000010998 test method Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013100 final test Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/2851—Testing of integrated circuits [IC]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开涉及一种芯片测试方法、计算芯片和数据处理设备。芯片测试方法包括:预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括传输到核中的第一测试向量以及在核中根据第一测试向量生成的第二测试向量,和/或测试随机值包括在核中生成的多个测试随机值;对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和分别比较多个测试结果值与多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的;以及根据多个核中的每个核的核测试结果,生成计算芯片的芯片测试结果。
Description
技术领域
本公开涉及芯片测试技术领域,具体而言,涉及一种芯片测试方法、计算芯片和数据处理设备。
背景技术
数据处理设备可以是工作量证明(proof of power,POW)型的。对于数据处理设备而言,计算芯片的算力(即,单位时间内的运算次数)和功耗(即,单位时间内完成同样次数的运算所消耗的电能)是决定其性能的至关重要的因素。
为了保障计算芯片的质量以及优化由计算芯片形成的数据处理设备的性能,有必要对计算芯片进行测试,且需要保障一定的测试覆盖率,以提高测试的可靠性。例如,可以通过自动化测试设备(Automatic Test Equipment,ATE)或者数据处理设备来执行测试。然而,由于测试成本通常与测试时间密切相关,因此还存在对于提高测试效率的需求,以降低测试成本。
发明内容
本公开的目的之一在于提供一种芯片测试方法、计算芯片和数据处理设备。
根据本公开的第一方面,提供了一种芯片测试方法,待测试的计算芯片包括多个核,所述芯片测试方法包括:
针对所述多个核中的每个核,分别执行以下操作:
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括传输到核中的第一测试向量以及在所述核中根据所述第一测试向量生成的第二测试向量,和/或测试随机值包括在所述核中生成的多个测试随机值;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的;以及根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果。
根据本公开的第二方面,提供了一种计算芯片,
所述计算芯片包括多个核以及与所述多个核通信地连接的顶层模块,其中:
所述顶层模块被配置为执行以下操作:
控制第一测试向量被传输到核中;
初始化核中的测试随机值的生成;
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括所述第一测试向量以及在所述核中根据所述第一测试向量生成的第二测试向量,和/或测试随机值包括在所述核中生成的多个测试随机值;和
根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果;以及
所述多个核中的每个核分别被配置为执行以下操作:
生成多个测试随机值;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的。
根据本公开的第三方面,提供了一种数据处理设备,所述数据处理设备包括如上所述的计算芯片。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出了一种计算芯片的结构示意图;
图2示出了芯片测试方法在计算芯片中的运行的示意框图;
图3示出了根据本公开的一示例性实施例的芯片测试方法的流程示意图;
图4示出了根据本公开的一具体示例的芯片测试方法在计算芯片中的运行的示意框图;
图5示出了根据本公开的另一具体示例的芯片测试方法在计算芯片中的运行的示意框图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在本说明书中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,所公开的发明并不限于附图等所公开的位置、尺寸及范围等。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的芯片测试方法和计算芯片是以示例性的方式示出,来说明本公开中的电路或方法的不同实施例,而并非意图限制。本领域的技术人员将会理解,它们仅仅说明可以用来实施本发明的示例性方式,而不是穷尽的方式。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在计算芯片和数据处理设备的生产制造过程中,通常需要对计算芯片进行测试,以获得计算芯片的相关性能参数,帮助筛选出合适的计算芯片,进而优化数据处理设备的性能。测试可以在不同的阶段中进行,以满足相应的需求。
对于在晶圆上制备好的、尚未被封装的计算芯片,可以采用探针对晶圆上的有关焊盘等施加信号激励,以测试计算芯片的基本功能,即芯片探针(Chip Probe,CP)测试。通过CP测试,可以实现对计算芯片的预先筛选,在进行封装之前及时地剔除不合格的计算芯片,从而降低生产制造成本。
在从晶圆上切割出计算芯片并对其进行了封装之后,可以对计算芯片进行最终测试(Final Test,FT),以剔除由于切片、封装等工艺而导致不合格的计算芯片,避免它们被组装到数据处理设备中,从而保障数据处理设备的质量。
通常,CP测试和FT测试都可以由自动化测试设备(ATE)来执行。也就是说,ATE可以在计算芯片被组装到数据处理设备中之前,对计算芯片进行测试,从而筛选出功能正常的计算芯片。ATE测试的成本与测试时间是密切相关的,测试时间越长,测试成本也相应越高。
此外,在数据处理设备出厂之前,还可以在数据处理设备中对计算芯片进行搜频测试。具体而言,可以通过内置在数据处理设备中的测试软件来进行测试。通过搜频测试,可以确定计算芯片的最佳运行频率和最佳运行电压等参数,从而确定数据处理设备的性能指标。在实践中,性能指标更好的数据处理设备可以有更高的价格,从而实现更好的效益。可以理解的是,在保障测试覆盖率的前提下,为了避免耽误出厂时间,也期望尽可能地减少搜频测试所需的时间。
在计算芯片和数据处理设备的生产制造过程中,可以执行上述三种测试中的全部测试或者部分测试。当执行全部测试时,有助于在各个环节中监测计算芯片的性能参数,及时地剔除不合格的计算芯片,但相应地测试成本通常较高。为了节约测试成本,也可以省去一些测试,例如在将要在FT测试中测试芯片的正常计算功能的情况下,在之前的CP测试中就可以省去同样的对计算功能的测试,而仅在CP测试中进行电流、漏电、模拟IP等测试,从而省略重复的测试项,以降低测试成本。
在数据处理设备的工作过程中,通常会基于本轮计算中给定的测试向量(work),不断产生随机值来与该测试向量进行碰撞运算,直到算出符合特定要求的结果,例如算出前预设位数均为零的结果,与这样的结果对应的随机值即为仅使用一次的非重复随机数(number used once,nonce)。
相应地,对计算芯片的测试可以基于类似的原理进行。如图2所示,顶层模块920可以将测试向量发送给计算芯片的核910,并控制核910中的随机值发生模块911的初始化,以生成在一定取值范围内的测试随机值。其中,顶层模块920可以是芯片中的控制模块,用于控制多个核910以及传输数据,检查计算结果等。
核910还可以包括运算模块913,该运算模块913可以是以流水线结构布置的多个运算级,其被配置为对测试向量和测试随机值进行测试运算(哈希碰撞运算)。在流水线结构中,可以将以1递增的测试随机值连续地送入流水线结构中进行运算,每个测试随机值在流水线结构的第一个运算级到最后一个运算级中被运算,其中前一个运算级的输出为相邻的后一个运算级的输入,且从最后一个运算级输出的结果即为与该测试随机值对应的测试结果值。例如,假设运算模块913包括以流水线结构布置的共128个运算级,在某一时刻从第128级输出的测试结果值为R(n),其中n为与测试结果值R(n)对应的测试随机值,那么可知,以R(n)为参考,在R(n)之前输出的测试结果值依次为R(n-1)、R(n-2)、R(n-3)等,在R(n)之后输出的测试结果值将依次为R(n+1)、R(n+2)、R(n+3)等。
在核910中还可以包括存储模块912,通常存储模块912仅用于存储一个测试结果值,当生成新的测试结果值时,这个新的测试结果值将覆盖存储模块912中的旧的测试结果值。通过比较测试结果值与预设的测试期望值,可以确定这个核910是否能够正常运行。例如,预设的测试期望值可以是满足特定要求,比如其中连续预设数目的比特位都为零的测试期望值,也可以是理论已知的某个计算结果值。当存在能够碰撞出与测试期望值一致的测试结果值的测试随机数、且该测试随机值与理论随机值一致时,可以认为相应的核通过了测试。
其中,顶层模块920可以通过接口组件将测试向量(通常包括几十个字节)串行地或并行地提供给核910。接口组件具体可以包括通用异步收发传输器(UART,其在串行通信与并行通信之间加以转换)、串行外设接口(SPI)和I2C接口中的其中一种。在串行传输的情况下,可以节省计算芯片中的相应的管脚和走线的数目,但是所需的传输时间一般较长。而在并行传输的情况下,虽然可以一定程度上减少传输时间,但是所需的管脚和走线的数目将会增加,会占用管脚的数目以及增加产品PCB板级走线的难度。当顶层模块920将测试向量传输到核910中所需的传输时间较长时,将导致测试成本的上升。
此外,在测试过程中,尤其是在基于流水线结构的核910中,每轮运算通常仅涉及核910中的一部分器件(例如输出高电平和低电平的数字电路器件,包括p型金属氧化物半导体场效应晶体管(PMOS)或n型金属氧化物半导体场效应晶体管(NMOS)等)。也就是说,在运算过程中,可能只有部分器件的状态会被测试向量经过计算覆盖,相应地,测试仅涉及到这部分器件,而另一部分器件因未被测试向量经过计算覆盖而未被有效地测试到。由于上述原因,在使用单个测试向量进行测试的情况下,测试覆盖率通常难以得到保障,也就是说,当针对某个测试向量测得计算芯片能够正常运行时,并不能保障该计算芯片针对其他测试向量也是能够正常运行的。因此,为了提高测试覆盖率,改善测试可靠性,可以提供多个测试向量进行多次测试。然而,多个测试向量的传输通常会导致传输时间的大幅上升,进而增加了测试成本,还可能影响到数据处理设备的出货速度。
为了解决上述问题,在保障测试覆盖率的同时尽可能提高测试效率、降低测试成本,本公开提出了一种芯片测试方法和计算芯片。在本公开的芯片测试方法中,可以基于由顶层模块920传输给核910的一个测试向量预先设置多个测试期望值,以实现更多的测试,从而减少用于传输更多测试向量的时间,同时提高测试覆盖率,以在改善测试效率、降低测试成本的同时保障测试可靠性。
在本公开的一示例性实施例中,如图3所示,芯片测试方法可以包括针对多个核910中的每个核910分别执行以下操作:
步骤S100,预先根据测试向量和测试随机值设置多个测试期望值。
如图4所示,在一具体示例中,可以根据一个测试向量和多个测试随机值来设置多个测试期望值,其中多个测试期望值与多个测试随机值一一对应。在一些实施例中,在已知与第一测试期望值(例如,具有连续预设数目的比特位都为零的第一测试期望值)对应的第一测试随机值的情况下,可以针对与该第一测试随机值相邻的若干个测试随机值设置相应的测试期望值。在一些实施例中,与第一测试期望值对应的第一测试随机值可以是多个测试随机值中的中位数。这样,在测试过程中,至少可以测试到一个具有一定难度的测试期望值,以改善测试效果。当然,在其他一些实施例中,也可以针对若干个连续的测试随机值(相邻的测试随机值之间相差1)来设置相应的测试期望值,而不要求具有连续预设数目的比特位都为零的第一测试期望值,这也是可以实现测试效果的。
如上文所述,测试随机值可以是仅使用一次的非重复随机数(nonce),nonce可以在各种验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击。
多个测试随机值中的至少一个测试随机值可以在核910中所包括的随机值发生模块911中生成。例如,顶层模块920可以对随机值发生模块911进行初始化,以生成第一个测试随机值,对该测试随机值进行递增(+1)或递减(-1)等操作,可以生成其他的测试随机值。在一具体示例中,与连续递增或递减的多个测试随机值对应的多个测试期望值可以被存储在核910的存储模块912中,以方便后续的比较。可以理解的是,与图2中所示的用于存储单个测试期望值的存储模块912相比,本示例中的存储模块912通常需要具有更大的容量,存储模块912例如可以包括寄存器或锁存器等。
在图4所示的具体示例中,不是仅设置单个测试期望值用于后续的比较,而是设置了多个测试期望值。其中,与多个测试期望值对应的多个测试随机值可以是连续的(相邻两个测试随机值之间的差为1),以简化多个测试期望值的生成以及后续的比较。由于哈希碰撞运算的基本特性,相邻的测试随机值对应的测试结果值之间通常并没有太强的相关性,因此运算模块913中的对相邻的测试随机值进行运算的器件之间也没有太强的相关性,即这些运算可以基本上相互独立,叠加在一起可以覆盖运算模块913中的大部分器件,从而可以极大地提高测试覆盖率。
如图5所示,在本公开的另一具体示例中,可以根据传输到核910中的第-测试向量以及在核910中根据第一测试向量生成的第二测试向量来生成多个测试期望值。如上文所述,第一测试向量可以在计算芯片的顶层模块920中的接口组件的控制下被传输到核910中。
此外,在计算芯片的核910中还可以包括测试向量运算模块914,该测试向量运算模块914可以被配置为对所述第一测试向量进行运算处理以生成所述第二测试向量。也就是说,第二测试向量不是由顶层模块920传输到计算芯片的核910中的,而是可以直接在核910中生成,这可以帮助节约传输多个测试向量所需的时间。进一步地,根据多个测试向量生成的多个测试期望值可以被存储在存储模块912中,以待测试过程中用于比较。
为了减小测试向量运算模块914在计算芯片中所占的面积,由第一测试向量生成第二测试向量的运算处理可以是相对简单的,使得测试向量运算模块914可以仅包括一些简单的逻辑门,同时使得第二测试向量尽量多的翻转以提高测试覆盖率。
在一些实施例中,第二测试向量可以由对第一测试向量中的至少部分比特位进行取反运算处理而生成。例如,当第一测试向量为1011011001101011时,对第一测试向量中的每个比特位分别取反,得到的第二测试向量可以为0100100110010100。在这种情况下,由于第一测试向量和第二测试向量是彼此取反的,在核910中的直接接收测试向量的运算级中,基本上所有的器件都可以被测试覆盖到。
在另一些实施例中,第二测试向量可以由对第一测试向量中的至少部分相邻比特位进行异或运算处理而生成。例如,当第一测试向量为1011011001101011时,对第一测试向量中的某个比特位和与之相邻的后一个比特位进行异或运算,且对于第一测试向量中的最后一个比特位,可以对其和与之相邻的前一个比特位进行异或运算,得到的第二测试向量可以为1101101010111100。
当然,在其他实施例中,也可以根据其他运算处理由第一测试向量来生成第二测试向量,尽可能多的提高测试覆盖率,在此不作限制。
由于第二测试向量是在核910由测试向量运算模块914根据第一测试向量衍生而来的,因此可以消除由顶层模块920将第二测试向量传输到核910中所需的时间,从而在提高测试覆盖率的同时提高了测试效率,降低了测试成本。需要注意的是,基于第二测试向量并不一定能够与测试随机值碰撞出符合难度要求的测试期望值(例如,连续预设数目的比特位都为零的测试期望值),但基于第二测试向量所确定的理论测试期望值仍然可以用于比较来确定核910是否能够正常运行。
可以理解的是,在一些实施例中,也可以结合多个测试随机值以及多个测试向量来设置多个测试期望值,其中仅一个测试向量在顶层模块920的控制下被传输到核910中,而其他的测试随机值与测试向量均可以在核910中生成,从而节省传输测试向量所需的时间,提高测试效率。例如,基于在核910中生成的X个测试随机值以及Y个测试向量(其中一个测试向量是由顶层模块920传输到核910中的,而其余Y-1个测试向量是由核910中的测试向量运算模块914生成的),可以有共X*Y个测试期望值用于测试,从而提高测试覆盖率。此外,其中每一个测试向量将对应一组X个测试期望值,而测试向量的产生控制以及X个测试期望值都可以由顶层模块920来对应地设定,所以存储模块912中仅需要存放X个测试期望值即可,并随着测试向量的改变而对应更新存储模块912中的测试期望值,因此可以不需要在存储模块912中同时存储共X*Y个测试期望值。
可以理解的是,随着预先设置的测试期望值的增多,在核910中用来存储这些测试期望值的存储模块912所包括的寄存器或锁存器等的数目可能增大,相应地所占据的芯片面积可能增大,因此,可以根据实际需要来权衡测试覆盖率与芯片面积或复杂度之间的折中。
返回图3,在本公开的芯片测试方法中,针对多个核910中的每个核910,还可以执行以下操作:
步骤S200,对测试向量和测试随机值进行测试运算,以生成多个测试结果值。
如图4和图5所示,测试运算(哈希运算)可以在核910中的运算模块913中进行,运算模块913可以包括以流水线结构布置的多个运算级。具体而言,多个测试结果值中的每个测试结果值可以由运算模块913基于安全散列算法对相应的测试向量和测试随机值进行测试运算生成的,相应地,多个测试期望值中的每个测试期望值也是基于安全散列算法根据相应的测试向量和测试随机值由例如顶层模块920等预先设置的。
在一些实施例中,可以将运算所得的多个测试结果值存储在存储模块912中,直至找到与第一测试期望值对应的第一测试随机值时,再触发比较与第一测试随机值相邻的若干个测试随机值所对应的测试结果值和相应的测试期望值。或者,也可以直接比较所生成的测试结果值与相应的测试期望值,而不是等找到第一测试随机值之后再触发其他比较。
如图3所示,针对多个核910中的每个核910,还可以执行以下操作:
步骤S300,分别比较多个测试结果值与多个测试期望值中的相应的测试期望值,以生成核测试结果。
其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的。尤其是在针对相邻的测试随机值预先设置了多个测试期望值的情况下,这样的比较可以是高效的,因为测试结果值也是按照同样的测试随机值顺序生成的,与预先设置的测试期望值相对应。
在一些实施例中,可以仅比较测试结果值和相应的测试期望值来确定测试结果,即分别比较多个测试结果值与多个测试期望值中的相应的测试期望值,以生成核测试结果可以包括:
当多个测试结果值中的每个测试结果值都与多个测试期望值中的相应的测试期望值相等时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
在另一些实施例中,可以比较测试结果值和相应的测试期望值,并确定测试随机值是否与理论随机值一致,从而确定测试结果,消除误撞带来的测试结果的偏差。例如,分别比较多个测试结果值与多个测试期望值中的相应的测试期望值,以生成核测试结果可以包括:
当多个测试结果值中的每个测试结果值都与多个测试期望值中的相应的测试期望值相等、且与其中第一测试期望值(例如,连续预设数目的比特位都为零的第一测试期望值)对应的第一测试随机值与理论随机值一致时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
一般而言,每个核910的核测试结果所占据的比特位数可以为1,以节约计算芯片中的存储空间。例如,当核通过测试时,可以将该核的核测试结果置为0;而当核未通过测试时,可以将该核的核测试结果置为1。
返回图3,芯片测试方法还可以包括:
步骤S400,根据多个核中的每个核的核测试结果,生成计算芯片的芯片测试结果。
具体而言,根据多个核中的每个核的核测试结果,生成计算芯片的芯片测试结果可以包括:
当多个核中通过测试的核的数目超过预设阈值时,比如99%数目以上的核都通过测试,即确定芯片测试结果为通过测试;
否则,确定芯片测试结果为未通过测试。
具体而言,可以由计算芯片中的顶层模块920接收每个核910的核测试结果,并根据核测试结果生成计算芯片的芯片测试结果。
在一些实施例中,尤其是在搜频测试中,还可以在至少两个测试频率下,分别对计算芯片执行芯片测试方法,以获得计算芯片在至少两个测试频率下的芯片测试结果。如上文所述,测试覆盖率得到提升,通过搜频测试可以找出计算芯片的最佳工作频率、最佳工作电压等参数,从而获取由计算芯片形成的数据处理设备的更为准确的性能参数。
本公开还提出了一种数据处理设备,该数据处理设备可以包括根据上文所述的计算芯片。具体来说,数据处理设备可以包括一个或多个计算芯片。多个计算芯片可以并行地执行计算任务,例如执行SHA-256算法等。
在本公开提出的技术方案中,基于被传输到核中的一个测试向量可以产生多个测试向量,并设置了多个测试期望值用于与测试结果值进行比较,以实现更好的测试覆盖率,使得测试的结果更为准确;且由于多个测试随机值和/或一个或多个测试向量可以在核中生成,减少了传输测试向量所需的时间,因此可以同时提高测试效率、节省测试成本和提高出货速度。
此外,可以理解的是,由于存储模块至少需要存储更多的测试期望值,或者由于测试向量运算模块的设置,将导致计算芯片的面积有所增加。但通常而言,所增加的面积相对于整个计算芯片的面积是很少的。另外,计算芯片的顶层模块可能需要发送更多的指令来控制测试,但这些指令所占的时间相比传输完整的测试向量而言要少得多。也正因为上述两个因素,需要权衡所增加的存储模块与测试向量运算模块的数量和/或复杂度,以实现测试覆盖率与测试效率以及芯片面积之间的平衡。
另外,本公开的实施方式还可以包括以下示例:
1.一种芯片测试方法,待测试的计算芯片包括多个核,所述芯片测试方法包括:
针对所述多个核中的每个核,分别执行以下操作:
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括传输到核中的第一测试向量以及在所述核中根据所述第一测试向量生成的第二测试向量,和/或测试随机值包括在所述核中生成的多个测试随机值;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的;以及根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果。
2.根据1所述的芯片测试方法,所述第一测试向量被配置为在所述计算芯片的顶层模块的控制下被传输到核中。
3.根据1所述的芯片测试方法,所述第二测试向量由核的测试向量运算模块对所述第一测试向量进行运算处理而生成。
4.根据1所述的芯片测试方法,所述第二测试向量由对所述第一测试向量中的至少部分比特位进行取反运算处理而生成;或
所述第二测试向量由对所述第一测试向量中的至少部分相邻比特位进行异或运算处理而生成;或
所述第二测试向量由对所述第一测试向量进行递增或递减运算处理而生成。
5.根据1所述的芯片测试方法,所述多个测试随机值中的相邻两个测试随机值之间相差1。
6.根据1所述的芯片测试方法,根据所述第一测试向量和所述多个测试随机值中的第-测试随机值设置的测试期望值为其中连续预设数目的比特位都为零的第一测试期望值。
7.根据6所述的芯片测试方法,所述第一测试随机值为所述多个测试随机值中的中位数。
8.根据1所述的芯片测试方法,所述多个测试随机值中的每个测试随机值为仅使用一次的非重复随机数nonce。
9.根据1所述的芯片测试方法,
所述多个测试期望值中的每个测试期望值是基于安全散列算法根据相应的测试向量和测试随机值设置的;以及
所述多个测试结果值中的每个测试结果值是由核基于安全散列算法对相应的测试向量和测试随机值进行测试运算生成的。
10.根据1所述的芯片测试方法,分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果包括:
当所述多个测试结果值中的每个测试结果值与所述多个测试期望值中的相应的测试期望值分别相等时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
11.根据1所述的芯片测试方法,分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果包括:
当所述多个测试结果值中的每个测试结果值与所述多个测试期望值中的相应的测试期望值分别相等、且所述多个测试随机值中的与其中连续预设数目的比特位都为零的第一测试期望值对应的第一测试随机值与理论随机值一致时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
12.根据1所述的芯片测试方法,根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果包括:
当所述多个核中的核测试结果为通过测试的核的数目超过预设阈值时,确定芯片测试结果为通过测试;
否则,确定芯片测试结果为未通过测试。
13.根据1所述的芯片测试方法,在至少两个测试频率下,分别对所述计算芯片执行所述芯片测试方法。
14.一种计算芯片,所述计算芯片包括多个核以及与所述多个核通信地连接的顶层模块,其中:
所述顶层模块被配置为执行以下操作:
控制第一测试向量被传输到核中;
初始化核中的测试随机值的生成;
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括所述第一测试向量以及在所述核中根据所述第一测试向量生成的第二测试向量,和/或测试随机值包括在所述核中生成的多个测试随机值;和
根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果;以及
所述多个核中的每个核分别被配置为执行以下操作:
生成多个测试随机值;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的。
15.根据14所述的计算芯片,所述顶层模块包括接口组件,所述接口组件被配置为获取第一测试向量,并将所述第一测试向量传输给核。
16.根据14所述的计算芯片,核包括测试向量运算模块,所述测试向量运算模块被配置为对所述第一测试向量进行运算处理以生成所述第二测试向量。
17.根据14所述的计算芯片,核包括存储模块,所述存储模块被配置为存储预先设置的所述多个测试期望值。
18.根据14所述的计算芯片,核包括随机值发生模块,所述随机值发生模块被配置为生成所述多个测试随机值中的至少一个测试随机值。
19.根据14所述的计算芯片,核包括以流水线结构布置的多个运算级,所述多个运算级被配置为对测试向量和测试随机值进行测试运算以生成多个测试结果值。
20.一种数据处理设备,所述数据处理设备包括根据14至19中任一项所述的计算芯片。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
在说明书及权利要求中的词语″前″、″后″、″顶″、″底″、″之上″、″之下″等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。
如在此所使用的,词语″示例性的″意指″用作示例、实例或说明″,而不是作为将被精确复制的″模型″。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
如在此所使用的,词语″基本上″意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语″基本上″还允许由寄生效应、噪音以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
上述描述可以指示被″连接″或″耦合″在一起的元件或节点或特征。如在此所使用的,除非另外明确说明,″连接″意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,″耦合″意指一个元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,″耦合″意图包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。
还应理解,″包括/包含″一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
Claims (20)
1.一种芯片测试方法,其特征在于,待测试的计算芯片包括多个核,所述芯片测试方法包括:
针对所述多个核中的每个核,分别执行以下操作:
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括传输到核中的第一测试向量和在所述核中根据所述第一测试向量生成的第二测试向量,以及测试随机值包括多个测试随机值,所述多个测试随机值中的至少一个测试随机值在核中生成;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的;以及
根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果。
2.根据权利要求1所述的芯片测试方法,其特征在于,所述第一测试向量被配置为在所述计算芯片的顶层模块的控制下被传输到核中。
3.根据权利要求1所述的芯片测试方法,其特征在于,所述第二测试向量由核的测试向量运算模块对所述第一测试向量进行运算处理而生成。
4.根据权利要求1所述的芯片测试方法,其特征在于,所述第二测试向量由对所述第一测试向量中的至少部分比特位进行取反运算处理而生成;或
所述第二测试向量由对所述第一测试向量中的至少部分相邻比特位进行异或运算处理而生成;或
所述第二测试向量由对所述第一测试向量进行递增或递减运算处理而生成。
5.根据权利要求1所述的芯片测试方法,其特征在于,所述多个测试随机值中的相邻两个测试随机值之间相差1。
6.根据权利要求1所述的芯片测试方法,其特征在于,根据所述第一测试向量和所述多个测试随机值中的第一测试随机值设置的测试期望值为其中连续预设数目的比特位都为零的第一测试期望值。
7.根据权利要求6所述的芯片测试方法,其特征在于,所述第一测试随机值为所述多个测试随机值中的中位数。
8.根据权利要求1所述的芯片测试方法,其特征在于,所述多个测试随机值中的每个测试随机值为仅使用一次的非重复随机数nonce。
9.根据权利要求1所述的芯片测试方法,其特征在于,所述多个测试期望值中的每个测试期望值是基于安全散列算法根据相应的测试向量和测试随机值设置的;以及
所述多个测试结果值中的每个测试结果值是由核基于安全散列算法对相应的测试向量和测试随机值进行测试运算生成的。
10.根据权利要求1所述的芯片测试方法,其特征在于,分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果包括:
当所述多个测试结果值中的每个测试结果值与所述多个测试期望值中的相应的测试期望值分别相等时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
11.根据权利要求1所述的芯片测试方法,其特征在于,分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果包括:
当所述多个测试结果值中的每个测试结果值与所述多个测试期望值中的相应的测试期望值分别相等、且所述多个测试随机值中的与其中连续预设数目的比特位都为零的第一测试期望值对应的第一测试随机值与理论随机值一致时,确定核测试结果为通过测试;
否则,确定核测试结果为未通过测试。
12.根据权利要求1所述的芯片测试方法,其特征在于,根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果包括:
当所述多个核中的核测试结果为通过测试的核的数目超过预设阈值时,确定芯片测试结果为通过测试;
否则,确定芯片测试结果为未通过测试。
13.根据权利要求1所述的芯片测试方法,其特征在于,在至少两个测试频率下,分别对所述计算芯片执行所述芯片测试方法。
14.一种计算芯片,其特征在于,所述计算芯片包括多个核以及与所述多个核通信地连接的顶层模块,其中:
所述顶层模块被配置为执行以下操作:
控制第一测试向量被传输到核中;
初始化核中的测试随机值的生成;
预先根据测试向量和测试随机值设置多个测试期望值,其中,测试向量包括所述第一测试向量和在所述核中根据所述第一测试向量生成的第二测试向量,以及测试随机值包括多个测试随机值,所述多个测试随机值中的至少一个测试随机值在核中生成;和
根据所述多个核中的每个核的核测试结果,生成所述计算芯片的芯片测试结果;以及
所述多个核中的每个核分别被配置为执行以下操作:
生成多个测试随机值;
对测试向量和测试随机值进行测试运算,以生成多个测试结果值;和
分别比较所述多个测试结果值与所述多个测试期望值中的相应的测试期望值,以生成核测试结果,其中,测试结果值与相应的测试期望值是根据相同的测试向量和相同的测试随机值生成的。
15.根据权利要求14所述的计算芯片,其特征在于,所述顶层模块包括接口组件,所述接口组件被配置为获取第一测试向量,并将所述第一测试向量传输给核。
16.根据权利要求14所述的计算芯片,其特征在于,核包括测试向量运算模块,所述测试向量运算模块被配置为对所述第一测试向量进行运算处理以生成所述第二测试向量。
17.根据权利要求14所述的计算芯片,其特征在于,核包括存储模块,所述存储模块被配置为存储预先设置的所述多个测试期望值。
18.根据权利要求14所述的计算芯片,其特征在于,核包括随机值发生模块,所述随机值发生模块被配置为生成所述多个测试随机值中的至少一个测试随机值。
19.根据权利要求14所述的计算芯片,其特征在于,核包括以流水线结构布置的多个运算级,所述多个运算级被配置为对测试向量和测试随机值进行测试运算以生成多个测试结果值。
20.一种数据处理设备,其特征在于,所述数据处理设备包括根据权利要求14至19中任一项所述的计算芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110307448.8A CN113064051B (zh) | 2021-03-23 | 2021-03-23 | 芯片测试方法、计算芯片和数据处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110307448.8A CN113064051B (zh) | 2021-03-23 | 2021-03-23 | 芯片测试方法、计算芯片和数据处理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064051A CN113064051A (zh) | 2021-07-02 |
CN113064051B true CN113064051B (zh) | 2024-01-19 |
Family
ID=76563067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110307448.8A Active CN113064051B (zh) | 2021-03-23 | 2021-03-23 | 芯片测试方法、计算芯片和数据处理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064051B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114002587B (zh) * | 2021-12-30 | 2022-03-18 | 中科声龙科技发展(北京)有限公司 | 支持工作量证明机制的芯片及其测试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0651022A (ja) * | 1992-07-30 | 1994-02-25 | New Japan Radio Co Ltd | 半導体装置のテスト方法 |
JPH09319604A (ja) * | 1996-05-30 | 1997-12-12 | Fujitsu Ltd | 試験システム |
CN111966554A (zh) * | 2020-08-25 | 2020-11-20 | 深圳比特微电子科技有限公司 | 芯片测试方法、计算芯片和数字货币挖矿机 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8661305B2 (en) * | 2011-07-10 | 2014-02-25 | Ravishankar Rajarao | Method and system for test vector generation |
-
2021
- 2021-03-23 CN CN202110307448.8A patent/CN113064051B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0651022A (ja) * | 1992-07-30 | 1994-02-25 | New Japan Radio Co Ltd | 半導体装置のテスト方法 |
JPH09319604A (ja) * | 1996-05-30 | 1997-12-12 | Fujitsu Ltd | 試験システム |
CN111966554A (zh) * | 2020-08-25 | 2020-11-20 | 深圳比特微电子科技有限公司 | 芯片测试方法、计算芯片和数字货币挖矿机 |
Non-Patent Citations (1)
Title |
---|
芯片级BIST控制器的设计与实现;孟觉等;计算机工程;第37卷(第21期);第238-251页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113064051A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112881887B (zh) | 芯片测试方法和计算芯片 | |
US8832511B2 (en) | Built-in self-test for interposer | |
CN113064051B (zh) | 芯片测试方法、计算芯片和数据处理设备 | |
US9928205B2 (en) | Semiconductor apparatus | |
CN109752636B (zh) | 用于监测温度不稳定性的测试电路 | |
US20230244630A1 (en) | Computing device and computing system | |
Saha et al. | Design and implementation of SPI bus protocol with Built-in-self-test capability over FPGA | |
US20230236622A1 (en) | Clock circuits, computing chips, hash boards and data processing devices | |
US6980036B2 (en) | Semiconductor device comprising frequency multiplier of external clock and output buffer of test data and semiconductor test method | |
US7243283B2 (en) | Semiconductor device with self-test circuits and test method thereof | |
CN114882934B (zh) | 测试电路 | |
JP3661979B2 (ja) | 出力ドライバを共有する並列ビットテスト回路とこれを用いた並列ビットテスト方法、及びその半導体メモリ装置 | |
US9837170B2 (en) | Systems and methods for testing performance of memory modules | |
US8560932B2 (en) | Digital system and a method for error detection thereof | |
Maaz et al. | A hybrid space compactor for adaptive X-handling | |
US20090132883A1 (en) | Test circuit | |
US11126217B1 (en) | Integrated circuit with mixed circuitry structure of static combinational circuit and dynamic combinational circuit and designing method thereof | |
CN112630630B (zh) | 芯片测试方法和计算芯片 | |
US20220209759A1 (en) | Clock sweeping system | |
US7969220B2 (en) | Delay circuit | |
Rahman et al. | Design of a built-in-self-test implemented AES crypto processor ASIC | |
US9519020B2 (en) | Semiconductor apparatus and chip selecting method thereof | |
CN112216680A (zh) | 包括穿通电极的半导体器件 | |
KR101124319B1 (ko) | 반도체 장치 및 이를 이용한 칩 선택 방법 | |
CN212084134U (zh) | 计算装置以及计算系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |