Method and apparatus for providing bus protocol simulation

- Motorola, Inc.

A method and apparatus for providing bus protocol simulation in a multi-processor data processing system (10). A plurality of edge interface circuits (14,16) are used to interface a first bus (32, 34, 36), which uses a first bus protocol, with a plurality of data processors (50-65), each of which uses a second bus protocol. A memory (90) within each edge interface circuit (14,16) is loaded with a plurality of values. Each of the plurality of values has a control portion and a data portion. The control portion of memory entry "N" is used to initiate the transfer of the data from memory entry "N+1". In an alternate embodiment, multi-processor data processing system (210) includes a plurality of data processors (250-258) and a plurality of edge interface circuits (214-217).

Skip to:  ·  Claims  ·  References Cited  · Patent History  ·  Patent History

Claims

1. A method for transferring data in a data processing system, the data processing system comprising a plurality of processors and an interface circuit, the plurality of processors being arranged in an array, and the interface circuit having a memory, the method comprising the steps of:

storing a first value in the memory, the first value having a control portion and having a data portion, the first value corresponding to a first address location;
storing a second value in the memory, the second value having a control portion and having a data portion, the second value corresponding to a second address location;
storing a third value in the memory, the third value having a control portion and having a data portion, the third value corresponding to a third address location;
retrieving the first value from the first address location in the memory and transferring the control portion of the first value from the memory to a control circuit;
if the control portion of the first value has a first state, initiating a first data transfer between the memory and the array;
retrieving the second value from the second address location in the memory and transferring the data portion of the second value to the array during the first data transfer;
if the control portion of the second value has the first state, initiating a second data transfer between the memory and the array; and
retrieving the third value from the third address location in the memory and transferring the data portion of the third value to the array during the second data transfer.

2. A method as in claim 1, wherein the control portion of the first value is a single control bit.

3. A method as in claim 1, further comprising the steps of:

transferring a first address corresponding to the first address location from an address generator circuit to the memory;
transferring the control portion of the first value from the memory to the control circuit; and
if the control portion of the first value has the first state, asserting a control signal provided to a first one of the plurality of processors.

4. A method as in claim 3, further comprising the steps of:

transferring a second address corresponding to the second address location from the address generator circuit to the memory;
transferring the control portion of the second value from the memory to the control circuit; and
if the control portion of the second value has the first state, continuing to assert the control signal provided to the first one of the plurality of processors.

5. A method as in claim 4, further comprising the steps of:

transferring a third address corresponding to the third address location from the address generator circuit to the memory;
transferring the control portion of the third value from the memory to the control circuit; and
if the control portion of the third value has a second state, negating the control signal provided to the first one of the plurality of processors.

6. A method for transferring data in a multi-processor data processing system having a first processor, a second processor, and an interface circuit, the interface circuit having a memory, the method comprising the steps of:

storing a first value in the memory, the first value having a control portion and having a data portion;
storing a second value in the memory, the second value having a control portion and having a data portion;
storing a third value in the memory, the third value having a control portion and having a data portion;
accessing the first value in the memory;
if the control portion of the first value has a predetermined state, providing a first data valid control signal from the interface circuit to the first processor during a first bus cycle;
accessing the second value in the memory;
if the control portion of the first value has the predetermined state, providing the data portion of the second value to the first processor during a second bus cycle;
if the control portion of the second value has the predetermined state, providing the first data valid control signal from the interface circuit to the first processor during the second bus cycle;
accessing the third value in the memory; and
if the control portion of the second value has the predetermined state, providing the data portion of the third value to the first processor during a third bus cycle.

7. A method as in claim 6, further comprising the step of:

if the control portion of the first value has the predetermined state, providing a second data valid control signal from the first processor to the second processor during the second bus cycle.

8. A method as in claim 7, further comprising the step of:

if the control portion of the first value has the predetermined state, providing the data portion of the second value to the second processor during the third bus cycle.

9. A method as in claim 6, further comprising the steps of:

if the control portion of the first value has the predetermined state, and a control element in the first processor has selected a first control condition, storing the data portion of the second value in the first processor; and
if the control portion of the first value has the predetermined state, and the control element in the first processor has selected a second control condition, inhibiting the storing of the data portion of the second value in the first processor.

10. A method as in claim 9, further comprising the steps of:

if the data portion of the second value is provided to the second processor, and a control element in the second processor has selected the first control condition, storing the data portion of the second value in the second processor; and
if the data portion of the second value is provided to the second processor, and the control element in the second processor has selected the second control condition, inhibiting the storing of the data portion of the second value in the second processor.

