This disclosure relates to testing functionality of multi-core processors and similar integrated circuits.
Processors often include multiple blocks, sometimes referred to as cores. Each core may be capable of concurrently executing at least some of the program code. By having multiple cores concurrently executing program code, the overall execution speed of programs on a multi-core processor may be greater than that of a single core processor. Multi-core processors may be implemented on a single integrated circuit (IC). While implementing multiple cores on a single IC may be advantageous in terms of increased processing speed, it may present new challenges in terms of ensuring that the IC is functional.
Various test strategies may be used to determine IC functionality. One technique includes designing the IC with dedicated package pins and/or shared diagnostic/functional pins used for testing. As IC manufacturing technology provides the ability to make smaller and more densely packed circuit elements with a larger number of cores, it is increasingly more difficult to provide a sufficient number of pins for the desired diagnostic testing due to the limited pin-out space available in a particular chip package.
Regardless of the type of testing strategy used, detection of one or more non-functioning cores has generally resulted in discarding the entire chip. However, the ability to detect and identify non-functioning cores may be used to salvage the chip for use in less demanding applications with reduced core-set functionality and thereby increase effective chip yield.
A system or method for testing functionality of a processor may include a controller configured to determine a number of operable cores of the processor based on detected electromagnetic energy radiated by the processor while the processor executes a specified set of instructions.
Embodiments of systems and methods for testing a processor, such as a multi-core processor, according to the disclosure may include executing a specified set of instructions using the multi-core processor, measuring electromagnetic energy radiated from the multi-core processor while executing the specified set of instructions, determining a test node corresponding to radiated power at each of a plurality of predetermined frequencies of the radiated electromagnetic energy, and comparing the test node to each of a plurality of reference nodes with each reference node corresponding to a known number of operating cores of a reference multi-core processor executing the specified set of instructions to determine a number of functional cores in the multi-core processor. In one embodiment, a system or method includes determining a number of operable cores of the multi-core processor by determining an average signal strength of the radiated electromagnetic energy at each of the plurality of frequencies. Systems or methods may also include determining a weighting factor for each of the plurality of frequencies and applying a corresponding weighting factor to the average signal strength for each of the plurality of frequencies. The weighting factor may be calculated to attenuate signals at frequencies that have more noise relative to other available frequencies. In one embodiment, a normalized weighting factor is determined based on an inverse variance of radiated electromagnetic energy for each frequency relative to an inverse of a sum of variances for all of the plurality of frequencies for a reference multi-core processor. Embodiments according to the present disclosure may also include comparing a test node to each of a plurality of reference nodes by determining a Euclidean distance in a multi-dimensional feature space between the test node and each reference node. The number of functional cores may then be determined by the reference node closest to the test node based on the Euclidean distance.
Systems or methods for testing a processor according to the present disclosure may provide various advantages relative to conventional testing strategies. For example, various embodiments of the present disclosure may determine the number of functioning cores of a processor using radiated electromagnetic energy so that dedicated pin-outs and associated package cost/complexity are reduced or eliminated. While various systems and methods according to the present disclosure provide reduced cost/complexity of dedicated pin-outs for even a modest number of cores in a multi-core processor, reducing or eliminating pin-outs for testing becomes increasingly more important as the number of cores continues to grow. Identification of inoperable or defective cores based on a radiated electromagnetic signature or fingerprint may reduce chip fabrication testing and quality assurance costs, conserve package pin-outs, and increase effective chip yields by salvaging chips for use in applications with reduced core-set functionality.
The above advantages and other advantages and features associated with various embodiments of the present disclosure will be readily apparent from the following detailed description when taken in connection with the accompanying drawings.
Embodiments of the present disclosure are described herein; however, it is to be understood that the disclosed embodiments are merely exemplary and other embodiments may take various and alternative forms. The figures are not necessarily to scale; some features may be exaggerated or minimized to show details of particular components. Therefore, specific structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a representative basis for teaching one skilled in the art to variously employ the present invention. As those of ordinary skill in the art will understand, various features illustrated and described with reference to any one of the Figures may be combined with features illustrated in one or more other Figures to produce embodiments that are not explicitly illustrated or described. The combinations of features illustrated provide representative embodiments for typical applications. However, various combinations and modifications of the features consistent with the teachings of this disclosure may be desired for particular applications or implementations.
As previously described, integrated circuits (ICs) are generally tested in a variety of ways prior to their deployment in an electronic device. Traditional methods of testing a single core processor include providing testing signal patterns to certain pins of the IC and detecting core response via other pins of the IC. As the number of cores on a processor increases however, there may be an insufficient number of pins to dedicate to each core for testing purposes. As recognized by those of ordinary skill in the art, additional cores may be implemented on an IC without necessarily increasing the number of IC pins as there are engineering benefits to minimizing the number of IC pins.
Multi-core processors (processors with more than one core) with reduced core-set functionality (one or more inoperable cores) may be packaged and sold. This practice, however, may require an identification of the number of operable (or inoperable) cores on the multi-core processors. In the representative embodiments illustrated and described herein, a multi-core processor includes six (6) cores. However, the systems and methods of the present disclosure may be applied to integrated circuits having a greater or lesser number of cores. Similarly, testing strategies according to the present disclosure may be applied to other types of integrated circuits to detect operation of blocks of elements that exhibit a particular electromagnetic signature or fingerprint during operation.
According to the present disclosure, the radiated electromagnetic (EM) energy exhibited by an integrated circuit having a multi-core processor or other type of functional blocks may be used to determine the number of operable (or inoperable) cores or blocks. An electromagnetic energy detector, such as an antenna (or the like) may be positioned proximate to the integrated circuit to detect the radiated electromagnetic energy by a multi-core processor in response to executing known instructions. The detected EM energy may be analyzed and compared, for example, to reference values corresponding to ICs having differing numbers of operable (or inoperable) blocks or cores. The closest reference value or reference node may be used to indicate the number of operable (or inoperable) blocks or cores of the IC under test. Such an arrangement may reduce fabrication and quality test costs.
Signals associated with radiated electromagnetic energy for one or more ICs having multi-core processors with a known number of functioning cores are processed to obtain a reference or library data set of signatures or fingerprints for use during testing. In one embodiment, broad spectrum radiofrequency signals are captured using an antenna positioned proximate to the IC. Positioning of an antenna or other EM detector may vary depending on the particular type of antenna/detector and the level of ambient EM noise/interference of the testing facility or location. The signals may then be processed to extract signal information for frequencies (or frequency bands) of interest using a fast Fourier transform (FFT) or similar processing strategy, for example. The number of frequencies or frequency bands and the particular frequencies of interest may be selected for a particular application and/or specified set of test instructions or operations as described in greater detail herein.
After frequency based processing of the signals to extract signal level information at one or more frequencies of interest, various other statistical processing may be performed to provide the reference values or nodes. As used herein, a reference node includes a data set or array of values (that may contain only a single value) that functions as a signature or fingerprint for a particular number of operating IC functional blocks or cores. For example, a reference node for six (6) operating cores of a multi-core processor executing a designated set of instructions may include average signal levels at one or more frequencies. Of course, other signal characteristics may also be used alone or in combination to determine a particular reference node, such as variance, standard deviation, maximum value, minimum value, etc. The same signal processing is performed for the IC being tested to establish a test node, data set, or array, which is then compared to the reference nodes to determine the number of operable/inoperable blocks or cores of the IC being tested as described in greater detail herein.
Testing has revealed that the accuracy of a core functionality assessment based on signals corresponding to the radiated EM energy increases when data at several different frequencies are used. In one embodiment, data taken at 20 different selected frequencies have been found to yield accurate results. Of course, the number of frequencies and the particular frequencies selected may vary by application and implementation. In one embodiment, frequencies are selected by performing a cross-correlation analysis of frequencies having a signal level above a threshold with each signal/frequency compared or correlated with all of the other signals/frequencies to identify frequencies with best correlation. Empirical results may then be used to select the number of frequencies to provide a desired confidence level in the resulting determination of the number of operational cores. Other criteria or constraints may also be used in selecting the particular frequencies for measurements to reduce or eliminate ambiguity in determining the number of operational cores, i.e. selecting those frequencies that provide radiated EM power measurements with adequate separation for each reference node relative to adjacent reference nodes. As illustrated in
Frequency selection criteria may vary depending on the particular signal characteristic measured. In one embodiment, a frequency selection constraint is used to select only those frequencies that have distinct radiated EM power levels such that each power level is separated from the next adjacent power level by at least 0.5 times the greatest standard deviation for any node. In other words, for the representative values illustrated in
As apparent from
In some embodiments, selected signal frequencies that exhibit more noise for a particular instruction set or processor may be detuned or de-emphasized when establishing the corresponding reference nodes and test node. For example, a different dynamic weighting factor based on a measure of noise at each frequency may be applied to the signal at that frequency. Frequencies having the greatest noise may be assigned less weight relative to frequencies having the least noise. Representative measures of noise that may be used in determining the weighting factors include standard deviation and variance, for example.
w
i=[1/Vi]/[1/V] where V=sum of variances of all the selected frequencies.
As also illustrated in
W
i
=w
i
/Σw
i for i=1 to N frequencies,
where Wi represents the normalized weighting factor for frequency i. The resulting reference or test node may then be determined by combining the weighted signals at each of the selected frequencies as represented by block 330. The test node signature or fingerprint is then compared to reference nodes each having a known number of operable cores using a pattern matching process to determine the number of operable cores of the processor or IC being tested.
In one embodiment, a comparison or pattern matching strategy is implemented to determine the similarity between the test signal and reference signals each associated with a known number of operable cores. A matching (or most similar) reference node is selected to determine the number of operating cores of the test IC. Various strategies may be used to determine the similarity or degree of matching between the test nod and reference nodes. In one embodiment, a single or multi-dimensional Euclidean distance (straight line or L2 distance) between the test node and each of the reference nodes is determined. The number of operating cores in the test IC is determined based on the number of cores associated with the reference node having the shortest distance to the test node. Of course, other strategies for determining similarity between the test node and reference nodes may also be used. For example, the Bray-Curtis index determined by subtracting the Bray-Curtis dissimilarity from 100 may be used. Alternatively, or in combination, a chi-squared distance or L1 (city-block or Manhattan) distance (corresponding to the sum of absolute differences between a test node and reference node) may be used.
Using the normalized reference nodes from
As illustrated in
The previously described example processes results for each frequency independently and may be used where only one frequency of interest is employed. However, use of a single frequency or a small number of frequencies may not provide the desired confidence level in the result. Where multiple frequencies of interest are processed, the individual results may be used within a conflict resolution strategy to determine the number of operable cores of the test IC as previously described. Alternatively, signals associated with different frequencies of interest may be combined to reduce ambiguity in determining the number of operable cores and increase the reliability and repeatability of the determination to a desired confidence level.
The normalized average power values for multiple frequencies can be combined to improve accuracy and provide unambiguous core-operability discrimination. For example, the normalized reference nodes of
The signature matching strategy described above can be extended to accommodate two or more frequencies. In a two-dimensional (2D) Euclidian power space, geometric distance between the test node and each of the reference nodes can be computed using the distance formula:
D
i=[(Xi−Xt)2+(Yi−Yt)2]1/2
where (Xt, Yt) are the cartesian coordinates for the test node, and (Xi, Yi) are the Cartesian coordinates for the reference nodes where i ranges from one to the number of cores (6 in this example). The number of operable cores is determined based on the shortest distance D, between the test node 620 and one of reference nodes 600-610, which is reference node 610 corresponding to a single core in this example.
To further improve discrimination robustness, a third frequency is added with the normalized power values plotted in an orthogonal dimension, as illustrated by reference nodes 700, 702, 704, 706, 708, and 710 of
D
i=[(Xi−Xt)2+(Yi−Yt)2+(Zi−Zt)2]1/2
where (Xt, Yt, Zt) are the cartesian coordinates of the test node, (Xi, Yi, Zi) are the Cartesian coordinates of the reference nodes where i ranges from one to the number of cores (6 in our example). The projections of nodes 700-710 onto the x-z plane are generally represented by points or nodes 730. The projections of nodes 700-710 onto the y-z plane are generally represented by points 740, with the projections onto the x-y plane generally represented by points 750. Representative sample points 710x-z, 710y-z, and 710x-y correspond to the projections of node 710 in each plane.
As previously described, this strategy can be extended to provide an n-dimensional analysis for a corresponding number of frequencies of interest. In one embodiment, 20 distinct frequencies or frequency bins are used to determine a signature or fingerprint for the reference nodes and test nodes. The matching process includes determining a 20-dimensional Euclidean distance as a square root of the sum of the squares of the differences between the test node and each reference node. This yields distance values for each of the reference nodes (each corresponding to a known number of operable cores) with the smallest distance parameter uniquely identifying the number of operable cores in the test chip. Alternatively, or in combination, other multi-dimensional similarity measures may be used to select a reference node that is most similar to the test node to determine the number of operable cores in the test IC as previously described.
One or more weighting factors may be applied to adjust or modify the influence or contribution of signals at particular frequencies of interest. The weighting factors may be applied to determine the coordinates or signature of the reference nodes and test nodes prior to performing the pattern matching or comparison of the test node to each of the reference nodes. For example, in the 2-frequency embodiment illustrated in
D
i
=[W
1(Xi−Xt)2+W2(Yi−Yt)2]1/2
where W1 and W2 are the weighting factors for the first and second frequencies, respectively, (Xt, Yt) are the cartesian coordinates for the test node, and (Xi, Yi) are the Cartesian coordinates for the reference nodes where i ranges from one to the number of cores (6 in this example). The number of operable cores in the test IC is determined using the smallest distance value as previously described. This strategy can also be extended to any number of frequencies and cores.
While 6-core chips have been used in the illustrated examples, the strategy is extendable to any number of cores and frequencies of interest. Similarly, while the illustrated examples employ a signature matching strategy based on a Euclidean distance of normalized signal levels, other matching strategies may be utilized. For example, pattern matching techniques using nonlinear, nonparametric pattern recognition, or correlation techniques may be used to determine the best match between the test node and one of a plurality of reference nodes. Similarly, in the representative embodiment illustrated in
Referring to
As illustrated in
Controller(s) 920 include or have access to one at least one computer readable medium 926, which may include various types of volatile and persistent storage, such as random access memory (RAM) 930, read-only memory (ROM), and optical, magnetic, or hybrid disk 934, for example. Computer readable storage medium 926 includes diagnostic instructions stored therein that, when executed by controller(s) 920 cause controller(s) 920 to process information associated with radiated electromagnetic energy 912 from multi-core processor 910 executing a specified set of test instructions to determine a number of operable cores of processor 910 based on the information. The diagnostic instructions may include instructions for determining power of the radiated electromagnetic energy 912 at each of a plurality of predetermined frequencies and instructions for comparing the power to a reference power at the predetermined frequencies associated with one or more reference multi-core processors having known numbers of functional cores as previously described. Similarly, computer readable medium 926 may include instructions for applying a weighting factor associated with each of the plurality of predetermined frequencies to corresponding information associated with the radiated electromagnetic energy 912. Computer readable medium 926 may also include diagnostic instructions for determining distance between a test data set associated with the radiated electromagnetic energy at the plurality of predetermined frequencies and each of a plurality of reference data sets associated with radiated electromagnetic energy for reference multi-core processors executing the specified set of test instructions each having a different known number of functioning cores. In one embodiment, computer readable medium 926 includes instructions for determining a test value corresponding to a weighted sum of average power for radiated electromagnetic energy at each of a plurality of frequencies.
As previously described with reference to
As also illustrated in
The processes, methods, or algorithms disclosed herein may be deliverable to/implemented by a processing device, controller, or computer, which may include any existing programmable electronic control unit or dedicated electronic control unit. Similarly, the processes, methods, or algorithms may be stored as data and instructions executable by a controller or computer in many forms including, but not limited to, information permanently stored on non-writable storage media such as ROM devices and information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media. The algorithms may also be implemented in a software executable object. Alternatively, the algorithms may be embodied in whole or in part using suitable hardware components, such as Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), state machines, controllers or other hardware components or devices, or a combination of hardware, software and firmware components.
While exemplary embodiments are described above, it is not intended that these embodiments describe all possible forms encompassed by the claims. The words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the disclosure and claims. As previously described, the features of various embodiments may be combined to form further embodiments of the invention that may not be explicitly described or illustrated. While various embodiments may have been described as providing advantages or being preferred over other embodiments or prior art implementations with respect to one or more desired characteristics, those of ordinary skill in the art recognize that one or more features or characteristics may be compromised to achieve desired overall system attributes, which depend on the specific application and implementation. These attributes include, but are not limited to: cost, strength, durability, life cycle cost, marketability, appearance, packaging, size, serviceability, weight, manufacturability, ease of assembly, etc. As such, embodiments described as less desirable than other embodiments or prior art implementations with respect to one or more characteristics are not outside the scope of the disclosure and may be desirable for particular applications.