Functional programming on a dataflow architecture: Applications in real-time image processing

This paper presents a dataflow functional computer (DFFC) developed at the Etablissement Technique Central de l'Armement (ETCA) and dedicated to real-time image processing. Two types of data-driven processing elements, dedicated respectively to low-level and mid-level processings are integrated in a regular 3D array. The design of the DFFC relies on a close integration of the dataflow-architecture principles and the functional programming concept. An image processing algorithm, expressed with a syntax similar to that of functional programming (FP) is first converted into a dataflow graph. The nodes of this graph are real-time operators that can be implemented on the physical processors of the dataflow machine. This dataflow graph is then mapped directly onto the processor array. The programming environment includes a complete compilation stream from the FP specification to hardware implementation, along with a global operator database. Apart from being a research tool for real-time image processing, the DFFC may also be used to perform the automatic synthesis of autonomous vision automata from a high-level functional specification. An experimental system, including 1024 lowlevel custom dataflow processors and 12 T800 transputers, was built and can perform up to 50 billion operations/s. Several image processing algorithms were implemented on this system and run in real-time at digital video speed.

[1]  John R. Kender,et al.  Parallel processing in the DARPA strategic computing vision program , 1991, IEEE Expert.

[2]  Jurij Silc,et al.  Area optimization of dataflow-graph mappings , 1992, Parallel Comput..

[3]  Jorge L. C. Sanz,et al.  Projection-Based Geometrical Feature Extraction for Computer Vision: Algorithms in Pipeline Architectures , 1987, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[4]  Krishna M. Kavi,et al.  A Formal Definition of Data Flow Graph Models , 1986, IEEE Transactions on Computers.

[5]  Robert M. Keller,et al.  Data Flow Program Graphs , 1982, Computer.

[6]  Shahid H. Bokhari,et al.  On the Mapping Problem , 1981, IEEE Transactions on Computers.

[7]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[8]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.

[9]  B. Zavidovique,et al.  A data-flow processor for real-time low-level image processing , 1991, Proceedings of the IEEE 1991 Custom Integrated Circuits Conference.

[10]  Bilha Mendelson,et al.  An Improved Mapping of Data Flow Programs on a VLSI Array of Processors , 1987, ICPP.

[11]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[12]  Jack B. Dennis,et al.  VAL -- A Value-Oriented Algorithmic Language (Preliminary Reference Manual), , 1979 .

[13]  Israel Koren,et al.  A data-driven VLSI array for arbitrary algorithms , 1988, Computer.