Domain flow and streaming architectures

The author introduces the main ideas of a system compiler for affine dependence algorithm. The first idea is a streaming architecture, which is a machine model for the compiler that reduces control overhead in comparison with an ensemble of von Neumann architectures. Such a streaming architecture is a dedicated architecture programmed with an incremental array instruction to be able to run any instance of the problem. The second idea is the domain flow model, which is a program representation that captures the communication of the algorithm. The structure of the compiler reflects the division between synthesis and code generation. A general front-end generates a domain flow graph. Both synthesis and code generation phases work off this data structure. However, each phase has its own back-end. For the synthesis phase the back-end is a design critic combined with an expert system which makes decision about what to do next to satisfy the design goals. For the code generation phase the back-end iterates through different partitioning and code generation strategies.<<ETX>>