Much of current research is devoted to system design and little work is
done on requirements analysis. Besides going from specification to
design, one of our main objectives is how an application problem is transformed
into specifications. Working in the hardware-software codesign perspective, a
system is designed starting from an application problem itself, rather than the
detailed behavioral specifications. Given an application problem, specified as
a directed acyclic graph of elementary problems, a hardware-software
solution is derived such that the synthesized software, a parallel
pseudo-program, can be scheduled and executed on the synthesized hardware, a
set of system-level parallel computer specifications, with heuristically
optimal performance. This is known as system-level cosynthesis of
application-oriented general-purpose parallel systems for which a novel
methodology called
Cosynthesis Methodology for Application-Oriented Parallel Systems
(CMAPS), is presented. Since parallel programs and multiprocessor architectures
are largely inter-dependent, CMAPS explores the relationship between hardware
designs and software algorithms by interleaving the modeling phases and the
synthesis phases of both hardware and software.
High scalability in terms of problem complexity and easy upgradability
to new technologies are achieved through the modularization of the input
problem specification, of the software algorithms, and of the hardware
subsystem models. The work presented in this paper would be beneficial to
designers of general-purpose parallel computer systems which must be oriented
towards solving some user specified problem such as the global controller of
an industry automation process, or a multiprocessor video server. Some
application examples are given to illustrate various codesign phases of CMAPS
and its feasibility.