11. A data processing system, comprising:

a data bus;
an address bus for providing a first address and for providing a second address;
a control bus;
a plurality of processors; and
a storage circuit, coupled to said data bus, said address bus, and said plurality of processors;
first memory means, accessed by the first address, for storing a control portion of a first value;
second memory means, accessed by the first address, for storing a data portion of the first value;
third memory means, accessed by the second address, for storing a control portion of a second value; and
fourth memory means, accessed by the second address, for storing a data portion of the second value;
control means for receiving the control portion of the first value, in response to the control portion of the first value having a predetermined value said control means providing a control signal to a first one of said plurality of processors to initiate transfer of the data portion of the second value to the first one of the plurality of processors, said control means being coupled to said control bus, to said storage circuit, and to the first one of the plurality of processors.

12. A data processing system as in claim 11, wherein the first control signal and the second control signal are asserted approximately concurrently.

Referenced Cited
U.S. Patent Documents
3287703 November 1966 Slotnick
3796992 March 1974 Nakamura et al.
4084234 April 11, 1978 Calle et al.
4463445 July 31, 1984 Grimes
4470112 September 4, 1984 Dimmick
4488218 December 11, 1984 Grimes
4523310 June 11, 1985 Brown et al.
4535427 August 13, 1985 Jiang
4562533 December 31, 1985 Hodel et al.
4811201 March 7, 1989 Rau et al.
4916604 April 10, 1990 Yamamoto et al.
4925312 May 15, 1990 Onaga et al.
5062059 October 29, 1991 Youngblood et al.
5067095 November 19, 1991 Peterson et al.
5073867 December 17, 1991 Murphy et al.
5083285 January 21, 1992 Shima et al.
5086405 February 4, 1992 Chung et al.
5140670 August 18, 1992 Chua et al.
5146420 September 8, 1992 Vassiliadis et al.
5148515 September 15, 1992 Vassiliadis et al.
5151874 September 29, 1992 Jeong et al.
5151971 September 29, 1992 Jousselin et al.
5152000 September 29, 1992 Hillis
5155389 October 13, 1992 Furtek
5155699 October 13, 1992 Chung et al.
5165009 November 17, 1992 Watanabe et al.
5165010 November 17, 1992 Masuda et al.
5167008 November 24, 1992 Engeler
5168573 December 1, 1992 Fossum et al.
5175858 December 29, 1992 Hammerstrom
5182794 January 26, 1993 Gasperi et al.
5239654 August 24, 1993 Ing-Simmons et al.
5307461 April 26, 1994 Kiriu
5321639 June 14, 1994 Krishnamoorthy et al.
5355453 October 11, 1994 Row et al.
Other references
  • "Neural Networks Primer Part I" published in AI Expert in Dec. 1987 and written by Maureen Caudill, pp. 46 through 52. "Neural Networks Primer Part II" published in Al Expert in Feb. 1988 and written by Maureen Caudill, pp. 55 through 61. "Neural Networks Primer Part III" published in Al Expert in Jun. 1988 and written by Maureen Caudill, pp. 53 through 59. "Neural Networks Primer Part IV" published in AI Expert in Aug. 1988 and written by Maureen Caudill, pp. 61 through 67. "Neural Networks Primer Part V" published in Al Expert in Nov. 1988 and written by Maureen Caudill, pp. 57 through 65. "Neural Networks Primer Part VI" published in Al Expert in Feb. 1989 and written by Maureen Caudill, pp. 61 through 67. "Neural Networks Primer Part VII" published in Al Expert in May 1989 and written by Maureen Caudill, pp. 51 through 58. "Neural Networks Primer Part VIII" published in Al Expert in Aug. 1989 and written by Maureen Caudill, pp. 61 through 67. "Fast Spheres, Shadows, Textures, Transparencies, and Image Enhancements in Pixel Planes" by H. Fuchs et al. and published in Computer Graphics, vol. 19, No. 3, Jul. 1985, pp. 111-120. "Pixel-Planes: Building a VLSI-Based Graphic System" by J. Poulton et al. and published in the proceedings of the 1985 Chapel Hill Conference on VLSI, pp. 35-60. "Pixel-Planes 5: A Heterogeneous Multiprocessor Graphics System Using Processor-Enhanced Memories" by Fuchs et al. and published in Computer Graphics, vol. 23, No. 3, Jul. 1989, pp. 79-88. "Parallel Processing In Pixel-Planes, a VLSI logic-enhanced memory for raster graphics" by Fuchs et al. published in the proceedings of ICCD' 85 held in Oct., 1985, pp. 193-197. "Building a 512.times.512 Pixel-Planes System" by J. Poulton et al. and published in Advanced Research in VLSI, Proceedings of the 1987 Stanford Conference, pp. 57-71. "Coarse-grain & fine-grain parallelism in the next generation Pixel-planes graphic sys." by Fuchs et al. and published in Parallel Processing for Computer Vision and Display, pp. 241-253. "Pixel Planes: A VLSI-Oriented Design for 3-D Raster Graphics" by H. Fuchs et al. and publ. in the proc. of the 7th Canadian Man-Computer Comm. Conference, pp. 343-347. "The Torus Routing Chip" published in Journal of Distributed Computing, vol. 1, No. 3, 1986, and written by W. Dally et al. pp. 1-17. "A Microprocessor-based Hypercube Supercomputer" written by J. Hayes et al. and published in IEEE MICRO in Oct. 1986, pp. 6-17. "ILLIAC IV Software and Application Programming" written by David J. Kuck and published in IEEE Transactions on Computers, vol. C-17, No. 8, Aug. 1968, pp. 758-770. "An Introduction to the ILLIAC IV Computer" written by D. McIntyre and published in Datamation, Apr. 1970, pp. 60-67. "The ILLIAC IV Computer" written by G. Barnes et al. and published in IEEE Transactions on Computers, vol. C-17, No. 8, Aug. 1968, pp. 746-757. The ILLIAC IV The First Supercomputer written by R. Michael Hord and published by Computer Science Press, pp. 1-69. MC68000 8-/16-/32-Bit Microprocessor User's Manual, Eighth Edition, pp. 4-1 through 4-4; 4-8 through 4-12. MC68020 32-Bit Microprocessor User's Manual, Fourth Edition, pp. 3-12 through 3-23. Introduction to Computer Architecture written by Harold S. Stone et al. and published by Science Research Associates, Inc. in 1975, pp. 326 through 355. "A VLSI Architecture for High-Performance, Low-Cost, On-chip Learning" by D. Hammerstrom for Adaptive Solutions, Inc., Feb. 28, 1990, pp. II-537 through II-544. "CNAPS-1064 Preliminary Data CNAPS-1064 Digital Neural Processor" published by Adaptive Solutions, Inc. pp. 1-8. DSP56000/DSP56001 Digital Signal Processor User's Manual, Rev. 1, published by Motorola, Inc. pp. 2-9 through 2-14, 5-1 through 5-21, 7-8 through 7-18. "M-Structures: Ext. a Parallel, Non-strict, Functional Lang. with State" by Barth et al., Comp. Struct. Group Memo 327 (MIT), Mar. 18, 1991, pp. 1-21. "A Pipelined, Shared Resource MIMD Computer" by B. Smith et al. and published in the Proceedings of the 1978 International Conference on Parallel Processing, pp. 6-8. M68000 Family Programmer's Reference Manual published by Motorola, Inc. in 1989, pp. 2-71 through 2-78. "The DSP is being reconfigured" by Chappell Brown and published in Electronic Engineering Times, Monday, Mar. 22, 1993, Issue 738, p. 29. DSP56000/56001 Digital Signal Processor User's Manual published by Motorola, Inc. pp. 2-4 and 2-5, 4-6 and 4-7. MC68340 Integrated Processor User's Manual published by Motorola, Inc. 1990, pp. 6-1 through 6-22. Transputer Architecture Technical Overview publiched by INMOS in Sep. 1985. Product Description of the IMS T414 Transputer published by INMOS in Sep. 1985. Product Description of the IMS T212 Transputer published by INMOS in Sep. 1985. Proceedings from the INMOS Transputer Seminar tour conducted in 1986, published in Apr. 1986. "Control Data STAR-100 Processor Design" written by R.G. Hintz et al. and published in the Innovative Architecture Digest of Papers for COMPCOM 72 in 1972, pp. 1 through 4. Mamo, "Computer Engineering". Hardware Design 1988, Chapter 11.
Patent History
Patent number: 5708839
Type: Grant
Filed: Nov 20, 1995
Date of Patent: Jan 13, 1998
Assignee: Motorola, Inc. (Schaumburg, IL)
Inventors: Michael F. Wiles (Round Rock, TX), Michael G. Gallup (Austin, TX), Erik L. Welty (Austin, TX)
Primary Examiner: Alpesh M. Shah
Attorney: Susan C. Hill
Application Number: 8/560,940