Implementing a Prolog machine with multiple functional units

This paper describes the microarchitecture of the PLUM, a high performance Prolog machine. Multiple specialized functional units, each with a port to memory, operate in parallel using data driven control. Instructions are dynamically scheduled by a Prefetch Unit to execute on several specialized functional units. Out of order execution is allowed, and instructions execute when their operands are available. Special synchronization techniques that ensure correct parallel unification and pipelined operation are discussed. The performance of the PLUM is limited by unification, since almost all other operations execute in parallel with unification. Unification time is reduced by parallel unification, resulting in an overall speedup of approximately a factor of 4 over the Berkeley PLM.

[1]  Alvin M. Despain,et al.  Parallel Unification Scheduling in Prolog , 1988 .

[2]  Tep P. Dobry A High Performance Architecture For Prolog , 1987 .

[3]  Manuel V. Hermenegildo,et al.  An Abstract Machine for Restricted AND-Parallel Execution of Logic Programs , 1986, ICLP.

[4]  Yale N. Patt,et al.  HPS, a new microarchitecture: rationale and introduction , 1985, MICRO 18.

[5]  E. Tick Studies in Prolog architectures , 1987 .

[6]  Joachim Beer Concepts, Design, and Performance Analysis of a Parallel Prolog Machine , 1989, Lecture Notes in Computer Science.

[7]  Ryuzo Hasegawa,et al.  Parallel Execution of Logic Programs based on Dataflow Concept , 1984, Fifth Generation Computer Systems.

[8]  Barry Steven Fagin A parallel execution model for prolog , 1987 .

[9]  Barry Fagin,et al.  The Berkeley PLM Instruction Set: An Instruction Set for Prolog , 1986 .

[10]  Yale N. Patt,et al.  PUP: An Architecture to Exploit Parallel Unification in Prolog , 1988 .

[11]  Yale N. Patt,et al.  Advantages of Implementing PROLOG by Microprogramming a Host General Purpose Computer , 1987, ICLP.

[12]  M. Carlton,et al.  A distributed Prolog system with AND-parallelism , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[13]  John S. Conery,et al.  The and/or process model for parallel interpretation of logic programs , 1983 .

[14]  Vason P. Srini,et al.  Compiling Prolog into microcode: a case study using the NCR/32-000 , 1985, MICRO 18.