• Nenhum resultado encontrado

To sensitize all types of faults due to crosstalk on NoC links, the Maximum Aggressor Fault (MAF) model [CDB99] has been used for NoC link IBIST [GIS07]. However, the implementation costs and complexity are non-negligible (e.g. more than 30% area overhead for a 2D five-port router with virtual channels [GIS07]), as 8N test patterns are necessary to sensitize the faults for N wires.

In the case of TSV tests, inter-die link IBIST complexity can be reduced by restricting the number of aggressor TSVs to the nearest neighbors of the considered victim wire. It is important to note that the crosstalk-induced delay faults on TSVs are mainly due to the coupling between neighboring TSVs and not all TSVs connecting two dies. The proposed solution, which is presented in the following section, is the Kth-order Aggressor Fault (KAF) model that takes into account the distance between wires. Depending on the TSV spatial distribution, potential aggressors are classified in classes (i.e. K-orders).

For a given aggressor order K, the victim TSV set is defined as a collection of TSVs such that transitions on any TSVs within the same set do not affect each other. In other words, each set contains TSVs such that no TSV in the set can be considered a K-order aggressor for other TSVs in the set (i.e. the distance between every pair of TSVs is more than K2p). In the following, an algorithm for determining the TSV victim set of a TSV bundle is presented.

3.2.2 TSV partitioning in victim sets

The challenge of KAF-based pattern generation process is to correctly identify the victim sets. In the case of TSVs, this process is straightforward, as only the distance between TSVs has to be considered. In other words, the only criteria needed for including two wires TSVi and TSVj in different victim sets is the distance between them Dist(TSVi,TSVj). For N TSVs and an aggressor order K, the victim sets V1…Vw are determined using the algorithm in Figure III-4.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

S = 0 ;

for i=1 to N do Set(TSVi)=0;

while(notCovered())do S++;

VS=φφφφ;

for i=1 to N do Free(TSVi)=true; for i = 1 to N

if(Free(TSVi)and(Set(TSVi)==0)) then Set(TSVi)=S;

VS= VSU{TSVi};

for j = 1 to N do

if((i!= j)and(Dist(TSVj,TSVi)1p1K) then Free(TSVj) = false;

end if;

end for;

end if;

end for;

end while;

Figure III-4 TSV partitioning algorithm using the Kth order aggressors for N TSVs

Initially, no victim subsets exist and the TSVs are not attached to any group, as shown in lines 1-2. The notCovered() function returns true if at least one TSV not attached to a victim subset exists (i.e. there is at least one j such that Set(TSVj)=0). In line 5, the current victim subset VS is initialized for a given victim subset index S. In line 9 the first wire TSVi, which is not attached to any victim subset (i.e. Set(TSVi)=0) and not in the aggressor set of any wire in the current victim subset (i.e. Free(TSVi)=true), is determined. In lines 10-11, if such a wire exists then it will be included to the current victim set VS (i.e. Set(TSVi)= S). In lines 12-16, all the aggressors of TSVi (i.e. if TSVj is aggressor of TSVi then Free(TSVj) is false) are marked, in order to prevent including them in VS. The aggressors are determined and marked in lines 13-15 using the distance Dist() function, the minimum pitch p and the aggressor order K. If there are unattached TSVs in the bundle then the victim subset index S increases in line 4 and the process above is repeated. The algorithm ends when each TSV belongs to a single victim set. In the worst case, this process takes N iterations, as the number of victim sets is smaller than the number of wires.

For regular and non-uniform TSV distributions in an inter-die link, the algorithm above determines the victim subsets. For a minimal pitch p, the TSV victim sets {V1,…,Vw} are represented in Figure III-5 for the 1st aggressor order K=1. This example shows that, for a regular array, the 25 TSVs are partitioned in the w=2

victim sets represented in Figure III-5 (a). For the non-uniform distribution, the 23 TSVs are partitioned in w=3 victim sets shown in Figure III-5 (b).

(a) p

Victim set V1

Victim set V2

(b) p

Victim set V1

Victim set V2

Victim set V3

Figure III-5 The victim sets for 1st order aggressors in regular (a) and non-uniform (b) TSV distributions

Partitioning TSVs in victim sets can also be performed using graph coloring. In this case, the graph G has N vertices that correspond to the N TSVs. Given an aggressor order K, an edge E connects two vertices i and j, if the distance between TSVi and TSVj is less than K2p. The vertex color represents the victim set of the corresponding TSV and the graph chromatic number (i.e. number of colors necessary to cover the graph) represents the number of victim sets w. Although both techniques give the same results, the graph coloring approach is more complex than the proposed partitioning algorithm in Figure III-4, as it often implemented using a backtracking strategy.

The KAF-based patterns must sensitize delay faults due to crosstalk between neighboring TSVs. However, as shown in Figure III-2, test patterns also traverse intra-die wires connecting the MUXes to TSVs, buffers and intra-die wires in the upper layer that connect TSVs to RA cells. Hence, faults on these components are also sensitized. Because all the ‘0’-‘1’ and ‘1’-‘0’ transitions are activated on every wire, all potential delay faults are sensitized. Open faults are also sensitized, since different signal values are transmitted on each TSV.

Short faults are sensitized, but only those between aggressors and victims, since signals transmitted on TSVs of a victim set are identical. If there is a short between TSVs of the same victim set then this fault is not detected. However, victims of the same set are distant and the probability of such faults is very low, as shorts usually affect neighboring wires. Depending on the circuitry layout, a solution to avoid missing such faults is to use higher aggressor orders.

The main advantage of the KAF model over other similar models consists in reduction of the test times.

For example, in the MAF model [CDG99] all neighboring wires are potential aggressors. In this case, each victim set contains a single TSVs and the test sequence is repeated N times for a bundle of N TSVs.

Using the KAF model, it is possible to test all TSVs within the same victim set in parallel. In the following, the implementation of KAF-based TPGs is presented.