The accompanying drawings are included to provide a further understanding of the present invention and are incorporated in and constitute a part of this specification. The drawings illustrate the embodiments of the present invention and together with the description serve to explain the principles of the invention. Other embodiments of the present invention and many of the intended advantages of the present invention will be readily appreciated as they become better understood by reference to the following detailed description. The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts.
The invention is illustrated in more detail in the drawings on the basis of an exemplary embodiment.
In the following Detailed Description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. In this regard, directional terminology, such as “top,” “bottom,” “front,” “back,” “leading,” “trailing,” etc., is used with reference to the orientation of the Figure(s) being described. Because components of embodiments of the present invention can be positioned in a number of different orientations, the directional terminology is used for purposes of illustration and is in no way limiting. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
The first measurement data flow representation 1 comprises a pseudorandom measurement data stream Tn, which is illustrated in rectangular fashion in
An input having the bit width k is shown on the left of the first measurement data flow representation 1, at which input the measurement data words y(1), y(2), . . . , y(n) are output e.g., from a tested integrated circuit in each case in clocked fashion. Therefore, the measurement data words having the higher indices are arranged further on the left in
An output having the bit width k is illustrated on the right of the first measurement data flow representation 1, via which output the measurement data are forwarded to a shift register 11. The shift register 11 is a shift register with a multiple input linear feedback shift register architecture or with an MILFSR architecture. All n data words are intended to be compressed in a single data word having the length of k bits by means of the shift register 11. The specification for the mapping of n data words y(1), y(2), . . . , y(n) into a single signature is given in equation (1).
S(1→n)=S(y(1), y(2), . . . , y(n)) (1)
The initial state z(t0) of the shift register 11 with the MILFSR architecture is given by the zero vector 0, z(t0)=0.
The second measurement data flow representation 2 differs from the first measurement data flow representation 1 by virtue of the fact that its data stream Tn has an error e(i) in the i-th data word y′(i) of the data stream Tn.
If such an error e(i) is present in the data word y′(i) of the data stream Tn, the specification for the mapping of n data words y(1), y(2), . . . , y(n) by the signature of the shift register 11 is given by equation (2).
S(1→n,i,e)=S(y(1), y(2), . . . , e(i), . . . , y(n)) (2)
This signature is then generated from the data words y(1), y(2), . . . , e(i), . . . , y(n) by means of the shift register 11. The shift register 11 has the MILFSR architecture already mentioned with reference to
Through skillful comparison of the signatures
If a known digital test response of a DUT contains precisely one error e(i) in the i-th data word of the data stream, then the data word y′(i) and all the faulty bits of its error e(i) can be obtained with the aid of the mapping S(1→n,i,e) calculated from an MILFSR architecture. This is done at an instant t>n at which the data words y(1), y(2), . . . , y(n) of the data stream Tn are no longer available or are no longer required.
In accordance with the present invention, only 2 signatures, that is to say 2 k-bit data words, need be evaluated for the test, for the diagnosis and for the error correction of an error in an arbitrary data word of the data stream Tn comprising n k-bit data words.
The first linear automaton circuit L1 comprises four states z1, z2, z3 and z4, which are illustrated in rectangular fashion in
The second input of the second OR gate XOR2 is connected to the output of the first state z1. The second input of the third OR gate XOR3 is formed by the output of the second state z2. The second input of the fourth OR gate XOR4 is formed by the output of the third state z3.
Attached to the output of the fourth state z4 is a first output line 30, which forks into a first feedback line 31 and into a second feedback line 32. The first feedback line 31 forms the third input of the second XOR gate XOR2, and the second feedback line 32 forms the second input of the first XOR gate XOR1.
The first linear automaton circuit L1 is accordingly designed as a shift register exhibiting feedback with a primitive polynomial and having four states z1, z2, z3 and z4.
The state equations of the first linear automaton circuit L1 are calculated from the states z(t+1) at the instant t+1 in a manner dependent on the states z(t) at the instant t. Equations (3)-(6) hold true for the first linear automaton circuit L1:
z
1(t+1)=z4(t)⊕y1(t) (3)
z
2(t+1)=z1(t)⊕z4(t)⊕y2(t) (4)
z
3(t+1)=z2(t)⊕y3(t) (5)
z
4(t+1)=z3(t)⊕y4(t) (6)
The following results with A as a state matrix:
The autonomous behavior of the first linear automaton circuit L1 is calculated from equation (7) where y(t)=0 as
z(t+1)=Az(t) (8)
Equations (3)-(8) are also referred to as successor equations.
It follows from equations (3), (5) and (6), where yi(t)=0 for iε{1,2,3,}, that:
z
4(t)=z1(t+1) (9)
z
2(t)=z3(t+1) (10)
z
3(t)=z4(t+1) (11)
It follows from equation (9), inserted into equation (4), that:
z
2(t+1)=z1(t+1)⊕z1(t)
and
z
1(t+1)⊕z2(t+1)=z1(t+1)⊕z1(t+1)⊕z1(t)
This results in the following:
z
1(t)=z1(t+1)⊕z2(t+1) (12)
Equations (9)-(12) are referred to as predecessor equations of the linear automaton circuit L1 for the input 0 or else as autonomous predecessor equations of the linear automaton circuit L1.
In matrix notation, the following predecessor equations are obtained analogously to the successor equations in (8) from (9)-(12)
A−1 is the inverse matrix with respect to A. Multiplication of A and A−1 produces the unit matrix E.
With regard to the signal direction, the second linear automaton circuit L2 is illustrated in mirrorinverted fashion with respect to the first linear automaton circuit L1.
Like the first linear automaton circuit L1, the second linear automaton circuit L2 comprises four states z1, z2, z3, z4, four exclusive-OR gates XOR1, XOR2, XOR3 and XOR4, and also four measurement data lines y1, y2, y3 and y4 which respectively form the first inputs of the exclusive-OR gates XOR1, XOR2, XOR3 and XOR4.
The exclusive-OR gates XOR1, XOR2, XOR3 and XOR4 are situated upstream of the fourth state z4 and respectively between the states z1, z2 and z3. The outputs of the exclusive-OR gates XOR1, XOR2, XOR3 and XOR4 are connected to the respective subsequent states z1, z2, z3 and z4.
The output of the first state z1 forms a second output line 40, which is divided into a third feedback line 41 and into a fourth feedback line 42. The third feedback line 41 leads into the first exclusive-OR gate XOR1 and the fourth feedback line 42 leads into the fourth exclusive-OR gate XOR1.
Like the first linear automaton circuit L1, the second linear automaton circuit L2 is also designed as a shift register exhibiting feedback with a primitive polynomial and having four states z1, z2, z3 and z4.
The state equation of the second linear automaton circuit L2 is given in equation (15).
For an assumed error e(i) in a k-bit data word y′(i) of the data stream Tn from
S(1→n,i,e)=S(y(1),y(2), . . . , y(i)⊕e(i), . . . , y(n)) (17)
and by application of the superposition principle in the case of linear automata
S(1→n,i,e)=S(y(1), y(2), . . . , y(n))⊕
S(0,0, . . . , e(i), . . . , 0
or
S(1→n,i,e)=S(1→n)⊕S(0,0, . . . , e(i), . . . ,0)
the difference
ΔS1(i,e)=S(1→n,i,e)⊕S(1→n) (18)
where
ΔS1(i,e)=S(0,0, . . . , e(i), . . . , 0) (19)
for
y(t)=0, for t≠i and y(t)=e(i), for t=i
With equation (19) in equation (18) it follows that
ΔS1(i,e)=S((n−i)→n,i,e)⊕S((n−i)→n) (20)
At the instant t=i−1, as yet no error e(i) has occurred in the data word y′(i); it is not until from the instant t=i that this error e(i) occurs in a k-bit data word.
For the formation of the signature from n data words y(1), y(2), . . . , y(n) with precisely one assumed error e(i) in a data word y′(i), we obtain from equations (20) and (7)
ΔS1(i,e)=A(n−1)e(i);i ε{1, 2, . . . , n} (21)
Equation (21) is the difference of two MILFSR signatures, namely of the signature of a 1-word faulty data stream Tn at the position i and of the signature of an error-free data stream Tn. The signature difference ΔS1 (i,e) is formed by a procedure in which the faulty data word y′(i) defines the initial state of the MILFSR architecture and is then accumulated (n−i) times in the MILFSR architecture with the inputting of all 0 vectors.
Upon transforming equation (21) with equation (16)
e(i)=B(n−i)ΔS1(i,e) (22)
it becomes evident that the data word e(i) can be calculated as a new signature by a procedure in which the initial state of the second linear automaton circuit L2 is set at ΔS1(i,e) and is then accumulated (n−i) times.
According to the invention, inverted MILFSR architectures can thus be used for calculating 1-word errors e in data streams Tn without it being necessary to still have these data streams available at the instant of calculating e(i).
From the equation corresponding to equation (20)
ΔS2(i,e)=B(n−i)e(i) (23)
for the second linear automaton circuit L2, we obtain with equation (16) analogously to equation (20) the following equation (24). For an assumed 1-word error e(i), the following is obtained from equation (21) for the first linear automaton circuit L1
e(i)=A(n−1)ΔS2(i,e) (24)
A
(n−i)
ΔS2(i,e)=B(n−i)ΔS1(i,e) (25)
Thus, if the initial state of the first linear automaton circuit L1 is set at ΔS2(i,e) or, respectively, if the initial state of the second linear automaton circuit L2 is set at ΔS1(i,e), and if this value is accumulated (n−i) times, then the error e(i) results as a new signature or as a new state in the case of both linear automaton circuits L1 and L2.
In this case, the value for the position i of the faulty data word y′(i) must lie between 1 and n.
If the equality of the expressions A(n−i)ΔS2(i,e) and B(n−i)ΔS1(i,e) results for none of the values i, 1≦i≦n, in equation (25), then an error e(i) which corrupts only the position i of the data word is not present, but rather an error which has corrupted at least two different positions in the data stream.
If ΔS1≠0 results, then it is possible, by resetting the linear automaton circuits L1 and L2 to ΔS2 and ΔS1, respectively, and by comparing the signatures accumulated in each step, to detect the position i of the faulty data word y′(i) and the error e(i) after n−i steps on both signatures or states. The signatures of the two linear automaton circuits L1 and L2 are equal in this case to
z
1(n−i)=z2(n−i) (26),
where z1 and z2 are L-dimensional state vectors of the linear automaton circuits L1 and L2, and where z1(n−i) and z2(n−i) are the states of the two linear automaton circuits L1 and L2 after n−i clock cycles.
Given a serial data input, the following holds true for the two linear automaton circuits L1 and L2
y
i(t)=0 for i≠1 (L1) (27)
y
i(t)=0 for i≠k (L2) (28)
In this case, k denotes the number of bits of a data word y(i) from the data stream Tn.
The comparison for identity of the signatures calculated back in this MILFSR architecture produces, for an assumed error e in the data word i after n-1 steps,
z
1(n−i)=z2(L+1−n+i) (29)
Situated at the top side of the sequential scheme 5 is a measurement data word line 51, on which is present a data stream Tn comprising n successive data words y(1), . . . , y(i−1), y′(i), y(i+1), . . . , y(n) each having an identical data word length of k bits. In this case, the data word y′(i) represents a faulty data word.
The measurement data word line 51 forks into two branches, the left-hand one of which has a first coder C1, the first linear automaton circuit L1, L exclusive-OR gates XORL1, which are combined in the form of an XOR gate having the word width L, and also a first output 52, at which the signature difference ΔS1 is output. The right-hand branch comprises a second coder C2, the second linear automaton circuit L2, L exclusive-OR gates XORL2, which are likewise combined in the form of an XOR gate having the word width L, and also a second output 53, at which the signature difference ΔS2 is output.
The respective L first inputs of the L exclusive-OR gates XORL1 are formed by the outputs of the first linear automaton circuit L1, and the first inputs of the L exclusive-OR gates XORL2 are formed by the outputs of the second linear automaton circuit L2.
Good signatures of the two linear automaton circuits L1 and L2 are provided at the second inputs of the L exclusive-OR gates XORL1 and XORL2 by means of digital circuits that are not shown in
The measurement data stream Tn is input via the first coder C1 into the first linear automaton circuit L1 and, in parallel with this, via the second coder C2 into the second linear automaton circuit L2.
The data stream Tn respectively present is transformed uniformly by means of the coders C1 and C2. As a result, it is possible also to compare data words y(1), . . . , y(n) of different data streams Tn with one another.
The data words u1(1), . . . , u1(n) and u2(1), . . . , u2(n) coded by the coders C1 and C2 are compacted to form signatures S1 and S2 by means of the linear automaton circuits L1 and L2, respectively.
The actual signatures S1 and S2 thus determined are then compared with the known good signatures in the exclusive-OR gates XORL1 and XORL2. The respective L exclusive-OR gates XORL1 and XORL2 provide the signature differences ΔS1 and ΔS2 at the outputs 52 and 53.
According to the invention, these signature differences ΔS1 and ΔS2 can be used to ascertain whether errors have occurred in the case of the data stream Tn respectively under consideration.
If the data stream Tn has precisely one faulty data word y′(i), it is possible to directly determine both the position i of the faulty data word and the error e(i) of the faulty data word in the data stream.
The function of the first coder C1 is described precisely below.
The coder C1, for i=1, . . . , n, codes the data word y(i) having the data word length of k bits into a coded data word u1(i), u1(i)=Cod1(y(i)) having the word width of K1 bits. In this case, Cod1 designates the coding function of the first coder C1.
If y′(i) is the component-by-component XOR sum of two k bit wide data words y(i) and e(i), namely
y′(i)=y(i)⊕e(i)
then the following is to hold true for the coding function Cod1
so that a function ƒ1−1 where
ƒ1−1(f1(e))=e
holds true for all binary data words e having the word width k that are possible as errors.
If the coder C1 realizes a linear block code with k information positions and with (K1−k) check positions, then the following holds true
and it holds true that
f1=Cod1.
then it holds true for y′(i)=y(i)⊕e(i) that:
where
f
1(e(i))=f1([e1(i), e2(i), e3(i)]T) [e1(i), e2(i), e3(i), 0, 0]
and
ƒ1−1([e1(i), ez(i), e3(i), 0, 0]T)=e1(i), e2(i), e3(i).
The function of the first linear automaton circuit L1 is described in detail below.
In the description below, the state matrix of the linear automaton circuits L1 and L2 may assume an arbitrary size and is not fixed at n=4, as described above. A further difference in the description below is that the input values of the linear automaton circuits L1 and L2 are coded data words u1(1), . . . , u1(n) and u2(1), . . . , u2(n), respectively, which have been coded by the first coder Cl and by the second coder C2, respectively, from the data words y(1), . . . , y(n).
The first linear automaton circuit L1 is formed over the field GF(2) and has a K1-dimensional state vector z1(t). K1≧k holds true in this case.
The first linear automaton circuit L1 is generally described by the equation
z
1(t+1)=A·z1(t)⊕u1(t) (I)
In this case, z1(t) and z1(t+1) are K1-dimensional binary state vectors at the discrete instant t and t+1. u1(t) is the coded data word that is input at the instant t.
A is a uniquely reversible binary (K1×K1) matrix.
The addition and the multiplication of the binary values in equation (I) are effected modulo 2.
After the data stream Tn comprising the n data words y(1), . . . , y(n) has been input into the first coder C1 and after the coded data words u1(i), . . . , u1(n) have been input into the first linear automaton circuit L1, the first linear automaton circuit L1 undergoes transition from an initial state z1(1) to the state z1(n+1). The following holds true in this case:
z
1(n+1)=S(L1, u1(1), . . . , u1(n))
where u1(i)=Cod1(y(i)) is designated as the signature of the data sequence y(1), . . . , y(n) of the first linear automaton circuit L1.
The initial state z1(1) shall hereinafter be equal to the K1-dimensional zero vector 0. For carrying out the method according to the invention it is not necessary for the initial state z1(1) to be formed as the zero vector. This assumption is made here in order to simplify the subsequent calculations.
If there is an error e(i) in the i-th data word of the data stream, then at the i-th instant, instead of the correct data word y(i), the faulty data word
y′(i)=y(i)⊕e(i)
is input into the first coder C1. In this case, the error e(i) is a k-dimensional binary vector. Those components of this binary vector which assume the value one designate the positions of the faulty bits in the i-th data word.
If only the i-th data word is faulty and all the other data words are correct, then the following holds true where z1(1)=0 when the data stream that is only faulty in the i-th data word is input into the first coder C1 where
A
n−i Cod1(e(i))=ΔS1 (V)
A
n−i
·e(i)=ΔS1 (VI)
For i=1, . . . , n, the second coder C2 codes the data word y(i) having the data word length of k bits into the coded data word u2(i), u2(i)=Cod2(y(i)). The coded data word u2(i) has a word width of K2 bits. In this case, Cod2 designates the coding function of the second coder C2.
If y′(i) is the component-by-component XOR sum of two k bit wide words y(i) and e(i).
y′(i)=y(i)⊕e(i),
then the following is intended to hold true for the coding function Cod2
so that there is a function ƒ2−1 where ƒ2−1(f2(e))=e for all binary data words e having the word width k which may be taken into consideration as errors.
The function of the second linear automaton circuit L2 is described in detail below.
The second linear automaton circuit L2 is formed over the field GF(2) and has a K2-dimensional state vector z2(t). K2≧k holds true in this case.
The second linear automaton circuit L2 is described by the equation
z
2(t+1)=B·z2(t)u2(t) (VII)
where z2(t) and z2(t+11) are K2-dimensional binary state vectors at the discrete instants t and t+1. u2(t) is the coded data word that is input at the instant t. B where B≠A is a uniquely reversible binary (K2×K2) matrix. The addition and multiplication in (VII) are effected modulo 2.
After the data stream Tn comprising the n data words y(1), . . . , y(n) has been input into the second coder C2 and after the coded data words u2(1), . . . , u2(n) have been input into the second linear automaton circuit L2, the second linear automaton circuit L2 undergoes transition from its initial state z2(1) to the state z2(n+1)
z
2(n+1)=S(L2, u2(1), . . . , u2(n))
where u2(i)=Cod2(y(i)) is designated as the signature of the data stream y(1), . . . , y(n) in the second linear automaton circuit L2.
The K1-dimensional zero vector 0 subsequently forms the initial state z2(1).
If there is then an error e(i) in the i-th data word of the data stream, then at the i-th instant, instead of the correct data word y(i), the faulty data word y′(i)=y(i)⊕e(i) is input into the second coder Cod2.
If only the i-th data word is faulty and all the other data words are correct, then there holds true, where z2(1)=0, where
the following equation:
ΔS2=Bn−1ƒ2(e(i)) (X)
ΔS2=Bn−1Cod2(e(i)) (XI)
ΔS2=Bn−i·e(i) (XII)
e(i)=ƒ1−1(Ai−nΔS1) (XIV)
e(i)=ƒ2−1(Bi−nΔS2) (XV)
which result in the following equation:
ƒ1−1(ai−nΔS2)=ƒ2−1(Bi−nΔS2) (XVI)
By means of the equation (X-VI) it is possible to calculate i, iε{1, . . . , n}, that is to say the position i of the faulty data word y′(i).
The value for i from equation (XVI) can be calculated e.g., iteratively by calculating for i=1, 2, . . . the value of the left-hand and right-hand sides of equation (XVI) until both sides match.
If the value for i has been determined in this way, then it is possible, by means of equation (XIV), also to directly determine the value for e(i), that is to say the position of the faulty data word in the data stream.
The first flowchart 6 provides a total of seven method processs 61-67, the method processes 62 and 65 being formed as decision fields and the remaining method processes being formed as execution fields.
The first method process 61 involves generating the signature differences ΔS1 and ΔS2 and also a data stream Tn, as is illustrated e.g., in
As described thoroughly with reference to
In the second method process 62, the signature difference ΔS1 present at the first output 52 is compared with zero. If the signature difference ΔS1 is equal to zero, this means that no error could be detected in the data stream Tn. In this case, the method continues with the checking of the next data stream Tn. If the signature difference ΔS1 is not equal to zero, this means that one or arbitrarily many faulty data words y(1), . . . , y(n) are faulty. In this case, the method continues with the method step 63.
In the method process 63, the states z(t=n+1) of the linear automaton circuits L1 and L2 are in each case reset to the values of the respective other signature differences ΔS1 and ΔS2.
The method process 64 involves calculating back for y(t)=0, to be precise the linear automaton circuits L1 and L2 are accumulated in (n−i) steps for y(t)=0 and the states according to equation (26) are checked for identity. This process of calculating back is known to the person skilled in the art and need not be explained any further here.
The method process 65 involves checking whether a solution exists. If this is not the case, then more than one data word y(1), . . . , y(n) of the data stream Tn is faulty.
If a solution does exist, then the data word y′(i) and the error e(i) are calculated in the method step 66.
In this case, firstly the data word y′(i) is determined from the number of traversed cycles of the linear automaton circuit L1 and L2.
The error e(i) is then calculated from equation (30):
e(i)=z(t) for t=i, 1≦i≦N (30)
z(t=i) is the state of the two linear automaton circuits L1 and L2 at the instant t=i.
In a further exemplary embodiment, it is also possible to check two serial, that is to say successive, data streams Tn.
In this case, the left-hand branch of the measurement data word line 51 is traversed twice in succession and the right-hand branch of the measurement data word line 51 is not traversed at all, in the second pass the first coder C1 being replaced by the second coder C2 if the first coder C1 differs from the second coder C2 and the first linear automaton circuit L1 with the state matrix A being replaced by the second linear automaton circuit L2 with the state matrix B, B≠A, which may be effected technically e.g., in a simple manner using multiplexers.
If the method is realized on a computer system, then that program part which realizes the first linear automaton circuit L1 is quite simply to be replaced in the second pass by that program part which realizes the second linear automaton circuit L2. Likewise, if the coders C1 and C2 differ from one another, the function Cod1 of the first coder C1 in the first pass is to be replaced by the function Cod2 of the second coder C2 in the second pass.
In this case, S1 is the signature calculated in the first pass and S2 is the signature calculated in the second pass. The method essentially matches the method described in the previous exemplary embodiment.
The implementation of the method is readily possible for a person skilled in the art on the basis of the information given in this patent specification.
The following document has been cited in the context of this patent specification:
[1] Rohling H., Einführug in die Informations- und Codierungstheorie, Teubner Verlag, 1995 [Introduction to information and coding theory]
In order to unambiguously identify and diagnose an error e(i) at the position i of the data stream Tn, it is, surprisingly, not necessary for the feedback polynomial to be primitive or irreducible. It actually suffices here for the matrix B to be the inverse of the matrix A.
Thus, the value of the position of the error i, which must naturally occur in the data stream from 1 to n, is determined from the equation
f
1
−1 (Ai−n ΔS1)=f2−1 (Bi-n ΔS2)
and where then =A−1 as
f
1
−1 (Ai-n ΔS1)=f2−1 (An−i ΔS2)
e(i)=f1−1 (Ai−n ΔS1).
If the matrix A has an inverse matrix A−1, then Ake(i)≠0 holds true for e(i)≠0 for any k. Thus, and because a linear superposition principle holds true for linear shift registers, an individual error e(i) which has corrupted different bits at the position i can never be masked. By virtue of the fact that the signature is furthermore also provided in two different multi-input signature registers with mutually inverse matrices A and B=A−1, it is even possible to determine the position i and the value e(i) exactly.
A masking of errors in a signature which is identical to the good signature can only occur with a vanishingly small probability if a plurality of errors occur at a plurality of bit positions which cancel out randomly in their signature. In the case of a single faulty position this is not possible, as explained.
The probability, when a plurality of errors are present, of the equation
f
1
−1 (ΔS1)=f2−1 (An−i ΔS2)
having a solution for i where 1≦i≦n is negligibly small and if it happens that no solution can be found for i, this means that there is no individual error e(i) present which has only faulty bits at the position i in the data stream. The property whereby the feedback polynomial is intended to be primitive is an advantageous configuration for which the error masking probability that is inherently already practically negligibly small is especially small for errors which relate to a plurality of positions in the data stream Tn.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.
Number | Date | Country | Kind |
---|---|---|---|
10349933.4 | Oct 2003 | DE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/DE04/02362 | 10/22/2004 | WO | 00 | 1/15/2007 |