Communicating process architecture: Transputers and occam
A communicating process language such as occam can be used to design VLSI devices, and can be compiled into silicon layout. Some parts of the design process are still performed by hand (such as the final placement of the functional blocks), but this cannot introduce errors. It is therefore possible to design concurrent VLSI systems using occam, establish that the design behaves as intended using the formal semantics of occam (or in simple cases by experimental testing of the occam program), and finally compile the occam source into correct silicon layout.
In order to simplify the construction of the compiler, many issues have been ignored. For example, the synchronous communication system is only appropriate for local communication between devices sharing a common clock. This problem can be overcome by using a different link implementation for ‘long distance’ communication (for example, the link used in the transputer itself).
Expressing an application in a form which efficiently exploits silicon area involves careful consideration of the relative costs of memory, processing and communication. Concurrent algorithms which perform ‘redundant’ calculations can be faster and consume less area than sequential algorithms which store values. An important use of a silicon compiler is to aid in the evaluation of ‘silicon algorithms’.
KeywordsConcurrent Process Schedule List Hardware Description Language Read Only Memory Parallel Construct
Unable to display preview. Download preview PDF.
- 1.1Occam Programming Manual. Prentice-Hall International 1984.Google Scholar
- 1.2C A Mead and L A Conway: Introduction to VLSI Systems. Addison Wesley 1980 Section 5.Google Scholar
- 1.3Communicating Sequential Processes, C A R Hoare, Communications of the ACM Vol. 21, 8 (August 1978) p. 666.Google Scholar
- 1.4Denotational Semantics for Occam, A W Roscoe. Presented at NSF/SERC Seminar on Concurrency, Carnegie-Mellon University, July 1984. To be published.Google Scholar
- 1.5The Laws of Occam Programming, A W Roscoe and C A R Hoare, Programming Research Group, Oxford University, 1986.Google Scholar
- 1.6An Effective Implementation for the Generalised Input-Output Construct of CSP. G N Buckley and A Silberschatz, ACM Transactions on Programming Languages and Systems Vol. 5, 2 (April 1983) p. 224.Google Scholar
- 1.7A Protocol for Generalised Occam, R Bornat, Department of Computer Science, Queen Mary College, London 1984.Google Scholar
- 1.8Occam 2 Referance Manual, Inmos, 1986Google Scholar
- 1.9Lets Design Algorithms for VLSI Systems, H T Kung, in: C A Mead and L A Conway: Introduction to VLSI Systems. Addison Wesley 1980 Section 8.3.Google Scholar
- 2.1Occam Programming Manual, Prentice-Hall International, 1984Google Scholar
- 2.2IMS T414 referance manual, inmos Limited 1985.Google Scholar
- 3.1Simulation of statistical mechanical systems on transputer arrays C R Askew, D B Carpenter, J T Chalker, A J G Hey, D A Nicole and D S Pritchard Physics Department, University of Southampton To be publishedGoogle Scholar
- 3.2Signal processing with transputer arrays J G Harp, J B G Roberts and J S Ward Royal Signals and Radar Establishment, Malvern, Worcestershire Computer Physics Communications, 1985Google Scholar
- 4.1Occam Programming Manual, Prentice-Hall International, 1984Google Scholar
- 4.2The Laws of Occam Programming, A W Roscoe and C A R Hoare, Programming Research Group, Oxford University, 1986.Google Scholar
- 4.3Formal Methods applied to a Floating Point Number System, G Barrett, Programming Research Group, Oxford University, 1986.Google Scholar
- 4.4Compiling Communicating Processes into delay insensitive VLSI Circuits, Alain J Martin, Journal of distributed computing, 1986.Google Scholar