|
|
|
| United States Patent | 5617531 |
| Link to this page | http://www.wikipatents.com/5617531.html |
| Inventor(s) | Crouch; Alfred L. (Austin, TX); Pressly; Matthew D. (Austin, TX); Gay; James G. (Pflugerville, TX); Shepard; Clark G. (Austin, TX); Laakso; Pamela S. (Austin, TX) |
| Abstract | A data processor (10) has a single test controller (11). The test
controller (11) has a test pattern generator portion (26) and a memory
verification element (27). The test pattern generator (26) generates and
communicates a plurality of test patterns to the plurality of memories
(12, 13, and 14) through a second storage device (17). A first storage
device (16) is used to store data read from the plurality of memories (12,
13, and 14). The data from the first storage device is selectively
accessed by the memory verification element (27) via the bus (31). A bit
(32) or more than one bit is used to communicate to external to the
processor (10) whether the memories (12, 13, and 14) are operating in an
error free manner. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5617531 |
|
|
Data Processor having a built-in internal self test controller for
testing a plurality of memories internal to the data processor |
|
|
|
|
|
| Publication Date |
April 1, 1997 |
|
|
|
|
|
| Filing Date |
July 10, 1995 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
This application is a continuation of prior application Ser. No.
08/144,369, filed on Nov. 2, 1993 now abandoned, entitled "A DATA
PROCESSOR HAVING A BUILT-IN INTERNAL SELF TEST CONTROLLER FOR TESTING A
PLURALITY OF MEMORIES INTERNAL TO THE DATA PROCESSOR". |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5325367 Dekker 714/718 Jun,1994 |      Your vote accepted [0 after 0 votes] | | 5323108 Marker, III 324/158.1 Jun,1994 |      Your vote accepted [0 after 0 votes] | | 5301199 Ikenaga 714/733 Apr,1994 |      Your vote accepted [0 after 0 votes] | | 5301156 Talley 365/201 Apr,1994 |      Your vote accepted [0 after 0 votes] | | 5285153 Ahanin 324/73.1 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5260950 Simpson 714/727 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5260649 Parker 714/727 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5260947 Posse 714/727 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5260948 Simpson 714/727 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5260949 Hashizume 714/731 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5258986 Zerbe 714/719 Nov,1993 |      Your vote accepted [0 after 0 votes] | | 5230000 Mozingo 714/732 Jul,1993 |      Your vote accepted [0 after 0 votes] | | 5229657 Rackley 326/26 Jul,1993 |      Your vote accepted [0 after 0 votes] | | 5225721 Gal 326/71 Jul,1993 |      Your vote accepted [0 after 0 votes] | | 5221865 Phillips 326/86 Jun,1993 |      Your vote accepted [0 after 0 votes] | | 5220281 Matsuki, Koji (Kamakura, JP) 714/727 Jun,1993 |      Your vote accepted [0 after 0 votes] | | 5202978 Nozuyama 714/30 Apr,1993 |      Your vote accepted [0 after 0 votes] | | 5181191 Farwell 368/113 Jan,1993 |      Your vote accepted [0 after 0 votes] | | 5119202 Hashimoto 348/302 Jun,1992 |      Your vote accepted [0 after 0 votes] | | 5109382 Fukunaka 714/718 Apr,1992 |      Your vote accepted [0 after 0 votes] | | 5107501 Zorian
Apr,1992 |      Your vote accepted [0 after 0 votes] | | 5097206 Perner 714/733 Mar,1992 |      Your vote accepted [0 after 0 votes] | | 5054024 Whetsel 714/726 Oct,1991 |      Your vote accepted [0 after 0 votes] | | 5047710 Mahoney 324/537 Sep,1991 |      Your vote accepted [0 after 0 votes] | | 5041742 Carbonaro 326/97 Aug,1991 |      Your vote accepted [0 after 0 votes] | | 5029166 Jarwala 714/724 Jul,1991 |      Your vote accepted [0 after 0 votes] | | 5012471 Powell 714/744 Apr,1991 |      Your vote accepted [0 after 0 votes] | | 4680761 Burkness 714/724 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4414669 Heckelman 714/800 Nov,1983 |      Your vote accepted [0 after 0 votes] | | 4905142 Matsubara 711/163 Dec,1969 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
Claims  |
|
|
What is claimed is:
1. A method for internally testing a plurality of embedded memories of a data processor, wherein the data processor is formed on a single integrated circuit and at least two
of the plurality of embedded memories are different in both physical placement and number of memory, locations contained therein, the plurality of embedded memories residing within the single integrated circuit, the method comprising the steps of:
(a) generating, by an internal test controller of the data processor, a test pattern for testing the plurality of embedded memories, the test pattern having a plurality of bits;
(b) transmitting the plurality of bits of the test pattern in a parallel manner via at least one bus of the data processor to one embedded memory in the plurality of embedded memories, the at least one bus being internal to the single integrated
circuit and having no direct connection to an environment external to the integrated circuit, the at least one bus being time multiplexed to be a functional bus that is used by the data processor to communicate information in a normal mode of operation
and being a test bus that is used to transmit the plurality of bits of the test pattern in a test mode of operation;
(c) storing at least a portion of the test pattern within predetermined cells of the one embedded memory;
(d) reading, by the internal test controller, the at least a portion of the test pattern from the predetermined cells of the one embedded memory;
(e) verifying, by the internal test controller via the steps of reading and storing, that the one embedded memory is functioning properly, the verifying being performed by storing data in a verification storage element wherein the verification
storage element has an input and an output wherein a feedback path is coupled between the input of the verification storage element and the output of the verification storage element so that the output of the verification storage element affects the
input of the verification storage element; and
changing the test pattern to a new test pattern and repeating steps (b) through (f) until no new test patterns are available.
2. The method of claim 1 further comprising the step of:
reading, by the internal test controller, a binary value from the predetermined cells before the step of storing is performed.
3. The method of claim 1 wherein the step of storing at least a portion of the test pattern within predetermined cells of each embedded memory comprises:
writing the at least a portion of the test pattern as at least one binary value selected from a group consisting of: 0000, 1111, 0011, 1100, 0101, and 1010.
4. The method of claim 1 wherein the at least one bus is a pipelined data bus, the method further comprising the step of:
stalling the pipelined data bus before the step of storing.
5. The method of claim 1 wherein the step of transmitting the test pattern via at least one bus, comprises:
transmitting the test pattern via a data bus internal to the data processor which has a pipelined structure wherein the test pattern is clocked through at least one intermediate storage location before being accessible by an embedded memory of
the plurality of embedded memories.
6. The method of claim 1 wherein the step of transmitting the test pattern via at least one bus, comprises:
transmitting, via an internal bi-directional bus coupled to the internal test controller and coupled to a first memory device, a data portion of the test pattern to the first memory device within the data processor, the first memory device being
coupled to a data bus internal to the data processor, the data bus allowing the data portion of the test pattern which is stored in the first memory device to be transmitted to one of the memories in the plurality of memories.
7. The method of claim 6 wherein the step of reading comprises:
sending embedded memory data from the plurality of embedded memories to a second memory device via a plurality of conductors, the second memory device being coupled to the internal bi-directional bus in order to provide the embedded memory data
to the internal test controller.
8. The method of claim 7 wherein the steps of sending and transmitting comprise:
selectively stalling the data bus in order to allow time multiplexing of the data bus so that the step of transmitting and sending may be performed through the internal bi-directional bus at different time intervals.
9. The method of claim 1 wherein the test pattern comprises an address portion and a data portion and the step of transmitting comprises:
using an internal bi-directional bus to transfer the address portion to a first memory device, the first memory device being accessible by an address bus which is internal to the data processor; and
using the internal bi-directional bus to transfer the data portion to a second memory device, the second memory device being accessible by a data bus which is internal to the data processor.
10. The method of claim 1 wherein one of the plurality of embedded memories is an N.times.1 set associative memory array, where N is a positive integer greater than zero, the N.times.1 set associative memory array having N separate banks of
memory, the step of storing comprises:
storing the at least a portion of the test pattern within each memory location of each of the N separate banks of memory within the N.times.1 set associative memory array.
11. The method of claim 1 wherein one of the plurality of embedded memories is an N.times.1 set associative memory array, where N is a positive integer greater than zero, the N.times.1 set associative memory array having N separate banks of
memory wherein each addressable location within the N separate banks of memory contains a plurality of data locations, the step of storing comprises:
storing the at least a portion of the test pattern within each data location of each addressable location of each of the N separate banks of memory.
12. The method of claim 1 wherein the at least one bus is a pipelined data bus and the method further comprising the step of:
stalling the pipelined data bus after the step of reading.
13. The method of claim 1 wherein the step of verifying comprises:
collecting data, read from the plurality of embedded memories via the step of reading, in an analyzer circuit, the analyzer circuit providing at least one bit external to the data processor to indicate whether the plurality of embedded memories
within the data processor is operating in an error-free manner.
14. The method of claim 13 wherein the step of collecting data comprises:
collecting data in the analyzer circuit wherein the analyzer circuit stores an old plurality of history bits, the old plurality of history bits being logically combined with current data from the plurality of embedded memories to form an updated
plurality of history bits wherein the updated plurality of history bits replaces the old plurality of history bits within the analyzer circuit.
15. The method of claim 13 wherein the step of collecting data comprises:
storing a history binary value within the analyzer circuit wherein the history binary value can be periodically checked to determine whether a single embedded memory within the plurality of embedded memories is properly operating.
16. The method of claim 1 further comprising the step of:
asserting a control signal external to the data processor to invoke the step of generating wherein all other non-clock signals accessible to the data processor from external to the data processor are ignored when a logic value of the control
signal invokes the step of generating.
17. The method of claim 1 wherein the steps of reading and storing respectively comprise:
reading and storing through an internal bi-directional bus, the internal bi-directional bus being coupled between the internal test controller and the plurality of embedded memories, the internal bi-directional bus being coupled between the
plurality of embedded memories and the test controller by circuitry which does not significantly increase either an impedance load or a capacitive load of an internal data bus of the data processor and an internal address bus of the data processor.
18. The method of claim 1 further comprising:
providing a plurality of addressing bits to the internal test controller of the data processor from external to the data processor, the plurality of addressing bits being used by the internal test controller to determine which embedded memory
within the plurality of embedded memories is to be tested.
19. A method for internally testing a plurality of embedded memories of a data processor, wherein at least two of the plurality of embedded memories are different in that one embedded memory contains N memory locations and the other embedded
memory contains M memory locations wherein N.noteq.M, the data processor and the plurality of embedded memories being formed together in one integrated circuit, the method comprising the steps of:
a) generating, by an internal test controller of the data processor, a first test pattern in a set of test patterns for the plurality of embedded memories, the generating being performed by intercoupled counters and state machines within the
internal test controller, the intercoupled counters and state machines generating both test data in the first test pattern and address data in the first test pattern, the address data being used to determine which memory in the plurality of embedded
memories is to be tested;
b) transmitting the test data within the first test pattern of the set of test patterns via at least one bus of the data processor to a first embedded memory of the plurality of embedded memories identified by the address data of the first test
pattern, the at least one bus being totally internal to the one integrated circuit and being electrically isolated from external to the one integrated circuit;
c) storing the data portion of the first test pattern within predetermined cells of the first embedded memory;
d) reading, by the internal test controller, the data portion from the predetermined cells of the first embedded memory via the at least one bus;
e) updating, by the internal test controller, a signature value which indicates an integrity of the first embedded memory with respect to the first test pattern, the signature value having an output and an input wherein the output logically
affects the input via a feedback connection between the input and the output;
f) repeating steps (a) through (e) with the first embedded memory for remaining test patterns of the set of test patterns;
g) repeating steps (b) through (f) for remaining embedded memories of the plurality of memories;
h) providing an output in response to a final signature value which indicates whether the plurality of embedded memories are functioning properly.
20. The method of claim 19 wherein the steps of reading and storing respectively comprise:
reading and storing through an internal bi-directional bus, the internal bi-directional bus being coupled between the internal test controller and the plurality of embedded memories, the internal bi-directional bus being coupled between the
plurality of embedded memories and the internal test controller by circuitry which does not significantly increase either an impedance load or a capacitive load of an internal data bus and an internal address bus of the data processor.
21. The method of claim 19 further comprising the step of:
reading, by the internal test controller, a binary value from the predetermined cells before the step of storing is performed.
22. The method of claim 19 wherein the step of transmitting the test pattern via at least one bus, comprises:
transmitting the first test pattern via a data bus which has a pipelined structure wherein the first test pattern is clocked through at least one intermediate storage location before being accessible by an embedded memory of the plurality of
embedded memories.
23. The method of claim 19 wherein the step of transmitting the first test pattern via at least one bus, comprises:
transmitting, via an internal bi-directional bus coupled to the internal test controller, a data portion of the first test pattern to a first memory device within the data processor, the first memory device being accessible by a data bus internal
to the data processor, the data bus being used to transfer the data portion of the first test pattern from the first memory device to an embedded memory within the plurality of embedded memories.
24. The method of claim 23 wherein the step of reading comprises:
sending embedded memory data from the plurality of embedded memories to a second memory device via a plurality of conductors, the second memory device being coupled to the internal bi-directional bus in order to provide the embedded memory data
to the internal test controller.
25. The method of claim 24 wherein the steps of sending and transmitting comprise:
selectively stalling the data bus in order to allow time multiplexing of the data bus so that the transmitting and sending may be performed through the internal bi-directional bus at different time intervals.
26. The method of claim 19 wherein the at least one bus is a pipelined data bus and the method further comprising the step of:
stalling the pipelined data bus before the step of reading but after the step of storing.
27. The method of claim 19 wherein one of the plurality of embedded memories is an N.times.1 set associative memory array, where N is a positive integer greater than zero, the N.times.1 set associative memory array having N separate banks of
memory, the step of storing comprises:
storing the at least a portion of the test pattern within each memory location of each of the N separate banks of memory within the N.times.1 set associative memory array.
28. The method of claim 19 wherein the step of updating comprises:
collecting data read from the plurality of embedded memories in an analyzer circuit, the analyzer circuit providing at least one bit external to the data processor to indicate whether the plurality of embedded memories within the data processor
is operating in an error-free manner.
29. The method of claim 28 wherein the step of collecting data comprises:
collecting data in the analyzer circuit wherein the analyzer circuit stores an old plurality of history bits, the old plurality of history bits being logically combined with current data from the plurality of embedded memories to form an updated
plurality of history bits wherein the updated plurality of history bits replaces the old plurality of history bits within the analyzer circuit.
30. An internal test controller of a data processor wherein the data processor includes a plurality of embedded memories, each of the data processor, the internal test controller, and the embedded memories are formed together in a single
integrated circuit, the internal test controller comprising:
a test pattern generator that generates a test pattern for each embedded memory within the plurality of embedded memories and sequentially provides the test pattern to each embedded memory of the plurality of embedded memories via a bus internal
to the single integrated circuit; and
a memory verification element that is operably coupled to the test pattern generator via the bus internal to the single integrated circuit, the bus being used to conduct information from the test pattern generator and conduct information to the
memory verification element in a time multiplexed manner, wherein the memory verification element verifies correct operation of the plurality of embedded memories by reading memory data from each embedded memory after writing the test pattern to the
plurality of embedded memories, the memory data being provided to a storage element that changes from a first state to a second state in response to the memory data and the first state within the storage element, the storage element providing a signal
that indicates whether the plurality of embedded memories are operating properly.
31. The internal test controller of claim 30 wherein the internal test controller selectively communicates at least a portion of the test pattern to a first storage device within the data processor though a bi-directional test bus, the first
storage device being accessible to at least one of the plurality of embedded memories via an internal data bus of the data processor.
32. The internal test controller of claim 31 wherein the data processor selectively communicates data read from the at least one of the plurality of embedded memories to a second storage device, the second storage device being accessible to the
test controller via the bi-directional test bus.
33. The internal test controller of claim 32 wherein the internal bi-directional bus allows data to be transferred from the internal test controller to the first storage device and selectively allows data to be transferred from the second
storage device to the internal test controller in different time intervals.
34. The internal test controller of claim 31 wherein the first storage device has a first data path which allows data bits from external to the data processor to be communicated internal to the data processor, and a second data path isolated
from the first data path in order to provide test data within the data processor in a manner which does not electrically load the first data path.
35. The internal test controller of claim 30 wherein the memory verification element is a signature analyzer which collects data read from the plurality of embedded memories, the signature analyzer processing the data read from the plurality of
embedded controllers and providing at least one bit external to the data processor to indicate whether the plurality of embedded memories within the data processor is operating in an error-free manner.
36. The internal test controller of claim 30 wherein the memory verification element is a circuit which stores an old plurality of history bits, the old plurality of history bits being logically combined with current data read from the plurality
of embedded memories to form an updated plurality of history bits wherein the updated plurality of history bits replaces the old plurality of history bits within the analyzer circuit.
37. The internal test controller of claim 30 wherein the data processor has a first external pin and a second external pin, the first external pin being used to identify when testing is complete, the second external pin being used to identify
whether the testing passed or failed.
38. The internal test controller of claim 37 wherein second external pin serially transmits a serial signature analyzer value after assertion of the first external pin.
39. The internal test controller of claim 30 wherein the internal test controller accesses a bus structure having M bits and at least one of the embedded memories in the plurality of embedded memories has N bits, where N is greater than M and
both N and M are positive finite integers, the internal test controller testing the N bits within the embedded memory in more than one M bit portions.
40. An data processor having a plurality of embedded memories, the data processor comprising:
an internal test controller, the internal test controller comprising:
a test pattern generator that generates a test pattern for the plurality of embedded memories and sequentially selects each embedded memory of the plurality of embedded memories; and
a memory verification element that is operably coupled to the test pattern generator, wherein the memory verification element verifies integrity of the plurality of embedded memories based on results of memory testing the plurality of embedded
memories using the test pattern;
a first storage device for storing data being read from each embedded memory within the plurality of embedded memories;
a second storage device for storing at least a portion of the test pattern from the internal test controller; and
a bi-directional bus coupled among the first storage device, the second storage devices, the memory verification element, and the test pattern generator, the bi-directional bus being internal to the data processor, the bi-directional bus allowing
data within the first storage device to be selectively communicated to the memory verification element, and allowing the at least a portion of the test pattern to be selectively stored within the second storage device in a time-multiplexed manner.
41. An integrated circuit wafer comprising:
a plurality of integrated circuit chips wherein each of the chips in the plurality of integrated circuit chips has one built-in self-test controller for testing a plurality of memories on each of the integrated circuit chips;
a conductive metallic clock interconnect coupled across the integrated circuit wafer to each integrated circuit chip in the plurality of integrated circuit chips, the integrated circuit wafer requiring at least one signal via the conductive
metallic clock interconnect to invoke wafer-level integrated circuit testing and requiring a c | | |