Codesign of a parallel architecture and an optimizing compiler backend: SIN rete processing as a case study

The move towards higher levels of abstraction in hardware design begins to blur the difference between hardware and software design. Nevertheless, the attractiveness of a software implementation is still defined by the much smaller abstraction gap between specification and implementation. Whereas, hardware design creates the possibility to exploit parallelism at a very fine level of granularity and thereby achieve tremendous performance gains with a moderate expenditure of hardware. This paper describes the joint design process leading to an ASIC chipset accelerating the execution of rulebased systems. The interaction between the algorithm used for software implementation and the parallel algorithm suited for hardware implementation is examined. An area efficient implementation of the programmable hardware was enabled by an application specific compiler backend. The heuristics applied by the optimising “code” generator are discussed quantitatively.

[1]  Franz J. Rammig Systematischer Entwurf digitaler Systeme , 1989 .

[2]  Charles Lanny Forgy,et al.  On the efficient implementation of production systems. , 1979 .

[3]  Franz-Josef Rammig Systematischer Entwurf digitaler Systeme - von der Systeme- bis zur Gatter-Ebene , 1989, Leitfäden und Monographien der Informatik.

[4]  Michael Hsieh,et al.  A memory controller with an integrated graphics processor , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[5]  Charles L. Forgy,et al.  Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem , 1982, Artif. Intell..

[6]  J. Wu,et al.  Accurate VHDL libraries for ASIC design , 1992, [1992] Proceedings. Fifth Annual IEEE International ASIC Conference and Exhibit.

[7]  Charles R. Moore,et al.  The Power PC 601 microprocessor , 1993, IEEE Micro.

[8]  Robert A. MacLachlan CMU Common Lisp User''s Manual , 1992 .

[9]  Edward A. Lee,et al.  Hardware/software co-design using Ptolemy-a case study , 1992 .

[10]  Nancy Wogrin,et al.  Rule-Based Programming With Ops 5 , 1988 .

[11]  Anoop Gupta,et al.  Implementation of Production Systems on Message-Passing Computers , 1992, IEEE Trans. Parallel Distributed Syst..

[12]  H. Meyr,et al.  Concurrent design of a chipset and its runtime environment , 1992, [1992] Proceedings. Fifth Annual IEEE International ASIC Conference and Exhibit.

[13]  Stephen G. Tell,et al.  An engineering environment for hardware/software co-simulation , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[14]  Christian Müller-Schloer,et al.  Design of VLSI Circuits , 1987 .

[15]  Wade Henessey WCL: Delivering Efficient Common Lisp Applications Under Unix , 1992, LISP and Functional Programming.

[16]  Avtar Saini,et al.  Design of the Intel Pentium processor , 1993, Proceedings of 1993 IEEE International Conference on Computer Design ICCD'93.

[17]  Elaine Kant,et al.  Programming expert systems in OPS5 , 1985 .

[18]  Allen Newell,et al.  Computer Structures: Principles and Examples , 1983 .

[19]  Klaus ten Hagen Abstrakte Modellierung digitaler Schaltungen , 1995 .

[20]  Timothy L. Trowbridge Book review: Rule Based Programming with OPS5 by Thomas A. Cooper and Nancy Wogrin (Morgan Kaufmann Pubtishers) , 1989, SGAR.

[21]  Heinrich Meyr,et al.  High level software synthesis for signal processing systems , 1992, [1992] Proceedings of the International Conference on Application Specific Array Processors.

[22]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[23]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[24]  C. R. Moore The PowerPC 601 microprocessor , 1993, Digest of Papers. Compcon Spring.

[25]  William Mettrey,et al.  A comparative evaluation of expert system tools , 1991, Computer.

[26]  Giovanni De Micheli,et al.  Synthesis and simulation of digital systems containing interacting hardware and software components , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.