WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Data Processor having a built-in internal self test controller for testing a plurality of memories internal to the data processor    
United States Patent5617531   
Link to this pagehttp://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)
AbstractA 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
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 - US Patent 5617531 Drawing
Data Processor having a built-in internal self test controller for testing a plurality of memories internal to the data processor
Inventor     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)
Owner/Assignee     Motorola, Inc. (Schaumburg, IL)
Patent assignment
All assignments
Publication Date     April 1, 1997
Application Number     08/500,271
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 10, 1995
US Classification    
Int'l Classification    
Examiner     Beausoliel Jr.; Robert W.
Assistant Examiner     Le; Dieu-Minh
Attorney/Law Firm     Witek; Keith E.
Address
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".
Priority Data    
USPTO Field of Search    
Patent Tags     data processor built-in internal self test controller for testing plurality memories internal data processor
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5325367
Dekker
714/718
Jun,1994

[0 after 0 votes]
5323108
Marker, III
324/158.1
Jun,1994

[0 after 0 votes]
5301199
Ikenaga
714/733
Apr,1994

[0 after 0 votes]
5301156
Talley
365/201
Apr,1994

[0 after 0 votes]
5285153
Ahanin
324/73.1
Feb,1994

[0 after 0 votes]
5260950
Simpson
714/727
Nov,1993

[0 after 0 votes]
5260649
Parker
714/727
Nov,1993

[0 after 0 votes]
5260947
Posse
714/727
Nov,1993

[0 after 0 votes]
5260948
Simpson
714/727
Nov,1993

[0 after 0 votes]
5260949
Hashizume
714/731
Nov,1993

[0 after 0 votes]
5258986
Zerbe
714/719
Nov,1993

[0 after 0 votes]
5230000
Mozingo
714/732
Jul,1993

[0 after 0 votes]
5229657
Rackley
326/26
Jul,1993

[0 after 0 votes]
5225721
Gal
326/71
Jul,1993

[0 after 0 votes]
5221865
Phillips
326/86
Jun,1993

[0 after 0 votes]
5220281
Matsuki, Koji (Kamakura, JP)
714/727
Jun,1993

[0 after 0 votes]
5202978
Nozuyama
714/30
Apr,1993

[0 after 0 votes]
5181191
Farwell
368/113
Jan,1993

[0 after 0 votes]
5119202
Hashimoto
348/302
Jun,1992

[0 after 0 votes]
5109382
Fukunaka
714/718
Apr,1992

[0 after 0 votes]
5107501
Zorian

Apr,1992

[0 after 0 votes]
5097206
Perner
714/733
Mar,1992

[0 after 0 votes]
5054024
Whetsel
714/726
Oct,1991

[0 after 0 votes]
5047710
Mahoney
324/537
Sep,1991

[0 after 0 votes]
5041742
Carbonaro
326/97
Aug,1991

[0 after 0 votes]
5029166
Jarwala
714/724
Jul,1991

[0 after 0 votes]
5012471
Powell
714/744
Apr,1991

[0 after 0 votes]
4680761
Burkness
714/724
Jul,1987

[0 after 0 votes]
4414669
Heckelman
714/800
Nov,1983

[0 after 0 votes]
4905142
Matsubara
711/163
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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